From bfe619f80651d94448f291b3266a7fe578dad408 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juan=20Ignacio=20P=C3=A9rez=20Sacrist=C3=A1n?= Date: Thu, 1 Jul 2021 12:09:15 +0200 Subject: [PATCH 1/2] Added python script to count zkSync opcodes on repo --- .../0202910f40424d4ba1f4d5c762daecf5.json | 326490 +++++++++++++++ hardhat.config.js | 84 + package-lock.json | 23579 +- package.json | 13 +- scripts/count_opcodes_zkSync.py | 117 + 5 files changed, 342687 insertions(+), 7596 deletions(-) create mode 100644 artifacts/build-info/0202910f40424d4ba1f4d5c762daecf5.json create mode 100644 hardhat.config.js create mode 100644 scripts/count_opcodes_zkSync.py diff --git a/artifacts/build-info/0202910f40424d4ba1f4d5c762daecf5.json b/artifacts/build-info/0202910f40424d4ba1f4d5c762daecf5.json new file mode 100644 index 0000000..93db730 --- /dev/null +++ b/artifacts/build-info/0202910f40424d4ba1f4d5c762daecf5.json @@ -0,0 +1,326490 @@ +{ + "id": "0202910f40424d4ba1f4d5c762daecf5", + "_format": "hh-sol-build-info-1", + "solcVersion": "0.4.26", + "solcLongVersion": "0.4.26+commit.4563c3fc", + "input": { + "language": "Solidity", + "sources": { + "solidity/contracts/ConversionPathFinder.sol": { + "content": "pragma solidity 0.4.26;\nimport \"./IConversionPathFinder.sol\";\nimport \"./utility/ContractRegistryClient.sol\";\nimport \"./converter/interfaces/IConverter.sol\";\nimport \"./converter/interfaces/IConverterAnchor.sol\";\nimport \"./converter/interfaces/IConverterRegistry.sol\";\n\n/**\n * @dev The ConversionPathFinder contract allows generating a conversion path between any token pair in the SovrynSwap Network.\n * The path can then be used in various functions in the SovrynSwapNetwork contract.\n *\n * See the SovrynSwapNetwork contract for conversion path format.\n */\ncontract ConversionPathFinder is IConversionPathFinder, ContractRegistryClient {\n\taddress public anchorToken;\n\n\t/**\n\t * @dev initializes a new ConversionPathFinder instance\n\t *\n\t * @param _registry address of a contract registry contract\n\t */\n\tconstructor(IContractRegistry _registry) public ContractRegistryClient(_registry) {}\n\n\t/**\n\t * @dev updates the anchor token\n\t *\n\t * @param _anchorToken address of the anchor token\n\t */\n\tfunction setAnchorToken(address _anchorToken) public ownerOnly {\n\t\tanchorToken = _anchorToken;\n\t}\n\n\t/**\n\t * @dev generates a conversion path between a given pair of tokens in the SovrynSwap Network\n\t *\n\t * @param _sourceToken address of the source token\n\t * @param _targetToken address of the target token\n\t *\n\t * @return a path from the source token to the target token\n\t */\n\tfunction findPath(address _sourceToken, address _targetToken) public view returns (address[] memory) {\n\t\tIConverterRegistry converterRegistry = IConverterRegistry(addressOf(CONVERTER_REGISTRY));\n\t\taddress[] memory sourcePath = getPath(_sourceToken, converterRegistry);\n\t\taddress[] memory targetPath = getPath(_targetToken, converterRegistry);\n\t\treturn getShortestPath(sourcePath, targetPath);\n\t}\n\n\t/**\n\t * @dev generates a conversion path between a given token and the anchor token\n\t *\n\t * @param _token address of the token\n\t * @param _converterRegistry address of the converter registry\n\t *\n\t * @return a path from the input token to the anchor token\n\t */\n\tfunction getPath(address _token, IConverterRegistry _converterRegistry) private view returns (address[] memory) {\n\t\tif (_token == anchorToken) return getInitialArray(_token);\n\n\t\taddress[] memory anchors;\n\t\tif (_converterRegistry.isAnchor(_token)) anchors = getInitialArray(_token);\n\t\telse anchors = _converterRegistry.getConvertibleTokenAnchors(_token);\n\n\t\tfor (uint256 n = 0; n < anchors.length; n++) {\n\t\t\tIConverter converter = IConverter(IConverterAnchor(anchors[n]).owner());\n\t\t\tuint256 connectorTokenCount = converter.connectorTokenCount();\n\t\t\tfor (uint256 i = 0; i < connectorTokenCount; i++) {\n\t\t\t\taddress connectorToken = converter.connectorTokens(i);\n\t\t\t\tif (connectorToken != _token) {\n\t\t\t\t\taddress[] memory path = getPath(connectorToken, _converterRegistry);\n\t\t\t\t\tif (path.length > 0) return getExtendedArray(_token, anchors[n], path);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn new address[](0);\n\t}\n\n\t/**\n\t * @dev merges two paths with a common suffix into one\n\t *\n\t * @param _sourcePath address of the source path\n\t * @param _targetPath address of the target path\n\t *\n\t * @return merged path\n\t */\n\tfunction getShortestPath(address[] memory _sourcePath, address[] memory _targetPath) private pure returns (address[] memory) {\n\t\tif (_sourcePath.length > 0 && _targetPath.length > 0) {\n\t\t\tuint256 i = _sourcePath.length;\n\t\t\tuint256 j = _targetPath.length;\n\t\t\twhile (i > 0 && j > 0 && _sourcePath[i - 1] == _targetPath[j - 1]) {\n\t\t\t\ti--;\n\t\t\t\tj--;\n\t\t\t}\n\n\t\t\taddress[] memory path = new address[](i + j + 1);\n\t\t\tfor (uint256 m = 0; m <= i; m++) path[m] = _sourcePath[m];\n\t\t\tfor (uint256 n = j; n > 0; n--) path[path.length - n] = _targetPath[n - 1];\n\n\t\t\tuint256 length = 0;\n\t\t\tfor (uint256 p = 0; p < path.length; p += 1) {\n\t\t\t\tfor (uint256 q = p + 2; q < path.length - (p % 2); q += 2) {\n\t\t\t\t\tif (path[p] == path[q]) p = q;\n\t\t\t\t}\n\t\t\t\tpath[length++] = path[p];\n\t\t\t}\n\n\t\t\treturn getPartialArray(path, length);\n\t\t}\n\n\t\treturn new address[](0);\n\t}\n\n\t/**\n\t * @dev creates a new array containing a single item\n\t *\n\t * @param _item item\n\t *\n\t * @return initial array\n\t */\n\tfunction getInitialArray(address _item) private pure returns (address[] memory) {\n\t\taddress[] memory array = new address[](1);\n\t\tarray[0] = _item;\n\t\treturn array;\n\t}\n\n\t/**\n\t * @dev prepends two items to the beginning of an array\n\t *\n\t * @param _item0 first item\n\t * @param _item1 second item\n\t * @param _array initial array\n\t *\n\t * @return extended array\n\t */\n\tfunction getExtendedArray(\n\t\taddress _item0,\n\t\taddress _item1,\n\t\taddress[] memory _array\n\t) private pure returns (address[] memory) {\n\t\taddress[] memory array = new address[](2 + _array.length);\n\t\tarray[0] = _item0;\n\t\tarray[1] = _item1;\n\t\tfor (uint256 i = 0; i < _array.length; i++) array[2 + i] = _array[i];\n\t\treturn array;\n\t}\n\n\t/**\n\t * @dev extracts the prefix of a given array\n\t *\n\t * @param _array given array\n\t * @param _length prefix length\n\t *\n\t * @return partial array\n\t */\n\tfunction getPartialArray(address[] memory _array, uint256 _length) private pure returns (address[] memory) {\n\t\taddress[] memory array = new address[](_length);\n\t\tfor (uint256 i = 0; i < _length; i++) array[i] = _array[i];\n\t\treturn array;\n\t}\n}\n" + }, + "solidity/contracts/IConversionPathFinder.sol": { + "content": "pragma solidity 0.4.26;\nimport \"./token/interfaces/IERC20Token.sol\";\n\n/*\n Conversion Path Finder interface\n*/\ncontract IConversionPathFinder {\n\tfunction findPath(address _sourceToken, address _targetToken) public view returns (address[] memory);\n}\n" + }, + "solidity/contracts/utility/ContractRegistryClient.sol": { + "content": "pragma solidity 0.4.26;\nimport \"./Owned.sol\";\nimport \"./Utils.sol\";\nimport \"./interfaces/IContractRegistry.sol\";\n\n/**\n * @dev Base contract for ContractRegistry clients\n */\ncontract ContractRegistryClient is Owned, Utils {\n\tbytes32 internal constant CONTRACT_REGISTRY = \"ContractRegistry\";\n\tbytes32 internal constant SOVRYNSWAP_NETWORK = \"SovrynSwapNetwork\";\n\tbytes32 internal constant SOVRYNSWAP_FORMULA = \"SovrynSwapFormula\";\n\tbytes32 internal constant CONVERTER_FACTORY = \"ConverterFactory\";\n\tbytes32 internal constant CONVERSION_PATH_FINDER = \"ConversionPathFinder\";\n\tbytes32 internal constant CONVERTER_UPGRADER = \"SovrynSwapConverterUpgrader\";\n\tbytes32 internal constant CONVERTER_REGISTRY = \"SovrynSwapConverterRegistry\";\n\tbytes32 internal constant CONVERTER_REGISTRY_DATA = \"SovrynSwapConverterRegistryData\";\n\tbytes32 internal constant BNT_TOKEN = \"BNTToken\";\n\tbytes32 internal constant SOVRYNSWAP_X = \"SovrynSwapX\";\n\tbytes32 internal constant SOVRYNSWAP_X_UPGRADER = \"SovrynSwapXUpgrader\";\n\tbytes32 internal constant CHAINLINK_ORACLE_WHITELIST = \"ChainlinkOracleWhitelist\";\n\n\tIContractRegistry public registry; // address of the current contract-registry\n\tIContractRegistry public prevRegistry; // address of the previous contract-registry\n\tbool public onlyOwnerCanUpdateRegistry; // only an owner can update the contract-registry\n\n\t/**\n\t * @dev verifies that the caller is mapped to the given contract name\n\t *\n\t * @param _contractName contract name\n\t */\n\tmodifier only(bytes32 _contractName) {\n\t\t_only(_contractName);\n\t\t_;\n\t}\n\n\t// error message binary size optimization\n\tfunction _only(bytes32 _contractName) internal view {\n\t\trequire(msg.sender == addressOf(_contractName), \"ERR_ACCESS_DENIED\");\n\t}\n\n\t/**\n\t * @dev initializes a new ContractRegistryClient instance\n\t *\n\t * @param _registry address of a contract-registry contract\n\t */\n\tconstructor(IContractRegistry _registry) internal validAddress(_registry) {\n\t\tregistry = IContractRegistry(_registry);\n\t\tprevRegistry = IContractRegistry(_registry);\n\t}\n\n\t/**\n\t * @dev updates to the new contract-registry\n\t */\n\tfunction updateRegistry() public {\n\t\t// verify that this function is permitted\n\t\trequire(msg.sender == owner || !onlyOwnerCanUpdateRegistry, \"ERR_ACCESS_DENIED\");\n\n\t\t// get the new contract-registry\n\t\tIContractRegistry newRegistry = IContractRegistry(addressOf(CONTRACT_REGISTRY));\n\n\t\t// verify that the new contract-registry is different and not zero\n\t\trequire(newRegistry != address(registry) && newRegistry != address(0), \"ERR_INVALID_REGISTRY\");\n\n\t\t// verify that the new contract-registry is pointing to a non-zero contract-registry\n\t\trequire(newRegistry.addressOf(CONTRACT_REGISTRY) != address(0), \"ERR_INVALID_REGISTRY\");\n\n\t\t// save a backup of the current contract-registry before replacing it\n\t\tprevRegistry = registry;\n\n\t\t// replace the current contract-registry with the new contract-registry\n\t\tregistry = newRegistry;\n\t}\n\n\t/**\n\t * @dev restores the previous contract-registry\n\t */\n\tfunction restoreRegistry() public ownerOnly {\n\t\t// restore the previous contract-registry\n\t\tregistry = prevRegistry;\n\t}\n\n\t/**\n\t * @dev restricts the permission to update the contract-registry\n\t *\n\t * @param _onlyOwnerCanUpdateRegistry indicates whether or not permission is restricted to owner only\n\t */\n\tfunction restrictRegistryUpdate(bool _onlyOwnerCanUpdateRegistry) public ownerOnly {\n\t\t// change the permission to update the contract-registry\n\t\tonlyOwnerCanUpdateRegistry = _onlyOwnerCanUpdateRegistry;\n\t}\n\n\t/**\n\t * @dev returns the address associated with the given contract name\n\t *\n\t * @param _contractName contract name\n\t *\n\t * @return contract address\n\t */\n\tfunction addressOf(bytes32 _contractName) internal view returns (address) {\n\t\treturn registry.addressOf(_contractName);\n\t}\n}\n" + }, + "solidity/contracts/converter/interfaces/IConverter.sol": { + "content": "pragma solidity 0.4.26;\nimport \"./IConverterAnchor.sol\";\nimport \"../../token/interfaces/IERC20Token.sol\";\nimport \"../../utility/interfaces/IOwned.sol\";\nimport \"../../utility/interfaces/IWhitelist.sol\";\n\n/*\n Converter interface\n*/\ncontract IConverter is IOwned {\n\tfunction converterType() public pure returns (uint16);\n\n\tfunction anchor() public view returns (IConverterAnchor) {\n\t\tthis;\n\t}\n\n\tfunction isActive() public view returns (bool);\n\n\tfunction targetAmountAndFee(\n\t\tIERC20Token _sourceToken,\n\t\tIERC20Token _targetToken,\n\t\tuint256 _amount\n\t) public view returns (uint256, uint256);\n\n\tfunction convert(\n\t\tIERC20Token _sourceToken,\n\t\tIERC20Token _targetToken,\n\t\tuint256 _amount,\n\t\taddress _trader,\n\t\taddress _beneficiary\n\t) public payable returns (uint256);\n\n\tfunction conversionWhitelist() public view returns (IWhitelist) {\n\t\tthis;\n\t}\n\n\tfunction conversionFee() public view returns (uint32) {\n\t\tthis;\n\t}\n\n\tfunction maxConversionFee() public view returns (uint32) {\n\t\tthis;\n\t}\n\n\tfunction reserveBalance(IERC20Token _reserveToken) public view returns (uint256);\n\n\tfunction() external payable;\n\n\tfunction transferAnchorOwnership(address _newOwner) public;\n\n\tfunction acceptAnchorOwnership() public;\n\n\tfunction setConversionFee(uint32 _conversionFee) public;\n\n\tfunction setConversionWhitelist(IWhitelist _whitelist) public;\n\n\tfunction withdrawTokens(\n\t\tIERC20Token _token,\n\t\taddress _to,\n\t\tuint256 _amount\n\t) public;\n\n\tfunction withdrawETH(address _to) public;\n\n\tfunction addReserve(IERC20Token _token, uint32 _ratio) public;\n\n\t// deprecated, backward compatibility\n\tfunction token() public view returns (IConverterAnchor);\n\n\tfunction transferTokenOwnership(address _newOwner) public;\n\n\tfunction acceptTokenOwnership() public;\n\n\tfunction connectors(address _address)\n\t\tpublic\n\t\tview\n\t\treturns (\n\t\t\tuint256,\n\t\t\tuint32,\n\t\t\tbool,\n\t\t\tbool,\n\t\t\tbool\n\t\t);\n\n\tfunction getConnectorBalance(IERC20Token _connectorToken) public view returns (uint256);\n\n\tfunction connectorTokens(uint256 _index) public view returns (IERC20Token);\n\n\tfunction connectorTokenCount() public view returns (uint16);\n}\n" + }, + "solidity/contracts/converter/interfaces/IConverterAnchor.sol": { + "content": "pragma solidity 0.4.26;\nimport \"../../utility/interfaces/IOwned.sol\";\nimport \"../../utility/interfaces/ITokenHolder.sol\";\n\n/*\n Converter Anchor interface\n*/\ncontract IConverterAnchor is IOwned, ITokenHolder {\n\n}\n" + }, + "solidity/contracts/converter/interfaces/IConverterRegistry.sol": { + "content": "pragma solidity 0.4.26;\n\ncontract IConverterRegistry {\n\tfunction getAnchorCount() public view returns (uint256);\n\n\tfunction getAnchors() public view returns (address[]);\n\n\tfunction getAnchor(uint256 _index) public view returns (address);\n\n\tfunction isAnchor(address _value) public view returns (bool);\n\n\tfunction getLiquidityPoolCount() public view returns (uint256);\n\n\tfunction getLiquidityPools() public view returns (address[]);\n\n\tfunction getLiquidityPool(uint256 _index) public view returns (address);\n\n\tfunction isLiquidityPool(address _value) public view returns (bool);\n\n\tfunction getConvertibleTokenCount() public view returns (uint256);\n\n\tfunction getConvertibleTokens() public view returns (address[]);\n\n\tfunction getConvertibleToken(uint256 _index) public view returns (address);\n\n\tfunction isConvertibleToken(address _value) public view returns (bool);\n\n\tfunction getConvertibleTokenAnchorCount(address _convertibleToken) public view returns (uint256);\n\n\tfunction getConvertibleTokenAnchors(address _convertibleToken) public view returns (address[]);\n\n\tfunction getConvertibleTokenAnchor(address _convertibleToken, uint256 _index) public view returns (address);\n\n\tfunction isConvertibleTokenAnchor(address _convertibleToken, address _value) public view returns (bool);\n}\n" + }, + "solidity/contracts/token/interfaces/IERC20Token.sol": { + "content": "pragma solidity 0.4.26;\n\n/*\n ERC20 Standard Token interface\n*/\ncontract IERC20Token {\n\t// these functions aren't abstract since the compiler emits automatically generated getter functions as external\n\tfunction name() public view returns (string) {\n\t\tthis;\n\t}\n\n\tfunction symbol() public view returns (string) {\n\t\tthis;\n\t}\n\n\tfunction decimals() public view returns (uint8) {\n\t\tthis;\n\t}\n\n\tfunction totalSupply() public view returns (uint256) {\n\t\tthis;\n\t}\n\n\tfunction balanceOf(address _owner) public view returns (uint256) {\n\t\t_owner;\n\t\tthis;\n\t}\n\n\tfunction allowance(address _owner, address _spender) public view returns (uint256) {\n\t\t_owner;\n\t\t_spender;\n\t\tthis;\n\t}\n\n\tfunction transfer(address _to, uint256 _value) public returns (bool success);\n\n\tfunction transferFrom(\n\t\taddress _from,\n\t\taddress _to,\n\t\tuint256 _value\n\t) public returns (bool success);\n\n\tfunction approve(address _spender, uint256 _value) public returns (bool success);\n}\n" + }, + "solidity/contracts/utility/Owned.sol": { + "content": "pragma solidity 0.4.26;\nimport \"./interfaces/IOwned.sol\";\n\n/**\n * @dev Provides support and utilities for contract ownership\n */\ncontract Owned is IOwned {\n\taddress public owner;\n\taddress public newOwner;\n\n\t/**\n\t * @dev triggered when the owner is updated\n\t *\n\t * @param _prevOwner previous owner\n\t * @param _newOwner new owner\n\t */\n\tevent OwnerUpdate(address indexed _prevOwner, address indexed _newOwner);\n\n\t/**\n\t * @dev initializes a new Owned instance\n\t */\n\tconstructor() public {\n\t\towner = msg.sender;\n\t}\n\n\t// allows execution by the owner only\n\tmodifier ownerOnly {\n\t\t_ownerOnly();\n\t\t_;\n\t}\n\n\t// error message binary size optimization\n\tfunction _ownerOnly() internal view {\n\t\trequire(msg.sender == owner, \"ERR_ACCESS_DENIED\");\n\t}\n\n\t/**\n\t * @dev allows transferring the contract ownership\n\t * the new owner still needs to accept the transfer\n\t * can only be called by the contract owner\n\t *\n\t * @param _newOwner new contract owner\n\t */\n\tfunction transferOwnership(address _newOwner) public ownerOnly {\n\t\trequire(_newOwner != owner, \"ERR_SAME_OWNER\");\n\t\tnewOwner = _newOwner;\n\t}\n\n\t/**\n\t * @dev used by a new owner to accept an ownership transfer\n\t */\n\tfunction acceptOwnership() public {\n\t\trequire(msg.sender == newOwner, \"ERR_ACCESS_DENIED\");\n\t\temit OwnerUpdate(owner, newOwner);\n\t\towner = newOwner;\n\t\tnewOwner = address(0);\n\t}\n}\n" + }, + "solidity/contracts/utility/Utils.sol": { + "content": "pragma solidity 0.4.26;\n\n/**\n * @dev Utilities & Common Modifiers\n */\ncontract Utils {\n\t// verifies that a value is greater than zero\n\tmodifier greaterThanZero(uint256 _value) {\n\t\t_greaterThanZero(_value);\n\t\t_;\n\t}\n\n\t// error message binary size optimization\n\tfunction _greaterThanZero(uint256 _value) internal pure {\n\t\trequire(_value > 0, \"ERR_ZERO_VALUE\");\n\t}\n\n\t// validates an address - currently only checks that it isn't null\n\tmodifier validAddress(address _address) {\n\t\t_validAddress(_address);\n\t\t_;\n\t}\n\n\t// error message binary size optimization\n\tfunction _validAddress(address _address) internal pure {\n\t\trequire(_address != address(0), \"ERR_INVALID_ADDRESS\");\n\t}\n\n\t// verifies that the address is different than this contract address\n\tmodifier notThis(address _address) {\n\t\t_notThis(_address);\n\t\t_;\n\t}\n\n\t// error message binary size optimization\n\tfunction _notThis(address _address) internal view {\n\t\trequire(_address != address(this), \"ERR_ADDRESS_IS_SELF\");\n\t}\n}\n" + }, + "solidity/contracts/utility/interfaces/IContractRegistry.sol": { + "content": "pragma solidity 0.4.26;\n\n/*\n Contract Registry interface\n*/\ncontract IContractRegistry {\n\tfunction addressOf(bytes32 _contractName) public view returns (address);\n\n\t// deprecated, backward compatibility\n\tfunction getAddress(bytes32 _contractName) public view returns (address);\n}\n" + }, + "solidity/contracts/utility/interfaces/IOwned.sol": { + "content": "pragma solidity 0.4.26;\n\n/*\n Owned contract interface\n*/\ncontract IOwned {\n\t// this function isn't abstract since the compiler emits automatically generated getter functions as external\n\tfunction owner() public view returns (address) {\n\t\tthis;\n\t}\n\n\tfunction transferOwnership(address _newOwner) public;\n\n\tfunction acceptOwnership() public;\n}\n" + }, + "solidity/contracts/utility/interfaces/IWhitelist.sol": { + "content": "pragma solidity 0.4.26;\n\n/*\n Whitelist interface\n*/\ncontract IWhitelist {\n\tfunction isWhitelisted(address _address) public view returns (bool);\n}\n" + }, + "solidity/contracts/utility/interfaces/ITokenHolder.sol": { + "content": "pragma solidity 0.4.26;\nimport \"./IOwned.sol\";\nimport \"../../token/interfaces/IERC20Token.sol\";\n\n/*\n Token Holder interface\n*/\ncontract ITokenHolder is IOwned {\n\tfunction withdrawTokens(\n\t\tIERC20Token _token,\n\t\taddress _to,\n\t\tuint256 _amount\n\t) public;\n}\n" + }, + "solidity/contracts/converter/ConverterRegistry.sol": { + "content": "pragma solidity 0.4.26;\nimport \"../utility/TokenHandler.sol\";\nimport \"../utility/ContractRegistryClient.sol\";\nimport \"./interfaces/IConverter.sol\";\nimport \"./interfaces/IConverterFactory.sol\";\nimport \"./interfaces/IConverterRegistry.sol\";\nimport \"./interfaces/IConverterRegistryData.sol\";\n\n/**\n * @dev The ConverterRegistry maintains a list of all active converters in the SovrynSwap Network.\n *\n * Since converters can be upgraded and thus their address can change, the registry actually keeps\n * converter anchors internally and not the converters themselves.\n * The active converter for each anchor can be easily accessed by querying the anchor's owner.\n *\n * The registry exposes 3 differnet lists that can be accessed and iterated, based on the use-case of the caller:\n * - Anchors - can be used to get all the latest / historical data in the network\n * - Liquidity pools - can be used to get all liquidity pools for funding, liquidation etc.\n * - Convertible tokens - can be used to get all tokens that can be converted in the network (excluding pool\n * tokens), and for each one - all anchors that hold it in their reserves\n *\n *\n * The contract fires events whenever one of the primitives is added to or removed from the registry\n *\n * The contract is upgradable.\n */\ncontract ConverterRegistry is IConverterRegistry, ContractRegistryClient, TokenHandler {\n\taddress private constant ETH_RESERVE_ADDRESS = 0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE;\n\tmapping(address => address) private deployer;\n\n\t/**\n\t * @dev triggered when a converter anchor is added to the registry\n\t *\n\t * @param _anchor smart token\n\t */\n\tevent ConverterAnchorAdded(address indexed _anchor);\n\n\t/**\n\t * @dev triggered when a converter anchor is removed from the registry\n\t *\n\t * @param _anchor smart token\n\t */\n\tevent ConverterAnchorRemoved(address indexed _anchor);\n\n\t/**\n\t * @dev triggered when a liquidity pool is added to the registry\n\t *\n\t * @param _liquidityPool liquidity pool\n\t */\n\tevent LiquidityPoolAdded(address indexed _liquidityPool);\n\n\t/**\n\t * @dev triggered when a liquidity pool is removed from the registry\n\t *\n\t * @param _liquidityPool liquidity pool\n\t */\n\tevent LiquidityPoolRemoved(address indexed _liquidityPool);\n\n\t/**\n\t * @dev triggered when a convertible token is added to the registry\n\t *\n\t * @param _convertibleToken convertible token\n\t * @param _smartToken associated smart token\n\t */\n\tevent ConvertibleTokenAdded(address indexed _convertibleToken, address indexed _smartToken);\n\n\t/**\n\t * @dev triggered when a convertible token is removed from the registry\n\t *\n\t * @param _convertibleToken convertible token\n\t * @param _smartToken associated smart token\n\t */\n\tevent ConvertibleTokenRemoved(address indexed _convertibleToken, address indexed _smartToken);\n\n\t/**\n\t * @dev deprecated, backward compatibility, use `ConverterAnchorAdded`\n\t */\n\tevent SmartTokenAdded(address indexed _smartToken);\n\n\t/**\n\t * @dev deprecated, backward compatibility, use `ConverterAnchorRemoved`\n\t */\n\tevent SmartTokenRemoved(address indexed _smartToken);\n\n\t/**\n\t * @dev initializes a new ConverterRegistry instance\n\t *\n\t * @param _registry address of a contract registry contract\n\t */\n\tconstructor(IContractRegistry _registry) public ContractRegistryClient(_registry) {}\n\n\t/**\n\t * @dev creates a zero supply liquid token / empty liquidity pool and adds its converter to the registry\n\t *\n\t * @param _type converter type, see ConverterBase contract main doc\n\t * @param _name token / pool name\n\t * @param _symbol token / pool symbol\n\t * @param _decimals token / pool decimals\n\t * @param _maxConversionFee maximum conversion-fee\n\t * @param _reserveTokens reserve tokens\n\t * @param _reserveWeights reserve weights\n\t *\n\t * @return new converter\n\t */\n\tfunction newConverter(\n\t\tuint16 _type,\n\t\tstring _name,\n\t\tstring _symbol,\n\t\tuint8 _decimals,\n\t\tuint32 _maxConversionFee,\n\t\tIERC20Token[] memory _reserveTokens,\n\t\tuint32[] memory _reserveWeights\n\t) public returns (IConverter) {\n\t\tuint256 length = _reserveTokens.length;\n\t\trequire(length == _reserveWeights.length, \"ERR_INVALID_RESERVES\");\n\t\trequire(getLiquidityPoolByConfig(_type, _reserveTokens, _reserveWeights) == IConverterAnchor(0), \"ERR_ALREADY_EXISTS\");\n\n\t\tIConverterFactory factory = IConverterFactory(addressOf(CONVERTER_FACTORY));\n\t\tIConverterAnchor anchor = IConverterAnchor(factory.createAnchor(_type, _name, _symbol, _decimals));\n\t\tIConverter converter = IConverter(factory.createConverter(_type, anchor, registry, _maxConversionFee));\n\n\t\t//remember the deployer to make sure only the deployer may finish the setup of the converter\n\t\tdeployer[converter] = msg.sender;\n\n\t\treturn converter;\n\t}\n\n\t/**\n\t * @dev completes the configuration for a converter\n\t *\n\t * @param _type converter type, see ConverterBase contract main doc\n\t * @param _reserveTokens reserve tokens\n\t * @param _reserveWeights reserve weights\n\t * @param _converter the converter previously created through newConverter method\n\t *\n\t * @return converter\n\t */\n\tfunction setupConverter(\n\t\tuint16 _type,\n\t\tIERC20Token[] memory _reserveTokens,\n\t\tuint32[] memory _reserveWeights,\n\t\tIConverter _converter\n\t) public returns (IConverter) {\n\t\trequire(deployer[_converter] == msg.sender, \"only the deployer may finish the converter setup\");\n\n\t\tuint256 length = _reserveTokens.length;\n\t\trequire(length == _reserveWeights.length, \"ERR_INVALID_RESERVES\");\n\t\trequire(getLiquidityPoolByConfig(_type, _reserveTokens, _reserveWeights) == IConverterAnchor(0), \"ERR_ALREADY_EXISTS\");\n\n\t\tIConverterAnchor anchor = _converter.anchor();\n\n\t\tanchor.acceptOwnership();\n\t\t_converter.acceptOwnership();\n\n\t\tfor (uint256 i = 0; i < length; i++) _converter.addReserve(_reserveTokens[i], _reserveWeights[i]);\n\n\t\tanchor.transferOwnership(_converter);\n\t\t_converter.acceptAnchorOwnership();\n\t\t_converter.transferOwnership(msg.sender);\n\n\t\taddConverterInternal(_converter);\n\t\treturn _converter;\n\t}\n\n\t/**\n\t * @dev adds an existing converter to the registry\n\t * can only be called by the owner\n\t *\n\t * @param _converter converter\n\t */\n\tfunction addConverter(IConverter _converter) public ownerOnly {\n\t\trequire(isConverterValid(_converter), \"ERR_INVALID_CONVERTER\");\n\t\taddConverterInternal(_converter);\n\t}\n\n\t/**\n\t * @dev removes a converter from the registry\n\t * anyone can remove an existing converter from the registry, as long as the converter is invalid\n\t * note that the owner can also remove valid converters\n\t *\n\t * @param _converter converter\n\t */\n\tfunction removeConverter(IConverter _converter) public {\n\t\trequire(msg.sender == owner || !isConverterValid(_converter), \"ERR_ACCESS_DENIED\");\n\t\tremoveConverterInternal(_converter);\n\t}\n\n\t/**\n\t * @dev returns the number of converter anchors in the registry\n\t *\n\t * @return number of anchors\n\t */\n\tfunction getAnchorCount() public view returns (uint256) {\n\t\treturn IConverterRegistryData(addressOf(CONVERTER_REGISTRY_DATA)).getSmartTokenCount();\n\t}\n\n\t/**\n\t * @dev returns the list of converter anchors in the registry\n\t *\n\t * @return list of anchors\n\t */\n\tfunction getAnchors() public view returns (address[]) {\n\t\treturn IConverterRegistryData(addressOf(CONVERTER_REGISTRY_DATA)).getSmartTokens();\n\t}\n\n\t/**\n\t * @dev returns the converter anchor at a given index\n\t *\n\t * @param _index index\n\t * @return anchor at the given index\n\t */\n\tfunction getAnchor(uint256 _index) public view returns (address) {\n\t\treturn IConverterRegistryData(addressOf(CONVERTER_REGISTRY_DATA)).getSmartToken(_index);\n\t}\n\n\t/**\n\t * @dev checks whether or not a given value is a converter anchor\n\t *\n\t * @param _value value\n\t * @return true if the given value is an anchor, false if not\n\t */\n\tfunction isAnchor(address _value) public view returns (bool) {\n\t\treturn IConverterRegistryData(addressOf(CONVERTER_REGISTRY_DATA)).isSmartToken(_value);\n\t}\n\n\t/**\n\t * @dev returns the number of liquidity pools in the registry\n\t *\n\t * @return number of liquidity pools\n\t */\n\tfunction getLiquidityPoolCount() public view returns (uint256) {\n\t\treturn IConverterRegistryData(addressOf(CONVERTER_REGISTRY_DATA)).getLiquidityPoolCount();\n\t}\n\n\t/**\n\t * @dev returns the list of liquidity pools in the registry\n\t *\n\t * @return list of liquidity pools\n\t */\n\tfunction getLiquidityPools() public view returns (address[]) {\n\t\treturn IConverterRegistryData(addressOf(CONVERTER_REGISTRY_DATA)).getLiquidityPools();\n\t}\n\n\t/**\n\t * @dev returns the liquidity pool at a given index\n\t *\n\t * @param _index index\n\t * @return liquidity pool at the given index\n\t */\n\tfunction getLiquidityPool(uint256 _index) public view returns (address) {\n\t\treturn IConverterRegistryData(addressOf(CONVERTER_REGISTRY_DATA)).getLiquidityPool(_index);\n\t}\n\n\t/**\n\t * @dev checks whether or not a given value is a liquidity pool\n\t *\n\t * @param _value value\n\t * @return true if the given value is a liquidity pool, false if not\n\t */\n\tfunction isLiquidityPool(address _value) public view returns (bool) {\n\t\treturn IConverterRegistryData(addressOf(CONVERTER_REGISTRY_DATA)).isLiquidityPool(_value);\n\t}\n\n\t/**\n\t * @dev returns the number of convertible tokens in the registry\n\t *\n\t * @return number of convertible tokens\n\t */\n\tfunction getConvertibleTokenCount() public view returns (uint256) {\n\t\treturn IConverterRegistryData(addressOf(CONVERTER_REGISTRY_DATA)).getConvertibleTokenCount();\n\t}\n\n\t/**\n\t * @dev returns the list of convertible tokens in the registry\n\t *\n\t * @return list of convertible tokens\n\t */\n\tfunction getConvertibleTokens() public view returns (address[]) {\n\t\treturn IConverterRegistryData(addressOf(CONVERTER_REGISTRY_DATA)).getConvertibleTokens();\n\t}\n\n\t/**\n\t * @dev returns the convertible token at a given index\n\t *\n\t * @param _index index\n\t * @return convertible token at the given index\n\t */\n\tfunction getConvertibleToken(uint256 _index) public view returns (address) {\n\t\treturn IConverterRegistryData(addressOf(CONVERTER_REGISTRY_DATA)).getConvertibleToken(_index);\n\t}\n\n\t/**\n\t * @dev checks whether or not a given value is a convertible token\n\t *\n\t * @param _value value\n\t * @return true if the given value is a convertible token, false if not\n\t */\n\tfunction isConvertibleToken(address _value) public view returns (bool) {\n\t\treturn IConverterRegistryData(addressOf(CONVERTER_REGISTRY_DATA)).isConvertibleToken(_value);\n\t}\n\n\t/**\n\t * @dev returns the number of converter anchors associated with a given convertible token\n\t *\n\t * @param _convertibleToken convertible token\n\t * @return number of anchors associated with the given convertible token\n\t */\n\tfunction getConvertibleTokenAnchorCount(address _convertibleToken) public view returns (uint256) {\n\t\treturn IConverterRegistryData(addressOf(CONVERTER_REGISTRY_DATA)).getConvertibleTokenSmartTokenCount(_convertibleToken);\n\t}\n\n\t/**\n\t * @dev returns the list of converter anchors associated with a given convertible token\n\t *\n\t * @param _convertibleToken convertible token\n\t * @return list of anchors associated with the given convertible token\n\t */\n\tfunction getConvertibleTokenAnchors(address _convertibleToken) public view returns (address[]) {\n\t\treturn IConverterRegistryData(addressOf(CONVERTER_REGISTRY_DATA)).getConvertibleTokenSmartTokens(_convertibleToken);\n\t}\n\n\t/**\n\t * @dev returns the converter anchor associated with a given convertible token at a given index\n\t *\n\t * @param _convertibleToken convertible token\n\t * @param _index index\n\t * @return anchor associated with the given convertible token at the given index\n\t */\n\tfunction getConvertibleTokenAnchor(address _convertibleToken, uint256 _index) public view returns (address) {\n\t\treturn IConverterRegistryData(addressOf(CONVERTER_REGISTRY_DATA)).getConvertibleTokenSmartToken(_convertibleToken, _index);\n\t}\n\n\t/**\n\t * @dev checks whether or not a given value is a converter anchor of a given convertible token\n\t *\n\t * @param _convertibleToken convertible token\n\t * @param _value value\n\t * @return true if the given value is an anchor of the given convertible token, false if not\n\t */\n\tfunction isConvertibleTokenAnchor(address _convertibleToken, address _value) public view returns (bool) {\n\t\treturn IConverterRegistryData(addressOf(CONVERTER_REGISTRY_DATA)).isConvertibleTokenSmartToken(_convertibleToken, _value);\n\t}\n\n\t/**\n\t * @dev returns a list of converters for a given list of anchors\n\t * this is a utility function that can be used to reduce the number of calls to the contract\n\t *\n\t * @param _anchors list of converter anchors\n\t * @return list of converters\n\t */\n\tfunction getConvertersByAnchors(address[] _anchors) public view returns (address[]) {\n\t\taddress[] memory converters = new address[](_anchors.length);\n\n\t\tfor (uint256 i = 0; i < _anchors.length; i++) converters[i] = IConverterAnchor(_anchors[i]).owner();\n\n\t\treturn converters;\n\t}\n\n\t/**\n\t * @dev checks whether or not a given converter is valid\n\t *\n\t * @param _converter converter\n\t * @return true if the given converter is valid, false if not\n\t */\n\tfunction isConverterValid(IConverter _converter) public view returns (bool) {\n\t\t// verify that the converter is active\n\t\treturn _converter.token().owner() == address(_converter);\n\t}\n\n\t/**\n\t * @dev checks if a liquidity pool with given configuration is already registered\n\t *\n\t * @param _converter converter with specific configuration\n\t * @return if a liquidity pool with the same configuration is already registered\n\t */\n\tfunction isSimilarLiquidityPoolRegistered(IConverter _converter) public view returns (bool) {\n\t\tuint256 reserveTokenCount = _converter.connectorTokenCount();\n\t\tIERC20Token[] memory reserveTokens = new IERC20Token[](reserveTokenCount);\n\t\tuint32[] memory reserveWeights = new uint32[](reserveTokenCount);\n\n\t\t// get the reserve-configuration of the converter\n\t\tfor (uint256 i = 0; i < reserveTokenCount; i++) {\n\t\t\tIERC20Token reserveToken = _converter.connectorTokens(i);\n\t\t\treserveTokens[i] = reserveToken;\n\t\t\treserveWeights[i] = getReserveWeight(_converter, reserveToken);\n\t\t}\n\n\t\t// return if a liquidity pool with the same configuration is already registered\n\t\treturn getLiquidityPoolByConfig(_converter.converterType(), reserveTokens, reserveWeights) != IConverterAnchor(0);\n\t}\n\n\t/**\n\t * @dev searches for a liquidity pool with specific configuration\n\t *\n\t * @param _type converter type, see ConverterBase contract main doc\n\t * @param _reserveTokens reserve tokens\n\t * @param _reserveWeights reserve weights\n\t * @return the liquidity pool, or zero if no such liquidity pool exists\n\t */\n\tfunction getLiquidityPoolByConfig(\n\t\tuint16 _type,\n\t\tIERC20Token[] memory _reserveTokens,\n\t\tuint32[] memory _reserveWeights\n\t) public view returns (IConverterAnchor) {\n\t\t// verify that the input parameters represent a valid liquidity pool\n\t\tif (_reserveTokens.length == _reserveWeights.length && _reserveTokens.length > 1) {\n\t\t\t// get the anchors of the least frequent token (optimization)\n\t\t\taddress[] memory convertibleTokenAnchors = getLeastFrequentTokenAnchors(_reserveTokens);\n\t\t\t// search for a converter with the same configuration\n\t\t\tfor (uint256 i = 0; i < convertibleTokenAnchors.length; i++) {\n\t\t\t\tIConverterAnchor anchor = IConverterAnchor(convertibleTokenAnchors[i]);\n\t\t\t\tIConverter converter = IConverter(anchor.owner());\n\t\t\t\tif (isConverterReserveConfigEqual(converter, _type, _reserveTokens, _reserveWeights)) return anchor;\n\t\t\t}\n\t\t}\n\n\t\treturn IConverterAnchor(0);\n\t}\n\n\t/**\n\t * @dev adds a converter anchor to the registry\n\t *\n\t * @param _converterRegistryData Converter Registry Data Address\n\t * @param _anchor converter anchor\n\t */\n\tfunction addAnchor(IConverterRegistryData _converterRegistryData, address _anchor) internal {\n\t\t_converterRegistryData.addSmartToken(_anchor);\n\t\temit ConverterAnchorAdded(_anchor);\n\t\temit SmartTokenAdded(_anchor);\n\t}\n\n\t/**\n\t * @dev removes a converter anchor from the registry\n\t *\n\t * @param _converterRegistryData Converter Registry Data Address\n\t * @param _anchor converter anchor\n\t */\n\tfunction removeAnchor(IConverterRegistryData _converterRegistryData, address _anchor) internal {\n\t\t_converterRegistryData.removeSmartToken(_anchor);\n\t\temit ConverterAnchorRemoved(_anchor);\n\t\temit SmartTokenRemoved(_anchor);\n\t}\n\n\t/**\n\t * @dev adds a liquidity pool to the registry\n\t *\n\t * @param _converterRegistryData Converter Registry Data Address\n\t * @param _liquidityPool liquidity pool\n\t */\n\tfunction addLiquidityPool(IConverterRegistryData _converterRegistryData, address _liquidityPool) internal {\n\t\t_converterRegistryData.addLiquidityPool(_liquidityPool);\n\t\temit LiquidityPoolAdded(_liquidityPool);\n\t}\n\n\t/**\n\t * @dev removes a liquidity pool from the registry\n\t *\n\t * @param _converterRegistryData Converter Registry Data Address\n\t * @param _liquidityPool liquidity pool\n\t */\n\tfunction removeLiquidityPool(IConverterRegistryData _converterRegistryData, address _liquidityPool) internal {\n\t\t_converterRegistryData.removeLiquidityPool(_liquidityPool);\n\t\temit LiquidityPoolRemoved(_liquidityPool);\n\t}\n\n\t/**\n\t * @dev adds a convertible token to the registry\n\t *\n\t * @param _converterRegistryData Converter Registry Data Address\n\t * @param _convertibleToken convertible token\n\t * @param _anchor associated converter anchor\n\t */\n\tfunction addConvertibleToken(\n\t\tIConverterRegistryData _converterRegistryData,\n\t\taddress _convertibleToken,\n\t\taddress _anchor\n\t) internal {\n\t\t_converterRegistryData.addConvertibleToken(_convertibleToken, _anchor);\n\t\temit ConvertibleTokenAdded(_convertibleToken, _anchor);\n\t}\n\n\t/**\n\t * @dev removes a convertible token from the registry\n\t *\n\t * @param _converterRegistryData Converter Registry Data Address\n\t * @param _convertibleToken convertible token\n\t * @param _anchor associated converter anchor\n\t */\n\tfunction removeConvertibleToken(\n\t\tIConverterRegistryData _converterRegistryData,\n\t\taddress _convertibleToken,\n\t\taddress _anchor\n\t) internal {\n\t\t_converterRegistryData.removeConvertibleToken(_convertibleToken, _anchor);\n\t\temit ConvertibleTokenRemoved(_convertibleToken, _anchor);\n\t}\n\n\tfunction addConverterInternal(IConverter _converter) private {\n\t\tIConverterRegistryData converterRegistryData = IConverterRegistryData(addressOf(CONVERTER_REGISTRY_DATA));\n\t\tIConverterAnchor anchor = IConverter(_converter).token();\n\t\tuint256 reserveTokenCount = _converter.connectorTokenCount();\n\n\t\t// add the converter anchor\n\t\taddAnchor(converterRegistryData, anchor);\n\t\tif (reserveTokenCount > 1) addLiquidityPool(converterRegistryData, anchor);\n\t\telse addConvertibleToken(converterRegistryData, anchor, anchor);\n\n\t\t// add all reserve tokens\n\t\tfor (uint256 i = 0; i < reserveTokenCount; i++) addConvertibleToken(converterRegistryData, _converter.connectorTokens(i), anchor);\n\t}\n\n\tfunction removeConverterInternal(IConverter _converter) private {\n\t\tIConverterRegistryData converterRegistryData = IConverterRegistryData(addressOf(CONVERTER_REGISTRY_DATA));\n\t\tIConverterAnchor anchor = IConverter(_converter).token();\n\t\tuint256 reserveTokenCount = _converter.connectorTokenCount();\n\n\t\t// remove the converter anchor\n\t\tremoveAnchor(converterRegistryData, anchor);\n\t\tif (reserveTokenCount > 1) removeLiquidityPool(converterRegistryData, anchor);\n\t\telse removeConvertibleToken(converterRegistryData, anchor, anchor);\n\n\t\t// remove all reserve tokens\n\t\tfor (uint256 i = 0; i < reserveTokenCount; i++) removeConvertibleToken(converterRegistryData, _converter.connectorTokens(i), anchor);\n\t}\n\n\tfunction getLeastFrequentTokenAnchors(IERC20Token[] memory _reserveTokens) private view returns (address[] memory) {\n\t\tIConverterRegistryData converterRegistryData = IConverterRegistryData(addressOf(CONVERTER_REGISTRY_DATA));\n\t\tuint256 minAnchorCount = converterRegistryData.getConvertibleTokenSmartTokenCount(_reserveTokens[0]);\n\t\tuint256 index = 0;\n\n\t\t// find the reserve token which has the smallest number of converter anchors\n\t\tfor (uint256 i = 1; i < _reserveTokens.length; i++) {\n\t\t\tuint256 convertibleTokenAnchorCount = converterRegistryData.getConvertibleTokenSmartTokenCount(_reserveTokens[i]);\n\t\t\tif (minAnchorCount > convertibleTokenAnchorCount) {\n\t\t\t\tminAnchorCount = convertibleTokenAnchorCount;\n\t\t\t\tindex = i;\n\t\t\t}\n\t\t}\n\n\t\treturn converterRegistryData.getConvertibleTokenSmartTokens(_reserveTokens[index]);\n\t}\n\n\tfunction isConverterReserveConfigEqual(\n\t\tIConverter _converter,\n\t\tuint16 _type,\n\t\tIERC20Token[] memory _reserveTokens,\n\t\tuint32[] memory _reserveWeights\n\t) private view returns (bool) {\n\t\tif (_type != _converter.converterType()) return false;\n\n\t\tif (_reserveTokens.length != _converter.connectorTokenCount()) return false;\n\n\t\tfor (uint256 i = 0; i < _reserveTokens.length; i++) {\n\t\t\tif (_reserveWeights[i] != getReserveWeight(_converter, _reserveTokens[i])) return false;\n\t\t}\n\n\t\treturn true;\n\t}\n\n\tbytes4 private constant CONNECTORS_FUNC_SELECTOR = bytes4(keccak256(\"connectors(address)\"));\n\n\t// assembly is used since older converters didn't have the `getReserveWeight` function, so getting the weight\n\t// requires calling the `connectors` property function, however that results in the `stack too deep` compiler\n\t// error so using assembly to circumvent that issue\n\tfunction getReserveWeight(address _converter, address _reserveToken) private view returns (uint32) {\n\t\tuint256[2] memory ret;\n\t\tbytes memory data = abi.encodeWithSelector(CONNECTORS_FUNC_SELECTOR, _reserveToken);\n\n\t\tassembly {\n\t\t\tlet success := staticcall(\n\t\t\t\tgas, // gas remaining\n\t\t\t\t_converter, // destination address\n\t\t\t\tadd(data, 32), // input buffer (starts after the first 32 bytes in the `data` array)\n\t\t\t\tmload(data), // input length (loaded from the first 32 bytes in the `data` array)\n\t\t\t\tret, // output buffer\n\t\t\t\t64 // output length\n\t\t\t)\n\t\t\tif iszero(success) {\n\t\t\t\trevert(0, 0)\n\t\t\t}\n\t\t}\n\n\t\treturn uint32(ret[1]);\n\t}\n\n\t/**\n\t * @dev deprecated, backward compatibility, use `getAnchorCount`\n\t */\n\tfunction getSmartTokenCount() public view returns (uint256) {\n\t\treturn getAnchorCount();\n\t}\n\n\t/**\n\t * @dev deprecated, backward compatibility, use `getAnchors`\n\t */\n\tfunction getSmartTokens() public view returns (address[]) {\n\t\treturn getAnchors();\n\t}\n\n\t/**\n\t * @dev deprecated, backward compatibility, use `getAnchor`\n\t */\n\tfunction getSmartToken(uint256 _index) public view returns (address) {\n\t\treturn getAnchor(_index);\n\t}\n\n\t/**\n\t * @dev deprecated, backward compatibility, use `isAnchor`\n\t */\n\tfunction isSmartToken(address _value) public view returns (bool) {\n\t\treturn isAnchor(_value);\n\t}\n\n\t/**\n\t * @dev deprecated, backward compatibility, use `getConvertibleTokenAnchorCount`\n\t */\n\tfunction getConvertibleTokenSmartTokenCount(address _convertibleToken) public view returns (uint256) {\n\t\treturn getConvertibleTokenAnchorCount(_convertibleToken);\n\t}\n\n\t/**\n\t * @dev deprecated, backward compatibility, use `getConvertibleTokenAnchors`\n\t */\n\tfunction getConvertibleTokenSmartTokens(address _convertibleToken) public view returns (address[]) {\n\t\treturn getConvertibleTokenAnchors(_convertibleToken);\n\t}\n\n\t/**\n\t * @dev deprecated, backward compatibility, use `getConvertibleTokenAnchor`\n\t */\n\tfunction getConvertibleTokenSmartToken(address _convertibleToken, uint256 _index) public view returns (address) {\n\t\treturn getConvertibleTokenAnchor(_convertibleToken, _index);\n\t}\n\n\t/**\n\t * @dev deprecated, backward compatibility, use `isConvertibleTokenAnchor`\n\t */\n\tfunction isConvertibleTokenSmartToken(address _convertibleToken, address _value) public view returns (bool) {\n\t\treturn isConvertibleTokenAnchor(_convertibleToken, _value);\n\t}\n\n\t/**\n\t * @dev deprecated, backward compatibility, use `getConvertersByAnchors`\n\t */\n\tfunction getConvertersBySmartTokens(address[] _smartTokens) public view returns (address[]) {\n\t\treturn getConvertersByAnchors(_smartTokens);\n\t}\n\n\t/**\n\t * @dev deprecated, backward compatibility, use `getLiquidityPoolByConfig`\n\t */\n\tfunction getLiquidityPoolByReserveConfig(IERC20Token[] memory _reserveTokens, uint32[] memory _reserveWeights)\n\t\tpublic\n\t\tview\n\t\treturns (IConverterAnchor)\n\t{\n\t\treturn getLiquidityPoolByConfig(1, _reserveTokens, _reserveWeights);\n\t}\n}\n" + }, + "solidity/contracts/utility/TokenHandler.sol": { + "content": "pragma solidity 0.4.26;\nimport \"../token/interfaces/IERC20Token.sol\";\n\ncontract TokenHandler {\n\tbytes4 private constant APPROVE_FUNC_SELECTOR = bytes4(keccak256(\"approve(address,uint256)\"));\n\tbytes4 private constant TRANSFER_FUNC_SELECTOR = bytes4(keccak256(\"transfer(address,uint256)\"));\n\tbytes4 private constant TRANSFER_FROM_FUNC_SELECTOR = bytes4(keccak256(\"transferFrom(address,address,uint256)\"));\n\n\t/**\n\t * @dev executes the ERC20 token's `approve` function and reverts upon failure\n\t * the main purpose of this function is to prevent a non standard ERC20 token\n\t * from failing silently\n\t *\n\t * @param _token ERC20 token address\n\t * @param _spender approved address\n\t * @param _value allowance amount\n\t */\n\tfunction safeApprove(\n\t\tIERC20Token _token,\n\t\taddress _spender,\n\t\tuint256 _value\n\t) internal {\n\t\texecute(_token, abi.encodeWithSelector(APPROVE_FUNC_SELECTOR, _spender, _value));\n\t}\n\n\t/**\n\t * @dev executes the ERC20 token's `transfer` function and reverts upon failure\n\t * the main purpose of this function is to prevent a non standard ERC20 token\n\t * from failing silently\n\t *\n\t * @param _token ERC20 token address\n\t * @param _to target address\n\t * @param _value transfer amount\n\t */\n\tfunction safeTransfer(\n\t\tIERC20Token _token,\n\t\taddress _to,\n\t\tuint256 _value\n\t) internal {\n\t\texecute(_token, abi.encodeWithSelector(TRANSFER_FUNC_SELECTOR, _to, _value));\n\t}\n\n\t/**\n\t * @dev executes the ERC20 token's `transferFrom` function and reverts upon failure\n\t * the main purpose of this function is to prevent a non standard ERC20 token\n\t * from failing silently\n\t *\n\t * @param _token ERC20 token address\n\t * @param _from source address\n\t * @param _to target address\n\t * @param _value transfer amount\n\t */\n\tfunction safeTransferFrom(\n\t\tIERC20Token _token,\n\t\taddress _from,\n\t\taddress _to,\n\t\tuint256 _value\n\t) internal {\n\t\texecute(_token, abi.encodeWithSelector(TRANSFER_FROM_FUNC_SELECTOR, _from, _to, _value));\n\t}\n\n\t/**\n\t * @dev executes a function on the ERC20 token and reverts upon failure\n\t * the main purpose of this function is to prevent a non standard ERC20 token\n\t * from failing silently\n\t *\n\t * @param _token ERC20 token address\n\t * @param _data data to pass in to the token's contract for execution\n\t */\n\tfunction execute(IERC20Token _token, bytes memory _data) private {\n\t\tuint256[1] memory ret = [uint256(1)];\n\n\t\tassembly {\n\t\t\tlet success := call(\n\t\t\t\tgas, // gas remaining\n\t\t\t\t_token, // destination address\n\t\t\t\t0, // no ether\n\t\t\t\tadd(_data, 32), // input buffer (starts after the first 32 bytes in the `data` array)\n\t\t\t\tmload(_data), // input length (loaded from the first 32 bytes in the `data` array)\n\t\t\t\tret, // output buffer\n\t\t\t\t32 // output length\n\t\t\t)\n\t\t\tif iszero(success) {\n\t\t\t\trevert(0, 0)\n\t\t\t}\n\t\t}\n\n\t\trequire(ret[0] != 0, \"ERR_TRANSFER_FAILED\");\n\t}\n}\n" + }, + "solidity/contracts/converter/interfaces/IConverterFactory.sol": { + "content": "pragma solidity 0.4.26;\nimport \"./IConverter.sol\";\nimport \"./IConverterAnchor.sol\";\nimport \"./ITypedConverterCustomFactory.sol\";\nimport \"../../utility/interfaces/IContractRegistry.sol\";\n\n/*\n Converter Factory interface\n*/\ncontract IConverterFactory {\n\tfunction createAnchor(\n\t\tuint16 _type,\n\t\tstring _name,\n\t\tstring _symbol,\n\t\tuint8 _decimals\n\t) public returns (IConverterAnchor);\n\n\tfunction createConverter(\n\t\tuint16 _type,\n\t\tIConverterAnchor _anchor,\n\t\tIContractRegistry _registry,\n\t\tuint32 _maxConversionFee\n\t) public returns (IConverter);\n\n\tfunction customFactories(uint16 _type) public view returns (ITypedConverterCustomFactory) {\n\t\t_type;\n\t\tthis;\n\t}\n}\n" + }, + "solidity/contracts/converter/interfaces/IConverterRegistryData.sol": { + "content": "pragma solidity 0.4.26;\n\ninterface IConverterRegistryData {\n\tfunction addSmartToken(address _smartToken) external;\n\n\tfunction removeSmartToken(address _smartToken) external;\n\n\tfunction addLiquidityPool(address _liquidityPool) external;\n\n\tfunction removeLiquidityPool(address _liquidityPool) external;\n\n\tfunction addConvertibleToken(address _convertibleToken, address _smartToken) external;\n\n\tfunction removeConvertibleToken(address _convertibleToken, address _smartToken) external;\n\n\tfunction getSmartTokenCount() external view returns (uint256);\n\n\tfunction getSmartTokens() external view returns (address[]);\n\n\tfunction getSmartToken(uint256 _index) external view returns (address);\n\n\tfunction isSmartToken(address _value) external view returns (bool);\n\n\tfunction getLiquidityPoolCount() external view returns (uint256);\n\n\tfunction getLiquidityPools() external view returns (address[]);\n\n\tfunction getLiquidityPool(uint256 _index) external view returns (address);\n\n\tfunction isLiquidityPool(address _value) external view returns (bool);\n\n\tfunction getConvertibleTokenCount() external view returns (uint256);\n\n\tfunction getConvertibleTokens() external view returns (address[]);\n\n\tfunction getConvertibleToken(uint256 _index) external view returns (address);\n\n\tfunction isConvertibleToken(address _value) external view returns (bool);\n\n\tfunction getConvertibleTokenSmartTokenCount(address _convertibleToken) external view returns (uint256);\n\n\tfunction getConvertibleTokenSmartTokens(address _convertibleToken) external view returns (address[]);\n\n\tfunction getConvertibleTokenSmartToken(address _convertibleToken, uint256 _index) external view returns (address);\n\n\tfunction isConvertibleTokenSmartToken(address _convertibleToken, address _value) external view returns (bool);\n}\n" + }, + "solidity/contracts/converter/interfaces/ITypedConverterCustomFactory.sol": { + "content": "pragma solidity 0.4.26;\n\n/*\n Typed Converter Custom Factory interface\n*/\ncontract ITypedConverterCustomFactory {\n\tfunction converterType() public pure returns (uint16);\n}\n" + }, + "solidity/contracts/helpers/TestConverterRegistry.sol": { + "content": "pragma solidity 0.4.26;\nimport \"../converter/ConverterRegistry.sol\";\n\n/*\n Utils test helper that exposes the converter registry functions\n*/\ncontract TestConverterRegistry is ConverterRegistry {\n\tIConverter public createdConverter;\n\n\tconstructor(IContractRegistry _registry) public ConverterRegistry(_registry) {}\n\n\tfunction newConverter(\n\t\tuint16 _type,\n\t\tstring _name,\n\t\tstring _symbol,\n\t\tuint8 _decimals,\n\t\tuint32 _maxConversionFee,\n\t\tIERC20Token[] memory _reserveTokens,\n\t\tuint32[] memory _reserveWeights\n\t) public returns (IConverter) {\n\t\tcreatedConverter = super.newConverter(_type, _name, _symbol, _decimals, _maxConversionFee, _reserveTokens, _reserveWeights);\n\n\t\treturn createdConverter;\n\t}\n}\n" + }, + "solidity/contracts/converter/ConverterRegistryData.sol": { + "content": "pragma solidity 0.4.26;\nimport \"../utility/ContractRegistryClient.sol\";\nimport \"./interfaces/IConverterRegistryData.sol\";\n\n/**\n * @dev The ConverterRegistryData contract is an integral part of the converter registry\n * as it serves as the database contract that holds all registry data.\n *\n * The registry is separated into two different contracts for upgradability - the data contract\n * is harder to upgrade as it requires migrating all registry data into a new contract, while\n * the registry contract itself can be easily upgraded.\n *\n * For that same reason, the data contract is simple and contains no logic beyond the basic data\n * access utilities that it exposes.\n */\ncontract ConverterRegistryData is IConverterRegistryData, ContractRegistryClient {\n\tstruct Item {\n\t\tbool valid;\n\t\tuint256 index;\n\t}\n\n\tstruct Items {\n\t\taddress[] array;\n\t\tmapping(address => Item) table;\n\t}\n\n\tstruct List {\n\t\tuint256 index;\n\t\tItems items;\n\t}\n\n\tstruct Lists {\n\t\taddress[] array;\n\t\tmapping(address => List) table;\n\t}\n\n\tItems private smartTokens;\n\tItems private liquidityPools;\n\tLists private convertibleTokens;\n\n\t/**\n\t * @dev initializes a new ConverterRegistryData instance\n\t *\n\t * @param _registry address of a contract registry contract\n\t */\n\tconstructor(IContractRegistry _registry) public ContractRegistryClient(_registry) {}\n\n\t/**\n\t * @dev adds a smart token\n\t *\n\t * @param _smartToken smart token\n\t */\n\tfunction addSmartToken(address _smartToken) external only(CONVERTER_REGISTRY) {\n\t\taddItem(smartTokens, _smartToken);\n\t}\n\n\t/**\n\t * @dev removes a smart token\n\t *\n\t * @param _smartToken smart token\n\t */\n\tfunction removeSmartToken(address _smartToken) external only(CONVERTER_REGISTRY) {\n\t\tremoveItem(smartTokens, _smartToken);\n\t}\n\n\t/**\n\t * @dev adds a liquidity pool\n\t *\n\t * @param _liquidityPool liquidity pool\n\t */\n\tfunction addLiquidityPool(address _liquidityPool) external only(CONVERTER_REGISTRY) {\n\t\taddItem(liquidityPools, _liquidityPool);\n\t}\n\n\t/**\n\t * @dev removes a liquidity pool\n\t *\n\t * @param _liquidityPool liquidity pool\n\t */\n\tfunction removeLiquidityPool(address _liquidityPool) external only(CONVERTER_REGISTRY) {\n\t\tremoveItem(liquidityPools, _liquidityPool);\n\t}\n\n\t/**\n\t * @dev adds a convertible token\n\t *\n\t * @param _convertibleToken convertible token\n\t * @param _smartToken associated smart token\n\t */\n\tfunction addConvertibleToken(address _convertibleToken, address _smartToken) external only(CONVERTER_REGISTRY) {\n\t\tList storage list = convertibleTokens.table[_convertibleToken];\n\t\tif (list.items.array.length == 0) {\n\t\t\tlist.index = convertibleTokens.array.push(_convertibleToken) - 1;\n\t\t}\n\t\taddItem(list.items, _smartToken);\n\t}\n\n\t/**\n\t * @dev removes a convertible token\n\t *\n\t * @param _convertibleToken convertible token\n\t * @param _smartToken associated smart token\n\t */\n\tfunction removeConvertibleToken(address _convertibleToken, address _smartToken) external only(CONVERTER_REGISTRY) {\n\t\tList storage list = convertibleTokens.table[_convertibleToken];\n\t\tremoveItem(list.items, _smartToken);\n\t\tif (list.items.array.length == 0) {\n\t\t\taddress lastConvertibleToken = convertibleTokens.array[convertibleTokens.array.length - 1];\n\t\t\tconvertibleTokens.table[lastConvertibleToken].index = list.index;\n\t\t\tconvertibleTokens.array[list.index] = lastConvertibleToken;\n\t\t\tconvertibleTokens.array.length--;\n\t\t\tdelete convertibleTokens.table[_convertibleToken];\n\t\t}\n\t}\n\n\t/**\n\t * @dev returns the number of smart tokens\n\t *\n\t * @return number of smart tokens\n\t */\n\tfunction getSmartTokenCount() external view returns (uint256) {\n\t\treturn smartTokens.array.length;\n\t}\n\n\t/**\n\t * @dev returns the list of smart tokens\n\t *\n\t * @return list of smart tokens\n\t */\n\tfunction getSmartTokens() external view returns (address[]) {\n\t\treturn smartTokens.array;\n\t}\n\n\t/**\n\t * @dev returns the smart token at a given index\n\t *\n\t * @param _index index\n\t * @return smart token at the given index\n\t */\n\tfunction getSmartToken(uint256 _index) external view returns (address) {\n\t\treturn smartTokens.array[_index];\n\t}\n\n\t/**\n\t * @dev checks whether or not a given value is a smart token\n\t *\n\t * @param _value value\n\t * @return true if the given value is a smart token, false if not\n\t */\n\tfunction isSmartToken(address _value) external view returns (bool) {\n\t\treturn smartTokens.table[_value].valid;\n\t}\n\n\t/**\n\t * @dev returns the number of liquidity pools\n\t *\n\t * @return number of liquidity pools\n\t */\n\tfunction getLiquidityPoolCount() external view returns (uint256) {\n\t\treturn liquidityPools.array.length;\n\t}\n\n\t/**\n\t * @dev returns the list of liquidity pools\n\t *\n\t * @return list of liquidity pools\n\t */\n\tfunction getLiquidityPools() external view returns (address[]) {\n\t\treturn liquidityPools.array;\n\t}\n\n\t/**\n\t * @dev returns the liquidity pool at a given index\n\t *\n\t * @param _index index\n\t * @return liquidity pool at the given index\n\t */\n\tfunction getLiquidityPool(uint256 _index) external view returns (address) {\n\t\treturn liquidityPools.array[_index];\n\t}\n\n\t/**\n\t * @dev checks whether or not a given value is a liquidity pool\n\t *\n\t * @param _value value\n\t * @return true if the given value is a liquidity pool, false if not\n\t */\n\tfunction isLiquidityPool(address _value) external view returns (bool) {\n\t\treturn liquidityPools.table[_value].valid;\n\t}\n\n\t/**\n\t * @dev returns the number of convertible tokens\n\t *\n\t * @return number of convertible tokens\n\t */\n\tfunction getConvertibleTokenCount() external view returns (uint256) {\n\t\treturn convertibleTokens.array.length;\n\t}\n\n\t/**\n\t * @dev returns the list of convertible tokens\n\t *\n\t * @return list of convertible tokens\n\t */\n\tfunction getConvertibleTokens() external view returns (address[]) {\n\t\treturn convertibleTokens.array;\n\t}\n\n\t/**\n\t * @dev returns the convertible token at a given index\n\t *\n\t * @param _index index\n\t * @return convertible token at the given index\n\t */\n\tfunction getConvertibleToken(uint256 _index) external view returns (address) {\n\t\treturn convertibleTokens.array[_index];\n\t}\n\n\t/**\n\t * @dev checks whether or not a given value is a convertible token\n\t *\n\t * @param _value value\n\t * @return true if the given value is a convertible token, false if not\n\t */\n\tfunction isConvertibleToken(address _value) external view returns (bool) {\n\t\treturn convertibleTokens.table[_value].items.array.length > 0;\n\t}\n\n\t/**\n\t * @dev returns the number of smart tokens associated with a given convertible token\n\t *\n\t * @param _convertibleToken convertible token\n\t * @return number of smart tokens associated with the given convertible token\n\t */\n\tfunction getConvertibleTokenSmartTokenCount(address _convertibleToken) external view returns (uint256) {\n\t\treturn convertibleTokens.table[_convertibleToken].items.array.length;\n\t}\n\n\t/**\n\t * @dev returns the list of smart tokens associated with a given convertible token\n\t *\n\t * @param _convertibleToken convertible token\n\t * @return list of smart tokens associated with the given convertible token\n\t */\n\tfunction getConvertibleTokenSmartTokens(address _convertibleToken) external view returns (address[]) {\n\t\treturn convertibleTokens.table[_convertibleToken].items.array;\n\t}\n\n\t/**\n\t * @dev returns the smart token associated with a given convertible token at a given index\n\t *\n\t * @param _index index\n\t * @return smart token associated with the given convertible token at the given index\n\t */\n\tfunction getConvertibleTokenSmartToken(address _convertibleToken, uint256 _index) external view returns (address) {\n\t\treturn convertibleTokens.table[_convertibleToken].items.array[_index];\n\t}\n\n\t/**\n\t * @dev checks whether or not a given value is a smart token of a given convertible token\n\t *\n\t * @param _convertibleToken convertible token\n\t * @param _value value\n\t * @return true if the given value is a smart token of the given convertible token, false it not\n\t */\n\tfunction isConvertibleTokenSmartToken(address _convertibleToken, address _value) external view returns (bool) {\n\t\treturn convertibleTokens.table[_convertibleToken].items.table[_value].valid;\n\t}\n\n\t/**\n\t * @dev adds an item to a list of items\n\t *\n\t * @param _items list of items\n\t * @param _value item's value\n\t */\n\tfunction addItem(Items storage _items, address _value) internal validAddress(_value) {\n\t\tItem storage item = _items.table[_value];\n\t\trequire(!item.valid, \"ERR_INVALID_ITEM\");\n\n\t\titem.index = _items.array.push(_value) - 1;\n\t\titem.valid = true;\n\t}\n\n\t/**\n\t * @dev removes an item from a list of items\n\t *\n\t * @param _items list of items\n\t * @param _value item's value\n\t */\n\tfunction removeItem(Items storage _items, address _value) internal validAddress(_value) {\n\t\tItem storage item = _items.table[_value];\n\t\trequire(item.valid, \"ERR_INVALID_ITEM\");\n\n\t\taddress lastValue = _items.array[_items.array.length - 1];\n\t\t_items.table[lastValue].index = item.index;\n\t\t_items.array[item.index] = lastValue;\n\t\t_items.array.length--;\n\t\tdelete _items.table[_value];\n\t}\n}\n" + }, + "solidity/contracts/sovrynswapx/SovrynSwapX.sol": { + "content": "pragma solidity 0.4.26;\nimport \"./interfaces/ISovrynSwapXUpgrader.sol\";\nimport \"./interfaces/ISovrynSwapX.sol\";\nimport \"../utility/ContractRegistryClient.sol\";\nimport \"../utility/SafeMath.sol\";\nimport \"../utility/TokenHandler.sol\";\nimport \"../utility/TokenHolder.sol\";\n\n/**\n * @dev The SovrynSwapX contract allows cross chain token transfers.\n *\n * There are two processes that take place in the contract -\n * - Initiate a cross chain transfer to a target blockchain (locks tokens from the caller account on Ethereum)\n * - Report a cross chain transfer initiated on a source blockchain (releases tokens to an account on Ethereum)\n *\n * Reporting cross chain transfers works similar to standard multisig contracts, meaning that multiple\n * callers are required to report a transfer before tokens are released to the target account.\n */\ncontract SovrynSwapX is ISovrynSwapX, TokenHandler, TokenHolder, ContractRegistryClient {\n\tusing SafeMath for uint256;\n\n\t// represents a transaction on another blockchain where tokens were destroyed/locked\n\tstruct Transaction {\n\t\tuint256 amount;\n\t\tbytes32 fromBlockchain;\n\t\taddress to;\n\t\tuint8 numOfReports;\n\t\tbool completed;\n\t}\n\n\tuint16 public constant version = 4;\n\n\tuint256 public maxLockLimit; // the maximum amount of tokens that can be locked in one transaction\n\tuint256 public maxReleaseLimit; // the maximum amount of tokens that can be released in one transaction\n\tuint256 public minLimit; // the minimum amount of tokens that can be transferred in one transaction\n\tuint256 public prevLockLimit; // the lock limit *after* the last transaction\n\tuint256 public prevReleaseLimit; // the release limit *after* the last transaction\n\tuint256 public limitIncPerBlock; // how much the limit increases per block\n\tuint256 public prevLockBlockNumber; // the block number of the last lock transaction\n\tuint256 public prevReleaseBlockNumber; // the block number of the last release transaction\n\tuint8 public minRequiredReports; // minimum number of required reports to release tokens\n\n\tIERC20Token public token; // erc20 token\n\n\tbool public xTransfersEnabled = true; // true if x transfers are enabled, false if not\n\tbool public reportingEnabled = true; // true if reporting is enabled, false if not\n\n\t// txId -> Transaction\n\tmapping(uint256 => Transaction) public transactions;\n\n\t// xTransferId -> txId\n\tmapping(uint256 => uint256) public transactionIds;\n\n\t// txId -> reporter -> true if reporter already reported txId\n\tmapping(uint256 => mapping(address => bool)) public reportedTxs;\n\n\t// address -> true if address is reporter\n\tmapping(address => bool) public reporters;\n\n\t/**\n\t * @dev triggered when tokens are locked in smart contract\n\t *\n\t * @param _from wallet address that the tokens are locked from\n\t * @param _amount amount locked\n\t */\n\tevent TokensLock(address indexed _from, uint256 _amount);\n\n\t/**\n\t * @dev triggered when tokens are released by the smart contract\n\t *\n\t * @param _to wallet address that the tokens are released to\n\t * @param _amount amount released\n\t */\n\tevent TokensRelease(address indexed _to, uint256 _amount);\n\n\t/**\n\t * @dev triggered when xTransfer is successfully called\n\t *\n\t * @param _from wallet address that initiated the xtransfer\n\t * @param _toBlockchain target blockchain\n\t * @param _to target wallet\n\t * @param _amount transfer amount\n\t * @param _id xtransfer id\n\t */\n\tevent XTransfer(address indexed _from, bytes32 _toBlockchain, bytes32 indexed _to, uint256 _amount, uint256 _id);\n\n\t/**\n\t * @dev triggered when report is successfully submitted\n\t *\n\t * @param _reporter reporter wallet\n\t * @param _fromBlockchain source blockchain\n\t * @param _txId tx id on the source blockchain\n\t * @param _to target wallet\n\t * @param _amount transfer amount\n\t * @param _xTransferId xtransfer id\n\t */\n\tevent TxReport(address indexed _reporter, bytes32 _fromBlockchain, uint256 _txId, address _to, uint256 _amount, uint256 _xTransferId);\n\n\t/**\n\t * @dev triggered when final report is successfully submitted\n\t *\n\t * @param _to target wallet\n\t * @param _id xtransfer id\n\t */\n\tevent XTransferComplete(address _to, uint256 _id);\n\n\t/**\n\t * @dev initializes a new SovrynSwapX instance\n\t *\n\t * @param _maxLockLimit maximum amount of tokens that can be locked in one transaction\n\t * @param _maxReleaseLimit maximum amount of tokens that can be released in one transaction\n\t * @param _minLimit minimum amount of tokens that can be transferred in one transaction\n\t * @param _limitIncPerBlock how much the limit increases per block\n\t * @param _minRequiredReports minimum number of reporters to report transaction before tokens can be released\n\t * @param _registry address of contract registry\n\t * @param _token erc20 token\n\t */\n\tconstructor(\n\t\tuint256 _maxLockLimit,\n\t\tuint256 _maxReleaseLimit,\n\t\tuint256 _minLimit,\n\t\tuint256 _limitIncPerBlock,\n\t\tuint8 _minRequiredReports,\n\t\tIContractRegistry _registry,\n\t\tIERC20Token _token\n\t)\n\t\tpublic\n\t\tContractRegistryClient(_registry)\n\t\tgreaterThanZero(_maxLockLimit)\n\t\tgreaterThanZero(_maxReleaseLimit)\n\t\tgreaterThanZero(_minLimit)\n\t\tgreaterThanZero(_limitIncPerBlock)\n\t\tgreaterThanZero(_minRequiredReports)\n\t\tvalidAddress(_token)\n\t\tnotThis(_token)\n\t{\n\t\t// validate input\n\t\trequire(_minLimit <= _maxLockLimit && _minLimit <= _maxReleaseLimit, \"ERR_INVALID_MIN_LIMIT\");\n\n\t\t// the maximum limits, minimum limit, and limit increase per block\n\t\tmaxLockLimit = _maxLockLimit;\n\t\tmaxReleaseLimit = _maxReleaseLimit;\n\t\tminLimit = _minLimit;\n\t\tlimitIncPerBlock = _limitIncPerBlock;\n\t\tminRequiredReports = _minRequiredReports;\n\n\t\t// previous limit is _maxLimit, and previous block number is current block number\n\t\tprevLockLimit = _maxLockLimit;\n\t\tprevReleaseLimit = _maxReleaseLimit;\n\t\tprevLockBlockNumber = block.number;\n\t\tprevReleaseBlockNumber = block.number;\n\n\t\ttoken = _token;\n\t}\n\n\t// validates that the caller is a reporter\n\tmodifier reporterOnly {\n\t\t_reporterOnly();\n\t\t_;\n\t}\n\n\t// error message binary size optimization\n\tfunction _reporterOnly() internal view {\n\t\trequire(reporters[msg.sender], \"ERR_ACCESS_DENIED\");\n\t}\n\n\t// allows execution only when x transfers are enabled\n\tmodifier xTransfersAllowed {\n\t\t_xTransfersAllowed();\n\t\t_;\n\t}\n\n\t// error message binary size optimization\n\tfunction _xTransfersAllowed() internal view {\n\t\trequire(xTransfersEnabled, \"ERR_DISABLED\");\n\t}\n\n\t// allows execution only when reporting is enabled\n\tmodifier reportingAllowed {\n\t\t_reportingAllowed();\n\t\t_;\n\t}\n\n\t// error message binary size optimization\n\tfunction _reportingAllowed() internal view {\n\t\trequire(reportingEnabled, \"ERR_DISABLED\");\n\t}\n\n\t/**\n\t * @dev setter\n\t *\n\t * @param _maxLockLimit new maxLockLimit\n\t */\n\tfunction setMaxLockLimit(uint256 _maxLockLimit) public ownerOnly greaterThanZero(_maxLockLimit) {\n\t\tmaxLockLimit = _maxLockLimit;\n\t}\n\n\t/**\n\t * @dev setter\n\t *\n\t * @param _maxReleaseLimit new maxReleaseLimit\n\t */\n\tfunction setMaxReleaseLimit(uint256 _maxReleaseLimit) public ownerOnly greaterThanZero(_maxReleaseLimit) {\n\t\tmaxReleaseLimit = _maxReleaseLimit;\n\t}\n\n\t/**\n\t * @dev setter\n\t *\n\t * @param _minLimit new minLimit\n\t */\n\tfunction setMinLimit(uint256 _minLimit) public ownerOnly greaterThanZero(_minLimit) {\n\t\t// validate input\n\t\trequire(_minLimit <= maxLockLimit && _minLimit <= maxReleaseLimit, \"ERR_INVALID_MIN_LIMIT\");\n\n\t\tminLimit = _minLimit;\n\t}\n\n\t/**\n\t * @dev setter\n\t *\n\t * @param _limitIncPerBlock new limitIncPerBlock\n\t */\n\tfunction setLimitIncPerBlock(uint256 _limitIncPerBlock) public ownerOnly greaterThanZero(_limitIncPerBlock) {\n\t\tlimitIncPerBlock = _limitIncPerBlock;\n\t}\n\n\t/**\n\t * @dev setter\n\t *\n\t * @param _minRequiredReports new minRequiredReports\n\t */\n\tfunction setMinRequiredReports(uint8 _minRequiredReports) public ownerOnly greaterThanZero(_minRequiredReports) {\n\t\tminRequiredReports = _minRequiredReports;\n\t}\n\n\t/**\n\t * @dev allows the owner to set/remove reporters\n\t *\n\t * @param _reporter reporter whos status is to be set\n\t * @param _active true if the reporter is approved, false otherwise\n\t */\n\tfunction setReporter(address _reporter, bool _active) public ownerOnly {\n\t\treporters[_reporter] = _active;\n\t}\n\n\t/**\n\t * @dev allows the owner enable/disable the xTransfer method\n\t *\n\t * @param _enable true to enable, false to disable\n\t */\n\tfunction enableXTransfers(bool _enable) public ownerOnly {\n\t\txTransfersEnabled = _enable;\n\t}\n\n\t/**\n\t * @dev allows the owner enable/disable the reportTransaction method\n\t *\n\t * @param _enable true to enable, false to disable\n\t */\n\tfunction enableReporting(bool _enable) public ownerOnly {\n\t\treportingEnabled = _enable;\n\t}\n\n\t/**\n\t * @dev upgrades the contract to the latest version\n\t * can only be called by the owner\n\t * note that the owner needs to call acceptOwnership on the new contract after the upgrade\n\t *\n\t * @param _reporters new list of reporters\n\t */\n\tfunction upgrade(address[] _reporters) public ownerOnly {\n\t\tISovrynSwapXUpgrader sovrynSwapXUpgrader = ISovrynSwapXUpgrader(addressOf(SOVRYNSWAP_X_UPGRADER));\n\n\t\ttransferOwnership(sovrynSwapXUpgrader);\n\t\tsovrynSwapXUpgrader.upgrade(version, _reporters);\n\t\tacceptOwnership();\n\t}\n\n\t/**\n\t * @dev claims tokens from msg.sender to be converted to tokens on another blockchain\n\t *\n\t * @param _toBlockchain blockchain on which tokens will be issued\n\t * @param _to address to send the tokens to\n\t * @param _amount the amount of tokens to transfer\n\t */\n\tfunction xTransfer(\n\t\tbytes32 _toBlockchain,\n\t\tbytes32 _to,\n\t\tuint256 _amount\n\t) public xTransfersAllowed {\n\t\t// get the current lock limit\n\t\tuint256 currentLockLimit = getCurrentLockLimit();\n\n\t\t// verify lock limit\n\t\trequire(_amount >= minLimit && _amount <= currentLockLimit, \"ERR_AMOUNT_TOO_HIGH\");\n\n\t\tlockTokens(_amount);\n\n\t\t// set the previous lock limit and block number\n\t\tprevLockLimit = currentLockLimit.sub(_amount);\n\t\tprevLockBlockNumber = block.number;\n\n\t\t// emit XTransfer event with id of 0\n\t\temit XTransfer(msg.sender, _toBlockchain, _to, _amount, 0);\n\t}\n\n\t/**\n\t * @dev claims tokens from msg.sender to be converted to tokens on another blockchain\n\t *\n\t * @param _toBlockchain blockchain on which tokens will be issued\n\t * @param _to address to send the tokens to\n\t * @param _amount the amount of tokens to transfer\n\t * @param _id pre-determined unique (if non zero) id which refers to this transaction\n\t */\n\tfunction xTransfer(\n\t\tbytes32 _toBlockchain,\n\t\tbytes32 _to,\n\t\tuint256 _amount,\n\t\tuint256 _id\n\t) public xTransfersAllowed {\n\t\t// get the current lock limit\n\t\tuint256 currentLockLimit = getCurrentLockLimit();\n\n\t\t// require that; minLimit <= _amount <= currentLockLimit\n\t\trequire(_amount >= minLimit && _amount <= currentLockLimit, \"ERR_AMOUNT_TOO_HIGH\");\n\n\t\tlockTokens(_amount);\n\n\t\t// set the previous lock limit and block number\n\t\tprevLockLimit = currentLockLimit.sub(_amount);\n\t\tprevLockBlockNumber = block.number;\n\n\t\t// emit XTransfer event\n\t\temit XTransfer(msg.sender, _toBlockchain, _to, _amount, _id);\n\t}\n\n\t/**\n\t * @dev allows reporter to report transaction which occured on another blockchain\n\t *\n\t * @param _fromBlockchain blockchain in which tokens were destroyed\n\t * @param _txId transactionId of transaction thats being reported\n\t * @param _to address to receive tokens\n\t * @param _amount amount of tokens destroyed on another blockchain\n\t * @param _xTransferId unique (if non zero) pre-determined id (unlike _txId which is determined after the transactions been mined)\n\t */\n\tfunction reportTx(\n\t\tbytes32 _fromBlockchain,\n\t\tuint256 _txId,\n\t\taddress _to,\n\t\tuint256 _amount,\n\t\tuint256 _xTransferId\n\t) public reporterOnly reportingAllowed validAddress(_to) greaterThanZero(_amount) {\n\t\t// require that the transaction has not been reported yet by the reporter\n\t\trequire(!reportedTxs[_txId][msg.sender], \"ERR_ALREADY_REPORTED\");\n\n\t\t// set reported as true\n\t\treportedTxs[_txId][msg.sender] = true;\n\n\t\tTransaction storage txn = transactions[_txId];\n\n\t\t// If the caller is the first reporter, set the transaction details\n\t\tif (txn.numOfReports == 0) {\n\t\t\ttxn.to = _to;\n\t\t\ttxn.amount = _amount;\n\t\t\ttxn.fromBlockchain = _fromBlockchain;\n\n\t\t\tif (_xTransferId != 0) {\n\t\t\t\t// verify uniqueness of xTransfer id to prevent overwriting\n\t\t\t\trequire(transactionIds[_xTransferId] == 0, \"ERR_TX_ALREADY_EXISTS\");\n\t\t\t\ttransactionIds[_xTransferId] = _txId;\n\t\t\t}\n\t\t} else {\n\t\t\t// otherwise, verify transaction details\n\t\t\trequire(txn.to == _to && txn.amount == _amount && txn.fromBlockchain == _fromBlockchain, \"ERR_TX_MISMATCH\");\n\n\t\t\tif (_xTransferId != 0) require(transactionIds[_xTransferId] == _txId, \"ERR_TX_ALREADY_EXISTS\");\n\t\t}\n\n\t\t// increment the number of reports\n\t\ttxn.numOfReports++;\n\n\t\temit TxReport(msg.sender, _fromBlockchain, _txId, _to, _amount, _xTransferId);\n\n\t\t// if theres enough reports, try to release tokens\n\t\tif (txn.numOfReports >= minRequiredReports) {\n\t\t\trequire(!transactions[_txId].completed, \"ERR_TX_ALREADY_COMPLETED\");\n\n\t\t\t// set the transaction as completed\n\t\t\ttransactions[_txId].completed = true;\n\n\t\t\temit XTransferComplete(_to, _xTransferId);\n\n\t\t\treleaseTokens(_to, _amount);\n\t\t}\n\t}\n\n\t/**\n\t * @dev gets x transfer amount by xTransferId (not txId)\n\t *\n\t * @param _xTransferId unique (if non zero) pre-determined id (unlike _txId which is determined after the transactions been broadcasted)\n\t * @param _for address corresponding to xTransferId\n\t *\n\t * @return amount that was sent in xTransfer corresponding to _xTransferId\n\t */\n\tfunction getXTransferAmount(uint256 _xTransferId, address _for) public view returns (uint256) {\n\t\t// xTransferId -> txId -> Transaction\n\t\tTransaction memory transaction = transactions[transactionIds[_xTransferId]];\n\n\t\t// verify that the xTransferId is for _for\n\t\trequire(transaction.to == _for, \"ERR_TX_MISMATCH\");\n\n\t\treturn transaction.amount;\n\t}\n\n\t/**\n\t * @dev method for calculating current lock limit\n\t *\n\t * @return the current maximum limit of tokens that can be locked\n\t */\n\tfunction getCurrentLockLimit() public view returns (uint256) {\n\t\t// prevLockLimit + ((currBlockNumber - prevLockBlockNumber) * limitIncPerBlock)\n\t\tuint256 currentLockLimit = prevLockLimit.add(((block.number).sub(prevLockBlockNumber)).mul(limitIncPerBlock));\n\t\tif (currentLockLimit > maxLockLimit) return maxLockLimit;\n\t\treturn currentLockLimit;\n\t}\n\n\t/**\n\t * @dev method for calculating current release limit\n\t *\n\t * @return the current maximum limit of tokens that can be released\n\t */\n\tfunction getCurrentReleaseLimit() public view returns (uint256) {\n\t\t// prevReleaseLimit + ((currBlockNumber - prevReleaseBlockNumber) * limitIncPerBlock)\n\t\tuint256 currentReleaseLimit = prevReleaseLimit.add(((block.number).sub(prevReleaseBlockNumber)).mul(limitIncPerBlock));\n\t\tif (currentReleaseLimit > maxReleaseLimit) return maxReleaseLimit;\n\t\treturn currentReleaseLimit;\n\t}\n\n\t/**\n\t * @dev claims and locks tokens from msg.sender to be converted to tokens on another blockchain\n\t *\n\t * @param _amount the amount of tokens to lock\n\t */\n\tfunction lockTokens(uint256 _amount) private {\n\t\tsafeTransferFrom(token, msg.sender, address(this), _amount);\n\t\temit TokensLock(msg.sender, _amount);\n\t}\n\n\t/**\n\t * @dev private method to release tokens held by the contract\n\t *\n\t * @param _to the address to release tokens to\n\t * @param _amount the amount of tokens to release\n\t */\n\tfunction releaseTokens(address _to, uint256 _amount) private {\n\t\t// get the current release limit\n\t\tuint256 currentReleaseLimit = getCurrentReleaseLimit();\n\n\t\trequire(_amount >= minLimit && _amount <= currentReleaseLimit, \"ERR_AMOUNT_TOO_HIGH\");\n\n\t\t// update the previous release limit and block number\n\t\tprevReleaseLimit = currentReleaseLimit.sub(_amount);\n\t\tprevReleaseBlockNumber = block.number;\n\n\t\t// no need to require, reverts on failure\n\t\tsafeTransfer(token, _to, _amount);\n\n\t\temit TokensRelease(_to, _amount);\n\t}\n}\n" + }, + "solidity/contracts/sovrynswapx/interfaces/ISovrynSwapXUpgrader.sol": { + "content": "pragma solidity 0.4.26;\n\n/*\n SovrynSwap X Upgrader interface\n*/\ncontract ISovrynSwapXUpgrader {\n\tfunction upgrade(uint16 _version, address[] _reporters) public;\n}\n" + }, + "solidity/contracts/sovrynswapx/interfaces/ISovrynSwapX.sol": { + "content": "pragma solidity 0.4.26;\nimport \"../../token/interfaces/IERC20Token.sol\";\n\ncontract ISovrynSwapX {\n\tfunction token() public view returns (IERC20Token) {\n\t\tthis;\n\t}\n\n\tfunction xTransfer(\n\t\tbytes32 _toBlockchain,\n\t\tbytes32 _to,\n\t\tuint256 _amount,\n\t\tuint256 _id\n\t) public;\n\n\tfunction getXTransferAmount(uint256 _xTransferId, address _for) public view returns (uint256);\n}\n" + }, + "solidity/contracts/utility/SafeMath.sol": { + "content": "pragma solidity 0.4.26;\n\n/**\n * @dev Library for basic math operations with overflow/underflow protection\n */\nlibrary SafeMath {\n\t/**\n\t * @dev returns the sum of _x and _y, reverts if the calculation overflows\n\t *\n\t * @param _x value 1\n\t * @param _y value 2\n\t *\n\t * @return sum\n\t */\n\tfunction add(uint256 _x, uint256 _y) internal pure returns (uint256) {\n\t\tuint256 z = _x + _y;\n\t\trequire(z >= _x, \"ERR_OVERFLOW\");\n\t\treturn z;\n\t}\n\n\t/**\n\t * @dev returns the difference of _x minus _y, reverts if the calculation underflows\n\t *\n\t * @param _x minuend\n\t * @param _y subtrahend\n\t *\n\t * @return difference\n\t */\n\tfunction sub(uint256 _x, uint256 _y) internal pure returns (uint256) {\n\t\trequire(_x >= _y, \"ERR_UNDERFLOW\");\n\t\treturn _x - _y;\n\t}\n\n\t/**\n\t * @dev returns the product of multiplying _x by _y, reverts if the calculation overflows\n\t *\n\t * @param _x factor 1\n\t * @param _y factor 2\n\t *\n\t * @return product\n\t */\n\tfunction mul(uint256 _x, uint256 _y) internal pure returns (uint256) {\n\t\t// gas optimization\n\t\tif (_x == 0) return 0;\n\n\t\tuint256 z = _x * _y;\n\t\trequire(z / _x == _y, \"ERR_OVERFLOW\");\n\t\treturn z;\n\t}\n\n\t/**\n\t * @dev Integer division of two numbers truncating the quotient, reverts on division by zero.\n\t *\n\t * @param _x dividend\n\t * @param _y divisor\n\t *\n\t * @return quotient\n\t */\n\tfunction div(uint256 _x, uint256 _y) internal pure returns (uint256) {\n\t\trequire(_y > 0, \"ERR_DIVIDE_BY_ZERO\");\n\t\tuint256 c = _x / _y;\n\t\treturn c;\n\t}\n}\n" + }, + "solidity/contracts/utility/TokenHolder.sol": { + "content": "pragma solidity 0.4.26;\nimport \"./Owned.sol\";\nimport \"./Utils.sol\";\nimport \"./TokenHandler.sol\";\nimport \"./interfaces/ITokenHolder.sol\";\nimport \"../token/interfaces/IERC20Token.sol\";\n\n/**\n * @dev We consider every contract to be a 'token holder' since it's currently not possible\n * for a contract to deny receiving tokens.\n *\n * The TokenHolder's contract sole purpose is to provide a safety mechanism that allows\n * the owner to send tokens that were sent to the contract by mistake back to their sender.\n *\n * Note that we use the non standard ERC-20 interface which has no return value for transfer\n * in order to support both non standard as well as standard token contracts.\n * see https://github.com/ethereum/solidity/issues/4116\n */\ncontract TokenHolder is ITokenHolder, TokenHandler, Owned, Utils {\n\t/**\n\t * @dev withdraws tokens held by the contract and sends them to an account\n\t * can only be called by the owner\n\t *\n\t * @param _token ERC20 token contract address\n\t * @param _to account to receive the new amount\n\t * @param _amount amount to withdraw\n\t */\n\tfunction withdrawTokens(\n\t\tIERC20Token _token,\n\t\taddress _to,\n\t\tuint256 _amount\n\t) public ownerOnly validAddress(_token) validAddress(_to) notThis(_to) {\n\t\tsafeTransfer(_token, _to, _amount);\n\t}\n}\n" + }, + "solidity/contracts/SovrynSwapNetwork.sol": { + "content": "pragma solidity 0.4.26;\nimport \"./ISovrynSwapNetwork.sol\";\nimport \"./IConversionPathFinder.sol\";\nimport \"./converter/interfaces/IConverter.sol\";\nimport \"./converter/interfaces/IConverterAnchor.sol\";\nimport \"./converter/interfaces/ISovrynSwapFormula.sol\";\nimport \"./utility/ContractRegistryClient.sol\";\nimport \"./utility/ReentrancyGuard.sol\";\nimport \"./utility/TokenHolder.sol\";\nimport \"./utility/SafeMath.sol\";\nimport \"./token/interfaces/IEtherToken.sol\";\nimport \"./token/interfaces/ISmartToken.sol\";\nimport \"./sovrynswapx/interfaces/ISovrynSwapX.sol\";\n\n// interface of older converters for backward compatibility\ncontract ILegacyConverter {\n\tfunction change(\n\t\tIERC20Token _sourceToken,\n\t\tIERC20Token _targetToken,\n\t\tuint256 _amount,\n\t\tuint256 _minReturn\n\t) public returns (uint256);\n}\n\n/**\n * @dev The SovrynSwapNetwork contract is the main entry point for SovrynSwap token conversions.\n * It also allows for the conversion of any token in the SovrynSwap Network to any other token in a single\n * transaction by providing a conversion path.\n *\n * A note on Conversion Path: Conversion path is a data structure that is used when converting a token\n * to another token in the SovrynSwap Network, when the conversion cannot necessarily be done by a single\n * converter and might require multiple 'hops'.\n * The path defines which converters should be used and what kind of conversion should be done in each step.\n *\n * The path format doesn't include complex structure; instead, it is represented by a single array\n * in which each 'hop' is represented by a 2-tuple - converter anchor & target token.\n * In addition, the first element is always the source token.\n * The converter anchor is only used as a pointer to a converter (since converter addresses are more\n * likely to change as opposed to anchor addresses).\n *\n * Format:\n * [source token, converter anchor, target token, converter anchor, target token...]\n */\ncontract SovrynSwapNetwork is ISovrynSwapNetwork, TokenHolder, ContractRegistryClient, ReentrancyGuard {\n\tusing SafeMath for uint256;\n\n\tuint256 private constant CONVERSION_FEE_RESOLUTION = 1000000;\n\tuint256 private constant AFFILIATE_FEE_RESOLUTION = 1000000;\n\taddress private constant ETH_RESERVE_ADDRESS = 0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE;\n\n\tstruct ConversionStep {\n\t\tIConverter converter;\n\t\tIConverterAnchor anchor;\n\t\tIERC20Token sourceToken;\n\t\tIERC20Token targetToken;\n\t\taddress beneficiary;\n\t\tbool isV28OrHigherConverter;\n\t\tbool processAffiliateFee;\n\t}\n\n\tuint256 public maxAffiliateFee = 30000; // maximum affiliate-fee\n\n\tmapping(address => bool) public etherTokens; // list of all supported ether tokens\n\n\t/**\n\t * @dev triggered when a conversion between two tokens occurs\n\t *\n\t * @param _smartToken anchor governed by the converter\n\t * @param _fromToken source ERC20 token\n\t * @param _toToken target ERC20 token\n\t * @param _fromAmount amount converted, in the source token\n\t * @param _toAmount amount returned, minus conversion fee\n\t * @param _trader wallet that initiated the trade\n\t */\n\tevent Conversion(\n\t\taddress indexed _smartToken,\n\t\taddress indexed _fromToken,\n\t\taddress indexed _toToken,\n\t\tuint256 _fromAmount,\n\t\tuint256 _toAmount,\n\t\taddress _trader\n\t);\n\n\t/**\n\t * @dev initializes a new SovrynSwapNetwork instance\n\t *\n\t * @param _registry address of a contract registry contract\n\t */\n\tconstructor(IContractRegistry _registry) public ContractRegistryClient(_registry) {\n\t\tetherTokens[ETH_RESERVE_ADDRESS] = true;\n\t}\n\n\t/**\n\t * @dev allows the owner to update the maximum affiliate-fee\n\t *\n\t * @param _maxAffiliateFee maximum affiliate-fee\n\t */\n\tfunction setMaxAffiliateFee(uint256 _maxAffiliateFee) public ownerOnly {\n\t\trequire(_maxAffiliateFee <= AFFILIATE_FEE_RESOLUTION, \"ERR_INVALID_AFFILIATE_FEE\");\n\t\tmaxAffiliateFee = _maxAffiliateFee;\n\t}\n\n\t/**\n\t * @dev allows the owner to register/unregister ether tokens\n\t *\n\t * @param _token ether token contract address\n\t * @param _register true to register, false to unregister\n\t */\n\tfunction registerEtherToken(IEtherToken _token, bool _register) public ownerOnly validAddress(_token) notThis(_token) {\n\t\tetherTokens[_token] = _register;\n\t}\n\n\t/**\n\t * @dev returns the conversion path between two tokens in the network\n\t * note that this method is quite expensive in terms of gas and should generally be called off-chain\n\t *\n\t * @param _sourceToken source token address\n\t * @param _targetToken target token address\n\t *\n\t * @return conversion path between the two tokens\n\t */\n\tfunction conversionPath(IERC20Token _sourceToken, IERC20Token _targetToken) public view returns (address[]) {\n\t\tIConversionPathFinder pathFinder = IConversionPathFinder(addressOf(CONVERSION_PATH_FINDER));\n\t\treturn pathFinder.findPath(_sourceToken, _targetToken);\n\t}\n\n\t/**\n\t * @dev returns the expected target amount of converting a given amount on a given path\n\t * note that there is no support for circular paths\n\t *\n\t * @param _path conversion path (see conversion path format above)\n\t * @param _amount amount of _path[0] tokens received from the sender\n\t *\n\t * @return expected target amount\n\t */\n\tfunction rateByPath(IERC20Token[] _path, uint256 _amount) public view returns (uint256) {\n\t\tuint256 amount;\n\t\tuint256 fee;\n\t\tuint256 supply;\n\t\tuint256 balance;\n\t\tuint32 weight;\n\t\tIConverter converter;\n\t\tISovrynSwapFormula formula = ISovrynSwapFormula(addressOf(SOVRYNSWAP_FORMULA));\n\n\t\tamount = _amount;\n\n\t\t// verify that the number of elements is larger than 2 and odd\n\t\trequire(_path.length > 2 && _path.length % 2 == 1, \"ERR_INVALID_PATH\");\n\n\t\t// iterate over the conversion path\n\t\tfor (uint256 i = 2; i < _path.length; i += 2) {\n\t\t\tIERC20Token sourceToken = _path[i - 2];\n\t\t\tIERC20Token anchor = _path[i - 1];\n\t\t\tIERC20Token targetToken = _path[i];\n\n\t\t\tconverter = IConverter(IConverterAnchor(anchor).owner());\n\n\t\t\t// backward compatibility\n\t\t\tsourceToken = getConverterTokenAddress(converter, sourceToken);\n\t\t\ttargetToken = getConverterTokenAddress(converter, targetToken);\n\n\t\t\tif (targetToken == anchor) {\n\t\t\t\t// buy the smart token\n\t\t\t\t// check if the current smart token has changed\n\t\t\t\tif (i < 3 || anchor != _path[i - 3]) supply = ISmartToken(anchor).totalSupply();\n\n\t\t\t\t// get the amount & the conversion fee\n\t\t\t\tbalance = converter.getConnectorBalance(sourceToken);\n\t\t\t\t(, weight, , , ) = converter.connectors(sourceToken);\n\t\t\t\tamount = formula.purchaseTargetAmount(supply, balance, weight, amount);\n\t\t\t\tfee = amount.mul(converter.conversionFee()).div(CONVERSION_FEE_RESOLUTION);\n\t\t\t\tamount -= fee;\n\n\t\t\t\t// update the smart token supply for the next iteration\n\t\t\t\tsupply = supply.add(amount);\n\t\t\t} else if (sourceToken == anchor) {\n\t\t\t\t// sell the smart token\n\t\t\t\t// check if the current smart token has changed\n\t\t\t\tif (i < 3 || anchor != _path[i - 3]) supply = ISmartToken(anchor).totalSupply();\n\n\t\t\t\t// get the amount & the conversion fee\n\t\t\t\tbalance = converter.getConnectorBalance(targetToken);\n\t\t\t\t(, weight, , , ) = converter.connectors(targetToken);\n\t\t\t\tamount = formula.saleTargetAmount(supply, balance, weight, amount);\n\t\t\t\tfee = amount.mul(converter.conversionFee()).div(CONVERSION_FEE_RESOLUTION);\n\t\t\t\tamount -= fee;\n\n\t\t\t\t// update the smart token supply for the next iteration\n\t\t\t\tsupply = supply.sub(amount);\n\t\t\t} else {\n\t\t\t\t// cross reserve conversion\n\t\t\t\t(amount, fee) = getReturn(converter, sourceToken, targetToken, amount);\n\t\t\t}\n\t\t}\n\n\t\treturn amount;\n\t}\n\n\t/**\n\t * @dev converts the token to any other token in the sovrynSwap network by following\n\t * a predefined conversion path and transfers the result tokens to a target account\n\t * affiliate account/fee can also be passed in to receive a conversion fee (on top of the liquidity provider fees)\n\t * note that the network should already have been given allowance of the source token (if not ETH)\n\t *\n\t * @param _path conversion path, see conversion path format above\n\t * @param _amount amount to convert from, in the source token\n\t * @param _minReturn if the conversion results in an amount smaller than the minimum return - it is cancelled, must be greater than zero\n\t * @param _beneficiary account that will receive the conversion result or 0x0 to send the result to the sender account\n\t * @param _affiliateAccount wallet address to receive the affiliate fee or 0x0 to disable affiliate fee\n\t * @param _affiliateFee affiliate fee in PPM or 0 to disable affiliate fee\n\t *\n\t * @return amount of tokens received from the conversion\n\t */\n\tfunction convertByPath(\n\t\tIERC20Token[] _path,\n\t\tuint256 _amount,\n\t\tuint256 _minReturn,\n\t\taddress _beneficiary,\n\t\taddress _affiliateAccount,\n\t\tuint256 _affiliateFee\n\t) public payable protected greaterThanZero(_minReturn) returns (uint256) {\n\t\t// verify that the path contrains at least a single 'hop' and that the number of elements is odd\n\t\trequire(_path.length > 2 && _path.length % 2 == 1, \"ERR_INVALID_PATH\");\n\n\t\t// validate msg.value and prepare the source token for the conversion\n\t\thandleSourceToken(_path[0], IConverterAnchor(_path[1]), _amount);\n\n\t\t// check if affiliate fee is enabled\n\t\tbool affiliateFeeEnabled = false;\n\t\tif (address(_affiliateAccount) == 0) {\n\t\t\trequire(_affiliateFee == 0, \"ERR_INVALID_AFFILIATE_FEE\");\n\t\t} else {\n\t\t\trequire(0 < _affiliateFee && _affiliateFee <= maxAffiliateFee, \"ERR_INVALID_AFFILIATE_FEE\");\n\t\t\taffiliateFeeEnabled = true;\n\t\t}\n\n\t\t// check if beneficiary is set\n\t\taddress beneficiary = msg.sender;\n\t\tif (_beneficiary != address(0)) beneficiary = _beneficiary;\n\n\t\t// convert and get the resulting amount\n\t\tConversionStep[] memory data = createConversionData(_path, beneficiary, affiliateFeeEnabled);\n\t\tuint256 amount = doConversion(data, _amount, _minReturn, _affiliateAccount, _affiliateFee);\n\n\t\t// handle the conversion target tokens\n\t\thandleTargetToken(data, amount, beneficiary);\n\n\t\treturn amount;\n\t}\n\n\t/**\n * @dev converts any other token to BNT in the sovrynSwap network by following\n a predefined conversion path and transfers the result to an account on a different blockchain\n * note that the network should already have been given allowance of the source token (if not ETH)\n *\n * @param _path conversion path, see conversion path format above\n * @param _amount amount to convert from, in the source token\n * @param _minReturn if the conversion results in an amount smaller than the minimum return - it is cancelled, must be greater than zero\n * @param _targetBlockchain blockchain BNT will be issued on\n * @param _targetAccount address/account on the target blockchain to send the BNT to\n * @param _conversionId pre-determined unique (if non zero) id which refers to this transaction\n *\n * @return the amount of BNT received from this conversion\n */\n\tfunction xConvert(\n\t\tIERC20Token[] _path,\n\t\tuint256 _amount,\n\t\tuint256 _minReturn,\n\t\tbytes32 _targetBlockchain,\n\t\tbytes32 _targetAccount,\n\t\tuint256 _conversionId\n\t) public payable returns (uint256) {\n\t\treturn xConvert2(_path, _amount, _minReturn, _targetBlockchain, _targetAccount, _conversionId, address(0), 0);\n\t}\n\n\t/**\n * @dev converts any other token to BNT in the sovrynSwap network by following\n a predefined conversion path and transfers the result to an account on a different blockchain\n * note that the network should already have been given allowance of the source token (if not ETH)\n *\n * @param _path conversion path, see conversion path format above\n * @param _amount amount to convert from, in the source token\n * @param _minReturn if the conversion results in an amount smaller than the minimum return - it is cancelled, must be greater than zero\n * @param _targetBlockchain blockchain BNT will be issued on\n * @param _targetAccount address/account on the target blockchain to send the BNT to\n * @param _conversionId pre-determined unique (if non zero) id which refers to this transaction\n * @param _affiliateAccount affiliate account\n * @param _affiliateFee affiliate fee in PPM\n *\n * @return the amount of BNT received from this conversion\n */\n\tfunction xConvert2(\n\t\tIERC20Token[] _path,\n\t\tuint256 _amount,\n\t\tuint256 _minReturn,\n\t\tbytes32 _targetBlockchain,\n\t\tbytes32 _targetAccount,\n\t\tuint256 _conversionId,\n\t\taddress _affiliateAccount,\n\t\tuint256 _affiliateFee\n\t) public payable greaterThanZero(_minReturn) returns (uint256) {\n\t\tIERC20Token targetToken = _path[_path.length - 1];\n\t\tISovrynSwapX sovrynSwapX = ISovrynSwapX(addressOf(SOVRYNSWAP_X));\n\n\t\t// verify that the destination token is BNT\n\t\trequire(targetToken == addressOf(BNT_TOKEN), \"ERR_INVALID_TARGET_TOKEN\");\n\n\t\t// convert and get the resulting amount\n\t\tuint256 amount = convertByPath(_path, _amount, _minReturn, this, _affiliateAccount, _affiliateFee);\n\n\t\t// grant SovrynSwapX allowance\n\t\tensureAllowance(targetToken, sovrynSwapX, amount);\n\n\t\t// transfer the resulting amount to SovrynSwapX\n\t\tsovrynSwapX.xTransfer(_targetBlockchain, _targetAccount, amount, _conversionId);\n\n\t\treturn amount;\n\t}\n\n\t/**\n\t * @dev allows a user to convert a token that was sent from another blockchain into any other\n\t * token on the SovrynSwapNetwork\n\t * ideally this transaction is created before the previous conversion is even complete, so\n\t * so the input amount isn't known at that point - the amount is actually take from the\n\t * SovrynSwapX contract directly by specifying the conversion id\n\t *\n\t * @param _path conversion path\n\t * @param _sovrynSwapX address of the SovrynSwapX contract for the source token\n\t * @param _conversionId pre-determined unique (if non zero) id which refers to this conversion\n\t * @param _minReturn if the conversion results in an amount smaller than the minimum return - it is cancelled, must be nonzero\n\t * @param _beneficiary wallet to receive the conversion result\n\t *\n\t * @return amount of tokens received from the conversion\n\t */\n\tfunction completeXConversion(\n\t\tIERC20Token[] _path,\n\t\tISovrynSwapX _sovrynSwapX,\n\t\tuint256 _conversionId,\n\t\tuint256 _minReturn,\n\t\taddress _beneficiary\n\t) public returns (uint256) {\n\t\t// verify that the source token is the SovrynSwapX token\n\t\trequire(_path[0] == _sovrynSwapX.token(), \"ERR_INVALID_SOURCE_TOKEN\");\n\n\t\t// get conversion amount from SovrynSwapX contract\n\t\tuint256 amount = _sovrynSwapX.getXTransferAmount(_conversionId, msg.sender);\n\n\t\t// perform the conversion\n\t\treturn convertByPath(_path, amount, _minReturn, _beneficiary, address(0), 0);\n\t}\n\n\t/**\n\t * @dev executes the actual conversion by following the conversion path\n\t *\n\t * @param _data conversion data, see ConversionStep struct above\n\t * @param _amount amount to convert from, in the source token\n\t * @param _minReturn if the conversion results in an amount smaller than the minimum return - it is cancelled, must be greater than zero\n\t * @param _affiliateAccount affiliate account\n\t * @param _affiliateFee affiliate fee in PPM\n\t *\n\t * @return amount of tokens received from the conversion\n\t */\n\tfunction doConversion(\n\t\tConversionStep[] _data,\n\t\tuint256 _amount,\n\t\tuint256 _minReturn,\n\t\taddress _affiliateAccount,\n\t\tuint256 _affiliateFee\n\t) private returns (uint256) {\n\t\tuint256 toAmount;\n\t\tuint256 fromAmount = _amount;\n\n\t\t// iterate over the conversion data\n\t\tfor (uint256 i = 0; i < _data.length; i++) {\n\t\t\tConversionStep memory stepData = _data[i];\n\n\t\t\t// newer converter\n\t\t\tif (stepData.isV28OrHigherConverter) {\n\t\t\t\t// transfer the tokens to the converter only if the network contract currently holds the tokens\n\t\t\t\t// not needed with ETH or if it's the first conversion step\n\t\t\t\tif (i != 0 && _data[i - 1].beneficiary == address(this) && !etherTokens[stepData.sourceToken])\n\t\t\t\t\tsafeTransfer(stepData.sourceToken, stepData.converter, fromAmount);\n\t\t\t}\n\t\t\t// older converter\n\t\t\t// if the source token is the smart token, no need to do any transfers as the converter controls it\n\t\t\telse if (stepData.sourceToken != ISmartToken(stepData.anchor)) {\n\t\t\t\t// grant allowance for it to transfer the tokens from the network contract\n\t\t\t\tensureAllowance(stepData.sourceToken, stepData.converter, fromAmount);\n\t\t\t}\n\n\t\t\t// do the conversion\n\t\t\tif (!stepData.isV28OrHigherConverter)\n\t\t\t\ttoAmount = ILegacyConverter(stepData.converter).change(stepData.sourceToken, stepData.targetToken, fromAmount, 1);\n\t\t\telse if (etherTokens[stepData.sourceToken])\n\t\t\t\ttoAmount = stepData.converter.convert.value(msg.value)(\n\t\t\t\t\tstepData.sourceToken,\n\t\t\t\t\tstepData.targetToken,\n\t\t\t\t\tfromAmount,\n\t\t\t\t\tmsg.sender,\n\t\t\t\t\tstepData.beneficiary\n\t\t\t\t);\n\t\t\telse toAmount = stepData.converter.convert(stepData.sourceToken, stepData.targetToken, fromAmount, msg.sender, stepData.beneficiary);\n\n\t\t\t// pay affiliate-fee if needed\n\t\t\tif (stepData.processAffiliateFee) {\n\t\t\t\tuint256 affiliateAmount = toAmount.mul(_affiliateFee).div(AFFILIATE_FEE_RESOLUTION);\n\t\t\t\trequire(stepData.targetToken.transfer(_affiliateAccount, affiliateAmount), \"ERR_FEE_TRANSFER_FAILED\");\n\t\t\t\ttoAmount -= affiliateAmount;\n\t\t\t}\n\n\t\t\temit Conversion(stepData.anchor, stepData.sourceToken, stepData.targetToken, fromAmount, toAmount, msg.sender);\n\t\t\tfromAmount = toAmount;\n\t\t}\n\n\t\t// ensure the trade meets the minimum requested amount\n\t\trequire(toAmount >= _minReturn, \"ERR_RETURN_TOO_LOW\");\n\n\t\treturn toAmount;\n\t}\n\n\t/**\n\t * @dev validates msg.value and prepares the conversion source token for the conversion\n\t *\n\t * @param _sourceToken source token of the first conversion step\n\t * @param _anchor converter anchor of the first conversion step\n\t * @param _amount amount to convert from, in the source token\n\t */\n\tfunction handleSourceToken(\n\t\tIERC20Token _sourceToken,\n\t\tIConverterAnchor _anchor,\n\t\tuint256 _amount\n\t) private {\n\t\tIConverter firstConverter = IConverter(_anchor.owner());\n\t\tbool isNewerConverter = isV28OrHigherConverter(firstConverter);\n\n\t\t// ETH\n\t\tif (msg.value > 0) {\n\t\t\t// validate msg.value\n\t\t\trequire(msg.value == _amount, \"ERR_ETH_AMOUNT_MISMATCH\");\n\n\t\t\t// EtherToken converter - deposit the ETH into the EtherToken\n\t\t\t// note that it can still be a non ETH converter if the path is wrong\n\t\t\t// but such conversion will simply revert\n\t\t\tif (!isNewerConverter) IEtherToken(getConverterEtherTokenAddress(firstConverter)).deposit.value(msg.value)();\n\t\t}\n\t\t// EtherToken\n\t\telse if (etherTokens[_sourceToken]) {\n\t\t\t// claim the tokens - if the source token is ETH reserve, this call will fail\n\t\t\t// since in that case the transaction must be sent with msg.value\n\t\t\tsafeTransferFrom(_sourceToken, msg.sender, this, _amount);\n\n\t\t\t// ETH converter - withdraw the ETH\n\t\t\tif (isNewerConverter) IEtherToken(_sourceToken).withdraw(_amount);\n\t\t}\n\t\t// other ERC20 token\n\t\telse {\n\t\t\t// newer converter - transfer the tokens from the sender directly to the converter\n\t\t\t// otherwise claim the tokens\n\t\t\tif (isNewerConverter) safeTransferFrom(_sourceToken, msg.sender, firstConverter, _amount);\n\t\t\telse safeTransferFrom(_sourceToken, msg.sender, this, _amount);\n\t\t}\n\t}\n\n\t/**\n\t * @dev handles the conversion target token if the network still holds it at the end of the conversion\n\t *\n\t * @param _data conversion data, see ConversionStep struct above\n\t * @param _amount conversion target amount\n\t * @param _beneficiary wallet to receive the conversion result\n\t */\n\tfunction handleTargetToken(\n\t\tConversionStep[] _data,\n\t\tuint256 _amount,\n\t\taddress _beneficiary\n\t) private {\n\t\tConversionStep memory stepData = _data[_data.length - 1];\n\n\t\t// network contract doesn't hold the tokens, do nothing\n\t\tif (stepData.beneficiary != address(this)) return;\n\n\t\tIERC20Token targetToken = stepData.targetToken;\n\n\t\t// ETH / EtherToken\n\t\tif (etherTokens[targetToken]) {\n\t\t\t// newer converter should send ETH directly to the beneficiary\n\t\t\tassert(!stepData.isV28OrHigherConverter);\n\n\t\t\t// EtherToken converter - withdraw the ETH and transfer to the beneficiary\n\t\t\tIEtherToken(targetToken).withdrawTo(_beneficiary, _amount);\n\t\t}\n\t\t// other ERC20 token\n\t\telse {\n\t\t\tsafeTransfer(targetToken, _beneficiary, _amount);\n\t\t}\n\t}\n\n\t/**\n\t * @dev creates a memory cache of all conversion steps data to minimize logic and external calls during conversions\n\t *\n\t * @param _conversionPath conversion path, see conversion path format above\n\t * @param _beneficiary wallet to receive the conversion result\n\t * @param _affiliateFeeEnabled true if affiliate fee was requested by the sender, false if not\n\t *\n\t * @return cached conversion data to be ingested later on by the conversion flow\n\t */\n\tfunction createConversionData(\n\t\tIERC20Token[] _conversionPath,\n\t\taddress _beneficiary,\n\t\tbool _affiliateFeeEnabled\n\t) private view returns (ConversionStep[]) {\n\t\tConversionStep[] memory data = new ConversionStep[](_conversionPath.length / 2);\n\n\t\tbool affiliateFeeProcessed = false;\n\t\taddress bntToken = addressOf(BNT_TOKEN);\n\t\t// iterate the conversion path and create the conversion data for each step\n\t\tuint256 i;\n\t\tfor (i = 0; i < _conversionPath.length - 1; i += 2) {\n\t\t\tIConverterAnchor anchor = IConverterAnchor(_conversionPath[i + 1]);\n\t\t\tIConverter converter = IConverter(anchor.owner());\n\t\t\tIERC20Token targetToken = _conversionPath[i + 2];\n\n\t\t\t// check if the affiliate fee should be processed in this step\n\t\t\tbool processAffiliateFee = _affiliateFeeEnabled && !affiliateFeeProcessed && targetToken == bntToken;\n\t\t\tif (processAffiliateFee) affiliateFeeProcessed = true;\n\n\t\t\tdata[i / 2] = ConversionStep({\n\t\t\t\tanchor: // set the converter anchor\n\t\t\t\tanchor,\n\t\t\t\tconverter: // set the converter\n\t\t\t\tconverter,\n\t\t\t\tsourceToken: // set the source/target tokens\n\t\t\t\t_conversionPath[i],\n\t\t\t\ttargetToken: targetToken,\n\t\t\t\tbeneficiary: // requires knowledge about the next step, so initialize in the next phase\n\t\t\t\taddress(0),\n\t\t\t\tisV28OrHigherConverter: // set flags\n\t\t\t\tisV28OrHigherConverter(converter),\n\t\t\t\tprocessAffiliateFee: processAffiliateFee\n\t\t\t});\n\t\t}\n\n\t\t// ETH support\n\t\t// source is ETH\n\t\tConversionStep memory stepData = data[0];\n\t\tif (etherTokens[stepData.sourceToken]) {\n\t\t\t// newer converter - replace the source token address with ETH reserve address\n\t\t\tif (stepData.isV28OrHigherConverter)\n\t\t\t\tstepData.sourceToken = IERC20Token(ETH_RESERVE_ADDRESS);\n\t\t\t\t// older converter - replace the source token with the EtherToken address used by the converter\n\t\t\telse stepData.sourceToken = IERC20Token(getConverterEtherTokenAddress(stepData.converter));\n\t\t}\n\n\t\t// target is ETH\n\t\tstepData = data[data.length - 1];\n\t\tif (etherTokens[stepData.targetToken]) {\n\t\t\t// newer converter - replace the target token address with ETH reserve address\n\t\t\tif (stepData.isV28OrHigherConverter)\n\t\t\t\tstepData.targetToken = IERC20Token(ETH_RESERVE_ADDRESS);\n\t\t\t\t// older converter - replace the target token with the EtherToken address used by the converter\n\t\t\telse stepData.targetToken = IERC20Token(getConverterEtherTokenAddress(stepData.converter));\n\t\t}\n\n\t\t// set the beneficiary for each step\n\t\tfor (i = 0; i < data.length; i++) {\n\t\t\tstepData = data[i];\n\n\t\t\t// first check if the converter in this step is newer as older converters don't even support the beneficiary argument\n\t\t\tif (stepData.isV28OrHigherConverter) {\n\t\t\t\t// if affiliate fee is processed in this step, beneficiary is the network contract\n\t\t\t\tif (stepData.processAffiliateFee)\n\t\t\t\t\tstepData.beneficiary = this;\n\t\t\t\t\t// if it's the last step, beneficiary is the final beneficiary\n\t\t\t\telse if (i == data.length - 1)\n\t\t\t\t\tstepData.beneficiary = _beneficiary;\n\t\t\t\t\t// if the converter in the next step is newer, beneficiary is the next converter\n\t\t\t\telse if (data[i + 1].isV28OrHigherConverter)\n\t\t\t\t\tstepData.beneficiary = data[i + 1].converter;\n\t\t\t\t\t// the converter in the next step is older, beneficiary is the network contract\n\t\t\t\telse stepData.beneficiary = this;\n\t\t\t} else {\n\t\t\t\t// converter in this step is older, beneficiary is the network contract\n\t\t\t\tstepData.beneficiary = this;\n\t\t\t}\n\t\t}\n\n\t\treturn data;\n\t}\n\n\t/**\n\t * @dev utility, checks whether allowance for the given spender exists and approves one if it doesn't.\n\t * Note that we use the non standard erc-20 interface in which `approve` has no return value so that\n\t * this function will work for both standard and non standard tokens\n\t *\n\t * @param _token token to check the allowance in\n\t * @param _spender approved address\n\t * @param _value allowance amount\n\t */\n\tfunction ensureAllowance(\n\t\tIERC20Token _token,\n\t\taddress _spender,\n\t\tuint256 _value\n\t) private {\n\t\tuint256 allowance = _token.allowance(this, _spender);\n\t\tif (allowance < _value) {\n\t\t\tif (allowance > 0) safeApprove(_token, _spender, 0);\n\t\t\tsafeApprove(_token, _spender, _value);\n\t\t}\n\t}\n\n\t// legacy - returns the address of an EtherToken used by the converter\n\tfunction getConverterEtherTokenAddress(IConverter _converter) private view returns (address) {\n\t\tuint256 reserveCount = _converter.connectorTokenCount();\n\t\tfor (uint256 i = 0; i < reserveCount; i++) {\n\t\t\taddress reserveTokenAddress = _converter.connectorTokens(i);\n\t\t\tif (etherTokens[reserveTokenAddress]) return reserveTokenAddress;\n\t\t}\n\n\t\treturn ETH_RESERVE_ADDRESS;\n\t}\n\n\t// legacy - if the token is an ether token, returns the ETH reserve address\n\t// used by the converter, otherwise returns the input token address\n\tfunction getConverterTokenAddress(IConverter _converter, IERC20Token _token) private view returns (IERC20Token) {\n\t\tif (!etherTokens[_token]) return _token;\n\n\t\tif (isV28OrHigherConverter(_converter)) return IERC20Token(ETH_RESERVE_ADDRESS);\n\n\t\treturn IERC20Token(getConverterEtherTokenAddress(_converter));\n\t}\n\n\tbytes4 private constant GET_RETURN_FUNC_SELECTOR = bytes4(keccak256(\"getReturn(address,address,uint256)\"));\n\n\t// using assembly code since older converter versions have different return values\n\tfunction getReturn(\n\t\taddress _dest,\n\t\taddress _sourceToken,\n\t\taddress _targetToken,\n\t\tuint256 _amount\n\t) internal view returns (uint256, uint256) {\n\t\tuint256[2] memory ret;\n\t\tbytes memory data = abi.encodeWithSelector(GET_RETURN_FUNC_SELECTOR, _sourceToken, _targetToken, _amount);\n\n\t\tassembly {\n\t\t\tlet success := staticcall(\n\t\t\t\tgas, // gas remaining\n\t\t\t\t_dest, // destination address\n\t\t\t\tadd(data, 32), // input buffer (starts after the first 32 bytes in the `data` array)\n\t\t\t\tmload(data), // input length (loaded from the first 32 bytes in the `data` array)\n\t\t\t\tret, // output buffer\n\t\t\t\t64 // output length\n\t\t\t)\n\t\t\tif iszero(success) {\n\t\t\t\trevert(0, 0)\n\t\t\t}\n\t\t}\n\n\t\treturn (ret[0], ret[1]);\n\t}\n\n\tbytes4 private constant IS_V28_OR_HIGHER_FUNC_SELECTOR = bytes4(keccak256(\"isV28OrHigher()\"));\n\n\t// using assembly code to identify converter version\n\t// can't rely on the version number since the function had a different signature in older converters\n\tfunction isV28OrHigherConverter(IConverter _converter) internal view returns (bool) {\n\t\tbool success;\n\t\tuint256[1] memory ret;\n\t\tbytes memory data = abi.encodeWithSelector(IS_V28_OR_HIGHER_FUNC_SELECTOR);\n\n\t\tassembly {\n\t\t\tsuccess := staticcall(\n\t\t\t\t5000, // isV28OrHigher consumes 190 gas, but just for extra safety\n\t\t\t\t_converter, // destination address\n\t\t\t\tadd(data, 32), // input buffer (starts after the first 32 bytes in the `data` array)\n\t\t\t\tmload(data), // input length (loaded from the first 32 bytes in the `data` array)\n\t\t\t\tret, // output buffer\n\t\t\t\t32 // output length\n\t\t\t)\n\t\t}\n\n\t\treturn success && ret[0] != 0;\n\t}\n\n\t/**\n\t * @dev deprecated, backward compatibility\n\t */\n\tfunction getReturnByPath(IERC20Token[] _path, uint256 _amount) public view returns (uint256, uint256) {\n\t\treturn (rateByPath(_path, _amount), 0);\n\t}\n\n\t/**\n\t * @dev deprecated, backward compatibility\n\t */\n\tfunction convert(\n\t\tIERC20Token[] _path,\n\t\tuint256 _amount,\n\t\tuint256 _minReturn\n\t) public payable returns (uint256) {\n\t\treturn convertByPath(_path, _amount, _minReturn, address(0), address(0), 0);\n\t}\n\n\t/**\n\t * @dev deprecated, backward compatibility\n\t */\n\tfunction convert2(\n\t\tIERC20Token[] _path,\n\t\tuint256 _amount,\n\t\tuint256 _minReturn,\n\t\taddress _affiliateAccount,\n\t\tuint256 _affiliateFee\n\t) public payable returns (uint256) {\n\t\treturn convertByPath(_path, _amount, _minReturn, address(0), _affiliateAccount, _affiliateFee);\n\t}\n\n\t/**\n\t * @dev deprecated, backward compatibility\n\t */\n\tfunction convertFor(\n\t\tIERC20Token[] _path,\n\t\tuint256 _amount,\n\t\tuint256 _minReturn,\n\t\taddress _beneficiary\n\t) public payable returns (uint256) {\n\t\treturn convertByPath(_path, _amount, _minReturn, _beneficiary, address(0), 0);\n\t}\n\n\t/**\n\t * @dev deprecated, backward compatibility\n\t */\n\tfunction convertFor2(\n\t\tIERC20Token[] _path,\n\t\tuint256 _amount,\n\t\tuint256 _minReturn,\n\t\taddress _beneficiary,\n\t\taddress _affiliateAccount,\n\t\tuint256 _affiliateFee\n\t) public payable greaterThanZero(_minReturn) returns (uint256) {\n\t\treturn convertByPath(_path, _amount, _minReturn, _beneficiary, _affiliateAccount, _affiliateFee);\n\t}\n\n\t/**\n\t * @dev deprecated, backward compatibility\n\t */\n\tfunction claimAndConvert(\n\t\tIERC20Token[] _path,\n\t\tuint256 _amount,\n\t\tuint256 _minReturn\n\t) public returns (uint256) {\n\t\treturn convertByPath(_path, _amount, _minReturn, address(0), address(0), 0);\n\t}\n\n\t/**\n\t * @dev deprecated, backward compatibility\n\t */\n\tfunction claimAndConvert2(\n\t\tIERC20Token[] _path,\n\t\tuint256 _amount,\n\t\tuint256 _minReturn,\n\t\taddress _affiliateAccount,\n\t\tuint256 _affiliateFee\n\t) public returns (uint256) {\n\t\treturn convertByPath(_path, _amount, _minReturn, address(0), _affiliateAccount, _affiliateFee);\n\t}\n\n\t/**\n\t * @dev deprecated, backward compatibility\n\t */\n\tfunction claimAndConvertFor(\n\t\tIERC20Token[] _path,\n\t\tuint256 _amount,\n\t\tuint256 _minReturn,\n\t\taddress _beneficiary\n\t) public returns (uint256) {\n\t\treturn convertByPath(_path, _amount, _minReturn, _beneficiary, address(0), 0);\n\t}\n\n\t/**\n\t * @dev deprecated, backward compatibility\n\t */\n\tfunction claimAndConvertFor2(\n\t\tIERC20Token[] _path,\n\t\tuint256 _amount,\n\t\tuint256 _minReturn,\n\t\taddress _beneficiary,\n\t\taddress _affiliateAccount,\n\t\tuint256 _affiliateFee\n\t) public returns (uint256) {\n\t\treturn convertByPath(_path, _amount, _minReturn, _beneficiary, _affiliateAccount, _affiliateFee);\n\t}\n}\n" + }, + "solidity/contracts/ISovrynSwapNetwork.sol": { + "content": "pragma solidity 0.4.26;\nimport \"./token/interfaces/IERC20Token.sol\";\n\n/*\n SovrynSwap Network interface\n*/\ncontract ISovrynSwapNetwork {\n\tfunction convert2(\n\t\tIERC20Token[] _path,\n\t\tuint256 _amount,\n\t\tuint256 _minReturn,\n\t\taddress _affiliateAccount,\n\t\tuint256 _affiliateFee\n\t) public payable returns (uint256);\n\n\tfunction claimAndConvert2(\n\t\tIERC20Token[] _path,\n\t\tuint256 _amount,\n\t\tuint256 _minReturn,\n\t\taddress _affiliateAccount,\n\t\tuint256 _affiliateFee\n\t) public returns (uint256);\n\n\tfunction convertFor2(\n\t\tIERC20Token[] _path,\n\t\tuint256 _amount,\n\t\tuint256 _minReturn,\n\t\taddress _for,\n\t\taddress _affiliateAccount,\n\t\tuint256 _affiliateFee\n\t) public payable returns (uint256);\n\n\tfunction claimAndConvertFor2(\n\t\tIERC20Token[] _path,\n\t\tuint256 _amount,\n\t\tuint256 _minReturn,\n\t\taddress _for,\n\t\taddress _affiliateAccount,\n\t\tuint256 _affiliateFee\n\t) public returns (uint256);\n\n\t// deprecated, backward compatibility\n\tfunction convert(\n\t\tIERC20Token[] _path,\n\t\tuint256 _amount,\n\t\tuint256 _minReturn\n\t) public payable returns (uint256);\n\n\t// deprecated, backward compatibility\n\tfunction claimAndConvert(\n\t\tIERC20Token[] _path,\n\t\tuint256 _amount,\n\t\tuint256 _minReturn\n\t) public returns (uint256);\n\n\t// deprecated, backward compatibility\n\tfunction convertFor(\n\t\tIERC20Token[] _path,\n\t\tuint256 _amount,\n\t\tuint256 _minReturn,\n\t\taddress _for\n\t) public payable returns (uint256);\n\n\t// deprecated, backward compatibility\n\tfunction claimAndConvertFor(\n\t\tIERC20Token[] _path,\n\t\tuint256 _amount,\n\t\tuint256 _minReturn,\n\t\taddress _for\n\t) public returns (uint256);\n}\n" + }, + "solidity/contracts/converter/interfaces/ISovrynSwapFormula.sol": { + "content": "pragma solidity 0.4.26;\n\n/*\n SovrynSwap Formula interface\n*/\ncontract ISovrynSwapFormula {\n\tfunction purchaseTargetAmount(\n\t\tuint256 _supply,\n\t\tuint256 _reserveBalance,\n\t\tuint32 _reserveWeight,\n\t\tuint256 _amount\n\t) public view returns (uint256);\n\n\tfunction saleTargetAmount(\n\t\tuint256 _supply,\n\t\tuint256 _reserveBalance,\n\t\tuint32 _reserveWeight,\n\t\tuint256 _amount\n\t) public view returns (uint256);\n\n\tfunction crossReserveTargetAmount(\n\t\tuint256 _sourceReserveBalance,\n\t\tuint32 _sourceReserveWeight,\n\t\tuint256 _targetReserveBalance,\n\t\tuint32 _targetReserveWeight,\n\t\tuint256 _amount\n\t) public view returns (uint256);\n\n\tfunction fundCost(\n\t\tuint256 _supply,\n\t\tuint256 _reserveBalance,\n\t\tuint32 _reserveRatio,\n\t\tuint256 _amount\n\t) public view returns (uint256);\n\n\tfunction fundSupplyAmount(\n\t\tuint256 _supply,\n\t\tuint256 _reserveBalance,\n\t\tuint32 _reserveRatio,\n\t\tuint256 _amount\n\t) public view returns (uint256);\n\n\tfunction liquidateReserveAmount(\n\t\tuint256 _supply,\n\t\tuint256 _reserveBalance,\n\t\tuint32 _reserveRatio,\n\t\tuint256 _amount\n\t) public view returns (uint256);\n\n\tfunction balancedWeights(\n\t\tuint256 _primaryReserveStakedBalance,\n\t\tuint256 _primaryReserveBalance,\n\t\tuint256 _secondaryReserveBalance,\n\t\tuint256 _reserveRateNumerator,\n\t\tuint256 _reserveRateDenominator\n\t) public view returns (uint32, uint32);\n}\n" + }, + "solidity/contracts/utility/ReentrancyGuard.sol": { + "content": "pragma solidity 0.4.26;\n\n/**\n * @dev ReentrancyGuard\n *\n * The contract provides protection against re-entrancy - calling a function (directly or\n * indirectly) from within itself.\n */\ncontract ReentrancyGuard {\n\tuint256 private constant UNLOCKED = 1;\n\tuint256 private constant LOCKED = 2;\n\n\t// LOCKED while protected code is being executed, UNLOCKED otherwise\n\tuint256 private state = UNLOCKED;\n\n\t/**\n\t * @dev ensures instantiation only by sub-contracts\n\t */\n\tconstructor() internal {}\n\n\t// protects a function against reentrancy attacks\n\tmodifier protected() {\n\t\t_protected();\n\t\tstate = LOCKED;\n\t\t_;\n\t\tstate = UNLOCKED;\n\t}\n\n\t// error message binary size optimization\n\tfunction _protected() internal view {\n\t\trequire(state == UNLOCKED, \"ERR_REENTRANCY\");\n\t}\n}\n" + }, + "solidity/contracts/token/interfaces/IEtherToken.sol": { + "content": "pragma solidity 0.4.26;\nimport \"./IERC20Token.sol\";\n\n/*\n Ether Token interface\n*/\ncontract IEtherToken is IERC20Token {\n\tfunction deposit() public payable;\n\n\tfunction withdraw(uint256 _amount) public;\n\n\tfunction depositTo(address _to) public payable;\n\n\tfunction withdrawTo(address _to, uint256 _amount) public;\n}\n" + }, + "solidity/contracts/token/interfaces/ISmartToken.sol": { + "content": "pragma solidity 0.4.26;\nimport \"./IERC20Token.sol\";\nimport \"../../converter/interfaces/IConverterAnchor.sol\";\nimport \"../../utility/interfaces/IOwned.sol\";\n\n/*\n Smart Token interface\n*/\ncontract ISmartToken is IConverterAnchor, IERC20Token {\n\tfunction disableTransfers(bool _disable) public;\n\n\tfunction issue(address _to, uint256 _amount) public;\n\n\tfunction destroy(address _from, uint256 _amount) public;\n}\n" + }, + "solidity/contracts/utility/interfaces/IPriceOracle.sol": { + "content": "pragma solidity 0.4.26;\nimport \"./IConsumerPriceOracle.sol\";\nimport \"../../token/interfaces/IERC20Token.sol\";\n\n/*\n Price Oracle interface\n*/\ncontract IPriceOracle {\n\tfunction latestRate(IERC20Token _tokenA, IERC20Token _tokenB) public view returns (uint256, uint256);\n\n\tfunction lastUpdateTime() public view returns (uint256);\n\n\tfunction latestRateAndUpdateTime(IERC20Token _tokenA, IERC20Token _tokenB)\n\t\tpublic\n\t\tview\n\t\treturns (\n\t\t\tuint256,\n\t\t\tuint256,\n\t\t\tuint256\n\t\t);\n\n\tfunction tokenAOracle() public view returns (IConsumerPriceOracle) {\n\t\tthis;\n\t}\n\n\tfunction tokenBOracle() public view returns (IConsumerPriceOracle) {\n\t\tthis;\n\t}\n}\n" + }, + "solidity/contracts/utility/interfaces/IConsumerPriceOracle.sol": { + "content": "pragma solidity 0.4.26;\n\n/*\n Chainlink Price Oracle interface\n*/\ninterface IConsumerPriceOracle {\n\tfunction latestAnswer() external view returns (int256);\n\n\tfunction latestTimestamp() external view returns (uint256);\n}\n" + }, + "solidity/contracts/utility/PriceOracle.sol": { + "content": "pragma solidity 0.4.26;\nimport \"./Utils.sol\";\nimport \"./SafeMath.sol\";\nimport \"./interfaces/IPriceOracle.sol\";\nimport \"./interfaces/IConsumerPriceOracle.sol\";\n\n/**\n * @dev Provides the off-chain rate between two tokens\n *\n * The price oracle uses chainlink oracles internally to get the rates of the two tokens\n * with respect to a common denominator, and then returns the rate between them, which\n * is equivalent to the rate of TokenA / TokenB\n */\ncontract PriceOracle is IPriceOracle, Utils {\n\tusing SafeMath for uint256;\n\n\taddress private constant ETH_ADDRESS = 0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE;\n\tuint8 private constant ETH_DECIMALS = 18;\n\n\tIERC20Token public tokenA; // token A the oracle supports\n\tIERC20Token public tokenB; // token B the oracle supports\n\tmapping(address => uint8) public tokenDecimals; // token -> token decimals\n\n\tIConsumerPriceOracle public tokenAOracle; // token A chainlink price oracle\n\tIConsumerPriceOracle public tokenBOracle; // token B chainlink price oracle\n\tmapping(address => IConsumerPriceOracle) public tokensToOracles; // token -> price oracle for easier access\n\n\t/**\n\t * @dev initializes a new PriceOracle instance\n\t * note that the oracles must have the same common denominator (USD, ETH etc.)\n\t *\n\t * @param _tokenA first token to support\n\t * @param _tokenB second token to support\n\t * @param _tokenAOracle first token price oracle\n\t * @param _tokenBOracle second token price oracle\n\t */\n\tconstructor(\n\t\tIERC20Token _tokenA,\n\t\tIERC20Token _tokenB,\n\t\tIConsumerPriceOracle _tokenAOracle,\n\t\tIConsumerPriceOracle _tokenBOracle\n\t) public validUniqueAddresses(_tokenA, _tokenB) validUniqueAddresses(_tokenAOracle, _tokenBOracle) {\n\t\ttokenA = _tokenA;\n\t\ttokenB = _tokenB;\n\t\ttokenDecimals[_tokenA] = decimals(_tokenA);\n\t\ttokenDecimals[_tokenB] = decimals(_tokenB);\n\n\t\ttokenAOracle = _tokenAOracle;\n\t\ttokenBOracle = _tokenBOracle;\n\t\ttokensToOracles[_tokenA] = _tokenAOracle;\n\t\ttokensToOracles[_tokenB] = _tokenBOracle;\n\t}\n\n\t// ensures that the provided addresses are unique valid\n\tmodifier validUniqueAddresses(address _address1, address _address2) {\n\t\t_validUniqueAddresses(_address1, _address2);\n\t\t_;\n\t}\n\n\t// error message binary size optimization\n\tfunction _validUniqueAddresses(address _address1, address _address2) internal pure {\n\t\t_validAddress(_address1);\n\t\t_validAddress(_address2);\n\t\trequire(_address1 != _address2, \"ERR_SAME_ADDRESS\");\n\t}\n\n\t// ensures that the provides tokens are supported by the oracle\n\tmodifier supportedTokens(IERC20Token _tokenA, IERC20Token _tokenB) {\n\t\t_supportedTokens(_tokenA, _tokenB);\n\t\t_;\n\t}\n\n\t// error message binary size optimization\n\tfunction _supportedTokens(IERC20Token _tokenA, IERC20Token _tokenB) internal view {\n\t\t_validUniqueAddresses(_tokenA, _tokenB);\n\t\trequire(tokensToOracles[_tokenA] != address(0) && tokensToOracles[_tokenB] != address(0), \"ERR_UNSUPPORTED_TOKEN\");\n\t}\n\n\t/**\n\t * @dev returns the latest known rate between the two given tokens\n\t * for a given pair of tokens A and B, returns the rate of A / B\n\t * (the number of B units equivalent to a single A unit)\n\t * the rate is returned as a fraction (numerator / denominator) for accuracy\n\t *\n\t * @param _tokenA token to get the rate of 1 unit of\n\t * @param _tokenB token to get the rate of 1 `_tokenA` against\n\t *\n\t * @return numerator\n\t * @return denominator\n\t */\n\tfunction latestRate(IERC20Token _tokenA, IERC20Token _tokenB) public view supportedTokens(_tokenA, _tokenB) returns (uint256, uint256) {\n\t\tuint256 rateTokenA = uint256(tokensToOracles[_tokenA].latestAnswer());\n\t\tuint256 rateTokenB = uint256(tokensToOracles[_tokenB].latestAnswer());\n\t\tuint8 decimalsTokenA = tokenDecimals[_tokenA];\n\t\tuint8 decimalsTokenB = tokenDecimals[_tokenB];\n\n\t\t// the normalization works as follows:\n\t\t// - token A with decimals of dA and price of rateA per one token (e.g., for 10^dA weiA)\n\t\t// - token B with decimals of dB < dA and price of rateB per one token (e.g., for 10^dB weiB)\n\t\t// then the normalized rate, representing the rate between 1 weiA and 1 weiB is rateA / (rateB * 10^(dA - dB)).\n\t\t//\n\t\t// for example:\n\t\t// - token A with decimals of 5 and price of $10 per one token (e.g., for 100,000 weiA)\n\t\t// - token B with decimals of 2 and price of $2 per one token (e.g., for 100 weiB)\n\t\t// then the normalized rate would be: 5 / (2 * 10^3) = 0.0025, which is the correct rate since\n\t\t// 1 weiA costs $0.00005, 1 weiB costs $0.02, and weiA / weiB is 0.0025.\n\n\t\tif (decimalsTokenA > decimalsTokenB) {\n\t\t\trateTokenB = rateTokenB.mul(uint256(10)**(decimalsTokenA - decimalsTokenB));\n\t\t} else if (decimalsTokenA < decimalsTokenB) {\n\t\t\trateTokenA = rateTokenA.mul(uint256(10)**(decimalsTokenB - decimalsTokenA));\n\t\t}\n\n\t\treturn (rateTokenA, rateTokenB);\n\t}\n\n\t/**\n\t * @dev returns the timestamp of the last price update\n\t *\n\t * @return timestamp\n\t */\n\tfunction lastUpdateTime() public view returns (uint256) {\n\t\t// returns the oldest timestamp between the two\n\t\tuint256 timestampA = tokenAOracle.latestTimestamp();\n\t\tuint256 timestampB = tokenBOracle.latestTimestamp();\n\n\t\treturn timestampA > timestampB ? timestampA : timestampB;\n\t}\n\n\t/**\n\t * @dev returns both the rate and the timestamp of the last update in a single call (gas optimization)\n\t *\n\t * @param _tokenA token to get the rate of 1 unit of\n\t * @param _tokenB token to get the rate of 1 `_tokenA` against\n\t *\n\t * @return numerator\n\t * @return denominator\n\t * @return timestamp of the last update\n\t */\n\tfunction latestRateAndUpdateTime(IERC20Token _tokenA, IERC20Token _tokenB)\n\t\tpublic\n\t\tview\n\t\treturns (\n\t\t\tuint256,\n\t\t\tuint256,\n\t\t\tuint256\n\t\t)\n\t{\n\t\t(uint256 numerator, uint256 denominator) = latestRate(_tokenA, _tokenB);\n\n\t\treturn (numerator, denominator, lastUpdateTime());\n\t}\n\n\t/** @dev returns the decimals of a given token */\n\tfunction decimals(IERC20Token _token) private view returns (uint8) {\n\t\tif (_token == ETH_ADDRESS) {\n\t\t\treturn ETH_DECIMALS;\n\t\t}\n\n\t\treturn _token.decimals();\n\t}\n}\n" + }, + "solidity/contracts/utility/MocUSDToBTCOracle.sol": { + "content": "pragma solidity 0.4.26;\n\nimport \"./interfaces/IConsumerPriceOracle.sol\";\nimport \"./Owned.sol\";\nimport \"./SafeMath.sol\";\n\ninterface Medianizer {\n\tfunction peek() external view returns (bytes32, bool);\n}\n\ncontract MocUSDToBTCOracle is IConsumerPriceOracle, Owned {\n\tusing SafeMath for uint256;\n\n\tuint256 public constant DECIMALS = 10**18;\n\n\taddress public mocOracleAddress;\n\n\tevent SetMoCOracleAddress(address indexed mocOracleAddress, address changerAddress);\n\n\t/**\n\t * @dev initializes a ne MoC oracle\n\t *\n\t * @param _mocOracleAddress MoC oracle address\n\t */\n\tconstructor(address _mocOracleAddress) public {\n\t\tsetMoCOracleAddress(_mocOracleAddress);\n\t}\n\n\t/**\n\t * @dev returns the USD/BTC rate.\n\t *\n\t * @return always returns the rate of 10000\n\t */\n\tfunction latestAnswer() external view returns (int256) {\n\t\t(bytes32 value, bool hasValue) = Medianizer(mocOracleAddress).peek();\n\t\trequire(hasValue, \"Doesn't has value\");\n\n\t\treturn int256(DECIMALS.div(uint256(value)).mul(DECIMALS));\n\t}\n\n\t/**\n\t * @dev returns the USD/BTC update time.\n\t *\n\t * @return always returns current block's timestamp\n\t */\n\tfunction latestTimestamp() external view returns (uint256) {\n\t\treturn now; // MoC oracle doesn't return update timestamp\n\t}\n\n\t/**\n\t * @dev set MoC oracle address\n\t *\n\t * @param _mocOracleAddress MoC oracle address\n\t */\n\tfunction setMoCOracleAddress(address _mocOracleAddress) public ownerOnly {\n\t\trequire(_mocOracleAddress != address(0), \"_mocOracleAddress shall not be zero address\");\n\t\tmocOracleAddress = _mocOracleAddress;\n\t\temit SetMoCOracleAddress(mocOracleAddress, msg.sender);\n\t}\n}\n" + }, + "solidity/contracts/token/EtherToken.sol": { + "content": "pragma solidity 0.4.26;\nimport \"./ERC20Token.sol\";\nimport \"./interfaces/IEtherToken.sol\";\nimport \"../utility/SafeMath.sol\";\n\n/**\n * @dev Ether tokenization contract\n *\n * 'Owned' is specified here for readability reasons\n */\ncontract EtherToken is IEtherToken, ERC20Token {\n\tusing SafeMath for uint256;\n\n\t/**\n\t * @dev triggered when the total supply is increased\n\t *\n\t * @param _amount amount that gets added to the supply\n\t */\n\tevent Issuance(uint256 _amount);\n\n\t/**\n\t * @dev triggered when the total supply is decreased\n\t *\n\t * @param _amount amount that gets removed from the supply\n\t */\n\tevent Destruction(uint256 _amount);\n\n\t/**\n\t * @dev initializes a new EtherToken instance\n\t *\n\t * @param _name token name\n\t * @param _symbol token symbol\n\t */\n\tconstructor(string _name, string _symbol) public ERC20Token(_name, _symbol, 18, 0) {}\n\n\t/**\n\t * @dev deposit ether on behalf of the sender\n\t */\n\tfunction deposit() public payable {\n\t\tdepositTo(msg.sender);\n\t}\n\n\t/**\n\t * @dev withdraw ether to the sender's account\n\t *\n\t * @param _amount amount of ether to withdraw\n\t */\n\tfunction withdraw(uint256 _amount) public {\n\t\twithdrawTo(msg.sender, _amount);\n\t}\n\n\t/**\n\t * @dev deposit ether to be entitled for a given account\n\t *\n\t * @param _to account to be entitled for the ether\n\t */\n\tfunction depositTo(address _to) public payable notThis(_to) {\n\t\tbalanceOf[_to] = balanceOf[_to].add(msg.value); // add the value to the account balance\n\t\ttotalSupply = totalSupply.add(msg.value); // increase the total supply\n\n\t\temit Issuance(msg.value);\n\t\temit Transfer(this, _to, msg.value);\n\t}\n\n\t/**\n\t * @dev withdraw ether entitled by the sender to a given account\n\t *\n\t * @param _to account to receive the ether\n\t * @param _amount amount of ether to withdraw\n\t */\n\tfunction withdrawTo(address _to, uint256 _amount) public notThis(_to) {\n\t\tbalanceOf[msg.sender] = balanceOf[msg.sender].sub(_amount); // deduct the amount from the account balance\n\t\ttotalSupply = totalSupply.sub(_amount); // decrease the total supply\n\t\t_to.transfer(_amount); // send the amount to the target account\n\n\t\temit Transfer(msg.sender, this, _amount);\n\t\temit Destruction(_amount);\n\t}\n\n\t// ERC20 standard method overrides with some extra protection\n\n\t/**\n\t * @dev send coins\n\t * throws on any error rather then return a false flag to minimize user errors\n\t *\n\t * @param _to target address\n\t * @param _value transfer amount\n\t *\n\t * @return true if the transfer was successful, false if it wasn't\n\t */\n\tfunction transfer(address _to, uint256 _value) public notThis(_to) returns (bool success) {\n\t\tassert(super.transfer(_to, _value));\n\t\treturn true;\n\t}\n\n\t/**\n\t * @dev an account/contract attempts to get the coins\n\t * throws on any error rather then return a false flag to minimize user errors\n\t *\n\t * @param _from source address\n\t * @param _to target address\n\t * @param _value transfer amount\n\t *\n\t * @return true if the transfer was successful, false if it wasn't\n\t */\n\tfunction transferFrom(\n\t\taddress _from,\n\t\taddress _to,\n\t\tuint256 _value\n\t) public notThis(_to) returns (bool success) {\n\t\tassert(super.transferFrom(_from, _to, _value));\n\t\treturn true;\n\t}\n\n\t/**\n\t * @dev deposit ether in the account\n\t */\n\tfunction() external payable {\n\t\tdeposit();\n\t}\n}\n" + }, + "solidity/contracts/token/ERC20Token.sol": { + "content": "pragma solidity 0.4.26;\nimport \"./interfaces/IERC20Token.sol\";\nimport \"../utility/Utils.sol\";\nimport \"../utility/SafeMath.sol\";\n\n/**\n * @dev ERC20 Standard Token implementation\n */\ncontract ERC20Token is IERC20Token, Utils {\n\tusing SafeMath for uint256;\n\n\tstring public name;\n\tstring public symbol;\n\tuint8 public decimals;\n\tuint256 public totalSupply;\n\tmapping(address => uint256) public balanceOf;\n\tmapping(address => mapping(address => uint256)) public allowance;\n\n\t/**\n\t * @dev triggered when tokens are transferred between wallets\n\t *\n\t * @param _from source address\n\t * @param _to target address\n\t * @param _value transfer amount\n\t */\n\tevent Transfer(address indexed _from, address indexed _to, uint256 _value);\n\n\t/**\n\t * @dev triggered when a wallet allows another wallet to transfer tokens from on its behalf\n\t *\n\t * @param _owner wallet that approves the allowance\n\t * @param _spender wallet that receives the allowance\n\t * @param _value allowance amount\n\t */\n\tevent Approval(address indexed _owner, address indexed _spender, uint256 _value);\n\n\t/**\n\t * @dev initializes a new ERC20Token instance\n\t *\n\t * @param _name token name\n\t * @param _symbol token symbol\n\t * @param _decimals decimal points, for display purposes\n\t * @param _totalSupply total supply of token units\n\t */\n\tconstructor(\n\t\tstring _name,\n\t\tstring _symbol,\n\t\tuint8 _decimals,\n\t\tuint256 _totalSupply\n\t) public {\n\t\t// validate input\n\t\trequire(bytes(_name).length > 0, \"ERR_INVALID_NAME\");\n\t\trequire(bytes(_symbol).length > 0, \"ERR_INVALID_SYMBOL\");\n\n\t\tname = _name;\n\t\tsymbol = _symbol;\n\t\tdecimals = _decimals;\n\t\ttotalSupply = _totalSupply;\n\t\tbalanceOf[msg.sender] = _totalSupply;\n\t}\n\n\t/**\n\t * @dev transfers tokens to a given address\n\t * throws on any error rather then return a false flag to minimize user errors\n\t *\n\t * @param _to target address\n\t * @param _value transfer amount\n\t *\n\t * @return true if the transfer was successful, false if it wasn't\n\t */\n\tfunction transfer(address _to, uint256 _value) public validAddress(_to) returns (bool success) {\n\t\tbalanceOf[msg.sender] = balanceOf[msg.sender].sub(_value);\n\t\tbalanceOf[_to] = balanceOf[_to].add(_value);\n\t\temit Transfer(msg.sender, _to, _value);\n\t\treturn true;\n\t}\n\n\t/**\n\t * @dev transfers tokens to a given address on behalf of another address\n\t * throws on any error rather then return a false flag to minimize user errors\n\t *\n\t * @param _from source address\n\t * @param _to target address\n\t * @param _value transfer amount\n\t *\n\t * @return true if the transfer was successful, false if it wasn't\n\t */\n\tfunction transferFrom(\n\t\taddress _from,\n\t\taddress _to,\n\t\tuint256 _value\n\t) public validAddress(_from) validAddress(_to) returns (bool success) {\n\t\tallowance[_from][msg.sender] = allowance[_from][msg.sender].sub(_value);\n\t\tbalanceOf[_from] = balanceOf[_from].sub(_value);\n\t\tbalanceOf[_to] = balanceOf[_to].add(_value);\n\t\temit Transfer(_from, _to, _value);\n\t\treturn true;\n\t}\n\n\t/**\n\t * @dev allows another account/contract to transfers tokens on behalf of the caller\n\t * throws on any error rather then return a false flag to minimize user errors\n\t *\n\t * also, to minimize the risk of the approve/transferFrom attack vector\n\t * (see https://docs.google.com/document/d/1YLPtQxZu1UAvO9cZ1O2RPXBbT0mooh4DYKjA_jp-RLM/), approve has to be called twice\n\t * in 2 separate transactions - once to change the allowance to 0 and secondly to change it to the new allowance value\n\t *\n\t * @param _spender approved address\n\t * @param _value allowance amount\n\t *\n\t * @return true if the approval was successful, false if it wasn't\n\t */\n\tfunction approve(address _spender, uint256 _value) public validAddress(_spender) returns (bool success) {\n\t\t// if the allowance isn't 0, it can only be updated to 0 to prevent an allowance change immediately after withdrawal\n\t\trequire(_value == 0 || allowance[msg.sender][_spender] == 0, \"ERR_INVALID_AMOUNT\");\n\n\t\tallowance[msg.sender][_spender] = _value;\n\t\temit Approval(msg.sender, _spender, _value);\n\t\treturn true;\n\t}\n}\n" + }, + "solidity/contracts/converter/ConverterUpgrader.sol": { + "content": "pragma solidity 0.4.26;\nimport \"./interfaces/IConverter.sol\";\nimport \"./interfaces/IConverterUpgrader.sol\";\nimport \"./interfaces/IConverterFactory.sol\";\nimport \"../utility/ContractRegistryClient.sol\";\nimport \"../utility/interfaces/IWhitelist.sol\";\nimport \"../token/interfaces/IEtherToken.sol\";\nimport \"./types/liquidity-pool-v2/interfaces/ILiquidityPoolV2Converter.sol\";\n\n/**\n * @dev Converter Upgrader\n *\n * The converter upgrader contract allows upgrading an older converter contract (0.4 and up)\n * to the latest version.\n * To begin the upgrade process, simply execute the 'upgrade' function.\n * At the end of the process, the ownership of the newly upgraded converter will be transferred\n * back to the original owner and the original owner will need to execute the 'acceptOwnership' function.\n *\n * The address of the new converter is available in the ConverterUpgrade event.\n *\n * Note that for older converters that don't yet have the 'upgrade' function, ownership should first\n * be transferred manually to the ConverterUpgrader contract using the 'transferOwnership' function\n * and then the upgrader 'upgrade' function should be executed directly.\n */\ncontract ConverterUpgrader is IConverterUpgrader, ContractRegistryClient {\n\taddress private constant ETH_RESERVE_ADDRESS = 0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE;\n\tIEtherToken public etherToken;\n\n\t/**\n\t * @dev triggered when the contract accept a converter ownership\n\t *\n\t * @param _converter converter address\n\t * @param _owner new owner - local upgrader address\n\t */\n\tevent ConverterOwned(address indexed _converter, address indexed _owner);\n\n\t/**\n\t * @dev triggered when the upgrading process is done\n\t *\n\t * @param _oldConverter old converter address\n\t * @param _newConverter new converter address\n\t */\n\tevent ConverterUpgrade(address indexed _oldConverter, address indexed _newConverter);\n\n\t/**\n\t * @dev initializes a new ConverterUpgrader instance\n\t *\n\t * @param _registry address of a contract registry contract\n\t */\n\tconstructor(IContractRegistry _registry, IEtherToken _etherToken) public ContractRegistryClient(_registry) {\n\t\tetherToken = _etherToken;\n\t}\n\n\t/**\n\t * @dev upgrades an old converter to the latest version\n\t * will throw if ownership wasn't transferred to the upgrader before calling this function.\n\t * ownership of the new converter will be transferred back to the original owner.\n\t * fires the ConverterUpgrade event upon success.\n\t * can only be called by a converter\n\t *\n\t * @param _version old converter version\n\t */\n\tfunction upgrade(bytes32 _version) public {\n\t\tupgradeOld(IConverter(msg.sender), _version);\n\t}\n\n\t/**\n\t * @dev upgrades an old converter to the latest version\n\t * will throw if ownership wasn't transferred to the upgrader before calling this function.\n\t * ownership of the new converter will be transferred back to the original owner.\n\t * fires the ConverterUpgrade event upon success.\n\t * can only be called by a converter\n\t *\n\t * @param _version old converter version\n\t */\n\tfunction upgrade(uint16 _version) public {\n\t\tupgradeOld(IConverter(msg.sender), bytes32(_version));\n\t}\n\n\t/**\n\t * @dev upgrades an old converter to the latest version\n\t * will throw if ownership wasn't transferred to the upgrader before calling this function.\n\t * ownership of the new converter will be transferred back to the original owner.\n\t * fires the ConverterUpgrade event upon success.\n\t *\n\t * @param _converter old converter contract address\n\t * @param _version old converter version\n\t */\n\tfunction upgradeOld(IConverter _converter, bytes32 _version) public {\n\t\t_version;\n\t\tIConverter converter = IConverter(_converter);\n\t\taddress prevOwner = converter.owner();\n\t\tacceptConverterOwnership(converter);\n\t\tIConverter newConverter = createConverter(converter);\n\t\tcopyReserves(converter, newConverter);\n\t\tcopyConversionFee(converter, newConverter);\n\t\ttransferReserveBalances(converter, newConverter);\n\t\tIConverterAnchor anchor = converter.token();\n\n\t\t// get the activation status before it's being invalidated\n\t\tbool activate = isV28OrHigherConverter(converter) && converter.isActive();\n\n\t\tif (anchor.owner() == address(converter)) {\n\t\t\tconverter.transferTokenOwnership(newConverter);\n\t\t\tnewConverter.acceptAnchorOwnership();\n\t\t}\n\n\t\thandleTypeSpecificData(converter, newConverter, activate);\n\n\t\tconverter.transferOwnership(prevOwner);\n\t\tnewConverter.transferOwnership(prevOwner);\n\n\t\temit ConverterUpgrade(address(converter), address(newConverter));\n\t}\n\n\t/**\n\t * @dev the first step when upgrading a converter is to transfer the ownership to the local contract.\n\t * the upgrader contract then needs to accept the ownership transfer before initiating\n\t * the upgrade process.\n\t * fires the ConverterOwned event upon success\n\t *\n\t * @param _oldConverter converter to accept ownership of\n\t */\n\tfunction acceptConverterOwnership(IConverter _oldConverter) private {\n\t\t_oldConverter.acceptOwnership();\n\t\temit ConverterOwned(_oldConverter, this);\n\t}\n\n\t/**\n\t * @dev creates a new converter with same basic data as the original old converter\n\t * the newly created converter will have no reserves at this step.\n\t *\n\t * @param _oldConverter old converter contract address\n\t *\n\t * @return the new converter new converter contract address\n\t */\n\tfunction createConverter(IConverter _oldConverter) private returns (IConverter) {\n\t\tIConverterAnchor anchor = _oldConverter.token();\n\t\tuint32 maxConversionFee = _oldConverter.maxConversionFee();\n\t\tuint16 reserveTokenCount = _oldConverter.connectorTokenCount();\n\n\t\t// determine new converter type\n\t\tuint16 newType = 0;\n\t\t// new converter - get the type from the converter itself\n\t\tif (isV28OrHigherConverter(_oldConverter))\n\t\t\tnewType = _oldConverter.converterType();\n\t\t\t// old converter - if it has 1 reserve token, the type is a liquid token, otherwise the type liquidity pool\n\t\telse if (reserveTokenCount > 1) newType = 1;\n\n\t\tIConverterFactory converterFactory = IConverterFactory(addressOf(CONVERTER_FACTORY));\n\t\tIConverter converter = converterFactory.createConverter(newType, anchor, registry, maxConversionFee);\n\n\t\tconverter.acceptOwnership();\n\t\treturn converter;\n\t}\n\n\t/**\n\t * @dev copies the reserves from the old converter to the new one.\n\t * note that this will not work for an unlimited number of reserves due to block gas limit constraints.\n\t *\n\t * @param _oldConverter old converter contract address\n\t * @param _newConverter new converter contract address\n\t */\n\tfunction copyReserves(IConverter _oldConverter, IConverter _newConverter) private {\n\t\tuint16 reserveTokenCount = _oldConverter.connectorTokenCount();\n\n\t\tfor (uint16 i = 0; i < reserveTokenCount; i++) {\n\t\t\taddress reserveAddress = _oldConverter.connectorTokens(i);\n\t\t\t(, uint32 weight, , , ) = _oldConverter.connectors(reserveAddress);\n\n\t\t\t// Ether reserve\n\t\t\tif (reserveAddress == ETH_RESERVE_ADDRESS) {\n\t\t\t\t_newConverter.addReserve(IERC20Token(ETH_RESERVE_ADDRESS), weight);\n\t\t\t}\n\t\t\t// Ether reserve token\n\t\t\telse if (reserveAddress == address(etherToken)) {\n\t\t\t\t_newConverter.addReserve(IERC20Token(ETH_RESERVE_ADDRESS), weight);\n\t\t\t}\n\t\t\t// ERC20 reserve token\n\t\t\telse {\n\t\t\t\t_newConverter.addReserve(IERC20Token(reserveAddress), weight);\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * @dev copies the conversion fee from the old converter to the new one\n\t *\n\t * @param _oldConverter old converter contract address\n\t * @param _newConverter new converter contract address\n\t */\n\tfunction copyConversionFee(IConverter _oldConverter, IConverter _newConverter) private {\n\t\tuint32 conversionFee = _oldConverter.conversionFee();\n\t\t_newConverter.setConversionFee(conversionFee);\n\t}\n\n\t/**\n\t * @dev transfers the balance of each reserve in the old converter to the new one.\n\t * note that the function assumes that the new converter already has the exact same number of\n\t * also, this will not work for an unlimited number of reserves due to block gas limit constraints.\n\t *\n\t * @param _oldConverter old converter contract address\n\t * @param _newConverter new converter contract address\n\t */\n\tfunction transferReserveBalances(IConverter _oldConverter, IConverter _newConverter) private {\n\t\tuint256 reserveBalance;\n\t\tuint16 reserveTokenCount = _oldConverter.connectorTokenCount();\n\n\t\tfor (uint16 i = 0; i < reserveTokenCount; i++) {\n\t\t\taddress reserveAddress = _oldConverter.connectorTokens(i);\n\t\t\t// Ether reserve\n\t\t\tif (reserveAddress == ETH_RESERVE_ADDRESS) {\n\t\t\t\t_oldConverter.withdrawETH(address(_newConverter));\n\t\t\t}\n\t\t\t// Ether reserve token\n\t\t\telse if (reserveAddress == address(etherToken)) {\n\t\t\t\treserveBalance = etherToken.balanceOf(_oldConverter);\n\t\t\t\t_oldConverter.withdrawTokens(etherToken, address(this), reserveBalance);\n\t\t\t\tetherToken.withdrawTo(address(_newConverter), reserveBalance);\n\t\t\t}\n\t\t\t// ERC20 reserve token\n\t\t\telse {\n\t\t\t\tIERC20Token connector = IERC20Token(reserveAddress);\n\t\t\t\treserveBalance = connector.balanceOf(_oldConverter);\n\t\t\t\t_oldConverter.withdrawTokens(connector, address(_newConverter), reserveBalance);\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * @dev handles upgrading custom (type specific) data from the old converter to the new one\n\t *\n\t * @param _oldConverter old converter contract address\n\t * @param _newConverter new converter contract address\n\t * @param _activate activate the new converter\n\t */\n\tfunction handleTypeSpecificData(\n\t\tIConverter _oldConverter,\n\t\tIConverter _newConverter,\n\t\tbool _activate\n\t) private {\n\t\tif (!isV28OrHigherConverter(_oldConverter)) return;\n\n\t\tuint16 converterType = _oldConverter.converterType();\n\t\tif (converterType == 2) {\n\t\t\tuint16 reserveTokenCount = _oldConverter.connectorTokenCount();\n\t\t\tfor (uint16 i = 0; i < reserveTokenCount; i++) {\n\t\t\t\t// copy reserve staked balance\n\t\t\t\tIERC20Token reserveTokenAddress = _oldConverter.connectorTokens(i);\n\t\t\t\tuint256 balance = ILiquidityPoolV2Converter(_oldConverter).reserveStakedBalance(reserveTokenAddress);\n\t\t\t\tILiquidityPoolV2Converter(_newConverter).setReserveStakedBalance(reserveTokenAddress, balance);\n\t\t\t}\n\n\t\t\tif (!_activate) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// get the primary reserve token\n\t\t\tIERC20Token primaryReserveToken = ILiquidityPoolV2Converter(_oldConverter).primaryReserveToken();\n\n\t\t\t// get the chainlink price oracles\n\t\t\tIPriceOracle priceOracle = ILiquidityPoolV2Converter(_oldConverter).priceOracle();\n\t\t\tIConsumerPriceOracle oracleA = priceOracle.tokenAOracle();\n\t\t\tIConsumerPriceOracle oracleB = priceOracle.tokenBOracle();\n\n\t\t\t// activate the new converter\n\t\t\tILiquidityPoolV2Converter(_newConverter).activate(primaryReserveToken, oracleA, oracleB);\n\t\t}\n\t}\n\n\tbytes4 private constant IS_V28_OR_HIGHER_FUNC_SELECTOR = bytes4(keccak256(\"isV28OrHigher()\"));\n\n\t// using assembly code to identify converter version\n\t// can't rely on the version number since the function had a different signature in older converters\n\tfunction isV28OrHigherConverter(IConverter _converter) internal view returns (bool) {\n\t\tbool success;\n\t\tuint256[1] memory ret;\n\t\tbytes memory data = abi.encodeWithSelector(IS_V28_OR_HIGHER_FUNC_SELECTOR);\n\n\t\tassembly {\n\t\t\tsuccess := staticcall(\n\t\t\t\t5000, // isV28OrHigher consumes 190 gas, but just for extra safety\n\t\t\t\t_converter, // destination address\n\t\t\t\tadd(data, 32), // input buffer (starts after the first 32 bytes in the `data` array)\n\t\t\t\tmload(data), // input length (loaded from the first 32 bytes in the `data` array)\n\t\t\t\tret, // output buffer\n\t\t\t\t32 // output length\n\t\t\t)\n\t\t}\n\n\t\treturn success && ret[0] != 0;\n\t}\n}\n" + }, + "solidity/contracts/converter/interfaces/IConverterUpgrader.sol": { + "content": "pragma solidity 0.4.26;\n\n/*\n Converter Upgrader interface\n*/\ncontract IConverterUpgrader {\n\tfunction upgrade(bytes32 _version) public;\n\n\tfunction upgrade(uint16 _version) public;\n}\n" + }, + "solidity/contracts/converter/types/liquidity-pool-v2/interfaces/ILiquidityPoolV2Converter.sol": { + "content": "pragma solidity 0.4.26;\nimport \"../../../../token/interfaces/IERC20Token.sol\";\nimport \"../../../../utility/interfaces/IPriceOracle.sol\";\n\n/*\n Liquidity Pool V2 Converter interface\n*/\ncontract ILiquidityPoolV2Converter {\n function reserveStakedBalance(IERC20Token _reserveToken) public view returns (uint256);\n function setReserveStakedBalance(IERC20Token _reserveToken, uint256 _balance) public;\n\n function primaryReserveToken() public view returns (IERC20Token);\n\n function priceOracle() public view returns (IPriceOracle);\n\n function activate(IERC20Token _primaryReserveToken, IConsumerPriceOracle _primaryReserveOracle, IConsumerPriceOracle _secondaryReserveOracle) public;\n}\n" + }, + "solidity/contracts/utility/Whitelist.sol": { + "content": "pragma solidity 0.4.26;\nimport \"./Owned.sol\";\nimport \"./Utils.sol\";\nimport \"./interfaces/IWhitelist.sol\";\n\n/**\n * @dev The contract manages a list of whitelisted addresses\n */\ncontract Whitelist is IWhitelist, Owned, Utils {\n\tmapping(address => bool) private whitelist;\n\n\t/**\n\t * @dev triggered when an address is added to the whitelist\n\t *\n\t * @param _address address that's added from the whitelist\n\t */\n\tevent AddressAddition(address indexed _address);\n\n\t/**\n\t * @dev triggered when an address is removed from the whitelist\n\t *\n\t * @param _address address that's removed from the whitelist\n\t */\n\tevent AddressRemoval(address indexed _address);\n\n\t/**\n\t * @dev returns true if a given address is whitelisted, false if not\n\t *\n\t * @param _address address to check\n\t *\n\t * @return true if the address is whitelisted, false if not\n\t */\n\tfunction isWhitelisted(address _address) public view returns (bool) {\n\t\treturn whitelist[_address];\n\t}\n\n\t/**\n\t * @dev adds a given address to the whitelist\n\t *\n\t * @param _address address to add\n\t */\n\tfunction addAddress(address _address) public ownerOnly validAddress(_address) {\n\t\tif (whitelist[_address])\n\t\t\t// checks if the address is already whitelisted\n\t\t\treturn;\n\n\t\twhitelist[_address] = true;\n\t\temit AddressAddition(_address);\n\t}\n\n\t/**\n\t * @dev adds a list of addresses to the whitelist\n\t *\n\t * @param _addresses addresses to add\n\t */\n\tfunction addAddresses(address[] _addresses) public {\n\t\tfor (uint256 i = 0; i < _addresses.length; i++) {\n\t\t\taddAddress(_addresses[i]);\n\t\t}\n\t}\n\n\t/**\n\t * @dev removes a given address from the whitelist\n\t *\n\t * @param _address address to remove\n\t */\n\tfunction removeAddress(address _address) public ownerOnly {\n\t\tif (!whitelist[_address])\n\t\t\t// checks if the address is actually whitelisted\n\t\t\treturn;\n\n\t\twhitelist[_address] = false;\n\t\temit AddressRemoval(_address);\n\t}\n\n\t/**\n\t * @dev removes a list of addresses from the whitelist\n\t *\n\t * @param _addresses addresses to remove\n\t */\n\tfunction removeAddresses(address[] _addresses) public {\n\t\tfor (uint256 i = 0; i < _addresses.length; i++) {\n\t\t\tremoveAddress(_addresses[i]);\n\t\t}\n\t}\n}\n" + }, + "solidity/contracts/utility/ContractRegistry.sol": { + "content": "pragma solidity 0.4.26;\nimport \"./Owned.sol\";\nimport \"./Utils.sol\";\nimport \"./interfaces/IContractRegistry.sol\";\n\n/**\n * @dev Contract Registry\n *\n * The contract registry keeps contract addresses by name.\n * The owner can update contract addresses so that a contract name always points to the latest version\n * of the given contract.\n * Other contracts can query the registry to get updated addresses instead of depending on specific\n * addresses.\n *\n * Note that contract names are limited to 32 bytes UTF8 encoded ASCII strings to optimize gas costs\n */\ncontract ContractRegistry is IContractRegistry, Owned, Utils {\n\tstruct RegistryItem {\n\t\taddress contractAddress; // contract address\n\t\tuint256 nameIndex; // index of the item in the list of contract names\n\t}\n\n\tmapping(bytes32 => RegistryItem) private items; // name -> RegistryItem mapping\n\tstring[] public contractNames; // list of all registered contract names\n\n\t/**\n\t * @dev triggered when an address pointed to by a contract name is modified\n\t *\n\t * @param _contractName contract name\n\t * @param _contractAddress new contract address\n\t */\n\tevent AddressUpdate(bytes32 indexed _contractName, address _contractAddress);\n\n\t/**\n\t * @dev returns the number of items in the registry\n\t *\n\t * @return number of items\n\t */\n\tfunction itemCount() public view returns (uint256) {\n\t\treturn contractNames.length;\n\t}\n\n\t/**\n\t * @dev returns the address associated with the given contract name\n\t *\n\t * @param _contractName contract name\n\t *\n\t * @return contract address\n\t */\n\tfunction addressOf(bytes32 _contractName) public view returns (address) {\n\t\treturn items[_contractName].contractAddress;\n\t}\n\n\t/**\n\t * @dev registers a new address for the contract name in the registry\n\t *\n\t * @param _contractName contract name\n\t * @param _contractAddress contract address\n\t */\n\tfunction registerAddress(bytes32 _contractName, address _contractAddress) public ownerOnly validAddress(_contractAddress) {\n\t\t// validate input\n\t\trequire(_contractName.length > 0, \"ERR_INVALID_NAME\");\n\n\t\t// check if any change is needed\n\t\taddress currentAddress = items[_contractName].contractAddress;\n\t\tif (_contractAddress == currentAddress) return;\n\n\t\tif (currentAddress == address(0)) {\n\t\t\t// add the contract name to the name list\n\t\t\tuint256 i = contractNames.push(bytes32ToString(_contractName));\n\t\t\t// update the item's index in the list\n\t\t\titems[_contractName].nameIndex = i - 1;\n\t\t}\n\n\t\t// update the address in the registry\n\t\titems[_contractName].contractAddress = _contractAddress;\n\n\t\t// dispatch the address update event\n\t\temit AddressUpdate(_contractName, _contractAddress);\n\t}\n\n\t/**\n\t * @dev removes an existing contract address from the registry\n\t *\n\t * @param _contractName contract name\n\t */\n\tfunction unregisterAddress(bytes32 _contractName) public ownerOnly {\n\t\t// validate input\n\t\trequire(_contractName.length > 0, \"ERR_INVALID_NAME\");\n\t\trequire(items[_contractName].contractAddress != address(0), \"ERR_INVALID_NAME\");\n\n\t\t// remove the address from the registry\n\t\titems[_contractName].contractAddress = address(0);\n\n\t\t// if there are multiple items in the registry, move the last element to the deleted element's position\n\t\t// and modify last element's registryItem.nameIndex in the items collection to point to the right position in contractNames\n\t\tif (contractNames.length > 1) {\n\t\t\tstring memory lastContractNameString = contractNames[contractNames.length - 1];\n\t\t\tuint256 unregisterIndex = items[_contractName].nameIndex;\n\n\t\t\tcontractNames[unregisterIndex] = lastContractNameString;\n\t\t\tbytes32 lastContractName = stringToBytes32(lastContractNameString);\n\t\t\tRegistryItem storage registryItem = items[lastContractName];\n\t\t\tregistryItem.nameIndex = unregisterIndex;\n\t\t}\n\n\t\t// remove the last element from the name list\n\t\tcontractNames.length--;\n\t\t// zero the deleted element's index\n\t\titems[_contractName].nameIndex = 0;\n\n\t\t// dispatch the address update event\n\t\temit AddressUpdate(_contractName, address(0));\n\t}\n\n\t/**\n\t * @dev utility, converts bytes32 to a string\n\t * note that the bytes32 argument is assumed to be UTF8 encoded ASCII string\n\t *\n\t * @return string representation of the given bytes32 argument\n\t */\n\tfunction bytes32ToString(bytes32 _bytes) private pure returns (string) {\n\t\tbytes memory byteArray = new bytes(32);\n\t\tfor (uint256 i = 0; i < 32; i++) {\n\t\t\tbyteArray[i] = _bytes[i];\n\t\t}\n\n\t\treturn string(byteArray);\n\t}\n\n\t/**\n\t * @dev utility, converts string to bytes32\n\t * note that the bytes32 argument is assumed to be UTF8 encoded ASCII string\n\t *\n\t * @return string representation of the given bytes32 argument\n\t */\n\tfunction stringToBytes32(string memory _string) private pure returns (bytes32) {\n\t\tbytes32 result;\n\t\tassembly {\n\t\t\tresult := mload(add(_string, 32))\n\t\t}\n\t\treturn result;\n\t}\n\n\t/**\n\t * @dev deprecated, backward compatibility\n\t */\n\tfunction getAddress(bytes32 _contractName) public view returns (address) {\n\t\treturn addressOf(_contractName);\n\t}\n}\n" + }, + "solidity/contracts/converter/interfaces/ITypedConverterFactory.sol": { + "content": "pragma solidity 0.4.26;\nimport \"./IConverter.sol\";\nimport \"./IConverterAnchor.sol\";\nimport \"../../utility/interfaces/IContractRegistry.sol\";\n\n/*\n Typed Converter Factory interface\n*/\ncontract ITypedConverterFactory {\n\tfunction converterType() public pure returns (uint16);\n\n\tfunction createConverter(\n\t\tIConverterAnchor _anchor,\n\t\tIContractRegistry _registry,\n\t\tuint32 _maxConversionFee\n\t) public returns (IConverter);\n}\n" + }, + "solidity/contracts/converter/types/liquidity-pool-v2/LiquidityPoolV2ConverterFactory.sol": { + "content": "pragma solidity 0.4.26;\r\nimport \"./LiquidityPoolV2Converter.sol\";\r\nimport \"./interfaces/IPoolTokensContainer.sol\";\r\nimport \"../../interfaces/ITypedConverterFactory.sol\";\r\n\r\n/*\r\n LiquidityPoolV2Converter Factory\r\n*/\r\ncontract LiquidityPoolV2ConverterFactory is ITypedConverterFactory {\r\n /**\r\n * @dev returns the converter type the factory is associated with\r\n *\r\n * @return converter type\r\n */\r\n function converterType() public pure returns (uint16) {\r\n return 2;\r\n }\r\n\r\n /**\r\n * @dev creates a new converter with the given arguments and transfers\r\n * the ownership to the caller\r\n *\r\n * @param _anchor anchor governed by the converter\r\n * @param _registry address of a contract registry contract\r\n * @param _maxConversionFee maximum conversion fee, represented in ppm\r\n *\r\n * @return new converter\r\n */\r\n function createConverter(IConverterAnchor _anchor, IContractRegistry _registry, uint32 _maxConversionFee) public returns (IConverter) {\r\n ConverterBase converter = new LiquidityPoolV2Converter(IPoolTokensContainer(_anchor), _registry, _maxConversionFee);\r\n converter.transferOwnership(msg.sender);\r\n return converter;\r\n }\r\n}\r\n" + }, + "solidity/contracts/converter/types/liquidity-pool-v2/LiquidityPoolV2Converter.sol": { + "content": "pragma solidity 0.4.26;\r\nimport \"./PoolTokensContainer.sol\";\r\nimport \"./LiquidityPoolV2ConverterCustomFactory.sol\";\r\nimport \"../../LiquidityPoolConverter.sol\";\r\nimport \"../../interfaces/IConverterFactory.sol\";\r\nimport \"../../../utility/interfaces/IPriceOracle.sol\";\r\n\r\n/**\r\n * @dev Liquidity Pool v2 Converter\r\n *\r\n * The liquidity pool v2 converter is a specialized version of a converter that uses\r\n * price oracles to rebalance the reserve weights in such a way that the primary token\r\n * balance always strives to match the staked balance.\r\n *\r\n * This type of liquidity pool always has 2 reserves and the reserve weights are dynamic.\r\n*/\r\ncontract LiquidityPoolV2Converter is LiquidityPoolConverter {\r\n uint8 internal constant AMPLIFICATION_FACTOR = 20; // factor to use for conversion calculations (reduces slippage)\r\n uint32 internal constant MAX_DYNAMIC_FEE_FACTOR = 100000; // maximum dynamic-fee factor; must be <= CONVERSION_FEE_RESOLUTION\r\n\r\n struct Fraction {\r\n uint256 n; // numerator\r\n uint256 d; // denominator\r\n }\r\n\r\n IPriceOracle public priceOracle; // external price oracle\r\n IERC20Token public primaryReserveToken; // primary reserve in the pool\r\n IERC20Token public secondaryReserveToken; // secondary reserve in the pool (cache)\r\n mapping (address => uint256) private stakedBalances; // tracks the staked liquidity in the pool plus the fees\r\n mapping (address => ISmartToken) private reservesToPoolTokens; // maps each reserve to its pool token\r\n mapping (address => IERC20Token) private poolTokensToReserves; // maps each pool token to its reserve\r\n\r\n // the period of time it takes to the last rate to fully take effect\r\n uint256 private constant RATE_PROPAGATION_PERIOD = 10 minutes;\r\n\r\n Fraction public referenceRate; // reference rate from the previous block(s) of 1 primary token in secondary tokens\r\n uint256 public referenceRateUpdateTime; // last time when the reference rate was updated (in seconds)\r\n\r\n Fraction public lastConversionRate; // last conversion rate of 1 primary token in secondary tokens\r\n\r\n // used by the temp liquidity limit mechanism during the pilot\r\n mapping (address => uint256) public maxStakedBalances;\r\n bool public maxStakedBalanceEnabled = true;\r\n\r\n uint256 public dynamicFeeFactor = 70000; // initial dynamic fee factor is 7%, represented in ppm\r\n\r\n /**\r\n * @dev triggered when the dynamic fee factor is updated\r\n *\r\n * @param _prevFactor previous factor percentage, represented in ppm\r\n * @param _newFactor new factor percentage, represented in ppm\r\n */\r\n event DynamicFeeFactorUpdate(uint256 _prevFactor, uint256 _newFactor);\r\n\r\n /**\r\n * @dev initializes a new LiquidityPoolV2Converter instance\r\n *\r\n * @param _poolTokensContainer pool tokens container governed by the converter\r\n * @param _registry address of a contract registry contract\r\n * @param _maxConversionFee maximum conversion fee, represented in ppm\r\n */\r\n constructor(IPoolTokensContainer _poolTokensContainer, IContractRegistry _registry, uint32 _maxConversionFee)\r\n public LiquidityPoolConverter(_poolTokensContainer, _registry, _maxConversionFee)\r\n {\r\n }\r\n\r\n // ensures the address is a pool token\r\n modifier validPoolToken(ISmartToken _address) {\r\n _validPoolToken(_address);\r\n _;\r\n }\r\n\r\n // error message binary size optimization\r\n function _validPoolToken(ISmartToken _address) internal view {\r\n require(poolTokensToReserves[_address] != address(0), \"ERR_INVALID_POOL_TOKEN\");\r\n }\r\n\r\n /**\r\n * @dev returns the converter type\r\n *\r\n * @return see the converter types in the the main contract doc\r\n */\r\n function converterType() public pure returns (uint16) {\r\n return 2;\r\n }\r\n\r\n /**\r\n * @dev returns true if the converter is active, false otherwise\r\n *\r\n * @return true if the converter is active, false otherwise\r\n */\r\n function isActive() public view returns (bool) {\r\n return super.isActive() && priceOracle != address(0);\r\n }\r\n\r\n /**\r\n * @dev returns the liquidity amplification factor in the pool\r\n *\r\n * @return liquidity amplification factor\r\n */\r\n function amplificationFactor() public pure returns (uint8) {\r\n return AMPLIFICATION_FACTOR;\r\n }\r\n\r\n /**\r\n * @dev sets the pool's primary reserve token / price oracles and activates the pool\r\n * each oracle must be able to provide the rate for each reserve token\r\n * note that the oracle must be whitelisted prior to the call\r\n * can only be called by the owner while the pool is inactive\r\n *\r\n * @param _primaryReserveToken address of the pool's primary reserve token\r\n * @param _primaryReserveOracle address of a chainlink price oracle for the primary reserve token\r\n * @param _secondaryReserveOracle address of a chainlink price oracle for the secondary reserve token\r\n */\r\n function activate(IERC20Token _primaryReserveToken, IConsumerPriceOracle _primaryReserveOracle, IConsumerPriceOracle _secondaryReserveOracle)\r\n public\r\n inactive\r\n ownerOnly\r\n validReserve(_primaryReserveToken)\r\n notThis(_primaryReserveOracle)\r\n notThis(_secondaryReserveOracle)\r\n validAddress(_primaryReserveOracle)\r\n validAddress(_secondaryReserveOracle)\r\n {\r\n // validate anchor ownership\r\n require(anchor.owner() == address(this), \"ERR_ANCHOR_NOT_OWNED\");\r\n\r\n // validate oracles\r\n IWhitelist oracleWhitelist = IWhitelist(addressOf(CHAINLINK_ORACLE_WHITELIST));\r\n require(oracleWhitelist.isWhitelisted(_primaryReserveOracle), \"ERR_INVALID_ORACLE\");\r\n require(oracleWhitelist.isWhitelisted(_secondaryReserveOracle), \"ERR_INVALID_ORACLE\");\r\n\r\n // create the converter's pool tokens if they don't already exist\r\n createPoolTokens();\r\n\r\n // sets the primary & secondary reserve tokens\r\n primaryReserveToken = _primaryReserveToken;\r\n if (_primaryReserveToken == reserveTokens[0])\r\n secondaryReserveToken = reserveTokens[1];\r\n else\r\n secondaryReserveToken = reserveTokens[0];\r\n\r\n // creates and initalizes the price oracle and sets initial rates\r\n LiquidityPoolV2ConverterCustomFactory customFactory =\r\n LiquidityPoolV2ConverterCustomFactory(IConverterFactory(addressOf(CONVERTER_FACTORY)).customFactories(converterType()));\r\n priceOracle = customFactory.createPriceOracle(_primaryReserveToken, secondaryReserveToken, _primaryReserveOracle, _secondaryReserveOracle);\r\n\r\n (referenceRate.n, referenceRate.d) = priceOracle.latestRate(primaryReserveToken, secondaryReserveToken);\r\n lastConversionRate = referenceRate;\r\n\r\n referenceRateUpdateTime = time();\r\n\r\n // if we are upgrading from an older converter, make sure that reserve balances are in-sync and rebalance\r\n uint256 primaryReserveStakedBalance = reserveStakedBalance(primaryReserveToken);\r\n uint256 primaryReserveBalance = reserveBalance(primaryReserveToken);\r\n uint256 secondaryReserveBalance = reserveBalance(secondaryReserveToken);\r\n\r\n if (primaryReserveStakedBalance == primaryReserveBalance) {\r\n if (primaryReserveStakedBalance > 0 || secondaryReserveBalance > 0) {\r\n rebalance();\r\n }\r\n }\r\n else if (primaryReserveStakedBalance > 0 && primaryReserveBalance > 0 && secondaryReserveBalance > 0) {\r\n rebalance();\r\n }\r\n\r\n emit Activation(converterType(), anchor, true);\r\n }\r\n\r\n /**\r\n * @dev updates the current dynamic fee factor\r\n * can only be called by the contract owner\r\n *\r\n * @param _dynamicFeeFactor new dynamic fee factor, represented in ppm\r\n */\r\n function setDynamicFeeFactor(uint256 _dynamicFeeFactor) public ownerOnly {\r\n require(_dynamicFeeFactor <= MAX_DYNAMIC_FEE_FACTOR, \"ERR_INVALID_DYNAMIC_FEE_FACTOR\");\r\n emit DynamicFeeFactorUpdate(dynamicFeeFactor, _dynamicFeeFactor);\r\n dynamicFeeFactor = _dynamicFeeFactor;\r\n }\r\n\r\n /**\r\n * @dev returns the staked balance of a given reserve token\r\n *\r\n * @param _reserveToken reserve token address\r\n *\r\n * @return staked balance\r\n */\r\n function reserveStakedBalance(IERC20Token _reserveToken)\r\n public\r\n view\r\n validReserve(_reserveToken)\r\n returns (uint256)\r\n {\r\n return stakedBalances[_reserveToken];\r\n }\r\n\r\n /**\r\n * @dev returns the amplified balance of a given reserve token\r\n *\r\n * @param _reserveToken reserve token address\r\n *\r\n * @return amplified balance\r\n */\r\n function reserveAmplifiedBalance(IERC20Token _reserveToken)\r\n public\r\n view\r\n validReserve(_reserveToken)\r\n returns (uint256)\r\n {\r\n return stakedBalances[_reserveToken].mul(AMPLIFICATION_FACTOR - 1).add(reserveBalance(_reserveToken));\r\n }\r\n\r\n /**\r\n * @dev sets the reserve's staked balance\r\n * can only be called by the upgrader contract while the upgrader is the owner\r\n *\r\n * @param _reserveToken reserve token address\r\n * @param _balance new reserve staked balance\r\n */\r\n function setReserveStakedBalance(IERC20Token _reserveToken, uint256 _balance)\r\n public\r\n ownerOnly\r\n only(CONVERTER_UPGRADER)\r\n validReserve(_reserveToken)\r\n {\r\n stakedBalances[_reserveToken] = _balance;\r\n }\r\n\r\n /**\r\n * @dev sets the max staked balance for both reserves\r\n * available as a temporary mechanism during the pilot\r\n * can only be called by the owner\r\n *\r\n * @param _reserve1MaxStakedBalance max staked balance for reserve 1\r\n * @param _reserve2MaxStakedBalance max staked balance for reserve 2\r\n */\r\n function setMaxStakedBalances(uint256 _reserve1MaxStakedBalance, uint256 _reserve2MaxStakedBalance) public ownerOnly {\r\n maxStakedBalances[reserveTokens[0]] = _reserve1MaxStakedBalance;\r\n maxStakedBalances[reserveTokens[1]] = _reserve2MaxStakedBalance;\r\n }\r\n\r\n /**\r\n * @dev disables the max staked balance mechanism\r\n * available as a temporary mechanism during the pilot\r\n * once disabled, it cannot be re-enabled\r\n * can only be called by the owner\r\n */\r\n function disableMaxStakedBalances() public ownerOnly {\r\n maxStakedBalanceEnabled = false;\r\n }\r\n\r\n /**\r\n * @dev returns the pool token address by the reserve token address\r\n *\r\n * @param _reserveToken reserve token address\r\n *\r\n * @return pool token address\r\n */\r\n function poolToken(IERC20Token _reserveToken) public view returns (ISmartToken) {\r\n return reservesToPoolTokens[_reserveToken];\r\n }\r\n\r\n /**\r\n * @dev returns the maximum number of pool tokens that can currently be liquidated\r\n *\r\n * @param _poolToken address of the pool token\r\n *\r\n * @return liquidation limit\r\n */\r\n function liquidationLimit(ISmartToken _poolToken) public view returns (uint256) {\r\n // get the pool token supply\r\n uint256 poolTokenSupply = _poolToken.totalSupply();\r\n\r\n // get the reserve token associated with the pool token and its balance / staked balance\r\n IERC20Token reserveToken = poolTokensToReserves[_poolToken];\r\n uint256 balance = reserveBalance(reserveToken);\r\n uint256 stakedBalance = stakedBalances[reserveToken];\r\n\r\n // calculate the amount that's available for liquidation\r\n return balance.mul(poolTokenSupply).div(stakedBalance);\r\n }\r\n\r\n /**\r\n * @dev defines a new reserve token for the converter\r\n * can only be called by the owner while the converter is inactive and\r\n * 2 reserves aren't defined yet\r\n *\r\n * @param _token address of the reserve token\r\n * @param _weight reserve weight, represented in ppm, 1-1000000\r\n */\r\n function addReserve(IERC20Token _token, uint32 _weight) public {\r\n // verify that the converter doesn't have 2 reserves yet\r\n require(reserveTokenCount() < 2, \"ERR_INVALID_RESERVE_COUNT\");\r\n super.addReserve(_token, _weight);\r\n }\r\n\r\n /**\r\n * @dev returns the effective rate of 1 primary token in secondary tokens\r\n *\r\n * @return rate of 1 primary token in secondary tokens (numerator)\r\n * @return rate of 1 primary token in secondary tokens (denominator)\r\n */\r\n function effectiveTokensRate() public view returns (uint256, uint256) {\r\n Fraction memory rate = _effectiveTokensRate();\r\n return (rate.n, rate.d);\r\n }\r\n\r\n /**\r\n * @dev returns the effective reserve tokens weights\r\n *\r\n * @return reserve1 weight\r\n * @return reserve2 weight\r\n */\r\n function effectiveReserveWeights() public view returns (uint256, uint256) {\r\n Fraction memory rate = _effectiveTokensRate();\r\n (uint32 primaryReserveWeight, uint32 secondaryReserveWeight) = effectiveReserveWeights(rate);\r\n\r\n if (primaryReserveToken == reserveTokens[0]) {\r\n return (primaryReserveWeight, secondaryReserveWeight);\r\n }\r\n\r\n return (secondaryReserveWeight, primaryReserveWeight);\r\n }\r\n\r\n /**\r\n * @dev returns the expected target amount of converting one reserve to another along with the fee\r\n *\r\n * @param _sourceToken contract address of the source reserve token\r\n * @param _targetToken contract address of the target reserve token\r\n * @param _amount amount of tokens received from the user\r\n *\r\n * @return expected target amount\r\n * @return expected fee\r\n */\r\n function targetAmountAndFee(IERC20Token _sourceToken, IERC20Token _targetToken, uint256 _amount)\r\n public\r\n view\r\n active\r\n returns (uint256, uint256)\r\n {\r\n // validate input\r\n // not using the `validReserve` modifier to circumvent `stack too deep` compiler error\r\n _validReserve(_sourceToken);\r\n _validReserve(_targetToken);\r\n require(_sourceToken != _targetToken, \"ERR_SAME_SOURCE_TARGET\");\r\n\r\n // check if rebalance is required (some of this code is duplicated for gas optimization)\r\n uint32 sourceTokenWeight;\r\n uint32 targetTokenWeight;\r\n\r\n // if the rate was already checked in this block, use the current weights.\r\n // otherwise, get the new weights\r\n Fraction memory rate;\r\n if (referenceRateUpdateTime == time()) {\r\n rate = referenceRate;\r\n sourceTokenWeight = reserves[_sourceToken].weight;\r\n targetTokenWeight = reserves[_targetToken].weight;\r\n }\r\n else {\r\n // get the new rate / reserve weights\r\n rate = _effectiveTokensRate();\r\n (uint32 primaryReserveWeight, uint32 secondaryReserveWeight) = effectiveReserveWeights(rate);\r\n\r\n if (_sourceToken == primaryReserveToken) {\r\n sourceTokenWeight = primaryReserveWeight;\r\n targetTokenWeight = secondaryReserveWeight;\r\n }\r\n else {\r\n sourceTokenWeight = secondaryReserveWeight;\r\n targetTokenWeight = primaryReserveWeight;\r\n }\r\n }\r\n\r\n // return the target amount and the conversion fee using the updated reserve weights\r\n (uint256 targetAmount, , uint256 fee) = targetAmountAndFees(_sourceToken, _targetToken, sourceTokenWeight, targetTokenWeight, rate, _amount);\r\n return (targetAmount, fee);\r\n }\r\n\r\n /**\r\n * @dev converts a specific amount of source tokens to target tokens\r\n * can only be called by the SovrynSwap network contract\r\n *\r\n * @param _sourceToken source ERC20 token\r\n * @param _targetToken target ERC20 token\r\n * @param _amount amount of tokens to convert (in units of the source token)\r\n * @param _trader address of the caller who executed the conversion\r\n * @param _beneficiary wallet to receive the conversion result\r\n *\r\n * @return amount of tokens received (in units of the target token)\r\n */\r\n function doConvert(IERC20Token _sourceToken, IERC20Token _targetToken, uint256 _amount, address _trader, address _beneficiary)\r\n internal\r\n active\r\n validReserve(_sourceToken)\r\n validReserve(_targetToken)\r\n returns (uint256)\r\n {\r\n // convert the amount and return the resulted amount and fee\r\n (uint256 amount, uint256 fee) = doConvert(_sourceToken, _targetToken, _amount);\r\n\r\n // transfer funds to the beneficiary in the to reserve token\r\n if (_targetToken == ETH_RESERVE_ADDRESS) {\r\n _beneficiary.transfer(amount);\r\n }\r\n else {\r\n safeTransfer(_targetToken, _beneficiary, amount);\r\n }\r\n\r\n // dispatch the conversion event\r\n dispatchConversionEvent(_sourceToken, _targetToken, _trader, _amount, amount, fee);\r\n\r\n // dispatch rate updates for the pool / reserve tokens\r\n dispatchRateEvents(_sourceToken, _targetToken, reserves[_sourceToken].weight, reserves[_targetToken].weight);\r\n\r\n // return the conversion result amount\r\n return amount;\r\n }\r\n\r\n /**\r\n * @dev converts a specific amount of source tokens to target tokens\r\n * can only be called by the SovrynSwap network contract\r\n *\r\n * @param _sourceToken source ERC20 token\r\n * @param _targetToken target ERC20 token\r\n * @param _amount amount of tokens to convert (in units of the source token)\r\n *\r\n * @return amount of tokens received (in units of the target token)\r\n * @return expected fee\r\n */\r\n function doConvert(IERC20Token _sourceToken, IERC20Token _targetToken, uint256 _amount) private returns (uint256, uint256) {\r\n // check if the rate has changed and rebalance the pool if needed (once in a block)\r\n (bool rateUpdated, Fraction memory rate) = handleRateChange();\r\n\r\n // get expected target amount and fees\r\n (uint256 amount, uint256 standardFee, uint256 dynamicFee) = targetAmountAndFees(_sourceToken, _targetToken, 0, 0, rate, _amount);\r\n\r\n // ensure that the trade gives something in return\r\n require(amount != 0, \"ERR_ZERO_TARGET_AMOUNT\");\r\n\r\n // ensure that the trade won't deplete the reserve balance\r\n uint256 targetReserveBalance = reserveBalance(_targetToken);\r\n require(amount < targetReserveBalance, \"ERR_TARGET_AMOUNT_TOO_HIGH\");\r\n\r\n // ensure that the input amount was already deposited\r\n if (_sourceToken == ETH_RESERVE_ADDRESS)\r\n require(msg.value == _amount, \"ERR_ETH_AMOUNT_MISMATCH\");\r\n else\r\n require(msg.value == 0 && _sourceToken.balanceOf(this).sub(reserveBalance(_sourceToken)) >= _amount, \"ERR_INVALID_AMOUNT\");\r\n\r\n // sync the reserve balances\r\n syncReserveBalance(_sourceToken);\r\n reserves[_targetToken].balance = targetReserveBalance.sub(amount);\r\n\r\n // update the target staked balance with the fee\r\n stakedBalances[_targetToken] = stakedBalances[_targetToken].add(standardFee);\r\n\r\n // update the last conversion rate\r\n if (rateUpdated) {\r\n lastConversionRate = tokensRate(primaryReserveToken, secondaryReserveToken, 0, 0);\r\n }\r\n\r\n return (amount, dynamicFee);\r\n }\r\n\r\n /**\r\n * @dev increases the pool's liquidity and mints new shares in the pool to the caller\r\n *\r\n * @param _reserveToken address of the reserve token to add liquidity to\r\n * @param _amount amount of liquidity to add\r\n * @param _minReturn minimum return-amount of pool tokens\r\n *\r\n * @return amount of pool tokens minted\r\n */\r\n function addLiquidity(IERC20Token _reserveToken, uint256 _amount, uint256 _minReturn)\r\n public\r\n payable\r\n protected\r\n active\r\n validReserve(_reserveToken)\r\n greaterThanZero(_amount)\r\n greaterThanZero(_minReturn)\r\n returns (uint256)\r\n {\r\n // verify that msg.value is identical to the provided amount for ETH reserve, or 0 otherwise\r\n require(_reserveToken == ETH_RESERVE_ADDRESS ? msg.value == _amount : msg.value == 0, \"ERR_ETH_AMOUNT_MISMATCH\");\r\n\r\n // sync the reserve balances just in case\r\n syncReserveBalances();\r\n\r\n // for ETH reserve, deduct the amount that was just synced (since it's already in the converter)\r\n if (_reserveToken == ETH_RESERVE_ADDRESS)\r\n reserves[ETH_RESERVE_ADDRESS].balance = reserves[ETH_RESERVE_ADDRESS].balance.sub(msg.value);\r\n\r\n // get the reserve staked balance before adding the liquidity to it\r\n uint256 initialStakedBalance = stakedBalances[_reserveToken];\r\n\r\n // during the pilot, ensure that the new staked balance isn't greater than the max limit\r\n if (maxStakedBalanceEnabled) {\r\n require(maxStakedBalances[_reserveToken] == 0 || initialStakedBalance.add(_amount) <= maxStakedBalances[_reserveToken], \"ERR_MAX_STAKED_BALANCE_REACHED\");\r\n }\r\n\r\n // get the pool token associated with the reserve and its supply\r\n ISmartToken reservePoolToken = reservesToPoolTokens[_reserveToken];\r\n uint256 poolTokenSupply = reservePoolToken.totalSupply();\r\n\r\n // for non ETH reserve, transfer the funds from the user to the pool\r\n if (_reserveToken != ETH_RESERVE_ADDRESS)\r\n safeTransferFrom(_reserveToken, msg.sender, this, _amount);\r\n\r\n // sync the reserve balance / staked balance\r\n reserves[_reserveToken].balance = reserves[_reserveToken].balance.add(_amount);\r\n stakedBalances[_reserveToken] = initialStakedBalance.add(_amount);\r\n\r\n // calculate how many pool tokens to mint\r\n // for an empty pool, the price is 1:1, otherwise the price is based on the ratio\r\n // between the pool token supply and the staked balance\r\n uint256 poolTokenAmount = 0;\r\n if (initialStakedBalance == 0 || poolTokenSupply == 0)\r\n poolTokenAmount = _amount;\r\n else\r\n poolTokenAmount = _amount.mul(poolTokenSupply).div(initialStakedBalance);\r\n require(poolTokenAmount >= _minReturn, \"ERR_RETURN_TOO_LOW\");\r\n\r\n // mint new pool tokens to the caller\r\n IPoolTokensContainer(anchor).mint(reservePoolToken, msg.sender, poolTokenAmount);\r\n\r\n // rebalance the pool's reserve weights\r\n rebalance();\r\n\r\n // dispatch the LiquidityAdded event\r\n emit LiquidityAdded(msg.sender, _reserveToken, _amount, initialStakedBalance.add(_amount), poolTokenSupply.add(poolTokenAmount));\r\n\r\n // dispatch the `TokenRateUpdate` event for the pool token\r\n dispatchPoolTokenRateUpdateEvent(reservePoolToken, poolTokenSupply.add(poolTokenAmount), _reserveToken);\r\n\r\n // dispatch the `TokenRateUpdate` event for the reserve tokens\r\n dispatchTokenRateUpdateEvent(reserveTokens[0], reserveTokens[1], 0, 0);\r\n\r\n // return the amount of pool tokens minted\r\n return poolTokenAmount;\r\n }\r\n\r\n /**\r\n * @dev decreases the pool's liquidity and burns the caller's shares in the pool\r\n *\r\n * @param _poolToken address of the pool token\r\n * @param _amount amount of pool tokens to burn\r\n * @param _minReturn minimum return-amount of reserve tokens\r\n *\r\n * @return amount of liquidity removed\r\n */\r\n function removeLiquidity(ISmartToken _poolToken, uint256 _amount, uint256 _minReturn)\r\n public\r\n protected\r\n active\r\n validPoolToken(_poolToken)\r\n greaterThanZero(_amount)\r\n greaterThanZero(_minReturn)\r\n returns (uint256)\r\n {\r\n // sync the reserve balances just in case\r\n syncReserveBalances();\r\n\r\n // get the pool token supply before burning the caller's shares\r\n uint256 initialPoolSupply = _poolToken.totalSupply();\r\n\r\n // get the reserve token return before burning the caller's shares\r\n (uint256 reserveAmount, ) = removeLiquidityReturnAndFee(_poolToken, _amount);\r\n require(reserveAmount >= _minReturn, \"ERR_RETURN_TOO_LOW\");\r\n\r\n // get the reserve token associated with the pool token\r\n IERC20Token reserveToken = poolTokensToReserves[_poolToken];\r\n\r\n // burn the caller's pool tokens\r\n IPoolTokensContainer(anchor).burn(_poolToken, msg.sender, _amount);\r\n\r\n // sync the reserve balance / staked balance\r\n reserves[reserveToken].balance = reserves[reserveToken].balance.sub(reserveAmount);\r\n uint256 newStakedBalance = stakedBalances[reserveToken].sub(reserveAmount);\r\n stakedBalances[reserveToken] = newStakedBalance;\r\n\r\n // transfer the reserve amount to the caller\r\n if (reserveToken == ETH_RESERVE_ADDRESS)\r\n msg.sender.transfer(reserveAmount);\r\n else\r\n safeTransfer(reserveToken, msg.sender, reserveAmount);\r\n\r\n // rebalance the pool's reserve weights\r\n rebalance();\r\n\r\n uint256 newPoolTokenSupply = initialPoolSupply.sub(_amount);\r\n\r\n // dispatch the LiquidityRemoved event\r\n emit LiquidityRemoved(msg.sender, reserveToken, reserveAmount, newStakedBalance, newPoolTokenSupply);\r\n\r\n // dispatch the `TokenRateUpdate` event for the pool token\r\n dispatchPoolTokenRateUpdateEvent(_poolToken, newPoolTokenSupply, reserveToken);\r\n\r\n // dispatch the `TokenRateUpdate` event for the reserve tokens\r\n dispatchTokenRateUpdateEvent(reserveTokens[0], reserveTokens[1], 0, 0);\r\n\r\n // return the amount of liquidity removed\r\n return reserveAmount;\r\n }\r\n\r\n /**\r\n * @dev calculates the amount of reserve tokens entitled for a given amount of pool tokens\r\n * note that a fee is applied according to the equilibrium level of the primary reserve token\r\n *\r\n * @param _poolToken address of the pool token\r\n * @param _amount amount of pool tokens\r\n *\r\n * @return amount after fee and fee, in reserve token units\r\n */\r\n function removeLiquidityReturnAndFee(ISmartToken _poolToken, uint256 _amount)\r\n public\r\n view\r\n returns (uint256, uint256)\r\n {\r\n uint256 totalSupply = _poolToken.totalSupply();\r\n uint256 stakedBalance = stakedBalances[poolTokensToReserves[_poolToken]];\r\n\r\n if (_amount < totalSupply) {\r\n uint256 x = stakedBalances[primaryReserveToken].mul(AMPLIFICATION_FACTOR);\r\n uint256 y = reserveAmplifiedBalance(primaryReserveToken);\r\n (uint256 min, uint256 max) = x < y ? (x, y) : (y, x);\r\n uint256 amountBeforeFee = _amount.mul(stakedBalance).div(totalSupply);\r\n uint256 amountAfterFee = amountBeforeFee.mul(min).div(max);\r\n return (amountAfterFee, amountBeforeFee - amountAfterFee);\r\n }\r\n return (stakedBalance, 0);\r\n }\r\n\r\n /**\r\n * @dev returns the expected target amount of converting one reserve to another along with the fees\r\n * this version of the function expects the reserve weights as an input (gas optimization)\r\n *\r\n * @param _sourceToken contract address of the source reserve token\r\n * @param _targetToken contract address of the target reserve token\r\n * @param _sourceWeight source reserve token weight or 0 to read it from storage\r\n * @param _targetWeight target reserve token weight or 0 to read it from storage\r\n * @param _rate rate between the reserve tokens\r\n * @param _amount amount of tokens received from the user\r\n *\r\n * @return expected target amount\r\n * @return expected standard conversion fee\r\n * @return expected dynamic conversion fee\r\n */\r\n function targetAmountAndFees(\r\n IERC20Token _sourceToken,\r\n IERC20Token _targetToken,\r\n uint32 _sourceWeight,\r\n uint32 _targetWeight,\r\n Fraction memory _rate,\r\n uint256 _amount)\r\n private\r\n view\r\n returns (uint256 targetAmount, uint256 standardFee, uint256 dynamicFee)\r\n {\r\n if (_sourceWeight == 0)\r\n _sourceWeight = reserves[_sourceToken].weight;\r\n if (_targetWeight == 0)\r\n _targetWeight = reserves[_targetToken].weight;\r\n\r\n // get the tokens amplified balances\r\n uint256 sourceBalance = reserveAmplifiedBalance(_sourceToken);\r\n uint256 targetBalance = reserveAmplifiedBalance(_targetToken);\r\n\r\n // get the target amount\r\n targetAmount = ISovrynSwapFormula(addressOf(SOVRYNSWAP_FORMULA)).crossReserveTargetAmount(\r\n sourceBalance,\r\n _sourceWeight,\r\n targetBalance,\r\n _targetWeight,\r\n _amount\r\n );\r\n\r\n // return a tuple of [target amount minus dynamic conversion fee, standard conversion fee, dynamic conversion fee]\r\n standardFee = calculateFee(targetAmount);\r\n dynamicFee = calculateDynamicFee(_targetToken, _sourceWeight, _targetWeight, _rate, targetAmount).add(standardFee);\r\n targetAmount = targetAmount.sub(dynamicFee);\r\n }\r\n\r\n /**\r\n * @dev returns the dynamic fee for a given target amount\r\n *\r\n * @param _targetToken contract address of the target reserve token\r\n * @param _sourceWeight source reserve token weight\r\n * @param _targetWeight target reserve token weight\r\n * @param _rate rate of 1 primary token in secondary tokens\r\n * @param _targetAmount target amount\r\n *\r\n * @return dynamic fee\r\n */\r\n function calculateDynamicFee(\r\n IERC20Token _targetToken,\r\n uint32 _sourceWeight,\r\n uint32 _targetWeight,\r\n Fraction memory _rate,\r\n uint256 _targetAmount)\r\n internal view returns (uint256)\r\n {\r\n uint256 fee;\r\n\r\n if (_targetToken == secondaryReserveToken) {\r\n fee = calculateFeeToEquilibrium(\r\n stakedBalances[primaryReserveToken],\r\n stakedBalances[secondaryReserveToken],\r\n _sourceWeight,\r\n _targetWeight,\r\n _rate.n,\r\n _rate.d,\r\n dynamicFeeFactor);\r\n }\r\n else {\r\n fee = calculateFeeToEquilibrium(\r\n stakedBalances[primaryReserveToken],\r\n stakedBalances[secondaryReserveToken],\r\n _targetWeight,\r\n _sourceWeight,\r\n _rate.n,\r\n _rate.d,\r\n dynamicFeeFactor);\r\n }\r\n\r\n return _targetAmount.mul(fee).div(CONVERSION_FEE_RESOLUTION);\r\n }\r\n\r\n /**\r\n * @dev returns the relative fee required for mitigating the secondary reserve distance from equilibrium\r\n *\r\n * @param _primaryReserveStaked primary reserve staked balance\r\n * @param _secondaryReserveStaked secondary reserve staked balance\r\n * @param _primaryReserveWeight primary reserve weight\r\n * @param _secondaryReserveWeight secondary reserve weight\r\n * @param _primaryReserveRate primary reserve rate\r\n * @param _secondaryReserveRate secondary reserve rate\r\n * @param _dynamicFeeFactor dynamic fee factor\r\n *\r\n * @return relative fee, represented in ppm\r\n */\r\n function calculateFeeToEquilibrium(\r\n uint256 _primaryReserveStaked,\r\n uint256 _secondaryReserveStaked,\r\n uint256 _primaryReserveWeight,\r\n uint256 _secondaryReserveWeight,\r\n uint256 _primaryReserveRate,\r\n uint256 _secondaryReserveRate,\r\n uint256 _dynamicFeeFactor)\r\n internal\r\n pure\r\n returns (uint256)\r\n {\r\n uint256 x = _primaryReserveStaked.mul(_primaryReserveRate).mul(_secondaryReserveWeight);\r\n uint256 y = _secondaryReserveStaked.mul(_secondaryReserveRate).mul(_primaryReserveWeight);\r\n if (y > x)\r\n return (y - x).mul(_dynamicFeeFactor).mul(AMPLIFICATION_FACTOR).div(y);\r\n return 0;\r\n }\r\n\r\n /**\r\n * @dev creates the converter's pool tokens\r\n * note that technically pool tokens can be created on deployment but gas limit\r\n * might get too high for a block, so creating them on first activation\r\n *\r\n */\r\n function createPoolTokens() internal {\r\n IPoolTokensContainer container = IPoolTokensContainer(anchor);\r\n ISmartToken[] memory poolTokens = container.poolTokens();\r\n bool initialSetup = poolTokens.length == 0;\r\n\r\n uint256 reserveCount = reserveTokens.length;\r\n for (uint256 i = 0; i < reserveCount; i++) {\r\n ISmartToken reservePoolToken;\r\n if (initialSetup) {\r\n reservePoolToken = container.createToken();\r\n }\r\n else {\r\n reservePoolToken = poolTokens[i];\r\n }\r\n\r\n // cache the pool token address (gas optimization)\r\n reservesToPoolTokens[reserveTokens[i]] = reservePoolToken;\r\n poolTokensToReserves[reservePoolToken] = reserveTokens[i];\r\n }\r\n }\r\n\r\n /**\r\n * @dev returns the effective rate between the two reserve tokens\r\n *\r\n * @return rate\r\n */\r\n function _effectiveTokensRate() private view returns (Fraction memory) {\r\n // get the external rate between the reserves\r\n (uint256 externalRateN, uint256 externalRateD, uint256 updateTime) = priceOracle.latestRateAndUpdateTime(primaryReserveToken, secondaryReserveToken);\r\n\r\n // if the external rate was recently updated - prefer it over the internal rate\r\n if (updateTime > referenceRateUpdateTime) {\r\n return Fraction({ n: externalRateN, d: externalRateD });\r\n }\r\n\r\n // get the elapsed time between the current and the last conversion\r\n uint256 timeElapsed = time() - referenceRateUpdateTime;\r\n\r\n // if both of the conversions are in the same block - use the reference rate\r\n if (timeElapsed == 0) {\r\n return referenceRate;\r\n }\r\n\r\n // given N as the sampling window, the new internal rate is calculated according to the following formula:\r\n // newRate = referenceRate + timeElapsed * [lastConversionRate - referenceRate] / N\r\n\r\n // if a long period of time, since the last update, has passed - the last rate should fully take effect\r\n if (timeElapsed >= RATE_PROPAGATION_PERIOD) {\r\n return lastConversionRate;\r\n }\r\n\r\n // calculate the numerator and the denumerator of the new rate\r\n Fraction memory ref = referenceRate;\r\n Fraction memory last = lastConversionRate;\r\n\r\n uint256 x = ref.d.mul(last.n);\r\n uint256 y = ref.n.mul(last.d);\r\n\r\n // since we know that timeElapsed < RATE_PROPAGATION_PERIOD, we can avoid using SafeMath:\r\n uint256 newRateN = y.mul(RATE_PROPAGATION_PERIOD - timeElapsed).add(x.mul(timeElapsed));\r\n uint256 newRateD = ref.d.mul(last.d).mul(RATE_PROPAGATION_PERIOD);\r\n\r\n return reduceRate(newRateN, newRateD);\r\n }\r\n\r\n /**\r\n * @dev checks if the rate has changed and if so, rebalances the weights\r\n * note that rebalancing based on rate change only happens once per block\r\n *\r\n * @return whether the rate was updated\r\n * @return rate between the reserve tokens\r\n */\r\n function handleRateChange() private returns (bool, Fraction memory) {\r\n uint256 currentTime = time();\r\n\r\n // avoid updating the rate more than once per block\r\n if (referenceRateUpdateTime == currentTime) {\r\n return (false, referenceRate);\r\n }\r\n\r\n // get and store the effective rate between the reserves\r\n Fraction memory newRate = _effectiveTokensRate();\r\n\r\n // if the rate has changed, update it and rebalance the pool\r\n Fraction memory ref = referenceRate;\r\n if (newRate.n == ref.n && newRate.d == ref.d) {\r\n return (false, newRate);\r\n }\r\n\r\n referenceRate = newRate;\r\n referenceRateUpdateTime = currentTime;\r\n\r\n rebalance();\r\n\r\n return (true, newRate);\r\n }\r\n\r\n /**\r\n * @dev updates the pool's reserve weights with new values in order to push the current primary\r\n * reserve token balance to its staked balance\r\n */\r\n function rebalance() private {\r\n // get the new reserve weights\r\n (uint32 primaryReserveWeight, uint32 secondaryReserveWeight) = effectiveReserveWeights(referenceRate);\r\n\r\n // update the reserve weights with the new values\r\n reserves[primaryReserveToken].weight = primaryReserveWeight;\r\n reserves[secondaryReserveToken].weight = secondaryReserveWeight;\r\n }\r\n\r\n /**\r\n * @dev returns the effective reserve weights based on the staked balance, current balance and oracle price\r\n *\r\n * @param _rate rate between the reserve tokens\r\n *\r\n * @return new primary reserve weight\r\n * @return new secondary reserve weight\r\n */\r\n function effectiveReserveWeights(Fraction memory _rate) private view returns (uint32, uint32) {\r\n // get the primary reserve staked balance\r\n uint256 primaryStakedBalance = stakedBalances[primaryReserveToken];\r\n\r\n // get the tokens amplified balances\r\n uint256 primaryBalance = reserveAmplifiedBalance(primaryReserveToken);\r\n uint256 secondaryBalance = reserveAmplifiedBalance(secondaryReserveToken);\r\n\r\n // get the new weights\r\n return ISovrynSwapFormula(addressOf(SOVRYNSWAP_FORMULA)).balancedWeights(\r\n primaryStakedBalance.mul(AMPLIFICATION_FACTOR),\r\n primaryBalance,\r\n secondaryBalance,\r\n _rate.n,\r\n _rate.d);\r\n }\r\n\r\n /**\r\n * @dev calculates and returns the rate between two reserve tokens\r\n *\r\n * @param _token1 contract address of the token to calculate the rate of one unit of\r\n * @param _token2 contract address of the token to calculate the rate of one `_token1` unit in\r\n * @param _token1Weight reserve weight of token1\r\n * @param _token2Weight reserve weight of token2\r\n *\r\n * @return rate\r\n */\r\n function tokensRate(IERC20Token _token1, IERC20Token _token2, uint32 _token1Weight, uint32 _token2Weight) private view returns (Fraction memory) {\r\n // apply the amplification factor\r\n uint256 token1Balance = reserveAmplifiedBalance(_token1);\r\n uint256 token2Balance = reserveAmplifiedBalance(_token2);\r\n\r\n // get reserve weights\r\n if (_token1Weight == 0) {\r\n _token1Weight = reserves[_token1].weight;\r\n }\r\n\r\n if (_token2Weight == 0) {\r\n _token2Weight = reserves[_token2].weight;\r\n }\r\n\r\n return Fraction({ n: token2Balance.mul(_token1Weight), d: token1Balance.mul(_token2Weight) });\r\n }\r\n\r\n /**\r\n * @dev dispatches rate events for both reserve tokens and for the target pool token\r\n * only used to circumvent the `stack too deep` compiler error\r\n *\r\n * @param _sourceToken contract address of the source reserve token\r\n * @param _targetToken contract address of the target reserve token\r\n * @param _sourceWeight source reserve token weight\r\n * @param _targetWeight target reserve token weight\r\n */\r\n function dispatchRateEvents(IERC20Token _sourceToken, IERC20Token _targetToken, uint32 _sourceWeight, uint32 _targetWeight) private {\r\n dispatchTokenRateUpdateEvent(_sourceToken, _targetToken, _sourceWeight, _targetWeight);\r\n\r\n // dispatch the `TokenRateUpdate` event for the pool token\r\n // the target reserve pool token rate is the only one that's affected\r\n // by conversions since conversion fees are applied to the target reserve\r\n ISmartToken targetPoolToken = poolToken(_targetToken);\r\n uint256 targetPoolTokenSupply = targetPoolToken.totalSupply();\r\n dispatchPoolTokenRateUpdateEvent(targetPoolToken, targetPoolTokenSupply, _targetToken);\r\n }\r\n\r\n /**\r\n * @dev dispatches token rate update event\r\n * only used to circumvent the `stack too deep` compiler error\r\n *\r\n * @param _token1 contract address of the token to calculate the rate of one unit of\r\n * @param _token2 contract address of the token to calculate the rate of one `_token1` unit in\r\n * @param _token1Weight reserve weight of token1\r\n * @param _token2Weight reserve weight of token2\r\n */\r\n function dispatchTokenRateUpdateEvent(IERC20Token _token1, IERC20Token _token2, uint32 _token1Weight, uint32 _token2Weight) private {\r\n // dispatch token rate update event\r\n Fraction memory rate = tokensRate(_token1, _token2, _token1Weight, _token2Weight);\r\n\r\n emit TokenRateUpdate(_token1, _token2, rate.n, rate.d);\r\n }\r\n\r\n /**\r\n * @dev dispatches the `TokenRateUpdate` for the pool token\r\n * only used to circumvent the `stack too deep` compiler error\r\n *\r\n * @param _poolToken address of the pool token\r\n * @param _poolTokenSupply total pool token supply\r\n * @param _reserveToken address of the reserve token\r\n */\r\n function dispatchPoolTokenRateUpdateEvent(ISmartToken _poolToken, uint256 _poolTokenSupply, IERC20Token _reserveToken) private {\r\n emit TokenRateUpdate(_poolToken, _reserveToken, stakedBalances[_reserveToken], _poolTokenSupply);\r\n }\r\n\r\n /**\r\n * @dev returns the current time\r\n */\r\n function time() internal view returns (uint256) {\r\n return now;\r\n }\r\n\r\n uint256 private constant MAX_RATE_FACTOR_LOWER_BOUND = 1e30;\r\n uint256 private constant MAX_RATE_FACTOR_UPPER_BOUND = uint256(-1) / MAX_RATE_FACTOR_LOWER_BOUND;\r\n\r\n /**\r\n * @dev reduces the numerator and denominator while maintaining the ratio between them as accurately as possible\r\n */\r\n function reduceRate(uint256 _n, uint256 _d) internal pure returns (Fraction memory) {\r\n if (_n >= _d) {\r\n return reduceFactors(_n, _d);\r\n }\r\n\r\n Fraction memory rate = reduceFactors(_d, _n);\r\n return Fraction({ n: rate.d, d: rate.n });\r\n }\r\n\r\n /**\r\n * @dev reduces the factors while maintaining the ratio between them as accurately as possible\r\n */\r\n function reduceFactors(uint256 _max, uint256 _min) internal pure returns (Fraction memory) {\r\n if (_min > MAX_RATE_FACTOR_UPPER_BOUND) {\r\n return Fraction({\r\n n: MAX_RATE_FACTOR_LOWER_BOUND,\r\n d: _min / (_max / MAX_RATE_FACTOR_LOWER_BOUND)\r\n });\r\n }\r\n\r\n if (_max > MAX_RATE_FACTOR_LOWER_BOUND) {\r\n return Fraction({\r\n n: MAX_RATE_FACTOR_LOWER_BOUND,\r\n d: _min * MAX_RATE_FACTOR_LOWER_BOUND / _max\r\n });\r\n }\r\n\r\n return Fraction({ n: _max, d: _min });\r\n }\r\n}\r\n" + }, + "solidity/contracts/converter/types/liquidity-pool-v2/interfaces/IPoolTokensContainer.sol": { + "content": "pragma solidity 0.4.26;\nimport \"../../../interfaces/IConverterAnchor.sol\";\nimport \"../../../../token/interfaces/ISmartToken.sol\";\n\n/*\n Pool Tokens Container interface\n*/\ncontract IPoolTokensContainer is IConverterAnchor {\n function poolTokens() public view returns (ISmartToken[]);\n function createToken() public returns (ISmartToken);\n function mint(ISmartToken _token, address _to, uint256 _amount) public;\n function burn(ISmartToken _token, address _from, uint256 _amount) public;\n}\n" + }, + "solidity/contracts/converter/types/liquidity-pool-v2/PoolTokensContainer.sol": { + "content": "pragma solidity 0.4.26;\r\nimport \"./interfaces/IPoolTokensContainer.sol\";\r\nimport \"../../../utility/Owned.sol\";\r\nimport \"../../../utility/TokenHolder.sol\";\r\nimport \"../../../token/SmartToken.sol\";\r\n\r\n/**\r\n * @dev The PoolTokensContainer contract serves as a container for multiple pool tokens.\r\n * It is used by specific liquidity pool types that require more than a single pool token,\r\n * while still maintaining the single converter / anchor relationship.\r\n *\r\n * It maintains and provides a list of the underlying pool tokens.\r\n */\r\ncontract PoolTokensContainer is IPoolTokensContainer, Owned, TokenHolder {\r\n uint8 internal constant MAX_POOL_TOKENS = 5; // maximum pool tokens in the container\r\n\r\n string public name; // pool name\r\n string public symbol; // pool symbol\r\n uint8 public decimals; // underlying pool tokens decimals\r\n ISmartToken[] private _poolTokens; // underlying pool tokens\r\n\r\n /**\r\n * @dev initializes a new PoolTokensContainer instance\r\n *\r\n * @param _name pool name, also used as a prefix for the underlying pool token names\r\n * @param _symbol pool symbol, also used as a prefix for the underlying pool token symbols\r\n * @param _decimals used for the underlying pool token decimals\r\n */\r\n constructor(string _name, string _symbol, uint8 _decimals) public {\r\n // validate input\r\n require(bytes(_name).length > 0, \"ERR_INVALID_NAME\");\r\n require(bytes(_symbol).length > 0, \"ERR_INVALID_SYMBOL\");\r\n\r\n name = _name;\r\n symbol = _symbol;\r\n decimals = _decimals;\r\n }\r\n\r\n /**\r\n * @dev returns the list of pool tokens\r\n *\r\n * @return list of pool tokens\r\n */\r\n function poolTokens() public view returns (ISmartToken[] memory) {\r\n return _poolTokens;\r\n }\r\n\r\n /**\r\n * @dev creates a new pool token and adds it to the list\r\n *\r\n * @return new pool token address\r\n */\r\n function createToken() public ownerOnly returns (ISmartToken) {\r\n // verify that the max limit wasn't reached\r\n require(_poolTokens.length < MAX_POOL_TOKENS, \"ERR_MAX_LIMIT_REACHED\");\r\n\r\n string memory poolName = concatStrDigit(name, uint8(_poolTokens.length + 1));\r\n string memory poolSymbol = concatStrDigit(symbol, uint8(_poolTokens.length + 1));\r\n\r\n SmartToken token = new SmartToken(poolName, poolSymbol, decimals);\r\n _poolTokens.push(token);\r\n return token;\r\n }\r\n\r\n /**\r\n * @dev increases the pool token supply and sends the new tokens to the given account\r\n * can only be called by the contract owner\r\n *\r\n * @param _token pool token address\r\n * @param _to account to receive the newly minted tokens\r\n * @param _amount amount to mint\r\n */\r\n function mint(ISmartToken _token, address _to, uint256 _amount) public ownerOnly {\r\n _token.issue(_to, _amount);\r\n }\r\n\r\n /**\r\n * @dev removes tokens from the given account and decreases the pool token supply\r\n * can only be called by the contract owner\r\n *\r\n * @param _token pool token address\r\n * @param _from account to remove the tokens from\r\n * @param _amount amount to burn\r\n */\r\n function burn(ISmartToken _token, address _from, uint256 _amount) public ownerOnly {\r\n _token.destroy(_from, _amount);\r\n }\r\n\r\n /**\r\n * @dev concatenates a string and a digit (single only) and returns the result string\r\n *\r\n * @param _str string\r\n * @param _digit digit\r\n * @return concatenated string\r\n */\r\n function concatStrDigit(string _str, uint8 _digit) private pure returns (string) {\r\n return string(abi.encodePacked(_str, uint8(bytes1(\"0\")) + _digit));\r\n }\r\n}\r\n" + }, + "solidity/contracts/converter/types/liquidity-pool-v2/LiquidityPoolV2ConverterCustomFactory.sol": { + "content": "pragma solidity 0.4.26;\r\nimport \"../../interfaces/ITypedConverterCustomFactory.sol\";\r\nimport \"../../../utility/PriceOracle.sol\";\r\n\r\n/*\r\n LiquidityPoolV2ConverterCustomFactory Factory\r\n*/\r\ncontract LiquidityPoolV2ConverterCustomFactory is ITypedConverterCustomFactory {\r\n /**\r\n * @dev returns the converter type the factory is associated with\r\n *\r\n * @return converter type\r\n */\r\n function converterType() public pure returns (uint16) {\r\n return 2;\r\n }\r\n\r\n /**\r\n * @dev creates a new price oracle\r\n * note that the oracles must have the same common denominator (USD, ETH etc.)\r\n *\r\n * @param _primaryReserveToken primary reserve token address\r\n * @param _secondaryReserveToken secondary reserve token address\r\n * @param _primaryReserveOracle primary reserve oracle address\r\n * @param _secondaryReserveOracle secondary reserve oracle address\r\n */\r\n function createPriceOracle(\r\n IERC20Token _primaryReserveToken,\r\n IERC20Token _secondaryReserveToken,\r\n IConsumerPriceOracle _primaryReserveOracle,\r\n IConsumerPriceOracle _secondaryReserveOracle)\r\n public\r\n returns (IPriceOracle)\r\n {\r\n return new PriceOracle(_primaryReserveToken, _secondaryReserveToken, _primaryReserveOracle, _secondaryReserveOracle);\r\n }\r\n}\r\n" + }, + "solidity/contracts/converter/LiquidityPoolConverter.sol": { + "content": "pragma solidity 0.4.26;\nimport \"./ConverterBase.sol\";\n\n/**\n * @dev Liquidity Pool Converter\n *\n * The liquidity pool converter is the base contract for specific types of converters that\n * manage liquidity pools.\n *\n * Liquidity pools have 2 reserves or more and they allow converting between them.\n *\n * Note that TokenRateUpdate events are dispatched for pool tokens as well.\n * The pool token is the first token in the event in that case.\n */\ncontract LiquidityPoolConverter is ConverterBase {\n\t/**\n\t * @dev triggered after liquidity is added\n\t *\n\t * @param _provider liquidity provider\n\t * @param _reserveToken reserve token address\n\t * @param _amount reserve token amount\n\t * @param _newBalance reserve token new balance\n\t * @param _newSupply pool token new supply\n\t */\n\tevent LiquidityAdded(address indexed _provider, address indexed _reserveToken, uint256 _amount, uint256 _newBalance, uint256 _newSupply);\n\n\t/**\n\t * @dev triggered after liquidity is removed\n\t *\n\t * @param _provider liquidity provider\n\t * @param _reserveToken reserve token address\n\t * @param _amount reserve token amount\n\t * @param _newBalance reserve token new balance\n\t * @param _newSupply pool token new supply\n\t */\n\tevent LiquidityRemoved(address indexed _provider, address indexed _reserveToken, uint256 _amount, uint256 _newBalance, uint256 _newSupply);\n\n\t/**\n\t * @dev initializes a new LiquidityPoolConverter instance\n\t *\n\t * @param _anchor anchor governed by the converter\n\t * @param _registry address of a contract registry contract\n\t * @param _maxConversionFee maximum conversion fee, represented in ppm\n\t */\n\tconstructor(\n\t\tIConverterAnchor _anchor,\n\t\tIContractRegistry _registry,\n\t\tuint32 _maxConversionFee\n\t) internal ConverterBase(_anchor, _registry, _maxConversionFee) {}\n\n\t/**\n\t * @dev accepts ownership of the anchor after an ownership transfer\n\t * also activates the converter\n\t * can only be called by the contract owner\n\t * note that prior to version 28, you should use 'acceptTokenOwnership' instead\n\t */\n\tfunction acceptAnchorOwnership() public {\n\t\t// verify that the converter has at least 2 reserves\n\t\trequire(reserveTokenCount() > 1, \"ERR_INVALID_RESERVE_COUNT\");\n\t\tsuper.acceptAnchorOwnership();\n\t}\n}\n" + }, + "solidity/contracts/token/SmartToken.sol": { + "content": "pragma solidity 0.4.26;\nimport \"./ERC20Token.sol\";\nimport \"./interfaces/ISmartToken.sol\";\nimport \"../utility/Owned.sol\";\nimport \"../utility/TokenHolder.sol\";\n\n/**\n * @dev Smart Token\n *\n * 'Owned' is specified here for readability reasons\n */\ncontract SmartToken is ISmartToken, Owned, ERC20Token, TokenHolder {\n\tusing SafeMath for uint256;\n\n\tuint16 public constant version = 4;\n\n\tbool public transfersEnabled = true; // true if transfer/transferFrom are enabled, false otherwise\n\n\t/**\n\t * @dev triggered when the total supply is increased\n\t *\n\t * @param _amount amount that gets added to the supply\n\t */\n\tevent Issuance(uint256 _amount);\n\n\t/**\n\t * @dev triggered when the total supply is decreased\n\t *\n\t * @param _amount amount that gets removed from the supply\n\t */\n\tevent Destruction(uint256 _amount);\n\n\t/**\n\t * @dev initializes a new SmartToken instance\n\t *\n\t * @param _name token name\n\t * @param _symbol token short symbol, minimum 1 character\n\t * @param _decimals for display purposes only\n\t */\n\tconstructor(\n\t\tstring _name,\n\t\tstring _symbol,\n\t\tuint8 _decimals\n\t) public ERC20Token(_name, _symbol, _decimals, 0) {}\n\n\t// allows execution only when transfers are enabled\n\tmodifier transfersAllowed {\n\t\t_transfersAllowed();\n\t\t_;\n\t}\n\n\t// error message binary size optimization\n\tfunction _transfersAllowed() internal view {\n\t\trequire(transfersEnabled, \"ERR_TRANSFERS_DISABLED\");\n\t}\n\n\t/**\n\t * @dev disables/enables transfers\n\t * can only be called by the contract owner\n\t *\n\t * @param _disable true to disable transfers, false to enable them\n\t */\n\tfunction disableTransfers(bool _disable) public ownerOnly {\n\t\ttransfersEnabled = !_disable;\n\t}\n\n\t/**\n\t * @dev increases the token supply and sends the new tokens to the given account\n\t * can only be called by the contract owner\n\t *\n\t * @param _to account to receive the new amount\n\t * @param _amount amount to increase the supply by\n\t */\n\tfunction issue(address _to, uint256 _amount) public ownerOnly validAddress(_to) notThis(_to) {\n\t\ttotalSupply = totalSupply.add(_amount);\n\t\tbalanceOf[_to] = balanceOf[_to].add(_amount);\n\n\t\temit Issuance(_amount);\n\t\temit Transfer(address(0), _to, _amount);\n\t}\n\n\t/**\n\t * @dev removes tokens from the given account and decreases the token supply\n\t * can only be called by the contract owner\n\t *\n\t * @param _from account to remove the amount from\n\t * @param _amount amount to decrease the supply by\n\t */\n\tfunction destroy(address _from, uint256 _amount) public ownerOnly {\n\t\tbalanceOf[_from] = balanceOf[_from].sub(_amount);\n\t\ttotalSupply = totalSupply.sub(_amount);\n\n\t\temit Transfer(_from, address(0), _amount);\n\t\temit Destruction(_amount);\n\t}\n\n\t// ERC20 standard method overrides with some extra functionality\n\n\t/**\n\t * @dev send coins\n\t * throws on any error rather then return a false flag to minimize user errors\n\t * in addition to the standard checks, the function throws if transfers are disabled\n\t *\n\t * @param _to target address\n\t * @param _value transfer amount\n\t *\n\t * @return true if the transfer was successful, false if it wasn't\n\t */\n\tfunction transfer(address _to, uint256 _value) public transfersAllowed returns (bool success) {\n\t\tassert(super.transfer(_to, _value));\n\t\treturn true;\n\t}\n\n\t/**\n\t * @dev an account/contract attempts to get the coins\n\t * throws on any error rather then return a false flag to minimize user errors\n\t * in addition to the standard checks, the function throws if transfers are disabled\n\t *\n\t * @param _from source address\n\t * @param _to target address\n\t * @param _value transfer amount\n\t *\n\t * @return true if the transfer was successful, false if it wasn't\n\t */\n\tfunction transferFrom(\n\t\taddress _from,\n\t\taddress _to,\n\t\tuint256 _value\n\t) public transfersAllowed returns (bool success) {\n\t\tassert(super.transferFrom(_from, _to, _value));\n\t\treturn true;\n\t}\n}\n" + }, + "solidity/contracts/converter/ConverterBase.sol": { + "content": "pragma solidity 0.4.26;\nimport \"./interfaces/IConverter.sol\";\nimport \"./interfaces/IConverterAnchor.sol\";\nimport \"./interfaces/IConverterUpgrader.sol\";\nimport \"./interfaces/ISovrynSwapFormula.sol\";\nimport \"../ISovrynSwapNetwork.sol\";\nimport \"../utility/ContractRegistryClient.sol\";\nimport \"../utility/ReentrancyGuard.sol\";\nimport \"../utility/SafeMath.sol\";\nimport \"../utility/TokenHandler.sol\";\nimport \"../utility/TokenHolder.sol\";\nimport \"../token/interfaces/IEtherToken.sol\";\nimport \"../sovrynswapx/interfaces/ISovrynSwapX.sol\";\n\n/**\n * @dev ConverterBase\n *\n * The converter contains the main logic for conversions between different ERC20 tokens.\n *\n * It is also the upgradable part of the mechanism (note that upgrades are opt-in).\n *\n * The anchor must be set on construction and cannot be changed afterwards.\n * Wrappers are provided for some of the anchor's functions, for easier access.\n *\n * Once the converter accepts ownership of the anchor, it becomes the anchor's sole controller\n * and can execute any of its functions.\n *\n * To upgrade the converter, anchor ownership must be transferred to a new converter, along with\n * any relevant data.\n *\n * Note that the converter can transfer anchor ownership to a new converter that\n * doesn't allow upgrades anymore, for finalizing the relationship between the converter\n * and the anchor.\n *\n * Converter types (defined as uint16 type) -\n * 0 = liquid token converter\n * 1 = liquidity pool v1 converter\n * 2 = liquidity pool v2 converter\n *\n * Note that converters don't currently support tokens with transfer fees.\n */\ncontract ConverterBase is IConverter, TokenHandler, TokenHolder, ContractRegistryClient, ReentrancyGuard {\n\tusing SafeMath for uint256;\n\n\tuint32 internal constant WEIGHT_RESOLUTION = 1000000;\n\tuint32 internal constant CONVERSION_FEE_RESOLUTION = 1000000;\n\taddress internal constant ETH_RESERVE_ADDRESS = 0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE;\n\n\tstruct Reserve {\n\t\tuint256 balance; // reserve balance\n\t\tuint32 weight; // reserve weight, represented in ppm, 1-1000000\n\t\tbool deprecated1; // deprecated\n\t\tbool deprecated2; // deprecated\n\t\tbool isSet; // true if the reserve is valid, false otherwise\n\t}\n\n\t/**\n\t * @dev version number\n\t */\n\tuint16 public constant version = 32;\n\n\tIConverterAnchor public anchor; // converter anchor contract\n\tIWhitelist public conversionWhitelist; // whitelist contract with list of addresses that are allowed to use the converter\n\tIERC20Token[] public reserveTokens; // ERC20 standard token addresses (prior version 17, use 'connectorTokens' instead)\n\tmapping(address => Reserve) public reserves; // reserve token addresses -> reserve data (prior version 17, use 'connectors' instead)\n\tuint32 public reserveRatio = 0; // ratio between the reserves and the market cap, equal to the total reserve weights\n\tuint32 public maxConversionFee = 0; // maximum conversion fee for the lifetime of the contract,\n\t// represented in ppm, 0...1000000 (0 = no fee, 100 = 0.01%, 1000000 = 100%)\n\tuint32 public conversionFee = 0; // current conversion fee, represented in ppm, 0...maxConversionFee\n\tbool public constant conversionsEnabled = true; // deprecated, backward compatibility\n\n\t/**\n\t * @dev triggered when the converter is activated\n\t *\n\t * @param _type converter type\n\t * @param _anchor converter anchor\n\t * @param _activated true if the converter was activated, false if it was deactivated\n\t */\n\tevent Activation(uint16 indexed _type, IConverterAnchor indexed _anchor, bool indexed _activated);\n\n\t/**\n\t * @dev triggered when a conversion between two tokens occurs\n\t *\n\t * @param _fromToken source ERC20 token\n\t * @param _toToken target ERC20 token\n\t * @param _trader wallet that initiated the trade\n\t * @param _amount amount converted, in the source token\n\t * @param _return amount returned, minus conversion fee\n\t * @param _conversionFee conversion fee\n\t */\n\tevent Conversion(\n\t\taddress indexed _fromToken,\n\t\taddress indexed _toToken,\n\t\taddress indexed _trader,\n\t\tuint256 _amount,\n\t\tuint256 _return,\n\t\tint256 _conversionFee\n\t);\n\n\t/**\n\t * @dev triggered when the rate between two tokens in the converter changes\n\t * note that the event might be dispatched for rate updates between any two tokens in the converter\n\t * note that prior to version 28, you should use the 'PriceDataUpdate' event instead\n\t *\n\t * @param _token1 address of the first token\n\t * @param _token2 address of the second token\n\t * @param _rateN rate of 1 unit of `_token1` in `_token2` (numerator)\n\t * @param _rateD rate of 1 unit of `_token1` in `_token2` (denominator)\n\t */\n\tevent TokenRateUpdate(address indexed _token1, address indexed _token2, uint256 _rateN, uint256 _rateD);\n\n\t/**\n\t * @dev triggered when the conversion fee is updated\n\t *\n\t * @param _prevFee previous fee percentage, represented in ppm\n\t * @param _newFee new fee percentage, represented in ppm\n\t */\n\tevent ConversionFeeUpdate(uint32 _prevFee, uint32 _newFee);\n\n\t/**\n\t * @dev used by sub-contracts to initialize a new converter\n\t *\n\t * @param _anchor anchor governed by the converter\n\t * @param _registry address of a contract registry contract\n\t * @param _maxConversionFee maximum conversion fee, represented in ppm\n\t */\n\tconstructor(\n\t\tIConverterAnchor _anchor,\n\t\tIContractRegistry _registry,\n\t\tuint32 _maxConversionFee\n\t) internal validAddress(_anchor) ContractRegistryClient(_registry) validConversionFee(_maxConversionFee) {\n\t\tanchor = _anchor;\n\t\tmaxConversionFee = _maxConversionFee;\n\t}\n\n\t// ensures that the converter is active\n\tmodifier active() {\n\t\t_active();\n\t\t_;\n\t}\n\n\t// error message binary size optimization\n\tfunction _active() internal view {\n\t\trequire(isActive(), \"ERR_INACTIVE\");\n\t}\n\n\t// ensures that the converter is not active\n\tmodifier inactive() {\n\t\t_inactive();\n\t\t_;\n\t}\n\n\t// error message binary size optimization\n\tfunction _inactive() internal view {\n\t\trequire(!isActive(), \"ERR_ACTIVE\");\n\t}\n\n\t// validates a reserve token address - verifies that the address belongs to one of the reserve tokens\n\tmodifier validReserve(IERC20Token _address) {\n\t\t_validReserve(_address);\n\t\t_;\n\t}\n\n\t// error message binary size optimization\n\tfunction _validReserve(IERC20Token _address) internal view {\n\t\trequire(reserves[_address].isSet, \"ERR_INVALID_RESERVE\");\n\t}\n\n\t// validates conversion fee\n\tmodifier validConversionFee(uint32 _conversionFee) {\n\t\t_validConversionFee(_conversionFee);\n\t\t_;\n\t}\n\n\t// error message binary size optimization\n\tfunction _validConversionFee(uint32 _conversionFee) internal pure {\n\t\trequire(_conversionFee <= CONVERSION_FEE_RESOLUTION, \"ERR_INVALID_CONVERSION_FEE\");\n\t}\n\n\t// validates reserve weight\n\tmodifier validReserveWeight(uint32 _weight) {\n\t\t_validReserveWeight(_weight);\n\t\t_;\n\t}\n\n\t// error message binary size optimization\n\tfunction _validReserveWeight(uint32 _weight) internal pure {\n\t\trequire(_weight > 0 && _weight <= WEIGHT_RESOLUTION, \"ERR_INVALID_RESERVE_WEIGHT\");\n\t}\n\n\t/**\n\t * @dev deposits ether\n\t * can only be called if the converter has an ETH reserve\n\t */\n\tfunction() external payable {\n\t\trequire(reserves[ETH_RESERVE_ADDRESS].isSet, \"ERR_INVALID_RESERVE\"); // require(hasETHReserve(), \"ERR_INVALID_RESERVE\");\n\t\t// a workaround for a problem when running solidity-coverage\n\t\t// see https://github.com/sc-forks/solidity-coverage/issues/487\n\t}\n\n\t/**\n\t * @dev withdraws ether\n\t * can only be called by the owner if the converter is inactive or by upgrader contract\n\t * can only be called after the upgrader contract has accepted the ownership of this contract\n\t * can only be called if the converter has an ETH reserve\n\t *\n\t * @param _to address to send the ETH to\n\t */\n\tfunction withdrawETH(address _to) public protected ownerOnly validReserve(IERC20Token(ETH_RESERVE_ADDRESS)) {\n\t\taddress converterUpgrader = addressOf(CONVERTER_UPGRADER);\n\n\t\t// verify that the converter is inactive or that the owner is the upgrader contract\n\t\trequire(!isActive() || owner == converterUpgrader, \"ERR_ACCESS_DENIED\");\n\t\t_to.transfer(address(this).balance);\n\n\t\t// sync the ETH reserve balance\n\t\tsyncReserveBalance(IERC20Token(ETH_RESERVE_ADDRESS));\n\t}\n\n\t/**\n\t * @dev checks whether or not the converter version is 28 or higher\n\t *\n\t * @return true, since the converter version is 28 or higher\n\t */\n\tfunction isV28OrHigher() public pure returns (bool) {\n\t\treturn true;\n\t}\n\n\t/**\n\t * @dev allows the owner to update & enable the conversion whitelist contract address\n\t * when set, only addresses that are whitelisted are actually allowed to use the converter\n\t * note that the whitelist check is actually done by the SovrynSwapNetwork contract\n\t *\n\t * @param _whitelist address of a whitelist contract\n\t */\n\tfunction setConversionWhitelist(IWhitelist _whitelist) public ownerOnly notThis(_whitelist) {\n\t\tconversionWhitelist = _whitelist;\n\t}\n\n\t/**\n\t * @dev returns true if the converter is active, false otherwise\n\t *\n\t * @return true if the converter is active, false otherwise\n\t */\n\tfunction isActive() public view returns (bool) {\n\t\treturn anchor.owner() == address(this);\n\t}\n\n\t/**\n\t * @dev transfers the anchor ownership\n\t * the new owner needs to accept the transfer\n\t * can only be called by the converter upgrder while the upgrader is the owner\n\t * note that prior to version 28, you should use 'transferAnchorOwnership' instead\n\t *\n\t * @param _newOwner new token owner\n\t */\n\tfunction transferAnchorOwnership(address _newOwner) public ownerOnly only(CONVERTER_UPGRADER) {\n\t\tanchor.transferOwnership(_newOwner);\n\t}\n\n\t/**\n\t * @dev accepts ownership of the anchor after an ownership transfer\n\t * most converters are also activated as soon as they accept the anchor ownership\n\t * can only be called by the contract owner\n\t * note that prior to version 28, you should use 'acceptTokenOwnership' instead\n\t */\n\tfunction acceptAnchorOwnership() public ownerOnly {\n\t\t// verify the the converter has at least one reserve\n\t\trequire(reserveTokenCount() > 0, \"ERR_INVALID_RESERVE_COUNT\");\n\t\tanchor.acceptOwnership();\n\t\tsyncReserveBalances();\n\t}\n\n\t/**\n\t * @dev withdraws tokens held by the anchor and sends them to an account\n\t * can only be called by the owner\n\t *\n\t * @param _token ERC20 token contract address\n\t * @param _to account to receive the new amount\n\t * @param _amount amount to withdraw\n\t */\n\tfunction withdrawFromAnchor(\n\t\tIERC20Token _token,\n\t\taddress _to,\n\t\tuint256 _amount\n\t) public ownerOnly {\n\t\tanchor.withdrawTokens(_token, _to, _amount);\n\t}\n\n\t/**\n\t * @dev updates the current conversion fee\n\t * can only be called by the contract owner\n\t *\n\t * @param _conversionFee new conversion fee, represented in ppm\n\t */\n\tfunction setConversionFee(uint32 _conversionFee) public ownerOnly {\n\t\trequire(_conversionFee <= maxConversionFee, \"ERR_INVALID_CONVERSION_FEE\");\n\t\temit ConversionFeeUpdate(conversionFee, _conversionFee);\n\t\tconversionFee = _conversionFee;\n\t}\n\n\t/**\n\t * @dev withdraws tokens held by the converter and sends them to an account\n\t * can only be called by the owner\n\t * note that reserve tokens can only be withdrawn by the owner while the converter is inactive\n\t * unless the owner is the converter upgrader contract\n\t *\n\t * @param _token ERC20 token contract address\n\t * @param _to account to receive the new amount\n\t * @param _amount amount to withdraw\n\t */\n\tfunction withdrawTokens(\n\t\tIERC20Token _token,\n\t\taddress _to,\n\t\tuint256 _amount\n\t) public protected ownerOnly {\n\t\taddress converterUpgrader = addressOf(CONVERTER_UPGRADER);\n\n\t\t// if the token is not a reserve token, allow withdrawal\n\t\t// otherwise verify that the converter is inactive or that the owner is the upgrader contract\n\t\trequire(!reserves[_token].isSet || !isActive() || owner == converterUpgrader, \"ERR_ACCESS_DENIED\");\n\t\tsuper.withdrawTokens(_token, _to, _amount);\n\n\t\t// if the token is a reserve token, sync the reserve balance\n\t\tif (reserves[_token].isSet) syncReserveBalance(_token);\n\t}\n\n\t/**\n\t * @dev upgrades the converter to the latest version\n\t * can only be called by the owner\n\t * note that the owner needs to call acceptOwnership on the new converter after the upgrade\n\t */\n\tfunction upgrade() public ownerOnly {\n\t\tIConverterUpgrader converterUpgrader = IConverterUpgrader(addressOf(CONVERTER_UPGRADER));\n\n\t\t// trigger de-activation event\n\t\temit Activation(converterType(), anchor, false);\n\n\t\ttransferOwnership(converterUpgrader);\n\t\tconverterUpgrader.upgrade(version);\n\t\tacceptOwnership();\n\t}\n\n\t/**\n\t * @dev returns the number of reserve tokens defined\n\t * note that prior to version 17, you should use 'connectorTokenCount' instead\n\t *\n\t * @return number of reserve tokens\n\t */\n\tfunction reserveTokenCount() public view returns (uint16) {\n\t\treturn uint16(reserveTokens.length);\n\t}\n\n\t/**\n\t * @dev defines a new reserve token for the converter\n\t * can only be called by the owner while the converter is inactive\n\t *\n\t * @param _token address of the reserve token\n\t * @param _weight reserve weight, represented in ppm, 1-1000000\n\t */\n\tfunction addReserve(IERC20Token _token, uint32 _weight)\n\t\tpublic\n\t\townerOnly\n\t\tinactive\n\t\tvalidAddress(_token)\n\t\tnotThis(_token)\n\t\tvalidReserveWeight(_weight)\n\t{\n\t\t// validate input\n\t\trequire(_token != address(anchor) && !reserves[_token].isSet, \"ERR_INVALID_RESERVE\");\n\t\trequire(_weight <= WEIGHT_RESOLUTION - reserveRatio, \"ERR_INVALID_RESERVE_WEIGHT\");\n\t\trequire(reserveTokenCount() < uint16(-1), \"ERR_INVALID_RESERVE_COUNT\");\n\n\t\tReserve storage newReserve = reserves[_token];\n\t\tnewReserve.balance = 0;\n\t\tnewReserve.weight = _weight;\n\t\tnewReserve.isSet = true;\n\t\treserveTokens.push(_token);\n\t\treserveRatio += _weight;\n\t}\n\n\t/**\n\t * @dev returns the reserve's weight\n\t * added in version 28\n\t *\n\t * @param _reserveToken reserve token contract address\n\t *\n\t * @return reserve weight\n\t */\n\tfunction reserveWeight(IERC20Token _reserveToken) public view validReserve(_reserveToken) returns (uint32) {\n\t\treturn reserves[_reserveToken].weight;\n\t}\n\n\t/**\n\t * @dev returns the reserve's balance\n\t * note that prior to version 17, you should use 'getConnectorBalance' instead\n\t *\n\t * @param _reserveToken reserve token contract address\n\t *\n\t * @return reserve balance\n\t */\n\tfunction reserveBalance(IERC20Token _reserveToken) public view validReserve(_reserveToken) returns (uint256) {\n\t\treturn reserves[_reserveToken].balance;\n\t}\n\n\t/**\n\t * @dev checks whether or not the converter has an ETH reserve\n\t *\n\t * @return true if the converter has an ETH reserve, false otherwise\n\t */\n\tfunction hasETHReserve() public view returns (bool) {\n\t\treturn reserves[ETH_RESERVE_ADDRESS].isSet;\n\t}\n\n\t/**\n\t * @dev converts a specific amount of source tokens to target tokens\n\t * can only be called by the SovrynSwap network contract\n\t *\n\t * @param _sourceToken source ERC20 token\n\t * @param _targetToken target ERC20 token\n\t * @param _amount amount of tokens to convert (in units of the source token)\n\t * @param _trader address of the caller who executed the conversion\n\t * @param _beneficiary wallet to receive the conversion result\n\t *\n\t * @return amount of tokens received (in units of the target token)\n\t */\n\tfunction convert(\n\t\tIERC20Token _sourceToken,\n\t\tIERC20Token _targetToken,\n\t\tuint256 _amount,\n\t\taddress _trader,\n\t\taddress _beneficiary\n\t) public payable protected only(SOVRYNSWAP_NETWORK) returns (uint256) {\n\t\t// validate input\n\t\trequire(_sourceToken != _targetToken, \"ERR_SAME_SOURCE_TARGET\");\n\n\t\t// if a whitelist is set, verify that both and trader and the beneficiary are whitelisted\n\t\trequire(\n\t\t\tconversionWhitelist == address(0) || (conversionWhitelist.isWhitelisted(_trader) && conversionWhitelist.isWhitelisted(_beneficiary)),\n\t\t\t\"ERR_NOT_WHITELISTED\"\n\t\t);\n\n\t\treturn doConvert(_sourceToken, _targetToken, _amount, _trader, _beneficiary);\n\t}\n\n\t/**\n\t * @dev converts a specific amount of source tokens to target tokens\n\t * called by ConverterBase and allows the inherited contracts to implement custom conversion logic\n\t *\n\t * @param _sourceToken source ERC20 token\n\t * @param _targetToken target ERC20 token\n\t * @param _amount amount of tokens to convert (in units of the source token)\n\t * @param _trader address of the caller who executed the conversion\n\t * @param _beneficiary wallet to receive the conversion result\n\t *\n\t * @return amount of tokens received (in units of the target token)\n\t */\n\tfunction doConvert(\n\t\tIERC20Token _sourceToken,\n\t\tIERC20Token _targetToken,\n\t\tuint256 _amount,\n\t\taddress _trader,\n\t\taddress _beneficiary\n\t) internal returns (uint256);\n\n\t/**\n\t * @dev returns the conversion fee for a given target amount\n\t *\n\t * @param _targetAmount target amount\n\t *\n\t * @return conversion fee\n\t */\n\tfunction calculateFee(uint256 _targetAmount) internal view returns (uint256) {\n\t\treturn _targetAmount.mul(conversionFee).div(CONVERSION_FEE_RESOLUTION);\n\t}\n\n\t/**\n\t * @dev syncs the stored reserve balance for a given reserve with the real reserve balance\n\t *\n\t * @param _reserveToken address of the reserve token\n\t */\n\tfunction syncReserveBalance(IERC20Token _reserveToken) internal validReserve(_reserveToken) {\n\t\tif (_reserveToken == ETH_RESERVE_ADDRESS) reserves[_reserveToken].balance = address(this).balance;\n\t\telse reserves[_reserveToken].balance = _reserveToken.balanceOf(this);\n\t}\n\n\t/**\n\t * @dev syncs all stored reserve balances\n\t */\n\tfunction syncReserveBalances() internal {\n\t\tuint256 reserveCount = reserveTokens.length;\n\t\tfor (uint256 i = 0; i < reserveCount; i++) syncReserveBalance(reserveTokens[i]);\n\t}\n\n\t/**\n\t * @dev helper, dispatches the Conversion event\n\t *\n\t * @param _sourceToken source ERC20 token\n\t * @param _targetToken target ERC20 token\n\t * @param _trader address of the caller who executed the conversion\n\t * @param _amount amount purchased/sold (in the source token)\n\t * @param _returnAmount amount returned (in the target token)\n\t */\n\tfunction dispatchConversionEvent(\n\t\tIERC20Token _sourceToken,\n\t\tIERC20Token _targetToken,\n\t\taddress _trader,\n\t\tuint256 _amount,\n\t\tuint256 _returnAmount,\n\t\tuint256 _feeAmount\n\t) internal {\n\t\t// fee amount is converted to 255 bits -\n\t\t// negative amount means the fee is taken from the source token, positive amount means its taken from the target token\n\t\t// currently the fee is always taken from the target token\n\t\t// since we convert it to a signed number, we first ensure that it's capped at 255 bits to prevent overflow\n\t\tassert(_feeAmount < 2**255);\n\t\temit Conversion(_sourceToken, _targetToken, _trader, _amount, _returnAmount, int256(_feeAmount));\n\t}\n\n\t/**\n\t * @dev deprecated since version 28, backward compatibility - use only for earlier versions\n\t */\n\tfunction token() public view returns (IConverterAnchor) {\n\t\treturn anchor;\n\t}\n\n\t/**\n\t * @dev deprecated, backward compatibility\n\t */\n\tfunction transferTokenOwnership(address _newOwner) public ownerOnly {\n\t\ttransferAnchorOwnership(_newOwner);\n\t}\n\n\t/**\n\t * @dev deprecated, backward compatibility\n\t */\n\tfunction acceptTokenOwnership() public ownerOnly {\n\t\tacceptAnchorOwnership();\n\t}\n\n\t/**\n\t * @dev deprecated, backward compatibility\n\t */\n\tfunction connectors(address _address)\n\t\tpublic\n\t\tview\n\t\treturns (\n\t\t\tuint256,\n\t\t\tuint32,\n\t\t\tbool,\n\t\t\tbool,\n\t\t\tbool\n\t\t)\n\t{\n\t\tReserve memory reserve = reserves[_address];\n\t\treturn (reserve.balance, reserve.weight, false, false, reserve.isSet);\n\t}\n\n\t/**\n\t * @dev deprecated, backward compatibility\n\t */\n\tfunction connectorTokens(uint256 _index) public view returns (IERC20Token) {\n\t\treturn ConverterBase.reserveTokens[_index];\n\t}\n\n\t/**\n\t * @dev deprecated, backward compatibility\n\t */\n\tfunction connectorTokenCount() public view returns (uint16) {\n\t\treturn reserveTokenCount();\n\t}\n\n\t/**\n\t * @dev deprecated, backward compatibility\n\t */\n\tfunction getConnectorBalance(IERC20Token _connectorToken) public view returns (uint256) {\n\t\treturn reserveBalance(_connectorToken);\n\t}\n\n\t/**\n\t * @dev deprecated, backward compatibility\n\t */\n\tfunction getReturn(\n\t\tIERC20Token _sourceToken,\n\t\tIERC20Token _targetToken,\n\t\tuint256 _amount\n\t) public view returns (uint256, uint256) {\n\t\treturn targetAmountAndFee(_sourceToken, _targetToken, _amount);\n\t}\n}\n" + }, + "solidity/contracts/converter/types/liquidity-pool-v2/LiquidityPoolV2ConverterAnchorFactory.sol": { + "content": "pragma solidity 0.4.26;\r\nimport \"./PoolTokensContainer.sol\";\r\nimport \"../../interfaces/ITypedConverterAnchorFactory.sol\";\r\n\r\n/*\r\n LiquidityPoolV2ConverterAnchorFactory Factory\r\n*/\r\ncontract LiquidityPoolV2ConverterAnchorFactory is ITypedConverterAnchorFactory {\r\n /**\r\n * @dev returns the converter type the factory is associated with\r\n *\r\n * @return converter type\r\n */\r\n function converterType() public pure returns (uint16) {\r\n return 2;\r\n }\r\n\r\n /**\r\n * @dev creates a new converter anchor with the given arguments and transfers\r\n * the ownership to the caller\r\n *\r\n * @param _name pool name\r\n * @param _symbol pool symbol\r\n * @param _decimals pool decimals\r\n *\r\n * @return new anchor\r\n */\r\n function createAnchor(string _name, string _symbol, uint8 _decimals) public returns (IConverterAnchor) {\r\n IPoolTokensContainer container = new PoolTokensContainer(_name, _symbol, _decimals);\r\n container.transferOwnership(msg.sender);\r\n return container;\r\n }\r\n}\r\n" + }, + "solidity/contracts/converter/interfaces/ITypedConverterAnchorFactory.sol": { + "content": "pragma solidity 0.4.26;\nimport \"./IConverterAnchor.sol\";\n\n/*\n Typed Converter Anchor Factory interface\n*/\ncontract ITypedConverterAnchorFactory {\n\tfunction converterType() public pure returns (uint16);\n\n\tfunction createAnchor(\n\t\tstring _name,\n\t\tstring _symbol,\n\t\tuint8 _decimals\n\t) public returns (IConverterAnchor);\n}\n" + }, + "solidity/contracts/helpers/TestTypedConverterAnchorFactory.sol": { + "content": "pragma solidity 0.4.26;\nimport \"../converter/interfaces/IConverterAnchor.sol\";\nimport \"../converter/interfaces/ITypedConverterAnchorFactory.sol\";\nimport \"../token/SmartToken.sol\";\n\ncontract TestTypedConverterAnchorFactory is ITypedConverterAnchorFactory {\n\tstring public name;\n\n\tconstructor(string _name) public {\n\t\tname = _name;\n\t}\n\n\tfunction converterType() public pure returns (uint16) {\n\t\treturn 8;\n\t}\n\n\tfunction createAnchor(\n\t\tstring, /*_name */\n\t\tstring _symbol,\n\t\tuint8 _decimals\n\t) public returns (IConverterAnchor) {\n\t\tIConverterAnchor anchor = new SmartToken(name, _symbol, _decimals);\n\n\t\tanchor.transferOwnership(msg.sender);\n\n\t\treturn anchor;\n\t}\n}\n" + }, + "solidity/contracts/utility/MocBTCToUSDOracle.sol": { + "content": "pragma solidity 0.4.26;\n\nimport \"./interfaces/IConsumerPriceOracle.sol\";\nimport \"./Owned.sol\";\n\ninterface Medianizer {\n\tfunction peek() external view returns (bytes32, bool);\n}\n\ncontract MocBTCToUSDOracle is IConsumerPriceOracle, Owned {\n\taddress public mocOracleAddress;\n\n\tevent SetMoCOracleAddress(address indexed mocOracleAddress, address changerAddress);\n\n\t/**\n\t * @dev initializes a ne MoC oracle\n\t *\n\t * @param _mocOracleAddress MoC oracle address\n\t */\n\tconstructor(address _mocOracleAddress) public {\n\t\tsetMoCOracleAddress(_mocOracleAddress);\n\t}\n\n\t/**\n\t * @dev returns the USD/BTC rate.\n\t *\n\t * @return MoC medianizer rate\n\t */\n\tfunction latestAnswer() external view returns (int256) {\n\t\t(bytes32 value, bool hasValue) = Medianizer(mocOracleAddress).peek();\n\t\trequire(hasValue, \"Doesn't has value\");\n\t\treturn int256(value);\n\t}\n\n\t/**\n\t * @dev returns the USD/BTC update time.\n\t *\n\t * @return always returns current block's timestamp\n\t */\n\tfunction latestTimestamp() external view returns (uint256) {\n\t\treturn now; // MoC oracle doesn't return update timestamp\n\t}\n\n\t/**\n\t * @dev set MoC oracle address\n\t *\n\t * @param _mocOracleAddress MoC oracle address\n\t */\n\tfunction setMoCOracleAddress(address _mocOracleAddress) public ownerOnly {\n\t\trequire(_mocOracleAddress != address(0), \"_mocOracleAddress shall not be zero address\");\n\t\tmocOracleAddress = _mocOracleAddress;\n\t\temit SetMoCOracleAddress(mocOracleAddress, msg.sender);\n\t}\n}\n" + }, + "solidity/contracts/utility/MoCMedianizerMock.sol": { + "content": "pragma solidity 0.4.26;\nimport \"./MocBTCToUSDOracle.sol\";\n\n// This contract is only for test purposes\n// https://github.com/money-on-chain/Amphiraos-Oracle/blob/master/contracts/medianizer/medianizer.sol\ncontract MoCMedianizerMock is Medianizer {\n\tuint256 public value;\n\tbool public has;\n\n\tfunction peek() external view returns (bytes32, bool) {\n\t\treturn (bytes32(value), has);\n\t}\n\n\tfunction setValue(uint256 _value) public {\n\t\tvalue = _value;\n\t}\n\n\tfunction setHas(bool _has) public {\n\t\thas = _has;\n\t}\n}\n" + }, + "solidity/contracts/utility/BProOracle.sol": { + "content": "pragma solidity 0.4.26;\n\nimport \"./interfaces/IMoCState.sol\";\nimport \"./interfaces/IConsumerPriceOracle.sol\";\nimport \"./Owned.sol\";\n\ncontract BProOracle is IConsumerPriceOracle, Owned {\n\taddress public mocStateAddress;\n\n\tevent SetMoCStateAddress(address indexed mocStateAddress, address changerAddress);\n\n\t/**\n\t * @dev initializes a new MoC state\n\t *\n\t * @param _mocStateAddress MoC state address\n\t */\n\tconstructor(address _mocStateAddress) public {\n\t\tsetMoCStateAddress(_mocStateAddress);\n\t}\n\n\t/**\n\t * @dev BPro USD PRICE\n\t * @return the BPro USD Price [using mocPrecision]\n\t */\n\tfunction latestAnswer() external view returns (int256) {\n\t\tIMoCState _mocState = IMoCState(mocStateAddress);\n\t\treturn int256(_mocState.bproUsdPrice());\n\t}\n\n\t/**\n\t * @dev returns the update time.\n\t *\n\t * @return always returns current block's timestamp\n\t */\n\tfunction latestTimestamp() external view returns (uint256) {\n\t\treturn now; // MoC state doesn't return update timestamp\n\t}\n\n\t/**\n\t * @dev set MoC state address\n\t *\n\t * @param _mocStateAddress MoC state address\n\t */\n\tfunction setMoCStateAddress(address _mocStateAddress) public ownerOnly {\n\t\trequire(_mocStateAddress != address(0), \"_mocStateAddress shall not be zero address\");\n\t\tmocStateAddress = _mocStateAddress;\n\t\temit SetMoCStateAddress(mocStateAddress, msg.sender);\n\t}\n}\n" + }, + "solidity/contracts/utility/interfaces/IMoCState.sol": { + "content": "pragma solidity 0.4.26;\n\ninterface IMoCState {\n\tfunction bproUsdPrice() external view returns (uint256);\n}\n" + }, + "solidity/contracts/utility/MoCStateMock.sol": { + "content": "pragma solidity 0.4.26;\n\nimport \"./interfaces/IMoCState.sol\";\n\ncontract MoCStateMock is IMoCState {\n\tuint256 public value;\n\n\tfunction bproUsdPrice() public view returns (uint256) {\n\t\treturn value;\n\t}\n\n\tfunction setValue(uint256 _value) public {\n\t\tvalue = _value;\n\t}\n}\n" + }, + "solidity/contracts/sovrynswapx/XTransferRerouter.sol": { + "content": "pragma solidity 0.4.26;\nimport \"../utility/Owned.sol\";\n\ncontract XTransferRerouter is Owned {\n\tbool public reroutingEnabled;\n\n\t// triggered when a rerouteTx is called\n\tevent TxReroute(uint256 indexed _txId, bytes32 _toBlockchain, bytes32 _to);\n\n\t/**\n\t * @dev initializes a new XTransferRerouter instance\n\t *\n\t * @param _reroutingEnabled intializes transactions routing to enabled/disabled\n\t */\n\tconstructor(bool _reroutingEnabled) public {\n\t\treroutingEnabled = _reroutingEnabled;\n\t}\n\n\t/**\n\t * @dev allows the owner to disable/enable rerouting\n\t *\n\t * @param _enable true to enable, false to disable\n\t */\n\tfunction enableRerouting(bool _enable) public ownerOnly {\n\t\treroutingEnabled = _enable;\n\t}\n\n\t// allows execution only when rerouting enabled\n\tmodifier reroutingAllowed {\n\t\t_reroutingAllowed();\n\t\t_;\n\t}\n\n\t// error message binary size optimization\n\tfunction _reroutingAllowed() internal view {\n\t\trequire(reroutingEnabled, \"ERR_DISABLED\");\n\t}\n\n\t/**\n\t * @dev allows a user to reroute a transaction to a new blockchain/target address\n\t *\n\t * @param _txId the original transaction id\n\t * @param _blockchain the new blockchain name\n\t * @param _to the new target address/account\n\t */\n\tfunction rerouteTx(\n\t\tuint256 _txId,\n\t\tbytes32 _blockchain,\n\t\tbytes32 _to\n\t) public reroutingAllowed {\n\t\temit TxReroute(_txId, _blockchain, _to);\n\t}\n}\n" + }, + "solidity/contracts/converter/ConverterFactory.sol": { + "content": "pragma solidity 0.4.26;\nimport \"./interfaces/IConverter.sol\";\nimport \"./interfaces/IConverterFactory.sol\";\nimport \"./interfaces/ITypedConverterFactory.sol\";\nimport \"./interfaces/ITypedConverterAnchorFactory.sol\";\nimport \"./interfaces/ITypedConverterCustomFactory.sol\";\nimport \"../utility/Owned.sol\";\nimport \"../utility/interfaces/IContractRegistry.sol\";\nimport \"../token/SmartToken.sol\";\n\n/*\n Converter Factory\n*/\ncontract ConverterFactory is IConverterFactory, Owned {\n\t/**\n\t * @dev triggered when a new converter is created\n\t *\n\t * @param _type converter type, see ConverterBase contract main doc\n\t * @param _converter new converter address\n\t * @param _owner converter owner address\n\t */\n\tevent NewConverter(uint16 indexed _type, address indexed _converter, address indexed _owner);\n\n\tmapping(uint16 => ITypedConverterFactory) public converterFactories;\n\tmapping(uint16 => ITypedConverterAnchorFactory) public anchorFactories;\n\tmapping(uint16 => ITypedConverterCustomFactory) public customFactories;\n\n\t/**\n\t * @dev initializes the factory with a specific typed converter factory\n\t * can only be called by the owner\n\t *\n\t * @param _factory typed converter factory\n\t */\n\tfunction registerTypedConverterFactory(ITypedConverterFactory _factory) public ownerOnly {\n\t\tconverterFactories[_factory.converterType()] = _factory;\n\t}\n\n\t/**\n\t * @dev initializes the factory with a specific typed converter anchor factory\n\t * can only be called by the owner\n\t *\n\t * @param _factory typed converter anchor factory\n\t */\n\tfunction registerTypedConverterAnchorFactory(ITypedConverterAnchorFactory _factory) public ownerOnly {\n\t\tanchorFactories[_factory.converterType()] = _factory;\n\t}\n\n\t/**\n\t * @dev initializes the factory with a specific typed converter custom factory\n\t * can only be called by the owner\n\t *\n\t * @param _factory typed converter custom factory\n\t */\n\tfunction registerTypedConverterCustomFactory(ITypedConverterCustomFactory _factory) public ownerOnly {\n\t\tcustomFactories[_factory.converterType()] = _factory;\n\t}\n\n\t/**\n\t * @dev creates a new converter anchor with the given arguments and transfers\n\t * the ownership to the caller\n\t *\n\t * @param _converterType converter type, see ConverterBase contract main doc\n\t * @param _name name\n\t * @param _symbol symbol\n\t * @param _decimals decimals\n\t *\n\t * @return new converter anchor\n\t */\n\tfunction createAnchor(\n\t\tuint16 _converterType,\n\t\tstring _name,\n\t\tstring _symbol,\n\t\tuint8 _decimals\n\t) public returns (IConverterAnchor) {\n\t\tIConverterAnchor anchor;\n\t\tITypedConverterAnchorFactory factory = anchorFactories[_converterType];\n\n\t\tif (factory == address(0)) {\n\t\t\t// create default anchor (SmartToken)\n\t\t\tanchor = new SmartToken(_name, _symbol, _decimals);\n\t\t} else {\n\t\t\t// create custom anchor\n\t\t\tanchor = factory.createAnchor(_name, _symbol, _decimals);\n\t\t\tanchor.acceptOwnership();\n\t\t}\n\n\t\tanchor.transferOwnership(msg.sender);\n\t\treturn anchor;\n\t}\n\n\t/**\n\t * @dev creates a new converter with the given arguments and transfers\n\t * the ownership to the caller\n\t *\n\t * @param _type converter type, see ConverterBase contract main doc\n\t * @param _anchor anchor governed by the converter\n\t * @param _registry address of a contract registry contract\n\t * @param _maxConversionFee maximum conversion fee, represented in ppm\n\t *\n\t * @return new converter\n\t */\n\tfunction createConverter(\n\t\tuint16 _type,\n\t\tIConverterAnchor _anchor,\n\t\tIContractRegistry _registry,\n\t\tuint32 _maxConversionFee\n\t) public returns (IConverter) {\n\t\tIConverter converter = converterFactories[_type].createConverter(_anchor, _registry, _maxConversionFee);\n\t\tconverter.acceptOwnership();\n\t\tconverter.transferOwnership(msg.sender);\n\n\t\temit NewConverter(_type, converter, msg.sender);\n\t\treturn converter;\n\t}\n}\n" + }, + "solidity/contracts/helpers/TestConverterFactory.sol": { + "content": "pragma solidity 0.4.26;\nimport \"../converter/ConverterFactory.sol\";\n\n/*\n Utils test helper that exposes the converter factory functions\n*/\ncontract TestConverterFactory is ConverterFactory {\n\tIConverter public createdConverter;\n\tIConverterAnchor public createdAnchor;\n\n\tfunction createAnchor(\n\t\tuint16 _converterType,\n\t\tstring _name,\n\t\tstring _symbol,\n\t\tuint8 _decimals\n\t) public returns (IConverterAnchor) {\n\t\tcreatedAnchor = super.createAnchor(_converterType, _name, _symbol, _decimals);\n\n\t\treturn createdAnchor;\n\t}\n\n\tfunction createConverter(\n\t\tuint16 _type,\n\t\tIConverterAnchor _anchor,\n\t\tIContractRegistry _registry,\n\t\tuint32 _maxConversionFee\n\t) public returns (IConverter) {\n\t\tcreatedConverter = super.createConverter(_type, _anchor, _registry, _maxConversionFee);\n\n\t\treturn createdConverter;\n\t}\n}\n" + }, + "solidity/contracts/helpers/TestLiquidityPoolV2Converter.sol": { + "content": "pragma solidity 0.4.26;\nimport \"../converter/types/liquidity-pool-v2/LiquidityPoolV2Converter.sol\";\n\ncontract TestLiquidityPoolV2Converter is LiquidityPoolV2Converter {\n\tuint256 public currentTime;\n\n\tconstructor(\n\t\tIPoolTokensContainer _token,\n\t\tIContractRegistry _registry,\n\t\tuint32 _maxConversionFee\n\t) public LiquidityPoolV2Converter(_token, _registry, _maxConversionFee) {}\n\n\tfunction setReferenceRateUpdateTime(uint256 _referenceRateUpdateTime) public {\n\t\treferenceRateUpdateTime = _referenceRateUpdateTime;\n\t}\n\n\tfunction time() internal view returns (uint256) {\n\t\treturn currentTime != 0 ? currentTime : now;\n\t}\n\n\tfunction setTime(uint256 _currentTime) public {\n\t\tcurrentTime = _currentTime;\n\t}\n\n\tfunction calculateFeeToEquilibriumTest(\n\t\tuint256 _primaryReserveStaked,\n\t\tuint256 _secondaryReserveStaked,\n\t\tuint256 _primaryReserveWeight,\n\t\tuint256 _secondaryReserveWeight,\n\t\tuint256 _primaryReserveRate,\n\t\tuint256 _secondaryReserveRate,\n\t\tuint256 _dynamicFeeFactor\n\t) external pure returns (uint256) {\n\t\treturn\n\t\t\tcalculateFeeToEquilibrium(\n\t\t\t\t_primaryReserveStaked,\n\t\t\t\t_secondaryReserveStaked,\n\t\t\t\t_primaryReserveWeight,\n\t\t\t\t_secondaryReserveWeight,\n\t\t\t\t_primaryReserveRate,\n\t\t\t\t_secondaryReserveRate,\n\t\t\t\t_dynamicFeeFactor\n\t\t\t);\n\t}\n\n\tfunction setReserveWeight(IERC20Token _reserveToken, uint32 _weight) public validReserve(_reserveToken) {\n\t\treserves[_reserveToken].weight = _weight;\n\t}\n}\n" + }, + "solidity/contracts/converter/types/liquidity-pool-v1/LiquidityPoolV1ConverterFactory.sol": { + "content": "pragma solidity 0.4.26;\r\nimport \"./LiquidityPoolV1Converter.sol\";\r\nimport \"../../interfaces/IConverter.sol\";\r\nimport \"../../interfaces/ITypedConverterFactory.sol\";\r\nimport \"../../../token/interfaces/ISmartToken.sol\";\r\n\r\n/*\r\n LiquidityPoolV1Converter Factory\r\n*/\r\ncontract LiquidityPoolV1ConverterFactory is ITypedConverterFactory {\r\n /**\r\n * @dev returns the converter type the factory is associated with\r\n *\r\n * @return converter type\r\n */\r\n function converterType() public pure returns (uint16) {\r\n return 1;\r\n }\r\n\r\n /**\r\n * @dev creates a new converter with the given arguments and transfers\r\n * the ownership to the caller\r\n *\r\n * @param _anchor anchor governed by the converter\r\n * @param _registry address of a contract registry contract\r\n * @param _maxConversionFee maximum conversion fee, represented in ppm\r\n *\r\n * @return a new converter\r\n */\r\n function createConverter(IConverterAnchor _anchor, IContractRegistry _registry, uint32 _maxConversionFee) public returns (IConverter) {\r\n IConverter converter = new LiquidityPoolV1Converter(ISmartToken(_anchor), _registry, _maxConversionFee);\r\n converter.transferOwnership(msg.sender);\r\n return converter;\r\n }\r\n}\r\n" + }, + "solidity/contracts/converter/types/liquidity-pool-v1/LiquidityPoolV1Converter.sol": { + "content": "pragma solidity 0.4.26;\r\nimport \"../../LiquidityPoolConverter.sol\";\r\nimport \"../../../token/interfaces/ISmartToken.sol\";\r\n\r\n/**\r\n * @dev Liquidity Pool v1 Converter\r\n *\r\n * The liquidity pool v1 converter is a specialized version of a converter that manages\r\n * a classic SovrynSwap liquidity pool.\r\n *\r\n * Even though classic pools can have many reserves, the most common configuration of\r\n * the pool has 2 reserves with 50%/50% weights.\r\n*/\r\ncontract LiquidityPoolV1Converter is LiquidityPoolConverter {\r\n IEtherToken internal etherToken = IEtherToken(0xc0829421C1d260BD3cB3E0F06cfE2D52db2cE315);\r\n\r\n /**\r\n * @dev triggered after a conversion with new price data\r\n * deprecated, use `TokenRateUpdate` from version 28 and up\r\n *\r\n * @param _connectorToken reserve token\r\n * @param _tokenSupply smart token supply\r\n * @param _connectorBalance reserve balance\r\n * @param _connectorWeight reserve weight\r\n */\r\n event PriceDataUpdate(\r\n address indexed _connectorToken,\r\n uint256 _tokenSupply,\r\n uint256 _connectorBalance,\r\n uint32 _connectorWeight\r\n );\r\n\r\n /**\r\n * @dev initializes a new LiquidityPoolV1Converter instance\r\n *\r\n * @param _token pool token governed by the converter\r\n * @param _registry address of a contract registry contract\r\n * @param _maxConversionFee maximum conversion fee, represented in ppm\r\n */\r\n constructor(\r\n ISmartToken _token,\r\n IContractRegistry _registry,\r\n uint32 _maxConversionFee\r\n )\r\n LiquidityPoolConverter(_token, _registry, _maxConversionFee)\r\n public\r\n {\r\n }\r\n\r\n /**\r\n * @dev returns the converter type\r\n *\r\n * @return see the converter types in the the main contract doc\r\n */\r\n function converterType() public pure returns (uint16) {\r\n return 1;\r\n }\r\n\r\n /**\r\n * @dev accepts ownership of the anchor after an ownership transfer\r\n * also activates the converter\r\n * can only be called by the contract owner\r\n * note that prior to version 28, you should use 'acceptTokenOwnership' instead\r\n */\r\n function acceptAnchorOwnership() public ownerOnly {\r\n super.acceptAnchorOwnership();\r\n\r\n emit Activation(converterType(), anchor, true);\r\n }\r\n\r\n /**\r\n * @dev returns the expected target amount of converting one reserve to another along with the fee\r\n *\r\n * @param _sourceToken contract address of the source reserve token\r\n * @param _targetToken contract address of the target reserve token\r\n * @param _amount amount of tokens received from the user\r\n *\r\n * @return expected target amount\r\n * @return expected fee\r\n */\r\n function targetAmountAndFee(IERC20Token _sourceToken, IERC20Token _targetToken, uint256 _amount)\r\n public\r\n view\r\n active\r\n validReserve(_sourceToken)\r\n validReserve(_targetToken)\r\n returns (uint256, uint256)\r\n {\r\n // validate input\r\n require(_sourceToken != _targetToken, \"ERR_SAME_SOURCE_TARGET\");\r\n\r\n uint256 amount = ISovrynSwapFormula(addressOf(SOVRYNSWAP_FORMULA)).crossReserveTargetAmount(\r\n reserveBalance(_sourceToken),\r\n reserves[_sourceToken].weight,\r\n reserveBalance(_targetToken),\r\n reserves[_targetToken].weight,\r\n _amount\r\n );\r\n\r\n // return the amount minus the conversion fee and the conversion fee\r\n uint256 fee = calculateFee(amount);\r\n return (amount - fee, fee);\r\n }\r\n\r\n /**\r\n * @dev converts a specific amount of source tokens to target tokens\r\n * can only be called by the SovrynSwap network contract\r\n *\r\n * @param _sourceToken source ERC20 token\r\n * @param _targetToken target ERC20 token\r\n * @param _amount amount of tokens to convert (in units of the source token)\r\n * @param _trader address of the caller who executed the conversion\r\n * @param _beneficiary wallet to receive the conversion result\r\n *\r\n * @return amount of tokens received (in units of the target token)\r\n */\r\n function doConvert(IERC20Token _sourceToken, IERC20Token _targetToken, uint256 _amount, address _trader, address _beneficiary)\r\n internal\r\n returns (uint256)\r\n {\r\n // get expected target amount and fee\r\n (uint256 amount, uint256 fee) = targetAmountAndFee(_sourceToken, _targetToken, _amount);\r\n\r\n // ensure that the trade gives something in return\r\n require(amount != 0, \"ERR_ZERO_TARGET_AMOUNT\");\r\n\r\n // ensure that the trade won't deplete the reserve balance\r\n uint256 targetReserveBalance = reserveBalance(_targetToken);\r\n assert(amount < targetReserveBalance);\r\n\r\n // ensure that the input amount was already deposited\r\n if (_sourceToken == ETH_RESERVE_ADDRESS)\r\n require(msg.value == _amount, \"ERR_ETH_AMOUNT_MISMATCH\");\r\n else\r\n require(msg.value == 0 && _sourceToken.balanceOf(this).sub(reserveBalance(_sourceToken)) >= _amount, \"ERR_INVALID_AMOUNT\");\r\n\r\n // sync the reserve balances\r\n syncReserveBalance(_sourceToken);\r\n reserves[_targetToken].balance = reserves[_targetToken].balance.sub(amount);\r\n\r\n // transfer funds to the beneficiary in the to reserve token\r\n if (_targetToken == ETH_RESERVE_ADDRESS)\r\n _beneficiary.transfer(amount);\r\n else\r\n safeTransfer(_targetToken, _beneficiary, amount);\r\n\r\n // dispatch the conversion event\r\n dispatchConversionEvent(_sourceToken, _targetToken, _trader, _amount, amount, fee);\r\n\r\n // dispatch rate updates\r\n dispatchRateEvents(_sourceToken, _targetToken);\r\n\r\n return amount;\r\n }\r\n\r\n /**\r\n * @dev increases the pool's liquidity and mints new shares in the pool to the caller\r\n * note that prior to version 28, you should use 'fund' instead\r\n *\r\n * @param _reserveTokens address of each reserve token\r\n * @param _reserveAmounts amount of each reserve token\r\n * @param _minReturn token minimum return-amount\r\n */\r\n function addLiquidity(IERC20Token[] memory _reserveTokens, uint256[] memory _reserveAmounts, uint256 _minReturn)\r\n public\r\n payable\r\n protected\r\n active\r\n {\r\n // verify the user input\r\n verifyLiquidityInput(_reserveTokens, _reserveAmounts, _minReturn);\r\n\r\n // if one of the reserves is ETH, then verify that the input amount of ETH is equal to the input value of ETH\r\n for (uint256 i = 0; i < _reserveTokens.length; i++)\r\n if (_reserveTokens[i] == ETH_RESERVE_ADDRESS)\r\n require(_reserveAmounts[i] == msg.value, \"ERR_ETH_AMOUNT_MISMATCH\");\r\n\r\n // if the input value of ETH is larger than zero, then verify that one of the reserves is ETH\r\n if (msg.value > 0)\r\n require(reserves[ETH_RESERVE_ADDRESS].isSet, \"ERR_NO_ETH_RESERVE\");\r\n\r\n // get the total supply\r\n uint256 totalSupply = ISmartToken(anchor).totalSupply();\r\n\r\n // transfer from the user an equally-worth amount of each one of the reserve tokens\r\n uint256 amount = addLiquidityToPool(_reserveTokens, _reserveAmounts, totalSupply);\r\n\r\n // verify that the equivalent amount of tokens is equal to or larger than the user's expectation\r\n require(amount >= _minReturn, \"ERR_RETURN_TOO_LOW\");\r\n\r\n // issue the tokens to the user\r\n ISmartToken(anchor).issue(msg.sender, amount);\r\n }\r\n\r\n /**\r\n * @dev decreases the pool's liquidity and burns the caller's shares in the pool\r\n * note that prior to version 28, you should use 'liquidate' instead\r\n *\r\n * @param _amount token amount\r\n * @param _reserveTokens address of each reserve token\r\n * @param _reserveMinReturnAmounts minimum return-amount of each reserve token\r\n */\r\n function removeLiquidity(uint256 _amount, IERC20Token[] memory _reserveTokens, uint256[] memory _reserveMinReturnAmounts)\r\n public\r\n protected\r\n active\r\n {\r\n // verify the user input\r\n verifyLiquidityInput(_reserveTokens, _reserveMinReturnAmounts, _amount);\r\n\r\n // get the total supply BEFORE destroying the user tokens\r\n uint256 totalSupply = ISmartToken(anchor).totalSupply();\r\n\r\n // destroy the user tokens\r\n ISmartToken(anchor).destroy(msg.sender, _amount);\r\n\r\n // transfer to the user an equivalent amount of each one of the reserve tokens\r\n removeLiquidityFromPool(_reserveTokens, _reserveMinReturnAmounts, totalSupply, _amount);\r\n }\r\n\r\n /**\r\n * @dev increases the pool's liquidity and mints new shares in the pool to the caller\r\n * for example, if the caller increases the supply by 10%,\r\n * then it will cost an amount equal to 10% of each reserve token balance\r\n * note that starting from version 28, you should use 'addLiquidity' instead\r\n *\r\n * @param _amount amount to increase the supply by (in the pool token)\r\n */\r\n function fund(uint256 _amount) public payable protected {\r\n syncReserveBalances();\r\n reserves[ETH_RESERVE_ADDRESS].balance = reserves[ETH_RESERVE_ADDRESS].balance.sub(msg.value);\r\n\r\n uint256 supply = ISmartToken(anchor).totalSupply();\r\n ISovrynSwapFormula formula = ISovrynSwapFormula(addressOf(SOVRYNSWAP_FORMULA));\r\n\r\n // iterate through the reserve tokens and transfer a percentage equal to the weight between\r\n // _amount and the total supply in each reserve from the caller to the converter\r\n uint256 reserveCount = reserveTokens.length;\r\n for (uint256 i = 0; i < reserveCount; i++) {\r\n IERC20Token reserveToken = reserveTokens[i];\r\n uint256 rsvBalance = reserves[reserveToken].balance;\r\n uint256 reserveAmount = formula.fundCost(supply, rsvBalance, reserveRatio, _amount);\r\n\r\n // transfer funds from the caller in the reserve token\r\n if (reserveToken == ETH_RESERVE_ADDRESS) {\r\n if (msg.value > reserveAmount) {\r\n msg.sender.transfer(msg.value - reserveAmount);\r\n }\r\n else if (msg.value < reserveAmount) {\r\n require(msg.value == 0, \"ERR_INVALID_ETH_VALUE\");\r\n safeTransferFrom(etherToken, msg.sender, this, reserveAmount);\r\n etherToken.withdraw(reserveAmount);\r\n }\r\n }\r\n else {\r\n safeTransferFrom(reserveToken, msg.sender, this, reserveAmount);\r\n }\r\n\r\n // sync the reserve balance\r\n uint256 newReserveBalance = rsvBalance.add(reserveAmount);\r\n reserves[reserveToken].balance = newReserveBalance;\r\n\r\n uint256 newPoolTokenSupply = supply.add(_amount);\r\n\r\n // dispatch liquidity update for the pool token/reserve\r\n emit LiquidityAdded(msg.sender, reserveToken, reserveAmount, newReserveBalance, newPoolTokenSupply);\r\n\r\n // dispatch the `TokenRateUpdate` event for the pool token\r\n uint32 reserveWeight = reserves[reserveToken].weight;\r\n dispatchPoolTokenRateEvent(newPoolTokenSupply, reserveToken, newReserveBalance, reserveWeight);\r\n }\r\n\r\n // issue new funds to the caller in the pool token\r\n ISmartToken(anchor).issue(msg.sender, _amount);\r\n }\r\n\r\n /**\r\n * @dev decreases the pool's liquidity and burns the caller's shares in the pool\r\n * for example, if the holder sells 10% of the supply,\r\n * then they will receive 10% of each reserve token balance in return\r\n * note that starting from version 28, you should use 'removeLiquidity' instead\r\n *\r\n * @param _amount amount to liquidate (in the pool token)\r\n */\r\n function liquidate(uint256 _amount) public protected {\r\n require(_amount > 0, \"ERR_ZERO_AMOUNT\");\r\n\r\n uint256 totalSupply = ISmartToken(anchor).totalSupply();\r\n ISmartToken(anchor).destroy(msg.sender, _amount);\r\n\r\n uint256[] memory reserveMinReturnAmounts = new uint256[](reserveTokens.length);\r\n for (uint256 i = 0; i < reserveMinReturnAmounts.length; i++)\r\n reserveMinReturnAmounts[i] = 1;\r\n\r\n removeLiquidityFromPool(reserveTokens, reserveMinReturnAmounts, totalSupply, _amount);\r\n }\r\n\r\n /**\r\n * @dev verifies that a given array of tokens is identical to the converter's array of reserve tokens\r\n * we take this input in order to allow specifying the corresponding reserve amounts in any order\r\n *\r\n * @param _reserveTokens array of reserve tokens\r\n * @param _reserveAmounts array of reserve amounts\r\n * @param _amount token amount\r\n */\r\n function verifyLiquidityInput(IERC20Token[] memory _reserveTokens, uint256[] memory _reserveAmounts, uint256 _amount) private view {\r\n uint256 i;\r\n uint256 j;\r\n\r\n uint256 length = reserveTokens.length;\r\n require(length == _reserveTokens.length, \"ERR_INVALID_RESERVE\");\r\n require(length == _reserveAmounts.length, \"ERR_INVALID_AMOUNT\");\r\n\r\n for (i = 0; i < length; i++) {\r\n // verify that every input reserve token is included in the reserve tokens\r\n require(reserves[_reserveTokens[i]].isSet, \"ERR_INVALID_RESERVE\");\r\n for (j = 0; j < length; j++) {\r\n if (reserveTokens[i] == _reserveTokens[j])\r\n break;\r\n }\r\n // verify that every reserve token is included in the input reserve tokens\r\n require(j < length, \"ERR_INVALID_RESERVE\");\r\n // verify that every input reserve token amount is larger than zero\r\n require(_reserveAmounts[i] > 0, \"ERR_INVALID_AMOUNT\");\r\n }\r\n\r\n // verify that the input token amount is larger than zero\r\n require(_amount > 0, \"ERR_ZERO_AMOUNT\");\r\n }\r\n\r\n /**\r\n * @dev adds liquidity (reserve) to the pool\r\n *\r\n * @param _reserveTokens address of each reserve token\r\n * @param _reserveAmounts amount of each reserve token\r\n * @param _totalSupply token total supply\r\n */\r\n function addLiquidityToPool(IERC20Token[] memory _reserveTokens, uint256[] memory _reserveAmounts, uint256 _totalSupply)\r\n private\r\n returns (uint256)\r\n {\r\n if (_totalSupply == 0)\r\n return addLiquidityToEmptyPool(_reserveTokens, _reserveAmounts);\r\n return addLiquidityToNonEmptyPool(_reserveTokens, _reserveAmounts, _totalSupply);\r\n }\r\n\r\n /**\r\n * @dev adds liquidity (reserve) to the pool when it's empty\r\n *\r\n * @param _reserveTokens address of each reserve token\r\n * @param _reserveAmounts amount of each reserve token\r\n */\r\n function addLiquidityToEmptyPool(IERC20Token[] memory _reserveTokens, uint256[] memory _reserveAmounts)\r\n private\r\n returns (uint256)\r\n {\r\n // calculate the geometric-mean of the reserve amounts approved by the user\r\n uint256 amount = geometricMean(_reserveAmounts);\r\n\r\n // transfer each one of the reserve amounts from the user to the pool\r\n for (uint256 i = 0; i < _reserveTokens.length; i++) {\r\n if (_reserveTokens[i] != ETH_RESERVE_ADDRESS) // ETH has already been transferred as part of the transaction\r\n safeTransferFrom(_reserveTokens[i], msg.sender, this, _reserveAmounts[i]);\r\n\r\n reserves[_reserveTokens[i]].balance = _reserveAmounts[i];\r\n\r\n emit LiquidityAdded(msg.sender, _reserveTokens[i], _reserveAmounts[i], _reserveAmounts[i], amount);\r\n\r\n // dispatch the `TokenRateUpdate` event for the pool token\r\n uint32 reserveWeight = reserves[_reserveTokens[i]].weight;\r\n dispatchPoolTokenRateEvent(amount, _reserveTokens[i], _reserveAmounts[i], reserveWeight);\r\n }\r\n\r\n return amount;\r\n }\r\n\r\n /**\r\n * @dev adds liquidity (reserve) to the pool when it's not empty\r\n *\r\n * @param _reserveTokens address of each reserve token\r\n * @param _reserveAmounts amount of each reserve token\r\n * @param _totalSupply token total supply\r\n */\r\n function addLiquidityToNonEmptyPool(IERC20Token[] memory _reserveTokens, uint256[] memory _reserveAmounts, uint256 _totalSupply)\r\n private\r\n returns (uint256)\r\n {\r\n syncReserveBalances();\r\n reserves[ETH_RESERVE_ADDRESS].balance = reserves[ETH_RESERVE_ADDRESS].balance.sub(msg.value);\r\n\r\n ISovrynSwapFormula formula = ISovrynSwapFormula(addressOf(SOVRYNSWAP_FORMULA));\r\n uint256 amount = getMinShare(formula, _totalSupply, _reserveTokens, _reserveAmounts);\r\n uint256 newPoolTokenSupply = _totalSupply.add(amount);\r\n\r\n for (uint256 i = 0; i < _reserveTokens.length; i++) {\r\n IERC20Token reserveToken = _reserveTokens[i];\r\n uint256 rsvBalance = reserves[reserveToken].balance;\r\n uint256 reserveAmount = formula.fundCost(_totalSupply, rsvBalance, reserveRatio, amount);\r\n require(reserveAmount > 0, \"ERR_ZERO_TARGET_AMOUNT\");\r\n assert(reserveAmount <= _reserveAmounts[i]);\r\n\r\n // transfer each one of the reserve amounts from the user to the pool\r\n if (reserveToken != ETH_RESERVE_ADDRESS) // ETH has already been transferred as part of the transaction\r\n safeTransferFrom(reserveToken, msg.sender, this, reserveAmount);\r\n else if (_reserveAmounts[i] > reserveAmount) // transfer the extra amount of ETH back to the user\r\n msg.sender.transfer(_reserveAmounts[i] - reserveAmount);\r\n\r\n uint256 newReserveBalance = rsvBalance.add(reserveAmount);\r\n reserves[reserveToken].balance = newReserveBalance;\r\n\r\n emit LiquidityAdded(msg.sender, reserveToken, reserveAmount, newReserveBalance, newPoolTokenSupply);\r\n\r\n // dispatch the `TokenRateUpdate` event for the pool token\r\n uint32 reserveWeight = reserves[_reserveTokens[i]].weight;\r\n dispatchPoolTokenRateEvent(newPoolTokenSupply, _reserveTokens[i], newReserveBalance, reserveWeight);\r\n }\r\n\r\n return amount;\r\n }\r\n\r\n /**\r\n * @dev removes liquidity (reserve) from the pool\r\n *\r\n * @param _reserveTokens address of each reserve token\r\n * @param _reserveMinReturnAmounts minimum return-amount of each reserve token\r\n * @param _totalSupply token total supply\r\n * @param _amount token amount\r\n */\r\n function removeLiquidityFromPool(IERC20Token[] memory _reserveTokens, uint256[] memory _reserveMinReturnAmounts, uint256 _totalSupply, uint256 _amount)\r\n private\r\n {\r\n syncReserveBalances();\r\n\r\n ISovrynSwapFormula formula = ISovrynSwapFormula(addressOf(SOVRYNSWAP_FORMULA));\r\n uint256 newPoolTokenSupply = _totalSupply.sub(_amount);\r\n\r\n for (uint256 i = 0; i < _reserveTokens.length; i++) {\r\n IERC20Token reserveToken = _reserveTokens[i];\r\n uint256 rsvBalance = reserves[reserveToken].balance;\r\n uint256 reserveAmount = formula.liquidateReserveAmount(_totalSupply, rsvBalance, reserveRatio, _amount);\r\n require(reserveAmount >= _reserveMinReturnAmounts[i], \"ERR_ZERO_TARGET_AMOUNT\");\r\n\r\n uint256 newReserveBalance = rsvBalance.sub(reserveAmount);\r\n reserves[reserveToken].balance = newReserveBalance;\r\n\r\n // transfer each one of the reserve amounts from the pool to the user\r\n if (reserveToken == ETH_RESERVE_ADDRESS)\r\n msg.sender.transfer(reserveAmount);\r\n else\r\n safeTransfer(reserveToken, msg.sender, reserveAmount);\r\n\r\n emit LiquidityRemoved(msg.sender, reserveToken, reserveAmount, newReserveBalance, newPoolTokenSupply);\r\n\r\n // dispatch the `TokenRateUpdate` event for the pool token\r\n uint32 reserveWeight = reserves[reserveToken].weight;\r\n dispatchPoolTokenRateEvent(newPoolTokenSupply, reserveToken, newReserveBalance, reserveWeight);\r\n }\r\n }\r\n\r\n function getMinShare(ISovrynSwapFormula formula, uint256 _totalSupply, IERC20Token[] memory _reserveTokens, uint256[] memory _reserveAmounts) private view returns (uint256) {\r\n uint256 minIndex = 0;\r\n for (uint256 i = 1; i < _reserveTokens.length; i++) {\r\n if (_reserveAmounts[i].mul(reserves[_reserveTokens[minIndex]].balance) < _reserveAmounts[minIndex].mul(reserves[_reserveTokens[i]].balance))\r\n minIndex = i;\r\n }\r\n return formula.fundSupplyAmount(_totalSupply, reserves[_reserveTokens[minIndex]].balance, reserveRatio, _reserveAmounts[minIndex]);\r\n }\r\n\r\n /**\r\n * @dev calculates the number of decimal digits in a given value\r\n *\r\n * @param _x value (assumed positive)\r\n * @return the number of decimal digits in the given value\r\n */\r\n function decimalLength(uint256 _x) public pure returns (uint256) {\r\n uint256 y = 0;\r\n for (uint256 x = _x; x > 0; x /= 10)\r\n y++;\r\n return y;\r\n }\r\n\r\n /**\r\n * @dev calculates the nearest integer to a given quotient\r\n *\r\n * @param _n quotient numerator\r\n * @param _d quotient denominator\r\n * @return the nearest integer to the given quotient\r\n */\r\n function roundDiv(uint256 _n, uint256 _d) public pure returns (uint256) {\r\n return (_n + _d / 2) / _d;\r\n }\r\n\r\n /**\r\n * @dev calculates the average number of decimal digits in a given list of values\r\n *\r\n * @param _values list of values (each of which assumed positive)\r\n * @return the average number of decimal digits in the given list of values\r\n */\r\n function geometricMean(uint256[] memory _values) public pure returns (uint256) {\r\n uint256 numOfDigits = 0;\r\n uint256 length = _values.length;\r\n for (uint256 i = 0; i < length; i++)\r\n numOfDigits += decimalLength(_values[i]);\r\n return uint256(10) ** (roundDiv(numOfDigits, length) - 1);\r\n }\r\n\r\n /**\r\n * @dev dispatches rate events for both reserves / pool tokens\r\n * only used to circumvent the `stack too deep` compiler error\r\n *\r\n * @param _sourceToken address of the source reserve token\r\n * @param _targetToken address of the target reserve token\r\n */\r\n function dispatchRateEvents(IERC20Token _sourceToken, IERC20Token _targetToken) private {\r\n uint256 poolTokenSupply = ISmartToken(anchor).totalSupply();\r\n uint256 sourceReserveBalance = reserveBalance(_sourceToken);\r\n uint256 targetReserveBalance = reserveBalance(_targetToken);\r\n uint32 sourceReserveWeight = reserves[_sourceToken].weight;\r\n uint32 targetReserveWeight = reserves[_targetToken].weight;\r\n\r\n // dispatch token rate update event\r\n uint256 rateN = targetReserveBalance.mul(sourceReserveWeight);\r\n uint256 rateD = sourceReserveBalance.mul(targetReserveWeight);\r\n emit TokenRateUpdate(_sourceToken, _targetToken, rateN, rateD);\r\n\r\n // dispatch the `TokenRateUpdate` event for the pool token\r\n dispatchPoolTokenRateEvent(poolTokenSupply, _sourceToken, sourceReserveBalance, sourceReserveWeight);\r\n dispatchPoolTokenRateEvent(poolTokenSupply, _targetToken, targetReserveBalance, targetReserveWeight);\r\n\r\n // dispatch price data update events (deprecated events)\r\n emit PriceDataUpdate(_sourceToken, poolTokenSupply, sourceReserveBalance, sourceReserveWeight);\r\n emit PriceDataUpdate(_targetToken, poolTokenSupply, targetReserveBalance, targetReserveWeight);\r\n }\r\n\r\n /**\r\n * @dev dispatches the `TokenRateUpdate` for the pool token\r\n * only used to circumvent the `stack too deep` compiler error\r\n *\r\n * @param _poolTokenSupply total pool token supply\r\n * @param _reserveToken address of the reserve token\r\n * @param _reserveBalance reserve balance\r\n * @param _reserveWeight reserve weight\r\n */\r\n function dispatchPoolTokenRateEvent(uint256 _poolTokenSupply, IERC20Token _reserveToken, uint256 _reserveBalance, uint32 _reserveWeight) private {\r\n emit TokenRateUpdate(anchor, _reserveToken, _reserveBalance.mul(WEIGHT_RESOLUTION), _poolTokenSupply.mul(_reserveWeight));\r\n }\r\n}\r\n" + }, + "solidity/contracts/converter/types/liquid-token/LiquidTokenConverterFactory.sol": { + "content": "pragma solidity 0.4.26;\r\nimport \"./LiquidTokenConverter.sol\";\r\nimport \"../../interfaces/IConverter.sol\";\r\nimport \"../../interfaces/ITypedConverterFactory.sol\";\r\nimport \"../../../token/interfaces/ISmartToken.sol\";\r\n\r\n/*\r\n LiquidTokenConverter Factory\r\n*/\r\ncontract LiquidTokenConverterFactory is ITypedConverterFactory {\r\n /**\r\n * @dev returns the converter type the factory is associated with\r\n *\r\n * @return converter type\r\n */\r\n function converterType() public pure returns (uint16) {\r\n return 0;\r\n }\r\n\r\n /**\r\n * @dev creates a new converter with the given arguments and transfers\r\n * the ownership to the caller\r\n *\r\n * @param _anchor anchor governed by the converter\r\n * @param _registry address of a contract registry contract\r\n * @param _maxConversionFee maximum conversion fee, represented in ppm\r\n *\r\n * @return a new converter\r\n */\r\n function createConverter(IConverterAnchor _anchor, IContractRegistry _registry, uint32 _maxConversionFee) public returns (IConverter) {\r\n IConverter converter = new LiquidTokenConverter(ISmartToken(_anchor), _registry, _maxConversionFee);\r\n converter.transferOwnership(msg.sender);\r\n return converter;\r\n }\r\n}\r\n" + }, + "solidity/contracts/converter/types/liquid-token/LiquidTokenConverter.sol": { + "content": "pragma solidity 0.4.26;\r\nimport \"../../ConverterBase.sol\";\r\nimport \"../../../token/interfaces/ISmartToken.sol\";\r\n\r\n/**\r\n * @dev Liquid Token Converter\r\n *\r\n * The liquid token converter is a specialized version of a converter that manages a liquid token.\r\n *\r\n * The converters govern a token with a single reserve and allow converting between the two.\r\n * Liquid tokens usually have fractional reserve (reserve ratio smaller than 100%).\r\n*/\r\ncontract LiquidTokenConverter is ConverterBase {\r\n /**\r\n * @dev initializes a new LiquidTokenConverter instance\r\n *\r\n * @param _token liquid token governed by the converter\r\n * @param _registry address of a contract registry contract\r\n * @param _maxConversionFee maximum conversion fee, represented in ppm\r\n */\r\n constructor(\r\n ISmartToken _token,\r\n IContractRegistry _registry,\r\n uint32 _maxConversionFee\r\n )\r\n ConverterBase(_token, _registry, _maxConversionFee)\r\n public\r\n {\r\n }\r\n\r\n /**\r\n * @dev returns the converter type\r\n *\r\n * @return see the converter types in the the main contract doc\r\n */\r\n function converterType() public pure returns (uint16) {\r\n return 0;\r\n }\r\n\r\n /**\r\n * @dev accepts ownership of the anchor after an ownership transfer\r\n * also activates the converter\r\n * can only be called by the contract owner\r\n * note that prior to version 28, you should use 'acceptTokenOwnership' instead\r\n */\r\n function acceptAnchorOwnership() public ownerOnly {\r\n super.acceptAnchorOwnership();\r\n\r\n emit Activation(converterType(), anchor, true);\r\n }\r\n\r\n /**\r\n * @dev defines the reserve token for the converter\r\n * can only be called by the owner while the converter is inactive and the\r\n * reserve wasn't defined yet\r\n *\r\n * @param _token address of the reserve token\r\n * @param _weight reserve weight, represented in ppm, 1-1000000\r\n */\r\n function addReserve(IERC20Token _token, uint32 _weight) public {\r\n // verify that the converter doesn't have a reserve yet\r\n require(reserveTokenCount() == 0, \"ERR_INVALID_RESERVE_COUNT\");\r\n super.addReserve(_token, _weight);\r\n }\r\n\r\n /**\r\n * @dev returns the expected target amount of converting the source token to the\r\n * target token along with the fee\r\n *\r\n * @param _sourceToken contract address of the source token\r\n * @param _targetToken contract address of the target token\r\n * @param _amount amount of tokens received from the user\r\n *\r\n * @return expected target amount\r\n * @return expected fee\r\n */\r\n function targetAmountAndFee(IERC20Token _sourceToken, IERC20Token _targetToken, uint256 _amount) public view returns (uint256, uint256) {\r\n if (_targetToken == ISmartToken(anchor) && reserves[_sourceToken].isSet)\r\n return purchaseTargetAmount(_amount);\r\n if (_sourceToken == ISmartToken(anchor) && reserves[_targetToken].isSet)\r\n return saleTargetAmount(_amount);\r\n\r\n // invalid input\r\n revert(\"ERR_INVALID_TOKEN\");\r\n }\r\n\r\n /**\r\n * @dev converts between the liquid token and its reserve\r\n * can only be called by the SovrynSwap network contract\r\n *\r\n * @param _sourceToken source ERC20 token\r\n * @param _targetToken target ERC20 token\r\n * @param _amount amount of tokens to convert (in units of the source token)\r\n * @param _trader address of the caller who executed the conversion\r\n * @param _beneficiary wallet to receive the conversion result\r\n *\r\n * @return amount of tokens received (in units of the target token)\r\n */\r\n function doConvert(IERC20Token _sourceToken, IERC20Token _targetToken, uint256 _amount, address _trader, address _beneficiary)\r\n internal\r\n returns (uint256)\r\n {\r\n uint256 targetAmount;\r\n IERC20Token reserveToken;\r\n\r\n if (_targetToken == ISmartToken(anchor) && reserves[_sourceToken].isSet) {\r\n reserveToken = _sourceToken;\r\n targetAmount = buy(_amount, _trader, _beneficiary);\r\n }\r\n else if (_sourceToken == ISmartToken(anchor) && reserves[_targetToken].isSet) {\r\n reserveToken = _targetToken;\r\n targetAmount = sell(_amount, _trader, _beneficiary);\r\n }\r\n else {\r\n // invalid input\r\n revert(\"ERR_INVALID_TOKEN\");\r\n }\r\n\r\n // dispatch rate update for the liquid token\r\n uint256 totalSupply = ISmartToken(anchor).totalSupply();\r\n uint32 reserveWeight = reserves[reserveToken].weight;\r\n emit TokenRateUpdate(anchor, reserveToken, reserveBalance(reserveToken).mul(WEIGHT_RESOLUTION), totalSupply.mul(reserveWeight));\r\n\r\n return targetAmount;\r\n }\r\n\r\n /**\r\n * @dev returns the expected target amount of buying with a given amount of tokens\r\n *\r\n * @param _amount amount of reserve tokens to get the target amount for\r\n *\r\n * @return amount of liquid tokens that the user will receive\r\n * @return amount of liquid tokens that the user will pay as fee\r\n */\r\n function purchaseTargetAmount(uint256 _amount)\r\n internal\r\n view\r\n active\r\n returns (uint256, uint256)\r\n {\r\n uint256 totalSupply = ISmartToken(anchor).totalSupply();\r\n\r\n // if the current supply is zero, then return the input amount divided by the normalized reserve-weight\r\n if (totalSupply == 0)\r\n return (_amount.mul(WEIGHT_RESOLUTION).div(reserves[reserveToken].weight), 0);\r\n\r\n IERC20Token reserveToken = reserveTokens[0];\r\n uint256 amount = ISovrynSwapFormula(addressOf(SOVRYNSWAP_FORMULA)).purchaseTargetAmount(\r\n totalSupply,\r\n reserveBalance(reserveToken),\r\n reserves[reserveToken].weight,\r\n _amount\r\n );\r\n\r\n // return the amount minus the conversion fee and the conversion fee\r\n uint256 fee = calculateFee(amount);\r\n return (amount - fee, fee);\r\n }\r\n\r\n /**\r\n * @dev returns the expected target amount of selling a given amount of tokens\r\n *\r\n * @param _amount amount of liquid tokens to get the target amount for\r\n *\r\n * @return expected reserve tokens\r\n * @return expected fee\r\n */\r\n function saleTargetAmount(uint256 _amount)\r\n internal\r\n view\r\n active\r\n returns (uint256, uint256)\r\n {\r\n uint256 totalSupply = ISmartToken(anchor).totalSupply();\r\n\r\n IERC20Token reserveToken = reserveTokens[0];\r\n\r\n // special case for selling the entire supply - return the entire reserve\r\n if (totalSupply == _amount)\r\n return (reserveBalance(reserveToken), 0);\r\n\r\n uint256 amount = ISovrynSwapFormula(addressOf(SOVRYNSWAP_FORMULA)).saleTargetAmount(\r\n totalSupply,\r\n reserveBalance(reserveToken),\r\n reserves[reserveToken].weight,\r\n _amount\r\n );\r\n\r\n // return the amount minus the conversion fee and the conversion fee\r\n uint256 fee = calculateFee(amount);\r\n return (amount - fee, fee);\r\n }\r\n\r\n /**\r\n * @dev buys the liquid token by depositing in its reserve\r\n *\r\n * @param _amount amount of reserve token to buy the token for\r\n * @param _trader address of the caller who executed the conversion\r\n * @param _beneficiary wallet to receive the conversion result\r\n *\r\n * @return amount of liquid tokens received\r\n */\r\n function buy(uint256 _amount, address _trader, address _beneficiary) internal returns (uint256) {\r\n // get expected target amount and fee\r\n (uint256 amount, uint256 fee) = purchaseTargetAmount(_amount);\r\n\r\n // ensure the trade gives something in return\r\n require(amount != 0, \"ERR_ZERO_TARGET_AMOUNT\");\r\n\r\n IERC20Token reserveToken = reserveTokens[0];\r\n\r\n // ensure that the input amount was already deposited\r\n if (reserveToken == ETH_RESERVE_ADDRESS)\r\n require(msg.value == _amount, \"ERR_ETH_AMOUNT_MISMATCH\");\r\n else\r\n require(msg.value == 0 && reserveToken.balanceOf(this).sub(reserveBalance(reserveToken)) >= _amount, \"ERR_INVALID_AMOUNT\");\r\n\r\n // sync the reserve balance\r\n syncReserveBalance(reserveToken);\r\n\r\n // issue new funds to the beneficiary in the liquid token\r\n ISmartToken(anchor).issue(_beneficiary, amount);\r\n\r\n // dispatch the conversion event\r\n dispatchConversionEvent(reserveToken, ISmartToken(anchor), _trader, _amount, amount, fee);\r\n\r\n return amount;\r\n }\r\n\r\n /**\r\n * @dev sells the liquid token by withdrawing from its reserve\r\n *\r\n * @param _amount amount of liquid tokens to sell\r\n * @param _trader address of the caller who executed the conversion\r\n * @param _beneficiary wallet to receive the conversion result\r\n *\r\n * @return amount of reserve tokens received\r\n */\r\n function sell(uint256 _amount, address _trader, address _beneficiary) internal returns (uint256) {\r\n // ensure that the input amount was already deposited\r\n require(_amount <= ISmartToken(anchor).balanceOf(this), \"ERR_INVALID_AMOUNT\");\r\n\r\n // get expected target amount and fee\r\n (uint256 amount, uint256 fee) = saleTargetAmount(_amount);\r\n\r\n // ensure the trade gives something in return\r\n require(amount != 0, \"ERR_ZERO_TARGET_AMOUNT\");\r\n\r\n IERC20Token reserveToken = reserveTokens[0];\r\n\r\n // ensure that the trade will only deplete the reserve balance if the total supply is depleted as well\r\n uint256 tokenSupply = ISmartToken(anchor).totalSupply();\r\n uint256 rsvBalance = reserveBalance(reserveToken);\r\n assert(amount < rsvBalance || (amount == rsvBalance && _amount == tokenSupply));\r\n\r\n // destroy the tokens from the converter balance in the liquid token\r\n ISmartToken(anchor).destroy(this, _amount);\r\n\r\n // update the reserve balance\r\n reserves[reserveToken].balance = reserves[reserveToken].balance.sub(amount);\r\n\r\n // transfer funds to the beneficiary in the reserve token\r\n if (reserveToken == ETH_RESERVE_ADDRESS)\r\n _beneficiary.transfer(amount);\r\n else\r\n safeTransfer(reserveToken, _beneficiary, amount);\r\n\r\n // dispatch the conversion event\r\n dispatchConversionEvent(ISmartToken(anchor), reserveToken, _trader, _amount, amount, fee);\r\n\r\n return amount;\r\n }\r\n}\r\n" + }, + "solidity/contracts/helpers/TestLiquidityPoolConverter.sol": { + "content": "pragma solidity 0.4.26;\nimport \"../converter/types/liquidity-pool-v1/LiquidityPoolV1Converter.sol\";\n\ncontract TestLiquidityPoolConverter is LiquidityPoolV1Converter {\n\tconstructor(\n\t\tISmartToken _token,\n\t\tIContractRegistry _registry,\n\t\tuint32 _maxConversionFee\n\t) public LiquidityPoolV1Converter(_token, _registry, _maxConversionFee) {}\n\n\tfunction setEtherToken(IEtherToken _etherToken) public {\n\t\tetherToken = _etherToken;\n\t}\n}\n" + }, + "solidity/contracts/helpers/TestTokenHandler.sol": { + "content": "pragma solidity 0.4.26;\nimport \"../utility/TokenHandler.sol\";\n\n/*\n Utils test helper that exposes the token handler functions\n*/\ncontract TestTokenHandler is TokenHandler {\n\tfunction testSafeApprove(\n\t\tIERC20Token _token,\n\t\taddress _spender,\n\t\tuint256 _value\n\t) public {\n\t\tsafeApprove(_token, _spender, _value);\n\t}\n\n\tfunction testSafeTransfer(\n\t\tIERC20Token _token,\n\t\taddress _to,\n\t\tuint256 _value\n\t) public {\n\t\tsafeTransfer(_token, _to, _value);\n\t}\n\n\tfunction testSafeTransferFrom(\n\t\tIERC20Token _token,\n\t\taddress _from,\n\t\taddress _to,\n\t\tuint256 _value\n\t) public {\n\t\tsafeTransferFrom(_token, _from, _to, _value);\n\t}\n}\n" + }, + "solidity/contracts/helpers/TestReentrancyGuard.sol": { + "content": "pragma solidity 0.4.26;\nimport \"../utility/ReentrancyGuard.sol\";\n\ncontract TestReentrancyGuardAttacker {\n\tTestReentrancyGuard public target;\n\tbool public reentrancy;\n\tbool public callProtectedMethod;\n\tbool public attacking;\n\n\tconstructor(TestReentrancyGuard _target) public {\n\t\ttarget = _target;\n\t}\n\n\tfunction setReentrancy(bool _reentrancy) external {\n\t\treentrancy = _reentrancy;\n\t}\n\n\tfunction setCallProtectedMethod(bool _callProtectedMethod) external {\n\t\tcallProtectedMethod = _callProtectedMethod;\n\t}\n\n\tfunction run() public {\n\t\tcallProtectedMethod ? target.protectedMethod() : target.unprotectedMethod();\n\t}\n\n\tfunction callback() external {\n\t\tif (!reentrancy) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (!attacking) {\n\t\t\tattacking = true;\n\n\t\t\trun();\n\t\t}\n\n\t\tattacking = false;\n\t}\n}\n\ncontract TestReentrancyGuard is ReentrancyGuard {\n\tuint256 public calls;\n\n\tfunction protectedMethod() external protected {\n\t\trun();\n\t}\n\n\tfunction unprotectedMethod() external {\n\t\trun();\n\t}\n\n\tfunction run() private {\n\t\tcalls++;\n\n\t\tTestReentrancyGuardAttacker(msg.sender).callback();\n\t}\n}\n" + }, + "solidity/contracts/converter/SovrynSwapFormula.sol": { + "content": "pragma solidity 0.4.26;\nimport \"./interfaces/ISovrynSwapFormula.sol\";\nimport \"../utility/SafeMath.sol\";\n\ncontract SovrynSwapFormula is ISovrynSwapFormula {\n\tusing SafeMath for uint256;\n\n\tuint16 public constant version = 8;\n\n\tuint256 private constant ONE = 1;\n\tuint32 private constant MAX_WEIGHT = 1000000;\n\tuint8 private constant MIN_PRECISION = 32;\n\tuint8 private constant MAX_PRECISION = 127;\n\n\t/**\n\t * Auto-generated via 'PrintIntScalingFactors.py'\n\t */\n\tuint256 private constant FIXED_1 = 0x080000000000000000000000000000000;\n\tuint256 private constant FIXED_2 = 0x100000000000000000000000000000000;\n\tuint256 private constant MAX_NUM = 0x200000000000000000000000000000000;\n\n\t/**\n\t * Auto-generated via 'PrintLn2ScalingFactors.py'\n\t */\n\tuint256 private constant LN2_NUMERATOR = 0x3f80fe03f80fe03f80fe03f80fe03f8;\n\tuint256 private constant LN2_DENOMINATOR = 0x5b9de1d10bf4103d647b0955897ba80;\n\n\t/**\n\t * Auto-generated via 'PrintFunctionOptimalLog.py' and 'PrintFunctionOptimalExp.py'\n\t */\n\tuint256 private constant OPT_LOG_MAX_VAL = 0x15bf0a8b1457695355fb8ac404e7a79e3;\n\tuint256 private constant OPT_EXP_MAX_VAL = 0x800000000000000000000000000000000;\n\n\t/**\n\t * Auto-generated via 'PrintLambertFactors.py'\n\t */\n\tuint256 private constant LAMBERT_CONV_RADIUS = 0x002f16ac6c59de6f8d5d6f63c1482a7c86;\n\tuint256 private constant LAMBERT_POS2_SAMPLE = 0x0003060c183060c183060c183060c18306;\n\tuint256 private constant LAMBERT_POS2_MAXVAL = 0x01af16ac6c59de6f8d5d6f63c1482a7c80;\n\tuint256 private constant LAMBERT_POS3_MAXVAL = 0x6b22d43e72c326539cceeef8bb48f255ff;\n\n\t/**\n\t * Auto-generated via 'PrintWeightFactors.py'\n\t */\n\tuint256 private constant MAX_UNF_WEIGHT = 0x10c6f7a0b5ed8d36b4c7f34938583621fafc8b0079a2834d26fa3fcc9ea9;\n\n\t/**\n\t * Auto-generated via 'PrintMaxExpArray.py'\n\t */\n\tuint256[128] private maxExpArray;\n\n\tfunction initMaxExpArray() private {\n\t\t// maxExpArray[ 0] = 0x6bffffffffffffffffffffffffffffffff;\n\t\t// maxExpArray[ 1] = 0x67ffffffffffffffffffffffffffffffff;\n\t\t// maxExpArray[ 2] = 0x637fffffffffffffffffffffffffffffff;\n\t\t// maxExpArray[ 3] = 0x5f6fffffffffffffffffffffffffffffff;\n\t\t// maxExpArray[ 4] = 0x5b77ffffffffffffffffffffffffffffff;\n\t\t// maxExpArray[ 5] = 0x57b3ffffffffffffffffffffffffffffff;\n\t\t// maxExpArray[ 6] = 0x5419ffffffffffffffffffffffffffffff;\n\t\t// maxExpArray[ 7] = 0x50a2ffffffffffffffffffffffffffffff;\n\t\t// maxExpArray[ 8] = 0x4d517fffffffffffffffffffffffffffff;\n\t\t// maxExpArray[ 9] = 0x4a233fffffffffffffffffffffffffffff;\n\t\t// maxExpArray[ 10] = 0x47165fffffffffffffffffffffffffffff;\n\t\t// maxExpArray[ 11] = 0x4429afffffffffffffffffffffffffffff;\n\t\t// maxExpArray[ 12] = 0x415bc7ffffffffffffffffffffffffffff;\n\t\t// maxExpArray[ 13] = 0x3eab73ffffffffffffffffffffffffffff;\n\t\t// maxExpArray[ 14] = 0x3c1771ffffffffffffffffffffffffffff;\n\t\t// maxExpArray[ 15] = 0x399e96ffffffffffffffffffffffffffff;\n\t\t// maxExpArray[ 16] = 0x373fc47fffffffffffffffffffffffffff;\n\t\t// maxExpArray[ 17] = 0x34f9e8ffffffffffffffffffffffffffff;\n\t\t// maxExpArray[ 18] = 0x32cbfd5fffffffffffffffffffffffffff;\n\t\t// maxExpArray[ 19] = 0x30b5057fffffffffffffffffffffffffff;\n\t\t// maxExpArray[ 20] = 0x2eb40f9fffffffffffffffffffffffffff;\n\t\t// maxExpArray[ 21] = 0x2cc8340fffffffffffffffffffffffffff;\n\t\t// maxExpArray[ 22] = 0x2af09481ffffffffffffffffffffffffff;\n\t\t// maxExpArray[ 23] = 0x292c5bddffffffffffffffffffffffffff;\n\t\t// maxExpArray[ 24] = 0x277abdcdffffffffffffffffffffffffff;\n\t\t// maxExpArray[ 25] = 0x25daf6657fffffffffffffffffffffffff;\n\t\t// maxExpArray[ 26] = 0x244c49c65fffffffffffffffffffffffff;\n\t\t// maxExpArray[ 27] = 0x22ce03cd5fffffffffffffffffffffffff;\n\t\t// maxExpArray[ 28] = 0x215f77c047ffffffffffffffffffffffff;\n\t\t// maxExpArray[ 29] = 0x1fffffffffffffffffffffffffffffffff;\n\t\t// maxExpArray[ 30] = 0x1eaefdbdabffffffffffffffffffffffff;\n\t\t// maxExpArray[ 31] = 0x1d6bd8b2ebffffffffffffffffffffffff;\n\t\tmaxExpArray[32] = 0x1c35fedd14ffffffffffffffffffffffff;\n\t\tmaxExpArray[33] = 0x1b0ce43b323fffffffffffffffffffffff;\n\t\tmaxExpArray[34] = 0x19f0028ec1ffffffffffffffffffffffff;\n\t\tmaxExpArray[35] = 0x18ded91f0e7fffffffffffffffffffffff;\n\t\tmaxExpArray[36] = 0x17d8ec7f0417ffffffffffffffffffffff;\n\t\tmaxExpArray[37] = 0x16ddc6556cdbffffffffffffffffffffff;\n\t\tmaxExpArray[38] = 0x15ecf52776a1ffffffffffffffffffffff;\n\t\tmaxExpArray[39] = 0x15060c256cb2ffffffffffffffffffffff;\n\t\tmaxExpArray[40] = 0x1428a2f98d72ffffffffffffffffffffff;\n\t\tmaxExpArray[41] = 0x13545598e5c23fffffffffffffffffffff;\n\t\tmaxExpArray[42] = 0x1288c4161ce1dfffffffffffffffffffff;\n\t\tmaxExpArray[43] = 0x11c592761c666fffffffffffffffffffff;\n\t\tmaxExpArray[44] = 0x110a688680a757ffffffffffffffffffff;\n\t\tmaxExpArray[45] = 0x1056f1b5bedf77ffffffffffffffffffff;\n\t\tmaxExpArray[46] = 0x0faadceceeff8bffffffffffffffffffff;\n\t\tmaxExpArray[47] = 0x0f05dc6b27edadffffffffffffffffffff;\n\t\tmaxExpArray[48] = 0x0e67a5a25da4107fffffffffffffffffff;\n\t\tmaxExpArray[49] = 0x0dcff115b14eedffffffffffffffffffff;\n\t\tmaxExpArray[50] = 0x0d3e7a392431239fffffffffffffffffff;\n\t\tmaxExpArray[51] = 0x0cb2ff529eb71e4fffffffffffffffffff;\n\t\tmaxExpArray[52] = 0x0c2d415c3db974afffffffffffffffffff;\n\t\tmaxExpArray[53] = 0x0bad03e7d883f69bffffffffffffffffff;\n\t\tmaxExpArray[54] = 0x0b320d03b2c343d5ffffffffffffffffff;\n\t\tmaxExpArray[55] = 0x0abc25204e02828dffffffffffffffffff;\n\t\tmaxExpArray[56] = 0x0a4b16f74ee4bb207fffffffffffffffff;\n\t\tmaxExpArray[57] = 0x09deaf736ac1f569ffffffffffffffffff;\n\t\tmaxExpArray[58] = 0x0976bd9952c7aa957fffffffffffffffff;\n\t\tmaxExpArray[59] = 0x09131271922eaa606fffffffffffffffff;\n\t\tmaxExpArray[60] = 0x08b380f3558668c46fffffffffffffffff;\n\t\tmaxExpArray[61] = 0x0857ddf0117efa215bffffffffffffffff;\n\t\tmaxExpArray[62] = 0x07ffffffffffffffffffffffffffffffff;\n\t\tmaxExpArray[63] = 0x07abbf6f6abb9d087fffffffffffffffff;\n\t\tmaxExpArray[64] = 0x075af62cbac95f7dfa7fffffffffffffff;\n\t\tmaxExpArray[65] = 0x070d7fb7452e187ac13fffffffffffffff;\n\t\tmaxExpArray[66] = 0x06c3390ecc8af379295fffffffffffffff;\n\t\tmaxExpArray[67] = 0x067c00a3b07ffc01fd6fffffffffffffff;\n\t\tmaxExpArray[68] = 0x0637b647c39cbb9d3d27ffffffffffffff;\n\t\tmaxExpArray[69] = 0x05f63b1fc104dbd39587ffffffffffffff;\n\t\tmaxExpArray[70] = 0x05b771955b36e12f7235ffffffffffffff;\n\t\tmaxExpArray[71] = 0x057b3d49dda84556d6f6ffffffffffffff;\n\t\tmaxExpArray[72] = 0x054183095b2c8ececf30ffffffffffffff;\n\t\tmaxExpArray[73] = 0x050a28be635ca2b888f77fffffffffffff;\n\t\tmaxExpArray[74] = 0x04d5156639708c9db33c3fffffffffffff;\n\t\tmaxExpArray[75] = 0x04a23105873875bd52dfdfffffffffffff;\n\t\tmaxExpArray[76] = 0x0471649d87199aa990756fffffffffffff;\n\t\tmaxExpArray[77] = 0x04429a21a029d4c1457cfbffffffffffff;\n\t\tmaxExpArray[78] = 0x0415bc6d6fb7dd71af2cb3ffffffffffff;\n\t\tmaxExpArray[79] = 0x03eab73b3bbfe282243ce1ffffffffffff;\n\t\tmaxExpArray[80] = 0x03c1771ac9fb6b4c18e229ffffffffffff;\n\t\tmaxExpArray[81] = 0x0399e96897690418f785257fffffffffff;\n\t\tmaxExpArray[82] = 0x0373fc456c53bb779bf0ea9fffffffffff;\n\t\tmaxExpArray[83] = 0x034f9e8e490c48e67e6ab8bfffffffffff;\n\t\tmaxExpArray[84] = 0x032cbfd4a7adc790560b3337ffffffffff;\n\t\tmaxExpArray[85] = 0x030b50570f6e5d2acca94613ffffffffff;\n\t\tmaxExpArray[86] = 0x02eb40f9f620fda6b56c2861ffffffffff;\n\t\tmaxExpArray[87] = 0x02cc8340ecb0d0f520a6af58ffffffffff;\n\t\tmaxExpArray[88] = 0x02af09481380a0a35cf1ba02ffffffffff;\n\t\tmaxExpArray[89] = 0x0292c5bdd3b92ec810287b1b3fffffffff;\n\t\tmaxExpArray[90] = 0x0277abdcdab07d5a77ac6d6b9fffffffff;\n\t\tmaxExpArray[91] = 0x025daf6654b1eaa55fd64df5efffffffff;\n\t\tmaxExpArray[92] = 0x0244c49c648baa98192dce88b7ffffffff;\n\t\tmaxExpArray[93] = 0x022ce03cd5619a311b2471268bffffffff;\n\t\tmaxExpArray[94] = 0x0215f77c045fbe885654a44a0fffffffff;\n\t\tmaxExpArray[95] = 0x01ffffffffffffffffffffffffffffffff;\n\t\tmaxExpArray[96] = 0x01eaefdbdaaee7421fc4d3ede5ffffffff;\n\t\tmaxExpArray[97] = 0x01d6bd8b2eb257df7e8ca57b09bfffffff;\n\t\tmaxExpArray[98] = 0x01c35fedd14b861eb0443f7f133fffffff;\n\t\tmaxExpArray[99] = 0x01b0ce43b322bcde4a56e8ada5afffffff;\n\t\tmaxExpArray[100] = 0x019f0028ec1fff007f5a195a39dfffffff;\n\t\tmaxExpArray[101] = 0x018ded91f0e72ee74f49b15ba527ffffff;\n\t\tmaxExpArray[102] = 0x017d8ec7f04136f4e5615fd41a63ffffff;\n\t\tmaxExpArray[103] = 0x016ddc6556cdb84bdc8d12d22e6fffffff;\n\t\tmaxExpArray[104] = 0x015ecf52776a1155b5bd8395814f7fffff;\n\t\tmaxExpArray[105] = 0x015060c256cb23b3b3cc3754cf40ffffff;\n\t\tmaxExpArray[106] = 0x01428a2f98d728ae223ddab715be3fffff;\n\t\tmaxExpArray[107] = 0x013545598e5c23276ccf0ede68034fffff;\n\t\tmaxExpArray[108] = 0x01288c4161ce1d6f54b7f61081194fffff;\n\t\tmaxExpArray[109] = 0x011c592761c666aa641d5a01a40f17ffff;\n\t\tmaxExpArray[110] = 0x0110a688680a7530515f3e6e6cfdcdffff;\n\t\tmaxExpArray[111] = 0x01056f1b5bedf75c6bcb2ce8aed428ffff;\n\t\tmaxExpArray[112] = 0x00faadceceeff8a0890f3875f008277fff;\n\t\tmaxExpArray[113] = 0x00f05dc6b27edad306388a600f6ba0bfff;\n\t\tmaxExpArray[114] = 0x00e67a5a25da41063de1495d5b18cdbfff;\n\t\tmaxExpArray[115] = 0x00dcff115b14eedde6fc3aa5353f2e4fff;\n\t\tmaxExpArray[116] = 0x00d3e7a3924312399f9aae2e0f868f8fff;\n\t\tmaxExpArray[117] = 0x00cb2ff529eb71e41582cccd5a1ee26fff;\n\t\tmaxExpArray[118] = 0x00c2d415c3db974ab32a51840c0b67edff;\n\t\tmaxExpArray[119] = 0x00bad03e7d883f69ad5b0a186184e06bff;\n\t\tmaxExpArray[120] = 0x00b320d03b2c343d4829abd6075f0cc5ff;\n\t\tmaxExpArray[121] = 0x00abc25204e02828d73c6e80bcdb1a95bf;\n\t\tmaxExpArray[122] = 0x00a4b16f74ee4bb2040a1ec6c15fbbf2df;\n\t\tmaxExpArray[123] = 0x009deaf736ac1f569deb1b5ae3f36c130f;\n\t\tmaxExpArray[124] = 0x00976bd9952c7aa957f5937d790ef65037;\n\t\tmaxExpArray[125] = 0x009131271922eaa6064b73a22d0bd4f2bf;\n\t\tmaxExpArray[126] = 0x008b380f3558668c46c91c49a2f8e967b9;\n\t\tmaxExpArray[127] = 0x00857ddf0117efa215952912839f6473e6;\n\t}\n\n\t/**\n\t * Auto-generated via 'PrintLambertArray.py'\n\t */\n\tuint256[128] private lambertArray;\n\n\tfunction initLambertArray() private {\n\t\tlambertArray[0] = 0x60e393c68d20b1bd09deaabc0373b9c5;\n\t\tlambertArray[1] = 0x5f8f46e4854120989ed94719fb4c2011;\n\t\tlambertArray[2] = 0x5e479ebb9129fb1b7e72a648f992b606;\n\t\tlambertArray[3] = 0x5d0bd23fe42dfedde2e9586be12b85fe;\n\t\tlambertArray[4] = 0x5bdb29ddee979308ddfca81aeeb8095a;\n\t\tlambertArray[5] = 0x5ab4fd8a260d2c7e2c0d2afcf0009dad;\n\t\tlambertArray[6] = 0x5998b31359a55d48724c65cf09001221;\n\t\tlambertArray[7] = 0x5885bcad2b322dfc43e8860f9c018cf5;\n\t\tlambertArray[8] = 0x577b97aa1fe222bb452fdf111b1f0be2;\n\t\tlambertArray[9] = 0x5679cb5e3575632e5baa27e2b949f704;\n\t\tlambertArray[10] = 0x557fe8241b3a31c83c732f1cdff4a1c5;\n\t\tlambertArray[11] = 0x548d868026504875d6e59bbe95fc2a6b;\n\t\tlambertArray[12] = 0x53a2465ce347cf34d05a867c17dd3088;\n\t\tlambertArray[13] = 0x52bdce5dcd4faed59c7f5511cf8f8acc;\n\t\tlambertArray[14] = 0x51dfcb453c07f8da817606e7885f7c3e;\n\t\tlambertArray[15] = 0x5107ef6b0a5a2be8f8ff15590daa3cce;\n\t\tlambertArray[16] = 0x5035f241d6eae0cd7bacba119993de7b;\n\t\tlambertArray[17] = 0x4f698fe90d5b53d532171e1210164c66;\n\t\tlambertArray[18] = 0x4ea288ca297a0e6a09a0eee240e16c85;\n\t\tlambertArray[19] = 0x4de0a13fdcf5d4213fc398ba6e3becde;\n\t\tlambertArray[20] = 0x4d23a145eef91fec06b06140804c4808;\n\t\tlambertArray[21] = 0x4c6b5430d4c1ee5526473db4ae0f11de;\n\t\tlambertArray[22] = 0x4bb7886c240562eba11f4963a53b4240;\n\t\tlambertArray[23] = 0x4b080f3f1cb491d2d521e0ea4583521e;\n\t\tlambertArray[24] = 0x4a5cbc96a05589cb4d86be1db3168364;\n\t\tlambertArray[25] = 0x49b566d40243517658d78c33162d6ece;\n\t\tlambertArray[26] = 0x4911e6a02e5507a30f947383fd9a3276;\n\t\tlambertArray[27] = 0x487216c2b31be4adc41db8a8d5cc0c88;\n\t\tlambertArray[28] = 0x47d5d3fc4a7a1b188cd3d788b5c5e9fc;\n\t\tlambertArray[29] = 0x473cfce4871a2c40bc4f9e1c32b955d0;\n\t\tlambertArray[30] = 0x46a771ca578ab878485810e285e31c67;\n\t\tlambertArray[31] = 0x4615149718aed4c258c373dc676aa72d;\n\t\tlambertArray[32] = 0x4585c8b3f8fe489c6e1833ca47871384;\n\t\tlambertArray[33] = 0x44f972f174e41e5efb7e9d63c29ce735;\n\t\tlambertArray[34] = 0x446ff970ba86d8b00beb05ecebf3c4dc;\n\t\tlambertArray[35] = 0x43e9438ec88971812d6f198b5ccaad96;\n\t\tlambertArray[36] = 0x436539d11ff7bea657aeddb394e809ef;\n\t\tlambertArray[37] = 0x42e3c5d3e5a913401d86f66db5d81c2c;\n\t\tlambertArray[38] = 0x4264d2395303070ea726cbe98df62174;\n\t\tlambertArray[39] = 0x41e84a9a593bb7194c3a6349ecae4eea;\n\t\tlambertArray[40] = 0x416e1b785d13eba07a08f3f18876a5ab;\n\t\tlambertArray[41] = 0x40f6322ff389d423ba9dd7e7e7b7e809;\n\t\tlambertArray[42] = 0x40807cec8a466880ecf4184545d240a4;\n\t\tlambertArray[43] = 0x400cea9ce88a8d3ae668e8ea0d9bf07f;\n\t\tlambertArray[44] = 0x3f9b6ae8772d4c55091e0ed7dfea0ac1;\n\t\tlambertArray[45] = 0x3f2bee253fd84594f54bcaafac383a13;\n\t\tlambertArray[46] = 0x3ebe654e95208bb9210c575c081c5958;\n\t\tlambertArray[47] = 0x3e52c1fc5665635b78ce1f05ad53c086;\n\t\tlambertArray[48] = 0x3de8f65ac388101ddf718a6f5c1eff65;\n\t\tlambertArray[49] = 0x3d80f522d59bd0b328ca012df4cd2d49;\n\t\tlambertArray[50] = 0x3d1ab193129ea72b23648a161163a85a;\n\t\tlambertArray[51] = 0x3cb61f68d32576c135b95cfb53f76d75;\n\t\tlambertArray[52] = 0x3c5332d9f1aae851a3619e77e4cc8473;\n\t\tlambertArray[53] = 0x3bf1e08edbe2aa109e1525f65759ef73;\n\t\tlambertArray[54] = 0x3b921d9cff13fa2c197746a3dfc4918f;\n\t\tlambertArray[55] = 0x3b33df818910bfc1a5aefb8f63ae2ac4;\n\t\tlambertArray[56] = 0x3ad71c1c77e34fa32a9f184967eccbf6;\n\t\tlambertArray[57] = 0x3a7bc9abf2c5bb53e2f7384a8a16521a;\n\t\tlambertArray[58] = 0x3a21dec7e76369783a68a0c6385a1c57;\n\t\tlambertArray[59] = 0x39c9525de6c9cdf7c1c157ca4a7a6ee3;\n\t\tlambertArray[60] = 0x39721bad3dc85d1240ff0190e0adaac3;\n\t\tlambertArray[61] = 0x391c324344d3248f0469eb28dd3d77e0;\n\t\tlambertArray[62] = 0x38c78df7e3c796279fb4ff84394ab3da;\n\t\tlambertArray[63] = 0x387426ea4638ae9aae08049d3554c20a;\n\t\tlambertArray[64] = 0x3821f57dbd2763256c1a99bbd2051378;\n\t\tlambertArray[65] = 0x37d0f256cb46a8c92ff62fbbef289698;\n\t\tlambertArray[66] = 0x37811658591ffc7abdd1feaf3cef9b73;\n\t\tlambertArray[67] = 0x37325aa10e9e82f7df0f380f7997154b;\n\t\tlambertArray[68] = 0x36e4b888cfb408d873b9a80d439311c6;\n\t\tlambertArray[69] = 0x3698299e59f4bb9de645fc9b08c64cca;\n\t\tlambertArray[70] = 0x364ca7a5012cb603023b57dd3ebfd50d;\n\t\tlambertArray[71] = 0x36022c928915b778ab1b06aaee7e61d4;\n\t\tlambertArray[72] = 0x35b8b28d1a73dc27500ffe35559cc028;\n\t\tlambertArray[73] = 0x357033e951fe250ec5eb4e60955132d7;\n\t\tlambertArray[74] = 0x3528ab2867934e3a21b5412e4c4f8881;\n\t\tlambertArray[75] = 0x34e212f66c55057f9676c80094a61d59;\n\t\tlambertArray[76] = 0x349c66289e5b3c4b540c24f42fa4b9bb;\n\t\tlambertArray[77] = 0x34579fbbd0c733a9c8d6af6b0f7d00f7;\n\t\tlambertArray[78] = 0x3413bad2e712288b924b5882b5b369bf;\n\t\tlambertArray[79] = 0x33d0b2b56286510ef730e213f71f12e9;\n\t\tlambertArray[80] = 0x338e82ce00e2496262c64457535ba1a1;\n\t\tlambertArray[81] = 0x334d26a96b373bb7c2f8ea1827f27a92;\n\t\tlambertArray[82] = 0x330c99f4f4211469e00b3e18c31475ea;\n\t\tlambertArray[83] = 0x32ccd87d6486094999c7d5e6f33237d8;\n\t\tlambertArray[84] = 0x328dde2dd617b6665a2e8556f250c1af;\n\t\tlambertArray[85] = 0x324fa70e9adc270f8262755af5a99af9;\n\t\tlambertArray[86] = 0x32122f443110611ca51040f41fa6e1e3;\n\t\tlambertArray[87] = 0x31d5730e42c0831482f0f1485c4263d8;\n\t\tlambertArray[88] = 0x31996ec6b07b4a83421b5ebc4ab4e1f1;\n\t\tlambertArray[89] = 0x315e1ee0a68ff46bb43ec2b85032e876;\n\t\tlambertArray[90] = 0x31237fe7bc4deacf6775b9efa1a145f8;\n\t\tlambertArray[91] = 0x30e98e7f1cc5a356e44627a6972ea2ff;\n\t\tlambertArray[92] = 0x30b04760b8917ec74205a3002650ec05;\n\t\tlambertArray[93] = 0x3077a75c803468e9132ce0cf3224241d;\n\t\tlambertArray[94] = 0x303fab57a6a275c36f19cda9bace667a;\n\t\tlambertArray[95] = 0x3008504beb8dcbd2cf3bc1f6d5a064f0;\n\t\tlambertArray[96] = 0x2fd19346ed17dac61219ce0c2c5ac4b0;\n\t\tlambertArray[97] = 0x2f9b7169808c324b5852fd3d54ba9714;\n\t\tlambertArray[98] = 0x2f65e7e711cf4b064eea9c08cbdad574;\n\t\tlambertArray[99] = 0x2f30f405093042ddff8a251b6bf6d103;\n\t\tlambertArray[100] = 0x2efc931a3750f2e8bfe323edfe037574;\n\t\tlambertArray[101] = 0x2ec8c28e46dbe56d98685278339400cb;\n\t\tlambertArray[102] = 0x2e957fd933c3926d8a599b602379b851;\n\t\tlambertArray[103] = 0x2e62c882c7c9ed4473412702f08ba0e5;\n\t\tlambertArray[104] = 0x2e309a221c12ba361e3ed695167feee2;\n\t\tlambertArray[105] = 0x2dfef25d1f865ae18dd07cfea4bcea10;\n\t\tlambertArray[106] = 0x2dcdcee821cdc80decc02c44344aeb31;\n\t\tlambertArray[107] = 0x2d9d2d8562b34944d0b201bb87260c83;\n\t\tlambertArray[108] = 0x2d6d0c04a5b62a2c42636308669b729a;\n\t\tlambertArray[109] = 0x2d3d6842c9a235517fc5a0332691528f;\n\t\tlambertArray[110] = 0x2d0e402963fe1ea2834abc408c437c10;\n\t\tlambertArray[111] = 0x2cdf91ae602647908aff975e4d6a2a8c;\n\t\tlambertArray[112] = 0x2cb15ad3a1eb65f6d74a75da09a1b6c5;\n\t\tlambertArray[113] = 0x2c8399a6ab8e9774d6fcff373d210727;\n\t\tlambertArray[114] = 0x2c564c4046f64edba6883ca06bbc4535;\n\t\tlambertArray[115] = 0x2c2970c431f952641e05cb493e23eed3;\n\t\tlambertArray[116] = 0x2bfd0560cd9eb14563bc7c0732856c18;\n\t\tlambertArray[117] = 0x2bd1084ed0332f7ff4150f9d0ef41a2c;\n\t\tlambertArray[118] = 0x2ba577d0fa1628b76d040b12a82492fb;\n\t\tlambertArray[119] = 0x2b7a5233cd21581e855e89dc2f1e8a92;\n\t\tlambertArray[120] = 0x2b4f95cd46904d05d72bdcde337d9cc7;\n\t\tlambertArray[121] = 0x2b2540fc9b4d9abba3faca6691914675;\n\t\tlambertArray[122] = 0x2afb5229f68d0830d8be8adb0a0db70f;\n\t\tlambertArray[123] = 0x2ad1c7c63a9b294c5bc73a3ba3ab7a2b;\n\t\tlambertArray[124] = 0x2aa8a04ac3cbe1ee1c9c86361465dbb8;\n\t\tlambertArray[125] = 0x2a7fda392d725a44a2c8aeb9ab35430d;\n\t\tlambertArray[126] = 0x2a57741b18cde618717792b4faa216db;\n\t\tlambertArray[127] = 0x2a2f6c81f5d84dd950a35626d6d5503a;\n\t}\n\n\t/**\n\t * @dev should be executed after construction (too large for the constructor)\n\t */\n\tfunction init() public {\n\t\tinitMaxExpArray();\n\t\tinitLambertArray();\n\t}\n\n\t/**\n\t * @dev given a token supply, reserve balance, weight and a deposit amount (in the reserve token),\n\t * calculates the target amount for a given conversion (in the main token)\n\t *\n\t * Formula:\n\t * return = _supply * ((1 + _amount / _reserveBalance) ^ (_reserveWeight / 1000000) - 1)\n\t *\n\t * @param _supply smart token supply\n\t * @param _reserveBalance reserve balance\n\t * @param _reserveWeight reserve weight, represented in ppm (1-1000000)\n\t * @param _amount amount of reserve tokens to get the target amount for\n\t *\n\t * @return smart token amount\n\t */\n\tfunction purchaseTargetAmount(\n\t\tuint256 _supply,\n\t\tuint256 _reserveBalance,\n\t\tuint32 _reserveWeight,\n\t\tuint256 _amount\n\t) public view returns (uint256) {\n\t\t// validate input\n\t\trequire(_supply > 0, \"ERR_INVALID_SUPPLY\");\n\t\trequire(_reserveBalance > 0, \"ERR_INVALID_RESERVE_BALANCE\");\n\t\trequire(_reserveWeight > 0 && _reserveWeight <= MAX_WEIGHT, \"ERR_INVALID_RESERVE_WEIGHT\");\n\n\t\t// special case for 0 deposit amount\n\t\tif (_amount == 0) return 0;\n\n\t\t// special case if the weight = 100%\n\t\tif (_reserveWeight == MAX_WEIGHT) return _supply.mul(_amount) / _reserveBalance;\n\n\t\tuint256 result;\n\t\tuint8 precision;\n\t\tuint256 baseN = _amount.add(_reserveBalance);\n\t\t(result, precision) = power(baseN, _reserveBalance, _reserveWeight, MAX_WEIGHT);\n\t\tuint256 temp = _supply.mul(result) >> precision;\n\t\treturn temp - _supply;\n\t}\n\n\t/**\n\t * @dev given a token supply, reserve balance, weight and a sell amount (in the main token),\n\t * calculates the target amount for a given conversion (in the reserve token)\n\t *\n\t * Formula:\n\t * return = _reserveBalance * (1 - (1 - _amount / _supply) ^ (1000000 / _reserveWeight))\n\t *\n\t * @param _supply smart token supply\n\t * @param _reserveBalance reserve balance\n\t * @param _reserveWeight reserve weight, represented in ppm (1-1000000)\n\t * @param _amount amount of smart tokens to get the target amount for\n\t *\n\t * @return reserve token amount\n\t */\n\tfunction saleTargetAmount(\n\t\tuint256 _supply,\n\t\tuint256 _reserveBalance,\n\t\tuint32 _reserveWeight,\n\t\tuint256 _amount\n\t) public view returns (uint256) {\n\t\t// validate input\n\t\trequire(_supply > 0, \"ERR_INVALID_SUPPLY\");\n\t\trequire(_reserveBalance > 0, \"ERR_INVALID_RESERVE_BALANCE\");\n\t\trequire(_reserveWeight > 0 && _reserveWeight <= MAX_WEIGHT, \"ERR_INVALID_RESERVE_WEIGHT\");\n\t\trequire(_amount <= _supply, \"ERR_INVALID_AMOUNT\");\n\n\t\t// special case for 0 sell amount\n\t\tif (_amount == 0) return 0;\n\n\t\t// special case for selling the entire supply\n\t\tif (_amount == _supply) return _reserveBalance;\n\n\t\t// special case if the weight = 100%\n\t\tif (_reserveWeight == MAX_WEIGHT) return _reserveBalance.mul(_amount) / _supply;\n\n\t\tuint256 result;\n\t\tuint8 precision;\n\t\tuint256 baseD = _supply - _amount;\n\t\t(result, precision) = power(_supply, baseD, MAX_WEIGHT, _reserveWeight);\n\t\tuint256 temp1 = _reserveBalance.mul(result);\n\t\tuint256 temp2 = _reserveBalance << precision;\n\t\treturn (temp1 - temp2) / result;\n\t}\n\n\t/**\n\t * @dev given two reserve balances/weights and a sell amount (in the first reserve token),\n\t * calculates the target amount for a conversion from the source reserve token to the target reserve token\n\t *\n\t * Formula:\n\t * return = _targetReserveBalance * (1 - (_sourceReserveBalance / (_sourceReserveBalance + _amount)) ^ (_sourceReserveWeight / _targetReserveWeight))\n\t *\n\t * @param _sourceReserveBalance source reserve balance\n\t * @param _sourceReserveWeight source reserve weight, represented in ppm (1-1000000)\n\t * @param _targetReserveBalance target reserve balance\n\t * @param _targetReserveWeight target reserve weight, represented in ppm (1-1000000)\n\t * @param _amount source reserve amount\n\t *\n\t * @return target reserve amount\n\t */\n\tfunction crossReserveTargetAmount(\n\t\tuint256 _sourceReserveBalance,\n\t\tuint32 _sourceReserveWeight,\n\t\tuint256 _targetReserveBalance,\n\t\tuint32 _targetReserveWeight,\n\t\tuint256 _amount\n\t) public view returns (uint256) {\n\t\t// validate input\n\t\trequire(_sourceReserveBalance > 0 && _targetReserveBalance > 0, \"ERR_INVALID_RESERVE_BALANCE\");\n\t\trequire(\n\t\t\t_sourceReserveWeight > 0 && _sourceReserveWeight <= MAX_WEIGHT && _targetReserveWeight > 0 && _targetReserveWeight <= MAX_WEIGHT,\n\t\t\t\"ERR_INVALID_RESERVE_WEIGHT\"\n\t\t);\n\n\t\t// special case for equal weights\n\t\tif (_sourceReserveWeight == _targetReserveWeight) return _targetReserveBalance.mul(_amount) / _sourceReserveBalance.add(_amount);\n\n\t\tuint256 result;\n\t\tuint8 precision;\n\t\tuint256 baseN = _sourceReserveBalance.add(_amount);\n\t\t(result, precision) = power(baseN, _sourceReserveBalance, _sourceReserveWeight, _targetReserveWeight);\n\t\tuint256 temp1 = _targetReserveBalance.mul(result);\n\t\tuint256 temp2 = _targetReserveBalance << precision;\n\t\treturn (temp1 - temp2) / result;\n\t}\n\n\t/**\n\t * @dev given a smart token supply, reserve balance, reserve ratio and an amount of requested smart tokens,\n\t * calculates the amount of reserve tokens required for purchasing the given amount of smart tokens\n\t *\n\t * Formula:\n\t * return = _reserveBalance * (((_supply + _amount) / _supply) ^ (MAX_WEIGHT / _reserveRatio) - 1)\n\t *\n\t * @param _supply smart token supply\n\t * @param _reserveBalance reserve balance\n\t * @param _reserveRatio reserve ratio, represented in ppm (2-2000000)\n\t * @param _amount requested amount of smart tokens\n\t *\n\t * @return reserve token amount\n\t */\n\tfunction fundCost(\n\t\tuint256 _supply,\n\t\tuint256 _reserveBalance,\n\t\tuint32 _reserveRatio,\n\t\tuint256 _amount\n\t) public view returns (uint256) {\n\t\t// validate input\n\t\trequire(_supply > 0, \"ERR_INVALID_SUPPLY\");\n\t\trequire(_reserveBalance > 0, \"ERR_INVALID_RESERVE_BALANCE\");\n\t\trequire(_reserveRatio > 1 && _reserveRatio <= MAX_WEIGHT * 2, \"ERR_INVALID_RESERVE_RATIO\");\n\n\t\t// special case for 0 amount\n\t\tif (_amount == 0) return 0;\n\n\t\t// special case if the reserve ratio = 100%\n\t\tif (_reserveRatio == MAX_WEIGHT) return (_amount.mul(_reserveBalance) - 1) / _supply + 1;\n\n\t\tuint256 result;\n\t\tuint8 precision;\n\t\tuint256 baseN = _supply.add(_amount);\n\t\t(result, precision) = power(baseN, _supply, MAX_WEIGHT, _reserveRatio);\n\t\tuint256 temp = ((_reserveBalance.mul(result) - 1) >> precision) + 1;\n\t\treturn temp - _reserveBalance;\n\t}\n\n\t/**\n\t * @dev given a smart token supply, reserve balance, reserve ratio and an amount of reserve tokens to fund with,\n\t * calculates the amount of smart tokens received for purchasing with the given amount of reserve tokens\n\t *\n\t * Formula:\n\t * return = _supply * ((_amount / _reserveBalance + 1) ^ (_reserveRatio / MAX_WEIGHT) - 1)\n\t *\n\t * @param _supply smart token supply\n\t * @param _reserveBalance reserve balance\n\t * @param _reserveRatio reserve ratio, represented in ppm (2-2000000)\n\t * @param _amount amount of reserve tokens to fund with\n\t *\n\t * @return smart token amount\n\t */\n\tfunction fundSupplyAmount(\n\t\tuint256 _supply,\n\t\tuint256 _reserveBalance,\n\t\tuint32 _reserveRatio,\n\t\tuint256 _amount\n\t) public view returns (uint256) {\n\t\t// validate input\n\t\trequire(_supply > 0, \"ERR_INVALID_SUPPLY\");\n\t\trequire(_reserveBalance > 0, \"ERR_INVALID_RESERVE_BALANCE\");\n\t\trequire(_reserveRatio > 1 && _reserveRatio <= MAX_WEIGHT * 2, \"ERR_INVALID_RESERVE_RATIO\");\n\n\t\t// special case for 0 amount\n\t\tif (_amount == 0) return 0;\n\n\t\t// special case if the reserve ratio = 100%\n\t\tif (_reserveRatio == MAX_WEIGHT) return _amount.mul(_supply) / _reserveBalance;\n\n\t\tuint256 result;\n\t\tuint8 precision;\n\t\tuint256 baseN = _reserveBalance.add(_amount);\n\t\t(result, precision) = power(baseN, _reserveBalance, _reserveRatio, MAX_WEIGHT);\n\t\tuint256 temp = _supply.mul(result) >> precision;\n\t\treturn temp - _supply;\n\t}\n\n\t/**\n\t * @dev given a smart token supply, reserve balance, reserve ratio and an amount of smart tokens to liquidate,\n\t * calculates the amount of reserve tokens received for selling the given amount of smart tokens\n\t *\n\t * Formula:\n\t * return = _reserveBalance * (1 - ((_supply - _amount) / _supply) ^ (MAX_WEIGHT / _reserveRatio))\n\t *\n\t * @param _supply smart token supply\n\t * @param _reserveBalance reserve balance\n\t * @param _reserveRatio reserve ratio, represented in ppm (2-2000000)\n\t * @param _amount amount of smart tokens to liquidate\n\t *\n\t * @return reserve token amount\n\t */\n\tfunction liquidateReserveAmount(\n\t\tuint256 _supply,\n\t\tuint256 _reserveBalance,\n\t\tuint32 _reserveRatio,\n\t\tuint256 _amount\n\t) public view returns (uint256) {\n\t\t// validate input\n\t\trequire(_supply > 0, \"ERR_INVALID_SUPPLY\");\n\t\trequire(_reserveBalance > 0, \"ERR_INVALID_RESERVE_BALANCE\");\n\t\trequire(_reserveRatio > 1 && _reserveRatio <= MAX_WEIGHT * 2, \"ERR_INVALID_RESERVE_RATIO\");\n\t\trequire(_amount <= _supply, \"ERR_INVALID_AMOUNT\");\n\n\t\t// special case for 0 amount\n\t\tif (_amount == 0) return 0;\n\n\t\t// special case for liquidating the entire supply\n\t\tif (_amount == _supply) return _reserveBalance;\n\n\t\t// special case if the reserve ratio = 100%\n\t\tif (_reserveRatio == MAX_WEIGHT) return _amount.mul(_reserveBalance) / _supply;\n\n\t\tuint256 result;\n\t\tuint8 precision;\n\t\tuint256 baseD = _supply - _amount;\n\t\t(result, precision) = power(_supply, baseD, MAX_WEIGHT, _reserveRatio);\n\t\tuint256 temp1 = _reserveBalance.mul(result);\n\t\tuint256 temp2 = _reserveBalance << precision;\n\t\treturn (temp1 - temp2) / result;\n\t}\n\n\t/**\n\t * @dev The arbitrage incentive is to convert to the point where the on-chain price is equal to the off-chain price.\n\t * We want this operation to also impact the primary reserve balance becoming equal to the primary reserve staked balance.\n\t * In other words, we want the arbitrager to convert the difference between the reserve balance and the reserve staked balance.\n\t *\n\t * Formula input:\n\t * - let t denote the primary reserve token staked balance\n\t * - let s denote the primary reserve token balance\n\t * - let r denote the secondary reserve token balance\n\t * - let q denote the numerator of the rate between the tokens\n\t * - let p denote the denominator of the rate between the tokens\n\t * Where p primary tokens are equal to q secondary tokens\n\t *\n\t * Formula output:\n\t * - compute x = W(t / r * q / p * log(s / t)) / log(s / t)\n\t * - return x / (1 + x) as the weight of the primary reserve token\n\t * - return 1 / (1 + x) as the weight of the secondary reserve token\n\t * Where W is the Lambert W Function\n\t *\n\t * If the rate-provider provides the rates for a common unit, for example:\n\t * - P = 2 ==> 2 primary reserve tokens = 1 ether\n\t * - Q = 3 ==> 3 secondary reserve tokens = 1 ether\n\t * Then you can simply use p = P and q = Q\n\t *\n\t * If the rate-provider provides the rates for a single unit, for example:\n\t * - P = 2 ==> 1 primary reserve token = 2 ethers\n\t * - Q = 3 ==> 1 secondary reserve token = 3 ethers\n\t * Then you can simply use p = Q and q = P\n\t *\n\t * @param _primaryReserveStakedBalance the primary reserve token staked balance\n\t * @param _primaryReserveBalance the primary reserve token balance\n\t * @param _secondaryReserveBalance the secondary reserve token balance\n\t * @param _reserveRateNumerator the numerator of the rate between the tokens\n\t * @param _reserveRateDenominator the denominator of the rate between the tokens\n\t *\n\t * Note that `numerator / denominator` should represent the amount of secondary tokens equal to one primary token\n\t *\n\t * @return the weight of the primary reserve token and the weight of the secondary reserve token, both in ppm (0-1000000)\n\t */\n\tfunction balancedWeights(\n\t\tuint256 _primaryReserveStakedBalance,\n\t\tuint256 _primaryReserveBalance,\n\t\tuint256 _secondaryReserveBalance,\n\t\tuint256 _reserveRateNumerator,\n\t\tuint256 _reserveRateDenominator\n\t) public view returns (uint32, uint32) {\n\t\tif (_primaryReserveStakedBalance == _primaryReserveBalance)\n\t\t\trequire(_primaryReserveStakedBalance > 0 || _secondaryReserveBalance > 0, \"ERR_INVALID_RESERVE_BALANCE\");\n\t\telse require(_primaryReserveStakedBalance > 0 && _primaryReserveBalance > 0 && _secondaryReserveBalance > 0, \"ERR_INVALID_RESERVE_BALANCE\");\n\t\trequire(_reserveRateNumerator > 0 && _reserveRateDenominator > 0, \"ERR_INVALID_RESERVE_RATE\");\n\n\t\tuint256 tq = _primaryReserveStakedBalance.mul(_reserveRateNumerator);\n\t\tuint256 rp = _secondaryReserveBalance.mul(_reserveRateDenominator);\n\n\t\tif (_primaryReserveStakedBalance < _primaryReserveBalance)\n\t\t\treturn balancedWeightsByStake(_primaryReserveBalance, _primaryReserveStakedBalance, tq, rp, true);\n\n\t\tif (_primaryReserveStakedBalance > _primaryReserveBalance)\n\t\t\treturn balancedWeightsByStake(_primaryReserveStakedBalance, _primaryReserveBalance, tq, rp, false);\n\n\t\treturn normalizedWeights(tq, rp);\n\t}\n\n\t/**\n\t * @dev General Description:\n\t * Determine a value of precision.\n\t * Calculate an integer approximation of (_baseN / _baseD) ^ (_expN / _expD) * 2 ^ precision.\n\t * Return the result along with the precision used.\n\t *\n\t * Detailed Description:\n\t * Instead of calculating \"base ^ exp\", we calculate \"e ^ (log(base) * exp)\".\n\t * The value of \"log(base)\" is represented with an integer slightly smaller than \"log(base) * 2 ^ precision\".\n\t * The larger \"precision\" is, the more accurately this value represents the real value.\n\t * However, the larger \"precision\" is, the more bits are required in order to store this value.\n\t * And the exponentiation function, which takes \"x\" and calculates \"e ^ x\", is limited to a maximum exponent (maximum value of \"x\").\n\t * This maximum exponent depends on the \"precision\" used, and it is given by \"maxExpArray[precision] >> (MAX_PRECISION - precision)\".\n\t * Hence we need to determine the highest precision which can be used for the given input, before calling the exponentiation function.\n\t * This allows us to compute \"base ^ exp\" with maximum accuracy and without exceeding 256 bits in any of the intermediate computations.\n\t * This functions assumes that \"_expN < 2 ^ 256 / log(MAX_NUM - 1)\", otherwise the multiplication should be replaced with a \"safeMul\".\n\t * Since we rely on unsigned-integer arithmetic and \"base < 1\" ==> \"log(base) < 0\", this function does not support \"_baseN < _baseD\".\n\t */\n\tfunction power(\n\t\tuint256 _baseN,\n\t\tuint256 _baseD,\n\t\tuint32 _expN,\n\t\tuint32 _expD\n\t) internal view returns (uint256, uint8) {\n\t\trequire(_baseN < MAX_NUM);\n\n\t\tuint256 baseLog;\n\t\tuint256 base = (_baseN * FIXED_1) / _baseD;\n\t\tif (base < OPT_LOG_MAX_VAL) {\n\t\t\tbaseLog = optimalLog(base);\n\t\t} else {\n\t\t\tbaseLog = generalLog(base);\n\t\t}\n\n\t\tuint256 baseLogTimesExp = (baseLog * _expN) / _expD;\n\t\tif (baseLogTimesExp < OPT_EXP_MAX_VAL) {\n\t\t\treturn (optimalExp(baseLogTimesExp), MAX_PRECISION);\n\t\t} else {\n\t\t\tuint8 precision = findPositionInMaxExpArray(baseLogTimesExp);\n\t\t\treturn (generalExp(baseLogTimesExp >> (MAX_PRECISION - precision), precision), precision);\n\t\t}\n\t}\n\n\t/**\n\t * @dev computes log(x / FIXED_1) * FIXED_1.\n\t * This functions assumes that \"x >= FIXED_1\", because the output would be negative otherwise.\n\t */\n\tfunction generalLog(uint256 x) internal pure returns (uint256) {\n\t\tuint256 res = 0;\n\n\t\t// If x >= 2, then we compute the integer part of log2(x), which is larger than 0.\n\t\tif (x >= FIXED_2) {\n\t\t\tuint8 count = floorLog2(x / FIXED_1);\n\t\t\tx >>= count; // now x < 2\n\t\t\tres = count * FIXED_1;\n\t\t}\n\n\t\t// If x > 1, then we compute the fraction part of log2(x), which is larger than 0.\n\t\tif (x > FIXED_1) {\n\t\t\tfor (uint8 i = MAX_PRECISION; i > 0; --i) {\n\t\t\t\tx = (x * x) / FIXED_1; // now 1 < x < 4\n\t\t\t\tif (x >= FIXED_2) {\n\t\t\t\t\tx >>= 1; // now 1 < x < 2\n\t\t\t\t\tres += ONE << (i - 1);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn (res * LN2_NUMERATOR) / LN2_DENOMINATOR;\n\t}\n\n\t/**\n\t * @dev computes the largest integer smaller than or equal to the binary logarithm of the input.\n\t */\n\tfunction floorLog2(uint256 _n) internal pure returns (uint8) {\n\t\tuint8 res = 0;\n\n\t\tif (_n < 256) {\n\t\t\t// At most 8 iterations\n\t\t\twhile (_n > 1) {\n\t\t\t\t_n >>= 1;\n\t\t\t\tres += 1;\n\t\t\t}\n\t\t} else {\n\t\t\t// Exactly 8 iterations\n\t\t\tfor (uint8 s = 128; s > 0; s >>= 1) {\n\t\t\t\tif (_n >= (ONE << s)) {\n\t\t\t\t\t_n >>= s;\n\t\t\t\t\tres |= s;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn res;\n\t}\n\n\t/**\n\t * @dev the global \"maxExpArray\" is sorted in descending order, and therefore the following statements are equivalent:\n\t * - This function finds the position of [the smallest value in \"maxExpArray\" larger than or equal to \"x\"]\n\t * - This function finds the highest position of [a value in \"maxExpArray\" larger than or equal to \"x\"]\n\t */\n\tfunction findPositionInMaxExpArray(uint256 _x) internal view returns (uint8) {\n\t\tuint8 lo = MIN_PRECISION;\n\t\tuint8 hi = MAX_PRECISION;\n\n\t\twhile (lo + 1 < hi) {\n\t\t\tuint8 mid = (lo + hi) / 2;\n\t\t\tif (maxExpArray[mid] >= _x) lo = mid;\n\t\t\telse hi = mid;\n\t\t}\n\n\t\tif (maxExpArray[hi] >= _x) return hi;\n\t\tif (maxExpArray[lo] >= _x) return lo;\n\n\t\trequire(false);\n\t}\n\n\t/**\n\t * @dev this function can be auto-generated by the script 'PrintFunctionGeneralExp.py'.\n\t * it approximates \"e ^ x\" via maclaurin summation: \"(x^0)/0! + (x^1)/1! + ... + (x^n)/n!\".\n\t * it returns \"e ^ (x / 2 ^ precision) * 2 ^ precision\", that is, the result is upshifted for accuracy.\n\t * the global \"maxExpArray\" maps each \"precision\" to \"((maximumExponent + 1) << (MAX_PRECISION - precision)) - 1\".\n\t * the maximum permitted value for \"x\" is therefore given by \"maxExpArray[precision] >> (MAX_PRECISION - precision)\".\n\t */\n\tfunction generalExp(uint256 _x, uint8 _precision) internal pure returns (uint256) {\n\t\tuint256 xi = _x;\n\t\tuint256 res = 0;\n\n\t\txi = (xi * _x) >> _precision;\n\t\tres += xi * 0x3442c4e6074a82f1797f72ac0000000; // add x^02 * (33! / 02!)\n\t\txi = (xi * _x) >> _precision;\n\t\tres += xi * 0x116b96f757c380fb287fd0e40000000; // add x^03 * (33! / 03!)\n\t\txi = (xi * _x) >> _precision;\n\t\tres += xi * 0x045ae5bdd5f0e03eca1ff4390000000; // add x^04 * (33! / 04!)\n\t\txi = (xi * _x) >> _precision;\n\t\tres += xi * 0x00defabf91302cd95b9ffda50000000; // add x^05 * (33! / 05!)\n\t\txi = (xi * _x) >> _precision;\n\t\tres += xi * 0x002529ca9832b22439efff9b8000000; // add x^06 * (33! / 06!)\n\t\txi = (xi * _x) >> _precision;\n\t\tres += xi * 0x00054f1cf12bd04e516b6da88000000; // add x^07 * (33! / 07!)\n\t\txi = (xi * _x) >> _precision;\n\t\tres += xi * 0x0000a9e39e257a09ca2d6db51000000; // add x^08 * (33! / 08!)\n\t\txi = (xi * _x) >> _precision;\n\t\tres += xi * 0x000012e066e7b839fa050c309000000; // add x^09 * (33! / 09!)\n\t\txi = (xi * _x) >> _precision;\n\t\tres += xi * 0x000001e33d7d926c329a1ad1a800000; // add x^10 * (33! / 10!)\n\t\txi = (xi * _x) >> _precision;\n\t\tres += xi * 0x0000002bee513bdb4a6b19b5f800000; // add x^11 * (33! / 11!)\n\t\txi = (xi * _x) >> _precision;\n\t\tres += xi * 0x00000003a9316fa79b88eccf2a00000; // add x^12 * (33! / 12!)\n\t\txi = (xi * _x) >> _precision;\n\t\tres += xi * 0x0000000048177ebe1fa812375200000; // add x^13 * (33! / 13!)\n\t\txi = (xi * _x) >> _precision;\n\t\tres += xi * 0x0000000005263fe90242dcbacf00000; // add x^14 * (33! / 14!)\n\t\txi = (xi * _x) >> _precision;\n\t\tres += xi * 0x000000000057e22099c030d94100000; // add x^15 * (33! / 15!)\n\t\txi = (xi * _x) >> _precision;\n\t\tres += xi * 0x0000000000057e22099c030d9410000; // add x^16 * (33! / 16!)\n\t\txi = (xi * _x) >> _precision;\n\t\tres += xi * 0x00000000000052b6b54569976310000; // add x^17 * (33! / 17!)\n\t\txi = (xi * _x) >> _precision;\n\t\tres += xi * 0x00000000000004985f67696bf748000; // add x^18 * (33! / 18!)\n\t\txi = (xi * _x) >> _precision;\n\t\tres += xi * 0x000000000000003dea12ea99e498000; // add x^19 * (33! / 19!)\n\t\txi = (xi * _x) >> _precision;\n\t\tres += xi * 0x00000000000000031880f2214b6e000; // add x^20 * (33! / 20!)\n\t\txi = (xi * _x) >> _precision;\n\t\tres += xi * 0x000000000000000025bcff56eb36000; // add x^21 * (33! / 21!)\n\t\txi = (xi * _x) >> _precision;\n\t\tres += xi * 0x000000000000000001b722e10ab1000; // add x^22 * (33! / 22!)\n\t\txi = (xi * _x) >> _precision;\n\t\tres += xi * 0x0000000000000000001317c70077000; // add x^23 * (33! / 23!)\n\t\txi = (xi * _x) >> _precision;\n\t\tres += xi * 0x00000000000000000000cba84aafa00; // add x^24 * (33! / 24!)\n\t\txi = (xi * _x) >> _precision;\n\t\tres += xi * 0x00000000000000000000082573a0a00; // add x^25 * (33! / 25!)\n\t\txi = (xi * _x) >> _precision;\n\t\tres += xi * 0x00000000000000000000005035ad900; // add x^26 * (33! / 26!)\n\t\txi = (xi * _x) >> _precision;\n\t\tres += xi * 0x000000000000000000000002f881b00; // add x^27 * (33! / 27!)\n\t\txi = (xi * _x) >> _precision;\n\t\tres += xi * 0x0000000000000000000000001b29340; // add x^28 * (33! / 28!)\n\t\txi = (xi * _x) >> _precision;\n\t\tres += xi * 0x00000000000000000000000000efc40; // add x^29 * (33! / 29!)\n\t\txi = (xi * _x) >> _precision;\n\t\tres += xi * 0x0000000000000000000000000007fe0; // add x^30 * (33! / 30!)\n\t\txi = (xi * _x) >> _precision;\n\t\tres += xi * 0x0000000000000000000000000000420; // add x^31 * (33! / 31!)\n\t\txi = (xi * _x) >> _precision;\n\t\tres += xi * 0x0000000000000000000000000000021; // add x^32 * (33! / 32!)\n\t\txi = (xi * _x) >> _precision;\n\t\tres += xi * 0x0000000000000000000000000000001; // add x^33 * (33! / 33!)\n\n\t\treturn res / 0x688589cc0e9505e2f2fee5580000000 + _x + (ONE << _precision); // divide by 33! and then add x^1 / 1! + x^0 / 0!\n\t}\n\n\t/**\n\t * @dev computes log(x / FIXED_1) * FIXED_1\n\t * Input range: FIXED_1 <= x <= OPT_LOG_MAX_VAL - 1\n\t * Auto-generated via 'PrintFunctionOptimalLog.py'\n\t * Detailed description:\n\t * - Rewrite the input as a product of natural exponents and a single residual r, such that 1 < r < 2\n\t * - The natural logarithm of each (pre-calculated) exponent is the degree of the exponent\n\t * - The natural logarithm of r is calculated via Taylor series for log(1 + x), where x = r - 1\n\t * - The natural logarithm of the input is calculated by summing up the intermediate results above\n\t * - For example: log(250) = log(e^4 * e^1 * e^0.5 * 1.021692859) = 4 + 1 + 0.5 + log(1 + 0.021692859)\n\t */\n\tfunction optimalLog(uint256 x) internal pure returns (uint256) {\n\t\tuint256 res = 0;\n\n\t\tuint256 y;\n\t\tuint256 z;\n\t\tuint256 w;\n\n\t\tif (x >= 0xd3094c70f034de4b96ff7d5b6f99fcd8) {\n\t\t\tres += 0x40000000000000000000000000000000;\n\t\t\tx = (x * FIXED_1) / 0xd3094c70f034de4b96ff7d5b6f99fcd8;\n\t\t} // add 1 / 2^1\n\t\tif (x >= 0xa45af1e1f40c333b3de1db4dd55f29a7) {\n\t\t\tres += 0x20000000000000000000000000000000;\n\t\t\tx = (x * FIXED_1) / 0xa45af1e1f40c333b3de1db4dd55f29a7;\n\t\t} // add 1 / 2^2\n\t\tif (x >= 0x910b022db7ae67ce76b441c27035c6a1) {\n\t\t\tres += 0x10000000000000000000000000000000;\n\t\t\tx = (x * FIXED_1) / 0x910b022db7ae67ce76b441c27035c6a1;\n\t\t} // add 1 / 2^3\n\t\tif (x >= 0x88415abbe9a76bead8d00cf112e4d4a8) {\n\t\t\tres += 0x08000000000000000000000000000000;\n\t\t\tx = (x * FIXED_1) / 0x88415abbe9a76bead8d00cf112e4d4a8;\n\t\t} // add 1 / 2^4\n\t\tif (x >= 0x84102b00893f64c705e841d5d4064bd3) {\n\t\t\tres += 0x04000000000000000000000000000000;\n\t\t\tx = (x * FIXED_1) / 0x84102b00893f64c705e841d5d4064bd3;\n\t\t} // add 1 / 2^5\n\t\tif (x >= 0x8204055aaef1c8bd5c3259f4822735a2) {\n\t\t\tres += 0x02000000000000000000000000000000;\n\t\t\tx = (x * FIXED_1) / 0x8204055aaef1c8bd5c3259f4822735a2;\n\t\t} // add 1 / 2^6\n\t\tif (x >= 0x810100ab00222d861931c15e39b44e99) {\n\t\t\tres += 0x01000000000000000000000000000000;\n\t\t\tx = (x * FIXED_1) / 0x810100ab00222d861931c15e39b44e99;\n\t\t} // add 1 / 2^7\n\t\tif (x >= 0x808040155aabbbe9451521693554f733) {\n\t\t\tres += 0x00800000000000000000000000000000;\n\t\t\tx = (x * FIXED_1) / 0x808040155aabbbe9451521693554f733;\n\t\t} // add 1 / 2^8\n\n\t\tz = y = x - FIXED_1;\n\t\tw = (y * y) / FIXED_1;\n\t\tres += (z * (0x100000000000000000000000000000000 - y)) / 0x100000000000000000000000000000000;\n\t\tz = (z * w) / FIXED_1; // add y^01 / 01 - y^02 / 02\n\t\tres += (z * (0x0aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa - y)) / 0x200000000000000000000000000000000;\n\t\tz = (z * w) / FIXED_1; // add y^03 / 03 - y^04 / 04\n\t\tres += (z * (0x099999999999999999999999999999999 - y)) / 0x300000000000000000000000000000000;\n\t\tz = (z * w) / FIXED_1; // add y^05 / 05 - y^06 / 06\n\t\tres += (z * (0x092492492492492492492492492492492 - y)) / 0x400000000000000000000000000000000;\n\t\tz = (z * w) / FIXED_1; // add y^07 / 07 - y^08 / 08\n\t\tres += (z * (0x08e38e38e38e38e38e38e38e38e38e38e - y)) / 0x500000000000000000000000000000000;\n\t\tz = (z * w) / FIXED_1; // add y^09 / 09 - y^10 / 10\n\t\tres += (z * (0x08ba2e8ba2e8ba2e8ba2e8ba2e8ba2e8b - y)) / 0x600000000000000000000000000000000;\n\t\tz = (z * w) / FIXED_1; // add y^11 / 11 - y^12 / 12\n\t\tres += (z * (0x089d89d89d89d89d89d89d89d89d89d89 - y)) / 0x700000000000000000000000000000000;\n\t\tz = (z * w) / FIXED_1; // add y^13 / 13 - y^14 / 14\n\t\tres += (z * (0x088888888888888888888888888888888 - y)) / 0x800000000000000000000000000000000; // add y^15 / 15 - y^16 / 16\n\n\t\treturn res;\n\t}\n\n\t/**\n\t * @dev computes e ^ (x / FIXED_1) * FIXED_1\n\t * input range: 0 <= x <= OPT_EXP_MAX_VAL - 1\n\t * auto-generated via 'PrintFunctionOptimalExp.py'\n\t * Detailed description:\n\t * - Rewrite the input as a sum of binary exponents and a single residual r, as small as possible\n\t * - The exponentiation of each binary exponent is given (pre-calculated)\n\t * - The exponentiation of r is calculated via Taylor series for e^x, where x = r\n\t * - The exponentiation of the input is calculated by multiplying the intermediate results above\n\t * - For example: e^5.521692859 = e^(4 + 1 + 0.5 + 0.021692859) = e^4 * e^1 * e^0.5 * e^0.021692859\n\t */\n\tfunction optimalExp(uint256 x) internal pure returns (uint256) {\n\t\tuint256 res = 0;\n\n\t\tuint256 y;\n\t\tuint256 z;\n\n\t\tz = y = x % 0x10000000000000000000000000000000; // get the input modulo 2^(-3)\n\t\tz = (z * y) / FIXED_1;\n\t\tres += z * 0x10e1b3be415a0000; // add y^02 * (20! / 02!)\n\t\tz = (z * y) / FIXED_1;\n\t\tres += z * 0x05a0913f6b1e0000; // add y^03 * (20! / 03!)\n\t\tz = (z * y) / FIXED_1;\n\t\tres += z * 0x0168244fdac78000; // add y^04 * (20! / 04!)\n\t\tz = (z * y) / FIXED_1;\n\t\tres += z * 0x004807432bc18000; // add y^05 * (20! / 05!)\n\t\tz = (z * y) / FIXED_1;\n\t\tres += z * 0x000c0135dca04000; // add y^06 * (20! / 06!)\n\t\tz = (z * y) / FIXED_1;\n\t\tres += z * 0x0001b707b1cdc000; // add y^07 * (20! / 07!)\n\t\tz = (z * y) / FIXED_1;\n\t\tres += z * 0x000036e0f639b800; // add y^08 * (20! / 08!)\n\t\tz = (z * y) / FIXED_1;\n\t\tres += z * 0x00000618fee9f800; // add y^09 * (20! / 09!)\n\t\tz = (z * y) / FIXED_1;\n\t\tres += z * 0x0000009c197dcc00; // add y^10 * (20! / 10!)\n\t\tz = (z * y) / FIXED_1;\n\t\tres += z * 0x0000000e30dce400; // add y^11 * (20! / 11!)\n\t\tz = (z * y) / FIXED_1;\n\t\tres += z * 0x000000012ebd1300; // add y^12 * (20! / 12!)\n\t\tz = (z * y) / FIXED_1;\n\t\tres += z * 0x0000000017499f00; // add y^13 * (20! / 13!)\n\t\tz = (z * y) / FIXED_1;\n\t\tres += z * 0x0000000001a9d480; // add y^14 * (20! / 14!)\n\t\tz = (z * y) / FIXED_1;\n\t\tres += z * 0x00000000001c6380; // add y^15 * (20! / 15!)\n\t\tz = (z * y) / FIXED_1;\n\t\tres += z * 0x000000000001c638; // add y^16 * (20! / 16!)\n\t\tz = (z * y) / FIXED_1;\n\t\tres += z * 0x0000000000001ab8; // add y^17 * (20! / 17!)\n\t\tz = (z * y) / FIXED_1;\n\t\tres += z * 0x000000000000017c; // add y^18 * (20! / 18!)\n\t\tz = (z * y) / FIXED_1;\n\t\tres += z * 0x0000000000000014; // add y^19 * (20! / 19!)\n\t\tz = (z * y) / FIXED_1;\n\t\tres += z * 0x0000000000000001; // add y^20 * (20! / 20!)\n\t\tres = res / 0x21c3677c82b40000 + y + FIXED_1; // divide by 20! and then add y^1 / 1! + y^0 / 0!\n\n\t\tif ((x & 0x010000000000000000000000000000000) != 0) res = (res * 0x1c3d6a24ed82218787d624d3e5eba95f9) / 0x18ebef9eac820ae8682b9793ac6d1e776; // multiply by e^2^(-3)\n\t\tif ((x & 0x020000000000000000000000000000000) != 0) res = (res * 0x18ebef9eac820ae8682b9793ac6d1e778) / 0x1368b2fc6f9609fe7aceb46aa619baed4; // multiply by e^2^(-2)\n\t\tif ((x & 0x040000000000000000000000000000000) != 0) res = (res * 0x1368b2fc6f9609fe7aceb46aa619baed5) / 0x0bc5ab1b16779be3575bd8f0520a9f21f; // multiply by e^2^(-1)\n\t\tif ((x & 0x080000000000000000000000000000000) != 0) res = (res * 0x0bc5ab1b16779be3575bd8f0520a9f21e) / 0x0454aaa8efe072e7f6ddbab84b40a55c9; // multiply by e^2^(+0)\n\t\tif ((x & 0x100000000000000000000000000000000) != 0) res = (res * 0x0454aaa8efe072e7f6ddbab84b40a55c5) / 0x00960aadc109e7a3bf4578099615711ea; // multiply by e^2^(+1)\n\t\tif ((x & 0x200000000000000000000000000000000) != 0) res = (res * 0x00960aadc109e7a3bf4578099615711d7) / 0x0002bf84208204f5977f9a8cf01fdce3d; // multiply by e^2^(+2)\n\t\tif ((x & 0x400000000000000000000000000000000) != 0) res = (res * 0x0002bf84208204f5977f9a8cf01fdc307) / 0x0000003c6ab775dd0b95b4cbee7e65d11; // multiply by e^2^(+3)\n\n\t\treturn res;\n\t}\n\n\t/**\n\t * @dev computes W(x / FIXED_1) / (x / FIXED_1) * FIXED_1\n\t */\n\tfunction lowerStake(uint256 _x) internal view returns (uint256) {\n\t\tif (_x <= LAMBERT_CONV_RADIUS) return lambertPos1(_x);\n\t\tif (_x <= LAMBERT_POS2_MAXVAL) return lambertPos2(_x);\n\t\tif (_x <= LAMBERT_POS3_MAXVAL) return lambertPos3(_x);\n\t\trequire(false);\n\t}\n\n\t/**\n\t * @dev computes W(-x / FIXED_1) / (-x / FIXED_1) * FIXED_1\n\t */\n\tfunction higherStake(uint256 _x) internal pure returns (uint256) {\n\t\tif (_x <= LAMBERT_CONV_RADIUS) return lambertNeg1(_x);\n\t\treturn (FIXED_1 * FIXED_1) / _x;\n\t}\n\n\t/**\n\t * @dev computes W(x / FIXED_1) / (x / FIXED_1) * FIXED_1\n\t * input range: 1 <= x <= 1 / e * FIXED_1\n\t * auto-generated via 'PrintFunctionLambertPos1.py'\n\t */\n\tfunction lambertPos1(uint256 _x) internal pure returns (uint256) {\n\t\tuint256 xi = _x;\n\t\tuint256 res = (FIXED_1 - _x) * 0xde1bc4d19efcac82445da75b00000000; // x^(1-1) * (34! * 1^(1-1) / 1!) - x^(2-1) * (34! * 2^(2-1) / 2!)\n\n\t\txi = (xi * _x) / FIXED_1;\n\t\tres += xi * 0x00000000014d29a73a6e7b02c3668c7b0880000000; // add x^(03-1) * (34! * 03^(03-1) / 03!)\n\t\txi = (xi * _x) / FIXED_1;\n\t\tres -= xi * 0x0000000002504a0cd9a7f7215b60f9be4800000000; // sub x^(04-1) * (34! * 04^(04-1) / 04!)\n\t\txi = (xi * _x) / FIXED_1;\n\t\tres += xi * 0x000000000484d0a1191c0ead267967c7a4a0000000; // add x^(05-1) * (34! * 05^(05-1) / 05!)\n\t\txi = (xi * _x) / FIXED_1;\n\t\tres -= xi * 0x00000000095ec580d7e8427a4baf26a90a00000000; // sub x^(06-1) * (34! * 06^(06-1) / 06!)\n\t\txi = (xi * _x) / FIXED_1;\n\t\tres += xi * 0x000000001440b0be1615a47dba6e5b3b1f10000000; // add x^(07-1) * (34! * 07^(07-1) / 07!)\n\t\txi = (xi * _x) / FIXED_1;\n\t\tres -= xi * 0x000000002d207601f46a99b4112418400000000000; // sub x^(08-1) * (34! * 08^(08-1) / 08!)\n\t\txi = (xi * _x) / FIXED_1;\n\t\tres += xi * 0x0000000066ebaac4c37c622dd8288a7eb1b2000000; // add x^(09-1) * (34! * 09^(09-1) / 09!)\n\t\txi = (xi * _x) / FIXED_1;\n\t\tres -= xi * 0x00000000ef17240135f7dbd43a1ba10cf200000000; // sub x^(10-1) * (34! * 10^(10-1) / 10!)\n\t\txi = (xi * _x) / FIXED_1;\n\t\tres += xi * 0x0000000233c33c676a5eb2416094a87b3657000000; // add x^(11-1) * (34! * 11^(11-1) / 11!)\n\t\txi = (xi * _x) / FIXED_1;\n\t\tres -= xi * 0x0000000541cde48bc0254bed49a9f8700000000000; // sub x^(12-1) * (34! * 12^(12-1) / 12!)\n\t\txi = (xi * _x) / FIXED_1;\n\t\tres += xi * 0x0000000cae1fad2cdd4d4cb8d73abca0d19a400000; // add x^(13-1) * (34! * 13^(13-1) / 13!)\n\t\txi = (xi * _x) / FIXED_1;\n\t\tres -= xi * 0x0000001edb2aa2f760d15c41ceedba956400000000; // sub x^(14-1) * (34! * 14^(14-1) / 14!)\n\t\txi = (xi * _x) / FIXED_1;\n\t\tres += xi * 0x0000004ba8d20d2dabd386c9529659841a2e200000; // add x^(15-1) * (34! * 15^(15-1) / 15!)\n\t\txi = (xi * _x) / FIXED_1;\n\t\tres -= xi * 0x000000bac08546b867cdaa20000000000000000000; // sub x^(16-1) * (34! * 16^(16-1) / 16!)\n\t\txi = (xi * _x) / FIXED_1;\n\t\tres += xi * 0x000001cfa8e70c03625b9db76c8ebf5bbf24820000; // add x^(17-1) * (34! * 17^(17-1) / 17!)\n\t\txi = (xi * _x) / FIXED_1;\n\t\tres -= xi * 0x000004851d99f82060df265f3309b26f8200000000; // sub x^(18-1) * (34! * 18^(18-1) / 18!)\n\t\txi = (xi * _x) / FIXED_1;\n\t\tres += xi * 0x00000b550d19b129d270c44f6f55f027723cbb0000; // add x^(19-1) * (34! * 19^(19-1) / 19!)\n\t\txi = (xi * _x) / FIXED_1;\n\t\tres -= xi * 0x00001c877dadc761dc272deb65d4b0000000000000; // sub x^(20-1) * (34! * 20^(20-1) / 20!)\n\t\txi = (xi * _x) / FIXED_1;\n\t\tres += xi * 0x000048178ece97479f33a77f2ad22a81b64406c000; // add x^(21-1) * (34! * 21^(21-1) / 21!)\n\t\txi = (xi * _x) / FIXED_1;\n\t\tres -= xi * 0x0000b6ca8268b9d810fedf6695ef2f8a6c00000000; // sub x^(22-1) * (34! * 22^(22-1) / 22!)\n\t\txi = (xi * _x) / FIXED_1;\n\t\tres += xi * 0x0001d0e76631a5b05d007b8cb72a7c7f11ec36e000; // add x^(23-1) * (34! * 23^(23-1) / 23!)\n\t\txi = (xi * _x) / FIXED_1;\n\t\tres -= xi * 0x0004a1c37bd9f85fd9c6c780000000000000000000; // sub x^(24-1) * (34! * 24^(24-1) / 24!)\n\t\txi = (xi * _x) / FIXED_1;\n\t\tres += xi * 0x000bd8369f1b702bf491e2ebfcee08250313b65400; // add x^(25-1) * (34! * 25^(25-1) / 25!)\n\t\txi = (xi * _x) / FIXED_1;\n\t\tres -= xi * 0x001e5c7c32a9f6c70ab2cb59d9225764d400000000; // sub x^(26-1) * (34! * 26^(26-1) / 26!)\n\t\txi = (xi * _x) / FIXED_1;\n\t\tres += xi * 0x004dff5820e165e910f95120a708e742496221e600; // add x^(27-1) * (34! * 27^(27-1) / 27!)\n\t\txi = (xi * _x) / FIXED_1;\n\t\tres -= xi * 0x00c8c8f66db1fced378ee50e536000000000000000; // sub x^(28-1) * (34! * 28^(28-1) / 28!)\n\t\txi = (xi * _x) / FIXED_1;\n\t\tres += xi * 0x0205db8dffff45bfa2938f128f599dbf16eb11d880; // add x^(29-1) * (34! * 29^(29-1) / 29!)\n\t\txi = (xi * _x) / FIXED_1;\n\t\tres -= xi * 0x053a044ebd984351493e1786af38d39a0800000000; // sub x^(30-1) * (34! * 30^(30-1) / 30!)\n\t\txi = (xi * _x) / FIXED_1;\n\t\tres += xi * 0x0d86dae2a4cc0f47633a544479735869b487b59c40; // add x^(31-1) * (34! * 31^(31-1) / 31!)\n\t\txi = (xi * _x) / FIXED_1;\n\t\tres -= xi * 0x231000000000000000000000000000000000000000; // sub x^(32-1) * (34! * 32^(32-1) / 32!)\n\t\txi = (xi * _x) / FIXED_1;\n\t\tres += xi * 0x5b0485a76f6646c2039db1507cdd51b08649680822; // add x^(33-1) * (34! * 33^(33-1) / 33!)\n\t\txi = (xi * _x) / FIXED_1;\n\t\tres -= xi * 0xec983c46c49545bc17efa6b5b0055e242200000000; // sub x^(34-1) * (34! * 34^(34-1) / 34!)\n\n\t\treturn res / 0xde1bc4d19efcac82445da75b00000000; // divide by 34!\n\t}\n\n\t/**\n\t * @dev computes W(x / FIXED_1) / (x / FIXED_1) * FIXED_1\n\t * input range: LAMBERT_CONV_RADIUS + 1 <= x <= LAMBERT_POS2_MAXVAL\n\t */\n\tfunction lambertPos2(uint256 _x) internal view returns (uint256) {\n\t\tuint256 x = _x - LAMBERT_CONV_RADIUS - 1;\n\t\tuint256 i = x / LAMBERT_POS2_SAMPLE;\n\t\tuint256 a = LAMBERT_POS2_SAMPLE * i;\n\t\tuint256 b = LAMBERT_POS2_SAMPLE * (i + 1);\n\t\tuint256 c = lambertArray[i];\n\t\tuint256 d = lambertArray[i + 1];\n\t\treturn (c * (b - x) + d * (x - a)) / LAMBERT_POS2_SAMPLE;\n\t}\n\n\t/**\n\t * @dev computes W(x / FIXED_1) / (x / FIXED_1) * FIXED_1\n\t * input range: LAMBERT_POS2_MAXVAL + 1 <= x <= LAMBERT_POS3_MAXVAL\n\t */\n\tfunction lambertPos3(uint256 _x) internal pure returns (uint256) {\n\t\tuint256 l1 = _x < OPT_LOG_MAX_VAL ? optimalLog(_x) : generalLog(_x);\n\t\tuint256 l2 = l1 < OPT_LOG_MAX_VAL ? optimalLog(l1) : generalLog(l1);\n\t\treturn ((l1 - l2 + (l2 * FIXED_1) / l1) * FIXED_1) / _x;\n\t}\n\n\t/**\n\t * @dev computes W(-x / FIXED_1) / (-x / FIXED_1) * FIXED_1\n\t * input range: 1 <= x <= 1 / e * FIXED_1\n\t * auto-generated via 'PrintFunctionLambertNeg1.py'\n\t */\n\tfunction lambertNeg1(uint256 _x) internal pure returns (uint256) {\n\t\tuint256 xi = _x;\n\t\tuint256 res = 0;\n\n\t\txi = (xi * _x) / FIXED_1;\n\t\tres += xi * 0x00000000014d29a73a6e7b02c3668c7b0880000000; // add x^(03-1) * (34! * 03^(03-1) / 03!)\n\t\txi = (xi * _x) / FIXED_1;\n\t\tres += xi * 0x0000000002504a0cd9a7f7215b60f9be4800000000; // add x^(04-1) * (34! * 04^(04-1) / 04!)\n\t\txi = (xi * _x) / FIXED_1;\n\t\tres += xi * 0x000000000484d0a1191c0ead267967c7a4a0000000; // add x^(05-1) * (34! * 05^(05-1) / 05!)\n\t\txi = (xi * _x) / FIXED_1;\n\t\tres += xi * 0x00000000095ec580d7e8427a4baf26a90a00000000; // add x^(06-1) * (34! * 06^(06-1) / 06!)\n\t\txi = (xi * _x) / FIXED_1;\n\t\tres += xi * 0x000000001440b0be1615a47dba6e5b3b1f10000000; // add x^(07-1) * (34! * 07^(07-1) / 07!)\n\t\txi = (xi * _x) / FIXED_1;\n\t\tres += xi * 0x000000002d207601f46a99b4112418400000000000; // add x^(08-1) * (34! * 08^(08-1) / 08!)\n\t\txi = (xi * _x) / FIXED_1;\n\t\tres += xi * 0x0000000066ebaac4c37c622dd8288a7eb1b2000000; // add x^(09-1) * (34! * 09^(09-1) / 09!)\n\t\txi = (xi * _x) / FIXED_1;\n\t\tres += xi * 0x00000000ef17240135f7dbd43a1ba10cf200000000; // add x^(10-1) * (34! * 10^(10-1) / 10!)\n\t\txi = (xi * _x) / FIXED_1;\n\t\tres += xi * 0x0000000233c33c676a5eb2416094a87b3657000000; // add x^(11-1) * (34! * 11^(11-1) / 11!)\n\t\txi = (xi * _x) / FIXED_1;\n\t\tres += xi * 0x0000000541cde48bc0254bed49a9f8700000000000; // add x^(12-1) * (34! * 12^(12-1) / 12!)\n\t\txi = (xi * _x) / FIXED_1;\n\t\tres += xi * 0x0000000cae1fad2cdd4d4cb8d73abca0d19a400000; // add x^(13-1) * (34! * 13^(13-1) / 13!)\n\t\txi = (xi * _x) / FIXED_1;\n\t\tres += xi * 0x0000001edb2aa2f760d15c41ceedba956400000000; // add x^(14-1) * (34! * 14^(14-1) / 14!)\n\t\txi = (xi * _x) / FIXED_1;\n\t\tres += xi * 0x0000004ba8d20d2dabd386c9529659841a2e200000; // add x^(15-1) * (34! * 15^(15-1) / 15!)\n\t\txi = (xi * _x) / FIXED_1;\n\t\tres += xi * 0x000000bac08546b867cdaa20000000000000000000; // add x^(16-1) * (34! * 16^(16-1) / 16!)\n\t\txi = (xi * _x) / FIXED_1;\n\t\tres += xi * 0x000001cfa8e70c03625b9db76c8ebf5bbf24820000; // add x^(17-1) * (34! * 17^(17-1) / 17!)\n\t\txi = (xi * _x) / FIXED_1;\n\t\tres += xi * 0x000004851d99f82060df265f3309b26f8200000000; // add x^(18-1) * (34! * 18^(18-1) / 18!)\n\t\txi = (xi * _x) / FIXED_1;\n\t\tres += xi * 0x00000b550d19b129d270c44f6f55f027723cbb0000; // add x^(19-1) * (34! * 19^(19-1) / 19!)\n\t\txi = (xi * _x) / FIXED_1;\n\t\tres += xi * 0x00001c877dadc761dc272deb65d4b0000000000000; // add x^(20-1) * (34! * 20^(20-1) / 20!)\n\t\txi = (xi * _x) / FIXED_1;\n\t\tres += xi * 0x000048178ece97479f33a77f2ad22a81b64406c000; // add x^(21-1) * (34! * 21^(21-1) / 21!)\n\t\txi = (xi * _x) / FIXED_1;\n\t\tres += xi * 0x0000b6ca8268b9d810fedf6695ef2f8a6c00000000; // add x^(22-1) * (34! * 22^(22-1) / 22!)\n\t\txi = (xi * _x) / FIXED_1;\n\t\tres += xi * 0x0001d0e76631a5b05d007b8cb72a7c7f11ec36e000; // add x^(23-1) * (34! * 23^(23-1) / 23!)\n\t\txi = (xi * _x) / FIXED_1;\n\t\tres += xi * 0x0004a1c37bd9f85fd9c6c780000000000000000000; // add x^(24-1) * (34! * 24^(24-1) / 24!)\n\t\txi = (xi * _x) / FIXED_1;\n\t\tres += xi * 0x000bd8369f1b702bf491e2ebfcee08250313b65400; // add x^(25-1) * (34! * 25^(25-1) / 25!)\n\t\txi = (xi * _x) / FIXED_1;\n\t\tres += xi * 0x001e5c7c32a9f6c70ab2cb59d9225764d400000000; // add x^(26-1) * (34! * 26^(26-1) / 26!)\n\t\txi = (xi * _x) / FIXED_1;\n\t\tres += xi * 0x004dff5820e165e910f95120a708e742496221e600; // add x^(27-1) * (34! * 27^(27-1) / 27!)\n\t\txi = (xi * _x) / FIXED_1;\n\t\tres += xi * 0x00c8c8f66db1fced378ee50e536000000000000000; // add x^(28-1) * (34! * 28^(28-1) / 28!)\n\t\txi = (xi * _x) / FIXED_1;\n\t\tres += xi * 0x0205db8dffff45bfa2938f128f599dbf16eb11d880; // add x^(29-1) * (34! * 29^(29-1) / 29!)\n\t\txi = (xi * _x) / FIXED_1;\n\t\tres += xi * 0x053a044ebd984351493e1786af38d39a0800000000; // add x^(30-1) * (34! * 30^(30-1) / 30!)\n\t\txi = (xi * _x) / FIXED_1;\n\t\tres += xi * 0x0d86dae2a4cc0f47633a544479735869b487b59c40; // add x^(31-1) * (34! * 31^(31-1) / 31!)\n\t\txi = (xi * _x) / FIXED_1;\n\t\tres += xi * 0x231000000000000000000000000000000000000000; // add x^(32-1) * (34! * 32^(32-1) / 32!)\n\t\txi = (xi * _x) / FIXED_1;\n\t\tres += xi * 0x5b0485a76f6646c2039db1507cdd51b08649680822; // add x^(33-1) * (34! * 33^(33-1) / 33!)\n\t\txi = (xi * _x) / FIXED_1;\n\t\tres += xi * 0xec983c46c49545bc17efa6b5b0055e242200000000; // add x^(34-1) * (34! * 34^(34-1) / 34!)\n\n\t\treturn res / 0xde1bc4d19efcac82445da75b00000000 + _x + FIXED_1; // divide by 34! and then add x^(2-1) * (34! * 2^(2-1) / 2!) + x^(1-1) * (34! * 1^(1-1) / 1!)\n\t}\n\n\t/**\n\t * @dev computes the weights based on \"W(log(hi / lo) * tq / rp) * tq / rp\", where \"W\" is a variation of the Lambert W function.\n\t */\n\tfunction balancedWeightsByStake(\n\t\tuint256 _hi,\n\t\tuint256 _lo,\n\t\tuint256 _tq,\n\t\tuint256 _rp,\n\t\tbool _lowerStake\n\t) internal view returns (uint32, uint32) {\n\t\t(_tq, _rp) = safeFactors(_tq, _rp);\n\t\tuint256 f = _hi.mul(FIXED_1) / _lo;\n\t\tuint256 g = f < OPT_LOG_MAX_VAL ? optimalLog(f) : generalLog(f);\n\t\tuint256 x = g.mul(_tq) / _rp;\n\t\tuint256 y = _lowerStake ? lowerStake(x) : higherStake(x);\n\t\treturn normalizedWeights(y.mul(_tq), _rp.mul(FIXED_1));\n\t}\n\n\t/**\n\t * @dev reduces \"a\" and \"b\" while maintaining their ratio.\n\t */\n\tfunction safeFactors(uint256 _a, uint256 _b) internal pure returns (uint256, uint256) {\n\t\tif (_a <= FIXED_2 && _b <= FIXED_2) return (_a, _b);\n\t\tif (_a < FIXED_2) return ((_a * FIXED_2) / _b, FIXED_2);\n\t\tif (_b < FIXED_2) return (FIXED_2, (_b * FIXED_2) / _a);\n\t\tuint256 c = _a > _b ? _a : _b;\n\t\tuint256 n = floorLog2(c / FIXED_1);\n\t\treturn (_a >> n, _b >> n);\n\t}\n\n\t/**\n\t * @dev computes \"MAX_WEIGHT * a / (a + b)\" and \"MAX_WEIGHT * b / (a + b)\".\n\t */\n\tfunction normalizedWeights(uint256 _a, uint256 _b) internal pure returns (uint32, uint32) {\n\t\tif (_a <= _b) return accurateWeights(_a, _b);\n\t\t(uint32 y, uint32 x) = accurateWeights(_b, _a);\n\t\treturn (x, y);\n\t}\n\n\t/**\n\t * @dev computes \"MAX_WEIGHT * a / (a + b)\" and \"MAX_WEIGHT * b / (a + b)\", assuming that \"a <= b\".\n\t */\n\tfunction accurateWeights(uint256 _a, uint256 _b) internal pure returns (uint32, uint32) {\n\t\tif (_a > MAX_UNF_WEIGHT) {\n\t\t\tuint256 c = _a / (MAX_UNF_WEIGHT + 1) + 1;\n\t\t\t_a /= c;\n\t\t\t_b /= c;\n\t\t}\n\t\tuint256 x = roundDiv(_a * MAX_WEIGHT, _a.add(_b));\n\t\tuint256 y = MAX_WEIGHT - x;\n\t\treturn (uint32(x), uint32(y));\n\t}\n\n\t/**\n\t * @dev computes the nearest integer to a given quotient without overflowing or underflowing.\n\t */\n\tfunction roundDiv(uint256 _n, uint256 _d) internal pure returns (uint256) {\n\t\treturn _n / _d + (_n % _d) / (_d - _d / 2);\n\t}\n\n\t/**\n\t * @dev deprecated, backward compatibility\n\t */\n\tfunction calculatePurchaseReturn(\n\t\tuint256 _supply,\n\t\tuint256 _reserveBalance,\n\t\tuint32 _reserveWeight,\n\t\tuint256 _amount\n\t) public view returns (uint256) {\n\t\treturn purchaseTargetAmount(_supply, _reserveBalance, _reserveWeight, _amount);\n\t}\n\n\t/**\n\t * @dev deprecated, backward compatibility\n\t */\n\tfunction calculateSaleReturn(\n\t\tuint256 _supply,\n\t\tuint256 _reserveBalance,\n\t\tuint32 _reserveWeight,\n\t\tuint256 _amount\n\t) public view returns (uint256) {\n\t\treturn saleTargetAmount(_supply, _reserveBalance, _reserveWeight, _amount);\n\t}\n\n\t/**\n\t * @dev deprecated, backward compatibility\n\t */\n\tfunction calculateCrossReserveReturn(\n\t\tuint256 _sourceReserveBalance,\n\t\tuint32 _sourceReserveWeight,\n\t\tuint256 _targetReserveBalance,\n\t\tuint32 _targetReserveWeight,\n\t\tuint256 _amount\n\t) public view returns (uint256) {\n\t\treturn crossReserveTargetAmount(_sourceReserveBalance, _sourceReserveWeight, _targetReserveBalance, _targetReserveWeight, _amount);\n\t}\n\n\t/**\n\t * @dev deprecated, backward compatibility\n\t */\n\tfunction calculateCrossConnectorReturn(\n\t\tuint256 _sourceReserveBalance,\n\t\tuint32 _sourceReserveWeight,\n\t\tuint256 _targetReserveBalance,\n\t\tuint32 _targetReserveWeight,\n\t\tuint256 _amount\n\t) public view returns (uint256) {\n\t\treturn crossReserveTargetAmount(_sourceReserveBalance, _sourceReserveWeight, _targetReserveBalance, _targetReserveWeight, _amount);\n\t}\n\n\t/**\n\t * @dev deprecated, backward compatibility\n\t */\n\tfunction calculateFundCost(\n\t\tuint256 _supply,\n\t\tuint256 _reserveBalance,\n\t\tuint32 _reserveRatio,\n\t\tuint256 _amount\n\t) public view returns (uint256) {\n\t\treturn fundCost(_supply, _reserveBalance, _reserveRatio, _amount);\n\t}\n\n\t/**\n\t * @dev deprecated, backward compatibility\n\t */\n\tfunction calculateLiquidateReturn(\n\t\tuint256 _supply,\n\t\tuint256 _reserveBalance,\n\t\tuint32 _reserveRatio,\n\t\tuint256 _amount\n\t) public view returns (uint256) {\n\t\treturn liquidateReserveAmount(_supply, _reserveBalance, _reserveRatio, _amount);\n\t}\n\n\t/**\n\t * @dev deprecated, backward compatibility\n\t */\n\tfunction purchaseRate(\n\t\tuint256 _supply,\n\t\tuint256 _reserveBalance,\n\t\tuint32 _reserveWeight,\n\t\tuint256 _amount\n\t) public view returns (uint256) {\n\t\treturn purchaseTargetAmount(_supply, _reserveBalance, _reserveWeight, _amount);\n\t}\n\n\t/**\n\t * @dev deprecated, backward compatibility\n\t */\n\tfunction saleRate(\n\t\tuint256 _supply,\n\t\tuint256 _reserveBalance,\n\t\tuint32 _reserveWeight,\n\t\tuint256 _amount\n\t) public view returns (uint256) {\n\t\treturn saleTargetAmount(_supply, _reserveBalance, _reserveWeight, _amount);\n\t}\n\n\t/**\n\t * @dev deprecated, backward compatibility\n\t */\n\tfunction crossReserveRate(\n\t\tuint256 _sourceReserveBalance,\n\t\tuint32 _sourceReserveWeight,\n\t\tuint256 _targetReserveBalance,\n\t\tuint32 _targetReserveWeight,\n\t\tuint256 _amount\n\t) public view returns (uint256) {\n\t\treturn crossReserveTargetAmount(_sourceReserveBalance, _sourceReserveWeight, _targetReserveBalance, _targetReserveWeight, _amount);\n\t}\n\n\t/**\n\t * @dev deprecated, backward compatibility\n\t */\n\tfunction liquidateRate(\n\t\tuint256 _supply,\n\t\tuint256 _reserveBalance,\n\t\tuint32 _reserveRatio,\n\t\tuint256 _amount\n\t) public view returns (uint256) {\n\t\treturn liquidateReserveAmount(_supply, _reserveBalance, _reserveRatio, _amount);\n\t}\n}\n" + }, + "solidity/contracts/helpers/TestSovrynSwapFormula.sol": { + "content": "pragma solidity 0.4.26;\nimport \"../converter/SovrynSwapFormula.sol\";\n\n/*\n SovrynSwapFormula test helper that exposes some SovrynSwapFormula functions\n*/\ncontract TestSovrynSwapFormula is SovrynSwapFormula {\n\tfunction powerTest(\n\t\tuint256 _baseN,\n\t\tuint256 _baseD,\n\t\tuint32 _expN,\n\t\tuint32 _expD\n\t) external view returns (uint256, uint8) {\n\t\treturn super.power(_baseN, _baseD, _expN, _expD);\n\t}\n\n\tfunction generalLogTest(uint256 x) external pure returns (uint256) {\n\t\treturn super.generalLog(x);\n\t}\n\n\tfunction floorLog2Test(uint256 _n) external pure returns (uint8) {\n\t\treturn super.floorLog2(_n);\n\t}\n\n\tfunction findPositionInMaxExpArrayTest(uint256 _x) external view returns (uint8) {\n\t\treturn super.findPositionInMaxExpArray(_x);\n\t}\n\n\tfunction generalExpTest(uint256 _x, uint8 _precision) external pure returns (uint256) {\n\t\treturn super.generalExp(_x, _precision);\n\t}\n\n\tfunction optimalLogTest(uint256 x) external pure returns (uint256) {\n\t\treturn super.optimalLog(x);\n\t}\n\n\tfunction optimalExpTest(uint256 x) external pure returns (uint256) {\n\t\treturn super.optimalExp(x);\n\t}\n\n\tfunction normalizedWeightsTest(uint256 _a, uint256 _b) external pure returns (uint32, uint32) {\n\t\treturn super.normalizedWeights(_a, _b);\n\t}\n\n\tfunction accurateWeightsTest(uint256 _a, uint256 _b) external pure returns (uint32, uint32) {\n\t\treturn super.accurateWeights(_a, _b);\n\t}\n\n\tfunction roundDivTest(uint256 _n, uint256 _d) external pure returns (uint256) {\n\t\treturn super.roundDiv(_n, _d);\n\t}\n}\n" + }, + "solidity/contracts/helpers/TestTokens.sol": { + "content": "pragma solidity 0.4.26;\nimport \"../utility/Utils.sol\";\nimport \"../utility/SafeMath.sol\";\n\n/**\n * ERC20 Non-Standard Token implementation\n */\ncontract NonStandardToken is Utils {\n\tusing SafeMath for uint256;\n\n\tuint256 public totalSupply;\n\tmapping(address => uint256) public balanceOf;\n\tmapping(address => mapping(address => uint256)) public allowance;\n\n\tevent Transfer(address indexed _from, address indexed _to, uint256 _value);\n\tevent Approval(address indexed _owner, address indexed _spender, uint256 _value);\n\n\t/**\n\t * @dev initializes a new NonStandardToken instance\n\t *\n\t * @param _supply initial supply\n\t */\n\tconstructor(uint256 _supply) internal {\n\t\ttotalSupply = _supply;\n\t\tbalanceOf[msg.sender] = _supply;\n\t}\n\n\t/**\n\t * @dev send coins\n\t * throws on any error rather then return a false flag to minimize user errors\n\t *\n\t * @param _to target address\n\t * @param _value transfer amount\n\t *\n\t * @return true if the transfer was successful, false if it wasn't\n\t */\n\tfunction _transfer(address _to, uint256 _value) internal validAddress(_to) {\n\t\tbalanceOf[msg.sender] = balanceOf[msg.sender].sub(_value);\n\t\tbalanceOf[_to] = balanceOf[_to].add(_value);\n\t\temit Transfer(msg.sender, _to, _value);\n\t}\n\n\t/**\n\t * @dev an account/contract attempts to get the coins\n\t * throws on any error rather then return a false flag to minimize user errors\n\t *\n\t * @param _from source address\n\t * @param _to target address\n\t * @param _value transfer amount\n\t *\n\t * @return true if the transfer was successful, false if it wasn't\n\t */\n\tfunction _transferFrom(\n\t\taddress _from,\n\t\taddress _to,\n\t\tuint256 _value\n\t) internal validAddress(_from) validAddress(_to) {\n\t\tallowance[_from][msg.sender] = allowance[_from][msg.sender].sub(_value);\n\t\tbalanceOf[_from] = balanceOf[_from].sub(_value);\n\t\tbalanceOf[_to] = balanceOf[_to].add(_value);\n\t\temit Transfer(_from, _to, _value);\n\t}\n\n\t/**\n\t * @dev allow another account/contract to spend some tokens on your behalf\n\t * throws on any error rather then return a false flag to minimize user errors\n\t *\n\t * also, to minimize the risk of the approve/transferFrom attack vector\n\t * (see https://docs.google.com/document/d/1YLPtQxZu1UAvO9cZ1O2RPXBbT0mooh4DYKjA_jp-RLM/), approve has to be called twice\n\t * in 2 separate transactions - once to change the allowance to 0 and secondly to change it to the new allowance value\n\t *\n\t * @param _spender approved address\n\t * @param _value allowance amount\n\t *\n\t * @return true if the approval was successful, false if it wasn't\n\t */\n\tfunction _approve(address _spender, uint256 _value) internal validAddress(_spender) {\n\t\t// if the allowance isn't 0, it can only be updated to 0 to prevent an allowance change immediately after withdrawal\n\t\trequire(_value == 0 || allowance[msg.sender][_spender] == 0);\n\n\t\tallowance[msg.sender][_spender] = _value;\n\t\temit Approval(msg.sender, _spender, _value);\n\t}\n}\n\ncontract NonStandardTokenDetailed is NonStandardToken {\n\tstring public name;\n\tstring public symbol;\n\tuint8 public decimals;\n\n\t/**\n\t * @dev initializes a new NonStandardToken instance\n\t *\n\t * @param _name token name\n\t * @param _symbol token symbol\n\t * @param _decimals decimal points\n\t * @param _supply initial supply\n\t */\n\tconstructor(\n\t\tstring _name,\n\t\tstring _symbol,\n\t\tuint8 _decimals,\n\t\tuint256 _supply\n\t) internal NonStandardToken(_supply) {\n\t\tname = _name;\n\t\tsymbol = _symbol;\n\t\tdecimals = _decimals;\n\t}\n}\n\ncontract TestNonStandardToken is NonStandardTokenDetailed {\n\tbool public ok;\n\n\tconstructor(\n\t\tstring _name,\n\t\tstring _symbol,\n\t\tuint8 _decimals,\n\t\tuint256 _supply\n\t) public NonStandardTokenDetailed(_name, _symbol, _decimals, _supply) {\n\t\tset(true);\n\t}\n\n\tfunction set(bool _ok) public {\n\t\tok = _ok;\n\t}\n\n\tfunction approve(address _spender, uint256 _value) public {\n\t\t_approve(_spender, _value);\n\t\trequire(ok);\n\t}\n\n\tfunction transfer(address _to, uint256 _value) public {\n\t\t_transfer(_to, _value);\n\t\trequire(ok);\n\t}\n\n\tfunction transferFrom(\n\t\taddress _from,\n\t\taddress _to,\n\t\tuint256 _value\n\t) public {\n\t\t_transferFrom(_from, _to, _value);\n\t\trequire(ok);\n\t}\n}\n\ncontract TestNonStandardTokenWithoutDecimals is NonStandardToken {\n\tstring public name;\n\tstring public symbol;\n\n\tconstructor(\n\t\tstring _name,\n\t\tstring _symbol,\n\t\tuint256 _supply\n\t) public NonStandardToken(_supply) {\n\t\tname = _name;\n\t\tsymbol = _symbol;\n\t}\n\n\tfunction approve(address _spender, uint256 _value) public {\n\t\t_approve(_spender, _value);\n\t}\n\n\tfunction transfer(address _to, uint256 _value) public {\n\t\t_transfer(_to, _value);\n\t}\n\n\tfunction transferFrom(\n\t\taddress _from,\n\t\taddress _to,\n\t\tuint256 _value\n\t) public {\n\t\t_transferFrom(_from, _to, _value);\n\t}\n}\n\ncontract TestStandardToken is NonStandardTokenDetailed {\n\tbool public ok;\n\tbool public ret;\n\n\tconstructor(\n\t\tstring _name,\n\t\tstring _symbol,\n\t\tuint8 _decimals,\n\t\tuint256 _supply\n\t) public NonStandardTokenDetailed(_name, _symbol, _decimals, _supply) {\n\t\tset(true, true);\n\t}\n\n\tfunction set(bool _ok, bool _ret) public {\n\t\tok = _ok;\n\t\tret = _ret;\n\t}\n\n\tfunction approve(address _spender, uint256 _value) public returns (bool) {\n\t\t_approve(_spender, _value);\n\t\trequire(ok);\n\t\treturn ret;\n\t}\n\n\tfunction transfer(address _to, uint256 _value) public returns (bool) {\n\t\t_transfer(_to, _value);\n\t\trequire(ok);\n\t\treturn ret;\n\t}\n\n\tfunction transferFrom(\n\t\taddress _from,\n\t\taddress _to,\n\t\tuint256 _value\n\t) public returns (bool) {\n\t\t_transferFrom(_from, _to, _value);\n\t\trequire(ok);\n\t\treturn ret;\n\t}\n}\n" + }, + "solidity/contracts/helpers/TestSafeMath.sol": { + "content": "pragma solidity 0.4.26;\nimport \"../utility/SafeMath.sol\";\n\n/*\n Utils test helper that exposes the safe math functions\n*/\ncontract TestSafeMath {\n\tusing SafeMath for uint256;\n\n\tfunction testSafeAdd(uint256 _x, uint256 _y) public pure returns (uint256) {\n\t\treturn _x.add(_y);\n\t}\n\n\tfunction testSafeSub(uint256 _x, uint256 _y) public pure returns (uint256) {\n\t\treturn _x.sub(_y);\n\t}\n\n\tfunction testSafeMul(uint256 _x, uint256 _y) public pure returns (uint256) {\n\t\treturn _x.mul(_y);\n\t}\n\n\tfunction testSafeDiv(uint256 _x, uint256 _y) public pure returns (uint256) {\n\t\treturn _x.div(_y);\n\t}\n}\n" + }, + "solidity/contracts/utility/MocBTCToBTCOracle.sol": { + "content": "pragma solidity 0.4.26;\n\nimport \"./interfaces/IConsumerPriceOracle.sol\";\n\n/**\n * @dev Provides the trivial ETH/ETH rate to be used with other TKN/ETH rates\n */\ncontract MocBTCToBTCOracle is IConsumerPriceOracle {\n\tint256 private constant BTC_RATE = 1;\n\n\t/**\n\t * @dev returns the trivial ETH/ETH rate.\n\t *\n\t * @return always returns the trivial rate of 1\n\t */\n\tfunction latestAnswer() external view returns (int256) {\n\t\treturn BTC_RATE;\n\t}\n\n\t/**\n\t * @dev returns the trivial ETH/ETH update time.\n\t *\n\t * @return always returns current block's timestamp\n\t */\n\tfunction latestTimestamp() external view returns (uint256) {\n\t\treturn now;\n\t}\n}\n" + }, + "solidity/contracts/utility/ChainlinkUSDToBTCOracle.sol": { + "content": "pragma solidity 0.4.26;\n\nimport \"./interfaces/IConsumerPriceOracle.sol\";\n\n/**\n * @dev Provides the USD/BTC rate\n */\ncontract ChainlinkUSDToBTCOracle is IConsumerPriceOracle {\n\tint256 private constant USD_RATE = 10000;\n\n\t/**\n\t * @dev returns the USD/BTC rate.\n\t *\n\t * @return always returns the rate of 10000\n\t */\n\tfunction latestAnswer() external view returns (int256) {\n\t\treturn USD_RATE;\n\t}\n\n\t/**\n\t * @dev returns the USD/BTC update time.\n\t *\n\t * @return always returns current block's timestamp\n\t */\n\tfunction latestTimestamp() external view returns (uint256) {\n\t\treturn now;\n\t}\n}\n" + }, + "solidity/contracts/utility/ChainlinkETHToETHOracle.sol": { + "content": "pragma solidity 0.4.26;\n\nimport \"./interfaces/IConsumerPriceOracle.sol\";\n\n/**\n * @dev Provides the trivial ETH/ETH rate to be used with other TKN/ETH rates\n */\ncontract ChainlinkETHToETHOracle is IConsumerPriceOracle {\n\tint256 private constant ETH_RATE = 1;\n\n\t/**\n\t * @dev returns the trivial ETH/ETH rate.\n\t *\n\t * @return always returns the trivial rate of 1\n\t */\n\tfunction latestAnswer() external view returns (int256) {\n\t\treturn ETH_RATE;\n\t}\n\n\t/**\n\t * @dev returns the trivial ETH/ETH update time.\n\t *\n\t * @return always returns current block's timestamp\n\t */\n\tfunction latestTimestamp() external view returns (uint256) {\n\t\treturn now;\n\t}\n}\n" + }, + "solidity/contracts/utility/ChainlinkBTCToUSDOracle.sol": { + "content": "pragma solidity 0.4.26;\n\nimport \"./interfaces/IConsumerPriceOracle.sol\";\n\n/**\n * @dev Provides the BTC/USD rate\n */\ncontract ChainlinkBTCToUSDOracle is IConsumerPriceOracle {\n\tint256 private constant BTC_RATE = 10000;\n\n\t/**\n\t * @dev returns the BTC/USD rate.\n\t *\n\t * @return always returns the rate of 1\n\t */\n\tfunction latestAnswer() external view returns (int256) {\n\t\treturn BTC_RATE;\n\t}\n\n\t/**\n\t * @dev returns the BTC/USD update time.\n\t *\n\t * @return always returns current block's timestamp\n\t */\n\tfunction latestTimestamp() external view returns (uint256) {\n\t\treturn now;\n\t}\n}\n" + }, + "solidity/contracts/helpers/TestChainlinkPriceOracle.sol": { + "content": "pragma solidity 0.4.26;\nimport \"../utility/interfaces/IConsumerPriceOracle.sol\";\n\n/*\n Chainlink price oracle mock\n*/\ncontract TestChainlinkPriceOracle is IConsumerPriceOracle {\n\tint256 private answer;\n\tuint256 private timestamp;\n\n\tfunction setAnswer(int256 _answer) public {\n\t\tanswer = _answer;\n\t}\n\n\tfunction setTimestamp(uint256 _timestamp) public {\n\t\ttimestamp = _timestamp;\n\t}\n\n\tfunction latestAnswer() external view returns (int256) {\n\t\treturn answer;\n\t}\n\n\tfunction latestTimestamp() external view returns (uint256) {\n\t\treturn timestamp;\n\t}\n}\n" + }, + "solidity/contracts/helpers/TestSovrynSwapNetwork.sol": { + "content": "pragma solidity 0.4.26;\nimport \"../SovrynSwapNetwork.sol\";\n\ncontract OldConverter {\n\tuint256 private amount;\n\n\tconstructor(uint256 _amount) public {\n\t\tamount = _amount;\n\t}\n\n\tfunction getReturn(\n\t\tIERC20Token _sourceToken,\n\t\tIERC20Token _targetToken,\n\t\tuint256 _amount\n\t) external view returns (uint256) {\n\t\t_sourceToken;\n\t\t_targetToken;\n\t\t_amount;\n\t\treturn (amount);\n\t}\n}\n\ncontract NewConverter {\n\tuint256 private amount;\n\tuint256 private fee;\n\n\tconstructor(uint256 _amount, uint256 _fee) public {\n\t\tamount = _amount;\n\t\tfee = _fee;\n\t}\n\n\tfunction getReturn(\n\t\tIERC20Token _sourceToken,\n\t\tIERC20Token _targetToken,\n\t\tuint256 _amount\n\t) external view returns (uint256, uint256) {\n\t\t_sourceToken;\n\t\t_targetToken;\n\t\t_amount;\n\t\treturn (amount, fee);\n\t}\n}\n\ncontract ConverterV27OrLowerWithoutFallback {}\n\ncontract ConverterV27OrLowerWithFallback {\n\tfunction() external payable {}\n}\n\ncontract ConverterV28OrHigherWithoutFallback {\n\tfunction isV28OrHigher() public pure returns (bool) {\n\t\treturn true;\n\t}\n}\n\ncontract ConverterV28OrHigherWithFallback {\n\tfunction isV28OrHigher() public pure returns (bool) {\n\t\treturn true;\n\t}\n\n\tfunction() external payable {\n\t\trevert();\n\t}\n}\n\ncontract TestSovrynSwapNetwork is SovrynSwapNetwork {\n\tOldConverter private oldConverter;\n\tNewConverter private newConverter;\n\n\tconstructor(uint256 _amount, uint256 _fee) public SovrynSwapNetwork(IContractRegistry(address(1))) {\n\t\toldConverter = new OldConverter(_amount);\n\t\tnewConverter = new NewConverter(_amount, _fee);\n\t}\n\n\tfunction isV28OrHigherConverterExternal(IConverter _converter) external view returns (bool) {\n\t\treturn super.isV28OrHigherConverter(_converter);\n\t}\n\n\tfunction getReturnOld() external view returns (uint256, uint256) {\n\t\treturn getReturn(address(oldConverter), IERC20Token(0), IERC20Token(0), uint256(0));\n\t}\n\n\tfunction getReturnNew() external view returns (uint256, uint256) {\n\t\treturn getReturn(address(newConverter), IERC20Token(0), IERC20Token(0), uint256(0));\n\t}\n}\n" + }, + "solidity/contracts/helpers/TestContractRegistryClient.sol": { + "content": "pragma solidity 0.4.26;\nimport \"../utility/ContractRegistryClient.sol\";\n\n/*\n Utils test helper that exposes the contract registry client functions\n*/\ncontract TestContractRegistryClient is ContractRegistryClient {\n\tconstructor(IContractRegistry _registry) public ContractRegistryClient(_registry) {}\n}\n" + } + }, + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "devdoc", + "userdoc" + ], + "": [ + "ast" + ] + } + } + } + }, + "output": { + "contracts": { + "solidity/contracts/ConversionPathFinder.sol": { + "ConversionPathFinder": { + "abi": [ + { + "constant": false, + "inputs": [ + { + "name": "_onlyOwnerCanUpdateRegistry", + "type": "bool" + } + ], + "name": "restrictRegistryUpdate", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_anchorToken", + "type": "address" + } + ], + "name": "setAnchorToken", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "onlyOwnerCanUpdateRegistry", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "updateRegistry", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "prevRegistry", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "acceptOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "registry", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "owner", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_sourceToken", + "type": "address" + }, + { + "name": "_targetToken", + "type": "address" + } + ], + "name": "findPath", + "outputs": [ + { + "name": "", + "type": "address[]" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "restoreRegistry", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "newOwner", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "anchorToken", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "name": "_registry", + "type": "address" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "_prevOwner", + "type": "address" + }, + { + "indexed": true, + "name": "_newOwner", + "type": "address" + } + ], + "name": "OwnerUpdate", + "type": "event" + } + ], + "devdoc": { + "methods": { + "acceptOwnership()": { + "details": "used by a new owner to accept an ownership transfer" + }, + "findPath(address,address)": { + "details": "generates a conversion path between a given pair of tokens in the SovrynSwap Network", + "params": { + "_sourceToken": "address of the source token", + "_targetToken": "address of the target token" + }, + "return": "a path from the source token to the target token" + }, + "restoreRegistry()": { + "details": "restores the previous contract-registry" + }, + "restrictRegistryUpdate(bool)": { + "details": "restricts the permission to update the contract-registry", + "params": { + "_onlyOwnerCanUpdateRegistry": "indicates whether or not permission is restricted to owner only" + } + }, + "setAnchorToken(address)": { + "details": "updates the anchor token", + "params": { + "_anchorToken": "address of the anchor token" + } + }, + "transferOwnership(address)": { + "details": "allows transferring the contract ownership the new owner still needs to accept the transfer can only be called by the contract owner", + "params": { + "_newOwner": "new contract owner" + } + }, + "updateRegistry()": { + "details": "updates to the new contract-registry" + } + } + }, + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b50604051602080611242833981016040525160008054600160a060020a03191633179055808061004881640100000000610079810204565b5060028054600160a060020a03909216600160a060020a0319928316811790915560038054909216179055506100f3565b600160a060020a03811615156100f057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b50565b611140806101026000396000f3006080604052600436106100ab5763ffffffff60e060020a600035041663024c7ec781146100b05780632f167f05146100cc5780632fe8a6ad146100ed57806349d10b641461011657806361cd756e1461012b57806379ba50971461015c5780637b103999146101715780638da5cb5b14610186578063a1c421cd1461019b578063b4a176d314610212578063d4ee1d9014610227578063e1c4c9661461023c578063f2fde38b14610251575b600080fd5b3480156100bc57600080fd5b506100ca6004351515610272565b005b3480156100d857600080fd5b506100ca600160a060020a03600435166102ba565b3480156100f957600080fd5b506101026102f1565b604080519115158252519081900360200190f35b34801561012257600080fd5b506100ca610312565b34801561013757600080fd5b50610140610591565b60408051600160a060020a039092168252519081900360200190f35b34801561016857600080fd5b506100ca6105a0565b34801561017d57600080fd5b50610140610673565b34801561019257600080fd5b50610140610682565b3480156101a757600080fd5b506101c2600160a060020a0360043581169060243516610691565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156101fe5781810151838201526020016101e6565b505050509050019250505060405180910390f35b34801561021e57600080fd5b506100ca6106ef565b34801561023357600080fd5b50610140610728565b34801561024857600080fd5b50610140610737565b34801561025d57600080fd5b506100ca600160a060020a0360043516610746565b61027a6107e3565b60038054911515740100000000000000000000000000000000000000000274ff000000000000000000000000000000000000000019909216919091179055565b6102c26107e3565b6004805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60035474010000000000000000000000000000000000000000900460ff1681565b60008054600160a060020a0316331480610347575060035474010000000000000000000000000000000000000000900460ff16155b151561039d576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b6103c67f436f6e7472616374526567697374727900000000000000000000000000000000610847565b600254909150600160a060020a038083169116148015906103ef5750600160a060020a03811615155b1515610445576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e56414c49445f5245474953545259000000000000000000000000604482015290519081900360640190fd5b604080517fbb34534c0000000000000000000000000000000000000000000000000000000081527f436f6e747261637452656769737472790000000000000000000000000000000060048201529051600091600160a060020a0384169163bb34534c9160248082019260209290919082900301818787803b1580156104c957600080fd5b505af11580156104dd573d6000803e3d6000fd5b505050506040513d60208110156104f357600080fd5b5051600160a060020a03161415610554576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e56414c49445f5245474953545259000000000000000000000000604482015290519081900360640190fd5b6002805460038054600160a060020a0380841673ffffffffffffffffffffffffffffffffffffffff19928316179092559091169216919091179055565b600354600160a060020a031681565b600154600160a060020a03163314610602576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b60015460008054604051600160a060020a0393841693909116917f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91a3600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b600254600160a060020a031681565b600054600160a060020a031681565b606060006060806106c17f536f7672796e53776170436f6e76657274657252656769737472790000000000610847565b92506106cd86846108df565b91506106d985846108df565b90506106e58282610cd4565b9695505050505050565b6106f76107e3565b6003546002805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055565b600154600160a060020a031681565b600454600160a060020a031681565b61074e6107e3565b600054600160a060020a03828116911614156107b4576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f53414d455f4f574e4552000000000000000000000000000000000000604482015290519081900360640190fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600054600160a060020a03163314610845576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b565b600254604080517fbb34534c000000000000000000000000000000000000000000000000000000008152600481018490529051600092600160a060020a03169163bb34534c91602480830192602092919082900301818787803b1580156108ad57600080fd5b505af11580156108c1573d6000803e3d6000fd5b505050506040513d60208110156108d757600080fd5b505192915050565b60608060008060008060006060600460009054906101000a9004600160a060020a0316600160a060020a03168a600160a060020a0316141561092b576109248a610f52565b9750610cc7565b88600160a060020a031663d8cced2a8b6040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b15801561098657600080fd5b505af115801561099a573d6000803e3d6000fd5b505050506040513d60208110156109b057600080fd5b5051156109c7576109c08a610f52565b9650610ab0565b88600160a060020a031663118390648b6040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b158015610a2257600080fd5b505af1158015610a36573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526020811015610a5f57600080fd5b810190808051640100000000811115610a7757600080fd5b82016020810184811115610a8a57600080fd5b8151856020820283011164010000000082111715610aa757600080fd5b50909a50505050505b600095505b8651861015610cb5578686815181101515610acc57fe5b90602001906020020151600160a060020a0316638da5cb5b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610b1357600080fd5b505af1158015610b27573d6000803e3d6000fd5b505050506040513d6020811015610b3d57600080fd5b5051604080517f71f52bf30000000000000000000000000000000000000000000000000000000081529051919650600160a060020a038716916371f52bf3916004808201926020929091908290030181600087803b158015610b9e57600080fd5b505af1158015610bb2573d6000803e3d6000fd5b505050506040513d6020811015610bc857600080fd5b505161ffff169350600092505b83831015610caa5784600160a060020a03166319b64015846040518263ffffffff1660e060020a02815260040180828152602001915050602060405180830381600087803b158015610c2657600080fd5b505af1158015610c3a573d6000803e3d6000fd5b505050506040513d6020811015610c5057600080fd5b50519150600160a060020a03808316908b1614610c9f57610c71828a6108df565b9050600081511115610c9f576109248a8888815181101515610c8f57fe5b9060200190602002015183610fa5565b600190920191610bd5565b600190950194610ab5565b60408051600081526020810190915297505b5050505050505092915050565b606060008060606000806000806000808b51118015610cf4575060008a51115b15610f32578a519750895196505b600088118015610d125750600087115b8015610d6357508960018803815181101515610d2a57fe5b90602001906020020151600160a060020a03168b60018a03815181101515610d4e57fe5b90602001906020020151600160a060020a0316145b15610d7957600019978801979690960195610d02565b868801600101604051908082528060200260200182016040528015610da8578160200160208202803883390190505b509550600094505b878511610dff578a85815181101515610dc557fe5b906020019060200201518686815181101515610ddd57fe5b600160a060020a03909216602092830290910190910152600190940193610db0565b8693505b6000841115610e5b578960018503815181101515610e1d57fe5b906020019060200201518685885103815181101515610e3857fe5b600160a060020a0390921660209283029091019091015260001990930192610e03565b60009250600091505b8551821015610f215750600281015b60028206865103811015610ed5578581815181101515610e8f57fe5b90602001906020020151600160a060020a03168683815181101515610eb057fe5b90602001906020020151600160a060020a03161415610ecd578091505b600201610e73565b8582815181101515610ee357fe5b602090810290910101518651600185019488918110610efe57fe5b600160a060020a0390921660209283029091019091015260019190910190610e64565b610f2b8684611088565b9850610f44565b60408051600081526020810190915298505b505050505050505092915050565b6040805160018082528183019092526060918291906020808301908038833901905050905082816000815181101515610f8757fe5b600160a060020a039092166020928302909101909101529050919050565b60608060008351600201604051908082528060200260200182016040528015610fd8578160200160208202803883390190505b50915085826000815181101515610feb57fe5b600160a060020a03909216602092830290910190910152815185908390600190811061101357fe5b600160a060020a039092166020928302909101909101525060005b835181101561107f57838181518110151561104557fe5b90602001906020020151828260020181518110151561106057fe5b600160a060020a0390921660209283029091019091015260010161102e565b50949350505050565b6060806000836040519080825280602002602001820160405280156110b7578160200160208202803883390190505b509150600090505b8381101561110c5784818151811015156110d557fe5b9060200190602002015182828151811015156110ed57fe5b600160a060020a039092166020928302909101909101526001016110bf565b5093925050505600a165627a7a72305820bb2651228bd7a268c6ce61ca6c89f88ab31c6c8539741871f830b67819d0b6350029", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP1 PUSH2 0x1242 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 MSTORE MLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND CALLER OR SWAP1 SSTORE DUP1 DUP1 PUSH2 0x48 DUP2 PUSH5 0x100000000 PUSH2 0x79 DUP2 MUL DIV JUMP JUMPDEST POP PUSH1 0x2 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT SWAP3 DUP4 AND DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x3 DUP1 SLOAD SWAP1 SWAP3 AND OR SWAP1 SSTORE POP PUSH2 0xF3 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0xF0 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x1140 DUP1 PUSH2 0x102 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0xAB JUMPI PUSH4 0xFFFFFFFF PUSH1 0xE0 PUSH1 0x2 EXP PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x24C7EC7 DUP2 EQ PUSH2 0xB0 JUMPI DUP1 PUSH4 0x2F167F05 EQ PUSH2 0xCC JUMPI DUP1 PUSH4 0x2FE8A6AD EQ PUSH2 0xED JUMPI DUP1 PUSH4 0x49D10B64 EQ PUSH2 0x116 JUMPI DUP1 PUSH4 0x61CD756E EQ PUSH2 0x12B JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x15C JUMPI DUP1 PUSH4 0x7B103999 EQ PUSH2 0x171 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x186 JUMPI DUP1 PUSH4 0xA1C421CD EQ PUSH2 0x19B JUMPI DUP1 PUSH4 0xB4A176D3 EQ PUSH2 0x212 JUMPI DUP1 PUSH4 0xD4EE1D90 EQ PUSH2 0x227 JUMPI DUP1 PUSH4 0xE1C4C966 EQ PUSH2 0x23C JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x251 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xBC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xCA PUSH1 0x4 CALLDATALOAD ISZERO ISZERO PUSH2 0x272 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xD8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xCA PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x2BA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xF9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x102 PUSH2 0x2F1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x122 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xCA PUSH2 0x312 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x137 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x140 PUSH2 0x591 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x168 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xCA PUSH2 0x5A0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x17D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x140 PUSH2 0x673 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x192 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x140 PUSH2 0x682 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1A7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1C2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH2 0x691 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP4 MLOAD DUP2 DUP4 ADD MSTORE DUP4 MLOAD SWAP2 SWAP3 DUP4 SWAP3 SWAP1 DUP4 ADD SWAP2 DUP6 DUP2 ADD SWAP2 MUL DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1FE JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x1E6 JUMP JUMPDEST POP POP POP POP SWAP1 POP ADD SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x21E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xCA PUSH2 0x6EF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x233 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x140 PUSH2 0x728 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x248 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x140 PUSH2 0x737 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x25D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xCA PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x746 JUMP JUMPDEST PUSH2 0x27A PUSH2 0x7E3 JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD SWAP2 ISZERO ISZERO PUSH21 0x10000000000000000000000000000000000000000 MUL PUSH21 0xFF0000000000000000000000000000000000000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x2C2 PUSH2 0x7E3 JUMP JUMPDEST PUSH1 0x4 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ DUP1 PUSH2 0x347 JUMPI POP PUSH1 0x3 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x39D JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x3C6 PUSH32 0x436F6E7472616374526567697374727900000000000000000000000000000000 PUSH2 0x847 JUMP JUMPDEST PUSH1 0x2 SLOAD SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP4 AND SWAP2 AND EQ DUP1 ISZERO SWAP1 PUSH2 0x3EF JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x445 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245474953545259000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0xBB34534C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH32 0x436F6E7472616374526567697374727900000000000000000000000000000000 PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP2 PUSH4 0xBB34534C SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x4C9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x4DD JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x4F3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ ISZERO PUSH2 0x554 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245474953545259000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP5 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP3 DUP4 AND OR SWAP1 SWAP3 SSTORE SWAP1 SWAP2 AND SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x602 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND SWAP4 SWAP1 SWAP2 AND SWAP2 PUSH32 0x343765429AEA5A34B3FF6A3785A98A5ABB2597ACA87BFBB58632C173D585373A SWAP2 LOG3 PUSH1 0x1 DUP1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND OR SWAP1 SWAP2 SSTORE AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH1 0x60 DUP1 PUSH2 0x6C1 PUSH32 0x536F7672796E53776170436F6E76657274657252656769737472790000000000 PUSH2 0x847 JUMP JUMPDEST SWAP3 POP PUSH2 0x6CD DUP7 DUP5 PUSH2 0x8DF JUMP JUMPDEST SWAP2 POP PUSH2 0x6D9 DUP6 DUP5 PUSH2 0x8DF JUMP JUMPDEST SWAP1 POP PUSH2 0x6E5 DUP3 DUP3 PUSH2 0xCD4 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x6F7 PUSH2 0x7E3 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x2 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH2 0x74E PUSH2 0x7E3 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x7B4 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F4F574E4552000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x845 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xBB34534C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP2 PUSH4 0xBB34534C SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x8AD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x8C1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x8D7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x60 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 PUSH1 0x4 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP11 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ ISZERO PUSH2 0x92B JUMPI PUSH2 0x924 DUP11 PUSH2 0xF52 JUMP JUMPDEST SWAP8 POP PUSH2 0xCC7 JUMP JUMPDEST DUP9 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xD8CCED2A DUP12 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x986 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x99A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x9B0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD ISZERO PUSH2 0x9C7 JUMPI PUSH2 0x9C0 DUP11 PUSH2 0xF52 JUMP JUMPDEST SWAP7 POP PUSH2 0xAB0 JUMP JUMPDEST DUP9 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x11839064 DUP12 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xA22 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xA36 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xA5F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 MLOAD PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0xA77 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD PUSH1 0x20 DUP2 ADD DUP5 DUP2 GT ISZERO PUSH2 0xA8A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP6 PUSH1 0x20 DUP3 MUL DUP4 ADD GT PUSH5 0x100000000 DUP3 GT OR ISZERO PUSH2 0xAA7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP SWAP1 SWAP11 POP POP POP POP POP JUMPDEST PUSH1 0x0 SWAP6 POP JUMPDEST DUP7 MLOAD DUP7 LT ISZERO PUSH2 0xCB5 JUMPI DUP7 DUP7 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xACC JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x8DA5CB5B PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xB13 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xB27 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xB3D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x71F52BF300000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP7 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND SWAP2 PUSH4 0x71F52BF3 SWAP2 PUSH1 0x4 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xB9E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xBB2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xBC8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH2 0xFFFF AND SWAP4 POP PUSH1 0x0 SWAP3 POP JUMPDEST DUP4 DUP4 LT ISZERO PUSH2 0xCAA JUMPI DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x19B64015 DUP5 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC26 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xC3A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xC50 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP4 AND SWAP1 DUP12 AND EQ PUSH2 0xC9F JUMPI PUSH2 0xC71 DUP3 DUP11 PUSH2 0x8DF JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 MLOAD GT ISZERO PUSH2 0xC9F JUMPI PUSH2 0x924 DUP11 DUP9 DUP9 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xC8F JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD DUP4 PUSH2 0xFA5 JUMP JUMPDEST PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 PUSH2 0xBD5 JUMP JUMPDEST PUSH1 0x1 SWAP1 SWAP6 ADD SWAP5 PUSH2 0xAB5 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE SWAP8 POP JUMPDEST POP POP POP POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 PUSH1 0x60 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 DUP12 MLOAD GT DUP1 ISZERO PUSH2 0xCF4 JUMPI POP PUSH1 0x0 DUP11 MLOAD GT JUMPDEST ISZERO PUSH2 0xF32 JUMPI DUP11 MLOAD SWAP8 POP DUP10 MLOAD SWAP7 POP JUMPDEST PUSH1 0x0 DUP9 GT DUP1 ISZERO PUSH2 0xD12 JUMPI POP PUSH1 0x0 DUP8 GT JUMPDEST DUP1 ISZERO PUSH2 0xD63 JUMPI POP DUP10 PUSH1 0x1 DUP9 SUB DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xD2A JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP12 PUSH1 0x1 DUP11 SUB DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xD4E JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ JUMPDEST ISZERO PUSH2 0xD79 JUMPI PUSH1 0x0 NOT SWAP8 DUP9 ADD SWAP8 SWAP7 SWAP1 SWAP7 ADD SWAP6 PUSH2 0xD02 JUMP JUMPDEST DUP7 DUP9 ADD PUSH1 0x1 ADD PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0xDA8 JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CODESIZE DUP4 CODECOPY ADD SWAP1 POP JUMPDEST POP SWAP6 POP PUSH1 0x0 SWAP5 POP JUMPDEST DUP8 DUP6 GT PUSH2 0xDFF JUMPI DUP11 DUP6 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xDC5 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD DUP7 DUP7 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xDDD JUMPI INVALID JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND PUSH1 0x20 SWAP3 DUP4 MUL SWAP1 SWAP2 ADD SWAP1 SWAP2 ADD MSTORE PUSH1 0x1 SWAP1 SWAP5 ADD SWAP4 PUSH2 0xDB0 JUMP JUMPDEST DUP7 SWAP4 POP JUMPDEST PUSH1 0x0 DUP5 GT ISZERO PUSH2 0xE5B JUMPI DUP10 PUSH1 0x1 DUP6 SUB DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xE1D JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD DUP7 DUP6 DUP9 MLOAD SUB DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xE38 JUMPI INVALID JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND PUSH1 0x20 SWAP3 DUP4 MUL SWAP1 SWAP2 ADD SWAP1 SWAP2 ADD MSTORE PUSH1 0x0 NOT SWAP1 SWAP4 ADD SWAP3 PUSH2 0xE03 JUMP JUMPDEST PUSH1 0x0 SWAP3 POP PUSH1 0x0 SWAP2 POP JUMPDEST DUP6 MLOAD DUP3 LT ISZERO PUSH2 0xF21 JUMPI POP PUSH1 0x2 DUP2 ADD JUMPDEST PUSH1 0x2 DUP3 MOD DUP7 MLOAD SUB DUP2 LT ISZERO PUSH2 0xED5 JUMPI DUP6 DUP2 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xE8F JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP7 DUP4 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xEB0 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ ISZERO PUSH2 0xECD JUMPI DUP1 SWAP2 POP JUMPDEST PUSH1 0x2 ADD PUSH2 0xE73 JUMP JUMPDEST DUP6 DUP3 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xEE3 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MLOAD DUP7 MLOAD PUSH1 0x1 DUP6 ADD SWAP5 DUP9 SWAP2 DUP2 LT PUSH2 0xEFE JUMPI INVALID JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND PUSH1 0x20 SWAP3 DUP4 MUL SWAP1 SWAP2 ADD SWAP1 SWAP2 ADD MSTORE PUSH1 0x1 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH2 0xE64 JUMP JUMPDEST PUSH2 0xF2B DUP7 DUP5 PUSH2 0x1088 JUMP JUMPDEST SWAP9 POP PUSH2 0xF44 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE SWAP9 POP JUMPDEST POP POP POP POP POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 DUP1 DUP3 MSTORE DUP2 DUP4 ADD SWAP1 SWAP3 MSTORE PUSH1 0x60 SWAP2 DUP3 SWAP2 SWAP1 PUSH1 0x20 DUP1 DUP4 ADD SWAP1 DUP1 CODESIZE DUP4 CODECOPY ADD SWAP1 POP POP SWAP1 POP DUP3 DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xF87 JUMPI INVALID JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND PUSH1 0x20 SWAP3 DUP4 MUL SWAP1 SWAP2 ADD SWAP1 SWAP2 ADD MSTORE SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 DUP1 PUSH1 0x0 DUP4 MLOAD PUSH1 0x2 ADD PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0xFD8 JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CODESIZE DUP4 CODECOPY ADD SWAP1 POP JUMPDEST POP SWAP2 POP DUP6 DUP3 PUSH1 0x0 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xFEB JUMPI INVALID JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND PUSH1 0x20 SWAP3 DUP4 MUL SWAP1 SWAP2 ADD SWAP1 SWAP2 ADD MSTORE DUP2 MLOAD DUP6 SWAP1 DUP4 SWAP1 PUSH1 0x1 SWAP1 DUP2 LT PUSH2 0x1013 JUMPI INVALID JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND PUSH1 0x20 SWAP3 DUP4 MUL SWAP1 SWAP2 ADD SWAP1 SWAP2 ADD MSTORE POP PUSH1 0x0 JUMPDEST DUP4 MLOAD DUP2 LT ISZERO PUSH2 0x107F JUMPI DUP4 DUP2 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x1045 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD DUP3 DUP3 PUSH1 0x2 ADD DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x1060 JUMPI INVALID JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND PUSH1 0x20 SWAP3 DUP4 MUL SWAP1 SWAP2 ADD SWAP1 SWAP2 ADD MSTORE PUSH1 0x1 ADD PUSH2 0x102E JUMP JUMPDEST POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP1 PUSH1 0x0 DUP4 PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x10B7 JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CODESIZE DUP4 CODECOPY ADD SWAP1 POP JUMPDEST POP SWAP2 POP PUSH1 0x0 SWAP1 POP JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x110C JUMPI DUP5 DUP2 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x10D5 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD DUP3 DUP3 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x10ED JUMPI INVALID JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND PUSH1 0x20 SWAP3 DUP4 MUL SWAP1 SWAP2 ADD SWAP1 SWAP2 ADD MSTORE PUSH1 0x1 ADD PUSH2 0x10BF JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 0xbb 0x26 MLOAD 0x22 DUP12 0xd7 LOG2 PUSH9 0xC6CE61CA6C89F88AB3 SHR PUSH13 0x8539741871F830B67819D0B635 STOP 0x29 ", + "sourceMap": "558:4622:0:-;;;802:84;8:9:-1;5:2;;;30:1;27;20:12;5:2;802:84:0;;;;;;;;;;;;;488:5:66;:18;;-1:-1:-1;;;;;;488:18:66;496:10;488:18;;;802:84:0;;475:23:72;802:84:0;475:13:72;;;;:23;:::i;:::-;-1:-1:-1;1931:8:60;:39;;-1:-1:-1;;;;;1931:39:60;;;-1:-1:-1;;;;;;1931:39:60;;;;;;;;1974:12;:43;;;;;;;;-1:-1:-1;558:4622:0;;553:117:72;-1:-1:-1;;;;;620:22:72;;;;612:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;553:117;:::o;558:4622:0:-;;;;;;;" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "6080604052600436106100ab5763ffffffff60e060020a600035041663024c7ec781146100b05780632f167f05146100cc5780632fe8a6ad146100ed57806349d10b641461011657806361cd756e1461012b57806379ba50971461015c5780637b103999146101715780638da5cb5b14610186578063a1c421cd1461019b578063b4a176d314610212578063d4ee1d9014610227578063e1c4c9661461023c578063f2fde38b14610251575b600080fd5b3480156100bc57600080fd5b506100ca6004351515610272565b005b3480156100d857600080fd5b506100ca600160a060020a03600435166102ba565b3480156100f957600080fd5b506101026102f1565b604080519115158252519081900360200190f35b34801561012257600080fd5b506100ca610312565b34801561013757600080fd5b50610140610591565b60408051600160a060020a039092168252519081900360200190f35b34801561016857600080fd5b506100ca6105a0565b34801561017d57600080fd5b50610140610673565b34801561019257600080fd5b50610140610682565b3480156101a757600080fd5b506101c2600160a060020a0360043581169060243516610691565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156101fe5781810151838201526020016101e6565b505050509050019250505060405180910390f35b34801561021e57600080fd5b506100ca6106ef565b34801561023357600080fd5b50610140610728565b34801561024857600080fd5b50610140610737565b34801561025d57600080fd5b506100ca600160a060020a0360043516610746565b61027a6107e3565b60038054911515740100000000000000000000000000000000000000000274ff000000000000000000000000000000000000000019909216919091179055565b6102c26107e3565b6004805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60035474010000000000000000000000000000000000000000900460ff1681565b60008054600160a060020a0316331480610347575060035474010000000000000000000000000000000000000000900460ff16155b151561039d576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b6103c67f436f6e7472616374526567697374727900000000000000000000000000000000610847565b600254909150600160a060020a038083169116148015906103ef5750600160a060020a03811615155b1515610445576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e56414c49445f5245474953545259000000000000000000000000604482015290519081900360640190fd5b604080517fbb34534c0000000000000000000000000000000000000000000000000000000081527f436f6e747261637452656769737472790000000000000000000000000000000060048201529051600091600160a060020a0384169163bb34534c9160248082019260209290919082900301818787803b1580156104c957600080fd5b505af11580156104dd573d6000803e3d6000fd5b505050506040513d60208110156104f357600080fd5b5051600160a060020a03161415610554576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e56414c49445f5245474953545259000000000000000000000000604482015290519081900360640190fd5b6002805460038054600160a060020a0380841673ffffffffffffffffffffffffffffffffffffffff19928316179092559091169216919091179055565b600354600160a060020a031681565b600154600160a060020a03163314610602576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b60015460008054604051600160a060020a0393841693909116917f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91a3600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b600254600160a060020a031681565b600054600160a060020a031681565b606060006060806106c17f536f7672796e53776170436f6e76657274657252656769737472790000000000610847565b92506106cd86846108df565b91506106d985846108df565b90506106e58282610cd4565b9695505050505050565b6106f76107e3565b6003546002805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055565b600154600160a060020a031681565b600454600160a060020a031681565b61074e6107e3565b600054600160a060020a03828116911614156107b4576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f53414d455f4f574e4552000000000000000000000000000000000000604482015290519081900360640190fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600054600160a060020a03163314610845576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b565b600254604080517fbb34534c000000000000000000000000000000000000000000000000000000008152600481018490529051600092600160a060020a03169163bb34534c91602480830192602092919082900301818787803b1580156108ad57600080fd5b505af11580156108c1573d6000803e3d6000fd5b505050506040513d60208110156108d757600080fd5b505192915050565b60608060008060008060006060600460009054906101000a9004600160a060020a0316600160a060020a03168a600160a060020a0316141561092b576109248a610f52565b9750610cc7565b88600160a060020a031663d8cced2a8b6040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b15801561098657600080fd5b505af115801561099a573d6000803e3d6000fd5b505050506040513d60208110156109b057600080fd5b5051156109c7576109c08a610f52565b9650610ab0565b88600160a060020a031663118390648b6040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b158015610a2257600080fd5b505af1158015610a36573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526020811015610a5f57600080fd5b810190808051640100000000811115610a7757600080fd5b82016020810184811115610a8a57600080fd5b8151856020820283011164010000000082111715610aa757600080fd5b50909a50505050505b600095505b8651861015610cb5578686815181101515610acc57fe5b90602001906020020151600160a060020a0316638da5cb5b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610b1357600080fd5b505af1158015610b27573d6000803e3d6000fd5b505050506040513d6020811015610b3d57600080fd5b5051604080517f71f52bf30000000000000000000000000000000000000000000000000000000081529051919650600160a060020a038716916371f52bf3916004808201926020929091908290030181600087803b158015610b9e57600080fd5b505af1158015610bb2573d6000803e3d6000fd5b505050506040513d6020811015610bc857600080fd5b505161ffff169350600092505b83831015610caa5784600160a060020a03166319b64015846040518263ffffffff1660e060020a02815260040180828152602001915050602060405180830381600087803b158015610c2657600080fd5b505af1158015610c3a573d6000803e3d6000fd5b505050506040513d6020811015610c5057600080fd5b50519150600160a060020a03808316908b1614610c9f57610c71828a6108df565b9050600081511115610c9f576109248a8888815181101515610c8f57fe5b9060200190602002015183610fa5565b600190920191610bd5565b600190950194610ab5565b60408051600081526020810190915297505b5050505050505092915050565b606060008060606000806000806000808b51118015610cf4575060008a51115b15610f32578a519750895196505b600088118015610d125750600087115b8015610d6357508960018803815181101515610d2a57fe5b90602001906020020151600160a060020a03168b60018a03815181101515610d4e57fe5b90602001906020020151600160a060020a0316145b15610d7957600019978801979690960195610d02565b868801600101604051908082528060200260200182016040528015610da8578160200160208202803883390190505b509550600094505b878511610dff578a85815181101515610dc557fe5b906020019060200201518686815181101515610ddd57fe5b600160a060020a03909216602092830290910190910152600190940193610db0565b8693505b6000841115610e5b578960018503815181101515610e1d57fe5b906020019060200201518685885103815181101515610e3857fe5b600160a060020a0390921660209283029091019091015260001990930192610e03565b60009250600091505b8551821015610f215750600281015b60028206865103811015610ed5578581815181101515610e8f57fe5b90602001906020020151600160a060020a03168683815181101515610eb057fe5b90602001906020020151600160a060020a03161415610ecd578091505b600201610e73565b8582815181101515610ee357fe5b602090810290910101518651600185019488918110610efe57fe5b600160a060020a0390921660209283029091019091015260019190910190610e64565b610f2b8684611088565b9850610f44565b60408051600081526020810190915298505b505050505050505092915050565b6040805160018082528183019092526060918291906020808301908038833901905050905082816000815181101515610f8757fe5b600160a060020a039092166020928302909101909101529050919050565b60608060008351600201604051908082528060200260200182016040528015610fd8578160200160208202803883390190505b50915085826000815181101515610feb57fe5b600160a060020a03909216602092830290910190910152815185908390600190811061101357fe5b600160a060020a039092166020928302909101909101525060005b835181101561107f57838181518110151561104557fe5b90602001906020020151828260020181518110151561106057fe5b600160a060020a0390921660209283029091019091015260010161102e565b50949350505050565b6060806000836040519080825280602002602001820160405280156110b7578160200160208202803883390190505b509150600090505b8381101561110c5784818151811015156110d557fe5b9060200190602002015182828151811015156110ed57fe5b600160a060020a039092166020928302909101909101526001016110bf565b5093925050505600a165627a7a72305820bb2651228bd7a268c6ce61ca6c89f88ab31c6c8539741871f830b67819d0b6350029", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0xAB JUMPI PUSH4 0xFFFFFFFF PUSH1 0xE0 PUSH1 0x2 EXP PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x24C7EC7 DUP2 EQ PUSH2 0xB0 JUMPI DUP1 PUSH4 0x2F167F05 EQ PUSH2 0xCC JUMPI DUP1 PUSH4 0x2FE8A6AD EQ PUSH2 0xED JUMPI DUP1 PUSH4 0x49D10B64 EQ PUSH2 0x116 JUMPI DUP1 PUSH4 0x61CD756E EQ PUSH2 0x12B JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x15C JUMPI DUP1 PUSH4 0x7B103999 EQ PUSH2 0x171 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x186 JUMPI DUP1 PUSH4 0xA1C421CD EQ PUSH2 0x19B JUMPI DUP1 PUSH4 0xB4A176D3 EQ PUSH2 0x212 JUMPI DUP1 PUSH4 0xD4EE1D90 EQ PUSH2 0x227 JUMPI DUP1 PUSH4 0xE1C4C966 EQ PUSH2 0x23C JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x251 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xBC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xCA PUSH1 0x4 CALLDATALOAD ISZERO ISZERO PUSH2 0x272 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xD8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xCA PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x2BA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xF9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x102 PUSH2 0x2F1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x122 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xCA PUSH2 0x312 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x137 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x140 PUSH2 0x591 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x168 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xCA PUSH2 0x5A0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x17D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x140 PUSH2 0x673 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x192 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x140 PUSH2 0x682 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1A7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1C2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH2 0x691 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP4 MLOAD DUP2 DUP4 ADD MSTORE DUP4 MLOAD SWAP2 SWAP3 DUP4 SWAP3 SWAP1 DUP4 ADD SWAP2 DUP6 DUP2 ADD SWAP2 MUL DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1FE JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x1E6 JUMP JUMPDEST POP POP POP POP SWAP1 POP ADD SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x21E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xCA PUSH2 0x6EF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x233 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x140 PUSH2 0x728 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x248 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x140 PUSH2 0x737 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x25D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xCA PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x746 JUMP JUMPDEST PUSH2 0x27A PUSH2 0x7E3 JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD SWAP2 ISZERO ISZERO PUSH21 0x10000000000000000000000000000000000000000 MUL PUSH21 0xFF0000000000000000000000000000000000000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x2C2 PUSH2 0x7E3 JUMP JUMPDEST PUSH1 0x4 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ DUP1 PUSH2 0x347 JUMPI POP PUSH1 0x3 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x39D JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x3C6 PUSH32 0x436F6E7472616374526567697374727900000000000000000000000000000000 PUSH2 0x847 JUMP JUMPDEST PUSH1 0x2 SLOAD SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP4 AND SWAP2 AND EQ DUP1 ISZERO SWAP1 PUSH2 0x3EF JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x445 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245474953545259000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0xBB34534C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH32 0x436F6E7472616374526567697374727900000000000000000000000000000000 PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP2 PUSH4 0xBB34534C SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x4C9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x4DD JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x4F3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ ISZERO PUSH2 0x554 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245474953545259000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP5 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP3 DUP4 AND OR SWAP1 SWAP3 SSTORE SWAP1 SWAP2 AND SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x602 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND SWAP4 SWAP1 SWAP2 AND SWAP2 PUSH32 0x343765429AEA5A34B3FF6A3785A98A5ABB2597ACA87BFBB58632C173D585373A SWAP2 LOG3 PUSH1 0x1 DUP1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND OR SWAP1 SWAP2 SSTORE AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH1 0x60 DUP1 PUSH2 0x6C1 PUSH32 0x536F7672796E53776170436F6E76657274657252656769737472790000000000 PUSH2 0x847 JUMP JUMPDEST SWAP3 POP PUSH2 0x6CD DUP7 DUP5 PUSH2 0x8DF JUMP JUMPDEST SWAP2 POP PUSH2 0x6D9 DUP6 DUP5 PUSH2 0x8DF JUMP JUMPDEST SWAP1 POP PUSH2 0x6E5 DUP3 DUP3 PUSH2 0xCD4 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x6F7 PUSH2 0x7E3 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x2 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH2 0x74E PUSH2 0x7E3 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x7B4 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F4F574E4552000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x845 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xBB34534C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP2 PUSH4 0xBB34534C SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x8AD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x8C1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x8D7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x60 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 PUSH1 0x4 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP11 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ ISZERO PUSH2 0x92B JUMPI PUSH2 0x924 DUP11 PUSH2 0xF52 JUMP JUMPDEST SWAP8 POP PUSH2 0xCC7 JUMP JUMPDEST DUP9 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xD8CCED2A DUP12 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x986 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x99A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x9B0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD ISZERO PUSH2 0x9C7 JUMPI PUSH2 0x9C0 DUP11 PUSH2 0xF52 JUMP JUMPDEST SWAP7 POP PUSH2 0xAB0 JUMP JUMPDEST DUP9 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x11839064 DUP12 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xA22 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xA36 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xA5F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 MLOAD PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0xA77 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD PUSH1 0x20 DUP2 ADD DUP5 DUP2 GT ISZERO PUSH2 0xA8A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP6 PUSH1 0x20 DUP3 MUL DUP4 ADD GT PUSH5 0x100000000 DUP3 GT OR ISZERO PUSH2 0xAA7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP SWAP1 SWAP11 POP POP POP POP POP JUMPDEST PUSH1 0x0 SWAP6 POP JUMPDEST DUP7 MLOAD DUP7 LT ISZERO PUSH2 0xCB5 JUMPI DUP7 DUP7 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xACC JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x8DA5CB5B PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xB13 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xB27 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xB3D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x71F52BF300000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP7 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND SWAP2 PUSH4 0x71F52BF3 SWAP2 PUSH1 0x4 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xB9E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xBB2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xBC8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH2 0xFFFF AND SWAP4 POP PUSH1 0x0 SWAP3 POP JUMPDEST DUP4 DUP4 LT ISZERO PUSH2 0xCAA JUMPI DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x19B64015 DUP5 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC26 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xC3A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xC50 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP4 AND SWAP1 DUP12 AND EQ PUSH2 0xC9F JUMPI PUSH2 0xC71 DUP3 DUP11 PUSH2 0x8DF JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 MLOAD GT ISZERO PUSH2 0xC9F JUMPI PUSH2 0x924 DUP11 DUP9 DUP9 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xC8F JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD DUP4 PUSH2 0xFA5 JUMP JUMPDEST PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 PUSH2 0xBD5 JUMP JUMPDEST PUSH1 0x1 SWAP1 SWAP6 ADD SWAP5 PUSH2 0xAB5 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE SWAP8 POP JUMPDEST POP POP POP POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 PUSH1 0x60 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 DUP12 MLOAD GT DUP1 ISZERO PUSH2 0xCF4 JUMPI POP PUSH1 0x0 DUP11 MLOAD GT JUMPDEST ISZERO PUSH2 0xF32 JUMPI DUP11 MLOAD SWAP8 POP DUP10 MLOAD SWAP7 POP JUMPDEST PUSH1 0x0 DUP9 GT DUP1 ISZERO PUSH2 0xD12 JUMPI POP PUSH1 0x0 DUP8 GT JUMPDEST DUP1 ISZERO PUSH2 0xD63 JUMPI POP DUP10 PUSH1 0x1 DUP9 SUB DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xD2A JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP12 PUSH1 0x1 DUP11 SUB DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xD4E JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ JUMPDEST ISZERO PUSH2 0xD79 JUMPI PUSH1 0x0 NOT SWAP8 DUP9 ADD SWAP8 SWAP7 SWAP1 SWAP7 ADD SWAP6 PUSH2 0xD02 JUMP JUMPDEST DUP7 DUP9 ADD PUSH1 0x1 ADD PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0xDA8 JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CODESIZE DUP4 CODECOPY ADD SWAP1 POP JUMPDEST POP SWAP6 POP PUSH1 0x0 SWAP5 POP JUMPDEST DUP8 DUP6 GT PUSH2 0xDFF JUMPI DUP11 DUP6 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xDC5 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD DUP7 DUP7 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xDDD JUMPI INVALID JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND PUSH1 0x20 SWAP3 DUP4 MUL SWAP1 SWAP2 ADD SWAP1 SWAP2 ADD MSTORE PUSH1 0x1 SWAP1 SWAP5 ADD SWAP4 PUSH2 0xDB0 JUMP JUMPDEST DUP7 SWAP4 POP JUMPDEST PUSH1 0x0 DUP5 GT ISZERO PUSH2 0xE5B JUMPI DUP10 PUSH1 0x1 DUP6 SUB DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xE1D JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD DUP7 DUP6 DUP9 MLOAD SUB DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xE38 JUMPI INVALID JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND PUSH1 0x20 SWAP3 DUP4 MUL SWAP1 SWAP2 ADD SWAP1 SWAP2 ADD MSTORE PUSH1 0x0 NOT SWAP1 SWAP4 ADD SWAP3 PUSH2 0xE03 JUMP JUMPDEST PUSH1 0x0 SWAP3 POP PUSH1 0x0 SWAP2 POP JUMPDEST DUP6 MLOAD DUP3 LT ISZERO PUSH2 0xF21 JUMPI POP PUSH1 0x2 DUP2 ADD JUMPDEST PUSH1 0x2 DUP3 MOD DUP7 MLOAD SUB DUP2 LT ISZERO PUSH2 0xED5 JUMPI DUP6 DUP2 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xE8F JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP7 DUP4 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xEB0 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ ISZERO PUSH2 0xECD JUMPI DUP1 SWAP2 POP JUMPDEST PUSH1 0x2 ADD PUSH2 0xE73 JUMP JUMPDEST DUP6 DUP3 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xEE3 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MLOAD DUP7 MLOAD PUSH1 0x1 DUP6 ADD SWAP5 DUP9 SWAP2 DUP2 LT PUSH2 0xEFE JUMPI INVALID JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND PUSH1 0x20 SWAP3 DUP4 MUL SWAP1 SWAP2 ADD SWAP1 SWAP2 ADD MSTORE PUSH1 0x1 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH2 0xE64 JUMP JUMPDEST PUSH2 0xF2B DUP7 DUP5 PUSH2 0x1088 JUMP JUMPDEST SWAP9 POP PUSH2 0xF44 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE SWAP9 POP JUMPDEST POP POP POP POP POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 DUP1 DUP3 MSTORE DUP2 DUP4 ADD SWAP1 SWAP3 MSTORE PUSH1 0x60 SWAP2 DUP3 SWAP2 SWAP1 PUSH1 0x20 DUP1 DUP4 ADD SWAP1 DUP1 CODESIZE DUP4 CODECOPY ADD SWAP1 POP POP SWAP1 POP DUP3 DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xF87 JUMPI INVALID JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND PUSH1 0x20 SWAP3 DUP4 MUL SWAP1 SWAP2 ADD SWAP1 SWAP2 ADD MSTORE SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 DUP1 PUSH1 0x0 DUP4 MLOAD PUSH1 0x2 ADD PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0xFD8 JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CODESIZE DUP4 CODECOPY ADD SWAP1 POP JUMPDEST POP SWAP2 POP DUP6 DUP3 PUSH1 0x0 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xFEB JUMPI INVALID JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND PUSH1 0x20 SWAP3 DUP4 MUL SWAP1 SWAP2 ADD SWAP1 SWAP2 ADD MSTORE DUP2 MLOAD DUP6 SWAP1 DUP4 SWAP1 PUSH1 0x1 SWAP1 DUP2 LT PUSH2 0x1013 JUMPI INVALID JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND PUSH1 0x20 SWAP3 DUP4 MUL SWAP1 SWAP2 ADD SWAP1 SWAP2 ADD MSTORE POP PUSH1 0x0 JUMPDEST DUP4 MLOAD DUP2 LT ISZERO PUSH2 0x107F JUMPI DUP4 DUP2 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x1045 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD DUP3 DUP3 PUSH1 0x2 ADD DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x1060 JUMPI INVALID JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND PUSH1 0x20 SWAP3 DUP4 MUL SWAP1 SWAP2 ADD SWAP1 SWAP2 ADD MSTORE PUSH1 0x1 ADD PUSH2 0x102E JUMP JUMPDEST POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP1 PUSH1 0x0 DUP4 PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x10B7 JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CODESIZE DUP4 CODECOPY ADD SWAP1 POP JUMPDEST POP SWAP2 POP PUSH1 0x0 SWAP1 POP JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x110C JUMPI DUP5 DUP2 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x10D5 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD DUP3 DUP3 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x10ED JUMPI INVALID JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND PUSH1 0x20 SWAP3 DUP4 MUL SWAP1 SWAP2 ADD SWAP1 SWAP2 ADD MSTORE PUSH1 0x1 ADD PUSH2 0x10BF JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 0xbb 0x26 MLOAD 0x22 DUP12 0xd7 LOG2 PUSH9 0xC6CE61CA6C89F88AB3 SHR PUSH13 0x8539741871F830B67819D0B635 STOP 0x29 ", + "sourceMap": "558:4622:0:-;;;;;;;;;-1:-1:-1;;;558:4622:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3280:206:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3280:206:60;;;;;;;;;989:97:0;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;989:97:0;-1:-1:-1;;;;;989:97:0;;;;;1250:38:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1250:38:60;;;;;;;;;;;;;;;;;;;;;;2080:832;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2080:832:60;;;;1165:37;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1165:37:60;;;;;;;;-1:-1:-1;;;;;1165:37:60;;;;;;;;;;;;;;1159:176:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1159:176:66;;;;1085:33:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1085:33:60;;;;157:20:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;157:20:66;;;;1366:395:0;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1366:395:0;-1:-1:-1;;;;;1366:395:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;1366:395:0;;;;;;;;;;;;;;;;;2974:119:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2974:119:60;;;;180:23:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;180:23:66;;;;640:26:0;;8:9:-1;5:2;;;30:1;27;20:12;5:2;640:26:0;;;;945:140:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;945:140:66;-1:-1:-1;;;;;945:140:66;;;;;3280:206:60;575:12:66;:10;:12::i;:::-;3426:26:60;:56;;;;;;;-1:-1:-1;;3426:56:60;;;;;;;;;3280:206::o;989:97:0:-;575:12:66;:10;:12::i;:::-;1056:11:0;:26;;-1:-1:-1;;1056:26:0;-1:-1:-1;;;;;1056:26:0;;;;;;;;;;989:97::o;1250:38:60:-;;;;;;;;;:::o;2080:832::-;2281:29;2183:5;;-1:-1:-1;;;;;2183:5:60;2169:10;:19;;:50;;-1:-1:-1;2193:26:60;;;;;;;2192:27;2169:50;2161:80;;;;;;;-1:-1:-1;;;;;2161:80:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;2331:28;2341:17;2331:9;:28::i;:::-;2465:8;;2281:79;;-1:-1:-1;;;;;;2442:32:60;;;2465:8;;2442:32;;;;:61;;-1:-1:-1;;;;;;2478:25:60;;;;2442:61;2434:94;;;;;;;-1:-1:-1;;;;;2434:94:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;2628:40;;;;;;2650:17;2628:40;;;;;;2680:1;;-1:-1:-1;;;;;2628:21:60;;;;;:40;;;;;;;;;;;;;;;2680:1;2628:21;:40;;;5:2:-1;;;;30:1;27;20:12;5:2;2628:40:60;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2628:40:60;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2628:40:60;-1:-1:-1;;;;;2628:54:60;;;2620:87;;;;;-1:-1:-1;;;;;2620:87:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;2799:8;;;2784:12;:23;;-1:-1:-1;;;;;2799:8:60;;;-1:-1:-1;;2784:23:60;;;;;;;2886:22;;;;;;;;;;;2080:832::o;1165:37::-;;;-1:-1:-1;;;;;1165:37:60;;:::o;1159:176:66:-;1219:8;;-1:-1:-1;;;;;1219:8:66;1205:10;:22;1197:52;;;;;-1:-1:-1;;;;;1197:52:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;1277:8;;;1270:5;;1258:28;;-1:-1:-1;;;;;1277:8:66;;;;1270:5;;;;1258:28;;;1298:8;;;;1290:16;;-1:-1:-1;;1290:16:66;;;-1:-1:-1;;;;;1298:8:66;;1290:16;;;;1310:21;;;1159:176::o;1085:33:60:-;;;-1:-1:-1;;;;;1085:33:60;;:::o;157:20:66:-;;;-1:-1:-1;;;;;157:20:66;;:::o;1366:395:0:-;1449:9;1471:36;1563:27;1637;1529:29;1539:18;1529:9;:29::i;:::-;1471:88;;1593:40;1601:12;1615:17;1593:7;:40::i;:::-;1563:70;;1667:40;1675:12;1689:17;1667:7;:40::i;:::-;1637:70;;1718:39;1734:10;1746;1718:15;:39::i;:::-;1711:46;1366:395;-1:-1:-1;;;;;;1366:395:0:o;2974:119:60:-;575:12:66;:10;:12::i;:::-;3077::60;;3066:8;:23;;-1:-1:-1;;3066:23:60;-1:-1:-1;;;;;3077:12:60;;;3066:23;;;;;;2974:119::o;180:23:66:-;;;-1:-1:-1;;;;;180:23:66;;:::o;640:26:0:-;;;-1:-1:-1;;;;;640:26:0;;:::o;945:140:66:-;575:12;:10;:12::i;:::-;1033:5;;-1:-1:-1;;;;;1020:18:66;;;1033:5;;1020:18;;1012:45;;;;;-1:-1:-1;;;;;1012:45:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;1061:8;:20;;-1:-1:-1;;1061:20:66;-1:-1:-1;;;;;1061:20:66;;;;;;;;;;945:140::o;642:93::-;704:5;;-1:-1:-1;;;;;704:5:66;690:10;:19;682:49;;;;;-1:-1:-1;;;;;682:49:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;642:93::o;3647:122:60:-;3732:8;;:33;;;;;;;;;;;;;;3712:7;;-1:-1:-1;;;;;3732:8:60;;:18;;:33;;;;;;;;;;;;;;3712:7;3732:8;:33;;;5:2:-1;;;;30:1;27;20:12;5:2;3732:33:60;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3732:33:60;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3732:33:60;;3647:122;-1:-1:-1;;3647:122:60:o;2041:892:0:-;2135:9;2219:24;2403:9;2448:20;2524:27;2595:9;2646:22;2742:21;2171:11;;;;;;;;;-1:-1:-1;;;;;2171:11:0;-1:-1:-1;;;;;2161:21:0;:6;-1:-1:-1;;;;;2161:21:0;;2157:57;;;2191:23;2207:6;2191:15;:23::i;:::-;2184:30;;;;2157:57;2251:18;-1:-1:-1;;;;;2251:27:0;;2279:6;2251:35;;;;;-1:-1:-1;;;2251:35:0;;;;;;;-1:-1:-1;;;;;2251:35:0;-1:-1:-1;;;;;2251:35:0;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2251:35:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2251:35:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2251:35:0;2247:146;;;2298:23;2314:6;2298:15;:23::i;:::-;2288:33;;2247:146;;;2340:18;-1:-1:-1;;;;;2340:45:0;;2386:6;2340:53;;;;;-1:-1:-1;;;2340:53:0;;;;;;;-1:-1:-1;;;;;2340:53:0;-1:-1:-1;;;;;2340:53:0;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2340:53:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2340:53:0;;;;;;39:16:-1;36:1;17:17;2:54;101:4;2340:53:0;80:15:-1;;;-1:-1;;76:31;65:43;;120:4;113:20;13:2;5:11;;2:2;;;29:1;26;19:12;2:2;2340:53:0;;;;;;20:11:-1;15:3;12:20;9:2;;;45:1;42;35:12;9:2;64:21;;126:4;117:14;;142:31;;;139:2;;;186:1;183;176:12;139:2;224:3;218:10;339:9;333:2;319:12;315:21;297:16;293:44;290:59;268:11;254:12;251:29;239:119;236:2;;;371:1;368;361:12;236:2;-1:-1;2340:53:0;;-1:-1:-1;;;;;2247:146:0;2415:1;2403:13;;2398:504;2422:7;:14;2418:1;:18;2398:504;;;2499:7;2507:1;2499:10;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2482:34:0;;:36;;;;;-1:-1:-1;;;2482:36:0;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2482:36:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2482:36:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2482:36:0;2554:31;;;;;;;;2482:36;;-1:-1:-1;;;;;;2554:29:0;;;;;:31;;;;;2482:36;;2554:31;;;;;;;;;:29;:31;;;5:2:-1;;;;30:1;27;20:12;5:2;2554:31:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2554:31:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2554:31:0;2524:61;;;-1:-1:-1;2607:1:0;;-1:-1:-1;2590:308:0;2614:19;2610:1;:23;2590:308;;;2671:9;-1:-1:-1;;;;;2671:25:0;;2697:1;2671:28;;;;;-1:-1:-1;;;2671:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2671:28:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2671:28:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2671:28:0;;-1:-1:-1;;;;;;2709:24:0;;;;;;;2705:188;;2766:43;2774:14;2790:18;2766:7;:43::i;:::-;2742:67;;2834:1;2820:4;:11;:15;2816:70;;;2844:42;2861:6;2869:7;2877:1;2869:10;;;;;;;;;;;;;;;;;;2881:4;2844:16;:42::i;2816:70::-;2635:3;;;;;2590:308;;;2438:3;;;;;2398:504;;;2913:16;;;2927:1;2913:16;;;;;;;;;-1:-1:-1;2041:892:0;;;;;;;;;;;;:::o;3134:837::-;3241:9;3322;3357;3488:21;3546:9;3608;3683:14;3711:9;3762;3288:1;3267:11;:18;:22;:48;;;;;3314:1;3293:11;:18;:22;3267:48;3263:677;;;3334:11;:18;3322:30;;3369:11;:18;3357:30;;3392:91;3403:1;3399;:5;:14;;;;;3412:1;3408;:5;3399:14;:58;;;;;3439:11;3455:1;3451;:5;3439:18;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3417:40:0;:11;3433:1;3429;:5;3417:18;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3417:40:0;;3399:58;3392:91;;;-1:-1:-1;;3465:3:0;;;;3474;;;;;3392:91;;;3530:1;3526;:5;3534:1;3526:9;3512:24;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;136:17;;-1:-1;3512:24:0;;3488:48;;3558:1;3546:13;;3541:57;3561:6;;;3541:57;;3584:11;3596:1;3584:14;;;;;;;;;;;;;;;;;;3574:4;3579:1;3574:7;;;;;;;;;;-1:-1:-1;;;;;3574:24:0;;;:7;;;;;;;;;;:24;3569:3;;;;;3541:57;;;3620:1;3608:13;;3603:74;3627:1;3623;:5;3603:74;;;3659:11;3675:1;3671;:5;3659:18;;;;;;;;;;;;;;;;;;3635:4;3654:1;3640:4;:11;:15;3635:21;;;;;;;;;;-1:-1:-1;;;;;3635:42:0;;;:21;;;;;;;;;;:42;-1:-1:-1;;3630:3:0;;;;3603:74;;;3700:1;3683:18;;3723:1;3711:13;;3706:188;3730:4;:11;3726:1;:15;3706:188;;;-1:-1:-1;3778:1:0;3774:5;;3757:102;3804:1;3800;:5;3785:4;:11;:21;3781:1;:25;3757:102;;;3838:4;3843:1;3838:7;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3827:18:0;:4;3832:1;3827:7;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3827:18:0;;3823:29;;;3851:1;3847:5;;3823:29;3813:1;3808:6;3757:102;;;3881:4;3886:1;3881:7;;;;;;;;;;;;;;;;;;;3864:14;;3869:8;;;;3864:4;;:14;;;;;;-1:-1:-1;;;;;3864:24:0;;;:14;;;;;;;;;;:24;3748:1;3743:6;;;;;3706:188;;;3906:29;3922:4;3928:6;3906:15;:29::i;:::-;3899:36;;;;3263:677;3951:16;;;3965:1;3951:16;;;;;;;;;-1:-1:-1;3134:837:0;;;;;;;;;;;;;:::o;4094:165::-;4203:16;;;4217:1;4203:16;;;;;;;;;4156:9;;;;4203:16;;;;;;;105:10:-1;4203:16:0;88:34:-1;136:17;;-1:-1;4203:16:0;4178:41;;4234:5;4223;4229:1;4223:8;;;;;;;;;;-1:-1:-1;;;;;4223:16:0;;;:8;;;;;;;;;;:16;4250:5;-1:-1:-1;4094:165:0;;;:::o;4455:327::-;4569:9;4591:22;4699:9;4634:6;:13;4630:1;:17;4616:32;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;136:17;;-1:-1;4616:32:0;;4591:57;;4663:6;4652:5;4658:1;4652:8;;;;;;;;;;-1:-1:-1;;;;;4652:17:0;;;:8;;;;;;;;;;:17;4673:8;;4684:6;;4673:5;;4679:1;;4673:8;;;;;;-1:-1:-1;;;;;4673:17:0;;;:8;;;;;;;;;;:17;-1:-1:-1;4711:1:0;4694:68;4718:6;:13;4714:1;:17;4694:68;;;4753:6;4760:1;4753:9;;;;;;;;;;;;;;;;;;4738:5;4748:1;4744;:5;4738:12;;;;;;;;;;-1:-1:-1;;;;;4738:24:0;;;:12;;;;;;;;;;:24;4733:3;;4694:68;;;-1:-1:-1;4773:5:0;4455:327;-1:-1:-1;;;;4455:327:0:o;4938:240::-;5027:9;5049:22;5105:9;5088:7;5074:22;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;136:17;;-1:-1;5074:22:0;;5049:47;;5117:1;5105:13;;5100:58;5124:7;5120:1;:11;5100:58;;;5149:6;5156:1;5149:9;;;;;;;;;;;;;;;;;;5138:5;5144:1;5138:8;;;;;;;;;;-1:-1:-1;;;;;5138:20:0;;;:8;;;;;;;;;;:20;5133:3;;5100:58;;;-1:-1:-1;5169:5:0;4938:240;-1:-1:-1;;;4938:240:0:o" + }, + "methodIdentifiers": { + "acceptOwnership()": "79ba5097", + "anchorToken()": "e1c4c966", + "findPath(address,address)": "a1c421cd", + "newOwner()": "d4ee1d90", + "onlyOwnerCanUpdateRegistry()": "2fe8a6ad", + "owner()": "8da5cb5b", + "prevRegistry()": "61cd756e", + "registry()": "7b103999", + "restoreRegistry()": "b4a176d3", + "restrictRegistryUpdate(bool)": "024c7ec7", + "setAnchorToken(address)": "2f167f05", + "transferOwnership(address)": "f2fde38b", + "updateRegistry()": "49d10b64" + } + }, + "userdoc": { + "methods": {} + } + } + }, + "solidity/contracts/IConversionPathFinder.sol": { + "IConversionPathFinder": { + "abi": [ + { + "constant": true, + "inputs": [ + { + "name": "_sourceToken", + "type": "address" + }, + { + "name": "_targetToken", + "type": "address" + } + ], + "name": "findPath", + "outputs": [ + { + "name": "", + "type": "address[]" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + } + ], + "devdoc": { + "methods": {} + }, + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "findPath(address,address)": "a1c421cd" + } + }, + "userdoc": { + "methods": {} + } + } + }, + "solidity/contracts/ISovrynSwapNetwork.sol": { + "ISovrynSwapNetwork": { + "abi": [ + { + "constant": false, + "inputs": [ + { + "name": "_path", + "type": "address[]" + }, + { + "name": "_amount", + "type": "uint256" + }, + { + "name": "_minReturn", + "type": "uint256" + }, + { + "name": "_for", + "type": "address" + }, + { + "name": "_affiliateAccount", + "type": "address" + }, + { + "name": "_affiliateFee", + "type": "uint256" + } + ], + "name": "claimAndConvertFor2", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_path", + "type": "address[]" + }, + { + "name": "_amount", + "type": "uint256" + }, + { + "name": "_minReturn", + "type": "uint256" + }, + { + "name": "_affiliateAccount", + "type": "address" + }, + { + "name": "_affiliateFee", + "type": "uint256" + } + ], + "name": "convert2", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": true, + "stateMutability": "payable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_path", + "type": "address[]" + }, + { + "name": "_amount", + "type": "uint256" + }, + { + "name": "_minReturn", + "type": "uint256" + }, + { + "name": "_for", + "type": "address" + }, + { + "name": "_affiliateAccount", + "type": "address" + }, + { + "name": "_affiliateFee", + "type": "uint256" + } + ], + "name": "convertFor2", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": true, + "stateMutability": "payable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_path", + "type": "address[]" + }, + { + "name": "_amount", + "type": "uint256" + }, + { + "name": "_minReturn", + "type": "uint256" + }, + { + "name": "_for", + "type": "address" + } + ], + "name": "claimAndConvertFor", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_path", + "type": "address[]" + }, + { + "name": "_amount", + "type": "uint256" + }, + { + "name": "_minReturn", + "type": "uint256" + } + ], + "name": "claimAndConvert", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_path", + "type": "address[]" + }, + { + "name": "_amount", + "type": "uint256" + }, + { + "name": "_minReturn", + "type": "uint256" + }, + { + "name": "_for", + "type": "address" + } + ], + "name": "convertFor", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": true, + "stateMutability": "payable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_path", + "type": "address[]" + }, + { + "name": "_amount", + "type": "uint256" + }, + { + "name": "_minReturn", + "type": "uint256" + }, + { + "name": "_affiliateAccount", + "type": "address" + }, + { + "name": "_affiliateFee", + "type": "uint256" + } + ], + "name": "claimAndConvert2", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_path", + "type": "address[]" + }, + { + "name": "_amount", + "type": "uint256" + }, + { + "name": "_minReturn", + "type": "uint256" + } + ], + "name": "convert", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": true, + "stateMutability": "payable", + "type": "function" + } + ], + "devdoc": { + "methods": {} + }, + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "claimAndConvert(address[],uint256,uint256)": "c7ba24bc", + "claimAndConvert2(address[],uint256,uint256,address,uint256)": "e57738e5", + "claimAndConvertFor(address[],uint256,uint256,address)": "b1e9932b", + "claimAndConvertFor2(address[],uint256,uint256,address,address,uint256)": "2978c10e", + "convert(address[],uint256,uint256)": "f3898a97", + "convert2(address[],uint256,uint256,address,uint256)": "569706eb", + "convertFor(address[],uint256,uint256,address)": "c98fefed", + "convertFor2(address[],uint256,uint256,address,address,uint256)": "ab6214ce" + } + }, + "userdoc": { + "methods": {} + } + } + }, + "solidity/contracts/SovrynSwapNetwork.sol": { + "ILegacyConverter": { + "abi": [ + { + "constant": false, + "inputs": [ + { + "name": "_sourceToken", + "type": "address" + }, + { + "name": "_targetToken", + "type": "address" + }, + { + "name": "_amount", + "type": "uint256" + }, + { + "name": "_minReturn", + "type": "uint256" + } + ], + "name": "change", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ], + "devdoc": { + "methods": {} + }, + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "change(address,address,uint256,uint256)": "5e5144eb" + } + }, + "userdoc": { + "methods": {} + } + }, + "SovrynSwapNetwork": { + "abi": [ + { + "constant": false, + "inputs": [ + { + "name": "_onlyOwnerCanUpdateRegistry", + "type": "bool" + } + ], + "name": "restrictRegistryUpdate", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_token", + "type": "address" + }, + { + "name": "_register", + "type": "bool" + } + ], + "name": "registerEtherToken", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_path", + "type": "address[]" + }, + { + "name": "_amount", + "type": "uint256" + } + ], + "name": "getReturnByPath", + "outputs": [ + { + "name": "", + "type": "uint256" + }, + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_path", + "type": "address[]" + }, + { + "name": "_amount", + "type": "uint256" + }, + { + "name": "_minReturn", + "type": "uint256" + }, + { + "name": "_beneficiary", + "type": "address" + }, + { + "name": "_affiliateAccount", + "type": "address" + }, + { + "name": "_affiliateFee", + "type": "uint256" + } + ], + "name": "claimAndConvertFor2", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "onlyOwnerCanUpdateRegistry", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "updateRegistry", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_path", + "type": "address[]" + }, + { + "name": "_amount", + "type": "uint256" + }, + { + "name": "_minReturn", + "type": "uint256" + }, + { + "name": "_affiliateAccount", + "type": "address" + }, + { + "name": "_affiliateFee", + "type": "uint256" + } + ], + "name": "convert2", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": true, + "stateMutability": "payable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "maxAffiliateFee", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_token", + "type": "address" + }, + { + "name": "_to", + "type": "address" + }, + { + "name": "_amount", + "type": "uint256" + } + ], + "name": "withdrawTokens", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "prevRegistry", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "acceptOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "registry", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_path", + "type": "address[]" + }, + { + "name": "_amount", + "type": "uint256" + } + ], + "name": "rateByPath", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "", + "type": "address" + } + ], + "name": "etherTokens", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_path", + "type": "address[]" + }, + { + "name": "_sovrynSwapX", + "type": "address" + }, + { + "name": "_conversionId", + "type": "uint256" + }, + { + "name": "_minReturn", + "type": "uint256" + }, + { + "name": "_beneficiary", + "type": "address" + } + ], + "name": "completeXConversion", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "owner", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_path", + "type": "address[]" + }, + { + "name": "_amount", + "type": "uint256" + }, + { + "name": "_minReturn", + "type": "uint256" + }, + { + "name": "_beneficiary", + "type": "address" + }, + { + "name": "_affiliateAccount", + "type": "address" + }, + { + "name": "_affiliateFee", + "type": "uint256" + } + ], + "name": "convertFor2", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": true, + "stateMutability": "payable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_path", + "type": "address[]" + }, + { + "name": "_amount", + "type": "uint256" + }, + { + "name": "_minReturn", + "type": "uint256" + }, + { + "name": "_beneficiary", + "type": "address" + } + ], + "name": "claimAndConvertFor", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "restoreRegistry", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_path", + "type": "address[]" + }, + { + "name": "_amount", + "type": "uint256" + }, + { + "name": "_minReturn", + "type": "uint256" + }, + { + "name": "_beneficiary", + "type": "address" + }, + { + "name": "_affiliateAccount", + "type": "address" + }, + { + "name": "_affiliateFee", + "type": "uint256" + } + ], + "name": "convertByPath", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": true, + "stateMutability": "payable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_path", + "type": "address[]" + }, + { + "name": "_amount", + "type": "uint256" + }, + { + "name": "_minReturn", + "type": "uint256" + }, + { + "name": "_targetBlockchain", + "type": "bytes32" + }, + { + "name": "_targetAccount", + "type": "bytes32" + }, + { + "name": "_conversionId", + "type": "uint256" + } + ], + "name": "xConvert", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": true, + "stateMutability": "payable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_path", + "type": "address[]" + }, + { + "name": "_amount", + "type": "uint256" + }, + { + "name": "_minReturn", + "type": "uint256" + } + ], + "name": "claimAndConvert", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_path", + "type": "address[]" + }, + { + "name": "_amount", + "type": "uint256" + }, + { + "name": "_minReturn", + "type": "uint256" + }, + { + "name": "_beneficiary", + "type": "address" + } + ], + "name": "convertFor", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": true, + "stateMutability": "payable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_path", + "type": "address[]" + }, + { + "name": "_amount", + "type": "uint256" + }, + { + "name": "_minReturn", + "type": "uint256" + }, + { + "name": "_targetBlockchain", + "type": "bytes32" + }, + { + "name": "_targetAccount", + "type": "bytes32" + }, + { + "name": "_conversionId", + "type": "uint256" + }, + { + "name": "_affiliateAccount", + "type": "address" + }, + { + "name": "_affiliateFee", + "type": "uint256" + } + ], + "name": "xConvert2", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": true, + "stateMutability": "payable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "newOwner", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_sourceToken", + "type": "address" + }, + { + "name": "_targetToken", + "type": "address" + } + ], + "name": "conversionPath", + "outputs": [ + { + "name": "", + "type": "address[]" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_path", + "type": "address[]" + }, + { + "name": "_amount", + "type": "uint256" + }, + { + "name": "_minReturn", + "type": "uint256" + }, + { + "name": "_affiliateAccount", + "type": "address" + }, + { + "name": "_affiliateFee", + "type": "uint256" + } + ], + "name": "claimAndConvert2", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_path", + "type": "address[]" + }, + { + "name": "_amount", + "type": "uint256" + }, + { + "name": "_minReturn", + "type": "uint256" + } + ], + "name": "convert", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": true, + "stateMutability": "payable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_maxAffiliateFee", + "type": "uint256" + } + ], + "name": "setMaxAffiliateFee", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "name": "_registry", + "type": "address" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "_smartToken", + "type": "address" + }, + { + "indexed": true, + "name": "_fromToken", + "type": "address" + }, + { + "indexed": true, + "name": "_toToken", + "type": "address" + }, + { + "indexed": false, + "name": "_fromAmount", + "type": "uint256" + }, + { + "indexed": false, + "name": "_toAmount", + "type": "uint256" + }, + { + "indexed": false, + "name": "_trader", + "type": "address" + } + ], + "name": "Conversion", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "_prevOwner", + "type": "address" + }, + { + "indexed": true, + "name": "_newOwner", + "type": "address" + } + ], + "name": "OwnerUpdate", + "type": "event" + } + ], + "devdoc": { + "methods": { + "acceptOwnership()": { + "details": "used by a new owner to accept an ownership transfer" + }, + "claimAndConvert(address[],uint256,uint256)": { + "details": "deprecated, backward compatibility" + }, + "claimAndConvert2(address[],uint256,uint256,address,uint256)": { + "details": "deprecated, backward compatibility" + }, + "claimAndConvertFor(address[],uint256,uint256,address)": { + "details": "deprecated, backward compatibility" + }, + "claimAndConvertFor2(address[],uint256,uint256,address,address,uint256)": { + "details": "deprecated, backward compatibility" + }, + "completeXConversion(address[],address,uint256,uint256,address)": { + "details": "allows a user to convert a token that was sent from another blockchain into any other token on the SovrynSwapNetwork ideally this transaction is created before the previous conversion is even complete, so so the input amount isn't known at that point - the amount is actually take from the SovrynSwapX contract directly by specifying the conversion id", + "params": { + "_beneficiary": "wallet to receive the conversion result", + "_conversionId": "pre-determined unique (if non zero) id which refers to this conversion", + "_minReturn": "if the conversion results in an amount smaller than the minimum return - it is cancelled, must be nonzero", + "_path": "conversion path", + "_sovrynSwapX": "address of the SovrynSwapX contract for the source token" + }, + "return": "amount of tokens received from the conversion" + }, + "conversionPath(address,address)": { + "details": "returns the conversion path between two tokens in the network note that this method is quite expensive in terms of gas and should generally be called off-chain", + "params": { + "_sourceToken": "source token address", + "_targetToken": "target token address" + }, + "return": "conversion path between the two tokens" + }, + "convert(address[],uint256,uint256)": { + "details": "deprecated, backward compatibility" + }, + "convert2(address[],uint256,uint256,address,uint256)": { + "details": "deprecated, backward compatibility" + }, + "convertByPath(address[],uint256,uint256,address,address,uint256)": { + "details": "converts the token to any other token in the sovrynSwap network by following a predefined conversion path and transfers the result tokens to a target account affiliate account/fee can also be passed in to receive a conversion fee (on top of the liquidity provider fees) note that the network should already have been given allowance of the source token (if not ETH)", + "params": { + "_affiliateAccount": "wallet address to receive the affiliate fee or 0x0 to disable affiliate fee", + "_affiliateFee": "affiliate fee in PPM or 0 to disable affiliate fee", + "_amount": "amount to convert from, in the source token", + "_beneficiary": "account that will receive the conversion result or 0x0 to send the result to the sender account", + "_minReturn": "if the conversion results in an amount smaller than the minimum return - it is cancelled, must be greater than zero", + "_path": "conversion path, see conversion path format above" + }, + "return": "amount of tokens received from the conversion" + }, + "convertFor(address[],uint256,uint256,address)": { + "details": "deprecated, backward compatibility" + }, + "convertFor2(address[],uint256,uint256,address,address,uint256)": { + "details": "deprecated, backward compatibility" + }, + "getReturnByPath(address[],uint256)": { + "details": "deprecated, backward compatibility" + }, + "rateByPath(address[],uint256)": { + "details": "returns the expected target amount of converting a given amount on a given path note that there is no support for circular paths", + "params": { + "_amount": "amount of _path[0] tokens received from the sender", + "_path": "conversion path (see conversion path format above)" + }, + "return": "expected target amount" + }, + "registerEtherToken(address,bool)": { + "details": "allows the owner to register/unregister ether tokens", + "params": { + "_register": "true to register, false to unregister", + "_token": "ether token contract address" + } + }, + "restoreRegistry()": { + "details": "restores the previous contract-registry" + }, + "restrictRegistryUpdate(bool)": { + "details": "restricts the permission to update the contract-registry", + "params": { + "_onlyOwnerCanUpdateRegistry": "indicates whether or not permission is restricted to owner only" + } + }, + "setMaxAffiliateFee(uint256)": { + "details": "allows the owner to update the maximum affiliate-fee", + "params": { + "_maxAffiliateFee": "maximum affiliate-fee" + } + }, + "transferOwnership(address)": { + "details": "allows transferring the contract ownership the new owner still needs to accept the transfer can only be called by the contract owner", + "params": { + "_newOwner": "new contract owner" + } + }, + "updateRegistry()": { + "details": "updates to the new contract-registry" + }, + "withdrawTokens(address,address,uint256)": { + "details": "withdraws tokens held by the contract and sends them to an account can only be called by the owner", + "params": { + "_amount": "amount to withdraw", + "_to": "account to receive the new amount", + "_token": "ERC20 token contract address" + } + }, + "xConvert(address[],uint256,uint256,bytes32,bytes32,uint256)": { + "details": "converts any other token to BNT in the sovrynSwap network by following a predefined conversion path and transfers the result to an account on a different blockchain note that the network should already have been given allowance of the source token (if not ETH)", + "params": { + "_amount": "amount to convert from, in the source token", + "_conversionId": "pre-determined unique (if non zero) id which refers to this transaction", + "_minReturn": "if the conversion results in an amount smaller than the minimum return - it is cancelled, must be greater than zero", + "_path": "conversion path, see conversion path format above", + "_targetAccount": "address/account on the target blockchain to send the BNT to", + "_targetBlockchain": "blockchain BNT will be issued on" + }, + "return": "the amount of BNT received from this conversion" + }, + "xConvert2(address[],uint256,uint256,bytes32,bytes32,uint256,address,uint256)": { + "details": "converts any other token to BNT in the sovrynSwap network by following a predefined conversion path and transfers the result to an account on a different blockchain note that the network should already have been given allowance of the source token (if not ETH)", + "params": { + "_affiliateAccount": "affiliate account", + "_affiliateFee": "affiliate fee in PPM", + "_amount": "amount to convert from, in the source token", + "_conversionId": "pre-determined unique (if non zero) id which refers to this transaction", + "_minReturn": "if the conversion results in an amount smaller than the minimum return - it is cancelled, must be greater than zero", + "_path": "conversion path, see conversion path format above", + "_targetAccount": "address/account on the target blockchain to send the BNT to", + "_targetBlockchain": "blockchain BNT will be issued on" + }, + "return": "the amount of BNT received from this conversion" + } + } + }, + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "608060405260016004556175306005553480156200001c57600080fd5b5060405160208062003720833981016040525160008054600160a060020a0319163317905580806200005781640100000000620000d2810204565b5060028054600160a060020a03909216600160a060020a03199283168117909155600380549092161790555073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee60005260066020527fa2e5aefc6e2cbe2917a296f0fd89c5f915c487c803db1d98eccb43f14012d711805460ff191660011790556200014d565b600160a060020a03811615156200014a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b50565b6135c3806200015d6000396000f3006080604052600436106101665763ffffffff60e060020a600035041663024c7ec7811461016b57806302ef521e146101875780630c8496cc146101ad5780632978c10e1461021d5780632fe8a6ad146102a657806349d10b64146102cf578063569706eb146102e45780635d732ff2146103475780635e35359e1461035c57806361cd756e1461038657806379ba5097146103b75780637b103999146103cc5780637f9c0ecd146103e15780638077ccf71461043857806389f9cc61146104595780638da5cb5b146104cc578063ab6214ce146104e1578063b1e9932b1461054b578063b4a176d3146105b6578063b77d239b146105cb578063c52173de14610635578063c7ba24bc14610694578063c98fefed146106f2578063cb32564e14610750578063d4ee1d90146107c4578063d734fa19146107d9578063e57738e514610850578063f2fde38b146108c0578063f3898a97146108e1578063f3bc7d2a14610932575b600080fd5b34801561017757600080fd5b50610185600435151561094a565b005b34801561019357600080fd5b50610185600160a060020a03600435166024351515610992565b3480156101b957600080fd5b50604080516020600480358082013583810280860185019096528085526102049536959394602494938501929182918501908490808284375094975050933594506109db9350505050565b6040805192835260208301919091528051918290030190f35b34801561022957600080fd5b50604080516020600480358082013583810280860185019096528085526102949536959394602494938501929182918501908490808284375094975050843595505050602083013592600160a060020a036040820135811693506060820135169150608001356109f3565b60408051918252519081900360200190f35b3480156102b257600080fd5b506102bb610a0e565b604080519115158252519081900360200190f35b3480156102db57600080fd5b50610185610a2f565b604080516020600480358082013583810280860185019096528085526102949536959394602494938501929182918501908490808284375094975050843595505050602083013592600160a060020a036040820135169250606001359050610cae565b34801561035357600080fd5b50610294610cc9565b34801561036857600080fd5b50610185600160a060020a0360043581169060243516604435610ccf565b34801561039257600080fd5b5061039b610d08565b60408051600160a060020a039092168252519081900360200190f35b3480156103c357600080fd5b50610185610d17565b3480156103d857600080fd5b5061039b610dea565b3480156103ed57600080fd5b5060408051602060048035808201358381028086018501909652808552610294953695939460249493850192918291850190849080828437509497505093359450610df99350505050565b34801561044457600080fd5b506102bb600160a060020a0360043516611628565b34801561046557600080fd5b50604080516020600480358082013583810280860185019096528085526102949536959394602494938501929182918501908490808284375094975050600160a060020a03853581169650602086013595604081013595506060013516925061163d915050565b3480156104d857600080fd5b5061039b6117d2565b604080516020600480358082013583810280860185019096528085526102949536959394602494938501929182918501908490808284375094975050843595505050602083013592600160a060020a036040820135811693506060820135169150608001356117e1565b34801561055757600080fd5b5060408051602060048035808201358381028086018501909652808552610294953695939460249493850192918291850190849080828437509497505084359550505060208301359260400135600160a060020a031691506118079050565b3480156105c257600080fd5b50610185611821565b604080516020600480358082013583810280860185019096528085526102949536959394602494938501929182918501908490808284375094975050843595505050602083013592600160a060020a0360408201358116935060608201351691506080013561185a565b604080516020600480358082013583810280860185019096528085526102949536959394602494938501929182918501908490808284375094975050843595505050602083013592604081013592506060810135915060800135611a4e565b3480156106a057600080fd5b506040805160206004803580820135838102808601850190965280855261029495369593946024949385019291829185019084908082843750949750508435955050506020909201359150611a619050565b60408051602060048035808201358381028086018501909652808552610294953695939460249493850192918291850190849080828437509497505084359550505060208301359260400135600160a060020a031691506118079050565b6040805160206004803580820135838102808601850190965280855261029495369593946024949385019291829185019084908082843750949750508435955050506020830135926040810135925060608101359150608081013590600160a060020a0360a0820135169060c00135611a7b565b3480156107d057600080fd5b5061039b611c19565b3480156107e557600080fd5b50610800600160a060020a0360043581169060243516611c28565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561083c578181015183820152602001610824565b505050509050019250505060405180910390f35b34801561085c57600080fd5b50604080516020600480358082013583810280860185019096528085526102949536959394602494938501929182918501908490808284375094975050843595505050602083013592600160a060020a036040820135169250606001359050610cae565b3480156108cc57600080fd5b50610185600160a060020a0360043516611d59565b6040805160206004803580820135838102808601850190965280855261029495369593946024949385019291829185019084908082843750949750508435955050506020909201359150611a619050565b34801561093e57600080fd5b50610185600435611df6565b610952611e5e565b60038054911515740100000000000000000000000000000000000000000274ff000000000000000000000000000000000000000019909216919091179055565b61099a611e5e565b816109a481611ec2565b826109ae81611f25565b5050600160a060020a03919091166000908152600660205260409020805460ff1916911515919091179055565b6000806109e88484610df9565b946000945092505050565b6000610a0387878787878761185a565b979650505050505050565b60035474010000000000000000000000000000000000000000900460ff1681565b60008054600160a060020a0316331480610a64575060035474010000000000000000000000000000000000000000900460ff16155b1515610aba576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b610ae37f436f6e7472616374526567697374727900000000000000000000000000000000611f86565b600254909150600160a060020a03808316911614801590610b0c5750600160a060020a03811615155b1515610b62576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e56414c49445f5245474953545259000000000000000000000000604482015290519081900360640190fd5b604080517fbb34534c0000000000000000000000000000000000000000000000000000000081527f436f6e747261637452656769737472790000000000000000000000000000000060048201529051600091600160a060020a0384169163bb34534c9160248082019260209290919082900301818787803b158015610be657600080fd5b505af1158015610bfa573d6000803e3d6000fd5b505050506040513d6020811015610c1057600080fd5b5051600160a060020a03161415610c71576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e56414c49445f5245474953545259000000000000000000000000604482015290519081900360640190fd5b6002805460038054600160a060020a0380841673ffffffffffffffffffffffffffffffffffffffff19928316179092559091169216919091179055565b6000610cbf8686866000878761185a565b9695505050505050565b60055481565b610cd7611e5e565b82610ce181611ec2565b82610ceb81611ec2565b83610cf581611f25565b610d0086868661201e565b505050505050565b600354600160a060020a031681565b600154600160a060020a03163314610d79576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b60015460008054604051600160a060020a0393841693909116917f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91a3600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b600254600160a060020a031681565b600080600080600080600080600080600080610e347f536f7672796e53776170466f726d756c61000000000000000000000000000000611f86565b94508c9a5060028e51118015610e4f57508d51600290066001145b1515610ea5576040805160e560020a62461bcd02815260206004820152601060248201527f4552525f494e56414c49445f5041544800000000000000000000000000000000604482015290519081900360640190fd5b600293505b8d51841015611616578d60028503815181101515610ec457fe5b9060200190602002015192508d60018503815181101515610ee157fe5b9060200190602002015191508d84815181101515610efb57fe5b90602001906020020151905081600160a060020a0316638da5cb5b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610f4557600080fd5b505af1158015610f59573d6000803e3d6000fd5b505050506040513d6020811015610f6f57600080fd5b50519550610f7d86846120ab565b9250610f8986826120ab565b905081600160a060020a031681600160a060020a031614156112ea576003841080610fe057508d60038503815181101515610fc057fe5b90602001906020020151600160a060020a031682600160a060020a031614155b156110525781600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561102357600080fd5b505af1158015611037573d6000803e3d6000fd5b505050506040513d602081101561104d57600080fd5b505198505b85600160a060020a031663d8959512846040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b1580156110ad57600080fd5b505af11580156110c1573d6000803e3d6000fd5b505050506040513d60208110156110d757600080fd5b5051604080517f0e53aae9000000000000000000000000000000000000000000000000000000008152600160a060020a0386811660048301529151929a5090881691630e53aae99160248082019260a0929091908290030181600087803b15801561114157600080fd5b505af1158015611155573d6000803e3d6000fd5b505050506040513d60a081101561116b57600080fd5b50602090810151604080517ff3250fe2000000000000000000000000000000000000000000000000000000008152600481018d9052602481018c905263ffffffff83166044820152606481018f90529051919950600160a060020a0388169263f3250fe2926084808401938290030181600087803b1580156111ec57600080fd5b505af1158015611200573d6000803e3d6000fd5b505050506040513d602081101561121657600080fd5b5051604080517f579cd3ca0000000000000000000000000000000000000000000000000000000081529051919c506112cc91620f4240916112c091600160a060020a038b169163579cd3ca9160048083019260209291908290030181600087803b15801561128357600080fd5b505af1158015611297573d6000803e3d6000fd5b505050506040513d60208110156112ad57600080fd5b50518e9063ffffffff9081169061210f16565b9063ffffffff61218f16565b9a8b90039a99506112e3898c63ffffffff6121fd16565b985061160b565b81600160a060020a031683600160a060020a031614156115f957600384108061133f57508d6003850381518110151561131f57fe5b90602001906020020151600160a060020a031682600160a060020a031614155b156113b15781600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561138257600080fd5b505af1158015611396573d6000803e3d6000fd5b505050506040513d60208110156113ac57600080fd5b505198505b85600160a060020a031663d8959512826040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b15801561140c57600080fd5b505af1158015611420573d6000803e3d6000fd5b505050506040513d602081101561143657600080fd5b5051604080517f0e53aae9000000000000000000000000000000000000000000000000000000008152600160a060020a0384811660048301529151929a5090881691630e53aae99160248082019260a0929091908290030181600087803b1580156114a057600080fd5b505af11580156114b4573d6000803e3d6000fd5b505050506040513d60a08110156114ca57600080fd5b50602090810151604080517f76cf0b56000000000000000000000000000000000000000000000000000000008152600481018d9052602481018c905263ffffffff83166044820152606481018f90529051919950600160a060020a038816926376cf0b56926084808401938290030181600087803b15801561154b57600080fd5b505af115801561155f573d6000803e3d6000fd5b505050506040513d602081101561157557600080fd5b5051604080517f579cd3ca0000000000000000000000000000000000000000000000000000000081529051919c506115e291620f4240916112c091600160a060020a038b169163579cd3ca9160048083019260209291908290030181600087803b15801561128357600080fd5b9a8b90039a99506112e3898c63ffffffff61225a16565b6116058684838e6122ba565b909b5099505b600284019350610eaa565b50989c9b505050505050505050505050565b60066020526000908152604090205460ff1681565b60008085600160a060020a031663fc0c546a6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561167e57600080fd5b505af1158015611692573d6000803e3d6000fd5b505050506040513d60208110156116a857600080fd5b50518751600160a060020a0390911690889060009081106116c557fe5b60209081029091010151600160a060020a03161461172d576040805160e560020a62461bcd02815260206004820152601860248201527f4552525f494e56414c49445f534f555243455f544f4b454e0000000000000000604482015290519081900360640190fd5b604080517faafd6b76000000000000000000000000000000000000000000000000000000008152600481018790523360248201529051600160a060020a0388169163aafd6b769160448083019260209291908290030181600087803b15801561179557600080fd5b505af11580156117a9573d6000803e3d6000fd5b505050506040513d60208110156117bf57600080fd5b50519050610a038782868660008061185a565b600054600160a060020a031681565b6000846117ed8161239e565b6117fb88888888888861185a565b98975050505050505050565b60006118188585858560008061185a565b95945050505050565b611829611e5e565b6003546002805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055565b60008060006060600061186b6123f6565b60026004558861187a8161239e565b60028c5111801561189057508b51600290066001145b15156118e6576040805160e560020a62461bcd02815260206004820152601060248201527f4552525f494e56414c49445f5041544800000000000000000000000000000000604482015290519081900360640190fd5b6119218c60008151811015156118f857fe5b906020019060200201518d600181518110151561191157fe5b906020019060200201518d612450565b60009450600160a060020a038816151561199057861561198b576040805160e560020a62461bcd02815260206004820152601960248201527f4552525f494e56414c49445f414646494c494154455f46454500000000000000604482015290519081900360640190fd5b6119fd565b8660001080156119a257506005548711155b15156119f8576040805160e560020a62461bcd02815260206004820152601960248201527f4552525f494e56414c49445f414646494c494154455f46454500000000000000604482015290519081900360640190fd5b600194505b339350600160a060020a03891615611a13578893505b611a1e8c8587612654565b9250611a2d838c8c8b8b612a6b565b9150611a3a838386612fcb565b5060016004559a9950505050505050505050565b6000610a03878787878787600080611a7b565b6000611a73848484600080600061185a565b949350505050565b60008060008089611a8b8161239e565b8c518d906000198101908110611a9d57fe5b906020019060200201519350611ad27f536f7672796e5377617058000000000000000000000000000000000000000000611f86565b9250611afd7f424e54546f6b656e000000000000000000000000000000000000000000000000611f86565b600160a060020a03858116911614611b5f576040805160e560020a62461bcd02815260206004820152601860248201527f4552525f494e56414c49445f5441524745545f544f4b454e0000000000000000604482015290519081900360640190fd5b611b6d8d8d8d308b8b61185a565b9150611b7a8484846130ae565b604080517f427c0374000000000000000000000000000000000000000000000000000000008152600481018c9052602481018b905260448101849052606481018a90529051600160a060020a0385169163427c037491608480830192600092919082900301818387803b158015611bf057600080fd5b505af1158015611c04573d6000803e3d6000fd5b50939f9e505050505050505050505050505050565b600154600160a060020a031681565b60606000611c557f436f6e76657273696f6e5061746846696e646572000000000000000000000000611f86565b604080517fa1c421cd000000000000000000000000000000000000000000000000000000008152600160a060020a038781166004830152868116602483015291519293509083169163a1c421cd9160448082019260009290919082900301818387803b158015611cc457600080fd5b505af1158015611cd8573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526020811015611d0157600080fd5b810190808051640100000000811115611d1957600080fd5b82016020810184811115611d2c57600080fd5b8151856020820283011164010000000082111715611d4957600080fd5b50909550505050505b5092915050565b611d61611e5e565b600054600160a060020a0382811691161415611dc7576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f53414d455f4f574e4552000000000000000000000000000000000000604482015290519081900360640190fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b611dfe611e5e565b620f4240811115611e59576040805160e560020a62461bcd02815260206004820152601960248201527f4552525f494e56414c49445f414646494c494154455f46454500000000000000604482015290519081900360640190fd5b600555565b600054600160a060020a03163314611ec0576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b565b600160a060020a0381161515611f22576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b50565b600160a060020a038116301415611f22576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f414444524553535f49535f53454c4600000000000000000000000000604482015290519081900360640190fd5b600254604080517fbb34534c000000000000000000000000000000000000000000000000000000008152600481018490529051600092600160a060020a03169163bb34534c91602480830192602092919082900301818787803b158015611fec57600080fd5b505af1158015612000573d6000803e3d6000fd5b505050506040513d602081101561201657600080fd5b505192915050565b604080517f7472616e7366657228616464726573732c75696e74323536290000000000000081528151908190036019018120600160a060020a03851660248301526044808301859052835180840390910181526064909201909252602081018051600160e060020a0316600160e060020a0319909316929092179091526120a6908490613175565b505050565b600160a060020a03811660009081526006602052604081205460ff1615156120d4575080612109565b6120dd83613203565b156120fd575073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee612109565b61210683613294565b90505b92915050565b6000808315156121225760009150611d52565b5082820282848281151561213257fe5b0414612188576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b9392505050565b6000808083116121e9576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f4449564944455f42595f5a45524f0000000000000000000000000000604482015290519081900360640190fd5b82848115156121f457fe5b04949350505050565b600082820183811015612188576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b6000818310156122b4576040805160e560020a62461bcd02815260206004820152600d60248201527f4552525f554e444552464c4f5700000000000000000000000000000000000000604482015290519081900360640190fd5b50900390565b6000806122c5613521565b604080517f67657452657475726e28616464726573732c616464726573732c75696e74323581527f36290000000000000000000000000000000000000000000000000000000000006020808301919091528251918290036022018220600160a060020a03808b16602485015289166044840152606480840189905284518085039091018152608490930184529082018051600160e060020a0316600160e060020a0319909216919091178152815191929184918b5afa80151561238757600080fd5b505080516020909101519097909650945050505050565b60008111611f22576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f5a45524f5f56414c5545000000000000000000000000000000000000604482015290519081900360640190fd5b600454600114611ec0576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f5245454e5452414e4359000000000000000000000000000000000000604482015290519081900360640190fd5b60008083600160a060020a0316638da5cb5b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561249157600080fd5b505af11580156124a5573d6000803e3d6000fd5b505050506040513d60208110156124bb57600080fd5b505191506124c882613203565b905060003411156125965734831461252a576040805160e560020a62461bcd02815260206004820152601760248201527f4552525f4554485f414d4f554e545f4d49534d41544348000000000000000000604482015290519081900360640190fd5b8015156125915761253a82613294565b600160a060020a031663d0e30db0346040518263ffffffff1660e060020a0281526004016000604051808303818588803b15801561257757600080fd5b505af115801561258b573d6000803e3d6000fd5b50505050505b61264d565b600160a060020a03851660009081526006602052604090205460ff161561262f576125c3853330866133e1565b80156125915784600160a060020a0316632e1a7d4d846040518263ffffffff1660e060020a02815260040180828152602001915050600060405180830381600087803b15801561261257600080fd5b505af1158015612626573d6000803e3d6000fd5b5050505061264d565b801561264157612591853384866133e1565b61264d853330866133e1565b5050505050565b606080600080600080600080600061266a61353c565b8c51600290046040519080825280602002602001820160405280156126a957816020015b61269661353c565b81526020019060019003908161268e5790505b509850600097506126d97f424e54546f6b656e000000000000000000000000000000000000000000000000611f86565b9650600095505b60018d5103861015612874578c866001018151811015156126fd57fe5b90602001906020020151945084600160a060020a0316638da5cb5b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561274757600080fd5b505af115801561275b573d6000803e3d6000fd5b505050506040513d602081101561277157600080fd5b50518d519094508d906002880190811061278757fe5b9060200190602002015192508a801561279e575087155b80156127bb575086600160a060020a031683600160a060020a0316145b915081156127c857600197505b60e06040519081016040528085600160a060020a0316815260200186600160a060020a031681526020018e8881518110151561280057fe5b90602001906020020151600160a060020a0316815260200184600160a060020a031681526020016000600160a060020a0316815260200161284086613203565b15158152831515602090910152896002880481518110151561285e57fe5b60209081029091010152600295909501946126e0565b88600081518110151561288357fe5b6020908102909101810151604080820151600160a060020a0316600090815260069093529091205490915060ff16156128f9578060a00151156128df5773eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee60408201526128f9565b80516128ea90613294565b600160a060020a031660408201525b88518990600019810190811061290b57fe5b60209081029091018101516060810151600160a060020a03166000908152600690925260409091205490915060ff1615612982578060a00151156129685773eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6060820152612982565b805161297390613294565b600160a060020a031660608201525b600095505b8851861015612a5a57888681518110151561299e57fe5b9060200190602002015190508060a0015115612a48578060c00151156129c957306080820152612a43565b60018951038614156129e957600160a060020a038c166080820152612a43565b88866001018151811015156129fa57fe5b9060200190602002015160a0015115612a3c578886600101815181101515612a1e57fe5b6020908102909101015151600160a060020a03166080820152612a43565b3060808201525b612a4f565b3060808201525b600190950194612987565b50969b9a5050505050505050505050565b600080600080612a7961353c565b6000899350600092505b8a51831015612f64578a83815181101515612a9a57fe5b9060200190602002015191508160a0015115612b2b578215801590612ae757508a5130908c906000198601908110612ace57fe5b9060200190602002015160800151600160a060020a0316145b8015612b0e5750604080830151600160a060020a031660009081526006602052205460ff16155b15612b2657612b26826040015183600001518661201e565b612b61565b8160200151600160a060020a03168260400151600160a060020a0316141515612b6157612b6182604001518360000151866130ae565b8160a001511515612c24578151604080840151606085015182517f5e5144eb000000000000000000000000000000000000000000000000000000008152600160a060020a039283166004820152908216602482015260448101889052600160648201529151921691635e5144eb916084808201926020929091908290030181600087803b158015612bf157600080fd5b505af1158015612c05573d6000803e3d6000fd5b505050506040513d6020811015612c1b57600080fd5b50519450612dc1565b604080830151600160a060020a031660009081526006602052205460ff1615612d025781516040808401516060850151608086015183517fe8dc12ff000000000000000000000000000000000000000000000000000000008152600160a060020a03938416600482015291831660248301526044820189905233606483015282166084820152915192169163e8dc12ff91349160a480830192602092919082900301818588803b158015612cd757600080fd5b505af1158015612ceb573d6000803e3d6000fd5b50505050506040513d6020811015612c1b57600080fd5b81516040808401516060850151608086015183517fe8dc12ff000000000000000000000000000000000000000000000000000000008152600160a060020a03938416600482015291831660248301526044820189905233606483015282166084820152915192169163e8dc12ff9160a4808201926020929091908290030181600087803b158015612d9257600080fd5b505af1158015612da6573d6000803e3d6000fd5b505050506040513d6020811015612dbc57600080fd5b505194505b8160c0015115612ed357612de2620f42406112c0878a63ffffffff61210f16565b90508160600151600160a060020a031663a9059cbb89836040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b158015612e4b57600080fd5b505af1158015612e5f573d6000803e3d6000fd5b505050506040513d6020811015612e7557600080fd5b50511515612ecd576040805160e560020a62461bcd02815260206004820152601760248201527f4552525f4645455f5452414e534645525f4641494c4544000000000000000000604482015290519081900360640190fd5b80850394505b8160600151600160a060020a03168260400151600160a060020a03168360200151600160a060020a03167f7154b38b5dd31bb3122436a96d4e09aba5b323ae1fd580025fab55074334c0958789336040518084815260200183815260200182600160a060020a0316600160a060020a03168152602001935050505060405180910390a4849350600190920191612a83565b88851015612fbc576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f52455455524e5f544f4f5f4c4f570000000000000000000000000000604482015290519081900360640190fd5b50929998505050505050505050565b612fd361353c565b6000846001865103815181101515612fe757fe5b602090810290910101516080810151909250600160a060020a0316301461300d5761264d565b506060810151600160a060020a03811660009081526006602052604090205460ff16156130a35760a08201511561304057fe5b80600160a060020a031663205c287884866040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050600060405180830381600087803b15801561261257600080fd5b61264d81848661201e565b604080517fdd62ed3e000000000000000000000000000000000000000000000000000000008152306004820152600160a060020a038481166024830152915160009286169163dd62ed3e91604480830192602092919082900301818787803b15801561311957600080fd5b505af115801561312d573d6000803e3d6000fd5b505050506040513d602081101561314357600080fd5b505190508181101561316f5760008111156131645761316484846000613499565b61316f848484613499565b50505050565b61317d613578565b602060405190810160405280600181525090506020818351602085016000875af18015156131aa57600080fd5b50805115156120a6576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f5452414e534645525f4641494c454400000000000000000000000000604482015290519081900360640190fd5b60008061320e613578565b604080517f69735632384f72486967686572282900000000000000000000000000000000008152815190819003600f018120600482526024820190925260208082018051600160e060020a0316600160e060020a0319909416939093178352815191929091849188611388fa92508280156132895750815115155b93505b505050919050565b60008060008084600160a060020a03166371f52bf36040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156132d857600080fd5b505af11580156132ec573d6000803e3d6000fd5b505050506040513d602081101561330257600080fd5b505161ffff169250600091505b828210156133c35784600160a060020a03166319b64015836040518263ffffffff1660e060020a02815260040180828152602001915050602060405180830381600087803b15801561336057600080fd5b505af1158015613374573d6000803e3d6000fd5b505050506040513d602081101561338a57600080fd5b5051600160a060020a03811660009081526006602052604090205490915060ff16156133b85780935061328c565b60019091019061330f565b5073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee949350505050565b604080517f7472616e7366657246726f6d28616464726573732c616464726573732c75696e81527f74323536290000000000000000000000000000000000000000000000000000006020808301919091528251918290036025018220600160a060020a03808816602485015286166044840152606480840186905284518085039091018152608490930190935281018051600160e060020a0316600160e060020a03199093169290921790915261316f908590613175565b604080517f617070726f766528616464726573732c75696e7432353629000000000000000081528151908190036018018120600160a060020a03851660248301526044808301859052835180840390910181526064909201909252602081018051600160e060020a0316600160e060020a0319909316929092179091526120a6908490613175565b60408051808201825290600290829080388339509192915050565b6040805160e081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c081019190915290565b60206040519081016040528060019060208202803883395091929150505600a165627a7a72305820fc6355c3c67ed050697b7fd7b2bc3393a8cce9829aabb55cbd0c2e454e58c1f40029", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x1 PUSH1 0x4 SSTORE PUSH2 0x7530 PUSH1 0x5 SSTORE CALLVALUE DUP1 ISZERO PUSH3 0x1C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP1 PUSH3 0x3720 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 MSTORE MLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND CALLER OR SWAP1 SSTORE DUP1 DUP1 PUSH3 0x57 DUP2 PUSH5 0x100000000 PUSH3 0xD2 DUP2 MUL DIV JUMP JUMPDEST POP PUSH1 0x2 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT SWAP3 DUP4 AND DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x3 DUP1 SLOAD SWAP1 SWAP3 AND OR SWAP1 SSTORE POP PUSH20 0xEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE PUSH1 0x0 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH32 0xA2E5AEFC6E2CBE2917A296F0FD89C5F915C487C803DB1D98ECCB43F14012D711 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE PUSH3 0x14D JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH3 0x14A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x35C3 DUP1 PUSH3 0x15D PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x166 JUMPI PUSH4 0xFFFFFFFF PUSH1 0xE0 PUSH1 0x2 EXP PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x24C7EC7 DUP2 EQ PUSH2 0x16B JUMPI DUP1 PUSH4 0x2EF521E EQ PUSH2 0x187 JUMPI DUP1 PUSH4 0xC8496CC EQ PUSH2 0x1AD JUMPI DUP1 PUSH4 0x2978C10E EQ PUSH2 0x21D JUMPI DUP1 PUSH4 0x2FE8A6AD EQ PUSH2 0x2A6 JUMPI DUP1 PUSH4 0x49D10B64 EQ PUSH2 0x2CF JUMPI DUP1 PUSH4 0x569706EB EQ PUSH2 0x2E4 JUMPI DUP1 PUSH4 0x5D732FF2 EQ PUSH2 0x347 JUMPI DUP1 PUSH4 0x5E35359E EQ PUSH2 0x35C JUMPI DUP1 PUSH4 0x61CD756E EQ PUSH2 0x386 JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x3B7 JUMPI DUP1 PUSH4 0x7B103999 EQ PUSH2 0x3CC JUMPI DUP1 PUSH4 0x7F9C0ECD EQ PUSH2 0x3E1 JUMPI DUP1 PUSH4 0x8077CCF7 EQ PUSH2 0x438 JUMPI DUP1 PUSH4 0x89F9CC61 EQ PUSH2 0x459 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x4CC JUMPI DUP1 PUSH4 0xAB6214CE EQ PUSH2 0x4E1 JUMPI DUP1 PUSH4 0xB1E9932B EQ PUSH2 0x54B JUMPI DUP1 PUSH4 0xB4A176D3 EQ PUSH2 0x5B6 JUMPI DUP1 PUSH4 0xB77D239B EQ PUSH2 0x5CB JUMPI DUP1 PUSH4 0xC52173DE EQ PUSH2 0x635 JUMPI DUP1 PUSH4 0xC7BA24BC EQ PUSH2 0x694 JUMPI DUP1 PUSH4 0xC98FEFED EQ PUSH2 0x6F2 JUMPI DUP1 PUSH4 0xCB32564E EQ PUSH2 0x750 JUMPI DUP1 PUSH4 0xD4EE1D90 EQ PUSH2 0x7C4 JUMPI DUP1 PUSH4 0xD734FA19 EQ PUSH2 0x7D9 JUMPI DUP1 PUSH4 0xE57738E5 EQ PUSH2 0x850 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x8C0 JUMPI DUP1 PUSH4 0xF3898A97 EQ PUSH2 0x8E1 JUMPI DUP1 PUSH4 0xF3BC7D2A EQ PUSH2 0x932 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x177 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x185 PUSH1 0x4 CALLDATALOAD ISZERO ISZERO PUSH2 0x94A JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x193 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x185 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD ISZERO ISZERO PUSH2 0x992 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1B9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x204 SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP POP SWAP4 CALLDATALOAD SWAP5 POP PUSH2 0x9DB SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x229 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x294 SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP POP DUP5 CALLDATALOAD SWAP6 POP POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD SWAP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x40 DUP3 ADD CALLDATALOAD DUP2 AND SWAP4 POP PUSH1 0x60 DUP3 ADD CALLDATALOAD AND SWAP2 POP PUSH1 0x80 ADD CALLDATALOAD PUSH2 0x9F3 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2B2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2BB PUSH2 0xA0E JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2DB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x185 PUSH2 0xA2F JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x294 SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP POP DUP5 CALLDATALOAD SWAP6 POP POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD SWAP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x40 DUP3 ADD CALLDATALOAD AND SWAP3 POP PUSH1 0x60 ADD CALLDATALOAD SWAP1 POP PUSH2 0xCAE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x353 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x294 PUSH2 0xCC9 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x368 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x185 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0xCCF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x392 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x39B PUSH2 0xD08 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3C3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x185 PUSH2 0xD17 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3D8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x39B PUSH2 0xDEA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3ED JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x294 SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP POP SWAP4 CALLDATALOAD SWAP5 POP PUSH2 0xDF9 SWAP4 POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x444 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2BB PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x1628 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x465 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x294 SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 CALLDATALOAD DUP2 AND SWAP7 POP PUSH1 0x20 DUP7 ADD CALLDATALOAD SWAP6 PUSH1 0x40 DUP2 ADD CALLDATALOAD SWAP6 POP PUSH1 0x60 ADD CALLDATALOAD AND SWAP3 POP PUSH2 0x163D SWAP2 POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4D8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x39B PUSH2 0x17D2 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x294 SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP POP DUP5 CALLDATALOAD SWAP6 POP POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD SWAP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x40 DUP3 ADD CALLDATALOAD DUP2 AND SWAP4 POP PUSH1 0x60 DUP3 ADD CALLDATALOAD AND SWAP2 POP PUSH1 0x80 ADD CALLDATALOAD PUSH2 0x17E1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x557 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x294 SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP POP DUP5 CALLDATALOAD SWAP6 POP POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD SWAP3 PUSH1 0x40 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP2 POP PUSH2 0x1807 SWAP1 POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5C2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x185 PUSH2 0x1821 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x294 SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP POP DUP5 CALLDATALOAD SWAP6 POP POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD SWAP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x40 DUP3 ADD CALLDATALOAD DUP2 AND SWAP4 POP PUSH1 0x60 DUP3 ADD CALLDATALOAD AND SWAP2 POP PUSH1 0x80 ADD CALLDATALOAD PUSH2 0x185A JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x294 SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP POP DUP5 CALLDATALOAD SWAP6 POP POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD SWAP3 PUSH1 0x40 DUP2 ADD CALLDATALOAD SWAP3 POP PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP2 POP PUSH1 0x80 ADD CALLDATALOAD PUSH2 0x1A4E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6A0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x294 SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP POP DUP5 CALLDATALOAD SWAP6 POP POP POP PUSH1 0x20 SWAP1 SWAP3 ADD CALLDATALOAD SWAP2 POP PUSH2 0x1A61 SWAP1 POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x294 SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP POP DUP5 CALLDATALOAD SWAP6 POP POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD SWAP3 PUSH1 0x40 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP2 POP PUSH2 0x1807 SWAP1 POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x294 SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP POP DUP5 CALLDATALOAD SWAP6 POP POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD SWAP3 PUSH1 0x40 DUP2 ADD CALLDATALOAD SWAP3 POP PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP2 POP PUSH1 0x80 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0xA0 DUP3 ADD CALLDATALOAD AND SWAP1 PUSH1 0xC0 ADD CALLDATALOAD PUSH2 0x1A7B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7D0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x39B PUSH2 0x1C19 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7E5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x800 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH2 0x1C28 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP4 MLOAD DUP2 DUP4 ADD MSTORE DUP4 MLOAD SWAP2 SWAP3 DUP4 SWAP3 SWAP1 DUP4 ADD SWAP2 DUP6 DUP2 ADD SWAP2 MUL DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x83C JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x824 JUMP JUMPDEST POP POP POP POP SWAP1 POP ADD SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x85C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x294 SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP POP DUP5 CALLDATALOAD SWAP6 POP POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD SWAP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x40 DUP3 ADD CALLDATALOAD AND SWAP3 POP PUSH1 0x60 ADD CALLDATALOAD SWAP1 POP PUSH2 0xCAE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8CC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x185 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x1D59 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x294 SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP POP DUP5 CALLDATALOAD SWAP6 POP POP POP PUSH1 0x20 SWAP1 SWAP3 ADD CALLDATALOAD SWAP2 POP PUSH2 0x1A61 SWAP1 POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x93E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x185 PUSH1 0x4 CALLDATALOAD PUSH2 0x1DF6 JUMP JUMPDEST PUSH2 0x952 PUSH2 0x1E5E JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD SWAP2 ISZERO ISZERO PUSH21 0x10000000000000000000000000000000000000000 MUL PUSH21 0xFF0000000000000000000000000000000000000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x99A PUSH2 0x1E5E JUMP JUMPDEST DUP2 PUSH2 0x9A4 DUP2 PUSH2 0x1EC2 JUMP JUMPDEST DUP3 PUSH2 0x9AE DUP2 PUSH2 0x1F25 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP2 SWAP1 SWAP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP2 ISZERO ISZERO SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x9E8 DUP5 DUP5 PUSH2 0xDF9 JUMP JUMPDEST SWAP5 PUSH1 0x0 SWAP5 POP SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA03 DUP8 DUP8 DUP8 DUP8 DUP8 DUP8 PUSH2 0x185A JUMP JUMPDEST SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ DUP1 PUSH2 0xA64 JUMPI POP PUSH1 0x3 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST ISZERO ISZERO PUSH2 0xABA JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0xAE3 PUSH32 0x436F6E7472616374526567697374727900000000000000000000000000000000 PUSH2 0x1F86 JUMP JUMPDEST PUSH1 0x2 SLOAD SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP4 AND SWAP2 AND EQ DUP1 ISZERO SWAP1 PUSH2 0xB0C JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO JUMPDEST ISZERO ISZERO PUSH2 0xB62 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245474953545259000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0xBB34534C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH32 0x436F6E7472616374526567697374727900000000000000000000000000000000 PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP2 PUSH4 0xBB34534C SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xBE6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xBFA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xC10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ ISZERO PUSH2 0xC71 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245474953545259000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP5 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP3 DUP4 AND OR SWAP1 SWAP3 SSTORE SWAP1 SWAP2 AND SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH2 0xCBF DUP7 DUP7 DUP7 PUSH1 0x0 DUP8 DUP8 PUSH2 0x185A JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x5 SLOAD DUP2 JUMP JUMPDEST PUSH2 0xCD7 PUSH2 0x1E5E JUMP JUMPDEST DUP3 PUSH2 0xCE1 DUP2 PUSH2 0x1EC2 JUMP JUMPDEST DUP3 PUSH2 0xCEB DUP2 PUSH2 0x1EC2 JUMP JUMPDEST DUP4 PUSH2 0xCF5 DUP2 PUSH2 0x1F25 JUMP JUMPDEST PUSH2 0xD00 DUP7 DUP7 DUP7 PUSH2 0x201E JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0xD79 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND SWAP4 SWAP1 SWAP2 AND SWAP2 PUSH32 0x343765429AEA5A34B3FF6A3785A98A5ABB2597ACA87BFBB58632C173D585373A SWAP2 LOG3 PUSH1 0x1 DUP1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND OR SWAP1 SWAP2 SSTORE AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0xE34 PUSH32 0x536F7672796E53776170466F726D756C61000000000000000000000000000000 PUSH2 0x1F86 JUMP JUMPDEST SWAP5 POP DUP13 SWAP11 POP PUSH1 0x2 DUP15 MLOAD GT DUP1 ISZERO PUSH2 0xE4F JUMPI POP DUP14 MLOAD PUSH1 0x2 SWAP1 MOD PUSH1 0x1 EQ JUMPDEST ISZERO ISZERO PUSH2 0xEA5 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5041544800000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x2 SWAP4 POP JUMPDEST DUP14 MLOAD DUP5 LT ISZERO PUSH2 0x1616 JUMPI DUP14 PUSH1 0x2 DUP6 SUB DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xEC4 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD SWAP3 POP DUP14 PUSH1 0x1 DUP6 SUB DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xEE1 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD SWAP2 POP DUP14 DUP5 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xEFB JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD SWAP1 POP DUP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x8DA5CB5B PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xF45 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xF59 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xF6F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP6 POP PUSH2 0xF7D DUP7 DUP5 PUSH2 0x20AB JUMP JUMPDEST SWAP3 POP PUSH2 0xF89 DUP7 DUP3 PUSH2 0x20AB JUMP JUMPDEST SWAP1 POP DUP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ ISZERO PUSH2 0x12EA JUMPI PUSH1 0x3 DUP5 LT DUP1 PUSH2 0xFE0 JUMPI POP DUP14 PUSH1 0x3 DUP6 SUB DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xFC0 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ ISZERO JUMPDEST ISZERO PUSH2 0x1052 JUMPI DUP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x18160DDD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1023 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1037 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x104D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP9 POP JUMPDEST DUP6 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xD8959512 DUP5 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x10AD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x10C1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x10D7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xE53AAE900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 MLOAD SWAP3 SWAP11 POP SWAP1 DUP9 AND SWAP2 PUSH4 0xE53AAE9 SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0xA0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1141 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1155 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0xA0 DUP2 LT ISZERO PUSH2 0x116B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x20 SWAP1 DUP2 ADD MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xF3250FE200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP14 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP13 SWAP1 MSTORE PUSH4 0xFFFFFFFF DUP4 AND PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 DUP2 ADD DUP16 SWAP1 MSTORE SWAP1 MLOAD SWAP2 SWAP10 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 AND SWAP3 PUSH4 0xF3250FE2 SWAP3 PUSH1 0x84 DUP1 DUP5 ADD SWAP4 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x11EC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1200 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1216 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x579CD3CA00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP13 POP PUSH2 0x12CC SWAP2 PUSH3 0xF4240 SWAP2 PUSH2 0x12C0 SWAP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND SWAP2 PUSH4 0x579CD3CA SWAP2 PUSH1 0x4 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1283 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1297 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x12AD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD DUP15 SWAP1 PUSH4 0xFFFFFFFF SWAP1 DUP2 AND SWAP1 PUSH2 0x210F AND JUMP JUMPDEST SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x218F AND JUMP JUMPDEST SWAP11 DUP12 SWAP1 SUB SWAP11 SWAP10 POP PUSH2 0x12E3 DUP10 DUP13 PUSH4 0xFFFFFFFF PUSH2 0x21FD AND JUMP JUMPDEST SWAP9 POP PUSH2 0x160B JUMP JUMPDEST DUP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ ISZERO PUSH2 0x15F9 JUMPI PUSH1 0x3 DUP5 LT DUP1 PUSH2 0x133F JUMPI POP DUP14 PUSH1 0x3 DUP6 SUB DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x131F JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ ISZERO JUMPDEST ISZERO PUSH2 0x13B1 JUMPI DUP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x18160DDD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1382 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1396 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x13AC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP9 POP JUMPDEST DUP6 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xD8959512 DUP3 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x140C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1420 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1436 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xE53AAE900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 MLOAD SWAP3 SWAP11 POP SWAP1 DUP9 AND SWAP2 PUSH4 0xE53AAE9 SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0xA0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x14A0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x14B4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0xA0 DUP2 LT ISZERO PUSH2 0x14CA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x20 SWAP1 DUP2 ADD MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x76CF0B5600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP14 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP13 SWAP1 MSTORE PUSH4 0xFFFFFFFF DUP4 AND PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 DUP2 ADD DUP16 SWAP1 MSTORE SWAP1 MLOAD SWAP2 SWAP10 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 AND SWAP3 PUSH4 0x76CF0B56 SWAP3 PUSH1 0x84 DUP1 DUP5 ADD SWAP4 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x154B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x155F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1575 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x579CD3CA00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP13 POP PUSH2 0x15E2 SWAP2 PUSH3 0xF4240 SWAP2 PUSH2 0x12C0 SWAP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND SWAP2 PUSH4 0x579CD3CA SWAP2 PUSH1 0x4 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1283 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP11 DUP12 SWAP1 SUB SWAP11 SWAP10 POP PUSH2 0x12E3 DUP10 DUP13 PUSH4 0xFFFFFFFF PUSH2 0x225A AND JUMP JUMPDEST PUSH2 0x1605 DUP7 DUP5 DUP4 DUP15 PUSH2 0x22BA JUMP JUMPDEST SWAP1 SWAP12 POP SWAP10 POP JUMPDEST PUSH1 0x2 DUP5 ADD SWAP4 POP PUSH2 0xEAA JUMP JUMPDEST POP SWAP9 SWAP13 SWAP12 POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP6 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xFC0C546A PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x167E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1692 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x16A8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD DUP8 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP2 AND SWAP1 DUP9 SWAP1 PUSH1 0x0 SWAP1 DUP2 LT PUSH2 0x16C5 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ PUSH2 0x172D JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F534F555243455F544F4B454E0000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0xAAFD6B7600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP8 SWAP1 MSTORE CALLER PUSH1 0x24 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 AND SWAP2 PUSH4 0xAAFD6B76 SWAP2 PUSH1 0x44 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1795 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x17A9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x17BF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 POP PUSH2 0xA03 DUP8 DUP3 DUP7 DUP7 PUSH1 0x0 DUP1 PUSH2 0x185A JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH2 0x17ED DUP2 PUSH2 0x239E JUMP JUMPDEST PUSH2 0x17FB DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 PUSH2 0x185A JUMP JUMPDEST SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1818 DUP6 DUP6 DUP6 DUP6 PUSH1 0x0 DUP1 PUSH2 0x185A JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH2 0x1829 PUSH2 0x1E5E JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x2 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 PUSH1 0x0 PUSH2 0x186B PUSH2 0x23F6 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE DUP9 PUSH2 0x187A DUP2 PUSH2 0x239E JUMP JUMPDEST PUSH1 0x2 DUP13 MLOAD GT DUP1 ISZERO PUSH2 0x1890 JUMPI POP DUP12 MLOAD PUSH1 0x2 SWAP1 MOD PUSH1 0x1 EQ JUMPDEST ISZERO ISZERO PUSH2 0x18E6 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5041544800000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x1921 DUP13 PUSH1 0x0 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x18F8 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD DUP14 PUSH1 0x1 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x1911 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD DUP14 PUSH2 0x2450 JUMP JUMPDEST PUSH1 0x0 SWAP5 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 AND ISZERO ISZERO PUSH2 0x1990 JUMPI DUP7 ISZERO PUSH2 0x198B JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F414646494C494154455F46454500000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x19FD JUMP JUMPDEST DUP7 PUSH1 0x0 LT DUP1 ISZERO PUSH2 0x19A2 JUMPI POP PUSH1 0x5 SLOAD DUP8 GT ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x19F8 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F414646494C494154455F46454500000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SWAP5 POP JUMPDEST CALLER SWAP4 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP10 AND ISZERO PUSH2 0x1A13 JUMPI DUP9 SWAP4 POP JUMPDEST PUSH2 0x1A1E DUP13 DUP6 DUP8 PUSH2 0x2654 JUMP JUMPDEST SWAP3 POP PUSH2 0x1A2D DUP4 DUP13 DUP13 DUP12 DUP12 PUSH2 0x2A6B JUMP JUMPDEST SWAP2 POP PUSH2 0x1A3A DUP4 DUP4 DUP7 PUSH2 0x2FCB JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x4 SSTORE SWAP11 SWAP10 POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA03 DUP8 DUP8 DUP8 DUP8 DUP8 DUP8 PUSH1 0x0 DUP1 PUSH2 0x1A7B JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1A73 DUP5 DUP5 DUP5 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x185A JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 DUP10 PUSH2 0x1A8B DUP2 PUSH2 0x239E JUMP JUMPDEST DUP13 MLOAD DUP14 SWAP1 PUSH1 0x0 NOT DUP2 ADD SWAP1 DUP2 LT PUSH2 0x1A9D JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD SWAP4 POP PUSH2 0x1AD2 PUSH32 0x536F7672796E5377617058000000000000000000000000000000000000000000 PUSH2 0x1F86 JUMP JUMPDEST SWAP3 POP PUSH2 0x1AFD PUSH32 0x424E54546F6B656E000000000000000000000000000000000000000000000000 PUSH2 0x1F86 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 DUP2 AND SWAP2 AND EQ PUSH2 0x1B5F JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5441524745545F544F4B454E0000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x1B6D DUP14 DUP14 DUP14 ADDRESS DUP12 DUP12 PUSH2 0x185A JUMP JUMPDEST SWAP2 POP PUSH2 0x1B7A DUP5 DUP5 DUP5 PUSH2 0x30AE JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x427C037400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP13 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP12 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x64 DUP2 ADD DUP11 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND SWAP2 PUSH4 0x427C0374 SWAP2 PUSH1 0x84 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1BF0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1C04 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP SWAP4 SWAP16 SWAP15 POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0x1C55 PUSH32 0x436F6E76657273696F6E5061746846696E646572000000000000000000000000 PUSH2 0x1F86 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0xA1C421CD00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP7 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE SWAP2 MLOAD SWAP3 SWAP4 POP SWAP1 DUP4 AND SWAP2 PUSH4 0xA1C421CD SWAP2 PUSH1 0x44 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1CC4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1CD8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1D01 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 MLOAD PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x1D19 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD PUSH1 0x20 DUP2 ADD DUP5 DUP2 GT ISZERO PUSH2 0x1D2C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP6 PUSH1 0x20 DUP3 MUL DUP4 ADD GT PUSH5 0x100000000 DUP3 GT OR ISZERO PUSH2 0x1D49 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP SWAP1 SWAP6 POP POP POP POP POP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1D61 PUSH2 0x1E5E JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x1DC7 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F4F574E4552000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x1DFE PUSH2 0x1E5E JUMP JUMPDEST PUSH3 0xF4240 DUP2 GT ISZERO PUSH2 0x1E59 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F414646494C494154455F46454500000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x5 SSTORE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x1EC0 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0x1F22 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ADDRESS EQ ISZERO PUSH2 0x1F22 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F414444524553535F49535F53454C4600000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xBB34534C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP2 PUSH4 0xBB34534C SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1FEC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2000 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2016 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x7472616E7366657228616464726573732C75696E743235362900000000000000 DUP2 MSTORE DUP2 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x19 ADD DUP2 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x64 SWAP1 SWAP3 ADD SWAP1 SWAP3 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0xE0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xE0 PUSH1 0x2 EXP SUB NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE PUSH2 0x20A6 SWAP1 DUP5 SWAP1 PUSH2 0x3175 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO ISZERO PUSH2 0x20D4 JUMPI POP DUP1 PUSH2 0x2109 JUMP JUMPDEST PUSH2 0x20DD DUP4 PUSH2 0x3203 JUMP JUMPDEST ISZERO PUSH2 0x20FD JUMPI POP PUSH20 0xEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE PUSH2 0x2109 JUMP JUMPDEST PUSH2 0x2106 DUP4 PUSH2 0x3294 JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 ISZERO ISZERO PUSH2 0x2122 JUMPI PUSH1 0x0 SWAP2 POP PUSH2 0x1D52 JUMP JUMPDEST POP DUP3 DUP3 MUL DUP3 DUP5 DUP3 DUP2 ISZERO ISZERO PUSH2 0x2132 JUMPI INVALID JUMPDEST DIV EQ PUSH2 0x2188 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP4 GT PUSH2 0x21E9 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4449564944455F42595F5A45524F0000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP3 DUP5 DUP2 ISZERO ISZERO PUSH2 0x21F4 JUMPI INVALID JUMPDEST DIV SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 ADD DUP4 DUP2 LT ISZERO PUSH2 0x2188 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 DUP4 LT ISZERO PUSH2 0x22B4 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F554E444552464C4F5700000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP SWAP1 SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x22C5 PUSH2 0x3521 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x67657452657475726E28616464726573732C616464726573732C75696E743235 DUP2 MSTORE PUSH32 0x3629000000000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP3 MLOAD SWAP2 DUP3 SWAP1 SUB PUSH1 0x22 ADD DUP3 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP12 AND PUSH1 0x24 DUP6 ADD MSTORE DUP10 AND PUSH1 0x44 DUP5 ADD MSTORE PUSH1 0x64 DUP1 DUP5 ADD DUP10 SWAP1 MSTORE DUP5 MLOAD DUP1 DUP6 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x84 SWAP1 SWAP4 ADD DUP5 MSTORE SWAP1 DUP3 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0xE0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xE0 PUSH1 0x2 EXP SUB NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR DUP2 MSTORE DUP2 MLOAD SWAP2 SWAP3 SWAP2 DUP5 SWAP2 DUP12 GAS STATICCALL DUP1 ISZERO ISZERO PUSH2 0x2387 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD MLOAD SWAP1 SWAP8 SWAP1 SWAP7 POP SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 GT PUSH2 0x1F22 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5A45524F5F56414C5545000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x4 SLOAD PUSH1 0x1 EQ PUSH2 0x1EC0 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5245454E5452414E4359000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x8DA5CB5B PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2491 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x24A5 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x24BB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 POP PUSH2 0x24C8 DUP3 PUSH2 0x3203 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 CALLVALUE GT ISZERO PUSH2 0x2596 JUMPI CALLVALUE DUP4 EQ PUSH2 0x252A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4554485F414D4F554E545F4D49534D41544348000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP1 ISZERO ISZERO PUSH2 0x2591 JUMPI PUSH2 0x253A DUP3 PUSH2 0x3294 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xD0E30DB0 CALLVALUE PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2577 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x258B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP JUMPDEST PUSH2 0x264D JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x262F JUMPI PUSH2 0x25C3 DUP6 CALLER ADDRESS DUP7 PUSH2 0x33E1 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2591 JUMPI DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x2E1A7D4D DUP5 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2612 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2626 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x264D JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2641 JUMPI PUSH2 0x2591 DUP6 CALLER DUP5 DUP7 PUSH2 0x33E1 JUMP JUMPDEST PUSH2 0x264D DUP6 CALLER ADDRESS DUP7 PUSH2 0x33E1 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x266A PUSH2 0x353C JUMP JUMPDEST DUP13 MLOAD PUSH1 0x2 SWAP1 DIV PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x26A9 JUMPI DUP2 PUSH1 0x20 ADD JUMPDEST PUSH2 0x2696 PUSH2 0x353C JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 SWAP1 SUB SWAP1 DUP2 PUSH2 0x268E JUMPI SWAP1 POP JUMPDEST POP SWAP9 POP PUSH1 0x0 SWAP8 POP PUSH2 0x26D9 PUSH32 0x424E54546F6B656E000000000000000000000000000000000000000000000000 PUSH2 0x1F86 JUMP JUMPDEST SWAP7 POP PUSH1 0x0 SWAP6 POP JUMPDEST PUSH1 0x1 DUP14 MLOAD SUB DUP7 LT ISZERO PUSH2 0x2874 JUMPI DUP13 DUP7 PUSH1 0x1 ADD DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x26FD JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD SWAP5 POP DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x8DA5CB5B PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2747 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x275B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2771 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD DUP14 MLOAD SWAP1 SWAP5 POP DUP14 SWAP1 PUSH1 0x2 DUP9 ADD SWAP1 DUP2 LT PUSH2 0x2787 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD SWAP3 POP DUP11 DUP1 ISZERO PUSH2 0x279E JUMPI POP DUP8 ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x27BB JUMPI POP DUP7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ JUMPDEST SWAP2 POP DUP2 ISZERO PUSH2 0x27C8 JUMPI PUSH1 0x1 SWAP8 POP JUMPDEST PUSH1 0xE0 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 DUP6 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP15 DUP9 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x2800 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x2840 DUP7 PUSH2 0x3203 JUMP JUMPDEST ISZERO ISZERO DUP2 MSTORE DUP4 ISZERO ISZERO PUSH1 0x20 SWAP1 SWAP2 ADD MSTORE DUP10 PUSH1 0x2 DUP9 DIV DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x285E JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MSTORE PUSH1 0x2 SWAP6 SWAP1 SWAP6 ADD SWAP5 PUSH2 0x26E0 JUMP JUMPDEST DUP9 PUSH1 0x0 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x2883 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x40 DUP1 DUP3 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 SWAP1 SWAP4 MSTORE SWAP1 SWAP2 KECCAK256 SLOAD SWAP1 SWAP2 POP PUSH1 0xFF AND ISZERO PUSH2 0x28F9 JUMPI DUP1 PUSH1 0xA0 ADD MLOAD ISZERO PUSH2 0x28DF JUMPI PUSH20 0xEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE PUSH1 0x40 DUP3 ADD MSTORE PUSH2 0x28F9 JUMP JUMPDEST DUP1 MLOAD PUSH2 0x28EA SWAP1 PUSH2 0x3294 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x40 DUP3 ADD MSTORE JUMPDEST DUP9 MLOAD DUP10 SWAP1 PUSH1 0x0 NOT DUP2 ADD SWAP1 DUP2 LT PUSH2 0x290B JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x60 DUP2 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 SWAP1 SWAP3 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 SLOAD SWAP1 SWAP2 POP PUSH1 0xFF AND ISZERO PUSH2 0x2982 JUMPI DUP1 PUSH1 0xA0 ADD MLOAD ISZERO PUSH2 0x2968 JUMPI PUSH20 0xEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE PUSH1 0x60 DUP3 ADD MSTORE PUSH2 0x2982 JUMP JUMPDEST DUP1 MLOAD PUSH2 0x2973 SWAP1 PUSH2 0x3294 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x60 DUP3 ADD MSTORE JUMPDEST PUSH1 0x0 SWAP6 POP JUMPDEST DUP9 MLOAD DUP7 LT ISZERO PUSH2 0x2A5A JUMPI DUP9 DUP7 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x299E JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD SWAP1 POP DUP1 PUSH1 0xA0 ADD MLOAD ISZERO PUSH2 0x2A48 JUMPI DUP1 PUSH1 0xC0 ADD MLOAD ISZERO PUSH2 0x29C9 JUMPI ADDRESS PUSH1 0x80 DUP3 ADD MSTORE PUSH2 0x2A43 JUMP JUMPDEST PUSH1 0x1 DUP10 MLOAD SUB DUP7 EQ ISZERO PUSH2 0x29E9 JUMPI PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP13 AND PUSH1 0x80 DUP3 ADD MSTORE PUSH2 0x2A43 JUMP JUMPDEST DUP9 DUP7 PUSH1 0x1 ADD DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x29FA JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0xA0 ADD MLOAD ISZERO PUSH2 0x2A3C JUMPI DUP9 DUP7 PUSH1 0x1 ADD DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x2A1E JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MLOAD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x80 DUP3 ADD MSTORE PUSH2 0x2A43 JUMP JUMPDEST ADDRESS PUSH1 0x80 DUP3 ADD MSTORE JUMPDEST PUSH2 0x2A4F JUMP JUMPDEST ADDRESS PUSH1 0x80 DUP3 ADD MSTORE JUMPDEST PUSH1 0x1 SWAP1 SWAP6 ADD SWAP5 PUSH2 0x2987 JUMP JUMPDEST POP SWAP7 SWAP12 SWAP11 POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x2A79 PUSH2 0x353C JUMP JUMPDEST PUSH1 0x0 DUP10 SWAP4 POP PUSH1 0x0 SWAP3 POP JUMPDEST DUP11 MLOAD DUP4 LT ISZERO PUSH2 0x2F64 JUMPI DUP11 DUP4 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x2A9A JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD SWAP2 POP DUP2 PUSH1 0xA0 ADD MLOAD ISZERO PUSH2 0x2B2B JUMPI DUP3 ISZERO DUP1 ISZERO SWAP1 PUSH2 0x2AE7 JUMPI POP DUP11 MLOAD ADDRESS SWAP1 DUP13 SWAP1 PUSH1 0x0 NOT DUP7 ADD SWAP1 DUP2 LT PUSH2 0x2ACE JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x80 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ JUMPDEST DUP1 ISZERO PUSH2 0x2B0E JUMPI POP PUSH1 0x40 DUP1 DUP4 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE KECCAK256 SLOAD PUSH1 0xFF AND ISZERO JUMPDEST ISZERO PUSH2 0x2B26 JUMPI PUSH2 0x2B26 DUP3 PUSH1 0x40 ADD MLOAD DUP4 PUSH1 0x0 ADD MLOAD DUP7 PUSH2 0x201E JUMP JUMPDEST PUSH2 0x2B61 JUMP JUMPDEST DUP2 PUSH1 0x20 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP3 PUSH1 0x40 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ ISZERO ISZERO PUSH2 0x2B61 JUMPI PUSH2 0x2B61 DUP3 PUSH1 0x40 ADD MLOAD DUP4 PUSH1 0x0 ADD MLOAD DUP7 PUSH2 0x30AE JUMP JUMPDEST DUP2 PUSH1 0xA0 ADD MLOAD ISZERO ISZERO PUSH2 0x2C24 JUMPI DUP2 MLOAD PUSH1 0x40 DUP1 DUP5 ADD MLOAD PUSH1 0x60 DUP6 ADD MLOAD DUP3 MLOAD PUSH32 0x5E5144EB00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 DUP4 AND PUSH1 0x4 DUP3 ADD MSTORE SWAP1 DUP3 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 DUP2 ADD DUP9 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x64 DUP3 ADD MSTORE SWAP2 MLOAD SWAP3 AND SWAP2 PUSH4 0x5E5144EB SWAP2 PUSH1 0x84 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2BF1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2C05 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2C1B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP5 POP PUSH2 0x2DC1 JUMP JUMPDEST PUSH1 0x40 DUP1 DUP4 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x2D02 JUMPI DUP2 MLOAD PUSH1 0x40 DUP1 DUP5 ADD MLOAD PUSH1 0x60 DUP6 ADD MLOAD PUSH1 0x80 DUP7 ADD MLOAD DUP4 MLOAD PUSH32 0xE8DC12FF00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND PUSH1 0x4 DUP3 ADD MSTORE SWAP2 DUP4 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP3 ADD DUP10 SWAP1 MSTORE CALLER PUSH1 0x64 DUP4 ADD MSTORE DUP3 AND PUSH1 0x84 DUP3 ADD MSTORE SWAP2 MLOAD SWAP3 AND SWAP2 PUSH4 0xE8DC12FF SWAP2 CALLVALUE SWAP2 PUSH1 0xA4 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP6 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2CD7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2CEB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2C1B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x40 DUP1 DUP5 ADD MLOAD PUSH1 0x60 DUP6 ADD MLOAD PUSH1 0x80 DUP7 ADD MLOAD DUP4 MLOAD PUSH32 0xE8DC12FF00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND PUSH1 0x4 DUP3 ADD MSTORE SWAP2 DUP4 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP3 ADD DUP10 SWAP1 MSTORE CALLER PUSH1 0x64 DUP4 ADD MSTORE DUP3 AND PUSH1 0x84 DUP3 ADD MSTORE SWAP2 MLOAD SWAP3 AND SWAP2 PUSH4 0xE8DC12FF SWAP2 PUSH1 0xA4 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2D92 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2DA6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2DBC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP5 POP JUMPDEST DUP2 PUSH1 0xC0 ADD MLOAD ISZERO PUSH2 0x2ED3 JUMPI PUSH2 0x2DE2 PUSH3 0xF4240 PUSH2 0x12C0 DUP8 DUP11 PUSH4 0xFFFFFFFF PUSH2 0x210F AND JUMP JUMPDEST SWAP1 POP DUP2 PUSH1 0x60 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xA9059CBB DUP10 DUP4 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2E4B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2E5F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2E75 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD ISZERO ISZERO PUSH2 0x2ECD JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4645455F5452414E534645525F4641494C4544000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP1 DUP6 SUB SWAP5 POP JUMPDEST DUP2 PUSH1 0x60 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP3 PUSH1 0x40 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP4 PUSH1 0x20 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH32 0x7154B38B5DD31BB3122436A96D4E09ABA5B323AE1FD580025FAB55074334C095 DUP8 DUP10 CALLER PUSH1 0x40 MLOAD DUP1 DUP5 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP4 POP POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 DUP5 SWAP4 POP PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 PUSH2 0x2A83 JUMP JUMPDEST DUP9 DUP6 LT ISZERO PUSH2 0x2FBC JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F52455455524E5F544F4F5F4C4F570000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP SWAP3 SWAP10 SWAP9 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x2FD3 PUSH2 0x353C JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH1 0x1 DUP7 MLOAD SUB DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x2FE7 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MLOAD PUSH1 0x80 DUP2 ADD MLOAD SWAP1 SWAP3 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND ADDRESS EQ PUSH2 0x300D JUMPI PUSH2 0x264D JUMP JUMPDEST POP PUSH1 0x60 DUP2 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x30A3 JUMPI PUSH1 0xA0 DUP3 ADD MLOAD ISZERO PUSH2 0x3040 JUMPI INVALID JUMPDEST DUP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x205C2878 DUP5 DUP7 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2612 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x264D DUP2 DUP5 DUP7 PUSH2 0x201E JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0xDD62ED3E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE SWAP2 MLOAD PUSH1 0x0 SWAP3 DUP7 AND SWAP2 PUSH4 0xDD62ED3E SWAP2 PUSH1 0x44 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3119 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x312D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x3143 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 POP DUP2 DUP2 LT ISZERO PUSH2 0x316F JUMPI PUSH1 0x0 DUP2 GT ISZERO PUSH2 0x3164 JUMPI PUSH2 0x3164 DUP5 DUP5 PUSH1 0x0 PUSH2 0x3499 JUMP JUMPDEST PUSH2 0x316F DUP5 DUP5 DUP5 PUSH2 0x3499 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0x317D PUSH2 0x3578 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE POP SWAP1 POP PUSH1 0x20 DUP2 DUP4 MLOAD PUSH1 0x20 DUP6 ADD PUSH1 0x0 DUP8 GAS CALL DUP1 ISZERO ISZERO PUSH2 0x31AA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD ISZERO ISZERO PUSH2 0x20A6 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5452414E534645525F4641494C454400000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x320E PUSH2 0x3578 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x69735632384F7248696768657228290000000000000000000000000000000000 DUP2 MSTORE DUP2 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0xF ADD DUP2 KECCAK256 PUSH1 0x4 DUP3 MSTORE PUSH1 0x24 DUP3 ADD SWAP1 SWAP3 MSTORE PUSH1 0x20 DUP1 DUP3 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0xE0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xE0 PUSH1 0x2 EXP SUB NOT SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 OR DUP4 MSTORE DUP2 MLOAD SWAP2 SWAP3 SWAP1 SWAP2 DUP5 SWAP2 DUP9 PUSH2 0x1388 STATICCALL SWAP3 POP DUP3 DUP1 ISZERO PUSH2 0x3289 JUMPI POP DUP2 MLOAD ISZERO ISZERO JUMPDEST SWAP4 POP JUMPDEST POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x71F52BF3 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x32D8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x32EC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x3302 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH2 0xFFFF AND SWAP3 POP PUSH1 0x0 SWAP2 POP JUMPDEST DUP3 DUP3 LT ISZERO PUSH2 0x33C3 JUMPI DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x19B64015 DUP4 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3360 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3374 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x338A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 SWAP2 POP PUSH1 0xFF AND ISZERO PUSH2 0x33B8 JUMPI DUP1 SWAP4 POP PUSH2 0x328C JUMP JUMPDEST PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x330F JUMP JUMPDEST POP PUSH20 0xEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x7472616E7366657246726F6D28616464726573732C616464726573732C75696E DUP2 MSTORE PUSH32 0x7432353629000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP3 MLOAD SWAP2 DUP3 SWAP1 SUB PUSH1 0x25 ADD DUP3 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP9 AND PUSH1 0x24 DUP6 ADD MSTORE DUP7 AND PUSH1 0x44 DUP5 ADD MSTORE PUSH1 0x64 DUP1 DUP5 ADD DUP7 SWAP1 MSTORE DUP5 MLOAD DUP1 DUP6 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x84 SWAP1 SWAP4 ADD SWAP1 SWAP4 MSTORE DUP2 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0xE0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xE0 PUSH1 0x2 EXP SUB NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE PUSH2 0x316F SWAP1 DUP6 SWAP1 PUSH2 0x3175 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x617070726F766528616464726573732C75696E74323536290000000000000000 DUP2 MSTORE DUP2 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x18 ADD DUP2 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x64 SWAP1 SWAP3 ADD SWAP1 SWAP3 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0xE0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xE0 PUSH1 0x2 EXP SUB NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE PUSH2 0x20A6 SWAP1 DUP5 SWAP1 PUSH2 0x3175 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD DUP3 MSTORE SWAP1 PUSH1 0x2 SWAP1 DUP3 SWAP1 DUP1 CODESIZE DUP4 CODECOPY POP SWAP2 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xE0 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE SWAP2 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x60 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0xA0 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0xC0 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 SWAP1 PUSH1 0x20 DUP3 MUL DUP1 CODESIZE DUP4 CODECOPY POP SWAP2 SWAP3 SWAP2 POP POP JUMP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 0xfc PUSH4 0x55C3C67E 0xd0 POP PUSH10 0x7B7FD7B2BC3393A8CCE9 DUP3 SWAP11 0xab 0xb5 0x5c 0xbd 0xc 0x2e GASLIMIT 0x4e PC 0xc1 DELEGATECALL STOP 0x29 ", + "sourceMap": "1919:28113:3:-;;;249:1:68;362:32;;2522:5:3;2489:38;;3348:129;8:9:-1;5:2;;;30:1;27;20:12;5:2;3348:129:3;;;;;;;;;;;;;488:5:66;:18;;-1:-1:-1;;;;;;488:18:66;496:10;488:18;;;3348:129:3;;475:23:72;3348:129:3;475:13:72;;;;:23;:::i;:::-;-1:-1:-1;1931:8:60;:39;;-1:-1:-1;;;;;1931:39:60;;;-1:-1:-1;;;;;;1931:39:60;;;;;;;;1974:12;:43;;;;;;;;-1:-1:-1;2227:42:3;1931:8:60;3434:32:3;:11;:32;;;:39;;-1:-1:-1;;3434:39:3;1931::60;3434::3;;;1919:28113;;553:117:72;-1:-1:-1;;;;;620:22:72;;;;612:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;553:117;:::o;1919:28113:3:-;;;;;;;" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "6080604052600436106101665763ffffffff60e060020a600035041663024c7ec7811461016b57806302ef521e146101875780630c8496cc146101ad5780632978c10e1461021d5780632fe8a6ad146102a657806349d10b64146102cf578063569706eb146102e45780635d732ff2146103475780635e35359e1461035c57806361cd756e1461038657806379ba5097146103b75780637b103999146103cc5780637f9c0ecd146103e15780638077ccf71461043857806389f9cc61146104595780638da5cb5b146104cc578063ab6214ce146104e1578063b1e9932b1461054b578063b4a176d3146105b6578063b77d239b146105cb578063c52173de14610635578063c7ba24bc14610694578063c98fefed146106f2578063cb32564e14610750578063d4ee1d90146107c4578063d734fa19146107d9578063e57738e514610850578063f2fde38b146108c0578063f3898a97146108e1578063f3bc7d2a14610932575b600080fd5b34801561017757600080fd5b50610185600435151561094a565b005b34801561019357600080fd5b50610185600160a060020a03600435166024351515610992565b3480156101b957600080fd5b50604080516020600480358082013583810280860185019096528085526102049536959394602494938501929182918501908490808284375094975050933594506109db9350505050565b6040805192835260208301919091528051918290030190f35b34801561022957600080fd5b50604080516020600480358082013583810280860185019096528085526102949536959394602494938501929182918501908490808284375094975050843595505050602083013592600160a060020a036040820135811693506060820135169150608001356109f3565b60408051918252519081900360200190f35b3480156102b257600080fd5b506102bb610a0e565b604080519115158252519081900360200190f35b3480156102db57600080fd5b50610185610a2f565b604080516020600480358082013583810280860185019096528085526102949536959394602494938501929182918501908490808284375094975050843595505050602083013592600160a060020a036040820135169250606001359050610cae565b34801561035357600080fd5b50610294610cc9565b34801561036857600080fd5b50610185600160a060020a0360043581169060243516604435610ccf565b34801561039257600080fd5b5061039b610d08565b60408051600160a060020a039092168252519081900360200190f35b3480156103c357600080fd5b50610185610d17565b3480156103d857600080fd5b5061039b610dea565b3480156103ed57600080fd5b5060408051602060048035808201358381028086018501909652808552610294953695939460249493850192918291850190849080828437509497505093359450610df99350505050565b34801561044457600080fd5b506102bb600160a060020a0360043516611628565b34801561046557600080fd5b50604080516020600480358082013583810280860185019096528085526102949536959394602494938501929182918501908490808284375094975050600160a060020a03853581169650602086013595604081013595506060013516925061163d915050565b3480156104d857600080fd5b5061039b6117d2565b604080516020600480358082013583810280860185019096528085526102949536959394602494938501929182918501908490808284375094975050843595505050602083013592600160a060020a036040820135811693506060820135169150608001356117e1565b34801561055757600080fd5b5060408051602060048035808201358381028086018501909652808552610294953695939460249493850192918291850190849080828437509497505084359550505060208301359260400135600160a060020a031691506118079050565b3480156105c257600080fd5b50610185611821565b604080516020600480358082013583810280860185019096528085526102949536959394602494938501929182918501908490808284375094975050843595505050602083013592600160a060020a0360408201358116935060608201351691506080013561185a565b604080516020600480358082013583810280860185019096528085526102949536959394602494938501929182918501908490808284375094975050843595505050602083013592604081013592506060810135915060800135611a4e565b3480156106a057600080fd5b506040805160206004803580820135838102808601850190965280855261029495369593946024949385019291829185019084908082843750949750508435955050506020909201359150611a619050565b60408051602060048035808201358381028086018501909652808552610294953695939460249493850192918291850190849080828437509497505084359550505060208301359260400135600160a060020a031691506118079050565b6040805160206004803580820135838102808601850190965280855261029495369593946024949385019291829185019084908082843750949750508435955050506020830135926040810135925060608101359150608081013590600160a060020a0360a0820135169060c00135611a7b565b3480156107d057600080fd5b5061039b611c19565b3480156107e557600080fd5b50610800600160a060020a0360043581169060243516611c28565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561083c578181015183820152602001610824565b505050509050019250505060405180910390f35b34801561085c57600080fd5b50604080516020600480358082013583810280860185019096528085526102949536959394602494938501929182918501908490808284375094975050843595505050602083013592600160a060020a036040820135169250606001359050610cae565b3480156108cc57600080fd5b50610185600160a060020a0360043516611d59565b6040805160206004803580820135838102808601850190965280855261029495369593946024949385019291829185019084908082843750949750508435955050506020909201359150611a619050565b34801561093e57600080fd5b50610185600435611df6565b610952611e5e565b60038054911515740100000000000000000000000000000000000000000274ff000000000000000000000000000000000000000019909216919091179055565b61099a611e5e565b816109a481611ec2565b826109ae81611f25565b5050600160a060020a03919091166000908152600660205260409020805460ff1916911515919091179055565b6000806109e88484610df9565b946000945092505050565b6000610a0387878787878761185a565b979650505050505050565b60035474010000000000000000000000000000000000000000900460ff1681565b60008054600160a060020a0316331480610a64575060035474010000000000000000000000000000000000000000900460ff16155b1515610aba576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b610ae37f436f6e7472616374526567697374727900000000000000000000000000000000611f86565b600254909150600160a060020a03808316911614801590610b0c5750600160a060020a03811615155b1515610b62576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e56414c49445f5245474953545259000000000000000000000000604482015290519081900360640190fd5b604080517fbb34534c0000000000000000000000000000000000000000000000000000000081527f436f6e747261637452656769737472790000000000000000000000000000000060048201529051600091600160a060020a0384169163bb34534c9160248082019260209290919082900301818787803b158015610be657600080fd5b505af1158015610bfa573d6000803e3d6000fd5b505050506040513d6020811015610c1057600080fd5b5051600160a060020a03161415610c71576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e56414c49445f5245474953545259000000000000000000000000604482015290519081900360640190fd5b6002805460038054600160a060020a0380841673ffffffffffffffffffffffffffffffffffffffff19928316179092559091169216919091179055565b6000610cbf8686866000878761185a565b9695505050505050565b60055481565b610cd7611e5e565b82610ce181611ec2565b82610ceb81611ec2565b83610cf581611f25565b610d0086868661201e565b505050505050565b600354600160a060020a031681565b600154600160a060020a03163314610d79576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b60015460008054604051600160a060020a0393841693909116917f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91a3600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b600254600160a060020a031681565b600080600080600080600080600080600080610e347f536f7672796e53776170466f726d756c61000000000000000000000000000000611f86565b94508c9a5060028e51118015610e4f57508d51600290066001145b1515610ea5576040805160e560020a62461bcd02815260206004820152601060248201527f4552525f494e56414c49445f5041544800000000000000000000000000000000604482015290519081900360640190fd5b600293505b8d51841015611616578d60028503815181101515610ec457fe5b9060200190602002015192508d60018503815181101515610ee157fe5b9060200190602002015191508d84815181101515610efb57fe5b90602001906020020151905081600160a060020a0316638da5cb5b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610f4557600080fd5b505af1158015610f59573d6000803e3d6000fd5b505050506040513d6020811015610f6f57600080fd5b50519550610f7d86846120ab565b9250610f8986826120ab565b905081600160a060020a031681600160a060020a031614156112ea576003841080610fe057508d60038503815181101515610fc057fe5b90602001906020020151600160a060020a031682600160a060020a031614155b156110525781600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561102357600080fd5b505af1158015611037573d6000803e3d6000fd5b505050506040513d602081101561104d57600080fd5b505198505b85600160a060020a031663d8959512846040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b1580156110ad57600080fd5b505af11580156110c1573d6000803e3d6000fd5b505050506040513d60208110156110d757600080fd5b5051604080517f0e53aae9000000000000000000000000000000000000000000000000000000008152600160a060020a0386811660048301529151929a5090881691630e53aae99160248082019260a0929091908290030181600087803b15801561114157600080fd5b505af1158015611155573d6000803e3d6000fd5b505050506040513d60a081101561116b57600080fd5b50602090810151604080517ff3250fe2000000000000000000000000000000000000000000000000000000008152600481018d9052602481018c905263ffffffff83166044820152606481018f90529051919950600160a060020a0388169263f3250fe2926084808401938290030181600087803b1580156111ec57600080fd5b505af1158015611200573d6000803e3d6000fd5b505050506040513d602081101561121657600080fd5b5051604080517f579cd3ca0000000000000000000000000000000000000000000000000000000081529051919c506112cc91620f4240916112c091600160a060020a038b169163579cd3ca9160048083019260209291908290030181600087803b15801561128357600080fd5b505af1158015611297573d6000803e3d6000fd5b505050506040513d60208110156112ad57600080fd5b50518e9063ffffffff9081169061210f16565b9063ffffffff61218f16565b9a8b90039a99506112e3898c63ffffffff6121fd16565b985061160b565b81600160a060020a031683600160a060020a031614156115f957600384108061133f57508d6003850381518110151561131f57fe5b90602001906020020151600160a060020a031682600160a060020a031614155b156113b15781600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561138257600080fd5b505af1158015611396573d6000803e3d6000fd5b505050506040513d60208110156113ac57600080fd5b505198505b85600160a060020a031663d8959512826040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b15801561140c57600080fd5b505af1158015611420573d6000803e3d6000fd5b505050506040513d602081101561143657600080fd5b5051604080517f0e53aae9000000000000000000000000000000000000000000000000000000008152600160a060020a0384811660048301529151929a5090881691630e53aae99160248082019260a0929091908290030181600087803b1580156114a057600080fd5b505af11580156114b4573d6000803e3d6000fd5b505050506040513d60a08110156114ca57600080fd5b50602090810151604080517f76cf0b56000000000000000000000000000000000000000000000000000000008152600481018d9052602481018c905263ffffffff83166044820152606481018f90529051919950600160a060020a038816926376cf0b56926084808401938290030181600087803b15801561154b57600080fd5b505af115801561155f573d6000803e3d6000fd5b505050506040513d602081101561157557600080fd5b5051604080517f579cd3ca0000000000000000000000000000000000000000000000000000000081529051919c506115e291620f4240916112c091600160a060020a038b169163579cd3ca9160048083019260209291908290030181600087803b15801561128357600080fd5b9a8b90039a99506112e3898c63ffffffff61225a16565b6116058684838e6122ba565b909b5099505b600284019350610eaa565b50989c9b505050505050505050505050565b60066020526000908152604090205460ff1681565b60008085600160a060020a031663fc0c546a6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561167e57600080fd5b505af1158015611692573d6000803e3d6000fd5b505050506040513d60208110156116a857600080fd5b50518751600160a060020a0390911690889060009081106116c557fe5b60209081029091010151600160a060020a03161461172d576040805160e560020a62461bcd02815260206004820152601860248201527f4552525f494e56414c49445f534f555243455f544f4b454e0000000000000000604482015290519081900360640190fd5b604080517faafd6b76000000000000000000000000000000000000000000000000000000008152600481018790523360248201529051600160a060020a0388169163aafd6b769160448083019260209291908290030181600087803b15801561179557600080fd5b505af11580156117a9573d6000803e3d6000fd5b505050506040513d60208110156117bf57600080fd5b50519050610a038782868660008061185a565b600054600160a060020a031681565b6000846117ed8161239e565b6117fb88888888888861185a565b98975050505050505050565b60006118188585858560008061185a565b95945050505050565b611829611e5e565b6003546002805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055565b60008060006060600061186b6123f6565b60026004558861187a8161239e565b60028c5111801561189057508b51600290066001145b15156118e6576040805160e560020a62461bcd02815260206004820152601060248201527f4552525f494e56414c49445f5041544800000000000000000000000000000000604482015290519081900360640190fd5b6119218c60008151811015156118f857fe5b906020019060200201518d600181518110151561191157fe5b906020019060200201518d612450565b60009450600160a060020a038816151561199057861561198b576040805160e560020a62461bcd02815260206004820152601960248201527f4552525f494e56414c49445f414646494c494154455f46454500000000000000604482015290519081900360640190fd5b6119fd565b8660001080156119a257506005548711155b15156119f8576040805160e560020a62461bcd02815260206004820152601960248201527f4552525f494e56414c49445f414646494c494154455f46454500000000000000604482015290519081900360640190fd5b600194505b339350600160a060020a03891615611a13578893505b611a1e8c8587612654565b9250611a2d838c8c8b8b612a6b565b9150611a3a838386612fcb565b5060016004559a9950505050505050505050565b6000610a03878787878787600080611a7b565b6000611a73848484600080600061185a565b949350505050565b60008060008089611a8b8161239e565b8c518d906000198101908110611a9d57fe5b906020019060200201519350611ad27f536f7672796e5377617058000000000000000000000000000000000000000000611f86565b9250611afd7f424e54546f6b656e000000000000000000000000000000000000000000000000611f86565b600160a060020a03858116911614611b5f576040805160e560020a62461bcd02815260206004820152601860248201527f4552525f494e56414c49445f5441524745545f544f4b454e0000000000000000604482015290519081900360640190fd5b611b6d8d8d8d308b8b61185a565b9150611b7a8484846130ae565b604080517f427c0374000000000000000000000000000000000000000000000000000000008152600481018c9052602481018b905260448101849052606481018a90529051600160a060020a0385169163427c037491608480830192600092919082900301818387803b158015611bf057600080fd5b505af1158015611c04573d6000803e3d6000fd5b50939f9e505050505050505050505050505050565b600154600160a060020a031681565b60606000611c557f436f6e76657273696f6e5061746846696e646572000000000000000000000000611f86565b604080517fa1c421cd000000000000000000000000000000000000000000000000000000008152600160a060020a038781166004830152868116602483015291519293509083169163a1c421cd9160448082019260009290919082900301818387803b158015611cc457600080fd5b505af1158015611cd8573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526020811015611d0157600080fd5b810190808051640100000000811115611d1957600080fd5b82016020810184811115611d2c57600080fd5b8151856020820283011164010000000082111715611d4957600080fd5b50909550505050505b5092915050565b611d61611e5e565b600054600160a060020a0382811691161415611dc7576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f53414d455f4f574e4552000000000000000000000000000000000000604482015290519081900360640190fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b611dfe611e5e565b620f4240811115611e59576040805160e560020a62461bcd02815260206004820152601960248201527f4552525f494e56414c49445f414646494c494154455f46454500000000000000604482015290519081900360640190fd5b600555565b600054600160a060020a03163314611ec0576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b565b600160a060020a0381161515611f22576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b50565b600160a060020a038116301415611f22576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f414444524553535f49535f53454c4600000000000000000000000000604482015290519081900360640190fd5b600254604080517fbb34534c000000000000000000000000000000000000000000000000000000008152600481018490529051600092600160a060020a03169163bb34534c91602480830192602092919082900301818787803b158015611fec57600080fd5b505af1158015612000573d6000803e3d6000fd5b505050506040513d602081101561201657600080fd5b505192915050565b604080517f7472616e7366657228616464726573732c75696e74323536290000000000000081528151908190036019018120600160a060020a03851660248301526044808301859052835180840390910181526064909201909252602081018051600160e060020a0316600160e060020a0319909316929092179091526120a6908490613175565b505050565b600160a060020a03811660009081526006602052604081205460ff1615156120d4575080612109565b6120dd83613203565b156120fd575073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee612109565b61210683613294565b90505b92915050565b6000808315156121225760009150611d52565b5082820282848281151561213257fe5b0414612188576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b9392505050565b6000808083116121e9576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f4449564944455f42595f5a45524f0000000000000000000000000000604482015290519081900360640190fd5b82848115156121f457fe5b04949350505050565b600082820183811015612188576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b6000818310156122b4576040805160e560020a62461bcd02815260206004820152600d60248201527f4552525f554e444552464c4f5700000000000000000000000000000000000000604482015290519081900360640190fd5b50900390565b6000806122c5613521565b604080517f67657452657475726e28616464726573732c616464726573732c75696e74323581527f36290000000000000000000000000000000000000000000000000000000000006020808301919091528251918290036022018220600160a060020a03808b16602485015289166044840152606480840189905284518085039091018152608490930184529082018051600160e060020a0316600160e060020a0319909216919091178152815191929184918b5afa80151561238757600080fd5b505080516020909101519097909650945050505050565b60008111611f22576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f5a45524f5f56414c5545000000000000000000000000000000000000604482015290519081900360640190fd5b600454600114611ec0576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f5245454e5452414e4359000000000000000000000000000000000000604482015290519081900360640190fd5b60008083600160a060020a0316638da5cb5b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561249157600080fd5b505af11580156124a5573d6000803e3d6000fd5b505050506040513d60208110156124bb57600080fd5b505191506124c882613203565b905060003411156125965734831461252a576040805160e560020a62461bcd02815260206004820152601760248201527f4552525f4554485f414d4f554e545f4d49534d41544348000000000000000000604482015290519081900360640190fd5b8015156125915761253a82613294565b600160a060020a031663d0e30db0346040518263ffffffff1660e060020a0281526004016000604051808303818588803b15801561257757600080fd5b505af115801561258b573d6000803e3d6000fd5b50505050505b61264d565b600160a060020a03851660009081526006602052604090205460ff161561262f576125c3853330866133e1565b80156125915784600160a060020a0316632e1a7d4d846040518263ffffffff1660e060020a02815260040180828152602001915050600060405180830381600087803b15801561261257600080fd5b505af1158015612626573d6000803e3d6000fd5b5050505061264d565b801561264157612591853384866133e1565b61264d853330866133e1565b5050505050565b606080600080600080600080600061266a61353c565b8c51600290046040519080825280602002602001820160405280156126a957816020015b61269661353c565b81526020019060019003908161268e5790505b509850600097506126d97f424e54546f6b656e000000000000000000000000000000000000000000000000611f86565b9650600095505b60018d5103861015612874578c866001018151811015156126fd57fe5b90602001906020020151945084600160a060020a0316638da5cb5b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561274757600080fd5b505af115801561275b573d6000803e3d6000fd5b505050506040513d602081101561277157600080fd5b50518d519094508d906002880190811061278757fe5b9060200190602002015192508a801561279e575087155b80156127bb575086600160a060020a031683600160a060020a0316145b915081156127c857600197505b60e06040519081016040528085600160a060020a0316815260200186600160a060020a031681526020018e8881518110151561280057fe5b90602001906020020151600160a060020a0316815260200184600160a060020a031681526020016000600160a060020a0316815260200161284086613203565b15158152831515602090910152896002880481518110151561285e57fe5b60209081029091010152600295909501946126e0565b88600081518110151561288357fe5b6020908102909101810151604080820151600160a060020a0316600090815260069093529091205490915060ff16156128f9578060a00151156128df5773eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee60408201526128f9565b80516128ea90613294565b600160a060020a031660408201525b88518990600019810190811061290b57fe5b60209081029091018101516060810151600160a060020a03166000908152600690925260409091205490915060ff1615612982578060a00151156129685773eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6060820152612982565b805161297390613294565b600160a060020a031660608201525b600095505b8851861015612a5a57888681518110151561299e57fe5b9060200190602002015190508060a0015115612a48578060c00151156129c957306080820152612a43565b60018951038614156129e957600160a060020a038c166080820152612a43565b88866001018151811015156129fa57fe5b9060200190602002015160a0015115612a3c578886600101815181101515612a1e57fe5b6020908102909101015151600160a060020a03166080820152612a43565b3060808201525b612a4f565b3060808201525b600190950194612987565b50969b9a5050505050505050505050565b600080600080612a7961353c565b6000899350600092505b8a51831015612f64578a83815181101515612a9a57fe5b9060200190602002015191508160a0015115612b2b578215801590612ae757508a5130908c906000198601908110612ace57fe5b9060200190602002015160800151600160a060020a0316145b8015612b0e5750604080830151600160a060020a031660009081526006602052205460ff16155b15612b2657612b26826040015183600001518661201e565b612b61565b8160200151600160a060020a03168260400151600160a060020a0316141515612b6157612b6182604001518360000151866130ae565b8160a001511515612c24578151604080840151606085015182517f5e5144eb000000000000000000000000000000000000000000000000000000008152600160a060020a039283166004820152908216602482015260448101889052600160648201529151921691635e5144eb916084808201926020929091908290030181600087803b158015612bf157600080fd5b505af1158015612c05573d6000803e3d6000fd5b505050506040513d6020811015612c1b57600080fd5b50519450612dc1565b604080830151600160a060020a031660009081526006602052205460ff1615612d025781516040808401516060850151608086015183517fe8dc12ff000000000000000000000000000000000000000000000000000000008152600160a060020a03938416600482015291831660248301526044820189905233606483015282166084820152915192169163e8dc12ff91349160a480830192602092919082900301818588803b158015612cd757600080fd5b505af1158015612ceb573d6000803e3d6000fd5b50505050506040513d6020811015612c1b57600080fd5b81516040808401516060850151608086015183517fe8dc12ff000000000000000000000000000000000000000000000000000000008152600160a060020a03938416600482015291831660248301526044820189905233606483015282166084820152915192169163e8dc12ff9160a4808201926020929091908290030181600087803b158015612d9257600080fd5b505af1158015612da6573d6000803e3d6000fd5b505050506040513d6020811015612dbc57600080fd5b505194505b8160c0015115612ed357612de2620f42406112c0878a63ffffffff61210f16565b90508160600151600160a060020a031663a9059cbb89836040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b158015612e4b57600080fd5b505af1158015612e5f573d6000803e3d6000fd5b505050506040513d6020811015612e7557600080fd5b50511515612ecd576040805160e560020a62461bcd02815260206004820152601760248201527f4552525f4645455f5452414e534645525f4641494c4544000000000000000000604482015290519081900360640190fd5b80850394505b8160600151600160a060020a03168260400151600160a060020a03168360200151600160a060020a03167f7154b38b5dd31bb3122436a96d4e09aba5b323ae1fd580025fab55074334c0958789336040518084815260200183815260200182600160a060020a0316600160a060020a03168152602001935050505060405180910390a4849350600190920191612a83565b88851015612fbc576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f52455455524e5f544f4f5f4c4f570000000000000000000000000000604482015290519081900360640190fd5b50929998505050505050505050565b612fd361353c565b6000846001865103815181101515612fe757fe5b602090810290910101516080810151909250600160a060020a0316301461300d5761264d565b506060810151600160a060020a03811660009081526006602052604090205460ff16156130a35760a08201511561304057fe5b80600160a060020a031663205c287884866040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050600060405180830381600087803b15801561261257600080fd5b61264d81848661201e565b604080517fdd62ed3e000000000000000000000000000000000000000000000000000000008152306004820152600160a060020a038481166024830152915160009286169163dd62ed3e91604480830192602092919082900301818787803b15801561311957600080fd5b505af115801561312d573d6000803e3d6000fd5b505050506040513d602081101561314357600080fd5b505190508181101561316f5760008111156131645761316484846000613499565b61316f848484613499565b50505050565b61317d613578565b602060405190810160405280600181525090506020818351602085016000875af18015156131aa57600080fd5b50805115156120a6576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f5452414e534645525f4641494c454400000000000000000000000000604482015290519081900360640190fd5b60008061320e613578565b604080517f69735632384f72486967686572282900000000000000000000000000000000008152815190819003600f018120600482526024820190925260208082018051600160e060020a0316600160e060020a0319909416939093178352815191929091849188611388fa92508280156132895750815115155b93505b505050919050565b60008060008084600160a060020a03166371f52bf36040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156132d857600080fd5b505af11580156132ec573d6000803e3d6000fd5b505050506040513d602081101561330257600080fd5b505161ffff169250600091505b828210156133c35784600160a060020a03166319b64015836040518263ffffffff1660e060020a02815260040180828152602001915050602060405180830381600087803b15801561336057600080fd5b505af1158015613374573d6000803e3d6000fd5b505050506040513d602081101561338a57600080fd5b5051600160a060020a03811660009081526006602052604090205490915060ff16156133b85780935061328c565b60019091019061330f565b5073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee949350505050565b604080517f7472616e7366657246726f6d28616464726573732c616464726573732c75696e81527f74323536290000000000000000000000000000000000000000000000000000006020808301919091528251918290036025018220600160a060020a03808816602485015286166044840152606480840186905284518085039091018152608490930190935281018051600160e060020a0316600160e060020a03199093169290921790915261316f908590613175565b604080517f617070726f766528616464726573732c75696e7432353629000000000000000081528151908190036018018120600160a060020a03851660248301526044808301859052835180840390910181526064909201909252602081018051600160e060020a0316600160e060020a0319909316929092179091526120a6908490613175565b60408051808201825290600290829080388339509192915050565b6040805160e081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c081019190915290565b60206040519081016040528060019060208202803883395091929150505600a165627a7a72305820fc6355c3c67ed050697b7fd7b2bc3393a8cce9829aabb55cbd0c2e454e58c1f40029", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x166 JUMPI PUSH4 0xFFFFFFFF PUSH1 0xE0 PUSH1 0x2 EXP PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x24C7EC7 DUP2 EQ PUSH2 0x16B JUMPI DUP1 PUSH4 0x2EF521E EQ PUSH2 0x187 JUMPI DUP1 PUSH4 0xC8496CC EQ PUSH2 0x1AD JUMPI DUP1 PUSH4 0x2978C10E EQ PUSH2 0x21D JUMPI DUP1 PUSH4 0x2FE8A6AD EQ PUSH2 0x2A6 JUMPI DUP1 PUSH4 0x49D10B64 EQ PUSH2 0x2CF JUMPI DUP1 PUSH4 0x569706EB EQ PUSH2 0x2E4 JUMPI DUP1 PUSH4 0x5D732FF2 EQ PUSH2 0x347 JUMPI DUP1 PUSH4 0x5E35359E EQ PUSH2 0x35C JUMPI DUP1 PUSH4 0x61CD756E EQ PUSH2 0x386 JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x3B7 JUMPI DUP1 PUSH4 0x7B103999 EQ PUSH2 0x3CC JUMPI DUP1 PUSH4 0x7F9C0ECD EQ PUSH2 0x3E1 JUMPI DUP1 PUSH4 0x8077CCF7 EQ PUSH2 0x438 JUMPI DUP1 PUSH4 0x89F9CC61 EQ PUSH2 0x459 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x4CC JUMPI DUP1 PUSH4 0xAB6214CE EQ PUSH2 0x4E1 JUMPI DUP1 PUSH4 0xB1E9932B EQ PUSH2 0x54B JUMPI DUP1 PUSH4 0xB4A176D3 EQ PUSH2 0x5B6 JUMPI DUP1 PUSH4 0xB77D239B EQ PUSH2 0x5CB JUMPI DUP1 PUSH4 0xC52173DE EQ PUSH2 0x635 JUMPI DUP1 PUSH4 0xC7BA24BC EQ PUSH2 0x694 JUMPI DUP1 PUSH4 0xC98FEFED EQ PUSH2 0x6F2 JUMPI DUP1 PUSH4 0xCB32564E EQ PUSH2 0x750 JUMPI DUP1 PUSH4 0xD4EE1D90 EQ PUSH2 0x7C4 JUMPI DUP1 PUSH4 0xD734FA19 EQ PUSH2 0x7D9 JUMPI DUP1 PUSH4 0xE57738E5 EQ PUSH2 0x850 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x8C0 JUMPI DUP1 PUSH4 0xF3898A97 EQ PUSH2 0x8E1 JUMPI DUP1 PUSH4 0xF3BC7D2A EQ PUSH2 0x932 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x177 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x185 PUSH1 0x4 CALLDATALOAD ISZERO ISZERO PUSH2 0x94A JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x193 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x185 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD ISZERO ISZERO PUSH2 0x992 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1B9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x204 SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP POP SWAP4 CALLDATALOAD SWAP5 POP PUSH2 0x9DB SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x229 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x294 SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP POP DUP5 CALLDATALOAD SWAP6 POP POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD SWAP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x40 DUP3 ADD CALLDATALOAD DUP2 AND SWAP4 POP PUSH1 0x60 DUP3 ADD CALLDATALOAD AND SWAP2 POP PUSH1 0x80 ADD CALLDATALOAD PUSH2 0x9F3 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2B2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2BB PUSH2 0xA0E JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2DB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x185 PUSH2 0xA2F JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x294 SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP POP DUP5 CALLDATALOAD SWAP6 POP POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD SWAP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x40 DUP3 ADD CALLDATALOAD AND SWAP3 POP PUSH1 0x60 ADD CALLDATALOAD SWAP1 POP PUSH2 0xCAE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x353 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x294 PUSH2 0xCC9 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x368 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x185 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0xCCF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x392 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x39B PUSH2 0xD08 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3C3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x185 PUSH2 0xD17 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3D8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x39B PUSH2 0xDEA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3ED JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x294 SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP POP SWAP4 CALLDATALOAD SWAP5 POP PUSH2 0xDF9 SWAP4 POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x444 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2BB PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x1628 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x465 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x294 SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 CALLDATALOAD DUP2 AND SWAP7 POP PUSH1 0x20 DUP7 ADD CALLDATALOAD SWAP6 PUSH1 0x40 DUP2 ADD CALLDATALOAD SWAP6 POP PUSH1 0x60 ADD CALLDATALOAD AND SWAP3 POP PUSH2 0x163D SWAP2 POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4D8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x39B PUSH2 0x17D2 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x294 SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP POP DUP5 CALLDATALOAD SWAP6 POP POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD SWAP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x40 DUP3 ADD CALLDATALOAD DUP2 AND SWAP4 POP PUSH1 0x60 DUP3 ADD CALLDATALOAD AND SWAP2 POP PUSH1 0x80 ADD CALLDATALOAD PUSH2 0x17E1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x557 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x294 SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP POP DUP5 CALLDATALOAD SWAP6 POP POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD SWAP3 PUSH1 0x40 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP2 POP PUSH2 0x1807 SWAP1 POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5C2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x185 PUSH2 0x1821 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x294 SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP POP DUP5 CALLDATALOAD SWAP6 POP POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD SWAP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x40 DUP3 ADD CALLDATALOAD DUP2 AND SWAP4 POP PUSH1 0x60 DUP3 ADD CALLDATALOAD AND SWAP2 POP PUSH1 0x80 ADD CALLDATALOAD PUSH2 0x185A JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x294 SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP POP DUP5 CALLDATALOAD SWAP6 POP POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD SWAP3 PUSH1 0x40 DUP2 ADD CALLDATALOAD SWAP3 POP PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP2 POP PUSH1 0x80 ADD CALLDATALOAD PUSH2 0x1A4E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6A0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x294 SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP POP DUP5 CALLDATALOAD SWAP6 POP POP POP PUSH1 0x20 SWAP1 SWAP3 ADD CALLDATALOAD SWAP2 POP PUSH2 0x1A61 SWAP1 POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x294 SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP POP DUP5 CALLDATALOAD SWAP6 POP POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD SWAP3 PUSH1 0x40 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP2 POP PUSH2 0x1807 SWAP1 POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x294 SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP POP DUP5 CALLDATALOAD SWAP6 POP POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD SWAP3 PUSH1 0x40 DUP2 ADD CALLDATALOAD SWAP3 POP PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP2 POP PUSH1 0x80 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0xA0 DUP3 ADD CALLDATALOAD AND SWAP1 PUSH1 0xC0 ADD CALLDATALOAD PUSH2 0x1A7B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7D0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x39B PUSH2 0x1C19 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7E5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x800 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH2 0x1C28 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP4 MLOAD DUP2 DUP4 ADD MSTORE DUP4 MLOAD SWAP2 SWAP3 DUP4 SWAP3 SWAP1 DUP4 ADD SWAP2 DUP6 DUP2 ADD SWAP2 MUL DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x83C JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x824 JUMP JUMPDEST POP POP POP POP SWAP1 POP ADD SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x85C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x294 SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP POP DUP5 CALLDATALOAD SWAP6 POP POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD SWAP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x40 DUP3 ADD CALLDATALOAD AND SWAP3 POP PUSH1 0x60 ADD CALLDATALOAD SWAP1 POP PUSH2 0xCAE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8CC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x185 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x1D59 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x294 SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP POP DUP5 CALLDATALOAD SWAP6 POP POP POP PUSH1 0x20 SWAP1 SWAP3 ADD CALLDATALOAD SWAP2 POP PUSH2 0x1A61 SWAP1 POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x93E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x185 PUSH1 0x4 CALLDATALOAD PUSH2 0x1DF6 JUMP JUMPDEST PUSH2 0x952 PUSH2 0x1E5E JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD SWAP2 ISZERO ISZERO PUSH21 0x10000000000000000000000000000000000000000 MUL PUSH21 0xFF0000000000000000000000000000000000000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x99A PUSH2 0x1E5E JUMP JUMPDEST DUP2 PUSH2 0x9A4 DUP2 PUSH2 0x1EC2 JUMP JUMPDEST DUP3 PUSH2 0x9AE DUP2 PUSH2 0x1F25 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP2 SWAP1 SWAP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP2 ISZERO ISZERO SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x9E8 DUP5 DUP5 PUSH2 0xDF9 JUMP JUMPDEST SWAP5 PUSH1 0x0 SWAP5 POP SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA03 DUP8 DUP8 DUP8 DUP8 DUP8 DUP8 PUSH2 0x185A JUMP JUMPDEST SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ DUP1 PUSH2 0xA64 JUMPI POP PUSH1 0x3 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST ISZERO ISZERO PUSH2 0xABA JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0xAE3 PUSH32 0x436F6E7472616374526567697374727900000000000000000000000000000000 PUSH2 0x1F86 JUMP JUMPDEST PUSH1 0x2 SLOAD SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP4 AND SWAP2 AND EQ DUP1 ISZERO SWAP1 PUSH2 0xB0C JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO JUMPDEST ISZERO ISZERO PUSH2 0xB62 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245474953545259000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0xBB34534C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH32 0x436F6E7472616374526567697374727900000000000000000000000000000000 PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP2 PUSH4 0xBB34534C SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xBE6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xBFA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xC10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ ISZERO PUSH2 0xC71 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245474953545259000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP5 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP3 DUP4 AND OR SWAP1 SWAP3 SSTORE SWAP1 SWAP2 AND SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH2 0xCBF DUP7 DUP7 DUP7 PUSH1 0x0 DUP8 DUP8 PUSH2 0x185A JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x5 SLOAD DUP2 JUMP JUMPDEST PUSH2 0xCD7 PUSH2 0x1E5E JUMP JUMPDEST DUP3 PUSH2 0xCE1 DUP2 PUSH2 0x1EC2 JUMP JUMPDEST DUP3 PUSH2 0xCEB DUP2 PUSH2 0x1EC2 JUMP JUMPDEST DUP4 PUSH2 0xCF5 DUP2 PUSH2 0x1F25 JUMP JUMPDEST PUSH2 0xD00 DUP7 DUP7 DUP7 PUSH2 0x201E JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0xD79 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND SWAP4 SWAP1 SWAP2 AND SWAP2 PUSH32 0x343765429AEA5A34B3FF6A3785A98A5ABB2597ACA87BFBB58632C173D585373A SWAP2 LOG3 PUSH1 0x1 DUP1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND OR SWAP1 SWAP2 SSTORE AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0xE34 PUSH32 0x536F7672796E53776170466F726D756C61000000000000000000000000000000 PUSH2 0x1F86 JUMP JUMPDEST SWAP5 POP DUP13 SWAP11 POP PUSH1 0x2 DUP15 MLOAD GT DUP1 ISZERO PUSH2 0xE4F JUMPI POP DUP14 MLOAD PUSH1 0x2 SWAP1 MOD PUSH1 0x1 EQ JUMPDEST ISZERO ISZERO PUSH2 0xEA5 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5041544800000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x2 SWAP4 POP JUMPDEST DUP14 MLOAD DUP5 LT ISZERO PUSH2 0x1616 JUMPI DUP14 PUSH1 0x2 DUP6 SUB DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xEC4 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD SWAP3 POP DUP14 PUSH1 0x1 DUP6 SUB DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xEE1 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD SWAP2 POP DUP14 DUP5 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xEFB JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD SWAP1 POP DUP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x8DA5CB5B PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xF45 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xF59 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xF6F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP6 POP PUSH2 0xF7D DUP7 DUP5 PUSH2 0x20AB JUMP JUMPDEST SWAP3 POP PUSH2 0xF89 DUP7 DUP3 PUSH2 0x20AB JUMP JUMPDEST SWAP1 POP DUP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ ISZERO PUSH2 0x12EA JUMPI PUSH1 0x3 DUP5 LT DUP1 PUSH2 0xFE0 JUMPI POP DUP14 PUSH1 0x3 DUP6 SUB DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xFC0 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ ISZERO JUMPDEST ISZERO PUSH2 0x1052 JUMPI DUP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x18160DDD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1023 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1037 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x104D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP9 POP JUMPDEST DUP6 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xD8959512 DUP5 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x10AD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x10C1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x10D7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xE53AAE900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 MLOAD SWAP3 SWAP11 POP SWAP1 DUP9 AND SWAP2 PUSH4 0xE53AAE9 SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0xA0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1141 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1155 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0xA0 DUP2 LT ISZERO PUSH2 0x116B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x20 SWAP1 DUP2 ADD MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xF3250FE200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP14 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP13 SWAP1 MSTORE PUSH4 0xFFFFFFFF DUP4 AND PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 DUP2 ADD DUP16 SWAP1 MSTORE SWAP1 MLOAD SWAP2 SWAP10 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 AND SWAP3 PUSH4 0xF3250FE2 SWAP3 PUSH1 0x84 DUP1 DUP5 ADD SWAP4 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x11EC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1200 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1216 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x579CD3CA00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP13 POP PUSH2 0x12CC SWAP2 PUSH3 0xF4240 SWAP2 PUSH2 0x12C0 SWAP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND SWAP2 PUSH4 0x579CD3CA SWAP2 PUSH1 0x4 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1283 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1297 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x12AD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD DUP15 SWAP1 PUSH4 0xFFFFFFFF SWAP1 DUP2 AND SWAP1 PUSH2 0x210F AND JUMP JUMPDEST SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x218F AND JUMP JUMPDEST SWAP11 DUP12 SWAP1 SUB SWAP11 SWAP10 POP PUSH2 0x12E3 DUP10 DUP13 PUSH4 0xFFFFFFFF PUSH2 0x21FD AND JUMP JUMPDEST SWAP9 POP PUSH2 0x160B JUMP JUMPDEST DUP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ ISZERO PUSH2 0x15F9 JUMPI PUSH1 0x3 DUP5 LT DUP1 PUSH2 0x133F JUMPI POP DUP14 PUSH1 0x3 DUP6 SUB DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x131F JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ ISZERO JUMPDEST ISZERO PUSH2 0x13B1 JUMPI DUP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x18160DDD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1382 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1396 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x13AC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP9 POP JUMPDEST DUP6 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xD8959512 DUP3 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x140C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1420 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1436 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xE53AAE900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 MLOAD SWAP3 SWAP11 POP SWAP1 DUP9 AND SWAP2 PUSH4 0xE53AAE9 SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0xA0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x14A0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x14B4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0xA0 DUP2 LT ISZERO PUSH2 0x14CA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x20 SWAP1 DUP2 ADD MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x76CF0B5600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP14 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP13 SWAP1 MSTORE PUSH4 0xFFFFFFFF DUP4 AND PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 DUP2 ADD DUP16 SWAP1 MSTORE SWAP1 MLOAD SWAP2 SWAP10 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 AND SWAP3 PUSH4 0x76CF0B56 SWAP3 PUSH1 0x84 DUP1 DUP5 ADD SWAP4 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x154B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x155F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1575 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x579CD3CA00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP13 POP PUSH2 0x15E2 SWAP2 PUSH3 0xF4240 SWAP2 PUSH2 0x12C0 SWAP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND SWAP2 PUSH4 0x579CD3CA SWAP2 PUSH1 0x4 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1283 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP11 DUP12 SWAP1 SUB SWAP11 SWAP10 POP PUSH2 0x12E3 DUP10 DUP13 PUSH4 0xFFFFFFFF PUSH2 0x225A AND JUMP JUMPDEST PUSH2 0x1605 DUP7 DUP5 DUP4 DUP15 PUSH2 0x22BA JUMP JUMPDEST SWAP1 SWAP12 POP SWAP10 POP JUMPDEST PUSH1 0x2 DUP5 ADD SWAP4 POP PUSH2 0xEAA JUMP JUMPDEST POP SWAP9 SWAP13 SWAP12 POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP6 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xFC0C546A PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x167E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1692 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x16A8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD DUP8 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP2 AND SWAP1 DUP9 SWAP1 PUSH1 0x0 SWAP1 DUP2 LT PUSH2 0x16C5 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ PUSH2 0x172D JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F534F555243455F544F4B454E0000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0xAAFD6B7600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP8 SWAP1 MSTORE CALLER PUSH1 0x24 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 AND SWAP2 PUSH4 0xAAFD6B76 SWAP2 PUSH1 0x44 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1795 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x17A9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x17BF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 POP PUSH2 0xA03 DUP8 DUP3 DUP7 DUP7 PUSH1 0x0 DUP1 PUSH2 0x185A JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH2 0x17ED DUP2 PUSH2 0x239E JUMP JUMPDEST PUSH2 0x17FB DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 PUSH2 0x185A JUMP JUMPDEST SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1818 DUP6 DUP6 DUP6 DUP6 PUSH1 0x0 DUP1 PUSH2 0x185A JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH2 0x1829 PUSH2 0x1E5E JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x2 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 PUSH1 0x0 PUSH2 0x186B PUSH2 0x23F6 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE DUP9 PUSH2 0x187A DUP2 PUSH2 0x239E JUMP JUMPDEST PUSH1 0x2 DUP13 MLOAD GT DUP1 ISZERO PUSH2 0x1890 JUMPI POP DUP12 MLOAD PUSH1 0x2 SWAP1 MOD PUSH1 0x1 EQ JUMPDEST ISZERO ISZERO PUSH2 0x18E6 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5041544800000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x1921 DUP13 PUSH1 0x0 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x18F8 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD DUP14 PUSH1 0x1 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x1911 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD DUP14 PUSH2 0x2450 JUMP JUMPDEST PUSH1 0x0 SWAP5 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 AND ISZERO ISZERO PUSH2 0x1990 JUMPI DUP7 ISZERO PUSH2 0x198B JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F414646494C494154455F46454500000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x19FD JUMP JUMPDEST DUP7 PUSH1 0x0 LT DUP1 ISZERO PUSH2 0x19A2 JUMPI POP PUSH1 0x5 SLOAD DUP8 GT ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x19F8 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F414646494C494154455F46454500000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SWAP5 POP JUMPDEST CALLER SWAP4 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP10 AND ISZERO PUSH2 0x1A13 JUMPI DUP9 SWAP4 POP JUMPDEST PUSH2 0x1A1E DUP13 DUP6 DUP8 PUSH2 0x2654 JUMP JUMPDEST SWAP3 POP PUSH2 0x1A2D DUP4 DUP13 DUP13 DUP12 DUP12 PUSH2 0x2A6B JUMP JUMPDEST SWAP2 POP PUSH2 0x1A3A DUP4 DUP4 DUP7 PUSH2 0x2FCB JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x4 SSTORE SWAP11 SWAP10 POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA03 DUP8 DUP8 DUP8 DUP8 DUP8 DUP8 PUSH1 0x0 DUP1 PUSH2 0x1A7B JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1A73 DUP5 DUP5 DUP5 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x185A JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 DUP10 PUSH2 0x1A8B DUP2 PUSH2 0x239E JUMP JUMPDEST DUP13 MLOAD DUP14 SWAP1 PUSH1 0x0 NOT DUP2 ADD SWAP1 DUP2 LT PUSH2 0x1A9D JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD SWAP4 POP PUSH2 0x1AD2 PUSH32 0x536F7672796E5377617058000000000000000000000000000000000000000000 PUSH2 0x1F86 JUMP JUMPDEST SWAP3 POP PUSH2 0x1AFD PUSH32 0x424E54546F6B656E000000000000000000000000000000000000000000000000 PUSH2 0x1F86 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 DUP2 AND SWAP2 AND EQ PUSH2 0x1B5F JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5441524745545F544F4B454E0000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x1B6D DUP14 DUP14 DUP14 ADDRESS DUP12 DUP12 PUSH2 0x185A JUMP JUMPDEST SWAP2 POP PUSH2 0x1B7A DUP5 DUP5 DUP5 PUSH2 0x30AE JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x427C037400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP13 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP12 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x64 DUP2 ADD DUP11 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND SWAP2 PUSH4 0x427C0374 SWAP2 PUSH1 0x84 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1BF0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1C04 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP SWAP4 SWAP16 SWAP15 POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0x1C55 PUSH32 0x436F6E76657273696F6E5061746846696E646572000000000000000000000000 PUSH2 0x1F86 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0xA1C421CD00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP7 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE SWAP2 MLOAD SWAP3 SWAP4 POP SWAP1 DUP4 AND SWAP2 PUSH4 0xA1C421CD SWAP2 PUSH1 0x44 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1CC4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1CD8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1D01 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 MLOAD PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x1D19 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD PUSH1 0x20 DUP2 ADD DUP5 DUP2 GT ISZERO PUSH2 0x1D2C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP6 PUSH1 0x20 DUP3 MUL DUP4 ADD GT PUSH5 0x100000000 DUP3 GT OR ISZERO PUSH2 0x1D49 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP SWAP1 SWAP6 POP POP POP POP POP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1D61 PUSH2 0x1E5E JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x1DC7 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F4F574E4552000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x1DFE PUSH2 0x1E5E JUMP JUMPDEST PUSH3 0xF4240 DUP2 GT ISZERO PUSH2 0x1E59 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F414646494C494154455F46454500000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x5 SSTORE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x1EC0 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0x1F22 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ADDRESS EQ ISZERO PUSH2 0x1F22 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F414444524553535F49535F53454C4600000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xBB34534C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP2 PUSH4 0xBB34534C SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1FEC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2000 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2016 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x7472616E7366657228616464726573732C75696E743235362900000000000000 DUP2 MSTORE DUP2 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x19 ADD DUP2 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x64 SWAP1 SWAP3 ADD SWAP1 SWAP3 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0xE0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xE0 PUSH1 0x2 EXP SUB NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE PUSH2 0x20A6 SWAP1 DUP5 SWAP1 PUSH2 0x3175 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO ISZERO PUSH2 0x20D4 JUMPI POP DUP1 PUSH2 0x2109 JUMP JUMPDEST PUSH2 0x20DD DUP4 PUSH2 0x3203 JUMP JUMPDEST ISZERO PUSH2 0x20FD JUMPI POP PUSH20 0xEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE PUSH2 0x2109 JUMP JUMPDEST PUSH2 0x2106 DUP4 PUSH2 0x3294 JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 ISZERO ISZERO PUSH2 0x2122 JUMPI PUSH1 0x0 SWAP2 POP PUSH2 0x1D52 JUMP JUMPDEST POP DUP3 DUP3 MUL DUP3 DUP5 DUP3 DUP2 ISZERO ISZERO PUSH2 0x2132 JUMPI INVALID JUMPDEST DIV EQ PUSH2 0x2188 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP4 GT PUSH2 0x21E9 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4449564944455F42595F5A45524F0000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP3 DUP5 DUP2 ISZERO ISZERO PUSH2 0x21F4 JUMPI INVALID JUMPDEST DIV SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 ADD DUP4 DUP2 LT ISZERO PUSH2 0x2188 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 DUP4 LT ISZERO PUSH2 0x22B4 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F554E444552464C4F5700000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP SWAP1 SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x22C5 PUSH2 0x3521 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x67657452657475726E28616464726573732C616464726573732C75696E743235 DUP2 MSTORE PUSH32 0x3629000000000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP3 MLOAD SWAP2 DUP3 SWAP1 SUB PUSH1 0x22 ADD DUP3 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP12 AND PUSH1 0x24 DUP6 ADD MSTORE DUP10 AND PUSH1 0x44 DUP5 ADD MSTORE PUSH1 0x64 DUP1 DUP5 ADD DUP10 SWAP1 MSTORE DUP5 MLOAD DUP1 DUP6 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x84 SWAP1 SWAP4 ADD DUP5 MSTORE SWAP1 DUP3 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0xE0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xE0 PUSH1 0x2 EXP SUB NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR DUP2 MSTORE DUP2 MLOAD SWAP2 SWAP3 SWAP2 DUP5 SWAP2 DUP12 GAS STATICCALL DUP1 ISZERO ISZERO PUSH2 0x2387 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD MLOAD SWAP1 SWAP8 SWAP1 SWAP7 POP SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 GT PUSH2 0x1F22 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5A45524F5F56414C5545000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x4 SLOAD PUSH1 0x1 EQ PUSH2 0x1EC0 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5245454E5452414E4359000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x8DA5CB5B PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2491 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x24A5 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x24BB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 POP PUSH2 0x24C8 DUP3 PUSH2 0x3203 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 CALLVALUE GT ISZERO PUSH2 0x2596 JUMPI CALLVALUE DUP4 EQ PUSH2 0x252A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4554485F414D4F554E545F4D49534D41544348000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP1 ISZERO ISZERO PUSH2 0x2591 JUMPI PUSH2 0x253A DUP3 PUSH2 0x3294 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xD0E30DB0 CALLVALUE PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2577 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x258B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP JUMPDEST PUSH2 0x264D JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x262F JUMPI PUSH2 0x25C3 DUP6 CALLER ADDRESS DUP7 PUSH2 0x33E1 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2591 JUMPI DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x2E1A7D4D DUP5 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2612 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2626 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x264D JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2641 JUMPI PUSH2 0x2591 DUP6 CALLER DUP5 DUP7 PUSH2 0x33E1 JUMP JUMPDEST PUSH2 0x264D DUP6 CALLER ADDRESS DUP7 PUSH2 0x33E1 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x266A PUSH2 0x353C JUMP JUMPDEST DUP13 MLOAD PUSH1 0x2 SWAP1 DIV PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x26A9 JUMPI DUP2 PUSH1 0x20 ADD JUMPDEST PUSH2 0x2696 PUSH2 0x353C JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 SWAP1 SUB SWAP1 DUP2 PUSH2 0x268E JUMPI SWAP1 POP JUMPDEST POP SWAP9 POP PUSH1 0x0 SWAP8 POP PUSH2 0x26D9 PUSH32 0x424E54546F6B656E000000000000000000000000000000000000000000000000 PUSH2 0x1F86 JUMP JUMPDEST SWAP7 POP PUSH1 0x0 SWAP6 POP JUMPDEST PUSH1 0x1 DUP14 MLOAD SUB DUP7 LT ISZERO PUSH2 0x2874 JUMPI DUP13 DUP7 PUSH1 0x1 ADD DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x26FD JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD SWAP5 POP DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x8DA5CB5B PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2747 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x275B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2771 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD DUP14 MLOAD SWAP1 SWAP5 POP DUP14 SWAP1 PUSH1 0x2 DUP9 ADD SWAP1 DUP2 LT PUSH2 0x2787 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD SWAP3 POP DUP11 DUP1 ISZERO PUSH2 0x279E JUMPI POP DUP8 ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x27BB JUMPI POP DUP7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ JUMPDEST SWAP2 POP DUP2 ISZERO PUSH2 0x27C8 JUMPI PUSH1 0x1 SWAP8 POP JUMPDEST PUSH1 0xE0 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 DUP6 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP15 DUP9 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x2800 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x2840 DUP7 PUSH2 0x3203 JUMP JUMPDEST ISZERO ISZERO DUP2 MSTORE DUP4 ISZERO ISZERO PUSH1 0x20 SWAP1 SWAP2 ADD MSTORE DUP10 PUSH1 0x2 DUP9 DIV DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x285E JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MSTORE PUSH1 0x2 SWAP6 SWAP1 SWAP6 ADD SWAP5 PUSH2 0x26E0 JUMP JUMPDEST DUP9 PUSH1 0x0 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x2883 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x40 DUP1 DUP3 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 SWAP1 SWAP4 MSTORE SWAP1 SWAP2 KECCAK256 SLOAD SWAP1 SWAP2 POP PUSH1 0xFF AND ISZERO PUSH2 0x28F9 JUMPI DUP1 PUSH1 0xA0 ADD MLOAD ISZERO PUSH2 0x28DF JUMPI PUSH20 0xEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE PUSH1 0x40 DUP3 ADD MSTORE PUSH2 0x28F9 JUMP JUMPDEST DUP1 MLOAD PUSH2 0x28EA SWAP1 PUSH2 0x3294 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x40 DUP3 ADD MSTORE JUMPDEST DUP9 MLOAD DUP10 SWAP1 PUSH1 0x0 NOT DUP2 ADD SWAP1 DUP2 LT PUSH2 0x290B JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x60 DUP2 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 SWAP1 SWAP3 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 SLOAD SWAP1 SWAP2 POP PUSH1 0xFF AND ISZERO PUSH2 0x2982 JUMPI DUP1 PUSH1 0xA0 ADD MLOAD ISZERO PUSH2 0x2968 JUMPI PUSH20 0xEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE PUSH1 0x60 DUP3 ADD MSTORE PUSH2 0x2982 JUMP JUMPDEST DUP1 MLOAD PUSH2 0x2973 SWAP1 PUSH2 0x3294 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x60 DUP3 ADD MSTORE JUMPDEST PUSH1 0x0 SWAP6 POP JUMPDEST DUP9 MLOAD DUP7 LT ISZERO PUSH2 0x2A5A JUMPI DUP9 DUP7 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x299E JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD SWAP1 POP DUP1 PUSH1 0xA0 ADD MLOAD ISZERO PUSH2 0x2A48 JUMPI DUP1 PUSH1 0xC0 ADD MLOAD ISZERO PUSH2 0x29C9 JUMPI ADDRESS PUSH1 0x80 DUP3 ADD MSTORE PUSH2 0x2A43 JUMP JUMPDEST PUSH1 0x1 DUP10 MLOAD SUB DUP7 EQ ISZERO PUSH2 0x29E9 JUMPI PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP13 AND PUSH1 0x80 DUP3 ADD MSTORE PUSH2 0x2A43 JUMP JUMPDEST DUP9 DUP7 PUSH1 0x1 ADD DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x29FA JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0xA0 ADD MLOAD ISZERO PUSH2 0x2A3C JUMPI DUP9 DUP7 PUSH1 0x1 ADD DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x2A1E JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MLOAD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x80 DUP3 ADD MSTORE PUSH2 0x2A43 JUMP JUMPDEST ADDRESS PUSH1 0x80 DUP3 ADD MSTORE JUMPDEST PUSH2 0x2A4F JUMP JUMPDEST ADDRESS PUSH1 0x80 DUP3 ADD MSTORE JUMPDEST PUSH1 0x1 SWAP1 SWAP6 ADD SWAP5 PUSH2 0x2987 JUMP JUMPDEST POP SWAP7 SWAP12 SWAP11 POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x2A79 PUSH2 0x353C JUMP JUMPDEST PUSH1 0x0 DUP10 SWAP4 POP PUSH1 0x0 SWAP3 POP JUMPDEST DUP11 MLOAD DUP4 LT ISZERO PUSH2 0x2F64 JUMPI DUP11 DUP4 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x2A9A JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD SWAP2 POP DUP2 PUSH1 0xA0 ADD MLOAD ISZERO PUSH2 0x2B2B JUMPI DUP3 ISZERO DUP1 ISZERO SWAP1 PUSH2 0x2AE7 JUMPI POP DUP11 MLOAD ADDRESS SWAP1 DUP13 SWAP1 PUSH1 0x0 NOT DUP7 ADD SWAP1 DUP2 LT PUSH2 0x2ACE JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x80 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ JUMPDEST DUP1 ISZERO PUSH2 0x2B0E JUMPI POP PUSH1 0x40 DUP1 DUP4 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE KECCAK256 SLOAD PUSH1 0xFF AND ISZERO JUMPDEST ISZERO PUSH2 0x2B26 JUMPI PUSH2 0x2B26 DUP3 PUSH1 0x40 ADD MLOAD DUP4 PUSH1 0x0 ADD MLOAD DUP7 PUSH2 0x201E JUMP JUMPDEST PUSH2 0x2B61 JUMP JUMPDEST DUP2 PUSH1 0x20 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP3 PUSH1 0x40 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ ISZERO ISZERO PUSH2 0x2B61 JUMPI PUSH2 0x2B61 DUP3 PUSH1 0x40 ADD MLOAD DUP4 PUSH1 0x0 ADD MLOAD DUP7 PUSH2 0x30AE JUMP JUMPDEST DUP2 PUSH1 0xA0 ADD MLOAD ISZERO ISZERO PUSH2 0x2C24 JUMPI DUP2 MLOAD PUSH1 0x40 DUP1 DUP5 ADD MLOAD PUSH1 0x60 DUP6 ADD MLOAD DUP3 MLOAD PUSH32 0x5E5144EB00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 DUP4 AND PUSH1 0x4 DUP3 ADD MSTORE SWAP1 DUP3 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 DUP2 ADD DUP9 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x64 DUP3 ADD MSTORE SWAP2 MLOAD SWAP3 AND SWAP2 PUSH4 0x5E5144EB SWAP2 PUSH1 0x84 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2BF1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2C05 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2C1B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP5 POP PUSH2 0x2DC1 JUMP JUMPDEST PUSH1 0x40 DUP1 DUP4 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x2D02 JUMPI DUP2 MLOAD PUSH1 0x40 DUP1 DUP5 ADD MLOAD PUSH1 0x60 DUP6 ADD MLOAD PUSH1 0x80 DUP7 ADD MLOAD DUP4 MLOAD PUSH32 0xE8DC12FF00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND PUSH1 0x4 DUP3 ADD MSTORE SWAP2 DUP4 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP3 ADD DUP10 SWAP1 MSTORE CALLER PUSH1 0x64 DUP4 ADD MSTORE DUP3 AND PUSH1 0x84 DUP3 ADD MSTORE SWAP2 MLOAD SWAP3 AND SWAP2 PUSH4 0xE8DC12FF SWAP2 CALLVALUE SWAP2 PUSH1 0xA4 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP6 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2CD7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2CEB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2C1B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x40 DUP1 DUP5 ADD MLOAD PUSH1 0x60 DUP6 ADD MLOAD PUSH1 0x80 DUP7 ADD MLOAD DUP4 MLOAD PUSH32 0xE8DC12FF00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND PUSH1 0x4 DUP3 ADD MSTORE SWAP2 DUP4 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP3 ADD DUP10 SWAP1 MSTORE CALLER PUSH1 0x64 DUP4 ADD MSTORE DUP3 AND PUSH1 0x84 DUP3 ADD MSTORE SWAP2 MLOAD SWAP3 AND SWAP2 PUSH4 0xE8DC12FF SWAP2 PUSH1 0xA4 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2D92 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2DA6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2DBC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP5 POP JUMPDEST DUP2 PUSH1 0xC0 ADD MLOAD ISZERO PUSH2 0x2ED3 JUMPI PUSH2 0x2DE2 PUSH3 0xF4240 PUSH2 0x12C0 DUP8 DUP11 PUSH4 0xFFFFFFFF PUSH2 0x210F AND JUMP JUMPDEST SWAP1 POP DUP2 PUSH1 0x60 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xA9059CBB DUP10 DUP4 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2E4B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2E5F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2E75 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD ISZERO ISZERO PUSH2 0x2ECD JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4645455F5452414E534645525F4641494C4544000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP1 DUP6 SUB SWAP5 POP JUMPDEST DUP2 PUSH1 0x60 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP3 PUSH1 0x40 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP4 PUSH1 0x20 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH32 0x7154B38B5DD31BB3122436A96D4E09ABA5B323AE1FD580025FAB55074334C095 DUP8 DUP10 CALLER PUSH1 0x40 MLOAD DUP1 DUP5 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP4 POP POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 DUP5 SWAP4 POP PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 PUSH2 0x2A83 JUMP JUMPDEST DUP9 DUP6 LT ISZERO PUSH2 0x2FBC JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F52455455524E5F544F4F5F4C4F570000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP SWAP3 SWAP10 SWAP9 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x2FD3 PUSH2 0x353C JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH1 0x1 DUP7 MLOAD SUB DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x2FE7 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MLOAD PUSH1 0x80 DUP2 ADD MLOAD SWAP1 SWAP3 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND ADDRESS EQ PUSH2 0x300D JUMPI PUSH2 0x264D JUMP JUMPDEST POP PUSH1 0x60 DUP2 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x30A3 JUMPI PUSH1 0xA0 DUP3 ADD MLOAD ISZERO PUSH2 0x3040 JUMPI INVALID JUMPDEST DUP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x205C2878 DUP5 DUP7 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2612 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x264D DUP2 DUP5 DUP7 PUSH2 0x201E JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0xDD62ED3E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE SWAP2 MLOAD PUSH1 0x0 SWAP3 DUP7 AND SWAP2 PUSH4 0xDD62ED3E SWAP2 PUSH1 0x44 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3119 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x312D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x3143 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 POP DUP2 DUP2 LT ISZERO PUSH2 0x316F JUMPI PUSH1 0x0 DUP2 GT ISZERO PUSH2 0x3164 JUMPI PUSH2 0x3164 DUP5 DUP5 PUSH1 0x0 PUSH2 0x3499 JUMP JUMPDEST PUSH2 0x316F DUP5 DUP5 DUP5 PUSH2 0x3499 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0x317D PUSH2 0x3578 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE POP SWAP1 POP PUSH1 0x20 DUP2 DUP4 MLOAD PUSH1 0x20 DUP6 ADD PUSH1 0x0 DUP8 GAS CALL DUP1 ISZERO ISZERO PUSH2 0x31AA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD ISZERO ISZERO PUSH2 0x20A6 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5452414E534645525F4641494C454400000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x320E PUSH2 0x3578 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x69735632384F7248696768657228290000000000000000000000000000000000 DUP2 MSTORE DUP2 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0xF ADD DUP2 KECCAK256 PUSH1 0x4 DUP3 MSTORE PUSH1 0x24 DUP3 ADD SWAP1 SWAP3 MSTORE PUSH1 0x20 DUP1 DUP3 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0xE0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xE0 PUSH1 0x2 EXP SUB NOT SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 OR DUP4 MSTORE DUP2 MLOAD SWAP2 SWAP3 SWAP1 SWAP2 DUP5 SWAP2 DUP9 PUSH2 0x1388 STATICCALL SWAP3 POP DUP3 DUP1 ISZERO PUSH2 0x3289 JUMPI POP DUP2 MLOAD ISZERO ISZERO JUMPDEST SWAP4 POP JUMPDEST POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x71F52BF3 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x32D8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x32EC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x3302 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH2 0xFFFF AND SWAP3 POP PUSH1 0x0 SWAP2 POP JUMPDEST DUP3 DUP3 LT ISZERO PUSH2 0x33C3 JUMPI DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x19B64015 DUP4 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3360 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3374 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x338A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 SWAP2 POP PUSH1 0xFF AND ISZERO PUSH2 0x33B8 JUMPI DUP1 SWAP4 POP PUSH2 0x328C JUMP JUMPDEST PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x330F JUMP JUMPDEST POP PUSH20 0xEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x7472616E7366657246726F6D28616464726573732C616464726573732C75696E DUP2 MSTORE PUSH32 0x7432353629000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP3 MLOAD SWAP2 DUP3 SWAP1 SUB PUSH1 0x25 ADD DUP3 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP9 AND PUSH1 0x24 DUP6 ADD MSTORE DUP7 AND PUSH1 0x44 DUP5 ADD MSTORE PUSH1 0x64 DUP1 DUP5 ADD DUP7 SWAP1 MSTORE DUP5 MLOAD DUP1 DUP6 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x84 SWAP1 SWAP4 ADD SWAP1 SWAP4 MSTORE DUP2 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0xE0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xE0 PUSH1 0x2 EXP SUB NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE PUSH2 0x316F SWAP1 DUP6 SWAP1 PUSH2 0x3175 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x617070726F766528616464726573732C75696E74323536290000000000000000 DUP2 MSTORE DUP2 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x18 ADD DUP2 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x64 SWAP1 SWAP3 ADD SWAP1 SWAP3 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0xE0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xE0 PUSH1 0x2 EXP SUB NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE PUSH2 0x20A6 SWAP1 DUP5 SWAP1 PUSH2 0x3175 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD DUP3 MSTORE SWAP1 PUSH1 0x2 SWAP1 DUP3 SWAP1 DUP1 CODESIZE DUP4 CODECOPY POP SWAP2 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xE0 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE SWAP2 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x60 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0xA0 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0xC0 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 SWAP1 PUSH1 0x20 DUP3 MUL DUP1 CODESIZE DUP4 CODECOPY POP SWAP2 SWAP3 SWAP2 POP POP JUMP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 0xfc PUSH4 0x55C3C67E 0xd0 POP PUSH10 0x7B7FD7B2BC3393A8CCE9 DUP3 SWAP11 0xab 0xb5 0x5c 0xbd 0xc 0x2e GASLIMIT 0x4e PC 0xc1 DELEGATECALL STOP 0x29 ", + "sourceMap": "1919:28113:3:-;;;;;;;;;-1:-1:-1;;;1919:28113:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3280:206:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3280:206:60;;;;;;;;;4001:157:3;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4001:157:3;-1:-1:-1;;;;;4001:157:3;;;;;;;;;27386:148;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;27386:148:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;27386:148:3;;-1:-1:-1;;27386:148:3;;;-1:-1:-1;27386:148:3;;-1:-1:-1;;;;27386:148:3;;;;;;;;;;;;;;;;;;;;;;;;29727:303;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;29727:303:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;29727:303:3;;-1:-1:-1;;29727:303:3;;;-1:-1:-1;;;29727:303:3;;;;;-1:-1:-1;;;;;29727:303:3;;;;;;;-1:-1:-1;29727:303:3;;;;;;-1:-1:-1;29727:303:3;;;;;;;;;;;;;;;;;;;;;1250:38:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1250:38:60;;;;;;;;;;;;;;;;;;;;;;2080:832;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2080:832:60;;;;27848:274:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;27848:274:3;;-1:-1:-1;;27848:274:3;;;-1:-1:-1;;;27848:274:3;;;;;-1:-1:-1;;;;;27848:274:3;;;;;;-1:-1:-1;27848:274:3;;;;-1:-1:-1;27848:274:3;;2489:38;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2489:38:3;;;;1077:194:71;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1077:194:71;-1:-1:-1;;;;;1077:194:71;;;;;;;;;;;;1165:37:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1165:37:60;;;;;;;;-1:-1:-1;;;;;1165:37:60;;;;;;;;;;;;;;1159:176:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1159:176:66;;;;1085:33:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1085:33:60;;;;5106:2283:3;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;5106:2283:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5106:2283:3;;-1:-1:-1;;5106:2283:3;;;-1:-1:-1;5106:2283:3;;-1:-1:-1;;;;5106:2283:3;2556:43;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2556:43:3;-1:-1:-1;;;;;2556:43:3;;;;;14007:558;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;14007:558:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;14007:558:3;;-1:-1:-1;;;;;;;14007:558:3;;;;;-1:-1:-1;14007:558:3;;;;;;;;;;-1:-1:-1;14007:558:3;;;;;-1:-1:-1;14007:558:3;;-1:-1:-1;;14007:558:3;157:20:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;157:20:66;;;;28465:331:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;28465:331:3;;-1:-1:-1;;28465:331:3;;;-1:-1:-1;;;28465:331:3;;;;;-1:-1:-1;;;;;28465:331:3;;;;;;;-1:-1:-1;28465:331:3;;;;;;-1:-1:-1;28465:331:3;;;;;29441:229;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;29441:229:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;29441:229:3;;-1:-1:-1;;29441:229:3;;;-1:-1:-1;;;29441:229:3;;;;;;;;-1:-1:-1;;;;;29441:229:3;;-1:-1:-1;29441:229:3;;-1:-1:-1;29441:229:3;2974:119:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2974:119:60;;;;8480:1350:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8480:1350:3;;-1:-1:-1;;8480:1350:3;;;-1:-1:-1;;;8480:1350:3;;;;;-1:-1:-1;;;;;8480:1350:3;;;;;;;-1:-1:-1;8480:1350:3;;;;;;-1:-1:-1;8480:1350:3;;;;;10804:315;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;10804:315:3;;-1:-1:-1;;10804:315:3;;;-1:-1:-1;;;10804:315:3;;;;;;;;;;-1:-1:-1;10804:315:3;;;;;-1:-1:-1;10804:315:3;;;;;28853:200;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;28853:200:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;28853:200:3;;-1:-1:-1;;28853:200:3;;;-1:-1:-1;;;28853:200:3;;;;;;-1:-1:-1;28853:200:3;;-1:-1:-1;28853:200:3;28179:229;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;28179:229:3;;-1:-1:-1;;28179:229:3;;;-1:-1:-1;;;28179:229:3;;;;;;;;-1:-1:-1;;;;;28179:229:3;;-1:-1:-1;28179:229:3;;-1:-1:-1;28179:229:3;12204:913;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12204:913:3;;-1:-1:-1;;12204:913:3;;;-1:-1:-1;;;12204:913:3;;;;;;;;;;-1:-1:-1;12204:913:3;;;;;-1:-1:-1;12204:913:3;;;;;-1:-1:-1;;;;;12204:913:3;;;;;;;;;;;180:23:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;180:23:66;;;;4493:265:3;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4493:265:3;-1:-1:-1;;;;;4493:265:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;4493:265:3;;;;;;;;;;;;;;;;;29110:274;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;29110:274:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;29110:274:3;;-1:-1:-1;;29110:274:3;;;-1:-1:-1;;;29110:274:3;;;;;-1:-1:-1;;;;;29110:274:3;;;;;;-1:-1:-1;29110:274:3;;;;-1:-1:-1;29110:274:3;;945:140:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;945:140:66;-1:-1:-1;;;;;945:140:66;;;;;27591:200:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;27591:200:3;;-1:-1:-1;;27591:200:3;;;-1:-1:-1;;;27591:200:3;;;;;;-1:-1:-1;27591:200:3;;-1:-1:-1;27591:200:3;3608:199;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3608:199:3;;;;;3280:206:60;575:12:66;:10;:12::i;:::-;3426:26:60;:56;;;;;;;-1:-1:-1;;3426:56:60;;;;;;;;;3280:206::o;4001:157:3:-;575:12:66;:10;:12::i;:::-;4095:6:3;475:23:72;489:8;475:13;:23::i;:::-;4111:6:3;782:18:72;791:8;782;:18::i;:::-;-1:-1:-1;;;;;;;4123:19:3;;;;;;;;:11;:19;;;;;:31;;-1:-1:-1;;4123:31:3;;;;;;;;;;4001:157::o;27386:148::-;27470:7;27479;27500:26;27511:5;27518:7;27500:10;:26::i;:::-;27492:38;27528:1;;-1:-1:-1;27386:148:3;-1:-1:-1;;;27386:148:3:o;29727:303::-;29917:7;29937:89;29951:5;29958:7;29967:10;29979:12;29993:17;30012:13;29937;:89::i;:::-;29930:96;29727:303;-1:-1:-1;;;;;;;29727:303:3:o;1250:38:60:-;;;;;;;;;:::o;2080:832::-;2281:29;2183:5;;-1:-1:-1;;;;;2183:5:60;2169:10;:19;;:50;;-1:-1:-1;2193:26:60;;;;;;;2192:27;2169:50;2161:80;;;;;;;-1:-1:-1;;;;;2161:80:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;2331:28;2341:17;2331:9;:28::i;:::-;2465:8;;2281:79;;-1:-1:-1;;;;;;2442:32:60;;;2465:8;;2442:32;;;;:61;;-1:-1:-1;;;;;;2478:25:60;;;;2442:61;2434:94;;;;;;;-1:-1:-1;;;;;2434:94:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;2628:40;;;;;;2650:17;2628:40;;;;;;2680:1;;-1:-1:-1;;;;;2628:21:60;;;;;:40;;;;;;;;;;;;;;;2680:1;2628:21;:40;;;5:2:-1;;;;30:1;27;20:12;5:2;2628:40:60;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2628:40:60;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2628:40:60;-1:-1:-1;;;;;2628:54:60;;;2620:87;;;;;-1:-1:-1;;;;;2620:87:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;2799:8;;;2784:12;:23;;-1:-1:-1;;;;;2799:8:60;;;-1:-1:-1;;2784:23:60;;;;;;;2886:22;;;;;;;;;;;2080:832::o;27848:274:3:-;28011:7;28031:87;28045:5;28052:7;28061:10;28081:1;28085:17;28104:13;28031;:87::i;:::-;28024:94;27848:274;-1:-1:-1;;;;;;27848:274:3:o;2489:38::-;;;;:::o;1077:194:71:-;575:12:66;:10;:12::i;:::-;1190:6:71;475:23:72;489:8;475:13;:23::i;:::-;1211:3:71;475:23:72;489:8;475:13;:23::i;:::-;1224:3:71;782:18:72;791:8;782;:18::i;:::-;1233:34:71;1246:6;1254:3;1259:7;1233:12;:34::i;:::-;502:1:72;;591::66;1077:194:71;;;:::o;1165:37:60:-;;;-1:-1:-1;;;;;1165:37:60;;:::o;1159:176:66:-;1219:8;;-1:-1:-1;;;;;1219:8:66;1205:10;:22;1197:52;;;;;-1:-1:-1;;;;;1197:52:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;1277:8;;;1270:5;;1258:28;;-1:-1:-1;;;;;1277:8:66;;;;1270:5;;;;1258:28;;;1298:8;;;;1290:16;;-1:-1:-1;;1290:16:66;;;-1:-1:-1;;;;;1298:8:66;;1290:16;;;;1310:21;;;1159:176::o;1085:33:60:-;;;-1:-1:-1;;;;;1085:33:60;;:::o;5106:2283:3:-;5185:7;5198:14;5216:11;5231:14;5249:15;5268:13;5285:20;5309:26;5596:9;5642:23;5685:18;5723:23;5357:29;5367:18;5357:9;:29::i;:::-;5309:78;;5401:7;5392:16;;5501:1;5486:5;:12;:16;:41;;;;-1:-1:-1;5506:12:3;;5521:1;;5506:16;5526:1;5506:21;5486:41;5478:70;;;;;;;-1:-1:-1;;;;;5478:70:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;5608:1;5596:13;;5591:1777;5615:5;:12;5611:1;:16;5591:1777;;;5668:5;5678:1;5674;:5;5668:12;;;;;;;;;;;;;;;;;;5642:38;;5706:5;5716:1;5712;:5;5706:12;;;;;;;;;;;;;;;;;;5685:33;;5749:5;5755:1;5749:8;;;;;;;;;;;;;;;;;;5723:34;;5803:6;-1:-1:-1;;;;;5786:30:3;;:32;;;;;-1:-1:-1;;;5786:32:3;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5786:32:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5786:32:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5786:32:3;;-1:-1:-1;5868:48:3;5786:32;5904:11;5868:24;:48::i;:::-;5854:62;;5935:48;5960:9;5971:11;5935:24;:48::i;:::-;5921:62;;6008:6;-1:-1:-1;;;;;5993:21:3;:11;-1:-1:-1;;;;;5993:21:3;;5989:1375;;;6109:1;6105;:5;:31;;;;6124:5;6134:1;6130;:5;6124:12;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6114:22:3;:6;-1:-1:-1;;;;;6114:22:3;;;6105:31;6101:79;;;6159:6;-1:-1:-1;;;;;6147:31:3;;:33;;;;;-1:-1:-1;;;6147:33:3;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6147:33:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6147:33:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6147:33:3;;-1:-1:-1;6101:79:3;6240:9;-1:-1:-1;;;;;6240:29:3;;6270:11;6240:42;;;;;-1:-1:-1;;;6240:42:3;;;;;;;-1:-1:-1;;;;;6240:42:3;-1:-1:-1;;;;;6240:42:3;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6240:42:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6240:42:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6240:42:3;6307:33;;;;;;-1:-1:-1;;;;;6307:33:3;;;;;;;;;6240:42;;-1:-1:-1;6307:20:3;;;;;;:33;;;;;;;;;;;;;;;-1:-1:-1;6307:20:3;:33;;;5:2:-1;;;;30:1;27;20:12;5:2;6307:33:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6307:33:3;;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;6307:33:3;;;;;;6355:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6307:33;;-1:-1:-1;;;;;;6355:28:3;;;;;:61;;;;;;;;;;-1:-1:-1;6355:28:3;:61;;;5:2:-1;;;;30:1;27;20:12;5:2;6355:61:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6355:61:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6355:61:3;6439:25;;;;;;;;6355:61;;-1:-1:-1;6428:68:3;;2108:7;;6428:37;;-1:-1:-1;;;;;6439:23:3;;;;;:25;;;;;6355:61;;6439:25;;;;;;;;:23;:25;;;5:2:-1;;;;30:1;27;20:12;5:2;6439:25:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6439:25:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6439:25:3;6428:6;;:37;;;;;:10;:37;:::i;:::-;:41;:68;:41;:68;:::i;:::-;6502:13;;;;;6422:74;-1:-1:-1;6591:18:3;:6;6502:13;6591:18;:10;:18;:::i;:::-;6582:27;;5989:1375;;;6640:6;-1:-1:-1;;;;;6625:21:3;:11;-1:-1:-1;;;;;6625:21:3;;6621:743;;;6742:1;6738;:5;:31;;;;6757:5;6767:1;6763;:5;6757:12;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6747:22:3;:6;-1:-1:-1;;;;;6747:22:3;;;6738:31;6734:79;;;6792:6;-1:-1:-1;;;;;6780:31:3;;:33;;;;;-1:-1:-1;;;6780:33:3;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6780:33:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6780:33:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6780:33:3;;-1:-1:-1;6734:79:3;6873:9;-1:-1:-1;;;;;6873:29:3;;6903:11;6873:42;;;;;-1:-1:-1;;;6873:42:3;;;;;;;-1:-1:-1;;;;;6873:42:3;-1:-1:-1;;;;;6873:42:3;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6873:42:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6873:42:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6873:42:3;6940:33;;;;;;-1:-1:-1;;;;;6940:33:3;;;;;;;;;6873:42;;-1:-1:-1;6940:20:3;;;;;;:33;;;;;;;;;;;;;;;-1:-1:-1;6940:20:3;:33;;;5:2:-1;;;;30:1;27;20:12;5:2;6940:33:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6940:33:3;;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;6940:33:3;;;;;;6988:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6940:33;;-1:-1:-1;;;;;;6988:24:3;;;;;:57;;;;;;;;;;-1:-1:-1;6988:24:3;:57;;;5:2:-1;;;;30:1;27;20:12;5:2;6988:57:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6988:57:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6988:57:3;7068:25;;;;;;;;6988:57;;-1:-1:-1;7057:68:3;;2108:7;;7057:37;;-1:-1:-1;;;;;7068:23:3;;;;;:25;;;;;6988:57;;7068:25;;;;;;;;:23;:25;;;5:2:-1;;;;30:1;27;20:12;7057:68:3;7131:13;;;;;7051:74;-1:-1:-1;7220:18:3;:6;7131:13;7220:18;:10;:18;:::i;6621:743::-;7304:54;7314:9;7325:11;7338;7351:6;7304:9;:54::i;:::-;7288:70;;-1:-1:-1;7288:70:3;-1:-1:-1;6621:743:3;5634:1;5629:6;;;;5591:1777;;;-1:-1:-1;7379:6:3;;5106:2283;-1:-1:-1;;;;;;;;;;;;5106:2283:3:o;2556:43::-;;;;;;;;;;;;;;;:::o;14007:558::-;14178:7;14377:14;14270:12;-1:-1:-1;;;;;14270:18:3;;:20;;;;;-1:-1:-1;;;14270:20:3;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14270:20:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14270:20:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;14270:20:3;14258:8;;-1:-1:-1;;;;;14258:32:3;;;;:5;;14264:1;;14258:8;;;;;;;;;;;;;;;-1:-1:-1;;;;;14258:32:3;;14250:69;;;;;-1:-1:-1;;;;;14250:69:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;14394:58;;;;;;;;;;;;14441:10;14394:58;;;;;;-1:-1:-1;;;;;14394:31:3;;;;;:58;;;;;;;;;;;;;;-1:-1:-1;14394:31:3;:58;;;5:2:-1;;;;30:1;27;20:12;5:2;14394:58:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14394:58:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;14394:58:3;;-1:-1:-1;14492:69:3;14506:5;14394:58;14521:10;14533:12;14555:1;;14492:13;:69::i;157:20:66:-;;;-1:-1:-1;;;;;157:20:66;;:::o;28465:331:3:-;28683:7;28662:10;180:24:72;197:6;180:16;:24::i;:::-;28703:89:3;28717:5;28724:7;28733:10;28745:12;28759:17;28778:13;28703;:89::i;:::-;28696:96;28465:331;-1:-1:-1;;;;;;;;28465:331:3:o;29441:229::-;29576:7;29596:70;29610:5;29617:7;29626:10;29638:12;29660:1;29664;29596:13;:70::i;:::-;29589:77;29441:229;-1:-1:-1;;;;;29441:229:3:o;2974:119:60:-;575:12:66;:10;:12::i;:::-;3077::60;;3066:8;:23;;-1:-1:-1;;3066:23:60;-1:-1:-1;;;;;3077:12:60;;;3066:23;;;;;;2974:119::o;8480:1350:3:-;8710:7;9077:24;9391:19;9532:28;9628:14;565:12:68;:10;:12::i;:::-;287:1;581:5;:14;8689:10:3;180:24:72;8689:10:3;180:16:72;:24::i;:::-;8845:1:3;8830:5;:12;:16;:41;;;;-1:-1:-1;8850:12:3;;8865:1;;8850:16;8870:1;8850:21;8830:41;8822:70;;;;;;;-1:-1:-1;;;;;8822:70:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;8969:64;8987:5;8993:1;8987:8;;;;;;;;;;;;;;;;;;9014:5;9020:1;9014:8;;;;;;;;;;;;;;;;;;9025:7;8969:17;:64::i;:::-;9104:5;;-1:-1:-1;;;;;;9117:31:3;;;9113:241;;;9163:18;;9155:56;;;;;-1:-1:-1;;;;;9155:56:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;9113:241;;;9239:13;9235:1;:17;:53;;;;;9273:15;;9256:13;:32;;9235:53;9227:91;;;;;;;-1:-1:-1;;;;;9227:91:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;9345:4;9323:26;;9113:241;9413:10;;-1:-1:-1;;;;;;9431:26:3;;;9427:58;;9473:12;9459:26;;9427:58;9563:61;9584:5;9591:11;9604:19;9563:20;:61::i;:::-;9532:92;;9645:73;9658:4;9664:7;9673:10;9685:17;9704:13;9645:12;:73::i;:::-;9628:90;;9764:44;9782:4;9788:6;9796:11;9764:17;:44::i;:::-;-1:-1:-1;249:1:68;604:5;:16;9820:6:3;8480:1350;-1:-1:-1;;;;;;;;;;8480:1350:3:o;10804:315::-;10993:7;11013:102;11023:5;11030:7;11039:10;11051:17;11070:14;11086:13;11109:1;11113;11013:9;:102::i;28853:200::-;28961:7;28981:68;28995:5;29002:7;29011:10;29031:1;29043;29047;28981:13;:68::i;:::-;28974:75;28853:200;-1:-1:-1;;;;28853:200:3:o;12204:913::-;12476:7;12489:23;12542:24;12776:14;12455:10;180:24:72;197:6;180:16;:24::i;:::-;12521:12:3;;12515:5;;-1:-1:-1;;12521:16:3;;;12515:23;;;;;;;;;;;;;;12489:49;;12582:23;12592:12;12582:9;:23::i;:::-;12542:64;;12680:20;12690:9;12680;:20::i;:::-;-1:-1:-1;;;;;12665:35:3;;;;;;12657:72;;;;;-1:-1:-1;;;;;12657:72:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;12793:81;12807:5;12814:7;12823:10;12835:4;12841:17;12860:13;12793;:81::i;:::-;12776:98;;12912:49;12928:11;12941;12954:6;12912:15;:49::i;:::-;13016:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13016:21:3;;;;;:79;;;;;;;;;;;;;;;:21;:79;;;5:2:-1;;;;30:1;27;20:12;5:2;13016:79:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;13107:6:3;;12204:913;-1:-1:-1;;;;;;;;;;;;;;;12204:913:3:o;180:23:66:-;;;-1:-1:-1;;;;;180:23:66;;:::o;4493:265:3:-;4590:9;4605:32;4662:33;4672:22;4662:9;:33::i;:::-;4707:47;;;;;;-1:-1:-1;;;;;4707:47:3;;;;;;;;;;;;;;;;4605:91;;-1:-1:-1;4707:19:3;;;;;;:47;;;;;-1:-1:-1;;4707:47:3;;;;;;;;-1:-1:-1;4707:19:3;:47;;;5:2:-1;;;;30:1;27;20:12;5:2;4707:47:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4707:47:3;;;;;;39:16:-1;36:1;17:17;2:54;101:4;4707:47:3;80:15:-1;;;-1:-1;;76:31;65:43;;120:4;113:20;13:2;5:11;;2:2;;;29:1;26;19:12;2:2;4707:47:3;;;;;;20:11:-1;15:3;12:20;9:2;;;45:1;42;35:12;9:2;64:21;;126:4;117:14;;142:31;;;139:2;;;186:1;183;176:12;139:2;224:3;218:10;339:9;333:2;319:12;315:21;297:16;293:44;290:59;268:11;254:12;251:29;239:119;236:2;;;371:1;368;361:12;236:2;-1:-1;4707:47:3;;-1:-1:-1;;;;;4493:265:3;;;;;;:::o;945:140:66:-;575:12;:10;:12::i;:::-;1033:5;;-1:-1:-1;;;;;1020:18:66;;;1033:5;;1020:18;;1012:45;;;;;-1:-1:-1;;;;;1012:45:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;1061:8;:20;;-1:-1:-1;;1061:20:66;-1:-1:-1;;;;;1061:20:66;;;;;;;;;;945:140::o;3608:199:3:-;575:12:66;:10;:12::i;:::-;2170:7:3;3691:44;;;3683:82;;;;;-1:-1:-1;;;;;3683:82:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;3769:15;:34;3608:199::o;642:93:66:-;704:5;;-1:-1:-1;;;;;704:5:66;690:10;:19;682:49;;;;;-1:-1:-1;;;;;682:49:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;642:93::o;553:117:72:-;-1:-1:-1;;;;;620:22:72;;;;612:54;;;;;-1:-1:-1;;;;;612:54:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;553:117;:::o;855:115::-;-1:-1:-1;;;;;917:25:72;;937:4;917:25;;909:57;;;;;-1:-1:-1;;;;;909:57:72;;;;;;;;;;;;;;;;;;;;;;;;;;;3647:122:60;3732:8;;:33;;;;;;;;;;;;;;3712:7;;-1:-1:-1;;;;;3732:8:60;;:18;;:33;;;;;;;;;;;;;;3712:7;3732:8;:33;;;5:2:-1;;;;30:1;27;20:12;5:2;3732:33:60;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3732:33:60;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3732:33:60;;3647:122;-1:-1:-1;;3647:122:60:o;1214:173:70:-;248:38;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1323:59:70;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;1323:59:70;;;;;;;;25:18:-1;;61:17;;-1:-1;;;;;182:15;-1:-1;;;;;;1323:59:70;;;179:29:-1;;;;160:49;;;1307:76:70;;1315:6;;1307:7;:76::i;:::-;1214:173;;;:::o;25245:309:3:-;-1:-1:-1;;;;;25366:19:3;;25344:11;25366:19;;;:11;:19;;;;;;;;25365:20;25361:39;;;-1:-1:-1;25394:6:3;25387:13;;25361:39;25409:34;25432:10;25409:22;:34::i;:::-;25405:79;;;-1:-1:-1;2227:42:3;25445:39;;25405:79;25508:41;25538:10;25508:29;:41::i;:::-;25489:61;;25245:309;;;;;:::o;924:197:69:-;984:7;;1023;;1019:21;;;1039:1;1032:8;;;;1019:21;-1:-1:-1;1057:7:69;;;1062:2;1057;:7;1076:6;;;;;;;;:12;1068:37;;;;;-1:-1:-1;;;;;1068:37:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;1116:1;924:197;-1:-1:-1;;;924:197:69:o;1307:149::-;1367:7;;1388:6;;;1380:37;;;;;-1:-1:-1;;;;;1380:37:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;1438:2;1433;:7;;;;;;;;;1307:149;-1:-1:-1;;;;1307:149:69:o;288:144::-;348:7;373;;;392;;;;384:32;;;;;-1:-1:-1;;;;;384:32:69;;;;;;;;;;;;;;;;;;;;;;;;;;;613:129;673:7;694:8;;;;686:34;;;;;-1:-1:-1;;;;;686:34:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;731:7:69;;;613:129::o;25751:697:3:-;25880:7;25889;25902:21;;:::i;:::-;25615:47;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;25947:85:3;;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;25947:85:3;;;;;;25:18:-1;;;61:17;;-1:-1;;;;;182:15;-1:-1;;;;;;25947:85:3;;;179:29:-1;;;;160:49;;26231:11:3;;25947:85;;25615:47;26317:3;;26108:5;26082:3;26066:301;26381:7;26374:15;26371:2;;;26406:1;26403;26396:12;26371:2;-1:-1:-1;;26429:6:3;;;26437;;;;26429;;26437;;-1:-1:-1;25751:697:3;-1:-1:-1;;;;;25751:697:3:o;259:101:72:-;336:1;327:10;;319:37;;;;;-1:-1:-1;;;;;319:37:72;;;;;;;;;;;;;;;;;;;;;;;;;;;670:88:68;718:5;;249:1;718:17;710:44;;;;;-1:-1:-1;;;;;710:44:68;;;;;;;;;;;;;;;;;;;;;;;;;;;17692:1360:3;17809:25;17868:21;17848:7;-1:-1:-1;;;;;17848:13:3;;:15;;;;;-1:-1:-1;;;17848:15:3;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17848:15:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17848:15:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;17848:15:3;;-1:-1:-1;17892:38:3;17848:15;17892:22;:38::i;:::-;17868:62;;17960:1;17948:9;:13;17944:1105;;;18001:9;:20;;17993:56;;;;;-1:-1:-1;;;;;17993:56:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;18243:16;18242:17;18238:108;;;18273:45;18303:14;18273:29;:45::i;:::-;-1:-1:-1;;;;;18261:66:3;;18334:9;18261:85;;;;;-1:-1:-1;;;18261:85:3;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18261:85:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;18261:85:3;;;;;18238:108;17944:1105;;;-1:-1:-1;;;;;18379:25:3;;;;;;:11;:25;;;;;;;;18375:674;;;18561:57;18578:12;18592:10;18604:4;18610:7;18561:16;:57::i;:::-;18667:16;18663:65;;;18697:12;-1:-1:-1;;;;;18685:34:3;;18720:7;18685:43;;;;;-1:-1:-1;;;18685:43:3;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18685:43:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;18685:43:3;;;;18375:674;;;18892:16;18888:156;;;18910:67;18927:12;18941:10;18953:14;18969:7;18910:16;:67::i;18888:156::-;18987:57;19004:12;19018:10;19030:4;19036:7;18987:16;:57::i;:::-;17692:1360;;;;;:::o;20566:3379::-;20707:16;20729:28;20813:26;20851:16;20972:9;21042:23;21113:20;21167:23;21287:24;21971:30;;:::i;:::-;20781:22;;20806:1;;20781:26;20760:48;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;20729:79;;20842:5;20813:34;;20870:20;20880:9;20870;:20::i;:::-;20851:39;;20994:1;20990:5;;20985:946;21026:1;21001:15;:22;:26;20997:1;:30;20985:946;;;21085:15;21101:1;21105;21101:5;21085:22;;;;;;;;;;;;;;;;;;21042:66;;21147:6;-1:-1:-1;;;;;21147:12:3;;:14;;;;;-1:-1:-1;;;21147:14:3;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;21147:14:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;21147:14:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;21147:14:3;21193:22;;21147:14;;-1:-1:-1;21193:15:3;;21213:1;21209:5;;;21193:22;;;;;;;;;;;;;;21167:48;;21314:20;:46;;;;;21339:21;21338:22;21314:46;:73;;;;;21379:8;-1:-1:-1;;;;;21364:23:3;:11;-1:-1:-1;;;;;21364:23:3;;21314:73;21287:100;;21396:19;21392:53;;;21441:4;21417:28;;21392:53;21465:461;;;;;;;;;21574:9;-1:-1:-1;;;;;21465:461:3;;;;;21526:6;-1:-1:-1;;;;;21465:461:3;;;;;21638:15;21654:1;21638:18;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;21465:461:3;;;;;21675:11;-1:-1:-1;;;;;21465:461:3;;;;;21792:1;-1:-1:-1;;;;;21465:461:3;;;;;21841:33;21864:9;21841:22;:33::i;:::-;21465:461;;;;;;;;;;;;21451:4;21460:1;21456;:5;21451:11;;;;;;;;;;;;;;;;;;:475;21034:1;21029:6;;;;;20985:946;;;22004:4;22009:1;22004:7;;;;;;;;;;;;;;;;;;;;22031:20;;;;;-1:-1:-1;;;;;22019:33:3;;;;;:11;:33;;;;;;;22004:7;;-1:-1:-1;22019:33:3;;22015:422;;;22145:8;:31;;;22141:291;;;2227:42;22182:20;;;:55;22141:291;;;22412:18;;22382:49;;:29;:49::i;:::-;-1:-1:-1;;;;;22347:85:3;:20;;;:85;22141:291;22476:11;;22471:4;;-1:-1:-1;;22476:15:3;;;22471:21;;;;;;;;;;;;;;;;22512:20;;;;-1:-1:-1;;;;;22500:33:3;;;;;:11;:33;;;;;;;;22471:21;;-1:-1:-1;22500:33:3;;22496:422;;;22626:8;:31;;;22622:291;;;2227:42;22663:20;;;:55;22622:291;;;22893:18;;22863:49;;:29;:49::i;:::-;-1:-1:-1;;;;;22828:85:3;:20;;;:85;22622:291;22970:1;22966:5;;22961:965;22977:4;:11;22973:1;:15;22961:965;;;23011:4;23016:1;23011:7;;;;;;;;;;;;;;;;;;23000:18;;23149:8;:31;;;23145:777;;;23279:8;:28;;;23275:520;;;23337:4;23314:20;;;:27;23275:520;;;23443:1;23429:4;:11;:15;23424:1;:20;23420:375;;;-1:-1:-1;;;;;23451:35:3;;:20;;;:35;23420:375;;;23587:4;23592:1;23596;23592:5;23587:11;;;;;;;;;;;;;;;;;;:34;;;23583:212;;;23651:4;23656:1;23660;23656:5;23651:11;;;;;;;;;;;;;;;;;;;:21;-1:-1:-1;;;;;23628:44:3;:20;;;:44;23583:212;;;23791:4;23768:20;;;:27;23583:212;23145:777;;;23912:4;23889:20;;;:27;23145:777;22990:3;;;;;22961:965;;;-1:-1:-1;23937:4:3;;20566:3379;-1:-1:-1;;;;;;;;;;;20566:3379:3:o;15125:2257::-;15288:7;15301:16;15321:18;15397:9;15440:30;;:::i;:::-;16869:23;15342:7;15321:28;;15409:1;15397:13;;15392:1852;15416:5;:12;15412:1;:16;15392:1852;;;15473:5;15479:1;15473:8;;;;;;;;;;;;;;;;;;15440:41;;15513:8;:31;;;15509:731;;;15720:6;;;;;:51;;-1:-1:-1;15730:12:3;;15766:4;;15730:5;;-1:-1:-1;;15736:5:3;;;15730:12;;;;;;;;;;;;;;:24;;;-1:-1:-1;;;;;15730:41:3;;15720:51;:89;;;;-1:-1:-1;15788:20:3;;;;;-1:-1:-1;;;;;15776:33:3;;;;;:11;:33;;;;;;15775:34;15720:89;15716:166;;;15816:66;15829:8;:20;;;15851:8;:18;;;15871:10;15816:12;:66::i;:::-;15509:731;;;16062:8;:15;;;-1:-1:-1;;;;;16026:52:3;:8;:20;;;-1:-1:-1;;;;;16026:52:3;;;16022:218;;;16165:69;16181:8;:20;;;16203:8;:18;;;16223:10;16165:15;:69::i;:::-;16274:8;:31;;;16273:32;16269:520;;;16339:18;;16366:20;;;;;16388;;;;16322:102;;;;;-1:-1:-1;;;;;16322:102:3;;;;;;;;;;;;;;;;;;;;16422:1;16322:102;;;;;;:43;;;;;:102;;;;;;;;;;;;;;;16339:18;16322:43;:102;;;5:2:-1;;;;30:1;27;20:12;5:2;16322:102:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16322:102:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;16322:102:3;;-1:-1:-1;16269:520:3;;;16450:20;;;;;-1:-1:-1;;;;;16438:33:3;;;;;:11;:33;;;;;;16434:355;;;16488:18;;16538:20;;;;;16565;;;;16626;;;;16488:164;;;;;-1:-1:-1;;;;;16488:164:3;;;;;;;;;;;;;;;;;;;;16609:10;16488:164;;;;;;;;;;;;:26;;;;;16521:9;;16488:164;;;;;;;;;;;;;;16521:9;16488:26;:164;;;5:2:-1;;;;30:1;27;20:12;5:2;16488:164:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16488:164:3;;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;16434:355:3;16673:18;;16700:20;;;;;16722;;;;16768;;;;16673:116;;;;;-1:-1:-1;;;;;16673:116:3;;;;;;;;;;;;;;;;;;;;16756:10;16673:116;;;;;;;;;;;;:26;;;;;:116;;;;;;;;;;;;;;;:18;:26;:116;;;5:2:-1;;;;30:1;27;20:12;5:2;16673:116:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16673:116:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;16673:116:3;;-1:-1:-1;16434:355:3;16833:8;:28;;;16829:269;;;16895:57;2170:7;16895:27;:8;16908:13;16895:27;:12;:27;:::i;:57::-;16869:83;;16966:8;:20;;;-1:-1:-1;;;;;16966:29:3;;16996:17;17015:15;16966:65;;;;;-1:-1:-1;;;16966:65:3;;;;;;;-1:-1:-1;;;;;16966:65:3;-1:-1:-1;;;;;16966:65:3;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16966:65:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16966:65:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;16966:65:3;16958:101;;;;;;;-1:-1:-1;;;;;16958:101:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;17077:15;17065:27;;;;16829:269;17158:8;:20;;;-1:-1:-1;;;;;17108:105:3;17136:8;:20;;;-1:-1:-1;;;;;17108:105:3;17119:8;:15;;;-1:-1:-1;;;;;17108:105:3;;17180:10;17192:8;17202:10;17108:105;;;;;;;;;;;;;;-1:-1:-1;;;;;17108:105:3;-1:-1:-1;;;;;17108:105:3;;;;;;;;;;;;;;;;;17231:8;;-1:-1:-1;15430:3:3;;;;;15392:1852;;;17313:22;;;;17305:53;;;;;-1:-1:-1;;;;;17305:53:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;17370:8:3;;15125:2257;-1:-1:-1;;;;;;;;;15125:2257:3:o;19359:737::-;19470:30;;:::i;:::-;19643:23;19503:5;19524:1;19509:5;:12;:16;19503:23;;;;;;;;;;;;;;;;;;;19593:20;;;;19503:23;;-1:-1:-1;;;;;;19593:37:3;19625:4;19593:37;19589:50;;19632:7;;19589:50;-1:-1:-1;19669:20:3;;;;-1:-1:-1;;;;;19720:24:3;;;;;;:11;:24;;;;;;;;19716:377;;;19825:31;;;;19824:32;19817:40;;;;19953:11;-1:-1:-1;;;;;19941:35:3;;19977:12;19991:7;19941:58;;;;;-1:-1:-1;;;19941:58:3;;;;;;;-1:-1:-1;;;;;19941:58:3;-1:-1:-1;;;;;19941:58:3;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;19716:377:3;20040:48;20053:11;20066:12;20080:7;20040:12;:48::i;24364:286::-;24484:32;;;;;;24501:4;24484:32;;;;-1:-1:-1;;;;;24484:32:3;;;;;;;;;24464:17;;24484:16;;;;;:32;;;;;;;;;;;;;;24464:17;24484:16;:32;;;5:2:-1;;;;30:1;27;20:12;5:2;24484:32:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;24484:32:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;24484:32:3;;-1:-1:-1;24524:18:3;;;24520:127;;;24565:1;24553:9;:13;24549:51;;;24568:32;24580:6;24588:8;24598:1;24568:11;:32::i;:::-;24605:37;24617:6;24625:8;24635:6;24605:11;:37::i;:::-;24364:286;;;;:::o;2255:557:70:-;2324:21;;:::i;:::-;:36;;;;;;;;;2357:1;2324:36;;;;;2687:2;2661:3;2580:5;2574:12;2495:2;2488:5;2484:14;2465:1;2430:6;2404:3;2394:317;2725:7;2718:15;2715:2;;;2750:1;2747;2740:12;2715:2;-1:-1:-1;2773:6:70;;:11;;2765:43;;;;;-1:-1:-1;;;;;2765:43:70;;;;;;;;;;;;;;;;;;;;;;;;;;;26704:625:3;26782:4;26792:12;26808:21;;:::i;:::-;26515:28;;;;;;;;;;;;;;;;22:32:-1;6:49;;26853:54:3;;;;;;49:4:-1;25:18;;;61:17;;-1:-1;;;;;182:15;-1:-1;;;;;;26853:54:3;;;179:29:-1;;;;160:49;;27152:11:3;;26515:28;;49:4:-1;;27238:3:3;;27024:10;26953:4;26937:351;26926:362;;27303:7;:22;;;;-1:-1:-1;27314:6:3;;:11;;27303:22;27296:29;;26704:625;;;;;;;:::o;24725:371::-;24809:7;24822:20;24886:9;24929:27;24845:10;-1:-1:-1;;;;;24845:30:3;;:32;;;;;-1:-1:-1;;;24845:32:3;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;24845:32:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;24845:32:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;24845:32:3;24822:55;;;-1:-1:-1;24898:1:3;;-1:-1:-1;24881:181:3;24905:12;24901:1;:16;24881:181;;;24959:10;-1:-1:-1;;;;;24959:26:3;;24986:1;24959:29;;;;;-1:-1:-1;;;24959:29:3;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;24959:29:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;24959:29:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;24959:29:3;-1:-1:-1;;;;;24997:32:3;;;;;;:11;24959:29;24997:32;;;;;24959:29;;-1:-1:-1;24997:32:3;;24993:64;;;25038:19;25031:26;;;;24993:64;24919:3;;;;;24881:181;;;-1:-1:-1;2227:42:3;;24725:371;-1:-1:-1;;;;24725:371:3:o;1740:206:70:-;351:50;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1870:71:70;;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;1870:71:70;;;;;;;25:18:-1;;61:17;;-1:-1;;;;;182:15;-1:-1;;;;;;1870:71:70;;;179:29:-1;;;;160:49;;;1854:88:70;;1862:6;;1854:7;:88::i;719:181::-;151:37;;;;;;;;;;;;;;;;-1:-1:-1;;;;;832:63:70;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;832:63:70;;;;;;;;25:18:-1;;61:17;;-1:-1;;;;;182:15;-1:-1;;;;;;832:63:70;;;179:29:-1;;;;160:49;;;816:80:70;;824:6;;816:7;:80::i;1919:28113:3:-;;;;;;;;;;;;;;;105:10:-1;1919:28113:3;88:34:-1;-1:-1;1919:28113:3;;;-1:-1:-1;;1919:28113:3:o;:::-;;;;;;;;;-1:-1:-1;1919:28113:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;-1:-1;1919:28113:3;;;-1:-1:-1;;1919:28113:3:o" + }, + "methodIdentifiers": { + "acceptOwnership()": "79ba5097", + "claimAndConvert(address[],uint256,uint256)": "c7ba24bc", + "claimAndConvert2(address[],uint256,uint256,address,uint256)": "e57738e5", + "claimAndConvertFor(address[],uint256,uint256,address)": "b1e9932b", + "claimAndConvertFor2(address[],uint256,uint256,address,address,uint256)": "2978c10e", + "completeXConversion(address[],address,uint256,uint256,address)": "89f9cc61", + "conversionPath(address,address)": "d734fa19", + "convert(address[],uint256,uint256)": "f3898a97", + "convert2(address[],uint256,uint256,address,uint256)": "569706eb", + "convertByPath(address[],uint256,uint256,address,address,uint256)": "b77d239b", + "convertFor(address[],uint256,uint256,address)": "c98fefed", + "convertFor2(address[],uint256,uint256,address,address,uint256)": "ab6214ce", + "etherTokens(address)": "8077ccf7", + "getReturnByPath(address[],uint256)": "0c8496cc", + "maxAffiliateFee()": "5d732ff2", + "newOwner()": "d4ee1d90", + "onlyOwnerCanUpdateRegistry()": "2fe8a6ad", + "owner()": "8da5cb5b", + "prevRegistry()": "61cd756e", + "rateByPath(address[],uint256)": "7f9c0ecd", + "registerEtherToken(address,bool)": "02ef521e", + "registry()": "7b103999", + "restoreRegistry()": "b4a176d3", + "restrictRegistryUpdate(bool)": "024c7ec7", + "setMaxAffiliateFee(uint256)": "f3bc7d2a", + "transferOwnership(address)": "f2fde38b", + "updateRegistry()": "49d10b64", + "withdrawTokens(address,address,uint256)": "5e35359e", + "xConvert(address[],uint256,uint256,bytes32,bytes32,uint256)": "c52173de", + "xConvert2(address[],uint256,uint256,bytes32,bytes32,uint256,address,uint256)": "cb32564e" + } + }, + "userdoc": { + "methods": {} + } + } + }, + "solidity/contracts/converter/ConverterBase.sol": { + "ConverterBase": { + "abi": [ + { + "constant": false, + "inputs": [ + { + "name": "_onlyOwnerCanUpdateRegistry", + "type": "bool" + } + ], + "name": "restrictRegistryUpdate", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "reserveRatio", + "outputs": [ + { + "name": "", + "type": "uint32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_address", + "type": "address" + } + ], + "name": "connectors", + "outputs": [ + { + "name": "", + "type": "uint256" + }, + { + "name": "", + "type": "uint32" + }, + { + "name": "", + "type": "bool" + }, + { + "name": "", + "type": "bool" + }, + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "hasETHReserve", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_index", + "type": "uint256" + } + ], + "name": "connectorTokens", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_reserveToken", + "type": "address" + } + ], + "name": "reserveWeight", + "outputs": [ + { + "name": "", + "type": "uint32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_sourceToken", + "type": "address" + }, + { + "name": "_targetToken", + "type": "address" + }, + { + "name": "_amount", + "type": "uint256" + } + ], + "name": "getReturn", + "outputs": [ + { + "name": "", + "type": "uint256" + }, + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_newOwner", + "type": "address" + } + ], + "name": "transferTokenOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "isActive", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "onlyOwnerCanUpdateRegistry", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "acceptTokenOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_token", + "type": "address" + }, + { + "name": "_to", + "type": "address" + }, + { + "name": "_amount", + "type": "uint256" + } + ], + "name": "withdrawFromAnchor", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "converterType", + "outputs": [ + { + "name": "", + "type": "uint16" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "updateRegistry", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_whitelist", + "type": "address" + } + ], + "name": "setConversionWhitelist", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "version", + "outputs": [ + { + "name": "", + "type": "uint16" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "conversionFee", + "outputs": [ + { + "name": "", + "type": "uint32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_token", + "type": "address" + }, + { + "name": "_to", + "type": "address" + }, + { + "name": "_amount", + "type": "uint256" + } + ], + "name": "withdrawTokens", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "prevRegistry", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_newOwner", + "type": "address" + } + ], + "name": "transferAnchorOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_to", + "type": "address" + } + ], + "name": "withdrawETH", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_token", + "type": "address" + }, + { + "name": "_weight", + "type": "uint32" + } + ], + "name": "addReserve", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "connectorTokenCount", + "outputs": [ + { + "name": "", + "type": "uint16" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "acceptOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "registry", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "owner", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "maxConversionFee", + "outputs": [ + { + "name": "", + "type": "uint32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "reserveTokenCount", + "outputs": [ + { + "name": "", + "type": "uint16" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_sourceToken", + "type": "address" + }, + { + "name": "_targetToken", + "type": "address" + }, + { + "name": "_amount", + "type": "uint256" + } + ], + "name": "targetAmountAndFee", + "outputs": [ + { + "name": "", + "type": "uint256" + }, + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "restoreRegistry", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "conversionsEnabled", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "conversionWhitelist", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "acceptAnchorOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "", + "type": "uint256" + } + ], + "name": "reserveTokens", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "isV28OrHigher", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "anchor", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "newOwner", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "upgrade", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "", + "type": "address" + } + ], + "name": "reserves", + "outputs": [ + { + "name": "balance", + "type": "uint256" + }, + { + "name": "weight", + "type": "uint32" + }, + { + "name": "deprecated1", + "type": "bool" + }, + { + "name": "deprecated2", + "type": "bool" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_connectorToken", + "type": "address" + } + ], + "name": "getConnectorBalance", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_reserveToken", + "type": "address" + } + ], + "name": "reserveBalance", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_sourceToken", + "type": "address" + }, + { + "name": "_targetToken", + "type": "address" + }, + { + "name": "_amount", + "type": "uint256" + }, + { + "name": "_trader", + "type": "address" + }, + { + "name": "_beneficiary", + "type": "address" + } + ], + "name": "convert", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": true, + "stateMutability": "payable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_conversionFee", + "type": "uint32" + } + ], + "name": "setConversionFee", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "token", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "name": "_anchor", + "type": "address" + }, + { + "name": "_registry", + "type": "address" + }, + { + "name": "_maxConversionFee", + "type": "uint32" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "payable": true, + "stateMutability": "payable", + "type": "fallback" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "_type", + "type": "uint16" + }, + { + "indexed": true, + "name": "_anchor", + "type": "address" + }, + { + "indexed": true, + "name": "_activated", + "type": "bool" + } + ], + "name": "Activation", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "_fromToken", + "type": "address" + }, + { + "indexed": true, + "name": "_toToken", + "type": "address" + }, + { + "indexed": true, + "name": "_trader", + "type": "address" + }, + { + "indexed": false, + "name": "_amount", + "type": "uint256" + }, + { + "indexed": false, + "name": "_return", + "type": "uint256" + }, + { + "indexed": false, + "name": "_conversionFee", + "type": "int256" + } + ], + "name": "Conversion", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "_token1", + "type": "address" + }, + { + "indexed": true, + "name": "_token2", + "type": "address" + }, + { + "indexed": false, + "name": "_rateN", + "type": "uint256" + }, + { + "indexed": false, + "name": "_rateD", + "type": "uint256" + } + ], + "name": "TokenRateUpdate", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "_prevFee", + "type": "uint32" + }, + { + "indexed": false, + "name": "_newFee", + "type": "uint32" + } + ], + "name": "ConversionFeeUpdate", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "_prevOwner", + "type": "address" + }, + { + "indexed": true, + "name": "_newOwner", + "type": "address" + } + ], + "name": "OwnerUpdate", + "type": "event" + } + ], + "devdoc": { + "methods": { + "acceptAnchorOwnership()": { + "details": "accepts ownership of the anchor after an ownership transfer most converters are also activated as soon as they accept the anchor ownership can only be called by the contract owner note that prior to version 28, you should use 'acceptTokenOwnership' instead" + }, + "acceptOwnership()": { + "details": "used by a new owner to accept an ownership transfer" + }, + "acceptTokenOwnership()": { + "details": "deprecated, backward compatibility" + }, + "addReserve(address,uint32)": { + "details": "defines a new reserve token for the converter can only be called by the owner while the converter is inactive", + "params": { + "_token": "address of the reserve token", + "_weight": "reserve weight, represented in ppm, 1-1000000" + } + }, + "connectorTokenCount()": { + "details": "deprecated, backward compatibility" + }, + "connectorTokens(uint256)": { + "details": "deprecated, backward compatibility" + }, + "connectors(address)": { + "details": "deprecated, backward compatibility" + }, + "convert(address,address,uint256,address,address)": { + "details": "converts a specific amount of source tokens to target tokens can only be called by the SovrynSwap network contract", + "params": { + "_amount": "amount of tokens to convert (in units of the source token)", + "_beneficiary": "wallet to receive the conversion result", + "_sourceToken": "source ERC20 token", + "_targetToken": "target ERC20 token", + "_trader": "address of the caller who executed the conversion" + }, + "return": "amount of tokens received (in units of the target token)" + }, + "getConnectorBalance(address)": { + "details": "deprecated, backward compatibility" + }, + "getReturn(address,address,uint256)": { + "details": "deprecated, backward compatibility" + }, + "hasETHReserve()": { + "details": "checks whether or not the converter has an ETH reserve", + "return": "true if the converter has an ETH reserve, false otherwise" + }, + "isActive()": { + "details": "returns true if the converter is active, false otherwise", + "return": "true if the converter is active, false otherwise" + }, + "isV28OrHigher()": { + "details": "checks whether or not the converter version is 28 or higher", + "return": "true, since the converter version is 28 or higher" + }, + "reserveBalance(address)": { + "details": "returns the reserve's balance note that prior to version 17, you should use 'getConnectorBalance' instead", + "params": { + "_reserveToken": "reserve token contract address" + }, + "return": "reserve balance" + }, + "reserveTokenCount()": { + "details": "returns the number of reserve tokens defined note that prior to version 17, you should use 'connectorTokenCount' instead", + "return": "number of reserve tokens" + }, + "reserveWeight(address)": { + "details": "returns the reserve's weight added in version 28", + "params": { + "_reserveToken": "reserve token contract address" + }, + "return": "reserve weight" + }, + "restoreRegistry()": { + "details": "restores the previous contract-registry" + }, + "restrictRegistryUpdate(bool)": { + "details": "restricts the permission to update the contract-registry", + "params": { + "_onlyOwnerCanUpdateRegistry": "indicates whether or not permission is restricted to owner only" + } + }, + "setConversionFee(uint32)": { + "details": "updates the current conversion fee can only be called by the contract owner", + "params": { + "_conversionFee": "new conversion fee, represented in ppm" + } + }, + "setConversionWhitelist(address)": { + "details": "allows the owner to update & enable the conversion whitelist contract address when set, only addresses that are whitelisted are actually allowed to use the converter note that the whitelist check is actually done by the SovrynSwapNetwork contract", + "params": { + "_whitelist": "address of a whitelist contract" + } + }, + "token()": { + "details": "deprecated since version 28, backward compatibility - use only for earlier versions" + }, + "transferAnchorOwnership(address)": { + "details": "transfers the anchor ownership the new owner needs to accept the transfer can only be called by the converter upgrder while the upgrader is the owner note that prior to version 28, you should use 'transferAnchorOwnership' instead", + "params": { + "_newOwner": "new token owner" + } + }, + "transferOwnership(address)": { + "details": "allows transferring the contract ownership the new owner still needs to accept the transfer can only be called by the contract owner", + "params": { + "_newOwner": "new contract owner" + } + }, + "transferTokenOwnership(address)": { + "details": "deprecated, backward compatibility" + }, + "updateRegistry()": { + "details": "updates to the new contract-registry" + }, + "upgrade()": { + "details": "upgrades the converter to the latest version can only be called by the owner note that the owner needs to call acceptOwnership on the new converter after the upgrade" + }, + "withdrawETH(address)": { + "details": "withdraws ether can only be called by the owner if the converter is inactive or by upgrader contract can only be called after the upgrader contract has accepted the ownership of this contract can only be called if the converter has an ETH reserve", + "params": { + "_to": "address to send the ETH to" + } + }, + "withdrawFromAnchor(address,address,uint256)": { + "details": "withdraws tokens held by the anchor and sends them to an account can only be called by the owner", + "params": { + "_amount": "amount to withdraw", + "_to": "account to receive the new amount", + "_token": "ERC20 token contract address" + } + }, + "withdrawTokens(address,address,uint256)": { + "details": "withdraws tokens held by the converter and sends them to an account can only be called by the owner note that reserve tokens can only be withdrawn by the owner while the converter is inactive unless the owner is the converter upgrader contract", + "params": { + "_amount": "amount to withdraw", + "_to": "account to receive the new amount", + "_token": "ERC20 token contract address" + } + } + } + }, + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "acceptAnchorOwnership()": "cdc91c69", + "acceptOwnership()": "79ba5097", + "acceptTokenOwnership()": "38a5e016", + "addReserve(address,uint32)": "6a49d2c4", + "anchor()": "d3fb73b4", + "connectorTokenCount()": "71f52bf3", + "connectorTokens(uint256)": "19b64015", + "connectors(address)": "0e53aae9", + "conversionFee()": "579cd3ca", + "conversionWhitelist()": "c45d3d92", + "conversionsEnabled()": "bf754558", + "convert(address,address,uint256,address,address)": "e8dc12ff", + "converterType()": "3e8ff43f", + "getConnectorBalance(address)": "d8959512", + "getReturn(address,address,uint256)": "1e1401f8", + "hasETHReserve()": "12c2aca4", + "isActive()": "22f3e2d4", + "isV28OrHigher()": "d260529c", + "maxConversionFee()": "94c275ad", + "newOwner()": "d4ee1d90", + "onlyOwnerCanUpdateRegistry()": "2fe8a6ad", + "owner()": "8da5cb5b", + "prevRegistry()": "61cd756e", + "registry()": "7b103999", + "reserveBalance(address)": "dc8de379", + "reserveRatio()": "0c7d5cd8", + "reserveTokenCount()": "9b99a8e2", + "reserveTokens(uint256)": "d031370b", + "reserveWeight(address)": "1cfab290", + "reserves(address)": "d66bd524", + "restoreRegistry()": "b4a176d3", + "restrictRegistryUpdate(bool)": "024c7ec7", + "setConversionFee(uint32)": "ecbca55d", + "setConversionWhitelist(address)": "4af80f0e", + "targetAmountAndFee(address,address,uint256)": "af94b8d8", + "token()": "fc0c546a", + "transferAnchorOwnership(address)": "67b6d57c", + "transferOwnership(address)": "f2fde38b", + "transferTokenOwnership(address)": "21e6b53d", + "updateRegistry()": "49d10b64", + "upgrade()": "d55ec697", + "version()": "54fd4d50", + "withdrawETH(address)": "690d8320", + "withdrawFromAnchor(address,address,uint256)": "395900d4", + "withdrawTokens(address,address,uint256)": "5e35359e" + } + }, + "userdoc": { + "methods": {} + } + } + }, + "solidity/contracts/converter/ConverterFactory.sol": { + "ConverterFactory": { + "abi": [ + { + "constant": false, + "inputs": [ + { + "name": "_factory", + "type": "address" + } + ], + "name": "registerTypedConverterFactory", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_type", + "type": "uint16" + }, + { + "name": "_anchor", + "type": "address" + }, + { + "name": "_registry", + "type": "address" + }, + { + "name": "_maxConversionFee", + "type": "uint32" + } + ], + "name": "createConverter", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_converterType", + "type": "uint16" + }, + { + "name": "_name", + "type": "string" + }, + { + "name": "_symbol", + "type": "string" + }, + { + "name": "_decimals", + "type": "uint8" + } + ], + "name": "createAnchor", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "", + "type": "uint16" + } + ], + "name": "converterFactories", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "", + "type": "uint16" + } + ], + "name": "anchorFactories", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "acceptOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_factory", + "type": "address" + } + ], + "name": "registerTypedConverterCustomFactory", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "owner", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "", + "type": "uint16" + } + ], + "name": "customFactories", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "newOwner", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_factory", + "type": "address" + } + ], + "name": "registerTypedConverterAnchorFactory", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "_type", + "type": "uint16" + }, + { + "indexed": true, + "name": "_converter", + "type": "address" + }, + { + "indexed": true, + "name": "_owner", + "type": "address" + } + ], + "name": "NewConverter", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "_prevOwner", + "type": "address" + }, + { + "indexed": true, + "name": "_newOwner", + "type": "address" + } + ], + "name": "OwnerUpdate", + "type": "event" + } + ], + "devdoc": { + "methods": { + "acceptOwnership()": { + "details": "used by a new owner to accept an ownership transfer" + }, + "createAnchor(uint16,string,string,uint8)": { + "details": "creates a new converter anchor with the given arguments and transfers the ownership to the caller", + "params": { + "_converterType": "converter type, see ConverterBase contract main doc", + "_decimals": "decimals", + "_name": "name", + "_symbol": "symbol" + }, + "return": "new converter anchor" + }, + "createConverter(uint16,address,address,uint32)": { + "details": "creates a new converter with the given arguments and transfers the ownership to the caller", + "params": { + "_anchor": "anchor governed by the converter", + "_maxConversionFee": "maximum conversion fee, represented in ppm", + "_registry": "address of a contract registry contract", + "_type": "converter type, see ConverterBase contract main doc" + }, + "return": "new converter" + }, + "registerTypedConverterAnchorFactory(address)": { + "details": "initializes the factory with a specific typed converter anchor factory can only be called by the owner", + "params": { + "_factory": "typed converter anchor factory" + } + }, + "registerTypedConverterCustomFactory(address)": { + "details": "initializes the factory with a specific typed converter custom factory can only be called by the owner", + "params": { + "_factory": "typed converter custom factory" + } + }, + "registerTypedConverterFactory(address)": { + "details": "initializes the factory with a specific typed converter factory can only be called by the owner", + "params": { + "_factory": "typed converter factory" + } + }, + "transferOwnership(address)": { + "details": "allows transferring the contract ownership the new owner still needs to accept the transfer can only be called by the contract owner", + "params": { + "_newOwner": "new contract owner" + } + } + } + }, + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "608060405260008054600160a060020a03191633179055611e4e806100256000396000f3006080604052600436106100a05763ffffffff60e060020a60003504166312b4c6c181146100a557806315f64b6a146100c85780632e9ab7b31461011b578063327779a7146101c05780633a8fc520146101dc57806379ba5097146101f85780638cac5e291461020d5780638da5cb5b1461022e578063c977aed214610243578063d4ee1d901461025f578063e54b93ef14610274578063f2fde38b14610295575b600080fd5b3480156100b157600080fd5b506100c6600160a060020a03600435166102b6565b005b3480156100d457600080fd5b506100ff61ffff60043516600160a060020a036024358116906044351663ffffffff6064351661036f565b60408051600160a060020a039092168252519081900360200190f35b34801561012757600080fd5b5060408051602060046024803582810135601f81018590048502860185019096528585526100ff95833561ffff1695369560449491939091019190819084018382808284375050604080516020601f89358b018035918201839004830284018301909452808352979a9998810197919650918201945092508291508401838280828437509497505050923560ff16935061055892505050565b3480156101cc57600080fd5b506100ff61ffff600435166108cc565b3480156101e857600080fd5b506100ff61ffff600435166108e7565b34801561020457600080fd5b506100c6610902565b34801561021957600080fd5b506100c6600160a060020a03600435166109ec565b34801561023a57600080fd5b506100ff610a37565b34801561024f57600080fd5b506100ff61ffff60043516610a46565b34801561026b57600080fd5b506100ff610a61565b34801561028057600080fd5b506100c6600160a060020a0360043516610a70565b3480156102a157600080fd5b506100c6600160a060020a0360043516610abb565b6102be610b6f565b806002600083600160a060020a0316633e8ff43f6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561030157600080fd5b505af1158015610315573d6000803e3d6000fd5b505050506040513d602081101561032b57600080fd5b505161ffff1681526020810191909152604001600020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905550565b61ffff841660009081526002602090815260408083205481517f11413958000000000000000000000000000000000000000000000000000000008152600160a060020a038881166004830152878116602483015263ffffffff8716604483015292518594939092169263114139589260648084019382900301818787803b1580156103f957600080fd5b505af115801561040d573d6000803e3d6000fd5b505050506040513d602081101561042357600080fd5b5051604080517f79ba50970000000000000000000000000000000000000000000000000000000081529051919250600160a060020a038316916379ba50979160048082019260009290919082900301818387803b15801561048357600080fd5b505af1158015610497573d6000803e3d6000fd5b5050604080517ff2fde38b0000000000000000000000000000000000000000000000000000000081523360048201529051600160a060020a038516935063f2fde38b9250602480830192600092919082900301818387803b1580156104fb57600080fd5b505af115801561050f573d6000803e3d6000fd5b5050604051339250600160a060020a038416915061ffff8916907fbb340bcea68d239ac719bc5cf8c9a1716df04ad3babb8d1e562aa44d19fea3a390600090a495945050505050565b61ffff84166000908152600360205260408120548190600160a060020a031680151561068657858585610589610bea565b60ff82166040820152606080825284519082015283518190602080830191608084019188019080838360005b838110156105cd5781810151838201526020016105b5565b50505050905090810190601f1680156105fa5780820380516001836020036101000a031916815260200191505b50838103825285518152855160209182019187019080838360005b8381101561062d578181015183820152602001610615565b50505050905090810190601f16801561065a5780820380516001836020036101000a031916815260200191505b5095505050505050604051809103906000f08015801561067e573d6000803e3d6000fd5b509150610849565b80600160a060020a031663a9fd4a2a8787876040518463ffffffff1660e060020a0281526004018080602001806020018460ff1660ff168152602001838103835286818151815260200191508051906020019080838360005b838110156106f75781810151838201526020016106df565b50505050905090810190601f1680156107245780820380516001836020036101000a031916815260200191505b50838103825285518152855160209182019187019080838360005b8381101561075757818101518382015260200161073f565b50505050905090810190601f1680156107845780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1580156107a657600080fd5b505af11580156107ba573d6000803e3d6000fd5b505050506040513d60208110156107d057600080fd5b5051604080517f79ba50970000000000000000000000000000000000000000000000000000000081529051919350600160a060020a038416916379ba50979160048082019260009290919082900301818387803b15801561083057600080fd5b505af1158015610844573d6000803e3d6000fd5b505050505b604080517ff2fde38b0000000000000000000000000000000000000000000000000000000081523360048201529051600160a060020a0384169163f2fde38b91602480830192600092919082900301818387803b1580156108a957600080fd5b505af11580156108bd573d6000803e3d6000fd5b50939998505050505050505050565b600260205260009081526040902054600160a060020a031681565b600360205260009081526040902054600160a060020a031681565b600154600160a060020a0316331461097b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b60015460008054604051600160a060020a0393841693909116917f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91a3600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b6109f4610b6f565b806004600083600160a060020a0316633e8ff43f6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561030157600080fd5b600054600160a060020a031681565b600460205260009081526040902054600160a060020a031681565b600154600160a060020a031681565b610a78610b6f565b806003600083600160a060020a0316633e8ff43f6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561030157600080fd5b610ac3610b6f565b600054600160a060020a0382811691161415610b4057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f4552525f53414d455f4f574e4552000000000000000000000000000000000000604482015290519081900360640190fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600054600160a060020a03163314610be857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b565b60405161122880610bfb83390190560060806040526008805460ff191660011790553480156200001e57600080fd5b506040516200122838038062001228833981016040908152815160208301519183015160008054600160a060020a0319163317815591840180519094939093019290918491849184918110620000d557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f4552525f494e56414c49445f4e414d4500000000000000000000000000000000604482015290519081900360640190fd5b82516000106200014657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f4552525f494e56414c49445f53594d424f4c0000000000000000000000000000604482015290519081900360640190fd5b83516200015b906002906020870190620001a8565b50825162000171906003906020860190620001a8565b506004805460ff191660ff9390931692909217909155600581905533600090815260066020526040902055506200024d9350505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620001eb57805160ff19168380011785556200021b565b828001600101855582156200021b579182015b828111156200021b578251825591602001919060010190620001fe565b50620002299291506200022d565b5090565b6200024a91905b8082111562000229576000815560010162000234565b90565b610fcb806200025d6000396000f3006080604052600436106101065763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde03811461010b578063095ea7b3146101955780631608f18f146101cd57806318160ddd146101e957806323b872dd14610210578063313ce5671461023a57806354fd4d50146102655780635e35359e1461029157806370a08231146102bb57806379ba5097146102dc578063867904b4146102f15780638da5cb5b1461031557806395d89b4114610346578063a24835d11461035b578063a9059cbb1461037f578063bef97c87146103a3578063d4ee1d90146103b8578063dd62ed3e146103cd578063f2fde38b146103f4575b600080fd5b34801561011757600080fd5b50610120610415565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561015a578181015183820152602001610142565b50505050905090810190601f1680156101875780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101a157600080fd5b506101b9600160a060020a03600435166024356104a0565b604080519115158252519081900360200190f35b3480156101d957600080fd5b506101e76004351515610598565b005b3480156101f557600080fd5b506101fe6105b2565b60408051918252519081900360200190f35b34801561021c57600080fd5b506101b9600160a060020a03600435811690602435166044356105b8565b34801561024657600080fd5b5061024f6105df565b6040805160ff9092168252519081900360200190f35b34801561027157600080fd5b5061027a6105e8565b6040805161ffff9092168252519081900360200190f35b34801561029d57600080fd5b506101e7600160a060020a03600435811690602435166044356105ed565b3480156102c757600080fd5b506101fe600160a060020a0360043516610626565b3480156102e857600080fd5b506101e7610638565b3480156102fd57600080fd5b506101e7600160a060020a036004351660243561070b565b34801561032157600080fd5b5061032a6107ed565b60408051600160a060020a039092168252519081900360200190f35b34801561035257600080fd5b506101206107fc565b34801561036757600080fd5b506101e7600160a060020a0360043516602435610857565b34801561038b57600080fd5b506101b9600160a060020a036004351660243561091d565b3480156103af57600080fd5b506101b9610942565b3480156103c457600080fd5b5061032a61094b565b3480156103d957600080fd5b506101fe600160a060020a036004358116906024351661095a565b34801561040057600080fd5b506101e7600160a060020a0360043516610977565b6002805460408051602060018416156101000260001901909316849004601f810184900484028201840190925281815292918301828280156104985780601f1061046d57610100808354040283529160200191610498565b820191906000526020600020905b81548152906001019060200180831161047b57829003601f168201915b505050505081565b6000826104ac81610a14565b8215806104da5750336000908152600760209081526040808320600160a060020a0388168452909152902054155b1515610530576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f494e56414c49445f414d4f554e540000000000000000000000000000604482015290519081900360640190fd5b336000818152600760209081526040808320600160a060020a03891680855290835292819020879055805187815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060019392505050565b6105a0610a77565b6008805460ff19169115919091179055565b60055481565b60006105c2610adb565b6105cd848484610b37565b15156105d557fe5b5060019392505050565b60045460ff1681565b600481565b6105f5610a77565b826105ff81610a14565b8261060981610a14565b8361061381610c48565b61061e868686610ca9565b505050505050565b60066020526000908152604090205481565b600154600160a060020a0316331461069a576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b60015460008054604051600160a060020a0393841693909116917f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91a3600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b610713610a77565b8161071d81610a14565b8261072781610c48565b60055461073a908463ffffffff610d6316565b600555600160a060020a038416600090815260066020526040902054610766908463ffffffff610d6316565b600160a060020a03851660009081526006602090815260409182902092909255805185815290517f9386c90217c323f58030f9dadcbc938f807a940f4ff41cd4cead9562f5da7dc3929181900390910190a1604080518481529051600160a060020a03861691600091600080516020610f808339815191529181900360200190a350505050565b600054600160a060020a031681565b6003805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156104985780601f1061046d57610100808354040283529160200191610498565b61085f610a77565b600160a060020a038216600090815260066020526040902054610888908263ffffffff610dc716565b600160a060020a0383166000908152600660205260409020556005546108b4908263ffffffff610dc716565b600555604080518281529051600091600160a060020a03851691600080516020610f808339815191529181900360200190a36040805182815290517f9a1b418bc061a5d80270261562e6986a35d995f8051145f277be16103abd34539181900360200190a15050565b6000610927610adb565b6109318383610e27565b151561093957fe5b50600192915050565b60085460ff1681565b600154600160a060020a031681565b600760209081526000928352604080842090915290825290205481565b61097f610a77565b600054600160a060020a03828116911614156109e5576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f53414d455f4f574e4552000000000000000000000000000000000000604482015290519081900360640190fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600160a060020a0381161515610a74576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b50565b600054600160a060020a03163314610ad9576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b565b60085460ff161515610ad9576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f5452414e53464552535f44495341424c454400000000000000000000604482015290519081900360640190fd5b600083610b4381610a14565b83610b4d81610a14565b600160a060020a0386166000908152600760209081526040808320338452909152902054610b81908563ffffffff610dc716565b600160a060020a038716600081815260076020908152604080832033845282528083209490945591815260069091522054610bc2908563ffffffff610dc716565b600160a060020a038088166000908152600660205260408082209390935590871681522054610bf7908563ffffffff610d6316565b600160a060020a0380871660008181526006602090815260409182902094909455805188815290519193928a1692600080516020610f8083398151915292918290030190a350600195945050505050565b600160a060020a038116301415610a74576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f414444524553535f49535f53454c4600000000000000000000000000604482015290519081900360640190fd5b604080517f7472616e7366657228616464726573732c75696e74323536290000000000000081528151908190036019018120600160a060020a038516602483015260448083018590528351808403909101815260649092019092526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152610d5e908490610ed2565b505050565b600082820183811015610dc0576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b9392505050565b600081831015610e21576040805160e560020a62461bcd02815260206004820152600d60248201527f4552525f554e444552464c4f5700000000000000000000000000000000000000604482015290519081900360640190fd5b50900390565b600082610e3381610a14565b33600090815260066020526040902054610e53908463ffffffff610dc716565b3360009081526006602052604080822092909255600160a060020a03861681522054610e85908463ffffffff610d6316565b600160a060020a038516600081815260066020908152604091829020939093558051868152905191923392600080516020610f808339815191529281900390910190a35060019392505050565b610eda610f60565b602060405190810160405280600181525090506020818351602085016000875af1801515610f0757600080fd5b5080511515610d5e576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f5452414e534645525f4641494c454400000000000000000000000000604482015290519081900360640190fd5b60206040519081016040528060019060208202803883395091929150505600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a7230582031b56aebc8336b547b3e1346f50c2f44f70def554ed4cba4c81bcf2e092d047f0029a165627a7a723058203710122813a32201062c951a034f0a6bfe956eb08161537652742c2c17086a9a0029", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND CALLER OR SWAP1 SSTORE PUSH2 0x1E4E DUP1 PUSH2 0x25 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0xA0 JUMPI PUSH4 0xFFFFFFFF PUSH1 0xE0 PUSH1 0x2 EXP PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x12B4C6C1 DUP2 EQ PUSH2 0xA5 JUMPI DUP1 PUSH4 0x15F64B6A EQ PUSH2 0xC8 JUMPI DUP1 PUSH4 0x2E9AB7B3 EQ PUSH2 0x11B JUMPI DUP1 PUSH4 0x327779A7 EQ PUSH2 0x1C0 JUMPI DUP1 PUSH4 0x3A8FC520 EQ PUSH2 0x1DC JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x1F8 JUMPI DUP1 PUSH4 0x8CAC5E29 EQ PUSH2 0x20D JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x22E JUMPI DUP1 PUSH4 0xC977AED2 EQ PUSH2 0x243 JUMPI DUP1 PUSH4 0xD4EE1D90 EQ PUSH2 0x25F JUMPI DUP1 PUSH4 0xE54B93EF EQ PUSH2 0x274 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x295 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xB1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xC6 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x2B6 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xD4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xFF PUSH2 0xFFFF PUSH1 0x4 CALLDATALOAD AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x24 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x44 CALLDATALOAD AND PUSH4 0xFFFFFFFF PUSH1 0x64 CALLDATALOAD AND PUSH2 0x36F JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x127 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 PUSH1 0x24 DUP1 CALLDATALOAD DUP3 DUP2 ADD CALLDATALOAD PUSH1 0x1F DUP2 ADD DUP6 SWAP1 DIV DUP6 MUL DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP6 DUP6 MSTORE PUSH2 0xFF SWAP6 DUP4 CALLDATALOAD PUSH2 0xFFFF AND SWAP6 CALLDATASIZE SWAP6 PUSH1 0x44 SWAP5 SWAP2 SWAP4 SWAP1 SWAP2 ADD SWAP2 SWAP1 DUP2 SWAP1 DUP5 ADD DUP4 DUP3 DUP1 DUP3 DUP5 CALLDATACOPY POP POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x1F DUP10 CALLDATALOAD DUP12 ADD DUP1 CALLDATALOAD SWAP2 DUP3 ADD DUP4 SWAP1 DIV DUP4 MUL DUP5 ADD DUP4 ADD SWAP1 SWAP5 MSTORE DUP1 DUP4 MSTORE SWAP8 SWAP11 SWAP10 SWAP9 DUP2 ADD SWAP8 SWAP2 SWAP7 POP SWAP2 DUP3 ADD SWAP5 POP SWAP3 POP DUP3 SWAP2 POP DUP5 ADD DUP4 DUP3 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP POP POP SWAP3 CALLDATALOAD PUSH1 0xFF AND SWAP4 POP PUSH2 0x558 SWAP3 POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1CC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xFF PUSH2 0xFFFF PUSH1 0x4 CALLDATALOAD AND PUSH2 0x8CC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1E8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xFF PUSH2 0xFFFF PUSH1 0x4 CALLDATALOAD AND PUSH2 0x8E7 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x204 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xC6 PUSH2 0x902 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x219 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xC6 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x9EC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x23A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xFF PUSH2 0xA37 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x24F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xFF PUSH2 0xFFFF PUSH1 0x4 CALLDATALOAD AND PUSH2 0xA46 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x26B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xFF PUSH2 0xA61 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x280 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xC6 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0xA70 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2A1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xC6 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0xABB JUMP JUMPDEST PUSH2 0x2BE PUSH2 0xB6F JUMP JUMPDEST DUP1 PUSH1 0x2 PUSH1 0x0 DUP4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x3E8FF43F PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x301 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x315 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x32B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE POP JUMP JUMPDEST PUSH2 0xFFFF DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD DUP2 MLOAD PUSH32 0x1141395800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP8 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH4 0xFFFFFFFF DUP8 AND PUSH1 0x44 DUP4 ADD MSTORE SWAP3 MLOAD DUP6 SWAP5 SWAP4 SWAP1 SWAP3 AND SWAP3 PUSH4 0x11413958 SWAP3 PUSH1 0x64 DUP1 DUP5 ADD SWAP4 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3F9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x40D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x423 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x79BA509700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 AND SWAP2 PUSH4 0x79BA5097 SWAP2 PUSH1 0x4 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x483 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x497 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 DUP1 MLOAD PUSH32 0xF2FDE38B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND SWAP4 POP PUSH4 0xF2FDE38B SWAP3 POP PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x4FB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x50F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD CALLER SWAP3 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP2 POP PUSH2 0xFFFF DUP10 AND SWAP1 PUSH32 0xBB340BCEA68D239AC719BC5CF8C9A1716DF04AD3BABB8D1E562AA44D19FEA3A3 SWAP1 PUSH1 0x0 SWAP1 LOG4 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP2 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP1 ISZERO ISZERO PUSH2 0x686 JUMPI DUP6 DUP6 DUP6 PUSH2 0x589 PUSH2 0xBEA JUMP JUMPDEST PUSH1 0xFF DUP3 AND PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP1 DUP3 MSTORE DUP5 MLOAD SWAP1 DUP3 ADD MSTORE DUP4 MLOAD DUP2 SWAP1 PUSH1 0x20 DUP1 DUP4 ADD SWAP2 PUSH1 0x80 DUP5 ADD SWAP2 DUP9 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x5CD JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x5B5 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x5FA JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP DUP4 DUP2 SUB DUP3 MSTORE DUP6 MLOAD DUP2 MSTORE DUP6 MLOAD PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 DUP8 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x62D JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x615 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x65A JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP6 POP POP POP POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 PUSH1 0x0 CREATE DUP1 ISZERO DUP1 ISZERO PUSH2 0x67E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP SWAP2 POP PUSH2 0x849 JUMP JUMPDEST DUP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xA9FD4A2A DUP8 DUP8 DUP8 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP5 PUSH1 0xFF AND PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 SUB DUP4 MSTORE DUP7 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x6F7 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x6DF JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x724 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP DUP4 DUP2 SUB DUP3 MSTORE DUP6 MLOAD DUP2 MSTORE DUP6 MLOAD PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 DUP8 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x757 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x73F JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x784 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP6 POP POP POP POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x7A6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x7BA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x7D0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x79BA509700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP4 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP2 PUSH4 0x79BA5097 SWAP2 PUSH1 0x4 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x830 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x844 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0xF2FDE38B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP2 PUSH4 0xF2FDE38B SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x8A9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x8BD JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP SWAP4 SWAP10 SWAP9 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x97B JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND SWAP4 SWAP1 SWAP2 AND SWAP2 PUSH32 0x343765429AEA5A34B3FF6A3785A98A5ABB2597ACA87BFBB58632C173D585373A SWAP2 LOG3 PUSH1 0x1 DUP1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND OR SWAP1 SWAP2 SSTORE AND SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x9F4 PUSH2 0xB6F JUMP JUMPDEST DUP1 PUSH1 0x4 PUSH1 0x0 DUP4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x3E8FF43F PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x301 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH2 0xA78 PUSH2 0xB6F JUMP JUMPDEST DUP1 PUSH1 0x3 PUSH1 0x0 DUP4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x3E8FF43F PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x301 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xAC3 PUSH2 0xB6F JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0xB40 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F4F574E4552000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0xBE8 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1228 DUP1 PUSH2 0xBFB DUP4 CODECOPY ADD SWAP1 JUMP STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x8 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE CALLVALUE DUP1 ISZERO PUSH3 0x1E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x1228 CODESIZE SUB DUP1 PUSH3 0x1228 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 SWAP1 DUP2 MSTORE DUP2 MLOAD PUSH1 0x20 DUP4 ADD MLOAD SWAP2 DUP4 ADD MLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND CALLER OR DUP2 SSTORE SWAP2 DUP5 ADD DUP1 MLOAD SWAP1 SWAP5 SWAP4 SWAP1 SWAP4 ADD SWAP3 SWAP1 SWAP2 DUP5 SWAP2 DUP5 SWAP2 DUP5 SWAP2 DUP2 LT PUSH3 0xD5 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4E414D4500000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP3 MLOAD PUSH1 0x0 LT PUSH3 0x146 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F53594D424F4C0000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP4 MLOAD PUSH3 0x15B SWAP1 PUSH1 0x2 SWAP1 PUSH1 0x20 DUP8 ADD SWAP1 PUSH3 0x1A8 JUMP JUMPDEST POP DUP3 MLOAD PUSH3 0x171 SWAP1 PUSH1 0x3 SWAP1 PUSH1 0x20 DUP7 ADD SWAP1 PUSH3 0x1A8 JUMP JUMPDEST POP PUSH1 0x4 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0xFF SWAP4 SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 SSTORE PUSH1 0x5 DUP2 SWAP1 SSTORE CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE POP PUSH3 0x24D SWAP4 POP POP POP POP JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH1 0x1F LT PUSH3 0x1EB JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH3 0x21B JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH3 0x21B JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH3 0x21B JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH3 0x1FE JUMP JUMPDEST POP PUSH3 0x229 SWAP3 SWAP2 POP PUSH3 0x22D JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH3 0x24A SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH3 0x229 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH3 0x234 JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH2 0xFCB DUP1 PUSH3 0x25D PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x106 JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x6FDDE03 DUP2 EQ PUSH2 0x10B JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x195 JUMPI DUP1 PUSH4 0x1608F18F EQ PUSH2 0x1CD JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x1E9 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x210 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x23A JUMPI DUP1 PUSH4 0x54FD4D50 EQ PUSH2 0x265 JUMPI DUP1 PUSH4 0x5E35359E EQ PUSH2 0x291 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x2BB JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x2DC JUMPI DUP1 PUSH4 0x867904B4 EQ PUSH2 0x2F1 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x315 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x346 JUMPI DUP1 PUSH4 0xA24835D1 EQ PUSH2 0x35B JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x37F JUMPI DUP1 PUSH4 0xBEF97C87 EQ PUSH2 0x3A3 JUMPI DUP1 PUSH4 0xD4EE1D90 EQ PUSH2 0x3B8 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x3CD JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x3F4 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x117 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x120 PUSH2 0x415 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP4 MLOAD DUP2 DUP4 ADD MSTORE DUP4 MLOAD SWAP2 SWAP3 DUP4 SWAP3 SWAP1 DUP4 ADD SWAP2 DUP6 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x15A JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x142 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x187 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1A1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B9 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x4A0 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1D9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH1 0x4 CALLDATALOAD ISZERO ISZERO PUSH2 0x598 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1FE PUSH2 0x5B2 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x21C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B9 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x5B8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x246 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x24F PUSH2 0x5DF JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x271 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x27A PUSH2 0x5E8 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0xFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x29D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x5ED JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2C7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1FE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x626 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2E8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH2 0x638 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2FD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x70B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x321 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x32A PUSH2 0x7ED JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x352 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x120 PUSH2 0x7FC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x367 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x857 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x38B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B9 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x91D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3AF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B9 PUSH2 0x942 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3C4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x32A PUSH2 0x94B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3D9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1FE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH2 0x95A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x400 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x977 JUMP JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x1 DUP5 AND ISZERO PUSH2 0x100 MUL PUSH1 0x0 NOT ADD SWAP1 SWAP4 AND DUP5 SWAP1 DIV PUSH1 0x1F DUP2 ADD DUP5 SWAP1 DIV DUP5 MUL DUP3 ADD DUP5 ADD SWAP1 SWAP3 MSTORE DUP2 DUP2 MSTORE SWAP3 SWAP2 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x498 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x46D JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x498 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x47B JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x4AC DUP2 PUSH2 0xA14 JUMP JUMPDEST DUP3 ISZERO DUP1 PUSH2 0x4DA JUMPI POP CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x530 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F414D4F554E540000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST CALLER PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP10 AND DUP1 DUP6 MSTORE SWAP1 DUP4 MSTORE SWAP3 DUP2 SWAP1 KECCAK256 DUP8 SWAP1 SSTORE DUP1 MLOAD DUP8 DUP2 MSTORE SWAP1 MLOAD SWAP3 SWAP4 SWAP3 PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP3 SWAP2 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x5A0 PUSH2 0xA77 JUMP JUMPDEST PUSH1 0x8 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP2 ISZERO SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x5 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5C2 PUSH2 0xADB JUMP JUMPDEST PUSH2 0x5CD DUP5 DUP5 DUP5 PUSH2 0xB37 JUMP JUMPDEST ISZERO ISZERO PUSH2 0x5D5 JUMPI INVALID JUMPDEST POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x4 DUP2 JUMP JUMPDEST PUSH2 0x5F5 PUSH2 0xA77 JUMP JUMPDEST DUP3 PUSH2 0x5FF DUP2 PUSH2 0xA14 JUMP JUMPDEST DUP3 PUSH2 0x609 DUP2 PUSH2 0xA14 JUMP JUMPDEST DUP4 PUSH2 0x613 DUP2 PUSH2 0xC48 JUMP JUMPDEST PUSH2 0x61E DUP7 DUP7 DUP7 PUSH2 0xCA9 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x69A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND SWAP4 SWAP1 SWAP2 AND SWAP2 PUSH32 0x343765429AEA5A34B3FF6A3785A98A5ABB2597ACA87BFBB58632C173D585373A SWAP2 LOG3 PUSH1 0x1 DUP1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND OR SWAP1 SWAP2 SSTORE AND SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x713 PUSH2 0xA77 JUMP JUMPDEST DUP2 PUSH2 0x71D DUP2 PUSH2 0xA14 JUMP JUMPDEST DUP3 PUSH2 0x727 DUP2 PUSH2 0xC48 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH2 0x73A SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0xD63 AND JUMP JUMPDEST PUSH1 0x5 SSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x766 SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0xD63 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SWAP3 SWAP1 SWAP3 SSTORE DUP1 MLOAD DUP6 DUP2 MSTORE SWAP1 MLOAD PUSH32 0x9386C90217C323F58030F9DADCBC938F807A940F4FF41CD4CEAD9562F5DA7DC3 SWAP3 SWAP2 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG1 PUSH1 0x40 DUP1 MLOAD DUP5 DUP2 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND SWAP2 PUSH1 0x0 SWAP2 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xF80 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP2 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 LOG3 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x2 PUSH1 0x1 DUP6 AND ISZERO PUSH2 0x100 MUL PUSH1 0x0 NOT ADD SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 DIV PUSH1 0x1F DUP2 ADD DUP5 SWAP1 DIV DUP5 MUL DUP3 ADD DUP5 ADD SWAP1 SWAP3 MSTORE DUP2 DUP2 MSTORE SWAP3 SWAP2 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x498 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x46D JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x498 JUMP JUMPDEST PUSH2 0x85F PUSH2 0xA77 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x888 SWAP1 DUP3 PUSH4 0xFFFFFFFF PUSH2 0xDC7 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE PUSH1 0x5 SLOAD PUSH2 0x8B4 SWAP1 DUP3 PUSH4 0xFFFFFFFF PUSH2 0xDC7 AND JUMP JUMPDEST PUSH1 0x5 SSTORE PUSH1 0x40 DUP1 MLOAD DUP3 DUP2 MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND SWAP2 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xF80 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP2 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 LOG3 PUSH1 0x40 DUP1 MLOAD DUP3 DUP2 MSTORE SWAP1 MLOAD PUSH32 0x9A1B418BC061A5D80270261562E6986A35D995F8051145F277BE16103ABD3453 SWAP2 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x927 PUSH2 0xADB JUMP JUMPDEST PUSH2 0x931 DUP4 DUP4 PUSH2 0xE27 JUMP JUMPDEST ISZERO ISZERO PUSH2 0x939 JUMPI INVALID JUMPDEST POP PUSH1 0x1 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x97F PUSH2 0xA77 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x9E5 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F4F574E4552000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0xA74 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0xAD9 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0xFF AND ISZERO ISZERO PUSH2 0xAD9 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5452414E53464552535F44495341424C454400000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP4 PUSH2 0xB43 DUP2 PUSH2 0xA14 JUMP JUMPDEST DUP4 PUSH2 0xB4D DUP2 PUSH2 0xA14 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH2 0xB81 SWAP1 DUP6 PUSH4 0xFFFFFFFF PUSH2 0xDC7 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE DUP3 MSTORE DUP1 DUP4 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE SWAP2 DUP2 MSTORE PUSH1 0x6 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD PUSH2 0xBC2 SWAP1 DUP6 PUSH4 0xFFFFFFFF PUSH2 0xDC7 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE SWAP1 DUP8 AND DUP2 MSTORE KECCAK256 SLOAD PUSH2 0xBF7 SWAP1 DUP6 PUSH4 0xFFFFFFFF PUSH2 0xD63 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP8 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE DUP1 MLOAD DUP9 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP4 SWAP3 DUP11 AND SWAP3 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xF80 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP3 SWAP2 DUP3 SWAP1 SUB ADD SWAP1 LOG3 POP PUSH1 0x1 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ADDRESS EQ ISZERO PUSH2 0xA74 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F414444524553535F49535F53454C4600000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x7472616E7366657228616464726573732C75696E743235362900000000000000 DUP2 MSTORE DUP2 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x19 ADD DUP2 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x64 SWAP1 SWAP3 ADD SWAP1 SWAP3 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE PUSH2 0xD5E SWAP1 DUP5 SWAP1 PUSH2 0xED2 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 ADD DUP4 DUP2 LT ISZERO PUSH2 0xDC0 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT ISZERO PUSH2 0xE21 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F554E444552464C4F5700000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP SWAP1 SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0xE33 DUP2 PUSH2 0xA14 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0xE53 SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0xDC7 AND JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP3 SWAP1 SWAP3 SSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND DUP2 MSTORE KECCAK256 SLOAD PUSH2 0xE85 SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0xD63 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE DUP1 MLOAD DUP7 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP3 CALLER SWAP3 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xF80 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0xEDA PUSH2 0xF60 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE POP SWAP1 POP PUSH1 0x20 DUP2 DUP4 MLOAD PUSH1 0x20 DUP6 ADD PUSH1 0x0 DUP8 GAS CALL DUP1 ISZERO ISZERO PUSH2 0xF07 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD ISZERO ISZERO PUSH2 0xD5E JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5452414E534645525F4641494C454400000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 SWAP1 PUSH1 0x20 DUP3 MUL DUP1 CODESIZE DUP4 CODECOPY POP SWAP2 SWAP3 SWAP2 POP POP JUMP STOP 0xdd CALLCODE MSTORE 0xad SHL 0xe2 0xc8 SWAP12 PUSH10 0xC2B068FC378DAA952BA7 CALL PUSH4 0xC4A11628 0xf5 GAS 0x4d 0xf5 0x23 0xb3 0xef LOG1 PUSH6 0x627A7A723058 KECCAK256 BALANCE 0xb5 PUSH11 0xEBC8336B547B3E1346F50C 0x2f DIFFICULTY 0xf7 0xd 0xef SSTORE 0x4e 0xd4 0xcb LOG4 0xc8 SHL 0xcf 0x2e MULMOD 0x2d DIV PUSH32 0x29A165627A7A723058203710122813A32201062C951A034F0A6BFE956EB081 PUSH2 0x5376 MSTORE PUSH21 0x2C2C17086A9A002900000000000000000000000000 ", + "sourceMap": "417:3381:5:-;;;488:5:66;:18;;-1:-1:-1;;;;;;488:18:66;496:10;488:18;;;417:3381:5;;;;;;" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "6080604052600436106100a05763ffffffff60e060020a60003504166312b4c6c181146100a557806315f64b6a146100c85780632e9ab7b31461011b578063327779a7146101c05780633a8fc520146101dc57806379ba5097146101f85780638cac5e291461020d5780638da5cb5b1461022e578063c977aed214610243578063d4ee1d901461025f578063e54b93ef14610274578063f2fde38b14610295575b600080fd5b3480156100b157600080fd5b506100c6600160a060020a03600435166102b6565b005b3480156100d457600080fd5b506100ff61ffff60043516600160a060020a036024358116906044351663ffffffff6064351661036f565b60408051600160a060020a039092168252519081900360200190f35b34801561012757600080fd5b5060408051602060046024803582810135601f81018590048502860185019096528585526100ff95833561ffff1695369560449491939091019190819084018382808284375050604080516020601f89358b018035918201839004830284018301909452808352979a9998810197919650918201945092508291508401838280828437509497505050923560ff16935061055892505050565b3480156101cc57600080fd5b506100ff61ffff600435166108cc565b3480156101e857600080fd5b506100ff61ffff600435166108e7565b34801561020457600080fd5b506100c6610902565b34801561021957600080fd5b506100c6600160a060020a03600435166109ec565b34801561023a57600080fd5b506100ff610a37565b34801561024f57600080fd5b506100ff61ffff60043516610a46565b34801561026b57600080fd5b506100ff610a61565b34801561028057600080fd5b506100c6600160a060020a0360043516610a70565b3480156102a157600080fd5b506100c6600160a060020a0360043516610abb565b6102be610b6f565b806002600083600160a060020a0316633e8ff43f6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561030157600080fd5b505af1158015610315573d6000803e3d6000fd5b505050506040513d602081101561032b57600080fd5b505161ffff1681526020810191909152604001600020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905550565b61ffff841660009081526002602090815260408083205481517f11413958000000000000000000000000000000000000000000000000000000008152600160a060020a038881166004830152878116602483015263ffffffff8716604483015292518594939092169263114139589260648084019382900301818787803b1580156103f957600080fd5b505af115801561040d573d6000803e3d6000fd5b505050506040513d602081101561042357600080fd5b5051604080517f79ba50970000000000000000000000000000000000000000000000000000000081529051919250600160a060020a038316916379ba50979160048082019260009290919082900301818387803b15801561048357600080fd5b505af1158015610497573d6000803e3d6000fd5b5050604080517ff2fde38b0000000000000000000000000000000000000000000000000000000081523360048201529051600160a060020a038516935063f2fde38b9250602480830192600092919082900301818387803b1580156104fb57600080fd5b505af115801561050f573d6000803e3d6000fd5b5050604051339250600160a060020a038416915061ffff8916907fbb340bcea68d239ac719bc5cf8c9a1716df04ad3babb8d1e562aa44d19fea3a390600090a495945050505050565b61ffff84166000908152600360205260408120548190600160a060020a031680151561068657858585610589610bea565b60ff82166040820152606080825284519082015283518190602080830191608084019188019080838360005b838110156105cd5781810151838201526020016105b5565b50505050905090810190601f1680156105fa5780820380516001836020036101000a031916815260200191505b50838103825285518152855160209182019187019080838360005b8381101561062d578181015183820152602001610615565b50505050905090810190601f16801561065a5780820380516001836020036101000a031916815260200191505b5095505050505050604051809103906000f08015801561067e573d6000803e3d6000fd5b509150610849565b80600160a060020a031663a9fd4a2a8787876040518463ffffffff1660e060020a0281526004018080602001806020018460ff1660ff168152602001838103835286818151815260200191508051906020019080838360005b838110156106f75781810151838201526020016106df565b50505050905090810190601f1680156107245780820380516001836020036101000a031916815260200191505b50838103825285518152855160209182019187019080838360005b8381101561075757818101518382015260200161073f565b50505050905090810190601f1680156107845780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1580156107a657600080fd5b505af11580156107ba573d6000803e3d6000fd5b505050506040513d60208110156107d057600080fd5b5051604080517f79ba50970000000000000000000000000000000000000000000000000000000081529051919350600160a060020a038416916379ba50979160048082019260009290919082900301818387803b15801561083057600080fd5b505af1158015610844573d6000803e3d6000fd5b505050505b604080517ff2fde38b0000000000000000000000000000000000000000000000000000000081523360048201529051600160a060020a0384169163f2fde38b91602480830192600092919082900301818387803b1580156108a957600080fd5b505af11580156108bd573d6000803e3d6000fd5b50939998505050505050505050565b600260205260009081526040902054600160a060020a031681565b600360205260009081526040902054600160a060020a031681565b600154600160a060020a0316331461097b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b60015460008054604051600160a060020a0393841693909116917f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91a3600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b6109f4610b6f565b806004600083600160a060020a0316633e8ff43f6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561030157600080fd5b600054600160a060020a031681565b600460205260009081526040902054600160a060020a031681565b600154600160a060020a031681565b610a78610b6f565b806003600083600160a060020a0316633e8ff43f6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561030157600080fd5b610ac3610b6f565b600054600160a060020a0382811691161415610b4057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f4552525f53414d455f4f574e4552000000000000000000000000000000000000604482015290519081900360640190fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600054600160a060020a03163314610be857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b565b60405161122880610bfb83390190560060806040526008805460ff191660011790553480156200001e57600080fd5b506040516200122838038062001228833981016040908152815160208301519183015160008054600160a060020a0319163317815591840180519094939093019290918491849184918110620000d557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f4552525f494e56414c49445f4e414d4500000000000000000000000000000000604482015290519081900360640190fd5b82516000106200014657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f4552525f494e56414c49445f53594d424f4c0000000000000000000000000000604482015290519081900360640190fd5b83516200015b906002906020870190620001a8565b50825162000171906003906020860190620001a8565b506004805460ff191660ff9390931692909217909155600581905533600090815260066020526040902055506200024d9350505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620001eb57805160ff19168380011785556200021b565b828001600101855582156200021b579182015b828111156200021b578251825591602001919060010190620001fe565b50620002299291506200022d565b5090565b6200024a91905b8082111562000229576000815560010162000234565b90565b610fcb806200025d6000396000f3006080604052600436106101065763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde03811461010b578063095ea7b3146101955780631608f18f146101cd57806318160ddd146101e957806323b872dd14610210578063313ce5671461023a57806354fd4d50146102655780635e35359e1461029157806370a08231146102bb57806379ba5097146102dc578063867904b4146102f15780638da5cb5b1461031557806395d89b4114610346578063a24835d11461035b578063a9059cbb1461037f578063bef97c87146103a3578063d4ee1d90146103b8578063dd62ed3e146103cd578063f2fde38b146103f4575b600080fd5b34801561011757600080fd5b50610120610415565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561015a578181015183820152602001610142565b50505050905090810190601f1680156101875780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101a157600080fd5b506101b9600160a060020a03600435166024356104a0565b604080519115158252519081900360200190f35b3480156101d957600080fd5b506101e76004351515610598565b005b3480156101f557600080fd5b506101fe6105b2565b60408051918252519081900360200190f35b34801561021c57600080fd5b506101b9600160a060020a03600435811690602435166044356105b8565b34801561024657600080fd5b5061024f6105df565b6040805160ff9092168252519081900360200190f35b34801561027157600080fd5b5061027a6105e8565b6040805161ffff9092168252519081900360200190f35b34801561029d57600080fd5b506101e7600160a060020a03600435811690602435166044356105ed565b3480156102c757600080fd5b506101fe600160a060020a0360043516610626565b3480156102e857600080fd5b506101e7610638565b3480156102fd57600080fd5b506101e7600160a060020a036004351660243561070b565b34801561032157600080fd5b5061032a6107ed565b60408051600160a060020a039092168252519081900360200190f35b34801561035257600080fd5b506101206107fc565b34801561036757600080fd5b506101e7600160a060020a0360043516602435610857565b34801561038b57600080fd5b506101b9600160a060020a036004351660243561091d565b3480156103af57600080fd5b506101b9610942565b3480156103c457600080fd5b5061032a61094b565b3480156103d957600080fd5b506101fe600160a060020a036004358116906024351661095a565b34801561040057600080fd5b506101e7600160a060020a0360043516610977565b6002805460408051602060018416156101000260001901909316849004601f810184900484028201840190925281815292918301828280156104985780601f1061046d57610100808354040283529160200191610498565b820191906000526020600020905b81548152906001019060200180831161047b57829003601f168201915b505050505081565b6000826104ac81610a14565b8215806104da5750336000908152600760209081526040808320600160a060020a0388168452909152902054155b1515610530576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f494e56414c49445f414d4f554e540000000000000000000000000000604482015290519081900360640190fd5b336000818152600760209081526040808320600160a060020a03891680855290835292819020879055805187815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060019392505050565b6105a0610a77565b6008805460ff19169115919091179055565b60055481565b60006105c2610adb565b6105cd848484610b37565b15156105d557fe5b5060019392505050565b60045460ff1681565b600481565b6105f5610a77565b826105ff81610a14565b8261060981610a14565b8361061381610c48565b61061e868686610ca9565b505050505050565b60066020526000908152604090205481565b600154600160a060020a0316331461069a576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b60015460008054604051600160a060020a0393841693909116917f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91a3600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b610713610a77565b8161071d81610a14565b8261072781610c48565b60055461073a908463ffffffff610d6316565b600555600160a060020a038416600090815260066020526040902054610766908463ffffffff610d6316565b600160a060020a03851660009081526006602090815260409182902092909255805185815290517f9386c90217c323f58030f9dadcbc938f807a940f4ff41cd4cead9562f5da7dc3929181900390910190a1604080518481529051600160a060020a03861691600091600080516020610f808339815191529181900360200190a350505050565b600054600160a060020a031681565b6003805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156104985780601f1061046d57610100808354040283529160200191610498565b61085f610a77565b600160a060020a038216600090815260066020526040902054610888908263ffffffff610dc716565b600160a060020a0383166000908152600660205260409020556005546108b4908263ffffffff610dc716565b600555604080518281529051600091600160a060020a03851691600080516020610f808339815191529181900360200190a36040805182815290517f9a1b418bc061a5d80270261562e6986a35d995f8051145f277be16103abd34539181900360200190a15050565b6000610927610adb565b6109318383610e27565b151561093957fe5b50600192915050565b60085460ff1681565b600154600160a060020a031681565b600760209081526000928352604080842090915290825290205481565b61097f610a77565b600054600160a060020a03828116911614156109e5576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f53414d455f4f574e4552000000000000000000000000000000000000604482015290519081900360640190fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600160a060020a0381161515610a74576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b50565b600054600160a060020a03163314610ad9576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b565b60085460ff161515610ad9576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f5452414e53464552535f44495341424c454400000000000000000000604482015290519081900360640190fd5b600083610b4381610a14565b83610b4d81610a14565b600160a060020a0386166000908152600760209081526040808320338452909152902054610b81908563ffffffff610dc716565b600160a060020a038716600081815260076020908152604080832033845282528083209490945591815260069091522054610bc2908563ffffffff610dc716565b600160a060020a038088166000908152600660205260408082209390935590871681522054610bf7908563ffffffff610d6316565b600160a060020a0380871660008181526006602090815260409182902094909455805188815290519193928a1692600080516020610f8083398151915292918290030190a350600195945050505050565b600160a060020a038116301415610a74576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f414444524553535f49535f53454c4600000000000000000000000000604482015290519081900360640190fd5b604080517f7472616e7366657228616464726573732c75696e74323536290000000000000081528151908190036019018120600160a060020a038516602483015260448083018590528351808403909101815260649092019092526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152610d5e908490610ed2565b505050565b600082820183811015610dc0576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b9392505050565b600081831015610e21576040805160e560020a62461bcd02815260206004820152600d60248201527f4552525f554e444552464c4f5700000000000000000000000000000000000000604482015290519081900360640190fd5b50900390565b600082610e3381610a14565b33600090815260066020526040902054610e53908463ffffffff610dc716565b3360009081526006602052604080822092909255600160a060020a03861681522054610e85908463ffffffff610d6316565b600160a060020a038516600081815260066020908152604091829020939093558051868152905191923392600080516020610f808339815191529281900390910190a35060019392505050565b610eda610f60565b602060405190810160405280600181525090506020818351602085016000875af1801515610f0757600080fd5b5080511515610d5e576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f5452414e534645525f4641494c454400000000000000000000000000604482015290519081900360640190fd5b60206040519081016040528060019060208202803883395091929150505600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a7230582031b56aebc8336b547b3e1346f50c2f44f70def554ed4cba4c81bcf2e092d047f0029a165627a7a723058203710122813a32201062c951a034f0a6bfe956eb08161537652742c2c17086a9a0029", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0xA0 JUMPI PUSH4 0xFFFFFFFF PUSH1 0xE0 PUSH1 0x2 EXP PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x12B4C6C1 DUP2 EQ PUSH2 0xA5 JUMPI DUP1 PUSH4 0x15F64B6A EQ PUSH2 0xC8 JUMPI DUP1 PUSH4 0x2E9AB7B3 EQ PUSH2 0x11B JUMPI DUP1 PUSH4 0x327779A7 EQ PUSH2 0x1C0 JUMPI DUP1 PUSH4 0x3A8FC520 EQ PUSH2 0x1DC JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x1F8 JUMPI DUP1 PUSH4 0x8CAC5E29 EQ PUSH2 0x20D JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x22E JUMPI DUP1 PUSH4 0xC977AED2 EQ PUSH2 0x243 JUMPI DUP1 PUSH4 0xD4EE1D90 EQ PUSH2 0x25F JUMPI DUP1 PUSH4 0xE54B93EF EQ PUSH2 0x274 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x295 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xB1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xC6 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x2B6 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xD4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xFF PUSH2 0xFFFF PUSH1 0x4 CALLDATALOAD AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x24 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x44 CALLDATALOAD AND PUSH4 0xFFFFFFFF PUSH1 0x64 CALLDATALOAD AND PUSH2 0x36F JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x127 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 PUSH1 0x24 DUP1 CALLDATALOAD DUP3 DUP2 ADD CALLDATALOAD PUSH1 0x1F DUP2 ADD DUP6 SWAP1 DIV DUP6 MUL DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP6 DUP6 MSTORE PUSH2 0xFF SWAP6 DUP4 CALLDATALOAD PUSH2 0xFFFF AND SWAP6 CALLDATASIZE SWAP6 PUSH1 0x44 SWAP5 SWAP2 SWAP4 SWAP1 SWAP2 ADD SWAP2 SWAP1 DUP2 SWAP1 DUP5 ADD DUP4 DUP3 DUP1 DUP3 DUP5 CALLDATACOPY POP POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x1F DUP10 CALLDATALOAD DUP12 ADD DUP1 CALLDATALOAD SWAP2 DUP3 ADD DUP4 SWAP1 DIV DUP4 MUL DUP5 ADD DUP4 ADD SWAP1 SWAP5 MSTORE DUP1 DUP4 MSTORE SWAP8 SWAP11 SWAP10 SWAP9 DUP2 ADD SWAP8 SWAP2 SWAP7 POP SWAP2 DUP3 ADD SWAP5 POP SWAP3 POP DUP3 SWAP2 POP DUP5 ADD DUP4 DUP3 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP POP POP SWAP3 CALLDATALOAD PUSH1 0xFF AND SWAP4 POP PUSH2 0x558 SWAP3 POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1CC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xFF PUSH2 0xFFFF PUSH1 0x4 CALLDATALOAD AND PUSH2 0x8CC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1E8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xFF PUSH2 0xFFFF PUSH1 0x4 CALLDATALOAD AND PUSH2 0x8E7 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x204 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xC6 PUSH2 0x902 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x219 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xC6 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x9EC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x23A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xFF PUSH2 0xA37 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x24F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xFF PUSH2 0xFFFF PUSH1 0x4 CALLDATALOAD AND PUSH2 0xA46 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x26B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xFF PUSH2 0xA61 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x280 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xC6 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0xA70 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2A1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xC6 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0xABB JUMP JUMPDEST PUSH2 0x2BE PUSH2 0xB6F JUMP JUMPDEST DUP1 PUSH1 0x2 PUSH1 0x0 DUP4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x3E8FF43F PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x301 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x315 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x32B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE POP JUMP JUMPDEST PUSH2 0xFFFF DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD DUP2 MLOAD PUSH32 0x1141395800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP8 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH4 0xFFFFFFFF DUP8 AND PUSH1 0x44 DUP4 ADD MSTORE SWAP3 MLOAD DUP6 SWAP5 SWAP4 SWAP1 SWAP3 AND SWAP3 PUSH4 0x11413958 SWAP3 PUSH1 0x64 DUP1 DUP5 ADD SWAP4 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3F9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x40D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x423 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x79BA509700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 AND SWAP2 PUSH4 0x79BA5097 SWAP2 PUSH1 0x4 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x483 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x497 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 DUP1 MLOAD PUSH32 0xF2FDE38B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND SWAP4 POP PUSH4 0xF2FDE38B SWAP3 POP PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x4FB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x50F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD CALLER SWAP3 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP2 POP PUSH2 0xFFFF DUP10 AND SWAP1 PUSH32 0xBB340BCEA68D239AC719BC5CF8C9A1716DF04AD3BABB8D1E562AA44D19FEA3A3 SWAP1 PUSH1 0x0 SWAP1 LOG4 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP2 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP1 ISZERO ISZERO PUSH2 0x686 JUMPI DUP6 DUP6 DUP6 PUSH2 0x589 PUSH2 0xBEA JUMP JUMPDEST PUSH1 0xFF DUP3 AND PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP1 DUP3 MSTORE DUP5 MLOAD SWAP1 DUP3 ADD MSTORE DUP4 MLOAD DUP2 SWAP1 PUSH1 0x20 DUP1 DUP4 ADD SWAP2 PUSH1 0x80 DUP5 ADD SWAP2 DUP9 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x5CD JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x5B5 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x5FA JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP DUP4 DUP2 SUB DUP3 MSTORE DUP6 MLOAD DUP2 MSTORE DUP6 MLOAD PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 DUP8 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x62D JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x615 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x65A JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP6 POP POP POP POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 PUSH1 0x0 CREATE DUP1 ISZERO DUP1 ISZERO PUSH2 0x67E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP SWAP2 POP PUSH2 0x849 JUMP JUMPDEST DUP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xA9FD4A2A DUP8 DUP8 DUP8 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP5 PUSH1 0xFF AND PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 SUB DUP4 MSTORE DUP7 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x6F7 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x6DF JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x724 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP DUP4 DUP2 SUB DUP3 MSTORE DUP6 MLOAD DUP2 MSTORE DUP6 MLOAD PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 DUP8 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x757 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x73F JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x784 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP6 POP POP POP POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x7A6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x7BA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x7D0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x79BA509700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP4 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP2 PUSH4 0x79BA5097 SWAP2 PUSH1 0x4 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x830 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x844 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0xF2FDE38B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP2 PUSH4 0xF2FDE38B SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x8A9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x8BD JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP SWAP4 SWAP10 SWAP9 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x97B JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND SWAP4 SWAP1 SWAP2 AND SWAP2 PUSH32 0x343765429AEA5A34B3FF6A3785A98A5ABB2597ACA87BFBB58632C173D585373A SWAP2 LOG3 PUSH1 0x1 DUP1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND OR SWAP1 SWAP2 SSTORE AND SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x9F4 PUSH2 0xB6F JUMP JUMPDEST DUP1 PUSH1 0x4 PUSH1 0x0 DUP4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x3E8FF43F PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x301 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH2 0xA78 PUSH2 0xB6F JUMP JUMPDEST DUP1 PUSH1 0x3 PUSH1 0x0 DUP4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x3E8FF43F PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x301 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xAC3 PUSH2 0xB6F JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0xB40 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F4F574E4552000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0xBE8 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1228 DUP1 PUSH2 0xBFB DUP4 CODECOPY ADD SWAP1 JUMP STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x8 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE CALLVALUE DUP1 ISZERO PUSH3 0x1E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x1228 CODESIZE SUB DUP1 PUSH3 0x1228 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 SWAP1 DUP2 MSTORE DUP2 MLOAD PUSH1 0x20 DUP4 ADD MLOAD SWAP2 DUP4 ADD MLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND CALLER OR DUP2 SSTORE SWAP2 DUP5 ADD DUP1 MLOAD SWAP1 SWAP5 SWAP4 SWAP1 SWAP4 ADD SWAP3 SWAP1 SWAP2 DUP5 SWAP2 DUP5 SWAP2 DUP5 SWAP2 DUP2 LT PUSH3 0xD5 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4E414D4500000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP3 MLOAD PUSH1 0x0 LT PUSH3 0x146 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F53594D424F4C0000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP4 MLOAD PUSH3 0x15B SWAP1 PUSH1 0x2 SWAP1 PUSH1 0x20 DUP8 ADD SWAP1 PUSH3 0x1A8 JUMP JUMPDEST POP DUP3 MLOAD PUSH3 0x171 SWAP1 PUSH1 0x3 SWAP1 PUSH1 0x20 DUP7 ADD SWAP1 PUSH3 0x1A8 JUMP JUMPDEST POP PUSH1 0x4 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0xFF SWAP4 SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 SSTORE PUSH1 0x5 DUP2 SWAP1 SSTORE CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE POP PUSH3 0x24D SWAP4 POP POP POP POP JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH1 0x1F LT PUSH3 0x1EB JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH3 0x21B JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH3 0x21B JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH3 0x21B JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH3 0x1FE JUMP JUMPDEST POP PUSH3 0x229 SWAP3 SWAP2 POP PUSH3 0x22D JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH3 0x24A SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH3 0x229 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH3 0x234 JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH2 0xFCB DUP1 PUSH3 0x25D PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x106 JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x6FDDE03 DUP2 EQ PUSH2 0x10B JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x195 JUMPI DUP1 PUSH4 0x1608F18F EQ PUSH2 0x1CD JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x1E9 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x210 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x23A JUMPI DUP1 PUSH4 0x54FD4D50 EQ PUSH2 0x265 JUMPI DUP1 PUSH4 0x5E35359E EQ PUSH2 0x291 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x2BB JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x2DC JUMPI DUP1 PUSH4 0x867904B4 EQ PUSH2 0x2F1 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x315 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x346 JUMPI DUP1 PUSH4 0xA24835D1 EQ PUSH2 0x35B JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x37F JUMPI DUP1 PUSH4 0xBEF97C87 EQ PUSH2 0x3A3 JUMPI DUP1 PUSH4 0xD4EE1D90 EQ PUSH2 0x3B8 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x3CD JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x3F4 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x117 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x120 PUSH2 0x415 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP4 MLOAD DUP2 DUP4 ADD MSTORE DUP4 MLOAD SWAP2 SWAP3 DUP4 SWAP3 SWAP1 DUP4 ADD SWAP2 DUP6 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x15A JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x142 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x187 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1A1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B9 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x4A0 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1D9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH1 0x4 CALLDATALOAD ISZERO ISZERO PUSH2 0x598 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1FE PUSH2 0x5B2 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x21C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B9 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x5B8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x246 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x24F PUSH2 0x5DF JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x271 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x27A PUSH2 0x5E8 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0xFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x29D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x5ED JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2C7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1FE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x626 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2E8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH2 0x638 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2FD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x70B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x321 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x32A PUSH2 0x7ED JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x352 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x120 PUSH2 0x7FC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x367 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x857 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x38B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B9 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x91D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3AF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B9 PUSH2 0x942 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3C4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x32A PUSH2 0x94B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3D9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1FE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH2 0x95A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x400 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x977 JUMP JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x1 DUP5 AND ISZERO PUSH2 0x100 MUL PUSH1 0x0 NOT ADD SWAP1 SWAP4 AND DUP5 SWAP1 DIV PUSH1 0x1F DUP2 ADD DUP5 SWAP1 DIV DUP5 MUL DUP3 ADD DUP5 ADD SWAP1 SWAP3 MSTORE DUP2 DUP2 MSTORE SWAP3 SWAP2 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x498 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x46D JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x498 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x47B JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x4AC DUP2 PUSH2 0xA14 JUMP JUMPDEST DUP3 ISZERO DUP1 PUSH2 0x4DA JUMPI POP CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x530 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F414D4F554E540000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST CALLER PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP10 AND DUP1 DUP6 MSTORE SWAP1 DUP4 MSTORE SWAP3 DUP2 SWAP1 KECCAK256 DUP8 SWAP1 SSTORE DUP1 MLOAD DUP8 DUP2 MSTORE SWAP1 MLOAD SWAP3 SWAP4 SWAP3 PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP3 SWAP2 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x5A0 PUSH2 0xA77 JUMP JUMPDEST PUSH1 0x8 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP2 ISZERO SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x5 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5C2 PUSH2 0xADB JUMP JUMPDEST PUSH2 0x5CD DUP5 DUP5 DUP5 PUSH2 0xB37 JUMP JUMPDEST ISZERO ISZERO PUSH2 0x5D5 JUMPI INVALID JUMPDEST POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x4 DUP2 JUMP JUMPDEST PUSH2 0x5F5 PUSH2 0xA77 JUMP JUMPDEST DUP3 PUSH2 0x5FF DUP2 PUSH2 0xA14 JUMP JUMPDEST DUP3 PUSH2 0x609 DUP2 PUSH2 0xA14 JUMP JUMPDEST DUP4 PUSH2 0x613 DUP2 PUSH2 0xC48 JUMP JUMPDEST PUSH2 0x61E DUP7 DUP7 DUP7 PUSH2 0xCA9 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x69A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND SWAP4 SWAP1 SWAP2 AND SWAP2 PUSH32 0x343765429AEA5A34B3FF6A3785A98A5ABB2597ACA87BFBB58632C173D585373A SWAP2 LOG3 PUSH1 0x1 DUP1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND OR SWAP1 SWAP2 SSTORE AND SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x713 PUSH2 0xA77 JUMP JUMPDEST DUP2 PUSH2 0x71D DUP2 PUSH2 0xA14 JUMP JUMPDEST DUP3 PUSH2 0x727 DUP2 PUSH2 0xC48 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH2 0x73A SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0xD63 AND JUMP JUMPDEST PUSH1 0x5 SSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x766 SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0xD63 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SWAP3 SWAP1 SWAP3 SSTORE DUP1 MLOAD DUP6 DUP2 MSTORE SWAP1 MLOAD PUSH32 0x9386C90217C323F58030F9DADCBC938F807A940F4FF41CD4CEAD9562F5DA7DC3 SWAP3 SWAP2 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG1 PUSH1 0x40 DUP1 MLOAD DUP5 DUP2 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND SWAP2 PUSH1 0x0 SWAP2 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xF80 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP2 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 LOG3 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x2 PUSH1 0x1 DUP6 AND ISZERO PUSH2 0x100 MUL PUSH1 0x0 NOT ADD SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 DIV PUSH1 0x1F DUP2 ADD DUP5 SWAP1 DIV DUP5 MUL DUP3 ADD DUP5 ADD SWAP1 SWAP3 MSTORE DUP2 DUP2 MSTORE SWAP3 SWAP2 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x498 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x46D JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x498 JUMP JUMPDEST PUSH2 0x85F PUSH2 0xA77 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x888 SWAP1 DUP3 PUSH4 0xFFFFFFFF PUSH2 0xDC7 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE PUSH1 0x5 SLOAD PUSH2 0x8B4 SWAP1 DUP3 PUSH4 0xFFFFFFFF PUSH2 0xDC7 AND JUMP JUMPDEST PUSH1 0x5 SSTORE PUSH1 0x40 DUP1 MLOAD DUP3 DUP2 MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND SWAP2 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xF80 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP2 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 LOG3 PUSH1 0x40 DUP1 MLOAD DUP3 DUP2 MSTORE SWAP1 MLOAD PUSH32 0x9A1B418BC061A5D80270261562E6986A35D995F8051145F277BE16103ABD3453 SWAP2 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x927 PUSH2 0xADB JUMP JUMPDEST PUSH2 0x931 DUP4 DUP4 PUSH2 0xE27 JUMP JUMPDEST ISZERO ISZERO PUSH2 0x939 JUMPI INVALID JUMPDEST POP PUSH1 0x1 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x97F PUSH2 0xA77 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x9E5 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F4F574E4552000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0xA74 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0xAD9 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0xFF AND ISZERO ISZERO PUSH2 0xAD9 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5452414E53464552535F44495341424C454400000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP4 PUSH2 0xB43 DUP2 PUSH2 0xA14 JUMP JUMPDEST DUP4 PUSH2 0xB4D DUP2 PUSH2 0xA14 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH2 0xB81 SWAP1 DUP6 PUSH4 0xFFFFFFFF PUSH2 0xDC7 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE DUP3 MSTORE DUP1 DUP4 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE SWAP2 DUP2 MSTORE PUSH1 0x6 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD PUSH2 0xBC2 SWAP1 DUP6 PUSH4 0xFFFFFFFF PUSH2 0xDC7 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE SWAP1 DUP8 AND DUP2 MSTORE KECCAK256 SLOAD PUSH2 0xBF7 SWAP1 DUP6 PUSH4 0xFFFFFFFF PUSH2 0xD63 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP8 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE DUP1 MLOAD DUP9 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP4 SWAP3 DUP11 AND SWAP3 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xF80 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP3 SWAP2 DUP3 SWAP1 SUB ADD SWAP1 LOG3 POP PUSH1 0x1 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ADDRESS EQ ISZERO PUSH2 0xA74 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F414444524553535F49535F53454C4600000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x7472616E7366657228616464726573732C75696E743235362900000000000000 DUP2 MSTORE DUP2 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x19 ADD DUP2 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x64 SWAP1 SWAP3 ADD SWAP1 SWAP3 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE PUSH2 0xD5E SWAP1 DUP5 SWAP1 PUSH2 0xED2 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 ADD DUP4 DUP2 LT ISZERO PUSH2 0xDC0 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT ISZERO PUSH2 0xE21 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F554E444552464C4F5700000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP SWAP1 SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0xE33 DUP2 PUSH2 0xA14 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0xE53 SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0xDC7 AND JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP3 SWAP1 SWAP3 SSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND DUP2 MSTORE KECCAK256 SLOAD PUSH2 0xE85 SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0xD63 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE DUP1 MLOAD DUP7 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP3 CALLER SWAP3 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xF80 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0xEDA PUSH2 0xF60 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE POP SWAP1 POP PUSH1 0x20 DUP2 DUP4 MLOAD PUSH1 0x20 DUP6 ADD PUSH1 0x0 DUP8 GAS CALL DUP1 ISZERO ISZERO PUSH2 0xF07 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD ISZERO ISZERO PUSH2 0xD5E JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5452414E534645525F4641494C454400000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 SWAP1 PUSH1 0x20 DUP3 MUL DUP1 CODESIZE DUP4 CODECOPY POP SWAP2 SWAP3 SWAP2 POP POP JUMP STOP 0xdd CALLCODE MSTORE 0xad SHL 0xe2 0xc8 SWAP12 PUSH10 0xC2B068FC378DAA952BA7 CALL PUSH4 0xC4A11628 0xf5 GAS 0x4d 0xf5 0x23 0xb3 0xef LOG1 PUSH6 0x627A7A723058 KECCAK256 BALANCE 0xb5 PUSH11 0xEBC8336B547B3E1346F50C 0x2f DIFFICULTY 0xf7 0xd 0xef SSTORE 0x4e 0xd4 0xcb LOG4 0xc8 SHL 0xcf 0x2e MULMOD 0x2d DIV PUSH32 0x29A165627A7A723058203710122813A32201062C951A034F0A6BFE956EB081 PUSH2 0x5376 MSTORE PUSH21 0x2C2C17086A9A002900000000000000000000000000 ", + "sourceMap": "417:3381:5:-;;;;;;;;;-1:-1:-1;;;417:3381:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1189:152;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1189:152:5;-1:-1:-1;;;;;1189:152:5;;;;;;;3380:416;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3380:416:5;;;;;-1:-1:-1;;;;;3380:416:5;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3380:416:5;;;;;;;;;;;;;;2381:560;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2381:560:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2381:560:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2381:560:5;;;;-1:-1:-1;2381:560:5;-1:-1:-1;2381:560:5;;-1:-1:-1;2381:560:5;;;;;;;;-1:-1:-1;2381:560:5;;-1:-1:-1;;;2381:560:5;;;;;-1:-1:-1;2381:560:5;;-1:-1:-1;;;2381:560:5;805:67;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;805:67:5;;;;;;;875:70;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;875:70:5;;;;;;;1159:176:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1159:176:66;;;;1870:161:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1870:161:5;-1:-1:-1;;;;;1870:161:5;;;;;157:20:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;157:20:66;;;;948:70:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;948:70:5;;;;;;;180:23:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;180:23:66;;;;1525:161:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1525:161:5;-1:-1:-1;;;;;1525:161:5;;;;;945:140:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;945:140:66;-1:-1:-1;;;;;945:140:66;;;;;1189:152:5;575:12:66;:10;:12::i;:::-;1329:8:5;1282:18;:44;1301:8;-1:-1:-1;;;;;1301:22:5;;:24;;;;;-1:-1:-1;;;1301:24:5;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1301:24:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1301:24:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1301:24:5;1282:44;;;;1301:24;1282:44;;;;;;;;-1:-1:-1;1282:44:5;:55;;-1:-1:-1;;1282:55:5;-1:-1:-1;;;;;1282:55:5;;;;;;;;;;-1:-1:-1;1189:152:5:o;3380:416::-;3566:25;;;3527:10;3566:25;;;:18;:25;;;;;;;;;:80;;;;;-1:-1:-1;;;;;3566:80:5;;;;;;;;;;;;;;;;;;;;;;;3527:10;;3566:25;;;;;:41;;:80;;;;;;;;;;3527:10;3566:25;:80;;;5:2:-1;;;;30:1;27;20:12;5:2;3566:80:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3566:80:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3566:80:5;3650:27;;;;;;;;3566:80;;-1:-1:-1;;;;;;3650:25:5;;;;;:27;;;;;;;;;;;;;;;;:25;:27;;;5:2:-1;;;;30:1;27;20:12;5:2;3650:27:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;3681:39:5;;;;;;3709:10;3681:39;;;;;;-1:-1:-1;;;;;3681:27:5;;;-1:-1:-1;3681:27:5;;-1:-1:-1;3681:39:5;;;;;-1:-1:-1;;3681:39:5;;;;;;;-1:-1:-1;3681:27:5;:39;;;5:2:-1;;;;30:1;27;20:12;5:2;3681:39:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;3730:42:5;;3761:10;;-1:-1:-1;;;;;;3730:42:5;;;-1:-1:-1;3730:42:5;;;;;;;;;3783:9;3380:416;-1:-1:-1;;;;;3380:416:5:o;2381:560::-;2588:31;;;2500:16;2588:31;;;:15;:31;;;;;;2500:16;;-1:-1:-1;;;;;2588:31:5;2628:21;;2624:256;;;2721:5;2728:7;2737:9;2706:41;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;2706:41:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2706:41:5;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;2706:41:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2706:41:5;2697:50;;2624:256;;;2799:7;-1:-1:-1;;;;;2799:20:5;;2820:5;2827:7;2836:9;2799:47;;;;;-1:-1:-1;;;2799:47:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;2799:47:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2799:47:5;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;2799:47:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2799:47:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2799:47:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2799:47:5;2851:24;;;;;;;;2799:47;;-1:-1:-1;;;;;;2851:22:5;;;;;:24;;;;;;;;;;;;;;;;:22;:24;;;5:2:-1;;;;30:1;27;20:12;5:2;2851:24:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2851:24:5;;;;2624:256;2884:36;;;;;;2909:10;2884:36;;;;;;-1:-1:-1;;;;;2884:24:5;;;;;:36;;;;;-1:-1:-1;;2884:36:5;;;;;;;-1:-1:-1;2884:24:5;:36;;;5:2:-1;;;;30:1;27;20:12;5:2;2884:36:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;2931:6:5;;2381:560;-1:-1:-1;;;;;;;;;2381:560:5:o;805:67::-;;;;;;;;;;;;-1:-1:-1;;;;;805:67:5;;:::o;875:70::-;;;;;;;;;;;;-1:-1:-1;;;;;875:70:5;;:::o;1159:176:66:-;1219:8;;-1:-1:-1;;;;;1219:8:66;1205:10;:22;1197:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1277:8;;;1270:5;;1258:28;;-1:-1:-1;;;;;1277:8:66;;;;1270:5;;;;1258:28;;;1298:8;;;;1290:16;;-1:-1:-1;;1290:16:66;;;-1:-1:-1;;;;;1298:8:66;;1290:16;;;;1310:21;;;1159:176::o;1870:161:5:-;575:12:66;:10;:12::i;:::-;2019:8:5;1975:15;:41;1991:8;-1:-1:-1;;;;;1991:22:5;;:24;;;;;-1:-1:-1;;;1991:24:5;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;157:20:66;;;-1:-1:-1;;;;;157:20:66;;:::o;948:70:5:-;;;;;;;;;;;;-1:-1:-1;;;;;948:70:5;;:::o;180:23:66:-;;;-1:-1:-1;;;;;180:23:66;;:::o;1525:161:5:-;575:12:66;:10;:12::i;:::-;1674:8:5;1630:15;:41;1646:8;-1:-1:-1;;;;;1646:22:5;;:24;;;;;-1:-1:-1;;;1646:24:5;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;945:140:66;575:12;:10;:12::i;:::-;1033:5;;-1:-1:-1;;;;;1020:18:66;;;1033:5;;1020:18;;1012:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1061:8;:20;;-1:-1:-1;;1061:20:66;-1:-1:-1;;;;;1061:20:66;;;;;;;;;;945:140::o;642:93::-;704:5;;-1:-1:-1;;;;;704:5:66;690:10;:19;682:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;642:93::o;417:3381:5:-;;;;;;;;;;:::o" + }, + "methodIdentifiers": { + "acceptOwnership()": "79ba5097", + "anchorFactories(uint16)": "3a8fc520", + "converterFactories(uint16)": "327779a7", + "createAnchor(uint16,string,string,uint8)": "2e9ab7b3", + "createConverter(uint16,address,address,uint32)": "15f64b6a", + "customFactories(uint16)": "c977aed2", + "newOwner()": "d4ee1d90", + "owner()": "8da5cb5b", + "registerTypedConverterAnchorFactory(address)": "e54b93ef", + "registerTypedConverterCustomFactory(address)": "8cac5e29", + "registerTypedConverterFactory(address)": "12b4c6c1", + "transferOwnership(address)": "f2fde38b" + } + }, + "userdoc": { + "methods": {} + } + } + }, + "solidity/contracts/converter/ConverterRegistry.sol": { + "ConverterRegistry": { + "abi": [ + { + "constant": false, + "inputs": [ + { + "name": "_onlyOwnerCanUpdateRegistry", + "type": "bool" + } + ], + "name": "restrictRegistryUpdate", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getSmartTokens", + "outputs": [ + { + "name": "", + "type": "address[]" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_convertibleToken", + "type": "address" + } + ], + "name": "getConvertibleTokenAnchors", + "outputs": [ + { + "name": "", + "type": "address[]" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_type", + "type": "uint16" + }, + { + "name": "_reserveTokens", + "type": "address[]" + }, + { + "name": "_reserveWeights", + "type": "uint32[]" + } + ], + "name": "getLiquidityPoolByConfig", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_smartTokens", + "type": "address[]" + } + ], + "name": "getConvertersBySmartTokens", + "outputs": [ + { + "name": "", + "type": "address[]" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_type", + "type": "uint16" + }, + { + "name": "_reserveTokens", + "type": "address[]" + }, + { + "name": "_reserveWeights", + "type": "uint32[]" + }, + { + "name": "_converter", + "type": "address" + } + ], + "name": "setupConverter", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "onlyOwnerCanUpdateRegistry", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_value", + "type": "address" + } + ], + "name": "isConvertibleToken", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_value", + "type": "address" + } + ], + "name": "isSmartToken", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_convertibleToken", + "type": "address" + } + ], + "name": "getConvertibleTokenAnchorCount", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "updateRegistry", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_index", + "type": "uint256" + } + ], + "name": "getAnchor", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_type", + "type": "uint16" + }, + { + "name": "_name", + "type": "string" + }, + { + "name": "_symbol", + "type": "string" + }, + { + "name": "_decimals", + "type": "uint8" + }, + { + "name": "_maxConversionFee", + "type": "uint32" + }, + { + "name": "_reserveTokens", + "type": "address[]" + }, + { + "name": "_reserveWeights", + "type": "uint32[]" + } + ], + "name": "newConverter", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getConvertibleTokens", + "outputs": [ + { + "name": "", + "type": "address[]" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_convertibleToken", + "type": "address" + }, + { + "name": "_index", + "type": "uint256" + } + ], + "name": "getConvertibleTokenAnchor", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_anchors", + "type": "address[]" + } + ], + "name": "getConvertersByAnchors", + "outputs": [ + { + "name": "", + "type": "address[]" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "prevRegistry", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getConvertibleTokenCount", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_converter", + "type": "address" + } + ], + "name": "addConverter", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_convertibleToken", + "type": "address" + }, + { + "name": "_value", + "type": "address" + } + ], + "name": "isConvertibleTokenSmartToken", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "acceptOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getLiquidityPoolCount", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "registry", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getLiquidityPools", + "outputs": [ + { + "name": "", + "type": "address[]" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_index", + "type": "uint256" + } + ], + "name": "getConvertibleToken", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "owner", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_converter", + "type": "address" + } + ], + "name": "isSimilarLiquidityPoolRegistered", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_converter", + "type": "address" + } + ], + "name": "isConverterValid", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_converter", + "type": "address" + } + ], + "name": "removeConverter", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_index", + "type": "uint256" + } + ], + "name": "getSmartToken", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_convertibleToken", + "type": "address" + } + ], + "name": "getConvertibleTokenSmartTokenCount", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_index", + "type": "uint256" + } + ], + "name": "getLiquidityPool", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "restoreRegistry", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_convertibleToken", + "type": "address" + }, + { + "name": "_value", + "type": "address" + } + ], + "name": "isConvertibleTokenAnchor", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_reserveTokens", + "type": "address[]" + }, + { + "name": "_reserveWeights", + "type": "uint32[]" + } + ], + "name": "getLiquidityPoolByReserveConfig", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getAnchorCount", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "newOwner", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_convertibleToken", + "type": "address" + }, + { + "name": "_index", + "type": "uint256" + } + ], + "name": "getConvertibleTokenSmartToken", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_value", + "type": "address" + } + ], + "name": "isAnchor", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getSmartTokenCount", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_value", + "type": "address" + } + ], + "name": "isLiquidityPool", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getAnchors", + "outputs": [ + { + "name": "", + "type": "address[]" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_convertibleToken", + "type": "address" + } + ], + "name": "getConvertibleTokenSmartTokens", + "outputs": [ + { + "name": "", + "type": "address[]" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "name": "_registry", + "type": "address" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "_anchor", + "type": "address" + } + ], + "name": "ConverterAnchorAdded", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "_anchor", + "type": "address" + } + ], + "name": "ConverterAnchorRemoved", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "_liquidityPool", + "type": "address" + } + ], + "name": "LiquidityPoolAdded", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "_liquidityPool", + "type": "address" + } + ], + "name": "LiquidityPoolRemoved", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "_convertibleToken", + "type": "address" + }, + { + "indexed": true, + "name": "_smartToken", + "type": "address" + } + ], + "name": "ConvertibleTokenAdded", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "_convertibleToken", + "type": "address" + }, + { + "indexed": true, + "name": "_smartToken", + "type": "address" + } + ], + "name": "ConvertibleTokenRemoved", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "_smartToken", + "type": "address" + } + ], + "name": "SmartTokenAdded", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "_smartToken", + "type": "address" + } + ], + "name": "SmartTokenRemoved", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "_prevOwner", + "type": "address" + }, + { + "indexed": true, + "name": "_newOwner", + "type": "address" + } + ], + "name": "OwnerUpdate", + "type": "event" + } + ], + "devdoc": { + "methods": { + "acceptOwnership()": { + "details": "used by a new owner to accept an ownership transfer" + }, + "addConverter(address)": { + "details": "adds an existing converter to the registry can only be called by the owner", + "params": { + "_converter": "converter" + } + }, + "getAnchor(uint256)": { + "details": "returns the converter anchor at a given index", + "params": { + "_index": "index" + }, + "return": "anchor at the given index" + }, + "getAnchorCount()": { + "details": "returns the number of converter anchors in the registry", + "return": "number of anchors" + }, + "getAnchors()": { + "details": "returns the list of converter anchors in the registry", + "return": "list of anchors" + }, + "getConvertersByAnchors(address[])": { + "details": "returns a list of converters for a given list of anchors this is a utility function that can be used to reduce the number of calls to the contract", + "params": { + "_anchors": "list of converter anchors" + }, + "return": "list of converters" + }, + "getConvertersBySmartTokens(address[])": { + "details": "deprecated, backward compatibility, use `getConvertersByAnchors`" + }, + "getConvertibleToken(uint256)": { + "details": "returns the convertible token at a given index", + "params": { + "_index": "index" + }, + "return": "convertible token at the given index" + }, + "getConvertibleTokenAnchor(address,uint256)": { + "details": "returns the converter anchor associated with a given convertible token at a given index", + "params": { + "_convertibleToken": "convertible token", + "_index": "index" + }, + "return": "anchor associated with the given convertible token at the given index" + }, + "getConvertibleTokenAnchorCount(address)": { + "details": "returns the number of converter anchors associated with a given convertible token", + "params": { + "_convertibleToken": "convertible token" + }, + "return": "number of anchors associated with the given convertible token" + }, + "getConvertibleTokenAnchors(address)": { + "details": "returns the list of converter anchors associated with a given convertible token", + "params": { + "_convertibleToken": "convertible token" + }, + "return": "list of anchors associated with the given convertible token" + }, + "getConvertibleTokenCount()": { + "details": "returns the number of convertible tokens in the registry", + "return": "number of convertible tokens" + }, + "getConvertibleTokenSmartToken(address,uint256)": { + "details": "deprecated, backward compatibility, use `getConvertibleTokenAnchor`" + }, + "getConvertibleTokenSmartTokenCount(address)": { + "details": "deprecated, backward compatibility, use `getConvertibleTokenAnchorCount`" + }, + "getConvertibleTokenSmartTokens(address)": { + "details": "deprecated, backward compatibility, use `getConvertibleTokenAnchors`" + }, + "getConvertibleTokens()": { + "details": "returns the list of convertible tokens in the registry", + "return": "list of convertible tokens" + }, + "getLiquidityPool(uint256)": { + "details": "returns the liquidity pool at a given index", + "params": { + "_index": "index" + }, + "return": "liquidity pool at the given index" + }, + "getLiquidityPoolByConfig(uint16,address[],uint32[])": { + "details": "searches for a liquidity pool with specific configuration", + "params": { + "_reserveTokens": "reserve tokens", + "_reserveWeights": "reserve weights", + "_type": "converter type, see ConverterBase contract main doc" + }, + "return": "the liquidity pool, or zero if no such liquidity pool exists" + }, + "getLiquidityPoolByReserveConfig(address[],uint32[])": { + "details": "deprecated, backward compatibility, use `getLiquidityPoolByConfig`" + }, + "getLiquidityPoolCount()": { + "details": "returns the number of liquidity pools in the registry", + "return": "number of liquidity pools" + }, + "getLiquidityPools()": { + "details": "returns the list of liquidity pools in the registry", + "return": "list of liquidity pools" + }, + "getSmartToken(uint256)": { + "details": "deprecated, backward compatibility, use `getAnchor`" + }, + "getSmartTokenCount()": { + "details": "deprecated, backward compatibility, use `getAnchorCount`" + }, + "getSmartTokens()": { + "details": "deprecated, backward compatibility, use `getAnchors`" + }, + "isAnchor(address)": { + "details": "checks whether or not a given value is a converter anchor", + "params": { + "_value": "value" + }, + "return": "true if the given value is an anchor, false if not" + }, + "isConverterValid(address)": { + "details": "checks whether or not a given converter is valid", + "params": { + "_converter": "converter" + }, + "return": "true if the given converter is valid, false if not" + }, + "isConvertibleToken(address)": { + "details": "checks whether or not a given value is a convertible token", + "params": { + "_value": "value" + }, + "return": "true if the given value is a convertible token, false if not" + }, + "isConvertibleTokenAnchor(address,address)": { + "details": "checks whether or not a given value is a converter anchor of a given convertible token", + "params": { + "_convertibleToken": "convertible token", + "_value": "value" + }, + "return": "true if the given value is an anchor of the given convertible token, false if not" + }, + "isConvertibleTokenSmartToken(address,address)": { + "details": "deprecated, backward compatibility, use `isConvertibleTokenAnchor`" + }, + "isLiquidityPool(address)": { + "details": "checks whether or not a given value is a liquidity pool", + "params": { + "_value": "value" + }, + "return": "true if the given value is a liquidity pool, false if not" + }, + "isSimilarLiquidityPoolRegistered(address)": { + "details": "checks if a liquidity pool with given configuration is already registered", + "params": { + "_converter": "converter with specific configuration" + }, + "return": "if a liquidity pool with the same configuration is already registered" + }, + "isSmartToken(address)": { + "details": "deprecated, backward compatibility, use `isAnchor`" + }, + "newConverter(uint16,string,string,uint8,uint32,address[],uint32[])": { + "details": "creates a zero supply liquid token / empty liquidity pool and adds its converter to the registry", + "params": { + "_decimals": "token / pool decimals", + "_maxConversionFee": "maximum conversion-fee", + "_name": "token / pool name", + "_reserveTokens": "reserve tokens", + "_reserveWeights": "reserve weights", + "_symbol": "token / pool symbol", + "_type": "converter type, see ConverterBase contract main doc" + }, + "return": "new converter" + }, + "removeConverter(address)": { + "details": "removes a converter from the registry anyone can remove an existing converter from the registry, as long as the converter is invalid note that the owner can also remove valid converters", + "params": { + "_converter": "converter" + } + }, + "restoreRegistry()": { + "details": "restores the previous contract-registry" + }, + "restrictRegistryUpdate(bool)": { + "details": "restricts the permission to update the contract-registry", + "params": { + "_onlyOwnerCanUpdateRegistry": "indicates whether or not permission is restricted to owner only" + } + }, + "setupConverter(uint16,address[],uint32[],address)": { + "details": "completes the configuration for a converter", + "params": { + "_converter": "the converter previously created through newConverter method", + "_reserveTokens": "reserve tokens", + "_reserveWeights": "reserve weights", + "_type": "converter type, see ConverterBase contract main doc" + }, + "return": "converter" + }, + "transferOwnership(address)": { + "details": "allows transferring the contract ownership the new owner still needs to accept the transfer can only be called by the contract owner", + "params": { + "_newOwner": "new contract owner" + } + }, + "updateRegistry()": { + "details": "updates to the new contract-registry" + } + } + }, + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "60806040523480156200001157600080fd5b5060405160208062003573833981016040525160008054600160a060020a0319163317905580806200004c816401000000006200007e810204565b5060028054600160a060020a03909216600160a060020a031992831681179091556003805490921617905550620000f9565b600160a060020a0381161515620000f657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b50565b61346a80620001096000396000f3006080604052600436106102005763ffffffff60e060020a600035041663024c7ec7811461020557806304ceaf411461022157806311839064146102865780631d3fccd5146102a75780631f8e26201461035a578063295d2a21146103af5780632fe8a6ad146104515780633ab8857c1461047a5780634123ef601461049b57806349c5f32b146104bc57806349d10b64146104ef5780634c7df18f146105045780635a0a66181461051c5780635f1b50fe14610646578063603f51e41461065b578063610c0b051461067f57806361cd756e146106d457806369be4784146106e95780636ce1c4dc146106fe578063725b87861461071f57806379ba5097146107465780637a5f0ffd1461075b5780637b103999146107705780637f45c4c314610785578063865cf1941461079a5780638da5cb5b146107b25780638f1d0e1a146107c7578063954254f5146107e85780639e76a00714610809578063a109d2141461082a578063a43d5e9414610842578063a74498aa14610863578063b4a176d31461087b578063b4c4197a14610890578063c22b82f0146108b7578063d3182bed14610945578063d4ee1d901461095a578063d6c4b5b21461096f578063d8cced2a14610993578063e571049b146109b4578063e85455d7146109c9578063effb3c6e146109ea578063f2fde38b146109ff578063f4fb86c014610a20575b600080fd5b34801561021157600080fd5b5061021f6004351515610a41565b005b34801561022d57600080fd5b50610236610a89565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561027257818101518382015260200161025a565b505050509050019250505060405180910390f35b34801561029257600080fd5b50610236600160a060020a0360043516610a98565b3480156102b357600080fd5b5060408051602060046024803582810135848102808701860190975280865261033e96843561ffff1696369660449591949091019291829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750949750610b9c9650505050505050565b60408051600160a060020a039092168252519081900360200190f35b34801561036657600080fd5b506040805160206004803580820135838102808601850190965280855261023695369593946024949385019291829185019084908082843750949750610c8f9650505050505050565b3480156103bb57600080fd5b5060408051602060046024803582810135848102808701860190975280865261033e96843561ffff1696369660449591949091019291829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a99890198929750908201955093508392508501908490808284375094975050509235600160a060020a03169350610ca092505050565b34801561045d57600080fd5b50610466611161565b604080519115158252519081900360200190f35b34801561048657600080fd5b50610466600160a060020a0360043516611182565b3480156104a757600080fd5b50610466600160a060020a0360043516611227565b3480156104c857600080fd5b506104dd600160a060020a0360043516611232565b60408051918252519081900360200190f35b3480156104fb57600080fd5b5061021f6112a5565b34801561051057600080fd5b5061033e600435611512565b34801561052857600080fd5b5060408051602060046024803582810135601f810185900485028601850190965285855261033e95833561ffff1695369560449491939091019190819084018382808284375050604080516020601f89358b018035918201839004830284018301909452808352979a9998810197919650918201945092508291508401838280828437505060408051818801358901803560208181028481018201909552818452989b60ff8b35169b63ffffffff8b8d0135169b919a90995060609091019750929550908201935091829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a9989019892975090820195509350839250850190849080828437509497506115739650505050505050565b34801561065257600080fd5b506102366118fb565b34801561066757600080fd5b5061033e600160a060020a03600435166024356119e1565b34801561068b57600080fd5b506040805160206004803580820135838102808601850190965280855261023695369593946024949385019291829185019084908082843750949750611a8f9650505050505050565b3480156106e057600080fd5b5061033e611b85565b3480156106f557600080fd5b506104dd611b94565b34801561070a57600080fd5b5061021f600160a060020a0360043516611c1b565b34801561072b57600080fd5b50610466600160a060020a0360043581169060243516611c8e565b34801561075257600080fd5b5061021f611ca1565b34801561076757600080fd5b506104dd611d62565b34801561077c57600080fd5b5061033e611db8565b34801561079157600080fd5b50610236611dc7565b3480156107a657600080fd5b5061033e600435611e1d565b3480156107be57600080fd5b5061033e611e7e565b3480156107d357600080fd5b50610466600160a060020a0360043516611e8d565b3480156107f457600080fd5b50610466600160a060020a03600435166120d9565b34801561081557600080fd5b5061021f600160a060020a03600435166121e8565b34801561083657600080fd5b5061033e600435612254565b34801561084e57600080fd5b506104dd600160a060020a036004351661225f565b34801561086f57600080fd5b5061033e60043561226a565b34801561088757600080fd5b5061021f6122cb565b34801561089c57600080fd5b50610466600160a060020a0360043581169060243516612304565b3480156108c357600080fd5b506040805160206004803580820135838102808601850190965280855261033e95369593946024949385019291829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a99890198929750908201955093508392508501908490808284375094975061238b9650505050505050565b34801561095157600080fd5b506104dd612399565b34801561096657600080fd5b5061033e6123ef565b34801561097b57600080fd5b5061033e600160a060020a03600435166024356123fe565b34801561099f57600080fd5b50610466600160a060020a036004351661240a565b3480156109c057600080fd5b506104dd61247d565b3480156109d557600080fd5b50610466600160a060020a0360043516612487565b3480156109f657600080fd5b506102366124fa565b348015610a0b57600080fd5b5061021f600160a060020a0360043516612550565b348015610a2c57600080fd5b50610236600160a060020a03600435166125ed565b610a496125f8565b60038054911515740100000000000000000000000000000000000000000274ff000000000000000000000000000000000000000019909216919091179055565b6060610a936124fa565b905090565b6060610ab160008051602061341f83398151915261264a565b600160a060020a031663f4fb86c0836040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b158015610b0b57600080fd5b505af1158015610b1f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526020811015610b4857600080fd5b810190808051640100000000811115610b6057600080fd5b82016020810184811115610b7357600080fd5b8151856020820283011164010000000082111715610b9057600080fd5b50909695505050505050565b60006060600080600085518751148015610bb7575060018751115b15610c7f57610bc5876126b0565b9350600092505b8351831015610c7f578383815181101515610be357fe5b90602001906020020151915081600160a060020a0316638da5cb5b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610c2d57600080fd5b505af1158015610c41573d6000803e3d6000fd5b505050506040513d6020811015610c5757600080fd5b50519050610c6781898989612948565b15610c7457819450610c84565b600190920191610bcc565b600094505b505050509392505050565b6060610c9a82611a8f565b92915050565b600160a060020a038181166000908152600460205260408120549091829182918291163314610d3f576040805160e560020a62461bcd02815260206004820152603060248201527f6f6e6c7920746865206465706c6f796572206d61792066696e6973682074686560448201527f20636f6e76657274657220736574757000000000000000000000000000000000606482015290519081900360840190fd5b865186519093508314610d9c576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e56414c49445f5245534552564553000000000000000000000000604482015290519081900360640190fd5b6000610da9898989610b9c565b600160a060020a031614610e07576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f414c52454144595f4558495354530000000000000000000000000000604482015290519081900360640190fd5b84600160a060020a031663d3fb73b46040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610e4557600080fd5b505af1158015610e59573d6000803e3d6000fd5b505050506040513d6020811015610e6f57600080fd5b5051604080517f79ba50970000000000000000000000000000000000000000000000000000000081529051919350600160a060020a038416916379ba50979160048082019260009290919082900301818387803b158015610ecf57600080fd5b505af1158015610ee3573d6000803e3d6000fd5b5050505084600160a060020a03166379ba50976040518163ffffffff1660e060020a028152600401600060405180830381600087803b158015610f2557600080fd5b505af1158015610f39573d6000803e3d6000fd5b50505050600090505b8281101561100b5784600160a060020a0316636a49d2c48883815181101515610f6757fe5b906020019060200201518884815181101515610f7f57fe5b906020019060200201516040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a031681526020018263ffffffff1663ffffffff16815260200192505050600060405180830381600087803b158015610fe757600080fd5b505af1158015610ffb573d6000803e3d6000fd5b505060019092019150610f429050565b81600160a060020a031663f2fde38b866040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b15801561106657600080fd5b505af115801561107a573d6000803e3d6000fd5b5050505084600160a060020a031663cdc91c696040518163ffffffff1660e060020a028152600401600060405180830381600087803b1580156110bc57600080fd5b505af11580156110d0573d6000803e3d6000fd5b5050604080517ff2fde38b0000000000000000000000000000000000000000000000000000000081523360048201529051600160a060020a038916935063f2fde38b9250602480830192600092919082900301818387803b15801561113457600080fd5b505af1158015611148573d6000803e3d6000fd5b5050505061115585612ac1565b50929695505050505050565b60035474010000000000000000000000000000000000000000900460ff1681565b600061119b60008051602061341f83398151915261264a565b600160a060020a0316633ab8857c836040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b1580156111f557600080fd5b505af1158015611209573d6000803e3d6000fd5b505050506040513d602081101561121f57600080fd5b505192915050565b6000610c9a8261240a565b600061124b60008051602061341f83398151915261264a565b600160a060020a031663a43d5e94836040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b1580156111f557600080fd5b60008054600160a060020a03163314806112da575060035474010000000000000000000000000000000000000000900460ff16155b151561131e576040805160e560020a62461bcd02815260206004820152601160248201526000805160206133ff833981519152604482015290519081900360640190fd5b6113477f436f6e747261637452656769737472790000000000000000000000000000000061264a565b600254909150600160a060020a038083169116148015906113705750600160a060020a03811615155b15156113c6576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e56414c49445f5245474953545259000000000000000000000000604482015290519081900360640190fd5b604080517fbb34534c0000000000000000000000000000000000000000000000000000000081527f436f6e747261637452656769737472790000000000000000000000000000000060048201529051600091600160a060020a0384169163bb34534c9160248082019260209290919082900301818787803b15801561144a57600080fd5b505af115801561145e573d6000803e3d6000fd5b505050506040513d602081101561147457600080fd5b5051600160a060020a031614156114d5576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e56414c49445f5245474953545259000000000000000000000000604482015290519081900360640190fd5b6002805460038054600160a060020a0380841673ffffffffffffffffffffffffffffffffffffffff19928316179092559091169216919091179055565b600061152b60008051602061341f83398151915261264a565b600160a060020a031663a109d214836040518263ffffffff1660e060020a02815260040180828152602001915050602060405180830381600087803b1580156111f557600080fd5b6000806000806000865193508551841415156115d9576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e56414c49445f5245534552564553000000000000000000000000604482015290519081900360640190fd5b60006115e68d8989610b9c565b600160a060020a031614611644576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f414c52454144595f4558495354530000000000000000000000000000604482015290519081900360640190fd5b61166d7f436f6e766572746572466163746f72790000000000000000000000000000000061264a565b925082600160a060020a0316632e9ab7b38d8d8d8d6040518563ffffffff1660e060020a028152600401808561ffff1661ffff16815260200180602001806020018460ff1660ff168152602001838103835286818151815260200191508051906020019080838360005b838110156116ef5781810151838201526020016116d7565b50505050905090810190601f16801561171c5780820380516001836020036101000a031916815260200191505b50838103825285518152855160209182019187019080838360005b8381101561174f578181015183820152602001611737565b50505050905090810190601f16801561177c5780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600087803b15801561179f57600080fd5b505af11580156117b3573d6000803e3d6000fd5b505050506040513d60208110156117c957600080fd5b8101908080519060200190929190505050915082600160a060020a03166315f64b6a8d84600260009054906101000a9004600160a060020a03168c6040518563ffffffff1660e060020a028152600401808561ffff1661ffff16815260200184600160a060020a0316600160a060020a0316815260200183600160a060020a0316600160a060020a031681526020018263ffffffff1663ffffffff168152602001945050505050602060405180830381600087803b15801561188a57600080fd5b505af115801561189e573d6000803e3d6000fd5b505050506040513d60208110156118b457600080fd5b5051600160a060020a0381166000908152600460205260409020805473ffffffffffffffffffffffffffffffffffffffff1916331790559c9b505050505050505050505050565b606061191460008051602061341f83398151915261264a565b600160a060020a0316635f1b50fe6040518163ffffffff1660e060020a028152600401600060405180830381600087803b15801561195157600080fd5b505af1158015611965573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561198e57600080fd5b8101908080516401000000008111156119a657600080fd5b820160208101848111156119b957600080fd5b81518560208202830111640100000000821117156119d657600080fd5b509094505050505090565b60006119fa60008051602061341f83398151915261264a565b600160a060020a031663d6c4b5b284846040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b158015611a5c57600080fd5b505af1158015611a70573d6000803e3d6000fd5b505050506040513d6020811015611a8657600080fd5b50519392505050565b60608060008351604051908082528060200260200182016040528015611abf578160200160208202803883390190505b509150600090505b8351811015611b7e578381815181101515611ade57fe5b90602001906020020151600160a060020a0316638da5cb5b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015611b2557600080fd5b505af1158015611b39573d6000803e3d6000fd5b505050506040513d6020811015611b4f57600080fd5b50518251839083908110611b5f57fe5b600160a060020a03909216602092830290910190910152600101611ac7565b5092915050565b600354600160a060020a031681565b6000611bad60008051602061341f83398151915261264a565b600160a060020a03166369be47846040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015611bea57600080fd5b505af1158015611bfe573d6000803e3d6000fd5b505050506040513d6020811015611c1457600080fd5b5051905090565b611c236125f8565b611c2c816120d9565b1515611c82576040805160e560020a62461bcd02815260206004820152601560248201527f4552525f494e56414c49445f434f4e5645525445520000000000000000000000604482015290519081900360640190fd5b611c8b81612ac1565b50565b6000611c9a8383612304565b9392505050565b600154600160a060020a03163314611cf1576040805160e560020a62461bcd02815260206004820152601160248201526000805160206133ff833981519152604482015290519081900360640190fd5b60015460008054604051600160a060020a0393841693909116917f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91a3600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b6000611d7b60008051602061341f83398151915261264a565b600160a060020a0316637a5f0ffd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015611bea57600080fd5b600254600160a060020a031681565b6060611de060008051602061341f83398151915261264a565b600160a060020a0316637f45c4c36040518163ffffffff1660e060020a028152600401600060405180830381600087803b15801561195157600080fd5b6000611e3660008051602061341f83398151915261264a565b600160a060020a031663865cf194836040518263ffffffff1660e060020a02815260040180828152602001915050602060405180830381600087803b1580156111f557600080fd5b600054600160a060020a031681565b60008060608060008086600160a060020a03166371f52bf36040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015611ed457600080fd5b505af1158015611ee8573d6000803e3d6000fd5b505050506040513d6020811015611efe57600080fd5b50516040805161ffff90921680835260208181028401019091529550858015611f31578160200160208202803883390190505b50935084604051908082528060200260200182016040528015611f5e578160200160208202803883390190505b509250600091505b848210156120445786600160a060020a03166319b64015836040518263ffffffff1660e060020a02815260040180828152602001915050602060405180830381600087803b158015611fb757600080fd5b505af1158015611fcb573d6000803e3d6000fd5b505050506040513d6020811015611fe157600080fd5b505184519091508190859084908110611ff657fe5b600160a060020a039092166020928302909101909101526120178782612ca2565b838381518110151561202557fe5b63ffffffff909216602092830290910190910152600190910190611f66565b6000600160a060020a03166120c388600160a060020a0316633e8ff43f6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561209057600080fd5b505af11580156120a4573d6000803e3d6000fd5b505050506040513d60208110156120ba57600080fd5b50518686610b9c565b600160a060020a03161415979650505050505050565b600081600160a060020a031682600160a060020a031663fc0c546a6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561212357600080fd5b505af1158015612137573d6000803e3d6000fd5b505050506040513d602081101561214d57600080fd5b5051604080517f8da5cb5b0000000000000000000000000000000000000000000000000000000081529051600160a060020a0390921691638da5cb5b916004808201926020929091908290030181600087803b1580156121ac57600080fd5b505af11580156121c0573d6000803e3d6000fd5b505050506040513d60208110156121d657600080fd5b5051600160a060020a03161492915050565b600054600160a060020a03163314806122075750612205816120d9565b155b151561224b576040805160e560020a62461bcd02815260206004820152601160248201526000805160206133ff833981519152604482015290519081900360640190fd5b611c8b81612d73565b6000610c9a82611512565b6000610c9a82611232565b600061228360008051602061341f83398151915261264a565b600160a060020a031663a74498aa836040518263ffffffff1660e060020a02815260040180828152602001915050602060405180830381600087803b1580156111f557600080fd5b6122d36125f8565b6003546002805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055565b600061231d60008051602061341f83398151915261264a565b604080517f725b8786000000000000000000000000000000000000000000000000000000008152600160a060020a03868116600483015285811660248301529151929091169163725b8786916044808201926020929091908290030181600087803b158015611a5c57600080fd5b6000611c9a60018484610b9c565b60006123b260008051602061341f83398151915261264a565b600160a060020a031663e571049b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015611bea57600080fd5b600154600160a060020a031681565b6000611c9a83836119e1565b600061242360008051602061341f83398151915261264a565b600160a060020a0316634123ef60836040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b1580156111f557600080fd5b6000610a93612399565b60006124a060008051602061341f83398151915261264a565b600160a060020a031663e85455d7836040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b1580156111f557600080fd5b606061251360008051602061341f83398151915261264a565b600160a060020a03166304ceaf416040518163ffffffff1660e060020a028152600401600060405180830381600087803b15801561195157600080fd5b6125586125f8565b600054600160a060020a03828116911614156125be576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f53414d455f4f574e4552000000000000000000000000000000000000604482015290519081900360640190fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6060610c9a82610a98565b600054600160a060020a03163314612648576040805160e560020a62461bcd02815260206004820152601160248201526000805160206133ff833981519152604482015290519081900360640190fd5b565b600254604080517fbb34534c000000000000000000000000000000000000000000000000000000008152600481018490529051600092600160a060020a03169163bb34534c91602480830192602092919082900301818787803b1580156111f557600080fd5b606060008060008060006126d160008051602061341f83398151915261264a565b945084600160a060020a031663a43d5e948860008151811015156126f157fe5b906020019060200201516040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b15801561274657600080fd5b505af115801561275a573d6000803e3d6000fd5b505050506040513d602081101561277057600080fd5b5051935060009250600191505b86518210156128405784600160a060020a031663a43d5e9488848151811015156127a357fe5b906020019060200201516040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b1580156127f857600080fd5b505af115801561280c573d6000803e3d6000fd5b505050506040513d602081101561282257600080fd5b5051905080841115612835578093508192505b60019091019061277d565b84600160a060020a031663f4fb86c0888581518110151561285d57fe5b906020019060200201516040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b1580156128b257600080fd5b505af11580156128c6573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260208110156128ef57600080fd5b81019080805164010000000081111561290757600080fd5b8201602081018481111561291a57600080fd5b815185602082028301116401000000008211171561293757600080fd5b50909b9a5050505050505050505050565b60008085600160a060020a0316633e8ff43f6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561298957600080fd5b505af115801561299d573d6000803e3d6000fd5b505050506040513d60208110156129b357600080fd5b505161ffff8681169116146129cb5760009150612ab8565b85600160a060020a03166371f52bf36040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015612a0957600080fd5b505af1158015612a1d573d6000803e3d6000fd5b505050506040513d6020811015612a3357600080fd5b5051845161ffff90911614612a4b5760009150612ab8565b5060005b8351811015612ab357612a79868583815181101515612a6a57fe5b90602001906020020151612ca2565b63ffffffff168382815181101515612a8d57fe5b6020908102909101015163ffffffff1614612aab5760009150612ab8565b600101612a4f565b600191505b50949350505050565b600080600080612ade60008051602061341f83398151915261264a565b935084600160a060020a031663fc0c546a6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015612b1e57600080fd5b505af1158015612b32573d6000803e3d6000fd5b505050506040513d6020811015612b4857600080fd5b5051604080517f71f52bf30000000000000000000000000000000000000000000000000000000081529051919450600160a060020a038716916371f52bf3916004808201926020929091908290030181600087803b158015612ba957600080fd5b505af1158015612bbd573d6000803e3d6000fd5b505050506040513d6020811015612bd357600080fd5b505161ffff169150612be58484612f4d565b6001821115612bfd57612bf8848461302c565b612c08565b612c088484856130d7565b5060005b81811015612c9b57612c938486600160a060020a03166319b64015846040518263ffffffff1660e060020a02815260040180828152602001915050602060405180830381600087803b158015612c6157600080fd5b505af1158015612c75573d6000803e3d6000fd5b505050506040513d6020811015612c8b57600080fd5b5051856130d7565b600101612c0c565b5050505050565b6000612cac6133e3565b604080517f636f6e6e6563746f72732861646472657373290000000000000000000000000081528151908190036013018120600160a060020a03861660248084019190915283518084039091018152604490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090921691909117815281519192918491885afa801515612d6657600080fd5b5050602001519392505050565b600080600080612d9060008051602061341f83398151915261264a565b935084600160a060020a031663fc0c546a6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015612dd057600080fd5b505af1158015612de4573d6000803e3d6000fd5b505050506040513d6020811015612dfa57600080fd5b5051604080517f71f52bf30000000000000000000000000000000000000000000000000000000081529051919450600160a060020a038716916371f52bf3916004808201926020929091908290030181600087803b158015612e5b57600080fd5b505af1158015612e6f573d6000803e3d6000fd5b505050506040513d6020811015612e8557600080fd5b505161ffff169150612e978484613198565b6001821115612eaf57612eaa8484613277565b612eba565b612eba848485613322565b5060005b81811015612c9b57612f458486600160a060020a03166319b64015846040518263ffffffff1660e060020a02815260040180828152602001915050602060405180830381600087803b158015612f1357600080fd5b505af1158015612f27573d6000803e3d6000fd5b505050506040513d6020811015612f3d57600080fd5b505185613322565b600101612ebe565b81600160a060020a0316638de6c3eb826040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b158015612fa857600080fd5b505af1158015612fbc573d6000803e3d6000fd5b5050604051600160a060020a03841692507fc0a6d303d67b7ed9fa0abae1c48878df32acc0e7ca4334c7dad2bceeee5956fd9150600090a2604051600160a060020a038216907f88881feecdf61136ac4bdb1f681f2f3746a82910263d21ffea94750d2a78c0ab90600090a25050565b81600160a060020a031663ee6a934c826040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b15801561308757600080fd5b505af115801561309b573d6000803e3d6000fd5b5050604051600160a060020a03841692507fb893f883ef734b712208a877459424ee509832c57e0461fb1ac99ed4d42f2d899150600090a25050565b604080517f36900c11000000000000000000000000000000000000000000000000000000008152600160a060020a03848116600483015283811660248301529151918516916336900c119160448082019260009290919082900301818387803b15801561314357600080fd5b505af1158015613157573d6000803e3d6000fd5b5050604051600160a060020a038085169350851691507ff2e7cf6d6ed3f77039511409a43d4fa5108f09ab71d72b014380364c910233a590600090a3505050565b81600160a060020a031663ceb9838c826040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b1580156131f357600080fd5b505af1158015613207573d6000803e3d6000fd5b5050604051600160a060020a03841692507fbfdf1baaa7e4871111360083540f067050014f651c9e4610a2a4a4bdf8bfab5d9150600090a2604051600160a060020a038216907f2aff63790c7da80d1c50ede92d23bc841c384837735c92c184331f3d7b91e5bf90600090a25050565b81600160a060020a031663ae22107f826040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b1580156132d257600080fd5b505af11580156132e6573d6000803e3d6000fd5b5050604051600160a060020a03841692507f59c3fbcae88f30e9b0e35c132a7f68c53231dffa4722f197c7ecb0ee013eee609150600090a25050565b604080517ffba8f031000000000000000000000000000000000000000000000000000000008152600160a060020a038481166004830152838116602483015291519185169163fba8f0319160448082019260009290919082900301818387803b15801561338e57600080fd5b505af11580156133a2573d6000803e3d6000fd5b5050604051600160a060020a038085169350851691507f9430ad6ff45d6c3e126c7711bf0036bd9bc6b202fa19628abd88e59cf43ced4390600090a3505050565b6040805180820182529060029082908038833950919291505056004552525f4143434553535f44454e494544000000000000000000000000000000536f7672796e53776170436f6e76657274657252656769737472794461746100a165627a7a72305820a3ff8d616a609f2f0d2014995d930b7884b0bb7a8f1a97baf9787a10eed69c8a0029", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP1 PUSH3 0x3573 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 MSTORE MLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND CALLER OR SWAP1 SSTORE DUP1 DUP1 PUSH3 0x4C DUP2 PUSH5 0x100000000 PUSH3 0x7E DUP2 MUL DIV JUMP JUMPDEST POP PUSH1 0x2 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT SWAP3 DUP4 AND DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x3 DUP1 SLOAD SWAP1 SWAP3 AND OR SWAP1 SSTORE POP PUSH3 0xF9 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH3 0xF6 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x346A DUP1 PUSH3 0x109 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x200 JUMPI PUSH4 0xFFFFFFFF PUSH1 0xE0 PUSH1 0x2 EXP PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x24C7EC7 DUP2 EQ PUSH2 0x205 JUMPI DUP1 PUSH4 0x4CEAF41 EQ PUSH2 0x221 JUMPI DUP1 PUSH4 0x11839064 EQ PUSH2 0x286 JUMPI DUP1 PUSH4 0x1D3FCCD5 EQ PUSH2 0x2A7 JUMPI DUP1 PUSH4 0x1F8E2620 EQ PUSH2 0x35A JUMPI DUP1 PUSH4 0x295D2A21 EQ PUSH2 0x3AF JUMPI DUP1 PUSH4 0x2FE8A6AD EQ PUSH2 0x451 JUMPI DUP1 PUSH4 0x3AB8857C EQ PUSH2 0x47A JUMPI DUP1 PUSH4 0x4123EF60 EQ PUSH2 0x49B JUMPI DUP1 PUSH4 0x49C5F32B EQ PUSH2 0x4BC JUMPI DUP1 PUSH4 0x49D10B64 EQ PUSH2 0x4EF JUMPI DUP1 PUSH4 0x4C7DF18F EQ PUSH2 0x504 JUMPI DUP1 PUSH4 0x5A0A6618 EQ PUSH2 0x51C JUMPI DUP1 PUSH4 0x5F1B50FE EQ PUSH2 0x646 JUMPI DUP1 PUSH4 0x603F51E4 EQ PUSH2 0x65B JUMPI DUP1 PUSH4 0x610C0B05 EQ PUSH2 0x67F JUMPI DUP1 PUSH4 0x61CD756E EQ PUSH2 0x6D4 JUMPI DUP1 PUSH4 0x69BE4784 EQ PUSH2 0x6E9 JUMPI DUP1 PUSH4 0x6CE1C4DC EQ PUSH2 0x6FE JUMPI DUP1 PUSH4 0x725B8786 EQ PUSH2 0x71F JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x746 JUMPI DUP1 PUSH4 0x7A5F0FFD EQ PUSH2 0x75B JUMPI DUP1 PUSH4 0x7B103999 EQ PUSH2 0x770 JUMPI DUP1 PUSH4 0x7F45C4C3 EQ PUSH2 0x785 JUMPI DUP1 PUSH4 0x865CF194 EQ PUSH2 0x79A JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x7B2 JUMPI DUP1 PUSH4 0x8F1D0E1A EQ PUSH2 0x7C7 JUMPI DUP1 PUSH4 0x954254F5 EQ PUSH2 0x7E8 JUMPI DUP1 PUSH4 0x9E76A007 EQ PUSH2 0x809 JUMPI DUP1 PUSH4 0xA109D214 EQ PUSH2 0x82A JUMPI DUP1 PUSH4 0xA43D5E94 EQ PUSH2 0x842 JUMPI DUP1 PUSH4 0xA74498AA EQ PUSH2 0x863 JUMPI DUP1 PUSH4 0xB4A176D3 EQ PUSH2 0x87B JUMPI DUP1 PUSH4 0xB4C4197A EQ PUSH2 0x890 JUMPI DUP1 PUSH4 0xC22B82F0 EQ PUSH2 0x8B7 JUMPI DUP1 PUSH4 0xD3182BED EQ PUSH2 0x945 JUMPI DUP1 PUSH4 0xD4EE1D90 EQ PUSH2 0x95A JUMPI DUP1 PUSH4 0xD6C4B5B2 EQ PUSH2 0x96F JUMPI DUP1 PUSH4 0xD8CCED2A EQ PUSH2 0x993 JUMPI DUP1 PUSH4 0xE571049B EQ PUSH2 0x9B4 JUMPI DUP1 PUSH4 0xE85455D7 EQ PUSH2 0x9C9 JUMPI DUP1 PUSH4 0xEFFB3C6E EQ PUSH2 0x9EA JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x9FF JUMPI DUP1 PUSH4 0xF4FB86C0 EQ PUSH2 0xA20 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x211 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x21F PUSH1 0x4 CALLDATALOAD ISZERO ISZERO PUSH2 0xA41 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x22D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x236 PUSH2 0xA89 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP4 MLOAD DUP2 DUP4 ADD MSTORE DUP4 MLOAD SWAP2 SWAP3 DUP4 SWAP3 SWAP1 DUP4 ADD SWAP2 DUP6 DUP2 ADD SWAP2 MUL DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x272 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x25A JUMP JUMPDEST POP POP POP POP SWAP1 POP ADD SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x292 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x236 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0xA98 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2B3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 PUSH1 0x24 DUP1 CALLDATALOAD DUP3 DUP2 ADD CALLDATALOAD DUP5 DUP2 MUL DUP1 DUP8 ADD DUP7 ADD SWAP1 SWAP8 MSTORE DUP1 DUP7 MSTORE PUSH2 0x33E SWAP7 DUP5 CALLDATALOAD PUSH2 0xFFFF AND SWAP7 CALLDATASIZE SWAP7 PUSH1 0x44 SWAP6 SWAP2 SWAP5 SWAP1 SWAP2 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP POP PUSH1 0x40 DUP1 MLOAD DUP8 CALLDATALOAD DUP10 ADD DUP1 CALLDATALOAD PUSH1 0x20 DUP2 DUP2 MUL DUP5 DUP2 ADD DUP3 ADD SWAP1 SWAP6 MSTORE DUP2 DUP5 MSTORE SWAP9 SWAP12 SWAP11 SWAP10 DUP10 ADD SWAP9 SWAP3 SWAP8 POP SWAP1 DUP3 ADD SWAP6 POP SWAP4 POP DUP4 SWAP3 POP DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP PUSH2 0xB9C SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x366 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x236 SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP PUSH2 0xC8F SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3BB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 PUSH1 0x24 DUP1 CALLDATALOAD DUP3 DUP2 ADD CALLDATALOAD DUP5 DUP2 MUL DUP1 DUP8 ADD DUP7 ADD SWAP1 SWAP8 MSTORE DUP1 DUP7 MSTORE PUSH2 0x33E SWAP7 DUP5 CALLDATALOAD PUSH2 0xFFFF AND SWAP7 CALLDATASIZE SWAP7 PUSH1 0x44 SWAP6 SWAP2 SWAP5 SWAP1 SWAP2 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP POP PUSH1 0x40 DUP1 MLOAD DUP8 CALLDATALOAD DUP10 ADD DUP1 CALLDATALOAD PUSH1 0x20 DUP2 DUP2 MUL DUP5 DUP2 ADD DUP3 ADD SWAP1 SWAP6 MSTORE DUP2 DUP5 MSTORE SWAP9 SWAP12 SWAP11 SWAP10 DUP10 ADD SWAP9 SWAP3 SWAP8 POP SWAP1 DUP3 ADD SWAP6 POP SWAP4 POP DUP4 SWAP3 POP DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP POP POP SWAP3 CALLDATALOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP4 POP PUSH2 0xCA0 SWAP3 POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x45D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x466 PUSH2 0x1161 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x486 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x466 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x1182 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4A7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x466 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x1227 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4C8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4DD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x1232 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4FB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x21F PUSH2 0x12A5 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x510 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x33E PUSH1 0x4 CALLDATALOAD PUSH2 0x1512 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x528 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 PUSH1 0x24 DUP1 CALLDATALOAD DUP3 DUP2 ADD CALLDATALOAD PUSH1 0x1F DUP2 ADD DUP6 SWAP1 DIV DUP6 MUL DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP6 DUP6 MSTORE PUSH2 0x33E SWAP6 DUP4 CALLDATALOAD PUSH2 0xFFFF AND SWAP6 CALLDATASIZE SWAP6 PUSH1 0x44 SWAP5 SWAP2 SWAP4 SWAP1 SWAP2 ADD SWAP2 SWAP1 DUP2 SWAP1 DUP5 ADD DUP4 DUP3 DUP1 DUP3 DUP5 CALLDATACOPY POP POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x1F DUP10 CALLDATALOAD DUP12 ADD DUP1 CALLDATALOAD SWAP2 DUP3 ADD DUP4 SWAP1 DIV DUP4 MUL DUP5 ADD DUP4 ADD SWAP1 SWAP5 MSTORE DUP1 DUP4 MSTORE SWAP8 SWAP11 SWAP10 SWAP9 DUP2 ADD SWAP8 SWAP2 SWAP7 POP SWAP2 DUP3 ADD SWAP5 POP SWAP3 POP DUP3 SWAP2 POP DUP5 ADD DUP4 DUP3 DUP1 DUP3 DUP5 CALLDATACOPY POP POP PUSH1 0x40 DUP1 MLOAD DUP2 DUP9 ADD CALLDATALOAD DUP10 ADD DUP1 CALLDATALOAD PUSH1 0x20 DUP2 DUP2 MUL DUP5 DUP2 ADD DUP3 ADD SWAP1 SWAP6 MSTORE DUP2 DUP5 MSTORE SWAP9 SWAP12 PUSH1 0xFF DUP12 CALLDATALOAD AND SWAP12 PUSH4 0xFFFFFFFF DUP12 DUP14 ADD CALLDATALOAD AND SWAP12 SWAP2 SWAP11 SWAP1 SWAP10 POP PUSH1 0x60 SWAP1 SWAP2 ADD SWAP8 POP SWAP3 SWAP6 POP SWAP1 DUP3 ADD SWAP4 POP SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP POP PUSH1 0x40 DUP1 MLOAD DUP8 CALLDATALOAD DUP10 ADD DUP1 CALLDATALOAD PUSH1 0x20 DUP2 DUP2 MUL DUP5 DUP2 ADD DUP3 ADD SWAP1 SWAP6 MSTORE DUP2 DUP5 MSTORE SWAP9 SWAP12 SWAP11 SWAP10 DUP10 ADD SWAP9 SWAP3 SWAP8 POP SWAP1 DUP3 ADD SWAP6 POP SWAP4 POP DUP4 SWAP3 POP DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP PUSH2 0x1573 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x652 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x236 PUSH2 0x18FB JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x667 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x33E PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x19E1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x68B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x236 SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP PUSH2 0x1A8F SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6E0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x33E PUSH2 0x1B85 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4DD PUSH2 0x1B94 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x70A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x21F PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x1C1B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x72B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x466 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH2 0x1C8E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x752 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x21F PUSH2 0x1CA1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x767 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4DD PUSH2 0x1D62 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x77C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x33E PUSH2 0x1DB8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x791 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x236 PUSH2 0x1DC7 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7A6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x33E PUSH1 0x4 CALLDATALOAD PUSH2 0x1E1D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7BE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x33E PUSH2 0x1E7E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7D3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x466 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x1E8D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7F4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x466 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x20D9 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x815 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x21F PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x21E8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x836 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x33E PUSH1 0x4 CALLDATALOAD PUSH2 0x2254 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x84E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4DD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x225F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x86F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x33E PUSH1 0x4 CALLDATALOAD PUSH2 0x226A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x887 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x21F PUSH2 0x22CB JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x89C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x466 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH2 0x2304 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8C3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x33E SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP POP PUSH1 0x40 DUP1 MLOAD DUP8 CALLDATALOAD DUP10 ADD DUP1 CALLDATALOAD PUSH1 0x20 DUP2 DUP2 MUL DUP5 DUP2 ADD DUP3 ADD SWAP1 SWAP6 MSTORE DUP2 DUP5 MSTORE SWAP9 SWAP12 SWAP11 SWAP10 DUP10 ADD SWAP9 SWAP3 SWAP8 POP SWAP1 DUP3 ADD SWAP6 POP SWAP4 POP DUP4 SWAP3 POP DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP PUSH2 0x238B SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x951 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4DD PUSH2 0x2399 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x966 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x33E PUSH2 0x23EF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x97B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x33E PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x23FE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x99F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x466 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x240A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9C0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4DD PUSH2 0x247D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9D5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x466 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x2487 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9F6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x236 PUSH2 0x24FA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA0B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x21F PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x2550 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA2C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x236 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x25ED JUMP JUMPDEST PUSH2 0xA49 PUSH2 0x25F8 JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD SWAP2 ISZERO ISZERO PUSH21 0x10000000000000000000000000000000000000000 MUL PUSH21 0xFF0000000000000000000000000000000000000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x60 PUSH2 0xA93 PUSH2 0x24FA JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH2 0xAB1 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x341F DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x264A JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xF4FB86C0 DUP4 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xB0B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xB1F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xB48 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 MLOAD PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0xB60 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD PUSH1 0x20 DUP2 ADD DUP5 DUP2 GT ISZERO PUSH2 0xB73 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP6 PUSH1 0x20 DUP3 MUL DUP4 ADD GT PUSH5 0x100000000 DUP3 GT OR ISZERO PUSH2 0xB90 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP SWAP1 SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 MLOAD DUP8 MLOAD EQ DUP1 ISZERO PUSH2 0xBB7 JUMPI POP PUSH1 0x1 DUP8 MLOAD GT JUMPDEST ISZERO PUSH2 0xC7F JUMPI PUSH2 0xBC5 DUP8 PUSH2 0x26B0 JUMP JUMPDEST SWAP4 POP PUSH1 0x0 SWAP3 POP JUMPDEST DUP4 MLOAD DUP4 LT ISZERO PUSH2 0xC7F JUMPI DUP4 DUP4 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xBE3 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD SWAP2 POP DUP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x8DA5CB5B PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC2D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xC41 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xC57 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 POP PUSH2 0xC67 DUP2 DUP10 DUP10 DUP10 PUSH2 0x2948 JUMP JUMPDEST ISZERO PUSH2 0xC74 JUMPI DUP2 SWAP5 POP PUSH2 0xC84 JUMP JUMPDEST PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 PUSH2 0xBCC JUMP JUMPDEST PUSH1 0x0 SWAP5 POP JUMPDEST POP POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0xC9A DUP3 PUSH2 0x1A8F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD SWAP1 SWAP2 DUP3 SWAP2 DUP3 SWAP2 DUP3 SWAP2 AND CALLER EQ PUSH2 0xD3F JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x30 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x6F6E6C7920746865206465706C6F796572206D61792066696E69736820746865 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x20636F6E76657274657220736574757000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x84 ADD SWAP1 REVERT JUMPDEST DUP7 MLOAD DUP7 MLOAD SWAP1 SWAP4 POP DUP4 EQ PUSH2 0xD9C JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245534552564553000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xDA9 DUP10 DUP10 DUP10 PUSH2 0xB9C JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ PUSH2 0xE07 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F414C52454144595F4558495354530000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xD3FB73B4 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xE45 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xE59 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xE6F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x79BA509700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP4 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP2 PUSH4 0x79BA5097 SWAP2 PUSH1 0x4 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xECF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xEE3 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x79BA5097 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xF25 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xF39 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x0 SWAP1 POP JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x100B JUMPI DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x6A49D2C4 DUP9 DUP4 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xF67 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD DUP9 DUP5 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xF7F JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 PUSH4 0xFFFFFFFF AND PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xFE7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xFFB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 POP PUSH2 0xF42 SWAP1 POP JUMP JUMPDEST DUP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xF2FDE38B DUP7 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1066 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x107A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xCDC91C69 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x10BC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x10D0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 DUP1 MLOAD PUSH32 0xF2FDE38B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP10 AND SWAP4 POP PUSH4 0xF2FDE38B SWAP3 POP PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1134 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1148 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x1155 DUP6 PUSH2 0x2AC1 JUMP JUMPDEST POP SWAP3 SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x119B PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x341F DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x264A JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x3AB8857C DUP4 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x11F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1209 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x121F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xC9A DUP3 PUSH2 0x240A JUMP JUMPDEST PUSH1 0x0 PUSH2 0x124B PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x341F DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x264A JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xA43D5E94 DUP4 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x11F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ DUP1 PUSH2 0x12DA JUMPI POP PUSH1 0x3 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x131E JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x33FF DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x1347 PUSH32 0x436F6E7472616374526567697374727900000000000000000000000000000000 PUSH2 0x264A JUMP JUMPDEST PUSH1 0x2 SLOAD SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP4 AND SWAP2 AND EQ DUP1 ISZERO SWAP1 PUSH2 0x1370 JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x13C6 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245474953545259000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0xBB34534C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH32 0x436F6E7472616374526567697374727900000000000000000000000000000000 PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP2 PUSH4 0xBB34534C SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x144A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x145E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1474 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ ISZERO PUSH2 0x14D5 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245474953545259000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP5 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP3 DUP4 AND OR SWAP1 SWAP3 SSTORE SWAP1 SWAP2 AND SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH2 0x152B PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x341F DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x264A JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xA109D214 DUP4 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x11F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP7 MLOAD SWAP4 POP DUP6 MLOAD DUP5 EQ ISZERO ISZERO PUSH2 0x15D9 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245534552564553000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x15E6 DUP14 DUP10 DUP10 PUSH2 0xB9C JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ PUSH2 0x1644 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F414C52454144595F4558495354530000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x166D PUSH32 0x436F6E766572746572466163746F727900000000000000000000000000000000 PUSH2 0x264A JUMP JUMPDEST SWAP3 POP DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x2E9AB7B3 DUP14 DUP14 DUP14 DUP14 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP6 PUSH2 0xFFFF AND PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP5 PUSH1 0xFF AND PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 SUB DUP4 MSTORE DUP7 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x16EF JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x16D7 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x171C JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP DUP4 DUP2 SUB DUP3 MSTORE DUP6 MLOAD DUP2 MSTORE DUP6 MLOAD PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 DUP8 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x174F JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x1737 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x177C JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP7 POP POP POP POP POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x179F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x17B3 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x17C9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP SWAP2 POP DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x15F64B6A DUP14 DUP5 PUSH1 0x2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP13 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP6 PUSH2 0xFFFF AND PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 PUSH4 0xFFFFFFFF AND PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP5 POP POP POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x188A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x189E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x18B4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND CALLER OR SWAP1 SSTORE SWAP13 SWAP12 POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x1914 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x341F DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x264A JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x5F1B50FE PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1951 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1965 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x198E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 MLOAD PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x19A6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD PUSH1 0x20 DUP2 ADD DUP5 DUP2 GT ISZERO PUSH2 0x19B9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP6 PUSH1 0x20 DUP3 MUL DUP4 ADD GT PUSH5 0x100000000 DUP3 GT OR ISZERO PUSH2 0x19D6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP SWAP1 SWAP5 POP POP POP POP POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x19FA PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x341F DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x264A JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xD6C4B5B2 DUP5 DUP5 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1A5C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1A70 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1A86 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP1 PUSH1 0x0 DUP4 MLOAD PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x1ABF JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CODESIZE DUP4 CODECOPY ADD SWAP1 POP JUMPDEST POP SWAP2 POP PUSH1 0x0 SWAP1 POP JUMPDEST DUP4 MLOAD DUP2 LT ISZERO PUSH2 0x1B7E JUMPI DUP4 DUP2 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x1ADE JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x8DA5CB5B PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1B25 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1B39 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1B4F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD DUP3 MLOAD DUP4 SWAP1 DUP4 SWAP1 DUP2 LT PUSH2 0x1B5F JUMPI INVALID JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND PUSH1 0x20 SWAP3 DUP4 MUL SWAP1 SWAP2 ADD SWAP1 SWAP2 ADD MSTORE PUSH1 0x1 ADD PUSH2 0x1AC7 JUMP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1BAD PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x341F DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x264A JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x69BE4784 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1BEA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1BFE JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1C14 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x1C23 PUSH2 0x25F8 JUMP JUMPDEST PUSH2 0x1C2C DUP2 PUSH2 0x20D9 JUMP JUMPDEST ISZERO ISZERO PUSH2 0x1C82 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F434F4E5645525445520000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x1C8B DUP2 PUSH2 0x2AC1 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1C9A DUP4 DUP4 PUSH2 0x2304 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x1CF1 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x33FF DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND SWAP4 SWAP1 SWAP2 AND SWAP2 PUSH32 0x343765429AEA5A34B3FF6A3785A98A5ABB2597ACA87BFBB58632C173D585373A SWAP2 LOG3 PUSH1 0x1 DUP1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND OR SWAP1 SWAP2 SSTORE AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1D7B PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x341F DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x264A JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x7A5F0FFD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1BEA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x60 PUSH2 0x1DE0 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x341F DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x264A JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x7F45C4C3 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1951 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1E36 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x341F DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x264A JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x865CF194 DUP4 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x11F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x60 DUP1 PUSH1 0x0 DUP1 DUP7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x71F52BF3 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1ED4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1EE8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1EFE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH2 0xFFFF SWAP1 SWAP3 AND DUP1 DUP4 MSTORE PUSH1 0x20 DUP2 DUP2 MUL DUP5 ADD ADD SWAP1 SWAP2 MSTORE SWAP6 POP DUP6 DUP1 ISZERO PUSH2 0x1F31 JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CODESIZE DUP4 CODECOPY ADD SWAP1 POP JUMPDEST POP SWAP4 POP DUP5 PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x1F5E JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CODESIZE DUP4 CODECOPY ADD SWAP1 POP JUMPDEST POP SWAP3 POP PUSH1 0x0 SWAP2 POP JUMPDEST DUP5 DUP3 LT ISZERO PUSH2 0x2044 JUMPI DUP7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x19B64015 DUP4 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1FB7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1FCB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1FE1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD DUP5 MLOAD SWAP1 SWAP2 POP DUP2 SWAP1 DUP6 SWAP1 DUP5 SWAP1 DUP2 LT PUSH2 0x1FF6 JUMPI INVALID JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND PUSH1 0x20 SWAP3 DUP4 MUL SWAP1 SWAP2 ADD SWAP1 SWAP2 ADD MSTORE PUSH2 0x2017 DUP8 DUP3 PUSH2 0x2CA2 JUMP JUMPDEST DUP4 DUP4 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x2025 JUMPI INVALID JUMPDEST PUSH4 0xFFFFFFFF SWAP1 SWAP3 AND PUSH1 0x20 SWAP3 DUP4 MUL SWAP1 SWAP2 ADD SWAP1 SWAP2 ADD MSTORE PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x1F66 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x20C3 DUP9 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x3E8FF43F PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2090 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x20A4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x20BA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD DUP7 DUP7 PUSH2 0xB9C JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ ISZERO SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xFC0C546A PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2123 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2137 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x214D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x8DA5CB5B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP2 PUSH4 0x8DA5CB5B SWAP2 PUSH1 0x4 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x21AC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x21C0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x21D6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ DUP1 PUSH2 0x2207 JUMPI POP PUSH2 0x2205 DUP2 PUSH2 0x20D9 JUMP JUMPDEST ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x224B JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x33FF DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x1C8B DUP2 PUSH2 0x2D73 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xC9A DUP3 PUSH2 0x1512 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xC9A DUP3 PUSH2 0x1232 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2283 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x341F DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x264A JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xA74498AA DUP4 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x11F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x22D3 PUSH2 0x25F8 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x2 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH2 0x231D PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x341F DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x264A JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x725B878600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP6 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE SWAP2 MLOAD SWAP3 SWAP1 SWAP2 AND SWAP2 PUSH4 0x725B8786 SWAP2 PUSH1 0x44 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1A5C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1C9A PUSH1 0x1 DUP5 DUP5 PUSH2 0xB9C JUMP JUMPDEST PUSH1 0x0 PUSH2 0x23B2 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x341F DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x264A JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xE571049B PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1BEA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1C9A DUP4 DUP4 PUSH2 0x19E1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2423 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x341F DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x264A JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x4123EF60 DUP4 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x11F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xA93 PUSH2 0x2399 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x24A0 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x341F DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x264A JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xE85455D7 DUP4 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x11F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x60 PUSH2 0x2513 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x341F DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x264A JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x4CEAF41 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1951 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2558 PUSH2 0x25F8 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x25BE JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F4F574E4552000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x60 PUSH2 0xC9A DUP3 PUSH2 0xA98 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x2648 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x33FF DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xBB34534C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP2 PUSH4 0xBB34534C SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x11F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x26D1 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x341F DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x264A JUMP JUMPDEST SWAP5 POP DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xA43D5E94 DUP9 PUSH1 0x0 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x26F1 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2746 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x275A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2770 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP4 POP PUSH1 0x0 SWAP3 POP PUSH1 0x1 SWAP2 POP JUMPDEST DUP7 MLOAD DUP3 LT ISZERO PUSH2 0x2840 JUMPI DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xA43D5E94 DUP9 DUP5 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x27A3 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x27F8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x280C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2822 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 POP DUP1 DUP5 GT ISZERO PUSH2 0x2835 JUMPI DUP1 SWAP4 POP DUP2 SWAP3 POP JUMPDEST PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x277D JUMP JUMPDEST DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xF4FB86C0 DUP9 DUP6 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x285D JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x28B2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x28C6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x28EF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 MLOAD PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x2907 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD PUSH1 0x20 DUP2 ADD DUP5 DUP2 GT ISZERO PUSH2 0x291A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP6 PUSH1 0x20 DUP3 MUL DUP4 ADD GT PUSH5 0x100000000 DUP3 GT OR ISZERO PUSH2 0x2937 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP SWAP1 SWAP12 SWAP11 POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP6 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x3E8FF43F PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2989 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x299D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x29B3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH2 0xFFFF DUP7 DUP2 AND SWAP2 AND EQ PUSH2 0x29CB JUMPI PUSH1 0x0 SWAP2 POP PUSH2 0x2AB8 JUMP JUMPDEST DUP6 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x71F52BF3 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2A09 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2A1D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2A33 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD DUP5 MLOAD PUSH2 0xFFFF SWAP1 SWAP2 AND EQ PUSH2 0x2A4B JUMPI PUSH1 0x0 SWAP2 POP PUSH2 0x2AB8 JUMP JUMPDEST POP PUSH1 0x0 JUMPDEST DUP4 MLOAD DUP2 LT ISZERO PUSH2 0x2AB3 JUMPI PUSH2 0x2A79 DUP7 DUP6 DUP4 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x2A6A JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH2 0x2CA2 JUMP JUMPDEST PUSH4 0xFFFFFFFF AND DUP4 DUP3 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x2A8D JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MLOAD PUSH4 0xFFFFFFFF AND EQ PUSH2 0x2AAB JUMPI PUSH1 0x0 SWAP2 POP PUSH2 0x2AB8 JUMP JUMPDEST PUSH1 0x1 ADD PUSH2 0x2A4F JUMP JUMPDEST PUSH1 0x1 SWAP2 POP JUMPDEST POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x2ADE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x341F DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x264A JUMP JUMPDEST SWAP4 POP DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xFC0C546A PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2B1E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2B32 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2B48 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x71F52BF300000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP5 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND SWAP2 PUSH4 0x71F52BF3 SWAP2 PUSH1 0x4 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2BA9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2BBD JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2BD3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH2 0xFFFF AND SWAP2 POP PUSH2 0x2BE5 DUP5 DUP5 PUSH2 0x2F4D JUMP JUMPDEST PUSH1 0x1 DUP3 GT ISZERO PUSH2 0x2BFD JUMPI PUSH2 0x2BF8 DUP5 DUP5 PUSH2 0x302C JUMP JUMPDEST PUSH2 0x2C08 JUMP JUMPDEST PUSH2 0x2C08 DUP5 DUP5 DUP6 PUSH2 0x30D7 JUMP JUMPDEST POP PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x2C9B JUMPI PUSH2 0x2C93 DUP5 DUP7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x19B64015 DUP5 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2C61 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2C75 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2C8B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD DUP6 PUSH2 0x30D7 JUMP JUMPDEST PUSH1 0x1 ADD PUSH2 0x2C0C JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2CAC PUSH2 0x33E3 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x636F6E6E6563746F727328616464726573732900000000000000000000000000 DUP2 MSTORE DUP2 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x13 ADD DUP2 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND PUSH1 0x24 DUP1 DUP5 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x44 SWAP1 SWAP3 ADD DUP4 MSTORE PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR DUP2 MSTORE DUP2 MLOAD SWAP2 SWAP3 SWAP2 DUP5 SWAP2 DUP9 GAS STATICCALL DUP1 ISZERO ISZERO PUSH2 0x2D66 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP PUSH1 0x20 ADD MLOAD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x2D90 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x341F DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x264A JUMP JUMPDEST SWAP4 POP DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xFC0C546A PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2DD0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2DE4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2DFA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x71F52BF300000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP5 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND SWAP2 PUSH4 0x71F52BF3 SWAP2 PUSH1 0x4 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2E5B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2E6F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2E85 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH2 0xFFFF AND SWAP2 POP PUSH2 0x2E97 DUP5 DUP5 PUSH2 0x3198 JUMP JUMPDEST PUSH1 0x1 DUP3 GT ISZERO PUSH2 0x2EAF JUMPI PUSH2 0x2EAA DUP5 DUP5 PUSH2 0x3277 JUMP JUMPDEST PUSH2 0x2EBA JUMP JUMPDEST PUSH2 0x2EBA DUP5 DUP5 DUP6 PUSH2 0x3322 JUMP JUMPDEST POP PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x2C9B JUMPI PUSH2 0x2F45 DUP5 DUP7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x19B64015 DUP5 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2F13 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2F27 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2F3D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD DUP6 PUSH2 0x3322 JUMP JUMPDEST PUSH1 0x1 ADD PUSH2 0x2EBE JUMP JUMPDEST DUP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x8DE6C3EB DUP3 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2FA8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2FBC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP3 POP PUSH32 0xC0A6D303D67B7ED9FA0ABAE1C48878DF32ACC0E7CA4334C7DAD2BCEEEE5956FD SWAP2 POP PUSH1 0x0 SWAP1 LOG2 PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 AND SWAP1 PUSH32 0x88881FEECDF61136AC4BDB1F681F2F3746A82910263D21FFEA94750D2A78C0AB SWAP1 PUSH1 0x0 SWAP1 LOG2 POP POP JUMP JUMPDEST DUP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xEE6A934C DUP3 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3087 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x309B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP3 POP PUSH32 0xB893F883EF734B712208A877459424EE509832C57E0461FB1AC99ED4D42F2D89 SWAP2 POP PUSH1 0x0 SWAP1 LOG2 POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x36900C1100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP4 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE SWAP2 MLOAD SWAP2 DUP6 AND SWAP2 PUSH4 0x36900C11 SWAP2 PUSH1 0x44 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3143 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3157 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP6 AND SWAP4 POP DUP6 AND SWAP2 POP PUSH32 0xF2E7CF6D6ED3F77039511409A43D4FA5108F09AB71D72B014380364C910233A5 SWAP1 PUSH1 0x0 SWAP1 LOG3 POP POP POP JUMP JUMPDEST DUP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xCEB9838C DUP3 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x31F3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3207 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP3 POP PUSH32 0xBFDF1BAAA7E4871111360083540F067050014F651C9E4610A2A4A4BDF8BFAB5D SWAP2 POP PUSH1 0x0 SWAP1 LOG2 PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 AND SWAP1 PUSH32 0x2AFF63790C7DA80D1C50EDE92D23BC841C384837735C92C184331F3D7B91E5BF SWAP1 PUSH1 0x0 SWAP1 LOG2 POP POP JUMP JUMPDEST DUP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xAE22107F DUP3 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x32D2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x32E6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP3 POP PUSH32 0x59C3FBCAE88F30E9B0E35C132A7F68C53231DFFA4722F197C7ECB0EE013EEE60 SWAP2 POP PUSH1 0x0 SWAP1 LOG2 POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0xFBA8F03100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP4 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE SWAP2 MLOAD SWAP2 DUP6 AND SWAP2 PUSH4 0xFBA8F031 SWAP2 PUSH1 0x44 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x338E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x33A2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP6 AND SWAP4 POP DUP6 AND SWAP2 POP PUSH32 0x9430AD6FF45D6C3E126C7711BF0036BD9BC6B202FA19628ABD88E59CF43CED43 SWAP1 PUSH1 0x0 SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD DUP3 MSTORE SWAP1 PUSH1 0x2 SWAP1 DUP3 SWAP1 DUP1 CODESIZE DUP4 CODECOPY POP SWAP2 SWAP3 SWAP2 POP POP JUMP STOP GASLIMIT MSTORE MSTORE 0x5f COINBASE NUMBER NUMBER GASLIMIT MSTORE8 MSTORE8 0x5f DIFFICULTY GASLIMIT 0x4e 0x49 GASLIMIT DIFFICULTY STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP MSTORE8 PUSH16 0x7672796E53776170436F6E7665727465 PUSH19 0x52656769737472794461746100A165627A7A72 ADDRESS PC KECCAK256 LOG3 SELFDESTRUCT DUP14 PUSH2 0x6A60 SWAP16 0x2f 0xd KECCAK256 EQ SWAP10 0x5d SWAP4 SIGNEXTEND PUSH25 0x84B0BB7A8F1A97BAF9787A10EED69C8A002900000000000000 ", + "sourceMap": "1278:22622:6:-;;;3171:84;8:9:-1;5:2;;;30:1;27;20:12;5:2;3171:84:6;;;;;;;;;;;;;488:5:66;:18;;-1:-1:-1;;;;;;488:18:66;496:10;488:18;;;3171:84:6;;475:23:72;3171:84:6;475:13:72;;;;:23;:::i;:::-;-1:-1:-1;1931:8:60;:39;;-1:-1:-1;;;;;1931:39:60;;;-1:-1:-1;;;;;;1931:39:60;;;;;;;;1974:12;:43;;;;;;;;-1:-1:-1;1278:22622:6;;553:117:72;-1:-1:-1;;;;;620:22:72;;;;612:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;553:117;:::o;1278:22622:6:-;;;;;;;" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "6080604052600436106102005763ffffffff60e060020a600035041663024c7ec7811461020557806304ceaf411461022157806311839064146102865780631d3fccd5146102a75780631f8e26201461035a578063295d2a21146103af5780632fe8a6ad146104515780633ab8857c1461047a5780634123ef601461049b57806349c5f32b146104bc57806349d10b64146104ef5780634c7df18f146105045780635a0a66181461051c5780635f1b50fe14610646578063603f51e41461065b578063610c0b051461067f57806361cd756e146106d457806369be4784146106e95780636ce1c4dc146106fe578063725b87861461071f57806379ba5097146107465780637a5f0ffd1461075b5780637b103999146107705780637f45c4c314610785578063865cf1941461079a5780638da5cb5b146107b25780638f1d0e1a146107c7578063954254f5146107e85780639e76a00714610809578063a109d2141461082a578063a43d5e9414610842578063a74498aa14610863578063b4a176d31461087b578063b4c4197a14610890578063c22b82f0146108b7578063d3182bed14610945578063d4ee1d901461095a578063d6c4b5b21461096f578063d8cced2a14610993578063e571049b146109b4578063e85455d7146109c9578063effb3c6e146109ea578063f2fde38b146109ff578063f4fb86c014610a20575b600080fd5b34801561021157600080fd5b5061021f6004351515610a41565b005b34801561022d57600080fd5b50610236610a89565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561027257818101518382015260200161025a565b505050509050019250505060405180910390f35b34801561029257600080fd5b50610236600160a060020a0360043516610a98565b3480156102b357600080fd5b5060408051602060046024803582810135848102808701860190975280865261033e96843561ffff1696369660449591949091019291829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750949750610b9c9650505050505050565b60408051600160a060020a039092168252519081900360200190f35b34801561036657600080fd5b506040805160206004803580820135838102808601850190965280855261023695369593946024949385019291829185019084908082843750949750610c8f9650505050505050565b3480156103bb57600080fd5b5060408051602060046024803582810135848102808701860190975280865261033e96843561ffff1696369660449591949091019291829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a99890198929750908201955093508392508501908490808284375094975050509235600160a060020a03169350610ca092505050565b34801561045d57600080fd5b50610466611161565b604080519115158252519081900360200190f35b34801561048657600080fd5b50610466600160a060020a0360043516611182565b3480156104a757600080fd5b50610466600160a060020a0360043516611227565b3480156104c857600080fd5b506104dd600160a060020a0360043516611232565b60408051918252519081900360200190f35b3480156104fb57600080fd5b5061021f6112a5565b34801561051057600080fd5b5061033e600435611512565b34801561052857600080fd5b5060408051602060046024803582810135601f810185900485028601850190965285855261033e95833561ffff1695369560449491939091019190819084018382808284375050604080516020601f89358b018035918201839004830284018301909452808352979a9998810197919650918201945092508291508401838280828437505060408051818801358901803560208181028481018201909552818452989b60ff8b35169b63ffffffff8b8d0135169b919a90995060609091019750929550908201935091829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a9989019892975090820195509350839250850190849080828437509497506115739650505050505050565b34801561065257600080fd5b506102366118fb565b34801561066757600080fd5b5061033e600160a060020a03600435166024356119e1565b34801561068b57600080fd5b506040805160206004803580820135838102808601850190965280855261023695369593946024949385019291829185019084908082843750949750611a8f9650505050505050565b3480156106e057600080fd5b5061033e611b85565b3480156106f557600080fd5b506104dd611b94565b34801561070a57600080fd5b5061021f600160a060020a0360043516611c1b565b34801561072b57600080fd5b50610466600160a060020a0360043581169060243516611c8e565b34801561075257600080fd5b5061021f611ca1565b34801561076757600080fd5b506104dd611d62565b34801561077c57600080fd5b5061033e611db8565b34801561079157600080fd5b50610236611dc7565b3480156107a657600080fd5b5061033e600435611e1d565b3480156107be57600080fd5b5061033e611e7e565b3480156107d357600080fd5b50610466600160a060020a0360043516611e8d565b3480156107f457600080fd5b50610466600160a060020a03600435166120d9565b34801561081557600080fd5b5061021f600160a060020a03600435166121e8565b34801561083657600080fd5b5061033e600435612254565b34801561084e57600080fd5b506104dd600160a060020a036004351661225f565b34801561086f57600080fd5b5061033e60043561226a565b34801561088757600080fd5b5061021f6122cb565b34801561089c57600080fd5b50610466600160a060020a0360043581169060243516612304565b3480156108c357600080fd5b506040805160206004803580820135838102808601850190965280855261033e95369593946024949385019291829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a99890198929750908201955093508392508501908490808284375094975061238b9650505050505050565b34801561095157600080fd5b506104dd612399565b34801561096657600080fd5b5061033e6123ef565b34801561097b57600080fd5b5061033e600160a060020a03600435166024356123fe565b34801561099f57600080fd5b50610466600160a060020a036004351661240a565b3480156109c057600080fd5b506104dd61247d565b3480156109d557600080fd5b50610466600160a060020a0360043516612487565b3480156109f657600080fd5b506102366124fa565b348015610a0b57600080fd5b5061021f600160a060020a0360043516612550565b348015610a2c57600080fd5b50610236600160a060020a03600435166125ed565b610a496125f8565b60038054911515740100000000000000000000000000000000000000000274ff000000000000000000000000000000000000000019909216919091179055565b6060610a936124fa565b905090565b6060610ab160008051602061341f83398151915261264a565b600160a060020a031663f4fb86c0836040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b158015610b0b57600080fd5b505af1158015610b1f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526020811015610b4857600080fd5b810190808051640100000000811115610b6057600080fd5b82016020810184811115610b7357600080fd5b8151856020820283011164010000000082111715610b9057600080fd5b50909695505050505050565b60006060600080600085518751148015610bb7575060018751115b15610c7f57610bc5876126b0565b9350600092505b8351831015610c7f578383815181101515610be357fe5b90602001906020020151915081600160a060020a0316638da5cb5b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610c2d57600080fd5b505af1158015610c41573d6000803e3d6000fd5b505050506040513d6020811015610c5757600080fd5b50519050610c6781898989612948565b15610c7457819450610c84565b600190920191610bcc565b600094505b505050509392505050565b6060610c9a82611a8f565b92915050565b600160a060020a038181166000908152600460205260408120549091829182918291163314610d3f576040805160e560020a62461bcd02815260206004820152603060248201527f6f6e6c7920746865206465706c6f796572206d61792066696e6973682074686560448201527f20636f6e76657274657220736574757000000000000000000000000000000000606482015290519081900360840190fd5b865186519093508314610d9c576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e56414c49445f5245534552564553000000000000000000000000604482015290519081900360640190fd5b6000610da9898989610b9c565b600160a060020a031614610e07576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f414c52454144595f4558495354530000000000000000000000000000604482015290519081900360640190fd5b84600160a060020a031663d3fb73b46040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610e4557600080fd5b505af1158015610e59573d6000803e3d6000fd5b505050506040513d6020811015610e6f57600080fd5b5051604080517f79ba50970000000000000000000000000000000000000000000000000000000081529051919350600160a060020a038416916379ba50979160048082019260009290919082900301818387803b158015610ecf57600080fd5b505af1158015610ee3573d6000803e3d6000fd5b5050505084600160a060020a03166379ba50976040518163ffffffff1660e060020a028152600401600060405180830381600087803b158015610f2557600080fd5b505af1158015610f39573d6000803e3d6000fd5b50505050600090505b8281101561100b5784600160a060020a0316636a49d2c48883815181101515610f6757fe5b906020019060200201518884815181101515610f7f57fe5b906020019060200201516040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a031681526020018263ffffffff1663ffffffff16815260200192505050600060405180830381600087803b158015610fe757600080fd5b505af1158015610ffb573d6000803e3d6000fd5b505060019092019150610f429050565b81600160a060020a031663f2fde38b866040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b15801561106657600080fd5b505af115801561107a573d6000803e3d6000fd5b5050505084600160a060020a031663cdc91c696040518163ffffffff1660e060020a028152600401600060405180830381600087803b1580156110bc57600080fd5b505af11580156110d0573d6000803e3d6000fd5b5050604080517ff2fde38b0000000000000000000000000000000000000000000000000000000081523360048201529051600160a060020a038916935063f2fde38b9250602480830192600092919082900301818387803b15801561113457600080fd5b505af1158015611148573d6000803e3d6000fd5b5050505061115585612ac1565b50929695505050505050565b60035474010000000000000000000000000000000000000000900460ff1681565b600061119b60008051602061341f83398151915261264a565b600160a060020a0316633ab8857c836040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b1580156111f557600080fd5b505af1158015611209573d6000803e3d6000fd5b505050506040513d602081101561121f57600080fd5b505192915050565b6000610c9a8261240a565b600061124b60008051602061341f83398151915261264a565b600160a060020a031663a43d5e94836040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b1580156111f557600080fd5b60008054600160a060020a03163314806112da575060035474010000000000000000000000000000000000000000900460ff16155b151561131e576040805160e560020a62461bcd02815260206004820152601160248201526000805160206133ff833981519152604482015290519081900360640190fd5b6113477f436f6e747261637452656769737472790000000000000000000000000000000061264a565b600254909150600160a060020a038083169116148015906113705750600160a060020a03811615155b15156113c6576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e56414c49445f5245474953545259000000000000000000000000604482015290519081900360640190fd5b604080517fbb34534c0000000000000000000000000000000000000000000000000000000081527f436f6e747261637452656769737472790000000000000000000000000000000060048201529051600091600160a060020a0384169163bb34534c9160248082019260209290919082900301818787803b15801561144a57600080fd5b505af115801561145e573d6000803e3d6000fd5b505050506040513d602081101561147457600080fd5b5051600160a060020a031614156114d5576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e56414c49445f5245474953545259000000000000000000000000604482015290519081900360640190fd5b6002805460038054600160a060020a0380841673ffffffffffffffffffffffffffffffffffffffff19928316179092559091169216919091179055565b600061152b60008051602061341f83398151915261264a565b600160a060020a031663a109d214836040518263ffffffff1660e060020a02815260040180828152602001915050602060405180830381600087803b1580156111f557600080fd5b6000806000806000865193508551841415156115d9576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e56414c49445f5245534552564553000000000000000000000000604482015290519081900360640190fd5b60006115e68d8989610b9c565b600160a060020a031614611644576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f414c52454144595f4558495354530000000000000000000000000000604482015290519081900360640190fd5b61166d7f436f6e766572746572466163746f72790000000000000000000000000000000061264a565b925082600160a060020a0316632e9ab7b38d8d8d8d6040518563ffffffff1660e060020a028152600401808561ffff1661ffff16815260200180602001806020018460ff1660ff168152602001838103835286818151815260200191508051906020019080838360005b838110156116ef5781810151838201526020016116d7565b50505050905090810190601f16801561171c5780820380516001836020036101000a031916815260200191505b50838103825285518152855160209182019187019080838360005b8381101561174f578181015183820152602001611737565b50505050905090810190601f16801561177c5780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600087803b15801561179f57600080fd5b505af11580156117b3573d6000803e3d6000fd5b505050506040513d60208110156117c957600080fd5b8101908080519060200190929190505050915082600160a060020a03166315f64b6a8d84600260009054906101000a9004600160a060020a03168c6040518563ffffffff1660e060020a028152600401808561ffff1661ffff16815260200184600160a060020a0316600160a060020a0316815260200183600160a060020a0316600160a060020a031681526020018263ffffffff1663ffffffff168152602001945050505050602060405180830381600087803b15801561188a57600080fd5b505af115801561189e573d6000803e3d6000fd5b505050506040513d60208110156118b457600080fd5b5051600160a060020a0381166000908152600460205260409020805473ffffffffffffffffffffffffffffffffffffffff1916331790559c9b505050505050505050505050565b606061191460008051602061341f83398151915261264a565b600160a060020a0316635f1b50fe6040518163ffffffff1660e060020a028152600401600060405180830381600087803b15801561195157600080fd5b505af1158015611965573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561198e57600080fd5b8101908080516401000000008111156119a657600080fd5b820160208101848111156119b957600080fd5b81518560208202830111640100000000821117156119d657600080fd5b509094505050505090565b60006119fa60008051602061341f83398151915261264a565b600160a060020a031663d6c4b5b284846040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b158015611a5c57600080fd5b505af1158015611a70573d6000803e3d6000fd5b505050506040513d6020811015611a8657600080fd5b50519392505050565b60608060008351604051908082528060200260200182016040528015611abf578160200160208202803883390190505b509150600090505b8351811015611b7e578381815181101515611ade57fe5b90602001906020020151600160a060020a0316638da5cb5b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015611b2557600080fd5b505af1158015611b39573d6000803e3d6000fd5b505050506040513d6020811015611b4f57600080fd5b50518251839083908110611b5f57fe5b600160a060020a03909216602092830290910190910152600101611ac7565b5092915050565b600354600160a060020a031681565b6000611bad60008051602061341f83398151915261264a565b600160a060020a03166369be47846040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015611bea57600080fd5b505af1158015611bfe573d6000803e3d6000fd5b505050506040513d6020811015611c1457600080fd5b5051905090565b611c236125f8565b611c2c816120d9565b1515611c82576040805160e560020a62461bcd02815260206004820152601560248201527f4552525f494e56414c49445f434f4e5645525445520000000000000000000000604482015290519081900360640190fd5b611c8b81612ac1565b50565b6000611c9a8383612304565b9392505050565b600154600160a060020a03163314611cf1576040805160e560020a62461bcd02815260206004820152601160248201526000805160206133ff833981519152604482015290519081900360640190fd5b60015460008054604051600160a060020a0393841693909116917f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91a3600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b6000611d7b60008051602061341f83398151915261264a565b600160a060020a0316637a5f0ffd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015611bea57600080fd5b600254600160a060020a031681565b6060611de060008051602061341f83398151915261264a565b600160a060020a0316637f45c4c36040518163ffffffff1660e060020a028152600401600060405180830381600087803b15801561195157600080fd5b6000611e3660008051602061341f83398151915261264a565b600160a060020a031663865cf194836040518263ffffffff1660e060020a02815260040180828152602001915050602060405180830381600087803b1580156111f557600080fd5b600054600160a060020a031681565b60008060608060008086600160a060020a03166371f52bf36040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015611ed457600080fd5b505af1158015611ee8573d6000803e3d6000fd5b505050506040513d6020811015611efe57600080fd5b50516040805161ffff90921680835260208181028401019091529550858015611f31578160200160208202803883390190505b50935084604051908082528060200260200182016040528015611f5e578160200160208202803883390190505b509250600091505b848210156120445786600160a060020a03166319b64015836040518263ffffffff1660e060020a02815260040180828152602001915050602060405180830381600087803b158015611fb757600080fd5b505af1158015611fcb573d6000803e3d6000fd5b505050506040513d6020811015611fe157600080fd5b505184519091508190859084908110611ff657fe5b600160a060020a039092166020928302909101909101526120178782612ca2565b838381518110151561202557fe5b63ffffffff909216602092830290910190910152600190910190611f66565b6000600160a060020a03166120c388600160a060020a0316633e8ff43f6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561209057600080fd5b505af11580156120a4573d6000803e3d6000fd5b505050506040513d60208110156120ba57600080fd5b50518686610b9c565b600160a060020a03161415979650505050505050565b600081600160a060020a031682600160a060020a031663fc0c546a6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561212357600080fd5b505af1158015612137573d6000803e3d6000fd5b505050506040513d602081101561214d57600080fd5b5051604080517f8da5cb5b0000000000000000000000000000000000000000000000000000000081529051600160a060020a0390921691638da5cb5b916004808201926020929091908290030181600087803b1580156121ac57600080fd5b505af11580156121c0573d6000803e3d6000fd5b505050506040513d60208110156121d657600080fd5b5051600160a060020a03161492915050565b600054600160a060020a03163314806122075750612205816120d9565b155b151561224b576040805160e560020a62461bcd02815260206004820152601160248201526000805160206133ff833981519152604482015290519081900360640190fd5b611c8b81612d73565b6000610c9a82611512565b6000610c9a82611232565b600061228360008051602061341f83398151915261264a565b600160a060020a031663a74498aa836040518263ffffffff1660e060020a02815260040180828152602001915050602060405180830381600087803b1580156111f557600080fd5b6122d36125f8565b6003546002805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055565b600061231d60008051602061341f83398151915261264a565b604080517f725b8786000000000000000000000000000000000000000000000000000000008152600160a060020a03868116600483015285811660248301529151929091169163725b8786916044808201926020929091908290030181600087803b158015611a5c57600080fd5b6000611c9a60018484610b9c565b60006123b260008051602061341f83398151915261264a565b600160a060020a031663e571049b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015611bea57600080fd5b600154600160a060020a031681565b6000611c9a83836119e1565b600061242360008051602061341f83398151915261264a565b600160a060020a0316634123ef60836040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b1580156111f557600080fd5b6000610a93612399565b60006124a060008051602061341f83398151915261264a565b600160a060020a031663e85455d7836040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b1580156111f557600080fd5b606061251360008051602061341f83398151915261264a565b600160a060020a03166304ceaf416040518163ffffffff1660e060020a028152600401600060405180830381600087803b15801561195157600080fd5b6125586125f8565b600054600160a060020a03828116911614156125be576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f53414d455f4f574e4552000000000000000000000000000000000000604482015290519081900360640190fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6060610c9a82610a98565b600054600160a060020a03163314612648576040805160e560020a62461bcd02815260206004820152601160248201526000805160206133ff833981519152604482015290519081900360640190fd5b565b600254604080517fbb34534c000000000000000000000000000000000000000000000000000000008152600481018490529051600092600160a060020a03169163bb34534c91602480830192602092919082900301818787803b1580156111f557600080fd5b606060008060008060006126d160008051602061341f83398151915261264a565b945084600160a060020a031663a43d5e948860008151811015156126f157fe5b906020019060200201516040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b15801561274657600080fd5b505af115801561275a573d6000803e3d6000fd5b505050506040513d602081101561277057600080fd5b5051935060009250600191505b86518210156128405784600160a060020a031663a43d5e9488848151811015156127a357fe5b906020019060200201516040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b1580156127f857600080fd5b505af115801561280c573d6000803e3d6000fd5b505050506040513d602081101561282257600080fd5b5051905080841115612835578093508192505b60019091019061277d565b84600160a060020a031663f4fb86c0888581518110151561285d57fe5b906020019060200201516040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b1580156128b257600080fd5b505af11580156128c6573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260208110156128ef57600080fd5b81019080805164010000000081111561290757600080fd5b8201602081018481111561291a57600080fd5b815185602082028301116401000000008211171561293757600080fd5b50909b9a5050505050505050505050565b60008085600160a060020a0316633e8ff43f6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561298957600080fd5b505af115801561299d573d6000803e3d6000fd5b505050506040513d60208110156129b357600080fd5b505161ffff8681169116146129cb5760009150612ab8565b85600160a060020a03166371f52bf36040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015612a0957600080fd5b505af1158015612a1d573d6000803e3d6000fd5b505050506040513d6020811015612a3357600080fd5b5051845161ffff90911614612a4b5760009150612ab8565b5060005b8351811015612ab357612a79868583815181101515612a6a57fe5b90602001906020020151612ca2565b63ffffffff168382815181101515612a8d57fe5b6020908102909101015163ffffffff1614612aab5760009150612ab8565b600101612a4f565b600191505b50949350505050565b600080600080612ade60008051602061341f83398151915261264a565b935084600160a060020a031663fc0c546a6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015612b1e57600080fd5b505af1158015612b32573d6000803e3d6000fd5b505050506040513d6020811015612b4857600080fd5b5051604080517f71f52bf30000000000000000000000000000000000000000000000000000000081529051919450600160a060020a038716916371f52bf3916004808201926020929091908290030181600087803b158015612ba957600080fd5b505af1158015612bbd573d6000803e3d6000fd5b505050506040513d6020811015612bd357600080fd5b505161ffff169150612be58484612f4d565b6001821115612bfd57612bf8848461302c565b612c08565b612c088484856130d7565b5060005b81811015612c9b57612c938486600160a060020a03166319b64015846040518263ffffffff1660e060020a02815260040180828152602001915050602060405180830381600087803b158015612c6157600080fd5b505af1158015612c75573d6000803e3d6000fd5b505050506040513d6020811015612c8b57600080fd5b5051856130d7565b600101612c0c565b5050505050565b6000612cac6133e3565b604080517f636f6e6e6563746f72732861646472657373290000000000000000000000000081528151908190036013018120600160a060020a03861660248084019190915283518084039091018152604490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090921691909117815281519192918491885afa801515612d6657600080fd5b5050602001519392505050565b600080600080612d9060008051602061341f83398151915261264a565b935084600160a060020a031663fc0c546a6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015612dd057600080fd5b505af1158015612de4573d6000803e3d6000fd5b505050506040513d6020811015612dfa57600080fd5b5051604080517f71f52bf30000000000000000000000000000000000000000000000000000000081529051919450600160a060020a038716916371f52bf3916004808201926020929091908290030181600087803b158015612e5b57600080fd5b505af1158015612e6f573d6000803e3d6000fd5b505050506040513d6020811015612e8557600080fd5b505161ffff169150612e978484613198565b6001821115612eaf57612eaa8484613277565b612eba565b612eba848485613322565b5060005b81811015612c9b57612f458486600160a060020a03166319b64015846040518263ffffffff1660e060020a02815260040180828152602001915050602060405180830381600087803b158015612f1357600080fd5b505af1158015612f27573d6000803e3d6000fd5b505050506040513d6020811015612f3d57600080fd5b505185613322565b600101612ebe565b81600160a060020a0316638de6c3eb826040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b158015612fa857600080fd5b505af1158015612fbc573d6000803e3d6000fd5b5050604051600160a060020a03841692507fc0a6d303d67b7ed9fa0abae1c48878df32acc0e7ca4334c7dad2bceeee5956fd9150600090a2604051600160a060020a038216907f88881feecdf61136ac4bdb1f681f2f3746a82910263d21ffea94750d2a78c0ab90600090a25050565b81600160a060020a031663ee6a934c826040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b15801561308757600080fd5b505af115801561309b573d6000803e3d6000fd5b5050604051600160a060020a03841692507fb893f883ef734b712208a877459424ee509832c57e0461fb1ac99ed4d42f2d899150600090a25050565b604080517f36900c11000000000000000000000000000000000000000000000000000000008152600160a060020a03848116600483015283811660248301529151918516916336900c119160448082019260009290919082900301818387803b15801561314357600080fd5b505af1158015613157573d6000803e3d6000fd5b5050604051600160a060020a038085169350851691507ff2e7cf6d6ed3f77039511409a43d4fa5108f09ab71d72b014380364c910233a590600090a3505050565b81600160a060020a031663ceb9838c826040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b1580156131f357600080fd5b505af1158015613207573d6000803e3d6000fd5b5050604051600160a060020a03841692507fbfdf1baaa7e4871111360083540f067050014f651c9e4610a2a4a4bdf8bfab5d9150600090a2604051600160a060020a038216907f2aff63790c7da80d1c50ede92d23bc841c384837735c92c184331f3d7b91e5bf90600090a25050565b81600160a060020a031663ae22107f826040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b1580156132d257600080fd5b505af11580156132e6573d6000803e3d6000fd5b5050604051600160a060020a03841692507f59c3fbcae88f30e9b0e35c132a7f68c53231dffa4722f197c7ecb0ee013eee609150600090a25050565b604080517ffba8f031000000000000000000000000000000000000000000000000000000008152600160a060020a038481166004830152838116602483015291519185169163fba8f0319160448082019260009290919082900301818387803b15801561338e57600080fd5b505af11580156133a2573d6000803e3d6000fd5b5050604051600160a060020a038085169350851691507f9430ad6ff45d6c3e126c7711bf0036bd9bc6b202fa19628abd88e59cf43ced4390600090a3505050565b6040805180820182529060029082908038833950919291505056004552525f4143434553535f44454e494544000000000000000000000000000000536f7672796e53776170436f6e76657274657252656769737472794461746100a165627a7a72305820a3ff8d616a609f2f0d2014995d930b7884b0bb7a8f1a97baf9787a10eed69c8a0029", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x200 JUMPI PUSH4 0xFFFFFFFF PUSH1 0xE0 PUSH1 0x2 EXP PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x24C7EC7 DUP2 EQ PUSH2 0x205 JUMPI DUP1 PUSH4 0x4CEAF41 EQ PUSH2 0x221 JUMPI DUP1 PUSH4 0x11839064 EQ PUSH2 0x286 JUMPI DUP1 PUSH4 0x1D3FCCD5 EQ PUSH2 0x2A7 JUMPI DUP1 PUSH4 0x1F8E2620 EQ PUSH2 0x35A JUMPI DUP1 PUSH4 0x295D2A21 EQ PUSH2 0x3AF JUMPI DUP1 PUSH4 0x2FE8A6AD EQ PUSH2 0x451 JUMPI DUP1 PUSH4 0x3AB8857C EQ PUSH2 0x47A JUMPI DUP1 PUSH4 0x4123EF60 EQ PUSH2 0x49B JUMPI DUP1 PUSH4 0x49C5F32B EQ PUSH2 0x4BC JUMPI DUP1 PUSH4 0x49D10B64 EQ PUSH2 0x4EF JUMPI DUP1 PUSH4 0x4C7DF18F EQ PUSH2 0x504 JUMPI DUP1 PUSH4 0x5A0A6618 EQ PUSH2 0x51C JUMPI DUP1 PUSH4 0x5F1B50FE EQ PUSH2 0x646 JUMPI DUP1 PUSH4 0x603F51E4 EQ PUSH2 0x65B JUMPI DUP1 PUSH4 0x610C0B05 EQ PUSH2 0x67F JUMPI DUP1 PUSH4 0x61CD756E EQ PUSH2 0x6D4 JUMPI DUP1 PUSH4 0x69BE4784 EQ PUSH2 0x6E9 JUMPI DUP1 PUSH4 0x6CE1C4DC EQ PUSH2 0x6FE JUMPI DUP1 PUSH4 0x725B8786 EQ PUSH2 0x71F JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x746 JUMPI DUP1 PUSH4 0x7A5F0FFD EQ PUSH2 0x75B JUMPI DUP1 PUSH4 0x7B103999 EQ PUSH2 0x770 JUMPI DUP1 PUSH4 0x7F45C4C3 EQ PUSH2 0x785 JUMPI DUP1 PUSH4 0x865CF194 EQ PUSH2 0x79A JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x7B2 JUMPI DUP1 PUSH4 0x8F1D0E1A EQ PUSH2 0x7C7 JUMPI DUP1 PUSH4 0x954254F5 EQ PUSH2 0x7E8 JUMPI DUP1 PUSH4 0x9E76A007 EQ PUSH2 0x809 JUMPI DUP1 PUSH4 0xA109D214 EQ PUSH2 0x82A JUMPI DUP1 PUSH4 0xA43D5E94 EQ PUSH2 0x842 JUMPI DUP1 PUSH4 0xA74498AA EQ PUSH2 0x863 JUMPI DUP1 PUSH4 0xB4A176D3 EQ PUSH2 0x87B JUMPI DUP1 PUSH4 0xB4C4197A EQ PUSH2 0x890 JUMPI DUP1 PUSH4 0xC22B82F0 EQ PUSH2 0x8B7 JUMPI DUP1 PUSH4 0xD3182BED EQ PUSH2 0x945 JUMPI DUP1 PUSH4 0xD4EE1D90 EQ PUSH2 0x95A JUMPI DUP1 PUSH4 0xD6C4B5B2 EQ PUSH2 0x96F JUMPI DUP1 PUSH4 0xD8CCED2A EQ PUSH2 0x993 JUMPI DUP1 PUSH4 0xE571049B EQ PUSH2 0x9B4 JUMPI DUP1 PUSH4 0xE85455D7 EQ PUSH2 0x9C9 JUMPI DUP1 PUSH4 0xEFFB3C6E EQ PUSH2 0x9EA JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x9FF JUMPI DUP1 PUSH4 0xF4FB86C0 EQ PUSH2 0xA20 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x211 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x21F PUSH1 0x4 CALLDATALOAD ISZERO ISZERO PUSH2 0xA41 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x22D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x236 PUSH2 0xA89 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP4 MLOAD DUP2 DUP4 ADD MSTORE DUP4 MLOAD SWAP2 SWAP3 DUP4 SWAP3 SWAP1 DUP4 ADD SWAP2 DUP6 DUP2 ADD SWAP2 MUL DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x272 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x25A JUMP JUMPDEST POP POP POP POP SWAP1 POP ADD SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x292 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x236 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0xA98 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2B3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 PUSH1 0x24 DUP1 CALLDATALOAD DUP3 DUP2 ADD CALLDATALOAD DUP5 DUP2 MUL DUP1 DUP8 ADD DUP7 ADD SWAP1 SWAP8 MSTORE DUP1 DUP7 MSTORE PUSH2 0x33E SWAP7 DUP5 CALLDATALOAD PUSH2 0xFFFF AND SWAP7 CALLDATASIZE SWAP7 PUSH1 0x44 SWAP6 SWAP2 SWAP5 SWAP1 SWAP2 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP POP PUSH1 0x40 DUP1 MLOAD DUP8 CALLDATALOAD DUP10 ADD DUP1 CALLDATALOAD PUSH1 0x20 DUP2 DUP2 MUL DUP5 DUP2 ADD DUP3 ADD SWAP1 SWAP6 MSTORE DUP2 DUP5 MSTORE SWAP9 SWAP12 SWAP11 SWAP10 DUP10 ADD SWAP9 SWAP3 SWAP8 POP SWAP1 DUP3 ADD SWAP6 POP SWAP4 POP DUP4 SWAP3 POP DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP PUSH2 0xB9C SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x366 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x236 SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP PUSH2 0xC8F SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3BB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 PUSH1 0x24 DUP1 CALLDATALOAD DUP3 DUP2 ADD CALLDATALOAD DUP5 DUP2 MUL DUP1 DUP8 ADD DUP7 ADD SWAP1 SWAP8 MSTORE DUP1 DUP7 MSTORE PUSH2 0x33E SWAP7 DUP5 CALLDATALOAD PUSH2 0xFFFF AND SWAP7 CALLDATASIZE SWAP7 PUSH1 0x44 SWAP6 SWAP2 SWAP5 SWAP1 SWAP2 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP POP PUSH1 0x40 DUP1 MLOAD DUP8 CALLDATALOAD DUP10 ADD DUP1 CALLDATALOAD PUSH1 0x20 DUP2 DUP2 MUL DUP5 DUP2 ADD DUP3 ADD SWAP1 SWAP6 MSTORE DUP2 DUP5 MSTORE SWAP9 SWAP12 SWAP11 SWAP10 DUP10 ADD SWAP9 SWAP3 SWAP8 POP SWAP1 DUP3 ADD SWAP6 POP SWAP4 POP DUP4 SWAP3 POP DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP POP POP SWAP3 CALLDATALOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP4 POP PUSH2 0xCA0 SWAP3 POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x45D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x466 PUSH2 0x1161 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x486 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x466 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x1182 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4A7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x466 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x1227 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4C8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4DD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x1232 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4FB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x21F PUSH2 0x12A5 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x510 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x33E PUSH1 0x4 CALLDATALOAD PUSH2 0x1512 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x528 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 PUSH1 0x24 DUP1 CALLDATALOAD DUP3 DUP2 ADD CALLDATALOAD PUSH1 0x1F DUP2 ADD DUP6 SWAP1 DIV DUP6 MUL DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP6 DUP6 MSTORE PUSH2 0x33E SWAP6 DUP4 CALLDATALOAD PUSH2 0xFFFF AND SWAP6 CALLDATASIZE SWAP6 PUSH1 0x44 SWAP5 SWAP2 SWAP4 SWAP1 SWAP2 ADD SWAP2 SWAP1 DUP2 SWAP1 DUP5 ADD DUP4 DUP3 DUP1 DUP3 DUP5 CALLDATACOPY POP POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x1F DUP10 CALLDATALOAD DUP12 ADD DUP1 CALLDATALOAD SWAP2 DUP3 ADD DUP4 SWAP1 DIV DUP4 MUL DUP5 ADD DUP4 ADD SWAP1 SWAP5 MSTORE DUP1 DUP4 MSTORE SWAP8 SWAP11 SWAP10 SWAP9 DUP2 ADD SWAP8 SWAP2 SWAP7 POP SWAP2 DUP3 ADD SWAP5 POP SWAP3 POP DUP3 SWAP2 POP DUP5 ADD DUP4 DUP3 DUP1 DUP3 DUP5 CALLDATACOPY POP POP PUSH1 0x40 DUP1 MLOAD DUP2 DUP9 ADD CALLDATALOAD DUP10 ADD DUP1 CALLDATALOAD PUSH1 0x20 DUP2 DUP2 MUL DUP5 DUP2 ADD DUP3 ADD SWAP1 SWAP6 MSTORE DUP2 DUP5 MSTORE SWAP9 SWAP12 PUSH1 0xFF DUP12 CALLDATALOAD AND SWAP12 PUSH4 0xFFFFFFFF DUP12 DUP14 ADD CALLDATALOAD AND SWAP12 SWAP2 SWAP11 SWAP1 SWAP10 POP PUSH1 0x60 SWAP1 SWAP2 ADD SWAP8 POP SWAP3 SWAP6 POP SWAP1 DUP3 ADD SWAP4 POP SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP POP PUSH1 0x40 DUP1 MLOAD DUP8 CALLDATALOAD DUP10 ADD DUP1 CALLDATALOAD PUSH1 0x20 DUP2 DUP2 MUL DUP5 DUP2 ADD DUP3 ADD SWAP1 SWAP6 MSTORE DUP2 DUP5 MSTORE SWAP9 SWAP12 SWAP11 SWAP10 DUP10 ADD SWAP9 SWAP3 SWAP8 POP SWAP1 DUP3 ADD SWAP6 POP SWAP4 POP DUP4 SWAP3 POP DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP PUSH2 0x1573 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x652 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x236 PUSH2 0x18FB JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x667 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x33E PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x19E1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x68B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x236 SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP PUSH2 0x1A8F SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6E0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x33E PUSH2 0x1B85 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4DD PUSH2 0x1B94 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x70A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x21F PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x1C1B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x72B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x466 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH2 0x1C8E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x752 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x21F PUSH2 0x1CA1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x767 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4DD PUSH2 0x1D62 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x77C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x33E PUSH2 0x1DB8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x791 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x236 PUSH2 0x1DC7 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7A6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x33E PUSH1 0x4 CALLDATALOAD PUSH2 0x1E1D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7BE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x33E PUSH2 0x1E7E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7D3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x466 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x1E8D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7F4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x466 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x20D9 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x815 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x21F PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x21E8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x836 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x33E PUSH1 0x4 CALLDATALOAD PUSH2 0x2254 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x84E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4DD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x225F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x86F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x33E PUSH1 0x4 CALLDATALOAD PUSH2 0x226A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x887 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x21F PUSH2 0x22CB JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x89C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x466 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH2 0x2304 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8C3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x33E SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP POP PUSH1 0x40 DUP1 MLOAD DUP8 CALLDATALOAD DUP10 ADD DUP1 CALLDATALOAD PUSH1 0x20 DUP2 DUP2 MUL DUP5 DUP2 ADD DUP3 ADD SWAP1 SWAP6 MSTORE DUP2 DUP5 MSTORE SWAP9 SWAP12 SWAP11 SWAP10 DUP10 ADD SWAP9 SWAP3 SWAP8 POP SWAP1 DUP3 ADD SWAP6 POP SWAP4 POP DUP4 SWAP3 POP DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP PUSH2 0x238B SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x951 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4DD PUSH2 0x2399 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x966 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x33E PUSH2 0x23EF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x97B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x33E PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x23FE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x99F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x466 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x240A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9C0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4DD PUSH2 0x247D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9D5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x466 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x2487 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9F6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x236 PUSH2 0x24FA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA0B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x21F PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x2550 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA2C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x236 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x25ED JUMP JUMPDEST PUSH2 0xA49 PUSH2 0x25F8 JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD SWAP2 ISZERO ISZERO PUSH21 0x10000000000000000000000000000000000000000 MUL PUSH21 0xFF0000000000000000000000000000000000000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x60 PUSH2 0xA93 PUSH2 0x24FA JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH2 0xAB1 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x341F DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x264A JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xF4FB86C0 DUP4 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xB0B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xB1F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xB48 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 MLOAD PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0xB60 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD PUSH1 0x20 DUP2 ADD DUP5 DUP2 GT ISZERO PUSH2 0xB73 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP6 PUSH1 0x20 DUP3 MUL DUP4 ADD GT PUSH5 0x100000000 DUP3 GT OR ISZERO PUSH2 0xB90 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP SWAP1 SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 MLOAD DUP8 MLOAD EQ DUP1 ISZERO PUSH2 0xBB7 JUMPI POP PUSH1 0x1 DUP8 MLOAD GT JUMPDEST ISZERO PUSH2 0xC7F JUMPI PUSH2 0xBC5 DUP8 PUSH2 0x26B0 JUMP JUMPDEST SWAP4 POP PUSH1 0x0 SWAP3 POP JUMPDEST DUP4 MLOAD DUP4 LT ISZERO PUSH2 0xC7F JUMPI DUP4 DUP4 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xBE3 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD SWAP2 POP DUP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x8DA5CB5B PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC2D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xC41 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xC57 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 POP PUSH2 0xC67 DUP2 DUP10 DUP10 DUP10 PUSH2 0x2948 JUMP JUMPDEST ISZERO PUSH2 0xC74 JUMPI DUP2 SWAP5 POP PUSH2 0xC84 JUMP JUMPDEST PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 PUSH2 0xBCC JUMP JUMPDEST PUSH1 0x0 SWAP5 POP JUMPDEST POP POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0xC9A DUP3 PUSH2 0x1A8F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD SWAP1 SWAP2 DUP3 SWAP2 DUP3 SWAP2 DUP3 SWAP2 AND CALLER EQ PUSH2 0xD3F JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x30 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x6F6E6C7920746865206465706C6F796572206D61792066696E69736820746865 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x20636F6E76657274657220736574757000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x84 ADD SWAP1 REVERT JUMPDEST DUP7 MLOAD DUP7 MLOAD SWAP1 SWAP4 POP DUP4 EQ PUSH2 0xD9C JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245534552564553000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xDA9 DUP10 DUP10 DUP10 PUSH2 0xB9C JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ PUSH2 0xE07 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F414C52454144595F4558495354530000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xD3FB73B4 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xE45 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xE59 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xE6F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x79BA509700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP4 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP2 PUSH4 0x79BA5097 SWAP2 PUSH1 0x4 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xECF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xEE3 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x79BA5097 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xF25 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xF39 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x0 SWAP1 POP JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x100B JUMPI DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x6A49D2C4 DUP9 DUP4 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xF67 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD DUP9 DUP5 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xF7F JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 PUSH4 0xFFFFFFFF AND PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xFE7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xFFB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 POP PUSH2 0xF42 SWAP1 POP JUMP JUMPDEST DUP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xF2FDE38B DUP7 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1066 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x107A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xCDC91C69 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x10BC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x10D0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 DUP1 MLOAD PUSH32 0xF2FDE38B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP10 AND SWAP4 POP PUSH4 0xF2FDE38B SWAP3 POP PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1134 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1148 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x1155 DUP6 PUSH2 0x2AC1 JUMP JUMPDEST POP SWAP3 SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x119B PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x341F DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x264A JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x3AB8857C DUP4 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x11F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1209 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x121F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xC9A DUP3 PUSH2 0x240A JUMP JUMPDEST PUSH1 0x0 PUSH2 0x124B PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x341F DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x264A JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xA43D5E94 DUP4 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x11F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ DUP1 PUSH2 0x12DA JUMPI POP PUSH1 0x3 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x131E JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x33FF DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x1347 PUSH32 0x436F6E7472616374526567697374727900000000000000000000000000000000 PUSH2 0x264A JUMP JUMPDEST PUSH1 0x2 SLOAD SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP4 AND SWAP2 AND EQ DUP1 ISZERO SWAP1 PUSH2 0x1370 JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x13C6 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245474953545259000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0xBB34534C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH32 0x436F6E7472616374526567697374727900000000000000000000000000000000 PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP2 PUSH4 0xBB34534C SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x144A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x145E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1474 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ ISZERO PUSH2 0x14D5 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245474953545259000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP5 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP3 DUP4 AND OR SWAP1 SWAP3 SSTORE SWAP1 SWAP2 AND SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH2 0x152B PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x341F DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x264A JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xA109D214 DUP4 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x11F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP7 MLOAD SWAP4 POP DUP6 MLOAD DUP5 EQ ISZERO ISZERO PUSH2 0x15D9 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245534552564553000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x15E6 DUP14 DUP10 DUP10 PUSH2 0xB9C JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ PUSH2 0x1644 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F414C52454144595F4558495354530000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x166D PUSH32 0x436F6E766572746572466163746F727900000000000000000000000000000000 PUSH2 0x264A JUMP JUMPDEST SWAP3 POP DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x2E9AB7B3 DUP14 DUP14 DUP14 DUP14 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP6 PUSH2 0xFFFF AND PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP5 PUSH1 0xFF AND PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 SUB DUP4 MSTORE DUP7 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x16EF JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x16D7 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x171C JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP DUP4 DUP2 SUB DUP3 MSTORE DUP6 MLOAD DUP2 MSTORE DUP6 MLOAD PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 DUP8 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x174F JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x1737 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x177C JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP7 POP POP POP POP POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x179F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x17B3 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x17C9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP SWAP2 POP DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x15F64B6A DUP14 DUP5 PUSH1 0x2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP13 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP6 PUSH2 0xFFFF AND PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 PUSH4 0xFFFFFFFF AND PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP5 POP POP POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x188A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x189E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x18B4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND CALLER OR SWAP1 SSTORE SWAP13 SWAP12 POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x1914 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x341F DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x264A JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x5F1B50FE PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1951 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1965 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x198E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 MLOAD PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x19A6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD PUSH1 0x20 DUP2 ADD DUP5 DUP2 GT ISZERO PUSH2 0x19B9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP6 PUSH1 0x20 DUP3 MUL DUP4 ADD GT PUSH5 0x100000000 DUP3 GT OR ISZERO PUSH2 0x19D6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP SWAP1 SWAP5 POP POP POP POP POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x19FA PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x341F DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x264A JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xD6C4B5B2 DUP5 DUP5 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1A5C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1A70 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1A86 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP1 PUSH1 0x0 DUP4 MLOAD PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x1ABF JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CODESIZE DUP4 CODECOPY ADD SWAP1 POP JUMPDEST POP SWAP2 POP PUSH1 0x0 SWAP1 POP JUMPDEST DUP4 MLOAD DUP2 LT ISZERO PUSH2 0x1B7E JUMPI DUP4 DUP2 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x1ADE JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x8DA5CB5B PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1B25 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1B39 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1B4F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD DUP3 MLOAD DUP4 SWAP1 DUP4 SWAP1 DUP2 LT PUSH2 0x1B5F JUMPI INVALID JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND PUSH1 0x20 SWAP3 DUP4 MUL SWAP1 SWAP2 ADD SWAP1 SWAP2 ADD MSTORE PUSH1 0x1 ADD PUSH2 0x1AC7 JUMP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1BAD PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x341F DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x264A JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x69BE4784 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1BEA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1BFE JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1C14 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x1C23 PUSH2 0x25F8 JUMP JUMPDEST PUSH2 0x1C2C DUP2 PUSH2 0x20D9 JUMP JUMPDEST ISZERO ISZERO PUSH2 0x1C82 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F434F4E5645525445520000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x1C8B DUP2 PUSH2 0x2AC1 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1C9A DUP4 DUP4 PUSH2 0x2304 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x1CF1 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x33FF DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND SWAP4 SWAP1 SWAP2 AND SWAP2 PUSH32 0x343765429AEA5A34B3FF6A3785A98A5ABB2597ACA87BFBB58632C173D585373A SWAP2 LOG3 PUSH1 0x1 DUP1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND OR SWAP1 SWAP2 SSTORE AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1D7B PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x341F DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x264A JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x7A5F0FFD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1BEA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x60 PUSH2 0x1DE0 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x341F DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x264A JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x7F45C4C3 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1951 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1E36 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x341F DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x264A JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x865CF194 DUP4 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x11F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x60 DUP1 PUSH1 0x0 DUP1 DUP7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x71F52BF3 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1ED4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1EE8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1EFE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH2 0xFFFF SWAP1 SWAP3 AND DUP1 DUP4 MSTORE PUSH1 0x20 DUP2 DUP2 MUL DUP5 ADD ADD SWAP1 SWAP2 MSTORE SWAP6 POP DUP6 DUP1 ISZERO PUSH2 0x1F31 JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CODESIZE DUP4 CODECOPY ADD SWAP1 POP JUMPDEST POP SWAP4 POP DUP5 PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x1F5E JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CODESIZE DUP4 CODECOPY ADD SWAP1 POP JUMPDEST POP SWAP3 POP PUSH1 0x0 SWAP2 POP JUMPDEST DUP5 DUP3 LT ISZERO PUSH2 0x2044 JUMPI DUP7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x19B64015 DUP4 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1FB7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1FCB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1FE1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD DUP5 MLOAD SWAP1 SWAP2 POP DUP2 SWAP1 DUP6 SWAP1 DUP5 SWAP1 DUP2 LT PUSH2 0x1FF6 JUMPI INVALID JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND PUSH1 0x20 SWAP3 DUP4 MUL SWAP1 SWAP2 ADD SWAP1 SWAP2 ADD MSTORE PUSH2 0x2017 DUP8 DUP3 PUSH2 0x2CA2 JUMP JUMPDEST DUP4 DUP4 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x2025 JUMPI INVALID JUMPDEST PUSH4 0xFFFFFFFF SWAP1 SWAP3 AND PUSH1 0x20 SWAP3 DUP4 MUL SWAP1 SWAP2 ADD SWAP1 SWAP2 ADD MSTORE PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x1F66 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x20C3 DUP9 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x3E8FF43F PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2090 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x20A4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x20BA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD DUP7 DUP7 PUSH2 0xB9C JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ ISZERO SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xFC0C546A PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2123 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2137 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x214D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x8DA5CB5B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP2 PUSH4 0x8DA5CB5B SWAP2 PUSH1 0x4 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x21AC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x21C0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x21D6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ DUP1 PUSH2 0x2207 JUMPI POP PUSH2 0x2205 DUP2 PUSH2 0x20D9 JUMP JUMPDEST ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x224B JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x33FF DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x1C8B DUP2 PUSH2 0x2D73 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xC9A DUP3 PUSH2 0x1512 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xC9A DUP3 PUSH2 0x1232 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2283 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x341F DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x264A JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xA74498AA DUP4 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x11F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x22D3 PUSH2 0x25F8 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x2 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH2 0x231D PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x341F DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x264A JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x725B878600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP6 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE SWAP2 MLOAD SWAP3 SWAP1 SWAP2 AND SWAP2 PUSH4 0x725B8786 SWAP2 PUSH1 0x44 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1A5C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1C9A PUSH1 0x1 DUP5 DUP5 PUSH2 0xB9C JUMP JUMPDEST PUSH1 0x0 PUSH2 0x23B2 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x341F DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x264A JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xE571049B PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1BEA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1C9A DUP4 DUP4 PUSH2 0x19E1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2423 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x341F DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x264A JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x4123EF60 DUP4 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x11F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xA93 PUSH2 0x2399 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x24A0 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x341F DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x264A JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xE85455D7 DUP4 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x11F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x60 PUSH2 0x2513 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x341F DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x264A JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x4CEAF41 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1951 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2558 PUSH2 0x25F8 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x25BE JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F4F574E4552000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x60 PUSH2 0xC9A DUP3 PUSH2 0xA98 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x2648 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x33FF DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xBB34534C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP2 PUSH4 0xBB34534C SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x11F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x26D1 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x341F DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x264A JUMP JUMPDEST SWAP5 POP DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xA43D5E94 DUP9 PUSH1 0x0 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x26F1 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2746 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x275A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2770 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP4 POP PUSH1 0x0 SWAP3 POP PUSH1 0x1 SWAP2 POP JUMPDEST DUP7 MLOAD DUP3 LT ISZERO PUSH2 0x2840 JUMPI DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xA43D5E94 DUP9 DUP5 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x27A3 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x27F8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x280C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2822 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 POP DUP1 DUP5 GT ISZERO PUSH2 0x2835 JUMPI DUP1 SWAP4 POP DUP2 SWAP3 POP JUMPDEST PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x277D JUMP JUMPDEST DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xF4FB86C0 DUP9 DUP6 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x285D JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x28B2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x28C6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x28EF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 MLOAD PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x2907 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD PUSH1 0x20 DUP2 ADD DUP5 DUP2 GT ISZERO PUSH2 0x291A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP6 PUSH1 0x20 DUP3 MUL DUP4 ADD GT PUSH5 0x100000000 DUP3 GT OR ISZERO PUSH2 0x2937 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP SWAP1 SWAP12 SWAP11 POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP6 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x3E8FF43F PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2989 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x299D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x29B3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH2 0xFFFF DUP7 DUP2 AND SWAP2 AND EQ PUSH2 0x29CB JUMPI PUSH1 0x0 SWAP2 POP PUSH2 0x2AB8 JUMP JUMPDEST DUP6 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x71F52BF3 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2A09 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2A1D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2A33 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD DUP5 MLOAD PUSH2 0xFFFF SWAP1 SWAP2 AND EQ PUSH2 0x2A4B JUMPI PUSH1 0x0 SWAP2 POP PUSH2 0x2AB8 JUMP JUMPDEST POP PUSH1 0x0 JUMPDEST DUP4 MLOAD DUP2 LT ISZERO PUSH2 0x2AB3 JUMPI PUSH2 0x2A79 DUP7 DUP6 DUP4 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x2A6A JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH2 0x2CA2 JUMP JUMPDEST PUSH4 0xFFFFFFFF AND DUP4 DUP3 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x2A8D JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MLOAD PUSH4 0xFFFFFFFF AND EQ PUSH2 0x2AAB JUMPI PUSH1 0x0 SWAP2 POP PUSH2 0x2AB8 JUMP JUMPDEST PUSH1 0x1 ADD PUSH2 0x2A4F JUMP JUMPDEST PUSH1 0x1 SWAP2 POP JUMPDEST POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x2ADE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x341F DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x264A JUMP JUMPDEST SWAP4 POP DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xFC0C546A PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2B1E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2B32 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2B48 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x71F52BF300000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP5 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND SWAP2 PUSH4 0x71F52BF3 SWAP2 PUSH1 0x4 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2BA9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2BBD JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2BD3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH2 0xFFFF AND SWAP2 POP PUSH2 0x2BE5 DUP5 DUP5 PUSH2 0x2F4D JUMP JUMPDEST PUSH1 0x1 DUP3 GT ISZERO PUSH2 0x2BFD JUMPI PUSH2 0x2BF8 DUP5 DUP5 PUSH2 0x302C JUMP JUMPDEST PUSH2 0x2C08 JUMP JUMPDEST PUSH2 0x2C08 DUP5 DUP5 DUP6 PUSH2 0x30D7 JUMP JUMPDEST POP PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x2C9B JUMPI PUSH2 0x2C93 DUP5 DUP7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x19B64015 DUP5 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2C61 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2C75 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2C8B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD DUP6 PUSH2 0x30D7 JUMP JUMPDEST PUSH1 0x1 ADD PUSH2 0x2C0C JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2CAC PUSH2 0x33E3 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x636F6E6E6563746F727328616464726573732900000000000000000000000000 DUP2 MSTORE DUP2 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x13 ADD DUP2 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND PUSH1 0x24 DUP1 DUP5 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x44 SWAP1 SWAP3 ADD DUP4 MSTORE PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR DUP2 MSTORE DUP2 MLOAD SWAP2 SWAP3 SWAP2 DUP5 SWAP2 DUP9 GAS STATICCALL DUP1 ISZERO ISZERO PUSH2 0x2D66 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP PUSH1 0x20 ADD MLOAD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x2D90 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x341F DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x264A JUMP JUMPDEST SWAP4 POP DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xFC0C546A PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2DD0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2DE4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2DFA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x71F52BF300000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP5 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND SWAP2 PUSH4 0x71F52BF3 SWAP2 PUSH1 0x4 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2E5B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2E6F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2E85 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH2 0xFFFF AND SWAP2 POP PUSH2 0x2E97 DUP5 DUP5 PUSH2 0x3198 JUMP JUMPDEST PUSH1 0x1 DUP3 GT ISZERO PUSH2 0x2EAF JUMPI PUSH2 0x2EAA DUP5 DUP5 PUSH2 0x3277 JUMP JUMPDEST PUSH2 0x2EBA JUMP JUMPDEST PUSH2 0x2EBA DUP5 DUP5 DUP6 PUSH2 0x3322 JUMP JUMPDEST POP PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x2C9B JUMPI PUSH2 0x2F45 DUP5 DUP7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x19B64015 DUP5 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2F13 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2F27 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2F3D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD DUP6 PUSH2 0x3322 JUMP JUMPDEST PUSH1 0x1 ADD PUSH2 0x2EBE JUMP JUMPDEST DUP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x8DE6C3EB DUP3 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2FA8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2FBC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP3 POP PUSH32 0xC0A6D303D67B7ED9FA0ABAE1C48878DF32ACC0E7CA4334C7DAD2BCEEEE5956FD SWAP2 POP PUSH1 0x0 SWAP1 LOG2 PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 AND SWAP1 PUSH32 0x88881FEECDF61136AC4BDB1F681F2F3746A82910263D21FFEA94750D2A78C0AB SWAP1 PUSH1 0x0 SWAP1 LOG2 POP POP JUMP JUMPDEST DUP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xEE6A934C DUP3 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3087 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x309B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP3 POP PUSH32 0xB893F883EF734B712208A877459424EE509832C57E0461FB1AC99ED4D42F2D89 SWAP2 POP PUSH1 0x0 SWAP1 LOG2 POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x36900C1100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP4 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE SWAP2 MLOAD SWAP2 DUP6 AND SWAP2 PUSH4 0x36900C11 SWAP2 PUSH1 0x44 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3143 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3157 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP6 AND SWAP4 POP DUP6 AND SWAP2 POP PUSH32 0xF2E7CF6D6ED3F77039511409A43D4FA5108F09AB71D72B014380364C910233A5 SWAP1 PUSH1 0x0 SWAP1 LOG3 POP POP POP JUMP JUMPDEST DUP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xCEB9838C DUP3 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x31F3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3207 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP3 POP PUSH32 0xBFDF1BAAA7E4871111360083540F067050014F651C9E4610A2A4A4BDF8BFAB5D SWAP2 POP PUSH1 0x0 SWAP1 LOG2 PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 AND SWAP1 PUSH32 0x2AFF63790C7DA80D1C50EDE92D23BC841C384837735C92C184331F3D7B91E5BF SWAP1 PUSH1 0x0 SWAP1 LOG2 POP POP JUMP JUMPDEST DUP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xAE22107F DUP3 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x32D2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x32E6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP3 POP PUSH32 0x59C3FBCAE88F30E9B0E35C132A7F68C53231DFFA4722F197C7ECB0EE013EEE60 SWAP2 POP PUSH1 0x0 SWAP1 LOG2 POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0xFBA8F03100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP4 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE SWAP2 MLOAD SWAP2 DUP6 AND SWAP2 PUSH4 0xFBA8F031 SWAP2 PUSH1 0x44 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x338E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x33A2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP6 AND SWAP4 POP DUP6 AND SWAP2 POP PUSH32 0x9430AD6FF45D6C3E126C7711BF0036BD9BC6B202FA19628ABD88E59CF43CED43 SWAP1 PUSH1 0x0 SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD DUP3 MSTORE SWAP1 PUSH1 0x2 SWAP1 DUP3 SWAP1 DUP1 CODESIZE DUP4 CODECOPY POP SWAP2 SWAP3 SWAP2 POP POP JUMP STOP GASLIMIT MSTORE MSTORE 0x5f COINBASE NUMBER NUMBER GASLIMIT MSTORE8 MSTORE8 0x5f DIFFICULTY GASLIMIT 0x4e 0x49 GASLIMIT DIFFICULTY STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP MSTORE8 PUSH16 0x7672796E53776170436F6E7665727465 PUSH19 0x52656769737472794461746100A165627A7A72 ADDRESS PC KECCAK256 LOG3 SELFDESTRUCT DUP14 PUSH2 0x6A60 SWAP16 0x2f 0xd KECCAK256 EQ SWAP10 0x5d SWAP4 SIGNEXTEND PUSH25 0x84B0BB7A8F1A97BAF9787A10EED69C8A002900000000000000 ", + "sourceMap": "1278:22622:6:-;;;;;;;;;-1:-1:-1;;;1278:22622:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3280:206:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3280:206:60;;;;;;;;;21876:85:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;21876:85:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;21876:85:6;;;;;;;;;;;;;;;;;10964:218;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;10964:218:6;-1:-1:-1;;;;;10964:218:6;;;;;14425:883;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;14425:883:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;14425:883:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;14425:883:6;;;;-1:-1:-1;14425:883:6;-1:-1:-1;14425:883:6;;-1:-1:-1;14425:883:6;;;;;;;;;-1:-1:-1;14425:883:6;;-1:-1:-1;14425:883:6;;-1:-1:-1;;;;;;;14425:883:6;;;;;-1:-1:-1;;;;;14425:883:6;;;;;;;;;;;;;;23434:143;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;23434:143:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;23434:143:6;;-1:-1:-1;23434:143:6;;-1:-1:-1;;;;;;;23434:143:6;5068:901;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;5068:901:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;5068:901:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5068:901:6;;;;-1:-1:-1;5068:901:6;-1:-1:-1;5068:901:6;;-1:-1:-1;5068:901:6;;;;;;;;;-1:-1:-1;5068:901:6;;-1:-1:-1;;;5068:901:6;;-1:-1:-1;;;;;5068:901:6;;-1:-1:-1;5068:901:6;;-1:-1:-1;;;5068:901:6;1250:38:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1250:38:60;;;;;;;;;;;;;;;;;;;;;;10115:171:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;10115:171:6;-1:-1:-1;;;;;10115:171:6;;;;;22209:96;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;22209:96:6;-1:-1:-1;;;;;22209:96:6;;;;;10515:224;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;10515:224:6;-1:-1:-1;;;;;10515:224:6;;;;;;;;;;;;;;;;;;;;;2080:832:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2080:832:60;;;;7358:160:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;7358:160:6;;;;;3798:902;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3798:902:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3798:902:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3798:902:6;;;;-1:-1:-1;3798:902:6;-1:-1:-1;3798:902:6;;-1:-1:-1;3798:902:6;;;;;;;;-1:-1:-1;;3798:902:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3798:902:6;;;;;-1:-1:-1;3798:902:6;;-1:-1:-1;3798:902:6;;;;-1:-1:-1;3798:902:6;;;;;;;;;;;;-1:-1:-1;;3798:902:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3798:902:6;;;;-1:-1:-1;3798:902:6;-1:-1:-1;3798:902:6;;-1:-1:-1;3798:902:6;;;;;;;;;-1:-1:-1;3798:902:6;;-1:-1:-1;3798:902:6;;-1:-1:-1;;;;;;;3798:902:6;9451:160;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9451:160:6;;;;11449:238;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;11449:238:6;-1:-1:-1;;;;;11449:238:6;;;;;;;12452:278;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;12452:278:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12452:278:6;;-1:-1:-1;12452:278:6;;-1:-1:-1;;;;;;;12452:278:6;1165:37:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1165:37:60;;;;9165:166:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9165:166:6;;;;6106:168;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;6106:168:6;-1:-1:-1;;;;;6106:168:6;;;;;23173:174;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;23173:174:6;-1:-1:-1;;;;;23173:174:6;;;;;;;;;;1159:176:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1159:176:66;;;;7962:160:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7962:160:6;;;;1085:33:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1085:33:60;;;;8236:154:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8236:154:6;;;;9757:176;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;9757:176:6;;;;;157:20:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;157:20:66;;;;13323:778:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;13323:778:6;-1:-1:-1;;;;;13323:778:6;;;;;12900:181;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;12900:181:6;-1:-1:-1;;;;;12900:181:6;;;;;6526:184;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;6526:184:6;-1:-1:-1;;;;;6526:184:6;;;;;22035:101;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;22035:101:6;;;;;22400:165;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;22400:165:6;-1:-1:-1;;;;;22400:165:6;;;;;8530:170;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;8530:170:6;;;;;2974:119:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2974:119:60;;;;11965:233:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;11965:233:6;-1:-1:-1;;;;;11965:233:6;;;;;;;;;;23666:232;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;23666:232:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;23666:232:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;23666:232:6;;;;-1:-1:-1;23666:232:6;-1:-1:-1;23666:232:6;;-1:-1:-1;23666:232:6;;;;;;;;;-1:-1:-1;23666:232:6;;-1:-1:-1;23666:232:6;;-1:-1:-1;;;;;;;23666:232:6;6822:150;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6822:150:6;;;;180:23:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;180:23:66;;;;22905:179:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;22905:179:6;-1:-1:-1;;;;;22905:179:6;;;;;;;7689:155;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;7689:155:6;-1:-1:-1;;;;;7689:155:6;;;;;21710:91;;8:9:-1;5:2;;;30:1;27;20:12;5:2;21710:91:6;;;;8876:165;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;8876:165:6;-1:-1:-1;;;;;8876:165:6;;;;;7080:144;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7080:144:6;;;;945:140:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;945:140:66;-1:-1:-1;;;;;945:140:66;;;;;22656:159:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;22656:159:6;-1:-1:-1;;;;;22656:159:6;;;;;3280:206:60;575:12:66;:10;:12::i;:::-;3426:26:60;:56;;;;;;;-1:-1:-1;;3426:56:60;;;;;;;;;3280:206::o;21876:85:6:-;21923:9;21945:12;:10;:12::i;:::-;21938:19;;21876:85;:::o;10964:218::-;11048:9;11093:34;-1:-1:-1;;;;;;;;;;;11093:9:6;:34::i;:::-;-1:-1:-1;;;;;11070:89:6;;11160:17;11070:108;;;;;-1:-1:-1;;;11070:108:6;;;;;;;-1:-1:-1;;;;;11070:108:6;-1:-1:-1;;;;;11070:108:6;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11070:108:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11070:108:6;;;;;;39:16:-1;36:1;17:17;2:54;101:4;11070:108:6;80:15:-1;;;-1:-1;;76:31;65:43;;120:4;113:20;13:2;5:11;;2:2;;;29:1;26;19:12;2:2;11070:108:6;;;;;;20:11:-1;15:3;12:20;9:2;;;45:1;42;35:12;9:2;64:21;;126:4;117:14;;142:31;;;139:2;;;186:1;183;176:12;139:2;224:3;218:10;339:9;333:2;319:12;315:21;297:16;293:44;290:59;268:11;254:12;251:29;239:119;236:2;;;371:1;368;361:12;236:2;-1:-1;11070:108:6;;10964:218;-1:-1:-1;;;;;;10964:218:6:o;14425:883::-;14573:16;14818:40;14972:9;15034:23;15110:20;14695:15;:22;14670:14;:21;:47;:76;;;;;14745:1;14721:14;:21;:25;14670:76;14666:608;;;14861:44;14890:14;14861:28;:44::i;:::-;14818:87;;14984:1;14972:13;;14967:303;14991:23;:30;14987:1;:34;14967:303;;;15077:23;15101:1;15077:26;;;;;;;;;;;;;;;;;;15034:70;;15144:6;-1:-1:-1;;;;;15144:12:6;;:14;;;;;-1:-1:-1;;;15144:14:6;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15144:14:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15144:14:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;15144:14:6;;-1:-1:-1;15169:80:6;15144:14;15210:5;15217:14;15233:15;15169:29;:80::i;:::-;15165:99;;;15258:6;15251:13;;;;15165:99;15023:3;;;;;14967:303;;;15302:1;15278:26;;14425:883;;;;;;;;;;:::o;23434:143::-;23515:9;23537:36;23560:12;23537:22;:36::i;:::-;23530:43;23434:143;-1:-1:-1;;23434:143:6:o;5068:901::-;-1:-1:-1;;;;;5250:20:6;;;5226:10;5250:20;;;:8;:20;;;;;;5226:10;;;;;;;;5250:20;5274:10;5250:34;5242:95;;;;;-1:-1:-1;;;;;5242:95:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5359:21;;5402:22;;5359:21;;-1:-1:-1;5392:32:6;;5384:65;;;;;-1:-1:-1;;;;;5384:65:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;5546:1;5461:64;5486:5;5493:14;5509:15;5461:24;:64::i;:::-;-1:-1:-1;;;;;5461:87:6;;5453:118;;;;;-1:-1:-1;;;;;5453:118:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;5602:10;-1:-1:-1;;;;;5602:17:6;;:19;;;;;-1:-1:-1;;;5602:19:6;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5602:19:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5602:19:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5602:19:6;5626:24;;;;;;;;5602:19;;-1:-1:-1;;;;;;5626:22:6;;;;;:24;;;;;;;;;;;;;;;;:22;:24;;;5:2:-1;;;;30:1;27;20:12;5:2;5626:24:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5626:24:6;;;;5654:10;-1:-1:-1;;;;;5654:26:6;;:28;;;;;-1:-1:-1;;;5654:28:6;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5654:28:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5654:28:6;;;;5704:1;5692:13;;5687:97;5711:6;5707:1;:10;5687:97;;;5724:10;-1:-1:-1;;;;;5724:21:6;;5746:14;5761:1;5746:17;;;;;;;;;;;;;;;;;;5765:15;5781:1;5765:18;;;;;;;;;;;;;;;;;;5724:60;;;;;-1:-1:-1;;;5724:60:6;;;;;;;-1:-1:-1;;;;;5724:60:6;-1:-1:-1;;;;;5724:60:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5724:60:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;5719:3:6;;;;;-1:-1:-1;5687:97:6;;-1:-1:-1;5687:97:6;;5789:6;-1:-1:-1;;;;;5789:24:6;;5814:10;5789:36;;;;;-1:-1:-1;;;5789:36:6;;;;;;;-1:-1:-1;;;;;5789:36:6;-1:-1:-1;;;;;5789:36:6;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5789:36:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5789:36:6;;;;5829:10;-1:-1:-1;;;;;5829:32:6;;:34;;;;;-1:-1:-1;;;5829:34:6;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5829:34:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;5867:40:6;;;;;;5896:10;5867:40;;;;;;-1:-1:-1;;;;;5867:28:6;;;-1:-1:-1;5867:28:6;;-1:-1:-1;5867:40:6;;;;;-1:-1:-1;;5867:40:6;;;;;;;-1:-1:-1;5867:28:6;:40;;;5:2:-1;;;;30:1;27;20:12;5:2;5867:40:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5867:40:6;;;;5912:32;5933:10;5912:20;:32::i;:::-;-1:-1:-1;5955:10:6;;5068:901;-1:-1:-1;;;;;;5068:901:6:o;1250:38:60:-;;;;;;;;;:::o;10115:171:6:-;10180:4;10220:34;-1:-1:-1;;;;;;;;;;;10220:9:6;:34::i;:::-;-1:-1:-1;;;;;10197:77:6;;10275:6;10197:85;;;;;-1:-1:-1;;;10197:85:6;;;;;;;-1:-1:-1;;;;;10197:85:6;-1:-1:-1;;;;;10197:85:6;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10197:85:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10197:85:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;10197:85:6;;10115:171;-1:-1:-1;;10115:171:6:o;22209:96::-;22268:4;22285:16;22294:6;22285:8;:16::i;10515:224::-;10603:7;10646:34;-1:-1:-1;;;;;;;;;;;10646:9:6;:34::i;:::-;-1:-1:-1;;;;;10623:93:6;;10717:17;10623:112;;;;;-1:-1:-1;;;10623:112:6;;;;;;;-1:-1:-1;;;;;10623:112:6;-1:-1:-1;;;;;10623:112:6;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;2080:832:60;2281:29;2183:5;;-1:-1:-1;;;;;2183:5:60;2169:10;:19;;:50;;-1:-1:-1;2193:26:60;;;;;;;2192:27;2169:50;2161:80;;;;;;;-1:-1:-1;;;;;2161:80:60;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2161:80:60;;;;;;;;;;;;;;;2331:28;2341:17;2331:9;:28::i;:::-;2465:8;;2281:79;;-1:-1:-1;;;;;;2442:32:60;;;2465:8;;2442:32;;;;:61;;-1:-1:-1;;;;;;2478:25:60;;;;2442:61;2434:94;;;;;;;-1:-1:-1;;;;;2434:94:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;2628:40;;;;;;2650:17;2628:40;;;;;;2680:1;;-1:-1:-1;;;;;2628:21:60;;;;;:40;;;;;;;;;;;;;;;2680:1;2628:21;:40;;;5:2:-1;;;;30:1;27;20:12;5:2;2628:40:60;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2628:40:60;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2628:40:60;-1:-1:-1;;;;;2628:54:60;;;2620:87;;;;;-1:-1:-1;;;;;2620:87:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;2799:8;;;2784:12;:23;;-1:-1:-1;;;;;2799:8:60;;;-1:-1:-1;;2784:23:60;;;;;;;2886:22;;;;;;;;;;;2080:832::o;7358:160:6:-;7414:7;7457:34;-1:-1:-1;;;;;;;;;;;7457:9:6;:34::i;:::-;-1:-1:-1;;;;;7434:72:6;;7507:6;7434:80;;;;;-1:-1:-1;;;7434:80:6;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;3798:902:6;4010:10;4026:14;4260:25;4339:23;4441:20;4043:14;:21;4026:38;;4086:15;:22;4076:6;:32;4068:65;;;;;;;-1:-1:-1;;;;;4068:65:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;4230:1;4145:64;4170:5;4177:14;4193:15;4145:24;:64::i;:::-;-1:-1:-1;;;;;4145:87:6;;4137:118;;;;;-1:-1:-1;;;;;4137:118:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;4306:28;4316:17;4306:9;:28::i;:::-;4260:75;;4382:7;-1:-1:-1;;;;;4382:20:6;;4403:5;4410;4417:7;4426:9;4382:54;;;;;-1:-1:-1;;;4382:54:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;4382:54:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4382:54:6;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;4382:54:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4382:54:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4382:54:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4382:54:6;;;;;;;;;;;;;;;;4339:98;;4475:7;-1:-1:-1;;;;;4475:23:6;;4499:5;4506:6;4514:8;;;;;;;;;-1:-1:-1;;;;;4514:8:6;4524:17;4475:67;;;;;-1:-1:-1;;;4475:67:6;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4475:67:6;-1:-1:-1;;;;;4475:67:6;;;;;;-1:-1:-1;;;;;4475:67:6;-1:-1:-1;;;;;4475:67:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4475:67:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4475:67:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4475:67:6;-1:-1:-1;;;;;4643:19:6;;;;;;:8;4475:67;4643:19;;;;:32;;-1:-1:-1;;4643:32:6;4665:10;4643:32;;;4475:67;;-1:-1:-1;;;;;;;;;;;;3798:902:6:o;9451:160::-;9504:9;9549:34;-1:-1:-1;;;;;;;;;;;9549:9:6;:34::i;:::-;-1:-1:-1;;;;;9526:79:6;;:81;;;;;-1:-1:-1;;;9526:81:6;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9526:81:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9526:81:6;;;;;;39:16:-1;36:1;17:17;2:54;101:4;9526:81:6;80:15:-1;;;-1:-1;;76:31;65:43;;120:4;113:20;13:2;5:11;;2:2;;;29:1;26;19:12;2:2;9526:81:6;;;;;;20:11:-1;15:3;12:20;9:2;;;45:1;42;35:12;9:2;64:21;;126:4;117:14;;142:31;;;139:2;;;186:1;183;176:12;139:2;224:3;218:10;339:9;333:2;319:12;315:21;297:16;293:44;290:59;268:11;254:12;251:29;239:119;236:2;;;371:1;368;361:12;236:2;-1:-1;9526:81:6;;-1:-1:-1;;;;;9451:160:6;:::o;11449:238::-;11548:7;11591:34;-1:-1:-1;;;;;;;;;;;11591:9:6;:34::i;:::-;-1:-1:-1;;;;;11568:88:6;;11657:17;11676:6;11568:115;;;;;-1:-1:-1;;;11568:115:6;;;;;;;-1:-1:-1;;;;;11568:115:6;-1:-1:-1;;;;;11568:115:6;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11568:115:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11568:115:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11568:115:6;;11449:238;-1:-1:-1;;;11449:238:6:o;12452:278::-;12525:9;12540:27;12610:9;12584:8;:15;12570:30;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;136:17;;-1:-1;12570:30:6;;12540:60;;12622:1;12610:13;;12605:99;12629:8;:15;12625:1;:19;12605:99;;;12684:8;12693:1;12684:11;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12667:35:6;;:37;;;;;-1:-1:-1;;;12667:37:6;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12667:37:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12667:37:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12667:37:6;12651:13;;:10;;12662:1;;12651:13;;;;;;-1:-1:-1;;;;;12651:53:6;;;:13;;;;;;;;;;:53;12646:3;;12605:99;;;-1:-1:-1;12716:10:6;12452:278;-1:-1:-1;;12452:278:6:o;1165:37:60:-;;;-1:-1:-1;;;;;1165:37:60;;:::o;9165:166:6:-;9222:7;9265:34;-1:-1:-1;;;;;;;;;;;9265:9:6;:34::i;:::-;-1:-1:-1;;;;;9242:83:6;;:85;;;;;-1:-1:-1;;;9242:85:6;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9242:85:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9242:85:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9242:85:6;;-1:-1:-1;9165:166:6;:::o;6106:168::-;575:12:66;:10;:12::i;:::-;6180:28:6;6197:10;6180:16;:28::i;:::-;6172:62;;;;;;;-1:-1:-1;;;;;6172:62:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;6238:32;6259:10;6238:20;:32::i;:::-;6106:168;:::o;23173:174::-;23275:4;23292:51;23317:17;23336:6;23292:24;:51::i;:::-;23285:58;23173:174;-1:-1:-1;;;23173:174:6:o;1159:176:66:-;1219:8;;-1:-1:-1;;;;;1219:8:66;1205:10;:22;1197:52;;;;;-1:-1:-1;;;;;1197:52:66;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1197:52:66;;;;;;;;;;;;;;;1277:8;;;1270:5;;1258:28;;-1:-1:-1;;;;;1277:8:66;;;;1270:5;;;;1258:28;;;1298:8;;;;1290:16;;-1:-1:-1;;1290:16:66;;;-1:-1:-1;;;;;1298:8:66;;1290:16;;;;1310:21;;;1159:176::o;7962:160:6:-;8016:7;8059:34;-1:-1:-1;;;;;;;;;;;8059:9:6;:34::i;:::-;-1:-1:-1;;;;;8036:80:6;;:82;;;;;-1:-1:-1;;;8036:82:6;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;1085:33:60;;;-1:-1:-1;;;;;1085:33:60;;:::o;8236:154:6:-;8286:9;8331:34;-1:-1:-1;;;;;;;;;;;8331:9:6;:34::i;:::-;-1:-1:-1;;;;;8308:76:6;;:78;;;;;-1:-1:-1;;;8308:78:6;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;9757:176:6;9823:7;9866:34;-1:-1:-1;;;;;;;;;;;9866:9:6;:34::i;:::-;-1:-1:-1;;;;;9843:78:6;;9922:6;9843:86;;;;;-1:-1:-1;;;9843:86:6;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;157:20:66;;;-1:-1:-1;;;;;157:20:66;;:::o;13323:778:6:-;13409:4;13419:25;13483:34;13560:30;13686:9;13734:24;13447:10;-1:-1:-1;;;;;13447:30:6;;:32;;;;;-1:-1:-1;;;13447:32:6;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13447:32:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13447:32:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13447:32:6;13520:36;;;13419:60;;;;13520:36;;;13447:32;13520:36;;;;;;;;;13419:60;-1:-1:-1;13419:60:6;13520:36;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;136:17;;-1:-1;13520:36:6;;13483:73;;13606:17;13593:31;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;136:17;;-1:-1;13593:31:6;;13560:64;;13698:1;13686:13;;13681:217;13705:17;13701:1;:21;13681:217;;;13761:10;-1:-1:-1;;;;;13761:26:6;;13788:1;13761:29;;;;;-1:-1:-1;;;13761:29:6;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13761:29:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13761:29:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13761:29:6;13795:16;;13761:29;;-1:-1:-1;13761:29:6;;13795:13;;13809:1;;13795:16;;;;;;-1:-1:-1;;;;;13795:31:6;;;:16;;;;;;;;;;:31;13851:42;13868:10;13880:12;13851:16;:42::i;:::-;13831:14;13846:1;13831:17;;;;;;;;;;:62;;;;:17;;;;;;;;;;:62;13724:3;;;;;13681:217;;;14095:1;-1:-1:-1;;;;;13991:106:6;:83;14016:10;-1:-1:-1;;;;;14016:24:6;;:26;;;;;-1:-1:-1;;;14016:26:6;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14016:26:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14016:26:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;14016:26:6;14044:13;14059:14;13991:24;:83::i;:::-;-1:-1:-1;;;;;13991:106:6;;;;13323:778;-1:-1:-1;;;;;;;13323:778:6:o;12900:181::-;12970:4;13066:10;-1:-1:-1;;;;;13028:49:6;:10;-1:-1:-1;;;;;13028:16:6;;:18;;;;;-1:-1:-1;;;13028:18:6;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13028:18:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13028:18:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13028:18:6;:26;;;;;;;;-1:-1:-1;;;;;13028:24:6;;;;;;:26;;;;;:18;;:26;;;;;;;;;:24;:26;;;5:2:-1;;;;30:1;27;20:12;5:2;13028:26:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13028:26:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13028:26:6;-1:-1:-1;;;;;13028:49:6;;;12900:181;-1:-1:-1;;12900:181:6:o;6526:184::-;6607:5;;-1:-1:-1;;;;;6607:5:6;6593:10;:19;;:52;;;6617:28;6634:10;6617:16;:28::i;:::-;6616:29;6593:52;6585:82;;;;;;;-1:-1:-1;;;;;6585:82:6;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;6585:82:6;;;;;;;;;;;;;;;6671:35;6695:10;6671:23;:35::i;22035:101::-;22095:7;22115:17;22125:6;22115:9;:17::i;22400:165::-;22492:7;22512:49;22543:17;22512:30;:49::i;8530:170::-;8593:7;8636:34;-1:-1:-1;;;;;;;;;;;8636:9:6;:34::i;:::-;-1:-1:-1;;;;;8613:75:6;;8689:6;8613:83;;;;;-1:-1:-1;;;8613:83:6;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;2974:119:60;575:12:66;:10;:12::i;:::-;3077::60;;3066:8;:23;;-1:-1:-1;;3066:23:60;-1:-1:-1;;;;;3077:12:60;;;3066:23;;;;;;2974:119::o;11965:233:6:-;12063:4;12103:34;-1:-1:-1;;;;;;;;;;;12103:9:6;:34::i;:::-;12080:114;;;;;;-1:-1:-1;;;;;12080:114:6;;;;;;;;;;;;;;;;:87;;;;;;;:114;;;;;;;;;;;;;;;-1:-1:-1;12080:87:6;:114;;;5:2:-1;;;;30:1;27;20:12;23666:232:6;23804:16;23834:60;23859:1;23862:14;23878:15;23834:24;:60::i;6822:150::-;6869:7;6912:34;-1:-1:-1;;;;;;;;;;;6912:9:6;:34::i;:::-;-1:-1:-1;;;;;6889:77:6;;:79;;;;;-1:-1:-1;;;6889:79:6;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;180:23:66;;;-1:-1:-1;;;;;180:23:66;;:::o;22905:179:6:-;23008:7;23028:52;23054:17;23073:6;23028:25;:52::i;7689:155::-;7744:4;7784:34;-1:-1:-1;;;;;;;;;;;7784:9:6;:34::i;:::-;-1:-1:-1;;;;;7761:71:6;;7833:6;7761:79;;;;;-1:-1:-1;;;7761:79:6;;;;;;;-1:-1:-1;;;;;7761:79:6;-1:-1:-1;;;;;7761:79:6;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;21710:91:6;21761:7;21781:16;:14;:16::i;8876:165::-;8938:4;8978:34;-1:-1:-1;;;;;;;;;;;8978:9:6;:34::i;:::-;-1:-1:-1;;;;;8955:74:6;;9030:6;8955:82;;;;;-1:-1:-1;;;8955:82:6;;;;;;;-1:-1:-1;;;;;8955:82:6;-1:-1:-1;;;;;8955:82:6;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;7080:144:6;7123:9;7168:34;-1:-1:-1;;;;;;;;;;;7168:9:6;:34::i;:::-;-1:-1:-1;;;;;7145:73:6;;:75;;;;;-1:-1:-1;;;7145:75:6;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;945:140:66;575:12;:10;:12::i;:::-;1033:5;;-1:-1:-1;;;;;1020:18:66;;;1033:5;;1020:18;;1012:45;;;;;-1:-1:-1;;;;;1012:45:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;1061:8;:20;;-1:-1:-1;;1061:20:66;-1:-1:-1;;;;;1061:20:66;;;;;;;;;;945:140::o;22656:159:6:-;22744:9;22766:45;22793:17;22766:26;:45::i;642:93:66:-;704:5;;-1:-1:-1;;;;;704:5:66;690:10;:19;682:49;;;;;-1:-1:-1;;;;;682:49:66;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;682:49:66;;;;;;;;;;;;;;;642:93::o;3647:122:60:-;3732:8;;:33;;;;;;;;;;;;;;3712:7;;-1:-1:-1;;;;;3732:8:60;;:18;;:33;;;;;;;;;;;;;;3712:7;3732:8;:33;;;5:2:-1;;;;30:1;27;20:12;19307:823:6;19404:9;19426:44;19535:22;19639:13;19745:9;19797:35;19496:34;-1:-1:-1;;;;;;;;;;;19496:9:6;:34::i;:::-;19426:105;;19560:21;-1:-1:-1;;;;;19560:56:6;;19617:14;19632:1;19617:17;;;;;;;;;;;;;;;;;;19560:75;;;;;-1:-1:-1;;;19560:75:6;;;;;;;-1:-1:-1;;;;;19560:75:6;-1:-1:-1;;;;;19560:75:6;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19560:75:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;19560:75:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;19560:75:6;;-1:-1:-1;19655:1:6;;-1:-1:-1;19757:1:6;;-1:-1:-1;19740:300:6;19764:14;:21;19760:1;:25;19740:300;;;19835:21;-1:-1:-1;;;;;19835:56:6;;19892:14;19907:1;19892:17;;;;;;;;;;;;;;;;;;19835:75;;;;;-1:-1:-1;;;19835:75:6;;;;;;;-1:-1:-1;;;;;19835:75:6;-1:-1:-1;;;;;19835:75:6;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19835:75:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;19835:75:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;19835:75:6;;-1:-1:-1;19919:44:6;;;19915:121;;;19988:27;19971:44;;20029:1;20021:9;;19915:121;19787:3;;;;;19740:300;;;20051:21;-1:-1:-1;;;;;20051:52:6;;20104:14;20119:5;20104:21;;;;;;;;;;;;;;;;;;20051:75;;;;;-1:-1:-1;;;20051:75:6;;;;;;;-1:-1:-1;;;;;20051:75:6;-1:-1:-1;;;;;20051:75:6;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;20051:75:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;20051:75:6;;;;;;39:16:-1;36:1;17:17;2:54;101:4;20051:75:6;80:15:-1;;;-1:-1;;76:31;65:43;;120:4;113:20;13:2;5:11;;2:2;;;29:1;26;19:12;2:2;20051:75:6;;;;;;20:11:-1;15:3;12:20;9:2;;;45:1;42;35:12;9:2;64:21;;126:4;117:14;;142:31;;;139:2;;;186:1;183;176:12;139:2;224:3;218:10;339:9;333:2;319:12;315:21;297:16;293:44;290:59;268:11;254:12;251:29;239:119;236:2;;;371:1;368;361:12;236:2;-1:-1;20051:75:6;;19307:823;-1:-1:-1;;;;;;;;;;;19307:823:6:o;20133:495::-;20312:4;20465:9;20335:10;-1:-1:-1;;;;;20335:24:6;;:26;;;;;-1:-1:-1;;;20335:26:6;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;20335:26:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;20335:26:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;20335:26:6;20326:35;;;;;;;20322:53;;20370:5;20363:12;;;;20322:53;20409:10;-1:-1:-1;;;;;20409:30:6;;:32;;;;;-1:-1:-1;;;20409:32:6;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;20409:32:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;20409:32:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;20409:32:6;20384:21;;:57;;;;;20380:75;;20450:5;20443:12;;;;20380:75;-1:-1:-1;20477:1:6;20460:149;20484:14;:21;20480:1;:25;20460:149;;;20543:47;20560:10;20572:14;20587:1;20572:17;;;;;;;;;;;;;;;;;;20543:16;:47::i;:::-;20521:69;;:15;20537:1;20521:18;;;;;;;;;;;;;;;;;;;:69;;;20517:87;;20599:5;20592:12;;;;20517:87;20507:3;;20460:149;;;20620:4;20613:11;;20133:495;;;;;;;;:::o;17920:680::-;17985:44;18094:23;18154:25;18472:9;18055:34;-1:-1:-1;;;;;;;;;;;18055:9:6;:34::i;:::-;17985:105;;18131:10;-1:-1:-1;;;;;18120:28:6;;:30;;;;;-1:-1:-1;;;18120:30:6;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18120:30:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;18120:30:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;18120:30:6;18182:32;;;;;;;;18120:30;;-1:-1:-1;;;;;;18182:30:6;;;;;:32;;;;;18120:30;;18182:32;;;;;;;;;:30;:32;;;5:2:-1;;;;30:1;27;20:12;5:2;18182:32:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;18182:32:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;18182:32:6;18154:60;;;-1:-1:-1;18249:40:6;18259:21;18282:6;18249:9;:40::i;:::-;18317:1;18297:17;:21;18293:141;;;18320:47;18337:21;18360:6;18320:16;:47::i;:::-;18293:141;;;18376:58;18396:21;18419:6;18427;18376:19;:58::i;:::-;-1:-1:-1;18484:1:6;18467:129;18491:17;18487:1;:21;18467:129;;;18515:81;18535:21;18558:10;-1:-1:-1;;;;;18558:26:6;;18585:1;18558:29;;;;;-1:-1:-1;;;18558:29:6;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18558:29:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;18558:29:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;18558:29:6;18589:6;18515:19;:81::i;:::-;18510:3;;18467:129;;;17920:680;;;;;:::o;21001:630::-;21092:6;21104:21;;:::i;:::-;20689:32;;;;;;;;;;;;;;;;-1:-1:-1;;;;;21149:63:6;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;21149:63:6;;;;;;;25:18:-1;;61:17;;21149:63:6;182:15:-1;21149:63:6;;;;179:29:-1;;;;160:49;;21416:11:6;;21149:63;;20689:32;21502:3;;21288:10;21262:3;21246:306;21566:7;21559:15;21556:2;;;21591:1;21588;21581:12;21556:2;-1:-1:-1;;21620:6:6;;;;;-1:-1:-1;;;21001:630:6:o;18603:701::-;18671:44;18780:23;18840:25;19173:9;18741:34;-1:-1:-1;;;;;;;;;;;18741:9:6;:34::i;:::-;18671:105;;18817:10;-1:-1:-1;;;;;18806:28:6;;:30;;;;;-1:-1:-1;;;18806:30:6;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18806:30:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;18806:30:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;18806:30:6;18868:32;;;;;;;;18806:30;;-1:-1:-1;;;;;;18868:30:6;;;;;:32;;;;;18806:30;;18868:32;;;;;;;;;:30;:32;;;5:2:-1;;;;30:1;27;20:12;5:2;18868:32:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;18868:32:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;18868:32:6;18840:60;;;-1:-1:-1;18938:43:6;18951:21;18974:6;18938:12;:43::i;:::-;19009:1;18989:17;:21;18985:147;;;19012:50;19032:21;19055:6;19012:19;:50::i;:::-;18985:147;;;19071:61;19094:21;19117:6;19125;19071:22;:61::i;:::-;-1:-1:-1;19185:1:6;19168:132;19192:17;19188:1;:21;19168:132;;;19216:84;19239:21;19262:10;-1:-1:-1;;;;;19262:26:6;;19289:1;19262:29;;;;;-1:-1:-1;;;19262:29:6;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19262:29:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;19262:29:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;19262:29:6;19293:6;19216:22;:84::i;:::-;19211:3;;19168:132;;15476:216;15572:22;-1:-1:-1;;;;;15572:36:6;;15609:7;15572:45;;;;;-1:-1:-1;;;15572:45:6;;;;;;;-1:-1:-1;;;;;15572:45:6;-1:-1:-1;;;;;15572:45:6;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15572:45:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;15626:29:6;;-1:-1:-1;;;;;15626:29:6;;;-1:-1:-1;15626:29:6;;-1:-1:-1;15626:29:6;;;15664:24;;-1:-1:-1;;;;;15664:24:6;;;;;;;;15476:216;;:::o;16262:212::-;16372:22;-1:-1:-1;;;;;16372:39:6;;16412:14;16372:55;;;;;-1:-1:-1;;;16372:55:6;;;;;;;-1:-1:-1;;;;;16372:55:6;-1:-1:-1;;;;;16372:55:6;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16372:55:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;16436:34:6;;-1:-1:-1;;;;;16436:34:6;;;-1:-1:-1;16436:34:6;;-1:-1:-1;16436:34:6;;;16262:212;;:::o;17113:274::-;17255:70;;;;;;-1:-1:-1;;;;;17255:70:6;;;;;;;;;;;;;;;;:42;;;;;;:70;;;;;-1:-1:-1;;17255:70:6;;;;;;;;-1:-1:-1;17255:42:6;:70;;;5:2:-1;;;;30:1;27;20:12;5:2;17255:70:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;17334:49:6;;-1:-1:-1;;;;;17334:49:6;;;;-1:-1:-1;17334:49:6;;;-1:-1:-1;17334:49:6;;;;;17113:274;;;:::o;15865:226::-;15964:22;-1:-1:-1;;;;;15964:39:6;;16004:7;15964:48;;;;;-1:-1:-1;;;15964:48:6;;;;;;;-1:-1:-1;;;;;15964:48:6;-1:-1:-1;;;;;15964:48:6;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15964:48:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;16021:31:6;;-1:-1:-1;;;;;16021:31:6;;;-1:-1:-1;16021:31:6;;-1:-1:-1;16021:31:6;;;16061:26;;-1:-1:-1;;;;;16061:26:6;;;;;;;;15865:226;;:::o;16650:220::-;16763:22;-1:-1:-1;;;;;16763:42:6;;16806:14;16763:58;;;;;-1:-1:-1;;;16763:58:6;;;;;;;-1:-1:-1;;;;;16763:58:6;-1:-1:-1;;;;;16763:58:6;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16763:58:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;16830:36:6;;-1:-1:-1;;;;;16830:36:6;;;-1:-1:-1;16830:36:6;;-1:-1:-1;16830:36:6;;;16650:220;;:::o;17635:282::-;17780:73;;;;;;-1:-1:-1;;;;;17780:73:6;;;;;;;;;;;;;;;;:45;;;;;;:73;;;;;-1:-1:-1;;17780:73:6;;;;;;;;-1:-1:-1;17780:45:6;:73;;;5:2:-1;;;;30:1;27;20:12;5:2;17780:73:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;17862:51:6;;-1:-1:-1;;;;;17862:51:6;;;;-1:-1:-1;17862:51:6;;;-1:-1:-1;17862:51:6;;;;;17635:282;;;:::o;1278:22622::-;;;;;;;;;;;;;;;105:10:-1;1278:22622:6;88:34:-1;-1:-1;1278:22622:6;;;-1:-1:-1;;1278:22622:6:o" + }, + "methodIdentifiers": { + "acceptOwnership()": "79ba5097", + "addConverter(address)": "6ce1c4dc", + "getAnchor(uint256)": "4c7df18f", + "getAnchorCount()": "d3182bed", + "getAnchors()": "effb3c6e", + "getConvertersByAnchors(address[])": "610c0b05", + "getConvertersBySmartTokens(address[])": "1f8e2620", + "getConvertibleToken(uint256)": "865cf194", + "getConvertibleTokenAnchor(address,uint256)": "603f51e4", + "getConvertibleTokenAnchorCount(address)": "49c5f32b", + "getConvertibleTokenAnchors(address)": "11839064", + "getConvertibleTokenCount()": "69be4784", + "getConvertibleTokenSmartToken(address,uint256)": "d6c4b5b2", + "getConvertibleTokenSmartTokenCount(address)": "a43d5e94", + "getConvertibleTokenSmartTokens(address)": "f4fb86c0", + "getConvertibleTokens()": "5f1b50fe", + "getLiquidityPool(uint256)": "a74498aa", + "getLiquidityPoolByConfig(uint16,address[],uint32[])": "1d3fccd5", + "getLiquidityPoolByReserveConfig(address[],uint32[])": "c22b82f0", + "getLiquidityPoolCount()": "7a5f0ffd", + "getLiquidityPools()": "7f45c4c3", + "getSmartToken(uint256)": "a109d214", + "getSmartTokenCount()": "e571049b", + "getSmartTokens()": "04ceaf41", + "isAnchor(address)": "d8cced2a", + "isConverterValid(address)": "954254f5", + "isConvertibleToken(address)": "3ab8857c", + "isConvertibleTokenAnchor(address,address)": "b4c4197a", + "isConvertibleTokenSmartToken(address,address)": "725b8786", + "isLiquidityPool(address)": "e85455d7", + "isSimilarLiquidityPoolRegistered(address)": "8f1d0e1a", + "isSmartToken(address)": "4123ef60", + "newConverter(uint16,string,string,uint8,uint32,address[],uint32[])": "5a0a6618", + "newOwner()": "d4ee1d90", + "onlyOwnerCanUpdateRegistry()": "2fe8a6ad", + "owner()": "8da5cb5b", + "prevRegistry()": "61cd756e", + "registry()": "7b103999", + "removeConverter(address)": "9e76a007", + "restoreRegistry()": "b4a176d3", + "restrictRegistryUpdate(bool)": "024c7ec7", + "setupConverter(uint16,address[],uint32[],address)": "295d2a21", + "transferOwnership(address)": "f2fde38b", + "updateRegistry()": "49d10b64" + } + }, + "userdoc": { + "methods": {} + } + } + }, + "solidity/contracts/converter/ConverterRegistryData.sol": { + "ConverterRegistryData": { + "abi": [ + { + "constant": false, + "inputs": [ + { + "name": "_onlyOwnerCanUpdateRegistry", + "type": "bool" + } + ], + "name": "restrictRegistryUpdate", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getSmartTokens", + "outputs": [ + { + "name": "", + "type": "address[]" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "onlyOwnerCanUpdateRegistry", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_convertibleToken", + "type": "address" + }, + { + "name": "_smartToken", + "type": "address" + } + ], + "name": "addConvertibleToken", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_value", + "type": "address" + } + ], + "name": "isConvertibleToken", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_value", + "type": "address" + } + ], + "name": "isSmartToken", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "updateRegistry", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getConvertibleTokens", + "outputs": [ + { + "name": "", + "type": "address[]" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "prevRegistry", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getConvertibleTokenCount", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_convertibleToken", + "type": "address" + }, + { + "name": "_value", + "type": "address" + } + ], + "name": "isConvertibleTokenSmartToken", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "acceptOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getLiquidityPoolCount", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "registry", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getLiquidityPools", + "outputs": [ + { + "name": "", + "type": "address[]" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_index", + "type": "uint256" + } + ], + "name": "getConvertibleToken", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "owner", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_smartToken", + "type": "address" + } + ], + "name": "addSmartToken", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_index", + "type": "uint256" + } + ], + "name": "getSmartToken", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_convertibleToken", + "type": "address" + } + ], + "name": "getConvertibleTokenSmartTokenCount", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_index", + "type": "uint256" + } + ], + "name": "getLiquidityPool", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_liquidityPool", + "type": "address" + } + ], + "name": "removeLiquidityPool", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "restoreRegistry", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_smartToken", + "type": "address" + } + ], + "name": "removeSmartToken", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "newOwner", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_convertibleToken", + "type": "address" + }, + { + "name": "_index", + "type": "uint256" + } + ], + "name": "getConvertibleTokenSmartToken", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getSmartTokenCount", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_value", + "type": "address" + } + ], + "name": "isLiquidityPool", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_liquidityPool", + "type": "address" + } + ], + "name": "addLiquidityPool", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_convertibleToken", + "type": "address" + } + ], + "name": "getConvertibleTokenSmartTokens", + "outputs": [ + { + "name": "", + "type": "address[]" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_convertibleToken", + "type": "address" + }, + { + "name": "_smartToken", + "type": "address" + } + ], + "name": "removeConvertibleToken", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "name": "_registry", + "type": "address" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "_prevOwner", + "type": "address" + }, + { + "indexed": true, + "name": "_newOwner", + "type": "address" + } + ], + "name": "OwnerUpdate", + "type": "event" + } + ], + "devdoc": { + "methods": { + "acceptOwnership()": { + "details": "used by a new owner to accept an ownership transfer" + }, + "addConvertibleToken(address,address)": { + "details": "adds a convertible token", + "params": { + "_convertibleToken": "convertible token", + "_smartToken": "associated smart token" + } + }, + "addLiquidityPool(address)": { + "details": "adds a liquidity pool", + "params": { + "_liquidityPool": "liquidity pool" + } + }, + "addSmartToken(address)": { + "details": "adds a smart token", + "params": { + "_smartToken": "smart token" + } + }, + "getConvertibleToken(uint256)": { + "details": "returns the convertible token at a given index", + "params": { + "_index": "index" + }, + "return": "convertible token at the given index" + }, + "getConvertibleTokenCount()": { + "details": "returns the number of convertible tokens", + "return": "number of convertible tokens" + }, + "getConvertibleTokenSmartToken(address,uint256)": { + "details": "returns the smart token associated with a given convertible token at a given index", + "params": { + "_index": "index" + }, + "return": "smart token associated with the given convertible token at the given index" + }, + "getConvertibleTokenSmartTokenCount(address)": { + "details": "returns the number of smart tokens associated with a given convertible token", + "params": { + "_convertibleToken": "convertible token" + }, + "return": "number of smart tokens associated with the given convertible token" + }, + "getConvertibleTokenSmartTokens(address)": { + "details": "returns the list of smart tokens associated with a given convertible token", + "params": { + "_convertibleToken": "convertible token" + }, + "return": "list of smart tokens associated with the given convertible token" + }, + "getConvertibleTokens()": { + "details": "returns the list of convertible tokens", + "return": "list of convertible tokens" + }, + "getLiquidityPool(uint256)": { + "details": "returns the liquidity pool at a given index", + "params": { + "_index": "index" + }, + "return": "liquidity pool at the given index" + }, + "getLiquidityPoolCount()": { + "details": "returns the number of liquidity pools", + "return": "number of liquidity pools" + }, + "getLiquidityPools()": { + "details": "returns the list of liquidity pools", + "return": "list of liquidity pools" + }, + "getSmartToken(uint256)": { + "details": "returns the smart token at a given index", + "params": { + "_index": "index" + }, + "return": "smart token at the given index" + }, + "getSmartTokenCount()": { + "details": "returns the number of smart tokens", + "return": "number of smart tokens" + }, + "getSmartTokens()": { + "details": "returns the list of smart tokens", + "return": "list of smart tokens" + }, + "isConvertibleToken(address)": { + "details": "checks whether or not a given value is a convertible token", + "params": { + "_value": "value" + }, + "return": "true if the given value is a convertible token, false if not" + }, + "isConvertibleTokenSmartToken(address,address)": { + "details": "checks whether or not a given value is a smart token of a given convertible token", + "params": { + "_convertibleToken": "convertible token", + "_value": "value" + }, + "return": "true if the given value is a smart token of the given convertible token, false it not" + }, + "isLiquidityPool(address)": { + "details": "checks whether or not a given value is a liquidity pool", + "params": { + "_value": "value" + }, + "return": "true if the given value is a liquidity pool, false if not" + }, + "isSmartToken(address)": { + "details": "checks whether or not a given value is a smart token", + "params": { + "_value": "value" + }, + "return": "true if the given value is a smart token, false if not" + }, + "removeConvertibleToken(address,address)": { + "details": "removes a convertible token", + "params": { + "_convertibleToken": "convertible token", + "_smartToken": "associated smart token" + } + }, + "removeLiquidityPool(address)": { + "details": "removes a liquidity pool", + "params": { + "_liquidityPool": "liquidity pool" + } + }, + "removeSmartToken(address)": { + "details": "removes a smart token", + "params": { + "_smartToken": "smart token" + } + }, + "restoreRegistry()": { + "details": "restores the previous contract-registry" + }, + "restrictRegistryUpdate(bool)": { + "details": "restricts the permission to update the contract-registry", + "params": { + "_onlyOwnerCanUpdateRegistry": "indicates whether or not permission is restricted to owner only" + } + }, + "transferOwnership(address)": { + "details": "allows transferring the contract ownership the new owner still needs to accept the transfer can only be called by the contract owner", + "params": { + "_newOwner": "new contract owner" + } + }, + "updateRegistry()": { + "details": "updates to the new contract-registry" + } + } + }, + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b506040516020806114c5833981016040525160008054600160a060020a03191633179055808061004881640100000000610079810204565b5060028054600160a060020a03909216600160a060020a0319928316811790915560038054909216179055506100f3565b600160a060020a03811615156100f057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b50565b6113c3806101026000396000f3006080604052600436106101955763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663024c7ec7811461019a57806304ceaf41146101b65780632fe8a6ad1461021b57806336900c11146102445780633ab8857c1461026b5780634123ef601461028c57806349d10b64146102ad5780635f1b50fe146102c257806361cd756e146102d757806369be478414610308578063725b87861461032f57806379ba5097146103565780637a5f0ffd1461036b5780637b103999146103805780637f45c4c314610395578063865cf194146103aa5780638da5cb5b146103c25780638de6c3eb146103d7578063a109d214146103f8578063a43d5e9414610410578063a74498aa14610431578063ae22107f14610449578063b4a176d31461046a578063ceb9838c1461047f578063d4ee1d90146104a0578063d6c4b5b2146104b5578063e571049b146104d9578063e85455d7146104ee578063ee6a934c1461050f578063f2fde38b14610530578063f4fb86c014610551578063fba8f03114610572575b600080fd5b3480156101a657600080fd5b506101b46004351515610599565b005b3480156101c257600080fd5b506101cb6105e1565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156102075781810151838201526020016101ef565b505050509050019250505060405180910390f35b34801561022757600080fd5b50610230610647565b604080519115158252519081900360200190f35b34801561025057600080fd5b506101b4600160a060020a0360043581169060243516610668565b34801561027757600080fd5b50610230600160a060020a036004351661070a565b34801561029857600080fd5b50610230600160a060020a0360043516610729565b3480156102b957600080fd5b506101b4610747565b3480156102ce57600080fd5b506101cb6109a7565b3480156102e357600080fd5b506102ec610a0a565b60408051600160a060020a039092168252519081900360200190f35b34801561031457600080fd5b5061031d610a19565b60408051918252519081900360200190f35b34801561033b57600080fd5b50610230600160a060020a0360043581169060243516610a1f565b34801561036257600080fd5b506101b4610a51565b34801561037757600080fd5b5061031d610b05565b34801561038c57600080fd5b506102ec610b0b565b3480156103a157600080fd5b506101cb610b1a565b3480156103b657600080fd5b506102ec600435610b7d565b3480156103ce57600080fd5b506102ec610baa565b3480156103e357600080fd5b506101b4600160a060020a0360043516610bb9565b34801561040457600080fd5b506102ec600435610be0565b34801561041c57600080fd5b5061031d600160a060020a0360043516610bf2565b34801561043d57600080fd5b506102ec600435610c10565b34801561045557600080fd5b506101b4600160a060020a0360043516610c22565b34801561047657600080fd5b506101b4610c45565b34801561048b57600080fd5b506101b4600160a060020a0360043516610c71565b3480156104ac57600080fd5b506102ec610c94565b3480156104c157600080fd5b506102ec600160a060020a0360043516602435610ca3565b3480156104e557600080fd5b5061031d610ce6565b3480156104fa57600080fd5b50610230600160a060020a0360043516610cec565b34801561051b57600080fd5b506101b4600160a060020a0360043516610d0a565b34801561053c57600080fd5b506101b4600160a060020a0360043516610d2d565b34801561055d57600080fd5b506101cb600160a060020a0360043516610dbd565b34801561057e57600080fd5b506101b4600160a060020a0360043581169060243516610e36565b6105a1610f47565b60038054911515740100000000000000000000000000000000000000000274ff000000000000000000000000000000000000000019909216919091179055565b6060600460000180548060200260200160405190810160405280929190818152602001828054801561063c57602002820191906000526020600020905b8154600160a060020a0316815260019091019060200180831161061e575b505050505090505b90565b60035474010000000000000000000000000000000000000000900460ff1681565b600060008051602061135883398151915261068281610f99565b600160a060020a0384166000908152600960205260409020600181015490925015156106f757600880546001810182556000919091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee381018054600160a060020a031916600160a060020a03871617905582555b6107048260010184610ff2565b50505050565b600160a060020a03166000908152600960205260408120600101541190565b600160a060020a031660009081526005602052604090205460ff1690565b60008054600160a060020a031633148061077c575060035474010000000000000000000000000000000000000000900460ff16155b15156107c0576040805160e560020a62461bcd0281526020600482015260116024820152600080516020611378833981519152604482015290519081900360640190fd5b6107e97f436f6e74726163745265676973747279000000000000000000000000000000006110be565b600254909150600160a060020a038083169116148015906108125750600160a060020a03811615155b1515610868576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e56414c49445f5245474953545259000000000000000000000000604482015290519081900360640190fd5b604080517fbb34534c0000000000000000000000000000000000000000000000000000000081527f436f6e747261637452656769737472790000000000000000000000000000000060048201529051600091600160a060020a0384169163bb34534c9160248082019260209290919082900301818787803b1580156108ec57600080fd5b505af1158015610900573d6000803e3d6000fd5b505050506040513d602081101561091657600080fd5b5051600160a060020a03161415610977576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e56414c49445f5245474953545259000000000000000000000000604482015290519081900360640190fd5b6002805460038054600160a060020a03808416600160a060020a0319928316179092559091169216919091179055565b6060600860000180548060200260200160405190810160405280929190818152602001828054801561063c57602002820191906000526020600020908154600160a060020a0316815260019091019060200180831161061e575050505050905090565b600354600160a060020a031681565b60085490565b600160a060020a0391821660009081526009602090815260408083209390941682526002909201909152205460ff1690565b600154600160a060020a03163314610aa1576040805160e560020a62461bcd0281526020600482015260116024820152600080516020611378833981519152604482015290519081900360640190fd5b60015460008054604051600160a060020a0393841693909116917f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91a36001805460008054600160a060020a0319908116600160a060020a03841617909155169055565b60065490565b600254600160a060020a031681565b6060600660000180548060200260200160405190810160405280929190818152602001828054801561063c57602002820191906000526020600020908154600160a060020a0316815260019091019060200180831161061e575050505050905090565b600880546000919083908110610b8f57fe5b600091825260209091200154600160a060020a031692915050565b600054600160a060020a031681565b600080516020611358833981519152610bd181610f99565b610bdc600483610ff2565b5050565b600480546000919083908110610b8f57fe5b600160a060020a031660009081526009602052604090206001015490565b600680546000919083908110610b8f57fe5b600080516020611358833981519152610c3a81610f99565b610bdc600683611156565b610c4d610f47565b60035460028054600160a060020a031916600160a060020a03909216919091179055565b600080516020611358833981519152610c8981610f99565b610bdc600483611156565b600154600160a060020a031681565b600160a060020a0382166000908152600960205260408120600101805483908110610cca57fe5b600091825260209091200154600160a060020a03169392505050565b60045490565b600160a060020a031660009081526007602052604090205460ff1690565b600080516020611358833981519152610d2281610f99565b610bdc600683610ff2565b610d35610f47565b600054600160a060020a0382811691161415610d9b576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f53414d455f4f574e4552000000000000000000000000000000000000604482015290519081900360640190fd5b60018054600160a060020a031916600160a060020a0392909216919091179055565b600160a060020a038116600090815260096020908152604091829020600101805483518184028101840190945280845260609392830182828015610e2a57602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311610e0c575b50505050509050919050565b600080600080516020611358833981519152610e5181610f99565b600160a060020a03851660009081526009602052604090209250610e786001840185611156565b60018301541515610f4057600880546000198101908110610e9557fe5b60009182526020808320909101548554600160a060020a039091168084526009909252604090922082905560088054919450849290918110610ed357fe5b60009182526020909120018054600160a060020a031916600160a060020a03929092169190911790556008805490610f0f9060001983016112f6565b50600160a060020a0385166000908152600960205260408120818155906001820181610f3b828261131f565b505050505b5050505050565b600054600160a060020a03163314610f97576040805160e560020a62461bcd0281526020600482015260116024820152600080516020611378833981519152604482015290519081900360640190fd5b565b610fa2816110be565b600160a060020a03163314610fef576040805160e560020a62461bcd0281526020600482015260116024820152600080516020611378833981519152604482015290519081900360640190fd5b50565b600081610ffe81611296565b600160a060020a03831660009081526001850160205260409020805490925060ff1615611075576040805160e560020a62461bcd02815260206004820152601060248201527f4552525f494e56414c49445f4954454d00000000000000000000000000000000604482015290519081900360640190fd5b508254600180820185556000948552602090942081018054600160a060020a031916600160a060020a03949094169390931790925580830191909155805460ff19169091179055565b600254604080517fbb34534c000000000000000000000000000000000000000000000000000000008152600481018490529051600092600160a060020a03169163bb34534c91602480830192602092919082900301818787803b15801561112457600080fd5b505af1158015611138573d6000803e3d6000fd5b505050506040513d602081101561114e57600080fd5b505192915050565b6000808261116381611296565b600160a060020a03841660009081526001860160205260409020805490935060ff1615156111db576040805160e560020a62461bcd02815260206004820152601060248201527f4552525f494e56414c49445f4954454d00000000000000000000000000000000604482015290519081900360640190fd5b8454859060001981019081106111ed57fe5b6000918252602080832090910154600186810154600160a060020a039092168085528982019093526040909320909201829055865490935083918791811061123157fe5b60009182526020909120018054600160a060020a031916600160a060020a0392909216919091179055845461126a8660001983016112f6565b50505050600160a060020a03166000908152600191820160205260408120805460ff1916815590910155565b600160a060020a0381161515610fef576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b81548183558181111561131a5760008381526020902061131a918101908301611339565b505050565b5080546000825590600052602060002090810190610fef91905b61064491905b80821115611353576000815560010161133f565b50905600536f7672796e53776170436f6e766572746572526567697374727900000000004552525f4143434553535f44454e494544000000000000000000000000000000a165627a7a723058206b671ad1ad9aa02a1974fcfa03ba6bef1787e7de7a6491d7be73d7fc497f18470029", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP1 PUSH2 0x14C5 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 MSTORE MLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND CALLER OR SWAP1 SSTORE DUP1 DUP1 PUSH2 0x48 DUP2 PUSH5 0x100000000 PUSH2 0x79 DUP2 MUL DIV JUMP JUMPDEST POP PUSH1 0x2 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT SWAP3 DUP4 AND DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x3 DUP1 SLOAD SWAP1 SWAP3 AND OR SWAP1 SSTORE POP PUSH2 0xF3 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0xF0 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x13C3 DUP1 PUSH2 0x102 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x195 JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x24C7EC7 DUP2 EQ PUSH2 0x19A JUMPI DUP1 PUSH4 0x4CEAF41 EQ PUSH2 0x1B6 JUMPI DUP1 PUSH4 0x2FE8A6AD EQ PUSH2 0x21B JUMPI DUP1 PUSH4 0x36900C11 EQ PUSH2 0x244 JUMPI DUP1 PUSH4 0x3AB8857C EQ PUSH2 0x26B JUMPI DUP1 PUSH4 0x4123EF60 EQ PUSH2 0x28C JUMPI DUP1 PUSH4 0x49D10B64 EQ PUSH2 0x2AD JUMPI DUP1 PUSH4 0x5F1B50FE EQ PUSH2 0x2C2 JUMPI DUP1 PUSH4 0x61CD756E EQ PUSH2 0x2D7 JUMPI DUP1 PUSH4 0x69BE4784 EQ PUSH2 0x308 JUMPI DUP1 PUSH4 0x725B8786 EQ PUSH2 0x32F JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x356 JUMPI DUP1 PUSH4 0x7A5F0FFD EQ PUSH2 0x36B JUMPI DUP1 PUSH4 0x7B103999 EQ PUSH2 0x380 JUMPI DUP1 PUSH4 0x7F45C4C3 EQ PUSH2 0x395 JUMPI DUP1 PUSH4 0x865CF194 EQ PUSH2 0x3AA JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x3C2 JUMPI DUP1 PUSH4 0x8DE6C3EB EQ PUSH2 0x3D7 JUMPI DUP1 PUSH4 0xA109D214 EQ PUSH2 0x3F8 JUMPI DUP1 PUSH4 0xA43D5E94 EQ PUSH2 0x410 JUMPI DUP1 PUSH4 0xA74498AA EQ PUSH2 0x431 JUMPI DUP1 PUSH4 0xAE22107F EQ PUSH2 0x449 JUMPI DUP1 PUSH4 0xB4A176D3 EQ PUSH2 0x46A JUMPI DUP1 PUSH4 0xCEB9838C EQ PUSH2 0x47F JUMPI DUP1 PUSH4 0xD4EE1D90 EQ PUSH2 0x4A0 JUMPI DUP1 PUSH4 0xD6C4B5B2 EQ PUSH2 0x4B5 JUMPI DUP1 PUSH4 0xE571049B EQ PUSH2 0x4D9 JUMPI DUP1 PUSH4 0xE85455D7 EQ PUSH2 0x4EE JUMPI DUP1 PUSH4 0xEE6A934C EQ PUSH2 0x50F JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x530 JUMPI DUP1 PUSH4 0xF4FB86C0 EQ PUSH2 0x551 JUMPI DUP1 PUSH4 0xFBA8F031 EQ PUSH2 0x572 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1A6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B4 PUSH1 0x4 CALLDATALOAD ISZERO ISZERO PUSH2 0x599 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1C2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1CB PUSH2 0x5E1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP4 MLOAD DUP2 DUP4 ADD MSTORE DUP4 MLOAD SWAP2 SWAP3 DUP4 SWAP3 SWAP1 DUP4 ADD SWAP2 DUP6 DUP2 ADD SWAP2 MUL DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x207 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x1EF JUMP JUMPDEST POP POP POP POP SWAP1 POP ADD SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x227 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x230 PUSH2 0x647 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x250 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH2 0x668 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x277 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x230 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x70A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x298 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x230 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x729 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2B9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B4 PUSH2 0x747 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2CE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1CB PUSH2 0x9A7 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2E3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2EC PUSH2 0xA0A JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x314 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x31D PUSH2 0xA19 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x33B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x230 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH2 0xA1F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x362 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B4 PUSH2 0xA51 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x377 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x31D PUSH2 0xB05 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x38C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2EC PUSH2 0xB0B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3A1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1CB PUSH2 0xB1A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3B6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2EC PUSH1 0x4 CALLDATALOAD PUSH2 0xB7D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3CE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2EC PUSH2 0xBAA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3E3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0xBB9 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x404 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2EC PUSH1 0x4 CALLDATALOAD PUSH2 0xBE0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x41C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x31D PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0xBF2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x43D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2EC PUSH1 0x4 CALLDATALOAD PUSH2 0xC10 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x455 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0xC22 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x476 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B4 PUSH2 0xC45 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x48B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0xC71 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4AC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2EC PUSH2 0xC94 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4C1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2EC PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0xCA3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4E5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x31D PUSH2 0xCE6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4FA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x230 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0xCEC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x51B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0xD0A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x53C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0xD2D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x55D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1CB PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0xDBD JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x57E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH2 0xE36 JUMP JUMPDEST PUSH2 0x5A1 PUSH2 0xF47 JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD SWAP2 ISZERO ISZERO PUSH21 0x10000000000000000000000000000000000000000 MUL PUSH21 0xFF0000000000000000000000000000000000000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 PUSH1 0x0 ADD DUP1 SLOAD DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD DUP1 ISZERO PUSH2 0x63C JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x61E JUMPI JUMPDEST POP POP POP POP POP SWAP1 POP JUMPDEST SWAP1 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1358 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x682 DUP2 PUSH2 0xF99 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 DUP2 ADD SLOAD SWAP1 SWAP3 POP ISZERO ISZERO PUSH2 0x6F7 JUMPI PUSH1 0x8 DUP1 SLOAD PUSH1 0x1 DUP2 ADD DUP3 SSTORE PUSH1 0x0 SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0xF3F7A9FE364FAAB93B216DA50A3214154F22A0A2B415B23A84C8169E8B636EE3 DUP2 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND OR SWAP1 SSTORE DUP3 SSTORE JUMPDEST PUSH2 0x704 DUP3 PUSH1 0x1 ADD DUP5 PUSH2 0xFF2 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH1 0x1 ADD SLOAD GT SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ DUP1 PUSH2 0x77C JUMPI POP PUSH1 0x3 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x7C0 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1378 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x7E9 PUSH32 0x436F6E7472616374526567697374727900000000000000000000000000000000 PUSH2 0x10BE JUMP JUMPDEST PUSH1 0x2 SLOAD SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP4 AND SWAP2 AND EQ DUP1 ISZERO SWAP1 PUSH2 0x812 JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x868 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245474953545259000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0xBB34534C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH32 0x436F6E7472616374526567697374727900000000000000000000000000000000 PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP2 PUSH4 0xBB34534C SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x8EC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x900 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x916 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ ISZERO PUSH2 0x977 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245474953545259000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP5 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT SWAP3 DUP4 AND OR SWAP1 SWAP3 SSTORE SWAP1 SWAP2 AND SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x60 PUSH1 0x8 PUSH1 0x0 ADD DUP1 SLOAD DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD DUP1 ISZERO PUSH2 0x63C JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x61E JUMPI POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x8 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE PUSH1 0x2 SWAP1 SWAP3 ADD SWAP1 SWAP2 MSTORE KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0xAA1 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1378 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND SWAP4 SWAP1 SWAP2 AND SWAP2 PUSH32 0x343765429AEA5A34B3FF6A3785A98A5ABB2597ACA87BFBB58632C173D585373A SWAP2 LOG3 PUSH1 0x1 DUP1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND OR SWAP1 SWAP2 SSTORE AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x6 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x6 PUSH1 0x0 ADD DUP1 SLOAD DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD DUP1 ISZERO PUSH2 0x63C JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x61E JUMPI POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x8 DUP1 SLOAD PUSH1 0x0 SWAP2 SWAP1 DUP4 SWAP1 DUP2 LT PUSH2 0xB8F JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1358 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0xBD1 DUP2 PUSH2 0xF99 JUMP JUMPDEST PUSH2 0xBDC PUSH1 0x4 DUP4 PUSH2 0xFF2 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x4 DUP1 SLOAD PUSH1 0x0 SWAP2 SWAP1 DUP4 SWAP1 DUP2 LT PUSH2 0xB8F JUMPI INVALID JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x6 DUP1 SLOAD PUSH1 0x0 SWAP2 SWAP1 DUP4 SWAP1 DUP2 LT PUSH2 0xB8F JUMPI INVALID JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1358 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0xC3A DUP2 PUSH2 0xF99 JUMP JUMPDEST PUSH2 0xBDC PUSH1 0x6 DUP4 PUSH2 0x1156 JUMP JUMPDEST PUSH2 0xC4D PUSH2 0xF47 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x2 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1358 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0xC89 DUP2 PUSH2 0xF99 JUMP JUMPDEST PUSH2 0xBDC PUSH1 0x4 DUP4 PUSH2 0x1156 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH1 0x1 ADD DUP1 SLOAD DUP4 SWAP1 DUP2 LT PUSH2 0xCCA JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x4 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1358 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0xD22 DUP2 PUSH2 0xF99 JUMP JUMPDEST PUSH2 0xBDC PUSH1 0x6 DUP4 PUSH2 0xFF2 JUMP JUMPDEST PUSH2 0xD35 PUSH2 0xF47 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0xD9B JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F4F574E4552000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 PUSH1 0x1 ADD DUP1 SLOAD DUP4 MLOAD DUP2 DUP5 MUL DUP2 ADD DUP5 ADD SWAP1 SWAP5 MSTORE DUP1 DUP5 MSTORE PUSH1 0x60 SWAP4 SWAP3 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0xE2A JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xE0C JUMPI JUMPDEST POP POP POP POP POP SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1358 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0xE51 DUP2 PUSH2 0xF99 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP3 POP PUSH2 0xE78 PUSH1 0x1 DUP5 ADD DUP6 PUSH2 0x1156 JUMP JUMPDEST PUSH1 0x1 DUP4 ADD SLOAD ISZERO ISZERO PUSH2 0xF40 JUMPI PUSH1 0x8 DUP1 SLOAD PUSH1 0x0 NOT DUP2 ADD SWAP1 DUP2 LT PUSH2 0xE95 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 SWAP1 SWAP2 ADD SLOAD DUP6 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP2 AND DUP1 DUP5 MSTORE PUSH1 0x9 SWAP1 SWAP3 MSTORE PUSH1 0x40 SWAP1 SWAP3 KECCAK256 DUP3 SWAP1 SSTORE PUSH1 0x8 DUP1 SLOAD SWAP2 SWAP5 POP DUP5 SWAP3 SWAP1 SWAP2 DUP2 LT PUSH2 0xED3 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH1 0x8 DUP1 SLOAD SWAP1 PUSH2 0xF0F SWAP1 PUSH1 0x0 NOT DUP4 ADD PUSH2 0x12F6 JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP2 DUP2 SSTORE SWAP1 PUSH1 0x1 DUP3 ADD DUP2 PUSH2 0xF3B DUP3 DUP3 PUSH2 0x131F JUMP JUMPDEST POP POP POP POP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0xF97 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1378 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH2 0xFA2 DUP2 PUSH2 0x10BE JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0xFEF JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1378 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0xFFE DUP2 PUSH2 0x1296 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 DUP6 ADD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD SWAP1 SWAP3 POP PUSH1 0xFF AND ISZERO PUSH2 0x1075 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4954454D00000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP DUP3 SLOAD PUSH1 0x1 DUP1 DUP3 ADD DUP6 SSTORE PUSH1 0x0 SWAP5 DUP6 MSTORE PUSH1 0x20 SWAP1 SWAP5 KECCAK256 DUP2 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP5 SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 OR SWAP1 SWAP3 SSTORE DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 SSTORE DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xBB34534C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP2 PUSH4 0xBB34534C SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1124 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1138 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x114E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 PUSH2 0x1163 DUP2 PUSH2 0x1296 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 DUP7 ADD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD SWAP1 SWAP4 POP PUSH1 0xFF AND ISZERO ISZERO PUSH2 0x11DB JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4954454D00000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP5 SLOAD DUP6 SWAP1 PUSH1 0x0 NOT DUP2 ADD SWAP1 DUP2 LT PUSH2 0x11ED JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 SWAP1 SWAP2 ADD SLOAD PUSH1 0x1 DUP7 DUP2 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP1 DUP6 MSTORE DUP10 DUP3 ADD SWAP1 SWAP4 MSTORE PUSH1 0x40 SWAP1 SWAP4 KECCAK256 SWAP1 SWAP3 ADD DUP3 SWAP1 SSTORE DUP7 SLOAD SWAP1 SWAP4 POP DUP4 SWAP2 DUP8 SWAP2 DUP2 LT PUSH2 0x1231 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE DUP5 SLOAD PUSH2 0x126A DUP7 PUSH1 0x0 NOT DUP4 ADD PUSH2 0x12F6 JUMP JUMPDEST POP POP POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 SWAP2 DUP3 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND DUP2 SSTORE SWAP1 SWAP2 ADD SSTORE JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0xFEF JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP2 SLOAD DUP2 DUP4 SSTORE DUP2 DUP2 GT ISZERO PUSH2 0x131A JUMPI PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 SWAP1 KECCAK256 PUSH2 0x131A SWAP2 DUP2 ADD SWAP1 DUP4 ADD PUSH2 0x1339 JUMP JUMPDEST POP POP POP JUMP JUMPDEST POP DUP1 SLOAD PUSH1 0x0 DUP3 SSTORE SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP1 PUSH2 0xFEF SWAP2 SWAP1 JUMPDEST PUSH2 0x644 SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x1353 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x133F JUMP JUMPDEST POP SWAP1 JUMP STOP MSTORE8 PUSH16 0x7672796E53776170436F6E7665727465 PUSH19 0x526567697374727900000000004552525F4143 NUMBER GASLIMIT MSTORE8 MSTORE8 0x5f DIFFICULTY GASLIMIT 0x4e 0x49 GASLIMIT DIFFICULTY STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 PUSH12 0x671AD1AD9AA02A1974FCFA03 0xba PUSH12 0xEF1787E7DE7A6491D7BE73D7 0xfc 0x49 PUSH32 0x1847002900000000000000000000000000000000000000000000000000000000 ", + "sourceMap": "677:8149:7:-;;;1235:84;8:9:-1;5:2;;;30:1;27;20:12;5:2;1235:84:7;;;;;;;;;;;;;488:5:66;:18;;-1:-1:-1;;;;;;488:18:66;496:10;488:18;;;1235:84:7;;475:23:72;1235:84:7;475:13:72;;;;:23;:::i;:::-;-1:-1:-1;1931:8:60;:39;;-1:-1:-1;;;;;1931:39:60;;;-1:-1:-1;;;;;;1931:39:60;;;;;;;;1974:12;:43;;;;;;;;-1:-1:-1;677:8149:7;;553:117:72;-1:-1:-1;;;;;620:22:72;;;;612:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;553:117;:::o;677:8149:7:-;;;;;;;" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "6080604052600436106101955763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663024c7ec7811461019a57806304ceaf41146101b65780632fe8a6ad1461021b57806336900c11146102445780633ab8857c1461026b5780634123ef601461028c57806349d10b64146102ad5780635f1b50fe146102c257806361cd756e146102d757806369be478414610308578063725b87861461032f57806379ba5097146103565780637a5f0ffd1461036b5780637b103999146103805780637f45c4c314610395578063865cf194146103aa5780638da5cb5b146103c25780638de6c3eb146103d7578063a109d214146103f8578063a43d5e9414610410578063a74498aa14610431578063ae22107f14610449578063b4a176d31461046a578063ceb9838c1461047f578063d4ee1d90146104a0578063d6c4b5b2146104b5578063e571049b146104d9578063e85455d7146104ee578063ee6a934c1461050f578063f2fde38b14610530578063f4fb86c014610551578063fba8f03114610572575b600080fd5b3480156101a657600080fd5b506101b46004351515610599565b005b3480156101c257600080fd5b506101cb6105e1565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156102075781810151838201526020016101ef565b505050509050019250505060405180910390f35b34801561022757600080fd5b50610230610647565b604080519115158252519081900360200190f35b34801561025057600080fd5b506101b4600160a060020a0360043581169060243516610668565b34801561027757600080fd5b50610230600160a060020a036004351661070a565b34801561029857600080fd5b50610230600160a060020a0360043516610729565b3480156102b957600080fd5b506101b4610747565b3480156102ce57600080fd5b506101cb6109a7565b3480156102e357600080fd5b506102ec610a0a565b60408051600160a060020a039092168252519081900360200190f35b34801561031457600080fd5b5061031d610a19565b60408051918252519081900360200190f35b34801561033b57600080fd5b50610230600160a060020a0360043581169060243516610a1f565b34801561036257600080fd5b506101b4610a51565b34801561037757600080fd5b5061031d610b05565b34801561038c57600080fd5b506102ec610b0b565b3480156103a157600080fd5b506101cb610b1a565b3480156103b657600080fd5b506102ec600435610b7d565b3480156103ce57600080fd5b506102ec610baa565b3480156103e357600080fd5b506101b4600160a060020a0360043516610bb9565b34801561040457600080fd5b506102ec600435610be0565b34801561041c57600080fd5b5061031d600160a060020a0360043516610bf2565b34801561043d57600080fd5b506102ec600435610c10565b34801561045557600080fd5b506101b4600160a060020a0360043516610c22565b34801561047657600080fd5b506101b4610c45565b34801561048b57600080fd5b506101b4600160a060020a0360043516610c71565b3480156104ac57600080fd5b506102ec610c94565b3480156104c157600080fd5b506102ec600160a060020a0360043516602435610ca3565b3480156104e557600080fd5b5061031d610ce6565b3480156104fa57600080fd5b50610230600160a060020a0360043516610cec565b34801561051b57600080fd5b506101b4600160a060020a0360043516610d0a565b34801561053c57600080fd5b506101b4600160a060020a0360043516610d2d565b34801561055d57600080fd5b506101cb600160a060020a0360043516610dbd565b34801561057e57600080fd5b506101b4600160a060020a0360043581169060243516610e36565b6105a1610f47565b60038054911515740100000000000000000000000000000000000000000274ff000000000000000000000000000000000000000019909216919091179055565b6060600460000180548060200260200160405190810160405280929190818152602001828054801561063c57602002820191906000526020600020905b8154600160a060020a0316815260019091019060200180831161061e575b505050505090505b90565b60035474010000000000000000000000000000000000000000900460ff1681565b600060008051602061135883398151915261068281610f99565b600160a060020a0384166000908152600960205260409020600181015490925015156106f757600880546001810182556000919091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee381018054600160a060020a031916600160a060020a03871617905582555b6107048260010184610ff2565b50505050565b600160a060020a03166000908152600960205260408120600101541190565b600160a060020a031660009081526005602052604090205460ff1690565b60008054600160a060020a031633148061077c575060035474010000000000000000000000000000000000000000900460ff16155b15156107c0576040805160e560020a62461bcd0281526020600482015260116024820152600080516020611378833981519152604482015290519081900360640190fd5b6107e97f436f6e74726163745265676973747279000000000000000000000000000000006110be565b600254909150600160a060020a038083169116148015906108125750600160a060020a03811615155b1515610868576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e56414c49445f5245474953545259000000000000000000000000604482015290519081900360640190fd5b604080517fbb34534c0000000000000000000000000000000000000000000000000000000081527f436f6e747261637452656769737472790000000000000000000000000000000060048201529051600091600160a060020a0384169163bb34534c9160248082019260209290919082900301818787803b1580156108ec57600080fd5b505af1158015610900573d6000803e3d6000fd5b505050506040513d602081101561091657600080fd5b5051600160a060020a03161415610977576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e56414c49445f5245474953545259000000000000000000000000604482015290519081900360640190fd5b6002805460038054600160a060020a03808416600160a060020a0319928316179092559091169216919091179055565b6060600860000180548060200260200160405190810160405280929190818152602001828054801561063c57602002820191906000526020600020908154600160a060020a0316815260019091019060200180831161061e575050505050905090565b600354600160a060020a031681565b60085490565b600160a060020a0391821660009081526009602090815260408083209390941682526002909201909152205460ff1690565b600154600160a060020a03163314610aa1576040805160e560020a62461bcd0281526020600482015260116024820152600080516020611378833981519152604482015290519081900360640190fd5b60015460008054604051600160a060020a0393841693909116917f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91a36001805460008054600160a060020a0319908116600160a060020a03841617909155169055565b60065490565b600254600160a060020a031681565b6060600660000180548060200260200160405190810160405280929190818152602001828054801561063c57602002820191906000526020600020908154600160a060020a0316815260019091019060200180831161061e575050505050905090565b600880546000919083908110610b8f57fe5b600091825260209091200154600160a060020a031692915050565b600054600160a060020a031681565b600080516020611358833981519152610bd181610f99565b610bdc600483610ff2565b5050565b600480546000919083908110610b8f57fe5b600160a060020a031660009081526009602052604090206001015490565b600680546000919083908110610b8f57fe5b600080516020611358833981519152610c3a81610f99565b610bdc600683611156565b610c4d610f47565b60035460028054600160a060020a031916600160a060020a03909216919091179055565b600080516020611358833981519152610c8981610f99565b610bdc600483611156565b600154600160a060020a031681565b600160a060020a0382166000908152600960205260408120600101805483908110610cca57fe5b600091825260209091200154600160a060020a03169392505050565b60045490565b600160a060020a031660009081526007602052604090205460ff1690565b600080516020611358833981519152610d2281610f99565b610bdc600683610ff2565b610d35610f47565b600054600160a060020a0382811691161415610d9b576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f53414d455f4f574e4552000000000000000000000000000000000000604482015290519081900360640190fd5b60018054600160a060020a031916600160a060020a0392909216919091179055565b600160a060020a038116600090815260096020908152604091829020600101805483518184028101840190945280845260609392830182828015610e2a57602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311610e0c575b50505050509050919050565b600080600080516020611358833981519152610e5181610f99565b600160a060020a03851660009081526009602052604090209250610e786001840185611156565b60018301541515610f4057600880546000198101908110610e9557fe5b60009182526020808320909101548554600160a060020a039091168084526009909252604090922082905560088054919450849290918110610ed357fe5b60009182526020909120018054600160a060020a031916600160a060020a03929092169190911790556008805490610f0f9060001983016112f6565b50600160a060020a0385166000908152600960205260408120818155906001820181610f3b828261131f565b505050505b5050505050565b600054600160a060020a03163314610f97576040805160e560020a62461bcd0281526020600482015260116024820152600080516020611378833981519152604482015290519081900360640190fd5b565b610fa2816110be565b600160a060020a03163314610fef576040805160e560020a62461bcd0281526020600482015260116024820152600080516020611378833981519152604482015290519081900360640190fd5b50565b600081610ffe81611296565b600160a060020a03831660009081526001850160205260409020805490925060ff1615611075576040805160e560020a62461bcd02815260206004820152601060248201527f4552525f494e56414c49445f4954454d00000000000000000000000000000000604482015290519081900360640190fd5b508254600180820185556000948552602090942081018054600160a060020a031916600160a060020a03949094169390931790925580830191909155805460ff19169091179055565b600254604080517fbb34534c000000000000000000000000000000000000000000000000000000008152600481018490529051600092600160a060020a03169163bb34534c91602480830192602092919082900301818787803b15801561112457600080fd5b505af1158015611138573d6000803e3d6000fd5b505050506040513d602081101561114e57600080fd5b505192915050565b6000808261116381611296565b600160a060020a03841660009081526001860160205260409020805490935060ff1615156111db576040805160e560020a62461bcd02815260206004820152601060248201527f4552525f494e56414c49445f4954454d00000000000000000000000000000000604482015290519081900360640190fd5b8454859060001981019081106111ed57fe5b6000918252602080832090910154600186810154600160a060020a039092168085528982019093526040909320909201829055865490935083918791811061123157fe5b60009182526020909120018054600160a060020a031916600160a060020a0392909216919091179055845461126a8660001983016112f6565b50505050600160a060020a03166000908152600191820160205260408120805460ff1916815590910155565b600160a060020a0381161515610fef576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b81548183558181111561131a5760008381526020902061131a918101908301611339565b505050565b5080546000825590600052602060002090810190610fef91905b61064491905b80821115611353576000815560010161133f565b50905600536f7672796e53776170436f6e766572746572526567697374727900000000004552525f4143434553535f44454e494544000000000000000000000000000000a165627a7a723058206b671ad1ad9aa02a1974fcfa03ba6bef1787e7de7a6491d7be73d7fc497f18470029", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x195 JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x24C7EC7 DUP2 EQ PUSH2 0x19A JUMPI DUP1 PUSH4 0x4CEAF41 EQ PUSH2 0x1B6 JUMPI DUP1 PUSH4 0x2FE8A6AD EQ PUSH2 0x21B JUMPI DUP1 PUSH4 0x36900C11 EQ PUSH2 0x244 JUMPI DUP1 PUSH4 0x3AB8857C EQ PUSH2 0x26B JUMPI DUP1 PUSH4 0x4123EF60 EQ PUSH2 0x28C JUMPI DUP1 PUSH4 0x49D10B64 EQ PUSH2 0x2AD JUMPI DUP1 PUSH4 0x5F1B50FE EQ PUSH2 0x2C2 JUMPI DUP1 PUSH4 0x61CD756E EQ PUSH2 0x2D7 JUMPI DUP1 PUSH4 0x69BE4784 EQ PUSH2 0x308 JUMPI DUP1 PUSH4 0x725B8786 EQ PUSH2 0x32F JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x356 JUMPI DUP1 PUSH4 0x7A5F0FFD EQ PUSH2 0x36B JUMPI DUP1 PUSH4 0x7B103999 EQ PUSH2 0x380 JUMPI DUP1 PUSH4 0x7F45C4C3 EQ PUSH2 0x395 JUMPI DUP1 PUSH4 0x865CF194 EQ PUSH2 0x3AA JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x3C2 JUMPI DUP1 PUSH4 0x8DE6C3EB EQ PUSH2 0x3D7 JUMPI DUP1 PUSH4 0xA109D214 EQ PUSH2 0x3F8 JUMPI DUP1 PUSH4 0xA43D5E94 EQ PUSH2 0x410 JUMPI DUP1 PUSH4 0xA74498AA EQ PUSH2 0x431 JUMPI DUP1 PUSH4 0xAE22107F EQ PUSH2 0x449 JUMPI DUP1 PUSH4 0xB4A176D3 EQ PUSH2 0x46A JUMPI DUP1 PUSH4 0xCEB9838C EQ PUSH2 0x47F JUMPI DUP1 PUSH4 0xD4EE1D90 EQ PUSH2 0x4A0 JUMPI DUP1 PUSH4 0xD6C4B5B2 EQ PUSH2 0x4B5 JUMPI DUP1 PUSH4 0xE571049B EQ PUSH2 0x4D9 JUMPI DUP1 PUSH4 0xE85455D7 EQ PUSH2 0x4EE JUMPI DUP1 PUSH4 0xEE6A934C EQ PUSH2 0x50F JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x530 JUMPI DUP1 PUSH4 0xF4FB86C0 EQ PUSH2 0x551 JUMPI DUP1 PUSH4 0xFBA8F031 EQ PUSH2 0x572 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1A6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B4 PUSH1 0x4 CALLDATALOAD ISZERO ISZERO PUSH2 0x599 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1C2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1CB PUSH2 0x5E1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP4 MLOAD DUP2 DUP4 ADD MSTORE DUP4 MLOAD SWAP2 SWAP3 DUP4 SWAP3 SWAP1 DUP4 ADD SWAP2 DUP6 DUP2 ADD SWAP2 MUL DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x207 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x1EF JUMP JUMPDEST POP POP POP POP SWAP1 POP ADD SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x227 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x230 PUSH2 0x647 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x250 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH2 0x668 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x277 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x230 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x70A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x298 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x230 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x729 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2B9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B4 PUSH2 0x747 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2CE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1CB PUSH2 0x9A7 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2E3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2EC PUSH2 0xA0A JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x314 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x31D PUSH2 0xA19 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x33B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x230 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH2 0xA1F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x362 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B4 PUSH2 0xA51 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x377 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x31D PUSH2 0xB05 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x38C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2EC PUSH2 0xB0B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3A1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1CB PUSH2 0xB1A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3B6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2EC PUSH1 0x4 CALLDATALOAD PUSH2 0xB7D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3CE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2EC PUSH2 0xBAA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3E3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0xBB9 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x404 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2EC PUSH1 0x4 CALLDATALOAD PUSH2 0xBE0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x41C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x31D PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0xBF2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x43D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2EC PUSH1 0x4 CALLDATALOAD PUSH2 0xC10 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x455 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0xC22 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x476 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B4 PUSH2 0xC45 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x48B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0xC71 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4AC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2EC PUSH2 0xC94 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4C1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2EC PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0xCA3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4E5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x31D PUSH2 0xCE6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4FA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x230 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0xCEC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x51B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0xD0A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x53C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0xD2D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x55D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1CB PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0xDBD JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x57E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH2 0xE36 JUMP JUMPDEST PUSH2 0x5A1 PUSH2 0xF47 JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD SWAP2 ISZERO ISZERO PUSH21 0x10000000000000000000000000000000000000000 MUL PUSH21 0xFF0000000000000000000000000000000000000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 PUSH1 0x0 ADD DUP1 SLOAD DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD DUP1 ISZERO PUSH2 0x63C JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x61E JUMPI JUMPDEST POP POP POP POP POP SWAP1 POP JUMPDEST SWAP1 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1358 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x682 DUP2 PUSH2 0xF99 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 DUP2 ADD SLOAD SWAP1 SWAP3 POP ISZERO ISZERO PUSH2 0x6F7 JUMPI PUSH1 0x8 DUP1 SLOAD PUSH1 0x1 DUP2 ADD DUP3 SSTORE PUSH1 0x0 SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0xF3F7A9FE364FAAB93B216DA50A3214154F22A0A2B415B23A84C8169E8B636EE3 DUP2 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND OR SWAP1 SSTORE DUP3 SSTORE JUMPDEST PUSH2 0x704 DUP3 PUSH1 0x1 ADD DUP5 PUSH2 0xFF2 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH1 0x1 ADD SLOAD GT SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ DUP1 PUSH2 0x77C JUMPI POP PUSH1 0x3 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x7C0 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1378 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x7E9 PUSH32 0x436F6E7472616374526567697374727900000000000000000000000000000000 PUSH2 0x10BE JUMP JUMPDEST PUSH1 0x2 SLOAD SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP4 AND SWAP2 AND EQ DUP1 ISZERO SWAP1 PUSH2 0x812 JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x868 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245474953545259000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0xBB34534C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH32 0x436F6E7472616374526567697374727900000000000000000000000000000000 PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP2 PUSH4 0xBB34534C SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x8EC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x900 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x916 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ ISZERO PUSH2 0x977 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245474953545259000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP5 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT SWAP3 DUP4 AND OR SWAP1 SWAP3 SSTORE SWAP1 SWAP2 AND SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x60 PUSH1 0x8 PUSH1 0x0 ADD DUP1 SLOAD DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD DUP1 ISZERO PUSH2 0x63C JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x61E JUMPI POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x8 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE PUSH1 0x2 SWAP1 SWAP3 ADD SWAP1 SWAP2 MSTORE KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0xAA1 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1378 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND SWAP4 SWAP1 SWAP2 AND SWAP2 PUSH32 0x343765429AEA5A34B3FF6A3785A98A5ABB2597ACA87BFBB58632C173D585373A SWAP2 LOG3 PUSH1 0x1 DUP1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND OR SWAP1 SWAP2 SSTORE AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x6 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x6 PUSH1 0x0 ADD DUP1 SLOAD DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD DUP1 ISZERO PUSH2 0x63C JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x61E JUMPI POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x8 DUP1 SLOAD PUSH1 0x0 SWAP2 SWAP1 DUP4 SWAP1 DUP2 LT PUSH2 0xB8F JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1358 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0xBD1 DUP2 PUSH2 0xF99 JUMP JUMPDEST PUSH2 0xBDC PUSH1 0x4 DUP4 PUSH2 0xFF2 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x4 DUP1 SLOAD PUSH1 0x0 SWAP2 SWAP1 DUP4 SWAP1 DUP2 LT PUSH2 0xB8F JUMPI INVALID JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x6 DUP1 SLOAD PUSH1 0x0 SWAP2 SWAP1 DUP4 SWAP1 DUP2 LT PUSH2 0xB8F JUMPI INVALID JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1358 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0xC3A DUP2 PUSH2 0xF99 JUMP JUMPDEST PUSH2 0xBDC PUSH1 0x6 DUP4 PUSH2 0x1156 JUMP JUMPDEST PUSH2 0xC4D PUSH2 0xF47 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x2 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1358 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0xC89 DUP2 PUSH2 0xF99 JUMP JUMPDEST PUSH2 0xBDC PUSH1 0x4 DUP4 PUSH2 0x1156 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH1 0x1 ADD DUP1 SLOAD DUP4 SWAP1 DUP2 LT PUSH2 0xCCA JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x4 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1358 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0xD22 DUP2 PUSH2 0xF99 JUMP JUMPDEST PUSH2 0xBDC PUSH1 0x6 DUP4 PUSH2 0xFF2 JUMP JUMPDEST PUSH2 0xD35 PUSH2 0xF47 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0xD9B JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F4F574E4552000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 PUSH1 0x1 ADD DUP1 SLOAD DUP4 MLOAD DUP2 DUP5 MUL DUP2 ADD DUP5 ADD SWAP1 SWAP5 MSTORE DUP1 DUP5 MSTORE PUSH1 0x60 SWAP4 SWAP3 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0xE2A JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xE0C JUMPI JUMPDEST POP POP POP POP POP SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1358 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0xE51 DUP2 PUSH2 0xF99 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP3 POP PUSH2 0xE78 PUSH1 0x1 DUP5 ADD DUP6 PUSH2 0x1156 JUMP JUMPDEST PUSH1 0x1 DUP4 ADD SLOAD ISZERO ISZERO PUSH2 0xF40 JUMPI PUSH1 0x8 DUP1 SLOAD PUSH1 0x0 NOT DUP2 ADD SWAP1 DUP2 LT PUSH2 0xE95 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 SWAP1 SWAP2 ADD SLOAD DUP6 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP2 AND DUP1 DUP5 MSTORE PUSH1 0x9 SWAP1 SWAP3 MSTORE PUSH1 0x40 SWAP1 SWAP3 KECCAK256 DUP3 SWAP1 SSTORE PUSH1 0x8 DUP1 SLOAD SWAP2 SWAP5 POP DUP5 SWAP3 SWAP1 SWAP2 DUP2 LT PUSH2 0xED3 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH1 0x8 DUP1 SLOAD SWAP1 PUSH2 0xF0F SWAP1 PUSH1 0x0 NOT DUP4 ADD PUSH2 0x12F6 JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP2 DUP2 SSTORE SWAP1 PUSH1 0x1 DUP3 ADD DUP2 PUSH2 0xF3B DUP3 DUP3 PUSH2 0x131F JUMP JUMPDEST POP POP POP POP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0xF97 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1378 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH2 0xFA2 DUP2 PUSH2 0x10BE JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0xFEF JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1378 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0xFFE DUP2 PUSH2 0x1296 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 DUP6 ADD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD SWAP1 SWAP3 POP PUSH1 0xFF AND ISZERO PUSH2 0x1075 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4954454D00000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP DUP3 SLOAD PUSH1 0x1 DUP1 DUP3 ADD DUP6 SSTORE PUSH1 0x0 SWAP5 DUP6 MSTORE PUSH1 0x20 SWAP1 SWAP5 KECCAK256 DUP2 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP5 SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 OR SWAP1 SWAP3 SSTORE DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 SSTORE DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xBB34534C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP2 PUSH4 0xBB34534C SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1124 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1138 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x114E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 PUSH2 0x1163 DUP2 PUSH2 0x1296 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 DUP7 ADD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD SWAP1 SWAP4 POP PUSH1 0xFF AND ISZERO ISZERO PUSH2 0x11DB JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4954454D00000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP5 SLOAD DUP6 SWAP1 PUSH1 0x0 NOT DUP2 ADD SWAP1 DUP2 LT PUSH2 0x11ED JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 SWAP1 SWAP2 ADD SLOAD PUSH1 0x1 DUP7 DUP2 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP1 DUP6 MSTORE DUP10 DUP3 ADD SWAP1 SWAP4 MSTORE PUSH1 0x40 SWAP1 SWAP4 KECCAK256 SWAP1 SWAP3 ADD DUP3 SWAP1 SSTORE DUP7 SLOAD SWAP1 SWAP4 POP DUP4 SWAP2 DUP8 SWAP2 DUP2 LT PUSH2 0x1231 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE DUP5 SLOAD PUSH2 0x126A DUP7 PUSH1 0x0 NOT DUP4 ADD PUSH2 0x12F6 JUMP JUMPDEST POP POP POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 SWAP2 DUP3 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND DUP2 SSTORE SWAP1 SWAP2 ADD SSTORE JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0xFEF JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP2 SLOAD DUP2 DUP4 SSTORE DUP2 DUP2 GT ISZERO PUSH2 0x131A JUMPI PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 SWAP1 KECCAK256 PUSH2 0x131A SWAP2 DUP2 ADD SWAP1 DUP4 ADD PUSH2 0x1339 JUMP JUMPDEST POP POP POP JUMP JUMPDEST POP DUP1 SLOAD PUSH1 0x0 DUP3 SSTORE SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP1 PUSH2 0xFEF SWAP2 SWAP1 JUMPDEST PUSH2 0x644 SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x1353 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x133F JUMP JUMPDEST POP SWAP1 JUMP STOP MSTORE8 PUSH16 0x7672796E53776170436F6E7665727465 PUSH19 0x526567697374727900000000004552525F4143 NUMBER GASLIMIT MSTORE8 MSTORE8 0x5f DIFFICULTY GASLIMIT 0x4e 0x49 GASLIMIT DIFFICULTY STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 PUSH12 0x671AD1AD9AA02A1974FCFA03 0xba PUSH12 0xEF1787E7DE7A6491D7BE73D7 0xfc 0x49 PUSH32 0x1847002900000000000000000000000000000000000000000000000000000000 ", + "sourceMap": "677:8149:7:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3280:206:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3280:206:60;;;;;;;;;3666:92:7;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3666:92:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;3666:92:7;;;;;;;;;;;;;;;;;1250:38:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1250:38:60;;;;;;;;;;;;;;;;;;;;;;2319:328:7;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2319:328:7;-1:-1:-1;;;;;2319:328:7;;;;;;;;;;6123:142;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;6123:142:7;-1:-1:-1;;;;;6123:142:7;;;;;4173:113;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4173:113:7;-1:-1:-1;;;;;4173:113:7;;;;;2080:832:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2080:832:60;;;;5568:104:7;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5568:104:7;;;;1165:37:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1165:37:60;;;;;;;;-1:-1:-1;;;;;1165:37:60;;;;;;;;;;;;;;5351:113:7;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5351:113:7;;;;;;;;;;;;;;;;;;;;7756:193;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;7756:193:7;-1:-1:-1;;;;;7756:193:7;;;;;;;;;;1159:176:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1159:176:66;;;;4388:107:7;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4388:107:7;;;;1085:33:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1085:33:60;;;;4593:98:7;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4593:98:7;;;;5818:123;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;5818:123:7;;;;;157:20:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;157:20:66;;;;1399:119:7;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1399:119:7;-1:-1:-1;;;;;1399:119:7;;;;;3892:111;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3892:111:7;;;;;6494:179;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;6494:179:7;-1:-1:-1;;;;;6494:179:7;;;;;4831:117;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4831:117:7;;;;;2038:137;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2038:137:7;-1:-1:-1;;;;;2038:137:7;;;;;2974:119:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2974:119:60;;;;1601:125:7;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1601:125:7;-1:-1:-1;;;;;1601:125:7;;;;;180:23:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;180:23:66;;;;7288:191:7;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;7288:191:7;-1:-1:-1;;;;;7288:191:7;;;;;;;3473:101;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3473:101:7;;;;5124:119;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;5124:119:7;-1:-1:-1;;;;;5124:119:7;;;;;1815:131;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1815:131:7;-1:-1:-1;;;;;1815:131:7;;;;;945:140:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;945:140:66;-1:-1:-1;;;;;945:140:66;;;;;6898:170:7;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;6898:170:7;-1:-1:-1;;;;;6898:170:7;;;;;2794:583;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2794:583:7;-1:-1:-1;;;;;2794:583:7;;;;;;;;;;3280:206:60;575:12:66;:10;:12::i;:::-;3426:26:60;:56;;;;;;;-1:-1:-1;;3426:56:60;;;;;;;;;3280:206::o;3666:92:7:-;3715:9;3737:11;:17;;3730:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3730:24:7;;;;;;;;;;;;;;;;;;;;;;;3666:92;;:::o;1250:38:60:-;;;;;;;;;:::o;2319:328:7:-;2434:17;-1:-1:-1;;;;;;;;;;;1510:20:60;1516:13;1510:5;:20::i;:::-;-1:-1:-1;;;;;2454:42:7;;;;;;:23;:42;;;;;:23;2504:10;;:23;2454:42;;-1:-1:-1;2504:28:7;2500:108;;;2552:17;27:10:-1;;2602:1:7;23:18:-1;;45:23;;-1:-1;2552:47:7;;;;;;;;;-1:-1:-1;;;;;;2552:47:7;-1:-1:-1;;;;;2552:47:7;;;;;2539:64;;2500:108;2611:32;2619:4;:10;;2631:11;2611:7;:32::i;:::-;2319:328;;;;:::o;6123:142::-;-1:-1:-1;;;;;6207:31:7;6190:4;6207:31;;;:23;:31;;;;;:23;:37;:50;:54;;6123:142::o;4173:113::-;-1:-1:-1;;;;;4251:25:7;4234:4;4251:25;;;:17;:25;;;;;:31;;;;4173:113::o;2080:832:60:-;2281:29;2183:5;;-1:-1:-1;;;;;2183:5:60;2169:10;:19;;:50;;-1:-1:-1;2193:26:60;;;;;;;2192:27;2169:50;2161:80;;;;;;;-1:-1:-1;;;;;2161:80:60;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2161:80:60;;;;;;;;;;;;;;;2331:28;2341:17;2331:9;:28::i;:::-;2465:8;;2281:79;;-1:-1:-1;;;;;;2442:32:60;;;2465:8;;2442:32;;;;:61;;-1:-1:-1;;;;;;2478:25:60;;;;2442:61;2434:94;;;;;;;-1:-1:-1;;;;;2434:94:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;2628:40;;;;;;2650:17;2628:40;;;;;;2680:1;;-1:-1:-1;;;;;2628:21:60;;;;;:40;;;;;;;;;;;;;;;2680:1;2628:21;:40;;;5:2:-1;;;;30:1;27;20:12;5:2;2628:40:60;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2628:40:60;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2628:40:60;-1:-1:-1;;;;;2628:54:60;;;2620:87;;;;;-1:-1:-1;;;;;2620:87:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;2799:8;;;2784:12;:23;;-1:-1:-1;;;;;2799:8:60;;;-1:-1:-1;;;;;;2784:23:60;;;;;;;2886:22;;;;;;;;;;;2080:832::o;5568:104:7:-;5623:9;5645:17;:23;;5638:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5638:30:7;;;;;;;;;;;;;;;;;;;;;;5568:104;:::o;1165:37:60:-;;;-1:-1:-1;;;;;1165:37:60;;:::o;5351:113:7:-;5430:17;:30;5351:113;:::o;7756:193::-;-1:-1:-1;;;;;7877:42:7;;;7860:4;7877:42;;;:23;:42;;;;;;;;:62;;;;;;:54;;;;:62;;;;:68;;;;7756:193::o;1159:176:66:-;1219:8;;-1:-1:-1;;;;;1219:8:66;1205:10;:22;1197:52;;;;;-1:-1:-1;;;;;1197:52:66;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1197:52:66;;;;;;;;;;;;;;;1277:8;;;1270:5;;1258:28;;-1:-1:-1;;;;;1277:8:66;;;;1270:5;;;;1258:28;;;1298:8;;;;1290:16;;-1:-1:-1;;;;;;1290:16:66;;;-1:-1:-1;;;;;1298:8:66;;1290:16;;;;1310:21;;;1159:176::o;4388:107:7:-;4464:14;:27;4388:107;:::o;1085:33:60:-;;;-1:-1:-1;;;;;1085:33:60;;:::o;4593:98:7:-;4645:9;4667:14;:20;;4660:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4660:27:7;;;;;;;;;;;;;;;;;;;;;;4593:98;:::o;5818:123::-;5906:17;:31;;5886:7;;5906:17;5930:6;;5906:31;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5906:31:7;;5818:123;-1:-1:-1;;5818:123:7:o;157:20:66:-;;;-1:-1:-1;;;;;157:20:66;;:::o;1399:119:7:-;-1:-1:-1;;;;;;;;;;;1510:20:60;1516:13;1510:5;:20::i;:::-;1481:33:7;1489:11;1502;1481:7;:33::i;:::-;1399:119;;:::o;3892:111::-;3974:11;:25;;3954:7;;3974:11;3992:6;;3974:25;;;;;6494:179;-1:-1:-1;;;;;6608:42:7;6588:7;6608:42;;;:23;:42;;;;;:23;:48;:61;;6494:179::o;4831:117::-;4916:14;:28;;4896:7;;4916:14;4937:6;;4916:28;;;;;2038:137;-1:-1:-1;;;;;;;;;;;1510:20:60;1516:13;1510:5;:20::i;:::-;2129:42:7;2140:14;2156;2129:10;:42::i;2974:119:60:-;575:12:66;:10;:12::i;:::-;3077::60;;3066:8;:23;;-1:-1:-1;;;;;;3066:23:60;-1:-1:-1;;;;;3077:12:60;;;3066:23;;;;;;2974:119::o;1601:125:7:-;-1:-1:-1;;;;;;;;;;;1510:20:60;1516:13;1510:5;:20::i;:::-;1686:36:7;1697:11;1710;1686:10;:36::i;180:23:66:-;;;-1:-1:-1;;;;;180:23:66;;:::o;7288:191:7:-;-1:-1:-1;;;;;7413:42:7;;7393:7;7413:42;;;:23;:42;;;;;:23;:48;:62;;7468:6;;7413:62;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7413:62:7;;7288:191;-1:-1:-1;;;7288:191:7:o;3473:101::-;3546:11;:24;3473:101;:::o;5124:119::-;-1:-1:-1;;;;;5205:28:7;5188:4;5205:28;;;:20;:28;;;;;:34;;;;5124:119::o;1815:131::-;-1:-1:-1;;;;;;;;;;;1510:20:60;1516:13;1510:5;:20::i;:::-;1903:39:7;1911:14;1927;1903:7;:39::i;945:140:66:-;575:12;:10;:12::i;:::-;1033:5;;-1:-1:-1;;;;;1020:18:66;;;1033:5;;1020:18;;1012:45;;;;;-1:-1:-1;;;;;1012:45:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;1061:8;:20;;-1:-1:-1;;;;;;1061:20:66;-1:-1:-1;;;;;1061:20:66;;;;;;;;;;945:140::o;6898:170:7:-;-1:-1:-1;;;;;7010:42:7;;;;;;:23;:42;;;;;;;;;:23;:48;7003:61;;;;;;;;;;;;;;;;;6988:9;;7003:61;;;7010:48;7003:61;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7003:61:7;;;;;;;;;;;;;;;;;;;;;;;6898:170;;;:::o;2794:583::-;2912:17;3056:28;-1:-1:-1;;;;;;;;;;;1510:20:60;1516:13;1510:5;:20::i;:::-;-1:-1:-1;;;;;2932:42:7;;;;;;:23;:42;;;;;;-1:-1:-1;2978:35:7;2932:23;2989:10;;3001:11;2978:10;:35::i;:::-;3021:10;;;:23;:28;3017:357;;;3087:17;3111:30;;-1:-1:-1;;3111:34:7;;;3087:59;;;;;;;;;;;;;;;;;;3205:10;;-1:-1:-1;;;;;3087:59:7;;;3151:45;;;:23;:45;;;;;;;:64;;;:17;3220:35;;3087:59;;-1:-1:-1;3087:59:7;;3151:17;;3220:35;;;;;;;;;;;;;;;:58;;-1:-1:-1;;;;;;3220:58:7;-1:-1:-1;;;;;3220:58:7;;;;;;;;;;3283:17;:32;;;;;-1:-1:-1;;3283:32:7;;;:::i;:::-;-1:-1:-1;;;;;;3327:42:7;;;;;;:23;:42;;;;;3320:49;;;3327:42;:23;3320:49;;3327:42;3320:49;;3327:42;3320:49;:::i;:::-;;;;;3017:357;2794:583;;;;;:::o;642:93:66:-;704:5;;-1:-1:-1;;;;;704:5:66;690:10;:19;682:49;;;;;-1:-1:-1;;;;;682:49:66;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;682:49:66;;;;;;;;;;;;;;;642:93::o;1585:128:60:-;1663:24;1673:13;1663:9;:24::i;:::-;-1:-1:-1;;;;;1649:38:60;:10;:38;1641:68;;;;;-1:-1:-1;;;;;1641:68:60;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1641:68:60;;;;;;;;;;;;;;;1585:128;:::o;8070:245:7:-;8159:17;8147:6;475:23:72;489:8;475:13;:23::i;:::-;-1:-1:-1;;;;;8179:20:7;;;;;;:12;;;:20;;;;;8212:10;;8179:20;;-1:-1:-1;8212:10:7;;8211:11;8203:40;;;;;-1:-1:-1;;;;;8203:40:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;27:10;;8289:1:7;23:18:-1;;;45:23;;-1:-1;8261:25:7;;;;;;;;;;;-1:-1:-1;;;;;;8261:25:7;-1:-1:-1;;;;;8261:25:7;;;;;;;;;;;8248:10;;;:42;;;;8294:17;;-1:-1:-1;;8294:17:7;;;;;;8070:245::o;3647:122:60:-;3732:8;;:33;;;;;;;;;;;;;;3712:7;;-1:-1:-1;;;;;3732:8:60;;:18;;:33;;;;;;;;;;;;;;3712:7;3732:8;:33;;;5:2:-1;;;;30:1;27;20:12;5:2;3732:33:60;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3732:33:60;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3732:33:60;;3647:122;-1:-1:-1;;3647:122:60:o;8441:383:7:-;8533:17;8621;8521:6;475:23:72;489:8;475:13;:23::i;:::-;-1:-1:-1;;;;;8553:20:7;;;;;;:12;;;:20;;;;;8585:10;;8553:20;;-1:-1:-1;8585:10:7;;8577:39;;;;;;;-1:-1:-1;;;;;8577:39:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;8654:19;;8641:6;;-1:-1:-1;;8654:23:7;;;8641:37;;;;;;;;;;;;;;;;;;;8714:10;;;;-1:-1:-1;;;;;8641:37:7;;;8682:23;;;:12;;;:23;;;;;;;:29;;;:42;;;8728:24;;8641:37;;-1:-1:-1;8641:37:7;;8682:6;;8728:24;;;;;;;;;;;;;;;:36;;-1:-1:-1;;;;;;8728:36:7;-1:-1:-1;;;;;8728:36:7;;;;;;;;;;8768:21;;;;-1:-1:-1;;8768:21:7;;;:::i;:::-;-1:-1:-1;;;;;;;;;8800:20:7;;;;;:12;;;;:20;;;;;8793:27;;-1:-1:-1;;8793:27:7;;;;;;;8441:383::o;553:117:72:-;-1:-1:-1;;;;;620:22:72;;;;612:54;;;;;-1:-1:-1;;;;;612:54:72;;;;;;;;;;;;;;;;;;;;;;;;;;;677:8149:7;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;" + }, + "methodIdentifiers": { + "acceptOwnership()": "79ba5097", + "addConvertibleToken(address,address)": "36900c11", + "addLiquidityPool(address)": "ee6a934c", + "addSmartToken(address)": "8de6c3eb", + "getConvertibleToken(uint256)": "865cf194", + "getConvertibleTokenCount()": "69be4784", + "getConvertibleTokenSmartToken(address,uint256)": "d6c4b5b2", + "getConvertibleTokenSmartTokenCount(address)": "a43d5e94", + "getConvertibleTokenSmartTokens(address)": "f4fb86c0", + "getConvertibleTokens()": "5f1b50fe", + "getLiquidityPool(uint256)": "a74498aa", + "getLiquidityPoolCount()": "7a5f0ffd", + "getLiquidityPools()": "7f45c4c3", + "getSmartToken(uint256)": "a109d214", + "getSmartTokenCount()": "e571049b", + "getSmartTokens()": "04ceaf41", + "isConvertibleToken(address)": "3ab8857c", + "isConvertibleTokenSmartToken(address,address)": "725b8786", + "isLiquidityPool(address)": "e85455d7", + "isSmartToken(address)": "4123ef60", + "newOwner()": "d4ee1d90", + "onlyOwnerCanUpdateRegistry()": "2fe8a6ad", + "owner()": "8da5cb5b", + "prevRegistry()": "61cd756e", + "registry()": "7b103999", + "removeConvertibleToken(address,address)": "fba8f031", + "removeLiquidityPool(address)": "ae22107f", + "removeSmartToken(address)": "ceb9838c", + "restoreRegistry()": "b4a176d3", + "restrictRegistryUpdate(bool)": "024c7ec7", + "transferOwnership(address)": "f2fde38b", + "updateRegistry()": "49d10b64" + } + }, + "userdoc": { + "methods": {} + } + } + }, + "solidity/contracts/converter/ConverterUpgrader.sol": { + "ConverterUpgrader": { + "abi": [ + { + "constant": false, + "inputs": [ + { + "name": "_onlyOwnerCanUpdateRegistry", + "type": "bool" + } + ], + "name": "restrictRegistryUpdate", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "onlyOwnerCanUpdateRegistry", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "updateRegistry", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "prevRegistry", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "acceptOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "registry", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "owner", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_version", + "type": "uint16" + } + ], + "name": "upgrade", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "restoreRegistry", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "etherToken", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_version", + "type": "bytes32" + } + ], + "name": "upgrade", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "newOwner", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_converter", + "type": "address" + }, + { + "name": "_version", + "type": "bytes32" + } + ], + "name": "upgradeOld", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "name": "_registry", + "type": "address" + }, + { + "name": "_etherToken", + "type": "address" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "_converter", + "type": "address" + }, + { + "indexed": true, + "name": "_owner", + "type": "address" + } + ], + "name": "ConverterOwned", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "_oldConverter", + "type": "address" + }, + { + "indexed": true, + "name": "_newConverter", + "type": "address" + } + ], + "name": "ConverterUpgrade", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "_prevOwner", + "type": "address" + }, + { + "indexed": true, + "name": "_newOwner", + "type": "address" + } + ], + "name": "OwnerUpdate", + "type": "event" + } + ], + "devdoc": { + "methods": { + "acceptOwnership()": { + "details": "used by a new owner to accept an ownership transfer" + }, + "restoreRegistry()": { + "details": "restores the previous contract-registry" + }, + "restrictRegistryUpdate(bool)": { + "details": "restricts the permission to update the contract-registry", + "params": { + "_onlyOwnerCanUpdateRegistry": "indicates whether or not permission is restricted to owner only" + } + }, + "transferOwnership(address)": { + "details": "allows transferring the contract ownership the new owner still needs to accept the transfer can only be called by the contract owner", + "params": { + "_newOwner": "new contract owner" + } + }, + "updateRegistry()": { + "details": "updates to the new contract-registry" + }, + "upgrade(bytes32)": { + "details": "upgrades an old converter to the latest version will throw if ownership wasn't transferred to the upgrader before calling this function. ownership of the new converter will be transferred back to the original owner. fires the ConverterUpgrade event upon success. can only be called by a converter", + "params": { + "_version": "old converter version" + } + }, + "upgrade(uint16)": { + "details": "upgrades an old converter to the latest version will throw if ownership wasn't transferred to the upgrader before calling this function. ownership of the new converter will be transferred back to the original owner. fires the ConverterUpgrade event upon success. can only be called by a converter", + "params": { + "_version": "old converter version" + } + }, + "upgradeOld(address,bytes32)": { + "details": "upgrades an old converter to the latest version will throw if ownership wasn't transferred to the upgrader before calling this function. ownership of the new converter will be transferred back to the original owner. fires the ConverterUpgrade event upon success.", + "params": { + "_converter": "old converter contract address", + "_version": "old converter version" + } + } + } + }, + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b506040516040806120df83398101604052805160209091015160008054600160a060020a03191633179055818061004f81640100000000610092810204565b5060028054600160a060020a03928316600160a060020a03199182168117909255600380548216909217909155600480549390921692169190911790555061010c565b600160a060020a038116151561010957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b50565b611fc48061011b6000396000f3006080604052600436106100b65763ffffffff60e060020a600035041663024c7ec781146100bb5780632fe8a6ad146100d757806349d10b641461010057806361cd756e1461011557806379ba5097146101465780637b1039991461015b5780638da5cb5b1461017057806390f58c9614610185578063b4a176d3146101a1578063b8066bcb146101b6578063bc444e13146101cb578063d4ee1d90146101e3578063f2cfed87146101f8578063f2fde38b1461021c575b600080fd5b3480156100c757600080fd5b506100d5600435151561023d565b005b3480156100e357600080fd5b506100ec610285565b604080519115158252519081900360200190f35b34801561010c57600080fd5b506100d56102a6565b34801561012157600080fd5b5061012a610525565b60408051600160a060020a039092168252519081900360200190f35b34801561015257600080fd5b506100d5610534565b34801561016757600080fd5b5061012a610607565b34801561017c57600080fd5b5061012a610616565b34801561019157600080fd5b506100d561ffff60043516610625565b3480156101ad57600080fd5b506100d5610636565b3480156101c257600080fd5b5061012a61066f565b3480156101d757600080fd5b506100d560043561067e565b3480156101ef57600080fd5b5061012a610688565b34801561020457600080fd5b506100d5600160a060020a0360043516602435610697565b34801561022857600080fd5b506100d5600160a060020a0360043516610aa8565b610245610b45565b60038054911515740100000000000000000000000000000000000000000274ff000000000000000000000000000000000000000019909216919091179055565b60035474010000000000000000000000000000000000000000900460ff1681565b60008054600160a060020a03163314806102db575060035474010000000000000000000000000000000000000000900460ff16155b1515610331576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b61035a7f436f6e7472616374526567697374727900000000000000000000000000000000610ba9565b600254909150600160a060020a038083169116148015906103835750600160a060020a03811615155b15156103d9576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e56414c49445f5245474953545259000000000000000000000000604482015290519081900360640190fd5b604080517fbb34534c0000000000000000000000000000000000000000000000000000000081527f436f6e747261637452656769737472790000000000000000000000000000000060048201529051600091600160a060020a0384169163bb34534c9160248082019260209290919082900301818787803b15801561045d57600080fd5b505af1158015610471573d6000803e3d6000fd5b505050506040513d602081101561048757600080fd5b5051600160a060020a031614156104e8576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e56414c49445f5245474953545259000000000000000000000000604482015290519081900360640190fd5b6002805460038054600160a060020a0380841673ffffffffffffffffffffffffffffffffffffffff19928316179092559091169216919091179055565b600354600160a060020a031681565b600154600160a060020a03163314610596576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b60015460008054604051600160a060020a0393841693909116917f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91a3600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b600254600160a060020a031681565b600054600160a060020a031681565b6106333361ffff8316610697565b50565b61063e610b45565b6003546002805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055565b600454600160a060020a031681565b6106333382610697565b600154600160a060020a031681565b600080600080600086945084600160a060020a0316638da5cb5b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156106e057600080fd5b505af11580156106f4573d6000803e3d6000fd5b505050506040513d602081101561070a57600080fd5b5051935061071785610c41565b61072085610cd0565b925061072c8584611052565b61073685846113df565b61074085846114d2565b84600160a060020a031663fc0c546a6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561077e57600080fd5b505af1158015610792573d6000803e3d6000fd5b505050506040513d60208110156107a857600080fd5b505191506107b58561194f565b8015610827575084600160a060020a03166322f3e2d46040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156107fa57600080fd5b505af115801561080e573d6000803e3d6000fd5b505050506040513d602081101561082457600080fd5b50515b905084600160a060020a031682600160a060020a0316638da5cb5b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561087157600080fd5b505af1158015610885573d6000803e3d6000fd5b505050506040513d602081101561089b57600080fd5b5051600160a060020a031614156109765784600160a060020a03166321e6b53d846040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b15801561090757600080fd5b505af115801561091b573d6000803e3d6000fd5b5050505082600160a060020a031663cdc91c696040518163ffffffff1660e060020a028152600401600060405180830381600087803b15801561095d57600080fd5b505af1158015610971573d6000803e3d6000fd5b505050505b610981858483611a0b565b84600160a060020a031663f2fde38b856040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b1580156109dc57600080fd5b505af11580156109f0573d6000803e3d6000fd5b5050505082600160a060020a031663f2fde38b856040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b158015610a4f57600080fd5b505af1158015610a63573d6000803e3d6000fd5b5050604051600160a060020a038087169350881691507f522b846327aea07106ec4d64ae4b6d6dea47689884dab650fd3a1f2e1d6a270190600090a350505050505050565b610ab0610b45565b600054600160a060020a0382811691161415610b16576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f53414d455f4f574e4552000000000000000000000000000000000000604482015290519081900360640190fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600054600160a060020a03163314610ba7576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b565b600254604080517fbb34534c000000000000000000000000000000000000000000000000000000008152600481018490529051600092600160a060020a03169163bb34534c91602480830192602092919082900301818787803b158015610c0f57600080fd5b505af1158015610c23573d6000803e3d6000fd5b505050506040513d6020811015610c3957600080fd5b505192915050565b80600160a060020a03166379ba50976040518163ffffffff1660e060020a028152600401600060405180830381600087803b158015610c7f57600080fd5b505af1158015610c93573d6000803e3d6000fd5b5050604051309250600160a060020a03841691507ff764604894fa993d4370a9cb28b81c11deb1aafdb2909156173ae3833dad807590600090a350565b600080600080600080600087600160a060020a031663fc0c546a6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610d1957600080fd5b505af1158015610d2d573d6000803e3d6000fd5b505050506040513d6020811015610d4357600080fd5b5051604080517f94c275ad0000000000000000000000000000000000000000000000000000000081529051919750600160a060020a038a16916394c275ad916004808201926020929091908290030181600087803b158015610da457600080fd5b505af1158015610db8573d6000803e3d6000fd5b505050506040513d6020811015610dce57600080fd5b5051604080517f71f52bf30000000000000000000000000000000000000000000000000000000081529051919650600160a060020a038a16916371f52bf3916004808201926020929091908290030181600087803b158015610e2f57600080fd5b505af1158015610e43573d6000803e3d6000fd5b505050506040513d6020811015610e5957600080fd5b5051935060009250610e6a8861194f565b15610ee05787600160a060020a0316633e8ff43f6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610ead57600080fd5b505af1158015610ec1573d6000803e3d6000fd5b505050506040513d6020811015610ed757600080fd5b50519250610ef2565b60018461ffff161115610ef257600192505b610f1b7f436f6e766572746572466163746f727900000000000000000000000000000000610ba9565b600254604080517f15f64b6a00000000000000000000000000000000000000000000000000000000815261ffff87166004820152600160a060020a038a81166024830152928316604482015263ffffffff891660648201529051929450908416916315f64b6a916084808201926020929091908290030181600087803b158015610fa457600080fd5b505af1158015610fb8573d6000803e3d6000fd5b505050506040513d6020811015610fce57600080fd5b5051604080517f79ba50970000000000000000000000000000000000000000000000000000000081529051919250600160a060020a038316916379ba50979160048082019260009290919082900301818387803b15801561102e57600080fd5b505af1158015611042573d6000803e3d6000fd5b50929a9950505050505050505050565b60008060008085600160a060020a03166371f52bf36040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561109657600080fd5b505af11580156110aa573d6000803e3d6000fd5b505050506040513d60208110156110c057600080fd5b50519350600092505b8361ffff168361ffff1610156113d75785600160a060020a03166319b64015846040518263ffffffff1660e060020a028152600401808261ffff168152602001915050602060405180830381600087803b15801561112657600080fd5b505af115801561113a573d6000803e3d6000fd5b505050506040513d602081101561115057600080fd5b5051604080517f0e53aae9000000000000000000000000000000000000000000000000000000008152600160a060020a038084166004830152915192945090881691630e53aae99160248082019260a0929091908290030181600087803b1580156111ba57600080fd5b505af11580156111ce573d6000803e3d6000fd5b505050506040513d60a08110156111e457600080fd5b50602001519050600160a060020a03821673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee14156112ad57604080517f6a49d2c400000000000000000000000000000000000000000000000000000000815273eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee600482015263ffffffff831660248201529051600160a060020a03871691636a49d2c491604480830192600092919082900301818387803b15801561129057600080fd5b505af11580156112a4573d6000803e3d6000fd5b505050506113cc565b600454600160a060020a038381169116141561134357604080517f6a49d2c400000000000000000000000000000000000000000000000000000000815273eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee600482015263ffffffff831660248201529051600160a060020a03871691636a49d2c491604480830192600092919082900301818387803b15801561129057600080fd5b604080517f6a49d2c4000000000000000000000000000000000000000000000000000000008152600160a060020a03848116600483015263ffffffff84166024830152915191871691636a49d2c49160448082019260009290919082900301818387803b1580156113b357600080fd5b505af11580156113c7573d6000803e3d6000fd5b505050505b6001909201916110c9565b505050505050565b600082600160a060020a031663579cd3ca6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561141f57600080fd5b505af1158015611433573d6000803e3d6000fd5b505050506040513d602081101561144957600080fd5b5051604080517fecbca55d00000000000000000000000000000000000000000000000000000000815263ffffffff831660048201529051919250600160a060020a0384169163ecbca55d9160248082019260009290919082900301818387803b1580156114b557600080fd5b505af11580156114c9573d6000803e3d6000fd5b50505050505050565b600080600080600086600160a060020a03166371f52bf36040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561151857600080fd5b505af115801561152c573d6000803e3d6000fd5b505050506040513d602081101561154257600080fd5b50519350600092505b8361ffff168361ffff1610156114c95786600160a060020a03166319b64015846040518263ffffffff1660e060020a028152600401808261ffff168152602001915050602060405180830381600087803b1580156115a857600080fd5b505af11580156115bc573d6000803e3d6000fd5b505050506040513d60208110156115d257600080fd5b50519150600160a060020a03821673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee14156116735786600160a060020a031663690d8320876040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b15801561165657600080fd5b505af115801561166a573d6000803e3d6000fd5b50505050611944565b600454600160a060020a03838116911614156118235760048054604080517f70a08231000000000000000000000000000000000000000000000000000000008152600160a060020a038b811694820194909452905192909116916370a08231916024808201926020929091908290030181600087803b1580156116f557600080fd5b505af1158015611709573d6000803e3d6000fd5b505050506040513d602081101561171f57600080fd5b505160048054604080517f5e35359e000000000000000000000000000000000000000000000000000000008152600160a060020a03928316938101939093523060248401526044830184905251929750891691635e35359e9160648082019260009290919082900301818387803b15801561179957600080fd5b505af11580156117ad573d6000803e3d6000fd5b505060048054604080517f205c2878000000000000000000000000000000000000000000000000000000008152600160a060020a038c811694820194909452602481018b9052905192909116935063205c2878925060448082019260009290919082900301818387803b15801561165657600080fd5b50604080517f70a08231000000000000000000000000000000000000000000000000000000008152600160a060020a038881166004830152915183928316916370a082319160248083019260209291908290030181600087803b15801561188957600080fd5b505af115801561189d573d6000803e3d6000fd5b505050506040513d60208110156118b357600080fd5b5051604080517f5e35359e000000000000000000000000000000000000000000000000000000008152600160a060020a038481166004830152898116602483015260448201849052915192975090891691635e35359e9160648082019260009290919082900301818387803b15801561192b57600080fd5b505af115801561193f573d6000803e3d6000fd5b505050505b60019092019161154b565b60008061195a611f79565b604080517f69735632384f72486967686572282900000000000000000000000000000000008152815190819003600f0181206004825260248201909252602080820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909416939093178352815191929091849188611388fa9250828015611a025750815115155b95945050505050565b6000806000806000806000806000611a228c61194f565b1515611a2d57611f6b565b8b600160a060020a0316633e8ff43f6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015611a6b57600080fd5b505af1158015611a7f573d6000803e3d6000fd5b505050506040513d6020811015611a9557600080fd5b50519850600261ffff8a161415611f6b578b600160a060020a03166371f52bf36040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015611ae457600080fd5b505af1158015611af8573d6000803e3d6000fd5b505050506040513d6020811015611b0e57600080fd5b50519750600096505b8761ffff168761ffff161015611cc4578b600160a060020a03166319b64015886040518263ffffffff1660e060020a028152600401808261ffff168152602001915050602060405180830381600087803b158015611b7457600080fd5b505af1158015611b88573d6000803e3d6000fd5b505050506040513d6020811015611b9e57600080fd5b5051604080517e5e319c000000000000000000000000000000000000000000000000000000008152600160a060020a0380841660048301529151929850908e1691625e319c916024808201926020929091908290030181600087803b158015611c0657600080fd5b505af1158015611c1a573d6000803e3d6000fd5b505050506040513d6020811015611c3057600080fd5b5051604080517fbf7da6ba000000000000000000000000000000000000000000000000000000008152600160a060020a038981166004830152602482018490529151929750908d169163bf7da6ba9160448082019260009290919082900301818387803b158015611ca057600080fd5b505af1158015611cb4573d6000803e3d6000fd5b505060019098019750611b179050565b891515611cd057611f6b565b8b600160a060020a0316630337e3fb6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015611d0e57600080fd5b505af1158015611d22573d6000803e3d6000fd5b505050506040513d6020811015611d3857600080fd5b5051604080517f2630c12f0000000000000000000000000000000000000000000000000000000081529051919550600160a060020a038e1691632630c12f916004808201926020929091908290030181600087803b158015611d9957600080fd5b505af1158015611dad573d6000803e3d6000fd5b505050506040513d6020811015611dc357600080fd5b5051604080517fb9e1715b0000000000000000000000000000000000000000000000000000000081529051919450600160a060020a0385169163b9e1715b916004808201926020929091908290030181600087803b158015611e2457600080fd5b505af1158015611e38573d6000803e3d6000fd5b505050506040513d6020811015611e4e57600080fd5b5051604080517ff997fda70000000000000000000000000000000000000000000000000000000081529051919350600160a060020a0385169163f997fda7916004808201926020929091908290030181600087803b158015611eaf57600080fd5b505af1158015611ec3573d6000803e3d6000fd5b505050506040513d6020811015611ed957600080fd5b5051604080517f119b90cd000000000000000000000000000000000000000000000000000000008152600160a060020a038781166004830152858116602483015280841660448301529151929350908d169163119b90cd9160648082019260009290919082900301818387803b158015611f5257600080fd5b505af1158015611f66573d6000803e3d6000fd5b505050505b505050505050505050505050565b60206040519081016040528060019060208202803883395091929150505600a165627a7a723058203882f98a73103c8feeafca2f4586dba39bd758474195419fcd8e074e00a5eb050029", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH1 0x40 DUP1 PUSH2 0x20DF DUP4 CODECOPY DUP2 ADD PUSH1 0x40 MSTORE DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD MLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND CALLER OR SWAP1 SSTORE DUP2 DUP1 PUSH2 0x4F DUP2 PUSH5 0x100000000 PUSH2 0x92 DUP2 MUL DIV JUMP JUMPDEST POP PUSH1 0x2 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 DUP4 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT SWAP2 DUP3 AND DUP2 OR SWAP1 SWAP3 SSTORE PUSH1 0x3 DUP1 SLOAD DUP3 AND SWAP1 SWAP3 OR SWAP1 SWAP2 SSTORE PUSH1 0x4 DUP1 SLOAD SWAP4 SWAP1 SWAP3 AND SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE POP PUSH2 0x10C JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0x109 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x1FC4 DUP1 PUSH2 0x11B PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0xB6 JUMPI PUSH4 0xFFFFFFFF PUSH1 0xE0 PUSH1 0x2 EXP PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x24C7EC7 DUP2 EQ PUSH2 0xBB JUMPI DUP1 PUSH4 0x2FE8A6AD EQ PUSH2 0xD7 JUMPI DUP1 PUSH4 0x49D10B64 EQ PUSH2 0x100 JUMPI DUP1 PUSH4 0x61CD756E EQ PUSH2 0x115 JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x146 JUMPI DUP1 PUSH4 0x7B103999 EQ PUSH2 0x15B JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x170 JUMPI DUP1 PUSH4 0x90F58C96 EQ PUSH2 0x185 JUMPI DUP1 PUSH4 0xB4A176D3 EQ PUSH2 0x1A1 JUMPI DUP1 PUSH4 0xB8066BCB EQ PUSH2 0x1B6 JUMPI DUP1 PUSH4 0xBC444E13 EQ PUSH2 0x1CB JUMPI DUP1 PUSH4 0xD4EE1D90 EQ PUSH2 0x1E3 JUMPI DUP1 PUSH4 0xF2CFED87 EQ PUSH2 0x1F8 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x21C JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xC7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xD5 PUSH1 0x4 CALLDATALOAD ISZERO ISZERO PUSH2 0x23D JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xE3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xEC PUSH2 0x285 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x10C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xD5 PUSH2 0x2A6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x121 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x12A PUSH2 0x525 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x152 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xD5 PUSH2 0x534 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x167 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x12A PUSH2 0x607 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x17C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x12A PUSH2 0x616 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x191 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xD5 PUSH2 0xFFFF PUSH1 0x4 CALLDATALOAD AND PUSH2 0x625 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1AD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xD5 PUSH2 0x636 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1C2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x12A PUSH2 0x66F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1D7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xD5 PUSH1 0x4 CALLDATALOAD PUSH2 0x67E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1EF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x12A PUSH2 0x688 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x204 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xD5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x697 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x228 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xD5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0xAA8 JUMP JUMPDEST PUSH2 0x245 PUSH2 0xB45 JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD SWAP2 ISZERO ISZERO PUSH21 0x10000000000000000000000000000000000000000 MUL PUSH21 0xFF0000000000000000000000000000000000000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ DUP1 PUSH2 0x2DB JUMPI POP PUSH1 0x3 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x331 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x35A PUSH32 0x436F6E7472616374526567697374727900000000000000000000000000000000 PUSH2 0xBA9 JUMP JUMPDEST PUSH1 0x2 SLOAD SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP4 AND SWAP2 AND EQ DUP1 ISZERO SWAP1 PUSH2 0x383 JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x3D9 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245474953545259000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0xBB34534C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH32 0x436F6E7472616374526567697374727900000000000000000000000000000000 PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP2 PUSH4 0xBB34534C SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x45D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x471 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x487 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ ISZERO PUSH2 0x4E8 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245474953545259000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP5 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP3 DUP4 AND OR SWAP1 SWAP3 SSTORE SWAP1 SWAP2 AND SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x596 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND SWAP4 SWAP1 SWAP2 AND SWAP2 PUSH32 0x343765429AEA5A34B3FF6A3785A98A5ABB2597ACA87BFBB58632C173D585373A SWAP2 LOG3 PUSH1 0x1 DUP1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND OR SWAP1 SWAP2 SSTORE AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH2 0x633 CALLER PUSH2 0xFFFF DUP4 AND PUSH2 0x697 JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x63E PUSH2 0xB45 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x2 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH2 0x633 CALLER DUP3 PUSH2 0x697 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP7 SWAP5 POP DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x8DA5CB5B PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x6E0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x6F4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x70A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP4 POP PUSH2 0x717 DUP6 PUSH2 0xC41 JUMP JUMPDEST PUSH2 0x720 DUP6 PUSH2 0xCD0 JUMP JUMPDEST SWAP3 POP PUSH2 0x72C DUP6 DUP5 PUSH2 0x1052 JUMP JUMPDEST PUSH2 0x736 DUP6 DUP5 PUSH2 0x13DF JUMP JUMPDEST PUSH2 0x740 DUP6 DUP5 PUSH2 0x14D2 JUMP JUMPDEST DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xFC0C546A PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x77E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x792 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x7A8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 POP PUSH2 0x7B5 DUP6 PUSH2 0x194F JUMP JUMPDEST DUP1 ISZERO PUSH2 0x827 JUMPI POP DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x22F3E2D4 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x7FA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x80E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x824 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD JUMPDEST SWAP1 POP DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x8DA5CB5B PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x871 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x885 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x89B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ ISZERO PUSH2 0x976 JUMPI DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x21E6B53D DUP5 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x907 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x91B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xCDC91C69 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x95D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x971 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMPDEST PUSH2 0x981 DUP6 DUP5 DUP4 PUSH2 0x1A0B JUMP JUMPDEST DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xF2FDE38B DUP6 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x9DC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x9F0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xF2FDE38B DUP6 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xA4F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xA63 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP8 AND SWAP4 POP DUP9 AND SWAP2 POP PUSH32 0x522B846327AEA07106EC4D64AE4B6D6DEA47689884DAB650FD3A1F2E1D6A2701 SWAP1 PUSH1 0x0 SWAP1 LOG3 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xAB0 PUSH2 0xB45 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0xB16 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F4F574E4552000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0xBA7 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xBB34534C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP2 PUSH4 0xBB34534C SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC0F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xC23 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xC39 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x79BA5097 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC7F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xC93 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD ADDRESS SWAP3 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP2 POP PUSH32 0xF764604894FA993D4370A9CB28B81C11DEB1AAFDB2909156173AE3833DAD8075 SWAP1 PUSH1 0x0 SWAP1 LOG3 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP8 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xFC0C546A PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xD19 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xD2D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xD43 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x94C275AD00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP8 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP11 AND SWAP2 PUSH4 0x94C275AD SWAP2 PUSH1 0x4 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xDA4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xDB8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xDCE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x71F52BF300000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP7 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP11 AND SWAP2 PUSH4 0x71F52BF3 SWAP2 PUSH1 0x4 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xE2F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xE43 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xE59 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP4 POP PUSH1 0x0 SWAP3 POP PUSH2 0xE6A DUP9 PUSH2 0x194F JUMP JUMPDEST ISZERO PUSH2 0xEE0 JUMPI DUP8 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x3E8FF43F PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xEAD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xEC1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xED7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP3 POP PUSH2 0xEF2 JUMP JUMPDEST PUSH1 0x1 DUP5 PUSH2 0xFFFF AND GT ISZERO PUSH2 0xEF2 JUMPI PUSH1 0x1 SWAP3 POP JUMPDEST PUSH2 0xF1B PUSH32 0x436F6E766572746572466163746F727900000000000000000000000000000000 PUSH2 0xBA9 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x15F64B6A00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH2 0xFFFF DUP8 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP11 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE SWAP3 DUP4 AND PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0xFFFFFFFF DUP10 AND PUSH1 0x64 DUP3 ADD MSTORE SWAP1 MLOAD SWAP3 SWAP5 POP SWAP1 DUP5 AND SWAP2 PUSH4 0x15F64B6A SWAP2 PUSH1 0x84 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xFA4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xFB8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xFCE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x79BA509700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 AND SWAP2 PUSH4 0x79BA5097 SWAP2 PUSH1 0x4 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x102E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1042 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP SWAP3 SWAP11 SWAP10 POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 DUP6 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x71F52BF3 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1096 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x10AA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x10C0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP4 POP PUSH1 0x0 SWAP3 POP JUMPDEST DUP4 PUSH2 0xFFFF AND DUP4 PUSH2 0xFFFF AND LT ISZERO PUSH2 0x13D7 JUMPI DUP6 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x19B64015 DUP5 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1126 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x113A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1150 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xE53AAE900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP5 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 MLOAD SWAP3 SWAP5 POP SWAP1 DUP9 AND SWAP2 PUSH4 0xE53AAE9 SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0xA0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x11BA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x11CE JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0xA0 DUP2 LT ISZERO PUSH2 0x11E4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x20 ADD MLOAD SWAP1 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 AND PUSH20 0xEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE EQ ISZERO PUSH2 0x12AD JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x6A49D2C400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH20 0xEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE PUSH1 0x4 DUP3 ADD MSTORE PUSH4 0xFFFFFFFF DUP4 AND PUSH1 0x24 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND SWAP2 PUSH4 0x6A49D2C4 SWAP2 PUSH1 0x44 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1290 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x12A4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x13CC JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x1343 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x6A49D2C400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH20 0xEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE PUSH1 0x4 DUP3 ADD MSTORE PUSH4 0xFFFFFFFF DUP4 AND PUSH1 0x24 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND SWAP2 PUSH4 0x6A49D2C4 SWAP2 PUSH1 0x44 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1290 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x6A49D2C400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH4 0xFFFFFFFF DUP5 AND PUSH1 0x24 DUP4 ADD MSTORE SWAP2 MLOAD SWAP2 DUP8 AND SWAP2 PUSH4 0x6A49D2C4 SWAP2 PUSH1 0x44 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x13B3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x13C7 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMPDEST PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 PUSH2 0x10C9 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x579CD3CA PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x141F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1433 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1449 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xECBCA55D00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH4 0xFFFFFFFF DUP4 AND PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP2 PUSH4 0xECBCA55D SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x14B5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x14C9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x71F52BF3 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1518 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x152C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1542 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP4 POP PUSH1 0x0 SWAP3 POP JUMPDEST DUP4 PUSH2 0xFFFF AND DUP4 PUSH2 0xFFFF AND LT ISZERO PUSH2 0x14C9 JUMPI DUP7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x19B64015 DUP5 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x15A8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x15BC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x15D2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 AND PUSH20 0xEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE EQ ISZERO PUSH2 0x1673 JUMPI DUP7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x690D8320 DUP8 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1656 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x166A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x1944 JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x1823 JUMPI PUSH1 0x4 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 DUP2 AND SWAP5 DUP3 ADD SWAP5 SWAP1 SWAP5 MSTORE SWAP1 MLOAD SWAP3 SWAP1 SWAP2 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x16F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1709 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x171F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x4 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x5E35359E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 DUP4 AND SWAP4 DUP2 ADD SWAP4 SWAP1 SWAP4 MSTORE ADDRESS PUSH1 0x24 DUP5 ADD MSTORE PUSH1 0x44 DUP4 ADD DUP5 SWAP1 MSTORE MLOAD SWAP3 SWAP8 POP DUP10 AND SWAP2 PUSH4 0x5E35359E SWAP2 PUSH1 0x64 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1799 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x17AD JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x4 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x205C287800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP13 DUP2 AND SWAP5 DUP3 ADD SWAP5 SWAP1 SWAP5 MSTORE PUSH1 0x24 DUP2 ADD DUP12 SWAP1 MSTORE SWAP1 MLOAD SWAP3 SWAP1 SWAP2 AND SWAP4 POP PUSH4 0x205C2878 SWAP3 POP PUSH1 0x44 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1656 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 MLOAD DUP4 SWAP3 DUP4 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1889 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x189D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x18B3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x5E35359E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP10 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP3 ADD DUP5 SWAP1 MSTORE SWAP2 MLOAD SWAP3 SWAP8 POP SWAP1 DUP10 AND SWAP2 PUSH4 0x5E35359E SWAP2 PUSH1 0x64 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x192B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x193F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMPDEST PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 PUSH2 0x154B JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x195A PUSH2 0x1F79 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x69735632384F7248696768657228290000000000000000000000000000000000 DUP2 MSTORE DUP2 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0xF ADD DUP2 KECCAK256 PUSH1 0x4 DUP3 MSTORE PUSH1 0x24 DUP3 ADD SWAP1 SWAP3 MSTORE PUSH1 0x20 DUP1 DUP3 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 OR DUP4 MSTORE DUP2 MLOAD SWAP2 SWAP3 SWAP1 SWAP2 DUP5 SWAP2 DUP9 PUSH2 0x1388 STATICCALL SWAP3 POP DUP3 DUP1 ISZERO PUSH2 0x1A02 JUMPI POP DUP2 MLOAD ISZERO ISZERO JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x1A22 DUP13 PUSH2 0x194F JUMP JUMPDEST ISZERO ISZERO PUSH2 0x1A2D JUMPI PUSH2 0x1F6B JUMP JUMPDEST DUP12 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x3E8FF43F PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1A6B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1A7F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1A95 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP9 POP PUSH1 0x2 PUSH2 0xFFFF DUP11 AND EQ ISZERO PUSH2 0x1F6B JUMPI DUP12 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x71F52BF3 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1AE4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1AF8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1B0E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP8 POP PUSH1 0x0 SWAP7 POP JUMPDEST DUP8 PUSH2 0xFFFF AND DUP8 PUSH2 0xFFFF AND LT ISZERO PUSH2 0x1CC4 JUMPI DUP12 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x19B64015 DUP9 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1B74 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1B88 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1B9E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH31 0x5E319C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP5 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 MLOAD SWAP3 SWAP9 POP SWAP1 DUP15 AND SWAP2 PUSH3 0x5E319C SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1C06 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1C1A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1C30 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xBF7DA6BA00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP10 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH1 0x24 DUP3 ADD DUP5 SWAP1 MSTORE SWAP2 MLOAD SWAP3 SWAP8 POP SWAP1 DUP14 AND SWAP2 PUSH4 0xBF7DA6BA SWAP2 PUSH1 0x44 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1CA0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1CB4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x1 SWAP1 SWAP9 ADD SWAP8 POP PUSH2 0x1B17 SWAP1 POP JUMP JUMPDEST DUP10 ISZERO ISZERO PUSH2 0x1CD0 JUMPI PUSH2 0x1F6B JUMP JUMPDEST DUP12 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x337E3FB PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1D0E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1D22 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1D38 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x2630C12F00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP6 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP15 AND SWAP2 PUSH4 0x2630C12F SWAP2 PUSH1 0x4 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1D99 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1DAD JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1DC3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xB9E1715B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP5 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND SWAP2 PUSH4 0xB9E1715B SWAP2 PUSH1 0x4 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1E24 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1E38 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1E4E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xF997FDA700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP4 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND SWAP2 PUSH4 0xF997FDA7 SWAP2 PUSH1 0x4 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1EAF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1EC3 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1ED9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x119B90CD00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP6 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE DUP1 DUP5 AND PUSH1 0x44 DUP4 ADD MSTORE SWAP2 MLOAD SWAP3 SWAP4 POP SWAP1 DUP14 AND SWAP2 PUSH4 0x119B90CD SWAP2 PUSH1 0x64 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1F52 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1F66 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMPDEST POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 SWAP1 PUSH1 0x20 DUP3 MUL DUP1 CODESIZE DUP4 CODECOPY POP SWAP2 SWAP3 SWAP2 POP POP JUMP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 CODESIZE DUP3 0xf9 DUP11 PUSH20 0x103C8FEEAFCA2F4586DBA39BD758474195419FCD DUP15 SMOD 0x4e STOP 0xa5 0xeb SDIV STOP 0x29 ", + "sourceMap": "1163:10222:8:-;;;2009:139;8:9:-1;5:2;;;30:1;27;20:12;5:2;2009:139:8;;;;;;;;;;;;;;;;;;;488:5:66;:18;;-1:-1:-1;;;;;;488:18:66;496:10;488:18;;;2009:139:8;;475:23:72;2009:139:8;475:13:72;;;;:23;:::i;:::-;-1:-1:-1;1931:8:60;:39;;-1:-1:-1;;;;;1931:39:60;;;-1:-1:-1;;;;;;1931:39:60;;;;;;;;1974:12;:43;;;;;;;;;;2120:10:8;:24;;;;;;;;;;;;;;-1:-1:-1;1163:10222:8;;553:117:72;-1:-1:-1;;;;;620:22:72;;;;612:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;553:117;:::o;1163:10222:8:-;;;;;;;" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "6080604052600436106100b65763ffffffff60e060020a600035041663024c7ec781146100bb5780632fe8a6ad146100d757806349d10b641461010057806361cd756e1461011557806379ba5097146101465780637b1039991461015b5780638da5cb5b1461017057806390f58c9614610185578063b4a176d3146101a1578063b8066bcb146101b6578063bc444e13146101cb578063d4ee1d90146101e3578063f2cfed87146101f8578063f2fde38b1461021c575b600080fd5b3480156100c757600080fd5b506100d5600435151561023d565b005b3480156100e357600080fd5b506100ec610285565b604080519115158252519081900360200190f35b34801561010c57600080fd5b506100d56102a6565b34801561012157600080fd5b5061012a610525565b60408051600160a060020a039092168252519081900360200190f35b34801561015257600080fd5b506100d5610534565b34801561016757600080fd5b5061012a610607565b34801561017c57600080fd5b5061012a610616565b34801561019157600080fd5b506100d561ffff60043516610625565b3480156101ad57600080fd5b506100d5610636565b3480156101c257600080fd5b5061012a61066f565b3480156101d757600080fd5b506100d560043561067e565b3480156101ef57600080fd5b5061012a610688565b34801561020457600080fd5b506100d5600160a060020a0360043516602435610697565b34801561022857600080fd5b506100d5600160a060020a0360043516610aa8565b610245610b45565b60038054911515740100000000000000000000000000000000000000000274ff000000000000000000000000000000000000000019909216919091179055565b60035474010000000000000000000000000000000000000000900460ff1681565b60008054600160a060020a03163314806102db575060035474010000000000000000000000000000000000000000900460ff16155b1515610331576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b61035a7f436f6e7472616374526567697374727900000000000000000000000000000000610ba9565b600254909150600160a060020a038083169116148015906103835750600160a060020a03811615155b15156103d9576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e56414c49445f5245474953545259000000000000000000000000604482015290519081900360640190fd5b604080517fbb34534c0000000000000000000000000000000000000000000000000000000081527f436f6e747261637452656769737472790000000000000000000000000000000060048201529051600091600160a060020a0384169163bb34534c9160248082019260209290919082900301818787803b15801561045d57600080fd5b505af1158015610471573d6000803e3d6000fd5b505050506040513d602081101561048757600080fd5b5051600160a060020a031614156104e8576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e56414c49445f5245474953545259000000000000000000000000604482015290519081900360640190fd5b6002805460038054600160a060020a0380841673ffffffffffffffffffffffffffffffffffffffff19928316179092559091169216919091179055565b600354600160a060020a031681565b600154600160a060020a03163314610596576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b60015460008054604051600160a060020a0393841693909116917f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91a3600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b600254600160a060020a031681565b600054600160a060020a031681565b6106333361ffff8316610697565b50565b61063e610b45565b6003546002805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055565b600454600160a060020a031681565b6106333382610697565b600154600160a060020a031681565b600080600080600086945084600160a060020a0316638da5cb5b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156106e057600080fd5b505af11580156106f4573d6000803e3d6000fd5b505050506040513d602081101561070a57600080fd5b5051935061071785610c41565b61072085610cd0565b925061072c8584611052565b61073685846113df565b61074085846114d2565b84600160a060020a031663fc0c546a6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561077e57600080fd5b505af1158015610792573d6000803e3d6000fd5b505050506040513d60208110156107a857600080fd5b505191506107b58561194f565b8015610827575084600160a060020a03166322f3e2d46040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156107fa57600080fd5b505af115801561080e573d6000803e3d6000fd5b505050506040513d602081101561082457600080fd5b50515b905084600160a060020a031682600160a060020a0316638da5cb5b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561087157600080fd5b505af1158015610885573d6000803e3d6000fd5b505050506040513d602081101561089b57600080fd5b5051600160a060020a031614156109765784600160a060020a03166321e6b53d846040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b15801561090757600080fd5b505af115801561091b573d6000803e3d6000fd5b5050505082600160a060020a031663cdc91c696040518163ffffffff1660e060020a028152600401600060405180830381600087803b15801561095d57600080fd5b505af1158015610971573d6000803e3d6000fd5b505050505b610981858483611a0b565b84600160a060020a031663f2fde38b856040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b1580156109dc57600080fd5b505af11580156109f0573d6000803e3d6000fd5b5050505082600160a060020a031663f2fde38b856040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b158015610a4f57600080fd5b505af1158015610a63573d6000803e3d6000fd5b5050604051600160a060020a038087169350881691507f522b846327aea07106ec4d64ae4b6d6dea47689884dab650fd3a1f2e1d6a270190600090a350505050505050565b610ab0610b45565b600054600160a060020a0382811691161415610b16576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f53414d455f4f574e4552000000000000000000000000000000000000604482015290519081900360640190fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600054600160a060020a03163314610ba7576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b565b600254604080517fbb34534c000000000000000000000000000000000000000000000000000000008152600481018490529051600092600160a060020a03169163bb34534c91602480830192602092919082900301818787803b158015610c0f57600080fd5b505af1158015610c23573d6000803e3d6000fd5b505050506040513d6020811015610c3957600080fd5b505192915050565b80600160a060020a03166379ba50976040518163ffffffff1660e060020a028152600401600060405180830381600087803b158015610c7f57600080fd5b505af1158015610c93573d6000803e3d6000fd5b5050604051309250600160a060020a03841691507ff764604894fa993d4370a9cb28b81c11deb1aafdb2909156173ae3833dad807590600090a350565b600080600080600080600087600160a060020a031663fc0c546a6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610d1957600080fd5b505af1158015610d2d573d6000803e3d6000fd5b505050506040513d6020811015610d4357600080fd5b5051604080517f94c275ad0000000000000000000000000000000000000000000000000000000081529051919750600160a060020a038a16916394c275ad916004808201926020929091908290030181600087803b158015610da457600080fd5b505af1158015610db8573d6000803e3d6000fd5b505050506040513d6020811015610dce57600080fd5b5051604080517f71f52bf30000000000000000000000000000000000000000000000000000000081529051919650600160a060020a038a16916371f52bf3916004808201926020929091908290030181600087803b158015610e2f57600080fd5b505af1158015610e43573d6000803e3d6000fd5b505050506040513d6020811015610e5957600080fd5b5051935060009250610e6a8861194f565b15610ee05787600160a060020a0316633e8ff43f6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610ead57600080fd5b505af1158015610ec1573d6000803e3d6000fd5b505050506040513d6020811015610ed757600080fd5b50519250610ef2565b60018461ffff161115610ef257600192505b610f1b7f436f6e766572746572466163746f727900000000000000000000000000000000610ba9565b600254604080517f15f64b6a00000000000000000000000000000000000000000000000000000000815261ffff87166004820152600160a060020a038a81166024830152928316604482015263ffffffff891660648201529051929450908416916315f64b6a916084808201926020929091908290030181600087803b158015610fa457600080fd5b505af1158015610fb8573d6000803e3d6000fd5b505050506040513d6020811015610fce57600080fd5b5051604080517f79ba50970000000000000000000000000000000000000000000000000000000081529051919250600160a060020a038316916379ba50979160048082019260009290919082900301818387803b15801561102e57600080fd5b505af1158015611042573d6000803e3d6000fd5b50929a9950505050505050505050565b60008060008085600160a060020a03166371f52bf36040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561109657600080fd5b505af11580156110aa573d6000803e3d6000fd5b505050506040513d60208110156110c057600080fd5b50519350600092505b8361ffff168361ffff1610156113d75785600160a060020a03166319b64015846040518263ffffffff1660e060020a028152600401808261ffff168152602001915050602060405180830381600087803b15801561112657600080fd5b505af115801561113a573d6000803e3d6000fd5b505050506040513d602081101561115057600080fd5b5051604080517f0e53aae9000000000000000000000000000000000000000000000000000000008152600160a060020a038084166004830152915192945090881691630e53aae99160248082019260a0929091908290030181600087803b1580156111ba57600080fd5b505af11580156111ce573d6000803e3d6000fd5b505050506040513d60a08110156111e457600080fd5b50602001519050600160a060020a03821673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee14156112ad57604080517f6a49d2c400000000000000000000000000000000000000000000000000000000815273eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee600482015263ffffffff831660248201529051600160a060020a03871691636a49d2c491604480830192600092919082900301818387803b15801561129057600080fd5b505af11580156112a4573d6000803e3d6000fd5b505050506113cc565b600454600160a060020a038381169116141561134357604080517f6a49d2c400000000000000000000000000000000000000000000000000000000815273eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee600482015263ffffffff831660248201529051600160a060020a03871691636a49d2c491604480830192600092919082900301818387803b15801561129057600080fd5b604080517f6a49d2c4000000000000000000000000000000000000000000000000000000008152600160a060020a03848116600483015263ffffffff84166024830152915191871691636a49d2c49160448082019260009290919082900301818387803b1580156113b357600080fd5b505af11580156113c7573d6000803e3d6000fd5b505050505b6001909201916110c9565b505050505050565b600082600160a060020a031663579cd3ca6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561141f57600080fd5b505af1158015611433573d6000803e3d6000fd5b505050506040513d602081101561144957600080fd5b5051604080517fecbca55d00000000000000000000000000000000000000000000000000000000815263ffffffff831660048201529051919250600160a060020a0384169163ecbca55d9160248082019260009290919082900301818387803b1580156114b557600080fd5b505af11580156114c9573d6000803e3d6000fd5b50505050505050565b600080600080600086600160a060020a03166371f52bf36040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561151857600080fd5b505af115801561152c573d6000803e3d6000fd5b505050506040513d602081101561154257600080fd5b50519350600092505b8361ffff168361ffff1610156114c95786600160a060020a03166319b64015846040518263ffffffff1660e060020a028152600401808261ffff168152602001915050602060405180830381600087803b1580156115a857600080fd5b505af11580156115bc573d6000803e3d6000fd5b505050506040513d60208110156115d257600080fd5b50519150600160a060020a03821673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee14156116735786600160a060020a031663690d8320876040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b15801561165657600080fd5b505af115801561166a573d6000803e3d6000fd5b50505050611944565b600454600160a060020a03838116911614156118235760048054604080517f70a08231000000000000000000000000000000000000000000000000000000008152600160a060020a038b811694820194909452905192909116916370a08231916024808201926020929091908290030181600087803b1580156116f557600080fd5b505af1158015611709573d6000803e3d6000fd5b505050506040513d602081101561171f57600080fd5b505160048054604080517f5e35359e000000000000000000000000000000000000000000000000000000008152600160a060020a03928316938101939093523060248401526044830184905251929750891691635e35359e9160648082019260009290919082900301818387803b15801561179957600080fd5b505af11580156117ad573d6000803e3d6000fd5b505060048054604080517f205c2878000000000000000000000000000000000000000000000000000000008152600160a060020a038c811694820194909452602481018b9052905192909116935063205c2878925060448082019260009290919082900301818387803b15801561165657600080fd5b50604080517f70a08231000000000000000000000000000000000000000000000000000000008152600160a060020a038881166004830152915183928316916370a082319160248083019260209291908290030181600087803b15801561188957600080fd5b505af115801561189d573d6000803e3d6000fd5b505050506040513d60208110156118b357600080fd5b5051604080517f5e35359e000000000000000000000000000000000000000000000000000000008152600160a060020a038481166004830152898116602483015260448201849052915192975090891691635e35359e9160648082019260009290919082900301818387803b15801561192b57600080fd5b505af115801561193f573d6000803e3d6000fd5b505050505b60019092019161154b565b60008061195a611f79565b604080517f69735632384f72486967686572282900000000000000000000000000000000008152815190819003600f0181206004825260248201909252602080820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909416939093178352815191929091849188611388fa9250828015611a025750815115155b95945050505050565b6000806000806000806000806000611a228c61194f565b1515611a2d57611f6b565b8b600160a060020a0316633e8ff43f6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015611a6b57600080fd5b505af1158015611a7f573d6000803e3d6000fd5b505050506040513d6020811015611a9557600080fd5b50519850600261ffff8a161415611f6b578b600160a060020a03166371f52bf36040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015611ae457600080fd5b505af1158015611af8573d6000803e3d6000fd5b505050506040513d6020811015611b0e57600080fd5b50519750600096505b8761ffff168761ffff161015611cc4578b600160a060020a03166319b64015886040518263ffffffff1660e060020a028152600401808261ffff168152602001915050602060405180830381600087803b158015611b7457600080fd5b505af1158015611b88573d6000803e3d6000fd5b505050506040513d6020811015611b9e57600080fd5b5051604080517e5e319c000000000000000000000000000000000000000000000000000000008152600160a060020a0380841660048301529151929850908e1691625e319c916024808201926020929091908290030181600087803b158015611c0657600080fd5b505af1158015611c1a573d6000803e3d6000fd5b505050506040513d6020811015611c3057600080fd5b5051604080517fbf7da6ba000000000000000000000000000000000000000000000000000000008152600160a060020a038981166004830152602482018490529151929750908d169163bf7da6ba9160448082019260009290919082900301818387803b158015611ca057600080fd5b505af1158015611cb4573d6000803e3d6000fd5b505060019098019750611b179050565b891515611cd057611f6b565b8b600160a060020a0316630337e3fb6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015611d0e57600080fd5b505af1158015611d22573d6000803e3d6000fd5b505050506040513d6020811015611d3857600080fd5b5051604080517f2630c12f0000000000000000000000000000000000000000000000000000000081529051919550600160a060020a038e1691632630c12f916004808201926020929091908290030181600087803b158015611d9957600080fd5b505af1158015611dad573d6000803e3d6000fd5b505050506040513d6020811015611dc357600080fd5b5051604080517fb9e1715b0000000000000000000000000000000000000000000000000000000081529051919450600160a060020a0385169163b9e1715b916004808201926020929091908290030181600087803b158015611e2457600080fd5b505af1158015611e38573d6000803e3d6000fd5b505050506040513d6020811015611e4e57600080fd5b5051604080517ff997fda70000000000000000000000000000000000000000000000000000000081529051919350600160a060020a0385169163f997fda7916004808201926020929091908290030181600087803b158015611eaf57600080fd5b505af1158015611ec3573d6000803e3d6000fd5b505050506040513d6020811015611ed957600080fd5b5051604080517f119b90cd000000000000000000000000000000000000000000000000000000008152600160a060020a038781166004830152858116602483015280841660448301529151929350908d169163119b90cd9160648082019260009290919082900301818387803b158015611f5257600080fd5b505af1158015611f66573d6000803e3d6000fd5b505050505b505050505050505050505050565b60206040519081016040528060019060208202803883395091929150505600a165627a7a723058203882f98a73103c8feeafca2f4586dba39bd758474195419fcd8e074e00a5eb050029", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0xB6 JUMPI PUSH4 0xFFFFFFFF PUSH1 0xE0 PUSH1 0x2 EXP PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x24C7EC7 DUP2 EQ PUSH2 0xBB JUMPI DUP1 PUSH4 0x2FE8A6AD EQ PUSH2 0xD7 JUMPI DUP1 PUSH4 0x49D10B64 EQ PUSH2 0x100 JUMPI DUP1 PUSH4 0x61CD756E EQ PUSH2 0x115 JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x146 JUMPI DUP1 PUSH4 0x7B103999 EQ PUSH2 0x15B JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x170 JUMPI DUP1 PUSH4 0x90F58C96 EQ PUSH2 0x185 JUMPI DUP1 PUSH4 0xB4A176D3 EQ PUSH2 0x1A1 JUMPI DUP1 PUSH4 0xB8066BCB EQ PUSH2 0x1B6 JUMPI DUP1 PUSH4 0xBC444E13 EQ PUSH2 0x1CB JUMPI DUP1 PUSH4 0xD4EE1D90 EQ PUSH2 0x1E3 JUMPI DUP1 PUSH4 0xF2CFED87 EQ PUSH2 0x1F8 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x21C JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xC7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xD5 PUSH1 0x4 CALLDATALOAD ISZERO ISZERO PUSH2 0x23D JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xE3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xEC PUSH2 0x285 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x10C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xD5 PUSH2 0x2A6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x121 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x12A PUSH2 0x525 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x152 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xD5 PUSH2 0x534 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x167 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x12A PUSH2 0x607 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x17C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x12A PUSH2 0x616 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x191 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xD5 PUSH2 0xFFFF PUSH1 0x4 CALLDATALOAD AND PUSH2 0x625 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1AD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xD5 PUSH2 0x636 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1C2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x12A PUSH2 0x66F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1D7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xD5 PUSH1 0x4 CALLDATALOAD PUSH2 0x67E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1EF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x12A PUSH2 0x688 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x204 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xD5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x697 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x228 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xD5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0xAA8 JUMP JUMPDEST PUSH2 0x245 PUSH2 0xB45 JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD SWAP2 ISZERO ISZERO PUSH21 0x10000000000000000000000000000000000000000 MUL PUSH21 0xFF0000000000000000000000000000000000000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ DUP1 PUSH2 0x2DB JUMPI POP PUSH1 0x3 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x331 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x35A PUSH32 0x436F6E7472616374526567697374727900000000000000000000000000000000 PUSH2 0xBA9 JUMP JUMPDEST PUSH1 0x2 SLOAD SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP4 AND SWAP2 AND EQ DUP1 ISZERO SWAP1 PUSH2 0x383 JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x3D9 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245474953545259000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0xBB34534C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH32 0x436F6E7472616374526567697374727900000000000000000000000000000000 PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP2 PUSH4 0xBB34534C SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x45D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x471 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x487 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ ISZERO PUSH2 0x4E8 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245474953545259000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP5 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP3 DUP4 AND OR SWAP1 SWAP3 SSTORE SWAP1 SWAP2 AND SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x596 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND SWAP4 SWAP1 SWAP2 AND SWAP2 PUSH32 0x343765429AEA5A34B3FF6A3785A98A5ABB2597ACA87BFBB58632C173D585373A SWAP2 LOG3 PUSH1 0x1 DUP1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND OR SWAP1 SWAP2 SSTORE AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH2 0x633 CALLER PUSH2 0xFFFF DUP4 AND PUSH2 0x697 JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x63E PUSH2 0xB45 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x2 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH2 0x633 CALLER DUP3 PUSH2 0x697 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP7 SWAP5 POP DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x8DA5CB5B PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x6E0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x6F4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x70A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP4 POP PUSH2 0x717 DUP6 PUSH2 0xC41 JUMP JUMPDEST PUSH2 0x720 DUP6 PUSH2 0xCD0 JUMP JUMPDEST SWAP3 POP PUSH2 0x72C DUP6 DUP5 PUSH2 0x1052 JUMP JUMPDEST PUSH2 0x736 DUP6 DUP5 PUSH2 0x13DF JUMP JUMPDEST PUSH2 0x740 DUP6 DUP5 PUSH2 0x14D2 JUMP JUMPDEST DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xFC0C546A PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x77E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x792 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x7A8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 POP PUSH2 0x7B5 DUP6 PUSH2 0x194F JUMP JUMPDEST DUP1 ISZERO PUSH2 0x827 JUMPI POP DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x22F3E2D4 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x7FA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x80E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x824 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD JUMPDEST SWAP1 POP DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x8DA5CB5B PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x871 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x885 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x89B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ ISZERO PUSH2 0x976 JUMPI DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x21E6B53D DUP5 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x907 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x91B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xCDC91C69 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x95D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x971 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMPDEST PUSH2 0x981 DUP6 DUP5 DUP4 PUSH2 0x1A0B JUMP JUMPDEST DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xF2FDE38B DUP6 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x9DC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x9F0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xF2FDE38B DUP6 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xA4F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xA63 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP8 AND SWAP4 POP DUP9 AND SWAP2 POP PUSH32 0x522B846327AEA07106EC4D64AE4B6D6DEA47689884DAB650FD3A1F2E1D6A2701 SWAP1 PUSH1 0x0 SWAP1 LOG3 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xAB0 PUSH2 0xB45 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0xB16 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F4F574E4552000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0xBA7 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xBB34534C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP2 PUSH4 0xBB34534C SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC0F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xC23 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xC39 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x79BA5097 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC7F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xC93 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD ADDRESS SWAP3 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP2 POP PUSH32 0xF764604894FA993D4370A9CB28B81C11DEB1AAFDB2909156173AE3833DAD8075 SWAP1 PUSH1 0x0 SWAP1 LOG3 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP8 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xFC0C546A PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xD19 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xD2D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xD43 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x94C275AD00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP8 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP11 AND SWAP2 PUSH4 0x94C275AD SWAP2 PUSH1 0x4 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xDA4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xDB8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xDCE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x71F52BF300000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP7 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP11 AND SWAP2 PUSH4 0x71F52BF3 SWAP2 PUSH1 0x4 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xE2F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xE43 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xE59 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP4 POP PUSH1 0x0 SWAP3 POP PUSH2 0xE6A DUP9 PUSH2 0x194F JUMP JUMPDEST ISZERO PUSH2 0xEE0 JUMPI DUP8 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x3E8FF43F PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xEAD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xEC1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xED7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP3 POP PUSH2 0xEF2 JUMP JUMPDEST PUSH1 0x1 DUP5 PUSH2 0xFFFF AND GT ISZERO PUSH2 0xEF2 JUMPI PUSH1 0x1 SWAP3 POP JUMPDEST PUSH2 0xF1B PUSH32 0x436F6E766572746572466163746F727900000000000000000000000000000000 PUSH2 0xBA9 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x15F64B6A00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH2 0xFFFF DUP8 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP11 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE SWAP3 DUP4 AND PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0xFFFFFFFF DUP10 AND PUSH1 0x64 DUP3 ADD MSTORE SWAP1 MLOAD SWAP3 SWAP5 POP SWAP1 DUP5 AND SWAP2 PUSH4 0x15F64B6A SWAP2 PUSH1 0x84 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xFA4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xFB8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xFCE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x79BA509700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 AND SWAP2 PUSH4 0x79BA5097 SWAP2 PUSH1 0x4 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x102E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1042 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP SWAP3 SWAP11 SWAP10 POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 DUP6 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x71F52BF3 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1096 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x10AA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x10C0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP4 POP PUSH1 0x0 SWAP3 POP JUMPDEST DUP4 PUSH2 0xFFFF AND DUP4 PUSH2 0xFFFF AND LT ISZERO PUSH2 0x13D7 JUMPI DUP6 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x19B64015 DUP5 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1126 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x113A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1150 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xE53AAE900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP5 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 MLOAD SWAP3 SWAP5 POP SWAP1 DUP9 AND SWAP2 PUSH4 0xE53AAE9 SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0xA0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x11BA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x11CE JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0xA0 DUP2 LT ISZERO PUSH2 0x11E4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x20 ADD MLOAD SWAP1 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 AND PUSH20 0xEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE EQ ISZERO PUSH2 0x12AD JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x6A49D2C400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH20 0xEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE PUSH1 0x4 DUP3 ADD MSTORE PUSH4 0xFFFFFFFF DUP4 AND PUSH1 0x24 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND SWAP2 PUSH4 0x6A49D2C4 SWAP2 PUSH1 0x44 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1290 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x12A4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x13CC JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x1343 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x6A49D2C400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH20 0xEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE PUSH1 0x4 DUP3 ADD MSTORE PUSH4 0xFFFFFFFF DUP4 AND PUSH1 0x24 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND SWAP2 PUSH4 0x6A49D2C4 SWAP2 PUSH1 0x44 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1290 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x6A49D2C400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH4 0xFFFFFFFF DUP5 AND PUSH1 0x24 DUP4 ADD MSTORE SWAP2 MLOAD SWAP2 DUP8 AND SWAP2 PUSH4 0x6A49D2C4 SWAP2 PUSH1 0x44 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x13B3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x13C7 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMPDEST PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 PUSH2 0x10C9 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x579CD3CA PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x141F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1433 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1449 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xECBCA55D00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH4 0xFFFFFFFF DUP4 AND PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP2 PUSH4 0xECBCA55D SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x14B5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x14C9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x71F52BF3 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1518 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x152C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1542 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP4 POP PUSH1 0x0 SWAP3 POP JUMPDEST DUP4 PUSH2 0xFFFF AND DUP4 PUSH2 0xFFFF AND LT ISZERO PUSH2 0x14C9 JUMPI DUP7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x19B64015 DUP5 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x15A8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x15BC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x15D2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 AND PUSH20 0xEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE EQ ISZERO PUSH2 0x1673 JUMPI DUP7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x690D8320 DUP8 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1656 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x166A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x1944 JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x1823 JUMPI PUSH1 0x4 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 DUP2 AND SWAP5 DUP3 ADD SWAP5 SWAP1 SWAP5 MSTORE SWAP1 MLOAD SWAP3 SWAP1 SWAP2 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x16F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1709 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x171F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x4 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x5E35359E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 DUP4 AND SWAP4 DUP2 ADD SWAP4 SWAP1 SWAP4 MSTORE ADDRESS PUSH1 0x24 DUP5 ADD MSTORE PUSH1 0x44 DUP4 ADD DUP5 SWAP1 MSTORE MLOAD SWAP3 SWAP8 POP DUP10 AND SWAP2 PUSH4 0x5E35359E SWAP2 PUSH1 0x64 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1799 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x17AD JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x4 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x205C287800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP13 DUP2 AND SWAP5 DUP3 ADD SWAP5 SWAP1 SWAP5 MSTORE PUSH1 0x24 DUP2 ADD DUP12 SWAP1 MSTORE SWAP1 MLOAD SWAP3 SWAP1 SWAP2 AND SWAP4 POP PUSH4 0x205C2878 SWAP3 POP PUSH1 0x44 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1656 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 MLOAD DUP4 SWAP3 DUP4 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1889 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x189D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x18B3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x5E35359E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP10 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP3 ADD DUP5 SWAP1 MSTORE SWAP2 MLOAD SWAP3 SWAP8 POP SWAP1 DUP10 AND SWAP2 PUSH4 0x5E35359E SWAP2 PUSH1 0x64 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x192B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x193F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMPDEST PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 PUSH2 0x154B JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x195A PUSH2 0x1F79 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x69735632384F7248696768657228290000000000000000000000000000000000 DUP2 MSTORE DUP2 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0xF ADD DUP2 KECCAK256 PUSH1 0x4 DUP3 MSTORE PUSH1 0x24 DUP3 ADD SWAP1 SWAP3 MSTORE PUSH1 0x20 DUP1 DUP3 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 OR DUP4 MSTORE DUP2 MLOAD SWAP2 SWAP3 SWAP1 SWAP2 DUP5 SWAP2 DUP9 PUSH2 0x1388 STATICCALL SWAP3 POP DUP3 DUP1 ISZERO PUSH2 0x1A02 JUMPI POP DUP2 MLOAD ISZERO ISZERO JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x1A22 DUP13 PUSH2 0x194F JUMP JUMPDEST ISZERO ISZERO PUSH2 0x1A2D JUMPI PUSH2 0x1F6B JUMP JUMPDEST DUP12 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x3E8FF43F PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1A6B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1A7F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1A95 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP9 POP PUSH1 0x2 PUSH2 0xFFFF DUP11 AND EQ ISZERO PUSH2 0x1F6B JUMPI DUP12 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x71F52BF3 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1AE4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1AF8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1B0E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP8 POP PUSH1 0x0 SWAP7 POP JUMPDEST DUP8 PUSH2 0xFFFF AND DUP8 PUSH2 0xFFFF AND LT ISZERO PUSH2 0x1CC4 JUMPI DUP12 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x19B64015 DUP9 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1B74 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1B88 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1B9E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH31 0x5E319C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP5 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 MLOAD SWAP3 SWAP9 POP SWAP1 DUP15 AND SWAP2 PUSH3 0x5E319C SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1C06 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1C1A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1C30 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xBF7DA6BA00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP10 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH1 0x24 DUP3 ADD DUP5 SWAP1 MSTORE SWAP2 MLOAD SWAP3 SWAP8 POP SWAP1 DUP14 AND SWAP2 PUSH4 0xBF7DA6BA SWAP2 PUSH1 0x44 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1CA0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1CB4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x1 SWAP1 SWAP9 ADD SWAP8 POP PUSH2 0x1B17 SWAP1 POP JUMP JUMPDEST DUP10 ISZERO ISZERO PUSH2 0x1CD0 JUMPI PUSH2 0x1F6B JUMP JUMPDEST DUP12 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x337E3FB PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1D0E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1D22 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1D38 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x2630C12F00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP6 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP15 AND SWAP2 PUSH4 0x2630C12F SWAP2 PUSH1 0x4 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1D99 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1DAD JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1DC3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xB9E1715B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP5 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND SWAP2 PUSH4 0xB9E1715B SWAP2 PUSH1 0x4 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1E24 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1E38 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1E4E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xF997FDA700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP4 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND SWAP2 PUSH4 0xF997FDA7 SWAP2 PUSH1 0x4 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1EAF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1EC3 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1ED9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x119B90CD00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP6 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE DUP1 DUP5 AND PUSH1 0x44 DUP4 ADD MSTORE SWAP2 MLOAD SWAP3 SWAP4 POP SWAP1 DUP14 AND SWAP2 PUSH4 0x119B90CD SWAP2 PUSH1 0x64 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1F52 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1F66 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMPDEST POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 SWAP1 PUSH1 0x20 DUP3 MUL DUP1 CODESIZE DUP4 CODECOPY POP SWAP2 SWAP3 SWAP2 POP POP JUMP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 CODESIZE DUP3 0xf9 DUP11 PUSH20 0x103C8FEEAFCA2F4586DBA39BD758474195419FCD DUP15 SMOD 0x4e STOP 0xa5 0xeb SDIV STOP 0x29 ", + "sourceMap": "1163:10222:8:-;;;;;;;;;-1:-1:-1;;;1163:10222:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3280:206:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3280:206:60;;;;;;;;;1250:38;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1250:38:60;;;;;;;;;;;;;;;;;;;;;;2080:832;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2080:832:60;;;;1165:37;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1165:37:60;;;;;;;;-1:-1:-1;;;;;1165:37:60;;;;;;;;;;;;;;1159:176:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1159:176:66;;;;1085:33:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1085:33:60;;;;157:20:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;157:20:66;;;;3004:102:8;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3004:102:8;;;;;;;2974:119:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2974:119:60;;;;1331:29:8;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1331:29:8;;;;2529:94;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2529:94:8;;;;;180:23:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;180:23:66;;;;3508:956:8;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3508:956:8;-1:-1:-1;;;;;3508:956:8;;;;;;;945:140:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;945:140:66;-1:-1:-1;;;;;945:140:66;;;;;3280:206:60;575:12:66;:10;:12::i;:::-;3426:26:60;:56;;;;;;;-1:-1:-1;;3426:56:60;;;;;;;;;3280:206::o;1250:38::-;;;;;;;;;:::o;2080:832::-;2281:29;2183:5;;-1:-1:-1;;;;;2183:5:60;2169:10;:19;;:50;;-1:-1:-1;2193:26:60;;;;;;;2192:27;2169:50;2161:80;;;;;;;-1:-1:-1;;;;;2161:80:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;2331:28;2341:17;2331:9;:28::i;:::-;2465:8;;2281:79;;-1:-1:-1;;;;;;2442:32:60;;;2465:8;;2442:32;;;;:61;;-1:-1:-1;;;;;;2478:25:60;;;;2442:61;2434:94;;;;;;;-1:-1:-1;;;;;2434:94:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;2628:40;;;;;;2650:17;2628:40;;;;;;2680:1;;-1:-1:-1;;;;;2628:21:60;;;;;:40;;;;;;;;;;;;;;;2680:1;2628:21;:40;;;5:2:-1;;;;30:1;27;20:12;5:2;2628:40:60;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2628:40:60;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2628:40:60;-1:-1:-1;;;;;2628:54:60;;;2620:87;;;;;-1:-1:-1;;;;;2620:87:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;2799:8;;;2784:12;:23;;-1:-1:-1;;;;;2799:8:60;;;-1:-1:-1;;2784:23:60;;;;;;;2886:22;;;;;;;;;;;2080:832::o;1165:37::-;;;-1:-1:-1;;;;;1165:37:60;;:::o;1159:176:66:-;1219:8;;-1:-1:-1;;;;;1219:8:66;1205:10;:22;1197:52;;;;;-1:-1:-1;;;;;1197:52:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;1277:8;;;1270:5;;1258:28;;-1:-1:-1;;;;;1277:8:66;;;;1270:5;;;;1258:28;;;1298:8;;;;1290:16;;-1:-1:-1;;1290:16:66;;;-1:-1:-1;;;;;1298:8:66;;1290:16;;;;1310:21;;;1159:176::o;1085:33:60:-;;;-1:-1:-1;;;;;1085:33:60;;:::o;157:20:66:-;;;-1:-1:-1;;;;;157:20:66;;:::o;3004:102:8:-;3049:53;3071:10;3084:17;;;3049:10;:53::i;:::-;3004:102;:::o;2974:119:60:-;575:12:66;:10;:12::i;:::-;3077::60;;3066:8;:23;;-1:-1:-1;;3066:23:60;-1:-1:-1;;;;;3077:12:60;;;3066:23;;;;;;2974:119::o;1331:29:8:-;;;-1:-1:-1;;;;;1331:29:8;;:::o;2529:94::-;2575:44;2597:10;2610:8;2575:10;:44::i;180:23:66:-;;;-1:-1:-1;;;;;180:23:66;;:::o;3508:956:8:-;3592:20;3641:17;3721:23;3916;4025:13;3626:10;3592:45;;3661:9;-1:-1:-1;;;;;3661:15:8;;:17;;;;;-1:-1:-1;;;3661:17:8;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3661:17:8;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3661:17:8;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3661:17:8;;-1:-1:-1;3682:35:8;3707:9;3682:24;:35::i;:::-;3747:26;3763:9;3747:15;:26::i;:::-;3721:52;;3777:37;3790:9;3801:12;3777;:37::i;:::-;3818:42;3836:9;3847:12;3818:17;:42::i;:::-;3864:48;3888:9;3899:12;3864:23;:48::i;:::-;3942:9;-1:-1:-1;;;;;3942:15:8;;:17;;;;;-1:-1:-1;;;3942:17:8;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3942:17:8;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3942:17:8;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3942:17:8;;-1:-1:-1;4041:33:8;4064:9;4041:22;:33::i;:::-;:57;;;;;4078:9;-1:-1:-1;;;;;4078:18:8;;:20;;;;;-1:-1:-1;;;4078:20:8;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4078:20:8;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4078:20:8;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4078:20:8;4041:57;4025:73;;4133:9;-1:-1:-1;;;;;4107:36:8;:6;-1:-1:-1;;;;;4107:12:8;;:14;;;;;-1:-1:-1;;;4107:14:8;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4107:14:8;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4107:14:8;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4107:14:8;-1:-1:-1;;;;;4107:36:8;;4103:139;;;4150:9;-1:-1:-1;;;;;4150:32:8;;4183:12;4150:46;;;;;-1:-1:-1;;;4150:46:8;;;;;;;-1:-1:-1;;;;;4150:46:8;-1:-1:-1;;;;;4150:46:8;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4150:46:8;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4150:46:8;;;;4201:12;-1:-1:-1;;;;;4201:34:8;;:36;;;;;-1:-1:-1;;;4201:36:8;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4201:36:8;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4201:36:8;;;;4103:139;4246:57;4269:9;4280:12;4294:8;4246:22;:57::i;:::-;4308:9;-1:-1:-1;;;;;4308:27:8;;4336:9;4308:38;;;;;-1:-1:-1;;;4308:38:8;;;;;;;-1:-1:-1;;;;;4308:38:8;-1:-1:-1;;;;;4308:38:8;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4308:38:8;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4308:38:8;;;;4350:12;-1:-1:-1;;;;;4350:30:8;;4381:9;4350:41;;;;;-1:-1:-1;;;4350:41:8;;;;;;;-1:-1:-1;;;;;4350:41:8;-1:-1:-1;;;;;4350:41:8;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4350:41:8;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;4401:59:8;;-1:-1:-1;;;;;4401:59:8;;;;-1:-1:-1;4401:59:8;;;-1:-1:-1;4401:59:8;;;;;3508:956;;;;;;;:::o;945:140:66:-;575:12;:10;:12::i;:::-;1033:5;;-1:-1:-1;;;;;1020:18:66;;;1033:5;;1020:18;;1012:45;;;;;-1:-1:-1;;;;;1012:45:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;1061:8;:20;;-1:-1:-1;;1061:20:66;-1:-1:-1;;;;;1061:20:66;;;;;;;;;;945:140::o;642:93::-;704:5;;-1:-1:-1;;;;;704:5:66;690:10;:19;682:49;;;;;-1:-1:-1;;;;;682:49:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;642:93::o;3647:122:60:-;3732:8;;:33;;;;;;;;;;;;;;3712:7;;-1:-1:-1;;;;;3732:8:60;;:18;;:33;;;;;;;;;;;;;;3712:7;3732:8;:33;;;5:2:-1;;;;30:1;27;20:12;5:2;3732:33:60;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3732:33:60;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3732:33:60;;3647:122;-1:-1:-1;;3647:122:60:o;4809:151:8:-;4881:13;-1:-1:-1;;;;;4881:29:8;;:31;;;;;-1:-1:-1;;;4881:31:8;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4881:31:8;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;4921:35:8;;4951:4;;-1:-1:-1;;;;;;4921:35:8;;;-1:-1:-1;4921:35:8;;;;;4809:151;:::o;5254:872::-;5322:10;5338:23;5389;5451:24;5552:14;5882:34;5970:20;5364:13;-1:-1:-1;;;;;5364:19:8;;:21;;;;;-1:-1:-1;;;5364:21:8;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5364:21:8;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5364:21:8;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5364:21:8;5415:32;;;;;;;;5364:21;;-1:-1:-1;;;;;;5415:30:8;;;;;:32;;;;;5364:21;;5415:32;;;;;;;;;:30;:32;;;5:2:-1;;;;30:1;27;20:12;5:2;5415:32:8;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5415:32:8;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5415:32:8;5478:35;;;;;;;;5415:32;;-1:-1:-1;;;;;;5478:33:8;;;;;:35;;;;;5415:32;;5478:35;;;;;;;;;:33;:35;;;5:2:-1;;;;30:1;27;20:12;5:2;5478:35:8;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5478:35:8;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5478:35:8;;-1:-1:-1;5569:1:8;;-1:-1:-1;5638:37:8;5661:13;5638:22;:37::i;:::-;5634:243;;;5690:13;-1:-1:-1;;;;;5690:27:8;;:29;;;;;-1:-1:-1;;;5690:29:8;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5690:29:8;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5690:29:8;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5690:29:8;;-1:-1:-1;5634:243:8;;;5863:1;5843:17;:21;;;5839:38;;;5876:1;5866:11;;5839:38;5937:28;5947:17;5937:9;:28::i;:::-;6043:8;;5993:77;;;;;;;;;;;;;-1:-1:-1;;;;;5993:77:8;;;;;;;6043:8;;;5993:77;;;;;;;;;;;;;5882:84;;-1:-1:-1;5993:32:8;;;;;;:77;;;;;;;;;;;;;;;6043:8;5993:32;:77;;;5:2:-1;;;;30:1;27;20:12;5:2;5993:77:8;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5993:77:8;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5993:77:8;6075:27;;;;;;;;5993:77;;-1:-1:-1;;;;;;6075:25:8;;;;;:27;;;;;;;;;;;;;;;;:25;:27;;;5:2:-1;;;;30:1;27;20:12;5:2;6075:27:8;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;6113:9:8;;5254:872;-1:-1:-1;;;;;;;;;;5254:872:8:o;6434:751::-;6520:24;6592:8;6639:22;6704:13;6547;-1:-1:-1;;;;;6547:33:8;;:35;;;;;-1:-1:-1;;;6547:35:8;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6547:35:8;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6547:35:8;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6547:35:8;;-1:-1:-1;6603:1:8;;-1:-1:-1;6587:595:8;6610:17;6606:21;;:1;:21;;;6587:595;;;6664:13;-1:-1:-1;;;;;6664:29:8;;6694:1;6664:32;;;;;-1:-1:-1;;;6664:32:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6664:32:8;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6664:32:8;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6664:32:8;6727:40;;;;;;-1:-1:-1;;;;;6727:40:8;;;;;;;;;6664:32;;-1:-1:-1;6727:24:8;;;;;;:40;;;;;;;;;;;;;;;-1:-1:-1;6727:24:8;:40;;;5:2:-1;;;;30:1;27;20:12;5:2;6727:40:8;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6727:40:8;;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;6727:40:8;;;;-1:-1:-1;;;;;;6797:37:8;;1286:42;6797:37;6793:385;;;6842:66;;;;;;1286:42;6842:66;;;;;;;;;;;;;-1:-1:-1;;;;;6842:24:8;;;;;:66;;;;;-1:-1:-1;;6842:66:8;;;;;;;-1:-1:-1;6842:24:8;:66;;;5:2:-1;;;;30:1;27;20:12;5:2;6842:66:8;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6842:66:8;;;;6793:385;;;6979:10;;-1:-1:-1;;;;;6953:37:8;;;6979:10;;6953:37;6949:229;;;6998:66;;;;;;1286:42;6998:66;;;;;;;;;;;;;-1:-1:-1;;;;;6998:24:8;;;;;:66;;;;;-1:-1:-1;;6998:66:8;;;;;;;-1:-1:-1;6998:24:8;:66;;;5:2:-1;;;;30:1;27;20:12;6949:229:8;7111:61;;;;;;-1:-1:-1;;;;;7111:61:8;;;;;;;;;;;;;;;;:24;;;;;;:61;;;;;-1:-1:-1;;7111:61:8;;;;;;;;-1:-1:-1;7111:24:8;:61;;;5:2:-1;;;;30:1;27;20:12;5:2;7111:61:8;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7111:61:8;;;;6949:229;6629:3;;;;;6587:595;;;6434:751;;;;;;:::o;7393:196::-;7484:20;7507:13;-1:-1:-1;;;;;7507:27:8;;:29;;;;;-1:-1:-1;;;7507:29:8;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7507:29:8;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7507:29:8;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7507:29:8;7540:45;;;;;;;;;;;;;;;7507:29;;-1:-1:-1;;;;;;7540:30:8;;;;;:45;;;;;-1:-1:-1;;7540:45:8;;;;;;;;-1:-1:-1;7540:30:8;:45;;;5:2:-1;;;;30:1;27;20:12;5:2;7540:45:8;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7540:45:8;;;;7393:196;;;:::o;8004:961::-;8101:22;8127:24;8199:8;8246:22;8759:21;8154:13;-1:-1:-1;;;;;8154:33:8;;:35;;;;;-1:-1:-1;;;8154:35:8;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8154:35:8;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8154:35:8;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8154:35:8;;-1:-1:-1;8210:1:8;;-1:-1:-1;8194:768:8;8217:17;8213:21;;:1;:21;;;8194:768;;;8271:13;-1:-1:-1;;;;;8271:29:8;;8301:1;8271:32;;;;;-1:-1:-1;;;8271:32:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8271:32:8;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8271:32:8;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8271:32:8;;-1:-1:-1;;;;;;8332:37:8;;1286:42;8332:37;8328:630;;;8377:13;-1:-1:-1;;;;;8377:25:8;;8411:13;8377:49;;;;;-1:-1:-1;;;8377:49:8;;;;;;;-1:-1:-1;;;;;8377:49:8;-1:-1:-1;;;;;8377:49:8;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8377:49:8;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8377:49:8;;;;8328:630;;;8497:10;;-1:-1:-1;;;;;8471:37:8;;;8497:10;;8471:37;8467:491;;;8533:10;;;:35;;;;;;-1:-1:-1;;;;;8533:35:8;;;;;;;;;;;;:10;;;;;:20;;:35;;;;;;;;;;;;;;;:10;;:35;;;5:2:-1;;;;30:1;27;20:12;5:2;8533:35:8;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8533:35:8;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8533:35:8;8603:10;;;8574:71;;;;;;-1:-1:-1;;;;;8603:10:8;;;8574:71;;;;;;;8623:4;8574:71;;;;;;;;;;;8533:35;;-1:-1:-1;8574:28:8;;;;;:71;;;;;8603:10;;8574:71;;;;;;;;8603:10;8574:28;:71;;;5:2:-1;;;;30:1;27;20:12;5:2;8574:71:8;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;8651:10:8;;;:61;;;;;;-1:-1:-1;;;;;8651:61:8;;;;;;;;;;;;;;;;;;:10;;;;;-1:-1:-1;8651:21:8;;-1:-1:-1;8651:61:8;;;;;:10;;:61;;;;;;;;:10;;:61;;;5:2:-1;;;;30:1;27;20:12;8467:491:8;-1:-1:-1;8833:34:8;;;;;;-1:-1:-1;;;;;8833:34:8;;;;;;;;;8795:14;;8833:19;;;;;:34;;;;;;;;;;;;;;-1:-1:-1;8833:19:8;:34;;;5:2:-1;;;;30:1;27;20:12;5:2;8833:34:8;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8833:34:8;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8833:34:8;8873:79;;;;;;-1:-1:-1;;;;;8873:79:8;;;;;;;;;;;;;;;;;;;;;;8833:34;;-1:-1:-1;8873:28:8;;;;;;:79;;;;;-1:-1:-1;;8873:79:8;;;;;;;;-1:-1:-1;8873:28:8;:79;;;5:2:-1;;;;30:1;27;20:12;5:2;8873:79:8;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8873:79:8;;;;8467:491;8236:3;;;;;8194:768;;10758:625;10836:4;10846:12;10862:21;;:::i;:::-;10569:28;;;;;;;;;;;;;;;;22:32:-1;6:49;;10907:54:8;;;;;;49:4:-1;25:18;;;61:17;;10907:54:8;182:15:-1;10907:54:8;;;;179:29:-1;;;;160:49;;11206:11:8;;10569:28;;49:4:-1;;11292:3:8;;11078:10;11007:4;10991:351;10980:362;;11357:7;:22;;;;-1:-1:-1;11368:6:8;;:11;;11357:22;11350:29;10758:625;-1:-1:-1;;;;;10758:625:8:o;9248:1254::-;9424:20;9509:24;9581:8;9664:31;9736:15;10022:31;10162:24;10248:28;10310;9374:37;9397:13;9374:22;:37::i;:::-;9373:38;9369:51;;;9413:7;;9369:51;9447:13;-1:-1:-1;;;;;9447:27:8;;:29;;;;;-1:-1:-1;;;9447:29:8;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9447:29:8;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9447:29:8;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9447:29:8;;-1:-1:-1;9501:1:8;9484:18;;;;9480:1019;;;9536:13;-1:-1:-1;;;;;9536:33:8;;:35;;;;;-1:-1:-1;;;9536:35:8;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9536:35:8;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9536:35:8;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9536:35:8;;-1:-1:-1;9592:1:8;;-1:-1:-1;9576:366:8;9599:17;9595:21;;:1;:21;;;9576:366;;;9698:13;-1:-1:-1;;;;;9698:29:8;;9728:1;9698:32;;;;;-1:-1:-1;;;9698:32:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9698:32:8;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9698:32:8;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9698:32:8;9754:82;;;;;;-1:-1:-1;;;;;9754:82:8;;;;;;;;;9698:32;;-1:-1:-1;9754:61:8;;;;;;:82;;;;;9698:32;;9754:82;;;;;;;;-1:-1:-1;9754:61:8;:82;;;5:2:-1;;;;30:1;27;20:12;5:2;9754:82:8;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9754:82:8;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9754:82:8;9842:94;;;;;;-1:-1:-1;;;;;9842:94:8;;;;;;;;;;;;;;;9754:82;;-1:-1:-1;9842:64:8;;;;;;:94;;;;;-1:-1:-1;;9842:94:8;;;;;;;;-1:-1:-1;9842:64:8;:94;;;5:2:-1;;;;30:1;27;20:12;5:2;9842:94:8;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;9618:3:8;;;;;-1:-1:-1;9576:366:8;;-1:-1:-1;9576:366:8;;9952:9;9951:10;9947:34;;;9969:7;;9947:34;10082:13;-1:-1:-1;;;;;10056:60:8;;:62;;;;;-1:-1:-1;;;10056:62:8;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10056:62:8;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10056:62:8;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;10056:62:8;10189:54;;;;;;;;10056:62;;-1:-1:-1;;;;;;10189:52:8;;;;;:54;;;;;10056:62;;10189:54;;;;;;;;;:52;:54;;;5:2:-1;;;;30:1;27;20:12;5:2;10189:54:8;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10189:54:8;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;10189:54:8;10279:26;;;;;;;;10189:54;;-1:-1:-1;;;;;;10279:24:8;;;;;:26;;;;;10189:54;;10279:26;;;;;;;;;:24;:26;;;5:2:-1;;;;30:1;27;20:12;5:2;10279:26:8;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10279:26:8;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;10279:26:8;10341;;;;;;;;10279;;-1:-1:-1;;;;;;10341:24:8;;;;;:26;;;;;10279;;10341;;;;;;;;;:24;:26;;;5:2:-1;;;;30:1;27;20:12;5:2;10341:26:8;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10341:26:8;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;10341:26:8;10406:88;;;;;;-1:-1:-1;;;;;10406:88:8;;;;;;;;;;;;;;;;;;;;;;;10341:26;;-1:-1:-1;10406:49:8;;;;;;:88;;;;;-1:-1:-1;;10406:88:8;;;;;;;;-1:-1:-1;10406:49:8;:88;;;5:2:-1;;;;30:1;27;20:12;5:2;10406:88:8;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10406:88:8;;;;9480:1019;9248:1254;;;;;;;;;;;;:::o;1163:10222::-;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;-1:-1;1163:10222:8;;;-1:-1:-1;;1163:10222:8:o" + }, + "methodIdentifiers": { + "acceptOwnership()": "79ba5097", + "etherToken()": "b8066bcb", + "newOwner()": "d4ee1d90", + "onlyOwnerCanUpdateRegistry()": "2fe8a6ad", + "owner()": "8da5cb5b", + "prevRegistry()": "61cd756e", + "registry()": "7b103999", + "restoreRegistry()": "b4a176d3", + "restrictRegistryUpdate(bool)": "024c7ec7", + "transferOwnership(address)": "f2fde38b", + "updateRegistry()": "49d10b64", + "upgrade(bytes32)": "bc444e13", + "upgrade(uint16)": "90f58c96", + "upgradeOld(address,bytes32)": "f2cfed87" + } + }, + "userdoc": { + "methods": {} + } + } + }, + "solidity/contracts/converter/LiquidityPoolConverter.sol": { + "LiquidityPoolConverter": { + "abi": [ + { + "constant": false, + "inputs": [ + { + "name": "_onlyOwnerCanUpdateRegistry", + "type": "bool" + } + ], + "name": "restrictRegistryUpdate", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "reserveRatio", + "outputs": [ + { + "name": "", + "type": "uint32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_address", + "type": "address" + } + ], + "name": "connectors", + "outputs": [ + { + "name": "", + "type": "uint256" + }, + { + "name": "", + "type": "uint32" + }, + { + "name": "", + "type": "bool" + }, + { + "name": "", + "type": "bool" + }, + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "hasETHReserve", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_index", + "type": "uint256" + } + ], + "name": "connectorTokens", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_reserveToken", + "type": "address" + } + ], + "name": "reserveWeight", + "outputs": [ + { + "name": "", + "type": "uint32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_sourceToken", + "type": "address" + }, + { + "name": "_targetToken", + "type": "address" + }, + { + "name": "_amount", + "type": "uint256" + } + ], + "name": "getReturn", + "outputs": [ + { + "name": "", + "type": "uint256" + }, + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_newOwner", + "type": "address" + } + ], + "name": "transferTokenOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "isActive", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "onlyOwnerCanUpdateRegistry", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "acceptTokenOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_token", + "type": "address" + }, + { + "name": "_to", + "type": "address" + }, + { + "name": "_amount", + "type": "uint256" + } + ], + "name": "withdrawFromAnchor", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "converterType", + "outputs": [ + { + "name": "", + "type": "uint16" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "updateRegistry", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_whitelist", + "type": "address" + } + ], + "name": "setConversionWhitelist", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "version", + "outputs": [ + { + "name": "", + "type": "uint16" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "conversionFee", + "outputs": [ + { + "name": "", + "type": "uint32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_token", + "type": "address" + }, + { + "name": "_to", + "type": "address" + }, + { + "name": "_amount", + "type": "uint256" + } + ], + "name": "withdrawTokens", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "prevRegistry", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_newOwner", + "type": "address" + } + ], + "name": "transferAnchorOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_to", + "type": "address" + } + ], + "name": "withdrawETH", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_token", + "type": "address" + }, + { + "name": "_weight", + "type": "uint32" + } + ], + "name": "addReserve", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "connectorTokenCount", + "outputs": [ + { + "name": "", + "type": "uint16" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "acceptOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "registry", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "owner", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "maxConversionFee", + "outputs": [ + { + "name": "", + "type": "uint32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "reserveTokenCount", + "outputs": [ + { + "name": "", + "type": "uint16" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_sourceToken", + "type": "address" + }, + { + "name": "_targetToken", + "type": "address" + }, + { + "name": "_amount", + "type": "uint256" + } + ], + "name": "targetAmountAndFee", + "outputs": [ + { + "name": "", + "type": "uint256" + }, + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "restoreRegistry", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "conversionsEnabled", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "conversionWhitelist", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "acceptAnchorOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "", + "type": "uint256" + } + ], + "name": "reserveTokens", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "isV28OrHigher", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "anchor", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "newOwner", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "upgrade", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "", + "type": "address" + } + ], + "name": "reserves", + "outputs": [ + { + "name": "balance", + "type": "uint256" + }, + { + "name": "weight", + "type": "uint32" + }, + { + "name": "deprecated1", + "type": "bool" + }, + { + "name": "deprecated2", + "type": "bool" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_connectorToken", + "type": "address" + } + ], + "name": "getConnectorBalance", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_reserveToken", + "type": "address" + } + ], + "name": "reserveBalance", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_sourceToken", + "type": "address" + }, + { + "name": "_targetToken", + "type": "address" + }, + { + "name": "_amount", + "type": "uint256" + }, + { + "name": "_trader", + "type": "address" + }, + { + "name": "_beneficiary", + "type": "address" + } + ], + "name": "convert", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": true, + "stateMutability": "payable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_conversionFee", + "type": "uint32" + } + ], + "name": "setConversionFee", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "token", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "name": "_anchor", + "type": "address" + }, + { + "name": "_registry", + "type": "address" + }, + { + "name": "_maxConversionFee", + "type": "uint32" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "payable": true, + "stateMutability": "payable", + "type": "fallback" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "_provider", + "type": "address" + }, + { + "indexed": true, + "name": "_reserveToken", + "type": "address" + }, + { + "indexed": false, + "name": "_amount", + "type": "uint256" + }, + { + "indexed": false, + "name": "_newBalance", + "type": "uint256" + }, + { + "indexed": false, + "name": "_newSupply", + "type": "uint256" + } + ], + "name": "LiquidityAdded", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "_provider", + "type": "address" + }, + { + "indexed": true, + "name": "_reserveToken", + "type": "address" + }, + { + "indexed": false, + "name": "_amount", + "type": "uint256" + }, + { + "indexed": false, + "name": "_newBalance", + "type": "uint256" + }, + { + "indexed": false, + "name": "_newSupply", + "type": "uint256" + } + ], + "name": "LiquidityRemoved", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "_type", + "type": "uint16" + }, + { + "indexed": true, + "name": "_anchor", + "type": "address" + }, + { + "indexed": true, + "name": "_activated", + "type": "bool" + } + ], + "name": "Activation", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "_fromToken", + "type": "address" + }, + { + "indexed": true, + "name": "_toToken", + "type": "address" + }, + { + "indexed": true, + "name": "_trader", + "type": "address" + }, + { + "indexed": false, + "name": "_amount", + "type": "uint256" + }, + { + "indexed": false, + "name": "_return", + "type": "uint256" + }, + { + "indexed": false, + "name": "_conversionFee", + "type": "int256" + } + ], + "name": "Conversion", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "_token1", + "type": "address" + }, + { + "indexed": true, + "name": "_token2", + "type": "address" + }, + { + "indexed": false, + "name": "_rateN", + "type": "uint256" + }, + { + "indexed": false, + "name": "_rateD", + "type": "uint256" + } + ], + "name": "TokenRateUpdate", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "_prevFee", + "type": "uint32" + }, + { + "indexed": false, + "name": "_newFee", + "type": "uint32" + } + ], + "name": "ConversionFeeUpdate", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "_prevOwner", + "type": "address" + }, + { + "indexed": true, + "name": "_newOwner", + "type": "address" + } + ], + "name": "OwnerUpdate", + "type": "event" + } + ], + "devdoc": { + "methods": { + "acceptAnchorOwnership()": { + "details": "accepts ownership of the anchor after an ownership transfer also activates the converter can only be called by the contract owner note that prior to version 28, you should use 'acceptTokenOwnership' instead" + }, + "acceptOwnership()": { + "details": "used by a new owner to accept an ownership transfer" + }, + "acceptTokenOwnership()": { + "details": "deprecated, backward compatibility" + }, + "addReserve(address,uint32)": { + "details": "defines a new reserve token for the converter can only be called by the owner while the converter is inactive", + "params": { + "_token": "address of the reserve token", + "_weight": "reserve weight, represented in ppm, 1-1000000" + } + }, + "connectorTokenCount()": { + "details": "deprecated, backward compatibility" + }, + "connectorTokens(uint256)": { + "details": "deprecated, backward compatibility" + }, + "connectors(address)": { + "details": "deprecated, backward compatibility" + }, + "convert(address,address,uint256,address,address)": { + "details": "converts a specific amount of source tokens to target tokens can only be called by the SovrynSwap network contract", + "params": { + "_amount": "amount of tokens to convert (in units of the source token)", + "_beneficiary": "wallet to receive the conversion result", + "_sourceToken": "source ERC20 token", + "_targetToken": "target ERC20 token", + "_trader": "address of the caller who executed the conversion" + }, + "return": "amount of tokens received (in units of the target token)" + }, + "getConnectorBalance(address)": { + "details": "deprecated, backward compatibility" + }, + "getReturn(address,address,uint256)": { + "details": "deprecated, backward compatibility" + }, + "hasETHReserve()": { + "details": "checks whether or not the converter has an ETH reserve", + "return": "true if the converter has an ETH reserve, false otherwise" + }, + "isActive()": { + "details": "returns true if the converter is active, false otherwise", + "return": "true if the converter is active, false otherwise" + }, + "isV28OrHigher()": { + "details": "checks whether or not the converter version is 28 or higher", + "return": "true, since the converter version is 28 or higher" + }, + "reserveBalance(address)": { + "details": "returns the reserve's balance note that prior to version 17, you should use 'getConnectorBalance' instead", + "params": { + "_reserveToken": "reserve token contract address" + }, + "return": "reserve balance" + }, + "reserveTokenCount()": { + "details": "returns the number of reserve tokens defined note that prior to version 17, you should use 'connectorTokenCount' instead", + "return": "number of reserve tokens" + }, + "reserveWeight(address)": { + "details": "returns the reserve's weight added in version 28", + "params": { + "_reserveToken": "reserve token contract address" + }, + "return": "reserve weight" + }, + "restoreRegistry()": { + "details": "restores the previous contract-registry" + }, + "restrictRegistryUpdate(bool)": { + "details": "restricts the permission to update the contract-registry", + "params": { + "_onlyOwnerCanUpdateRegistry": "indicates whether or not permission is restricted to owner only" + } + }, + "setConversionFee(uint32)": { + "details": "updates the current conversion fee can only be called by the contract owner", + "params": { + "_conversionFee": "new conversion fee, represented in ppm" + } + }, + "setConversionWhitelist(address)": { + "details": "allows the owner to update & enable the conversion whitelist contract address when set, only addresses that are whitelisted are actually allowed to use the converter note that the whitelist check is actually done by the SovrynSwapNetwork contract", + "params": { + "_whitelist": "address of a whitelist contract" + } + }, + "token()": { + "details": "deprecated since version 28, backward compatibility - use only for earlier versions" + }, + "transferAnchorOwnership(address)": { + "details": "transfers the anchor ownership the new owner needs to accept the transfer can only be called by the converter upgrder while the upgrader is the owner note that prior to version 28, you should use 'transferAnchorOwnership' instead", + "params": { + "_newOwner": "new token owner" + } + }, + "transferOwnership(address)": { + "details": "allows transferring the contract ownership the new owner still needs to accept the transfer can only be called by the contract owner", + "params": { + "_newOwner": "new contract owner" + } + }, + "transferTokenOwnership(address)": { + "details": "deprecated, backward compatibility" + }, + "updateRegistry()": { + "details": "updates to the new contract-registry" + }, + "upgrade()": { + "details": "upgrades the converter to the latest version can only be called by the owner note that the owner needs to call acceptOwnership on the new converter after the upgrade" + }, + "withdrawETH(address)": { + "details": "withdraws ether can only be called by the owner if the converter is inactive or by upgrader contract can only be called after the upgrader contract has accepted the ownership of this contract can only be called if the converter has an ETH reserve", + "params": { + "_to": "address to send the ETH to" + } + }, + "withdrawFromAnchor(address,address,uint256)": { + "details": "withdraws tokens held by the anchor and sends them to an account can only be called by the owner", + "params": { + "_amount": "amount to withdraw", + "_to": "account to receive the new amount", + "_token": "ERC20 token contract address" + } + }, + "withdrawTokens(address,address,uint256)": { + "details": "withdraws tokens held by the converter and sends them to an account can only be called by the owner note that reserve tokens can only be withdrawn by the owner while the converter is inactive unless the owner is the converter upgrader contract", + "params": { + "_amount": "amount to withdraw", + "_to": "account to receive the new amount", + "_token": "ERC20 token contract address" + } + } + } + }, + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "acceptAnchorOwnership()": "cdc91c69", + "acceptOwnership()": "79ba5097", + "acceptTokenOwnership()": "38a5e016", + "addReserve(address,uint32)": "6a49d2c4", + "anchor()": "d3fb73b4", + "connectorTokenCount()": "71f52bf3", + "connectorTokens(uint256)": "19b64015", + "connectors(address)": "0e53aae9", + "conversionFee()": "579cd3ca", + "conversionWhitelist()": "c45d3d92", + "conversionsEnabled()": "bf754558", + "convert(address,address,uint256,address,address)": "e8dc12ff", + "converterType()": "3e8ff43f", + "getConnectorBalance(address)": "d8959512", + "getReturn(address,address,uint256)": "1e1401f8", + "hasETHReserve()": "12c2aca4", + "isActive()": "22f3e2d4", + "isV28OrHigher()": "d260529c", + "maxConversionFee()": "94c275ad", + "newOwner()": "d4ee1d90", + "onlyOwnerCanUpdateRegistry()": "2fe8a6ad", + "owner()": "8da5cb5b", + "prevRegistry()": "61cd756e", + "registry()": "7b103999", + "reserveBalance(address)": "dc8de379", + "reserveRatio()": "0c7d5cd8", + "reserveTokenCount()": "9b99a8e2", + "reserveTokens(uint256)": "d031370b", + "reserveWeight(address)": "1cfab290", + "reserves(address)": "d66bd524", + "restoreRegistry()": "b4a176d3", + "restrictRegistryUpdate(bool)": "024c7ec7", + "setConversionFee(uint32)": "ecbca55d", + "setConversionWhitelist(address)": "4af80f0e", + "targetAmountAndFee(address,address,uint256)": "af94b8d8", + "token()": "fc0c546a", + "transferAnchorOwnership(address)": "67b6d57c", + "transferOwnership(address)": "f2fde38b", + "transferTokenOwnership(address)": "21e6b53d", + "updateRegistry()": "49d10b64", + "upgrade()": "d55ec697", + "version()": "54fd4d50", + "withdrawETH(address)": "690d8320", + "withdrawFromAnchor(address,address,uint256)": "395900d4", + "withdrawTokens(address,address,uint256)": "5e35359e" + } + }, + "userdoc": { + "methods": {} + } + } + }, + "solidity/contracts/converter/SovrynSwapFormula.sol": { + "SovrynSwapFormula": { + "abi": [ + { + "constant": true, + "inputs": [ + { + "name": "_supply", + "type": "uint256" + }, + { + "name": "_reserveBalance", + "type": "uint256" + }, + { + "name": "_reserveRatio", + "type": "uint32" + }, + { + "name": "_amount", + "type": "uint256" + } + ], + "name": "calculateFundCost", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_supply", + "type": "uint256" + }, + { + "name": "_reserveBalance", + "type": "uint256" + }, + { + "name": "_reserveWeight", + "type": "uint32" + }, + { + "name": "_amount", + "type": "uint256" + } + ], + "name": "calculatePurchaseReturn", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_supply", + "type": "uint256" + }, + { + "name": "_reserveBalance", + "type": "uint256" + }, + { + "name": "_reserveRatio", + "type": "uint32" + }, + { + "name": "_amount", + "type": "uint256" + } + ], + "name": "fundSupplyAmount", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_supply", + "type": "uint256" + }, + { + "name": "_reserveBalance", + "type": "uint256" + }, + { + "name": "_reserveRatio", + "type": "uint32" + }, + { + "name": "_amount", + "type": "uint256" + } + ], + "name": "liquidateRate", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_supply", + "type": "uint256" + }, + { + "name": "_reserveBalance", + "type": "uint256" + }, + { + "name": "_reserveWeight", + "type": "uint32" + }, + { + "name": "_amount", + "type": "uint256" + } + ], + "name": "purchaseRate", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_supply", + "type": "uint256" + }, + { + "name": "_reserveBalance", + "type": "uint256" + }, + { + "name": "_reserveWeight", + "type": "uint32" + }, + { + "name": "_amount", + "type": "uint256" + } + ], + "name": "calculateSaleReturn", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "version", + "outputs": [ + { + "name": "", + "type": "uint16" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_sourceReserveBalance", + "type": "uint256" + }, + { + "name": "_sourceReserveWeight", + "type": "uint32" + }, + { + "name": "_targetReserveBalance", + "type": "uint256" + }, + { + "name": "_targetReserveWeight", + "type": "uint32" + }, + { + "name": "_amount", + "type": "uint256" + } + ], + "name": "calculateCrossConnectorReturn", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_supply", + "type": "uint256" + }, + { + "name": "_reserveBalance", + "type": "uint256" + }, + { + "name": "_reserveWeight", + "type": "uint32" + }, + { + "name": "_amount", + "type": "uint256" + } + ], + "name": "saleTargetAmount", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_sourceReserveBalance", + "type": "uint256" + }, + { + "name": "_sourceReserveWeight", + "type": "uint32" + }, + { + "name": "_targetReserveBalance", + "type": "uint256" + }, + { + "name": "_targetReserveWeight", + "type": "uint32" + }, + { + "name": "_amount", + "type": "uint256" + } + ], + "name": "calculateCrossReserveReturn", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_supply", + "type": "uint256" + }, + { + "name": "_reserveBalance", + "type": "uint256" + }, + { + "name": "_reserveRatio", + "type": "uint32" + }, + { + "name": "_amount", + "type": "uint256" + } + ], + "name": "liquidateReserveAmount", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_sourceReserveBalance", + "type": "uint256" + }, + { + "name": "_sourceReserveWeight", + "type": "uint32" + }, + { + "name": "_targetReserveBalance", + "type": "uint256" + }, + { + "name": "_targetReserveWeight", + "type": "uint32" + }, + { + "name": "_amount", + "type": "uint256" + } + ], + "name": "crossReserveTargetAmount", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_sourceReserveBalance", + "type": "uint256" + }, + { + "name": "_sourceReserveWeight", + "type": "uint32" + }, + { + "name": "_targetReserveBalance", + "type": "uint256" + }, + { + "name": "_targetReserveWeight", + "type": "uint32" + }, + { + "name": "_amount", + "type": "uint256" + } + ], + "name": "crossReserveRate", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_primaryReserveStakedBalance", + "type": "uint256" + }, + { + "name": "_primaryReserveBalance", + "type": "uint256" + }, + { + "name": "_secondaryReserveBalance", + "type": "uint256" + }, + { + "name": "_reserveRateNumerator", + "type": "uint256" + }, + { + "name": "_reserveRateDenominator", + "type": "uint256" + } + ], + "name": "balancedWeights", + "outputs": [ + { + "name": "", + "type": "uint32" + }, + { + "name": "", + "type": "uint32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_supply", + "type": "uint256" + }, + { + "name": "_reserveBalance", + "type": "uint256" + }, + { + "name": "_reserveRatio", + "type": "uint32" + }, + { + "name": "_amount", + "type": "uint256" + } + ], + "name": "calculateLiquidateReturn", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "init", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_supply", + "type": "uint256" + }, + { + "name": "_reserveBalance", + "type": "uint256" + }, + { + "name": "_reserveRatio", + "type": "uint32" + }, + { + "name": "_amount", + "type": "uint256" + } + ], + "name": "fundCost", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_supply", + "type": "uint256" + }, + { + "name": "_reserveBalance", + "type": "uint256" + }, + { + "name": "_reserveWeight", + "type": "uint32" + }, + { + "name": "_amount", + "type": "uint256" + } + ], + "name": "purchaseTargetAmount", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_supply", + "type": "uint256" + }, + { + "name": "_reserveBalance", + "type": "uint256" + }, + { + "name": "_reserveWeight", + "type": "uint32" + }, + { + "name": "_amount", + "type": "uint256" + } + ], + "name": "saleRate", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + } + ], + "devdoc": { + "methods": { + "balancedWeights(uint256,uint256,uint256,uint256,uint256)": { + "details": "The arbitrage incentive is to convert to the point where the on-chain price is equal to the off-chain price. We want this operation to also impact the primary reserve balance becoming equal to the primary reserve staked balance. In other words, we want the arbitrager to convert the difference between the reserve balance and the reserve staked balance.\t * Formula input: - let t denote the primary reserve token staked balance - let s denote the primary reserve token balance - let r denote the secondary reserve token balance - let q denote the numerator of the rate between the tokens - let p denote the denominator of the rate between the tokens Where p primary tokens are equal to q secondary tokens\t * Formula output: - compute x = W(t / r * q / p * log(s / t)) / log(s / t) - return x / (1 + x) as the weight of the primary reserve token - return 1 / (1 + x) as the weight of the secondary reserve token Where W is the Lambert W Function\t * If the rate-provider provides the rates for a common unit, for example: - P = 2 ==> 2 primary reserve tokens = 1 ether - Q = 3 ==> 3 secondary reserve tokens = 1 ether Then you can simply use p = P and q = Q\t * If the rate-provider provides the rates for a single unit, for example: - P = 2 ==> 1 primary reserve token = 2 ethers - Q = 3 ==> 1 secondary reserve token = 3 ethers Then you can simply use p = Q and q = P", + "params": { + "_primaryReserveBalance": "the primary reserve token balance", + "_primaryReserveStakedBalance": "the primary reserve token staked balance", + "_reserveRateDenominator": "the denominator of the rate between the tokens\t * Note that `numerator / denominator` should represent the amount of secondary tokens equal to one primary token", + "_reserveRateNumerator": "the numerator of the rate between the tokens", + "_secondaryReserveBalance": "the secondary reserve token balance" + }, + "return": "the weight of the primary reserve token and the weight of the secondary reserve token, both in ppm (0-1000000)" + }, + "calculateCrossConnectorReturn(uint256,uint32,uint256,uint32,uint256)": { + "details": "deprecated, backward compatibility" + }, + "calculateCrossReserveReturn(uint256,uint32,uint256,uint32,uint256)": { + "details": "deprecated, backward compatibility" + }, + "calculateFundCost(uint256,uint256,uint32,uint256)": { + "details": "deprecated, backward compatibility" + }, + "calculateLiquidateReturn(uint256,uint256,uint32,uint256)": { + "details": "deprecated, backward compatibility" + }, + "calculatePurchaseReturn(uint256,uint256,uint32,uint256)": { + "details": "deprecated, backward compatibility" + }, + "calculateSaleReturn(uint256,uint256,uint32,uint256)": { + "details": "deprecated, backward compatibility" + }, + "crossReserveRate(uint256,uint32,uint256,uint32,uint256)": { + "details": "deprecated, backward compatibility" + }, + "crossReserveTargetAmount(uint256,uint32,uint256,uint32,uint256)": { + "details": "given two reserve balances/weights and a sell amount (in the first reserve token), calculates the target amount for a conversion from the source reserve token to the target reserve token\t * Formula: return = _targetReserveBalance * (1 - (_sourceReserveBalance / (_sourceReserveBalance + _amount)) ^ (_sourceReserveWeight / _targetReserveWeight))", + "params": { + "_amount": "source reserve amount", + "_sourceReserveBalance": "source reserve balance", + "_sourceReserveWeight": "source reserve weight, represented in ppm (1-1000000)", + "_targetReserveBalance": "target reserve balance", + "_targetReserveWeight": "target reserve weight, represented in ppm (1-1000000)" + }, + "return": "target reserve amount" + }, + "fundCost(uint256,uint256,uint32,uint256)": { + "details": "given a smart token supply, reserve balance, reserve ratio and an amount of requested smart tokens, calculates the amount of reserve tokens required for purchasing the given amount of smart tokens\t * Formula: return = _reserveBalance * (((_supply + _amount) / _supply) ^ (MAX_WEIGHT / _reserveRatio) - 1)", + "params": { + "_amount": "requested amount of smart tokens", + "_reserveBalance": "reserve balance", + "_reserveRatio": "reserve ratio, represented in ppm (2-2000000)", + "_supply": "smart token supply" + }, + "return": "reserve token amount" + }, + "fundSupplyAmount(uint256,uint256,uint32,uint256)": { + "details": "given a smart token supply, reserve balance, reserve ratio and an amount of reserve tokens to fund with, calculates the amount of smart tokens received for purchasing with the given amount of reserve tokens\t * Formula: return = _supply * ((_amount / _reserveBalance + 1) ^ (_reserveRatio / MAX_WEIGHT) - 1)", + "params": { + "_amount": "amount of reserve tokens to fund with", + "_reserveBalance": "reserve balance", + "_reserveRatio": "reserve ratio, represented in ppm (2-2000000)", + "_supply": "smart token supply" + }, + "return": "smart token amount" + }, + "init()": { + "details": "should be executed after construction (too large for the constructor)" + }, + "liquidateRate(uint256,uint256,uint32,uint256)": { + "details": "deprecated, backward compatibility" + }, + "liquidateReserveAmount(uint256,uint256,uint32,uint256)": { + "details": "given a smart token supply, reserve balance, reserve ratio and an amount of smart tokens to liquidate, calculates the amount of reserve tokens received for selling the given amount of smart tokens\t * Formula: return = _reserveBalance * (1 - ((_supply - _amount) / _supply) ^ (MAX_WEIGHT / _reserveRatio))", + "params": { + "_amount": "amount of smart tokens to liquidate", + "_reserveBalance": "reserve balance", + "_reserveRatio": "reserve ratio, represented in ppm (2-2000000)", + "_supply": "smart token supply" + }, + "return": "reserve token amount" + }, + "purchaseRate(uint256,uint256,uint32,uint256)": { + "details": "deprecated, backward compatibility" + }, + "purchaseTargetAmount(uint256,uint256,uint32,uint256)": { + "details": "given a token supply, reserve balance, weight and a deposit amount (in the reserve token), calculates the target amount for a given conversion (in the main token)\t * Formula: return = _supply * ((1 + _amount / _reserveBalance) ^ (_reserveWeight / 1000000) - 1)", + "params": { + "_amount": "amount of reserve tokens to get the target amount for", + "_reserveBalance": "reserve balance", + "_reserveWeight": "reserve weight, represented in ppm (1-1000000)", + "_supply": "smart token supply" + }, + "return": "smart token amount" + }, + "saleRate(uint256,uint256,uint32,uint256)": { + "details": "deprecated, backward compatibility" + }, + "saleTargetAmount(uint256,uint256,uint32,uint256)": { + "details": "given a token supply, reserve balance, weight and a sell amount (in the main token), calculates the target amount for a given conversion (in the reserve token)\t * Formula: return = _reserveBalance * (1 - (1 - _amount / _supply) ^ (1000000 / _reserveWeight))", + "params": { + "_amount": "amount of smart tokens to get the target amount for", + "_reserveBalance": "reserve balance", + "_reserveWeight": "reserve weight, represented in ppm (1-1000000)", + "_supply": "smart token supply" + }, + "return": "reserve token amount" + } + } + }, + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b50613e9a806100206000396000f3006080604052600436106101065763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631da6bbfb811461010b57806329a00e7c146101445780632f55bdb51461016b57806335b49af41461019257806348d73fed1461014457806349f9b0f7146101b957806354fd4d50146101e057806365098bb31461020c57806376cf0b561461023a57806379c1b4501461020c5780638074590a1461026157806394491fab146102885780639d1141081461020c578063a11aa1b4146102b6578063abfd231d14610192578063e1c7392a146102fd578063ebbb215814610314578063f3250fe21461033b578063f732f1c9146101b9575b600080fd5b34801561011757600080fd5b5061013260043560243563ffffffff60443516606435610362565b60408051918252519081900360200190f35b34801561015057600080fd5b5061013260043560243563ffffffff60443516606435610379565b34801561017757600080fd5b5061013260043560243563ffffffff60443516606435610387565b34801561019e57600080fd5b5061013260043560243563ffffffff60443516606435610524565b3480156101c557600080fd5b5061013260043560243563ffffffff60443516606435610532565b3480156101ec57600080fd5b506101f5610540565b6040805161ffff9092168252519081900360200190f35b34801561021857600080fd5b5061013260043563ffffffff6024358116906044359060643516608435610545565b34801561024657600080fd5b5061013260043560243563ffffffff6044351660643561055e565b34801561026d57600080fd5b5061013260043560243563ffffffff60443516606435610763565b34801561029457600080fd5b5061013260043563ffffffff6024358116906044359060643516608435610904565b3480156102c257600080fd5b506102da600435602435604435606435608435610aa0565b6040805163ffffffff938416815291909216602082015281519081900390910190f35b34801561030957600080fd5b50610312610c40565b005b34801561032057600080fd5b5061013260043560243563ffffffff60443516606435610c52565b34801561034757600080fd5b5061013260043560243563ffffffff60443516606435610df9565b600061037085858585610c52565b95945050505050565b600061037085858585610df9565b6000808080808089116103d2576040805160e560020a62461bcd0281526020600482015260126024820152600080516020613e2f833981519152604482015290519081900360640190fd5b60008811610418576040805160e560020a62461bcd02815260206004820152601b6024820152600080516020613e4f833981519152604482015290519081900360640190fd5b60018763ffffffff161180156104375750621e848063ffffffff881611155b151561048d576040805160e560020a62461bcd02815260206004820152601960248201527f4552525f494e56414c49445f524553455256455f524154494f00000000000000604482015290519081900360640190fd5b85151561049d5760009450610518565b63ffffffff8716620f424014156104d057876104bf878b63ffffffff610f4116565b8115156104c857fe5b049450610518565b6104e0888763ffffffff610fc516565b91506104f1828989620f4240611022565b909450925060ff831661050a8a8663ffffffff610f4116565b9060020a9004905088810394505b50505050949350505050565b600061037085858585610763565b60006103708585858561055e565b600881565b60006105548686868686610904565b9695505050505050565b60008080808080808a116105aa576040805160e560020a62461bcd0281526020600482015260126024820152600080516020613e2f833981519152604482015290519081900360640190fd5b600089116105f0576040805160e560020a62461bcd02815260206004820152601b6024820152600080516020613e4f833981519152604482015290519081900360640190fd5b60008863ffffffff1611801561060f5750620f424063ffffffff891611155b1515610665576040805160e560020a62461bcd02815260206004820152601a60248201527f4552525f494e56414c49445f524553455256455f574549474854000000000000604482015290519081900360640190fd5b898711156106bd576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f494e56414c49445f414d4f554e540000000000000000000000000000604482015290519081900360640190fd5b8615156106cd5760009550610756565b898714156106dd57889550610756565b63ffffffff8816620f4240141561071057896106ff8a8963ffffffff610f4116565b81151561070857fe5b049550610756565b868a0392506107248a84620f42408b611022565b9095509350610739898663ffffffff610f4116565b91505060ff831660020a88028481830381151561075257fe5b0495505b5050505050949350505050565b60008080808080808a116107af576040805160e560020a62461bcd0281526020600482015260126024820152600080516020613e2f833981519152604482015290519081900360640190fd5b600089116107f5576040805160e560020a62461bcd02815260206004820152601b6024820152600080516020613e4f833981519152604482015290519081900360640190fd5b60018863ffffffff161180156108145750621e848063ffffffff891611155b151561086a576040805160e560020a62461bcd02815260206004820152601960248201527f4552525f494e56414c49445f524553455256455f524154494f00000000000000604482015290519081900360640190fd5b898711156108c2576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f494e56414c49445f414d4f554e540000000000000000000000000000604482015290519081900360640190fd5b8615156108d25760009550610756565b898714156108e257889550610756565b63ffffffff8816620f4240141561071057896106ff888b63ffffffff610f4116565b60008060008060008060008b11801561091d5750600089115b1515610961576040805160e560020a62461bcd02815260206004820152601b6024820152600080516020613e4f833981519152604482015290519081900360640190fd5b60008a63ffffffff161180156109805750620f424063ffffffff8b1611155b8015610992575060008863ffffffff16115b80156109a75750620f424063ffffffff891611155b15156109fd576040805160e560020a62461bcd02815260206004820152601a60248201527f4552525f494e56414c49445f524553455256455f574549474854000000000000604482015290519081900360640190fd5b8763ffffffff168a63ffffffff161415610a4257610a218b8863ffffffff610fc516565b610a318a8963ffffffff610f4116565b811515610a3a57fe5b049550610a92565b610a528b8863ffffffff610fc516565b9250610a60838c8c8b611022565b9095509350610a75898663ffffffff610f4116565b91505060ff831660020a880284818303811515610a8e57fe5b0495505b505050505095945050505050565b60008060008087891415610b06576000891180610abd5750600087115b1515610b01576040805160e560020a62461bcd02815260206004820152601b6024820152600080516020613e4f833981519152604482015290519081900360640190fd5b610b66565b600089118015610b165750600088115b8015610b225750600087115b1515610b66576040805160e560020a62461bcd02815260206004820152601b6024820152600080516020613e4f833981519152604482015290519081900360640190fd5b600086118015610b765750600085115b1515610bcc576040805160e560020a62461bcd02815260206004820152601860248201527f4552525f494e56414c49445f524553455256455f524154450000000000000000604482015290519081900360640190fd5b610bdc898763ffffffff610f4116565b9150610bee878663ffffffff610f4116565b905087891015610c0f57610c06888a8484600161110c565b93509350610c34565b87891115610c2557610c0689898484600061110c565b610c2f82826111ef565b935093505b50509550959350505050565b610c4861122c565b610c50611a02565b565b600080808080808911610c9d576040805160e560020a62461bcd0281526020600482015260126024820152600080516020613e2f833981519152604482015290519081900360640190fd5b60008811610ce3576040805160e560020a62461bcd02815260206004820152601b6024820152600080516020613e4f833981519152604482015290519081900360640190fd5b60018763ffffffff16118015610d025750621e848063ffffffff881611155b1515610d58576040805160e560020a62461bcd02815260206004820152601960248201527f4552525f494e56414c49445f524553455256455f524154494f00000000000000604482015290519081900360640190fd5b851515610d685760009450610518565b63ffffffff8716620f42401415610da157886001610d8c888b63ffffffff610f4116565b03811515610d9657fe5b046001019450610518565b610db1898763ffffffff610fc516565b9150610dc2828a620f42408a611022565b909450925060ff83166001610ddd8a8763ffffffff610f4116565b60029290920a9103049790970360010198975050505050505050565b600080808080808911610e44576040805160e560020a62461bcd0281526020600482015260126024820152600080516020613e2f833981519152604482015290519081900360640190fd5b60008811610e8a576040805160e560020a62461bcd02815260206004820152601b6024820152600080516020613e4f833981519152604482015290519081900360640190fd5b60008763ffffffff16118015610ea95750620f424063ffffffff881611155b1515610eff576040805160e560020a62461bcd02815260206004820152601a60248201527f4552525f494e56414c49445f524553455256455f574549474854000000000000604482015290519081900360640190fd5b851515610f0f5760009450610518565b63ffffffff8716620f42401415610f3157876104bf8a8863ffffffff610f4116565b6104e0868963ffffffff610fc516565b600080831515610f545760009150610fbe565b50828202828482811515610f6457fe5b0414610fba576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b8091505b5092915050565b600082820183811015610fba576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b600080808080807002000000000000000000000000000000008a1061104657600080fd5b88607f60020a8b0281151561105757fe5b04925070015bf0a8b1457695355fb8ac404e7a79e38310156110835761107c83612409565b935061108f565b61108c83612821565b93505b8663ffffffff168863ffffffff1685028115156110a857fe5b0491507008000000000000000000000000000000008210156110d8576110cd826128db565b607f955095506110ff565b6110e182612cdb565b90506110f960ff607f8390031660020a830482612d68565b81955095505b5050505094509492505050565b60008060008060008061111f898961318b565b9099509750896111398c607f60020a63ffffffff610f4116565b81151561114257fe5b04935070015bf0a8b1457695355fb8ac404e7a79e3841061116b5761116684612821565b611174565b61117484612409565b925087611187848b63ffffffff610f4116565b81151561119057fe5b049150866111a6576111a182613247565b6111af565b6111af826132a4565b90506111dd6111c4828b63ffffffff610f4116565b6111d88a607f60020a63ffffffff610f4116565b6111ef565b95509550505050509550959350505050565b600080808084861161120e576112058686613308565b93509350611223565b6112188587613308565b915091508082935093505b50509250929050565b701c35fedd14ffffffffffffffffffffffff602055701b0ce43b323fffffffffffffffffffffff6021557019f0028ec1ffffffffffffffffffffffff6022557018ded91f0e7fffffffffffffffffffffff6023557017d8ec7f0417ffffffffffffffffffffff6024557016ddc6556cdbffffffffffffffffffffff6025557015ecf52776a1ffffffffffffffffffffff6026557015060c256cb2ffffffffffffffffffffff602755701428a2f98d72ffffffffffffffffffffff6028557013545598e5c23fffffffffffffffffffff602955701288c4161ce1dfffffffffffffffffffff602a557011c592761c666fffffffffffffffffffff602b5570110a688680a757ffffffffffffffffffff602c55701056f1b5bedf77ffffffffffffffffffff602d55700faadceceeff8bffffffffffffffffffff602e55700f05dc6b27edadffffffffffffffffffff602f55700e67a5a25da4107fffffffffffffffffff603055700dcff115b14eedffffffffffffffffffff603155700d3e7a392431239fffffffffffffffffff603255700cb2ff529eb71e4fffffffffffffffffff603355700c2d415c3db974afffffffffffffffffff603455700bad03e7d883f69bffffffffffffffffff603555700b320d03b2c343d5ffffffffffffffffff603655700abc25204e02828dffffffffffffffffff603755700a4b16f74ee4bb207fffffffffffffffff6038557009deaf736ac1f569ffffffffffffffffff603955700976bd9952c7aa957fffffffffffffffff603a557009131271922eaa606fffffffffffffffff603b557008b380f3558668c46fffffffffffffffff603c55700857ddf0117efa215bffffffffffffffff603d557007ffffffffffffffffffffffffffffffff603e557007abbf6f6abb9d087fffffffffffffffff603f5570075af62cbac95f7dfa7fffffffffffffff60405570070d7fb7452e187ac13fffffffffffffff6041557006c3390ecc8af379295fffffffffffffff60425570067c00a3b07ffc01fd6fffffffffffffff604355700637b647c39cbb9d3d27ffffffffffffff6044557005f63b1fc104dbd39587ffffffffffffff6045557005b771955b36e12f7235ffffffffffffff60465570057b3d49dda84556d6f6ffffffffffffff60475570054183095b2c8ececf30ffffffffffffff60485570050a28be635ca2b888f77fffffffffffff6049557004d5156639708c9db33c3fffffffffffff604a557004a23105873875bd52dfdfffffffffffff604b55700471649d87199aa990756fffffffffffff604c557004429a21a029d4c1457cfbffffffffffff604d55700415bc6d6fb7dd71af2cb3ffffffffffff604e557003eab73b3bbfe282243ce1ffffffffffff604f557003c1771ac9fb6b4c18e229ffffffffffff605055700399e96897690418f785257fffffffffff605155700373fc456c53bb779bf0ea9fffffffffff60525570034f9e8e490c48e67e6ab8bfffffffffff60535570032cbfd4a7adc790560b3337ffffffffff60545570030b50570f6e5d2acca94613ffffffffff6055557002eb40f9f620fda6b56c2861ffffffffff6056557002cc8340ecb0d0f520a6af58ffffffffff6057557002af09481380a0a35cf1ba02ffffffffff605855700292c5bdd3b92ec810287b1b3fffffffff605955700277abdcdab07d5a77ac6d6b9fffffffff605a5570025daf6654b1eaa55fd64df5efffffffff605b55700244c49c648baa98192dce88b7ffffffff605c5570022ce03cd5619a311b2471268bffffffff605d55700215f77c045fbe885654a44a0fffffffff605e557001ffffffffffffffffffffffffffffffff605f557001eaefdbdaaee7421fc4d3ede5ffffffff6060557001d6bd8b2eb257df7e8ca57b09bfffffff6061557001c35fedd14b861eb0443f7f133fffffff6062557001b0ce43b322bcde4a56e8ada5afffffff60635570019f0028ec1fff007f5a195a39dfffffff60645570018ded91f0e72ee74f49b15ba527ffffff60655570017d8ec7f04136f4e5615fd41a63ffffff60665570016ddc6556cdb84bdc8d12d22e6fffffff60675570015ecf52776a1155b5bd8395814f7fffff60685570015060c256cb23b3b3cc3754cf40ffffff6069557001428a2f98d728ae223ddab715be3fffff606a5570013545598e5c23276ccf0ede68034fffff606b557001288c4161ce1d6f54b7f61081194fffff606c5570011c592761c666aa641d5a01a40f17ffff606d55700110a688680a7530515f3e6e6cfdcdffff606e557001056f1b5bedf75c6bcb2ce8aed428ffff606f556ffaadceceeff8a0890f3875f008277fff6070556ff05dc6b27edad306388a600f6ba0bfff6071556fe67a5a25da41063de1495d5b18cdbfff6072556fdcff115b14eedde6fc3aa5353f2e4fff6073556fd3e7a3924312399f9aae2e0f868f8fff6074556fcb2ff529eb71e41582cccd5a1ee26fff6075556fc2d415c3db974ab32a51840c0b67edff6076556fbad03e7d883f69ad5b0a186184e06bff6077556fb320d03b2c343d4829abd6075f0cc5ff6078556fabc25204e02828d73c6e80bcdb1a95bf6079556fa4b16f74ee4bb2040a1ec6c15fbbf2df607a556f9deaf736ac1f569deb1b5ae3f36c130f607b556f976bd9952c7aa957f5937d790ef65037607c556f9131271922eaa6064b73a22d0bd4f2bf607d556f8b380f3558668c46c91c49a2f8e967b9607e556f857ddf0117efa215952912839f6473e66000607f5b0155565b6f60e393c68d20b1bd09deaabc0373b9c560809081556f5f8f46e4854120989ed94719fb4c20116081556f5e479ebb9129fb1b7e72a648f992b6066082556f5d0bd23fe42dfedde2e9586be12b85fe6083556f5bdb29ddee979308ddfca81aeeb8095a6084556f5ab4fd8a260d2c7e2c0d2afcf0009dad6085556f5998b31359a55d48724c65cf090012216086556f5885bcad2b322dfc43e8860f9c018cf56087556f577b97aa1fe222bb452fdf111b1f0be26088556f5679cb5e3575632e5baa27e2b949f7046089556f557fe8241b3a31c83c732f1cdff4a1c5608a556f548d868026504875d6e59bbe95fc2a6b608b556f53a2465ce347cf34d05a867c17dd3088608c556f52bdce5dcd4faed59c7f5511cf8f8acc608d556f51dfcb453c07f8da817606e7885f7c3e608e556f5107ef6b0a5a2be8f8ff15590daa3cce608f556f5035f241d6eae0cd7bacba119993de7b6090556f4f698fe90d5b53d532171e1210164c666091556f4ea288ca297a0e6a09a0eee240e16c856092556f4de0a13fdcf5d4213fc398ba6e3becde6093556f4d23a145eef91fec06b06140804c48086094556f4c6b5430d4c1ee5526473db4ae0f11de6095556f4bb7886c240562eba11f4963a53b42406096556f4b080f3f1cb491d2d521e0ea4583521e6097556f4a5cbc96a05589cb4d86be1db31683646098556f49b566d40243517658d78c33162d6ece6099556f4911e6a02e5507a30f947383fd9a3276609a556f487216c2b31be4adc41db8a8d5cc0c88609b556f47d5d3fc4a7a1b188cd3d788b5c5e9fc609c556f473cfce4871a2c40bc4f9e1c32b955d0609d556f46a771ca578ab878485810e285e31c67609e556f4615149718aed4c258c373dc676aa72d609f556f4585c8b3f8fe489c6e1833ca4787138460a0556f44f972f174e41e5efb7e9d63c29ce73560a1556f446ff970ba86d8b00beb05ecebf3c4dc60a2556f43e9438ec88971812d6f198b5ccaad9660a3556f436539d11ff7bea657aeddb394e809ef60a4556f42e3c5d3e5a913401d86f66db5d81c2c60a5556f4264d2395303070ea726cbe98df6217460a6556f41e84a9a593bb7194c3a6349ecae4eea60a7556f416e1b785d13eba07a08f3f18876a5ab60a8556f40f6322ff389d423ba9dd7e7e7b7e80960a9556f40807cec8a466880ecf4184545d240a460aa556f400cea9ce88a8d3ae668e8ea0d9bf07f60ab556f3f9b6ae8772d4c55091e0ed7dfea0ac160ac556f3f2bee253fd84594f54bcaafac383a1360ad556f3ebe654e95208bb9210c575c081c595860ae556f3e52c1fc5665635b78ce1f05ad53c08660af556f3de8f65ac388101ddf718a6f5c1eff6560b0556f3d80f522d59bd0b328ca012df4cd2d4960b1556f3d1ab193129ea72b23648a161163a85a60b2556f3cb61f68d32576c135b95cfb53f76d7560b3556f3c5332d9f1aae851a3619e77e4cc847360b4556f3bf1e08edbe2aa109e1525f65759ef7360b5556f3b921d9cff13fa2c197746a3dfc4918f60b6556f3b33df818910bfc1a5aefb8f63ae2ac460b7556f3ad71c1c77e34fa32a9f184967eccbf660b8556f3a7bc9abf2c5bb53e2f7384a8a16521a60b9556f3a21dec7e76369783a68a0c6385a1c5760ba556f39c9525de6c9cdf7c1c157ca4a7a6ee360bb556f39721bad3dc85d1240ff0190e0adaac360bc556f391c324344d3248f0469eb28dd3d77e060bd556f38c78df7e3c796279fb4ff84394ab3da60be556f387426ea4638ae9aae08049d3554c20a60bf556f3821f57dbd2763256c1a99bbd205137860c0556f37d0f256cb46a8c92ff62fbbef28969860c1556f37811658591ffc7abdd1feaf3cef9b7360c2556f37325aa10e9e82f7df0f380f7997154b60c3556f36e4b888cfb408d873b9a80d439311c660c4556f3698299e59f4bb9de645fc9b08c64cca60c5556f364ca7a5012cb603023b57dd3ebfd50d60c6556f36022c928915b778ab1b06aaee7e61d460c7556f35b8b28d1a73dc27500ffe35559cc02860c8556f357033e951fe250ec5eb4e60955132d760c9556f3528ab2867934e3a21b5412e4c4f888160ca556f34e212f66c55057f9676c80094a61d5960cb556f349c66289e5b3c4b540c24f42fa4b9bb60cc556f34579fbbd0c733a9c8d6af6b0f7d00f760cd556f3413bad2e712288b924b5882b5b369bf60ce556f33d0b2b56286510ef730e213f71f12e960cf556f338e82ce00e2496262c64457535ba1a160d0556f334d26a96b373bb7c2f8ea1827f27a9260d1556f330c99f4f4211469e00b3e18c31475ea60d2556f32ccd87d6486094999c7d5e6f33237d860d3556f328dde2dd617b6665a2e8556f250c1af60d4556f324fa70e9adc270f8262755af5a99af960d5556f32122f443110611ca51040f41fa6e1e360d6556f31d5730e42c0831482f0f1485c4263d860d7556f31996ec6b07b4a83421b5ebc4ab4e1f160d8556f315e1ee0a68ff46bb43ec2b85032e87660d9556f31237fe7bc4deacf6775b9efa1a145f860da556f30e98e7f1cc5a356e44627a6972ea2ff60db556f30b04760b8917ec74205a3002650ec0560dc556f3077a75c803468e9132ce0cf3224241d60dd556f303fab57a6a275c36f19cda9bace667a60de556f3008504beb8dcbd2cf3bc1f6d5a064f060df556f2fd19346ed17dac61219ce0c2c5ac4b060e0556f2f9b7169808c324b5852fd3d54ba971460e1556f2f65e7e711cf4b064eea9c08cbdad57460e2556f2f30f405093042ddff8a251b6bf6d10360e3556f2efc931a3750f2e8bfe323edfe03757460e4556f2ec8c28e46dbe56d98685278339400cb60e5556f2e957fd933c3926d8a599b602379b85160e6556f2e62c882c7c9ed4473412702f08ba0e560e7556f2e309a221c12ba361e3ed695167feee260e8556f2dfef25d1f865ae18dd07cfea4bcea1060e9556f2dcdcee821cdc80decc02c44344aeb3160ea556f2d9d2d8562b34944d0b201bb87260c8360eb556f2d6d0c04a5b62a2c42636308669b729a60ec556f2d3d6842c9a235517fc5a0332691528f60ed556f2d0e402963fe1ea2834abc408c437c1060ee556f2cdf91ae602647908aff975e4d6a2a8c60ef556f2cb15ad3a1eb65f6d74a75da09a1b6c560f0556f2c8399a6ab8e9774d6fcff373d21072760f1556f2c564c4046f64edba6883ca06bbc453560f2556f2c2970c431f952641e05cb493e23eed360f3556f2bfd0560cd9eb14563bc7c0732856c1860f4556f2bd1084ed0332f7ff4150f9d0ef41a2c60f5556f2ba577d0fa1628b76d040b12a82492fb60f6556f2b7a5233cd21581e855e89dc2f1e8a9260f7556f2b4f95cd46904d05d72bdcde337d9cc760f8556f2b2540fc9b4d9abba3faca669191467560f9556f2afb5229f68d0830d8be8adb0a0db70f60fa556f2ad1c7c63a9b294c5bc73a3ba3ab7a2b60fb556f2aa8a04ac3cbe1ee1c9c86361465dbb860fc556f2a7fda392d725a44a2c8aeb9ab35430d60fd556f2a57741b18cde618717792b4faa216db60fe556f2a2f6c81f5d84dd950a35626d6d5503a90607f6119fe565b6000808080806fd3094c70f034de4b96ff7d5b6f99fcd88610612458576f4000000000000000000000000000000093909301926fd3094c70f034de4b96ff7d5b6f99fcd8607f60020a87020495505b6fa45af1e1f40c333b3de1db4dd55f29a786106124a1576f2000000000000000000000000000000093909301926fa45af1e1f40c333b3de1db4dd55f29a7607f60020a87020495505b6f910b022db7ae67ce76b441c27035c6a186106124ea576f1000000000000000000000000000000093909301926f910b022db7ae67ce76b441c27035c6a1607f60020a87020495505b6f88415abbe9a76bead8d00cf112e4d4a88610612533576f0800000000000000000000000000000093909301926f88415abbe9a76bead8d00cf112e4d4a8607f60020a87020495505b6f84102b00893f64c705e841d5d4064bd3861061257c576f0400000000000000000000000000000093909301926f84102b00893f64c705e841d5d4064bd3607f60020a87020495505b6f8204055aaef1c8bd5c3259f4822735a286106125c5576f0200000000000000000000000000000093909301926f8204055aaef1c8bd5c3259f4822735a2607f60020a87020495505b6f810100ab00222d861931c15e39b44e99861061260e576f0100000000000000000000000000000093909301926f810100ab00222d861931c15e39b44e99607f60020a87020495505b6f808040155aabbbe9451521693554f7338610612656576e80000000000000000000000000000093909301926f808040155aabbbe9451521693554f733607f60020a87020495505b6f7fffffffffffffffffffffffffffffff1986019250829150607f60020a828002049050608060020a8381038302049390930192607f60020a8282020491507002000000000000000000000000000000006faaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa8490038302049390930192607f60020a8282020491507003000000000000000000000000000000006f999999999999999999999999999999998490038302049390930192607f60020a8282020491507004000000000000000000000000000000006f924924924924924924924924924924928490038302049390930192607f60020a8282020491507005000000000000000000000000000000006f8e38e38e38e38e38e38e38e38e38e38e8490038302049390930192607f60020a8282020491507006000000000000000000000000000000006f8ba2e8ba2e8ba2e8ba2e8ba2e8ba2e8b8490038302049390930192607f60020a8282020491507007000000000000000000000000000000006f89d89d89d89d89d89d89d89d89d89d898490038302049390930192607f60020a8282020491507008000000000000000000000000000000006f888888888888888888888888888888888490038302049390930195945050505050565b6000808080608060020a851061285957612841607f60020a865b046133a4565b60ff8116600281900a90960495607f60020a02935091505b607f60020a8511156128ab5750607f5b60008160ff1611156128ab57607f60020a858002049450608060020a85106128a2576002948590049460ff600019830116900a92909201915b60001901612869565b6f05b9de1d10bf4103d647b0955897ba806f03f80fe03f80fe03f80fe03f80fe03f884020493505b505050919050565b6000670168244fdac78000607f60020a6f0fffffffffffffffffffffffffffffff84168080028290048082028390048083028490049485026710e1b3be415a00009092026705a0913f6b1e000091909102010192909181830204905080664807432bc180000283019250607f60020a82820281151561295657fe5b04905080660c0135dca040000283019250607f60020a82820281151561297857fe5b049050806601b707b1cdc0000283019250607f60020a82820281151561299a57fe5b049050806536e0f639b8000283019250607f60020a8282028115156129bb57fe5b04905080650618fee9f8000283019250607f60020a8282028115156129dc57fe5b04905080649c197dcc000283019250607f60020a8282028115156129fc57fe5b04905080640e30dce4000283019250607f60020a828202811515612a1c57fe5b0490508064012ebd13000283019250607f60020a828202811515612a3c57fe5b049050806317499f000283019250607f60020a828202811515612a5b57fe5b049050806301a9d4800283019250607f60020a828202811515612a7a57fe5b04905080621c63800283019250607f60020a828202811515612a9857fe5b049050806201c6380283019250607f60020a828202811515612ab657fe5b04905080611ab80283019250607f60020a828202811515612ad357fe5b0490508061017c0283019250607f60020a828202811515612af057fe5b0490508060140283019250607f60020a828202811515612b0c57fe5b6721c3677c82b40000919004938401048201607f60020a019290506f10000000000000000000000000000000851615612b695770018ebef9eac820ae8682b9793ac6d1e7767001c3d6a24ed82218787d624d3e5eba95f984020492505b6f20000000000000000000000000000000851615612bab577001368b2fc6f9609fe7aceb46aa619baed470018ebef9eac820ae8682b9793ac6d1e77884020492505b6f40000000000000000000000000000000851615612bec576fbc5ab1b16779be3575bd8f0520a9f21f7001368b2fc6f9609fe7aceb46aa619baed584020492505b607f60020a851615612c20576f454aaa8efe072e7f6ddbab84b40a55c96fbc5ab1b16779be3575bd8f0520a9f21e84020492505b608060020a851615612c54576f0960aadc109e7a3bf4578099615711ea6f454aaa8efe072e7f6ddbab84b40a55c584020492505b700200000000000000000000000000000000851615612c94576e2bf84208204f5977f9a8cf01fdce3d6f0960aadc109e7a3bf4578099615711d784020492505b700400000000000000000000000000000000851615612cd2576d03c6ab775dd0b95b4cbee7e65d116e2bf84208204f5977f9a8cf01fdc30784020492505b50909392505050565b60006020607f825b8160ff168360010160ff161015612d2857600260ff8484011604905084600060ff831660808110612d1057fe5b015410612d1f57809250612d23565b8091505b612ce3565b84600060ff841660808110612d3957fe5b015410612d48578193506128d3565b84600060ff851660808110612d5957fe5b015410610106578293506128d3565b6000806000849150600090508360ff168583029060020a90049150816f03442c4e6074a82f1797f72ac000000002810190508360ff168583029060020a90049150816f0116b96f757c380fb287fd0e4000000002810190508360ff168583029060020a90049150816e45ae5bdd5f0e03eca1ff439000000002810190508360ff168583029060020a90049150816e0defabf91302cd95b9ffda5000000002810190508360ff168583029060020a90049150816e02529ca9832b22439efff9b800000002810190508360ff168583029060020a90049150816d54f1cf12bd04e516b6da8800000002810190508360ff168583029060020a90049150816d0a9e39e257a09ca2d6db5100000002810190508360ff168583029060020a90049150816d012e066e7b839fa050c30900000002810190508360ff168583029060020a90049150816c1e33d7d926c329a1ad1a80000002810190508360ff168583029060020a90049150816c02bee513bdb4a6b19b5f80000002810190508360ff168583029060020a90049150816b3a9316fa79b88eccf2a0000002810190508360ff168583029060020a90049150816b048177ebe1fa81237520000002810190508360ff168583029060020a90049150816a5263fe90242dcbacf0000002810190508360ff168583029060020a90049150816a057e22099c030d9410000002810190508360ff168583029060020a90049150816957e22099c030d941000002810190508360ff168583029060020a900491508169052b6b5456997631000002810190508360ff168583029060020a9004915081684985f67696bf74800002810190508360ff168583029060020a90049150816803dea12ea99e49800002810190508360ff168583029060020a90049150816731880f2214b6e00002810190508360ff168583029060020a900491508167025bcff56eb3600002810190508360ff168583029060020a9004915081661b722e10ab100002810190508360ff168583029060020a90049150816601317c7007700002810190508360ff168583029060020a9004915081650cba84aafa0002810190508360ff168583029060020a90049150816482573a0a0002810190508360ff168583029060020a90049150816405035ad90002810190508360ff168583029060020a9004915081632f881b0002810190508360ff168583029060020a90049150816301b2934002810190508360ff168583029060020a9004915081620efc4002810190508360ff168583029060020a9004915081617fe002810190508360ff168583029060020a900491508161042002810190508360ff168583029060020a9004915081602102810190508360ff168583029060020a9004915081600102810190508360ff1660019060020a02856f0688589cc0e9505e2f2fee55800000008381151561317f57fe5b04010195945050505050565b600080600080608060020a86111580156131a95750608060020a8511155b156131b957858593509350611223565b608060020a8610156131e55784608060020a87028115156131d657fe5b04608060020a93509350611223565b608060020a85101561321157608060020a86608060020a870281151561320757fe5b0493509350611223565b84861161321e5784613220565b855b9150613230607f60020a8361283b565b60ff1660020a958690049695909404949350505050565b60006f2f16ac6c59de6f8d5d6f63c1482a7c868211613270576132698261340d565b905061329f565b817f400000000000000000000000000000000000000000000000000000000000000081151561329b57fe5b0490505b919050565b60006f2f16ac6c59de6f8d5d6f63c1482a7c8682116132c65761326982613870565b7001af16ac6c59de6f8d5d6f63c1482a7c8082116132e75761326982613cf1565b706b22d43e72c326539cceeef8bb48f255ff82116101065761326982613d6f565b60008060008060007d10c6f7a0b5ed8d36b4c7f34938583621fafc8b0079a2834d26fa3fcc9ea9871115613379577d10c6f7a0b5ed8d36b4c7f34938583621fafc8b0079a2834d26fa3fcc9eaa87046001019250828781151561336757fe5b049650828681151561337557fe5b0495505b613391620f4240880261338c8989610fc5565b613dfc565b97620f4240899003975095505050505050565b600080806101008410156133d3575b60018411156133ce57600290930492600191909101906133b3565b610fbe565b5060805b60008160ff161115610fbe5760ff811660020a84106134005760ff811660020a90930492908117905b600260ff909116046133d7565b60008181607f60020a82800204915070014d29a73a6e7b02c3668c7b0880000000820201607f60020a8483020491507002504a0cd9a7f7215b60f9be4800000000820201607f60020a848302049150700484d0a1191c0ead267967c7a4a0000000820201607f60020a84830204915070095ec580d7e8427a4baf26a90a00000000820201607f60020a848302049150701440b0be1615a47dba6e5b3b1f10000000820201607f60020a848302049150702d207601f46a99b4112418400000000000820201607f60020a8483020491507066ebaac4c37c622dd8288a7eb1b2000000820201607f60020a84830204915070ef17240135f7dbd43a1ba10cf200000000820201607f60020a848302049150710233c33c676a5eb2416094a87b3657000000820201607f60020a848302049150710541cde48bc0254bed49a9f8700000000000820201607f60020a848302049150710cae1fad2cdd4d4cb8d73abca0d19a400000820201607f60020a848302049150711edb2aa2f760d15c41ceedba956400000000820201607f60020a848302049150714ba8d20d2dabd386c9529659841a2e200000820201607f60020a84830204915071bac08546b867cdaa20000000000000000000820201607f60020a8483020491507201cfa8e70c03625b9db76c8ebf5bbf24820000820201607f60020a8483020491507204851d99f82060df265f3309b26f8200000000820201607f60020a848302049150720b550d19b129d270c44f6f55f027723cbb0000820201607f60020a848302049150721c877dadc761dc272deb65d4b0000000000000820201607f60020a8483020491507248178ece97479f33a77f2ad22a81b64406c000820201607f60020a84830204915072b6ca8268b9d810fedf6695ef2f8a6c00000000820201607f60020a8483020491507301d0e76631a5b05d007b8cb72a7c7f11ec36e000820201607f60020a8483020491507304a1c37bd9f85fd9c6c780000000000000000000820201607f60020a848302049150730bd8369f1b702bf491e2ebfcee08250313b65400820201607f60020a848302049150731e5c7c32a9f6c70ab2cb59d9225764d400000000820201607f60020a848302049150734dff5820e165e910f95120a708e742496221e600820201607f60020a84830204915073c8c8f66db1fced378ee50e536000000000000000820201607f60020a848302049150740205db8dffff45bfa2938f128f599dbf16eb11d880820201607f60020a84830204915074053a044ebd984351493e1786af38d39a0800000000820201607f60020a848302049150740d86dae2a4cc0f47633a544479735869b487b59c40820201607f60020a84830204915074231000000000000000000000000000000000000000820201607f60020a848302049150745b0485a76f6646c2039db1507cdd51b08649680822820201607f60020a84830204915074ec983c46c49545bc17efa6b5b0055e242200000000820201607f60020a846fde1bc4d19efcac82445da75b0000000083040101949350505050565b600081607f60020a8181036fde1bc4d19efcac82445da75b00000000029082800204915070014d29a73a6e7b02c3668c7b0880000000820201607f60020a8483020491507002504a0cd9a7f7215b60f9be480000000082029003607f60020a848302049150700484d0a1191c0ead267967c7a4a0000000820201607f60020a84830204915070095ec580d7e8427a4baf26a90a0000000082029003607f60020a848302049150701440b0be1615a47dba6e5b3b1f10000000820201607f60020a848302049150702d207601f46a99b411241840000000000082029003607f60020a8483020491507066ebaac4c37c622dd8288a7eb1b2000000820201607f60020a84830204915070ef17240135f7dbd43a1ba10cf20000000082029003607f60020a848302049150710233c33c676a5eb2416094a87b3657000000820201607f60020a848302049150710541cde48bc0254bed49a9f870000000000082029003607f60020a848302049150710cae1fad2cdd4d4cb8d73abca0d19a400000820201607f60020a848302049150711edb2aa2f760d15c41ceedba95640000000082029003607f60020a848302049150714ba8d20d2dabd386c9529659841a2e200000820201607f60020a84830204915071bac08546b867cdaa2000000000000000000082029003607f60020a8483020491507201cfa8e70c03625b9db76c8ebf5bbf24820000820201607f60020a8483020491507204851d99f82060df265f3309b26f820000000082029003607f60020a848302049150720b550d19b129d270c44f6f55f027723cbb0000820201607f60020a848302049150721c877dadc761dc272deb65d4b000000000000082029003607f60020a8483020491507248178ece97479f33a77f2ad22a81b64406c000820201607f60020a84830204915072b6ca8268b9d810fedf6695ef2f8a6c0000000082029003607f60020a8483020491507301d0e76631a5b05d007b8cb72a7c7f11ec36e000820201607f60020a8483020491507304a1c37bd9f85fd9c6c78000000000000000000082029003607f60020a848302049150730bd8369f1b702bf491e2ebfcee08250313b65400820201607f60020a848302049150731e5c7c32a9f6c70ab2cb59d9225764d40000000082029003607f60020a848302049150734dff5820e165e910f95120a708e742496221e600820201607f60020a84830204915073c8c8f66db1fced378ee50e53600000000000000082029003607f60020a848302049150740205db8dffff45bfa2938f128f599dbf16eb11d880820201607f60020a84830204915074053a044ebd984351493e1786af38d39a080000000082029003607f60020a848302049150740d86dae2a4cc0f47633a544479735869b487b59c40820201607f60020a8483020491507423100000000000000000000000000000000000000082029003607f60020a848302049150745b0485a76f6646c2039db1507cdd51b08649680822820201607f60020a84830204915074ec983c46c49545bc17efa6b5b0055e242200000000820290036fde1bc4d19efcac82445da75b00000000815b04949350505050565b60006f2f16ac6c59de6f8d5d6f63c1482a7c861982016f03060c183060c183060c183060c18306808204908181029060018301028480608085818110613d3357fe5b01549150608060018601818110613d4657fe5b01546f03060c183060c183060c183060c183069487030295909203029390930104949350505050565b600080600070015bf0a8b1457695355fb8ac404e7a79e38410613d9a57613d9584612821565b613da3565b613da384612409565b915070015bf0a8b1457695355fb8ac404e7a79e38210613dcb57613dc682612821565b613dd4565b613dd482612409565b905083607f60020a83607f60020a8402811515613ded57fe5b048385030102811515613ce857fe5b60006002820482038284811515613e0f57fe5b06811515613e1957fe5b048284811515613e2557fe5b0401939250505056004552525f494e56414c49445f535550504c5900000000000000000000000000004552525f494e56414c49445f524553455256455f42414c414e43450000000000a165627a7a723058203aa61a409e729a09805c2713f062e39bb7a14053960c848bb2d7636183d573a70029", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3E9A DUP1 PUSH2 0x20 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x106 JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x1DA6BBFB DUP2 EQ PUSH2 0x10B JUMPI DUP1 PUSH4 0x29A00E7C EQ PUSH2 0x144 JUMPI DUP1 PUSH4 0x2F55BDB5 EQ PUSH2 0x16B JUMPI DUP1 PUSH4 0x35B49AF4 EQ PUSH2 0x192 JUMPI DUP1 PUSH4 0x48D73FED EQ PUSH2 0x144 JUMPI DUP1 PUSH4 0x49F9B0F7 EQ PUSH2 0x1B9 JUMPI DUP1 PUSH4 0x54FD4D50 EQ PUSH2 0x1E0 JUMPI DUP1 PUSH4 0x65098BB3 EQ PUSH2 0x20C JUMPI DUP1 PUSH4 0x76CF0B56 EQ PUSH2 0x23A JUMPI DUP1 PUSH4 0x79C1B450 EQ PUSH2 0x20C JUMPI DUP1 PUSH4 0x8074590A EQ PUSH2 0x261 JUMPI DUP1 PUSH4 0x94491FAB EQ PUSH2 0x288 JUMPI DUP1 PUSH4 0x9D114108 EQ PUSH2 0x20C JUMPI DUP1 PUSH4 0xA11AA1B4 EQ PUSH2 0x2B6 JUMPI DUP1 PUSH4 0xABFD231D EQ PUSH2 0x192 JUMPI DUP1 PUSH4 0xE1C7392A EQ PUSH2 0x2FD JUMPI DUP1 PUSH4 0xEBBB2158 EQ PUSH2 0x314 JUMPI DUP1 PUSH4 0xF3250FE2 EQ PUSH2 0x33B JUMPI DUP1 PUSH4 0xF732F1C9 EQ PUSH2 0x1B9 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x117 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x132 PUSH1 0x4 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH4 0xFFFFFFFF PUSH1 0x44 CALLDATALOAD AND PUSH1 0x64 CALLDATALOAD PUSH2 0x362 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x150 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x132 PUSH1 0x4 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH4 0xFFFFFFFF PUSH1 0x44 CALLDATALOAD AND PUSH1 0x64 CALLDATALOAD PUSH2 0x379 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x177 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x132 PUSH1 0x4 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH4 0xFFFFFFFF PUSH1 0x44 CALLDATALOAD AND PUSH1 0x64 CALLDATALOAD PUSH2 0x387 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x19E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x132 PUSH1 0x4 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH4 0xFFFFFFFF PUSH1 0x44 CALLDATALOAD AND PUSH1 0x64 CALLDATALOAD PUSH2 0x524 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1C5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x132 PUSH1 0x4 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH4 0xFFFFFFFF PUSH1 0x44 CALLDATALOAD AND PUSH1 0x64 CALLDATALOAD PUSH2 0x532 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1EC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1F5 PUSH2 0x540 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0xFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x218 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x132 PUSH1 0x4 CALLDATALOAD PUSH4 0xFFFFFFFF PUSH1 0x24 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x44 CALLDATALOAD SWAP1 PUSH1 0x64 CALLDATALOAD AND PUSH1 0x84 CALLDATALOAD PUSH2 0x545 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x246 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x132 PUSH1 0x4 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH4 0xFFFFFFFF PUSH1 0x44 CALLDATALOAD AND PUSH1 0x64 CALLDATALOAD PUSH2 0x55E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x26D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x132 PUSH1 0x4 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH4 0xFFFFFFFF PUSH1 0x44 CALLDATALOAD AND PUSH1 0x64 CALLDATALOAD PUSH2 0x763 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x294 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x132 PUSH1 0x4 CALLDATALOAD PUSH4 0xFFFFFFFF PUSH1 0x24 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x44 CALLDATALOAD SWAP1 PUSH1 0x64 CALLDATALOAD AND PUSH1 0x84 CALLDATALOAD PUSH2 0x904 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2C2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2DA PUSH1 0x4 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH1 0x44 CALLDATALOAD PUSH1 0x64 CALLDATALOAD PUSH1 0x84 CALLDATALOAD PUSH2 0xAA0 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH4 0xFFFFFFFF SWAP4 DUP5 AND DUP2 MSTORE SWAP2 SWAP1 SWAP3 AND PUSH1 0x20 DUP3 ADD MSTORE DUP2 MLOAD SWAP1 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x309 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x312 PUSH2 0xC40 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x320 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x132 PUSH1 0x4 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH4 0xFFFFFFFF PUSH1 0x44 CALLDATALOAD AND PUSH1 0x64 CALLDATALOAD PUSH2 0xC52 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x347 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x132 PUSH1 0x4 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH4 0xFFFFFFFF PUSH1 0x44 CALLDATALOAD AND PUSH1 0x64 CALLDATALOAD PUSH2 0xDF9 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x370 DUP6 DUP6 DUP6 DUP6 PUSH2 0xC52 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x370 DUP6 DUP6 DUP6 DUP6 PUSH2 0xDF9 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP1 DUP1 DUP1 DUP10 GT PUSH2 0x3D2 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3E2F DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP9 GT PUSH2 0x418 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3E4F DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP8 PUSH4 0xFFFFFFFF AND GT DUP1 ISZERO PUSH2 0x437 JUMPI POP PUSH3 0x1E8480 PUSH4 0xFFFFFFFF DUP9 AND GT ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x48D JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F524154494F00000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP6 ISZERO ISZERO PUSH2 0x49D JUMPI PUSH1 0x0 SWAP5 POP PUSH2 0x518 JUMP JUMPDEST PUSH4 0xFFFFFFFF DUP8 AND PUSH3 0xF4240 EQ ISZERO PUSH2 0x4D0 JUMPI DUP8 PUSH2 0x4BF DUP8 DUP12 PUSH4 0xFFFFFFFF PUSH2 0xF41 AND JUMP JUMPDEST DUP2 ISZERO ISZERO PUSH2 0x4C8 JUMPI INVALID JUMPDEST DIV SWAP5 POP PUSH2 0x518 JUMP JUMPDEST PUSH2 0x4E0 DUP9 DUP8 PUSH4 0xFFFFFFFF PUSH2 0xFC5 AND JUMP JUMPDEST SWAP2 POP PUSH2 0x4F1 DUP3 DUP10 DUP10 PUSH3 0xF4240 PUSH2 0x1022 JUMP JUMPDEST SWAP1 SWAP5 POP SWAP3 POP PUSH1 0xFF DUP4 AND PUSH2 0x50A DUP11 DUP7 PUSH4 0xFFFFFFFF PUSH2 0xF41 AND JUMP JUMPDEST SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP1 POP DUP9 DUP2 SUB SWAP5 POP JUMPDEST POP POP POP POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x370 DUP6 DUP6 DUP6 DUP6 PUSH2 0x763 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x370 DUP6 DUP6 DUP6 DUP6 PUSH2 0x55E JUMP JUMPDEST PUSH1 0x8 DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x554 DUP7 DUP7 DUP7 DUP7 DUP7 PUSH2 0x904 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP1 DUP1 DUP1 DUP1 DUP11 GT PUSH2 0x5AA JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3E2F DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP10 GT PUSH2 0x5F0 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3E4F DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP9 PUSH4 0xFFFFFFFF AND GT DUP1 ISZERO PUSH2 0x60F JUMPI POP PUSH3 0xF4240 PUSH4 0xFFFFFFFF DUP10 AND GT ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x665 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F574549474854000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP10 DUP8 GT ISZERO PUSH2 0x6BD JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F414D4F554E540000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP7 ISZERO ISZERO PUSH2 0x6CD JUMPI PUSH1 0x0 SWAP6 POP PUSH2 0x756 JUMP JUMPDEST DUP10 DUP8 EQ ISZERO PUSH2 0x6DD JUMPI DUP9 SWAP6 POP PUSH2 0x756 JUMP JUMPDEST PUSH4 0xFFFFFFFF DUP9 AND PUSH3 0xF4240 EQ ISZERO PUSH2 0x710 JUMPI DUP10 PUSH2 0x6FF DUP11 DUP10 PUSH4 0xFFFFFFFF PUSH2 0xF41 AND JUMP JUMPDEST DUP2 ISZERO ISZERO PUSH2 0x708 JUMPI INVALID JUMPDEST DIV SWAP6 POP PUSH2 0x756 JUMP JUMPDEST DUP7 DUP11 SUB SWAP3 POP PUSH2 0x724 DUP11 DUP5 PUSH3 0xF4240 DUP12 PUSH2 0x1022 JUMP JUMPDEST SWAP1 SWAP6 POP SWAP4 POP PUSH2 0x739 DUP10 DUP7 PUSH4 0xFFFFFFFF PUSH2 0xF41 AND JUMP JUMPDEST SWAP2 POP POP PUSH1 0xFF DUP4 AND PUSH1 0x2 EXP DUP9 MUL DUP5 DUP2 DUP4 SUB DUP2 ISZERO ISZERO PUSH2 0x752 JUMPI INVALID JUMPDEST DIV SWAP6 POP JUMPDEST POP POP POP POP POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP1 DUP1 DUP1 DUP1 DUP11 GT PUSH2 0x7AF JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3E2F DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP10 GT PUSH2 0x7F5 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3E4F DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP9 PUSH4 0xFFFFFFFF AND GT DUP1 ISZERO PUSH2 0x814 JUMPI POP PUSH3 0x1E8480 PUSH4 0xFFFFFFFF DUP10 AND GT ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x86A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F524154494F00000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP10 DUP8 GT ISZERO PUSH2 0x8C2 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F414D4F554E540000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP7 ISZERO ISZERO PUSH2 0x8D2 JUMPI PUSH1 0x0 SWAP6 POP PUSH2 0x756 JUMP JUMPDEST DUP10 DUP8 EQ ISZERO PUSH2 0x8E2 JUMPI DUP9 SWAP6 POP PUSH2 0x756 JUMP JUMPDEST PUSH4 0xFFFFFFFF DUP9 AND PUSH3 0xF4240 EQ ISZERO PUSH2 0x710 JUMPI DUP10 PUSH2 0x6FF DUP9 DUP12 PUSH4 0xFFFFFFFF PUSH2 0xF41 AND JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP12 GT DUP1 ISZERO PUSH2 0x91D JUMPI POP PUSH1 0x0 DUP10 GT JUMPDEST ISZERO ISZERO PUSH2 0x961 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3E4F DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP11 PUSH4 0xFFFFFFFF AND GT DUP1 ISZERO PUSH2 0x980 JUMPI POP PUSH3 0xF4240 PUSH4 0xFFFFFFFF DUP12 AND GT ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x992 JUMPI POP PUSH1 0x0 DUP9 PUSH4 0xFFFFFFFF AND GT JUMPDEST DUP1 ISZERO PUSH2 0x9A7 JUMPI POP PUSH3 0xF4240 PUSH4 0xFFFFFFFF DUP10 AND GT ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x9FD JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F574549474854000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP8 PUSH4 0xFFFFFFFF AND DUP11 PUSH4 0xFFFFFFFF AND EQ ISZERO PUSH2 0xA42 JUMPI PUSH2 0xA21 DUP12 DUP9 PUSH4 0xFFFFFFFF PUSH2 0xFC5 AND JUMP JUMPDEST PUSH2 0xA31 DUP11 DUP10 PUSH4 0xFFFFFFFF PUSH2 0xF41 AND JUMP JUMPDEST DUP2 ISZERO ISZERO PUSH2 0xA3A JUMPI INVALID JUMPDEST DIV SWAP6 POP PUSH2 0xA92 JUMP JUMPDEST PUSH2 0xA52 DUP12 DUP9 PUSH4 0xFFFFFFFF PUSH2 0xFC5 AND JUMP JUMPDEST SWAP3 POP PUSH2 0xA60 DUP4 DUP13 DUP13 DUP12 PUSH2 0x1022 JUMP JUMPDEST SWAP1 SWAP6 POP SWAP4 POP PUSH2 0xA75 DUP10 DUP7 PUSH4 0xFFFFFFFF PUSH2 0xF41 AND JUMP JUMPDEST SWAP2 POP POP PUSH1 0xFF DUP4 AND PUSH1 0x2 EXP DUP9 MUL DUP5 DUP2 DUP4 SUB DUP2 ISZERO ISZERO PUSH2 0xA8E JUMPI INVALID JUMPDEST DIV SWAP6 POP JUMPDEST POP POP POP POP POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 DUP8 DUP10 EQ ISZERO PUSH2 0xB06 JUMPI PUSH1 0x0 DUP10 GT DUP1 PUSH2 0xABD JUMPI POP PUSH1 0x0 DUP8 GT JUMPDEST ISZERO ISZERO PUSH2 0xB01 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3E4F DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0xB66 JUMP JUMPDEST PUSH1 0x0 DUP10 GT DUP1 ISZERO PUSH2 0xB16 JUMPI POP PUSH1 0x0 DUP9 GT JUMPDEST DUP1 ISZERO PUSH2 0xB22 JUMPI POP PUSH1 0x0 DUP8 GT JUMPDEST ISZERO ISZERO PUSH2 0xB66 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3E4F DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP7 GT DUP1 ISZERO PUSH2 0xB76 JUMPI POP PUSH1 0x0 DUP6 GT JUMPDEST ISZERO ISZERO PUSH2 0xBCC JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F524154450000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0xBDC DUP10 DUP8 PUSH4 0xFFFFFFFF PUSH2 0xF41 AND JUMP JUMPDEST SWAP2 POP PUSH2 0xBEE DUP8 DUP7 PUSH4 0xFFFFFFFF PUSH2 0xF41 AND JUMP JUMPDEST SWAP1 POP DUP8 DUP10 LT ISZERO PUSH2 0xC0F JUMPI PUSH2 0xC06 DUP9 DUP11 DUP5 DUP5 PUSH1 0x1 PUSH2 0x110C JUMP JUMPDEST SWAP4 POP SWAP4 POP PUSH2 0xC34 JUMP JUMPDEST DUP8 DUP10 GT ISZERO PUSH2 0xC25 JUMPI PUSH2 0xC06 DUP10 DUP10 DUP5 DUP5 PUSH1 0x0 PUSH2 0x110C JUMP JUMPDEST PUSH2 0xC2F DUP3 DUP3 PUSH2 0x11EF JUMP JUMPDEST SWAP4 POP SWAP4 POP JUMPDEST POP POP SWAP6 POP SWAP6 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0xC48 PUSH2 0x122C JUMP JUMPDEST PUSH2 0xC50 PUSH2 0x1A02 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP1 DUP1 DUP1 DUP10 GT PUSH2 0xC9D JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3E2F DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP9 GT PUSH2 0xCE3 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3E4F DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP8 PUSH4 0xFFFFFFFF AND GT DUP1 ISZERO PUSH2 0xD02 JUMPI POP PUSH3 0x1E8480 PUSH4 0xFFFFFFFF DUP9 AND GT ISZERO JUMPDEST ISZERO ISZERO PUSH2 0xD58 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F524154494F00000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP6 ISZERO ISZERO PUSH2 0xD68 JUMPI PUSH1 0x0 SWAP5 POP PUSH2 0x518 JUMP JUMPDEST PUSH4 0xFFFFFFFF DUP8 AND PUSH3 0xF4240 EQ ISZERO PUSH2 0xDA1 JUMPI DUP9 PUSH1 0x1 PUSH2 0xD8C DUP9 DUP12 PUSH4 0xFFFFFFFF PUSH2 0xF41 AND JUMP JUMPDEST SUB DUP2 ISZERO ISZERO PUSH2 0xD96 JUMPI INVALID JUMPDEST DIV PUSH1 0x1 ADD SWAP5 POP PUSH2 0x518 JUMP JUMPDEST PUSH2 0xDB1 DUP10 DUP8 PUSH4 0xFFFFFFFF PUSH2 0xFC5 AND JUMP JUMPDEST SWAP2 POP PUSH2 0xDC2 DUP3 DUP11 PUSH3 0xF4240 DUP11 PUSH2 0x1022 JUMP JUMPDEST SWAP1 SWAP5 POP SWAP3 POP PUSH1 0xFF DUP4 AND PUSH1 0x1 PUSH2 0xDDD DUP11 DUP8 PUSH4 0xFFFFFFFF PUSH2 0xF41 AND JUMP JUMPDEST PUSH1 0x2 SWAP3 SWAP1 SWAP3 EXP SWAP2 SUB DIV SWAP8 SWAP1 SWAP8 SUB PUSH1 0x1 ADD SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP1 DUP1 DUP1 DUP10 GT PUSH2 0xE44 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3E2F DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP9 GT PUSH2 0xE8A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3E4F DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP8 PUSH4 0xFFFFFFFF AND GT DUP1 ISZERO PUSH2 0xEA9 JUMPI POP PUSH3 0xF4240 PUSH4 0xFFFFFFFF DUP9 AND GT ISZERO JUMPDEST ISZERO ISZERO PUSH2 0xEFF JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F574549474854000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP6 ISZERO ISZERO PUSH2 0xF0F JUMPI PUSH1 0x0 SWAP5 POP PUSH2 0x518 JUMP JUMPDEST PUSH4 0xFFFFFFFF DUP8 AND PUSH3 0xF4240 EQ ISZERO PUSH2 0xF31 JUMPI DUP8 PUSH2 0x4BF DUP11 DUP9 PUSH4 0xFFFFFFFF PUSH2 0xF41 AND JUMP JUMPDEST PUSH2 0x4E0 DUP7 DUP10 PUSH4 0xFFFFFFFF PUSH2 0xFC5 AND JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 ISZERO ISZERO PUSH2 0xF54 JUMPI PUSH1 0x0 SWAP2 POP PUSH2 0xFBE JUMP JUMPDEST POP DUP3 DUP3 MUL DUP3 DUP5 DUP3 DUP2 ISZERO ISZERO PUSH2 0xF64 JUMPI INVALID JUMPDEST DIV EQ PUSH2 0xFBA JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP1 SWAP2 POP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 ADD DUP4 DUP2 LT ISZERO PUSH2 0xFBA JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP1 DUP1 DUP1 PUSH17 0x200000000000000000000000000000000 DUP11 LT PUSH2 0x1046 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP9 PUSH1 0x7F PUSH1 0x2 EXP DUP12 MUL DUP2 ISZERO ISZERO PUSH2 0x1057 JUMPI INVALID JUMPDEST DIV SWAP3 POP PUSH17 0x15BF0A8B1457695355FB8AC404E7A79E3 DUP4 LT ISZERO PUSH2 0x1083 JUMPI PUSH2 0x107C DUP4 PUSH2 0x2409 JUMP JUMPDEST SWAP4 POP PUSH2 0x108F JUMP JUMPDEST PUSH2 0x108C DUP4 PUSH2 0x2821 JUMP JUMPDEST SWAP4 POP JUMPDEST DUP7 PUSH4 0xFFFFFFFF AND DUP9 PUSH4 0xFFFFFFFF AND DUP6 MUL DUP2 ISZERO ISZERO PUSH2 0x10A8 JUMPI INVALID JUMPDEST DIV SWAP2 POP PUSH17 0x800000000000000000000000000000000 DUP3 LT ISZERO PUSH2 0x10D8 JUMPI PUSH2 0x10CD DUP3 PUSH2 0x28DB JUMP JUMPDEST PUSH1 0x7F SWAP6 POP SWAP6 POP PUSH2 0x10FF JUMP JUMPDEST PUSH2 0x10E1 DUP3 PUSH2 0x2CDB JUMP JUMPDEST SWAP1 POP PUSH2 0x10F9 PUSH1 0xFF PUSH1 0x7F DUP4 SWAP1 SUB AND PUSH1 0x2 EXP DUP4 DIV DUP3 PUSH2 0x2D68 JUMP JUMPDEST DUP2 SWAP6 POP SWAP6 POP JUMPDEST POP POP POP POP SWAP5 POP SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x111F DUP10 DUP10 PUSH2 0x318B JUMP JUMPDEST SWAP1 SWAP10 POP SWAP8 POP DUP10 PUSH2 0x1139 DUP13 PUSH1 0x7F PUSH1 0x2 EXP PUSH4 0xFFFFFFFF PUSH2 0xF41 AND JUMP JUMPDEST DUP2 ISZERO ISZERO PUSH2 0x1142 JUMPI INVALID JUMPDEST DIV SWAP4 POP PUSH17 0x15BF0A8B1457695355FB8AC404E7A79E3 DUP5 LT PUSH2 0x116B JUMPI PUSH2 0x1166 DUP5 PUSH2 0x2821 JUMP JUMPDEST PUSH2 0x1174 JUMP JUMPDEST PUSH2 0x1174 DUP5 PUSH2 0x2409 JUMP JUMPDEST SWAP3 POP DUP8 PUSH2 0x1187 DUP5 DUP12 PUSH4 0xFFFFFFFF PUSH2 0xF41 AND JUMP JUMPDEST DUP2 ISZERO ISZERO PUSH2 0x1190 JUMPI INVALID JUMPDEST DIV SWAP2 POP DUP7 PUSH2 0x11A6 JUMPI PUSH2 0x11A1 DUP3 PUSH2 0x3247 JUMP JUMPDEST PUSH2 0x11AF JUMP JUMPDEST PUSH2 0x11AF DUP3 PUSH2 0x32A4 JUMP JUMPDEST SWAP1 POP PUSH2 0x11DD PUSH2 0x11C4 DUP3 DUP12 PUSH4 0xFFFFFFFF PUSH2 0xF41 AND JUMP JUMPDEST PUSH2 0x11D8 DUP11 PUSH1 0x7F PUSH1 0x2 EXP PUSH4 0xFFFFFFFF PUSH2 0xF41 AND JUMP JUMPDEST PUSH2 0x11EF JUMP JUMPDEST SWAP6 POP SWAP6 POP POP POP POP POP SWAP6 POP SWAP6 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP1 DUP5 DUP7 GT PUSH2 0x120E JUMPI PUSH2 0x1205 DUP7 DUP7 PUSH2 0x3308 JUMP JUMPDEST SWAP4 POP SWAP4 POP PUSH2 0x1223 JUMP JUMPDEST PUSH2 0x1218 DUP6 DUP8 PUSH2 0x3308 JUMP JUMPDEST SWAP2 POP SWAP2 POP DUP1 DUP3 SWAP4 POP SWAP4 POP JUMPDEST POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH17 0x1C35FEDD14FFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x20 SSTORE PUSH17 0x1B0CE43B323FFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x21 SSTORE PUSH17 0x19F0028EC1FFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x22 SSTORE PUSH17 0x18DED91F0E7FFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x23 SSTORE PUSH17 0x17D8EC7F0417FFFFFFFFFFFFFFFFFFFFFF PUSH1 0x24 SSTORE PUSH17 0x16DDC6556CDBFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x25 SSTORE PUSH17 0x15ECF52776A1FFFFFFFFFFFFFFFFFFFFFF PUSH1 0x26 SSTORE PUSH17 0x15060C256CB2FFFFFFFFFFFFFFFFFFFFFF PUSH1 0x27 SSTORE PUSH17 0x1428A2F98D72FFFFFFFFFFFFFFFFFFFFFF PUSH1 0x28 SSTORE PUSH17 0x13545598E5C23FFFFFFFFFFFFFFFFFFFFF PUSH1 0x29 SSTORE PUSH17 0x1288C4161CE1DFFFFFFFFFFFFFFFFFFFFF PUSH1 0x2A SSTORE PUSH17 0x11C592761C666FFFFFFFFFFFFFFFFFFFFF PUSH1 0x2B SSTORE PUSH17 0x110A688680A757FFFFFFFFFFFFFFFFFFFF PUSH1 0x2C SSTORE PUSH17 0x1056F1B5BEDF77FFFFFFFFFFFFFFFFFFFF PUSH1 0x2D SSTORE PUSH17 0xFAADCECEEFF8BFFFFFFFFFFFFFFFFFFFF PUSH1 0x2E SSTORE PUSH17 0xF05DC6B27EDADFFFFFFFFFFFFFFFFFFFF PUSH1 0x2F SSTORE PUSH17 0xE67A5A25DA4107FFFFFFFFFFFFFFFFFFF PUSH1 0x30 SSTORE PUSH17 0xDCFF115B14EEDFFFFFFFFFFFFFFFFFFFF PUSH1 0x31 SSTORE PUSH17 0xD3E7A392431239FFFFFFFFFFFFFFFFFFF PUSH1 0x32 SSTORE PUSH17 0xCB2FF529EB71E4FFFFFFFFFFFFFFFFFFF PUSH1 0x33 SSTORE PUSH17 0xC2D415C3DB974AFFFFFFFFFFFFFFFFFFF PUSH1 0x34 SSTORE PUSH17 0xBAD03E7D883F69BFFFFFFFFFFFFFFFFFF PUSH1 0x35 SSTORE PUSH17 0xB320D03B2C343D5FFFFFFFFFFFFFFFFFF PUSH1 0x36 SSTORE PUSH17 0xABC25204E02828DFFFFFFFFFFFFFFFFFF PUSH1 0x37 SSTORE PUSH17 0xA4B16F74EE4BB207FFFFFFFFFFFFFFFFF PUSH1 0x38 SSTORE PUSH17 0x9DEAF736AC1F569FFFFFFFFFFFFFFFFFF PUSH1 0x39 SSTORE PUSH17 0x976BD9952C7AA957FFFFFFFFFFFFFFFFF PUSH1 0x3A SSTORE PUSH17 0x9131271922EAA606FFFFFFFFFFFFFFFFF PUSH1 0x3B SSTORE PUSH17 0x8B380F3558668C46FFFFFFFFFFFFFFFFF PUSH1 0x3C SSTORE PUSH17 0x857DDF0117EFA215BFFFFFFFFFFFFFFFF PUSH1 0x3D SSTORE PUSH17 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x3E SSTORE PUSH17 0x7ABBF6F6ABB9D087FFFFFFFFFFFFFFFFF PUSH1 0x3F SSTORE PUSH17 0x75AF62CBAC95F7DFA7FFFFFFFFFFFFFFF PUSH1 0x40 SSTORE PUSH17 0x70D7FB7452E187AC13FFFFFFFFFFFFFFF PUSH1 0x41 SSTORE PUSH17 0x6C3390ECC8AF379295FFFFFFFFFFFFFFF PUSH1 0x42 SSTORE PUSH17 0x67C00A3B07FFC01FD6FFFFFFFFFFFFFFF PUSH1 0x43 SSTORE PUSH17 0x637B647C39CBB9D3D27FFFFFFFFFFFFFF PUSH1 0x44 SSTORE PUSH17 0x5F63B1FC104DBD39587FFFFFFFFFFFFFF PUSH1 0x45 SSTORE PUSH17 0x5B771955B36E12F7235FFFFFFFFFFFFFF PUSH1 0x46 SSTORE PUSH17 0x57B3D49DDA84556D6F6FFFFFFFFFFFFFF PUSH1 0x47 SSTORE PUSH17 0x54183095B2C8ECECF30FFFFFFFFFFFFFF PUSH1 0x48 SSTORE PUSH17 0x50A28BE635CA2B888F77FFFFFFFFFFFFF PUSH1 0x49 SSTORE PUSH17 0x4D5156639708C9DB33C3FFFFFFFFFFFFF PUSH1 0x4A SSTORE PUSH17 0x4A23105873875BD52DFDFFFFFFFFFFFFF PUSH1 0x4B SSTORE PUSH17 0x471649D87199AA990756FFFFFFFFFFFFF PUSH1 0x4C SSTORE PUSH17 0x4429A21A029D4C1457CFBFFFFFFFFFFFF PUSH1 0x4D SSTORE PUSH17 0x415BC6D6FB7DD71AF2CB3FFFFFFFFFFFF PUSH1 0x4E SSTORE PUSH17 0x3EAB73B3BBFE282243CE1FFFFFFFFFFFF PUSH1 0x4F SSTORE PUSH17 0x3C1771AC9FB6B4C18E229FFFFFFFFFFFF PUSH1 0x50 SSTORE PUSH17 0x399E96897690418F785257FFFFFFFFFFF PUSH1 0x51 SSTORE PUSH17 0x373FC456C53BB779BF0EA9FFFFFFFFFFF PUSH1 0x52 SSTORE PUSH17 0x34F9E8E490C48E67E6AB8BFFFFFFFFFFF PUSH1 0x53 SSTORE PUSH17 0x32CBFD4A7ADC790560B3337FFFFFFFFFF PUSH1 0x54 SSTORE PUSH17 0x30B50570F6E5D2ACCA94613FFFFFFFFFF PUSH1 0x55 SSTORE PUSH17 0x2EB40F9F620FDA6B56C2861FFFFFFFFFF PUSH1 0x56 SSTORE PUSH17 0x2CC8340ECB0D0F520A6AF58FFFFFFFFFF PUSH1 0x57 SSTORE PUSH17 0x2AF09481380A0A35CF1BA02FFFFFFFFFF PUSH1 0x58 SSTORE PUSH17 0x292C5BDD3B92EC810287B1B3FFFFFFFFF PUSH1 0x59 SSTORE PUSH17 0x277ABDCDAB07D5A77AC6D6B9FFFFFFFFF PUSH1 0x5A SSTORE PUSH17 0x25DAF6654B1EAA55FD64DF5EFFFFFFFFF PUSH1 0x5B SSTORE PUSH17 0x244C49C648BAA98192DCE88B7FFFFFFFF PUSH1 0x5C SSTORE PUSH17 0x22CE03CD5619A311B2471268BFFFFFFFF PUSH1 0x5D SSTORE PUSH17 0x215F77C045FBE885654A44A0FFFFFFFFF PUSH1 0x5E SSTORE PUSH17 0x1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x5F SSTORE PUSH17 0x1EAEFDBDAAEE7421FC4D3EDE5FFFFFFFF PUSH1 0x60 SSTORE PUSH17 0x1D6BD8B2EB257DF7E8CA57B09BFFFFFFF PUSH1 0x61 SSTORE PUSH17 0x1C35FEDD14B861EB0443F7F133FFFFFFF PUSH1 0x62 SSTORE PUSH17 0x1B0CE43B322BCDE4A56E8ADA5AFFFFFFF PUSH1 0x63 SSTORE PUSH17 0x19F0028EC1FFF007F5A195A39DFFFFFFF PUSH1 0x64 SSTORE PUSH17 0x18DED91F0E72EE74F49B15BA527FFFFFF PUSH1 0x65 SSTORE PUSH17 0x17D8EC7F04136F4E5615FD41A63FFFFFF PUSH1 0x66 SSTORE PUSH17 0x16DDC6556CDB84BDC8D12D22E6FFFFFFF PUSH1 0x67 SSTORE PUSH17 0x15ECF52776A1155B5BD8395814F7FFFFF PUSH1 0x68 SSTORE PUSH17 0x15060C256CB23B3B3CC3754CF40FFFFFF PUSH1 0x69 SSTORE PUSH17 0x1428A2F98D728AE223DDAB715BE3FFFFF PUSH1 0x6A SSTORE PUSH17 0x13545598E5C23276CCF0EDE68034FFFFF PUSH1 0x6B SSTORE PUSH17 0x1288C4161CE1D6F54B7F61081194FFFFF PUSH1 0x6C SSTORE PUSH17 0x11C592761C666AA641D5A01A40F17FFFF PUSH1 0x6D SSTORE PUSH17 0x110A688680A7530515F3E6E6CFDCDFFFF PUSH1 0x6E SSTORE PUSH17 0x1056F1B5BEDF75C6BCB2CE8AED428FFFF PUSH1 0x6F SSTORE PUSH16 0xFAADCECEEFF8A0890F3875F008277FFF PUSH1 0x70 SSTORE PUSH16 0xF05DC6B27EDAD306388A600F6BA0BFFF PUSH1 0x71 SSTORE PUSH16 0xE67A5A25DA41063DE1495D5B18CDBFFF PUSH1 0x72 SSTORE PUSH16 0xDCFF115B14EEDDE6FC3AA5353F2E4FFF PUSH1 0x73 SSTORE PUSH16 0xD3E7A3924312399F9AAE2E0F868F8FFF PUSH1 0x74 SSTORE PUSH16 0xCB2FF529EB71E41582CCCD5A1EE26FFF PUSH1 0x75 SSTORE PUSH16 0xC2D415C3DB974AB32A51840C0B67EDFF PUSH1 0x76 SSTORE PUSH16 0xBAD03E7D883F69AD5B0A186184E06BFF PUSH1 0x77 SSTORE PUSH16 0xB320D03B2C343D4829ABD6075F0CC5FF PUSH1 0x78 SSTORE PUSH16 0xABC25204E02828D73C6E80BCDB1A95BF PUSH1 0x79 SSTORE PUSH16 0xA4B16F74EE4BB2040A1EC6C15FBBF2DF PUSH1 0x7A SSTORE PUSH16 0x9DEAF736AC1F569DEB1B5AE3F36C130F PUSH1 0x7B SSTORE PUSH16 0x976BD9952C7AA957F5937D790EF65037 PUSH1 0x7C SSTORE PUSH16 0x9131271922EAA6064B73A22D0BD4F2BF PUSH1 0x7D SSTORE PUSH16 0x8B380F3558668C46C91C49A2F8E967B9 PUSH1 0x7E SSTORE PUSH16 0x857DDF0117EFA215952912839F6473E6 PUSH1 0x0 PUSH1 0x7F JUMPDEST ADD SSTORE JUMP JUMPDEST PUSH16 0x60E393C68D20B1BD09DEAABC0373B9C5 PUSH1 0x80 SWAP1 DUP2 SSTORE PUSH16 0x5F8F46E4854120989ED94719FB4C2011 PUSH1 0x81 SSTORE PUSH16 0x5E479EBB9129FB1B7E72A648F992B606 PUSH1 0x82 SSTORE PUSH16 0x5D0BD23FE42DFEDDE2E9586BE12B85FE PUSH1 0x83 SSTORE PUSH16 0x5BDB29DDEE979308DDFCA81AEEB8095A PUSH1 0x84 SSTORE PUSH16 0x5AB4FD8A260D2C7E2C0D2AFCF0009DAD PUSH1 0x85 SSTORE PUSH16 0x5998B31359A55D48724C65CF09001221 PUSH1 0x86 SSTORE PUSH16 0x5885BCAD2B322DFC43E8860F9C018CF5 PUSH1 0x87 SSTORE PUSH16 0x577B97AA1FE222BB452FDF111B1F0BE2 PUSH1 0x88 SSTORE PUSH16 0x5679CB5E3575632E5BAA27E2B949F704 PUSH1 0x89 SSTORE PUSH16 0x557FE8241B3A31C83C732F1CDFF4A1C5 PUSH1 0x8A SSTORE PUSH16 0x548D868026504875D6E59BBE95FC2A6B PUSH1 0x8B SSTORE PUSH16 0x53A2465CE347CF34D05A867C17DD3088 PUSH1 0x8C SSTORE PUSH16 0x52BDCE5DCD4FAED59C7F5511CF8F8ACC PUSH1 0x8D SSTORE PUSH16 0x51DFCB453C07F8DA817606E7885F7C3E PUSH1 0x8E SSTORE PUSH16 0x5107EF6B0A5A2BE8F8FF15590DAA3CCE PUSH1 0x8F SSTORE PUSH16 0x5035F241D6EAE0CD7BACBA119993DE7B PUSH1 0x90 SSTORE PUSH16 0x4F698FE90D5B53D532171E1210164C66 PUSH1 0x91 SSTORE PUSH16 0x4EA288CA297A0E6A09A0EEE240E16C85 PUSH1 0x92 SSTORE PUSH16 0x4DE0A13FDCF5D4213FC398BA6E3BECDE PUSH1 0x93 SSTORE PUSH16 0x4D23A145EEF91FEC06B06140804C4808 PUSH1 0x94 SSTORE PUSH16 0x4C6B5430D4C1EE5526473DB4AE0F11DE PUSH1 0x95 SSTORE PUSH16 0x4BB7886C240562EBA11F4963A53B4240 PUSH1 0x96 SSTORE PUSH16 0x4B080F3F1CB491D2D521E0EA4583521E PUSH1 0x97 SSTORE PUSH16 0x4A5CBC96A05589CB4D86BE1DB3168364 PUSH1 0x98 SSTORE PUSH16 0x49B566D40243517658D78C33162D6ECE PUSH1 0x99 SSTORE PUSH16 0x4911E6A02E5507A30F947383FD9A3276 PUSH1 0x9A SSTORE PUSH16 0x487216C2B31BE4ADC41DB8A8D5CC0C88 PUSH1 0x9B SSTORE PUSH16 0x47D5D3FC4A7A1B188CD3D788B5C5E9FC PUSH1 0x9C SSTORE PUSH16 0x473CFCE4871A2C40BC4F9E1C32B955D0 PUSH1 0x9D SSTORE PUSH16 0x46A771CA578AB878485810E285E31C67 PUSH1 0x9E SSTORE PUSH16 0x4615149718AED4C258C373DC676AA72D PUSH1 0x9F SSTORE PUSH16 0x4585C8B3F8FE489C6E1833CA47871384 PUSH1 0xA0 SSTORE PUSH16 0x44F972F174E41E5EFB7E9D63C29CE735 PUSH1 0xA1 SSTORE PUSH16 0x446FF970BA86D8B00BEB05ECEBF3C4DC PUSH1 0xA2 SSTORE PUSH16 0x43E9438EC88971812D6F198B5CCAAD96 PUSH1 0xA3 SSTORE PUSH16 0x436539D11FF7BEA657AEDDB394E809EF PUSH1 0xA4 SSTORE PUSH16 0x42E3C5D3E5A913401D86F66DB5D81C2C PUSH1 0xA5 SSTORE PUSH16 0x4264D2395303070EA726CBE98DF62174 PUSH1 0xA6 SSTORE PUSH16 0x41E84A9A593BB7194C3A6349ECAE4EEA PUSH1 0xA7 SSTORE PUSH16 0x416E1B785D13EBA07A08F3F18876A5AB PUSH1 0xA8 SSTORE PUSH16 0x40F6322FF389D423BA9DD7E7E7B7E809 PUSH1 0xA9 SSTORE PUSH16 0x40807CEC8A466880ECF4184545D240A4 PUSH1 0xAA SSTORE PUSH16 0x400CEA9CE88A8D3AE668E8EA0D9BF07F PUSH1 0xAB SSTORE PUSH16 0x3F9B6AE8772D4C55091E0ED7DFEA0AC1 PUSH1 0xAC SSTORE PUSH16 0x3F2BEE253FD84594F54BCAAFAC383A13 PUSH1 0xAD SSTORE PUSH16 0x3EBE654E95208BB9210C575C081C5958 PUSH1 0xAE SSTORE PUSH16 0x3E52C1FC5665635B78CE1F05AD53C086 PUSH1 0xAF SSTORE PUSH16 0x3DE8F65AC388101DDF718A6F5C1EFF65 PUSH1 0xB0 SSTORE PUSH16 0x3D80F522D59BD0B328CA012DF4CD2D49 PUSH1 0xB1 SSTORE PUSH16 0x3D1AB193129EA72B23648A161163A85A PUSH1 0xB2 SSTORE PUSH16 0x3CB61F68D32576C135B95CFB53F76D75 PUSH1 0xB3 SSTORE PUSH16 0x3C5332D9F1AAE851A3619E77E4CC8473 PUSH1 0xB4 SSTORE PUSH16 0x3BF1E08EDBE2AA109E1525F65759EF73 PUSH1 0xB5 SSTORE PUSH16 0x3B921D9CFF13FA2C197746A3DFC4918F PUSH1 0xB6 SSTORE PUSH16 0x3B33DF818910BFC1A5AEFB8F63AE2AC4 PUSH1 0xB7 SSTORE PUSH16 0x3AD71C1C77E34FA32A9F184967ECCBF6 PUSH1 0xB8 SSTORE PUSH16 0x3A7BC9ABF2C5BB53E2F7384A8A16521A PUSH1 0xB9 SSTORE PUSH16 0x3A21DEC7E76369783A68A0C6385A1C57 PUSH1 0xBA SSTORE PUSH16 0x39C9525DE6C9CDF7C1C157CA4A7A6EE3 PUSH1 0xBB SSTORE PUSH16 0x39721BAD3DC85D1240FF0190E0ADAAC3 PUSH1 0xBC SSTORE PUSH16 0x391C324344D3248F0469EB28DD3D77E0 PUSH1 0xBD SSTORE PUSH16 0x38C78DF7E3C796279FB4FF84394AB3DA PUSH1 0xBE SSTORE PUSH16 0x387426EA4638AE9AAE08049D3554C20A PUSH1 0xBF SSTORE PUSH16 0x3821F57DBD2763256C1A99BBD2051378 PUSH1 0xC0 SSTORE PUSH16 0x37D0F256CB46A8C92FF62FBBEF289698 PUSH1 0xC1 SSTORE PUSH16 0x37811658591FFC7ABDD1FEAF3CEF9B73 PUSH1 0xC2 SSTORE PUSH16 0x37325AA10E9E82F7DF0F380F7997154B PUSH1 0xC3 SSTORE PUSH16 0x36E4B888CFB408D873B9A80D439311C6 PUSH1 0xC4 SSTORE PUSH16 0x3698299E59F4BB9DE645FC9B08C64CCA PUSH1 0xC5 SSTORE PUSH16 0x364CA7A5012CB603023B57DD3EBFD50D PUSH1 0xC6 SSTORE PUSH16 0x36022C928915B778AB1B06AAEE7E61D4 PUSH1 0xC7 SSTORE PUSH16 0x35B8B28D1A73DC27500FFE35559CC028 PUSH1 0xC8 SSTORE PUSH16 0x357033E951FE250EC5EB4E60955132D7 PUSH1 0xC9 SSTORE PUSH16 0x3528AB2867934E3A21B5412E4C4F8881 PUSH1 0xCA SSTORE PUSH16 0x34E212F66C55057F9676C80094A61D59 PUSH1 0xCB SSTORE PUSH16 0x349C66289E5B3C4B540C24F42FA4B9BB PUSH1 0xCC SSTORE PUSH16 0x34579FBBD0C733A9C8D6AF6B0F7D00F7 PUSH1 0xCD SSTORE PUSH16 0x3413BAD2E712288B924B5882B5B369BF PUSH1 0xCE SSTORE PUSH16 0x33D0B2B56286510EF730E213F71F12E9 PUSH1 0xCF SSTORE PUSH16 0x338E82CE00E2496262C64457535BA1A1 PUSH1 0xD0 SSTORE PUSH16 0x334D26A96B373BB7C2F8EA1827F27A92 PUSH1 0xD1 SSTORE PUSH16 0x330C99F4F4211469E00B3E18C31475EA PUSH1 0xD2 SSTORE PUSH16 0x32CCD87D6486094999C7D5E6F33237D8 PUSH1 0xD3 SSTORE PUSH16 0x328DDE2DD617B6665A2E8556F250C1AF PUSH1 0xD4 SSTORE PUSH16 0x324FA70E9ADC270F8262755AF5A99AF9 PUSH1 0xD5 SSTORE PUSH16 0x32122F443110611CA51040F41FA6E1E3 PUSH1 0xD6 SSTORE PUSH16 0x31D5730E42C0831482F0F1485C4263D8 PUSH1 0xD7 SSTORE PUSH16 0x31996EC6B07B4A83421B5EBC4AB4E1F1 PUSH1 0xD8 SSTORE PUSH16 0x315E1EE0A68FF46BB43EC2B85032E876 PUSH1 0xD9 SSTORE PUSH16 0x31237FE7BC4DEACF6775B9EFA1A145F8 PUSH1 0xDA SSTORE PUSH16 0x30E98E7F1CC5A356E44627A6972EA2FF PUSH1 0xDB SSTORE PUSH16 0x30B04760B8917EC74205A3002650EC05 PUSH1 0xDC SSTORE PUSH16 0x3077A75C803468E9132CE0CF3224241D PUSH1 0xDD SSTORE PUSH16 0x303FAB57A6A275C36F19CDA9BACE667A PUSH1 0xDE SSTORE PUSH16 0x3008504BEB8DCBD2CF3BC1F6D5A064F0 PUSH1 0xDF SSTORE PUSH16 0x2FD19346ED17DAC61219CE0C2C5AC4B0 PUSH1 0xE0 SSTORE PUSH16 0x2F9B7169808C324B5852FD3D54BA9714 PUSH1 0xE1 SSTORE PUSH16 0x2F65E7E711CF4B064EEA9C08CBDAD574 PUSH1 0xE2 SSTORE PUSH16 0x2F30F405093042DDFF8A251B6BF6D103 PUSH1 0xE3 SSTORE PUSH16 0x2EFC931A3750F2E8BFE323EDFE037574 PUSH1 0xE4 SSTORE PUSH16 0x2EC8C28E46DBE56D98685278339400CB PUSH1 0xE5 SSTORE PUSH16 0x2E957FD933C3926D8A599B602379B851 PUSH1 0xE6 SSTORE PUSH16 0x2E62C882C7C9ED4473412702F08BA0E5 PUSH1 0xE7 SSTORE PUSH16 0x2E309A221C12BA361E3ED695167FEEE2 PUSH1 0xE8 SSTORE PUSH16 0x2DFEF25D1F865AE18DD07CFEA4BCEA10 PUSH1 0xE9 SSTORE PUSH16 0x2DCDCEE821CDC80DECC02C44344AEB31 PUSH1 0xEA SSTORE PUSH16 0x2D9D2D8562B34944D0B201BB87260C83 PUSH1 0xEB SSTORE PUSH16 0x2D6D0C04A5B62A2C42636308669B729A PUSH1 0xEC SSTORE PUSH16 0x2D3D6842C9A235517FC5A0332691528F PUSH1 0xED SSTORE PUSH16 0x2D0E402963FE1EA2834ABC408C437C10 PUSH1 0xEE SSTORE PUSH16 0x2CDF91AE602647908AFF975E4D6A2A8C PUSH1 0xEF SSTORE PUSH16 0x2CB15AD3A1EB65F6D74A75DA09A1B6C5 PUSH1 0xF0 SSTORE PUSH16 0x2C8399A6AB8E9774D6FCFF373D210727 PUSH1 0xF1 SSTORE PUSH16 0x2C564C4046F64EDBA6883CA06BBC4535 PUSH1 0xF2 SSTORE PUSH16 0x2C2970C431F952641E05CB493E23EED3 PUSH1 0xF3 SSTORE PUSH16 0x2BFD0560CD9EB14563BC7C0732856C18 PUSH1 0xF4 SSTORE PUSH16 0x2BD1084ED0332F7FF4150F9D0EF41A2C PUSH1 0xF5 SSTORE PUSH16 0x2BA577D0FA1628B76D040B12A82492FB PUSH1 0xF6 SSTORE PUSH16 0x2B7A5233CD21581E855E89DC2F1E8A92 PUSH1 0xF7 SSTORE PUSH16 0x2B4F95CD46904D05D72BDCDE337D9CC7 PUSH1 0xF8 SSTORE PUSH16 0x2B2540FC9B4D9ABBA3FACA6691914675 PUSH1 0xF9 SSTORE PUSH16 0x2AFB5229F68D0830D8BE8ADB0A0DB70F PUSH1 0xFA SSTORE PUSH16 0x2AD1C7C63A9B294C5BC73A3BA3AB7A2B PUSH1 0xFB SSTORE PUSH16 0x2AA8A04AC3CBE1EE1C9C86361465DBB8 PUSH1 0xFC SSTORE PUSH16 0x2A7FDA392D725A44A2C8AEB9AB35430D PUSH1 0xFD SSTORE PUSH16 0x2A57741B18CDE618717792B4FAA216DB PUSH1 0xFE SSTORE PUSH16 0x2A2F6C81F5D84DD950A35626D6D5503A SWAP1 PUSH1 0x7F PUSH2 0x19FE JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP1 DUP1 PUSH16 0xD3094C70F034DE4B96FF7D5B6F99FCD8 DUP7 LT PUSH2 0x2458 JUMPI PUSH16 0x40000000000000000000000000000000 SWAP4 SWAP1 SWAP4 ADD SWAP3 PUSH16 0xD3094C70F034DE4B96FF7D5B6F99FCD8 PUSH1 0x7F PUSH1 0x2 EXP DUP8 MUL DIV SWAP6 POP JUMPDEST PUSH16 0xA45AF1E1F40C333B3DE1DB4DD55F29A7 DUP7 LT PUSH2 0x24A1 JUMPI PUSH16 0x20000000000000000000000000000000 SWAP4 SWAP1 SWAP4 ADD SWAP3 PUSH16 0xA45AF1E1F40C333B3DE1DB4DD55F29A7 PUSH1 0x7F PUSH1 0x2 EXP DUP8 MUL DIV SWAP6 POP JUMPDEST PUSH16 0x910B022DB7AE67CE76B441C27035C6A1 DUP7 LT PUSH2 0x24EA JUMPI PUSH16 0x10000000000000000000000000000000 SWAP4 SWAP1 SWAP4 ADD SWAP3 PUSH16 0x910B022DB7AE67CE76B441C27035C6A1 PUSH1 0x7F PUSH1 0x2 EXP DUP8 MUL DIV SWAP6 POP JUMPDEST PUSH16 0x88415ABBE9A76BEAD8D00CF112E4D4A8 DUP7 LT PUSH2 0x2533 JUMPI PUSH16 0x8000000000000000000000000000000 SWAP4 SWAP1 SWAP4 ADD SWAP3 PUSH16 0x88415ABBE9A76BEAD8D00CF112E4D4A8 PUSH1 0x7F PUSH1 0x2 EXP DUP8 MUL DIV SWAP6 POP JUMPDEST PUSH16 0x84102B00893F64C705E841D5D4064BD3 DUP7 LT PUSH2 0x257C JUMPI PUSH16 0x4000000000000000000000000000000 SWAP4 SWAP1 SWAP4 ADD SWAP3 PUSH16 0x84102B00893F64C705E841D5D4064BD3 PUSH1 0x7F PUSH1 0x2 EXP DUP8 MUL DIV SWAP6 POP JUMPDEST PUSH16 0x8204055AAEF1C8BD5C3259F4822735A2 DUP7 LT PUSH2 0x25C5 JUMPI PUSH16 0x2000000000000000000000000000000 SWAP4 SWAP1 SWAP4 ADD SWAP3 PUSH16 0x8204055AAEF1C8BD5C3259F4822735A2 PUSH1 0x7F PUSH1 0x2 EXP DUP8 MUL DIV SWAP6 POP JUMPDEST PUSH16 0x810100AB00222D861931C15E39B44E99 DUP7 LT PUSH2 0x260E JUMPI PUSH16 0x1000000000000000000000000000000 SWAP4 SWAP1 SWAP4 ADD SWAP3 PUSH16 0x810100AB00222D861931C15E39B44E99 PUSH1 0x7F PUSH1 0x2 EXP DUP8 MUL DIV SWAP6 POP JUMPDEST PUSH16 0x808040155AABBBE9451521693554F733 DUP7 LT PUSH2 0x2656 JUMPI PUSH15 0x800000000000000000000000000000 SWAP4 SWAP1 SWAP4 ADD SWAP3 PUSH16 0x808040155AABBBE9451521693554F733 PUSH1 0x7F PUSH1 0x2 EXP DUP8 MUL DIV SWAP6 POP JUMPDEST PUSH16 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT DUP7 ADD SWAP3 POP DUP3 SWAP2 POP PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP1 MUL DIV SWAP1 POP PUSH1 0x80 PUSH1 0x2 EXP DUP4 DUP2 SUB DUP4 MUL DIV SWAP4 SWAP1 SWAP4 ADD SWAP3 PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DIV SWAP2 POP PUSH17 0x200000000000000000000000000000000 PUSH16 0xAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA DUP5 SWAP1 SUB DUP4 MUL DIV SWAP4 SWAP1 SWAP4 ADD SWAP3 PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DIV SWAP2 POP PUSH17 0x300000000000000000000000000000000 PUSH16 0x99999999999999999999999999999999 DUP5 SWAP1 SUB DUP4 MUL DIV SWAP4 SWAP1 SWAP4 ADD SWAP3 PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DIV SWAP2 POP PUSH17 0x400000000000000000000000000000000 PUSH16 0x92492492492492492492492492492492 DUP5 SWAP1 SUB DUP4 MUL DIV SWAP4 SWAP1 SWAP4 ADD SWAP3 PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DIV SWAP2 POP PUSH17 0x500000000000000000000000000000000 PUSH16 0x8E38E38E38E38E38E38E38E38E38E38E DUP5 SWAP1 SUB DUP4 MUL DIV SWAP4 SWAP1 SWAP4 ADD SWAP3 PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DIV SWAP2 POP PUSH17 0x600000000000000000000000000000000 PUSH16 0x8BA2E8BA2E8BA2E8BA2E8BA2E8BA2E8B DUP5 SWAP1 SUB DUP4 MUL DIV SWAP4 SWAP1 SWAP4 ADD SWAP3 PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DIV SWAP2 POP PUSH17 0x700000000000000000000000000000000 PUSH16 0x89D89D89D89D89D89D89D89D89D89D89 DUP5 SWAP1 SUB DUP4 MUL DIV SWAP4 SWAP1 SWAP4 ADD SWAP3 PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DIV SWAP2 POP PUSH17 0x800000000000000000000000000000000 PUSH16 0x88888888888888888888888888888888 DUP5 SWAP1 SUB DUP4 MUL DIV SWAP4 SWAP1 SWAP4 ADD SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP1 PUSH1 0x80 PUSH1 0x2 EXP DUP6 LT PUSH2 0x2859 JUMPI PUSH2 0x2841 PUSH1 0x7F PUSH1 0x2 EXP DUP7 JUMPDEST DIV PUSH2 0x33A4 JUMP JUMPDEST PUSH1 0xFF DUP2 AND PUSH1 0x2 DUP2 SWAP1 EXP SWAP1 SWAP7 DIV SWAP6 PUSH1 0x7F PUSH1 0x2 EXP MUL SWAP4 POP SWAP2 POP JUMPDEST PUSH1 0x7F PUSH1 0x2 EXP DUP6 GT ISZERO PUSH2 0x28AB JUMPI POP PUSH1 0x7F JUMPDEST PUSH1 0x0 DUP2 PUSH1 0xFF AND GT ISZERO PUSH2 0x28AB JUMPI PUSH1 0x7F PUSH1 0x2 EXP DUP6 DUP1 MUL DIV SWAP5 POP PUSH1 0x80 PUSH1 0x2 EXP DUP6 LT PUSH2 0x28A2 JUMPI PUSH1 0x2 SWAP5 DUP6 SWAP1 DIV SWAP5 PUSH1 0xFF PUSH1 0x0 NOT DUP4 ADD AND SWAP1 EXP SWAP3 SWAP1 SWAP3 ADD SWAP2 JUMPDEST PUSH1 0x0 NOT ADD PUSH2 0x2869 JUMP JUMPDEST PUSH16 0x5B9DE1D10BF4103D647B0955897BA80 PUSH16 0x3F80FE03F80FE03F80FE03F80FE03F8 DUP5 MUL DIV SWAP4 POP JUMPDEST POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0x168244FDAC78000 PUSH1 0x7F PUSH1 0x2 EXP PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP5 AND DUP1 DUP1 MUL DUP3 SWAP1 DIV DUP1 DUP3 MUL DUP4 SWAP1 DIV DUP1 DUP4 MUL DUP5 SWAP1 DIV SWAP5 DUP6 MUL PUSH8 0x10E1B3BE415A0000 SWAP1 SWAP3 MUL PUSH8 0x5A0913F6B1E0000 SWAP2 SWAP1 SWAP2 MUL ADD ADD SWAP3 SWAP1 SWAP2 DUP2 DUP4 MUL DIV SWAP1 POP DUP1 PUSH7 0x4807432BC18000 MUL DUP4 ADD SWAP3 POP PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DUP2 ISZERO ISZERO PUSH2 0x2956 JUMPI INVALID JUMPDEST DIV SWAP1 POP DUP1 PUSH7 0xC0135DCA04000 MUL DUP4 ADD SWAP3 POP PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DUP2 ISZERO ISZERO PUSH2 0x2978 JUMPI INVALID JUMPDEST DIV SWAP1 POP DUP1 PUSH7 0x1B707B1CDC000 MUL DUP4 ADD SWAP3 POP PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DUP2 ISZERO ISZERO PUSH2 0x299A JUMPI INVALID JUMPDEST DIV SWAP1 POP DUP1 PUSH6 0x36E0F639B800 MUL DUP4 ADD SWAP3 POP PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DUP2 ISZERO ISZERO PUSH2 0x29BB JUMPI INVALID JUMPDEST DIV SWAP1 POP DUP1 PUSH6 0x618FEE9F800 MUL DUP4 ADD SWAP3 POP PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DUP2 ISZERO ISZERO PUSH2 0x29DC JUMPI INVALID JUMPDEST DIV SWAP1 POP DUP1 PUSH5 0x9C197DCC00 MUL DUP4 ADD SWAP3 POP PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DUP2 ISZERO ISZERO PUSH2 0x29FC JUMPI INVALID JUMPDEST DIV SWAP1 POP DUP1 PUSH5 0xE30DCE400 MUL DUP4 ADD SWAP3 POP PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DUP2 ISZERO ISZERO PUSH2 0x2A1C JUMPI INVALID JUMPDEST DIV SWAP1 POP DUP1 PUSH5 0x12EBD1300 MUL DUP4 ADD SWAP3 POP PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DUP2 ISZERO ISZERO PUSH2 0x2A3C JUMPI INVALID JUMPDEST DIV SWAP1 POP DUP1 PUSH4 0x17499F00 MUL DUP4 ADD SWAP3 POP PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DUP2 ISZERO ISZERO PUSH2 0x2A5B JUMPI INVALID JUMPDEST DIV SWAP1 POP DUP1 PUSH4 0x1A9D480 MUL DUP4 ADD SWAP3 POP PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DUP2 ISZERO ISZERO PUSH2 0x2A7A JUMPI INVALID JUMPDEST DIV SWAP1 POP DUP1 PUSH3 0x1C6380 MUL DUP4 ADD SWAP3 POP PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DUP2 ISZERO ISZERO PUSH2 0x2A98 JUMPI INVALID JUMPDEST DIV SWAP1 POP DUP1 PUSH3 0x1C638 MUL DUP4 ADD SWAP3 POP PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DUP2 ISZERO ISZERO PUSH2 0x2AB6 JUMPI INVALID JUMPDEST DIV SWAP1 POP DUP1 PUSH2 0x1AB8 MUL DUP4 ADD SWAP3 POP PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DUP2 ISZERO ISZERO PUSH2 0x2AD3 JUMPI INVALID JUMPDEST DIV SWAP1 POP DUP1 PUSH2 0x17C MUL DUP4 ADD SWAP3 POP PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DUP2 ISZERO ISZERO PUSH2 0x2AF0 JUMPI INVALID JUMPDEST DIV SWAP1 POP DUP1 PUSH1 0x14 MUL DUP4 ADD SWAP3 POP PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DUP2 ISZERO ISZERO PUSH2 0x2B0C JUMPI INVALID JUMPDEST PUSH8 0x21C3677C82B40000 SWAP2 SWAP1 DIV SWAP4 DUP5 ADD DIV DUP3 ADD PUSH1 0x7F PUSH1 0x2 EXP ADD SWAP3 SWAP1 POP PUSH16 0x10000000000000000000000000000000 DUP6 AND ISZERO PUSH2 0x2B69 JUMPI PUSH17 0x18EBEF9EAC820AE8682B9793AC6D1E776 PUSH17 0x1C3D6A24ED82218787D624D3E5EBA95F9 DUP5 MUL DIV SWAP3 POP JUMPDEST PUSH16 0x20000000000000000000000000000000 DUP6 AND ISZERO PUSH2 0x2BAB JUMPI PUSH17 0x1368B2FC6F9609FE7ACEB46AA619BAED4 PUSH17 0x18EBEF9EAC820AE8682B9793AC6D1E778 DUP5 MUL DIV SWAP3 POP JUMPDEST PUSH16 0x40000000000000000000000000000000 DUP6 AND ISZERO PUSH2 0x2BEC JUMPI PUSH16 0xBC5AB1B16779BE3575BD8F0520A9F21F PUSH17 0x1368B2FC6F9609FE7ACEB46AA619BAED5 DUP5 MUL DIV SWAP3 POP JUMPDEST PUSH1 0x7F PUSH1 0x2 EXP DUP6 AND ISZERO PUSH2 0x2C20 JUMPI PUSH16 0x454AAA8EFE072E7F6DDBAB84B40A55C9 PUSH16 0xBC5AB1B16779BE3575BD8F0520A9F21E DUP5 MUL DIV SWAP3 POP JUMPDEST PUSH1 0x80 PUSH1 0x2 EXP DUP6 AND ISZERO PUSH2 0x2C54 JUMPI PUSH16 0x960AADC109E7A3BF4578099615711EA PUSH16 0x454AAA8EFE072E7F6DDBAB84B40A55C5 DUP5 MUL DIV SWAP3 POP JUMPDEST PUSH17 0x200000000000000000000000000000000 DUP6 AND ISZERO PUSH2 0x2C94 JUMPI PUSH15 0x2BF84208204F5977F9A8CF01FDCE3D PUSH16 0x960AADC109E7A3BF4578099615711D7 DUP5 MUL DIV SWAP3 POP JUMPDEST PUSH17 0x400000000000000000000000000000000 DUP6 AND ISZERO PUSH2 0x2CD2 JUMPI PUSH14 0x3C6AB775DD0B95B4CBEE7E65D11 PUSH15 0x2BF84208204F5977F9A8CF01FDC307 DUP5 MUL DIV SWAP3 POP JUMPDEST POP SWAP1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 PUSH1 0x7F DUP3 JUMPDEST DUP2 PUSH1 0xFF AND DUP4 PUSH1 0x1 ADD PUSH1 0xFF AND LT ISZERO PUSH2 0x2D28 JUMPI PUSH1 0x2 PUSH1 0xFF DUP5 DUP5 ADD AND DIV SWAP1 POP DUP5 PUSH1 0x0 PUSH1 0xFF DUP4 AND PUSH1 0x80 DUP2 LT PUSH2 0x2D10 JUMPI INVALID JUMPDEST ADD SLOAD LT PUSH2 0x2D1F JUMPI DUP1 SWAP3 POP PUSH2 0x2D23 JUMP JUMPDEST DUP1 SWAP2 POP JUMPDEST PUSH2 0x2CE3 JUMP JUMPDEST DUP5 PUSH1 0x0 PUSH1 0xFF DUP5 AND PUSH1 0x80 DUP2 LT PUSH2 0x2D39 JUMPI INVALID JUMPDEST ADD SLOAD LT PUSH2 0x2D48 JUMPI DUP2 SWAP4 POP PUSH2 0x28D3 JUMP JUMPDEST DUP5 PUSH1 0x0 PUSH1 0xFF DUP6 AND PUSH1 0x80 DUP2 LT PUSH2 0x2D59 JUMPI INVALID JUMPDEST ADD SLOAD LT PUSH2 0x106 JUMPI DUP3 SWAP4 POP PUSH2 0x28D3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP5 SWAP2 POP PUSH1 0x0 SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH16 0x3442C4E6074A82F1797F72AC0000000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH16 0x116B96F757C380FB287FD0E40000000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH15 0x45AE5BDD5F0E03ECA1FF4390000000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH15 0xDEFABF91302CD95B9FFDA50000000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH15 0x2529CA9832B22439EFFF9B8000000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH14 0x54F1CF12BD04E516B6DA88000000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH14 0xA9E39E257A09CA2D6DB51000000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH14 0x12E066E7B839FA050C309000000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH13 0x1E33D7D926C329A1AD1A800000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH13 0x2BEE513BDB4A6B19B5F800000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH12 0x3A9316FA79B88ECCF2A00000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH12 0x48177EBE1FA812375200000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH11 0x5263FE90242DCBACF00000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH11 0x57E22099C030D94100000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH10 0x57E22099C030D9410000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH10 0x52B6B54569976310000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH9 0x4985F67696BF748000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH9 0x3DEA12EA99E498000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH8 0x31880F2214B6E000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH8 0x25BCFF56EB36000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH7 0x1B722E10AB1000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH7 0x1317C70077000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH6 0xCBA84AAFA00 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH5 0x82573A0A00 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH5 0x5035AD900 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH4 0x2F881B00 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH4 0x1B29340 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH3 0xEFC40 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH2 0x7FE0 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH2 0x420 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH1 0x21 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH1 0x1 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND PUSH1 0x1 SWAP1 PUSH1 0x2 EXP MUL DUP6 PUSH16 0x688589CC0E9505E2F2FEE5580000000 DUP4 DUP2 ISZERO ISZERO PUSH2 0x317F JUMPI INVALID JUMPDEST DIV ADD ADD SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 PUSH1 0x2 EXP DUP7 GT ISZERO DUP1 ISZERO PUSH2 0x31A9 JUMPI POP PUSH1 0x80 PUSH1 0x2 EXP DUP6 GT ISZERO JUMPDEST ISZERO PUSH2 0x31B9 JUMPI DUP6 DUP6 SWAP4 POP SWAP4 POP PUSH2 0x1223 JUMP JUMPDEST PUSH1 0x80 PUSH1 0x2 EXP DUP7 LT ISZERO PUSH2 0x31E5 JUMPI DUP5 PUSH1 0x80 PUSH1 0x2 EXP DUP8 MUL DUP2 ISZERO ISZERO PUSH2 0x31D6 JUMPI INVALID JUMPDEST DIV PUSH1 0x80 PUSH1 0x2 EXP SWAP4 POP SWAP4 POP PUSH2 0x1223 JUMP JUMPDEST PUSH1 0x80 PUSH1 0x2 EXP DUP6 LT ISZERO PUSH2 0x3211 JUMPI PUSH1 0x80 PUSH1 0x2 EXP DUP7 PUSH1 0x80 PUSH1 0x2 EXP DUP8 MUL DUP2 ISZERO ISZERO PUSH2 0x3207 JUMPI INVALID JUMPDEST DIV SWAP4 POP SWAP4 POP PUSH2 0x1223 JUMP JUMPDEST DUP5 DUP7 GT PUSH2 0x321E JUMPI DUP5 PUSH2 0x3220 JUMP JUMPDEST DUP6 JUMPDEST SWAP2 POP PUSH2 0x3230 PUSH1 0x7F PUSH1 0x2 EXP DUP4 PUSH2 0x283B JUMP JUMPDEST PUSH1 0xFF AND PUSH1 0x2 EXP SWAP6 DUP7 SWAP1 DIV SWAP7 SWAP6 SWAP1 SWAP5 DIV SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH16 0x2F16AC6C59DE6F8D5D6F63C1482A7C86 DUP3 GT PUSH2 0x3270 JUMPI PUSH2 0x3269 DUP3 PUSH2 0x340D JUMP JUMPDEST SWAP1 POP PUSH2 0x329F JUMP JUMPDEST DUP2 PUSH32 0x4000000000000000000000000000000000000000000000000000000000000000 DUP2 ISZERO ISZERO PUSH2 0x329B JUMPI INVALID JUMPDEST DIV SWAP1 POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH16 0x2F16AC6C59DE6F8D5D6F63C1482A7C86 DUP3 GT PUSH2 0x32C6 JUMPI PUSH2 0x3269 DUP3 PUSH2 0x3870 JUMP JUMPDEST PUSH17 0x1AF16AC6C59DE6F8D5D6F63C1482A7C80 DUP3 GT PUSH2 0x32E7 JUMPI PUSH2 0x3269 DUP3 PUSH2 0x3CF1 JUMP JUMPDEST PUSH17 0x6B22D43E72C326539CCEEEF8BB48F255FF DUP3 GT PUSH2 0x106 JUMPI PUSH2 0x3269 DUP3 PUSH2 0x3D6F JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH30 0x10C6F7A0B5ED8D36B4C7F34938583621FAFC8B0079A2834D26FA3FCC9EA9 DUP8 GT ISZERO PUSH2 0x3379 JUMPI PUSH30 0x10C6F7A0B5ED8D36B4C7F34938583621FAFC8B0079A2834D26FA3FCC9EAA DUP8 DIV PUSH1 0x1 ADD SWAP3 POP DUP3 DUP8 DUP2 ISZERO ISZERO PUSH2 0x3367 JUMPI INVALID JUMPDEST DIV SWAP7 POP DUP3 DUP7 DUP2 ISZERO ISZERO PUSH2 0x3375 JUMPI INVALID JUMPDEST DIV SWAP6 POP JUMPDEST PUSH2 0x3391 PUSH3 0xF4240 DUP9 MUL PUSH2 0x338C DUP10 DUP10 PUSH2 0xFC5 JUMP JUMPDEST PUSH2 0x3DFC JUMP JUMPDEST SWAP8 PUSH3 0xF4240 DUP10 SWAP1 SUB SWAP8 POP SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 PUSH2 0x100 DUP5 LT ISZERO PUSH2 0x33D3 JUMPI JUMPDEST PUSH1 0x1 DUP5 GT ISZERO PUSH2 0x33CE JUMPI PUSH1 0x2 SWAP1 SWAP4 DIV SWAP3 PUSH1 0x1 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x33B3 JUMP JUMPDEST PUSH2 0xFBE JUMP JUMPDEST POP PUSH1 0x80 JUMPDEST PUSH1 0x0 DUP2 PUSH1 0xFF AND GT ISZERO PUSH2 0xFBE JUMPI PUSH1 0xFF DUP2 AND PUSH1 0x2 EXP DUP5 LT PUSH2 0x3400 JUMPI PUSH1 0xFF DUP2 AND PUSH1 0x2 EXP SWAP1 SWAP4 DIV SWAP3 SWAP1 DUP2 OR SWAP1 JUMPDEST PUSH1 0x2 PUSH1 0xFF SWAP1 SWAP2 AND DIV PUSH2 0x33D7 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP1 MUL DIV SWAP2 POP PUSH17 0x14D29A73A6E7B02C3668C7B0880000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH17 0x2504A0CD9A7F7215B60F9BE4800000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH17 0x484D0A1191C0EAD267967C7A4A0000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH17 0x95EC580D7E8427A4BAF26A90A00000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH17 0x1440B0BE1615A47DBA6E5B3B1F10000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH17 0x2D207601F46A99B4112418400000000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH17 0x66EBAAC4C37C622DD8288A7EB1B2000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH17 0xEF17240135F7DBD43A1BA10CF200000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH18 0x233C33C676A5EB2416094A87B3657000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH18 0x541CDE48BC0254BED49A9F8700000000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH18 0xCAE1FAD2CDD4D4CB8D73ABCA0D19A400000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH18 0x1EDB2AA2F760D15C41CEEDBA956400000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH18 0x4BA8D20D2DABD386C9529659841A2E200000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH18 0xBAC08546B867CDAA20000000000000000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH19 0x1CFA8E70C03625B9DB76C8EBF5BBF24820000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH19 0x4851D99F82060DF265F3309B26F8200000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH19 0xB550D19B129D270C44F6F55F027723CBB0000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH19 0x1C877DADC761DC272DEB65D4B0000000000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH19 0x48178ECE97479F33A77F2AD22A81B64406C000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH19 0xB6CA8268B9D810FEDF6695EF2F8A6C00000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH20 0x1D0E76631A5B05D007B8CB72A7C7F11EC36E000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH20 0x4A1C37BD9F85FD9C6C780000000000000000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH20 0xBD8369F1B702BF491E2EBFCEE08250313B65400 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH20 0x1E5C7C32A9F6C70AB2CB59D9225764D400000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH20 0x4DFF5820E165E910F95120A708E742496221E600 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH20 0xC8C8F66DB1FCED378EE50E536000000000000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH21 0x205DB8DFFFF45BFA2938F128F599DBF16EB11D880 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH21 0x53A044EBD984351493E1786AF38D39A0800000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH21 0xD86DAE2A4CC0F47633A544479735869B487B59C40 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH21 0x231000000000000000000000000000000000000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH21 0x5B0485A76F6646C2039DB1507CDD51B08649680822 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH21 0xEC983C46C49545BC17EFA6B5B0055E242200000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 PUSH16 0xDE1BC4D19EFCAC82445DA75B00000000 DUP4 DIV ADD ADD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x7F PUSH1 0x2 EXP DUP2 DUP2 SUB PUSH16 0xDE1BC4D19EFCAC82445DA75B00000000 MUL SWAP1 DUP3 DUP1 MUL DIV SWAP2 POP PUSH17 0x14D29A73A6E7B02C3668C7B0880000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH17 0x2504A0CD9A7F7215B60F9BE4800000000 DUP3 MUL SWAP1 SUB PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH17 0x484D0A1191C0EAD267967C7A4A0000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH17 0x95EC580D7E8427A4BAF26A90A00000000 DUP3 MUL SWAP1 SUB PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH17 0x1440B0BE1615A47DBA6E5B3B1F10000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH17 0x2D207601F46A99B4112418400000000000 DUP3 MUL SWAP1 SUB PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH17 0x66EBAAC4C37C622DD8288A7EB1B2000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH17 0xEF17240135F7DBD43A1BA10CF200000000 DUP3 MUL SWAP1 SUB PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH18 0x233C33C676A5EB2416094A87B3657000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH18 0x541CDE48BC0254BED49A9F8700000000000 DUP3 MUL SWAP1 SUB PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH18 0xCAE1FAD2CDD4D4CB8D73ABCA0D19A400000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH18 0x1EDB2AA2F760D15C41CEEDBA956400000000 DUP3 MUL SWAP1 SUB PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH18 0x4BA8D20D2DABD386C9529659841A2E200000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH18 0xBAC08546B867CDAA20000000000000000000 DUP3 MUL SWAP1 SUB PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH19 0x1CFA8E70C03625B9DB76C8EBF5BBF24820000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH19 0x4851D99F82060DF265F3309B26F8200000000 DUP3 MUL SWAP1 SUB PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH19 0xB550D19B129D270C44F6F55F027723CBB0000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH19 0x1C877DADC761DC272DEB65D4B0000000000000 DUP3 MUL SWAP1 SUB PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH19 0x48178ECE97479F33A77F2AD22A81B64406C000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH19 0xB6CA8268B9D810FEDF6695EF2F8A6C00000000 DUP3 MUL SWAP1 SUB PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH20 0x1D0E76631A5B05D007B8CB72A7C7F11EC36E000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH20 0x4A1C37BD9F85FD9C6C780000000000000000000 DUP3 MUL SWAP1 SUB PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH20 0xBD8369F1B702BF491E2EBFCEE08250313B65400 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH20 0x1E5C7C32A9F6C70AB2CB59D9225764D400000000 DUP3 MUL SWAP1 SUB PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH20 0x4DFF5820E165E910F95120A708E742496221E600 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH20 0xC8C8F66DB1FCED378EE50E536000000000000000 DUP3 MUL SWAP1 SUB PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH21 0x205DB8DFFFF45BFA2938F128F599DBF16EB11D880 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH21 0x53A044EBD984351493E1786AF38D39A0800000000 DUP3 MUL SWAP1 SUB PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH21 0xD86DAE2A4CC0F47633A544479735869B487B59C40 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH21 0x231000000000000000000000000000000000000000 DUP3 MUL SWAP1 SUB PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH21 0x5B0485A76F6646C2039DB1507CDD51B08649680822 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH21 0xEC983C46C49545BC17EFA6B5B0055E242200000000 DUP3 MUL SWAP1 SUB PUSH16 0xDE1BC4D19EFCAC82445DA75B00000000 DUP2 JUMPDEST DIV SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH16 0x2F16AC6C59DE6F8D5D6F63C1482A7C86 NOT DUP3 ADD PUSH16 0x3060C183060C183060C183060C18306 DUP1 DUP3 DIV SWAP1 DUP2 DUP2 MUL SWAP1 PUSH1 0x1 DUP4 ADD MUL DUP5 DUP1 PUSH1 0x80 DUP6 DUP2 DUP2 LT PUSH2 0x3D33 JUMPI INVALID JUMPDEST ADD SLOAD SWAP2 POP PUSH1 0x80 PUSH1 0x1 DUP7 ADD DUP2 DUP2 LT PUSH2 0x3D46 JUMPI INVALID JUMPDEST ADD SLOAD PUSH16 0x3060C183060C183060C183060C18306 SWAP5 DUP8 SUB MUL SWAP6 SWAP1 SWAP3 SUB MUL SWAP4 SWAP1 SWAP4 ADD DIV SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH17 0x15BF0A8B1457695355FB8AC404E7A79E3 DUP5 LT PUSH2 0x3D9A JUMPI PUSH2 0x3D95 DUP5 PUSH2 0x2821 JUMP JUMPDEST PUSH2 0x3DA3 JUMP JUMPDEST PUSH2 0x3DA3 DUP5 PUSH2 0x2409 JUMP JUMPDEST SWAP2 POP PUSH17 0x15BF0A8B1457695355FB8AC404E7A79E3 DUP3 LT PUSH2 0x3DCB JUMPI PUSH2 0x3DC6 DUP3 PUSH2 0x2821 JUMP JUMPDEST PUSH2 0x3DD4 JUMP JUMPDEST PUSH2 0x3DD4 DUP3 PUSH2 0x2409 JUMP JUMPDEST SWAP1 POP DUP4 PUSH1 0x7F PUSH1 0x2 EXP DUP4 PUSH1 0x7F PUSH1 0x2 EXP DUP5 MUL DUP2 ISZERO ISZERO PUSH2 0x3DED JUMPI INVALID JUMPDEST DIV DUP4 DUP6 SUB ADD MUL DUP2 ISZERO ISZERO PUSH2 0x3CE8 JUMPI INVALID JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV DUP3 SUB DUP3 DUP5 DUP2 ISZERO ISZERO PUSH2 0x3E0F JUMPI INVALID JUMPDEST MOD DUP2 ISZERO ISZERO PUSH2 0x3E19 JUMPI INVALID JUMPDEST DIV DUP3 DUP5 DUP2 ISZERO ISZERO PUSH2 0x3E25 JUMPI INVALID JUMPDEST DIV ADD SWAP4 SWAP3 POP POP POP JUMP STOP GASLIMIT MSTORE MSTORE 0x5f 0x49 0x4e JUMP COINBASE 0x4c 0x49 DIFFICULTY 0x5f MSTORE8 SSTORE POP POP 0x4c MSIZE STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP GASLIMIT MSTORE MSTORE 0x5f 0x49 0x4e JUMP COINBASE 0x4c 0x49 DIFFICULTY 0x5f MSTORE GASLIMIT MSTORE8 GASLIMIT MSTORE JUMP GASLIMIT 0x5f TIMESTAMP COINBASE 0x4c COINBASE 0x4e NUMBER GASLIMIT STOP STOP STOP STOP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 GASPRICE 0xa6 BYTE BLOCKHASH SWAP15 PUSH19 0x9A09805C2713F062E39BB7A14053960C848BB2 0xd7 PUSH4 0x6183D573 0xa7 STOP 0x29 ", + "sourceMap": "105:60940:10:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;105:60940:10;;;;;;;" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "6080604052600436106101065763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631da6bbfb811461010b57806329a00e7c146101445780632f55bdb51461016b57806335b49af41461019257806348d73fed1461014457806349f9b0f7146101b957806354fd4d50146101e057806365098bb31461020c57806376cf0b561461023a57806379c1b4501461020c5780638074590a1461026157806394491fab146102885780639d1141081461020c578063a11aa1b4146102b6578063abfd231d14610192578063e1c7392a146102fd578063ebbb215814610314578063f3250fe21461033b578063f732f1c9146101b9575b600080fd5b34801561011757600080fd5b5061013260043560243563ffffffff60443516606435610362565b60408051918252519081900360200190f35b34801561015057600080fd5b5061013260043560243563ffffffff60443516606435610379565b34801561017757600080fd5b5061013260043560243563ffffffff60443516606435610387565b34801561019e57600080fd5b5061013260043560243563ffffffff60443516606435610524565b3480156101c557600080fd5b5061013260043560243563ffffffff60443516606435610532565b3480156101ec57600080fd5b506101f5610540565b6040805161ffff9092168252519081900360200190f35b34801561021857600080fd5b5061013260043563ffffffff6024358116906044359060643516608435610545565b34801561024657600080fd5b5061013260043560243563ffffffff6044351660643561055e565b34801561026d57600080fd5b5061013260043560243563ffffffff60443516606435610763565b34801561029457600080fd5b5061013260043563ffffffff6024358116906044359060643516608435610904565b3480156102c257600080fd5b506102da600435602435604435606435608435610aa0565b6040805163ffffffff938416815291909216602082015281519081900390910190f35b34801561030957600080fd5b50610312610c40565b005b34801561032057600080fd5b5061013260043560243563ffffffff60443516606435610c52565b34801561034757600080fd5b5061013260043560243563ffffffff60443516606435610df9565b600061037085858585610c52565b95945050505050565b600061037085858585610df9565b6000808080808089116103d2576040805160e560020a62461bcd0281526020600482015260126024820152600080516020613e2f833981519152604482015290519081900360640190fd5b60008811610418576040805160e560020a62461bcd02815260206004820152601b6024820152600080516020613e4f833981519152604482015290519081900360640190fd5b60018763ffffffff161180156104375750621e848063ffffffff881611155b151561048d576040805160e560020a62461bcd02815260206004820152601960248201527f4552525f494e56414c49445f524553455256455f524154494f00000000000000604482015290519081900360640190fd5b85151561049d5760009450610518565b63ffffffff8716620f424014156104d057876104bf878b63ffffffff610f4116565b8115156104c857fe5b049450610518565b6104e0888763ffffffff610fc516565b91506104f1828989620f4240611022565b909450925060ff831661050a8a8663ffffffff610f4116565b9060020a9004905088810394505b50505050949350505050565b600061037085858585610763565b60006103708585858561055e565b600881565b60006105548686868686610904565b9695505050505050565b60008080808080808a116105aa576040805160e560020a62461bcd0281526020600482015260126024820152600080516020613e2f833981519152604482015290519081900360640190fd5b600089116105f0576040805160e560020a62461bcd02815260206004820152601b6024820152600080516020613e4f833981519152604482015290519081900360640190fd5b60008863ffffffff1611801561060f5750620f424063ffffffff891611155b1515610665576040805160e560020a62461bcd02815260206004820152601a60248201527f4552525f494e56414c49445f524553455256455f574549474854000000000000604482015290519081900360640190fd5b898711156106bd576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f494e56414c49445f414d4f554e540000000000000000000000000000604482015290519081900360640190fd5b8615156106cd5760009550610756565b898714156106dd57889550610756565b63ffffffff8816620f4240141561071057896106ff8a8963ffffffff610f4116565b81151561070857fe5b049550610756565b868a0392506107248a84620f42408b611022565b9095509350610739898663ffffffff610f4116565b91505060ff831660020a88028481830381151561075257fe5b0495505b5050505050949350505050565b60008080808080808a116107af576040805160e560020a62461bcd0281526020600482015260126024820152600080516020613e2f833981519152604482015290519081900360640190fd5b600089116107f5576040805160e560020a62461bcd02815260206004820152601b6024820152600080516020613e4f833981519152604482015290519081900360640190fd5b60018863ffffffff161180156108145750621e848063ffffffff891611155b151561086a576040805160e560020a62461bcd02815260206004820152601960248201527f4552525f494e56414c49445f524553455256455f524154494f00000000000000604482015290519081900360640190fd5b898711156108c2576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f494e56414c49445f414d4f554e540000000000000000000000000000604482015290519081900360640190fd5b8615156108d25760009550610756565b898714156108e257889550610756565b63ffffffff8816620f4240141561071057896106ff888b63ffffffff610f4116565b60008060008060008060008b11801561091d5750600089115b1515610961576040805160e560020a62461bcd02815260206004820152601b6024820152600080516020613e4f833981519152604482015290519081900360640190fd5b60008a63ffffffff161180156109805750620f424063ffffffff8b1611155b8015610992575060008863ffffffff16115b80156109a75750620f424063ffffffff891611155b15156109fd576040805160e560020a62461bcd02815260206004820152601a60248201527f4552525f494e56414c49445f524553455256455f574549474854000000000000604482015290519081900360640190fd5b8763ffffffff168a63ffffffff161415610a4257610a218b8863ffffffff610fc516565b610a318a8963ffffffff610f4116565b811515610a3a57fe5b049550610a92565b610a528b8863ffffffff610fc516565b9250610a60838c8c8b611022565b9095509350610a75898663ffffffff610f4116565b91505060ff831660020a880284818303811515610a8e57fe5b0495505b505050505095945050505050565b60008060008087891415610b06576000891180610abd5750600087115b1515610b01576040805160e560020a62461bcd02815260206004820152601b6024820152600080516020613e4f833981519152604482015290519081900360640190fd5b610b66565b600089118015610b165750600088115b8015610b225750600087115b1515610b66576040805160e560020a62461bcd02815260206004820152601b6024820152600080516020613e4f833981519152604482015290519081900360640190fd5b600086118015610b765750600085115b1515610bcc576040805160e560020a62461bcd02815260206004820152601860248201527f4552525f494e56414c49445f524553455256455f524154450000000000000000604482015290519081900360640190fd5b610bdc898763ffffffff610f4116565b9150610bee878663ffffffff610f4116565b905087891015610c0f57610c06888a8484600161110c565b93509350610c34565b87891115610c2557610c0689898484600061110c565b610c2f82826111ef565b935093505b50509550959350505050565b610c4861122c565b610c50611a02565b565b600080808080808911610c9d576040805160e560020a62461bcd0281526020600482015260126024820152600080516020613e2f833981519152604482015290519081900360640190fd5b60008811610ce3576040805160e560020a62461bcd02815260206004820152601b6024820152600080516020613e4f833981519152604482015290519081900360640190fd5b60018763ffffffff16118015610d025750621e848063ffffffff881611155b1515610d58576040805160e560020a62461bcd02815260206004820152601960248201527f4552525f494e56414c49445f524553455256455f524154494f00000000000000604482015290519081900360640190fd5b851515610d685760009450610518565b63ffffffff8716620f42401415610da157886001610d8c888b63ffffffff610f4116565b03811515610d9657fe5b046001019450610518565b610db1898763ffffffff610fc516565b9150610dc2828a620f42408a611022565b909450925060ff83166001610ddd8a8763ffffffff610f4116565b60029290920a9103049790970360010198975050505050505050565b600080808080808911610e44576040805160e560020a62461bcd0281526020600482015260126024820152600080516020613e2f833981519152604482015290519081900360640190fd5b60008811610e8a576040805160e560020a62461bcd02815260206004820152601b6024820152600080516020613e4f833981519152604482015290519081900360640190fd5b60008763ffffffff16118015610ea95750620f424063ffffffff881611155b1515610eff576040805160e560020a62461bcd02815260206004820152601a60248201527f4552525f494e56414c49445f524553455256455f574549474854000000000000604482015290519081900360640190fd5b851515610f0f5760009450610518565b63ffffffff8716620f42401415610f3157876104bf8a8863ffffffff610f4116565b6104e0868963ffffffff610fc516565b600080831515610f545760009150610fbe565b50828202828482811515610f6457fe5b0414610fba576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b8091505b5092915050565b600082820183811015610fba576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b600080808080807002000000000000000000000000000000008a1061104657600080fd5b88607f60020a8b0281151561105757fe5b04925070015bf0a8b1457695355fb8ac404e7a79e38310156110835761107c83612409565b935061108f565b61108c83612821565b93505b8663ffffffff168863ffffffff1685028115156110a857fe5b0491507008000000000000000000000000000000008210156110d8576110cd826128db565b607f955095506110ff565b6110e182612cdb565b90506110f960ff607f8390031660020a830482612d68565b81955095505b5050505094509492505050565b60008060008060008061111f898961318b565b9099509750896111398c607f60020a63ffffffff610f4116565b81151561114257fe5b04935070015bf0a8b1457695355fb8ac404e7a79e3841061116b5761116684612821565b611174565b61117484612409565b925087611187848b63ffffffff610f4116565b81151561119057fe5b049150866111a6576111a182613247565b6111af565b6111af826132a4565b90506111dd6111c4828b63ffffffff610f4116565b6111d88a607f60020a63ffffffff610f4116565b6111ef565b95509550505050509550959350505050565b600080808084861161120e576112058686613308565b93509350611223565b6112188587613308565b915091508082935093505b50509250929050565b701c35fedd14ffffffffffffffffffffffff602055701b0ce43b323fffffffffffffffffffffff6021557019f0028ec1ffffffffffffffffffffffff6022557018ded91f0e7fffffffffffffffffffffff6023557017d8ec7f0417ffffffffffffffffffffff6024557016ddc6556cdbffffffffffffffffffffff6025557015ecf52776a1ffffffffffffffffffffff6026557015060c256cb2ffffffffffffffffffffff602755701428a2f98d72ffffffffffffffffffffff6028557013545598e5c23fffffffffffffffffffff602955701288c4161ce1dfffffffffffffffffffff602a557011c592761c666fffffffffffffffffffff602b5570110a688680a757ffffffffffffffffffff602c55701056f1b5bedf77ffffffffffffffffffff602d55700faadceceeff8bffffffffffffffffffff602e55700f05dc6b27edadffffffffffffffffffff602f55700e67a5a25da4107fffffffffffffffffff603055700dcff115b14eedffffffffffffffffffff603155700d3e7a392431239fffffffffffffffffff603255700cb2ff529eb71e4fffffffffffffffffff603355700c2d415c3db974afffffffffffffffffff603455700bad03e7d883f69bffffffffffffffffff603555700b320d03b2c343d5ffffffffffffffffff603655700abc25204e02828dffffffffffffffffff603755700a4b16f74ee4bb207fffffffffffffffff6038557009deaf736ac1f569ffffffffffffffffff603955700976bd9952c7aa957fffffffffffffffff603a557009131271922eaa606fffffffffffffffff603b557008b380f3558668c46fffffffffffffffff603c55700857ddf0117efa215bffffffffffffffff603d557007ffffffffffffffffffffffffffffffff603e557007abbf6f6abb9d087fffffffffffffffff603f5570075af62cbac95f7dfa7fffffffffffffff60405570070d7fb7452e187ac13fffffffffffffff6041557006c3390ecc8af379295fffffffffffffff60425570067c00a3b07ffc01fd6fffffffffffffff604355700637b647c39cbb9d3d27ffffffffffffff6044557005f63b1fc104dbd39587ffffffffffffff6045557005b771955b36e12f7235ffffffffffffff60465570057b3d49dda84556d6f6ffffffffffffff60475570054183095b2c8ececf30ffffffffffffff60485570050a28be635ca2b888f77fffffffffffff6049557004d5156639708c9db33c3fffffffffffff604a557004a23105873875bd52dfdfffffffffffff604b55700471649d87199aa990756fffffffffffff604c557004429a21a029d4c1457cfbffffffffffff604d55700415bc6d6fb7dd71af2cb3ffffffffffff604e557003eab73b3bbfe282243ce1ffffffffffff604f557003c1771ac9fb6b4c18e229ffffffffffff605055700399e96897690418f785257fffffffffff605155700373fc456c53bb779bf0ea9fffffffffff60525570034f9e8e490c48e67e6ab8bfffffffffff60535570032cbfd4a7adc790560b3337ffffffffff60545570030b50570f6e5d2acca94613ffffffffff6055557002eb40f9f620fda6b56c2861ffffffffff6056557002cc8340ecb0d0f520a6af58ffffffffff6057557002af09481380a0a35cf1ba02ffffffffff605855700292c5bdd3b92ec810287b1b3fffffffff605955700277abdcdab07d5a77ac6d6b9fffffffff605a5570025daf6654b1eaa55fd64df5efffffffff605b55700244c49c648baa98192dce88b7ffffffff605c5570022ce03cd5619a311b2471268bffffffff605d55700215f77c045fbe885654a44a0fffffffff605e557001ffffffffffffffffffffffffffffffff605f557001eaefdbdaaee7421fc4d3ede5ffffffff6060557001d6bd8b2eb257df7e8ca57b09bfffffff6061557001c35fedd14b861eb0443f7f133fffffff6062557001b0ce43b322bcde4a56e8ada5afffffff60635570019f0028ec1fff007f5a195a39dfffffff60645570018ded91f0e72ee74f49b15ba527ffffff60655570017d8ec7f04136f4e5615fd41a63ffffff60665570016ddc6556cdb84bdc8d12d22e6fffffff60675570015ecf52776a1155b5bd8395814f7fffff60685570015060c256cb23b3b3cc3754cf40ffffff6069557001428a2f98d728ae223ddab715be3fffff606a5570013545598e5c23276ccf0ede68034fffff606b557001288c4161ce1d6f54b7f61081194fffff606c5570011c592761c666aa641d5a01a40f17ffff606d55700110a688680a7530515f3e6e6cfdcdffff606e557001056f1b5bedf75c6bcb2ce8aed428ffff606f556ffaadceceeff8a0890f3875f008277fff6070556ff05dc6b27edad306388a600f6ba0bfff6071556fe67a5a25da41063de1495d5b18cdbfff6072556fdcff115b14eedde6fc3aa5353f2e4fff6073556fd3e7a3924312399f9aae2e0f868f8fff6074556fcb2ff529eb71e41582cccd5a1ee26fff6075556fc2d415c3db974ab32a51840c0b67edff6076556fbad03e7d883f69ad5b0a186184e06bff6077556fb320d03b2c343d4829abd6075f0cc5ff6078556fabc25204e02828d73c6e80bcdb1a95bf6079556fa4b16f74ee4bb2040a1ec6c15fbbf2df607a556f9deaf736ac1f569deb1b5ae3f36c130f607b556f976bd9952c7aa957f5937d790ef65037607c556f9131271922eaa6064b73a22d0bd4f2bf607d556f8b380f3558668c46c91c49a2f8e967b9607e556f857ddf0117efa215952912839f6473e66000607f5b0155565b6f60e393c68d20b1bd09deaabc0373b9c560809081556f5f8f46e4854120989ed94719fb4c20116081556f5e479ebb9129fb1b7e72a648f992b6066082556f5d0bd23fe42dfedde2e9586be12b85fe6083556f5bdb29ddee979308ddfca81aeeb8095a6084556f5ab4fd8a260d2c7e2c0d2afcf0009dad6085556f5998b31359a55d48724c65cf090012216086556f5885bcad2b322dfc43e8860f9c018cf56087556f577b97aa1fe222bb452fdf111b1f0be26088556f5679cb5e3575632e5baa27e2b949f7046089556f557fe8241b3a31c83c732f1cdff4a1c5608a556f548d868026504875d6e59bbe95fc2a6b608b556f53a2465ce347cf34d05a867c17dd3088608c556f52bdce5dcd4faed59c7f5511cf8f8acc608d556f51dfcb453c07f8da817606e7885f7c3e608e556f5107ef6b0a5a2be8f8ff15590daa3cce608f556f5035f241d6eae0cd7bacba119993de7b6090556f4f698fe90d5b53d532171e1210164c666091556f4ea288ca297a0e6a09a0eee240e16c856092556f4de0a13fdcf5d4213fc398ba6e3becde6093556f4d23a145eef91fec06b06140804c48086094556f4c6b5430d4c1ee5526473db4ae0f11de6095556f4bb7886c240562eba11f4963a53b42406096556f4b080f3f1cb491d2d521e0ea4583521e6097556f4a5cbc96a05589cb4d86be1db31683646098556f49b566d40243517658d78c33162d6ece6099556f4911e6a02e5507a30f947383fd9a3276609a556f487216c2b31be4adc41db8a8d5cc0c88609b556f47d5d3fc4a7a1b188cd3d788b5c5e9fc609c556f473cfce4871a2c40bc4f9e1c32b955d0609d556f46a771ca578ab878485810e285e31c67609e556f4615149718aed4c258c373dc676aa72d609f556f4585c8b3f8fe489c6e1833ca4787138460a0556f44f972f174e41e5efb7e9d63c29ce73560a1556f446ff970ba86d8b00beb05ecebf3c4dc60a2556f43e9438ec88971812d6f198b5ccaad9660a3556f436539d11ff7bea657aeddb394e809ef60a4556f42e3c5d3e5a913401d86f66db5d81c2c60a5556f4264d2395303070ea726cbe98df6217460a6556f41e84a9a593bb7194c3a6349ecae4eea60a7556f416e1b785d13eba07a08f3f18876a5ab60a8556f40f6322ff389d423ba9dd7e7e7b7e80960a9556f40807cec8a466880ecf4184545d240a460aa556f400cea9ce88a8d3ae668e8ea0d9bf07f60ab556f3f9b6ae8772d4c55091e0ed7dfea0ac160ac556f3f2bee253fd84594f54bcaafac383a1360ad556f3ebe654e95208bb9210c575c081c595860ae556f3e52c1fc5665635b78ce1f05ad53c08660af556f3de8f65ac388101ddf718a6f5c1eff6560b0556f3d80f522d59bd0b328ca012df4cd2d4960b1556f3d1ab193129ea72b23648a161163a85a60b2556f3cb61f68d32576c135b95cfb53f76d7560b3556f3c5332d9f1aae851a3619e77e4cc847360b4556f3bf1e08edbe2aa109e1525f65759ef7360b5556f3b921d9cff13fa2c197746a3dfc4918f60b6556f3b33df818910bfc1a5aefb8f63ae2ac460b7556f3ad71c1c77e34fa32a9f184967eccbf660b8556f3a7bc9abf2c5bb53e2f7384a8a16521a60b9556f3a21dec7e76369783a68a0c6385a1c5760ba556f39c9525de6c9cdf7c1c157ca4a7a6ee360bb556f39721bad3dc85d1240ff0190e0adaac360bc556f391c324344d3248f0469eb28dd3d77e060bd556f38c78df7e3c796279fb4ff84394ab3da60be556f387426ea4638ae9aae08049d3554c20a60bf556f3821f57dbd2763256c1a99bbd205137860c0556f37d0f256cb46a8c92ff62fbbef28969860c1556f37811658591ffc7abdd1feaf3cef9b7360c2556f37325aa10e9e82f7df0f380f7997154b60c3556f36e4b888cfb408d873b9a80d439311c660c4556f3698299e59f4bb9de645fc9b08c64cca60c5556f364ca7a5012cb603023b57dd3ebfd50d60c6556f36022c928915b778ab1b06aaee7e61d460c7556f35b8b28d1a73dc27500ffe35559cc02860c8556f357033e951fe250ec5eb4e60955132d760c9556f3528ab2867934e3a21b5412e4c4f888160ca556f34e212f66c55057f9676c80094a61d5960cb556f349c66289e5b3c4b540c24f42fa4b9bb60cc556f34579fbbd0c733a9c8d6af6b0f7d00f760cd556f3413bad2e712288b924b5882b5b369bf60ce556f33d0b2b56286510ef730e213f71f12e960cf556f338e82ce00e2496262c64457535ba1a160d0556f334d26a96b373bb7c2f8ea1827f27a9260d1556f330c99f4f4211469e00b3e18c31475ea60d2556f32ccd87d6486094999c7d5e6f33237d860d3556f328dde2dd617b6665a2e8556f250c1af60d4556f324fa70e9adc270f8262755af5a99af960d5556f32122f443110611ca51040f41fa6e1e360d6556f31d5730e42c0831482f0f1485c4263d860d7556f31996ec6b07b4a83421b5ebc4ab4e1f160d8556f315e1ee0a68ff46bb43ec2b85032e87660d9556f31237fe7bc4deacf6775b9efa1a145f860da556f30e98e7f1cc5a356e44627a6972ea2ff60db556f30b04760b8917ec74205a3002650ec0560dc556f3077a75c803468e9132ce0cf3224241d60dd556f303fab57a6a275c36f19cda9bace667a60de556f3008504beb8dcbd2cf3bc1f6d5a064f060df556f2fd19346ed17dac61219ce0c2c5ac4b060e0556f2f9b7169808c324b5852fd3d54ba971460e1556f2f65e7e711cf4b064eea9c08cbdad57460e2556f2f30f405093042ddff8a251b6bf6d10360e3556f2efc931a3750f2e8bfe323edfe03757460e4556f2ec8c28e46dbe56d98685278339400cb60e5556f2e957fd933c3926d8a599b602379b85160e6556f2e62c882c7c9ed4473412702f08ba0e560e7556f2e309a221c12ba361e3ed695167feee260e8556f2dfef25d1f865ae18dd07cfea4bcea1060e9556f2dcdcee821cdc80decc02c44344aeb3160ea556f2d9d2d8562b34944d0b201bb87260c8360eb556f2d6d0c04a5b62a2c42636308669b729a60ec556f2d3d6842c9a235517fc5a0332691528f60ed556f2d0e402963fe1ea2834abc408c437c1060ee556f2cdf91ae602647908aff975e4d6a2a8c60ef556f2cb15ad3a1eb65f6d74a75da09a1b6c560f0556f2c8399a6ab8e9774d6fcff373d21072760f1556f2c564c4046f64edba6883ca06bbc453560f2556f2c2970c431f952641e05cb493e23eed360f3556f2bfd0560cd9eb14563bc7c0732856c1860f4556f2bd1084ed0332f7ff4150f9d0ef41a2c60f5556f2ba577d0fa1628b76d040b12a82492fb60f6556f2b7a5233cd21581e855e89dc2f1e8a9260f7556f2b4f95cd46904d05d72bdcde337d9cc760f8556f2b2540fc9b4d9abba3faca669191467560f9556f2afb5229f68d0830d8be8adb0a0db70f60fa556f2ad1c7c63a9b294c5bc73a3ba3ab7a2b60fb556f2aa8a04ac3cbe1ee1c9c86361465dbb860fc556f2a7fda392d725a44a2c8aeb9ab35430d60fd556f2a57741b18cde618717792b4faa216db60fe556f2a2f6c81f5d84dd950a35626d6d5503a90607f6119fe565b6000808080806fd3094c70f034de4b96ff7d5b6f99fcd88610612458576f4000000000000000000000000000000093909301926fd3094c70f034de4b96ff7d5b6f99fcd8607f60020a87020495505b6fa45af1e1f40c333b3de1db4dd55f29a786106124a1576f2000000000000000000000000000000093909301926fa45af1e1f40c333b3de1db4dd55f29a7607f60020a87020495505b6f910b022db7ae67ce76b441c27035c6a186106124ea576f1000000000000000000000000000000093909301926f910b022db7ae67ce76b441c27035c6a1607f60020a87020495505b6f88415abbe9a76bead8d00cf112e4d4a88610612533576f0800000000000000000000000000000093909301926f88415abbe9a76bead8d00cf112e4d4a8607f60020a87020495505b6f84102b00893f64c705e841d5d4064bd3861061257c576f0400000000000000000000000000000093909301926f84102b00893f64c705e841d5d4064bd3607f60020a87020495505b6f8204055aaef1c8bd5c3259f4822735a286106125c5576f0200000000000000000000000000000093909301926f8204055aaef1c8bd5c3259f4822735a2607f60020a87020495505b6f810100ab00222d861931c15e39b44e99861061260e576f0100000000000000000000000000000093909301926f810100ab00222d861931c15e39b44e99607f60020a87020495505b6f808040155aabbbe9451521693554f7338610612656576e80000000000000000000000000000093909301926f808040155aabbbe9451521693554f733607f60020a87020495505b6f7fffffffffffffffffffffffffffffff1986019250829150607f60020a828002049050608060020a8381038302049390930192607f60020a8282020491507002000000000000000000000000000000006faaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa8490038302049390930192607f60020a8282020491507003000000000000000000000000000000006f999999999999999999999999999999998490038302049390930192607f60020a8282020491507004000000000000000000000000000000006f924924924924924924924924924924928490038302049390930192607f60020a8282020491507005000000000000000000000000000000006f8e38e38e38e38e38e38e38e38e38e38e8490038302049390930192607f60020a8282020491507006000000000000000000000000000000006f8ba2e8ba2e8ba2e8ba2e8ba2e8ba2e8b8490038302049390930192607f60020a8282020491507007000000000000000000000000000000006f89d89d89d89d89d89d89d89d89d89d898490038302049390930192607f60020a8282020491507008000000000000000000000000000000006f888888888888888888888888888888888490038302049390930195945050505050565b6000808080608060020a851061285957612841607f60020a865b046133a4565b60ff8116600281900a90960495607f60020a02935091505b607f60020a8511156128ab5750607f5b60008160ff1611156128ab57607f60020a858002049450608060020a85106128a2576002948590049460ff600019830116900a92909201915b60001901612869565b6f05b9de1d10bf4103d647b0955897ba806f03f80fe03f80fe03f80fe03f80fe03f884020493505b505050919050565b6000670168244fdac78000607f60020a6f0fffffffffffffffffffffffffffffff84168080028290048082028390048083028490049485026710e1b3be415a00009092026705a0913f6b1e000091909102010192909181830204905080664807432bc180000283019250607f60020a82820281151561295657fe5b04905080660c0135dca040000283019250607f60020a82820281151561297857fe5b049050806601b707b1cdc0000283019250607f60020a82820281151561299a57fe5b049050806536e0f639b8000283019250607f60020a8282028115156129bb57fe5b04905080650618fee9f8000283019250607f60020a8282028115156129dc57fe5b04905080649c197dcc000283019250607f60020a8282028115156129fc57fe5b04905080640e30dce4000283019250607f60020a828202811515612a1c57fe5b0490508064012ebd13000283019250607f60020a828202811515612a3c57fe5b049050806317499f000283019250607f60020a828202811515612a5b57fe5b049050806301a9d4800283019250607f60020a828202811515612a7a57fe5b04905080621c63800283019250607f60020a828202811515612a9857fe5b049050806201c6380283019250607f60020a828202811515612ab657fe5b04905080611ab80283019250607f60020a828202811515612ad357fe5b0490508061017c0283019250607f60020a828202811515612af057fe5b0490508060140283019250607f60020a828202811515612b0c57fe5b6721c3677c82b40000919004938401048201607f60020a019290506f10000000000000000000000000000000851615612b695770018ebef9eac820ae8682b9793ac6d1e7767001c3d6a24ed82218787d624d3e5eba95f984020492505b6f20000000000000000000000000000000851615612bab577001368b2fc6f9609fe7aceb46aa619baed470018ebef9eac820ae8682b9793ac6d1e77884020492505b6f40000000000000000000000000000000851615612bec576fbc5ab1b16779be3575bd8f0520a9f21f7001368b2fc6f9609fe7aceb46aa619baed584020492505b607f60020a851615612c20576f454aaa8efe072e7f6ddbab84b40a55c96fbc5ab1b16779be3575bd8f0520a9f21e84020492505b608060020a851615612c54576f0960aadc109e7a3bf4578099615711ea6f454aaa8efe072e7f6ddbab84b40a55c584020492505b700200000000000000000000000000000000851615612c94576e2bf84208204f5977f9a8cf01fdce3d6f0960aadc109e7a3bf4578099615711d784020492505b700400000000000000000000000000000000851615612cd2576d03c6ab775dd0b95b4cbee7e65d116e2bf84208204f5977f9a8cf01fdc30784020492505b50909392505050565b60006020607f825b8160ff168360010160ff161015612d2857600260ff8484011604905084600060ff831660808110612d1057fe5b015410612d1f57809250612d23565b8091505b612ce3565b84600060ff841660808110612d3957fe5b015410612d48578193506128d3565b84600060ff851660808110612d5957fe5b015410610106578293506128d3565b6000806000849150600090508360ff168583029060020a90049150816f03442c4e6074a82f1797f72ac000000002810190508360ff168583029060020a90049150816f0116b96f757c380fb287fd0e4000000002810190508360ff168583029060020a90049150816e45ae5bdd5f0e03eca1ff439000000002810190508360ff168583029060020a90049150816e0defabf91302cd95b9ffda5000000002810190508360ff168583029060020a90049150816e02529ca9832b22439efff9b800000002810190508360ff168583029060020a90049150816d54f1cf12bd04e516b6da8800000002810190508360ff168583029060020a90049150816d0a9e39e257a09ca2d6db5100000002810190508360ff168583029060020a90049150816d012e066e7b839fa050c30900000002810190508360ff168583029060020a90049150816c1e33d7d926c329a1ad1a80000002810190508360ff168583029060020a90049150816c02bee513bdb4a6b19b5f80000002810190508360ff168583029060020a90049150816b3a9316fa79b88eccf2a0000002810190508360ff168583029060020a90049150816b048177ebe1fa81237520000002810190508360ff168583029060020a90049150816a5263fe90242dcbacf0000002810190508360ff168583029060020a90049150816a057e22099c030d9410000002810190508360ff168583029060020a90049150816957e22099c030d941000002810190508360ff168583029060020a900491508169052b6b5456997631000002810190508360ff168583029060020a9004915081684985f67696bf74800002810190508360ff168583029060020a90049150816803dea12ea99e49800002810190508360ff168583029060020a90049150816731880f2214b6e00002810190508360ff168583029060020a900491508167025bcff56eb3600002810190508360ff168583029060020a9004915081661b722e10ab100002810190508360ff168583029060020a90049150816601317c7007700002810190508360ff168583029060020a9004915081650cba84aafa0002810190508360ff168583029060020a90049150816482573a0a0002810190508360ff168583029060020a90049150816405035ad90002810190508360ff168583029060020a9004915081632f881b0002810190508360ff168583029060020a90049150816301b2934002810190508360ff168583029060020a9004915081620efc4002810190508360ff168583029060020a9004915081617fe002810190508360ff168583029060020a900491508161042002810190508360ff168583029060020a9004915081602102810190508360ff168583029060020a9004915081600102810190508360ff1660019060020a02856f0688589cc0e9505e2f2fee55800000008381151561317f57fe5b04010195945050505050565b600080600080608060020a86111580156131a95750608060020a8511155b156131b957858593509350611223565b608060020a8610156131e55784608060020a87028115156131d657fe5b04608060020a93509350611223565b608060020a85101561321157608060020a86608060020a870281151561320757fe5b0493509350611223565b84861161321e5784613220565b855b9150613230607f60020a8361283b565b60ff1660020a958690049695909404949350505050565b60006f2f16ac6c59de6f8d5d6f63c1482a7c868211613270576132698261340d565b905061329f565b817f400000000000000000000000000000000000000000000000000000000000000081151561329b57fe5b0490505b919050565b60006f2f16ac6c59de6f8d5d6f63c1482a7c8682116132c65761326982613870565b7001af16ac6c59de6f8d5d6f63c1482a7c8082116132e75761326982613cf1565b706b22d43e72c326539cceeef8bb48f255ff82116101065761326982613d6f565b60008060008060007d10c6f7a0b5ed8d36b4c7f34938583621fafc8b0079a2834d26fa3fcc9ea9871115613379577d10c6f7a0b5ed8d36b4c7f34938583621fafc8b0079a2834d26fa3fcc9eaa87046001019250828781151561336757fe5b049650828681151561337557fe5b0495505b613391620f4240880261338c8989610fc5565b613dfc565b97620f4240899003975095505050505050565b600080806101008410156133d3575b60018411156133ce57600290930492600191909101906133b3565b610fbe565b5060805b60008160ff161115610fbe5760ff811660020a84106134005760ff811660020a90930492908117905b600260ff909116046133d7565b60008181607f60020a82800204915070014d29a73a6e7b02c3668c7b0880000000820201607f60020a8483020491507002504a0cd9a7f7215b60f9be4800000000820201607f60020a848302049150700484d0a1191c0ead267967c7a4a0000000820201607f60020a84830204915070095ec580d7e8427a4baf26a90a00000000820201607f60020a848302049150701440b0be1615a47dba6e5b3b1f10000000820201607f60020a848302049150702d207601f46a99b4112418400000000000820201607f60020a8483020491507066ebaac4c37c622dd8288a7eb1b2000000820201607f60020a84830204915070ef17240135f7dbd43a1ba10cf200000000820201607f60020a848302049150710233c33c676a5eb2416094a87b3657000000820201607f60020a848302049150710541cde48bc0254bed49a9f8700000000000820201607f60020a848302049150710cae1fad2cdd4d4cb8d73abca0d19a400000820201607f60020a848302049150711edb2aa2f760d15c41ceedba956400000000820201607f60020a848302049150714ba8d20d2dabd386c9529659841a2e200000820201607f60020a84830204915071bac08546b867cdaa20000000000000000000820201607f60020a8483020491507201cfa8e70c03625b9db76c8ebf5bbf24820000820201607f60020a8483020491507204851d99f82060df265f3309b26f8200000000820201607f60020a848302049150720b550d19b129d270c44f6f55f027723cbb0000820201607f60020a848302049150721c877dadc761dc272deb65d4b0000000000000820201607f60020a8483020491507248178ece97479f33a77f2ad22a81b64406c000820201607f60020a84830204915072b6ca8268b9d810fedf6695ef2f8a6c00000000820201607f60020a8483020491507301d0e76631a5b05d007b8cb72a7c7f11ec36e000820201607f60020a8483020491507304a1c37bd9f85fd9c6c780000000000000000000820201607f60020a848302049150730bd8369f1b702bf491e2ebfcee08250313b65400820201607f60020a848302049150731e5c7c32a9f6c70ab2cb59d9225764d400000000820201607f60020a848302049150734dff5820e165e910f95120a708e742496221e600820201607f60020a84830204915073c8c8f66db1fced378ee50e536000000000000000820201607f60020a848302049150740205db8dffff45bfa2938f128f599dbf16eb11d880820201607f60020a84830204915074053a044ebd984351493e1786af38d39a0800000000820201607f60020a848302049150740d86dae2a4cc0f47633a544479735869b487b59c40820201607f60020a84830204915074231000000000000000000000000000000000000000820201607f60020a848302049150745b0485a76f6646c2039db1507cdd51b08649680822820201607f60020a84830204915074ec983c46c49545bc17efa6b5b0055e242200000000820201607f60020a846fde1bc4d19efcac82445da75b0000000083040101949350505050565b600081607f60020a8181036fde1bc4d19efcac82445da75b00000000029082800204915070014d29a73a6e7b02c3668c7b0880000000820201607f60020a8483020491507002504a0cd9a7f7215b60f9be480000000082029003607f60020a848302049150700484d0a1191c0ead267967c7a4a0000000820201607f60020a84830204915070095ec580d7e8427a4baf26a90a0000000082029003607f60020a848302049150701440b0be1615a47dba6e5b3b1f10000000820201607f60020a848302049150702d207601f46a99b411241840000000000082029003607f60020a8483020491507066ebaac4c37c622dd8288a7eb1b2000000820201607f60020a84830204915070ef17240135f7dbd43a1ba10cf20000000082029003607f60020a848302049150710233c33c676a5eb2416094a87b3657000000820201607f60020a848302049150710541cde48bc0254bed49a9f870000000000082029003607f60020a848302049150710cae1fad2cdd4d4cb8d73abca0d19a400000820201607f60020a848302049150711edb2aa2f760d15c41ceedba95640000000082029003607f60020a848302049150714ba8d20d2dabd386c9529659841a2e200000820201607f60020a84830204915071bac08546b867cdaa2000000000000000000082029003607f60020a8483020491507201cfa8e70c03625b9db76c8ebf5bbf24820000820201607f60020a8483020491507204851d99f82060df265f3309b26f820000000082029003607f60020a848302049150720b550d19b129d270c44f6f55f027723cbb0000820201607f60020a848302049150721c877dadc761dc272deb65d4b000000000000082029003607f60020a8483020491507248178ece97479f33a77f2ad22a81b64406c000820201607f60020a84830204915072b6ca8268b9d810fedf6695ef2f8a6c0000000082029003607f60020a8483020491507301d0e76631a5b05d007b8cb72a7c7f11ec36e000820201607f60020a8483020491507304a1c37bd9f85fd9c6c78000000000000000000082029003607f60020a848302049150730bd8369f1b702bf491e2ebfcee08250313b65400820201607f60020a848302049150731e5c7c32a9f6c70ab2cb59d9225764d40000000082029003607f60020a848302049150734dff5820e165e910f95120a708e742496221e600820201607f60020a84830204915073c8c8f66db1fced378ee50e53600000000000000082029003607f60020a848302049150740205db8dffff45bfa2938f128f599dbf16eb11d880820201607f60020a84830204915074053a044ebd984351493e1786af38d39a080000000082029003607f60020a848302049150740d86dae2a4cc0f47633a544479735869b487b59c40820201607f60020a8483020491507423100000000000000000000000000000000000000082029003607f60020a848302049150745b0485a76f6646c2039db1507cdd51b08649680822820201607f60020a84830204915074ec983c46c49545bc17efa6b5b0055e242200000000820290036fde1bc4d19efcac82445da75b00000000815b04949350505050565b60006f2f16ac6c59de6f8d5d6f63c1482a7c861982016f03060c183060c183060c183060c18306808204908181029060018301028480608085818110613d3357fe5b01549150608060018601818110613d4657fe5b01546f03060c183060c183060c183060c183069487030295909203029390930104949350505050565b600080600070015bf0a8b1457695355fb8ac404e7a79e38410613d9a57613d9584612821565b613da3565b613da384612409565b915070015bf0a8b1457695355fb8ac404e7a79e38210613dcb57613dc682612821565b613dd4565b613dd482612409565b905083607f60020a83607f60020a8402811515613ded57fe5b048385030102811515613ce857fe5b60006002820482038284811515613e0f57fe5b06811515613e1957fe5b048284811515613e2557fe5b0401939250505056004552525f494e56414c49445f535550504c5900000000000000000000000000004552525f494e56414c49445f524553455256455f42414c414e43450000000000a165627a7a723058203aa61a409e729a09805c2713f062e39bb7a14053960c848bb2d7636183d573a70029", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x106 JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x1DA6BBFB DUP2 EQ PUSH2 0x10B JUMPI DUP1 PUSH4 0x29A00E7C EQ PUSH2 0x144 JUMPI DUP1 PUSH4 0x2F55BDB5 EQ PUSH2 0x16B JUMPI DUP1 PUSH4 0x35B49AF4 EQ PUSH2 0x192 JUMPI DUP1 PUSH4 0x48D73FED EQ PUSH2 0x144 JUMPI DUP1 PUSH4 0x49F9B0F7 EQ PUSH2 0x1B9 JUMPI DUP1 PUSH4 0x54FD4D50 EQ PUSH2 0x1E0 JUMPI DUP1 PUSH4 0x65098BB3 EQ PUSH2 0x20C JUMPI DUP1 PUSH4 0x76CF0B56 EQ PUSH2 0x23A JUMPI DUP1 PUSH4 0x79C1B450 EQ PUSH2 0x20C JUMPI DUP1 PUSH4 0x8074590A EQ PUSH2 0x261 JUMPI DUP1 PUSH4 0x94491FAB EQ PUSH2 0x288 JUMPI DUP1 PUSH4 0x9D114108 EQ PUSH2 0x20C JUMPI DUP1 PUSH4 0xA11AA1B4 EQ PUSH2 0x2B6 JUMPI DUP1 PUSH4 0xABFD231D EQ PUSH2 0x192 JUMPI DUP1 PUSH4 0xE1C7392A EQ PUSH2 0x2FD JUMPI DUP1 PUSH4 0xEBBB2158 EQ PUSH2 0x314 JUMPI DUP1 PUSH4 0xF3250FE2 EQ PUSH2 0x33B JUMPI DUP1 PUSH4 0xF732F1C9 EQ PUSH2 0x1B9 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x117 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x132 PUSH1 0x4 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH4 0xFFFFFFFF PUSH1 0x44 CALLDATALOAD AND PUSH1 0x64 CALLDATALOAD PUSH2 0x362 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x150 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x132 PUSH1 0x4 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH4 0xFFFFFFFF PUSH1 0x44 CALLDATALOAD AND PUSH1 0x64 CALLDATALOAD PUSH2 0x379 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x177 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x132 PUSH1 0x4 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH4 0xFFFFFFFF PUSH1 0x44 CALLDATALOAD AND PUSH1 0x64 CALLDATALOAD PUSH2 0x387 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x19E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x132 PUSH1 0x4 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH4 0xFFFFFFFF PUSH1 0x44 CALLDATALOAD AND PUSH1 0x64 CALLDATALOAD PUSH2 0x524 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1C5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x132 PUSH1 0x4 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH4 0xFFFFFFFF PUSH1 0x44 CALLDATALOAD AND PUSH1 0x64 CALLDATALOAD PUSH2 0x532 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1EC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1F5 PUSH2 0x540 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0xFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x218 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x132 PUSH1 0x4 CALLDATALOAD PUSH4 0xFFFFFFFF PUSH1 0x24 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x44 CALLDATALOAD SWAP1 PUSH1 0x64 CALLDATALOAD AND PUSH1 0x84 CALLDATALOAD PUSH2 0x545 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x246 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x132 PUSH1 0x4 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH4 0xFFFFFFFF PUSH1 0x44 CALLDATALOAD AND PUSH1 0x64 CALLDATALOAD PUSH2 0x55E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x26D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x132 PUSH1 0x4 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH4 0xFFFFFFFF PUSH1 0x44 CALLDATALOAD AND PUSH1 0x64 CALLDATALOAD PUSH2 0x763 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x294 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x132 PUSH1 0x4 CALLDATALOAD PUSH4 0xFFFFFFFF PUSH1 0x24 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x44 CALLDATALOAD SWAP1 PUSH1 0x64 CALLDATALOAD AND PUSH1 0x84 CALLDATALOAD PUSH2 0x904 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2C2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2DA PUSH1 0x4 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH1 0x44 CALLDATALOAD PUSH1 0x64 CALLDATALOAD PUSH1 0x84 CALLDATALOAD PUSH2 0xAA0 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH4 0xFFFFFFFF SWAP4 DUP5 AND DUP2 MSTORE SWAP2 SWAP1 SWAP3 AND PUSH1 0x20 DUP3 ADD MSTORE DUP2 MLOAD SWAP1 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x309 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x312 PUSH2 0xC40 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x320 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x132 PUSH1 0x4 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH4 0xFFFFFFFF PUSH1 0x44 CALLDATALOAD AND PUSH1 0x64 CALLDATALOAD PUSH2 0xC52 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x347 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x132 PUSH1 0x4 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH4 0xFFFFFFFF PUSH1 0x44 CALLDATALOAD AND PUSH1 0x64 CALLDATALOAD PUSH2 0xDF9 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x370 DUP6 DUP6 DUP6 DUP6 PUSH2 0xC52 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x370 DUP6 DUP6 DUP6 DUP6 PUSH2 0xDF9 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP1 DUP1 DUP1 DUP10 GT PUSH2 0x3D2 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3E2F DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP9 GT PUSH2 0x418 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3E4F DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP8 PUSH4 0xFFFFFFFF AND GT DUP1 ISZERO PUSH2 0x437 JUMPI POP PUSH3 0x1E8480 PUSH4 0xFFFFFFFF DUP9 AND GT ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x48D JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F524154494F00000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP6 ISZERO ISZERO PUSH2 0x49D JUMPI PUSH1 0x0 SWAP5 POP PUSH2 0x518 JUMP JUMPDEST PUSH4 0xFFFFFFFF DUP8 AND PUSH3 0xF4240 EQ ISZERO PUSH2 0x4D0 JUMPI DUP8 PUSH2 0x4BF DUP8 DUP12 PUSH4 0xFFFFFFFF PUSH2 0xF41 AND JUMP JUMPDEST DUP2 ISZERO ISZERO PUSH2 0x4C8 JUMPI INVALID JUMPDEST DIV SWAP5 POP PUSH2 0x518 JUMP JUMPDEST PUSH2 0x4E0 DUP9 DUP8 PUSH4 0xFFFFFFFF PUSH2 0xFC5 AND JUMP JUMPDEST SWAP2 POP PUSH2 0x4F1 DUP3 DUP10 DUP10 PUSH3 0xF4240 PUSH2 0x1022 JUMP JUMPDEST SWAP1 SWAP5 POP SWAP3 POP PUSH1 0xFF DUP4 AND PUSH2 0x50A DUP11 DUP7 PUSH4 0xFFFFFFFF PUSH2 0xF41 AND JUMP JUMPDEST SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP1 POP DUP9 DUP2 SUB SWAP5 POP JUMPDEST POP POP POP POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x370 DUP6 DUP6 DUP6 DUP6 PUSH2 0x763 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x370 DUP6 DUP6 DUP6 DUP6 PUSH2 0x55E JUMP JUMPDEST PUSH1 0x8 DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x554 DUP7 DUP7 DUP7 DUP7 DUP7 PUSH2 0x904 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP1 DUP1 DUP1 DUP1 DUP11 GT PUSH2 0x5AA JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3E2F DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP10 GT PUSH2 0x5F0 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3E4F DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP9 PUSH4 0xFFFFFFFF AND GT DUP1 ISZERO PUSH2 0x60F JUMPI POP PUSH3 0xF4240 PUSH4 0xFFFFFFFF DUP10 AND GT ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x665 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F574549474854000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP10 DUP8 GT ISZERO PUSH2 0x6BD JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F414D4F554E540000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP7 ISZERO ISZERO PUSH2 0x6CD JUMPI PUSH1 0x0 SWAP6 POP PUSH2 0x756 JUMP JUMPDEST DUP10 DUP8 EQ ISZERO PUSH2 0x6DD JUMPI DUP9 SWAP6 POP PUSH2 0x756 JUMP JUMPDEST PUSH4 0xFFFFFFFF DUP9 AND PUSH3 0xF4240 EQ ISZERO PUSH2 0x710 JUMPI DUP10 PUSH2 0x6FF DUP11 DUP10 PUSH4 0xFFFFFFFF PUSH2 0xF41 AND JUMP JUMPDEST DUP2 ISZERO ISZERO PUSH2 0x708 JUMPI INVALID JUMPDEST DIV SWAP6 POP PUSH2 0x756 JUMP JUMPDEST DUP7 DUP11 SUB SWAP3 POP PUSH2 0x724 DUP11 DUP5 PUSH3 0xF4240 DUP12 PUSH2 0x1022 JUMP JUMPDEST SWAP1 SWAP6 POP SWAP4 POP PUSH2 0x739 DUP10 DUP7 PUSH4 0xFFFFFFFF PUSH2 0xF41 AND JUMP JUMPDEST SWAP2 POP POP PUSH1 0xFF DUP4 AND PUSH1 0x2 EXP DUP9 MUL DUP5 DUP2 DUP4 SUB DUP2 ISZERO ISZERO PUSH2 0x752 JUMPI INVALID JUMPDEST DIV SWAP6 POP JUMPDEST POP POP POP POP POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP1 DUP1 DUP1 DUP1 DUP11 GT PUSH2 0x7AF JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3E2F DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP10 GT PUSH2 0x7F5 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3E4F DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP9 PUSH4 0xFFFFFFFF AND GT DUP1 ISZERO PUSH2 0x814 JUMPI POP PUSH3 0x1E8480 PUSH4 0xFFFFFFFF DUP10 AND GT ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x86A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F524154494F00000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP10 DUP8 GT ISZERO PUSH2 0x8C2 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F414D4F554E540000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP7 ISZERO ISZERO PUSH2 0x8D2 JUMPI PUSH1 0x0 SWAP6 POP PUSH2 0x756 JUMP JUMPDEST DUP10 DUP8 EQ ISZERO PUSH2 0x8E2 JUMPI DUP9 SWAP6 POP PUSH2 0x756 JUMP JUMPDEST PUSH4 0xFFFFFFFF DUP9 AND PUSH3 0xF4240 EQ ISZERO PUSH2 0x710 JUMPI DUP10 PUSH2 0x6FF DUP9 DUP12 PUSH4 0xFFFFFFFF PUSH2 0xF41 AND JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP12 GT DUP1 ISZERO PUSH2 0x91D JUMPI POP PUSH1 0x0 DUP10 GT JUMPDEST ISZERO ISZERO PUSH2 0x961 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3E4F DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP11 PUSH4 0xFFFFFFFF AND GT DUP1 ISZERO PUSH2 0x980 JUMPI POP PUSH3 0xF4240 PUSH4 0xFFFFFFFF DUP12 AND GT ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x992 JUMPI POP PUSH1 0x0 DUP9 PUSH4 0xFFFFFFFF AND GT JUMPDEST DUP1 ISZERO PUSH2 0x9A7 JUMPI POP PUSH3 0xF4240 PUSH4 0xFFFFFFFF DUP10 AND GT ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x9FD JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F574549474854000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP8 PUSH4 0xFFFFFFFF AND DUP11 PUSH4 0xFFFFFFFF AND EQ ISZERO PUSH2 0xA42 JUMPI PUSH2 0xA21 DUP12 DUP9 PUSH4 0xFFFFFFFF PUSH2 0xFC5 AND JUMP JUMPDEST PUSH2 0xA31 DUP11 DUP10 PUSH4 0xFFFFFFFF PUSH2 0xF41 AND JUMP JUMPDEST DUP2 ISZERO ISZERO PUSH2 0xA3A JUMPI INVALID JUMPDEST DIV SWAP6 POP PUSH2 0xA92 JUMP JUMPDEST PUSH2 0xA52 DUP12 DUP9 PUSH4 0xFFFFFFFF PUSH2 0xFC5 AND JUMP JUMPDEST SWAP3 POP PUSH2 0xA60 DUP4 DUP13 DUP13 DUP12 PUSH2 0x1022 JUMP JUMPDEST SWAP1 SWAP6 POP SWAP4 POP PUSH2 0xA75 DUP10 DUP7 PUSH4 0xFFFFFFFF PUSH2 0xF41 AND JUMP JUMPDEST SWAP2 POP POP PUSH1 0xFF DUP4 AND PUSH1 0x2 EXP DUP9 MUL DUP5 DUP2 DUP4 SUB DUP2 ISZERO ISZERO PUSH2 0xA8E JUMPI INVALID JUMPDEST DIV SWAP6 POP JUMPDEST POP POP POP POP POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 DUP8 DUP10 EQ ISZERO PUSH2 0xB06 JUMPI PUSH1 0x0 DUP10 GT DUP1 PUSH2 0xABD JUMPI POP PUSH1 0x0 DUP8 GT JUMPDEST ISZERO ISZERO PUSH2 0xB01 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3E4F DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0xB66 JUMP JUMPDEST PUSH1 0x0 DUP10 GT DUP1 ISZERO PUSH2 0xB16 JUMPI POP PUSH1 0x0 DUP9 GT JUMPDEST DUP1 ISZERO PUSH2 0xB22 JUMPI POP PUSH1 0x0 DUP8 GT JUMPDEST ISZERO ISZERO PUSH2 0xB66 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3E4F DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP7 GT DUP1 ISZERO PUSH2 0xB76 JUMPI POP PUSH1 0x0 DUP6 GT JUMPDEST ISZERO ISZERO PUSH2 0xBCC JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F524154450000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0xBDC DUP10 DUP8 PUSH4 0xFFFFFFFF PUSH2 0xF41 AND JUMP JUMPDEST SWAP2 POP PUSH2 0xBEE DUP8 DUP7 PUSH4 0xFFFFFFFF PUSH2 0xF41 AND JUMP JUMPDEST SWAP1 POP DUP8 DUP10 LT ISZERO PUSH2 0xC0F JUMPI PUSH2 0xC06 DUP9 DUP11 DUP5 DUP5 PUSH1 0x1 PUSH2 0x110C JUMP JUMPDEST SWAP4 POP SWAP4 POP PUSH2 0xC34 JUMP JUMPDEST DUP8 DUP10 GT ISZERO PUSH2 0xC25 JUMPI PUSH2 0xC06 DUP10 DUP10 DUP5 DUP5 PUSH1 0x0 PUSH2 0x110C JUMP JUMPDEST PUSH2 0xC2F DUP3 DUP3 PUSH2 0x11EF JUMP JUMPDEST SWAP4 POP SWAP4 POP JUMPDEST POP POP SWAP6 POP SWAP6 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0xC48 PUSH2 0x122C JUMP JUMPDEST PUSH2 0xC50 PUSH2 0x1A02 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP1 DUP1 DUP1 DUP10 GT PUSH2 0xC9D JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3E2F DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP9 GT PUSH2 0xCE3 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3E4F DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP8 PUSH4 0xFFFFFFFF AND GT DUP1 ISZERO PUSH2 0xD02 JUMPI POP PUSH3 0x1E8480 PUSH4 0xFFFFFFFF DUP9 AND GT ISZERO JUMPDEST ISZERO ISZERO PUSH2 0xD58 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F524154494F00000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP6 ISZERO ISZERO PUSH2 0xD68 JUMPI PUSH1 0x0 SWAP5 POP PUSH2 0x518 JUMP JUMPDEST PUSH4 0xFFFFFFFF DUP8 AND PUSH3 0xF4240 EQ ISZERO PUSH2 0xDA1 JUMPI DUP9 PUSH1 0x1 PUSH2 0xD8C DUP9 DUP12 PUSH4 0xFFFFFFFF PUSH2 0xF41 AND JUMP JUMPDEST SUB DUP2 ISZERO ISZERO PUSH2 0xD96 JUMPI INVALID JUMPDEST DIV PUSH1 0x1 ADD SWAP5 POP PUSH2 0x518 JUMP JUMPDEST PUSH2 0xDB1 DUP10 DUP8 PUSH4 0xFFFFFFFF PUSH2 0xFC5 AND JUMP JUMPDEST SWAP2 POP PUSH2 0xDC2 DUP3 DUP11 PUSH3 0xF4240 DUP11 PUSH2 0x1022 JUMP JUMPDEST SWAP1 SWAP5 POP SWAP3 POP PUSH1 0xFF DUP4 AND PUSH1 0x1 PUSH2 0xDDD DUP11 DUP8 PUSH4 0xFFFFFFFF PUSH2 0xF41 AND JUMP JUMPDEST PUSH1 0x2 SWAP3 SWAP1 SWAP3 EXP SWAP2 SUB DIV SWAP8 SWAP1 SWAP8 SUB PUSH1 0x1 ADD SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP1 DUP1 DUP1 DUP10 GT PUSH2 0xE44 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3E2F DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP9 GT PUSH2 0xE8A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3E4F DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP8 PUSH4 0xFFFFFFFF AND GT DUP1 ISZERO PUSH2 0xEA9 JUMPI POP PUSH3 0xF4240 PUSH4 0xFFFFFFFF DUP9 AND GT ISZERO JUMPDEST ISZERO ISZERO PUSH2 0xEFF JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F574549474854000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP6 ISZERO ISZERO PUSH2 0xF0F JUMPI PUSH1 0x0 SWAP5 POP PUSH2 0x518 JUMP JUMPDEST PUSH4 0xFFFFFFFF DUP8 AND PUSH3 0xF4240 EQ ISZERO PUSH2 0xF31 JUMPI DUP8 PUSH2 0x4BF DUP11 DUP9 PUSH4 0xFFFFFFFF PUSH2 0xF41 AND JUMP JUMPDEST PUSH2 0x4E0 DUP7 DUP10 PUSH4 0xFFFFFFFF PUSH2 0xFC5 AND JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 ISZERO ISZERO PUSH2 0xF54 JUMPI PUSH1 0x0 SWAP2 POP PUSH2 0xFBE JUMP JUMPDEST POP DUP3 DUP3 MUL DUP3 DUP5 DUP3 DUP2 ISZERO ISZERO PUSH2 0xF64 JUMPI INVALID JUMPDEST DIV EQ PUSH2 0xFBA JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP1 SWAP2 POP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 ADD DUP4 DUP2 LT ISZERO PUSH2 0xFBA JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP1 DUP1 DUP1 PUSH17 0x200000000000000000000000000000000 DUP11 LT PUSH2 0x1046 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP9 PUSH1 0x7F PUSH1 0x2 EXP DUP12 MUL DUP2 ISZERO ISZERO PUSH2 0x1057 JUMPI INVALID JUMPDEST DIV SWAP3 POP PUSH17 0x15BF0A8B1457695355FB8AC404E7A79E3 DUP4 LT ISZERO PUSH2 0x1083 JUMPI PUSH2 0x107C DUP4 PUSH2 0x2409 JUMP JUMPDEST SWAP4 POP PUSH2 0x108F JUMP JUMPDEST PUSH2 0x108C DUP4 PUSH2 0x2821 JUMP JUMPDEST SWAP4 POP JUMPDEST DUP7 PUSH4 0xFFFFFFFF AND DUP9 PUSH4 0xFFFFFFFF AND DUP6 MUL DUP2 ISZERO ISZERO PUSH2 0x10A8 JUMPI INVALID JUMPDEST DIV SWAP2 POP PUSH17 0x800000000000000000000000000000000 DUP3 LT ISZERO PUSH2 0x10D8 JUMPI PUSH2 0x10CD DUP3 PUSH2 0x28DB JUMP JUMPDEST PUSH1 0x7F SWAP6 POP SWAP6 POP PUSH2 0x10FF JUMP JUMPDEST PUSH2 0x10E1 DUP3 PUSH2 0x2CDB JUMP JUMPDEST SWAP1 POP PUSH2 0x10F9 PUSH1 0xFF PUSH1 0x7F DUP4 SWAP1 SUB AND PUSH1 0x2 EXP DUP4 DIV DUP3 PUSH2 0x2D68 JUMP JUMPDEST DUP2 SWAP6 POP SWAP6 POP JUMPDEST POP POP POP POP SWAP5 POP SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x111F DUP10 DUP10 PUSH2 0x318B JUMP JUMPDEST SWAP1 SWAP10 POP SWAP8 POP DUP10 PUSH2 0x1139 DUP13 PUSH1 0x7F PUSH1 0x2 EXP PUSH4 0xFFFFFFFF PUSH2 0xF41 AND JUMP JUMPDEST DUP2 ISZERO ISZERO PUSH2 0x1142 JUMPI INVALID JUMPDEST DIV SWAP4 POP PUSH17 0x15BF0A8B1457695355FB8AC404E7A79E3 DUP5 LT PUSH2 0x116B JUMPI PUSH2 0x1166 DUP5 PUSH2 0x2821 JUMP JUMPDEST PUSH2 0x1174 JUMP JUMPDEST PUSH2 0x1174 DUP5 PUSH2 0x2409 JUMP JUMPDEST SWAP3 POP DUP8 PUSH2 0x1187 DUP5 DUP12 PUSH4 0xFFFFFFFF PUSH2 0xF41 AND JUMP JUMPDEST DUP2 ISZERO ISZERO PUSH2 0x1190 JUMPI INVALID JUMPDEST DIV SWAP2 POP DUP7 PUSH2 0x11A6 JUMPI PUSH2 0x11A1 DUP3 PUSH2 0x3247 JUMP JUMPDEST PUSH2 0x11AF JUMP JUMPDEST PUSH2 0x11AF DUP3 PUSH2 0x32A4 JUMP JUMPDEST SWAP1 POP PUSH2 0x11DD PUSH2 0x11C4 DUP3 DUP12 PUSH4 0xFFFFFFFF PUSH2 0xF41 AND JUMP JUMPDEST PUSH2 0x11D8 DUP11 PUSH1 0x7F PUSH1 0x2 EXP PUSH4 0xFFFFFFFF PUSH2 0xF41 AND JUMP JUMPDEST PUSH2 0x11EF JUMP JUMPDEST SWAP6 POP SWAP6 POP POP POP POP POP SWAP6 POP SWAP6 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP1 DUP5 DUP7 GT PUSH2 0x120E JUMPI PUSH2 0x1205 DUP7 DUP7 PUSH2 0x3308 JUMP JUMPDEST SWAP4 POP SWAP4 POP PUSH2 0x1223 JUMP JUMPDEST PUSH2 0x1218 DUP6 DUP8 PUSH2 0x3308 JUMP JUMPDEST SWAP2 POP SWAP2 POP DUP1 DUP3 SWAP4 POP SWAP4 POP JUMPDEST POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH17 0x1C35FEDD14FFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x20 SSTORE PUSH17 0x1B0CE43B323FFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x21 SSTORE PUSH17 0x19F0028EC1FFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x22 SSTORE PUSH17 0x18DED91F0E7FFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x23 SSTORE PUSH17 0x17D8EC7F0417FFFFFFFFFFFFFFFFFFFFFF PUSH1 0x24 SSTORE PUSH17 0x16DDC6556CDBFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x25 SSTORE PUSH17 0x15ECF52776A1FFFFFFFFFFFFFFFFFFFFFF PUSH1 0x26 SSTORE PUSH17 0x15060C256CB2FFFFFFFFFFFFFFFFFFFFFF PUSH1 0x27 SSTORE PUSH17 0x1428A2F98D72FFFFFFFFFFFFFFFFFFFFFF PUSH1 0x28 SSTORE PUSH17 0x13545598E5C23FFFFFFFFFFFFFFFFFFFFF PUSH1 0x29 SSTORE PUSH17 0x1288C4161CE1DFFFFFFFFFFFFFFFFFFFFF PUSH1 0x2A SSTORE PUSH17 0x11C592761C666FFFFFFFFFFFFFFFFFFFFF PUSH1 0x2B SSTORE PUSH17 0x110A688680A757FFFFFFFFFFFFFFFFFFFF PUSH1 0x2C SSTORE PUSH17 0x1056F1B5BEDF77FFFFFFFFFFFFFFFFFFFF PUSH1 0x2D SSTORE PUSH17 0xFAADCECEEFF8BFFFFFFFFFFFFFFFFFFFF PUSH1 0x2E SSTORE PUSH17 0xF05DC6B27EDADFFFFFFFFFFFFFFFFFFFF PUSH1 0x2F SSTORE PUSH17 0xE67A5A25DA4107FFFFFFFFFFFFFFFFFFF PUSH1 0x30 SSTORE PUSH17 0xDCFF115B14EEDFFFFFFFFFFFFFFFFFFFF PUSH1 0x31 SSTORE PUSH17 0xD3E7A392431239FFFFFFFFFFFFFFFFFFF PUSH1 0x32 SSTORE PUSH17 0xCB2FF529EB71E4FFFFFFFFFFFFFFFFFFF PUSH1 0x33 SSTORE PUSH17 0xC2D415C3DB974AFFFFFFFFFFFFFFFFFFF PUSH1 0x34 SSTORE PUSH17 0xBAD03E7D883F69BFFFFFFFFFFFFFFFFFF PUSH1 0x35 SSTORE PUSH17 0xB320D03B2C343D5FFFFFFFFFFFFFFFFFF PUSH1 0x36 SSTORE PUSH17 0xABC25204E02828DFFFFFFFFFFFFFFFFFF PUSH1 0x37 SSTORE PUSH17 0xA4B16F74EE4BB207FFFFFFFFFFFFFFFFF PUSH1 0x38 SSTORE PUSH17 0x9DEAF736AC1F569FFFFFFFFFFFFFFFFFF PUSH1 0x39 SSTORE PUSH17 0x976BD9952C7AA957FFFFFFFFFFFFFFFFF PUSH1 0x3A SSTORE PUSH17 0x9131271922EAA606FFFFFFFFFFFFFFFFF PUSH1 0x3B SSTORE PUSH17 0x8B380F3558668C46FFFFFFFFFFFFFFFFF PUSH1 0x3C SSTORE PUSH17 0x857DDF0117EFA215BFFFFFFFFFFFFFFFF PUSH1 0x3D SSTORE PUSH17 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x3E SSTORE PUSH17 0x7ABBF6F6ABB9D087FFFFFFFFFFFFFFFFF PUSH1 0x3F SSTORE PUSH17 0x75AF62CBAC95F7DFA7FFFFFFFFFFFFFFF PUSH1 0x40 SSTORE PUSH17 0x70D7FB7452E187AC13FFFFFFFFFFFFFFF PUSH1 0x41 SSTORE PUSH17 0x6C3390ECC8AF379295FFFFFFFFFFFFFFF PUSH1 0x42 SSTORE PUSH17 0x67C00A3B07FFC01FD6FFFFFFFFFFFFFFF PUSH1 0x43 SSTORE PUSH17 0x637B647C39CBB9D3D27FFFFFFFFFFFFFF PUSH1 0x44 SSTORE PUSH17 0x5F63B1FC104DBD39587FFFFFFFFFFFFFF PUSH1 0x45 SSTORE PUSH17 0x5B771955B36E12F7235FFFFFFFFFFFFFF PUSH1 0x46 SSTORE PUSH17 0x57B3D49DDA84556D6F6FFFFFFFFFFFFFF PUSH1 0x47 SSTORE PUSH17 0x54183095B2C8ECECF30FFFFFFFFFFFFFF PUSH1 0x48 SSTORE PUSH17 0x50A28BE635CA2B888F77FFFFFFFFFFFFF PUSH1 0x49 SSTORE PUSH17 0x4D5156639708C9DB33C3FFFFFFFFFFFFF PUSH1 0x4A SSTORE PUSH17 0x4A23105873875BD52DFDFFFFFFFFFFFFF PUSH1 0x4B SSTORE PUSH17 0x471649D87199AA990756FFFFFFFFFFFFF PUSH1 0x4C SSTORE PUSH17 0x4429A21A029D4C1457CFBFFFFFFFFFFFF PUSH1 0x4D SSTORE PUSH17 0x415BC6D6FB7DD71AF2CB3FFFFFFFFFFFF PUSH1 0x4E SSTORE PUSH17 0x3EAB73B3BBFE282243CE1FFFFFFFFFFFF PUSH1 0x4F SSTORE PUSH17 0x3C1771AC9FB6B4C18E229FFFFFFFFFFFF PUSH1 0x50 SSTORE PUSH17 0x399E96897690418F785257FFFFFFFFFFF PUSH1 0x51 SSTORE PUSH17 0x373FC456C53BB779BF0EA9FFFFFFFFFFF PUSH1 0x52 SSTORE PUSH17 0x34F9E8E490C48E67E6AB8BFFFFFFFFFFF PUSH1 0x53 SSTORE PUSH17 0x32CBFD4A7ADC790560B3337FFFFFFFFFF PUSH1 0x54 SSTORE PUSH17 0x30B50570F6E5D2ACCA94613FFFFFFFFFF PUSH1 0x55 SSTORE PUSH17 0x2EB40F9F620FDA6B56C2861FFFFFFFFFF PUSH1 0x56 SSTORE PUSH17 0x2CC8340ECB0D0F520A6AF58FFFFFFFFFF PUSH1 0x57 SSTORE PUSH17 0x2AF09481380A0A35CF1BA02FFFFFFFFFF PUSH1 0x58 SSTORE PUSH17 0x292C5BDD3B92EC810287B1B3FFFFFFFFF PUSH1 0x59 SSTORE PUSH17 0x277ABDCDAB07D5A77AC6D6B9FFFFFFFFF PUSH1 0x5A SSTORE PUSH17 0x25DAF6654B1EAA55FD64DF5EFFFFFFFFF PUSH1 0x5B SSTORE PUSH17 0x244C49C648BAA98192DCE88B7FFFFFFFF PUSH1 0x5C SSTORE PUSH17 0x22CE03CD5619A311B2471268BFFFFFFFF PUSH1 0x5D SSTORE PUSH17 0x215F77C045FBE885654A44A0FFFFFFFFF PUSH1 0x5E SSTORE PUSH17 0x1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x5F SSTORE PUSH17 0x1EAEFDBDAAEE7421FC4D3EDE5FFFFFFFF PUSH1 0x60 SSTORE PUSH17 0x1D6BD8B2EB257DF7E8CA57B09BFFFFFFF PUSH1 0x61 SSTORE PUSH17 0x1C35FEDD14B861EB0443F7F133FFFFFFF PUSH1 0x62 SSTORE PUSH17 0x1B0CE43B322BCDE4A56E8ADA5AFFFFFFF PUSH1 0x63 SSTORE PUSH17 0x19F0028EC1FFF007F5A195A39DFFFFFFF PUSH1 0x64 SSTORE PUSH17 0x18DED91F0E72EE74F49B15BA527FFFFFF PUSH1 0x65 SSTORE PUSH17 0x17D8EC7F04136F4E5615FD41A63FFFFFF PUSH1 0x66 SSTORE PUSH17 0x16DDC6556CDB84BDC8D12D22E6FFFFFFF PUSH1 0x67 SSTORE PUSH17 0x15ECF52776A1155B5BD8395814F7FFFFF PUSH1 0x68 SSTORE PUSH17 0x15060C256CB23B3B3CC3754CF40FFFFFF PUSH1 0x69 SSTORE PUSH17 0x1428A2F98D728AE223DDAB715BE3FFFFF PUSH1 0x6A SSTORE PUSH17 0x13545598E5C23276CCF0EDE68034FFFFF PUSH1 0x6B SSTORE PUSH17 0x1288C4161CE1D6F54B7F61081194FFFFF PUSH1 0x6C SSTORE PUSH17 0x11C592761C666AA641D5A01A40F17FFFF PUSH1 0x6D SSTORE PUSH17 0x110A688680A7530515F3E6E6CFDCDFFFF PUSH1 0x6E SSTORE PUSH17 0x1056F1B5BEDF75C6BCB2CE8AED428FFFF PUSH1 0x6F SSTORE PUSH16 0xFAADCECEEFF8A0890F3875F008277FFF PUSH1 0x70 SSTORE PUSH16 0xF05DC6B27EDAD306388A600F6BA0BFFF PUSH1 0x71 SSTORE PUSH16 0xE67A5A25DA41063DE1495D5B18CDBFFF PUSH1 0x72 SSTORE PUSH16 0xDCFF115B14EEDDE6FC3AA5353F2E4FFF PUSH1 0x73 SSTORE PUSH16 0xD3E7A3924312399F9AAE2E0F868F8FFF PUSH1 0x74 SSTORE PUSH16 0xCB2FF529EB71E41582CCCD5A1EE26FFF PUSH1 0x75 SSTORE PUSH16 0xC2D415C3DB974AB32A51840C0B67EDFF PUSH1 0x76 SSTORE PUSH16 0xBAD03E7D883F69AD5B0A186184E06BFF PUSH1 0x77 SSTORE PUSH16 0xB320D03B2C343D4829ABD6075F0CC5FF PUSH1 0x78 SSTORE PUSH16 0xABC25204E02828D73C6E80BCDB1A95BF PUSH1 0x79 SSTORE PUSH16 0xA4B16F74EE4BB2040A1EC6C15FBBF2DF PUSH1 0x7A SSTORE PUSH16 0x9DEAF736AC1F569DEB1B5AE3F36C130F PUSH1 0x7B SSTORE PUSH16 0x976BD9952C7AA957F5937D790EF65037 PUSH1 0x7C SSTORE PUSH16 0x9131271922EAA6064B73A22D0BD4F2BF PUSH1 0x7D SSTORE PUSH16 0x8B380F3558668C46C91C49A2F8E967B9 PUSH1 0x7E SSTORE PUSH16 0x857DDF0117EFA215952912839F6473E6 PUSH1 0x0 PUSH1 0x7F JUMPDEST ADD SSTORE JUMP JUMPDEST PUSH16 0x60E393C68D20B1BD09DEAABC0373B9C5 PUSH1 0x80 SWAP1 DUP2 SSTORE PUSH16 0x5F8F46E4854120989ED94719FB4C2011 PUSH1 0x81 SSTORE PUSH16 0x5E479EBB9129FB1B7E72A648F992B606 PUSH1 0x82 SSTORE PUSH16 0x5D0BD23FE42DFEDDE2E9586BE12B85FE PUSH1 0x83 SSTORE PUSH16 0x5BDB29DDEE979308DDFCA81AEEB8095A PUSH1 0x84 SSTORE PUSH16 0x5AB4FD8A260D2C7E2C0D2AFCF0009DAD PUSH1 0x85 SSTORE PUSH16 0x5998B31359A55D48724C65CF09001221 PUSH1 0x86 SSTORE PUSH16 0x5885BCAD2B322DFC43E8860F9C018CF5 PUSH1 0x87 SSTORE PUSH16 0x577B97AA1FE222BB452FDF111B1F0BE2 PUSH1 0x88 SSTORE PUSH16 0x5679CB5E3575632E5BAA27E2B949F704 PUSH1 0x89 SSTORE PUSH16 0x557FE8241B3A31C83C732F1CDFF4A1C5 PUSH1 0x8A SSTORE PUSH16 0x548D868026504875D6E59BBE95FC2A6B PUSH1 0x8B SSTORE PUSH16 0x53A2465CE347CF34D05A867C17DD3088 PUSH1 0x8C SSTORE PUSH16 0x52BDCE5DCD4FAED59C7F5511CF8F8ACC PUSH1 0x8D SSTORE PUSH16 0x51DFCB453C07F8DA817606E7885F7C3E PUSH1 0x8E SSTORE PUSH16 0x5107EF6B0A5A2BE8F8FF15590DAA3CCE PUSH1 0x8F SSTORE PUSH16 0x5035F241D6EAE0CD7BACBA119993DE7B PUSH1 0x90 SSTORE PUSH16 0x4F698FE90D5B53D532171E1210164C66 PUSH1 0x91 SSTORE PUSH16 0x4EA288CA297A0E6A09A0EEE240E16C85 PUSH1 0x92 SSTORE PUSH16 0x4DE0A13FDCF5D4213FC398BA6E3BECDE PUSH1 0x93 SSTORE PUSH16 0x4D23A145EEF91FEC06B06140804C4808 PUSH1 0x94 SSTORE PUSH16 0x4C6B5430D4C1EE5526473DB4AE0F11DE PUSH1 0x95 SSTORE PUSH16 0x4BB7886C240562EBA11F4963A53B4240 PUSH1 0x96 SSTORE PUSH16 0x4B080F3F1CB491D2D521E0EA4583521E PUSH1 0x97 SSTORE PUSH16 0x4A5CBC96A05589CB4D86BE1DB3168364 PUSH1 0x98 SSTORE PUSH16 0x49B566D40243517658D78C33162D6ECE PUSH1 0x99 SSTORE PUSH16 0x4911E6A02E5507A30F947383FD9A3276 PUSH1 0x9A SSTORE PUSH16 0x487216C2B31BE4ADC41DB8A8D5CC0C88 PUSH1 0x9B SSTORE PUSH16 0x47D5D3FC4A7A1B188CD3D788B5C5E9FC PUSH1 0x9C SSTORE PUSH16 0x473CFCE4871A2C40BC4F9E1C32B955D0 PUSH1 0x9D SSTORE PUSH16 0x46A771CA578AB878485810E285E31C67 PUSH1 0x9E SSTORE PUSH16 0x4615149718AED4C258C373DC676AA72D PUSH1 0x9F SSTORE PUSH16 0x4585C8B3F8FE489C6E1833CA47871384 PUSH1 0xA0 SSTORE PUSH16 0x44F972F174E41E5EFB7E9D63C29CE735 PUSH1 0xA1 SSTORE PUSH16 0x446FF970BA86D8B00BEB05ECEBF3C4DC PUSH1 0xA2 SSTORE PUSH16 0x43E9438EC88971812D6F198B5CCAAD96 PUSH1 0xA3 SSTORE PUSH16 0x436539D11FF7BEA657AEDDB394E809EF PUSH1 0xA4 SSTORE PUSH16 0x42E3C5D3E5A913401D86F66DB5D81C2C PUSH1 0xA5 SSTORE PUSH16 0x4264D2395303070EA726CBE98DF62174 PUSH1 0xA6 SSTORE PUSH16 0x41E84A9A593BB7194C3A6349ECAE4EEA PUSH1 0xA7 SSTORE PUSH16 0x416E1B785D13EBA07A08F3F18876A5AB PUSH1 0xA8 SSTORE PUSH16 0x40F6322FF389D423BA9DD7E7E7B7E809 PUSH1 0xA9 SSTORE PUSH16 0x40807CEC8A466880ECF4184545D240A4 PUSH1 0xAA SSTORE PUSH16 0x400CEA9CE88A8D3AE668E8EA0D9BF07F PUSH1 0xAB SSTORE PUSH16 0x3F9B6AE8772D4C55091E0ED7DFEA0AC1 PUSH1 0xAC SSTORE PUSH16 0x3F2BEE253FD84594F54BCAAFAC383A13 PUSH1 0xAD SSTORE PUSH16 0x3EBE654E95208BB9210C575C081C5958 PUSH1 0xAE SSTORE PUSH16 0x3E52C1FC5665635B78CE1F05AD53C086 PUSH1 0xAF SSTORE PUSH16 0x3DE8F65AC388101DDF718A6F5C1EFF65 PUSH1 0xB0 SSTORE PUSH16 0x3D80F522D59BD0B328CA012DF4CD2D49 PUSH1 0xB1 SSTORE PUSH16 0x3D1AB193129EA72B23648A161163A85A PUSH1 0xB2 SSTORE PUSH16 0x3CB61F68D32576C135B95CFB53F76D75 PUSH1 0xB3 SSTORE PUSH16 0x3C5332D9F1AAE851A3619E77E4CC8473 PUSH1 0xB4 SSTORE PUSH16 0x3BF1E08EDBE2AA109E1525F65759EF73 PUSH1 0xB5 SSTORE PUSH16 0x3B921D9CFF13FA2C197746A3DFC4918F PUSH1 0xB6 SSTORE PUSH16 0x3B33DF818910BFC1A5AEFB8F63AE2AC4 PUSH1 0xB7 SSTORE PUSH16 0x3AD71C1C77E34FA32A9F184967ECCBF6 PUSH1 0xB8 SSTORE PUSH16 0x3A7BC9ABF2C5BB53E2F7384A8A16521A PUSH1 0xB9 SSTORE PUSH16 0x3A21DEC7E76369783A68A0C6385A1C57 PUSH1 0xBA SSTORE PUSH16 0x39C9525DE6C9CDF7C1C157CA4A7A6EE3 PUSH1 0xBB SSTORE PUSH16 0x39721BAD3DC85D1240FF0190E0ADAAC3 PUSH1 0xBC SSTORE PUSH16 0x391C324344D3248F0469EB28DD3D77E0 PUSH1 0xBD SSTORE PUSH16 0x38C78DF7E3C796279FB4FF84394AB3DA PUSH1 0xBE SSTORE PUSH16 0x387426EA4638AE9AAE08049D3554C20A PUSH1 0xBF SSTORE PUSH16 0x3821F57DBD2763256C1A99BBD2051378 PUSH1 0xC0 SSTORE PUSH16 0x37D0F256CB46A8C92FF62FBBEF289698 PUSH1 0xC1 SSTORE PUSH16 0x37811658591FFC7ABDD1FEAF3CEF9B73 PUSH1 0xC2 SSTORE PUSH16 0x37325AA10E9E82F7DF0F380F7997154B PUSH1 0xC3 SSTORE PUSH16 0x36E4B888CFB408D873B9A80D439311C6 PUSH1 0xC4 SSTORE PUSH16 0x3698299E59F4BB9DE645FC9B08C64CCA PUSH1 0xC5 SSTORE PUSH16 0x364CA7A5012CB603023B57DD3EBFD50D PUSH1 0xC6 SSTORE PUSH16 0x36022C928915B778AB1B06AAEE7E61D4 PUSH1 0xC7 SSTORE PUSH16 0x35B8B28D1A73DC27500FFE35559CC028 PUSH1 0xC8 SSTORE PUSH16 0x357033E951FE250EC5EB4E60955132D7 PUSH1 0xC9 SSTORE PUSH16 0x3528AB2867934E3A21B5412E4C4F8881 PUSH1 0xCA SSTORE PUSH16 0x34E212F66C55057F9676C80094A61D59 PUSH1 0xCB SSTORE PUSH16 0x349C66289E5B3C4B540C24F42FA4B9BB PUSH1 0xCC SSTORE PUSH16 0x34579FBBD0C733A9C8D6AF6B0F7D00F7 PUSH1 0xCD SSTORE PUSH16 0x3413BAD2E712288B924B5882B5B369BF PUSH1 0xCE SSTORE PUSH16 0x33D0B2B56286510EF730E213F71F12E9 PUSH1 0xCF SSTORE PUSH16 0x338E82CE00E2496262C64457535BA1A1 PUSH1 0xD0 SSTORE PUSH16 0x334D26A96B373BB7C2F8EA1827F27A92 PUSH1 0xD1 SSTORE PUSH16 0x330C99F4F4211469E00B3E18C31475EA PUSH1 0xD2 SSTORE PUSH16 0x32CCD87D6486094999C7D5E6F33237D8 PUSH1 0xD3 SSTORE PUSH16 0x328DDE2DD617B6665A2E8556F250C1AF PUSH1 0xD4 SSTORE PUSH16 0x324FA70E9ADC270F8262755AF5A99AF9 PUSH1 0xD5 SSTORE PUSH16 0x32122F443110611CA51040F41FA6E1E3 PUSH1 0xD6 SSTORE PUSH16 0x31D5730E42C0831482F0F1485C4263D8 PUSH1 0xD7 SSTORE PUSH16 0x31996EC6B07B4A83421B5EBC4AB4E1F1 PUSH1 0xD8 SSTORE PUSH16 0x315E1EE0A68FF46BB43EC2B85032E876 PUSH1 0xD9 SSTORE PUSH16 0x31237FE7BC4DEACF6775B9EFA1A145F8 PUSH1 0xDA SSTORE PUSH16 0x30E98E7F1CC5A356E44627A6972EA2FF PUSH1 0xDB SSTORE PUSH16 0x30B04760B8917EC74205A3002650EC05 PUSH1 0xDC SSTORE PUSH16 0x3077A75C803468E9132CE0CF3224241D PUSH1 0xDD SSTORE PUSH16 0x303FAB57A6A275C36F19CDA9BACE667A PUSH1 0xDE SSTORE PUSH16 0x3008504BEB8DCBD2CF3BC1F6D5A064F0 PUSH1 0xDF SSTORE PUSH16 0x2FD19346ED17DAC61219CE0C2C5AC4B0 PUSH1 0xE0 SSTORE PUSH16 0x2F9B7169808C324B5852FD3D54BA9714 PUSH1 0xE1 SSTORE PUSH16 0x2F65E7E711CF4B064EEA9C08CBDAD574 PUSH1 0xE2 SSTORE PUSH16 0x2F30F405093042DDFF8A251B6BF6D103 PUSH1 0xE3 SSTORE PUSH16 0x2EFC931A3750F2E8BFE323EDFE037574 PUSH1 0xE4 SSTORE PUSH16 0x2EC8C28E46DBE56D98685278339400CB PUSH1 0xE5 SSTORE PUSH16 0x2E957FD933C3926D8A599B602379B851 PUSH1 0xE6 SSTORE PUSH16 0x2E62C882C7C9ED4473412702F08BA0E5 PUSH1 0xE7 SSTORE PUSH16 0x2E309A221C12BA361E3ED695167FEEE2 PUSH1 0xE8 SSTORE PUSH16 0x2DFEF25D1F865AE18DD07CFEA4BCEA10 PUSH1 0xE9 SSTORE PUSH16 0x2DCDCEE821CDC80DECC02C44344AEB31 PUSH1 0xEA SSTORE PUSH16 0x2D9D2D8562B34944D0B201BB87260C83 PUSH1 0xEB SSTORE PUSH16 0x2D6D0C04A5B62A2C42636308669B729A PUSH1 0xEC SSTORE PUSH16 0x2D3D6842C9A235517FC5A0332691528F PUSH1 0xED SSTORE PUSH16 0x2D0E402963FE1EA2834ABC408C437C10 PUSH1 0xEE SSTORE PUSH16 0x2CDF91AE602647908AFF975E4D6A2A8C PUSH1 0xEF SSTORE PUSH16 0x2CB15AD3A1EB65F6D74A75DA09A1B6C5 PUSH1 0xF0 SSTORE PUSH16 0x2C8399A6AB8E9774D6FCFF373D210727 PUSH1 0xF1 SSTORE PUSH16 0x2C564C4046F64EDBA6883CA06BBC4535 PUSH1 0xF2 SSTORE PUSH16 0x2C2970C431F952641E05CB493E23EED3 PUSH1 0xF3 SSTORE PUSH16 0x2BFD0560CD9EB14563BC7C0732856C18 PUSH1 0xF4 SSTORE PUSH16 0x2BD1084ED0332F7FF4150F9D0EF41A2C PUSH1 0xF5 SSTORE PUSH16 0x2BA577D0FA1628B76D040B12A82492FB PUSH1 0xF6 SSTORE PUSH16 0x2B7A5233CD21581E855E89DC2F1E8A92 PUSH1 0xF7 SSTORE PUSH16 0x2B4F95CD46904D05D72BDCDE337D9CC7 PUSH1 0xF8 SSTORE PUSH16 0x2B2540FC9B4D9ABBA3FACA6691914675 PUSH1 0xF9 SSTORE PUSH16 0x2AFB5229F68D0830D8BE8ADB0A0DB70F PUSH1 0xFA SSTORE PUSH16 0x2AD1C7C63A9B294C5BC73A3BA3AB7A2B PUSH1 0xFB SSTORE PUSH16 0x2AA8A04AC3CBE1EE1C9C86361465DBB8 PUSH1 0xFC SSTORE PUSH16 0x2A7FDA392D725A44A2C8AEB9AB35430D PUSH1 0xFD SSTORE PUSH16 0x2A57741B18CDE618717792B4FAA216DB PUSH1 0xFE SSTORE PUSH16 0x2A2F6C81F5D84DD950A35626D6D5503A SWAP1 PUSH1 0x7F PUSH2 0x19FE JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP1 DUP1 PUSH16 0xD3094C70F034DE4B96FF7D5B6F99FCD8 DUP7 LT PUSH2 0x2458 JUMPI PUSH16 0x40000000000000000000000000000000 SWAP4 SWAP1 SWAP4 ADD SWAP3 PUSH16 0xD3094C70F034DE4B96FF7D5B6F99FCD8 PUSH1 0x7F PUSH1 0x2 EXP DUP8 MUL DIV SWAP6 POP JUMPDEST PUSH16 0xA45AF1E1F40C333B3DE1DB4DD55F29A7 DUP7 LT PUSH2 0x24A1 JUMPI PUSH16 0x20000000000000000000000000000000 SWAP4 SWAP1 SWAP4 ADD SWAP3 PUSH16 0xA45AF1E1F40C333B3DE1DB4DD55F29A7 PUSH1 0x7F PUSH1 0x2 EXP DUP8 MUL DIV SWAP6 POP JUMPDEST PUSH16 0x910B022DB7AE67CE76B441C27035C6A1 DUP7 LT PUSH2 0x24EA JUMPI PUSH16 0x10000000000000000000000000000000 SWAP4 SWAP1 SWAP4 ADD SWAP3 PUSH16 0x910B022DB7AE67CE76B441C27035C6A1 PUSH1 0x7F PUSH1 0x2 EXP DUP8 MUL DIV SWAP6 POP JUMPDEST PUSH16 0x88415ABBE9A76BEAD8D00CF112E4D4A8 DUP7 LT PUSH2 0x2533 JUMPI PUSH16 0x8000000000000000000000000000000 SWAP4 SWAP1 SWAP4 ADD SWAP3 PUSH16 0x88415ABBE9A76BEAD8D00CF112E4D4A8 PUSH1 0x7F PUSH1 0x2 EXP DUP8 MUL DIV SWAP6 POP JUMPDEST PUSH16 0x84102B00893F64C705E841D5D4064BD3 DUP7 LT PUSH2 0x257C JUMPI PUSH16 0x4000000000000000000000000000000 SWAP4 SWAP1 SWAP4 ADD SWAP3 PUSH16 0x84102B00893F64C705E841D5D4064BD3 PUSH1 0x7F PUSH1 0x2 EXP DUP8 MUL DIV SWAP6 POP JUMPDEST PUSH16 0x8204055AAEF1C8BD5C3259F4822735A2 DUP7 LT PUSH2 0x25C5 JUMPI PUSH16 0x2000000000000000000000000000000 SWAP4 SWAP1 SWAP4 ADD SWAP3 PUSH16 0x8204055AAEF1C8BD5C3259F4822735A2 PUSH1 0x7F PUSH1 0x2 EXP DUP8 MUL DIV SWAP6 POP JUMPDEST PUSH16 0x810100AB00222D861931C15E39B44E99 DUP7 LT PUSH2 0x260E JUMPI PUSH16 0x1000000000000000000000000000000 SWAP4 SWAP1 SWAP4 ADD SWAP3 PUSH16 0x810100AB00222D861931C15E39B44E99 PUSH1 0x7F PUSH1 0x2 EXP DUP8 MUL DIV SWAP6 POP JUMPDEST PUSH16 0x808040155AABBBE9451521693554F733 DUP7 LT PUSH2 0x2656 JUMPI PUSH15 0x800000000000000000000000000000 SWAP4 SWAP1 SWAP4 ADD SWAP3 PUSH16 0x808040155AABBBE9451521693554F733 PUSH1 0x7F PUSH1 0x2 EXP DUP8 MUL DIV SWAP6 POP JUMPDEST PUSH16 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT DUP7 ADD SWAP3 POP DUP3 SWAP2 POP PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP1 MUL DIV SWAP1 POP PUSH1 0x80 PUSH1 0x2 EXP DUP4 DUP2 SUB DUP4 MUL DIV SWAP4 SWAP1 SWAP4 ADD SWAP3 PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DIV SWAP2 POP PUSH17 0x200000000000000000000000000000000 PUSH16 0xAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA DUP5 SWAP1 SUB DUP4 MUL DIV SWAP4 SWAP1 SWAP4 ADD SWAP3 PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DIV SWAP2 POP PUSH17 0x300000000000000000000000000000000 PUSH16 0x99999999999999999999999999999999 DUP5 SWAP1 SUB DUP4 MUL DIV SWAP4 SWAP1 SWAP4 ADD SWAP3 PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DIV SWAP2 POP PUSH17 0x400000000000000000000000000000000 PUSH16 0x92492492492492492492492492492492 DUP5 SWAP1 SUB DUP4 MUL DIV SWAP4 SWAP1 SWAP4 ADD SWAP3 PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DIV SWAP2 POP PUSH17 0x500000000000000000000000000000000 PUSH16 0x8E38E38E38E38E38E38E38E38E38E38E DUP5 SWAP1 SUB DUP4 MUL DIV SWAP4 SWAP1 SWAP4 ADD SWAP3 PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DIV SWAP2 POP PUSH17 0x600000000000000000000000000000000 PUSH16 0x8BA2E8BA2E8BA2E8BA2E8BA2E8BA2E8B DUP5 SWAP1 SUB DUP4 MUL DIV SWAP4 SWAP1 SWAP4 ADD SWAP3 PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DIV SWAP2 POP PUSH17 0x700000000000000000000000000000000 PUSH16 0x89D89D89D89D89D89D89D89D89D89D89 DUP5 SWAP1 SUB DUP4 MUL DIV SWAP4 SWAP1 SWAP4 ADD SWAP3 PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DIV SWAP2 POP PUSH17 0x800000000000000000000000000000000 PUSH16 0x88888888888888888888888888888888 DUP5 SWAP1 SUB DUP4 MUL DIV SWAP4 SWAP1 SWAP4 ADD SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP1 PUSH1 0x80 PUSH1 0x2 EXP DUP6 LT PUSH2 0x2859 JUMPI PUSH2 0x2841 PUSH1 0x7F PUSH1 0x2 EXP DUP7 JUMPDEST DIV PUSH2 0x33A4 JUMP JUMPDEST PUSH1 0xFF DUP2 AND PUSH1 0x2 DUP2 SWAP1 EXP SWAP1 SWAP7 DIV SWAP6 PUSH1 0x7F PUSH1 0x2 EXP MUL SWAP4 POP SWAP2 POP JUMPDEST PUSH1 0x7F PUSH1 0x2 EXP DUP6 GT ISZERO PUSH2 0x28AB JUMPI POP PUSH1 0x7F JUMPDEST PUSH1 0x0 DUP2 PUSH1 0xFF AND GT ISZERO PUSH2 0x28AB JUMPI PUSH1 0x7F PUSH1 0x2 EXP DUP6 DUP1 MUL DIV SWAP5 POP PUSH1 0x80 PUSH1 0x2 EXP DUP6 LT PUSH2 0x28A2 JUMPI PUSH1 0x2 SWAP5 DUP6 SWAP1 DIV SWAP5 PUSH1 0xFF PUSH1 0x0 NOT DUP4 ADD AND SWAP1 EXP SWAP3 SWAP1 SWAP3 ADD SWAP2 JUMPDEST PUSH1 0x0 NOT ADD PUSH2 0x2869 JUMP JUMPDEST PUSH16 0x5B9DE1D10BF4103D647B0955897BA80 PUSH16 0x3F80FE03F80FE03F80FE03F80FE03F8 DUP5 MUL DIV SWAP4 POP JUMPDEST POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0x168244FDAC78000 PUSH1 0x7F PUSH1 0x2 EXP PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP5 AND DUP1 DUP1 MUL DUP3 SWAP1 DIV DUP1 DUP3 MUL DUP4 SWAP1 DIV DUP1 DUP4 MUL DUP5 SWAP1 DIV SWAP5 DUP6 MUL PUSH8 0x10E1B3BE415A0000 SWAP1 SWAP3 MUL PUSH8 0x5A0913F6B1E0000 SWAP2 SWAP1 SWAP2 MUL ADD ADD SWAP3 SWAP1 SWAP2 DUP2 DUP4 MUL DIV SWAP1 POP DUP1 PUSH7 0x4807432BC18000 MUL DUP4 ADD SWAP3 POP PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DUP2 ISZERO ISZERO PUSH2 0x2956 JUMPI INVALID JUMPDEST DIV SWAP1 POP DUP1 PUSH7 0xC0135DCA04000 MUL DUP4 ADD SWAP3 POP PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DUP2 ISZERO ISZERO PUSH2 0x2978 JUMPI INVALID JUMPDEST DIV SWAP1 POP DUP1 PUSH7 0x1B707B1CDC000 MUL DUP4 ADD SWAP3 POP PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DUP2 ISZERO ISZERO PUSH2 0x299A JUMPI INVALID JUMPDEST DIV SWAP1 POP DUP1 PUSH6 0x36E0F639B800 MUL DUP4 ADD SWAP3 POP PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DUP2 ISZERO ISZERO PUSH2 0x29BB JUMPI INVALID JUMPDEST DIV SWAP1 POP DUP1 PUSH6 0x618FEE9F800 MUL DUP4 ADD SWAP3 POP PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DUP2 ISZERO ISZERO PUSH2 0x29DC JUMPI INVALID JUMPDEST DIV SWAP1 POP DUP1 PUSH5 0x9C197DCC00 MUL DUP4 ADD SWAP3 POP PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DUP2 ISZERO ISZERO PUSH2 0x29FC JUMPI INVALID JUMPDEST DIV SWAP1 POP DUP1 PUSH5 0xE30DCE400 MUL DUP4 ADD SWAP3 POP PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DUP2 ISZERO ISZERO PUSH2 0x2A1C JUMPI INVALID JUMPDEST DIV SWAP1 POP DUP1 PUSH5 0x12EBD1300 MUL DUP4 ADD SWAP3 POP PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DUP2 ISZERO ISZERO PUSH2 0x2A3C JUMPI INVALID JUMPDEST DIV SWAP1 POP DUP1 PUSH4 0x17499F00 MUL DUP4 ADD SWAP3 POP PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DUP2 ISZERO ISZERO PUSH2 0x2A5B JUMPI INVALID JUMPDEST DIV SWAP1 POP DUP1 PUSH4 0x1A9D480 MUL DUP4 ADD SWAP3 POP PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DUP2 ISZERO ISZERO PUSH2 0x2A7A JUMPI INVALID JUMPDEST DIV SWAP1 POP DUP1 PUSH3 0x1C6380 MUL DUP4 ADD SWAP3 POP PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DUP2 ISZERO ISZERO PUSH2 0x2A98 JUMPI INVALID JUMPDEST DIV SWAP1 POP DUP1 PUSH3 0x1C638 MUL DUP4 ADD SWAP3 POP PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DUP2 ISZERO ISZERO PUSH2 0x2AB6 JUMPI INVALID JUMPDEST DIV SWAP1 POP DUP1 PUSH2 0x1AB8 MUL DUP4 ADD SWAP3 POP PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DUP2 ISZERO ISZERO PUSH2 0x2AD3 JUMPI INVALID JUMPDEST DIV SWAP1 POP DUP1 PUSH2 0x17C MUL DUP4 ADD SWAP3 POP PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DUP2 ISZERO ISZERO PUSH2 0x2AF0 JUMPI INVALID JUMPDEST DIV SWAP1 POP DUP1 PUSH1 0x14 MUL DUP4 ADD SWAP3 POP PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DUP2 ISZERO ISZERO PUSH2 0x2B0C JUMPI INVALID JUMPDEST PUSH8 0x21C3677C82B40000 SWAP2 SWAP1 DIV SWAP4 DUP5 ADD DIV DUP3 ADD PUSH1 0x7F PUSH1 0x2 EXP ADD SWAP3 SWAP1 POP PUSH16 0x10000000000000000000000000000000 DUP6 AND ISZERO PUSH2 0x2B69 JUMPI PUSH17 0x18EBEF9EAC820AE8682B9793AC6D1E776 PUSH17 0x1C3D6A24ED82218787D624D3E5EBA95F9 DUP5 MUL DIV SWAP3 POP JUMPDEST PUSH16 0x20000000000000000000000000000000 DUP6 AND ISZERO PUSH2 0x2BAB JUMPI PUSH17 0x1368B2FC6F9609FE7ACEB46AA619BAED4 PUSH17 0x18EBEF9EAC820AE8682B9793AC6D1E778 DUP5 MUL DIV SWAP3 POP JUMPDEST PUSH16 0x40000000000000000000000000000000 DUP6 AND ISZERO PUSH2 0x2BEC JUMPI PUSH16 0xBC5AB1B16779BE3575BD8F0520A9F21F PUSH17 0x1368B2FC6F9609FE7ACEB46AA619BAED5 DUP5 MUL DIV SWAP3 POP JUMPDEST PUSH1 0x7F PUSH1 0x2 EXP DUP6 AND ISZERO PUSH2 0x2C20 JUMPI PUSH16 0x454AAA8EFE072E7F6DDBAB84B40A55C9 PUSH16 0xBC5AB1B16779BE3575BD8F0520A9F21E DUP5 MUL DIV SWAP3 POP JUMPDEST PUSH1 0x80 PUSH1 0x2 EXP DUP6 AND ISZERO PUSH2 0x2C54 JUMPI PUSH16 0x960AADC109E7A3BF4578099615711EA PUSH16 0x454AAA8EFE072E7F6DDBAB84B40A55C5 DUP5 MUL DIV SWAP3 POP JUMPDEST PUSH17 0x200000000000000000000000000000000 DUP6 AND ISZERO PUSH2 0x2C94 JUMPI PUSH15 0x2BF84208204F5977F9A8CF01FDCE3D PUSH16 0x960AADC109E7A3BF4578099615711D7 DUP5 MUL DIV SWAP3 POP JUMPDEST PUSH17 0x400000000000000000000000000000000 DUP6 AND ISZERO PUSH2 0x2CD2 JUMPI PUSH14 0x3C6AB775DD0B95B4CBEE7E65D11 PUSH15 0x2BF84208204F5977F9A8CF01FDC307 DUP5 MUL DIV SWAP3 POP JUMPDEST POP SWAP1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 PUSH1 0x7F DUP3 JUMPDEST DUP2 PUSH1 0xFF AND DUP4 PUSH1 0x1 ADD PUSH1 0xFF AND LT ISZERO PUSH2 0x2D28 JUMPI PUSH1 0x2 PUSH1 0xFF DUP5 DUP5 ADD AND DIV SWAP1 POP DUP5 PUSH1 0x0 PUSH1 0xFF DUP4 AND PUSH1 0x80 DUP2 LT PUSH2 0x2D10 JUMPI INVALID JUMPDEST ADD SLOAD LT PUSH2 0x2D1F JUMPI DUP1 SWAP3 POP PUSH2 0x2D23 JUMP JUMPDEST DUP1 SWAP2 POP JUMPDEST PUSH2 0x2CE3 JUMP JUMPDEST DUP5 PUSH1 0x0 PUSH1 0xFF DUP5 AND PUSH1 0x80 DUP2 LT PUSH2 0x2D39 JUMPI INVALID JUMPDEST ADD SLOAD LT PUSH2 0x2D48 JUMPI DUP2 SWAP4 POP PUSH2 0x28D3 JUMP JUMPDEST DUP5 PUSH1 0x0 PUSH1 0xFF DUP6 AND PUSH1 0x80 DUP2 LT PUSH2 0x2D59 JUMPI INVALID JUMPDEST ADD SLOAD LT PUSH2 0x106 JUMPI DUP3 SWAP4 POP PUSH2 0x28D3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP5 SWAP2 POP PUSH1 0x0 SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH16 0x3442C4E6074A82F1797F72AC0000000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH16 0x116B96F757C380FB287FD0E40000000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH15 0x45AE5BDD5F0E03ECA1FF4390000000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH15 0xDEFABF91302CD95B9FFDA50000000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH15 0x2529CA9832B22439EFFF9B8000000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH14 0x54F1CF12BD04E516B6DA88000000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH14 0xA9E39E257A09CA2D6DB51000000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH14 0x12E066E7B839FA050C309000000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH13 0x1E33D7D926C329A1AD1A800000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH13 0x2BEE513BDB4A6B19B5F800000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH12 0x3A9316FA79B88ECCF2A00000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH12 0x48177EBE1FA812375200000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH11 0x5263FE90242DCBACF00000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH11 0x57E22099C030D94100000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH10 0x57E22099C030D9410000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH10 0x52B6B54569976310000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH9 0x4985F67696BF748000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH9 0x3DEA12EA99E498000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH8 0x31880F2214B6E000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH8 0x25BCFF56EB36000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH7 0x1B722E10AB1000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH7 0x1317C70077000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH6 0xCBA84AAFA00 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH5 0x82573A0A00 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH5 0x5035AD900 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH4 0x2F881B00 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH4 0x1B29340 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH3 0xEFC40 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH2 0x7FE0 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH2 0x420 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH1 0x21 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH1 0x1 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND PUSH1 0x1 SWAP1 PUSH1 0x2 EXP MUL DUP6 PUSH16 0x688589CC0E9505E2F2FEE5580000000 DUP4 DUP2 ISZERO ISZERO PUSH2 0x317F JUMPI INVALID JUMPDEST DIV ADD ADD SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 PUSH1 0x2 EXP DUP7 GT ISZERO DUP1 ISZERO PUSH2 0x31A9 JUMPI POP PUSH1 0x80 PUSH1 0x2 EXP DUP6 GT ISZERO JUMPDEST ISZERO PUSH2 0x31B9 JUMPI DUP6 DUP6 SWAP4 POP SWAP4 POP PUSH2 0x1223 JUMP JUMPDEST PUSH1 0x80 PUSH1 0x2 EXP DUP7 LT ISZERO PUSH2 0x31E5 JUMPI DUP5 PUSH1 0x80 PUSH1 0x2 EXP DUP8 MUL DUP2 ISZERO ISZERO PUSH2 0x31D6 JUMPI INVALID JUMPDEST DIV PUSH1 0x80 PUSH1 0x2 EXP SWAP4 POP SWAP4 POP PUSH2 0x1223 JUMP JUMPDEST PUSH1 0x80 PUSH1 0x2 EXP DUP6 LT ISZERO PUSH2 0x3211 JUMPI PUSH1 0x80 PUSH1 0x2 EXP DUP7 PUSH1 0x80 PUSH1 0x2 EXP DUP8 MUL DUP2 ISZERO ISZERO PUSH2 0x3207 JUMPI INVALID JUMPDEST DIV SWAP4 POP SWAP4 POP PUSH2 0x1223 JUMP JUMPDEST DUP5 DUP7 GT PUSH2 0x321E JUMPI DUP5 PUSH2 0x3220 JUMP JUMPDEST DUP6 JUMPDEST SWAP2 POP PUSH2 0x3230 PUSH1 0x7F PUSH1 0x2 EXP DUP4 PUSH2 0x283B JUMP JUMPDEST PUSH1 0xFF AND PUSH1 0x2 EXP SWAP6 DUP7 SWAP1 DIV SWAP7 SWAP6 SWAP1 SWAP5 DIV SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH16 0x2F16AC6C59DE6F8D5D6F63C1482A7C86 DUP3 GT PUSH2 0x3270 JUMPI PUSH2 0x3269 DUP3 PUSH2 0x340D JUMP JUMPDEST SWAP1 POP PUSH2 0x329F JUMP JUMPDEST DUP2 PUSH32 0x4000000000000000000000000000000000000000000000000000000000000000 DUP2 ISZERO ISZERO PUSH2 0x329B JUMPI INVALID JUMPDEST DIV SWAP1 POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH16 0x2F16AC6C59DE6F8D5D6F63C1482A7C86 DUP3 GT PUSH2 0x32C6 JUMPI PUSH2 0x3269 DUP3 PUSH2 0x3870 JUMP JUMPDEST PUSH17 0x1AF16AC6C59DE6F8D5D6F63C1482A7C80 DUP3 GT PUSH2 0x32E7 JUMPI PUSH2 0x3269 DUP3 PUSH2 0x3CF1 JUMP JUMPDEST PUSH17 0x6B22D43E72C326539CCEEEF8BB48F255FF DUP3 GT PUSH2 0x106 JUMPI PUSH2 0x3269 DUP3 PUSH2 0x3D6F JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH30 0x10C6F7A0B5ED8D36B4C7F34938583621FAFC8B0079A2834D26FA3FCC9EA9 DUP8 GT ISZERO PUSH2 0x3379 JUMPI PUSH30 0x10C6F7A0B5ED8D36B4C7F34938583621FAFC8B0079A2834D26FA3FCC9EAA DUP8 DIV PUSH1 0x1 ADD SWAP3 POP DUP3 DUP8 DUP2 ISZERO ISZERO PUSH2 0x3367 JUMPI INVALID JUMPDEST DIV SWAP7 POP DUP3 DUP7 DUP2 ISZERO ISZERO PUSH2 0x3375 JUMPI INVALID JUMPDEST DIV SWAP6 POP JUMPDEST PUSH2 0x3391 PUSH3 0xF4240 DUP9 MUL PUSH2 0x338C DUP10 DUP10 PUSH2 0xFC5 JUMP JUMPDEST PUSH2 0x3DFC JUMP JUMPDEST SWAP8 PUSH3 0xF4240 DUP10 SWAP1 SUB SWAP8 POP SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 PUSH2 0x100 DUP5 LT ISZERO PUSH2 0x33D3 JUMPI JUMPDEST PUSH1 0x1 DUP5 GT ISZERO PUSH2 0x33CE JUMPI PUSH1 0x2 SWAP1 SWAP4 DIV SWAP3 PUSH1 0x1 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x33B3 JUMP JUMPDEST PUSH2 0xFBE JUMP JUMPDEST POP PUSH1 0x80 JUMPDEST PUSH1 0x0 DUP2 PUSH1 0xFF AND GT ISZERO PUSH2 0xFBE JUMPI PUSH1 0xFF DUP2 AND PUSH1 0x2 EXP DUP5 LT PUSH2 0x3400 JUMPI PUSH1 0xFF DUP2 AND PUSH1 0x2 EXP SWAP1 SWAP4 DIV SWAP3 SWAP1 DUP2 OR SWAP1 JUMPDEST PUSH1 0x2 PUSH1 0xFF SWAP1 SWAP2 AND DIV PUSH2 0x33D7 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP1 MUL DIV SWAP2 POP PUSH17 0x14D29A73A6E7B02C3668C7B0880000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH17 0x2504A0CD9A7F7215B60F9BE4800000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH17 0x484D0A1191C0EAD267967C7A4A0000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH17 0x95EC580D7E8427A4BAF26A90A00000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH17 0x1440B0BE1615A47DBA6E5B3B1F10000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH17 0x2D207601F46A99B4112418400000000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH17 0x66EBAAC4C37C622DD8288A7EB1B2000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH17 0xEF17240135F7DBD43A1BA10CF200000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH18 0x233C33C676A5EB2416094A87B3657000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH18 0x541CDE48BC0254BED49A9F8700000000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH18 0xCAE1FAD2CDD4D4CB8D73ABCA0D19A400000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH18 0x1EDB2AA2F760D15C41CEEDBA956400000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH18 0x4BA8D20D2DABD386C9529659841A2E200000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH18 0xBAC08546B867CDAA20000000000000000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH19 0x1CFA8E70C03625B9DB76C8EBF5BBF24820000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH19 0x4851D99F82060DF265F3309B26F8200000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH19 0xB550D19B129D270C44F6F55F027723CBB0000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH19 0x1C877DADC761DC272DEB65D4B0000000000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH19 0x48178ECE97479F33A77F2AD22A81B64406C000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH19 0xB6CA8268B9D810FEDF6695EF2F8A6C00000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH20 0x1D0E76631A5B05D007B8CB72A7C7F11EC36E000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH20 0x4A1C37BD9F85FD9C6C780000000000000000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH20 0xBD8369F1B702BF491E2EBFCEE08250313B65400 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH20 0x1E5C7C32A9F6C70AB2CB59D9225764D400000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH20 0x4DFF5820E165E910F95120A708E742496221E600 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH20 0xC8C8F66DB1FCED378EE50E536000000000000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH21 0x205DB8DFFFF45BFA2938F128F599DBF16EB11D880 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH21 0x53A044EBD984351493E1786AF38D39A0800000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH21 0xD86DAE2A4CC0F47633A544479735869B487B59C40 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH21 0x231000000000000000000000000000000000000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH21 0x5B0485A76F6646C2039DB1507CDD51B08649680822 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH21 0xEC983C46C49545BC17EFA6B5B0055E242200000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 PUSH16 0xDE1BC4D19EFCAC82445DA75B00000000 DUP4 DIV ADD ADD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x7F PUSH1 0x2 EXP DUP2 DUP2 SUB PUSH16 0xDE1BC4D19EFCAC82445DA75B00000000 MUL SWAP1 DUP3 DUP1 MUL DIV SWAP2 POP PUSH17 0x14D29A73A6E7B02C3668C7B0880000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH17 0x2504A0CD9A7F7215B60F9BE4800000000 DUP3 MUL SWAP1 SUB PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH17 0x484D0A1191C0EAD267967C7A4A0000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH17 0x95EC580D7E8427A4BAF26A90A00000000 DUP3 MUL SWAP1 SUB PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH17 0x1440B0BE1615A47DBA6E5B3B1F10000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH17 0x2D207601F46A99B4112418400000000000 DUP3 MUL SWAP1 SUB PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH17 0x66EBAAC4C37C622DD8288A7EB1B2000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH17 0xEF17240135F7DBD43A1BA10CF200000000 DUP3 MUL SWAP1 SUB PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH18 0x233C33C676A5EB2416094A87B3657000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH18 0x541CDE48BC0254BED49A9F8700000000000 DUP3 MUL SWAP1 SUB PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH18 0xCAE1FAD2CDD4D4CB8D73ABCA0D19A400000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH18 0x1EDB2AA2F760D15C41CEEDBA956400000000 DUP3 MUL SWAP1 SUB PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH18 0x4BA8D20D2DABD386C9529659841A2E200000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH18 0xBAC08546B867CDAA20000000000000000000 DUP3 MUL SWAP1 SUB PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH19 0x1CFA8E70C03625B9DB76C8EBF5BBF24820000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH19 0x4851D99F82060DF265F3309B26F8200000000 DUP3 MUL SWAP1 SUB PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH19 0xB550D19B129D270C44F6F55F027723CBB0000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH19 0x1C877DADC761DC272DEB65D4B0000000000000 DUP3 MUL SWAP1 SUB PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH19 0x48178ECE97479F33A77F2AD22A81B64406C000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH19 0xB6CA8268B9D810FEDF6695EF2F8A6C00000000 DUP3 MUL SWAP1 SUB PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH20 0x1D0E76631A5B05D007B8CB72A7C7F11EC36E000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH20 0x4A1C37BD9F85FD9C6C780000000000000000000 DUP3 MUL SWAP1 SUB PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH20 0xBD8369F1B702BF491E2EBFCEE08250313B65400 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH20 0x1E5C7C32A9F6C70AB2CB59D9225764D400000000 DUP3 MUL SWAP1 SUB PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH20 0x4DFF5820E165E910F95120A708E742496221E600 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH20 0xC8C8F66DB1FCED378EE50E536000000000000000 DUP3 MUL SWAP1 SUB PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH21 0x205DB8DFFFF45BFA2938F128F599DBF16EB11D880 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH21 0x53A044EBD984351493E1786AF38D39A0800000000 DUP3 MUL SWAP1 SUB PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH21 0xD86DAE2A4CC0F47633A544479735869B487B59C40 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH21 0x231000000000000000000000000000000000000000 DUP3 MUL SWAP1 SUB PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH21 0x5B0485A76F6646C2039DB1507CDD51B08649680822 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH21 0xEC983C46C49545BC17EFA6B5B0055E242200000000 DUP3 MUL SWAP1 SUB PUSH16 0xDE1BC4D19EFCAC82445DA75B00000000 DUP2 JUMPDEST DIV SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH16 0x2F16AC6C59DE6F8D5D6F63C1482A7C86 NOT DUP3 ADD PUSH16 0x3060C183060C183060C183060C18306 DUP1 DUP3 DIV SWAP1 DUP2 DUP2 MUL SWAP1 PUSH1 0x1 DUP4 ADD MUL DUP5 DUP1 PUSH1 0x80 DUP6 DUP2 DUP2 LT PUSH2 0x3D33 JUMPI INVALID JUMPDEST ADD SLOAD SWAP2 POP PUSH1 0x80 PUSH1 0x1 DUP7 ADD DUP2 DUP2 LT PUSH2 0x3D46 JUMPI INVALID JUMPDEST ADD SLOAD PUSH16 0x3060C183060C183060C183060C18306 SWAP5 DUP8 SUB MUL SWAP6 SWAP1 SWAP3 SUB MUL SWAP4 SWAP1 SWAP4 ADD DIV SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH17 0x15BF0A8B1457695355FB8AC404E7A79E3 DUP5 LT PUSH2 0x3D9A JUMPI PUSH2 0x3D95 DUP5 PUSH2 0x2821 JUMP JUMPDEST PUSH2 0x3DA3 JUMP JUMPDEST PUSH2 0x3DA3 DUP5 PUSH2 0x2409 JUMP JUMPDEST SWAP2 POP PUSH17 0x15BF0A8B1457695355FB8AC404E7A79E3 DUP3 LT PUSH2 0x3DCB JUMPI PUSH2 0x3DC6 DUP3 PUSH2 0x2821 JUMP JUMPDEST PUSH2 0x3DD4 JUMP JUMPDEST PUSH2 0x3DD4 DUP3 PUSH2 0x2409 JUMP JUMPDEST SWAP1 POP DUP4 PUSH1 0x7F PUSH1 0x2 EXP DUP4 PUSH1 0x7F PUSH1 0x2 EXP DUP5 MUL DUP2 ISZERO ISZERO PUSH2 0x3DED JUMPI INVALID JUMPDEST DIV DUP4 DUP6 SUB ADD MUL DUP2 ISZERO ISZERO PUSH2 0x3CE8 JUMPI INVALID JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV DUP3 SUB DUP3 DUP5 DUP2 ISZERO ISZERO PUSH2 0x3E0F JUMPI INVALID JUMPDEST MOD DUP2 ISZERO ISZERO PUSH2 0x3E19 JUMPI INVALID JUMPDEST DIV DUP3 DUP5 DUP2 ISZERO ISZERO PUSH2 0x3E25 JUMPI INVALID JUMPDEST DIV ADD SWAP4 SWAP3 POP POP POP JUMP STOP GASLIMIT MSTORE MSTORE 0x5f 0x49 0x4e JUMP COINBASE 0x4c 0x49 DIFFICULTY 0x5f MSTORE8 SSTORE POP POP 0x4c MSIZE STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP GASLIMIT MSTORE MSTORE 0x5f 0x49 0x4e JUMP COINBASE 0x4c 0x49 DIFFICULTY 0x5f MSTORE GASLIMIT MSTORE8 GASLIMIT MSTORE JUMP GASLIMIT 0x5f TIMESTAMP COINBASE 0x4c COINBASE 0x4e NUMBER GASLIMIT STOP STOP STOP STOP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 GASPRICE 0xa6 BYTE BLOCKHASH SWAP15 PUSH19 0x9A09805C2713F062E39BB7A14053960C848BB2 0xd7 PUSH4 0x6183D573 0xa7 STOP 0x29 ", + "sourceMap": "105:60940:10:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;59263:222;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;59263:222:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;57847:242;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;57847:242:10;;;;;;;;;;;;;23900:810;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;23900:810:10;;;;;;;;;;;;;60811:232;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;60811:232:10;;;;;;;;;;;;;58146:234;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;58146:234:10;;;;;;;;;;;;;187:34;;8:9:-1;5:2;;;30:1;27;20:12;5:2;187:34:10;;;;;;;;;;;;;;;;;;;;;;;58849:357;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;58849:357:10;;;;;;;;;;;;;;;;;;;19056:997;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;19056:997:10;;;;;;;;;;;;;25320:1007;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;25320:1007:10;;;;;;;;;;;;;20832:1025;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;20832:1025:10;;;;;;;;;;;;;;;;;;;28461:1167;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;28461:1167:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17006:70;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17006:70:10;;;;;;22464:824;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;22464:824:10;;;;;;;;;;;;;17659:817;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;17659:817:10;;;;;;;;;;;;;59263:222;59403:7;59423:58;59432:7;59441:15;59458:13;59473:7;59423:8;:58::i;:::-;59416:65;59263:222;-1:-1:-1;;;;;59263:222:10:o;57847:242::-;57994:7;58014:71;58035:7;58044:15;58061:14;58077:7;58014:20;:71::i;23900:810::-;24039:7;;;;;24080:11;;;24072:42;;;;;-1:-1:-1;;;;;24072:42:10;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;24072:42:10;;;;;;;;;;;;;;;24144:1;24126:19;;24118:59;;;;;-1:-1:-1;;;;;24118:59:10;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;24118:59:10;;;;;;;;;;;;;;;24205:1;24189:13;:17;;;:52;;;;-1:-1:-1;24227:14:10;24210:31;;;;;24189:52;24181:90;;;;;;;-1:-1:-1;;;;;24181:90:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;24311:12;;24307:26;;;24332:1;24325:8;;;;24307:26;24388:27;;;297:7;24388:27;24384:78;;;24447:15;24424:20;:7;24436;24424:20;:11;:20;:::i;:::-;:38;;;;;;;;24417:45;;;;24384:78;24520:28;:15;24540:7;24520:28;:19;:28;:::i;:::-;24504:44;;24574:56;24580:5;24587:15;24604:13;297:7;24574:5;:56::i;:::-;24552:78;;-1:-1:-1;24552:78:10;-1:-1:-1;24649:32:10;;;:19;:7;24552:78;24649:19;:11;:19;:::i;:::-;:32;;;;;24634:47;;24699:7;24692:4;:14;24685:21;;23900:810;;;;;;;;;;;:::o;60811:232::-;60947:7;60967:72;60990:7;60999:15;61016:13;61031:7;60967:22;:72::i;58146:234::-;58289:7;58309:67;58326:7;58335:15;58352:14;58368:7;58309:16;:67::i;187:34::-;220:1;187:34;:::o;58849:357::-;59059:7;59079:123;59104:21;59127:20;59149:21;59172:20;59194:7;59079:24;:123::i;:::-;59072:130;58849:357;-1:-1:-1;;;;;;58849:357:10:o;19056:997::-;19196:7;;;;;;19237:11;;;19229:42;;;;;-1:-1:-1;;;;;19229:42:10;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;19229:42:10;;;;;;;;;;;;;;;19301:1;19283:19;;19275:59;;;;;-1:-1:-1;;;;;19275:59:10;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;19275:59:10;;;;;;;;;;;;;;;19363:1;19346:14;:18;;;:50;;;;-1:-1:-1;297:7:10;19368:28;;;;;19346:50;19338:89;;;;;;;-1:-1:-1;;;;;19338:89:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;19439:18;;;;19431:49;;;;;-1:-1:-1;;;;;19431:49:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;19525:12;;19521:26;;;19546:1;19539:8;;;;19521:26;19615:7;19604;:18;19600:46;;;19631:15;19624:22;;;;19600:46;19694:28;;;297:7;19694:28;19690:79;;;19762:7;19731:28;:15;19751:7;19731:28;:19;:28;:::i;:::-;:38;;;;;;;;19724:45;;;;19690:79;19837:7;19827;:17;19811:33;;19870:49;19876:7;19885:5;297:7;19904:14;19870:5;:49::i;:::-;19848:71;;-1:-1:-1;19848:71:10;-1:-1:-1;19939:27:10;:15;19848:71;19939:27;:19;:27;:::i;:::-;19923:43;-1:-1:-1;;19986:28:10;;;;;;;20043:6;20026:13;;;20025:24;;;;;;;;20018:31;;19056:997;;;;;;;;;;;;:::o;25320:1007::-;25465:7;;;;;;25506:11;;;25498:42;;;;;-1:-1:-1;;;;;25498:42:10;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;25498:42:10;;;;;;;;;;;;;;;25570:1;25552:19;;25544:59;;;;;-1:-1:-1;;;;;25544:59:10;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;25544:59:10;;;;;;;;;;;;;;;25631:1;25615:13;:17;;;:52;;;;-1:-1:-1;25653:14:10;25636:31;;;;;25615:52;25607:90;;;;;;;-1:-1:-1;;;;;25607:90:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;25709:18;;;;25701:49;;;;;-1:-1:-1;;;;;25701:49:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;25790:12;;25786:26;;;25811:1;25804:8;;;;25786:26;25884:7;25873;:18;25869:46;;;25900:15;25893:22;;;;25869:46;25970:27;;;297:7;25970:27;25966:78;;;26037:7;26006:28;:7;26018:15;26006:28;:11;:28;:::i;20832:1025::-;21037:7;21519:14;21537:15;21556:13;21715;21768;21102:1;21078:21;:25;:54;;;;;21131:1;21107:21;:25;21078:54;21070:94;;;;;;;-1:-1:-1;;;;;21070:94:10;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;21070:94:10;;;;;;;;;;;;;;;21203:1;21180:20;:24;;;:62;;;;-1:-1:-1;297:7:10;21208:34;;;;;21180:62;:90;;;;;21269:1;21246:20;:24;;;21180:90;:128;;;;-1:-1:-1;297:7:10;21274:34;;;;;21180:128;21168:177;;;;;;;-1:-1:-1;;;;;21168:177:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;21414:20;21390:44;;:20;:44;;;21386:128;;;21480:34;:21;21506:7;21480:34;:25;:34;:::i;:::-;21443;:21;21469:7;21443:34;:25;:34;:::i;:::-;:71;;;;;;;;21436:78;;;;21386:128;21572:34;:21;21598:7;21572:34;:25;:34;:::i;:::-;21556:50;;21632:79;21638:5;21645:21;21668:20;21690;21632:5;:79::i;:::-;21610:101;;-1:-1:-1;21610:101:10;-1:-1:-1;21731:33:10;:21;21610:101;21731:33;:25;:33;:::i;:::-;21715:49;-1:-1:-1;;21784:34:10;;;;;;;21847:6;21830:13;;;21829:24;;;;;;;;21822:31;;20832:1025;;;;;;;;;;;;;:::o;28461:1167::-;28688:6;28696;29120:10;29192;28744:22;28712:28;:54;28708:310;;;28810:1;28779:28;:32;:64;;;;28842:1;28815:24;:28;28779:64;28771:104;;;;;;;-1:-1:-1;;;;;28771:104:10;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;28771:104:10;;;;;;;;;;;;;;;28708:310;;;28923:1;28892:28;:32;:62;;;;;28953:1;28928:22;:26;28892:62;:94;;;;;28985:1;28958:24;:28;28892:94;28884:134;;;;;;;-1:-1:-1;;;;;28884:134:10;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;28884:134:10;;;;;;;;;;;;;;;29054:1;29030:21;:25;:56;;;;;29085:1;29059:23;:27;29030:56;29022:93;;;;;;;-1:-1:-1;;;;;29022:93:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;29133:55;:28;29166:21;29133:55;:32;:55;:::i;:::-;29120:68;-1:-1:-1;29205:53:10;:24;29234:23;29205:53;:28;:53;:::i;:::-;29192:66;;29298:22;29267:28;:53;29263:159;;;29332:90;29355:22;29379:28;29409:2;29413;29417:4;29332:22;:90::i;:::-;29325:97;;;;;;29263:159;29462:22;29431:28;:53;29427:160;;;29496:91;29519:28;29549:22;29573:2;29577;29581:5;29496:22;:91::i;29427:160::-;29599:25;29617:2;29621;29599:17;:25::i;:::-;29592:32;;;;28461:1167;;;;;;;;;;;:::o;17006:70::-;17033:17;:15;:17::i;:::-;17054:18;:16;:18::i;:::-;17006:70::o;22464:824::-;22595:7;;;;;22636:11;;;22628:42;;;;;-1:-1:-1;;;;;22628:42:10;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;22628:42:10;;;;;;;;;;;;;;;22700:1;22682:19;;22674:59;;;;;-1:-1:-1;;;;;22674:59:10;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;22674:59:10;;;;;;;;;;;;;;;22761:1;22745:13;:17;;;:52;;;;-1:-1:-1;22783:14:10;22766:31;;;;;22745:52;22737:90;;;;;;;-1:-1:-1;;;;;22737:90:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;22867:12;;22863:26;;;22888:1;22881:8;;;;22863:26;22944:27;;;297:7;22944:27;22940:88;;;23017:7;23012:1;22981:28;:7;22993:15;22981:28;:11;:28;:::i;:::-;:32;22980:44;;;;;;;;23027:1;22980:48;22973:55;;;;22940:88;23086:20;:7;23098;23086:20;:11;:20;:::i;:::-;23070:36;;23132:48;23138:5;23145:7;297;23166:13;23132:5;:48::i;:::-;23110:70;;-1:-1:-1;23110:70:10;-1:-1:-1;23200:46:10;;;23231:1;23201:27;:15;23110:70;23201:27;:19;:27;:::i;:::-;23200:46;;;;;23201:31;;23200:46;23262:22;;;;23250:1;23262:22;;22464:824;-1:-1:-1;;;;;;;;22464:824:10:o;17659:817::-;17803:7;;;;;17844:11;;;17836:42;;;;;-1:-1:-1;;;;;17836:42:10;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;17836:42:10;;;;;;;;;;;;;;;17908:1;17890:19;;17882:59;;;;;-1:-1:-1;;;;;17882:59:10;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;17882:59:10;;;;;;;;;;;;;;;17970:1;17953:14;:18;;;:50;;;;-1:-1:-1;297:7:10;17975:28;;;;;17953:50;17945:89;;;;;;;-1:-1:-1;;;;;17945:89:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;18082:12;;18078:26;;;18103:1;18096:8;;;;18078:26;18152:28;;;297:7;18152:28;18148:79;;;18212:15;18189:20;:7;18201;18189:20;:11;:20;:::i;18148:79::-;18285:28;:7;18297:15;18285:28;:11;:28;:::i;924:197:69:-;984:7;;1023;;1019:21;;;1039:1;1032:8;;;;1019:21;-1:-1:-1;1057:7:69;;;1062:2;1057;:7;1076:6;;;;;;;;:12;1068:37;;;;;-1:-1:-1;;;;;1068:37:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;1116:1;1109:8;;924:197;;;;;;:::o;288:144::-;348:7;373;;;392;;;;384:32;;;;;-1:-1:-1;;;;;384:32:69;;;;;;;;;;;;;;;;;;;;;;;;;;;31126:662:10;31235:7;;;;;;639:35;31263:16;;31255:25;;;;;;31340:6;-1:-1:-1;;;31320:6:10;:16;31319:27;;;;;;;;31304:42;;1034:35;31354:4;:22;31350:106;;;31393:16;31404:4;31393:10;:16::i;:::-;31383:26;;31350:106;;;31435:16;31446:4;31435:10;:16::i;:::-;31425:26;;31350:106;31506:5;31486:25;;31497:5;31487:15;;:7;:15;31486:25;;;;;;;;31460:51;;1115:35;31519:15;:33;31515:270;;;31567:27;31578:15;31567:10;:27::i;:::-;390:3;31559:51;;;;;;31515:270;31644:42;31670:15;31644:25;:42::i;:::-;31626:60;-1:-1:-1;31699:69:10;31710:46;390:3;31730:25;;;31710:46;;;;;31626:60;31699:10;:69::i;:::-;31770:9;31691:89;;;;31515:270;31126:662;;;;;;;;;;;:::o;55947:451::-;56085:6;56093;56143:9;56181;56248;56280;56118:21;56130:3;56135;56118:11;:21::i;:::-;56105:34;;-1:-1:-1;56105:34:10;-1:-1:-1;56174:3:10;56155:16;:3;-1:-1:-1;;;56155:16:10;:7;:16;:::i;:::-;:22;;;;;;;;56143:34;;1034:35;56193:1;:19;:51;;56231:13;56242:1;56231:10;:13::i;:::-;56193:51;;;56215:13;56226:1;56215:10;:13::i;:::-;56181:63;-1:-1:-1;56273:3:10;56260:10;56181:63;56266:3;56260:10;:5;:10;:::i;:::-;:16;;;;;;;;56248:28;;56292:11;:44;;56322:14;56334:1;56322:11;:14::i;:::-;56292:44;;;56306:13;56317:1;56306:10;:13::i;:::-;56280:56;-1:-1:-1;56347:47:10;56365:10;56280:56;56371:3;56365:10;:5;:10;:::i;:::-;56377:16;:3;-1:-1:-1;;;56377:16:10;:7;:16;:::i;:::-;56347:17;:47::i;:::-;56340:54;;;;55947:451;;;;;;;;;;;;:::o;56924:209::-;56998:6;;;;57022:8;;;57018:44;;57039:23;57055:2;57059;57039:15;:23::i;:::-;57032:30;;;;;;57018:44;57089:23;57105:2;57109;57089:15;:23::i;:::-;57066:46;;;;57124:1;57127;57116:13;;;;56924:209;;;;;;;;:::o;1813:7651::-;3886:36;3880:2;3868:54;3944:36;3938:2;3926:54;4002:36;3996:2;3984:54;4060:36;4054:2;4042:54;4118:36;4112:2;4100:54;4176:36;4170:2;4158:54;4234:36;4228:2;4216:54;4292:36;4286:2;4274:54;4350:36;4344:2;4332:54;4408:36;4402:2;4390:54;4466:36;4460:2;4448:54;4524:36;4518:2;4506:54;4582:36;4576:2;4564:54;4640:36;4634:2;4622:54;4698:36;4692:2;4680:54;4756:36;4750:2;4738:54;4814:36;4808:2;4796:54;4872:36;4866:2;4854:54;4930:36;4924:2;4912:54;4988:36;4982:2;4970:54;5046:36;5040:2;5028:54;5104:36;5098:2;5086:54;5162:36;5156:2;5144:54;5220:36;5214:2;5202:54;5278:36;5272:2;5260:54;5336:36;5330:2;5318:54;5394:36;5388:2;5376:54;5452:36;5446:2;5434:54;5510:36;5504:2;5492:54;5568:36;5562:2;5550:54;5626:36;5620:2;5608:54;5684:36;5678:2;5666:54;5742:36;5736:2;5724:54;5800:36;5794:2;5782:54;5858:36;5852:2;5840:54;5916:36;5910:2;5898:54;5974:36;5968:2;5956:54;6032:36;6026:2;6014:54;6090:36;6084:2;6072:54;6148:36;6142:2;6130:54;6206:36;6200:2;6188:54;6264:36;6258:2;6246:54;6322:36;6316:2;6304:54;6380:36;6374:2;6362:54;6438:36;6432:2;6420:54;6496:36;6490:2;6478:54;6554:36;6548:2;6536:54;6612:36;6606:2;6594:54;6670:36;6664:2;6652:54;6728:36;6722:2;6710:54;6786:36;6780:2;6768:54;6844:36;6838:2;6826:54;6902:36;6896:2;6884:54;6960:36;6954:2;6942:54;7018:36;7012:2;7000:54;7076:36;7070:2;7058:54;7134:36;7128:2;7116:54;7192:36;7186:2;7174:54;7250:36;7244:2;7232:54;7308:36;7302:2;7290:54;7366:36;7360:2;7348:54;7424:36;7418:2;7406:54;7482:36;7476:2;7464:54;7540:36;7534:2;7522:54;7598:36;7592:2;7580:54;7656:36;7650:2;7638:54;7714:36;7708:2;7696:54;7772:36;7766:2;7754:54;7831:36;7824:3;7812:55;7890:36;7883:3;7871:55;7949:36;7942:3;7930:55;8008:36;8001:3;7989:55;8067:36;8060:3;8048:55;8126:36;8119:3;8107:55;8185:36;8178:3;8166:55;8244:36;8237:3;8225:55;8303:36;8296:3;8284:55;8362:36;8355:3;8343:55;8421:36;8414:3;8402:55;8480:36;8473:3;8461:55;8539:36;8532:3;8520:55;8598:36;8591:3;8579:55;8657:36;8650:3;8638:55;8716:36;8709:3;8697:55;8775:36;8768:3;8756:55;8834:36;8827:3;8815:55;8893:36;8886:3;8874:55;8952:36;8945:3;8933:55;9011:36;9004:3;8992:55;9070:36;9063:3;9051:55;9129:36;9122:3;9110:55;9188:36;9181:3;9169:55;9247:36;9240:3;9228:55;9306:36;9299:3;9287:55;9365:36;9358:3;9346:55;9424:36;3868:11;9417:3;9405:16;;:55;1813:7651::o;9560:7354::-;9618:34;9600:12;:52;;;9674:34;9656:15;:52;9730:34;9712:15;:52;9786:34;9768:15;:52;9842:34;9824:15;:52;9898:34;9880:15;:52;9954:34;9936:15;:52;10010:34;9992:15;:52;10066:34;10048:15;:52;10122:34;10104:15;:52;10179:34;10160:16;:53;10236:34;10217:16;:53;10293:34;10274:16;:53;10350:34;10331:16;:53;10407:34;10388:16;:53;10464:34;10445:16;:53;10521:34;10502:16;:53;10578:34;10559:16;:53;10635:34;10616:16;:53;10692:34;10673:16;:53;10749:34;10730:16;:53;10806:34;10787:16;:53;10863:34;10844:16;:53;10920:34;10901:16;:53;10977:34;10958:16;:53;11034:34;11015:16;:53;11091:34;11072:16;:53;11148:34;11129:16;:53;11205:34;11186:16;:53;11262:34;11243:16;:53;11319:34;11300:16;:53;11376:34;11357:16;:53;11433:34;11414:16;:53;11490:34;11471:16;:53;11547:34;11528:16;:53;11604:34;11585:16;:53;11661:34;11642:16;:53;11718:34;11699:16;:53;11775:34;11756:16;:53;11832:34;11813:16;:53;11889:34;11870:16;:53;11946:34;11927:16;:53;12003:34;11984:16;:53;12060:34;12041:16;:53;12117:34;12098:16;:53;12174:34;12155:16;:53;12231:34;12212:16;:53;12288:34;12269:16;:53;12345:34;12326:16;:53;12402:34;12383:16;:53;12459:34;12440:16;:53;12516:34;12497:16;:53;12573:34;12554:16;:53;12630:34;12611:16;:53;12687:34;12668:16;:53;12744:34;12725:16;:53;12801:34;12782:16;:53;12858:34;12839:16;:53;12915:34;12896:16;:53;12972:34;12953:16;:53;13029:34;13010:16;:53;13086:34;13067:16;:53;13143:34;13124:16;:53;13200:34;13181:16;:53;13257:34;13238:16;:53;13314:34;13295:16;:53;13371:34;13352:16;:53;13428:34;13409:16;:53;13485:34;13466:16;:53;13542:34;13523:16;:53;13599:34;13580:16;:53;13656:34;13637:16;:53;13713:34;13694:16;:53;13770:34;13751:16;:53;13827:34;13808:16;:53;13884:34;13865:16;:53;13941:34;13922:16;:53;13998:34;13979:16;:53;14055:34;14036:16;:53;14112:34;14093:16;:53;14169:34;14150:16;:53;14226:34;14207:16;:53;14283:34;14264:16;:53;14340:34;14321:16;:53;14397:34;14378:16;:53;14454:34;14435:16;:53;14511:34;14492:16;:53;14568:34;14549:16;:53;14625:34;14606:16;:53;14682:34;14663:16;:53;14739:34;14720:16;:53;14796:34;14777:16;:53;14853:34;14834:16;:53;14910:34;14891:16;:53;14967:34;14948:16;:53;15024:34;15005:16;:53;15081:34;15062:16;:53;15138:34;15119:16;:53;15195:34;15176:16;:53;15252:34;15233:16;:53;15310:34;15290:17;:54;15368:34;15348:17;:54;15426:34;15406:17;:54;15484:34;15464:17;:54;15542:34;15522:17;:54;15600:34;15580:17;:54;15658:34;15638:17;:54;15716:34;15696:17;:54;15774:34;15754:17;:54;15832:34;15812:17;:54;15890:34;15870:17;:54;15948:34;15928:17;:54;16006:34;15986:17;:54;16064:34;16044:17;:54;16122:34;16102:17;:54;16180:34;16160:17;:54;16238:34;16218:17;:54;16296:34;16276:17;:54;16354:34;16334:17;:54;16412:34;16392:17;:54;16470:34;16450:17;:54;16528:34;16508:17;:54;16586:34;16566:17;:54;16644:34;16624:17;:54;16702:34;16682:17;:54;16760:34;16740:17;:54;16818:34;16798:17;:54;16876:34;;16869:3;16856:17;;38641:2750;38695:7;;;;;38777:34;38772:39;;38768:155;;38825:34;38818:41;;;;;38884:34;-1:-1:-1;;;38869:11:10;;38868:50;38864:54;;38768:155;38950:34;38945:39;;38941:155;;38998:34;38991:41;;;;;39057:34;-1:-1:-1;;;39042:11:10;;39041:50;39037:54;;38941:155;39123:34;39118:39;;39114:155;;39171:34;39164:41;;;;;39230:34;-1:-1:-1;;;39215:11:10;;39214:50;39210:54;;39114:155;39296:34;39291:39;;39287:155;;39344:34;39337:41;;;;;39403:34;-1:-1:-1;;;39388:11:10;;39387:50;39383:54;;39287:155;39469:34;39464:39;;39460:155;;39517:34;39510:41;;;;;39576:34;-1:-1:-1;;;39561:11:10;;39560:50;39556:54;;39460:155;39642:34;39637:39;;39633:155;;39690:34;39683:41;;;;;39749:34;-1:-1:-1;;;39734:11:10;;39733:50;39729:54;;39633:155;39815:34;39810:39;;39806:155;;39863:34;39856:41;;;;;39922:34;-1:-1:-1;;;39907:11:10;;39906:50;39902:54;;39806:155;39988:34;39983:39;;39979:155;;40036:34;40029:41;;;;;40095:34;-1:-1:-1;;;40080:11:10;;40079:50;40075:54;;39979:155;-1:-1:-1;;40161:11:10;;;-1:-1:-1;40161:11:10;;-1:-1:-1;;;;40181:5:10;;;40180:17;;-1:-1:-1;;;;40214:39:10;;;40209:45;;40208:85;40201:92;;;;;-1:-1:-1;;;40302:5:10;;;40301:17;;-1:-1:-1;40408:35:10;40364;:39;;;40359:45;;40358:85;40351:92;;;;;-1:-1:-1;;;40452:5:10;;;40451:17;;-1:-1:-1;40558:35:10;40514;:39;;;40509:45;;40508:85;40501:92;;;;;-1:-1:-1;;;40602:5:10;;;40601:17;;-1:-1:-1;40708:35:10;40664;:39;;;40659:45;;40658:85;40651:92;;;;;-1:-1:-1;;;40752:5:10;;;40751:17;;-1:-1:-1;40858:35:10;40814;:39;;;40809:45;;40808:85;40801:92;;;;;-1:-1:-1;;;40902:5:10;;;40901:17;;-1:-1:-1;41008:35:10;40964;:39;;;40959:45;;40958:85;40951:92;;;;;-1:-1:-1;;;41052:5:10;;;41051:17;;-1:-1:-1;41158:35:10;41114;:39;;;41109:45;;41108:85;41101:92;;;;;-1:-1:-1;;;41202:5:10;;;41201:17;;-1:-1:-1;41308:35:10;41264;:39;;;41259:45;;41258:85;41251:92;;;;;38641:2750;-1:-1:-1;;;;;38641:2750:10:o;31943:641::-;31997:7;;;;-1:-1:-1;;;32119:12:10;;32115:119;;32152:22;-1:-1:-1;;;32162:1:10;:11;;32152:9;:22::i;:::-;32179:11;;;;;;;;;;;-1:-1:-1;;;32214:15:10;;-1:-1:-1;32138:36:10;-1:-1:-1;32115:119:10;-1:-1:-1;;;32327:1:10;:11;32323:207;;;-1:-1:-1;390:3:10;32345:181;32379:1;32375;:5;;;32345:181;;;-1:-1:-1;;;32398:5:10;;;32397:17;;-1:-1:-1;;;;32441:12:10;;32437:84;;32462:7;;;;;;32500:14;-1:-1:-1;;32508:5:10;;32500:14;;;32493:21;;;;;32437:84;-1:-1:-1;;32382:3:10;32345:181;;;859:33;780;32542:19;;32541:39;32534:46;;31943:641;;;;;;;:::o;42031:3074::-;42085:7;42430:18;-1:-1:-1;;;42153:38:10;;;42231:5;;;42230:17;;;42315:5;;;42314:17;;;42399:5;;;42398:17;;;42426:22;;;42262:18;42258:22;;;42346:18;42342:22;;;;42335:29;42419;;42153:38;;42483:5;;;42482:17;42478:21;;42510:1;42514:18;42510:22;42503:29;;;;-1:-1:-1;;;42571:1:10;42567;:5;42566:17;;;;;;;;42562:21;;42594:1;42598:18;42594:22;42587:29;;;;-1:-1:-1;;;42655:1:10;42651;:5;42650:17;;;;;;;;42646:21;;42678:1;42682:18;42678:22;42671:29;;;;-1:-1:-1;;;42739:1:10;42735;:5;42734:17;;;;;;;;42730:21;;42762:1;42766:18;42762:22;42755:29;;;;-1:-1:-1;;;42823:1:10;42819;:5;42818:17;;;;;;;;42814:21;;42846:1;42850:18;42846:22;42839:29;;;;-1:-1:-1;;;42907:1:10;42903;:5;42902:17;;;;;;;;42898:21;;42930:1;42934:18;42930:22;42923:29;;;;-1:-1:-1;;;42991:1:10;42987;:5;42986:17;;;;;;;;42982:21;;43014:1;43018:18;43014:22;43007:29;;;;-1:-1:-1;;;43075:1:10;43071;:5;43070:17;;;;;;;;43066:21;;43098:1;43102:18;43098:22;43091:29;;;;-1:-1:-1;;;43159:1:10;43155;:5;43154:17;;;;;;;;43150:21;;43182:1;43186:18;43182:22;43175:29;;;;-1:-1:-1;;;43243:1:10;43239;:5;43238:17;;;;;;;;43234:21;;43266:1;43270:18;43266:22;43259:29;;;;-1:-1:-1;;;43327:1:10;43323;:5;43322:17;;;;;;;;43318:21;;43350:1;43354:18;43350:22;43343:29;;;;-1:-1:-1;;;43411:1:10;43407;:5;43406:17;;;;;;;;43402:21;;43434:1;43438:18;43434:22;43427:29;;;;-1:-1:-1;;;43495:1:10;43491;:5;43490:17;;;;;;;;43486:21;;43518:1;43522:18;43518:22;43511:29;;;;-1:-1:-1;;;43579:1:10;43575;:5;43574:17;;;;;;;;43570:21;;43602:1;43606:18;43602:22;43595:29;;;;-1:-1:-1;;;43663:1:10;43659;:5;43658:17;;;;;;;;43654:21;;43686:1;43690:18;43686:22;43679:29;;;;-1:-1:-1;;;43747:1:10;43743;:5;43742:17;;;;;;;43834:18;43742:17;;;43763:29;;;43828:24;:28;;-1:-1:-1;;;43828:38:10;;43742:17;-1:-1:-1;43930:35:10;43926:39;;43925:46;43921:139;;44025:35;43986;43980:41;;43979:81;43973:87;;43921:139;44097:35;44093:39;;44092:46;44088:139;;44192:35;44153;44147:41;;44146:81;44140:87;;44088:139;44264:35;44260:39;;44259:46;44255:139;;44359:35;44320;44314:41;;44313:81;44307:87;;44255:139;-1:-1:-1;;;44427:39:10;;44426:46;44422:139;;44526:35;44487;44481:41;;44480:81;44474:87;;44422:139;-1:-1:-1;;;44594:39:10;;44593:46;44589:139;;44693:35;44654;44648:41;;44647:81;44641:87;;44589:139;44765:35;44761:39;;44760:46;44756:139;;44860:35;44821;44815:41;;44814:81;44808:87;;44756:139;44932:35;44928:39;;44927:46;44923:139;;45027:35;44988;44982:41;;44981:81;44975:87;;44923:139;-1:-1:-1;45098:3:10;;42031:3074;-1:-1:-1;;;42031:3074:10:o;33389:355::-;33459:5;346:2;390:3;33459:5;33527:114;33543:2;33534:11;;:2;33539:1;33534:6;:11;;;33527:114;;;33576:1;33564:13;33565:7;;;33564:13;;;-1:-1:-1;33606:2:10;33586:11;:16;;;;;;;;;;;;:22;33582:54;;33615:3;33610:8;;33582:54;;;33633:3;33628:8;;33582:54;33527:114;;;33668:2;33649:11;:15;;;;;;;;;;;;:21;33645:36;;33679:2;33672:9;;;;33645:36;33708:2;33689:11;:15;;;;;;;;;;;;:21;33685:36;;33719:2;33712:9;;;;34279:3677;34352:7;34365:10;34384:11;34378:2;34365:15;;34398:1;34384:15;;34422:10;34409:23;;34415:2;34410;:7;34409:23;;;;;34404:28;;34443:2;34448:33;34443:38;34436:45;;;;34529:10;34516:23;;34522:2;34517;:7;34516:23;;;;;34511:28;;34550:2;34555:33;34550:38;34543:45;;;;34636:10;34623:23;;34629:2;34624;:7;34623:23;;;;;34618:28;;34657:2;34662:33;34657:38;34650:45;;;;34743:10;34730:23;;34736:2;34731;:7;34730:23;;;;;34725:28;;34764:2;34769:33;34764:38;34757:45;;;;34850:10;34837:23;;34843:2;34838;:7;34837:23;;;;;34832:28;;34871:2;34876:33;34871:38;34864:45;;;;34957:10;34944:23;;34950:2;34945;:7;34944:23;;;;;34939:28;;34978:2;34983:33;34978:38;34971:45;;;;35064:10;35051:23;;35057:2;35052;:7;35051:23;;;;;35046:28;;35085:2;35090:33;35085:38;35078:45;;;;35171:10;35158:23;;35164:2;35159;:7;35158:23;;;;;35153:28;;35192:2;35197:33;35192:38;35185:45;;;;35278:10;35265:23;;35271:2;35266;:7;35265:23;;;;;35260:28;;35299:2;35304:33;35299:38;35292:45;;;;35385:10;35372:23;;35378:2;35373;:7;35372:23;;;;;35367:28;;35406:2;35411:33;35406:38;35399:45;;;;35492:10;35479:23;;35485:2;35480;:7;35479:23;;;;;35474:28;;35513:2;35518:33;35513:38;35506:45;;;;35599:10;35586:23;;35592:2;35587;:7;35586:23;;;;;35581:28;;35620:2;35625:33;35620:38;35613:45;;;;35706:10;35693:23;;35699:2;35694;:7;35693:23;;;;;35688:28;;35727:2;35732:33;35727:38;35720:45;;;;35813:10;35800:23;;35806:2;35801;:7;35800:23;;;;;35795:28;;35834:2;35839:33;35834:38;35827:45;;;;35920:10;35907:23;;35913:2;35908;:7;35907:23;;;;;35902:28;;35941:2;35946:33;35941:38;35934:45;;;;36027:10;36014:23;;36020:2;36015;:7;36014:23;;;;;36009:28;;36048:2;36053:33;36048:38;36041:45;;;;36134:10;36121:23;;36127:2;36122;:7;36121:23;;;;;36116:28;;36155:2;36160:33;36155:38;36148:45;;;;36241:10;36228:23;;36234:2;36229;:7;36228:23;;;;;36223:28;;36262:2;36267:33;36262:38;36255:45;;;;36348:10;36335:23;;36341:2;36336;:7;36335:23;;;;;36330:28;;36369:2;36374:33;36369:38;36362:45;;;;36455:10;36442:23;;36448:2;36443;:7;36442:23;;;;;36437:28;;36476:2;36481:33;36476:38;36469:45;;;;36562:10;36549:23;;36555:2;36550;:7;36549:23;;;;;36544:28;;36583:2;36588:33;36583:38;36576:45;;;;36669:10;36656:23;;36662:2;36657;:7;36656:23;;;;;36651:28;;36690:2;36695:33;36690:38;36683:45;;;;36776:10;36763:23;;36769:2;36764;:7;36763:23;;;;;36758:28;;36797:2;36802:33;36797:38;36790:45;;;;36883:10;36870:23;;36876:2;36871;:7;36870:23;;;;;36865:28;;36904:2;36909:33;36904:38;36897:45;;;;36990:10;36977:23;;36983:2;36978;:7;36977:23;;;;;36972:28;;37011:2;37016:33;37011:38;37004:45;;;;37097:10;37084:23;;37090:2;37085;:7;37084:23;;;;;37079:28;;37118:2;37123:33;37118:38;37111:45;;;;37204:10;37191:23;;37197:2;37192;:7;37191:23;;;;;37186:28;;37225:2;37230:33;37225:38;37218:45;;;;37311:10;37298:23;;37304:2;37299;:7;37298:23;;;;;37293:28;;37332:2;37337:33;37332:38;37325:45;;;;37418:10;37405:23;;37411:2;37406;:7;37405:23;;;;;37400:28;;37439:2;37444:33;37439:38;37432:45;;;;37525:10;37512:23;;37518:2;37513;:7;37512:23;;;;;37507:28;;37546:2;37551:33;37546:38;37539:45;;;;37632:10;37619:23;;37625:2;37620;:7;37619:23;;;;;37614:28;;37653:2;37658:33;37653:38;37646:45;;;;37739:10;37726:23;;37732:2;37727;:7;37726:23;;;;;37721:28;;37760:2;37765:33;37760:38;37753:45;;;;37891:10;37884:17;;256:1;37884:17;;;;37878:2;37842:33;37836:3;:39;;;;;;;;:44;:66;;34279:3677;-1:-1:-1;;;;;34279:3677:10:o;56471:363::-;56539:7;56548;56734:9;56767;-1:-1:-1;;;56565:2:10;:13;;:30;;;;;-1:-1:-1;;;56582:2:10;:13;;56565:30;56561:51;;;56605:2;56609;56597:15;;;;;;56561:51;-1:-1:-1;;;56620:2:10;:12;56616:55;;;56659:2;-1:-1:-1;;;56643:2:10;:12;56642:19;;;;;;;;-1:-1:-1;;;56634:37:10;;;;;;56616:55;-1:-1:-1;;;56679:2:10;:12;56675:55;;;-1:-1:-1;;;56727:2:10;-1:-1:-1;;;56711:2:10;:12;56710:19;;;;;;;;56693:37;;;;;;56675:55;56751:2;56746;:7;:17;;56761:2;56746:17;;;56756:2;56746:17;56734:29;-1:-1:-1;56779:22:10;-1:-1:-1;;;56734:29:10;56789:11;;56779:22;56767:34;;56813:7;;;;;;;56822;;;;;56471:363;-1:-1:-1;;;;56471:363:10:o;45508:161::-;45564:7;1259:36;45581:25;;45577:53;;45615:15;45627:2;45615:11;:15::i;:::-;45608:22;;;;45577:53;45663:2;45642:17;45641:24;;;;;;;;45634:31;;45508:161;;;;:::o;45177:257::-;45232:7;1259:36;45249:25;;45245:53;;45283:15;45295:2;45283:11;:15::i;45245:53::-;1431:36;45306:25;;45302:53;;45340:15;45352:2;45340:11;:15::i;45302:53::-;1517:36;45363:25;;45359:53;;45397:15;45409:2;45397:11;:15::i;57247:311::-;57319:6;57327;57369:9;57442;57495;1656:62;57343:2;:19;57339:100;;;57387:18;57381:2;:25;57409:1;57381:29;57369:41;;57421:1;57415:7;;;;;;;;;;;57433:1;57427:7;;;;;;;;;;;57339:100;57454:37;297:7;57463:15;;57480:10;57463:2;57487;57480:6;:10::i;:::-;57454:8;:37::i;:::-;57442:49;297:7;57507:14;;;;-1:-1:-1;57247:311:10;-1:-1:-1;;;;;;57247:311:10:o;32695:348::-;32749:5;;;32787:3;32782:8;;32778:247;;;32824:49;32836:1;32831:2;:6;32824:49;;;32845:8;;;;;32852:1;32859:8;;;;;32824:49;;;32778:247;;;-1:-1:-1;32930:3:10;32915:106;32939:1;32935;:5;;;32915:106;;;32968:8;;;;;32961:16;;32957:59;;32986:8;;;;;;;;;33001;;;;32957:59;32942:7;;;;;;32915:106;;51375:4429;51431:7;51457:2;51431:7;-1:-1:-1;;;51489:7:10;;;51488:19;;-1:-1:-1;51523:44:10;51518:49;;51511:56;-1:-1:-1;;;51619:7:10;;;51618:19;;-1:-1:-1;51653:44:10;51648:49;;51641:56;-1:-1:-1;;;51749:7:10;;;51748:19;;-1:-1:-1;51783:44:10;51778:49;;51771:56;-1:-1:-1;;;51879:7:10;;;51878:19;;-1:-1:-1;51913:44:10;51908:49;;51901:56;-1:-1:-1;;;52009:7:10;;;52008:19;;-1:-1:-1;52043:44:10;52038:49;;52031:56;-1:-1:-1;;;52139:7:10;;;52138:19;;-1:-1:-1;52173:44:10;52168:49;;52161:56;-1:-1:-1;;;52269:7:10;;;52268:19;;-1:-1:-1;52303:44:10;52298:49;;52291:56;-1:-1:-1;;;52399:7:10;;;52398:19;;-1:-1:-1;52433:44:10;52428:49;;52421:56;-1:-1:-1;;;52529:7:10;;;52528:19;;-1:-1:-1;52563:44:10;52558:49;;52551:56;-1:-1:-1;;;52659:7:10;;;52658:19;;-1:-1:-1;52693:44:10;52688:49;;52681:56;-1:-1:-1;;;52789:7:10;;;52788:19;;-1:-1:-1;52823:44:10;52818:49;;52811:56;-1:-1:-1;;;52919:7:10;;;52918:19;;-1:-1:-1;52953:44:10;52948:49;;52941:56;-1:-1:-1;;;53049:7:10;;;53048:19;;-1:-1:-1;53083:44:10;53078:49;;53071:56;-1:-1:-1;;;53179:7:10;;;53178:19;;-1:-1:-1;53213:44:10;53208:49;;53201:56;-1:-1:-1;;;53309:7:10;;;53308:19;;-1:-1:-1;53343:44:10;53338:49;;53331:56;-1:-1:-1;;;53439:7:10;;;53438:19;;-1:-1:-1;53473:44:10;53468:49;;53461:56;-1:-1:-1;;;53569:7:10;;;53568:19;;-1:-1:-1;53603:44:10;53598:49;;53591:56;-1:-1:-1;;;53699:7:10;;;53698:19;;-1:-1:-1;53733:44:10;53728:49;;53721:56;-1:-1:-1;;;53829:7:10;;;53828:19;;-1:-1:-1;53863:44:10;53858:49;;53851:56;-1:-1:-1;;;53959:7:10;;;53958:19;;-1:-1:-1;53993:44:10;53988:49;;53981:56;-1:-1:-1;;;54089:7:10;;;54088:19;;-1:-1:-1;54123:44:10;54118:49;;54111:56;-1:-1:-1;;;54219:7:10;;;54218:19;;-1:-1:-1;54253:44:10;54248:49;;54241:56;-1:-1:-1;;;54349:7:10;;;54348:19;;-1:-1:-1;54383:44:10;54378:49;;54371:56;-1:-1:-1;;;54479:7:10;;;54478:19;;-1:-1:-1;54513:44:10;54508:49;;54501:56;-1:-1:-1;;;54609:7:10;;;54608:19;;-1:-1:-1;54643:44:10;54638:49;;54631:56;-1:-1:-1;;;54739:7:10;;;54738:19;;-1:-1:-1;54773:44:10;54768:49;;54761:56;-1:-1:-1;;;54869:7:10;;;54868:19;;-1:-1:-1;54903:44:10;54898:49;;54891:56;-1:-1:-1;;;54999:7:10;;;54998:19;;-1:-1:-1;55033:44:10;55028:49;;55021:56;-1:-1:-1;;;55129:7:10;;;55128:19;;-1:-1:-1;55163:44:10;55158:49;;55151:56;-1:-1:-1;;;55259:7:10;;;55258:19;;-1:-1:-1;55293:44:10;55288:49;;55281:56;-1:-1:-1;;;55389:7:10;;;55388:19;;-1:-1:-1;55423:44:10;55418:49;;55411:56;-1:-1:-1;;;55519:7:10;;;55518:19;;-1:-1:-1;55553:44:10;55548:49;;55541:56;-1:-1:-1;;;55694:2:10;55657:34;55541:56;55651:40;:45;:55;;51375:4429;-1:-1:-1;;;;51375:4429:10:o;45837:4454::-;45893:7;45919:2;-1:-1:-1;;;45940:12:10;;;45956:34;45939:51;;46068:7;;;46067:19;;-1:-1:-1;46102:44:10;46097:49;;46090:56;-1:-1:-1;;;46198:7:10;;;46197:19;;-1:-1:-1;46232:44:10;46227:49;;46220:56;;-1:-1:-1;;;46328:7:10;;;46327:19;;-1:-1:-1;46362:44:10;46357:49;;46350:56;-1:-1:-1;;;46458:7:10;;;46457:19;;-1:-1:-1;46492:44:10;46487:49;;46480:56;;-1:-1:-1;;;46588:7:10;;;46587:19;;-1:-1:-1;46622:44:10;46617:49;;46610:56;-1:-1:-1;;;46718:7:10;;;46717:19;;-1:-1:-1;46752:44:10;46747:49;;46740:56;;-1:-1:-1;;;46848:7:10;;;46847:19;;-1:-1:-1;46882:44:10;46877:49;;46870:56;-1:-1:-1;;;46978:7:10;;;46977:19;;-1:-1:-1;47012:44:10;47007:49;;47000:56;;-1:-1:-1;;;47108:7:10;;;47107:19;;-1:-1:-1;47142:44:10;47137:49;;47130:56;-1:-1:-1;;;47238:7:10;;;47237:19;;-1:-1:-1;47272:44:10;47267:49;;47260:56;;-1:-1:-1;;;47368:7:10;;;47367:19;;-1:-1:-1;47402:44:10;47397:49;;47390:56;-1:-1:-1;;;47498:7:10;;;47497:19;;-1:-1:-1;47532:44:10;47527:49;;47520:56;;-1:-1:-1;;;47628:7:10;;;47627:19;;-1:-1:-1;47662:44:10;47657:49;;47650:56;-1:-1:-1;;;47758:7:10;;;47757:19;;-1:-1:-1;47792:44:10;47787:49;;47780:56;;-1:-1:-1;;;47888:7:10;;;47887:19;;-1:-1:-1;47922:44:10;47917:49;;47910:56;-1:-1:-1;;;48018:7:10;;;48017:19;;-1:-1:-1;48052:44:10;48047:49;;48040:56;;-1:-1:-1;;;48148:7:10;;;48147:19;;-1:-1:-1;48182:44:10;48177:49;;48170:56;-1:-1:-1;;;48278:7:10;;;48277:19;;-1:-1:-1;48312:44:10;48307:49;;48300:56;;-1:-1:-1;;;48408:7:10;;;48407:19;;-1:-1:-1;48442:44:10;48437:49;;48430:56;-1:-1:-1;;;48538:7:10;;;48537:19;;-1:-1:-1;48572:44:10;48567:49;;48560:56;;-1:-1:-1;;;48668:7:10;;;48667:19;;-1:-1:-1;48702:44:10;48697:49;;48690:56;-1:-1:-1;;;48798:7:10;;;48797:19;;-1:-1:-1;48832:44:10;48827:49;;48820:56;;-1:-1:-1;;;48928:7:10;;;48927:19;;-1:-1:-1;48962:44:10;48957:49;;48950:56;-1:-1:-1;;;49058:7:10;;;49057:19;;-1:-1:-1;49092:44:10;49087:49;;49080:56;;-1:-1:-1;;;49188:7:10;;;49187:19;;-1:-1:-1;49222:44:10;49217:49;;49210:56;-1:-1:-1;;;49318:7:10;;;49317:19;;-1:-1:-1;49352:44:10;49347:49;;49340:56;;-1:-1:-1;;;49448:7:10;;;49447:19;;-1:-1:-1;49482:44:10;49477:49;;49470:56;-1:-1:-1;;;49578:7:10;;;49577:19;;-1:-1:-1;49612:44:10;49607:49;;49600:56;;-1:-1:-1;;;49708:7:10;;;49707:19;;-1:-1:-1;49742:44:10;49737:49;;49730:56;-1:-1:-1;;;49838:7:10;;;49837:19;;-1:-1:-1;49872:44:10;49867:49;;49860:56;;-1:-1:-1;;;49968:7:10;;;49967:19;;-1:-1:-1;50002:44:10;49997:49;;49990:56;-1:-1:-1;;;50098:7:10;;;50097:19;;-1:-1:-1;50132:44:10;50127:49;;50120:56;;50236:34;50120:56;50230:40;;;45837:4454;-1:-1:-1;;;;45837:4454:10:o;50432:362::-;50488:7;-1:-1:-1;;50513:28:10;;1345:36;50557:23;;;;50596;;;;50662:1;50658:5;;50635:29;50488:7;;50680:12;50557:23;50680:15;;;;;;;;;;-1:-1:-1;50711:12:10;50728:1;50724:5;;50711:19;;;;;;;;;1345:36;50761:5;;;50756:11;50747:5;;;;50742:11;:25;;;;50741:49;;;-1:-1:-1;;;;50432:362:10:o;50935:270::-;50991:7;51004:10;51075;1034:35;51017:2;:20;:54;;51057:14;51068:2;51057:10;:14::i;:::-;51017:54;;;51040:14;51051:2;51040:10;:14::i;:::-;51004:67;;1034:35;51088:2;:20;:54;;51128:14;51139:2;51128:10;:14::i;:::-;51088:54;;;51111:14;51122:2;51111:10;:14::i;:::-;51075:67;;51199:2;-1:-1:-1;;;51182:2:10;-1:-1:-1;;;51166:2:10;:12;51165:19;;;;;;;;51160:2;51155;:7;:29;51154:41;51153:48;;;;;;57666:124;57731:7;57784:1;57779:2;:6;57774:2;:11;57767:2;57762;:7;;;;;;;;57761:25;;;;;;;;57756:2;57751;:7;;;;;;;;:35;;57666:124;-1:-1:-1;;;57666:124:10:o" + }, + "methodIdentifiers": { + "balancedWeights(uint256,uint256,uint256,uint256,uint256)": "a11aa1b4", + "calculateCrossConnectorReturn(uint256,uint32,uint256,uint32,uint256)": "65098bb3", + "calculateCrossReserveReturn(uint256,uint32,uint256,uint32,uint256)": "79c1b450", + "calculateFundCost(uint256,uint256,uint32,uint256)": "1da6bbfb", + "calculateLiquidateReturn(uint256,uint256,uint32,uint256)": "abfd231d", + "calculatePurchaseReturn(uint256,uint256,uint32,uint256)": "29a00e7c", + "calculateSaleReturn(uint256,uint256,uint32,uint256)": "49f9b0f7", + "crossReserveRate(uint256,uint32,uint256,uint32,uint256)": "9d114108", + "crossReserveTargetAmount(uint256,uint32,uint256,uint32,uint256)": "94491fab", + "fundCost(uint256,uint256,uint32,uint256)": "ebbb2158", + "fundSupplyAmount(uint256,uint256,uint32,uint256)": "2f55bdb5", + "init()": "e1c7392a", + "liquidateRate(uint256,uint256,uint32,uint256)": "35b49af4", + "liquidateReserveAmount(uint256,uint256,uint32,uint256)": "8074590a", + "purchaseRate(uint256,uint256,uint32,uint256)": "48d73fed", + "purchaseTargetAmount(uint256,uint256,uint32,uint256)": "f3250fe2", + "saleRate(uint256,uint256,uint32,uint256)": "f732f1c9", + "saleTargetAmount(uint256,uint256,uint32,uint256)": "76cf0b56", + "version()": "54fd4d50" + } + }, + "userdoc": { + "methods": {} + } + } + }, + "solidity/contracts/converter/interfaces/IConverter.sol": { + "IConverter": { + "abi": [ + { + "constant": true, + "inputs": [ + { + "name": "_address", + "type": "address" + } + ], + "name": "connectors", + "outputs": [ + { + "name": "", + "type": "uint256" + }, + { + "name": "", + "type": "uint32" + }, + { + "name": "", + "type": "bool" + }, + { + "name": "", + "type": "bool" + }, + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_index", + "type": "uint256" + } + ], + "name": "connectorTokens", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_newOwner", + "type": "address" + } + ], + "name": "transferTokenOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "isActive", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "acceptTokenOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "converterType", + "outputs": [ + { + "name": "", + "type": "uint16" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_whitelist", + "type": "address" + } + ], + "name": "setConversionWhitelist", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "conversionFee", + "outputs": [ + { + "name": "", + "type": "uint32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_token", + "type": "address" + }, + { + "name": "_to", + "type": "address" + }, + { + "name": "_amount", + "type": "uint256" + } + ], + "name": "withdrawTokens", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_newOwner", + "type": "address" + } + ], + "name": "transferAnchorOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_to", + "type": "address" + } + ], + "name": "withdrawETH", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_token", + "type": "address" + }, + { + "name": "_ratio", + "type": "uint32" + } + ], + "name": "addReserve", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "connectorTokenCount", + "outputs": [ + { + "name": "", + "type": "uint16" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "acceptOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "owner", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "maxConversionFee", + "outputs": [ + { + "name": "", + "type": "uint32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_sourceToken", + "type": "address" + }, + { + "name": "_targetToken", + "type": "address" + }, + { + "name": "_amount", + "type": "uint256" + } + ], + "name": "targetAmountAndFee", + "outputs": [ + { + "name": "", + "type": "uint256" + }, + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "conversionWhitelist", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "acceptAnchorOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "anchor", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_connectorToken", + "type": "address" + } + ], + "name": "getConnectorBalance", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_reserveToken", + "type": "address" + } + ], + "name": "reserveBalance", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_sourceToken", + "type": "address" + }, + { + "name": "_targetToken", + "type": "address" + }, + { + "name": "_amount", + "type": "uint256" + }, + { + "name": "_trader", + "type": "address" + }, + { + "name": "_beneficiary", + "type": "address" + } + ], + "name": "convert", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": true, + "stateMutability": "payable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_conversionFee", + "type": "uint32" + } + ], + "name": "setConversionFee", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "token", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "payable": true, + "stateMutability": "payable", + "type": "fallback" + } + ], + "devdoc": { + "methods": {} + }, + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "acceptAnchorOwnership()": "cdc91c69", + "acceptOwnership()": "79ba5097", + "acceptTokenOwnership()": "38a5e016", + "addReserve(address,uint32)": "6a49d2c4", + "anchor()": "d3fb73b4", + "connectorTokenCount()": "71f52bf3", + "connectorTokens(uint256)": "19b64015", + "connectors(address)": "0e53aae9", + "conversionFee()": "579cd3ca", + "conversionWhitelist()": "c45d3d92", + "convert(address,address,uint256,address,address)": "e8dc12ff", + "converterType()": "3e8ff43f", + "getConnectorBalance(address)": "d8959512", + "isActive()": "22f3e2d4", + "maxConversionFee()": "94c275ad", + "owner()": "8da5cb5b", + "reserveBalance(address)": "dc8de379", + "setConversionFee(uint32)": "ecbca55d", + "setConversionWhitelist(address)": "4af80f0e", + "targetAmountAndFee(address,address,uint256)": "af94b8d8", + "token()": "fc0c546a", + "transferAnchorOwnership(address)": "67b6d57c", + "transferOwnership(address)": "f2fde38b", + "transferTokenOwnership(address)": "21e6b53d", + "withdrawETH(address)": "690d8320", + "withdrawTokens(address,address,uint256)": "5e35359e" + } + }, + "userdoc": { + "methods": {} + } + } + }, + "solidity/contracts/converter/interfaces/IConverterAnchor.sol": { + "IConverterAnchor": { + "abi": [ + { + "constant": false, + "inputs": [ + { + "name": "_token", + "type": "address" + }, + { + "name": "_to", + "type": "address" + }, + { + "name": "_amount", + "type": "uint256" + } + ], + "name": "withdrawTokens", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "acceptOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "owner", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ], + "devdoc": { + "methods": {} + }, + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "acceptOwnership()": "79ba5097", + "owner()": "8da5cb5b", + "transferOwnership(address)": "f2fde38b", + "withdrawTokens(address,address,uint256)": "5e35359e" + } + }, + "userdoc": { + "methods": {} + } + } + }, + "solidity/contracts/converter/interfaces/IConverterFactory.sol": { + "IConverterFactory": { + "abi": [ + { + "constant": false, + "inputs": [ + { + "name": "_type", + "type": "uint16" + }, + { + "name": "_anchor", + "type": "address" + }, + { + "name": "_registry", + "type": "address" + }, + { + "name": "_maxConversionFee", + "type": "uint32" + } + ], + "name": "createConverter", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_type", + "type": "uint16" + }, + { + "name": "_name", + "type": "string" + }, + { + "name": "_symbol", + "type": "string" + }, + { + "name": "_decimals", + "type": "uint8" + } + ], + "name": "createAnchor", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_type", + "type": "uint16" + } + ], + "name": "customFactories", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + } + ], + "devdoc": { + "methods": {} + }, + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "createAnchor(uint16,string,string,uint8)": "2e9ab7b3", + "createConverter(uint16,address,address,uint32)": "15f64b6a", + "customFactories(uint16)": "c977aed2" + } + }, + "userdoc": { + "methods": {} + } + } + }, + "solidity/contracts/converter/interfaces/IConverterRegistry.sol": { + "IConverterRegistry": { + "abi": [ + { + "constant": true, + "inputs": [ + { + "name": "_convertibleToken", + "type": "address" + } + ], + "name": "getConvertibleTokenAnchors", + "outputs": [ + { + "name": "", + "type": "address[]" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_value", + "type": "address" + } + ], + "name": "isConvertibleToken", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_convertibleToken", + "type": "address" + } + ], + "name": "getConvertibleTokenAnchorCount", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_index", + "type": "uint256" + } + ], + "name": "getAnchor", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getConvertibleTokens", + "outputs": [ + { + "name": "", + "type": "address[]" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_convertibleToken", + "type": "address" + }, + { + "name": "_index", + "type": "uint256" + } + ], + "name": "getConvertibleTokenAnchor", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getConvertibleTokenCount", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getLiquidityPoolCount", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getLiquidityPools", + "outputs": [ + { + "name": "", + "type": "address[]" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_index", + "type": "uint256" + } + ], + "name": "getConvertibleToken", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_index", + "type": "uint256" + } + ], + "name": "getLiquidityPool", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_convertibleToken", + "type": "address" + }, + { + "name": "_value", + "type": "address" + } + ], + "name": "isConvertibleTokenAnchor", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getAnchorCount", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_value", + "type": "address" + } + ], + "name": "isAnchor", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_value", + "type": "address" + } + ], + "name": "isLiquidityPool", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getAnchors", + "outputs": [ + { + "name": "", + "type": "address[]" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + } + ], + "devdoc": { + "methods": {} + }, + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "getAnchor(uint256)": "4c7df18f", + "getAnchorCount()": "d3182bed", + "getAnchors()": "effb3c6e", + "getConvertibleToken(uint256)": "865cf194", + "getConvertibleTokenAnchor(address,uint256)": "603f51e4", + "getConvertibleTokenAnchorCount(address)": "49c5f32b", + "getConvertibleTokenAnchors(address)": "11839064", + "getConvertibleTokenCount()": "69be4784", + "getConvertibleTokens()": "5f1b50fe", + "getLiquidityPool(uint256)": "a74498aa", + "getLiquidityPoolCount()": "7a5f0ffd", + "getLiquidityPools()": "7f45c4c3", + "isAnchor(address)": "d8cced2a", + "isConvertibleToken(address)": "3ab8857c", + "isConvertibleTokenAnchor(address,address)": "b4c4197a", + "isLiquidityPool(address)": "e85455d7" + } + }, + "userdoc": { + "methods": {} + } + } + }, + "solidity/contracts/converter/interfaces/IConverterRegistryData.sol": { + "IConverterRegistryData": { + "abi": [ + { + "constant": true, + "inputs": [], + "name": "getSmartTokens", + "outputs": [ + { + "name": "", + "type": "address[]" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_convertibleToken", + "type": "address" + }, + { + "name": "_smartToken", + "type": "address" + } + ], + "name": "addConvertibleToken", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_value", + "type": "address" + } + ], + "name": "isConvertibleToken", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_value", + "type": "address" + } + ], + "name": "isSmartToken", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getConvertibleTokens", + "outputs": [ + { + "name": "", + "type": "address[]" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getConvertibleTokenCount", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_convertibleToken", + "type": "address" + }, + { + "name": "_value", + "type": "address" + } + ], + "name": "isConvertibleTokenSmartToken", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getLiquidityPoolCount", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getLiquidityPools", + "outputs": [ + { + "name": "", + "type": "address[]" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_index", + "type": "uint256" + } + ], + "name": "getConvertibleToken", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_smartToken", + "type": "address" + } + ], + "name": "addSmartToken", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_index", + "type": "uint256" + } + ], + "name": "getSmartToken", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_convertibleToken", + "type": "address" + } + ], + "name": "getConvertibleTokenSmartTokenCount", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_index", + "type": "uint256" + } + ], + "name": "getLiquidityPool", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_liquidityPool", + "type": "address" + } + ], + "name": "removeLiquidityPool", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_smartToken", + "type": "address" + } + ], + "name": "removeSmartToken", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_convertibleToken", + "type": "address" + }, + { + "name": "_index", + "type": "uint256" + } + ], + "name": "getConvertibleTokenSmartToken", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getSmartTokenCount", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_value", + "type": "address" + } + ], + "name": "isLiquidityPool", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_liquidityPool", + "type": "address" + } + ], + "name": "addLiquidityPool", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_convertibleToken", + "type": "address" + } + ], + "name": "getConvertibleTokenSmartTokens", + "outputs": [ + { + "name": "", + "type": "address[]" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_convertibleToken", + "type": "address" + }, + { + "name": "_smartToken", + "type": "address" + } + ], + "name": "removeConvertibleToken", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ], + "devdoc": { + "methods": {} + }, + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "addConvertibleToken(address,address)": "36900c11", + "addLiquidityPool(address)": "ee6a934c", + "addSmartToken(address)": "8de6c3eb", + "getConvertibleToken(uint256)": "865cf194", + "getConvertibleTokenCount()": "69be4784", + "getConvertibleTokenSmartToken(address,uint256)": "d6c4b5b2", + "getConvertibleTokenSmartTokenCount(address)": "a43d5e94", + "getConvertibleTokenSmartTokens(address)": "f4fb86c0", + "getConvertibleTokens()": "5f1b50fe", + "getLiquidityPool(uint256)": "a74498aa", + "getLiquidityPoolCount()": "7a5f0ffd", + "getLiquidityPools()": "7f45c4c3", + "getSmartToken(uint256)": "a109d214", + "getSmartTokenCount()": "e571049b", + "getSmartTokens()": "04ceaf41", + "isConvertibleToken(address)": "3ab8857c", + "isConvertibleTokenSmartToken(address,address)": "725b8786", + "isLiquidityPool(address)": "e85455d7", + "isSmartToken(address)": "4123ef60", + "removeConvertibleToken(address,address)": "fba8f031", + "removeLiquidityPool(address)": "ae22107f", + "removeSmartToken(address)": "ceb9838c" + } + }, + "userdoc": { + "methods": {} + } + } + }, + "solidity/contracts/converter/interfaces/IConverterUpgrader.sol": { + "IConverterUpgrader": { + "abi": [ + { + "constant": false, + "inputs": [ + { + "name": "_version", + "type": "uint16" + } + ], + "name": "upgrade", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_version", + "type": "bytes32" + } + ], + "name": "upgrade", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ], + "devdoc": { + "methods": {} + }, + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "upgrade(bytes32)": "bc444e13", + "upgrade(uint16)": "90f58c96" + } + }, + "userdoc": { + "methods": {} + } + } + }, + "solidity/contracts/converter/interfaces/ISovrynSwapFormula.sol": { + "ISovrynSwapFormula": { + "abi": [ + { + "constant": true, + "inputs": [ + { + "name": "_supply", + "type": "uint256" + }, + { + "name": "_reserveBalance", + "type": "uint256" + }, + { + "name": "_reserveRatio", + "type": "uint32" + }, + { + "name": "_amount", + "type": "uint256" + } + ], + "name": "fundSupplyAmount", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_supply", + "type": "uint256" + }, + { + "name": "_reserveBalance", + "type": "uint256" + }, + { + "name": "_reserveWeight", + "type": "uint32" + }, + { + "name": "_amount", + "type": "uint256" + } + ], + "name": "saleTargetAmount", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_supply", + "type": "uint256" + }, + { + "name": "_reserveBalance", + "type": "uint256" + }, + { + "name": "_reserveRatio", + "type": "uint32" + }, + { + "name": "_amount", + "type": "uint256" + } + ], + "name": "liquidateReserveAmount", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_sourceReserveBalance", + "type": "uint256" + }, + { + "name": "_sourceReserveWeight", + "type": "uint32" + }, + { + "name": "_targetReserveBalance", + "type": "uint256" + }, + { + "name": "_targetReserveWeight", + "type": "uint32" + }, + { + "name": "_amount", + "type": "uint256" + } + ], + "name": "crossReserveTargetAmount", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_primaryReserveStakedBalance", + "type": "uint256" + }, + { + "name": "_primaryReserveBalance", + "type": "uint256" + }, + { + "name": "_secondaryReserveBalance", + "type": "uint256" + }, + { + "name": "_reserveRateNumerator", + "type": "uint256" + }, + { + "name": "_reserveRateDenominator", + "type": "uint256" + } + ], + "name": "balancedWeights", + "outputs": [ + { + "name": "", + "type": "uint32" + }, + { + "name": "", + "type": "uint32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_supply", + "type": "uint256" + }, + { + "name": "_reserveBalance", + "type": "uint256" + }, + { + "name": "_reserveRatio", + "type": "uint32" + }, + { + "name": "_amount", + "type": "uint256" + } + ], + "name": "fundCost", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_supply", + "type": "uint256" + }, + { + "name": "_reserveBalance", + "type": "uint256" + }, + { + "name": "_reserveWeight", + "type": "uint32" + }, + { + "name": "_amount", + "type": "uint256" + } + ], + "name": "purchaseTargetAmount", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + } + ], + "devdoc": { + "methods": {} + }, + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "balancedWeights(uint256,uint256,uint256,uint256,uint256)": "a11aa1b4", + "crossReserveTargetAmount(uint256,uint32,uint256,uint32,uint256)": "94491fab", + "fundCost(uint256,uint256,uint32,uint256)": "ebbb2158", + "fundSupplyAmount(uint256,uint256,uint32,uint256)": "2f55bdb5", + "liquidateReserveAmount(uint256,uint256,uint32,uint256)": "8074590a", + "purchaseTargetAmount(uint256,uint256,uint32,uint256)": "f3250fe2", + "saleTargetAmount(uint256,uint256,uint32,uint256)": "76cf0b56" + } + }, + "userdoc": { + "methods": {} + } + } + }, + "solidity/contracts/converter/interfaces/ITypedConverterAnchorFactory.sol": { + "ITypedConverterAnchorFactory": { + "abi": [ + { + "constant": true, + "inputs": [], + "name": "converterType", + "outputs": [ + { + "name": "", + "type": "uint16" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_name", + "type": "string" + }, + { + "name": "_symbol", + "type": "string" + }, + { + "name": "_decimals", + "type": "uint8" + } + ], + "name": "createAnchor", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ], + "devdoc": { + "methods": {} + }, + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "converterType()": "3e8ff43f", + "createAnchor(string,string,uint8)": "a9fd4a2a" + } + }, + "userdoc": { + "methods": {} + } + } + }, + "solidity/contracts/converter/interfaces/ITypedConverterCustomFactory.sol": { + "ITypedConverterCustomFactory": { + "abi": [ + { + "constant": true, + "inputs": [], + "name": "converterType", + "outputs": [ + { + "name": "", + "type": "uint16" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + } + ], + "devdoc": { + "methods": {} + }, + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "converterType()": "3e8ff43f" + } + }, + "userdoc": { + "methods": {} + } + } + }, + "solidity/contracts/converter/interfaces/ITypedConverterFactory.sol": { + "ITypedConverterFactory": { + "abi": [ + { + "constant": false, + "inputs": [ + { + "name": "_anchor", + "type": "address" + }, + { + "name": "_registry", + "type": "address" + }, + { + "name": "_maxConversionFee", + "type": "uint32" + } + ], + "name": "createConverter", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "converterType", + "outputs": [ + { + "name": "", + "type": "uint16" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + } + ], + "devdoc": { + "methods": {} + }, + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "converterType()": "3e8ff43f", + "createConverter(address,address,uint32)": "11413958" + } + }, + "userdoc": { + "methods": {} + } + } + }, + "solidity/contracts/converter/types/liquid-token/LiquidTokenConverter.sol": { + "LiquidTokenConverter": { + "abi": [ + { + "constant": false, + "inputs": [ + { + "name": "_onlyOwnerCanUpdateRegistry", + "type": "bool" + } + ], + "name": "restrictRegistryUpdate", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "reserveRatio", + "outputs": [ + { + "name": "", + "type": "uint32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_address", + "type": "address" + } + ], + "name": "connectors", + "outputs": [ + { + "name": "", + "type": "uint256" + }, + { + "name": "", + "type": "uint32" + }, + { + "name": "", + "type": "bool" + }, + { + "name": "", + "type": "bool" + }, + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "hasETHReserve", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_index", + "type": "uint256" + } + ], + "name": "connectorTokens", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_reserveToken", + "type": "address" + } + ], + "name": "reserveWeight", + "outputs": [ + { + "name": "", + "type": "uint32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_sourceToken", + "type": "address" + }, + { + "name": "_targetToken", + "type": "address" + }, + { + "name": "_amount", + "type": "uint256" + } + ], + "name": "getReturn", + "outputs": [ + { + "name": "", + "type": "uint256" + }, + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_newOwner", + "type": "address" + } + ], + "name": "transferTokenOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "isActive", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "onlyOwnerCanUpdateRegistry", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "acceptTokenOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_token", + "type": "address" + }, + { + "name": "_to", + "type": "address" + }, + { + "name": "_amount", + "type": "uint256" + } + ], + "name": "withdrawFromAnchor", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "converterType", + "outputs": [ + { + "name": "", + "type": "uint16" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "updateRegistry", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_whitelist", + "type": "address" + } + ], + "name": "setConversionWhitelist", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "version", + "outputs": [ + { + "name": "", + "type": "uint16" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "conversionFee", + "outputs": [ + { + "name": "", + "type": "uint32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_token", + "type": "address" + }, + { + "name": "_to", + "type": "address" + }, + { + "name": "_amount", + "type": "uint256" + } + ], + "name": "withdrawTokens", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "prevRegistry", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_newOwner", + "type": "address" + } + ], + "name": "transferAnchorOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_to", + "type": "address" + } + ], + "name": "withdrawETH", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_token", + "type": "address" + }, + { + "name": "_weight", + "type": "uint32" + } + ], + "name": "addReserve", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "connectorTokenCount", + "outputs": [ + { + "name": "", + "type": "uint16" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "acceptOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "registry", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "owner", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "maxConversionFee", + "outputs": [ + { + "name": "", + "type": "uint32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "reserveTokenCount", + "outputs": [ + { + "name": "", + "type": "uint16" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_sourceToken", + "type": "address" + }, + { + "name": "_targetToken", + "type": "address" + }, + { + "name": "_amount", + "type": "uint256" + } + ], + "name": "targetAmountAndFee", + "outputs": [ + { + "name": "", + "type": "uint256" + }, + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "restoreRegistry", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "conversionsEnabled", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "conversionWhitelist", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "acceptAnchorOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "", + "type": "uint256" + } + ], + "name": "reserveTokens", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "isV28OrHigher", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "anchor", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "newOwner", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "upgrade", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "", + "type": "address" + } + ], + "name": "reserves", + "outputs": [ + { + "name": "balance", + "type": "uint256" + }, + { + "name": "weight", + "type": "uint32" + }, + { + "name": "deprecated1", + "type": "bool" + }, + { + "name": "deprecated2", + "type": "bool" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_connectorToken", + "type": "address" + } + ], + "name": "getConnectorBalance", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_reserveToken", + "type": "address" + } + ], + "name": "reserveBalance", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_sourceToken", + "type": "address" + }, + { + "name": "_targetToken", + "type": "address" + }, + { + "name": "_amount", + "type": "uint256" + }, + { + "name": "_trader", + "type": "address" + }, + { + "name": "_beneficiary", + "type": "address" + } + ], + "name": "convert", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": true, + "stateMutability": "payable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_conversionFee", + "type": "uint32" + } + ], + "name": "setConversionFee", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "token", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "name": "_token", + "type": "address" + }, + { + "name": "_registry", + "type": "address" + }, + { + "name": "_maxConversionFee", + "type": "uint32" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "payable": true, + "stateMutability": "payable", + "type": "fallback" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "_type", + "type": "uint16" + }, + { + "indexed": true, + "name": "_anchor", + "type": "address" + }, + { + "indexed": true, + "name": "_activated", + "type": "bool" + } + ], + "name": "Activation", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "_fromToken", + "type": "address" + }, + { + "indexed": true, + "name": "_toToken", + "type": "address" + }, + { + "indexed": true, + "name": "_trader", + "type": "address" + }, + { + "indexed": false, + "name": "_amount", + "type": "uint256" + }, + { + "indexed": false, + "name": "_return", + "type": "uint256" + }, + { + "indexed": false, + "name": "_conversionFee", + "type": "int256" + } + ], + "name": "Conversion", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "_token1", + "type": "address" + }, + { + "indexed": true, + "name": "_token2", + "type": "address" + }, + { + "indexed": false, + "name": "_rateN", + "type": "uint256" + }, + { + "indexed": false, + "name": "_rateD", + "type": "uint256" + } + ], + "name": "TokenRateUpdate", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "_prevFee", + "type": "uint32" + }, + { + "indexed": false, + "name": "_newFee", + "type": "uint32" + } + ], + "name": "ConversionFeeUpdate", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "_prevOwner", + "type": "address" + }, + { + "indexed": true, + "name": "_newOwner", + "type": "address" + } + ], + "name": "OwnerUpdate", + "type": "event" + } + ], + "devdoc": { + "methods": { + "acceptAnchorOwnership()": { + "details": "accepts ownership of the anchor after an ownership transfer\r also activates the converter\r can only be called by the contract owner\r note that prior to version 28, you should use 'acceptTokenOwnership' instead\r" + }, + "acceptOwnership()": { + "details": "used by a new owner to accept an ownership transfer" + }, + "acceptTokenOwnership()": { + "details": "deprecated, backward compatibility" + }, + "addReserve(address,uint32)": { + "details": "defines the reserve token for the converter\r can only be called by the owner while the converter is inactive and the\r reserve wasn't defined yet\r ", + "params": { + "_token": "address of the reserve token\r", + "_weight": "reserve weight, represented in ppm, 1-1000000\r" + } + }, + "connectorTokenCount()": { + "details": "deprecated, backward compatibility" + }, + "connectorTokens(uint256)": { + "details": "deprecated, backward compatibility" + }, + "connectors(address)": { + "details": "deprecated, backward compatibility" + }, + "convert(address,address,uint256,address,address)": { + "details": "converts a specific amount of source tokens to target tokens can only be called by the SovrynSwap network contract", + "params": { + "_amount": "amount of tokens to convert (in units of the source token)", + "_beneficiary": "wallet to receive the conversion result", + "_sourceToken": "source ERC20 token", + "_targetToken": "target ERC20 token", + "_trader": "address of the caller who executed the conversion" + }, + "return": "amount of tokens received (in units of the target token)" + }, + "converterType()": { + "details": "returns the converter type\r ", + "return": "see the converter types in the the main contract doc\r" + }, + "getConnectorBalance(address)": { + "details": "deprecated, backward compatibility" + }, + "getReturn(address,address,uint256)": { + "details": "deprecated, backward compatibility" + }, + "hasETHReserve()": { + "details": "checks whether or not the converter has an ETH reserve", + "return": "true if the converter has an ETH reserve, false otherwise" + }, + "isActive()": { + "details": "returns true if the converter is active, false otherwise", + "return": "true if the converter is active, false otherwise" + }, + "isV28OrHigher()": { + "details": "checks whether or not the converter version is 28 or higher", + "return": "true, since the converter version is 28 or higher" + }, + "reserveBalance(address)": { + "details": "returns the reserve's balance note that prior to version 17, you should use 'getConnectorBalance' instead", + "params": { + "_reserveToken": "reserve token contract address" + }, + "return": "reserve balance" + }, + "reserveTokenCount()": { + "details": "returns the number of reserve tokens defined note that prior to version 17, you should use 'connectorTokenCount' instead", + "return": "number of reserve tokens" + }, + "reserveWeight(address)": { + "details": "returns the reserve's weight added in version 28", + "params": { + "_reserveToken": "reserve token contract address" + }, + "return": "reserve weight" + }, + "restoreRegistry()": { + "details": "restores the previous contract-registry" + }, + "restrictRegistryUpdate(bool)": { + "details": "restricts the permission to update the contract-registry", + "params": { + "_onlyOwnerCanUpdateRegistry": "indicates whether or not permission is restricted to owner only" + } + }, + "setConversionFee(uint32)": { + "details": "updates the current conversion fee can only be called by the contract owner", + "params": { + "_conversionFee": "new conversion fee, represented in ppm" + } + }, + "setConversionWhitelist(address)": { + "details": "allows the owner to update & enable the conversion whitelist contract address when set, only addresses that are whitelisted are actually allowed to use the converter note that the whitelist check is actually done by the SovrynSwapNetwork contract", + "params": { + "_whitelist": "address of a whitelist contract" + } + }, + "targetAmountAndFee(address,address,uint256)": { + "details": "returns the expected target amount of converting the source token to the\r target token along with the fee\r ", + "params": { + "_amount": "amount of tokens received from the user\r ", + "_sourceToken": "contract address of the source token\r", + "_targetToken": "contract address of the target token\r" + }, + "return": "expected target amount\rexpected fee\r" + }, + "token()": { + "details": "deprecated since version 28, backward compatibility - use only for earlier versions" + }, + "transferAnchorOwnership(address)": { + "details": "transfers the anchor ownership the new owner needs to accept the transfer can only be called by the converter upgrder while the upgrader is the owner note that prior to version 28, you should use 'transferAnchorOwnership' instead", + "params": { + "_newOwner": "new token owner" + } + }, + "transferOwnership(address)": { + "details": "allows transferring the contract ownership the new owner still needs to accept the transfer can only be called by the contract owner", + "params": { + "_newOwner": "new contract owner" + } + }, + "transferTokenOwnership(address)": { + "details": "deprecated, backward compatibility" + }, + "updateRegistry()": { + "details": "updates to the new contract-registry" + }, + "upgrade()": { + "details": "upgrades the converter to the latest version can only be called by the owner note that the owner needs to call acceptOwnership on the new converter after the upgrade" + }, + "withdrawETH(address)": { + "details": "withdraws ether can only be called by the owner if the converter is inactive or by upgrader contract can only be called after the upgrader contract has accepted the ownership of this contract can only be called if the converter has an ETH reserve", + "params": { + "_to": "address to send the ETH to" + } + }, + "withdrawFromAnchor(address,address,uint256)": { + "details": "withdraws tokens held by the anchor and sends them to an account can only be called by the owner", + "params": { + "_amount": "amount to withdraw", + "_to": "account to receive the new amount", + "_token": "ERC20 token contract address" + } + }, + "withdrawTokens(address,address,uint256)": { + "details": "withdraws tokens held by the converter and sends them to an account can only be called by the owner note that reserve tokens can only be withdrawn by the owner while the converter is inactive unless the owner is the converter upgrader contract", + "params": { + "_amount": "amount to withdraw", + "_to": "account to receive the new amount", + "_token": "ERC20 token contract address" + } + } + } + }, + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "60806040526001600455600980546001606060020a03191690553480156200002657600080fd5b50604051606080620033e283398101604090815281516020830151919092015160008054600160a060020a03191633179055828282818062000071816401000000006200011b810204565b5060028054600160a060020a03909216600160a060020a031992831681179091556003805490921617905582620000b1816401000000006200011b810204565b81620000c68164010000000062000196810204565b505060058054600160a060020a03909416600160a060020a031990941693909317909255506009805463ffffffff9092166401000000000267ffffffff0000000019909216919091179055506200020f915050565b600160a060020a03811615156200019357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b50565b620f424063ffffffff821611156200019357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f4552525f494e56414c49445f434f4e56455253494f4e5f464545000000000000604482015290519081900360640190fd5b6131c3806200021f6000396000f30060806040526004361061020b5763ffffffff60e060020a600035041663024c7ec781146102af5780630c7d5cd8146102c95780630e53aae9146102f757806312c2aca41461034c57806319b64015146103755780631cfab290146103a95780631e1401f8146103ca57806321e6b53d1461040d57806322f3e2d41461042e5780632fe8a6ad1461044357806338a5e01614610458578063395900d41461046d5780633e8ff43f1461049757806349d10b64146104c35780634af80f0e146104d857806354fd4d50146104f9578063579cd3ca1461050e5780635e35359e1461052357806361cd756e1461054d57806367b6d57c14610562578063690d8320146105835780636a49d2c4146105a457806371f52bf3146105ce57806379ba5097146105e35780637b103999146105f85780638da5cb5b1461060d57806394c275ad146106225780639b99a8e214610637578063af94b8d81461064c578063b4a176d314610676578063bf7545581461068b578063c45d3d92146106a0578063cdc91c69146106b5578063d031370b146106ca578063d260529c146106e2578063d3fb73b4146106f7578063d4ee1d901461070c578063d55ec69714610721578063d66bd52414610736578063d895951214610757578063dc8de3791461078a578063e8dc12ff146107ab578063ecbca55d146107d5578063f2fde38b146107f3578063fc0c546a14610814575b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee60005260086020527f353c2eb9e53a4a4a6d45d72082ff2e9dc829d1125618772a83eb0e7f86632c43546601000000000000900460ff1615156102ad576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f5245534552564500000000000000000000000000604482015290519081900360640190fd5b005b3480156102bb57600080fd5b506102ad6004351515610829565b3480156102d557600080fd5b506102de610871565b6040805163ffffffff9092168252519081900360200190f35b34801561030357600080fd5b50610318600160a060020a036004351661087d565b6040805195865263ffffffff9094166020860152911515848401521515606084015215156080830152519081900360a00190f35b34801561035857600080fd5b50610361610918565b604080519115158252519081900360200190f35b34801561038157600080fd5b5061038d600435610967565b60408051600160a060020a039092168252519081900360200190f35b3480156103b557600080fd5b506102de600160a060020a0360043516610993565b3480156103d657600080fd5b506103f4600160a060020a03600435811690602435166044356109c5565b6040805192835260208301919091528051918290030190f35b34801561041957600080fd5b506102ad600160a060020a03600435166109e0565b34801561043a57600080fd5b506103616109f4565b34801561044f57600080fd5b50610361610a8e565b34801561046457600080fd5b506102ad610aaf565b34801561047957600080fd5b506102ad600160a060020a0360043581169060243516604435610ac1565b3480156104a357600080fd5b506104ac610b5c565b6040805161ffff9092168252519081900360200190f35b3480156104cf57600080fd5b506102ad610b61565b3480156104e457600080fd5b506102ad600160a060020a0360043516610dce565b34801561050557600080fd5b506104ac610e10565b34801561051a57600080fd5b506102de610e15565b34801561052f57600080fd5b506102ad600160a060020a0360043581169060243516604435610e2d565b34801561055957600080fd5b5061038d610f41565b34801561056e57600080fd5b506102ad600160a060020a0360043516610f50565b34801561058f57600080fd5b506102ad600160a060020a0360043516610ff3565b3480156105b057600080fd5b506102ad600160a060020a036004351663ffffffff60243516611104565b3480156105da57600080fd5b506104ac611173565b3480156105ef57600080fd5b506102ad611182565b34801561060457600080fd5b5061038d611243565b34801561061957600080fd5b5061038d611252565b34801561062e57600080fd5b506102de611261565b34801561064357600080fd5b506104ac611275565b34801561065857600080fd5b506103f4600160a060020a036004358116906024351660443561127b565b34801561068257600080fd5b506102ad611379565b34801561069757600080fd5b506103616113b2565b3480156106ac57600080fd5b5061038d6113b7565b3480156106c157600080fd5b506102ad6113c6565b3480156106d657600080fd5b5061038d60043561141f565b3480156106ee57600080fd5b50610361611447565b34801561070357600080fd5b5061038d61144c565b34801561071857600080fd5b5061038d61145b565b34801561072d57600080fd5b506102ad61146a565b34801561074257600080fd5b50610318600160a060020a036004351661155f565b34801561076357600080fd5b50610778600160a060020a03600435166115a5565b60408051918252519081900360200190f35b34801561079657600080fd5b50610778600160a060020a03600435166115b6565b610778600160a060020a0360043581169060243581169060443590606435811690608435166115df565b3480156107e157600080fd5b506102ad63ffffffff60043516611832565b3480156107ff57600080fd5b506102ad600160a060020a0360043516611927565b34801561082057600080fd5b5061038d6119c4565b6108316119d3565b60038054911515740100000000000000000000000000000000000000000274ff000000000000000000000000000000000000000019909216919091179055565b60095463ffffffff1681565b600080600080600061088d61310a565b50505050600160a060020a03929092166000908152600860209081526040808320815160a081018352815480825260019092015463ffffffff811694820185905260ff64010000000082048116151594830194909452650100000000008104841615156060830152660100000000000090049092161515608090920182905295919450919250829190565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee60005260086020527f353c2eb9e53a4a4a6d45d72082ff2e9dc829d1125618772a83eb0e7f86632c43546601000000000000900460ff1690565b600060078281548110151561097857fe5b600091825260209091200154600160a060020a031692915050565b60008161099f81611a23565b5050600160a060020a031660009081526008602052604090206001015463ffffffff1690565b6000806109d385858561127b565b915091505b935093915050565b6109e86119d3565b6109f181610f50565b50565b600030600160a060020a0316600560009054906101000a9004600160a060020a0316600160a060020a0316638da5cb5b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610a5357600080fd5b505af1158015610a67573d6000803e3d6000fd5b505050506040513d6020811015610a7d57600080fd5b5051600160a060020a031614905090565b60035474010000000000000000000000000000000000000000900460ff1681565b610ab76119d3565b610abf6113c6565b565b610ac96119d3565b600554604080517f5e35359e000000000000000000000000000000000000000000000000000000008152600160a060020a03868116600483015285811660248301526044820185905291519190921691635e35359e91606480830192600092919082900301818387803b158015610b3f57600080fd5b505af1158015610b53573d6000803e3d6000fd5b50505050505050565b600090565b60008054600160a060020a0316331480610b96575060035474010000000000000000000000000000000000000000900460ff16155b1515610bda576040805160e560020a62461bcd0281526020600482015260116024820152600080516020613178833981519152604482015290519081900360640190fd5b610c037f436f6e7472616374526567697374727900000000000000000000000000000000611aa2565b600254909150600160a060020a03808316911614801590610c2c5750600160a060020a03811615155b1515610c82576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e56414c49445f5245474953545259000000000000000000000000604482015290519081900360640190fd5b604080517fbb34534c0000000000000000000000000000000000000000000000000000000081527f436f6e747261637452656769737472790000000000000000000000000000000060048201529051600091600160a060020a0384169163bb34534c9160248082019260209290919082900301818787803b158015610d0657600080fd5b505af1158015610d1a573d6000803e3d6000fd5b505050506040513d6020811015610d3057600080fd5b5051600160a060020a03161415610d91576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e56414c49445f5245474953545259000000000000000000000000604482015290519081900360640190fd5b6002805460038054600160a060020a0380841673ffffffffffffffffffffffffffffffffffffffff19928316179092559091169216919091179055565b610dd66119d3565b80610de081611b3a565b506006805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b602081565b60095468010000000000000000900463ffffffff1681565b6000610e37611b9b565b6002600455610e446119d3565b610e5b600080516020613158833981519152611aa2565b600160a060020a0385166000908152600860205260409020600101549091506601000000000000900460ff161580610e985750610e966109f4565b155b80610eb05750600054600160a060020a038281169116145b1515610ef4576040805160e560020a62461bcd0281526020600482015260116024820152600080516020613178833981519152604482015290519081900360640190fd5b610eff848484611bf5565b600160a060020a0384166000908152600860205260409020600101546601000000000000900460ff1615610f3657610f3684611c26565b505060016004555050565b600354600160a060020a031681565b610f586119d3565b600080516020613158833981519152610f7081611d20565b600554604080517ff2fde38b000000000000000000000000000000000000000000000000000000008152600160a060020a0385811660048301529151919092169163f2fde38b91602480830192600092919082900301818387803b158015610fd757600080fd5b505af1158015610feb573d6000803e3d6000fd5b505050505050565b6000610ffd611b9b565b600260045561100a6119d3565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee61102881611a23565b61103f600080516020613158833981519152611aa2565b91506110496109f4565b15806110625750600054600160a060020a038381169116145b15156110a6576040805160e560020a62461bcd0281526020600482015260116024820152600080516020613178833981519152604482015290519081900360640190fd5b604051600160a060020a03841690303180156108fc02916000818181858888f193505050501580156110dc573d6000803e3d6000fd5b506110fa73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee611c26565b5050600160045550565b61110c611275565b61ffff1615611165576040805160e560020a62461bcd02815260206004820152601960248201527f4552525f494e56414c49445f524553455256455f434f554e5400000000000000604482015290519081900360640190fd5b61116f8282611d76565b5050565b600061117d611275565b905090565b600154600160a060020a031633146111d2576040805160e560020a62461bcd0281526020600482015260116024820152600080516020613178833981519152604482015290519081900360640190fd5b60015460008054604051600160a060020a0393841693909116917f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91a3600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b600254600160a060020a031681565b600054600160a060020a031681565b600954640100000000900463ffffffff1681565b60075490565b6005546000908190600160a060020a0385811691161480156112c25750600160a060020a0385166000908152600860205260409020600101546601000000000000900460ff165b156112d9576112d083611fc7565b915091506109d8565b600554600160a060020a03868116911614801561131b5750600160a060020a0384166000908152600860205260409020600101546601000000000000900460ff165b15611329576112d0836121d6565b6040805160e560020a62461bcd02815260206004820152601160248201527f4552525f494e56414c49445f544f4b454e000000000000000000000000000000604482015290519081900360640190fd5b6113816119d3565b6003546002805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055565b600181565b600654600160a060020a031681565b6113ce6119d3565b6113d66122e2565b600554600190600160a060020a03166113ed610b5c565b61ffff167f6b08c2e2c9969e55a647a764db9b554d64dc42f1a704da11a6d5b129ad163f2c60405160405180910390a4565b600780548290811061142d57fe5b600091825260209091200154600160a060020a0316905081565b600190565b600554600160a060020a031681565b600154600160a060020a031681565b60006114746119d3565b61148b600080516020613158833981519152611aa2565b600554909150600090600160a060020a03166114a5610b5c565b61ffff167f6b08c2e2c9969e55a647a764db9b554d64dc42f1a704da11a6d5b129ad163f2c60405160405180910390a46114de81611927565b604080517f90f58c96000000000000000000000000000000000000000000000000000000008152602060048201529051600160a060020a038316916390f58c9691602480830192600092919082900301818387803b15801561153f57600080fd5b505af1158015611553573d6000803e3d6000fd5b505050506109f1611182565b6008602052600090815260409020805460019091015463ffffffff81169060ff640100000000820481169165010000000000810482169166010000000000009091041685565b60006115b0826115b6565b92915050565b6000816115c281611a23565b5050600160a060020a031660009081526008602052604090205490565b60006115e9611b9b565b60026004557f536f7672796e537761704e6574776f726b00000000000000000000000000000061161881611d20565b600160a060020a03878116908716141561167c576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f53414d455f534f555243455f54415247455400000000000000000000604482015290519081900360640190fd5b600654600160a060020a031615806117bf5750600654604080517f3af32abf000000000000000000000000000000000000000000000000000000008152600160a060020a03878116600483015291519190921691633af32abf9160248083019260209291908290030181600087803b1580156116f757600080fd5b505af115801561170b573d6000803e3d6000fd5b505050506040513d602081101561172157600080fd5b505180156117bf5750600654604080517f3af32abf000000000000000000000000000000000000000000000000000000008152600160a060020a03868116600483015291519190921691633af32abf9160248083019260209291908290030181600087803b15801561179257600080fd5b505af11580156117a6573d6000803e3d6000fd5b505050506040513d60208110156117bc57600080fd5b50515b1515611815576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f4e4f545f57484954454c495354454400000000000000000000000000604482015290519081900360640190fd5b61182287878787876123c0565b6001600455979650505050505050565b61183a6119d3565b60095463ffffffff640100000000909104811690821611156118a6576040805160e560020a62461bcd02815260206004820152601a60248201527f4552525f494e56414c49445f434f4e56455253494f4e5f464545000000000000604482015290519081900360640190fd5b6009546040805163ffffffff6801000000000000000090930483168152918316602083015280517f81cd2ffb37dd237c0e4e2a3de5265fcf9deb43d3e7801e80db9f1ccfba7ee6009281900390910190a16009805463ffffffff90921668010000000000000000026bffffffff000000000000000019909216919091179055565b61192f6119d3565b600054600160a060020a0382811691161415611995576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f53414d455f4f574e4552000000000000000000000000000000000000604482015290519081900360640190fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600554600160a060020a031690565b600054600160a060020a03163314610abf576040805160e560020a62461bcd0281526020600482015260116024820152600080516020613178833981519152604482015290519081900360640190fd5b600160a060020a0381166000908152600860205260409020600101546601000000000000900460ff1615156109f1576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f5245534552564500000000000000000000000000604482015290519081900360640190fd5b600254604080517fbb34534c000000000000000000000000000000000000000000000000000000008152600481018490529051600092600160a060020a03169163bb34534c91602480830192602092919082900301818787803b158015611b0857600080fd5b505af1158015611b1c573d6000803e3d6000fd5b505050506040513d6020811015611b3257600080fd5b505192915050565b600160a060020a0381163014156109f1576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f414444524553535f49535f53454c4600000000000000000000000000604482015290519081900360640190fd5b600454600114610abf576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f5245454e5452414e4359000000000000000000000000000000000000604482015290519081900360640190fd5b611bfd6119d3565b82611c078161259e565b82611c118161259e565b83611c1b81611b3a565b610feb8686866125fe565b80611c3081611a23565b600160a060020a03821673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee1415611c7657600160a060020a03821660009081526008602052604090203031905561116f565b604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a038416916370a082319160248083019260209291908290030181600087803b158015611cd757600080fd5b505af1158015611ceb573d6000803e3d6000fd5b505050506040513d6020811015611d0157600080fd5b5051600160a060020a0383166000908152600860205260409020555050565b611d2981611aa2565b600160a060020a031633146109f1576040805160e560020a62461bcd0281526020600482015260116024820152600080516020613178833981519152604482015290519081900360640190fd5b6000611d806119d3565b611d886126b8565b82611d928161259e565b83611d9c81611b3a565b83611da681612715565b600554600160a060020a03878116911614801590611dea5750600160a060020a0386166000908152600860205260409020600101546601000000000000900460ff16155b1515611e40576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f5245534552564500000000000000000000000000604482015290519081900360640190fd5b60095463ffffffff908116620f42400381169086161115611eab576040805160e560020a62461bcd02815260206004820152601a60248201527f4552525f494e56414c49445f524553455256455f574549474854000000000000604482015290519081900360640190fd5b61ffff611eb6611275565b61ffff1610611f0f576040805160e560020a62461bcd02815260206004820152601960248201527f4552525f494e56414c49445f524553455256455f434f554e5400000000000000604482015290519081900360640190fd5b505050600160a060020a0390921660008181526008602052604081208181556001908101805466ff0000000000001963ffffffff80881663ffffffff1993841617919091166601000000000000179092556007805493840181559093527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688909101805473ffffffffffffffffffffffffffffffffffffffff191690931790925560098054808416909401909216921691909117905550565b600080600080600080611fd861278a565b600560009054906101000a9004600160a060020a0316600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561202b57600080fd5b505af115801561203f573d6000803e3d6000fd5b505050506040513d602081101561205557600080fd5b505193508315156120b157600160a060020a0383166000908152600860205260409020600101546120a69063ffffffff9081169061209a908a90620f4240906127e816565b9063ffffffff61286c16565b9550600094506121cd565b6007805460009081106120c057fe5b600091825260209091200154600160a060020a031692506121007f536f7672796e53776170466f726d756c61000000000000000000000000000000611aa2565b600160a060020a031663f3250fe285612118866115b6565b600160a060020a038716600090815260086020908152604080832060010154815163ffffffff88811660e060020a02825260048201979097526024810195909552949094166044840152606483018d90529251608480840194939192918390030190829087803b15801561218b57600080fd5b505af115801561219f573d6000803e3d6000fd5b505050506040513d60208110156121b557600080fd5b505191506121c2826128da565b905080820381955095505b50505050915091565b6000806000806000806121e761278a565b600560009054906101000a9004600160a060020a0316600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561223a57600080fd5b505af115801561224e573d6000803e3d6000fd5b505050506040513d602081101561226457600080fd5b50516007805491955090600090811061227957fe5b600091825260209091200154600160a060020a03169250838714156122a1576120a6836115b6565b6122ca7f536f7672796e53776170466f726d756c61000000000000000000000000000000611aa2565b600160a060020a03166376cf0b5685612118866115b6565b6122ea6119d3565b60006122f4611275565b61ffff161161234d576040805160e560020a62461bcd02815260206004820152601960248201527f4552525f494e56414c49445f524553455256455f434f554e5400000000000000604482015290519081900360640190fd5b600560009054906101000a9004600160a060020a0316600160a060020a03166379ba50976040518163ffffffff1660e060020a028152600401600060405180830381600087803b1580156123a057600080fd5b505af11580156123b4573d6000803e3d6000fd5b50505050610abf61290a565b6005546000908190819081908190600160a060020a038a8116911614801561240d5750600160a060020a038a166000908152600860205260409020600101546601000000000000900460ff165b156124275789925061242088888861294c565b935061247c565b600554600160a060020a038b811691161480156124695750600160a060020a0389166000908152600860205260409020600101546601000000000000900460ff165b1561132957889250612420888888612c12565b600560009054906101000a9004600160a060020a0316600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156124cf57600080fd5b505af11580156124e3573d6000803e3d6000fd5b505050506040513d60208110156124f957600080fd5b5051600160a060020a0380851660008181526008602052604090206001015460055493955063ffffffff16935091167f77f29993cf2c084e726f7e802da0719d6a0ade3e204badc7a3ffd57ecb768c24612565620f4240612559886115b6565b9063ffffffff6127e816565b6125788663ffffffff808816906127e816565b6040805192835260208301919091528051918290030190a3509198975050505050505050565b600160a060020a03811615156109f1576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b604080517f7472616e7366657228616464726573732c75696e74323536290000000000000081528151908190036019018120600160a060020a038516602483015260448083018590528351808403909101815260649092019092526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909316929092179091526126b3908490612f97565b505050565b6126c06109f4565b15610abf576040805160e560020a62461bcd02815260206004820152600a60248201527f4552525f41435449564500000000000000000000000000000000000000000000604482015290519081900360640190fd5b60008163ffffffff161180156127345750620f424063ffffffff821611155b15156109f1576040805160e560020a62461bcd02815260206004820152601a60248201527f4552525f494e56414c49445f524553455256455f574549474854000000000000604482015290519081900360640190fd5b6127926109f4565b1515610abf576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f494e4143544956450000000000000000000000000000000000000000604482015290519081900360640190fd5b6000808315156127fb5760009150612865565b5082820282848281151561280b57fe5b0414612861576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b8091505b5092915050565b6000808083116128c6576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f4449564944455f42595f5a45524f0000000000000000000000000000604482015290519081900360640190fd5b82848115156128d157fe5b04949350505050565b6009546000906115b090620f42409061209a90859068010000000000000000900463ffffffff908116906127e816565b60075460005b8181101561116f5761294460078281548110151561292a57fe5b600091825260209091200154600160a060020a0316611c26565b600101612910565b60008060008061295b87611fc7565b90935091508215156129b7576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f5a45524f5f5441524745545f414d4f554e5400000000000000000000604482015290519081900360640190fd5b6007805460009081106129c657fe5b600091825260209091200154600160a060020a0316905073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee811415612a5557348714612a50576040805160e560020a62461bcd02815260206004820152601760248201527f4552525f4554485f414d4f554e545f4d49534d41544348000000000000000000604482015290519081900360640190fd5b612b5d565b34158015612b07575086612b04612a6b836115b6565b604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a038616916370a082319160248083019260209291908290030181600087803b158015612acc57600080fd5b505af1158015612ae0573d6000803e3d6000fd5b505050506040513d6020811015612af657600080fd5b50519063ffffffff61302516565b10155b1515612b5d576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f494e56414c49445f414d4f554e540000000000000000000000000000604482015290519081900360640190fd5b612b6681611c26565b600554604080517f867904b4000000000000000000000000000000000000000000000000000000008152600160a060020a038881166004830152602482018790529151919092169163867904b491604480830192600092919082900301818387803b158015612bd457600080fd5b505af1158015612be8573d6000803e3d6000fd5b5050600554612c079250839150600160a060020a0316888a8787613085565b509095945050505050565b600554604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905160009283928392839283928392600160a060020a03909216916370a082319160248082019260209290919082900301818787803b158015612c8457600080fd5b505af1158015612c98573d6000803e3d6000fd5b505050506040513d6020811015612cae57600080fd5b5051891115612d07576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f494e56414c49445f414d4f554e540000000000000000000000000000604482015290519081900360640190fd5b612d10896121d6565b9095509350841515612d6c576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f5a45524f5f5441524745545f414d4f554e5400000000000000000000604482015290519081900360640190fd5b600780546000908110612d7b57fe5b6000918252602080832090910154600554604080517f18160ddd0000000000000000000000000000000000000000000000000000000081529051600160a060020a03938416985091909216936318160ddd93600480850194919392918390030190829087803b158015612ded57600080fd5b505af1158015612e01573d6000803e3d6000fd5b505050506040513d6020811015612e1757600080fd5b50519150612e24836115b6565b905080851080612e3d57508085148015612e3d57508189145b1515612e4557fe5b600554604080517fa24835d1000000000000000000000000000000000000000000000000000000008152306004820152602481018c90529051600160a060020a039092169163a24835d19160448082019260009290919082900301818387803b158015612eb157600080fd5b505af1158015612ec5573d6000803e3d6000fd5b505050600160a060020a038416600090815260086020526040902054612ef291508663ffffffff61302516565b600160a060020a03841660008181526008602052604090209190915573eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee1415612f6557604051600160a060020a0388169086156108fc029087906000818181858888f19350505050158015612f5f573d6000803e3d6000fd5b50612f70565b612f708388876125fe565b600554612f8a90600160a060020a0316848a8c8989613085565b5092979650505050505050565b612f9f613138565b602060405190810160405280600181525090506020818351602085016000875af1801515612fcc57600080fd5b50805115156126b3576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f5452414e534645525f4641494c454400000000000000000000000000604482015290519081900360640190fd5b60008183101561307f576040805160e560020a62461bcd02815260206004820152600d60248201527f4552525f554e444552464c4f5700000000000000000000000000000000000000604482015290519081900360640190fd5b50900390565b7f800000000000000000000000000000000000000000000000000000000000000081106130ae57fe5b60408051848152602081018490528082018390529051600160a060020a038087169288821692918a16917f276856b36cbc45526a0ba64f44611557a2a8b68662c5388e9fe6d72e86e1c8cb9181900360600190a4505050505050565b6040805160a08101825260008082526020820181905291810182905260608101829052608081019190915290565b60206040519081016040528060019060208202803883395091929150505600536f7672796e53776170436f6e766572746572557067726164657200000000004552525f4143434553535f44454e494544000000000000000000000000000000a165627a7a72305820c39f973cbc1cf0758a64156854331e6829d0c51a16e297aae88602be0c95bc9b0029", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x1 PUSH1 0x4 SSTORE PUSH1 0x9 DUP1 SLOAD PUSH1 0x1 PUSH1 0x60 PUSH1 0x2 EXP SUB NOT AND SWAP1 SSTORE CALLVALUE DUP1 ISZERO PUSH3 0x26 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH1 0x60 DUP1 PUSH3 0x33E2 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 SWAP1 DUP2 MSTORE DUP2 MLOAD PUSH1 0x20 DUP4 ADD MLOAD SWAP2 SWAP1 SWAP3 ADD MLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND CALLER OR SWAP1 SSTORE DUP3 DUP3 DUP3 DUP2 DUP1 PUSH3 0x71 DUP2 PUSH5 0x100000000 PUSH3 0x11B DUP2 MUL DIV JUMP JUMPDEST POP PUSH1 0x2 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT SWAP3 DUP4 AND DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x3 DUP1 SLOAD SWAP1 SWAP3 AND OR SWAP1 SSTORE DUP3 PUSH3 0xB1 DUP2 PUSH5 0x100000000 PUSH3 0x11B DUP2 MUL DIV JUMP JUMPDEST DUP2 PUSH3 0xC6 DUP2 PUSH5 0x100000000 PUSH3 0x196 DUP2 MUL DIV JUMP JUMPDEST POP POP PUSH1 0x5 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP5 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 OR SWAP1 SWAP3 SSTORE POP PUSH1 0x9 DUP1 SLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP3 AND PUSH5 0x100000000 MUL PUSH8 0xFFFFFFFF00000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE POP PUSH3 0x20F SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH3 0x193 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH3 0xF4240 PUSH4 0xFFFFFFFF DUP3 AND GT ISZERO PUSH3 0x193 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F434F4E56455253494F4E5F464545000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x31C3 DUP1 PUSH3 0x21F PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x20B JUMPI PUSH4 0xFFFFFFFF PUSH1 0xE0 PUSH1 0x2 EXP PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x24C7EC7 DUP2 EQ PUSH2 0x2AF JUMPI DUP1 PUSH4 0xC7D5CD8 EQ PUSH2 0x2C9 JUMPI DUP1 PUSH4 0xE53AAE9 EQ PUSH2 0x2F7 JUMPI DUP1 PUSH4 0x12C2ACA4 EQ PUSH2 0x34C JUMPI DUP1 PUSH4 0x19B64015 EQ PUSH2 0x375 JUMPI DUP1 PUSH4 0x1CFAB290 EQ PUSH2 0x3A9 JUMPI DUP1 PUSH4 0x1E1401F8 EQ PUSH2 0x3CA JUMPI DUP1 PUSH4 0x21E6B53D EQ PUSH2 0x40D JUMPI DUP1 PUSH4 0x22F3E2D4 EQ PUSH2 0x42E JUMPI DUP1 PUSH4 0x2FE8A6AD EQ PUSH2 0x443 JUMPI DUP1 PUSH4 0x38A5E016 EQ PUSH2 0x458 JUMPI DUP1 PUSH4 0x395900D4 EQ PUSH2 0x46D JUMPI DUP1 PUSH4 0x3E8FF43F EQ PUSH2 0x497 JUMPI DUP1 PUSH4 0x49D10B64 EQ PUSH2 0x4C3 JUMPI DUP1 PUSH4 0x4AF80F0E EQ PUSH2 0x4D8 JUMPI DUP1 PUSH4 0x54FD4D50 EQ PUSH2 0x4F9 JUMPI DUP1 PUSH4 0x579CD3CA EQ PUSH2 0x50E JUMPI DUP1 PUSH4 0x5E35359E EQ PUSH2 0x523 JUMPI DUP1 PUSH4 0x61CD756E EQ PUSH2 0x54D JUMPI DUP1 PUSH4 0x67B6D57C EQ PUSH2 0x562 JUMPI DUP1 PUSH4 0x690D8320 EQ PUSH2 0x583 JUMPI DUP1 PUSH4 0x6A49D2C4 EQ PUSH2 0x5A4 JUMPI DUP1 PUSH4 0x71F52BF3 EQ PUSH2 0x5CE JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x5E3 JUMPI DUP1 PUSH4 0x7B103999 EQ PUSH2 0x5F8 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x60D JUMPI DUP1 PUSH4 0x94C275AD EQ PUSH2 0x622 JUMPI DUP1 PUSH4 0x9B99A8E2 EQ PUSH2 0x637 JUMPI DUP1 PUSH4 0xAF94B8D8 EQ PUSH2 0x64C JUMPI DUP1 PUSH4 0xB4A176D3 EQ PUSH2 0x676 JUMPI DUP1 PUSH4 0xBF754558 EQ PUSH2 0x68B JUMPI DUP1 PUSH4 0xC45D3D92 EQ PUSH2 0x6A0 JUMPI DUP1 PUSH4 0xCDC91C69 EQ PUSH2 0x6B5 JUMPI DUP1 PUSH4 0xD031370B EQ PUSH2 0x6CA JUMPI DUP1 PUSH4 0xD260529C EQ PUSH2 0x6E2 JUMPI DUP1 PUSH4 0xD3FB73B4 EQ PUSH2 0x6F7 JUMPI DUP1 PUSH4 0xD4EE1D90 EQ PUSH2 0x70C JUMPI DUP1 PUSH4 0xD55EC697 EQ PUSH2 0x721 JUMPI DUP1 PUSH4 0xD66BD524 EQ PUSH2 0x736 JUMPI DUP1 PUSH4 0xD8959512 EQ PUSH2 0x757 JUMPI DUP1 PUSH4 0xDC8DE379 EQ PUSH2 0x78A JUMPI DUP1 PUSH4 0xE8DC12FF EQ PUSH2 0x7AB JUMPI DUP1 PUSH4 0xECBCA55D EQ PUSH2 0x7D5 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x7F3 JUMPI DUP1 PUSH4 0xFC0C546A EQ PUSH2 0x814 JUMPI JUMPDEST PUSH20 0xEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE PUSH1 0x0 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH32 0x353C2EB9E53A4A4A6D45D72082FF2E9DC829D1125618772A83EB0E7F86632C43 SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO PUSH2 0x2AD JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245534552564500000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2BB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2AD PUSH1 0x4 CALLDATALOAD ISZERO ISZERO PUSH2 0x829 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2D5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2DE PUSH2 0x871 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x303 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x318 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x87D JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP6 DUP7 MSTORE PUSH4 0xFFFFFFFF SWAP1 SWAP5 AND PUSH1 0x20 DUP7 ADD MSTORE SWAP2 ISZERO ISZERO DUP5 DUP5 ADD MSTORE ISZERO ISZERO PUSH1 0x60 DUP5 ADD MSTORE ISZERO ISZERO PUSH1 0x80 DUP4 ADD MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0xA0 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x358 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x361 PUSH2 0x918 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x381 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x38D PUSH1 0x4 CALLDATALOAD PUSH2 0x967 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3B5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2DE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x993 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3D6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3F4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x9C5 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x419 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2AD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x9E0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x43A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x361 PUSH2 0x9F4 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x44F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x361 PUSH2 0xA8E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x464 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2AD PUSH2 0xAAF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x479 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2AD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0xAC1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4A3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4AC PUSH2 0xB5C JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0xFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4CF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2AD PUSH2 0xB61 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4E4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2AD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0xDCE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x505 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4AC PUSH2 0xE10 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x51A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2DE PUSH2 0xE15 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x52F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2AD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0xE2D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x559 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x38D PUSH2 0xF41 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x56E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2AD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0xF50 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x58F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2AD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0xFF3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5B0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2AD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH4 0xFFFFFFFF PUSH1 0x24 CALLDATALOAD AND PUSH2 0x1104 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5DA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4AC PUSH2 0x1173 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5EF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2AD PUSH2 0x1182 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x604 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x38D PUSH2 0x1243 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x619 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x38D PUSH2 0x1252 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x62E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2DE PUSH2 0x1261 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x643 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4AC PUSH2 0x1275 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x658 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3F4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x127B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x682 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2AD PUSH2 0x1379 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x697 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x361 PUSH2 0x13B2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6AC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x38D PUSH2 0x13B7 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6C1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2AD PUSH2 0x13C6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6D6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x38D PUSH1 0x4 CALLDATALOAD PUSH2 0x141F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6EE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x361 PUSH2 0x1447 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x703 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x38D PUSH2 0x144C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x718 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x38D PUSH2 0x145B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x72D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2AD PUSH2 0x146A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x742 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x318 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x155F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x763 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x778 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x15A5 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x796 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x778 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x15B6 JUMP JUMPDEST PUSH2 0x778 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x44 CALLDATALOAD SWAP1 PUSH1 0x64 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x84 CALLDATALOAD AND PUSH2 0x15DF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7E1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2AD PUSH4 0xFFFFFFFF PUSH1 0x4 CALLDATALOAD AND PUSH2 0x1832 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7FF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2AD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x1927 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x820 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x38D PUSH2 0x19C4 JUMP JUMPDEST PUSH2 0x831 PUSH2 0x19D3 JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD SWAP2 ISZERO ISZERO PUSH21 0x10000000000000000000000000000000000000000 MUL PUSH21 0xFF0000000000000000000000000000000000000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH4 0xFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x88D PUSH2 0x310A JUMP JUMPDEST POP POP POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP2 MLOAD PUSH1 0xA0 DUP2 ADD DUP4 MSTORE DUP2 SLOAD DUP1 DUP3 MSTORE PUSH1 0x1 SWAP1 SWAP3 ADD SLOAD PUSH4 0xFFFFFFFF DUP2 AND SWAP5 DUP3 ADD DUP6 SWAP1 MSTORE PUSH1 0xFF PUSH5 0x100000000 DUP3 DIV DUP2 AND ISZERO ISZERO SWAP5 DUP4 ADD SWAP5 SWAP1 SWAP5 MSTORE PUSH6 0x10000000000 DUP2 DIV DUP5 AND ISZERO ISZERO PUSH1 0x60 DUP4 ADD MSTORE PUSH7 0x1000000000000 SWAP1 DIV SWAP1 SWAP3 AND ISZERO ISZERO PUSH1 0x80 SWAP1 SWAP3 ADD DUP3 SWAP1 MSTORE SWAP6 SWAP2 SWAP5 POP SWAP2 SWAP3 POP DUP3 SWAP2 SWAP1 JUMP JUMPDEST PUSH20 0xEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE PUSH1 0x0 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH32 0x353C2EB9E53A4A4A6D45D72082FF2E9DC829D1125618772A83EB0E7F86632C43 SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x7 DUP3 DUP2 SLOAD DUP2 LT ISZERO ISZERO PUSH2 0x978 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0x99F DUP2 PUSH2 0x1A23 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH4 0xFFFFFFFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x9D3 DUP6 DUP6 DUP6 PUSH2 0x127B JUMP JUMPDEST SWAP2 POP SWAP2 POP JUMPDEST SWAP4 POP SWAP4 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x9E8 PUSH2 0x19D3 JUMP JUMPDEST PUSH2 0x9F1 DUP2 PUSH2 0xF50 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 ADDRESS PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x8DA5CB5B PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xA53 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xA67 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xA7D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH2 0xAB7 PUSH2 0x19D3 JUMP JUMPDEST PUSH2 0xABF PUSH2 0x13C6 JUMP JUMPDEST JUMP JUMPDEST PUSH2 0xAC9 PUSH2 0x19D3 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x5E35359E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP6 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP3 ADD DUP6 SWAP1 MSTORE SWAP2 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP2 PUSH4 0x5E35359E SWAP2 PUSH1 0x64 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xB3F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xB53 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ DUP1 PUSH2 0xB96 JUMPI POP PUSH1 0x3 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST ISZERO ISZERO PUSH2 0xBDA JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3178 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0xC03 PUSH32 0x436F6E7472616374526567697374727900000000000000000000000000000000 PUSH2 0x1AA2 JUMP JUMPDEST PUSH1 0x2 SLOAD SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP4 AND SWAP2 AND EQ DUP1 ISZERO SWAP1 PUSH2 0xC2C JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO JUMPDEST ISZERO ISZERO PUSH2 0xC82 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245474953545259000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0xBB34534C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH32 0x436F6E7472616374526567697374727900000000000000000000000000000000 PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP2 PUSH4 0xBB34534C SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xD06 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xD1A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xD30 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ ISZERO PUSH2 0xD91 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245474953545259000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP5 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP3 DUP4 AND OR SWAP1 SWAP3 SSTORE SWAP1 SWAP2 AND SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0xDD6 PUSH2 0x19D3 JUMP JUMPDEST DUP1 PUSH2 0xDE0 DUP2 PUSH2 0x1B3A JUMP JUMPDEST POP PUSH1 0x6 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x20 DUP2 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH9 0x10000000000000000 SWAP1 DIV PUSH4 0xFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xE37 PUSH2 0x1B9B JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH2 0xE44 PUSH2 0x19D3 JUMP JUMPDEST PUSH2 0xE5B PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3158 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x1AA2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD SWAP1 SWAP2 POP PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 PUSH2 0xE98 JUMPI POP PUSH2 0xE96 PUSH2 0x9F4 JUMP JUMPDEST ISZERO JUMPDEST DUP1 PUSH2 0xEB0 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ JUMPDEST ISZERO ISZERO PUSH2 0xEF4 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3178 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0xEFF DUP5 DUP5 DUP5 PUSH2 0x1BF5 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0xF36 JUMPI PUSH2 0xF36 DUP5 PUSH2 0x1C26 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0x4 SSTORE POP POP JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH2 0xF58 PUSH2 0x19D3 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3158 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0xF70 DUP2 PUSH2 0x1D20 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xF2FDE38B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP2 PUSH4 0xF2FDE38B SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xFD7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xFEB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xFFD PUSH2 0x1B9B JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH2 0x100A PUSH2 0x19D3 JUMP JUMPDEST PUSH20 0xEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE PUSH2 0x1028 DUP2 PUSH2 0x1A23 JUMP JUMPDEST PUSH2 0x103F PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3158 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x1AA2 JUMP JUMPDEST SWAP2 POP PUSH2 0x1049 PUSH2 0x9F4 JUMP JUMPDEST ISZERO DUP1 PUSH2 0x1062 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 DUP2 AND SWAP2 AND EQ JUMPDEST ISZERO ISZERO PUSH2 0x10A6 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3178 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP1 ADDRESS BALANCE DUP1 ISZERO PUSH2 0x8FC MUL SWAP2 PUSH1 0x0 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x10DC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH2 0x10FA PUSH20 0xEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE PUSH2 0x1C26 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0x4 SSTORE POP JUMP JUMPDEST PUSH2 0x110C PUSH2 0x1275 JUMP JUMPDEST PUSH2 0xFFFF AND ISZERO PUSH2 0x1165 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F434F554E5400000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x116F DUP3 DUP3 PUSH2 0x1D76 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x117D PUSH2 0x1275 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x11D2 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3178 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND SWAP4 SWAP1 SWAP2 AND SWAP2 PUSH32 0x343765429AEA5A34B3FF6A3785A98A5ABB2597ACA87BFBB58632C173D585373A SWAP2 LOG3 PUSH1 0x1 DUP1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND OR SWAP1 SWAP2 SSTORE AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH5 0x100000000 SWAP1 DIV PUSH4 0xFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x7 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x0 SWAP1 DUP2 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 DUP2 AND SWAP2 AND EQ DUP1 ISZERO PUSH2 0x12C2 JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND JUMPDEST ISZERO PUSH2 0x12D9 JUMPI PUSH2 0x12D0 DUP4 PUSH2 0x1FC7 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x9D8 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 DUP2 AND SWAP2 AND EQ DUP1 ISZERO PUSH2 0x131B JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND JUMPDEST ISZERO PUSH2 0x1329 JUMPI PUSH2 0x12D0 DUP4 PUSH2 0x21D6 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F544F4B454E000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x1381 PUSH2 0x19D3 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x2 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x1 DUP2 JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH2 0x13CE PUSH2 0x19D3 JUMP JUMPDEST PUSH2 0x13D6 PUSH2 0x22E2 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x13ED PUSH2 0xB5C JUMP JUMPDEST PUSH2 0xFFFF AND PUSH32 0x6B08C2E2C9969E55A647A764DB9B554D64DC42F1A704DA11A6D5B129AD163F2C PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 JUMP JUMPDEST PUSH1 0x7 DUP1 SLOAD DUP3 SWAP1 DUP2 LT PUSH2 0x142D JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP1 POP DUP2 JUMP JUMPDEST PUSH1 0x1 SWAP1 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1474 PUSH2 0x19D3 JUMP JUMPDEST PUSH2 0x148B PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3158 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x1AA2 JUMP JUMPDEST PUSH1 0x5 SLOAD SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x14A5 PUSH2 0xB5C JUMP JUMPDEST PUSH2 0xFFFF AND PUSH32 0x6B08C2E2C9969E55A647A764DB9B554D64DC42F1A704DA11A6D5B129AD163F2C PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH2 0x14DE DUP2 PUSH2 0x1927 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x90F58C9600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 AND SWAP2 PUSH4 0x90F58C96 SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x153F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1553 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x9F1 PUSH2 0x1182 JUMP JUMPDEST PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD PUSH4 0xFFFFFFFF DUP2 AND SWAP1 PUSH1 0xFF PUSH5 0x100000000 DUP3 DIV DUP2 AND SWAP2 PUSH6 0x10000000000 DUP2 DIV DUP3 AND SWAP2 PUSH7 0x1000000000000 SWAP1 SWAP2 DIV AND DUP6 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x15B0 DUP3 PUSH2 0x15B6 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0x15C2 DUP2 PUSH2 0x1A23 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x15E9 PUSH2 0x1B9B JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH32 0x536F7672796E537761704E6574776F726B000000000000000000000000000000 PUSH2 0x1618 DUP2 PUSH2 0x1D20 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 DUP2 AND SWAP1 DUP8 AND EQ ISZERO PUSH2 0x167C JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F534F555243455F54415247455400000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND ISZERO DUP1 PUSH2 0x17BF JUMPI POP PUSH1 0x6 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x3AF32ABF00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP2 PUSH4 0x3AF32ABF SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x16F7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x170B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1721 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD DUP1 ISZERO PUSH2 0x17BF JUMPI POP PUSH1 0x6 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x3AF32ABF00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP2 PUSH4 0x3AF32ABF SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1792 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x17A6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x17BC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD JUMPDEST ISZERO ISZERO PUSH2 0x1815 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4E4F545F57484954454C495354454400000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x1822 DUP8 DUP8 DUP8 DUP8 DUP8 PUSH2 0x23C0 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x4 SSTORE SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x183A PUSH2 0x19D3 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH4 0xFFFFFFFF PUSH5 0x100000000 SWAP1 SWAP2 DIV DUP2 AND SWAP1 DUP3 AND GT ISZERO PUSH2 0x18A6 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F434F4E56455253494F4E5F464545000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH4 0xFFFFFFFF PUSH9 0x10000000000000000 SWAP1 SWAP4 DIV DUP4 AND DUP2 MSTORE SWAP2 DUP4 AND PUSH1 0x20 DUP4 ADD MSTORE DUP1 MLOAD PUSH32 0x81CD2FFB37DD237C0E4E2A3DE5265FCF9DEB43D3E7801E80DB9F1CCFBA7EE600 SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG1 PUSH1 0x9 DUP1 SLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP3 AND PUSH9 0x10000000000000000 MUL PUSH12 0xFFFFFFFF0000000000000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x192F PUSH2 0x19D3 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x1995 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F4F574E4552000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0xABF JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3178 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO PUSH2 0x9F1 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245534552564500000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xBB34534C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP2 PUSH4 0xBB34534C SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1B08 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1B1C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1B32 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ADDRESS EQ ISZERO PUSH2 0x9F1 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F414444524553535F49535F53454C4600000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x4 SLOAD PUSH1 0x1 EQ PUSH2 0xABF JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5245454E5452414E4359000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x1BFD PUSH2 0x19D3 JUMP JUMPDEST DUP3 PUSH2 0x1C07 DUP2 PUSH2 0x259E JUMP JUMPDEST DUP3 PUSH2 0x1C11 DUP2 PUSH2 0x259E JUMP JUMPDEST DUP4 PUSH2 0x1C1B DUP2 PUSH2 0x1B3A JUMP JUMPDEST PUSH2 0xFEB DUP7 DUP7 DUP7 PUSH2 0x25FE JUMP JUMPDEST DUP1 PUSH2 0x1C30 DUP2 PUSH2 0x1A23 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 AND PUSH20 0xEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE EQ ISZERO PUSH2 0x1C76 JUMPI PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 ADDRESS BALANCE SWAP1 SSTORE PUSH2 0x116F JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1CD7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1CEB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1D01 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE POP POP JUMP JUMPDEST PUSH2 0x1D29 DUP2 PUSH2 0x1AA2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x9F1 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3178 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1D80 PUSH2 0x19D3 JUMP JUMPDEST PUSH2 0x1D88 PUSH2 0x26B8 JUMP JUMPDEST DUP3 PUSH2 0x1D92 DUP2 PUSH2 0x259E JUMP JUMPDEST DUP4 PUSH2 0x1D9C DUP2 PUSH2 0x1B3A JUMP JUMPDEST DUP4 PUSH2 0x1DA6 DUP2 PUSH2 0x2715 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 DUP2 AND SWAP2 AND EQ DUP1 ISZERO SWAP1 PUSH2 0x1DEA JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x1E40 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245534552564500000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x9 SLOAD PUSH4 0xFFFFFFFF SWAP1 DUP2 AND PUSH3 0xF4240 SUB DUP2 AND SWAP1 DUP7 AND GT ISZERO PUSH2 0x1EAB JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F574549474854000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0xFFFF PUSH2 0x1EB6 PUSH2 0x1275 JUMP JUMPDEST PUSH2 0xFFFF AND LT PUSH2 0x1F0F JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F434F554E5400000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP2 DUP2 SSTORE PUSH1 0x1 SWAP1 DUP2 ADD DUP1 SLOAD PUSH7 0xFF000000000000 NOT PUSH4 0xFFFFFFFF DUP1 DUP9 AND PUSH4 0xFFFFFFFF NOT SWAP4 DUP5 AND OR SWAP2 SWAP1 SWAP2 AND PUSH7 0x1000000000000 OR SWAP1 SWAP3 SSTORE PUSH1 0x7 DUP1 SLOAD SWAP4 DUP5 ADD DUP2 SSTORE SWAP1 SWAP4 MSTORE PUSH32 0xA66CC928B5EDB82AF9BD49922954155AB7B0942694BEA4CE44661D9A8736C688 SWAP1 SWAP2 ADD DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 SWAP4 OR SWAP1 SWAP3 SSTORE PUSH1 0x9 DUP1 SLOAD DUP1 DUP5 AND SWAP1 SWAP5 ADD SWAP1 SWAP3 AND SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x1FD8 PUSH2 0x278A JUMP JUMPDEST PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x18160DDD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x202B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x203F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2055 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP4 POP DUP4 ISZERO ISZERO PUSH2 0x20B1 JUMPI PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH2 0x20A6 SWAP1 PUSH4 0xFFFFFFFF SWAP1 DUP2 AND SWAP1 PUSH2 0x209A SWAP1 DUP11 SWAP1 PUSH3 0xF4240 SWAP1 PUSH2 0x27E8 AND JUMP JUMPDEST SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x286C AND JUMP JUMPDEST SWAP6 POP PUSH1 0x0 SWAP5 POP PUSH2 0x21CD JUMP JUMPDEST PUSH1 0x7 DUP1 SLOAD PUSH1 0x0 SWAP1 DUP2 LT PUSH2 0x20C0 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP3 POP PUSH2 0x2100 PUSH32 0x536F7672796E53776170466F726D756C61000000000000000000000000000000 PUSH2 0x1AA2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xF3250FE2 DUP6 PUSH2 0x2118 DUP7 PUSH2 0x15B6 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 ADD SLOAD DUP2 MLOAD PUSH4 0xFFFFFFFF DUP9 DUP2 AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP3 MSTORE PUSH1 0x4 DUP3 ADD SWAP8 SWAP1 SWAP8 MSTORE PUSH1 0x24 DUP2 ADD SWAP6 SWAP1 SWAP6 MSTORE SWAP5 SWAP1 SWAP5 AND PUSH1 0x44 DUP5 ADD MSTORE PUSH1 0x64 DUP4 ADD DUP14 SWAP1 MSTORE SWAP3 MLOAD PUSH1 0x84 DUP1 DUP5 ADD SWAP5 SWAP4 SWAP2 SWAP3 SWAP2 DUP4 SWAP1 SUB ADD SWAP1 DUP3 SWAP1 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x218B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x219F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x21B5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 POP PUSH2 0x21C2 DUP3 PUSH2 0x28DA JUMP JUMPDEST SWAP1 POP DUP1 DUP3 SUB DUP2 SWAP6 POP SWAP6 POP JUMPDEST POP POP POP POP SWAP2 POP SWAP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x21E7 PUSH2 0x278A JUMP JUMPDEST PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x18160DDD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x223A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x224E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2264 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x7 DUP1 SLOAD SWAP2 SWAP6 POP SWAP1 PUSH1 0x0 SWAP1 DUP2 LT PUSH2 0x2279 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP3 POP DUP4 DUP8 EQ ISZERO PUSH2 0x22A1 JUMPI PUSH2 0x20A6 DUP4 PUSH2 0x15B6 JUMP JUMPDEST PUSH2 0x22CA PUSH32 0x536F7672796E53776170466F726D756C61000000000000000000000000000000 PUSH2 0x1AA2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x76CF0B56 DUP6 PUSH2 0x2118 DUP7 PUSH2 0x15B6 JUMP JUMPDEST PUSH2 0x22EA PUSH2 0x19D3 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x22F4 PUSH2 0x1275 JUMP JUMPDEST PUSH2 0xFFFF AND GT PUSH2 0x234D JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F434F554E5400000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x79BA5097 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x23A0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x23B4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0xABF PUSH2 0x290A JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x0 SWAP1 DUP2 SWAP1 DUP2 SWAP1 DUP2 SWAP1 DUP2 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP11 DUP2 AND SWAP2 AND EQ DUP1 ISZERO PUSH2 0x240D JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP11 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND JUMPDEST ISZERO PUSH2 0x2427 JUMPI DUP10 SWAP3 POP PUSH2 0x2420 DUP9 DUP9 DUP9 PUSH2 0x294C JUMP JUMPDEST SWAP4 POP PUSH2 0x247C JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 DUP2 AND SWAP2 AND EQ DUP1 ISZERO PUSH2 0x2469 JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP10 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND JUMPDEST ISZERO PUSH2 0x1329 JUMPI DUP9 SWAP3 POP PUSH2 0x2420 DUP9 DUP9 DUP9 PUSH2 0x2C12 JUMP JUMPDEST PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x18160DDD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x24CF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x24E3 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x24F9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP6 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH1 0x5 SLOAD SWAP4 SWAP6 POP PUSH4 0xFFFFFFFF AND SWAP4 POP SWAP2 AND PUSH32 0x77F29993CF2C084E726F7E802DA0719D6A0ADE3E204BADC7A3FFD57ECB768C24 PUSH2 0x2565 PUSH3 0xF4240 PUSH2 0x2559 DUP9 PUSH2 0x15B6 JUMP JUMPDEST SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x27E8 AND JUMP JUMPDEST PUSH2 0x2578 DUP7 PUSH4 0xFFFFFFFF DUP1 DUP9 AND SWAP1 PUSH2 0x27E8 AND JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB ADD SWAP1 LOG3 POP SWAP2 SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0x9F1 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x7472616E7366657228616464726573732C75696E743235362900000000000000 DUP2 MSTORE DUP2 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x19 ADD DUP2 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x64 SWAP1 SWAP3 ADD SWAP1 SWAP3 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE PUSH2 0x26B3 SWAP1 DUP5 SWAP1 PUSH2 0x2F97 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x26C0 PUSH2 0x9F4 JUMP JUMPDEST ISZERO PUSH2 0xABF JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xA PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F41435449564500000000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 PUSH4 0xFFFFFFFF AND GT DUP1 ISZERO PUSH2 0x2734 JUMPI POP PUSH3 0xF4240 PUSH4 0xFFFFFFFF DUP3 AND GT ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x9F1 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F574549474854000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x2792 PUSH2 0x9F4 JUMP JUMPDEST ISZERO ISZERO PUSH2 0xABF JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E4143544956450000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP4 ISZERO ISZERO PUSH2 0x27FB JUMPI PUSH1 0x0 SWAP2 POP PUSH2 0x2865 JUMP JUMPDEST POP DUP3 DUP3 MUL DUP3 DUP5 DUP3 DUP2 ISZERO ISZERO PUSH2 0x280B JUMPI INVALID JUMPDEST DIV EQ PUSH2 0x2861 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP1 SWAP2 POP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP4 GT PUSH2 0x28C6 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4449564944455F42595F5A45524F0000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP3 DUP5 DUP2 ISZERO ISZERO PUSH2 0x28D1 JUMPI INVALID JUMPDEST DIV SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x0 SWAP1 PUSH2 0x15B0 SWAP1 PUSH3 0xF4240 SWAP1 PUSH2 0x209A SWAP1 DUP6 SWAP1 PUSH9 0x10000000000000000 SWAP1 DIV PUSH4 0xFFFFFFFF SWAP1 DUP2 AND SWAP1 PUSH2 0x27E8 AND JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x116F JUMPI PUSH2 0x2944 PUSH1 0x7 DUP3 DUP2 SLOAD DUP2 LT ISZERO ISZERO PUSH2 0x292A JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x1C26 JUMP JUMPDEST PUSH1 0x1 ADD PUSH2 0x2910 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x295B DUP8 PUSH2 0x1FC7 JUMP JUMPDEST SWAP1 SWAP4 POP SWAP2 POP DUP3 ISZERO ISZERO PUSH2 0x29B7 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5A45524F5F5441524745545F414D4F554E5400000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x7 DUP1 SLOAD PUSH1 0x0 SWAP1 DUP2 LT PUSH2 0x29C6 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP1 POP PUSH20 0xEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE DUP2 EQ ISZERO PUSH2 0x2A55 JUMPI CALLVALUE DUP8 EQ PUSH2 0x2A50 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4554485F414D4F554E545F4D49534D41544348000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x2B5D JUMP JUMPDEST CALLVALUE ISZERO DUP1 ISZERO PUSH2 0x2B07 JUMPI POP DUP7 PUSH2 0x2B04 PUSH2 0x2A6B DUP4 PUSH2 0x15B6 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2ACC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2AE0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2AF6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x3025 AND JUMP JUMPDEST LT ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x2B5D JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F414D4F554E540000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x2B66 DUP2 PUSH2 0x1C26 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x867904B400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH1 0x24 DUP3 ADD DUP8 SWAP1 MSTORE SWAP2 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP2 PUSH4 0x867904B4 SWAP2 PUSH1 0x44 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2BD4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2BE8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x5 SLOAD PUSH2 0x2C07 SWAP3 POP DUP4 SWAP2 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP9 DUP11 DUP8 DUP8 PUSH2 0x3085 JUMP JUMPDEST POP SWAP1 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP3 DUP4 SWAP3 DUP4 SWAP3 DUP4 SWAP3 DUP4 SWAP3 DUP4 SWAP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2C84 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2C98 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2CAE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD DUP10 GT ISZERO PUSH2 0x2D07 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F414D4F554E540000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x2D10 DUP10 PUSH2 0x21D6 JUMP JUMPDEST SWAP1 SWAP6 POP SWAP4 POP DUP5 ISZERO ISZERO PUSH2 0x2D6C JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5A45524F5F5441524745545F414D4F554E5400000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x7 DUP1 SLOAD PUSH1 0x0 SWAP1 DUP2 LT PUSH2 0x2D7B JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 SWAP1 SWAP2 ADD SLOAD PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x18160DDD00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND SWAP9 POP SWAP2 SWAP1 SWAP3 AND SWAP4 PUSH4 0x18160DDD SWAP4 PUSH1 0x4 DUP1 DUP6 ADD SWAP5 SWAP2 SWAP4 SWAP3 SWAP2 DUP4 SWAP1 SUB ADD SWAP1 DUP3 SWAP1 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2DED JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2E01 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2E17 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 POP PUSH2 0x2E24 DUP4 PUSH2 0x15B6 JUMP JUMPDEST SWAP1 POP DUP1 DUP6 LT DUP1 PUSH2 0x2E3D JUMPI POP DUP1 DUP6 EQ DUP1 ISZERO PUSH2 0x2E3D JUMPI POP DUP2 DUP10 EQ JUMPDEST ISZERO ISZERO PUSH2 0x2E45 JUMPI INVALID JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xA24835D100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP13 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP2 PUSH4 0xA24835D1 SWAP2 PUSH1 0x44 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2EB1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2EC5 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x2EF2 SWAP2 POP DUP7 PUSH4 0xFFFFFFFF PUSH2 0x3025 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE PUSH20 0xEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE EQ ISZERO PUSH2 0x2F65 JUMPI PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 AND SWAP1 DUP7 ISZERO PUSH2 0x8FC MUL SWAP1 DUP8 SWAP1 PUSH1 0x0 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x2F5F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH2 0x2F70 JUMP JUMPDEST PUSH2 0x2F70 DUP4 DUP9 DUP8 PUSH2 0x25FE JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH2 0x2F8A SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP5 DUP11 DUP13 DUP10 DUP10 PUSH2 0x3085 JUMP JUMPDEST POP SWAP3 SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x2F9F PUSH2 0x3138 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE POP SWAP1 POP PUSH1 0x20 DUP2 DUP4 MLOAD PUSH1 0x20 DUP6 ADD PUSH1 0x0 DUP8 GAS CALL DUP1 ISZERO ISZERO PUSH2 0x2FCC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD ISZERO ISZERO PUSH2 0x26B3 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5452414E534645525F4641494C454400000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 DUP4 LT ISZERO PUSH2 0x307F JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F554E444552464C4F5700000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP SWAP1 SUB SWAP1 JUMP JUMPDEST PUSH32 0x8000000000000000000000000000000000000000000000000000000000000000 DUP2 LT PUSH2 0x30AE JUMPI INVALID JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP5 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 SWAP1 MSTORE DUP1 DUP3 ADD DUP4 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP8 AND SWAP3 DUP9 DUP3 AND SWAP3 SWAP2 DUP11 AND SWAP2 PUSH32 0x276856B36CBC45526A0BA64F44611557A2A8B68662C5388E9FE6D72E86E1C8CB SWAP2 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG4 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xA0 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE SWAP2 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x60 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 SWAP1 PUSH1 0x20 DUP3 MUL DUP1 CODESIZE DUP4 CODECOPY POP SWAP2 SWAP3 SWAP2 POP POP JUMP STOP MSTORE8 PUSH16 0x7672796E53776170436F6E7665727465 PUSH19 0x557067726164657200000000004552525F4143 NUMBER GASLIMIT MSTORE8 MSTORE8 0x5f DIFFICULTY GASLIMIT 0x4e 0x49 GASLIMIT DIFFICULTY STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 0xc3 SWAP16 SWAP8 EXTCODECOPY 0xbc SHR CREATE PUSH22 0x8A64156854331E6829D0C51A16E297AAE88602BE0C95 0xbc SWAP12 STOP 0x29 ", + "sourceMap": "449:10223:21:-;;;249:1:68;362:32;;2700:30:4;;;-1:-1:-1;;;;;;2993:31:4;;;824:211:21;5:2:-1;;;;30:1;27;20:12;5:2;824:211:21;;;;;;;;;;;;;;;;;;;;;;;;;488:5:66;:18;;-1:-1:-1;;;;;;488:18:66;496:10;488:18;;;824:211:21;;;;;475:23:72;824:211:21;475:13:72;;;;:23;:::i;:::-;-1:-1:-1;1931:8:60;:39;;-1:-1:-1;;;;;1931:39:60;;;-1:-1:-1;;;;;;1931:39:60;;;;;;;;1974:12;:43;;;;;;;;5395:7:4;475:23:72;5395:7:4;475:13:72;;;;:23;:::i;:::-;5457:17:4;6403:35;5457:17;6403:19;;;;:35;:::i;:::-;-1:-1:-1;;5480:6:4;:16;;-1:-1:-1;;;;;5480:16:4;;;-1:-1:-1;;;;;;5480:16:4;;;;;;;;;;-1:-1:-1;5500:16:4;:36;;;;;;;;-1:-1:-1;;5500:36:4;;;;;;;;;-1:-1:-1;449:10223:21;;-1:-1:-1;;449:10223:21;553:117:72;-1:-1:-1;;;;;620:22:72;;;;612:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;553:117;:::o;6493:156:4:-;1826:7;6571:43;;;;;6563:82;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;449:10223:21;;;;;;;" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "60806040526004361061020b5763ffffffff60e060020a600035041663024c7ec781146102af5780630c7d5cd8146102c95780630e53aae9146102f757806312c2aca41461034c57806319b64015146103755780631cfab290146103a95780631e1401f8146103ca57806321e6b53d1461040d57806322f3e2d41461042e5780632fe8a6ad1461044357806338a5e01614610458578063395900d41461046d5780633e8ff43f1461049757806349d10b64146104c35780634af80f0e146104d857806354fd4d50146104f9578063579cd3ca1461050e5780635e35359e1461052357806361cd756e1461054d57806367b6d57c14610562578063690d8320146105835780636a49d2c4146105a457806371f52bf3146105ce57806379ba5097146105e35780637b103999146105f85780638da5cb5b1461060d57806394c275ad146106225780639b99a8e214610637578063af94b8d81461064c578063b4a176d314610676578063bf7545581461068b578063c45d3d92146106a0578063cdc91c69146106b5578063d031370b146106ca578063d260529c146106e2578063d3fb73b4146106f7578063d4ee1d901461070c578063d55ec69714610721578063d66bd52414610736578063d895951214610757578063dc8de3791461078a578063e8dc12ff146107ab578063ecbca55d146107d5578063f2fde38b146107f3578063fc0c546a14610814575b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee60005260086020527f353c2eb9e53a4a4a6d45d72082ff2e9dc829d1125618772a83eb0e7f86632c43546601000000000000900460ff1615156102ad576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f5245534552564500000000000000000000000000604482015290519081900360640190fd5b005b3480156102bb57600080fd5b506102ad6004351515610829565b3480156102d557600080fd5b506102de610871565b6040805163ffffffff9092168252519081900360200190f35b34801561030357600080fd5b50610318600160a060020a036004351661087d565b6040805195865263ffffffff9094166020860152911515848401521515606084015215156080830152519081900360a00190f35b34801561035857600080fd5b50610361610918565b604080519115158252519081900360200190f35b34801561038157600080fd5b5061038d600435610967565b60408051600160a060020a039092168252519081900360200190f35b3480156103b557600080fd5b506102de600160a060020a0360043516610993565b3480156103d657600080fd5b506103f4600160a060020a03600435811690602435166044356109c5565b6040805192835260208301919091528051918290030190f35b34801561041957600080fd5b506102ad600160a060020a03600435166109e0565b34801561043a57600080fd5b506103616109f4565b34801561044f57600080fd5b50610361610a8e565b34801561046457600080fd5b506102ad610aaf565b34801561047957600080fd5b506102ad600160a060020a0360043581169060243516604435610ac1565b3480156104a357600080fd5b506104ac610b5c565b6040805161ffff9092168252519081900360200190f35b3480156104cf57600080fd5b506102ad610b61565b3480156104e457600080fd5b506102ad600160a060020a0360043516610dce565b34801561050557600080fd5b506104ac610e10565b34801561051a57600080fd5b506102de610e15565b34801561052f57600080fd5b506102ad600160a060020a0360043581169060243516604435610e2d565b34801561055957600080fd5b5061038d610f41565b34801561056e57600080fd5b506102ad600160a060020a0360043516610f50565b34801561058f57600080fd5b506102ad600160a060020a0360043516610ff3565b3480156105b057600080fd5b506102ad600160a060020a036004351663ffffffff60243516611104565b3480156105da57600080fd5b506104ac611173565b3480156105ef57600080fd5b506102ad611182565b34801561060457600080fd5b5061038d611243565b34801561061957600080fd5b5061038d611252565b34801561062e57600080fd5b506102de611261565b34801561064357600080fd5b506104ac611275565b34801561065857600080fd5b506103f4600160a060020a036004358116906024351660443561127b565b34801561068257600080fd5b506102ad611379565b34801561069757600080fd5b506103616113b2565b3480156106ac57600080fd5b5061038d6113b7565b3480156106c157600080fd5b506102ad6113c6565b3480156106d657600080fd5b5061038d60043561141f565b3480156106ee57600080fd5b50610361611447565b34801561070357600080fd5b5061038d61144c565b34801561071857600080fd5b5061038d61145b565b34801561072d57600080fd5b506102ad61146a565b34801561074257600080fd5b50610318600160a060020a036004351661155f565b34801561076357600080fd5b50610778600160a060020a03600435166115a5565b60408051918252519081900360200190f35b34801561079657600080fd5b50610778600160a060020a03600435166115b6565b610778600160a060020a0360043581169060243581169060443590606435811690608435166115df565b3480156107e157600080fd5b506102ad63ffffffff60043516611832565b3480156107ff57600080fd5b506102ad600160a060020a0360043516611927565b34801561082057600080fd5b5061038d6119c4565b6108316119d3565b60038054911515740100000000000000000000000000000000000000000274ff000000000000000000000000000000000000000019909216919091179055565b60095463ffffffff1681565b600080600080600061088d61310a565b50505050600160a060020a03929092166000908152600860209081526040808320815160a081018352815480825260019092015463ffffffff811694820185905260ff64010000000082048116151594830194909452650100000000008104841615156060830152660100000000000090049092161515608090920182905295919450919250829190565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee60005260086020527f353c2eb9e53a4a4a6d45d72082ff2e9dc829d1125618772a83eb0e7f86632c43546601000000000000900460ff1690565b600060078281548110151561097857fe5b600091825260209091200154600160a060020a031692915050565b60008161099f81611a23565b5050600160a060020a031660009081526008602052604090206001015463ffffffff1690565b6000806109d385858561127b565b915091505b935093915050565b6109e86119d3565b6109f181610f50565b50565b600030600160a060020a0316600560009054906101000a9004600160a060020a0316600160a060020a0316638da5cb5b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610a5357600080fd5b505af1158015610a67573d6000803e3d6000fd5b505050506040513d6020811015610a7d57600080fd5b5051600160a060020a031614905090565b60035474010000000000000000000000000000000000000000900460ff1681565b610ab76119d3565b610abf6113c6565b565b610ac96119d3565b600554604080517f5e35359e000000000000000000000000000000000000000000000000000000008152600160a060020a03868116600483015285811660248301526044820185905291519190921691635e35359e91606480830192600092919082900301818387803b158015610b3f57600080fd5b505af1158015610b53573d6000803e3d6000fd5b50505050505050565b600090565b60008054600160a060020a0316331480610b96575060035474010000000000000000000000000000000000000000900460ff16155b1515610bda576040805160e560020a62461bcd0281526020600482015260116024820152600080516020613178833981519152604482015290519081900360640190fd5b610c037f436f6e7472616374526567697374727900000000000000000000000000000000611aa2565b600254909150600160a060020a03808316911614801590610c2c5750600160a060020a03811615155b1515610c82576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e56414c49445f5245474953545259000000000000000000000000604482015290519081900360640190fd5b604080517fbb34534c0000000000000000000000000000000000000000000000000000000081527f436f6e747261637452656769737472790000000000000000000000000000000060048201529051600091600160a060020a0384169163bb34534c9160248082019260209290919082900301818787803b158015610d0657600080fd5b505af1158015610d1a573d6000803e3d6000fd5b505050506040513d6020811015610d3057600080fd5b5051600160a060020a03161415610d91576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e56414c49445f5245474953545259000000000000000000000000604482015290519081900360640190fd5b6002805460038054600160a060020a0380841673ffffffffffffffffffffffffffffffffffffffff19928316179092559091169216919091179055565b610dd66119d3565b80610de081611b3a565b506006805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b602081565b60095468010000000000000000900463ffffffff1681565b6000610e37611b9b565b6002600455610e446119d3565b610e5b600080516020613158833981519152611aa2565b600160a060020a0385166000908152600860205260409020600101549091506601000000000000900460ff161580610e985750610e966109f4565b155b80610eb05750600054600160a060020a038281169116145b1515610ef4576040805160e560020a62461bcd0281526020600482015260116024820152600080516020613178833981519152604482015290519081900360640190fd5b610eff848484611bf5565b600160a060020a0384166000908152600860205260409020600101546601000000000000900460ff1615610f3657610f3684611c26565b505060016004555050565b600354600160a060020a031681565b610f586119d3565b600080516020613158833981519152610f7081611d20565b600554604080517ff2fde38b000000000000000000000000000000000000000000000000000000008152600160a060020a0385811660048301529151919092169163f2fde38b91602480830192600092919082900301818387803b158015610fd757600080fd5b505af1158015610feb573d6000803e3d6000fd5b505050505050565b6000610ffd611b9b565b600260045561100a6119d3565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee61102881611a23565b61103f600080516020613158833981519152611aa2565b91506110496109f4565b15806110625750600054600160a060020a038381169116145b15156110a6576040805160e560020a62461bcd0281526020600482015260116024820152600080516020613178833981519152604482015290519081900360640190fd5b604051600160a060020a03841690303180156108fc02916000818181858888f193505050501580156110dc573d6000803e3d6000fd5b506110fa73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee611c26565b5050600160045550565b61110c611275565b61ffff1615611165576040805160e560020a62461bcd02815260206004820152601960248201527f4552525f494e56414c49445f524553455256455f434f554e5400000000000000604482015290519081900360640190fd5b61116f8282611d76565b5050565b600061117d611275565b905090565b600154600160a060020a031633146111d2576040805160e560020a62461bcd0281526020600482015260116024820152600080516020613178833981519152604482015290519081900360640190fd5b60015460008054604051600160a060020a0393841693909116917f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91a3600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b600254600160a060020a031681565b600054600160a060020a031681565b600954640100000000900463ffffffff1681565b60075490565b6005546000908190600160a060020a0385811691161480156112c25750600160a060020a0385166000908152600860205260409020600101546601000000000000900460ff165b156112d9576112d083611fc7565b915091506109d8565b600554600160a060020a03868116911614801561131b5750600160a060020a0384166000908152600860205260409020600101546601000000000000900460ff165b15611329576112d0836121d6565b6040805160e560020a62461bcd02815260206004820152601160248201527f4552525f494e56414c49445f544f4b454e000000000000000000000000000000604482015290519081900360640190fd5b6113816119d3565b6003546002805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055565b600181565b600654600160a060020a031681565b6113ce6119d3565b6113d66122e2565b600554600190600160a060020a03166113ed610b5c565b61ffff167f6b08c2e2c9969e55a647a764db9b554d64dc42f1a704da11a6d5b129ad163f2c60405160405180910390a4565b600780548290811061142d57fe5b600091825260209091200154600160a060020a0316905081565b600190565b600554600160a060020a031681565b600154600160a060020a031681565b60006114746119d3565b61148b600080516020613158833981519152611aa2565b600554909150600090600160a060020a03166114a5610b5c565b61ffff167f6b08c2e2c9969e55a647a764db9b554d64dc42f1a704da11a6d5b129ad163f2c60405160405180910390a46114de81611927565b604080517f90f58c96000000000000000000000000000000000000000000000000000000008152602060048201529051600160a060020a038316916390f58c9691602480830192600092919082900301818387803b15801561153f57600080fd5b505af1158015611553573d6000803e3d6000fd5b505050506109f1611182565b6008602052600090815260409020805460019091015463ffffffff81169060ff640100000000820481169165010000000000810482169166010000000000009091041685565b60006115b0826115b6565b92915050565b6000816115c281611a23565b5050600160a060020a031660009081526008602052604090205490565b60006115e9611b9b565b60026004557f536f7672796e537761704e6574776f726b00000000000000000000000000000061161881611d20565b600160a060020a03878116908716141561167c576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f53414d455f534f555243455f54415247455400000000000000000000604482015290519081900360640190fd5b600654600160a060020a031615806117bf5750600654604080517f3af32abf000000000000000000000000000000000000000000000000000000008152600160a060020a03878116600483015291519190921691633af32abf9160248083019260209291908290030181600087803b1580156116f757600080fd5b505af115801561170b573d6000803e3d6000fd5b505050506040513d602081101561172157600080fd5b505180156117bf5750600654604080517f3af32abf000000000000000000000000000000000000000000000000000000008152600160a060020a03868116600483015291519190921691633af32abf9160248083019260209291908290030181600087803b15801561179257600080fd5b505af11580156117a6573d6000803e3d6000fd5b505050506040513d60208110156117bc57600080fd5b50515b1515611815576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f4e4f545f57484954454c495354454400000000000000000000000000604482015290519081900360640190fd5b61182287878787876123c0565b6001600455979650505050505050565b61183a6119d3565b60095463ffffffff640100000000909104811690821611156118a6576040805160e560020a62461bcd02815260206004820152601a60248201527f4552525f494e56414c49445f434f4e56455253494f4e5f464545000000000000604482015290519081900360640190fd5b6009546040805163ffffffff6801000000000000000090930483168152918316602083015280517f81cd2ffb37dd237c0e4e2a3de5265fcf9deb43d3e7801e80db9f1ccfba7ee6009281900390910190a16009805463ffffffff90921668010000000000000000026bffffffff000000000000000019909216919091179055565b61192f6119d3565b600054600160a060020a0382811691161415611995576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f53414d455f4f574e4552000000000000000000000000000000000000604482015290519081900360640190fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600554600160a060020a031690565b600054600160a060020a03163314610abf576040805160e560020a62461bcd0281526020600482015260116024820152600080516020613178833981519152604482015290519081900360640190fd5b600160a060020a0381166000908152600860205260409020600101546601000000000000900460ff1615156109f1576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f5245534552564500000000000000000000000000604482015290519081900360640190fd5b600254604080517fbb34534c000000000000000000000000000000000000000000000000000000008152600481018490529051600092600160a060020a03169163bb34534c91602480830192602092919082900301818787803b158015611b0857600080fd5b505af1158015611b1c573d6000803e3d6000fd5b505050506040513d6020811015611b3257600080fd5b505192915050565b600160a060020a0381163014156109f1576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f414444524553535f49535f53454c4600000000000000000000000000604482015290519081900360640190fd5b600454600114610abf576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f5245454e5452414e4359000000000000000000000000000000000000604482015290519081900360640190fd5b611bfd6119d3565b82611c078161259e565b82611c118161259e565b83611c1b81611b3a565b610feb8686866125fe565b80611c3081611a23565b600160a060020a03821673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee1415611c7657600160a060020a03821660009081526008602052604090203031905561116f565b604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a038416916370a082319160248083019260209291908290030181600087803b158015611cd757600080fd5b505af1158015611ceb573d6000803e3d6000fd5b505050506040513d6020811015611d0157600080fd5b5051600160a060020a0383166000908152600860205260409020555050565b611d2981611aa2565b600160a060020a031633146109f1576040805160e560020a62461bcd0281526020600482015260116024820152600080516020613178833981519152604482015290519081900360640190fd5b6000611d806119d3565b611d886126b8565b82611d928161259e565b83611d9c81611b3a565b83611da681612715565b600554600160a060020a03878116911614801590611dea5750600160a060020a0386166000908152600860205260409020600101546601000000000000900460ff16155b1515611e40576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f5245534552564500000000000000000000000000604482015290519081900360640190fd5b60095463ffffffff908116620f42400381169086161115611eab576040805160e560020a62461bcd02815260206004820152601a60248201527f4552525f494e56414c49445f524553455256455f574549474854000000000000604482015290519081900360640190fd5b61ffff611eb6611275565b61ffff1610611f0f576040805160e560020a62461bcd02815260206004820152601960248201527f4552525f494e56414c49445f524553455256455f434f554e5400000000000000604482015290519081900360640190fd5b505050600160a060020a0390921660008181526008602052604081208181556001908101805466ff0000000000001963ffffffff80881663ffffffff1993841617919091166601000000000000179092556007805493840181559093527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688909101805473ffffffffffffffffffffffffffffffffffffffff191690931790925560098054808416909401909216921691909117905550565b600080600080600080611fd861278a565b600560009054906101000a9004600160a060020a0316600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561202b57600080fd5b505af115801561203f573d6000803e3d6000fd5b505050506040513d602081101561205557600080fd5b505193508315156120b157600160a060020a0383166000908152600860205260409020600101546120a69063ffffffff9081169061209a908a90620f4240906127e816565b9063ffffffff61286c16565b9550600094506121cd565b6007805460009081106120c057fe5b600091825260209091200154600160a060020a031692506121007f536f7672796e53776170466f726d756c61000000000000000000000000000000611aa2565b600160a060020a031663f3250fe285612118866115b6565b600160a060020a038716600090815260086020908152604080832060010154815163ffffffff88811660e060020a02825260048201979097526024810195909552949094166044840152606483018d90529251608480840194939192918390030190829087803b15801561218b57600080fd5b505af115801561219f573d6000803e3d6000fd5b505050506040513d60208110156121b557600080fd5b505191506121c2826128da565b905080820381955095505b50505050915091565b6000806000806000806121e761278a565b600560009054906101000a9004600160a060020a0316600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561223a57600080fd5b505af115801561224e573d6000803e3d6000fd5b505050506040513d602081101561226457600080fd5b50516007805491955090600090811061227957fe5b600091825260209091200154600160a060020a03169250838714156122a1576120a6836115b6565b6122ca7f536f7672796e53776170466f726d756c61000000000000000000000000000000611aa2565b600160a060020a03166376cf0b5685612118866115b6565b6122ea6119d3565b60006122f4611275565b61ffff161161234d576040805160e560020a62461bcd02815260206004820152601960248201527f4552525f494e56414c49445f524553455256455f434f554e5400000000000000604482015290519081900360640190fd5b600560009054906101000a9004600160a060020a0316600160a060020a03166379ba50976040518163ffffffff1660e060020a028152600401600060405180830381600087803b1580156123a057600080fd5b505af11580156123b4573d6000803e3d6000fd5b50505050610abf61290a565b6005546000908190819081908190600160a060020a038a8116911614801561240d5750600160a060020a038a166000908152600860205260409020600101546601000000000000900460ff165b156124275789925061242088888861294c565b935061247c565b600554600160a060020a038b811691161480156124695750600160a060020a0389166000908152600860205260409020600101546601000000000000900460ff165b1561132957889250612420888888612c12565b600560009054906101000a9004600160a060020a0316600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156124cf57600080fd5b505af11580156124e3573d6000803e3d6000fd5b505050506040513d60208110156124f957600080fd5b5051600160a060020a0380851660008181526008602052604090206001015460055493955063ffffffff16935091167f77f29993cf2c084e726f7e802da0719d6a0ade3e204badc7a3ffd57ecb768c24612565620f4240612559886115b6565b9063ffffffff6127e816565b6125788663ffffffff808816906127e816565b6040805192835260208301919091528051918290030190a3509198975050505050505050565b600160a060020a03811615156109f1576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b604080517f7472616e7366657228616464726573732c75696e74323536290000000000000081528151908190036019018120600160a060020a038516602483015260448083018590528351808403909101815260649092019092526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909316929092179091526126b3908490612f97565b505050565b6126c06109f4565b15610abf576040805160e560020a62461bcd02815260206004820152600a60248201527f4552525f41435449564500000000000000000000000000000000000000000000604482015290519081900360640190fd5b60008163ffffffff161180156127345750620f424063ffffffff821611155b15156109f1576040805160e560020a62461bcd02815260206004820152601a60248201527f4552525f494e56414c49445f524553455256455f574549474854000000000000604482015290519081900360640190fd5b6127926109f4565b1515610abf576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f494e4143544956450000000000000000000000000000000000000000604482015290519081900360640190fd5b6000808315156127fb5760009150612865565b5082820282848281151561280b57fe5b0414612861576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b8091505b5092915050565b6000808083116128c6576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f4449564944455f42595f5a45524f0000000000000000000000000000604482015290519081900360640190fd5b82848115156128d157fe5b04949350505050565b6009546000906115b090620f42409061209a90859068010000000000000000900463ffffffff908116906127e816565b60075460005b8181101561116f5761294460078281548110151561292a57fe5b600091825260209091200154600160a060020a0316611c26565b600101612910565b60008060008061295b87611fc7565b90935091508215156129b7576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f5a45524f5f5441524745545f414d4f554e5400000000000000000000604482015290519081900360640190fd5b6007805460009081106129c657fe5b600091825260209091200154600160a060020a0316905073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee811415612a5557348714612a50576040805160e560020a62461bcd02815260206004820152601760248201527f4552525f4554485f414d4f554e545f4d49534d41544348000000000000000000604482015290519081900360640190fd5b612b5d565b34158015612b07575086612b04612a6b836115b6565b604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a038616916370a082319160248083019260209291908290030181600087803b158015612acc57600080fd5b505af1158015612ae0573d6000803e3d6000fd5b505050506040513d6020811015612af657600080fd5b50519063ffffffff61302516565b10155b1515612b5d576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f494e56414c49445f414d4f554e540000000000000000000000000000604482015290519081900360640190fd5b612b6681611c26565b600554604080517f867904b4000000000000000000000000000000000000000000000000000000008152600160a060020a038881166004830152602482018790529151919092169163867904b491604480830192600092919082900301818387803b158015612bd457600080fd5b505af1158015612be8573d6000803e3d6000fd5b5050600554612c079250839150600160a060020a0316888a8787613085565b509095945050505050565b600554604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905160009283928392839283928392600160a060020a03909216916370a082319160248082019260209290919082900301818787803b158015612c8457600080fd5b505af1158015612c98573d6000803e3d6000fd5b505050506040513d6020811015612cae57600080fd5b5051891115612d07576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f494e56414c49445f414d4f554e540000000000000000000000000000604482015290519081900360640190fd5b612d10896121d6565b9095509350841515612d6c576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f5a45524f5f5441524745545f414d4f554e5400000000000000000000604482015290519081900360640190fd5b600780546000908110612d7b57fe5b6000918252602080832090910154600554604080517f18160ddd0000000000000000000000000000000000000000000000000000000081529051600160a060020a03938416985091909216936318160ddd93600480850194919392918390030190829087803b158015612ded57600080fd5b505af1158015612e01573d6000803e3d6000fd5b505050506040513d6020811015612e1757600080fd5b50519150612e24836115b6565b905080851080612e3d57508085148015612e3d57508189145b1515612e4557fe5b600554604080517fa24835d1000000000000000000000000000000000000000000000000000000008152306004820152602481018c90529051600160a060020a039092169163a24835d19160448082019260009290919082900301818387803b158015612eb157600080fd5b505af1158015612ec5573d6000803e3d6000fd5b505050600160a060020a038416600090815260086020526040902054612ef291508663ffffffff61302516565b600160a060020a03841660008181526008602052604090209190915573eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee1415612f6557604051600160a060020a0388169086156108fc029087906000818181858888f19350505050158015612f5f573d6000803e3d6000fd5b50612f70565b612f708388876125fe565b600554612f8a90600160a060020a0316848a8c8989613085565b5092979650505050505050565b612f9f613138565b602060405190810160405280600181525090506020818351602085016000875af1801515612fcc57600080fd5b50805115156126b3576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f5452414e534645525f4641494c454400000000000000000000000000604482015290519081900360640190fd5b60008183101561307f576040805160e560020a62461bcd02815260206004820152600d60248201527f4552525f554e444552464c4f5700000000000000000000000000000000000000604482015290519081900360640190fd5b50900390565b7f800000000000000000000000000000000000000000000000000000000000000081106130ae57fe5b60408051848152602081018490528082018390529051600160a060020a038087169288821692918a16917f276856b36cbc45526a0ba64f44611557a2a8b68662c5388e9fe6d72e86e1c8cb9181900360600190a4505050505050565b6040805160a08101825260008082526020820181905291810182905260608101829052608081019190915290565b60206040519081016040528060019060208202803883395091929150505600536f7672796e53776170436f6e766572746572557067726164657200000000004552525f4143434553535f44454e494544000000000000000000000000000000a165627a7a72305820c39f973cbc1cf0758a64156854331e6829d0c51a16e297aae88602be0c95bc9b0029", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x20B JUMPI PUSH4 0xFFFFFFFF PUSH1 0xE0 PUSH1 0x2 EXP PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x24C7EC7 DUP2 EQ PUSH2 0x2AF JUMPI DUP1 PUSH4 0xC7D5CD8 EQ PUSH2 0x2C9 JUMPI DUP1 PUSH4 0xE53AAE9 EQ PUSH2 0x2F7 JUMPI DUP1 PUSH4 0x12C2ACA4 EQ PUSH2 0x34C JUMPI DUP1 PUSH4 0x19B64015 EQ PUSH2 0x375 JUMPI DUP1 PUSH4 0x1CFAB290 EQ PUSH2 0x3A9 JUMPI DUP1 PUSH4 0x1E1401F8 EQ PUSH2 0x3CA JUMPI DUP1 PUSH4 0x21E6B53D EQ PUSH2 0x40D JUMPI DUP1 PUSH4 0x22F3E2D4 EQ PUSH2 0x42E JUMPI DUP1 PUSH4 0x2FE8A6AD EQ PUSH2 0x443 JUMPI DUP1 PUSH4 0x38A5E016 EQ PUSH2 0x458 JUMPI DUP1 PUSH4 0x395900D4 EQ PUSH2 0x46D JUMPI DUP1 PUSH4 0x3E8FF43F EQ PUSH2 0x497 JUMPI DUP1 PUSH4 0x49D10B64 EQ PUSH2 0x4C3 JUMPI DUP1 PUSH4 0x4AF80F0E EQ PUSH2 0x4D8 JUMPI DUP1 PUSH4 0x54FD4D50 EQ PUSH2 0x4F9 JUMPI DUP1 PUSH4 0x579CD3CA EQ PUSH2 0x50E JUMPI DUP1 PUSH4 0x5E35359E EQ PUSH2 0x523 JUMPI DUP1 PUSH4 0x61CD756E EQ PUSH2 0x54D JUMPI DUP1 PUSH4 0x67B6D57C EQ PUSH2 0x562 JUMPI DUP1 PUSH4 0x690D8320 EQ PUSH2 0x583 JUMPI DUP1 PUSH4 0x6A49D2C4 EQ PUSH2 0x5A4 JUMPI DUP1 PUSH4 0x71F52BF3 EQ PUSH2 0x5CE JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x5E3 JUMPI DUP1 PUSH4 0x7B103999 EQ PUSH2 0x5F8 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x60D JUMPI DUP1 PUSH4 0x94C275AD EQ PUSH2 0x622 JUMPI DUP1 PUSH4 0x9B99A8E2 EQ PUSH2 0x637 JUMPI DUP1 PUSH4 0xAF94B8D8 EQ PUSH2 0x64C JUMPI DUP1 PUSH4 0xB4A176D3 EQ PUSH2 0x676 JUMPI DUP1 PUSH4 0xBF754558 EQ PUSH2 0x68B JUMPI DUP1 PUSH4 0xC45D3D92 EQ PUSH2 0x6A0 JUMPI DUP1 PUSH4 0xCDC91C69 EQ PUSH2 0x6B5 JUMPI DUP1 PUSH4 0xD031370B EQ PUSH2 0x6CA JUMPI DUP1 PUSH4 0xD260529C EQ PUSH2 0x6E2 JUMPI DUP1 PUSH4 0xD3FB73B4 EQ PUSH2 0x6F7 JUMPI DUP1 PUSH4 0xD4EE1D90 EQ PUSH2 0x70C JUMPI DUP1 PUSH4 0xD55EC697 EQ PUSH2 0x721 JUMPI DUP1 PUSH4 0xD66BD524 EQ PUSH2 0x736 JUMPI DUP1 PUSH4 0xD8959512 EQ PUSH2 0x757 JUMPI DUP1 PUSH4 0xDC8DE379 EQ PUSH2 0x78A JUMPI DUP1 PUSH4 0xE8DC12FF EQ PUSH2 0x7AB JUMPI DUP1 PUSH4 0xECBCA55D EQ PUSH2 0x7D5 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x7F3 JUMPI DUP1 PUSH4 0xFC0C546A EQ PUSH2 0x814 JUMPI JUMPDEST PUSH20 0xEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE PUSH1 0x0 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH32 0x353C2EB9E53A4A4A6D45D72082FF2E9DC829D1125618772A83EB0E7F86632C43 SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO PUSH2 0x2AD JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245534552564500000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2BB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2AD PUSH1 0x4 CALLDATALOAD ISZERO ISZERO PUSH2 0x829 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2D5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2DE PUSH2 0x871 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x303 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x318 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x87D JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP6 DUP7 MSTORE PUSH4 0xFFFFFFFF SWAP1 SWAP5 AND PUSH1 0x20 DUP7 ADD MSTORE SWAP2 ISZERO ISZERO DUP5 DUP5 ADD MSTORE ISZERO ISZERO PUSH1 0x60 DUP5 ADD MSTORE ISZERO ISZERO PUSH1 0x80 DUP4 ADD MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0xA0 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x358 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x361 PUSH2 0x918 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x381 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x38D PUSH1 0x4 CALLDATALOAD PUSH2 0x967 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3B5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2DE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x993 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3D6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3F4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x9C5 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x419 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2AD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x9E0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x43A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x361 PUSH2 0x9F4 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x44F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x361 PUSH2 0xA8E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x464 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2AD PUSH2 0xAAF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x479 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2AD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0xAC1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4A3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4AC PUSH2 0xB5C JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0xFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4CF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2AD PUSH2 0xB61 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4E4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2AD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0xDCE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x505 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4AC PUSH2 0xE10 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x51A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2DE PUSH2 0xE15 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x52F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2AD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0xE2D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x559 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x38D PUSH2 0xF41 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x56E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2AD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0xF50 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x58F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2AD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0xFF3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5B0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2AD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH4 0xFFFFFFFF PUSH1 0x24 CALLDATALOAD AND PUSH2 0x1104 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5DA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4AC PUSH2 0x1173 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5EF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2AD PUSH2 0x1182 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x604 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x38D PUSH2 0x1243 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x619 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x38D PUSH2 0x1252 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x62E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2DE PUSH2 0x1261 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x643 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4AC PUSH2 0x1275 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x658 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3F4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x127B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x682 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2AD PUSH2 0x1379 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x697 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x361 PUSH2 0x13B2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6AC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x38D PUSH2 0x13B7 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6C1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2AD PUSH2 0x13C6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6D6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x38D PUSH1 0x4 CALLDATALOAD PUSH2 0x141F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6EE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x361 PUSH2 0x1447 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x703 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x38D PUSH2 0x144C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x718 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x38D PUSH2 0x145B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x72D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2AD PUSH2 0x146A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x742 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x318 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x155F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x763 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x778 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x15A5 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x796 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x778 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x15B6 JUMP JUMPDEST PUSH2 0x778 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x44 CALLDATALOAD SWAP1 PUSH1 0x64 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x84 CALLDATALOAD AND PUSH2 0x15DF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7E1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2AD PUSH4 0xFFFFFFFF PUSH1 0x4 CALLDATALOAD AND PUSH2 0x1832 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7FF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2AD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x1927 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x820 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x38D PUSH2 0x19C4 JUMP JUMPDEST PUSH2 0x831 PUSH2 0x19D3 JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD SWAP2 ISZERO ISZERO PUSH21 0x10000000000000000000000000000000000000000 MUL PUSH21 0xFF0000000000000000000000000000000000000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH4 0xFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x88D PUSH2 0x310A JUMP JUMPDEST POP POP POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP2 MLOAD PUSH1 0xA0 DUP2 ADD DUP4 MSTORE DUP2 SLOAD DUP1 DUP3 MSTORE PUSH1 0x1 SWAP1 SWAP3 ADD SLOAD PUSH4 0xFFFFFFFF DUP2 AND SWAP5 DUP3 ADD DUP6 SWAP1 MSTORE PUSH1 0xFF PUSH5 0x100000000 DUP3 DIV DUP2 AND ISZERO ISZERO SWAP5 DUP4 ADD SWAP5 SWAP1 SWAP5 MSTORE PUSH6 0x10000000000 DUP2 DIV DUP5 AND ISZERO ISZERO PUSH1 0x60 DUP4 ADD MSTORE PUSH7 0x1000000000000 SWAP1 DIV SWAP1 SWAP3 AND ISZERO ISZERO PUSH1 0x80 SWAP1 SWAP3 ADD DUP3 SWAP1 MSTORE SWAP6 SWAP2 SWAP5 POP SWAP2 SWAP3 POP DUP3 SWAP2 SWAP1 JUMP JUMPDEST PUSH20 0xEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE PUSH1 0x0 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH32 0x353C2EB9E53A4A4A6D45D72082FF2E9DC829D1125618772A83EB0E7F86632C43 SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x7 DUP3 DUP2 SLOAD DUP2 LT ISZERO ISZERO PUSH2 0x978 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0x99F DUP2 PUSH2 0x1A23 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH4 0xFFFFFFFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x9D3 DUP6 DUP6 DUP6 PUSH2 0x127B JUMP JUMPDEST SWAP2 POP SWAP2 POP JUMPDEST SWAP4 POP SWAP4 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x9E8 PUSH2 0x19D3 JUMP JUMPDEST PUSH2 0x9F1 DUP2 PUSH2 0xF50 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 ADDRESS PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x8DA5CB5B PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xA53 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xA67 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xA7D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH2 0xAB7 PUSH2 0x19D3 JUMP JUMPDEST PUSH2 0xABF PUSH2 0x13C6 JUMP JUMPDEST JUMP JUMPDEST PUSH2 0xAC9 PUSH2 0x19D3 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x5E35359E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP6 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP3 ADD DUP6 SWAP1 MSTORE SWAP2 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP2 PUSH4 0x5E35359E SWAP2 PUSH1 0x64 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xB3F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xB53 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ DUP1 PUSH2 0xB96 JUMPI POP PUSH1 0x3 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST ISZERO ISZERO PUSH2 0xBDA JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3178 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0xC03 PUSH32 0x436F6E7472616374526567697374727900000000000000000000000000000000 PUSH2 0x1AA2 JUMP JUMPDEST PUSH1 0x2 SLOAD SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP4 AND SWAP2 AND EQ DUP1 ISZERO SWAP1 PUSH2 0xC2C JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO JUMPDEST ISZERO ISZERO PUSH2 0xC82 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245474953545259000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0xBB34534C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH32 0x436F6E7472616374526567697374727900000000000000000000000000000000 PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP2 PUSH4 0xBB34534C SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xD06 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xD1A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xD30 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ ISZERO PUSH2 0xD91 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245474953545259000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP5 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP3 DUP4 AND OR SWAP1 SWAP3 SSTORE SWAP1 SWAP2 AND SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0xDD6 PUSH2 0x19D3 JUMP JUMPDEST DUP1 PUSH2 0xDE0 DUP2 PUSH2 0x1B3A JUMP JUMPDEST POP PUSH1 0x6 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x20 DUP2 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH9 0x10000000000000000 SWAP1 DIV PUSH4 0xFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xE37 PUSH2 0x1B9B JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH2 0xE44 PUSH2 0x19D3 JUMP JUMPDEST PUSH2 0xE5B PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3158 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x1AA2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD SWAP1 SWAP2 POP PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 PUSH2 0xE98 JUMPI POP PUSH2 0xE96 PUSH2 0x9F4 JUMP JUMPDEST ISZERO JUMPDEST DUP1 PUSH2 0xEB0 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ JUMPDEST ISZERO ISZERO PUSH2 0xEF4 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3178 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0xEFF DUP5 DUP5 DUP5 PUSH2 0x1BF5 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0xF36 JUMPI PUSH2 0xF36 DUP5 PUSH2 0x1C26 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0x4 SSTORE POP POP JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH2 0xF58 PUSH2 0x19D3 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3158 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0xF70 DUP2 PUSH2 0x1D20 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xF2FDE38B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP2 PUSH4 0xF2FDE38B SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xFD7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xFEB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xFFD PUSH2 0x1B9B JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH2 0x100A PUSH2 0x19D3 JUMP JUMPDEST PUSH20 0xEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE PUSH2 0x1028 DUP2 PUSH2 0x1A23 JUMP JUMPDEST PUSH2 0x103F PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3158 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x1AA2 JUMP JUMPDEST SWAP2 POP PUSH2 0x1049 PUSH2 0x9F4 JUMP JUMPDEST ISZERO DUP1 PUSH2 0x1062 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 DUP2 AND SWAP2 AND EQ JUMPDEST ISZERO ISZERO PUSH2 0x10A6 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3178 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP1 ADDRESS BALANCE DUP1 ISZERO PUSH2 0x8FC MUL SWAP2 PUSH1 0x0 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x10DC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH2 0x10FA PUSH20 0xEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE PUSH2 0x1C26 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0x4 SSTORE POP JUMP JUMPDEST PUSH2 0x110C PUSH2 0x1275 JUMP JUMPDEST PUSH2 0xFFFF AND ISZERO PUSH2 0x1165 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F434F554E5400000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x116F DUP3 DUP3 PUSH2 0x1D76 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x117D PUSH2 0x1275 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x11D2 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3178 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND SWAP4 SWAP1 SWAP2 AND SWAP2 PUSH32 0x343765429AEA5A34B3FF6A3785A98A5ABB2597ACA87BFBB58632C173D585373A SWAP2 LOG3 PUSH1 0x1 DUP1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND OR SWAP1 SWAP2 SSTORE AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH5 0x100000000 SWAP1 DIV PUSH4 0xFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x7 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x0 SWAP1 DUP2 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 DUP2 AND SWAP2 AND EQ DUP1 ISZERO PUSH2 0x12C2 JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND JUMPDEST ISZERO PUSH2 0x12D9 JUMPI PUSH2 0x12D0 DUP4 PUSH2 0x1FC7 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x9D8 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 DUP2 AND SWAP2 AND EQ DUP1 ISZERO PUSH2 0x131B JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND JUMPDEST ISZERO PUSH2 0x1329 JUMPI PUSH2 0x12D0 DUP4 PUSH2 0x21D6 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F544F4B454E000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x1381 PUSH2 0x19D3 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x2 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x1 DUP2 JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH2 0x13CE PUSH2 0x19D3 JUMP JUMPDEST PUSH2 0x13D6 PUSH2 0x22E2 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x13ED PUSH2 0xB5C JUMP JUMPDEST PUSH2 0xFFFF AND PUSH32 0x6B08C2E2C9969E55A647A764DB9B554D64DC42F1A704DA11A6D5B129AD163F2C PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 JUMP JUMPDEST PUSH1 0x7 DUP1 SLOAD DUP3 SWAP1 DUP2 LT PUSH2 0x142D JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP1 POP DUP2 JUMP JUMPDEST PUSH1 0x1 SWAP1 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1474 PUSH2 0x19D3 JUMP JUMPDEST PUSH2 0x148B PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3158 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x1AA2 JUMP JUMPDEST PUSH1 0x5 SLOAD SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x14A5 PUSH2 0xB5C JUMP JUMPDEST PUSH2 0xFFFF AND PUSH32 0x6B08C2E2C9969E55A647A764DB9B554D64DC42F1A704DA11A6D5B129AD163F2C PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH2 0x14DE DUP2 PUSH2 0x1927 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x90F58C9600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 AND SWAP2 PUSH4 0x90F58C96 SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x153F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1553 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x9F1 PUSH2 0x1182 JUMP JUMPDEST PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD PUSH4 0xFFFFFFFF DUP2 AND SWAP1 PUSH1 0xFF PUSH5 0x100000000 DUP3 DIV DUP2 AND SWAP2 PUSH6 0x10000000000 DUP2 DIV DUP3 AND SWAP2 PUSH7 0x1000000000000 SWAP1 SWAP2 DIV AND DUP6 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x15B0 DUP3 PUSH2 0x15B6 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0x15C2 DUP2 PUSH2 0x1A23 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x15E9 PUSH2 0x1B9B JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH32 0x536F7672796E537761704E6574776F726B000000000000000000000000000000 PUSH2 0x1618 DUP2 PUSH2 0x1D20 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 DUP2 AND SWAP1 DUP8 AND EQ ISZERO PUSH2 0x167C JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F534F555243455F54415247455400000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND ISZERO DUP1 PUSH2 0x17BF JUMPI POP PUSH1 0x6 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x3AF32ABF00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP2 PUSH4 0x3AF32ABF SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x16F7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x170B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1721 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD DUP1 ISZERO PUSH2 0x17BF JUMPI POP PUSH1 0x6 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x3AF32ABF00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP2 PUSH4 0x3AF32ABF SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1792 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x17A6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x17BC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD JUMPDEST ISZERO ISZERO PUSH2 0x1815 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4E4F545F57484954454C495354454400000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x1822 DUP8 DUP8 DUP8 DUP8 DUP8 PUSH2 0x23C0 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x4 SSTORE SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x183A PUSH2 0x19D3 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH4 0xFFFFFFFF PUSH5 0x100000000 SWAP1 SWAP2 DIV DUP2 AND SWAP1 DUP3 AND GT ISZERO PUSH2 0x18A6 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F434F4E56455253494F4E5F464545000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH4 0xFFFFFFFF PUSH9 0x10000000000000000 SWAP1 SWAP4 DIV DUP4 AND DUP2 MSTORE SWAP2 DUP4 AND PUSH1 0x20 DUP4 ADD MSTORE DUP1 MLOAD PUSH32 0x81CD2FFB37DD237C0E4E2A3DE5265FCF9DEB43D3E7801E80DB9F1CCFBA7EE600 SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG1 PUSH1 0x9 DUP1 SLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP3 AND PUSH9 0x10000000000000000 MUL PUSH12 0xFFFFFFFF0000000000000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x192F PUSH2 0x19D3 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x1995 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F4F574E4552000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0xABF JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3178 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO PUSH2 0x9F1 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245534552564500000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xBB34534C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP2 PUSH4 0xBB34534C SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1B08 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1B1C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1B32 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ADDRESS EQ ISZERO PUSH2 0x9F1 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F414444524553535F49535F53454C4600000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x4 SLOAD PUSH1 0x1 EQ PUSH2 0xABF JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5245454E5452414E4359000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x1BFD PUSH2 0x19D3 JUMP JUMPDEST DUP3 PUSH2 0x1C07 DUP2 PUSH2 0x259E JUMP JUMPDEST DUP3 PUSH2 0x1C11 DUP2 PUSH2 0x259E JUMP JUMPDEST DUP4 PUSH2 0x1C1B DUP2 PUSH2 0x1B3A JUMP JUMPDEST PUSH2 0xFEB DUP7 DUP7 DUP7 PUSH2 0x25FE JUMP JUMPDEST DUP1 PUSH2 0x1C30 DUP2 PUSH2 0x1A23 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 AND PUSH20 0xEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE EQ ISZERO PUSH2 0x1C76 JUMPI PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 ADDRESS BALANCE SWAP1 SSTORE PUSH2 0x116F JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1CD7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1CEB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1D01 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE POP POP JUMP JUMPDEST PUSH2 0x1D29 DUP2 PUSH2 0x1AA2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x9F1 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3178 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1D80 PUSH2 0x19D3 JUMP JUMPDEST PUSH2 0x1D88 PUSH2 0x26B8 JUMP JUMPDEST DUP3 PUSH2 0x1D92 DUP2 PUSH2 0x259E JUMP JUMPDEST DUP4 PUSH2 0x1D9C DUP2 PUSH2 0x1B3A JUMP JUMPDEST DUP4 PUSH2 0x1DA6 DUP2 PUSH2 0x2715 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 DUP2 AND SWAP2 AND EQ DUP1 ISZERO SWAP1 PUSH2 0x1DEA JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x1E40 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245534552564500000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x9 SLOAD PUSH4 0xFFFFFFFF SWAP1 DUP2 AND PUSH3 0xF4240 SUB DUP2 AND SWAP1 DUP7 AND GT ISZERO PUSH2 0x1EAB JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F574549474854000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0xFFFF PUSH2 0x1EB6 PUSH2 0x1275 JUMP JUMPDEST PUSH2 0xFFFF AND LT PUSH2 0x1F0F JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F434F554E5400000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP2 DUP2 SSTORE PUSH1 0x1 SWAP1 DUP2 ADD DUP1 SLOAD PUSH7 0xFF000000000000 NOT PUSH4 0xFFFFFFFF DUP1 DUP9 AND PUSH4 0xFFFFFFFF NOT SWAP4 DUP5 AND OR SWAP2 SWAP1 SWAP2 AND PUSH7 0x1000000000000 OR SWAP1 SWAP3 SSTORE PUSH1 0x7 DUP1 SLOAD SWAP4 DUP5 ADD DUP2 SSTORE SWAP1 SWAP4 MSTORE PUSH32 0xA66CC928B5EDB82AF9BD49922954155AB7B0942694BEA4CE44661D9A8736C688 SWAP1 SWAP2 ADD DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 SWAP4 OR SWAP1 SWAP3 SSTORE PUSH1 0x9 DUP1 SLOAD DUP1 DUP5 AND SWAP1 SWAP5 ADD SWAP1 SWAP3 AND SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x1FD8 PUSH2 0x278A JUMP JUMPDEST PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x18160DDD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x202B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x203F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2055 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP4 POP DUP4 ISZERO ISZERO PUSH2 0x20B1 JUMPI PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH2 0x20A6 SWAP1 PUSH4 0xFFFFFFFF SWAP1 DUP2 AND SWAP1 PUSH2 0x209A SWAP1 DUP11 SWAP1 PUSH3 0xF4240 SWAP1 PUSH2 0x27E8 AND JUMP JUMPDEST SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x286C AND JUMP JUMPDEST SWAP6 POP PUSH1 0x0 SWAP5 POP PUSH2 0x21CD JUMP JUMPDEST PUSH1 0x7 DUP1 SLOAD PUSH1 0x0 SWAP1 DUP2 LT PUSH2 0x20C0 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP3 POP PUSH2 0x2100 PUSH32 0x536F7672796E53776170466F726D756C61000000000000000000000000000000 PUSH2 0x1AA2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xF3250FE2 DUP6 PUSH2 0x2118 DUP7 PUSH2 0x15B6 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 ADD SLOAD DUP2 MLOAD PUSH4 0xFFFFFFFF DUP9 DUP2 AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP3 MSTORE PUSH1 0x4 DUP3 ADD SWAP8 SWAP1 SWAP8 MSTORE PUSH1 0x24 DUP2 ADD SWAP6 SWAP1 SWAP6 MSTORE SWAP5 SWAP1 SWAP5 AND PUSH1 0x44 DUP5 ADD MSTORE PUSH1 0x64 DUP4 ADD DUP14 SWAP1 MSTORE SWAP3 MLOAD PUSH1 0x84 DUP1 DUP5 ADD SWAP5 SWAP4 SWAP2 SWAP3 SWAP2 DUP4 SWAP1 SUB ADD SWAP1 DUP3 SWAP1 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x218B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x219F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x21B5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 POP PUSH2 0x21C2 DUP3 PUSH2 0x28DA JUMP JUMPDEST SWAP1 POP DUP1 DUP3 SUB DUP2 SWAP6 POP SWAP6 POP JUMPDEST POP POP POP POP SWAP2 POP SWAP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x21E7 PUSH2 0x278A JUMP JUMPDEST PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x18160DDD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x223A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x224E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2264 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x7 DUP1 SLOAD SWAP2 SWAP6 POP SWAP1 PUSH1 0x0 SWAP1 DUP2 LT PUSH2 0x2279 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP3 POP DUP4 DUP8 EQ ISZERO PUSH2 0x22A1 JUMPI PUSH2 0x20A6 DUP4 PUSH2 0x15B6 JUMP JUMPDEST PUSH2 0x22CA PUSH32 0x536F7672796E53776170466F726D756C61000000000000000000000000000000 PUSH2 0x1AA2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x76CF0B56 DUP6 PUSH2 0x2118 DUP7 PUSH2 0x15B6 JUMP JUMPDEST PUSH2 0x22EA PUSH2 0x19D3 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x22F4 PUSH2 0x1275 JUMP JUMPDEST PUSH2 0xFFFF AND GT PUSH2 0x234D JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F434F554E5400000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x79BA5097 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x23A0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x23B4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0xABF PUSH2 0x290A JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x0 SWAP1 DUP2 SWAP1 DUP2 SWAP1 DUP2 SWAP1 DUP2 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP11 DUP2 AND SWAP2 AND EQ DUP1 ISZERO PUSH2 0x240D JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP11 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND JUMPDEST ISZERO PUSH2 0x2427 JUMPI DUP10 SWAP3 POP PUSH2 0x2420 DUP9 DUP9 DUP9 PUSH2 0x294C JUMP JUMPDEST SWAP4 POP PUSH2 0x247C JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 DUP2 AND SWAP2 AND EQ DUP1 ISZERO PUSH2 0x2469 JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP10 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND JUMPDEST ISZERO PUSH2 0x1329 JUMPI DUP9 SWAP3 POP PUSH2 0x2420 DUP9 DUP9 DUP9 PUSH2 0x2C12 JUMP JUMPDEST PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x18160DDD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x24CF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x24E3 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x24F9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP6 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH1 0x5 SLOAD SWAP4 SWAP6 POP PUSH4 0xFFFFFFFF AND SWAP4 POP SWAP2 AND PUSH32 0x77F29993CF2C084E726F7E802DA0719D6A0ADE3E204BADC7A3FFD57ECB768C24 PUSH2 0x2565 PUSH3 0xF4240 PUSH2 0x2559 DUP9 PUSH2 0x15B6 JUMP JUMPDEST SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x27E8 AND JUMP JUMPDEST PUSH2 0x2578 DUP7 PUSH4 0xFFFFFFFF DUP1 DUP9 AND SWAP1 PUSH2 0x27E8 AND JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB ADD SWAP1 LOG3 POP SWAP2 SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0x9F1 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x7472616E7366657228616464726573732C75696E743235362900000000000000 DUP2 MSTORE DUP2 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x19 ADD DUP2 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x64 SWAP1 SWAP3 ADD SWAP1 SWAP3 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE PUSH2 0x26B3 SWAP1 DUP5 SWAP1 PUSH2 0x2F97 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x26C0 PUSH2 0x9F4 JUMP JUMPDEST ISZERO PUSH2 0xABF JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xA PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F41435449564500000000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 PUSH4 0xFFFFFFFF AND GT DUP1 ISZERO PUSH2 0x2734 JUMPI POP PUSH3 0xF4240 PUSH4 0xFFFFFFFF DUP3 AND GT ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x9F1 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F574549474854000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x2792 PUSH2 0x9F4 JUMP JUMPDEST ISZERO ISZERO PUSH2 0xABF JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E4143544956450000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP4 ISZERO ISZERO PUSH2 0x27FB JUMPI PUSH1 0x0 SWAP2 POP PUSH2 0x2865 JUMP JUMPDEST POP DUP3 DUP3 MUL DUP3 DUP5 DUP3 DUP2 ISZERO ISZERO PUSH2 0x280B JUMPI INVALID JUMPDEST DIV EQ PUSH2 0x2861 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP1 SWAP2 POP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP4 GT PUSH2 0x28C6 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4449564944455F42595F5A45524F0000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP3 DUP5 DUP2 ISZERO ISZERO PUSH2 0x28D1 JUMPI INVALID JUMPDEST DIV SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x0 SWAP1 PUSH2 0x15B0 SWAP1 PUSH3 0xF4240 SWAP1 PUSH2 0x209A SWAP1 DUP6 SWAP1 PUSH9 0x10000000000000000 SWAP1 DIV PUSH4 0xFFFFFFFF SWAP1 DUP2 AND SWAP1 PUSH2 0x27E8 AND JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x116F JUMPI PUSH2 0x2944 PUSH1 0x7 DUP3 DUP2 SLOAD DUP2 LT ISZERO ISZERO PUSH2 0x292A JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x1C26 JUMP JUMPDEST PUSH1 0x1 ADD PUSH2 0x2910 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x295B DUP8 PUSH2 0x1FC7 JUMP JUMPDEST SWAP1 SWAP4 POP SWAP2 POP DUP3 ISZERO ISZERO PUSH2 0x29B7 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5A45524F5F5441524745545F414D4F554E5400000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x7 DUP1 SLOAD PUSH1 0x0 SWAP1 DUP2 LT PUSH2 0x29C6 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP1 POP PUSH20 0xEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE DUP2 EQ ISZERO PUSH2 0x2A55 JUMPI CALLVALUE DUP8 EQ PUSH2 0x2A50 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4554485F414D4F554E545F4D49534D41544348000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x2B5D JUMP JUMPDEST CALLVALUE ISZERO DUP1 ISZERO PUSH2 0x2B07 JUMPI POP DUP7 PUSH2 0x2B04 PUSH2 0x2A6B DUP4 PUSH2 0x15B6 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2ACC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2AE0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2AF6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x3025 AND JUMP JUMPDEST LT ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x2B5D JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F414D4F554E540000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x2B66 DUP2 PUSH2 0x1C26 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x867904B400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH1 0x24 DUP3 ADD DUP8 SWAP1 MSTORE SWAP2 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP2 PUSH4 0x867904B4 SWAP2 PUSH1 0x44 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2BD4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2BE8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x5 SLOAD PUSH2 0x2C07 SWAP3 POP DUP4 SWAP2 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP9 DUP11 DUP8 DUP8 PUSH2 0x3085 JUMP JUMPDEST POP SWAP1 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP3 DUP4 SWAP3 DUP4 SWAP3 DUP4 SWAP3 DUP4 SWAP3 DUP4 SWAP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2C84 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2C98 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2CAE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD DUP10 GT ISZERO PUSH2 0x2D07 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F414D4F554E540000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x2D10 DUP10 PUSH2 0x21D6 JUMP JUMPDEST SWAP1 SWAP6 POP SWAP4 POP DUP5 ISZERO ISZERO PUSH2 0x2D6C JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5A45524F5F5441524745545F414D4F554E5400000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x7 DUP1 SLOAD PUSH1 0x0 SWAP1 DUP2 LT PUSH2 0x2D7B JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 SWAP1 SWAP2 ADD SLOAD PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x18160DDD00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND SWAP9 POP SWAP2 SWAP1 SWAP3 AND SWAP4 PUSH4 0x18160DDD SWAP4 PUSH1 0x4 DUP1 DUP6 ADD SWAP5 SWAP2 SWAP4 SWAP3 SWAP2 DUP4 SWAP1 SUB ADD SWAP1 DUP3 SWAP1 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2DED JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2E01 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2E17 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 POP PUSH2 0x2E24 DUP4 PUSH2 0x15B6 JUMP JUMPDEST SWAP1 POP DUP1 DUP6 LT DUP1 PUSH2 0x2E3D JUMPI POP DUP1 DUP6 EQ DUP1 ISZERO PUSH2 0x2E3D JUMPI POP DUP2 DUP10 EQ JUMPDEST ISZERO ISZERO PUSH2 0x2E45 JUMPI INVALID JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xA24835D100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP13 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP2 PUSH4 0xA24835D1 SWAP2 PUSH1 0x44 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2EB1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2EC5 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x2EF2 SWAP2 POP DUP7 PUSH4 0xFFFFFFFF PUSH2 0x3025 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE PUSH20 0xEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE EQ ISZERO PUSH2 0x2F65 JUMPI PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 AND SWAP1 DUP7 ISZERO PUSH2 0x8FC MUL SWAP1 DUP8 SWAP1 PUSH1 0x0 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x2F5F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH2 0x2F70 JUMP JUMPDEST PUSH2 0x2F70 DUP4 DUP9 DUP8 PUSH2 0x25FE JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH2 0x2F8A SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP5 DUP11 DUP13 DUP10 DUP10 PUSH2 0x3085 JUMP JUMPDEST POP SWAP3 SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x2F9F PUSH2 0x3138 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE POP SWAP1 POP PUSH1 0x20 DUP2 DUP4 MLOAD PUSH1 0x20 DUP6 ADD PUSH1 0x0 DUP8 GAS CALL DUP1 ISZERO ISZERO PUSH2 0x2FCC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD ISZERO ISZERO PUSH2 0x26B3 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5452414E534645525F4641494C454400000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 DUP4 LT ISZERO PUSH2 0x307F JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F554E444552464C4F5700000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP SWAP1 SUB SWAP1 JUMP JUMPDEST PUSH32 0x8000000000000000000000000000000000000000000000000000000000000000 DUP2 LT PUSH2 0x30AE JUMPI INVALID JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP5 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 SWAP1 MSTORE DUP1 DUP3 ADD DUP4 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP8 AND SWAP3 DUP9 DUP3 AND SWAP3 SWAP2 DUP11 AND SWAP2 PUSH32 0x276856B36CBC45526A0BA64F44611557A2A8B68662C5388E9FE6D72E86E1C8CB SWAP2 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG4 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xA0 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE SWAP2 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x60 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 SWAP1 PUSH1 0x20 DUP3 MUL DUP1 CODESIZE DUP4 CODECOPY POP SWAP2 SWAP3 SWAP2 POP POP JUMP STOP MSTORE8 PUSH16 0x7672796E53776170436F6E7665727465 PUSH19 0x557067726164657200000000004552525F4143 NUMBER GASLIMIT MSTORE8 MSTORE8 0x5f DIFFICULTY GASLIMIT 0x4e 0x49 GASLIMIT DIFFICULTY STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 0xc3 SWAP16 SWAP8 EXTCODECOPY 0xbc SHR CREATE PUSH22 0x8A64156854331E6829D0C51A16E297AAE88602BE0C95 0xbc SWAP12 STOP 0x29 ", + "sourceMap": "449:10223:21:-;;;;;;;;-1:-1:-1;449:10223:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1884:42:4;7097:29;;:8;:29;;:35;;;;;;;7089:67;;;;;;;-1:-1:-1;;;;;7089:67:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;449:10223:21;3280:206:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3280:206:60;;;;;;;2700:30:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2700:30:4;;;;;;;;;;;;;;;;;;;;;;;18973:244;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;18973:244:4;;;-1:-1:-1;;;;;18973:244:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14417:102;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14417:102:4;;;;;;;;;;;;;;;;;;;;;;19274:125;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;19274:125:4;;;;;;;;;-1:-1:-1;;;;;19274:125:4;;;;;;;;;;;;;;13732:152;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;13732:152:4;;;-1:-1:-1;;;;;13732:152:4;;;19798:206;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;19798:206:4;-1:-1:-1;;;;;19798:206:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18669:110;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;18669:110:4;;;-1:-1:-1;;;;;18669:110:4;;;8967:93;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8967:93:4;;;;1250:38:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1250:38:60;;;;18836:80:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18836:80:4;;;;10292:155;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;10292:155:4;-1:-1:-1;;;;;10292:155:4;;;;;;;;;;;;1180:81:21;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1180:81:21;;;;;;;;;;;;;;;;;;;;;;;2080:832:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2080:832:60;;;;8691:132:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;8691:132:4;;;-1:-1:-1;;;;;8691:132:4;;;2221:35;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2221:35:4;;;;2993:31;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2993:31:4;;;;11282:601;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;11282:601:4;-1:-1:-1;;;;;11282:601:4;;;;;;;;;;;;1165:37:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1165:37:60;;;;9368:137:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;9368:137:4;;;-1:-1:-1;;;;;9368:137:4;;;7669:465;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;7669:465:4;;;-1:-1:-1;;;;;7669:465:4;;;2025:253:21;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2025:253:21;;;-1:-1:-1;;;;;2025:253:21;;;;;;;19456:94:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19456:94:4;;;;1159:176:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1159:176:66;;;;1085:33:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1085:33:60;;;;157:20:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;157:20:66;;;;2818:34:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2818:34:4;;;;12584:101;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12584:101:4;;;;2720:472:21;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2720:472:21;-1:-1:-1;;;;;2720:472:21;;;;;;;;;;;;2974:119:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2974:119:60;;;;3095:46:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3095:46:4;;;;2322:37;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2322:37:4;;;;1534:157:21;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1534:157:21;;;;2445:34:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2445:34:4;;;;;8282:71;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8282:71:4;;;;2260:30;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2260:30:4;;;;180:23:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;180:23:66;;;;12079:317:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12079:317:4;;;;2566:43;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2566:43:4;;;-1:-1:-1;;;;;2566:43:4;;;19607:134;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;19607:134:4;;;-1:-1:-1;;;;;19607:134:4;;;;;;;;;;;;;;;;;;;14111:155;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;14111:155:4;;;-1:-1:-1;;;;;14111:155:4;;;15044:649;;-1:-1:-1;;;;;15044:649:4;;;;;;;;;;;;;;;;;;;;;;;10618:240;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;10618:240:4;;;;;;;945:140:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;945:140:66;;;-1:-1:-1;;;;;945:140:66;;;18535:77:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18535:77:4;;;;3280:206:60;575:12:66;:10;:12::i;:::-;3426:26:60;:56;;;;;;;-1:-1:-1;;3426:56:60;;;;;;;;;3280:206::o;2700:30:4:-;;;;;;:::o;18973:244::-;19042:7;19054:6;19065:4;19074;19083;19097:22;;:::i;:::-;-1:-1:-1;;;;;;;;;19122:18:4;;;;;;;;:8;:18;;;;;;;;19097:43;;-1:-1:-1;19097:43:4;;;;;;;;;-1:-1:-1;19097:43:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;19122:18:4;;-1:-1:-1;19122:18:4;;19097:43;18973:244::o;14417:102::-;1884:42;14463:4;14480:29;:8;:29;;:35;;;;;;;;14417:102::o;19274:125::-;19336:11;19360:27;19388:6;19360:35;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;19360:35:4;;;-1:-1:-1;;19274:125:4:o;13732:152::-;13831:6;13807:13;6115:23;6129:8;6115:13;:23::i;:::-;-1:-1:-1;;;;;;;13850:23:4;;;;;:8;:23;;;;;-1:-1:-1;13850:30:4;;;;;13732:152::o;19798:206::-;19916:7;19925;19945:55;19964:12;19978;19992:7;19945:18;:55::i;:::-;19938:62;;;;19798:206;;;;;;;:::o;18669:110::-;575:12:66;:10;:12::i;:::-;18741:34:4;18765:9;18741:23;:34::i;:::-;18669:110;:::o;8967:93::-;9025:6;;:14;;;;;;;;9008:4;;9051;;-1:-1:-1;;;;;9025:6:4;;;;:12;;:14;;;;;;;;;;;;;;;9008:4;9025:6;:14;;;5:2:-1;;;;30:1;27;20:12;5:2;9025:14:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9025:14:4;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9025:14:4;-1:-1:-1;;;;;9025:31:4;;;8967:93;-1:-1:-1;8967:93:4:o;1250:38:60:-;;;;;;;;;:::o;18836:80:4:-;575:12:66;:10;:12::i;:::-;18889:23:4;:21;:23::i;:::-;18836:80::o;10292:155::-;575:12:66;:10;:12::i;:::-;10400:6:4;;:43;;;;;;-1:-1:-1;;;;;10400:43:4;;;;;;;;;;;;;;;;;;;;;;:6;;;;;:21;;:43;;;;;-1:-1:-1;;10400:43:4;;;;;;;-1:-1:-1;10400:6:4;:43;;;5:2:-1;;;;30:1;27;20:12;5:2;10400:43:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10400:43:4;;;;10292:155;;;:::o;1180:81:21:-;1226:6;1180:81;:::o;2080:832:60:-;2281:29;2183:5;;-1:-1:-1;;;;;2183:5:60;2169:10;:19;;:50;;-1:-1:-1;2193:26:60;;;;;;;2192:27;2169:50;2161:80;;;;;;;-1:-1:-1;;;;;2161:80:60;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;2161:80:60;;;;;;;;;;;;;;;2331:28;2341:17;2331:9;:28::i;:::-;2465:8;;2281:79;;-1:-1:-1;;;;;;2442:32:60;;;2465:8;;2442:32;;;;:61;;-1:-1:-1;;;;;;2478:25:60;;;;2442:61;2434:94;;;;;;;-1:-1:-1;;;;;2434:94:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;2628:40;;;;;;2650:17;2628:40;;;;;;-1:-1:-1;;;;;;;2628:21:60;;;;;:40;;;;;;;;;;;;;;;-1:-1:-1;2628:21:60;:40;;;5:2:-1;;;;30:1;27;20:12;5:2;2628:40:60;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2628:40:60;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2628:40:60;-1:-1:-1;;;;;2628:54:60;;;2620:87;;;;;-1:-1:-1;;;;;2620:87:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;2799:8;;;2784:12;:23;;-1:-1:-1;;;;;2799:8:60;;;-1:-1:-1;;2784:23:60;;;;;;;2886:22;;;;;;;;;;;2080:832::o;8691:132:4:-;575:12:66;:10;:12::i;:::-;8771:10:4;782:18:72;791:8;782;:18::i;:::-;-1:-1:-1;8787:19:4;:32;;-1:-1:-1;;8787:32:4;-1:-1:-1;;;;;8787:32:4;;;;;;;;;;8691:132::o;2221:35::-;2254:2;2221:35;:::o;2993:31::-;;;;;;;;;:::o;11282:601::-;11396:25;565:12:68;:10;:12::i;:::-;287:1;581:5;:14;575:12:66;:10;:12::i;:::-;11424:29:4;-1:-1:-1;;;;;;;;;;;11424:9:4;:29::i;:::-;-1:-1:-1;;;;;11622:16:4;;;;;;:8;:16;;;;;-1:-1:-1;11622:22:4;;11396:57;;-1:-1:-1;11622:22:4;;;;;11621:23;;:38;;;11649:10;:8;:10::i;:::-;11648:11;11621:38;:68;;;-1:-1:-1;11663:5:4;;-1:-1:-1;;;;;11663:26:4;;;:5;;:26;11621:68;11613:98;;;;;;;-1:-1:-1;;;;;11613:98:4;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;11613:98:4;;;;;;;;;;;;;;;11715:42;11736:6;11744:3;11749:7;11715:20;:42::i;:::-;-1:-1:-1;;;;;11829:16:4;;;;;;:8;:16;;;;;-1:-1:-1;11829:22:4;;;;;;;11825:54;;;11853:26;11872:6;11853:18;:26::i;:::-;-1:-1:-1;;249:1:68;604:5;:16;-1:-1:-1;;11282:601:4:o;1165:37:60:-;;;-1:-1:-1;;;;;1165:37:60;;:::o;9368:137:4:-;575:12:66;:10;:12::i;:::-;-1:-1:-1;;;;;;;;;;;1510:20:60;1516:13;1510:5;:20::i;:::-;9466:6:4;;:35;;;;;;-1:-1:-1;;;;;9466:35:4;;;;;;;;;:6;;;;;:24;;:35;;;;;-1:-1:-1;;9466:35:4;;;;;;;-1:-1:-1;9466:6:4;:35;;;5:2:-1;;;;30:1;27;20:12;5:2;9466:35:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9466:35:4;;;;591:1:66;9368:137:4;:::o;7669:465::-;7781:25;565:12:68;:10;:12::i;:::-;287:1;581:5;:14;575:12:66;:10;:12::i;:::-;1884:42:4;6115:23;6129:8;6115:13;:23::i;:::-;7809:29;-1:-1:-1;;;;;;;;;;;7809:9:4;:29::i;:::-;7781:57;;7938:10;:8;:10::i;:::-;7937:11;:41;;;-1:-1:-1;7952:5:4;;-1:-1:-1;;;;;7952:26:4;;;:5;;:26;7937:41;7929:71;;;;;;;-1:-1:-1;;;;;7929:71:4;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;7929:71:4;;;;;;;;;;;;;;;8004:35;;-1:-1:-1;;;;;8004:12:4;;;8025:4;8017:21;8004:35;;;;;;;;;8017:21;8004:12;:35;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8004:35:4;8078:52;1884:42;8078:18;:52::i;:::-;-1:-1:-1;;249:1:68;604:5;:16;-1:-1:-1;7669:465:4:o;2025:253:21:-;2172:19;:17;:19::i;:::-;:24;;;2164:62;;;;;-1:-1:-1;;;;;2164:62:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;2237:33;2254:6;2262:7;2237:16;:33::i;:::-;2025:253;;:::o;19456:94:4:-;19508:6;19527:19;:17;:19::i;:::-;19520:26;;19456:94;:::o;1159:176:66:-;1219:8;;-1:-1:-1;;;;;1219:8:66;1205:10;:22;1197:52;;;;;-1:-1:-1;;;;;1197:52:66;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;1197:52:66;;;;;;;;;;;;;;;1277:8;;;1270:5;;1258:28;;-1:-1:-1;;;;;1277:8:66;;;;1270:5;;;;1258:28;;;1298:8;;;;1290:16;;-1:-1:-1;;;;;1298:8:66;;-1:-1:-1;;1290:16:66;;;;;;;1310:21;;;1159:176::o;1085:33:60:-;;;-1:-1:-1;;;;;1085:33:60;;:::o;157:20:66:-;;;-1:-1:-1;;;;;157:20:66;;:::o;2818:34:4:-;;;;;;;;;:::o;12584:101::-;12660:13;:20;12584:101;:::o;2720:472:21:-;2899:6;;2838:7;;;;-1:-1:-1;;;;;2871:35:21;;;2899:6;;2871:35;:67;;;;-1:-1:-1;;;;;;2910:22:21;;;;;;:8;:22;;;;;-1:-1:-1;2910:28:21;;;;;;;2871:67;2867:122;;;2960:29;2981:7;2960:20;:29::i;:::-;2953:36;;;;;;2867:122;3032:6;;-1:-1:-1;;;;;3004:35:21;;;3032:6;;3004:35;:67;;;;-1:-1:-1;;;;;;3043:22:21;;;;;;:8;:22;;;;;-1:-1:-1;3043:28:21;;;;;;;3004:67;3000:118;;;3093:25;3110:7;3093:16;:25::i;3000:118::-;3157:27;;;-1:-1:-1;;;;;3157:27:21;;;;;;;;;;;;;;;;;;;;;;;;;;;2974:119:60;575:12:66;:10;:12::i;:::-;3077::60;;3066:8;:23;;-1:-1:-1;;3066:23:60;-1:-1:-1;;;;;3077:12:60;;;3066:23;;;;;;2974:119::o;3095:46:4:-;3137:4;3095:46;:::o;2322:37::-;;;-1:-1:-1;;;;;2322:37:4;;:::o;1534:157:21:-;575:12:66;:10;:12::i;:::-;1595:29:21;:27;:29::i;:::-;1670:6;;1678:4;;-1:-1:-1;;;;;1670:6:21;1653:15;:13;:15::i;:::-;1642:41;;;;;;;;;;;;1534:157::o;2445:34:4:-;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2445:34:4;;-1:-1:-1;2445:34:4;:::o;8282:71::-;8345:4;8282:71;:::o;2260:30::-;;;-1:-1:-1;;;;;2260:30:4;;:::o;180:23:66:-;;;-1:-1:-1;;;;;180:23:66;;:::o;12079:317:4:-;12119:36;575:12:66;:10;:12::i;:::-;12177:29:4;-1:-1:-1;;;;;;;;;;;12177:9:4;:29::i;:::-;12278:6;;12119:88;;-1:-1:-1;12286:5:4;;-1:-1:-1;;;;;12278:6:4;12261:15;:13;:15::i;:::-;12250:42;;;;;;;;;;;;12297:36;12315:17;12297;:36::i;:::-;12337:34;;;;;;2254:2;12337:34;;;;;;-1:-1:-1;;;;;12337:25:4;;;;;:34;;;;;-1:-1:-1;;12337:34:4;;;;;;;-1:-1:-1;12337:25:4;:34;;;5:2:-1;;;;30:1;27;20:12;5:2;12337:34:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12337:34:4;;;;12375:17;:15;:17::i;2566:43::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;19607:134::-;19686:7;19706:31;19721:15;19706:14;:31::i;:::-;19699:38;19607:134;-1:-1:-1;;19607:134:4:o;14111:155::-;14211:7;14187:13;6115:23;6129:8;6115:13;:23::i;:::-;-1:-1:-1;;;;;;;14231:23:4;;;;;:8;:23;;;;;:31;;14111:155::o;15044:649::-;15241:7;565:12:68;:10;:12::i;:::-;287:1;581:5;:14;15212:18:4;1510:20:60;15212:18:4;1510:5:60;:20::i;:::-;-1:-1:-1;;;;;15282:28:4;;;;;;;;15274:63;;;;;-1:-1:-1;;;;;15274:63:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;15446:19;;-1:-1:-1;;;;;15446:19:4;:33;;:132;;-1:-1:-1;15484:19:4;;:42;;;;;;-1:-1:-1;;;;;15484:42:4;;;;;;;;;:19;;;;;:33;;:42;;;;;;;;;;;;;;-1:-1:-1;15484:19:4;:42;;;5:2:-1;;;;30:1;27;20:12;5:2;15484:42:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15484:42:4;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;15484:42:4;:93;;;;-1:-1:-1;15530:19:4;;:47;;;;;;-1:-1:-1;;;;;15530:47:4;;;;;;;;;:19;;;;;:33;;:47;;;;;;;;;;;;;;-1:-1:-1;15530:19:4;:47;;;5:2:-1;;;;30:1;27;20:12;5:2;15530:47:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15530:47:4;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;15530:47:4;15484:93;15434:174;;;;;;;-1:-1:-1;;;;;15434:174:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;15620:69;15630:12;15644;15658:7;15667;15676:12;15620:9;:69::i;:::-;249:1:68;604:5;:16;15613:76:4;15044:649;-1:-1:-1;;;;;;;15044:649:4:o;10618:240::-;575:12:66;:10;:12::i;:::-;10714:16:4;;;;;;;;;10696:34;;;;;10688:73;;;;;-1:-1:-1;;;;;10688:73:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;10790:13;;10770:50;;;10790:13;;;;;;;10770:50;;;;;;;;;;;;;;;;;;;;;10824:13;:30;;;;;;;;-1:-1:-1;;10824:30:4;;;;;;;;;10618:240::o;945:140:66:-;575:12;:10;:12::i;:::-;1033:5;;-1:-1:-1;;;;;1020:18:66;;;1033:5;;1020:18;;1012:45;;;;;-1:-1:-1;;;;;1012:45:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;1061:8;:20;;-1:-1:-1;;1061:20:66;-1:-1:-1;;;;;1061:20:66;;;;;;;;;;945:140::o;18535:77:4:-;18602:6;;-1:-1:-1;;;;;18602:6:4;;18535:77::o;642:93:66:-;704:5;;-1:-1:-1;;;;;704:5:66;690:10;:19;682:49;;;;;-1:-1:-1;;;;;682:49:66;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;682:49:66;;;;;;;;;;;;;;6193:123:4;-1:-1:-1;;;;;6264:18:4;;;;;;:8;:18;;;;;-1:-1:-1;6264:24:4;;;;;;;6256:56;;;;;;;-1:-1:-1;;;;;6256:56:4;;;;;;;;;;;;;;;;;;;;;;;;;;;3647:122:60;3732:8;;:33;;;;;;;;;;;;;;-1:-1:-1;;;;;;;3732:8:60;;:18;;:33;;;;;;;;;;;;;;-1:-1:-1;3732:8:60;:33;;;5:2:-1;;;;30:1;27;20:12;5:2;3732:33:60;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3732:33:60;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3732:33:60;;3647:122;-1:-1:-1;;3647:122:60:o;855:115:72:-;937:4;-1:-1:-1;;;;;917:25:72;;;;909:57;;;;;-1:-1:-1;;;;;909:57:72;;;;;;;;;;;;;;;;;;;;;;;;;;;670:88:68;718:5;;249:1;718:17;710:44;;;;;-1:-1:-1;;;;;710:44:68;;;;;;;;;;;;;;;;;;;;;;;;;;;1077:194:71;575:12:66;:10;:12::i;:::-;1190:6:71;475:23:72;489:8;475:13;:23::i;:::-;1211:3:71;475:23:72;489:8;475:13;:23::i;:::-;1224:3:71;782:18:72;791:8;782;:18::i;:::-;1233:34:71;1246:6;1254:3;1259:7;1233:12;:34::i;16898:269:4:-;16975:13;6115:23;6129:8;6115:13;:23::i;:::-;1884:42;-1:-1:-1;;;;;16998:36:4;;;16994:169;;;-1:-1:-1;;;;;17036:23:4;;;;;;:8;:23;;;;;17078:4;17070:21;17036:55;;16994:169;;;17134:29;;;;;;17158:4;17134:29;;;;;;-1:-1:-1;;;;;17134:23:4;;;;;:29;;;;;;;;;;;;;;-1:-1:-1;17134:23:4;:29;;;5:2:-1;;;;30:1;27;20:12;5:2;17134:29:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17134:29:4;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;17134:29:4;-1:-1:-1;;;;;17100:23:4;;;;;;:8;17134:29;17100:23;;;;:63;16898:269;;:::o;1585:128:60:-;1663:24;1673:13;1663:9;:24::i;:::-;-1:-1:-1;;;;;1649:38:60;:10;:38;1641:68;;;;;-1:-1:-1;;;;;1641:68:60;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;1641:68:60;;;;;;;;;;;;;;12940:623:4;13373:26;575:12:66;:10;:12::i;:::-;5818:11:4;:9;:11::i;:::-;13043:6;475:23:72;489:8;475:13;:23::i;:::-;13061:6:4;782:18:72;791:8;782;:18::i;:::-;13090:7:4;6729:28;6749:7;6729:19;:28::i;:::-;13150:6;;-1:-1:-1;;;;;13132:25:4;;;13150:6;;13132:25;;;;:52;;-1:-1:-1;;;;;;13162:16:4;;;;;;:8;:16;;;;;-1:-1:-1;13162:22:4;;;;;;;13161:23;13132:52;13124:84;;;;;;;-1:-1:-1;;;;;13124:84:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;13251:12;;;;;;1763:7;13231:32;13220:43;;;;;;;13212:82;;;;;-1:-1:-1;;;;;13212:82:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;13306:32;:19;:17;:19::i;:::-;:32;;;13298:70;;;;;-1:-1:-1;;;;;13298:70:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;13402:16:4;;;;;;;;:8;:16;;;;;13422:22;;;-1:-1:-1;13448:17:4;;;:27;;-1:-1:-1;;13448:27:4;;;;-1:-1:-1;;13448:27:4;;;;13479:23;;;;;;;;;13506:13;27:10:-1;;23:18;;;45:23;;13506:26:4;;;;;;;;;-1:-1:-1;;13506:26:4;;;;;;;13536:12;:23;;;;;;;;;;;;;;;;;;;12940:623::o;5235:910:21:-;5348:7;5357;5382:19;5688:24;5742:14;6066:11;5606:9:4;:7;:9::i;:::-;5416:6:21;;5404:33;;;-1:-1:-1;;;;;5404:33:21;;;;-1:-1:-1;;;;;5416:6:21;;;;5404:31;;:33;;;;;;;;;;;;;;;5416:6;;5404:33;;;5:2:-1;;;;30:1;27;20:12;5:2;5404:33:21;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5404:33:21;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5404:33:21;;-1:-1:-1;5567:16:21;;5563:112;;;-1:-1:-1;;;;;5641:22:21;;;;;;:8;:22;;;;;-1:-1:-1;5641:29:21;;5606:65;;5641:29;;;;;5606:30;;:7;;1763::4;;5606:11:21;:30;:::i;:::-;:34;:65;:34;:65;:::i;:::-;5598:77;-1:-1:-1;5673:1:21;;-1:-1:-1;5598:77:21;;5563:112;5715:13;:16;;5729:1;;5715:16;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5715:16:21;;-1:-1:-1;5778:29:21;5788:18;5778:9;:29::i;:::-;-1:-1:-1;;;;;5759:70:21;;5844:11;5870:28;5885:12;5870:14;:28::i;:::-;-1:-1:-1;;;;;5913:22:21;;;;;;:8;:22;;;;;;;;-1:-1:-1;5913:29:21;;5759:216;;5913:29;5759:216;;;-1:-1:-1;5759:216:21;;;;;;;;;;;;;;;;;5913:29;;;;5759:216;;;;;;;;;;;;;;;;;5913:22;5759:216;;;;;;;;;;;;;;5:2:-1;;;;30:1;27;20:12;5:2;5759:216:21;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5759:216:21;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5759:216:21;;-1:-1:-1;6080:20:21;5759:216;6080:12;:20::i;:::-;6066:34;;6128:3;6119:6;:12;6133:3;6111:26;;;;5619:1:4;5235:910:21;;;;;;;:::o;6422:843::-;6531:7;6540;6565:19;6633:24;6866:14;7186:11;5606:9:4;:7;:9::i;:::-;6599:6:21;;6587:33;;;-1:-1:-1;;;;;6587:33:21;;;;-1:-1:-1;;;;;6599:6:21;;;;6587:31;;:33;;;;;;;;;;;;;;;6599:6;;6587:33;;;5:2:-1;;;;30:1;27;20:12;5:2;6587:33:21;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6587:33:21;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6587:33:21;6660:13;:16;;6587:33;;-1:-1:-1;6660:13:21;6674:1;;6660:16;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6660:16:21;;-1:-1:-1;6776:22:21;;;6772:81;;;6821:28;6836:12;6821:14;:28::i;6772:81::-;6902:29;6912:18;6902:9;:29::i;:::-;-1:-1:-1;;;;;6883:66:21;;6964:11;6990:28;7005:12;6990:14;:28::i;9796:227:4:-;575:12:66;:10;:12::i;:::-;9935:1:4;9913:19;:17;:19::i;:::-;:23;;;9905:61;;;;;-1:-1:-1;;;;;9905:61:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;9970:6;;:24;;;;;;;;-1:-1:-1;;;;;9970:6:4;;;;:22;;:24;;;;;:6;;:24;;;;;;;;:6;;:24;;;5:2:-1;;;;30:1;27;20:12;5:2;9970:24:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9970:24:4;;;;9998:21;:19;:21::i;3768:1117:21:-;4056:6;;3931:7;;;;;;;;;;-1:-1:-1;;;;;4028:35:21;;;4056:6;;4028:35;:67;;;;-1:-1:-1;;;;;;4067:22:21;;;;;;:8;:22;;;;;-1:-1:-1;4067:28:21;;;;;;;4028:67;4024:499;;;4127:12;4112:27;;4169:35;4173:7;4182;4191:12;4169:3;:35::i;:::-;4154:50;;4024:499;;;4263:6;;-1:-1:-1;;;;;4235:35:21;;;4263:6;;4235:35;:67;;;;-1:-1:-1;;;;;;4274:22:21;;;;;;:8;:22;;;;;-1:-1:-1;4274:28:21;;;;;;;4235:67;4231:292;;;4334:12;4319:27;;4376:36;4381:7;4390;4399:12;4376:4;:36::i;4231:292::-;4623:6;;4611:33;;;-1:-1:-1;;;;;4611:33:21;;;;-1:-1:-1;;;;;4623:6:21;;;;4611:31;;:33;;;;;;;;;;;;;;;4623:6;;4611:33;;;5:2:-1;;;;30:1;27;20:12;5:2;4611:33:21;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4611:33:21;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4611:33:21;-1:-1:-1;;;;;4678:22:21;;;;;;;:8;4611:33;4678:22;;;;-1:-1:-1;4678:29:21;;4739:6;;4611:33;;-1:-1:-1;4678:29:21;;;-1:-1:-1;4678:22:21;4739:6;4723:122;4761:51;1763:7:4;4761:28:21;4678:22;4761:14;:28::i;:::-;:32;:51;:32;:51;:::i;:::-;4814:30;:11;:30;;;;;:15;:30;:::i;:::-;4723:122;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4865:12:21;;3768:1117;-1:-1:-1;;;;;;;;3768:1117:21:o;553:117:72:-;-1:-1:-1;;;;;620:22:72;;;;612:54;;;;;-1:-1:-1;;;;;612:54:72;;;;;;;;;;;;;;;;;;;;;;;;;;;1214:173:70;248:38;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1323:59:70;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;1323:59:70;;;;;;;;25:18:-1;;61:17;;1323:59:70;182:15:-1;1323:59:70;;;;179:29:-1;;;;160:49;;;1307:76:70;;1315:6;;1307:7;:76::i;:::-;1214:173;;;:::o;5884:77:4:-;5932:10;:8;:10::i;:::-;5931:11;5923:34;;;;;-1:-1:-1;;;;;5923:34:4;;;;;;;;;;;;;;;;;;;;;;;;;;;6812:149;6893:1;6883:7;:11;;;:43;;;;-1:-1:-1;1763:7:4;6898:28;;;;;6883:43;6875:82;;;;;;;-1:-1:-1;;;;;6875:82:4;;;;;;;;;;;;;;;;;;;;;;;;;;;5670:76;5715:10;:8;:10::i;:::-;5707:35;;;;;;;-1:-1:-1;;;;;5707:35:4;;;;;;;;;;;;;;;;;;;;;;;;;;;924:197:69;984:7;;1023;;1019:21;;;1039:1;1032:8;;;;1019:21;-1:-1:-1;1057:7:69;;;1062:2;1057;:7;1076:6;;;;;;;;:12;1068:37;;;;;-1:-1:-1;;;;;1068:37:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;1116:1;1109:8;;924:197;;;;;;:::o;1307:149::-;1367:7;;1388:6;;;1380:37;;;;;-1:-1:-1;;;;;1380:37:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;1438:2;1433;:7;;;;;;;;;1307:149;-1:-1:-1;;;;1307:149:69:o;16577:155:4:-;16683:13;;16645:7;;16665:63;;1826:7;;16665:32;;:13;;16683;;;16665:63;16683:13;;;;16665:17;:32;:::i;17223:174::-;17290:13;:20;17267;17314:79;17338:12;17334:1;:16;17314:79;;;17357:36;17376:13;17390:1;17376:16;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;17376:16:4;17357:18;:36::i;:::-;17352:3;;17314:79;;7645:1109:21;7732:7;7800:14;7816:11;7987:24;7831:29;7852:7;7831:20;:29::i;:::-;7799:61;;-1:-1:-1;7799:61:21;-1:-1:-1;7936:11:21;;;7928:46;;;;;-1:-1:-1;;;;;7928:46:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;8014:13;:16;;8028:1;;8014:16;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8014:16:21;;-1:-1:-1;1884:42:4;8110:35:21;;8106:261;;;8168:9;:20;;8160:56;;;;;-1:-1:-1;;;;;8160:56:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;8106:261;;;8253:9;:14;:91;;;;;8337:7;8271:62;8304:28;8319:12;8304:14;:28::i;:::-;8271;;;;;;8294:4;8271:28;;;;;;-1:-1:-1;;;;;8271:22:21;;;;;:28;;;;;;;;;;;;;;-1:-1:-1;8271:22:21;:28;;;5:2:-1;;;;30:1;27;20:12;5:2;8271:28:21;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8271:28:21;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8271:28:21;;:62;:32;:62;:::i;:::-;:73;;8253:91;8245:122;;;;;;;-1:-1:-1;;;;;8245:122:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;8417:32;8436:12;8417:18;:32::i;:::-;8541:6;;8529:47;;;;;;-1:-1:-1;;;;;8529:47:21;;;;;;;;;;;;;;;8541:6;;;;;8529:25;;:47;;;;;-1:-1:-1;;8529:47:21;;;;;;;-1:-1:-1;8541:6:21;8529:47;;;5:2:-1;;;;30:1;27;20:12;5:2;8529:47:21;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;8681:6:21;;8631:89;;-1:-1:-1;8655:12:21;;-1:-1:-1;;;;;;8681:6:21;8690:7;8699;8708:6;8716:3;8631:23;:89::i;:::-;-1:-1:-1;8740:6:21;;7645:1109;-1:-1:-1;;;;;7645:1109:21:o;9126:1543::-;9328:6;;9316:35;;;;;;9346:4;9316:35;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;9328:6:21;;;;9316:29;;:35;;;;;;;;;;;;;;;-1:-1:-1;9328:6:21;9316:35;;;5:2:-1;;;;30:1;27;20:12;5:2;9316:35:21;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9316:35:21;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9316:35:21;9305:46;;;9297:77;;;;;-1:-1:-1;;;;;9297:77:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;9466:25;9483:7;9466:16;:25::i;:::-;9434:57;;-1:-1:-1;9434:57:21;-1:-1:-1;9567:11:21;;;9559:46;;;;;-1:-1:-1;;;;;9559:46:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;9645:13;:16;;9659:1;;9645:16;;;;;;;;;;;;;;;;;;;9820:6;;9808:33;;;-1:-1:-1;;;;;9808:33:21;;;;-1:-1:-1;;;;;9645:16:21;;;;-1:-1:-1;9820:6:21;;;;;9808:31;;:33;;;;;9645:16;;9808:33;;;;;;;;;;9820:6;9808:33;;;5:2:-1;;;;30:1;27;20:12;5:2;9808:33:21;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9808:33:21;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9808:33:21;;-1:-1:-1;9873:28:21;9888:12;9873:14;:28::i;:::-;9852:49;;9928:10;9919:6;:19;:71;;;;9953:10;9943:6;:20;:46;;;;;9978:11;9967:7;:22;9943:46;9912:79;;;;;;10094:6;;10082:42;;;;;;10110:4;10082:42;;;;;;;;;;;;-1:-1:-1;;;;;10094:6:21;;;;10082:27;;:42;;;;;-1:-1:-1;;10082:42:21;;;;;;;;-1:-1:-1;10094:6:21;10082:42;;;5:2:-1;;;;30:1;27;20:12;5:2;10082:42:21;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;;;;;;;;10209:22:21;;;;;;:8;:22;;;;;:30;:42;;10244:6;10209:34;:42::i;:::-;-1:-1:-1;;;;;10176:22:21;;;;;;:8;:22;;;;;:75;;;;1884:42:4;10335:35:21;10331:160;;;10385:29;;-1:-1:-1;;;;;10385:21:21;;;:29;;;;;;;;;;;;:21;:29;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10385:29:21;10331:160;;;10443:48;10456:12;10470;10484:6;10443:12;:48::i;:::-;10582:6;;10546:89;;-1:-1:-1;;;;;10582:6:21;10591:12;10605:7;10614;10623:6;10631:3;10546:23;:89::i;:::-;-1:-1:-1;10655:6:21;;9126:1543;-1:-1:-1;;;;;;;9126:1543:21:o;2255:557:70:-;2324:21;;:::i;:::-;:36;;;;;;;;;2357:1;2324:36;;;;;2687:2;2661:3;2580:5;2574:12;2495:2;2488:5;2484:14;2465:1;2430:6;2404:3;2394:317;2725:7;2718:15;2715:2;;;2750:1;2747;2740:12;2715:2;-1:-1:-1;2773:6:70;;:11;;2765:43;;;;;-1:-1:-1;;;;;2765:43:70;;;;;;;;;;;;;;;;;;;;;;;;;;;613:129:69;673:7;694:8;;;;686:34;;;;;-1:-1:-1;;;;;686:34:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;731:7:69;;;613:129::o;17773:656:4:-;18318:6;18305:19;;18298:27;;;;18334:91;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;18334:91:4;;;;;;;;;;;;;;;;;;;;;17773:656;;;;;;:::o;449:10223:21:-;;;;;;;;;-1:-1:-1;449:10223:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;-1:-1;449:10223:21;;;-1:-1:-1;;449:10223:21:o" + }, + "methodIdentifiers": { + "acceptAnchorOwnership()": "cdc91c69", + "acceptOwnership()": "79ba5097", + "acceptTokenOwnership()": "38a5e016", + "addReserve(address,uint32)": "6a49d2c4", + "anchor()": "d3fb73b4", + "connectorTokenCount()": "71f52bf3", + "connectorTokens(uint256)": "19b64015", + "connectors(address)": "0e53aae9", + "conversionFee()": "579cd3ca", + "conversionWhitelist()": "c45d3d92", + "conversionsEnabled()": "bf754558", + "convert(address,address,uint256,address,address)": "e8dc12ff", + "converterType()": "3e8ff43f", + "getConnectorBalance(address)": "d8959512", + "getReturn(address,address,uint256)": "1e1401f8", + "hasETHReserve()": "12c2aca4", + "isActive()": "22f3e2d4", + "isV28OrHigher()": "d260529c", + "maxConversionFee()": "94c275ad", + "newOwner()": "d4ee1d90", + "onlyOwnerCanUpdateRegistry()": "2fe8a6ad", + "owner()": "8da5cb5b", + "prevRegistry()": "61cd756e", + "registry()": "7b103999", + "reserveBalance(address)": "dc8de379", + "reserveRatio()": "0c7d5cd8", + "reserveTokenCount()": "9b99a8e2", + "reserveTokens(uint256)": "d031370b", + "reserveWeight(address)": "1cfab290", + "reserves(address)": "d66bd524", + "restoreRegistry()": "b4a176d3", + "restrictRegistryUpdate(bool)": "024c7ec7", + "setConversionFee(uint32)": "ecbca55d", + "setConversionWhitelist(address)": "4af80f0e", + "targetAmountAndFee(address,address,uint256)": "af94b8d8", + "token()": "fc0c546a", + "transferAnchorOwnership(address)": "67b6d57c", + "transferOwnership(address)": "f2fde38b", + "transferTokenOwnership(address)": "21e6b53d", + "updateRegistry()": "49d10b64", + "upgrade()": "d55ec697", + "version()": "54fd4d50", + "withdrawETH(address)": "690d8320", + "withdrawFromAnchor(address,address,uint256)": "395900d4", + "withdrawTokens(address,address,uint256)": "5e35359e" + } + }, + "userdoc": { + "methods": {} + } + } + }, + "solidity/contracts/converter/types/liquid-token/LiquidTokenConverterFactory.sol": { + "LiquidTokenConverterFactory": { + "abi": [ + { + "constant": false, + "inputs": [ + { + "name": "_anchor", + "type": "address" + }, + { + "name": "_registry", + "type": "address" + }, + { + "name": "_maxConversionFee", + "type": "uint32" + } + ], + "name": "createConverter", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "converterType", + "outputs": [ + { + "name": "", + "type": "uint16" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + } + ], + "devdoc": { + "methods": { + "converterType()": { + "details": "returns the converter type the factory is associated with\r ", + "return": "converter type\r" + }, + "createConverter(address,address,uint32)": { + "details": "creates a new converter with the given arguments and transfers\r the ownership to the caller\r ", + "params": { + "_anchor": "anchor governed by the converter\r", + "_maxConversionFee": "maximum conversion fee, represented in ppm\r ", + "_registry": "address of a contract registry contract\r" + }, + "return": "a new converter\r" + } + } + }, + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b506135f8806100206000396000f30060806040526004361061004b5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631141395881146100505780633e8ff43f146100b6575b600080fd5b34801561005c57600080fd5b5061008d73ffffffffffffffffffffffffffffffffffffffff6004358116906024351663ffffffff604435166100e2565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b3480156100c257600080fd5b506100cb6101d5565b6040805161ffff9092168252519081900360200190f35b6000808484846100f06101da565b73ffffffffffffffffffffffffffffffffffffffff938416815291909216602082015263ffffffff9091166040808301919091525190819003606001906000f080158015610142573d6000803e3d6000fd5b50604080517ff2fde38b000000000000000000000000000000000000000000000000000000008152336004820152905191925073ffffffffffffffffffffffffffffffffffffffff83169163f2fde38b9160248082019260009290919082900301818387803b1580156101b457600080fd5b505af11580156101c8573d6000803e3d6000fd5b5092979650505050505050565b600090565b6040516133e2806101eb83390190560060806040526001600455600980546001606060020a03191690553480156200002657600080fd5b50604051606080620033e283398101604090815281516020830151919092015160008054600160a060020a03191633179055828282818062000071816401000000006200011b810204565b5060028054600160a060020a03909216600160a060020a031992831681179091556003805490921617905582620000b1816401000000006200011b810204565b81620000c68164010000000062000196810204565b505060058054600160a060020a03909416600160a060020a031990941693909317909255506009805463ffffffff9092166401000000000267ffffffff0000000019909216919091179055506200020f915050565b600160a060020a03811615156200019357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b50565b620f424063ffffffff821611156200019357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f4552525f494e56414c49445f434f4e56455253494f4e5f464545000000000000604482015290519081900360640190fd5b6131c3806200021f6000396000f30060806040526004361061020b5763ffffffff60e060020a600035041663024c7ec781146102af5780630c7d5cd8146102c95780630e53aae9146102f757806312c2aca41461034c57806319b64015146103755780631cfab290146103a95780631e1401f8146103ca57806321e6b53d1461040d57806322f3e2d41461042e5780632fe8a6ad1461044357806338a5e01614610458578063395900d41461046d5780633e8ff43f1461049757806349d10b64146104c35780634af80f0e146104d857806354fd4d50146104f9578063579cd3ca1461050e5780635e35359e1461052357806361cd756e1461054d57806367b6d57c14610562578063690d8320146105835780636a49d2c4146105a457806371f52bf3146105ce57806379ba5097146105e35780637b103999146105f85780638da5cb5b1461060d57806394c275ad146106225780639b99a8e214610637578063af94b8d81461064c578063b4a176d314610676578063bf7545581461068b578063c45d3d92146106a0578063cdc91c69146106b5578063d031370b146106ca578063d260529c146106e2578063d3fb73b4146106f7578063d4ee1d901461070c578063d55ec69714610721578063d66bd52414610736578063d895951214610757578063dc8de3791461078a578063e8dc12ff146107ab578063ecbca55d146107d5578063f2fde38b146107f3578063fc0c546a14610814575b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee60005260086020527f353c2eb9e53a4a4a6d45d72082ff2e9dc829d1125618772a83eb0e7f86632c43546601000000000000900460ff1615156102ad576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f5245534552564500000000000000000000000000604482015290519081900360640190fd5b005b3480156102bb57600080fd5b506102ad6004351515610829565b3480156102d557600080fd5b506102de610871565b6040805163ffffffff9092168252519081900360200190f35b34801561030357600080fd5b50610318600160a060020a036004351661087d565b6040805195865263ffffffff9094166020860152911515848401521515606084015215156080830152519081900360a00190f35b34801561035857600080fd5b50610361610918565b604080519115158252519081900360200190f35b34801561038157600080fd5b5061038d600435610967565b60408051600160a060020a039092168252519081900360200190f35b3480156103b557600080fd5b506102de600160a060020a0360043516610993565b3480156103d657600080fd5b506103f4600160a060020a03600435811690602435166044356109c5565b6040805192835260208301919091528051918290030190f35b34801561041957600080fd5b506102ad600160a060020a03600435166109e0565b34801561043a57600080fd5b506103616109f4565b34801561044f57600080fd5b50610361610a8e565b34801561046457600080fd5b506102ad610aaf565b34801561047957600080fd5b506102ad600160a060020a0360043581169060243516604435610ac1565b3480156104a357600080fd5b506104ac610b5c565b6040805161ffff9092168252519081900360200190f35b3480156104cf57600080fd5b506102ad610b61565b3480156104e457600080fd5b506102ad600160a060020a0360043516610dce565b34801561050557600080fd5b506104ac610e10565b34801561051a57600080fd5b506102de610e15565b34801561052f57600080fd5b506102ad600160a060020a0360043581169060243516604435610e2d565b34801561055957600080fd5b5061038d610f41565b34801561056e57600080fd5b506102ad600160a060020a0360043516610f50565b34801561058f57600080fd5b506102ad600160a060020a0360043516610ff3565b3480156105b057600080fd5b506102ad600160a060020a036004351663ffffffff60243516611104565b3480156105da57600080fd5b506104ac611173565b3480156105ef57600080fd5b506102ad611182565b34801561060457600080fd5b5061038d611243565b34801561061957600080fd5b5061038d611252565b34801561062e57600080fd5b506102de611261565b34801561064357600080fd5b506104ac611275565b34801561065857600080fd5b506103f4600160a060020a036004358116906024351660443561127b565b34801561068257600080fd5b506102ad611379565b34801561069757600080fd5b506103616113b2565b3480156106ac57600080fd5b5061038d6113b7565b3480156106c157600080fd5b506102ad6113c6565b3480156106d657600080fd5b5061038d60043561141f565b3480156106ee57600080fd5b50610361611447565b34801561070357600080fd5b5061038d61144c565b34801561071857600080fd5b5061038d61145b565b34801561072d57600080fd5b506102ad61146a565b34801561074257600080fd5b50610318600160a060020a036004351661155f565b34801561076357600080fd5b50610778600160a060020a03600435166115a5565b60408051918252519081900360200190f35b34801561079657600080fd5b50610778600160a060020a03600435166115b6565b610778600160a060020a0360043581169060243581169060443590606435811690608435166115df565b3480156107e157600080fd5b506102ad63ffffffff60043516611832565b3480156107ff57600080fd5b506102ad600160a060020a0360043516611927565b34801561082057600080fd5b5061038d6119c4565b6108316119d3565b60038054911515740100000000000000000000000000000000000000000274ff000000000000000000000000000000000000000019909216919091179055565b60095463ffffffff1681565b600080600080600061088d61310a565b50505050600160a060020a03929092166000908152600860209081526040808320815160a081018352815480825260019092015463ffffffff811694820185905260ff64010000000082048116151594830194909452650100000000008104841615156060830152660100000000000090049092161515608090920182905295919450919250829190565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee60005260086020527f353c2eb9e53a4a4a6d45d72082ff2e9dc829d1125618772a83eb0e7f86632c43546601000000000000900460ff1690565b600060078281548110151561097857fe5b600091825260209091200154600160a060020a031692915050565b60008161099f81611a23565b5050600160a060020a031660009081526008602052604090206001015463ffffffff1690565b6000806109d385858561127b565b915091505b935093915050565b6109e86119d3565b6109f181610f50565b50565b600030600160a060020a0316600560009054906101000a9004600160a060020a0316600160a060020a0316638da5cb5b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610a5357600080fd5b505af1158015610a67573d6000803e3d6000fd5b505050506040513d6020811015610a7d57600080fd5b5051600160a060020a031614905090565b60035474010000000000000000000000000000000000000000900460ff1681565b610ab76119d3565b610abf6113c6565b565b610ac96119d3565b600554604080517f5e35359e000000000000000000000000000000000000000000000000000000008152600160a060020a03868116600483015285811660248301526044820185905291519190921691635e35359e91606480830192600092919082900301818387803b158015610b3f57600080fd5b505af1158015610b53573d6000803e3d6000fd5b50505050505050565b600090565b60008054600160a060020a0316331480610b96575060035474010000000000000000000000000000000000000000900460ff16155b1515610bda576040805160e560020a62461bcd0281526020600482015260116024820152600080516020613178833981519152604482015290519081900360640190fd5b610c037f436f6e7472616374526567697374727900000000000000000000000000000000611aa2565b600254909150600160a060020a03808316911614801590610c2c5750600160a060020a03811615155b1515610c82576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e56414c49445f5245474953545259000000000000000000000000604482015290519081900360640190fd5b604080517fbb34534c0000000000000000000000000000000000000000000000000000000081527f436f6e747261637452656769737472790000000000000000000000000000000060048201529051600091600160a060020a0384169163bb34534c9160248082019260209290919082900301818787803b158015610d0657600080fd5b505af1158015610d1a573d6000803e3d6000fd5b505050506040513d6020811015610d3057600080fd5b5051600160a060020a03161415610d91576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e56414c49445f5245474953545259000000000000000000000000604482015290519081900360640190fd5b6002805460038054600160a060020a0380841673ffffffffffffffffffffffffffffffffffffffff19928316179092559091169216919091179055565b610dd66119d3565b80610de081611b3a565b506006805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b602081565b60095468010000000000000000900463ffffffff1681565b6000610e37611b9b565b6002600455610e446119d3565b610e5b600080516020613158833981519152611aa2565b600160a060020a0385166000908152600860205260409020600101549091506601000000000000900460ff161580610e985750610e966109f4565b155b80610eb05750600054600160a060020a038281169116145b1515610ef4576040805160e560020a62461bcd0281526020600482015260116024820152600080516020613178833981519152604482015290519081900360640190fd5b610eff848484611bf5565b600160a060020a0384166000908152600860205260409020600101546601000000000000900460ff1615610f3657610f3684611c26565b505060016004555050565b600354600160a060020a031681565b610f586119d3565b600080516020613158833981519152610f7081611d20565b600554604080517ff2fde38b000000000000000000000000000000000000000000000000000000008152600160a060020a0385811660048301529151919092169163f2fde38b91602480830192600092919082900301818387803b158015610fd757600080fd5b505af1158015610feb573d6000803e3d6000fd5b505050505050565b6000610ffd611b9b565b600260045561100a6119d3565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee61102881611a23565b61103f600080516020613158833981519152611aa2565b91506110496109f4565b15806110625750600054600160a060020a038381169116145b15156110a6576040805160e560020a62461bcd0281526020600482015260116024820152600080516020613178833981519152604482015290519081900360640190fd5b604051600160a060020a03841690303180156108fc02916000818181858888f193505050501580156110dc573d6000803e3d6000fd5b506110fa73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee611c26565b5050600160045550565b61110c611275565b61ffff1615611165576040805160e560020a62461bcd02815260206004820152601960248201527f4552525f494e56414c49445f524553455256455f434f554e5400000000000000604482015290519081900360640190fd5b61116f8282611d76565b5050565b600061117d611275565b905090565b600154600160a060020a031633146111d2576040805160e560020a62461bcd0281526020600482015260116024820152600080516020613178833981519152604482015290519081900360640190fd5b60015460008054604051600160a060020a0393841693909116917f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91a3600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b600254600160a060020a031681565b600054600160a060020a031681565b600954640100000000900463ffffffff1681565b60075490565b6005546000908190600160a060020a0385811691161480156112c25750600160a060020a0385166000908152600860205260409020600101546601000000000000900460ff165b156112d9576112d083611fc7565b915091506109d8565b600554600160a060020a03868116911614801561131b5750600160a060020a0384166000908152600860205260409020600101546601000000000000900460ff165b15611329576112d0836121d6565b6040805160e560020a62461bcd02815260206004820152601160248201527f4552525f494e56414c49445f544f4b454e000000000000000000000000000000604482015290519081900360640190fd5b6113816119d3565b6003546002805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055565b600181565b600654600160a060020a031681565b6113ce6119d3565b6113d66122e2565b600554600190600160a060020a03166113ed610b5c565b61ffff167f6b08c2e2c9969e55a647a764db9b554d64dc42f1a704da11a6d5b129ad163f2c60405160405180910390a4565b600780548290811061142d57fe5b600091825260209091200154600160a060020a0316905081565b600190565b600554600160a060020a031681565b600154600160a060020a031681565b60006114746119d3565b61148b600080516020613158833981519152611aa2565b600554909150600090600160a060020a03166114a5610b5c565b61ffff167f6b08c2e2c9969e55a647a764db9b554d64dc42f1a704da11a6d5b129ad163f2c60405160405180910390a46114de81611927565b604080517f90f58c96000000000000000000000000000000000000000000000000000000008152602060048201529051600160a060020a038316916390f58c9691602480830192600092919082900301818387803b15801561153f57600080fd5b505af1158015611553573d6000803e3d6000fd5b505050506109f1611182565b6008602052600090815260409020805460019091015463ffffffff81169060ff640100000000820481169165010000000000810482169166010000000000009091041685565b60006115b0826115b6565b92915050565b6000816115c281611a23565b5050600160a060020a031660009081526008602052604090205490565b60006115e9611b9b565b60026004557f536f7672796e537761704e6574776f726b00000000000000000000000000000061161881611d20565b600160a060020a03878116908716141561167c576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f53414d455f534f555243455f54415247455400000000000000000000604482015290519081900360640190fd5b600654600160a060020a031615806117bf5750600654604080517f3af32abf000000000000000000000000000000000000000000000000000000008152600160a060020a03878116600483015291519190921691633af32abf9160248083019260209291908290030181600087803b1580156116f757600080fd5b505af115801561170b573d6000803e3d6000fd5b505050506040513d602081101561172157600080fd5b505180156117bf5750600654604080517f3af32abf000000000000000000000000000000000000000000000000000000008152600160a060020a03868116600483015291519190921691633af32abf9160248083019260209291908290030181600087803b15801561179257600080fd5b505af11580156117a6573d6000803e3d6000fd5b505050506040513d60208110156117bc57600080fd5b50515b1515611815576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f4e4f545f57484954454c495354454400000000000000000000000000604482015290519081900360640190fd5b61182287878787876123c0565b6001600455979650505050505050565b61183a6119d3565b60095463ffffffff640100000000909104811690821611156118a6576040805160e560020a62461bcd02815260206004820152601a60248201527f4552525f494e56414c49445f434f4e56455253494f4e5f464545000000000000604482015290519081900360640190fd5b6009546040805163ffffffff6801000000000000000090930483168152918316602083015280517f81cd2ffb37dd237c0e4e2a3de5265fcf9deb43d3e7801e80db9f1ccfba7ee6009281900390910190a16009805463ffffffff90921668010000000000000000026bffffffff000000000000000019909216919091179055565b61192f6119d3565b600054600160a060020a0382811691161415611995576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f53414d455f4f574e4552000000000000000000000000000000000000604482015290519081900360640190fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600554600160a060020a031690565b600054600160a060020a03163314610abf576040805160e560020a62461bcd0281526020600482015260116024820152600080516020613178833981519152604482015290519081900360640190fd5b600160a060020a0381166000908152600860205260409020600101546601000000000000900460ff1615156109f1576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f5245534552564500000000000000000000000000604482015290519081900360640190fd5b600254604080517fbb34534c000000000000000000000000000000000000000000000000000000008152600481018490529051600092600160a060020a03169163bb34534c91602480830192602092919082900301818787803b158015611b0857600080fd5b505af1158015611b1c573d6000803e3d6000fd5b505050506040513d6020811015611b3257600080fd5b505192915050565b600160a060020a0381163014156109f1576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f414444524553535f49535f53454c4600000000000000000000000000604482015290519081900360640190fd5b600454600114610abf576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f5245454e5452414e4359000000000000000000000000000000000000604482015290519081900360640190fd5b611bfd6119d3565b82611c078161259e565b82611c118161259e565b83611c1b81611b3a565b610feb8686866125fe565b80611c3081611a23565b600160a060020a03821673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee1415611c7657600160a060020a03821660009081526008602052604090203031905561116f565b604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a038416916370a082319160248083019260209291908290030181600087803b158015611cd757600080fd5b505af1158015611ceb573d6000803e3d6000fd5b505050506040513d6020811015611d0157600080fd5b5051600160a060020a0383166000908152600860205260409020555050565b611d2981611aa2565b600160a060020a031633146109f1576040805160e560020a62461bcd0281526020600482015260116024820152600080516020613178833981519152604482015290519081900360640190fd5b6000611d806119d3565b611d886126b8565b82611d928161259e565b83611d9c81611b3a565b83611da681612715565b600554600160a060020a03878116911614801590611dea5750600160a060020a0386166000908152600860205260409020600101546601000000000000900460ff16155b1515611e40576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f5245534552564500000000000000000000000000604482015290519081900360640190fd5b60095463ffffffff908116620f42400381169086161115611eab576040805160e560020a62461bcd02815260206004820152601a60248201527f4552525f494e56414c49445f524553455256455f574549474854000000000000604482015290519081900360640190fd5b61ffff611eb6611275565b61ffff1610611f0f576040805160e560020a62461bcd02815260206004820152601960248201527f4552525f494e56414c49445f524553455256455f434f554e5400000000000000604482015290519081900360640190fd5b505050600160a060020a0390921660008181526008602052604081208181556001908101805466ff0000000000001963ffffffff80881663ffffffff1993841617919091166601000000000000179092556007805493840181559093527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688909101805473ffffffffffffffffffffffffffffffffffffffff191690931790925560098054808416909401909216921691909117905550565b600080600080600080611fd861278a565b600560009054906101000a9004600160a060020a0316600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561202b57600080fd5b505af115801561203f573d6000803e3d6000fd5b505050506040513d602081101561205557600080fd5b505193508315156120b157600160a060020a0383166000908152600860205260409020600101546120a69063ffffffff9081169061209a908a90620f4240906127e816565b9063ffffffff61286c16565b9550600094506121cd565b6007805460009081106120c057fe5b600091825260209091200154600160a060020a031692506121007f536f7672796e53776170466f726d756c61000000000000000000000000000000611aa2565b600160a060020a031663f3250fe285612118866115b6565b600160a060020a038716600090815260086020908152604080832060010154815163ffffffff88811660e060020a02825260048201979097526024810195909552949094166044840152606483018d90529251608480840194939192918390030190829087803b15801561218b57600080fd5b505af115801561219f573d6000803e3d6000fd5b505050506040513d60208110156121b557600080fd5b505191506121c2826128da565b905080820381955095505b50505050915091565b6000806000806000806121e761278a565b600560009054906101000a9004600160a060020a0316600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561223a57600080fd5b505af115801561224e573d6000803e3d6000fd5b505050506040513d602081101561226457600080fd5b50516007805491955090600090811061227957fe5b600091825260209091200154600160a060020a03169250838714156122a1576120a6836115b6565b6122ca7f536f7672796e53776170466f726d756c61000000000000000000000000000000611aa2565b600160a060020a03166376cf0b5685612118866115b6565b6122ea6119d3565b60006122f4611275565b61ffff161161234d576040805160e560020a62461bcd02815260206004820152601960248201527f4552525f494e56414c49445f524553455256455f434f554e5400000000000000604482015290519081900360640190fd5b600560009054906101000a9004600160a060020a0316600160a060020a03166379ba50976040518163ffffffff1660e060020a028152600401600060405180830381600087803b1580156123a057600080fd5b505af11580156123b4573d6000803e3d6000fd5b50505050610abf61290a565b6005546000908190819081908190600160a060020a038a8116911614801561240d5750600160a060020a038a166000908152600860205260409020600101546601000000000000900460ff165b156124275789925061242088888861294c565b935061247c565b600554600160a060020a038b811691161480156124695750600160a060020a0389166000908152600860205260409020600101546601000000000000900460ff165b1561132957889250612420888888612c12565b600560009054906101000a9004600160a060020a0316600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156124cf57600080fd5b505af11580156124e3573d6000803e3d6000fd5b505050506040513d60208110156124f957600080fd5b5051600160a060020a0380851660008181526008602052604090206001015460055493955063ffffffff16935091167f77f29993cf2c084e726f7e802da0719d6a0ade3e204badc7a3ffd57ecb768c24612565620f4240612559886115b6565b9063ffffffff6127e816565b6125788663ffffffff808816906127e816565b6040805192835260208301919091528051918290030190a3509198975050505050505050565b600160a060020a03811615156109f1576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b604080517f7472616e7366657228616464726573732c75696e74323536290000000000000081528151908190036019018120600160a060020a038516602483015260448083018590528351808403909101815260649092019092526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909316929092179091526126b3908490612f97565b505050565b6126c06109f4565b15610abf576040805160e560020a62461bcd02815260206004820152600a60248201527f4552525f41435449564500000000000000000000000000000000000000000000604482015290519081900360640190fd5b60008163ffffffff161180156127345750620f424063ffffffff821611155b15156109f1576040805160e560020a62461bcd02815260206004820152601a60248201527f4552525f494e56414c49445f524553455256455f574549474854000000000000604482015290519081900360640190fd5b6127926109f4565b1515610abf576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f494e4143544956450000000000000000000000000000000000000000604482015290519081900360640190fd5b6000808315156127fb5760009150612865565b5082820282848281151561280b57fe5b0414612861576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b8091505b5092915050565b6000808083116128c6576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f4449564944455f42595f5a45524f0000000000000000000000000000604482015290519081900360640190fd5b82848115156128d157fe5b04949350505050565b6009546000906115b090620f42409061209a90859068010000000000000000900463ffffffff908116906127e816565b60075460005b8181101561116f5761294460078281548110151561292a57fe5b600091825260209091200154600160a060020a0316611c26565b600101612910565b60008060008061295b87611fc7565b90935091508215156129b7576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f5a45524f5f5441524745545f414d4f554e5400000000000000000000604482015290519081900360640190fd5b6007805460009081106129c657fe5b600091825260209091200154600160a060020a0316905073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee811415612a5557348714612a50576040805160e560020a62461bcd02815260206004820152601760248201527f4552525f4554485f414d4f554e545f4d49534d41544348000000000000000000604482015290519081900360640190fd5b612b5d565b34158015612b07575086612b04612a6b836115b6565b604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a038616916370a082319160248083019260209291908290030181600087803b158015612acc57600080fd5b505af1158015612ae0573d6000803e3d6000fd5b505050506040513d6020811015612af657600080fd5b50519063ffffffff61302516565b10155b1515612b5d576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f494e56414c49445f414d4f554e540000000000000000000000000000604482015290519081900360640190fd5b612b6681611c26565b600554604080517f867904b4000000000000000000000000000000000000000000000000000000008152600160a060020a038881166004830152602482018790529151919092169163867904b491604480830192600092919082900301818387803b158015612bd457600080fd5b505af1158015612be8573d6000803e3d6000fd5b5050600554612c079250839150600160a060020a0316888a8787613085565b509095945050505050565b600554604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905160009283928392839283928392600160a060020a03909216916370a082319160248082019260209290919082900301818787803b158015612c8457600080fd5b505af1158015612c98573d6000803e3d6000fd5b505050506040513d6020811015612cae57600080fd5b5051891115612d07576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f494e56414c49445f414d4f554e540000000000000000000000000000604482015290519081900360640190fd5b612d10896121d6565b9095509350841515612d6c576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f5a45524f5f5441524745545f414d4f554e5400000000000000000000604482015290519081900360640190fd5b600780546000908110612d7b57fe5b6000918252602080832090910154600554604080517f18160ddd0000000000000000000000000000000000000000000000000000000081529051600160a060020a03938416985091909216936318160ddd93600480850194919392918390030190829087803b158015612ded57600080fd5b505af1158015612e01573d6000803e3d6000fd5b505050506040513d6020811015612e1757600080fd5b50519150612e24836115b6565b905080851080612e3d57508085148015612e3d57508189145b1515612e4557fe5b600554604080517fa24835d1000000000000000000000000000000000000000000000000000000008152306004820152602481018c90529051600160a060020a039092169163a24835d19160448082019260009290919082900301818387803b158015612eb157600080fd5b505af1158015612ec5573d6000803e3d6000fd5b505050600160a060020a038416600090815260086020526040902054612ef291508663ffffffff61302516565b600160a060020a03841660008181526008602052604090209190915573eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee1415612f6557604051600160a060020a0388169086156108fc029087906000818181858888f19350505050158015612f5f573d6000803e3d6000fd5b50612f70565b612f708388876125fe565b600554612f8a90600160a060020a0316848a8c8989613085565b5092979650505050505050565b612f9f613138565b602060405190810160405280600181525090506020818351602085016000875af1801515612fcc57600080fd5b50805115156126b3576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f5452414e534645525f4641494c454400000000000000000000000000604482015290519081900360640190fd5b60008183101561307f576040805160e560020a62461bcd02815260206004820152600d60248201527f4552525f554e444552464c4f5700000000000000000000000000000000000000604482015290519081900360640190fd5b50900390565b7f800000000000000000000000000000000000000000000000000000000000000081106130ae57fe5b60408051848152602081018490528082018390529051600160a060020a038087169288821692918a16917f276856b36cbc45526a0ba64f44611557a2a8b68662c5388e9fe6d72e86e1c8cb9181900360600190a4505050505050565b6040805160a08101825260008082526020820181905291810182905260608101829052608081019190915290565b60206040519081016040528060019060208202803883395091929150505600536f7672796e53776170436f6e766572746572557067726164657200000000004552525f4143434553535f44454e494544000000000000000000000000000000a165627a7a72305820c39f973cbc1cf0758a64156854331e6829d0c51a16e297aae88602be0c95bc9b0029a165627a7a723058204fe6432407d23d24446887a09bf05471a3bcb6c0f82442aa76ddf3fb876c185e0029", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x35F8 DUP1 PUSH2 0x20 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x4B JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x11413958 DUP2 EQ PUSH2 0x50 JUMPI DUP1 PUSH4 0x3E8FF43F EQ PUSH2 0xB6 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x8D PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH4 0xFFFFFFFF PUSH1 0x44 CALLDATALOAD AND PUSH2 0xE2 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xC2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xCB PUSH2 0x1D5 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0xFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP1 DUP5 DUP5 DUP5 PUSH2 0xF0 PUSH2 0x1DA JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP4 DUP5 AND DUP2 MSTORE SWAP2 SWAP1 SWAP3 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH4 0xFFFFFFFF SWAP1 SWAP2 AND PUSH1 0x40 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 PUSH1 0x0 CREATE DUP1 ISZERO DUP1 ISZERO PUSH2 0x142 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH32 0xF2FDE38B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD SWAP2 SWAP3 POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND SWAP2 PUSH4 0xF2FDE38B SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1B4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1C8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP SWAP3 SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x33E2 DUP1 PUSH2 0x1EB DUP4 CODECOPY ADD SWAP1 JUMP STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x1 PUSH1 0x4 SSTORE PUSH1 0x9 DUP1 SLOAD PUSH1 0x1 PUSH1 0x60 PUSH1 0x2 EXP SUB NOT AND SWAP1 SSTORE CALLVALUE DUP1 ISZERO PUSH3 0x26 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH1 0x60 DUP1 PUSH3 0x33E2 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 SWAP1 DUP2 MSTORE DUP2 MLOAD PUSH1 0x20 DUP4 ADD MLOAD SWAP2 SWAP1 SWAP3 ADD MLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND CALLER OR SWAP1 SSTORE DUP3 DUP3 DUP3 DUP2 DUP1 PUSH3 0x71 DUP2 PUSH5 0x100000000 PUSH3 0x11B DUP2 MUL DIV JUMP JUMPDEST POP PUSH1 0x2 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT SWAP3 DUP4 AND DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x3 DUP1 SLOAD SWAP1 SWAP3 AND OR SWAP1 SSTORE DUP3 PUSH3 0xB1 DUP2 PUSH5 0x100000000 PUSH3 0x11B DUP2 MUL DIV JUMP JUMPDEST DUP2 PUSH3 0xC6 DUP2 PUSH5 0x100000000 PUSH3 0x196 DUP2 MUL DIV JUMP JUMPDEST POP POP PUSH1 0x5 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP5 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 OR SWAP1 SWAP3 SSTORE POP PUSH1 0x9 DUP1 SLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP3 AND PUSH5 0x100000000 MUL PUSH8 0xFFFFFFFF00000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE POP PUSH3 0x20F SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH3 0x193 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH3 0xF4240 PUSH4 0xFFFFFFFF DUP3 AND GT ISZERO PUSH3 0x193 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F434F4E56455253494F4E5F464545000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x31C3 DUP1 PUSH3 0x21F PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x20B JUMPI PUSH4 0xFFFFFFFF PUSH1 0xE0 PUSH1 0x2 EXP PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x24C7EC7 DUP2 EQ PUSH2 0x2AF JUMPI DUP1 PUSH4 0xC7D5CD8 EQ PUSH2 0x2C9 JUMPI DUP1 PUSH4 0xE53AAE9 EQ PUSH2 0x2F7 JUMPI DUP1 PUSH4 0x12C2ACA4 EQ PUSH2 0x34C JUMPI DUP1 PUSH4 0x19B64015 EQ PUSH2 0x375 JUMPI DUP1 PUSH4 0x1CFAB290 EQ PUSH2 0x3A9 JUMPI DUP1 PUSH4 0x1E1401F8 EQ PUSH2 0x3CA JUMPI DUP1 PUSH4 0x21E6B53D EQ PUSH2 0x40D JUMPI DUP1 PUSH4 0x22F3E2D4 EQ PUSH2 0x42E JUMPI DUP1 PUSH4 0x2FE8A6AD EQ PUSH2 0x443 JUMPI DUP1 PUSH4 0x38A5E016 EQ PUSH2 0x458 JUMPI DUP1 PUSH4 0x395900D4 EQ PUSH2 0x46D JUMPI DUP1 PUSH4 0x3E8FF43F EQ PUSH2 0x497 JUMPI DUP1 PUSH4 0x49D10B64 EQ PUSH2 0x4C3 JUMPI DUP1 PUSH4 0x4AF80F0E EQ PUSH2 0x4D8 JUMPI DUP1 PUSH4 0x54FD4D50 EQ PUSH2 0x4F9 JUMPI DUP1 PUSH4 0x579CD3CA EQ PUSH2 0x50E JUMPI DUP1 PUSH4 0x5E35359E EQ PUSH2 0x523 JUMPI DUP1 PUSH4 0x61CD756E EQ PUSH2 0x54D JUMPI DUP1 PUSH4 0x67B6D57C EQ PUSH2 0x562 JUMPI DUP1 PUSH4 0x690D8320 EQ PUSH2 0x583 JUMPI DUP1 PUSH4 0x6A49D2C4 EQ PUSH2 0x5A4 JUMPI DUP1 PUSH4 0x71F52BF3 EQ PUSH2 0x5CE JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x5E3 JUMPI DUP1 PUSH4 0x7B103999 EQ PUSH2 0x5F8 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x60D JUMPI DUP1 PUSH4 0x94C275AD EQ PUSH2 0x622 JUMPI DUP1 PUSH4 0x9B99A8E2 EQ PUSH2 0x637 JUMPI DUP1 PUSH4 0xAF94B8D8 EQ PUSH2 0x64C JUMPI DUP1 PUSH4 0xB4A176D3 EQ PUSH2 0x676 JUMPI DUP1 PUSH4 0xBF754558 EQ PUSH2 0x68B JUMPI DUP1 PUSH4 0xC45D3D92 EQ PUSH2 0x6A0 JUMPI DUP1 PUSH4 0xCDC91C69 EQ PUSH2 0x6B5 JUMPI DUP1 PUSH4 0xD031370B EQ PUSH2 0x6CA JUMPI DUP1 PUSH4 0xD260529C EQ PUSH2 0x6E2 JUMPI DUP1 PUSH4 0xD3FB73B4 EQ PUSH2 0x6F7 JUMPI DUP1 PUSH4 0xD4EE1D90 EQ PUSH2 0x70C JUMPI DUP1 PUSH4 0xD55EC697 EQ PUSH2 0x721 JUMPI DUP1 PUSH4 0xD66BD524 EQ PUSH2 0x736 JUMPI DUP1 PUSH4 0xD8959512 EQ PUSH2 0x757 JUMPI DUP1 PUSH4 0xDC8DE379 EQ PUSH2 0x78A JUMPI DUP1 PUSH4 0xE8DC12FF EQ PUSH2 0x7AB JUMPI DUP1 PUSH4 0xECBCA55D EQ PUSH2 0x7D5 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x7F3 JUMPI DUP1 PUSH4 0xFC0C546A EQ PUSH2 0x814 JUMPI JUMPDEST PUSH20 0xEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE PUSH1 0x0 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH32 0x353C2EB9E53A4A4A6D45D72082FF2E9DC829D1125618772A83EB0E7F86632C43 SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO PUSH2 0x2AD JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245534552564500000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2BB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2AD PUSH1 0x4 CALLDATALOAD ISZERO ISZERO PUSH2 0x829 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2D5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2DE PUSH2 0x871 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x303 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x318 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x87D JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP6 DUP7 MSTORE PUSH4 0xFFFFFFFF SWAP1 SWAP5 AND PUSH1 0x20 DUP7 ADD MSTORE SWAP2 ISZERO ISZERO DUP5 DUP5 ADD MSTORE ISZERO ISZERO PUSH1 0x60 DUP5 ADD MSTORE ISZERO ISZERO PUSH1 0x80 DUP4 ADD MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0xA0 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x358 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x361 PUSH2 0x918 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x381 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x38D PUSH1 0x4 CALLDATALOAD PUSH2 0x967 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3B5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2DE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x993 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3D6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3F4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x9C5 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x419 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2AD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x9E0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x43A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x361 PUSH2 0x9F4 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x44F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x361 PUSH2 0xA8E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x464 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2AD PUSH2 0xAAF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x479 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2AD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0xAC1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4A3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4AC PUSH2 0xB5C JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0xFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4CF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2AD PUSH2 0xB61 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4E4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2AD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0xDCE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x505 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4AC PUSH2 0xE10 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x51A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2DE PUSH2 0xE15 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x52F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2AD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0xE2D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x559 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x38D PUSH2 0xF41 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x56E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2AD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0xF50 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x58F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2AD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0xFF3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5B0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2AD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH4 0xFFFFFFFF PUSH1 0x24 CALLDATALOAD AND PUSH2 0x1104 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5DA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4AC PUSH2 0x1173 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5EF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2AD PUSH2 0x1182 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x604 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x38D PUSH2 0x1243 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x619 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x38D PUSH2 0x1252 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x62E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2DE PUSH2 0x1261 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x643 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4AC PUSH2 0x1275 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x658 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3F4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x127B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x682 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2AD PUSH2 0x1379 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x697 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x361 PUSH2 0x13B2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6AC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x38D PUSH2 0x13B7 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6C1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2AD PUSH2 0x13C6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6D6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x38D PUSH1 0x4 CALLDATALOAD PUSH2 0x141F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6EE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x361 PUSH2 0x1447 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x703 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x38D PUSH2 0x144C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x718 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x38D PUSH2 0x145B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x72D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2AD PUSH2 0x146A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x742 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x318 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x155F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x763 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x778 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x15A5 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x796 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x778 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x15B6 JUMP JUMPDEST PUSH2 0x778 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x44 CALLDATALOAD SWAP1 PUSH1 0x64 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x84 CALLDATALOAD AND PUSH2 0x15DF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7E1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2AD PUSH4 0xFFFFFFFF PUSH1 0x4 CALLDATALOAD AND PUSH2 0x1832 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7FF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2AD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x1927 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x820 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x38D PUSH2 0x19C4 JUMP JUMPDEST PUSH2 0x831 PUSH2 0x19D3 JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD SWAP2 ISZERO ISZERO PUSH21 0x10000000000000000000000000000000000000000 MUL PUSH21 0xFF0000000000000000000000000000000000000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH4 0xFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x88D PUSH2 0x310A JUMP JUMPDEST POP POP POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP2 MLOAD PUSH1 0xA0 DUP2 ADD DUP4 MSTORE DUP2 SLOAD DUP1 DUP3 MSTORE PUSH1 0x1 SWAP1 SWAP3 ADD SLOAD PUSH4 0xFFFFFFFF DUP2 AND SWAP5 DUP3 ADD DUP6 SWAP1 MSTORE PUSH1 0xFF PUSH5 0x100000000 DUP3 DIV DUP2 AND ISZERO ISZERO SWAP5 DUP4 ADD SWAP5 SWAP1 SWAP5 MSTORE PUSH6 0x10000000000 DUP2 DIV DUP5 AND ISZERO ISZERO PUSH1 0x60 DUP4 ADD MSTORE PUSH7 0x1000000000000 SWAP1 DIV SWAP1 SWAP3 AND ISZERO ISZERO PUSH1 0x80 SWAP1 SWAP3 ADD DUP3 SWAP1 MSTORE SWAP6 SWAP2 SWAP5 POP SWAP2 SWAP3 POP DUP3 SWAP2 SWAP1 JUMP JUMPDEST PUSH20 0xEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE PUSH1 0x0 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH32 0x353C2EB9E53A4A4A6D45D72082FF2E9DC829D1125618772A83EB0E7F86632C43 SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x7 DUP3 DUP2 SLOAD DUP2 LT ISZERO ISZERO PUSH2 0x978 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0x99F DUP2 PUSH2 0x1A23 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH4 0xFFFFFFFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x9D3 DUP6 DUP6 DUP6 PUSH2 0x127B JUMP JUMPDEST SWAP2 POP SWAP2 POP JUMPDEST SWAP4 POP SWAP4 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x9E8 PUSH2 0x19D3 JUMP JUMPDEST PUSH2 0x9F1 DUP2 PUSH2 0xF50 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 ADDRESS PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x8DA5CB5B PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xA53 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xA67 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xA7D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH2 0xAB7 PUSH2 0x19D3 JUMP JUMPDEST PUSH2 0xABF PUSH2 0x13C6 JUMP JUMPDEST JUMP JUMPDEST PUSH2 0xAC9 PUSH2 0x19D3 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x5E35359E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP6 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP3 ADD DUP6 SWAP1 MSTORE SWAP2 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP2 PUSH4 0x5E35359E SWAP2 PUSH1 0x64 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xB3F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xB53 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ DUP1 PUSH2 0xB96 JUMPI POP PUSH1 0x3 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST ISZERO ISZERO PUSH2 0xBDA JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3178 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0xC03 PUSH32 0x436F6E7472616374526567697374727900000000000000000000000000000000 PUSH2 0x1AA2 JUMP JUMPDEST PUSH1 0x2 SLOAD SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP4 AND SWAP2 AND EQ DUP1 ISZERO SWAP1 PUSH2 0xC2C JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO JUMPDEST ISZERO ISZERO PUSH2 0xC82 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245474953545259000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0xBB34534C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH32 0x436F6E7472616374526567697374727900000000000000000000000000000000 PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP2 PUSH4 0xBB34534C SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xD06 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xD1A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xD30 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ ISZERO PUSH2 0xD91 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245474953545259000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP5 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP3 DUP4 AND OR SWAP1 SWAP3 SSTORE SWAP1 SWAP2 AND SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0xDD6 PUSH2 0x19D3 JUMP JUMPDEST DUP1 PUSH2 0xDE0 DUP2 PUSH2 0x1B3A JUMP JUMPDEST POP PUSH1 0x6 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x20 DUP2 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH9 0x10000000000000000 SWAP1 DIV PUSH4 0xFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xE37 PUSH2 0x1B9B JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH2 0xE44 PUSH2 0x19D3 JUMP JUMPDEST PUSH2 0xE5B PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3158 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x1AA2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD SWAP1 SWAP2 POP PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 PUSH2 0xE98 JUMPI POP PUSH2 0xE96 PUSH2 0x9F4 JUMP JUMPDEST ISZERO JUMPDEST DUP1 PUSH2 0xEB0 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ JUMPDEST ISZERO ISZERO PUSH2 0xEF4 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3178 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0xEFF DUP5 DUP5 DUP5 PUSH2 0x1BF5 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0xF36 JUMPI PUSH2 0xF36 DUP5 PUSH2 0x1C26 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0x4 SSTORE POP POP JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH2 0xF58 PUSH2 0x19D3 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3158 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0xF70 DUP2 PUSH2 0x1D20 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xF2FDE38B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP2 PUSH4 0xF2FDE38B SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xFD7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xFEB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xFFD PUSH2 0x1B9B JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH2 0x100A PUSH2 0x19D3 JUMP JUMPDEST PUSH20 0xEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE PUSH2 0x1028 DUP2 PUSH2 0x1A23 JUMP JUMPDEST PUSH2 0x103F PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3158 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x1AA2 JUMP JUMPDEST SWAP2 POP PUSH2 0x1049 PUSH2 0x9F4 JUMP JUMPDEST ISZERO DUP1 PUSH2 0x1062 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 DUP2 AND SWAP2 AND EQ JUMPDEST ISZERO ISZERO PUSH2 0x10A6 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3178 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP1 ADDRESS BALANCE DUP1 ISZERO PUSH2 0x8FC MUL SWAP2 PUSH1 0x0 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x10DC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH2 0x10FA PUSH20 0xEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE PUSH2 0x1C26 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0x4 SSTORE POP JUMP JUMPDEST PUSH2 0x110C PUSH2 0x1275 JUMP JUMPDEST PUSH2 0xFFFF AND ISZERO PUSH2 0x1165 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F434F554E5400000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x116F DUP3 DUP3 PUSH2 0x1D76 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x117D PUSH2 0x1275 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x11D2 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3178 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND SWAP4 SWAP1 SWAP2 AND SWAP2 PUSH32 0x343765429AEA5A34B3FF6A3785A98A5ABB2597ACA87BFBB58632C173D585373A SWAP2 LOG3 PUSH1 0x1 DUP1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND OR SWAP1 SWAP2 SSTORE AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH5 0x100000000 SWAP1 DIV PUSH4 0xFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x7 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x0 SWAP1 DUP2 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 DUP2 AND SWAP2 AND EQ DUP1 ISZERO PUSH2 0x12C2 JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND JUMPDEST ISZERO PUSH2 0x12D9 JUMPI PUSH2 0x12D0 DUP4 PUSH2 0x1FC7 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x9D8 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 DUP2 AND SWAP2 AND EQ DUP1 ISZERO PUSH2 0x131B JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND JUMPDEST ISZERO PUSH2 0x1329 JUMPI PUSH2 0x12D0 DUP4 PUSH2 0x21D6 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F544F4B454E000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x1381 PUSH2 0x19D3 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x2 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x1 DUP2 JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH2 0x13CE PUSH2 0x19D3 JUMP JUMPDEST PUSH2 0x13D6 PUSH2 0x22E2 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x13ED PUSH2 0xB5C JUMP JUMPDEST PUSH2 0xFFFF AND PUSH32 0x6B08C2E2C9969E55A647A764DB9B554D64DC42F1A704DA11A6D5B129AD163F2C PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 JUMP JUMPDEST PUSH1 0x7 DUP1 SLOAD DUP3 SWAP1 DUP2 LT PUSH2 0x142D JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP1 POP DUP2 JUMP JUMPDEST PUSH1 0x1 SWAP1 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1474 PUSH2 0x19D3 JUMP JUMPDEST PUSH2 0x148B PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3158 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x1AA2 JUMP JUMPDEST PUSH1 0x5 SLOAD SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x14A5 PUSH2 0xB5C JUMP JUMPDEST PUSH2 0xFFFF AND PUSH32 0x6B08C2E2C9969E55A647A764DB9B554D64DC42F1A704DA11A6D5B129AD163F2C PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH2 0x14DE DUP2 PUSH2 0x1927 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x90F58C9600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 AND SWAP2 PUSH4 0x90F58C96 SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x153F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1553 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x9F1 PUSH2 0x1182 JUMP JUMPDEST PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD PUSH4 0xFFFFFFFF DUP2 AND SWAP1 PUSH1 0xFF PUSH5 0x100000000 DUP3 DIV DUP2 AND SWAP2 PUSH6 0x10000000000 DUP2 DIV DUP3 AND SWAP2 PUSH7 0x1000000000000 SWAP1 SWAP2 DIV AND DUP6 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x15B0 DUP3 PUSH2 0x15B6 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0x15C2 DUP2 PUSH2 0x1A23 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x15E9 PUSH2 0x1B9B JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH32 0x536F7672796E537761704E6574776F726B000000000000000000000000000000 PUSH2 0x1618 DUP2 PUSH2 0x1D20 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 DUP2 AND SWAP1 DUP8 AND EQ ISZERO PUSH2 0x167C JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F534F555243455F54415247455400000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND ISZERO DUP1 PUSH2 0x17BF JUMPI POP PUSH1 0x6 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x3AF32ABF00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP2 PUSH4 0x3AF32ABF SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x16F7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x170B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1721 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD DUP1 ISZERO PUSH2 0x17BF JUMPI POP PUSH1 0x6 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x3AF32ABF00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP2 PUSH4 0x3AF32ABF SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1792 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x17A6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x17BC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD JUMPDEST ISZERO ISZERO PUSH2 0x1815 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4E4F545F57484954454C495354454400000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x1822 DUP8 DUP8 DUP8 DUP8 DUP8 PUSH2 0x23C0 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x4 SSTORE SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x183A PUSH2 0x19D3 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH4 0xFFFFFFFF PUSH5 0x100000000 SWAP1 SWAP2 DIV DUP2 AND SWAP1 DUP3 AND GT ISZERO PUSH2 0x18A6 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F434F4E56455253494F4E5F464545000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH4 0xFFFFFFFF PUSH9 0x10000000000000000 SWAP1 SWAP4 DIV DUP4 AND DUP2 MSTORE SWAP2 DUP4 AND PUSH1 0x20 DUP4 ADD MSTORE DUP1 MLOAD PUSH32 0x81CD2FFB37DD237C0E4E2A3DE5265FCF9DEB43D3E7801E80DB9F1CCFBA7EE600 SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG1 PUSH1 0x9 DUP1 SLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP3 AND PUSH9 0x10000000000000000 MUL PUSH12 0xFFFFFFFF0000000000000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x192F PUSH2 0x19D3 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x1995 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F4F574E4552000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0xABF JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3178 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO PUSH2 0x9F1 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245534552564500000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xBB34534C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP2 PUSH4 0xBB34534C SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1B08 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1B1C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1B32 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ADDRESS EQ ISZERO PUSH2 0x9F1 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F414444524553535F49535F53454C4600000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x4 SLOAD PUSH1 0x1 EQ PUSH2 0xABF JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5245454E5452414E4359000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x1BFD PUSH2 0x19D3 JUMP JUMPDEST DUP3 PUSH2 0x1C07 DUP2 PUSH2 0x259E JUMP JUMPDEST DUP3 PUSH2 0x1C11 DUP2 PUSH2 0x259E JUMP JUMPDEST DUP4 PUSH2 0x1C1B DUP2 PUSH2 0x1B3A JUMP JUMPDEST PUSH2 0xFEB DUP7 DUP7 DUP7 PUSH2 0x25FE JUMP JUMPDEST DUP1 PUSH2 0x1C30 DUP2 PUSH2 0x1A23 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 AND PUSH20 0xEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE EQ ISZERO PUSH2 0x1C76 JUMPI PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 ADDRESS BALANCE SWAP1 SSTORE PUSH2 0x116F JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1CD7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1CEB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1D01 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE POP POP JUMP JUMPDEST PUSH2 0x1D29 DUP2 PUSH2 0x1AA2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x9F1 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3178 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1D80 PUSH2 0x19D3 JUMP JUMPDEST PUSH2 0x1D88 PUSH2 0x26B8 JUMP JUMPDEST DUP3 PUSH2 0x1D92 DUP2 PUSH2 0x259E JUMP JUMPDEST DUP4 PUSH2 0x1D9C DUP2 PUSH2 0x1B3A JUMP JUMPDEST DUP4 PUSH2 0x1DA6 DUP2 PUSH2 0x2715 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 DUP2 AND SWAP2 AND EQ DUP1 ISZERO SWAP1 PUSH2 0x1DEA JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x1E40 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245534552564500000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x9 SLOAD PUSH4 0xFFFFFFFF SWAP1 DUP2 AND PUSH3 0xF4240 SUB DUP2 AND SWAP1 DUP7 AND GT ISZERO PUSH2 0x1EAB JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F574549474854000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0xFFFF PUSH2 0x1EB6 PUSH2 0x1275 JUMP JUMPDEST PUSH2 0xFFFF AND LT PUSH2 0x1F0F JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F434F554E5400000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP2 DUP2 SSTORE PUSH1 0x1 SWAP1 DUP2 ADD DUP1 SLOAD PUSH7 0xFF000000000000 NOT PUSH4 0xFFFFFFFF DUP1 DUP9 AND PUSH4 0xFFFFFFFF NOT SWAP4 DUP5 AND OR SWAP2 SWAP1 SWAP2 AND PUSH7 0x1000000000000 OR SWAP1 SWAP3 SSTORE PUSH1 0x7 DUP1 SLOAD SWAP4 DUP5 ADD DUP2 SSTORE SWAP1 SWAP4 MSTORE PUSH32 0xA66CC928B5EDB82AF9BD49922954155AB7B0942694BEA4CE44661D9A8736C688 SWAP1 SWAP2 ADD DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 SWAP4 OR SWAP1 SWAP3 SSTORE PUSH1 0x9 DUP1 SLOAD DUP1 DUP5 AND SWAP1 SWAP5 ADD SWAP1 SWAP3 AND SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x1FD8 PUSH2 0x278A JUMP JUMPDEST PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x18160DDD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x202B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x203F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2055 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP4 POP DUP4 ISZERO ISZERO PUSH2 0x20B1 JUMPI PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH2 0x20A6 SWAP1 PUSH4 0xFFFFFFFF SWAP1 DUP2 AND SWAP1 PUSH2 0x209A SWAP1 DUP11 SWAP1 PUSH3 0xF4240 SWAP1 PUSH2 0x27E8 AND JUMP JUMPDEST SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x286C AND JUMP JUMPDEST SWAP6 POP PUSH1 0x0 SWAP5 POP PUSH2 0x21CD JUMP JUMPDEST PUSH1 0x7 DUP1 SLOAD PUSH1 0x0 SWAP1 DUP2 LT PUSH2 0x20C0 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP3 POP PUSH2 0x2100 PUSH32 0x536F7672796E53776170466F726D756C61000000000000000000000000000000 PUSH2 0x1AA2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xF3250FE2 DUP6 PUSH2 0x2118 DUP7 PUSH2 0x15B6 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 ADD SLOAD DUP2 MLOAD PUSH4 0xFFFFFFFF DUP9 DUP2 AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP3 MSTORE PUSH1 0x4 DUP3 ADD SWAP8 SWAP1 SWAP8 MSTORE PUSH1 0x24 DUP2 ADD SWAP6 SWAP1 SWAP6 MSTORE SWAP5 SWAP1 SWAP5 AND PUSH1 0x44 DUP5 ADD MSTORE PUSH1 0x64 DUP4 ADD DUP14 SWAP1 MSTORE SWAP3 MLOAD PUSH1 0x84 DUP1 DUP5 ADD SWAP5 SWAP4 SWAP2 SWAP3 SWAP2 DUP4 SWAP1 SUB ADD SWAP1 DUP3 SWAP1 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x218B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x219F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x21B5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 POP PUSH2 0x21C2 DUP3 PUSH2 0x28DA JUMP JUMPDEST SWAP1 POP DUP1 DUP3 SUB DUP2 SWAP6 POP SWAP6 POP JUMPDEST POP POP POP POP SWAP2 POP SWAP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x21E7 PUSH2 0x278A JUMP JUMPDEST PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x18160DDD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x223A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x224E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2264 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x7 DUP1 SLOAD SWAP2 SWAP6 POP SWAP1 PUSH1 0x0 SWAP1 DUP2 LT PUSH2 0x2279 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP3 POP DUP4 DUP8 EQ ISZERO PUSH2 0x22A1 JUMPI PUSH2 0x20A6 DUP4 PUSH2 0x15B6 JUMP JUMPDEST PUSH2 0x22CA PUSH32 0x536F7672796E53776170466F726D756C61000000000000000000000000000000 PUSH2 0x1AA2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x76CF0B56 DUP6 PUSH2 0x2118 DUP7 PUSH2 0x15B6 JUMP JUMPDEST PUSH2 0x22EA PUSH2 0x19D3 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x22F4 PUSH2 0x1275 JUMP JUMPDEST PUSH2 0xFFFF AND GT PUSH2 0x234D JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F434F554E5400000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x79BA5097 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x23A0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x23B4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0xABF PUSH2 0x290A JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x0 SWAP1 DUP2 SWAP1 DUP2 SWAP1 DUP2 SWAP1 DUP2 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP11 DUP2 AND SWAP2 AND EQ DUP1 ISZERO PUSH2 0x240D JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP11 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND JUMPDEST ISZERO PUSH2 0x2427 JUMPI DUP10 SWAP3 POP PUSH2 0x2420 DUP9 DUP9 DUP9 PUSH2 0x294C JUMP JUMPDEST SWAP4 POP PUSH2 0x247C JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 DUP2 AND SWAP2 AND EQ DUP1 ISZERO PUSH2 0x2469 JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP10 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND JUMPDEST ISZERO PUSH2 0x1329 JUMPI DUP9 SWAP3 POP PUSH2 0x2420 DUP9 DUP9 DUP9 PUSH2 0x2C12 JUMP JUMPDEST PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x18160DDD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x24CF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x24E3 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x24F9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP6 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH1 0x5 SLOAD SWAP4 SWAP6 POP PUSH4 0xFFFFFFFF AND SWAP4 POP SWAP2 AND PUSH32 0x77F29993CF2C084E726F7E802DA0719D6A0ADE3E204BADC7A3FFD57ECB768C24 PUSH2 0x2565 PUSH3 0xF4240 PUSH2 0x2559 DUP9 PUSH2 0x15B6 JUMP JUMPDEST SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x27E8 AND JUMP JUMPDEST PUSH2 0x2578 DUP7 PUSH4 0xFFFFFFFF DUP1 DUP9 AND SWAP1 PUSH2 0x27E8 AND JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB ADD SWAP1 LOG3 POP SWAP2 SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0x9F1 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x7472616E7366657228616464726573732C75696E743235362900000000000000 DUP2 MSTORE DUP2 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x19 ADD DUP2 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x64 SWAP1 SWAP3 ADD SWAP1 SWAP3 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE PUSH2 0x26B3 SWAP1 DUP5 SWAP1 PUSH2 0x2F97 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x26C0 PUSH2 0x9F4 JUMP JUMPDEST ISZERO PUSH2 0xABF JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xA PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F41435449564500000000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 PUSH4 0xFFFFFFFF AND GT DUP1 ISZERO PUSH2 0x2734 JUMPI POP PUSH3 0xF4240 PUSH4 0xFFFFFFFF DUP3 AND GT ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x9F1 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F574549474854000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x2792 PUSH2 0x9F4 JUMP JUMPDEST ISZERO ISZERO PUSH2 0xABF JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E4143544956450000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP4 ISZERO ISZERO PUSH2 0x27FB JUMPI PUSH1 0x0 SWAP2 POP PUSH2 0x2865 JUMP JUMPDEST POP DUP3 DUP3 MUL DUP3 DUP5 DUP3 DUP2 ISZERO ISZERO PUSH2 0x280B JUMPI INVALID JUMPDEST DIV EQ PUSH2 0x2861 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP1 SWAP2 POP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP4 GT PUSH2 0x28C6 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4449564944455F42595F5A45524F0000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP3 DUP5 DUP2 ISZERO ISZERO PUSH2 0x28D1 JUMPI INVALID JUMPDEST DIV SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x0 SWAP1 PUSH2 0x15B0 SWAP1 PUSH3 0xF4240 SWAP1 PUSH2 0x209A SWAP1 DUP6 SWAP1 PUSH9 0x10000000000000000 SWAP1 DIV PUSH4 0xFFFFFFFF SWAP1 DUP2 AND SWAP1 PUSH2 0x27E8 AND JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x116F JUMPI PUSH2 0x2944 PUSH1 0x7 DUP3 DUP2 SLOAD DUP2 LT ISZERO ISZERO PUSH2 0x292A JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x1C26 JUMP JUMPDEST PUSH1 0x1 ADD PUSH2 0x2910 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x295B DUP8 PUSH2 0x1FC7 JUMP JUMPDEST SWAP1 SWAP4 POP SWAP2 POP DUP3 ISZERO ISZERO PUSH2 0x29B7 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5A45524F5F5441524745545F414D4F554E5400000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x7 DUP1 SLOAD PUSH1 0x0 SWAP1 DUP2 LT PUSH2 0x29C6 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP1 POP PUSH20 0xEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE DUP2 EQ ISZERO PUSH2 0x2A55 JUMPI CALLVALUE DUP8 EQ PUSH2 0x2A50 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4554485F414D4F554E545F4D49534D41544348000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x2B5D JUMP JUMPDEST CALLVALUE ISZERO DUP1 ISZERO PUSH2 0x2B07 JUMPI POP DUP7 PUSH2 0x2B04 PUSH2 0x2A6B DUP4 PUSH2 0x15B6 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2ACC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2AE0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2AF6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x3025 AND JUMP JUMPDEST LT ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x2B5D JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F414D4F554E540000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x2B66 DUP2 PUSH2 0x1C26 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x867904B400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH1 0x24 DUP3 ADD DUP8 SWAP1 MSTORE SWAP2 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP2 PUSH4 0x867904B4 SWAP2 PUSH1 0x44 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2BD4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2BE8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x5 SLOAD PUSH2 0x2C07 SWAP3 POP DUP4 SWAP2 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP9 DUP11 DUP8 DUP8 PUSH2 0x3085 JUMP JUMPDEST POP SWAP1 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP3 DUP4 SWAP3 DUP4 SWAP3 DUP4 SWAP3 DUP4 SWAP3 DUP4 SWAP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2C84 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2C98 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2CAE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD DUP10 GT ISZERO PUSH2 0x2D07 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F414D4F554E540000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x2D10 DUP10 PUSH2 0x21D6 JUMP JUMPDEST SWAP1 SWAP6 POP SWAP4 POP DUP5 ISZERO ISZERO PUSH2 0x2D6C JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5A45524F5F5441524745545F414D4F554E5400000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x7 DUP1 SLOAD PUSH1 0x0 SWAP1 DUP2 LT PUSH2 0x2D7B JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 SWAP1 SWAP2 ADD SLOAD PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x18160DDD00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND SWAP9 POP SWAP2 SWAP1 SWAP3 AND SWAP4 PUSH4 0x18160DDD SWAP4 PUSH1 0x4 DUP1 DUP6 ADD SWAP5 SWAP2 SWAP4 SWAP3 SWAP2 DUP4 SWAP1 SUB ADD SWAP1 DUP3 SWAP1 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2DED JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2E01 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2E17 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 POP PUSH2 0x2E24 DUP4 PUSH2 0x15B6 JUMP JUMPDEST SWAP1 POP DUP1 DUP6 LT DUP1 PUSH2 0x2E3D JUMPI POP DUP1 DUP6 EQ DUP1 ISZERO PUSH2 0x2E3D JUMPI POP DUP2 DUP10 EQ JUMPDEST ISZERO ISZERO PUSH2 0x2E45 JUMPI INVALID JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xA24835D100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP13 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP2 PUSH4 0xA24835D1 SWAP2 PUSH1 0x44 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2EB1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2EC5 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x2EF2 SWAP2 POP DUP7 PUSH4 0xFFFFFFFF PUSH2 0x3025 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE PUSH20 0xEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE EQ ISZERO PUSH2 0x2F65 JUMPI PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 AND SWAP1 DUP7 ISZERO PUSH2 0x8FC MUL SWAP1 DUP8 SWAP1 PUSH1 0x0 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x2F5F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH2 0x2F70 JUMP JUMPDEST PUSH2 0x2F70 DUP4 DUP9 DUP8 PUSH2 0x25FE JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH2 0x2F8A SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP5 DUP11 DUP13 DUP10 DUP10 PUSH2 0x3085 JUMP JUMPDEST POP SWAP3 SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x2F9F PUSH2 0x3138 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE POP SWAP1 POP PUSH1 0x20 DUP2 DUP4 MLOAD PUSH1 0x20 DUP6 ADD PUSH1 0x0 DUP8 GAS CALL DUP1 ISZERO ISZERO PUSH2 0x2FCC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD ISZERO ISZERO PUSH2 0x26B3 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5452414E534645525F4641494C454400000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 DUP4 LT ISZERO PUSH2 0x307F JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F554E444552464C4F5700000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP SWAP1 SUB SWAP1 JUMP JUMPDEST PUSH32 0x8000000000000000000000000000000000000000000000000000000000000000 DUP2 LT PUSH2 0x30AE JUMPI INVALID JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP5 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 SWAP1 MSTORE DUP1 DUP3 ADD DUP4 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP8 AND SWAP3 DUP9 DUP3 AND SWAP3 SWAP2 DUP11 AND SWAP2 PUSH32 0x276856B36CBC45526A0BA64F44611557A2A8B68662C5388E9FE6D72E86E1C8CB SWAP2 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG4 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xA0 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE SWAP2 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x60 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 SWAP1 PUSH1 0x20 DUP3 MUL DUP1 CODESIZE DUP4 CODECOPY POP SWAP2 SWAP3 SWAP2 POP POP JUMP STOP MSTORE8 PUSH16 0x7672796E53776170436F6E7665727465 PUSH19 0x557067726164657200000000004552525F4143 NUMBER GASLIMIT MSTORE8 MSTORE8 0x5f DIFFICULTY GASLIMIT 0x4e 0x49 GASLIMIT DIFFICULTY STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 0xc3 SWAP16 SWAP8 EXTCODECOPY 0xbc SHR CREATE PUSH22 0x8A64156854331E6829D0C51A16E297AAE88602BE0C95 0xbc SWAP12 STOP 0x29 LOG1 PUSH6 0x627A7A723058 KECCAK256 0x4f 0xe6 NUMBER 0x24 SMOD 0xd2 RETURNDATASIZE 0x24 DIFFICULTY PUSH9 0x87A09BF05471A3BCB6 0xc0 0xf8 0x24 TIMESTAMP 0xaa PUSH23 0xDDF3FB876C185E00290000000000000000000000000000 ", + "sourceMap": "258:1024:22:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;258:1024:22;;;;;;;" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "60806040526004361061004b5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631141395881146100505780633e8ff43f146100b6575b600080fd5b34801561005c57600080fd5b5061008d73ffffffffffffffffffffffffffffffffffffffff6004358116906024351663ffffffff604435166100e2565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b3480156100c257600080fd5b506100cb6101d5565b6040805161ffff9092168252519081900360200190f35b6000808484846100f06101da565b73ffffffffffffffffffffffffffffffffffffffff938416815291909216602082015263ffffffff9091166040808301919091525190819003606001906000f080158015610142573d6000803e3d6000fd5b50604080517ff2fde38b000000000000000000000000000000000000000000000000000000008152336004820152905191925073ffffffffffffffffffffffffffffffffffffffff83169163f2fde38b9160248082019260009290919082900301818387803b1580156101b457600080fd5b505af11580156101c8573d6000803e3d6000fd5b5092979650505050505050565b600090565b6040516133e2806101eb83390190560060806040526001600455600980546001606060020a03191690553480156200002657600080fd5b50604051606080620033e283398101604090815281516020830151919092015160008054600160a060020a03191633179055828282818062000071816401000000006200011b810204565b5060028054600160a060020a03909216600160a060020a031992831681179091556003805490921617905582620000b1816401000000006200011b810204565b81620000c68164010000000062000196810204565b505060058054600160a060020a03909416600160a060020a031990941693909317909255506009805463ffffffff9092166401000000000267ffffffff0000000019909216919091179055506200020f915050565b600160a060020a03811615156200019357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b50565b620f424063ffffffff821611156200019357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f4552525f494e56414c49445f434f4e56455253494f4e5f464545000000000000604482015290519081900360640190fd5b6131c3806200021f6000396000f30060806040526004361061020b5763ffffffff60e060020a600035041663024c7ec781146102af5780630c7d5cd8146102c95780630e53aae9146102f757806312c2aca41461034c57806319b64015146103755780631cfab290146103a95780631e1401f8146103ca57806321e6b53d1461040d57806322f3e2d41461042e5780632fe8a6ad1461044357806338a5e01614610458578063395900d41461046d5780633e8ff43f1461049757806349d10b64146104c35780634af80f0e146104d857806354fd4d50146104f9578063579cd3ca1461050e5780635e35359e1461052357806361cd756e1461054d57806367b6d57c14610562578063690d8320146105835780636a49d2c4146105a457806371f52bf3146105ce57806379ba5097146105e35780637b103999146105f85780638da5cb5b1461060d57806394c275ad146106225780639b99a8e214610637578063af94b8d81461064c578063b4a176d314610676578063bf7545581461068b578063c45d3d92146106a0578063cdc91c69146106b5578063d031370b146106ca578063d260529c146106e2578063d3fb73b4146106f7578063d4ee1d901461070c578063d55ec69714610721578063d66bd52414610736578063d895951214610757578063dc8de3791461078a578063e8dc12ff146107ab578063ecbca55d146107d5578063f2fde38b146107f3578063fc0c546a14610814575b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee60005260086020527f353c2eb9e53a4a4a6d45d72082ff2e9dc829d1125618772a83eb0e7f86632c43546601000000000000900460ff1615156102ad576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f5245534552564500000000000000000000000000604482015290519081900360640190fd5b005b3480156102bb57600080fd5b506102ad6004351515610829565b3480156102d557600080fd5b506102de610871565b6040805163ffffffff9092168252519081900360200190f35b34801561030357600080fd5b50610318600160a060020a036004351661087d565b6040805195865263ffffffff9094166020860152911515848401521515606084015215156080830152519081900360a00190f35b34801561035857600080fd5b50610361610918565b604080519115158252519081900360200190f35b34801561038157600080fd5b5061038d600435610967565b60408051600160a060020a039092168252519081900360200190f35b3480156103b557600080fd5b506102de600160a060020a0360043516610993565b3480156103d657600080fd5b506103f4600160a060020a03600435811690602435166044356109c5565b6040805192835260208301919091528051918290030190f35b34801561041957600080fd5b506102ad600160a060020a03600435166109e0565b34801561043a57600080fd5b506103616109f4565b34801561044f57600080fd5b50610361610a8e565b34801561046457600080fd5b506102ad610aaf565b34801561047957600080fd5b506102ad600160a060020a0360043581169060243516604435610ac1565b3480156104a357600080fd5b506104ac610b5c565b6040805161ffff9092168252519081900360200190f35b3480156104cf57600080fd5b506102ad610b61565b3480156104e457600080fd5b506102ad600160a060020a0360043516610dce565b34801561050557600080fd5b506104ac610e10565b34801561051a57600080fd5b506102de610e15565b34801561052f57600080fd5b506102ad600160a060020a0360043581169060243516604435610e2d565b34801561055957600080fd5b5061038d610f41565b34801561056e57600080fd5b506102ad600160a060020a0360043516610f50565b34801561058f57600080fd5b506102ad600160a060020a0360043516610ff3565b3480156105b057600080fd5b506102ad600160a060020a036004351663ffffffff60243516611104565b3480156105da57600080fd5b506104ac611173565b3480156105ef57600080fd5b506102ad611182565b34801561060457600080fd5b5061038d611243565b34801561061957600080fd5b5061038d611252565b34801561062e57600080fd5b506102de611261565b34801561064357600080fd5b506104ac611275565b34801561065857600080fd5b506103f4600160a060020a036004358116906024351660443561127b565b34801561068257600080fd5b506102ad611379565b34801561069757600080fd5b506103616113b2565b3480156106ac57600080fd5b5061038d6113b7565b3480156106c157600080fd5b506102ad6113c6565b3480156106d657600080fd5b5061038d60043561141f565b3480156106ee57600080fd5b50610361611447565b34801561070357600080fd5b5061038d61144c565b34801561071857600080fd5b5061038d61145b565b34801561072d57600080fd5b506102ad61146a565b34801561074257600080fd5b50610318600160a060020a036004351661155f565b34801561076357600080fd5b50610778600160a060020a03600435166115a5565b60408051918252519081900360200190f35b34801561079657600080fd5b50610778600160a060020a03600435166115b6565b610778600160a060020a0360043581169060243581169060443590606435811690608435166115df565b3480156107e157600080fd5b506102ad63ffffffff60043516611832565b3480156107ff57600080fd5b506102ad600160a060020a0360043516611927565b34801561082057600080fd5b5061038d6119c4565b6108316119d3565b60038054911515740100000000000000000000000000000000000000000274ff000000000000000000000000000000000000000019909216919091179055565b60095463ffffffff1681565b600080600080600061088d61310a565b50505050600160a060020a03929092166000908152600860209081526040808320815160a081018352815480825260019092015463ffffffff811694820185905260ff64010000000082048116151594830194909452650100000000008104841615156060830152660100000000000090049092161515608090920182905295919450919250829190565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee60005260086020527f353c2eb9e53a4a4a6d45d72082ff2e9dc829d1125618772a83eb0e7f86632c43546601000000000000900460ff1690565b600060078281548110151561097857fe5b600091825260209091200154600160a060020a031692915050565b60008161099f81611a23565b5050600160a060020a031660009081526008602052604090206001015463ffffffff1690565b6000806109d385858561127b565b915091505b935093915050565b6109e86119d3565b6109f181610f50565b50565b600030600160a060020a0316600560009054906101000a9004600160a060020a0316600160a060020a0316638da5cb5b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610a5357600080fd5b505af1158015610a67573d6000803e3d6000fd5b505050506040513d6020811015610a7d57600080fd5b5051600160a060020a031614905090565b60035474010000000000000000000000000000000000000000900460ff1681565b610ab76119d3565b610abf6113c6565b565b610ac96119d3565b600554604080517f5e35359e000000000000000000000000000000000000000000000000000000008152600160a060020a03868116600483015285811660248301526044820185905291519190921691635e35359e91606480830192600092919082900301818387803b158015610b3f57600080fd5b505af1158015610b53573d6000803e3d6000fd5b50505050505050565b600090565b60008054600160a060020a0316331480610b96575060035474010000000000000000000000000000000000000000900460ff16155b1515610bda576040805160e560020a62461bcd0281526020600482015260116024820152600080516020613178833981519152604482015290519081900360640190fd5b610c037f436f6e7472616374526567697374727900000000000000000000000000000000611aa2565b600254909150600160a060020a03808316911614801590610c2c5750600160a060020a03811615155b1515610c82576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e56414c49445f5245474953545259000000000000000000000000604482015290519081900360640190fd5b604080517fbb34534c0000000000000000000000000000000000000000000000000000000081527f436f6e747261637452656769737472790000000000000000000000000000000060048201529051600091600160a060020a0384169163bb34534c9160248082019260209290919082900301818787803b158015610d0657600080fd5b505af1158015610d1a573d6000803e3d6000fd5b505050506040513d6020811015610d3057600080fd5b5051600160a060020a03161415610d91576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e56414c49445f5245474953545259000000000000000000000000604482015290519081900360640190fd5b6002805460038054600160a060020a0380841673ffffffffffffffffffffffffffffffffffffffff19928316179092559091169216919091179055565b610dd66119d3565b80610de081611b3a565b506006805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b602081565b60095468010000000000000000900463ffffffff1681565b6000610e37611b9b565b6002600455610e446119d3565b610e5b600080516020613158833981519152611aa2565b600160a060020a0385166000908152600860205260409020600101549091506601000000000000900460ff161580610e985750610e966109f4565b155b80610eb05750600054600160a060020a038281169116145b1515610ef4576040805160e560020a62461bcd0281526020600482015260116024820152600080516020613178833981519152604482015290519081900360640190fd5b610eff848484611bf5565b600160a060020a0384166000908152600860205260409020600101546601000000000000900460ff1615610f3657610f3684611c26565b505060016004555050565b600354600160a060020a031681565b610f586119d3565b600080516020613158833981519152610f7081611d20565b600554604080517ff2fde38b000000000000000000000000000000000000000000000000000000008152600160a060020a0385811660048301529151919092169163f2fde38b91602480830192600092919082900301818387803b158015610fd757600080fd5b505af1158015610feb573d6000803e3d6000fd5b505050505050565b6000610ffd611b9b565b600260045561100a6119d3565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee61102881611a23565b61103f600080516020613158833981519152611aa2565b91506110496109f4565b15806110625750600054600160a060020a038381169116145b15156110a6576040805160e560020a62461bcd0281526020600482015260116024820152600080516020613178833981519152604482015290519081900360640190fd5b604051600160a060020a03841690303180156108fc02916000818181858888f193505050501580156110dc573d6000803e3d6000fd5b506110fa73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee611c26565b5050600160045550565b61110c611275565b61ffff1615611165576040805160e560020a62461bcd02815260206004820152601960248201527f4552525f494e56414c49445f524553455256455f434f554e5400000000000000604482015290519081900360640190fd5b61116f8282611d76565b5050565b600061117d611275565b905090565b600154600160a060020a031633146111d2576040805160e560020a62461bcd0281526020600482015260116024820152600080516020613178833981519152604482015290519081900360640190fd5b60015460008054604051600160a060020a0393841693909116917f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91a3600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b600254600160a060020a031681565b600054600160a060020a031681565b600954640100000000900463ffffffff1681565b60075490565b6005546000908190600160a060020a0385811691161480156112c25750600160a060020a0385166000908152600860205260409020600101546601000000000000900460ff165b156112d9576112d083611fc7565b915091506109d8565b600554600160a060020a03868116911614801561131b5750600160a060020a0384166000908152600860205260409020600101546601000000000000900460ff165b15611329576112d0836121d6565b6040805160e560020a62461bcd02815260206004820152601160248201527f4552525f494e56414c49445f544f4b454e000000000000000000000000000000604482015290519081900360640190fd5b6113816119d3565b6003546002805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055565b600181565b600654600160a060020a031681565b6113ce6119d3565b6113d66122e2565b600554600190600160a060020a03166113ed610b5c565b61ffff167f6b08c2e2c9969e55a647a764db9b554d64dc42f1a704da11a6d5b129ad163f2c60405160405180910390a4565b600780548290811061142d57fe5b600091825260209091200154600160a060020a0316905081565b600190565b600554600160a060020a031681565b600154600160a060020a031681565b60006114746119d3565b61148b600080516020613158833981519152611aa2565b600554909150600090600160a060020a03166114a5610b5c565b61ffff167f6b08c2e2c9969e55a647a764db9b554d64dc42f1a704da11a6d5b129ad163f2c60405160405180910390a46114de81611927565b604080517f90f58c96000000000000000000000000000000000000000000000000000000008152602060048201529051600160a060020a038316916390f58c9691602480830192600092919082900301818387803b15801561153f57600080fd5b505af1158015611553573d6000803e3d6000fd5b505050506109f1611182565b6008602052600090815260409020805460019091015463ffffffff81169060ff640100000000820481169165010000000000810482169166010000000000009091041685565b60006115b0826115b6565b92915050565b6000816115c281611a23565b5050600160a060020a031660009081526008602052604090205490565b60006115e9611b9b565b60026004557f536f7672796e537761704e6574776f726b00000000000000000000000000000061161881611d20565b600160a060020a03878116908716141561167c576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f53414d455f534f555243455f54415247455400000000000000000000604482015290519081900360640190fd5b600654600160a060020a031615806117bf5750600654604080517f3af32abf000000000000000000000000000000000000000000000000000000008152600160a060020a03878116600483015291519190921691633af32abf9160248083019260209291908290030181600087803b1580156116f757600080fd5b505af115801561170b573d6000803e3d6000fd5b505050506040513d602081101561172157600080fd5b505180156117bf5750600654604080517f3af32abf000000000000000000000000000000000000000000000000000000008152600160a060020a03868116600483015291519190921691633af32abf9160248083019260209291908290030181600087803b15801561179257600080fd5b505af11580156117a6573d6000803e3d6000fd5b505050506040513d60208110156117bc57600080fd5b50515b1515611815576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f4e4f545f57484954454c495354454400000000000000000000000000604482015290519081900360640190fd5b61182287878787876123c0565b6001600455979650505050505050565b61183a6119d3565b60095463ffffffff640100000000909104811690821611156118a6576040805160e560020a62461bcd02815260206004820152601a60248201527f4552525f494e56414c49445f434f4e56455253494f4e5f464545000000000000604482015290519081900360640190fd5b6009546040805163ffffffff6801000000000000000090930483168152918316602083015280517f81cd2ffb37dd237c0e4e2a3de5265fcf9deb43d3e7801e80db9f1ccfba7ee6009281900390910190a16009805463ffffffff90921668010000000000000000026bffffffff000000000000000019909216919091179055565b61192f6119d3565b600054600160a060020a0382811691161415611995576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f53414d455f4f574e4552000000000000000000000000000000000000604482015290519081900360640190fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600554600160a060020a031690565b600054600160a060020a03163314610abf576040805160e560020a62461bcd0281526020600482015260116024820152600080516020613178833981519152604482015290519081900360640190fd5b600160a060020a0381166000908152600860205260409020600101546601000000000000900460ff1615156109f1576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f5245534552564500000000000000000000000000604482015290519081900360640190fd5b600254604080517fbb34534c000000000000000000000000000000000000000000000000000000008152600481018490529051600092600160a060020a03169163bb34534c91602480830192602092919082900301818787803b158015611b0857600080fd5b505af1158015611b1c573d6000803e3d6000fd5b505050506040513d6020811015611b3257600080fd5b505192915050565b600160a060020a0381163014156109f1576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f414444524553535f49535f53454c4600000000000000000000000000604482015290519081900360640190fd5b600454600114610abf576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f5245454e5452414e4359000000000000000000000000000000000000604482015290519081900360640190fd5b611bfd6119d3565b82611c078161259e565b82611c118161259e565b83611c1b81611b3a565b610feb8686866125fe565b80611c3081611a23565b600160a060020a03821673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee1415611c7657600160a060020a03821660009081526008602052604090203031905561116f565b604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a038416916370a082319160248083019260209291908290030181600087803b158015611cd757600080fd5b505af1158015611ceb573d6000803e3d6000fd5b505050506040513d6020811015611d0157600080fd5b5051600160a060020a0383166000908152600860205260409020555050565b611d2981611aa2565b600160a060020a031633146109f1576040805160e560020a62461bcd0281526020600482015260116024820152600080516020613178833981519152604482015290519081900360640190fd5b6000611d806119d3565b611d886126b8565b82611d928161259e565b83611d9c81611b3a565b83611da681612715565b600554600160a060020a03878116911614801590611dea5750600160a060020a0386166000908152600860205260409020600101546601000000000000900460ff16155b1515611e40576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f5245534552564500000000000000000000000000604482015290519081900360640190fd5b60095463ffffffff908116620f42400381169086161115611eab576040805160e560020a62461bcd02815260206004820152601a60248201527f4552525f494e56414c49445f524553455256455f574549474854000000000000604482015290519081900360640190fd5b61ffff611eb6611275565b61ffff1610611f0f576040805160e560020a62461bcd02815260206004820152601960248201527f4552525f494e56414c49445f524553455256455f434f554e5400000000000000604482015290519081900360640190fd5b505050600160a060020a0390921660008181526008602052604081208181556001908101805466ff0000000000001963ffffffff80881663ffffffff1993841617919091166601000000000000179092556007805493840181559093527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688909101805473ffffffffffffffffffffffffffffffffffffffff191690931790925560098054808416909401909216921691909117905550565b600080600080600080611fd861278a565b600560009054906101000a9004600160a060020a0316600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561202b57600080fd5b505af115801561203f573d6000803e3d6000fd5b505050506040513d602081101561205557600080fd5b505193508315156120b157600160a060020a0383166000908152600860205260409020600101546120a69063ffffffff9081169061209a908a90620f4240906127e816565b9063ffffffff61286c16565b9550600094506121cd565b6007805460009081106120c057fe5b600091825260209091200154600160a060020a031692506121007f536f7672796e53776170466f726d756c61000000000000000000000000000000611aa2565b600160a060020a031663f3250fe285612118866115b6565b600160a060020a038716600090815260086020908152604080832060010154815163ffffffff88811660e060020a02825260048201979097526024810195909552949094166044840152606483018d90529251608480840194939192918390030190829087803b15801561218b57600080fd5b505af115801561219f573d6000803e3d6000fd5b505050506040513d60208110156121b557600080fd5b505191506121c2826128da565b905080820381955095505b50505050915091565b6000806000806000806121e761278a565b600560009054906101000a9004600160a060020a0316600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561223a57600080fd5b505af115801561224e573d6000803e3d6000fd5b505050506040513d602081101561226457600080fd5b50516007805491955090600090811061227957fe5b600091825260209091200154600160a060020a03169250838714156122a1576120a6836115b6565b6122ca7f536f7672796e53776170466f726d756c61000000000000000000000000000000611aa2565b600160a060020a03166376cf0b5685612118866115b6565b6122ea6119d3565b60006122f4611275565b61ffff161161234d576040805160e560020a62461bcd02815260206004820152601960248201527f4552525f494e56414c49445f524553455256455f434f554e5400000000000000604482015290519081900360640190fd5b600560009054906101000a9004600160a060020a0316600160a060020a03166379ba50976040518163ffffffff1660e060020a028152600401600060405180830381600087803b1580156123a057600080fd5b505af11580156123b4573d6000803e3d6000fd5b50505050610abf61290a565b6005546000908190819081908190600160a060020a038a8116911614801561240d5750600160a060020a038a166000908152600860205260409020600101546601000000000000900460ff165b156124275789925061242088888861294c565b935061247c565b600554600160a060020a038b811691161480156124695750600160a060020a0389166000908152600860205260409020600101546601000000000000900460ff165b1561132957889250612420888888612c12565b600560009054906101000a9004600160a060020a0316600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156124cf57600080fd5b505af11580156124e3573d6000803e3d6000fd5b505050506040513d60208110156124f957600080fd5b5051600160a060020a0380851660008181526008602052604090206001015460055493955063ffffffff16935091167f77f29993cf2c084e726f7e802da0719d6a0ade3e204badc7a3ffd57ecb768c24612565620f4240612559886115b6565b9063ffffffff6127e816565b6125788663ffffffff808816906127e816565b6040805192835260208301919091528051918290030190a3509198975050505050505050565b600160a060020a03811615156109f1576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b604080517f7472616e7366657228616464726573732c75696e74323536290000000000000081528151908190036019018120600160a060020a038516602483015260448083018590528351808403909101815260649092019092526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909316929092179091526126b3908490612f97565b505050565b6126c06109f4565b15610abf576040805160e560020a62461bcd02815260206004820152600a60248201527f4552525f41435449564500000000000000000000000000000000000000000000604482015290519081900360640190fd5b60008163ffffffff161180156127345750620f424063ffffffff821611155b15156109f1576040805160e560020a62461bcd02815260206004820152601a60248201527f4552525f494e56414c49445f524553455256455f574549474854000000000000604482015290519081900360640190fd5b6127926109f4565b1515610abf576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f494e4143544956450000000000000000000000000000000000000000604482015290519081900360640190fd5b6000808315156127fb5760009150612865565b5082820282848281151561280b57fe5b0414612861576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b8091505b5092915050565b6000808083116128c6576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f4449564944455f42595f5a45524f0000000000000000000000000000604482015290519081900360640190fd5b82848115156128d157fe5b04949350505050565b6009546000906115b090620f42409061209a90859068010000000000000000900463ffffffff908116906127e816565b60075460005b8181101561116f5761294460078281548110151561292a57fe5b600091825260209091200154600160a060020a0316611c26565b600101612910565b60008060008061295b87611fc7565b90935091508215156129b7576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f5a45524f5f5441524745545f414d4f554e5400000000000000000000604482015290519081900360640190fd5b6007805460009081106129c657fe5b600091825260209091200154600160a060020a0316905073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee811415612a5557348714612a50576040805160e560020a62461bcd02815260206004820152601760248201527f4552525f4554485f414d4f554e545f4d49534d41544348000000000000000000604482015290519081900360640190fd5b612b5d565b34158015612b07575086612b04612a6b836115b6565b604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a038616916370a082319160248083019260209291908290030181600087803b158015612acc57600080fd5b505af1158015612ae0573d6000803e3d6000fd5b505050506040513d6020811015612af657600080fd5b50519063ffffffff61302516565b10155b1515612b5d576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f494e56414c49445f414d4f554e540000000000000000000000000000604482015290519081900360640190fd5b612b6681611c26565b600554604080517f867904b4000000000000000000000000000000000000000000000000000000008152600160a060020a038881166004830152602482018790529151919092169163867904b491604480830192600092919082900301818387803b158015612bd457600080fd5b505af1158015612be8573d6000803e3d6000fd5b5050600554612c079250839150600160a060020a0316888a8787613085565b509095945050505050565b600554604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905160009283928392839283928392600160a060020a03909216916370a082319160248082019260209290919082900301818787803b158015612c8457600080fd5b505af1158015612c98573d6000803e3d6000fd5b505050506040513d6020811015612cae57600080fd5b5051891115612d07576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f494e56414c49445f414d4f554e540000000000000000000000000000604482015290519081900360640190fd5b612d10896121d6565b9095509350841515612d6c576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f5a45524f5f5441524745545f414d4f554e5400000000000000000000604482015290519081900360640190fd5b600780546000908110612d7b57fe5b6000918252602080832090910154600554604080517f18160ddd0000000000000000000000000000000000000000000000000000000081529051600160a060020a03938416985091909216936318160ddd93600480850194919392918390030190829087803b158015612ded57600080fd5b505af1158015612e01573d6000803e3d6000fd5b505050506040513d6020811015612e1757600080fd5b50519150612e24836115b6565b905080851080612e3d57508085148015612e3d57508189145b1515612e4557fe5b600554604080517fa24835d1000000000000000000000000000000000000000000000000000000008152306004820152602481018c90529051600160a060020a039092169163a24835d19160448082019260009290919082900301818387803b158015612eb157600080fd5b505af1158015612ec5573d6000803e3d6000fd5b505050600160a060020a038416600090815260086020526040902054612ef291508663ffffffff61302516565b600160a060020a03841660008181526008602052604090209190915573eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee1415612f6557604051600160a060020a0388169086156108fc029087906000818181858888f19350505050158015612f5f573d6000803e3d6000fd5b50612f70565b612f708388876125fe565b600554612f8a90600160a060020a0316848a8c8989613085565b5092979650505050505050565b612f9f613138565b602060405190810160405280600181525090506020818351602085016000875af1801515612fcc57600080fd5b50805115156126b3576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f5452414e534645525f4641494c454400000000000000000000000000604482015290519081900360640190fd5b60008183101561307f576040805160e560020a62461bcd02815260206004820152600d60248201527f4552525f554e444552464c4f5700000000000000000000000000000000000000604482015290519081900360640190fd5b50900390565b7f800000000000000000000000000000000000000000000000000000000000000081106130ae57fe5b60408051848152602081018490528082018390529051600160a060020a038087169288821692918a16917f276856b36cbc45526a0ba64f44611557a2a8b68662c5388e9fe6d72e86e1c8cb9181900360600190a4505050505050565b6040805160a08101825260008082526020820181905291810182905260608101829052608081019190915290565b60206040519081016040528060019060208202803883395091929150505600536f7672796e53776170436f6e766572746572557067726164657200000000004552525f4143434553535f44454e494544000000000000000000000000000000a165627a7a72305820c39f973cbc1cf0758a64156854331e6829d0c51a16e297aae88602be0c95bc9b0029a165627a7a723058204fe6432407d23d24446887a09bf05471a3bcb6c0f82442aa76ddf3fb876c185e0029", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x4B JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x11413958 DUP2 EQ PUSH2 0x50 JUMPI DUP1 PUSH4 0x3E8FF43F EQ PUSH2 0xB6 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x8D PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH4 0xFFFFFFFF PUSH1 0x44 CALLDATALOAD AND PUSH2 0xE2 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xC2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xCB PUSH2 0x1D5 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0xFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP1 DUP5 DUP5 DUP5 PUSH2 0xF0 PUSH2 0x1DA JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP4 DUP5 AND DUP2 MSTORE SWAP2 SWAP1 SWAP3 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH4 0xFFFFFFFF SWAP1 SWAP2 AND PUSH1 0x40 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 PUSH1 0x0 CREATE DUP1 ISZERO DUP1 ISZERO PUSH2 0x142 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH32 0xF2FDE38B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD SWAP2 SWAP3 POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND SWAP2 PUSH4 0xF2FDE38B SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1B4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1C8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP SWAP3 SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x33E2 DUP1 PUSH2 0x1EB DUP4 CODECOPY ADD SWAP1 JUMP STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x1 PUSH1 0x4 SSTORE PUSH1 0x9 DUP1 SLOAD PUSH1 0x1 PUSH1 0x60 PUSH1 0x2 EXP SUB NOT AND SWAP1 SSTORE CALLVALUE DUP1 ISZERO PUSH3 0x26 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH1 0x60 DUP1 PUSH3 0x33E2 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 SWAP1 DUP2 MSTORE DUP2 MLOAD PUSH1 0x20 DUP4 ADD MLOAD SWAP2 SWAP1 SWAP3 ADD MLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND CALLER OR SWAP1 SSTORE DUP3 DUP3 DUP3 DUP2 DUP1 PUSH3 0x71 DUP2 PUSH5 0x100000000 PUSH3 0x11B DUP2 MUL DIV JUMP JUMPDEST POP PUSH1 0x2 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT SWAP3 DUP4 AND DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x3 DUP1 SLOAD SWAP1 SWAP3 AND OR SWAP1 SSTORE DUP3 PUSH3 0xB1 DUP2 PUSH5 0x100000000 PUSH3 0x11B DUP2 MUL DIV JUMP JUMPDEST DUP2 PUSH3 0xC6 DUP2 PUSH5 0x100000000 PUSH3 0x196 DUP2 MUL DIV JUMP JUMPDEST POP POP PUSH1 0x5 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP5 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 OR SWAP1 SWAP3 SSTORE POP PUSH1 0x9 DUP1 SLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP3 AND PUSH5 0x100000000 MUL PUSH8 0xFFFFFFFF00000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE POP PUSH3 0x20F SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH3 0x193 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH3 0xF4240 PUSH4 0xFFFFFFFF DUP3 AND GT ISZERO PUSH3 0x193 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F434F4E56455253494F4E5F464545000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x31C3 DUP1 PUSH3 0x21F PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x20B JUMPI PUSH4 0xFFFFFFFF PUSH1 0xE0 PUSH1 0x2 EXP PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x24C7EC7 DUP2 EQ PUSH2 0x2AF JUMPI DUP1 PUSH4 0xC7D5CD8 EQ PUSH2 0x2C9 JUMPI DUP1 PUSH4 0xE53AAE9 EQ PUSH2 0x2F7 JUMPI DUP1 PUSH4 0x12C2ACA4 EQ PUSH2 0x34C JUMPI DUP1 PUSH4 0x19B64015 EQ PUSH2 0x375 JUMPI DUP1 PUSH4 0x1CFAB290 EQ PUSH2 0x3A9 JUMPI DUP1 PUSH4 0x1E1401F8 EQ PUSH2 0x3CA JUMPI DUP1 PUSH4 0x21E6B53D EQ PUSH2 0x40D JUMPI DUP1 PUSH4 0x22F3E2D4 EQ PUSH2 0x42E JUMPI DUP1 PUSH4 0x2FE8A6AD EQ PUSH2 0x443 JUMPI DUP1 PUSH4 0x38A5E016 EQ PUSH2 0x458 JUMPI DUP1 PUSH4 0x395900D4 EQ PUSH2 0x46D JUMPI DUP1 PUSH4 0x3E8FF43F EQ PUSH2 0x497 JUMPI DUP1 PUSH4 0x49D10B64 EQ PUSH2 0x4C3 JUMPI DUP1 PUSH4 0x4AF80F0E EQ PUSH2 0x4D8 JUMPI DUP1 PUSH4 0x54FD4D50 EQ PUSH2 0x4F9 JUMPI DUP1 PUSH4 0x579CD3CA EQ PUSH2 0x50E JUMPI DUP1 PUSH4 0x5E35359E EQ PUSH2 0x523 JUMPI DUP1 PUSH4 0x61CD756E EQ PUSH2 0x54D JUMPI DUP1 PUSH4 0x67B6D57C EQ PUSH2 0x562 JUMPI DUP1 PUSH4 0x690D8320 EQ PUSH2 0x583 JUMPI DUP1 PUSH4 0x6A49D2C4 EQ PUSH2 0x5A4 JUMPI DUP1 PUSH4 0x71F52BF3 EQ PUSH2 0x5CE JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x5E3 JUMPI DUP1 PUSH4 0x7B103999 EQ PUSH2 0x5F8 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x60D JUMPI DUP1 PUSH4 0x94C275AD EQ PUSH2 0x622 JUMPI DUP1 PUSH4 0x9B99A8E2 EQ PUSH2 0x637 JUMPI DUP1 PUSH4 0xAF94B8D8 EQ PUSH2 0x64C JUMPI DUP1 PUSH4 0xB4A176D3 EQ PUSH2 0x676 JUMPI DUP1 PUSH4 0xBF754558 EQ PUSH2 0x68B JUMPI DUP1 PUSH4 0xC45D3D92 EQ PUSH2 0x6A0 JUMPI DUP1 PUSH4 0xCDC91C69 EQ PUSH2 0x6B5 JUMPI DUP1 PUSH4 0xD031370B EQ PUSH2 0x6CA JUMPI DUP1 PUSH4 0xD260529C EQ PUSH2 0x6E2 JUMPI DUP1 PUSH4 0xD3FB73B4 EQ PUSH2 0x6F7 JUMPI DUP1 PUSH4 0xD4EE1D90 EQ PUSH2 0x70C JUMPI DUP1 PUSH4 0xD55EC697 EQ PUSH2 0x721 JUMPI DUP1 PUSH4 0xD66BD524 EQ PUSH2 0x736 JUMPI DUP1 PUSH4 0xD8959512 EQ PUSH2 0x757 JUMPI DUP1 PUSH4 0xDC8DE379 EQ PUSH2 0x78A JUMPI DUP1 PUSH4 0xE8DC12FF EQ PUSH2 0x7AB JUMPI DUP1 PUSH4 0xECBCA55D EQ PUSH2 0x7D5 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x7F3 JUMPI DUP1 PUSH4 0xFC0C546A EQ PUSH2 0x814 JUMPI JUMPDEST PUSH20 0xEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE PUSH1 0x0 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH32 0x353C2EB9E53A4A4A6D45D72082FF2E9DC829D1125618772A83EB0E7F86632C43 SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO PUSH2 0x2AD JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245534552564500000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2BB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2AD PUSH1 0x4 CALLDATALOAD ISZERO ISZERO PUSH2 0x829 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2D5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2DE PUSH2 0x871 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x303 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x318 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x87D JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP6 DUP7 MSTORE PUSH4 0xFFFFFFFF SWAP1 SWAP5 AND PUSH1 0x20 DUP7 ADD MSTORE SWAP2 ISZERO ISZERO DUP5 DUP5 ADD MSTORE ISZERO ISZERO PUSH1 0x60 DUP5 ADD MSTORE ISZERO ISZERO PUSH1 0x80 DUP4 ADD MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0xA0 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x358 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x361 PUSH2 0x918 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x381 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x38D PUSH1 0x4 CALLDATALOAD PUSH2 0x967 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3B5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2DE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x993 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3D6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3F4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x9C5 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x419 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2AD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x9E0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x43A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x361 PUSH2 0x9F4 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x44F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x361 PUSH2 0xA8E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x464 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2AD PUSH2 0xAAF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x479 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2AD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0xAC1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4A3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4AC PUSH2 0xB5C JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0xFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4CF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2AD PUSH2 0xB61 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4E4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2AD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0xDCE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x505 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4AC PUSH2 0xE10 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x51A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2DE PUSH2 0xE15 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x52F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2AD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0xE2D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x559 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x38D PUSH2 0xF41 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x56E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2AD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0xF50 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x58F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2AD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0xFF3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5B0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2AD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH4 0xFFFFFFFF PUSH1 0x24 CALLDATALOAD AND PUSH2 0x1104 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5DA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4AC PUSH2 0x1173 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5EF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2AD PUSH2 0x1182 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x604 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x38D PUSH2 0x1243 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x619 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x38D PUSH2 0x1252 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x62E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2DE PUSH2 0x1261 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x643 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4AC PUSH2 0x1275 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x658 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3F4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x127B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x682 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2AD PUSH2 0x1379 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x697 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x361 PUSH2 0x13B2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6AC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x38D PUSH2 0x13B7 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6C1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2AD PUSH2 0x13C6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6D6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x38D PUSH1 0x4 CALLDATALOAD PUSH2 0x141F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6EE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x361 PUSH2 0x1447 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x703 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x38D PUSH2 0x144C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x718 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x38D PUSH2 0x145B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x72D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2AD PUSH2 0x146A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x742 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x318 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x155F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x763 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x778 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x15A5 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x796 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x778 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x15B6 JUMP JUMPDEST PUSH2 0x778 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x44 CALLDATALOAD SWAP1 PUSH1 0x64 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x84 CALLDATALOAD AND PUSH2 0x15DF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7E1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2AD PUSH4 0xFFFFFFFF PUSH1 0x4 CALLDATALOAD AND PUSH2 0x1832 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7FF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2AD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x1927 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x820 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x38D PUSH2 0x19C4 JUMP JUMPDEST PUSH2 0x831 PUSH2 0x19D3 JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD SWAP2 ISZERO ISZERO PUSH21 0x10000000000000000000000000000000000000000 MUL PUSH21 0xFF0000000000000000000000000000000000000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH4 0xFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x88D PUSH2 0x310A JUMP JUMPDEST POP POP POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP2 MLOAD PUSH1 0xA0 DUP2 ADD DUP4 MSTORE DUP2 SLOAD DUP1 DUP3 MSTORE PUSH1 0x1 SWAP1 SWAP3 ADD SLOAD PUSH4 0xFFFFFFFF DUP2 AND SWAP5 DUP3 ADD DUP6 SWAP1 MSTORE PUSH1 0xFF PUSH5 0x100000000 DUP3 DIV DUP2 AND ISZERO ISZERO SWAP5 DUP4 ADD SWAP5 SWAP1 SWAP5 MSTORE PUSH6 0x10000000000 DUP2 DIV DUP5 AND ISZERO ISZERO PUSH1 0x60 DUP4 ADD MSTORE PUSH7 0x1000000000000 SWAP1 DIV SWAP1 SWAP3 AND ISZERO ISZERO PUSH1 0x80 SWAP1 SWAP3 ADD DUP3 SWAP1 MSTORE SWAP6 SWAP2 SWAP5 POP SWAP2 SWAP3 POP DUP3 SWAP2 SWAP1 JUMP JUMPDEST PUSH20 0xEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE PUSH1 0x0 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH32 0x353C2EB9E53A4A4A6D45D72082FF2E9DC829D1125618772A83EB0E7F86632C43 SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x7 DUP3 DUP2 SLOAD DUP2 LT ISZERO ISZERO PUSH2 0x978 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0x99F DUP2 PUSH2 0x1A23 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH4 0xFFFFFFFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x9D3 DUP6 DUP6 DUP6 PUSH2 0x127B JUMP JUMPDEST SWAP2 POP SWAP2 POP JUMPDEST SWAP4 POP SWAP4 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x9E8 PUSH2 0x19D3 JUMP JUMPDEST PUSH2 0x9F1 DUP2 PUSH2 0xF50 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 ADDRESS PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x8DA5CB5B PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xA53 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xA67 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xA7D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH2 0xAB7 PUSH2 0x19D3 JUMP JUMPDEST PUSH2 0xABF PUSH2 0x13C6 JUMP JUMPDEST JUMP JUMPDEST PUSH2 0xAC9 PUSH2 0x19D3 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x5E35359E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP6 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP3 ADD DUP6 SWAP1 MSTORE SWAP2 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP2 PUSH4 0x5E35359E SWAP2 PUSH1 0x64 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xB3F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xB53 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ DUP1 PUSH2 0xB96 JUMPI POP PUSH1 0x3 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST ISZERO ISZERO PUSH2 0xBDA JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3178 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0xC03 PUSH32 0x436F6E7472616374526567697374727900000000000000000000000000000000 PUSH2 0x1AA2 JUMP JUMPDEST PUSH1 0x2 SLOAD SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP4 AND SWAP2 AND EQ DUP1 ISZERO SWAP1 PUSH2 0xC2C JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO JUMPDEST ISZERO ISZERO PUSH2 0xC82 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245474953545259000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0xBB34534C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH32 0x436F6E7472616374526567697374727900000000000000000000000000000000 PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP2 PUSH4 0xBB34534C SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xD06 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xD1A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xD30 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ ISZERO PUSH2 0xD91 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245474953545259000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP5 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP3 DUP4 AND OR SWAP1 SWAP3 SSTORE SWAP1 SWAP2 AND SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0xDD6 PUSH2 0x19D3 JUMP JUMPDEST DUP1 PUSH2 0xDE0 DUP2 PUSH2 0x1B3A JUMP JUMPDEST POP PUSH1 0x6 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x20 DUP2 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH9 0x10000000000000000 SWAP1 DIV PUSH4 0xFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xE37 PUSH2 0x1B9B JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH2 0xE44 PUSH2 0x19D3 JUMP JUMPDEST PUSH2 0xE5B PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3158 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x1AA2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD SWAP1 SWAP2 POP PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 PUSH2 0xE98 JUMPI POP PUSH2 0xE96 PUSH2 0x9F4 JUMP JUMPDEST ISZERO JUMPDEST DUP1 PUSH2 0xEB0 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ JUMPDEST ISZERO ISZERO PUSH2 0xEF4 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3178 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0xEFF DUP5 DUP5 DUP5 PUSH2 0x1BF5 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0xF36 JUMPI PUSH2 0xF36 DUP5 PUSH2 0x1C26 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0x4 SSTORE POP POP JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH2 0xF58 PUSH2 0x19D3 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3158 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0xF70 DUP2 PUSH2 0x1D20 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xF2FDE38B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP2 PUSH4 0xF2FDE38B SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xFD7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xFEB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xFFD PUSH2 0x1B9B JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH2 0x100A PUSH2 0x19D3 JUMP JUMPDEST PUSH20 0xEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE PUSH2 0x1028 DUP2 PUSH2 0x1A23 JUMP JUMPDEST PUSH2 0x103F PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3158 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x1AA2 JUMP JUMPDEST SWAP2 POP PUSH2 0x1049 PUSH2 0x9F4 JUMP JUMPDEST ISZERO DUP1 PUSH2 0x1062 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 DUP2 AND SWAP2 AND EQ JUMPDEST ISZERO ISZERO PUSH2 0x10A6 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3178 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP1 ADDRESS BALANCE DUP1 ISZERO PUSH2 0x8FC MUL SWAP2 PUSH1 0x0 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x10DC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH2 0x10FA PUSH20 0xEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE PUSH2 0x1C26 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0x4 SSTORE POP JUMP JUMPDEST PUSH2 0x110C PUSH2 0x1275 JUMP JUMPDEST PUSH2 0xFFFF AND ISZERO PUSH2 0x1165 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F434F554E5400000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x116F DUP3 DUP3 PUSH2 0x1D76 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x117D PUSH2 0x1275 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x11D2 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3178 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND SWAP4 SWAP1 SWAP2 AND SWAP2 PUSH32 0x343765429AEA5A34B3FF6A3785A98A5ABB2597ACA87BFBB58632C173D585373A SWAP2 LOG3 PUSH1 0x1 DUP1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND OR SWAP1 SWAP2 SSTORE AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH5 0x100000000 SWAP1 DIV PUSH4 0xFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x7 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x0 SWAP1 DUP2 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 DUP2 AND SWAP2 AND EQ DUP1 ISZERO PUSH2 0x12C2 JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND JUMPDEST ISZERO PUSH2 0x12D9 JUMPI PUSH2 0x12D0 DUP4 PUSH2 0x1FC7 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x9D8 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 DUP2 AND SWAP2 AND EQ DUP1 ISZERO PUSH2 0x131B JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND JUMPDEST ISZERO PUSH2 0x1329 JUMPI PUSH2 0x12D0 DUP4 PUSH2 0x21D6 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F544F4B454E000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x1381 PUSH2 0x19D3 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x2 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x1 DUP2 JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH2 0x13CE PUSH2 0x19D3 JUMP JUMPDEST PUSH2 0x13D6 PUSH2 0x22E2 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x13ED PUSH2 0xB5C JUMP JUMPDEST PUSH2 0xFFFF AND PUSH32 0x6B08C2E2C9969E55A647A764DB9B554D64DC42F1A704DA11A6D5B129AD163F2C PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 JUMP JUMPDEST PUSH1 0x7 DUP1 SLOAD DUP3 SWAP1 DUP2 LT PUSH2 0x142D JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP1 POP DUP2 JUMP JUMPDEST PUSH1 0x1 SWAP1 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1474 PUSH2 0x19D3 JUMP JUMPDEST PUSH2 0x148B PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3158 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x1AA2 JUMP JUMPDEST PUSH1 0x5 SLOAD SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x14A5 PUSH2 0xB5C JUMP JUMPDEST PUSH2 0xFFFF AND PUSH32 0x6B08C2E2C9969E55A647A764DB9B554D64DC42F1A704DA11A6D5B129AD163F2C PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH2 0x14DE DUP2 PUSH2 0x1927 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x90F58C9600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 AND SWAP2 PUSH4 0x90F58C96 SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x153F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1553 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x9F1 PUSH2 0x1182 JUMP JUMPDEST PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD PUSH4 0xFFFFFFFF DUP2 AND SWAP1 PUSH1 0xFF PUSH5 0x100000000 DUP3 DIV DUP2 AND SWAP2 PUSH6 0x10000000000 DUP2 DIV DUP3 AND SWAP2 PUSH7 0x1000000000000 SWAP1 SWAP2 DIV AND DUP6 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x15B0 DUP3 PUSH2 0x15B6 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0x15C2 DUP2 PUSH2 0x1A23 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x15E9 PUSH2 0x1B9B JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH32 0x536F7672796E537761704E6574776F726B000000000000000000000000000000 PUSH2 0x1618 DUP2 PUSH2 0x1D20 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 DUP2 AND SWAP1 DUP8 AND EQ ISZERO PUSH2 0x167C JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F534F555243455F54415247455400000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND ISZERO DUP1 PUSH2 0x17BF JUMPI POP PUSH1 0x6 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x3AF32ABF00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP2 PUSH4 0x3AF32ABF SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x16F7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x170B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1721 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD DUP1 ISZERO PUSH2 0x17BF JUMPI POP PUSH1 0x6 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x3AF32ABF00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP2 PUSH4 0x3AF32ABF SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1792 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x17A6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x17BC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD JUMPDEST ISZERO ISZERO PUSH2 0x1815 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4E4F545F57484954454C495354454400000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x1822 DUP8 DUP8 DUP8 DUP8 DUP8 PUSH2 0x23C0 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x4 SSTORE SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x183A PUSH2 0x19D3 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH4 0xFFFFFFFF PUSH5 0x100000000 SWAP1 SWAP2 DIV DUP2 AND SWAP1 DUP3 AND GT ISZERO PUSH2 0x18A6 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F434F4E56455253494F4E5F464545000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH4 0xFFFFFFFF PUSH9 0x10000000000000000 SWAP1 SWAP4 DIV DUP4 AND DUP2 MSTORE SWAP2 DUP4 AND PUSH1 0x20 DUP4 ADD MSTORE DUP1 MLOAD PUSH32 0x81CD2FFB37DD237C0E4E2A3DE5265FCF9DEB43D3E7801E80DB9F1CCFBA7EE600 SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG1 PUSH1 0x9 DUP1 SLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP3 AND PUSH9 0x10000000000000000 MUL PUSH12 0xFFFFFFFF0000000000000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x192F PUSH2 0x19D3 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x1995 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F4F574E4552000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0xABF JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3178 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO PUSH2 0x9F1 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245534552564500000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xBB34534C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP2 PUSH4 0xBB34534C SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1B08 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1B1C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1B32 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ADDRESS EQ ISZERO PUSH2 0x9F1 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F414444524553535F49535F53454C4600000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x4 SLOAD PUSH1 0x1 EQ PUSH2 0xABF JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5245454E5452414E4359000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x1BFD PUSH2 0x19D3 JUMP JUMPDEST DUP3 PUSH2 0x1C07 DUP2 PUSH2 0x259E JUMP JUMPDEST DUP3 PUSH2 0x1C11 DUP2 PUSH2 0x259E JUMP JUMPDEST DUP4 PUSH2 0x1C1B DUP2 PUSH2 0x1B3A JUMP JUMPDEST PUSH2 0xFEB DUP7 DUP7 DUP7 PUSH2 0x25FE JUMP JUMPDEST DUP1 PUSH2 0x1C30 DUP2 PUSH2 0x1A23 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 AND PUSH20 0xEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE EQ ISZERO PUSH2 0x1C76 JUMPI PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 ADDRESS BALANCE SWAP1 SSTORE PUSH2 0x116F JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1CD7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1CEB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1D01 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE POP POP JUMP JUMPDEST PUSH2 0x1D29 DUP2 PUSH2 0x1AA2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x9F1 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3178 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1D80 PUSH2 0x19D3 JUMP JUMPDEST PUSH2 0x1D88 PUSH2 0x26B8 JUMP JUMPDEST DUP3 PUSH2 0x1D92 DUP2 PUSH2 0x259E JUMP JUMPDEST DUP4 PUSH2 0x1D9C DUP2 PUSH2 0x1B3A JUMP JUMPDEST DUP4 PUSH2 0x1DA6 DUP2 PUSH2 0x2715 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 DUP2 AND SWAP2 AND EQ DUP1 ISZERO SWAP1 PUSH2 0x1DEA JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x1E40 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245534552564500000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x9 SLOAD PUSH4 0xFFFFFFFF SWAP1 DUP2 AND PUSH3 0xF4240 SUB DUP2 AND SWAP1 DUP7 AND GT ISZERO PUSH2 0x1EAB JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F574549474854000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0xFFFF PUSH2 0x1EB6 PUSH2 0x1275 JUMP JUMPDEST PUSH2 0xFFFF AND LT PUSH2 0x1F0F JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F434F554E5400000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP2 DUP2 SSTORE PUSH1 0x1 SWAP1 DUP2 ADD DUP1 SLOAD PUSH7 0xFF000000000000 NOT PUSH4 0xFFFFFFFF DUP1 DUP9 AND PUSH4 0xFFFFFFFF NOT SWAP4 DUP5 AND OR SWAP2 SWAP1 SWAP2 AND PUSH7 0x1000000000000 OR SWAP1 SWAP3 SSTORE PUSH1 0x7 DUP1 SLOAD SWAP4 DUP5 ADD DUP2 SSTORE SWAP1 SWAP4 MSTORE PUSH32 0xA66CC928B5EDB82AF9BD49922954155AB7B0942694BEA4CE44661D9A8736C688 SWAP1 SWAP2 ADD DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 SWAP4 OR SWAP1 SWAP3 SSTORE PUSH1 0x9 DUP1 SLOAD DUP1 DUP5 AND SWAP1 SWAP5 ADD SWAP1 SWAP3 AND SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x1FD8 PUSH2 0x278A JUMP JUMPDEST PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x18160DDD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x202B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x203F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2055 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP4 POP DUP4 ISZERO ISZERO PUSH2 0x20B1 JUMPI PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH2 0x20A6 SWAP1 PUSH4 0xFFFFFFFF SWAP1 DUP2 AND SWAP1 PUSH2 0x209A SWAP1 DUP11 SWAP1 PUSH3 0xF4240 SWAP1 PUSH2 0x27E8 AND JUMP JUMPDEST SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x286C AND JUMP JUMPDEST SWAP6 POP PUSH1 0x0 SWAP5 POP PUSH2 0x21CD JUMP JUMPDEST PUSH1 0x7 DUP1 SLOAD PUSH1 0x0 SWAP1 DUP2 LT PUSH2 0x20C0 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP3 POP PUSH2 0x2100 PUSH32 0x536F7672796E53776170466F726D756C61000000000000000000000000000000 PUSH2 0x1AA2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xF3250FE2 DUP6 PUSH2 0x2118 DUP7 PUSH2 0x15B6 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 ADD SLOAD DUP2 MLOAD PUSH4 0xFFFFFFFF DUP9 DUP2 AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP3 MSTORE PUSH1 0x4 DUP3 ADD SWAP8 SWAP1 SWAP8 MSTORE PUSH1 0x24 DUP2 ADD SWAP6 SWAP1 SWAP6 MSTORE SWAP5 SWAP1 SWAP5 AND PUSH1 0x44 DUP5 ADD MSTORE PUSH1 0x64 DUP4 ADD DUP14 SWAP1 MSTORE SWAP3 MLOAD PUSH1 0x84 DUP1 DUP5 ADD SWAP5 SWAP4 SWAP2 SWAP3 SWAP2 DUP4 SWAP1 SUB ADD SWAP1 DUP3 SWAP1 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x218B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x219F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x21B5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 POP PUSH2 0x21C2 DUP3 PUSH2 0x28DA JUMP JUMPDEST SWAP1 POP DUP1 DUP3 SUB DUP2 SWAP6 POP SWAP6 POP JUMPDEST POP POP POP POP SWAP2 POP SWAP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x21E7 PUSH2 0x278A JUMP JUMPDEST PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x18160DDD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x223A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x224E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2264 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x7 DUP1 SLOAD SWAP2 SWAP6 POP SWAP1 PUSH1 0x0 SWAP1 DUP2 LT PUSH2 0x2279 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP3 POP DUP4 DUP8 EQ ISZERO PUSH2 0x22A1 JUMPI PUSH2 0x20A6 DUP4 PUSH2 0x15B6 JUMP JUMPDEST PUSH2 0x22CA PUSH32 0x536F7672796E53776170466F726D756C61000000000000000000000000000000 PUSH2 0x1AA2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x76CF0B56 DUP6 PUSH2 0x2118 DUP7 PUSH2 0x15B6 JUMP JUMPDEST PUSH2 0x22EA PUSH2 0x19D3 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x22F4 PUSH2 0x1275 JUMP JUMPDEST PUSH2 0xFFFF AND GT PUSH2 0x234D JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F434F554E5400000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x79BA5097 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x23A0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x23B4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0xABF PUSH2 0x290A JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x0 SWAP1 DUP2 SWAP1 DUP2 SWAP1 DUP2 SWAP1 DUP2 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP11 DUP2 AND SWAP2 AND EQ DUP1 ISZERO PUSH2 0x240D JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP11 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND JUMPDEST ISZERO PUSH2 0x2427 JUMPI DUP10 SWAP3 POP PUSH2 0x2420 DUP9 DUP9 DUP9 PUSH2 0x294C JUMP JUMPDEST SWAP4 POP PUSH2 0x247C JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 DUP2 AND SWAP2 AND EQ DUP1 ISZERO PUSH2 0x2469 JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP10 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND JUMPDEST ISZERO PUSH2 0x1329 JUMPI DUP9 SWAP3 POP PUSH2 0x2420 DUP9 DUP9 DUP9 PUSH2 0x2C12 JUMP JUMPDEST PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x18160DDD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x24CF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x24E3 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x24F9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP6 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH1 0x5 SLOAD SWAP4 SWAP6 POP PUSH4 0xFFFFFFFF AND SWAP4 POP SWAP2 AND PUSH32 0x77F29993CF2C084E726F7E802DA0719D6A0ADE3E204BADC7A3FFD57ECB768C24 PUSH2 0x2565 PUSH3 0xF4240 PUSH2 0x2559 DUP9 PUSH2 0x15B6 JUMP JUMPDEST SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x27E8 AND JUMP JUMPDEST PUSH2 0x2578 DUP7 PUSH4 0xFFFFFFFF DUP1 DUP9 AND SWAP1 PUSH2 0x27E8 AND JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB ADD SWAP1 LOG3 POP SWAP2 SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0x9F1 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x7472616E7366657228616464726573732C75696E743235362900000000000000 DUP2 MSTORE DUP2 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x19 ADD DUP2 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x64 SWAP1 SWAP3 ADD SWAP1 SWAP3 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE PUSH2 0x26B3 SWAP1 DUP5 SWAP1 PUSH2 0x2F97 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x26C0 PUSH2 0x9F4 JUMP JUMPDEST ISZERO PUSH2 0xABF JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xA PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F41435449564500000000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 PUSH4 0xFFFFFFFF AND GT DUP1 ISZERO PUSH2 0x2734 JUMPI POP PUSH3 0xF4240 PUSH4 0xFFFFFFFF DUP3 AND GT ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x9F1 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F574549474854000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x2792 PUSH2 0x9F4 JUMP JUMPDEST ISZERO ISZERO PUSH2 0xABF JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E4143544956450000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP4 ISZERO ISZERO PUSH2 0x27FB JUMPI PUSH1 0x0 SWAP2 POP PUSH2 0x2865 JUMP JUMPDEST POP DUP3 DUP3 MUL DUP3 DUP5 DUP3 DUP2 ISZERO ISZERO PUSH2 0x280B JUMPI INVALID JUMPDEST DIV EQ PUSH2 0x2861 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP1 SWAP2 POP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP4 GT PUSH2 0x28C6 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4449564944455F42595F5A45524F0000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP3 DUP5 DUP2 ISZERO ISZERO PUSH2 0x28D1 JUMPI INVALID JUMPDEST DIV SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x0 SWAP1 PUSH2 0x15B0 SWAP1 PUSH3 0xF4240 SWAP1 PUSH2 0x209A SWAP1 DUP6 SWAP1 PUSH9 0x10000000000000000 SWAP1 DIV PUSH4 0xFFFFFFFF SWAP1 DUP2 AND SWAP1 PUSH2 0x27E8 AND JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x116F JUMPI PUSH2 0x2944 PUSH1 0x7 DUP3 DUP2 SLOAD DUP2 LT ISZERO ISZERO PUSH2 0x292A JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x1C26 JUMP JUMPDEST PUSH1 0x1 ADD PUSH2 0x2910 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x295B DUP8 PUSH2 0x1FC7 JUMP JUMPDEST SWAP1 SWAP4 POP SWAP2 POP DUP3 ISZERO ISZERO PUSH2 0x29B7 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5A45524F5F5441524745545F414D4F554E5400000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x7 DUP1 SLOAD PUSH1 0x0 SWAP1 DUP2 LT PUSH2 0x29C6 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP1 POP PUSH20 0xEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE DUP2 EQ ISZERO PUSH2 0x2A55 JUMPI CALLVALUE DUP8 EQ PUSH2 0x2A50 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4554485F414D4F554E545F4D49534D41544348000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x2B5D JUMP JUMPDEST CALLVALUE ISZERO DUP1 ISZERO PUSH2 0x2B07 JUMPI POP DUP7 PUSH2 0x2B04 PUSH2 0x2A6B DUP4 PUSH2 0x15B6 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2ACC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2AE0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2AF6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x3025 AND JUMP JUMPDEST LT ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x2B5D JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F414D4F554E540000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x2B66 DUP2 PUSH2 0x1C26 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x867904B400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH1 0x24 DUP3 ADD DUP8 SWAP1 MSTORE SWAP2 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP2 PUSH4 0x867904B4 SWAP2 PUSH1 0x44 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2BD4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2BE8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x5 SLOAD PUSH2 0x2C07 SWAP3 POP DUP4 SWAP2 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP9 DUP11 DUP8 DUP8 PUSH2 0x3085 JUMP JUMPDEST POP SWAP1 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP3 DUP4 SWAP3 DUP4 SWAP3 DUP4 SWAP3 DUP4 SWAP3 DUP4 SWAP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2C84 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2C98 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2CAE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD DUP10 GT ISZERO PUSH2 0x2D07 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F414D4F554E540000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x2D10 DUP10 PUSH2 0x21D6 JUMP JUMPDEST SWAP1 SWAP6 POP SWAP4 POP DUP5 ISZERO ISZERO PUSH2 0x2D6C JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5A45524F5F5441524745545F414D4F554E5400000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x7 DUP1 SLOAD PUSH1 0x0 SWAP1 DUP2 LT PUSH2 0x2D7B JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 SWAP1 SWAP2 ADD SLOAD PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x18160DDD00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND SWAP9 POP SWAP2 SWAP1 SWAP3 AND SWAP4 PUSH4 0x18160DDD SWAP4 PUSH1 0x4 DUP1 DUP6 ADD SWAP5 SWAP2 SWAP4 SWAP3 SWAP2 DUP4 SWAP1 SUB ADD SWAP1 DUP3 SWAP1 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2DED JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2E01 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2E17 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 POP PUSH2 0x2E24 DUP4 PUSH2 0x15B6 JUMP JUMPDEST SWAP1 POP DUP1 DUP6 LT DUP1 PUSH2 0x2E3D JUMPI POP DUP1 DUP6 EQ DUP1 ISZERO PUSH2 0x2E3D JUMPI POP DUP2 DUP10 EQ JUMPDEST ISZERO ISZERO PUSH2 0x2E45 JUMPI INVALID JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xA24835D100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP13 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP2 PUSH4 0xA24835D1 SWAP2 PUSH1 0x44 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2EB1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2EC5 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x2EF2 SWAP2 POP DUP7 PUSH4 0xFFFFFFFF PUSH2 0x3025 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE PUSH20 0xEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE EQ ISZERO PUSH2 0x2F65 JUMPI PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 AND SWAP1 DUP7 ISZERO PUSH2 0x8FC MUL SWAP1 DUP8 SWAP1 PUSH1 0x0 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x2F5F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH2 0x2F70 JUMP JUMPDEST PUSH2 0x2F70 DUP4 DUP9 DUP8 PUSH2 0x25FE JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH2 0x2F8A SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP5 DUP11 DUP13 DUP10 DUP10 PUSH2 0x3085 JUMP JUMPDEST POP SWAP3 SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x2F9F PUSH2 0x3138 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE POP SWAP1 POP PUSH1 0x20 DUP2 DUP4 MLOAD PUSH1 0x20 DUP6 ADD PUSH1 0x0 DUP8 GAS CALL DUP1 ISZERO ISZERO PUSH2 0x2FCC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD ISZERO ISZERO PUSH2 0x26B3 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5452414E534645525F4641494C454400000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 DUP4 LT ISZERO PUSH2 0x307F JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F554E444552464C4F5700000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP SWAP1 SUB SWAP1 JUMP JUMPDEST PUSH32 0x8000000000000000000000000000000000000000000000000000000000000000 DUP2 LT PUSH2 0x30AE JUMPI INVALID JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP5 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 SWAP1 MSTORE DUP1 DUP3 ADD DUP4 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP8 AND SWAP3 DUP9 DUP3 AND SWAP3 SWAP2 DUP11 AND SWAP2 PUSH32 0x276856B36CBC45526A0BA64F44611557A2A8B68662C5388E9FE6D72E86E1C8CB SWAP2 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG4 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xA0 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE SWAP2 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x60 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 SWAP1 PUSH1 0x20 DUP3 MUL DUP1 CODESIZE DUP4 CODECOPY POP SWAP2 SWAP3 SWAP2 POP POP JUMP STOP MSTORE8 PUSH16 0x7672796E53776170436F6E7665727465 PUSH19 0x557067726164657200000000004552525F4143 NUMBER GASLIMIT MSTORE8 MSTORE8 0x5f DIFFICULTY GASLIMIT 0x4e 0x49 GASLIMIT DIFFICULTY STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 0xc3 SWAP16 SWAP8 EXTCODECOPY 0xbc SHR CREATE PUSH22 0x8A64156854331E6829D0C51A16E297AAE88602BE0C95 0xbc SWAP12 STOP 0x29 LOG1 PUSH6 0x627A7A723058 KECCAK256 0x4f 0xe6 NUMBER 0x24 SMOD 0xd2 RETURNDATASIZE 0x24 DIFFICULTY PUSH9 0x87A09BF05471A3BCB6 0xc0 0xf8 0x24 TIMESTAMP 0xaa PUSH23 0xDDF3FB876C185E00290000000000000000000000000000 ", + "sourceMap": "258:1024:22:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;950:329;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;950:329:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;458:81;;8:9:-1;5:2;;;30:1;27;20:12;5:2;458:81:22;;;;;;;;;;;;;;;;;;;;;;;950:329;1072:10;1095:20;1155:7;1165:9;1176:17;1118:76;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1118:76:22;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;1205:39:22;;;;;;1233:10;1205:39;;;;;;1095:99;;-1:-1:-1;1205:27:22;;;;;;:39;;;;;-1:-1:-1;;1205:39:22;;;;;;;;-1:-1:-1;1205:27:22;:39;;;5:2:-1;;;;30:1;27;20:12;5:2;1205:39:22;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;1262:9:22;;950:329;-1:-1:-1;;;;;;;950:329:22:o;458:81::-;504:6;458:81;:::o;258:1024::-;;;;;;;;;;:::o" + }, + "methodIdentifiers": { + "converterType()": "3e8ff43f", + "createConverter(address,address,uint32)": "11413958" + } + }, + "userdoc": { + "methods": {} + } + } + }, + "solidity/contracts/converter/types/liquidity-pool-v1/LiquidityPoolV1Converter.sol": { + "LiquidityPoolV1Converter": { + "abi": [ + { + "constant": false, + "inputs": [ + { + "name": "_onlyOwnerCanUpdateRegistry", + "type": "bool" + } + ], + "name": "restrictRegistryUpdate", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "reserveRatio", + "outputs": [ + { + "name": "", + "type": "uint32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_address", + "type": "address" + } + ], + "name": "connectors", + "outputs": [ + { + "name": "", + "type": "uint256" + }, + { + "name": "", + "type": "uint32" + }, + { + "name": "", + "type": "bool" + }, + { + "name": "", + "type": "bool" + }, + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "hasETHReserve", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_index", + "type": "uint256" + } + ], + "name": "connectorTokens", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_reserveToken", + "type": "address" + } + ], + "name": "reserveWeight", + "outputs": [ + { + "name": "", + "type": "uint32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_sourceToken", + "type": "address" + }, + { + "name": "_targetToken", + "type": "address" + }, + { + "name": "_amount", + "type": "uint256" + } + ], + "name": "getReturn", + "outputs": [ + { + "name": "", + "type": "uint256" + }, + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_newOwner", + "type": "address" + } + ], + "name": "transferTokenOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "isActive", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "onlyOwnerCanUpdateRegistry", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "acceptTokenOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_token", + "type": "address" + }, + { + "name": "_to", + "type": "address" + }, + { + "name": "_amount", + "type": "uint256" + } + ], + "name": "withdrawFromAnchor", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "converterType", + "outputs": [ + { + "name": "", + "type": "uint16" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_amount", + "type": "uint256" + } + ], + "name": "liquidate", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "updateRegistry", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_whitelist", + "type": "address" + } + ], + "name": "setConversionWhitelist", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "version", + "outputs": [ + { + "name": "", + "type": "uint16" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "conversionFee", + "outputs": [ + { + "name": "", + "type": "uint32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_token", + "type": "address" + }, + { + "name": "_to", + "type": "address" + }, + { + "name": "_amount", + "type": "uint256" + } + ], + "name": "withdrawTokens", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "prevRegistry", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_newOwner", + "type": "address" + } + ], + "name": "transferAnchorOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_to", + "type": "address" + } + ], + "name": "withdrawETH", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_token", + "type": "address" + }, + { + "name": "_weight", + "type": "uint32" + } + ], + "name": "addReserve", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_x", + "type": "uint256" + } + ], + "name": "decimalLength", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "connectorTokenCount", + "outputs": [ + { + "name": "", + "type": "uint16" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "acceptOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "registry", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_reserveTokens", + "type": "address[]" + }, + { + "name": "_reserveAmounts", + "type": "uint256[]" + }, + { + "name": "_minReturn", + "type": "uint256" + } + ], + "name": "addLiquidity", + "outputs": [], + "payable": true, + "stateMutability": "payable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "owner", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "maxConversionFee", + "outputs": [ + { + "name": "", + "type": "uint32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "reserveTokenCount", + "outputs": [ + { + "name": "", + "type": "uint16" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_values", + "type": "uint256[]" + } + ], + "name": "geometricMean", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_sourceToken", + "type": "address" + }, + { + "name": "_targetToken", + "type": "address" + }, + { + "name": "_amount", + "type": "uint256" + } + ], + "name": "targetAmountAndFee", + "outputs": [ + { + "name": "", + "type": "uint256" + }, + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_amount", + "type": "uint256" + }, + { + "name": "_reserveTokens", + "type": "address[]" + }, + { + "name": "_reserveMinReturnAmounts", + "type": "uint256[]" + } + ], + "name": "removeLiquidity", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "restoreRegistry", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_n", + "type": "uint256" + }, + { + "name": "_d", + "type": "uint256" + } + ], + "name": "roundDiv", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "conversionsEnabled", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "conversionWhitelist", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_amount", + "type": "uint256" + } + ], + "name": "fund", + "outputs": [], + "payable": true, + "stateMutability": "payable", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "acceptAnchorOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "", + "type": "uint256" + } + ], + "name": "reserveTokens", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "isV28OrHigher", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "anchor", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "newOwner", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "upgrade", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "", + "type": "address" + } + ], + "name": "reserves", + "outputs": [ + { + "name": "balance", + "type": "uint256" + }, + { + "name": "weight", + "type": "uint32" + }, + { + "name": "deprecated1", + "type": "bool" + }, + { + "name": "deprecated2", + "type": "bool" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_connectorToken", + "type": "address" + } + ], + "name": "getConnectorBalance", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_reserveToken", + "type": "address" + } + ], + "name": "reserveBalance", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_sourceToken", + "type": "address" + }, + { + "name": "_targetToken", + "type": "address" + }, + { + "name": "_amount", + "type": "uint256" + }, + { + "name": "_trader", + "type": "address" + }, + { + "name": "_beneficiary", + "type": "address" + } + ], + "name": "convert", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": true, + "stateMutability": "payable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_conversionFee", + "type": "uint32" + } + ], + "name": "setConversionFee", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "token", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "name": "_token", + "type": "address" + }, + { + "name": "_registry", + "type": "address" + }, + { + "name": "_maxConversionFee", + "type": "uint32" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "payable": true, + "stateMutability": "payable", + "type": "fallback" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "_connectorToken", + "type": "address" + }, + { + "indexed": false, + "name": "_tokenSupply", + "type": "uint256" + }, + { + "indexed": false, + "name": "_connectorBalance", + "type": "uint256" + }, + { + "indexed": false, + "name": "_connectorWeight", + "type": "uint32" + } + ], + "name": "PriceDataUpdate", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "_provider", + "type": "address" + }, + { + "indexed": true, + "name": "_reserveToken", + "type": "address" + }, + { + "indexed": false, + "name": "_amount", + "type": "uint256" + }, + { + "indexed": false, + "name": "_newBalance", + "type": "uint256" + }, + { + "indexed": false, + "name": "_newSupply", + "type": "uint256" + } + ], + "name": "LiquidityAdded", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "_provider", + "type": "address" + }, + { + "indexed": true, + "name": "_reserveToken", + "type": "address" + }, + { + "indexed": false, + "name": "_amount", + "type": "uint256" + }, + { + "indexed": false, + "name": "_newBalance", + "type": "uint256" + }, + { + "indexed": false, + "name": "_newSupply", + "type": "uint256" + } + ], + "name": "LiquidityRemoved", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "_type", + "type": "uint16" + }, + { + "indexed": true, + "name": "_anchor", + "type": "address" + }, + { + "indexed": true, + "name": "_activated", + "type": "bool" + } + ], + "name": "Activation", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "_fromToken", + "type": "address" + }, + { + "indexed": true, + "name": "_toToken", + "type": "address" + }, + { + "indexed": true, + "name": "_trader", + "type": "address" + }, + { + "indexed": false, + "name": "_amount", + "type": "uint256" + }, + { + "indexed": false, + "name": "_return", + "type": "uint256" + }, + { + "indexed": false, + "name": "_conversionFee", + "type": "int256" + } + ], + "name": "Conversion", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "_token1", + "type": "address" + }, + { + "indexed": true, + "name": "_token2", + "type": "address" + }, + { + "indexed": false, + "name": "_rateN", + "type": "uint256" + }, + { + "indexed": false, + "name": "_rateD", + "type": "uint256" + } + ], + "name": "TokenRateUpdate", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "_prevFee", + "type": "uint32" + }, + { + "indexed": false, + "name": "_newFee", + "type": "uint32" + } + ], + "name": "ConversionFeeUpdate", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "_prevOwner", + "type": "address" + }, + { + "indexed": true, + "name": "_newOwner", + "type": "address" + } + ], + "name": "OwnerUpdate", + "type": "event" + } + ], + "devdoc": { + "methods": { + "acceptAnchorOwnership()": { + "details": "accepts ownership of the anchor after an ownership transfer\r also activates the converter\r can only be called by the contract owner\r note that prior to version 28, you should use 'acceptTokenOwnership' instead\r" + }, + "acceptOwnership()": { + "details": "used by a new owner to accept an ownership transfer" + }, + "acceptTokenOwnership()": { + "details": "deprecated, backward compatibility" + }, + "addLiquidity(address[],uint256[],uint256)": { + "details": "increases the pool's liquidity and mints new shares in the pool to the caller\r note that prior to version 28, you should use 'fund' instead\r ", + "params": { + "_minReturn": "token minimum return-amount\r", + "_reserveAmounts": "amount of each reserve token\r", + "_reserveTokens": "address of each reserve token\r" + } + }, + "addReserve(address,uint32)": { + "details": "defines a new reserve token for the converter can only be called by the owner while the converter is inactive", + "params": { + "_token": "address of the reserve token", + "_weight": "reserve weight, represented in ppm, 1-1000000" + } + }, + "connectorTokenCount()": { + "details": "deprecated, backward compatibility" + }, + "connectorTokens(uint256)": { + "details": "deprecated, backward compatibility" + }, + "connectors(address)": { + "details": "deprecated, backward compatibility" + }, + "convert(address,address,uint256,address,address)": { + "details": "converts a specific amount of source tokens to target tokens can only be called by the SovrynSwap network contract", + "params": { + "_amount": "amount of tokens to convert (in units of the source token)", + "_beneficiary": "wallet to receive the conversion result", + "_sourceToken": "source ERC20 token", + "_targetToken": "target ERC20 token", + "_trader": "address of the caller who executed the conversion" + }, + "return": "amount of tokens received (in units of the target token)" + }, + "converterType()": { + "details": "returns the converter type\r ", + "return": "see the converter types in the the main contract doc\r" + }, + "decimalLength(uint256)": { + "details": "calculates the number of decimal digits in a given value\r ", + "params": { + "_x": "value (assumed positive)\r" + }, + "return": "the number of decimal digits in the given value\r" + }, + "fund(uint256)": { + "details": "increases the pool's liquidity and mints new shares in the pool to the caller\r for example, if the caller increases the supply by 10%,\r then it will cost an amount equal to 10% of each reserve token balance\r note that starting from version 28, you should use 'addLiquidity' instead\r ", + "params": { + "_amount": "amount to increase the supply by (in the pool token)\r" + } + }, + "geometricMean(uint256[])": { + "details": "calculates the average number of decimal digits in a given list of values\r ", + "params": { + "_values": "list of values (each of which assumed positive)\r" + }, + "return": "the average number of decimal digits in the given list of values\r" + }, + "getConnectorBalance(address)": { + "details": "deprecated, backward compatibility" + }, + "getReturn(address,address,uint256)": { + "details": "deprecated, backward compatibility" + }, + "hasETHReserve()": { + "details": "checks whether or not the converter has an ETH reserve", + "return": "true if the converter has an ETH reserve, false otherwise" + }, + "isActive()": { + "details": "returns true if the converter is active, false otherwise", + "return": "true if the converter is active, false otherwise" + }, + "isV28OrHigher()": { + "details": "checks whether or not the converter version is 28 or higher", + "return": "true, since the converter version is 28 or higher" + }, + "liquidate(uint256)": { + "details": "decreases the pool's liquidity and burns the caller's shares in the pool\r for example, if the holder sells 10% of the supply,\r then they will receive 10% of each reserve token balance in return\r note that starting from version 28, you should use 'removeLiquidity' instead\r ", + "params": { + "_amount": "amount to liquidate (in the pool token)\r" + } + }, + "removeLiquidity(uint256,address[],uint256[])": { + "details": "decreases the pool's liquidity and burns the caller's shares in the pool\r note that prior to version 28, you should use 'liquidate' instead\r ", + "params": { + "_amount": "token amount\r", + "_reserveMinReturnAmounts": "minimum return-amount of each reserve token\r", + "_reserveTokens": "address of each reserve token\r" + } + }, + "reserveBalance(address)": { + "details": "returns the reserve's balance note that prior to version 17, you should use 'getConnectorBalance' instead", + "params": { + "_reserveToken": "reserve token contract address" + }, + "return": "reserve balance" + }, + "reserveTokenCount()": { + "details": "returns the number of reserve tokens defined note that prior to version 17, you should use 'connectorTokenCount' instead", + "return": "number of reserve tokens" + }, + "reserveWeight(address)": { + "details": "returns the reserve's weight added in version 28", + "params": { + "_reserveToken": "reserve token contract address" + }, + "return": "reserve weight" + }, + "restoreRegistry()": { + "details": "restores the previous contract-registry" + }, + "restrictRegistryUpdate(bool)": { + "details": "restricts the permission to update the contract-registry", + "params": { + "_onlyOwnerCanUpdateRegistry": "indicates whether or not permission is restricted to owner only" + } + }, + "roundDiv(uint256,uint256)": { + "details": "calculates the nearest integer to a given quotient\r ", + "params": { + "_d": "quotient denominator\r", + "_n": "quotient numerator\r" + }, + "return": "the nearest integer to the given quotient\r" + }, + "setConversionFee(uint32)": { + "details": "updates the current conversion fee can only be called by the contract owner", + "params": { + "_conversionFee": "new conversion fee, represented in ppm" + } + }, + "setConversionWhitelist(address)": { + "details": "allows the owner to update & enable the conversion whitelist contract address when set, only addresses that are whitelisted are actually allowed to use the converter note that the whitelist check is actually done by the SovrynSwapNetwork contract", + "params": { + "_whitelist": "address of a whitelist contract" + } + }, + "targetAmountAndFee(address,address,uint256)": { + "details": "returns the expected target amount of converting one reserve to another along with the fee\r ", + "params": { + "_amount": "amount of tokens received from the user\r ", + "_sourceToken": "contract address of the source reserve token\r", + "_targetToken": "contract address of the target reserve token\r" + }, + "return": "expected target amount\rexpected fee\r" + }, + "token()": { + "details": "deprecated since version 28, backward compatibility - use only for earlier versions" + }, + "transferAnchorOwnership(address)": { + "details": "transfers the anchor ownership the new owner needs to accept the transfer can only be called by the converter upgrder while the upgrader is the owner note that prior to version 28, you should use 'transferAnchorOwnership' instead", + "params": { + "_newOwner": "new token owner" + } + }, + "transferOwnership(address)": { + "details": "allows transferring the contract ownership the new owner still needs to accept the transfer can only be called by the contract owner", + "params": { + "_newOwner": "new contract owner" + } + }, + "transferTokenOwnership(address)": { + "details": "deprecated, backward compatibility" + }, + "updateRegistry()": { + "details": "updates to the new contract-registry" + }, + "upgrade()": { + "details": "upgrades the converter to the latest version can only be called by the owner note that the owner needs to call acceptOwnership on the new converter after the upgrade" + }, + "withdrawETH(address)": { + "details": "withdraws ether can only be called by the owner if the converter is inactive or by upgrader contract can only be called after the upgrader contract has accepted the ownership of this contract can only be called if the converter has an ETH reserve", + "params": { + "_to": "address to send the ETH to" + } + }, + "withdrawFromAnchor(address,address,uint256)": { + "details": "withdraws tokens held by the anchor and sends them to an account can only be called by the owner", + "params": { + "_amount": "amount to withdraw", + "_to": "account to receive the new amount", + "_token": "ERC20 token contract address" + } + }, + "withdrawTokens(address,address,uint256)": { + "details": "withdraws tokens held by the converter and sends them to an account can only be called by the owner note that reserve tokens can only be withdrawn by the owner while the converter is inactive unless the owner is the converter upgrader contract", + "params": { + "_amount": "amount to withdraw", + "_to": "account to receive the new amount", + "_token": "ERC20 token contract address" + } + } + } + }, + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "608060405260016004557fc0829421c1d260bd3cb3e0f06cfe2d52db2ce3150000000000000000000000006009553480156200003a57600080fd5b5060405160608062004b6583398101604090815281516020830151919092015160008054600160a060020a031916331790558282828282828180620000888164010000000062000135810204565b5060028054600160a060020a03909216600160a060020a031992831681179091556003805490921617905582620000c88164010000000062000135810204565b81620000dd81640100000000620001b0810204565b505060058054600160a060020a03909416600160a060020a031990941693909317909255506009805463ffffffff9092166401000000000267ffffffff00000000199092169190911790555062000229945050505050565b600160a060020a0381161515620001ad57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b50565b620f424063ffffffff82161115620001ad57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f4552525f494e56414c49445f434f4e56455253494f4e5f464545000000000000604482015290519081900360640190fd5b61492c80620002396000396000f3006080604052600436106102585763ffffffff60e060020a600035041663024c7ec781146102e45780630c7d5cd8146102fe5780630e53aae91461032c57806312c2aca41461038157806319b64015146103aa5780631cfab290146103de5780631e1401f8146103ff57806321e6b53d1461044257806322f3e2d4146104635780632fe8a6ad1461047857806338a5e0161461048d578063395900d4146104a25780633e8ff43f146104cc578063415f1240146104f857806349d10b64146105105780634af80f0e1461052557806354fd4d5014610546578063579cd3ca1461055b5780635e35359e1461057057806361cd756e1461059a57806367b6d57c146105af578063690d8320146105d05780636a49d2c4146105f15780636aa5332c1461061b57806371f52bf31461064557806379ba50971461065a5780637b1039991461066f5780637d8916bd146106845780638da5cb5b1461070757806394c275ad1461071c5780639b99a8e214610731578063a60e772414610746578063af94b8d81461079b578063b127c0a5146107c5578063b4a176d314610858578063bbb7e5d81461086d578063bf75455814610888578063c45d3d921461089d578063ca1d209d146108b2578063cdc91c69146108bd578063d031370b146108d2578063d260529c146108ea578063d3fb73b4146108ff578063d4ee1d9014610914578063d55ec69714610929578063d66bd5241461093e578063d89595121461095f578063dc8de37914610980578063e8dc12ff146109a1578063ecbca55d146109cb578063f2fde38b146109e9578063fc0c546a14610a0a575b6000805160206148a183398151915260005260086020527f353c2eb9e53a4a4a6d45d72082ff2e9dc829d1125618772a83eb0e7f86632c43546601000000000000900460ff1615156102e2576040805160e560020a62461bcd0281526020600482015260136024820152600080516020614841833981519152604482015290519081900360640190fd5b005b3480156102f057600080fd5b506102e26004351515610a1f565b34801561030a57600080fd5b50610313610a67565b6040805163ffffffff9092168252519081900360200190f35b34801561033857600080fd5b5061034d600160a060020a0360043516610a73565b6040805195865263ffffffff9094166020860152911515848401521515606084015215156080830152519081900360a00190f35b34801561038d57600080fd5b50610396610b0e565b604080519115158252519081900360200190f35b3480156103b657600080fd5b506103c2600435610b57565b60408051600160a060020a039092168252519081900360200190f35b3480156103ea57600080fd5b50610313600160a060020a0360043516610b83565b34801561040b57600080fd5b50610429600160a060020a0360043581169060243516604435610bb5565b6040805192835260208301919091528051918290030190f35b34801561044e57600080fd5b506102e2600160a060020a0360043516610bcf565b34801561046f57600080fd5b50610396610be3565b34801561048457600080fd5b50610396610c7d565b34801561049957600080fd5b506102e2610c9e565b3480156104ae57600080fd5b506102e2600160a060020a0360043581169060243516604435610cb0565b3480156104d857600080fd5b506104e1610d4b565b6040805161ffff9092168252519081900360200190f35b34801561050457600080fd5b506102e2600435610d50565b34801561051c57600080fd5b506102e2610f94565b34801561053157600080fd5b506102e2600160a060020a0360043516611201565b34801561055257600080fd5b506104e1611243565b34801561056757600080fd5b50610313611248565b34801561057c57600080fd5b506102e2600160a060020a0360043581169060243516604435611260565b3480156105a657600080fd5b506103c2611369565b3480156105bb57600080fd5b506102e2600160a060020a0360043516611378565b3480156105dc57600080fd5b506102e2600160a060020a036004351661141b565b3480156105fd57600080fd5b506102e2600160a060020a036004351663ffffffff60243516611520565b34801561062757600080fd5b5061063360043561175f565b60408051918252519081900360200190f35b34801561065157600080fd5b506104e1611784565b34801561066657600080fd5b506102e2611793565b34801561067b57600080fd5b506103c2611854565b604080516020600480358082013583810280860185019096528085526102e295369593946024949385019291829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a99890198929750908201955093508392508501908490808284375094975050933594506118639350505050565b34801561071357600080fd5b506103c2611b62565b34801561072857600080fd5b50610313611b71565b34801561073d57600080fd5b506104e1611b85565b34801561075257600080fd5b506040805160206004803580820135838102808601850190965280855261063395369593946024949385019291829185019084908082843750949750611b8b9650505050505050565b3480156107a757600080fd5b50610429600160a060020a0360043581169060243516604435611be1565b3480156107d157600080fd5b506040805160206004602480358281013584810280870186019097528086526102e296843596369660449591949091019291829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750949750611d869650505050505050565b34801561086457600080fd5b506102e2611eba565b34801561087957600080fd5b50610633600435602435611ef3565b34801561089457600080fd5b50610396611f0d565b3480156108a957600080fd5b506103c2611f12565b6102e2600435611f21565b3480156108c957600080fd5b506102e261242e565b3480156108de57600080fd5b506103c2600435612487565b3480156108f657600080fd5b50610396610d4b565b34801561090b57600080fd5b506103c26124af565b34801561092057600080fd5b506103c26124be565b34801561093557600080fd5b506102e26124cd565b34801561094a57600080fd5b5061034d600160a060020a03600435166125c2565b34801561096b57600080fd5b50610633600160a060020a0360043516612608565b34801561098c57600080fd5b50610633600160a060020a0360043516612619565b610633600160a060020a036004358116906024358116906044359060643581169060843516612642565b3480156109d757600080fd5b506102e263ffffffff60043516612895565b3480156109f557600080fd5b506102e2600160a060020a036004351661298a565b348015610a1657600080fd5b506103c2612a27565b610a27612a36565b60038054911515740100000000000000000000000000000000000000000274ff000000000000000000000000000000000000000019909216919091179055565b60095463ffffffff1681565b6000806000806000610a836147f3565b50505050600160a060020a03929092166000908152600860209081526040808320815160a081018352815480825260019092015463ffffffff811694820185905260ff64010000000082048116151594830194909452650100000000008104841615156060830152660100000000000090049092161515608090920182905295919450919250829190565b6000805160206148a183398151915260005260086020527f353c2eb9e53a4a4a6d45d72082ff2e9dc829d1125618772a83eb0e7f86632c43546601000000000000900460ff1690565b6000600782815481101515610b6857fe5b600091825260209091200154600160a060020a031692915050565b600081610b8f81612a86565b5050600160a060020a031660009081526008602052604090206001015463ffffffff1690565b600080610bc3858585611be1565b91509150935093915050565b610bd7612a36565b610be081611378565b50565b600030600160a060020a0316600560009054906101000a9004600160a060020a0316600160a060020a0316638da5cb5b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610c4257600080fd5b505af1158015610c56573d6000803e3d6000fd5b505050506040513d6020811015610c6c57600080fd5b5051600160a060020a031614905090565b60035474010000000000000000000000000000000000000000900460ff1681565b610ca6612a36565b610cae61242e565b565b610cb8612a36565b600554604080517f5e35359e000000000000000000000000000000000000000000000000000000008152600160a060020a03868116600483015285811660248301526044820185905291519190921691635e35359e91606480830192600092919082900301818387803b158015610d2e57600080fd5b505af1158015610d42573d6000803e3d6000fd5b50505050505050565b600190565b600060606000610d5e612af3565b600260045560008411610dbb576040805160e560020a62461bcd02815260206004820152600f60248201527f4552525f5a45524f5f414d4f554e540000000000000000000000000000000000604482015290519081900360640190fd5b600560009054906101000a9004600160a060020a0316600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610e0e57600080fd5b505af1158015610e22573d6000803e3d6000fd5b505050506040513d6020811015610e3857600080fd5b5051600554604080517fa24835d1000000000000000000000000000000000000000000000000000000008152336004820152602481018890529051929550600160a060020a039091169163a24835d19160448082019260009290919082900301818387803b158015610ea957600080fd5b505af1158015610ebd573d6000803e3d6000fd5b50505050600780549050604051908082528060200260200182016040528015610ef0578160200160208202803883390190505b509150600090505b8151811015610f235760018282815181101515610f1157fe5b60209081029091010152600101610ef8565b610f896007805480602002602001604051908101604052809291908181526020018280548015610f7c57602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311610f5e575b5050505050838587612b4d565b505060016004555050565b60008054600160a060020a0316331480610fc9575060035474010000000000000000000000000000000000000000900460ff16155b151561100d576040805160e560020a62461bcd02815260206004820152601160248201526000805160206148e1833981519152604482015290519081900360640190fd5b6110367f436f6e7472616374526567697374727900000000000000000000000000000000612e12565b600254909150600160a060020a0380831691161480159061105f5750600160a060020a03811615155b15156110b5576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e56414c49445f5245474953545259000000000000000000000000604482015290519081900360640190fd5b604080517fbb34534c0000000000000000000000000000000000000000000000000000000081527f436f6e747261637452656769737472790000000000000000000000000000000060048201529051600091600160a060020a0384169163bb34534c9160248082019260209290919082900301818787803b15801561113957600080fd5b505af115801561114d573d6000803e3d6000fd5b505050506040513d602081101561116357600080fd5b5051600160a060020a031614156111c4576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e56414c49445f5245474953545259000000000000000000000000604482015290519081900360640190fd5b6002805460038054600160a060020a0380841673ffffffffffffffffffffffffffffffffffffffff19928316179092559091169216919091179055565b611209612a36565b8061121381612eaa565b506006805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b602081565b60095468010000000000000000900463ffffffff1681565b600061126a612af3565b6002600455611277612a36565b61128e600080516020614881833981519152612e12565b600160a060020a0385166000908152600860205260409020600101549091506601000000000000900460ff1615806112cb57506112c9610be3565b155b806112e35750600054600160a060020a038281169116145b1515611327576040805160e560020a62461bcd02815260206004820152601160248201526000805160206148e1833981519152604482015290519081900360640190fd5b611332848484612f0b565b600160a060020a0384166000908152600860205260409020600101546601000000000000900460ff1615610f8957610f8984612f3c565b600354600160a060020a031681565b611380612a36565b60008051602061488183398151915261139881613031565b600554604080517ff2fde38b000000000000000000000000000000000000000000000000000000008152600160a060020a0385811660048301529151919092169163f2fde38b91602480830192600092919082900301818387803b1580156113ff57600080fd5b505af1158015611413573d6000803e3d6000fd5b505050505050565b6000611425612af3565b6002600455611432612a36565b6000805160206148a183398151915261144a81612a86565b611461600080516020614881833981519152612e12565b915061146b610be3565b15806114845750600054600160a060020a038381169116145b15156114c8576040805160e560020a62461bcd02815260206004820152601160248201526000805160206148e1833981519152604482015290519081900360640190fd5b604051600160a060020a03841690303180156108fc02916000818181858888f193505050501580156114fe573d6000803e3d6000fd5b506115166000805160206148a1833981519152612f3c565b5050600160045550565b600061152a612a36565b611532613087565b8261153c816130e4565b8361154681612eaa565b8361155081613144565b600554600160a060020a038781169116148015906115945750600160a060020a0386166000908152600860205260409020600101546601000000000000900460ff16155b15156115d8576040805160e560020a62461bcd0281526020600482015260136024820152600080516020614841833981519152604482015290519081900360640190fd5b60095463ffffffff908116620f42400381169086161115611643576040805160e560020a62461bcd02815260206004820152601a60248201527f4552525f494e56414c49445f524553455256455f574549474854000000000000604482015290519081900360640190fd5b61ffff61164e611b85565b61ffff16106116a7576040805160e560020a62461bcd02815260206004820152601960248201527f4552525f494e56414c49445f524553455256455f434f554e5400000000000000604482015290519081900360640190fd5b505050600160a060020a0390921660008181526008602052604081208181556001908101805466ff0000000000001963ffffffff80881663ffffffff1993841617919091166601000000000000179092556007805493840181559093527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688909101805473ffffffffffffffffffffffffffffffffffffffff191690931790925560098054808416909401909216921691909117905550565b600080825b600081111561177d5760019190910190600a9004611764565b5092915050565b600061178e611b85565b905090565b600154600160a060020a031633146117e3576040805160e560020a62461bcd02815260206004820152601160248201526000805160206148e1833981519152604482015290519081900360640190fd5b60015460008054604051600160a060020a0393841693909116917f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91a3600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b600254600160a060020a031681565b6000806000611870612af3565b600260045561187d6131b9565b611888868686613217565b600092505b85518310156119465785516000805160206148a1833981519152908790859081106118b457fe5b90602001906020020151600160a060020a0316141561193b573485848151811015156118dc57fe5b602090810290910101511461193b576040805160e560020a62461bcd02815260206004820152601760248201527f4552525f4554485f414d4f554e545f4d49534d41544348000000000000000000604482015290519081900360640190fd5b60019092019161188d565b60003411156119eb576000805160206148a183398151915260005260086020527f353c2eb9e53a4a4a6d45d72082ff2e9dc829d1125618772a83eb0e7f86632c43546601000000000000900460ff1615156119eb576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f4e4f5f4554485f524553455256450000000000000000000000000000604482015290519081900360640190fd5b600560009054906101000a9004600160a060020a0316600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015611a3e57600080fd5b505af1158015611a52573d6000803e3d6000fd5b505050506040513d6020811015611a6857600080fd5b50519150611a778686846134d3565b905083811015611ad1576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f52455455524e5f544f4f5f4c4f570000000000000000000000000000604482015290519081900360640190fd5b600554604080517f867904b4000000000000000000000000000000000000000000000000000000008152336004820152602481018490529051600160a060020a039092169163867904b49160448082019260009290919082900301818387803b158015611b3d57600080fd5b505af1158015611b51573d6000803e3d6000fd5b505060016004555050505050505050565b600054600160a060020a031681565b600954640100000000900463ffffffff1681565b60075490565b80516000908190815b81811015611bc857611bbc8582815181101515611bad57fe5b9060200190602002015161175f565b90920191600101611b94565b6001611bd48484611ef3565b03600a0a95945050505050565b600080600080611bef6131b9565b86611bf981612a86565b86611c0381612a86565b600160a060020a038981169089161415611c67576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f53414d455f534f555243455f54415247455400000000000000000000604482015290519081900360640190fd5b611c7e6000805160206148c1833981519152612e12565b600160a060020a03166394491fab611c958b612619565b600160a060020a038c1660009081526008602052604090206001015463ffffffff16611cc08c612619565b600160a060020a038d16600090815260086020908152604080832060010154815163ffffffff89811660e060020a028252600482019890985295871660248701526044860194909452949092166064840152608483018d9052925160a48084019492939192918390030190829087803b158015611d3c57600080fd5b505af1158015611d50573d6000803e3d6000fd5b505050506040513d6020811015611d6657600080fd5b50519350611d7384613502565b9384900399939850929650505050505050565b6000611d90612af3565b6002600455611d9d6131b9565b611da8838386613217565b600560009054906101000a9004600160a060020a0316600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015611dfb57600080fd5b505af1158015611e0f573d6000803e3d6000fd5b505050506040513d6020811015611e2557600080fd5b5051600554604080517fa24835d1000000000000000000000000000000000000000000000000000000008152336004820152602481018890529051929350600160a060020a039091169163a24835d19160448082019260009290919082900301818387803b158015611e9657600080fd5b505af1158015611eaa573d6000803e3d6000fd5b50505050610f8983838387612b4d565b611ec2612a36565b6003546002805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055565b600081600281048401811515611f0557fe5b049392505050565b600181565b600654600160a060020a031681565b600080600080600080600080600080611f38612af3565b6002600455611f4561353e565b6000805160206148a1833981519152600052600860205260008051602061486183398151915254611f7c903463ffffffff61358016565b6000805160206148a183398151915260009081526008602090815260008051602061486183398151915292909255600554604080517f18160ddd0000000000000000000000000000000000000000000000000000000081529051600160a060020a03909216936318160ddd9360048084019492938390030190829087803b15801561200657600080fd5b505af115801561201a573d6000803e3d6000fd5b505050506040513d602081101561203057600080fd5b5051995061204b6000805160206148c1833981519152612e12565b6007549099509750600096505b8787101561239857600780548890811061206e57fe5b9060005260206000200160009054906101000a9004600160a060020a031695506008600087600160a060020a0316600160a060020a0316815260200190815260200160002060000154945088600160a060020a031663ebbb21588b87600960009054906101000a900463ffffffff168f6040518563ffffffff1660e060020a028152600401808581526020018481526020018363ffffffff1663ffffffff168152602001828152602001945050505050602060405180830381600087803b15801561213857600080fd5b505af115801561214c573d6000803e3d6000fd5b505050506040513d602081101561216257600080fd5b50519350600160a060020a0386166000805160206148a183398151915214156122c457833411156121c25760405133903486900380156108fc02916000818181858888f193505050501580156121bc573d6000803e3d6000fd5b506122bf565b833410156122bf573415612220576040805160e560020a62461bcd02815260206004820152601560248201527f4552525f494e56414c49445f4554485f56414c55450000000000000000000000604482015290519081900360640190fd5b600954612248906c010000000000000000000000009004600160a060020a03163330876135e0565b6009600c9054906101000a9004600160a060020a0316600160a060020a0316632e1a7d4d856040518263ffffffff1660e060020a02815260040180828152602001915050600060405180830381600087803b1580156122a657600080fd5b505af11580156122ba573d6000803e3d6000fd5b505050505b6122d0565b6122d0863330876135e0565b6122e0858563ffffffff6136c816565b600160a060020a0387166000908152600860205260409020819055925061230d8a8c63ffffffff6136c816565b60408051868152602081018690528082018390529051919350600160a060020a0388169133917f4a1a2a6176e9646d9e3157f7c2ab3c499f18337c0b0828cfb28e0a61de4a11f7919081900360600190a350600160a060020a03851660009081526008602052604090206001015463ffffffff1661238d82878584613725565b600190960195612058565b600554604080517f867904b4000000000000000000000000000000000000000000000000000000008152336004820152602481018e90529051600160a060020a039092169163867904b49160448082019260009290919082900301818387803b15801561240457600080fd5b505af1158015612418573d6000803e3d6000fd5b5050600160045550505050505050505050505050565b612436612a36565b61243e613794565b600554600190600160a060020a0316612455610d4b565b61ffff167f6b08c2e2c9969e55a647a764db9b554d64dc42f1a704da11a6d5b129ad163f2c60405160405180910390a4565b600780548290811061249557fe5b600091825260209091200154600160a060020a0316905081565b600554600160a060020a031681565b600154600160a060020a031681565b60006124d7612a36565b6124ee600080516020614881833981519152612e12565b600554909150600090600160a060020a0316612508610d4b565b61ffff167f6b08c2e2c9969e55a647a764db9b554d64dc42f1a704da11a6d5b129ad163f2c60405160405180910390a46125418161298a565b604080517f90f58c96000000000000000000000000000000000000000000000000000000008152602060048201529051600160a060020a038316916390f58c9691602480830192600092919082900301818387803b1580156125a257600080fd5b505af11580156125b6573d6000803e3d6000fd5b50505050610be0611793565b6008602052600090815260409020805460019091015463ffffffff81169060ff640100000000820481169165010000000000810482169166010000000000009091041685565b600061261382612619565b92915050565b60008161262581612a86565b5050600160a060020a031660009081526008602052604090205490565b600061264c612af3565b60026004557f536f7672796e537761704e6574776f726b00000000000000000000000000000061267b81613031565b600160a060020a0387811690871614156126df576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f53414d455f534f555243455f54415247455400000000000000000000604482015290519081900360640190fd5b600654600160a060020a031615806128225750600654604080517f3af32abf000000000000000000000000000000000000000000000000000000008152600160a060020a03878116600483015291519190921691633af32abf9160248083019260209291908290030181600087803b15801561275a57600080fd5b505af115801561276e573d6000803e3d6000fd5b505050506040513d602081101561278457600080fd5b505180156128225750600654604080517f3af32abf000000000000000000000000000000000000000000000000000000008152600160a060020a03868116600483015291519190921691633af32abf9160248083019260209291908290030181600087803b1580156127f557600080fd5b505af1158015612809573d6000803e3d6000fd5b505050506040513d602081101561281f57600080fd5b50515b1515612878576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f4e4f545f57484954454c495354454400000000000000000000000000604482015290519081900360640190fd5b61288587878787876137ff565b6001600455979650505050505050565b61289d612a36565b60095463ffffffff64010000000090910481169082161115612909576040805160e560020a62461bcd02815260206004820152601a60248201527f4552525f494e56414c49445f434f4e56455253494f4e5f464545000000000000604482015290519081900360640190fd5b6009546040805163ffffffff6801000000000000000090930483168152918316602083015280517f81cd2ffb37dd237c0e4e2a3de5265fcf9deb43d3e7801e80db9f1ccfba7ee6009281900390910190a16009805463ffffffff90921668010000000000000000026bffffffff000000000000000019909216919091179055565b612992612a36565b600054600160a060020a03828116911614156129f8576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f53414d455f4f574e4552000000000000000000000000000000000000604482015290519081900360640190fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600554600160a060020a031690565b600054600160a060020a03163314610cae576040805160e560020a62461bcd02815260206004820152601160248201526000805160206148e1833981519152604482015290519081900360640190fd5b600160a060020a0381166000908152600860205260409020600101546601000000000000900460ff161515610be0576040805160e560020a62461bcd0281526020600482015260136024820152600080516020614841833981519152604482015290519081900360640190fd5b600454600114610cae576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f5245454e5452414e4359000000000000000000000000000000000000604482015290519081900360640190fd5b600080600080600080600080612b6161353e565b612b786000805160206148c1833981519152612e12565b9750612b8a8a8a63ffffffff61358016565b9650600095505b8b51861015612e04578b86815181101515612ba857fe5b9060200190602002015194506008600086600160a060020a0316600160a060020a0316815260200190815260200160002060000154935087600160a060020a0316638074590a8b86600960009054906101000a900463ffffffff168d6040518563ffffffff1660e060020a028152600401808581526020018481526020018363ffffffff1663ffffffff168152602001828152602001945050505050602060405180830381600087803b158015612c5e57600080fd5b505af1158015612c72573d6000803e3d6000fd5b505050506040513d6020811015612c8857600080fd5b50518b519093508b9087908110612c9b57fe5b60209081029091010151831015612cfc576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f5a45524f5f5441524745545f414d4f554e5400000000000000000000604482015290519081900360640190fd5b612d0c848463ffffffff61358016565b600160a060020a03861660008181526008602052604090208290559092506000805160206148a18339815191521415612d7257604051339084156108fc029085906000818181858888f19350505050158015612d6c573d6000803e3d6000fd5b50612d7d565b612d7d853385613ad2565b60408051848152602081018490528082018990529051600160a060020a0387169133917fbc7d19d505c7ec4db83f3b51f19fb98c4c8a99922e7839d1ee608dfbee29501b9181900360600190a350600160a060020a03841660009081526008602052604090206001015463ffffffff16612df987868484613725565b600190950194612b91565b505050505050505050505050565b600254604080517fbb34534c000000000000000000000000000000000000000000000000000000008152600481018490529051600092600160a060020a03169163bb34534c91602480830192602092919082900301818787803b158015612e7857600080fd5b505af1158015612e8c573d6000803e3d6000fd5b505050506040513d6020811015612ea257600080fd5b505192915050565b600160a060020a038116301415610be0576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f414444524553535f49535f53454c4600000000000000000000000000604482015290519081900360640190fd5b612f13612a36565b82612f1d816130e4565b82612f27816130e4565b83612f3181612eaa565b611413868686613ad2565b80612f4681612a86565b600160a060020a0382166000805160206148a18339815191521415612f8657600160a060020a03821660009081526008602052604090203031905561302d565b604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a038416916370a082319160248083019260209291908290030181600087803b158015612fe757600080fd5b505af1158015612ffb573d6000803e3d6000fd5b505050506040513d602081101561301157600080fd5b5051600160a060020a0383166000908152600860205260409020555b5050565b61303a81612e12565b600160a060020a03163314610be0576040805160e560020a62461bcd02815260206004820152601160248201526000805160206148e1833981519152604482015290519081900360640190fd5b61308f610be3565b15610cae576040805160e560020a62461bcd02815260206004820152600a60248201527f4552525f41435449564500000000000000000000000000000000000000000000604482015290519081900360640190fd5b600160a060020a0381161515610be0576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b60008163ffffffff161180156131635750620f424063ffffffff821611155b1515610be0576040805160e560020a62461bcd02815260206004820152601a60248201527f4552525f494e56414c49445f524553455256455f574549474854000000000000604482015290519081900360640190fd5b6131c1610be3565b1515610cae576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f494e4143544956450000000000000000000000000000000000000000604482015290519081900360640190fd5b600754835160009182918114613265576040805160e560020a62461bcd0281526020600482015260136024820152600080516020614841833981519152604482015290519081900360640190fd5b845181146132bd576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f494e56414c49445f414d4f554e540000000000000000000000000000604482015290519081900360640190fd5b600092505b8083101561347b576008600087858151811015156132dc57fe5b6020908102909101810151600160a060020a031682528101919091526040016000206001015460ff6601000000000000909104161515613354576040805160e560020a62461bcd0281526020600482015260136024820152600080516020614841833981519152604482015290519081900360640190fd5b600091505b808210156133bc57858281518110151561336f57fe5b90602001906020020151600160a060020a031660078481548110151561339157fe5b600091825260209091200154600160a060020a031614156133b1576133bc565b600190910190613359565b808210613401576040805160e560020a62461bcd0281526020600482015260136024820152600080516020614841833981519152604482015290519081900360640190fd5b6000858481518110151561341157fe5b6020908102909101015111613470576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f494e56414c49445f414d4f554e540000000000000000000000000000604482015290519081900360640190fd5b6001909201916132c2565b60008411611413576040805160e560020a62461bcd02815260206004820152600f60248201527f4552525f5a45524f5f414d4f554e540000000000000000000000000000000000604482015290519081900360640190fd5b60008115156134ed576134e68484613b89565b90506134fb565b6134f8848484613d90565b90505b9392505050565b60095460009061261390620f42409061353290859068010000000000000000900463ffffffff9081169061415016565b9063ffffffff6141c916565b60075460005b8181101561302d5761357860078281548110151561355e57fe5b600091825260209091200154600160a060020a0316612f3c565b600101613544565b6000818310156135da576040805160e560020a62461bcd02815260206004820152600d60248201527f4552525f554e444552464c4f5700000000000000000000000000000000000000604482015290519081900360640190fd5b50900390565b604080517f7472616e7366657246726f6d28616464726573732c616464726573732c75696e81527f74323536290000000000000000000000000000000000000000000000000000006020808301919091528251918290036025018220600160a060020a038088166024850152861660448401526064808401869052845180850390910181526084909301909352810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19909316929092179091526136c2908590614237565b50505050565b6000828201838110156134fb576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b600554600160a060020a0380851691167f77f29993cf2c084e726f7e802da0719d6a0ade3e204badc7a3ffd57ecb768c2461376385620f4240614150565b6137768863ffffffff8088169061415016565b6040805192835260208301919091528051918290030190a350505050565b600161379e611b85565b61ffff16116137f7576040805160e560020a62461bcd02815260206004820152601960248201527f4552525f494e56414c49445f524553455256455f434f554e5400000000000000604482015290519081900360640190fd5b610cae6142c5565b600080600080613810898989611be1565b909350915082151561386c576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f5a45524f5f5441524745545f414d4f554e5400000000000000000000604482015290519081900360640190fd5b61387588612619565b905080831061388057fe5b600160a060020a0389166000805160206148a183398151915214156138fb573487146138f6576040805160e560020a62461bcd02815260206004820152601760248201527f4552525f4554485f414d4f554e545f4d49534d41544348000000000000000000604482015290519081900360640190fd5b613a03565b341580156139ad5750866139aa6139118b612619565b604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a038e16916370a082319160248083019260209291908290030181600087803b15801561397257600080fd5b505af1158015613986573d6000803e3d6000fd5b505050506040513d602081101561399c57600080fd5b50519063ffffffff61358016565b10155b1515613a03576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f494e56414c49445f414d4f554e540000000000000000000000000000604482015290519081900360640190fd5b613a0c89612f3c565b600160a060020a038816600090815260086020526040902054613a35908463ffffffff61358016565b600160a060020a0389166000818152600860205260409020919091556000805160206148a18339815191521415613aa257604051600160a060020a0386169084156108fc029085906000818181858888f19350505050158015613a9c573d6000803e3d6000fd5b50613aad565b613aad888685613ad2565b613abb8989888a87876143a3565b613ac58989614428565b5090979650505050505050565b604080517f7472616e7366657228616464726573732c75696e74323536290000000000000081528151908190036019018120600160a060020a038516602483015260448083018590528351808403909101815260649092019092526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1990931692909217909152613b84908490614237565b505050565b600080600080613b9885611b8b565b9250600091505b8551821015613d865785516000805160206148a183398151915290879084908110613bc657fe5b60209081029091010151600160a060020a031614613c1857613c188683815181101515613bef57fe5b9060200190602002015133308886815181101515613c0957fe5b906020019060200201516135e0565b8482815181101515613c2657fe5b90602001906020020151600860008885815181101515613c4257fe5b6020908102909101810151600160a060020a03168252810191909152604001600020558551869083908110613c7357fe5b90602001906020020151600160a060020a031633600160a060020a03167f4a1a2a6176e9646d9e3157f7c2ab3c499f18337c0b0828cfb28e0a61de4a11f78785815181101515613cbf57fe5b906020019060200201518886815181101515613cd757fe5b60209081029091018101516040805193845291830152818101889052519081900360600190a3600860008784815181101515613d0f57fe5b6020908102909101810151600160a060020a0316825281019190915260400160002060010154865163ffffffff9091169150613d7b908490889085908110613d5357fe5b906020019060200201518785815181101515613d6b57fe5b9060200190602002015184613725565b600190910190613b9f565b5090949350505050565b600080600080600080600080600080613da761353e565b6000805160206148a1833981519152600052600860205260008051602061486183398151915254613dde903463ffffffff61358016565b6000805160206148a1833981519152600052600860205260008051602061486183398151915255613e1c6000805160206148c1833981519152612e12565b9850613e2a898c8f8f614636565b9750613e3c8b8963ffffffff6136c816565b9650600095505b8c5186101561413f578c86815181101515613e5a57fe5b9060200190602002015194506008600086600160a060020a0316600160a060020a0316815260200190815260200160002060000154935088600160a060020a031663ebbb21588c86600960009054906101000a900463ffffffff168c6040518563ffffffff1660e060020a028152600401808581526020018481526020018363ffffffff1663ffffffff168152602001828152602001945050505050602060405180830381600087803b158015613f1057600080fd5b505af1158015613f24573d6000803e3d6000fd5b505050506040513d6020811015613f3a57600080fd5b5051925060008311613f96576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f5a45524f5f5441524745545f414d4f554e5400000000000000000000604482015290519081900360640190fd5b8b86815181101515613fa457fe5b60209081029091010151831115613fb757fe5b600160a060020a0385166000805160206148a183398151915214613fe657613fe1853330866135e0565b614059565b828c87815181101515613ff557fe5b9060200190602002015111156140595733600160a060020a03166108fc848e8981518110151561402157fe5b90602001906020020151039081150290604051600060405180830381858888f19350505050158015614057573d6000803e3d6000fd5b505b614069848463ffffffff6136c816565b600160a060020a03861660008181526008602090815260409182902084905581518781529081018490528082018b90529051929450909133917f4a1a2a6176e9646d9e3157f7c2ab3c499f18337c0b0828cfb28e0a61de4a11f7919081900360600190a3600860008e888151811015156140df57fe5b6020908102909101810151600160a060020a03168252810191909152604001600020600101548d5163ffffffff90911691506141349088908f908990811061412357fe5b906020019060200201518484613725565b600190950194613e43565b50959b9a5050505050505050505050565b600080831515614163576000915061177d565b5082820282848281151561417357fe5b04146134fb576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b600080808311614223576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f4449564944455f42595f5a45524f0000000000000000000000000000604482015290519081900360640190fd5b828481151561422e57fe5b04949350505050565b61423f614821565b602060405190810160405280600181525090506020818351602085016000875af180151561426c57600080fd5b5080511515613b84576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f5452414e534645525f4641494c454400000000000000000000000000604482015290519081900360640190fd5b6142cd612a36565b60006142d7611b85565b61ffff1611614330576040805160e560020a62461bcd02815260206004820152601960248201527f4552525f494e56414c49445f524553455256455f434f554e5400000000000000604482015290519081900360640190fd5b600560009054906101000a9004600160a060020a0316600160a060020a03166379ba50976040518163ffffffff1660e060020a028152600401600060405180830381600087803b15801561438357600080fd5b505af1158015614397573d6000803e3d6000fd5b50505050610cae61353e565b7f800000000000000000000000000000000000000000000000000000000000000081106143cc57fe5b60408051848152602081018490528082018390529051600160a060020a038087169288821692918a16917f276856b36cbc45526a0ba64f44611557a2a8b68662c5388e9fe6d72e86e1c8cb9181900360600190a4505050505050565b6000806000806000806000600560009054906101000a9004600160a060020a0316600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561448657600080fd5b505af115801561449a573d6000803e3d6000fd5b505050506040513d60208110156144b057600080fd5b505196506144bd89612619565b95506144c888612619565b600160a060020a03808b16600090815260086020526040808220600190810154938d1683529120015491965063ffffffff90811695509081169350614511908690869061415016565b91506145268663ffffffff8086169061415016565b60408051848152602081018390528151929350600160a060020a03808c1693908d16927f77f29993cf2c084e726f7e802da0719d6a0ade3e204badc7a3ffd57ecb768c24928290030190a361457d878a8887613725565b61458987898786613725565b604080518881526020810188905263ffffffff8616818301529051600160a060020a038b16917f8a6a7f53b3c8fa1dc4b83e3f1be668c1b251ff8d44cdcb83eb3acec3fec6a788919081900360600190a2604080518881526020810187905263ffffffff8516818301529051600160a060020a038a16917f8a6a7f53b3c8fa1dc4b83e3f1be668c1b251ff8d44cdcb83eb3acec3fec6a788919081900360600190a2505050505050505050565b60008060015b84518110156146f9576146a160086000878481518110151561465a57fe5b6020908102909101810151600160a060020a0316825281019190915260400160002054855186908590811061468b57fe5b602090810290910101519063ffffffff61415016565b6146e76008600088868151811015156146b657fe5b6020908102909101810151600160a060020a0316825281019190915260400160002054865187908590811061468b57fe5b10156146f1578091505b60010161463c565b86600160a060020a0316632f55bdb58760086000898781518110151561471b57fe5b6020908102909101810151600160a060020a0316825281019190915260400160002054600954885163ffffffff9091169089908890811061475857fe5b906020019060200201516040518563ffffffff1660e060020a028152600401808581526020018481526020018363ffffffff1663ffffffff168152602001828152602001945050505050602060405180830381600087803b1580156147bc57600080fd5b505af11580156147d0573d6000803e3d6000fd5b505050506040513d60208110156147e657600080fd5b5051979650505050505050565b6040805160a08101825260008082526020820181905291810182905260608101829052608081019190915290565b602060405190810160405280600190602082028038833950919291505056004552525f494e56414c49445f5245534552564500000000000000000000000000353c2eb9e53a4a4a6d45d72082ff2e9dc829d1125618772a83eb0e7f86632c42536f7672796e53776170436f6e76657274657255706772616465720000000000000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee536f7672796e53776170466f726d756c610000000000000000000000000000004552525f4143434553535f44454e494544000000000000000000000000000000a165627a7a72305820324b4364d6a1792677c2fd82e313b62b9cc957d58949fe9823a7cc610a1a0c050029", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x1 PUSH1 0x4 SSTORE PUSH32 0xC0829421C1D260BD3CB3E0F06CFE2D52DB2CE315000000000000000000000000 PUSH1 0x9 SSTORE CALLVALUE DUP1 ISZERO PUSH3 0x3A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH1 0x60 DUP1 PUSH3 0x4B65 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 SWAP1 DUP2 MSTORE DUP2 MLOAD PUSH1 0x20 DUP4 ADD MLOAD SWAP2 SWAP1 SWAP3 ADD MLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND CALLER OR SWAP1 SSTORE DUP3 DUP3 DUP3 DUP3 DUP3 DUP3 DUP2 DUP1 PUSH3 0x88 DUP2 PUSH5 0x100000000 PUSH3 0x135 DUP2 MUL DIV JUMP JUMPDEST POP PUSH1 0x2 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT SWAP3 DUP4 AND DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x3 DUP1 SLOAD SWAP1 SWAP3 AND OR SWAP1 SSTORE DUP3 PUSH3 0xC8 DUP2 PUSH5 0x100000000 PUSH3 0x135 DUP2 MUL DIV JUMP JUMPDEST DUP2 PUSH3 0xDD DUP2 PUSH5 0x100000000 PUSH3 0x1B0 DUP2 MUL DIV JUMP JUMPDEST POP POP PUSH1 0x5 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP5 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 OR SWAP1 SWAP3 SSTORE POP PUSH1 0x9 DUP1 SLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP3 AND PUSH5 0x100000000 MUL PUSH8 0xFFFFFFFF00000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE POP PUSH3 0x229 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH3 0x1AD JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH3 0xF4240 PUSH4 0xFFFFFFFF DUP3 AND GT ISZERO PUSH3 0x1AD JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F434F4E56455253494F4E5F464545000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x492C DUP1 PUSH3 0x239 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x258 JUMPI PUSH4 0xFFFFFFFF PUSH1 0xE0 PUSH1 0x2 EXP PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x24C7EC7 DUP2 EQ PUSH2 0x2E4 JUMPI DUP1 PUSH4 0xC7D5CD8 EQ PUSH2 0x2FE JUMPI DUP1 PUSH4 0xE53AAE9 EQ PUSH2 0x32C JUMPI DUP1 PUSH4 0x12C2ACA4 EQ PUSH2 0x381 JUMPI DUP1 PUSH4 0x19B64015 EQ PUSH2 0x3AA JUMPI DUP1 PUSH4 0x1CFAB290 EQ PUSH2 0x3DE JUMPI DUP1 PUSH4 0x1E1401F8 EQ PUSH2 0x3FF JUMPI DUP1 PUSH4 0x21E6B53D EQ PUSH2 0x442 JUMPI DUP1 PUSH4 0x22F3E2D4 EQ PUSH2 0x463 JUMPI DUP1 PUSH4 0x2FE8A6AD EQ PUSH2 0x478 JUMPI DUP1 PUSH4 0x38A5E016 EQ PUSH2 0x48D JUMPI DUP1 PUSH4 0x395900D4 EQ PUSH2 0x4A2 JUMPI DUP1 PUSH4 0x3E8FF43F EQ PUSH2 0x4CC JUMPI DUP1 PUSH4 0x415F1240 EQ PUSH2 0x4F8 JUMPI DUP1 PUSH4 0x49D10B64 EQ PUSH2 0x510 JUMPI DUP1 PUSH4 0x4AF80F0E EQ PUSH2 0x525 JUMPI DUP1 PUSH4 0x54FD4D50 EQ PUSH2 0x546 JUMPI DUP1 PUSH4 0x579CD3CA EQ PUSH2 0x55B JUMPI DUP1 PUSH4 0x5E35359E EQ PUSH2 0x570 JUMPI DUP1 PUSH4 0x61CD756E EQ PUSH2 0x59A JUMPI DUP1 PUSH4 0x67B6D57C EQ PUSH2 0x5AF JUMPI DUP1 PUSH4 0x690D8320 EQ PUSH2 0x5D0 JUMPI DUP1 PUSH4 0x6A49D2C4 EQ PUSH2 0x5F1 JUMPI DUP1 PUSH4 0x6AA5332C EQ PUSH2 0x61B JUMPI DUP1 PUSH4 0x71F52BF3 EQ PUSH2 0x645 JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x65A JUMPI DUP1 PUSH4 0x7B103999 EQ PUSH2 0x66F JUMPI DUP1 PUSH4 0x7D8916BD EQ PUSH2 0x684 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x707 JUMPI DUP1 PUSH4 0x94C275AD EQ PUSH2 0x71C JUMPI DUP1 PUSH4 0x9B99A8E2 EQ PUSH2 0x731 JUMPI DUP1 PUSH4 0xA60E7724 EQ PUSH2 0x746 JUMPI DUP1 PUSH4 0xAF94B8D8 EQ PUSH2 0x79B JUMPI DUP1 PUSH4 0xB127C0A5 EQ PUSH2 0x7C5 JUMPI DUP1 PUSH4 0xB4A176D3 EQ PUSH2 0x858 JUMPI DUP1 PUSH4 0xBBB7E5D8 EQ PUSH2 0x86D JUMPI DUP1 PUSH4 0xBF754558 EQ PUSH2 0x888 JUMPI DUP1 PUSH4 0xC45D3D92 EQ PUSH2 0x89D JUMPI DUP1 PUSH4 0xCA1D209D EQ PUSH2 0x8B2 JUMPI DUP1 PUSH4 0xCDC91C69 EQ PUSH2 0x8BD JUMPI DUP1 PUSH4 0xD031370B EQ PUSH2 0x8D2 JUMPI DUP1 PUSH4 0xD260529C EQ PUSH2 0x8EA JUMPI DUP1 PUSH4 0xD3FB73B4 EQ PUSH2 0x8FF JUMPI DUP1 PUSH4 0xD4EE1D90 EQ PUSH2 0x914 JUMPI DUP1 PUSH4 0xD55EC697 EQ PUSH2 0x929 JUMPI DUP1 PUSH4 0xD66BD524 EQ PUSH2 0x93E JUMPI DUP1 PUSH4 0xD8959512 EQ PUSH2 0x95F JUMPI DUP1 PUSH4 0xDC8DE379 EQ PUSH2 0x980 JUMPI DUP1 PUSH4 0xE8DC12FF EQ PUSH2 0x9A1 JUMPI DUP1 PUSH4 0xECBCA55D EQ PUSH2 0x9CB JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x9E9 JUMPI DUP1 PUSH4 0xFC0C546A EQ PUSH2 0xA0A JUMPI JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x0 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH32 0x353C2EB9E53A4A4A6D45D72082FF2E9DC829D1125618772A83EB0E7F86632C43 SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO PUSH2 0x2E2 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4841 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2F0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E2 PUSH1 0x4 CALLDATALOAD ISZERO ISZERO PUSH2 0xA1F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x30A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x313 PUSH2 0xA67 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x338 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x34D PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0xA73 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP6 DUP7 MSTORE PUSH4 0xFFFFFFFF SWAP1 SWAP5 AND PUSH1 0x20 DUP7 ADD MSTORE SWAP2 ISZERO ISZERO DUP5 DUP5 ADD MSTORE ISZERO ISZERO PUSH1 0x60 DUP5 ADD MSTORE ISZERO ISZERO PUSH1 0x80 DUP4 ADD MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0xA0 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x38D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x396 PUSH2 0xB0E JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3B6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3C2 PUSH1 0x4 CALLDATALOAD PUSH2 0xB57 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x313 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0xB83 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x40B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x429 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0xBB5 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x44E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0xBCF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x46F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x396 PUSH2 0xBE3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x484 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x396 PUSH2 0xC7D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x499 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E2 PUSH2 0xC9E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4AE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0xCB0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4D8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4E1 PUSH2 0xD4B JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0xFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x504 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E2 PUSH1 0x4 CALLDATALOAD PUSH2 0xD50 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x51C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E2 PUSH2 0xF94 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x531 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x1201 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x552 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4E1 PUSH2 0x1243 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x567 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x313 PUSH2 0x1248 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x57C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x1260 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5A6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3C2 PUSH2 0x1369 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5BB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x1378 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5DC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x141B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5FD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH4 0xFFFFFFFF PUSH1 0x24 CALLDATALOAD AND PUSH2 0x1520 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x627 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x633 PUSH1 0x4 CALLDATALOAD PUSH2 0x175F JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x651 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4E1 PUSH2 0x1784 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x666 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E2 PUSH2 0x1793 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x67B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3C2 PUSH2 0x1854 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x2E2 SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP POP PUSH1 0x40 DUP1 MLOAD DUP8 CALLDATALOAD DUP10 ADD DUP1 CALLDATALOAD PUSH1 0x20 DUP2 DUP2 MUL DUP5 DUP2 ADD DUP3 ADD SWAP1 SWAP6 MSTORE DUP2 DUP5 MSTORE SWAP9 SWAP12 SWAP11 SWAP10 DUP10 ADD SWAP9 SWAP3 SWAP8 POP SWAP1 DUP3 ADD SWAP6 POP SWAP4 POP DUP4 SWAP3 POP DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP POP SWAP4 CALLDATALOAD SWAP5 POP PUSH2 0x1863 SWAP4 POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x713 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3C2 PUSH2 0x1B62 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x728 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x313 PUSH2 0x1B71 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x73D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4E1 PUSH2 0x1B85 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x752 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x633 SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP PUSH2 0x1B8B SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7A7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x429 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x1BE1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7D1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 PUSH1 0x24 DUP1 CALLDATALOAD DUP3 DUP2 ADD CALLDATALOAD DUP5 DUP2 MUL DUP1 DUP8 ADD DUP7 ADD SWAP1 SWAP8 MSTORE DUP1 DUP7 MSTORE PUSH2 0x2E2 SWAP7 DUP5 CALLDATALOAD SWAP7 CALLDATASIZE SWAP7 PUSH1 0x44 SWAP6 SWAP2 SWAP5 SWAP1 SWAP2 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP POP PUSH1 0x40 DUP1 MLOAD DUP8 CALLDATALOAD DUP10 ADD DUP1 CALLDATALOAD PUSH1 0x20 DUP2 DUP2 MUL DUP5 DUP2 ADD DUP3 ADD SWAP1 SWAP6 MSTORE DUP2 DUP5 MSTORE SWAP9 SWAP12 SWAP11 SWAP10 DUP10 ADD SWAP9 SWAP3 SWAP8 POP SWAP1 DUP3 ADD SWAP6 POP SWAP4 POP DUP4 SWAP3 POP DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP PUSH2 0x1D86 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x864 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E2 PUSH2 0x1EBA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x879 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x633 PUSH1 0x4 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH2 0x1EF3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x894 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x396 PUSH2 0x1F0D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8A9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3C2 PUSH2 0x1F12 JUMP JUMPDEST PUSH2 0x2E2 PUSH1 0x4 CALLDATALOAD PUSH2 0x1F21 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8C9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E2 PUSH2 0x242E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8DE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3C2 PUSH1 0x4 CALLDATALOAD PUSH2 0x2487 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8F6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x396 PUSH2 0xD4B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x90B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3C2 PUSH2 0x24AF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x920 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3C2 PUSH2 0x24BE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x935 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E2 PUSH2 0x24CD JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x94A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x34D PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x25C2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x96B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x633 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x2608 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x98C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x633 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x2619 JUMP JUMPDEST PUSH2 0x633 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x44 CALLDATALOAD SWAP1 PUSH1 0x64 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x84 CALLDATALOAD AND PUSH2 0x2642 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9D7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E2 PUSH4 0xFFFFFFFF PUSH1 0x4 CALLDATALOAD AND PUSH2 0x2895 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x298A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA16 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3C2 PUSH2 0x2A27 JUMP JUMPDEST PUSH2 0xA27 PUSH2 0x2A36 JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD SWAP2 ISZERO ISZERO PUSH21 0x10000000000000000000000000000000000000000 MUL PUSH21 0xFF0000000000000000000000000000000000000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH4 0xFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0xA83 PUSH2 0x47F3 JUMP JUMPDEST POP POP POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP2 MLOAD PUSH1 0xA0 DUP2 ADD DUP4 MSTORE DUP2 SLOAD DUP1 DUP3 MSTORE PUSH1 0x1 SWAP1 SWAP3 ADD SLOAD PUSH4 0xFFFFFFFF DUP2 AND SWAP5 DUP3 ADD DUP6 SWAP1 MSTORE PUSH1 0xFF PUSH5 0x100000000 DUP3 DIV DUP2 AND ISZERO ISZERO SWAP5 DUP4 ADD SWAP5 SWAP1 SWAP5 MSTORE PUSH6 0x10000000000 DUP2 DIV DUP5 AND ISZERO ISZERO PUSH1 0x60 DUP4 ADD MSTORE PUSH7 0x1000000000000 SWAP1 DIV SWAP1 SWAP3 AND ISZERO ISZERO PUSH1 0x80 SWAP1 SWAP3 ADD DUP3 SWAP1 MSTORE SWAP6 SWAP2 SWAP5 POP SWAP2 SWAP3 POP DUP3 SWAP2 SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x0 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH32 0x353C2EB9E53A4A4A6D45D72082FF2E9DC829D1125618772A83EB0E7F86632C43 SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x7 DUP3 DUP2 SLOAD DUP2 LT ISZERO ISZERO PUSH2 0xB68 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0xB8F DUP2 PUSH2 0x2A86 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH4 0xFFFFFFFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xBC3 DUP6 DUP6 DUP6 PUSH2 0x1BE1 JUMP JUMPDEST SWAP2 POP SWAP2 POP SWAP4 POP SWAP4 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xBD7 PUSH2 0x2A36 JUMP JUMPDEST PUSH2 0xBE0 DUP2 PUSH2 0x1378 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 ADDRESS PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x8DA5CB5B PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC42 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xC56 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xC6C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH2 0xCA6 PUSH2 0x2A36 JUMP JUMPDEST PUSH2 0xCAE PUSH2 0x242E JUMP JUMPDEST JUMP JUMPDEST PUSH2 0xCB8 PUSH2 0x2A36 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x5E35359E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP6 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP3 ADD DUP6 SWAP1 MSTORE SWAP2 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP2 PUSH4 0x5E35359E SWAP2 PUSH1 0x64 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xD2E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xD42 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 PUSH1 0x0 PUSH2 0xD5E PUSH2 0x2AF3 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH1 0x0 DUP5 GT PUSH2 0xDBB JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xF PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5A45524F5F414D4F554E540000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x18160DDD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xE0E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xE22 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xE38 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xA24835D100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP9 SWAP1 MSTORE SWAP1 MLOAD SWAP3 SWAP6 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP2 AND SWAP2 PUSH4 0xA24835D1 SWAP2 PUSH1 0x44 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xEA9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xEBD JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x7 DUP1 SLOAD SWAP1 POP PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0xEF0 JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CODESIZE DUP4 CODECOPY ADD SWAP1 POP JUMPDEST POP SWAP2 POP PUSH1 0x0 SWAP1 POP JUMPDEST DUP2 MLOAD DUP2 LT ISZERO PUSH2 0xF23 JUMPI PUSH1 0x1 DUP3 DUP3 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xF11 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MSTORE PUSH1 0x1 ADD PUSH2 0xEF8 JUMP JUMPDEST PUSH2 0xF89 PUSH1 0x7 DUP1 SLOAD DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD DUP1 ISZERO PUSH2 0xF7C JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xF5E JUMPI JUMPDEST POP POP POP POP POP DUP4 DUP6 DUP8 PUSH2 0x2B4D JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0x4 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ DUP1 PUSH2 0xFC9 JUMPI POP PUSH1 0x3 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x100D JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48E1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x1036 PUSH32 0x436F6E7472616374526567697374727900000000000000000000000000000000 PUSH2 0x2E12 JUMP JUMPDEST PUSH1 0x2 SLOAD SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP4 AND SWAP2 AND EQ DUP1 ISZERO SWAP1 PUSH2 0x105F JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x10B5 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245474953545259000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0xBB34534C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH32 0x436F6E7472616374526567697374727900000000000000000000000000000000 PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP2 PUSH4 0xBB34534C SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1139 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x114D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1163 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ ISZERO PUSH2 0x11C4 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245474953545259000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP5 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP3 DUP4 AND OR SWAP1 SWAP3 SSTORE SWAP1 SWAP2 AND SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x1209 PUSH2 0x2A36 JUMP JUMPDEST DUP1 PUSH2 0x1213 DUP2 PUSH2 0x2EAA JUMP JUMPDEST POP PUSH1 0x6 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x20 DUP2 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH9 0x10000000000000000 SWAP1 DIV PUSH4 0xFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x126A PUSH2 0x2AF3 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH2 0x1277 PUSH2 0x2A36 JUMP JUMPDEST PUSH2 0x128E PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4881 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x2E12 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD SWAP1 SWAP2 POP PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 PUSH2 0x12CB JUMPI POP PUSH2 0x12C9 PUSH2 0xBE3 JUMP JUMPDEST ISZERO JUMPDEST DUP1 PUSH2 0x12E3 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ JUMPDEST ISZERO ISZERO PUSH2 0x1327 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48E1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x1332 DUP5 DUP5 DUP5 PUSH2 0x2F0B JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0xF89 JUMPI PUSH2 0xF89 DUP5 PUSH2 0x2F3C JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH2 0x1380 PUSH2 0x2A36 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4881 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x1398 DUP2 PUSH2 0x3031 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xF2FDE38B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP2 PUSH4 0xF2FDE38B SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x13FF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1413 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1425 PUSH2 0x2AF3 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH2 0x1432 PUSH2 0x2A36 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x144A DUP2 PUSH2 0x2A86 JUMP JUMPDEST PUSH2 0x1461 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4881 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x2E12 JUMP JUMPDEST SWAP2 POP PUSH2 0x146B PUSH2 0xBE3 JUMP JUMPDEST ISZERO DUP1 PUSH2 0x1484 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 DUP2 AND SWAP2 AND EQ JUMPDEST ISZERO ISZERO PUSH2 0x14C8 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48E1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP1 ADDRESS BALANCE DUP1 ISZERO PUSH2 0x8FC MUL SWAP2 PUSH1 0x0 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x14FE JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH2 0x1516 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x2F3C JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0x4 SSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x152A PUSH2 0x2A36 JUMP JUMPDEST PUSH2 0x1532 PUSH2 0x3087 JUMP JUMPDEST DUP3 PUSH2 0x153C DUP2 PUSH2 0x30E4 JUMP JUMPDEST DUP4 PUSH2 0x1546 DUP2 PUSH2 0x2EAA JUMP JUMPDEST DUP4 PUSH2 0x1550 DUP2 PUSH2 0x3144 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 DUP2 AND SWAP2 AND EQ DUP1 ISZERO SWAP1 PUSH2 0x1594 JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x15D8 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4841 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x9 SLOAD PUSH4 0xFFFFFFFF SWAP1 DUP2 AND PUSH3 0xF4240 SUB DUP2 AND SWAP1 DUP7 AND GT ISZERO PUSH2 0x1643 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F574549474854000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0xFFFF PUSH2 0x164E PUSH2 0x1B85 JUMP JUMPDEST PUSH2 0xFFFF AND LT PUSH2 0x16A7 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F434F554E5400000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP2 DUP2 SSTORE PUSH1 0x1 SWAP1 DUP2 ADD DUP1 SLOAD PUSH7 0xFF000000000000 NOT PUSH4 0xFFFFFFFF DUP1 DUP9 AND PUSH4 0xFFFFFFFF NOT SWAP4 DUP5 AND OR SWAP2 SWAP1 SWAP2 AND PUSH7 0x1000000000000 OR SWAP1 SWAP3 SSTORE PUSH1 0x7 DUP1 SLOAD SWAP4 DUP5 ADD DUP2 SSTORE SWAP1 SWAP4 MSTORE PUSH32 0xA66CC928B5EDB82AF9BD49922954155AB7B0942694BEA4CE44661D9A8736C688 SWAP1 SWAP2 ADD DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 SWAP4 OR SWAP1 SWAP3 SSTORE PUSH1 0x9 DUP1 SLOAD DUP1 DUP5 AND SWAP1 SWAP5 ADD SWAP1 SWAP3 AND SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 JUMPDEST PUSH1 0x0 DUP2 GT ISZERO PUSH2 0x177D JUMPI PUSH1 0x1 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0xA SWAP1 DIV PUSH2 0x1764 JUMP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x178E PUSH2 0x1B85 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x17E3 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48E1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND SWAP4 SWAP1 SWAP2 AND SWAP2 PUSH32 0x343765429AEA5A34B3FF6A3785A98A5ABB2597ACA87BFBB58632C173D585373A SWAP2 LOG3 PUSH1 0x1 DUP1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND OR SWAP1 SWAP2 SSTORE AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x1870 PUSH2 0x2AF3 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH2 0x187D PUSH2 0x31B9 JUMP JUMPDEST PUSH2 0x1888 DUP7 DUP7 DUP7 PUSH2 0x3217 JUMP JUMPDEST PUSH1 0x0 SWAP3 POP JUMPDEST DUP6 MLOAD DUP4 LT ISZERO PUSH2 0x1946 JUMPI DUP6 MLOAD PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP1 DUP8 SWAP1 DUP6 SWAP1 DUP2 LT PUSH2 0x18B4 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ ISZERO PUSH2 0x193B JUMPI CALLVALUE DUP6 DUP5 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x18DC JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MLOAD EQ PUSH2 0x193B JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4554485F414D4F554E545F4D49534D41544348000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 PUSH2 0x188D JUMP JUMPDEST PUSH1 0x0 CALLVALUE GT ISZERO PUSH2 0x19EB JUMPI PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x0 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH32 0x353C2EB9E53A4A4A6D45D72082FF2E9DC829D1125618772A83EB0E7F86632C43 SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO PUSH2 0x19EB JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4E4F5F4554485F524553455256450000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x18160DDD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1A3E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1A52 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1A68 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 POP PUSH2 0x1A77 DUP7 DUP7 DUP5 PUSH2 0x34D3 JUMP JUMPDEST SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0x1AD1 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F52455455524E5F544F4F5F4C4F570000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x867904B400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP2 PUSH4 0x867904B4 SWAP2 PUSH1 0x44 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1B3D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1B51 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x1 PUSH1 0x4 SSTORE POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH5 0x100000000 SWAP1 DIV PUSH4 0xFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x7 SLOAD SWAP1 JUMP JUMPDEST DUP1 MLOAD PUSH1 0x0 SWAP1 DUP2 SWAP1 DUP2 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1BC8 JUMPI PUSH2 0x1BBC DUP6 DUP3 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x1BAD JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH2 0x175F JUMP JUMPDEST SWAP1 SWAP3 ADD SWAP2 PUSH1 0x1 ADD PUSH2 0x1B94 JUMP JUMPDEST PUSH1 0x1 PUSH2 0x1BD4 DUP5 DUP5 PUSH2 0x1EF3 JUMP JUMPDEST SUB PUSH1 0xA EXP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x1BEF PUSH2 0x31B9 JUMP JUMPDEST DUP7 PUSH2 0x1BF9 DUP2 PUSH2 0x2A86 JUMP JUMPDEST DUP7 PUSH2 0x1C03 DUP2 PUSH2 0x2A86 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP10 DUP2 AND SWAP1 DUP10 AND EQ ISZERO PUSH2 0x1C67 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F534F555243455F54415247455400000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x1C7E PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48C1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x2E12 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x94491FAB PUSH2 0x1C95 DUP12 PUSH2 0x2619 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP13 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH4 0xFFFFFFFF AND PUSH2 0x1CC0 DUP13 PUSH2 0x2619 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP14 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 ADD SLOAD DUP2 MLOAD PUSH4 0xFFFFFFFF DUP10 DUP2 AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP3 MSTORE PUSH1 0x4 DUP3 ADD SWAP9 SWAP1 SWAP9 MSTORE SWAP6 DUP8 AND PUSH1 0x24 DUP8 ADD MSTORE PUSH1 0x44 DUP7 ADD SWAP5 SWAP1 SWAP5 MSTORE SWAP5 SWAP1 SWAP3 AND PUSH1 0x64 DUP5 ADD MSTORE PUSH1 0x84 DUP4 ADD DUP14 SWAP1 MSTORE SWAP3 MLOAD PUSH1 0xA4 DUP1 DUP5 ADD SWAP5 SWAP3 SWAP4 SWAP2 SWAP3 SWAP2 DUP4 SWAP1 SUB ADD SWAP1 DUP3 SWAP1 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1D3C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1D50 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1D66 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP4 POP PUSH2 0x1D73 DUP5 PUSH2 0x3502 JUMP JUMPDEST SWAP4 DUP5 SWAP1 SUB SWAP10 SWAP4 SWAP9 POP SWAP3 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1D90 PUSH2 0x2AF3 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH2 0x1D9D PUSH2 0x31B9 JUMP JUMPDEST PUSH2 0x1DA8 DUP4 DUP4 DUP7 PUSH2 0x3217 JUMP JUMPDEST PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x18160DDD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1DFB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1E0F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1E25 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xA24835D100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP9 SWAP1 MSTORE SWAP1 MLOAD SWAP3 SWAP4 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP2 AND SWAP2 PUSH4 0xA24835D1 SWAP2 PUSH1 0x44 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1E96 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1EAA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0xF89 DUP4 DUP4 DUP4 DUP8 PUSH2 0x2B4D JUMP JUMPDEST PUSH2 0x1EC2 PUSH2 0x2A36 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x2 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x2 DUP2 DIV DUP5 ADD DUP2 ISZERO ISZERO PUSH2 0x1F05 JUMPI INVALID JUMPDEST DIV SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x1 DUP2 JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x1F38 PUSH2 0x2AF3 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH2 0x1F45 PUSH2 0x353E JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x0 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4861 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SLOAD PUSH2 0x1F7C SWAP1 CALLVALUE PUSH4 0xFFFFFFFF PUSH2 0x3580 AND JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4861 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP3 SWAP1 SWAP3 SSTORE PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x18160DDD00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP4 PUSH4 0x18160DDD SWAP4 PUSH1 0x4 DUP1 DUP5 ADD SWAP5 SWAP3 SWAP4 DUP4 SWAP1 SUB ADD SWAP1 DUP3 SWAP1 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2006 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x201A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2030 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP10 POP PUSH2 0x204B PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48C1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x2E12 JUMP JUMPDEST PUSH1 0x7 SLOAD SWAP1 SWAP10 POP SWAP8 POP PUSH1 0x0 SWAP7 POP JUMPDEST DUP8 DUP8 LT ISZERO PUSH2 0x2398 JUMPI PUSH1 0x7 DUP1 SLOAD DUP9 SWAP1 DUP2 LT PUSH2 0x206E JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP6 POP PUSH1 0x8 PUSH1 0x0 DUP8 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD SWAP5 POP DUP9 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xEBBB2158 DUP12 DUP8 PUSH1 0x9 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH4 0xFFFFFFFF AND DUP16 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH4 0xFFFFFFFF AND PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP5 POP POP POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2138 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x214C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2162 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP4 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ ISZERO PUSH2 0x22C4 JUMPI DUP4 CALLVALUE GT ISZERO PUSH2 0x21C2 JUMPI PUSH1 0x40 MLOAD CALLER SWAP1 CALLVALUE DUP7 SWAP1 SUB DUP1 ISZERO PUSH2 0x8FC MUL SWAP2 PUSH1 0x0 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x21BC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH2 0x22BF JUMP JUMPDEST DUP4 CALLVALUE LT ISZERO PUSH2 0x22BF JUMPI CALLVALUE ISZERO PUSH2 0x2220 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4554485F56414C55450000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x9 SLOAD PUSH2 0x2248 SWAP1 PUSH13 0x1000000000000000000000000 SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER ADDRESS DUP8 PUSH2 0x35E0 JUMP JUMPDEST PUSH1 0x9 PUSH1 0xC SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x2E1A7D4D DUP6 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x22A6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x22BA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMPDEST PUSH2 0x22D0 JUMP JUMPDEST PUSH2 0x22D0 DUP7 CALLER ADDRESS DUP8 PUSH2 0x35E0 JUMP JUMPDEST PUSH2 0x22E0 DUP6 DUP6 PUSH4 0xFFFFFFFF PUSH2 0x36C8 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP2 SWAP1 SSTORE SWAP3 POP PUSH2 0x230D DUP11 DUP13 PUSH4 0xFFFFFFFF PUSH2 0x36C8 AND JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP7 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP7 SWAP1 MSTORE DUP1 DUP3 ADD DUP4 SWAP1 MSTORE SWAP1 MLOAD SWAP2 SWAP4 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 AND SWAP2 CALLER SWAP2 PUSH32 0x4A1A2A6176E9646D9E3157F7C2AB3C499F18337C0B0828CFB28E0A61DE4A11F7 SWAP2 SWAP1 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG3 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH4 0xFFFFFFFF AND PUSH2 0x238D DUP3 DUP8 DUP6 DUP5 PUSH2 0x3725 JUMP JUMPDEST PUSH1 0x1 SWAP1 SWAP7 ADD SWAP6 PUSH2 0x2058 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x867904B400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP15 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP2 PUSH4 0x867904B4 SWAP2 PUSH1 0x44 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2404 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2418 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x1 PUSH1 0x4 SSTORE POP POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x2436 PUSH2 0x2A36 JUMP JUMPDEST PUSH2 0x243E PUSH2 0x3794 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x2455 PUSH2 0xD4B JUMP JUMPDEST PUSH2 0xFFFF AND PUSH32 0x6B08C2E2C9969E55A647A764DB9B554D64DC42F1A704DA11A6D5B129AD163F2C PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 JUMP JUMPDEST PUSH1 0x7 DUP1 SLOAD DUP3 SWAP1 DUP2 LT PUSH2 0x2495 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP1 POP DUP2 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x24D7 PUSH2 0x2A36 JUMP JUMPDEST PUSH2 0x24EE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4881 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x2E12 JUMP JUMPDEST PUSH1 0x5 SLOAD SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x2508 PUSH2 0xD4B JUMP JUMPDEST PUSH2 0xFFFF AND PUSH32 0x6B08C2E2C9969E55A647A764DB9B554D64DC42F1A704DA11A6D5B129AD163F2C PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH2 0x2541 DUP2 PUSH2 0x298A JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x90F58C9600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 AND SWAP2 PUSH4 0x90F58C96 SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x25A2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x25B6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0xBE0 PUSH2 0x1793 JUMP JUMPDEST PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD PUSH4 0xFFFFFFFF DUP2 AND SWAP1 PUSH1 0xFF PUSH5 0x100000000 DUP3 DIV DUP2 AND SWAP2 PUSH6 0x10000000000 DUP2 DIV DUP3 AND SWAP2 PUSH7 0x1000000000000 SWAP1 SWAP2 DIV AND DUP6 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2613 DUP3 PUSH2 0x2619 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0x2625 DUP2 PUSH2 0x2A86 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x264C PUSH2 0x2AF3 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH32 0x536F7672796E537761704E6574776F726B000000000000000000000000000000 PUSH2 0x267B DUP2 PUSH2 0x3031 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 DUP2 AND SWAP1 DUP8 AND EQ ISZERO PUSH2 0x26DF JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F534F555243455F54415247455400000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND ISZERO DUP1 PUSH2 0x2822 JUMPI POP PUSH1 0x6 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x3AF32ABF00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP2 PUSH4 0x3AF32ABF SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x275A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x276E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2784 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD DUP1 ISZERO PUSH2 0x2822 JUMPI POP PUSH1 0x6 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x3AF32ABF00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP2 PUSH4 0x3AF32ABF SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x27F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2809 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x281F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD JUMPDEST ISZERO ISZERO PUSH2 0x2878 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4E4F545F57484954454C495354454400000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x2885 DUP8 DUP8 DUP8 DUP8 DUP8 PUSH2 0x37FF JUMP JUMPDEST PUSH1 0x1 PUSH1 0x4 SSTORE SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x289D PUSH2 0x2A36 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH4 0xFFFFFFFF PUSH5 0x100000000 SWAP1 SWAP2 DIV DUP2 AND SWAP1 DUP3 AND GT ISZERO PUSH2 0x2909 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F434F4E56455253494F4E5F464545000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH4 0xFFFFFFFF PUSH9 0x10000000000000000 SWAP1 SWAP4 DIV DUP4 AND DUP2 MSTORE SWAP2 DUP4 AND PUSH1 0x20 DUP4 ADD MSTORE DUP1 MLOAD PUSH32 0x81CD2FFB37DD237C0E4E2A3DE5265FCF9DEB43D3E7801E80DB9F1CCFBA7EE600 SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG1 PUSH1 0x9 DUP1 SLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP3 AND PUSH9 0x10000000000000000 MUL PUSH12 0xFFFFFFFF0000000000000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x2992 PUSH2 0x2A36 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x29F8 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F4F574E4552000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0xCAE JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48E1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO PUSH2 0xBE0 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4841 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x4 SLOAD PUSH1 0x1 EQ PUSH2 0xCAE JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5245454E5452414E4359000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x2B61 PUSH2 0x353E JUMP JUMPDEST PUSH2 0x2B78 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48C1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x2E12 JUMP JUMPDEST SWAP8 POP PUSH2 0x2B8A DUP11 DUP11 PUSH4 0xFFFFFFFF PUSH2 0x3580 AND JUMP JUMPDEST SWAP7 POP PUSH1 0x0 SWAP6 POP JUMPDEST DUP12 MLOAD DUP7 LT ISZERO PUSH2 0x2E04 JUMPI DUP12 DUP7 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x2BA8 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD SWAP5 POP PUSH1 0x8 PUSH1 0x0 DUP7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD SWAP4 POP DUP8 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x8074590A DUP12 DUP7 PUSH1 0x9 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH4 0xFFFFFFFF AND DUP14 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH4 0xFFFFFFFF AND PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP5 POP POP POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2C5E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2C72 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2C88 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD DUP12 MLOAD SWAP1 SWAP4 POP DUP12 SWAP1 DUP8 SWAP1 DUP2 LT PUSH2 0x2C9B JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MLOAD DUP4 LT ISZERO PUSH2 0x2CFC JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5A45524F5F5441524745545F414D4F554E5400000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x2D0C DUP5 DUP5 PUSH4 0xFFFFFFFF PUSH2 0x3580 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP3 SWAP1 SSTORE SWAP1 SWAP3 POP PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ ISZERO PUSH2 0x2D72 JUMPI PUSH1 0x40 MLOAD CALLER SWAP1 DUP5 ISZERO PUSH2 0x8FC MUL SWAP1 DUP6 SWAP1 PUSH1 0x0 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x2D6C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH2 0x2D7D JUMP JUMPDEST PUSH2 0x2D7D DUP6 CALLER DUP6 PUSH2 0x3AD2 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP5 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 SWAP1 MSTORE DUP1 DUP3 ADD DUP10 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND SWAP2 CALLER SWAP2 PUSH32 0xBC7D19D505C7EC4DB83F3B51F19FB98C4C8A99922E7839D1EE608DFBEE29501B SWAP2 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG3 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH4 0xFFFFFFFF AND PUSH2 0x2DF9 DUP8 DUP7 DUP5 DUP5 PUSH2 0x3725 JUMP JUMPDEST PUSH1 0x1 SWAP1 SWAP6 ADD SWAP5 PUSH2 0x2B91 JUMP JUMPDEST POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xBB34534C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP2 PUSH4 0xBB34534C SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2E78 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2E8C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2EA2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ADDRESS EQ ISZERO PUSH2 0xBE0 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F414444524553535F49535F53454C4600000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x2F13 PUSH2 0x2A36 JUMP JUMPDEST DUP3 PUSH2 0x2F1D DUP2 PUSH2 0x30E4 JUMP JUMPDEST DUP3 PUSH2 0x2F27 DUP2 PUSH2 0x30E4 JUMP JUMPDEST DUP4 PUSH2 0x2F31 DUP2 PUSH2 0x2EAA JUMP JUMPDEST PUSH2 0x1413 DUP7 DUP7 DUP7 PUSH2 0x3AD2 JUMP JUMPDEST DUP1 PUSH2 0x2F46 DUP2 PUSH2 0x2A86 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 AND PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ ISZERO PUSH2 0x2F86 JUMPI PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 ADDRESS BALANCE SWAP1 SSTORE PUSH2 0x302D JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2FE7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2FFB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x3011 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x303A DUP2 PUSH2 0x2E12 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0xBE0 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48E1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x308F PUSH2 0xBE3 JUMP JUMPDEST ISZERO PUSH2 0xCAE JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xA PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F41435449564500000000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0xBE0 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 PUSH4 0xFFFFFFFF AND GT DUP1 ISZERO PUSH2 0x3163 JUMPI POP PUSH3 0xF4240 PUSH4 0xFFFFFFFF DUP3 AND GT ISZERO JUMPDEST ISZERO ISZERO PUSH2 0xBE0 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F574549474854000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x31C1 PUSH2 0xBE3 JUMP JUMPDEST ISZERO ISZERO PUSH2 0xCAE JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E4143544956450000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x7 SLOAD DUP4 MLOAD PUSH1 0x0 SWAP2 DUP3 SWAP2 DUP2 EQ PUSH2 0x3265 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4841 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP5 MLOAD DUP2 EQ PUSH2 0x32BD JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F414D4F554E540000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 SWAP3 POP JUMPDEST DUP1 DUP4 LT ISZERO PUSH2 0x347B JUMPI PUSH1 0x8 PUSH1 0x0 DUP8 DUP6 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x32DC JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP3 MSTORE DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH1 0xFF PUSH7 0x1000000000000 SWAP1 SWAP2 DIV AND ISZERO ISZERO PUSH2 0x3354 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4841 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 SWAP2 POP JUMPDEST DUP1 DUP3 LT ISZERO PUSH2 0x33BC JUMPI DUP6 DUP3 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x336F JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x7 DUP5 DUP2 SLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3391 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ ISZERO PUSH2 0x33B1 JUMPI PUSH2 0x33BC JUMP JUMPDEST PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x3359 JUMP JUMPDEST DUP1 DUP3 LT PUSH2 0x3401 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4841 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP6 DUP5 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3411 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MLOAD GT PUSH2 0x3470 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F414D4F554E540000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 PUSH2 0x32C2 JUMP JUMPDEST PUSH1 0x0 DUP5 GT PUSH2 0x1413 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xF PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5A45524F5F414D4F554E540000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO PUSH2 0x34ED JUMPI PUSH2 0x34E6 DUP5 DUP5 PUSH2 0x3B89 JUMP JUMPDEST SWAP1 POP PUSH2 0x34FB JUMP JUMPDEST PUSH2 0x34F8 DUP5 DUP5 DUP5 PUSH2 0x3D90 JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x0 SWAP1 PUSH2 0x2613 SWAP1 PUSH3 0xF4240 SWAP1 PUSH2 0x3532 SWAP1 DUP6 SWAP1 PUSH9 0x10000000000000000 SWAP1 DIV PUSH4 0xFFFFFFFF SWAP1 DUP2 AND SWAP1 PUSH2 0x4150 AND JUMP JUMPDEST SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x41C9 AND JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x302D JUMPI PUSH2 0x3578 PUSH1 0x7 DUP3 DUP2 SLOAD DUP2 LT ISZERO ISZERO PUSH2 0x355E JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x2F3C JUMP JUMPDEST PUSH1 0x1 ADD PUSH2 0x3544 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT ISZERO PUSH2 0x35DA JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F554E444552464C4F5700000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP SWAP1 SUB SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x7472616E7366657246726F6D28616464726573732C616464726573732C75696E DUP2 MSTORE PUSH32 0x7432353629000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP3 MLOAD SWAP2 DUP3 SWAP1 SUB PUSH1 0x25 ADD DUP3 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP9 AND PUSH1 0x24 DUP6 ADD MSTORE DUP7 AND PUSH1 0x44 DUP5 ADD MSTORE PUSH1 0x64 DUP1 DUP5 ADD DUP7 SWAP1 MSTORE DUP5 MLOAD DUP1 DUP6 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x84 SWAP1 SWAP4 ADD SWAP1 SWAP4 MSTORE DUP2 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE PUSH2 0x36C2 SWAP1 DUP6 SWAP1 PUSH2 0x4237 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 ADD DUP4 DUP2 LT ISZERO PUSH2 0x34FB JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP6 AND SWAP2 AND PUSH32 0x77F29993CF2C084E726F7E802DA0719D6A0ADE3E204BADC7A3FFD57ECB768C24 PUSH2 0x3763 DUP6 PUSH3 0xF4240 PUSH2 0x4150 JUMP JUMPDEST PUSH2 0x3776 DUP9 PUSH4 0xFFFFFFFF DUP1 DUP9 AND SWAP1 PUSH2 0x4150 AND JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB ADD SWAP1 LOG3 POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH2 0x379E PUSH2 0x1B85 JUMP JUMPDEST PUSH2 0xFFFF AND GT PUSH2 0x37F7 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F434F554E5400000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0xCAE PUSH2 0x42C5 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x3810 DUP10 DUP10 DUP10 PUSH2 0x1BE1 JUMP JUMPDEST SWAP1 SWAP4 POP SWAP2 POP DUP3 ISZERO ISZERO PUSH2 0x386C JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5A45524F5F5441524745545F414D4F554E5400000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x3875 DUP9 PUSH2 0x2619 JUMP JUMPDEST SWAP1 POP DUP1 DUP4 LT PUSH2 0x3880 JUMPI INVALID JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP10 AND PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ ISZERO PUSH2 0x38FB JUMPI CALLVALUE DUP8 EQ PUSH2 0x38F6 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4554485F414D4F554E545F4D49534D41544348000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x3A03 JUMP JUMPDEST CALLVALUE ISZERO DUP1 ISZERO PUSH2 0x39AD JUMPI POP DUP7 PUSH2 0x39AA PUSH2 0x3911 DUP12 PUSH2 0x2619 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP15 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3972 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3986 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x399C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x3580 AND JUMP JUMPDEST LT ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x3A03 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F414D4F554E540000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x3A0C DUP10 PUSH2 0x2F3C JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x3A35 SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0x3580 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP10 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ ISZERO PUSH2 0x3AA2 JUMPI PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND SWAP1 DUP5 ISZERO PUSH2 0x8FC MUL SWAP1 DUP6 SWAP1 PUSH1 0x0 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x3A9C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH2 0x3AAD JUMP JUMPDEST PUSH2 0x3AAD DUP9 DUP7 DUP6 PUSH2 0x3AD2 JUMP JUMPDEST PUSH2 0x3ABB DUP10 DUP10 DUP9 DUP11 DUP8 DUP8 PUSH2 0x43A3 JUMP JUMPDEST PUSH2 0x3AC5 DUP10 DUP10 PUSH2 0x4428 JUMP JUMPDEST POP SWAP1 SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x7472616E7366657228616464726573732C75696E743235362900000000000000 DUP2 MSTORE DUP2 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x19 ADD DUP2 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x64 SWAP1 SWAP3 ADD SWAP1 SWAP3 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE PUSH2 0x3B84 SWAP1 DUP5 SWAP1 PUSH2 0x4237 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x3B98 DUP6 PUSH2 0x1B8B JUMP JUMPDEST SWAP3 POP PUSH1 0x0 SWAP2 POP JUMPDEST DUP6 MLOAD DUP3 LT ISZERO PUSH2 0x3D86 JUMPI DUP6 MLOAD PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP1 DUP8 SWAP1 DUP5 SWAP1 DUP2 LT PUSH2 0x3BC6 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ PUSH2 0x3C18 JUMPI PUSH2 0x3C18 DUP7 DUP4 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3BEF JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD CALLER ADDRESS DUP9 DUP7 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3C09 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH2 0x35E0 JUMP JUMPDEST DUP5 DUP3 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3C26 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x8 PUSH1 0x0 DUP9 DUP6 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3C42 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP3 MSTORE DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 SSTORE DUP6 MLOAD DUP7 SWAP1 DUP4 SWAP1 DUP2 LT PUSH2 0x3C73 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH32 0x4A1A2A6176E9646D9E3157F7C2AB3C499F18337C0B0828CFB28E0A61DE4A11F7 DUP8 DUP6 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3CBF JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD DUP9 DUP7 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3CD7 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x40 DUP1 MLOAD SWAP4 DUP5 MSTORE SWAP2 DUP4 ADD MSTORE DUP2 DUP2 ADD DUP9 SWAP1 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG3 PUSH1 0x8 PUSH1 0x0 DUP8 DUP5 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3D0F JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP3 MSTORE DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD SLOAD DUP7 MLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP2 AND SWAP2 POP PUSH2 0x3D7B SWAP1 DUP5 SWAP1 DUP9 SWAP1 DUP6 SWAP1 DUP2 LT PUSH2 0x3D53 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD DUP8 DUP6 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3D6B JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD DUP5 PUSH2 0x3725 JUMP JUMPDEST PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x3B9F JUMP JUMPDEST POP SWAP1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x3DA7 PUSH2 0x353E JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x0 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4861 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SLOAD PUSH2 0x3DDE SWAP1 CALLVALUE PUSH4 0xFFFFFFFF PUSH2 0x3580 AND JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x0 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4861 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SSTORE PUSH2 0x3E1C PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48C1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x2E12 JUMP JUMPDEST SWAP9 POP PUSH2 0x3E2A DUP10 DUP13 DUP16 DUP16 PUSH2 0x4636 JUMP JUMPDEST SWAP8 POP PUSH2 0x3E3C DUP12 DUP10 PUSH4 0xFFFFFFFF PUSH2 0x36C8 AND JUMP JUMPDEST SWAP7 POP PUSH1 0x0 SWAP6 POP JUMPDEST DUP13 MLOAD DUP7 LT ISZERO PUSH2 0x413F JUMPI DUP13 DUP7 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3E5A JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD SWAP5 POP PUSH1 0x8 PUSH1 0x0 DUP7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD SWAP4 POP DUP9 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xEBBB2158 DUP13 DUP7 PUSH1 0x9 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH4 0xFFFFFFFF AND DUP13 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH4 0xFFFFFFFF AND PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP5 POP POP POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3F10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3F24 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x3F3A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP3 POP PUSH1 0x0 DUP4 GT PUSH2 0x3F96 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5A45524F5F5441524745545F414D4F554E5400000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP12 DUP7 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3FA4 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MLOAD DUP4 GT ISZERO PUSH2 0x3FB7 JUMPI INVALID JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ PUSH2 0x3FE6 JUMPI PUSH2 0x3FE1 DUP6 CALLER ADDRESS DUP7 PUSH2 0x35E0 JUMP JUMPDEST PUSH2 0x4059 JUMP JUMPDEST DUP3 DUP13 DUP8 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3FF5 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD GT ISZERO PUSH2 0x4059 JUMPI CALLER PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x8FC DUP5 DUP15 DUP10 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x4021 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD SUB SWAP1 DUP2 ISZERO MUL SWAP1 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x4057 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP JUMPDEST PUSH2 0x4069 DUP5 DUP5 PUSH4 0xFFFFFFFF PUSH2 0x36C8 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP5 SWAP1 SSTORE DUP2 MLOAD DUP8 DUP2 MSTORE SWAP1 DUP2 ADD DUP5 SWAP1 MSTORE DUP1 DUP3 ADD DUP12 SWAP1 MSTORE SWAP1 MLOAD SWAP3 SWAP5 POP SWAP1 SWAP2 CALLER SWAP2 PUSH32 0x4A1A2A6176E9646D9E3157F7C2AB3C499F18337C0B0828CFB28E0A61DE4A11F7 SWAP2 SWAP1 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG3 PUSH1 0x8 PUSH1 0x0 DUP15 DUP9 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x40DF JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP3 MSTORE DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD SLOAD DUP14 MLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP2 AND SWAP2 POP PUSH2 0x4134 SWAP1 DUP9 SWAP1 DUP16 SWAP1 DUP10 SWAP1 DUP2 LT PUSH2 0x4123 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD DUP5 DUP5 PUSH2 0x3725 JUMP JUMPDEST PUSH1 0x1 SWAP1 SWAP6 ADD SWAP5 PUSH2 0x3E43 JUMP JUMPDEST POP SWAP6 SWAP12 SWAP11 POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 ISZERO ISZERO PUSH2 0x4163 JUMPI PUSH1 0x0 SWAP2 POP PUSH2 0x177D JUMP JUMPDEST POP DUP3 DUP3 MUL DUP3 DUP5 DUP3 DUP2 ISZERO ISZERO PUSH2 0x4173 JUMPI INVALID JUMPDEST DIV EQ PUSH2 0x34FB JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP4 GT PUSH2 0x4223 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4449564944455F42595F5A45524F0000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP3 DUP5 DUP2 ISZERO ISZERO PUSH2 0x422E JUMPI INVALID JUMPDEST DIV SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0x423F PUSH2 0x4821 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE POP SWAP1 POP PUSH1 0x20 DUP2 DUP4 MLOAD PUSH1 0x20 DUP6 ADD PUSH1 0x0 DUP8 GAS CALL DUP1 ISZERO ISZERO PUSH2 0x426C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD ISZERO ISZERO PUSH2 0x3B84 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5452414E534645525F4641494C454400000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x42CD PUSH2 0x2A36 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x42D7 PUSH2 0x1B85 JUMP JUMPDEST PUSH2 0xFFFF AND GT PUSH2 0x4330 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F434F554E5400000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x79BA5097 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x4383 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x4397 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0xCAE PUSH2 0x353E JUMP JUMPDEST PUSH32 0x8000000000000000000000000000000000000000000000000000000000000000 DUP2 LT PUSH2 0x43CC JUMPI INVALID JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP5 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 SWAP1 MSTORE DUP1 DUP3 ADD DUP4 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP8 AND SWAP3 DUP9 DUP3 AND SWAP3 SWAP2 DUP11 AND SWAP2 PUSH32 0x276856B36CBC45526A0BA64F44611557A2A8B68662C5388E9FE6D72E86E1C8CB SWAP2 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG4 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x18160DDD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x4486 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x449A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x44B0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP7 POP PUSH2 0x44BD DUP10 PUSH2 0x2619 JUMP JUMPDEST SWAP6 POP PUSH2 0x44C8 DUP9 PUSH2 0x2619 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 PUSH1 0x1 SWAP1 DUP2 ADD SLOAD SWAP4 DUP14 AND DUP4 MSTORE SWAP2 KECCAK256 ADD SLOAD SWAP2 SWAP7 POP PUSH4 0xFFFFFFFF SWAP1 DUP2 AND SWAP6 POP SWAP1 DUP2 AND SWAP4 POP PUSH2 0x4511 SWAP1 DUP7 SWAP1 DUP7 SWAP1 PUSH2 0x4150 AND JUMP JUMPDEST SWAP2 POP PUSH2 0x4526 DUP7 PUSH4 0xFFFFFFFF DUP1 DUP7 AND SWAP1 PUSH2 0x4150 AND JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP5 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP4 SWAP1 MSTORE DUP2 MLOAD SWAP3 SWAP4 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP13 AND SWAP4 SWAP1 DUP14 AND SWAP3 PUSH32 0x77F29993CF2C084E726F7E802DA0719D6A0ADE3E204BADC7A3FFD57ECB768C24 SWAP3 DUP3 SWAP1 SUB ADD SWAP1 LOG3 PUSH2 0x457D DUP8 DUP11 DUP9 DUP8 PUSH2 0x3725 JUMP JUMPDEST PUSH2 0x4589 DUP8 DUP10 DUP8 DUP7 PUSH2 0x3725 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP9 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP9 SWAP1 MSTORE PUSH4 0xFFFFFFFF DUP7 AND DUP2 DUP4 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND SWAP2 PUSH32 0x8A6A7F53B3C8FA1DC4B83E3F1BE668C1B251FF8D44CDCB83EB3ACEC3FEC6A788 SWAP2 SWAP1 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG2 PUSH1 0x40 DUP1 MLOAD DUP9 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP8 SWAP1 MSTORE PUSH4 0xFFFFFFFF DUP6 AND DUP2 DUP4 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP11 AND SWAP2 PUSH32 0x8A6A7F53B3C8FA1DC4B83E3F1BE668C1B251FF8D44CDCB83EB3ACEC3FEC6A788 SWAP2 SWAP1 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG2 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x1 JUMPDEST DUP5 MLOAD DUP2 LT ISZERO PUSH2 0x46F9 JUMPI PUSH2 0x46A1 PUSH1 0x8 PUSH1 0x0 DUP8 DUP5 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x465A JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP3 MSTORE DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 SLOAD DUP6 MLOAD DUP7 SWAP1 DUP6 SWAP1 DUP2 LT PUSH2 0x468B JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MLOAD SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x4150 AND JUMP JUMPDEST PUSH2 0x46E7 PUSH1 0x8 PUSH1 0x0 DUP9 DUP7 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x46B6 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP3 MSTORE DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 SLOAD DUP7 MLOAD DUP8 SWAP1 DUP6 SWAP1 DUP2 LT PUSH2 0x468B JUMPI INVALID JUMPDEST LT ISZERO PUSH2 0x46F1 JUMPI DUP1 SWAP2 POP JUMPDEST PUSH1 0x1 ADD PUSH2 0x463C JUMP JUMPDEST DUP7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x2F55BDB5 DUP8 PUSH1 0x8 PUSH1 0x0 DUP10 DUP8 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x471B JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP3 MSTORE DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH1 0x9 SLOAD DUP9 MLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP2 AND SWAP1 DUP10 SWAP1 DUP9 SWAP1 DUP2 LT PUSH2 0x4758 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH4 0xFFFFFFFF AND PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP5 POP POP POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x47BC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x47D0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x47E6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xA0 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE SWAP2 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x60 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 SWAP1 PUSH1 0x20 DUP3 MUL DUP1 CODESIZE DUP4 CODECOPY POP SWAP2 SWAP3 SWAP2 POP POP JUMP STOP GASLIMIT MSTORE MSTORE 0x5f 0x49 0x4e JUMP COINBASE 0x4c 0x49 DIFFICULTY 0x5f MSTORE GASLIMIT MSTORE8 GASLIMIT MSTORE JUMP GASLIMIT STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP CALLDATALOAD EXTCODECOPY 0x2e 0xb9 0xe5 GASPRICE 0x4a 0x4a PUSH14 0x45D72082FF2E9DC829D112561877 0x2a DUP4 0xeb 0xe PUSH32 0x86632C42536F7672796E53776170436F6E766572746572557067726164657200 STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee MSTORE8 PUSH16 0x7672796E53776170466F726D756C6100 STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP GASLIMIT MSTORE MSTORE 0x5f COINBASE NUMBER NUMBER GASLIMIT MSTORE8 MSTORE8 0x5f DIFFICULTY GASLIMIT 0x4e 0x49 GASLIMIT DIFFICULTY STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 ORIGIN 0x4b NUMBER PUSH5 0xD6A1792677 0xc2 REVERT DUP3 0xe3 SGT 0xb6 0x2b SWAP13 0xc9 JUMPI 0xd5 DUP10 0x49 INVALID SWAP9 0x23 0xa7 0xcc PUSH2 0xA1A 0xc SDIV STOP 0x29 ", + "sourceMap": "452:24101:23:-;;;249:1:68;362:32;;519:89:23;2700:30:4;519:89:23;1487:220;5:2:-1;;;;30:1;27;20:12;5:2;1487:220:23;;;;;;;;;;;;;;;;;;;;;;;;;488:5:66;:18;;-1:-1:-1;;;;;;488:18:66;496:10;488:18;;;1487:220:23;;;;;;;;475:23:72;1487:220:23;475:13:72;;;;:23;:::i;:::-;-1:-1:-1;1931:8:60;:39;;-1:-1:-1;;;;;1931:39:60;;;-1:-1:-1;;;;;;1931:39:60;;;;;;;;1974:12;:43;;;;;;;;5395:7:4;475:23:72;5395:7:4;475:13:72;;;;:23;:::i;:::-;5457:17:4;6403:35;5457:17;6403:19;;;;:35;:::i;:::-;-1:-1:-1;;5480:6:4;:16;;-1:-1:-1;;;;;5480:16:4;;;-1:-1:-1;;;;;;5480:16:4;;;;;;;;;;-1:-1:-1;5500:16:4;:36;;;;;;;;-1:-1:-1;;5500:36:4;;;;;;;;;-1:-1:-1;452:24101:23;;-1:-1:-1;;;;;452:24101:23;553:117:72;-1:-1:-1;;;;;620:22:72;;;;612:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;553:117;:::o;6493:156:4:-;1826:7;6571:43;;;;;6563:82;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;452:24101:23;;;;;;;" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "6080604052600436106102585763ffffffff60e060020a600035041663024c7ec781146102e45780630c7d5cd8146102fe5780630e53aae91461032c57806312c2aca41461038157806319b64015146103aa5780631cfab290146103de5780631e1401f8146103ff57806321e6b53d1461044257806322f3e2d4146104635780632fe8a6ad1461047857806338a5e0161461048d578063395900d4146104a25780633e8ff43f146104cc578063415f1240146104f857806349d10b64146105105780634af80f0e1461052557806354fd4d5014610546578063579cd3ca1461055b5780635e35359e1461057057806361cd756e1461059a57806367b6d57c146105af578063690d8320146105d05780636a49d2c4146105f15780636aa5332c1461061b57806371f52bf31461064557806379ba50971461065a5780637b1039991461066f5780637d8916bd146106845780638da5cb5b1461070757806394c275ad1461071c5780639b99a8e214610731578063a60e772414610746578063af94b8d81461079b578063b127c0a5146107c5578063b4a176d314610858578063bbb7e5d81461086d578063bf75455814610888578063c45d3d921461089d578063ca1d209d146108b2578063cdc91c69146108bd578063d031370b146108d2578063d260529c146108ea578063d3fb73b4146108ff578063d4ee1d9014610914578063d55ec69714610929578063d66bd5241461093e578063d89595121461095f578063dc8de37914610980578063e8dc12ff146109a1578063ecbca55d146109cb578063f2fde38b146109e9578063fc0c546a14610a0a575b6000805160206148a183398151915260005260086020527f353c2eb9e53a4a4a6d45d72082ff2e9dc829d1125618772a83eb0e7f86632c43546601000000000000900460ff1615156102e2576040805160e560020a62461bcd0281526020600482015260136024820152600080516020614841833981519152604482015290519081900360640190fd5b005b3480156102f057600080fd5b506102e26004351515610a1f565b34801561030a57600080fd5b50610313610a67565b6040805163ffffffff9092168252519081900360200190f35b34801561033857600080fd5b5061034d600160a060020a0360043516610a73565b6040805195865263ffffffff9094166020860152911515848401521515606084015215156080830152519081900360a00190f35b34801561038d57600080fd5b50610396610b0e565b604080519115158252519081900360200190f35b3480156103b657600080fd5b506103c2600435610b57565b60408051600160a060020a039092168252519081900360200190f35b3480156103ea57600080fd5b50610313600160a060020a0360043516610b83565b34801561040b57600080fd5b50610429600160a060020a0360043581169060243516604435610bb5565b6040805192835260208301919091528051918290030190f35b34801561044e57600080fd5b506102e2600160a060020a0360043516610bcf565b34801561046f57600080fd5b50610396610be3565b34801561048457600080fd5b50610396610c7d565b34801561049957600080fd5b506102e2610c9e565b3480156104ae57600080fd5b506102e2600160a060020a0360043581169060243516604435610cb0565b3480156104d857600080fd5b506104e1610d4b565b6040805161ffff9092168252519081900360200190f35b34801561050457600080fd5b506102e2600435610d50565b34801561051c57600080fd5b506102e2610f94565b34801561053157600080fd5b506102e2600160a060020a0360043516611201565b34801561055257600080fd5b506104e1611243565b34801561056757600080fd5b50610313611248565b34801561057c57600080fd5b506102e2600160a060020a0360043581169060243516604435611260565b3480156105a657600080fd5b506103c2611369565b3480156105bb57600080fd5b506102e2600160a060020a0360043516611378565b3480156105dc57600080fd5b506102e2600160a060020a036004351661141b565b3480156105fd57600080fd5b506102e2600160a060020a036004351663ffffffff60243516611520565b34801561062757600080fd5b5061063360043561175f565b60408051918252519081900360200190f35b34801561065157600080fd5b506104e1611784565b34801561066657600080fd5b506102e2611793565b34801561067b57600080fd5b506103c2611854565b604080516020600480358082013583810280860185019096528085526102e295369593946024949385019291829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a99890198929750908201955093508392508501908490808284375094975050933594506118639350505050565b34801561071357600080fd5b506103c2611b62565b34801561072857600080fd5b50610313611b71565b34801561073d57600080fd5b506104e1611b85565b34801561075257600080fd5b506040805160206004803580820135838102808601850190965280855261063395369593946024949385019291829185019084908082843750949750611b8b9650505050505050565b3480156107a757600080fd5b50610429600160a060020a0360043581169060243516604435611be1565b3480156107d157600080fd5b506040805160206004602480358281013584810280870186019097528086526102e296843596369660449591949091019291829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750949750611d869650505050505050565b34801561086457600080fd5b506102e2611eba565b34801561087957600080fd5b50610633600435602435611ef3565b34801561089457600080fd5b50610396611f0d565b3480156108a957600080fd5b506103c2611f12565b6102e2600435611f21565b3480156108c957600080fd5b506102e261242e565b3480156108de57600080fd5b506103c2600435612487565b3480156108f657600080fd5b50610396610d4b565b34801561090b57600080fd5b506103c26124af565b34801561092057600080fd5b506103c26124be565b34801561093557600080fd5b506102e26124cd565b34801561094a57600080fd5b5061034d600160a060020a03600435166125c2565b34801561096b57600080fd5b50610633600160a060020a0360043516612608565b34801561098c57600080fd5b50610633600160a060020a0360043516612619565b610633600160a060020a036004358116906024358116906044359060643581169060843516612642565b3480156109d757600080fd5b506102e263ffffffff60043516612895565b3480156109f557600080fd5b506102e2600160a060020a036004351661298a565b348015610a1657600080fd5b506103c2612a27565b610a27612a36565b60038054911515740100000000000000000000000000000000000000000274ff000000000000000000000000000000000000000019909216919091179055565b60095463ffffffff1681565b6000806000806000610a836147f3565b50505050600160a060020a03929092166000908152600860209081526040808320815160a081018352815480825260019092015463ffffffff811694820185905260ff64010000000082048116151594830194909452650100000000008104841615156060830152660100000000000090049092161515608090920182905295919450919250829190565b6000805160206148a183398151915260005260086020527f353c2eb9e53a4a4a6d45d72082ff2e9dc829d1125618772a83eb0e7f86632c43546601000000000000900460ff1690565b6000600782815481101515610b6857fe5b600091825260209091200154600160a060020a031692915050565b600081610b8f81612a86565b5050600160a060020a031660009081526008602052604090206001015463ffffffff1690565b600080610bc3858585611be1565b91509150935093915050565b610bd7612a36565b610be081611378565b50565b600030600160a060020a0316600560009054906101000a9004600160a060020a0316600160a060020a0316638da5cb5b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610c4257600080fd5b505af1158015610c56573d6000803e3d6000fd5b505050506040513d6020811015610c6c57600080fd5b5051600160a060020a031614905090565b60035474010000000000000000000000000000000000000000900460ff1681565b610ca6612a36565b610cae61242e565b565b610cb8612a36565b600554604080517f5e35359e000000000000000000000000000000000000000000000000000000008152600160a060020a03868116600483015285811660248301526044820185905291519190921691635e35359e91606480830192600092919082900301818387803b158015610d2e57600080fd5b505af1158015610d42573d6000803e3d6000fd5b50505050505050565b600190565b600060606000610d5e612af3565b600260045560008411610dbb576040805160e560020a62461bcd02815260206004820152600f60248201527f4552525f5a45524f5f414d4f554e540000000000000000000000000000000000604482015290519081900360640190fd5b600560009054906101000a9004600160a060020a0316600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610e0e57600080fd5b505af1158015610e22573d6000803e3d6000fd5b505050506040513d6020811015610e3857600080fd5b5051600554604080517fa24835d1000000000000000000000000000000000000000000000000000000008152336004820152602481018890529051929550600160a060020a039091169163a24835d19160448082019260009290919082900301818387803b158015610ea957600080fd5b505af1158015610ebd573d6000803e3d6000fd5b50505050600780549050604051908082528060200260200182016040528015610ef0578160200160208202803883390190505b509150600090505b8151811015610f235760018282815181101515610f1157fe5b60209081029091010152600101610ef8565b610f896007805480602002602001604051908101604052809291908181526020018280548015610f7c57602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311610f5e575b5050505050838587612b4d565b505060016004555050565b60008054600160a060020a0316331480610fc9575060035474010000000000000000000000000000000000000000900460ff16155b151561100d576040805160e560020a62461bcd02815260206004820152601160248201526000805160206148e1833981519152604482015290519081900360640190fd5b6110367f436f6e7472616374526567697374727900000000000000000000000000000000612e12565b600254909150600160a060020a0380831691161480159061105f5750600160a060020a03811615155b15156110b5576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e56414c49445f5245474953545259000000000000000000000000604482015290519081900360640190fd5b604080517fbb34534c0000000000000000000000000000000000000000000000000000000081527f436f6e747261637452656769737472790000000000000000000000000000000060048201529051600091600160a060020a0384169163bb34534c9160248082019260209290919082900301818787803b15801561113957600080fd5b505af115801561114d573d6000803e3d6000fd5b505050506040513d602081101561116357600080fd5b5051600160a060020a031614156111c4576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e56414c49445f5245474953545259000000000000000000000000604482015290519081900360640190fd5b6002805460038054600160a060020a0380841673ffffffffffffffffffffffffffffffffffffffff19928316179092559091169216919091179055565b611209612a36565b8061121381612eaa565b506006805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b602081565b60095468010000000000000000900463ffffffff1681565b600061126a612af3565b6002600455611277612a36565b61128e600080516020614881833981519152612e12565b600160a060020a0385166000908152600860205260409020600101549091506601000000000000900460ff1615806112cb57506112c9610be3565b155b806112e35750600054600160a060020a038281169116145b1515611327576040805160e560020a62461bcd02815260206004820152601160248201526000805160206148e1833981519152604482015290519081900360640190fd5b611332848484612f0b565b600160a060020a0384166000908152600860205260409020600101546601000000000000900460ff1615610f8957610f8984612f3c565b600354600160a060020a031681565b611380612a36565b60008051602061488183398151915261139881613031565b600554604080517ff2fde38b000000000000000000000000000000000000000000000000000000008152600160a060020a0385811660048301529151919092169163f2fde38b91602480830192600092919082900301818387803b1580156113ff57600080fd5b505af1158015611413573d6000803e3d6000fd5b505050505050565b6000611425612af3565b6002600455611432612a36565b6000805160206148a183398151915261144a81612a86565b611461600080516020614881833981519152612e12565b915061146b610be3565b15806114845750600054600160a060020a038381169116145b15156114c8576040805160e560020a62461bcd02815260206004820152601160248201526000805160206148e1833981519152604482015290519081900360640190fd5b604051600160a060020a03841690303180156108fc02916000818181858888f193505050501580156114fe573d6000803e3d6000fd5b506115166000805160206148a1833981519152612f3c565b5050600160045550565b600061152a612a36565b611532613087565b8261153c816130e4565b8361154681612eaa565b8361155081613144565b600554600160a060020a038781169116148015906115945750600160a060020a0386166000908152600860205260409020600101546601000000000000900460ff16155b15156115d8576040805160e560020a62461bcd0281526020600482015260136024820152600080516020614841833981519152604482015290519081900360640190fd5b60095463ffffffff908116620f42400381169086161115611643576040805160e560020a62461bcd02815260206004820152601a60248201527f4552525f494e56414c49445f524553455256455f574549474854000000000000604482015290519081900360640190fd5b61ffff61164e611b85565b61ffff16106116a7576040805160e560020a62461bcd02815260206004820152601960248201527f4552525f494e56414c49445f524553455256455f434f554e5400000000000000604482015290519081900360640190fd5b505050600160a060020a0390921660008181526008602052604081208181556001908101805466ff0000000000001963ffffffff80881663ffffffff1993841617919091166601000000000000179092556007805493840181559093527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688909101805473ffffffffffffffffffffffffffffffffffffffff191690931790925560098054808416909401909216921691909117905550565b600080825b600081111561177d5760019190910190600a9004611764565b5092915050565b600061178e611b85565b905090565b600154600160a060020a031633146117e3576040805160e560020a62461bcd02815260206004820152601160248201526000805160206148e1833981519152604482015290519081900360640190fd5b60015460008054604051600160a060020a0393841693909116917f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91a3600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b600254600160a060020a031681565b6000806000611870612af3565b600260045561187d6131b9565b611888868686613217565b600092505b85518310156119465785516000805160206148a1833981519152908790859081106118b457fe5b90602001906020020151600160a060020a0316141561193b573485848151811015156118dc57fe5b602090810290910101511461193b576040805160e560020a62461bcd02815260206004820152601760248201527f4552525f4554485f414d4f554e545f4d49534d41544348000000000000000000604482015290519081900360640190fd5b60019092019161188d565b60003411156119eb576000805160206148a183398151915260005260086020527f353c2eb9e53a4a4a6d45d72082ff2e9dc829d1125618772a83eb0e7f86632c43546601000000000000900460ff1615156119eb576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f4e4f5f4554485f524553455256450000000000000000000000000000604482015290519081900360640190fd5b600560009054906101000a9004600160a060020a0316600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015611a3e57600080fd5b505af1158015611a52573d6000803e3d6000fd5b505050506040513d6020811015611a6857600080fd5b50519150611a778686846134d3565b905083811015611ad1576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f52455455524e5f544f4f5f4c4f570000000000000000000000000000604482015290519081900360640190fd5b600554604080517f867904b4000000000000000000000000000000000000000000000000000000008152336004820152602481018490529051600160a060020a039092169163867904b49160448082019260009290919082900301818387803b158015611b3d57600080fd5b505af1158015611b51573d6000803e3d6000fd5b505060016004555050505050505050565b600054600160a060020a031681565b600954640100000000900463ffffffff1681565b60075490565b80516000908190815b81811015611bc857611bbc8582815181101515611bad57fe5b9060200190602002015161175f565b90920191600101611b94565b6001611bd48484611ef3565b03600a0a95945050505050565b600080600080611bef6131b9565b86611bf981612a86565b86611c0381612a86565b600160a060020a038981169089161415611c67576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f53414d455f534f555243455f54415247455400000000000000000000604482015290519081900360640190fd5b611c7e6000805160206148c1833981519152612e12565b600160a060020a03166394491fab611c958b612619565b600160a060020a038c1660009081526008602052604090206001015463ffffffff16611cc08c612619565b600160a060020a038d16600090815260086020908152604080832060010154815163ffffffff89811660e060020a028252600482019890985295871660248701526044860194909452949092166064840152608483018d9052925160a48084019492939192918390030190829087803b158015611d3c57600080fd5b505af1158015611d50573d6000803e3d6000fd5b505050506040513d6020811015611d6657600080fd5b50519350611d7384613502565b9384900399939850929650505050505050565b6000611d90612af3565b6002600455611d9d6131b9565b611da8838386613217565b600560009054906101000a9004600160a060020a0316600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015611dfb57600080fd5b505af1158015611e0f573d6000803e3d6000fd5b505050506040513d6020811015611e2557600080fd5b5051600554604080517fa24835d1000000000000000000000000000000000000000000000000000000008152336004820152602481018890529051929350600160a060020a039091169163a24835d19160448082019260009290919082900301818387803b158015611e9657600080fd5b505af1158015611eaa573d6000803e3d6000fd5b50505050610f8983838387612b4d565b611ec2612a36565b6003546002805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055565b600081600281048401811515611f0557fe5b049392505050565b600181565b600654600160a060020a031681565b600080600080600080600080600080611f38612af3565b6002600455611f4561353e565b6000805160206148a1833981519152600052600860205260008051602061486183398151915254611f7c903463ffffffff61358016565b6000805160206148a183398151915260009081526008602090815260008051602061486183398151915292909255600554604080517f18160ddd0000000000000000000000000000000000000000000000000000000081529051600160a060020a03909216936318160ddd9360048084019492938390030190829087803b15801561200657600080fd5b505af115801561201a573d6000803e3d6000fd5b505050506040513d602081101561203057600080fd5b5051995061204b6000805160206148c1833981519152612e12565b6007549099509750600096505b8787101561239857600780548890811061206e57fe5b9060005260206000200160009054906101000a9004600160a060020a031695506008600087600160a060020a0316600160a060020a0316815260200190815260200160002060000154945088600160a060020a031663ebbb21588b87600960009054906101000a900463ffffffff168f6040518563ffffffff1660e060020a028152600401808581526020018481526020018363ffffffff1663ffffffff168152602001828152602001945050505050602060405180830381600087803b15801561213857600080fd5b505af115801561214c573d6000803e3d6000fd5b505050506040513d602081101561216257600080fd5b50519350600160a060020a0386166000805160206148a183398151915214156122c457833411156121c25760405133903486900380156108fc02916000818181858888f193505050501580156121bc573d6000803e3d6000fd5b506122bf565b833410156122bf573415612220576040805160e560020a62461bcd02815260206004820152601560248201527f4552525f494e56414c49445f4554485f56414c55450000000000000000000000604482015290519081900360640190fd5b600954612248906c010000000000000000000000009004600160a060020a03163330876135e0565b6009600c9054906101000a9004600160a060020a0316600160a060020a0316632e1a7d4d856040518263ffffffff1660e060020a02815260040180828152602001915050600060405180830381600087803b1580156122a657600080fd5b505af11580156122ba573d6000803e3d6000fd5b505050505b6122d0565b6122d0863330876135e0565b6122e0858563ffffffff6136c816565b600160a060020a0387166000908152600860205260409020819055925061230d8a8c63ffffffff6136c816565b60408051868152602081018690528082018390529051919350600160a060020a0388169133917f4a1a2a6176e9646d9e3157f7c2ab3c499f18337c0b0828cfb28e0a61de4a11f7919081900360600190a350600160a060020a03851660009081526008602052604090206001015463ffffffff1661238d82878584613725565b600190960195612058565b600554604080517f867904b4000000000000000000000000000000000000000000000000000000008152336004820152602481018e90529051600160a060020a039092169163867904b49160448082019260009290919082900301818387803b15801561240457600080fd5b505af1158015612418573d6000803e3d6000fd5b5050600160045550505050505050505050505050565b612436612a36565b61243e613794565b600554600190600160a060020a0316612455610d4b565b61ffff167f6b08c2e2c9969e55a647a764db9b554d64dc42f1a704da11a6d5b129ad163f2c60405160405180910390a4565b600780548290811061249557fe5b600091825260209091200154600160a060020a0316905081565b600554600160a060020a031681565b600154600160a060020a031681565b60006124d7612a36565b6124ee600080516020614881833981519152612e12565b600554909150600090600160a060020a0316612508610d4b565b61ffff167f6b08c2e2c9969e55a647a764db9b554d64dc42f1a704da11a6d5b129ad163f2c60405160405180910390a46125418161298a565b604080517f90f58c96000000000000000000000000000000000000000000000000000000008152602060048201529051600160a060020a038316916390f58c9691602480830192600092919082900301818387803b1580156125a257600080fd5b505af11580156125b6573d6000803e3d6000fd5b50505050610be0611793565b6008602052600090815260409020805460019091015463ffffffff81169060ff640100000000820481169165010000000000810482169166010000000000009091041685565b600061261382612619565b92915050565b60008161262581612a86565b5050600160a060020a031660009081526008602052604090205490565b600061264c612af3565b60026004557f536f7672796e537761704e6574776f726b00000000000000000000000000000061267b81613031565b600160a060020a0387811690871614156126df576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f53414d455f534f555243455f54415247455400000000000000000000604482015290519081900360640190fd5b600654600160a060020a031615806128225750600654604080517f3af32abf000000000000000000000000000000000000000000000000000000008152600160a060020a03878116600483015291519190921691633af32abf9160248083019260209291908290030181600087803b15801561275a57600080fd5b505af115801561276e573d6000803e3d6000fd5b505050506040513d602081101561278457600080fd5b505180156128225750600654604080517f3af32abf000000000000000000000000000000000000000000000000000000008152600160a060020a03868116600483015291519190921691633af32abf9160248083019260209291908290030181600087803b1580156127f557600080fd5b505af1158015612809573d6000803e3d6000fd5b505050506040513d602081101561281f57600080fd5b50515b1515612878576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f4e4f545f57484954454c495354454400000000000000000000000000604482015290519081900360640190fd5b61288587878787876137ff565b6001600455979650505050505050565b61289d612a36565b60095463ffffffff64010000000090910481169082161115612909576040805160e560020a62461bcd02815260206004820152601a60248201527f4552525f494e56414c49445f434f4e56455253494f4e5f464545000000000000604482015290519081900360640190fd5b6009546040805163ffffffff6801000000000000000090930483168152918316602083015280517f81cd2ffb37dd237c0e4e2a3de5265fcf9deb43d3e7801e80db9f1ccfba7ee6009281900390910190a16009805463ffffffff90921668010000000000000000026bffffffff000000000000000019909216919091179055565b612992612a36565b600054600160a060020a03828116911614156129f8576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f53414d455f4f574e4552000000000000000000000000000000000000604482015290519081900360640190fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600554600160a060020a031690565b600054600160a060020a03163314610cae576040805160e560020a62461bcd02815260206004820152601160248201526000805160206148e1833981519152604482015290519081900360640190fd5b600160a060020a0381166000908152600860205260409020600101546601000000000000900460ff161515610be0576040805160e560020a62461bcd0281526020600482015260136024820152600080516020614841833981519152604482015290519081900360640190fd5b600454600114610cae576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f5245454e5452414e4359000000000000000000000000000000000000604482015290519081900360640190fd5b600080600080600080600080612b6161353e565b612b786000805160206148c1833981519152612e12565b9750612b8a8a8a63ffffffff61358016565b9650600095505b8b51861015612e04578b86815181101515612ba857fe5b9060200190602002015194506008600086600160a060020a0316600160a060020a0316815260200190815260200160002060000154935087600160a060020a0316638074590a8b86600960009054906101000a900463ffffffff168d6040518563ffffffff1660e060020a028152600401808581526020018481526020018363ffffffff1663ffffffff168152602001828152602001945050505050602060405180830381600087803b158015612c5e57600080fd5b505af1158015612c72573d6000803e3d6000fd5b505050506040513d6020811015612c8857600080fd5b50518b519093508b9087908110612c9b57fe5b60209081029091010151831015612cfc576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f5a45524f5f5441524745545f414d4f554e5400000000000000000000604482015290519081900360640190fd5b612d0c848463ffffffff61358016565b600160a060020a03861660008181526008602052604090208290559092506000805160206148a18339815191521415612d7257604051339084156108fc029085906000818181858888f19350505050158015612d6c573d6000803e3d6000fd5b50612d7d565b612d7d853385613ad2565b60408051848152602081018490528082018990529051600160a060020a0387169133917fbc7d19d505c7ec4db83f3b51f19fb98c4c8a99922e7839d1ee608dfbee29501b9181900360600190a350600160a060020a03841660009081526008602052604090206001015463ffffffff16612df987868484613725565b600190950194612b91565b505050505050505050505050565b600254604080517fbb34534c000000000000000000000000000000000000000000000000000000008152600481018490529051600092600160a060020a03169163bb34534c91602480830192602092919082900301818787803b158015612e7857600080fd5b505af1158015612e8c573d6000803e3d6000fd5b505050506040513d6020811015612ea257600080fd5b505192915050565b600160a060020a038116301415610be0576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f414444524553535f49535f53454c4600000000000000000000000000604482015290519081900360640190fd5b612f13612a36565b82612f1d816130e4565b82612f27816130e4565b83612f3181612eaa565b611413868686613ad2565b80612f4681612a86565b600160a060020a0382166000805160206148a18339815191521415612f8657600160a060020a03821660009081526008602052604090203031905561302d565b604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a038416916370a082319160248083019260209291908290030181600087803b158015612fe757600080fd5b505af1158015612ffb573d6000803e3d6000fd5b505050506040513d602081101561301157600080fd5b5051600160a060020a0383166000908152600860205260409020555b5050565b61303a81612e12565b600160a060020a03163314610be0576040805160e560020a62461bcd02815260206004820152601160248201526000805160206148e1833981519152604482015290519081900360640190fd5b61308f610be3565b15610cae576040805160e560020a62461bcd02815260206004820152600a60248201527f4552525f41435449564500000000000000000000000000000000000000000000604482015290519081900360640190fd5b600160a060020a0381161515610be0576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b60008163ffffffff161180156131635750620f424063ffffffff821611155b1515610be0576040805160e560020a62461bcd02815260206004820152601a60248201527f4552525f494e56414c49445f524553455256455f574549474854000000000000604482015290519081900360640190fd5b6131c1610be3565b1515610cae576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f494e4143544956450000000000000000000000000000000000000000604482015290519081900360640190fd5b600754835160009182918114613265576040805160e560020a62461bcd0281526020600482015260136024820152600080516020614841833981519152604482015290519081900360640190fd5b845181146132bd576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f494e56414c49445f414d4f554e540000000000000000000000000000604482015290519081900360640190fd5b600092505b8083101561347b576008600087858151811015156132dc57fe5b6020908102909101810151600160a060020a031682528101919091526040016000206001015460ff6601000000000000909104161515613354576040805160e560020a62461bcd0281526020600482015260136024820152600080516020614841833981519152604482015290519081900360640190fd5b600091505b808210156133bc57858281518110151561336f57fe5b90602001906020020151600160a060020a031660078481548110151561339157fe5b600091825260209091200154600160a060020a031614156133b1576133bc565b600190910190613359565b808210613401576040805160e560020a62461bcd0281526020600482015260136024820152600080516020614841833981519152604482015290519081900360640190fd5b6000858481518110151561341157fe5b6020908102909101015111613470576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f494e56414c49445f414d4f554e540000000000000000000000000000604482015290519081900360640190fd5b6001909201916132c2565b60008411611413576040805160e560020a62461bcd02815260206004820152600f60248201527f4552525f5a45524f5f414d4f554e540000000000000000000000000000000000604482015290519081900360640190fd5b60008115156134ed576134e68484613b89565b90506134fb565b6134f8848484613d90565b90505b9392505050565b60095460009061261390620f42409061353290859068010000000000000000900463ffffffff9081169061415016565b9063ffffffff6141c916565b60075460005b8181101561302d5761357860078281548110151561355e57fe5b600091825260209091200154600160a060020a0316612f3c565b600101613544565b6000818310156135da576040805160e560020a62461bcd02815260206004820152600d60248201527f4552525f554e444552464c4f5700000000000000000000000000000000000000604482015290519081900360640190fd5b50900390565b604080517f7472616e7366657246726f6d28616464726573732c616464726573732c75696e81527f74323536290000000000000000000000000000000000000000000000000000006020808301919091528251918290036025018220600160a060020a038088166024850152861660448401526064808401869052845180850390910181526084909301909352810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19909316929092179091526136c2908590614237565b50505050565b6000828201838110156134fb576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b600554600160a060020a0380851691167f77f29993cf2c084e726f7e802da0719d6a0ade3e204badc7a3ffd57ecb768c2461376385620f4240614150565b6137768863ffffffff8088169061415016565b6040805192835260208301919091528051918290030190a350505050565b600161379e611b85565b61ffff16116137f7576040805160e560020a62461bcd02815260206004820152601960248201527f4552525f494e56414c49445f524553455256455f434f554e5400000000000000604482015290519081900360640190fd5b610cae6142c5565b600080600080613810898989611be1565b909350915082151561386c576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f5a45524f5f5441524745545f414d4f554e5400000000000000000000604482015290519081900360640190fd5b61387588612619565b905080831061388057fe5b600160a060020a0389166000805160206148a183398151915214156138fb573487146138f6576040805160e560020a62461bcd02815260206004820152601760248201527f4552525f4554485f414d4f554e545f4d49534d41544348000000000000000000604482015290519081900360640190fd5b613a03565b341580156139ad5750866139aa6139118b612619565b604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a038e16916370a082319160248083019260209291908290030181600087803b15801561397257600080fd5b505af1158015613986573d6000803e3d6000fd5b505050506040513d602081101561399c57600080fd5b50519063ffffffff61358016565b10155b1515613a03576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f494e56414c49445f414d4f554e540000000000000000000000000000604482015290519081900360640190fd5b613a0c89612f3c565b600160a060020a038816600090815260086020526040902054613a35908463ffffffff61358016565b600160a060020a0389166000818152600860205260409020919091556000805160206148a18339815191521415613aa257604051600160a060020a0386169084156108fc029085906000818181858888f19350505050158015613a9c573d6000803e3d6000fd5b50613aad565b613aad888685613ad2565b613abb8989888a87876143a3565b613ac58989614428565b5090979650505050505050565b604080517f7472616e7366657228616464726573732c75696e74323536290000000000000081528151908190036019018120600160a060020a038516602483015260448083018590528351808403909101815260649092019092526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1990931692909217909152613b84908490614237565b505050565b600080600080613b9885611b8b565b9250600091505b8551821015613d865785516000805160206148a183398151915290879084908110613bc657fe5b60209081029091010151600160a060020a031614613c1857613c188683815181101515613bef57fe5b9060200190602002015133308886815181101515613c0957fe5b906020019060200201516135e0565b8482815181101515613c2657fe5b90602001906020020151600860008885815181101515613c4257fe5b6020908102909101810151600160a060020a03168252810191909152604001600020558551869083908110613c7357fe5b90602001906020020151600160a060020a031633600160a060020a03167f4a1a2a6176e9646d9e3157f7c2ab3c499f18337c0b0828cfb28e0a61de4a11f78785815181101515613cbf57fe5b906020019060200201518886815181101515613cd757fe5b60209081029091018101516040805193845291830152818101889052519081900360600190a3600860008784815181101515613d0f57fe5b6020908102909101810151600160a060020a0316825281019190915260400160002060010154865163ffffffff9091169150613d7b908490889085908110613d5357fe5b906020019060200201518785815181101515613d6b57fe5b9060200190602002015184613725565b600190910190613b9f565b5090949350505050565b600080600080600080600080600080613da761353e565b6000805160206148a1833981519152600052600860205260008051602061486183398151915254613dde903463ffffffff61358016565b6000805160206148a1833981519152600052600860205260008051602061486183398151915255613e1c6000805160206148c1833981519152612e12565b9850613e2a898c8f8f614636565b9750613e3c8b8963ffffffff6136c816565b9650600095505b8c5186101561413f578c86815181101515613e5a57fe5b9060200190602002015194506008600086600160a060020a0316600160a060020a0316815260200190815260200160002060000154935088600160a060020a031663ebbb21588c86600960009054906101000a900463ffffffff168c6040518563ffffffff1660e060020a028152600401808581526020018481526020018363ffffffff1663ffffffff168152602001828152602001945050505050602060405180830381600087803b158015613f1057600080fd5b505af1158015613f24573d6000803e3d6000fd5b505050506040513d6020811015613f3a57600080fd5b5051925060008311613f96576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f5a45524f5f5441524745545f414d4f554e5400000000000000000000604482015290519081900360640190fd5b8b86815181101515613fa457fe5b60209081029091010151831115613fb757fe5b600160a060020a0385166000805160206148a183398151915214613fe657613fe1853330866135e0565b614059565b828c87815181101515613ff557fe5b9060200190602002015111156140595733600160a060020a03166108fc848e8981518110151561402157fe5b90602001906020020151039081150290604051600060405180830381858888f19350505050158015614057573d6000803e3d6000fd5b505b614069848463ffffffff6136c816565b600160a060020a03861660008181526008602090815260409182902084905581518781529081018490528082018b90529051929450909133917f4a1a2a6176e9646d9e3157f7c2ab3c499f18337c0b0828cfb28e0a61de4a11f7919081900360600190a3600860008e888151811015156140df57fe5b6020908102909101810151600160a060020a03168252810191909152604001600020600101548d5163ffffffff90911691506141349088908f908990811061412357fe5b906020019060200201518484613725565b600190950194613e43565b50959b9a5050505050505050505050565b600080831515614163576000915061177d565b5082820282848281151561417357fe5b04146134fb576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b600080808311614223576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f4449564944455f42595f5a45524f0000000000000000000000000000604482015290519081900360640190fd5b828481151561422e57fe5b04949350505050565b61423f614821565b602060405190810160405280600181525090506020818351602085016000875af180151561426c57600080fd5b5080511515613b84576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f5452414e534645525f4641494c454400000000000000000000000000604482015290519081900360640190fd5b6142cd612a36565b60006142d7611b85565b61ffff1611614330576040805160e560020a62461bcd02815260206004820152601960248201527f4552525f494e56414c49445f524553455256455f434f554e5400000000000000604482015290519081900360640190fd5b600560009054906101000a9004600160a060020a0316600160a060020a03166379ba50976040518163ffffffff1660e060020a028152600401600060405180830381600087803b15801561438357600080fd5b505af1158015614397573d6000803e3d6000fd5b50505050610cae61353e565b7f800000000000000000000000000000000000000000000000000000000000000081106143cc57fe5b60408051848152602081018490528082018390529051600160a060020a038087169288821692918a16917f276856b36cbc45526a0ba64f44611557a2a8b68662c5388e9fe6d72e86e1c8cb9181900360600190a4505050505050565b6000806000806000806000600560009054906101000a9004600160a060020a0316600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561448657600080fd5b505af115801561449a573d6000803e3d6000fd5b505050506040513d60208110156144b057600080fd5b505196506144bd89612619565b95506144c888612619565b600160a060020a03808b16600090815260086020526040808220600190810154938d1683529120015491965063ffffffff90811695509081169350614511908690869061415016565b91506145268663ffffffff8086169061415016565b60408051848152602081018390528151929350600160a060020a03808c1693908d16927f77f29993cf2c084e726f7e802da0719d6a0ade3e204badc7a3ffd57ecb768c24928290030190a361457d878a8887613725565b61458987898786613725565b604080518881526020810188905263ffffffff8616818301529051600160a060020a038b16917f8a6a7f53b3c8fa1dc4b83e3f1be668c1b251ff8d44cdcb83eb3acec3fec6a788919081900360600190a2604080518881526020810187905263ffffffff8516818301529051600160a060020a038a16917f8a6a7f53b3c8fa1dc4b83e3f1be668c1b251ff8d44cdcb83eb3acec3fec6a788919081900360600190a2505050505050505050565b60008060015b84518110156146f9576146a160086000878481518110151561465a57fe5b6020908102909101810151600160a060020a0316825281019190915260400160002054855186908590811061468b57fe5b602090810290910101519063ffffffff61415016565b6146e76008600088868151811015156146b657fe5b6020908102909101810151600160a060020a0316825281019190915260400160002054865187908590811061468b57fe5b10156146f1578091505b60010161463c565b86600160a060020a0316632f55bdb58760086000898781518110151561471b57fe5b6020908102909101810151600160a060020a0316825281019190915260400160002054600954885163ffffffff9091169089908890811061475857fe5b906020019060200201516040518563ffffffff1660e060020a028152600401808581526020018481526020018363ffffffff1663ffffffff168152602001828152602001945050505050602060405180830381600087803b1580156147bc57600080fd5b505af11580156147d0573d6000803e3d6000fd5b505050506040513d60208110156147e657600080fd5b5051979650505050505050565b6040805160a08101825260008082526020820181905291810182905260608101829052608081019190915290565b602060405190810160405280600190602082028038833950919291505056004552525f494e56414c49445f5245534552564500000000000000000000000000353c2eb9e53a4a4a6d45d72082ff2e9dc829d1125618772a83eb0e7f86632c42536f7672796e53776170436f6e76657274657255706772616465720000000000000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee536f7672796e53776170466f726d756c610000000000000000000000000000004552525f4143434553535f44454e494544000000000000000000000000000000a165627a7a72305820324b4364d6a1792677c2fd82e313b62b9cc957d58949fe9823a7cc610a1a0c050029", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x258 JUMPI PUSH4 0xFFFFFFFF PUSH1 0xE0 PUSH1 0x2 EXP PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x24C7EC7 DUP2 EQ PUSH2 0x2E4 JUMPI DUP1 PUSH4 0xC7D5CD8 EQ PUSH2 0x2FE JUMPI DUP1 PUSH4 0xE53AAE9 EQ PUSH2 0x32C JUMPI DUP1 PUSH4 0x12C2ACA4 EQ PUSH2 0x381 JUMPI DUP1 PUSH4 0x19B64015 EQ PUSH2 0x3AA JUMPI DUP1 PUSH4 0x1CFAB290 EQ PUSH2 0x3DE JUMPI DUP1 PUSH4 0x1E1401F8 EQ PUSH2 0x3FF JUMPI DUP1 PUSH4 0x21E6B53D EQ PUSH2 0x442 JUMPI DUP1 PUSH4 0x22F3E2D4 EQ PUSH2 0x463 JUMPI DUP1 PUSH4 0x2FE8A6AD EQ PUSH2 0x478 JUMPI DUP1 PUSH4 0x38A5E016 EQ PUSH2 0x48D JUMPI DUP1 PUSH4 0x395900D4 EQ PUSH2 0x4A2 JUMPI DUP1 PUSH4 0x3E8FF43F EQ PUSH2 0x4CC JUMPI DUP1 PUSH4 0x415F1240 EQ PUSH2 0x4F8 JUMPI DUP1 PUSH4 0x49D10B64 EQ PUSH2 0x510 JUMPI DUP1 PUSH4 0x4AF80F0E EQ PUSH2 0x525 JUMPI DUP1 PUSH4 0x54FD4D50 EQ PUSH2 0x546 JUMPI DUP1 PUSH4 0x579CD3CA EQ PUSH2 0x55B JUMPI DUP1 PUSH4 0x5E35359E EQ PUSH2 0x570 JUMPI DUP1 PUSH4 0x61CD756E EQ PUSH2 0x59A JUMPI DUP1 PUSH4 0x67B6D57C EQ PUSH2 0x5AF JUMPI DUP1 PUSH4 0x690D8320 EQ PUSH2 0x5D0 JUMPI DUP1 PUSH4 0x6A49D2C4 EQ PUSH2 0x5F1 JUMPI DUP1 PUSH4 0x6AA5332C EQ PUSH2 0x61B JUMPI DUP1 PUSH4 0x71F52BF3 EQ PUSH2 0x645 JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x65A JUMPI DUP1 PUSH4 0x7B103999 EQ PUSH2 0x66F JUMPI DUP1 PUSH4 0x7D8916BD EQ PUSH2 0x684 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x707 JUMPI DUP1 PUSH4 0x94C275AD EQ PUSH2 0x71C JUMPI DUP1 PUSH4 0x9B99A8E2 EQ PUSH2 0x731 JUMPI DUP1 PUSH4 0xA60E7724 EQ PUSH2 0x746 JUMPI DUP1 PUSH4 0xAF94B8D8 EQ PUSH2 0x79B JUMPI DUP1 PUSH4 0xB127C0A5 EQ PUSH2 0x7C5 JUMPI DUP1 PUSH4 0xB4A176D3 EQ PUSH2 0x858 JUMPI DUP1 PUSH4 0xBBB7E5D8 EQ PUSH2 0x86D JUMPI DUP1 PUSH4 0xBF754558 EQ PUSH2 0x888 JUMPI DUP1 PUSH4 0xC45D3D92 EQ PUSH2 0x89D JUMPI DUP1 PUSH4 0xCA1D209D EQ PUSH2 0x8B2 JUMPI DUP1 PUSH4 0xCDC91C69 EQ PUSH2 0x8BD JUMPI DUP1 PUSH4 0xD031370B EQ PUSH2 0x8D2 JUMPI DUP1 PUSH4 0xD260529C EQ PUSH2 0x8EA JUMPI DUP1 PUSH4 0xD3FB73B4 EQ PUSH2 0x8FF JUMPI DUP1 PUSH4 0xD4EE1D90 EQ PUSH2 0x914 JUMPI DUP1 PUSH4 0xD55EC697 EQ PUSH2 0x929 JUMPI DUP1 PUSH4 0xD66BD524 EQ PUSH2 0x93E JUMPI DUP1 PUSH4 0xD8959512 EQ PUSH2 0x95F JUMPI DUP1 PUSH4 0xDC8DE379 EQ PUSH2 0x980 JUMPI DUP1 PUSH4 0xE8DC12FF EQ PUSH2 0x9A1 JUMPI DUP1 PUSH4 0xECBCA55D EQ PUSH2 0x9CB JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x9E9 JUMPI DUP1 PUSH4 0xFC0C546A EQ PUSH2 0xA0A JUMPI JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x0 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH32 0x353C2EB9E53A4A4A6D45D72082FF2E9DC829D1125618772A83EB0E7F86632C43 SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO PUSH2 0x2E2 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4841 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2F0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E2 PUSH1 0x4 CALLDATALOAD ISZERO ISZERO PUSH2 0xA1F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x30A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x313 PUSH2 0xA67 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x338 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x34D PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0xA73 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP6 DUP7 MSTORE PUSH4 0xFFFFFFFF SWAP1 SWAP5 AND PUSH1 0x20 DUP7 ADD MSTORE SWAP2 ISZERO ISZERO DUP5 DUP5 ADD MSTORE ISZERO ISZERO PUSH1 0x60 DUP5 ADD MSTORE ISZERO ISZERO PUSH1 0x80 DUP4 ADD MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0xA0 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x38D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x396 PUSH2 0xB0E JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3B6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3C2 PUSH1 0x4 CALLDATALOAD PUSH2 0xB57 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x313 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0xB83 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x40B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x429 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0xBB5 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x44E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0xBCF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x46F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x396 PUSH2 0xBE3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x484 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x396 PUSH2 0xC7D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x499 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E2 PUSH2 0xC9E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4AE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0xCB0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4D8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4E1 PUSH2 0xD4B JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0xFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x504 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E2 PUSH1 0x4 CALLDATALOAD PUSH2 0xD50 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x51C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E2 PUSH2 0xF94 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x531 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x1201 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x552 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4E1 PUSH2 0x1243 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x567 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x313 PUSH2 0x1248 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x57C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x1260 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5A6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3C2 PUSH2 0x1369 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5BB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x1378 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5DC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x141B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5FD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH4 0xFFFFFFFF PUSH1 0x24 CALLDATALOAD AND PUSH2 0x1520 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x627 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x633 PUSH1 0x4 CALLDATALOAD PUSH2 0x175F JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x651 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4E1 PUSH2 0x1784 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x666 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E2 PUSH2 0x1793 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x67B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3C2 PUSH2 0x1854 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x2E2 SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP POP PUSH1 0x40 DUP1 MLOAD DUP8 CALLDATALOAD DUP10 ADD DUP1 CALLDATALOAD PUSH1 0x20 DUP2 DUP2 MUL DUP5 DUP2 ADD DUP3 ADD SWAP1 SWAP6 MSTORE DUP2 DUP5 MSTORE SWAP9 SWAP12 SWAP11 SWAP10 DUP10 ADD SWAP9 SWAP3 SWAP8 POP SWAP1 DUP3 ADD SWAP6 POP SWAP4 POP DUP4 SWAP3 POP DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP POP SWAP4 CALLDATALOAD SWAP5 POP PUSH2 0x1863 SWAP4 POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x713 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3C2 PUSH2 0x1B62 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x728 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x313 PUSH2 0x1B71 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x73D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4E1 PUSH2 0x1B85 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x752 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x633 SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP PUSH2 0x1B8B SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7A7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x429 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x1BE1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7D1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 PUSH1 0x24 DUP1 CALLDATALOAD DUP3 DUP2 ADD CALLDATALOAD DUP5 DUP2 MUL DUP1 DUP8 ADD DUP7 ADD SWAP1 SWAP8 MSTORE DUP1 DUP7 MSTORE PUSH2 0x2E2 SWAP7 DUP5 CALLDATALOAD SWAP7 CALLDATASIZE SWAP7 PUSH1 0x44 SWAP6 SWAP2 SWAP5 SWAP1 SWAP2 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP POP PUSH1 0x40 DUP1 MLOAD DUP8 CALLDATALOAD DUP10 ADD DUP1 CALLDATALOAD PUSH1 0x20 DUP2 DUP2 MUL DUP5 DUP2 ADD DUP3 ADD SWAP1 SWAP6 MSTORE DUP2 DUP5 MSTORE SWAP9 SWAP12 SWAP11 SWAP10 DUP10 ADD SWAP9 SWAP3 SWAP8 POP SWAP1 DUP3 ADD SWAP6 POP SWAP4 POP DUP4 SWAP3 POP DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP PUSH2 0x1D86 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x864 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E2 PUSH2 0x1EBA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x879 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x633 PUSH1 0x4 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH2 0x1EF3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x894 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x396 PUSH2 0x1F0D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8A9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3C2 PUSH2 0x1F12 JUMP JUMPDEST PUSH2 0x2E2 PUSH1 0x4 CALLDATALOAD PUSH2 0x1F21 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8C9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E2 PUSH2 0x242E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8DE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3C2 PUSH1 0x4 CALLDATALOAD PUSH2 0x2487 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8F6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x396 PUSH2 0xD4B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x90B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3C2 PUSH2 0x24AF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x920 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3C2 PUSH2 0x24BE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x935 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E2 PUSH2 0x24CD JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x94A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x34D PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x25C2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x96B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x633 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x2608 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x98C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x633 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x2619 JUMP JUMPDEST PUSH2 0x633 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x44 CALLDATALOAD SWAP1 PUSH1 0x64 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x84 CALLDATALOAD AND PUSH2 0x2642 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9D7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E2 PUSH4 0xFFFFFFFF PUSH1 0x4 CALLDATALOAD AND PUSH2 0x2895 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x298A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA16 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3C2 PUSH2 0x2A27 JUMP JUMPDEST PUSH2 0xA27 PUSH2 0x2A36 JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD SWAP2 ISZERO ISZERO PUSH21 0x10000000000000000000000000000000000000000 MUL PUSH21 0xFF0000000000000000000000000000000000000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH4 0xFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0xA83 PUSH2 0x47F3 JUMP JUMPDEST POP POP POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP2 MLOAD PUSH1 0xA0 DUP2 ADD DUP4 MSTORE DUP2 SLOAD DUP1 DUP3 MSTORE PUSH1 0x1 SWAP1 SWAP3 ADD SLOAD PUSH4 0xFFFFFFFF DUP2 AND SWAP5 DUP3 ADD DUP6 SWAP1 MSTORE PUSH1 0xFF PUSH5 0x100000000 DUP3 DIV DUP2 AND ISZERO ISZERO SWAP5 DUP4 ADD SWAP5 SWAP1 SWAP5 MSTORE PUSH6 0x10000000000 DUP2 DIV DUP5 AND ISZERO ISZERO PUSH1 0x60 DUP4 ADD MSTORE PUSH7 0x1000000000000 SWAP1 DIV SWAP1 SWAP3 AND ISZERO ISZERO PUSH1 0x80 SWAP1 SWAP3 ADD DUP3 SWAP1 MSTORE SWAP6 SWAP2 SWAP5 POP SWAP2 SWAP3 POP DUP3 SWAP2 SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x0 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH32 0x353C2EB9E53A4A4A6D45D72082FF2E9DC829D1125618772A83EB0E7F86632C43 SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x7 DUP3 DUP2 SLOAD DUP2 LT ISZERO ISZERO PUSH2 0xB68 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0xB8F DUP2 PUSH2 0x2A86 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH4 0xFFFFFFFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xBC3 DUP6 DUP6 DUP6 PUSH2 0x1BE1 JUMP JUMPDEST SWAP2 POP SWAP2 POP SWAP4 POP SWAP4 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xBD7 PUSH2 0x2A36 JUMP JUMPDEST PUSH2 0xBE0 DUP2 PUSH2 0x1378 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 ADDRESS PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x8DA5CB5B PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC42 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xC56 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xC6C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH2 0xCA6 PUSH2 0x2A36 JUMP JUMPDEST PUSH2 0xCAE PUSH2 0x242E JUMP JUMPDEST JUMP JUMPDEST PUSH2 0xCB8 PUSH2 0x2A36 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x5E35359E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP6 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP3 ADD DUP6 SWAP1 MSTORE SWAP2 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP2 PUSH4 0x5E35359E SWAP2 PUSH1 0x64 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xD2E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xD42 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 PUSH1 0x0 PUSH2 0xD5E PUSH2 0x2AF3 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH1 0x0 DUP5 GT PUSH2 0xDBB JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xF PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5A45524F5F414D4F554E540000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x18160DDD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xE0E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xE22 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xE38 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xA24835D100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP9 SWAP1 MSTORE SWAP1 MLOAD SWAP3 SWAP6 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP2 AND SWAP2 PUSH4 0xA24835D1 SWAP2 PUSH1 0x44 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xEA9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xEBD JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x7 DUP1 SLOAD SWAP1 POP PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0xEF0 JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CODESIZE DUP4 CODECOPY ADD SWAP1 POP JUMPDEST POP SWAP2 POP PUSH1 0x0 SWAP1 POP JUMPDEST DUP2 MLOAD DUP2 LT ISZERO PUSH2 0xF23 JUMPI PUSH1 0x1 DUP3 DUP3 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xF11 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MSTORE PUSH1 0x1 ADD PUSH2 0xEF8 JUMP JUMPDEST PUSH2 0xF89 PUSH1 0x7 DUP1 SLOAD DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD DUP1 ISZERO PUSH2 0xF7C JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xF5E JUMPI JUMPDEST POP POP POP POP POP DUP4 DUP6 DUP8 PUSH2 0x2B4D JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0x4 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ DUP1 PUSH2 0xFC9 JUMPI POP PUSH1 0x3 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x100D JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48E1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x1036 PUSH32 0x436F6E7472616374526567697374727900000000000000000000000000000000 PUSH2 0x2E12 JUMP JUMPDEST PUSH1 0x2 SLOAD SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP4 AND SWAP2 AND EQ DUP1 ISZERO SWAP1 PUSH2 0x105F JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x10B5 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245474953545259000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0xBB34534C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH32 0x436F6E7472616374526567697374727900000000000000000000000000000000 PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP2 PUSH4 0xBB34534C SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1139 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x114D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1163 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ ISZERO PUSH2 0x11C4 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245474953545259000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP5 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP3 DUP4 AND OR SWAP1 SWAP3 SSTORE SWAP1 SWAP2 AND SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x1209 PUSH2 0x2A36 JUMP JUMPDEST DUP1 PUSH2 0x1213 DUP2 PUSH2 0x2EAA JUMP JUMPDEST POP PUSH1 0x6 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x20 DUP2 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH9 0x10000000000000000 SWAP1 DIV PUSH4 0xFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x126A PUSH2 0x2AF3 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH2 0x1277 PUSH2 0x2A36 JUMP JUMPDEST PUSH2 0x128E PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4881 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x2E12 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD SWAP1 SWAP2 POP PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 PUSH2 0x12CB JUMPI POP PUSH2 0x12C9 PUSH2 0xBE3 JUMP JUMPDEST ISZERO JUMPDEST DUP1 PUSH2 0x12E3 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ JUMPDEST ISZERO ISZERO PUSH2 0x1327 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48E1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x1332 DUP5 DUP5 DUP5 PUSH2 0x2F0B JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0xF89 JUMPI PUSH2 0xF89 DUP5 PUSH2 0x2F3C JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH2 0x1380 PUSH2 0x2A36 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4881 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x1398 DUP2 PUSH2 0x3031 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xF2FDE38B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP2 PUSH4 0xF2FDE38B SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x13FF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1413 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1425 PUSH2 0x2AF3 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH2 0x1432 PUSH2 0x2A36 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x144A DUP2 PUSH2 0x2A86 JUMP JUMPDEST PUSH2 0x1461 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4881 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x2E12 JUMP JUMPDEST SWAP2 POP PUSH2 0x146B PUSH2 0xBE3 JUMP JUMPDEST ISZERO DUP1 PUSH2 0x1484 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 DUP2 AND SWAP2 AND EQ JUMPDEST ISZERO ISZERO PUSH2 0x14C8 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48E1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP1 ADDRESS BALANCE DUP1 ISZERO PUSH2 0x8FC MUL SWAP2 PUSH1 0x0 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x14FE JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH2 0x1516 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x2F3C JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0x4 SSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x152A PUSH2 0x2A36 JUMP JUMPDEST PUSH2 0x1532 PUSH2 0x3087 JUMP JUMPDEST DUP3 PUSH2 0x153C DUP2 PUSH2 0x30E4 JUMP JUMPDEST DUP4 PUSH2 0x1546 DUP2 PUSH2 0x2EAA JUMP JUMPDEST DUP4 PUSH2 0x1550 DUP2 PUSH2 0x3144 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 DUP2 AND SWAP2 AND EQ DUP1 ISZERO SWAP1 PUSH2 0x1594 JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x15D8 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4841 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x9 SLOAD PUSH4 0xFFFFFFFF SWAP1 DUP2 AND PUSH3 0xF4240 SUB DUP2 AND SWAP1 DUP7 AND GT ISZERO PUSH2 0x1643 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F574549474854000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0xFFFF PUSH2 0x164E PUSH2 0x1B85 JUMP JUMPDEST PUSH2 0xFFFF AND LT PUSH2 0x16A7 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F434F554E5400000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP2 DUP2 SSTORE PUSH1 0x1 SWAP1 DUP2 ADD DUP1 SLOAD PUSH7 0xFF000000000000 NOT PUSH4 0xFFFFFFFF DUP1 DUP9 AND PUSH4 0xFFFFFFFF NOT SWAP4 DUP5 AND OR SWAP2 SWAP1 SWAP2 AND PUSH7 0x1000000000000 OR SWAP1 SWAP3 SSTORE PUSH1 0x7 DUP1 SLOAD SWAP4 DUP5 ADD DUP2 SSTORE SWAP1 SWAP4 MSTORE PUSH32 0xA66CC928B5EDB82AF9BD49922954155AB7B0942694BEA4CE44661D9A8736C688 SWAP1 SWAP2 ADD DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 SWAP4 OR SWAP1 SWAP3 SSTORE PUSH1 0x9 DUP1 SLOAD DUP1 DUP5 AND SWAP1 SWAP5 ADD SWAP1 SWAP3 AND SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 JUMPDEST PUSH1 0x0 DUP2 GT ISZERO PUSH2 0x177D JUMPI PUSH1 0x1 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0xA SWAP1 DIV PUSH2 0x1764 JUMP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x178E PUSH2 0x1B85 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x17E3 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48E1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND SWAP4 SWAP1 SWAP2 AND SWAP2 PUSH32 0x343765429AEA5A34B3FF6A3785A98A5ABB2597ACA87BFBB58632C173D585373A SWAP2 LOG3 PUSH1 0x1 DUP1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND OR SWAP1 SWAP2 SSTORE AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x1870 PUSH2 0x2AF3 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH2 0x187D PUSH2 0x31B9 JUMP JUMPDEST PUSH2 0x1888 DUP7 DUP7 DUP7 PUSH2 0x3217 JUMP JUMPDEST PUSH1 0x0 SWAP3 POP JUMPDEST DUP6 MLOAD DUP4 LT ISZERO PUSH2 0x1946 JUMPI DUP6 MLOAD PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP1 DUP8 SWAP1 DUP6 SWAP1 DUP2 LT PUSH2 0x18B4 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ ISZERO PUSH2 0x193B JUMPI CALLVALUE DUP6 DUP5 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x18DC JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MLOAD EQ PUSH2 0x193B JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4554485F414D4F554E545F4D49534D41544348000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 PUSH2 0x188D JUMP JUMPDEST PUSH1 0x0 CALLVALUE GT ISZERO PUSH2 0x19EB JUMPI PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x0 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH32 0x353C2EB9E53A4A4A6D45D72082FF2E9DC829D1125618772A83EB0E7F86632C43 SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO PUSH2 0x19EB JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4E4F5F4554485F524553455256450000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x18160DDD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1A3E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1A52 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1A68 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 POP PUSH2 0x1A77 DUP7 DUP7 DUP5 PUSH2 0x34D3 JUMP JUMPDEST SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0x1AD1 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F52455455524E5F544F4F5F4C4F570000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x867904B400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP2 PUSH4 0x867904B4 SWAP2 PUSH1 0x44 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1B3D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1B51 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x1 PUSH1 0x4 SSTORE POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH5 0x100000000 SWAP1 DIV PUSH4 0xFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x7 SLOAD SWAP1 JUMP JUMPDEST DUP1 MLOAD PUSH1 0x0 SWAP1 DUP2 SWAP1 DUP2 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1BC8 JUMPI PUSH2 0x1BBC DUP6 DUP3 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x1BAD JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH2 0x175F JUMP JUMPDEST SWAP1 SWAP3 ADD SWAP2 PUSH1 0x1 ADD PUSH2 0x1B94 JUMP JUMPDEST PUSH1 0x1 PUSH2 0x1BD4 DUP5 DUP5 PUSH2 0x1EF3 JUMP JUMPDEST SUB PUSH1 0xA EXP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x1BEF PUSH2 0x31B9 JUMP JUMPDEST DUP7 PUSH2 0x1BF9 DUP2 PUSH2 0x2A86 JUMP JUMPDEST DUP7 PUSH2 0x1C03 DUP2 PUSH2 0x2A86 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP10 DUP2 AND SWAP1 DUP10 AND EQ ISZERO PUSH2 0x1C67 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F534F555243455F54415247455400000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x1C7E PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48C1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x2E12 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x94491FAB PUSH2 0x1C95 DUP12 PUSH2 0x2619 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP13 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH4 0xFFFFFFFF AND PUSH2 0x1CC0 DUP13 PUSH2 0x2619 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP14 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 ADD SLOAD DUP2 MLOAD PUSH4 0xFFFFFFFF DUP10 DUP2 AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP3 MSTORE PUSH1 0x4 DUP3 ADD SWAP9 SWAP1 SWAP9 MSTORE SWAP6 DUP8 AND PUSH1 0x24 DUP8 ADD MSTORE PUSH1 0x44 DUP7 ADD SWAP5 SWAP1 SWAP5 MSTORE SWAP5 SWAP1 SWAP3 AND PUSH1 0x64 DUP5 ADD MSTORE PUSH1 0x84 DUP4 ADD DUP14 SWAP1 MSTORE SWAP3 MLOAD PUSH1 0xA4 DUP1 DUP5 ADD SWAP5 SWAP3 SWAP4 SWAP2 SWAP3 SWAP2 DUP4 SWAP1 SUB ADD SWAP1 DUP3 SWAP1 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1D3C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1D50 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1D66 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP4 POP PUSH2 0x1D73 DUP5 PUSH2 0x3502 JUMP JUMPDEST SWAP4 DUP5 SWAP1 SUB SWAP10 SWAP4 SWAP9 POP SWAP3 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1D90 PUSH2 0x2AF3 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH2 0x1D9D PUSH2 0x31B9 JUMP JUMPDEST PUSH2 0x1DA8 DUP4 DUP4 DUP7 PUSH2 0x3217 JUMP JUMPDEST PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x18160DDD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1DFB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1E0F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1E25 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xA24835D100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP9 SWAP1 MSTORE SWAP1 MLOAD SWAP3 SWAP4 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP2 AND SWAP2 PUSH4 0xA24835D1 SWAP2 PUSH1 0x44 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1E96 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1EAA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0xF89 DUP4 DUP4 DUP4 DUP8 PUSH2 0x2B4D JUMP JUMPDEST PUSH2 0x1EC2 PUSH2 0x2A36 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x2 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x2 DUP2 DIV DUP5 ADD DUP2 ISZERO ISZERO PUSH2 0x1F05 JUMPI INVALID JUMPDEST DIV SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x1 DUP2 JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x1F38 PUSH2 0x2AF3 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH2 0x1F45 PUSH2 0x353E JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x0 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4861 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SLOAD PUSH2 0x1F7C SWAP1 CALLVALUE PUSH4 0xFFFFFFFF PUSH2 0x3580 AND JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4861 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP3 SWAP1 SWAP3 SSTORE PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x18160DDD00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP4 PUSH4 0x18160DDD SWAP4 PUSH1 0x4 DUP1 DUP5 ADD SWAP5 SWAP3 SWAP4 DUP4 SWAP1 SUB ADD SWAP1 DUP3 SWAP1 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2006 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x201A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2030 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP10 POP PUSH2 0x204B PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48C1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x2E12 JUMP JUMPDEST PUSH1 0x7 SLOAD SWAP1 SWAP10 POP SWAP8 POP PUSH1 0x0 SWAP7 POP JUMPDEST DUP8 DUP8 LT ISZERO PUSH2 0x2398 JUMPI PUSH1 0x7 DUP1 SLOAD DUP9 SWAP1 DUP2 LT PUSH2 0x206E JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP6 POP PUSH1 0x8 PUSH1 0x0 DUP8 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD SWAP5 POP DUP9 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xEBBB2158 DUP12 DUP8 PUSH1 0x9 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH4 0xFFFFFFFF AND DUP16 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH4 0xFFFFFFFF AND PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP5 POP POP POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2138 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x214C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2162 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP4 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ ISZERO PUSH2 0x22C4 JUMPI DUP4 CALLVALUE GT ISZERO PUSH2 0x21C2 JUMPI PUSH1 0x40 MLOAD CALLER SWAP1 CALLVALUE DUP7 SWAP1 SUB DUP1 ISZERO PUSH2 0x8FC MUL SWAP2 PUSH1 0x0 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x21BC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH2 0x22BF JUMP JUMPDEST DUP4 CALLVALUE LT ISZERO PUSH2 0x22BF JUMPI CALLVALUE ISZERO PUSH2 0x2220 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4554485F56414C55450000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x9 SLOAD PUSH2 0x2248 SWAP1 PUSH13 0x1000000000000000000000000 SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER ADDRESS DUP8 PUSH2 0x35E0 JUMP JUMPDEST PUSH1 0x9 PUSH1 0xC SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x2E1A7D4D DUP6 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x22A6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x22BA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMPDEST PUSH2 0x22D0 JUMP JUMPDEST PUSH2 0x22D0 DUP7 CALLER ADDRESS DUP8 PUSH2 0x35E0 JUMP JUMPDEST PUSH2 0x22E0 DUP6 DUP6 PUSH4 0xFFFFFFFF PUSH2 0x36C8 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP2 SWAP1 SSTORE SWAP3 POP PUSH2 0x230D DUP11 DUP13 PUSH4 0xFFFFFFFF PUSH2 0x36C8 AND JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP7 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP7 SWAP1 MSTORE DUP1 DUP3 ADD DUP4 SWAP1 MSTORE SWAP1 MLOAD SWAP2 SWAP4 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 AND SWAP2 CALLER SWAP2 PUSH32 0x4A1A2A6176E9646D9E3157F7C2AB3C499F18337C0B0828CFB28E0A61DE4A11F7 SWAP2 SWAP1 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG3 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH4 0xFFFFFFFF AND PUSH2 0x238D DUP3 DUP8 DUP6 DUP5 PUSH2 0x3725 JUMP JUMPDEST PUSH1 0x1 SWAP1 SWAP7 ADD SWAP6 PUSH2 0x2058 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x867904B400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP15 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP2 PUSH4 0x867904B4 SWAP2 PUSH1 0x44 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2404 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2418 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x1 PUSH1 0x4 SSTORE POP POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x2436 PUSH2 0x2A36 JUMP JUMPDEST PUSH2 0x243E PUSH2 0x3794 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x2455 PUSH2 0xD4B JUMP JUMPDEST PUSH2 0xFFFF AND PUSH32 0x6B08C2E2C9969E55A647A764DB9B554D64DC42F1A704DA11A6D5B129AD163F2C PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 JUMP JUMPDEST PUSH1 0x7 DUP1 SLOAD DUP3 SWAP1 DUP2 LT PUSH2 0x2495 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP1 POP DUP2 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x24D7 PUSH2 0x2A36 JUMP JUMPDEST PUSH2 0x24EE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4881 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x2E12 JUMP JUMPDEST PUSH1 0x5 SLOAD SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x2508 PUSH2 0xD4B JUMP JUMPDEST PUSH2 0xFFFF AND PUSH32 0x6B08C2E2C9969E55A647A764DB9B554D64DC42F1A704DA11A6D5B129AD163F2C PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH2 0x2541 DUP2 PUSH2 0x298A JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x90F58C9600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 AND SWAP2 PUSH4 0x90F58C96 SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x25A2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x25B6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0xBE0 PUSH2 0x1793 JUMP JUMPDEST PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD PUSH4 0xFFFFFFFF DUP2 AND SWAP1 PUSH1 0xFF PUSH5 0x100000000 DUP3 DIV DUP2 AND SWAP2 PUSH6 0x10000000000 DUP2 DIV DUP3 AND SWAP2 PUSH7 0x1000000000000 SWAP1 SWAP2 DIV AND DUP6 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2613 DUP3 PUSH2 0x2619 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0x2625 DUP2 PUSH2 0x2A86 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x264C PUSH2 0x2AF3 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH32 0x536F7672796E537761704E6574776F726B000000000000000000000000000000 PUSH2 0x267B DUP2 PUSH2 0x3031 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 DUP2 AND SWAP1 DUP8 AND EQ ISZERO PUSH2 0x26DF JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F534F555243455F54415247455400000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND ISZERO DUP1 PUSH2 0x2822 JUMPI POP PUSH1 0x6 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x3AF32ABF00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP2 PUSH4 0x3AF32ABF SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x275A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x276E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2784 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD DUP1 ISZERO PUSH2 0x2822 JUMPI POP PUSH1 0x6 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x3AF32ABF00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP2 PUSH4 0x3AF32ABF SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x27F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2809 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x281F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD JUMPDEST ISZERO ISZERO PUSH2 0x2878 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4E4F545F57484954454C495354454400000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x2885 DUP8 DUP8 DUP8 DUP8 DUP8 PUSH2 0x37FF JUMP JUMPDEST PUSH1 0x1 PUSH1 0x4 SSTORE SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x289D PUSH2 0x2A36 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH4 0xFFFFFFFF PUSH5 0x100000000 SWAP1 SWAP2 DIV DUP2 AND SWAP1 DUP3 AND GT ISZERO PUSH2 0x2909 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F434F4E56455253494F4E5F464545000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH4 0xFFFFFFFF PUSH9 0x10000000000000000 SWAP1 SWAP4 DIV DUP4 AND DUP2 MSTORE SWAP2 DUP4 AND PUSH1 0x20 DUP4 ADD MSTORE DUP1 MLOAD PUSH32 0x81CD2FFB37DD237C0E4E2A3DE5265FCF9DEB43D3E7801E80DB9F1CCFBA7EE600 SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG1 PUSH1 0x9 DUP1 SLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP3 AND PUSH9 0x10000000000000000 MUL PUSH12 0xFFFFFFFF0000000000000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x2992 PUSH2 0x2A36 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x29F8 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F4F574E4552000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0xCAE JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48E1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO PUSH2 0xBE0 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4841 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x4 SLOAD PUSH1 0x1 EQ PUSH2 0xCAE JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5245454E5452414E4359000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x2B61 PUSH2 0x353E JUMP JUMPDEST PUSH2 0x2B78 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48C1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x2E12 JUMP JUMPDEST SWAP8 POP PUSH2 0x2B8A DUP11 DUP11 PUSH4 0xFFFFFFFF PUSH2 0x3580 AND JUMP JUMPDEST SWAP7 POP PUSH1 0x0 SWAP6 POP JUMPDEST DUP12 MLOAD DUP7 LT ISZERO PUSH2 0x2E04 JUMPI DUP12 DUP7 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x2BA8 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD SWAP5 POP PUSH1 0x8 PUSH1 0x0 DUP7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD SWAP4 POP DUP8 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x8074590A DUP12 DUP7 PUSH1 0x9 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH4 0xFFFFFFFF AND DUP14 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH4 0xFFFFFFFF AND PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP5 POP POP POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2C5E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2C72 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2C88 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD DUP12 MLOAD SWAP1 SWAP4 POP DUP12 SWAP1 DUP8 SWAP1 DUP2 LT PUSH2 0x2C9B JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MLOAD DUP4 LT ISZERO PUSH2 0x2CFC JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5A45524F5F5441524745545F414D4F554E5400000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x2D0C DUP5 DUP5 PUSH4 0xFFFFFFFF PUSH2 0x3580 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP3 SWAP1 SSTORE SWAP1 SWAP3 POP PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ ISZERO PUSH2 0x2D72 JUMPI PUSH1 0x40 MLOAD CALLER SWAP1 DUP5 ISZERO PUSH2 0x8FC MUL SWAP1 DUP6 SWAP1 PUSH1 0x0 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x2D6C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH2 0x2D7D JUMP JUMPDEST PUSH2 0x2D7D DUP6 CALLER DUP6 PUSH2 0x3AD2 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP5 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 SWAP1 MSTORE DUP1 DUP3 ADD DUP10 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND SWAP2 CALLER SWAP2 PUSH32 0xBC7D19D505C7EC4DB83F3B51F19FB98C4C8A99922E7839D1EE608DFBEE29501B SWAP2 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG3 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH4 0xFFFFFFFF AND PUSH2 0x2DF9 DUP8 DUP7 DUP5 DUP5 PUSH2 0x3725 JUMP JUMPDEST PUSH1 0x1 SWAP1 SWAP6 ADD SWAP5 PUSH2 0x2B91 JUMP JUMPDEST POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xBB34534C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP2 PUSH4 0xBB34534C SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2E78 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2E8C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2EA2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ADDRESS EQ ISZERO PUSH2 0xBE0 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F414444524553535F49535F53454C4600000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x2F13 PUSH2 0x2A36 JUMP JUMPDEST DUP3 PUSH2 0x2F1D DUP2 PUSH2 0x30E4 JUMP JUMPDEST DUP3 PUSH2 0x2F27 DUP2 PUSH2 0x30E4 JUMP JUMPDEST DUP4 PUSH2 0x2F31 DUP2 PUSH2 0x2EAA JUMP JUMPDEST PUSH2 0x1413 DUP7 DUP7 DUP7 PUSH2 0x3AD2 JUMP JUMPDEST DUP1 PUSH2 0x2F46 DUP2 PUSH2 0x2A86 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 AND PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ ISZERO PUSH2 0x2F86 JUMPI PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 ADDRESS BALANCE SWAP1 SSTORE PUSH2 0x302D JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2FE7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2FFB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x3011 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x303A DUP2 PUSH2 0x2E12 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0xBE0 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48E1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x308F PUSH2 0xBE3 JUMP JUMPDEST ISZERO PUSH2 0xCAE JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xA PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F41435449564500000000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0xBE0 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 PUSH4 0xFFFFFFFF AND GT DUP1 ISZERO PUSH2 0x3163 JUMPI POP PUSH3 0xF4240 PUSH4 0xFFFFFFFF DUP3 AND GT ISZERO JUMPDEST ISZERO ISZERO PUSH2 0xBE0 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F574549474854000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x31C1 PUSH2 0xBE3 JUMP JUMPDEST ISZERO ISZERO PUSH2 0xCAE JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E4143544956450000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x7 SLOAD DUP4 MLOAD PUSH1 0x0 SWAP2 DUP3 SWAP2 DUP2 EQ PUSH2 0x3265 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4841 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP5 MLOAD DUP2 EQ PUSH2 0x32BD JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F414D4F554E540000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 SWAP3 POP JUMPDEST DUP1 DUP4 LT ISZERO PUSH2 0x347B JUMPI PUSH1 0x8 PUSH1 0x0 DUP8 DUP6 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x32DC JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP3 MSTORE DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH1 0xFF PUSH7 0x1000000000000 SWAP1 SWAP2 DIV AND ISZERO ISZERO PUSH2 0x3354 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4841 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 SWAP2 POP JUMPDEST DUP1 DUP3 LT ISZERO PUSH2 0x33BC JUMPI DUP6 DUP3 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x336F JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x7 DUP5 DUP2 SLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3391 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ ISZERO PUSH2 0x33B1 JUMPI PUSH2 0x33BC JUMP JUMPDEST PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x3359 JUMP JUMPDEST DUP1 DUP3 LT PUSH2 0x3401 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4841 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP6 DUP5 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3411 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MLOAD GT PUSH2 0x3470 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F414D4F554E540000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 PUSH2 0x32C2 JUMP JUMPDEST PUSH1 0x0 DUP5 GT PUSH2 0x1413 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xF PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5A45524F5F414D4F554E540000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO PUSH2 0x34ED JUMPI PUSH2 0x34E6 DUP5 DUP5 PUSH2 0x3B89 JUMP JUMPDEST SWAP1 POP PUSH2 0x34FB JUMP JUMPDEST PUSH2 0x34F8 DUP5 DUP5 DUP5 PUSH2 0x3D90 JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x0 SWAP1 PUSH2 0x2613 SWAP1 PUSH3 0xF4240 SWAP1 PUSH2 0x3532 SWAP1 DUP6 SWAP1 PUSH9 0x10000000000000000 SWAP1 DIV PUSH4 0xFFFFFFFF SWAP1 DUP2 AND SWAP1 PUSH2 0x4150 AND JUMP JUMPDEST SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x41C9 AND JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x302D JUMPI PUSH2 0x3578 PUSH1 0x7 DUP3 DUP2 SLOAD DUP2 LT ISZERO ISZERO PUSH2 0x355E JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x2F3C JUMP JUMPDEST PUSH1 0x1 ADD PUSH2 0x3544 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT ISZERO PUSH2 0x35DA JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F554E444552464C4F5700000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP SWAP1 SUB SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x7472616E7366657246726F6D28616464726573732C616464726573732C75696E DUP2 MSTORE PUSH32 0x7432353629000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP3 MLOAD SWAP2 DUP3 SWAP1 SUB PUSH1 0x25 ADD DUP3 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP9 AND PUSH1 0x24 DUP6 ADD MSTORE DUP7 AND PUSH1 0x44 DUP5 ADD MSTORE PUSH1 0x64 DUP1 DUP5 ADD DUP7 SWAP1 MSTORE DUP5 MLOAD DUP1 DUP6 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x84 SWAP1 SWAP4 ADD SWAP1 SWAP4 MSTORE DUP2 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE PUSH2 0x36C2 SWAP1 DUP6 SWAP1 PUSH2 0x4237 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 ADD DUP4 DUP2 LT ISZERO PUSH2 0x34FB JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP6 AND SWAP2 AND PUSH32 0x77F29993CF2C084E726F7E802DA0719D6A0ADE3E204BADC7A3FFD57ECB768C24 PUSH2 0x3763 DUP6 PUSH3 0xF4240 PUSH2 0x4150 JUMP JUMPDEST PUSH2 0x3776 DUP9 PUSH4 0xFFFFFFFF DUP1 DUP9 AND SWAP1 PUSH2 0x4150 AND JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB ADD SWAP1 LOG3 POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH2 0x379E PUSH2 0x1B85 JUMP JUMPDEST PUSH2 0xFFFF AND GT PUSH2 0x37F7 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F434F554E5400000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0xCAE PUSH2 0x42C5 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x3810 DUP10 DUP10 DUP10 PUSH2 0x1BE1 JUMP JUMPDEST SWAP1 SWAP4 POP SWAP2 POP DUP3 ISZERO ISZERO PUSH2 0x386C JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5A45524F5F5441524745545F414D4F554E5400000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x3875 DUP9 PUSH2 0x2619 JUMP JUMPDEST SWAP1 POP DUP1 DUP4 LT PUSH2 0x3880 JUMPI INVALID JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP10 AND PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ ISZERO PUSH2 0x38FB JUMPI CALLVALUE DUP8 EQ PUSH2 0x38F6 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4554485F414D4F554E545F4D49534D41544348000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x3A03 JUMP JUMPDEST CALLVALUE ISZERO DUP1 ISZERO PUSH2 0x39AD JUMPI POP DUP7 PUSH2 0x39AA PUSH2 0x3911 DUP12 PUSH2 0x2619 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP15 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3972 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3986 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x399C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x3580 AND JUMP JUMPDEST LT ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x3A03 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F414D4F554E540000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x3A0C DUP10 PUSH2 0x2F3C JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x3A35 SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0x3580 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP10 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ ISZERO PUSH2 0x3AA2 JUMPI PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND SWAP1 DUP5 ISZERO PUSH2 0x8FC MUL SWAP1 DUP6 SWAP1 PUSH1 0x0 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x3A9C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH2 0x3AAD JUMP JUMPDEST PUSH2 0x3AAD DUP9 DUP7 DUP6 PUSH2 0x3AD2 JUMP JUMPDEST PUSH2 0x3ABB DUP10 DUP10 DUP9 DUP11 DUP8 DUP8 PUSH2 0x43A3 JUMP JUMPDEST PUSH2 0x3AC5 DUP10 DUP10 PUSH2 0x4428 JUMP JUMPDEST POP SWAP1 SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x7472616E7366657228616464726573732C75696E743235362900000000000000 DUP2 MSTORE DUP2 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x19 ADD DUP2 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x64 SWAP1 SWAP3 ADD SWAP1 SWAP3 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE PUSH2 0x3B84 SWAP1 DUP5 SWAP1 PUSH2 0x4237 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x3B98 DUP6 PUSH2 0x1B8B JUMP JUMPDEST SWAP3 POP PUSH1 0x0 SWAP2 POP JUMPDEST DUP6 MLOAD DUP3 LT ISZERO PUSH2 0x3D86 JUMPI DUP6 MLOAD PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP1 DUP8 SWAP1 DUP5 SWAP1 DUP2 LT PUSH2 0x3BC6 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ PUSH2 0x3C18 JUMPI PUSH2 0x3C18 DUP7 DUP4 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3BEF JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD CALLER ADDRESS DUP9 DUP7 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3C09 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH2 0x35E0 JUMP JUMPDEST DUP5 DUP3 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3C26 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x8 PUSH1 0x0 DUP9 DUP6 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3C42 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP3 MSTORE DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 SSTORE DUP6 MLOAD DUP7 SWAP1 DUP4 SWAP1 DUP2 LT PUSH2 0x3C73 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH32 0x4A1A2A6176E9646D9E3157F7C2AB3C499F18337C0B0828CFB28E0A61DE4A11F7 DUP8 DUP6 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3CBF JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD DUP9 DUP7 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3CD7 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x40 DUP1 MLOAD SWAP4 DUP5 MSTORE SWAP2 DUP4 ADD MSTORE DUP2 DUP2 ADD DUP9 SWAP1 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG3 PUSH1 0x8 PUSH1 0x0 DUP8 DUP5 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3D0F JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP3 MSTORE DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD SLOAD DUP7 MLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP2 AND SWAP2 POP PUSH2 0x3D7B SWAP1 DUP5 SWAP1 DUP9 SWAP1 DUP6 SWAP1 DUP2 LT PUSH2 0x3D53 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD DUP8 DUP6 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3D6B JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD DUP5 PUSH2 0x3725 JUMP JUMPDEST PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x3B9F JUMP JUMPDEST POP SWAP1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x3DA7 PUSH2 0x353E JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x0 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4861 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SLOAD PUSH2 0x3DDE SWAP1 CALLVALUE PUSH4 0xFFFFFFFF PUSH2 0x3580 AND JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x0 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4861 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SSTORE PUSH2 0x3E1C PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48C1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x2E12 JUMP JUMPDEST SWAP9 POP PUSH2 0x3E2A DUP10 DUP13 DUP16 DUP16 PUSH2 0x4636 JUMP JUMPDEST SWAP8 POP PUSH2 0x3E3C DUP12 DUP10 PUSH4 0xFFFFFFFF PUSH2 0x36C8 AND JUMP JUMPDEST SWAP7 POP PUSH1 0x0 SWAP6 POP JUMPDEST DUP13 MLOAD DUP7 LT ISZERO PUSH2 0x413F JUMPI DUP13 DUP7 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3E5A JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD SWAP5 POP PUSH1 0x8 PUSH1 0x0 DUP7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD SWAP4 POP DUP9 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xEBBB2158 DUP13 DUP7 PUSH1 0x9 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH4 0xFFFFFFFF AND DUP13 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH4 0xFFFFFFFF AND PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP5 POP POP POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3F10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3F24 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x3F3A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP3 POP PUSH1 0x0 DUP4 GT PUSH2 0x3F96 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5A45524F5F5441524745545F414D4F554E5400000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP12 DUP7 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3FA4 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MLOAD DUP4 GT ISZERO PUSH2 0x3FB7 JUMPI INVALID JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ PUSH2 0x3FE6 JUMPI PUSH2 0x3FE1 DUP6 CALLER ADDRESS DUP7 PUSH2 0x35E0 JUMP JUMPDEST PUSH2 0x4059 JUMP JUMPDEST DUP3 DUP13 DUP8 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3FF5 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD GT ISZERO PUSH2 0x4059 JUMPI CALLER PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x8FC DUP5 DUP15 DUP10 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x4021 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD SUB SWAP1 DUP2 ISZERO MUL SWAP1 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x4057 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP JUMPDEST PUSH2 0x4069 DUP5 DUP5 PUSH4 0xFFFFFFFF PUSH2 0x36C8 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP5 SWAP1 SSTORE DUP2 MLOAD DUP8 DUP2 MSTORE SWAP1 DUP2 ADD DUP5 SWAP1 MSTORE DUP1 DUP3 ADD DUP12 SWAP1 MSTORE SWAP1 MLOAD SWAP3 SWAP5 POP SWAP1 SWAP2 CALLER SWAP2 PUSH32 0x4A1A2A6176E9646D9E3157F7C2AB3C499F18337C0B0828CFB28E0A61DE4A11F7 SWAP2 SWAP1 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG3 PUSH1 0x8 PUSH1 0x0 DUP15 DUP9 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x40DF JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP3 MSTORE DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD SLOAD DUP14 MLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP2 AND SWAP2 POP PUSH2 0x4134 SWAP1 DUP9 SWAP1 DUP16 SWAP1 DUP10 SWAP1 DUP2 LT PUSH2 0x4123 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD DUP5 DUP5 PUSH2 0x3725 JUMP JUMPDEST PUSH1 0x1 SWAP1 SWAP6 ADD SWAP5 PUSH2 0x3E43 JUMP JUMPDEST POP SWAP6 SWAP12 SWAP11 POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 ISZERO ISZERO PUSH2 0x4163 JUMPI PUSH1 0x0 SWAP2 POP PUSH2 0x177D JUMP JUMPDEST POP DUP3 DUP3 MUL DUP3 DUP5 DUP3 DUP2 ISZERO ISZERO PUSH2 0x4173 JUMPI INVALID JUMPDEST DIV EQ PUSH2 0x34FB JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP4 GT PUSH2 0x4223 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4449564944455F42595F5A45524F0000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP3 DUP5 DUP2 ISZERO ISZERO PUSH2 0x422E JUMPI INVALID JUMPDEST DIV SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0x423F PUSH2 0x4821 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE POP SWAP1 POP PUSH1 0x20 DUP2 DUP4 MLOAD PUSH1 0x20 DUP6 ADD PUSH1 0x0 DUP8 GAS CALL DUP1 ISZERO ISZERO PUSH2 0x426C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD ISZERO ISZERO PUSH2 0x3B84 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5452414E534645525F4641494C454400000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x42CD PUSH2 0x2A36 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x42D7 PUSH2 0x1B85 JUMP JUMPDEST PUSH2 0xFFFF AND GT PUSH2 0x4330 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F434F554E5400000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x79BA5097 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x4383 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x4397 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0xCAE PUSH2 0x353E JUMP JUMPDEST PUSH32 0x8000000000000000000000000000000000000000000000000000000000000000 DUP2 LT PUSH2 0x43CC JUMPI INVALID JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP5 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 SWAP1 MSTORE DUP1 DUP3 ADD DUP4 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP8 AND SWAP3 DUP9 DUP3 AND SWAP3 SWAP2 DUP11 AND SWAP2 PUSH32 0x276856B36CBC45526A0BA64F44611557A2A8B68662C5388E9FE6D72E86E1C8CB SWAP2 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG4 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x18160DDD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x4486 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x449A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x44B0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP7 POP PUSH2 0x44BD DUP10 PUSH2 0x2619 JUMP JUMPDEST SWAP6 POP PUSH2 0x44C8 DUP9 PUSH2 0x2619 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 PUSH1 0x1 SWAP1 DUP2 ADD SLOAD SWAP4 DUP14 AND DUP4 MSTORE SWAP2 KECCAK256 ADD SLOAD SWAP2 SWAP7 POP PUSH4 0xFFFFFFFF SWAP1 DUP2 AND SWAP6 POP SWAP1 DUP2 AND SWAP4 POP PUSH2 0x4511 SWAP1 DUP7 SWAP1 DUP7 SWAP1 PUSH2 0x4150 AND JUMP JUMPDEST SWAP2 POP PUSH2 0x4526 DUP7 PUSH4 0xFFFFFFFF DUP1 DUP7 AND SWAP1 PUSH2 0x4150 AND JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP5 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP4 SWAP1 MSTORE DUP2 MLOAD SWAP3 SWAP4 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP13 AND SWAP4 SWAP1 DUP14 AND SWAP3 PUSH32 0x77F29993CF2C084E726F7E802DA0719D6A0ADE3E204BADC7A3FFD57ECB768C24 SWAP3 DUP3 SWAP1 SUB ADD SWAP1 LOG3 PUSH2 0x457D DUP8 DUP11 DUP9 DUP8 PUSH2 0x3725 JUMP JUMPDEST PUSH2 0x4589 DUP8 DUP10 DUP8 DUP7 PUSH2 0x3725 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP9 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP9 SWAP1 MSTORE PUSH4 0xFFFFFFFF DUP7 AND DUP2 DUP4 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND SWAP2 PUSH32 0x8A6A7F53B3C8FA1DC4B83E3F1BE668C1B251FF8D44CDCB83EB3ACEC3FEC6A788 SWAP2 SWAP1 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG2 PUSH1 0x40 DUP1 MLOAD DUP9 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP8 SWAP1 MSTORE PUSH4 0xFFFFFFFF DUP6 AND DUP2 DUP4 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP11 AND SWAP2 PUSH32 0x8A6A7F53B3C8FA1DC4B83E3F1BE668C1B251FF8D44CDCB83EB3ACEC3FEC6A788 SWAP2 SWAP1 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG2 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x1 JUMPDEST DUP5 MLOAD DUP2 LT ISZERO PUSH2 0x46F9 JUMPI PUSH2 0x46A1 PUSH1 0x8 PUSH1 0x0 DUP8 DUP5 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x465A JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP3 MSTORE DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 SLOAD DUP6 MLOAD DUP7 SWAP1 DUP6 SWAP1 DUP2 LT PUSH2 0x468B JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MLOAD SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x4150 AND JUMP JUMPDEST PUSH2 0x46E7 PUSH1 0x8 PUSH1 0x0 DUP9 DUP7 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x46B6 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP3 MSTORE DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 SLOAD DUP7 MLOAD DUP8 SWAP1 DUP6 SWAP1 DUP2 LT PUSH2 0x468B JUMPI INVALID JUMPDEST LT ISZERO PUSH2 0x46F1 JUMPI DUP1 SWAP2 POP JUMPDEST PUSH1 0x1 ADD PUSH2 0x463C JUMP JUMPDEST DUP7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x2F55BDB5 DUP8 PUSH1 0x8 PUSH1 0x0 DUP10 DUP8 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x471B JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP3 MSTORE DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH1 0x9 SLOAD DUP9 MLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP2 AND SWAP1 DUP10 SWAP1 DUP9 SWAP1 DUP2 LT PUSH2 0x4758 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH4 0xFFFFFFFF AND PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP5 POP POP POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x47BC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x47D0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x47E6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xA0 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE SWAP2 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x60 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 SWAP1 PUSH1 0x20 DUP3 MUL DUP1 CODESIZE DUP4 CODECOPY POP SWAP2 SWAP3 SWAP2 POP POP JUMP STOP GASLIMIT MSTORE MSTORE 0x5f 0x49 0x4e JUMP COINBASE 0x4c 0x49 DIFFICULTY 0x5f MSTORE GASLIMIT MSTORE8 GASLIMIT MSTORE JUMP GASLIMIT STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP CALLDATALOAD EXTCODECOPY 0x2e 0xb9 0xe5 GASPRICE 0x4a 0x4a PUSH14 0x45D72082FF2E9DC829D112561877 0x2a DUP4 0xeb 0xe PUSH32 0x86632C42536F7672796E53776170436F6E766572746572557067726164657200 STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee MSTORE8 PUSH16 0x7672796E53776170466F726D756C6100 STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP GASLIMIT MSTORE MSTORE 0x5f COINBASE NUMBER NUMBER GASLIMIT MSTORE8 MSTORE8 0x5f DIFFICULTY GASLIMIT 0x4e 0x49 GASLIMIT DIFFICULTY STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 ORIGIN 0x4b NUMBER PUSH5 0xD6A1792677 0xc2 REVERT DUP3 0xe3 SGT 0xb6 0x2b SWAP13 0xc9 JUMPI 0xd5 DUP10 0x49 INVALID SWAP9 0x23 0xa7 0xcc PUSH2 0xA1A 0xc SDIV STOP 0x29 ", + "sourceMap": "452:24101:23:-;;;;;;;;-1:-1:-1;452:24101:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;7097:29:4;;:8;:29;;:35;;;;;;;7089:67;;;;;;;-1:-1:-1;;;;;7089:67:4;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;7089:67:4;;;;;;;;;;;;;;;452:24101:23;3280:206:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3280:206:60;;;;;;;2700:30:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2700:30:4;;;;;;;;;;;;;;;;;;;;;;;18973:244;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;18973:244:4;;;-1:-1:-1;;;;;18973:244:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14417:102;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14417:102:4;;;;;;;;;;;;;;;;;;;;;;19274:125;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;19274:125:4;;;;;;;;;-1:-1:-1;;;;;19274:125:4;;;;;;;;;;;;;;13732:152;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;13732:152:4;;;-1:-1:-1;;;;;13732:152:4;;;19798:206;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;19798:206:4;-1:-1:-1;;;;;19798:206:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18669:110;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;18669:110:4;;;-1:-1:-1;;;;;18669:110:4;;;8967:93;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8967:93:4;;;;1250:38:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1250:38:60;;;;18836:80:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18836:80:4;;;;10292:155;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;10292:155:4;-1:-1:-1;;;;;10292:155:4;;;;;;;;;;;;1852:81:23;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1852:81:23;;;;;;;;;;;;;;;;;;;;;;;11984:542;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;11984:542:23;;;;;2080:832:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2080:832:60;;;;8691:132:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;8691:132:4;;;-1:-1:-1;;;;;8691:132:4;;;2221:35;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2221:35:4;;;;2993:31;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2993:31:4;;;;11282:601;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;11282:601:4;-1:-1:-1;;;;;11282:601:4;;;;;;;;;;;;1165:37:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1165:37:60;;;;9368:137:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;9368:137:4;;;-1:-1:-1;;;;;9368:137:4;;;7669:465;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;7669:465:4;;;-1:-1:-1;;;;;7669:465:4;;;12940:623;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;12940:623:4;;;-1:-1:-1;;;;;12940:623:4;;;;;;;21154:180:23;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;21154:180:23;;;;;;;;;;;;;;;;;;;;;19456:94:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19456:94:4;;;;1159:176:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1159:176:66;;;;1085:33:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1085:33:60;;;;6247:1402:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6247:1402:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6247:1402:23;;;;-1:-1:-1;6247:1402:23;-1:-1:-1;6247:1402:23;;-1:-1:-1;6247:1402:23;;;;;;;;;-1:-1:-1;6247:1402:23;;-1:-1:-1;;6247:1402:23;;;-1:-1:-1;6247:1402:23;;-1:-1:-1;;;;6247:1402:23;157:20:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;157:20:66;;;;2818:34:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2818:34:4;;;;12584:101;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12584:101:4;;;;21967:332:23;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;21967:332:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;21967:332:23;;-1:-1:-1;21967:332:23;;-1:-1:-1;;;;;;;21967:332:23;2798:838;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2798:838:23;-1:-1:-1;;;;;2798:838:23;;;;;;;;;;;;8055:722;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;8055:722:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8055:722:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8055:722:23;;;;-1:-1:-1;8055:722:23;-1:-1:-1;8055:722:23;;-1:-1:-1;8055:722:23;;;;;;;;;-1:-1:-1;8055:722:23;;-1:-1:-1;8055:722:23;;-1:-1:-1;;;;;;;8055:722:23;2974:119:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2974:119:60;;;;21574:116:23;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;21574:116:23;;;;;;;3095:46:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3095:46:4;;;;2322:37;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2322:37:4;;;;9209:2366:23;;;;;;2206:157;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2206:157:23;;;;2445:34:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2445:34:4;;;;;8282:71;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8282:71:4;;;;2260:30;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2260:30:4;;;;180:23:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;180:23:66;;;;12079:317:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12079:317:4;;;;2566:43;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2566:43:4;;;-1:-1:-1;;;;;2566:43:4;;;19607:134;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;19607:134:4;;;-1:-1:-1;;;;;19607:134:4;;;14111:155;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;14111:155:4;;;-1:-1:-1;;;;;14111:155:4;;;15044:649;;-1:-1:-1;;;;;15044:649:4;;;;;;;;;;;;;;;;;;;;;;;10618:240;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;10618:240:4;;;;;;;945:140:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;945:140:66;;;-1:-1:-1;;;;;945:140:66;;;18535:77:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18535:77:4;;;;3280:206:60;575:12:66;:10;:12::i;:::-;3426:26:60;:56;;;;;;;-1:-1:-1;;3426:56:60;;;;;;;;;3280:206::o;2700:30:4:-;;;;;;:::o;18973:244::-;19042:7;19054:6;19065:4;19074;19083;19097:22;;:::i;:::-;-1:-1:-1;;;;;;;;;19122:18:4;;;;;;;;:8;:18;;;;;;;;19097:43;;-1:-1:-1;19097:43:4;;;;;;;;;-1:-1:-1;19097:43:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;19122:18:4;;-1:-1:-1;19122:18:4;;19097:43;18973:244::o;14417:102::-;-1:-1:-1;;;;;;;;;;;14463:4:4;14480:29;:8;:29;;:35;;;;;;;;14417:102::o;19274:125::-;19336:11;19360:27;19388:6;19360:35;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;19360:35:4;;;-1:-1:-1;;19274:125:4:o;13732:152::-;13831:6;13807:13;6115:23;6129:8;6115:13;:23::i;:::-;-1:-1:-1;;;;;;;13850:23:4;;;;;:8;:23;;;;;-1:-1:-1;13850:30:4;;;;;13732:152::o;19798:206::-;19916:7;19925;19945:55;19964:12;19978;19992:7;19945:18;:55::i;:::-;19938:62;;;;19798:206;;;;;;:::o;18669:110::-;575:12:66;:10;:12::i;:::-;18741:34:4;18765:9;18741:23;:34::i;:::-;18669:110;:::o;8967:93::-;9025:6;;:14;;;;;;;;9008:4;;9051;;-1:-1:-1;;;;;9025:6:4;;;;:12;;:14;;;;;;;;;;;;;;;9008:4;9025:6;:14;;;5:2:-1;;;;30:1;27;20:12;5:2;9025:14:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9025:14:4;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9025:14:4;-1:-1:-1;;;;;9025:31:4;;;8967:93;-1:-1:-1;8967:93:4:o;1250:38:60:-;;;;;;;;;:::o;18836:80:4:-;575:12:66;:10;:12::i;:::-;18889:23:4;:21;:23::i;:::-;18836:80::o;10292:155::-;575:12:66;:10;:12::i;:::-;10400:6:4;;:43;;;;;;-1:-1:-1;;;;;10400:43:4;;;;;;;;;;;;;;;;;;;;;;:6;;;;;:21;;:43;;;;;-1:-1:-1;;10400:43:4;;;;;;;-1:-1:-1;10400:6:4;:43;;;5:2:-1;;;;30:1;27;20:12;5:2;10400:43:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10400:43:4;;;;10292:155;;;:::o;1852:81:23:-;1924:1;1852:81;:::o;11984:542::-;12100:19;12227:40;12321:9;565:12:68;:10;:12::i;:::-;287:1;581:5;:14;12066:1:23;12056:11;;12048:39;;;;;-1:-1:-1;;;;;12048:39:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;12134:6;;12122:33;;;-1:-1:-1;;;;;12122:33:23;;;;-1:-1:-1;;;;;12134:6:23;;;;12122:31;;:33;;;;;;;;;;;;;;;12134:6;;12122:33;;;5:2:-1;;;;30:1;27;20:12;5:2;12122:33:23;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12122:33:23;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12122:33:23;12178:6;;12166:48;;;;;;12194:10;12166:48;;;;;;;;;;;;12122:33;;-1:-1:-1;;;;;;12178:6:23;;;;12166:27;;:48;;;;;-1:-1:-1;;12166:48:23;;;;;;;;-1:-1:-1;12178:6:23;12166:48;;;5:2:-1;;;;30:1;27;20:12;5:2;12166:48:23;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12166:48:23;;;;12284:13;:20;;;;12270:35;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;136:17;;-1:-1;12270:35:23;;12227:78;;12333:1;12321:13;;12316:104;12340:23;:30;12336:1;:34;12316:104;;;12419:1;12390:23;12414:1;12390:26;;;;;;;;;;;;;;;;;;:30;12372:3;;12316:104;;;12433:85;12457:13;12433:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12433:85:23;;;-1:-1:-1;12433:85:23;;;;;;;;;;;;;;;;;12472:23;12497:11;12510:7;12433:23;:85::i;:::-;-1:-1:-1;;249:1:68;604:5;:16;-1:-1:-1;;11984:542:23:o;2080:832:60:-;2281:29;2183:5;;-1:-1:-1;;;;;2183:5:60;2169:10;:19;;:50;;-1:-1:-1;2193:26:60;;;;;;;2192:27;2169:50;2161:80;;;;;;;-1:-1:-1;;;;;2161:80:60;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;2161:80:60;;;;;;;;;;;;;;;2331:28;2341:17;2331:9;:28::i;:::-;2465:8;;2281:79;;-1:-1:-1;;;;;;2442:32:60;;;2465:8;;2442:32;;;;:61;;-1:-1:-1;;;;;;2478:25:60;;;;2442:61;2434:94;;;;;;;-1:-1:-1;;;;;2434:94:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;2628:40;;;;;;2650:17;2628:40;;;;;;-1:-1:-1;;;;;;;2628:21:60;;;;;:40;;;;;;;;;;;;;;;-1:-1:-1;2628:21:60;:40;;;5:2:-1;;;;30:1;27;20:12;5:2;2628:40:60;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2628:40:60;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2628:40:60;-1:-1:-1;;;;;2628:54:60;;;2620:87;;;;;-1:-1:-1;;;;;2620:87:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;2799:8;;;2784:12;:23;;-1:-1:-1;;;;;2799:8:60;;;-1:-1:-1;;2784:23:60;;;;;;;2886:22;;;;;;;;;;;2080:832::o;8691:132:4:-;575:12:66;:10;:12::i;:::-;8771:10:4;782:18:72;791:8;782;:18::i;:::-;-1:-1:-1;8787:19:4;:32;;-1:-1:-1;;8787:32:4;-1:-1:-1;;;;;8787:32:4;;;;;;;;;;8691:132::o;2221:35::-;2254:2;2221:35;:::o;2993:31::-;;;;;;;;;:::o;11282:601::-;11396:25;565:12:68;:10;:12::i;:::-;287:1;581:5;:14;575:12:66;:10;:12::i;:::-;11424:29:4;-1:-1:-1;;;;;;;;;;;11424:9:4;:29::i;:::-;-1:-1:-1;;;;;11622:16:4;;;;;;:8;:16;;;;;-1:-1:-1;11622:22:4;;11396:57;;-1:-1:-1;11622:22:4;;;;;11621:23;;:38;;;11649:10;:8;:10::i;:::-;11648:11;11621:38;:68;;;-1:-1:-1;11663:5:4;;-1:-1:-1;;;;;11663:26:4;;;:5;;:26;11621:68;11613:98;;;;;;;-1:-1:-1;;;;;11613:98:4;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;11613:98:4;;;;;;;;;;;;;;;11715:42;11736:6;11744:3;11749:7;11715:20;:42::i;:::-;-1:-1:-1;;;;;11829:16:4;;;;;;:8;:16;;;;;-1:-1:-1;11829:22:4;;;;;;;11825:54;;;11853:26;11872:6;11853:18;:26::i;1165:37:60:-;;;-1:-1:-1;;;;;1165:37:60;;:::o;9368:137:4:-;575:12:66;:10;:12::i;:::-;-1:-1:-1;;;;;;;;;;;1510:20:60;1516:13;1510:5;:20::i;:::-;9466:6:4;;:35;;;;;;-1:-1:-1;;;;;9466:35:4;;;;;;;;;:6;;;;;:24;;:35;;;;;-1:-1:-1;;9466:35:4;;;;;;;-1:-1:-1;9466:6:4;:35;;;5:2:-1;;;;30:1;27;20:12;5:2;9466:35:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9466:35:4;;;;591:1:66;9368:137:4;:::o;7669:465::-;7781:25;565:12:68;:10;:12::i;:::-;287:1;581:5;:14;575:12:66;:10;:12::i;:::-;-1:-1:-1;;;;;;;;;;;6115:23:4;6129:8;6115:13;:23::i;:::-;7809:29;-1:-1:-1;;;;;;;;;;;7809:9:4;:29::i;:::-;7781:57;;7938:10;:8;:10::i;:::-;7937:11;:41;;;-1:-1:-1;7952:5:4;;-1:-1:-1;;;;;7952:26:4;;;:5;;:26;7937:41;7929:71;;;;;;;-1:-1:-1;;;;;7929:71:4;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;7929:71:4;;;;;;;;;;;;;;;8004:35;;-1:-1:-1;;;;;8004:12:4;;;8025:4;8017:21;8004:35;;;;;;;;;8017:21;8004:12;:35;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8004:35:4;8078:52;-1:-1:-1;;;;;;;;;;;8078:18:4;:52::i;:::-;-1:-1:-1;;249:1:68;604:5;:16;-1:-1:-1;7669:465:4:o;12940:623::-;13373:26;575:12:66;:10;:12::i;:::-;5818:11:4;:9;:11::i;:::-;13043:6;475:23:72;489:8;475:13;:23::i;:::-;13061:6:4;782:18:72;791:8;782;:18::i;:::-;13090:7:4;6729:28;6749:7;6729:19;:28::i;:::-;13150:6;;-1:-1:-1;;;;;13132:25:4;;;13150:6;;13132:25;;;;:52;;-1:-1:-1;;;;;;13162:16:4;;;;;;:8;:16;;;;;-1:-1:-1;13162:22:4;;;;;;;13161:23;13132:52;13124:84;;;;;;;-1:-1:-1;;;;;13124:84:4;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;13124:84:4;;;;;;;;;;;;;;;13251:12;;;;;;1763:7;13231:32;13220:43;;;;;;;13212:82;;;;;-1:-1:-1;;;;;13212:82:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;13306:32;:19;:17;:19::i;:::-;:32;;;13298:70;;;;;-1:-1:-1;;;;;13298:70:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;13402:16:4;;;;;;;;:8;:16;;;;;13422:22;;;-1:-1:-1;13448:17:4;;;:27;;-1:-1:-1;;13448:27:4;;;;-1:-1:-1;;13448:27:4;;;;13479:23;;;;;;;;;13506:13;27:10:-1;;23:18;;;45:23;;13506:26:4;;;;;;;;;-1:-1:-1;;13506:26:4;;;;;;;13536:12;:23;;;;;;;;;;;;;;;;;;;12940:623::o;21154:180:23:-;21210:7;;21271:2;21254:53;21279:1;21275;:5;21254:53;;;21304:3;;;;;;21287:2;21282:7;;21254:53;;;-1:-1:-1;21325:1:23;21154:180;-1:-1:-1;;21154:180:23:o;19456:94:4:-;19508:6;19527:19;:17;:19::i;:::-;19520:26;;19456:94;:::o;1159:176:66:-;1219:8;;-1:-1:-1;;;;;1219:8:66;1205:10;:22;1197:52;;;;;-1:-1:-1;;;;;1197:52:66;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;1197:52:66;;;;;;;;;;;;;;;1277:8;;;1270:5;;1258:28;;-1:-1:-1;;;;;1277:8:66;;;;1270:5;;;;1258:28;;;1298:8;;;;1290:16;;-1:-1:-1;;;;;1298:8:66;;-1:-1:-1;;1290:16:66;;;;;;;1310:21;;;1159:176::o;1085:33:60:-;;;-1:-1:-1;;;;;1085:33:60;;:::o;6247:1402:23:-;6680:9;7130:19;7291:14;565:12:68;:10;:12::i;:::-;287:1;581:5;:14;5606:9:4;:7;:9::i;:::-;6478:65:23;6499:14;6515:15;6532:10;6478:20;:65::i;:::-;6692:1;6680:13;;6675:195;6699:14;:21;6695:1;:25;6675:195;;;6744:17;;-1:-1:-1;;;;;;;;;;;1884:42:4;6744:14:23;;6759:1;;6744:17;;;;;;;;;;;;;;;-1:-1:-1;;;;;6744:40:23;;6740:130;;;6833:9;6811:15;6827:1;6811:18;;;;;;;;;;;;;;;;;;;:31;6803:67;;;;;-1:-1:-1;;;;;6803:67:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;6722:3;;;;;6675:195;;;7002:1;6990:9;:13;6986:98;;;-1:-1:-1;;;;;;;;;;;7026:29:23;;:8;:29;;:35;;;;;;;7018:66;;;;;;;-1:-1:-1;;;;;7018:66:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;7164:6;;7152:33;;;-1:-1:-1;;;;;7152:33:23;;;;-1:-1:-1;;;;;7164:6:23;;;;7152:31;;:33;;;;;;;;;;;;;;;7164:6;;7152:33;;;5:2:-1;;;;30:1;27;20:12;5:2;7152:33:23;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7152:33:23;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7152:33:23;;-1:-1:-1;7308:64:23;7327:14;7343:15;7152:33;7308:18;:64::i;:::-;7291:81;-1:-1:-1;7499:20:23;;;;7491:51;;;;;-1:-1:-1;;;;;7491:51:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;7608:6;;7596:45;;;;;;7622:10;7596:45;;;;;;;;;;;;-1:-1:-1;;;;;7608:6:23;;;;7596:25;;:45;;;;;-1:-1:-1;;7596:45:23;;;;;;;;-1:-1:-1;7608:6:23;7596:45;;;5:2:-1;;;;30:1;27;20:12;5:2;7596:45:23;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;249:1:68;604:5;:16;-1:-1:-1;;;;;;;;6247:1402:23:o;157:20:66:-;;;-1:-1:-1;;;;;157:20:66;;:::o;2818:34:4:-;;;;;;;;;:::o;12584:101::-;12660:13;:20;12584:101;:::o;21967:332:23:-;22108:14;;22037:7;;;;;22133:90;22157:6;22153:1;:10;22133:90;;;22198:25;22212:7;22220:1;22212:10;;;;;;;;;;;;;;;;;;22198:13;:25::i;:::-;22183:40;;;;22165:3;;22133:90;;;22289:1;22257:29;22266:11;22279:6;22257:8;:29::i;:::-;:33;22249:2;22241:50;;21967:332;-1:-1:-1;;;;;21967:332:23:o;2798:838::-;3031:7;3040;3168:14;3557:11;5606:9:4;:7;:9::i;:::-;2963:12:23;6115:23:4;6129:8;6115:13;:23::i;:::-;2999:12:23;6115:23:4;6129:8;6115:13;:23::i;:::-;-1:-1:-1;;;;;3100:28:23;;;;;;;;3092:63;;;;;-1:-1:-1;;;;;3092:63:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;3204:29;-1:-1:-1;;;;;;;;;;;3204:9:23;:29::i;:::-;-1:-1:-1;;;;;3185:74:23;;3274:28;3289:12;3274:14;:28::i;:::-;-1:-1:-1;;;;;3317:22:23;;;;;;:8;:22;;;;;-1:-1:-1;3317:29:23;;;;3361:28;3376:12;3361:14;:28::i;:::-;-1:-1:-1;;;;;3404:22:23;;;;;;:8;:22;;;;;;;;-1:-1:-1;3404:29:23;;3185:281;;3404:29;3185:281;;;-1:-1:-1;3185:281:23;;;;;;;;;;;;;;;;;;;;;;;;3404:29;;;;3185:281;;;;;;;;;;;;;;;;;3404:22;;3185:281;;;;;;;;;;;;;;5:2:-1;;;;30:1;27;20:12;5:2;3185:281:23;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3185:281:23;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3185:281:23;;-1:-1:-1;3571:20:23;3185:281;3571:12;:20::i;:::-;3610:12;;;;;3557:34;;-1:-1:-1;2798:838:23;;-1:-1:-1;;;;;;;2798:838:23:o;8055:722::-;8429:19;565:12:68;:10;:12::i;:::-;287:1;581:5;:14;5606:9:4;:7;:9::i;:::-;8278:71:23;8299:14;8315:24;8341:7;8278:20;:71::i;:::-;8463:6;;8451:33;;;-1:-1:-1;;;;;8451:33:23;;;;-1:-1:-1;;;;;8463:6:23;;;;8451:31;;:33;;;;;;;;;;;;;;;8463:6;;8451:33;;;5:2:-1;;;;30:1;27;20:12;5:2;8451:33:23;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8451:33:23;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8451:33:23;8545:6;;8533:48;;;;;;8561:10;8533:48;;;;;;;;;;;;8451:33;;-1:-1:-1;;;;;;8545:6:23;;;;8533:27;;:48;;;;;-1:-1:-1;;8533:48:23;;;;;;;;-1:-1:-1;8545:6:23;8533:48;;;5:2:-1;;;;30:1;27;20:12;5:2;8533:48:23;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8533:48:23;;;;8682:87;8706:14;8722:24;8748:11;8761:7;8682:23;:87::i;2974:119:60:-;575:12:66;:10;:12::i;:::-;3077::60;;3066:8;:23;;-1:-1:-1;;3066:23:60;-1:-1:-1;;;;;3077:12:60;;;3066:23;;;;;;2974:119::o;21574:116:23:-;21637:7;21680:2;21675:1;21680:2;21670:6;21665:2;:11;21664:18;;;;;;;;;21574:116;-1:-1:-1;;;21574:116:23:o;3095:46:4:-;3137:4;3095:46;:::o;2322:37::-;;;-1:-1:-1;;;;;2322:37:4;;:::o;9209:2366:23:-;9413:14;9474:26;9756:20;9815:9;9868:24;9926:18;9992:21;10815:25;10954:26;11276:20;565:12:68;:10;:12::i;:::-;287:1;581:5;:14;9276:21:23;:19;:21::i;:::-;-1:-1:-1;;;;;;;;;;;9348:29:23;;:8;:29;;-1:-1:-1;;;;;;;;;;;9348:37:23;:52;;9390:9;9348:52;:41;:52;:::i;:::-;-1:-1:-1;;;;;;;;;;;9308:29:23;;;;:8;:29;;;;-1:-1:-1;;;;;;;;;;;9308:92:23;;;;9442:6;;9308:29;9430:33;;-1:-1:-1;;;;;9430:33:23;;;;-1:-1:-1;;;;;9442:6:23;;;;9430:31;;:33;;;;;9308:92;;9430:33;;;;;;;9442:6;9430:33;;;5:2:-1;;;;30:1;27;20:12;5:2;9430:33:23;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9430:33:23;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9430:33:23;;-1:-1:-1;9522:29:23;-1:-1:-1;;;;;;;;;;;9522:9:23;:29::i;:::-;9779:13;:20;9474:78;;-1:-1:-1;9779:20:23;-1:-1:-1;9827:1:23;;-1:-1:-1;9810:1639:23;9834:12;9830:1;:16;9810:1639;;;9895:13;:16;;9909:1;;9895:16;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9895:16:23;9868:43;;9947:8;:22;9956:12;-1:-1:-1;;;;;9947:22:23;-1:-1:-1;;;;;9947:22:23;;;;;;;;;;;;:30;;;9926:51;;10016:7;-1:-1:-1;;;;;10016:16:23;;10033:6;10041:10;10053:12;;;;;;;;;;;10067:7;10016:59;;;;;-1:-1:-1;;;10016:59:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10016:59:23;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10016:59:23;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;10016:59:23;-1:-1:-1;;;10016:59:23;;-1:-1:-1;;;;;;10164:35:23;;;-1:-1:-1;;;;;;;;10164:35:23;10160:598;;;10236:13;10224:9;:25;10220:406;;;10274:46;;:10;;10294:9;:25;;;10274:46;;;;;;;;;10294:25;10274:10;:46;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10274:46:23;10220:406;;;10379:13;10367:9;:25;10363:263;;;10425:9;:14;10417:48;;;;;-1:-1:-1;;;;;10417:48:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;10505:10;;10488:61;;10505:10;;;-1:-1:-1;;;;;10505:10:23;10517;10529:4;10535:13;10488:16;:61::i;:::-;10572:10;;:34;;;;;;;;;;;;;;:10;;;;-1:-1:-1;;;;;10572:10:23;;:19;;:34;;;;;-1:-1:-1;;10572:34:23;;;;;;;;-1:-1:-1;10572:10:23;:34;;;5:2:-1;;;;30:1;27;20:12;5:2;10572:34:23;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10572:34:23;;;;10363:263;10160:598;;;10679:63;10696:12;10710:10;10722:4;10728:13;10679:16;:63::i;:::-;10843:29;:10;10858:13;10843:29;:14;:29;:::i;:::-;-1:-1:-1;;;;;10887:22:23;;;;;;:8;:22;;;;;:50;;;;-1:-1:-1;10983:19:23;:6;10994:7;10983:10;:19::i;:::-;11093:94;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;11093:94:23;;;11108:10;;11093:94;;;;;;;;;;-1:-1:-1;;;;;;11299:22:23;;;;;;:8;:22;;;;;-1:-1:-1;11299:29:23;;;;11343:94;11370:18;11299:22;11404:17;11299:29;11343:26;:94::i;:::-;9848:3;;;;;9810:1639;;;11533:6;;11521:46;;;;;;11547:10;11521:46;;;;;;;;;;;;-1:-1:-1;;;;;11533:6:23;;;;11521:25;;:46;;;;;-1:-1:-1;;11521:46:23;;;;;;;;-1:-1:-1;11533:6:23;11521:46;;;5:2:-1;;;;30:1;27;20:12;5:2;11521:46:23;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;249:1:68;604:5;:16;-1:-1:-1;;;;;;;;;;;;;9209:2366:23:o;2206:157::-;575:12:66;:10;:12::i;:::-;2267:29:23;:27;:29::i;:::-;2342:6;;2350:4;;-1:-1:-1;;;;;2342:6:23;2325:15;:13;:15::i;:::-;2314:41;;;;;;;;;;;;2206:157::o;2445:34:4:-;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2445:34:4;;-1:-1:-1;2445:34:4;:::o;2260:30::-;;;-1:-1:-1;;;;;2260:30:4;;:::o;180:23:66:-;;;-1:-1:-1;;;;;180:23:66;;:::o;12079:317:4:-;12119:36;575:12:66;:10;:12::i;:::-;12177:29:4;-1:-1:-1;;;;;;;;;;;12177:9:4;:29::i;:::-;12278:6;;12119:88;;-1:-1:-1;12286:5:4;;-1:-1:-1;;;;;12278:6:4;12261:15;:13;:15::i;:::-;12250:42;;;;;;;;;;;;12297:36;12315:17;12297;:36::i;:::-;12337:34;;;;;;2254:2;12337:34;;;;;;-1:-1:-1;;;;;12337:25:4;;;;;:34;;;;;-1:-1:-1;;12337:34:4;;;;;;;-1:-1:-1;12337:25:4;:34;;;5:2:-1;;;;30:1;27;20:12;5:2;12337:34:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12337:34:4;;;;12375:17;:15;:17::i;2566:43::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;19607:134::-;19686:7;19706:31;19721:15;19706:14;:31::i;:::-;19699:38;19607:134;-1:-1:-1;;19607:134:4:o;14111:155::-;14211:7;14187:13;6115:23;6129:8;6115:13;:23::i;:::-;-1:-1:-1;;;;;;;14231:23:4;;;;;:8;:23;;;;;:31;;14111:155::o;15044:649::-;15241:7;565:12:68;:10;:12::i;:::-;287:1;581:5;:14;15212:18:4;1510:20:60;15212:18:4;1510:5:60;:20::i;:::-;-1:-1:-1;;;;;15282:28:4;;;;;;;;15274:63;;;;;-1:-1:-1;;;;;15274:63:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;15446:19;;-1:-1:-1;;;;;15446:19:4;:33;;:132;;-1:-1:-1;15484:19:4;;:42;;;;;;-1:-1:-1;;;;;15484:42:4;;;;;;;;;:19;;;;;:33;;:42;;;;;;;;;;;;;;-1:-1:-1;15484:19:4;:42;;;5:2:-1;;;;30:1;27;20:12;5:2;15484:42:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15484:42:4;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;15484:42:4;:93;;;;-1:-1:-1;15530:19:4;;:47;;;;;;-1:-1:-1;;;;;15530:47:4;;;;;;;;;:19;;;;;:33;;:47;;;;;;;;;;;;;;-1:-1:-1;15530:19:4;:47;;;5:2:-1;;;;30:1;27;20:12;5:2;15530:47:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15530:47:4;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;15530:47:4;15484:93;15434:174;;;;;;;-1:-1:-1;;;;;15434:174:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;15620:69;15630:12;15644;15658:7;15667;15676:12;15620:9;:69::i;:::-;249:1:68;604:5;:16;15613:76:4;15044:649;-1:-1:-1;;;;;;;15044:649:4:o;10618:240::-;575:12:66;:10;:12::i;:::-;10714:16:4;;;;;;;;;10696:34;;;;;10688:73;;;;;-1:-1:-1;;;;;10688:73:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;10790:13;;10770:50;;;10790:13;;;;;;;10770:50;;;;;;;;;;;;;;;;;;;;;10824:13;:30;;;;;;;;-1:-1:-1;;10824:30:4;;;;;;;;;10618:240::o;945:140:66:-;575:12;:10;:12::i;:::-;1033:5;;-1:-1:-1;;;;;1020:18:66;;;1033:5;;1020:18;;1012:45;;;;;-1:-1:-1;;;;;1012:45:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;1061:8;:20;;-1:-1:-1;;1061:20:66;-1:-1:-1;;;;;1061:20:66;;;;;;;;;;945:140::o;18535:77:4:-;18602:6;;-1:-1:-1;;;;;18602:6:4;;18535:77::o;642:93:66:-;704:5;;-1:-1:-1;;;;;704:5:66;690:10;:19;682:49;;;;;-1:-1:-1;;;;;682:49:66;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;682:49:66;;;;;;;;;;;;;;6193:123:4;-1:-1:-1;;;;;6264:18:4;;;;;;:8;:18;;;;;-1:-1:-1;6264:24:4;;;;;;;6256:56;;;;;;;-1:-1:-1;;;;;6256:56:4;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;6256:56:4;;;;;;;;;;;;;;670:88:68;718:5;;249:1;718:17;710:44;;;;;-1:-1:-1;;;;;710:44:68;;;;;;;;;;;;;;;;;;;;;;;;;;;18746:1572:23;18965:26;19054;19126:9;19188:24;19247:18;19313:21;19527:25;20138:20;18931:21;:19;:21::i;:::-;19013:29;-1:-1:-1;;;;;;;;;;;19013:9:23;:29::i;:::-;18965:78;-1:-1:-1;19083:25:23;:12;19100:7;19083:25;:16;:25;:::i;:::-;19054:54;;19138:1;19126:13;;19121:1190;19145:14;:21;19141:1;:25;19121:1190;;;19215:14;19230:1;19215:17;;;;;;;;;;;;;;;;;;19188:44;;19268:8;:22;19277:12;-1:-1:-1;;;;;19268:22:23;-1:-1:-1;;;;;19268:22:23;;;;;;;;;;;;:30;;;19247:51;;19337:7;-1:-1:-1;;;;;19337:30:23;;19368:12;19382:10;19394:12;;;;;;;;;;;19408:7;19337:79;;;;;-1:-1:-1;;;19337:79:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19337:79:23;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;19337:79:23;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;19337:79:23;19456:27;;19337:79;;-1:-1:-1;19456:24:23;;19481:1;;19456:27;;;;;;;;;;;;;;;19439:44;;;19431:79;;;;;-1:-1:-1;;;;;19431:79:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;19555:29;:10;19570:13;19555:29;:14;:29;:::i;:::-;-1:-1:-1;;;;;19599:22:23;;;;;;:8;:22;;;;;;;:50;;;;;-1:-1:-1;19599:22:23;;;;-1:-1:-1;19599:22:23;-1:-1:-1;;;;;19753:35:23;19749:182;;;19807:34;;:10;;:34;;;;;19827:13;;19807:34;;;;19827:13;19807:10;:34;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;19807:34:23;19749:182;;;19878:53;19891:12;19905:10;19917:13;19878:12;:53::i;:::-;19953:96;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;19953:96:23;;;19970:10;;19953:96;;;;;;;;;-1:-1:-1;;;;;;20161:22:23;;;;;;:8;:22;;;;;-1:-1:-1;20161:29:23;;;;20205:94;20232:18;20161:22;20266:17;20161:29;20205:26;:94::i;:::-;19168:3;;;;;19121:1190;;;18746:1572;;;;;;;;;;;;:::o;3647:122:60:-;3732:8;;:33;;;;;;;;;;;;;;-1:-1:-1;;;;;;;3732:8:60;;:18;;:33;;;;;;;;;;;;;;-1:-1:-1;3732:8:60;:33;;;5:2:-1;;;;30:1;27;20:12;5:2;3732:33:60;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3732:33:60;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3732:33:60;;3647:122;-1:-1:-1;;3647:122:60:o;855:115:72:-;937:4;-1:-1:-1;;;;;917:25:72;;;;909:57;;;;;-1:-1:-1;;;;;909:57:72;;;;;;;;;;;;;;;;;;;;;;;;;;;1077:194:71;575:12:66;:10;:12::i;:::-;1190:6:71;475:23:72;489:8;475:13;:23::i;:::-;1211:3:71;475:23:72;489:8;475:13;:23::i;:::-;1224:3:71;782:18:72;791:8;782;:18::i;:::-;1233:34:71;1246:6;1254:3;1259:7;1233:12;:34::i;16898:269:4:-;16975:13;6115:23;6129:8;6115:13;:23::i;:::-;-1:-1:-1;;;;;;;;16998:36:4;;;-1:-1:-1;;;;;;;;;16998:36:4;16994:169;;;-1:-1:-1;;;;;17036:23:4;;;;;;:8;:23;;;;;17078:4;17070:21;17036:55;;16994:169;;;17134:29;;;;;;17158:4;17134:29;;;;;;-1:-1:-1;;;;;17134:23:4;;;;;:29;;;;;;;;;;;;;;-1:-1:-1;17134:23:4;:29;;;5:2:-1;;;;30:1;27;20:12;5:2;17134:29:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17134:29:4;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;17134:29:4;-1:-1:-1;;;;;17100:23:4;;;;;;:8;17134:29;17100:23;;;;:63;16994:169;16898:269;;:::o;1585:128:60:-;1663:24;1673:13;1663:9;:24::i;:::-;-1:-1:-1;;;;;1649:38:60;:10;:38;1641:68;;;;;-1:-1:-1;;;;;1641:68:60;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;1641:68:60;;;;;;;;;;;;;;5884:77:4;5932:10;:8;:10::i;:::-;5931:11;5923:34;;;;;-1:-1:-1;;;;;5923:34:4;;;;;;;;;;;;;;;;;;;;;;;;;;;553:117:72;-1:-1:-1;;;;;620:22:72;;;;612:54;;;;;-1:-1:-1;;;;;612:54:72;;;;;;;;;;;;;;;;;;;;;;;;;;;6812:149:4;6893:1;6883:7;:11;;;:43;;;;-1:-1:-1;1763:7:4;6898:28;;;;;6883:43;6875:82;;;;;;;-1:-1:-1;;;;;6875:82:4;;;;;;;;;;;;;;;;;;;;;;;;;;;5670:76;5715:10;:8;:10::i;:::-;5707:35;;;;;;;-1:-1:-1;;;;;5707:35:4;;;;;;;;;;;;;;;;;;;;;;;;;;;12933:1158:23;13134:13;:20;13183:21;;13075:9;;;;13173:31;;13165:63;;;;;-1:-1:-1;;;;;13165:63:23;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;13165:63:23;;;;;;;;;;;;;;;13257:22;;13247:32;;13239:63;;;;;-1:-1:-1;;;;;13239:63:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;13324:1;13320:5;;13315:650;13331:6;13327:1;:10;13315:650;;;13455:8;:27;13464:14;13479:1;13464:17;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13455:27:23;;;;;;;;;;;-1:-1:-1;13455:27:23;-1:-1:-1;13455:33:23;;;;;;;13447:65;;;;;;;-1:-1:-1;;;;;13447:65:23;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;13447:65:23;;;;;;;;;;;;;;;13536:1;13532:5;;13527:133;13543:6;13539:1;:10;13527:133;;;13599:14;13614:1;13599:17;;;;;;;;;;;;;;;;;;;13579:13;:16;;-1:-1:-1;;;;;13579:37:23;;;;13593:1;;13579:16;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13579:16:23;:37;13575:69;;;13639:5;;13575:69;13551:3;;;;;13527:133;;;13770:10;;;13762:42;;;;;-1:-1:-1;;;;;13762:42:23;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;13762:42:23;;;;;;;;;;;;;;;13929:1;13908:15;13924:1;13908:18;;;;;;;;;;;;;;;;;;;:22;13900:53;;;;;-1:-1:-1;;;;;13900:53:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;13339:3;;;;;13315:650;;;14062:1;14052:11;;14044:39;;;;;-1:-1:-1;;;;;14044:39:23;;;;;;;;;;;;;;;;;;;;;;;;;;;14353:379;14509:7;14538:17;;14534:99;;;14577:56;14601:14;14617:15;14577:23;:56::i;:::-;14570:63;;;;14534:99;14651:73;14678:14;14694:15;14711:12;14651:26;:73::i;:::-;14644:80;;14353:379;;;;;;:::o;16577:155:4:-;16683:13;;16645:7;;16665:63;;1826:7;;16665:32;;:13;;16683;;;16665:63;16683:13;;;;16665:17;:32;:::i;:::-;:36;:63;:36;:63;:::i;17223:174::-;17290:13;:20;17267;17314:79;17338:12;17334:1;:16;17314:79;;;17357:36;17376:13;17390:1;17376:16;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;17376:16:4;17357:18;:36::i;:::-;17352:3;;17314:79;;613:129:69;673:7;694:8;;;;686:34;;;;;-1:-1:-1;;;;;686:34:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;731:7:69;;;613:129::o;1740:206:70:-;351:50;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1870:71:70;;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;1870:71:70;;;;;;;25:18:-1;;61:17;;-1:-1;;;;;182:15;-1:-1;;;;;;1870:71:70;;;179:29:-1;;;;160:49;;;1854:88:70;;1862:6;;1854:7;:88::i;:::-;1740:206;;;;:::o;288:144:69:-;348:7;373;;;392;;;;384:32;;;;;-1:-1:-1;;;;;384:32:69;;;;;;;;;;;;;;;;;;;;;;;;;;;24265:285:23;24442:6;;-1:-1:-1;;;;;24426:116:23;;;;24442:6;24426:116;24465:38;:15;1763:7:4;24465:19:23;:38::i;:::-;24505:36;:16;:36;;;;;:20;:36;:::i;:::-;24426:116;;;;;;;;;;;;;;;;;;;;;;24265:285;;;;:::o;2090:197:9:-;2219:1;2197:19;:17;:19::i;:::-;:23;;;2189:61;;;;;-1:-1:-1;;;;;2189:61:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;2254:29;:27;:29::i;4223:1642:23:-;4386:7;4459:14;4475:11;4745:28;4490:55;4509:12;4523;4537:7;4490:18;:55::i;:::-;4458:87;;-1:-1:-1;4458:87:23;-1:-1:-1;4626:11:23;;;4618:46;;;;;-1:-1:-1;;;;;4618:46:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;4776:28;4791:12;4776:14;:28::i;:::-;4745:59;-1:-1:-1;4822:29:23;;;4815:37;;;;-1:-1:-1;;;;;;;;4932:35:23;;;-1:-1:-1;;;;;;;;;4932:35:23;4928:261;;;4990:9;:20;;4982:56;;;;;-1:-1:-1;;;;;4982:56:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;4928:261;;;5075:9;:14;:91;;;;;5159:7;5093:62;5126:28;5141:12;5126:14;:28::i;:::-;5093;;;;;;5116:4;5093:28;;;;;;-1:-1:-1;;;;;5093:22:23;;;;;:28;;;;;;;;;;;;;;-1:-1:-1;5093:22:23;:28;;;5:2:-1;;;;30:1;27;20:12;5:2;5093:28:23;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5093:28:23;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5093:28:23;;:62;:32;:62;:::i;:::-;:73;;5075:91;5067:122;;;;;;;-1:-1:-1;;;;;5067:122:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;5240:32;5259:12;5240:18;:32::i;:::-;-1:-1:-1;;;;;5316:22:23;;;;;;:8;:22;;;;;:30;:42;;5351:6;5316:34;:42::i;:::-;-1:-1:-1;;;;;5283:22:23;;;;;;:8;:22;;;;;;;:75;;;;:22;;;;-1:-1:-1;5283:22:23;-1:-1:-1;;;;;5445:35:23;5441:160;;;5495:29;;-1:-1:-1;;;;;5495:21:23;;;:29;;;;;;;;;;;;:21;:29;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5495:29:23;5441:160;;;5553:48;5566:12;5580;5594:6;5553:12;:48::i;:::-;5656:82;5680:12;5694;5708:7;5717;5726:6;5734:3;5656:23;:82::i;:::-;5785:46;5804:12;5818;5785:18;:46::i;:::-;-1:-1:-1;5851:6:23;;4223:1642;-1:-1:-1;;;;;;;4223:1642:23:o;1214:173:70:-;248:38;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1323:59:70;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;1323:59:70;;;;;;;;25:18:-1;;61:17;;-1:-1;;;;;182:15;-1:-1;;;;;;1323:59:70;;;179:29:-1;;;;160:49;;;1307:76:70;;1315:6;;1307:7;:76::i;:::-;1214:173;;;:::o;14958:1136:23:-;15097:7;15207:14;15351:9;15889:20;15224:30;15238:15;15224:13;:30::i;:::-;15207:47;;15363:1;15351:13;;15346:715;15370:14;:21;15366:1;:25;15346:715;;;15417:17;;-1:-1:-1;;;;;;;;;;;1884:42:4;15417:14:23;;15432:1;;15417:17;;;;;;;;;;;;;;;;-1:-1:-1;;;;;15417:40:23;;15413:199;;15539:73;15556:14;15571:1;15556:17;;;;;;;;;;;;;;;;;;15575:10;15587:4;15593:15;15609:1;15593:18;;;;;;;;;;;;;;;;;;15539:16;:73::i;:::-;15667:15;15683:1;15667:18;;;;;;;;;;;;;;;;;;15629:8;:27;15638:14;15653:1;15638:17;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;15629:27:23;;;;;;;;;;;-1:-1:-1;15629:27:23;:56;15734:17;;;;15749:1;;15734:17;;;;;;;;;;;;;;;15753:18;;-1:-1:-1;;;;;15707:93:23;;;;15722:10;;15707:93;;15753:15;;15769:1;;15753:18;;;;;;;;;;;;;;15773:15;15789:1;15773:18;;;;;;;;;;;;;;;;;;;;15707:93;;;;;;;;;;;;;;;;;;;;;;;;;15912:8;:27;15921:14;15936:1;15921:17;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;15912:27:23;;;;;;;;;;;-1:-1:-1;15912:27:23;-1:-1:-1;15912:34:23;;15996:17;;15912:34;;;;;-1:-1:-1;15961:88:23;;15988:6;;15996:17;;16011:1;;15996:17;;;;;;;;;;;;;;16015:15;16031:1;16015:18;;;;;;;;;;;;;;;;;;16035:13;15961:26;:88::i;:::-;15393:3;;;;;15346:715;;;-1:-1:-1;16080:6:23;;14958:1136;-1:-1:-1;;;;14958:1136:23:o;16376:2010::-;16540:7;16702:26;16791:14;16886:26;16957:9;17019:24;17078:18;17144:21;17843:25;18170:20;16565:21;:19;:21::i;:::-;-1:-1:-1;;;;;;;;;;;16637:29:23;;:8;:29;;-1:-1:-1;;;;;;;;;;;16637:37:23;:52;;16679:9;16637:52;:41;:52;:::i;:::-;-1:-1:-1;;;;;;;;;;;16597:29:23;;:8;:29;;-1:-1:-1;;;;;;;;;;;16597:92:23;16750:29;-1:-1:-1;;;;;;;;;;;16750:9:23;:29::i;:::-;16702:78;;16808:67;16820:7;16829:12;16843:14;16859:15;16808:11;:67::i;:::-;16791:84;-1:-1:-1;16915:24:23;:12;16791:84;16915:24;:16;:24;:::i;:::-;16886:53;;16969:1;16957:13;;16952:1401;16976:14;:21;16972:1;:25;16952:1401;;;17046:14;17061:1;17046:17;;;;;;;;;;;;;;;;;;17019:44;;17099:8;:22;17108:12;-1:-1:-1;;;;;17099:22:23;-1:-1:-1;;;;;17099:22:23;;;;;;;;;;;;:30;;;17078:51;;17168:7;-1:-1:-1;;;;;17168:16:23;;17185:12;17199:10;17211:12;;;;;;;;;;;17225:6;17168:64;;;;;-1:-1:-1;;;17168:64:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17168:64:23;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17168:64:23;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;17168:64:23;;-1:-1:-1;17271:1:23;17255:17;;17247:52;;;;;-1:-1:-1;;;;;17247:52:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;17338:15;17354:1;17338:18;;;;;;;;;;;;;;;;;;;17321:35;;;17314:43;;;;-1:-1:-1;;;;;;;;17461:35:23;;;-1:-1:-1;;;;;;;;;17461:35:23;17457:369;;17578:63;17595:12;17609:10;17621:4;17627:13;17578:16;:63::i;:::-;17457:369;;;17686:13;17665:15;17681:1;17665:18;;;;;;;;;;;;;;;;;;:34;17661:165;;;17791:18;;17771:10;;:55;;17812:13;;17791:15;;17807:1;;17791:18;;;;;;;;;;;;;;:34;17771:55;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17771:55:23;17661:165;17871:29;:10;17886:13;17871:29;:14;:29;:::i;:::-;-1:-1:-1;;;;;17915:22:23;;;;;;:8;:22;;;;;;;;;:50;;;17987:94;;;;;;;;;;;;;;;;;;;17915:50;;-1:-1:-1;17915:22:23;;18002:10;;17987:94;;;;;;;;;;18193:8;:27;18202:14;18217:1;18202:17;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;18193:27:23;;;;;;;;;;;-1:-1:-1;18193:27:23;-1:-1:-1;18193:34:23;;18289:17;;18193:34;;;;;-1:-1:-1;18242:99:23;;18269:18;;18289:17;;18304:1;;18289:17;;;;;;;;;;;;;;18308;18327:13;18242:26;:99::i;:::-;16999:3;;;;;16952:1401;;;-1:-1:-1;18372:6:23;;16376:2010;-1:-1:-1;;;;;;;;;;;16376:2010:23:o;924:197:69:-;984:7;;1023;;1019:21;;;1039:1;1032:8;;;;1019:21;-1:-1:-1;1057:7:69;;;1062:2;1057;:7;1076:6;;;;;;;;:12;1068:37;;;;;-1:-1:-1;;;;;1068:37:69;;;;;;;;;;;;;;;;;;;;;;;;;;;1307:149;1367:7;;1388:6;;;1380:37;;;;;-1:-1:-1;;;;;1380:37:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;1438:2;1433;:7;;;;;;;;;1307:149;-1:-1:-1;;;;1307:149:69:o;2255:557:70:-;2324:21;;:::i;:::-;:36;;;;;;;;;2357:1;2324:36;;;;;2687:2;2661:3;2580:5;2574:12;2495:2;2488:5;2484:14;2465:1;2430:6;2404:3;2394:317;2725:7;2718:15;2715:2;;;2750:1;2747;2740:12;2715:2;-1:-1:-1;2773:6:70;;:11;;2765:43;;;;;-1:-1:-1;;;;;2765:43:70;;;;;;;;;;;;;;;;;;;;;;;;;;;9796:227:4;575:12:66;:10;:12::i;:::-;9935:1:4;9913:19;:17;:19::i;:::-;:23;;;9905:61;;;;;-1:-1:-1;;;;;9905:61:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;9970:6;;:24;;;;;;;;-1:-1:-1;;;;;9970:6:4;;;;:22;;:24;;;;;:6;;:24;;;;;;;;:6;;:24;;;5:2:-1;;;;30:1;27;20:12;5:2;9970:24:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9970:24:4;;;;9998:21;:19;:21::i;17773:656::-;18318:6;18305:19;;18298:27;;;;18334:91;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;18334:91:4;;;;;;;;;;;;;;;;;;;;;17773:656;;;;;;:::o;22602:1278:23:-;22739:6;;22727:33;;;-1:-1:-1;;;;;22727:33:23;;;;22701:23;;;;;;;;;;;;;;-1:-1:-1;;;;;22739:6:23;;22727:31;;:33;;;;;;;;;;;;;;22701:23;22739:6;22727:33;;;5:2:-1;;;;30:1;27;20:12;5:2;22727:33:23;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;22727:33:23;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;22727:33:23;;-1:-1:-1;22802:28:23;22817:12;22802:14;:28::i;:::-;22771:59;;22872:28;22887:12;22872:14;:28::i;:::-;-1:-1:-1;;;;;22940:22:23;;;;;;;:8;:22;;;;;;-1:-1:-1;22940:29:23;;;;23009:22;;;;;;;:29;;22841:59;;-1:-1:-1;22940:29:23;;;;;-1:-1:-1;23009:29:23;;;;-1:-1:-1;23112:45:23;;22841:59;;22940:29;;23112:24;:45;:::i;:::-;23096:61;-1:-1:-1;23184:45:23;:20;:45;;;;;:24;:45;:::i;:::-;23245:57;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;23245:57:23;;;;;;;;;;;;;;;;23383:100;23410:15;23427:12;23441:20;23463:19;23383:26;:100::i;:::-;23494;23521:15;23538:12;23552:20;23574:19;23494:26;:100::i;:::-;23678:89;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;23678:89:23;;;;;;;;;;;;;23783;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;23783:89:23;;;;;;;;;;;;;22602:1278;;;;;;;;;:::o;20326:612::-;20490:7;;20558:1;20541:249;20565:14;:21;20561:1;:25;20541:249;;;20681:66;20711:8;:27;20720:14;20735:1;20720:17;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;20711:27:23;;;;;;;;;;;-1:-1:-1;20711:27:23;:35;20681:25;;;;20697:8;;20681:25;;;;;;;;;;;;;;;;:66;:29;:66;:::i;:::-;20612;20635:8;:34;20644:14;20659:8;20644:24;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;20635:34:23;;;;;;;;;;;-1:-1:-1;20635:34:23;:42;20612:18;;;;20628:1;;20612:18;;;;;:66;:135;20608:170;;;20777:1;20766:12;;20608:170;20588:3;;20541:249;;;20807:7;-1:-1:-1;;;;;20807:24:23;;20832:12;20846:8;:34;20855:14;20870:8;20855:24;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;20846:34:23;;;;;;;;;;;-1:-1:-1;20846:34:23;:42;20890:12;;20904:25;;20890:12;;;;;20904:25;;20920:8;;20904:25;;;;;;;;;;;;;;20807:123;;;;;-1:-1:-1;;;20807:123:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;20807:123:23;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;20807:123:23;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;20807:123:23;;20326:612;-1:-1:-1;;;;;;;20326:612:23:o;452:24101::-;;;;;;;;;-1:-1:-1;452:24101:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;-1:-1;452:24101:23;;;-1:-1:-1;;452:24101:23:o" + }, + "methodIdentifiers": { + "acceptAnchorOwnership()": "cdc91c69", + "acceptOwnership()": "79ba5097", + "acceptTokenOwnership()": "38a5e016", + "addLiquidity(address[],uint256[],uint256)": "7d8916bd", + "addReserve(address,uint32)": "6a49d2c4", + "anchor()": "d3fb73b4", + "connectorTokenCount()": "71f52bf3", + "connectorTokens(uint256)": "19b64015", + "connectors(address)": "0e53aae9", + "conversionFee()": "579cd3ca", + "conversionWhitelist()": "c45d3d92", + "conversionsEnabled()": "bf754558", + "convert(address,address,uint256,address,address)": "e8dc12ff", + "converterType()": "3e8ff43f", + "decimalLength(uint256)": "6aa5332c", + "fund(uint256)": "ca1d209d", + "geometricMean(uint256[])": "a60e7724", + "getConnectorBalance(address)": "d8959512", + "getReturn(address,address,uint256)": "1e1401f8", + "hasETHReserve()": "12c2aca4", + "isActive()": "22f3e2d4", + "isV28OrHigher()": "d260529c", + "liquidate(uint256)": "415f1240", + "maxConversionFee()": "94c275ad", + "newOwner()": "d4ee1d90", + "onlyOwnerCanUpdateRegistry()": "2fe8a6ad", + "owner()": "8da5cb5b", + "prevRegistry()": "61cd756e", + "registry()": "7b103999", + "removeLiquidity(uint256,address[],uint256[])": "b127c0a5", + "reserveBalance(address)": "dc8de379", + "reserveRatio()": "0c7d5cd8", + "reserveTokenCount()": "9b99a8e2", + "reserveTokens(uint256)": "d031370b", + "reserveWeight(address)": "1cfab290", + "reserves(address)": "d66bd524", + "restoreRegistry()": "b4a176d3", + "restrictRegistryUpdate(bool)": "024c7ec7", + "roundDiv(uint256,uint256)": "bbb7e5d8", + "setConversionFee(uint32)": "ecbca55d", + "setConversionWhitelist(address)": "4af80f0e", + "targetAmountAndFee(address,address,uint256)": "af94b8d8", + "token()": "fc0c546a", + "transferAnchorOwnership(address)": "67b6d57c", + "transferOwnership(address)": "f2fde38b", + "transferTokenOwnership(address)": "21e6b53d", + "updateRegistry()": "49d10b64", + "upgrade()": "d55ec697", + "version()": "54fd4d50", + "withdrawETH(address)": "690d8320", + "withdrawFromAnchor(address,address,uint256)": "395900d4", + "withdrawTokens(address,address,uint256)": "5e35359e" + } + }, + "userdoc": { + "methods": {} + } + } + }, + "solidity/contracts/converter/types/liquidity-pool-v1/LiquidityPoolV1ConverterFactory.sol": { + "LiquidityPoolV1ConverterFactory": { + "abi": [ + { + "constant": false, + "inputs": [ + { + "name": "_anchor", + "type": "address" + }, + { + "name": "_registry", + "type": "address" + }, + { + "name": "_maxConversionFee", + "type": "uint32" + } + ], + "name": "createConverter", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "converterType", + "outputs": [ + { + "name": "", + "type": "uint16" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + } + ], + "devdoc": { + "methods": { + "converterType()": { + "details": "returns the converter type the factory is associated with\r ", + "return": "converter type\r" + }, + "createConverter(address,address,uint32)": { + "details": "creates a new converter with the given arguments and transfers\r the ownership to the caller\r ", + "params": { + "_anchor": "anchor governed by the converter\r", + "_maxConversionFee": "maximum conversion fee, represented in ppm\r ", + "_registry": "address of a contract registry contract\r" + }, + "return": "a new converter\r" + } + } + }, + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b50614d7b806100206000396000f30060806040526004361061004b5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631141395881146100505780633e8ff43f146100b6575b600080fd5b34801561005c57600080fd5b5061008d73ffffffffffffffffffffffffffffffffffffffff6004358116906024351663ffffffff604435166100e2565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b3480156100c257600080fd5b506100cb6101d5565b6040805161ffff9092168252519081900360200190f35b6000808484846100f06101da565b73ffffffffffffffffffffffffffffffffffffffff938416815291909216602082015263ffffffff9091166040808301919091525190819003606001906000f080158015610142573d6000803e3d6000fd5b50604080517ff2fde38b000000000000000000000000000000000000000000000000000000008152336004820152905191925073ffffffffffffffffffffffffffffffffffffffff83169163f2fde38b9160248082019260009290919082900301818387803b1580156101b457600080fd5b505af11580156101c8573d6000803e3d6000fd5b5092979650505050505050565b600190565b604051614b65806101eb833901905600608060405260016004557fc0829421c1d260bd3cb3e0f06cfe2d52db2ce3150000000000000000000000006009553480156200003a57600080fd5b5060405160608062004b6583398101604090815281516020830151919092015160008054600160a060020a031916331790558282828282828180620000888164010000000062000135810204565b5060028054600160a060020a03909216600160a060020a031992831681179091556003805490921617905582620000c88164010000000062000135810204565b81620000dd81640100000000620001b0810204565b505060058054600160a060020a03909416600160a060020a031990941693909317909255506009805463ffffffff9092166401000000000267ffffffff00000000199092169190911790555062000229945050505050565b600160a060020a0381161515620001ad57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b50565b620f424063ffffffff82161115620001ad57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f4552525f494e56414c49445f434f4e56455253494f4e5f464545000000000000604482015290519081900360640190fd5b61492c80620002396000396000f3006080604052600436106102585763ffffffff60e060020a600035041663024c7ec781146102e45780630c7d5cd8146102fe5780630e53aae91461032c57806312c2aca41461038157806319b64015146103aa5780631cfab290146103de5780631e1401f8146103ff57806321e6b53d1461044257806322f3e2d4146104635780632fe8a6ad1461047857806338a5e0161461048d578063395900d4146104a25780633e8ff43f146104cc578063415f1240146104f857806349d10b64146105105780634af80f0e1461052557806354fd4d5014610546578063579cd3ca1461055b5780635e35359e1461057057806361cd756e1461059a57806367b6d57c146105af578063690d8320146105d05780636a49d2c4146105f15780636aa5332c1461061b57806371f52bf31461064557806379ba50971461065a5780637b1039991461066f5780637d8916bd146106845780638da5cb5b1461070757806394c275ad1461071c5780639b99a8e214610731578063a60e772414610746578063af94b8d81461079b578063b127c0a5146107c5578063b4a176d314610858578063bbb7e5d81461086d578063bf75455814610888578063c45d3d921461089d578063ca1d209d146108b2578063cdc91c69146108bd578063d031370b146108d2578063d260529c146108ea578063d3fb73b4146108ff578063d4ee1d9014610914578063d55ec69714610929578063d66bd5241461093e578063d89595121461095f578063dc8de37914610980578063e8dc12ff146109a1578063ecbca55d146109cb578063f2fde38b146109e9578063fc0c546a14610a0a575b6000805160206148a183398151915260005260086020527f353c2eb9e53a4a4a6d45d72082ff2e9dc829d1125618772a83eb0e7f86632c43546601000000000000900460ff1615156102e2576040805160e560020a62461bcd0281526020600482015260136024820152600080516020614841833981519152604482015290519081900360640190fd5b005b3480156102f057600080fd5b506102e26004351515610a1f565b34801561030a57600080fd5b50610313610a67565b6040805163ffffffff9092168252519081900360200190f35b34801561033857600080fd5b5061034d600160a060020a0360043516610a73565b6040805195865263ffffffff9094166020860152911515848401521515606084015215156080830152519081900360a00190f35b34801561038d57600080fd5b50610396610b0e565b604080519115158252519081900360200190f35b3480156103b657600080fd5b506103c2600435610b57565b60408051600160a060020a039092168252519081900360200190f35b3480156103ea57600080fd5b50610313600160a060020a0360043516610b83565b34801561040b57600080fd5b50610429600160a060020a0360043581169060243516604435610bb5565b6040805192835260208301919091528051918290030190f35b34801561044e57600080fd5b506102e2600160a060020a0360043516610bcf565b34801561046f57600080fd5b50610396610be3565b34801561048457600080fd5b50610396610c7d565b34801561049957600080fd5b506102e2610c9e565b3480156104ae57600080fd5b506102e2600160a060020a0360043581169060243516604435610cb0565b3480156104d857600080fd5b506104e1610d4b565b6040805161ffff9092168252519081900360200190f35b34801561050457600080fd5b506102e2600435610d50565b34801561051c57600080fd5b506102e2610f94565b34801561053157600080fd5b506102e2600160a060020a0360043516611201565b34801561055257600080fd5b506104e1611243565b34801561056757600080fd5b50610313611248565b34801561057c57600080fd5b506102e2600160a060020a0360043581169060243516604435611260565b3480156105a657600080fd5b506103c2611369565b3480156105bb57600080fd5b506102e2600160a060020a0360043516611378565b3480156105dc57600080fd5b506102e2600160a060020a036004351661141b565b3480156105fd57600080fd5b506102e2600160a060020a036004351663ffffffff60243516611520565b34801561062757600080fd5b5061063360043561175f565b60408051918252519081900360200190f35b34801561065157600080fd5b506104e1611784565b34801561066657600080fd5b506102e2611793565b34801561067b57600080fd5b506103c2611854565b604080516020600480358082013583810280860185019096528085526102e295369593946024949385019291829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a99890198929750908201955093508392508501908490808284375094975050933594506118639350505050565b34801561071357600080fd5b506103c2611b62565b34801561072857600080fd5b50610313611b71565b34801561073d57600080fd5b506104e1611b85565b34801561075257600080fd5b506040805160206004803580820135838102808601850190965280855261063395369593946024949385019291829185019084908082843750949750611b8b9650505050505050565b3480156107a757600080fd5b50610429600160a060020a0360043581169060243516604435611be1565b3480156107d157600080fd5b506040805160206004602480358281013584810280870186019097528086526102e296843596369660449591949091019291829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750949750611d869650505050505050565b34801561086457600080fd5b506102e2611eba565b34801561087957600080fd5b50610633600435602435611ef3565b34801561089457600080fd5b50610396611f0d565b3480156108a957600080fd5b506103c2611f12565b6102e2600435611f21565b3480156108c957600080fd5b506102e261242e565b3480156108de57600080fd5b506103c2600435612487565b3480156108f657600080fd5b50610396610d4b565b34801561090b57600080fd5b506103c26124af565b34801561092057600080fd5b506103c26124be565b34801561093557600080fd5b506102e26124cd565b34801561094a57600080fd5b5061034d600160a060020a03600435166125c2565b34801561096b57600080fd5b50610633600160a060020a0360043516612608565b34801561098c57600080fd5b50610633600160a060020a0360043516612619565b610633600160a060020a036004358116906024358116906044359060643581169060843516612642565b3480156109d757600080fd5b506102e263ffffffff60043516612895565b3480156109f557600080fd5b506102e2600160a060020a036004351661298a565b348015610a1657600080fd5b506103c2612a27565b610a27612a36565b60038054911515740100000000000000000000000000000000000000000274ff000000000000000000000000000000000000000019909216919091179055565b60095463ffffffff1681565b6000806000806000610a836147f3565b50505050600160a060020a03929092166000908152600860209081526040808320815160a081018352815480825260019092015463ffffffff811694820185905260ff64010000000082048116151594830194909452650100000000008104841615156060830152660100000000000090049092161515608090920182905295919450919250829190565b6000805160206148a183398151915260005260086020527f353c2eb9e53a4a4a6d45d72082ff2e9dc829d1125618772a83eb0e7f86632c43546601000000000000900460ff1690565b6000600782815481101515610b6857fe5b600091825260209091200154600160a060020a031692915050565b600081610b8f81612a86565b5050600160a060020a031660009081526008602052604090206001015463ffffffff1690565b600080610bc3858585611be1565b91509150935093915050565b610bd7612a36565b610be081611378565b50565b600030600160a060020a0316600560009054906101000a9004600160a060020a0316600160a060020a0316638da5cb5b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610c4257600080fd5b505af1158015610c56573d6000803e3d6000fd5b505050506040513d6020811015610c6c57600080fd5b5051600160a060020a031614905090565b60035474010000000000000000000000000000000000000000900460ff1681565b610ca6612a36565b610cae61242e565b565b610cb8612a36565b600554604080517f5e35359e000000000000000000000000000000000000000000000000000000008152600160a060020a03868116600483015285811660248301526044820185905291519190921691635e35359e91606480830192600092919082900301818387803b158015610d2e57600080fd5b505af1158015610d42573d6000803e3d6000fd5b50505050505050565b600190565b600060606000610d5e612af3565b600260045560008411610dbb576040805160e560020a62461bcd02815260206004820152600f60248201527f4552525f5a45524f5f414d4f554e540000000000000000000000000000000000604482015290519081900360640190fd5b600560009054906101000a9004600160a060020a0316600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610e0e57600080fd5b505af1158015610e22573d6000803e3d6000fd5b505050506040513d6020811015610e3857600080fd5b5051600554604080517fa24835d1000000000000000000000000000000000000000000000000000000008152336004820152602481018890529051929550600160a060020a039091169163a24835d19160448082019260009290919082900301818387803b158015610ea957600080fd5b505af1158015610ebd573d6000803e3d6000fd5b50505050600780549050604051908082528060200260200182016040528015610ef0578160200160208202803883390190505b509150600090505b8151811015610f235760018282815181101515610f1157fe5b60209081029091010152600101610ef8565b610f896007805480602002602001604051908101604052809291908181526020018280548015610f7c57602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311610f5e575b5050505050838587612b4d565b505060016004555050565b60008054600160a060020a0316331480610fc9575060035474010000000000000000000000000000000000000000900460ff16155b151561100d576040805160e560020a62461bcd02815260206004820152601160248201526000805160206148e1833981519152604482015290519081900360640190fd5b6110367f436f6e7472616374526567697374727900000000000000000000000000000000612e12565b600254909150600160a060020a0380831691161480159061105f5750600160a060020a03811615155b15156110b5576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e56414c49445f5245474953545259000000000000000000000000604482015290519081900360640190fd5b604080517fbb34534c0000000000000000000000000000000000000000000000000000000081527f436f6e747261637452656769737472790000000000000000000000000000000060048201529051600091600160a060020a0384169163bb34534c9160248082019260209290919082900301818787803b15801561113957600080fd5b505af115801561114d573d6000803e3d6000fd5b505050506040513d602081101561116357600080fd5b5051600160a060020a031614156111c4576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e56414c49445f5245474953545259000000000000000000000000604482015290519081900360640190fd5b6002805460038054600160a060020a0380841673ffffffffffffffffffffffffffffffffffffffff19928316179092559091169216919091179055565b611209612a36565b8061121381612eaa565b506006805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b602081565b60095468010000000000000000900463ffffffff1681565b600061126a612af3565b6002600455611277612a36565b61128e600080516020614881833981519152612e12565b600160a060020a0385166000908152600860205260409020600101549091506601000000000000900460ff1615806112cb57506112c9610be3565b155b806112e35750600054600160a060020a038281169116145b1515611327576040805160e560020a62461bcd02815260206004820152601160248201526000805160206148e1833981519152604482015290519081900360640190fd5b611332848484612f0b565b600160a060020a0384166000908152600860205260409020600101546601000000000000900460ff1615610f8957610f8984612f3c565b600354600160a060020a031681565b611380612a36565b60008051602061488183398151915261139881613031565b600554604080517ff2fde38b000000000000000000000000000000000000000000000000000000008152600160a060020a0385811660048301529151919092169163f2fde38b91602480830192600092919082900301818387803b1580156113ff57600080fd5b505af1158015611413573d6000803e3d6000fd5b505050505050565b6000611425612af3565b6002600455611432612a36565b6000805160206148a183398151915261144a81612a86565b611461600080516020614881833981519152612e12565b915061146b610be3565b15806114845750600054600160a060020a038381169116145b15156114c8576040805160e560020a62461bcd02815260206004820152601160248201526000805160206148e1833981519152604482015290519081900360640190fd5b604051600160a060020a03841690303180156108fc02916000818181858888f193505050501580156114fe573d6000803e3d6000fd5b506115166000805160206148a1833981519152612f3c565b5050600160045550565b600061152a612a36565b611532613087565b8261153c816130e4565b8361154681612eaa565b8361155081613144565b600554600160a060020a038781169116148015906115945750600160a060020a0386166000908152600860205260409020600101546601000000000000900460ff16155b15156115d8576040805160e560020a62461bcd0281526020600482015260136024820152600080516020614841833981519152604482015290519081900360640190fd5b60095463ffffffff908116620f42400381169086161115611643576040805160e560020a62461bcd02815260206004820152601a60248201527f4552525f494e56414c49445f524553455256455f574549474854000000000000604482015290519081900360640190fd5b61ffff61164e611b85565b61ffff16106116a7576040805160e560020a62461bcd02815260206004820152601960248201527f4552525f494e56414c49445f524553455256455f434f554e5400000000000000604482015290519081900360640190fd5b505050600160a060020a0390921660008181526008602052604081208181556001908101805466ff0000000000001963ffffffff80881663ffffffff1993841617919091166601000000000000179092556007805493840181559093527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688909101805473ffffffffffffffffffffffffffffffffffffffff191690931790925560098054808416909401909216921691909117905550565b600080825b600081111561177d5760019190910190600a9004611764565b5092915050565b600061178e611b85565b905090565b600154600160a060020a031633146117e3576040805160e560020a62461bcd02815260206004820152601160248201526000805160206148e1833981519152604482015290519081900360640190fd5b60015460008054604051600160a060020a0393841693909116917f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91a3600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b600254600160a060020a031681565b6000806000611870612af3565b600260045561187d6131b9565b611888868686613217565b600092505b85518310156119465785516000805160206148a1833981519152908790859081106118b457fe5b90602001906020020151600160a060020a0316141561193b573485848151811015156118dc57fe5b602090810290910101511461193b576040805160e560020a62461bcd02815260206004820152601760248201527f4552525f4554485f414d4f554e545f4d49534d41544348000000000000000000604482015290519081900360640190fd5b60019092019161188d565b60003411156119eb576000805160206148a183398151915260005260086020527f353c2eb9e53a4a4a6d45d72082ff2e9dc829d1125618772a83eb0e7f86632c43546601000000000000900460ff1615156119eb576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f4e4f5f4554485f524553455256450000000000000000000000000000604482015290519081900360640190fd5b600560009054906101000a9004600160a060020a0316600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015611a3e57600080fd5b505af1158015611a52573d6000803e3d6000fd5b505050506040513d6020811015611a6857600080fd5b50519150611a778686846134d3565b905083811015611ad1576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f52455455524e5f544f4f5f4c4f570000000000000000000000000000604482015290519081900360640190fd5b600554604080517f867904b4000000000000000000000000000000000000000000000000000000008152336004820152602481018490529051600160a060020a039092169163867904b49160448082019260009290919082900301818387803b158015611b3d57600080fd5b505af1158015611b51573d6000803e3d6000fd5b505060016004555050505050505050565b600054600160a060020a031681565b600954640100000000900463ffffffff1681565b60075490565b80516000908190815b81811015611bc857611bbc8582815181101515611bad57fe5b9060200190602002015161175f565b90920191600101611b94565b6001611bd48484611ef3565b03600a0a95945050505050565b600080600080611bef6131b9565b86611bf981612a86565b86611c0381612a86565b600160a060020a038981169089161415611c67576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f53414d455f534f555243455f54415247455400000000000000000000604482015290519081900360640190fd5b611c7e6000805160206148c1833981519152612e12565b600160a060020a03166394491fab611c958b612619565b600160a060020a038c1660009081526008602052604090206001015463ffffffff16611cc08c612619565b600160a060020a038d16600090815260086020908152604080832060010154815163ffffffff89811660e060020a028252600482019890985295871660248701526044860194909452949092166064840152608483018d9052925160a48084019492939192918390030190829087803b158015611d3c57600080fd5b505af1158015611d50573d6000803e3d6000fd5b505050506040513d6020811015611d6657600080fd5b50519350611d7384613502565b9384900399939850929650505050505050565b6000611d90612af3565b6002600455611d9d6131b9565b611da8838386613217565b600560009054906101000a9004600160a060020a0316600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015611dfb57600080fd5b505af1158015611e0f573d6000803e3d6000fd5b505050506040513d6020811015611e2557600080fd5b5051600554604080517fa24835d1000000000000000000000000000000000000000000000000000000008152336004820152602481018890529051929350600160a060020a039091169163a24835d19160448082019260009290919082900301818387803b158015611e9657600080fd5b505af1158015611eaa573d6000803e3d6000fd5b50505050610f8983838387612b4d565b611ec2612a36565b6003546002805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055565b600081600281048401811515611f0557fe5b049392505050565b600181565b600654600160a060020a031681565b600080600080600080600080600080611f38612af3565b6002600455611f4561353e565b6000805160206148a1833981519152600052600860205260008051602061486183398151915254611f7c903463ffffffff61358016565b6000805160206148a183398151915260009081526008602090815260008051602061486183398151915292909255600554604080517f18160ddd0000000000000000000000000000000000000000000000000000000081529051600160a060020a03909216936318160ddd9360048084019492938390030190829087803b15801561200657600080fd5b505af115801561201a573d6000803e3d6000fd5b505050506040513d602081101561203057600080fd5b5051995061204b6000805160206148c1833981519152612e12565b6007549099509750600096505b8787101561239857600780548890811061206e57fe5b9060005260206000200160009054906101000a9004600160a060020a031695506008600087600160a060020a0316600160a060020a0316815260200190815260200160002060000154945088600160a060020a031663ebbb21588b87600960009054906101000a900463ffffffff168f6040518563ffffffff1660e060020a028152600401808581526020018481526020018363ffffffff1663ffffffff168152602001828152602001945050505050602060405180830381600087803b15801561213857600080fd5b505af115801561214c573d6000803e3d6000fd5b505050506040513d602081101561216257600080fd5b50519350600160a060020a0386166000805160206148a183398151915214156122c457833411156121c25760405133903486900380156108fc02916000818181858888f193505050501580156121bc573d6000803e3d6000fd5b506122bf565b833410156122bf573415612220576040805160e560020a62461bcd02815260206004820152601560248201527f4552525f494e56414c49445f4554485f56414c55450000000000000000000000604482015290519081900360640190fd5b600954612248906c010000000000000000000000009004600160a060020a03163330876135e0565b6009600c9054906101000a9004600160a060020a0316600160a060020a0316632e1a7d4d856040518263ffffffff1660e060020a02815260040180828152602001915050600060405180830381600087803b1580156122a657600080fd5b505af11580156122ba573d6000803e3d6000fd5b505050505b6122d0565b6122d0863330876135e0565b6122e0858563ffffffff6136c816565b600160a060020a0387166000908152600860205260409020819055925061230d8a8c63ffffffff6136c816565b60408051868152602081018690528082018390529051919350600160a060020a0388169133917f4a1a2a6176e9646d9e3157f7c2ab3c499f18337c0b0828cfb28e0a61de4a11f7919081900360600190a350600160a060020a03851660009081526008602052604090206001015463ffffffff1661238d82878584613725565b600190960195612058565b600554604080517f867904b4000000000000000000000000000000000000000000000000000000008152336004820152602481018e90529051600160a060020a039092169163867904b49160448082019260009290919082900301818387803b15801561240457600080fd5b505af1158015612418573d6000803e3d6000fd5b5050600160045550505050505050505050505050565b612436612a36565b61243e613794565b600554600190600160a060020a0316612455610d4b565b61ffff167f6b08c2e2c9969e55a647a764db9b554d64dc42f1a704da11a6d5b129ad163f2c60405160405180910390a4565b600780548290811061249557fe5b600091825260209091200154600160a060020a0316905081565b600554600160a060020a031681565b600154600160a060020a031681565b60006124d7612a36565b6124ee600080516020614881833981519152612e12565b600554909150600090600160a060020a0316612508610d4b565b61ffff167f6b08c2e2c9969e55a647a764db9b554d64dc42f1a704da11a6d5b129ad163f2c60405160405180910390a46125418161298a565b604080517f90f58c96000000000000000000000000000000000000000000000000000000008152602060048201529051600160a060020a038316916390f58c9691602480830192600092919082900301818387803b1580156125a257600080fd5b505af11580156125b6573d6000803e3d6000fd5b50505050610be0611793565b6008602052600090815260409020805460019091015463ffffffff81169060ff640100000000820481169165010000000000810482169166010000000000009091041685565b600061261382612619565b92915050565b60008161262581612a86565b5050600160a060020a031660009081526008602052604090205490565b600061264c612af3565b60026004557f536f7672796e537761704e6574776f726b00000000000000000000000000000061267b81613031565b600160a060020a0387811690871614156126df576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f53414d455f534f555243455f54415247455400000000000000000000604482015290519081900360640190fd5b600654600160a060020a031615806128225750600654604080517f3af32abf000000000000000000000000000000000000000000000000000000008152600160a060020a03878116600483015291519190921691633af32abf9160248083019260209291908290030181600087803b15801561275a57600080fd5b505af115801561276e573d6000803e3d6000fd5b505050506040513d602081101561278457600080fd5b505180156128225750600654604080517f3af32abf000000000000000000000000000000000000000000000000000000008152600160a060020a03868116600483015291519190921691633af32abf9160248083019260209291908290030181600087803b1580156127f557600080fd5b505af1158015612809573d6000803e3d6000fd5b505050506040513d602081101561281f57600080fd5b50515b1515612878576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f4e4f545f57484954454c495354454400000000000000000000000000604482015290519081900360640190fd5b61288587878787876137ff565b6001600455979650505050505050565b61289d612a36565b60095463ffffffff64010000000090910481169082161115612909576040805160e560020a62461bcd02815260206004820152601a60248201527f4552525f494e56414c49445f434f4e56455253494f4e5f464545000000000000604482015290519081900360640190fd5b6009546040805163ffffffff6801000000000000000090930483168152918316602083015280517f81cd2ffb37dd237c0e4e2a3de5265fcf9deb43d3e7801e80db9f1ccfba7ee6009281900390910190a16009805463ffffffff90921668010000000000000000026bffffffff000000000000000019909216919091179055565b612992612a36565b600054600160a060020a03828116911614156129f8576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f53414d455f4f574e4552000000000000000000000000000000000000604482015290519081900360640190fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600554600160a060020a031690565b600054600160a060020a03163314610cae576040805160e560020a62461bcd02815260206004820152601160248201526000805160206148e1833981519152604482015290519081900360640190fd5b600160a060020a0381166000908152600860205260409020600101546601000000000000900460ff161515610be0576040805160e560020a62461bcd0281526020600482015260136024820152600080516020614841833981519152604482015290519081900360640190fd5b600454600114610cae576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f5245454e5452414e4359000000000000000000000000000000000000604482015290519081900360640190fd5b600080600080600080600080612b6161353e565b612b786000805160206148c1833981519152612e12565b9750612b8a8a8a63ffffffff61358016565b9650600095505b8b51861015612e04578b86815181101515612ba857fe5b9060200190602002015194506008600086600160a060020a0316600160a060020a0316815260200190815260200160002060000154935087600160a060020a0316638074590a8b86600960009054906101000a900463ffffffff168d6040518563ffffffff1660e060020a028152600401808581526020018481526020018363ffffffff1663ffffffff168152602001828152602001945050505050602060405180830381600087803b158015612c5e57600080fd5b505af1158015612c72573d6000803e3d6000fd5b505050506040513d6020811015612c8857600080fd5b50518b519093508b9087908110612c9b57fe5b60209081029091010151831015612cfc576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f5a45524f5f5441524745545f414d4f554e5400000000000000000000604482015290519081900360640190fd5b612d0c848463ffffffff61358016565b600160a060020a03861660008181526008602052604090208290559092506000805160206148a18339815191521415612d7257604051339084156108fc029085906000818181858888f19350505050158015612d6c573d6000803e3d6000fd5b50612d7d565b612d7d853385613ad2565b60408051848152602081018490528082018990529051600160a060020a0387169133917fbc7d19d505c7ec4db83f3b51f19fb98c4c8a99922e7839d1ee608dfbee29501b9181900360600190a350600160a060020a03841660009081526008602052604090206001015463ffffffff16612df987868484613725565b600190950194612b91565b505050505050505050505050565b600254604080517fbb34534c000000000000000000000000000000000000000000000000000000008152600481018490529051600092600160a060020a03169163bb34534c91602480830192602092919082900301818787803b158015612e7857600080fd5b505af1158015612e8c573d6000803e3d6000fd5b505050506040513d6020811015612ea257600080fd5b505192915050565b600160a060020a038116301415610be0576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f414444524553535f49535f53454c4600000000000000000000000000604482015290519081900360640190fd5b612f13612a36565b82612f1d816130e4565b82612f27816130e4565b83612f3181612eaa565b611413868686613ad2565b80612f4681612a86565b600160a060020a0382166000805160206148a18339815191521415612f8657600160a060020a03821660009081526008602052604090203031905561302d565b604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a038416916370a082319160248083019260209291908290030181600087803b158015612fe757600080fd5b505af1158015612ffb573d6000803e3d6000fd5b505050506040513d602081101561301157600080fd5b5051600160a060020a0383166000908152600860205260409020555b5050565b61303a81612e12565b600160a060020a03163314610be0576040805160e560020a62461bcd02815260206004820152601160248201526000805160206148e1833981519152604482015290519081900360640190fd5b61308f610be3565b15610cae576040805160e560020a62461bcd02815260206004820152600a60248201527f4552525f41435449564500000000000000000000000000000000000000000000604482015290519081900360640190fd5b600160a060020a0381161515610be0576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b60008163ffffffff161180156131635750620f424063ffffffff821611155b1515610be0576040805160e560020a62461bcd02815260206004820152601a60248201527f4552525f494e56414c49445f524553455256455f574549474854000000000000604482015290519081900360640190fd5b6131c1610be3565b1515610cae576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f494e4143544956450000000000000000000000000000000000000000604482015290519081900360640190fd5b600754835160009182918114613265576040805160e560020a62461bcd0281526020600482015260136024820152600080516020614841833981519152604482015290519081900360640190fd5b845181146132bd576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f494e56414c49445f414d4f554e540000000000000000000000000000604482015290519081900360640190fd5b600092505b8083101561347b576008600087858151811015156132dc57fe5b6020908102909101810151600160a060020a031682528101919091526040016000206001015460ff6601000000000000909104161515613354576040805160e560020a62461bcd0281526020600482015260136024820152600080516020614841833981519152604482015290519081900360640190fd5b600091505b808210156133bc57858281518110151561336f57fe5b90602001906020020151600160a060020a031660078481548110151561339157fe5b600091825260209091200154600160a060020a031614156133b1576133bc565b600190910190613359565b808210613401576040805160e560020a62461bcd0281526020600482015260136024820152600080516020614841833981519152604482015290519081900360640190fd5b6000858481518110151561341157fe5b6020908102909101015111613470576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f494e56414c49445f414d4f554e540000000000000000000000000000604482015290519081900360640190fd5b6001909201916132c2565b60008411611413576040805160e560020a62461bcd02815260206004820152600f60248201527f4552525f5a45524f5f414d4f554e540000000000000000000000000000000000604482015290519081900360640190fd5b60008115156134ed576134e68484613b89565b90506134fb565b6134f8848484613d90565b90505b9392505050565b60095460009061261390620f42409061353290859068010000000000000000900463ffffffff9081169061415016565b9063ffffffff6141c916565b60075460005b8181101561302d5761357860078281548110151561355e57fe5b600091825260209091200154600160a060020a0316612f3c565b600101613544565b6000818310156135da576040805160e560020a62461bcd02815260206004820152600d60248201527f4552525f554e444552464c4f5700000000000000000000000000000000000000604482015290519081900360640190fd5b50900390565b604080517f7472616e7366657246726f6d28616464726573732c616464726573732c75696e81527f74323536290000000000000000000000000000000000000000000000000000006020808301919091528251918290036025018220600160a060020a038088166024850152861660448401526064808401869052845180850390910181526084909301909352810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19909316929092179091526136c2908590614237565b50505050565b6000828201838110156134fb576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b600554600160a060020a0380851691167f77f29993cf2c084e726f7e802da0719d6a0ade3e204badc7a3ffd57ecb768c2461376385620f4240614150565b6137768863ffffffff8088169061415016565b6040805192835260208301919091528051918290030190a350505050565b600161379e611b85565b61ffff16116137f7576040805160e560020a62461bcd02815260206004820152601960248201527f4552525f494e56414c49445f524553455256455f434f554e5400000000000000604482015290519081900360640190fd5b610cae6142c5565b600080600080613810898989611be1565b909350915082151561386c576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f5a45524f5f5441524745545f414d4f554e5400000000000000000000604482015290519081900360640190fd5b61387588612619565b905080831061388057fe5b600160a060020a0389166000805160206148a183398151915214156138fb573487146138f6576040805160e560020a62461bcd02815260206004820152601760248201527f4552525f4554485f414d4f554e545f4d49534d41544348000000000000000000604482015290519081900360640190fd5b613a03565b341580156139ad5750866139aa6139118b612619565b604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a038e16916370a082319160248083019260209291908290030181600087803b15801561397257600080fd5b505af1158015613986573d6000803e3d6000fd5b505050506040513d602081101561399c57600080fd5b50519063ffffffff61358016565b10155b1515613a03576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f494e56414c49445f414d4f554e540000000000000000000000000000604482015290519081900360640190fd5b613a0c89612f3c565b600160a060020a038816600090815260086020526040902054613a35908463ffffffff61358016565b600160a060020a0389166000818152600860205260409020919091556000805160206148a18339815191521415613aa257604051600160a060020a0386169084156108fc029085906000818181858888f19350505050158015613a9c573d6000803e3d6000fd5b50613aad565b613aad888685613ad2565b613abb8989888a87876143a3565b613ac58989614428565b5090979650505050505050565b604080517f7472616e7366657228616464726573732c75696e74323536290000000000000081528151908190036019018120600160a060020a038516602483015260448083018590528351808403909101815260649092019092526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1990931692909217909152613b84908490614237565b505050565b600080600080613b9885611b8b565b9250600091505b8551821015613d865785516000805160206148a183398151915290879084908110613bc657fe5b60209081029091010151600160a060020a031614613c1857613c188683815181101515613bef57fe5b9060200190602002015133308886815181101515613c0957fe5b906020019060200201516135e0565b8482815181101515613c2657fe5b90602001906020020151600860008885815181101515613c4257fe5b6020908102909101810151600160a060020a03168252810191909152604001600020558551869083908110613c7357fe5b90602001906020020151600160a060020a031633600160a060020a03167f4a1a2a6176e9646d9e3157f7c2ab3c499f18337c0b0828cfb28e0a61de4a11f78785815181101515613cbf57fe5b906020019060200201518886815181101515613cd757fe5b60209081029091018101516040805193845291830152818101889052519081900360600190a3600860008784815181101515613d0f57fe5b6020908102909101810151600160a060020a0316825281019190915260400160002060010154865163ffffffff9091169150613d7b908490889085908110613d5357fe5b906020019060200201518785815181101515613d6b57fe5b9060200190602002015184613725565b600190910190613b9f565b5090949350505050565b600080600080600080600080600080613da761353e565b6000805160206148a1833981519152600052600860205260008051602061486183398151915254613dde903463ffffffff61358016565b6000805160206148a1833981519152600052600860205260008051602061486183398151915255613e1c6000805160206148c1833981519152612e12565b9850613e2a898c8f8f614636565b9750613e3c8b8963ffffffff6136c816565b9650600095505b8c5186101561413f578c86815181101515613e5a57fe5b9060200190602002015194506008600086600160a060020a0316600160a060020a0316815260200190815260200160002060000154935088600160a060020a031663ebbb21588c86600960009054906101000a900463ffffffff168c6040518563ffffffff1660e060020a028152600401808581526020018481526020018363ffffffff1663ffffffff168152602001828152602001945050505050602060405180830381600087803b158015613f1057600080fd5b505af1158015613f24573d6000803e3d6000fd5b505050506040513d6020811015613f3a57600080fd5b5051925060008311613f96576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f5a45524f5f5441524745545f414d4f554e5400000000000000000000604482015290519081900360640190fd5b8b86815181101515613fa457fe5b60209081029091010151831115613fb757fe5b600160a060020a0385166000805160206148a183398151915214613fe657613fe1853330866135e0565b614059565b828c87815181101515613ff557fe5b9060200190602002015111156140595733600160a060020a03166108fc848e8981518110151561402157fe5b90602001906020020151039081150290604051600060405180830381858888f19350505050158015614057573d6000803e3d6000fd5b505b614069848463ffffffff6136c816565b600160a060020a03861660008181526008602090815260409182902084905581518781529081018490528082018b90529051929450909133917f4a1a2a6176e9646d9e3157f7c2ab3c499f18337c0b0828cfb28e0a61de4a11f7919081900360600190a3600860008e888151811015156140df57fe5b6020908102909101810151600160a060020a03168252810191909152604001600020600101548d5163ffffffff90911691506141349088908f908990811061412357fe5b906020019060200201518484613725565b600190950194613e43565b50959b9a5050505050505050505050565b600080831515614163576000915061177d565b5082820282848281151561417357fe5b04146134fb576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b600080808311614223576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f4449564944455f42595f5a45524f0000000000000000000000000000604482015290519081900360640190fd5b828481151561422e57fe5b04949350505050565b61423f614821565b602060405190810160405280600181525090506020818351602085016000875af180151561426c57600080fd5b5080511515613b84576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f5452414e534645525f4641494c454400000000000000000000000000604482015290519081900360640190fd5b6142cd612a36565b60006142d7611b85565b61ffff1611614330576040805160e560020a62461bcd02815260206004820152601960248201527f4552525f494e56414c49445f524553455256455f434f554e5400000000000000604482015290519081900360640190fd5b600560009054906101000a9004600160a060020a0316600160a060020a03166379ba50976040518163ffffffff1660e060020a028152600401600060405180830381600087803b15801561438357600080fd5b505af1158015614397573d6000803e3d6000fd5b50505050610cae61353e565b7f800000000000000000000000000000000000000000000000000000000000000081106143cc57fe5b60408051848152602081018490528082018390529051600160a060020a038087169288821692918a16917f276856b36cbc45526a0ba64f44611557a2a8b68662c5388e9fe6d72e86e1c8cb9181900360600190a4505050505050565b6000806000806000806000600560009054906101000a9004600160a060020a0316600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561448657600080fd5b505af115801561449a573d6000803e3d6000fd5b505050506040513d60208110156144b057600080fd5b505196506144bd89612619565b95506144c888612619565b600160a060020a03808b16600090815260086020526040808220600190810154938d1683529120015491965063ffffffff90811695509081169350614511908690869061415016565b91506145268663ffffffff8086169061415016565b60408051848152602081018390528151929350600160a060020a03808c1693908d16927f77f29993cf2c084e726f7e802da0719d6a0ade3e204badc7a3ffd57ecb768c24928290030190a361457d878a8887613725565b61458987898786613725565b604080518881526020810188905263ffffffff8616818301529051600160a060020a038b16917f8a6a7f53b3c8fa1dc4b83e3f1be668c1b251ff8d44cdcb83eb3acec3fec6a788919081900360600190a2604080518881526020810187905263ffffffff8516818301529051600160a060020a038a16917f8a6a7f53b3c8fa1dc4b83e3f1be668c1b251ff8d44cdcb83eb3acec3fec6a788919081900360600190a2505050505050505050565b60008060015b84518110156146f9576146a160086000878481518110151561465a57fe5b6020908102909101810151600160a060020a0316825281019190915260400160002054855186908590811061468b57fe5b602090810290910101519063ffffffff61415016565b6146e76008600088868151811015156146b657fe5b6020908102909101810151600160a060020a0316825281019190915260400160002054865187908590811061468b57fe5b10156146f1578091505b60010161463c565b86600160a060020a0316632f55bdb58760086000898781518110151561471b57fe5b6020908102909101810151600160a060020a0316825281019190915260400160002054600954885163ffffffff9091169089908890811061475857fe5b906020019060200201516040518563ffffffff1660e060020a028152600401808581526020018481526020018363ffffffff1663ffffffff168152602001828152602001945050505050602060405180830381600087803b1580156147bc57600080fd5b505af11580156147d0573d6000803e3d6000fd5b505050506040513d60208110156147e657600080fd5b5051979650505050505050565b6040805160a08101825260008082526020820181905291810182905260608101829052608081019190915290565b602060405190810160405280600190602082028038833950919291505056004552525f494e56414c49445f5245534552564500000000000000000000000000353c2eb9e53a4a4a6d45d72082ff2e9dc829d1125618772a83eb0e7f86632c42536f7672796e53776170436f6e76657274657255706772616465720000000000000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee536f7672796e53776170466f726d756c610000000000000000000000000000004552525f4143434553535f44454e494544000000000000000000000000000000a165627a7a72305820324b4364d6a1792677c2fd82e313b62b9cc957d58949fe9823a7cc610a1a0c050029a165627a7a723058202b00ad8ff8cddb595e46d416fc24da468de123d56b62cf0dc1be99de9699a9e50029", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4D7B DUP1 PUSH2 0x20 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x4B JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x11413958 DUP2 EQ PUSH2 0x50 JUMPI DUP1 PUSH4 0x3E8FF43F EQ PUSH2 0xB6 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x8D PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH4 0xFFFFFFFF PUSH1 0x44 CALLDATALOAD AND PUSH2 0xE2 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xC2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xCB PUSH2 0x1D5 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0xFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP1 DUP5 DUP5 DUP5 PUSH2 0xF0 PUSH2 0x1DA JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP4 DUP5 AND DUP2 MSTORE SWAP2 SWAP1 SWAP3 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH4 0xFFFFFFFF SWAP1 SWAP2 AND PUSH1 0x40 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 PUSH1 0x0 CREATE DUP1 ISZERO DUP1 ISZERO PUSH2 0x142 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH32 0xF2FDE38B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD SWAP2 SWAP3 POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND SWAP2 PUSH4 0xF2FDE38B SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1B4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1C8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP SWAP3 SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x4B65 DUP1 PUSH2 0x1EB DUP4 CODECOPY ADD SWAP1 JUMP STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x1 PUSH1 0x4 SSTORE PUSH32 0xC0829421C1D260BD3CB3E0F06CFE2D52DB2CE315000000000000000000000000 PUSH1 0x9 SSTORE CALLVALUE DUP1 ISZERO PUSH3 0x3A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH1 0x60 DUP1 PUSH3 0x4B65 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 SWAP1 DUP2 MSTORE DUP2 MLOAD PUSH1 0x20 DUP4 ADD MLOAD SWAP2 SWAP1 SWAP3 ADD MLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND CALLER OR SWAP1 SSTORE DUP3 DUP3 DUP3 DUP3 DUP3 DUP3 DUP2 DUP1 PUSH3 0x88 DUP2 PUSH5 0x100000000 PUSH3 0x135 DUP2 MUL DIV JUMP JUMPDEST POP PUSH1 0x2 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT SWAP3 DUP4 AND DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x3 DUP1 SLOAD SWAP1 SWAP3 AND OR SWAP1 SSTORE DUP3 PUSH3 0xC8 DUP2 PUSH5 0x100000000 PUSH3 0x135 DUP2 MUL DIV JUMP JUMPDEST DUP2 PUSH3 0xDD DUP2 PUSH5 0x100000000 PUSH3 0x1B0 DUP2 MUL DIV JUMP JUMPDEST POP POP PUSH1 0x5 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP5 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 OR SWAP1 SWAP3 SSTORE POP PUSH1 0x9 DUP1 SLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP3 AND PUSH5 0x100000000 MUL PUSH8 0xFFFFFFFF00000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE POP PUSH3 0x229 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH3 0x1AD JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH3 0xF4240 PUSH4 0xFFFFFFFF DUP3 AND GT ISZERO PUSH3 0x1AD JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F434F4E56455253494F4E5F464545000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x492C DUP1 PUSH3 0x239 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x258 JUMPI PUSH4 0xFFFFFFFF PUSH1 0xE0 PUSH1 0x2 EXP PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x24C7EC7 DUP2 EQ PUSH2 0x2E4 JUMPI DUP1 PUSH4 0xC7D5CD8 EQ PUSH2 0x2FE JUMPI DUP1 PUSH4 0xE53AAE9 EQ PUSH2 0x32C JUMPI DUP1 PUSH4 0x12C2ACA4 EQ PUSH2 0x381 JUMPI DUP1 PUSH4 0x19B64015 EQ PUSH2 0x3AA JUMPI DUP1 PUSH4 0x1CFAB290 EQ PUSH2 0x3DE JUMPI DUP1 PUSH4 0x1E1401F8 EQ PUSH2 0x3FF JUMPI DUP1 PUSH4 0x21E6B53D EQ PUSH2 0x442 JUMPI DUP1 PUSH4 0x22F3E2D4 EQ PUSH2 0x463 JUMPI DUP1 PUSH4 0x2FE8A6AD EQ PUSH2 0x478 JUMPI DUP1 PUSH4 0x38A5E016 EQ PUSH2 0x48D JUMPI DUP1 PUSH4 0x395900D4 EQ PUSH2 0x4A2 JUMPI DUP1 PUSH4 0x3E8FF43F EQ PUSH2 0x4CC JUMPI DUP1 PUSH4 0x415F1240 EQ PUSH2 0x4F8 JUMPI DUP1 PUSH4 0x49D10B64 EQ PUSH2 0x510 JUMPI DUP1 PUSH4 0x4AF80F0E EQ PUSH2 0x525 JUMPI DUP1 PUSH4 0x54FD4D50 EQ PUSH2 0x546 JUMPI DUP1 PUSH4 0x579CD3CA EQ PUSH2 0x55B JUMPI DUP1 PUSH4 0x5E35359E EQ PUSH2 0x570 JUMPI DUP1 PUSH4 0x61CD756E EQ PUSH2 0x59A JUMPI DUP1 PUSH4 0x67B6D57C EQ PUSH2 0x5AF JUMPI DUP1 PUSH4 0x690D8320 EQ PUSH2 0x5D0 JUMPI DUP1 PUSH4 0x6A49D2C4 EQ PUSH2 0x5F1 JUMPI DUP1 PUSH4 0x6AA5332C EQ PUSH2 0x61B JUMPI DUP1 PUSH4 0x71F52BF3 EQ PUSH2 0x645 JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x65A JUMPI DUP1 PUSH4 0x7B103999 EQ PUSH2 0x66F JUMPI DUP1 PUSH4 0x7D8916BD EQ PUSH2 0x684 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x707 JUMPI DUP1 PUSH4 0x94C275AD EQ PUSH2 0x71C JUMPI DUP1 PUSH4 0x9B99A8E2 EQ PUSH2 0x731 JUMPI DUP1 PUSH4 0xA60E7724 EQ PUSH2 0x746 JUMPI DUP1 PUSH4 0xAF94B8D8 EQ PUSH2 0x79B JUMPI DUP1 PUSH4 0xB127C0A5 EQ PUSH2 0x7C5 JUMPI DUP1 PUSH4 0xB4A176D3 EQ PUSH2 0x858 JUMPI DUP1 PUSH4 0xBBB7E5D8 EQ PUSH2 0x86D JUMPI DUP1 PUSH4 0xBF754558 EQ PUSH2 0x888 JUMPI DUP1 PUSH4 0xC45D3D92 EQ PUSH2 0x89D JUMPI DUP1 PUSH4 0xCA1D209D EQ PUSH2 0x8B2 JUMPI DUP1 PUSH4 0xCDC91C69 EQ PUSH2 0x8BD JUMPI DUP1 PUSH4 0xD031370B EQ PUSH2 0x8D2 JUMPI DUP1 PUSH4 0xD260529C EQ PUSH2 0x8EA JUMPI DUP1 PUSH4 0xD3FB73B4 EQ PUSH2 0x8FF JUMPI DUP1 PUSH4 0xD4EE1D90 EQ PUSH2 0x914 JUMPI DUP1 PUSH4 0xD55EC697 EQ PUSH2 0x929 JUMPI DUP1 PUSH4 0xD66BD524 EQ PUSH2 0x93E JUMPI DUP1 PUSH4 0xD8959512 EQ PUSH2 0x95F JUMPI DUP1 PUSH4 0xDC8DE379 EQ PUSH2 0x980 JUMPI DUP1 PUSH4 0xE8DC12FF EQ PUSH2 0x9A1 JUMPI DUP1 PUSH4 0xECBCA55D EQ PUSH2 0x9CB JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x9E9 JUMPI DUP1 PUSH4 0xFC0C546A EQ PUSH2 0xA0A JUMPI JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x0 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH32 0x353C2EB9E53A4A4A6D45D72082FF2E9DC829D1125618772A83EB0E7F86632C43 SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO PUSH2 0x2E2 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4841 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2F0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E2 PUSH1 0x4 CALLDATALOAD ISZERO ISZERO PUSH2 0xA1F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x30A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x313 PUSH2 0xA67 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x338 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x34D PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0xA73 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP6 DUP7 MSTORE PUSH4 0xFFFFFFFF SWAP1 SWAP5 AND PUSH1 0x20 DUP7 ADD MSTORE SWAP2 ISZERO ISZERO DUP5 DUP5 ADD MSTORE ISZERO ISZERO PUSH1 0x60 DUP5 ADD MSTORE ISZERO ISZERO PUSH1 0x80 DUP4 ADD MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0xA0 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x38D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x396 PUSH2 0xB0E JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3B6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3C2 PUSH1 0x4 CALLDATALOAD PUSH2 0xB57 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x313 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0xB83 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x40B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x429 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0xBB5 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x44E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0xBCF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x46F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x396 PUSH2 0xBE3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x484 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x396 PUSH2 0xC7D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x499 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E2 PUSH2 0xC9E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4AE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0xCB0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4D8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4E1 PUSH2 0xD4B JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0xFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x504 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E2 PUSH1 0x4 CALLDATALOAD PUSH2 0xD50 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x51C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E2 PUSH2 0xF94 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x531 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x1201 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x552 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4E1 PUSH2 0x1243 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x567 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x313 PUSH2 0x1248 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x57C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x1260 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5A6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3C2 PUSH2 0x1369 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5BB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x1378 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5DC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x141B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5FD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH4 0xFFFFFFFF PUSH1 0x24 CALLDATALOAD AND PUSH2 0x1520 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x627 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x633 PUSH1 0x4 CALLDATALOAD PUSH2 0x175F JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x651 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4E1 PUSH2 0x1784 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x666 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E2 PUSH2 0x1793 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x67B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3C2 PUSH2 0x1854 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x2E2 SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP POP PUSH1 0x40 DUP1 MLOAD DUP8 CALLDATALOAD DUP10 ADD DUP1 CALLDATALOAD PUSH1 0x20 DUP2 DUP2 MUL DUP5 DUP2 ADD DUP3 ADD SWAP1 SWAP6 MSTORE DUP2 DUP5 MSTORE SWAP9 SWAP12 SWAP11 SWAP10 DUP10 ADD SWAP9 SWAP3 SWAP8 POP SWAP1 DUP3 ADD SWAP6 POP SWAP4 POP DUP4 SWAP3 POP DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP POP SWAP4 CALLDATALOAD SWAP5 POP PUSH2 0x1863 SWAP4 POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x713 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3C2 PUSH2 0x1B62 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x728 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x313 PUSH2 0x1B71 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x73D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4E1 PUSH2 0x1B85 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x752 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x633 SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP PUSH2 0x1B8B SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7A7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x429 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x1BE1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7D1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 PUSH1 0x24 DUP1 CALLDATALOAD DUP3 DUP2 ADD CALLDATALOAD DUP5 DUP2 MUL DUP1 DUP8 ADD DUP7 ADD SWAP1 SWAP8 MSTORE DUP1 DUP7 MSTORE PUSH2 0x2E2 SWAP7 DUP5 CALLDATALOAD SWAP7 CALLDATASIZE SWAP7 PUSH1 0x44 SWAP6 SWAP2 SWAP5 SWAP1 SWAP2 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP POP PUSH1 0x40 DUP1 MLOAD DUP8 CALLDATALOAD DUP10 ADD DUP1 CALLDATALOAD PUSH1 0x20 DUP2 DUP2 MUL DUP5 DUP2 ADD DUP3 ADD SWAP1 SWAP6 MSTORE DUP2 DUP5 MSTORE SWAP9 SWAP12 SWAP11 SWAP10 DUP10 ADD SWAP9 SWAP3 SWAP8 POP SWAP1 DUP3 ADD SWAP6 POP SWAP4 POP DUP4 SWAP3 POP DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP PUSH2 0x1D86 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x864 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E2 PUSH2 0x1EBA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x879 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x633 PUSH1 0x4 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH2 0x1EF3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x894 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x396 PUSH2 0x1F0D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8A9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3C2 PUSH2 0x1F12 JUMP JUMPDEST PUSH2 0x2E2 PUSH1 0x4 CALLDATALOAD PUSH2 0x1F21 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8C9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E2 PUSH2 0x242E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8DE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3C2 PUSH1 0x4 CALLDATALOAD PUSH2 0x2487 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8F6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x396 PUSH2 0xD4B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x90B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3C2 PUSH2 0x24AF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x920 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3C2 PUSH2 0x24BE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x935 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E2 PUSH2 0x24CD JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x94A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x34D PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x25C2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x96B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x633 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x2608 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x98C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x633 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x2619 JUMP JUMPDEST PUSH2 0x633 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x44 CALLDATALOAD SWAP1 PUSH1 0x64 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x84 CALLDATALOAD AND PUSH2 0x2642 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9D7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E2 PUSH4 0xFFFFFFFF PUSH1 0x4 CALLDATALOAD AND PUSH2 0x2895 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x298A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA16 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3C2 PUSH2 0x2A27 JUMP JUMPDEST PUSH2 0xA27 PUSH2 0x2A36 JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD SWAP2 ISZERO ISZERO PUSH21 0x10000000000000000000000000000000000000000 MUL PUSH21 0xFF0000000000000000000000000000000000000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH4 0xFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0xA83 PUSH2 0x47F3 JUMP JUMPDEST POP POP POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP2 MLOAD PUSH1 0xA0 DUP2 ADD DUP4 MSTORE DUP2 SLOAD DUP1 DUP3 MSTORE PUSH1 0x1 SWAP1 SWAP3 ADD SLOAD PUSH4 0xFFFFFFFF DUP2 AND SWAP5 DUP3 ADD DUP6 SWAP1 MSTORE PUSH1 0xFF PUSH5 0x100000000 DUP3 DIV DUP2 AND ISZERO ISZERO SWAP5 DUP4 ADD SWAP5 SWAP1 SWAP5 MSTORE PUSH6 0x10000000000 DUP2 DIV DUP5 AND ISZERO ISZERO PUSH1 0x60 DUP4 ADD MSTORE PUSH7 0x1000000000000 SWAP1 DIV SWAP1 SWAP3 AND ISZERO ISZERO PUSH1 0x80 SWAP1 SWAP3 ADD DUP3 SWAP1 MSTORE SWAP6 SWAP2 SWAP5 POP SWAP2 SWAP3 POP DUP3 SWAP2 SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x0 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH32 0x353C2EB9E53A4A4A6D45D72082FF2E9DC829D1125618772A83EB0E7F86632C43 SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x7 DUP3 DUP2 SLOAD DUP2 LT ISZERO ISZERO PUSH2 0xB68 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0xB8F DUP2 PUSH2 0x2A86 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH4 0xFFFFFFFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xBC3 DUP6 DUP6 DUP6 PUSH2 0x1BE1 JUMP JUMPDEST SWAP2 POP SWAP2 POP SWAP4 POP SWAP4 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xBD7 PUSH2 0x2A36 JUMP JUMPDEST PUSH2 0xBE0 DUP2 PUSH2 0x1378 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 ADDRESS PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x8DA5CB5B PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC42 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xC56 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xC6C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH2 0xCA6 PUSH2 0x2A36 JUMP JUMPDEST PUSH2 0xCAE PUSH2 0x242E JUMP JUMPDEST JUMP JUMPDEST PUSH2 0xCB8 PUSH2 0x2A36 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x5E35359E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP6 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP3 ADD DUP6 SWAP1 MSTORE SWAP2 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP2 PUSH4 0x5E35359E SWAP2 PUSH1 0x64 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xD2E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xD42 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 PUSH1 0x0 PUSH2 0xD5E PUSH2 0x2AF3 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH1 0x0 DUP5 GT PUSH2 0xDBB JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xF PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5A45524F5F414D4F554E540000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x18160DDD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xE0E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xE22 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xE38 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xA24835D100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP9 SWAP1 MSTORE SWAP1 MLOAD SWAP3 SWAP6 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP2 AND SWAP2 PUSH4 0xA24835D1 SWAP2 PUSH1 0x44 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xEA9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xEBD JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x7 DUP1 SLOAD SWAP1 POP PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0xEF0 JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CODESIZE DUP4 CODECOPY ADD SWAP1 POP JUMPDEST POP SWAP2 POP PUSH1 0x0 SWAP1 POP JUMPDEST DUP2 MLOAD DUP2 LT ISZERO PUSH2 0xF23 JUMPI PUSH1 0x1 DUP3 DUP3 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xF11 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MSTORE PUSH1 0x1 ADD PUSH2 0xEF8 JUMP JUMPDEST PUSH2 0xF89 PUSH1 0x7 DUP1 SLOAD DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD DUP1 ISZERO PUSH2 0xF7C JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xF5E JUMPI JUMPDEST POP POP POP POP POP DUP4 DUP6 DUP8 PUSH2 0x2B4D JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0x4 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ DUP1 PUSH2 0xFC9 JUMPI POP PUSH1 0x3 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x100D JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48E1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x1036 PUSH32 0x436F6E7472616374526567697374727900000000000000000000000000000000 PUSH2 0x2E12 JUMP JUMPDEST PUSH1 0x2 SLOAD SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP4 AND SWAP2 AND EQ DUP1 ISZERO SWAP1 PUSH2 0x105F JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x10B5 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245474953545259000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0xBB34534C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH32 0x436F6E7472616374526567697374727900000000000000000000000000000000 PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP2 PUSH4 0xBB34534C SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1139 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x114D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1163 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ ISZERO PUSH2 0x11C4 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245474953545259000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP5 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP3 DUP4 AND OR SWAP1 SWAP3 SSTORE SWAP1 SWAP2 AND SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x1209 PUSH2 0x2A36 JUMP JUMPDEST DUP1 PUSH2 0x1213 DUP2 PUSH2 0x2EAA JUMP JUMPDEST POP PUSH1 0x6 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x20 DUP2 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH9 0x10000000000000000 SWAP1 DIV PUSH4 0xFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x126A PUSH2 0x2AF3 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH2 0x1277 PUSH2 0x2A36 JUMP JUMPDEST PUSH2 0x128E PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4881 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x2E12 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD SWAP1 SWAP2 POP PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 PUSH2 0x12CB JUMPI POP PUSH2 0x12C9 PUSH2 0xBE3 JUMP JUMPDEST ISZERO JUMPDEST DUP1 PUSH2 0x12E3 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ JUMPDEST ISZERO ISZERO PUSH2 0x1327 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48E1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x1332 DUP5 DUP5 DUP5 PUSH2 0x2F0B JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0xF89 JUMPI PUSH2 0xF89 DUP5 PUSH2 0x2F3C JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH2 0x1380 PUSH2 0x2A36 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4881 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x1398 DUP2 PUSH2 0x3031 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xF2FDE38B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP2 PUSH4 0xF2FDE38B SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x13FF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1413 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1425 PUSH2 0x2AF3 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH2 0x1432 PUSH2 0x2A36 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x144A DUP2 PUSH2 0x2A86 JUMP JUMPDEST PUSH2 0x1461 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4881 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x2E12 JUMP JUMPDEST SWAP2 POP PUSH2 0x146B PUSH2 0xBE3 JUMP JUMPDEST ISZERO DUP1 PUSH2 0x1484 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 DUP2 AND SWAP2 AND EQ JUMPDEST ISZERO ISZERO PUSH2 0x14C8 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48E1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP1 ADDRESS BALANCE DUP1 ISZERO PUSH2 0x8FC MUL SWAP2 PUSH1 0x0 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x14FE JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH2 0x1516 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x2F3C JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0x4 SSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x152A PUSH2 0x2A36 JUMP JUMPDEST PUSH2 0x1532 PUSH2 0x3087 JUMP JUMPDEST DUP3 PUSH2 0x153C DUP2 PUSH2 0x30E4 JUMP JUMPDEST DUP4 PUSH2 0x1546 DUP2 PUSH2 0x2EAA JUMP JUMPDEST DUP4 PUSH2 0x1550 DUP2 PUSH2 0x3144 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 DUP2 AND SWAP2 AND EQ DUP1 ISZERO SWAP1 PUSH2 0x1594 JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x15D8 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4841 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x9 SLOAD PUSH4 0xFFFFFFFF SWAP1 DUP2 AND PUSH3 0xF4240 SUB DUP2 AND SWAP1 DUP7 AND GT ISZERO PUSH2 0x1643 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F574549474854000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0xFFFF PUSH2 0x164E PUSH2 0x1B85 JUMP JUMPDEST PUSH2 0xFFFF AND LT PUSH2 0x16A7 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F434F554E5400000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP2 DUP2 SSTORE PUSH1 0x1 SWAP1 DUP2 ADD DUP1 SLOAD PUSH7 0xFF000000000000 NOT PUSH4 0xFFFFFFFF DUP1 DUP9 AND PUSH4 0xFFFFFFFF NOT SWAP4 DUP5 AND OR SWAP2 SWAP1 SWAP2 AND PUSH7 0x1000000000000 OR SWAP1 SWAP3 SSTORE PUSH1 0x7 DUP1 SLOAD SWAP4 DUP5 ADD DUP2 SSTORE SWAP1 SWAP4 MSTORE PUSH32 0xA66CC928B5EDB82AF9BD49922954155AB7B0942694BEA4CE44661D9A8736C688 SWAP1 SWAP2 ADD DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 SWAP4 OR SWAP1 SWAP3 SSTORE PUSH1 0x9 DUP1 SLOAD DUP1 DUP5 AND SWAP1 SWAP5 ADD SWAP1 SWAP3 AND SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 JUMPDEST PUSH1 0x0 DUP2 GT ISZERO PUSH2 0x177D JUMPI PUSH1 0x1 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0xA SWAP1 DIV PUSH2 0x1764 JUMP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x178E PUSH2 0x1B85 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x17E3 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48E1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND SWAP4 SWAP1 SWAP2 AND SWAP2 PUSH32 0x343765429AEA5A34B3FF6A3785A98A5ABB2597ACA87BFBB58632C173D585373A SWAP2 LOG3 PUSH1 0x1 DUP1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND OR SWAP1 SWAP2 SSTORE AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x1870 PUSH2 0x2AF3 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH2 0x187D PUSH2 0x31B9 JUMP JUMPDEST PUSH2 0x1888 DUP7 DUP7 DUP7 PUSH2 0x3217 JUMP JUMPDEST PUSH1 0x0 SWAP3 POP JUMPDEST DUP6 MLOAD DUP4 LT ISZERO PUSH2 0x1946 JUMPI DUP6 MLOAD PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP1 DUP8 SWAP1 DUP6 SWAP1 DUP2 LT PUSH2 0x18B4 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ ISZERO PUSH2 0x193B JUMPI CALLVALUE DUP6 DUP5 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x18DC JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MLOAD EQ PUSH2 0x193B JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4554485F414D4F554E545F4D49534D41544348000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 PUSH2 0x188D JUMP JUMPDEST PUSH1 0x0 CALLVALUE GT ISZERO PUSH2 0x19EB JUMPI PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x0 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH32 0x353C2EB9E53A4A4A6D45D72082FF2E9DC829D1125618772A83EB0E7F86632C43 SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO PUSH2 0x19EB JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4E4F5F4554485F524553455256450000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x18160DDD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1A3E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1A52 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1A68 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 POP PUSH2 0x1A77 DUP7 DUP7 DUP5 PUSH2 0x34D3 JUMP JUMPDEST SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0x1AD1 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F52455455524E5F544F4F5F4C4F570000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x867904B400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP2 PUSH4 0x867904B4 SWAP2 PUSH1 0x44 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1B3D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1B51 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x1 PUSH1 0x4 SSTORE POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH5 0x100000000 SWAP1 DIV PUSH4 0xFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x7 SLOAD SWAP1 JUMP JUMPDEST DUP1 MLOAD PUSH1 0x0 SWAP1 DUP2 SWAP1 DUP2 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1BC8 JUMPI PUSH2 0x1BBC DUP6 DUP3 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x1BAD JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH2 0x175F JUMP JUMPDEST SWAP1 SWAP3 ADD SWAP2 PUSH1 0x1 ADD PUSH2 0x1B94 JUMP JUMPDEST PUSH1 0x1 PUSH2 0x1BD4 DUP5 DUP5 PUSH2 0x1EF3 JUMP JUMPDEST SUB PUSH1 0xA EXP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x1BEF PUSH2 0x31B9 JUMP JUMPDEST DUP7 PUSH2 0x1BF9 DUP2 PUSH2 0x2A86 JUMP JUMPDEST DUP7 PUSH2 0x1C03 DUP2 PUSH2 0x2A86 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP10 DUP2 AND SWAP1 DUP10 AND EQ ISZERO PUSH2 0x1C67 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F534F555243455F54415247455400000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x1C7E PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48C1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x2E12 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x94491FAB PUSH2 0x1C95 DUP12 PUSH2 0x2619 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP13 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH4 0xFFFFFFFF AND PUSH2 0x1CC0 DUP13 PUSH2 0x2619 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP14 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 ADD SLOAD DUP2 MLOAD PUSH4 0xFFFFFFFF DUP10 DUP2 AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP3 MSTORE PUSH1 0x4 DUP3 ADD SWAP9 SWAP1 SWAP9 MSTORE SWAP6 DUP8 AND PUSH1 0x24 DUP8 ADD MSTORE PUSH1 0x44 DUP7 ADD SWAP5 SWAP1 SWAP5 MSTORE SWAP5 SWAP1 SWAP3 AND PUSH1 0x64 DUP5 ADD MSTORE PUSH1 0x84 DUP4 ADD DUP14 SWAP1 MSTORE SWAP3 MLOAD PUSH1 0xA4 DUP1 DUP5 ADD SWAP5 SWAP3 SWAP4 SWAP2 SWAP3 SWAP2 DUP4 SWAP1 SUB ADD SWAP1 DUP3 SWAP1 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1D3C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1D50 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1D66 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP4 POP PUSH2 0x1D73 DUP5 PUSH2 0x3502 JUMP JUMPDEST SWAP4 DUP5 SWAP1 SUB SWAP10 SWAP4 SWAP9 POP SWAP3 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1D90 PUSH2 0x2AF3 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH2 0x1D9D PUSH2 0x31B9 JUMP JUMPDEST PUSH2 0x1DA8 DUP4 DUP4 DUP7 PUSH2 0x3217 JUMP JUMPDEST PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x18160DDD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1DFB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1E0F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1E25 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xA24835D100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP9 SWAP1 MSTORE SWAP1 MLOAD SWAP3 SWAP4 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP2 AND SWAP2 PUSH4 0xA24835D1 SWAP2 PUSH1 0x44 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1E96 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1EAA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0xF89 DUP4 DUP4 DUP4 DUP8 PUSH2 0x2B4D JUMP JUMPDEST PUSH2 0x1EC2 PUSH2 0x2A36 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x2 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x2 DUP2 DIV DUP5 ADD DUP2 ISZERO ISZERO PUSH2 0x1F05 JUMPI INVALID JUMPDEST DIV SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x1 DUP2 JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x1F38 PUSH2 0x2AF3 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH2 0x1F45 PUSH2 0x353E JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x0 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4861 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SLOAD PUSH2 0x1F7C SWAP1 CALLVALUE PUSH4 0xFFFFFFFF PUSH2 0x3580 AND JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4861 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP3 SWAP1 SWAP3 SSTORE PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x18160DDD00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP4 PUSH4 0x18160DDD SWAP4 PUSH1 0x4 DUP1 DUP5 ADD SWAP5 SWAP3 SWAP4 DUP4 SWAP1 SUB ADD SWAP1 DUP3 SWAP1 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2006 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x201A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2030 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP10 POP PUSH2 0x204B PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48C1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x2E12 JUMP JUMPDEST PUSH1 0x7 SLOAD SWAP1 SWAP10 POP SWAP8 POP PUSH1 0x0 SWAP7 POP JUMPDEST DUP8 DUP8 LT ISZERO PUSH2 0x2398 JUMPI PUSH1 0x7 DUP1 SLOAD DUP9 SWAP1 DUP2 LT PUSH2 0x206E JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP6 POP PUSH1 0x8 PUSH1 0x0 DUP8 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD SWAP5 POP DUP9 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xEBBB2158 DUP12 DUP8 PUSH1 0x9 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH4 0xFFFFFFFF AND DUP16 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH4 0xFFFFFFFF AND PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP5 POP POP POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2138 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x214C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2162 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP4 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ ISZERO PUSH2 0x22C4 JUMPI DUP4 CALLVALUE GT ISZERO PUSH2 0x21C2 JUMPI PUSH1 0x40 MLOAD CALLER SWAP1 CALLVALUE DUP7 SWAP1 SUB DUP1 ISZERO PUSH2 0x8FC MUL SWAP2 PUSH1 0x0 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x21BC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH2 0x22BF JUMP JUMPDEST DUP4 CALLVALUE LT ISZERO PUSH2 0x22BF JUMPI CALLVALUE ISZERO PUSH2 0x2220 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4554485F56414C55450000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x9 SLOAD PUSH2 0x2248 SWAP1 PUSH13 0x1000000000000000000000000 SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER ADDRESS DUP8 PUSH2 0x35E0 JUMP JUMPDEST PUSH1 0x9 PUSH1 0xC SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x2E1A7D4D DUP6 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x22A6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x22BA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMPDEST PUSH2 0x22D0 JUMP JUMPDEST PUSH2 0x22D0 DUP7 CALLER ADDRESS DUP8 PUSH2 0x35E0 JUMP JUMPDEST PUSH2 0x22E0 DUP6 DUP6 PUSH4 0xFFFFFFFF PUSH2 0x36C8 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP2 SWAP1 SSTORE SWAP3 POP PUSH2 0x230D DUP11 DUP13 PUSH4 0xFFFFFFFF PUSH2 0x36C8 AND JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP7 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP7 SWAP1 MSTORE DUP1 DUP3 ADD DUP4 SWAP1 MSTORE SWAP1 MLOAD SWAP2 SWAP4 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 AND SWAP2 CALLER SWAP2 PUSH32 0x4A1A2A6176E9646D9E3157F7C2AB3C499F18337C0B0828CFB28E0A61DE4A11F7 SWAP2 SWAP1 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG3 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH4 0xFFFFFFFF AND PUSH2 0x238D DUP3 DUP8 DUP6 DUP5 PUSH2 0x3725 JUMP JUMPDEST PUSH1 0x1 SWAP1 SWAP7 ADD SWAP6 PUSH2 0x2058 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x867904B400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP15 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP2 PUSH4 0x867904B4 SWAP2 PUSH1 0x44 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2404 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2418 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x1 PUSH1 0x4 SSTORE POP POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x2436 PUSH2 0x2A36 JUMP JUMPDEST PUSH2 0x243E PUSH2 0x3794 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x2455 PUSH2 0xD4B JUMP JUMPDEST PUSH2 0xFFFF AND PUSH32 0x6B08C2E2C9969E55A647A764DB9B554D64DC42F1A704DA11A6D5B129AD163F2C PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 JUMP JUMPDEST PUSH1 0x7 DUP1 SLOAD DUP3 SWAP1 DUP2 LT PUSH2 0x2495 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP1 POP DUP2 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x24D7 PUSH2 0x2A36 JUMP JUMPDEST PUSH2 0x24EE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4881 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x2E12 JUMP JUMPDEST PUSH1 0x5 SLOAD SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x2508 PUSH2 0xD4B JUMP JUMPDEST PUSH2 0xFFFF AND PUSH32 0x6B08C2E2C9969E55A647A764DB9B554D64DC42F1A704DA11A6D5B129AD163F2C PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH2 0x2541 DUP2 PUSH2 0x298A JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x90F58C9600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 AND SWAP2 PUSH4 0x90F58C96 SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x25A2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x25B6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0xBE0 PUSH2 0x1793 JUMP JUMPDEST PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD PUSH4 0xFFFFFFFF DUP2 AND SWAP1 PUSH1 0xFF PUSH5 0x100000000 DUP3 DIV DUP2 AND SWAP2 PUSH6 0x10000000000 DUP2 DIV DUP3 AND SWAP2 PUSH7 0x1000000000000 SWAP1 SWAP2 DIV AND DUP6 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2613 DUP3 PUSH2 0x2619 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0x2625 DUP2 PUSH2 0x2A86 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x264C PUSH2 0x2AF3 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH32 0x536F7672796E537761704E6574776F726B000000000000000000000000000000 PUSH2 0x267B DUP2 PUSH2 0x3031 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 DUP2 AND SWAP1 DUP8 AND EQ ISZERO PUSH2 0x26DF JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F534F555243455F54415247455400000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND ISZERO DUP1 PUSH2 0x2822 JUMPI POP PUSH1 0x6 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x3AF32ABF00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP2 PUSH4 0x3AF32ABF SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x275A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x276E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2784 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD DUP1 ISZERO PUSH2 0x2822 JUMPI POP PUSH1 0x6 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x3AF32ABF00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP2 PUSH4 0x3AF32ABF SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x27F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2809 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x281F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD JUMPDEST ISZERO ISZERO PUSH2 0x2878 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4E4F545F57484954454C495354454400000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x2885 DUP8 DUP8 DUP8 DUP8 DUP8 PUSH2 0x37FF JUMP JUMPDEST PUSH1 0x1 PUSH1 0x4 SSTORE SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x289D PUSH2 0x2A36 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH4 0xFFFFFFFF PUSH5 0x100000000 SWAP1 SWAP2 DIV DUP2 AND SWAP1 DUP3 AND GT ISZERO PUSH2 0x2909 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F434F4E56455253494F4E5F464545000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH4 0xFFFFFFFF PUSH9 0x10000000000000000 SWAP1 SWAP4 DIV DUP4 AND DUP2 MSTORE SWAP2 DUP4 AND PUSH1 0x20 DUP4 ADD MSTORE DUP1 MLOAD PUSH32 0x81CD2FFB37DD237C0E4E2A3DE5265FCF9DEB43D3E7801E80DB9F1CCFBA7EE600 SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG1 PUSH1 0x9 DUP1 SLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP3 AND PUSH9 0x10000000000000000 MUL PUSH12 0xFFFFFFFF0000000000000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x2992 PUSH2 0x2A36 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x29F8 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F4F574E4552000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0xCAE JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48E1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO PUSH2 0xBE0 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4841 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x4 SLOAD PUSH1 0x1 EQ PUSH2 0xCAE JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5245454E5452414E4359000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x2B61 PUSH2 0x353E JUMP JUMPDEST PUSH2 0x2B78 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48C1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x2E12 JUMP JUMPDEST SWAP8 POP PUSH2 0x2B8A DUP11 DUP11 PUSH4 0xFFFFFFFF PUSH2 0x3580 AND JUMP JUMPDEST SWAP7 POP PUSH1 0x0 SWAP6 POP JUMPDEST DUP12 MLOAD DUP7 LT ISZERO PUSH2 0x2E04 JUMPI DUP12 DUP7 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x2BA8 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD SWAP5 POP PUSH1 0x8 PUSH1 0x0 DUP7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD SWAP4 POP DUP8 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x8074590A DUP12 DUP7 PUSH1 0x9 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH4 0xFFFFFFFF AND DUP14 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH4 0xFFFFFFFF AND PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP5 POP POP POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2C5E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2C72 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2C88 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD DUP12 MLOAD SWAP1 SWAP4 POP DUP12 SWAP1 DUP8 SWAP1 DUP2 LT PUSH2 0x2C9B JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MLOAD DUP4 LT ISZERO PUSH2 0x2CFC JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5A45524F5F5441524745545F414D4F554E5400000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x2D0C DUP5 DUP5 PUSH4 0xFFFFFFFF PUSH2 0x3580 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP3 SWAP1 SSTORE SWAP1 SWAP3 POP PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ ISZERO PUSH2 0x2D72 JUMPI PUSH1 0x40 MLOAD CALLER SWAP1 DUP5 ISZERO PUSH2 0x8FC MUL SWAP1 DUP6 SWAP1 PUSH1 0x0 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x2D6C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH2 0x2D7D JUMP JUMPDEST PUSH2 0x2D7D DUP6 CALLER DUP6 PUSH2 0x3AD2 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP5 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 SWAP1 MSTORE DUP1 DUP3 ADD DUP10 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND SWAP2 CALLER SWAP2 PUSH32 0xBC7D19D505C7EC4DB83F3B51F19FB98C4C8A99922E7839D1EE608DFBEE29501B SWAP2 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG3 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH4 0xFFFFFFFF AND PUSH2 0x2DF9 DUP8 DUP7 DUP5 DUP5 PUSH2 0x3725 JUMP JUMPDEST PUSH1 0x1 SWAP1 SWAP6 ADD SWAP5 PUSH2 0x2B91 JUMP JUMPDEST POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xBB34534C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP2 PUSH4 0xBB34534C SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2E78 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2E8C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2EA2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ADDRESS EQ ISZERO PUSH2 0xBE0 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F414444524553535F49535F53454C4600000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x2F13 PUSH2 0x2A36 JUMP JUMPDEST DUP3 PUSH2 0x2F1D DUP2 PUSH2 0x30E4 JUMP JUMPDEST DUP3 PUSH2 0x2F27 DUP2 PUSH2 0x30E4 JUMP JUMPDEST DUP4 PUSH2 0x2F31 DUP2 PUSH2 0x2EAA JUMP JUMPDEST PUSH2 0x1413 DUP7 DUP7 DUP7 PUSH2 0x3AD2 JUMP JUMPDEST DUP1 PUSH2 0x2F46 DUP2 PUSH2 0x2A86 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 AND PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ ISZERO PUSH2 0x2F86 JUMPI PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 ADDRESS BALANCE SWAP1 SSTORE PUSH2 0x302D JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2FE7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2FFB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x3011 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x303A DUP2 PUSH2 0x2E12 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0xBE0 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48E1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x308F PUSH2 0xBE3 JUMP JUMPDEST ISZERO PUSH2 0xCAE JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xA PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F41435449564500000000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0xBE0 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 PUSH4 0xFFFFFFFF AND GT DUP1 ISZERO PUSH2 0x3163 JUMPI POP PUSH3 0xF4240 PUSH4 0xFFFFFFFF DUP3 AND GT ISZERO JUMPDEST ISZERO ISZERO PUSH2 0xBE0 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F574549474854000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x31C1 PUSH2 0xBE3 JUMP JUMPDEST ISZERO ISZERO PUSH2 0xCAE JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E4143544956450000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x7 SLOAD DUP4 MLOAD PUSH1 0x0 SWAP2 DUP3 SWAP2 DUP2 EQ PUSH2 0x3265 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4841 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP5 MLOAD DUP2 EQ PUSH2 0x32BD JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F414D4F554E540000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 SWAP3 POP JUMPDEST DUP1 DUP4 LT ISZERO PUSH2 0x347B JUMPI PUSH1 0x8 PUSH1 0x0 DUP8 DUP6 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x32DC JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP3 MSTORE DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH1 0xFF PUSH7 0x1000000000000 SWAP1 SWAP2 DIV AND ISZERO ISZERO PUSH2 0x3354 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4841 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 SWAP2 POP JUMPDEST DUP1 DUP3 LT ISZERO PUSH2 0x33BC JUMPI DUP6 DUP3 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x336F JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x7 DUP5 DUP2 SLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3391 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ ISZERO PUSH2 0x33B1 JUMPI PUSH2 0x33BC JUMP JUMPDEST PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x3359 JUMP JUMPDEST DUP1 DUP3 LT PUSH2 0x3401 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4841 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP6 DUP5 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3411 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MLOAD GT PUSH2 0x3470 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F414D4F554E540000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 PUSH2 0x32C2 JUMP JUMPDEST PUSH1 0x0 DUP5 GT PUSH2 0x1413 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xF PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5A45524F5F414D4F554E540000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO PUSH2 0x34ED JUMPI PUSH2 0x34E6 DUP5 DUP5 PUSH2 0x3B89 JUMP JUMPDEST SWAP1 POP PUSH2 0x34FB JUMP JUMPDEST PUSH2 0x34F8 DUP5 DUP5 DUP5 PUSH2 0x3D90 JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x0 SWAP1 PUSH2 0x2613 SWAP1 PUSH3 0xF4240 SWAP1 PUSH2 0x3532 SWAP1 DUP6 SWAP1 PUSH9 0x10000000000000000 SWAP1 DIV PUSH4 0xFFFFFFFF SWAP1 DUP2 AND SWAP1 PUSH2 0x4150 AND JUMP JUMPDEST SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x41C9 AND JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x302D JUMPI PUSH2 0x3578 PUSH1 0x7 DUP3 DUP2 SLOAD DUP2 LT ISZERO ISZERO PUSH2 0x355E JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x2F3C JUMP JUMPDEST PUSH1 0x1 ADD PUSH2 0x3544 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT ISZERO PUSH2 0x35DA JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F554E444552464C4F5700000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP SWAP1 SUB SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x7472616E7366657246726F6D28616464726573732C616464726573732C75696E DUP2 MSTORE PUSH32 0x7432353629000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP3 MLOAD SWAP2 DUP3 SWAP1 SUB PUSH1 0x25 ADD DUP3 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP9 AND PUSH1 0x24 DUP6 ADD MSTORE DUP7 AND PUSH1 0x44 DUP5 ADD MSTORE PUSH1 0x64 DUP1 DUP5 ADD DUP7 SWAP1 MSTORE DUP5 MLOAD DUP1 DUP6 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x84 SWAP1 SWAP4 ADD SWAP1 SWAP4 MSTORE DUP2 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE PUSH2 0x36C2 SWAP1 DUP6 SWAP1 PUSH2 0x4237 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 ADD DUP4 DUP2 LT ISZERO PUSH2 0x34FB JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP6 AND SWAP2 AND PUSH32 0x77F29993CF2C084E726F7E802DA0719D6A0ADE3E204BADC7A3FFD57ECB768C24 PUSH2 0x3763 DUP6 PUSH3 0xF4240 PUSH2 0x4150 JUMP JUMPDEST PUSH2 0x3776 DUP9 PUSH4 0xFFFFFFFF DUP1 DUP9 AND SWAP1 PUSH2 0x4150 AND JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB ADD SWAP1 LOG3 POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH2 0x379E PUSH2 0x1B85 JUMP JUMPDEST PUSH2 0xFFFF AND GT PUSH2 0x37F7 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F434F554E5400000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0xCAE PUSH2 0x42C5 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x3810 DUP10 DUP10 DUP10 PUSH2 0x1BE1 JUMP JUMPDEST SWAP1 SWAP4 POP SWAP2 POP DUP3 ISZERO ISZERO PUSH2 0x386C JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5A45524F5F5441524745545F414D4F554E5400000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x3875 DUP9 PUSH2 0x2619 JUMP JUMPDEST SWAP1 POP DUP1 DUP4 LT PUSH2 0x3880 JUMPI INVALID JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP10 AND PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ ISZERO PUSH2 0x38FB JUMPI CALLVALUE DUP8 EQ PUSH2 0x38F6 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4554485F414D4F554E545F4D49534D41544348000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x3A03 JUMP JUMPDEST CALLVALUE ISZERO DUP1 ISZERO PUSH2 0x39AD JUMPI POP DUP7 PUSH2 0x39AA PUSH2 0x3911 DUP12 PUSH2 0x2619 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP15 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3972 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3986 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x399C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x3580 AND JUMP JUMPDEST LT ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x3A03 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F414D4F554E540000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x3A0C DUP10 PUSH2 0x2F3C JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x3A35 SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0x3580 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP10 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ ISZERO PUSH2 0x3AA2 JUMPI PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND SWAP1 DUP5 ISZERO PUSH2 0x8FC MUL SWAP1 DUP6 SWAP1 PUSH1 0x0 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x3A9C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH2 0x3AAD JUMP JUMPDEST PUSH2 0x3AAD DUP9 DUP7 DUP6 PUSH2 0x3AD2 JUMP JUMPDEST PUSH2 0x3ABB DUP10 DUP10 DUP9 DUP11 DUP8 DUP8 PUSH2 0x43A3 JUMP JUMPDEST PUSH2 0x3AC5 DUP10 DUP10 PUSH2 0x4428 JUMP JUMPDEST POP SWAP1 SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x7472616E7366657228616464726573732C75696E743235362900000000000000 DUP2 MSTORE DUP2 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x19 ADD DUP2 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x64 SWAP1 SWAP3 ADD SWAP1 SWAP3 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE PUSH2 0x3B84 SWAP1 DUP5 SWAP1 PUSH2 0x4237 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x3B98 DUP6 PUSH2 0x1B8B JUMP JUMPDEST SWAP3 POP PUSH1 0x0 SWAP2 POP JUMPDEST DUP6 MLOAD DUP3 LT ISZERO PUSH2 0x3D86 JUMPI DUP6 MLOAD PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP1 DUP8 SWAP1 DUP5 SWAP1 DUP2 LT PUSH2 0x3BC6 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ PUSH2 0x3C18 JUMPI PUSH2 0x3C18 DUP7 DUP4 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3BEF JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD CALLER ADDRESS DUP9 DUP7 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3C09 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH2 0x35E0 JUMP JUMPDEST DUP5 DUP3 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3C26 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x8 PUSH1 0x0 DUP9 DUP6 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3C42 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP3 MSTORE DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 SSTORE DUP6 MLOAD DUP7 SWAP1 DUP4 SWAP1 DUP2 LT PUSH2 0x3C73 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH32 0x4A1A2A6176E9646D9E3157F7C2AB3C499F18337C0B0828CFB28E0A61DE4A11F7 DUP8 DUP6 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3CBF JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD DUP9 DUP7 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3CD7 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x40 DUP1 MLOAD SWAP4 DUP5 MSTORE SWAP2 DUP4 ADD MSTORE DUP2 DUP2 ADD DUP9 SWAP1 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG3 PUSH1 0x8 PUSH1 0x0 DUP8 DUP5 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3D0F JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP3 MSTORE DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD SLOAD DUP7 MLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP2 AND SWAP2 POP PUSH2 0x3D7B SWAP1 DUP5 SWAP1 DUP9 SWAP1 DUP6 SWAP1 DUP2 LT PUSH2 0x3D53 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD DUP8 DUP6 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3D6B JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD DUP5 PUSH2 0x3725 JUMP JUMPDEST PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x3B9F JUMP JUMPDEST POP SWAP1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x3DA7 PUSH2 0x353E JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x0 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4861 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SLOAD PUSH2 0x3DDE SWAP1 CALLVALUE PUSH4 0xFFFFFFFF PUSH2 0x3580 AND JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x0 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4861 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SSTORE PUSH2 0x3E1C PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48C1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x2E12 JUMP JUMPDEST SWAP9 POP PUSH2 0x3E2A DUP10 DUP13 DUP16 DUP16 PUSH2 0x4636 JUMP JUMPDEST SWAP8 POP PUSH2 0x3E3C DUP12 DUP10 PUSH4 0xFFFFFFFF PUSH2 0x36C8 AND JUMP JUMPDEST SWAP7 POP PUSH1 0x0 SWAP6 POP JUMPDEST DUP13 MLOAD DUP7 LT ISZERO PUSH2 0x413F JUMPI DUP13 DUP7 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3E5A JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD SWAP5 POP PUSH1 0x8 PUSH1 0x0 DUP7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD SWAP4 POP DUP9 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xEBBB2158 DUP13 DUP7 PUSH1 0x9 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH4 0xFFFFFFFF AND DUP13 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH4 0xFFFFFFFF AND PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP5 POP POP POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3F10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3F24 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x3F3A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP3 POP PUSH1 0x0 DUP4 GT PUSH2 0x3F96 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5A45524F5F5441524745545F414D4F554E5400000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP12 DUP7 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3FA4 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MLOAD DUP4 GT ISZERO PUSH2 0x3FB7 JUMPI INVALID JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ PUSH2 0x3FE6 JUMPI PUSH2 0x3FE1 DUP6 CALLER ADDRESS DUP7 PUSH2 0x35E0 JUMP JUMPDEST PUSH2 0x4059 JUMP JUMPDEST DUP3 DUP13 DUP8 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3FF5 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD GT ISZERO PUSH2 0x4059 JUMPI CALLER PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x8FC DUP5 DUP15 DUP10 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x4021 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD SUB SWAP1 DUP2 ISZERO MUL SWAP1 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x4057 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP JUMPDEST PUSH2 0x4069 DUP5 DUP5 PUSH4 0xFFFFFFFF PUSH2 0x36C8 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP5 SWAP1 SSTORE DUP2 MLOAD DUP8 DUP2 MSTORE SWAP1 DUP2 ADD DUP5 SWAP1 MSTORE DUP1 DUP3 ADD DUP12 SWAP1 MSTORE SWAP1 MLOAD SWAP3 SWAP5 POP SWAP1 SWAP2 CALLER SWAP2 PUSH32 0x4A1A2A6176E9646D9E3157F7C2AB3C499F18337C0B0828CFB28E0A61DE4A11F7 SWAP2 SWAP1 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG3 PUSH1 0x8 PUSH1 0x0 DUP15 DUP9 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x40DF JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP3 MSTORE DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD SLOAD DUP14 MLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP2 AND SWAP2 POP PUSH2 0x4134 SWAP1 DUP9 SWAP1 DUP16 SWAP1 DUP10 SWAP1 DUP2 LT PUSH2 0x4123 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD DUP5 DUP5 PUSH2 0x3725 JUMP JUMPDEST PUSH1 0x1 SWAP1 SWAP6 ADD SWAP5 PUSH2 0x3E43 JUMP JUMPDEST POP SWAP6 SWAP12 SWAP11 POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 ISZERO ISZERO PUSH2 0x4163 JUMPI PUSH1 0x0 SWAP2 POP PUSH2 0x177D JUMP JUMPDEST POP DUP3 DUP3 MUL DUP3 DUP5 DUP3 DUP2 ISZERO ISZERO PUSH2 0x4173 JUMPI INVALID JUMPDEST DIV EQ PUSH2 0x34FB JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP4 GT PUSH2 0x4223 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4449564944455F42595F5A45524F0000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP3 DUP5 DUP2 ISZERO ISZERO PUSH2 0x422E JUMPI INVALID JUMPDEST DIV SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0x423F PUSH2 0x4821 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE POP SWAP1 POP PUSH1 0x20 DUP2 DUP4 MLOAD PUSH1 0x20 DUP6 ADD PUSH1 0x0 DUP8 GAS CALL DUP1 ISZERO ISZERO PUSH2 0x426C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD ISZERO ISZERO PUSH2 0x3B84 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5452414E534645525F4641494C454400000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x42CD PUSH2 0x2A36 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x42D7 PUSH2 0x1B85 JUMP JUMPDEST PUSH2 0xFFFF AND GT PUSH2 0x4330 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F434F554E5400000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x79BA5097 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x4383 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x4397 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0xCAE PUSH2 0x353E JUMP JUMPDEST PUSH32 0x8000000000000000000000000000000000000000000000000000000000000000 DUP2 LT PUSH2 0x43CC JUMPI INVALID JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP5 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 SWAP1 MSTORE DUP1 DUP3 ADD DUP4 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP8 AND SWAP3 DUP9 DUP3 AND SWAP3 SWAP2 DUP11 AND SWAP2 PUSH32 0x276856B36CBC45526A0BA64F44611557A2A8B68662C5388E9FE6D72E86E1C8CB SWAP2 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG4 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x18160DDD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x4486 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x449A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x44B0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP7 POP PUSH2 0x44BD DUP10 PUSH2 0x2619 JUMP JUMPDEST SWAP6 POP PUSH2 0x44C8 DUP9 PUSH2 0x2619 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 PUSH1 0x1 SWAP1 DUP2 ADD SLOAD SWAP4 DUP14 AND DUP4 MSTORE SWAP2 KECCAK256 ADD SLOAD SWAP2 SWAP7 POP PUSH4 0xFFFFFFFF SWAP1 DUP2 AND SWAP6 POP SWAP1 DUP2 AND SWAP4 POP PUSH2 0x4511 SWAP1 DUP7 SWAP1 DUP7 SWAP1 PUSH2 0x4150 AND JUMP JUMPDEST SWAP2 POP PUSH2 0x4526 DUP7 PUSH4 0xFFFFFFFF DUP1 DUP7 AND SWAP1 PUSH2 0x4150 AND JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP5 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP4 SWAP1 MSTORE DUP2 MLOAD SWAP3 SWAP4 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP13 AND SWAP4 SWAP1 DUP14 AND SWAP3 PUSH32 0x77F29993CF2C084E726F7E802DA0719D6A0ADE3E204BADC7A3FFD57ECB768C24 SWAP3 DUP3 SWAP1 SUB ADD SWAP1 LOG3 PUSH2 0x457D DUP8 DUP11 DUP9 DUP8 PUSH2 0x3725 JUMP JUMPDEST PUSH2 0x4589 DUP8 DUP10 DUP8 DUP7 PUSH2 0x3725 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP9 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP9 SWAP1 MSTORE PUSH4 0xFFFFFFFF DUP7 AND DUP2 DUP4 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND SWAP2 PUSH32 0x8A6A7F53B3C8FA1DC4B83E3F1BE668C1B251FF8D44CDCB83EB3ACEC3FEC6A788 SWAP2 SWAP1 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG2 PUSH1 0x40 DUP1 MLOAD DUP9 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP8 SWAP1 MSTORE PUSH4 0xFFFFFFFF DUP6 AND DUP2 DUP4 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP11 AND SWAP2 PUSH32 0x8A6A7F53B3C8FA1DC4B83E3F1BE668C1B251FF8D44CDCB83EB3ACEC3FEC6A788 SWAP2 SWAP1 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG2 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x1 JUMPDEST DUP5 MLOAD DUP2 LT ISZERO PUSH2 0x46F9 JUMPI PUSH2 0x46A1 PUSH1 0x8 PUSH1 0x0 DUP8 DUP5 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x465A JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP3 MSTORE DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 SLOAD DUP6 MLOAD DUP7 SWAP1 DUP6 SWAP1 DUP2 LT PUSH2 0x468B JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MLOAD SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x4150 AND JUMP JUMPDEST PUSH2 0x46E7 PUSH1 0x8 PUSH1 0x0 DUP9 DUP7 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x46B6 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP3 MSTORE DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 SLOAD DUP7 MLOAD DUP8 SWAP1 DUP6 SWAP1 DUP2 LT PUSH2 0x468B JUMPI INVALID JUMPDEST LT ISZERO PUSH2 0x46F1 JUMPI DUP1 SWAP2 POP JUMPDEST PUSH1 0x1 ADD PUSH2 0x463C JUMP JUMPDEST DUP7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x2F55BDB5 DUP8 PUSH1 0x8 PUSH1 0x0 DUP10 DUP8 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x471B JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP3 MSTORE DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH1 0x9 SLOAD DUP9 MLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP2 AND SWAP1 DUP10 SWAP1 DUP9 SWAP1 DUP2 LT PUSH2 0x4758 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH4 0xFFFFFFFF AND PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP5 POP POP POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x47BC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x47D0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x47E6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xA0 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE SWAP2 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x60 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 SWAP1 PUSH1 0x20 DUP3 MUL DUP1 CODESIZE DUP4 CODECOPY POP SWAP2 SWAP3 SWAP2 POP POP JUMP STOP GASLIMIT MSTORE MSTORE 0x5f 0x49 0x4e JUMP COINBASE 0x4c 0x49 DIFFICULTY 0x5f MSTORE GASLIMIT MSTORE8 GASLIMIT MSTORE JUMP GASLIMIT STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP CALLDATALOAD EXTCODECOPY 0x2e 0xb9 0xe5 GASPRICE 0x4a 0x4a PUSH14 0x45D72082FF2E9DC829D112561877 0x2a DUP4 0xeb 0xe PUSH32 0x86632C42536F7672796E53776170436F6E766572746572557067726164657200 STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee MSTORE8 PUSH16 0x7672796E53776170466F726D756C6100 STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP GASLIMIT MSTORE MSTORE 0x5f COINBASE NUMBER NUMBER GASLIMIT MSTORE8 MSTORE8 0x5f DIFFICULTY GASLIMIT 0x4e 0x49 GASLIMIT DIFFICULTY STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 ORIGIN 0x4b NUMBER PUSH5 0xD6A1792677 0xc2 REVERT DUP3 0xe3 SGT 0xb6 0x2b SWAP13 0xc9 JUMPI 0xd5 DUP10 0x49 INVALID SWAP9 0x23 0xa7 0xcc PUSH2 0xA1A 0xc SDIV STOP 0x29 LOG1 PUSH6 0x627A7A723058 KECCAK256 0x2b STOP 0xad DUP16 0xf8 0xcd 0xdb MSIZE 0x5e 0x46 0xd4 AND 0xfc 0x24 0xda 0x46 DUP14 0xe1 0x23 0xd5 PUSH12 0x62CF0DC1BE99DE9699A9E500 0x29 ", + "sourceMap": "266:1032:24:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;266:1032:24;;;;;;;" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "60806040526004361061004b5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631141395881146100505780633e8ff43f146100b6575b600080fd5b34801561005c57600080fd5b5061008d73ffffffffffffffffffffffffffffffffffffffff6004358116906024351663ffffffff604435166100e2565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b3480156100c257600080fd5b506100cb6101d5565b6040805161ffff9092168252519081900360200190f35b6000808484846100f06101da565b73ffffffffffffffffffffffffffffffffffffffff938416815291909216602082015263ffffffff9091166040808301919091525190819003606001906000f080158015610142573d6000803e3d6000fd5b50604080517ff2fde38b000000000000000000000000000000000000000000000000000000008152336004820152905191925073ffffffffffffffffffffffffffffffffffffffff83169163f2fde38b9160248082019260009290919082900301818387803b1580156101b457600080fd5b505af11580156101c8573d6000803e3d6000fd5b5092979650505050505050565b600190565b604051614b65806101eb833901905600608060405260016004557fc0829421c1d260bd3cb3e0f06cfe2d52db2ce3150000000000000000000000006009553480156200003a57600080fd5b5060405160608062004b6583398101604090815281516020830151919092015160008054600160a060020a031916331790558282828282828180620000888164010000000062000135810204565b5060028054600160a060020a03909216600160a060020a031992831681179091556003805490921617905582620000c88164010000000062000135810204565b81620000dd81640100000000620001b0810204565b505060058054600160a060020a03909416600160a060020a031990941693909317909255506009805463ffffffff9092166401000000000267ffffffff00000000199092169190911790555062000229945050505050565b600160a060020a0381161515620001ad57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b50565b620f424063ffffffff82161115620001ad57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f4552525f494e56414c49445f434f4e56455253494f4e5f464545000000000000604482015290519081900360640190fd5b61492c80620002396000396000f3006080604052600436106102585763ffffffff60e060020a600035041663024c7ec781146102e45780630c7d5cd8146102fe5780630e53aae91461032c57806312c2aca41461038157806319b64015146103aa5780631cfab290146103de5780631e1401f8146103ff57806321e6b53d1461044257806322f3e2d4146104635780632fe8a6ad1461047857806338a5e0161461048d578063395900d4146104a25780633e8ff43f146104cc578063415f1240146104f857806349d10b64146105105780634af80f0e1461052557806354fd4d5014610546578063579cd3ca1461055b5780635e35359e1461057057806361cd756e1461059a57806367b6d57c146105af578063690d8320146105d05780636a49d2c4146105f15780636aa5332c1461061b57806371f52bf31461064557806379ba50971461065a5780637b1039991461066f5780637d8916bd146106845780638da5cb5b1461070757806394c275ad1461071c5780639b99a8e214610731578063a60e772414610746578063af94b8d81461079b578063b127c0a5146107c5578063b4a176d314610858578063bbb7e5d81461086d578063bf75455814610888578063c45d3d921461089d578063ca1d209d146108b2578063cdc91c69146108bd578063d031370b146108d2578063d260529c146108ea578063d3fb73b4146108ff578063d4ee1d9014610914578063d55ec69714610929578063d66bd5241461093e578063d89595121461095f578063dc8de37914610980578063e8dc12ff146109a1578063ecbca55d146109cb578063f2fde38b146109e9578063fc0c546a14610a0a575b6000805160206148a183398151915260005260086020527f353c2eb9e53a4a4a6d45d72082ff2e9dc829d1125618772a83eb0e7f86632c43546601000000000000900460ff1615156102e2576040805160e560020a62461bcd0281526020600482015260136024820152600080516020614841833981519152604482015290519081900360640190fd5b005b3480156102f057600080fd5b506102e26004351515610a1f565b34801561030a57600080fd5b50610313610a67565b6040805163ffffffff9092168252519081900360200190f35b34801561033857600080fd5b5061034d600160a060020a0360043516610a73565b6040805195865263ffffffff9094166020860152911515848401521515606084015215156080830152519081900360a00190f35b34801561038d57600080fd5b50610396610b0e565b604080519115158252519081900360200190f35b3480156103b657600080fd5b506103c2600435610b57565b60408051600160a060020a039092168252519081900360200190f35b3480156103ea57600080fd5b50610313600160a060020a0360043516610b83565b34801561040b57600080fd5b50610429600160a060020a0360043581169060243516604435610bb5565b6040805192835260208301919091528051918290030190f35b34801561044e57600080fd5b506102e2600160a060020a0360043516610bcf565b34801561046f57600080fd5b50610396610be3565b34801561048457600080fd5b50610396610c7d565b34801561049957600080fd5b506102e2610c9e565b3480156104ae57600080fd5b506102e2600160a060020a0360043581169060243516604435610cb0565b3480156104d857600080fd5b506104e1610d4b565b6040805161ffff9092168252519081900360200190f35b34801561050457600080fd5b506102e2600435610d50565b34801561051c57600080fd5b506102e2610f94565b34801561053157600080fd5b506102e2600160a060020a0360043516611201565b34801561055257600080fd5b506104e1611243565b34801561056757600080fd5b50610313611248565b34801561057c57600080fd5b506102e2600160a060020a0360043581169060243516604435611260565b3480156105a657600080fd5b506103c2611369565b3480156105bb57600080fd5b506102e2600160a060020a0360043516611378565b3480156105dc57600080fd5b506102e2600160a060020a036004351661141b565b3480156105fd57600080fd5b506102e2600160a060020a036004351663ffffffff60243516611520565b34801561062757600080fd5b5061063360043561175f565b60408051918252519081900360200190f35b34801561065157600080fd5b506104e1611784565b34801561066657600080fd5b506102e2611793565b34801561067b57600080fd5b506103c2611854565b604080516020600480358082013583810280860185019096528085526102e295369593946024949385019291829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a99890198929750908201955093508392508501908490808284375094975050933594506118639350505050565b34801561071357600080fd5b506103c2611b62565b34801561072857600080fd5b50610313611b71565b34801561073d57600080fd5b506104e1611b85565b34801561075257600080fd5b506040805160206004803580820135838102808601850190965280855261063395369593946024949385019291829185019084908082843750949750611b8b9650505050505050565b3480156107a757600080fd5b50610429600160a060020a0360043581169060243516604435611be1565b3480156107d157600080fd5b506040805160206004602480358281013584810280870186019097528086526102e296843596369660449591949091019291829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750949750611d869650505050505050565b34801561086457600080fd5b506102e2611eba565b34801561087957600080fd5b50610633600435602435611ef3565b34801561089457600080fd5b50610396611f0d565b3480156108a957600080fd5b506103c2611f12565b6102e2600435611f21565b3480156108c957600080fd5b506102e261242e565b3480156108de57600080fd5b506103c2600435612487565b3480156108f657600080fd5b50610396610d4b565b34801561090b57600080fd5b506103c26124af565b34801561092057600080fd5b506103c26124be565b34801561093557600080fd5b506102e26124cd565b34801561094a57600080fd5b5061034d600160a060020a03600435166125c2565b34801561096b57600080fd5b50610633600160a060020a0360043516612608565b34801561098c57600080fd5b50610633600160a060020a0360043516612619565b610633600160a060020a036004358116906024358116906044359060643581169060843516612642565b3480156109d757600080fd5b506102e263ffffffff60043516612895565b3480156109f557600080fd5b506102e2600160a060020a036004351661298a565b348015610a1657600080fd5b506103c2612a27565b610a27612a36565b60038054911515740100000000000000000000000000000000000000000274ff000000000000000000000000000000000000000019909216919091179055565b60095463ffffffff1681565b6000806000806000610a836147f3565b50505050600160a060020a03929092166000908152600860209081526040808320815160a081018352815480825260019092015463ffffffff811694820185905260ff64010000000082048116151594830194909452650100000000008104841615156060830152660100000000000090049092161515608090920182905295919450919250829190565b6000805160206148a183398151915260005260086020527f353c2eb9e53a4a4a6d45d72082ff2e9dc829d1125618772a83eb0e7f86632c43546601000000000000900460ff1690565b6000600782815481101515610b6857fe5b600091825260209091200154600160a060020a031692915050565b600081610b8f81612a86565b5050600160a060020a031660009081526008602052604090206001015463ffffffff1690565b600080610bc3858585611be1565b91509150935093915050565b610bd7612a36565b610be081611378565b50565b600030600160a060020a0316600560009054906101000a9004600160a060020a0316600160a060020a0316638da5cb5b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610c4257600080fd5b505af1158015610c56573d6000803e3d6000fd5b505050506040513d6020811015610c6c57600080fd5b5051600160a060020a031614905090565b60035474010000000000000000000000000000000000000000900460ff1681565b610ca6612a36565b610cae61242e565b565b610cb8612a36565b600554604080517f5e35359e000000000000000000000000000000000000000000000000000000008152600160a060020a03868116600483015285811660248301526044820185905291519190921691635e35359e91606480830192600092919082900301818387803b158015610d2e57600080fd5b505af1158015610d42573d6000803e3d6000fd5b50505050505050565b600190565b600060606000610d5e612af3565b600260045560008411610dbb576040805160e560020a62461bcd02815260206004820152600f60248201527f4552525f5a45524f5f414d4f554e540000000000000000000000000000000000604482015290519081900360640190fd5b600560009054906101000a9004600160a060020a0316600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610e0e57600080fd5b505af1158015610e22573d6000803e3d6000fd5b505050506040513d6020811015610e3857600080fd5b5051600554604080517fa24835d1000000000000000000000000000000000000000000000000000000008152336004820152602481018890529051929550600160a060020a039091169163a24835d19160448082019260009290919082900301818387803b158015610ea957600080fd5b505af1158015610ebd573d6000803e3d6000fd5b50505050600780549050604051908082528060200260200182016040528015610ef0578160200160208202803883390190505b509150600090505b8151811015610f235760018282815181101515610f1157fe5b60209081029091010152600101610ef8565b610f896007805480602002602001604051908101604052809291908181526020018280548015610f7c57602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311610f5e575b5050505050838587612b4d565b505060016004555050565b60008054600160a060020a0316331480610fc9575060035474010000000000000000000000000000000000000000900460ff16155b151561100d576040805160e560020a62461bcd02815260206004820152601160248201526000805160206148e1833981519152604482015290519081900360640190fd5b6110367f436f6e7472616374526567697374727900000000000000000000000000000000612e12565b600254909150600160a060020a0380831691161480159061105f5750600160a060020a03811615155b15156110b5576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e56414c49445f5245474953545259000000000000000000000000604482015290519081900360640190fd5b604080517fbb34534c0000000000000000000000000000000000000000000000000000000081527f436f6e747261637452656769737472790000000000000000000000000000000060048201529051600091600160a060020a0384169163bb34534c9160248082019260209290919082900301818787803b15801561113957600080fd5b505af115801561114d573d6000803e3d6000fd5b505050506040513d602081101561116357600080fd5b5051600160a060020a031614156111c4576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e56414c49445f5245474953545259000000000000000000000000604482015290519081900360640190fd5b6002805460038054600160a060020a0380841673ffffffffffffffffffffffffffffffffffffffff19928316179092559091169216919091179055565b611209612a36565b8061121381612eaa565b506006805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b602081565b60095468010000000000000000900463ffffffff1681565b600061126a612af3565b6002600455611277612a36565b61128e600080516020614881833981519152612e12565b600160a060020a0385166000908152600860205260409020600101549091506601000000000000900460ff1615806112cb57506112c9610be3565b155b806112e35750600054600160a060020a038281169116145b1515611327576040805160e560020a62461bcd02815260206004820152601160248201526000805160206148e1833981519152604482015290519081900360640190fd5b611332848484612f0b565b600160a060020a0384166000908152600860205260409020600101546601000000000000900460ff1615610f8957610f8984612f3c565b600354600160a060020a031681565b611380612a36565b60008051602061488183398151915261139881613031565b600554604080517ff2fde38b000000000000000000000000000000000000000000000000000000008152600160a060020a0385811660048301529151919092169163f2fde38b91602480830192600092919082900301818387803b1580156113ff57600080fd5b505af1158015611413573d6000803e3d6000fd5b505050505050565b6000611425612af3565b6002600455611432612a36565b6000805160206148a183398151915261144a81612a86565b611461600080516020614881833981519152612e12565b915061146b610be3565b15806114845750600054600160a060020a038381169116145b15156114c8576040805160e560020a62461bcd02815260206004820152601160248201526000805160206148e1833981519152604482015290519081900360640190fd5b604051600160a060020a03841690303180156108fc02916000818181858888f193505050501580156114fe573d6000803e3d6000fd5b506115166000805160206148a1833981519152612f3c565b5050600160045550565b600061152a612a36565b611532613087565b8261153c816130e4565b8361154681612eaa565b8361155081613144565b600554600160a060020a038781169116148015906115945750600160a060020a0386166000908152600860205260409020600101546601000000000000900460ff16155b15156115d8576040805160e560020a62461bcd0281526020600482015260136024820152600080516020614841833981519152604482015290519081900360640190fd5b60095463ffffffff908116620f42400381169086161115611643576040805160e560020a62461bcd02815260206004820152601a60248201527f4552525f494e56414c49445f524553455256455f574549474854000000000000604482015290519081900360640190fd5b61ffff61164e611b85565b61ffff16106116a7576040805160e560020a62461bcd02815260206004820152601960248201527f4552525f494e56414c49445f524553455256455f434f554e5400000000000000604482015290519081900360640190fd5b505050600160a060020a0390921660008181526008602052604081208181556001908101805466ff0000000000001963ffffffff80881663ffffffff1993841617919091166601000000000000179092556007805493840181559093527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688909101805473ffffffffffffffffffffffffffffffffffffffff191690931790925560098054808416909401909216921691909117905550565b600080825b600081111561177d5760019190910190600a9004611764565b5092915050565b600061178e611b85565b905090565b600154600160a060020a031633146117e3576040805160e560020a62461bcd02815260206004820152601160248201526000805160206148e1833981519152604482015290519081900360640190fd5b60015460008054604051600160a060020a0393841693909116917f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91a3600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b600254600160a060020a031681565b6000806000611870612af3565b600260045561187d6131b9565b611888868686613217565b600092505b85518310156119465785516000805160206148a1833981519152908790859081106118b457fe5b90602001906020020151600160a060020a0316141561193b573485848151811015156118dc57fe5b602090810290910101511461193b576040805160e560020a62461bcd02815260206004820152601760248201527f4552525f4554485f414d4f554e545f4d49534d41544348000000000000000000604482015290519081900360640190fd5b60019092019161188d565b60003411156119eb576000805160206148a183398151915260005260086020527f353c2eb9e53a4a4a6d45d72082ff2e9dc829d1125618772a83eb0e7f86632c43546601000000000000900460ff1615156119eb576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f4e4f5f4554485f524553455256450000000000000000000000000000604482015290519081900360640190fd5b600560009054906101000a9004600160a060020a0316600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015611a3e57600080fd5b505af1158015611a52573d6000803e3d6000fd5b505050506040513d6020811015611a6857600080fd5b50519150611a778686846134d3565b905083811015611ad1576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f52455455524e5f544f4f5f4c4f570000000000000000000000000000604482015290519081900360640190fd5b600554604080517f867904b4000000000000000000000000000000000000000000000000000000008152336004820152602481018490529051600160a060020a039092169163867904b49160448082019260009290919082900301818387803b158015611b3d57600080fd5b505af1158015611b51573d6000803e3d6000fd5b505060016004555050505050505050565b600054600160a060020a031681565b600954640100000000900463ffffffff1681565b60075490565b80516000908190815b81811015611bc857611bbc8582815181101515611bad57fe5b9060200190602002015161175f565b90920191600101611b94565b6001611bd48484611ef3565b03600a0a95945050505050565b600080600080611bef6131b9565b86611bf981612a86565b86611c0381612a86565b600160a060020a038981169089161415611c67576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f53414d455f534f555243455f54415247455400000000000000000000604482015290519081900360640190fd5b611c7e6000805160206148c1833981519152612e12565b600160a060020a03166394491fab611c958b612619565b600160a060020a038c1660009081526008602052604090206001015463ffffffff16611cc08c612619565b600160a060020a038d16600090815260086020908152604080832060010154815163ffffffff89811660e060020a028252600482019890985295871660248701526044860194909452949092166064840152608483018d9052925160a48084019492939192918390030190829087803b158015611d3c57600080fd5b505af1158015611d50573d6000803e3d6000fd5b505050506040513d6020811015611d6657600080fd5b50519350611d7384613502565b9384900399939850929650505050505050565b6000611d90612af3565b6002600455611d9d6131b9565b611da8838386613217565b600560009054906101000a9004600160a060020a0316600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015611dfb57600080fd5b505af1158015611e0f573d6000803e3d6000fd5b505050506040513d6020811015611e2557600080fd5b5051600554604080517fa24835d1000000000000000000000000000000000000000000000000000000008152336004820152602481018890529051929350600160a060020a039091169163a24835d19160448082019260009290919082900301818387803b158015611e9657600080fd5b505af1158015611eaa573d6000803e3d6000fd5b50505050610f8983838387612b4d565b611ec2612a36565b6003546002805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055565b600081600281048401811515611f0557fe5b049392505050565b600181565b600654600160a060020a031681565b600080600080600080600080600080611f38612af3565b6002600455611f4561353e565b6000805160206148a1833981519152600052600860205260008051602061486183398151915254611f7c903463ffffffff61358016565b6000805160206148a183398151915260009081526008602090815260008051602061486183398151915292909255600554604080517f18160ddd0000000000000000000000000000000000000000000000000000000081529051600160a060020a03909216936318160ddd9360048084019492938390030190829087803b15801561200657600080fd5b505af115801561201a573d6000803e3d6000fd5b505050506040513d602081101561203057600080fd5b5051995061204b6000805160206148c1833981519152612e12565b6007549099509750600096505b8787101561239857600780548890811061206e57fe5b9060005260206000200160009054906101000a9004600160a060020a031695506008600087600160a060020a0316600160a060020a0316815260200190815260200160002060000154945088600160a060020a031663ebbb21588b87600960009054906101000a900463ffffffff168f6040518563ffffffff1660e060020a028152600401808581526020018481526020018363ffffffff1663ffffffff168152602001828152602001945050505050602060405180830381600087803b15801561213857600080fd5b505af115801561214c573d6000803e3d6000fd5b505050506040513d602081101561216257600080fd5b50519350600160a060020a0386166000805160206148a183398151915214156122c457833411156121c25760405133903486900380156108fc02916000818181858888f193505050501580156121bc573d6000803e3d6000fd5b506122bf565b833410156122bf573415612220576040805160e560020a62461bcd02815260206004820152601560248201527f4552525f494e56414c49445f4554485f56414c55450000000000000000000000604482015290519081900360640190fd5b600954612248906c010000000000000000000000009004600160a060020a03163330876135e0565b6009600c9054906101000a9004600160a060020a0316600160a060020a0316632e1a7d4d856040518263ffffffff1660e060020a02815260040180828152602001915050600060405180830381600087803b1580156122a657600080fd5b505af11580156122ba573d6000803e3d6000fd5b505050505b6122d0565b6122d0863330876135e0565b6122e0858563ffffffff6136c816565b600160a060020a0387166000908152600860205260409020819055925061230d8a8c63ffffffff6136c816565b60408051868152602081018690528082018390529051919350600160a060020a0388169133917f4a1a2a6176e9646d9e3157f7c2ab3c499f18337c0b0828cfb28e0a61de4a11f7919081900360600190a350600160a060020a03851660009081526008602052604090206001015463ffffffff1661238d82878584613725565b600190960195612058565b600554604080517f867904b4000000000000000000000000000000000000000000000000000000008152336004820152602481018e90529051600160a060020a039092169163867904b49160448082019260009290919082900301818387803b15801561240457600080fd5b505af1158015612418573d6000803e3d6000fd5b5050600160045550505050505050505050505050565b612436612a36565b61243e613794565b600554600190600160a060020a0316612455610d4b565b61ffff167f6b08c2e2c9969e55a647a764db9b554d64dc42f1a704da11a6d5b129ad163f2c60405160405180910390a4565b600780548290811061249557fe5b600091825260209091200154600160a060020a0316905081565b600554600160a060020a031681565b600154600160a060020a031681565b60006124d7612a36565b6124ee600080516020614881833981519152612e12565b600554909150600090600160a060020a0316612508610d4b565b61ffff167f6b08c2e2c9969e55a647a764db9b554d64dc42f1a704da11a6d5b129ad163f2c60405160405180910390a46125418161298a565b604080517f90f58c96000000000000000000000000000000000000000000000000000000008152602060048201529051600160a060020a038316916390f58c9691602480830192600092919082900301818387803b1580156125a257600080fd5b505af11580156125b6573d6000803e3d6000fd5b50505050610be0611793565b6008602052600090815260409020805460019091015463ffffffff81169060ff640100000000820481169165010000000000810482169166010000000000009091041685565b600061261382612619565b92915050565b60008161262581612a86565b5050600160a060020a031660009081526008602052604090205490565b600061264c612af3565b60026004557f536f7672796e537761704e6574776f726b00000000000000000000000000000061267b81613031565b600160a060020a0387811690871614156126df576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f53414d455f534f555243455f54415247455400000000000000000000604482015290519081900360640190fd5b600654600160a060020a031615806128225750600654604080517f3af32abf000000000000000000000000000000000000000000000000000000008152600160a060020a03878116600483015291519190921691633af32abf9160248083019260209291908290030181600087803b15801561275a57600080fd5b505af115801561276e573d6000803e3d6000fd5b505050506040513d602081101561278457600080fd5b505180156128225750600654604080517f3af32abf000000000000000000000000000000000000000000000000000000008152600160a060020a03868116600483015291519190921691633af32abf9160248083019260209291908290030181600087803b1580156127f557600080fd5b505af1158015612809573d6000803e3d6000fd5b505050506040513d602081101561281f57600080fd5b50515b1515612878576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f4e4f545f57484954454c495354454400000000000000000000000000604482015290519081900360640190fd5b61288587878787876137ff565b6001600455979650505050505050565b61289d612a36565b60095463ffffffff64010000000090910481169082161115612909576040805160e560020a62461bcd02815260206004820152601a60248201527f4552525f494e56414c49445f434f4e56455253494f4e5f464545000000000000604482015290519081900360640190fd5b6009546040805163ffffffff6801000000000000000090930483168152918316602083015280517f81cd2ffb37dd237c0e4e2a3de5265fcf9deb43d3e7801e80db9f1ccfba7ee6009281900390910190a16009805463ffffffff90921668010000000000000000026bffffffff000000000000000019909216919091179055565b612992612a36565b600054600160a060020a03828116911614156129f8576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f53414d455f4f574e4552000000000000000000000000000000000000604482015290519081900360640190fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600554600160a060020a031690565b600054600160a060020a03163314610cae576040805160e560020a62461bcd02815260206004820152601160248201526000805160206148e1833981519152604482015290519081900360640190fd5b600160a060020a0381166000908152600860205260409020600101546601000000000000900460ff161515610be0576040805160e560020a62461bcd0281526020600482015260136024820152600080516020614841833981519152604482015290519081900360640190fd5b600454600114610cae576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f5245454e5452414e4359000000000000000000000000000000000000604482015290519081900360640190fd5b600080600080600080600080612b6161353e565b612b786000805160206148c1833981519152612e12565b9750612b8a8a8a63ffffffff61358016565b9650600095505b8b51861015612e04578b86815181101515612ba857fe5b9060200190602002015194506008600086600160a060020a0316600160a060020a0316815260200190815260200160002060000154935087600160a060020a0316638074590a8b86600960009054906101000a900463ffffffff168d6040518563ffffffff1660e060020a028152600401808581526020018481526020018363ffffffff1663ffffffff168152602001828152602001945050505050602060405180830381600087803b158015612c5e57600080fd5b505af1158015612c72573d6000803e3d6000fd5b505050506040513d6020811015612c8857600080fd5b50518b519093508b9087908110612c9b57fe5b60209081029091010151831015612cfc576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f5a45524f5f5441524745545f414d4f554e5400000000000000000000604482015290519081900360640190fd5b612d0c848463ffffffff61358016565b600160a060020a03861660008181526008602052604090208290559092506000805160206148a18339815191521415612d7257604051339084156108fc029085906000818181858888f19350505050158015612d6c573d6000803e3d6000fd5b50612d7d565b612d7d853385613ad2565b60408051848152602081018490528082018990529051600160a060020a0387169133917fbc7d19d505c7ec4db83f3b51f19fb98c4c8a99922e7839d1ee608dfbee29501b9181900360600190a350600160a060020a03841660009081526008602052604090206001015463ffffffff16612df987868484613725565b600190950194612b91565b505050505050505050505050565b600254604080517fbb34534c000000000000000000000000000000000000000000000000000000008152600481018490529051600092600160a060020a03169163bb34534c91602480830192602092919082900301818787803b158015612e7857600080fd5b505af1158015612e8c573d6000803e3d6000fd5b505050506040513d6020811015612ea257600080fd5b505192915050565b600160a060020a038116301415610be0576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f414444524553535f49535f53454c4600000000000000000000000000604482015290519081900360640190fd5b612f13612a36565b82612f1d816130e4565b82612f27816130e4565b83612f3181612eaa565b611413868686613ad2565b80612f4681612a86565b600160a060020a0382166000805160206148a18339815191521415612f8657600160a060020a03821660009081526008602052604090203031905561302d565b604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a038416916370a082319160248083019260209291908290030181600087803b158015612fe757600080fd5b505af1158015612ffb573d6000803e3d6000fd5b505050506040513d602081101561301157600080fd5b5051600160a060020a0383166000908152600860205260409020555b5050565b61303a81612e12565b600160a060020a03163314610be0576040805160e560020a62461bcd02815260206004820152601160248201526000805160206148e1833981519152604482015290519081900360640190fd5b61308f610be3565b15610cae576040805160e560020a62461bcd02815260206004820152600a60248201527f4552525f41435449564500000000000000000000000000000000000000000000604482015290519081900360640190fd5b600160a060020a0381161515610be0576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b60008163ffffffff161180156131635750620f424063ffffffff821611155b1515610be0576040805160e560020a62461bcd02815260206004820152601a60248201527f4552525f494e56414c49445f524553455256455f574549474854000000000000604482015290519081900360640190fd5b6131c1610be3565b1515610cae576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f494e4143544956450000000000000000000000000000000000000000604482015290519081900360640190fd5b600754835160009182918114613265576040805160e560020a62461bcd0281526020600482015260136024820152600080516020614841833981519152604482015290519081900360640190fd5b845181146132bd576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f494e56414c49445f414d4f554e540000000000000000000000000000604482015290519081900360640190fd5b600092505b8083101561347b576008600087858151811015156132dc57fe5b6020908102909101810151600160a060020a031682528101919091526040016000206001015460ff6601000000000000909104161515613354576040805160e560020a62461bcd0281526020600482015260136024820152600080516020614841833981519152604482015290519081900360640190fd5b600091505b808210156133bc57858281518110151561336f57fe5b90602001906020020151600160a060020a031660078481548110151561339157fe5b600091825260209091200154600160a060020a031614156133b1576133bc565b600190910190613359565b808210613401576040805160e560020a62461bcd0281526020600482015260136024820152600080516020614841833981519152604482015290519081900360640190fd5b6000858481518110151561341157fe5b6020908102909101015111613470576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f494e56414c49445f414d4f554e540000000000000000000000000000604482015290519081900360640190fd5b6001909201916132c2565b60008411611413576040805160e560020a62461bcd02815260206004820152600f60248201527f4552525f5a45524f5f414d4f554e540000000000000000000000000000000000604482015290519081900360640190fd5b60008115156134ed576134e68484613b89565b90506134fb565b6134f8848484613d90565b90505b9392505050565b60095460009061261390620f42409061353290859068010000000000000000900463ffffffff9081169061415016565b9063ffffffff6141c916565b60075460005b8181101561302d5761357860078281548110151561355e57fe5b600091825260209091200154600160a060020a0316612f3c565b600101613544565b6000818310156135da576040805160e560020a62461bcd02815260206004820152600d60248201527f4552525f554e444552464c4f5700000000000000000000000000000000000000604482015290519081900360640190fd5b50900390565b604080517f7472616e7366657246726f6d28616464726573732c616464726573732c75696e81527f74323536290000000000000000000000000000000000000000000000000000006020808301919091528251918290036025018220600160a060020a038088166024850152861660448401526064808401869052845180850390910181526084909301909352810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19909316929092179091526136c2908590614237565b50505050565b6000828201838110156134fb576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b600554600160a060020a0380851691167f77f29993cf2c084e726f7e802da0719d6a0ade3e204badc7a3ffd57ecb768c2461376385620f4240614150565b6137768863ffffffff8088169061415016565b6040805192835260208301919091528051918290030190a350505050565b600161379e611b85565b61ffff16116137f7576040805160e560020a62461bcd02815260206004820152601960248201527f4552525f494e56414c49445f524553455256455f434f554e5400000000000000604482015290519081900360640190fd5b610cae6142c5565b600080600080613810898989611be1565b909350915082151561386c576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f5a45524f5f5441524745545f414d4f554e5400000000000000000000604482015290519081900360640190fd5b61387588612619565b905080831061388057fe5b600160a060020a0389166000805160206148a183398151915214156138fb573487146138f6576040805160e560020a62461bcd02815260206004820152601760248201527f4552525f4554485f414d4f554e545f4d49534d41544348000000000000000000604482015290519081900360640190fd5b613a03565b341580156139ad5750866139aa6139118b612619565b604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a038e16916370a082319160248083019260209291908290030181600087803b15801561397257600080fd5b505af1158015613986573d6000803e3d6000fd5b505050506040513d602081101561399c57600080fd5b50519063ffffffff61358016565b10155b1515613a03576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f494e56414c49445f414d4f554e540000000000000000000000000000604482015290519081900360640190fd5b613a0c89612f3c565b600160a060020a038816600090815260086020526040902054613a35908463ffffffff61358016565b600160a060020a0389166000818152600860205260409020919091556000805160206148a18339815191521415613aa257604051600160a060020a0386169084156108fc029085906000818181858888f19350505050158015613a9c573d6000803e3d6000fd5b50613aad565b613aad888685613ad2565b613abb8989888a87876143a3565b613ac58989614428565b5090979650505050505050565b604080517f7472616e7366657228616464726573732c75696e74323536290000000000000081528151908190036019018120600160a060020a038516602483015260448083018590528351808403909101815260649092019092526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1990931692909217909152613b84908490614237565b505050565b600080600080613b9885611b8b565b9250600091505b8551821015613d865785516000805160206148a183398151915290879084908110613bc657fe5b60209081029091010151600160a060020a031614613c1857613c188683815181101515613bef57fe5b9060200190602002015133308886815181101515613c0957fe5b906020019060200201516135e0565b8482815181101515613c2657fe5b90602001906020020151600860008885815181101515613c4257fe5b6020908102909101810151600160a060020a03168252810191909152604001600020558551869083908110613c7357fe5b90602001906020020151600160a060020a031633600160a060020a03167f4a1a2a6176e9646d9e3157f7c2ab3c499f18337c0b0828cfb28e0a61de4a11f78785815181101515613cbf57fe5b906020019060200201518886815181101515613cd757fe5b60209081029091018101516040805193845291830152818101889052519081900360600190a3600860008784815181101515613d0f57fe5b6020908102909101810151600160a060020a0316825281019190915260400160002060010154865163ffffffff9091169150613d7b908490889085908110613d5357fe5b906020019060200201518785815181101515613d6b57fe5b9060200190602002015184613725565b600190910190613b9f565b5090949350505050565b600080600080600080600080600080613da761353e565b6000805160206148a1833981519152600052600860205260008051602061486183398151915254613dde903463ffffffff61358016565b6000805160206148a1833981519152600052600860205260008051602061486183398151915255613e1c6000805160206148c1833981519152612e12565b9850613e2a898c8f8f614636565b9750613e3c8b8963ffffffff6136c816565b9650600095505b8c5186101561413f578c86815181101515613e5a57fe5b9060200190602002015194506008600086600160a060020a0316600160a060020a0316815260200190815260200160002060000154935088600160a060020a031663ebbb21588c86600960009054906101000a900463ffffffff168c6040518563ffffffff1660e060020a028152600401808581526020018481526020018363ffffffff1663ffffffff168152602001828152602001945050505050602060405180830381600087803b158015613f1057600080fd5b505af1158015613f24573d6000803e3d6000fd5b505050506040513d6020811015613f3a57600080fd5b5051925060008311613f96576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f5a45524f5f5441524745545f414d4f554e5400000000000000000000604482015290519081900360640190fd5b8b86815181101515613fa457fe5b60209081029091010151831115613fb757fe5b600160a060020a0385166000805160206148a183398151915214613fe657613fe1853330866135e0565b614059565b828c87815181101515613ff557fe5b9060200190602002015111156140595733600160a060020a03166108fc848e8981518110151561402157fe5b90602001906020020151039081150290604051600060405180830381858888f19350505050158015614057573d6000803e3d6000fd5b505b614069848463ffffffff6136c816565b600160a060020a03861660008181526008602090815260409182902084905581518781529081018490528082018b90529051929450909133917f4a1a2a6176e9646d9e3157f7c2ab3c499f18337c0b0828cfb28e0a61de4a11f7919081900360600190a3600860008e888151811015156140df57fe5b6020908102909101810151600160a060020a03168252810191909152604001600020600101548d5163ffffffff90911691506141349088908f908990811061412357fe5b906020019060200201518484613725565b600190950194613e43565b50959b9a5050505050505050505050565b600080831515614163576000915061177d565b5082820282848281151561417357fe5b04146134fb576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b600080808311614223576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f4449564944455f42595f5a45524f0000000000000000000000000000604482015290519081900360640190fd5b828481151561422e57fe5b04949350505050565b61423f614821565b602060405190810160405280600181525090506020818351602085016000875af180151561426c57600080fd5b5080511515613b84576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f5452414e534645525f4641494c454400000000000000000000000000604482015290519081900360640190fd5b6142cd612a36565b60006142d7611b85565b61ffff1611614330576040805160e560020a62461bcd02815260206004820152601960248201527f4552525f494e56414c49445f524553455256455f434f554e5400000000000000604482015290519081900360640190fd5b600560009054906101000a9004600160a060020a0316600160a060020a03166379ba50976040518163ffffffff1660e060020a028152600401600060405180830381600087803b15801561438357600080fd5b505af1158015614397573d6000803e3d6000fd5b50505050610cae61353e565b7f800000000000000000000000000000000000000000000000000000000000000081106143cc57fe5b60408051848152602081018490528082018390529051600160a060020a038087169288821692918a16917f276856b36cbc45526a0ba64f44611557a2a8b68662c5388e9fe6d72e86e1c8cb9181900360600190a4505050505050565b6000806000806000806000600560009054906101000a9004600160a060020a0316600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561448657600080fd5b505af115801561449a573d6000803e3d6000fd5b505050506040513d60208110156144b057600080fd5b505196506144bd89612619565b95506144c888612619565b600160a060020a03808b16600090815260086020526040808220600190810154938d1683529120015491965063ffffffff90811695509081169350614511908690869061415016565b91506145268663ffffffff8086169061415016565b60408051848152602081018390528151929350600160a060020a03808c1693908d16927f77f29993cf2c084e726f7e802da0719d6a0ade3e204badc7a3ffd57ecb768c24928290030190a361457d878a8887613725565b61458987898786613725565b604080518881526020810188905263ffffffff8616818301529051600160a060020a038b16917f8a6a7f53b3c8fa1dc4b83e3f1be668c1b251ff8d44cdcb83eb3acec3fec6a788919081900360600190a2604080518881526020810187905263ffffffff8516818301529051600160a060020a038a16917f8a6a7f53b3c8fa1dc4b83e3f1be668c1b251ff8d44cdcb83eb3acec3fec6a788919081900360600190a2505050505050505050565b60008060015b84518110156146f9576146a160086000878481518110151561465a57fe5b6020908102909101810151600160a060020a0316825281019190915260400160002054855186908590811061468b57fe5b602090810290910101519063ffffffff61415016565b6146e76008600088868151811015156146b657fe5b6020908102909101810151600160a060020a0316825281019190915260400160002054865187908590811061468b57fe5b10156146f1578091505b60010161463c565b86600160a060020a0316632f55bdb58760086000898781518110151561471b57fe5b6020908102909101810151600160a060020a0316825281019190915260400160002054600954885163ffffffff9091169089908890811061475857fe5b906020019060200201516040518563ffffffff1660e060020a028152600401808581526020018481526020018363ffffffff1663ffffffff168152602001828152602001945050505050602060405180830381600087803b1580156147bc57600080fd5b505af11580156147d0573d6000803e3d6000fd5b505050506040513d60208110156147e657600080fd5b5051979650505050505050565b6040805160a08101825260008082526020820181905291810182905260608101829052608081019190915290565b602060405190810160405280600190602082028038833950919291505056004552525f494e56414c49445f5245534552564500000000000000000000000000353c2eb9e53a4a4a6d45d72082ff2e9dc829d1125618772a83eb0e7f86632c42536f7672796e53776170436f6e76657274657255706772616465720000000000000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee536f7672796e53776170466f726d756c610000000000000000000000000000004552525f4143434553535f44454e494544000000000000000000000000000000a165627a7a72305820324b4364d6a1792677c2fd82e313b62b9cc957d58949fe9823a7cc610a1a0c050029a165627a7a723058202b00ad8ff8cddb595e46d416fc24da468de123d56b62cf0dc1be99de9699a9e50029", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x4B JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x11413958 DUP2 EQ PUSH2 0x50 JUMPI DUP1 PUSH4 0x3E8FF43F EQ PUSH2 0xB6 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x8D PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH4 0xFFFFFFFF PUSH1 0x44 CALLDATALOAD AND PUSH2 0xE2 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xC2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xCB PUSH2 0x1D5 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0xFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP1 DUP5 DUP5 DUP5 PUSH2 0xF0 PUSH2 0x1DA JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP4 DUP5 AND DUP2 MSTORE SWAP2 SWAP1 SWAP3 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH4 0xFFFFFFFF SWAP1 SWAP2 AND PUSH1 0x40 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 PUSH1 0x0 CREATE DUP1 ISZERO DUP1 ISZERO PUSH2 0x142 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH32 0xF2FDE38B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD SWAP2 SWAP3 POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND SWAP2 PUSH4 0xF2FDE38B SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1B4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1C8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP SWAP3 SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x4B65 DUP1 PUSH2 0x1EB DUP4 CODECOPY ADD SWAP1 JUMP STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x1 PUSH1 0x4 SSTORE PUSH32 0xC0829421C1D260BD3CB3E0F06CFE2D52DB2CE315000000000000000000000000 PUSH1 0x9 SSTORE CALLVALUE DUP1 ISZERO PUSH3 0x3A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH1 0x60 DUP1 PUSH3 0x4B65 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 SWAP1 DUP2 MSTORE DUP2 MLOAD PUSH1 0x20 DUP4 ADD MLOAD SWAP2 SWAP1 SWAP3 ADD MLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND CALLER OR SWAP1 SSTORE DUP3 DUP3 DUP3 DUP3 DUP3 DUP3 DUP2 DUP1 PUSH3 0x88 DUP2 PUSH5 0x100000000 PUSH3 0x135 DUP2 MUL DIV JUMP JUMPDEST POP PUSH1 0x2 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT SWAP3 DUP4 AND DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x3 DUP1 SLOAD SWAP1 SWAP3 AND OR SWAP1 SSTORE DUP3 PUSH3 0xC8 DUP2 PUSH5 0x100000000 PUSH3 0x135 DUP2 MUL DIV JUMP JUMPDEST DUP2 PUSH3 0xDD DUP2 PUSH5 0x100000000 PUSH3 0x1B0 DUP2 MUL DIV JUMP JUMPDEST POP POP PUSH1 0x5 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP5 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 OR SWAP1 SWAP3 SSTORE POP PUSH1 0x9 DUP1 SLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP3 AND PUSH5 0x100000000 MUL PUSH8 0xFFFFFFFF00000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE POP PUSH3 0x229 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH3 0x1AD JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH3 0xF4240 PUSH4 0xFFFFFFFF DUP3 AND GT ISZERO PUSH3 0x1AD JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F434F4E56455253494F4E5F464545000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x492C DUP1 PUSH3 0x239 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x258 JUMPI PUSH4 0xFFFFFFFF PUSH1 0xE0 PUSH1 0x2 EXP PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x24C7EC7 DUP2 EQ PUSH2 0x2E4 JUMPI DUP1 PUSH4 0xC7D5CD8 EQ PUSH2 0x2FE JUMPI DUP1 PUSH4 0xE53AAE9 EQ PUSH2 0x32C JUMPI DUP1 PUSH4 0x12C2ACA4 EQ PUSH2 0x381 JUMPI DUP1 PUSH4 0x19B64015 EQ PUSH2 0x3AA JUMPI DUP1 PUSH4 0x1CFAB290 EQ PUSH2 0x3DE JUMPI DUP1 PUSH4 0x1E1401F8 EQ PUSH2 0x3FF JUMPI DUP1 PUSH4 0x21E6B53D EQ PUSH2 0x442 JUMPI DUP1 PUSH4 0x22F3E2D4 EQ PUSH2 0x463 JUMPI DUP1 PUSH4 0x2FE8A6AD EQ PUSH2 0x478 JUMPI DUP1 PUSH4 0x38A5E016 EQ PUSH2 0x48D JUMPI DUP1 PUSH4 0x395900D4 EQ PUSH2 0x4A2 JUMPI DUP1 PUSH4 0x3E8FF43F EQ PUSH2 0x4CC JUMPI DUP1 PUSH4 0x415F1240 EQ PUSH2 0x4F8 JUMPI DUP1 PUSH4 0x49D10B64 EQ PUSH2 0x510 JUMPI DUP1 PUSH4 0x4AF80F0E EQ PUSH2 0x525 JUMPI DUP1 PUSH4 0x54FD4D50 EQ PUSH2 0x546 JUMPI DUP1 PUSH4 0x579CD3CA EQ PUSH2 0x55B JUMPI DUP1 PUSH4 0x5E35359E EQ PUSH2 0x570 JUMPI DUP1 PUSH4 0x61CD756E EQ PUSH2 0x59A JUMPI DUP1 PUSH4 0x67B6D57C EQ PUSH2 0x5AF JUMPI DUP1 PUSH4 0x690D8320 EQ PUSH2 0x5D0 JUMPI DUP1 PUSH4 0x6A49D2C4 EQ PUSH2 0x5F1 JUMPI DUP1 PUSH4 0x6AA5332C EQ PUSH2 0x61B JUMPI DUP1 PUSH4 0x71F52BF3 EQ PUSH2 0x645 JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x65A JUMPI DUP1 PUSH4 0x7B103999 EQ PUSH2 0x66F JUMPI DUP1 PUSH4 0x7D8916BD EQ PUSH2 0x684 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x707 JUMPI DUP1 PUSH4 0x94C275AD EQ PUSH2 0x71C JUMPI DUP1 PUSH4 0x9B99A8E2 EQ PUSH2 0x731 JUMPI DUP1 PUSH4 0xA60E7724 EQ PUSH2 0x746 JUMPI DUP1 PUSH4 0xAF94B8D8 EQ PUSH2 0x79B JUMPI DUP1 PUSH4 0xB127C0A5 EQ PUSH2 0x7C5 JUMPI DUP1 PUSH4 0xB4A176D3 EQ PUSH2 0x858 JUMPI DUP1 PUSH4 0xBBB7E5D8 EQ PUSH2 0x86D JUMPI DUP1 PUSH4 0xBF754558 EQ PUSH2 0x888 JUMPI DUP1 PUSH4 0xC45D3D92 EQ PUSH2 0x89D JUMPI DUP1 PUSH4 0xCA1D209D EQ PUSH2 0x8B2 JUMPI DUP1 PUSH4 0xCDC91C69 EQ PUSH2 0x8BD JUMPI DUP1 PUSH4 0xD031370B EQ PUSH2 0x8D2 JUMPI DUP1 PUSH4 0xD260529C EQ PUSH2 0x8EA JUMPI DUP1 PUSH4 0xD3FB73B4 EQ PUSH2 0x8FF JUMPI DUP1 PUSH4 0xD4EE1D90 EQ PUSH2 0x914 JUMPI DUP1 PUSH4 0xD55EC697 EQ PUSH2 0x929 JUMPI DUP1 PUSH4 0xD66BD524 EQ PUSH2 0x93E JUMPI DUP1 PUSH4 0xD8959512 EQ PUSH2 0x95F JUMPI DUP1 PUSH4 0xDC8DE379 EQ PUSH2 0x980 JUMPI DUP1 PUSH4 0xE8DC12FF EQ PUSH2 0x9A1 JUMPI DUP1 PUSH4 0xECBCA55D EQ PUSH2 0x9CB JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x9E9 JUMPI DUP1 PUSH4 0xFC0C546A EQ PUSH2 0xA0A JUMPI JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x0 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH32 0x353C2EB9E53A4A4A6D45D72082FF2E9DC829D1125618772A83EB0E7F86632C43 SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO PUSH2 0x2E2 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4841 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2F0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E2 PUSH1 0x4 CALLDATALOAD ISZERO ISZERO PUSH2 0xA1F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x30A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x313 PUSH2 0xA67 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x338 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x34D PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0xA73 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP6 DUP7 MSTORE PUSH4 0xFFFFFFFF SWAP1 SWAP5 AND PUSH1 0x20 DUP7 ADD MSTORE SWAP2 ISZERO ISZERO DUP5 DUP5 ADD MSTORE ISZERO ISZERO PUSH1 0x60 DUP5 ADD MSTORE ISZERO ISZERO PUSH1 0x80 DUP4 ADD MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0xA0 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x38D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x396 PUSH2 0xB0E JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3B6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3C2 PUSH1 0x4 CALLDATALOAD PUSH2 0xB57 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x313 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0xB83 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x40B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x429 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0xBB5 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x44E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0xBCF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x46F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x396 PUSH2 0xBE3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x484 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x396 PUSH2 0xC7D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x499 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E2 PUSH2 0xC9E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4AE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0xCB0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4D8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4E1 PUSH2 0xD4B JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0xFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x504 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E2 PUSH1 0x4 CALLDATALOAD PUSH2 0xD50 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x51C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E2 PUSH2 0xF94 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x531 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x1201 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x552 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4E1 PUSH2 0x1243 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x567 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x313 PUSH2 0x1248 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x57C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x1260 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5A6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3C2 PUSH2 0x1369 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5BB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x1378 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5DC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x141B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5FD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH4 0xFFFFFFFF PUSH1 0x24 CALLDATALOAD AND PUSH2 0x1520 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x627 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x633 PUSH1 0x4 CALLDATALOAD PUSH2 0x175F JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x651 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4E1 PUSH2 0x1784 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x666 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E2 PUSH2 0x1793 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x67B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3C2 PUSH2 0x1854 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x2E2 SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP POP PUSH1 0x40 DUP1 MLOAD DUP8 CALLDATALOAD DUP10 ADD DUP1 CALLDATALOAD PUSH1 0x20 DUP2 DUP2 MUL DUP5 DUP2 ADD DUP3 ADD SWAP1 SWAP6 MSTORE DUP2 DUP5 MSTORE SWAP9 SWAP12 SWAP11 SWAP10 DUP10 ADD SWAP9 SWAP3 SWAP8 POP SWAP1 DUP3 ADD SWAP6 POP SWAP4 POP DUP4 SWAP3 POP DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP POP SWAP4 CALLDATALOAD SWAP5 POP PUSH2 0x1863 SWAP4 POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x713 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3C2 PUSH2 0x1B62 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x728 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x313 PUSH2 0x1B71 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x73D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4E1 PUSH2 0x1B85 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x752 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x633 SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP PUSH2 0x1B8B SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7A7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x429 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x1BE1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7D1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 PUSH1 0x24 DUP1 CALLDATALOAD DUP3 DUP2 ADD CALLDATALOAD DUP5 DUP2 MUL DUP1 DUP8 ADD DUP7 ADD SWAP1 SWAP8 MSTORE DUP1 DUP7 MSTORE PUSH2 0x2E2 SWAP7 DUP5 CALLDATALOAD SWAP7 CALLDATASIZE SWAP7 PUSH1 0x44 SWAP6 SWAP2 SWAP5 SWAP1 SWAP2 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP POP PUSH1 0x40 DUP1 MLOAD DUP8 CALLDATALOAD DUP10 ADD DUP1 CALLDATALOAD PUSH1 0x20 DUP2 DUP2 MUL DUP5 DUP2 ADD DUP3 ADD SWAP1 SWAP6 MSTORE DUP2 DUP5 MSTORE SWAP9 SWAP12 SWAP11 SWAP10 DUP10 ADD SWAP9 SWAP3 SWAP8 POP SWAP1 DUP3 ADD SWAP6 POP SWAP4 POP DUP4 SWAP3 POP DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP PUSH2 0x1D86 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x864 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E2 PUSH2 0x1EBA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x879 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x633 PUSH1 0x4 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH2 0x1EF3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x894 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x396 PUSH2 0x1F0D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8A9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3C2 PUSH2 0x1F12 JUMP JUMPDEST PUSH2 0x2E2 PUSH1 0x4 CALLDATALOAD PUSH2 0x1F21 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8C9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E2 PUSH2 0x242E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8DE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3C2 PUSH1 0x4 CALLDATALOAD PUSH2 0x2487 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8F6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x396 PUSH2 0xD4B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x90B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3C2 PUSH2 0x24AF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x920 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3C2 PUSH2 0x24BE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x935 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E2 PUSH2 0x24CD JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x94A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x34D PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x25C2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x96B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x633 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x2608 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x98C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x633 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x2619 JUMP JUMPDEST PUSH2 0x633 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x44 CALLDATALOAD SWAP1 PUSH1 0x64 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x84 CALLDATALOAD AND PUSH2 0x2642 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9D7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E2 PUSH4 0xFFFFFFFF PUSH1 0x4 CALLDATALOAD AND PUSH2 0x2895 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x298A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA16 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3C2 PUSH2 0x2A27 JUMP JUMPDEST PUSH2 0xA27 PUSH2 0x2A36 JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD SWAP2 ISZERO ISZERO PUSH21 0x10000000000000000000000000000000000000000 MUL PUSH21 0xFF0000000000000000000000000000000000000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH4 0xFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0xA83 PUSH2 0x47F3 JUMP JUMPDEST POP POP POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP2 MLOAD PUSH1 0xA0 DUP2 ADD DUP4 MSTORE DUP2 SLOAD DUP1 DUP3 MSTORE PUSH1 0x1 SWAP1 SWAP3 ADD SLOAD PUSH4 0xFFFFFFFF DUP2 AND SWAP5 DUP3 ADD DUP6 SWAP1 MSTORE PUSH1 0xFF PUSH5 0x100000000 DUP3 DIV DUP2 AND ISZERO ISZERO SWAP5 DUP4 ADD SWAP5 SWAP1 SWAP5 MSTORE PUSH6 0x10000000000 DUP2 DIV DUP5 AND ISZERO ISZERO PUSH1 0x60 DUP4 ADD MSTORE PUSH7 0x1000000000000 SWAP1 DIV SWAP1 SWAP3 AND ISZERO ISZERO PUSH1 0x80 SWAP1 SWAP3 ADD DUP3 SWAP1 MSTORE SWAP6 SWAP2 SWAP5 POP SWAP2 SWAP3 POP DUP3 SWAP2 SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x0 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH32 0x353C2EB9E53A4A4A6D45D72082FF2E9DC829D1125618772A83EB0E7F86632C43 SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x7 DUP3 DUP2 SLOAD DUP2 LT ISZERO ISZERO PUSH2 0xB68 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0xB8F DUP2 PUSH2 0x2A86 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH4 0xFFFFFFFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xBC3 DUP6 DUP6 DUP6 PUSH2 0x1BE1 JUMP JUMPDEST SWAP2 POP SWAP2 POP SWAP4 POP SWAP4 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xBD7 PUSH2 0x2A36 JUMP JUMPDEST PUSH2 0xBE0 DUP2 PUSH2 0x1378 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 ADDRESS PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x8DA5CB5B PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC42 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xC56 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xC6C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH2 0xCA6 PUSH2 0x2A36 JUMP JUMPDEST PUSH2 0xCAE PUSH2 0x242E JUMP JUMPDEST JUMP JUMPDEST PUSH2 0xCB8 PUSH2 0x2A36 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x5E35359E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP6 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP3 ADD DUP6 SWAP1 MSTORE SWAP2 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP2 PUSH4 0x5E35359E SWAP2 PUSH1 0x64 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xD2E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xD42 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 PUSH1 0x0 PUSH2 0xD5E PUSH2 0x2AF3 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH1 0x0 DUP5 GT PUSH2 0xDBB JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xF PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5A45524F5F414D4F554E540000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x18160DDD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xE0E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xE22 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xE38 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xA24835D100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP9 SWAP1 MSTORE SWAP1 MLOAD SWAP3 SWAP6 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP2 AND SWAP2 PUSH4 0xA24835D1 SWAP2 PUSH1 0x44 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xEA9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xEBD JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x7 DUP1 SLOAD SWAP1 POP PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0xEF0 JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CODESIZE DUP4 CODECOPY ADD SWAP1 POP JUMPDEST POP SWAP2 POP PUSH1 0x0 SWAP1 POP JUMPDEST DUP2 MLOAD DUP2 LT ISZERO PUSH2 0xF23 JUMPI PUSH1 0x1 DUP3 DUP3 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xF11 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MSTORE PUSH1 0x1 ADD PUSH2 0xEF8 JUMP JUMPDEST PUSH2 0xF89 PUSH1 0x7 DUP1 SLOAD DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD DUP1 ISZERO PUSH2 0xF7C JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xF5E JUMPI JUMPDEST POP POP POP POP POP DUP4 DUP6 DUP8 PUSH2 0x2B4D JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0x4 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ DUP1 PUSH2 0xFC9 JUMPI POP PUSH1 0x3 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x100D JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48E1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x1036 PUSH32 0x436F6E7472616374526567697374727900000000000000000000000000000000 PUSH2 0x2E12 JUMP JUMPDEST PUSH1 0x2 SLOAD SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP4 AND SWAP2 AND EQ DUP1 ISZERO SWAP1 PUSH2 0x105F JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x10B5 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245474953545259000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0xBB34534C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH32 0x436F6E7472616374526567697374727900000000000000000000000000000000 PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP2 PUSH4 0xBB34534C SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1139 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x114D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1163 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ ISZERO PUSH2 0x11C4 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245474953545259000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP5 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP3 DUP4 AND OR SWAP1 SWAP3 SSTORE SWAP1 SWAP2 AND SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x1209 PUSH2 0x2A36 JUMP JUMPDEST DUP1 PUSH2 0x1213 DUP2 PUSH2 0x2EAA JUMP JUMPDEST POP PUSH1 0x6 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x20 DUP2 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH9 0x10000000000000000 SWAP1 DIV PUSH4 0xFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x126A PUSH2 0x2AF3 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH2 0x1277 PUSH2 0x2A36 JUMP JUMPDEST PUSH2 0x128E PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4881 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x2E12 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD SWAP1 SWAP2 POP PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 PUSH2 0x12CB JUMPI POP PUSH2 0x12C9 PUSH2 0xBE3 JUMP JUMPDEST ISZERO JUMPDEST DUP1 PUSH2 0x12E3 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ JUMPDEST ISZERO ISZERO PUSH2 0x1327 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48E1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x1332 DUP5 DUP5 DUP5 PUSH2 0x2F0B JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0xF89 JUMPI PUSH2 0xF89 DUP5 PUSH2 0x2F3C JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH2 0x1380 PUSH2 0x2A36 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4881 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x1398 DUP2 PUSH2 0x3031 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xF2FDE38B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP2 PUSH4 0xF2FDE38B SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x13FF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1413 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1425 PUSH2 0x2AF3 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH2 0x1432 PUSH2 0x2A36 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x144A DUP2 PUSH2 0x2A86 JUMP JUMPDEST PUSH2 0x1461 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4881 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x2E12 JUMP JUMPDEST SWAP2 POP PUSH2 0x146B PUSH2 0xBE3 JUMP JUMPDEST ISZERO DUP1 PUSH2 0x1484 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 DUP2 AND SWAP2 AND EQ JUMPDEST ISZERO ISZERO PUSH2 0x14C8 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48E1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP1 ADDRESS BALANCE DUP1 ISZERO PUSH2 0x8FC MUL SWAP2 PUSH1 0x0 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x14FE JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH2 0x1516 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x2F3C JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0x4 SSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x152A PUSH2 0x2A36 JUMP JUMPDEST PUSH2 0x1532 PUSH2 0x3087 JUMP JUMPDEST DUP3 PUSH2 0x153C DUP2 PUSH2 0x30E4 JUMP JUMPDEST DUP4 PUSH2 0x1546 DUP2 PUSH2 0x2EAA JUMP JUMPDEST DUP4 PUSH2 0x1550 DUP2 PUSH2 0x3144 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 DUP2 AND SWAP2 AND EQ DUP1 ISZERO SWAP1 PUSH2 0x1594 JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x15D8 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4841 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x9 SLOAD PUSH4 0xFFFFFFFF SWAP1 DUP2 AND PUSH3 0xF4240 SUB DUP2 AND SWAP1 DUP7 AND GT ISZERO PUSH2 0x1643 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F574549474854000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0xFFFF PUSH2 0x164E PUSH2 0x1B85 JUMP JUMPDEST PUSH2 0xFFFF AND LT PUSH2 0x16A7 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F434F554E5400000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP2 DUP2 SSTORE PUSH1 0x1 SWAP1 DUP2 ADD DUP1 SLOAD PUSH7 0xFF000000000000 NOT PUSH4 0xFFFFFFFF DUP1 DUP9 AND PUSH4 0xFFFFFFFF NOT SWAP4 DUP5 AND OR SWAP2 SWAP1 SWAP2 AND PUSH7 0x1000000000000 OR SWAP1 SWAP3 SSTORE PUSH1 0x7 DUP1 SLOAD SWAP4 DUP5 ADD DUP2 SSTORE SWAP1 SWAP4 MSTORE PUSH32 0xA66CC928B5EDB82AF9BD49922954155AB7B0942694BEA4CE44661D9A8736C688 SWAP1 SWAP2 ADD DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 SWAP4 OR SWAP1 SWAP3 SSTORE PUSH1 0x9 DUP1 SLOAD DUP1 DUP5 AND SWAP1 SWAP5 ADD SWAP1 SWAP3 AND SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 JUMPDEST PUSH1 0x0 DUP2 GT ISZERO PUSH2 0x177D JUMPI PUSH1 0x1 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0xA SWAP1 DIV PUSH2 0x1764 JUMP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x178E PUSH2 0x1B85 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x17E3 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48E1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND SWAP4 SWAP1 SWAP2 AND SWAP2 PUSH32 0x343765429AEA5A34B3FF6A3785A98A5ABB2597ACA87BFBB58632C173D585373A SWAP2 LOG3 PUSH1 0x1 DUP1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND OR SWAP1 SWAP2 SSTORE AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x1870 PUSH2 0x2AF3 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH2 0x187D PUSH2 0x31B9 JUMP JUMPDEST PUSH2 0x1888 DUP7 DUP7 DUP7 PUSH2 0x3217 JUMP JUMPDEST PUSH1 0x0 SWAP3 POP JUMPDEST DUP6 MLOAD DUP4 LT ISZERO PUSH2 0x1946 JUMPI DUP6 MLOAD PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP1 DUP8 SWAP1 DUP6 SWAP1 DUP2 LT PUSH2 0x18B4 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ ISZERO PUSH2 0x193B JUMPI CALLVALUE DUP6 DUP5 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x18DC JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MLOAD EQ PUSH2 0x193B JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4554485F414D4F554E545F4D49534D41544348000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 PUSH2 0x188D JUMP JUMPDEST PUSH1 0x0 CALLVALUE GT ISZERO PUSH2 0x19EB JUMPI PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x0 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH32 0x353C2EB9E53A4A4A6D45D72082FF2E9DC829D1125618772A83EB0E7F86632C43 SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO PUSH2 0x19EB JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4E4F5F4554485F524553455256450000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x18160DDD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1A3E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1A52 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1A68 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 POP PUSH2 0x1A77 DUP7 DUP7 DUP5 PUSH2 0x34D3 JUMP JUMPDEST SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0x1AD1 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F52455455524E5F544F4F5F4C4F570000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x867904B400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP2 PUSH4 0x867904B4 SWAP2 PUSH1 0x44 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1B3D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1B51 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x1 PUSH1 0x4 SSTORE POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH5 0x100000000 SWAP1 DIV PUSH4 0xFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x7 SLOAD SWAP1 JUMP JUMPDEST DUP1 MLOAD PUSH1 0x0 SWAP1 DUP2 SWAP1 DUP2 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1BC8 JUMPI PUSH2 0x1BBC DUP6 DUP3 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x1BAD JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH2 0x175F JUMP JUMPDEST SWAP1 SWAP3 ADD SWAP2 PUSH1 0x1 ADD PUSH2 0x1B94 JUMP JUMPDEST PUSH1 0x1 PUSH2 0x1BD4 DUP5 DUP5 PUSH2 0x1EF3 JUMP JUMPDEST SUB PUSH1 0xA EXP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x1BEF PUSH2 0x31B9 JUMP JUMPDEST DUP7 PUSH2 0x1BF9 DUP2 PUSH2 0x2A86 JUMP JUMPDEST DUP7 PUSH2 0x1C03 DUP2 PUSH2 0x2A86 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP10 DUP2 AND SWAP1 DUP10 AND EQ ISZERO PUSH2 0x1C67 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F534F555243455F54415247455400000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x1C7E PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48C1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x2E12 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x94491FAB PUSH2 0x1C95 DUP12 PUSH2 0x2619 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP13 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH4 0xFFFFFFFF AND PUSH2 0x1CC0 DUP13 PUSH2 0x2619 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP14 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 ADD SLOAD DUP2 MLOAD PUSH4 0xFFFFFFFF DUP10 DUP2 AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP3 MSTORE PUSH1 0x4 DUP3 ADD SWAP9 SWAP1 SWAP9 MSTORE SWAP6 DUP8 AND PUSH1 0x24 DUP8 ADD MSTORE PUSH1 0x44 DUP7 ADD SWAP5 SWAP1 SWAP5 MSTORE SWAP5 SWAP1 SWAP3 AND PUSH1 0x64 DUP5 ADD MSTORE PUSH1 0x84 DUP4 ADD DUP14 SWAP1 MSTORE SWAP3 MLOAD PUSH1 0xA4 DUP1 DUP5 ADD SWAP5 SWAP3 SWAP4 SWAP2 SWAP3 SWAP2 DUP4 SWAP1 SUB ADD SWAP1 DUP3 SWAP1 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1D3C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1D50 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1D66 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP4 POP PUSH2 0x1D73 DUP5 PUSH2 0x3502 JUMP JUMPDEST SWAP4 DUP5 SWAP1 SUB SWAP10 SWAP4 SWAP9 POP SWAP3 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1D90 PUSH2 0x2AF3 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH2 0x1D9D PUSH2 0x31B9 JUMP JUMPDEST PUSH2 0x1DA8 DUP4 DUP4 DUP7 PUSH2 0x3217 JUMP JUMPDEST PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x18160DDD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1DFB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1E0F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1E25 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xA24835D100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP9 SWAP1 MSTORE SWAP1 MLOAD SWAP3 SWAP4 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP2 AND SWAP2 PUSH4 0xA24835D1 SWAP2 PUSH1 0x44 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1E96 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1EAA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0xF89 DUP4 DUP4 DUP4 DUP8 PUSH2 0x2B4D JUMP JUMPDEST PUSH2 0x1EC2 PUSH2 0x2A36 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x2 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x2 DUP2 DIV DUP5 ADD DUP2 ISZERO ISZERO PUSH2 0x1F05 JUMPI INVALID JUMPDEST DIV SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x1 DUP2 JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x1F38 PUSH2 0x2AF3 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH2 0x1F45 PUSH2 0x353E JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x0 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4861 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SLOAD PUSH2 0x1F7C SWAP1 CALLVALUE PUSH4 0xFFFFFFFF PUSH2 0x3580 AND JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4861 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP3 SWAP1 SWAP3 SSTORE PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x18160DDD00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP4 PUSH4 0x18160DDD SWAP4 PUSH1 0x4 DUP1 DUP5 ADD SWAP5 SWAP3 SWAP4 DUP4 SWAP1 SUB ADD SWAP1 DUP3 SWAP1 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2006 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x201A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2030 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP10 POP PUSH2 0x204B PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48C1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x2E12 JUMP JUMPDEST PUSH1 0x7 SLOAD SWAP1 SWAP10 POP SWAP8 POP PUSH1 0x0 SWAP7 POP JUMPDEST DUP8 DUP8 LT ISZERO PUSH2 0x2398 JUMPI PUSH1 0x7 DUP1 SLOAD DUP9 SWAP1 DUP2 LT PUSH2 0x206E JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP6 POP PUSH1 0x8 PUSH1 0x0 DUP8 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD SWAP5 POP DUP9 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xEBBB2158 DUP12 DUP8 PUSH1 0x9 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH4 0xFFFFFFFF AND DUP16 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH4 0xFFFFFFFF AND PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP5 POP POP POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2138 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x214C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2162 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP4 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ ISZERO PUSH2 0x22C4 JUMPI DUP4 CALLVALUE GT ISZERO PUSH2 0x21C2 JUMPI PUSH1 0x40 MLOAD CALLER SWAP1 CALLVALUE DUP7 SWAP1 SUB DUP1 ISZERO PUSH2 0x8FC MUL SWAP2 PUSH1 0x0 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x21BC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH2 0x22BF JUMP JUMPDEST DUP4 CALLVALUE LT ISZERO PUSH2 0x22BF JUMPI CALLVALUE ISZERO PUSH2 0x2220 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4554485F56414C55450000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x9 SLOAD PUSH2 0x2248 SWAP1 PUSH13 0x1000000000000000000000000 SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER ADDRESS DUP8 PUSH2 0x35E0 JUMP JUMPDEST PUSH1 0x9 PUSH1 0xC SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x2E1A7D4D DUP6 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x22A6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x22BA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMPDEST PUSH2 0x22D0 JUMP JUMPDEST PUSH2 0x22D0 DUP7 CALLER ADDRESS DUP8 PUSH2 0x35E0 JUMP JUMPDEST PUSH2 0x22E0 DUP6 DUP6 PUSH4 0xFFFFFFFF PUSH2 0x36C8 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP2 SWAP1 SSTORE SWAP3 POP PUSH2 0x230D DUP11 DUP13 PUSH4 0xFFFFFFFF PUSH2 0x36C8 AND JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP7 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP7 SWAP1 MSTORE DUP1 DUP3 ADD DUP4 SWAP1 MSTORE SWAP1 MLOAD SWAP2 SWAP4 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 AND SWAP2 CALLER SWAP2 PUSH32 0x4A1A2A6176E9646D9E3157F7C2AB3C499F18337C0B0828CFB28E0A61DE4A11F7 SWAP2 SWAP1 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG3 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH4 0xFFFFFFFF AND PUSH2 0x238D DUP3 DUP8 DUP6 DUP5 PUSH2 0x3725 JUMP JUMPDEST PUSH1 0x1 SWAP1 SWAP7 ADD SWAP6 PUSH2 0x2058 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x867904B400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP15 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP2 PUSH4 0x867904B4 SWAP2 PUSH1 0x44 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2404 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2418 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x1 PUSH1 0x4 SSTORE POP POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x2436 PUSH2 0x2A36 JUMP JUMPDEST PUSH2 0x243E PUSH2 0x3794 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x2455 PUSH2 0xD4B JUMP JUMPDEST PUSH2 0xFFFF AND PUSH32 0x6B08C2E2C9969E55A647A764DB9B554D64DC42F1A704DA11A6D5B129AD163F2C PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 JUMP JUMPDEST PUSH1 0x7 DUP1 SLOAD DUP3 SWAP1 DUP2 LT PUSH2 0x2495 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP1 POP DUP2 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x24D7 PUSH2 0x2A36 JUMP JUMPDEST PUSH2 0x24EE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4881 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x2E12 JUMP JUMPDEST PUSH1 0x5 SLOAD SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x2508 PUSH2 0xD4B JUMP JUMPDEST PUSH2 0xFFFF AND PUSH32 0x6B08C2E2C9969E55A647A764DB9B554D64DC42F1A704DA11A6D5B129AD163F2C PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH2 0x2541 DUP2 PUSH2 0x298A JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x90F58C9600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 AND SWAP2 PUSH4 0x90F58C96 SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x25A2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x25B6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0xBE0 PUSH2 0x1793 JUMP JUMPDEST PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD PUSH4 0xFFFFFFFF DUP2 AND SWAP1 PUSH1 0xFF PUSH5 0x100000000 DUP3 DIV DUP2 AND SWAP2 PUSH6 0x10000000000 DUP2 DIV DUP3 AND SWAP2 PUSH7 0x1000000000000 SWAP1 SWAP2 DIV AND DUP6 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2613 DUP3 PUSH2 0x2619 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0x2625 DUP2 PUSH2 0x2A86 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x264C PUSH2 0x2AF3 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH32 0x536F7672796E537761704E6574776F726B000000000000000000000000000000 PUSH2 0x267B DUP2 PUSH2 0x3031 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 DUP2 AND SWAP1 DUP8 AND EQ ISZERO PUSH2 0x26DF JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F534F555243455F54415247455400000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND ISZERO DUP1 PUSH2 0x2822 JUMPI POP PUSH1 0x6 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x3AF32ABF00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP2 PUSH4 0x3AF32ABF SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x275A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x276E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2784 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD DUP1 ISZERO PUSH2 0x2822 JUMPI POP PUSH1 0x6 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x3AF32ABF00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP2 PUSH4 0x3AF32ABF SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x27F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2809 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x281F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD JUMPDEST ISZERO ISZERO PUSH2 0x2878 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4E4F545F57484954454C495354454400000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x2885 DUP8 DUP8 DUP8 DUP8 DUP8 PUSH2 0x37FF JUMP JUMPDEST PUSH1 0x1 PUSH1 0x4 SSTORE SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x289D PUSH2 0x2A36 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH4 0xFFFFFFFF PUSH5 0x100000000 SWAP1 SWAP2 DIV DUP2 AND SWAP1 DUP3 AND GT ISZERO PUSH2 0x2909 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F434F4E56455253494F4E5F464545000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH4 0xFFFFFFFF PUSH9 0x10000000000000000 SWAP1 SWAP4 DIV DUP4 AND DUP2 MSTORE SWAP2 DUP4 AND PUSH1 0x20 DUP4 ADD MSTORE DUP1 MLOAD PUSH32 0x81CD2FFB37DD237C0E4E2A3DE5265FCF9DEB43D3E7801E80DB9F1CCFBA7EE600 SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG1 PUSH1 0x9 DUP1 SLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP3 AND PUSH9 0x10000000000000000 MUL PUSH12 0xFFFFFFFF0000000000000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x2992 PUSH2 0x2A36 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x29F8 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F4F574E4552000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0xCAE JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48E1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO PUSH2 0xBE0 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4841 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x4 SLOAD PUSH1 0x1 EQ PUSH2 0xCAE JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5245454E5452414E4359000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x2B61 PUSH2 0x353E JUMP JUMPDEST PUSH2 0x2B78 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48C1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x2E12 JUMP JUMPDEST SWAP8 POP PUSH2 0x2B8A DUP11 DUP11 PUSH4 0xFFFFFFFF PUSH2 0x3580 AND JUMP JUMPDEST SWAP7 POP PUSH1 0x0 SWAP6 POP JUMPDEST DUP12 MLOAD DUP7 LT ISZERO PUSH2 0x2E04 JUMPI DUP12 DUP7 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x2BA8 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD SWAP5 POP PUSH1 0x8 PUSH1 0x0 DUP7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD SWAP4 POP DUP8 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x8074590A DUP12 DUP7 PUSH1 0x9 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH4 0xFFFFFFFF AND DUP14 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH4 0xFFFFFFFF AND PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP5 POP POP POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2C5E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2C72 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2C88 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD DUP12 MLOAD SWAP1 SWAP4 POP DUP12 SWAP1 DUP8 SWAP1 DUP2 LT PUSH2 0x2C9B JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MLOAD DUP4 LT ISZERO PUSH2 0x2CFC JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5A45524F5F5441524745545F414D4F554E5400000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x2D0C DUP5 DUP5 PUSH4 0xFFFFFFFF PUSH2 0x3580 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP3 SWAP1 SSTORE SWAP1 SWAP3 POP PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ ISZERO PUSH2 0x2D72 JUMPI PUSH1 0x40 MLOAD CALLER SWAP1 DUP5 ISZERO PUSH2 0x8FC MUL SWAP1 DUP6 SWAP1 PUSH1 0x0 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x2D6C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH2 0x2D7D JUMP JUMPDEST PUSH2 0x2D7D DUP6 CALLER DUP6 PUSH2 0x3AD2 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP5 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 SWAP1 MSTORE DUP1 DUP3 ADD DUP10 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND SWAP2 CALLER SWAP2 PUSH32 0xBC7D19D505C7EC4DB83F3B51F19FB98C4C8A99922E7839D1EE608DFBEE29501B SWAP2 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG3 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH4 0xFFFFFFFF AND PUSH2 0x2DF9 DUP8 DUP7 DUP5 DUP5 PUSH2 0x3725 JUMP JUMPDEST PUSH1 0x1 SWAP1 SWAP6 ADD SWAP5 PUSH2 0x2B91 JUMP JUMPDEST POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xBB34534C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP2 PUSH4 0xBB34534C SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2E78 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2E8C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2EA2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ADDRESS EQ ISZERO PUSH2 0xBE0 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F414444524553535F49535F53454C4600000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x2F13 PUSH2 0x2A36 JUMP JUMPDEST DUP3 PUSH2 0x2F1D DUP2 PUSH2 0x30E4 JUMP JUMPDEST DUP3 PUSH2 0x2F27 DUP2 PUSH2 0x30E4 JUMP JUMPDEST DUP4 PUSH2 0x2F31 DUP2 PUSH2 0x2EAA JUMP JUMPDEST PUSH2 0x1413 DUP7 DUP7 DUP7 PUSH2 0x3AD2 JUMP JUMPDEST DUP1 PUSH2 0x2F46 DUP2 PUSH2 0x2A86 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 AND PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ ISZERO PUSH2 0x2F86 JUMPI PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 ADDRESS BALANCE SWAP1 SSTORE PUSH2 0x302D JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2FE7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2FFB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x3011 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x303A DUP2 PUSH2 0x2E12 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0xBE0 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48E1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x308F PUSH2 0xBE3 JUMP JUMPDEST ISZERO PUSH2 0xCAE JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xA PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F41435449564500000000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0xBE0 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 PUSH4 0xFFFFFFFF AND GT DUP1 ISZERO PUSH2 0x3163 JUMPI POP PUSH3 0xF4240 PUSH4 0xFFFFFFFF DUP3 AND GT ISZERO JUMPDEST ISZERO ISZERO PUSH2 0xBE0 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F574549474854000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x31C1 PUSH2 0xBE3 JUMP JUMPDEST ISZERO ISZERO PUSH2 0xCAE JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E4143544956450000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x7 SLOAD DUP4 MLOAD PUSH1 0x0 SWAP2 DUP3 SWAP2 DUP2 EQ PUSH2 0x3265 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4841 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP5 MLOAD DUP2 EQ PUSH2 0x32BD JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F414D4F554E540000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 SWAP3 POP JUMPDEST DUP1 DUP4 LT ISZERO PUSH2 0x347B JUMPI PUSH1 0x8 PUSH1 0x0 DUP8 DUP6 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x32DC JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP3 MSTORE DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH1 0xFF PUSH7 0x1000000000000 SWAP1 SWAP2 DIV AND ISZERO ISZERO PUSH2 0x3354 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4841 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 SWAP2 POP JUMPDEST DUP1 DUP3 LT ISZERO PUSH2 0x33BC JUMPI DUP6 DUP3 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x336F JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x7 DUP5 DUP2 SLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3391 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ ISZERO PUSH2 0x33B1 JUMPI PUSH2 0x33BC JUMP JUMPDEST PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x3359 JUMP JUMPDEST DUP1 DUP3 LT PUSH2 0x3401 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4841 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP6 DUP5 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3411 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MLOAD GT PUSH2 0x3470 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F414D4F554E540000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 PUSH2 0x32C2 JUMP JUMPDEST PUSH1 0x0 DUP5 GT PUSH2 0x1413 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xF PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5A45524F5F414D4F554E540000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO PUSH2 0x34ED JUMPI PUSH2 0x34E6 DUP5 DUP5 PUSH2 0x3B89 JUMP JUMPDEST SWAP1 POP PUSH2 0x34FB JUMP JUMPDEST PUSH2 0x34F8 DUP5 DUP5 DUP5 PUSH2 0x3D90 JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x0 SWAP1 PUSH2 0x2613 SWAP1 PUSH3 0xF4240 SWAP1 PUSH2 0x3532 SWAP1 DUP6 SWAP1 PUSH9 0x10000000000000000 SWAP1 DIV PUSH4 0xFFFFFFFF SWAP1 DUP2 AND SWAP1 PUSH2 0x4150 AND JUMP JUMPDEST SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x41C9 AND JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x302D JUMPI PUSH2 0x3578 PUSH1 0x7 DUP3 DUP2 SLOAD DUP2 LT ISZERO ISZERO PUSH2 0x355E JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x2F3C JUMP JUMPDEST PUSH1 0x1 ADD PUSH2 0x3544 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT ISZERO PUSH2 0x35DA JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F554E444552464C4F5700000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP SWAP1 SUB SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x7472616E7366657246726F6D28616464726573732C616464726573732C75696E DUP2 MSTORE PUSH32 0x7432353629000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP3 MLOAD SWAP2 DUP3 SWAP1 SUB PUSH1 0x25 ADD DUP3 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP9 AND PUSH1 0x24 DUP6 ADD MSTORE DUP7 AND PUSH1 0x44 DUP5 ADD MSTORE PUSH1 0x64 DUP1 DUP5 ADD DUP7 SWAP1 MSTORE DUP5 MLOAD DUP1 DUP6 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x84 SWAP1 SWAP4 ADD SWAP1 SWAP4 MSTORE DUP2 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE PUSH2 0x36C2 SWAP1 DUP6 SWAP1 PUSH2 0x4237 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 ADD DUP4 DUP2 LT ISZERO PUSH2 0x34FB JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP6 AND SWAP2 AND PUSH32 0x77F29993CF2C084E726F7E802DA0719D6A0ADE3E204BADC7A3FFD57ECB768C24 PUSH2 0x3763 DUP6 PUSH3 0xF4240 PUSH2 0x4150 JUMP JUMPDEST PUSH2 0x3776 DUP9 PUSH4 0xFFFFFFFF DUP1 DUP9 AND SWAP1 PUSH2 0x4150 AND JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB ADD SWAP1 LOG3 POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH2 0x379E PUSH2 0x1B85 JUMP JUMPDEST PUSH2 0xFFFF AND GT PUSH2 0x37F7 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F434F554E5400000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0xCAE PUSH2 0x42C5 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x3810 DUP10 DUP10 DUP10 PUSH2 0x1BE1 JUMP JUMPDEST SWAP1 SWAP4 POP SWAP2 POP DUP3 ISZERO ISZERO PUSH2 0x386C JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5A45524F5F5441524745545F414D4F554E5400000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x3875 DUP9 PUSH2 0x2619 JUMP JUMPDEST SWAP1 POP DUP1 DUP4 LT PUSH2 0x3880 JUMPI INVALID JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP10 AND PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ ISZERO PUSH2 0x38FB JUMPI CALLVALUE DUP8 EQ PUSH2 0x38F6 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4554485F414D4F554E545F4D49534D41544348000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x3A03 JUMP JUMPDEST CALLVALUE ISZERO DUP1 ISZERO PUSH2 0x39AD JUMPI POP DUP7 PUSH2 0x39AA PUSH2 0x3911 DUP12 PUSH2 0x2619 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP15 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3972 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3986 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x399C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x3580 AND JUMP JUMPDEST LT ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x3A03 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F414D4F554E540000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x3A0C DUP10 PUSH2 0x2F3C JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x3A35 SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0x3580 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP10 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ ISZERO PUSH2 0x3AA2 JUMPI PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND SWAP1 DUP5 ISZERO PUSH2 0x8FC MUL SWAP1 DUP6 SWAP1 PUSH1 0x0 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x3A9C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH2 0x3AAD JUMP JUMPDEST PUSH2 0x3AAD DUP9 DUP7 DUP6 PUSH2 0x3AD2 JUMP JUMPDEST PUSH2 0x3ABB DUP10 DUP10 DUP9 DUP11 DUP8 DUP8 PUSH2 0x43A3 JUMP JUMPDEST PUSH2 0x3AC5 DUP10 DUP10 PUSH2 0x4428 JUMP JUMPDEST POP SWAP1 SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x7472616E7366657228616464726573732C75696E743235362900000000000000 DUP2 MSTORE DUP2 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x19 ADD DUP2 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x64 SWAP1 SWAP3 ADD SWAP1 SWAP3 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE PUSH2 0x3B84 SWAP1 DUP5 SWAP1 PUSH2 0x4237 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x3B98 DUP6 PUSH2 0x1B8B JUMP JUMPDEST SWAP3 POP PUSH1 0x0 SWAP2 POP JUMPDEST DUP6 MLOAD DUP3 LT ISZERO PUSH2 0x3D86 JUMPI DUP6 MLOAD PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP1 DUP8 SWAP1 DUP5 SWAP1 DUP2 LT PUSH2 0x3BC6 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ PUSH2 0x3C18 JUMPI PUSH2 0x3C18 DUP7 DUP4 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3BEF JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD CALLER ADDRESS DUP9 DUP7 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3C09 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH2 0x35E0 JUMP JUMPDEST DUP5 DUP3 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3C26 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x8 PUSH1 0x0 DUP9 DUP6 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3C42 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP3 MSTORE DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 SSTORE DUP6 MLOAD DUP7 SWAP1 DUP4 SWAP1 DUP2 LT PUSH2 0x3C73 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH32 0x4A1A2A6176E9646D9E3157F7C2AB3C499F18337C0B0828CFB28E0A61DE4A11F7 DUP8 DUP6 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3CBF JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD DUP9 DUP7 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3CD7 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x40 DUP1 MLOAD SWAP4 DUP5 MSTORE SWAP2 DUP4 ADD MSTORE DUP2 DUP2 ADD DUP9 SWAP1 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG3 PUSH1 0x8 PUSH1 0x0 DUP8 DUP5 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3D0F JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP3 MSTORE DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD SLOAD DUP7 MLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP2 AND SWAP2 POP PUSH2 0x3D7B SWAP1 DUP5 SWAP1 DUP9 SWAP1 DUP6 SWAP1 DUP2 LT PUSH2 0x3D53 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD DUP8 DUP6 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3D6B JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD DUP5 PUSH2 0x3725 JUMP JUMPDEST PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x3B9F JUMP JUMPDEST POP SWAP1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x3DA7 PUSH2 0x353E JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x0 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4861 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SLOAD PUSH2 0x3DDE SWAP1 CALLVALUE PUSH4 0xFFFFFFFF PUSH2 0x3580 AND JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x0 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4861 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SSTORE PUSH2 0x3E1C PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48C1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x2E12 JUMP JUMPDEST SWAP9 POP PUSH2 0x3E2A DUP10 DUP13 DUP16 DUP16 PUSH2 0x4636 JUMP JUMPDEST SWAP8 POP PUSH2 0x3E3C DUP12 DUP10 PUSH4 0xFFFFFFFF PUSH2 0x36C8 AND JUMP JUMPDEST SWAP7 POP PUSH1 0x0 SWAP6 POP JUMPDEST DUP13 MLOAD DUP7 LT ISZERO PUSH2 0x413F JUMPI DUP13 DUP7 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3E5A JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD SWAP5 POP PUSH1 0x8 PUSH1 0x0 DUP7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD SWAP4 POP DUP9 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xEBBB2158 DUP13 DUP7 PUSH1 0x9 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH4 0xFFFFFFFF AND DUP13 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH4 0xFFFFFFFF AND PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP5 POP POP POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3F10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3F24 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x3F3A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP3 POP PUSH1 0x0 DUP4 GT PUSH2 0x3F96 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5A45524F5F5441524745545F414D4F554E5400000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP12 DUP7 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3FA4 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MLOAD DUP4 GT ISZERO PUSH2 0x3FB7 JUMPI INVALID JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ PUSH2 0x3FE6 JUMPI PUSH2 0x3FE1 DUP6 CALLER ADDRESS DUP7 PUSH2 0x35E0 JUMP JUMPDEST PUSH2 0x4059 JUMP JUMPDEST DUP3 DUP13 DUP8 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3FF5 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD GT ISZERO PUSH2 0x4059 JUMPI CALLER PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x8FC DUP5 DUP15 DUP10 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x4021 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD SUB SWAP1 DUP2 ISZERO MUL SWAP1 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x4057 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP JUMPDEST PUSH2 0x4069 DUP5 DUP5 PUSH4 0xFFFFFFFF PUSH2 0x36C8 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP5 SWAP1 SSTORE DUP2 MLOAD DUP8 DUP2 MSTORE SWAP1 DUP2 ADD DUP5 SWAP1 MSTORE DUP1 DUP3 ADD DUP12 SWAP1 MSTORE SWAP1 MLOAD SWAP3 SWAP5 POP SWAP1 SWAP2 CALLER SWAP2 PUSH32 0x4A1A2A6176E9646D9E3157F7C2AB3C499F18337C0B0828CFB28E0A61DE4A11F7 SWAP2 SWAP1 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG3 PUSH1 0x8 PUSH1 0x0 DUP15 DUP9 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x40DF JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP3 MSTORE DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD SLOAD DUP14 MLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP2 AND SWAP2 POP PUSH2 0x4134 SWAP1 DUP9 SWAP1 DUP16 SWAP1 DUP10 SWAP1 DUP2 LT PUSH2 0x4123 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD DUP5 DUP5 PUSH2 0x3725 JUMP JUMPDEST PUSH1 0x1 SWAP1 SWAP6 ADD SWAP5 PUSH2 0x3E43 JUMP JUMPDEST POP SWAP6 SWAP12 SWAP11 POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 ISZERO ISZERO PUSH2 0x4163 JUMPI PUSH1 0x0 SWAP2 POP PUSH2 0x177D JUMP JUMPDEST POP DUP3 DUP3 MUL DUP3 DUP5 DUP3 DUP2 ISZERO ISZERO PUSH2 0x4173 JUMPI INVALID JUMPDEST DIV EQ PUSH2 0x34FB JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP4 GT PUSH2 0x4223 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4449564944455F42595F5A45524F0000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP3 DUP5 DUP2 ISZERO ISZERO PUSH2 0x422E JUMPI INVALID JUMPDEST DIV SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0x423F PUSH2 0x4821 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE POP SWAP1 POP PUSH1 0x20 DUP2 DUP4 MLOAD PUSH1 0x20 DUP6 ADD PUSH1 0x0 DUP8 GAS CALL DUP1 ISZERO ISZERO PUSH2 0x426C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD ISZERO ISZERO PUSH2 0x3B84 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5452414E534645525F4641494C454400000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x42CD PUSH2 0x2A36 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x42D7 PUSH2 0x1B85 JUMP JUMPDEST PUSH2 0xFFFF AND GT PUSH2 0x4330 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F434F554E5400000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x79BA5097 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x4383 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x4397 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0xCAE PUSH2 0x353E JUMP JUMPDEST PUSH32 0x8000000000000000000000000000000000000000000000000000000000000000 DUP2 LT PUSH2 0x43CC JUMPI INVALID JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP5 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 SWAP1 MSTORE DUP1 DUP3 ADD DUP4 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP8 AND SWAP3 DUP9 DUP3 AND SWAP3 SWAP2 DUP11 AND SWAP2 PUSH32 0x276856B36CBC45526A0BA64F44611557A2A8B68662C5388E9FE6D72E86E1C8CB SWAP2 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG4 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x18160DDD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x4486 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x449A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x44B0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP7 POP PUSH2 0x44BD DUP10 PUSH2 0x2619 JUMP JUMPDEST SWAP6 POP PUSH2 0x44C8 DUP9 PUSH2 0x2619 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 PUSH1 0x1 SWAP1 DUP2 ADD SLOAD SWAP4 DUP14 AND DUP4 MSTORE SWAP2 KECCAK256 ADD SLOAD SWAP2 SWAP7 POP PUSH4 0xFFFFFFFF SWAP1 DUP2 AND SWAP6 POP SWAP1 DUP2 AND SWAP4 POP PUSH2 0x4511 SWAP1 DUP7 SWAP1 DUP7 SWAP1 PUSH2 0x4150 AND JUMP JUMPDEST SWAP2 POP PUSH2 0x4526 DUP7 PUSH4 0xFFFFFFFF DUP1 DUP7 AND SWAP1 PUSH2 0x4150 AND JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP5 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP4 SWAP1 MSTORE DUP2 MLOAD SWAP3 SWAP4 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP13 AND SWAP4 SWAP1 DUP14 AND SWAP3 PUSH32 0x77F29993CF2C084E726F7E802DA0719D6A0ADE3E204BADC7A3FFD57ECB768C24 SWAP3 DUP3 SWAP1 SUB ADD SWAP1 LOG3 PUSH2 0x457D DUP8 DUP11 DUP9 DUP8 PUSH2 0x3725 JUMP JUMPDEST PUSH2 0x4589 DUP8 DUP10 DUP8 DUP7 PUSH2 0x3725 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP9 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP9 SWAP1 MSTORE PUSH4 0xFFFFFFFF DUP7 AND DUP2 DUP4 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND SWAP2 PUSH32 0x8A6A7F53B3C8FA1DC4B83E3F1BE668C1B251FF8D44CDCB83EB3ACEC3FEC6A788 SWAP2 SWAP1 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG2 PUSH1 0x40 DUP1 MLOAD DUP9 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP8 SWAP1 MSTORE PUSH4 0xFFFFFFFF DUP6 AND DUP2 DUP4 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP11 AND SWAP2 PUSH32 0x8A6A7F53B3C8FA1DC4B83E3F1BE668C1B251FF8D44CDCB83EB3ACEC3FEC6A788 SWAP2 SWAP1 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG2 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x1 JUMPDEST DUP5 MLOAD DUP2 LT ISZERO PUSH2 0x46F9 JUMPI PUSH2 0x46A1 PUSH1 0x8 PUSH1 0x0 DUP8 DUP5 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x465A JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP3 MSTORE DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 SLOAD DUP6 MLOAD DUP7 SWAP1 DUP6 SWAP1 DUP2 LT PUSH2 0x468B JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MLOAD SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x4150 AND JUMP JUMPDEST PUSH2 0x46E7 PUSH1 0x8 PUSH1 0x0 DUP9 DUP7 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x46B6 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP3 MSTORE DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 SLOAD DUP7 MLOAD DUP8 SWAP1 DUP6 SWAP1 DUP2 LT PUSH2 0x468B JUMPI INVALID JUMPDEST LT ISZERO PUSH2 0x46F1 JUMPI DUP1 SWAP2 POP JUMPDEST PUSH1 0x1 ADD PUSH2 0x463C JUMP JUMPDEST DUP7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x2F55BDB5 DUP8 PUSH1 0x8 PUSH1 0x0 DUP10 DUP8 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x471B JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP3 MSTORE DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH1 0x9 SLOAD DUP9 MLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP2 AND SWAP1 DUP10 SWAP1 DUP9 SWAP1 DUP2 LT PUSH2 0x4758 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH4 0xFFFFFFFF AND PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP5 POP POP POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x47BC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x47D0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x47E6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xA0 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE SWAP2 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x60 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 SWAP1 PUSH1 0x20 DUP3 MUL DUP1 CODESIZE DUP4 CODECOPY POP SWAP2 SWAP3 SWAP2 POP POP JUMP STOP GASLIMIT MSTORE MSTORE 0x5f 0x49 0x4e JUMP COINBASE 0x4c 0x49 DIFFICULTY 0x5f MSTORE GASLIMIT MSTORE8 GASLIMIT MSTORE JUMP GASLIMIT STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP CALLDATALOAD EXTCODECOPY 0x2e 0xb9 0xe5 GASPRICE 0x4a 0x4a PUSH14 0x45D72082FF2E9DC829D112561877 0x2a DUP4 0xeb 0xe PUSH32 0x86632C42536F7672796E53776170436F6E766572746572557067726164657200 STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee MSTORE8 PUSH16 0x7672796E53776170466F726D756C6100 STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP GASLIMIT MSTORE MSTORE 0x5f COINBASE NUMBER NUMBER GASLIMIT MSTORE8 MSTORE8 0x5f DIFFICULTY GASLIMIT 0x4e 0x49 GASLIMIT DIFFICULTY STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 ORIGIN 0x4b NUMBER PUSH5 0xD6A1792677 0xc2 REVERT DUP3 0xe3 SGT 0xb6 0x2b SWAP13 0xc9 JUMPI 0xd5 DUP10 0x49 INVALID SWAP9 0x23 0xa7 0xcc PUSH2 0xA1A 0xc SDIV STOP 0x29 LOG1 PUSH6 0x627A7A723058 KECCAK256 0x2b STOP 0xad DUP16 0xf8 0xcd 0xdb MSIZE 0x5e 0x46 0xd4 AND 0xfc 0x24 0xda 0x46 DUP14 0xe1 0x23 0xd5 PUSH12 0x62CF0DC1BE99DE9699A9E500 0x29 ", + "sourceMap": "266:1032:24:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;962:333;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;962:333:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;470:81;;8:9:-1;5:2;;;30:1;27;20:12;5:2;470:81:24;;;;;;;;;;;;;;;;;;;;;;;962:333;1084:10;1107:20;1171:7;1181:9;1192:17;1130:80;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1130:80:24;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;1221:39:24;;;;;;1249:10;1221:39;;;;;;1107:103;;-1:-1:-1;1221:27:24;;;;;;:39;;;;;-1:-1:-1;;1221:39:24;;;;;;;;-1:-1:-1;1221:27:24;:39;;;5:2:-1;;;;30:1;27;20:12;5:2;1221:39:24;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;1278:9:24;;962:333;-1:-1:-1;;;;;;;962:333:24:o;470:81::-;542:1;470:81;:::o;266:1032::-;;;;;;;;;;:::o" + }, + "methodIdentifiers": { + "converterType()": "3e8ff43f", + "createConverter(address,address,uint32)": "11413958" + } + }, + "userdoc": { + "methods": {} + } + } + }, + "solidity/contracts/converter/types/liquidity-pool-v2/LiquidityPoolV2Converter.sol": { + "LiquidityPoolV2Converter": { + "abi": [ + { + "constant": true, + "inputs": [ + { + "name": "_reserveToken", + "type": "address" + } + ], + "name": "reserveStakedBalance", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_onlyOwnerCanUpdateRegistry", + "type": "bool" + } + ], + "name": "restrictRegistryUpdate", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "primaryReserveToken", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "maxStakedBalanceEnabled", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "reserveRatio", + "outputs": [ + { + "name": "", + "type": "uint32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_address", + "type": "address" + } + ], + "name": "connectors", + "outputs": [ + { + "name": "", + "type": "uint256" + }, + { + "name": "", + "type": "uint32" + }, + { + "name": "", + "type": "bool" + }, + { + "name": "", + "type": "bool" + }, + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_primaryReserveToken", + "type": "address" + }, + { + "name": "_primaryReserveOracle", + "type": "address" + }, + { + "name": "_secondaryReserveOracle", + "type": "address" + } + ], + "name": "activate", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "hasETHReserve", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "disableMaxStakedBalances", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_index", + "type": "uint256" + } + ], + "name": "connectorTokens", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_reserveToken", + "type": "address" + } + ], + "name": "reserveWeight", + "outputs": [ + { + "name": "", + "type": "uint32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_sourceToken", + "type": "address" + }, + { + "name": "_targetToken", + "type": "address" + }, + { + "name": "_amount", + "type": "uint256" + } + ], + "name": "getReturn", + "outputs": [ + { + "name": "", + "type": "uint256" + }, + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_newOwner", + "type": "address" + } + ], + "name": "transferTokenOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "isActive", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "priceOracle", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_reserveToken", + "type": "address" + } + ], + "name": "reserveAmplifiedBalance", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_poolToken", + "type": "address" + } + ], + "name": "liquidationLimit", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "onlyOwnerCanUpdateRegistry", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "acceptTokenOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_token", + "type": "address" + }, + { + "name": "_to", + "type": "address" + }, + { + "name": "_amount", + "type": "uint256" + } + ], + "name": "withdrawFromAnchor", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "converterType", + "outputs": [ + { + "name": "", + "type": "uint16" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_reserve1MaxStakedBalance", + "type": "uint256" + }, + { + "name": "_reserve2MaxStakedBalance", + "type": "uint256" + } + ], + "name": "setMaxStakedBalances", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "updateRegistry", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_whitelist", + "type": "address" + } + ], + "name": "setConversionWhitelist", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "version", + "outputs": [ + { + "name": "", + "type": "uint16" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_reserveToken", + "type": "address" + }, + { + "name": "_amount", + "type": "uint256" + }, + { + "name": "_minReturn", + "type": "uint256" + } + ], + "name": "addLiquidity", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": true, + "stateMutability": "payable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_reserveToken", + "type": "address" + } + ], + "name": "poolToken", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "conversionFee", + "outputs": [ + { + "name": "", + "type": "uint32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_token", + "type": "address" + }, + { + "name": "_to", + "type": "address" + }, + { + "name": "_amount", + "type": "uint256" + } + ], + "name": "withdrawTokens", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "prevRegistry", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_newOwner", + "type": "address" + } + ], + "name": "transferAnchorOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_poolToken", + "type": "address" + }, + { + "name": "_amount", + "type": "uint256" + } + ], + "name": "removeLiquidityReturnAndFee", + "outputs": [ + { + "name": "", + "type": "uint256" + }, + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_to", + "type": "address" + } + ], + "name": "withdrawETH", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_dynamicFeeFactor", + "type": "uint256" + } + ], + "name": "setDynamicFeeFactor", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_token", + "type": "address" + }, + { + "name": "_weight", + "type": "uint32" + } + ], + "name": "addReserve", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "connectorTokenCount", + "outputs": [ + { + "name": "", + "type": "uint16" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "acceptOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "registry", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "owner", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "maxConversionFee", + "outputs": [ + { + "name": "", + "type": "uint32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "", + "type": "address" + } + ], + "name": "maxStakedBalances", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "reserveTokenCount", + "outputs": [ + { + "name": "", + "type": "uint16" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "referenceRate", + "outputs": [ + { + "name": "n", + "type": "uint256" + }, + { + "name": "d", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_sourceToken", + "type": "address" + }, + { + "name": "_targetToken", + "type": "address" + }, + { + "name": "_amount", + "type": "uint256" + } + ], + "name": "targetAmountAndFee", + "outputs": [ + { + "name": "", + "type": "uint256" + }, + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "restoreRegistry", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "conversionsEnabled", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_reserveToken", + "type": "address" + }, + { + "name": "_balance", + "type": "uint256" + } + ], + "name": "setReserveStakedBalance", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "referenceRateUpdateTime", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "conversionWhitelist", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "acceptAnchorOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "", + "type": "uint256" + } + ], + "name": "reserveTokens", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "isV28OrHigher", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "anchor", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "newOwner", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "upgrade", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "amplificationFactor", + "outputs": [ + { + "name": "", + "type": "uint8" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "", + "type": "address" + } + ], + "name": "reserves", + "outputs": [ + { + "name": "balance", + "type": "uint256" + }, + { + "name": "weight", + "type": "uint32" + }, + { + "name": "deprecated1", + "type": "bool" + }, + { + "name": "deprecated2", + "type": "bool" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_connectorToken", + "type": "address" + } + ], + "name": "getConnectorBalance", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "effectiveTokensRate", + "outputs": [ + { + "name": "", + "type": "uint256" + }, + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "secondaryReserveToken", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_reserveToken", + "type": "address" + } + ], + "name": "reserveBalance", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_poolToken", + "type": "address" + }, + { + "name": "_amount", + "type": "uint256" + }, + { + "name": "_minReturn", + "type": "uint256" + } + ], + "name": "removeLiquidity", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "dynamicFeeFactor", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_sourceToken", + "type": "address" + }, + { + "name": "_targetToken", + "type": "address" + }, + { + "name": "_amount", + "type": "uint256" + }, + { + "name": "_trader", + "type": "address" + }, + { + "name": "_beneficiary", + "type": "address" + } + ], + "name": "convert", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": true, + "stateMutability": "payable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "effectiveReserveWeights", + "outputs": [ + { + "name": "", + "type": "uint256" + }, + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_conversionFee", + "type": "uint32" + } + ], + "name": "setConversionFee", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "lastConversionRate", + "outputs": [ + { + "name": "n", + "type": "uint256" + }, + { + "name": "d", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "token", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "name": "_poolTokensContainer", + "type": "address" + }, + { + "name": "_registry", + "type": "address" + }, + { + "name": "_maxConversionFee", + "type": "uint32" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "payable": true, + "stateMutability": "payable", + "type": "fallback" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "_prevFactor", + "type": "uint256" + }, + { + "indexed": false, + "name": "_newFactor", + "type": "uint256" + } + ], + "name": "DynamicFeeFactorUpdate", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "_provider", + "type": "address" + }, + { + "indexed": true, + "name": "_reserveToken", + "type": "address" + }, + { + "indexed": false, + "name": "_amount", + "type": "uint256" + }, + { + "indexed": false, + "name": "_newBalance", + "type": "uint256" + }, + { + "indexed": false, + "name": "_newSupply", + "type": "uint256" + } + ], + "name": "LiquidityAdded", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "_provider", + "type": "address" + }, + { + "indexed": true, + "name": "_reserveToken", + "type": "address" + }, + { + "indexed": false, + "name": "_amount", + "type": "uint256" + }, + { + "indexed": false, + "name": "_newBalance", + "type": "uint256" + }, + { + "indexed": false, + "name": "_newSupply", + "type": "uint256" + } + ], + "name": "LiquidityRemoved", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "_type", + "type": "uint16" + }, + { + "indexed": true, + "name": "_anchor", + "type": "address" + }, + { + "indexed": true, + "name": "_activated", + "type": "bool" + } + ], + "name": "Activation", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "_fromToken", + "type": "address" + }, + { + "indexed": true, + "name": "_toToken", + "type": "address" + }, + { + "indexed": true, + "name": "_trader", + "type": "address" + }, + { + "indexed": false, + "name": "_amount", + "type": "uint256" + }, + { + "indexed": false, + "name": "_return", + "type": "uint256" + }, + { + "indexed": false, + "name": "_conversionFee", + "type": "int256" + } + ], + "name": "Conversion", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "_token1", + "type": "address" + }, + { + "indexed": true, + "name": "_token2", + "type": "address" + }, + { + "indexed": false, + "name": "_rateN", + "type": "uint256" + }, + { + "indexed": false, + "name": "_rateD", + "type": "uint256" + } + ], + "name": "TokenRateUpdate", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "_prevFee", + "type": "uint32" + }, + { + "indexed": false, + "name": "_newFee", + "type": "uint32" + } + ], + "name": "ConversionFeeUpdate", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "_prevOwner", + "type": "address" + }, + { + "indexed": true, + "name": "_newOwner", + "type": "address" + } + ], + "name": "OwnerUpdate", + "type": "event" + } + ], + "devdoc": { + "methods": { + "acceptAnchorOwnership()": { + "details": "accepts ownership of the anchor after an ownership transfer also activates the converter can only be called by the contract owner note that prior to version 28, you should use 'acceptTokenOwnership' instead" + }, + "acceptOwnership()": { + "details": "used by a new owner to accept an ownership transfer" + }, + "acceptTokenOwnership()": { + "details": "deprecated, backward compatibility" + }, + "activate(address,address,address)": { + "details": "sets the pool's primary reserve token / price oracles and activates the pool\r each oracle must be able to provide the rate for each reserve token\r note that the oracle must be whitelisted prior to the call\r can only be called by the owner while the pool is inactive\r ", + "params": { + "_primaryReserveOracle": "address of a chainlink price oracle for the primary reserve token\r", + "_primaryReserveToken": "address of the pool's primary reserve token\r", + "_secondaryReserveOracle": "address of a chainlink price oracle for the secondary reserve token\r" + } + }, + "addLiquidity(address,uint256,uint256)": { + "details": "increases the pool's liquidity and mints new shares in the pool to the caller\r ", + "params": { + "_amount": "amount of liquidity to add\r", + "_minReturn": "minimum return-amount of pool tokens\r ", + "_reserveToken": "address of the reserve token to add liquidity to\r" + }, + "return": "amount of pool tokens minted\r" + }, + "addReserve(address,uint32)": { + "details": "defines a new reserve token for the converter\r can only be called by the owner while the converter is inactive and\r 2 reserves aren't defined yet\r ", + "params": { + "_token": "address of the reserve token\r", + "_weight": "reserve weight, represented in ppm, 1-1000000\r" + } + }, + "amplificationFactor()": { + "details": "returns the liquidity amplification factor in the pool\r ", + "return": "liquidity amplification factor\r" + }, + "connectorTokenCount()": { + "details": "deprecated, backward compatibility" + }, + "connectorTokens(uint256)": { + "details": "deprecated, backward compatibility" + }, + "connectors(address)": { + "details": "deprecated, backward compatibility" + }, + "convert(address,address,uint256,address,address)": { + "details": "converts a specific amount of source tokens to target tokens can only be called by the SovrynSwap network contract", + "params": { + "_amount": "amount of tokens to convert (in units of the source token)", + "_beneficiary": "wallet to receive the conversion result", + "_sourceToken": "source ERC20 token", + "_targetToken": "target ERC20 token", + "_trader": "address of the caller who executed the conversion" + }, + "return": "amount of tokens received (in units of the target token)" + }, + "converterType()": { + "details": "returns the converter type\r ", + "return": "see the converter types in the the main contract doc\r" + }, + "disableMaxStakedBalances()": { + "details": "disables the max staked balance mechanism\r available as a temporary mechanism during the pilot\r once disabled, it cannot be re-enabled\r can only be called by the owner\r" + }, + "effectiveReserveWeights()": { + "details": "returns the effective reserve tokens weights\r ", + "return": "reserve1 weight\rreserve2 weight\r" + }, + "effectiveTokensRate()": { + "details": "returns the effective rate of 1 primary token in secondary tokens\r ", + "return": "rate of 1 primary token in secondary tokens (numerator)\rrate of 1 primary token in secondary tokens (denominator)\r" + }, + "getConnectorBalance(address)": { + "details": "deprecated, backward compatibility" + }, + "getReturn(address,address,uint256)": { + "details": "deprecated, backward compatibility" + }, + "hasETHReserve()": { + "details": "checks whether or not the converter has an ETH reserve", + "return": "true if the converter has an ETH reserve, false otherwise" + }, + "isActive()": { + "details": "returns true if the converter is active, false otherwise\r ", + "return": "true if the converter is active, false otherwise\r" + }, + "isV28OrHigher()": { + "details": "checks whether or not the converter version is 28 or higher", + "return": "true, since the converter version is 28 or higher" + }, + "liquidationLimit(address)": { + "details": "returns the maximum number of pool tokens that can currently be liquidated\r ", + "params": { + "_poolToken": "address of the pool token\r " + }, + "return": "liquidation limit\r" + }, + "poolToken(address)": { + "details": "returns the pool token address by the reserve token address\r ", + "params": { + "_reserveToken": "reserve token address\r " + }, + "return": "pool token address\r" + }, + "removeLiquidity(address,uint256,uint256)": { + "details": "decreases the pool's liquidity and burns the caller's shares in the pool\r ", + "params": { + "_amount": "amount of pool tokens to burn\r", + "_minReturn": "minimum return-amount of reserve tokens\r ", + "_poolToken": "address of the pool token\r" + }, + "return": "amount of liquidity removed\r" + }, + "removeLiquidityReturnAndFee(address,uint256)": { + "details": "calculates the amount of reserve tokens entitled for a given amount of pool tokens\r note that a fee is applied according to the equilibrium level of the primary reserve token\r ", + "params": { + "_amount": "amount of pool tokens\r ", + "_poolToken": "address of the pool token\r" + }, + "return": "amount after fee and fee, in reserve token units\r" + }, + "reserveAmplifiedBalance(address)": { + "details": "returns the amplified balance of a given reserve token\r ", + "params": { + "_reserveToken": "reserve token address\r " + }, + "return": "amplified balance\r" + }, + "reserveBalance(address)": { + "details": "returns the reserve's balance note that prior to version 17, you should use 'getConnectorBalance' instead", + "params": { + "_reserveToken": "reserve token contract address" + }, + "return": "reserve balance" + }, + "reserveStakedBalance(address)": { + "details": "returns the staked balance of a given reserve token\r ", + "params": { + "_reserveToken": "reserve token address\r " + }, + "return": "staked balance\r" + }, + "reserveTokenCount()": { + "details": "returns the number of reserve tokens defined note that prior to version 17, you should use 'connectorTokenCount' instead", + "return": "number of reserve tokens" + }, + "reserveWeight(address)": { + "details": "returns the reserve's weight added in version 28", + "params": { + "_reserveToken": "reserve token contract address" + }, + "return": "reserve weight" + }, + "restoreRegistry()": { + "details": "restores the previous contract-registry" + }, + "restrictRegistryUpdate(bool)": { + "details": "restricts the permission to update the contract-registry", + "params": { + "_onlyOwnerCanUpdateRegistry": "indicates whether or not permission is restricted to owner only" + } + }, + "setConversionFee(uint32)": { + "details": "updates the current conversion fee can only be called by the contract owner", + "params": { + "_conversionFee": "new conversion fee, represented in ppm" + } + }, + "setConversionWhitelist(address)": { + "details": "allows the owner to update & enable the conversion whitelist contract address when set, only addresses that are whitelisted are actually allowed to use the converter note that the whitelist check is actually done by the SovrynSwapNetwork contract", + "params": { + "_whitelist": "address of a whitelist contract" + } + }, + "setDynamicFeeFactor(uint256)": { + "details": "updates the current dynamic fee factor\r can only be called by the contract owner\r ", + "params": { + "_dynamicFeeFactor": "new dynamic fee factor, represented in ppm\r" + } + }, + "setMaxStakedBalances(uint256,uint256)": { + "details": "sets the max staked balance for both reserves\r available as a temporary mechanism during the pilot\r can only be called by the owner\r ", + "params": { + "_reserve1MaxStakedBalance": "max staked balance for reserve 1\r", + "_reserve2MaxStakedBalance": "max staked balance for reserve 2\r" + } + }, + "setReserveStakedBalance(address,uint256)": { + "details": "sets the reserve's staked balance\r can only be called by the upgrader contract while the upgrader is the owner\r ", + "params": { + "_balance": "new reserve staked balance\r", + "_reserveToken": "reserve token address\r" + } + }, + "targetAmountAndFee(address,address,uint256)": { + "details": "returns the expected target amount of converting one reserve to another along with the fee\r ", + "params": { + "_amount": "amount of tokens received from the user\r ", + "_sourceToken": "contract address of the source reserve token\r", + "_targetToken": "contract address of the target reserve token\r" + }, + "return": "expected target amount\rexpected fee\r" + }, + "token()": { + "details": "deprecated since version 28, backward compatibility - use only for earlier versions" + }, + "transferAnchorOwnership(address)": { + "details": "transfers the anchor ownership the new owner needs to accept the transfer can only be called by the converter upgrder while the upgrader is the owner note that prior to version 28, you should use 'transferAnchorOwnership' instead", + "params": { + "_newOwner": "new token owner" + } + }, + "transferOwnership(address)": { + "details": "allows transferring the contract ownership the new owner still needs to accept the transfer can only be called by the contract owner", + "params": { + "_newOwner": "new contract owner" + } + }, + "transferTokenOwnership(address)": { + "details": "deprecated, backward compatibility" + }, + "updateRegistry()": { + "details": "updates to the new contract-registry" + }, + "upgrade()": { + "details": "upgrades the converter to the latest version can only be called by the owner note that the owner needs to call acceptOwnership on the new converter after the upgrade" + }, + "withdrawETH(address)": { + "details": "withdraws ether can only be called by the owner if the converter is inactive or by upgrader contract can only be called after the upgrader contract has accepted the ownership of this contract can only be called if the converter has an ETH reserve", + "params": { + "_to": "address to send the ETH to" + } + }, + "withdrawFromAnchor(address,address,uint256)": { + "details": "withdraws tokens held by the anchor and sends them to an account can only be called by the owner", + "params": { + "_amount": "amount to withdraw", + "_to": "account to receive the new amount", + "_token": "ERC20 token contract address" + } + }, + "withdrawTokens(address,address,uint256)": { + "details": "withdraws tokens held by the converter and sends them to an account can only be called by the owner note that reserve tokens can only be withdrawn by the owner while the converter is inactive unless the owner is the converter upgrader contract", + "params": { + "_amount": "amount to withdraw", + "_to": "account to receive the new amount", + "_token": "ERC20 token contract address" + } + } + } + }, + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "608060405260016004819055600980546001606060020a03191690556015805460ff19169091179055620111706016553480156200003c57600080fd5b50604051606080620055ba83398101604090815281516020830151919092015160008054600160a060020a0319163317905582828282828281806200008a8164010000000062000137810204565b5060028054600160a060020a03909216600160a060020a031992831681179091556003805490921617905582620000ca8164010000000062000137810204565b81620000df81640100000000620001b2810204565b505060058054600160a060020a03909416600160a060020a031990941693909317909255506009805463ffffffff9092166401000000000267ffffffff0000000019909216919091179055506200022b945050505050565b600160a060020a0381161515620001af57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b50565b620f424063ffffffff82161115620001af57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f4552525f494e56414c49445f434f4e56455253494f4e5f464545000000000000604482015290519081900360640190fd5b61537f806200023b6000396000f3006080604052600436106103125763ffffffff60e060020a6000350416625e319c81146103b0578063024c7ec7146103e35780630337e3fb146103fd5780630a55fb3d1461042e5780630c7d5cd8146104575780630e53aae914610485578063119b90cd146104da57806312c2aca41461050757806316912f961461051c57806319b64015146105315780631cfab290146105495780631e1401f81461056a57806321e6b53d146105ad57806322f3e2d4146105ce5780632630c12f146105e35780632bd3c107146105f85780632bf0c985146106195780632fe8a6ad1461063a57806338a5e0161461064f578063395900d4146106645780633e8ff43f1461068e57806346749468146106ba57806349d10b64146106d55780634af80f0e146106ea57806354fd4d501461070b57806355776b77146107205780635768adcf1461073a578063579cd3ca1461075b5780635e35359e1461077057806361cd756e1461079a57806367b6d57c146107af57806369067d95146107d0578063690d8320146107f457806369d1354a146108155780636a49d2c41461082d57806371f52bf31461085757806379ba50971461086c5780637b103999146108815780638da5cb5b1461089657806394c275ad146108ab57806398a71dcb146108c05780639b99a8e2146108e1578063a32bff44146108f6578063af94b8d81461090b578063b4a176d314610935578063bf7545581461094a578063bf7da6ba1461095f578063c3321fb014610983578063c45d3d9214610998578063cdc91c69146109ad578063d031370b146109c2578063d260529c146109da578063d3fb73b4146109ef578063d4ee1d9014610a04578063d55ec69714610a19578063d64c5a1a14610a2e578063d66bd52414610a59578063d895951214610a7a578063db2830a414610a9b578063dc75eb9a14610ab0578063dc8de37914610ac5578063e38192e314610ae6578063e8104af914610b0d578063e8dc12ff14610b22578063ec2240f514610b4c578063ecbca55d14610b61578063f2fde38b14610b7f578063f9cddde214610ba0578063fc0c546a14610bb5575b6000805160206152f483398151915260005260086020527f353c2eb9e53a4a4a6d45d72082ff2e9dc829d1125618772a83eb0e7f86632c43546601000000000000900460ff1615156103ae576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f5245534552564500000000000000000000000000604482015290519081900360640190fd5b005b3480156103bc57600080fd5b506103d1600160a060020a0360043516610bca565b60408051918252519081900360200190f35b3480156103ef57600080fd5b506103ae6004351515610bf3565b34801561040957600080fd5b50610412610c3b565b60408051600160a060020a039092168252519081900360200190f35b34801561043a57600080fd5b50610443610c4a565b604080519115158252519081900360200190f35b34801561046357600080fd5b5061046c610c53565b6040805163ffffffff9092168252519081900360200190f35b34801561049157600080fd5b506104a6600160a060020a0360043516610c5f565b6040805195865263ffffffff9094166020860152911515848401521515606084015215156080830152519081900360a00190f35b3480156104e657600080fd5b506103ae600160a060020a0360043581169060243581169060443516610cfa565b34801561051357600080fd5b50610443611464565b34801561052857600080fd5b506103ae6114ad565b34801561053d57600080fd5b506104126004356114c1565b34801561055557600080fd5b5061046c600160a060020a03600435166114ed565b34801561057657600080fd5b50610594600160a060020a036004358116906024351660443561151f565b6040805192835260208301919091528051918290030190f35b3480156105b957600080fd5b506103ae600160a060020a0360043516611539565b3480156105da57600080fd5b5061044361154d565b3480156105ef57600080fd5b50610412611582565b34801561060457600080fd5b506103d1600160a060020a03600435166115a1565b34801561062557600080fd5b506103d1600160a060020a03600435166115f6565b34801561064657600080fd5b506104436116d9565b34801561065b57600080fd5b506103ae6116fa565b34801561067057600080fd5b506103ae600160a060020a036004358116906024351660443561170c565b34801561069a57600080fd5b506106a36117a7565b6040805161ffff9092168252519081900360200190f35b3480156106c657600080fd5b506103ae6004356024356117ac565b3480156106e157600080fd5b506103ae611830565b3480156106f657600080fd5b506103ae600160a060020a0360043516611a90565b34801561071757600080fd5b506106a3611ac5565b6103d1600160a060020a0360043516602435604435611aca565b34801561074657600080fd5b50610412600160a060020a0360043516612033565b34801561076757600080fd5b5061046c612051565b34801561077c57600080fd5b506103ae600160a060020a0360043581169060243516604435612069565b3480156107a657600080fd5b5061041261217d565b3480156107bb57600080fd5b506103ae600160a060020a036004351661218c565b3480156107dc57600080fd5b50610594600160a060020a036004351660243561222f565b34801561080057600080fd5b506103ae600160a060020a036004351661238a565b34801561082157600080fd5b506103ae60043561248f565b34801561083957600080fd5b506103ae600160a060020a036004351663ffffffff60243516612534565b34801561086357600080fd5b506106a3612593565b34801561087857600080fd5b506103ae61259d565b34801561088d57600080fd5b50610412612651565b3480156108a257600080fd5b50610412612660565b3480156108b757600080fd5b5061046c61266f565b3480156108cc57600080fd5b506103d1600160a060020a0360043516612683565b3480156108ed57600080fd5b506106a3612695565b34801561090257600080fd5b5061059461269b565b34801561091757600080fd5b50610594600160a060020a03600435811690602435166044356126a4565b34801561094157600080fd5b506103ae612848565b34801561095657600080fd5b50610443612874565b34801561096b57600080fd5b506103ae600160a060020a0360043516602435612879565b34801561098f57600080fd5b506103d16128c1565b3480156109a457600080fd5b506104126128c7565b3480156109b957600080fd5b506103ae6128d6565b3480156109ce57600080fd5b5061041260043561292f565b3480156109e657600080fd5b50610443612957565b3480156109fb57600080fd5b5061041261295c565b348015610a1057600080fd5b5061041261296b565b348015610a2557600080fd5b506103ae61297a565b348015610a3a57600080fd5b50610a43612a6f565b6040805160ff9092168252519081900360200190f35b348015610a6557600080fd5b506104a6600160a060020a0360043516612a74565b348015610a8657600080fd5b506103d1600160a060020a0360043516612aba565b348015610aa757600080fd5b50610594612acb565b348015610abc57600080fd5b50610412612af0565b348015610ad157600080fd5b506103d1600160a060020a0360043516612aff565b348015610af257600080fd5b506103d1600160a060020a0360043516602435604435612b28565b348015610b1957600080fd5b506103d1612e8d565b6103d1600160a060020a036004358116906024358116906044359060643581169060843516612e93565b348015610b5857600080fd5b506105946130e6565b348015610b6d57600080fd5b506103ae63ffffffff60043516613166565b348015610b8b57600080fd5b506103ae600160a060020a036004351661325b565b348015610bac57600080fd5b506105946132eb565b348015610bc157600080fd5b506104126132f4565b600081610bd681613303565b5050600160a060020a03166000908152600c602052604090205490565b610bfb613382565b60038054911515740100000000000000000000000000000000000000000274ff000000000000000000000000000000000000000019909216919091179055565b600a54600160a060020a031681565b60155460ff1681565b60095463ffffffff1681565b6000806000806000610c6f61526f565b50505050600160a060020a03929092166000908152600860209081526040808320815160a081018352815480825260019092015463ffffffff811694820185905260ff64010000000082048116151594830194909452650100000000008104841615156060830152660100000000000090049092161515608090920182905295919450919250829190565b6000806000806000610d0a6133d2565b610d12613382565b87610d1c81613303565b87610d268161342f565b87610d308161342f565b89610d3a81613490565b89610d4481613490565b600554604080517f8da5cb5b00000000000000000000000000000000000000000000000000000000815290513092600160a060020a031691638da5cb5b9160048083019260209291908290030181600087803b158015610da357600080fd5b505af1158015610db7573d6000803e3d6000fd5b505050506040513d6020811015610dcd57600080fd5b5051600160a060020a031614610e2d576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f414e43484f525f4e4f545f4f574e4544000000000000000000000000604482015290519081900360640190fd5b610e567f436861696e6c696e6b4f7261636c6557686974656c69737400000000000000006134f0565b995089600160a060020a0316633af32abf8d6040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b158015610eb357600080fd5b505af1158015610ec7573d6000803e3d6000fd5b505050506040513d6020811015610edd57600080fd5b50511515610f35576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f494e56414c49445f4f5241434c450000000000000000000000000000604482015290519081900360640190fd5b89600160a060020a0316633af32abf8c6040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b158015610f9057600080fd5b505af1158015610fa4573d6000803e3d6000fd5b505050506040513d6020811015610fba57600080fd5b50511515611012576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f494e56414c49445f4f5241434c450000000000000000000000000000604482015290519081900360640190fd5b61101a613588565b600a8054600160a060020a031916600160a060020a038f1617905560078054600090811061104457fe5b600091825260209091200154600160a060020a038e8116911614156110a25760078054600190811061107257fe5b600091825260209091200154600b8054600160a060020a031916600160a060020a039092169190911790556110dd565b6007805460009081106110b157fe5b600091825260209091200154600b8054600160a060020a031916600160a060020a039092169190911790555b6111067f436f6e766572746572466163746f7279000000000000000000000000000000006134f0565b600160a060020a031663c977aed261111c6117a7565b6040518263ffffffff1660e060020a028152600401808261ffff1661ffff168152602001915050602060405180830381600087803b15801561115d57600080fd5b505af1158015611171573d6000803e3d6000fd5b505050506040513d602081101561118757600080fd5b8101908080519060200190929190505050985088600160a060020a0316631b27444e8e600b60009054906101000a9004600160a060020a03168f8f6040518563ffffffff1660e060020a0281526004018085600160a060020a0316600160a060020a0316815260200184600160a060020a0316600160a060020a0316815260200183600160a060020a0316600160a060020a0316815260200182600160a060020a0316600160a060020a03168152602001945050505050602060405180830381600087803b15801561125857600080fd5b505af115801561126c573d6000803e3d6000fd5b505050506040513d602081101561128257600080fd5b5051600980546bffffffffffffffffffffffff166c01000000000000000000000000600160a060020a0393841681029190911791829055600a54600b54604080517fae818004000000000000000000000000000000000000000000000000000000008152928616600484015290851660248301528051929093049093169263ae8180049260448083019391928290030181600087803b15801561132457600080fd5b505af1158015611338573d6000803e3d6000fd5b505050506040513d604081101561134e57600080fd5b5080516020909101516010819055600f8290556012919091556013556113726137c4565b601155600a5461138a90600160a060020a0316610bca565b600a549098506113a290600160a060020a0316612aff565b600b549097506113ba90600160a060020a0316612aff565b9550868814156113e55760008811806113d35750600086115b156113e0576113e06137c8565b61140e565b6000881180156113f55750600087115b80156114015750600086115b1561140e5761140e6137c8565b600554600190600160a060020a03166114256117a7565b61ffff167f6b08c2e2c9969e55a647a764db9b554d64dc42f1a704da11a6d5b129ad163f2c60405160405180910390a450505050505050505050505050565b6000805160206152f483398151915260005260086020527f353c2eb9e53a4a4a6d45d72082ff2e9dc829d1125618772a83eb0e7f86632c43546601000000000000900460ff1690565b6114b5613382565b6015805460ff19169055565b60006007828154811015156114d257fe5b600091825260209091200154600160a060020a031692915050565b6000816114f981613303565b5050600160a060020a031660009081526008602052604090206001015463ffffffff1690565b60008061152d8585856126a4565b91509150935093915050565b611541613382565b61154a8161218c565b50565b6000611557613840565b801561157d57506009546c010000000000000000000000009004600160a060020a031615155b905090565b6009546c010000000000000000000000009004600160a060020a031681565b6000816115ad81613303565b6115ef6115b984612aff565b600160a060020a0385166000908152600c60205260409020546115e390601363ffffffff6138da16565b9063ffffffff61395e16565b9392505050565b600080600080600085600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561163c57600080fd5b505af1158015611650573d6000803e3d6000fd5b505050506040513d602081101561166657600080fd5b5051600160a060020a038088166000908152600e602052604090205491955016925061169183612aff565b600160a060020a0384166000908152600c602052604090205490925090506116cf816116c3848763ffffffff6138da16565b9063ffffffff6139bb16565b9695505050505050565b60035474010000000000000000000000000000000000000000900460ff1681565b611702613382565b61170a6128d6565b565b611714613382565b600554604080517f5e35359e000000000000000000000000000000000000000000000000000000008152600160a060020a03868116600483015285811660248301526044820185905291519190921691635e35359e91606480830192600092919082900301818387803b15801561178a57600080fd5b505af115801561179e573d6000803e3d6000fd5b50505050505050565b600290565b6117b4613382565b8160146000600760008154811015156117c957fe5b6000918252602080832090910154600160a060020a031683528201929092526040018120919091556007805483926014929091600190811061180757fe5b6000918252602080832090910154600160a060020a031683528201929092526040019020555050565b60008054600160a060020a0316331480611865575060035474010000000000000000000000000000000000000000900460ff16155b15156118a9576040805160e560020a62461bcd0281526020600482015260116024820152600080516020615314833981519152604482015290519081900360640190fd5b6118d27f436f6e74726163745265676973747279000000000000000000000000000000006134f0565b600254909150600160a060020a038083169116148015906118fb5750600160a060020a03811615155b1515611951576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e56414c49445f5245474953545259000000000000000000000000604482015290519081900360640190fd5b604080517fbb34534c0000000000000000000000000000000000000000000000000000000081527f436f6e747261637452656769737472790000000000000000000000000000000060048201529051600091600160a060020a0384169163bb34534c9160248082019260209290919082900301818787803b1580156119d557600080fd5b505af11580156119e9573d6000803e3d6000fd5b505050506040513d60208110156119ff57600080fd5b5051600160a060020a03161415611a60576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e56414c49445f5245474953545259000000000000000000000000604482015290519081900360640190fd5b6002805460038054600160a060020a03808416600160a060020a0319928316179092559091169216919091179055565b611a98613382565b80611aa28161342f565b5060068054600160a060020a031916600160a060020a0392909216919091179055565b602081565b6000806000806000611ada613a29565b6002600455611ae7613a83565b87611af181613303565b87611afb81613ae1565b87611b0581613ae1565b600160a060020a038b166000805160206152f483398151915214611b2a573415611b2e565b8934145b1515611b84576040805160e560020a62461bcd02815260206004820152601760248201527f4552525f4554485f414d4f554e545f4d49534d41544348000000000000000000604482015290519081900360640190fd5b611b8c613b39565b600160a060020a038b166000805160206152f48339815191521415611c2e576000805160206152f483398151915260005260086020527f353c2eb9e53a4a4a6d45d72082ff2e9dc829d1125618772a83eb0e7f86632c4254611bf4903463ffffffff613b7b16565b6000805160206152f483398151915260005260086020527f353c2eb9e53a4a4a6d45d72082ff2e9dc829d1125618772a83eb0e7f86632c42555b600160a060020a038b166000908152600c602052604090205460155490975060ff1615611cf757600160a060020a038b166000908152601460205260409020541580611ca15750600160a060020a038b16600090815260146020526040902054611c9e888c63ffffffff61395e16565b11155b1515611cf7576040805160e560020a62461bcd02815260206004820152601e60248201527f4552525f4d41585f5354414b45445f42414c414e43455f524541434845440000604482015290519081900360640190fd5b600160a060020a03808c166000908152600d602090815260408083205481517f18160ddd00000000000000000000000000000000000000000000000000000000815291519416995089936318160ddd93600480840194938390030190829087803b158015611d6457600080fd5b505af1158015611d78573d6000803e3d6000fd5b505050506040513d6020811015611d8e57600080fd5b50519450600160a060020a038b166000805160206152f483398151915214611dbc57611dbc8b33308d613bdb565b600160a060020a038b16600090815260086020526040902054611de5908b63ffffffff61395e16565b600160a060020a038c16600090815260086020526040902055611e0e878b63ffffffff61395e16565b600160a060020a038c166000908152600c60205260408120919091559350861580611e37575084155b15611e4457899350611e5b565b611e58876116c38c8863ffffffff6138da16565b93505b88841015611eb3576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f52455455524e5f544f4f5f4c4f570000000000000000000000000000604482015290519081900360640190fd5b600554604080517fc6c3bbe6000000000000000000000000000000000000000000000000000000008152600160a060020a038981166004830152336024830152604482018890529151919092169163c6c3bbe691606480830192600092919082900301818387803b158015611f2757600080fd5b505af1158015611f3b573d6000803e3d6000fd5b50505050611f476137c8565b600160a060020a038b16337f4a1a2a6176e9646d9e3157f7c2ab3c499f18337c0b0828cfb28e0a61de4a11f78c611f848b8263ffffffff61395e16565b611f948a8a63ffffffff61395e16565b60408051938452602084019290925282820152519081900360600190a3611fcb86611fc5878763ffffffff61395e16565b8d613cc3565b61202060076000815481101515611fde57fe5b60009182526020909120015460078054600160a060020a0390921691600190811061200557fe5b6000918252602082200154600160a060020a03169080613d23565b5050600160045550979650505050505050565b600160a060020a039081166000908152600d60205260409020541690565b60095468010000000000000000900463ffffffff1681565b6000612073613a29565b6002600455612080613382565b6120976000805160206152d48339815191526134f0565b600160a060020a0385166000908152600860205260409020600101549091506601000000000000900460ff1615806120d457506120d261154d565b155b806120ec5750600054600160a060020a038281169116145b1515612130576040805160e560020a62461bcd0281526020600482015260116024820152600080516020615314833981519152604482015290519081900360640190fd5b61213b848484613d8f565b600160a060020a0384166000908152600860205260409020600101546601000000000000900460ff16156121725761217284613dc0565b505060016004555050565b600354600160a060020a031681565b612194613382565b6000805160206152d48339815191526121ac81613eb4565b600554604080517ff2fde38b000000000000000000000000000000000000000000000000000000008152600160a060020a0385811660048301529151919092169163f2fde38b91602480830192600092919082900301818387803b15801561221357600080fd5b505af1158015612227573d6000803e3d6000fd5b505050505050565b6000806000806000806000806000808b600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561227c57600080fd5b505af1158015612290573d6000803e3d6000fd5b505050506040513d60208110156122a657600080fd5b5051600160a060020a03808e166000908152600e60209081526040808320549093168252600c905220549098509650878b101561237157600a54600160a060020a03166000908152600c602052604090205461230990601463ffffffff6138da16565b600a5490965061232190600160a060020a03166115a1565b9450848610612331578486612334565b85855b909450925061234d886116c38d8a63ffffffff6138da16565b9150612363836116c3848763ffffffff6138da16565b99505088810397508861237b565b9598506000975088955b50505050505050509250929050565b6000612394613a29565b60026004556123a1613382565b6000805160206152f48339815191526123b981613303565b6123d06000805160206152d48339815191526134f0565b91506123da61154d565b15806123f35750600054600160a060020a038381169116145b1515612437576040805160e560020a62461bcd0281526020600482015260116024820152600080516020615314833981519152604482015290519081900360640190fd5b604051600160a060020a03841690303180156108fc02916000818181858888f1935050505015801561246d573d6000803e3d6000fd5b506124856000805160206152f4833981519152613dc0565b5050600160045550565b612497613382565b620186a08111156124f2576040805160e560020a62461bcd02815260206004820152601e60248201527f4552525f494e56414c49445f44594e414d49435f4645455f464143544f520000604482015290519081900360640190fd5b601654604080519182526020820183905280517f382fd3516344712a511dcd464ff8e6ab54139d6a28f64087a3253353ee7a56799281900390910190a1601655565b600261253e612695565b61ffff1610612585576040805160e560020a62461bcd0281526020600482015260196024820152600080516020615334833981519152604482015290519081900360640190fd5b61258f8282613f0a565b5050565b600061157d612695565b600154600160a060020a031633146125ed576040805160e560020a62461bcd0281526020600482015260116024820152600080516020615314833981519152604482015290519081900360640190fd5b60015460008054604051600160a060020a0393841693909116917f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91a36001805460008054600160a060020a0319908116600160a060020a03841617909155169055565b600254600160a060020a031681565b600054600160a060020a031681565b600954640100000000900463ffffffff1681565b60146020526000908152604090205481565b60075490565b600f5460105482565b6000806000806126b261529d565b6000806000806126c0613a83565b6126c98c613303565b6126d28b613303565b600160a060020a038c8116908c161415612736576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f53414d455f534f555243455f54415247455400000000000000000000604482015290519081900360640190fd5b61273e6137c4565b60115414156127e557600f604080519081016040529081600082015481526020016001820154815250509450600860008d600160a060020a0316600160a060020a0316815260200190815260200160002060010160009054906101000a900463ffffffff169650600860008c600160a060020a0316600160a060020a0316815260200190815260200160002060010160009054906101000a900463ffffffff169550612825565b6127ed61413c565b94506127f885614380565b600a549195509350600160a060020a038d81169116141561281e57839650829550612825565b8296508395505b6128338c8c8989898f6144aa565b919e919d50909b505050505050505050505050565b612850613382565b60035460028054600160a060020a031916600160a060020a03909216919091179055565b600181565b612881613382565b6000805160206152d483398151915261289981613eb4565b826128a381613303565b5050600160a060020a039091166000908152600c6020526040902055565b60115481565b600654600160a060020a031681565b60016128e0612695565b61ffff1611612927576040805160e560020a62461bcd0281526020600482015260196024820152600080516020615334833981519152604482015290519081900360640190fd5b61170a614646565b600780548290811061293d57fe5b600091825260209091200154600160a060020a0316905081565b600190565b600554600160a060020a031681565b600154600160a060020a031681565b6000612984613382565b61299b6000805160206152d48339815191526134f0565b600554909150600090600160a060020a03166129b56117a7565b61ffff167f6b08c2e2c9969e55a647a764db9b554d64dc42f1a704da11a6d5b129ad163f2c60405160405180910390a46129ee8161325b565b604080517f90f58c96000000000000000000000000000000000000000000000000000000008152602060048201529051600160a060020a038316916390f58c9691602480830192600092919082900301818387803b158015612a4f57600080fd5b505af1158015612a63573d6000803e3d6000fd5b5050505061154a61259d565b601490565b6008602052600090815260409020805460019091015463ffffffff81169060ff640100000000820481169165010000000000810482169166010000000000009091041685565b6000612ac582612aff565b92915050565b600080612ad661529d565b612ade61413c565b80516020909101519094909350915050565b600b54600160a060020a031681565b600081612b0b81613303565b5050600160a060020a031660009081526008602052604090205490565b600080600080600080612b39613a29565b6002600455612b46613a83565b88612b5081614712565b88612b5a81613ae1565b88612b6481613ae1565b612b6c613b39565b8b600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015612baa57600080fd5b505af1158015612bbe573d6000803e3d6000fd5b505050506040513d6020811015612bd457600080fd5b50519750612be28c8c61222f565b50965089871015612c3d576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f52455455524e5f544f4f5f4c4f570000000000000000000000000000604482015290519081900360640190fd5b600e60008d600160a060020a0316600160a060020a0316815260200190815260200160002060009054906101000a9004600160a060020a03169550600560009054906101000a9004600160a060020a0316600160a060020a031663f6b911bc8d338e6040518463ffffffff1660e060020a0281526004018084600160a060020a0316600160a060020a0316815260200183600160a060020a0316600160a060020a031681526020018281526020019350505050600060405180830381600087803b158015612d0a57600080fd5b505af1158015612d1e573d6000803e3d6000fd5b505050600160a060020a038716600090815260086020526040902054612d4b91508863ffffffff613b7b16565b600160a060020a038716600090815260086020908152604080832093909355600c90522054612d80908863ffffffff613b7b16565b600160a060020a0387166000818152600c602052604090208290559095506000805160206152f48339815191521415612de657604051339088156108fc029089906000818181858888f19350505050158015612de0573d6000803e3d6000fd5b50612df1565b612df1863389614783565b612df96137c8565b612e09888c63ffffffff613b7b16565b60408051898152602081018890528082018390529051919550600160a060020a0388169133917fbc7d19d505c7ec4db83f3b51f19fb98c4c8a99922e7839d1ee608dfbee29501b919081900360600190a3612e658c8588613cc3565b612e7860076000815481101515611fde57fe5b50506001600455509298975050505050505050565b60165481565b6000612e9d613a29565b60026004557f536f7672796e537761704e6574776f726b000000000000000000000000000000612ecc81613eb4565b600160a060020a038781169087161415612f30576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f53414d455f534f555243455f54415247455400000000000000000000604482015290519081900360640190fd5b600654600160a060020a031615806130735750600654604080517f3af32abf000000000000000000000000000000000000000000000000000000008152600160a060020a03878116600483015291519190921691633af32abf9160248083019260209291908290030181600087803b158015612fab57600080fd5b505af1158015612fbf573d6000803e3d6000fd5b505050506040513d6020811015612fd557600080fd5b505180156130735750600654604080517f3af32abf000000000000000000000000000000000000000000000000000000008152600160a060020a03868116600483015291519190921691633af32abf9160248083019260209291908290030181600087803b15801561304657600080fd5b505af115801561305a573d6000803e3d6000fd5b505050506040513d602081101561307057600080fd5b50515b15156130c9576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f4e4f545f57484954454c495354454400000000000000000000000000604482015290519081900360640190fd5b6130d6878787878761483a565b6001600455979650505050505050565b6000806130f161529d565b6000806130fc61413c565b925061310783614380565b915091506007600081548110151561311b57fe5b600091825260209091200154600a54600160a060020a03908116911614156131505763ffffffff80831695508116935061315f565b63ffffffff8082169550821693505b5050509091565b61316e613382565b60095463ffffffff640100000000909104811690821611156131da576040805160e560020a62461bcd02815260206004820152601a60248201527f4552525f494e56414c49445f434f4e56455253494f4e5f464545000000000000604482015290519081900360640190fd5b6009546040805163ffffffff6801000000000000000090930483168152918316602083015280517f81cd2ffb37dd237c0e4e2a3de5265fcf9deb43d3e7801e80db9f1ccfba7ee6009281900390910190a16009805463ffffffff90921668010000000000000000026bffffffff000000000000000019909216919091179055565b613263613382565b600054600160a060020a03828116911614156132c9576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f53414d455f4f574e4552000000000000000000000000000000000000604482015290519081900360640190fd5b60018054600160a060020a031916600160a060020a0392909216919091179055565b60125460135482565b600554600160a060020a031690565b600160a060020a0381166000908152600860205260409020600101546601000000000000900460ff16151561154a576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f5245534552564500000000000000000000000000604482015290519081900360640190fd5b600054600160a060020a0316331461170a576040805160e560020a62461bcd0281526020600482015260116024820152600080516020615314833981519152604482015290519081900360640190fd5b6133da61154d565b1561170a576040805160e560020a62461bcd02815260206004820152600a60248201527f4552525f41435449564500000000000000000000000000000000000000000000604482015290519081900360640190fd5b600160a060020a03811630141561154a576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f414444524553535f49535f53454c4600000000000000000000000000604482015290519081900360640190fd5b600160a060020a038116151561154a576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b600254604080517fbb34534c000000000000000000000000000000000000000000000000000000008152600481018490529051600092600160a060020a03169163bb34534c91602480830192602092919082900301818787803b15801561355657600080fd5b505af115801561356a573d6000803e3d6000fd5b505050506040513d602081101561358057600080fd5b505192915050565b60006060600080600080600560009054906101000a9004600160a060020a0316955085600160a060020a0316636d3e313e6040518163ffffffff1660e060020a028152600401600060405180830381600087803b1580156135e857600080fd5b505af11580156135fc573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561362557600080fd5b81019080805164010000000081111561363d57600080fd5b8201602081018481111561365057600080fd5b815185602082028301116401000000008211171561366d57600080fd5b505080516007549199501597509550600094505050505b828210156122275783156137035785600160a060020a0316639cbf9e366040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156136d057600080fd5b505af11580156136e4573d6000803e3d6000fd5b505050506040513d60208110156136fa57600080fd5b5051905061371e565b848281518110151561371157fe5b9060200190602002015190505b80600d600060078581548110151561373257fe5b600091825260208083209190910154600160a060020a03908116845290830193909352604090910190208054600160a060020a03191692909116919091179055600780548390811061378057fe5b6000918252602080832090910154600160a060020a038481168452600e90925260409092208054600160a060020a0319169190921617905560019190910190613684565b4290565b60408051808201909152600f548152601054602082015260009081906137ed90614380565b600a54600160a060020a039081166000908152600860205260408082206001908101805463ffffffff97881663ffffffff1991821617909155600b54909416835291200180549290931691161790555050565b600030600160a060020a0316600560009054906101000a9004600160a060020a0316600160a060020a0316638da5cb5b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561389f57600080fd5b505af11580156138b3573d6000803e3d6000fd5b505050506040513d60208110156138c957600080fd5b5051600160a060020a031614905090565b6000808315156138ed5760009150613957565b508282028284828115156138fd57fe5b0414613953576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b8091505b5092915050565b600082820183811015613953576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b600080808311613a15576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f4449564944455f42595f5a45524f0000000000000000000000000000604482015290519081900360640190fd5b8284811515613a2057fe5b04949350505050565b60045460011461170a576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f5245454e5452414e4359000000000000000000000000000000000000604482015290519081900360640190fd5b613a8b61154d565b151561170a576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f494e4143544956450000000000000000000000000000000000000000604482015290519081900360640190fd5b6000811161154a576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f5a45524f5f56414c5545000000000000000000000000000000000000604482015290519081900360640190fd5b60075460005b8181101561258f57613b73600782815481101515613b5957fe5b600091825260209091200154600160a060020a0316613dc0565b600101613b3f565b600081831015613bd5576040805160e560020a62461bcd02815260206004820152600d60248201527f4552525f554e444552464c4f5700000000000000000000000000000000000000604482015290519081900360640190fd5b50900390565b604080517f7472616e7366657246726f6d28616464726573732c616464726573732c75696e81527f74323536290000000000000000000000000000000000000000000000000000006020808301919091528251918290036025018220600160a060020a038088166024850152861660448401526064808401869052845180850390910181526084909301909352810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1990931692909217909152613cbd90859061492d565b50505050565b600160a060020a038082166000818152600c6020908152604091829020548251908152908101869052815192938716927f77f29993cf2c084e726f7e802da0719d6a0ade3e204badc7a3ffd57ecb768c24929181900390910190a3505050565b613d2b61529d565b613d37858585856149bb565b805160208083015160408051938452918301528051929350600160a060020a0380881693908916927f77f29993cf2c084e726f7e802da0719d6a0ade3e204badc7a3ffd57ecb768c2492908290030190a35050505050565b613d97613382565b82613da181613490565b82613dab81613490565b83613db58161342f565b612227868686614783565b80613dca81613303565b600160a060020a0382166000805160206152f48339815191521415613e0a57600160a060020a03821660009081526008602052604090203031905561258f565b604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a038416916370a082319160248083019260209291908290030181600087803b158015613e6b57600080fd5b505af1158015613e7f573d6000803e3d6000fd5b505050506040513d6020811015613e9557600080fd5b5051600160a060020a0383166000908152600860205260409020555050565b613ebd816134f0565b600160a060020a0316331461154a576040805160e560020a62461bcd0281526020600482015260116024820152600080516020615314833981519152604482015290519081900360640190fd5b6000613f14613382565b613f1c6133d2565b82613f2681613490565b83613f308161342f565b83613f3a81614a83565b600554600160a060020a03878116911614801590613f7e5750600160a060020a0386166000908152600860205260409020600101546601000000000000900460ff16155b1515613fd4576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f5245534552564500000000000000000000000000604482015290519081900360640190fd5b60095463ffffffff908116620f4240038116908616111561403f576040805160e560020a62461bcd02815260206004820152601a60248201527f4552525f494e56414c49445f524553455256455f574549474854000000000000604482015290519081900360640190fd5b61ffff61404a612695565b61ffff1610614091576040805160e560020a62461bcd0281526020600482015260196024820152600080516020615334833981519152604482015290519081900360640190fd5b505050600160a060020a0390921660008181526008602052604081208181556001908101805466ff0000000000001963ffffffff80881663ffffffff1993841617919091166601000000000000179092556007805493840181559093527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c6889091018054600160a060020a03191690931790925560098054808416909401909216921691909117905550565b61414461529d565b60008060008061415261529d565b61415a61529d565b600954600a54600b54604080517fb1772d7a000000000000000000000000000000000000000000000000000000008152600160a060020a0393841660048201529183166024830152516000938493849384936c010000000000000000000000009093049091169163b1772d7a9160448082019260609290919082900301818787803b1580156141e857600080fd5b505af11580156141fc573d6000803e3d6000fd5b505050506040513d606081101561421257600080fd5b5080516020820151604090920151601154919c50919a5090985088111561424f5760408051908101604052808b81526020018a8152509a50614373565b60115461425a6137c4565b0396508615156142825760408051808201909152600f54815260105460208201529a50614373565b61025887106142a95760408051808201909152601254815260135460208201529a50614373565b604080518082018252600f548152601054602080830191825283518085019094526012548085526013549185019190915290519198509196506142f19163ffffffff6138da16565b6020860151875191955061430b919063ffffffff6138da16565b9250614335614320858963ffffffff6138da16565b6115e3856102588b900363ffffffff6138da16565b9150614364610258614358876020015189602001516138da90919063ffffffff16565b9063ffffffff6138da16565b90506143708282614af8565b9a505b5050505050505050505090565b600a54600160a060020a03166000818152600c60205260408120549091829190829081906143ad906115a1565b600b549092506143c590600160a060020a03166115a1565b90506143f07f536f7672796e53776170466f726d756c610000000000000000000000000000006134f0565b600160a060020a031663a11aa1b461440f85601463ffffffff6138da16565b885160208a01516040805160e060020a63ffffffff87160281526004810194909452602484018890526044840187905260648401929092526084830152805160a4808401938290030181600087803b15801561446a57600080fd5b505af115801561447e573d6000803e3d6000fd5b505050506040513d604081101561449457600080fd5b5080516020909101519095509350505050915091565b60008080808063ffffffff891615156144e257600160a060020a038b1660009081526008602052604090206001015463ffffffff1698505b63ffffffff8816151561451457600160a060020a038a1660009081526008602052604090206001015463ffffffff1697505b61451d8b6115a1565b91506145288a6115a1565b90506145537f536f7672796e53776170466f726d756c610000000000000000000000000000006134f0565b604080517f94491fab0000000000000000000000000000000000000000000000000000000081526004810185905263ffffffff808d166024830152604482018590528b166064820152608481018990529051600160a060020a0392909216916394491fab9160a4808201926020929091908290030181600087803b1580156145da57600080fd5b505af11580156145ee573d6000803e3d6000fd5b505050506040513d602081101561460457600080fd5b5051945061461185614b4d565b9350614624846115e38c8c8c8c8b614b7d565b9250614636858463ffffffff613b7b16565b9450505096509650969350505050565b61464e613382565b6000614658612695565b61ffff161161469f576040805160e560020a62461bcd0281526020600482015260196024820152600080516020615334833981519152604482015290519081900360640190fd5b600560009054906101000a9004600160a060020a0316600160a060020a03166379ba50976040518163ffffffff1660e060020a028152600401600060405180830381600087803b1580156146f257600080fd5b505af1158015614706573d6000803e3d6000fd5b5050505061170a613b39565b600160a060020a038181166000908152600e602052604090205416151561154a576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f494e56414c49445f504f4f4c5f544f4b454e00000000000000000000604482015290519081900360640190fd5b604080517f7472616e7366657228616464726573732c75696e74323536290000000000000081528151908190036019018120600160a060020a038516602483015260448083018590528351808403909101815260649092019092526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff199093169290921790915261483590849061492d565b505050565b6000806000614847613a83565b8761485181613303565b8761485b81613303565b6148668a8a8a614c56565b9094509250600160a060020a0389166000805160206152f483398151915214156148c657604051600160a060020a0387169085156108fc029086906000818181858888f193505050501580156148c0573d6000803e3d6000fd5b506148d1565b6148d1898786614783565b6148df8a8a898b8888614f6b565b600160a060020a03808b16600090815260086020526040808220600190810154938d1683529120015461491f918c918c9163ffffffff9081169116614ff0565b509198975050505050505050565b6149356152b4565b602060405190810160405280600181525090506020818351602085016000875af180151561496257600080fd5b5080511515614835576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f5452414e534645525f4641494c454400000000000000000000000000604482015290519081900360640190fd5b6149c361529d565b6000806149cf876115a1565b91506149da866115a1565b905063ffffffff85161515614a0e57600160a060020a03871660009081526008602052604090206001015463ffffffff1694505b63ffffffff84161515614a4057600160a060020a03861660009081526008602052604090206001015463ffffffff1693505b6040805180820190915280614a5e8363ffffffff808a16906138da16565b8152602001614a768463ffffffff808916906138da16565b9052979650505050505050565b60008163ffffffff16118015614aa25750620f424063ffffffff821611155b151561154a576040805160e560020a62461bcd02815260206004820152601a60248201527f4552525f494e56414c49445f524553455256455f574549474854000000000000604482015290519081900360640190fd5b614b0061529d565b614b0861529d565b828410614b2057614b198484615081565b9150613957565b614b2a8385615081565b604080518082019091526020808301518252825190820152925090505092915050565b600954600090612ac590620f4240906116c390859068010000000000000000900463ffffffff908116906138da16565b600b546000908190600160a060020a0388811691161415614beb57600a54600160a060020a039081166000908152600c6020908152604080832054600b54909416835290912054865191870151601654614be4949363ffffffff808d1693908c169261513e565b9050614c3a565b600a54600160a060020a039081166000908152600c6020908152604080832054600b54909416835290912054865191870151601654614c37949363ffffffff808c1693908d169261513e565b90505b614c4b620f42406116c385846138da565b979650505050505050565b6000806000614c6361529d565b600080600080614c716151aa565b95509550614c848b8b600080898e6144aa565b91955093509150831515614ce2576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f5a45524f5f5441524745545f414d4f554e5400000000000000000000604482015290519081900360640190fd5b614ceb8a612aff565b9050808410614d44576040805160e560020a62461bcd02815260206004820152601a60248201527f4552525f5441524745545f414d4f554e545f544f4f5f48494748000000000000604482015290519081900360640190fd5b600160a060020a038b166000805160206152f48339815191521415614dbf57348914614dba576040805160e560020a62461bcd02815260206004820152601760248201527f4552525f4554485f414d4f554e545f4d49534d41544348000000000000000000604482015290519081900360640190fd5b614ec1565b34158015614e6b575088614e68614dd58d612aff565b8d600160a060020a03166370a08231306040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b158015614e3057600080fd5b505af1158015614e44573d6000803e3d6000fd5b505050506040513d6020811015614e5a57600080fd5b50519063ffffffff613b7b16565b10155b1515614ec1576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f494e56414c49445f414d4f554e540000000000000000000000000000604482015290519081900360640190fd5b614eca8b613dc0565b614eda818563ffffffff613b7b16565b600160a060020a038b16600090815260086020908152604080832093909355600c90522054614f0f908463ffffffff61395e16565b600160a060020a038b166000908152600c60205260409020558515614f5a57600a54600b54614f4d91600160a060020a0390811691166000806149bb565b8051601255602001516013555b509199919850909650505050505050565b7f80000000000000000000000000000000000000000000000000000000000000008110614f9457fe5b60408051848152602081018490528082018390529051600160a060020a038087169288821692918a16917f276856b36cbc45526a0ba64f44611557a2a8b68662c5388e9fe6d72e86e1c8cb9181900360600190a4505050505050565b600080614fff86868686613d23565b61500885612033565b915081600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561504857600080fd5b505af115801561505c573d6000803e3d6000fd5b505050506040513d602081101561507257600080fd5b50519050612227828287613cc3565b61508961529d565b7314484bfeebc29f863424b06f3529a051a31be5998211156150db57604080518082019091526c0c9f2c9cd04674edea4000000080825260208201908504848115156150d157fe5b0490529050612ac5565b6c0c9f2c9cd04674edea400000008311156151285760408051908101604052806c0c9f2c9cd04674edea400000008152602001846c0c9f2c9cd04674edea4000000085028115156150d157fe5b5060408051808201909152918252602082015290565b60008080615156876143588c8963ffffffff6138da16565b915061516c886143588b8863ffffffff6138da16565b90508181111561519857615191816116c360146143588684038963ffffffff6138da16565b925061519d565b600092505b5050979650505050505050565b60006151b461529d565b60006151be61529d565b6151c661529d565b6151ce6137c4565b92508260115414156151fc5760408051808201909152600f548152601054602082015260009550935061315f565b61520461413c565b60408051808201909152600f5480825260105460208301528251929450909250148015615238575080602001518260200151145b15615249576000829450945061315f565b8151600f55602082015160105560118390556152636137c8565b50600194909350915050565b6040805160a08101825260008082526020820181905291810182905260608101829052608081019190915290565b604080518082019091526000808252602082015290565b60206040519081016040528060019060208202803883395091929150505600536f7672796e53776170436f6e76657274657255706772616465720000000000000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee4552525f4143434553535f44454e4945440000000000000000000000000000004552525f494e56414c49445f524553455256455f434f554e5400000000000000a165627a7a72305820d6ceae0fa88e176fcec4250a8a72385cf1ae86e302a34151470ca7997955ccc20029", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x1 PUSH1 0x4 DUP2 SWAP1 SSTORE PUSH1 0x9 DUP1 SLOAD PUSH1 0x1 PUSH1 0x60 PUSH1 0x2 EXP SUB NOT AND SWAP1 SSTORE PUSH1 0x15 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SWAP2 OR SWAP1 SSTORE PUSH3 0x11170 PUSH1 0x16 SSTORE CALLVALUE DUP1 ISZERO PUSH3 0x3C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH1 0x60 DUP1 PUSH3 0x55BA DUP4 CODECOPY DUP2 ADD PUSH1 0x40 SWAP1 DUP2 MSTORE DUP2 MLOAD PUSH1 0x20 DUP4 ADD MLOAD SWAP2 SWAP1 SWAP3 ADD MLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND CALLER OR SWAP1 SSTORE DUP3 DUP3 DUP3 DUP3 DUP3 DUP3 DUP2 DUP1 PUSH3 0x8A DUP2 PUSH5 0x100000000 PUSH3 0x137 DUP2 MUL DIV JUMP JUMPDEST POP PUSH1 0x2 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT SWAP3 DUP4 AND DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x3 DUP1 SLOAD SWAP1 SWAP3 AND OR SWAP1 SSTORE DUP3 PUSH3 0xCA DUP2 PUSH5 0x100000000 PUSH3 0x137 DUP2 MUL DIV JUMP JUMPDEST DUP2 PUSH3 0xDF DUP2 PUSH5 0x100000000 PUSH3 0x1B2 DUP2 MUL DIV JUMP JUMPDEST POP POP PUSH1 0x5 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP5 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 OR SWAP1 SWAP3 SSTORE POP PUSH1 0x9 DUP1 SLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP3 AND PUSH5 0x100000000 MUL PUSH8 0xFFFFFFFF00000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE POP PUSH3 0x22B SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH3 0x1AF JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH3 0xF4240 PUSH4 0xFFFFFFFF DUP3 AND GT ISZERO PUSH3 0x1AF JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F434F4E56455253494F4E5F464545000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x537F DUP1 PUSH3 0x23B PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x312 JUMPI PUSH4 0xFFFFFFFF PUSH1 0xE0 PUSH1 0x2 EXP PUSH1 0x0 CALLDATALOAD DIV AND PUSH3 0x5E319C DUP2 EQ PUSH2 0x3B0 JUMPI DUP1 PUSH4 0x24C7EC7 EQ PUSH2 0x3E3 JUMPI DUP1 PUSH4 0x337E3FB EQ PUSH2 0x3FD JUMPI DUP1 PUSH4 0xA55FB3D EQ PUSH2 0x42E JUMPI DUP1 PUSH4 0xC7D5CD8 EQ PUSH2 0x457 JUMPI DUP1 PUSH4 0xE53AAE9 EQ PUSH2 0x485 JUMPI DUP1 PUSH4 0x119B90CD EQ PUSH2 0x4DA JUMPI DUP1 PUSH4 0x12C2ACA4 EQ PUSH2 0x507 JUMPI DUP1 PUSH4 0x16912F96 EQ PUSH2 0x51C JUMPI DUP1 PUSH4 0x19B64015 EQ PUSH2 0x531 JUMPI DUP1 PUSH4 0x1CFAB290 EQ PUSH2 0x549 JUMPI DUP1 PUSH4 0x1E1401F8 EQ PUSH2 0x56A JUMPI DUP1 PUSH4 0x21E6B53D EQ PUSH2 0x5AD JUMPI DUP1 PUSH4 0x22F3E2D4 EQ PUSH2 0x5CE JUMPI DUP1 PUSH4 0x2630C12F EQ PUSH2 0x5E3 JUMPI DUP1 PUSH4 0x2BD3C107 EQ PUSH2 0x5F8 JUMPI DUP1 PUSH4 0x2BF0C985 EQ PUSH2 0x619 JUMPI DUP1 PUSH4 0x2FE8A6AD EQ PUSH2 0x63A JUMPI DUP1 PUSH4 0x38A5E016 EQ PUSH2 0x64F JUMPI DUP1 PUSH4 0x395900D4 EQ PUSH2 0x664 JUMPI DUP1 PUSH4 0x3E8FF43F EQ PUSH2 0x68E JUMPI DUP1 PUSH4 0x46749468 EQ PUSH2 0x6BA JUMPI DUP1 PUSH4 0x49D10B64 EQ PUSH2 0x6D5 JUMPI DUP1 PUSH4 0x4AF80F0E EQ PUSH2 0x6EA JUMPI DUP1 PUSH4 0x54FD4D50 EQ PUSH2 0x70B JUMPI DUP1 PUSH4 0x55776B77 EQ PUSH2 0x720 JUMPI DUP1 PUSH4 0x5768ADCF EQ PUSH2 0x73A JUMPI DUP1 PUSH4 0x579CD3CA EQ PUSH2 0x75B JUMPI DUP1 PUSH4 0x5E35359E EQ PUSH2 0x770 JUMPI DUP1 PUSH4 0x61CD756E EQ PUSH2 0x79A JUMPI DUP1 PUSH4 0x67B6D57C EQ PUSH2 0x7AF JUMPI DUP1 PUSH4 0x69067D95 EQ PUSH2 0x7D0 JUMPI DUP1 PUSH4 0x690D8320 EQ PUSH2 0x7F4 JUMPI DUP1 PUSH4 0x69D1354A EQ PUSH2 0x815 JUMPI DUP1 PUSH4 0x6A49D2C4 EQ PUSH2 0x82D JUMPI DUP1 PUSH4 0x71F52BF3 EQ PUSH2 0x857 JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x86C JUMPI DUP1 PUSH4 0x7B103999 EQ PUSH2 0x881 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x896 JUMPI DUP1 PUSH4 0x94C275AD EQ PUSH2 0x8AB JUMPI DUP1 PUSH4 0x98A71DCB EQ PUSH2 0x8C0 JUMPI DUP1 PUSH4 0x9B99A8E2 EQ PUSH2 0x8E1 JUMPI DUP1 PUSH4 0xA32BFF44 EQ PUSH2 0x8F6 JUMPI DUP1 PUSH4 0xAF94B8D8 EQ PUSH2 0x90B JUMPI DUP1 PUSH4 0xB4A176D3 EQ PUSH2 0x935 JUMPI DUP1 PUSH4 0xBF754558 EQ PUSH2 0x94A JUMPI DUP1 PUSH4 0xBF7DA6BA EQ PUSH2 0x95F JUMPI DUP1 PUSH4 0xC3321FB0 EQ PUSH2 0x983 JUMPI DUP1 PUSH4 0xC45D3D92 EQ PUSH2 0x998 JUMPI DUP1 PUSH4 0xCDC91C69 EQ PUSH2 0x9AD JUMPI DUP1 PUSH4 0xD031370B EQ PUSH2 0x9C2 JUMPI DUP1 PUSH4 0xD260529C EQ PUSH2 0x9DA JUMPI DUP1 PUSH4 0xD3FB73B4 EQ PUSH2 0x9EF JUMPI DUP1 PUSH4 0xD4EE1D90 EQ PUSH2 0xA04 JUMPI DUP1 PUSH4 0xD55EC697 EQ PUSH2 0xA19 JUMPI DUP1 PUSH4 0xD64C5A1A EQ PUSH2 0xA2E JUMPI DUP1 PUSH4 0xD66BD524 EQ PUSH2 0xA59 JUMPI DUP1 PUSH4 0xD8959512 EQ PUSH2 0xA7A JUMPI DUP1 PUSH4 0xDB2830A4 EQ PUSH2 0xA9B JUMPI DUP1 PUSH4 0xDC75EB9A EQ PUSH2 0xAB0 JUMPI DUP1 PUSH4 0xDC8DE379 EQ PUSH2 0xAC5 JUMPI DUP1 PUSH4 0xE38192E3 EQ PUSH2 0xAE6 JUMPI DUP1 PUSH4 0xE8104AF9 EQ PUSH2 0xB0D JUMPI DUP1 PUSH4 0xE8DC12FF EQ PUSH2 0xB22 JUMPI DUP1 PUSH4 0xEC2240F5 EQ PUSH2 0xB4C JUMPI DUP1 PUSH4 0xECBCA55D EQ PUSH2 0xB61 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0xB7F JUMPI DUP1 PUSH4 0xF9CDDDE2 EQ PUSH2 0xBA0 JUMPI DUP1 PUSH4 0xFC0C546A EQ PUSH2 0xBB5 JUMPI JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x52F4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x0 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH32 0x353C2EB9E53A4A4A6D45D72082FF2E9DC829D1125618772A83EB0E7F86632C43 SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO PUSH2 0x3AE JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245534552564500000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3BC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3D1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0xBCA JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3EF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH1 0x4 CALLDATALOAD ISZERO ISZERO PUSH2 0xBF3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x409 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x412 PUSH2 0xC3B JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x43A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x443 PUSH2 0xC4A JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x463 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x46C PUSH2 0xC53 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x491 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4A6 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0xC5F JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP6 DUP7 MSTORE PUSH4 0xFFFFFFFF SWAP1 SWAP5 AND PUSH1 0x20 DUP7 ADD MSTORE SWAP2 ISZERO ISZERO DUP5 DUP5 ADD MSTORE ISZERO ISZERO PUSH1 0x60 DUP5 ADD MSTORE ISZERO ISZERO PUSH1 0x80 DUP4 ADD MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0xA0 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4E6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x44 CALLDATALOAD AND PUSH2 0xCFA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x513 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x443 PUSH2 0x1464 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x528 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH2 0x14AD JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x53D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x412 PUSH1 0x4 CALLDATALOAD PUSH2 0x14C1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x555 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x46C PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x14ED JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x576 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x594 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x151F JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5B9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x1539 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5DA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x443 PUSH2 0x154D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5EF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x412 PUSH2 0x1582 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x604 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3D1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x15A1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x625 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3D1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x15F6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x646 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x443 PUSH2 0x16D9 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x65B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH2 0x16FA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x670 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x170C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x69A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x6A3 PUSH2 0x17A7 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0xFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6C6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH1 0x4 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH2 0x17AC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6E1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH2 0x1830 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6F6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x1A90 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x717 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x6A3 PUSH2 0x1AC5 JUMP JUMPDEST PUSH2 0x3D1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH1 0x44 CALLDATALOAD PUSH2 0x1ACA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x746 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x412 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x2033 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x767 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x46C PUSH2 0x2051 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x77C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x2069 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7A6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x412 PUSH2 0x217D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7BB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x218C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7DC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x594 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x222F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x800 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x238A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x821 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH1 0x4 CALLDATALOAD PUSH2 0x248F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x839 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH4 0xFFFFFFFF PUSH1 0x24 CALLDATALOAD AND PUSH2 0x2534 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x863 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x6A3 PUSH2 0x2593 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x878 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH2 0x259D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x88D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x412 PUSH2 0x2651 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8A2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x412 PUSH2 0x2660 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8B7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x46C PUSH2 0x266F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8CC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3D1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x2683 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8ED JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x6A3 PUSH2 0x2695 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x902 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x594 PUSH2 0x269B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x917 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x594 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x26A4 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x941 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH2 0x2848 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x956 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x443 PUSH2 0x2874 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x96B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x2879 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x98F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3D1 PUSH2 0x28C1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9A4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x412 PUSH2 0x28C7 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9B9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH2 0x28D6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9CE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x412 PUSH1 0x4 CALLDATALOAD PUSH2 0x292F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9E6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x443 PUSH2 0x2957 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9FB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x412 PUSH2 0x295C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x412 PUSH2 0x296B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA25 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH2 0x297A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA3A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xA43 PUSH2 0x2A6F JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA65 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4A6 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x2A74 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA86 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3D1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x2ABA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xAA7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x594 PUSH2 0x2ACB JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xABC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x412 PUSH2 0x2AF0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xAD1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3D1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x2AFF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xAF2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3D1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH1 0x44 CALLDATALOAD PUSH2 0x2B28 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xB19 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3D1 PUSH2 0x2E8D JUMP JUMPDEST PUSH2 0x3D1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x44 CALLDATALOAD SWAP1 PUSH1 0x64 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x84 CALLDATALOAD AND PUSH2 0x2E93 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xB58 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x594 PUSH2 0x30E6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xB6D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH4 0xFFFFFFFF PUSH1 0x4 CALLDATALOAD AND PUSH2 0x3166 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xB8B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x325B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xBAC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x594 PUSH2 0x32EB JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xBC1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x412 PUSH2 0x32F4 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0xBD6 DUP2 PUSH2 0x3303 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0xBFB PUSH2 0x3382 JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD SWAP2 ISZERO ISZERO PUSH21 0x10000000000000000000000000000000000000000 MUL PUSH21 0xFF0000000000000000000000000000000000000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x15 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH4 0xFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0xC6F PUSH2 0x526F JUMP JUMPDEST POP POP POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP2 MLOAD PUSH1 0xA0 DUP2 ADD DUP4 MSTORE DUP2 SLOAD DUP1 DUP3 MSTORE PUSH1 0x1 SWAP1 SWAP3 ADD SLOAD PUSH4 0xFFFFFFFF DUP2 AND SWAP5 DUP3 ADD DUP6 SWAP1 MSTORE PUSH1 0xFF PUSH5 0x100000000 DUP3 DIV DUP2 AND ISZERO ISZERO SWAP5 DUP4 ADD SWAP5 SWAP1 SWAP5 MSTORE PUSH6 0x10000000000 DUP2 DIV DUP5 AND ISZERO ISZERO PUSH1 0x60 DUP4 ADD MSTORE PUSH7 0x1000000000000 SWAP1 DIV SWAP1 SWAP3 AND ISZERO ISZERO PUSH1 0x80 SWAP1 SWAP3 ADD DUP3 SWAP1 MSTORE SWAP6 SWAP2 SWAP5 POP SWAP2 SWAP3 POP DUP3 SWAP2 SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0xD0A PUSH2 0x33D2 JUMP JUMPDEST PUSH2 0xD12 PUSH2 0x3382 JUMP JUMPDEST DUP8 PUSH2 0xD1C DUP2 PUSH2 0x3303 JUMP JUMPDEST DUP8 PUSH2 0xD26 DUP2 PUSH2 0x342F JUMP JUMPDEST DUP8 PUSH2 0xD30 DUP2 PUSH2 0x342F JUMP JUMPDEST DUP10 PUSH2 0xD3A DUP2 PUSH2 0x3490 JUMP JUMPDEST DUP10 PUSH2 0xD44 DUP2 PUSH2 0x3490 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x8DA5CB5B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD ADDRESS SWAP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP2 PUSH4 0x8DA5CB5B SWAP2 PUSH1 0x4 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xDA3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xDB7 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xDCD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ PUSH2 0xE2D JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F414E43484F525F4E4F545F4F574E4544000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0xE56 PUSH32 0x436861696E6C696E6B4F7261636C6557686974656C6973740000000000000000 PUSH2 0x34F0 JUMP JUMPDEST SWAP10 POP DUP10 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x3AF32ABF DUP14 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xEB3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xEC7 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xEDD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD ISZERO ISZERO PUSH2 0xF35 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4F5241434C450000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP10 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x3AF32ABF DUP13 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xF90 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xFA4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xFBA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD ISZERO ISZERO PUSH2 0x1012 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4F5241434C450000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x101A PUSH2 0x3588 JUMP JUMPDEST PUSH1 0xA DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP16 AND OR SWAP1 SSTORE PUSH1 0x7 DUP1 SLOAD PUSH1 0x0 SWAP1 DUP2 LT PUSH2 0x1044 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP15 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x10A2 JUMPI PUSH1 0x7 DUP1 SLOAD PUSH1 0x1 SWAP1 DUP2 LT PUSH2 0x1072 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0xB DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x10DD JUMP JUMPDEST PUSH1 0x7 DUP1 SLOAD PUSH1 0x0 SWAP1 DUP2 LT PUSH2 0x10B1 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0xB DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMPDEST PUSH2 0x1106 PUSH32 0x436F6E766572746572466163746F727900000000000000000000000000000000 PUSH2 0x34F0 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xC977AED2 PUSH2 0x111C PUSH2 0x17A7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH2 0xFFFF AND PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x115D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1171 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1187 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP SWAP9 POP DUP9 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x1B27444E DUP15 PUSH1 0xB PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP16 DUP16 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP6 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP5 POP POP POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1258 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x126C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1282 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x9 DUP1 SLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH13 0x1000000000000000000000000 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND DUP2 MUL SWAP2 SWAP1 SWAP2 OR SWAP2 DUP3 SWAP1 SSTORE PUSH1 0xA SLOAD PUSH1 0xB SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xAE81800400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP3 DUP7 AND PUSH1 0x4 DUP5 ADD MSTORE SWAP1 DUP6 AND PUSH1 0x24 DUP4 ADD MSTORE DUP1 MLOAD SWAP3 SWAP1 SWAP4 DIV SWAP1 SWAP4 AND SWAP3 PUSH4 0xAE818004 SWAP3 PUSH1 0x44 DUP1 DUP4 ADD SWAP4 SWAP2 SWAP3 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1324 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1338 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x134E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD MLOAD PUSH1 0x10 DUP2 SWAP1 SSTORE PUSH1 0xF DUP3 SWAP1 SSTORE PUSH1 0x12 SWAP2 SWAP1 SWAP2 SSTORE PUSH1 0x13 SSTORE PUSH2 0x1372 PUSH2 0x37C4 JUMP JUMPDEST PUSH1 0x11 SSTORE PUSH1 0xA SLOAD PUSH2 0x138A SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0xBCA JUMP JUMPDEST PUSH1 0xA SLOAD SWAP1 SWAP9 POP PUSH2 0x13A2 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x2AFF JUMP JUMPDEST PUSH1 0xB SLOAD SWAP1 SWAP8 POP PUSH2 0x13BA SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x2AFF JUMP JUMPDEST SWAP6 POP DUP7 DUP9 EQ ISZERO PUSH2 0x13E5 JUMPI PUSH1 0x0 DUP9 GT DUP1 PUSH2 0x13D3 JUMPI POP PUSH1 0x0 DUP7 GT JUMPDEST ISZERO PUSH2 0x13E0 JUMPI PUSH2 0x13E0 PUSH2 0x37C8 JUMP JUMPDEST PUSH2 0x140E JUMP JUMPDEST PUSH1 0x0 DUP9 GT DUP1 ISZERO PUSH2 0x13F5 JUMPI POP PUSH1 0x0 DUP8 GT JUMPDEST DUP1 ISZERO PUSH2 0x1401 JUMPI POP PUSH1 0x0 DUP7 GT JUMPDEST ISZERO PUSH2 0x140E JUMPI PUSH2 0x140E PUSH2 0x37C8 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x1425 PUSH2 0x17A7 JUMP JUMPDEST PUSH2 0xFFFF AND PUSH32 0x6B08C2E2C9969E55A647A764DB9B554D64DC42F1A704DA11A6D5B129AD163F2C PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x52F4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x0 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH32 0x353C2EB9E53A4A4A6D45D72082FF2E9DC829D1125618772A83EB0E7F86632C43 SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH2 0x14B5 PUSH2 0x3382 JUMP JUMPDEST PUSH1 0x15 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x7 DUP3 DUP2 SLOAD DUP2 LT ISZERO ISZERO PUSH2 0x14D2 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0x14F9 DUP2 PUSH2 0x3303 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH4 0xFFFFFFFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x152D DUP6 DUP6 DUP6 PUSH2 0x26A4 JUMP JUMPDEST SWAP2 POP SWAP2 POP SWAP4 POP SWAP4 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1541 PUSH2 0x3382 JUMP JUMPDEST PUSH2 0x154A DUP2 PUSH2 0x218C JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1557 PUSH2 0x3840 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x157D JUMPI POP PUSH1 0x9 SLOAD PUSH13 0x1000000000000000000000000 SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND ISZERO ISZERO JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH13 0x1000000000000000000000000 SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0x15AD DUP2 PUSH2 0x3303 JUMP JUMPDEST PUSH2 0x15EF PUSH2 0x15B9 DUP5 PUSH2 0x2AFF JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x15E3 SWAP1 PUSH1 0x13 PUSH4 0xFFFFFFFF PUSH2 0x38DA AND JUMP JUMPDEST SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x395E AND JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x18160DDD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x163C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1650 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1666 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP2 SWAP6 POP AND SWAP3 POP PUSH2 0x1691 DUP4 PUSH2 0x2AFF JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 SWAP3 POP SWAP1 POP PUSH2 0x16CF DUP2 PUSH2 0x16C3 DUP5 DUP8 PUSH4 0xFFFFFFFF PUSH2 0x38DA AND JUMP JUMPDEST SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x39BB AND JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH2 0x1702 PUSH2 0x3382 JUMP JUMPDEST PUSH2 0x170A PUSH2 0x28D6 JUMP JUMPDEST JUMP JUMPDEST PUSH2 0x1714 PUSH2 0x3382 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x5E35359E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP6 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP3 ADD DUP6 SWAP1 MSTORE SWAP2 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP2 PUSH4 0x5E35359E SWAP2 PUSH1 0x64 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x178A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x179E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 SWAP1 JUMP JUMPDEST PUSH2 0x17B4 PUSH2 0x3382 JUMP JUMPDEST DUP2 PUSH1 0x14 PUSH1 0x0 PUSH1 0x7 PUSH1 0x0 DUP2 SLOAD DUP2 LT ISZERO ISZERO PUSH2 0x17C9 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 SWAP1 SWAP2 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP4 MSTORE DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x40 ADD DUP2 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE PUSH1 0x7 DUP1 SLOAD DUP4 SWAP3 PUSH1 0x14 SWAP3 SWAP1 SWAP2 PUSH1 0x1 SWAP1 DUP2 LT PUSH2 0x1807 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 SWAP1 SWAP2 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP4 MSTORE DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x40 ADD SWAP1 KECCAK256 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ DUP1 PUSH2 0x1865 JUMPI POP PUSH1 0x3 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x18A9 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5314 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x18D2 PUSH32 0x436F6E7472616374526567697374727900000000000000000000000000000000 PUSH2 0x34F0 JUMP JUMPDEST PUSH1 0x2 SLOAD SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP4 AND SWAP2 AND EQ DUP1 ISZERO SWAP1 PUSH2 0x18FB JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x1951 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245474953545259000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0xBB34534C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH32 0x436F6E7472616374526567697374727900000000000000000000000000000000 PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP2 PUSH4 0xBB34534C SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x19D5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x19E9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x19FF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ ISZERO PUSH2 0x1A60 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245474953545259000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP5 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT SWAP3 DUP4 AND OR SWAP1 SWAP3 SSTORE SWAP1 SWAP2 AND SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x1A98 PUSH2 0x3382 JUMP JUMPDEST DUP1 PUSH2 0x1AA2 DUP2 PUSH2 0x342F JUMP JUMPDEST POP PUSH1 0x6 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x20 DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x1ADA PUSH2 0x3A29 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH2 0x1AE7 PUSH2 0x3A83 JUMP JUMPDEST DUP8 PUSH2 0x1AF1 DUP2 PUSH2 0x3303 JUMP JUMPDEST DUP8 PUSH2 0x1AFB DUP2 PUSH2 0x3AE1 JUMP JUMPDEST DUP8 PUSH2 0x1B05 DUP2 PUSH2 0x3AE1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x52F4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ PUSH2 0x1B2A JUMPI CALLVALUE ISZERO PUSH2 0x1B2E JUMP JUMPDEST DUP10 CALLVALUE EQ JUMPDEST ISZERO ISZERO PUSH2 0x1B84 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4554485F414D4F554E545F4D49534D41544348000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x1B8C PUSH2 0x3B39 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x52F4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ ISZERO PUSH2 0x1C2E JUMPI PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x52F4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x0 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH32 0x353C2EB9E53A4A4A6D45D72082FF2E9DC829D1125618772A83EB0E7F86632C42 SLOAD PUSH2 0x1BF4 SWAP1 CALLVALUE PUSH4 0xFFFFFFFF PUSH2 0x3B7B AND JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x52F4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x0 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH32 0x353C2EB9E53A4A4A6D45D72082FF2E9DC829D1125618772A83EB0E7F86632C42 SSTORE JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x15 SLOAD SWAP1 SWAP8 POP PUSH1 0xFF AND ISZERO PUSH2 0x1CF7 JUMPI PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x14 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD ISZERO DUP1 PUSH2 0x1CA1 JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x14 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x1C9E DUP9 DUP13 PUSH4 0xFFFFFFFF PUSH2 0x395E AND JUMP JUMPDEST GT ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x1CF7 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4D41585F5354414B45445F42414C414E43455F524541434845440000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP13 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD DUP2 MLOAD PUSH32 0x18160DDD00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP2 MLOAD SWAP5 AND SWAP10 POP DUP10 SWAP4 PUSH4 0x18160DDD SWAP4 PUSH1 0x4 DUP1 DUP5 ADD SWAP5 SWAP4 DUP4 SWAP1 SUB ADD SWAP1 DUP3 SWAP1 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1D64 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1D78 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1D8E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP5 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x52F4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ PUSH2 0x1DBC JUMPI PUSH2 0x1DBC DUP12 CALLER ADDRESS DUP14 PUSH2 0x3BDB JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x1DE5 SWAP1 DUP12 PUSH4 0xFFFFFFFF PUSH2 0x395E AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP13 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE PUSH2 0x1E0E DUP8 DUP12 PUSH4 0xFFFFFFFF PUSH2 0x395E AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP13 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE SWAP4 POP DUP7 ISZERO DUP1 PUSH2 0x1E37 JUMPI POP DUP5 ISZERO JUMPDEST ISZERO PUSH2 0x1E44 JUMPI DUP10 SWAP4 POP PUSH2 0x1E5B JUMP JUMPDEST PUSH2 0x1E58 DUP8 PUSH2 0x16C3 DUP13 DUP9 PUSH4 0xFFFFFFFF PUSH2 0x38DA AND JUMP JUMPDEST SWAP4 POP JUMPDEST DUP9 DUP5 LT ISZERO PUSH2 0x1EB3 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F52455455524E5F544F4F5F4C4F570000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xC6C3BBE600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP10 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE CALLER PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP3 ADD DUP9 SWAP1 MSTORE SWAP2 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP2 PUSH4 0xC6C3BBE6 SWAP2 PUSH1 0x64 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1F27 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1F3B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x1F47 PUSH2 0x37C8 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND CALLER PUSH32 0x4A1A2A6176E9646D9E3157F7C2AB3C499F18337C0B0828CFB28E0A61DE4A11F7 DUP13 PUSH2 0x1F84 DUP12 DUP3 PUSH4 0xFFFFFFFF PUSH2 0x395E AND JUMP JUMPDEST PUSH2 0x1F94 DUP11 DUP11 PUSH4 0xFFFFFFFF PUSH2 0x395E AND JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP4 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP3 SWAP1 SWAP3 MSTORE DUP3 DUP3 ADD MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG3 PUSH2 0x1FCB DUP7 PUSH2 0x1FC5 DUP8 DUP8 PUSH4 0xFFFFFFFF PUSH2 0x395E AND JUMP JUMPDEST DUP14 PUSH2 0x3CC3 JUMP JUMPDEST PUSH2 0x2020 PUSH1 0x7 PUSH1 0x0 DUP2 SLOAD DUP2 LT ISZERO ISZERO PUSH2 0x1FDE JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x7 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP2 PUSH1 0x1 SWAP1 DUP2 LT PUSH2 0x2005 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP1 DUP1 PUSH2 0x3D23 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0x4 SSTORE POP SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD AND SWAP1 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH9 0x10000000000000000 SWAP1 DIV PUSH4 0xFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2073 PUSH2 0x3A29 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH2 0x2080 PUSH2 0x3382 JUMP JUMPDEST PUSH2 0x2097 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x52D4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x34F0 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD SWAP1 SWAP2 POP PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 PUSH2 0x20D4 JUMPI POP PUSH2 0x20D2 PUSH2 0x154D JUMP JUMPDEST ISZERO JUMPDEST DUP1 PUSH2 0x20EC JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ JUMPDEST ISZERO ISZERO PUSH2 0x2130 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5314 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x213B DUP5 DUP5 DUP5 PUSH2 0x3D8F JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x2172 JUMPI PUSH2 0x2172 DUP5 PUSH2 0x3DC0 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0x4 SSTORE POP POP JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH2 0x2194 PUSH2 0x3382 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x52D4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x21AC DUP2 PUSH2 0x3EB4 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xF2FDE38B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP2 PUSH4 0xF2FDE38B SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2213 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2227 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 DUP12 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x18160DDD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x227C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2290 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x22A6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP15 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD SWAP1 SWAP4 AND DUP3 MSTORE PUSH1 0xC SWAP1 MSTORE KECCAK256 SLOAD SWAP1 SWAP9 POP SWAP7 POP DUP8 DUP12 LT ISZERO PUSH2 0x2371 JUMPI PUSH1 0xA SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x2309 SWAP1 PUSH1 0x14 PUSH4 0xFFFFFFFF PUSH2 0x38DA AND JUMP JUMPDEST PUSH1 0xA SLOAD SWAP1 SWAP7 POP PUSH2 0x2321 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x15A1 JUMP JUMPDEST SWAP5 POP DUP5 DUP7 LT PUSH2 0x2331 JUMPI DUP5 DUP7 PUSH2 0x2334 JUMP JUMPDEST DUP6 DUP6 JUMPDEST SWAP1 SWAP5 POP SWAP3 POP PUSH2 0x234D DUP9 PUSH2 0x16C3 DUP14 DUP11 PUSH4 0xFFFFFFFF PUSH2 0x38DA AND JUMP JUMPDEST SWAP2 POP PUSH2 0x2363 DUP4 PUSH2 0x16C3 DUP5 DUP8 PUSH4 0xFFFFFFFF PUSH2 0x38DA AND JUMP JUMPDEST SWAP10 POP POP DUP9 DUP2 SUB SWAP8 POP DUP9 PUSH2 0x237B JUMP JUMPDEST SWAP6 SWAP9 POP PUSH1 0x0 SWAP8 POP DUP9 SWAP6 JUMPDEST POP POP POP POP POP POP POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2394 PUSH2 0x3A29 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH2 0x23A1 PUSH2 0x3382 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x52F4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x23B9 DUP2 PUSH2 0x3303 JUMP JUMPDEST PUSH2 0x23D0 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x52D4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x34F0 JUMP JUMPDEST SWAP2 POP PUSH2 0x23DA PUSH2 0x154D JUMP JUMPDEST ISZERO DUP1 PUSH2 0x23F3 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 DUP2 AND SWAP2 AND EQ JUMPDEST ISZERO ISZERO PUSH2 0x2437 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5314 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP1 ADDRESS BALANCE DUP1 ISZERO PUSH2 0x8FC MUL SWAP2 PUSH1 0x0 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x246D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH2 0x2485 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x52F4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x3DC0 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0x4 SSTORE POP JUMP JUMPDEST PUSH2 0x2497 PUSH2 0x3382 JUMP JUMPDEST PUSH3 0x186A0 DUP2 GT ISZERO PUSH2 0x24F2 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F44594E414D49435F4645455F464143544F520000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x16 SLOAD PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP4 SWAP1 MSTORE DUP1 MLOAD PUSH32 0x382FD3516344712A511DCD464FF8E6AB54139D6A28F64087A3253353EE7A5679 SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG1 PUSH1 0x16 SSTORE JUMP JUMPDEST PUSH1 0x2 PUSH2 0x253E PUSH2 0x2695 JUMP JUMPDEST PUSH2 0xFFFF AND LT PUSH2 0x2585 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5334 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x258F DUP3 DUP3 PUSH2 0x3F0A JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x157D PUSH2 0x2695 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x25ED JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5314 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND SWAP4 SWAP1 SWAP2 AND SWAP2 PUSH32 0x343765429AEA5A34B3FF6A3785A98A5ABB2597ACA87BFBB58632C173D585373A SWAP2 LOG3 PUSH1 0x1 DUP1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND OR SWAP1 SWAP2 SSTORE AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH5 0x100000000 SWAP1 DIV PUSH4 0xFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x14 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x7 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0xF SLOAD PUSH1 0x10 SLOAD DUP3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x26B2 PUSH2 0x529D JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x26C0 PUSH2 0x3A83 JUMP JUMPDEST PUSH2 0x26C9 DUP13 PUSH2 0x3303 JUMP JUMPDEST PUSH2 0x26D2 DUP12 PUSH2 0x3303 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP13 DUP2 AND SWAP1 DUP13 AND EQ ISZERO PUSH2 0x2736 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F534F555243455F54415247455400000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x273E PUSH2 0x37C4 JUMP JUMPDEST PUSH1 0x11 SLOAD EQ ISZERO PUSH2 0x27E5 JUMPI PUSH1 0xF PUSH1 0x40 DUP1 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD SLOAD DUP2 MSTORE POP POP SWAP5 POP PUSH1 0x8 PUSH1 0x0 DUP14 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH4 0xFFFFFFFF AND SWAP7 POP PUSH1 0x8 PUSH1 0x0 DUP13 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH4 0xFFFFFFFF AND SWAP6 POP PUSH2 0x2825 JUMP JUMPDEST PUSH2 0x27ED PUSH2 0x413C JUMP JUMPDEST SWAP5 POP PUSH2 0x27F8 DUP6 PUSH2 0x4380 JUMP JUMPDEST PUSH1 0xA SLOAD SWAP2 SWAP6 POP SWAP4 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP14 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x281E JUMPI DUP4 SWAP7 POP DUP3 SWAP6 POP PUSH2 0x2825 JUMP JUMPDEST DUP3 SWAP7 POP DUP4 SWAP6 POP JUMPDEST PUSH2 0x2833 DUP13 DUP13 DUP10 DUP10 DUP10 DUP16 PUSH2 0x44AA JUMP JUMPDEST SWAP2 SWAP15 SWAP2 SWAP14 POP SWAP1 SWAP12 POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x2850 PUSH2 0x3382 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x2 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x1 DUP2 JUMP JUMPDEST PUSH2 0x2881 PUSH2 0x3382 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x52D4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x2899 DUP2 PUSH2 0x3EB4 JUMP JUMPDEST DUP3 PUSH2 0x28A3 DUP2 PUSH2 0x3303 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE JUMP JUMPDEST PUSH1 0x11 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x1 PUSH2 0x28E0 PUSH2 0x2695 JUMP JUMPDEST PUSH2 0xFFFF AND GT PUSH2 0x2927 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5334 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x170A PUSH2 0x4646 JUMP JUMPDEST PUSH1 0x7 DUP1 SLOAD DUP3 SWAP1 DUP2 LT PUSH2 0x293D JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP1 POP DUP2 JUMP JUMPDEST PUSH1 0x1 SWAP1 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2984 PUSH2 0x3382 JUMP JUMPDEST PUSH2 0x299B PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x52D4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x34F0 JUMP JUMPDEST PUSH1 0x5 SLOAD SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x29B5 PUSH2 0x17A7 JUMP JUMPDEST PUSH2 0xFFFF AND PUSH32 0x6B08C2E2C9969E55A647A764DB9B554D64DC42F1A704DA11A6D5B129AD163F2C PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH2 0x29EE DUP2 PUSH2 0x325B JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x90F58C9600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 AND SWAP2 PUSH4 0x90F58C96 SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2A4F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2A63 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x154A PUSH2 0x259D JUMP JUMPDEST PUSH1 0x14 SWAP1 JUMP JUMPDEST PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD PUSH4 0xFFFFFFFF DUP2 AND SWAP1 PUSH1 0xFF PUSH5 0x100000000 DUP3 DIV DUP2 AND SWAP2 PUSH6 0x10000000000 DUP2 DIV DUP3 AND SWAP2 PUSH7 0x1000000000000 SWAP1 SWAP2 DIV AND DUP6 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2AC5 DUP3 PUSH2 0x2AFF JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2AD6 PUSH2 0x529D JUMP JUMPDEST PUSH2 0x2ADE PUSH2 0x413C JUMP JUMPDEST DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD MLOAD SWAP1 SWAP5 SWAP1 SWAP4 POP SWAP2 POP POP JUMP JUMPDEST PUSH1 0xB SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0x2B0B DUP2 PUSH2 0x3303 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x2B39 PUSH2 0x3A29 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH2 0x2B46 PUSH2 0x3A83 JUMP JUMPDEST DUP9 PUSH2 0x2B50 DUP2 PUSH2 0x4712 JUMP JUMPDEST DUP9 PUSH2 0x2B5A DUP2 PUSH2 0x3AE1 JUMP JUMPDEST DUP9 PUSH2 0x2B64 DUP2 PUSH2 0x3AE1 JUMP JUMPDEST PUSH2 0x2B6C PUSH2 0x3B39 JUMP JUMPDEST DUP12 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x18160DDD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2BAA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2BBE JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2BD4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP8 POP PUSH2 0x2BE2 DUP13 DUP13 PUSH2 0x222F JUMP JUMPDEST POP SWAP7 POP DUP10 DUP8 LT ISZERO PUSH2 0x2C3D JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F52455455524E5F544F4F5F4C4F570000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0xE PUSH1 0x0 DUP14 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP6 POP PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xF6B911BC DUP14 CALLER DUP15 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP4 POP POP POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2D0A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2D1E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x2D4B SWAP2 POP DUP9 PUSH4 0xFFFFFFFF PUSH2 0x3B7B AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE PUSH1 0xC SWAP1 MSTORE KECCAK256 SLOAD PUSH2 0x2D80 SWAP1 DUP9 PUSH4 0xFFFFFFFF PUSH2 0x3B7B AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP3 SWAP1 SSTORE SWAP1 SWAP6 POP PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x52F4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ ISZERO PUSH2 0x2DE6 JUMPI PUSH1 0x40 MLOAD CALLER SWAP1 DUP9 ISZERO PUSH2 0x8FC MUL SWAP1 DUP10 SWAP1 PUSH1 0x0 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x2DE0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH2 0x2DF1 JUMP JUMPDEST PUSH2 0x2DF1 DUP7 CALLER DUP10 PUSH2 0x4783 JUMP JUMPDEST PUSH2 0x2DF9 PUSH2 0x37C8 JUMP JUMPDEST PUSH2 0x2E09 DUP9 DUP13 PUSH4 0xFFFFFFFF PUSH2 0x3B7B AND JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP10 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP9 SWAP1 MSTORE DUP1 DUP3 ADD DUP4 SWAP1 MSTORE SWAP1 MLOAD SWAP2 SWAP6 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 AND SWAP2 CALLER SWAP2 PUSH32 0xBC7D19D505C7EC4DB83F3B51F19FB98C4C8A99922E7839D1EE608DFBEE29501B SWAP2 SWAP1 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG3 PUSH2 0x2E65 DUP13 DUP6 DUP9 PUSH2 0x3CC3 JUMP JUMPDEST PUSH2 0x2E78 PUSH1 0x7 PUSH1 0x0 DUP2 SLOAD DUP2 LT ISZERO ISZERO PUSH2 0x1FDE JUMPI INVALID JUMPDEST POP POP PUSH1 0x1 PUSH1 0x4 SSTORE POP SWAP3 SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x16 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2E9D PUSH2 0x3A29 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH32 0x536F7672796E537761704E6574776F726B000000000000000000000000000000 PUSH2 0x2ECC DUP2 PUSH2 0x3EB4 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 DUP2 AND SWAP1 DUP8 AND EQ ISZERO PUSH2 0x2F30 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F534F555243455F54415247455400000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND ISZERO DUP1 PUSH2 0x3073 JUMPI POP PUSH1 0x6 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x3AF32ABF00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP2 PUSH4 0x3AF32ABF SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2FAB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2FBF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2FD5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD DUP1 ISZERO PUSH2 0x3073 JUMPI POP PUSH1 0x6 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x3AF32ABF00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP2 PUSH4 0x3AF32ABF SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3046 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x305A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x3070 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD JUMPDEST ISZERO ISZERO PUSH2 0x30C9 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4E4F545F57484954454C495354454400000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x30D6 DUP8 DUP8 DUP8 DUP8 DUP8 PUSH2 0x483A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x4 SSTORE SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x30F1 PUSH2 0x529D JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x30FC PUSH2 0x413C JUMP JUMPDEST SWAP3 POP PUSH2 0x3107 DUP4 PUSH2 0x4380 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x7 PUSH1 0x0 DUP2 SLOAD DUP2 LT ISZERO ISZERO PUSH2 0x311B JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0xA SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x3150 JUMPI PUSH4 0xFFFFFFFF DUP1 DUP4 AND SWAP6 POP DUP2 AND SWAP4 POP PUSH2 0x315F JUMP JUMPDEST PUSH4 0xFFFFFFFF DUP1 DUP3 AND SWAP6 POP DUP3 AND SWAP4 POP JUMPDEST POP POP POP SWAP1 SWAP2 JUMP JUMPDEST PUSH2 0x316E PUSH2 0x3382 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH4 0xFFFFFFFF PUSH5 0x100000000 SWAP1 SWAP2 DIV DUP2 AND SWAP1 DUP3 AND GT ISZERO PUSH2 0x31DA JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F434F4E56455253494F4E5F464545000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH4 0xFFFFFFFF PUSH9 0x10000000000000000 SWAP1 SWAP4 DIV DUP4 AND DUP2 MSTORE SWAP2 DUP4 AND PUSH1 0x20 DUP4 ADD MSTORE DUP1 MLOAD PUSH32 0x81CD2FFB37DD237C0E4E2A3DE5265FCF9DEB43D3E7801E80DB9F1CCFBA7EE600 SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG1 PUSH1 0x9 DUP1 SLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP3 AND PUSH9 0x10000000000000000 MUL PUSH12 0xFFFFFFFF0000000000000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x3263 PUSH2 0x3382 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x32C9 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F4F574E4552000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x12 SLOAD PUSH1 0x13 SLOAD DUP3 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO PUSH2 0x154A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245534552564500000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x170A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5314 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x33DA PUSH2 0x154D JUMP JUMPDEST ISZERO PUSH2 0x170A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xA PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F41435449564500000000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ADDRESS EQ ISZERO PUSH2 0x154A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F414444524553535F49535F53454C4600000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0x154A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xBB34534C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP2 PUSH4 0xBB34534C SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3556 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x356A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x3580 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP6 POP DUP6 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x6D3E313E PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x35E8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x35FC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x3625 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 MLOAD PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x363D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD PUSH1 0x20 DUP2 ADD DUP5 DUP2 GT ISZERO PUSH2 0x3650 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP6 PUSH1 0x20 DUP3 MUL DUP4 ADD GT PUSH5 0x100000000 DUP3 GT OR ISZERO PUSH2 0x366D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP DUP1 MLOAD PUSH1 0x7 SLOAD SWAP2 SWAP10 POP ISZERO SWAP8 POP SWAP6 POP PUSH1 0x0 SWAP5 POP POP POP POP JUMPDEST DUP3 DUP3 LT ISZERO PUSH2 0x2227 JUMPI DUP4 ISZERO PUSH2 0x3703 JUMPI DUP6 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x9CBF9E36 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x36D0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x36E4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x36FA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 POP PUSH2 0x371E JUMP JUMPDEST DUP5 DUP3 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3711 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD SWAP1 POP JUMPDEST DUP1 PUSH1 0xD PUSH1 0x0 PUSH1 0x7 DUP6 DUP2 SLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3732 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 SWAP2 SWAP1 SWAP2 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 DUP2 AND DUP5 MSTORE SWAP1 DUP4 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x40 SWAP1 SWAP2 ADD SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND SWAP3 SWAP1 SWAP2 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH1 0x7 DUP1 SLOAD DUP4 SWAP1 DUP2 LT PUSH2 0x3780 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 SWAP1 SWAP2 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 DUP2 AND DUP5 MSTORE PUSH1 0xE SWAP1 SWAP3 MSTORE PUSH1 0x40 SWAP1 SWAP3 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND SWAP2 SWAP1 SWAP3 AND OR SWAP1 SSTORE PUSH1 0x1 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x3684 JUMP JUMPDEST TIMESTAMP SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0xF SLOAD DUP2 MSTORE PUSH1 0x10 SLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 SWAP1 DUP2 SWAP1 PUSH2 0x37ED SWAP1 PUSH2 0x4380 JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 PUSH1 0x1 SWAP1 DUP2 ADD DUP1 SLOAD PUSH4 0xFFFFFFFF SWAP8 DUP9 AND PUSH4 0xFFFFFFFF NOT SWAP2 DUP3 AND OR SWAP1 SWAP2 SSTORE PUSH1 0xB SLOAD SWAP1 SWAP5 AND DUP4 MSTORE SWAP2 KECCAK256 ADD DUP1 SLOAD SWAP3 SWAP1 SWAP4 AND SWAP2 AND OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 ADDRESS PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x8DA5CB5B PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x389F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x38B3 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x38C9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 ISZERO ISZERO PUSH2 0x38ED JUMPI PUSH1 0x0 SWAP2 POP PUSH2 0x3957 JUMP JUMPDEST POP DUP3 DUP3 MUL DUP3 DUP5 DUP3 DUP2 ISZERO ISZERO PUSH2 0x38FD JUMPI INVALID JUMPDEST DIV EQ PUSH2 0x3953 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP1 SWAP2 POP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 ADD DUP4 DUP2 LT ISZERO PUSH2 0x3953 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP4 GT PUSH2 0x3A15 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4449564944455F42595F5A45524F0000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP3 DUP5 DUP2 ISZERO ISZERO PUSH2 0x3A20 JUMPI INVALID JUMPDEST DIV SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH1 0x1 EQ PUSH2 0x170A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5245454E5452414E4359000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x3A8B PUSH2 0x154D JUMP JUMPDEST ISZERO ISZERO PUSH2 0x170A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E4143544956450000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 GT PUSH2 0x154A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5A45524F5F56414C5545000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x258F JUMPI PUSH2 0x3B73 PUSH1 0x7 DUP3 DUP2 SLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3B59 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x3DC0 JUMP JUMPDEST PUSH1 0x1 ADD PUSH2 0x3B3F JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT ISZERO PUSH2 0x3BD5 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F554E444552464C4F5700000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP SWAP1 SUB SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x7472616E7366657246726F6D28616464726573732C616464726573732C75696E DUP2 MSTORE PUSH32 0x7432353629000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP3 MLOAD SWAP2 DUP3 SWAP1 SUB PUSH1 0x25 ADD DUP3 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP9 AND PUSH1 0x24 DUP6 ADD MSTORE DUP7 AND PUSH1 0x44 DUP5 ADD MSTORE PUSH1 0x64 DUP1 DUP5 ADD DUP7 SWAP1 MSTORE DUP5 MLOAD DUP1 DUP6 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x84 SWAP1 SWAP4 ADD SWAP1 SWAP4 MSTORE DUP2 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE PUSH2 0x3CBD SWAP1 DUP6 SWAP1 PUSH2 0x492D JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP3 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SLOAD DUP3 MLOAD SWAP1 DUP2 MSTORE SWAP1 DUP2 ADD DUP7 SWAP1 MSTORE DUP2 MLOAD SWAP3 SWAP4 DUP8 AND SWAP3 PUSH32 0x77F29993CF2C084E726F7E802DA0719D6A0ADE3E204BADC7A3FFD57ECB768C24 SWAP3 SWAP2 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH2 0x3D2B PUSH2 0x529D JUMP JUMPDEST PUSH2 0x3D37 DUP6 DUP6 DUP6 DUP6 PUSH2 0x49BB JUMP JUMPDEST DUP1 MLOAD PUSH1 0x20 DUP1 DUP4 ADD MLOAD PUSH1 0x40 DUP1 MLOAD SWAP4 DUP5 MSTORE SWAP2 DUP4 ADD MSTORE DUP1 MLOAD SWAP3 SWAP4 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP9 AND SWAP4 SWAP1 DUP10 AND SWAP3 PUSH32 0x77F29993CF2C084E726F7E802DA0719D6A0ADE3E204BADC7A3FFD57ECB768C24 SWAP3 SWAP1 DUP3 SWAP1 SUB ADD SWAP1 LOG3 POP POP POP POP POP JUMP JUMPDEST PUSH2 0x3D97 PUSH2 0x3382 JUMP JUMPDEST DUP3 PUSH2 0x3DA1 DUP2 PUSH2 0x3490 JUMP JUMPDEST DUP3 PUSH2 0x3DAB DUP2 PUSH2 0x3490 JUMP JUMPDEST DUP4 PUSH2 0x3DB5 DUP2 PUSH2 0x342F JUMP JUMPDEST PUSH2 0x2227 DUP7 DUP7 DUP7 PUSH2 0x4783 JUMP JUMPDEST DUP1 PUSH2 0x3DCA DUP2 PUSH2 0x3303 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 AND PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x52F4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ ISZERO PUSH2 0x3E0A JUMPI PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 ADDRESS BALANCE SWAP1 SSTORE PUSH2 0x258F JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3E6B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3E7F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x3E95 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE POP POP JUMP JUMPDEST PUSH2 0x3EBD DUP2 PUSH2 0x34F0 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x154A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5314 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x3F14 PUSH2 0x3382 JUMP JUMPDEST PUSH2 0x3F1C PUSH2 0x33D2 JUMP JUMPDEST DUP3 PUSH2 0x3F26 DUP2 PUSH2 0x3490 JUMP JUMPDEST DUP4 PUSH2 0x3F30 DUP2 PUSH2 0x342F JUMP JUMPDEST DUP4 PUSH2 0x3F3A DUP2 PUSH2 0x4A83 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 DUP2 AND SWAP2 AND EQ DUP1 ISZERO SWAP1 PUSH2 0x3F7E JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x3FD4 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245534552564500000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x9 SLOAD PUSH4 0xFFFFFFFF SWAP1 DUP2 AND PUSH3 0xF4240 SUB DUP2 AND SWAP1 DUP7 AND GT ISZERO PUSH2 0x403F JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F574549474854000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0xFFFF PUSH2 0x404A PUSH2 0x2695 JUMP JUMPDEST PUSH2 0xFFFF AND LT PUSH2 0x4091 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5334 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP2 DUP2 SSTORE PUSH1 0x1 SWAP1 DUP2 ADD DUP1 SLOAD PUSH7 0xFF000000000000 NOT PUSH4 0xFFFFFFFF DUP1 DUP9 AND PUSH4 0xFFFFFFFF NOT SWAP4 DUP5 AND OR SWAP2 SWAP1 SWAP2 AND PUSH7 0x1000000000000 OR SWAP1 SWAP3 SSTORE PUSH1 0x7 DUP1 SLOAD SWAP4 DUP5 ADD DUP2 SSTORE SWAP1 SWAP4 MSTORE PUSH32 0xA66CC928B5EDB82AF9BD49922954155AB7B0942694BEA4CE44661D9A8736C688 SWAP1 SWAP2 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND SWAP1 SWAP4 OR SWAP1 SWAP3 SSTORE PUSH1 0x9 DUP1 SLOAD DUP1 DUP5 AND SWAP1 SWAP5 ADD SWAP1 SWAP3 AND SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE POP JUMP JUMPDEST PUSH2 0x4144 PUSH2 0x529D JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x4152 PUSH2 0x529D JUMP JUMPDEST PUSH2 0x415A PUSH2 0x529D JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0xA SLOAD PUSH1 0xB SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xB1772D7A00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND PUSH1 0x4 DUP3 ADD MSTORE SWAP2 DUP4 AND PUSH1 0x24 DUP4 ADD MSTORE MLOAD PUSH1 0x0 SWAP4 DUP5 SWAP4 DUP5 SWAP4 DUP5 SWAP4 PUSH13 0x1000000000000000000000000 SWAP1 SWAP4 DIV SWAP1 SWAP2 AND SWAP2 PUSH4 0xB1772D7A SWAP2 PUSH1 0x44 DUP1 DUP3 ADD SWAP3 PUSH1 0x60 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x41E8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x41FC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x60 DUP2 LT ISZERO PUSH2 0x4212 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD PUSH1 0x20 DUP3 ADD MLOAD PUSH1 0x40 SWAP1 SWAP3 ADD MLOAD PUSH1 0x11 SLOAD SWAP2 SWAP13 POP SWAP2 SWAP11 POP SWAP1 SWAP9 POP DUP9 GT ISZERO PUSH2 0x424F JUMPI PUSH1 0x40 DUP1 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 DUP12 DUP2 MSTORE PUSH1 0x20 ADD DUP11 DUP2 MSTORE POP SWAP11 POP PUSH2 0x4373 JUMP JUMPDEST PUSH1 0x11 SLOAD PUSH2 0x425A PUSH2 0x37C4 JUMP JUMPDEST SUB SWAP7 POP DUP7 ISZERO ISZERO PUSH2 0x4282 JUMPI PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0xF SLOAD DUP2 MSTORE PUSH1 0x10 SLOAD PUSH1 0x20 DUP3 ADD MSTORE SWAP11 POP PUSH2 0x4373 JUMP JUMPDEST PUSH2 0x258 DUP8 LT PUSH2 0x42A9 JUMPI PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x12 SLOAD DUP2 MSTORE PUSH1 0x13 SLOAD PUSH1 0x20 DUP3 ADD MSTORE SWAP11 POP PUSH2 0x4373 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD DUP3 MSTORE PUSH1 0xF SLOAD DUP2 MSTORE PUSH1 0x10 SLOAD PUSH1 0x20 DUP1 DUP4 ADD SWAP2 DUP3 MSTORE DUP4 MLOAD DUP1 DUP6 ADD SWAP1 SWAP5 MSTORE PUSH1 0x12 SLOAD DUP1 DUP6 MSTORE PUSH1 0x13 SLOAD SWAP2 DUP6 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP1 MLOAD SWAP2 SWAP9 POP SWAP2 SWAP7 POP PUSH2 0x42F1 SWAP2 PUSH4 0xFFFFFFFF PUSH2 0x38DA AND JUMP JUMPDEST PUSH1 0x20 DUP7 ADD MLOAD DUP8 MLOAD SWAP2 SWAP6 POP PUSH2 0x430B SWAP2 SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x38DA AND JUMP JUMPDEST SWAP3 POP PUSH2 0x4335 PUSH2 0x4320 DUP6 DUP10 PUSH4 0xFFFFFFFF PUSH2 0x38DA AND JUMP JUMPDEST PUSH2 0x15E3 DUP6 PUSH2 0x258 DUP12 SWAP1 SUB PUSH4 0xFFFFFFFF PUSH2 0x38DA AND JUMP JUMPDEST SWAP2 POP PUSH2 0x4364 PUSH2 0x258 PUSH2 0x4358 DUP8 PUSH1 0x20 ADD MLOAD DUP10 PUSH1 0x20 ADD MLOAD PUSH2 0x38DA SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x38DA AND JUMP JUMPDEST SWAP1 POP PUSH2 0x4370 DUP3 DUP3 PUSH2 0x4AF8 JUMP JUMPDEST SWAP11 POP JUMPDEST POP POP POP POP POP POP POP POP POP POP SWAP1 JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD SWAP1 SWAP2 DUP3 SWAP2 SWAP1 DUP3 SWAP1 DUP2 SWAP1 PUSH2 0x43AD SWAP1 PUSH2 0x15A1 JUMP JUMPDEST PUSH1 0xB SLOAD SWAP1 SWAP3 POP PUSH2 0x43C5 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x15A1 JUMP JUMPDEST SWAP1 POP PUSH2 0x43F0 PUSH32 0x536F7672796E53776170466F726D756C61000000000000000000000000000000 PUSH2 0x34F0 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xA11AA1B4 PUSH2 0x440F DUP6 PUSH1 0x14 PUSH4 0xFFFFFFFF PUSH2 0x38DA AND JUMP JUMPDEST DUP9 MLOAD PUSH1 0x20 DUP11 ADD MLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0xE0 PUSH1 0x2 EXP PUSH4 0xFFFFFFFF DUP8 AND MUL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP5 SWAP1 SWAP5 MSTORE PUSH1 0x24 DUP5 ADD DUP9 SWAP1 MSTORE PUSH1 0x44 DUP5 ADD DUP8 SWAP1 MSTORE PUSH1 0x64 DUP5 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x84 DUP4 ADD MSTORE DUP1 MLOAD PUSH1 0xA4 DUP1 DUP5 ADD SWAP4 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x446A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x447E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x4494 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD MLOAD SWAP1 SWAP6 POP SWAP4 POP POP POP POP SWAP2 POP SWAP2 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP1 DUP1 PUSH4 0xFFFFFFFF DUP10 AND ISZERO ISZERO PUSH2 0x44E2 JUMPI PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH4 0xFFFFFFFF AND SWAP9 POP JUMPDEST PUSH4 0xFFFFFFFF DUP9 AND ISZERO ISZERO PUSH2 0x4514 JUMPI PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP11 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH4 0xFFFFFFFF AND SWAP8 POP JUMPDEST PUSH2 0x451D DUP12 PUSH2 0x15A1 JUMP JUMPDEST SWAP2 POP PUSH2 0x4528 DUP11 PUSH2 0x15A1 JUMP JUMPDEST SWAP1 POP PUSH2 0x4553 PUSH32 0x536F7672796E53776170466F726D756C61000000000000000000000000000000 PUSH2 0x34F0 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x94491FAB00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH4 0xFFFFFFFF DUP1 DUP14 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP3 ADD DUP6 SWAP1 MSTORE DUP12 AND PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 DUP2 ADD DUP10 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 PUSH4 0x94491FAB SWAP2 PUSH1 0xA4 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x45DA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x45EE JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x4604 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP5 POP PUSH2 0x4611 DUP6 PUSH2 0x4B4D JUMP JUMPDEST SWAP4 POP PUSH2 0x4624 DUP5 PUSH2 0x15E3 DUP13 DUP13 DUP13 DUP13 DUP12 PUSH2 0x4B7D JUMP JUMPDEST SWAP3 POP PUSH2 0x4636 DUP6 DUP5 PUSH4 0xFFFFFFFF PUSH2 0x3B7B AND JUMP JUMPDEST SWAP5 POP POP POP SWAP7 POP SWAP7 POP SWAP7 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0x464E PUSH2 0x3382 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4658 PUSH2 0x2695 JUMP JUMPDEST PUSH2 0xFFFF AND GT PUSH2 0x469F JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5334 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x79BA5097 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x46F2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x4706 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x170A PUSH2 0x3B39 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD AND ISZERO ISZERO PUSH2 0x154A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F504F4F4C5F544F4B454E00000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x7472616E7366657228616464726573732C75696E743235362900000000000000 DUP2 MSTORE DUP2 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x19 ADD DUP2 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x64 SWAP1 SWAP3 ADD SWAP1 SWAP3 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE PUSH2 0x4835 SWAP1 DUP5 SWAP1 PUSH2 0x492D JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x4847 PUSH2 0x3A83 JUMP JUMPDEST DUP8 PUSH2 0x4851 DUP2 PUSH2 0x3303 JUMP JUMPDEST DUP8 PUSH2 0x485B DUP2 PUSH2 0x3303 JUMP JUMPDEST PUSH2 0x4866 DUP11 DUP11 DUP11 PUSH2 0x4C56 JUMP JUMPDEST SWAP1 SWAP5 POP SWAP3 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP10 AND PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x52F4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ ISZERO PUSH2 0x48C6 JUMPI PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND SWAP1 DUP6 ISZERO PUSH2 0x8FC MUL SWAP1 DUP7 SWAP1 PUSH1 0x0 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x48C0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH2 0x48D1 JUMP JUMPDEST PUSH2 0x48D1 DUP10 DUP8 DUP7 PUSH2 0x4783 JUMP JUMPDEST PUSH2 0x48DF DUP11 DUP11 DUP10 DUP12 DUP9 DUP9 PUSH2 0x4F6B JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 PUSH1 0x1 SWAP1 DUP2 ADD SLOAD SWAP4 DUP14 AND DUP4 MSTORE SWAP2 KECCAK256 ADD SLOAD PUSH2 0x491F SWAP2 DUP13 SWAP2 DUP13 SWAP2 PUSH4 0xFFFFFFFF SWAP1 DUP2 AND SWAP2 AND PUSH2 0x4FF0 JUMP JUMPDEST POP SWAP2 SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x4935 PUSH2 0x52B4 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE POP SWAP1 POP PUSH1 0x20 DUP2 DUP4 MLOAD PUSH1 0x20 DUP6 ADD PUSH1 0x0 DUP8 GAS CALL DUP1 ISZERO ISZERO PUSH2 0x4962 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD ISZERO ISZERO PUSH2 0x4835 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5452414E534645525F4641494C454400000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x49C3 PUSH2 0x529D JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x49CF DUP8 PUSH2 0x15A1 JUMP JUMPDEST SWAP2 POP PUSH2 0x49DA DUP7 PUSH2 0x15A1 JUMP JUMPDEST SWAP1 POP PUSH4 0xFFFFFFFF DUP6 AND ISZERO ISZERO PUSH2 0x4A0E JUMPI PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH4 0xFFFFFFFF AND SWAP5 POP JUMPDEST PUSH4 0xFFFFFFFF DUP5 AND ISZERO ISZERO PUSH2 0x4A40 JUMPI PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH4 0xFFFFFFFF AND SWAP4 POP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE DUP1 PUSH2 0x4A5E DUP4 PUSH4 0xFFFFFFFF DUP1 DUP11 AND SWAP1 PUSH2 0x38DA AND JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x4A76 DUP5 PUSH4 0xFFFFFFFF DUP1 DUP10 AND SWAP1 PUSH2 0x38DA AND JUMP JUMPDEST SWAP1 MSTORE SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH4 0xFFFFFFFF AND GT DUP1 ISZERO PUSH2 0x4AA2 JUMPI POP PUSH3 0xF4240 PUSH4 0xFFFFFFFF DUP3 AND GT ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x154A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F574549474854000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x4B00 PUSH2 0x529D JUMP JUMPDEST PUSH2 0x4B08 PUSH2 0x529D JUMP JUMPDEST DUP3 DUP5 LT PUSH2 0x4B20 JUMPI PUSH2 0x4B19 DUP5 DUP5 PUSH2 0x5081 JUMP JUMPDEST SWAP2 POP PUSH2 0x3957 JUMP JUMPDEST PUSH2 0x4B2A DUP4 DUP6 PUSH2 0x5081 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x20 DUP1 DUP4 ADD MLOAD DUP3 MSTORE DUP3 MLOAD SWAP1 DUP3 ADD MSTORE SWAP3 POP SWAP1 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x0 SWAP1 PUSH2 0x2AC5 SWAP1 PUSH3 0xF4240 SWAP1 PUSH2 0x16C3 SWAP1 DUP6 SWAP1 PUSH9 0x10000000000000000 SWAP1 DIV PUSH4 0xFFFFFFFF SWAP1 DUP2 AND SWAP1 PUSH2 0x38DA AND JUMP JUMPDEST PUSH1 0xB SLOAD PUSH1 0x0 SWAP1 DUP2 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x4BEB JUMPI PUSH1 0xA SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD PUSH1 0xB SLOAD SWAP1 SWAP5 AND DUP4 MSTORE SWAP1 SWAP2 KECCAK256 SLOAD DUP7 MLOAD SWAP2 DUP8 ADD MLOAD PUSH1 0x16 SLOAD PUSH2 0x4BE4 SWAP5 SWAP4 PUSH4 0xFFFFFFFF DUP1 DUP14 AND SWAP4 SWAP1 DUP13 AND SWAP3 PUSH2 0x513E JUMP JUMPDEST SWAP1 POP PUSH2 0x4C3A JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD PUSH1 0xB SLOAD SWAP1 SWAP5 AND DUP4 MSTORE SWAP1 SWAP2 KECCAK256 SLOAD DUP7 MLOAD SWAP2 DUP8 ADD MLOAD PUSH1 0x16 SLOAD PUSH2 0x4C37 SWAP5 SWAP4 PUSH4 0xFFFFFFFF DUP1 DUP13 AND SWAP4 SWAP1 DUP14 AND SWAP3 PUSH2 0x513E JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH2 0x4C4B PUSH3 0xF4240 PUSH2 0x16C3 DUP6 DUP5 PUSH2 0x38DA JUMP JUMPDEST SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x4C63 PUSH2 0x529D JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x4C71 PUSH2 0x51AA JUMP JUMPDEST SWAP6 POP SWAP6 POP PUSH2 0x4C84 DUP12 DUP12 PUSH1 0x0 DUP1 DUP10 DUP15 PUSH2 0x44AA JUMP JUMPDEST SWAP2 SWAP6 POP SWAP4 POP SWAP2 POP DUP4 ISZERO ISZERO PUSH2 0x4CE2 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5A45524F5F5441524745545F414D4F554E5400000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x4CEB DUP11 PUSH2 0x2AFF JUMP JUMPDEST SWAP1 POP DUP1 DUP5 LT PUSH2 0x4D44 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5441524745545F414D4F554E545F544F4F5F48494748000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x52F4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ ISZERO PUSH2 0x4DBF JUMPI CALLVALUE DUP10 EQ PUSH2 0x4DBA JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4554485F414D4F554E545F4D49534D41544348000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x4EC1 JUMP JUMPDEST CALLVALUE ISZERO DUP1 ISZERO PUSH2 0x4E6B JUMPI POP DUP9 PUSH2 0x4E68 PUSH2 0x4DD5 DUP14 PUSH2 0x2AFF JUMP JUMPDEST DUP14 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x4E30 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x4E44 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x4E5A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x3B7B AND JUMP JUMPDEST LT ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x4EC1 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F414D4F554E540000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x4ECA DUP12 PUSH2 0x3DC0 JUMP JUMPDEST PUSH2 0x4EDA DUP2 DUP6 PUSH4 0xFFFFFFFF PUSH2 0x3B7B AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE PUSH1 0xC SWAP1 MSTORE KECCAK256 SLOAD PUSH2 0x4F0F SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0x395E AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE DUP6 ISZERO PUSH2 0x4F5A JUMPI PUSH1 0xA SLOAD PUSH1 0xB SLOAD PUSH2 0x4F4D SWAP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 DUP2 AND SWAP2 AND PUSH1 0x0 DUP1 PUSH2 0x49BB JUMP JUMPDEST DUP1 MLOAD PUSH1 0x12 SSTORE PUSH1 0x20 ADD MLOAD PUSH1 0x13 SSTORE JUMPDEST POP SWAP2 SWAP10 SWAP2 SWAP9 POP SWAP1 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0x8000000000000000000000000000000000000000000000000000000000000000 DUP2 LT PUSH2 0x4F94 JUMPI INVALID JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP5 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 SWAP1 MSTORE DUP1 DUP3 ADD DUP4 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP8 AND SWAP3 DUP9 DUP3 AND SWAP3 SWAP2 DUP11 AND SWAP2 PUSH32 0x276856B36CBC45526A0BA64F44611557A2A8B68662C5388E9FE6D72E86E1C8CB SWAP2 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG4 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x4FFF DUP7 DUP7 DUP7 DUP7 PUSH2 0x3D23 JUMP JUMPDEST PUSH2 0x5008 DUP6 PUSH2 0x2033 JUMP JUMPDEST SWAP2 POP DUP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x18160DDD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x5048 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x505C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x5072 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 POP PUSH2 0x2227 DUP3 DUP3 DUP8 PUSH2 0x3CC3 JUMP JUMPDEST PUSH2 0x5089 PUSH2 0x529D JUMP JUMPDEST PUSH20 0x14484BFEEBC29F863424B06F3529A051A31BE599 DUP3 GT ISZERO PUSH2 0x50DB JUMPI PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH13 0xC9F2C9CD04674EDEA40000000 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 DUP6 DIV DUP5 DUP2 ISZERO ISZERO PUSH2 0x50D1 JUMPI INVALID JUMPDEST DIV SWAP1 MSTORE SWAP1 POP PUSH2 0x2AC5 JUMP JUMPDEST PUSH13 0xC9F2C9CD04674EDEA40000000 DUP4 GT ISZERO PUSH2 0x5128 JUMPI PUSH1 0x40 DUP1 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH13 0xC9F2C9CD04674EDEA40000000 DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH13 0xC9F2C9CD04674EDEA40000000 DUP6 MUL DUP2 ISZERO ISZERO PUSH2 0x50D1 JUMPI INVALID JUMPDEST POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 PUSH2 0x5156 DUP8 PUSH2 0x4358 DUP13 DUP10 PUSH4 0xFFFFFFFF PUSH2 0x38DA AND JUMP JUMPDEST SWAP2 POP PUSH2 0x516C DUP9 PUSH2 0x4358 DUP12 DUP9 PUSH4 0xFFFFFFFF PUSH2 0x38DA AND JUMP JUMPDEST SWAP1 POP DUP2 DUP2 GT ISZERO PUSH2 0x5198 JUMPI PUSH2 0x5191 DUP2 PUSH2 0x16C3 PUSH1 0x14 PUSH2 0x4358 DUP7 DUP5 SUB DUP10 PUSH4 0xFFFFFFFF PUSH2 0x38DA AND JUMP JUMPDEST SWAP3 POP PUSH2 0x519D JUMP JUMPDEST PUSH1 0x0 SWAP3 POP JUMPDEST POP POP SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x51B4 PUSH2 0x529D JUMP JUMPDEST PUSH1 0x0 PUSH2 0x51BE PUSH2 0x529D JUMP JUMPDEST PUSH2 0x51C6 PUSH2 0x529D JUMP JUMPDEST PUSH2 0x51CE PUSH2 0x37C4 JUMP JUMPDEST SWAP3 POP DUP3 PUSH1 0x11 SLOAD EQ ISZERO PUSH2 0x51FC JUMPI PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0xF SLOAD DUP2 MSTORE PUSH1 0x10 SLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 SWAP6 POP SWAP4 POP PUSH2 0x315F JUMP JUMPDEST PUSH2 0x5204 PUSH2 0x413C JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0xF SLOAD DUP1 DUP3 MSTORE PUSH1 0x10 SLOAD PUSH1 0x20 DUP4 ADD MSTORE DUP3 MLOAD SWAP3 SWAP5 POP SWAP1 SWAP3 POP EQ DUP1 ISZERO PUSH2 0x5238 JUMPI POP DUP1 PUSH1 0x20 ADD MLOAD DUP3 PUSH1 0x20 ADD MLOAD EQ JUMPDEST ISZERO PUSH2 0x5249 JUMPI PUSH1 0x0 DUP3 SWAP5 POP SWAP5 POP PUSH2 0x315F JUMP JUMPDEST DUP2 MLOAD PUSH1 0xF SSTORE PUSH1 0x20 DUP3 ADD MLOAD PUSH1 0x10 SSTORE PUSH1 0x11 DUP4 SWAP1 SSTORE PUSH2 0x5263 PUSH2 0x37C8 JUMP JUMPDEST POP PUSH1 0x1 SWAP5 SWAP1 SWAP4 POP SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xA0 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE SWAP2 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x60 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 SWAP1 PUSH1 0x20 DUP3 MUL DUP1 CODESIZE DUP4 CODECOPY POP SWAP2 SWAP3 SWAP2 POP POP JUMP STOP MSTORE8 PUSH16 0x7672796E53776170436F6E7665727465 PUSH19 0x55706772616465720000000000000000000000 STOP STOP STOP STOP STOP STOP 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee GASLIMIT MSTORE MSTORE 0x5f COINBASE NUMBER NUMBER GASLIMIT MSTORE8 MSTORE8 0x5f DIFFICULTY GASLIMIT 0x4e 0x49 GASLIMIT DIFFICULTY STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP GASLIMIT MSTORE MSTORE 0x5f 0x49 0x4e JUMP COINBASE 0x4c 0x49 DIFFICULTY 0x5f MSTORE GASLIMIT MSTORE8 GASLIMIT MSTORE JUMP GASLIMIT 0x5f NUMBER 0x4f SSTORE 0x4e SLOAD STOP STOP STOP STOP STOP STOP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 0xd6 0xce 0xae 0xf 0xa8 DUP15 OR PUSH16 0xCEC4250A8A72385CF1AE86E302A34151 0x47 0xc 0xa7 SWAP10 PUSH26 0x55CCC20029000000000000000000000000000000000000000000 ", + "sourceMap": "651:42579:25:-;;;249:1:68;362:32;;;;2700:30:4;;;-1:-1:-1;;;;;;2993:31:4;;;2354:42:25;;;-1:-1:-1;;2354:42:25;;;;;;2439:5;2405:39;;3175:214;5:2:-1;;;;30:1;27;20:12;5:2;3175:214:25;;;;;;;;;;;;;;;;;;;;;;;;;488:5:66;:18;;-1:-1:-1;;;;;;488:18:66;496:10;488:18;;;3175:214:25;;;;;;;;475:23:72;3175:214:25;475:13:72;;;;:23;:::i;:::-;-1:-1:-1;1931:8:60;:39;;-1:-1:-1;;;;;1931:39:60;;;-1:-1:-1;;;;;;1931:39:60;;;;;;;;1974:12;:43;;;;;;;;5395:7:4;475:23:72;5395:7:4;475:13:72;;;;:23;:::i;:::-;5457:17:4;6403:35;5457:17;6403:19;;;;:35;:::i;:::-;-1:-1:-1;;5480:6:4;:16;;-1:-1:-1;;;;;5480:16:4;;;-1:-1:-1;;;;;;5480:16:4;;;;;;;;;;-1:-1:-1;5500:16:4;:36;;;;;;;;-1:-1:-1;;5500:36:4;;;;;;;;;-1:-1:-1;651:42579:25;;-1:-1:-1;;;;;651:42579:25;553:117:72;-1:-1:-1;;;;;620:22:72;;;;612:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;553:117;:::o;6493:156:4:-;1826:7;6571:43;;;;;6563:82;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;651:42579:25;;;;;;;" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "6080604052600436106103125763ffffffff60e060020a6000350416625e319c81146103b0578063024c7ec7146103e35780630337e3fb146103fd5780630a55fb3d1461042e5780630c7d5cd8146104575780630e53aae914610485578063119b90cd146104da57806312c2aca41461050757806316912f961461051c57806319b64015146105315780631cfab290146105495780631e1401f81461056a57806321e6b53d146105ad57806322f3e2d4146105ce5780632630c12f146105e35780632bd3c107146105f85780632bf0c985146106195780632fe8a6ad1461063a57806338a5e0161461064f578063395900d4146106645780633e8ff43f1461068e57806346749468146106ba57806349d10b64146106d55780634af80f0e146106ea57806354fd4d501461070b57806355776b77146107205780635768adcf1461073a578063579cd3ca1461075b5780635e35359e1461077057806361cd756e1461079a57806367b6d57c146107af57806369067d95146107d0578063690d8320146107f457806369d1354a146108155780636a49d2c41461082d57806371f52bf31461085757806379ba50971461086c5780637b103999146108815780638da5cb5b1461089657806394c275ad146108ab57806398a71dcb146108c05780639b99a8e2146108e1578063a32bff44146108f6578063af94b8d81461090b578063b4a176d314610935578063bf7545581461094a578063bf7da6ba1461095f578063c3321fb014610983578063c45d3d9214610998578063cdc91c69146109ad578063d031370b146109c2578063d260529c146109da578063d3fb73b4146109ef578063d4ee1d9014610a04578063d55ec69714610a19578063d64c5a1a14610a2e578063d66bd52414610a59578063d895951214610a7a578063db2830a414610a9b578063dc75eb9a14610ab0578063dc8de37914610ac5578063e38192e314610ae6578063e8104af914610b0d578063e8dc12ff14610b22578063ec2240f514610b4c578063ecbca55d14610b61578063f2fde38b14610b7f578063f9cddde214610ba0578063fc0c546a14610bb5575b6000805160206152f483398151915260005260086020527f353c2eb9e53a4a4a6d45d72082ff2e9dc829d1125618772a83eb0e7f86632c43546601000000000000900460ff1615156103ae576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f5245534552564500000000000000000000000000604482015290519081900360640190fd5b005b3480156103bc57600080fd5b506103d1600160a060020a0360043516610bca565b60408051918252519081900360200190f35b3480156103ef57600080fd5b506103ae6004351515610bf3565b34801561040957600080fd5b50610412610c3b565b60408051600160a060020a039092168252519081900360200190f35b34801561043a57600080fd5b50610443610c4a565b604080519115158252519081900360200190f35b34801561046357600080fd5b5061046c610c53565b6040805163ffffffff9092168252519081900360200190f35b34801561049157600080fd5b506104a6600160a060020a0360043516610c5f565b6040805195865263ffffffff9094166020860152911515848401521515606084015215156080830152519081900360a00190f35b3480156104e657600080fd5b506103ae600160a060020a0360043581169060243581169060443516610cfa565b34801561051357600080fd5b50610443611464565b34801561052857600080fd5b506103ae6114ad565b34801561053d57600080fd5b506104126004356114c1565b34801561055557600080fd5b5061046c600160a060020a03600435166114ed565b34801561057657600080fd5b50610594600160a060020a036004358116906024351660443561151f565b6040805192835260208301919091528051918290030190f35b3480156105b957600080fd5b506103ae600160a060020a0360043516611539565b3480156105da57600080fd5b5061044361154d565b3480156105ef57600080fd5b50610412611582565b34801561060457600080fd5b506103d1600160a060020a03600435166115a1565b34801561062557600080fd5b506103d1600160a060020a03600435166115f6565b34801561064657600080fd5b506104436116d9565b34801561065b57600080fd5b506103ae6116fa565b34801561067057600080fd5b506103ae600160a060020a036004358116906024351660443561170c565b34801561069a57600080fd5b506106a36117a7565b6040805161ffff9092168252519081900360200190f35b3480156106c657600080fd5b506103ae6004356024356117ac565b3480156106e157600080fd5b506103ae611830565b3480156106f657600080fd5b506103ae600160a060020a0360043516611a90565b34801561071757600080fd5b506106a3611ac5565b6103d1600160a060020a0360043516602435604435611aca565b34801561074657600080fd5b50610412600160a060020a0360043516612033565b34801561076757600080fd5b5061046c612051565b34801561077c57600080fd5b506103ae600160a060020a0360043581169060243516604435612069565b3480156107a657600080fd5b5061041261217d565b3480156107bb57600080fd5b506103ae600160a060020a036004351661218c565b3480156107dc57600080fd5b50610594600160a060020a036004351660243561222f565b34801561080057600080fd5b506103ae600160a060020a036004351661238a565b34801561082157600080fd5b506103ae60043561248f565b34801561083957600080fd5b506103ae600160a060020a036004351663ffffffff60243516612534565b34801561086357600080fd5b506106a3612593565b34801561087857600080fd5b506103ae61259d565b34801561088d57600080fd5b50610412612651565b3480156108a257600080fd5b50610412612660565b3480156108b757600080fd5b5061046c61266f565b3480156108cc57600080fd5b506103d1600160a060020a0360043516612683565b3480156108ed57600080fd5b506106a3612695565b34801561090257600080fd5b5061059461269b565b34801561091757600080fd5b50610594600160a060020a03600435811690602435166044356126a4565b34801561094157600080fd5b506103ae612848565b34801561095657600080fd5b50610443612874565b34801561096b57600080fd5b506103ae600160a060020a0360043516602435612879565b34801561098f57600080fd5b506103d16128c1565b3480156109a457600080fd5b506104126128c7565b3480156109b957600080fd5b506103ae6128d6565b3480156109ce57600080fd5b5061041260043561292f565b3480156109e657600080fd5b50610443612957565b3480156109fb57600080fd5b5061041261295c565b348015610a1057600080fd5b5061041261296b565b348015610a2557600080fd5b506103ae61297a565b348015610a3a57600080fd5b50610a43612a6f565b6040805160ff9092168252519081900360200190f35b348015610a6557600080fd5b506104a6600160a060020a0360043516612a74565b348015610a8657600080fd5b506103d1600160a060020a0360043516612aba565b348015610aa757600080fd5b50610594612acb565b348015610abc57600080fd5b50610412612af0565b348015610ad157600080fd5b506103d1600160a060020a0360043516612aff565b348015610af257600080fd5b506103d1600160a060020a0360043516602435604435612b28565b348015610b1957600080fd5b506103d1612e8d565b6103d1600160a060020a036004358116906024358116906044359060643581169060843516612e93565b348015610b5857600080fd5b506105946130e6565b348015610b6d57600080fd5b506103ae63ffffffff60043516613166565b348015610b8b57600080fd5b506103ae600160a060020a036004351661325b565b348015610bac57600080fd5b506105946132eb565b348015610bc157600080fd5b506104126132f4565b600081610bd681613303565b5050600160a060020a03166000908152600c602052604090205490565b610bfb613382565b60038054911515740100000000000000000000000000000000000000000274ff000000000000000000000000000000000000000019909216919091179055565b600a54600160a060020a031681565b60155460ff1681565b60095463ffffffff1681565b6000806000806000610c6f61526f565b50505050600160a060020a03929092166000908152600860209081526040808320815160a081018352815480825260019092015463ffffffff811694820185905260ff64010000000082048116151594830194909452650100000000008104841615156060830152660100000000000090049092161515608090920182905295919450919250829190565b6000806000806000610d0a6133d2565b610d12613382565b87610d1c81613303565b87610d268161342f565b87610d308161342f565b89610d3a81613490565b89610d4481613490565b600554604080517f8da5cb5b00000000000000000000000000000000000000000000000000000000815290513092600160a060020a031691638da5cb5b9160048083019260209291908290030181600087803b158015610da357600080fd5b505af1158015610db7573d6000803e3d6000fd5b505050506040513d6020811015610dcd57600080fd5b5051600160a060020a031614610e2d576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f414e43484f525f4e4f545f4f574e4544000000000000000000000000604482015290519081900360640190fd5b610e567f436861696e6c696e6b4f7261636c6557686974656c69737400000000000000006134f0565b995089600160a060020a0316633af32abf8d6040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b158015610eb357600080fd5b505af1158015610ec7573d6000803e3d6000fd5b505050506040513d6020811015610edd57600080fd5b50511515610f35576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f494e56414c49445f4f5241434c450000000000000000000000000000604482015290519081900360640190fd5b89600160a060020a0316633af32abf8c6040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b158015610f9057600080fd5b505af1158015610fa4573d6000803e3d6000fd5b505050506040513d6020811015610fba57600080fd5b50511515611012576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f494e56414c49445f4f5241434c450000000000000000000000000000604482015290519081900360640190fd5b61101a613588565b600a8054600160a060020a031916600160a060020a038f1617905560078054600090811061104457fe5b600091825260209091200154600160a060020a038e8116911614156110a25760078054600190811061107257fe5b600091825260209091200154600b8054600160a060020a031916600160a060020a039092169190911790556110dd565b6007805460009081106110b157fe5b600091825260209091200154600b8054600160a060020a031916600160a060020a039092169190911790555b6111067f436f6e766572746572466163746f7279000000000000000000000000000000006134f0565b600160a060020a031663c977aed261111c6117a7565b6040518263ffffffff1660e060020a028152600401808261ffff1661ffff168152602001915050602060405180830381600087803b15801561115d57600080fd5b505af1158015611171573d6000803e3d6000fd5b505050506040513d602081101561118757600080fd5b8101908080519060200190929190505050985088600160a060020a0316631b27444e8e600b60009054906101000a9004600160a060020a03168f8f6040518563ffffffff1660e060020a0281526004018085600160a060020a0316600160a060020a0316815260200184600160a060020a0316600160a060020a0316815260200183600160a060020a0316600160a060020a0316815260200182600160a060020a0316600160a060020a03168152602001945050505050602060405180830381600087803b15801561125857600080fd5b505af115801561126c573d6000803e3d6000fd5b505050506040513d602081101561128257600080fd5b5051600980546bffffffffffffffffffffffff166c01000000000000000000000000600160a060020a0393841681029190911791829055600a54600b54604080517fae818004000000000000000000000000000000000000000000000000000000008152928616600484015290851660248301528051929093049093169263ae8180049260448083019391928290030181600087803b15801561132457600080fd5b505af1158015611338573d6000803e3d6000fd5b505050506040513d604081101561134e57600080fd5b5080516020909101516010819055600f8290556012919091556013556113726137c4565b601155600a5461138a90600160a060020a0316610bca565b600a549098506113a290600160a060020a0316612aff565b600b549097506113ba90600160a060020a0316612aff565b9550868814156113e55760008811806113d35750600086115b156113e0576113e06137c8565b61140e565b6000881180156113f55750600087115b80156114015750600086115b1561140e5761140e6137c8565b600554600190600160a060020a03166114256117a7565b61ffff167f6b08c2e2c9969e55a647a764db9b554d64dc42f1a704da11a6d5b129ad163f2c60405160405180910390a450505050505050505050505050565b6000805160206152f483398151915260005260086020527f353c2eb9e53a4a4a6d45d72082ff2e9dc829d1125618772a83eb0e7f86632c43546601000000000000900460ff1690565b6114b5613382565b6015805460ff19169055565b60006007828154811015156114d257fe5b600091825260209091200154600160a060020a031692915050565b6000816114f981613303565b5050600160a060020a031660009081526008602052604090206001015463ffffffff1690565b60008061152d8585856126a4565b91509150935093915050565b611541613382565b61154a8161218c565b50565b6000611557613840565b801561157d57506009546c010000000000000000000000009004600160a060020a031615155b905090565b6009546c010000000000000000000000009004600160a060020a031681565b6000816115ad81613303565b6115ef6115b984612aff565b600160a060020a0385166000908152600c60205260409020546115e390601363ffffffff6138da16565b9063ffffffff61395e16565b9392505050565b600080600080600085600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561163c57600080fd5b505af1158015611650573d6000803e3d6000fd5b505050506040513d602081101561166657600080fd5b5051600160a060020a038088166000908152600e602052604090205491955016925061169183612aff565b600160a060020a0384166000908152600c602052604090205490925090506116cf816116c3848763ffffffff6138da16565b9063ffffffff6139bb16565b9695505050505050565b60035474010000000000000000000000000000000000000000900460ff1681565b611702613382565b61170a6128d6565b565b611714613382565b600554604080517f5e35359e000000000000000000000000000000000000000000000000000000008152600160a060020a03868116600483015285811660248301526044820185905291519190921691635e35359e91606480830192600092919082900301818387803b15801561178a57600080fd5b505af115801561179e573d6000803e3d6000fd5b50505050505050565b600290565b6117b4613382565b8160146000600760008154811015156117c957fe5b6000918252602080832090910154600160a060020a031683528201929092526040018120919091556007805483926014929091600190811061180757fe5b6000918252602080832090910154600160a060020a031683528201929092526040019020555050565b60008054600160a060020a0316331480611865575060035474010000000000000000000000000000000000000000900460ff16155b15156118a9576040805160e560020a62461bcd0281526020600482015260116024820152600080516020615314833981519152604482015290519081900360640190fd5b6118d27f436f6e74726163745265676973747279000000000000000000000000000000006134f0565b600254909150600160a060020a038083169116148015906118fb5750600160a060020a03811615155b1515611951576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e56414c49445f5245474953545259000000000000000000000000604482015290519081900360640190fd5b604080517fbb34534c0000000000000000000000000000000000000000000000000000000081527f436f6e747261637452656769737472790000000000000000000000000000000060048201529051600091600160a060020a0384169163bb34534c9160248082019260209290919082900301818787803b1580156119d557600080fd5b505af11580156119e9573d6000803e3d6000fd5b505050506040513d60208110156119ff57600080fd5b5051600160a060020a03161415611a60576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e56414c49445f5245474953545259000000000000000000000000604482015290519081900360640190fd5b6002805460038054600160a060020a03808416600160a060020a0319928316179092559091169216919091179055565b611a98613382565b80611aa28161342f565b5060068054600160a060020a031916600160a060020a0392909216919091179055565b602081565b6000806000806000611ada613a29565b6002600455611ae7613a83565b87611af181613303565b87611afb81613ae1565b87611b0581613ae1565b600160a060020a038b166000805160206152f483398151915214611b2a573415611b2e565b8934145b1515611b84576040805160e560020a62461bcd02815260206004820152601760248201527f4552525f4554485f414d4f554e545f4d49534d41544348000000000000000000604482015290519081900360640190fd5b611b8c613b39565b600160a060020a038b166000805160206152f48339815191521415611c2e576000805160206152f483398151915260005260086020527f353c2eb9e53a4a4a6d45d72082ff2e9dc829d1125618772a83eb0e7f86632c4254611bf4903463ffffffff613b7b16565b6000805160206152f483398151915260005260086020527f353c2eb9e53a4a4a6d45d72082ff2e9dc829d1125618772a83eb0e7f86632c42555b600160a060020a038b166000908152600c602052604090205460155490975060ff1615611cf757600160a060020a038b166000908152601460205260409020541580611ca15750600160a060020a038b16600090815260146020526040902054611c9e888c63ffffffff61395e16565b11155b1515611cf7576040805160e560020a62461bcd02815260206004820152601e60248201527f4552525f4d41585f5354414b45445f42414c414e43455f524541434845440000604482015290519081900360640190fd5b600160a060020a03808c166000908152600d602090815260408083205481517f18160ddd00000000000000000000000000000000000000000000000000000000815291519416995089936318160ddd93600480840194938390030190829087803b158015611d6457600080fd5b505af1158015611d78573d6000803e3d6000fd5b505050506040513d6020811015611d8e57600080fd5b50519450600160a060020a038b166000805160206152f483398151915214611dbc57611dbc8b33308d613bdb565b600160a060020a038b16600090815260086020526040902054611de5908b63ffffffff61395e16565b600160a060020a038c16600090815260086020526040902055611e0e878b63ffffffff61395e16565b600160a060020a038c166000908152600c60205260408120919091559350861580611e37575084155b15611e4457899350611e5b565b611e58876116c38c8863ffffffff6138da16565b93505b88841015611eb3576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f52455455524e5f544f4f5f4c4f570000000000000000000000000000604482015290519081900360640190fd5b600554604080517fc6c3bbe6000000000000000000000000000000000000000000000000000000008152600160a060020a038981166004830152336024830152604482018890529151919092169163c6c3bbe691606480830192600092919082900301818387803b158015611f2757600080fd5b505af1158015611f3b573d6000803e3d6000fd5b50505050611f476137c8565b600160a060020a038b16337f4a1a2a6176e9646d9e3157f7c2ab3c499f18337c0b0828cfb28e0a61de4a11f78c611f848b8263ffffffff61395e16565b611f948a8a63ffffffff61395e16565b60408051938452602084019290925282820152519081900360600190a3611fcb86611fc5878763ffffffff61395e16565b8d613cc3565b61202060076000815481101515611fde57fe5b60009182526020909120015460078054600160a060020a0390921691600190811061200557fe5b6000918252602082200154600160a060020a03169080613d23565b5050600160045550979650505050505050565b600160a060020a039081166000908152600d60205260409020541690565b60095468010000000000000000900463ffffffff1681565b6000612073613a29565b6002600455612080613382565b6120976000805160206152d48339815191526134f0565b600160a060020a0385166000908152600860205260409020600101549091506601000000000000900460ff1615806120d457506120d261154d565b155b806120ec5750600054600160a060020a038281169116145b1515612130576040805160e560020a62461bcd0281526020600482015260116024820152600080516020615314833981519152604482015290519081900360640190fd5b61213b848484613d8f565b600160a060020a0384166000908152600860205260409020600101546601000000000000900460ff16156121725761217284613dc0565b505060016004555050565b600354600160a060020a031681565b612194613382565b6000805160206152d48339815191526121ac81613eb4565b600554604080517ff2fde38b000000000000000000000000000000000000000000000000000000008152600160a060020a0385811660048301529151919092169163f2fde38b91602480830192600092919082900301818387803b15801561221357600080fd5b505af1158015612227573d6000803e3d6000fd5b505050505050565b6000806000806000806000806000808b600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561227c57600080fd5b505af1158015612290573d6000803e3d6000fd5b505050506040513d60208110156122a657600080fd5b5051600160a060020a03808e166000908152600e60209081526040808320549093168252600c905220549098509650878b101561237157600a54600160a060020a03166000908152600c602052604090205461230990601463ffffffff6138da16565b600a5490965061232190600160a060020a03166115a1565b9450848610612331578486612334565b85855b909450925061234d886116c38d8a63ffffffff6138da16565b9150612363836116c3848763ffffffff6138da16565b99505088810397508861237b565b9598506000975088955b50505050505050509250929050565b6000612394613a29565b60026004556123a1613382565b6000805160206152f48339815191526123b981613303565b6123d06000805160206152d48339815191526134f0565b91506123da61154d565b15806123f35750600054600160a060020a038381169116145b1515612437576040805160e560020a62461bcd0281526020600482015260116024820152600080516020615314833981519152604482015290519081900360640190fd5b604051600160a060020a03841690303180156108fc02916000818181858888f1935050505015801561246d573d6000803e3d6000fd5b506124856000805160206152f4833981519152613dc0565b5050600160045550565b612497613382565b620186a08111156124f2576040805160e560020a62461bcd02815260206004820152601e60248201527f4552525f494e56414c49445f44594e414d49435f4645455f464143544f520000604482015290519081900360640190fd5b601654604080519182526020820183905280517f382fd3516344712a511dcd464ff8e6ab54139d6a28f64087a3253353ee7a56799281900390910190a1601655565b600261253e612695565b61ffff1610612585576040805160e560020a62461bcd0281526020600482015260196024820152600080516020615334833981519152604482015290519081900360640190fd5b61258f8282613f0a565b5050565b600061157d612695565b600154600160a060020a031633146125ed576040805160e560020a62461bcd0281526020600482015260116024820152600080516020615314833981519152604482015290519081900360640190fd5b60015460008054604051600160a060020a0393841693909116917f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91a36001805460008054600160a060020a0319908116600160a060020a03841617909155169055565b600254600160a060020a031681565b600054600160a060020a031681565b600954640100000000900463ffffffff1681565b60146020526000908152604090205481565b60075490565b600f5460105482565b6000806000806126b261529d565b6000806000806126c0613a83565b6126c98c613303565b6126d28b613303565b600160a060020a038c8116908c161415612736576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f53414d455f534f555243455f54415247455400000000000000000000604482015290519081900360640190fd5b61273e6137c4565b60115414156127e557600f604080519081016040529081600082015481526020016001820154815250509450600860008d600160a060020a0316600160a060020a0316815260200190815260200160002060010160009054906101000a900463ffffffff169650600860008c600160a060020a0316600160a060020a0316815260200190815260200160002060010160009054906101000a900463ffffffff169550612825565b6127ed61413c565b94506127f885614380565b600a549195509350600160a060020a038d81169116141561281e57839650829550612825565b8296508395505b6128338c8c8989898f6144aa565b919e919d50909b505050505050505050505050565b612850613382565b60035460028054600160a060020a031916600160a060020a03909216919091179055565b600181565b612881613382565b6000805160206152d483398151915261289981613eb4565b826128a381613303565b5050600160a060020a039091166000908152600c6020526040902055565b60115481565b600654600160a060020a031681565b60016128e0612695565b61ffff1611612927576040805160e560020a62461bcd0281526020600482015260196024820152600080516020615334833981519152604482015290519081900360640190fd5b61170a614646565b600780548290811061293d57fe5b600091825260209091200154600160a060020a0316905081565b600190565b600554600160a060020a031681565b600154600160a060020a031681565b6000612984613382565b61299b6000805160206152d48339815191526134f0565b600554909150600090600160a060020a03166129b56117a7565b61ffff167f6b08c2e2c9969e55a647a764db9b554d64dc42f1a704da11a6d5b129ad163f2c60405160405180910390a46129ee8161325b565b604080517f90f58c96000000000000000000000000000000000000000000000000000000008152602060048201529051600160a060020a038316916390f58c9691602480830192600092919082900301818387803b158015612a4f57600080fd5b505af1158015612a63573d6000803e3d6000fd5b5050505061154a61259d565b601490565b6008602052600090815260409020805460019091015463ffffffff81169060ff640100000000820481169165010000000000810482169166010000000000009091041685565b6000612ac582612aff565b92915050565b600080612ad661529d565b612ade61413c565b80516020909101519094909350915050565b600b54600160a060020a031681565b600081612b0b81613303565b5050600160a060020a031660009081526008602052604090205490565b600080600080600080612b39613a29565b6002600455612b46613a83565b88612b5081614712565b88612b5a81613ae1565b88612b6481613ae1565b612b6c613b39565b8b600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015612baa57600080fd5b505af1158015612bbe573d6000803e3d6000fd5b505050506040513d6020811015612bd457600080fd5b50519750612be28c8c61222f565b50965089871015612c3d576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f52455455524e5f544f4f5f4c4f570000000000000000000000000000604482015290519081900360640190fd5b600e60008d600160a060020a0316600160a060020a0316815260200190815260200160002060009054906101000a9004600160a060020a03169550600560009054906101000a9004600160a060020a0316600160a060020a031663f6b911bc8d338e6040518463ffffffff1660e060020a0281526004018084600160a060020a0316600160a060020a0316815260200183600160a060020a0316600160a060020a031681526020018281526020019350505050600060405180830381600087803b158015612d0a57600080fd5b505af1158015612d1e573d6000803e3d6000fd5b505050600160a060020a038716600090815260086020526040902054612d4b91508863ffffffff613b7b16565b600160a060020a038716600090815260086020908152604080832093909355600c90522054612d80908863ffffffff613b7b16565b600160a060020a0387166000818152600c602052604090208290559095506000805160206152f48339815191521415612de657604051339088156108fc029089906000818181858888f19350505050158015612de0573d6000803e3d6000fd5b50612df1565b612df1863389614783565b612df96137c8565b612e09888c63ffffffff613b7b16565b60408051898152602081018890528082018390529051919550600160a060020a0388169133917fbc7d19d505c7ec4db83f3b51f19fb98c4c8a99922e7839d1ee608dfbee29501b919081900360600190a3612e658c8588613cc3565b612e7860076000815481101515611fde57fe5b50506001600455509298975050505050505050565b60165481565b6000612e9d613a29565b60026004557f536f7672796e537761704e6574776f726b000000000000000000000000000000612ecc81613eb4565b600160a060020a038781169087161415612f30576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f53414d455f534f555243455f54415247455400000000000000000000604482015290519081900360640190fd5b600654600160a060020a031615806130735750600654604080517f3af32abf000000000000000000000000000000000000000000000000000000008152600160a060020a03878116600483015291519190921691633af32abf9160248083019260209291908290030181600087803b158015612fab57600080fd5b505af1158015612fbf573d6000803e3d6000fd5b505050506040513d6020811015612fd557600080fd5b505180156130735750600654604080517f3af32abf000000000000000000000000000000000000000000000000000000008152600160a060020a03868116600483015291519190921691633af32abf9160248083019260209291908290030181600087803b15801561304657600080fd5b505af115801561305a573d6000803e3d6000fd5b505050506040513d602081101561307057600080fd5b50515b15156130c9576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f4e4f545f57484954454c495354454400000000000000000000000000604482015290519081900360640190fd5b6130d6878787878761483a565b6001600455979650505050505050565b6000806130f161529d565b6000806130fc61413c565b925061310783614380565b915091506007600081548110151561311b57fe5b600091825260209091200154600a54600160a060020a03908116911614156131505763ffffffff80831695508116935061315f565b63ffffffff8082169550821693505b5050509091565b61316e613382565b60095463ffffffff640100000000909104811690821611156131da576040805160e560020a62461bcd02815260206004820152601a60248201527f4552525f494e56414c49445f434f4e56455253494f4e5f464545000000000000604482015290519081900360640190fd5b6009546040805163ffffffff6801000000000000000090930483168152918316602083015280517f81cd2ffb37dd237c0e4e2a3de5265fcf9deb43d3e7801e80db9f1ccfba7ee6009281900390910190a16009805463ffffffff90921668010000000000000000026bffffffff000000000000000019909216919091179055565b613263613382565b600054600160a060020a03828116911614156132c9576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f53414d455f4f574e4552000000000000000000000000000000000000604482015290519081900360640190fd5b60018054600160a060020a031916600160a060020a0392909216919091179055565b60125460135482565b600554600160a060020a031690565b600160a060020a0381166000908152600860205260409020600101546601000000000000900460ff16151561154a576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f5245534552564500000000000000000000000000604482015290519081900360640190fd5b600054600160a060020a0316331461170a576040805160e560020a62461bcd0281526020600482015260116024820152600080516020615314833981519152604482015290519081900360640190fd5b6133da61154d565b1561170a576040805160e560020a62461bcd02815260206004820152600a60248201527f4552525f41435449564500000000000000000000000000000000000000000000604482015290519081900360640190fd5b600160a060020a03811630141561154a576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f414444524553535f49535f53454c4600000000000000000000000000604482015290519081900360640190fd5b600160a060020a038116151561154a576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b600254604080517fbb34534c000000000000000000000000000000000000000000000000000000008152600481018490529051600092600160a060020a03169163bb34534c91602480830192602092919082900301818787803b15801561355657600080fd5b505af115801561356a573d6000803e3d6000fd5b505050506040513d602081101561358057600080fd5b505192915050565b60006060600080600080600560009054906101000a9004600160a060020a0316955085600160a060020a0316636d3e313e6040518163ffffffff1660e060020a028152600401600060405180830381600087803b1580156135e857600080fd5b505af11580156135fc573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561362557600080fd5b81019080805164010000000081111561363d57600080fd5b8201602081018481111561365057600080fd5b815185602082028301116401000000008211171561366d57600080fd5b505080516007549199501597509550600094505050505b828210156122275783156137035785600160a060020a0316639cbf9e366040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156136d057600080fd5b505af11580156136e4573d6000803e3d6000fd5b505050506040513d60208110156136fa57600080fd5b5051905061371e565b848281518110151561371157fe5b9060200190602002015190505b80600d600060078581548110151561373257fe5b600091825260208083209190910154600160a060020a03908116845290830193909352604090910190208054600160a060020a03191692909116919091179055600780548390811061378057fe5b6000918252602080832090910154600160a060020a038481168452600e90925260409092208054600160a060020a0319169190921617905560019190910190613684565b4290565b60408051808201909152600f548152601054602082015260009081906137ed90614380565b600a54600160a060020a039081166000908152600860205260408082206001908101805463ffffffff97881663ffffffff1991821617909155600b54909416835291200180549290931691161790555050565b600030600160a060020a0316600560009054906101000a9004600160a060020a0316600160a060020a0316638da5cb5b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561389f57600080fd5b505af11580156138b3573d6000803e3d6000fd5b505050506040513d60208110156138c957600080fd5b5051600160a060020a031614905090565b6000808315156138ed5760009150613957565b508282028284828115156138fd57fe5b0414613953576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b8091505b5092915050565b600082820183811015613953576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b600080808311613a15576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f4449564944455f42595f5a45524f0000000000000000000000000000604482015290519081900360640190fd5b8284811515613a2057fe5b04949350505050565b60045460011461170a576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f5245454e5452414e4359000000000000000000000000000000000000604482015290519081900360640190fd5b613a8b61154d565b151561170a576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f494e4143544956450000000000000000000000000000000000000000604482015290519081900360640190fd5b6000811161154a576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f5a45524f5f56414c5545000000000000000000000000000000000000604482015290519081900360640190fd5b60075460005b8181101561258f57613b73600782815481101515613b5957fe5b600091825260209091200154600160a060020a0316613dc0565b600101613b3f565b600081831015613bd5576040805160e560020a62461bcd02815260206004820152600d60248201527f4552525f554e444552464c4f5700000000000000000000000000000000000000604482015290519081900360640190fd5b50900390565b604080517f7472616e7366657246726f6d28616464726573732c616464726573732c75696e81527f74323536290000000000000000000000000000000000000000000000000000006020808301919091528251918290036025018220600160a060020a038088166024850152861660448401526064808401869052845180850390910181526084909301909352810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1990931692909217909152613cbd90859061492d565b50505050565b600160a060020a038082166000818152600c6020908152604091829020548251908152908101869052815192938716927f77f29993cf2c084e726f7e802da0719d6a0ade3e204badc7a3ffd57ecb768c24929181900390910190a3505050565b613d2b61529d565b613d37858585856149bb565b805160208083015160408051938452918301528051929350600160a060020a0380881693908916927f77f29993cf2c084e726f7e802da0719d6a0ade3e204badc7a3ffd57ecb768c2492908290030190a35050505050565b613d97613382565b82613da181613490565b82613dab81613490565b83613db58161342f565b612227868686614783565b80613dca81613303565b600160a060020a0382166000805160206152f48339815191521415613e0a57600160a060020a03821660009081526008602052604090203031905561258f565b604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a038416916370a082319160248083019260209291908290030181600087803b158015613e6b57600080fd5b505af1158015613e7f573d6000803e3d6000fd5b505050506040513d6020811015613e9557600080fd5b5051600160a060020a0383166000908152600860205260409020555050565b613ebd816134f0565b600160a060020a0316331461154a576040805160e560020a62461bcd0281526020600482015260116024820152600080516020615314833981519152604482015290519081900360640190fd5b6000613f14613382565b613f1c6133d2565b82613f2681613490565b83613f308161342f565b83613f3a81614a83565b600554600160a060020a03878116911614801590613f7e5750600160a060020a0386166000908152600860205260409020600101546601000000000000900460ff16155b1515613fd4576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f5245534552564500000000000000000000000000604482015290519081900360640190fd5b60095463ffffffff908116620f4240038116908616111561403f576040805160e560020a62461bcd02815260206004820152601a60248201527f4552525f494e56414c49445f524553455256455f574549474854000000000000604482015290519081900360640190fd5b61ffff61404a612695565b61ffff1610614091576040805160e560020a62461bcd0281526020600482015260196024820152600080516020615334833981519152604482015290519081900360640190fd5b505050600160a060020a0390921660008181526008602052604081208181556001908101805466ff0000000000001963ffffffff80881663ffffffff1993841617919091166601000000000000179092556007805493840181559093527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c6889091018054600160a060020a03191690931790925560098054808416909401909216921691909117905550565b61414461529d565b60008060008061415261529d565b61415a61529d565b600954600a54600b54604080517fb1772d7a000000000000000000000000000000000000000000000000000000008152600160a060020a0393841660048201529183166024830152516000938493849384936c010000000000000000000000009093049091169163b1772d7a9160448082019260609290919082900301818787803b1580156141e857600080fd5b505af11580156141fc573d6000803e3d6000fd5b505050506040513d606081101561421257600080fd5b5080516020820151604090920151601154919c50919a5090985088111561424f5760408051908101604052808b81526020018a8152509a50614373565b60115461425a6137c4565b0396508615156142825760408051808201909152600f54815260105460208201529a50614373565b61025887106142a95760408051808201909152601254815260135460208201529a50614373565b604080518082018252600f548152601054602080830191825283518085019094526012548085526013549185019190915290519198509196506142f19163ffffffff6138da16565b6020860151875191955061430b919063ffffffff6138da16565b9250614335614320858963ffffffff6138da16565b6115e3856102588b900363ffffffff6138da16565b9150614364610258614358876020015189602001516138da90919063ffffffff16565b9063ffffffff6138da16565b90506143708282614af8565b9a505b5050505050505050505090565b600a54600160a060020a03166000818152600c60205260408120549091829190829081906143ad906115a1565b600b549092506143c590600160a060020a03166115a1565b90506143f07f536f7672796e53776170466f726d756c610000000000000000000000000000006134f0565b600160a060020a031663a11aa1b461440f85601463ffffffff6138da16565b885160208a01516040805160e060020a63ffffffff87160281526004810194909452602484018890526044840187905260648401929092526084830152805160a4808401938290030181600087803b15801561446a57600080fd5b505af115801561447e573d6000803e3d6000fd5b505050506040513d604081101561449457600080fd5b5080516020909101519095509350505050915091565b60008080808063ffffffff891615156144e257600160a060020a038b1660009081526008602052604090206001015463ffffffff1698505b63ffffffff8816151561451457600160a060020a038a1660009081526008602052604090206001015463ffffffff1697505b61451d8b6115a1565b91506145288a6115a1565b90506145537f536f7672796e53776170466f726d756c610000000000000000000000000000006134f0565b604080517f94491fab0000000000000000000000000000000000000000000000000000000081526004810185905263ffffffff808d166024830152604482018590528b166064820152608481018990529051600160a060020a0392909216916394491fab9160a4808201926020929091908290030181600087803b1580156145da57600080fd5b505af11580156145ee573d6000803e3d6000fd5b505050506040513d602081101561460457600080fd5b5051945061461185614b4d565b9350614624846115e38c8c8c8c8b614b7d565b9250614636858463ffffffff613b7b16565b9450505096509650969350505050565b61464e613382565b6000614658612695565b61ffff161161469f576040805160e560020a62461bcd0281526020600482015260196024820152600080516020615334833981519152604482015290519081900360640190fd5b600560009054906101000a9004600160a060020a0316600160a060020a03166379ba50976040518163ffffffff1660e060020a028152600401600060405180830381600087803b1580156146f257600080fd5b505af1158015614706573d6000803e3d6000fd5b5050505061170a613b39565b600160a060020a038181166000908152600e602052604090205416151561154a576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f494e56414c49445f504f4f4c5f544f4b454e00000000000000000000604482015290519081900360640190fd5b604080517f7472616e7366657228616464726573732c75696e74323536290000000000000081528151908190036019018120600160a060020a038516602483015260448083018590528351808403909101815260649092019092526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff199093169290921790915261483590849061492d565b505050565b6000806000614847613a83565b8761485181613303565b8761485b81613303565b6148668a8a8a614c56565b9094509250600160a060020a0389166000805160206152f483398151915214156148c657604051600160a060020a0387169085156108fc029086906000818181858888f193505050501580156148c0573d6000803e3d6000fd5b506148d1565b6148d1898786614783565b6148df8a8a898b8888614f6b565b600160a060020a03808b16600090815260086020526040808220600190810154938d1683529120015461491f918c918c9163ffffffff9081169116614ff0565b509198975050505050505050565b6149356152b4565b602060405190810160405280600181525090506020818351602085016000875af180151561496257600080fd5b5080511515614835576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f5452414e534645525f4641494c454400000000000000000000000000604482015290519081900360640190fd5b6149c361529d565b6000806149cf876115a1565b91506149da866115a1565b905063ffffffff85161515614a0e57600160a060020a03871660009081526008602052604090206001015463ffffffff1694505b63ffffffff84161515614a4057600160a060020a03861660009081526008602052604090206001015463ffffffff1693505b6040805180820190915280614a5e8363ffffffff808a16906138da16565b8152602001614a768463ffffffff808916906138da16565b9052979650505050505050565b60008163ffffffff16118015614aa25750620f424063ffffffff821611155b151561154a576040805160e560020a62461bcd02815260206004820152601a60248201527f4552525f494e56414c49445f524553455256455f574549474854000000000000604482015290519081900360640190fd5b614b0061529d565b614b0861529d565b828410614b2057614b198484615081565b9150613957565b614b2a8385615081565b604080518082019091526020808301518252825190820152925090505092915050565b600954600090612ac590620f4240906116c390859068010000000000000000900463ffffffff908116906138da16565b600b546000908190600160a060020a0388811691161415614beb57600a54600160a060020a039081166000908152600c6020908152604080832054600b54909416835290912054865191870151601654614be4949363ffffffff808d1693908c169261513e565b9050614c3a565b600a54600160a060020a039081166000908152600c6020908152604080832054600b54909416835290912054865191870151601654614c37949363ffffffff808c1693908d169261513e565b90505b614c4b620f42406116c385846138da565b979650505050505050565b6000806000614c6361529d565b600080600080614c716151aa565b95509550614c848b8b600080898e6144aa565b91955093509150831515614ce2576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f5a45524f5f5441524745545f414d4f554e5400000000000000000000604482015290519081900360640190fd5b614ceb8a612aff565b9050808410614d44576040805160e560020a62461bcd02815260206004820152601a60248201527f4552525f5441524745545f414d4f554e545f544f4f5f48494748000000000000604482015290519081900360640190fd5b600160a060020a038b166000805160206152f48339815191521415614dbf57348914614dba576040805160e560020a62461bcd02815260206004820152601760248201527f4552525f4554485f414d4f554e545f4d49534d41544348000000000000000000604482015290519081900360640190fd5b614ec1565b34158015614e6b575088614e68614dd58d612aff565b8d600160a060020a03166370a08231306040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b158015614e3057600080fd5b505af1158015614e44573d6000803e3d6000fd5b505050506040513d6020811015614e5a57600080fd5b50519063ffffffff613b7b16565b10155b1515614ec1576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f494e56414c49445f414d4f554e540000000000000000000000000000604482015290519081900360640190fd5b614eca8b613dc0565b614eda818563ffffffff613b7b16565b600160a060020a038b16600090815260086020908152604080832093909355600c90522054614f0f908463ffffffff61395e16565b600160a060020a038b166000908152600c60205260409020558515614f5a57600a54600b54614f4d91600160a060020a0390811691166000806149bb565b8051601255602001516013555b509199919850909650505050505050565b7f80000000000000000000000000000000000000000000000000000000000000008110614f9457fe5b60408051848152602081018490528082018390529051600160a060020a038087169288821692918a16917f276856b36cbc45526a0ba64f44611557a2a8b68662c5388e9fe6d72e86e1c8cb9181900360600190a4505050505050565b600080614fff86868686613d23565b61500885612033565b915081600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561504857600080fd5b505af115801561505c573d6000803e3d6000fd5b505050506040513d602081101561507257600080fd5b50519050612227828287613cc3565b61508961529d565b7314484bfeebc29f863424b06f3529a051a31be5998211156150db57604080518082019091526c0c9f2c9cd04674edea4000000080825260208201908504848115156150d157fe5b0490529050612ac5565b6c0c9f2c9cd04674edea400000008311156151285760408051908101604052806c0c9f2c9cd04674edea400000008152602001846c0c9f2c9cd04674edea4000000085028115156150d157fe5b5060408051808201909152918252602082015290565b60008080615156876143588c8963ffffffff6138da16565b915061516c886143588b8863ffffffff6138da16565b90508181111561519857615191816116c360146143588684038963ffffffff6138da16565b925061519d565b600092505b5050979650505050505050565b60006151b461529d565b60006151be61529d565b6151c661529d565b6151ce6137c4565b92508260115414156151fc5760408051808201909152600f548152601054602082015260009550935061315f565b61520461413c565b60408051808201909152600f5480825260105460208301528251929450909250148015615238575080602001518260200151145b15615249576000829450945061315f565b8151600f55602082015160105560118390556152636137c8565b50600194909350915050565b6040805160a08101825260008082526020820181905291810182905260608101829052608081019190915290565b604080518082019091526000808252602082015290565b60206040519081016040528060019060208202803883395091929150505600536f7672796e53776170436f6e76657274657255706772616465720000000000000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee4552525f4143434553535f44454e4945440000000000000000000000000000004552525f494e56414c49445f524553455256455f434f554e5400000000000000a165627a7a72305820d6ceae0fa88e176fcec4250a8a72385cf1ae86e302a34151470ca7997955ccc20029", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x312 JUMPI PUSH4 0xFFFFFFFF PUSH1 0xE0 PUSH1 0x2 EXP PUSH1 0x0 CALLDATALOAD DIV AND PUSH3 0x5E319C DUP2 EQ PUSH2 0x3B0 JUMPI DUP1 PUSH4 0x24C7EC7 EQ PUSH2 0x3E3 JUMPI DUP1 PUSH4 0x337E3FB EQ PUSH2 0x3FD JUMPI DUP1 PUSH4 0xA55FB3D EQ PUSH2 0x42E JUMPI DUP1 PUSH4 0xC7D5CD8 EQ PUSH2 0x457 JUMPI DUP1 PUSH4 0xE53AAE9 EQ PUSH2 0x485 JUMPI DUP1 PUSH4 0x119B90CD EQ PUSH2 0x4DA JUMPI DUP1 PUSH4 0x12C2ACA4 EQ PUSH2 0x507 JUMPI DUP1 PUSH4 0x16912F96 EQ PUSH2 0x51C JUMPI DUP1 PUSH4 0x19B64015 EQ PUSH2 0x531 JUMPI DUP1 PUSH4 0x1CFAB290 EQ PUSH2 0x549 JUMPI DUP1 PUSH4 0x1E1401F8 EQ PUSH2 0x56A JUMPI DUP1 PUSH4 0x21E6B53D EQ PUSH2 0x5AD JUMPI DUP1 PUSH4 0x22F3E2D4 EQ PUSH2 0x5CE JUMPI DUP1 PUSH4 0x2630C12F EQ PUSH2 0x5E3 JUMPI DUP1 PUSH4 0x2BD3C107 EQ PUSH2 0x5F8 JUMPI DUP1 PUSH4 0x2BF0C985 EQ PUSH2 0x619 JUMPI DUP1 PUSH4 0x2FE8A6AD EQ PUSH2 0x63A JUMPI DUP1 PUSH4 0x38A5E016 EQ PUSH2 0x64F JUMPI DUP1 PUSH4 0x395900D4 EQ PUSH2 0x664 JUMPI DUP1 PUSH4 0x3E8FF43F EQ PUSH2 0x68E JUMPI DUP1 PUSH4 0x46749468 EQ PUSH2 0x6BA JUMPI DUP1 PUSH4 0x49D10B64 EQ PUSH2 0x6D5 JUMPI DUP1 PUSH4 0x4AF80F0E EQ PUSH2 0x6EA JUMPI DUP1 PUSH4 0x54FD4D50 EQ PUSH2 0x70B JUMPI DUP1 PUSH4 0x55776B77 EQ PUSH2 0x720 JUMPI DUP1 PUSH4 0x5768ADCF EQ PUSH2 0x73A JUMPI DUP1 PUSH4 0x579CD3CA EQ PUSH2 0x75B JUMPI DUP1 PUSH4 0x5E35359E EQ PUSH2 0x770 JUMPI DUP1 PUSH4 0x61CD756E EQ PUSH2 0x79A JUMPI DUP1 PUSH4 0x67B6D57C EQ PUSH2 0x7AF JUMPI DUP1 PUSH4 0x69067D95 EQ PUSH2 0x7D0 JUMPI DUP1 PUSH4 0x690D8320 EQ PUSH2 0x7F4 JUMPI DUP1 PUSH4 0x69D1354A EQ PUSH2 0x815 JUMPI DUP1 PUSH4 0x6A49D2C4 EQ PUSH2 0x82D JUMPI DUP1 PUSH4 0x71F52BF3 EQ PUSH2 0x857 JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x86C JUMPI DUP1 PUSH4 0x7B103999 EQ PUSH2 0x881 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x896 JUMPI DUP1 PUSH4 0x94C275AD EQ PUSH2 0x8AB JUMPI DUP1 PUSH4 0x98A71DCB EQ PUSH2 0x8C0 JUMPI DUP1 PUSH4 0x9B99A8E2 EQ PUSH2 0x8E1 JUMPI DUP1 PUSH4 0xA32BFF44 EQ PUSH2 0x8F6 JUMPI DUP1 PUSH4 0xAF94B8D8 EQ PUSH2 0x90B JUMPI DUP1 PUSH4 0xB4A176D3 EQ PUSH2 0x935 JUMPI DUP1 PUSH4 0xBF754558 EQ PUSH2 0x94A JUMPI DUP1 PUSH4 0xBF7DA6BA EQ PUSH2 0x95F JUMPI DUP1 PUSH4 0xC3321FB0 EQ PUSH2 0x983 JUMPI DUP1 PUSH4 0xC45D3D92 EQ PUSH2 0x998 JUMPI DUP1 PUSH4 0xCDC91C69 EQ PUSH2 0x9AD JUMPI DUP1 PUSH4 0xD031370B EQ PUSH2 0x9C2 JUMPI DUP1 PUSH4 0xD260529C EQ PUSH2 0x9DA JUMPI DUP1 PUSH4 0xD3FB73B4 EQ PUSH2 0x9EF JUMPI DUP1 PUSH4 0xD4EE1D90 EQ PUSH2 0xA04 JUMPI DUP1 PUSH4 0xD55EC697 EQ PUSH2 0xA19 JUMPI DUP1 PUSH4 0xD64C5A1A EQ PUSH2 0xA2E JUMPI DUP1 PUSH4 0xD66BD524 EQ PUSH2 0xA59 JUMPI DUP1 PUSH4 0xD8959512 EQ PUSH2 0xA7A JUMPI DUP1 PUSH4 0xDB2830A4 EQ PUSH2 0xA9B JUMPI DUP1 PUSH4 0xDC75EB9A EQ PUSH2 0xAB0 JUMPI DUP1 PUSH4 0xDC8DE379 EQ PUSH2 0xAC5 JUMPI DUP1 PUSH4 0xE38192E3 EQ PUSH2 0xAE6 JUMPI DUP1 PUSH4 0xE8104AF9 EQ PUSH2 0xB0D JUMPI DUP1 PUSH4 0xE8DC12FF EQ PUSH2 0xB22 JUMPI DUP1 PUSH4 0xEC2240F5 EQ PUSH2 0xB4C JUMPI DUP1 PUSH4 0xECBCA55D EQ PUSH2 0xB61 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0xB7F JUMPI DUP1 PUSH4 0xF9CDDDE2 EQ PUSH2 0xBA0 JUMPI DUP1 PUSH4 0xFC0C546A EQ PUSH2 0xBB5 JUMPI JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x52F4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x0 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH32 0x353C2EB9E53A4A4A6D45D72082FF2E9DC829D1125618772A83EB0E7F86632C43 SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO PUSH2 0x3AE JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245534552564500000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3BC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3D1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0xBCA JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3EF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH1 0x4 CALLDATALOAD ISZERO ISZERO PUSH2 0xBF3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x409 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x412 PUSH2 0xC3B JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x43A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x443 PUSH2 0xC4A JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x463 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x46C PUSH2 0xC53 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x491 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4A6 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0xC5F JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP6 DUP7 MSTORE PUSH4 0xFFFFFFFF SWAP1 SWAP5 AND PUSH1 0x20 DUP7 ADD MSTORE SWAP2 ISZERO ISZERO DUP5 DUP5 ADD MSTORE ISZERO ISZERO PUSH1 0x60 DUP5 ADD MSTORE ISZERO ISZERO PUSH1 0x80 DUP4 ADD MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0xA0 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4E6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x44 CALLDATALOAD AND PUSH2 0xCFA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x513 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x443 PUSH2 0x1464 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x528 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH2 0x14AD JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x53D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x412 PUSH1 0x4 CALLDATALOAD PUSH2 0x14C1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x555 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x46C PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x14ED JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x576 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x594 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x151F JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5B9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x1539 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5DA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x443 PUSH2 0x154D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5EF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x412 PUSH2 0x1582 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x604 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3D1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x15A1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x625 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3D1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x15F6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x646 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x443 PUSH2 0x16D9 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x65B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH2 0x16FA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x670 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x170C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x69A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x6A3 PUSH2 0x17A7 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0xFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6C6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH1 0x4 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH2 0x17AC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6E1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH2 0x1830 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6F6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x1A90 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x717 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x6A3 PUSH2 0x1AC5 JUMP JUMPDEST PUSH2 0x3D1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH1 0x44 CALLDATALOAD PUSH2 0x1ACA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x746 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x412 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x2033 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x767 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x46C PUSH2 0x2051 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x77C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x2069 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7A6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x412 PUSH2 0x217D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7BB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x218C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7DC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x594 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x222F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x800 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x238A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x821 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH1 0x4 CALLDATALOAD PUSH2 0x248F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x839 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH4 0xFFFFFFFF PUSH1 0x24 CALLDATALOAD AND PUSH2 0x2534 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x863 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x6A3 PUSH2 0x2593 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x878 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH2 0x259D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x88D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x412 PUSH2 0x2651 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8A2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x412 PUSH2 0x2660 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8B7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x46C PUSH2 0x266F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8CC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3D1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x2683 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8ED JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x6A3 PUSH2 0x2695 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x902 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x594 PUSH2 0x269B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x917 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x594 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x26A4 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x941 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH2 0x2848 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x956 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x443 PUSH2 0x2874 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x96B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x2879 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x98F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3D1 PUSH2 0x28C1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9A4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x412 PUSH2 0x28C7 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9B9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH2 0x28D6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9CE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x412 PUSH1 0x4 CALLDATALOAD PUSH2 0x292F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9E6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x443 PUSH2 0x2957 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9FB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x412 PUSH2 0x295C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x412 PUSH2 0x296B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA25 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH2 0x297A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA3A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xA43 PUSH2 0x2A6F JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA65 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4A6 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x2A74 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA86 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3D1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x2ABA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xAA7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x594 PUSH2 0x2ACB JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xABC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x412 PUSH2 0x2AF0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xAD1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3D1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x2AFF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xAF2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3D1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH1 0x44 CALLDATALOAD PUSH2 0x2B28 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xB19 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3D1 PUSH2 0x2E8D JUMP JUMPDEST PUSH2 0x3D1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x44 CALLDATALOAD SWAP1 PUSH1 0x64 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x84 CALLDATALOAD AND PUSH2 0x2E93 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xB58 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x594 PUSH2 0x30E6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xB6D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH4 0xFFFFFFFF PUSH1 0x4 CALLDATALOAD AND PUSH2 0x3166 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xB8B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x325B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xBAC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x594 PUSH2 0x32EB JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xBC1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x412 PUSH2 0x32F4 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0xBD6 DUP2 PUSH2 0x3303 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0xBFB PUSH2 0x3382 JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD SWAP2 ISZERO ISZERO PUSH21 0x10000000000000000000000000000000000000000 MUL PUSH21 0xFF0000000000000000000000000000000000000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x15 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH4 0xFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0xC6F PUSH2 0x526F JUMP JUMPDEST POP POP POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP2 MLOAD PUSH1 0xA0 DUP2 ADD DUP4 MSTORE DUP2 SLOAD DUP1 DUP3 MSTORE PUSH1 0x1 SWAP1 SWAP3 ADD SLOAD PUSH4 0xFFFFFFFF DUP2 AND SWAP5 DUP3 ADD DUP6 SWAP1 MSTORE PUSH1 0xFF PUSH5 0x100000000 DUP3 DIV DUP2 AND ISZERO ISZERO SWAP5 DUP4 ADD SWAP5 SWAP1 SWAP5 MSTORE PUSH6 0x10000000000 DUP2 DIV DUP5 AND ISZERO ISZERO PUSH1 0x60 DUP4 ADD MSTORE PUSH7 0x1000000000000 SWAP1 DIV SWAP1 SWAP3 AND ISZERO ISZERO PUSH1 0x80 SWAP1 SWAP3 ADD DUP3 SWAP1 MSTORE SWAP6 SWAP2 SWAP5 POP SWAP2 SWAP3 POP DUP3 SWAP2 SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0xD0A PUSH2 0x33D2 JUMP JUMPDEST PUSH2 0xD12 PUSH2 0x3382 JUMP JUMPDEST DUP8 PUSH2 0xD1C DUP2 PUSH2 0x3303 JUMP JUMPDEST DUP8 PUSH2 0xD26 DUP2 PUSH2 0x342F JUMP JUMPDEST DUP8 PUSH2 0xD30 DUP2 PUSH2 0x342F JUMP JUMPDEST DUP10 PUSH2 0xD3A DUP2 PUSH2 0x3490 JUMP JUMPDEST DUP10 PUSH2 0xD44 DUP2 PUSH2 0x3490 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x8DA5CB5B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD ADDRESS SWAP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP2 PUSH4 0x8DA5CB5B SWAP2 PUSH1 0x4 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xDA3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xDB7 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xDCD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ PUSH2 0xE2D JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F414E43484F525F4E4F545F4F574E4544000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0xE56 PUSH32 0x436861696E6C696E6B4F7261636C6557686974656C6973740000000000000000 PUSH2 0x34F0 JUMP JUMPDEST SWAP10 POP DUP10 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x3AF32ABF DUP14 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xEB3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xEC7 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xEDD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD ISZERO ISZERO PUSH2 0xF35 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4F5241434C450000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP10 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x3AF32ABF DUP13 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xF90 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xFA4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xFBA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD ISZERO ISZERO PUSH2 0x1012 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4F5241434C450000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x101A PUSH2 0x3588 JUMP JUMPDEST PUSH1 0xA DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP16 AND OR SWAP1 SSTORE PUSH1 0x7 DUP1 SLOAD PUSH1 0x0 SWAP1 DUP2 LT PUSH2 0x1044 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP15 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x10A2 JUMPI PUSH1 0x7 DUP1 SLOAD PUSH1 0x1 SWAP1 DUP2 LT PUSH2 0x1072 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0xB DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x10DD JUMP JUMPDEST PUSH1 0x7 DUP1 SLOAD PUSH1 0x0 SWAP1 DUP2 LT PUSH2 0x10B1 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0xB DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMPDEST PUSH2 0x1106 PUSH32 0x436F6E766572746572466163746F727900000000000000000000000000000000 PUSH2 0x34F0 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xC977AED2 PUSH2 0x111C PUSH2 0x17A7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH2 0xFFFF AND PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x115D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1171 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1187 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP SWAP9 POP DUP9 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x1B27444E DUP15 PUSH1 0xB PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP16 DUP16 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP6 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP5 POP POP POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1258 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x126C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1282 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x9 DUP1 SLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH13 0x1000000000000000000000000 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND DUP2 MUL SWAP2 SWAP1 SWAP2 OR SWAP2 DUP3 SWAP1 SSTORE PUSH1 0xA SLOAD PUSH1 0xB SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xAE81800400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP3 DUP7 AND PUSH1 0x4 DUP5 ADD MSTORE SWAP1 DUP6 AND PUSH1 0x24 DUP4 ADD MSTORE DUP1 MLOAD SWAP3 SWAP1 SWAP4 DIV SWAP1 SWAP4 AND SWAP3 PUSH4 0xAE818004 SWAP3 PUSH1 0x44 DUP1 DUP4 ADD SWAP4 SWAP2 SWAP3 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1324 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1338 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x134E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD MLOAD PUSH1 0x10 DUP2 SWAP1 SSTORE PUSH1 0xF DUP3 SWAP1 SSTORE PUSH1 0x12 SWAP2 SWAP1 SWAP2 SSTORE PUSH1 0x13 SSTORE PUSH2 0x1372 PUSH2 0x37C4 JUMP JUMPDEST PUSH1 0x11 SSTORE PUSH1 0xA SLOAD PUSH2 0x138A SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0xBCA JUMP JUMPDEST PUSH1 0xA SLOAD SWAP1 SWAP9 POP PUSH2 0x13A2 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x2AFF JUMP JUMPDEST PUSH1 0xB SLOAD SWAP1 SWAP8 POP PUSH2 0x13BA SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x2AFF JUMP JUMPDEST SWAP6 POP DUP7 DUP9 EQ ISZERO PUSH2 0x13E5 JUMPI PUSH1 0x0 DUP9 GT DUP1 PUSH2 0x13D3 JUMPI POP PUSH1 0x0 DUP7 GT JUMPDEST ISZERO PUSH2 0x13E0 JUMPI PUSH2 0x13E0 PUSH2 0x37C8 JUMP JUMPDEST PUSH2 0x140E JUMP JUMPDEST PUSH1 0x0 DUP9 GT DUP1 ISZERO PUSH2 0x13F5 JUMPI POP PUSH1 0x0 DUP8 GT JUMPDEST DUP1 ISZERO PUSH2 0x1401 JUMPI POP PUSH1 0x0 DUP7 GT JUMPDEST ISZERO PUSH2 0x140E JUMPI PUSH2 0x140E PUSH2 0x37C8 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x1425 PUSH2 0x17A7 JUMP JUMPDEST PUSH2 0xFFFF AND PUSH32 0x6B08C2E2C9969E55A647A764DB9B554D64DC42F1A704DA11A6D5B129AD163F2C PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x52F4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x0 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH32 0x353C2EB9E53A4A4A6D45D72082FF2E9DC829D1125618772A83EB0E7F86632C43 SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH2 0x14B5 PUSH2 0x3382 JUMP JUMPDEST PUSH1 0x15 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x7 DUP3 DUP2 SLOAD DUP2 LT ISZERO ISZERO PUSH2 0x14D2 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0x14F9 DUP2 PUSH2 0x3303 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH4 0xFFFFFFFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x152D DUP6 DUP6 DUP6 PUSH2 0x26A4 JUMP JUMPDEST SWAP2 POP SWAP2 POP SWAP4 POP SWAP4 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1541 PUSH2 0x3382 JUMP JUMPDEST PUSH2 0x154A DUP2 PUSH2 0x218C JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1557 PUSH2 0x3840 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x157D JUMPI POP PUSH1 0x9 SLOAD PUSH13 0x1000000000000000000000000 SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND ISZERO ISZERO JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH13 0x1000000000000000000000000 SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0x15AD DUP2 PUSH2 0x3303 JUMP JUMPDEST PUSH2 0x15EF PUSH2 0x15B9 DUP5 PUSH2 0x2AFF JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x15E3 SWAP1 PUSH1 0x13 PUSH4 0xFFFFFFFF PUSH2 0x38DA AND JUMP JUMPDEST SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x395E AND JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x18160DDD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x163C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1650 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1666 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP2 SWAP6 POP AND SWAP3 POP PUSH2 0x1691 DUP4 PUSH2 0x2AFF JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 SWAP3 POP SWAP1 POP PUSH2 0x16CF DUP2 PUSH2 0x16C3 DUP5 DUP8 PUSH4 0xFFFFFFFF PUSH2 0x38DA AND JUMP JUMPDEST SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x39BB AND JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH2 0x1702 PUSH2 0x3382 JUMP JUMPDEST PUSH2 0x170A PUSH2 0x28D6 JUMP JUMPDEST JUMP JUMPDEST PUSH2 0x1714 PUSH2 0x3382 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x5E35359E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP6 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP3 ADD DUP6 SWAP1 MSTORE SWAP2 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP2 PUSH4 0x5E35359E SWAP2 PUSH1 0x64 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x178A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x179E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 SWAP1 JUMP JUMPDEST PUSH2 0x17B4 PUSH2 0x3382 JUMP JUMPDEST DUP2 PUSH1 0x14 PUSH1 0x0 PUSH1 0x7 PUSH1 0x0 DUP2 SLOAD DUP2 LT ISZERO ISZERO PUSH2 0x17C9 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 SWAP1 SWAP2 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP4 MSTORE DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x40 ADD DUP2 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE PUSH1 0x7 DUP1 SLOAD DUP4 SWAP3 PUSH1 0x14 SWAP3 SWAP1 SWAP2 PUSH1 0x1 SWAP1 DUP2 LT PUSH2 0x1807 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 SWAP1 SWAP2 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP4 MSTORE DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x40 ADD SWAP1 KECCAK256 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ DUP1 PUSH2 0x1865 JUMPI POP PUSH1 0x3 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x18A9 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5314 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x18D2 PUSH32 0x436F6E7472616374526567697374727900000000000000000000000000000000 PUSH2 0x34F0 JUMP JUMPDEST PUSH1 0x2 SLOAD SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP4 AND SWAP2 AND EQ DUP1 ISZERO SWAP1 PUSH2 0x18FB JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x1951 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245474953545259000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0xBB34534C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH32 0x436F6E7472616374526567697374727900000000000000000000000000000000 PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP2 PUSH4 0xBB34534C SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x19D5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x19E9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x19FF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ ISZERO PUSH2 0x1A60 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245474953545259000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP5 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT SWAP3 DUP4 AND OR SWAP1 SWAP3 SSTORE SWAP1 SWAP2 AND SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x1A98 PUSH2 0x3382 JUMP JUMPDEST DUP1 PUSH2 0x1AA2 DUP2 PUSH2 0x342F JUMP JUMPDEST POP PUSH1 0x6 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x20 DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x1ADA PUSH2 0x3A29 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH2 0x1AE7 PUSH2 0x3A83 JUMP JUMPDEST DUP8 PUSH2 0x1AF1 DUP2 PUSH2 0x3303 JUMP JUMPDEST DUP8 PUSH2 0x1AFB DUP2 PUSH2 0x3AE1 JUMP JUMPDEST DUP8 PUSH2 0x1B05 DUP2 PUSH2 0x3AE1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x52F4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ PUSH2 0x1B2A JUMPI CALLVALUE ISZERO PUSH2 0x1B2E JUMP JUMPDEST DUP10 CALLVALUE EQ JUMPDEST ISZERO ISZERO PUSH2 0x1B84 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4554485F414D4F554E545F4D49534D41544348000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x1B8C PUSH2 0x3B39 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x52F4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ ISZERO PUSH2 0x1C2E JUMPI PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x52F4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x0 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH32 0x353C2EB9E53A4A4A6D45D72082FF2E9DC829D1125618772A83EB0E7F86632C42 SLOAD PUSH2 0x1BF4 SWAP1 CALLVALUE PUSH4 0xFFFFFFFF PUSH2 0x3B7B AND JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x52F4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x0 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH32 0x353C2EB9E53A4A4A6D45D72082FF2E9DC829D1125618772A83EB0E7F86632C42 SSTORE JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x15 SLOAD SWAP1 SWAP8 POP PUSH1 0xFF AND ISZERO PUSH2 0x1CF7 JUMPI PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x14 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD ISZERO DUP1 PUSH2 0x1CA1 JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x14 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x1C9E DUP9 DUP13 PUSH4 0xFFFFFFFF PUSH2 0x395E AND JUMP JUMPDEST GT ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x1CF7 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4D41585F5354414B45445F42414C414E43455F524541434845440000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP13 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD DUP2 MLOAD PUSH32 0x18160DDD00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP2 MLOAD SWAP5 AND SWAP10 POP DUP10 SWAP4 PUSH4 0x18160DDD SWAP4 PUSH1 0x4 DUP1 DUP5 ADD SWAP5 SWAP4 DUP4 SWAP1 SUB ADD SWAP1 DUP3 SWAP1 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1D64 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1D78 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1D8E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP5 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x52F4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ PUSH2 0x1DBC JUMPI PUSH2 0x1DBC DUP12 CALLER ADDRESS DUP14 PUSH2 0x3BDB JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x1DE5 SWAP1 DUP12 PUSH4 0xFFFFFFFF PUSH2 0x395E AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP13 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE PUSH2 0x1E0E DUP8 DUP12 PUSH4 0xFFFFFFFF PUSH2 0x395E AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP13 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE SWAP4 POP DUP7 ISZERO DUP1 PUSH2 0x1E37 JUMPI POP DUP5 ISZERO JUMPDEST ISZERO PUSH2 0x1E44 JUMPI DUP10 SWAP4 POP PUSH2 0x1E5B JUMP JUMPDEST PUSH2 0x1E58 DUP8 PUSH2 0x16C3 DUP13 DUP9 PUSH4 0xFFFFFFFF PUSH2 0x38DA AND JUMP JUMPDEST SWAP4 POP JUMPDEST DUP9 DUP5 LT ISZERO PUSH2 0x1EB3 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F52455455524E5F544F4F5F4C4F570000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xC6C3BBE600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP10 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE CALLER PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP3 ADD DUP9 SWAP1 MSTORE SWAP2 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP2 PUSH4 0xC6C3BBE6 SWAP2 PUSH1 0x64 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1F27 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1F3B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x1F47 PUSH2 0x37C8 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND CALLER PUSH32 0x4A1A2A6176E9646D9E3157F7C2AB3C499F18337C0B0828CFB28E0A61DE4A11F7 DUP13 PUSH2 0x1F84 DUP12 DUP3 PUSH4 0xFFFFFFFF PUSH2 0x395E AND JUMP JUMPDEST PUSH2 0x1F94 DUP11 DUP11 PUSH4 0xFFFFFFFF PUSH2 0x395E AND JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP4 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP3 SWAP1 SWAP3 MSTORE DUP3 DUP3 ADD MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG3 PUSH2 0x1FCB DUP7 PUSH2 0x1FC5 DUP8 DUP8 PUSH4 0xFFFFFFFF PUSH2 0x395E AND JUMP JUMPDEST DUP14 PUSH2 0x3CC3 JUMP JUMPDEST PUSH2 0x2020 PUSH1 0x7 PUSH1 0x0 DUP2 SLOAD DUP2 LT ISZERO ISZERO PUSH2 0x1FDE JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x7 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP2 PUSH1 0x1 SWAP1 DUP2 LT PUSH2 0x2005 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP1 DUP1 PUSH2 0x3D23 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0x4 SSTORE POP SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD AND SWAP1 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH9 0x10000000000000000 SWAP1 DIV PUSH4 0xFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2073 PUSH2 0x3A29 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH2 0x2080 PUSH2 0x3382 JUMP JUMPDEST PUSH2 0x2097 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x52D4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x34F0 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD SWAP1 SWAP2 POP PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 PUSH2 0x20D4 JUMPI POP PUSH2 0x20D2 PUSH2 0x154D JUMP JUMPDEST ISZERO JUMPDEST DUP1 PUSH2 0x20EC JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ JUMPDEST ISZERO ISZERO PUSH2 0x2130 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5314 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x213B DUP5 DUP5 DUP5 PUSH2 0x3D8F JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x2172 JUMPI PUSH2 0x2172 DUP5 PUSH2 0x3DC0 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0x4 SSTORE POP POP JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH2 0x2194 PUSH2 0x3382 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x52D4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x21AC DUP2 PUSH2 0x3EB4 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xF2FDE38B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP2 PUSH4 0xF2FDE38B SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2213 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2227 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 DUP12 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x18160DDD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x227C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2290 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x22A6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP15 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD SWAP1 SWAP4 AND DUP3 MSTORE PUSH1 0xC SWAP1 MSTORE KECCAK256 SLOAD SWAP1 SWAP9 POP SWAP7 POP DUP8 DUP12 LT ISZERO PUSH2 0x2371 JUMPI PUSH1 0xA SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x2309 SWAP1 PUSH1 0x14 PUSH4 0xFFFFFFFF PUSH2 0x38DA AND JUMP JUMPDEST PUSH1 0xA SLOAD SWAP1 SWAP7 POP PUSH2 0x2321 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x15A1 JUMP JUMPDEST SWAP5 POP DUP5 DUP7 LT PUSH2 0x2331 JUMPI DUP5 DUP7 PUSH2 0x2334 JUMP JUMPDEST DUP6 DUP6 JUMPDEST SWAP1 SWAP5 POP SWAP3 POP PUSH2 0x234D DUP9 PUSH2 0x16C3 DUP14 DUP11 PUSH4 0xFFFFFFFF PUSH2 0x38DA AND JUMP JUMPDEST SWAP2 POP PUSH2 0x2363 DUP4 PUSH2 0x16C3 DUP5 DUP8 PUSH4 0xFFFFFFFF PUSH2 0x38DA AND JUMP JUMPDEST SWAP10 POP POP DUP9 DUP2 SUB SWAP8 POP DUP9 PUSH2 0x237B JUMP JUMPDEST SWAP6 SWAP9 POP PUSH1 0x0 SWAP8 POP DUP9 SWAP6 JUMPDEST POP POP POP POP POP POP POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2394 PUSH2 0x3A29 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH2 0x23A1 PUSH2 0x3382 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x52F4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x23B9 DUP2 PUSH2 0x3303 JUMP JUMPDEST PUSH2 0x23D0 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x52D4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x34F0 JUMP JUMPDEST SWAP2 POP PUSH2 0x23DA PUSH2 0x154D JUMP JUMPDEST ISZERO DUP1 PUSH2 0x23F3 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 DUP2 AND SWAP2 AND EQ JUMPDEST ISZERO ISZERO PUSH2 0x2437 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5314 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP1 ADDRESS BALANCE DUP1 ISZERO PUSH2 0x8FC MUL SWAP2 PUSH1 0x0 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x246D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH2 0x2485 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x52F4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x3DC0 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0x4 SSTORE POP JUMP JUMPDEST PUSH2 0x2497 PUSH2 0x3382 JUMP JUMPDEST PUSH3 0x186A0 DUP2 GT ISZERO PUSH2 0x24F2 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F44594E414D49435F4645455F464143544F520000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x16 SLOAD PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP4 SWAP1 MSTORE DUP1 MLOAD PUSH32 0x382FD3516344712A511DCD464FF8E6AB54139D6A28F64087A3253353EE7A5679 SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG1 PUSH1 0x16 SSTORE JUMP JUMPDEST PUSH1 0x2 PUSH2 0x253E PUSH2 0x2695 JUMP JUMPDEST PUSH2 0xFFFF AND LT PUSH2 0x2585 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5334 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x258F DUP3 DUP3 PUSH2 0x3F0A JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x157D PUSH2 0x2695 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x25ED JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5314 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND SWAP4 SWAP1 SWAP2 AND SWAP2 PUSH32 0x343765429AEA5A34B3FF6A3785A98A5ABB2597ACA87BFBB58632C173D585373A SWAP2 LOG3 PUSH1 0x1 DUP1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND OR SWAP1 SWAP2 SSTORE AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH5 0x100000000 SWAP1 DIV PUSH4 0xFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x14 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x7 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0xF SLOAD PUSH1 0x10 SLOAD DUP3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x26B2 PUSH2 0x529D JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x26C0 PUSH2 0x3A83 JUMP JUMPDEST PUSH2 0x26C9 DUP13 PUSH2 0x3303 JUMP JUMPDEST PUSH2 0x26D2 DUP12 PUSH2 0x3303 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP13 DUP2 AND SWAP1 DUP13 AND EQ ISZERO PUSH2 0x2736 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F534F555243455F54415247455400000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x273E PUSH2 0x37C4 JUMP JUMPDEST PUSH1 0x11 SLOAD EQ ISZERO PUSH2 0x27E5 JUMPI PUSH1 0xF PUSH1 0x40 DUP1 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD SLOAD DUP2 MSTORE POP POP SWAP5 POP PUSH1 0x8 PUSH1 0x0 DUP14 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH4 0xFFFFFFFF AND SWAP7 POP PUSH1 0x8 PUSH1 0x0 DUP13 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH4 0xFFFFFFFF AND SWAP6 POP PUSH2 0x2825 JUMP JUMPDEST PUSH2 0x27ED PUSH2 0x413C JUMP JUMPDEST SWAP5 POP PUSH2 0x27F8 DUP6 PUSH2 0x4380 JUMP JUMPDEST PUSH1 0xA SLOAD SWAP2 SWAP6 POP SWAP4 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP14 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x281E JUMPI DUP4 SWAP7 POP DUP3 SWAP6 POP PUSH2 0x2825 JUMP JUMPDEST DUP3 SWAP7 POP DUP4 SWAP6 POP JUMPDEST PUSH2 0x2833 DUP13 DUP13 DUP10 DUP10 DUP10 DUP16 PUSH2 0x44AA JUMP JUMPDEST SWAP2 SWAP15 SWAP2 SWAP14 POP SWAP1 SWAP12 POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x2850 PUSH2 0x3382 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x2 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x1 DUP2 JUMP JUMPDEST PUSH2 0x2881 PUSH2 0x3382 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x52D4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x2899 DUP2 PUSH2 0x3EB4 JUMP JUMPDEST DUP3 PUSH2 0x28A3 DUP2 PUSH2 0x3303 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE JUMP JUMPDEST PUSH1 0x11 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x1 PUSH2 0x28E0 PUSH2 0x2695 JUMP JUMPDEST PUSH2 0xFFFF AND GT PUSH2 0x2927 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5334 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x170A PUSH2 0x4646 JUMP JUMPDEST PUSH1 0x7 DUP1 SLOAD DUP3 SWAP1 DUP2 LT PUSH2 0x293D JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP1 POP DUP2 JUMP JUMPDEST PUSH1 0x1 SWAP1 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2984 PUSH2 0x3382 JUMP JUMPDEST PUSH2 0x299B PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x52D4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x34F0 JUMP JUMPDEST PUSH1 0x5 SLOAD SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x29B5 PUSH2 0x17A7 JUMP JUMPDEST PUSH2 0xFFFF AND PUSH32 0x6B08C2E2C9969E55A647A764DB9B554D64DC42F1A704DA11A6D5B129AD163F2C PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH2 0x29EE DUP2 PUSH2 0x325B JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x90F58C9600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 AND SWAP2 PUSH4 0x90F58C96 SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2A4F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2A63 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x154A PUSH2 0x259D JUMP JUMPDEST PUSH1 0x14 SWAP1 JUMP JUMPDEST PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD PUSH4 0xFFFFFFFF DUP2 AND SWAP1 PUSH1 0xFF PUSH5 0x100000000 DUP3 DIV DUP2 AND SWAP2 PUSH6 0x10000000000 DUP2 DIV DUP3 AND SWAP2 PUSH7 0x1000000000000 SWAP1 SWAP2 DIV AND DUP6 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2AC5 DUP3 PUSH2 0x2AFF JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2AD6 PUSH2 0x529D JUMP JUMPDEST PUSH2 0x2ADE PUSH2 0x413C JUMP JUMPDEST DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD MLOAD SWAP1 SWAP5 SWAP1 SWAP4 POP SWAP2 POP POP JUMP JUMPDEST PUSH1 0xB SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0x2B0B DUP2 PUSH2 0x3303 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x2B39 PUSH2 0x3A29 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH2 0x2B46 PUSH2 0x3A83 JUMP JUMPDEST DUP9 PUSH2 0x2B50 DUP2 PUSH2 0x4712 JUMP JUMPDEST DUP9 PUSH2 0x2B5A DUP2 PUSH2 0x3AE1 JUMP JUMPDEST DUP9 PUSH2 0x2B64 DUP2 PUSH2 0x3AE1 JUMP JUMPDEST PUSH2 0x2B6C PUSH2 0x3B39 JUMP JUMPDEST DUP12 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x18160DDD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2BAA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2BBE JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2BD4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP8 POP PUSH2 0x2BE2 DUP13 DUP13 PUSH2 0x222F JUMP JUMPDEST POP SWAP7 POP DUP10 DUP8 LT ISZERO PUSH2 0x2C3D JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F52455455524E5F544F4F5F4C4F570000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0xE PUSH1 0x0 DUP14 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP6 POP PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xF6B911BC DUP14 CALLER DUP15 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP4 POP POP POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2D0A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2D1E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x2D4B SWAP2 POP DUP9 PUSH4 0xFFFFFFFF PUSH2 0x3B7B AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE PUSH1 0xC SWAP1 MSTORE KECCAK256 SLOAD PUSH2 0x2D80 SWAP1 DUP9 PUSH4 0xFFFFFFFF PUSH2 0x3B7B AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP3 SWAP1 SSTORE SWAP1 SWAP6 POP PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x52F4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ ISZERO PUSH2 0x2DE6 JUMPI PUSH1 0x40 MLOAD CALLER SWAP1 DUP9 ISZERO PUSH2 0x8FC MUL SWAP1 DUP10 SWAP1 PUSH1 0x0 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x2DE0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH2 0x2DF1 JUMP JUMPDEST PUSH2 0x2DF1 DUP7 CALLER DUP10 PUSH2 0x4783 JUMP JUMPDEST PUSH2 0x2DF9 PUSH2 0x37C8 JUMP JUMPDEST PUSH2 0x2E09 DUP9 DUP13 PUSH4 0xFFFFFFFF PUSH2 0x3B7B AND JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP10 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP9 SWAP1 MSTORE DUP1 DUP3 ADD DUP4 SWAP1 MSTORE SWAP1 MLOAD SWAP2 SWAP6 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 AND SWAP2 CALLER SWAP2 PUSH32 0xBC7D19D505C7EC4DB83F3B51F19FB98C4C8A99922E7839D1EE608DFBEE29501B SWAP2 SWAP1 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG3 PUSH2 0x2E65 DUP13 DUP6 DUP9 PUSH2 0x3CC3 JUMP JUMPDEST PUSH2 0x2E78 PUSH1 0x7 PUSH1 0x0 DUP2 SLOAD DUP2 LT ISZERO ISZERO PUSH2 0x1FDE JUMPI INVALID JUMPDEST POP POP PUSH1 0x1 PUSH1 0x4 SSTORE POP SWAP3 SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x16 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2E9D PUSH2 0x3A29 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH32 0x536F7672796E537761704E6574776F726B000000000000000000000000000000 PUSH2 0x2ECC DUP2 PUSH2 0x3EB4 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 DUP2 AND SWAP1 DUP8 AND EQ ISZERO PUSH2 0x2F30 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F534F555243455F54415247455400000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND ISZERO DUP1 PUSH2 0x3073 JUMPI POP PUSH1 0x6 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x3AF32ABF00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP2 PUSH4 0x3AF32ABF SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2FAB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2FBF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2FD5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD DUP1 ISZERO PUSH2 0x3073 JUMPI POP PUSH1 0x6 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x3AF32ABF00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP2 PUSH4 0x3AF32ABF SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3046 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x305A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x3070 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD JUMPDEST ISZERO ISZERO PUSH2 0x30C9 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4E4F545F57484954454C495354454400000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x30D6 DUP8 DUP8 DUP8 DUP8 DUP8 PUSH2 0x483A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x4 SSTORE SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x30F1 PUSH2 0x529D JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x30FC PUSH2 0x413C JUMP JUMPDEST SWAP3 POP PUSH2 0x3107 DUP4 PUSH2 0x4380 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x7 PUSH1 0x0 DUP2 SLOAD DUP2 LT ISZERO ISZERO PUSH2 0x311B JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0xA SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x3150 JUMPI PUSH4 0xFFFFFFFF DUP1 DUP4 AND SWAP6 POP DUP2 AND SWAP4 POP PUSH2 0x315F JUMP JUMPDEST PUSH4 0xFFFFFFFF DUP1 DUP3 AND SWAP6 POP DUP3 AND SWAP4 POP JUMPDEST POP POP POP SWAP1 SWAP2 JUMP JUMPDEST PUSH2 0x316E PUSH2 0x3382 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH4 0xFFFFFFFF PUSH5 0x100000000 SWAP1 SWAP2 DIV DUP2 AND SWAP1 DUP3 AND GT ISZERO PUSH2 0x31DA JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F434F4E56455253494F4E5F464545000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH4 0xFFFFFFFF PUSH9 0x10000000000000000 SWAP1 SWAP4 DIV DUP4 AND DUP2 MSTORE SWAP2 DUP4 AND PUSH1 0x20 DUP4 ADD MSTORE DUP1 MLOAD PUSH32 0x81CD2FFB37DD237C0E4E2A3DE5265FCF9DEB43D3E7801E80DB9F1CCFBA7EE600 SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG1 PUSH1 0x9 DUP1 SLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP3 AND PUSH9 0x10000000000000000 MUL PUSH12 0xFFFFFFFF0000000000000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x3263 PUSH2 0x3382 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x32C9 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F4F574E4552000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x12 SLOAD PUSH1 0x13 SLOAD DUP3 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO PUSH2 0x154A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245534552564500000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x170A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5314 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x33DA PUSH2 0x154D JUMP JUMPDEST ISZERO PUSH2 0x170A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xA PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F41435449564500000000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ADDRESS EQ ISZERO PUSH2 0x154A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F414444524553535F49535F53454C4600000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0x154A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xBB34534C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP2 PUSH4 0xBB34534C SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3556 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x356A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x3580 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP6 POP DUP6 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x6D3E313E PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x35E8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x35FC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x3625 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 MLOAD PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x363D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD PUSH1 0x20 DUP2 ADD DUP5 DUP2 GT ISZERO PUSH2 0x3650 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP6 PUSH1 0x20 DUP3 MUL DUP4 ADD GT PUSH5 0x100000000 DUP3 GT OR ISZERO PUSH2 0x366D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP DUP1 MLOAD PUSH1 0x7 SLOAD SWAP2 SWAP10 POP ISZERO SWAP8 POP SWAP6 POP PUSH1 0x0 SWAP5 POP POP POP POP JUMPDEST DUP3 DUP3 LT ISZERO PUSH2 0x2227 JUMPI DUP4 ISZERO PUSH2 0x3703 JUMPI DUP6 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x9CBF9E36 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x36D0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x36E4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x36FA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 POP PUSH2 0x371E JUMP JUMPDEST DUP5 DUP3 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3711 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD SWAP1 POP JUMPDEST DUP1 PUSH1 0xD PUSH1 0x0 PUSH1 0x7 DUP6 DUP2 SLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3732 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 SWAP2 SWAP1 SWAP2 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 DUP2 AND DUP5 MSTORE SWAP1 DUP4 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x40 SWAP1 SWAP2 ADD SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND SWAP3 SWAP1 SWAP2 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH1 0x7 DUP1 SLOAD DUP4 SWAP1 DUP2 LT PUSH2 0x3780 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 SWAP1 SWAP2 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 DUP2 AND DUP5 MSTORE PUSH1 0xE SWAP1 SWAP3 MSTORE PUSH1 0x40 SWAP1 SWAP3 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND SWAP2 SWAP1 SWAP3 AND OR SWAP1 SSTORE PUSH1 0x1 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x3684 JUMP JUMPDEST TIMESTAMP SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0xF SLOAD DUP2 MSTORE PUSH1 0x10 SLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 SWAP1 DUP2 SWAP1 PUSH2 0x37ED SWAP1 PUSH2 0x4380 JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 PUSH1 0x1 SWAP1 DUP2 ADD DUP1 SLOAD PUSH4 0xFFFFFFFF SWAP8 DUP9 AND PUSH4 0xFFFFFFFF NOT SWAP2 DUP3 AND OR SWAP1 SWAP2 SSTORE PUSH1 0xB SLOAD SWAP1 SWAP5 AND DUP4 MSTORE SWAP2 KECCAK256 ADD DUP1 SLOAD SWAP3 SWAP1 SWAP4 AND SWAP2 AND OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 ADDRESS PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x8DA5CB5B PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x389F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x38B3 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x38C9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 ISZERO ISZERO PUSH2 0x38ED JUMPI PUSH1 0x0 SWAP2 POP PUSH2 0x3957 JUMP JUMPDEST POP DUP3 DUP3 MUL DUP3 DUP5 DUP3 DUP2 ISZERO ISZERO PUSH2 0x38FD JUMPI INVALID JUMPDEST DIV EQ PUSH2 0x3953 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP1 SWAP2 POP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 ADD DUP4 DUP2 LT ISZERO PUSH2 0x3953 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP4 GT PUSH2 0x3A15 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4449564944455F42595F5A45524F0000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP3 DUP5 DUP2 ISZERO ISZERO PUSH2 0x3A20 JUMPI INVALID JUMPDEST DIV SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH1 0x1 EQ PUSH2 0x170A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5245454E5452414E4359000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x3A8B PUSH2 0x154D JUMP JUMPDEST ISZERO ISZERO PUSH2 0x170A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E4143544956450000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 GT PUSH2 0x154A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5A45524F5F56414C5545000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x258F JUMPI PUSH2 0x3B73 PUSH1 0x7 DUP3 DUP2 SLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3B59 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x3DC0 JUMP JUMPDEST PUSH1 0x1 ADD PUSH2 0x3B3F JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT ISZERO PUSH2 0x3BD5 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F554E444552464C4F5700000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP SWAP1 SUB SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x7472616E7366657246726F6D28616464726573732C616464726573732C75696E DUP2 MSTORE PUSH32 0x7432353629000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP3 MLOAD SWAP2 DUP3 SWAP1 SUB PUSH1 0x25 ADD DUP3 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP9 AND PUSH1 0x24 DUP6 ADD MSTORE DUP7 AND PUSH1 0x44 DUP5 ADD MSTORE PUSH1 0x64 DUP1 DUP5 ADD DUP7 SWAP1 MSTORE DUP5 MLOAD DUP1 DUP6 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x84 SWAP1 SWAP4 ADD SWAP1 SWAP4 MSTORE DUP2 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE PUSH2 0x3CBD SWAP1 DUP6 SWAP1 PUSH2 0x492D JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP3 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SLOAD DUP3 MLOAD SWAP1 DUP2 MSTORE SWAP1 DUP2 ADD DUP7 SWAP1 MSTORE DUP2 MLOAD SWAP3 SWAP4 DUP8 AND SWAP3 PUSH32 0x77F29993CF2C084E726F7E802DA0719D6A0ADE3E204BADC7A3FFD57ECB768C24 SWAP3 SWAP2 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH2 0x3D2B PUSH2 0x529D JUMP JUMPDEST PUSH2 0x3D37 DUP6 DUP6 DUP6 DUP6 PUSH2 0x49BB JUMP JUMPDEST DUP1 MLOAD PUSH1 0x20 DUP1 DUP4 ADD MLOAD PUSH1 0x40 DUP1 MLOAD SWAP4 DUP5 MSTORE SWAP2 DUP4 ADD MSTORE DUP1 MLOAD SWAP3 SWAP4 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP9 AND SWAP4 SWAP1 DUP10 AND SWAP3 PUSH32 0x77F29993CF2C084E726F7E802DA0719D6A0ADE3E204BADC7A3FFD57ECB768C24 SWAP3 SWAP1 DUP3 SWAP1 SUB ADD SWAP1 LOG3 POP POP POP POP POP JUMP JUMPDEST PUSH2 0x3D97 PUSH2 0x3382 JUMP JUMPDEST DUP3 PUSH2 0x3DA1 DUP2 PUSH2 0x3490 JUMP JUMPDEST DUP3 PUSH2 0x3DAB DUP2 PUSH2 0x3490 JUMP JUMPDEST DUP4 PUSH2 0x3DB5 DUP2 PUSH2 0x342F JUMP JUMPDEST PUSH2 0x2227 DUP7 DUP7 DUP7 PUSH2 0x4783 JUMP JUMPDEST DUP1 PUSH2 0x3DCA DUP2 PUSH2 0x3303 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 AND PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x52F4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ ISZERO PUSH2 0x3E0A JUMPI PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 ADDRESS BALANCE SWAP1 SSTORE PUSH2 0x258F JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3E6B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3E7F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x3E95 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE POP POP JUMP JUMPDEST PUSH2 0x3EBD DUP2 PUSH2 0x34F0 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x154A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5314 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x3F14 PUSH2 0x3382 JUMP JUMPDEST PUSH2 0x3F1C PUSH2 0x33D2 JUMP JUMPDEST DUP3 PUSH2 0x3F26 DUP2 PUSH2 0x3490 JUMP JUMPDEST DUP4 PUSH2 0x3F30 DUP2 PUSH2 0x342F JUMP JUMPDEST DUP4 PUSH2 0x3F3A DUP2 PUSH2 0x4A83 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 DUP2 AND SWAP2 AND EQ DUP1 ISZERO SWAP1 PUSH2 0x3F7E JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x3FD4 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245534552564500000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x9 SLOAD PUSH4 0xFFFFFFFF SWAP1 DUP2 AND PUSH3 0xF4240 SUB DUP2 AND SWAP1 DUP7 AND GT ISZERO PUSH2 0x403F JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F574549474854000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0xFFFF PUSH2 0x404A PUSH2 0x2695 JUMP JUMPDEST PUSH2 0xFFFF AND LT PUSH2 0x4091 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5334 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP2 DUP2 SSTORE PUSH1 0x1 SWAP1 DUP2 ADD DUP1 SLOAD PUSH7 0xFF000000000000 NOT PUSH4 0xFFFFFFFF DUP1 DUP9 AND PUSH4 0xFFFFFFFF NOT SWAP4 DUP5 AND OR SWAP2 SWAP1 SWAP2 AND PUSH7 0x1000000000000 OR SWAP1 SWAP3 SSTORE PUSH1 0x7 DUP1 SLOAD SWAP4 DUP5 ADD DUP2 SSTORE SWAP1 SWAP4 MSTORE PUSH32 0xA66CC928B5EDB82AF9BD49922954155AB7B0942694BEA4CE44661D9A8736C688 SWAP1 SWAP2 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND SWAP1 SWAP4 OR SWAP1 SWAP3 SSTORE PUSH1 0x9 DUP1 SLOAD DUP1 DUP5 AND SWAP1 SWAP5 ADD SWAP1 SWAP3 AND SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE POP JUMP JUMPDEST PUSH2 0x4144 PUSH2 0x529D JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x4152 PUSH2 0x529D JUMP JUMPDEST PUSH2 0x415A PUSH2 0x529D JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0xA SLOAD PUSH1 0xB SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xB1772D7A00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND PUSH1 0x4 DUP3 ADD MSTORE SWAP2 DUP4 AND PUSH1 0x24 DUP4 ADD MSTORE MLOAD PUSH1 0x0 SWAP4 DUP5 SWAP4 DUP5 SWAP4 DUP5 SWAP4 PUSH13 0x1000000000000000000000000 SWAP1 SWAP4 DIV SWAP1 SWAP2 AND SWAP2 PUSH4 0xB1772D7A SWAP2 PUSH1 0x44 DUP1 DUP3 ADD SWAP3 PUSH1 0x60 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x41E8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x41FC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x60 DUP2 LT ISZERO PUSH2 0x4212 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD PUSH1 0x20 DUP3 ADD MLOAD PUSH1 0x40 SWAP1 SWAP3 ADD MLOAD PUSH1 0x11 SLOAD SWAP2 SWAP13 POP SWAP2 SWAP11 POP SWAP1 SWAP9 POP DUP9 GT ISZERO PUSH2 0x424F JUMPI PUSH1 0x40 DUP1 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 DUP12 DUP2 MSTORE PUSH1 0x20 ADD DUP11 DUP2 MSTORE POP SWAP11 POP PUSH2 0x4373 JUMP JUMPDEST PUSH1 0x11 SLOAD PUSH2 0x425A PUSH2 0x37C4 JUMP JUMPDEST SUB SWAP7 POP DUP7 ISZERO ISZERO PUSH2 0x4282 JUMPI PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0xF SLOAD DUP2 MSTORE PUSH1 0x10 SLOAD PUSH1 0x20 DUP3 ADD MSTORE SWAP11 POP PUSH2 0x4373 JUMP JUMPDEST PUSH2 0x258 DUP8 LT PUSH2 0x42A9 JUMPI PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x12 SLOAD DUP2 MSTORE PUSH1 0x13 SLOAD PUSH1 0x20 DUP3 ADD MSTORE SWAP11 POP PUSH2 0x4373 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD DUP3 MSTORE PUSH1 0xF SLOAD DUP2 MSTORE PUSH1 0x10 SLOAD PUSH1 0x20 DUP1 DUP4 ADD SWAP2 DUP3 MSTORE DUP4 MLOAD DUP1 DUP6 ADD SWAP1 SWAP5 MSTORE PUSH1 0x12 SLOAD DUP1 DUP6 MSTORE PUSH1 0x13 SLOAD SWAP2 DUP6 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP1 MLOAD SWAP2 SWAP9 POP SWAP2 SWAP7 POP PUSH2 0x42F1 SWAP2 PUSH4 0xFFFFFFFF PUSH2 0x38DA AND JUMP JUMPDEST PUSH1 0x20 DUP7 ADD MLOAD DUP8 MLOAD SWAP2 SWAP6 POP PUSH2 0x430B SWAP2 SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x38DA AND JUMP JUMPDEST SWAP3 POP PUSH2 0x4335 PUSH2 0x4320 DUP6 DUP10 PUSH4 0xFFFFFFFF PUSH2 0x38DA AND JUMP JUMPDEST PUSH2 0x15E3 DUP6 PUSH2 0x258 DUP12 SWAP1 SUB PUSH4 0xFFFFFFFF PUSH2 0x38DA AND JUMP JUMPDEST SWAP2 POP PUSH2 0x4364 PUSH2 0x258 PUSH2 0x4358 DUP8 PUSH1 0x20 ADD MLOAD DUP10 PUSH1 0x20 ADD MLOAD PUSH2 0x38DA SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x38DA AND JUMP JUMPDEST SWAP1 POP PUSH2 0x4370 DUP3 DUP3 PUSH2 0x4AF8 JUMP JUMPDEST SWAP11 POP JUMPDEST POP POP POP POP POP POP POP POP POP POP SWAP1 JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD SWAP1 SWAP2 DUP3 SWAP2 SWAP1 DUP3 SWAP1 DUP2 SWAP1 PUSH2 0x43AD SWAP1 PUSH2 0x15A1 JUMP JUMPDEST PUSH1 0xB SLOAD SWAP1 SWAP3 POP PUSH2 0x43C5 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x15A1 JUMP JUMPDEST SWAP1 POP PUSH2 0x43F0 PUSH32 0x536F7672796E53776170466F726D756C61000000000000000000000000000000 PUSH2 0x34F0 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xA11AA1B4 PUSH2 0x440F DUP6 PUSH1 0x14 PUSH4 0xFFFFFFFF PUSH2 0x38DA AND JUMP JUMPDEST DUP9 MLOAD PUSH1 0x20 DUP11 ADD MLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0xE0 PUSH1 0x2 EXP PUSH4 0xFFFFFFFF DUP8 AND MUL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP5 SWAP1 SWAP5 MSTORE PUSH1 0x24 DUP5 ADD DUP9 SWAP1 MSTORE PUSH1 0x44 DUP5 ADD DUP8 SWAP1 MSTORE PUSH1 0x64 DUP5 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x84 DUP4 ADD MSTORE DUP1 MLOAD PUSH1 0xA4 DUP1 DUP5 ADD SWAP4 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x446A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x447E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x4494 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD MLOAD SWAP1 SWAP6 POP SWAP4 POP POP POP POP SWAP2 POP SWAP2 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP1 DUP1 PUSH4 0xFFFFFFFF DUP10 AND ISZERO ISZERO PUSH2 0x44E2 JUMPI PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH4 0xFFFFFFFF AND SWAP9 POP JUMPDEST PUSH4 0xFFFFFFFF DUP9 AND ISZERO ISZERO PUSH2 0x4514 JUMPI PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP11 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH4 0xFFFFFFFF AND SWAP8 POP JUMPDEST PUSH2 0x451D DUP12 PUSH2 0x15A1 JUMP JUMPDEST SWAP2 POP PUSH2 0x4528 DUP11 PUSH2 0x15A1 JUMP JUMPDEST SWAP1 POP PUSH2 0x4553 PUSH32 0x536F7672796E53776170466F726D756C61000000000000000000000000000000 PUSH2 0x34F0 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x94491FAB00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH4 0xFFFFFFFF DUP1 DUP14 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP3 ADD DUP6 SWAP1 MSTORE DUP12 AND PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 DUP2 ADD DUP10 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 PUSH4 0x94491FAB SWAP2 PUSH1 0xA4 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x45DA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x45EE JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x4604 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP5 POP PUSH2 0x4611 DUP6 PUSH2 0x4B4D JUMP JUMPDEST SWAP4 POP PUSH2 0x4624 DUP5 PUSH2 0x15E3 DUP13 DUP13 DUP13 DUP13 DUP12 PUSH2 0x4B7D JUMP JUMPDEST SWAP3 POP PUSH2 0x4636 DUP6 DUP5 PUSH4 0xFFFFFFFF PUSH2 0x3B7B AND JUMP JUMPDEST SWAP5 POP POP POP SWAP7 POP SWAP7 POP SWAP7 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0x464E PUSH2 0x3382 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4658 PUSH2 0x2695 JUMP JUMPDEST PUSH2 0xFFFF AND GT PUSH2 0x469F JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5334 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x79BA5097 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x46F2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x4706 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x170A PUSH2 0x3B39 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD AND ISZERO ISZERO PUSH2 0x154A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F504F4F4C5F544F4B454E00000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x7472616E7366657228616464726573732C75696E743235362900000000000000 DUP2 MSTORE DUP2 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x19 ADD DUP2 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x64 SWAP1 SWAP3 ADD SWAP1 SWAP3 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE PUSH2 0x4835 SWAP1 DUP5 SWAP1 PUSH2 0x492D JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x4847 PUSH2 0x3A83 JUMP JUMPDEST DUP8 PUSH2 0x4851 DUP2 PUSH2 0x3303 JUMP JUMPDEST DUP8 PUSH2 0x485B DUP2 PUSH2 0x3303 JUMP JUMPDEST PUSH2 0x4866 DUP11 DUP11 DUP11 PUSH2 0x4C56 JUMP JUMPDEST SWAP1 SWAP5 POP SWAP3 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP10 AND PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x52F4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ ISZERO PUSH2 0x48C6 JUMPI PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND SWAP1 DUP6 ISZERO PUSH2 0x8FC MUL SWAP1 DUP7 SWAP1 PUSH1 0x0 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x48C0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH2 0x48D1 JUMP JUMPDEST PUSH2 0x48D1 DUP10 DUP8 DUP7 PUSH2 0x4783 JUMP JUMPDEST PUSH2 0x48DF DUP11 DUP11 DUP10 DUP12 DUP9 DUP9 PUSH2 0x4F6B JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 PUSH1 0x1 SWAP1 DUP2 ADD SLOAD SWAP4 DUP14 AND DUP4 MSTORE SWAP2 KECCAK256 ADD SLOAD PUSH2 0x491F SWAP2 DUP13 SWAP2 DUP13 SWAP2 PUSH4 0xFFFFFFFF SWAP1 DUP2 AND SWAP2 AND PUSH2 0x4FF0 JUMP JUMPDEST POP SWAP2 SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x4935 PUSH2 0x52B4 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE POP SWAP1 POP PUSH1 0x20 DUP2 DUP4 MLOAD PUSH1 0x20 DUP6 ADD PUSH1 0x0 DUP8 GAS CALL DUP1 ISZERO ISZERO PUSH2 0x4962 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD ISZERO ISZERO PUSH2 0x4835 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5452414E534645525F4641494C454400000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x49C3 PUSH2 0x529D JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x49CF DUP8 PUSH2 0x15A1 JUMP JUMPDEST SWAP2 POP PUSH2 0x49DA DUP7 PUSH2 0x15A1 JUMP JUMPDEST SWAP1 POP PUSH4 0xFFFFFFFF DUP6 AND ISZERO ISZERO PUSH2 0x4A0E JUMPI PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH4 0xFFFFFFFF AND SWAP5 POP JUMPDEST PUSH4 0xFFFFFFFF DUP5 AND ISZERO ISZERO PUSH2 0x4A40 JUMPI PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH4 0xFFFFFFFF AND SWAP4 POP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE DUP1 PUSH2 0x4A5E DUP4 PUSH4 0xFFFFFFFF DUP1 DUP11 AND SWAP1 PUSH2 0x38DA AND JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x4A76 DUP5 PUSH4 0xFFFFFFFF DUP1 DUP10 AND SWAP1 PUSH2 0x38DA AND JUMP JUMPDEST SWAP1 MSTORE SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH4 0xFFFFFFFF AND GT DUP1 ISZERO PUSH2 0x4AA2 JUMPI POP PUSH3 0xF4240 PUSH4 0xFFFFFFFF DUP3 AND GT ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x154A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F574549474854000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x4B00 PUSH2 0x529D JUMP JUMPDEST PUSH2 0x4B08 PUSH2 0x529D JUMP JUMPDEST DUP3 DUP5 LT PUSH2 0x4B20 JUMPI PUSH2 0x4B19 DUP5 DUP5 PUSH2 0x5081 JUMP JUMPDEST SWAP2 POP PUSH2 0x3957 JUMP JUMPDEST PUSH2 0x4B2A DUP4 DUP6 PUSH2 0x5081 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x20 DUP1 DUP4 ADD MLOAD DUP3 MSTORE DUP3 MLOAD SWAP1 DUP3 ADD MSTORE SWAP3 POP SWAP1 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x0 SWAP1 PUSH2 0x2AC5 SWAP1 PUSH3 0xF4240 SWAP1 PUSH2 0x16C3 SWAP1 DUP6 SWAP1 PUSH9 0x10000000000000000 SWAP1 DIV PUSH4 0xFFFFFFFF SWAP1 DUP2 AND SWAP1 PUSH2 0x38DA AND JUMP JUMPDEST PUSH1 0xB SLOAD PUSH1 0x0 SWAP1 DUP2 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x4BEB JUMPI PUSH1 0xA SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD PUSH1 0xB SLOAD SWAP1 SWAP5 AND DUP4 MSTORE SWAP1 SWAP2 KECCAK256 SLOAD DUP7 MLOAD SWAP2 DUP8 ADD MLOAD PUSH1 0x16 SLOAD PUSH2 0x4BE4 SWAP5 SWAP4 PUSH4 0xFFFFFFFF DUP1 DUP14 AND SWAP4 SWAP1 DUP13 AND SWAP3 PUSH2 0x513E JUMP JUMPDEST SWAP1 POP PUSH2 0x4C3A JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD PUSH1 0xB SLOAD SWAP1 SWAP5 AND DUP4 MSTORE SWAP1 SWAP2 KECCAK256 SLOAD DUP7 MLOAD SWAP2 DUP8 ADD MLOAD PUSH1 0x16 SLOAD PUSH2 0x4C37 SWAP5 SWAP4 PUSH4 0xFFFFFFFF DUP1 DUP13 AND SWAP4 SWAP1 DUP14 AND SWAP3 PUSH2 0x513E JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH2 0x4C4B PUSH3 0xF4240 PUSH2 0x16C3 DUP6 DUP5 PUSH2 0x38DA JUMP JUMPDEST SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x4C63 PUSH2 0x529D JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x4C71 PUSH2 0x51AA JUMP JUMPDEST SWAP6 POP SWAP6 POP PUSH2 0x4C84 DUP12 DUP12 PUSH1 0x0 DUP1 DUP10 DUP15 PUSH2 0x44AA JUMP JUMPDEST SWAP2 SWAP6 POP SWAP4 POP SWAP2 POP DUP4 ISZERO ISZERO PUSH2 0x4CE2 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5A45524F5F5441524745545F414D4F554E5400000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x4CEB DUP11 PUSH2 0x2AFF JUMP JUMPDEST SWAP1 POP DUP1 DUP5 LT PUSH2 0x4D44 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5441524745545F414D4F554E545F544F4F5F48494748000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x52F4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ ISZERO PUSH2 0x4DBF JUMPI CALLVALUE DUP10 EQ PUSH2 0x4DBA JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4554485F414D4F554E545F4D49534D41544348000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x4EC1 JUMP JUMPDEST CALLVALUE ISZERO DUP1 ISZERO PUSH2 0x4E6B JUMPI POP DUP9 PUSH2 0x4E68 PUSH2 0x4DD5 DUP14 PUSH2 0x2AFF JUMP JUMPDEST DUP14 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x4E30 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x4E44 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x4E5A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x3B7B AND JUMP JUMPDEST LT ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x4EC1 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F414D4F554E540000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x4ECA DUP12 PUSH2 0x3DC0 JUMP JUMPDEST PUSH2 0x4EDA DUP2 DUP6 PUSH4 0xFFFFFFFF PUSH2 0x3B7B AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE PUSH1 0xC SWAP1 MSTORE KECCAK256 SLOAD PUSH2 0x4F0F SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0x395E AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE DUP6 ISZERO PUSH2 0x4F5A JUMPI PUSH1 0xA SLOAD PUSH1 0xB SLOAD PUSH2 0x4F4D SWAP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 DUP2 AND SWAP2 AND PUSH1 0x0 DUP1 PUSH2 0x49BB JUMP JUMPDEST DUP1 MLOAD PUSH1 0x12 SSTORE PUSH1 0x20 ADD MLOAD PUSH1 0x13 SSTORE JUMPDEST POP SWAP2 SWAP10 SWAP2 SWAP9 POP SWAP1 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0x8000000000000000000000000000000000000000000000000000000000000000 DUP2 LT PUSH2 0x4F94 JUMPI INVALID JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP5 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 SWAP1 MSTORE DUP1 DUP3 ADD DUP4 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP8 AND SWAP3 DUP9 DUP3 AND SWAP3 SWAP2 DUP11 AND SWAP2 PUSH32 0x276856B36CBC45526A0BA64F44611557A2A8B68662C5388E9FE6D72E86E1C8CB SWAP2 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG4 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x4FFF DUP7 DUP7 DUP7 DUP7 PUSH2 0x3D23 JUMP JUMPDEST PUSH2 0x5008 DUP6 PUSH2 0x2033 JUMP JUMPDEST SWAP2 POP DUP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x18160DDD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x5048 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x505C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x5072 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 POP PUSH2 0x2227 DUP3 DUP3 DUP8 PUSH2 0x3CC3 JUMP JUMPDEST PUSH2 0x5089 PUSH2 0x529D JUMP JUMPDEST PUSH20 0x14484BFEEBC29F863424B06F3529A051A31BE599 DUP3 GT ISZERO PUSH2 0x50DB JUMPI PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH13 0xC9F2C9CD04674EDEA40000000 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 DUP6 DIV DUP5 DUP2 ISZERO ISZERO PUSH2 0x50D1 JUMPI INVALID JUMPDEST DIV SWAP1 MSTORE SWAP1 POP PUSH2 0x2AC5 JUMP JUMPDEST PUSH13 0xC9F2C9CD04674EDEA40000000 DUP4 GT ISZERO PUSH2 0x5128 JUMPI PUSH1 0x40 DUP1 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH13 0xC9F2C9CD04674EDEA40000000 DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH13 0xC9F2C9CD04674EDEA40000000 DUP6 MUL DUP2 ISZERO ISZERO PUSH2 0x50D1 JUMPI INVALID JUMPDEST POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 PUSH2 0x5156 DUP8 PUSH2 0x4358 DUP13 DUP10 PUSH4 0xFFFFFFFF PUSH2 0x38DA AND JUMP JUMPDEST SWAP2 POP PUSH2 0x516C DUP9 PUSH2 0x4358 DUP12 DUP9 PUSH4 0xFFFFFFFF PUSH2 0x38DA AND JUMP JUMPDEST SWAP1 POP DUP2 DUP2 GT ISZERO PUSH2 0x5198 JUMPI PUSH2 0x5191 DUP2 PUSH2 0x16C3 PUSH1 0x14 PUSH2 0x4358 DUP7 DUP5 SUB DUP10 PUSH4 0xFFFFFFFF PUSH2 0x38DA AND JUMP JUMPDEST SWAP3 POP PUSH2 0x519D JUMP JUMPDEST PUSH1 0x0 SWAP3 POP JUMPDEST POP POP SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x51B4 PUSH2 0x529D JUMP JUMPDEST PUSH1 0x0 PUSH2 0x51BE PUSH2 0x529D JUMP JUMPDEST PUSH2 0x51C6 PUSH2 0x529D JUMP JUMPDEST PUSH2 0x51CE PUSH2 0x37C4 JUMP JUMPDEST SWAP3 POP DUP3 PUSH1 0x11 SLOAD EQ ISZERO PUSH2 0x51FC JUMPI PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0xF SLOAD DUP2 MSTORE PUSH1 0x10 SLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 SWAP6 POP SWAP4 POP PUSH2 0x315F JUMP JUMPDEST PUSH2 0x5204 PUSH2 0x413C JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0xF SLOAD DUP1 DUP3 MSTORE PUSH1 0x10 SLOAD PUSH1 0x20 DUP4 ADD MSTORE DUP3 MLOAD SWAP3 SWAP5 POP SWAP1 SWAP3 POP EQ DUP1 ISZERO PUSH2 0x5238 JUMPI POP DUP1 PUSH1 0x20 ADD MLOAD DUP3 PUSH1 0x20 ADD MLOAD EQ JUMPDEST ISZERO PUSH2 0x5249 JUMPI PUSH1 0x0 DUP3 SWAP5 POP SWAP5 POP PUSH2 0x315F JUMP JUMPDEST DUP2 MLOAD PUSH1 0xF SSTORE PUSH1 0x20 DUP3 ADD MLOAD PUSH1 0x10 SSTORE PUSH1 0x11 DUP4 SWAP1 SSTORE PUSH2 0x5263 PUSH2 0x37C8 JUMP JUMPDEST POP PUSH1 0x1 SWAP5 SWAP1 SWAP4 POP SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xA0 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE SWAP2 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x60 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 SWAP1 PUSH1 0x20 DUP3 MUL DUP1 CODESIZE DUP4 CODECOPY POP SWAP2 SWAP3 SWAP2 POP POP JUMP STOP MSTORE8 PUSH16 0x7672796E53776170436F6E7665727465 PUSH19 0x55706772616465720000000000000000000000 STOP STOP STOP STOP STOP STOP 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee GASLIMIT MSTORE MSTORE 0x5f COINBASE NUMBER NUMBER GASLIMIT MSTORE8 MSTORE8 0x5f DIFFICULTY GASLIMIT 0x4e 0x49 GASLIMIT DIFFICULTY STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP GASLIMIT MSTORE MSTORE 0x5f 0x49 0x4e JUMP COINBASE 0x4c 0x49 DIFFICULTY 0x5f MSTORE GASLIMIT MSTORE8 GASLIMIT MSTORE JUMP GASLIMIT 0x5f NUMBER 0x4f SSTORE 0x4e SLOAD STOP STOP STOP STOP STOP STOP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 0xd6 0xce 0xae 0xf 0xa8 DUP15 OR PUSH16 0xCEC4250A8A72385CF1AE86E302A34151 0x47 0xc 0xa7 SWAP10 PUSH26 0x55CCC20029000000000000000000000000000000000000000000 ", + "sourceMap": "651:42579:25:-;;;;;;;;-1:-1:-1;651:42579:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;7097:29:4;;:8;:29;;:35;;;;;;;7089:67;;;;;;;-1:-1:-1;;;;;7089:67:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;651:42579:25;8537:211;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;8537:211:25;;;-1:-1:-1;;;;;8537:211:25;;;;;;;;;;;;;;;;;;;3280:206:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3280:206:60;;;;;;;1168:38:25;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1168:38:25;;;;;;;;-1:-1:-1;;;;;1168:38:25;;;;;;;;;;;;;;2354:42;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2354:42:25;;;;;;;;;;;;;;;;;;;;;;2700:30:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2700:30:4;;;;;;;;;;;;;;;;;;;;;;;18973:244;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;18973:244:4;;;-1:-1:-1;;;;;18973:244:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5167:2660:25;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;5167:2660:25;-1:-1:-1;;;;;5167:2660:25;;;;;;;;;;;;;;;14417:102:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14417:102:4;;;;10614:103:25;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10614:103:25;;;;19274:125:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;19274:125:4;;;;;13732:152;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;13732:152:4;;;-1:-1:-1;;;;;13732:152:4;;;19798:206;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;19798:206:4;-1:-1:-1;;;;;19798:206:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18669:110;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;18669:110:4;;;-1:-1:-1;;;;;18669:110:4;;;4154:118:25;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4154:118:25;;;;1074:31;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1074:31:25;;;;8949:279;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;8949:279:25;;;-1:-1:-1;;;;;8949:279:25;;;11288:610;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;11288:610:25;;;-1:-1:-1;;;;;11288:610:25;;;1250:38:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1250:38:60;;;;18836:80:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18836:80:4;;;;10292:155;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;10292:155:4;-1:-1:-1;;;;;10292:155:4;;;;;;;;;;;;3902:81:25;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3902:81:25;;;;;;;;;;;;;;;;;;;;;;;10110:273;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;10110:273:25;;;;;;;2080:832:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2080:832:60;;;;8691:132:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;8691:132:4;;;-1:-1:-1;;;;;8691:132:4;;;2221:35;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2221:35:4;;;;20067:3341:25;;;;-1:-1:-1;;;;;20067:3341:25;;;;;;;10925:141;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;10925:141:25;;;-1:-1:-1;;;;;10925:141:25;;;2993:31:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2993:31:4;;;;11282:601;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;11282:601:4;-1:-1:-1;;;;;11282:601:4;;;;;;;;;;;;1165:37:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1165:37:60;;;;9368:137:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;9368:137:4;;;-1:-1:-1;;;;;9368:137:4;;;26408:839:25;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;26408:839:25;;;-1:-1:-1;;;;;26408:839:25;;;;;7669:465:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;7669:465:4;;;-1:-1:-1;;;;;7669:465:4;;;8041:300:25;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;8041:300:25;;;;;12233:253;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;12233:253:25;;;-1:-1:-1;;;;;12233:253:25;;;;;;;19456:94:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19456:94:4;;;;1159:176:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1159:176:66;;;;1085:33:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1085:33:60;;;;157:20:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;157:20:66;;;;2818:34:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2818:34:4;;;;2294:53:25;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2294:53:25;;;-1:-1:-1;;;;;2294:53:25;;;12584:101:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12584:101:4;;;;1866:29:25;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1866:29:25;;;;13954:1880;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;13954:1880:25;-1:-1:-1;;;;;13954:1880:25;;;;;;;;;;;;2974:119:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2974:119:60;;;;3095:46:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3095:46:4;;;;9510:248:25;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;9510:248:25;;;-1:-1:-1;;;;;9510:248:25;;;;;1999:38;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1999:38:25;;;;2322:37:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2322:37:4;;;;2090:197:9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2090:197:9;;;;2445:34:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2445:34:4;;;;;8282:71;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8282:71:4;;;;2260:30;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2260:30:4;;;;180:23:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;180:23:66;;;;12079:317:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12079:317:4;;;;4423:105:25;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4423:105:25;;;;;;;;;;;;;;;;;;;;;;;2566:43:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2566:43:4;;;-1:-1:-1;;;;;2566:43:4;;;19607:134;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;19607:134:4;;;-1:-1:-1;;;;;19607:134:4;;;12748:168:25;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12748:168:25;;;;1268:40;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1268:40:25;;;;14111:155:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;14111:155:4;;;-1:-1:-1;;;;;14111:155:4;;;23766:2230:25;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;23766:2230:25;;;-1:-1:-1;;;;;23766:2230:25;;;;;;;2405:39;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2405:39:25;;;;15044:649:4;;-1:-1:-1;;;;;15044:649:4;;;;;;;;;;;;;;;;;;;;;;;13075:444:25;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13075:444:25;;;;10618:240:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;10618:240:4;;;;;;;945:140:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;945:140:66;;;-1:-1:-1;;;;;945:140:66;;;2112:34:25;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2112:34:25;;;;18535:77:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18535:77:4;;;;8537:211:25;8679:7;8646:13;6115:23:4;6129:8;6115:13;:23::i;:::-;-1:-1:-1;;;;;;;8711:29:25;;;;;:14;:29;;;;;;;8537:211::o;3280:206:60:-;575:12:66;:10;:12::i;:::-;3426:26:60;:56;;;;;;;-1:-1:-1;;3426:56:60;;;;;;;;;3280:206::o;1168:38:25:-;;;-1:-1:-1;;;;;1168:38:25;;:::o;2354:42::-;;;;;;:::o;2700:30:4:-;;;;;;:::o;18973:244::-;19042:7;19054:6;19065:4;19074;19083;19097:22;;:::i;:::-;-1:-1:-1;;;;;;;;;19122:18:4;;;;;;;;:8;:18;;;;;;;;19097:43;;-1:-1:-1;19097:43:4;;;;;;;;;-1:-1:-1;19097:43:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;19122:18:4;;-1:-1:-1;19122:18:4;;19097:43;18973:244::o;5167:2660:25:-;5740:26;6492:51;7161:35;7251:29;7329:31;5818:11:4;:9;:11::i;:::-;575:12:66;:10;:12::i;:::-;5384:20:25;6115:23:4;6129:8;6115:13;:23::i;:::-;5423:21:25;782:18:72;791:8;782;:18::i;:::-;5463:23:25;782:18:72;791:8;782;:18::i;:::-;5510:21:25;475:23:72;489:8;475:13;:23::i;:::-;5555::25;475::72;489:8;475:13;:23::i;:::-;5642:6:25;;:14;;;;;;;;5668:4;;-1:-1:-1;;;;;5642:6:25;;:12;;:14;;;;;;;;;;;;;;:6;;:14;;;5:2:-1;;;;30:1;27;20:12;5:2;5642:14:25;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5642:14:25;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5642:14:25;-1:-1:-1;;;;;5642:31:25;;5634:64;;;;;-1:-1:-1;;;;;5634:64:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;5780:37;5790:26;5780:9;:37::i;:::-;5837:52;;;-1:-1:-1;;;;;5837:52:25;;-1:-1:-1;;;;;5837:52:25;;;;;;;;;5740:78;;-1:-1:-1;5837:29:25;;;;;;:52;;;;;;;;;;;;;;;-1:-1:-1;5837:29:25;:52;;;5:2:-1;;;;30:1;27;20:12;5:2;5837:52:25;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5837:52:25;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5837:52:25;5829:83;;;;;;;-1:-1:-1;;;;;5829:83:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;5931:54;;;-1:-1:-1;;;;;5931:54:25;;-1:-1:-1;;;;;5931:54:25;;;;;;;;;:29;;;;;;:54;;;;;;;;;;;;;;;-1:-1:-1;5931:29:25;:54;;;5:2:-1;;;;30:1;27;20:12;5:2;5931:54:25;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5931:54:25;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5931:54:25;5923:85;;;;;;;-1:-1:-1;;;;;5923:85:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;6096:18;:16;:18::i;:::-;6183:19;:42;;-1:-1:-1;;;;;;6183:42:25;-1:-1:-1;;;;;6183:42:25;;;;;6264:13;:16;;-1:-1:-1;;6264:16:25;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6240:40:25;;;6264:16;;6240:40;6236:168;;;6319:13;:16;;6333:1;;6319:16;;;;;;;;;;;;;;;;6295:21;:40;;-1:-1:-1;;;;;;6295:40:25;-1:-1:-1;;;;;6319:16:25;;;6295:40;;;;;;6236:168;;;6388:13;:16;;6402:1;;6388:16;;;;;;;;;;;;;;;;6364:21;:40;;-1:-1:-1;;;;;;6364:40:25;-1:-1:-1;;;;;6388:16:25;;;6364:40;;;;;;6236:168;6615:28;6625:17;6615:9;:28::i;:::-;-1:-1:-1;;;;;6597:63:25;;6661:15;:13;:15::i;:::-;6597:80;;;;;-1:-1:-1;;;6597:80:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6597:80:25;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6597:80:25;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6597:80:25;;;;;;;;;;;;;;;;6492:186;;6703:13;-1:-1:-1;;;;;6703:31:25;;6735:20;6757:21;;;;;;;;;-1:-1:-1;;;;;6757:21:25;6780;6803:23;6703:124;;;;;-1:-1:-1;;;6703:124:25;;;;;;;-1:-1:-1;;;;;6703:124:25;-1:-1:-1;;;;;6703:124:25;;;;;;-1:-1:-1;;;;;6703:124:25;-1:-1:-1;;;;;6703:124:25;;;;;;-1:-1:-1;;;;;6703:124:25;-1:-1:-1;;;;;6703:124:25;;;;;;-1:-1:-1;;;;;6703:124:25;-1:-1:-1;;;;;6703:124:25;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6703:124:25;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6703:124:25;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6703:124:25;6689:11;:138;;;;;-1:-1:-1;;;;;6689:138:25;;;;;;;;;;;;;6900:19;;6921:21;;6877:66;;;;;;6900:19;;;6877:66;;;;6921:21;;;6877:66;;;;;;:11;;;;;;;;:22;;:66;;;;;;;;;;;;-1:-1:-1;6877:11:25;:66;;;5:2:-1;;;;30:1;27;20:12;5:2;6877:66:25;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6877:66:25;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6877:66:25;;;;;;;6858:15;6840:103;;;6841:13;6840:103;;;6954:18;:34;;;;;;7027:6;:4;:6::i;:::-;7001:23;:32;7220:19;;7199:41;;-1:-1:-1;;;;;7220:19:25;7199:20;:41::i;:::-;7298:19;;7161:79;;-1:-1:-1;7283:35:25;;-1:-1:-1;;;;;7298:19:25;7283:14;:35::i;:::-;7378:21;;7251:67;;-1:-1:-1;7363:37:25;;-1:-1:-1;;;;;7378:21:25;7363:14;:37::i;:::-;7329:71;;7448:21;7417:27;:52;7413:348;;;7520:1;7490:27;:31;:62;;;;7551:1;7525:23;:27;7490:62;7486:114;;;7573:11;:9;:11::i;:::-;7413:348;;;7660:1;7630:27;:31;:60;;;;;7689:1;7665:21;:25;7630:60;:91;;;;;7720:1;7694:23;:27;7630:91;7626:135;;;7738:11;:9;:11::i;:::-;7806:6;;7814:4;;-1:-1:-1;;;;;7806:6:25;7789:15;:13;:15::i;:::-;7778:41;;;;;;;;;;;;502:1:72;804;;6142::4;591::66;5167:2660:25;;;;;;;;:::o;14417:102:4:-;-1:-1:-1;;;;;;;;;;;14463:4:4;14480:29;:8;:29;;:35;;;;;;;;14417:102::o;10614:103:25:-;575:12:66;:10;:12::i;:::-;10678:23:25;:31;;-1:-1:-1;;10678:31:25;;;10614:103::o;19274:125:4:-;19336:11;19360:27;19388:6;19360:35;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;19360:35:4;;;-1:-1:-1;;19274:125:4:o;13732:152::-;13831:6;13807:13;6115:23;6129:8;6115:13;:23::i;:::-;-1:-1:-1;;;;;;;13850:23:4;;;;;:8;:23;;;;;-1:-1:-1;13850:30:4;;;;;13732:152::o;19798:206::-;19916:7;19925;19945:55;19964:12;19978;19992:7;19945:18;:55::i;:::-;19938:62;;;;19798:206;;;;;;:::o;18669:110::-;575:12:66;:10;:12::i;:::-;18741:34:4;18765:9;18741:23;:34::i;:::-;18669:110;:::o;4154:118:25:-;4195:4;4219:16;:14;:16::i;:::-;:45;;;;-1:-1:-1;4239:11:25;;;;;-1:-1:-1;;;;;4239:11:25;:25;;4219:45;4212:52;;4154:118;:::o;1074:31::-;;;;;;-1:-1:-1;;;;;1074:31:25;;:::o;8949:279::-;9094:7;9061:13;6115:23:4;6129:8;6115:13;:23::i;:::-;9126:94:25;9190:29;9205:13;9190:14;:29::i;:::-;-1:-1:-1;;;;;9126:29:25;;;;;;:14;:29;;;;;;:59;;9160:24;9126:33;:59::i;:::-;:63;:94;:63;:94;:::i;:::-;9119:101;8949:279;-1:-1:-1;;;8949:279:25:o;11288:610::-;11359:7;11417:23;11578:24;11648:15;11705:21;11443:10;-1:-1:-1;;;;;11443:22:25;;:24;;;;;-1:-1:-1;;;11443:24:25;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11443:24:25;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11443:24:25;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11443:24:25;-1:-1:-1;;;;;11605:32:25;;;;;;;:20;11443:24;11605:32;;;;;11443:24;;-1:-1:-1;11605:32:25;;-1:-1:-1;11666:28:25;11605:32;11666:14;:28::i;:::-;-1:-1:-1;;;;;11729:28:25;;;;;;:14;:28;;;;;;11648:46;;-1:-1:-1;11729:28:25;-1:-1:-1;11843:47:25;11729:28;11843;11648:46;11855:15;11843:11;:28::i;:::-;:32;:47;:32;:47;:::i;:::-;11836:54;11288:610;-1:-1:-1;;;;;;11288:610:25:o;1250:38:60:-;;;;;;;;;:::o;18836:80:4:-;575:12:66;:10;:12::i;:::-;18889:23:4;:21;:23::i;:::-;18836:80::o;10292:155::-;575:12:66;:10;:12::i;:::-;10400:6:4;;:43;;;;;;-1:-1:-1;;;;;10400:43:4;;;;;;;;;;;;;;;;;;;;;;:6;;;;;:21;;:43;;;;;-1:-1:-1;;10400:43:4;;;;;;;-1:-1:-1;10400:6:4;:43;;;5:2:-1;;;;30:1;27;20:12;5:2;10400:43:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10400:43:4;;;;10292:155;;;:::o;3902:81:25:-;3974:1;3902:81;:::o;10110:273::-;575:12:66;:10;:12::i;:::-;10276:25:25;10238:17;:35;10256:13;10270:1;10256:16;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10256:16:25;10238:35;;;;;;;;;;;;:63;;;;10330:13;:16;;10350:25;;10312:17;;10256:16;;-1:-1:-1;;10330:16:25;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10330:16:25;10312:35;;;;;;;;;;;;:63;-1:-1:-1;;10110:273:25:o;2080:832:60:-;2281:29;2183:5;;-1:-1:-1;;;;;2183:5:60;2169:10;:19;;:50;;-1:-1:-1;2193:26:60;;;;;;;2192:27;2169:50;2161:80;;;;;;;-1:-1:-1;;;;;2161:80:60;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;2161:80:60;;;;;;;;;;;;;;;2331:28;2341:17;2331:9;:28::i;:::-;2465:8;;2281:79;;-1:-1:-1;;;;;;2442:32:60;;;2465:8;;2442:32;;;;:61;;-1:-1:-1;;;;;;2478:25:60;;;;2442:61;2434:94;;;;;;;-1:-1:-1;;;;;2434:94:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;2628:40;;;;;;2650:17;2628:40;;;;;;-1:-1:-1;;;;;;;2628:21:60;;;;;:40;;;;;;;;;;;;;;;-1:-1:-1;2628:21:60;:40;;;5:2:-1;;;;30:1;27;20:12;5:2;2628:40:60;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2628:40:60;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2628:40:60;-1:-1:-1;;;;;2628:54:60;;;2620:87;;;;;-1:-1:-1;;;;;2620:87:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;2799:8;;;2784:12;:23;;-1:-1:-1;;;;;2799:8:60;;;-1:-1:-1;;;;;;2784:23:60;;;;;;;2886:22;;;;;;;;;;;2080:832::o;8691:132:4:-;575:12:66;:10;:12::i;:::-;8771:10:4;782:18:72;791:8;782;:18::i;:::-;-1:-1:-1;8787:19:4;:32;;-1:-1:-1;;;;;;8787:32:4;-1:-1:-1;;;;;8787:32:4;;;;;;;;;;8691:132::o;2221:35::-;2254:2;2221:35;:::o;20067:3341:25:-;20347:7;21027:28;21493;21570:23;22271;565:12:68;:10;:12::i;:::-;287:1;581:5;:14;5606:9:4;:7;:9::i;:::-;20243:13:25;6115:23:4;6129:8;6115:13;:23::i;:::-;20283:7:25;180:24:72;197:6;180:16;:24::i;:::-;20317:10:25;180:24:72;197:6;180:16;:24::i;:::-;-1:-1:-1;;;;;;;;20482:36:25;;;-1:-1:-1;;;;;;;;;20482:36:25;:76;;20544:9;:14;20482:76;;;20534:7;20521:9;:20;20482:76;20474:112;;;;;;;-1:-1:-1;;;;;20474:112:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;20650:21;:19;:21::i;:::-;-1:-1:-1;;;;;;;;20794:36:25;;;-1:-1:-1;;;;;;;;;20794:36:25;20790:147;;;-1:-1:-1;;;;;;;;;;;20885:29:25;;:8;:29;;;:37;:52;;20927:9;20885:52;:41;:52;:::i;:::-;-1:-1:-1;;;;;;;;;;;20845:29:25;;:8;:29;;;:92;20790:147;-1:-1:-1;;;;;21058:29:25;;;;;;:14;:29;;;;;;21202:23;;21058:29;;-1:-1:-1;21202:23:25;;21198:209;;;-1:-1:-1;;;;;21250:32:25;;;;;;:17;:32;;;;;;:37;;:110;;-1:-1:-1;;;;;;21328:32:25;;;;;;:17;:32;;;;;;21291:33;:20;21316:7;21291:24;:33::i;:::-;:69;;21250:110;21242:153;;;;;;;-1:-1:-1;;;;;21242:153:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;21524:35:25;;;;;;;:20;:35;;;;;;;;;21596:30;;;;;;;21524:35;;;-1:-1:-1;21524:35:25;;21596:28;;:30;;;;;21524:35;21596:30;;;;;;;21524:35;21596:30;;;5:2:-1;;;;30:1;27;20:12;5:2;21596:30:25;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;21596:30:25;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;21596:30:25;-1:-1:-1;;;21596:30:25;;-1:-1:-1;;;;;;21721:36:25;;;-1:-1:-1;;;;;;;;21721:36:25;21717:113;;21772:58;21789:13;21804:10;21816:4;21822:7;21772:16;:58::i;:::-;-1:-1:-1;;;;;21931:23:25;;;;;;:8;:23;;;;;:31;:44;;21967:7;21931:35;:44::i;:::-;-1:-1:-1;;;;;21897:23:25;;;;;;:8;:23;;;;;:78;22018:33;:20;22043:7;22018:24;:33::i;:::-;-1:-1:-1;;;;;21986:29:25;;;;;;:14;:29;;;;;:65;;;;:29;-1:-1:-1;22313:25:25;;;:49;;-1:-1:-1;22342:20:25;;22313:49;22309:194;;;22395:7;22377:25;;22309:194;;;22449:54;22482:20;22449:28;:7;22461:15;22449:28;:11;:28;:::i;:54::-;22431:72;;22309:194;22522:29;;;;22514:60;;;;;-1:-1:-1;;;;;22514:60:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;22655:6;;22634:80;;;;;;-1:-1:-1;;;;;22634:80:25;;;;;;;22686:10;22634:80;;;;;;;;;;;;22655:6;;;;;22634:33;;:80;;;;;-1:-1:-1;;22634:80:25;;;;;;;-1:-1:-1;22655:6:25;22634:80;;;5:2:-1;;;;30:1;27;20:12;5:2;22634:80:25;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;22634:80:25;;;;22776:11;:9;:11::i;:::-;-1:-1:-1;;;;;22851:123:25;;22866:10;22851:123;22893:7;22902:33;:20;22893:7;22902:24;:33::i;:::-;22937:36;:15;22957;22937:36;:19;:36;:::i;:::-;22851:123;;;;;;;;;;;;;;;;;;;;;;;;;;23055:103;23088:16;23106:36;:15;23126;23106:36;:19;:36;:::i;:::-;23144:13;23055:32;:103::i;:::-;23243:70;23272:13;23286:1;23272:16;;;;;;;;;;;;;;;;;;;;23290:13;:16;;-1:-1:-1;;;;;23272:16:25;;;;-1:-1:-1;;23290:16:25;;;;;;;;;;;;;;;-1:-1:-1;;;;;23290:16:25;;;23243:28;:70::i;:::-;-1:-1:-1;;249:1:68;604:5;:16;-1:-1:-1;23385:15:25;20067:3341;-1:-1:-1;;;;;;;20067:3341:25:o;10925:141::-;-1:-1:-1;;;;;11023:35:25;;;10992:11;11023:35;;;:20;:35;;;;;;;;10925:141::o;2993:31:4:-;;;;;;;;;:::o;11282:601::-;11396:25;565:12:68;:10;:12::i;:::-;287:1;581:5;:14;575:12:66;:10;:12::i;:::-;11424:29:4;-1:-1:-1;;;;;;;;;;;11424:9:4;:29::i;:::-;-1:-1:-1;;;;;11622:16:4;;;;;;:8;:16;;;;;-1:-1:-1;11622:22:4;;11396:57;;-1:-1:-1;11622:22:4;;;;;11621:23;;:38;;;11649:10;:8;:10::i;:::-;11648:11;11621:38;:68;;;-1:-1:-1;11663:5:4;;-1:-1:-1;;;;;11663:26:4;;;:5;;:26;11621:68;11613:98;;;;;;;-1:-1:-1;;;;;11613:98:4;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;11613:98:4;;;;;;;;;;;;;;;11715:42;11736:6;11744:3;11749:7;11715:20;:42::i;:::-;-1:-1:-1;;;;;11829:16:4;;;;;;:8;:16;;;;;-1:-1:-1;11829:22:4;;;;;;;11825:54;;;11853:26;11872:6;11853:18;:26::i;:::-;-1:-1:-1;;249:1:68;604:5;:16;-1:-1:-1;;11282:601:4:o;1165:37:60:-;;;-1:-1:-1;;;;;1165:37:60;;:::o;9368:137:4:-;575:12:66;:10;:12::i;:::-;-1:-1:-1;;;;;;;;;;;1510:20:60;1516:13;1510:5;:20::i;:::-;9466:6:4;;:35;;;;;;-1:-1:-1;;;;;9466:35:4;;;;;;;;;:6;;;;;:24;;:35;;;;;-1:-1:-1;;9466:35:4;;;;;;;-1:-1:-1;9466:6:4;:35;;;5:2:-1;;;;30:1;27;20:12;5:2;9466:35:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9466:35:4;;;;591:1:66;9368:137:4;:::o;26408:839:25:-;26534:7;26543;26568:19;26625:21;26752:9;26840;26912:11;26925;26978:23;27062:22;26590:10;-1:-1:-1;;;;;26590:22:25;;:24;;;;;-1:-1:-1;;;26590:24:25;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;26590:24:25;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;26590:24:25;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;26590:24:25;-1:-1:-1;;;;;26664:32:25;;;26649:48;26664:32;;;:20;26590:24;26664:32;;;;;;;;;;;26649:48;;:14;:48;;;;26590:24;;-1:-1:-1;26649:48:25;-1:-1:-1;26714:21:25;;;26710:494;;;26779:19;;-1:-1:-1;;;;;26779:19:25;26764:35;;;;:14;:35;;;;;;:61;;765:2;26764:39;:61::i;:::-;26876:19;;26752:73;;-1:-1:-1;26852:44:25;;-1:-1:-1;;;;;26876:19:25;26852:23;:44::i;:::-;26840:56;;26944:1;26940;:5;:23;;26958:1;26961;26940:23;;;26949:1;26952;26940:23;26911:52;;-1:-1:-1;26911:52:25;-1:-1:-1;27004:43:25;27035:11;27004:26;:7;27016:13;27004:26;:11;:26;:::i;:43::-;26978:69;-1:-1:-1;27087:33:25;27116:3;27087:24;26978:69;27107:3;27087:24;:19;:24;:::i;:33::-;27062:58;-1:-1:-1;;27159:32:25;;;;-1:-1:-1;27062:58:25;27135:57;;26710:494;27222:13;;-1:-1:-1;27237:1:25;;-1:-1:-1;27222:13:25;;26408:839;;;;;;;;;;;;;;:::o;7669:465:4:-;7781:25;565:12:68;:10;:12::i;:::-;287:1;581:5;:14;575:12:66;:10;:12::i;:::-;-1:-1:-1;;;;;;;;;;;6115:23:4;6129:8;6115:13;:23::i;:::-;7809:29;-1:-1:-1;;;;;;;;;;;7809:9:4;:29::i;:::-;7781:57;;7938:10;:8;:10::i;:::-;7937:11;:41;;;-1:-1:-1;7952:5:4;;-1:-1:-1;;;;;7952:26:4;;;:5;;:26;7937:41;7929:71;;;;;;;-1:-1:-1;;;;;7929:71:4;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;7929:71:4;;;;;;;;;;;;;;;8004:35;;-1:-1:-1;;;;;8004:12:4;;;8025:4;8017:21;8004:35;;;;;;;;;8017:21;8004:12;:35;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8004:35:4;8078:52;-1:-1:-1;;;;;;;;;;;8078:18:4;:52::i;:::-;-1:-1:-1;;249:1:68;604:5;:16;-1:-1:-1;7669:465:4:o;8041:300:25:-;575:12:66;:10;:12::i;:::-;889:6:25;8133:43;;;8125:86;;;;;-1:-1:-1;;;;;8125:86:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;8250:16;;8227:59;;;;;;;;;;;;;;;;;;;;;;;;8297:16;:36;8041:300::o;12233:253::-;12403:1;12381:19;:17;:19::i;:::-;:23;;;12373:61;;;;;-1:-1:-1;;;;;12373:61:25;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;12373:61:25;;;;;;;;;;;;;;;12445:33;12462:6;12470:7;12445:16;:33::i;:::-;12233:253;;:::o;19456:94:4:-;19508:6;19527:19;:17;:19::i;1159:176:66:-;1219:8;;-1:-1:-1;;;;;1219:8:66;1205:10;:22;1197:52;;;;;-1:-1:-1;;;;;1197:52:66;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;1197:52:66;;;;;;;;;;;;;;;1277:8;;;1270:5;;1258:28;;-1:-1:-1;;;;;1277:8:66;;;;1270:5;;;;1258:28;;;1298:8;;;;1290:16;;-1:-1:-1;;;;;1298:8:66;;-1:-1:-1;;;;;;1290:16:66;;;;;;;1310:21;;;1159:176::o;1085:33:60:-;;;-1:-1:-1;;;;;1085:33:60;;:::o;157:20:66:-;;;-1:-1:-1;;;;;157:20:66;;:::o;2818:34:4:-;;;;;;;;;:::o;2294:53:25:-;;;;;;;;;;;;;:::o;12584:101:4:-;12660:13;:20;12584:101;:::o;1866:29:25:-;;;;;;:::o;13954:1880::-;14115:7;14124;14522:24;14557;14721:20;;:::i;:::-;15092:27;15121:29;15650:20;15674:11;5606:9:4;:7;:9::i;:::-;14272:27:25;14286:12;14272:13;:27::i;:::-;14310;14324:12;14310:13;:27::i;:::-;-1:-1:-1;;;;;14356:28:25;;;;;;;;14348:63;;;;;-1:-1:-1;;;;;14348:63:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;14783:6;:4;:6::i;:::-;14756:23;;:33;14752:791;;;14813:13;14806:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;14861:8;:22;14870:12;-1:-1:-1;;;;;14861:22:25;-1:-1:-1;;;;;14861:22:25;;;;;;;;;;;;:29;;;;;;;;;;;;14841:49;;14925:8;:22;14934:12;-1:-1:-1;;;;;14925:22:25;-1:-1:-1;;;;;14925:22:25;;;;;;;;;;;;:29;;;;;;;;;;;;14905:49;;14752:791;;;15054:22;:20;:22::i;:::-;15047:29;;15154;15178:4;15154:23;:29::i;:::-;15220:19;;15091:92;;-1:-1:-1;15091:92:25;-1:-1:-1;;;;;;15204:35:25;;;15220:19;;15204:35;15200:332;;;15280:20;15260:40;;15339:22;15319:42;;15200:332;;;15435:22;15415:42;;15496:20;15476:40;;15200:332;15689:100;15709:12;15723;15737:17;15756;15775:4;15781:7;15689:19;:100::i;:::-;15649:140;;;;-1:-1:-1;13954:1880:25;;-1:-1:-1;;;;;;;;;;;;13954:1880:25:o;2974:119:60:-;575:12:66;:10;:12::i;:::-;3077::60;;3066:8;:23;;-1:-1:-1;;;;;;3066:23:60;-1:-1:-1;;;;;3077:12:60;;;3066:23;;;;;;2974:119::o;3095:46:4:-;3137:4;3095:46;:::o;9510:248:25:-;575:12:66;:10;:12::i;:::-;-1:-1:-1;;;;;;;;;;;1510:20:60;1516:13;1510:5;:20::i;:::-;9679:13:25;6115:23:4;6129:8;6115:13;:23::i;:::-;-1:-1:-1;;;;;;;9710:29:25;;;;;;;;:14;:29;;;;;:40;9510:248::o;1999:38::-;;;;:::o;2322:37:4:-;;;-1:-1:-1;;;;;2322:37:4;;:::o;2090:197:9:-;2219:1;2197:19;:17;:19::i;:::-;:23;;;2189:61;;;;;-1:-1:-1;;;;;2189:61:9;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;2189:61:9;;;;;;;;;;;;;;;2254:29;:27;:29::i;2445:34:4:-;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2445:34:4;;-1:-1:-1;2445:34:4;:::o;8282:71::-;8345:4;8282:71;:::o;2260:30::-;;;-1:-1:-1;;;;;2260:30:4;;:::o;180:23:66:-;;;-1:-1:-1;;;;;180:23:66;;:::o;12079:317:4:-;12119:36;575:12:66;:10;:12::i;:::-;12177:29:4;-1:-1:-1;;;;;;;;;;;12177:9:4;:29::i;:::-;12278:6;;12119:88;;-1:-1:-1;12286:5:4;;-1:-1:-1;;;;;12278:6:4;12261:15;:13;:15::i;:::-;12250:42;;;;;;;;;;;;12297:36;12315:17;12297;:36::i;:::-;12337:34;;;;;;2254:2;12337:34;;;;;;-1:-1:-1;;;;;12337:25:4;;;;;:34;;;;;-1:-1:-1;;12337:34:4;;;;;;;-1:-1:-1;12337:25:4;:34;;;5:2:-1;;;;30:1;27;20:12;5:2;12337:34:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12337:34:4;;;;12375:17;:15;:17::i;4423:105:25:-;765:2;4423:105;:::o;2566:43:4:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;19607:134::-;19686:7;19706:31;19721:15;19706:14;:31::i;:::-;19699:38;19607:134;-1:-1:-1;;19607:134:4:o;12748:168:25:-;12800:7;12809;12829:20;;:::i;:::-;12852:22;:20;:22::i;:::-;12893:6;;12901;;;;;12893;;12901;;-1:-1:-1;12748:168:25;-1:-1:-1;;12748:168:25:o;1268:40::-;;;-1:-1:-1;;;;;1268:40:25;;:::o;14111:155:4:-;14211:7;14187:13;6115:23;6129:8;6115:13;:23::i;:::-;-1:-1:-1;;;;;;;14231:23:4;;;;;:8;:23;;;;;:31;;14111:155::o;23766:2230:25:-;24028:7;24211:25;24353:21;24575:24;24915;25370:26;565:12:68;:10;:12::i;:::-;287:1;581:5;:14;5606:9:4;:7;:9::i;:::-;23927:10:25;3498:25;3514:8;3498:15;:25::i;:::-;23964:7;180:24:72;197:6;180:16;:24::i;:::-;23998:10:25;180:24:72;197:6;180:16;:24::i;:::-;24104:21:25;:19;:21::i;:::-;24239:10;-1:-1:-1;;;;;24239:22:25;;:24;;;;;-1:-1:-1;;;24239:24:25;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;24239:24:25;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;24239:24:25;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;24239:24:25;;-1:-1:-1;24380:48:25;24408:10;24420:7;24380:27;:48::i;:::-;-1:-1:-1;24352:76:25;-1:-1:-1;24447:27:25;;;;24439:58;;;;;-1:-1:-1;;;;;24439:58:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;24602:20;:32;24623:10;-1:-1:-1;;;;;24602:32:25;-1:-1:-1;;;;;24602:32:25;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;24602:32:25;24575:59;;24710:6;;;;;;;;;-1:-1:-1;;;;;24710:6:25;-1:-1:-1;;;;;24689:33:25;;24723:10;24735;24747:7;24689:66;;;;;-1:-1:-1;;;24689:66:25;;;;;;;-1:-1:-1;;;;;24689:66:25;-1:-1:-1;;;;;24689:66:25;;;;;;-1:-1:-1;;;;;24689:66:25;-1:-1:-1;;;;;24689:66:25;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;24689:66:25;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;;;;;;;;24855:22:25;;;;;;:8;:22;;;;;:30;:49;;24890:13;24855:34;:49::i;:::-;-1:-1:-1;;;;;24822:22:25;;;;;;:8;:22;;;;;;;;:82;;;;24942:14;:28;;;;:47;;24975:13;24942:32;:47::i;:::-;-1:-1:-1;;;;;25000:28:25;;;;;;:14;:28;;;;;;;:47;;;;;-1:-1:-1;25000:28:25;;;;-1:-1:-1;25000:28:25;-1:-1:-1;;;;;25118:35:25;25114:170;;;25168:34;;:10;;:34;;;;;25188:13;;25168:34;;;;25188:13;25168:10;:34;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;25168:34:25;25114:170;;;25231:53;25244:12;25258:10;25270:13;25231:12;:53::i;:::-;25346:11;:9;:11::i;:::-;25399:30;:17;25421:7;25399:30;:21;:30;:::i;:::-;25495:95;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;25495:95:25;;;25512:10;;25495:95;;;;;;;;;;25671:78;25704:10;25716:18;25736:12;25671:32;:78::i;:::-;25834:70;25863:13;25877:1;25863:16;;;;;;;;;25834:70;-1:-1:-1;;249:1:68;604:5;:16;-1:-1:-1;25975:13:25;;23766:2230;-1:-1:-1;;;;;;;;23766:2230:25:o;2405:39::-;;;;:::o;15044:649:4:-;15241:7;565:12:68;:10;:12::i;:::-;287:1;581:5;:14;15212:18:4;1510:20:60;15212:18:4;1510:5:60;:20::i;:::-;-1:-1:-1;;;;;15282:28:4;;;;;;;;15274:63;;;;;-1:-1:-1;;;;;15274:63:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;15446:19;;-1:-1:-1;;;;;15446:19:4;:33;;:132;;-1:-1:-1;15484:19:4;;:42;;;-1:-1:-1;;;;;15484:42:4;;-1:-1:-1;;;;;15484:42:4;;;;;;;;;:19;;;;;:33;;:42;;;;;;;;;;;;;;-1:-1:-1;15484:19:4;:42;;;5:2:-1;;;;30:1;27;20:12;5:2;15484:42:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15484:42:4;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;15484:42:4;:93;;;;-1:-1:-1;15530:19:4;;:47;;;-1:-1:-1;;;;;15530:47:4;;-1:-1:-1;;;;;15530:47:4;;;;;;;;;:19;;;;;:33;;:47;;;;;;;;;;;;;;-1:-1:-1;15530:19:4;:47;;;5:2:-1;;;;30:1;27;20:12;5:2;15530:47:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15530:47:4;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;15530:47:4;15484:93;15434:174;;;;;;;-1:-1:-1;;;;;15434:174:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;15620:69;15630:12;15644;15658:7;15667;15676:12;15620:9;:69::i;:::-;249:1:68;604:5;:16;15613:76:4;15044:649;-1:-1:-1;;;;;;;15044:649:4:o;13075:444:25:-;13131:7;13140;13160:20;;:::i;:::-;13217:27;13246:29;13183:22;:20;:22::i;:::-;13160:45;;13279:29;13303:4;13279:23;:29::i;:::-;13216:92;;;;13348:13;13362:1;13348:16;;;;;;;;;;;;;;;;;;;;13325:19;;-1:-1:-1;;;;;13348:16:25;;;13325:19;;:39;13321:125;;;13381:53;;;;;-1:-1:-1;13381:53:25;;;-1:-1:-1;13381:53:25;;13321:125;13458:53;;;;;-1:-1:-1;13458:53:25;;;-1:-1:-1;13075:444:25;;;;;;:::o;10618:240:4:-;575:12:66;:10;:12::i;:::-;10714:16:4;;;;;;;;;10696:34;;;;;10688:73;;;;;-1:-1:-1;;;;;10688:73:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;10790:13;;10770:50;;;10790:13;;;;;;;10770:50;;;;;;;;;;;;;;;;;;;;;10824:13;:30;;;;;;;;-1:-1:-1;;10824:30:4;;;;;;;;;10618:240::o;945:140:66:-;575:12;:10;:12::i;:::-;1033:5;;-1:-1:-1;;;;;1020:18:66;;;1033:5;;1020:18;;1012:45;;;;;-1:-1:-1;;;;;1012:45:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;1061:8;:20;;-1:-1:-1;;;;;;1061:20:66;-1:-1:-1;;;;;1061:20:66;;;;;;;;;;945:140::o;2112:34:25:-;;;;;;:::o;18535:77:4:-;18602:6;;-1:-1:-1;;;;;18602:6:4;;18535:77::o;6193:123::-;-1:-1:-1;;;;;6264:18:4;;;;;;:8;:18;;;;;-1:-1:-1;6264:24:4;;;;;;;6256:56;;;;;;;-1:-1:-1;;;;;6256:56:4;;;;;;;;;;;;;;;;;;;;;;;;;;;642:93:66;704:5;;-1:-1:-1;;;;;704:5:66;690:10;:19;682:49;;;;;-1:-1:-1;;;;;682:49:66;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;682:49:66;;;;;;;;;;;;;;5884:77:4;5932:10;:8;:10::i;:::-;5931:11;5923:34;;;;;-1:-1:-1;;;;;5923:34:4;;;;;;;;;;;;;;;;;;;;;;;;;;;855:115:72;937:4;-1:-1:-1;;;;;917:25:72;;;;909:57;;;;;-1:-1:-1;;;;;909:57:72;;;;;;;;;;;;;;;;;;;;;;;;;;;553:117;-1:-1:-1;;;;;620:22:72;;;;612:54;;;;;-1:-1:-1;;;;;612:54:72;;;;;;;;;;;;;;;;;;;;;;;;;;;3647:122:60;3732:8;;:33;;;;;;;;;;;;;;-1:-1:-1;;;;;;;3732:8:60;;:18;;:33;;;;;;;;;;;;;;-1:-1:-1;3732:8:60;:33;;;5:2:-1;;;;30:1;27;20:12;5:2;3732:33:60;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3732:33:60;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3732:33:60;;3647:122;-1:-1:-1;;3647:122:60:o;32598:806:25:-;32700:6;;32752:22;;;;;;;;-1:-1:-1;;;;;32700:6:25;;;;32718:31;;32646:30;;;;;;;;32700:6;;32752:20;;:22;;;;;32646:30;;32752:22;;;;;;;;32646:30;32700:6;32752:22;;;5:2:-1;;;;30:1;27;20:12;5:2;32752:22:25;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;32752:22:25;;;;;;39:16:-1;36:1;17:17;2:54;101:4;32752:22:25;80:15:-1;;;-1:-1;;76:31;65:43;;120:4;113:20;13:2;5:11;;2:2;;;29:1;26;19:12;2:2;32752:22:25;;;;;;20:11:-1;15:3;12:20;9:2;;;45:1;42;35:12;9:2;64:21;;126:4;117:14;;142:31;;;139:2;;;186:1;183;176:12;139:2;224:3;218:10;339:9;333:2;319:12;315:21;297:16;293:44;290:59;268:11;254:12;251:29;239:119;236:2;;;371:1;368;361:12;236:2;-1:-1;;32805:17:25;;32863:13;:20;32752:22;;-1:-1:-1;32805:22:25;;-1:-1:-1;32863:20:25;-1:-1:-1;32826:1:25;;-1:-1:-1;;;;32894:503:25;32918:12;32914:1;:16;32894:503;;;32999:12;32995:181;;;33051:9;-1:-1:-1;;;;;33051:21:25;;:23;;;;;-1:-1:-1;;;33051:23:25;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;33051:23:25;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;33051:23:25;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;33051:23:25;;-1:-1:-1;32995:181:25;;;33147:10;33158:1;33147:13;;;;;;;;;;;;;;;;;;33128:32;;32995:181;33297:16;33256:20;:38;33277:13;33291:1;33277:16;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;33277:16:25;;;33256:38;;;;;;;;;;;;;;;:57;;-1:-1:-1;;;;;;33256:57:25;;;;;;;;;;;33369:13;:16;;33383:1;;33369:16;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;33328:38:25;;;;;:20;:38;;;;;;;:57;;-1:-1:-1;;;;;;33328:57:25;33369:16;;;;33328:57;;;-1:-1:-1;32932:3:25;;;;;32894:503;;41834:77;41900:3;41834:77;:::o;36624:394::-;36767:38;;;;;;;;;36791:13;36767:38;;;;;;;;;36705:27;;;;36767:38;;:23;:38::i;:::-;36886:19;;-1:-1:-1;;;;;36886:19:25;;;36877:29;;;;:8;:29;;;;;;-1:-1:-1;36877:36:25;;;:59;;;;;;-1:-1:-1;;36877:59:25;;;;;;;36956:21;;;;;36947:31;;;;:38;:63;;;;;;;;;;;-1:-1:-1;;36624:394:25:o;8967:93:4:-;9025:6;;:14;;;;;;;;9008:4;;9051;;-1:-1:-1;;;;;9025:6:4;;;;:12;;:14;;;;;;;;;;;;;;;9008:4;9025:6;:14;;;5:2:-1;;;;30:1;27;20:12;5:2;9025:14:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9025:14:4;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9025:14:4;-1:-1:-1;;;;;9025:31:4;;;8967:93;-1:-1:-1;8967:93:4:o;924:197:69:-;984:7;;1023;;1019:21;;;1039:1;1032:8;;;;1019:21;-1:-1:-1;1057:7:69;;;1062:2;1057;:7;1076:6;;;;;;;;:12;1068:37;;;;;-1:-1:-1;;;;;1068:37:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;1116:1;1109:8;;924:197;;;;;;:::o;288:144::-;348:7;373;;;392;;;;384:32;;;;;-1:-1:-1;;;;;384:32:69;;;;;;;;;;;;;;;;;;;;;;;;;;;1307:149;1367:7;;1388:6;;;1380:37;;;;;-1:-1:-1;;;;;1380:37:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;1438:2;1433;:7;;;;;;;;;1307:149;-1:-1:-1;;;;1307:149:69:o;670:88:68:-;718:5;;249:1;718:17;710:44;;;;;-1:-1:-1;;;;;710:44:68;;;;;;;;;;;;;;;;;;;;;;;;;;;5670:76:4;5715:10;:8;:10::i;:::-;5707:35;;;;;;;-1:-1:-1;;;;;5707:35:4;;;;;;;;;;;;;;;;;;;;;;;;;;;259:101:72;336:1;327:10;;319:37;;;;;-1:-1:-1;;;;;319:37:72;;;;;;;;;;;;;;;;;;;;;;;;;;;17223:174:4;17290:13;:20;17267;17314:79;17338:12;17334:1;:16;17314:79;;;17357:36;17376:13;17390:1;17376:16;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;17376:16:4;17357:18;:36::i;:::-;17352:3;;17314:79;;613:129:69;673:7;694:8;;;;686:34;;;;;-1:-1:-1;;;;;686:34:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;731:7:69;;;613:129::o;1740:206:70:-;351:50;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1870:71:70;;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;1870:71:70;;;;;;;25:18:-1;;61:17;;-1:-1;;;;;182:15;-1:-1;;;;;;1870:71:70;;;179:29:-1;;;;160:49;;;1854:88:70;;1862:6;;1854:7;:88::i;:::-;1740:206;;;;:::o;41528:242:25:-;-1:-1:-1;;;;;41671:91:25;;;41714:29;;;;:14;:29;;;;;;;;;;41671:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;41528:242;;;:::o;40837:344::-;41025:20;;:::i;:::-;41048:58;41059:7;41068;41077:13;41092;41048:10;:58::i;:::-;41158:6;;41166;;;;;41124:49;;;;;;;;;;;;41158:6;;-1:-1:-1;;;;;;41124:49:25;;;;;;;;;;;;;;;;;40837:344;;;;;:::o;1077:194:71:-;575:12:66;:10;:12::i;:::-;1190:6:71;475:23:72;489:8;475:13;:23::i;:::-;1211:3:71;475:23:72;489:8;475:13;:23::i;:::-;1224:3:71;782:18:72;791:8;782;:18::i;:::-;1233:34:71;1246:6;1254:3;1259:7;1233:12;:34::i;16898:269:4:-;16975:13;6115:23;6129:8;6115:13;:23::i;:::-;-1:-1:-1;;;;;;;;16998:36:4;;;-1:-1:-1;;;;;;;;;16998:36:4;16994:169;;;-1:-1:-1;;;;;17036:23:4;;;;;;:8;:23;;;;;17078:4;17070:21;17036:55;;16994:169;;;17134:29;;;;;;17158:4;17134:29;;;;;;-1:-1:-1;;;;;17134:23:4;;;;;:29;;;;;;;;;;;;;;-1:-1:-1;17134:23:4;:29;;;5:2:-1;;;;30:1;27;20:12;5:2;17134:29:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17134:29:4;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;17134:29:4;-1:-1:-1;;;;;17100:23:4;;;;;;:8;17134:29;17100:23;;;;:63;16898:269;;:::o;1585:128:60:-;1663:24;1673:13;1663:9;:24::i;:::-;-1:-1:-1;;;;;1649:38:60;:10;:38;1641:68;;;;;-1:-1:-1;;;;;1641:68:60;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;1641:68:60;;;;;;;;;;;;;;12940:623:4;13373:26;575:12:66;:10;:12::i;:::-;5818:11:4;:9;:11::i;:::-;13043:6;475:23:72;489:8;475:13;:23::i;:::-;13061:6:4;782:18:72;791:8;782;:18::i;:::-;13090:7:4;6729:28;6749:7;6729:19;:28::i;:::-;13150:6;;-1:-1:-1;;;;;13132:25:4;;;13150:6;;13132:25;;;;:52;;-1:-1:-1;;;;;;13162:16:4;;;;;;:8;:16;;;;;-1:-1:-1;13162:22:4;;;;;;;13161:23;13132:52;13124:84;;;;;;;-1:-1:-1;;;;;13124:84:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;13251:12;;;;;;1763:7;13231:32;13220:43;;;;;;;13212:82;;;;;-1:-1:-1;;;;;13212:82:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;13306:32;:19;:17;:19::i;:::-;:32;;;13298:70;;;;;-1:-1:-1;;;;;13298:70:4;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;13298:70:4;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;13402:16:4;;;;;;;;:8;:16;;;;;13422:22;;;-1:-1:-1;13448:17:4;;;:27;;-1:-1:-1;;13448:27:4;;;;-1:-1:-1;;13448:27:4;;;;13479:23;;;;;;;;;13506:13;27:10:-1;;23:18;;;45:23;;13506:26:4;;;;;;;;;-1:-1:-1;;;;;;13506:26:4;;;;;;;13536:12;:23;;;;;;;;;;;;;;;;;;;12940:623::o;33532:1842:25:-;33586:8;;:::i;:::-;33670:21;33693;33716:18;34132:19;34872;;:::i;:::-;34918:20;;:::i;:::-;33738:11;;33774:19;;33795:21;;33738:79;;;;;;-1:-1:-1;;;;;33774:19:25;;;33738:79;;;;33795:21;;;33738:79;;;;;-1:-1:-1;;;;;;;;33738:11:25;;;;;;;;:35;;:79;;;;;;;;;;;;;;;-1:-1:-1;33738:11:25;:79;;;5:2:-1;;;;30:1;27;20:12;5:2;33738:79:25;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;33738:79:25;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;33738:79:25;;;;;;;;;;;33936:23;;33738:79;;-1:-1:-1;33738:79:25;;-1:-1:-1;33738:79:25;;-1:-1:-1;33923:36:25;;33919:124;;;33983:48;;;;;;;;;33997:13;33983:48;;;;34015:13;33983:48;;;33976:55;;;;33919:124;34163:23;;34154:6;:4;:6::i;:::-;:32;;-1:-1:-1;34289:16:25;;34285:69;;;34322:20;;;;;;;;;34329:13;34322:20;;;;;;;;;;-1:-1:-1;34322:20:25;;34285:69;1847:10;34696:38;;34692:96;;34751:25;;;;;;;;;34758:18;34751:25;;;;;;;;;;-1:-1:-1;34751:25:25;;34692:96;34872:35;;;;;;;;34894:13;34872:35;;;;;;;;;;;;34918:41;;;;;;;;34941:18;34918:41;;;;;;;;;;;;;34984:5;;34872:35;;-1:-1:-1;34918:41:25;;-1:-1:-1;34984:17:25;;;:9;:17;:::i;:::-;35034:6;;;;35024:5;;34972:29;;-1:-1:-1;35024:17:25;;:5;:17;:9;:17;:::i;:::-;35012:29;-1:-1:-1;35172:68:25;35221:18;:1;35227:11;35221:18;:5;:18;:::i;:::-;35172:44;:1;1847:10;35178:37;;;35172:44;:5;:44;:::i;:68::-;35153:87;;35270:46;1847:10;35270:17;35280:4;:6;;;35270:3;:5;;;:9;;:17;;;;:::i;:::-;:21;:46;:21;:46;:::i;:::-;35251:65;;35336:30;35347:8;35357;35336:10;:30::i;:::-;35329:37;;33532:1842;;;;;;;;;;;;:::o;37322:725::-;37524:19;;-1:-1:-1;;;;;37524:19:25;37400:6;37509:35;;;:14;:35;;;;;;37400:6;;;;37509:35;37400:6;;;;37628:44;;:23;:44::i;:::-;37734:21;;37603:69;;-1:-1:-1;37710:46:25;;-1:-1:-1;;;;;37734:21:25;37710:23;:46::i;:::-;37683:73;;37827:29;37837:18;37827:9;:29::i;:::-;-1:-1:-1;;;;;37808:65:25;;37888:46;:20;765:2;37888:24;:46::i;:::-;38009:7;;38031;;;;37808:231;;;;;;-1:-1:-1;37808:231:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;37808:231:25;;;;5:2:-1;;;;30:1;27;20:12;5:2;37808:231:25;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;37808:231:25;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;37808:231:25;;;;;;;;;-1:-1:-1;37808:231:25;-1:-1:-1;37322:725:25;;;;;;:::o;28106:1360::-;28375:20;;;;;28458:18;;;;28454:82;;;-1:-1:-1;;;;;28507:22:25;;;;;;:8;:22;;;;;-1:-1:-1;28507:29:25;;;;;-1:-1:-1;28454:82:25;28551:18;;;;28547:82;;;-1:-1:-1;;;;;28600:22:25;;;;;;:8;:22;;;;;-1:-1:-1;28600:29:25;;;;;-1:-1:-1;28547:82:25;28712:37;28736:12;28712:23;:37::i;:::-;28688:61;;28784:37;28808:12;28784:23;:37::i;:::-;28760:61;;28902:29;28912:18;28902:9;:29::i;:::-;28883:219;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;28883:74:25;;;;;;;:219;;;;;;;;;;;;;;;-1:-1:-1;28883:74:25;:219;;;5:2:-1;;;;30:1;27;20:12;5:2;28883:219:25;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;28883:219:25;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;28883:219:25;;-1:-1:-1;29253:26:25;28883:219;29253:12;:26::i;:::-;29239:40;;29303:101;29392:11;29303:84;29323:12;29337:13;29352;29367:5;29374:12;29303:19;:84::i;:101::-;29290:114;-1:-1:-1;29430:28:25;:12;29290:114;29430:28;:16;:28;:::i;:::-;29415:43;;28106:1360;;;;;;;;;;;;:::o;9796:227:4:-;575:12:66;:10;:12::i;:::-;9935:1:4;9913:19;:17;:19::i;:::-;:23;;;9905:61;;;;;-1:-1:-1;;;;;9905:61:4;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;9905:61:4;;;;;;;;;;;;;;;9970:6;;:24;;;;;;;;-1:-1:-1;;;;;9970:6:4;;;;:22;;:24;;;;;:6;;:24;;;;;;;;:6;;:24;;;5:2:-1;;;;30:1;27;20:12;5:2;9970:24:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9970:24:4;;;;9998:21;:19;:21::i;3598:159:25:-;-1:-1:-1;;;;;3678:30:25;;;3720:1;3678:30;;;:20;:30;;;;;;;:44;;3670:79;;;;;-1:-1:-1;;;;;3670:79:25;;;;;;;;;;;;;;;;;;;;;;;;;;;1214:173:70;248:38;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1323:59:70;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;1323:59:70;;;;;;;;25:18:-1;;61:17;;-1:-1;;;;;182:15;-1:-1;;;;;;1323:59:70;;;179:29:-1;;;;160:49;;;1307:76:70;;1315:6;;1307:7;:76::i;:::-;1214:173;;;:::o;16421:1097:25:-;16672:7;16768:14;16784:11;5606:9:4;:7;:9::i;:::-;16604:12:25;6115:23:4;6129:8;6115:13;:23::i;:::-;16640:12:25;6115:23:4;6129:8;6115:13;:23::i;:::-;16799:46:25;16809:12;16823;16837:7;16799:9;:46::i;:::-;-1:-1:-1;;;16767:78:25;;-1:-1:-1;16767:78:25;;-1:-1:-1;;;;;;16932:35:25;;;-1:-1:-1;;;;;;;;16932:35:25;16928:187;;;16984:29;;-1:-1:-1;;;;;16984:21:25;;;:29;;;;;;;;;;;;:21;:29;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16984:29:25;16928:187;;;17055:48;17068:12;17082;17096:6;17055:12;:48::i;:::-;17169:82;17193:12;17207;17221:7;17230;17239:6;17247:3;17169:23;:82::i;:::-;-1:-1:-1;;;;;17375:22:25;;;;;;;:8;:22;;;;;;-1:-1:-1;17375:29:25;;;;17406:22;;;;;;;:29;;17328:108;;17375:22;;17406;;17375:29;;;;;17406;17328:18;:108::i;:::-;-1:-1:-1;17504:6:25;;16421:1097;-1:-1:-1;;;;;;;;16421:1097:25:o;2255:557:70:-;2324:21;;:::i;:::-;:36;;;;;;;;;2357:1;2324:36;;;;;2687:2;2661:3;2580:5;2574:12;2495:2;2488:5;2484:14;2465:1;2430:6;2404:3;2394:317;2725:7;2718:15;2715:2;;;2750:1;2747;2740:12;2715:2;-1:-1:-1;2773:6:70;;:11;;2765:43;;;;;-1:-1:-1;;;;;2765:43:70;;;;;;;;;;;;;;;;;;;;;;;;;;;38511:674:25;38639:8;;:::i;:::-;38710:21;38777;38734:32;38758:7;38734:23;:32::i;:::-;38710:56;;38801:32;38825:7;38801:23;:32::i;:::-;38777:56;-1:-1:-1;38882:18:25;;;;38878:91;;;-1:-1:-1;;;;;38933:17:25;;;;;;:8;:17;;;;;-1:-1:-1;38933:24:25;;;;;-1:-1:-1;38878:91:25;38985:18;;;;38981:91;;;-1:-1:-1;;;;;39036:17:25;;;;;;:8;:17;;;;;-1:-1:-1;39036:24:25;;;;;-1:-1:-1;38981:91:25;39091:86;;;;;;;;;;39105:32;:13;:32;;;;;:17;:32;:::i;:::-;39091:86;;;;39142:32;:13;:32;;;;;:17;:32;:::i;:::-;39091:86;;39084:93;38511:674;-1:-1:-1;;;;;;;38511:674:25:o;6812:149:4:-;6893:1;6883:7;:11;;;:43;;;;-1:-1:-1;1763:7:4;6898:28;;;;;6883:43;6875:82;;;;;;;-1:-1:-1;;;;;6875:82:4;;;;;;;;;;;;;;;;;;;;;;;;;;;42226:280:25;42293:8;;:::i;:::-;42402:20;;:::i;:::-;42325:8;;;42321:69;;42357:21;42371:2;42375;42357:13;:21::i;:::-;42350:28;;;;42321:69;42425:21;42439:2;42443;42425:13;:21::i;:::-;42464:34;;;;;;;;;42478:6;;;;;42464:34;;42489:6;;42464:34;;;;;-1:-1:-1;42402:44:25;-1:-1:-1;42226:280:25;;;;;:::o;16577:155:4:-;16683:13;;16645:7;;16665:63;;1826:7;;16665:32;;:13;;16683;;;16665:63;16683:13;;;;16665:17;:32;:::i;29926:1050:25:-;30218:21;;30149:7;;;;-1:-1:-1;;;;;30202:37:25;;;30218:21;;30202:37;30198:698;;;30321:19;;-1:-1:-1;;;;;30321:19:25;;;30306:35;;;;:14;:35;;;;;;;;;30375:21;;;;;30360:37;;;;;;30480:7;;30506;;;;30532:16;;30262:287;;30306:35;30262:287;;;;;;;;;:25;:287::i;:::-;30256:293;;30198:698;;;30656:19;;-1:-1:-1;;;;;30656:19:25;;;30641:35;;;;:14;:35;;;;;;;;;30710:21;;;;;30695:37;;;;;;30815:7;;30841;;;;30867:16;;30597:287;;30641:35;30597:287;;;;;;;;;:25;:287::i;:::-;30591:293;;30198:698;30915:53;1826:7:4;30915:22:25;:13;30933:3;30915:17;:22::i;:53::-;30908:60;29926:1050;-1:-1:-1;;;;;;;29926:1050:25:o;17987:1687::-;18092:7;18101;18215:16;18233:20;;:::i;:::-;18337:14;18353:19;18374:18;18664:28;18257:18;:16;:18::i;:::-;18214:61;;;;18396:68;18416:12;18430;18444:1;18447;18450:4;18456:7;18396:19;:68::i;:::-;18336:128;;-1:-1:-1;18336:128:25;-1:-1:-1;18336:128:25;-1:-1:-1;18545:11:25;;;18537:46;;;;;-1:-1:-1;;;;;18537:46:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;18695:28;18710:12;18695:14;:28::i;:::-;18664:59;-1:-1:-1;18742:29:25;;;18734:68;;;;;-1:-1:-1;;;;;18734:68:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;18882:35:25;;;-1:-1:-1;;;;;;;;;18882:35:25;18878:261;;;18940:9;:20;;18932:56;;;;;-1:-1:-1;;;;;18932:56:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;18878:261;;;19025:9;:14;:91;;;;;19109:7;19043:62;19076:28;19091:12;19076:14;:28::i;:::-;19043:12;-1:-1:-1;;;;;19043:22:25;;19066:4;19043:28;;;;;-1:-1:-1;;;19043:28:25;;;;;;;-1:-1:-1;;;;;19043:28:25;-1:-1:-1;;;;;19043:28:25;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19043:28:25;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;19043:28:25;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;19043:28:25;;:62;:32;:62;:::i;:::-;:73;;19025:91;19017:122;;;;;;;-1:-1:-1;;;;;19017:122:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;19190:32;19209:12;19190:18;:32::i;:::-;19266;:20;19291:6;19266:32;:24;:32;:::i;:::-;-1:-1:-1;;;;;19233:22:25;;;;;;:8;:22;;;;;;;;:65;;;;19400:14;:28;;;;:45;;19433:11;19400:32;:45::i;:::-;-1:-1:-1;;;;;19369:28:25;;;;;;:14;:28;;;;;:76;19502:125;;;;19566:19;;19587:21;;19555:60;;-1:-1:-1;;;;;19566:19:25;;;;19587:21;19566:19;;19555:10;:60::i;:::-;19534:81;;:18;:81;;;;;;19502:125;-1:-1:-1;19647:6:25;;19655:10;;-1:-1:-1;17987:1687:25;;-1:-1:-1;;;;;;;17987:1687:25:o;17773:656:4:-;18318:6;18305:19;;18298:27;;;;18334:91;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;18334:91:4;;;;;;;;;;;;;;;;;;;;;17773:656;;;;;;:::o;39657:702:25:-;40129:27;40193:29;39800:86;39829:12;39843;39857:13;39872;39800:28;:86::i;:::-;40159:23;40169:12;40159:9;:23::i;:::-;40129:53;;40225:15;-1:-1:-1;;;;;40225:27:25;;:29;;;;;-1:-1:-1;;;40225:29:25;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;40225:29:25;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;40225:29:25;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;40225:29:25;;-1:-1:-1;40265:86:25;40298:15;40225:29;40338:12;40265:32;:86::i;42632:595::-;42706:8;;:::i;:::-;42040:41;42738:34;;42734:213;;;42796:139;;;;;;;;;41974:4;42796:139;;;;;;;42884:4;:34;42876:4;:43;;;;;;;;42796:139;;42789:146;-1:-1:-1;42789:146:25;;42734:213;41974:4;42963;:34;42959:211;;;43021:137;;;;;;;;;41974:4;43021:137;;;;43138:4;41974;43101;:34;:41;;;;;;42959:211;-1:-1:-1;43189:30:25;;;;;;;;;;;;;;;;;42632:595::o;31642:708::-;32006:7;;;32043:75;32094:23;32043:46;:21;32069:19;32043:46;:25;:46;:::i;:75::-;32031:87;-1:-1:-1;32141:77:25;32196:21;32141:50;:23;32169:21;32141:50;:27;:50;:::i;:77::-;32129:89;;32237:1;32233;:5;32229:94;;;32260:63;32321:1;32260:56;765:2;32260:30;32261:5;;;32272:17;32260:30;:11;:30;:::i;:63::-;32253:70;;;;32229:94;32341:1;32334:8;;31642:708;;;;;;;;;;;;:::o;35662:782::-;35707:4;35713:8;;:::i;:::-;35741:19;36021:23;;:::i;:::-;36152:19;;:::i;:::-;35763:6;:4;:6::i;:::-;35741:28;;35874:11;35847:23;;:38;35843:100;;;35902:29;;;;;;;;;35917:13;35902:29;;;;;;;;;35910:5;;-1:-1:-1;35902:29:25;-1:-1:-1;35902:29:25;;35843:100;36047:22;:20;:22::i;:::-;36152:35;;;;;;;;;36174:13;36152:35;;;;;;;;;;36202:9;;36021:48;;-1:-1:-1;36152:35:25;;-1:-1:-1;36202:18:25;:40;;;;;36237:3;:5;;;36224:7;:9;;;:18;36202:40;36198:96;;;36267:5;36274:7;36259:23;;;;;;36198:96;36306:23;;:13;:23;;;;;;;36340;:37;;;36390:11;:9;:11::i;:::-;-1:-1:-1;36422:4:25;;36428:7;;-1:-1:-1;35662:782:25;-1:-1:-1;;35662:782:25:o;651:42579::-;;;;;;;;;-1:-1:-1;651:42579:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;651:42579:25;;;;;;;;:::o;:::-;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;-1:-1;651:42579:25;;;-1:-1:-1;;651:42579:25:o" + }, + "methodIdentifiers": { + "acceptAnchorOwnership()": "cdc91c69", + "acceptOwnership()": "79ba5097", + "acceptTokenOwnership()": "38a5e016", + "activate(address,address,address)": "119b90cd", + "addLiquidity(address,uint256,uint256)": "55776b77", + "addReserve(address,uint32)": "6a49d2c4", + "amplificationFactor()": "d64c5a1a", + "anchor()": "d3fb73b4", + "connectorTokenCount()": "71f52bf3", + "connectorTokens(uint256)": "19b64015", + "connectors(address)": "0e53aae9", + "conversionFee()": "579cd3ca", + "conversionWhitelist()": "c45d3d92", + "conversionsEnabled()": "bf754558", + "convert(address,address,uint256,address,address)": "e8dc12ff", + "converterType()": "3e8ff43f", + "disableMaxStakedBalances()": "16912f96", + "dynamicFeeFactor()": "e8104af9", + "effectiveReserveWeights()": "ec2240f5", + "effectiveTokensRate()": "db2830a4", + "getConnectorBalance(address)": "d8959512", + "getReturn(address,address,uint256)": "1e1401f8", + "hasETHReserve()": "12c2aca4", + "isActive()": "22f3e2d4", + "isV28OrHigher()": "d260529c", + "lastConversionRate()": "f9cddde2", + "liquidationLimit(address)": "2bf0c985", + "maxConversionFee()": "94c275ad", + "maxStakedBalanceEnabled()": "0a55fb3d", + "maxStakedBalances(address)": "98a71dcb", + "newOwner()": "d4ee1d90", + "onlyOwnerCanUpdateRegistry()": "2fe8a6ad", + "owner()": "8da5cb5b", + "poolToken(address)": "5768adcf", + "prevRegistry()": "61cd756e", + "priceOracle()": "2630c12f", + "primaryReserveToken()": "0337e3fb", + "referenceRate()": "a32bff44", + "referenceRateUpdateTime()": "c3321fb0", + "registry()": "7b103999", + "removeLiquidity(address,uint256,uint256)": "e38192e3", + "removeLiquidityReturnAndFee(address,uint256)": "69067d95", + "reserveAmplifiedBalance(address)": "2bd3c107", + "reserveBalance(address)": "dc8de379", + "reserveRatio()": "0c7d5cd8", + "reserveStakedBalance(address)": "005e319c", + "reserveTokenCount()": "9b99a8e2", + "reserveTokens(uint256)": "d031370b", + "reserveWeight(address)": "1cfab290", + "reserves(address)": "d66bd524", + "restoreRegistry()": "b4a176d3", + "restrictRegistryUpdate(bool)": "024c7ec7", + "secondaryReserveToken()": "dc75eb9a", + "setConversionFee(uint32)": "ecbca55d", + "setConversionWhitelist(address)": "4af80f0e", + "setDynamicFeeFactor(uint256)": "69d1354a", + "setMaxStakedBalances(uint256,uint256)": "46749468", + "setReserveStakedBalance(address,uint256)": "bf7da6ba", + "targetAmountAndFee(address,address,uint256)": "af94b8d8", + "token()": "fc0c546a", + "transferAnchorOwnership(address)": "67b6d57c", + "transferOwnership(address)": "f2fde38b", + "transferTokenOwnership(address)": "21e6b53d", + "updateRegistry()": "49d10b64", + "upgrade()": "d55ec697", + "version()": "54fd4d50", + "withdrawETH(address)": "690d8320", + "withdrawFromAnchor(address,address,uint256)": "395900d4", + "withdrawTokens(address,address,uint256)": "5e35359e" + } + }, + "userdoc": { + "methods": {} + } + } + }, + "solidity/contracts/converter/types/liquidity-pool-v2/LiquidityPoolV2ConverterAnchorFactory.sol": { + "LiquidityPoolV2ConverterAnchorFactory": { + "abi": [ + { + "constant": true, + "inputs": [], + "name": "converterType", + "outputs": [ + { + "name": "", + "type": "uint16" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_name", + "type": "string" + }, + { + "name": "_symbol", + "type": "string" + }, + { + "name": "_decimals", + "type": "uint8" + } + ], + "name": "createAnchor", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ], + "devdoc": { + "methods": { + "converterType()": { + "details": "returns the converter type the factory is associated with\r ", + "return": "converter type\r" + }, + "createAnchor(string,string,uint8)": { + "details": "creates a new converter anchor with the given arguments and transfers\r the ownership to the caller\r ", + "params": { + "_decimals": "pool decimals\r ", + "_name": "pool name\r", + "_symbol": "pool symbol\r" + }, + "return": "new anchor\r" + } + } + }, + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b50612558806100206000396000f30060806040526004361061004b5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416633e8ff43f8114610050578063a9fd4a2a1461007c575b600080fd5b34801561005c57600080fd5b50610065610141565b6040805161ffff9092168252519081900360200190f35b34801561008857600080fd5b506040805160206004803580820135601f810184900484028501840190955284845261011894369492936024939284019190819084018382808284375050604080516020601f89358b018035918201839004830284018301909452808352979a9998810197919650918201945092508291508401838280828437509497505050923560ff16935061014692505050565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b600290565b6000808484846101546102dc565b60ff82166040820152606080825284519082015283518190602080830191608084019188019080838360005b83811015610198578181015183820152602001610180565b50505050905090810190601f1680156101c55780820380516001836020036101000a031916815260200191505b50838103825285518152855160209182019187019080838360005b838110156101f85781810151838201526020016101e0565b50505050905090810190601f1680156102255780820380516001836020036101000a031916815260200191505b5095505050505050604051809103906000f080158015610249573d6000803e3d6000fd5b50604080517ff2fde38b000000000000000000000000000000000000000000000000000000008152336004820152905191925073ffffffffffffffffffffffffffffffffffffffff83169163f2fde38b9160248082019260009290919082900301818387803b1580156102bb57600080fd5b505af11580156102cf573d6000803e3d6000fd5b5092979650505050505050565b604051612240806102ed83390190560060806040523480156200001157600080fd5b506040516200224038038062002240833981016040908152815160208301519183015160008054600160a060020a03191633178155918401805190949390930192909110620000c157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f4552525f494e56414c49445f4e414d4500000000000000000000000000000000604482015290519081900360640190fd5b81516000106200013257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f4552525f494e56414c49445f53594d424f4c0000000000000000000000000000604482015290519081900360640190fd5b8251620001479060029060208601906200017b565b5081516200015d9060039060208501906200017b565b506004805460ff191660ff9290921691909117905550620002209050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620001be57805160ff1916838001178555620001ee565b82800160010185558215620001ee579182015b82811115620001ee578251825591602001919060010190620001d1565b50620001fc92915062000200565b5090565b6200021d91905b80821115620001fc576000815560010162000207565b90565b61201080620002306000396000f300608060405260043610620000ad5763ffffffff60e060020a60003504166306fdde038114620000b2578063313ce56714620001425780635e35359e14620001705780636d3e313e146200019f57806379ba509714620002095780638da5cb5b146200022157806395d89b4114620002555780639cbf9e36146200026d578063c6c3bbe61462000285578063d4ee1d9014620002b2578063f2fde38b14620002ca578063f6b911bc14620002ee575b600080fd5b348015620000bf57600080fd5b50620000ca6200031b565b6040805160208082528351818301528351919283929083019185019080838360005b8381101562000106578181015183820152602001620000ec565b50505050905090810190601f168015620001345780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156200014f57600080fd5b506200015a620003aa565b6040805160ff9092168252519081900360200190f35b3480156200017d57600080fd5b506200019d600160a060020a0360043581169060243516604435620003b3565b005b348015620001ac57600080fd5b50620001b7620003f6565b60408051602080825283518183015283519192839290830191858101910280838360005b83811015620001f5578181015183820152602001620001db565b505050509050019250505060405180910390f35b3480156200021657600080fd5b506200019d6200045a565b3480156200022e57600080fd5b50620002396200052e565b60408051600160a060020a039092168252519081900360200190f35b3480156200026257600080fd5b50620000ca6200053d565b3480156200027a57600080fd5b50620002396200059b565b3480156200029257600080fd5b506200019d600160a060020a036004358116906024351660443562000882565b348015620002bf57600080fd5b50620002396200090e565b348015620002d757600080fd5b506200019d600160a060020a03600435166200091d565b348015620002fb57600080fd5b506200019d600160a060020a0360043581169060243516604435620009bd565b6002805460408051602060018416156101000260001901909316849004601f81018490048402820184019092528181529291830182828015620003a25780601f106200037657610100808354040283529160200191620003a2565b820191906000526020600020905b8154815290600101906020018083116200038457829003601f168201915b505050505081565b60045460ff1681565b620003bd62000a2b565b82620003c98162000a90565b82620003d58162000a90565b83620003e18162000af4565b620003ee86868662000b56565b505050505050565b606060058054806020026020016040519081016040528092919081815260200182805480156200045057602002820191906000526020600020905b8154600160a060020a0316815260019091019060200180831162000431575b5050505050905090565b600154600160a060020a03163314620004bd576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b60015460008054604051600160a060020a0393841693909116917f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91a3600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b600054600160a060020a031681565b6003805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015620003a25780601f106200037657610100808354040283529160200191620003a2565b60006060806000620005ac62000a2b565b600580541062000606576040805160e560020a62461bcd02815260206004820152601560248201527f4552525f4d41585f4c494d49545f524541434845440000000000000000000000604482015290519081900360640190fd5b60028054604080516020601f60001961010060018716150201909416859004938401819004810282018101909252828152620006a89390929091830182828015620006955780601f10620006695761010080835404028352916020019162000695565b820191906000526020600020905b8154815290600101906020018083116200067757829003601f168201915b5050600554600101925062000c12915050565b6003805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529396506200070e939291830182828015620006955780601f10620006695761010080835404028352916020019162000695565b6004549092508390839060ff166200072562000d8c565b60ff82166040820152606080825284519082015283518190602080830191608084019188019080838360005b838110156200076b57818101518382015260200162000751565b50505050905090810190601f168015620007995780820380516001836020036101000a031916815260200191505b50838103825285518152855160209182019187019080838360005b83811015620007ce578181015183820152602001620007b4565b50505050905090810190601f168015620007fc5780820380516001836020036101000a031916815260200191505b5095505050505050604051809103906000f08015801562000821573d6000803e3d6000fd5b50600580546001810182556000919091527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038316179055949350505050565b6200088c62000a2b565b82600160a060020a031663867904b483836040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050600060405180830381600087803b158015620008f057600080fd5b505af115801562000905573d6000803e3d6000fd5b50505050505050565b600154600160a060020a031681565b6200092762000a2b565b600054600160a060020a03828116911614156200098e576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f53414d455f4f574e4552000000000000000000000000000000000000604482015290519081900360640190fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b620009c762000a2b565b82600160a060020a031663a24835d183836040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050600060405180830381600087803b158015620008f057600080fd5b600054600160a060020a0316331462000a8e576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b565b600160a060020a038116151562000af1576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b50565b600160a060020a03811630141562000af1576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f414444524553535f49535f53454c4600000000000000000000000000604482015290519081900360640190fd5b604080517f7472616e7366657228616464726573732c75696e74323536290000000000000081528151908190036019018120600160a060020a038516602483015260448083018590528351808403909101815260649092019092526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009093169290921790915262000c0d90849062000cfa565b505050565b606082827f30000000000000000000000000000000000000000000000000000000000000007f01000000000000000000000000000000000000000000000000000000000000009004016040516020018083805190602001908083835b6020831062000c8f5780518252601f19909201916020918201910162000c6e565b6001836020036101000a0380198251168184511680821785525050505050509050018260ff1660ff167f010000000000000000000000000000000000000000000000000000000000000002815260010192505050604051602081830303815290604052905092915050565b62000d0462000d9d565b602060405190810160405280600181525090506020818351602085016000875af180151562000d3257600080fd5b508051151562000c0d576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f5452414e534645525f4641494c454400000000000000000000000000604482015290519081900360640190fd5b6040516112288062000dbd83390190565b6020604051908101604052806001906020820280388339509192915050560060806040526008805460ff191660011790553480156200001e57600080fd5b506040516200122838038062001228833981016040908152815160208301519183015160008054600160a060020a0319163317815591840180519094939093019290918491849184918110620000d557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f4552525f494e56414c49445f4e414d4500000000000000000000000000000000604482015290519081900360640190fd5b82516000106200014657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f4552525f494e56414c49445f53594d424f4c0000000000000000000000000000604482015290519081900360640190fd5b83516200015b906002906020870190620001a8565b50825162000171906003906020860190620001a8565b506004805460ff191660ff9390931692909217909155600581905533600090815260066020526040902055506200024d9350505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620001eb57805160ff19168380011785556200021b565b828001600101855582156200021b579182015b828111156200021b578251825591602001919060010190620001fe565b50620002299291506200022d565b5090565b6200024a91905b8082111562000229576000815560010162000234565b90565b610fcb806200025d6000396000f3006080604052600436106101065763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde03811461010b578063095ea7b3146101955780631608f18f146101cd57806318160ddd146101e957806323b872dd14610210578063313ce5671461023a57806354fd4d50146102655780635e35359e1461029157806370a08231146102bb57806379ba5097146102dc578063867904b4146102f15780638da5cb5b1461031557806395d89b4114610346578063a24835d11461035b578063a9059cbb1461037f578063bef97c87146103a3578063d4ee1d90146103b8578063dd62ed3e146103cd578063f2fde38b146103f4575b600080fd5b34801561011757600080fd5b50610120610415565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561015a578181015183820152602001610142565b50505050905090810190601f1680156101875780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101a157600080fd5b506101b9600160a060020a03600435166024356104a0565b604080519115158252519081900360200190f35b3480156101d957600080fd5b506101e76004351515610598565b005b3480156101f557600080fd5b506101fe6105b2565b60408051918252519081900360200190f35b34801561021c57600080fd5b506101b9600160a060020a03600435811690602435166044356105b8565b34801561024657600080fd5b5061024f6105df565b6040805160ff9092168252519081900360200190f35b34801561027157600080fd5b5061027a6105e8565b6040805161ffff9092168252519081900360200190f35b34801561029d57600080fd5b506101e7600160a060020a03600435811690602435166044356105ed565b3480156102c757600080fd5b506101fe600160a060020a0360043516610626565b3480156102e857600080fd5b506101e7610638565b3480156102fd57600080fd5b506101e7600160a060020a036004351660243561070b565b34801561032157600080fd5b5061032a6107ed565b60408051600160a060020a039092168252519081900360200190f35b34801561035257600080fd5b506101206107fc565b34801561036757600080fd5b506101e7600160a060020a0360043516602435610857565b34801561038b57600080fd5b506101b9600160a060020a036004351660243561091d565b3480156103af57600080fd5b506101b9610942565b3480156103c457600080fd5b5061032a61094b565b3480156103d957600080fd5b506101fe600160a060020a036004358116906024351661095a565b34801561040057600080fd5b506101e7600160a060020a0360043516610977565b6002805460408051602060018416156101000260001901909316849004601f810184900484028201840190925281815292918301828280156104985780601f1061046d57610100808354040283529160200191610498565b820191906000526020600020905b81548152906001019060200180831161047b57829003601f168201915b505050505081565b6000826104ac81610a14565b8215806104da5750336000908152600760209081526040808320600160a060020a0388168452909152902054155b1515610530576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f494e56414c49445f414d4f554e540000000000000000000000000000604482015290519081900360640190fd5b336000818152600760209081526040808320600160a060020a03891680855290835292819020879055805187815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060019392505050565b6105a0610a77565b6008805460ff19169115919091179055565b60055481565b60006105c2610adb565b6105cd848484610b37565b15156105d557fe5b5060019392505050565b60045460ff1681565b600481565b6105f5610a77565b826105ff81610a14565b8261060981610a14565b8361061381610c48565b61061e868686610ca9565b505050505050565b60066020526000908152604090205481565b600154600160a060020a0316331461069a576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b60015460008054604051600160a060020a0393841693909116917f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91a3600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b610713610a77565b8161071d81610a14565b8261072781610c48565b60055461073a908463ffffffff610d6316565b600555600160a060020a038416600090815260066020526040902054610766908463ffffffff610d6316565b600160a060020a03851660009081526006602090815260409182902092909255805185815290517f9386c90217c323f58030f9dadcbc938f807a940f4ff41cd4cead9562f5da7dc3929181900390910190a1604080518481529051600160a060020a03861691600091600080516020610f808339815191529181900360200190a350505050565b600054600160a060020a031681565b6003805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156104985780601f1061046d57610100808354040283529160200191610498565b61085f610a77565b600160a060020a038216600090815260066020526040902054610888908263ffffffff610dc716565b600160a060020a0383166000908152600660205260409020556005546108b4908263ffffffff610dc716565b600555604080518281529051600091600160a060020a03851691600080516020610f808339815191529181900360200190a36040805182815290517f9a1b418bc061a5d80270261562e6986a35d995f8051145f277be16103abd34539181900360200190a15050565b6000610927610adb565b6109318383610e27565b151561093957fe5b50600192915050565b60085460ff1681565b600154600160a060020a031681565b600760209081526000928352604080842090915290825290205481565b61097f610a77565b600054600160a060020a03828116911614156109e5576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f53414d455f4f574e4552000000000000000000000000000000000000604482015290519081900360640190fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600160a060020a0381161515610a74576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b50565b600054600160a060020a03163314610ad9576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b565b60085460ff161515610ad9576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f5452414e53464552535f44495341424c454400000000000000000000604482015290519081900360640190fd5b600083610b4381610a14565b83610b4d81610a14565b600160a060020a0386166000908152600760209081526040808320338452909152902054610b81908563ffffffff610dc716565b600160a060020a038716600081815260076020908152604080832033845282528083209490945591815260069091522054610bc2908563ffffffff610dc716565b600160a060020a038088166000908152600660205260408082209390935590871681522054610bf7908563ffffffff610d6316565b600160a060020a0380871660008181526006602090815260409182902094909455805188815290519193928a1692600080516020610f8083398151915292918290030190a350600195945050505050565b600160a060020a038116301415610a74576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f414444524553535f49535f53454c4600000000000000000000000000604482015290519081900360640190fd5b604080517f7472616e7366657228616464726573732c75696e74323536290000000000000081528151908190036019018120600160a060020a038516602483015260448083018590528351808403909101815260649092019092526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152610d5e908490610ed2565b505050565b600082820183811015610dc0576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b9392505050565b600081831015610e21576040805160e560020a62461bcd02815260206004820152600d60248201527f4552525f554e444552464c4f5700000000000000000000000000000000000000604482015290519081900360640190fd5b50900390565b600082610e3381610a14565b33600090815260066020526040902054610e53908463ffffffff610dc716565b3360009081526006602052604080822092909255600160a060020a03861681522054610e85908463ffffffff610d6316565b600160a060020a038516600081815260066020908152604091829020939093558051868152905191923392600080516020610f808339815191529281900390910190a35060019392505050565b610eda610f60565b602060405190810160405280600181525090506020818351602085016000875af1801515610f0757600080fd5b5080511515610d5e576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f5452414e534645525f4641494c454400000000000000000000000000604482015290519081900360640190fd5b60206040519081016040528060019060208202803883395091929150505600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a7230582031b56aebc8336b547b3e1346f50c2f44f70def554ed4cba4c81bcf2e092d047f0029a165627a7a72305820e0ee560589eda5987d8f172ea60698bfbffc21529ee8046ab37c5e3348e88bcd0029a165627a7a723058208e1aa3c10d424a8fc6793ea5434eefc7ebfa7cb5ea0f07e6e74e8ad25b80d7f70029", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2558 DUP1 PUSH2 0x20 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x4B JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x3E8FF43F DUP2 EQ PUSH2 0x50 JUMPI DUP1 PUSH4 0xA9FD4A2A EQ PUSH2 0x7C JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x65 PUSH2 0x141 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0xFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x88 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD PUSH1 0x1F DUP2 ADD DUP5 SWAP1 DIV DUP5 MUL DUP6 ADD DUP5 ADD SWAP1 SWAP6 MSTORE DUP5 DUP5 MSTORE PUSH2 0x118 SWAP5 CALLDATASIZE SWAP5 SWAP3 SWAP4 PUSH1 0x24 SWAP4 SWAP3 DUP5 ADD SWAP2 SWAP1 DUP2 SWAP1 DUP5 ADD DUP4 DUP3 DUP1 DUP3 DUP5 CALLDATACOPY POP POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x1F DUP10 CALLDATALOAD DUP12 ADD DUP1 CALLDATALOAD SWAP2 DUP3 ADD DUP4 SWAP1 DIV DUP4 MUL DUP5 ADD DUP4 ADD SWAP1 SWAP5 MSTORE DUP1 DUP4 MSTORE SWAP8 SWAP11 SWAP10 SWAP9 DUP2 ADD SWAP8 SWAP2 SWAP7 POP SWAP2 DUP3 ADD SWAP5 POP SWAP3 POP DUP3 SWAP2 POP DUP5 ADD DUP4 DUP3 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP POP POP SWAP3 CALLDATALOAD PUSH1 0xFF AND SWAP4 POP PUSH2 0x146 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH1 0x2 SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP5 DUP5 DUP5 PUSH2 0x154 PUSH2 0x2DC JUMP JUMPDEST PUSH1 0xFF DUP3 AND PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP1 DUP3 MSTORE DUP5 MLOAD SWAP1 DUP3 ADD MSTORE DUP4 MLOAD DUP2 SWAP1 PUSH1 0x20 DUP1 DUP4 ADD SWAP2 PUSH1 0x80 DUP5 ADD SWAP2 DUP9 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x198 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x180 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x1C5 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP DUP4 DUP2 SUB DUP3 MSTORE DUP6 MLOAD DUP2 MSTORE DUP6 MLOAD PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 DUP8 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1F8 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x1E0 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x225 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP6 POP POP POP POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 PUSH1 0x0 CREATE DUP1 ISZERO DUP1 ISZERO PUSH2 0x249 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH32 0xF2FDE38B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD SWAP2 SWAP3 POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND SWAP2 PUSH4 0xF2FDE38B SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2BB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2CF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP SWAP3 SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2240 DUP1 PUSH2 0x2ED DUP4 CODECOPY ADD SWAP1 JUMP STOP PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x2240 CODESIZE SUB DUP1 PUSH3 0x2240 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 SWAP1 DUP2 MSTORE DUP2 MLOAD PUSH1 0x20 DUP4 ADD MLOAD SWAP2 DUP4 ADD MLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND CALLER OR DUP2 SSTORE SWAP2 DUP5 ADD DUP1 MLOAD SWAP1 SWAP5 SWAP4 SWAP1 SWAP4 ADD SWAP3 SWAP1 SWAP2 LT PUSH3 0xC1 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4E414D4500000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x0 LT PUSH3 0x132 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F53594D424F4C0000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP3 MLOAD PUSH3 0x147 SWAP1 PUSH1 0x2 SWAP1 PUSH1 0x20 DUP7 ADD SWAP1 PUSH3 0x17B JUMP JUMPDEST POP DUP2 MLOAD PUSH3 0x15D SWAP1 PUSH1 0x3 SWAP1 PUSH1 0x20 DUP6 ADD SWAP1 PUSH3 0x17B JUMP JUMPDEST POP PUSH1 0x4 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0xFF SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE POP PUSH3 0x220 SWAP1 POP JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH1 0x1F LT PUSH3 0x1BE JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH3 0x1EE JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH3 0x1EE JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH3 0x1EE JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH3 0x1D1 JUMP JUMPDEST POP PUSH3 0x1FC SWAP3 SWAP2 POP PUSH3 0x200 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH3 0x21D SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH3 0x1FC JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH3 0x207 JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH2 0x2010 DUP1 PUSH3 0x230 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH3 0xAD JUMPI PUSH4 0xFFFFFFFF PUSH1 0xE0 PUSH1 0x2 EXP PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x6FDDE03 DUP2 EQ PUSH3 0xB2 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH3 0x142 JUMPI DUP1 PUSH4 0x5E35359E EQ PUSH3 0x170 JUMPI DUP1 PUSH4 0x6D3E313E EQ PUSH3 0x19F JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH3 0x209 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH3 0x221 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH3 0x255 JUMPI DUP1 PUSH4 0x9CBF9E36 EQ PUSH3 0x26D JUMPI DUP1 PUSH4 0xC6C3BBE6 EQ PUSH3 0x285 JUMPI DUP1 PUSH4 0xD4EE1D90 EQ PUSH3 0x2B2 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH3 0x2CA JUMPI DUP1 PUSH4 0xF6B911BC EQ PUSH3 0x2EE JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0xBF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0xCA PUSH3 0x31B JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP4 MLOAD DUP2 DUP4 ADD MSTORE DUP4 MLOAD SWAP2 SWAP3 DUP4 SWAP3 SWAP1 DUP4 ADD SWAP2 DUP6 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH3 0x106 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH3 0xEC JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH3 0x134 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0x14F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x15A PUSH3 0x3AA JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0x17D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x19D PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH3 0x3B3 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0x1AC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x1B7 PUSH3 0x3F6 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP4 MLOAD DUP2 DUP4 ADD MSTORE DUP4 MLOAD SWAP2 SWAP3 DUP4 SWAP3 SWAP1 DUP4 ADD SWAP2 DUP6 DUP2 ADD SWAP2 MUL DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH3 0x1F5 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH3 0x1DB JUMP JUMPDEST POP POP POP POP SWAP1 POP ADD SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0x216 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x19D PUSH3 0x45A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0x22E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x239 PUSH3 0x52E JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0x262 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0xCA PUSH3 0x53D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0x27A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x239 PUSH3 0x59B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0x292 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x19D PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH3 0x882 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0x2BF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x239 PUSH3 0x90E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0x2D7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x19D PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH3 0x91D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0x2FB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x19D PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH3 0x9BD JUMP JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x1 DUP5 AND ISZERO PUSH2 0x100 MUL PUSH1 0x0 NOT ADD SWAP1 SWAP4 AND DUP5 SWAP1 DIV PUSH1 0x1F DUP2 ADD DUP5 SWAP1 DIV DUP5 MUL DUP3 ADD DUP5 ADD SWAP1 SWAP3 MSTORE DUP2 DUP2 MSTORE SWAP3 SWAP2 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH3 0x3A2 JUMPI DUP1 PUSH1 0x1F LT PUSH3 0x376 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH3 0x3A2 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH3 0x384 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH3 0x3BD PUSH3 0xA2B JUMP JUMPDEST DUP3 PUSH3 0x3C9 DUP2 PUSH3 0xA90 JUMP JUMPDEST DUP3 PUSH3 0x3D5 DUP2 PUSH3 0xA90 JUMP JUMPDEST DUP4 PUSH3 0x3E1 DUP2 PUSH3 0xAF4 JUMP JUMPDEST PUSH3 0x3EE DUP7 DUP7 DUP7 PUSH3 0xB56 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x5 DUP1 SLOAD DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD DUP1 ISZERO PUSH3 0x450 JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH3 0x431 JUMPI JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH3 0x4BD JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND SWAP4 SWAP1 SWAP2 AND SWAP2 PUSH32 0x343765429AEA5A34B3FF6A3785A98A5ABB2597ACA87BFBB58632C173D585373A SWAP2 LOG3 PUSH1 0x1 DUP1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND OR SWAP1 SWAP2 SSTORE AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x2 PUSH1 0x1 DUP6 AND ISZERO PUSH2 0x100 MUL PUSH1 0x0 NOT ADD SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 DIV PUSH1 0x1F DUP2 ADD DUP5 SWAP1 DIV DUP5 MUL DUP3 ADD DUP5 ADD SWAP1 SWAP3 MSTORE DUP2 DUP2 MSTORE SWAP3 SWAP2 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH3 0x3A2 JUMPI DUP1 PUSH1 0x1F LT PUSH3 0x376 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH3 0x3A2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP1 PUSH1 0x0 PUSH3 0x5AC PUSH3 0xA2B JUMP JUMPDEST PUSH1 0x5 DUP1 SLOAD LT PUSH3 0x606 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4D41585F4C494D49545F524541434845440000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x1F PUSH1 0x0 NOT PUSH2 0x100 PUSH1 0x1 DUP8 AND ISZERO MUL ADD SWAP1 SWAP5 AND DUP6 SWAP1 DIV SWAP4 DUP5 ADD DUP2 SWAP1 DIV DUP2 MUL DUP3 ADD DUP2 ADD SWAP1 SWAP3 MSTORE DUP3 DUP2 MSTORE PUSH3 0x6A8 SWAP4 SWAP1 SWAP3 SWAP1 SWAP2 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH3 0x695 JUMPI DUP1 PUSH1 0x1F LT PUSH3 0x669 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH3 0x695 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH3 0x677 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP PUSH1 0x5 SLOAD PUSH1 0x1 ADD SWAP3 POP PUSH3 0xC12 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x2 PUSH1 0x1 DUP6 AND ISZERO PUSH2 0x100 MUL PUSH1 0x0 NOT ADD SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 DIV PUSH1 0x1F DUP2 ADD DUP5 SWAP1 DIV DUP5 MUL DUP3 ADD DUP5 ADD SWAP1 SWAP3 MSTORE DUP2 DUP2 MSTORE SWAP4 SWAP7 POP PUSH3 0x70E SWAP4 SWAP3 SWAP2 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH3 0x695 JUMPI DUP1 PUSH1 0x1F LT PUSH3 0x669 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH3 0x695 JUMP JUMPDEST PUSH1 0x4 SLOAD SWAP1 SWAP3 POP DUP4 SWAP1 DUP4 SWAP1 PUSH1 0xFF AND PUSH3 0x725 PUSH3 0xD8C JUMP JUMPDEST PUSH1 0xFF DUP3 AND PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP1 DUP3 MSTORE DUP5 MLOAD SWAP1 DUP3 ADD MSTORE DUP4 MLOAD DUP2 SWAP1 PUSH1 0x20 DUP1 DUP4 ADD SWAP2 PUSH1 0x80 DUP5 ADD SWAP2 DUP9 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH3 0x76B JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH3 0x751 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH3 0x799 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP DUP4 DUP2 SUB DUP3 MSTORE DUP6 MLOAD DUP2 MSTORE DUP6 MLOAD PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 DUP8 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH3 0x7CE JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH3 0x7B4 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH3 0x7FC JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP6 POP POP POP POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 PUSH1 0x0 CREATE DUP1 ISZERO DUP1 ISZERO PUSH3 0x821 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH1 0x5 DUP1 SLOAD PUSH1 0x1 DUP2 ADD DUP3 SSTORE PUSH1 0x0 SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0x36B6384B5ECA791C62761152D0C79BB0604C104A5FB6F4EB0703F3154BB3DB0 ADD DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 AND OR SWAP1 SSTORE SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH3 0x88C PUSH3 0xA2B JUMP JUMPDEST DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x867904B4 DUP4 DUP4 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH3 0x8F0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH3 0x905 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH3 0x927 PUSH3 0xA2B JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ ISZERO PUSH3 0x98E JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F4F574E4552000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH3 0x9C7 PUSH3 0xA2B JUMP JUMPDEST DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xA24835D1 DUP4 DUP4 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH3 0x8F0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH3 0xA8E JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH3 0xAF1 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ADDRESS EQ ISZERO PUSH3 0xAF1 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F414444524553535F49535F53454C4600000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x7472616E7366657228616464726573732C75696E743235362900000000000000 DUP2 MSTORE DUP2 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x19 ADD DUP2 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x64 SWAP1 SWAP3 ADD SWAP1 SWAP3 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE PUSH3 0xC0D SWAP1 DUP5 SWAP1 PUSH3 0xCFA JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP3 DUP3 PUSH32 0x3000000000000000000000000000000000000000000000000000000000000000 PUSH32 0x100000000000000000000000000000000000000000000000000000000000000 SWAP1 DIV ADD PUSH1 0x40 MLOAD PUSH1 0x20 ADD DUP1 DUP4 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH3 0xC8F JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH3 0xC6E JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD DUP3 PUSH1 0xFF AND PUSH1 0xFF AND PUSH32 0x100000000000000000000000000000000000000000000000000000000000000 MUL DUP2 MSTORE PUSH1 0x1 ADD SWAP3 POP POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH3 0xD04 PUSH3 0xD9D JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE POP SWAP1 POP PUSH1 0x20 DUP2 DUP4 MLOAD PUSH1 0x20 DUP6 ADD PUSH1 0x0 DUP8 GAS CALL DUP1 ISZERO ISZERO PUSH3 0xD32 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD ISZERO ISZERO PUSH3 0xC0D JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5452414E534645525F4641494C454400000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1228 DUP1 PUSH3 0xDBD DUP4 CODECOPY ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 SWAP1 PUSH1 0x20 DUP3 MUL DUP1 CODESIZE DUP4 CODECOPY POP SWAP2 SWAP3 SWAP2 POP POP JUMP STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x8 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE CALLVALUE DUP1 ISZERO PUSH3 0x1E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x1228 CODESIZE SUB DUP1 PUSH3 0x1228 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 SWAP1 DUP2 MSTORE DUP2 MLOAD PUSH1 0x20 DUP4 ADD MLOAD SWAP2 DUP4 ADD MLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND CALLER OR DUP2 SSTORE SWAP2 DUP5 ADD DUP1 MLOAD SWAP1 SWAP5 SWAP4 SWAP1 SWAP4 ADD SWAP3 SWAP1 SWAP2 DUP5 SWAP2 DUP5 SWAP2 DUP5 SWAP2 DUP2 LT PUSH3 0xD5 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4E414D4500000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP3 MLOAD PUSH1 0x0 LT PUSH3 0x146 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F53594D424F4C0000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP4 MLOAD PUSH3 0x15B SWAP1 PUSH1 0x2 SWAP1 PUSH1 0x20 DUP8 ADD SWAP1 PUSH3 0x1A8 JUMP JUMPDEST POP DUP3 MLOAD PUSH3 0x171 SWAP1 PUSH1 0x3 SWAP1 PUSH1 0x20 DUP7 ADD SWAP1 PUSH3 0x1A8 JUMP JUMPDEST POP PUSH1 0x4 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0xFF SWAP4 SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 SSTORE PUSH1 0x5 DUP2 SWAP1 SSTORE CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE POP PUSH3 0x24D SWAP4 POP POP POP POP JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH1 0x1F LT PUSH3 0x1EB JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH3 0x21B JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH3 0x21B JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH3 0x21B JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH3 0x1FE JUMP JUMPDEST POP PUSH3 0x229 SWAP3 SWAP2 POP PUSH3 0x22D JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH3 0x24A SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH3 0x229 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH3 0x234 JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH2 0xFCB DUP1 PUSH3 0x25D PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x106 JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x6FDDE03 DUP2 EQ PUSH2 0x10B JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x195 JUMPI DUP1 PUSH4 0x1608F18F EQ PUSH2 0x1CD JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x1E9 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x210 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x23A JUMPI DUP1 PUSH4 0x54FD4D50 EQ PUSH2 0x265 JUMPI DUP1 PUSH4 0x5E35359E EQ PUSH2 0x291 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x2BB JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x2DC JUMPI DUP1 PUSH4 0x867904B4 EQ PUSH2 0x2F1 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x315 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x346 JUMPI DUP1 PUSH4 0xA24835D1 EQ PUSH2 0x35B JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x37F JUMPI DUP1 PUSH4 0xBEF97C87 EQ PUSH2 0x3A3 JUMPI DUP1 PUSH4 0xD4EE1D90 EQ PUSH2 0x3B8 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x3CD JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x3F4 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x117 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x120 PUSH2 0x415 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP4 MLOAD DUP2 DUP4 ADD MSTORE DUP4 MLOAD SWAP2 SWAP3 DUP4 SWAP3 SWAP1 DUP4 ADD SWAP2 DUP6 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x15A JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x142 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x187 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1A1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B9 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x4A0 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1D9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH1 0x4 CALLDATALOAD ISZERO ISZERO PUSH2 0x598 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1FE PUSH2 0x5B2 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x21C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B9 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x5B8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x246 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x24F PUSH2 0x5DF JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x271 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x27A PUSH2 0x5E8 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0xFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x29D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x5ED JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2C7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1FE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x626 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2E8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH2 0x638 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2FD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x70B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x321 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x32A PUSH2 0x7ED JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x352 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x120 PUSH2 0x7FC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x367 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x857 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x38B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B9 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x91D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3AF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B9 PUSH2 0x942 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3C4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x32A PUSH2 0x94B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3D9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1FE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH2 0x95A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x400 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x977 JUMP JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x1 DUP5 AND ISZERO PUSH2 0x100 MUL PUSH1 0x0 NOT ADD SWAP1 SWAP4 AND DUP5 SWAP1 DIV PUSH1 0x1F DUP2 ADD DUP5 SWAP1 DIV DUP5 MUL DUP3 ADD DUP5 ADD SWAP1 SWAP3 MSTORE DUP2 DUP2 MSTORE SWAP3 SWAP2 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x498 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x46D JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x498 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x47B JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x4AC DUP2 PUSH2 0xA14 JUMP JUMPDEST DUP3 ISZERO DUP1 PUSH2 0x4DA JUMPI POP CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x530 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F414D4F554E540000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST CALLER PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP10 AND DUP1 DUP6 MSTORE SWAP1 DUP4 MSTORE SWAP3 DUP2 SWAP1 KECCAK256 DUP8 SWAP1 SSTORE DUP1 MLOAD DUP8 DUP2 MSTORE SWAP1 MLOAD SWAP3 SWAP4 SWAP3 PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP3 SWAP2 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x5A0 PUSH2 0xA77 JUMP JUMPDEST PUSH1 0x8 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP2 ISZERO SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x5 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5C2 PUSH2 0xADB JUMP JUMPDEST PUSH2 0x5CD DUP5 DUP5 DUP5 PUSH2 0xB37 JUMP JUMPDEST ISZERO ISZERO PUSH2 0x5D5 JUMPI INVALID JUMPDEST POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x4 DUP2 JUMP JUMPDEST PUSH2 0x5F5 PUSH2 0xA77 JUMP JUMPDEST DUP3 PUSH2 0x5FF DUP2 PUSH2 0xA14 JUMP JUMPDEST DUP3 PUSH2 0x609 DUP2 PUSH2 0xA14 JUMP JUMPDEST DUP4 PUSH2 0x613 DUP2 PUSH2 0xC48 JUMP JUMPDEST PUSH2 0x61E DUP7 DUP7 DUP7 PUSH2 0xCA9 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x69A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND SWAP4 SWAP1 SWAP2 AND SWAP2 PUSH32 0x343765429AEA5A34B3FF6A3785A98A5ABB2597ACA87BFBB58632C173D585373A SWAP2 LOG3 PUSH1 0x1 DUP1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND OR SWAP1 SWAP2 SSTORE AND SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x713 PUSH2 0xA77 JUMP JUMPDEST DUP2 PUSH2 0x71D DUP2 PUSH2 0xA14 JUMP JUMPDEST DUP3 PUSH2 0x727 DUP2 PUSH2 0xC48 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH2 0x73A SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0xD63 AND JUMP JUMPDEST PUSH1 0x5 SSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x766 SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0xD63 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SWAP3 SWAP1 SWAP3 SSTORE DUP1 MLOAD DUP6 DUP2 MSTORE SWAP1 MLOAD PUSH32 0x9386C90217C323F58030F9DADCBC938F807A940F4FF41CD4CEAD9562F5DA7DC3 SWAP3 SWAP2 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG1 PUSH1 0x40 DUP1 MLOAD DUP5 DUP2 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND SWAP2 PUSH1 0x0 SWAP2 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xF80 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP2 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 LOG3 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x2 PUSH1 0x1 DUP6 AND ISZERO PUSH2 0x100 MUL PUSH1 0x0 NOT ADD SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 DIV PUSH1 0x1F DUP2 ADD DUP5 SWAP1 DIV DUP5 MUL DUP3 ADD DUP5 ADD SWAP1 SWAP3 MSTORE DUP2 DUP2 MSTORE SWAP3 SWAP2 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x498 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x46D JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x498 JUMP JUMPDEST PUSH2 0x85F PUSH2 0xA77 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x888 SWAP1 DUP3 PUSH4 0xFFFFFFFF PUSH2 0xDC7 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE PUSH1 0x5 SLOAD PUSH2 0x8B4 SWAP1 DUP3 PUSH4 0xFFFFFFFF PUSH2 0xDC7 AND JUMP JUMPDEST PUSH1 0x5 SSTORE PUSH1 0x40 DUP1 MLOAD DUP3 DUP2 MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND SWAP2 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xF80 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP2 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 LOG3 PUSH1 0x40 DUP1 MLOAD DUP3 DUP2 MSTORE SWAP1 MLOAD PUSH32 0x9A1B418BC061A5D80270261562E6986A35D995F8051145F277BE16103ABD3453 SWAP2 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x927 PUSH2 0xADB JUMP JUMPDEST PUSH2 0x931 DUP4 DUP4 PUSH2 0xE27 JUMP JUMPDEST ISZERO ISZERO PUSH2 0x939 JUMPI INVALID JUMPDEST POP PUSH1 0x1 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x97F PUSH2 0xA77 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x9E5 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F4F574E4552000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0xA74 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0xAD9 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0xFF AND ISZERO ISZERO PUSH2 0xAD9 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5452414E53464552535F44495341424C454400000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP4 PUSH2 0xB43 DUP2 PUSH2 0xA14 JUMP JUMPDEST DUP4 PUSH2 0xB4D DUP2 PUSH2 0xA14 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH2 0xB81 SWAP1 DUP6 PUSH4 0xFFFFFFFF PUSH2 0xDC7 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE DUP3 MSTORE DUP1 DUP4 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE SWAP2 DUP2 MSTORE PUSH1 0x6 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD PUSH2 0xBC2 SWAP1 DUP6 PUSH4 0xFFFFFFFF PUSH2 0xDC7 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE SWAP1 DUP8 AND DUP2 MSTORE KECCAK256 SLOAD PUSH2 0xBF7 SWAP1 DUP6 PUSH4 0xFFFFFFFF PUSH2 0xD63 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP8 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE DUP1 MLOAD DUP9 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP4 SWAP3 DUP11 AND SWAP3 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xF80 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP3 SWAP2 DUP3 SWAP1 SUB ADD SWAP1 LOG3 POP PUSH1 0x1 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ADDRESS EQ ISZERO PUSH2 0xA74 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F414444524553535F49535F53454C4600000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x7472616E7366657228616464726573732C75696E743235362900000000000000 DUP2 MSTORE DUP2 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x19 ADD DUP2 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x64 SWAP1 SWAP3 ADD SWAP1 SWAP3 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE PUSH2 0xD5E SWAP1 DUP5 SWAP1 PUSH2 0xED2 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 ADD DUP4 DUP2 LT ISZERO PUSH2 0xDC0 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT ISZERO PUSH2 0xE21 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F554E444552464C4F5700000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP SWAP1 SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0xE33 DUP2 PUSH2 0xA14 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0xE53 SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0xDC7 AND JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP3 SWAP1 SWAP3 SSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND DUP2 MSTORE KECCAK256 SLOAD PUSH2 0xE85 SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0xD63 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE DUP1 MLOAD DUP7 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP3 CALLER SWAP3 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xF80 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0xEDA PUSH2 0xF60 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE POP SWAP1 POP PUSH1 0x20 DUP2 DUP4 MLOAD PUSH1 0x20 DUP6 ADD PUSH1 0x0 DUP8 GAS CALL DUP1 ISZERO ISZERO PUSH2 0xF07 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD ISZERO ISZERO PUSH2 0xD5E JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5452414E534645525F4641494C454400000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 SWAP1 PUSH1 0x20 DUP3 MUL DUP1 CODESIZE DUP4 CODECOPY POP SWAP2 SWAP3 SWAP2 POP POP JUMP STOP 0xdd CALLCODE MSTORE 0xad SHL 0xe2 0xc8 SWAP12 PUSH10 0xC2B068FC378DAA952BA7 CALL PUSH4 0xC4A11628 0xf5 GAS 0x4d 0xf5 0x23 0xb3 0xef LOG1 PUSH6 0x627A7A723058 KECCAK256 BALANCE 0xb5 PUSH11 0xEBC8336B547B3E1346F50C 0x2f DIFFICULTY 0xf7 0xd 0xef SSTORE 0x4e 0xd4 0xcb LOG4 0xc8 SHL 0xcf 0x2e MULMOD 0x2d DIV PUSH32 0x29A165627A7A72305820E0EE560589EDA5987D8F172EA60698BFBFFC21529E 0xe8 DIV PUSH11 0xB37C5E3348E88BCD0029A1 PUSH6 0x627A7A723058 KECCAK256 DUP15 BYTE LOG3 0xc1 0xd TIMESTAMP 0x4a DUP16 0xc6 PUSH26 0x3EA5434EEFC7EBFA7CB5EA0F07E6E74E8AD25B80D7F700290000 ", + "sourceMap": "184:897:26:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;184:897:26;;;;;;;" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "60806040526004361061004b5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416633e8ff43f8114610050578063a9fd4a2a1461007c575b600080fd5b34801561005c57600080fd5b50610065610141565b6040805161ffff9092168252519081900360200190f35b34801561008857600080fd5b506040805160206004803580820135601f810184900484028501840190955284845261011894369492936024939284019190819084018382808284375050604080516020601f89358b018035918201839004830284018301909452808352979a9998810197919650918201945092508291508401838280828437509497505050923560ff16935061014692505050565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b600290565b6000808484846101546102dc565b60ff82166040820152606080825284519082015283518190602080830191608084019188019080838360005b83811015610198578181015183820152602001610180565b50505050905090810190601f1680156101c55780820380516001836020036101000a031916815260200191505b50838103825285518152855160209182019187019080838360005b838110156101f85781810151838201526020016101e0565b50505050905090810190601f1680156102255780820380516001836020036101000a031916815260200191505b5095505050505050604051809103906000f080158015610249573d6000803e3d6000fd5b50604080517ff2fde38b000000000000000000000000000000000000000000000000000000008152336004820152905191925073ffffffffffffffffffffffffffffffffffffffff83169163f2fde38b9160248082019260009290919082900301818387803b1580156102bb57600080fd5b505af11580156102cf573d6000803e3d6000fd5b5092979650505050505050565b604051612240806102ed83390190560060806040523480156200001157600080fd5b506040516200224038038062002240833981016040908152815160208301519183015160008054600160a060020a03191633178155918401805190949390930192909110620000c157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f4552525f494e56414c49445f4e414d4500000000000000000000000000000000604482015290519081900360640190fd5b81516000106200013257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f4552525f494e56414c49445f53594d424f4c0000000000000000000000000000604482015290519081900360640190fd5b8251620001479060029060208601906200017b565b5081516200015d9060039060208501906200017b565b506004805460ff191660ff9290921691909117905550620002209050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620001be57805160ff1916838001178555620001ee565b82800160010185558215620001ee579182015b82811115620001ee578251825591602001919060010190620001d1565b50620001fc92915062000200565b5090565b6200021d91905b80821115620001fc576000815560010162000207565b90565b61201080620002306000396000f300608060405260043610620000ad5763ffffffff60e060020a60003504166306fdde038114620000b2578063313ce56714620001425780635e35359e14620001705780636d3e313e146200019f57806379ba509714620002095780638da5cb5b146200022157806395d89b4114620002555780639cbf9e36146200026d578063c6c3bbe61462000285578063d4ee1d9014620002b2578063f2fde38b14620002ca578063f6b911bc14620002ee575b600080fd5b348015620000bf57600080fd5b50620000ca6200031b565b6040805160208082528351818301528351919283929083019185019080838360005b8381101562000106578181015183820152602001620000ec565b50505050905090810190601f168015620001345780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156200014f57600080fd5b506200015a620003aa565b6040805160ff9092168252519081900360200190f35b3480156200017d57600080fd5b506200019d600160a060020a0360043581169060243516604435620003b3565b005b348015620001ac57600080fd5b50620001b7620003f6565b60408051602080825283518183015283519192839290830191858101910280838360005b83811015620001f5578181015183820152602001620001db565b505050509050019250505060405180910390f35b3480156200021657600080fd5b506200019d6200045a565b3480156200022e57600080fd5b50620002396200052e565b60408051600160a060020a039092168252519081900360200190f35b3480156200026257600080fd5b50620000ca6200053d565b3480156200027a57600080fd5b50620002396200059b565b3480156200029257600080fd5b506200019d600160a060020a036004358116906024351660443562000882565b348015620002bf57600080fd5b50620002396200090e565b348015620002d757600080fd5b506200019d600160a060020a03600435166200091d565b348015620002fb57600080fd5b506200019d600160a060020a0360043581169060243516604435620009bd565b6002805460408051602060018416156101000260001901909316849004601f81018490048402820184019092528181529291830182828015620003a25780601f106200037657610100808354040283529160200191620003a2565b820191906000526020600020905b8154815290600101906020018083116200038457829003601f168201915b505050505081565b60045460ff1681565b620003bd62000a2b565b82620003c98162000a90565b82620003d58162000a90565b83620003e18162000af4565b620003ee86868662000b56565b505050505050565b606060058054806020026020016040519081016040528092919081815260200182805480156200045057602002820191906000526020600020905b8154600160a060020a0316815260019091019060200180831162000431575b5050505050905090565b600154600160a060020a03163314620004bd576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b60015460008054604051600160a060020a0393841693909116917f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91a3600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b600054600160a060020a031681565b6003805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015620003a25780601f106200037657610100808354040283529160200191620003a2565b60006060806000620005ac62000a2b565b600580541062000606576040805160e560020a62461bcd02815260206004820152601560248201527f4552525f4d41585f4c494d49545f524541434845440000000000000000000000604482015290519081900360640190fd5b60028054604080516020601f60001961010060018716150201909416859004938401819004810282018101909252828152620006a89390929091830182828015620006955780601f10620006695761010080835404028352916020019162000695565b820191906000526020600020905b8154815290600101906020018083116200067757829003601f168201915b5050600554600101925062000c12915050565b6003805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529396506200070e939291830182828015620006955780601f10620006695761010080835404028352916020019162000695565b6004549092508390839060ff166200072562000d8c565b60ff82166040820152606080825284519082015283518190602080830191608084019188019080838360005b838110156200076b57818101518382015260200162000751565b50505050905090810190601f168015620007995780820380516001836020036101000a031916815260200191505b50838103825285518152855160209182019187019080838360005b83811015620007ce578181015183820152602001620007b4565b50505050905090810190601f168015620007fc5780820380516001836020036101000a031916815260200191505b5095505050505050604051809103906000f08015801562000821573d6000803e3d6000fd5b50600580546001810182556000919091527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038316179055949350505050565b6200088c62000a2b565b82600160a060020a031663867904b483836040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050600060405180830381600087803b158015620008f057600080fd5b505af115801562000905573d6000803e3d6000fd5b50505050505050565b600154600160a060020a031681565b6200092762000a2b565b600054600160a060020a03828116911614156200098e576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f53414d455f4f574e4552000000000000000000000000000000000000604482015290519081900360640190fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b620009c762000a2b565b82600160a060020a031663a24835d183836040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050600060405180830381600087803b158015620008f057600080fd5b600054600160a060020a0316331462000a8e576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b565b600160a060020a038116151562000af1576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b50565b600160a060020a03811630141562000af1576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f414444524553535f49535f53454c4600000000000000000000000000604482015290519081900360640190fd5b604080517f7472616e7366657228616464726573732c75696e74323536290000000000000081528151908190036019018120600160a060020a038516602483015260448083018590528351808403909101815260649092019092526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009093169290921790915262000c0d90849062000cfa565b505050565b606082827f30000000000000000000000000000000000000000000000000000000000000007f01000000000000000000000000000000000000000000000000000000000000009004016040516020018083805190602001908083835b6020831062000c8f5780518252601f19909201916020918201910162000c6e565b6001836020036101000a0380198251168184511680821785525050505050509050018260ff1660ff167f010000000000000000000000000000000000000000000000000000000000000002815260010192505050604051602081830303815290604052905092915050565b62000d0462000d9d565b602060405190810160405280600181525090506020818351602085016000875af180151562000d3257600080fd5b508051151562000c0d576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f5452414e534645525f4641494c454400000000000000000000000000604482015290519081900360640190fd5b6040516112288062000dbd83390190565b6020604051908101604052806001906020820280388339509192915050560060806040526008805460ff191660011790553480156200001e57600080fd5b506040516200122838038062001228833981016040908152815160208301519183015160008054600160a060020a0319163317815591840180519094939093019290918491849184918110620000d557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f4552525f494e56414c49445f4e414d4500000000000000000000000000000000604482015290519081900360640190fd5b82516000106200014657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f4552525f494e56414c49445f53594d424f4c0000000000000000000000000000604482015290519081900360640190fd5b83516200015b906002906020870190620001a8565b50825162000171906003906020860190620001a8565b506004805460ff191660ff9390931692909217909155600581905533600090815260066020526040902055506200024d9350505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620001eb57805160ff19168380011785556200021b565b828001600101855582156200021b579182015b828111156200021b578251825591602001919060010190620001fe565b50620002299291506200022d565b5090565b6200024a91905b8082111562000229576000815560010162000234565b90565b610fcb806200025d6000396000f3006080604052600436106101065763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde03811461010b578063095ea7b3146101955780631608f18f146101cd57806318160ddd146101e957806323b872dd14610210578063313ce5671461023a57806354fd4d50146102655780635e35359e1461029157806370a08231146102bb57806379ba5097146102dc578063867904b4146102f15780638da5cb5b1461031557806395d89b4114610346578063a24835d11461035b578063a9059cbb1461037f578063bef97c87146103a3578063d4ee1d90146103b8578063dd62ed3e146103cd578063f2fde38b146103f4575b600080fd5b34801561011757600080fd5b50610120610415565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561015a578181015183820152602001610142565b50505050905090810190601f1680156101875780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101a157600080fd5b506101b9600160a060020a03600435166024356104a0565b604080519115158252519081900360200190f35b3480156101d957600080fd5b506101e76004351515610598565b005b3480156101f557600080fd5b506101fe6105b2565b60408051918252519081900360200190f35b34801561021c57600080fd5b506101b9600160a060020a03600435811690602435166044356105b8565b34801561024657600080fd5b5061024f6105df565b6040805160ff9092168252519081900360200190f35b34801561027157600080fd5b5061027a6105e8565b6040805161ffff9092168252519081900360200190f35b34801561029d57600080fd5b506101e7600160a060020a03600435811690602435166044356105ed565b3480156102c757600080fd5b506101fe600160a060020a0360043516610626565b3480156102e857600080fd5b506101e7610638565b3480156102fd57600080fd5b506101e7600160a060020a036004351660243561070b565b34801561032157600080fd5b5061032a6107ed565b60408051600160a060020a039092168252519081900360200190f35b34801561035257600080fd5b506101206107fc565b34801561036757600080fd5b506101e7600160a060020a0360043516602435610857565b34801561038b57600080fd5b506101b9600160a060020a036004351660243561091d565b3480156103af57600080fd5b506101b9610942565b3480156103c457600080fd5b5061032a61094b565b3480156103d957600080fd5b506101fe600160a060020a036004358116906024351661095a565b34801561040057600080fd5b506101e7600160a060020a0360043516610977565b6002805460408051602060018416156101000260001901909316849004601f810184900484028201840190925281815292918301828280156104985780601f1061046d57610100808354040283529160200191610498565b820191906000526020600020905b81548152906001019060200180831161047b57829003601f168201915b505050505081565b6000826104ac81610a14565b8215806104da5750336000908152600760209081526040808320600160a060020a0388168452909152902054155b1515610530576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f494e56414c49445f414d4f554e540000000000000000000000000000604482015290519081900360640190fd5b336000818152600760209081526040808320600160a060020a03891680855290835292819020879055805187815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060019392505050565b6105a0610a77565b6008805460ff19169115919091179055565b60055481565b60006105c2610adb565b6105cd848484610b37565b15156105d557fe5b5060019392505050565b60045460ff1681565b600481565b6105f5610a77565b826105ff81610a14565b8261060981610a14565b8361061381610c48565b61061e868686610ca9565b505050505050565b60066020526000908152604090205481565b600154600160a060020a0316331461069a576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b60015460008054604051600160a060020a0393841693909116917f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91a3600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b610713610a77565b8161071d81610a14565b8261072781610c48565b60055461073a908463ffffffff610d6316565b600555600160a060020a038416600090815260066020526040902054610766908463ffffffff610d6316565b600160a060020a03851660009081526006602090815260409182902092909255805185815290517f9386c90217c323f58030f9dadcbc938f807a940f4ff41cd4cead9562f5da7dc3929181900390910190a1604080518481529051600160a060020a03861691600091600080516020610f808339815191529181900360200190a350505050565b600054600160a060020a031681565b6003805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156104985780601f1061046d57610100808354040283529160200191610498565b61085f610a77565b600160a060020a038216600090815260066020526040902054610888908263ffffffff610dc716565b600160a060020a0383166000908152600660205260409020556005546108b4908263ffffffff610dc716565b600555604080518281529051600091600160a060020a03851691600080516020610f808339815191529181900360200190a36040805182815290517f9a1b418bc061a5d80270261562e6986a35d995f8051145f277be16103abd34539181900360200190a15050565b6000610927610adb565b6109318383610e27565b151561093957fe5b50600192915050565b60085460ff1681565b600154600160a060020a031681565b600760209081526000928352604080842090915290825290205481565b61097f610a77565b600054600160a060020a03828116911614156109e5576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f53414d455f4f574e4552000000000000000000000000000000000000604482015290519081900360640190fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600160a060020a0381161515610a74576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b50565b600054600160a060020a03163314610ad9576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b565b60085460ff161515610ad9576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f5452414e53464552535f44495341424c454400000000000000000000604482015290519081900360640190fd5b600083610b4381610a14565b83610b4d81610a14565b600160a060020a0386166000908152600760209081526040808320338452909152902054610b81908563ffffffff610dc716565b600160a060020a038716600081815260076020908152604080832033845282528083209490945591815260069091522054610bc2908563ffffffff610dc716565b600160a060020a038088166000908152600660205260408082209390935590871681522054610bf7908563ffffffff610d6316565b600160a060020a0380871660008181526006602090815260409182902094909455805188815290519193928a1692600080516020610f8083398151915292918290030190a350600195945050505050565b600160a060020a038116301415610a74576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f414444524553535f49535f53454c4600000000000000000000000000604482015290519081900360640190fd5b604080517f7472616e7366657228616464726573732c75696e74323536290000000000000081528151908190036019018120600160a060020a038516602483015260448083018590528351808403909101815260649092019092526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152610d5e908490610ed2565b505050565b600082820183811015610dc0576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b9392505050565b600081831015610e21576040805160e560020a62461bcd02815260206004820152600d60248201527f4552525f554e444552464c4f5700000000000000000000000000000000000000604482015290519081900360640190fd5b50900390565b600082610e3381610a14565b33600090815260066020526040902054610e53908463ffffffff610dc716565b3360009081526006602052604080822092909255600160a060020a03861681522054610e85908463ffffffff610d6316565b600160a060020a038516600081815260066020908152604091829020939093558051868152905191923392600080516020610f808339815191529281900390910190a35060019392505050565b610eda610f60565b602060405190810160405280600181525090506020818351602085016000875af1801515610f0757600080fd5b5080511515610d5e576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f5452414e534645525f4641494c454400000000000000000000000000604482015290519081900360640190fd5b60206040519081016040528060019060208202803883395091929150505600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a7230582031b56aebc8336b547b3e1346f50c2f44f70def554ed4cba4c81bcf2e092d047f0029a165627a7a72305820e0ee560589eda5987d8f172ea60698bfbffc21529ee8046ab37c5e3348e88bcd0029a165627a7a723058208e1aa3c10d424a8fc6793ea5434eefc7ebfa7cb5ea0f07e6e74e8ad25b80d7f70029", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x4B JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x3E8FF43F DUP2 EQ PUSH2 0x50 JUMPI DUP1 PUSH4 0xA9FD4A2A EQ PUSH2 0x7C JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x65 PUSH2 0x141 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0xFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x88 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD PUSH1 0x1F DUP2 ADD DUP5 SWAP1 DIV DUP5 MUL DUP6 ADD DUP5 ADD SWAP1 SWAP6 MSTORE DUP5 DUP5 MSTORE PUSH2 0x118 SWAP5 CALLDATASIZE SWAP5 SWAP3 SWAP4 PUSH1 0x24 SWAP4 SWAP3 DUP5 ADD SWAP2 SWAP1 DUP2 SWAP1 DUP5 ADD DUP4 DUP3 DUP1 DUP3 DUP5 CALLDATACOPY POP POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x1F DUP10 CALLDATALOAD DUP12 ADD DUP1 CALLDATALOAD SWAP2 DUP3 ADD DUP4 SWAP1 DIV DUP4 MUL DUP5 ADD DUP4 ADD SWAP1 SWAP5 MSTORE DUP1 DUP4 MSTORE SWAP8 SWAP11 SWAP10 SWAP9 DUP2 ADD SWAP8 SWAP2 SWAP7 POP SWAP2 DUP3 ADD SWAP5 POP SWAP3 POP DUP3 SWAP2 POP DUP5 ADD DUP4 DUP3 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP POP POP SWAP3 CALLDATALOAD PUSH1 0xFF AND SWAP4 POP PUSH2 0x146 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH1 0x2 SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP5 DUP5 DUP5 PUSH2 0x154 PUSH2 0x2DC JUMP JUMPDEST PUSH1 0xFF DUP3 AND PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP1 DUP3 MSTORE DUP5 MLOAD SWAP1 DUP3 ADD MSTORE DUP4 MLOAD DUP2 SWAP1 PUSH1 0x20 DUP1 DUP4 ADD SWAP2 PUSH1 0x80 DUP5 ADD SWAP2 DUP9 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x198 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x180 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x1C5 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP DUP4 DUP2 SUB DUP3 MSTORE DUP6 MLOAD DUP2 MSTORE DUP6 MLOAD PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 DUP8 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1F8 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x1E0 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x225 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP6 POP POP POP POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 PUSH1 0x0 CREATE DUP1 ISZERO DUP1 ISZERO PUSH2 0x249 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH32 0xF2FDE38B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD SWAP2 SWAP3 POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND SWAP2 PUSH4 0xF2FDE38B SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2BB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2CF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP SWAP3 SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2240 DUP1 PUSH2 0x2ED DUP4 CODECOPY ADD SWAP1 JUMP STOP PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x2240 CODESIZE SUB DUP1 PUSH3 0x2240 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 SWAP1 DUP2 MSTORE DUP2 MLOAD PUSH1 0x20 DUP4 ADD MLOAD SWAP2 DUP4 ADD MLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND CALLER OR DUP2 SSTORE SWAP2 DUP5 ADD DUP1 MLOAD SWAP1 SWAP5 SWAP4 SWAP1 SWAP4 ADD SWAP3 SWAP1 SWAP2 LT PUSH3 0xC1 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4E414D4500000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x0 LT PUSH3 0x132 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F53594D424F4C0000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP3 MLOAD PUSH3 0x147 SWAP1 PUSH1 0x2 SWAP1 PUSH1 0x20 DUP7 ADD SWAP1 PUSH3 0x17B JUMP JUMPDEST POP DUP2 MLOAD PUSH3 0x15D SWAP1 PUSH1 0x3 SWAP1 PUSH1 0x20 DUP6 ADD SWAP1 PUSH3 0x17B JUMP JUMPDEST POP PUSH1 0x4 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0xFF SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE POP PUSH3 0x220 SWAP1 POP JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH1 0x1F LT PUSH3 0x1BE JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH3 0x1EE JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH3 0x1EE JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH3 0x1EE JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH3 0x1D1 JUMP JUMPDEST POP PUSH3 0x1FC SWAP3 SWAP2 POP PUSH3 0x200 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH3 0x21D SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH3 0x1FC JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH3 0x207 JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH2 0x2010 DUP1 PUSH3 0x230 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH3 0xAD JUMPI PUSH4 0xFFFFFFFF PUSH1 0xE0 PUSH1 0x2 EXP PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x6FDDE03 DUP2 EQ PUSH3 0xB2 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH3 0x142 JUMPI DUP1 PUSH4 0x5E35359E EQ PUSH3 0x170 JUMPI DUP1 PUSH4 0x6D3E313E EQ PUSH3 0x19F JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH3 0x209 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH3 0x221 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH3 0x255 JUMPI DUP1 PUSH4 0x9CBF9E36 EQ PUSH3 0x26D JUMPI DUP1 PUSH4 0xC6C3BBE6 EQ PUSH3 0x285 JUMPI DUP1 PUSH4 0xD4EE1D90 EQ PUSH3 0x2B2 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH3 0x2CA JUMPI DUP1 PUSH4 0xF6B911BC EQ PUSH3 0x2EE JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0xBF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0xCA PUSH3 0x31B JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP4 MLOAD DUP2 DUP4 ADD MSTORE DUP4 MLOAD SWAP2 SWAP3 DUP4 SWAP3 SWAP1 DUP4 ADD SWAP2 DUP6 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH3 0x106 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH3 0xEC JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH3 0x134 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0x14F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x15A PUSH3 0x3AA JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0x17D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x19D PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH3 0x3B3 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0x1AC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x1B7 PUSH3 0x3F6 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP4 MLOAD DUP2 DUP4 ADD MSTORE DUP4 MLOAD SWAP2 SWAP3 DUP4 SWAP3 SWAP1 DUP4 ADD SWAP2 DUP6 DUP2 ADD SWAP2 MUL DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH3 0x1F5 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH3 0x1DB JUMP JUMPDEST POP POP POP POP SWAP1 POP ADD SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0x216 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x19D PUSH3 0x45A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0x22E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x239 PUSH3 0x52E JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0x262 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0xCA PUSH3 0x53D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0x27A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x239 PUSH3 0x59B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0x292 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x19D PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH3 0x882 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0x2BF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x239 PUSH3 0x90E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0x2D7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x19D PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH3 0x91D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0x2FB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x19D PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH3 0x9BD JUMP JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x1 DUP5 AND ISZERO PUSH2 0x100 MUL PUSH1 0x0 NOT ADD SWAP1 SWAP4 AND DUP5 SWAP1 DIV PUSH1 0x1F DUP2 ADD DUP5 SWAP1 DIV DUP5 MUL DUP3 ADD DUP5 ADD SWAP1 SWAP3 MSTORE DUP2 DUP2 MSTORE SWAP3 SWAP2 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH3 0x3A2 JUMPI DUP1 PUSH1 0x1F LT PUSH3 0x376 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH3 0x3A2 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH3 0x384 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH3 0x3BD PUSH3 0xA2B JUMP JUMPDEST DUP3 PUSH3 0x3C9 DUP2 PUSH3 0xA90 JUMP JUMPDEST DUP3 PUSH3 0x3D5 DUP2 PUSH3 0xA90 JUMP JUMPDEST DUP4 PUSH3 0x3E1 DUP2 PUSH3 0xAF4 JUMP JUMPDEST PUSH3 0x3EE DUP7 DUP7 DUP7 PUSH3 0xB56 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x5 DUP1 SLOAD DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD DUP1 ISZERO PUSH3 0x450 JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH3 0x431 JUMPI JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH3 0x4BD JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND SWAP4 SWAP1 SWAP2 AND SWAP2 PUSH32 0x343765429AEA5A34B3FF6A3785A98A5ABB2597ACA87BFBB58632C173D585373A SWAP2 LOG3 PUSH1 0x1 DUP1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND OR SWAP1 SWAP2 SSTORE AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x2 PUSH1 0x1 DUP6 AND ISZERO PUSH2 0x100 MUL PUSH1 0x0 NOT ADD SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 DIV PUSH1 0x1F DUP2 ADD DUP5 SWAP1 DIV DUP5 MUL DUP3 ADD DUP5 ADD SWAP1 SWAP3 MSTORE DUP2 DUP2 MSTORE SWAP3 SWAP2 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH3 0x3A2 JUMPI DUP1 PUSH1 0x1F LT PUSH3 0x376 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH3 0x3A2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP1 PUSH1 0x0 PUSH3 0x5AC PUSH3 0xA2B JUMP JUMPDEST PUSH1 0x5 DUP1 SLOAD LT PUSH3 0x606 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4D41585F4C494D49545F524541434845440000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x1F PUSH1 0x0 NOT PUSH2 0x100 PUSH1 0x1 DUP8 AND ISZERO MUL ADD SWAP1 SWAP5 AND DUP6 SWAP1 DIV SWAP4 DUP5 ADD DUP2 SWAP1 DIV DUP2 MUL DUP3 ADD DUP2 ADD SWAP1 SWAP3 MSTORE DUP3 DUP2 MSTORE PUSH3 0x6A8 SWAP4 SWAP1 SWAP3 SWAP1 SWAP2 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH3 0x695 JUMPI DUP1 PUSH1 0x1F LT PUSH3 0x669 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH3 0x695 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH3 0x677 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP PUSH1 0x5 SLOAD PUSH1 0x1 ADD SWAP3 POP PUSH3 0xC12 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x2 PUSH1 0x1 DUP6 AND ISZERO PUSH2 0x100 MUL PUSH1 0x0 NOT ADD SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 DIV PUSH1 0x1F DUP2 ADD DUP5 SWAP1 DIV DUP5 MUL DUP3 ADD DUP5 ADD SWAP1 SWAP3 MSTORE DUP2 DUP2 MSTORE SWAP4 SWAP7 POP PUSH3 0x70E SWAP4 SWAP3 SWAP2 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH3 0x695 JUMPI DUP1 PUSH1 0x1F LT PUSH3 0x669 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH3 0x695 JUMP JUMPDEST PUSH1 0x4 SLOAD SWAP1 SWAP3 POP DUP4 SWAP1 DUP4 SWAP1 PUSH1 0xFF AND PUSH3 0x725 PUSH3 0xD8C JUMP JUMPDEST PUSH1 0xFF DUP3 AND PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP1 DUP3 MSTORE DUP5 MLOAD SWAP1 DUP3 ADD MSTORE DUP4 MLOAD DUP2 SWAP1 PUSH1 0x20 DUP1 DUP4 ADD SWAP2 PUSH1 0x80 DUP5 ADD SWAP2 DUP9 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH3 0x76B JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH3 0x751 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH3 0x799 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP DUP4 DUP2 SUB DUP3 MSTORE DUP6 MLOAD DUP2 MSTORE DUP6 MLOAD PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 DUP8 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH3 0x7CE JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH3 0x7B4 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH3 0x7FC JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP6 POP POP POP POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 PUSH1 0x0 CREATE DUP1 ISZERO DUP1 ISZERO PUSH3 0x821 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH1 0x5 DUP1 SLOAD PUSH1 0x1 DUP2 ADD DUP3 SSTORE PUSH1 0x0 SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0x36B6384B5ECA791C62761152D0C79BB0604C104A5FB6F4EB0703F3154BB3DB0 ADD DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 AND OR SWAP1 SSTORE SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH3 0x88C PUSH3 0xA2B JUMP JUMPDEST DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x867904B4 DUP4 DUP4 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH3 0x8F0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH3 0x905 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH3 0x927 PUSH3 0xA2B JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ ISZERO PUSH3 0x98E JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F4F574E4552000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH3 0x9C7 PUSH3 0xA2B JUMP JUMPDEST DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xA24835D1 DUP4 DUP4 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH3 0x8F0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH3 0xA8E JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH3 0xAF1 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ADDRESS EQ ISZERO PUSH3 0xAF1 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F414444524553535F49535F53454C4600000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x7472616E7366657228616464726573732C75696E743235362900000000000000 DUP2 MSTORE DUP2 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x19 ADD DUP2 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x64 SWAP1 SWAP3 ADD SWAP1 SWAP3 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE PUSH3 0xC0D SWAP1 DUP5 SWAP1 PUSH3 0xCFA JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP3 DUP3 PUSH32 0x3000000000000000000000000000000000000000000000000000000000000000 PUSH32 0x100000000000000000000000000000000000000000000000000000000000000 SWAP1 DIV ADD PUSH1 0x40 MLOAD PUSH1 0x20 ADD DUP1 DUP4 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH3 0xC8F JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH3 0xC6E JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD DUP3 PUSH1 0xFF AND PUSH1 0xFF AND PUSH32 0x100000000000000000000000000000000000000000000000000000000000000 MUL DUP2 MSTORE PUSH1 0x1 ADD SWAP3 POP POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH3 0xD04 PUSH3 0xD9D JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE POP SWAP1 POP PUSH1 0x20 DUP2 DUP4 MLOAD PUSH1 0x20 DUP6 ADD PUSH1 0x0 DUP8 GAS CALL DUP1 ISZERO ISZERO PUSH3 0xD32 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD ISZERO ISZERO PUSH3 0xC0D JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5452414E534645525F4641494C454400000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1228 DUP1 PUSH3 0xDBD DUP4 CODECOPY ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 SWAP1 PUSH1 0x20 DUP3 MUL DUP1 CODESIZE DUP4 CODECOPY POP SWAP2 SWAP3 SWAP2 POP POP JUMP STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x8 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE CALLVALUE DUP1 ISZERO PUSH3 0x1E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x1228 CODESIZE SUB DUP1 PUSH3 0x1228 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 SWAP1 DUP2 MSTORE DUP2 MLOAD PUSH1 0x20 DUP4 ADD MLOAD SWAP2 DUP4 ADD MLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND CALLER OR DUP2 SSTORE SWAP2 DUP5 ADD DUP1 MLOAD SWAP1 SWAP5 SWAP4 SWAP1 SWAP4 ADD SWAP3 SWAP1 SWAP2 DUP5 SWAP2 DUP5 SWAP2 DUP5 SWAP2 DUP2 LT PUSH3 0xD5 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4E414D4500000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP3 MLOAD PUSH1 0x0 LT PUSH3 0x146 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F53594D424F4C0000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP4 MLOAD PUSH3 0x15B SWAP1 PUSH1 0x2 SWAP1 PUSH1 0x20 DUP8 ADD SWAP1 PUSH3 0x1A8 JUMP JUMPDEST POP DUP3 MLOAD PUSH3 0x171 SWAP1 PUSH1 0x3 SWAP1 PUSH1 0x20 DUP7 ADD SWAP1 PUSH3 0x1A8 JUMP JUMPDEST POP PUSH1 0x4 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0xFF SWAP4 SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 SSTORE PUSH1 0x5 DUP2 SWAP1 SSTORE CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE POP PUSH3 0x24D SWAP4 POP POP POP POP JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH1 0x1F LT PUSH3 0x1EB JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH3 0x21B JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH3 0x21B JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH3 0x21B JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH3 0x1FE JUMP JUMPDEST POP PUSH3 0x229 SWAP3 SWAP2 POP PUSH3 0x22D JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH3 0x24A SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH3 0x229 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH3 0x234 JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH2 0xFCB DUP1 PUSH3 0x25D PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x106 JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x6FDDE03 DUP2 EQ PUSH2 0x10B JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x195 JUMPI DUP1 PUSH4 0x1608F18F EQ PUSH2 0x1CD JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x1E9 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x210 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x23A JUMPI DUP1 PUSH4 0x54FD4D50 EQ PUSH2 0x265 JUMPI DUP1 PUSH4 0x5E35359E EQ PUSH2 0x291 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x2BB JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x2DC JUMPI DUP1 PUSH4 0x867904B4 EQ PUSH2 0x2F1 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x315 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x346 JUMPI DUP1 PUSH4 0xA24835D1 EQ PUSH2 0x35B JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x37F JUMPI DUP1 PUSH4 0xBEF97C87 EQ PUSH2 0x3A3 JUMPI DUP1 PUSH4 0xD4EE1D90 EQ PUSH2 0x3B8 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x3CD JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x3F4 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x117 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x120 PUSH2 0x415 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP4 MLOAD DUP2 DUP4 ADD MSTORE DUP4 MLOAD SWAP2 SWAP3 DUP4 SWAP3 SWAP1 DUP4 ADD SWAP2 DUP6 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x15A JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x142 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x187 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1A1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B9 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x4A0 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1D9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH1 0x4 CALLDATALOAD ISZERO ISZERO PUSH2 0x598 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1FE PUSH2 0x5B2 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x21C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B9 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x5B8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x246 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x24F PUSH2 0x5DF JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x271 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x27A PUSH2 0x5E8 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0xFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x29D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x5ED JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2C7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1FE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x626 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2E8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH2 0x638 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2FD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x70B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x321 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x32A PUSH2 0x7ED JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x352 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x120 PUSH2 0x7FC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x367 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x857 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x38B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B9 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x91D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3AF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B9 PUSH2 0x942 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3C4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x32A PUSH2 0x94B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3D9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1FE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH2 0x95A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x400 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x977 JUMP JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x1 DUP5 AND ISZERO PUSH2 0x100 MUL PUSH1 0x0 NOT ADD SWAP1 SWAP4 AND DUP5 SWAP1 DIV PUSH1 0x1F DUP2 ADD DUP5 SWAP1 DIV DUP5 MUL DUP3 ADD DUP5 ADD SWAP1 SWAP3 MSTORE DUP2 DUP2 MSTORE SWAP3 SWAP2 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x498 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x46D JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x498 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x47B JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x4AC DUP2 PUSH2 0xA14 JUMP JUMPDEST DUP3 ISZERO DUP1 PUSH2 0x4DA JUMPI POP CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x530 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F414D4F554E540000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST CALLER PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP10 AND DUP1 DUP6 MSTORE SWAP1 DUP4 MSTORE SWAP3 DUP2 SWAP1 KECCAK256 DUP8 SWAP1 SSTORE DUP1 MLOAD DUP8 DUP2 MSTORE SWAP1 MLOAD SWAP3 SWAP4 SWAP3 PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP3 SWAP2 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x5A0 PUSH2 0xA77 JUMP JUMPDEST PUSH1 0x8 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP2 ISZERO SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x5 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5C2 PUSH2 0xADB JUMP JUMPDEST PUSH2 0x5CD DUP5 DUP5 DUP5 PUSH2 0xB37 JUMP JUMPDEST ISZERO ISZERO PUSH2 0x5D5 JUMPI INVALID JUMPDEST POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x4 DUP2 JUMP JUMPDEST PUSH2 0x5F5 PUSH2 0xA77 JUMP JUMPDEST DUP3 PUSH2 0x5FF DUP2 PUSH2 0xA14 JUMP JUMPDEST DUP3 PUSH2 0x609 DUP2 PUSH2 0xA14 JUMP JUMPDEST DUP4 PUSH2 0x613 DUP2 PUSH2 0xC48 JUMP JUMPDEST PUSH2 0x61E DUP7 DUP7 DUP7 PUSH2 0xCA9 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x69A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND SWAP4 SWAP1 SWAP2 AND SWAP2 PUSH32 0x343765429AEA5A34B3FF6A3785A98A5ABB2597ACA87BFBB58632C173D585373A SWAP2 LOG3 PUSH1 0x1 DUP1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND OR SWAP1 SWAP2 SSTORE AND SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x713 PUSH2 0xA77 JUMP JUMPDEST DUP2 PUSH2 0x71D DUP2 PUSH2 0xA14 JUMP JUMPDEST DUP3 PUSH2 0x727 DUP2 PUSH2 0xC48 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH2 0x73A SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0xD63 AND JUMP JUMPDEST PUSH1 0x5 SSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x766 SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0xD63 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SWAP3 SWAP1 SWAP3 SSTORE DUP1 MLOAD DUP6 DUP2 MSTORE SWAP1 MLOAD PUSH32 0x9386C90217C323F58030F9DADCBC938F807A940F4FF41CD4CEAD9562F5DA7DC3 SWAP3 SWAP2 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG1 PUSH1 0x40 DUP1 MLOAD DUP5 DUP2 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND SWAP2 PUSH1 0x0 SWAP2 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xF80 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP2 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 LOG3 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x2 PUSH1 0x1 DUP6 AND ISZERO PUSH2 0x100 MUL PUSH1 0x0 NOT ADD SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 DIV PUSH1 0x1F DUP2 ADD DUP5 SWAP1 DIV DUP5 MUL DUP3 ADD DUP5 ADD SWAP1 SWAP3 MSTORE DUP2 DUP2 MSTORE SWAP3 SWAP2 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x498 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x46D JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x498 JUMP JUMPDEST PUSH2 0x85F PUSH2 0xA77 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x888 SWAP1 DUP3 PUSH4 0xFFFFFFFF PUSH2 0xDC7 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE PUSH1 0x5 SLOAD PUSH2 0x8B4 SWAP1 DUP3 PUSH4 0xFFFFFFFF PUSH2 0xDC7 AND JUMP JUMPDEST PUSH1 0x5 SSTORE PUSH1 0x40 DUP1 MLOAD DUP3 DUP2 MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND SWAP2 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xF80 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP2 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 LOG3 PUSH1 0x40 DUP1 MLOAD DUP3 DUP2 MSTORE SWAP1 MLOAD PUSH32 0x9A1B418BC061A5D80270261562E6986A35D995F8051145F277BE16103ABD3453 SWAP2 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x927 PUSH2 0xADB JUMP JUMPDEST PUSH2 0x931 DUP4 DUP4 PUSH2 0xE27 JUMP JUMPDEST ISZERO ISZERO PUSH2 0x939 JUMPI INVALID JUMPDEST POP PUSH1 0x1 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x97F PUSH2 0xA77 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x9E5 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F4F574E4552000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0xA74 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0xAD9 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0xFF AND ISZERO ISZERO PUSH2 0xAD9 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5452414E53464552535F44495341424C454400000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP4 PUSH2 0xB43 DUP2 PUSH2 0xA14 JUMP JUMPDEST DUP4 PUSH2 0xB4D DUP2 PUSH2 0xA14 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH2 0xB81 SWAP1 DUP6 PUSH4 0xFFFFFFFF PUSH2 0xDC7 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE DUP3 MSTORE DUP1 DUP4 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE SWAP2 DUP2 MSTORE PUSH1 0x6 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD PUSH2 0xBC2 SWAP1 DUP6 PUSH4 0xFFFFFFFF PUSH2 0xDC7 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE SWAP1 DUP8 AND DUP2 MSTORE KECCAK256 SLOAD PUSH2 0xBF7 SWAP1 DUP6 PUSH4 0xFFFFFFFF PUSH2 0xD63 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP8 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE DUP1 MLOAD DUP9 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP4 SWAP3 DUP11 AND SWAP3 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xF80 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP3 SWAP2 DUP3 SWAP1 SUB ADD SWAP1 LOG3 POP PUSH1 0x1 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ADDRESS EQ ISZERO PUSH2 0xA74 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F414444524553535F49535F53454C4600000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x7472616E7366657228616464726573732C75696E743235362900000000000000 DUP2 MSTORE DUP2 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x19 ADD DUP2 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x64 SWAP1 SWAP3 ADD SWAP1 SWAP3 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE PUSH2 0xD5E SWAP1 DUP5 SWAP1 PUSH2 0xED2 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 ADD DUP4 DUP2 LT ISZERO PUSH2 0xDC0 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT ISZERO PUSH2 0xE21 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F554E444552464C4F5700000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP SWAP1 SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0xE33 DUP2 PUSH2 0xA14 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0xE53 SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0xDC7 AND JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP3 SWAP1 SWAP3 SSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND DUP2 MSTORE KECCAK256 SLOAD PUSH2 0xE85 SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0xD63 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE DUP1 MLOAD DUP7 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP3 CALLER SWAP3 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xF80 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0xEDA PUSH2 0xF60 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE POP SWAP1 POP PUSH1 0x20 DUP2 DUP4 MLOAD PUSH1 0x20 DUP6 ADD PUSH1 0x0 DUP8 GAS CALL DUP1 ISZERO ISZERO PUSH2 0xF07 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD ISZERO ISZERO PUSH2 0xD5E JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5452414E534645525F4641494C454400000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 SWAP1 PUSH1 0x20 DUP3 MUL DUP1 CODESIZE DUP4 CODECOPY POP SWAP2 SWAP3 SWAP2 POP POP JUMP STOP 0xdd CALLCODE MSTORE 0xad SHL 0xe2 0xc8 SWAP12 PUSH10 0xC2B068FC378DAA952BA7 CALL PUSH4 0xC4A11628 0xf5 GAS 0x4d 0xf5 0x23 0xb3 0xef LOG1 PUSH6 0x627A7A723058 KECCAK256 BALANCE 0xb5 PUSH11 0xEBC8336B547B3E1346F50C 0x2f DIFFICULTY 0xf7 0xd 0xef SSTORE 0x4e 0xd4 0xcb LOG4 0xc8 SHL 0xcf 0x2e MULMOD 0x2d DIV PUSH32 0x29A165627A7A72305820E0EE560589EDA5987D8F172EA60698BFBFFC21529E 0xe8 DIV PUSH11 0xB37C5E3348E88BCD0029A1 PUSH6 0x627A7A723058 KECCAK256 DUP15 BYTE LOG3 0xc1 0xd TIMESTAMP 0x4a DUP16 0xc6 PUSH26 0x3EA5434EEFC7EBFA7CB5EA0F07E6E74E8AD25B80D7F700290000 ", + "sourceMap": "184:897:26:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;400:81;;8:9:-1;5:2;;;30:1;27;20:12;5:2;400:81:26;;;;;;;;;;;;;;;;;;;;;;;796:282;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;796:282:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;796:282:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;796:282:26;;;;-1:-1:-1;796:282:26;-1:-1:-1;796:282:26;;-1:-1:-1;796:282:26;;;;;;;;-1:-1:-1;796:282:26;;-1:-1:-1;;;796:282:26;;;;;-1:-1:-1;796:282:26;;-1:-1:-1;;;796:282:26;;;;;;;;;;;;;;;;;;;;400:81;472:1;400:81;:::o;796:282::-;881:16;910:30;967:5;974:7;983:9;943:50;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;943:50:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;943:50:26;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;943:50:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;1004:39:26;;;;;;1032:10;1004:39;;;;;;910:83;;-1:-1:-1;1004:27:26;;;;;;:39;;;;;-1:-1:-1;;1004:39:26;;;;;;;;-1:-1:-1;1004:27:26;:39;;;5:2:-1;;;;30:1;27;20:12;5:2;1004:39:26;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;1061:9:26;;796:282;-1:-1:-1;;;;;;;796:282:26:o;184:897::-;;;;;;;;;;:::o" + }, + "methodIdentifiers": { + "converterType()": "3e8ff43f", + "createAnchor(string,string,uint8)": "a9fd4a2a" + } + }, + "userdoc": { + "methods": {} + } + } + }, + "solidity/contracts/converter/types/liquidity-pool-v2/LiquidityPoolV2ConverterCustomFactory.sol": { + "LiquidityPoolV2ConverterCustomFactory": { + "abi": [ + { + "constant": false, + "inputs": [ + { + "name": "_primaryReserveToken", + "type": "address" + }, + { + "name": "_secondaryReserveToken", + "type": "address" + }, + { + "name": "_primaryReserveOracle", + "type": "address" + }, + { + "name": "_secondaryReserveOracle", + "type": "address" + } + ], + "name": "createPriceOracle", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "converterType", + "outputs": [ + { + "name": "", + "type": "uint16" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + } + ], + "devdoc": { + "methods": { + "converterType()": { + "details": "returns the converter type the factory is associated with\r ", + "return": "converter type\r" + }, + "createPriceOracle(address,address,address,address)": { + "details": "creates a new price oracle\r note that the oracles must have the same common denominator (USD, ETH etc.)\r ", + "params": { + "_primaryReserveOracle": "primary reserve oracle address\r", + "_primaryReserveToken": "primary reserve token address\r", + "_secondaryReserveOracle": "secondary reserve oracle address\r", + "_secondaryReserveToken": "secondary reserve token address\r" + } + } + } + }, + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b50610cd2806100206000396000f30060806040526004361061004b5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631b27444e81146100505780633e8ff43f146100b9575b600080fd5b34801561005c57600080fd5b5061009073ffffffffffffffffffffffffffffffffffffffff600435811690602435811690604435811690606435166100e5565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b3480156100c557600080fd5b506100ce610151565b6040805161ffff9092168252519081900360200190f35b6000848484846100f3610156565b73ffffffffffffffffffffffffffffffffffffffff9485168152928416602084015290831660408084019190915292166060820152905190819003608001906000f080158015610147573d6000803e3d6000fd5b5095945050505050565b600290565b604051610b4080610167833901905600608060405234801561001057600080fd5b50604051608080610b408339810160409081528151602083015191830151606090930151909290838361004c8282640100000000610168810204565b83836100618282640100000000610168810204565b60008054600160a060020a03808b16600160a060020a03199283161790925560018054928a16929091169190911790556100a38864010000000061020b810204565b600160a060020a0389166000908152600260205260409020805460ff191660ff929092169190911790556100df8764010000000061020b810204565b600160a060020a039788166000818152600260209081526040808320805460ff9690961660ff1990961695909517909455600380549a8c16600160a060020a03199b8c168117909155600480549a8d169a8c168b1790559b909a168152600590995281892080548916909a1790995597875250505093909220805490911690911790555061033f565b61017a826401000000006102c5810204565b61018c816401000000006102c5810204565b600160a060020a03828116908216141561020757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f4552525f53414d455f4144445245535300000000000000000000000000000000604482015290519081900360640190fd5b5050565b6000600160a060020a03821673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee141561023a575060126102c0565b81600160a060020a031663313ce5676040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561029157600080fd5b505af11580156102a5573d6000803e3d6000fd5b505050506040513d60208110156102bb57600080fd5b505190505b919050565b600160a060020a038116151561033c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b50565b6107f28061034e6000396000f3006080604052600436106100985763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630fc63d10811461009d5780635f64b55b146100ce5780638ee573ac146100e3578063ae8180041461011a578063b1772d7a1461015a578063b9e1715b1461019f578063c8f33c91146101b4578063cbd962d1146101db578063f997fda7146101fc575b600080fd5b3480156100a957600080fd5b506100b2610211565b60408051600160a060020a039092168252519081900360200190f35b3480156100da57600080fd5b506100b2610220565b3480156100ef57600080fd5b50610104600160a060020a036004351661022f565b6040805160ff9092168252519081900360200190f35b34801561012657600080fd5b50610141600160a060020a0360043581169060243516610244565b6040805192835260208301919091528051918290030190f35b34801561016657600080fd5b50610181600160a060020a0360043581169060243516610419565b60408051938452602084019290925282820152519081900360600190f35b3480156101ab57600080fd5b506100b2610448565b3480156101c057600080fd5b506101c9610457565b60408051918252519081900360200190f35b3480156101e757600080fd5b506100b2600160a060020a0360043516610599565b34801561020857600080fd5b506100b26105b4565b600054600160a060020a031681565b600154600160a060020a031681565b60026020526000908152604090205460ff1681565b600080600080600080878761025982826105c3565b600160a060020a03808b1660009081526005602090815260408083205481517f50d25bcd00000000000000000000000000000000000000000000000000000000815291519416936350d25bcd93600480840194938390030190829087803b1580156102c357600080fd5b505af11580156102d7573d6000803e3d6000fd5b505050506040513d60208110156102ed57600080fd5b5051600160a060020a03808b1660009081526005602090815260408083205481517f50d25bcd0000000000000000000000000000000000000000000000000000000081529151959b50909316936350d25bcd93600480820194918390030190829087803b15801561035d57600080fd5b505af1158015610371573d6000803e3d6000fd5b505050506040513d602081101561038757600080fd5b5051600160a060020a03808c1660009081526002602052604080822054928d16825290205491965060ff9081169550169250828411156103e0576103d98560ff85870316600a0a63ffffffff61066916565b9450610409565b8260ff168460ff161015610409576104068660ff86860316600a0a63ffffffff61066916565b95505b5093989297509195505050505050565b600080600080600061042b8787610244565b915091508181610439610457565b94509450945050509250925092565b600354600160a060020a031681565b6000806000600360009054906101000a9004600160a060020a0316600160a060020a0316638205bf6a6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156104c857600080fd5b505af11580156104dc573d6000803e3d6000fd5b505050506040513d60208110156104f257600080fd5b505160048054604080517f8205bf6a0000000000000000000000000000000000000000000000000000000081529051939550600160a060020a0390911692638205bf6a928281019260209291908290030181600087803b15801561055557600080fd5b505af1158015610569573d6000803e3d6000fd5b505050506040513d602081101561057f57600080fd5b505190508082116105905780610592565b815b9250505090565b600560205260009081526040902054600160a060020a031681565b600454600160a060020a031681565b6105cd82826106ed565b600160a060020a03828116600090815260056020526040902054161580159061060f5750600160a060020a038181166000908152600560205260409020541615155b1515610665576040805160e560020a62461bcd02815260206004820152601560248201527f4552525f554e535550504f525445445f544f4b454e0000000000000000000000604482015290519081900360640190fd5b5050565b60008083151561067c57600091506106e6565b5082820282848281151561068c57fe5b04146106e2576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b8091505b5092915050565b6106f682610763565b6106ff81610763565b600160a060020a038281169082161415610665576040805160e560020a62461bcd02815260206004820152601060248201527f4552525f53414d455f4144445245535300000000000000000000000000000000604482015290519081900360640190fd5b600160a060020a03811615156107c3576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b505600a165627a7a72305820cbe01ca5d8106253df6f9a272819eaf7073655d80bfe9974cf71d48b1af26f530029a165627a7a723058206ec04e3e8dfaba1e7a3aa666d6e6a719e372b861cdadcba2f873f5b72a9775220029", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xCD2 DUP1 PUSH2 0x20 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x4B JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x1B27444E DUP2 EQ PUSH2 0x50 JUMPI DUP1 PUSH4 0x3E8FF43F EQ PUSH2 0xB9 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x90 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x44 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x64 CALLDATALOAD AND PUSH2 0xE5 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xC5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xCE PUSH2 0x151 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0xFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP5 DUP5 DUP5 DUP5 PUSH2 0xF3 PUSH2 0x156 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP5 DUP6 AND DUP2 MSTORE SWAP3 DUP5 AND PUSH1 0x20 DUP5 ADD MSTORE SWAP1 DUP4 AND PUSH1 0x40 DUP1 DUP5 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP3 AND PUSH1 0x60 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x80 ADD SWAP1 PUSH1 0x0 CREATE DUP1 ISZERO DUP1 ISZERO PUSH2 0x147 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xB40 DUP1 PUSH2 0x167 DUP4 CODECOPY ADD SWAP1 JUMP STOP PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH1 0x80 DUP1 PUSH2 0xB40 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 SWAP1 DUP2 MSTORE DUP2 MLOAD PUSH1 0x20 DUP4 ADD MLOAD SWAP2 DUP4 ADD MLOAD PUSH1 0x60 SWAP1 SWAP4 ADD MLOAD SWAP1 SWAP3 SWAP1 DUP4 DUP4 PUSH2 0x4C DUP3 DUP3 PUSH5 0x100000000 PUSH2 0x168 DUP2 MUL DIV JUMP JUMPDEST DUP4 DUP4 PUSH2 0x61 DUP3 DUP3 PUSH5 0x100000000 PUSH2 0x168 DUP2 MUL DIV JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP12 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT SWAP3 DUP4 AND OR SWAP1 SWAP3 SSTORE PUSH1 0x1 DUP1 SLOAD SWAP3 DUP11 AND SWAP3 SWAP1 SWAP2 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0xA3 DUP9 PUSH5 0x100000000 PUSH2 0x20B DUP2 MUL DIV JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP10 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0xFF SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0xDF DUP8 PUSH5 0x100000000 PUSH2 0x20B DUP2 MUL DIV JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP8 DUP9 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH1 0xFF SWAP7 SWAP1 SWAP7 AND PUSH1 0xFF NOT SWAP1 SWAP7 AND SWAP6 SWAP1 SWAP6 OR SWAP1 SWAP5 SSTORE PUSH1 0x3 DUP1 SLOAD SWAP11 DUP13 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT SWAP12 DUP13 AND DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x4 DUP1 SLOAD SWAP11 DUP14 AND SWAP11 DUP13 AND DUP12 OR SWAP1 SSTORE SWAP12 SWAP1 SWAP11 AND DUP2 MSTORE PUSH1 0x5 SWAP1 SWAP10 MSTORE DUP2 DUP10 KECCAK256 DUP1 SLOAD DUP10 AND SWAP1 SWAP11 OR SWAP1 SWAP10 SSTORE SWAP8 DUP8 MSTORE POP POP POP SWAP4 SWAP1 SWAP3 KECCAK256 DUP1 SLOAD SWAP1 SWAP2 AND SWAP1 SWAP2 OR SWAP1 SSTORE POP PUSH2 0x33F JUMP JUMPDEST PUSH2 0x17A DUP3 PUSH5 0x100000000 PUSH2 0x2C5 DUP2 MUL DIV JUMP JUMPDEST PUSH2 0x18C DUP2 PUSH5 0x100000000 PUSH2 0x2C5 DUP2 MUL DIV JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP1 DUP3 AND EQ ISZERO PUSH2 0x207 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F4144445245535300000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 AND PUSH20 0xEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE EQ ISZERO PUSH2 0x23A JUMPI POP PUSH1 0x12 PUSH2 0x2C0 JUMP JUMPDEST DUP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x313CE567 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH29 0x100000000000000000000000000000000000000000000000000000000 MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x291 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2A5 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2BB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0x33C JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x7F2 DUP1 PUSH2 0x34E PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x98 JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0xFC63D10 DUP2 EQ PUSH2 0x9D JUMPI DUP1 PUSH4 0x5F64B55B EQ PUSH2 0xCE JUMPI DUP1 PUSH4 0x8EE573AC EQ PUSH2 0xE3 JUMPI DUP1 PUSH4 0xAE818004 EQ PUSH2 0x11A JUMPI DUP1 PUSH4 0xB1772D7A EQ PUSH2 0x15A JUMPI DUP1 PUSH4 0xB9E1715B EQ PUSH2 0x19F JUMPI DUP1 PUSH4 0xC8F33C91 EQ PUSH2 0x1B4 JUMPI DUP1 PUSH4 0xCBD962D1 EQ PUSH2 0x1DB JUMPI DUP1 PUSH4 0xF997FDA7 EQ PUSH2 0x1FC JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB2 PUSH2 0x211 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xDA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB2 PUSH2 0x220 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xEF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x104 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x22F JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x126 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x141 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH2 0x244 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x166 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x181 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH2 0x419 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP4 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP3 SWAP1 SWAP3 MSTORE DUP3 DUP3 ADD MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1AB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB2 PUSH2 0x448 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1C0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1C9 PUSH2 0x457 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1E7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x599 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x208 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB2 PUSH2 0x5B4 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 DUP8 DUP8 PUSH2 0x259 DUP3 DUP3 PUSH2 0x5C3 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD DUP2 MLOAD PUSH32 0x50D25BCD00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP2 MLOAD SWAP5 AND SWAP4 PUSH4 0x50D25BCD SWAP4 PUSH1 0x4 DUP1 DUP5 ADD SWAP5 SWAP4 DUP4 SWAP1 SUB ADD SWAP1 DUP3 SWAP1 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2C3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2D7 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2ED JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD DUP2 MLOAD PUSH32 0x50D25BCD00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP2 MLOAD SWAP6 SWAP12 POP SWAP1 SWAP4 AND SWAP4 PUSH4 0x50D25BCD SWAP4 PUSH1 0x4 DUP1 DUP3 ADD SWAP5 SWAP2 DUP4 SWAP1 SUB ADD SWAP1 DUP3 SWAP1 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x35D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x371 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x387 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP13 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SLOAD SWAP3 DUP14 AND DUP3 MSTORE SWAP1 KECCAK256 SLOAD SWAP2 SWAP7 POP PUSH1 0xFF SWAP1 DUP2 AND SWAP6 POP AND SWAP3 POP DUP3 DUP5 GT ISZERO PUSH2 0x3E0 JUMPI PUSH2 0x3D9 DUP6 PUSH1 0xFF DUP6 DUP8 SUB AND PUSH1 0xA EXP PUSH4 0xFFFFFFFF PUSH2 0x669 AND JUMP JUMPDEST SWAP5 POP PUSH2 0x409 JUMP JUMPDEST DUP3 PUSH1 0xFF AND DUP5 PUSH1 0xFF AND LT ISZERO PUSH2 0x409 JUMPI PUSH2 0x406 DUP7 PUSH1 0xFF DUP7 DUP7 SUB AND PUSH1 0xA EXP PUSH4 0xFFFFFFFF PUSH2 0x669 AND JUMP JUMPDEST SWAP6 POP JUMPDEST POP SWAP4 SWAP9 SWAP3 SWAP8 POP SWAP2 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x42B DUP8 DUP8 PUSH2 0x244 JUMP JUMPDEST SWAP2 POP SWAP2 POP DUP2 DUP2 PUSH2 0x439 PUSH2 0x457 JUMP JUMPDEST SWAP5 POP SWAP5 POP SWAP5 POP POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x3 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x8205BF6A PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH29 0x100000000000000000000000000000000000000000000000000000000 MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x4C8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x4DC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x4F2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x4 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x8205BF6A00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD SWAP4 SWAP6 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP2 AND SWAP3 PUSH4 0x8205BF6A SWAP3 DUP3 DUP2 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x555 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x569 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x57F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 POP DUP1 DUP3 GT PUSH2 0x590 JUMPI DUP1 PUSH2 0x592 JUMP JUMPDEST DUP2 JUMPDEST SWAP3 POP POP POP SWAP1 JUMP JUMPDEST PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH2 0x5CD DUP3 DUP3 PUSH2 0x6ED JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD AND ISZERO DUP1 ISZERO SWAP1 PUSH2 0x60F JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD AND ISZERO ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x665 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F554E535550504F525445445F544F4B454E0000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 ISZERO ISZERO PUSH2 0x67C JUMPI PUSH1 0x0 SWAP2 POP PUSH2 0x6E6 JUMP JUMPDEST POP DUP3 DUP3 MUL DUP3 DUP5 DUP3 DUP2 ISZERO ISZERO PUSH2 0x68C JUMPI INVALID JUMPDEST DIV EQ PUSH2 0x6E2 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP1 SWAP2 POP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x6F6 DUP3 PUSH2 0x763 JUMP JUMPDEST PUSH2 0x6FF DUP2 PUSH2 0x763 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP1 DUP3 AND EQ ISZERO PUSH2 0x665 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F4144445245535300000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0x7C3 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP JUMP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 0xcb 0xe0 SHR 0xa5 0xd8 LT PUSH3 0x53DF6F SWAP11 0x27 0x28 NOT 0xea 0xf7 SMOD CALLDATASIZE SSTORE 0xd8 SIGNEXTEND INVALID SWAP10 PUSH21 0xCF71D48B1AF26F530029A165627A7A723058206EC0 0x4e RETURNDATACOPY DUP14 STATICCALL 0xba 0x1e PUSH27 0x3AA666D6E6A719E372B861CDADCBA2F873F5B72A97752200290000 ", + "sourceMap": "191:1162:27:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;191:1162:27;;;;;;;" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "60806040526004361061004b5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631b27444e81146100505780633e8ff43f146100b9575b600080fd5b34801561005c57600080fd5b5061009073ffffffffffffffffffffffffffffffffffffffff600435811690602435811690604435811690606435166100e5565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b3480156100c557600080fd5b506100ce610151565b6040805161ffff9092168252519081900360200190f35b6000848484846100f3610156565b73ffffffffffffffffffffffffffffffffffffffff9485168152928416602084015290831660408084019190915292166060820152905190819003608001906000f080158015610147573d6000803e3d6000fd5b5095945050505050565b600290565b604051610b4080610167833901905600608060405234801561001057600080fd5b50604051608080610b408339810160409081528151602083015191830151606090930151909290838361004c8282640100000000610168810204565b83836100618282640100000000610168810204565b60008054600160a060020a03808b16600160a060020a03199283161790925560018054928a16929091169190911790556100a38864010000000061020b810204565b600160a060020a0389166000908152600260205260409020805460ff191660ff929092169190911790556100df8764010000000061020b810204565b600160a060020a039788166000818152600260209081526040808320805460ff9690961660ff1990961695909517909455600380549a8c16600160a060020a03199b8c168117909155600480549a8d169a8c168b1790559b909a168152600590995281892080548916909a1790995597875250505093909220805490911690911790555061033f565b61017a826401000000006102c5810204565b61018c816401000000006102c5810204565b600160a060020a03828116908216141561020757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f4552525f53414d455f4144445245535300000000000000000000000000000000604482015290519081900360640190fd5b5050565b6000600160a060020a03821673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee141561023a575060126102c0565b81600160a060020a031663313ce5676040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561029157600080fd5b505af11580156102a5573d6000803e3d6000fd5b505050506040513d60208110156102bb57600080fd5b505190505b919050565b600160a060020a038116151561033c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b50565b6107f28061034e6000396000f3006080604052600436106100985763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630fc63d10811461009d5780635f64b55b146100ce5780638ee573ac146100e3578063ae8180041461011a578063b1772d7a1461015a578063b9e1715b1461019f578063c8f33c91146101b4578063cbd962d1146101db578063f997fda7146101fc575b600080fd5b3480156100a957600080fd5b506100b2610211565b60408051600160a060020a039092168252519081900360200190f35b3480156100da57600080fd5b506100b2610220565b3480156100ef57600080fd5b50610104600160a060020a036004351661022f565b6040805160ff9092168252519081900360200190f35b34801561012657600080fd5b50610141600160a060020a0360043581169060243516610244565b6040805192835260208301919091528051918290030190f35b34801561016657600080fd5b50610181600160a060020a0360043581169060243516610419565b60408051938452602084019290925282820152519081900360600190f35b3480156101ab57600080fd5b506100b2610448565b3480156101c057600080fd5b506101c9610457565b60408051918252519081900360200190f35b3480156101e757600080fd5b506100b2600160a060020a0360043516610599565b34801561020857600080fd5b506100b26105b4565b600054600160a060020a031681565b600154600160a060020a031681565b60026020526000908152604090205460ff1681565b600080600080600080878761025982826105c3565b600160a060020a03808b1660009081526005602090815260408083205481517f50d25bcd00000000000000000000000000000000000000000000000000000000815291519416936350d25bcd93600480840194938390030190829087803b1580156102c357600080fd5b505af11580156102d7573d6000803e3d6000fd5b505050506040513d60208110156102ed57600080fd5b5051600160a060020a03808b1660009081526005602090815260408083205481517f50d25bcd0000000000000000000000000000000000000000000000000000000081529151959b50909316936350d25bcd93600480820194918390030190829087803b15801561035d57600080fd5b505af1158015610371573d6000803e3d6000fd5b505050506040513d602081101561038757600080fd5b5051600160a060020a03808c1660009081526002602052604080822054928d16825290205491965060ff9081169550169250828411156103e0576103d98560ff85870316600a0a63ffffffff61066916565b9450610409565b8260ff168460ff161015610409576104068660ff86860316600a0a63ffffffff61066916565b95505b5093989297509195505050505050565b600080600080600061042b8787610244565b915091508181610439610457565b94509450945050509250925092565b600354600160a060020a031681565b6000806000600360009054906101000a9004600160a060020a0316600160a060020a0316638205bf6a6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156104c857600080fd5b505af11580156104dc573d6000803e3d6000fd5b505050506040513d60208110156104f257600080fd5b505160048054604080517f8205bf6a0000000000000000000000000000000000000000000000000000000081529051939550600160a060020a0390911692638205bf6a928281019260209291908290030181600087803b15801561055557600080fd5b505af1158015610569573d6000803e3d6000fd5b505050506040513d602081101561057f57600080fd5b505190508082116105905780610592565b815b9250505090565b600560205260009081526040902054600160a060020a031681565b600454600160a060020a031681565b6105cd82826106ed565b600160a060020a03828116600090815260056020526040902054161580159061060f5750600160a060020a038181166000908152600560205260409020541615155b1515610665576040805160e560020a62461bcd02815260206004820152601560248201527f4552525f554e535550504f525445445f544f4b454e0000000000000000000000604482015290519081900360640190fd5b5050565b60008083151561067c57600091506106e6565b5082820282848281151561068c57fe5b04146106e2576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b8091505b5092915050565b6106f682610763565b6106ff81610763565b600160a060020a038281169082161415610665576040805160e560020a62461bcd02815260206004820152601060248201527f4552525f53414d455f4144445245535300000000000000000000000000000000604482015290519081900360640190fd5b600160a060020a03811615156107c3576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b505600a165627a7a72305820cbe01ca5d8106253df6f9a272819eaf7073655d80bfe9974cf71d48b1af26f530029a165627a7a723058206ec04e3e8dfaba1e7a3aa666d6e6a719e372b861cdadcba2f873f5b72a9775220029", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x4B JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x1B27444E DUP2 EQ PUSH2 0x50 JUMPI DUP1 PUSH4 0x3E8FF43F EQ PUSH2 0xB9 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x90 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x44 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x64 CALLDATALOAD AND PUSH2 0xE5 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xC5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xCE PUSH2 0x151 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0xFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP5 DUP5 DUP5 DUP5 PUSH2 0xF3 PUSH2 0x156 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP5 DUP6 AND DUP2 MSTORE SWAP3 DUP5 AND PUSH1 0x20 DUP5 ADD MSTORE SWAP1 DUP4 AND PUSH1 0x40 DUP1 DUP5 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP3 AND PUSH1 0x60 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x80 ADD SWAP1 PUSH1 0x0 CREATE DUP1 ISZERO DUP1 ISZERO PUSH2 0x147 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xB40 DUP1 PUSH2 0x167 DUP4 CODECOPY ADD SWAP1 JUMP STOP PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH1 0x80 DUP1 PUSH2 0xB40 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 SWAP1 DUP2 MSTORE DUP2 MLOAD PUSH1 0x20 DUP4 ADD MLOAD SWAP2 DUP4 ADD MLOAD PUSH1 0x60 SWAP1 SWAP4 ADD MLOAD SWAP1 SWAP3 SWAP1 DUP4 DUP4 PUSH2 0x4C DUP3 DUP3 PUSH5 0x100000000 PUSH2 0x168 DUP2 MUL DIV JUMP JUMPDEST DUP4 DUP4 PUSH2 0x61 DUP3 DUP3 PUSH5 0x100000000 PUSH2 0x168 DUP2 MUL DIV JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP12 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT SWAP3 DUP4 AND OR SWAP1 SWAP3 SSTORE PUSH1 0x1 DUP1 SLOAD SWAP3 DUP11 AND SWAP3 SWAP1 SWAP2 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0xA3 DUP9 PUSH5 0x100000000 PUSH2 0x20B DUP2 MUL DIV JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP10 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0xFF SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0xDF DUP8 PUSH5 0x100000000 PUSH2 0x20B DUP2 MUL DIV JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP8 DUP9 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH1 0xFF SWAP7 SWAP1 SWAP7 AND PUSH1 0xFF NOT SWAP1 SWAP7 AND SWAP6 SWAP1 SWAP6 OR SWAP1 SWAP5 SSTORE PUSH1 0x3 DUP1 SLOAD SWAP11 DUP13 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT SWAP12 DUP13 AND DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x4 DUP1 SLOAD SWAP11 DUP14 AND SWAP11 DUP13 AND DUP12 OR SWAP1 SSTORE SWAP12 SWAP1 SWAP11 AND DUP2 MSTORE PUSH1 0x5 SWAP1 SWAP10 MSTORE DUP2 DUP10 KECCAK256 DUP1 SLOAD DUP10 AND SWAP1 SWAP11 OR SWAP1 SWAP10 SSTORE SWAP8 DUP8 MSTORE POP POP POP SWAP4 SWAP1 SWAP3 KECCAK256 DUP1 SLOAD SWAP1 SWAP2 AND SWAP1 SWAP2 OR SWAP1 SSTORE POP PUSH2 0x33F JUMP JUMPDEST PUSH2 0x17A DUP3 PUSH5 0x100000000 PUSH2 0x2C5 DUP2 MUL DIV JUMP JUMPDEST PUSH2 0x18C DUP2 PUSH5 0x100000000 PUSH2 0x2C5 DUP2 MUL DIV JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP1 DUP3 AND EQ ISZERO PUSH2 0x207 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F4144445245535300000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 AND PUSH20 0xEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE EQ ISZERO PUSH2 0x23A JUMPI POP PUSH1 0x12 PUSH2 0x2C0 JUMP JUMPDEST DUP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x313CE567 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH29 0x100000000000000000000000000000000000000000000000000000000 MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x291 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2A5 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2BB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0x33C JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x7F2 DUP1 PUSH2 0x34E PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x98 JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0xFC63D10 DUP2 EQ PUSH2 0x9D JUMPI DUP1 PUSH4 0x5F64B55B EQ PUSH2 0xCE JUMPI DUP1 PUSH4 0x8EE573AC EQ PUSH2 0xE3 JUMPI DUP1 PUSH4 0xAE818004 EQ PUSH2 0x11A JUMPI DUP1 PUSH4 0xB1772D7A EQ PUSH2 0x15A JUMPI DUP1 PUSH4 0xB9E1715B EQ PUSH2 0x19F JUMPI DUP1 PUSH4 0xC8F33C91 EQ PUSH2 0x1B4 JUMPI DUP1 PUSH4 0xCBD962D1 EQ PUSH2 0x1DB JUMPI DUP1 PUSH4 0xF997FDA7 EQ PUSH2 0x1FC JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB2 PUSH2 0x211 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xDA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB2 PUSH2 0x220 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xEF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x104 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x22F JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x126 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x141 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH2 0x244 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x166 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x181 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH2 0x419 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP4 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP3 SWAP1 SWAP3 MSTORE DUP3 DUP3 ADD MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1AB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB2 PUSH2 0x448 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1C0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1C9 PUSH2 0x457 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1E7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x599 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x208 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB2 PUSH2 0x5B4 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 DUP8 DUP8 PUSH2 0x259 DUP3 DUP3 PUSH2 0x5C3 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD DUP2 MLOAD PUSH32 0x50D25BCD00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP2 MLOAD SWAP5 AND SWAP4 PUSH4 0x50D25BCD SWAP4 PUSH1 0x4 DUP1 DUP5 ADD SWAP5 SWAP4 DUP4 SWAP1 SUB ADD SWAP1 DUP3 SWAP1 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2C3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2D7 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2ED JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD DUP2 MLOAD PUSH32 0x50D25BCD00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP2 MLOAD SWAP6 SWAP12 POP SWAP1 SWAP4 AND SWAP4 PUSH4 0x50D25BCD SWAP4 PUSH1 0x4 DUP1 DUP3 ADD SWAP5 SWAP2 DUP4 SWAP1 SUB ADD SWAP1 DUP3 SWAP1 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x35D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x371 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x387 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP13 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SLOAD SWAP3 DUP14 AND DUP3 MSTORE SWAP1 KECCAK256 SLOAD SWAP2 SWAP7 POP PUSH1 0xFF SWAP1 DUP2 AND SWAP6 POP AND SWAP3 POP DUP3 DUP5 GT ISZERO PUSH2 0x3E0 JUMPI PUSH2 0x3D9 DUP6 PUSH1 0xFF DUP6 DUP8 SUB AND PUSH1 0xA EXP PUSH4 0xFFFFFFFF PUSH2 0x669 AND JUMP JUMPDEST SWAP5 POP PUSH2 0x409 JUMP JUMPDEST DUP3 PUSH1 0xFF AND DUP5 PUSH1 0xFF AND LT ISZERO PUSH2 0x409 JUMPI PUSH2 0x406 DUP7 PUSH1 0xFF DUP7 DUP7 SUB AND PUSH1 0xA EXP PUSH4 0xFFFFFFFF PUSH2 0x669 AND JUMP JUMPDEST SWAP6 POP JUMPDEST POP SWAP4 SWAP9 SWAP3 SWAP8 POP SWAP2 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x42B DUP8 DUP8 PUSH2 0x244 JUMP JUMPDEST SWAP2 POP SWAP2 POP DUP2 DUP2 PUSH2 0x439 PUSH2 0x457 JUMP JUMPDEST SWAP5 POP SWAP5 POP SWAP5 POP POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x3 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x8205BF6A PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH29 0x100000000000000000000000000000000000000000000000000000000 MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x4C8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x4DC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x4F2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x4 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x8205BF6A00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD SWAP4 SWAP6 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP2 AND SWAP3 PUSH4 0x8205BF6A SWAP3 DUP3 DUP2 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x555 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x569 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x57F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 POP DUP1 DUP3 GT PUSH2 0x590 JUMPI DUP1 PUSH2 0x592 JUMP JUMPDEST DUP2 JUMPDEST SWAP3 POP POP POP SWAP1 JUMP JUMPDEST PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH2 0x5CD DUP3 DUP3 PUSH2 0x6ED JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD AND ISZERO DUP1 ISZERO SWAP1 PUSH2 0x60F JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD AND ISZERO ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x665 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F554E535550504F525445445F544F4B454E0000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 ISZERO ISZERO PUSH2 0x67C JUMPI PUSH1 0x0 SWAP2 POP PUSH2 0x6E6 JUMP JUMPDEST POP DUP3 DUP3 MUL DUP3 DUP5 DUP3 DUP2 ISZERO ISZERO PUSH2 0x68C JUMPI INVALID JUMPDEST DIV EQ PUSH2 0x6E2 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP1 SWAP2 POP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x6F6 DUP3 PUSH2 0x763 JUMP JUMPDEST PUSH2 0x6FF DUP2 PUSH2 0x763 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP1 DUP3 AND EQ ISZERO PUSH2 0x665 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F4144445245535300000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0x7C3 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP JUMP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 0xcb 0xe0 SHR 0xa5 0xd8 LT PUSH3 0x53DF6F SWAP11 0x27 0x28 NOT 0xea 0xf7 SMOD CALLDATASIZE SSTORE 0xd8 SIGNEXTEND INVALID SWAP10 PUSH21 0xCF71D48B1AF26F530029A165627A7A723058206EC0 0x4e RETURNDATACOPY DUP14 STATICCALL 0xba 0x1e PUSH27 0x3AA666D6E6A719E372B861CDADCBA2F873F5B72A97752200290000 ", + "sourceMap": "191:1162:27:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;938:412;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;938:412:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;407:81;;8:9:-1;5:2;;;30:1;27;20:12;5:2;407:81:27;;;;;;;;;;;;;;;;;;;;;;;938:412;1196:12;1249:20;1271:22;1295:21;1318:23;1233:109;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1233:109:27;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;1226:116:27;938:412;-1:-1:-1;;;;;938:412:27:o;407:81::-;479:1;407:81;:::o;191:1162::-;;;;;;;;;;:::o" + }, + "methodIdentifiers": { + "converterType()": "3e8ff43f", + "createPriceOracle(address,address,address,address)": "1b27444e" + } + }, + "userdoc": { + "methods": {} + } + } + }, + "solidity/contracts/converter/types/liquidity-pool-v2/LiquidityPoolV2ConverterFactory.sol": { + "LiquidityPoolV2ConverterFactory": { + "abi": [ + { + "constant": false, + "inputs": [ + { + "name": "_anchor", + "type": "address" + }, + { + "name": "_registry", + "type": "address" + }, + { + "name": "_maxConversionFee", + "type": "uint32" + } + ], + "name": "createConverter", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "converterType", + "outputs": [ + { + "name": "", + "type": "uint16" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + } + ], + "devdoc": { + "methods": { + "converterType()": { + "details": "returns the converter type the factory is associated with\r ", + "return": "converter type\r" + }, + "createConverter(address,address,uint32)": { + "details": "creates a new converter with the given arguments and transfers\r the ownership to the caller\r ", + "params": { + "_anchor": "anchor governed by the converter\r", + "_maxConversionFee": "maximum conversion fee, represented in ppm\r ", + "_registry": "address of a contract registry contract\r" + }, + "return": "new converter\r" + } + } + }, + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b506157d0806100206000396000f30060806040526004361061004b5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631141395881146100505780633e8ff43f146100b6575b600080fd5b34801561005c57600080fd5b5061008d73ffffffffffffffffffffffffffffffffffffffff6004358116906024351663ffffffff604435166100e2565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b3480156100c257600080fd5b506100cb6101d5565b6040805161ffff9092168252519081900360200190f35b6000808484846100f06101da565b73ffffffffffffffffffffffffffffffffffffffff938416815291909216602082015263ffffffff9091166040808301919091525190819003606001906000f080158015610142573d6000803e3d6000fd5b50604080517ff2fde38b000000000000000000000000000000000000000000000000000000008152336004820152905191925073ffffffffffffffffffffffffffffffffffffffff83169163f2fde38b9160248082019260009290919082900301818387803b1580156101b457600080fd5b505af11580156101c8573d6000803e3d6000fd5b5092979650505050505050565b600290565b6040516155ba806101eb833901905600608060405260016004819055600980546001606060020a03191690556015805460ff19169091179055620111706016553480156200003c57600080fd5b50604051606080620055ba83398101604090815281516020830151919092015160008054600160a060020a0319163317905582828282828281806200008a8164010000000062000137810204565b5060028054600160a060020a03909216600160a060020a031992831681179091556003805490921617905582620000ca8164010000000062000137810204565b81620000df81640100000000620001b2810204565b505060058054600160a060020a03909416600160a060020a031990941693909317909255506009805463ffffffff9092166401000000000267ffffffff0000000019909216919091179055506200022b945050505050565b600160a060020a0381161515620001af57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b50565b620f424063ffffffff82161115620001af57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f4552525f494e56414c49445f434f4e56455253494f4e5f464545000000000000604482015290519081900360640190fd5b61537f806200023b6000396000f3006080604052600436106103125763ffffffff60e060020a6000350416625e319c81146103b0578063024c7ec7146103e35780630337e3fb146103fd5780630a55fb3d1461042e5780630c7d5cd8146104575780630e53aae914610485578063119b90cd146104da57806312c2aca41461050757806316912f961461051c57806319b64015146105315780631cfab290146105495780631e1401f81461056a57806321e6b53d146105ad57806322f3e2d4146105ce5780632630c12f146105e35780632bd3c107146105f85780632bf0c985146106195780632fe8a6ad1461063a57806338a5e0161461064f578063395900d4146106645780633e8ff43f1461068e57806346749468146106ba57806349d10b64146106d55780634af80f0e146106ea57806354fd4d501461070b57806355776b77146107205780635768adcf1461073a578063579cd3ca1461075b5780635e35359e1461077057806361cd756e1461079a57806367b6d57c146107af57806369067d95146107d0578063690d8320146107f457806369d1354a146108155780636a49d2c41461082d57806371f52bf31461085757806379ba50971461086c5780637b103999146108815780638da5cb5b1461089657806394c275ad146108ab57806398a71dcb146108c05780639b99a8e2146108e1578063a32bff44146108f6578063af94b8d81461090b578063b4a176d314610935578063bf7545581461094a578063bf7da6ba1461095f578063c3321fb014610983578063c45d3d9214610998578063cdc91c69146109ad578063d031370b146109c2578063d260529c146109da578063d3fb73b4146109ef578063d4ee1d9014610a04578063d55ec69714610a19578063d64c5a1a14610a2e578063d66bd52414610a59578063d895951214610a7a578063db2830a414610a9b578063dc75eb9a14610ab0578063dc8de37914610ac5578063e38192e314610ae6578063e8104af914610b0d578063e8dc12ff14610b22578063ec2240f514610b4c578063ecbca55d14610b61578063f2fde38b14610b7f578063f9cddde214610ba0578063fc0c546a14610bb5575b6000805160206152f483398151915260005260086020527f353c2eb9e53a4a4a6d45d72082ff2e9dc829d1125618772a83eb0e7f86632c43546601000000000000900460ff1615156103ae576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f5245534552564500000000000000000000000000604482015290519081900360640190fd5b005b3480156103bc57600080fd5b506103d1600160a060020a0360043516610bca565b60408051918252519081900360200190f35b3480156103ef57600080fd5b506103ae6004351515610bf3565b34801561040957600080fd5b50610412610c3b565b60408051600160a060020a039092168252519081900360200190f35b34801561043a57600080fd5b50610443610c4a565b604080519115158252519081900360200190f35b34801561046357600080fd5b5061046c610c53565b6040805163ffffffff9092168252519081900360200190f35b34801561049157600080fd5b506104a6600160a060020a0360043516610c5f565b6040805195865263ffffffff9094166020860152911515848401521515606084015215156080830152519081900360a00190f35b3480156104e657600080fd5b506103ae600160a060020a0360043581169060243581169060443516610cfa565b34801561051357600080fd5b50610443611464565b34801561052857600080fd5b506103ae6114ad565b34801561053d57600080fd5b506104126004356114c1565b34801561055557600080fd5b5061046c600160a060020a03600435166114ed565b34801561057657600080fd5b50610594600160a060020a036004358116906024351660443561151f565b6040805192835260208301919091528051918290030190f35b3480156105b957600080fd5b506103ae600160a060020a0360043516611539565b3480156105da57600080fd5b5061044361154d565b3480156105ef57600080fd5b50610412611582565b34801561060457600080fd5b506103d1600160a060020a03600435166115a1565b34801561062557600080fd5b506103d1600160a060020a03600435166115f6565b34801561064657600080fd5b506104436116d9565b34801561065b57600080fd5b506103ae6116fa565b34801561067057600080fd5b506103ae600160a060020a036004358116906024351660443561170c565b34801561069a57600080fd5b506106a36117a7565b6040805161ffff9092168252519081900360200190f35b3480156106c657600080fd5b506103ae6004356024356117ac565b3480156106e157600080fd5b506103ae611830565b3480156106f657600080fd5b506103ae600160a060020a0360043516611a90565b34801561071757600080fd5b506106a3611ac5565b6103d1600160a060020a0360043516602435604435611aca565b34801561074657600080fd5b50610412600160a060020a0360043516612033565b34801561076757600080fd5b5061046c612051565b34801561077c57600080fd5b506103ae600160a060020a0360043581169060243516604435612069565b3480156107a657600080fd5b5061041261217d565b3480156107bb57600080fd5b506103ae600160a060020a036004351661218c565b3480156107dc57600080fd5b50610594600160a060020a036004351660243561222f565b34801561080057600080fd5b506103ae600160a060020a036004351661238a565b34801561082157600080fd5b506103ae60043561248f565b34801561083957600080fd5b506103ae600160a060020a036004351663ffffffff60243516612534565b34801561086357600080fd5b506106a3612593565b34801561087857600080fd5b506103ae61259d565b34801561088d57600080fd5b50610412612651565b3480156108a257600080fd5b50610412612660565b3480156108b757600080fd5b5061046c61266f565b3480156108cc57600080fd5b506103d1600160a060020a0360043516612683565b3480156108ed57600080fd5b506106a3612695565b34801561090257600080fd5b5061059461269b565b34801561091757600080fd5b50610594600160a060020a03600435811690602435166044356126a4565b34801561094157600080fd5b506103ae612848565b34801561095657600080fd5b50610443612874565b34801561096b57600080fd5b506103ae600160a060020a0360043516602435612879565b34801561098f57600080fd5b506103d16128c1565b3480156109a457600080fd5b506104126128c7565b3480156109b957600080fd5b506103ae6128d6565b3480156109ce57600080fd5b5061041260043561292f565b3480156109e657600080fd5b50610443612957565b3480156109fb57600080fd5b5061041261295c565b348015610a1057600080fd5b5061041261296b565b348015610a2557600080fd5b506103ae61297a565b348015610a3a57600080fd5b50610a43612a6f565b6040805160ff9092168252519081900360200190f35b348015610a6557600080fd5b506104a6600160a060020a0360043516612a74565b348015610a8657600080fd5b506103d1600160a060020a0360043516612aba565b348015610aa757600080fd5b50610594612acb565b348015610abc57600080fd5b50610412612af0565b348015610ad157600080fd5b506103d1600160a060020a0360043516612aff565b348015610af257600080fd5b506103d1600160a060020a0360043516602435604435612b28565b348015610b1957600080fd5b506103d1612e8d565b6103d1600160a060020a036004358116906024358116906044359060643581169060843516612e93565b348015610b5857600080fd5b506105946130e6565b348015610b6d57600080fd5b506103ae63ffffffff60043516613166565b348015610b8b57600080fd5b506103ae600160a060020a036004351661325b565b348015610bac57600080fd5b506105946132eb565b348015610bc157600080fd5b506104126132f4565b600081610bd681613303565b5050600160a060020a03166000908152600c602052604090205490565b610bfb613382565b60038054911515740100000000000000000000000000000000000000000274ff000000000000000000000000000000000000000019909216919091179055565b600a54600160a060020a031681565b60155460ff1681565b60095463ffffffff1681565b6000806000806000610c6f61526f565b50505050600160a060020a03929092166000908152600860209081526040808320815160a081018352815480825260019092015463ffffffff811694820185905260ff64010000000082048116151594830194909452650100000000008104841615156060830152660100000000000090049092161515608090920182905295919450919250829190565b6000806000806000610d0a6133d2565b610d12613382565b87610d1c81613303565b87610d268161342f565b87610d308161342f565b89610d3a81613490565b89610d4481613490565b600554604080517f8da5cb5b00000000000000000000000000000000000000000000000000000000815290513092600160a060020a031691638da5cb5b9160048083019260209291908290030181600087803b158015610da357600080fd5b505af1158015610db7573d6000803e3d6000fd5b505050506040513d6020811015610dcd57600080fd5b5051600160a060020a031614610e2d576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f414e43484f525f4e4f545f4f574e4544000000000000000000000000604482015290519081900360640190fd5b610e567f436861696e6c696e6b4f7261636c6557686974656c69737400000000000000006134f0565b995089600160a060020a0316633af32abf8d6040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b158015610eb357600080fd5b505af1158015610ec7573d6000803e3d6000fd5b505050506040513d6020811015610edd57600080fd5b50511515610f35576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f494e56414c49445f4f5241434c450000000000000000000000000000604482015290519081900360640190fd5b89600160a060020a0316633af32abf8c6040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b158015610f9057600080fd5b505af1158015610fa4573d6000803e3d6000fd5b505050506040513d6020811015610fba57600080fd5b50511515611012576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f494e56414c49445f4f5241434c450000000000000000000000000000604482015290519081900360640190fd5b61101a613588565b600a8054600160a060020a031916600160a060020a038f1617905560078054600090811061104457fe5b600091825260209091200154600160a060020a038e8116911614156110a25760078054600190811061107257fe5b600091825260209091200154600b8054600160a060020a031916600160a060020a039092169190911790556110dd565b6007805460009081106110b157fe5b600091825260209091200154600b8054600160a060020a031916600160a060020a039092169190911790555b6111067f436f6e766572746572466163746f7279000000000000000000000000000000006134f0565b600160a060020a031663c977aed261111c6117a7565b6040518263ffffffff1660e060020a028152600401808261ffff1661ffff168152602001915050602060405180830381600087803b15801561115d57600080fd5b505af1158015611171573d6000803e3d6000fd5b505050506040513d602081101561118757600080fd5b8101908080519060200190929190505050985088600160a060020a0316631b27444e8e600b60009054906101000a9004600160a060020a03168f8f6040518563ffffffff1660e060020a0281526004018085600160a060020a0316600160a060020a0316815260200184600160a060020a0316600160a060020a0316815260200183600160a060020a0316600160a060020a0316815260200182600160a060020a0316600160a060020a03168152602001945050505050602060405180830381600087803b15801561125857600080fd5b505af115801561126c573d6000803e3d6000fd5b505050506040513d602081101561128257600080fd5b5051600980546bffffffffffffffffffffffff166c01000000000000000000000000600160a060020a0393841681029190911791829055600a54600b54604080517fae818004000000000000000000000000000000000000000000000000000000008152928616600484015290851660248301528051929093049093169263ae8180049260448083019391928290030181600087803b15801561132457600080fd5b505af1158015611338573d6000803e3d6000fd5b505050506040513d604081101561134e57600080fd5b5080516020909101516010819055600f8290556012919091556013556113726137c4565b601155600a5461138a90600160a060020a0316610bca565b600a549098506113a290600160a060020a0316612aff565b600b549097506113ba90600160a060020a0316612aff565b9550868814156113e55760008811806113d35750600086115b156113e0576113e06137c8565b61140e565b6000881180156113f55750600087115b80156114015750600086115b1561140e5761140e6137c8565b600554600190600160a060020a03166114256117a7565b61ffff167f6b08c2e2c9969e55a647a764db9b554d64dc42f1a704da11a6d5b129ad163f2c60405160405180910390a450505050505050505050505050565b6000805160206152f483398151915260005260086020527f353c2eb9e53a4a4a6d45d72082ff2e9dc829d1125618772a83eb0e7f86632c43546601000000000000900460ff1690565b6114b5613382565b6015805460ff19169055565b60006007828154811015156114d257fe5b600091825260209091200154600160a060020a031692915050565b6000816114f981613303565b5050600160a060020a031660009081526008602052604090206001015463ffffffff1690565b60008061152d8585856126a4565b91509150935093915050565b611541613382565b61154a8161218c565b50565b6000611557613840565b801561157d57506009546c010000000000000000000000009004600160a060020a031615155b905090565b6009546c010000000000000000000000009004600160a060020a031681565b6000816115ad81613303565b6115ef6115b984612aff565b600160a060020a0385166000908152600c60205260409020546115e390601363ffffffff6138da16565b9063ffffffff61395e16565b9392505050565b600080600080600085600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561163c57600080fd5b505af1158015611650573d6000803e3d6000fd5b505050506040513d602081101561166657600080fd5b5051600160a060020a038088166000908152600e602052604090205491955016925061169183612aff565b600160a060020a0384166000908152600c602052604090205490925090506116cf816116c3848763ffffffff6138da16565b9063ffffffff6139bb16565b9695505050505050565b60035474010000000000000000000000000000000000000000900460ff1681565b611702613382565b61170a6128d6565b565b611714613382565b600554604080517f5e35359e000000000000000000000000000000000000000000000000000000008152600160a060020a03868116600483015285811660248301526044820185905291519190921691635e35359e91606480830192600092919082900301818387803b15801561178a57600080fd5b505af115801561179e573d6000803e3d6000fd5b50505050505050565b600290565b6117b4613382565b8160146000600760008154811015156117c957fe5b6000918252602080832090910154600160a060020a031683528201929092526040018120919091556007805483926014929091600190811061180757fe5b6000918252602080832090910154600160a060020a031683528201929092526040019020555050565b60008054600160a060020a0316331480611865575060035474010000000000000000000000000000000000000000900460ff16155b15156118a9576040805160e560020a62461bcd0281526020600482015260116024820152600080516020615314833981519152604482015290519081900360640190fd5b6118d27f436f6e74726163745265676973747279000000000000000000000000000000006134f0565b600254909150600160a060020a038083169116148015906118fb5750600160a060020a03811615155b1515611951576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e56414c49445f5245474953545259000000000000000000000000604482015290519081900360640190fd5b604080517fbb34534c0000000000000000000000000000000000000000000000000000000081527f436f6e747261637452656769737472790000000000000000000000000000000060048201529051600091600160a060020a0384169163bb34534c9160248082019260209290919082900301818787803b1580156119d557600080fd5b505af11580156119e9573d6000803e3d6000fd5b505050506040513d60208110156119ff57600080fd5b5051600160a060020a03161415611a60576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e56414c49445f5245474953545259000000000000000000000000604482015290519081900360640190fd5b6002805460038054600160a060020a03808416600160a060020a0319928316179092559091169216919091179055565b611a98613382565b80611aa28161342f565b5060068054600160a060020a031916600160a060020a0392909216919091179055565b602081565b6000806000806000611ada613a29565b6002600455611ae7613a83565b87611af181613303565b87611afb81613ae1565b87611b0581613ae1565b600160a060020a038b166000805160206152f483398151915214611b2a573415611b2e565b8934145b1515611b84576040805160e560020a62461bcd02815260206004820152601760248201527f4552525f4554485f414d4f554e545f4d49534d41544348000000000000000000604482015290519081900360640190fd5b611b8c613b39565b600160a060020a038b166000805160206152f48339815191521415611c2e576000805160206152f483398151915260005260086020527f353c2eb9e53a4a4a6d45d72082ff2e9dc829d1125618772a83eb0e7f86632c4254611bf4903463ffffffff613b7b16565b6000805160206152f483398151915260005260086020527f353c2eb9e53a4a4a6d45d72082ff2e9dc829d1125618772a83eb0e7f86632c42555b600160a060020a038b166000908152600c602052604090205460155490975060ff1615611cf757600160a060020a038b166000908152601460205260409020541580611ca15750600160a060020a038b16600090815260146020526040902054611c9e888c63ffffffff61395e16565b11155b1515611cf7576040805160e560020a62461bcd02815260206004820152601e60248201527f4552525f4d41585f5354414b45445f42414c414e43455f524541434845440000604482015290519081900360640190fd5b600160a060020a03808c166000908152600d602090815260408083205481517f18160ddd00000000000000000000000000000000000000000000000000000000815291519416995089936318160ddd93600480840194938390030190829087803b158015611d6457600080fd5b505af1158015611d78573d6000803e3d6000fd5b505050506040513d6020811015611d8e57600080fd5b50519450600160a060020a038b166000805160206152f483398151915214611dbc57611dbc8b33308d613bdb565b600160a060020a038b16600090815260086020526040902054611de5908b63ffffffff61395e16565b600160a060020a038c16600090815260086020526040902055611e0e878b63ffffffff61395e16565b600160a060020a038c166000908152600c60205260408120919091559350861580611e37575084155b15611e4457899350611e5b565b611e58876116c38c8863ffffffff6138da16565b93505b88841015611eb3576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f52455455524e5f544f4f5f4c4f570000000000000000000000000000604482015290519081900360640190fd5b600554604080517fc6c3bbe6000000000000000000000000000000000000000000000000000000008152600160a060020a038981166004830152336024830152604482018890529151919092169163c6c3bbe691606480830192600092919082900301818387803b158015611f2757600080fd5b505af1158015611f3b573d6000803e3d6000fd5b50505050611f476137c8565b600160a060020a038b16337f4a1a2a6176e9646d9e3157f7c2ab3c499f18337c0b0828cfb28e0a61de4a11f78c611f848b8263ffffffff61395e16565b611f948a8a63ffffffff61395e16565b60408051938452602084019290925282820152519081900360600190a3611fcb86611fc5878763ffffffff61395e16565b8d613cc3565b61202060076000815481101515611fde57fe5b60009182526020909120015460078054600160a060020a0390921691600190811061200557fe5b6000918252602082200154600160a060020a03169080613d23565b5050600160045550979650505050505050565b600160a060020a039081166000908152600d60205260409020541690565b60095468010000000000000000900463ffffffff1681565b6000612073613a29565b6002600455612080613382565b6120976000805160206152d48339815191526134f0565b600160a060020a0385166000908152600860205260409020600101549091506601000000000000900460ff1615806120d457506120d261154d565b155b806120ec5750600054600160a060020a038281169116145b1515612130576040805160e560020a62461bcd0281526020600482015260116024820152600080516020615314833981519152604482015290519081900360640190fd5b61213b848484613d8f565b600160a060020a0384166000908152600860205260409020600101546601000000000000900460ff16156121725761217284613dc0565b505060016004555050565b600354600160a060020a031681565b612194613382565b6000805160206152d48339815191526121ac81613eb4565b600554604080517ff2fde38b000000000000000000000000000000000000000000000000000000008152600160a060020a0385811660048301529151919092169163f2fde38b91602480830192600092919082900301818387803b15801561221357600080fd5b505af1158015612227573d6000803e3d6000fd5b505050505050565b6000806000806000806000806000808b600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561227c57600080fd5b505af1158015612290573d6000803e3d6000fd5b505050506040513d60208110156122a657600080fd5b5051600160a060020a03808e166000908152600e60209081526040808320549093168252600c905220549098509650878b101561237157600a54600160a060020a03166000908152600c602052604090205461230990601463ffffffff6138da16565b600a5490965061232190600160a060020a03166115a1565b9450848610612331578486612334565b85855b909450925061234d886116c38d8a63ffffffff6138da16565b9150612363836116c3848763ffffffff6138da16565b99505088810397508861237b565b9598506000975088955b50505050505050509250929050565b6000612394613a29565b60026004556123a1613382565b6000805160206152f48339815191526123b981613303565b6123d06000805160206152d48339815191526134f0565b91506123da61154d565b15806123f35750600054600160a060020a038381169116145b1515612437576040805160e560020a62461bcd0281526020600482015260116024820152600080516020615314833981519152604482015290519081900360640190fd5b604051600160a060020a03841690303180156108fc02916000818181858888f1935050505015801561246d573d6000803e3d6000fd5b506124856000805160206152f4833981519152613dc0565b5050600160045550565b612497613382565b620186a08111156124f2576040805160e560020a62461bcd02815260206004820152601e60248201527f4552525f494e56414c49445f44594e414d49435f4645455f464143544f520000604482015290519081900360640190fd5b601654604080519182526020820183905280517f382fd3516344712a511dcd464ff8e6ab54139d6a28f64087a3253353ee7a56799281900390910190a1601655565b600261253e612695565b61ffff1610612585576040805160e560020a62461bcd0281526020600482015260196024820152600080516020615334833981519152604482015290519081900360640190fd5b61258f8282613f0a565b5050565b600061157d612695565b600154600160a060020a031633146125ed576040805160e560020a62461bcd0281526020600482015260116024820152600080516020615314833981519152604482015290519081900360640190fd5b60015460008054604051600160a060020a0393841693909116917f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91a36001805460008054600160a060020a0319908116600160a060020a03841617909155169055565b600254600160a060020a031681565b600054600160a060020a031681565b600954640100000000900463ffffffff1681565b60146020526000908152604090205481565b60075490565b600f5460105482565b6000806000806126b261529d565b6000806000806126c0613a83565b6126c98c613303565b6126d28b613303565b600160a060020a038c8116908c161415612736576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f53414d455f534f555243455f54415247455400000000000000000000604482015290519081900360640190fd5b61273e6137c4565b60115414156127e557600f604080519081016040529081600082015481526020016001820154815250509450600860008d600160a060020a0316600160a060020a0316815260200190815260200160002060010160009054906101000a900463ffffffff169650600860008c600160a060020a0316600160a060020a0316815260200190815260200160002060010160009054906101000a900463ffffffff169550612825565b6127ed61413c565b94506127f885614380565b600a549195509350600160a060020a038d81169116141561281e57839650829550612825565b8296508395505b6128338c8c8989898f6144aa565b919e919d50909b505050505050505050505050565b612850613382565b60035460028054600160a060020a031916600160a060020a03909216919091179055565b600181565b612881613382565b6000805160206152d483398151915261289981613eb4565b826128a381613303565b5050600160a060020a039091166000908152600c6020526040902055565b60115481565b600654600160a060020a031681565b60016128e0612695565b61ffff1611612927576040805160e560020a62461bcd0281526020600482015260196024820152600080516020615334833981519152604482015290519081900360640190fd5b61170a614646565b600780548290811061293d57fe5b600091825260209091200154600160a060020a0316905081565b600190565b600554600160a060020a031681565b600154600160a060020a031681565b6000612984613382565b61299b6000805160206152d48339815191526134f0565b600554909150600090600160a060020a03166129b56117a7565b61ffff167f6b08c2e2c9969e55a647a764db9b554d64dc42f1a704da11a6d5b129ad163f2c60405160405180910390a46129ee8161325b565b604080517f90f58c96000000000000000000000000000000000000000000000000000000008152602060048201529051600160a060020a038316916390f58c9691602480830192600092919082900301818387803b158015612a4f57600080fd5b505af1158015612a63573d6000803e3d6000fd5b5050505061154a61259d565b601490565b6008602052600090815260409020805460019091015463ffffffff81169060ff640100000000820481169165010000000000810482169166010000000000009091041685565b6000612ac582612aff565b92915050565b600080612ad661529d565b612ade61413c565b80516020909101519094909350915050565b600b54600160a060020a031681565b600081612b0b81613303565b5050600160a060020a031660009081526008602052604090205490565b600080600080600080612b39613a29565b6002600455612b46613a83565b88612b5081614712565b88612b5a81613ae1565b88612b6481613ae1565b612b6c613b39565b8b600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015612baa57600080fd5b505af1158015612bbe573d6000803e3d6000fd5b505050506040513d6020811015612bd457600080fd5b50519750612be28c8c61222f565b50965089871015612c3d576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f52455455524e5f544f4f5f4c4f570000000000000000000000000000604482015290519081900360640190fd5b600e60008d600160a060020a0316600160a060020a0316815260200190815260200160002060009054906101000a9004600160a060020a03169550600560009054906101000a9004600160a060020a0316600160a060020a031663f6b911bc8d338e6040518463ffffffff1660e060020a0281526004018084600160a060020a0316600160a060020a0316815260200183600160a060020a0316600160a060020a031681526020018281526020019350505050600060405180830381600087803b158015612d0a57600080fd5b505af1158015612d1e573d6000803e3d6000fd5b505050600160a060020a038716600090815260086020526040902054612d4b91508863ffffffff613b7b16565b600160a060020a038716600090815260086020908152604080832093909355600c90522054612d80908863ffffffff613b7b16565b600160a060020a0387166000818152600c602052604090208290559095506000805160206152f48339815191521415612de657604051339088156108fc029089906000818181858888f19350505050158015612de0573d6000803e3d6000fd5b50612df1565b612df1863389614783565b612df96137c8565b612e09888c63ffffffff613b7b16565b60408051898152602081018890528082018390529051919550600160a060020a0388169133917fbc7d19d505c7ec4db83f3b51f19fb98c4c8a99922e7839d1ee608dfbee29501b919081900360600190a3612e658c8588613cc3565b612e7860076000815481101515611fde57fe5b50506001600455509298975050505050505050565b60165481565b6000612e9d613a29565b60026004557f536f7672796e537761704e6574776f726b000000000000000000000000000000612ecc81613eb4565b600160a060020a038781169087161415612f30576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f53414d455f534f555243455f54415247455400000000000000000000604482015290519081900360640190fd5b600654600160a060020a031615806130735750600654604080517f3af32abf000000000000000000000000000000000000000000000000000000008152600160a060020a03878116600483015291519190921691633af32abf9160248083019260209291908290030181600087803b158015612fab57600080fd5b505af1158015612fbf573d6000803e3d6000fd5b505050506040513d6020811015612fd557600080fd5b505180156130735750600654604080517f3af32abf000000000000000000000000000000000000000000000000000000008152600160a060020a03868116600483015291519190921691633af32abf9160248083019260209291908290030181600087803b15801561304657600080fd5b505af115801561305a573d6000803e3d6000fd5b505050506040513d602081101561307057600080fd5b50515b15156130c9576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f4e4f545f57484954454c495354454400000000000000000000000000604482015290519081900360640190fd5b6130d6878787878761483a565b6001600455979650505050505050565b6000806130f161529d565b6000806130fc61413c565b925061310783614380565b915091506007600081548110151561311b57fe5b600091825260209091200154600a54600160a060020a03908116911614156131505763ffffffff80831695508116935061315f565b63ffffffff8082169550821693505b5050509091565b61316e613382565b60095463ffffffff640100000000909104811690821611156131da576040805160e560020a62461bcd02815260206004820152601a60248201527f4552525f494e56414c49445f434f4e56455253494f4e5f464545000000000000604482015290519081900360640190fd5b6009546040805163ffffffff6801000000000000000090930483168152918316602083015280517f81cd2ffb37dd237c0e4e2a3de5265fcf9deb43d3e7801e80db9f1ccfba7ee6009281900390910190a16009805463ffffffff90921668010000000000000000026bffffffff000000000000000019909216919091179055565b613263613382565b600054600160a060020a03828116911614156132c9576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f53414d455f4f574e4552000000000000000000000000000000000000604482015290519081900360640190fd5b60018054600160a060020a031916600160a060020a0392909216919091179055565b60125460135482565b600554600160a060020a031690565b600160a060020a0381166000908152600860205260409020600101546601000000000000900460ff16151561154a576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f5245534552564500000000000000000000000000604482015290519081900360640190fd5b600054600160a060020a0316331461170a576040805160e560020a62461bcd0281526020600482015260116024820152600080516020615314833981519152604482015290519081900360640190fd5b6133da61154d565b1561170a576040805160e560020a62461bcd02815260206004820152600a60248201527f4552525f41435449564500000000000000000000000000000000000000000000604482015290519081900360640190fd5b600160a060020a03811630141561154a576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f414444524553535f49535f53454c4600000000000000000000000000604482015290519081900360640190fd5b600160a060020a038116151561154a576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b600254604080517fbb34534c000000000000000000000000000000000000000000000000000000008152600481018490529051600092600160a060020a03169163bb34534c91602480830192602092919082900301818787803b15801561355657600080fd5b505af115801561356a573d6000803e3d6000fd5b505050506040513d602081101561358057600080fd5b505192915050565b60006060600080600080600560009054906101000a9004600160a060020a0316955085600160a060020a0316636d3e313e6040518163ffffffff1660e060020a028152600401600060405180830381600087803b1580156135e857600080fd5b505af11580156135fc573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561362557600080fd5b81019080805164010000000081111561363d57600080fd5b8201602081018481111561365057600080fd5b815185602082028301116401000000008211171561366d57600080fd5b505080516007549199501597509550600094505050505b828210156122275783156137035785600160a060020a0316639cbf9e366040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156136d057600080fd5b505af11580156136e4573d6000803e3d6000fd5b505050506040513d60208110156136fa57600080fd5b5051905061371e565b848281518110151561371157fe5b9060200190602002015190505b80600d600060078581548110151561373257fe5b600091825260208083209190910154600160a060020a03908116845290830193909352604090910190208054600160a060020a03191692909116919091179055600780548390811061378057fe5b6000918252602080832090910154600160a060020a038481168452600e90925260409092208054600160a060020a0319169190921617905560019190910190613684565b4290565b60408051808201909152600f548152601054602082015260009081906137ed90614380565b600a54600160a060020a039081166000908152600860205260408082206001908101805463ffffffff97881663ffffffff1991821617909155600b54909416835291200180549290931691161790555050565b600030600160a060020a0316600560009054906101000a9004600160a060020a0316600160a060020a0316638da5cb5b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561389f57600080fd5b505af11580156138b3573d6000803e3d6000fd5b505050506040513d60208110156138c957600080fd5b5051600160a060020a031614905090565b6000808315156138ed5760009150613957565b508282028284828115156138fd57fe5b0414613953576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b8091505b5092915050565b600082820183811015613953576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b600080808311613a15576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f4449564944455f42595f5a45524f0000000000000000000000000000604482015290519081900360640190fd5b8284811515613a2057fe5b04949350505050565b60045460011461170a576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f5245454e5452414e4359000000000000000000000000000000000000604482015290519081900360640190fd5b613a8b61154d565b151561170a576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f494e4143544956450000000000000000000000000000000000000000604482015290519081900360640190fd5b6000811161154a576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f5a45524f5f56414c5545000000000000000000000000000000000000604482015290519081900360640190fd5b60075460005b8181101561258f57613b73600782815481101515613b5957fe5b600091825260209091200154600160a060020a0316613dc0565b600101613b3f565b600081831015613bd5576040805160e560020a62461bcd02815260206004820152600d60248201527f4552525f554e444552464c4f5700000000000000000000000000000000000000604482015290519081900360640190fd5b50900390565b604080517f7472616e7366657246726f6d28616464726573732c616464726573732c75696e81527f74323536290000000000000000000000000000000000000000000000000000006020808301919091528251918290036025018220600160a060020a038088166024850152861660448401526064808401869052845180850390910181526084909301909352810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1990931692909217909152613cbd90859061492d565b50505050565b600160a060020a038082166000818152600c6020908152604091829020548251908152908101869052815192938716927f77f29993cf2c084e726f7e802da0719d6a0ade3e204badc7a3ffd57ecb768c24929181900390910190a3505050565b613d2b61529d565b613d37858585856149bb565b805160208083015160408051938452918301528051929350600160a060020a0380881693908916927f77f29993cf2c084e726f7e802da0719d6a0ade3e204badc7a3ffd57ecb768c2492908290030190a35050505050565b613d97613382565b82613da181613490565b82613dab81613490565b83613db58161342f565b612227868686614783565b80613dca81613303565b600160a060020a0382166000805160206152f48339815191521415613e0a57600160a060020a03821660009081526008602052604090203031905561258f565b604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a038416916370a082319160248083019260209291908290030181600087803b158015613e6b57600080fd5b505af1158015613e7f573d6000803e3d6000fd5b505050506040513d6020811015613e9557600080fd5b5051600160a060020a0383166000908152600860205260409020555050565b613ebd816134f0565b600160a060020a0316331461154a576040805160e560020a62461bcd0281526020600482015260116024820152600080516020615314833981519152604482015290519081900360640190fd5b6000613f14613382565b613f1c6133d2565b82613f2681613490565b83613f308161342f565b83613f3a81614a83565b600554600160a060020a03878116911614801590613f7e5750600160a060020a0386166000908152600860205260409020600101546601000000000000900460ff16155b1515613fd4576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f5245534552564500000000000000000000000000604482015290519081900360640190fd5b60095463ffffffff908116620f4240038116908616111561403f576040805160e560020a62461bcd02815260206004820152601a60248201527f4552525f494e56414c49445f524553455256455f574549474854000000000000604482015290519081900360640190fd5b61ffff61404a612695565b61ffff1610614091576040805160e560020a62461bcd0281526020600482015260196024820152600080516020615334833981519152604482015290519081900360640190fd5b505050600160a060020a0390921660008181526008602052604081208181556001908101805466ff0000000000001963ffffffff80881663ffffffff1993841617919091166601000000000000179092556007805493840181559093527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c6889091018054600160a060020a03191690931790925560098054808416909401909216921691909117905550565b61414461529d565b60008060008061415261529d565b61415a61529d565b600954600a54600b54604080517fb1772d7a000000000000000000000000000000000000000000000000000000008152600160a060020a0393841660048201529183166024830152516000938493849384936c010000000000000000000000009093049091169163b1772d7a9160448082019260609290919082900301818787803b1580156141e857600080fd5b505af11580156141fc573d6000803e3d6000fd5b505050506040513d606081101561421257600080fd5b5080516020820151604090920151601154919c50919a5090985088111561424f5760408051908101604052808b81526020018a8152509a50614373565b60115461425a6137c4565b0396508615156142825760408051808201909152600f54815260105460208201529a50614373565b61025887106142a95760408051808201909152601254815260135460208201529a50614373565b604080518082018252600f548152601054602080830191825283518085019094526012548085526013549185019190915290519198509196506142f19163ffffffff6138da16565b6020860151875191955061430b919063ffffffff6138da16565b9250614335614320858963ffffffff6138da16565b6115e3856102588b900363ffffffff6138da16565b9150614364610258614358876020015189602001516138da90919063ffffffff16565b9063ffffffff6138da16565b90506143708282614af8565b9a505b5050505050505050505090565b600a54600160a060020a03166000818152600c60205260408120549091829190829081906143ad906115a1565b600b549092506143c590600160a060020a03166115a1565b90506143f07f536f7672796e53776170466f726d756c610000000000000000000000000000006134f0565b600160a060020a031663a11aa1b461440f85601463ffffffff6138da16565b885160208a01516040805160e060020a63ffffffff87160281526004810194909452602484018890526044840187905260648401929092526084830152805160a4808401938290030181600087803b15801561446a57600080fd5b505af115801561447e573d6000803e3d6000fd5b505050506040513d604081101561449457600080fd5b5080516020909101519095509350505050915091565b60008080808063ffffffff891615156144e257600160a060020a038b1660009081526008602052604090206001015463ffffffff1698505b63ffffffff8816151561451457600160a060020a038a1660009081526008602052604090206001015463ffffffff1697505b61451d8b6115a1565b91506145288a6115a1565b90506145537f536f7672796e53776170466f726d756c610000000000000000000000000000006134f0565b604080517f94491fab0000000000000000000000000000000000000000000000000000000081526004810185905263ffffffff808d166024830152604482018590528b166064820152608481018990529051600160a060020a0392909216916394491fab9160a4808201926020929091908290030181600087803b1580156145da57600080fd5b505af11580156145ee573d6000803e3d6000fd5b505050506040513d602081101561460457600080fd5b5051945061461185614b4d565b9350614624846115e38c8c8c8c8b614b7d565b9250614636858463ffffffff613b7b16565b9450505096509650969350505050565b61464e613382565b6000614658612695565b61ffff161161469f576040805160e560020a62461bcd0281526020600482015260196024820152600080516020615334833981519152604482015290519081900360640190fd5b600560009054906101000a9004600160a060020a0316600160a060020a03166379ba50976040518163ffffffff1660e060020a028152600401600060405180830381600087803b1580156146f257600080fd5b505af1158015614706573d6000803e3d6000fd5b5050505061170a613b39565b600160a060020a038181166000908152600e602052604090205416151561154a576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f494e56414c49445f504f4f4c5f544f4b454e00000000000000000000604482015290519081900360640190fd5b604080517f7472616e7366657228616464726573732c75696e74323536290000000000000081528151908190036019018120600160a060020a038516602483015260448083018590528351808403909101815260649092019092526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff199093169290921790915261483590849061492d565b505050565b6000806000614847613a83565b8761485181613303565b8761485b81613303565b6148668a8a8a614c56565b9094509250600160a060020a0389166000805160206152f483398151915214156148c657604051600160a060020a0387169085156108fc029086906000818181858888f193505050501580156148c0573d6000803e3d6000fd5b506148d1565b6148d1898786614783565b6148df8a8a898b8888614f6b565b600160a060020a03808b16600090815260086020526040808220600190810154938d1683529120015461491f918c918c9163ffffffff9081169116614ff0565b509198975050505050505050565b6149356152b4565b602060405190810160405280600181525090506020818351602085016000875af180151561496257600080fd5b5080511515614835576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f5452414e534645525f4641494c454400000000000000000000000000604482015290519081900360640190fd5b6149c361529d565b6000806149cf876115a1565b91506149da866115a1565b905063ffffffff85161515614a0e57600160a060020a03871660009081526008602052604090206001015463ffffffff1694505b63ffffffff84161515614a4057600160a060020a03861660009081526008602052604090206001015463ffffffff1693505b6040805180820190915280614a5e8363ffffffff808a16906138da16565b8152602001614a768463ffffffff808916906138da16565b9052979650505050505050565b60008163ffffffff16118015614aa25750620f424063ffffffff821611155b151561154a576040805160e560020a62461bcd02815260206004820152601a60248201527f4552525f494e56414c49445f524553455256455f574549474854000000000000604482015290519081900360640190fd5b614b0061529d565b614b0861529d565b828410614b2057614b198484615081565b9150613957565b614b2a8385615081565b604080518082019091526020808301518252825190820152925090505092915050565b600954600090612ac590620f4240906116c390859068010000000000000000900463ffffffff908116906138da16565b600b546000908190600160a060020a0388811691161415614beb57600a54600160a060020a039081166000908152600c6020908152604080832054600b54909416835290912054865191870151601654614be4949363ffffffff808d1693908c169261513e565b9050614c3a565b600a54600160a060020a039081166000908152600c6020908152604080832054600b54909416835290912054865191870151601654614c37949363ffffffff808c1693908d169261513e565b90505b614c4b620f42406116c385846138da565b979650505050505050565b6000806000614c6361529d565b600080600080614c716151aa565b95509550614c848b8b600080898e6144aa565b91955093509150831515614ce2576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f5a45524f5f5441524745545f414d4f554e5400000000000000000000604482015290519081900360640190fd5b614ceb8a612aff565b9050808410614d44576040805160e560020a62461bcd02815260206004820152601a60248201527f4552525f5441524745545f414d4f554e545f544f4f5f48494748000000000000604482015290519081900360640190fd5b600160a060020a038b166000805160206152f48339815191521415614dbf57348914614dba576040805160e560020a62461bcd02815260206004820152601760248201527f4552525f4554485f414d4f554e545f4d49534d41544348000000000000000000604482015290519081900360640190fd5b614ec1565b34158015614e6b575088614e68614dd58d612aff565b8d600160a060020a03166370a08231306040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b158015614e3057600080fd5b505af1158015614e44573d6000803e3d6000fd5b505050506040513d6020811015614e5a57600080fd5b50519063ffffffff613b7b16565b10155b1515614ec1576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f494e56414c49445f414d4f554e540000000000000000000000000000604482015290519081900360640190fd5b614eca8b613dc0565b614eda818563ffffffff613b7b16565b600160a060020a038b16600090815260086020908152604080832093909355600c90522054614f0f908463ffffffff61395e16565b600160a060020a038b166000908152600c60205260409020558515614f5a57600a54600b54614f4d91600160a060020a0390811691166000806149bb565b8051601255602001516013555b509199919850909650505050505050565b7f80000000000000000000000000000000000000000000000000000000000000008110614f9457fe5b60408051848152602081018490528082018390529051600160a060020a038087169288821692918a16917f276856b36cbc45526a0ba64f44611557a2a8b68662c5388e9fe6d72e86e1c8cb9181900360600190a4505050505050565b600080614fff86868686613d23565b61500885612033565b915081600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561504857600080fd5b505af115801561505c573d6000803e3d6000fd5b505050506040513d602081101561507257600080fd5b50519050612227828287613cc3565b61508961529d565b7314484bfeebc29f863424b06f3529a051a31be5998211156150db57604080518082019091526c0c9f2c9cd04674edea4000000080825260208201908504848115156150d157fe5b0490529050612ac5565b6c0c9f2c9cd04674edea400000008311156151285760408051908101604052806c0c9f2c9cd04674edea400000008152602001846c0c9f2c9cd04674edea4000000085028115156150d157fe5b5060408051808201909152918252602082015290565b60008080615156876143588c8963ffffffff6138da16565b915061516c886143588b8863ffffffff6138da16565b90508181111561519857615191816116c360146143588684038963ffffffff6138da16565b925061519d565b600092505b5050979650505050505050565b60006151b461529d565b60006151be61529d565b6151c661529d565b6151ce6137c4565b92508260115414156151fc5760408051808201909152600f548152601054602082015260009550935061315f565b61520461413c565b60408051808201909152600f5480825260105460208301528251929450909250148015615238575080602001518260200151145b15615249576000829450945061315f565b8151600f55602082015160105560118390556152636137c8565b50600194909350915050565b6040805160a08101825260008082526020820181905291810182905260608101829052608081019190915290565b604080518082019091526000808252602082015290565b60206040519081016040528060019060208202803883395091929150505600536f7672796e53776170436f6e76657274657255706772616465720000000000000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee4552525f4143434553535f44454e4945440000000000000000000000000000004552525f494e56414c49445f524553455256455f434f554e5400000000000000a165627a7a72305820d6ceae0fa88e176fcec4250a8a72385cf1ae86e302a34151470ca7997955ccc20029a165627a7a72305820829c55f8c1d3c151dafc68faa4319701ebffa14c8fd5fd8048d1987b986db5d40029", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x57D0 DUP1 PUSH2 0x20 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x4B JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x11413958 DUP2 EQ PUSH2 0x50 JUMPI DUP1 PUSH4 0x3E8FF43F EQ PUSH2 0xB6 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x8D PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH4 0xFFFFFFFF PUSH1 0x44 CALLDATALOAD AND PUSH2 0xE2 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xC2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xCB PUSH2 0x1D5 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0xFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP1 DUP5 DUP5 DUP5 PUSH2 0xF0 PUSH2 0x1DA JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP4 DUP5 AND DUP2 MSTORE SWAP2 SWAP1 SWAP3 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH4 0xFFFFFFFF SWAP1 SWAP2 AND PUSH1 0x40 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 PUSH1 0x0 CREATE DUP1 ISZERO DUP1 ISZERO PUSH2 0x142 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH32 0xF2FDE38B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD SWAP2 SWAP3 POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND SWAP2 PUSH4 0xF2FDE38B SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1B4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1C8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP SWAP3 SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x55BA DUP1 PUSH2 0x1EB DUP4 CODECOPY ADD SWAP1 JUMP STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x1 PUSH1 0x4 DUP2 SWAP1 SSTORE PUSH1 0x9 DUP1 SLOAD PUSH1 0x1 PUSH1 0x60 PUSH1 0x2 EXP SUB NOT AND SWAP1 SSTORE PUSH1 0x15 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SWAP2 OR SWAP1 SSTORE PUSH3 0x11170 PUSH1 0x16 SSTORE CALLVALUE DUP1 ISZERO PUSH3 0x3C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH1 0x60 DUP1 PUSH3 0x55BA DUP4 CODECOPY DUP2 ADD PUSH1 0x40 SWAP1 DUP2 MSTORE DUP2 MLOAD PUSH1 0x20 DUP4 ADD MLOAD SWAP2 SWAP1 SWAP3 ADD MLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND CALLER OR SWAP1 SSTORE DUP3 DUP3 DUP3 DUP3 DUP3 DUP3 DUP2 DUP1 PUSH3 0x8A DUP2 PUSH5 0x100000000 PUSH3 0x137 DUP2 MUL DIV JUMP JUMPDEST POP PUSH1 0x2 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT SWAP3 DUP4 AND DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x3 DUP1 SLOAD SWAP1 SWAP3 AND OR SWAP1 SSTORE DUP3 PUSH3 0xCA DUP2 PUSH5 0x100000000 PUSH3 0x137 DUP2 MUL DIV JUMP JUMPDEST DUP2 PUSH3 0xDF DUP2 PUSH5 0x100000000 PUSH3 0x1B2 DUP2 MUL DIV JUMP JUMPDEST POP POP PUSH1 0x5 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP5 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 OR SWAP1 SWAP3 SSTORE POP PUSH1 0x9 DUP1 SLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP3 AND PUSH5 0x100000000 MUL PUSH8 0xFFFFFFFF00000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE POP PUSH3 0x22B SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH3 0x1AF JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH3 0xF4240 PUSH4 0xFFFFFFFF DUP3 AND GT ISZERO PUSH3 0x1AF JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F434F4E56455253494F4E5F464545000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x537F DUP1 PUSH3 0x23B PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x312 JUMPI PUSH4 0xFFFFFFFF PUSH1 0xE0 PUSH1 0x2 EXP PUSH1 0x0 CALLDATALOAD DIV AND PUSH3 0x5E319C DUP2 EQ PUSH2 0x3B0 JUMPI DUP1 PUSH4 0x24C7EC7 EQ PUSH2 0x3E3 JUMPI DUP1 PUSH4 0x337E3FB EQ PUSH2 0x3FD JUMPI DUP1 PUSH4 0xA55FB3D EQ PUSH2 0x42E JUMPI DUP1 PUSH4 0xC7D5CD8 EQ PUSH2 0x457 JUMPI DUP1 PUSH4 0xE53AAE9 EQ PUSH2 0x485 JUMPI DUP1 PUSH4 0x119B90CD EQ PUSH2 0x4DA JUMPI DUP1 PUSH4 0x12C2ACA4 EQ PUSH2 0x507 JUMPI DUP1 PUSH4 0x16912F96 EQ PUSH2 0x51C JUMPI DUP1 PUSH4 0x19B64015 EQ PUSH2 0x531 JUMPI DUP1 PUSH4 0x1CFAB290 EQ PUSH2 0x549 JUMPI DUP1 PUSH4 0x1E1401F8 EQ PUSH2 0x56A JUMPI DUP1 PUSH4 0x21E6B53D EQ PUSH2 0x5AD JUMPI DUP1 PUSH4 0x22F3E2D4 EQ PUSH2 0x5CE JUMPI DUP1 PUSH4 0x2630C12F EQ PUSH2 0x5E3 JUMPI DUP1 PUSH4 0x2BD3C107 EQ PUSH2 0x5F8 JUMPI DUP1 PUSH4 0x2BF0C985 EQ PUSH2 0x619 JUMPI DUP1 PUSH4 0x2FE8A6AD EQ PUSH2 0x63A JUMPI DUP1 PUSH4 0x38A5E016 EQ PUSH2 0x64F JUMPI DUP1 PUSH4 0x395900D4 EQ PUSH2 0x664 JUMPI DUP1 PUSH4 0x3E8FF43F EQ PUSH2 0x68E JUMPI DUP1 PUSH4 0x46749468 EQ PUSH2 0x6BA JUMPI DUP1 PUSH4 0x49D10B64 EQ PUSH2 0x6D5 JUMPI DUP1 PUSH4 0x4AF80F0E EQ PUSH2 0x6EA JUMPI DUP1 PUSH4 0x54FD4D50 EQ PUSH2 0x70B JUMPI DUP1 PUSH4 0x55776B77 EQ PUSH2 0x720 JUMPI DUP1 PUSH4 0x5768ADCF EQ PUSH2 0x73A JUMPI DUP1 PUSH4 0x579CD3CA EQ PUSH2 0x75B JUMPI DUP1 PUSH4 0x5E35359E EQ PUSH2 0x770 JUMPI DUP1 PUSH4 0x61CD756E EQ PUSH2 0x79A JUMPI DUP1 PUSH4 0x67B6D57C EQ PUSH2 0x7AF JUMPI DUP1 PUSH4 0x69067D95 EQ PUSH2 0x7D0 JUMPI DUP1 PUSH4 0x690D8320 EQ PUSH2 0x7F4 JUMPI DUP1 PUSH4 0x69D1354A EQ PUSH2 0x815 JUMPI DUP1 PUSH4 0x6A49D2C4 EQ PUSH2 0x82D JUMPI DUP1 PUSH4 0x71F52BF3 EQ PUSH2 0x857 JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x86C JUMPI DUP1 PUSH4 0x7B103999 EQ PUSH2 0x881 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x896 JUMPI DUP1 PUSH4 0x94C275AD EQ PUSH2 0x8AB JUMPI DUP1 PUSH4 0x98A71DCB EQ PUSH2 0x8C0 JUMPI DUP1 PUSH4 0x9B99A8E2 EQ PUSH2 0x8E1 JUMPI DUP1 PUSH4 0xA32BFF44 EQ PUSH2 0x8F6 JUMPI DUP1 PUSH4 0xAF94B8D8 EQ PUSH2 0x90B JUMPI DUP1 PUSH4 0xB4A176D3 EQ PUSH2 0x935 JUMPI DUP1 PUSH4 0xBF754558 EQ PUSH2 0x94A JUMPI DUP1 PUSH4 0xBF7DA6BA EQ PUSH2 0x95F JUMPI DUP1 PUSH4 0xC3321FB0 EQ PUSH2 0x983 JUMPI DUP1 PUSH4 0xC45D3D92 EQ PUSH2 0x998 JUMPI DUP1 PUSH4 0xCDC91C69 EQ PUSH2 0x9AD JUMPI DUP1 PUSH4 0xD031370B EQ PUSH2 0x9C2 JUMPI DUP1 PUSH4 0xD260529C EQ PUSH2 0x9DA JUMPI DUP1 PUSH4 0xD3FB73B4 EQ PUSH2 0x9EF JUMPI DUP1 PUSH4 0xD4EE1D90 EQ PUSH2 0xA04 JUMPI DUP1 PUSH4 0xD55EC697 EQ PUSH2 0xA19 JUMPI DUP1 PUSH4 0xD64C5A1A EQ PUSH2 0xA2E JUMPI DUP1 PUSH4 0xD66BD524 EQ PUSH2 0xA59 JUMPI DUP1 PUSH4 0xD8959512 EQ PUSH2 0xA7A JUMPI DUP1 PUSH4 0xDB2830A4 EQ PUSH2 0xA9B JUMPI DUP1 PUSH4 0xDC75EB9A EQ PUSH2 0xAB0 JUMPI DUP1 PUSH4 0xDC8DE379 EQ PUSH2 0xAC5 JUMPI DUP1 PUSH4 0xE38192E3 EQ PUSH2 0xAE6 JUMPI DUP1 PUSH4 0xE8104AF9 EQ PUSH2 0xB0D JUMPI DUP1 PUSH4 0xE8DC12FF EQ PUSH2 0xB22 JUMPI DUP1 PUSH4 0xEC2240F5 EQ PUSH2 0xB4C JUMPI DUP1 PUSH4 0xECBCA55D EQ PUSH2 0xB61 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0xB7F JUMPI DUP1 PUSH4 0xF9CDDDE2 EQ PUSH2 0xBA0 JUMPI DUP1 PUSH4 0xFC0C546A EQ PUSH2 0xBB5 JUMPI JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x52F4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x0 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH32 0x353C2EB9E53A4A4A6D45D72082FF2E9DC829D1125618772A83EB0E7F86632C43 SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO PUSH2 0x3AE JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245534552564500000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3BC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3D1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0xBCA JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3EF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH1 0x4 CALLDATALOAD ISZERO ISZERO PUSH2 0xBF3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x409 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x412 PUSH2 0xC3B JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x43A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x443 PUSH2 0xC4A JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x463 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x46C PUSH2 0xC53 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x491 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4A6 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0xC5F JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP6 DUP7 MSTORE PUSH4 0xFFFFFFFF SWAP1 SWAP5 AND PUSH1 0x20 DUP7 ADD MSTORE SWAP2 ISZERO ISZERO DUP5 DUP5 ADD MSTORE ISZERO ISZERO PUSH1 0x60 DUP5 ADD MSTORE ISZERO ISZERO PUSH1 0x80 DUP4 ADD MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0xA0 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4E6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x44 CALLDATALOAD AND PUSH2 0xCFA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x513 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x443 PUSH2 0x1464 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x528 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH2 0x14AD JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x53D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x412 PUSH1 0x4 CALLDATALOAD PUSH2 0x14C1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x555 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x46C PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x14ED JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x576 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x594 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x151F JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5B9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x1539 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5DA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x443 PUSH2 0x154D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5EF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x412 PUSH2 0x1582 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x604 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3D1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x15A1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x625 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3D1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x15F6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x646 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x443 PUSH2 0x16D9 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x65B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH2 0x16FA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x670 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x170C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x69A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x6A3 PUSH2 0x17A7 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0xFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6C6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH1 0x4 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH2 0x17AC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6E1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH2 0x1830 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6F6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x1A90 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x717 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x6A3 PUSH2 0x1AC5 JUMP JUMPDEST PUSH2 0x3D1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH1 0x44 CALLDATALOAD PUSH2 0x1ACA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x746 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x412 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x2033 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x767 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x46C PUSH2 0x2051 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x77C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x2069 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7A6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x412 PUSH2 0x217D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7BB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x218C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7DC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x594 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x222F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x800 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x238A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x821 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH1 0x4 CALLDATALOAD PUSH2 0x248F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x839 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH4 0xFFFFFFFF PUSH1 0x24 CALLDATALOAD AND PUSH2 0x2534 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x863 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x6A3 PUSH2 0x2593 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x878 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH2 0x259D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x88D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x412 PUSH2 0x2651 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8A2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x412 PUSH2 0x2660 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8B7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x46C PUSH2 0x266F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8CC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3D1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x2683 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8ED JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x6A3 PUSH2 0x2695 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x902 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x594 PUSH2 0x269B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x917 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x594 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x26A4 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x941 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH2 0x2848 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x956 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x443 PUSH2 0x2874 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x96B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x2879 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x98F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3D1 PUSH2 0x28C1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9A4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x412 PUSH2 0x28C7 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9B9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH2 0x28D6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9CE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x412 PUSH1 0x4 CALLDATALOAD PUSH2 0x292F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9E6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x443 PUSH2 0x2957 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9FB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x412 PUSH2 0x295C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x412 PUSH2 0x296B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA25 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH2 0x297A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA3A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xA43 PUSH2 0x2A6F JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA65 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4A6 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x2A74 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA86 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3D1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x2ABA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xAA7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x594 PUSH2 0x2ACB JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xABC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x412 PUSH2 0x2AF0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xAD1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3D1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x2AFF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xAF2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3D1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH1 0x44 CALLDATALOAD PUSH2 0x2B28 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xB19 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3D1 PUSH2 0x2E8D JUMP JUMPDEST PUSH2 0x3D1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x44 CALLDATALOAD SWAP1 PUSH1 0x64 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x84 CALLDATALOAD AND PUSH2 0x2E93 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xB58 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x594 PUSH2 0x30E6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xB6D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH4 0xFFFFFFFF PUSH1 0x4 CALLDATALOAD AND PUSH2 0x3166 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xB8B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x325B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xBAC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x594 PUSH2 0x32EB JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xBC1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x412 PUSH2 0x32F4 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0xBD6 DUP2 PUSH2 0x3303 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0xBFB PUSH2 0x3382 JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD SWAP2 ISZERO ISZERO PUSH21 0x10000000000000000000000000000000000000000 MUL PUSH21 0xFF0000000000000000000000000000000000000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x15 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH4 0xFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0xC6F PUSH2 0x526F JUMP JUMPDEST POP POP POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP2 MLOAD PUSH1 0xA0 DUP2 ADD DUP4 MSTORE DUP2 SLOAD DUP1 DUP3 MSTORE PUSH1 0x1 SWAP1 SWAP3 ADD SLOAD PUSH4 0xFFFFFFFF DUP2 AND SWAP5 DUP3 ADD DUP6 SWAP1 MSTORE PUSH1 0xFF PUSH5 0x100000000 DUP3 DIV DUP2 AND ISZERO ISZERO SWAP5 DUP4 ADD SWAP5 SWAP1 SWAP5 MSTORE PUSH6 0x10000000000 DUP2 DIV DUP5 AND ISZERO ISZERO PUSH1 0x60 DUP4 ADD MSTORE PUSH7 0x1000000000000 SWAP1 DIV SWAP1 SWAP3 AND ISZERO ISZERO PUSH1 0x80 SWAP1 SWAP3 ADD DUP3 SWAP1 MSTORE SWAP6 SWAP2 SWAP5 POP SWAP2 SWAP3 POP DUP3 SWAP2 SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0xD0A PUSH2 0x33D2 JUMP JUMPDEST PUSH2 0xD12 PUSH2 0x3382 JUMP JUMPDEST DUP8 PUSH2 0xD1C DUP2 PUSH2 0x3303 JUMP JUMPDEST DUP8 PUSH2 0xD26 DUP2 PUSH2 0x342F JUMP JUMPDEST DUP8 PUSH2 0xD30 DUP2 PUSH2 0x342F JUMP JUMPDEST DUP10 PUSH2 0xD3A DUP2 PUSH2 0x3490 JUMP JUMPDEST DUP10 PUSH2 0xD44 DUP2 PUSH2 0x3490 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x8DA5CB5B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD ADDRESS SWAP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP2 PUSH4 0x8DA5CB5B SWAP2 PUSH1 0x4 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xDA3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xDB7 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xDCD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ PUSH2 0xE2D JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F414E43484F525F4E4F545F4F574E4544000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0xE56 PUSH32 0x436861696E6C696E6B4F7261636C6557686974656C6973740000000000000000 PUSH2 0x34F0 JUMP JUMPDEST SWAP10 POP DUP10 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x3AF32ABF DUP14 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xEB3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xEC7 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xEDD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD ISZERO ISZERO PUSH2 0xF35 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4F5241434C450000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP10 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x3AF32ABF DUP13 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xF90 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xFA4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xFBA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD ISZERO ISZERO PUSH2 0x1012 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4F5241434C450000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x101A PUSH2 0x3588 JUMP JUMPDEST PUSH1 0xA DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP16 AND OR SWAP1 SSTORE PUSH1 0x7 DUP1 SLOAD PUSH1 0x0 SWAP1 DUP2 LT PUSH2 0x1044 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP15 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x10A2 JUMPI PUSH1 0x7 DUP1 SLOAD PUSH1 0x1 SWAP1 DUP2 LT PUSH2 0x1072 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0xB DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x10DD JUMP JUMPDEST PUSH1 0x7 DUP1 SLOAD PUSH1 0x0 SWAP1 DUP2 LT PUSH2 0x10B1 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0xB DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMPDEST PUSH2 0x1106 PUSH32 0x436F6E766572746572466163746F727900000000000000000000000000000000 PUSH2 0x34F0 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xC977AED2 PUSH2 0x111C PUSH2 0x17A7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH2 0xFFFF AND PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x115D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1171 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1187 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP SWAP9 POP DUP9 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x1B27444E DUP15 PUSH1 0xB PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP16 DUP16 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP6 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP5 POP POP POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1258 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x126C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1282 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x9 DUP1 SLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH13 0x1000000000000000000000000 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND DUP2 MUL SWAP2 SWAP1 SWAP2 OR SWAP2 DUP3 SWAP1 SSTORE PUSH1 0xA SLOAD PUSH1 0xB SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xAE81800400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP3 DUP7 AND PUSH1 0x4 DUP5 ADD MSTORE SWAP1 DUP6 AND PUSH1 0x24 DUP4 ADD MSTORE DUP1 MLOAD SWAP3 SWAP1 SWAP4 DIV SWAP1 SWAP4 AND SWAP3 PUSH4 0xAE818004 SWAP3 PUSH1 0x44 DUP1 DUP4 ADD SWAP4 SWAP2 SWAP3 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1324 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1338 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x134E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD MLOAD PUSH1 0x10 DUP2 SWAP1 SSTORE PUSH1 0xF DUP3 SWAP1 SSTORE PUSH1 0x12 SWAP2 SWAP1 SWAP2 SSTORE PUSH1 0x13 SSTORE PUSH2 0x1372 PUSH2 0x37C4 JUMP JUMPDEST PUSH1 0x11 SSTORE PUSH1 0xA SLOAD PUSH2 0x138A SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0xBCA JUMP JUMPDEST PUSH1 0xA SLOAD SWAP1 SWAP9 POP PUSH2 0x13A2 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x2AFF JUMP JUMPDEST PUSH1 0xB SLOAD SWAP1 SWAP8 POP PUSH2 0x13BA SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x2AFF JUMP JUMPDEST SWAP6 POP DUP7 DUP9 EQ ISZERO PUSH2 0x13E5 JUMPI PUSH1 0x0 DUP9 GT DUP1 PUSH2 0x13D3 JUMPI POP PUSH1 0x0 DUP7 GT JUMPDEST ISZERO PUSH2 0x13E0 JUMPI PUSH2 0x13E0 PUSH2 0x37C8 JUMP JUMPDEST PUSH2 0x140E JUMP JUMPDEST PUSH1 0x0 DUP9 GT DUP1 ISZERO PUSH2 0x13F5 JUMPI POP PUSH1 0x0 DUP8 GT JUMPDEST DUP1 ISZERO PUSH2 0x1401 JUMPI POP PUSH1 0x0 DUP7 GT JUMPDEST ISZERO PUSH2 0x140E JUMPI PUSH2 0x140E PUSH2 0x37C8 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x1425 PUSH2 0x17A7 JUMP JUMPDEST PUSH2 0xFFFF AND PUSH32 0x6B08C2E2C9969E55A647A764DB9B554D64DC42F1A704DA11A6D5B129AD163F2C PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x52F4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x0 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH32 0x353C2EB9E53A4A4A6D45D72082FF2E9DC829D1125618772A83EB0E7F86632C43 SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH2 0x14B5 PUSH2 0x3382 JUMP JUMPDEST PUSH1 0x15 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x7 DUP3 DUP2 SLOAD DUP2 LT ISZERO ISZERO PUSH2 0x14D2 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0x14F9 DUP2 PUSH2 0x3303 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH4 0xFFFFFFFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x152D DUP6 DUP6 DUP6 PUSH2 0x26A4 JUMP JUMPDEST SWAP2 POP SWAP2 POP SWAP4 POP SWAP4 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1541 PUSH2 0x3382 JUMP JUMPDEST PUSH2 0x154A DUP2 PUSH2 0x218C JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1557 PUSH2 0x3840 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x157D JUMPI POP PUSH1 0x9 SLOAD PUSH13 0x1000000000000000000000000 SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND ISZERO ISZERO JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH13 0x1000000000000000000000000 SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0x15AD DUP2 PUSH2 0x3303 JUMP JUMPDEST PUSH2 0x15EF PUSH2 0x15B9 DUP5 PUSH2 0x2AFF JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x15E3 SWAP1 PUSH1 0x13 PUSH4 0xFFFFFFFF PUSH2 0x38DA AND JUMP JUMPDEST SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x395E AND JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x18160DDD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x163C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1650 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1666 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP2 SWAP6 POP AND SWAP3 POP PUSH2 0x1691 DUP4 PUSH2 0x2AFF JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 SWAP3 POP SWAP1 POP PUSH2 0x16CF DUP2 PUSH2 0x16C3 DUP5 DUP8 PUSH4 0xFFFFFFFF PUSH2 0x38DA AND JUMP JUMPDEST SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x39BB AND JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH2 0x1702 PUSH2 0x3382 JUMP JUMPDEST PUSH2 0x170A PUSH2 0x28D6 JUMP JUMPDEST JUMP JUMPDEST PUSH2 0x1714 PUSH2 0x3382 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x5E35359E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP6 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP3 ADD DUP6 SWAP1 MSTORE SWAP2 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP2 PUSH4 0x5E35359E SWAP2 PUSH1 0x64 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x178A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x179E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 SWAP1 JUMP JUMPDEST PUSH2 0x17B4 PUSH2 0x3382 JUMP JUMPDEST DUP2 PUSH1 0x14 PUSH1 0x0 PUSH1 0x7 PUSH1 0x0 DUP2 SLOAD DUP2 LT ISZERO ISZERO PUSH2 0x17C9 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 SWAP1 SWAP2 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP4 MSTORE DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x40 ADD DUP2 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE PUSH1 0x7 DUP1 SLOAD DUP4 SWAP3 PUSH1 0x14 SWAP3 SWAP1 SWAP2 PUSH1 0x1 SWAP1 DUP2 LT PUSH2 0x1807 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 SWAP1 SWAP2 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP4 MSTORE DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x40 ADD SWAP1 KECCAK256 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ DUP1 PUSH2 0x1865 JUMPI POP PUSH1 0x3 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x18A9 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5314 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x18D2 PUSH32 0x436F6E7472616374526567697374727900000000000000000000000000000000 PUSH2 0x34F0 JUMP JUMPDEST PUSH1 0x2 SLOAD SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP4 AND SWAP2 AND EQ DUP1 ISZERO SWAP1 PUSH2 0x18FB JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x1951 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245474953545259000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0xBB34534C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH32 0x436F6E7472616374526567697374727900000000000000000000000000000000 PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP2 PUSH4 0xBB34534C SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x19D5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x19E9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x19FF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ ISZERO PUSH2 0x1A60 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245474953545259000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP5 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT SWAP3 DUP4 AND OR SWAP1 SWAP3 SSTORE SWAP1 SWAP2 AND SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x1A98 PUSH2 0x3382 JUMP JUMPDEST DUP1 PUSH2 0x1AA2 DUP2 PUSH2 0x342F JUMP JUMPDEST POP PUSH1 0x6 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x20 DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x1ADA PUSH2 0x3A29 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH2 0x1AE7 PUSH2 0x3A83 JUMP JUMPDEST DUP8 PUSH2 0x1AF1 DUP2 PUSH2 0x3303 JUMP JUMPDEST DUP8 PUSH2 0x1AFB DUP2 PUSH2 0x3AE1 JUMP JUMPDEST DUP8 PUSH2 0x1B05 DUP2 PUSH2 0x3AE1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x52F4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ PUSH2 0x1B2A JUMPI CALLVALUE ISZERO PUSH2 0x1B2E JUMP JUMPDEST DUP10 CALLVALUE EQ JUMPDEST ISZERO ISZERO PUSH2 0x1B84 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4554485F414D4F554E545F4D49534D41544348000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x1B8C PUSH2 0x3B39 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x52F4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ ISZERO PUSH2 0x1C2E JUMPI PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x52F4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x0 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH32 0x353C2EB9E53A4A4A6D45D72082FF2E9DC829D1125618772A83EB0E7F86632C42 SLOAD PUSH2 0x1BF4 SWAP1 CALLVALUE PUSH4 0xFFFFFFFF PUSH2 0x3B7B AND JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x52F4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x0 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH32 0x353C2EB9E53A4A4A6D45D72082FF2E9DC829D1125618772A83EB0E7F86632C42 SSTORE JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x15 SLOAD SWAP1 SWAP8 POP PUSH1 0xFF AND ISZERO PUSH2 0x1CF7 JUMPI PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x14 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD ISZERO DUP1 PUSH2 0x1CA1 JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x14 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x1C9E DUP9 DUP13 PUSH4 0xFFFFFFFF PUSH2 0x395E AND JUMP JUMPDEST GT ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x1CF7 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4D41585F5354414B45445F42414C414E43455F524541434845440000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP13 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD DUP2 MLOAD PUSH32 0x18160DDD00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP2 MLOAD SWAP5 AND SWAP10 POP DUP10 SWAP4 PUSH4 0x18160DDD SWAP4 PUSH1 0x4 DUP1 DUP5 ADD SWAP5 SWAP4 DUP4 SWAP1 SUB ADD SWAP1 DUP3 SWAP1 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1D64 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1D78 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1D8E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP5 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x52F4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ PUSH2 0x1DBC JUMPI PUSH2 0x1DBC DUP12 CALLER ADDRESS DUP14 PUSH2 0x3BDB JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x1DE5 SWAP1 DUP12 PUSH4 0xFFFFFFFF PUSH2 0x395E AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP13 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE PUSH2 0x1E0E DUP8 DUP12 PUSH4 0xFFFFFFFF PUSH2 0x395E AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP13 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE SWAP4 POP DUP7 ISZERO DUP1 PUSH2 0x1E37 JUMPI POP DUP5 ISZERO JUMPDEST ISZERO PUSH2 0x1E44 JUMPI DUP10 SWAP4 POP PUSH2 0x1E5B JUMP JUMPDEST PUSH2 0x1E58 DUP8 PUSH2 0x16C3 DUP13 DUP9 PUSH4 0xFFFFFFFF PUSH2 0x38DA AND JUMP JUMPDEST SWAP4 POP JUMPDEST DUP9 DUP5 LT ISZERO PUSH2 0x1EB3 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F52455455524E5F544F4F5F4C4F570000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xC6C3BBE600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP10 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE CALLER PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP3 ADD DUP9 SWAP1 MSTORE SWAP2 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP2 PUSH4 0xC6C3BBE6 SWAP2 PUSH1 0x64 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1F27 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1F3B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x1F47 PUSH2 0x37C8 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND CALLER PUSH32 0x4A1A2A6176E9646D9E3157F7C2AB3C499F18337C0B0828CFB28E0A61DE4A11F7 DUP13 PUSH2 0x1F84 DUP12 DUP3 PUSH4 0xFFFFFFFF PUSH2 0x395E AND JUMP JUMPDEST PUSH2 0x1F94 DUP11 DUP11 PUSH4 0xFFFFFFFF PUSH2 0x395E AND JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP4 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP3 SWAP1 SWAP3 MSTORE DUP3 DUP3 ADD MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG3 PUSH2 0x1FCB DUP7 PUSH2 0x1FC5 DUP8 DUP8 PUSH4 0xFFFFFFFF PUSH2 0x395E AND JUMP JUMPDEST DUP14 PUSH2 0x3CC3 JUMP JUMPDEST PUSH2 0x2020 PUSH1 0x7 PUSH1 0x0 DUP2 SLOAD DUP2 LT ISZERO ISZERO PUSH2 0x1FDE JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x7 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP2 PUSH1 0x1 SWAP1 DUP2 LT PUSH2 0x2005 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP1 DUP1 PUSH2 0x3D23 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0x4 SSTORE POP SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD AND SWAP1 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH9 0x10000000000000000 SWAP1 DIV PUSH4 0xFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2073 PUSH2 0x3A29 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH2 0x2080 PUSH2 0x3382 JUMP JUMPDEST PUSH2 0x2097 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x52D4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x34F0 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD SWAP1 SWAP2 POP PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 PUSH2 0x20D4 JUMPI POP PUSH2 0x20D2 PUSH2 0x154D JUMP JUMPDEST ISZERO JUMPDEST DUP1 PUSH2 0x20EC JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ JUMPDEST ISZERO ISZERO PUSH2 0x2130 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5314 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x213B DUP5 DUP5 DUP5 PUSH2 0x3D8F JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x2172 JUMPI PUSH2 0x2172 DUP5 PUSH2 0x3DC0 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0x4 SSTORE POP POP JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH2 0x2194 PUSH2 0x3382 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x52D4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x21AC DUP2 PUSH2 0x3EB4 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xF2FDE38B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP2 PUSH4 0xF2FDE38B SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2213 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2227 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 DUP12 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x18160DDD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x227C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2290 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x22A6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP15 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD SWAP1 SWAP4 AND DUP3 MSTORE PUSH1 0xC SWAP1 MSTORE KECCAK256 SLOAD SWAP1 SWAP9 POP SWAP7 POP DUP8 DUP12 LT ISZERO PUSH2 0x2371 JUMPI PUSH1 0xA SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x2309 SWAP1 PUSH1 0x14 PUSH4 0xFFFFFFFF PUSH2 0x38DA AND JUMP JUMPDEST PUSH1 0xA SLOAD SWAP1 SWAP7 POP PUSH2 0x2321 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x15A1 JUMP JUMPDEST SWAP5 POP DUP5 DUP7 LT PUSH2 0x2331 JUMPI DUP5 DUP7 PUSH2 0x2334 JUMP JUMPDEST DUP6 DUP6 JUMPDEST SWAP1 SWAP5 POP SWAP3 POP PUSH2 0x234D DUP9 PUSH2 0x16C3 DUP14 DUP11 PUSH4 0xFFFFFFFF PUSH2 0x38DA AND JUMP JUMPDEST SWAP2 POP PUSH2 0x2363 DUP4 PUSH2 0x16C3 DUP5 DUP8 PUSH4 0xFFFFFFFF PUSH2 0x38DA AND JUMP JUMPDEST SWAP10 POP POP DUP9 DUP2 SUB SWAP8 POP DUP9 PUSH2 0x237B JUMP JUMPDEST SWAP6 SWAP9 POP PUSH1 0x0 SWAP8 POP DUP9 SWAP6 JUMPDEST POP POP POP POP POP POP POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2394 PUSH2 0x3A29 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH2 0x23A1 PUSH2 0x3382 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x52F4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x23B9 DUP2 PUSH2 0x3303 JUMP JUMPDEST PUSH2 0x23D0 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x52D4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x34F0 JUMP JUMPDEST SWAP2 POP PUSH2 0x23DA PUSH2 0x154D JUMP JUMPDEST ISZERO DUP1 PUSH2 0x23F3 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 DUP2 AND SWAP2 AND EQ JUMPDEST ISZERO ISZERO PUSH2 0x2437 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5314 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP1 ADDRESS BALANCE DUP1 ISZERO PUSH2 0x8FC MUL SWAP2 PUSH1 0x0 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x246D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH2 0x2485 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x52F4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x3DC0 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0x4 SSTORE POP JUMP JUMPDEST PUSH2 0x2497 PUSH2 0x3382 JUMP JUMPDEST PUSH3 0x186A0 DUP2 GT ISZERO PUSH2 0x24F2 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F44594E414D49435F4645455F464143544F520000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x16 SLOAD PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP4 SWAP1 MSTORE DUP1 MLOAD PUSH32 0x382FD3516344712A511DCD464FF8E6AB54139D6A28F64087A3253353EE7A5679 SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG1 PUSH1 0x16 SSTORE JUMP JUMPDEST PUSH1 0x2 PUSH2 0x253E PUSH2 0x2695 JUMP JUMPDEST PUSH2 0xFFFF AND LT PUSH2 0x2585 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5334 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x258F DUP3 DUP3 PUSH2 0x3F0A JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x157D PUSH2 0x2695 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x25ED JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5314 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND SWAP4 SWAP1 SWAP2 AND SWAP2 PUSH32 0x343765429AEA5A34B3FF6A3785A98A5ABB2597ACA87BFBB58632C173D585373A SWAP2 LOG3 PUSH1 0x1 DUP1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND OR SWAP1 SWAP2 SSTORE AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH5 0x100000000 SWAP1 DIV PUSH4 0xFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x14 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x7 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0xF SLOAD PUSH1 0x10 SLOAD DUP3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x26B2 PUSH2 0x529D JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x26C0 PUSH2 0x3A83 JUMP JUMPDEST PUSH2 0x26C9 DUP13 PUSH2 0x3303 JUMP JUMPDEST PUSH2 0x26D2 DUP12 PUSH2 0x3303 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP13 DUP2 AND SWAP1 DUP13 AND EQ ISZERO PUSH2 0x2736 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F534F555243455F54415247455400000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x273E PUSH2 0x37C4 JUMP JUMPDEST PUSH1 0x11 SLOAD EQ ISZERO PUSH2 0x27E5 JUMPI PUSH1 0xF PUSH1 0x40 DUP1 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD SLOAD DUP2 MSTORE POP POP SWAP5 POP PUSH1 0x8 PUSH1 0x0 DUP14 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH4 0xFFFFFFFF AND SWAP7 POP PUSH1 0x8 PUSH1 0x0 DUP13 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH4 0xFFFFFFFF AND SWAP6 POP PUSH2 0x2825 JUMP JUMPDEST PUSH2 0x27ED PUSH2 0x413C JUMP JUMPDEST SWAP5 POP PUSH2 0x27F8 DUP6 PUSH2 0x4380 JUMP JUMPDEST PUSH1 0xA SLOAD SWAP2 SWAP6 POP SWAP4 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP14 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x281E JUMPI DUP4 SWAP7 POP DUP3 SWAP6 POP PUSH2 0x2825 JUMP JUMPDEST DUP3 SWAP7 POP DUP4 SWAP6 POP JUMPDEST PUSH2 0x2833 DUP13 DUP13 DUP10 DUP10 DUP10 DUP16 PUSH2 0x44AA JUMP JUMPDEST SWAP2 SWAP15 SWAP2 SWAP14 POP SWAP1 SWAP12 POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x2850 PUSH2 0x3382 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x2 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x1 DUP2 JUMP JUMPDEST PUSH2 0x2881 PUSH2 0x3382 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x52D4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x2899 DUP2 PUSH2 0x3EB4 JUMP JUMPDEST DUP3 PUSH2 0x28A3 DUP2 PUSH2 0x3303 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE JUMP JUMPDEST PUSH1 0x11 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x1 PUSH2 0x28E0 PUSH2 0x2695 JUMP JUMPDEST PUSH2 0xFFFF AND GT PUSH2 0x2927 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5334 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x170A PUSH2 0x4646 JUMP JUMPDEST PUSH1 0x7 DUP1 SLOAD DUP3 SWAP1 DUP2 LT PUSH2 0x293D JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP1 POP DUP2 JUMP JUMPDEST PUSH1 0x1 SWAP1 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2984 PUSH2 0x3382 JUMP JUMPDEST PUSH2 0x299B PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x52D4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x34F0 JUMP JUMPDEST PUSH1 0x5 SLOAD SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x29B5 PUSH2 0x17A7 JUMP JUMPDEST PUSH2 0xFFFF AND PUSH32 0x6B08C2E2C9969E55A647A764DB9B554D64DC42F1A704DA11A6D5B129AD163F2C PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH2 0x29EE DUP2 PUSH2 0x325B JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x90F58C9600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 AND SWAP2 PUSH4 0x90F58C96 SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2A4F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2A63 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x154A PUSH2 0x259D JUMP JUMPDEST PUSH1 0x14 SWAP1 JUMP JUMPDEST PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD PUSH4 0xFFFFFFFF DUP2 AND SWAP1 PUSH1 0xFF PUSH5 0x100000000 DUP3 DIV DUP2 AND SWAP2 PUSH6 0x10000000000 DUP2 DIV DUP3 AND SWAP2 PUSH7 0x1000000000000 SWAP1 SWAP2 DIV AND DUP6 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2AC5 DUP3 PUSH2 0x2AFF JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2AD6 PUSH2 0x529D JUMP JUMPDEST PUSH2 0x2ADE PUSH2 0x413C JUMP JUMPDEST DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD MLOAD SWAP1 SWAP5 SWAP1 SWAP4 POP SWAP2 POP POP JUMP JUMPDEST PUSH1 0xB SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0x2B0B DUP2 PUSH2 0x3303 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x2B39 PUSH2 0x3A29 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH2 0x2B46 PUSH2 0x3A83 JUMP JUMPDEST DUP9 PUSH2 0x2B50 DUP2 PUSH2 0x4712 JUMP JUMPDEST DUP9 PUSH2 0x2B5A DUP2 PUSH2 0x3AE1 JUMP JUMPDEST DUP9 PUSH2 0x2B64 DUP2 PUSH2 0x3AE1 JUMP JUMPDEST PUSH2 0x2B6C PUSH2 0x3B39 JUMP JUMPDEST DUP12 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x18160DDD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2BAA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2BBE JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2BD4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP8 POP PUSH2 0x2BE2 DUP13 DUP13 PUSH2 0x222F JUMP JUMPDEST POP SWAP7 POP DUP10 DUP8 LT ISZERO PUSH2 0x2C3D JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F52455455524E5F544F4F5F4C4F570000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0xE PUSH1 0x0 DUP14 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP6 POP PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xF6B911BC DUP14 CALLER DUP15 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP4 POP POP POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2D0A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2D1E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x2D4B SWAP2 POP DUP9 PUSH4 0xFFFFFFFF PUSH2 0x3B7B AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE PUSH1 0xC SWAP1 MSTORE KECCAK256 SLOAD PUSH2 0x2D80 SWAP1 DUP9 PUSH4 0xFFFFFFFF PUSH2 0x3B7B AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP3 SWAP1 SSTORE SWAP1 SWAP6 POP PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x52F4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ ISZERO PUSH2 0x2DE6 JUMPI PUSH1 0x40 MLOAD CALLER SWAP1 DUP9 ISZERO PUSH2 0x8FC MUL SWAP1 DUP10 SWAP1 PUSH1 0x0 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x2DE0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH2 0x2DF1 JUMP JUMPDEST PUSH2 0x2DF1 DUP7 CALLER DUP10 PUSH2 0x4783 JUMP JUMPDEST PUSH2 0x2DF9 PUSH2 0x37C8 JUMP JUMPDEST PUSH2 0x2E09 DUP9 DUP13 PUSH4 0xFFFFFFFF PUSH2 0x3B7B AND JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP10 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP9 SWAP1 MSTORE DUP1 DUP3 ADD DUP4 SWAP1 MSTORE SWAP1 MLOAD SWAP2 SWAP6 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 AND SWAP2 CALLER SWAP2 PUSH32 0xBC7D19D505C7EC4DB83F3B51F19FB98C4C8A99922E7839D1EE608DFBEE29501B SWAP2 SWAP1 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG3 PUSH2 0x2E65 DUP13 DUP6 DUP9 PUSH2 0x3CC3 JUMP JUMPDEST PUSH2 0x2E78 PUSH1 0x7 PUSH1 0x0 DUP2 SLOAD DUP2 LT ISZERO ISZERO PUSH2 0x1FDE JUMPI INVALID JUMPDEST POP POP PUSH1 0x1 PUSH1 0x4 SSTORE POP SWAP3 SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x16 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2E9D PUSH2 0x3A29 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH32 0x536F7672796E537761704E6574776F726B000000000000000000000000000000 PUSH2 0x2ECC DUP2 PUSH2 0x3EB4 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 DUP2 AND SWAP1 DUP8 AND EQ ISZERO PUSH2 0x2F30 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F534F555243455F54415247455400000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND ISZERO DUP1 PUSH2 0x3073 JUMPI POP PUSH1 0x6 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x3AF32ABF00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP2 PUSH4 0x3AF32ABF SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2FAB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2FBF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2FD5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD DUP1 ISZERO PUSH2 0x3073 JUMPI POP PUSH1 0x6 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x3AF32ABF00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP2 PUSH4 0x3AF32ABF SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3046 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x305A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x3070 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD JUMPDEST ISZERO ISZERO PUSH2 0x30C9 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4E4F545F57484954454C495354454400000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x30D6 DUP8 DUP8 DUP8 DUP8 DUP8 PUSH2 0x483A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x4 SSTORE SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x30F1 PUSH2 0x529D JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x30FC PUSH2 0x413C JUMP JUMPDEST SWAP3 POP PUSH2 0x3107 DUP4 PUSH2 0x4380 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x7 PUSH1 0x0 DUP2 SLOAD DUP2 LT ISZERO ISZERO PUSH2 0x311B JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0xA SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x3150 JUMPI PUSH4 0xFFFFFFFF DUP1 DUP4 AND SWAP6 POP DUP2 AND SWAP4 POP PUSH2 0x315F JUMP JUMPDEST PUSH4 0xFFFFFFFF DUP1 DUP3 AND SWAP6 POP DUP3 AND SWAP4 POP JUMPDEST POP POP POP SWAP1 SWAP2 JUMP JUMPDEST PUSH2 0x316E PUSH2 0x3382 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH4 0xFFFFFFFF PUSH5 0x100000000 SWAP1 SWAP2 DIV DUP2 AND SWAP1 DUP3 AND GT ISZERO PUSH2 0x31DA JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F434F4E56455253494F4E5F464545000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH4 0xFFFFFFFF PUSH9 0x10000000000000000 SWAP1 SWAP4 DIV DUP4 AND DUP2 MSTORE SWAP2 DUP4 AND PUSH1 0x20 DUP4 ADD MSTORE DUP1 MLOAD PUSH32 0x81CD2FFB37DD237C0E4E2A3DE5265FCF9DEB43D3E7801E80DB9F1CCFBA7EE600 SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG1 PUSH1 0x9 DUP1 SLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP3 AND PUSH9 0x10000000000000000 MUL PUSH12 0xFFFFFFFF0000000000000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x3263 PUSH2 0x3382 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x32C9 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F4F574E4552000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x12 SLOAD PUSH1 0x13 SLOAD DUP3 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO PUSH2 0x154A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245534552564500000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x170A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5314 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x33DA PUSH2 0x154D JUMP JUMPDEST ISZERO PUSH2 0x170A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xA PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F41435449564500000000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ADDRESS EQ ISZERO PUSH2 0x154A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F414444524553535F49535F53454C4600000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0x154A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xBB34534C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP2 PUSH4 0xBB34534C SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3556 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x356A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x3580 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP6 POP DUP6 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x6D3E313E PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x35E8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x35FC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x3625 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 MLOAD PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x363D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD PUSH1 0x20 DUP2 ADD DUP5 DUP2 GT ISZERO PUSH2 0x3650 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP6 PUSH1 0x20 DUP3 MUL DUP4 ADD GT PUSH5 0x100000000 DUP3 GT OR ISZERO PUSH2 0x366D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP DUP1 MLOAD PUSH1 0x7 SLOAD SWAP2 SWAP10 POP ISZERO SWAP8 POP SWAP6 POP PUSH1 0x0 SWAP5 POP POP POP POP JUMPDEST DUP3 DUP3 LT ISZERO PUSH2 0x2227 JUMPI DUP4 ISZERO PUSH2 0x3703 JUMPI DUP6 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x9CBF9E36 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x36D0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x36E4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x36FA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 POP PUSH2 0x371E JUMP JUMPDEST DUP5 DUP3 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3711 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD SWAP1 POP JUMPDEST DUP1 PUSH1 0xD PUSH1 0x0 PUSH1 0x7 DUP6 DUP2 SLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3732 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 SWAP2 SWAP1 SWAP2 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 DUP2 AND DUP5 MSTORE SWAP1 DUP4 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x40 SWAP1 SWAP2 ADD SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND SWAP3 SWAP1 SWAP2 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH1 0x7 DUP1 SLOAD DUP4 SWAP1 DUP2 LT PUSH2 0x3780 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 SWAP1 SWAP2 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 DUP2 AND DUP5 MSTORE PUSH1 0xE SWAP1 SWAP3 MSTORE PUSH1 0x40 SWAP1 SWAP3 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND SWAP2 SWAP1 SWAP3 AND OR SWAP1 SSTORE PUSH1 0x1 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x3684 JUMP JUMPDEST TIMESTAMP SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0xF SLOAD DUP2 MSTORE PUSH1 0x10 SLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 SWAP1 DUP2 SWAP1 PUSH2 0x37ED SWAP1 PUSH2 0x4380 JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 PUSH1 0x1 SWAP1 DUP2 ADD DUP1 SLOAD PUSH4 0xFFFFFFFF SWAP8 DUP9 AND PUSH4 0xFFFFFFFF NOT SWAP2 DUP3 AND OR SWAP1 SWAP2 SSTORE PUSH1 0xB SLOAD SWAP1 SWAP5 AND DUP4 MSTORE SWAP2 KECCAK256 ADD DUP1 SLOAD SWAP3 SWAP1 SWAP4 AND SWAP2 AND OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 ADDRESS PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x8DA5CB5B PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x389F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x38B3 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x38C9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 ISZERO ISZERO PUSH2 0x38ED JUMPI PUSH1 0x0 SWAP2 POP PUSH2 0x3957 JUMP JUMPDEST POP DUP3 DUP3 MUL DUP3 DUP5 DUP3 DUP2 ISZERO ISZERO PUSH2 0x38FD JUMPI INVALID JUMPDEST DIV EQ PUSH2 0x3953 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP1 SWAP2 POP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 ADD DUP4 DUP2 LT ISZERO PUSH2 0x3953 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP4 GT PUSH2 0x3A15 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4449564944455F42595F5A45524F0000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP3 DUP5 DUP2 ISZERO ISZERO PUSH2 0x3A20 JUMPI INVALID JUMPDEST DIV SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH1 0x1 EQ PUSH2 0x170A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5245454E5452414E4359000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x3A8B PUSH2 0x154D JUMP JUMPDEST ISZERO ISZERO PUSH2 0x170A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E4143544956450000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 GT PUSH2 0x154A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5A45524F5F56414C5545000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x258F JUMPI PUSH2 0x3B73 PUSH1 0x7 DUP3 DUP2 SLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3B59 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x3DC0 JUMP JUMPDEST PUSH1 0x1 ADD PUSH2 0x3B3F JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT ISZERO PUSH2 0x3BD5 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F554E444552464C4F5700000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP SWAP1 SUB SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x7472616E7366657246726F6D28616464726573732C616464726573732C75696E DUP2 MSTORE PUSH32 0x7432353629000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP3 MLOAD SWAP2 DUP3 SWAP1 SUB PUSH1 0x25 ADD DUP3 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP9 AND PUSH1 0x24 DUP6 ADD MSTORE DUP7 AND PUSH1 0x44 DUP5 ADD MSTORE PUSH1 0x64 DUP1 DUP5 ADD DUP7 SWAP1 MSTORE DUP5 MLOAD DUP1 DUP6 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x84 SWAP1 SWAP4 ADD SWAP1 SWAP4 MSTORE DUP2 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE PUSH2 0x3CBD SWAP1 DUP6 SWAP1 PUSH2 0x492D JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP3 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SLOAD DUP3 MLOAD SWAP1 DUP2 MSTORE SWAP1 DUP2 ADD DUP7 SWAP1 MSTORE DUP2 MLOAD SWAP3 SWAP4 DUP8 AND SWAP3 PUSH32 0x77F29993CF2C084E726F7E802DA0719D6A0ADE3E204BADC7A3FFD57ECB768C24 SWAP3 SWAP2 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH2 0x3D2B PUSH2 0x529D JUMP JUMPDEST PUSH2 0x3D37 DUP6 DUP6 DUP6 DUP6 PUSH2 0x49BB JUMP JUMPDEST DUP1 MLOAD PUSH1 0x20 DUP1 DUP4 ADD MLOAD PUSH1 0x40 DUP1 MLOAD SWAP4 DUP5 MSTORE SWAP2 DUP4 ADD MSTORE DUP1 MLOAD SWAP3 SWAP4 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP9 AND SWAP4 SWAP1 DUP10 AND SWAP3 PUSH32 0x77F29993CF2C084E726F7E802DA0719D6A0ADE3E204BADC7A3FFD57ECB768C24 SWAP3 SWAP1 DUP3 SWAP1 SUB ADD SWAP1 LOG3 POP POP POP POP POP JUMP JUMPDEST PUSH2 0x3D97 PUSH2 0x3382 JUMP JUMPDEST DUP3 PUSH2 0x3DA1 DUP2 PUSH2 0x3490 JUMP JUMPDEST DUP3 PUSH2 0x3DAB DUP2 PUSH2 0x3490 JUMP JUMPDEST DUP4 PUSH2 0x3DB5 DUP2 PUSH2 0x342F JUMP JUMPDEST PUSH2 0x2227 DUP7 DUP7 DUP7 PUSH2 0x4783 JUMP JUMPDEST DUP1 PUSH2 0x3DCA DUP2 PUSH2 0x3303 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 AND PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x52F4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ ISZERO PUSH2 0x3E0A JUMPI PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 ADDRESS BALANCE SWAP1 SSTORE PUSH2 0x258F JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3E6B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3E7F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x3E95 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE POP POP JUMP JUMPDEST PUSH2 0x3EBD DUP2 PUSH2 0x34F0 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x154A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5314 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x3F14 PUSH2 0x3382 JUMP JUMPDEST PUSH2 0x3F1C PUSH2 0x33D2 JUMP JUMPDEST DUP3 PUSH2 0x3F26 DUP2 PUSH2 0x3490 JUMP JUMPDEST DUP4 PUSH2 0x3F30 DUP2 PUSH2 0x342F JUMP JUMPDEST DUP4 PUSH2 0x3F3A DUP2 PUSH2 0x4A83 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 DUP2 AND SWAP2 AND EQ DUP1 ISZERO SWAP1 PUSH2 0x3F7E JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x3FD4 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245534552564500000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x9 SLOAD PUSH4 0xFFFFFFFF SWAP1 DUP2 AND PUSH3 0xF4240 SUB DUP2 AND SWAP1 DUP7 AND GT ISZERO PUSH2 0x403F JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F574549474854000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0xFFFF PUSH2 0x404A PUSH2 0x2695 JUMP JUMPDEST PUSH2 0xFFFF AND LT PUSH2 0x4091 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5334 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP2 DUP2 SSTORE PUSH1 0x1 SWAP1 DUP2 ADD DUP1 SLOAD PUSH7 0xFF000000000000 NOT PUSH4 0xFFFFFFFF DUP1 DUP9 AND PUSH4 0xFFFFFFFF NOT SWAP4 DUP5 AND OR SWAP2 SWAP1 SWAP2 AND PUSH7 0x1000000000000 OR SWAP1 SWAP3 SSTORE PUSH1 0x7 DUP1 SLOAD SWAP4 DUP5 ADD DUP2 SSTORE SWAP1 SWAP4 MSTORE PUSH32 0xA66CC928B5EDB82AF9BD49922954155AB7B0942694BEA4CE44661D9A8736C688 SWAP1 SWAP2 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND SWAP1 SWAP4 OR SWAP1 SWAP3 SSTORE PUSH1 0x9 DUP1 SLOAD DUP1 DUP5 AND SWAP1 SWAP5 ADD SWAP1 SWAP3 AND SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE POP JUMP JUMPDEST PUSH2 0x4144 PUSH2 0x529D JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x4152 PUSH2 0x529D JUMP JUMPDEST PUSH2 0x415A PUSH2 0x529D JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0xA SLOAD PUSH1 0xB SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xB1772D7A00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND PUSH1 0x4 DUP3 ADD MSTORE SWAP2 DUP4 AND PUSH1 0x24 DUP4 ADD MSTORE MLOAD PUSH1 0x0 SWAP4 DUP5 SWAP4 DUP5 SWAP4 DUP5 SWAP4 PUSH13 0x1000000000000000000000000 SWAP1 SWAP4 DIV SWAP1 SWAP2 AND SWAP2 PUSH4 0xB1772D7A SWAP2 PUSH1 0x44 DUP1 DUP3 ADD SWAP3 PUSH1 0x60 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x41E8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x41FC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x60 DUP2 LT ISZERO PUSH2 0x4212 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD PUSH1 0x20 DUP3 ADD MLOAD PUSH1 0x40 SWAP1 SWAP3 ADD MLOAD PUSH1 0x11 SLOAD SWAP2 SWAP13 POP SWAP2 SWAP11 POP SWAP1 SWAP9 POP DUP9 GT ISZERO PUSH2 0x424F JUMPI PUSH1 0x40 DUP1 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 DUP12 DUP2 MSTORE PUSH1 0x20 ADD DUP11 DUP2 MSTORE POP SWAP11 POP PUSH2 0x4373 JUMP JUMPDEST PUSH1 0x11 SLOAD PUSH2 0x425A PUSH2 0x37C4 JUMP JUMPDEST SUB SWAP7 POP DUP7 ISZERO ISZERO PUSH2 0x4282 JUMPI PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0xF SLOAD DUP2 MSTORE PUSH1 0x10 SLOAD PUSH1 0x20 DUP3 ADD MSTORE SWAP11 POP PUSH2 0x4373 JUMP JUMPDEST PUSH2 0x258 DUP8 LT PUSH2 0x42A9 JUMPI PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x12 SLOAD DUP2 MSTORE PUSH1 0x13 SLOAD PUSH1 0x20 DUP3 ADD MSTORE SWAP11 POP PUSH2 0x4373 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD DUP3 MSTORE PUSH1 0xF SLOAD DUP2 MSTORE PUSH1 0x10 SLOAD PUSH1 0x20 DUP1 DUP4 ADD SWAP2 DUP3 MSTORE DUP4 MLOAD DUP1 DUP6 ADD SWAP1 SWAP5 MSTORE PUSH1 0x12 SLOAD DUP1 DUP6 MSTORE PUSH1 0x13 SLOAD SWAP2 DUP6 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP1 MLOAD SWAP2 SWAP9 POP SWAP2 SWAP7 POP PUSH2 0x42F1 SWAP2 PUSH4 0xFFFFFFFF PUSH2 0x38DA AND JUMP JUMPDEST PUSH1 0x20 DUP7 ADD MLOAD DUP8 MLOAD SWAP2 SWAP6 POP PUSH2 0x430B SWAP2 SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x38DA AND JUMP JUMPDEST SWAP3 POP PUSH2 0x4335 PUSH2 0x4320 DUP6 DUP10 PUSH4 0xFFFFFFFF PUSH2 0x38DA AND JUMP JUMPDEST PUSH2 0x15E3 DUP6 PUSH2 0x258 DUP12 SWAP1 SUB PUSH4 0xFFFFFFFF PUSH2 0x38DA AND JUMP JUMPDEST SWAP2 POP PUSH2 0x4364 PUSH2 0x258 PUSH2 0x4358 DUP8 PUSH1 0x20 ADD MLOAD DUP10 PUSH1 0x20 ADD MLOAD PUSH2 0x38DA SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x38DA AND JUMP JUMPDEST SWAP1 POP PUSH2 0x4370 DUP3 DUP3 PUSH2 0x4AF8 JUMP JUMPDEST SWAP11 POP JUMPDEST POP POP POP POP POP POP POP POP POP POP SWAP1 JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD SWAP1 SWAP2 DUP3 SWAP2 SWAP1 DUP3 SWAP1 DUP2 SWAP1 PUSH2 0x43AD SWAP1 PUSH2 0x15A1 JUMP JUMPDEST PUSH1 0xB SLOAD SWAP1 SWAP3 POP PUSH2 0x43C5 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x15A1 JUMP JUMPDEST SWAP1 POP PUSH2 0x43F0 PUSH32 0x536F7672796E53776170466F726D756C61000000000000000000000000000000 PUSH2 0x34F0 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xA11AA1B4 PUSH2 0x440F DUP6 PUSH1 0x14 PUSH4 0xFFFFFFFF PUSH2 0x38DA AND JUMP JUMPDEST DUP9 MLOAD PUSH1 0x20 DUP11 ADD MLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0xE0 PUSH1 0x2 EXP PUSH4 0xFFFFFFFF DUP8 AND MUL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP5 SWAP1 SWAP5 MSTORE PUSH1 0x24 DUP5 ADD DUP9 SWAP1 MSTORE PUSH1 0x44 DUP5 ADD DUP8 SWAP1 MSTORE PUSH1 0x64 DUP5 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x84 DUP4 ADD MSTORE DUP1 MLOAD PUSH1 0xA4 DUP1 DUP5 ADD SWAP4 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x446A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x447E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x4494 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD MLOAD SWAP1 SWAP6 POP SWAP4 POP POP POP POP SWAP2 POP SWAP2 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP1 DUP1 PUSH4 0xFFFFFFFF DUP10 AND ISZERO ISZERO PUSH2 0x44E2 JUMPI PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH4 0xFFFFFFFF AND SWAP9 POP JUMPDEST PUSH4 0xFFFFFFFF DUP9 AND ISZERO ISZERO PUSH2 0x4514 JUMPI PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP11 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH4 0xFFFFFFFF AND SWAP8 POP JUMPDEST PUSH2 0x451D DUP12 PUSH2 0x15A1 JUMP JUMPDEST SWAP2 POP PUSH2 0x4528 DUP11 PUSH2 0x15A1 JUMP JUMPDEST SWAP1 POP PUSH2 0x4553 PUSH32 0x536F7672796E53776170466F726D756C61000000000000000000000000000000 PUSH2 0x34F0 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x94491FAB00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH4 0xFFFFFFFF DUP1 DUP14 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP3 ADD DUP6 SWAP1 MSTORE DUP12 AND PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 DUP2 ADD DUP10 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 PUSH4 0x94491FAB SWAP2 PUSH1 0xA4 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x45DA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x45EE JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x4604 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP5 POP PUSH2 0x4611 DUP6 PUSH2 0x4B4D JUMP JUMPDEST SWAP4 POP PUSH2 0x4624 DUP5 PUSH2 0x15E3 DUP13 DUP13 DUP13 DUP13 DUP12 PUSH2 0x4B7D JUMP JUMPDEST SWAP3 POP PUSH2 0x4636 DUP6 DUP5 PUSH4 0xFFFFFFFF PUSH2 0x3B7B AND JUMP JUMPDEST SWAP5 POP POP POP SWAP7 POP SWAP7 POP SWAP7 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0x464E PUSH2 0x3382 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4658 PUSH2 0x2695 JUMP JUMPDEST PUSH2 0xFFFF AND GT PUSH2 0x469F JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5334 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x79BA5097 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x46F2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x4706 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x170A PUSH2 0x3B39 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD AND ISZERO ISZERO PUSH2 0x154A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F504F4F4C5F544F4B454E00000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x7472616E7366657228616464726573732C75696E743235362900000000000000 DUP2 MSTORE DUP2 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x19 ADD DUP2 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x64 SWAP1 SWAP3 ADD SWAP1 SWAP3 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE PUSH2 0x4835 SWAP1 DUP5 SWAP1 PUSH2 0x492D JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x4847 PUSH2 0x3A83 JUMP JUMPDEST DUP8 PUSH2 0x4851 DUP2 PUSH2 0x3303 JUMP JUMPDEST DUP8 PUSH2 0x485B DUP2 PUSH2 0x3303 JUMP JUMPDEST PUSH2 0x4866 DUP11 DUP11 DUP11 PUSH2 0x4C56 JUMP JUMPDEST SWAP1 SWAP5 POP SWAP3 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP10 AND PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x52F4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ ISZERO PUSH2 0x48C6 JUMPI PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND SWAP1 DUP6 ISZERO PUSH2 0x8FC MUL SWAP1 DUP7 SWAP1 PUSH1 0x0 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x48C0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH2 0x48D1 JUMP JUMPDEST PUSH2 0x48D1 DUP10 DUP8 DUP7 PUSH2 0x4783 JUMP JUMPDEST PUSH2 0x48DF DUP11 DUP11 DUP10 DUP12 DUP9 DUP9 PUSH2 0x4F6B JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 PUSH1 0x1 SWAP1 DUP2 ADD SLOAD SWAP4 DUP14 AND DUP4 MSTORE SWAP2 KECCAK256 ADD SLOAD PUSH2 0x491F SWAP2 DUP13 SWAP2 DUP13 SWAP2 PUSH4 0xFFFFFFFF SWAP1 DUP2 AND SWAP2 AND PUSH2 0x4FF0 JUMP JUMPDEST POP SWAP2 SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x4935 PUSH2 0x52B4 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE POP SWAP1 POP PUSH1 0x20 DUP2 DUP4 MLOAD PUSH1 0x20 DUP6 ADD PUSH1 0x0 DUP8 GAS CALL DUP1 ISZERO ISZERO PUSH2 0x4962 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD ISZERO ISZERO PUSH2 0x4835 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5452414E534645525F4641494C454400000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x49C3 PUSH2 0x529D JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x49CF DUP8 PUSH2 0x15A1 JUMP JUMPDEST SWAP2 POP PUSH2 0x49DA DUP7 PUSH2 0x15A1 JUMP JUMPDEST SWAP1 POP PUSH4 0xFFFFFFFF DUP6 AND ISZERO ISZERO PUSH2 0x4A0E JUMPI PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH4 0xFFFFFFFF AND SWAP5 POP JUMPDEST PUSH4 0xFFFFFFFF DUP5 AND ISZERO ISZERO PUSH2 0x4A40 JUMPI PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH4 0xFFFFFFFF AND SWAP4 POP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE DUP1 PUSH2 0x4A5E DUP4 PUSH4 0xFFFFFFFF DUP1 DUP11 AND SWAP1 PUSH2 0x38DA AND JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x4A76 DUP5 PUSH4 0xFFFFFFFF DUP1 DUP10 AND SWAP1 PUSH2 0x38DA AND JUMP JUMPDEST SWAP1 MSTORE SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH4 0xFFFFFFFF AND GT DUP1 ISZERO PUSH2 0x4AA2 JUMPI POP PUSH3 0xF4240 PUSH4 0xFFFFFFFF DUP3 AND GT ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x154A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F574549474854000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x4B00 PUSH2 0x529D JUMP JUMPDEST PUSH2 0x4B08 PUSH2 0x529D JUMP JUMPDEST DUP3 DUP5 LT PUSH2 0x4B20 JUMPI PUSH2 0x4B19 DUP5 DUP5 PUSH2 0x5081 JUMP JUMPDEST SWAP2 POP PUSH2 0x3957 JUMP JUMPDEST PUSH2 0x4B2A DUP4 DUP6 PUSH2 0x5081 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x20 DUP1 DUP4 ADD MLOAD DUP3 MSTORE DUP3 MLOAD SWAP1 DUP3 ADD MSTORE SWAP3 POP SWAP1 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x0 SWAP1 PUSH2 0x2AC5 SWAP1 PUSH3 0xF4240 SWAP1 PUSH2 0x16C3 SWAP1 DUP6 SWAP1 PUSH9 0x10000000000000000 SWAP1 DIV PUSH4 0xFFFFFFFF SWAP1 DUP2 AND SWAP1 PUSH2 0x38DA AND JUMP JUMPDEST PUSH1 0xB SLOAD PUSH1 0x0 SWAP1 DUP2 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x4BEB JUMPI PUSH1 0xA SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD PUSH1 0xB SLOAD SWAP1 SWAP5 AND DUP4 MSTORE SWAP1 SWAP2 KECCAK256 SLOAD DUP7 MLOAD SWAP2 DUP8 ADD MLOAD PUSH1 0x16 SLOAD PUSH2 0x4BE4 SWAP5 SWAP4 PUSH4 0xFFFFFFFF DUP1 DUP14 AND SWAP4 SWAP1 DUP13 AND SWAP3 PUSH2 0x513E JUMP JUMPDEST SWAP1 POP PUSH2 0x4C3A JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD PUSH1 0xB SLOAD SWAP1 SWAP5 AND DUP4 MSTORE SWAP1 SWAP2 KECCAK256 SLOAD DUP7 MLOAD SWAP2 DUP8 ADD MLOAD PUSH1 0x16 SLOAD PUSH2 0x4C37 SWAP5 SWAP4 PUSH4 0xFFFFFFFF DUP1 DUP13 AND SWAP4 SWAP1 DUP14 AND SWAP3 PUSH2 0x513E JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH2 0x4C4B PUSH3 0xF4240 PUSH2 0x16C3 DUP6 DUP5 PUSH2 0x38DA JUMP JUMPDEST SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x4C63 PUSH2 0x529D JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x4C71 PUSH2 0x51AA JUMP JUMPDEST SWAP6 POP SWAP6 POP PUSH2 0x4C84 DUP12 DUP12 PUSH1 0x0 DUP1 DUP10 DUP15 PUSH2 0x44AA JUMP JUMPDEST SWAP2 SWAP6 POP SWAP4 POP SWAP2 POP DUP4 ISZERO ISZERO PUSH2 0x4CE2 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5A45524F5F5441524745545F414D4F554E5400000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x4CEB DUP11 PUSH2 0x2AFF JUMP JUMPDEST SWAP1 POP DUP1 DUP5 LT PUSH2 0x4D44 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5441524745545F414D4F554E545F544F4F5F48494748000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x52F4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ ISZERO PUSH2 0x4DBF JUMPI CALLVALUE DUP10 EQ PUSH2 0x4DBA JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4554485F414D4F554E545F4D49534D41544348000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x4EC1 JUMP JUMPDEST CALLVALUE ISZERO DUP1 ISZERO PUSH2 0x4E6B JUMPI POP DUP9 PUSH2 0x4E68 PUSH2 0x4DD5 DUP14 PUSH2 0x2AFF JUMP JUMPDEST DUP14 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x4E30 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x4E44 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x4E5A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x3B7B AND JUMP JUMPDEST LT ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x4EC1 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F414D4F554E540000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x4ECA DUP12 PUSH2 0x3DC0 JUMP JUMPDEST PUSH2 0x4EDA DUP2 DUP6 PUSH4 0xFFFFFFFF PUSH2 0x3B7B AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE PUSH1 0xC SWAP1 MSTORE KECCAK256 SLOAD PUSH2 0x4F0F SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0x395E AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE DUP6 ISZERO PUSH2 0x4F5A JUMPI PUSH1 0xA SLOAD PUSH1 0xB SLOAD PUSH2 0x4F4D SWAP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 DUP2 AND SWAP2 AND PUSH1 0x0 DUP1 PUSH2 0x49BB JUMP JUMPDEST DUP1 MLOAD PUSH1 0x12 SSTORE PUSH1 0x20 ADD MLOAD PUSH1 0x13 SSTORE JUMPDEST POP SWAP2 SWAP10 SWAP2 SWAP9 POP SWAP1 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0x8000000000000000000000000000000000000000000000000000000000000000 DUP2 LT PUSH2 0x4F94 JUMPI INVALID JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP5 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 SWAP1 MSTORE DUP1 DUP3 ADD DUP4 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP8 AND SWAP3 DUP9 DUP3 AND SWAP3 SWAP2 DUP11 AND SWAP2 PUSH32 0x276856B36CBC45526A0BA64F44611557A2A8B68662C5388E9FE6D72E86E1C8CB SWAP2 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG4 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x4FFF DUP7 DUP7 DUP7 DUP7 PUSH2 0x3D23 JUMP JUMPDEST PUSH2 0x5008 DUP6 PUSH2 0x2033 JUMP JUMPDEST SWAP2 POP DUP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x18160DDD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x5048 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x505C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x5072 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 POP PUSH2 0x2227 DUP3 DUP3 DUP8 PUSH2 0x3CC3 JUMP JUMPDEST PUSH2 0x5089 PUSH2 0x529D JUMP JUMPDEST PUSH20 0x14484BFEEBC29F863424B06F3529A051A31BE599 DUP3 GT ISZERO PUSH2 0x50DB JUMPI PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH13 0xC9F2C9CD04674EDEA40000000 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 DUP6 DIV DUP5 DUP2 ISZERO ISZERO PUSH2 0x50D1 JUMPI INVALID JUMPDEST DIV SWAP1 MSTORE SWAP1 POP PUSH2 0x2AC5 JUMP JUMPDEST PUSH13 0xC9F2C9CD04674EDEA40000000 DUP4 GT ISZERO PUSH2 0x5128 JUMPI PUSH1 0x40 DUP1 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH13 0xC9F2C9CD04674EDEA40000000 DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH13 0xC9F2C9CD04674EDEA40000000 DUP6 MUL DUP2 ISZERO ISZERO PUSH2 0x50D1 JUMPI INVALID JUMPDEST POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 PUSH2 0x5156 DUP8 PUSH2 0x4358 DUP13 DUP10 PUSH4 0xFFFFFFFF PUSH2 0x38DA AND JUMP JUMPDEST SWAP2 POP PUSH2 0x516C DUP9 PUSH2 0x4358 DUP12 DUP9 PUSH4 0xFFFFFFFF PUSH2 0x38DA AND JUMP JUMPDEST SWAP1 POP DUP2 DUP2 GT ISZERO PUSH2 0x5198 JUMPI PUSH2 0x5191 DUP2 PUSH2 0x16C3 PUSH1 0x14 PUSH2 0x4358 DUP7 DUP5 SUB DUP10 PUSH4 0xFFFFFFFF PUSH2 0x38DA AND JUMP JUMPDEST SWAP3 POP PUSH2 0x519D JUMP JUMPDEST PUSH1 0x0 SWAP3 POP JUMPDEST POP POP SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x51B4 PUSH2 0x529D JUMP JUMPDEST PUSH1 0x0 PUSH2 0x51BE PUSH2 0x529D JUMP JUMPDEST PUSH2 0x51C6 PUSH2 0x529D JUMP JUMPDEST PUSH2 0x51CE PUSH2 0x37C4 JUMP JUMPDEST SWAP3 POP DUP3 PUSH1 0x11 SLOAD EQ ISZERO PUSH2 0x51FC JUMPI PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0xF SLOAD DUP2 MSTORE PUSH1 0x10 SLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 SWAP6 POP SWAP4 POP PUSH2 0x315F JUMP JUMPDEST PUSH2 0x5204 PUSH2 0x413C JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0xF SLOAD DUP1 DUP3 MSTORE PUSH1 0x10 SLOAD PUSH1 0x20 DUP4 ADD MSTORE DUP3 MLOAD SWAP3 SWAP5 POP SWAP1 SWAP3 POP EQ DUP1 ISZERO PUSH2 0x5238 JUMPI POP DUP1 PUSH1 0x20 ADD MLOAD DUP3 PUSH1 0x20 ADD MLOAD EQ JUMPDEST ISZERO PUSH2 0x5249 JUMPI PUSH1 0x0 DUP3 SWAP5 POP SWAP5 POP PUSH2 0x315F JUMP JUMPDEST DUP2 MLOAD PUSH1 0xF SSTORE PUSH1 0x20 DUP3 ADD MLOAD PUSH1 0x10 SSTORE PUSH1 0x11 DUP4 SWAP1 SSTORE PUSH2 0x5263 PUSH2 0x37C8 JUMP JUMPDEST POP PUSH1 0x1 SWAP5 SWAP1 SWAP4 POP SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xA0 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE SWAP2 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x60 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 SWAP1 PUSH1 0x20 DUP3 MUL DUP1 CODESIZE DUP4 CODECOPY POP SWAP2 SWAP3 SWAP2 POP POP JUMP STOP MSTORE8 PUSH16 0x7672796E53776170436F6E7665727465 PUSH19 0x55706772616465720000000000000000000000 STOP STOP STOP STOP STOP STOP 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee GASLIMIT MSTORE MSTORE 0x5f COINBASE NUMBER NUMBER GASLIMIT MSTORE8 MSTORE8 0x5f DIFFICULTY GASLIMIT 0x4e 0x49 GASLIMIT DIFFICULTY STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP GASLIMIT MSTORE MSTORE 0x5f 0x49 0x4e JUMP COINBASE 0x4c 0x49 DIFFICULTY 0x5f MSTORE GASLIMIT MSTORE8 GASLIMIT MSTORE JUMP GASLIMIT 0x5f NUMBER 0x4f SSTORE 0x4e SLOAD STOP STOP STOP STOP STOP STOP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 0xd6 0xce 0xae 0xf 0xa8 DUP15 OR PUSH16 0xCEC4250A8A72385CF1AE86E302A34151 0x47 0xc 0xa7 SWAP10 PUSH26 0x55CCC20029A165627A7A72305820829C55F8C1D3C151DAFC68FA LOG4 BALANCE SWAP8 ADD 0xeb SELFDESTRUCT LOG1 0x4c DUP16 0xd5 REVERT DUP1 0x48 0xd1 SWAP9 PUSH28 0x986DB5D4002900000000000000000000000000000000000000000000 ", + "sourceMap": "219:1042:28:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;219:1042:28;;;;;;;" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "60806040526004361061004b5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631141395881146100505780633e8ff43f146100b6575b600080fd5b34801561005c57600080fd5b5061008d73ffffffffffffffffffffffffffffffffffffffff6004358116906024351663ffffffff604435166100e2565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b3480156100c257600080fd5b506100cb6101d5565b6040805161ffff9092168252519081900360200190f35b6000808484846100f06101da565b73ffffffffffffffffffffffffffffffffffffffff938416815291909216602082015263ffffffff9091166040808301919091525190819003606001906000f080158015610142573d6000803e3d6000fd5b50604080517ff2fde38b000000000000000000000000000000000000000000000000000000008152336004820152905191925073ffffffffffffffffffffffffffffffffffffffff83169163f2fde38b9160248082019260009290919082900301818387803b1580156101b457600080fd5b505af11580156101c8573d6000803e3d6000fd5b5092979650505050505050565b600290565b6040516155ba806101eb833901905600608060405260016004819055600980546001606060020a03191690556015805460ff19169091179055620111706016553480156200003c57600080fd5b50604051606080620055ba83398101604090815281516020830151919092015160008054600160a060020a0319163317905582828282828281806200008a8164010000000062000137810204565b5060028054600160a060020a03909216600160a060020a031992831681179091556003805490921617905582620000ca8164010000000062000137810204565b81620000df81640100000000620001b2810204565b505060058054600160a060020a03909416600160a060020a031990941693909317909255506009805463ffffffff9092166401000000000267ffffffff0000000019909216919091179055506200022b945050505050565b600160a060020a0381161515620001af57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b50565b620f424063ffffffff82161115620001af57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f4552525f494e56414c49445f434f4e56455253494f4e5f464545000000000000604482015290519081900360640190fd5b61537f806200023b6000396000f3006080604052600436106103125763ffffffff60e060020a6000350416625e319c81146103b0578063024c7ec7146103e35780630337e3fb146103fd5780630a55fb3d1461042e5780630c7d5cd8146104575780630e53aae914610485578063119b90cd146104da57806312c2aca41461050757806316912f961461051c57806319b64015146105315780631cfab290146105495780631e1401f81461056a57806321e6b53d146105ad57806322f3e2d4146105ce5780632630c12f146105e35780632bd3c107146105f85780632bf0c985146106195780632fe8a6ad1461063a57806338a5e0161461064f578063395900d4146106645780633e8ff43f1461068e57806346749468146106ba57806349d10b64146106d55780634af80f0e146106ea57806354fd4d501461070b57806355776b77146107205780635768adcf1461073a578063579cd3ca1461075b5780635e35359e1461077057806361cd756e1461079a57806367b6d57c146107af57806369067d95146107d0578063690d8320146107f457806369d1354a146108155780636a49d2c41461082d57806371f52bf31461085757806379ba50971461086c5780637b103999146108815780638da5cb5b1461089657806394c275ad146108ab57806398a71dcb146108c05780639b99a8e2146108e1578063a32bff44146108f6578063af94b8d81461090b578063b4a176d314610935578063bf7545581461094a578063bf7da6ba1461095f578063c3321fb014610983578063c45d3d9214610998578063cdc91c69146109ad578063d031370b146109c2578063d260529c146109da578063d3fb73b4146109ef578063d4ee1d9014610a04578063d55ec69714610a19578063d64c5a1a14610a2e578063d66bd52414610a59578063d895951214610a7a578063db2830a414610a9b578063dc75eb9a14610ab0578063dc8de37914610ac5578063e38192e314610ae6578063e8104af914610b0d578063e8dc12ff14610b22578063ec2240f514610b4c578063ecbca55d14610b61578063f2fde38b14610b7f578063f9cddde214610ba0578063fc0c546a14610bb5575b6000805160206152f483398151915260005260086020527f353c2eb9e53a4a4a6d45d72082ff2e9dc829d1125618772a83eb0e7f86632c43546601000000000000900460ff1615156103ae576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f5245534552564500000000000000000000000000604482015290519081900360640190fd5b005b3480156103bc57600080fd5b506103d1600160a060020a0360043516610bca565b60408051918252519081900360200190f35b3480156103ef57600080fd5b506103ae6004351515610bf3565b34801561040957600080fd5b50610412610c3b565b60408051600160a060020a039092168252519081900360200190f35b34801561043a57600080fd5b50610443610c4a565b604080519115158252519081900360200190f35b34801561046357600080fd5b5061046c610c53565b6040805163ffffffff9092168252519081900360200190f35b34801561049157600080fd5b506104a6600160a060020a0360043516610c5f565b6040805195865263ffffffff9094166020860152911515848401521515606084015215156080830152519081900360a00190f35b3480156104e657600080fd5b506103ae600160a060020a0360043581169060243581169060443516610cfa565b34801561051357600080fd5b50610443611464565b34801561052857600080fd5b506103ae6114ad565b34801561053d57600080fd5b506104126004356114c1565b34801561055557600080fd5b5061046c600160a060020a03600435166114ed565b34801561057657600080fd5b50610594600160a060020a036004358116906024351660443561151f565b6040805192835260208301919091528051918290030190f35b3480156105b957600080fd5b506103ae600160a060020a0360043516611539565b3480156105da57600080fd5b5061044361154d565b3480156105ef57600080fd5b50610412611582565b34801561060457600080fd5b506103d1600160a060020a03600435166115a1565b34801561062557600080fd5b506103d1600160a060020a03600435166115f6565b34801561064657600080fd5b506104436116d9565b34801561065b57600080fd5b506103ae6116fa565b34801561067057600080fd5b506103ae600160a060020a036004358116906024351660443561170c565b34801561069a57600080fd5b506106a36117a7565b6040805161ffff9092168252519081900360200190f35b3480156106c657600080fd5b506103ae6004356024356117ac565b3480156106e157600080fd5b506103ae611830565b3480156106f657600080fd5b506103ae600160a060020a0360043516611a90565b34801561071757600080fd5b506106a3611ac5565b6103d1600160a060020a0360043516602435604435611aca565b34801561074657600080fd5b50610412600160a060020a0360043516612033565b34801561076757600080fd5b5061046c612051565b34801561077c57600080fd5b506103ae600160a060020a0360043581169060243516604435612069565b3480156107a657600080fd5b5061041261217d565b3480156107bb57600080fd5b506103ae600160a060020a036004351661218c565b3480156107dc57600080fd5b50610594600160a060020a036004351660243561222f565b34801561080057600080fd5b506103ae600160a060020a036004351661238a565b34801561082157600080fd5b506103ae60043561248f565b34801561083957600080fd5b506103ae600160a060020a036004351663ffffffff60243516612534565b34801561086357600080fd5b506106a3612593565b34801561087857600080fd5b506103ae61259d565b34801561088d57600080fd5b50610412612651565b3480156108a257600080fd5b50610412612660565b3480156108b757600080fd5b5061046c61266f565b3480156108cc57600080fd5b506103d1600160a060020a0360043516612683565b3480156108ed57600080fd5b506106a3612695565b34801561090257600080fd5b5061059461269b565b34801561091757600080fd5b50610594600160a060020a03600435811690602435166044356126a4565b34801561094157600080fd5b506103ae612848565b34801561095657600080fd5b50610443612874565b34801561096b57600080fd5b506103ae600160a060020a0360043516602435612879565b34801561098f57600080fd5b506103d16128c1565b3480156109a457600080fd5b506104126128c7565b3480156109b957600080fd5b506103ae6128d6565b3480156109ce57600080fd5b5061041260043561292f565b3480156109e657600080fd5b50610443612957565b3480156109fb57600080fd5b5061041261295c565b348015610a1057600080fd5b5061041261296b565b348015610a2557600080fd5b506103ae61297a565b348015610a3a57600080fd5b50610a43612a6f565b6040805160ff9092168252519081900360200190f35b348015610a6557600080fd5b506104a6600160a060020a0360043516612a74565b348015610a8657600080fd5b506103d1600160a060020a0360043516612aba565b348015610aa757600080fd5b50610594612acb565b348015610abc57600080fd5b50610412612af0565b348015610ad157600080fd5b506103d1600160a060020a0360043516612aff565b348015610af257600080fd5b506103d1600160a060020a0360043516602435604435612b28565b348015610b1957600080fd5b506103d1612e8d565b6103d1600160a060020a036004358116906024358116906044359060643581169060843516612e93565b348015610b5857600080fd5b506105946130e6565b348015610b6d57600080fd5b506103ae63ffffffff60043516613166565b348015610b8b57600080fd5b506103ae600160a060020a036004351661325b565b348015610bac57600080fd5b506105946132eb565b348015610bc157600080fd5b506104126132f4565b600081610bd681613303565b5050600160a060020a03166000908152600c602052604090205490565b610bfb613382565b60038054911515740100000000000000000000000000000000000000000274ff000000000000000000000000000000000000000019909216919091179055565b600a54600160a060020a031681565b60155460ff1681565b60095463ffffffff1681565b6000806000806000610c6f61526f565b50505050600160a060020a03929092166000908152600860209081526040808320815160a081018352815480825260019092015463ffffffff811694820185905260ff64010000000082048116151594830194909452650100000000008104841615156060830152660100000000000090049092161515608090920182905295919450919250829190565b6000806000806000610d0a6133d2565b610d12613382565b87610d1c81613303565b87610d268161342f565b87610d308161342f565b89610d3a81613490565b89610d4481613490565b600554604080517f8da5cb5b00000000000000000000000000000000000000000000000000000000815290513092600160a060020a031691638da5cb5b9160048083019260209291908290030181600087803b158015610da357600080fd5b505af1158015610db7573d6000803e3d6000fd5b505050506040513d6020811015610dcd57600080fd5b5051600160a060020a031614610e2d576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f414e43484f525f4e4f545f4f574e4544000000000000000000000000604482015290519081900360640190fd5b610e567f436861696e6c696e6b4f7261636c6557686974656c69737400000000000000006134f0565b995089600160a060020a0316633af32abf8d6040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b158015610eb357600080fd5b505af1158015610ec7573d6000803e3d6000fd5b505050506040513d6020811015610edd57600080fd5b50511515610f35576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f494e56414c49445f4f5241434c450000000000000000000000000000604482015290519081900360640190fd5b89600160a060020a0316633af32abf8c6040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b158015610f9057600080fd5b505af1158015610fa4573d6000803e3d6000fd5b505050506040513d6020811015610fba57600080fd5b50511515611012576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f494e56414c49445f4f5241434c450000000000000000000000000000604482015290519081900360640190fd5b61101a613588565b600a8054600160a060020a031916600160a060020a038f1617905560078054600090811061104457fe5b600091825260209091200154600160a060020a038e8116911614156110a25760078054600190811061107257fe5b600091825260209091200154600b8054600160a060020a031916600160a060020a039092169190911790556110dd565b6007805460009081106110b157fe5b600091825260209091200154600b8054600160a060020a031916600160a060020a039092169190911790555b6111067f436f6e766572746572466163746f7279000000000000000000000000000000006134f0565b600160a060020a031663c977aed261111c6117a7565b6040518263ffffffff1660e060020a028152600401808261ffff1661ffff168152602001915050602060405180830381600087803b15801561115d57600080fd5b505af1158015611171573d6000803e3d6000fd5b505050506040513d602081101561118757600080fd5b8101908080519060200190929190505050985088600160a060020a0316631b27444e8e600b60009054906101000a9004600160a060020a03168f8f6040518563ffffffff1660e060020a0281526004018085600160a060020a0316600160a060020a0316815260200184600160a060020a0316600160a060020a0316815260200183600160a060020a0316600160a060020a0316815260200182600160a060020a0316600160a060020a03168152602001945050505050602060405180830381600087803b15801561125857600080fd5b505af115801561126c573d6000803e3d6000fd5b505050506040513d602081101561128257600080fd5b5051600980546bffffffffffffffffffffffff166c01000000000000000000000000600160a060020a0393841681029190911791829055600a54600b54604080517fae818004000000000000000000000000000000000000000000000000000000008152928616600484015290851660248301528051929093049093169263ae8180049260448083019391928290030181600087803b15801561132457600080fd5b505af1158015611338573d6000803e3d6000fd5b505050506040513d604081101561134e57600080fd5b5080516020909101516010819055600f8290556012919091556013556113726137c4565b601155600a5461138a90600160a060020a0316610bca565b600a549098506113a290600160a060020a0316612aff565b600b549097506113ba90600160a060020a0316612aff565b9550868814156113e55760008811806113d35750600086115b156113e0576113e06137c8565b61140e565b6000881180156113f55750600087115b80156114015750600086115b1561140e5761140e6137c8565b600554600190600160a060020a03166114256117a7565b61ffff167f6b08c2e2c9969e55a647a764db9b554d64dc42f1a704da11a6d5b129ad163f2c60405160405180910390a450505050505050505050505050565b6000805160206152f483398151915260005260086020527f353c2eb9e53a4a4a6d45d72082ff2e9dc829d1125618772a83eb0e7f86632c43546601000000000000900460ff1690565b6114b5613382565b6015805460ff19169055565b60006007828154811015156114d257fe5b600091825260209091200154600160a060020a031692915050565b6000816114f981613303565b5050600160a060020a031660009081526008602052604090206001015463ffffffff1690565b60008061152d8585856126a4565b91509150935093915050565b611541613382565b61154a8161218c565b50565b6000611557613840565b801561157d57506009546c010000000000000000000000009004600160a060020a031615155b905090565b6009546c010000000000000000000000009004600160a060020a031681565b6000816115ad81613303565b6115ef6115b984612aff565b600160a060020a0385166000908152600c60205260409020546115e390601363ffffffff6138da16565b9063ffffffff61395e16565b9392505050565b600080600080600085600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561163c57600080fd5b505af1158015611650573d6000803e3d6000fd5b505050506040513d602081101561166657600080fd5b5051600160a060020a038088166000908152600e602052604090205491955016925061169183612aff565b600160a060020a0384166000908152600c602052604090205490925090506116cf816116c3848763ffffffff6138da16565b9063ffffffff6139bb16565b9695505050505050565b60035474010000000000000000000000000000000000000000900460ff1681565b611702613382565b61170a6128d6565b565b611714613382565b600554604080517f5e35359e000000000000000000000000000000000000000000000000000000008152600160a060020a03868116600483015285811660248301526044820185905291519190921691635e35359e91606480830192600092919082900301818387803b15801561178a57600080fd5b505af115801561179e573d6000803e3d6000fd5b50505050505050565b600290565b6117b4613382565b8160146000600760008154811015156117c957fe5b6000918252602080832090910154600160a060020a031683528201929092526040018120919091556007805483926014929091600190811061180757fe5b6000918252602080832090910154600160a060020a031683528201929092526040019020555050565b60008054600160a060020a0316331480611865575060035474010000000000000000000000000000000000000000900460ff16155b15156118a9576040805160e560020a62461bcd0281526020600482015260116024820152600080516020615314833981519152604482015290519081900360640190fd5b6118d27f436f6e74726163745265676973747279000000000000000000000000000000006134f0565b600254909150600160a060020a038083169116148015906118fb5750600160a060020a03811615155b1515611951576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e56414c49445f5245474953545259000000000000000000000000604482015290519081900360640190fd5b604080517fbb34534c0000000000000000000000000000000000000000000000000000000081527f436f6e747261637452656769737472790000000000000000000000000000000060048201529051600091600160a060020a0384169163bb34534c9160248082019260209290919082900301818787803b1580156119d557600080fd5b505af11580156119e9573d6000803e3d6000fd5b505050506040513d60208110156119ff57600080fd5b5051600160a060020a03161415611a60576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e56414c49445f5245474953545259000000000000000000000000604482015290519081900360640190fd5b6002805460038054600160a060020a03808416600160a060020a0319928316179092559091169216919091179055565b611a98613382565b80611aa28161342f565b5060068054600160a060020a031916600160a060020a0392909216919091179055565b602081565b6000806000806000611ada613a29565b6002600455611ae7613a83565b87611af181613303565b87611afb81613ae1565b87611b0581613ae1565b600160a060020a038b166000805160206152f483398151915214611b2a573415611b2e565b8934145b1515611b84576040805160e560020a62461bcd02815260206004820152601760248201527f4552525f4554485f414d4f554e545f4d49534d41544348000000000000000000604482015290519081900360640190fd5b611b8c613b39565b600160a060020a038b166000805160206152f48339815191521415611c2e576000805160206152f483398151915260005260086020527f353c2eb9e53a4a4a6d45d72082ff2e9dc829d1125618772a83eb0e7f86632c4254611bf4903463ffffffff613b7b16565b6000805160206152f483398151915260005260086020527f353c2eb9e53a4a4a6d45d72082ff2e9dc829d1125618772a83eb0e7f86632c42555b600160a060020a038b166000908152600c602052604090205460155490975060ff1615611cf757600160a060020a038b166000908152601460205260409020541580611ca15750600160a060020a038b16600090815260146020526040902054611c9e888c63ffffffff61395e16565b11155b1515611cf7576040805160e560020a62461bcd02815260206004820152601e60248201527f4552525f4d41585f5354414b45445f42414c414e43455f524541434845440000604482015290519081900360640190fd5b600160a060020a03808c166000908152600d602090815260408083205481517f18160ddd00000000000000000000000000000000000000000000000000000000815291519416995089936318160ddd93600480840194938390030190829087803b158015611d6457600080fd5b505af1158015611d78573d6000803e3d6000fd5b505050506040513d6020811015611d8e57600080fd5b50519450600160a060020a038b166000805160206152f483398151915214611dbc57611dbc8b33308d613bdb565b600160a060020a038b16600090815260086020526040902054611de5908b63ffffffff61395e16565b600160a060020a038c16600090815260086020526040902055611e0e878b63ffffffff61395e16565b600160a060020a038c166000908152600c60205260408120919091559350861580611e37575084155b15611e4457899350611e5b565b611e58876116c38c8863ffffffff6138da16565b93505b88841015611eb3576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f52455455524e5f544f4f5f4c4f570000000000000000000000000000604482015290519081900360640190fd5b600554604080517fc6c3bbe6000000000000000000000000000000000000000000000000000000008152600160a060020a038981166004830152336024830152604482018890529151919092169163c6c3bbe691606480830192600092919082900301818387803b158015611f2757600080fd5b505af1158015611f3b573d6000803e3d6000fd5b50505050611f476137c8565b600160a060020a038b16337f4a1a2a6176e9646d9e3157f7c2ab3c499f18337c0b0828cfb28e0a61de4a11f78c611f848b8263ffffffff61395e16565b611f948a8a63ffffffff61395e16565b60408051938452602084019290925282820152519081900360600190a3611fcb86611fc5878763ffffffff61395e16565b8d613cc3565b61202060076000815481101515611fde57fe5b60009182526020909120015460078054600160a060020a0390921691600190811061200557fe5b6000918252602082200154600160a060020a03169080613d23565b5050600160045550979650505050505050565b600160a060020a039081166000908152600d60205260409020541690565b60095468010000000000000000900463ffffffff1681565b6000612073613a29565b6002600455612080613382565b6120976000805160206152d48339815191526134f0565b600160a060020a0385166000908152600860205260409020600101549091506601000000000000900460ff1615806120d457506120d261154d565b155b806120ec5750600054600160a060020a038281169116145b1515612130576040805160e560020a62461bcd0281526020600482015260116024820152600080516020615314833981519152604482015290519081900360640190fd5b61213b848484613d8f565b600160a060020a0384166000908152600860205260409020600101546601000000000000900460ff16156121725761217284613dc0565b505060016004555050565b600354600160a060020a031681565b612194613382565b6000805160206152d48339815191526121ac81613eb4565b600554604080517ff2fde38b000000000000000000000000000000000000000000000000000000008152600160a060020a0385811660048301529151919092169163f2fde38b91602480830192600092919082900301818387803b15801561221357600080fd5b505af1158015612227573d6000803e3d6000fd5b505050505050565b6000806000806000806000806000808b600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561227c57600080fd5b505af1158015612290573d6000803e3d6000fd5b505050506040513d60208110156122a657600080fd5b5051600160a060020a03808e166000908152600e60209081526040808320549093168252600c905220549098509650878b101561237157600a54600160a060020a03166000908152600c602052604090205461230990601463ffffffff6138da16565b600a5490965061232190600160a060020a03166115a1565b9450848610612331578486612334565b85855b909450925061234d886116c38d8a63ffffffff6138da16565b9150612363836116c3848763ffffffff6138da16565b99505088810397508861237b565b9598506000975088955b50505050505050509250929050565b6000612394613a29565b60026004556123a1613382565b6000805160206152f48339815191526123b981613303565b6123d06000805160206152d48339815191526134f0565b91506123da61154d565b15806123f35750600054600160a060020a038381169116145b1515612437576040805160e560020a62461bcd0281526020600482015260116024820152600080516020615314833981519152604482015290519081900360640190fd5b604051600160a060020a03841690303180156108fc02916000818181858888f1935050505015801561246d573d6000803e3d6000fd5b506124856000805160206152f4833981519152613dc0565b5050600160045550565b612497613382565b620186a08111156124f2576040805160e560020a62461bcd02815260206004820152601e60248201527f4552525f494e56414c49445f44594e414d49435f4645455f464143544f520000604482015290519081900360640190fd5b601654604080519182526020820183905280517f382fd3516344712a511dcd464ff8e6ab54139d6a28f64087a3253353ee7a56799281900390910190a1601655565b600261253e612695565b61ffff1610612585576040805160e560020a62461bcd0281526020600482015260196024820152600080516020615334833981519152604482015290519081900360640190fd5b61258f8282613f0a565b5050565b600061157d612695565b600154600160a060020a031633146125ed576040805160e560020a62461bcd0281526020600482015260116024820152600080516020615314833981519152604482015290519081900360640190fd5b60015460008054604051600160a060020a0393841693909116917f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91a36001805460008054600160a060020a0319908116600160a060020a03841617909155169055565b600254600160a060020a031681565b600054600160a060020a031681565b600954640100000000900463ffffffff1681565b60146020526000908152604090205481565b60075490565b600f5460105482565b6000806000806126b261529d565b6000806000806126c0613a83565b6126c98c613303565b6126d28b613303565b600160a060020a038c8116908c161415612736576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f53414d455f534f555243455f54415247455400000000000000000000604482015290519081900360640190fd5b61273e6137c4565b60115414156127e557600f604080519081016040529081600082015481526020016001820154815250509450600860008d600160a060020a0316600160a060020a0316815260200190815260200160002060010160009054906101000a900463ffffffff169650600860008c600160a060020a0316600160a060020a0316815260200190815260200160002060010160009054906101000a900463ffffffff169550612825565b6127ed61413c565b94506127f885614380565b600a549195509350600160a060020a038d81169116141561281e57839650829550612825565b8296508395505b6128338c8c8989898f6144aa565b919e919d50909b505050505050505050505050565b612850613382565b60035460028054600160a060020a031916600160a060020a03909216919091179055565b600181565b612881613382565b6000805160206152d483398151915261289981613eb4565b826128a381613303565b5050600160a060020a039091166000908152600c6020526040902055565b60115481565b600654600160a060020a031681565b60016128e0612695565b61ffff1611612927576040805160e560020a62461bcd0281526020600482015260196024820152600080516020615334833981519152604482015290519081900360640190fd5b61170a614646565b600780548290811061293d57fe5b600091825260209091200154600160a060020a0316905081565b600190565b600554600160a060020a031681565b600154600160a060020a031681565b6000612984613382565b61299b6000805160206152d48339815191526134f0565b600554909150600090600160a060020a03166129b56117a7565b61ffff167f6b08c2e2c9969e55a647a764db9b554d64dc42f1a704da11a6d5b129ad163f2c60405160405180910390a46129ee8161325b565b604080517f90f58c96000000000000000000000000000000000000000000000000000000008152602060048201529051600160a060020a038316916390f58c9691602480830192600092919082900301818387803b158015612a4f57600080fd5b505af1158015612a63573d6000803e3d6000fd5b5050505061154a61259d565b601490565b6008602052600090815260409020805460019091015463ffffffff81169060ff640100000000820481169165010000000000810482169166010000000000009091041685565b6000612ac582612aff565b92915050565b600080612ad661529d565b612ade61413c565b80516020909101519094909350915050565b600b54600160a060020a031681565b600081612b0b81613303565b5050600160a060020a031660009081526008602052604090205490565b600080600080600080612b39613a29565b6002600455612b46613a83565b88612b5081614712565b88612b5a81613ae1565b88612b6481613ae1565b612b6c613b39565b8b600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015612baa57600080fd5b505af1158015612bbe573d6000803e3d6000fd5b505050506040513d6020811015612bd457600080fd5b50519750612be28c8c61222f565b50965089871015612c3d576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f52455455524e5f544f4f5f4c4f570000000000000000000000000000604482015290519081900360640190fd5b600e60008d600160a060020a0316600160a060020a0316815260200190815260200160002060009054906101000a9004600160a060020a03169550600560009054906101000a9004600160a060020a0316600160a060020a031663f6b911bc8d338e6040518463ffffffff1660e060020a0281526004018084600160a060020a0316600160a060020a0316815260200183600160a060020a0316600160a060020a031681526020018281526020019350505050600060405180830381600087803b158015612d0a57600080fd5b505af1158015612d1e573d6000803e3d6000fd5b505050600160a060020a038716600090815260086020526040902054612d4b91508863ffffffff613b7b16565b600160a060020a038716600090815260086020908152604080832093909355600c90522054612d80908863ffffffff613b7b16565b600160a060020a0387166000818152600c602052604090208290559095506000805160206152f48339815191521415612de657604051339088156108fc029089906000818181858888f19350505050158015612de0573d6000803e3d6000fd5b50612df1565b612df1863389614783565b612df96137c8565b612e09888c63ffffffff613b7b16565b60408051898152602081018890528082018390529051919550600160a060020a0388169133917fbc7d19d505c7ec4db83f3b51f19fb98c4c8a99922e7839d1ee608dfbee29501b919081900360600190a3612e658c8588613cc3565b612e7860076000815481101515611fde57fe5b50506001600455509298975050505050505050565b60165481565b6000612e9d613a29565b60026004557f536f7672796e537761704e6574776f726b000000000000000000000000000000612ecc81613eb4565b600160a060020a038781169087161415612f30576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f53414d455f534f555243455f54415247455400000000000000000000604482015290519081900360640190fd5b600654600160a060020a031615806130735750600654604080517f3af32abf000000000000000000000000000000000000000000000000000000008152600160a060020a03878116600483015291519190921691633af32abf9160248083019260209291908290030181600087803b158015612fab57600080fd5b505af1158015612fbf573d6000803e3d6000fd5b505050506040513d6020811015612fd557600080fd5b505180156130735750600654604080517f3af32abf000000000000000000000000000000000000000000000000000000008152600160a060020a03868116600483015291519190921691633af32abf9160248083019260209291908290030181600087803b15801561304657600080fd5b505af115801561305a573d6000803e3d6000fd5b505050506040513d602081101561307057600080fd5b50515b15156130c9576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f4e4f545f57484954454c495354454400000000000000000000000000604482015290519081900360640190fd5b6130d6878787878761483a565b6001600455979650505050505050565b6000806130f161529d565b6000806130fc61413c565b925061310783614380565b915091506007600081548110151561311b57fe5b600091825260209091200154600a54600160a060020a03908116911614156131505763ffffffff80831695508116935061315f565b63ffffffff8082169550821693505b5050509091565b61316e613382565b60095463ffffffff640100000000909104811690821611156131da576040805160e560020a62461bcd02815260206004820152601a60248201527f4552525f494e56414c49445f434f4e56455253494f4e5f464545000000000000604482015290519081900360640190fd5b6009546040805163ffffffff6801000000000000000090930483168152918316602083015280517f81cd2ffb37dd237c0e4e2a3de5265fcf9deb43d3e7801e80db9f1ccfba7ee6009281900390910190a16009805463ffffffff90921668010000000000000000026bffffffff000000000000000019909216919091179055565b613263613382565b600054600160a060020a03828116911614156132c9576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f53414d455f4f574e4552000000000000000000000000000000000000604482015290519081900360640190fd5b60018054600160a060020a031916600160a060020a0392909216919091179055565b60125460135482565b600554600160a060020a031690565b600160a060020a0381166000908152600860205260409020600101546601000000000000900460ff16151561154a576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f5245534552564500000000000000000000000000604482015290519081900360640190fd5b600054600160a060020a0316331461170a576040805160e560020a62461bcd0281526020600482015260116024820152600080516020615314833981519152604482015290519081900360640190fd5b6133da61154d565b1561170a576040805160e560020a62461bcd02815260206004820152600a60248201527f4552525f41435449564500000000000000000000000000000000000000000000604482015290519081900360640190fd5b600160a060020a03811630141561154a576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f414444524553535f49535f53454c4600000000000000000000000000604482015290519081900360640190fd5b600160a060020a038116151561154a576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b600254604080517fbb34534c000000000000000000000000000000000000000000000000000000008152600481018490529051600092600160a060020a03169163bb34534c91602480830192602092919082900301818787803b15801561355657600080fd5b505af115801561356a573d6000803e3d6000fd5b505050506040513d602081101561358057600080fd5b505192915050565b60006060600080600080600560009054906101000a9004600160a060020a0316955085600160a060020a0316636d3e313e6040518163ffffffff1660e060020a028152600401600060405180830381600087803b1580156135e857600080fd5b505af11580156135fc573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561362557600080fd5b81019080805164010000000081111561363d57600080fd5b8201602081018481111561365057600080fd5b815185602082028301116401000000008211171561366d57600080fd5b505080516007549199501597509550600094505050505b828210156122275783156137035785600160a060020a0316639cbf9e366040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156136d057600080fd5b505af11580156136e4573d6000803e3d6000fd5b505050506040513d60208110156136fa57600080fd5b5051905061371e565b848281518110151561371157fe5b9060200190602002015190505b80600d600060078581548110151561373257fe5b600091825260208083209190910154600160a060020a03908116845290830193909352604090910190208054600160a060020a03191692909116919091179055600780548390811061378057fe5b6000918252602080832090910154600160a060020a038481168452600e90925260409092208054600160a060020a0319169190921617905560019190910190613684565b4290565b60408051808201909152600f548152601054602082015260009081906137ed90614380565b600a54600160a060020a039081166000908152600860205260408082206001908101805463ffffffff97881663ffffffff1991821617909155600b54909416835291200180549290931691161790555050565b600030600160a060020a0316600560009054906101000a9004600160a060020a0316600160a060020a0316638da5cb5b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561389f57600080fd5b505af11580156138b3573d6000803e3d6000fd5b505050506040513d60208110156138c957600080fd5b5051600160a060020a031614905090565b6000808315156138ed5760009150613957565b508282028284828115156138fd57fe5b0414613953576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b8091505b5092915050565b600082820183811015613953576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b600080808311613a15576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f4449564944455f42595f5a45524f0000000000000000000000000000604482015290519081900360640190fd5b8284811515613a2057fe5b04949350505050565b60045460011461170a576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f5245454e5452414e4359000000000000000000000000000000000000604482015290519081900360640190fd5b613a8b61154d565b151561170a576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f494e4143544956450000000000000000000000000000000000000000604482015290519081900360640190fd5b6000811161154a576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f5a45524f5f56414c5545000000000000000000000000000000000000604482015290519081900360640190fd5b60075460005b8181101561258f57613b73600782815481101515613b5957fe5b600091825260209091200154600160a060020a0316613dc0565b600101613b3f565b600081831015613bd5576040805160e560020a62461bcd02815260206004820152600d60248201527f4552525f554e444552464c4f5700000000000000000000000000000000000000604482015290519081900360640190fd5b50900390565b604080517f7472616e7366657246726f6d28616464726573732c616464726573732c75696e81527f74323536290000000000000000000000000000000000000000000000000000006020808301919091528251918290036025018220600160a060020a038088166024850152861660448401526064808401869052845180850390910181526084909301909352810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1990931692909217909152613cbd90859061492d565b50505050565b600160a060020a038082166000818152600c6020908152604091829020548251908152908101869052815192938716927f77f29993cf2c084e726f7e802da0719d6a0ade3e204badc7a3ffd57ecb768c24929181900390910190a3505050565b613d2b61529d565b613d37858585856149bb565b805160208083015160408051938452918301528051929350600160a060020a0380881693908916927f77f29993cf2c084e726f7e802da0719d6a0ade3e204badc7a3ffd57ecb768c2492908290030190a35050505050565b613d97613382565b82613da181613490565b82613dab81613490565b83613db58161342f565b612227868686614783565b80613dca81613303565b600160a060020a0382166000805160206152f48339815191521415613e0a57600160a060020a03821660009081526008602052604090203031905561258f565b604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a038416916370a082319160248083019260209291908290030181600087803b158015613e6b57600080fd5b505af1158015613e7f573d6000803e3d6000fd5b505050506040513d6020811015613e9557600080fd5b5051600160a060020a0383166000908152600860205260409020555050565b613ebd816134f0565b600160a060020a0316331461154a576040805160e560020a62461bcd0281526020600482015260116024820152600080516020615314833981519152604482015290519081900360640190fd5b6000613f14613382565b613f1c6133d2565b82613f2681613490565b83613f308161342f565b83613f3a81614a83565b600554600160a060020a03878116911614801590613f7e5750600160a060020a0386166000908152600860205260409020600101546601000000000000900460ff16155b1515613fd4576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f5245534552564500000000000000000000000000604482015290519081900360640190fd5b60095463ffffffff908116620f4240038116908616111561403f576040805160e560020a62461bcd02815260206004820152601a60248201527f4552525f494e56414c49445f524553455256455f574549474854000000000000604482015290519081900360640190fd5b61ffff61404a612695565b61ffff1610614091576040805160e560020a62461bcd0281526020600482015260196024820152600080516020615334833981519152604482015290519081900360640190fd5b505050600160a060020a0390921660008181526008602052604081208181556001908101805466ff0000000000001963ffffffff80881663ffffffff1993841617919091166601000000000000179092556007805493840181559093527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c6889091018054600160a060020a03191690931790925560098054808416909401909216921691909117905550565b61414461529d565b60008060008061415261529d565b61415a61529d565b600954600a54600b54604080517fb1772d7a000000000000000000000000000000000000000000000000000000008152600160a060020a0393841660048201529183166024830152516000938493849384936c010000000000000000000000009093049091169163b1772d7a9160448082019260609290919082900301818787803b1580156141e857600080fd5b505af11580156141fc573d6000803e3d6000fd5b505050506040513d606081101561421257600080fd5b5080516020820151604090920151601154919c50919a5090985088111561424f5760408051908101604052808b81526020018a8152509a50614373565b60115461425a6137c4565b0396508615156142825760408051808201909152600f54815260105460208201529a50614373565b61025887106142a95760408051808201909152601254815260135460208201529a50614373565b604080518082018252600f548152601054602080830191825283518085019094526012548085526013549185019190915290519198509196506142f19163ffffffff6138da16565b6020860151875191955061430b919063ffffffff6138da16565b9250614335614320858963ffffffff6138da16565b6115e3856102588b900363ffffffff6138da16565b9150614364610258614358876020015189602001516138da90919063ffffffff16565b9063ffffffff6138da16565b90506143708282614af8565b9a505b5050505050505050505090565b600a54600160a060020a03166000818152600c60205260408120549091829190829081906143ad906115a1565b600b549092506143c590600160a060020a03166115a1565b90506143f07f536f7672796e53776170466f726d756c610000000000000000000000000000006134f0565b600160a060020a031663a11aa1b461440f85601463ffffffff6138da16565b885160208a01516040805160e060020a63ffffffff87160281526004810194909452602484018890526044840187905260648401929092526084830152805160a4808401938290030181600087803b15801561446a57600080fd5b505af115801561447e573d6000803e3d6000fd5b505050506040513d604081101561449457600080fd5b5080516020909101519095509350505050915091565b60008080808063ffffffff891615156144e257600160a060020a038b1660009081526008602052604090206001015463ffffffff1698505b63ffffffff8816151561451457600160a060020a038a1660009081526008602052604090206001015463ffffffff1697505b61451d8b6115a1565b91506145288a6115a1565b90506145537f536f7672796e53776170466f726d756c610000000000000000000000000000006134f0565b604080517f94491fab0000000000000000000000000000000000000000000000000000000081526004810185905263ffffffff808d166024830152604482018590528b166064820152608481018990529051600160a060020a0392909216916394491fab9160a4808201926020929091908290030181600087803b1580156145da57600080fd5b505af11580156145ee573d6000803e3d6000fd5b505050506040513d602081101561460457600080fd5b5051945061461185614b4d565b9350614624846115e38c8c8c8c8b614b7d565b9250614636858463ffffffff613b7b16565b9450505096509650969350505050565b61464e613382565b6000614658612695565b61ffff161161469f576040805160e560020a62461bcd0281526020600482015260196024820152600080516020615334833981519152604482015290519081900360640190fd5b600560009054906101000a9004600160a060020a0316600160a060020a03166379ba50976040518163ffffffff1660e060020a028152600401600060405180830381600087803b1580156146f257600080fd5b505af1158015614706573d6000803e3d6000fd5b5050505061170a613b39565b600160a060020a038181166000908152600e602052604090205416151561154a576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f494e56414c49445f504f4f4c5f544f4b454e00000000000000000000604482015290519081900360640190fd5b604080517f7472616e7366657228616464726573732c75696e74323536290000000000000081528151908190036019018120600160a060020a038516602483015260448083018590528351808403909101815260649092019092526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff199093169290921790915261483590849061492d565b505050565b6000806000614847613a83565b8761485181613303565b8761485b81613303565b6148668a8a8a614c56565b9094509250600160a060020a0389166000805160206152f483398151915214156148c657604051600160a060020a0387169085156108fc029086906000818181858888f193505050501580156148c0573d6000803e3d6000fd5b506148d1565b6148d1898786614783565b6148df8a8a898b8888614f6b565b600160a060020a03808b16600090815260086020526040808220600190810154938d1683529120015461491f918c918c9163ffffffff9081169116614ff0565b509198975050505050505050565b6149356152b4565b602060405190810160405280600181525090506020818351602085016000875af180151561496257600080fd5b5080511515614835576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f5452414e534645525f4641494c454400000000000000000000000000604482015290519081900360640190fd5b6149c361529d565b6000806149cf876115a1565b91506149da866115a1565b905063ffffffff85161515614a0e57600160a060020a03871660009081526008602052604090206001015463ffffffff1694505b63ffffffff84161515614a4057600160a060020a03861660009081526008602052604090206001015463ffffffff1693505b6040805180820190915280614a5e8363ffffffff808a16906138da16565b8152602001614a768463ffffffff808916906138da16565b9052979650505050505050565b60008163ffffffff16118015614aa25750620f424063ffffffff821611155b151561154a576040805160e560020a62461bcd02815260206004820152601a60248201527f4552525f494e56414c49445f524553455256455f574549474854000000000000604482015290519081900360640190fd5b614b0061529d565b614b0861529d565b828410614b2057614b198484615081565b9150613957565b614b2a8385615081565b604080518082019091526020808301518252825190820152925090505092915050565b600954600090612ac590620f4240906116c390859068010000000000000000900463ffffffff908116906138da16565b600b546000908190600160a060020a0388811691161415614beb57600a54600160a060020a039081166000908152600c6020908152604080832054600b54909416835290912054865191870151601654614be4949363ffffffff808d1693908c169261513e565b9050614c3a565b600a54600160a060020a039081166000908152600c6020908152604080832054600b54909416835290912054865191870151601654614c37949363ffffffff808c1693908d169261513e565b90505b614c4b620f42406116c385846138da565b979650505050505050565b6000806000614c6361529d565b600080600080614c716151aa565b95509550614c848b8b600080898e6144aa565b91955093509150831515614ce2576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f5a45524f5f5441524745545f414d4f554e5400000000000000000000604482015290519081900360640190fd5b614ceb8a612aff565b9050808410614d44576040805160e560020a62461bcd02815260206004820152601a60248201527f4552525f5441524745545f414d4f554e545f544f4f5f48494748000000000000604482015290519081900360640190fd5b600160a060020a038b166000805160206152f48339815191521415614dbf57348914614dba576040805160e560020a62461bcd02815260206004820152601760248201527f4552525f4554485f414d4f554e545f4d49534d41544348000000000000000000604482015290519081900360640190fd5b614ec1565b34158015614e6b575088614e68614dd58d612aff565b8d600160a060020a03166370a08231306040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b158015614e3057600080fd5b505af1158015614e44573d6000803e3d6000fd5b505050506040513d6020811015614e5a57600080fd5b50519063ffffffff613b7b16565b10155b1515614ec1576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f494e56414c49445f414d4f554e540000000000000000000000000000604482015290519081900360640190fd5b614eca8b613dc0565b614eda818563ffffffff613b7b16565b600160a060020a038b16600090815260086020908152604080832093909355600c90522054614f0f908463ffffffff61395e16565b600160a060020a038b166000908152600c60205260409020558515614f5a57600a54600b54614f4d91600160a060020a0390811691166000806149bb565b8051601255602001516013555b509199919850909650505050505050565b7f80000000000000000000000000000000000000000000000000000000000000008110614f9457fe5b60408051848152602081018490528082018390529051600160a060020a038087169288821692918a16917f276856b36cbc45526a0ba64f44611557a2a8b68662c5388e9fe6d72e86e1c8cb9181900360600190a4505050505050565b600080614fff86868686613d23565b61500885612033565b915081600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561504857600080fd5b505af115801561505c573d6000803e3d6000fd5b505050506040513d602081101561507257600080fd5b50519050612227828287613cc3565b61508961529d565b7314484bfeebc29f863424b06f3529a051a31be5998211156150db57604080518082019091526c0c9f2c9cd04674edea4000000080825260208201908504848115156150d157fe5b0490529050612ac5565b6c0c9f2c9cd04674edea400000008311156151285760408051908101604052806c0c9f2c9cd04674edea400000008152602001846c0c9f2c9cd04674edea4000000085028115156150d157fe5b5060408051808201909152918252602082015290565b60008080615156876143588c8963ffffffff6138da16565b915061516c886143588b8863ffffffff6138da16565b90508181111561519857615191816116c360146143588684038963ffffffff6138da16565b925061519d565b600092505b5050979650505050505050565b60006151b461529d565b60006151be61529d565b6151c661529d565b6151ce6137c4565b92508260115414156151fc5760408051808201909152600f548152601054602082015260009550935061315f565b61520461413c565b60408051808201909152600f5480825260105460208301528251929450909250148015615238575080602001518260200151145b15615249576000829450945061315f565b8151600f55602082015160105560118390556152636137c8565b50600194909350915050565b6040805160a08101825260008082526020820181905291810182905260608101829052608081019190915290565b604080518082019091526000808252602082015290565b60206040519081016040528060019060208202803883395091929150505600536f7672796e53776170436f6e76657274657255706772616465720000000000000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee4552525f4143434553535f44454e4945440000000000000000000000000000004552525f494e56414c49445f524553455256455f434f554e5400000000000000a165627a7a72305820d6ceae0fa88e176fcec4250a8a72385cf1ae86e302a34151470ca7997955ccc20029a165627a7a72305820829c55f8c1d3c151dafc68faa4319701ebffa14c8fd5fd8048d1987b986db5d40029", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x4B JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x11413958 DUP2 EQ PUSH2 0x50 JUMPI DUP1 PUSH4 0x3E8FF43F EQ PUSH2 0xB6 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x8D PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH4 0xFFFFFFFF PUSH1 0x44 CALLDATALOAD AND PUSH2 0xE2 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xC2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xCB PUSH2 0x1D5 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0xFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP1 DUP5 DUP5 DUP5 PUSH2 0xF0 PUSH2 0x1DA JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP4 DUP5 AND DUP2 MSTORE SWAP2 SWAP1 SWAP3 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH4 0xFFFFFFFF SWAP1 SWAP2 AND PUSH1 0x40 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 PUSH1 0x0 CREATE DUP1 ISZERO DUP1 ISZERO PUSH2 0x142 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH32 0xF2FDE38B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD SWAP2 SWAP3 POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND SWAP2 PUSH4 0xF2FDE38B SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1B4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1C8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP SWAP3 SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x55BA DUP1 PUSH2 0x1EB DUP4 CODECOPY ADD SWAP1 JUMP STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x1 PUSH1 0x4 DUP2 SWAP1 SSTORE PUSH1 0x9 DUP1 SLOAD PUSH1 0x1 PUSH1 0x60 PUSH1 0x2 EXP SUB NOT AND SWAP1 SSTORE PUSH1 0x15 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SWAP2 OR SWAP1 SSTORE PUSH3 0x11170 PUSH1 0x16 SSTORE CALLVALUE DUP1 ISZERO PUSH3 0x3C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH1 0x60 DUP1 PUSH3 0x55BA DUP4 CODECOPY DUP2 ADD PUSH1 0x40 SWAP1 DUP2 MSTORE DUP2 MLOAD PUSH1 0x20 DUP4 ADD MLOAD SWAP2 SWAP1 SWAP3 ADD MLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND CALLER OR SWAP1 SSTORE DUP3 DUP3 DUP3 DUP3 DUP3 DUP3 DUP2 DUP1 PUSH3 0x8A DUP2 PUSH5 0x100000000 PUSH3 0x137 DUP2 MUL DIV JUMP JUMPDEST POP PUSH1 0x2 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT SWAP3 DUP4 AND DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x3 DUP1 SLOAD SWAP1 SWAP3 AND OR SWAP1 SSTORE DUP3 PUSH3 0xCA DUP2 PUSH5 0x100000000 PUSH3 0x137 DUP2 MUL DIV JUMP JUMPDEST DUP2 PUSH3 0xDF DUP2 PUSH5 0x100000000 PUSH3 0x1B2 DUP2 MUL DIV JUMP JUMPDEST POP POP PUSH1 0x5 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP5 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 OR SWAP1 SWAP3 SSTORE POP PUSH1 0x9 DUP1 SLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP3 AND PUSH5 0x100000000 MUL PUSH8 0xFFFFFFFF00000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE POP PUSH3 0x22B SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH3 0x1AF JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH3 0xF4240 PUSH4 0xFFFFFFFF DUP3 AND GT ISZERO PUSH3 0x1AF JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F434F4E56455253494F4E5F464545000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x537F DUP1 PUSH3 0x23B PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x312 JUMPI PUSH4 0xFFFFFFFF PUSH1 0xE0 PUSH1 0x2 EXP PUSH1 0x0 CALLDATALOAD DIV AND PUSH3 0x5E319C DUP2 EQ PUSH2 0x3B0 JUMPI DUP1 PUSH4 0x24C7EC7 EQ PUSH2 0x3E3 JUMPI DUP1 PUSH4 0x337E3FB EQ PUSH2 0x3FD JUMPI DUP1 PUSH4 0xA55FB3D EQ PUSH2 0x42E JUMPI DUP1 PUSH4 0xC7D5CD8 EQ PUSH2 0x457 JUMPI DUP1 PUSH4 0xE53AAE9 EQ PUSH2 0x485 JUMPI DUP1 PUSH4 0x119B90CD EQ PUSH2 0x4DA JUMPI DUP1 PUSH4 0x12C2ACA4 EQ PUSH2 0x507 JUMPI DUP1 PUSH4 0x16912F96 EQ PUSH2 0x51C JUMPI DUP1 PUSH4 0x19B64015 EQ PUSH2 0x531 JUMPI DUP1 PUSH4 0x1CFAB290 EQ PUSH2 0x549 JUMPI DUP1 PUSH4 0x1E1401F8 EQ PUSH2 0x56A JUMPI DUP1 PUSH4 0x21E6B53D EQ PUSH2 0x5AD JUMPI DUP1 PUSH4 0x22F3E2D4 EQ PUSH2 0x5CE JUMPI DUP1 PUSH4 0x2630C12F EQ PUSH2 0x5E3 JUMPI DUP1 PUSH4 0x2BD3C107 EQ PUSH2 0x5F8 JUMPI DUP1 PUSH4 0x2BF0C985 EQ PUSH2 0x619 JUMPI DUP1 PUSH4 0x2FE8A6AD EQ PUSH2 0x63A JUMPI DUP1 PUSH4 0x38A5E016 EQ PUSH2 0x64F JUMPI DUP1 PUSH4 0x395900D4 EQ PUSH2 0x664 JUMPI DUP1 PUSH4 0x3E8FF43F EQ PUSH2 0x68E JUMPI DUP1 PUSH4 0x46749468 EQ PUSH2 0x6BA JUMPI DUP1 PUSH4 0x49D10B64 EQ PUSH2 0x6D5 JUMPI DUP1 PUSH4 0x4AF80F0E EQ PUSH2 0x6EA JUMPI DUP1 PUSH4 0x54FD4D50 EQ PUSH2 0x70B JUMPI DUP1 PUSH4 0x55776B77 EQ PUSH2 0x720 JUMPI DUP1 PUSH4 0x5768ADCF EQ PUSH2 0x73A JUMPI DUP1 PUSH4 0x579CD3CA EQ PUSH2 0x75B JUMPI DUP1 PUSH4 0x5E35359E EQ PUSH2 0x770 JUMPI DUP1 PUSH4 0x61CD756E EQ PUSH2 0x79A JUMPI DUP1 PUSH4 0x67B6D57C EQ PUSH2 0x7AF JUMPI DUP1 PUSH4 0x69067D95 EQ PUSH2 0x7D0 JUMPI DUP1 PUSH4 0x690D8320 EQ PUSH2 0x7F4 JUMPI DUP1 PUSH4 0x69D1354A EQ PUSH2 0x815 JUMPI DUP1 PUSH4 0x6A49D2C4 EQ PUSH2 0x82D JUMPI DUP1 PUSH4 0x71F52BF3 EQ PUSH2 0x857 JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x86C JUMPI DUP1 PUSH4 0x7B103999 EQ PUSH2 0x881 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x896 JUMPI DUP1 PUSH4 0x94C275AD EQ PUSH2 0x8AB JUMPI DUP1 PUSH4 0x98A71DCB EQ PUSH2 0x8C0 JUMPI DUP1 PUSH4 0x9B99A8E2 EQ PUSH2 0x8E1 JUMPI DUP1 PUSH4 0xA32BFF44 EQ PUSH2 0x8F6 JUMPI DUP1 PUSH4 0xAF94B8D8 EQ PUSH2 0x90B JUMPI DUP1 PUSH4 0xB4A176D3 EQ PUSH2 0x935 JUMPI DUP1 PUSH4 0xBF754558 EQ PUSH2 0x94A JUMPI DUP1 PUSH4 0xBF7DA6BA EQ PUSH2 0x95F JUMPI DUP1 PUSH4 0xC3321FB0 EQ PUSH2 0x983 JUMPI DUP1 PUSH4 0xC45D3D92 EQ PUSH2 0x998 JUMPI DUP1 PUSH4 0xCDC91C69 EQ PUSH2 0x9AD JUMPI DUP1 PUSH4 0xD031370B EQ PUSH2 0x9C2 JUMPI DUP1 PUSH4 0xD260529C EQ PUSH2 0x9DA JUMPI DUP1 PUSH4 0xD3FB73B4 EQ PUSH2 0x9EF JUMPI DUP1 PUSH4 0xD4EE1D90 EQ PUSH2 0xA04 JUMPI DUP1 PUSH4 0xD55EC697 EQ PUSH2 0xA19 JUMPI DUP1 PUSH4 0xD64C5A1A EQ PUSH2 0xA2E JUMPI DUP1 PUSH4 0xD66BD524 EQ PUSH2 0xA59 JUMPI DUP1 PUSH4 0xD8959512 EQ PUSH2 0xA7A JUMPI DUP1 PUSH4 0xDB2830A4 EQ PUSH2 0xA9B JUMPI DUP1 PUSH4 0xDC75EB9A EQ PUSH2 0xAB0 JUMPI DUP1 PUSH4 0xDC8DE379 EQ PUSH2 0xAC5 JUMPI DUP1 PUSH4 0xE38192E3 EQ PUSH2 0xAE6 JUMPI DUP1 PUSH4 0xE8104AF9 EQ PUSH2 0xB0D JUMPI DUP1 PUSH4 0xE8DC12FF EQ PUSH2 0xB22 JUMPI DUP1 PUSH4 0xEC2240F5 EQ PUSH2 0xB4C JUMPI DUP1 PUSH4 0xECBCA55D EQ PUSH2 0xB61 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0xB7F JUMPI DUP1 PUSH4 0xF9CDDDE2 EQ PUSH2 0xBA0 JUMPI DUP1 PUSH4 0xFC0C546A EQ PUSH2 0xBB5 JUMPI JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x52F4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x0 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH32 0x353C2EB9E53A4A4A6D45D72082FF2E9DC829D1125618772A83EB0E7F86632C43 SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO PUSH2 0x3AE JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245534552564500000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3BC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3D1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0xBCA JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3EF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH1 0x4 CALLDATALOAD ISZERO ISZERO PUSH2 0xBF3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x409 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x412 PUSH2 0xC3B JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x43A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x443 PUSH2 0xC4A JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x463 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x46C PUSH2 0xC53 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x491 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4A6 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0xC5F JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP6 DUP7 MSTORE PUSH4 0xFFFFFFFF SWAP1 SWAP5 AND PUSH1 0x20 DUP7 ADD MSTORE SWAP2 ISZERO ISZERO DUP5 DUP5 ADD MSTORE ISZERO ISZERO PUSH1 0x60 DUP5 ADD MSTORE ISZERO ISZERO PUSH1 0x80 DUP4 ADD MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0xA0 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4E6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x44 CALLDATALOAD AND PUSH2 0xCFA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x513 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x443 PUSH2 0x1464 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x528 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH2 0x14AD JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x53D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x412 PUSH1 0x4 CALLDATALOAD PUSH2 0x14C1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x555 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x46C PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x14ED JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x576 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x594 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x151F JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5B9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x1539 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5DA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x443 PUSH2 0x154D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5EF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x412 PUSH2 0x1582 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x604 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3D1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x15A1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x625 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3D1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x15F6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x646 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x443 PUSH2 0x16D9 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x65B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH2 0x16FA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x670 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x170C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x69A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x6A3 PUSH2 0x17A7 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0xFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6C6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH1 0x4 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH2 0x17AC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6E1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH2 0x1830 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6F6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x1A90 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x717 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x6A3 PUSH2 0x1AC5 JUMP JUMPDEST PUSH2 0x3D1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH1 0x44 CALLDATALOAD PUSH2 0x1ACA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x746 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x412 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x2033 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x767 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x46C PUSH2 0x2051 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x77C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x2069 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7A6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x412 PUSH2 0x217D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7BB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x218C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7DC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x594 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x222F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x800 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x238A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x821 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH1 0x4 CALLDATALOAD PUSH2 0x248F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x839 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH4 0xFFFFFFFF PUSH1 0x24 CALLDATALOAD AND PUSH2 0x2534 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x863 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x6A3 PUSH2 0x2593 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x878 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH2 0x259D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x88D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x412 PUSH2 0x2651 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8A2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x412 PUSH2 0x2660 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8B7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x46C PUSH2 0x266F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8CC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3D1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x2683 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8ED JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x6A3 PUSH2 0x2695 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x902 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x594 PUSH2 0x269B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x917 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x594 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x26A4 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x941 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH2 0x2848 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x956 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x443 PUSH2 0x2874 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x96B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x2879 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x98F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3D1 PUSH2 0x28C1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9A4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x412 PUSH2 0x28C7 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9B9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH2 0x28D6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9CE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x412 PUSH1 0x4 CALLDATALOAD PUSH2 0x292F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9E6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x443 PUSH2 0x2957 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9FB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x412 PUSH2 0x295C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x412 PUSH2 0x296B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA25 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH2 0x297A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA3A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xA43 PUSH2 0x2A6F JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA65 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4A6 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x2A74 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA86 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3D1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x2ABA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xAA7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x594 PUSH2 0x2ACB JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xABC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x412 PUSH2 0x2AF0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xAD1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3D1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x2AFF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xAF2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3D1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH1 0x44 CALLDATALOAD PUSH2 0x2B28 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xB19 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3D1 PUSH2 0x2E8D JUMP JUMPDEST PUSH2 0x3D1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x44 CALLDATALOAD SWAP1 PUSH1 0x64 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x84 CALLDATALOAD AND PUSH2 0x2E93 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xB58 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x594 PUSH2 0x30E6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xB6D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH4 0xFFFFFFFF PUSH1 0x4 CALLDATALOAD AND PUSH2 0x3166 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xB8B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x325B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xBAC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x594 PUSH2 0x32EB JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xBC1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x412 PUSH2 0x32F4 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0xBD6 DUP2 PUSH2 0x3303 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0xBFB PUSH2 0x3382 JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD SWAP2 ISZERO ISZERO PUSH21 0x10000000000000000000000000000000000000000 MUL PUSH21 0xFF0000000000000000000000000000000000000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x15 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH4 0xFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0xC6F PUSH2 0x526F JUMP JUMPDEST POP POP POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP2 MLOAD PUSH1 0xA0 DUP2 ADD DUP4 MSTORE DUP2 SLOAD DUP1 DUP3 MSTORE PUSH1 0x1 SWAP1 SWAP3 ADD SLOAD PUSH4 0xFFFFFFFF DUP2 AND SWAP5 DUP3 ADD DUP6 SWAP1 MSTORE PUSH1 0xFF PUSH5 0x100000000 DUP3 DIV DUP2 AND ISZERO ISZERO SWAP5 DUP4 ADD SWAP5 SWAP1 SWAP5 MSTORE PUSH6 0x10000000000 DUP2 DIV DUP5 AND ISZERO ISZERO PUSH1 0x60 DUP4 ADD MSTORE PUSH7 0x1000000000000 SWAP1 DIV SWAP1 SWAP3 AND ISZERO ISZERO PUSH1 0x80 SWAP1 SWAP3 ADD DUP3 SWAP1 MSTORE SWAP6 SWAP2 SWAP5 POP SWAP2 SWAP3 POP DUP3 SWAP2 SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0xD0A PUSH2 0x33D2 JUMP JUMPDEST PUSH2 0xD12 PUSH2 0x3382 JUMP JUMPDEST DUP8 PUSH2 0xD1C DUP2 PUSH2 0x3303 JUMP JUMPDEST DUP8 PUSH2 0xD26 DUP2 PUSH2 0x342F JUMP JUMPDEST DUP8 PUSH2 0xD30 DUP2 PUSH2 0x342F JUMP JUMPDEST DUP10 PUSH2 0xD3A DUP2 PUSH2 0x3490 JUMP JUMPDEST DUP10 PUSH2 0xD44 DUP2 PUSH2 0x3490 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x8DA5CB5B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD ADDRESS SWAP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP2 PUSH4 0x8DA5CB5B SWAP2 PUSH1 0x4 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xDA3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xDB7 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xDCD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ PUSH2 0xE2D JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F414E43484F525F4E4F545F4F574E4544000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0xE56 PUSH32 0x436861696E6C696E6B4F7261636C6557686974656C6973740000000000000000 PUSH2 0x34F0 JUMP JUMPDEST SWAP10 POP DUP10 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x3AF32ABF DUP14 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xEB3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xEC7 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xEDD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD ISZERO ISZERO PUSH2 0xF35 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4F5241434C450000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP10 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x3AF32ABF DUP13 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xF90 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xFA4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xFBA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD ISZERO ISZERO PUSH2 0x1012 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4F5241434C450000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x101A PUSH2 0x3588 JUMP JUMPDEST PUSH1 0xA DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP16 AND OR SWAP1 SSTORE PUSH1 0x7 DUP1 SLOAD PUSH1 0x0 SWAP1 DUP2 LT PUSH2 0x1044 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP15 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x10A2 JUMPI PUSH1 0x7 DUP1 SLOAD PUSH1 0x1 SWAP1 DUP2 LT PUSH2 0x1072 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0xB DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x10DD JUMP JUMPDEST PUSH1 0x7 DUP1 SLOAD PUSH1 0x0 SWAP1 DUP2 LT PUSH2 0x10B1 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0xB DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMPDEST PUSH2 0x1106 PUSH32 0x436F6E766572746572466163746F727900000000000000000000000000000000 PUSH2 0x34F0 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xC977AED2 PUSH2 0x111C PUSH2 0x17A7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH2 0xFFFF AND PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x115D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1171 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1187 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP SWAP9 POP DUP9 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x1B27444E DUP15 PUSH1 0xB PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP16 DUP16 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP6 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP5 POP POP POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1258 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x126C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1282 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x9 DUP1 SLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH13 0x1000000000000000000000000 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND DUP2 MUL SWAP2 SWAP1 SWAP2 OR SWAP2 DUP3 SWAP1 SSTORE PUSH1 0xA SLOAD PUSH1 0xB SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xAE81800400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP3 DUP7 AND PUSH1 0x4 DUP5 ADD MSTORE SWAP1 DUP6 AND PUSH1 0x24 DUP4 ADD MSTORE DUP1 MLOAD SWAP3 SWAP1 SWAP4 DIV SWAP1 SWAP4 AND SWAP3 PUSH4 0xAE818004 SWAP3 PUSH1 0x44 DUP1 DUP4 ADD SWAP4 SWAP2 SWAP3 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1324 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1338 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x134E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD MLOAD PUSH1 0x10 DUP2 SWAP1 SSTORE PUSH1 0xF DUP3 SWAP1 SSTORE PUSH1 0x12 SWAP2 SWAP1 SWAP2 SSTORE PUSH1 0x13 SSTORE PUSH2 0x1372 PUSH2 0x37C4 JUMP JUMPDEST PUSH1 0x11 SSTORE PUSH1 0xA SLOAD PUSH2 0x138A SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0xBCA JUMP JUMPDEST PUSH1 0xA SLOAD SWAP1 SWAP9 POP PUSH2 0x13A2 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x2AFF JUMP JUMPDEST PUSH1 0xB SLOAD SWAP1 SWAP8 POP PUSH2 0x13BA SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x2AFF JUMP JUMPDEST SWAP6 POP DUP7 DUP9 EQ ISZERO PUSH2 0x13E5 JUMPI PUSH1 0x0 DUP9 GT DUP1 PUSH2 0x13D3 JUMPI POP PUSH1 0x0 DUP7 GT JUMPDEST ISZERO PUSH2 0x13E0 JUMPI PUSH2 0x13E0 PUSH2 0x37C8 JUMP JUMPDEST PUSH2 0x140E JUMP JUMPDEST PUSH1 0x0 DUP9 GT DUP1 ISZERO PUSH2 0x13F5 JUMPI POP PUSH1 0x0 DUP8 GT JUMPDEST DUP1 ISZERO PUSH2 0x1401 JUMPI POP PUSH1 0x0 DUP7 GT JUMPDEST ISZERO PUSH2 0x140E JUMPI PUSH2 0x140E PUSH2 0x37C8 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x1425 PUSH2 0x17A7 JUMP JUMPDEST PUSH2 0xFFFF AND PUSH32 0x6B08C2E2C9969E55A647A764DB9B554D64DC42F1A704DA11A6D5B129AD163F2C PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x52F4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x0 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH32 0x353C2EB9E53A4A4A6D45D72082FF2E9DC829D1125618772A83EB0E7F86632C43 SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH2 0x14B5 PUSH2 0x3382 JUMP JUMPDEST PUSH1 0x15 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x7 DUP3 DUP2 SLOAD DUP2 LT ISZERO ISZERO PUSH2 0x14D2 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0x14F9 DUP2 PUSH2 0x3303 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH4 0xFFFFFFFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x152D DUP6 DUP6 DUP6 PUSH2 0x26A4 JUMP JUMPDEST SWAP2 POP SWAP2 POP SWAP4 POP SWAP4 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1541 PUSH2 0x3382 JUMP JUMPDEST PUSH2 0x154A DUP2 PUSH2 0x218C JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1557 PUSH2 0x3840 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x157D JUMPI POP PUSH1 0x9 SLOAD PUSH13 0x1000000000000000000000000 SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND ISZERO ISZERO JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH13 0x1000000000000000000000000 SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0x15AD DUP2 PUSH2 0x3303 JUMP JUMPDEST PUSH2 0x15EF PUSH2 0x15B9 DUP5 PUSH2 0x2AFF JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x15E3 SWAP1 PUSH1 0x13 PUSH4 0xFFFFFFFF PUSH2 0x38DA AND JUMP JUMPDEST SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x395E AND JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x18160DDD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x163C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1650 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1666 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP2 SWAP6 POP AND SWAP3 POP PUSH2 0x1691 DUP4 PUSH2 0x2AFF JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 SWAP3 POP SWAP1 POP PUSH2 0x16CF DUP2 PUSH2 0x16C3 DUP5 DUP8 PUSH4 0xFFFFFFFF PUSH2 0x38DA AND JUMP JUMPDEST SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x39BB AND JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH2 0x1702 PUSH2 0x3382 JUMP JUMPDEST PUSH2 0x170A PUSH2 0x28D6 JUMP JUMPDEST JUMP JUMPDEST PUSH2 0x1714 PUSH2 0x3382 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x5E35359E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP6 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP3 ADD DUP6 SWAP1 MSTORE SWAP2 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP2 PUSH4 0x5E35359E SWAP2 PUSH1 0x64 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x178A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x179E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 SWAP1 JUMP JUMPDEST PUSH2 0x17B4 PUSH2 0x3382 JUMP JUMPDEST DUP2 PUSH1 0x14 PUSH1 0x0 PUSH1 0x7 PUSH1 0x0 DUP2 SLOAD DUP2 LT ISZERO ISZERO PUSH2 0x17C9 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 SWAP1 SWAP2 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP4 MSTORE DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x40 ADD DUP2 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE PUSH1 0x7 DUP1 SLOAD DUP4 SWAP3 PUSH1 0x14 SWAP3 SWAP1 SWAP2 PUSH1 0x1 SWAP1 DUP2 LT PUSH2 0x1807 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 SWAP1 SWAP2 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP4 MSTORE DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x40 ADD SWAP1 KECCAK256 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ DUP1 PUSH2 0x1865 JUMPI POP PUSH1 0x3 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x18A9 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5314 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x18D2 PUSH32 0x436F6E7472616374526567697374727900000000000000000000000000000000 PUSH2 0x34F0 JUMP JUMPDEST PUSH1 0x2 SLOAD SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP4 AND SWAP2 AND EQ DUP1 ISZERO SWAP1 PUSH2 0x18FB JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x1951 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245474953545259000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0xBB34534C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH32 0x436F6E7472616374526567697374727900000000000000000000000000000000 PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP2 PUSH4 0xBB34534C SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x19D5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x19E9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x19FF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ ISZERO PUSH2 0x1A60 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245474953545259000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP5 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT SWAP3 DUP4 AND OR SWAP1 SWAP3 SSTORE SWAP1 SWAP2 AND SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x1A98 PUSH2 0x3382 JUMP JUMPDEST DUP1 PUSH2 0x1AA2 DUP2 PUSH2 0x342F JUMP JUMPDEST POP PUSH1 0x6 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x20 DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x1ADA PUSH2 0x3A29 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH2 0x1AE7 PUSH2 0x3A83 JUMP JUMPDEST DUP8 PUSH2 0x1AF1 DUP2 PUSH2 0x3303 JUMP JUMPDEST DUP8 PUSH2 0x1AFB DUP2 PUSH2 0x3AE1 JUMP JUMPDEST DUP8 PUSH2 0x1B05 DUP2 PUSH2 0x3AE1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x52F4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ PUSH2 0x1B2A JUMPI CALLVALUE ISZERO PUSH2 0x1B2E JUMP JUMPDEST DUP10 CALLVALUE EQ JUMPDEST ISZERO ISZERO PUSH2 0x1B84 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4554485F414D4F554E545F4D49534D41544348000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x1B8C PUSH2 0x3B39 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x52F4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ ISZERO PUSH2 0x1C2E JUMPI PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x52F4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x0 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH32 0x353C2EB9E53A4A4A6D45D72082FF2E9DC829D1125618772A83EB0E7F86632C42 SLOAD PUSH2 0x1BF4 SWAP1 CALLVALUE PUSH4 0xFFFFFFFF PUSH2 0x3B7B AND JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x52F4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x0 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH32 0x353C2EB9E53A4A4A6D45D72082FF2E9DC829D1125618772A83EB0E7F86632C42 SSTORE JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x15 SLOAD SWAP1 SWAP8 POP PUSH1 0xFF AND ISZERO PUSH2 0x1CF7 JUMPI PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x14 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD ISZERO DUP1 PUSH2 0x1CA1 JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x14 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x1C9E DUP9 DUP13 PUSH4 0xFFFFFFFF PUSH2 0x395E AND JUMP JUMPDEST GT ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x1CF7 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4D41585F5354414B45445F42414C414E43455F524541434845440000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP13 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD DUP2 MLOAD PUSH32 0x18160DDD00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP2 MLOAD SWAP5 AND SWAP10 POP DUP10 SWAP4 PUSH4 0x18160DDD SWAP4 PUSH1 0x4 DUP1 DUP5 ADD SWAP5 SWAP4 DUP4 SWAP1 SUB ADD SWAP1 DUP3 SWAP1 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1D64 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1D78 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1D8E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP5 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x52F4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ PUSH2 0x1DBC JUMPI PUSH2 0x1DBC DUP12 CALLER ADDRESS DUP14 PUSH2 0x3BDB JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x1DE5 SWAP1 DUP12 PUSH4 0xFFFFFFFF PUSH2 0x395E AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP13 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE PUSH2 0x1E0E DUP8 DUP12 PUSH4 0xFFFFFFFF PUSH2 0x395E AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP13 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE SWAP4 POP DUP7 ISZERO DUP1 PUSH2 0x1E37 JUMPI POP DUP5 ISZERO JUMPDEST ISZERO PUSH2 0x1E44 JUMPI DUP10 SWAP4 POP PUSH2 0x1E5B JUMP JUMPDEST PUSH2 0x1E58 DUP8 PUSH2 0x16C3 DUP13 DUP9 PUSH4 0xFFFFFFFF PUSH2 0x38DA AND JUMP JUMPDEST SWAP4 POP JUMPDEST DUP9 DUP5 LT ISZERO PUSH2 0x1EB3 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F52455455524E5F544F4F5F4C4F570000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xC6C3BBE600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP10 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE CALLER PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP3 ADD DUP9 SWAP1 MSTORE SWAP2 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP2 PUSH4 0xC6C3BBE6 SWAP2 PUSH1 0x64 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1F27 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1F3B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x1F47 PUSH2 0x37C8 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND CALLER PUSH32 0x4A1A2A6176E9646D9E3157F7C2AB3C499F18337C0B0828CFB28E0A61DE4A11F7 DUP13 PUSH2 0x1F84 DUP12 DUP3 PUSH4 0xFFFFFFFF PUSH2 0x395E AND JUMP JUMPDEST PUSH2 0x1F94 DUP11 DUP11 PUSH4 0xFFFFFFFF PUSH2 0x395E AND JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP4 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP3 SWAP1 SWAP3 MSTORE DUP3 DUP3 ADD MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG3 PUSH2 0x1FCB DUP7 PUSH2 0x1FC5 DUP8 DUP8 PUSH4 0xFFFFFFFF PUSH2 0x395E AND JUMP JUMPDEST DUP14 PUSH2 0x3CC3 JUMP JUMPDEST PUSH2 0x2020 PUSH1 0x7 PUSH1 0x0 DUP2 SLOAD DUP2 LT ISZERO ISZERO PUSH2 0x1FDE JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x7 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP2 PUSH1 0x1 SWAP1 DUP2 LT PUSH2 0x2005 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP1 DUP1 PUSH2 0x3D23 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0x4 SSTORE POP SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD AND SWAP1 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH9 0x10000000000000000 SWAP1 DIV PUSH4 0xFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2073 PUSH2 0x3A29 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH2 0x2080 PUSH2 0x3382 JUMP JUMPDEST PUSH2 0x2097 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x52D4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x34F0 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD SWAP1 SWAP2 POP PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 PUSH2 0x20D4 JUMPI POP PUSH2 0x20D2 PUSH2 0x154D JUMP JUMPDEST ISZERO JUMPDEST DUP1 PUSH2 0x20EC JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ JUMPDEST ISZERO ISZERO PUSH2 0x2130 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5314 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x213B DUP5 DUP5 DUP5 PUSH2 0x3D8F JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x2172 JUMPI PUSH2 0x2172 DUP5 PUSH2 0x3DC0 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0x4 SSTORE POP POP JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH2 0x2194 PUSH2 0x3382 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x52D4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x21AC DUP2 PUSH2 0x3EB4 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xF2FDE38B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP2 PUSH4 0xF2FDE38B SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2213 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2227 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 DUP12 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x18160DDD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x227C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2290 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x22A6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP15 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD SWAP1 SWAP4 AND DUP3 MSTORE PUSH1 0xC SWAP1 MSTORE KECCAK256 SLOAD SWAP1 SWAP9 POP SWAP7 POP DUP8 DUP12 LT ISZERO PUSH2 0x2371 JUMPI PUSH1 0xA SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x2309 SWAP1 PUSH1 0x14 PUSH4 0xFFFFFFFF PUSH2 0x38DA AND JUMP JUMPDEST PUSH1 0xA SLOAD SWAP1 SWAP7 POP PUSH2 0x2321 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x15A1 JUMP JUMPDEST SWAP5 POP DUP5 DUP7 LT PUSH2 0x2331 JUMPI DUP5 DUP7 PUSH2 0x2334 JUMP JUMPDEST DUP6 DUP6 JUMPDEST SWAP1 SWAP5 POP SWAP3 POP PUSH2 0x234D DUP9 PUSH2 0x16C3 DUP14 DUP11 PUSH4 0xFFFFFFFF PUSH2 0x38DA AND JUMP JUMPDEST SWAP2 POP PUSH2 0x2363 DUP4 PUSH2 0x16C3 DUP5 DUP8 PUSH4 0xFFFFFFFF PUSH2 0x38DA AND JUMP JUMPDEST SWAP10 POP POP DUP9 DUP2 SUB SWAP8 POP DUP9 PUSH2 0x237B JUMP JUMPDEST SWAP6 SWAP9 POP PUSH1 0x0 SWAP8 POP DUP9 SWAP6 JUMPDEST POP POP POP POP POP POP POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2394 PUSH2 0x3A29 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH2 0x23A1 PUSH2 0x3382 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x52F4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x23B9 DUP2 PUSH2 0x3303 JUMP JUMPDEST PUSH2 0x23D0 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x52D4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x34F0 JUMP JUMPDEST SWAP2 POP PUSH2 0x23DA PUSH2 0x154D JUMP JUMPDEST ISZERO DUP1 PUSH2 0x23F3 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 DUP2 AND SWAP2 AND EQ JUMPDEST ISZERO ISZERO PUSH2 0x2437 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5314 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP1 ADDRESS BALANCE DUP1 ISZERO PUSH2 0x8FC MUL SWAP2 PUSH1 0x0 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x246D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH2 0x2485 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x52F4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x3DC0 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0x4 SSTORE POP JUMP JUMPDEST PUSH2 0x2497 PUSH2 0x3382 JUMP JUMPDEST PUSH3 0x186A0 DUP2 GT ISZERO PUSH2 0x24F2 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F44594E414D49435F4645455F464143544F520000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x16 SLOAD PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP4 SWAP1 MSTORE DUP1 MLOAD PUSH32 0x382FD3516344712A511DCD464FF8E6AB54139D6A28F64087A3253353EE7A5679 SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG1 PUSH1 0x16 SSTORE JUMP JUMPDEST PUSH1 0x2 PUSH2 0x253E PUSH2 0x2695 JUMP JUMPDEST PUSH2 0xFFFF AND LT PUSH2 0x2585 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5334 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x258F DUP3 DUP3 PUSH2 0x3F0A JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x157D PUSH2 0x2695 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x25ED JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5314 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND SWAP4 SWAP1 SWAP2 AND SWAP2 PUSH32 0x343765429AEA5A34B3FF6A3785A98A5ABB2597ACA87BFBB58632C173D585373A SWAP2 LOG3 PUSH1 0x1 DUP1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND OR SWAP1 SWAP2 SSTORE AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH5 0x100000000 SWAP1 DIV PUSH4 0xFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x14 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x7 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0xF SLOAD PUSH1 0x10 SLOAD DUP3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x26B2 PUSH2 0x529D JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x26C0 PUSH2 0x3A83 JUMP JUMPDEST PUSH2 0x26C9 DUP13 PUSH2 0x3303 JUMP JUMPDEST PUSH2 0x26D2 DUP12 PUSH2 0x3303 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP13 DUP2 AND SWAP1 DUP13 AND EQ ISZERO PUSH2 0x2736 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F534F555243455F54415247455400000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x273E PUSH2 0x37C4 JUMP JUMPDEST PUSH1 0x11 SLOAD EQ ISZERO PUSH2 0x27E5 JUMPI PUSH1 0xF PUSH1 0x40 DUP1 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD SLOAD DUP2 MSTORE POP POP SWAP5 POP PUSH1 0x8 PUSH1 0x0 DUP14 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH4 0xFFFFFFFF AND SWAP7 POP PUSH1 0x8 PUSH1 0x0 DUP13 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH4 0xFFFFFFFF AND SWAP6 POP PUSH2 0x2825 JUMP JUMPDEST PUSH2 0x27ED PUSH2 0x413C JUMP JUMPDEST SWAP5 POP PUSH2 0x27F8 DUP6 PUSH2 0x4380 JUMP JUMPDEST PUSH1 0xA SLOAD SWAP2 SWAP6 POP SWAP4 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP14 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x281E JUMPI DUP4 SWAP7 POP DUP3 SWAP6 POP PUSH2 0x2825 JUMP JUMPDEST DUP3 SWAP7 POP DUP4 SWAP6 POP JUMPDEST PUSH2 0x2833 DUP13 DUP13 DUP10 DUP10 DUP10 DUP16 PUSH2 0x44AA JUMP JUMPDEST SWAP2 SWAP15 SWAP2 SWAP14 POP SWAP1 SWAP12 POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x2850 PUSH2 0x3382 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x2 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x1 DUP2 JUMP JUMPDEST PUSH2 0x2881 PUSH2 0x3382 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x52D4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x2899 DUP2 PUSH2 0x3EB4 JUMP JUMPDEST DUP3 PUSH2 0x28A3 DUP2 PUSH2 0x3303 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE JUMP JUMPDEST PUSH1 0x11 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x1 PUSH2 0x28E0 PUSH2 0x2695 JUMP JUMPDEST PUSH2 0xFFFF AND GT PUSH2 0x2927 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5334 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x170A PUSH2 0x4646 JUMP JUMPDEST PUSH1 0x7 DUP1 SLOAD DUP3 SWAP1 DUP2 LT PUSH2 0x293D JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP1 POP DUP2 JUMP JUMPDEST PUSH1 0x1 SWAP1 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2984 PUSH2 0x3382 JUMP JUMPDEST PUSH2 0x299B PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x52D4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x34F0 JUMP JUMPDEST PUSH1 0x5 SLOAD SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x29B5 PUSH2 0x17A7 JUMP JUMPDEST PUSH2 0xFFFF AND PUSH32 0x6B08C2E2C9969E55A647A764DB9B554D64DC42F1A704DA11A6D5B129AD163F2C PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH2 0x29EE DUP2 PUSH2 0x325B JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x90F58C9600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 AND SWAP2 PUSH4 0x90F58C96 SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2A4F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2A63 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x154A PUSH2 0x259D JUMP JUMPDEST PUSH1 0x14 SWAP1 JUMP JUMPDEST PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD PUSH4 0xFFFFFFFF DUP2 AND SWAP1 PUSH1 0xFF PUSH5 0x100000000 DUP3 DIV DUP2 AND SWAP2 PUSH6 0x10000000000 DUP2 DIV DUP3 AND SWAP2 PUSH7 0x1000000000000 SWAP1 SWAP2 DIV AND DUP6 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2AC5 DUP3 PUSH2 0x2AFF JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2AD6 PUSH2 0x529D JUMP JUMPDEST PUSH2 0x2ADE PUSH2 0x413C JUMP JUMPDEST DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD MLOAD SWAP1 SWAP5 SWAP1 SWAP4 POP SWAP2 POP POP JUMP JUMPDEST PUSH1 0xB SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0x2B0B DUP2 PUSH2 0x3303 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x2B39 PUSH2 0x3A29 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH2 0x2B46 PUSH2 0x3A83 JUMP JUMPDEST DUP9 PUSH2 0x2B50 DUP2 PUSH2 0x4712 JUMP JUMPDEST DUP9 PUSH2 0x2B5A DUP2 PUSH2 0x3AE1 JUMP JUMPDEST DUP9 PUSH2 0x2B64 DUP2 PUSH2 0x3AE1 JUMP JUMPDEST PUSH2 0x2B6C PUSH2 0x3B39 JUMP JUMPDEST DUP12 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x18160DDD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2BAA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2BBE JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2BD4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP8 POP PUSH2 0x2BE2 DUP13 DUP13 PUSH2 0x222F JUMP JUMPDEST POP SWAP7 POP DUP10 DUP8 LT ISZERO PUSH2 0x2C3D JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F52455455524E5F544F4F5F4C4F570000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0xE PUSH1 0x0 DUP14 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP6 POP PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xF6B911BC DUP14 CALLER DUP15 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP4 POP POP POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2D0A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2D1E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x2D4B SWAP2 POP DUP9 PUSH4 0xFFFFFFFF PUSH2 0x3B7B AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE PUSH1 0xC SWAP1 MSTORE KECCAK256 SLOAD PUSH2 0x2D80 SWAP1 DUP9 PUSH4 0xFFFFFFFF PUSH2 0x3B7B AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP3 SWAP1 SSTORE SWAP1 SWAP6 POP PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x52F4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ ISZERO PUSH2 0x2DE6 JUMPI PUSH1 0x40 MLOAD CALLER SWAP1 DUP9 ISZERO PUSH2 0x8FC MUL SWAP1 DUP10 SWAP1 PUSH1 0x0 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x2DE0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH2 0x2DF1 JUMP JUMPDEST PUSH2 0x2DF1 DUP7 CALLER DUP10 PUSH2 0x4783 JUMP JUMPDEST PUSH2 0x2DF9 PUSH2 0x37C8 JUMP JUMPDEST PUSH2 0x2E09 DUP9 DUP13 PUSH4 0xFFFFFFFF PUSH2 0x3B7B AND JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP10 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP9 SWAP1 MSTORE DUP1 DUP3 ADD DUP4 SWAP1 MSTORE SWAP1 MLOAD SWAP2 SWAP6 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 AND SWAP2 CALLER SWAP2 PUSH32 0xBC7D19D505C7EC4DB83F3B51F19FB98C4C8A99922E7839D1EE608DFBEE29501B SWAP2 SWAP1 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG3 PUSH2 0x2E65 DUP13 DUP6 DUP9 PUSH2 0x3CC3 JUMP JUMPDEST PUSH2 0x2E78 PUSH1 0x7 PUSH1 0x0 DUP2 SLOAD DUP2 LT ISZERO ISZERO PUSH2 0x1FDE JUMPI INVALID JUMPDEST POP POP PUSH1 0x1 PUSH1 0x4 SSTORE POP SWAP3 SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x16 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2E9D PUSH2 0x3A29 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH32 0x536F7672796E537761704E6574776F726B000000000000000000000000000000 PUSH2 0x2ECC DUP2 PUSH2 0x3EB4 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 DUP2 AND SWAP1 DUP8 AND EQ ISZERO PUSH2 0x2F30 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F534F555243455F54415247455400000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND ISZERO DUP1 PUSH2 0x3073 JUMPI POP PUSH1 0x6 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x3AF32ABF00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP2 PUSH4 0x3AF32ABF SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2FAB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2FBF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2FD5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD DUP1 ISZERO PUSH2 0x3073 JUMPI POP PUSH1 0x6 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x3AF32ABF00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP2 PUSH4 0x3AF32ABF SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3046 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x305A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x3070 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD JUMPDEST ISZERO ISZERO PUSH2 0x30C9 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4E4F545F57484954454C495354454400000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x30D6 DUP8 DUP8 DUP8 DUP8 DUP8 PUSH2 0x483A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x4 SSTORE SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x30F1 PUSH2 0x529D JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x30FC PUSH2 0x413C JUMP JUMPDEST SWAP3 POP PUSH2 0x3107 DUP4 PUSH2 0x4380 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x7 PUSH1 0x0 DUP2 SLOAD DUP2 LT ISZERO ISZERO PUSH2 0x311B JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0xA SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x3150 JUMPI PUSH4 0xFFFFFFFF DUP1 DUP4 AND SWAP6 POP DUP2 AND SWAP4 POP PUSH2 0x315F JUMP JUMPDEST PUSH4 0xFFFFFFFF DUP1 DUP3 AND SWAP6 POP DUP3 AND SWAP4 POP JUMPDEST POP POP POP SWAP1 SWAP2 JUMP JUMPDEST PUSH2 0x316E PUSH2 0x3382 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH4 0xFFFFFFFF PUSH5 0x100000000 SWAP1 SWAP2 DIV DUP2 AND SWAP1 DUP3 AND GT ISZERO PUSH2 0x31DA JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F434F4E56455253494F4E5F464545000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH4 0xFFFFFFFF PUSH9 0x10000000000000000 SWAP1 SWAP4 DIV DUP4 AND DUP2 MSTORE SWAP2 DUP4 AND PUSH1 0x20 DUP4 ADD MSTORE DUP1 MLOAD PUSH32 0x81CD2FFB37DD237C0E4E2A3DE5265FCF9DEB43D3E7801E80DB9F1CCFBA7EE600 SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG1 PUSH1 0x9 DUP1 SLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP3 AND PUSH9 0x10000000000000000 MUL PUSH12 0xFFFFFFFF0000000000000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x3263 PUSH2 0x3382 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x32C9 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F4F574E4552000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x12 SLOAD PUSH1 0x13 SLOAD DUP3 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO PUSH2 0x154A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245534552564500000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x170A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5314 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x33DA PUSH2 0x154D JUMP JUMPDEST ISZERO PUSH2 0x170A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xA PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F41435449564500000000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ADDRESS EQ ISZERO PUSH2 0x154A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F414444524553535F49535F53454C4600000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0x154A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xBB34534C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP2 PUSH4 0xBB34534C SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3556 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x356A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x3580 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP6 POP DUP6 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x6D3E313E PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x35E8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x35FC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x3625 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 MLOAD PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x363D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD PUSH1 0x20 DUP2 ADD DUP5 DUP2 GT ISZERO PUSH2 0x3650 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP6 PUSH1 0x20 DUP3 MUL DUP4 ADD GT PUSH5 0x100000000 DUP3 GT OR ISZERO PUSH2 0x366D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP DUP1 MLOAD PUSH1 0x7 SLOAD SWAP2 SWAP10 POP ISZERO SWAP8 POP SWAP6 POP PUSH1 0x0 SWAP5 POP POP POP POP JUMPDEST DUP3 DUP3 LT ISZERO PUSH2 0x2227 JUMPI DUP4 ISZERO PUSH2 0x3703 JUMPI DUP6 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x9CBF9E36 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x36D0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x36E4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x36FA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 POP PUSH2 0x371E JUMP JUMPDEST DUP5 DUP3 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3711 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD SWAP1 POP JUMPDEST DUP1 PUSH1 0xD PUSH1 0x0 PUSH1 0x7 DUP6 DUP2 SLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3732 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 SWAP2 SWAP1 SWAP2 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 DUP2 AND DUP5 MSTORE SWAP1 DUP4 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x40 SWAP1 SWAP2 ADD SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND SWAP3 SWAP1 SWAP2 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH1 0x7 DUP1 SLOAD DUP4 SWAP1 DUP2 LT PUSH2 0x3780 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 SWAP1 SWAP2 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 DUP2 AND DUP5 MSTORE PUSH1 0xE SWAP1 SWAP3 MSTORE PUSH1 0x40 SWAP1 SWAP3 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND SWAP2 SWAP1 SWAP3 AND OR SWAP1 SSTORE PUSH1 0x1 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x3684 JUMP JUMPDEST TIMESTAMP SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0xF SLOAD DUP2 MSTORE PUSH1 0x10 SLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 SWAP1 DUP2 SWAP1 PUSH2 0x37ED SWAP1 PUSH2 0x4380 JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 PUSH1 0x1 SWAP1 DUP2 ADD DUP1 SLOAD PUSH4 0xFFFFFFFF SWAP8 DUP9 AND PUSH4 0xFFFFFFFF NOT SWAP2 DUP3 AND OR SWAP1 SWAP2 SSTORE PUSH1 0xB SLOAD SWAP1 SWAP5 AND DUP4 MSTORE SWAP2 KECCAK256 ADD DUP1 SLOAD SWAP3 SWAP1 SWAP4 AND SWAP2 AND OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 ADDRESS PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x8DA5CB5B PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x389F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x38B3 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x38C9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 ISZERO ISZERO PUSH2 0x38ED JUMPI PUSH1 0x0 SWAP2 POP PUSH2 0x3957 JUMP JUMPDEST POP DUP3 DUP3 MUL DUP3 DUP5 DUP3 DUP2 ISZERO ISZERO PUSH2 0x38FD JUMPI INVALID JUMPDEST DIV EQ PUSH2 0x3953 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP1 SWAP2 POP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 ADD DUP4 DUP2 LT ISZERO PUSH2 0x3953 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP4 GT PUSH2 0x3A15 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4449564944455F42595F5A45524F0000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP3 DUP5 DUP2 ISZERO ISZERO PUSH2 0x3A20 JUMPI INVALID JUMPDEST DIV SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH1 0x1 EQ PUSH2 0x170A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5245454E5452414E4359000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x3A8B PUSH2 0x154D JUMP JUMPDEST ISZERO ISZERO PUSH2 0x170A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E4143544956450000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 GT PUSH2 0x154A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5A45524F5F56414C5545000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x258F JUMPI PUSH2 0x3B73 PUSH1 0x7 DUP3 DUP2 SLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3B59 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x3DC0 JUMP JUMPDEST PUSH1 0x1 ADD PUSH2 0x3B3F JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT ISZERO PUSH2 0x3BD5 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F554E444552464C4F5700000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP SWAP1 SUB SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x7472616E7366657246726F6D28616464726573732C616464726573732C75696E DUP2 MSTORE PUSH32 0x7432353629000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP3 MLOAD SWAP2 DUP3 SWAP1 SUB PUSH1 0x25 ADD DUP3 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP9 AND PUSH1 0x24 DUP6 ADD MSTORE DUP7 AND PUSH1 0x44 DUP5 ADD MSTORE PUSH1 0x64 DUP1 DUP5 ADD DUP7 SWAP1 MSTORE DUP5 MLOAD DUP1 DUP6 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x84 SWAP1 SWAP4 ADD SWAP1 SWAP4 MSTORE DUP2 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE PUSH2 0x3CBD SWAP1 DUP6 SWAP1 PUSH2 0x492D JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP3 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SLOAD DUP3 MLOAD SWAP1 DUP2 MSTORE SWAP1 DUP2 ADD DUP7 SWAP1 MSTORE DUP2 MLOAD SWAP3 SWAP4 DUP8 AND SWAP3 PUSH32 0x77F29993CF2C084E726F7E802DA0719D6A0ADE3E204BADC7A3FFD57ECB768C24 SWAP3 SWAP2 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH2 0x3D2B PUSH2 0x529D JUMP JUMPDEST PUSH2 0x3D37 DUP6 DUP6 DUP6 DUP6 PUSH2 0x49BB JUMP JUMPDEST DUP1 MLOAD PUSH1 0x20 DUP1 DUP4 ADD MLOAD PUSH1 0x40 DUP1 MLOAD SWAP4 DUP5 MSTORE SWAP2 DUP4 ADD MSTORE DUP1 MLOAD SWAP3 SWAP4 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP9 AND SWAP4 SWAP1 DUP10 AND SWAP3 PUSH32 0x77F29993CF2C084E726F7E802DA0719D6A0ADE3E204BADC7A3FFD57ECB768C24 SWAP3 SWAP1 DUP3 SWAP1 SUB ADD SWAP1 LOG3 POP POP POP POP POP JUMP JUMPDEST PUSH2 0x3D97 PUSH2 0x3382 JUMP JUMPDEST DUP3 PUSH2 0x3DA1 DUP2 PUSH2 0x3490 JUMP JUMPDEST DUP3 PUSH2 0x3DAB DUP2 PUSH2 0x3490 JUMP JUMPDEST DUP4 PUSH2 0x3DB5 DUP2 PUSH2 0x342F JUMP JUMPDEST PUSH2 0x2227 DUP7 DUP7 DUP7 PUSH2 0x4783 JUMP JUMPDEST DUP1 PUSH2 0x3DCA DUP2 PUSH2 0x3303 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 AND PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x52F4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ ISZERO PUSH2 0x3E0A JUMPI PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 ADDRESS BALANCE SWAP1 SSTORE PUSH2 0x258F JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3E6B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3E7F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x3E95 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE POP POP JUMP JUMPDEST PUSH2 0x3EBD DUP2 PUSH2 0x34F0 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x154A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5314 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x3F14 PUSH2 0x3382 JUMP JUMPDEST PUSH2 0x3F1C PUSH2 0x33D2 JUMP JUMPDEST DUP3 PUSH2 0x3F26 DUP2 PUSH2 0x3490 JUMP JUMPDEST DUP4 PUSH2 0x3F30 DUP2 PUSH2 0x342F JUMP JUMPDEST DUP4 PUSH2 0x3F3A DUP2 PUSH2 0x4A83 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 DUP2 AND SWAP2 AND EQ DUP1 ISZERO SWAP1 PUSH2 0x3F7E JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x3FD4 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245534552564500000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x9 SLOAD PUSH4 0xFFFFFFFF SWAP1 DUP2 AND PUSH3 0xF4240 SUB DUP2 AND SWAP1 DUP7 AND GT ISZERO PUSH2 0x403F JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F574549474854000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0xFFFF PUSH2 0x404A PUSH2 0x2695 JUMP JUMPDEST PUSH2 0xFFFF AND LT PUSH2 0x4091 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5334 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP2 DUP2 SSTORE PUSH1 0x1 SWAP1 DUP2 ADD DUP1 SLOAD PUSH7 0xFF000000000000 NOT PUSH4 0xFFFFFFFF DUP1 DUP9 AND PUSH4 0xFFFFFFFF NOT SWAP4 DUP5 AND OR SWAP2 SWAP1 SWAP2 AND PUSH7 0x1000000000000 OR SWAP1 SWAP3 SSTORE PUSH1 0x7 DUP1 SLOAD SWAP4 DUP5 ADD DUP2 SSTORE SWAP1 SWAP4 MSTORE PUSH32 0xA66CC928B5EDB82AF9BD49922954155AB7B0942694BEA4CE44661D9A8736C688 SWAP1 SWAP2 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND SWAP1 SWAP4 OR SWAP1 SWAP3 SSTORE PUSH1 0x9 DUP1 SLOAD DUP1 DUP5 AND SWAP1 SWAP5 ADD SWAP1 SWAP3 AND SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE POP JUMP JUMPDEST PUSH2 0x4144 PUSH2 0x529D JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x4152 PUSH2 0x529D JUMP JUMPDEST PUSH2 0x415A PUSH2 0x529D JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0xA SLOAD PUSH1 0xB SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xB1772D7A00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND PUSH1 0x4 DUP3 ADD MSTORE SWAP2 DUP4 AND PUSH1 0x24 DUP4 ADD MSTORE MLOAD PUSH1 0x0 SWAP4 DUP5 SWAP4 DUP5 SWAP4 DUP5 SWAP4 PUSH13 0x1000000000000000000000000 SWAP1 SWAP4 DIV SWAP1 SWAP2 AND SWAP2 PUSH4 0xB1772D7A SWAP2 PUSH1 0x44 DUP1 DUP3 ADD SWAP3 PUSH1 0x60 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x41E8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x41FC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x60 DUP2 LT ISZERO PUSH2 0x4212 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD PUSH1 0x20 DUP3 ADD MLOAD PUSH1 0x40 SWAP1 SWAP3 ADD MLOAD PUSH1 0x11 SLOAD SWAP2 SWAP13 POP SWAP2 SWAP11 POP SWAP1 SWAP9 POP DUP9 GT ISZERO PUSH2 0x424F JUMPI PUSH1 0x40 DUP1 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 DUP12 DUP2 MSTORE PUSH1 0x20 ADD DUP11 DUP2 MSTORE POP SWAP11 POP PUSH2 0x4373 JUMP JUMPDEST PUSH1 0x11 SLOAD PUSH2 0x425A PUSH2 0x37C4 JUMP JUMPDEST SUB SWAP7 POP DUP7 ISZERO ISZERO PUSH2 0x4282 JUMPI PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0xF SLOAD DUP2 MSTORE PUSH1 0x10 SLOAD PUSH1 0x20 DUP3 ADD MSTORE SWAP11 POP PUSH2 0x4373 JUMP JUMPDEST PUSH2 0x258 DUP8 LT PUSH2 0x42A9 JUMPI PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x12 SLOAD DUP2 MSTORE PUSH1 0x13 SLOAD PUSH1 0x20 DUP3 ADD MSTORE SWAP11 POP PUSH2 0x4373 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD DUP3 MSTORE PUSH1 0xF SLOAD DUP2 MSTORE PUSH1 0x10 SLOAD PUSH1 0x20 DUP1 DUP4 ADD SWAP2 DUP3 MSTORE DUP4 MLOAD DUP1 DUP6 ADD SWAP1 SWAP5 MSTORE PUSH1 0x12 SLOAD DUP1 DUP6 MSTORE PUSH1 0x13 SLOAD SWAP2 DUP6 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP1 MLOAD SWAP2 SWAP9 POP SWAP2 SWAP7 POP PUSH2 0x42F1 SWAP2 PUSH4 0xFFFFFFFF PUSH2 0x38DA AND JUMP JUMPDEST PUSH1 0x20 DUP7 ADD MLOAD DUP8 MLOAD SWAP2 SWAP6 POP PUSH2 0x430B SWAP2 SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x38DA AND JUMP JUMPDEST SWAP3 POP PUSH2 0x4335 PUSH2 0x4320 DUP6 DUP10 PUSH4 0xFFFFFFFF PUSH2 0x38DA AND JUMP JUMPDEST PUSH2 0x15E3 DUP6 PUSH2 0x258 DUP12 SWAP1 SUB PUSH4 0xFFFFFFFF PUSH2 0x38DA AND JUMP JUMPDEST SWAP2 POP PUSH2 0x4364 PUSH2 0x258 PUSH2 0x4358 DUP8 PUSH1 0x20 ADD MLOAD DUP10 PUSH1 0x20 ADD MLOAD PUSH2 0x38DA SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x38DA AND JUMP JUMPDEST SWAP1 POP PUSH2 0x4370 DUP3 DUP3 PUSH2 0x4AF8 JUMP JUMPDEST SWAP11 POP JUMPDEST POP POP POP POP POP POP POP POP POP POP SWAP1 JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD SWAP1 SWAP2 DUP3 SWAP2 SWAP1 DUP3 SWAP1 DUP2 SWAP1 PUSH2 0x43AD SWAP1 PUSH2 0x15A1 JUMP JUMPDEST PUSH1 0xB SLOAD SWAP1 SWAP3 POP PUSH2 0x43C5 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x15A1 JUMP JUMPDEST SWAP1 POP PUSH2 0x43F0 PUSH32 0x536F7672796E53776170466F726D756C61000000000000000000000000000000 PUSH2 0x34F0 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xA11AA1B4 PUSH2 0x440F DUP6 PUSH1 0x14 PUSH4 0xFFFFFFFF PUSH2 0x38DA AND JUMP JUMPDEST DUP9 MLOAD PUSH1 0x20 DUP11 ADD MLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0xE0 PUSH1 0x2 EXP PUSH4 0xFFFFFFFF DUP8 AND MUL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP5 SWAP1 SWAP5 MSTORE PUSH1 0x24 DUP5 ADD DUP9 SWAP1 MSTORE PUSH1 0x44 DUP5 ADD DUP8 SWAP1 MSTORE PUSH1 0x64 DUP5 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x84 DUP4 ADD MSTORE DUP1 MLOAD PUSH1 0xA4 DUP1 DUP5 ADD SWAP4 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x446A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x447E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x4494 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD MLOAD SWAP1 SWAP6 POP SWAP4 POP POP POP POP SWAP2 POP SWAP2 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP1 DUP1 PUSH4 0xFFFFFFFF DUP10 AND ISZERO ISZERO PUSH2 0x44E2 JUMPI PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH4 0xFFFFFFFF AND SWAP9 POP JUMPDEST PUSH4 0xFFFFFFFF DUP9 AND ISZERO ISZERO PUSH2 0x4514 JUMPI PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP11 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH4 0xFFFFFFFF AND SWAP8 POP JUMPDEST PUSH2 0x451D DUP12 PUSH2 0x15A1 JUMP JUMPDEST SWAP2 POP PUSH2 0x4528 DUP11 PUSH2 0x15A1 JUMP JUMPDEST SWAP1 POP PUSH2 0x4553 PUSH32 0x536F7672796E53776170466F726D756C61000000000000000000000000000000 PUSH2 0x34F0 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x94491FAB00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH4 0xFFFFFFFF DUP1 DUP14 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP3 ADD DUP6 SWAP1 MSTORE DUP12 AND PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 DUP2 ADD DUP10 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 PUSH4 0x94491FAB SWAP2 PUSH1 0xA4 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x45DA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x45EE JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x4604 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP5 POP PUSH2 0x4611 DUP6 PUSH2 0x4B4D JUMP JUMPDEST SWAP4 POP PUSH2 0x4624 DUP5 PUSH2 0x15E3 DUP13 DUP13 DUP13 DUP13 DUP12 PUSH2 0x4B7D JUMP JUMPDEST SWAP3 POP PUSH2 0x4636 DUP6 DUP5 PUSH4 0xFFFFFFFF PUSH2 0x3B7B AND JUMP JUMPDEST SWAP5 POP POP POP SWAP7 POP SWAP7 POP SWAP7 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0x464E PUSH2 0x3382 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4658 PUSH2 0x2695 JUMP JUMPDEST PUSH2 0xFFFF AND GT PUSH2 0x469F JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5334 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x79BA5097 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x46F2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x4706 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x170A PUSH2 0x3B39 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD AND ISZERO ISZERO PUSH2 0x154A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F504F4F4C5F544F4B454E00000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x7472616E7366657228616464726573732C75696E743235362900000000000000 DUP2 MSTORE DUP2 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x19 ADD DUP2 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x64 SWAP1 SWAP3 ADD SWAP1 SWAP3 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE PUSH2 0x4835 SWAP1 DUP5 SWAP1 PUSH2 0x492D JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x4847 PUSH2 0x3A83 JUMP JUMPDEST DUP8 PUSH2 0x4851 DUP2 PUSH2 0x3303 JUMP JUMPDEST DUP8 PUSH2 0x485B DUP2 PUSH2 0x3303 JUMP JUMPDEST PUSH2 0x4866 DUP11 DUP11 DUP11 PUSH2 0x4C56 JUMP JUMPDEST SWAP1 SWAP5 POP SWAP3 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP10 AND PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x52F4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ ISZERO PUSH2 0x48C6 JUMPI PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND SWAP1 DUP6 ISZERO PUSH2 0x8FC MUL SWAP1 DUP7 SWAP1 PUSH1 0x0 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x48C0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH2 0x48D1 JUMP JUMPDEST PUSH2 0x48D1 DUP10 DUP8 DUP7 PUSH2 0x4783 JUMP JUMPDEST PUSH2 0x48DF DUP11 DUP11 DUP10 DUP12 DUP9 DUP9 PUSH2 0x4F6B JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 PUSH1 0x1 SWAP1 DUP2 ADD SLOAD SWAP4 DUP14 AND DUP4 MSTORE SWAP2 KECCAK256 ADD SLOAD PUSH2 0x491F SWAP2 DUP13 SWAP2 DUP13 SWAP2 PUSH4 0xFFFFFFFF SWAP1 DUP2 AND SWAP2 AND PUSH2 0x4FF0 JUMP JUMPDEST POP SWAP2 SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x4935 PUSH2 0x52B4 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE POP SWAP1 POP PUSH1 0x20 DUP2 DUP4 MLOAD PUSH1 0x20 DUP6 ADD PUSH1 0x0 DUP8 GAS CALL DUP1 ISZERO ISZERO PUSH2 0x4962 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD ISZERO ISZERO PUSH2 0x4835 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5452414E534645525F4641494C454400000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x49C3 PUSH2 0x529D JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x49CF DUP8 PUSH2 0x15A1 JUMP JUMPDEST SWAP2 POP PUSH2 0x49DA DUP7 PUSH2 0x15A1 JUMP JUMPDEST SWAP1 POP PUSH4 0xFFFFFFFF DUP6 AND ISZERO ISZERO PUSH2 0x4A0E JUMPI PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH4 0xFFFFFFFF AND SWAP5 POP JUMPDEST PUSH4 0xFFFFFFFF DUP5 AND ISZERO ISZERO PUSH2 0x4A40 JUMPI PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH4 0xFFFFFFFF AND SWAP4 POP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE DUP1 PUSH2 0x4A5E DUP4 PUSH4 0xFFFFFFFF DUP1 DUP11 AND SWAP1 PUSH2 0x38DA AND JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x4A76 DUP5 PUSH4 0xFFFFFFFF DUP1 DUP10 AND SWAP1 PUSH2 0x38DA AND JUMP JUMPDEST SWAP1 MSTORE SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH4 0xFFFFFFFF AND GT DUP1 ISZERO PUSH2 0x4AA2 JUMPI POP PUSH3 0xF4240 PUSH4 0xFFFFFFFF DUP3 AND GT ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x154A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F574549474854000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x4B00 PUSH2 0x529D JUMP JUMPDEST PUSH2 0x4B08 PUSH2 0x529D JUMP JUMPDEST DUP3 DUP5 LT PUSH2 0x4B20 JUMPI PUSH2 0x4B19 DUP5 DUP5 PUSH2 0x5081 JUMP JUMPDEST SWAP2 POP PUSH2 0x3957 JUMP JUMPDEST PUSH2 0x4B2A DUP4 DUP6 PUSH2 0x5081 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x20 DUP1 DUP4 ADD MLOAD DUP3 MSTORE DUP3 MLOAD SWAP1 DUP3 ADD MSTORE SWAP3 POP SWAP1 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x0 SWAP1 PUSH2 0x2AC5 SWAP1 PUSH3 0xF4240 SWAP1 PUSH2 0x16C3 SWAP1 DUP6 SWAP1 PUSH9 0x10000000000000000 SWAP1 DIV PUSH4 0xFFFFFFFF SWAP1 DUP2 AND SWAP1 PUSH2 0x38DA AND JUMP JUMPDEST PUSH1 0xB SLOAD PUSH1 0x0 SWAP1 DUP2 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x4BEB JUMPI PUSH1 0xA SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD PUSH1 0xB SLOAD SWAP1 SWAP5 AND DUP4 MSTORE SWAP1 SWAP2 KECCAK256 SLOAD DUP7 MLOAD SWAP2 DUP8 ADD MLOAD PUSH1 0x16 SLOAD PUSH2 0x4BE4 SWAP5 SWAP4 PUSH4 0xFFFFFFFF DUP1 DUP14 AND SWAP4 SWAP1 DUP13 AND SWAP3 PUSH2 0x513E JUMP JUMPDEST SWAP1 POP PUSH2 0x4C3A JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD PUSH1 0xB SLOAD SWAP1 SWAP5 AND DUP4 MSTORE SWAP1 SWAP2 KECCAK256 SLOAD DUP7 MLOAD SWAP2 DUP8 ADD MLOAD PUSH1 0x16 SLOAD PUSH2 0x4C37 SWAP5 SWAP4 PUSH4 0xFFFFFFFF DUP1 DUP13 AND SWAP4 SWAP1 DUP14 AND SWAP3 PUSH2 0x513E JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH2 0x4C4B PUSH3 0xF4240 PUSH2 0x16C3 DUP6 DUP5 PUSH2 0x38DA JUMP JUMPDEST SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x4C63 PUSH2 0x529D JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x4C71 PUSH2 0x51AA JUMP JUMPDEST SWAP6 POP SWAP6 POP PUSH2 0x4C84 DUP12 DUP12 PUSH1 0x0 DUP1 DUP10 DUP15 PUSH2 0x44AA JUMP JUMPDEST SWAP2 SWAP6 POP SWAP4 POP SWAP2 POP DUP4 ISZERO ISZERO PUSH2 0x4CE2 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5A45524F5F5441524745545F414D4F554E5400000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x4CEB DUP11 PUSH2 0x2AFF JUMP JUMPDEST SWAP1 POP DUP1 DUP5 LT PUSH2 0x4D44 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5441524745545F414D4F554E545F544F4F5F48494748000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x52F4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ ISZERO PUSH2 0x4DBF JUMPI CALLVALUE DUP10 EQ PUSH2 0x4DBA JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4554485F414D4F554E545F4D49534D41544348000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x4EC1 JUMP JUMPDEST CALLVALUE ISZERO DUP1 ISZERO PUSH2 0x4E6B JUMPI POP DUP9 PUSH2 0x4E68 PUSH2 0x4DD5 DUP14 PUSH2 0x2AFF JUMP JUMPDEST DUP14 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x4E30 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x4E44 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x4E5A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x3B7B AND JUMP JUMPDEST LT ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x4EC1 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F414D4F554E540000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x4ECA DUP12 PUSH2 0x3DC0 JUMP JUMPDEST PUSH2 0x4EDA DUP2 DUP6 PUSH4 0xFFFFFFFF PUSH2 0x3B7B AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE PUSH1 0xC SWAP1 MSTORE KECCAK256 SLOAD PUSH2 0x4F0F SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0x395E AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE DUP6 ISZERO PUSH2 0x4F5A JUMPI PUSH1 0xA SLOAD PUSH1 0xB SLOAD PUSH2 0x4F4D SWAP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 DUP2 AND SWAP2 AND PUSH1 0x0 DUP1 PUSH2 0x49BB JUMP JUMPDEST DUP1 MLOAD PUSH1 0x12 SSTORE PUSH1 0x20 ADD MLOAD PUSH1 0x13 SSTORE JUMPDEST POP SWAP2 SWAP10 SWAP2 SWAP9 POP SWAP1 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0x8000000000000000000000000000000000000000000000000000000000000000 DUP2 LT PUSH2 0x4F94 JUMPI INVALID JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP5 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 SWAP1 MSTORE DUP1 DUP3 ADD DUP4 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP8 AND SWAP3 DUP9 DUP3 AND SWAP3 SWAP2 DUP11 AND SWAP2 PUSH32 0x276856B36CBC45526A0BA64F44611557A2A8B68662C5388E9FE6D72E86E1C8CB SWAP2 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG4 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x4FFF DUP7 DUP7 DUP7 DUP7 PUSH2 0x3D23 JUMP JUMPDEST PUSH2 0x5008 DUP6 PUSH2 0x2033 JUMP JUMPDEST SWAP2 POP DUP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x18160DDD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x5048 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x505C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x5072 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 POP PUSH2 0x2227 DUP3 DUP3 DUP8 PUSH2 0x3CC3 JUMP JUMPDEST PUSH2 0x5089 PUSH2 0x529D JUMP JUMPDEST PUSH20 0x14484BFEEBC29F863424B06F3529A051A31BE599 DUP3 GT ISZERO PUSH2 0x50DB JUMPI PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH13 0xC9F2C9CD04674EDEA40000000 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 DUP6 DIV DUP5 DUP2 ISZERO ISZERO PUSH2 0x50D1 JUMPI INVALID JUMPDEST DIV SWAP1 MSTORE SWAP1 POP PUSH2 0x2AC5 JUMP JUMPDEST PUSH13 0xC9F2C9CD04674EDEA40000000 DUP4 GT ISZERO PUSH2 0x5128 JUMPI PUSH1 0x40 DUP1 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH13 0xC9F2C9CD04674EDEA40000000 DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH13 0xC9F2C9CD04674EDEA40000000 DUP6 MUL DUP2 ISZERO ISZERO PUSH2 0x50D1 JUMPI INVALID JUMPDEST POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 PUSH2 0x5156 DUP8 PUSH2 0x4358 DUP13 DUP10 PUSH4 0xFFFFFFFF PUSH2 0x38DA AND JUMP JUMPDEST SWAP2 POP PUSH2 0x516C DUP9 PUSH2 0x4358 DUP12 DUP9 PUSH4 0xFFFFFFFF PUSH2 0x38DA AND JUMP JUMPDEST SWAP1 POP DUP2 DUP2 GT ISZERO PUSH2 0x5198 JUMPI PUSH2 0x5191 DUP2 PUSH2 0x16C3 PUSH1 0x14 PUSH2 0x4358 DUP7 DUP5 SUB DUP10 PUSH4 0xFFFFFFFF PUSH2 0x38DA AND JUMP JUMPDEST SWAP3 POP PUSH2 0x519D JUMP JUMPDEST PUSH1 0x0 SWAP3 POP JUMPDEST POP POP SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x51B4 PUSH2 0x529D JUMP JUMPDEST PUSH1 0x0 PUSH2 0x51BE PUSH2 0x529D JUMP JUMPDEST PUSH2 0x51C6 PUSH2 0x529D JUMP JUMPDEST PUSH2 0x51CE PUSH2 0x37C4 JUMP JUMPDEST SWAP3 POP DUP3 PUSH1 0x11 SLOAD EQ ISZERO PUSH2 0x51FC JUMPI PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0xF SLOAD DUP2 MSTORE PUSH1 0x10 SLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 SWAP6 POP SWAP4 POP PUSH2 0x315F JUMP JUMPDEST PUSH2 0x5204 PUSH2 0x413C JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0xF SLOAD DUP1 DUP3 MSTORE PUSH1 0x10 SLOAD PUSH1 0x20 DUP4 ADD MSTORE DUP3 MLOAD SWAP3 SWAP5 POP SWAP1 SWAP3 POP EQ DUP1 ISZERO PUSH2 0x5238 JUMPI POP DUP1 PUSH1 0x20 ADD MLOAD DUP3 PUSH1 0x20 ADD MLOAD EQ JUMPDEST ISZERO PUSH2 0x5249 JUMPI PUSH1 0x0 DUP3 SWAP5 POP SWAP5 POP PUSH2 0x315F JUMP JUMPDEST DUP2 MLOAD PUSH1 0xF SSTORE PUSH1 0x20 DUP3 ADD MLOAD PUSH1 0x10 SSTORE PUSH1 0x11 DUP4 SWAP1 SSTORE PUSH2 0x5263 PUSH2 0x37C8 JUMP JUMPDEST POP PUSH1 0x1 SWAP5 SWAP1 SWAP4 POP SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xA0 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE SWAP2 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x60 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 SWAP1 PUSH1 0x20 DUP3 MUL DUP1 CODESIZE DUP4 CODECOPY POP SWAP2 SWAP3 SWAP2 POP POP JUMP STOP MSTORE8 PUSH16 0x7672796E53776170436F6E7665727465 PUSH19 0x55706772616465720000000000000000000000 STOP STOP STOP STOP STOP STOP 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee GASLIMIT MSTORE MSTORE 0x5f COINBASE NUMBER NUMBER GASLIMIT MSTORE8 MSTORE8 0x5f DIFFICULTY GASLIMIT 0x4e 0x49 GASLIMIT DIFFICULTY STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP GASLIMIT MSTORE MSTORE 0x5f 0x49 0x4e JUMP COINBASE 0x4c 0x49 DIFFICULTY 0x5f MSTORE GASLIMIT MSTORE8 GASLIMIT MSTORE JUMP GASLIMIT 0x5f NUMBER 0x4f SSTORE 0x4e SLOAD STOP STOP STOP STOP STOP STOP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 0xd6 0xce 0xae 0xf 0xa8 DUP15 OR PUSH16 0xCEC4250A8A72385CF1AE86E302A34151 0x47 0xc 0xa7 SWAP10 PUSH26 0x55CCC20029A165627A7A72305820829C55F8C1D3C151DAFC68FA LOG4 BALANCE SWAP8 ADD 0xeb SELFDESTRUCT LOG1 0x4c DUP16 0xd5 REVERT DUP1 0x48 0xd1 SWAP9 PUSH28 0x986DB5D4002900000000000000000000000000000000000000000000 ", + "sourceMap": "219:1042:28:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;913:345;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;913:345:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;423:81;;8:9:-1;5:2;;;30:1;27;20:12;5:2;423:81:28;;;;;;;;;;;;;;;;;;;;;;;913:345;1035:10;1058:23;1134:7;1144:9;1155:17;1084:89;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1084:89:28;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;1184:39:28;;;;;;1212:10;1184:39;;;;;;1058:115;;-1:-1:-1;1184:27:28;;;;;;:39;;;;;-1:-1:-1;;1184:39:28;;;;;;;;-1:-1:-1;1184:27:28;:39;;;5:2:-1;;;;30:1;27;20:12;5:2;1184:39:28;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;1241:9:28;;913:345;-1:-1:-1;;;;;;;913:345:28:o;423:81::-;495:1;423:81;:::o;219:1042::-;;;;;;;;;;:::o" + }, + "methodIdentifiers": { + "converterType()": "3e8ff43f", + "createConverter(address,address,uint32)": "11413958" + } + }, + "userdoc": { + "methods": {} + } + } + }, + "solidity/contracts/converter/types/liquidity-pool-v2/PoolTokensContainer.sol": { + "PoolTokensContainer": { + "abi": [ + { + "constant": true, + "inputs": [], + "name": "name", + "outputs": [ + { + "name": "", + "type": "string" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "decimals", + "outputs": [ + { + "name": "", + "type": "uint8" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_token", + "type": "address" + }, + { + "name": "_to", + "type": "address" + }, + { + "name": "_amount", + "type": "uint256" + } + ], + "name": "withdrawTokens", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "poolTokens", + "outputs": [ + { + "name": "", + "type": "address[]" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "acceptOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "owner", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "symbol", + "outputs": [ + { + "name": "", + "type": "string" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "createToken", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_token", + "type": "address" + }, + { + "name": "_to", + "type": "address" + }, + { + "name": "_amount", + "type": "uint256" + } + ], + "name": "mint", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "newOwner", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_token", + "type": "address" + }, + { + "name": "_from", + "type": "address" + }, + { + "name": "_amount", + "type": "uint256" + } + ], + "name": "burn", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "name": "_name", + "type": "string" + }, + { + "name": "_symbol", + "type": "string" + }, + { + "name": "_decimals", + "type": "uint8" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "_prevOwner", + "type": "address" + }, + { + "indexed": true, + "name": "_newOwner", + "type": "address" + } + ], + "name": "OwnerUpdate", + "type": "event" + } + ], + "devdoc": { + "methods": { + "acceptOwnership()": { + "details": "used by a new owner to accept an ownership transfer" + }, + "burn(address,address,uint256)": { + "details": "removes tokens from the given account and decreases the pool token supply\r can only be called by the contract owner\r ", + "params": { + "_amount": "amount to burn\r", + "_from": "account to remove the tokens from\r", + "_token": "pool token address\r" + } + }, + "createToken()": { + "details": "creates a new pool token and adds it to the list\r ", + "return": "new pool token address\r" + }, + "mint(address,address,uint256)": { + "details": "increases the pool token supply and sends the new tokens to the given account\r can only be called by the contract owner\r ", + "params": { + "_amount": "amount to mint\r", + "_to": "account to receive the newly minted tokens\r", + "_token": "pool token address\r" + } + }, + "poolTokens()": { + "details": "returns the list of pool tokens\r ", + "return": "list of pool tokens\r" + }, + "transferOwnership(address)": { + "details": "allows transferring the contract ownership the new owner still needs to accept the transfer can only be called by the contract owner", + "params": { + "_newOwner": "new contract owner" + } + }, + "withdrawTokens(address,address,uint256)": { + "details": "withdraws tokens held by the contract and sends them to an account can only be called by the owner", + "params": { + "_amount": "amount to withdraw", + "_to": "account to receive the new amount", + "_token": "ERC20 token contract address" + } + } + } + }, + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "60806040523480156200001157600080fd5b506040516200224038038062002240833981016040908152815160208301519183015160008054600160a060020a03191633178155918401805190949390930192909110620000c157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f4552525f494e56414c49445f4e414d4500000000000000000000000000000000604482015290519081900360640190fd5b81516000106200013257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f4552525f494e56414c49445f53594d424f4c0000000000000000000000000000604482015290519081900360640190fd5b8251620001479060029060208601906200017b565b5081516200015d9060039060208501906200017b565b506004805460ff191660ff9290921691909117905550620002209050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620001be57805160ff1916838001178555620001ee565b82800160010185558215620001ee579182015b82811115620001ee578251825591602001919060010190620001d1565b50620001fc92915062000200565b5090565b6200021d91905b80821115620001fc576000815560010162000207565b90565b61201080620002306000396000f300608060405260043610620000ad5763ffffffff60e060020a60003504166306fdde038114620000b2578063313ce56714620001425780635e35359e14620001705780636d3e313e146200019f57806379ba509714620002095780638da5cb5b146200022157806395d89b4114620002555780639cbf9e36146200026d578063c6c3bbe61462000285578063d4ee1d9014620002b2578063f2fde38b14620002ca578063f6b911bc14620002ee575b600080fd5b348015620000bf57600080fd5b50620000ca6200031b565b6040805160208082528351818301528351919283929083019185019080838360005b8381101562000106578181015183820152602001620000ec565b50505050905090810190601f168015620001345780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156200014f57600080fd5b506200015a620003aa565b6040805160ff9092168252519081900360200190f35b3480156200017d57600080fd5b506200019d600160a060020a0360043581169060243516604435620003b3565b005b348015620001ac57600080fd5b50620001b7620003f6565b60408051602080825283518183015283519192839290830191858101910280838360005b83811015620001f5578181015183820152602001620001db565b505050509050019250505060405180910390f35b3480156200021657600080fd5b506200019d6200045a565b3480156200022e57600080fd5b50620002396200052e565b60408051600160a060020a039092168252519081900360200190f35b3480156200026257600080fd5b50620000ca6200053d565b3480156200027a57600080fd5b50620002396200059b565b3480156200029257600080fd5b506200019d600160a060020a036004358116906024351660443562000882565b348015620002bf57600080fd5b50620002396200090e565b348015620002d757600080fd5b506200019d600160a060020a03600435166200091d565b348015620002fb57600080fd5b506200019d600160a060020a0360043581169060243516604435620009bd565b6002805460408051602060018416156101000260001901909316849004601f81018490048402820184019092528181529291830182828015620003a25780601f106200037657610100808354040283529160200191620003a2565b820191906000526020600020905b8154815290600101906020018083116200038457829003601f168201915b505050505081565b60045460ff1681565b620003bd62000a2b565b82620003c98162000a90565b82620003d58162000a90565b83620003e18162000af4565b620003ee86868662000b56565b505050505050565b606060058054806020026020016040519081016040528092919081815260200182805480156200045057602002820191906000526020600020905b8154600160a060020a0316815260019091019060200180831162000431575b5050505050905090565b600154600160a060020a03163314620004bd576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b60015460008054604051600160a060020a0393841693909116917f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91a3600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b600054600160a060020a031681565b6003805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015620003a25780601f106200037657610100808354040283529160200191620003a2565b60006060806000620005ac62000a2b565b600580541062000606576040805160e560020a62461bcd02815260206004820152601560248201527f4552525f4d41585f4c494d49545f524541434845440000000000000000000000604482015290519081900360640190fd5b60028054604080516020601f60001961010060018716150201909416859004938401819004810282018101909252828152620006a89390929091830182828015620006955780601f10620006695761010080835404028352916020019162000695565b820191906000526020600020905b8154815290600101906020018083116200067757829003601f168201915b5050600554600101925062000c12915050565b6003805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529396506200070e939291830182828015620006955780601f10620006695761010080835404028352916020019162000695565b6004549092508390839060ff166200072562000d8c565b60ff82166040820152606080825284519082015283518190602080830191608084019188019080838360005b838110156200076b57818101518382015260200162000751565b50505050905090810190601f168015620007995780820380516001836020036101000a031916815260200191505b50838103825285518152855160209182019187019080838360005b83811015620007ce578181015183820152602001620007b4565b50505050905090810190601f168015620007fc5780820380516001836020036101000a031916815260200191505b5095505050505050604051809103906000f08015801562000821573d6000803e3d6000fd5b50600580546001810182556000919091527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038316179055949350505050565b6200088c62000a2b565b82600160a060020a031663867904b483836040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050600060405180830381600087803b158015620008f057600080fd5b505af115801562000905573d6000803e3d6000fd5b50505050505050565b600154600160a060020a031681565b6200092762000a2b565b600054600160a060020a03828116911614156200098e576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f53414d455f4f574e4552000000000000000000000000000000000000604482015290519081900360640190fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b620009c762000a2b565b82600160a060020a031663a24835d183836040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050600060405180830381600087803b158015620008f057600080fd5b600054600160a060020a0316331462000a8e576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b565b600160a060020a038116151562000af1576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b50565b600160a060020a03811630141562000af1576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f414444524553535f49535f53454c4600000000000000000000000000604482015290519081900360640190fd5b604080517f7472616e7366657228616464726573732c75696e74323536290000000000000081528151908190036019018120600160a060020a038516602483015260448083018590528351808403909101815260649092019092526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009093169290921790915262000c0d90849062000cfa565b505050565b606082827f30000000000000000000000000000000000000000000000000000000000000007f01000000000000000000000000000000000000000000000000000000000000009004016040516020018083805190602001908083835b6020831062000c8f5780518252601f19909201916020918201910162000c6e565b6001836020036101000a0380198251168184511680821785525050505050509050018260ff1660ff167f010000000000000000000000000000000000000000000000000000000000000002815260010192505050604051602081830303815290604052905092915050565b62000d0462000d9d565b602060405190810160405280600181525090506020818351602085016000875af180151562000d3257600080fd5b508051151562000c0d576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f5452414e534645525f4641494c454400000000000000000000000000604482015290519081900360640190fd5b6040516112288062000dbd83390190565b6020604051908101604052806001906020820280388339509192915050560060806040526008805460ff191660011790553480156200001e57600080fd5b506040516200122838038062001228833981016040908152815160208301519183015160008054600160a060020a0319163317815591840180519094939093019290918491849184918110620000d557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f4552525f494e56414c49445f4e414d4500000000000000000000000000000000604482015290519081900360640190fd5b82516000106200014657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f4552525f494e56414c49445f53594d424f4c0000000000000000000000000000604482015290519081900360640190fd5b83516200015b906002906020870190620001a8565b50825162000171906003906020860190620001a8565b506004805460ff191660ff9390931692909217909155600581905533600090815260066020526040902055506200024d9350505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620001eb57805160ff19168380011785556200021b565b828001600101855582156200021b579182015b828111156200021b578251825591602001919060010190620001fe565b50620002299291506200022d565b5090565b6200024a91905b8082111562000229576000815560010162000234565b90565b610fcb806200025d6000396000f3006080604052600436106101065763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde03811461010b578063095ea7b3146101955780631608f18f146101cd57806318160ddd146101e957806323b872dd14610210578063313ce5671461023a57806354fd4d50146102655780635e35359e1461029157806370a08231146102bb57806379ba5097146102dc578063867904b4146102f15780638da5cb5b1461031557806395d89b4114610346578063a24835d11461035b578063a9059cbb1461037f578063bef97c87146103a3578063d4ee1d90146103b8578063dd62ed3e146103cd578063f2fde38b146103f4575b600080fd5b34801561011757600080fd5b50610120610415565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561015a578181015183820152602001610142565b50505050905090810190601f1680156101875780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101a157600080fd5b506101b9600160a060020a03600435166024356104a0565b604080519115158252519081900360200190f35b3480156101d957600080fd5b506101e76004351515610598565b005b3480156101f557600080fd5b506101fe6105b2565b60408051918252519081900360200190f35b34801561021c57600080fd5b506101b9600160a060020a03600435811690602435166044356105b8565b34801561024657600080fd5b5061024f6105df565b6040805160ff9092168252519081900360200190f35b34801561027157600080fd5b5061027a6105e8565b6040805161ffff9092168252519081900360200190f35b34801561029d57600080fd5b506101e7600160a060020a03600435811690602435166044356105ed565b3480156102c757600080fd5b506101fe600160a060020a0360043516610626565b3480156102e857600080fd5b506101e7610638565b3480156102fd57600080fd5b506101e7600160a060020a036004351660243561070b565b34801561032157600080fd5b5061032a6107ed565b60408051600160a060020a039092168252519081900360200190f35b34801561035257600080fd5b506101206107fc565b34801561036757600080fd5b506101e7600160a060020a0360043516602435610857565b34801561038b57600080fd5b506101b9600160a060020a036004351660243561091d565b3480156103af57600080fd5b506101b9610942565b3480156103c457600080fd5b5061032a61094b565b3480156103d957600080fd5b506101fe600160a060020a036004358116906024351661095a565b34801561040057600080fd5b506101e7600160a060020a0360043516610977565b6002805460408051602060018416156101000260001901909316849004601f810184900484028201840190925281815292918301828280156104985780601f1061046d57610100808354040283529160200191610498565b820191906000526020600020905b81548152906001019060200180831161047b57829003601f168201915b505050505081565b6000826104ac81610a14565b8215806104da5750336000908152600760209081526040808320600160a060020a0388168452909152902054155b1515610530576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f494e56414c49445f414d4f554e540000000000000000000000000000604482015290519081900360640190fd5b336000818152600760209081526040808320600160a060020a03891680855290835292819020879055805187815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060019392505050565b6105a0610a77565b6008805460ff19169115919091179055565b60055481565b60006105c2610adb565b6105cd848484610b37565b15156105d557fe5b5060019392505050565b60045460ff1681565b600481565b6105f5610a77565b826105ff81610a14565b8261060981610a14565b8361061381610c48565b61061e868686610ca9565b505050505050565b60066020526000908152604090205481565b600154600160a060020a0316331461069a576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b60015460008054604051600160a060020a0393841693909116917f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91a3600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b610713610a77565b8161071d81610a14565b8261072781610c48565b60055461073a908463ffffffff610d6316565b600555600160a060020a038416600090815260066020526040902054610766908463ffffffff610d6316565b600160a060020a03851660009081526006602090815260409182902092909255805185815290517f9386c90217c323f58030f9dadcbc938f807a940f4ff41cd4cead9562f5da7dc3929181900390910190a1604080518481529051600160a060020a03861691600091600080516020610f808339815191529181900360200190a350505050565b600054600160a060020a031681565b6003805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156104985780601f1061046d57610100808354040283529160200191610498565b61085f610a77565b600160a060020a038216600090815260066020526040902054610888908263ffffffff610dc716565b600160a060020a0383166000908152600660205260409020556005546108b4908263ffffffff610dc716565b600555604080518281529051600091600160a060020a03851691600080516020610f808339815191529181900360200190a36040805182815290517f9a1b418bc061a5d80270261562e6986a35d995f8051145f277be16103abd34539181900360200190a15050565b6000610927610adb565b6109318383610e27565b151561093957fe5b50600192915050565b60085460ff1681565b600154600160a060020a031681565b600760209081526000928352604080842090915290825290205481565b61097f610a77565b600054600160a060020a03828116911614156109e5576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f53414d455f4f574e4552000000000000000000000000000000000000604482015290519081900360640190fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600160a060020a0381161515610a74576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b50565b600054600160a060020a03163314610ad9576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b565b60085460ff161515610ad9576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f5452414e53464552535f44495341424c454400000000000000000000604482015290519081900360640190fd5b600083610b4381610a14565b83610b4d81610a14565b600160a060020a0386166000908152600760209081526040808320338452909152902054610b81908563ffffffff610dc716565b600160a060020a038716600081815260076020908152604080832033845282528083209490945591815260069091522054610bc2908563ffffffff610dc716565b600160a060020a038088166000908152600660205260408082209390935590871681522054610bf7908563ffffffff610d6316565b600160a060020a0380871660008181526006602090815260409182902094909455805188815290519193928a1692600080516020610f8083398151915292918290030190a350600195945050505050565b600160a060020a038116301415610a74576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f414444524553535f49535f53454c4600000000000000000000000000604482015290519081900360640190fd5b604080517f7472616e7366657228616464726573732c75696e74323536290000000000000081528151908190036019018120600160a060020a038516602483015260448083018590528351808403909101815260649092019092526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152610d5e908490610ed2565b505050565b600082820183811015610dc0576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b9392505050565b600081831015610e21576040805160e560020a62461bcd02815260206004820152600d60248201527f4552525f554e444552464c4f5700000000000000000000000000000000000000604482015290519081900360640190fd5b50900390565b600082610e3381610a14565b33600090815260066020526040902054610e53908463ffffffff610dc716565b3360009081526006602052604080822092909255600160a060020a03861681522054610e85908463ffffffff610d6316565b600160a060020a038516600081815260066020908152604091829020939093558051868152905191923392600080516020610f808339815191529281900390910190a35060019392505050565b610eda610f60565b602060405190810160405280600181525090506020818351602085016000875af1801515610f0757600080fd5b5080511515610d5e576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f5452414e534645525f4641494c454400000000000000000000000000604482015290519081900360640190fd5b60206040519081016040528060019060208202803883395091929150505600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a7230582031b56aebc8336b547b3e1346f50c2f44f70def554ed4cba4c81bcf2e092d047f0029a165627a7a72305820e0ee560589eda5987d8f172ea60698bfbffc21529ee8046ab37c5e3348e88bcd0029", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x2240 CODESIZE SUB DUP1 PUSH3 0x2240 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 SWAP1 DUP2 MSTORE DUP2 MLOAD PUSH1 0x20 DUP4 ADD MLOAD SWAP2 DUP4 ADD MLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND CALLER OR DUP2 SSTORE SWAP2 DUP5 ADD DUP1 MLOAD SWAP1 SWAP5 SWAP4 SWAP1 SWAP4 ADD SWAP3 SWAP1 SWAP2 LT PUSH3 0xC1 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4E414D4500000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x0 LT PUSH3 0x132 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F53594D424F4C0000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP3 MLOAD PUSH3 0x147 SWAP1 PUSH1 0x2 SWAP1 PUSH1 0x20 DUP7 ADD SWAP1 PUSH3 0x17B JUMP JUMPDEST POP DUP2 MLOAD PUSH3 0x15D SWAP1 PUSH1 0x3 SWAP1 PUSH1 0x20 DUP6 ADD SWAP1 PUSH3 0x17B JUMP JUMPDEST POP PUSH1 0x4 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0xFF SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE POP PUSH3 0x220 SWAP1 POP JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH1 0x1F LT PUSH3 0x1BE JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH3 0x1EE JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH3 0x1EE JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH3 0x1EE JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH3 0x1D1 JUMP JUMPDEST POP PUSH3 0x1FC SWAP3 SWAP2 POP PUSH3 0x200 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH3 0x21D SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH3 0x1FC JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH3 0x207 JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH2 0x2010 DUP1 PUSH3 0x230 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH3 0xAD JUMPI PUSH4 0xFFFFFFFF PUSH1 0xE0 PUSH1 0x2 EXP PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x6FDDE03 DUP2 EQ PUSH3 0xB2 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH3 0x142 JUMPI DUP1 PUSH4 0x5E35359E EQ PUSH3 0x170 JUMPI DUP1 PUSH4 0x6D3E313E EQ PUSH3 0x19F JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH3 0x209 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH3 0x221 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH3 0x255 JUMPI DUP1 PUSH4 0x9CBF9E36 EQ PUSH3 0x26D JUMPI DUP1 PUSH4 0xC6C3BBE6 EQ PUSH3 0x285 JUMPI DUP1 PUSH4 0xD4EE1D90 EQ PUSH3 0x2B2 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH3 0x2CA JUMPI DUP1 PUSH4 0xF6B911BC EQ PUSH3 0x2EE JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0xBF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0xCA PUSH3 0x31B JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP4 MLOAD DUP2 DUP4 ADD MSTORE DUP4 MLOAD SWAP2 SWAP3 DUP4 SWAP3 SWAP1 DUP4 ADD SWAP2 DUP6 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH3 0x106 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH3 0xEC JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH3 0x134 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0x14F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x15A PUSH3 0x3AA JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0x17D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x19D PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH3 0x3B3 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0x1AC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x1B7 PUSH3 0x3F6 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP4 MLOAD DUP2 DUP4 ADD MSTORE DUP4 MLOAD SWAP2 SWAP3 DUP4 SWAP3 SWAP1 DUP4 ADD SWAP2 DUP6 DUP2 ADD SWAP2 MUL DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH3 0x1F5 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH3 0x1DB JUMP JUMPDEST POP POP POP POP SWAP1 POP ADD SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0x216 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x19D PUSH3 0x45A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0x22E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x239 PUSH3 0x52E JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0x262 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0xCA PUSH3 0x53D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0x27A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x239 PUSH3 0x59B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0x292 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x19D PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH3 0x882 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0x2BF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x239 PUSH3 0x90E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0x2D7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x19D PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH3 0x91D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0x2FB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x19D PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH3 0x9BD JUMP JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x1 DUP5 AND ISZERO PUSH2 0x100 MUL PUSH1 0x0 NOT ADD SWAP1 SWAP4 AND DUP5 SWAP1 DIV PUSH1 0x1F DUP2 ADD DUP5 SWAP1 DIV DUP5 MUL DUP3 ADD DUP5 ADD SWAP1 SWAP3 MSTORE DUP2 DUP2 MSTORE SWAP3 SWAP2 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH3 0x3A2 JUMPI DUP1 PUSH1 0x1F LT PUSH3 0x376 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH3 0x3A2 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH3 0x384 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH3 0x3BD PUSH3 0xA2B JUMP JUMPDEST DUP3 PUSH3 0x3C9 DUP2 PUSH3 0xA90 JUMP JUMPDEST DUP3 PUSH3 0x3D5 DUP2 PUSH3 0xA90 JUMP JUMPDEST DUP4 PUSH3 0x3E1 DUP2 PUSH3 0xAF4 JUMP JUMPDEST PUSH3 0x3EE DUP7 DUP7 DUP7 PUSH3 0xB56 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x5 DUP1 SLOAD DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD DUP1 ISZERO PUSH3 0x450 JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH3 0x431 JUMPI JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH3 0x4BD JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND SWAP4 SWAP1 SWAP2 AND SWAP2 PUSH32 0x343765429AEA5A34B3FF6A3785A98A5ABB2597ACA87BFBB58632C173D585373A SWAP2 LOG3 PUSH1 0x1 DUP1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND OR SWAP1 SWAP2 SSTORE AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x2 PUSH1 0x1 DUP6 AND ISZERO PUSH2 0x100 MUL PUSH1 0x0 NOT ADD SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 DIV PUSH1 0x1F DUP2 ADD DUP5 SWAP1 DIV DUP5 MUL DUP3 ADD DUP5 ADD SWAP1 SWAP3 MSTORE DUP2 DUP2 MSTORE SWAP3 SWAP2 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH3 0x3A2 JUMPI DUP1 PUSH1 0x1F LT PUSH3 0x376 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH3 0x3A2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP1 PUSH1 0x0 PUSH3 0x5AC PUSH3 0xA2B JUMP JUMPDEST PUSH1 0x5 DUP1 SLOAD LT PUSH3 0x606 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4D41585F4C494D49545F524541434845440000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x1F PUSH1 0x0 NOT PUSH2 0x100 PUSH1 0x1 DUP8 AND ISZERO MUL ADD SWAP1 SWAP5 AND DUP6 SWAP1 DIV SWAP4 DUP5 ADD DUP2 SWAP1 DIV DUP2 MUL DUP3 ADD DUP2 ADD SWAP1 SWAP3 MSTORE DUP3 DUP2 MSTORE PUSH3 0x6A8 SWAP4 SWAP1 SWAP3 SWAP1 SWAP2 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH3 0x695 JUMPI DUP1 PUSH1 0x1F LT PUSH3 0x669 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH3 0x695 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH3 0x677 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP PUSH1 0x5 SLOAD PUSH1 0x1 ADD SWAP3 POP PUSH3 0xC12 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x2 PUSH1 0x1 DUP6 AND ISZERO PUSH2 0x100 MUL PUSH1 0x0 NOT ADD SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 DIV PUSH1 0x1F DUP2 ADD DUP5 SWAP1 DIV DUP5 MUL DUP3 ADD DUP5 ADD SWAP1 SWAP3 MSTORE DUP2 DUP2 MSTORE SWAP4 SWAP7 POP PUSH3 0x70E SWAP4 SWAP3 SWAP2 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH3 0x695 JUMPI DUP1 PUSH1 0x1F LT PUSH3 0x669 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH3 0x695 JUMP JUMPDEST PUSH1 0x4 SLOAD SWAP1 SWAP3 POP DUP4 SWAP1 DUP4 SWAP1 PUSH1 0xFF AND PUSH3 0x725 PUSH3 0xD8C JUMP JUMPDEST PUSH1 0xFF DUP3 AND PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP1 DUP3 MSTORE DUP5 MLOAD SWAP1 DUP3 ADD MSTORE DUP4 MLOAD DUP2 SWAP1 PUSH1 0x20 DUP1 DUP4 ADD SWAP2 PUSH1 0x80 DUP5 ADD SWAP2 DUP9 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH3 0x76B JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH3 0x751 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH3 0x799 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP DUP4 DUP2 SUB DUP3 MSTORE DUP6 MLOAD DUP2 MSTORE DUP6 MLOAD PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 DUP8 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH3 0x7CE JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH3 0x7B4 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH3 0x7FC JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP6 POP POP POP POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 PUSH1 0x0 CREATE DUP1 ISZERO DUP1 ISZERO PUSH3 0x821 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH1 0x5 DUP1 SLOAD PUSH1 0x1 DUP2 ADD DUP3 SSTORE PUSH1 0x0 SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0x36B6384B5ECA791C62761152D0C79BB0604C104A5FB6F4EB0703F3154BB3DB0 ADD DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 AND OR SWAP1 SSTORE SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH3 0x88C PUSH3 0xA2B JUMP JUMPDEST DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x867904B4 DUP4 DUP4 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH3 0x8F0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH3 0x905 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH3 0x927 PUSH3 0xA2B JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ ISZERO PUSH3 0x98E JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F4F574E4552000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH3 0x9C7 PUSH3 0xA2B JUMP JUMPDEST DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xA24835D1 DUP4 DUP4 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH3 0x8F0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH3 0xA8E JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH3 0xAF1 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ADDRESS EQ ISZERO PUSH3 0xAF1 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F414444524553535F49535F53454C4600000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x7472616E7366657228616464726573732C75696E743235362900000000000000 DUP2 MSTORE DUP2 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x19 ADD DUP2 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x64 SWAP1 SWAP3 ADD SWAP1 SWAP3 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE PUSH3 0xC0D SWAP1 DUP5 SWAP1 PUSH3 0xCFA JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP3 DUP3 PUSH32 0x3000000000000000000000000000000000000000000000000000000000000000 PUSH32 0x100000000000000000000000000000000000000000000000000000000000000 SWAP1 DIV ADD PUSH1 0x40 MLOAD PUSH1 0x20 ADD DUP1 DUP4 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH3 0xC8F JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH3 0xC6E JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD DUP3 PUSH1 0xFF AND PUSH1 0xFF AND PUSH32 0x100000000000000000000000000000000000000000000000000000000000000 MUL DUP2 MSTORE PUSH1 0x1 ADD SWAP3 POP POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH3 0xD04 PUSH3 0xD9D JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE POP SWAP1 POP PUSH1 0x20 DUP2 DUP4 MLOAD PUSH1 0x20 DUP6 ADD PUSH1 0x0 DUP8 GAS CALL DUP1 ISZERO ISZERO PUSH3 0xD32 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD ISZERO ISZERO PUSH3 0xC0D JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5452414E534645525F4641494C454400000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1228 DUP1 PUSH3 0xDBD DUP4 CODECOPY ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 SWAP1 PUSH1 0x20 DUP3 MUL DUP1 CODESIZE DUP4 CODECOPY POP SWAP2 SWAP3 SWAP2 POP POP JUMP STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x8 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE CALLVALUE DUP1 ISZERO PUSH3 0x1E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x1228 CODESIZE SUB DUP1 PUSH3 0x1228 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 SWAP1 DUP2 MSTORE DUP2 MLOAD PUSH1 0x20 DUP4 ADD MLOAD SWAP2 DUP4 ADD MLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND CALLER OR DUP2 SSTORE SWAP2 DUP5 ADD DUP1 MLOAD SWAP1 SWAP5 SWAP4 SWAP1 SWAP4 ADD SWAP3 SWAP1 SWAP2 DUP5 SWAP2 DUP5 SWAP2 DUP5 SWAP2 DUP2 LT PUSH3 0xD5 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4E414D4500000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP3 MLOAD PUSH1 0x0 LT PUSH3 0x146 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F53594D424F4C0000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP4 MLOAD PUSH3 0x15B SWAP1 PUSH1 0x2 SWAP1 PUSH1 0x20 DUP8 ADD SWAP1 PUSH3 0x1A8 JUMP JUMPDEST POP DUP3 MLOAD PUSH3 0x171 SWAP1 PUSH1 0x3 SWAP1 PUSH1 0x20 DUP7 ADD SWAP1 PUSH3 0x1A8 JUMP JUMPDEST POP PUSH1 0x4 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0xFF SWAP4 SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 SSTORE PUSH1 0x5 DUP2 SWAP1 SSTORE CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE POP PUSH3 0x24D SWAP4 POP POP POP POP JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH1 0x1F LT PUSH3 0x1EB JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH3 0x21B JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH3 0x21B JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH3 0x21B JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH3 0x1FE JUMP JUMPDEST POP PUSH3 0x229 SWAP3 SWAP2 POP PUSH3 0x22D JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH3 0x24A SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH3 0x229 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH3 0x234 JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH2 0xFCB DUP1 PUSH3 0x25D PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x106 JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x6FDDE03 DUP2 EQ PUSH2 0x10B JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x195 JUMPI DUP1 PUSH4 0x1608F18F EQ PUSH2 0x1CD JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x1E9 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x210 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x23A JUMPI DUP1 PUSH4 0x54FD4D50 EQ PUSH2 0x265 JUMPI DUP1 PUSH4 0x5E35359E EQ PUSH2 0x291 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x2BB JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x2DC JUMPI DUP1 PUSH4 0x867904B4 EQ PUSH2 0x2F1 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x315 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x346 JUMPI DUP1 PUSH4 0xA24835D1 EQ PUSH2 0x35B JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x37F JUMPI DUP1 PUSH4 0xBEF97C87 EQ PUSH2 0x3A3 JUMPI DUP1 PUSH4 0xD4EE1D90 EQ PUSH2 0x3B8 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x3CD JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x3F4 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x117 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x120 PUSH2 0x415 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP4 MLOAD DUP2 DUP4 ADD MSTORE DUP4 MLOAD SWAP2 SWAP3 DUP4 SWAP3 SWAP1 DUP4 ADD SWAP2 DUP6 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x15A JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x142 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x187 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1A1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B9 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x4A0 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1D9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH1 0x4 CALLDATALOAD ISZERO ISZERO PUSH2 0x598 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1FE PUSH2 0x5B2 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x21C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B9 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x5B8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x246 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x24F PUSH2 0x5DF JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x271 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x27A PUSH2 0x5E8 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0xFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x29D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x5ED JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2C7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1FE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x626 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2E8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH2 0x638 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2FD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x70B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x321 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x32A PUSH2 0x7ED JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x352 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x120 PUSH2 0x7FC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x367 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x857 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x38B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B9 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x91D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3AF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B9 PUSH2 0x942 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3C4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x32A PUSH2 0x94B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3D9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1FE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH2 0x95A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x400 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x977 JUMP JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x1 DUP5 AND ISZERO PUSH2 0x100 MUL PUSH1 0x0 NOT ADD SWAP1 SWAP4 AND DUP5 SWAP1 DIV PUSH1 0x1F DUP2 ADD DUP5 SWAP1 DIV DUP5 MUL DUP3 ADD DUP5 ADD SWAP1 SWAP3 MSTORE DUP2 DUP2 MSTORE SWAP3 SWAP2 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x498 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x46D JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x498 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x47B JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x4AC DUP2 PUSH2 0xA14 JUMP JUMPDEST DUP3 ISZERO DUP1 PUSH2 0x4DA JUMPI POP CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x530 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F414D4F554E540000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST CALLER PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP10 AND DUP1 DUP6 MSTORE SWAP1 DUP4 MSTORE SWAP3 DUP2 SWAP1 KECCAK256 DUP8 SWAP1 SSTORE DUP1 MLOAD DUP8 DUP2 MSTORE SWAP1 MLOAD SWAP3 SWAP4 SWAP3 PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP3 SWAP2 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x5A0 PUSH2 0xA77 JUMP JUMPDEST PUSH1 0x8 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP2 ISZERO SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x5 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5C2 PUSH2 0xADB JUMP JUMPDEST PUSH2 0x5CD DUP5 DUP5 DUP5 PUSH2 0xB37 JUMP JUMPDEST ISZERO ISZERO PUSH2 0x5D5 JUMPI INVALID JUMPDEST POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x4 DUP2 JUMP JUMPDEST PUSH2 0x5F5 PUSH2 0xA77 JUMP JUMPDEST DUP3 PUSH2 0x5FF DUP2 PUSH2 0xA14 JUMP JUMPDEST DUP3 PUSH2 0x609 DUP2 PUSH2 0xA14 JUMP JUMPDEST DUP4 PUSH2 0x613 DUP2 PUSH2 0xC48 JUMP JUMPDEST PUSH2 0x61E DUP7 DUP7 DUP7 PUSH2 0xCA9 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x69A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND SWAP4 SWAP1 SWAP2 AND SWAP2 PUSH32 0x343765429AEA5A34B3FF6A3785A98A5ABB2597ACA87BFBB58632C173D585373A SWAP2 LOG3 PUSH1 0x1 DUP1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND OR SWAP1 SWAP2 SSTORE AND SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x713 PUSH2 0xA77 JUMP JUMPDEST DUP2 PUSH2 0x71D DUP2 PUSH2 0xA14 JUMP JUMPDEST DUP3 PUSH2 0x727 DUP2 PUSH2 0xC48 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH2 0x73A SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0xD63 AND JUMP JUMPDEST PUSH1 0x5 SSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x766 SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0xD63 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SWAP3 SWAP1 SWAP3 SSTORE DUP1 MLOAD DUP6 DUP2 MSTORE SWAP1 MLOAD PUSH32 0x9386C90217C323F58030F9DADCBC938F807A940F4FF41CD4CEAD9562F5DA7DC3 SWAP3 SWAP2 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG1 PUSH1 0x40 DUP1 MLOAD DUP5 DUP2 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND SWAP2 PUSH1 0x0 SWAP2 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xF80 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP2 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 LOG3 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x2 PUSH1 0x1 DUP6 AND ISZERO PUSH2 0x100 MUL PUSH1 0x0 NOT ADD SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 DIV PUSH1 0x1F DUP2 ADD DUP5 SWAP1 DIV DUP5 MUL DUP3 ADD DUP5 ADD SWAP1 SWAP3 MSTORE DUP2 DUP2 MSTORE SWAP3 SWAP2 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x498 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x46D JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x498 JUMP JUMPDEST PUSH2 0x85F PUSH2 0xA77 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x888 SWAP1 DUP3 PUSH4 0xFFFFFFFF PUSH2 0xDC7 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE PUSH1 0x5 SLOAD PUSH2 0x8B4 SWAP1 DUP3 PUSH4 0xFFFFFFFF PUSH2 0xDC7 AND JUMP JUMPDEST PUSH1 0x5 SSTORE PUSH1 0x40 DUP1 MLOAD DUP3 DUP2 MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND SWAP2 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xF80 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP2 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 LOG3 PUSH1 0x40 DUP1 MLOAD DUP3 DUP2 MSTORE SWAP1 MLOAD PUSH32 0x9A1B418BC061A5D80270261562E6986A35D995F8051145F277BE16103ABD3453 SWAP2 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x927 PUSH2 0xADB JUMP JUMPDEST PUSH2 0x931 DUP4 DUP4 PUSH2 0xE27 JUMP JUMPDEST ISZERO ISZERO PUSH2 0x939 JUMPI INVALID JUMPDEST POP PUSH1 0x1 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x97F PUSH2 0xA77 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x9E5 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F4F574E4552000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0xA74 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0xAD9 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0xFF AND ISZERO ISZERO PUSH2 0xAD9 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5452414E53464552535F44495341424C454400000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP4 PUSH2 0xB43 DUP2 PUSH2 0xA14 JUMP JUMPDEST DUP4 PUSH2 0xB4D DUP2 PUSH2 0xA14 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH2 0xB81 SWAP1 DUP6 PUSH4 0xFFFFFFFF PUSH2 0xDC7 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE DUP3 MSTORE DUP1 DUP4 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE SWAP2 DUP2 MSTORE PUSH1 0x6 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD PUSH2 0xBC2 SWAP1 DUP6 PUSH4 0xFFFFFFFF PUSH2 0xDC7 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE SWAP1 DUP8 AND DUP2 MSTORE KECCAK256 SLOAD PUSH2 0xBF7 SWAP1 DUP6 PUSH4 0xFFFFFFFF PUSH2 0xD63 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP8 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE DUP1 MLOAD DUP9 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP4 SWAP3 DUP11 AND SWAP3 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xF80 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP3 SWAP2 DUP3 SWAP1 SUB ADD SWAP1 LOG3 POP PUSH1 0x1 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ADDRESS EQ ISZERO PUSH2 0xA74 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F414444524553535F49535F53454C4600000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x7472616E7366657228616464726573732C75696E743235362900000000000000 DUP2 MSTORE DUP2 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x19 ADD DUP2 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x64 SWAP1 SWAP3 ADD SWAP1 SWAP3 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE PUSH2 0xD5E SWAP1 DUP5 SWAP1 PUSH2 0xED2 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 ADD DUP4 DUP2 LT ISZERO PUSH2 0xDC0 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT ISZERO PUSH2 0xE21 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F554E444552464C4F5700000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP SWAP1 SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0xE33 DUP2 PUSH2 0xA14 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0xE53 SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0xDC7 AND JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP3 SWAP1 SWAP3 SSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND DUP2 MSTORE KECCAK256 SLOAD PUSH2 0xE85 SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0xD63 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE DUP1 MLOAD DUP7 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP3 CALLER SWAP3 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xF80 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0xEDA PUSH2 0xF60 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE POP SWAP1 POP PUSH1 0x20 DUP2 DUP4 MLOAD PUSH1 0x20 DUP6 ADD PUSH1 0x0 DUP8 GAS CALL DUP1 ISZERO ISZERO PUSH2 0xF07 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD ISZERO ISZERO PUSH2 0xD5E JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5452414E534645525F4641494C454400000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 SWAP1 PUSH1 0x20 DUP3 MUL DUP1 CODESIZE DUP4 CODECOPY POP SWAP2 SWAP3 SWAP2 POP POP JUMP STOP 0xdd CALLCODE MSTORE 0xad SHL 0xe2 0xc8 SWAP12 PUSH10 0xC2B068FC378DAA952BA7 CALL PUSH4 0xC4A11628 0xf5 GAS 0x4d 0xf5 0x23 0xb3 0xef LOG1 PUSH6 0x627A7A723058 KECCAK256 BALANCE 0xb5 PUSH11 0xEBC8336B547B3E1346F50C 0x2f DIFFICULTY 0xf7 0xd 0xef SSTORE 0x4e 0xd4 0xcb LOG4 0xc8 SHL 0xcf 0x2e MULMOD 0x2d DIV PUSH32 0x29A165627A7A72305820E0EE560589EDA5987D8F172EA60698BFBFFC21529E 0xe8 DIV PUSH11 0xB37C5E3348E88BCD002900 ", + "sourceMap": "540:3276:29:-;;;1330:315;8:9:-1;5:2;;;30:1;27;20:12;5:2;1330:315:29;;;;;;;;;;;;;;;;;;;;;;;;;;488:5:66;:18;;-1:-1:-1;;;;;;488:18:66;496:10;488:18;;;1330:315:29;;;1443:19;;1330:315;;;;;;;;;-1:-1:-1;1435:52:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1506:21;;1530:1;-1:-1:-1;1498:56:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1567:12;;;;:4;;:12;;;;;:::i;:::-;-1:-1:-1;1590:16:29;;;;:6;;:16;;;;;:::i;:::-;-1:-1:-1;1617:8:29;:20;;-1:-1:-1;;1617:20:29;;;;;;;;;;;;-1:-1:-1;540:3276:29;;-1:-1:-1;540:3276:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;540:3276:29;;;-1:-1:-1;540:3276:29;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "608060405260043610620000ad5763ffffffff60e060020a60003504166306fdde038114620000b2578063313ce56714620001425780635e35359e14620001705780636d3e313e146200019f57806379ba509714620002095780638da5cb5b146200022157806395d89b4114620002555780639cbf9e36146200026d578063c6c3bbe61462000285578063d4ee1d9014620002b2578063f2fde38b14620002ca578063f6b911bc14620002ee575b600080fd5b348015620000bf57600080fd5b50620000ca6200031b565b6040805160208082528351818301528351919283929083019185019080838360005b8381101562000106578181015183820152602001620000ec565b50505050905090810190601f168015620001345780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156200014f57600080fd5b506200015a620003aa565b6040805160ff9092168252519081900360200190f35b3480156200017d57600080fd5b506200019d600160a060020a0360043581169060243516604435620003b3565b005b348015620001ac57600080fd5b50620001b7620003f6565b60408051602080825283518183015283519192839290830191858101910280838360005b83811015620001f5578181015183820152602001620001db565b505050509050019250505060405180910390f35b3480156200021657600080fd5b506200019d6200045a565b3480156200022e57600080fd5b50620002396200052e565b60408051600160a060020a039092168252519081900360200190f35b3480156200026257600080fd5b50620000ca6200053d565b3480156200027a57600080fd5b50620002396200059b565b3480156200029257600080fd5b506200019d600160a060020a036004358116906024351660443562000882565b348015620002bf57600080fd5b50620002396200090e565b348015620002d757600080fd5b506200019d600160a060020a03600435166200091d565b348015620002fb57600080fd5b506200019d600160a060020a0360043581169060243516604435620009bd565b6002805460408051602060018416156101000260001901909316849004601f81018490048402820184019092528181529291830182828015620003a25780601f106200037657610100808354040283529160200191620003a2565b820191906000526020600020905b8154815290600101906020018083116200038457829003601f168201915b505050505081565b60045460ff1681565b620003bd62000a2b565b82620003c98162000a90565b82620003d58162000a90565b83620003e18162000af4565b620003ee86868662000b56565b505050505050565b606060058054806020026020016040519081016040528092919081815260200182805480156200045057602002820191906000526020600020905b8154600160a060020a0316815260019091019060200180831162000431575b5050505050905090565b600154600160a060020a03163314620004bd576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b60015460008054604051600160a060020a0393841693909116917f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91a3600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b600054600160a060020a031681565b6003805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015620003a25780601f106200037657610100808354040283529160200191620003a2565b60006060806000620005ac62000a2b565b600580541062000606576040805160e560020a62461bcd02815260206004820152601560248201527f4552525f4d41585f4c494d49545f524541434845440000000000000000000000604482015290519081900360640190fd5b60028054604080516020601f60001961010060018716150201909416859004938401819004810282018101909252828152620006a89390929091830182828015620006955780601f10620006695761010080835404028352916020019162000695565b820191906000526020600020905b8154815290600101906020018083116200067757829003601f168201915b5050600554600101925062000c12915050565b6003805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529396506200070e939291830182828015620006955780601f10620006695761010080835404028352916020019162000695565b6004549092508390839060ff166200072562000d8c565b60ff82166040820152606080825284519082015283518190602080830191608084019188019080838360005b838110156200076b57818101518382015260200162000751565b50505050905090810190601f168015620007995780820380516001836020036101000a031916815260200191505b50838103825285518152855160209182019187019080838360005b83811015620007ce578181015183820152602001620007b4565b50505050905090810190601f168015620007fc5780820380516001836020036101000a031916815260200191505b5095505050505050604051809103906000f08015801562000821573d6000803e3d6000fd5b50600580546001810182556000919091527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038316179055949350505050565b6200088c62000a2b565b82600160a060020a031663867904b483836040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050600060405180830381600087803b158015620008f057600080fd5b505af115801562000905573d6000803e3d6000fd5b50505050505050565b600154600160a060020a031681565b6200092762000a2b565b600054600160a060020a03828116911614156200098e576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f53414d455f4f574e4552000000000000000000000000000000000000604482015290519081900360640190fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b620009c762000a2b565b82600160a060020a031663a24835d183836040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050600060405180830381600087803b158015620008f057600080fd5b600054600160a060020a0316331462000a8e576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b565b600160a060020a038116151562000af1576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b50565b600160a060020a03811630141562000af1576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f414444524553535f49535f53454c4600000000000000000000000000604482015290519081900360640190fd5b604080517f7472616e7366657228616464726573732c75696e74323536290000000000000081528151908190036019018120600160a060020a038516602483015260448083018590528351808403909101815260649092019092526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009093169290921790915262000c0d90849062000cfa565b505050565b606082827f30000000000000000000000000000000000000000000000000000000000000007f01000000000000000000000000000000000000000000000000000000000000009004016040516020018083805190602001908083835b6020831062000c8f5780518252601f19909201916020918201910162000c6e565b6001836020036101000a0380198251168184511680821785525050505050509050018260ff1660ff167f010000000000000000000000000000000000000000000000000000000000000002815260010192505050604051602081830303815290604052905092915050565b62000d0462000d9d565b602060405190810160405280600181525090506020818351602085016000875af180151562000d3257600080fd5b508051151562000c0d576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f5452414e534645525f4641494c454400000000000000000000000000604482015290519081900360640190fd5b6040516112288062000dbd83390190565b6020604051908101604052806001906020820280388339509192915050560060806040526008805460ff191660011790553480156200001e57600080fd5b506040516200122838038062001228833981016040908152815160208301519183015160008054600160a060020a0319163317815591840180519094939093019290918491849184918110620000d557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f4552525f494e56414c49445f4e414d4500000000000000000000000000000000604482015290519081900360640190fd5b82516000106200014657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f4552525f494e56414c49445f53594d424f4c0000000000000000000000000000604482015290519081900360640190fd5b83516200015b906002906020870190620001a8565b50825162000171906003906020860190620001a8565b506004805460ff191660ff9390931692909217909155600581905533600090815260066020526040902055506200024d9350505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620001eb57805160ff19168380011785556200021b565b828001600101855582156200021b579182015b828111156200021b578251825591602001919060010190620001fe565b50620002299291506200022d565b5090565b6200024a91905b8082111562000229576000815560010162000234565b90565b610fcb806200025d6000396000f3006080604052600436106101065763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde03811461010b578063095ea7b3146101955780631608f18f146101cd57806318160ddd146101e957806323b872dd14610210578063313ce5671461023a57806354fd4d50146102655780635e35359e1461029157806370a08231146102bb57806379ba5097146102dc578063867904b4146102f15780638da5cb5b1461031557806395d89b4114610346578063a24835d11461035b578063a9059cbb1461037f578063bef97c87146103a3578063d4ee1d90146103b8578063dd62ed3e146103cd578063f2fde38b146103f4575b600080fd5b34801561011757600080fd5b50610120610415565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561015a578181015183820152602001610142565b50505050905090810190601f1680156101875780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101a157600080fd5b506101b9600160a060020a03600435166024356104a0565b604080519115158252519081900360200190f35b3480156101d957600080fd5b506101e76004351515610598565b005b3480156101f557600080fd5b506101fe6105b2565b60408051918252519081900360200190f35b34801561021c57600080fd5b506101b9600160a060020a03600435811690602435166044356105b8565b34801561024657600080fd5b5061024f6105df565b6040805160ff9092168252519081900360200190f35b34801561027157600080fd5b5061027a6105e8565b6040805161ffff9092168252519081900360200190f35b34801561029d57600080fd5b506101e7600160a060020a03600435811690602435166044356105ed565b3480156102c757600080fd5b506101fe600160a060020a0360043516610626565b3480156102e857600080fd5b506101e7610638565b3480156102fd57600080fd5b506101e7600160a060020a036004351660243561070b565b34801561032157600080fd5b5061032a6107ed565b60408051600160a060020a039092168252519081900360200190f35b34801561035257600080fd5b506101206107fc565b34801561036757600080fd5b506101e7600160a060020a0360043516602435610857565b34801561038b57600080fd5b506101b9600160a060020a036004351660243561091d565b3480156103af57600080fd5b506101b9610942565b3480156103c457600080fd5b5061032a61094b565b3480156103d957600080fd5b506101fe600160a060020a036004358116906024351661095a565b34801561040057600080fd5b506101e7600160a060020a0360043516610977565b6002805460408051602060018416156101000260001901909316849004601f810184900484028201840190925281815292918301828280156104985780601f1061046d57610100808354040283529160200191610498565b820191906000526020600020905b81548152906001019060200180831161047b57829003601f168201915b505050505081565b6000826104ac81610a14565b8215806104da5750336000908152600760209081526040808320600160a060020a0388168452909152902054155b1515610530576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f494e56414c49445f414d4f554e540000000000000000000000000000604482015290519081900360640190fd5b336000818152600760209081526040808320600160a060020a03891680855290835292819020879055805187815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060019392505050565b6105a0610a77565b6008805460ff19169115919091179055565b60055481565b60006105c2610adb565b6105cd848484610b37565b15156105d557fe5b5060019392505050565b60045460ff1681565b600481565b6105f5610a77565b826105ff81610a14565b8261060981610a14565b8361061381610c48565b61061e868686610ca9565b505050505050565b60066020526000908152604090205481565b600154600160a060020a0316331461069a576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b60015460008054604051600160a060020a0393841693909116917f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91a3600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b610713610a77565b8161071d81610a14565b8261072781610c48565b60055461073a908463ffffffff610d6316565b600555600160a060020a038416600090815260066020526040902054610766908463ffffffff610d6316565b600160a060020a03851660009081526006602090815260409182902092909255805185815290517f9386c90217c323f58030f9dadcbc938f807a940f4ff41cd4cead9562f5da7dc3929181900390910190a1604080518481529051600160a060020a03861691600091600080516020610f808339815191529181900360200190a350505050565b600054600160a060020a031681565b6003805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156104985780601f1061046d57610100808354040283529160200191610498565b61085f610a77565b600160a060020a038216600090815260066020526040902054610888908263ffffffff610dc716565b600160a060020a0383166000908152600660205260409020556005546108b4908263ffffffff610dc716565b600555604080518281529051600091600160a060020a03851691600080516020610f808339815191529181900360200190a36040805182815290517f9a1b418bc061a5d80270261562e6986a35d995f8051145f277be16103abd34539181900360200190a15050565b6000610927610adb565b6109318383610e27565b151561093957fe5b50600192915050565b60085460ff1681565b600154600160a060020a031681565b600760209081526000928352604080842090915290825290205481565b61097f610a77565b600054600160a060020a03828116911614156109e5576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f53414d455f4f574e4552000000000000000000000000000000000000604482015290519081900360640190fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600160a060020a0381161515610a74576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b50565b600054600160a060020a03163314610ad9576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b565b60085460ff161515610ad9576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f5452414e53464552535f44495341424c454400000000000000000000604482015290519081900360640190fd5b600083610b4381610a14565b83610b4d81610a14565b600160a060020a0386166000908152600760209081526040808320338452909152902054610b81908563ffffffff610dc716565b600160a060020a038716600081815260076020908152604080832033845282528083209490945591815260069091522054610bc2908563ffffffff610dc716565b600160a060020a038088166000908152600660205260408082209390935590871681522054610bf7908563ffffffff610d6316565b600160a060020a0380871660008181526006602090815260409182902094909455805188815290519193928a1692600080516020610f8083398151915292918290030190a350600195945050505050565b600160a060020a038116301415610a74576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f414444524553535f49535f53454c4600000000000000000000000000604482015290519081900360640190fd5b604080517f7472616e7366657228616464726573732c75696e74323536290000000000000081528151908190036019018120600160a060020a038516602483015260448083018590528351808403909101815260649092019092526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152610d5e908490610ed2565b505050565b600082820183811015610dc0576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b9392505050565b600081831015610e21576040805160e560020a62461bcd02815260206004820152600d60248201527f4552525f554e444552464c4f5700000000000000000000000000000000000000604482015290519081900360640190fd5b50900390565b600082610e3381610a14565b33600090815260066020526040902054610e53908463ffffffff610dc716565b3360009081526006602052604080822092909255600160a060020a03861681522054610e85908463ffffffff610d6316565b600160a060020a038516600081815260066020908152604091829020939093558051868152905191923392600080516020610f808339815191529281900390910190a35060019392505050565b610eda610f60565b602060405190810160405280600181525090506020818351602085016000875af1801515610f0757600080fd5b5080511515610d5e576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f5452414e534645525f4641494c454400000000000000000000000000604482015290519081900360640190fd5b60206040519081016040528060019060208202803883395091929150505600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a7230582031b56aebc8336b547b3e1346f50c2f44f70def554ed4cba4c81bcf2e092d047f0029a165627a7a72305820e0ee560589eda5987d8f172ea60698bfbffc21529ee8046ab37c5e3348e88bcd0029", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH3 0xAD JUMPI PUSH4 0xFFFFFFFF PUSH1 0xE0 PUSH1 0x2 EXP PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x6FDDE03 DUP2 EQ PUSH3 0xB2 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH3 0x142 JUMPI DUP1 PUSH4 0x5E35359E EQ PUSH3 0x170 JUMPI DUP1 PUSH4 0x6D3E313E EQ PUSH3 0x19F JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH3 0x209 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH3 0x221 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH3 0x255 JUMPI DUP1 PUSH4 0x9CBF9E36 EQ PUSH3 0x26D JUMPI DUP1 PUSH4 0xC6C3BBE6 EQ PUSH3 0x285 JUMPI DUP1 PUSH4 0xD4EE1D90 EQ PUSH3 0x2B2 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH3 0x2CA JUMPI DUP1 PUSH4 0xF6B911BC EQ PUSH3 0x2EE JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0xBF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0xCA PUSH3 0x31B JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP4 MLOAD DUP2 DUP4 ADD MSTORE DUP4 MLOAD SWAP2 SWAP3 DUP4 SWAP3 SWAP1 DUP4 ADD SWAP2 DUP6 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH3 0x106 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH3 0xEC JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH3 0x134 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0x14F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x15A PUSH3 0x3AA JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0x17D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x19D PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH3 0x3B3 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0x1AC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x1B7 PUSH3 0x3F6 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP4 MLOAD DUP2 DUP4 ADD MSTORE DUP4 MLOAD SWAP2 SWAP3 DUP4 SWAP3 SWAP1 DUP4 ADD SWAP2 DUP6 DUP2 ADD SWAP2 MUL DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH3 0x1F5 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH3 0x1DB JUMP JUMPDEST POP POP POP POP SWAP1 POP ADD SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0x216 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x19D PUSH3 0x45A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0x22E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x239 PUSH3 0x52E JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0x262 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0xCA PUSH3 0x53D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0x27A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x239 PUSH3 0x59B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0x292 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x19D PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH3 0x882 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0x2BF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x239 PUSH3 0x90E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0x2D7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x19D PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH3 0x91D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0x2FB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x19D PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH3 0x9BD JUMP JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x1 DUP5 AND ISZERO PUSH2 0x100 MUL PUSH1 0x0 NOT ADD SWAP1 SWAP4 AND DUP5 SWAP1 DIV PUSH1 0x1F DUP2 ADD DUP5 SWAP1 DIV DUP5 MUL DUP3 ADD DUP5 ADD SWAP1 SWAP3 MSTORE DUP2 DUP2 MSTORE SWAP3 SWAP2 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH3 0x3A2 JUMPI DUP1 PUSH1 0x1F LT PUSH3 0x376 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH3 0x3A2 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH3 0x384 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH3 0x3BD PUSH3 0xA2B JUMP JUMPDEST DUP3 PUSH3 0x3C9 DUP2 PUSH3 0xA90 JUMP JUMPDEST DUP3 PUSH3 0x3D5 DUP2 PUSH3 0xA90 JUMP JUMPDEST DUP4 PUSH3 0x3E1 DUP2 PUSH3 0xAF4 JUMP JUMPDEST PUSH3 0x3EE DUP7 DUP7 DUP7 PUSH3 0xB56 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x5 DUP1 SLOAD DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD DUP1 ISZERO PUSH3 0x450 JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH3 0x431 JUMPI JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH3 0x4BD JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND SWAP4 SWAP1 SWAP2 AND SWAP2 PUSH32 0x343765429AEA5A34B3FF6A3785A98A5ABB2597ACA87BFBB58632C173D585373A SWAP2 LOG3 PUSH1 0x1 DUP1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND OR SWAP1 SWAP2 SSTORE AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x2 PUSH1 0x1 DUP6 AND ISZERO PUSH2 0x100 MUL PUSH1 0x0 NOT ADD SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 DIV PUSH1 0x1F DUP2 ADD DUP5 SWAP1 DIV DUP5 MUL DUP3 ADD DUP5 ADD SWAP1 SWAP3 MSTORE DUP2 DUP2 MSTORE SWAP3 SWAP2 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH3 0x3A2 JUMPI DUP1 PUSH1 0x1F LT PUSH3 0x376 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH3 0x3A2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP1 PUSH1 0x0 PUSH3 0x5AC PUSH3 0xA2B JUMP JUMPDEST PUSH1 0x5 DUP1 SLOAD LT PUSH3 0x606 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4D41585F4C494D49545F524541434845440000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x1F PUSH1 0x0 NOT PUSH2 0x100 PUSH1 0x1 DUP8 AND ISZERO MUL ADD SWAP1 SWAP5 AND DUP6 SWAP1 DIV SWAP4 DUP5 ADD DUP2 SWAP1 DIV DUP2 MUL DUP3 ADD DUP2 ADD SWAP1 SWAP3 MSTORE DUP3 DUP2 MSTORE PUSH3 0x6A8 SWAP4 SWAP1 SWAP3 SWAP1 SWAP2 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH3 0x695 JUMPI DUP1 PUSH1 0x1F LT PUSH3 0x669 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH3 0x695 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH3 0x677 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP PUSH1 0x5 SLOAD PUSH1 0x1 ADD SWAP3 POP PUSH3 0xC12 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x2 PUSH1 0x1 DUP6 AND ISZERO PUSH2 0x100 MUL PUSH1 0x0 NOT ADD SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 DIV PUSH1 0x1F DUP2 ADD DUP5 SWAP1 DIV DUP5 MUL DUP3 ADD DUP5 ADD SWAP1 SWAP3 MSTORE DUP2 DUP2 MSTORE SWAP4 SWAP7 POP PUSH3 0x70E SWAP4 SWAP3 SWAP2 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH3 0x695 JUMPI DUP1 PUSH1 0x1F LT PUSH3 0x669 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH3 0x695 JUMP JUMPDEST PUSH1 0x4 SLOAD SWAP1 SWAP3 POP DUP4 SWAP1 DUP4 SWAP1 PUSH1 0xFF AND PUSH3 0x725 PUSH3 0xD8C JUMP JUMPDEST PUSH1 0xFF DUP3 AND PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP1 DUP3 MSTORE DUP5 MLOAD SWAP1 DUP3 ADD MSTORE DUP4 MLOAD DUP2 SWAP1 PUSH1 0x20 DUP1 DUP4 ADD SWAP2 PUSH1 0x80 DUP5 ADD SWAP2 DUP9 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH3 0x76B JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH3 0x751 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH3 0x799 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP DUP4 DUP2 SUB DUP3 MSTORE DUP6 MLOAD DUP2 MSTORE DUP6 MLOAD PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 DUP8 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH3 0x7CE JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH3 0x7B4 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH3 0x7FC JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP6 POP POP POP POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 PUSH1 0x0 CREATE DUP1 ISZERO DUP1 ISZERO PUSH3 0x821 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH1 0x5 DUP1 SLOAD PUSH1 0x1 DUP2 ADD DUP3 SSTORE PUSH1 0x0 SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0x36B6384B5ECA791C62761152D0C79BB0604C104A5FB6F4EB0703F3154BB3DB0 ADD DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 AND OR SWAP1 SSTORE SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH3 0x88C PUSH3 0xA2B JUMP JUMPDEST DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x867904B4 DUP4 DUP4 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH3 0x8F0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH3 0x905 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH3 0x927 PUSH3 0xA2B JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ ISZERO PUSH3 0x98E JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F4F574E4552000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH3 0x9C7 PUSH3 0xA2B JUMP JUMPDEST DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xA24835D1 DUP4 DUP4 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH3 0x8F0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH3 0xA8E JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH3 0xAF1 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ADDRESS EQ ISZERO PUSH3 0xAF1 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F414444524553535F49535F53454C4600000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x7472616E7366657228616464726573732C75696E743235362900000000000000 DUP2 MSTORE DUP2 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x19 ADD DUP2 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x64 SWAP1 SWAP3 ADD SWAP1 SWAP3 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE PUSH3 0xC0D SWAP1 DUP5 SWAP1 PUSH3 0xCFA JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP3 DUP3 PUSH32 0x3000000000000000000000000000000000000000000000000000000000000000 PUSH32 0x100000000000000000000000000000000000000000000000000000000000000 SWAP1 DIV ADD PUSH1 0x40 MLOAD PUSH1 0x20 ADD DUP1 DUP4 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH3 0xC8F JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH3 0xC6E JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD DUP3 PUSH1 0xFF AND PUSH1 0xFF AND PUSH32 0x100000000000000000000000000000000000000000000000000000000000000 MUL DUP2 MSTORE PUSH1 0x1 ADD SWAP3 POP POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH3 0xD04 PUSH3 0xD9D JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE POP SWAP1 POP PUSH1 0x20 DUP2 DUP4 MLOAD PUSH1 0x20 DUP6 ADD PUSH1 0x0 DUP8 GAS CALL DUP1 ISZERO ISZERO PUSH3 0xD32 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD ISZERO ISZERO PUSH3 0xC0D JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5452414E534645525F4641494C454400000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1228 DUP1 PUSH3 0xDBD DUP4 CODECOPY ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 SWAP1 PUSH1 0x20 DUP3 MUL DUP1 CODESIZE DUP4 CODECOPY POP SWAP2 SWAP3 SWAP2 POP POP JUMP STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x8 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE CALLVALUE DUP1 ISZERO PUSH3 0x1E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x1228 CODESIZE SUB DUP1 PUSH3 0x1228 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 SWAP1 DUP2 MSTORE DUP2 MLOAD PUSH1 0x20 DUP4 ADD MLOAD SWAP2 DUP4 ADD MLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND CALLER OR DUP2 SSTORE SWAP2 DUP5 ADD DUP1 MLOAD SWAP1 SWAP5 SWAP4 SWAP1 SWAP4 ADD SWAP3 SWAP1 SWAP2 DUP5 SWAP2 DUP5 SWAP2 DUP5 SWAP2 DUP2 LT PUSH3 0xD5 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4E414D4500000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP3 MLOAD PUSH1 0x0 LT PUSH3 0x146 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F53594D424F4C0000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP4 MLOAD PUSH3 0x15B SWAP1 PUSH1 0x2 SWAP1 PUSH1 0x20 DUP8 ADD SWAP1 PUSH3 0x1A8 JUMP JUMPDEST POP DUP3 MLOAD PUSH3 0x171 SWAP1 PUSH1 0x3 SWAP1 PUSH1 0x20 DUP7 ADD SWAP1 PUSH3 0x1A8 JUMP JUMPDEST POP PUSH1 0x4 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0xFF SWAP4 SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 SSTORE PUSH1 0x5 DUP2 SWAP1 SSTORE CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE POP PUSH3 0x24D SWAP4 POP POP POP POP JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH1 0x1F LT PUSH3 0x1EB JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH3 0x21B JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH3 0x21B JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH3 0x21B JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH3 0x1FE JUMP JUMPDEST POP PUSH3 0x229 SWAP3 SWAP2 POP PUSH3 0x22D JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH3 0x24A SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH3 0x229 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH3 0x234 JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH2 0xFCB DUP1 PUSH3 0x25D PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x106 JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x6FDDE03 DUP2 EQ PUSH2 0x10B JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x195 JUMPI DUP1 PUSH4 0x1608F18F EQ PUSH2 0x1CD JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x1E9 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x210 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x23A JUMPI DUP1 PUSH4 0x54FD4D50 EQ PUSH2 0x265 JUMPI DUP1 PUSH4 0x5E35359E EQ PUSH2 0x291 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x2BB JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x2DC JUMPI DUP1 PUSH4 0x867904B4 EQ PUSH2 0x2F1 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x315 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x346 JUMPI DUP1 PUSH4 0xA24835D1 EQ PUSH2 0x35B JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x37F JUMPI DUP1 PUSH4 0xBEF97C87 EQ PUSH2 0x3A3 JUMPI DUP1 PUSH4 0xD4EE1D90 EQ PUSH2 0x3B8 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x3CD JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x3F4 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x117 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x120 PUSH2 0x415 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP4 MLOAD DUP2 DUP4 ADD MSTORE DUP4 MLOAD SWAP2 SWAP3 DUP4 SWAP3 SWAP1 DUP4 ADD SWAP2 DUP6 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x15A JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x142 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x187 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1A1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B9 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x4A0 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1D9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH1 0x4 CALLDATALOAD ISZERO ISZERO PUSH2 0x598 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1FE PUSH2 0x5B2 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x21C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B9 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x5B8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x246 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x24F PUSH2 0x5DF JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x271 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x27A PUSH2 0x5E8 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0xFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x29D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x5ED JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2C7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1FE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x626 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2E8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH2 0x638 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2FD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x70B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x321 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x32A PUSH2 0x7ED JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x352 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x120 PUSH2 0x7FC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x367 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x857 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x38B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B9 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x91D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3AF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B9 PUSH2 0x942 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3C4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x32A PUSH2 0x94B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3D9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1FE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH2 0x95A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x400 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x977 JUMP JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x1 DUP5 AND ISZERO PUSH2 0x100 MUL PUSH1 0x0 NOT ADD SWAP1 SWAP4 AND DUP5 SWAP1 DIV PUSH1 0x1F DUP2 ADD DUP5 SWAP1 DIV DUP5 MUL DUP3 ADD DUP5 ADD SWAP1 SWAP3 MSTORE DUP2 DUP2 MSTORE SWAP3 SWAP2 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x498 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x46D JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x498 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x47B JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x4AC DUP2 PUSH2 0xA14 JUMP JUMPDEST DUP3 ISZERO DUP1 PUSH2 0x4DA JUMPI POP CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x530 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F414D4F554E540000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST CALLER PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP10 AND DUP1 DUP6 MSTORE SWAP1 DUP4 MSTORE SWAP3 DUP2 SWAP1 KECCAK256 DUP8 SWAP1 SSTORE DUP1 MLOAD DUP8 DUP2 MSTORE SWAP1 MLOAD SWAP3 SWAP4 SWAP3 PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP3 SWAP2 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x5A0 PUSH2 0xA77 JUMP JUMPDEST PUSH1 0x8 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP2 ISZERO SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x5 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5C2 PUSH2 0xADB JUMP JUMPDEST PUSH2 0x5CD DUP5 DUP5 DUP5 PUSH2 0xB37 JUMP JUMPDEST ISZERO ISZERO PUSH2 0x5D5 JUMPI INVALID JUMPDEST POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x4 DUP2 JUMP JUMPDEST PUSH2 0x5F5 PUSH2 0xA77 JUMP JUMPDEST DUP3 PUSH2 0x5FF DUP2 PUSH2 0xA14 JUMP JUMPDEST DUP3 PUSH2 0x609 DUP2 PUSH2 0xA14 JUMP JUMPDEST DUP4 PUSH2 0x613 DUP2 PUSH2 0xC48 JUMP JUMPDEST PUSH2 0x61E DUP7 DUP7 DUP7 PUSH2 0xCA9 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x69A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND SWAP4 SWAP1 SWAP2 AND SWAP2 PUSH32 0x343765429AEA5A34B3FF6A3785A98A5ABB2597ACA87BFBB58632C173D585373A SWAP2 LOG3 PUSH1 0x1 DUP1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND OR SWAP1 SWAP2 SSTORE AND SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x713 PUSH2 0xA77 JUMP JUMPDEST DUP2 PUSH2 0x71D DUP2 PUSH2 0xA14 JUMP JUMPDEST DUP3 PUSH2 0x727 DUP2 PUSH2 0xC48 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH2 0x73A SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0xD63 AND JUMP JUMPDEST PUSH1 0x5 SSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x766 SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0xD63 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SWAP3 SWAP1 SWAP3 SSTORE DUP1 MLOAD DUP6 DUP2 MSTORE SWAP1 MLOAD PUSH32 0x9386C90217C323F58030F9DADCBC938F807A940F4FF41CD4CEAD9562F5DA7DC3 SWAP3 SWAP2 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG1 PUSH1 0x40 DUP1 MLOAD DUP5 DUP2 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND SWAP2 PUSH1 0x0 SWAP2 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xF80 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP2 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 LOG3 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x2 PUSH1 0x1 DUP6 AND ISZERO PUSH2 0x100 MUL PUSH1 0x0 NOT ADD SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 DIV PUSH1 0x1F DUP2 ADD DUP5 SWAP1 DIV DUP5 MUL DUP3 ADD DUP5 ADD SWAP1 SWAP3 MSTORE DUP2 DUP2 MSTORE SWAP3 SWAP2 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x498 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x46D JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x498 JUMP JUMPDEST PUSH2 0x85F PUSH2 0xA77 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x888 SWAP1 DUP3 PUSH4 0xFFFFFFFF PUSH2 0xDC7 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE PUSH1 0x5 SLOAD PUSH2 0x8B4 SWAP1 DUP3 PUSH4 0xFFFFFFFF PUSH2 0xDC7 AND JUMP JUMPDEST PUSH1 0x5 SSTORE PUSH1 0x40 DUP1 MLOAD DUP3 DUP2 MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND SWAP2 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xF80 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP2 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 LOG3 PUSH1 0x40 DUP1 MLOAD DUP3 DUP2 MSTORE SWAP1 MLOAD PUSH32 0x9A1B418BC061A5D80270261562E6986A35D995F8051145F277BE16103ABD3453 SWAP2 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x927 PUSH2 0xADB JUMP JUMPDEST PUSH2 0x931 DUP4 DUP4 PUSH2 0xE27 JUMP JUMPDEST ISZERO ISZERO PUSH2 0x939 JUMPI INVALID JUMPDEST POP PUSH1 0x1 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x97F PUSH2 0xA77 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x9E5 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F4F574E4552000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0xA74 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0xAD9 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0xFF AND ISZERO ISZERO PUSH2 0xAD9 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5452414E53464552535F44495341424C454400000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP4 PUSH2 0xB43 DUP2 PUSH2 0xA14 JUMP JUMPDEST DUP4 PUSH2 0xB4D DUP2 PUSH2 0xA14 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH2 0xB81 SWAP1 DUP6 PUSH4 0xFFFFFFFF PUSH2 0xDC7 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE DUP3 MSTORE DUP1 DUP4 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE SWAP2 DUP2 MSTORE PUSH1 0x6 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD PUSH2 0xBC2 SWAP1 DUP6 PUSH4 0xFFFFFFFF PUSH2 0xDC7 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE SWAP1 DUP8 AND DUP2 MSTORE KECCAK256 SLOAD PUSH2 0xBF7 SWAP1 DUP6 PUSH4 0xFFFFFFFF PUSH2 0xD63 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP8 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE DUP1 MLOAD DUP9 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP4 SWAP3 DUP11 AND SWAP3 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xF80 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP3 SWAP2 DUP3 SWAP1 SUB ADD SWAP1 LOG3 POP PUSH1 0x1 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ADDRESS EQ ISZERO PUSH2 0xA74 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F414444524553535F49535F53454C4600000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x7472616E7366657228616464726573732C75696E743235362900000000000000 DUP2 MSTORE DUP2 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x19 ADD DUP2 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x64 SWAP1 SWAP3 ADD SWAP1 SWAP3 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE PUSH2 0xD5E SWAP1 DUP5 SWAP1 PUSH2 0xED2 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 ADD DUP4 DUP2 LT ISZERO PUSH2 0xDC0 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT ISZERO PUSH2 0xE21 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F554E444552464C4F5700000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP SWAP1 SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0xE33 DUP2 PUSH2 0xA14 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0xE53 SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0xDC7 AND JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP3 SWAP1 SWAP3 SSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND DUP2 MSTORE KECCAK256 SLOAD PUSH2 0xE85 SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0xD63 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE DUP1 MLOAD DUP7 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP3 CALLER SWAP3 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xF80 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0xEDA PUSH2 0xF60 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE POP SWAP1 POP PUSH1 0x20 DUP2 DUP4 MLOAD PUSH1 0x20 DUP6 ADD PUSH1 0x0 DUP8 GAS CALL DUP1 ISZERO ISZERO PUSH2 0xF07 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD ISZERO ISZERO PUSH2 0xD5E JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5452414E534645525F4641494C454400000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 SWAP1 PUSH1 0x20 DUP3 MUL DUP1 CODESIZE DUP4 CODECOPY POP SWAP2 SWAP3 SWAP2 POP POP JUMP STOP 0xdd CALLCODE MSTORE 0xad SHL 0xe2 0xc8 SWAP12 PUSH10 0xC2B068FC378DAA952BA7 CALL PUSH4 0xC4A11628 0xf5 GAS 0x4d 0xf5 0x23 0xb3 0xef LOG1 PUSH6 0x627A7A723058 KECCAK256 BALANCE 0xb5 PUSH11 0xEBC8336B547B3E1346F50C 0x2f DIFFICULTY 0xf7 0xd 0xef SSTORE 0x4e 0xd4 0xcb LOG4 0xc8 SHL 0xcf 0x2e MULMOD 0x2d DIV PUSH32 0x29A165627A7A72305820E0EE560589EDA5987D8F172EA60698BFBFFC21529E 0xe8 DIV PUSH11 0xB37C5E3348E88BCD002900 ", + "sourceMap": "540:3276:29:-;;;;;;;;-1:-1:-1;540:3276:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;715:18;;8:9:-1;5:2;;;30:1;27;20:12;5:2;715:18:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;715:18:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;825:21;;8:9:-1;5:2;;;30:1;27;20:12;5:2;825:21:29;;;;;;;;;;;;;;;;;;;;;;;1077:194:71;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1077:194:71;-1:-1:-1;;;;;1077:194:71;;;;;;;;;;;;;;1762:102:29;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1762:102:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;1762:102:29;;;;;;;;;;;;;;;;;1159:176:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1159:176:66;;;;157:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;157:20:66;;;;;;;;-1:-1:-1;;;;;157:20:66;;;;;;;;;;;;;;769::29;;8:9:-1;5:2;;;30:1;27;20:12;5:2;769:20:29;;;;2001:519;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2001:519:29;;;;2848:126;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2848:126:29;-1:-1:-1;;;;;2848:126:29;;;;;;;;;;;;180:23:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;180:23:66;;;;945:140;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;945:140:66;;;-1:-1:-1;;;;;945:140:66;;;3289:132:29;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3289:132:29;-1:-1:-1;;;;;3289:132:29;;;;;;;;;;;;715:18;;;;;;;;;;;;;;-1:-1:-1;;715:18:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;825:21::-;;;;;;:::o;1077:194:71:-;575:12:66;:10;:12::i;:::-;1190:6:71;475:23:72;489:8;475:13;:23::i;:::-;1211:3:71;475:23:72;489:8;475:13;:23::i;:::-;1224:3:71;782:18:72;791:8;782;:18::i;:::-;1233:34:71;1246:6;1254:3;1259:7;1233:12;:34::i;:::-;502:1:72;;591::66;1077:194:71;;;:::o;1762:102:29:-;1805:13;1845:11;1838:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1838:18:29;;;-1:-1:-1;1838:18:29;;;;;;;;;;;;;;;;;;;1762:102;:::o;1159:176:66:-;1219:8;;-1:-1:-1;;;;;1219:8:66;1205:10;:22;1197:52;;;;;-1:-1:-1;;;;;1197:52:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;1277:8;;;1270:5;;1258:28;;-1:-1:-1;;;;;1277:8:66;;;;1270:5;;;;1258:28;;;1298:8;;;;1290:16;;-1:-1:-1;;;;;1298:8:66;;-1:-1:-1;;1290:16:66;;;;;;;1310:21;;;1159:176::o;157:20::-;;;-1:-1:-1;;;;;157:20:66;;:::o;769::29:-;;;;;;;;;;;;;;;-1:-1:-1;;769:20:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2001:519;2050:11;2210:22;2297:24;2390:16;575:12:66;:10;:12::i;:::-;662:1:29;2135:18;;:36;2127:70;;;;;-1:-1:-1;;;;;2127:70:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;2250:4;2235:51;;;;;;;;;;;;-1:-1:-1;;2235:51:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2250:4;;2235:51;;;2250:4;2235:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2262:11:29;:18;2283:1;2262:22;;-1:-1:-1;2235:14:29;;-1:-1:-1;;2235:51:29:i;:::-;2339:6;2324:53;;;;;;;;;;;;;-1:-1:-1;;2324:53:29;;;;;;;;;;;;;;;;;;;;;;;;;;2210:76;;-1:-1:-1;2324:53:29;;;2339:6;2324:53;;2339:6;2324:53;;;;;;;;;;;;;;;;;;;;;;;;;2446:8;;2297:80;;-1:-1:-1;2424:8:29;;2297:80;;2446:8;;2409:46;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;2409:46:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2409:46:29;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;2409:46:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;2466:11:29;27:10:-1;;39:1;23:18;;45:23;;-1:-1;2466:23:29;;;;;;;;-1:-1:-1;;2466:23:29;-1:-1:-1;;;;;2466:23:29;;;;;;;-1:-1:-1;;;;2001:519:29:o;2848:126::-;575:12:66;:10;:12::i;:::-;2940:26:29;;;;;;-1:-1:-1;;;;;2940:26:29;;;;;;;;;;;;;;;:12;;;;;;:26;;;;;-1:-1:-1;;2940:26:29;;;;;;;;-1:-1:-1;2940:12:29;:26;;;5:2:-1;;;;30:1;27;20:12;5:2;2940:26:29;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2940:26:29;;;;2848:126;;;:::o;180:23:66:-;;;-1:-1:-1;;;;;180:23:66;;:::o;945:140::-;575:12;:10;:12::i;:::-;1033:5;;-1:-1:-1;;;;;1020:18:66;;;1033:5;;1020:18;;1012:45;;;;;-1:-1:-1;;;;;1012:45:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;1061:8;:20;;-1:-1:-1;;1061:20:66;-1:-1:-1;;;;;1061:20:66;;;;;;;;;;945:140::o;3289:132:29:-;575:12:66;:10;:12::i;:::-;3383:30:29;;;;;;-1:-1:-1;;;;;3383:30:29;;;;;;;;;;;;;;;:14;;;;;;:30;;;;;-1:-1:-1;;3383:30:29;;;;;;;;-1:-1:-1;3383:14:29;:30;;;5:2:-1;;;;30:1;27;20:12;642:93:66;704:5;;-1:-1:-1;;;;;704:5:66;690:10;:19;682:49;;;;;-1:-1:-1;;;;;682:49:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;642:93::o;553:117:72:-;-1:-1:-1;;;;;620:22:72;;;;612:54;;;;;-1:-1:-1;;;;;612:54:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;553:117;:::o;855:115::-;937:4;-1:-1:-1;;;;;917:25:72;;;;909:57;;;;;-1:-1:-1;;;;;909:57:72;;;;;;;;;;;;;;;;;;;;;;;;;;;1214:173:70;248:38;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1323:59:70;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;1323:59:70;;;;;;;;25:18:-1;;61:17;;1323:59:70;182:15:-1;1323:59:70;;;;179:29:-1;;;;160:49;;;1307:76:70;;1315:6;;1307:7;:76::i;:::-;1214:173;;;:::o;3647:166:29:-;3720:6;3770:4;3797:6;3782:11;3776:18;;;:27;3753:51;;;;;;;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;3753:51:29;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;3753:51:29;;;3739:66;;3647:166;;;;:::o;2255:557:70:-;2324:21;;:::i;:::-;:36;;;;;;;;;2357:1;2324:36;;;;;2687:2;2661:3;2580:5;2574:12;2495:2;2488:5;2484:14;2465:1;2430:6;2404:3;2394:317;2725:7;2718:15;2715:2;;;2750:1;2747;2740:12;2715:2;-1:-1:-1;2773:6:70;;:11;;2765:43;;;;;-1:-1:-1;;;;;2765:43:70;;;;;;;;;;;;;;;;;;;;;;;;;;;540:3276:29;;;;;;;;;;:::o;:::-;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;-1:-1;540:3276:29;;;-1:-1:-1;;540:3276:29:o" + }, + "methodIdentifiers": { + "acceptOwnership()": "79ba5097", + "burn(address,address,uint256)": "f6b911bc", + "createToken()": "9cbf9e36", + "decimals()": "313ce567", + "mint(address,address,uint256)": "c6c3bbe6", + "name()": "06fdde03", + "newOwner()": "d4ee1d90", + "owner()": "8da5cb5b", + "poolTokens()": "6d3e313e", + "symbol()": "95d89b41", + "transferOwnership(address)": "f2fde38b", + "withdrawTokens(address,address,uint256)": "5e35359e" + } + }, + "userdoc": { + "methods": {} + } + } + }, + "solidity/contracts/converter/types/liquidity-pool-v2/interfaces/ILiquidityPoolV2Converter.sol": { + "ILiquidityPoolV2Converter": { + "abi": [ + { + "constant": true, + "inputs": [ + { + "name": "_reserveToken", + "type": "address" + } + ], + "name": "reserveStakedBalance", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "primaryReserveToken", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_primaryReserveToken", + "type": "address" + }, + { + "name": "_primaryReserveOracle", + "type": "address" + }, + { + "name": "_secondaryReserveOracle", + "type": "address" + } + ], + "name": "activate", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "priceOracle", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_reserveToken", + "type": "address" + }, + { + "name": "_balance", + "type": "uint256" + } + ], + "name": "setReserveStakedBalance", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ], + "devdoc": { + "methods": {} + }, + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "activate(address,address,address)": "119b90cd", + "priceOracle()": "2630c12f", + "primaryReserveToken()": "0337e3fb", + "reserveStakedBalance(address)": "005e319c", + "setReserveStakedBalance(address,uint256)": "bf7da6ba" + } + }, + "userdoc": { + "methods": {} + } + } + }, + "solidity/contracts/converter/types/liquidity-pool-v2/interfaces/IPoolTokensContainer.sol": { + "IPoolTokensContainer": { + "abi": [ + { + "constant": false, + "inputs": [ + { + "name": "_token", + "type": "address" + }, + { + "name": "_to", + "type": "address" + }, + { + "name": "_amount", + "type": "uint256" + } + ], + "name": "withdrawTokens", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "poolTokens", + "outputs": [ + { + "name": "", + "type": "address[]" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "acceptOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "owner", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "createToken", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_token", + "type": "address" + }, + { + "name": "_to", + "type": "address" + }, + { + "name": "_amount", + "type": "uint256" + } + ], + "name": "mint", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_token", + "type": "address" + }, + { + "name": "_from", + "type": "address" + }, + { + "name": "_amount", + "type": "uint256" + } + ], + "name": "burn", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ], + "devdoc": { + "methods": {} + }, + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "acceptOwnership()": "79ba5097", + "burn(address,address,uint256)": "f6b911bc", + "createToken()": "9cbf9e36", + "mint(address,address,uint256)": "c6c3bbe6", + "owner()": "8da5cb5b", + "poolTokens()": "6d3e313e", + "transferOwnership(address)": "f2fde38b", + "withdrawTokens(address,address,uint256)": "5e35359e" + } + }, + "userdoc": { + "methods": {} + } + } + }, + "solidity/contracts/helpers/TestChainlinkPriceOracle.sol": { + "TestChainlinkPriceOracle": { + "abi": [ + { + "constant": true, + "inputs": [], + "name": "latestAnswer", + "outputs": [ + { + "name": "", + "type": "int256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "latestTimestamp", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_answer", + "type": "int256" + } + ], + "name": "setAnswer", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_timestamp", + "type": "uint256" + } + ], + "name": "setTimestamp", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ], + "devdoc": { + "methods": {} + }, + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b50610105806100206000396000f300608060405260043610605c5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166350d25bcd811460615780638205bf6a14608557806399213cd8146097578063a0a2b5731460ae575b600080fd5b348015606c57600080fd5b50607360c3565b60408051918252519081900360200190f35b348015609057600080fd5b50607360c9565b34801560a257600080fd5b5060ac60043560cf565b005b34801560b957600080fd5b5060ac60043560d4565b60005490565b60015490565b600055565b6001555600a165627a7a72305820eea09aa0cda7513e629acd62ff999792dbb9faee50deb7304b847c2f1a2e1a890029", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x105 DUP1 PUSH2 0x20 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH1 0x5C JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x50D25BCD DUP2 EQ PUSH1 0x61 JUMPI DUP1 PUSH4 0x8205BF6A EQ PUSH1 0x85 JUMPI DUP1 PUSH4 0x99213CD8 EQ PUSH1 0x97 JUMPI DUP1 PUSH4 0xA0A2B573 EQ PUSH1 0xAE JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH1 0x6C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x73 PUSH1 0xC3 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH1 0x90 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x73 PUSH1 0xC9 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH1 0xA2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0xAC PUSH1 0x4 CALLDATALOAD PUSH1 0xCF JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH1 0xB9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0xAC PUSH1 0x4 CALLDATALOAD PUSH1 0xD4 JUMP JUMPDEST PUSH1 0x0 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x1 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 SSTORE JUMP JUMPDEST PUSH1 0x1 SSTORE JUMP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 0xee LOG0 SWAP11 LOG0 0xcd 0xa7 MLOAD RETURNDATACOPY PUSH3 0x9ACD62 SELFDESTRUCT SWAP10 SWAP8 SWAP3 0xdb 0xb9 STATICCALL 0xee POP 0xde 0xb7 ADDRESS 0x4b DUP5 PUSH29 0x2F1A2E1A89002900000000000000000000000000000000000000000000 ", + "sourceMap": "120:429:32:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;120:429:32;;;;;;;" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "608060405260043610605c5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166350d25bcd811460615780638205bf6a14608557806399213cd8146097578063a0a2b5731460ae575b600080fd5b348015606c57600080fd5b50607360c3565b60408051918252519081900360200190f35b348015609057600080fd5b50607360c9565b34801560a257600080fd5b5060ac60043560cf565b005b34801560b957600080fd5b5060ac60043560d4565b60005490565b60015490565b600055565b6001555600a165627a7a72305820eea09aa0cda7513e629acd62ff999792dbb9faee50deb7304b847c2f1a2e1a890029", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH1 0x5C JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x50D25BCD DUP2 EQ PUSH1 0x61 JUMPI DUP1 PUSH4 0x8205BF6A EQ PUSH1 0x85 JUMPI DUP1 PUSH4 0x99213CD8 EQ PUSH1 0x97 JUMPI DUP1 PUSH4 0xA0A2B573 EQ PUSH1 0xAE JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH1 0x6C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x73 PUSH1 0xC3 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH1 0x90 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x73 PUSH1 0xC9 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH1 0xA2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0xAC PUSH1 0x4 CALLDATALOAD PUSH1 0xCF JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH1 0xB9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0xAC PUSH1 0x4 CALLDATALOAD PUSH1 0xD4 JUMP JUMPDEST PUSH1 0x0 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x1 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 SSTORE JUMP JUMPDEST PUSH1 0x1 SSTORE JUMP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 0xee LOG0 SWAP11 LOG0 0xcd 0xa7 MLOAD RETURNDATACOPY PUSH3 0x9ACD62 SELFDESTRUCT SWAP10 SWAP8 SWAP3 0xdb 0xb9 STATICCALL 0xee POP 0xde 0xb7 ADDRESS 0x4b DUP5 PUSH29 0x2F1A2E1A89002900000000000000000000000000000000000000000000 ", + "sourceMap": "120:429:32:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;385:76;;8:9:-1;5:2;;;30:1;27;20:12;5:2;385:76:32;;;;;;;;;;;;;;;;;;;;464:83;;8:9:-1;5:2;;;30:1;27;20:12;5:2;464:83:32;;;;234:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;234:66:32;;;;;;;303:79;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;303:79:32;;;;;385:76;432:6;451;385:76;:::o;464:83::-;534:9;;464:83;:::o;234:66::-;280:6;:16;234:66::o;303:79::-;356:9;:22;303:79::o" + }, + "methodIdentifiers": { + "latestAnswer()": "50d25bcd", + "latestTimestamp()": "8205bf6a", + "setAnswer(int256)": "99213cd8", + "setTimestamp(uint256)": "a0a2b573" + } + }, + "userdoc": { + "methods": {} + } + } + }, + "solidity/contracts/helpers/TestContractRegistryClient.sol": { + "TestContractRegistryClient": { + "abi": [ + { + "constant": false, + "inputs": [ + { + "name": "_onlyOwnerCanUpdateRegistry", + "type": "bool" + } + ], + "name": "restrictRegistryUpdate", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "onlyOwnerCanUpdateRegistry", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "updateRegistry", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "prevRegistry", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "acceptOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "registry", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "owner", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "restoreRegistry", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "newOwner", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "name": "_registry", + "type": "address" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "_prevOwner", + "type": "address" + }, + { + "indexed": true, + "name": "_newOwner", + "type": "address" + } + ], + "name": "OwnerUpdate", + "type": "event" + } + ], + "devdoc": { + "methods": { + "acceptOwnership()": { + "details": "used by a new owner to accept an ownership transfer" + }, + "restoreRegistry()": { + "details": "restores the previous contract-registry" + }, + "restrictRegistryUpdate(bool)": { + "details": "restricts the permission to update the contract-registry", + "params": { + "_onlyOwnerCanUpdateRegistry": "indicates whether or not permission is restricted to owner only" + } + }, + "transferOwnership(address)": { + "details": "allows transferring the contract ownership the new owner still needs to accept the transfer can only be called by the contract owner", + "params": { + "_newOwner": "new contract owner" + } + }, + "updateRegistry()": { + "details": "updates to the new contract-registry" + } + } + }, + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b506040516020806108b4833981016040525160008054600160a060020a03191633179055808061004881640100000000610079810204565b5060028054600160a060020a03909216600160a060020a0319928316811790915560038054909216179055506100f3565b600160a060020a03811615156100f057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b50565b6107b2806101026000396000f3006080604052600436106100a35763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663024c7ec781146100a85780632fe8a6ad146100c457806349d10b64146100ed57806361cd756e1461010257806379ba5097146101335780637b103999146101485780638da5cb5b1461015d578063b4a176d314610172578063d4ee1d9014610187578063f2fde38b1461019c575b600080fd5b3480156100b457600080fd5b506100c260043515156101bd565b005b3480156100d057600080fd5b506100d9610205565b604080519115158252519081900360200190f35b3480156100f957600080fd5b506100c2610226565b34801561010e57600080fd5b506101176104a5565b60408051600160a060020a039092168252519081900360200190f35b34801561013f57600080fd5b506100c26104b4565b34801561015457600080fd5b50610117610587565b34801561016957600080fd5b50610117610596565b34801561017e57600080fd5b506100c26105a5565b34801561019357600080fd5b506101176105de565b3480156101a857600080fd5b506100c2600160a060020a03600435166105ed565b6101c561068a565b60038054911515740100000000000000000000000000000000000000000274ff000000000000000000000000000000000000000019909216919091179055565b60035474010000000000000000000000000000000000000000900460ff1681565b60008054600160a060020a031633148061025b575060035474010000000000000000000000000000000000000000900460ff16155b15156102b1576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b6102da7f436f6e74726163745265676973747279000000000000000000000000000000006106ee565b600254909150600160a060020a038083169116148015906103035750600160a060020a03811615155b1515610359576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e56414c49445f5245474953545259000000000000000000000000604482015290519081900360640190fd5b604080517fbb34534c0000000000000000000000000000000000000000000000000000000081527f436f6e747261637452656769737472790000000000000000000000000000000060048201529051600091600160a060020a0384169163bb34534c9160248082019260209290919082900301818787803b1580156103dd57600080fd5b505af11580156103f1573d6000803e3d6000fd5b505050506040513d602081101561040757600080fd5b5051600160a060020a03161415610468576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e56414c49445f5245474953545259000000000000000000000000604482015290519081900360640190fd5b6002805460038054600160a060020a0380841673ffffffffffffffffffffffffffffffffffffffff19928316179092559091169216919091179055565b600354600160a060020a031681565b600154600160a060020a03163314610516576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b60015460008054604051600160a060020a0393841693909116917f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91a3600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b600254600160a060020a031681565b600054600160a060020a031681565b6105ad61068a565b6003546002805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055565b600154600160a060020a031681565b6105f561068a565b600054600160a060020a038281169116141561065b576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f53414d455f4f574e4552000000000000000000000000000000000000604482015290519081900360640190fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600054600160a060020a031633146106ec576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b565b600254604080517fbb34534c000000000000000000000000000000000000000000000000000000008152600481018490529051600092600160a060020a03169163bb34534c91602480830192602092919082900301818787803b15801561075457600080fd5b505af1158015610768573d6000803e3d6000fd5b505050506040513d602081101561077e57600080fd5b5051929150505600a165627a7a72305820b04c996b6abc552bc22563a426227bf57b9b164d59e43cd6a919697e1d8ec1a90029", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP1 PUSH2 0x8B4 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 MSTORE MLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND CALLER OR SWAP1 SSTORE DUP1 DUP1 PUSH2 0x48 DUP2 PUSH5 0x100000000 PUSH2 0x79 DUP2 MUL DIV JUMP JUMPDEST POP PUSH1 0x2 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT SWAP3 DUP4 AND DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x3 DUP1 SLOAD SWAP1 SWAP3 AND OR SWAP1 SSTORE POP PUSH2 0xF3 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0xF0 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x7B2 DUP1 PUSH2 0x102 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0xA3 JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x24C7EC7 DUP2 EQ PUSH2 0xA8 JUMPI DUP1 PUSH4 0x2FE8A6AD EQ PUSH2 0xC4 JUMPI DUP1 PUSH4 0x49D10B64 EQ PUSH2 0xED JUMPI DUP1 PUSH4 0x61CD756E EQ PUSH2 0x102 JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x133 JUMPI DUP1 PUSH4 0x7B103999 EQ PUSH2 0x148 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x15D JUMPI DUP1 PUSH4 0xB4A176D3 EQ PUSH2 0x172 JUMPI DUP1 PUSH4 0xD4EE1D90 EQ PUSH2 0x187 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x19C JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xB4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xC2 PUSH1 0x4 CALLDATALOAD ISZERO ISZERO PUSH2 0x1BD JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xD0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xD9 PUSH2 0x205 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xF9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xC2 PUSH2 0x226 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x10E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x117 PUSH2 0x4A5 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x13F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xC2 PUSH2 0x4B4 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x154 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x117 PUSH2 0x587 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x169 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x117 PUSH2 0x596 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x17E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xC2 PUSH2 0x5A5 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x193 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x117 PUSH2 0x5DE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1A8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xC2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x5ED JUMP JUMPDEST PUSH2 0x1C5 PUSH2 0x68A JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD SWAP2 ISZERO ISZERO PUSH21 0x10000000000000000000000000000000000000000 MUL PUSH21 0xFF0000000000000000000000000000000000000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ DUP1 PUSH2 0x25B JUMPI POP PUSH1 0x3 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x2B1 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x2DA PUSH32 0x436F6E7472616374526567697374727900000000000000000000000000000000 PUSH2 0x6EE JUMP JUMPDEST PUSH1 0x2 SLOAD SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP4 AND SWAP2 AND EQ DUP1 ISZERO SWAP1 PUSH2 0x303 JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x359 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245474953545259000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0xBB34534C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH32 0x436F6E7472616374526567697374727900000000000000000000000000000000 PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP2 PUSH4 0xBB34534C SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3DD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3F1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x407 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ ISZERO PUSH2 0x468 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245474953545259000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP5 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP3 DUP4 AND OR SWAP1 SWAP3 SSTORE SWAP1 SWAP2 AND SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x516 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND SWAP4 SWAP1 SWAP2 AND SWAP2 PUSH32 0x343765429AEA5A34B3FF6A3785A98A5ABB2597ACA87BFBB58632C173D585373A SWAP2 LOG3 PUSH1 0x1 DUP1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND OR SWAP1 SWAP2 SSTORE AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH2 0x5AD PUSH2 0x68A JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x2 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH2 0x5F5 PUSH2 0x68A JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x65B JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F4F574E4552000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x6EC JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xBB34534C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP2 PUSH4 0xBB34534C SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x754 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x768 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x77E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP3 SWAP2 POP POP JUMP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 0xb0 0x4c SWAP10 PUSH12 0x6ABC552BC22563A426227BF5 PUSH28 0x9B164D59E43CD6A919697E1D8EC1A900290000000000000000000000 ", + "sourceMap": "153:151:33:-;;;218:84;8:9:-1;5:2;;;30:1;27;20:12;5:2;218:84:33;;;;;;;;;;;;;488:5:66;:18;;-1:-1:-1;;;;;;488:18:66;496:10;488:18;;;218:84:33;;475:23:72;218:84:33;475:13:72;;;;:23;:::i;:::-;-1:-1:-1;1931:8:60;:39;;-1:-1:-1;;;;;1931:39:60;;;-1:-1:-1;;;;;;1931:39:60;;;;;;;;1974:12;:43;;;;;;;;-1:-1:-1;153:151:33;;553:117:72;-1:-1:-1;;;;;620:22:72;;;;612:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;553:117;:::o;153:151:33:-;;;;;;;" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "6080604052600436106100a35763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663024c7ec781146100a85780632fe8a6ad146100c457806349d10b64146100ed57806361cd756e1461010257806379ba5097146101335780637b103999146101485780638da5cb5b1461015d578063b4a176d314610172578063d4ee1d9014610187578063f2fde38b1461019c575b600080fd5b3480156100b457600080fd5b506100c260043515156101bd565b005b3480156100d057600080fd5b506100d9610205565b604080519115158252519081900360200190f35b3480156100f957600080fd5b506100c2610226565b34801561010e57600080fd5b506101176104a5565b60408051600160a060020a039092168252519081900360200190f35b34801561013f57600080fd5b506100c26104b4565b34801561015457600080fd5b50610117610587565b34801561016957600080fd5b50610117610596565b34801561017e57600080fd5b506100c26105a5565b34801561019357600080fd5b506101176105de565b3480156101a857600080fd5b506100c2600160a060020a03600435166105ed565b6101c561068a565b60038054911515740100000000000000000000000000000000000000000274ff000000000000000000000000000000000000000019909216919091179055565b60035474010000000000000000000000000000000000000000900460ff1681565b60008054600160a060020a031633148061025b575060035474010000000000000000000000000000000000000000900460ff16155b15156102b1576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b6102da7f436f6e74726163745265676973747279000000000000000000000000000000006106ee565b600254909150600160a060020a038083169116148015906103035750600160a060020a03811615155b1515610359576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e56414c49445f5245474953545259000000000000000000000000604482015290519081900360640190fd5b604080517fbb34534c0000000000000000000000000000000000000000000000000000000081527f436f6e747261637452656769737472790000000000000000000000000000000060048201529051600091600160a060020a0384169163bb34534c9160248082019260209290919082900301818787803b1580156103dd57600080fd5b505af11580156103f1573d6000803e3d6000fd5b505050506040513d602081101561040757600080fd5b5051600160a060020a03161415610468576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e56414c49445f5245474953545259000000000000000000000000604482015290519081900360640190fd5b6002805460038054600160a060020a0380841673ffffffffffffffffffffffffffffffffffffffff19928316179092559091169216919091179055565b600354600160a060020a031681565b600154600160a060020a03163314610516576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b60015460008054604051600160a060020a0393841693909116917f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91a3600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b600254600160a060020a031681565b600054600160a060020a031681565b6105ad61068a565b6003546002805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055565b600154600160a060020a031681565b6105f561068a565b600054600160a060020a038281169116141561065b576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f53414d455f4f574e4552000000000000000000000000000000000000604482015290519081900360640190fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600054600160a060020a031633146106ec576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b565b600254604080517fbb34534c000000000000000000000000000000000000000000000000000000008152600481018490529051600092600160a060020a03169163bb34534c91602480830192602092919082900301818787803b15801561075457600080fd5b505af1158015610768573d6000803e3d6000fd5b505050506040513d602081101561077e57600080fd5b5051929150505600a165627a7a72305820b04c996b6abc552bc22563a426227bf57b9b164d59e43cd6a919697e1d8ec1a90029", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0xA3 JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x24C7EC7 DUP2 EQ PUSH2 0xA8 JUMPI DUP1 PUSH4 0x2FE8A6AD EQ PUSH2 0xC4 JUMPI DUP1 PUSH4 0x49D10B64 EQ PUSH2 0xED JUMPI DUP1 PUSH4 0x61CD756E EQ PUSH2 0x102 JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x133 JUMPI DUP1 PUSH4 0x7B103999 EQ PUSH2 0x148 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x15D JUMPI DUP1 PUSH4 0xB4A176D3 EQ PUSH2 0x172 JUMPI DUP1 PUSH4 0xD4EE1D90 EQ PUSH2 0x187 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x19C JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xB4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xC2 PUSH1 0x4 CALLDATALOAD ISZERO ISZERO PUSH2 0x1BD JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xD0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xD9 PUSH2 0x205 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xF9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xC2 PUSH2 0x226 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x10E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x117 PUSH2 0x4A5 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x13F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xC2 PUSH2 0x4B4 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x154 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x117 PUSH2 0x587 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x169 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x117 PUSH2 0x596 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x17E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xC2 PUSH2 0x5A5 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x193 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x117 PUSH2 0x5DE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1A8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xC2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x5ED JUMP JUMPDEST PUSH2 0x1C5 PUSH2 0x68A JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD SWAP2 ISZERO ISZERO PUSH21 0x10000000000000000000000000000000000000000 MUL PUSH21 0xFF0000000000000000000000000000000000000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ DUP1 PUSH2 0x25B JUMPI POP PUSH1 0x3 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x2B1 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x2DA PUSH32 0x436F6E7472616374526567697374727900000000000000000000000000000000 PUSH2 0x6EE JUMP JUMPDEST PUSH1 0x2 SLOAD SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP4 AND SWAP2 AND EQ DUP1 ISZERO SWAP1 PUSH2 0x303 JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x359 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245474953545259000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0xBB34534C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH32 0x436F6E7472616374526567697374727900000000000000000000000000000000 PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP2 PUSH4 0xBB34534C SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3DD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3F1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x407 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ ISZERO PUSH2 0x468 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245474953545259000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP5 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP3 DUP4 AND OR SWAP1 SWAP3 SSTORE SWAP1 SWAP2 AND SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x516 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND SWAP4 SWAP1 SWAP2 AND SWAP2 PUSH32 0x343765429AEA5A34B3FF6A3785A98A5ABB2597ACA87BFBB58632C173D585373A SWAP2 LOG3 PUSH1 0x1 DUP1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND OR SWAP1 SWAP2 SSTORE AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH2 0x5AD PUSH2 0x68A JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x2 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH2 0x5F5 PUSH2 0x68A JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x65B JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F4F574E4552000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x6EC JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xBB34534C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP2 PUSH4 0xBB34534C SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x754 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x768 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x77E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP3 SWAP2 POP POP JUMP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 0xb0 0x4c SWAP10 PUSH12 0x6ABC552BC22563A426227BF5 PUSH28 0x9B164D59E43CD6A919697E1D8EC1A900290000000000000000000000 ", + "sourceMap": "153:151:33:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3280:206:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3280:206:60;;;;;;;;;1250:38;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1250:38:60;;;;;;;;;;;;;;;;;;;;;;2080:832;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2080:832:60;;;;1165:37;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1165:37:60;;;;;;;;-1:-1:-1;;;;;1165:37:60;;;;;;;;;;;;;;1159:176:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1159:176:66;;;;1085:33:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1085:33:60;;;;157:20:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;157:20:66;;;;2974:119:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2974:119:60;;;;180:23:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;180:23:66;;;;945:140;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;945:140:66;-1:-1:-1;;;;;945:140:66;;;;;3280:206:60;575:12:66;:10;:12::i;:::-;3426:26:60;:56;;;;;;;-1:-1:-1;;3426:56:60;;;;;;;;;3280:206::o;1250:38::-;;;;;;;;;:::o;2080:832::-;2281:29;2183:5;;-1:-1:-1;;;;;2183:5:60;2169:10;:19;;:50;;-1:-1:-1;2193:26:60;;;;;;;2192:27;2169:50;2161:80;;;;;;;-1:-1:-1;;;;;2161:80:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;2331:28;2341:17;2331:9;:28::i;:::-;2465:8;;2281:79;;-1:-1:-1;;;;;;2442:32:60;;;2465:8;;2442:32;;;;:61;;-1:-1:-1;;;;;;2478:25:60;;;;2442:61;2434:94;;;;;;;-1:-1:-1;;;;;2434:94:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;2628:40;;;;;;2650:17;2628:40;;;;;;2680:1;;-1:-1:-1;;;;;2628:21:60;;;;;:40;;;;;;;;;;;;;;;2680:1;2628:21;:40;;;5:2:-1;;;;30:1;27;20:12;5:2;2628:40:60;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2628:40:60;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2628:40:60;-1:-1:-1;;;;;2628:54:60;;;2620:87;;;;;-1:-1:-1;;;;;2620:87:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;2799:8;;;2784:12;:23;;-1:-1:-1;;;;;2799:8:60;;;-1:-1:-1;;2784:23:60;;;;;;;2886:22;;;;;;;;;;;2080:832::o;1165:37::-;;;-1:-1:-1;;;;;1165:37:60;;:::o;1159:176:66:-;1219:8;;-1:-1:-1;;;;;1219:8:66;1205:10;:22;1197:52;;;;;-1:-1:-1;;;;;1197:52:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;1277:8;;;1270:5;;1258:28;;-1:-1:-1;;;;;1277:8:66;;;;1270:5;;;;1258:28;;;1298:8;;;;1290:16;;-1:-1:-1;;1290:16:66;;;-1:-1:-1;;;;;1298:8:66;;1290:16;;;;1310:21;;;1159:176::o;1085:33:60:-;;;-1:-1:-1;;;;;1085:33:60;;:::o;157:20:66:-;;;-1:-1:-1;;;;;157:20:66;;:::o;2974:119:60:-;575:12:66;:10;:12::i;:::-;3077::60;;3066:8;:23;;-1:-1:-1;;3066:23:60;-1:-1:-1;;;;;3077:12:60;;;3066:23;;;;;;2974:119::o;180:23:66:-;;;-1:-1:-1;;;;;180:23:66;;:::o;945:140::-;575:12;:10;:12::i;:::-;1033:5;;-1:-1:-1;;;;;1020:18:66;;;1033:5;;1020:18;;1012:45;;;;;-1:-1:-1;;;;;1012:45:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;1061:8;:20;;-1:-1:-1;;1061:20:66;-1:-1:-1;;;;;1061:20:66;;;;;;;;;;945:140::o;642:93::-;704:5;;-1:-1:-1;;;;;704:5:66;690:10;:19;682:49;;;;;-1:-1:-1;;;;;682:49:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;642:93::o;3647:122:60:-;3732:8;;:33;;;;;;;;;;;;;;3712:7;;-1:-1:-1;;;;;3732:8:60;;:18;;:33;;;;;;;;;;;;;;3712:7;3732:8;:33;;;5:2:-1;;;;30:1;27;20:12;5:2;3732:33:60;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3732:33:60;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3732:33:60;;3647:122;-1:-1:-1;;3647:122:60:o" + }, + "methodIdentifiers": { + "acceptOwnership()": "79ba5097", + "newOwner()": "d4ee1d90", + "onlyOwnerCanUpdateRegistry()": "2fe8a6ad", + "owner()": "8da5cb5b", + "prevRegistry()": "61cd756e", + "registry()": "7b103999", + "restoreRegistry()": "b4a176d3", + "restrictRegistryUpdate(bool)": "024c7ec7", + "transferOwnership(address)": "f2fde38b", + "updateRegistry()": "49d10b64" + } + }, + "userdoc": { + "methods": {} + } + } + }, + "solidity/contracts/helpers/TestConverterFactory.sol": { + "TestConverterFactory": { + "abi": [ + { + "constant": false, + "inputs": [ + { + "name": "_factory", + "type": "address" + } + ], + "name": "registerTypedConverterFactory", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_type", + "type": "uint16" + }, + { + "name": "_anchor", + "type": "address" + }, + { + "name": "_registry", + "type": "address" + }, + { + "name": "_maxConversionFee", + "type": "uint32" + } + ], + "name": "createConverter", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "createdConverter", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_converterType", + "type": "uint16" + }, + { + "name": "_name", + "type": "string" + }, + { + "name": "_symbol", + "type": "string" + }, + { + "name": "_decimals", + "type": "uint8" + } + ], + "name": "createAnchor", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "", + "type": "uint16" + } + ], + "name": "converterFactories", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "", + "type": "uint16" + } + ], + "name": "anchorFactories", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "createdAnchor", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "acceptOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_factory", + "type": "address" + } + ], + "name": "registerTypedConverterCustomFactory", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "owner", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "", + "type": "uint16" + } + ], + "name": "customFactories", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "newOwner", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_factory", + "type": "address" + } + ], + "name": "registerTypedConverterAnchorFactory", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "_type", + "type": "uint16" + }, + { + "indexed": true, + "name": "_converter", + "type": "address" + }, + { + "indexed": true, + "name": "_owner", + "type": "address" + } + ], + "name": "NewConverter", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "_prevOwner", + "type": "address" + }, + { + "indexed": true, + "name": "_newOwner", + "type": "address" + } + ], + "name": "OwnerUpdate", + "type": "event" + } + ], + "devdoc": { + "methods": { + "acceptOwnership()": { + "details": "used by a new owner to accept an ownership transfer" + }, + "registerTypedConverterAnchorFactory(address)": { + "details": "initializes the factory with a specific typed converter anchor factory can only be called by the owner", + "params": { + "_factory": "typed converter anchor factory" + } + }, + "registerTypedConverterCustomFactory(address)": { + "details": "initializes the factory with a specific typed converter custom factory can only be called by the owner", + "params": { + "_factory": "typed converter custom factory" + } + }, + "registerTypedConverterFactory(address)": { + "details": "initializes the factory with a specific typed converter factory can only be called by the owner", + "params": { + "_factory": "typed converter factory" + } + }, + "transferOwnership(address)": { + "details": "allows transferring the contract ownership the new owner still needs to accept the transfer can only be called by the contract owner", + "params": { + "_newOwner": "new contract owner" + } + } + } + }, + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "608060405260008054600160a060020a03191633179055611f9f806100256000396000f300608060405260043610620000c55763ffffffff60e060020a60003504166312b4c6c18114620000ca57806315f64b6a14620000f05780631814f2d214620001465780632e9ab7b3146200015e578063327779a714620002065780633a8fc52014620002255780636a4e5391146200024457806379ba5097146200025c5780638cac5e2914620002745780638da5cb5b1462000298578063c977aed214620002b0578063d4ee1d9014620002cf578063e54b93ef14620002e7578063f2fde38b146200030b575b600080fd5b348015620000d757600080fd5b50620000ee600160a060020a03600435166200032f565b005b348015620000fd57600080fd5b506200012a61ffff60043516600160a060020a036024358116906044351663ffffffff60643516620003ed565b60408051600160a060020a039092168252519081900360200190f35b3480156200015357600080fd5b506200012a62000432565b3480156200016b57600080fd5b5060408051602060046024803582810135601f81018590048502860185019096528585526200012a95833561ffff1695369560449491939091019190819084018382808284375050604080516020601f89358b018035918201839004830284018301909452808352979a9998810197919650918201945092508291508401838280828437509497505050923560ff1693506200044192505050565b3480156200021357600080fd5b506200012a61ffff6004351662000486565b3480156200023257600080fd5b506200012a61ffff60043516620004a1565b3480156200025157600080fd5b506200012a620004bc565b3480156200026957600080fd5b50620000ee620004cb565b3480156200028157600080fd5b50620000ee600160a060020a0360043516620005b6565b348015620002a557600080fd5b506200012a62000604565b348015620002bd57600080fd5b506200012a61ffff6004351662000613565b348015620002dc57600080fd5b506200012a6200062e565b348015620002f457600080fd5b50620000ee600160a060020a03600435166200063d565b3480156200031857600080fd5b50620000ee600160a060020a03600435166200068b565b6200033962000742565b806002600083600160a060020a0316633e8ff43f6040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156200037d57600080fd5b505af115801562000392573d6000803e3d6000fd5b505050506040513d6020811015620003a957600080fd5b505161ffff1681526020810191909152604001600020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905550565b6000620003fd85858585620007be565b6005805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392831617908190551695945050505050565b600554600160a060020a031681565b60006200045185858585620009ae565b6006805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392831617908190551695945050505050565b600260205260009081526040902054600160a060020a031681565b600360205260009081526040902054600160a060020a031681565b600654600160a060020a031681565b600154600160a060020a031633146200054557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b60015460008054604051600160a060020a0393841693909116917f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91a3600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b620005c062000742565b806004600083600160a060020a0316633e8ff43f6040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156200037d57600080fd5b600054600160a060020a031681565b600460205260009081526040902054600160a060020a031681565b600154600160a060020a031681565b6200064762000742565b806003600083600160a060020a0316633e8ff43f6040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156200037d57600080fd5b6200069562000742565b600054600160a060020a03828116911614156200071357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f4552525f53414d455f4f574e4552000000000000000000000000000000000000604482015290519081900360640190fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600054600160a060020a03163314620007bc57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b565b61ffff841660009081526002602090815260408083205481517f11413958000000000000000000000000000000000000000000000000000000008152600160a060020a038881166004830152878116602483015263ffffffff8716604483015292518594939092169263114139589260648084019382900301818787803b1580156200084957600080fd5b505af11580156200085e573d6000803e3d6000fd5b505050506040513d60208110156200087557600080fd5b5051604080517f79ba50970000000000000000000000000000000000000000000000000000000081529051919250600160a060020a038316916379ba50979160048082019260009290919082900301818387803b158015620008d657600080fd5b505af1158015620008eb573d6000803e3d6000fd5b5050604080517ff2fde38b0000000000000000000000000000000000000000000000000000000081523360048201529051600160a060020a038516935063f2fde38b9250602480830192600092919082900301818387803b1580156200095057600080fd5b505af115801562000965573d6000803e3d6000fd5b5050604051339250600160a060020a038416915061ffff8916907fbb340bcea68d239ac719bc5cf8c9a1716df04ad3babb8d1e562aa44d19fea3a390600090a495945050505050565b61ffff84166000908152600360205260408120548190600160a060020a031680151562000ae757858585620009e262000d3a565b60ff82166040820152606080825284519082015283518190602080830191608084019188019080838360005b8381101562000a2857818101518382015260200162000a0e565b50505050905090810190601f16801562000a565780820380516001836020036101000a031916815260200191505b50838103825285518152855160209182019187019080838360005b8381101562000a8b57818101518382015260200162000a71565b50505050905090810190601f16801562000ab95780820380516001836020036101000a031916815260200191505b5095505050505050604051809103906000f08015801562000ade573d6000803e3d6000fd5b50915062000cb5565b80600160a060020a031663a9fd4a2a8787876040518463ffffffff1660e060020a0281526004018080602001806020018460ff1660ff168152602001838103835286818151815260200191508051906020019080838360005b8381101562000b5a57818101518382015260200162000b40565b50505050905090810190601f16801562000b885780820380516001836020036101000a031916815260200191505b50838103825285518152855160209182019187019080838360005b8381101562000bbd57818101518382015260200162000ba3565b50505050905090810190601f16801562000beb5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15801562000c0e57600080fd5b505af115801562000c23573d6000803e3d6000fd5b505050506040513d602081101562000c3a57600080fd5b5051604080517f79ba50970000000000000000000000000000000000000000000000000000000081529051919350600160a060020a038416916379ba50979160048082019260009290919082900301818387803b15801562000c9b57600080fd5b505af115801562000cb0573d6000803e3d6000fd5b505050505b604080517ff2fde38b0000000000000000000000000000000000000000000000000000000081523360048201529051600160a060020a0384169163f2fde38b91602480830192600092919082900301818387803b15801562000d1657600080fd5b505af115801562000d2b573d6000803e3d6000fd5b50939998505050505050505050565b6040516112288062000d4c83390190560060806040526008805460ff191660011790553480156200001e57600080fd5b506040516200122838038062001228833981016040908152815160208301519183015160008054600160a060020a0319163317815591840180519094939093019290918491849184918110620000d557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f4552525f494e56414c49445f4e414d4500000000000000000000000000000000604482015290519081900360640190fd5b82516000106200014657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f4552525f494e56414c49445f53594d424f4c0000000000000000000000000000604482015290519081900360640190fd5b83516200015b906002906020870190620001a8565b50825162000171906003906020860190620001a8565b506004805460ff191660ff9390931692909217909155600581905533600090815260066020526040902055506200024d9350505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620001eb57805160ff19168380011785556200021b565b828001600101855582156200021b579182015b828111156200021b578251825591602001919060010190620001fe565b50620002299291506200022d565b5090565b6200024a91905b8082111562000229576000815560010162000234565b90565b610fcb806200025d6000396000f3006080604052600436106101065763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde03811461010b578063095ea7b3146101955780631608f18f146101cd57806318160ddd146101e957806323b872dd14610210578063313ce5671461023a57806354fd4d50146102655780635e35359e1461029157806370a08231146102bb57806379ba5097146102dc578063867904b4146102f15780638da5cb5b1461031557806395d89b4114610346578063a24835d11461035b578063a9059cbb1461037f578063bef97c87146103a3578063d4ee1d90146103b8578063dd62ed3e146103cd578063f2fde38b146103f4575b600080fd5b34801561011757600080fd5b50610120610415565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561015a578181015183820152602001610142565b50505050905090810190601f1680156101875780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101a157600080fd5b506101b9600160a060020a03600435166024356104a0565b604080519115158252519081900360200190f35b3480156101d957600080fd5b506101e76004351515610598565b005b3480156101f557600080fd5b506101fe6105b2565b60408051918252519081900360200190f35b34801561021c57600080fd5b506101b9600160a060020a03600435811690602435166044356105b8565b34801561024657600080fd5b5061024f6105df565b6040805160ff9092168252519081900360200190f35b34801561027157600080fd5b5061027a6105e8565b6040805161ffff9092168252519081900360200190f35b34801561029d57600080fd5b506101e7600160a060020a03600435811690602435166044356105ed565b3480156102c757600080fd5b506101fe600160a060020a0360043516610626565b3480156102e857600080fd5b506101e7610638565b3480156102fd57600080fd5b506101e7600160a060020a036004351660243561070b565b34801561032157600080fd5b5061032a6107ed565b60408051600160a060020a039092168252519081900360200190f35b34801561035257600080fd5b506101206107fc565b34801561036757600080fd5b506101e7600160a060020a0360043516602435610857565b34801561038b57600080fd5b506101b9600160a060020a036004351660243561091d565b3480156103af57600080fd5b506101b9610942565b3480156103c457600080fd5b5061032a61094b565b3480156103d957600080fd5b506101fe600160a060020a036004358116906024351661095a565b34801561040057600080fd5b506101e7600160a060020a0360043516610977565b6002805460408051602060018416156101000260001901909316849004601f810184900484028201840190925281815292918301828280156104985780601f1061046d57610100808354040283529160200191610498565b820191906000526020600020905b81548152906001019060200180831161047b57829003601f168201915b505050505081565b6000826104ac81610a14565b8215806104da5750336000908152600760209081526040808320600160a060020a0388168452909152902054155b1515610530576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f494e56414c49445f414d4f554e540000000000000000000000000000604482015290519081900360640190fd5b336000818152600760209081526040808320600160a060020a03891680855290835292819020879055805187815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060019392505050565b6105a0610a77565b6008805460ff19169115919091179055565b60055481565b60006105c2610adb565b6105cd848484610b37565b15156105d557fe5b5060019392505050565b60045460ff1681565b600481565b6105f5610a77565b826105ff81610a14565b8261060981610a14565b8361061381610c48565b61061e868686610ca9565b505050505050565b60066020526000908152604090205481565b600154600160a060020a0316331461069a576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b60015460008054604051600160a060020a0393841693909116917f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91a3600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b610713610a77565b8161071d81610a14565b8261072781610c48565b60055461073a908463ffffffff610d6316565b600555600160a060020a038416600090815260066020526040902054610766908463ffffffff610d6316565b600160a060020a03851660009081526006602090815260409182902092909255805185815290517f9386c90217c323f58030f9dadcbc938f807a940f4ff41cd4cead9562f5da7dc3929181900390910190a1604080518481529051600160a060020a03861691600091600080516020610f808339815191529181900360200190a350505050565b600054600160a060020a031681565b6003805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156104985780601f1061046d57610100808354040283529160200191610498565b61085f610a77565b600160a060020a038216600090815260066020526040902054610888908263ffffffff610dc716565b600160a060020a0383166000908152600660205260409020556005546108b4908263ffffffff610dc716565b600555604080518281529051600091600160a060020a03851691600080516020610f808339815191529181900360200190a36040805182815290517f9a1b418bc061a5d80270261562e6986a35d995f8051145f277be16103abd34539181900360200190a15050565b6000610927610adb565b6109318383610e27565b151561093957fe5b50600192915050565b60085460ff1681565b600154600160a060020a031681565b600760209081526000928352604080842090915290825290205481565b61097f610a77565b600054600160a060020a03828116911614156109e5576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f53414d455f4f574e4552000000000000000000000000000000000000604482015290519081900360640190fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600160a060020a0381161515610a74576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b50565b600054600160a060020a03163314610ad9576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b565b60085460ff161515610ad9576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f5452414e53464552535f44495341424c454400000000000000000000604482015290519081900360640190fd5b600083610b4381610a14565b83610b4d81610a14565b600160a060020a0386166000908152600760209081526040808320338452909152902054610b81908563ffffffff610dc716565b600160a060020a038716600081815260076020908152604080832033845282528083209490945591815260069091522054610bc2908563ffffffff610dc716565b600160a060020a038088166000908152600660205260408082209390935590871681522054610bf7908563ffffffff610d6316565b600160a060020a0380871660008181526006602090815260409182902094909455805188815290519193928a1692600080516020610f8083398151915292918290030190a350600195945050505050565b600160a060020a038116301415610a74576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f414444524553535f49535f53454c4600000000000000000000000000604482015290519081900360640190fd5b604080517f7472616e7366657228616464726573732c75696e74323536290000000000000081528151908190036019018120600160a060020a038516602483015260448083018590528351808403909101815260649092019092526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152610d5e908490610ed2565b505050565b600082820183811015610dc0576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b9392505050565b600081831015610e21576040805160e560020a62461bcd02815260206004820152600d60248201527f4552525f554e444552464c4f5700000000000000000000000000000000000000604482015290519081900360640190fd5b50900390565b600082610e3381610a14565b33600090815260066020526040902054610e53908463ffffffff610dc716565b3360009081526006602052604080822092909255600160a060020a03861681522054610e85908463ffffffff610d6316565b600160a060020a038516600081815260066020908152604091829020939093558051868152905191923392600080516020610f808339815191529281900390910190a35060019392505050565b610eda610f60565b602060405190810160405280600181525090506020818351602085016000875af1801515610f0757600080fd5b5080511515610d5e576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f5452414e534645525f4641494c454400000000000000000000000000604482015290519081900360640190fd5b60206040519081016040528060019060208202803883395091929150505600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a7230582031b56aebc8336b547b3e1346f50c2f44f70def554ed4cba4c81bcf2e092d047f0029a165627a7a7230582033b1e99a66879fc8e2fa7dcc6d6d541acb31b7108ea8f2ebb15eaa4554f7bd6b0029", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND CALLER OR SWAP1 SSTORE PUSH2 0x1F9F DUP1 PUSH2 0x25 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH3 0xC5 JUMPI PUSH4 0xFFFFFFFF PUSH1 0xE0 PUSH1 0x2 EXP PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x12B4C6C1 DUP2 EQ PUSH3 0xCA JUMPI DUP1 PUSH4 0x15F64B6A EQ PUSH3 0xF0 JUMPI DUP1 PUSH4 0x1814F2D2 EQ PUSH3 0x146 JUMPI DUP1 PUSH4 0x2E9AB7B3 EQ PUSH3 0x15E JUMPI DUP1 PUSH4 0x327779A7 EQ PUSH3 0x206 JUMPI DUP1 PUSH4 0x3A8FC520 EQ PUSH3 0x225 JUMPI DUP1 PUSH4 0x6A4E5391 EQ PUSH3 0x244 JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH3 0x25C JUMPI DUP1 PUSH4 0x8CAC5E29 EQ PUSH3 0x274 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH3 0x298 JUMPI DUP1 PUSH4 0xC977AED2 EQ PUSH3 0x2B0 JUMPI DUP1 PUSH4 0xD4EE1D90 EQ PUSH3 0x2CF JUMPI DUP1 PUSH4 0xE54B93EF EQ PUSH3 0x2E7 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH3 0x30B JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0xD7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0xEE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH3 0x32F JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0xFD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x12A PUSH2 0xFFFF PUSH1 0x4 CALLDATALOAD AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x24 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x44 CALLDATALOAD AND PUSH4 0xFFFFFFFF PUSH1 0x64 CALLDATALOAD AND PUSH3 0x3ED JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0x153 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x12A PUSH3 0x432 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0x16B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 PUSH1 0x24 DUP1 CALLDATALOAD DUP3 DUP2 ADD CALLDATALOAD PUSH1 0x1F DUP2 ADD DUP6 SWAP1 DIV DUP6 MUL DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP6 DUP6 MSTORE PUSH3 0x12A SWAP6 DUP4 CALLDATALOAD PUSH2 0xFFFF AND SWAP6 CALLDATASIZE SWAP6 PUSH1 0x44 SWAP5 SWAP2 SWAP4 SWAP1 SWAP2 ADD SWAP2 SWAP1 DUP2 SWAP1 DUP5 ADD DUP4 DUP3 DUP1 DUP3 DUP5 CALLDATACOPY POP POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x1F DUP10 CALLDATALOAD DUP12 ADD DUP1 CALLDATALOAD SWAP2 DUP3 ADD DUP4 SWAP1 DIV DUP4 MUL DUP5 ADD DUP4 ADD SWAP1 SWAP5 MSTORE DUP1 DUP4 MSTORE SWAP8 SWAP11 SWAP10 SWAP9 DUP2 ADD SWAP8 SWAP2 SWAP7 POP SWAP2 DUP3 ADD SWAP5 POP SWAP3 POP DUP3 SWAP2 POP DUP5 ADD DUP4 DUP3 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP POP POP SWAP3 CALLDATALOAD PUSH1 0xFF AND SWAP4 POP PUSH3 0x441 SWAP3 POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0x213 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x12A PUSH2 0xFFFF PUSH1 0x4 CALLDATALOAD AND PUSH3 0x486 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0x232 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x12A PUSH2 0xFFFF PUSH1 0x4 CALLDATALOAD AND PUSH3 0x4A1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0x251 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x12A PUSH3 0x4BC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0x269 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0xEE PUSH3 0x4CB JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0x281 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0xEE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH3 0x5B6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0x2A5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x12A PUSH3 0x604 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0x2BD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x12A PUSH2 0xFFFF PUSH1 0x4 CALLDATALOAD AND PUSH3 0x613 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0x2DC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x12A PUSH3 0x62E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0x2F4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0xEE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH3 0x63D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0x318 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0xEE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH3 0x68B JUMP JUMPDEST PUSH3 0x339 PUSH3 0x742 JUMP JUMPDEST DUP1 PUSH1 0x2 PUSH1 0x0 DUP4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x3E8FF43F PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH3 0x37D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH3 0x392 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH3 0x3A9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x3FD DUP6 DUP6 DUP6 DUP6 PUSH3 0x7BE JUMP JUMPDEST PUSH1 0x5 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 DUP4 AND OR SWAP1 DUP2 SWAP1 SSTORE AND SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH3 0x451 DUP6 DUP6 DUP6 DUP6 PUSH3 0x9AE JUMP JUMPDEST PUSH1 0x6 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 DUP4 AND OR SWAP1 DUP2 SWAP1 SSTORE AND SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH3 0x545 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND SWAP4 SWAP1 SWAP2 AND SWAP2 PUSH32 0x343765429AEA5A34B3FF6A3785A98A5ABB2597ACA87BFBB58632C173D585373A SWAP2 LOG3 PUSH1 0x1 DUP1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND OR SWAP1 SWAP2 SSTORE AND SWAP1 SSTORE JUMP JUMPDEST PUSH3 0x5C0 PUSH3 0x742 JUMP JUMPDEST DUP1 PUSH1 0x4 PUSH1 0x0 DUP4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x3E8FF43F PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH3 0x37D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH3 0x647 PUSH3 0x742 JUMP JUMPDEST DUP1 PUSH1 0x3 PUSH1 0x0 DUP4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x3E8FF43F PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH3 0x37D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH3 0x695 PUSH3 0x742 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ ISZERO PUSH3 0x713 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F4F574E4552000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH3 0x7BC JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH2 0xFFFF DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD DUP2 MLOAD PUSH32 0x1141395800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP8 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH4 0xFFFFFFFF DUP8 AND PUSH1 0x44 DUP4 ADD MSTORE SWAP3 MLOAD DUP6 SWAP5 SWAP4 SWAP1 SWAP3 AND SWAP3 PUSH4 0x11413958 SWAP3 PUSH1 0x64 DUP1 DUP5 ADD SWAP4 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH3 0x849 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH3 0x85E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH3 0x875 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x79BA509700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 AND SWAP2 PUSH4 0x79BA5097 SWAP2 PUSH1 0x4 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH3 0x8D6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH3 0x8EB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 DUP1 MLOAD PUSH32 0xF2FDE38B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND SWAP4 POP PUSH4 0xF2FDE38B SWAP3 POP PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH3 0x950 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH3 0x965 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD CALLER SWAP3 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP2 POP PUSH2 0xFFFF DUP10 AND SWAP1 PUSH32 0xBB340BCEA68D239AC719BC5CF8C9A1716DF04AD3BABB8D1E562AA44D19FEA3A3 SWAP1 PUSH1 0x0 SWAP1 LOG4 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP2 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP1 ISZERO ISZERO PUSH3 0xAE7 JUMPI DUP6 DUP6 DUP6 PUSH3 0x9E2 PUSH3 0xD3A JUMP JUMPDEST PUSH1 0xFF DUP3 AND PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP1 DUP3 MSTORE DUP5 MLOAD SWAP1 DUP3 ADD MSTORE DUP4 MLOAD DUP2 SWAP1 PUSH1 0x20 DUP1 DUP4 ADD SWAP2 PUSH1 0x80 DUP5 ADD SWAP2 DUP9 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH3 0xA28 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH3 0xA0E JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH3 0xA56 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP DUP4 DUP2 SUB DUP3 MSTORE DUP6 MLOAD DUP2 MSTORE DUP6 MLOAD PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 DUP8 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH3 0xA8B JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH3 0xA71 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH3 0xAB9 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP6 POP POP POP POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 PUSH1 0x0 CREATE DUP1 ISZERO DUP1 ISZERO PUSH3 0xADE JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP SWAP2 POP PUSH3 0xCB5 JUMP JUMPDEST DUP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xA9FD4A2A DUP8 DUP8 DUP8 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP5 PUSH1 0xFF AND PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 SUB DUP4 MSTORE DUP7 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH3 0xB5A JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH3 0xB40 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH3 0xB88 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP DUP4 DUP2 SUB DUP3 MSTORE DUP6 MLOAD DUP2 MSTORE DUP6 MLOAD PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 DUP8 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH3 0xBBD JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH3 0xBA3 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH3 0xBEB JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP6 POP POP POP POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH3 0xC0E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH3 0xC23 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH3 0xC3A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x79BA509700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP4 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP2 PUSH4 0x79BA5097 SWAP2 PUSH1 0x4 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH3 0xC9B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH3 0xCB0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0xF2FDE38B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP2 PUSH4 0xF2FDE38B SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH3 0xD16 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH3 0xD2B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP SWAP4 SWAP10 SWAP9 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1228 DUP1 PUSH3 0xD4C DUP4 CODECOPY ADD SWAP1 JUMP STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x8 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE CALLVALUE DUP1 ISZERO PUSH3 0x1E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x1228 CODESIZE SUB DUP1 PUSH3 0x1228 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 SWAP1 DUP2 MSTORE DUP2 MLOAD PUSH1 0x20 DUP4 ADD MLOAD SWAP2 DUP4 ADD MLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND CALLER OR DUP2 SSTORE SWAP2 DUP5 ADD DUP1 MLOAD SWAP1 SWAP5 SWAP4 SWAP1 SWAP4 ADD SWAP3 SWAP1 SWAP2 DUP5 SWAP2 DUP5 SWAP2 DUP5 SWAP2 DUP2 LT PUSH3 0xD5 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4E414D4500000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP3 MLOAD PUSH1 0x0 LT PUSH3 0x146 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F53594D424F4C0000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP4 MLOAD PUSH3 0x15B SWAP1 PUSH1 0x2 SWAP1 PUSH1 0x20 DUP8 ADD SWAP1 PUSH3 0x1A8 JUMP JUMPDEST POP DUP3 MLOAD PUSH3 0x171 SWAP1 PUSH1 0x3 SWAP1 PUSH1 0x20 DUP7 ADD SWAP1 PUSH3 0x1A8 JUMP JUMPDEST POP PUSH1 0x4 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0xFF SWAP4 SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 SSTORE PUSH1 0x5 DUP2 SWAP1 SSTORE CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE POP PUSH3 0x24D SWAP4 POP POP POP POP JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH1 0x1F LT PUSH3 0x1EB JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH3 0x21B JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH3 0x21B JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH3 0x21B JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH3 0x1FE JUMP JUMPDEST POP PUSH3 0x229 SWAP3 SWAP2 POP PUSH3 0x22D JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH3 0x24A SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH3 0x229 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH3 0x234 JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH2 0xFCB DUP1 PUSH3 0x25D PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x106 JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x6FDDE03 DUP2 EQ PUSH2 0x10B JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x195 JUMPI DUP1 PUSH4 0x1608F18F EQ PUSH2 0x1CD JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x1E9 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x210 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x23A JUMPI DUP1 PUSH4 0x54FD4D50 EQ PUSH2 0x265 JUMPI DUP1 PUSH4 0x5E35359E EQ PUSH2 0x291 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x2BB JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x2DC JUMPI DUP1 PUSH4 0x867904B4 EQ PUSH2 0x2F1 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x315 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x346 JUMPI DUP1 PUSH4 0xA24835D1 EQ PUSH2 0x35B JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x37F JUMPI DUP1 PUSH4 0xBEF97C87 EQ PUSH2 0x3A3 JUMPI DUP1 PUSH4 0xD4EE1D90 EQ PUSH2 0x3B8 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x3CD JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x3F4 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x117 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x120 PUSH2 0x415 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP4 MLOAD DUP2 DUP4 ADD MSTORE DUP4 MLOAD SWAP2 SWAP3 DUP4 SWAP3 SWAP1 DUP4 ADD SWAP2 DUP6 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x15A JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x142 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x187 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1A1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B9 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x4A0 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1D9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH1 0x4 CALLDATALOAD ISZERO ISZERO PUSH2 0x598 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1FE PUSH2 0x5B2 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x21C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B9 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x5B8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x246 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x24F PUSH2 0x5DF JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x271 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x27A PUSH2 0x5E8 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0xFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x29D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x5ED JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2C7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1FE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x626 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2E8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH2 0x638 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2FD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x70B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x321 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x32A PUSH2 0x7ED JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x352 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x120 PUSH2 0x7FC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x367 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x857 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x38B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B9 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x91D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3AF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B9 PUSH2 0x942 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3C4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x32A PUSH2 0x94B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3D9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1FE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH2 0x95A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x400 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x977 JUMP JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x1 DUP5 AND ISZERO PUSH2 0x100 MUL PUSH1 0x0 NOT ADD SWAP1 SWAP4 AND DUP5 SWAP1 DIV PUSH1 0x1F DUP2 ADD DUP5 SWAP1 DIV DUP5 MUL DUP3 ADD DUP5 ADD SWAP1 SWAP3 MSTORE DUP2 DUP2 MSTORE SWAP3 SWAP2 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x498 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x46D JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x498 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x47B JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x4AC DUP2 PUSH2 0xA14 JUMP JUMPDEST DUP3 ISZERO DUP1 PUSH2 0x4DA JUMPI POP CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x530 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F414D4F554E540000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST CALLER PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP10 AND DUP1 DUP6 MSTORE SWAP1 DUP4 MSTORE SWAP3 DUP2 SWAP1 KECCAK256 DUP8 SWAP1 SSTORE DUP1 MLOAD DUP8 DUP2 MSTORE SWAP1 MLOAD SWAP3 SWAP4 SWAP3 PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP3 SWAP2 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x5A0 PUSH2 0xA77 JUMP JUMPDEST PUSH1 0x8 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP2 ISZERO SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x5 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5C2 PUSH2 0xADB JUMP JUMPDEST PUSH2 0x5CD DUP5 DUP5 DUP5 PUSH2 0xB37 JUMP JUMPDEST ISZERO ISZERO PUSH2 0x5D5 JUMPI INVALID JUMPDEST POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x4 DUP2 JUMP JUMPDEST PUSH2 0x5F5 PUSH2 0xA77 JUMP JUMPDEST DUP3 PUSH2 0x5FF DUP2 PUSH2 0xA14 JUMP JUMPDEST DUP3 PUSH2 0x609 DUP2 PUSH2 0xA14 JUMP JUMPDEST DUP4 PUSH2 0x613 DUP2 PUSH2 0xC48 JUMP JUMPDEST PUSH2 0x61E DUP7 DUP7 DUP7 PUSH2 0xCA9 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x69A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND SWAP4 SWAP1 SWAP2 AND SWAP2 PUSH32 0x343765429AEA5A34B3FF6A3785A98A5ABB2597ACA87BFBB58632C173D585373A SWAP2 LOG3 PUSH1 0x1 DUP1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND OR SWAP1 SWAP2 SSTORE AND SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x713 PUSH2 0xA77 JUMP JUMPDEST DUP2 PUSH2 0x71D DUP2 PUSH2 0xA14 JUMP JUMPDEST DUP3 PUSH2 0x727 DUP2 PUSH2 0xC48 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH2 0x73A SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0xD63 AND JUMP JUMPDEST PUSH1 0x5 SSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x766 SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0xD63 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SWAP3 SWAP1 SWAP3 SSTORE DUP1 MLOAD DUP6 DUP2 MSTORE SWAP1 MLOAD PUSH32 0x9386C90217C323F58030F9DADCBC938F807A940F4FF41CD4CEAD9562F5DA7DC3 SWAP3 SWAP2 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG1 PUSH1 0x40 DUP1 MLOAD DUP5 DUP2 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND SWAP2 PUSH1 0x0 SWAP2 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xF80 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP2 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 LOG3 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x2 PUSH1 0x1 DUP6 AND ISZERO PUSH2 0x100 MUL PUSH1 0x0 NOT ADD SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 DIV PUSH1 0x1F DUP2 ADD DUP5 SWAP1 DIV DUP5 MUL DUP3 ADD DUP5 ADD SWAP1 SWAP3 MSTORE DUP2 DUP2 MSTORE SWAP3 SWAP2 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x498 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x46D JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x498 JUMP JUMPDEST PUSH2 0x85F PUSH2 0xA77 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x888 SWAP1 DUP3 PUSH4 0xFFFFFFFF PUSH2 0xDC7 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE PUSH1 0x5 SLOAD PUSH2 0x8B4 SWAP1 DUP3 PUSH4 0xFFFFFFFF PUSH2 0xDC7 AND JUMP JUMPDEST PUSH1 0x5 SSTORE PUSH1 0x40 DUP1 MLOAD DUP3 DUP2 MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND SWAP2 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xF80 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP2 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 LOG3 PUSH1 0x40 DUP1 MLOAD DUP3 DUP2 MSTORE SWAP1 MLOAD PUSH32 0x9A1B418BC061A5D80270261562E6986A35D995F8051145F277BE16103ABD3453 SWAP2 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x927 PUSH2 0xADB JUMP JUMPDEST PUSH2 0x931 DUP4 DUP4 PUSH2 0xE27 JUMP JUMPDEST ISZERO ISZERO PUSH2 0x939 JUMPI INVALID JUMPDEST POP PUSH1 0x1 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x97F PUSH2 0xA77 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x9E5 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F4F574E4552000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0xA74 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0xAD9 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0xFF AND ISZERO ISZERO PUSH2 0xAD9 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5452414E53464552535F44495341424C454400000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP4 PUSH2 0xB43 DUP2 PUSH2 0xA14 JUMP JUMPDEST DUP4 PUSH2 0xB4D DUP2 PUSH2 0xA14 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH2 0xB81 SWAP1 DUP6 PUSH4 0xFFFFFFFF PUSH2 0xDC7 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE DUP3 MSTORE DUP1 DUP4 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE SWAP2 DUP2 MSTORE PUSH1 0x6 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD PUSH2 0xBC2 SWAP1 DUP6 PUSH4 0xFFFFFFFF PUSH2 0xDC7 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE SWAP1 DUP8 AND DUP2 MSTORE KECCAK256 SLOAD PUSH2 0xBF7 SWAP1 DUP6 PUSH4 0xFFFFFFFF PUSH2 0xD63 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP8 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE DUP1 MLOAD DUP9 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP4 SWAP3 DUP11 AND SWAP3 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xF80 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP3 SWAP2 DUP3 SWAP1 SUB ADD SWAP1 LOG3 POP PUSH1 0x1 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ADDRESS EQ ISZERO PUSH2 0xA74 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F414444524553535F49535F53454C4600000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x7472616E7366657228616464726573732C75696E743235362900000000000000 DUP2 MSTORE DUP2 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x19 ADD DUP2 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x64 SWAP1 SWAP3 ADD SWAP1 SWAP3 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE PUSH2 0xD5E SWAP1 DUP5 SWAP1 PUSH2 0xED2 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 ADD DUP4 DUP2 LT ISZERO PUSH2 0xDC0 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT ISZERO PUSH2 0xE21 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F554E444552464C4F5700000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP SWAP1 SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0xE33 DUP2 PUSH2 0xA14 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0xE53 SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0xDC7 AND JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP3 SWAP1 SWAP3 SSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND DUP2 MSTORE KECCAK256 SLOAD PUSH2 0xE85 SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0xD63 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE DUP1 MLOAD DUP7 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP3 CALLER SWAP3 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xF80 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0xEDA PUSH2 0xF60 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE POP SWAP1 POP PUSH1 0x20 DUP2 DUP4 MLOAD PUSH1 0x20 DUP6 ADD PUSH1 0x0 DUP8 GAS CALL DUP1 ISZERO ISZERO PUSH2 0xF07 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD ISZERO ISZERO PUSH2 0xD5E JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5452414E534645525F4641494C454400000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 SWAP1 PUSH1 0x20 DUP3 MUL DUP1 CODESIZE DUP4 CODECOPY POP SWAP2 SWAP3 SWAP2 POP POP JUMP STOP 0xdd CALLCODE MSTORE 0xad SHL 0xe2 0xc8 SWAP12 PUSH10 0xC2B068FC378DAA952BA7 CALL PUSH4 0xC4A11628 0xf5 GAS 0x4d 0xf5 0x23 0xb3 0xef LOG1 PUSH6 0x627A7A723058 KECCAK256 BALANCE 0xb5 PUSH11 0xEBC8336B547B3E1346F50C 0x2f DIFFICULTY 0xf7 0xd 0xef SSTORE 0x4e 0xd4 0xcb LOG4 0xc8 SHL 0xcf 0x2e MULMOD 0x2d DIV PUSH32 0x29A165627A7A7230582033B1E99A66879FC8E2FA7DCC6D6D541ACB31B7108E 0xa8 CALLCODE 0xeb 0xb1 0x5e 0xaa GASLIMIT SLOAD 0xf7 0xbd PUSH12 0x2900000000000000000000 ", + "sourceMap": "142:664:34:-;;;488:5:66;:18;;-1:-1:-1;;;;;;488:18:66;496:10;488:18;;;142:664:34;;;;;;" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "608060405260043610620000c55763ffffffff60e060020a60003504166312b4c6c18114620000ca57806315f64b6a14620000f05780631814f2d214620001465780632e9ab7b3146200015e578063327779a714620002065780633a8fc52014620002255780636a4e5391146200024457806379ba5097146200025c5780638cac5e2914620002745780638da5cb5b1462000298578063c977aed214620002b0578063d4ee1d9014620002cf578063e54b93ef14620002e7578063f2fde38b146200030b575b600080fd5b348015620000d757600080fd5b50620000ee600160a060020a03600435166200032f565b005b348015620000fd57600080fd5b506200012a61ffff60043516600160a060020a036024358116906044351663ffffffff60643516620003ed565b60408051600160a060020a039092168252519081900360200190f35b3480156200015357600080fd5b506200012a62000432565b3480156200016b57600080fd5b5060408051602060046024803582810135601f81018590048502860185019096528585526200012a95833561ffff1695369560449491939091019190819084018382808284375050604080516020601f89358b018035918201839004830284018301909452808352979a9998810197919650918201945092508291508401838280828437509497505050923560ff1693506200044192505050565b3480156200021357600080fd5b506200012a61ffff6004351662000486565b3480156200023257600080fd5b506200012a61ffff60043516620004a1565b3480156200025157600080fd5b506200012a620004bc565b3480156200026957600080fd5b50620000ee620004cb565b3480156200028157600080fd5b50620000ee600160a060020a0360043516620005b6565b348015620002a557600080fd5b506200012a62000604565b348015620002bd57600080fd5b506200012a61ffff6004351662000613565b348015620002dc57600080fd5b506200012a6200062e565b348015620002f457600080fd5b50620000ee600160a060020a03600435166200063d565b3480156200031857600080fd5b50620000ee600160a060020a03600435166200068b565b6200033962000742565b806002600083600160a060020a0316633e8ff43f6040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156200037d57600080fd5b505af115801562000392573d6000803e3d6000fd5b505050506040513d6020811015620003a957600080fd5b505161ffff1681526020810191909152604001600020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905550565b6000620003fd85858585620007be565b6005805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392831617908190551695945050505050565b600554600160a060020a031681565b60006200045185858585620009ae565b6006805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392831617908190551695945050505050565b600260205260009081526040902054600160a060020a031681565b600360205260009081526040902054600160a060020a031681565b600654600160a060020a031681565b600154600160a060020a031633146200054557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b60015460008054604051600160a060020a0393841693909116917f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91a3600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b620005c062000742565b806004600083600160a060020a0316633e8ff43f6040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156200037d57600080fd5b600054600160a060020a031681565b600460205260009081526040902054600160a060020a031681565b600154600160a060020a031681565b6200064762000742565b806003600083600160a060020a0316633e8ff43f6040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156200037d57600080fd5b6200069562000742565b600054600160a060020a03828116911614156200071357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f4552525f53414d455f4f574e4552000000000000000000000000000000000000604482015290519081900360640190fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600054600160a060020a03163314620007bc57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b565b61ffff841660009081526002602090815260408083205481517f11413958000000000000000000000000000000000000000000000000000000008152600160a060020a038881166004830152878116602483015263ffffffff8716604483015292518594939092169263114139589260648084019382900301818787803b1580156200084957600080fd5b505af11580156200085e573d6000803e3d6000fd5b505050506040513d60208110156200087557600080fd5b5051604080517f79ba50970000000000000000000000000000000000000000000000000000000081529051919250600160a060020a038316916379ba50979160048082019260009290919082900301818387803b158015620008d657600080fd5b505af1158015620008eb573d6000803e3d6000fd5b5050604080517ff2fde38b0000000000000000000000000000000000000000000000000000000081523360048201529051600160a060020a038516935063f2fde38b9250602480830192600092919082900301818387803b1580156200095057600080fd5b505af115801562000965573d6000803e3d6000fd5b5050604051339250600160a060020a038416915061ffff8916907fbb340bcea68d239ac719bc5cf8c9a1716df04ad3babb8d1e562aa44d19fea3a390600090a495945050505050565b61ffff84166000908152600360205260408120548190600160a060020a031680151562000ae757858585620009e262000d3a565b60ff82166040820152606080825284519082015283518190602080830191608084019188019080838360005b8381101562000a2857818101518382015260200162000a0e565b50505050905090810190601f16801562000a565780820380516001836020036101000a031916815260200191505b50838103825285518152855160209182019187019080838360005b8381101562000a8b57818101518382015260200162000a71565b50505050905090810190601f16801562000ab95780820380516001836020036101000a031916815260200191505b5095505050505050604051809103906000f08015801562000ade573d6000803e3d6000fd5b50915062000cb5565b80600160a060020a031663a9fd4a2a8787876040518463ffffffff1660e060020a0281526004018080602001806020018460ff1660ff168152602001838103835286818151815260200191508051906020019080838360005b8381101562000b5a57818101518382015260200162000b40565b50505050905090810190601f16801562000b885780820380516001836020036101000a031916815260200191505b50838103825285518152855160209182019187019080838360005b8381101562000bbd57818101518382015260200162000ba3565b50505050905090810190601f16801562000beb5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15801562000c0e57600080fd5b505af115801562000c23573d6000803e3d6000fd5b505050506040513d602081101562000c3a57600080fd5b5051604080517f79ba50970000000000000000000000000000000000000000000000000000000081529051919350600160a060020a038416916379ba50979160048082019260009290919082900301818387803b15801562000c9b57600080fd5b505af115801562000cb0573d6000803e3d6000fd5b505050505b604080517ff2fde38b0000000000000000000000000000000000000000000000000000000081523360048201529051600160a060020a0384169163f2fde38b91602480830192600092919082900301818387803b15801562000d1657600080fd5b505af115801562000d2b573d6000803e3d6000fd5b50939998505050505050505050565b6040516112288062000d4c83390190560060806040526008805460ff191660011790553480156200001e57600080fd5b506040516200122838038062001228833981016040908152815160208301519183015160008054600160a060020a0319163317815591840180519094939093019290918491849184918110620000d557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f4552525f494e56414c49445f4e414d4500000000000000000000000000000000604482015290519081900360640190fd5b82516000106200014657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f4552525f494e56414c49445f53594d424f4c0000000000000000000000000000604482015290519081900360640190fd5b83516200015b906002906020870190620001a8565b50825162000171906003906020860190620001a8565b506004805460ff191660ff9390931692909217909155600581905533600090815260066020526040902055506200024d9350505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620001eb57805160ff19168380011785556200021b565b828001600101855582156200021b579182015b828111156200021b578251825591602001919060010190620001fe565b50620002299291506200022d565b5090565b6200024a91905b8082111562000229576000815560010162000234565b90565b610fcb806200025d6000396000f3006080604052600436106101065763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde03811461010b578063095ea7b3146101955780631608f18f146101cd57806318160ddd146101e957806323b872dd14610210578063313ce5671461023a57806354fd4d50146102655780635e35359e1461029157806370a08231146102bb57806379ba5097146102dc578063867904b4146102f15780638da5cb5b1461031557806395d89b4114610346578063a24835d11461035b578063a9059cbb1461037f578063bef97c87146103a3578063d4ee1d90146103b8578063dd62ed3e146103cd578063f2fde38b146103f4575b600080fd5b34801561011757600080fd5b50610120610415565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561015a578181015183820152602001610142565b50505050905090810190601f1680156101875780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101a157600080fd5b506101b9600160a060020a03600435166024356104a0565b604080519115158252519081900360200190f35b3480156101d957600080fd5b506101e76004351515610598565b005b3480156101f557600080fd5b506101fe6105b2565b60408051918252519081900360200190f35b34801561021c57600080fd5b506101b9600160a060020a03600435811690602435166044356105b8565b34801561024657600080fd5b5061024f6105df565b6040805160ff9092168252519081900360200190f35b34801561027157600080fd5b5061027a6105e8565b6040805161ffff9092168252519081900360200190f35b34801561029d57600080fd5b506101e7600160a060020a03600435811690602435166044356105ed565b3480156102c757600080fd5b506101fe600160a060020a0360043516610626565b3480156102e857600080fd5b506101e7610638565b3480156102fd57600080fd5b506101e7600160a060020a036004351660243561070b565b34801561032157600080fd5b5061032a6107ed565b60408051600160a060020a039092168252519081900360200190f35b34801561035257600080fd5b506101206107fc565b34801561036757600080fd5b506101e7600160a060020a0360043516602435610857565b34801561038b57600080fd5b506101b9600160a060020a036004351660243561091d565b3480156103af57600080fd5b506101b9610942565b3480156103c457600080fd5b5061032a61094b565b3480156103d957600080fd5b506101fe600160a060020a036004358116906024351661095a565b34801561040057600080fd5b506101e7600160a060020a0360043516610977565b6002805460408051602060018416156101000260001901909316849004601f810184900484028201840190925281815292918301828280156104985780601f1061046d57610100808354040283529160200191610498565b820191906000526020600020905b81548152906001019060200180831161047b57829003601f168201915b505050505081565b6000826104ac81610a14565b8215806104da5750336000908152600760209081526040808320600160a060020a0388168452909152902054155b1515610530576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f494e56414c49445f414d4f554e540000000000000000000000000000604482015290519081900360640190fd5b336000818152600760209081526040808320600160a060020a03891680855290835292819020879055805187815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060019392505050565b6105a0610a77565b6008805460ff19169115919091179055565b60055481565b60006105c2610adb565b6105cd848484610b37565b15156105d557fe5b5060019392505050565b60045460ff1681565b600481565b6105f5610a77565b826105ff81610a14565b8261060981610a14565b8361061381610c48565b61061e868686610ca9565b505050505050565b60066020526000908152604090205481565b600154600160a060020a0316331461069a576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b60015460008054604051600160a060020a0393841693909116917f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91a3600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b610713610a77565b8161071d81610a14565b8261072781610c48565b60055461073a908463ffffffff610d6316565b600555600160a060020a038416600090815260066020526040902054610766908463ffffffff610d6316565b600160a060020a03851660009081526006602090815260409182902092909255805185815290517f9386c90217c323f58030f9dadcbc938f807a940f4ff41cd4cead9562f5da7dc3929181900390910190a1604080518481529051600160a060020a03861691600091600080516020610f808339815191529181900360200190a350505050565b600054600160a060020a031681565b6003805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156104985780601f1061046d57610100808354040283529160200191610498565b61085f610a77565b600160a060020a038216600090815260066020526040902054610888908263ffffffff610dc716565b600160a060020a0383166000908152600660205260409020556005546108b4908263ffffffff610dc716565b600555604080518281529051600091600160a060020a03851691600080516020610f808339815191529181900360200190a36040805182815290517f9a1b418bc061a5d80270261562e6986a35d995f8051145f277be16103abd34539181900360200190a15050565b6000610927610adb565b6109318383610e27565b151561093957fe5b50600192915050565b60085460ff1681565b600154600160a060020a031681565b600760209081526000928352604080842090915290825290205481565b61097f610a77565b600054600160a060020a03828116911614156109e5576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f53414d455f4f574e4552000000000000000000000000000000000000604482015290519081900360640190fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600160a060020a0381161515610a74576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b50565b600054600160a060020a03163314610ad9576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b565b60085460ff161515610ad9576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f5452414e53464552535f44495341424c454400000000000000000000604482015290519081900360640190fd5b600083610b4381610a14565b83610b4d81610a14565b600160a060020a0386166000908152600760209081526040808320338452909152902054610b81908563ffffffff610dc716565b600160a060020a038716600081815260076020908152604080832033845282528083209490945591815260069091522054610bc2908563ffffffff610dc716565b600160a060020a038088166000908152600660205260408082209390935590871681522054610bf7908563ffffffff610d6316565b600160a060020a0380871660008181526006602090815260409182902094909455805188815290519193928a1692600080516020610f8083398151915292918290030190a350600195945050505050565b600160a060020a038116301415610a74576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f414444524553535f49535f53454c4600000000000000000000000000604482015290519081900360640190fd5b604080517f7472616e7366657228616464726573732c75696e74323536290000000000000081528151908190036019018120600160a060020a038516602483015260448083018590528351808403909101815260649092019092526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152610d5e908490610ed2565b505050565b600082820183811015610dc0576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b9392505050565b600081831015610e21576040805160e560020a62461bcd02815260206004820152600d60248201527f4552525f554e444552464c4f5700000000000000000000000000000000000000604482015290519081900360640190fd5b50900390565b600082610e3381610a14565b33600090815260066020526040902054610e53908463ffffffff610dc716565b3360009081526006602052604080822092909255600160a060020a03861681522054610e85908463ffffffff610d6316565b600160a060020a038516600081815260066020908152604091829020939093558051868152905191923392600080516020610f808339815191529281900390910190a35060019392505050565b610eda610f60565b602060405190810160405280600181525090506020818351602085016000875af1801515610f0757600080fd5b5080511515610d5e576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f5452414e534645525f4641494c454400000000000000000000000000604482015290519081900360640190fd5b60206040519081016040528060019060208202803883395091929150505600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a7230582031b56aebc8336b547b3e1346f50c2f44f70def554ed4cba4c81bcf2e092d047f0029a165627a7a7230582033b1e99a66879fc8e2fa7dcc6d6d541acb31b7108ea8f2ebb15eaa4554f7bd6b0029", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH3 0xC5 JUMPI PUSH4 0xFFFFFFFF PUSH1 0xE0 PUSH1 0x2 EXP PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x12B4C6C1 DUP2 EQ PUSH3 0xCA JUMPI DUP1 PUSH4 0x15F64B6A EQ PUSH3 0xF0 JUMPI DUP1 PUSH4 0x1814F2D2 EQ PUSH3 0x146 JUMPI DUP1 PUSH4 0x2E9AB7B3 EQ PUSH3 0x15E JUMPI DUP1 PUSH4 0x327779A7 EQ PUSH3 0x206 JUMPI DUP1 PUSH4 0x3A8FC520 EQ PUSH3 0x225 JUMPI DUP1 PUSH4 0x6A4E5391 EQ PUSH3 0x244 JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH3 0x25C JUMPI DUP1 PUSH4 0x8CAC5E29 EQ PUSH3 0x274 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH3 0x298 JUMPI DUP1 PUSH4 0xC977AED2 EQ PUSH3 0x2B0 JUMPI DUP1 PUSH4 0xD4EE1D90 EQ PUSH3 0x2CF JUMPI DUP1 PUSH4 0xE54B93EF EQ PUSH3 0x2E7 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH3 0x30B JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0xD7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0xEE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH3 0x32F JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0xFD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x12A PUSH2 0xFFFF PUSH1 0x4 CALLDATALOAD AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x24 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x44 CALLDATALOAD AND PUSH4 0xFFFFFFFF PUSH1 0x64 CALLDATALOAD AND PUSH3 0x3ED JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0x153 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x12A PUSH3 0x432 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0x16B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 PUSH1 0x24 DUP1 CALLDATALOAD DUP3 DUP2 ADD CALLDATALOAD PUSH1 0x1F DUP2 ADD DUP6 SWAP1 DIV DUP6 MUL DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP6 DUP6 MSTORE PUSH3 0x12A SWAP6 DUP4 CALLDATALOAD PUSH2 0xFFFF AND SWAP6 CALLDATASIZE SWAP6 PUSH1 0x44 SWAP5 SWAP2 SWAP4 SWAP1 SWAP2 ADD SWAP2 SWAP1 DUP2 SWAP1 DUP5 ADD DUP4 DUP3 DUP1 DUP3 DUP5 CALLDATACOPY POP POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x1F DUP10 CALLDATALOAD DUP12 ADD DUP1 CALLDATALOAD SWAP2 DUP3 ADD DUP4 SWAP1 DIV DUP4 MUL DUP5 ADD DUP4 ADD SWAP1 SWAP5 MSTORE DUP1 DUP4 MSTORE SWAP8 SWAP11 SWAP10 SWAP9 DUP2 ADD SWAP8 SWAP2 SWAP7 POP SWAP2 DUP3 ADD SWAP5 POP SWAP3 POP DUP3 SWAP2 POP DUP5 ADD DUP4 DUP3 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP POP POP SWAP3 CALLDATALOAD PUSH1 0xFF AND SWAP4 POP PUSH3 0x441 SWAP3 POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0x213 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x12A PUSH2 0xFFFF PUSH1 0x4 CALLDATALOAD AND PUSH3 0x486 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0x232 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x12A PUSH2 0xFFFF PUSH1 0x4 CALLDATALOAD AND PUSH3 0x4A1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0x251 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x12A PUSH3 0x4BC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0x269 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0xEE PUSH3 0x4CB JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0x281 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0xEE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH3 0x5B6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0x2A5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x12A PUSH3 0x604 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0x2BD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x12A PUSH2 0xFFFF PUSH1 0x4 CALLDATALOAD AND PUSH3 0x613 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0x2DC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x12A PUSH3 0x62E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0x2F4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0xEE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH3 0x63D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0x318 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0xEE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH3 0x68B JUMP JUMPDEST PUSH3 0x339 PUSH3 0x742 JUMP JUMPDEST DUP1 PUSH1 0x2 PUSH1 0x0 DUP4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x3E8FF43F PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH3 0x37D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH3 0x392 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH3 0x3A9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x3FD DUP6 DUP6 DUP6 DUP6 PUSH3 0x7BE JUMP JUMPDEST PUSH1 0x5 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 DUP4 AND OR SWAP1 DUP2 SWAP1 SSTORE AND SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH3 0x451 DUP6 DUP6 DUP6 DUP6 PUSH3 0x9AE JUMP JUMPDEST PUSH1 0x6 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 DUP4 AND OR SWAP1 DUP2 SWAP1 SSTORE AND SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH3 0x545 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND SWAP4 SWAP1 SWAP2 AND SWAP2 PUSH32 0x343765429AEA5A34B3FF6A3785A98A5ABB2597ACA87BFBB58632C173D585373A SWAP2 LOG3 PUSH1 0x1 DUP1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND OR SWAP1 SWAP2 SSTORE AND SWAP1 SSTORE JUMP JUMPDEST PUSH3 0x5C0 PUSH3 0x742 JUMP JUMPDEST DUP1 PUSH1 0x4 PUSH1 0x0 DUP4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x3E8FF43F PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH3 0x37D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH3 0x647 PUSH3 0x742 JUMP JUMPDEST DUP1 PUSH1 0x3 PUSH1 0x0 DUP4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x3E8FF43F PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH3 0x37D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH3 0x695 PUSH3 0x742 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ ISZERO PUSH3 0x713 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F4F574E4552000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH3 0x7BC JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH2 0xFFFF DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD DUP2 MLOAD PUSH32 0x1141395800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP8 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH4 0xFFFFFFFF DUP8 AND PUSH1 0x44 DUP4 ADD MSTORE SWAP3 MLOAD DUP6 SWAP5 SWAP4 SWAP1 SWAP3 AND SWAP3 PUSH4 0x11413958 SWAP3 PUSH1 0x64 DUP1 DUP5 ADD SWAP4 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH3 0x849 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH3 0x85E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH3 0x875 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x79BA509700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 AND SWAP2 PUSH4 0x79BA5097 SWAP2 PUSH1 0x4 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH3 0x8D6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH3 0x8EB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 DUP1 MLOAD PUSH32 0xF2FDE38B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND SWAP4 POP PUSH4 0xF2FDE38B SWAP3 POP PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH3 0x950 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH3 0x965 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD CALLER SWAP3 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP2 POP PUSH2 0xFFFF DUP10 AND SWAP1 PUSH32 0xBB340BCEA68D239AC719BC5CF8C9A1716DF04AD3BABB8D1E562AA44D19FEA3A3 SWAP1 PUSH1 0x0 SWAP1 LOG4 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP2 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP1 ISZERO ISZERO PUSH3 0xAE7 JUMPI DUP6 DUP6 DUP6 PUSH3 0x9E2 PUSH3 0xD3A JUMP JUMPDEST PUSH1 0xFF DUP3 AND PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP1 DUP3 MSTORE DUP5 MLOAD SWAP1 DUP3 ADD MSTORE DUP4 MLOAD DUP2 SWAP1 PUSH1 0x20 DUP1 DUP4 ADD SWAP2 PUSH1 0x80 DUP5 ADD SWAP2 DUP9 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH3 0xA28 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH3 0xA0E JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH3 0xA56 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP DUP4 DUP2 SUB DUP3 MSTORE DUP6 MLOAD DUP2 MSTORE DUP6 MLOAD PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 DUP8 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH3 0xA8B JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH3 0xA71 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH3 0xAB9 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP6 POP POP POP POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 PUSH1 0x0 CREATE DUP1 ISZERO DUP1 ISZERO PUSH3 0xADE JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP SWAP2 POP PUSH3 0xCB5 JUMP JUMPDEST DUP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xA9FD4A2A DUP8 DUP8 DUP8 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP5 PUSH1 0xFF AND PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 SUB DUP4 MSTORE DUP7 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH3 0xB5A JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH3 0xB40 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH3 0xB88 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP DUP4 DUP2 SUB DUP3 MSTORE DUP6 MLOAD DUP2 MSTORE DUP6 MLOAD PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 DUP8 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH3 0xBBD JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH3 0xBA3 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH3 0xBEB JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP6 POP POP POP POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH3 0xC0E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH3 0xC23 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH3 0xC3A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x79BA509700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP4 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP2 PUSH4 0x79BA5097 SWAP2 PUSH1 0x4 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH3 0xC9B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH3 0xCB0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0xF2FDE38B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP2 PUSH4 0xF2FDE38B SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH3 0xD16 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH3 0xD2B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP SWAP4 SWAP10 SWAP9 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1228 DUP1 PUSH3 0xD4C DUP4 CODECOPY ADD SWAP1 JUMP STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x8 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE CALLVALUE DUP1 ISZERO PUSH3 0x1E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x1228 CODESIZE SUB DUP1 PUSH3 0x1228 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 SWAP1 DUP2 MSTORE DUP2 MLOAD PUSH1 0x20 DUP4 ADD MLOAD SWAP2 DUP4 ADD MLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND CALLER OR DUP2 SSTORE SWAP2 DUP5 ADD DUP1 MLOAD SWAP1 SWAP5 SWAP4 SWAP1 SWAP4 ADD SWAP3 SWAP1 SWAP2 DUP5 SWAP2 DUP5 SWAP2 DUP5 SWAP2 DUP2 LT PUSH3 0xD5 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4E414D4500000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP3 MLOAD PUSH1 0x0 LT PUSH3 0x146 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F53594D424F4C0000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP4 MLOAD PUSH3 0x15B SWAP1 PUSH1 0x2 SWAP1 PUSH1 0x20 DUP8 ADD SWAP1 PUSH3 0x1A8 JUMP JUMPDEST POP DUP3 MLOAD PUSH3 0x171 SWAP1 PUSH1 0x3 SWAP1 PUSH1 0x20 DUP7 ADD SWAP1 PUSH3 0x1A8 JUMP JUMPDEST POP PUSH1 0x4 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0xFF SWAP4 SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 SSTORE PUSH1 0x5 DUP2 SWAP1 SSTORE CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE POP PUSH3 0x24D SWAP4 POP POP POP POP JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH1 0x1F LT PUSH3 0x1EB JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH3 0x21B JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH3 0x21B JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH3 0x21B JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH3 0x1FE JUMP JUMPDEST POP PUSH3 0x229 SWAP3 SWAP2 POP PUSH3 0x22D JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH3 0x24A SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH3 0x229 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH3 0x234 JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH2 0xFCB DUP1 PUSH3 0x25D PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x106 JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x6FDDE03 DUP2 EQ PUSH2 0x10B JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x195 JUMPI DUP1 PUSH4 0x1608F18F EQ PUSH2 0x1CD JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x1E9 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x210 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x23A JUMPI DUP1 PUSH4 0x54FD4D50 EQ PUSH2 0x265 JUMPI DUP1 PUSH4 0x5E35359E EQ PUSH2 0x291 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x2BB JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x2DC JUMPI DUP1 PUSH4 0x867904B4 EQ PUSH2 0x2F1 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x315 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x346 JUMPI DUP1 PUSH4 0xA24835D1 EQ PUSH2 0x35B JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x37F JUMPI DUP1 PUSH4 0xBEF97C87 EQ PUSH2 0x3A3 JUMPI DUP1 PUSH4 0xD4EE1D90 EQ PUSH2 0x3B8 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x3CD JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x3F4 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x117 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x120 PUSH2 0x415 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP4 MLOAD DUP2 DUP4 ADD MSTORE DUP4 MLOAD SWAP2 SWAP3 DUP4 SWAP3 SWAP1 DUP4 ADD SWAP2 DUP6 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x15A JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x142 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x187 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1A1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B9 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x4A0 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1D9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH1 0x4 CALLDATALOAD ISZERO ISZERO PUSH2 0x598 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1FE PUSH2 0x5B2 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x21C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B9 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x5B8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x246 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x24F PUSH2 0x5DF JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x271 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x27A PUSH2 0x5E8 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0xFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x29D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x5ED JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2C7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1FE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x626 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2E8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH2 0x638 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2FD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x70B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x321 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x32A PUSH2 0x7ED JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x352 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x120 PUSH2 0x7FC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x367 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x857 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x38B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B9 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x91D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3AF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B9 PUSH2 0x942 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3C4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x32A PUSH2 0x94B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3D9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1FE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH2 0x95A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x400 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x977 JUMP JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x1 DUP5 AND ISZERO PUSH2 0x100 MUL PUSH1 0x0 NOT ADD SWAP1 SWAP4 AND DUP5 SWAP1 DIV PUSH1 0x1F DUP2 ADD DUP5 SWAP1 DIV DUP5 MUL DUP3 ADD DUP5 ADD SWAP1 SWAP3 MSTORE DUP2 DUP2 MSTORE SWAP3 SWAP2 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x498 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x46D JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x498 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x47B JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x4AC DUP2 PUSH2 0xA14 JUMP JUMPDEST DUP3 ISZERO DUP1 PUSH2 0x4DA JUMPI POP CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x530 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F414D4F554E540000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST CALLER PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP10 AND DUP1 DUP6 MSTORE SWAP1 DUP4 MSTORE SWAP3 DUP2 SWAP1 KECCAK256 DUP8 SWAP1 SSTORE DUP1 MLOAD DUP8 DUP2 MSTORE SWAP1 MLOAD SWAP3 SWAP4 SWAP3 PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP3 SWAP2 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x5A0 PUSH2 0xA77 JUMP JUMPDEST PUSH1 0x8 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP2 ISZERO SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x5 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5C2 PUSH2 0xADB JUMP JUMPDEST PUSH2 0x5CD DUP5 DUP5 DUP5 PUSH2 0xB37 JUMP JUMPDEST ISZERO ISZERO PUSH2 0x5D5 JUMPI INVALID JUMPDEST POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x4 DUP2 JUMP JUMPDEST PUSH2 0x5F5 PUSH2 0xA77 JUMP JUMPDEST DUP3 PUSH2 0x5FF DUP2 PUSH2 0xA14 JUMP JUMPDEST DUP3 PUSH2 0x609 DUP2 PUSH2 0xA14 JUMP JUMPDEST DUP4 PUSH2 0x613 DUP2 PUSH2 0xC48 JUMP JUMPDEST PUSH2 0x61E DUP7 DUP7 DUP7 PUSH2 0xCA9 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x69A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND SWAP4 SWAP1 SWAP2 AND SWAP2 PUSH32 0x343765429AEA5A34B3FF6A3785A98A5ABB2597ACA87BFBB58632C173D585373A SWAP2 LOG3 PUSH1 0x1 DUP1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND OR SWAP1 SWAP2 SSTORE AND SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x713 PUSH2 0xA77 JUMP JUMPDEST DUP2 PUSH2 0x71D DUP2 PUSH2 0xA14 JUMP JUMPDEST DUP3 PUSH2 0x727 DUP2 PUSH2 0xC48 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH2 0x73A SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0xD63 AND JUMP JUMPDEST PUSH1 0x5 SSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x766 SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0xD63 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SWAP3 SWAP1 SWAP3 SSTORE DUP1 MLOAD DUP6 DUP2 MSTORE SWAP1 MLOAD PUSH32 0x9386C90217C323F58030F9DADCBC938F807A940F4FF41CD4CEAD9562F5DA7DC3 SWAP3 SWAP2 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG1 PUSH1 0x40 DUP1 MLOAD DUP5 DUP2 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND SWAP2 PUSH1 0x0 SWAP2 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xF80 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP2 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 LOG3 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x2 PUSH1 0x1 DUP6 AND ISZERO PUSH2 0x100 MUL PUSH1 0x0 NOT ADD SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 DIV PUSH1 0x1F DUP2 ADD DUP5 SWAP1 DIV DUP5 MUL DUP3 ADD DUP5 ADD SWAP1 SWAP3 MSTORE DUP2 DUP2 MSTORE SWAP3 SWAP2 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x498 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x46D JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x498 JUMP JUMPDEST PUSH2 0x85F PUSH2 0xA77 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x888 SWAP1 DUP3 PUSH4 0xFFFFFFFF PUSH2 0xDC7 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE PUSH1 0x5 SLOAD PUSH2 0x8B4 SWAP1 DUP3 PUSH4 0xFFFFFFFF PUSH2 0xDC7 AND JUMP JUMPDEST PUSH1 0x5 SSTORE PUSH1 0x40 DUP1 MLOAD DUP3 DUP2 MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND SWAP2 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xF80 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP2 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 LOG3 PUSH1 0x40 DUP1 MLOAD DUP3 DUP2 MSTORE SWAP1 MLOAD PUSH32 0x9A1B418BC061A5D80270261562E6986A35D995F8051145F277BE16103ABD3453 SWAP2 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x927 PUSH2 0xADB JUMP JUMPDEST PUSH2 0x931 DUP4 DUP4 PUSH2 0xE27 JUMP JUMPDEST ISZERO ISZERO PUSH2 0x939 JUMPI INVALID JUMPDEST POP PUSH1 0x1 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x97F PUSH2 0xA77 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x9E5 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F4F574E4552000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0xA74 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0xAD9 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0xFF AND ISZERO ISZERO PUSH2 0xAD9 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5452414E53464552535F44495341424C454400000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP4 PUSH2 0xB43 DUP2 PUSH2 0xA14 JUMP JUMPDEST DUP4 PUSH2 0xB4D DUP2 PUSH2 0xA14 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH2 0xB81 SWAP1 DUP6 PUSH4 0xFFFFFFFF PUSH2 0xDC7 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE DUP3 MSTORE DUP1 DUP4 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE SWAP2 DUP2 MSTORE PUSH1 0x6 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD PUSH2 0xBC2 SWAP1 DUP6 PUSH4 0xFFFFFFFF PUSH2 0xDC7 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE SWAP1 DUP8 AND DUP2 MSTORE KECCAK256 SLOAD PUSH2 0xBF7 SWAP1 DUP6 PUSH4 0xFFFFFFFF PUSH2 0xD63 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP8 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE DUP1 MLOAD DUP9 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP4 SWAP3 DUP11 AND SWAP3 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xF80 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP3 SWAP2 DUP3 SWAP1 SUB ADD SWAP1 LOG3 POP PUSH1 0x1 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ADDRESS EQ ISZERO PUSH2 0xA74 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F414444524553535F49535F53454C4600000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x7472616E7366657228616464726573732C75696E743235362900000000000000 DUP2 MSTORE DUP2 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x19 ADD DUP2 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x64 SWAP1 SWAP3 ADD SWAP1 SWAP3 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE PUSH2 0xD5E SWAP1 DUP5 SWAP1 PUSH2 0xED2 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 ADD DUP4 DUP2 LT ISZERO PUSH2 0xDC0 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT ISZERO PUSH2 0xE21 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F554E444552464C4F5700000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP SWAP1 SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0xE33 DUP2 PUSH2 0xA14 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0xE53 SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0xDC7 AND JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP3 SWAP1 SWAP3 SSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND DUP2 MSTORE KECCAK256 SLOAD PUSH2 0xE85 SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0xD63 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE DUP1 MLOAD DUP7 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP3 CALLER SWAP3 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xF80 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0xEDA PUSH2 0xF60 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE POP SWAP1 POP PUSH1 0x20 DUP2 DUP4 MLOAD PUSH1 0x20 DUP6 ADD PUSH1 0x0 DUP8 GAS CALL DUP1 ISZERO ISZERO PUSH2 0xF07 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD ISZERO ISZERO PUSH2 0xD5E JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5452414E534645525F4641494C454400000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 SWAP1 PUSH1 0x20 DUP3 MUL DUP1 CODESIZE DUP4 CODECOPY POP SWAP2 SWAP3 SWAP2 POP POP JUMP STOP 0xdd CALLCODE MSTORE 0xad SHL 0xe2 0xc8 SWAP12 PUSH10 0xC2B068FC378DAA952BA7 CALL PUSH4 0xC4A11628 0xf5 GAS 0x4d 0xf5 0x23 0xb3 0xef LOG1 PUSH6 0x627A7A723058 KECCAK256 BALANCE 0xb5 PUSH11 0xEBC8336B547B3E1346F50C 0x2f DIFFICULTY 0xf7 0xd 0xef SSTORE 0x4e 0xd4 0xcb LOG4 0xc8 SHL 0xcf 0x2e MULMOD 0x2d DIV PUSH32 0x29A165627A7A7230582033B1E99A66879FC8E2FA7DCC6D6D541ACB31B7108E 0xa8 CALLCODE 0xeb 0xb1 0x5e 0xaa GASLIMIT SLOAD 0xf7 0xbd PUSH12 0x2900000000000000000000 ", + "sourceMap": "142:664:34:-;;;;;;;;;-1:-1:-1;;;142:664:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1189:152:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1189:152:5;-1:-1:-1;;;;;1189:152:5;;;;;;;523:281:34;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;523:281:34;;;;;-1:-1:-1;;;;;523:281:34;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;523:281:34;;;;;;;;;;;;;;195:34;;8:9:-1;5:2;;;30:1;27;20:12;5:2;195:34:34;;;;273:247;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;273:247:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;273:247:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;273:247:34;;;;-1:-1:-1;273:247:34;-1:-1:-1;273:247:34;;-1:-1:-1;273:247:34;;;;;;;;-1:-1:-1;273:247:34;;-1:-1:-1;;;273:247:34;;;;;-1:-1:-1;273:247:34;;-1:-1:-1;;;273:247:34;805:67:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;805:67:5;;;;;;;875:70;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;875:70:5;;;;;;;232:37:34;;8:9:-1;5:2;;;30:1;27;20:12;5:2;232:37:34;;;;1159:176:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1159:176:66;;;;1870:161:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1870:161:5;-1:-1:-1;;;;;1870:161:5;;;;;157:20:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;157:20:66;;;;948:70:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;948:70:5;;;;;;;180:23:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;180:23:66;;;;1525:161:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1525:161:5;-1:-1:-1;;;;;1525:161:5;;;;;945:140:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;945:140:66;-1:-1:-1;;;;;945:140:66;;;;;1189:152:5;575:12:66;:10;:12::i;:::-;1329:8:5;1282:18;:44;1301:8;-1:-1:-1;;;;;1301:22:5;;:24;;;;;-1:-1:-1;;;1301:24:5;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1301:24:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1301:24:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1301:24:5;1282:44;;;;1301:24;1282:44;;;;;;;;-1:-1:-1;1282:44:5;:55;;-1:-1:-1;;1282:55:5;-1:-1:-1;;;;;1282:55:5;;;;;;;;;;-1:-1:-1;1189:152:5:o;523:281:34:-;670:10;705:67;727:5;734:7;743:9;754:17;705:21;:67::i;:::-;686:16;:86;;-1:-1:-1;;686:86:34;-1:-1:-1;;;;;686:86:34;;;;;;;;784:16;;523:281;-1:-1:-1;;;;;523:281:34:o;195:34::-;;;-1:-1:-1;;;;;195:34:34;;:::o;273:247::-;392:16;430:61;449:14;465:5;472:7;481:9;430:18;:61::i;:::-;414:13;:77;;-1:-1:-1;;414:77:34;-1:-1:-1;;;;;414:77:34;;;;;;;;503:13;;273:247;-1:-1:-1;;;;;273:247:34:o;805:67:5:-;;;;;;;;;;;;-1:-1:-1;;;;;805:67:5;;:::o;875:70::-;;;;;;;;;;;;-1:-1:-1;;;;;875:70:5;;:::o;232:37:34:-;;;-1:-1:-1;;;;;232:37:34;;:::o;1159:176:66:-;1219:8;;-1:-1:-1;;;;;1219:8:66;1205:10;:22;1197:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1277:8;;;1270:5;;1258:28;;-1:-1:-1;;;;;1277:8:66;;;;1270:5;;;;1258:28;;;1298:8;;;;1290:16;;-1:-1:-1;;1290:16:66;;;-1:-1:-1;;;;;1298:8:66;;1290:16;;;;1310:21;;;1159:176::o;1870:161:5:-;575:12:66;:10;:12::i;:::-;2019:8:5;1975:15;:41;1991:8;-1:-1:-1;;;;;1991:22:5;;:24;;;;;-1:-1:-1;;;1991:24:5;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;157:20:66;;;-1:-1:-1;;;;;157:20:66;;:::o;948:70:5:-;;;;;;;;;;;;-1:-1:-1;;;;;948:70:5;;:::o;180:23:66:-;;;-1:-1:-1;;;;;180:23:66;;:::o;1525:161:5:-;575:12:66;:10;:12::i;:::-;1674:8:5;1630:15;:41;1646:8;-1:-1:-1;;;;;1646:22:5;;:24;;;;;-1:-1:-1;;;1646:24:5;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;945:140:66;575:12;:10;:12::i;:::-;1033:5;;-1:-1:-1;;;;;1020:18:66;;;1033:5;;1020:18;;1012:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1061:8;:20;;-1:-1:-1;;1061:20:66;-1:-1:-1;;;;;1061:20:66;;;;;;;;;;945:140::o;642:93::-;704:5;;-1:-1:-1;;;;;704:5:66;690:10;:19;682:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;642:93::o;3380:416:5:-;3566:25;;;3527:10;3566:25;;;:18;:25;;;;;;;;;:80;;;;;-1:-1:-1;;;;;3566:80:5;;;;;;;;;;;;;;;;;;;;;;;3527:10;;3566:25;;;;;:41;;:80;;;;;;;;;;3527:10;3566:25;:80;;;5:2:-1;;;;30:1;27;20:12;5:2;3566:80:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3566:80:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3566:80:5;3650:27;;;;;;;;3566:80;;-1:-1:-1;;;;;;3650:25:5;;;;;:27;;;;;;;;;;;;;;;;:25;:27;;;5:2:-1;;;;30:1;27;20:12;5:2;3650:27:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;3681:39:5;;;;;;3709:10;3681:39;;;;;;-1:-1:-1;;;;;3681:27:5;;;-1:-1:-1;3681:27:5;;-1:-1:-1;3681:39:5;;;;;-1:-1:-1;;3681:39:5;;;;;;;-1:-1:-1;3681:27:5;:39;;;5:2:-1;;;;30:1;27;20:12;5:2;3681:39:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;3730:42:5;;3761:10;;-1:-1:-1;;;;;;3730:42:5;;;-1:-1:-1;3730:42:5;;;;;;;;;3783:9;3380:416;-1:-1:-1;;;;;3380:416:5:o;2381:560::-;2588:31;;;2500:16;2588:31;;;:15;:31;;;;;;2500:16;;-1:-1:-1;;;;;2588:31:5;2628:21;;2624:256;;;2721:5;2728:7;2737:9;2706:41;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;2706:41:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2706:41:5;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;2706:41:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2706:41:5;2697:50;;2624:256;;;2799:7;-1:-1:-1;;;;;2799:20:5;;2820:5;2827:7;2836:9;2799:47;;;;;-1:-1:-1;;;2799:47:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;2799:47:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2799:47:5;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;2799:47:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2799:47:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2799:47:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2799:47:5;2851:24;;;;;;;;2799:47;;-1:-1:-1;;;;;;2851:22:5;;;;;:24;;;;;;;;;;;;;;;;:22;:24;;;5:2:-1;;;;30:1;27;20:12;5:2;2851:24:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2851:24:5;;;;2624:256;2884:36;;;;;;2909:10;2884:36;;;;;;-1:-1:-1;;;;;2884:24:5;;;;;:36;;;;;-1:-1:-1;;2884:36:5;;;;;;;-1:-1:-1;2884:24:5;:36;;;5:2:-1;;;;30:1;27;20:12;5:2;2884:36:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;2931:6:5;;2381:560;-1:-1:-1;;;;;;;;;2381:560:5:o;142:664:34:-;;;;;;;;;;:::o" + }, + "methodIdentifiers": { + "acceptOwnership()": "79ba5097", + "anchorFactories(uint16)": "3a8fc520", + "converterFactories(uint16)": "327779a7", + "createAnchor(uint16,string,string,uint8)": "2e9ab7b3", + "createConverter(uint16,address,address,uint32)": "15f64b6a", + "createdAnchor()": "6a4e5391", + "createdConverter()": "1814f2d2", + "customFactories(uint16)": "c977aed2", + "newOwner()": "d4ee1d90", + "owner()": "8da5cb5b", + "registerTypedConverterAnchorFactory(address)": "e54b93ef", + "registerTypedConverterCustomFactory(address)": "8cac5e29", + "registerTypedConverterFactory(address)": "12b4c6c1", + "transferOwnership(address)": "f2fde38b" + } + }, + "userdoc": { + "methods": {} + } + } + }, + "solidity/contracts/helpers/TestConverterRegistry.sol": { + "TestConverterRegistry": { + "abi": [ + { + "constant": false, + "inputs": [ + { + "name": "_onlyOwnerCanUpdateRegistry", + "type": "bool" + } + ], + "name": "restrictRegistryUpdate", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getSmartTokens", + "outputs": [ + { + "name": "", + "type": "address[]" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_convertibleToken", + "type": "address" + } + ], + "name": "getConvertibleTokenAnchors", + "outputs": [ + { + "name": "", + "type": "address[]" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "createdConverter", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_type", + "type": "uint16" + }, + { + "name": "_reserveTokens", + "type": "address[]" + }, + { + "name": "_reserveWeights", + "type": "uint32[]" + } + ], + "name": "getLiquidityPoolByConfig", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_smartTokens", + "type": "address[]" + } + ], + "name": "getConvertersBySmartTokens", + "outputs": [ + { + "name": "", + "type": "address[]" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_type", + "type": "uint16" + }, + { + "name": "_reserveTokens", + "type": "address[]" + }, + { + "name": "_reserveWeights", + "type": "uint32[]" + }, + { + "name": "_converter", + "type": "address" + } + ], + "name": "setupConverter", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "onlyOwnerCanUpdateRegistry", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_value", + "type": "address" + } + ], + "name": "isConvertibleToken", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_value", + "type": "address" + } + ], + "name": "isSmartToken", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_convertibleToken", + "type": "address" + } + ], + "name": "getConvertibleTokenAnchorCount", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "updateRegistry", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_index", + "type": "uint256" + } + ], + "name": "getAnchor", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_type", + "type": "uint16" + }, + { + "name": "_name", + "type": "string" + }, + { + "name": "_symbol", + "type": "string" + }, + { + "name": "_decimals", + "type": "uint8" + }, + { + "name": "_maxConversionFee", + "type": "uint32" + }, + { + "name": "_reserveTokens", + "type": "address[]" + }, + { + "name": "_reserveWeights", + "type": "uint32[]" + } + ], + "name": "newConverter", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getConvertibleTokens", + "outputs": [ + { + "name": "", + "type": "address[]" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_convertibleToken", + "type": "address" + }, + { + "name": "_index", + "type": "uint256" + } + ], + "name": "getConvertibleTokenAnchor", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_anchors", + "type": "address[]" + } + ], + "name": "getConvertersByAnchors", + "outputs": [ + { + "name": "", + "type": "address[]" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "prevRegistry", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getConvertibleTokenCount", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_converter", + "type": "address" + } + ], + "name": "addConverter", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_convertibleToken", + "type": "address" + }, + { + "name": "_value", + "type": "address" + } + ], + "name": "isConvertibleTokenSmartToken", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "acceptOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getLiquidityPoolCount", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "registry", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getLiquidityPools", + "outputs": [ + { + "name": "", + "type": "address[]" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_index", + "type": "uint256" + } + ], + "name": "getConvertibleToken", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "owner", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_converter", + "type": "address" + } + ], + "name": "isSimilarLiquidityPoolRegistered", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_converter", + "type": "address" + } + ], + "name": "isConverterValid", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_converter", + "type": "address" + } + ], + "name": "removeConverter", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_index", + "type": "uint256" + } + ], + "name": "getSmartToken", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_convertibleToken", + "type": "address" + } + ], + "name": "getConvertibleTokenSmartTokenCount", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_index", + "type": "uint256" + } + ], + "name": "getLiquidityPool", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "restoreRegistry", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_convertibleToken", + "type": "address" + }, + { + "name": "_value", + "type": "address" + } + ], + "name": "isConvertibleTokenAnchor", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_reserveTokens", + "type": "address[]" + }, + { + "name": "_reserveWeights", + "type": "uint32[]" + } + ], + "name": "getLiquidityPoolByReserveConfig", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getAnchorCount", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "newOwner", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_convertibleToken", + "type": "address" + }, + { + "name": "_index", + "type": "uint256" + } + ], + "name": "getConvertibleTokenSmartToken", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_value", + "type": "address" + } + ], + "name": "isAnchor", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getSmartTokenCount", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_value", + "type": "address" + } + ], + "name": "isLiquidityPool", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getAnchors", + "outputs": [ + { + "name": "", + "type": "address[]" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_convertibleToken", + "type": "address" + } + ], + "name": "getConvertibleTokenSmartTokens", + "outputs": [ + { + "name": "", + "type": "address[]" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "name": "_registry", + "type": "address" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "_anchor", + "type": "address" + } + ], + "name": "ConverterAnchorAdded", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "_anchor", + "type": "address" + } + ], + "name": "ConverterAnchorRemoved", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "_liquidityPool", + "type": "address" + } + ], + "name": "LiquidityPoolAdded", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "_liquidityPool", + "type": "address" + } + ], + "name": "LiquidityPoolRemoved", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "_convertibleToken", + "type": "address" + }, + { + "indexed": true, + "name": "_smartToken", + "type": "address" + } + ], + "name": "ConvertibleTokenAdded", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "_convertibleToken", + "type": "address" + }, + { + "indexed": true, + "name": "_smartToken", + "type": "address" + } + ], + "name": "ConvertibleTokenRemoved", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "_smartToken", + "type": "address" + } + ], + "name": "SmartTokenAdded", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "_smartToken", + "type": "address" + } + ], + "name": "SmartTokenRemoved", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "_prevOwner", + "type": "address" + }, + { + "indexed": true, + "name": "_newOwner", + "type": "address" + } + ], + "name": "OwnerUpdate", + "type": "event" + } + ], + "devdoc": { + "methods": { + "acceptOwnership()": { + "details": "used by a new owner to accept an ownership transfer" + }, + "addConverter(address)": { + "details": "adds an existing converter to the registry can only be called by the owner", + "params": { + "_converter": "converter" + } + }, + "getAnchor(uint256)": { + "details": "returns the converter anchor at a given index", + "params": { + "_index": "index" + }, + "return": "anchor at the given index" + }, + "getAnchorCount()": { + "details": "returns the number of converter anchors in the registry", + "return": "number of anchors" + }, + "getAnchors()": { + "details": "returns the list of converter anchors in the registry", + "return": "list of anchors" + }, + "getConvertersByAnchors(address[])": { + "details": "returns a list of converters for a given list of anchors this is a utility function that can be used to reduce the number of calls to the contract", + "params": { + "_anchors": "list of converter anchors" + }, + "return": "list of converters" + }, + "getConvertersBySmartTokens(address[])": { + "details": "deprecated, backward compatibility, use `getConvertersByAnchors`" + }, + "getConvertibleToken(uint256)": { + "details": "returns the convertible token at a given index", + "params": { + "_index": "index" + }, + "return": "convertible token at the given index" + }, + "getConvertibleTokenAnchor(address,uint256)": { + "details": "returns the converter anchor associated with a given convertible token at a given index", + "params": { + "_convertibleToken": "convertible token", + "_index": "index" + }, + "return": "anchor associated with the given convertible token at the given index" + }, + "getConvertibleTokenAnchorCount(address)": { + "details": "returns the number of converter anchors associated with a given convertible token", + "params": { + "_convertibleToken": "convertible token" + }, + "return": "number of anchors associated with the given convertible token" + }, + "getConvertibleTokenAnchors(address)": { + "details": "returns the list of converter anchors associated with a given convertible token", + "params": { + "_convertibleToken": "convertible token" + }, + "return": "list of anchors associated with the given convertible token" + }, + "getConvertibleTokenCount()": { + "details": "returns the number of convertible tokens in the registry", + "return": "number of convertible tokens" + }, + "getConvertibleTokenSmartToken(address,uint256)": { + "details": "deprecated, backward compatibility, use `getConvertibleTokenAnchor`" + }, + "getConvertibleTokenSmartTokenCount(address)": { + "details": "deprecated, backward compatibility, use `getConvertibleTokenAnchorCount`" + }, + "getConvertibleTokenSmartTokens(address)": { + "details": "deprecated, backward compatibility, use `getConvertibleTokenAnchors`" + }, + "getConvertibleTokens()": { + "details": "returns the list of convertible tokens in the registry", + "return": "list of convertible tokens" + }, + "getLiquidityPool(uint256)": { + "details": "returns the liquidity pool at a given index", + "params": { + "_index": "index" + }, + "return": "liquidity pool at the given index" + }, + "getLiquidityPoolByConfig(uint16,address[],uint32[])": { + "details": "searches for a liquidity pool with specific configuration", + "params": { + "_reserveTokens": "reserve tokens", + "_reserveWeights": "reserve weights", + "_type": "converter type, see ConverterBase contract main doc" + }, + "return": "the liquidity pool, or zero if no such liquidity pool exists" + }, + "getLiquidityPoolByReserveConfig(address[],uint32[])": { + "details": "deprecated, backward compatibility, use `getLiquidityPoolByConfig`" + }, + "getLiquidityPoolCount()": { + "details": "returns the number of liquidity pools in the registry", + "return": "number of liquidity pools" + }, + "getLiquidityPools()": { + "details": "returns the list of liquidity pools in the registry", + "return": "list of liquidity pools" + }, + "getSmartToken(uint256)": { + "details": "deprecated, backward compatibility, use `getAnchor`" + }, + "getSmartTokenCount()": { + "details": "deprecated, backward compatibility, use `getAnchorCount`" + }, + "getSmartTokens()": { + "details": "deprecated, backward compatibility, use `getAnchors`" + }, + "isAnchor(address)": { + "details": "checks whether or not a given value is a converter anchor", + "params": { + "_value": "value" + }, + "return": "true if the given value is an anchor, false if not" + }, + "isConverterValid(address)": { + "details": "checks whether or not a given converter is valid", + "params": { + "_converter": "converter" + }, + "return": "true if the given converter is valid, false if not" + }, + "isConvertibleToken(address)": { + "details": "checks whether or not a given value is a convertible token", + "params": { + "_value": "value" + }, + "return": "true if the given value is a convertible token, false if not" + }, + "isConvertibleTokenAnchor(address,address)": { + "details": "checks whether or not a given value is a converter anchor of a given convertible token", + "params": { + "_convertibleToken": "convertible token", + "_value": "value" + }, + "return": "true if the given value is an anchor of the given convertible token, false if not" + }, + "isConvertibleTokenSmartToken(address,address)": { + "details": "deprecated, backward compatibility, use `isConvertibleTokenAnchor`" + }, + "isLiquidityPool(address)": { + "details": "checks whether or not a given value is a liquidity pool", + "params": { + "_value": "value" + }, + "return": "true if the given value is a liquidity pool, false if not" + }, + "isSimilarLiquidityPoolRegistered(address)": { + "details": "checks if a liquidity pool with given configuration is already registered", + "params": { + "_converter": "converter with specific configuration" + }, + "return": "if a liquidity pool with the same configuration is already registered" + }, + "isSmartToken(address)": { + "details": "deprecated, backward compatibility, use `isAnchor`" + }, + "removeConverter(address)": { + "details": "removes a converter from the registry anyone can remove an existing converter from the registry, as long as the converter is invalid note that the owner can also remove valid converters", + "params": { + "_converter": "converter" + } + }, + "restoreRegistry()": { + "details": "restores the previous contract-registry" + }, + "restrictRegistryUpdate(bool)": { + "details": "restricts the permission to update the contract-registry", + "params": { + "_onlyOwnerCanUpdateRegistry": "indicates whether or not permission is restricted to owner only" + } + }, + "setupConverter(uint16,address[],uint32[],address)": { + "details": "completes the configuration for a converter", + "params": { + "_converter": "the converter previously created through newConverter method", + "_reserveTokens": "reserve tokens", + "_reserveWeights": "reserve weights", + "_type": "converter type, see ConverterBase contract main doc" + }, + "return": "converter" + }, + "transferOwnership(address)": { + "details": "allows transferring the contract ownership the new owner still needs to accept the transfer can only be called by the contract owner", + "params": { + "_newOwner": "new contract owner" + } + }, + "updateRegistry()": { + "details": "updates to the new contract-registry" + } + } + }, + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "60806040523480156200001157600080fd5b50604051602080620035ee833981016040525160008054600160a060020a031916331790558080806200004d8164010000000062000081810204565b5060028054600160a060020a03909216600160a060020a031992831681179091556003805490921617905550620000fc9050565b600160a060020a0381161515620000f957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b50565b6134e2806200010c6000396000f30060806040526004361061020b5763ffffffff60e060020a600035041663024c7ec7811461021057806304ceaf411461022c57806311839064146102915780631814f2d2146102b25780631d3fccd5146102e35780631f8e26201461037a578063295d2a21146103cf5780632fe8a6ad146104715780633ab8857c1461049a5780634123ef60146104bb57806349c5f32b146104dc57806349d10b641461050f5780634c7df18f146105245780635a0a66181461053c5780635f1b50fe14610666578063603f51e41461067b578063610c0b051461069f57806361cd756e146106f457806369be4784146107095780636ce1c4dc1461071e578063725b87861461073f57806379ba5097146107665780637a5f0ffd1461077b5780637b103999146107905780637f45c4c3146107a5578063865cf194146107ba5780638da5cb5b146107d25780638f1d0e1a146107e7578063954254f5146108085780639e76a00714610829578063a109d2141461084a578063a43d5e9414610862578063a74498aa14610883578063b4a176d31461089b578063b4c4197a146108b0578063c22b82f0146108d7578063d3182bed14610965578063d4ee1d901461097a578063d6c4b5b21461098f578063d8cced2a146109b3578063e571049b146109d4578063e85455d7146109e9578063effb3c6e14610a0a578063f2fde38b14610a1f578063f4fb86c014610a40575b600080fd5b34801561021c57600080fd5b5061022a6004351515610a61565b005b34801561023857600080fd5b50610241610aa9565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561027d578181015183820152602001610265565b505050509050019250505060405180910390f35b34801561029d57600080fd5b50610241600160a060020a0360043516610ab8565b3480156102be57600080fd5b506102c7610bbc565b60408051600160a060020a039092168252519081900360200190f35b3480156102ef57600080fd5b506040805160206004602480358281013584810280870186019097528086526102c796843561ffff1696369660449591949091019291829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750949750610bcb9650505050505050565b34801561038657600080fd5b506040805160206004803580820135838102808601850190965280855261024195369593946024949385019291829185019084908082843750949750610cbe9650505050505050565b3480156103db57600080fd5b506040805160206004602480358281013584810280870186019097528086526102c796843561ffff1696369660449591949091019291829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a99890198929750908201955093508392508501908490808284375094975050509235600160a060020a03169350610ccf92505050565b34801561047d57600080fd5b50610486611190565b604080519115158252519081900360200190f35b3480156104a657600080fd5b50610486600160a060020a03600435166111b1565b3480156104c757600080fd5b50610486600160a060020a0360043516611256565b3480156104e857600080fd5b506104fd600160a060020a0360043516611261565b60408051918252519081900360200190f35b34801561051b57600080fd5b5061022a6112d4565b34801561053057600080fd5b506102c7600435611541565b34801561054857600080fd5b5060408051602060046024803582810135601f81018590048502860185019096528585526102c795833561ffff1695369560449491939091019190819084018382808284375050604080516020601f89358b018035918201839004830284018301909452808352979a9998810197919650918201945092508291508401838280828437505060408051818801358901803560208181028481018201909552818452989b60ff8b35169b63ffffffff8b8d0135169b919a90995060609091019750929550908201935091829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a9989019892975090820195509350839250850190849080828437509497506115a29650505050505050565b34801561067257600080fd5b506102416115eb565b34801561068757600080fd5b506102c7600160a060020a03600435166024356116d1565b3480156106ab57600080fd5b50604080516020600480358082013583810280860185019096528085526102419536959394602494938501929182918501908490808284375094975061177f9650505050505050565b34801561070057600080fd5b506102c7611875565b34801561071557600080fd5b506104fd611884565b34801561072a57600080fd5b5061022a600160a060020a036004351661190b565b34801561074b57600080fd5b50610486600160a060020a036004358116906024351661197e565b34801561077257600080fd5b5061022a611991565b34801561078757600080fd5b506104fd611a52565b34801561079c57600080fd5b506102c7611aa8565b3480156107b157600080fd5b50610241611ab7565b3480156107c657600080fd5b506102c7600435611b0d565b3480156107de57600080fd5b506102c7611b6e565b3480156107f357600080fd5b50610486600160a060020a0360043516611b7d565b34801561081457600080fd5b50610486600160a060020a0360043516611dc9565b34801561083557600080fd5b5061022a600160a060020a0360043516611ed8565b34801561085657600080fd5b506102c7600435611f44565b34801561086e57600080fd5b506104fd600160a060020a0360043516611f4f565b34801561088f57600080fd5b506102c7600435611f5a565b3480156108a757600080fd5b5061022a611fbb565b3480156108bc57600080fd5b50610486600160a060020a0360043581169060243516611ff4565b3480156108e357600080fd5b50604080516020600480358082013583810280860185019096528085526102c795369593946024949385019291829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a99890198929750908201955093508392508501908490808284375094975061207b9650505050505050565b34801561097157600080fd5b506104fd612089565b34801561098657600080fd5b506102c76120df565b34801561099b57600080fd5b506102c7600160a060020a03600435166024356120ee565b3480156109bf57600080fd5b50610486600160a060020a03600435166120fa565b3480156109e057600080fd5b506104fd61216d565b3480156109f557600080fd5b50610486600160a060020a0360043516612177565b348015610a1657600080fd5b506102416121ea565b348015610a2b57600080fd5b5061022a600160a060020a0360043516612240565b348015610a4c57600080fd5b50610241600160a060020a03600435166122dd565b610a696122e8565b60038054911515740100000000000000000000000000000000000000000274ff000000000000000000000000000000000000000019909216919091179055565b6060610ab36121ea565b905090565b6060610ad160008051602061349783398151915261233a565b600160a060020a031663f4fb86c0836040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b158015610b2b57600080fd5b505af1158015610b3f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526020811015610b6857600080fd5b810190808051640100000000811115610b8057600080fd5b82016020810184811115610b9357600080fd5b8151856020820283011164010000000082111715610bb057600080fd5b50909695505050505050565b600554600160a060020a031681565b60006060600080600085518751148015610be6575060018751115b15610cae57610bf4876123a0565b9350600092505b8351831015610cae578383815181101515610c1257fe5b90602001906020020151915081600160a060020a0316638da5cb5b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610c5c57600080fd5b505af1158015610c70573d6000803e3d6000fd5b505050506040513d6020811015610c8657600080fd5b50519050610c9681898989612638565b15610ca357819450610cb3565b600190920191610bfb565b600094505b505050509392505050565b6060610cc98261177f565b92915050565b600160a060020a038181166000908152600460205260408120549091829182918291163314610d6e576040805160e560020a62461bcd02815260206004820152603060248201527f6f6e6c7920746865206465706c6f796572206d61792066696e6973682074686560448201527f20636f6e76657274657220736574757000000000000000000000000000000000606482015290519081900360840190fd5b865186519093508314610dcb576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e56414c49445f5245534552564553000000000000000000000000604482015290519081900360640190fd5b6000610dd8898989610bcb565b600160a060020a031614610e36576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f414c52454144595f4558495354530000000000000000000000000000604482015290519081900360640190fd5b84600160a060020a031663d3fb73b46040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610e7457600080fd5b505af1158015610e88573d6000803e3d6000fd5b505050506040513d6020811015610e9e57600080fd5b5051604080517f79ba50970000000000000000000000000000000000000000000000000000000081529051919350600160a060020a038416916379ba50979160048082019260009290919082900301818387803b158015610efe57600080fd5b505af1158015610f12573d6000803e3d6000fd5b5050505084600160a060020a03166379ba50976040518163ffffffff1660e060020a028152600401600060405180830381600087803b158015610f5457600080fd5b505af1158015610f68573d6000803e3d6000fd5b50505050600090505b8281101561103a5784600160a060020a0316636a49d2c48883815181101515610f9657fe5b906020019060200201518884815181101515610fae57fe5b906020019060200201516040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a031681526020018263ffffffff1663ffffffff16815260200192505050600060405180830381600087803b15801561101657600080fd5b505af115801561102a573d6000803e3d6000fd5b505060019092019150610f719050565b81600160a060020a031663f2fde38b866040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b15801561109557600080fd5b505af11580156110a9573d6000803e3d6000fd5b5050505084600160a060020a031663cdc91c696040518163ffffffff1660e060020a028152600401600060405180830381600087803b1580156110eb57600080fd5b505af11580156110ff573d6000803e3d6000fd5b5050604080517ff2fde38b0000000000000000000000000000000000000000000000000000000081523360048201529051600160a060020a038916935063f2fde38b9250602480830192600092919082900301818387803b15801561116357600080fd5b505af1158015611177573d6000803e3d6000fd5b50505050611184856127b1565b50929695505050505050565b60035474010000000000000000000000000000000000000000900460ff1681565b60006111ca60008051602061349783398151915261233a565b600160a060020a0316633ab8857c836040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b15801561122457600080fd5b505af1158015611238573d6000803e3d6000fd5b505050506040513d602081101561124e57600080fd5b505192915050565b6000610cc9826120fa565b600061127a60008051602061349783398151915261233a565b600160a060020a031663a43d5e94836040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b15801561122457600080fd5b60008054600160a060020a0316331480611309575060035474010000000000000000000000000000000000000000900460ff16155b151561134d576040805160e560020a62461bcd0281526020600482015260116024820152600080516020613477833981519152604482015290519081900360640190fd5b6113767f436f6e747261637452656769737472790000000000000000000000000000000061233a565b600254909150600160a060020a0380831691161480159061139f5750600160a060020a03811615155b15156113f5576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e56414c49445f5245474953545259000000000000000000000000604482015290519081900360640190fd5b604080517fbb34534c0000000000000000000000000000000000000000000000000000000081527f436f6e747261637452656769737472790000000000000000000000000000000060048201529051600091600160a060020a0384169163bb34534c9160248082019260209290919082900301818787803b15801561147957600080fd5b505af115801561148d573d6000803e3d6000fd5b505050506040513d60208110156114a357600080fd5b5051600160a060020a03161415611504576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e56414c49445f5245474953545259000000000000000000000000604482015290519081900360640190fd5b6002805460038054600160a060020a0380841673ffffffffffffffffffffffffffffffffffffffff19928316179092559091169216919091179055565b600061155a60008051602061349783398151915261233a565b600160a060020a031663a109d214836040518263ffffffff1660e060020a02815260040180828152602001915050602060405180830381600087803b15801561122457600080fd5b60006115b388888888888888612992565b6005805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392831617908190551698975050505050505050565b606061160460008051602061349783398151915261233a565b600160a060020a0316635f1b50fe6040518163ffffffff1660e060020a028152600401600060405180830381600087803b15801561164157600080fd5b505af1158015611655573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561167e57600080fd5b81019080805164010000000081111561169657600080fd5b820160208101848111156116a957600080fd5b81518560208202830111640100000000821117156116c657600080fd5b509094505050505090565b60006116ea60008051602061349783398151915261233a565b600160a060020a031663d6c4b5b284846040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b15801561174c57600080fd5b505af1158015611760573d6000803e3d6000fd5b505050506040513d602081101561177657600080fd5b50519392505050565b606080600083516040519080825280602002602001820160405280156117af578160200160208202803883390190505b509150600090505b835181101561186e5783818151811015156117ce57fe5b90602001906020020151600160a060020a0316638da5cb5b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561181557600080fd5b505af1158015611829573d6000803e3d6000fd5b505050506040513d602081101561183f57600080fd5b5051825183908390811061184f57fe5b600160a060020a039092166020928302909101909101526001016117b7565b5092915050565b600354600160a060020a031681565b600061189d60008051602061349783398151915261233a565b600160a060020a03166369be47846040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156118da57600080fd5b505af11580156118ee573d6000803e3d6000fd5b505050506040513d602081101561190457600080fd5b5051905090565b6119136122e8565b61191c81611dc9565b1515611972576040805160e560020a62461bcd02815260206004820152601560248201527f4552525f494e56414c49445f434f4e5645525445520000000000000000000000604482015290519081900360640190fd5b61197b816127b1565b50565b600061198a8383611ff4565b9392505050565b600154600160a060020a031633146119e1576040805160e560020a62461bcd0281526020600482015260116024820152600080516020613477833981519152604482015290519081900360640190fd5b60015460008054604051600160a060020a0393841693909116917f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91a3600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b6000611a6b60008051602061349783398151915261233a565b600160a060020a0316637a5f0ffd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156118da57600080fd5b600254600160a060020a031681565b6060611ad060008051602061349783398151915261233a565b600160a060020a0316637f45c4c36040518163ffffffff1660e060020a028152600401600060405180830381600087803b15801561164157600080fd5b6000611b2660008051602061349783398151915261233a565b600160a060020a031663865cf194836040518263ffffffff1660e060020a02815260040180828152602001915050602060405180830381600087803b15801561122457600080fd5b600054600160a060020a031681565b60008060608060008086600160a060020a03166371f52bf36040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015611bc457600080fd5b505af1158015611bd8573d6000803e3d6000fd5b505050506040513d6020811015611bee57600080fd5b50516040805161ffff90921680835260208181028401019091529550858015611c21578160200160208202803883390190505b50935084604051908082528060200260200182016040528015611c4e578160200160208202803883390190505b509250600091505b84821015611d345786600160a060020a03166319b64015836040518263ffffffff1660e060020a02815260040180828152602001915050602060405180830381600087803b158015611ca757600080fd5b505af1158015611cbb573d6000803e3d6000fd5b505050506040513d6020811015611cd157600080fd5b505184519091508190859084908110611ce657fe5b600160a060020a03909216602092830290910190910152611d078782612d1a565b8383815181101515611d1557fe5b63ffffffff909216602092830290910190910152600190910190611c56565b6000600160a060020a0316611db388600160a060020a0316633e8ff43f6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015611d8057600080fd5b505af1158015611d94573d6000803e3d6000fd5b505050506040513d6020811015611daa57600080fd5b50518686610bcb565b600160a060020a03161415979650505050505050565b600081600160a060020a031682600160a060020a031663fc0c546a6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015611e1357600080fd5b505af1158015611e27573d6000803e3d6000fd5b505050506040513d6020811015611e3d57600080fd5b5051604080517f8da5cb5b0000000000000000000000000000000000000000000000000000000081529051600160a060020a0390921691638da5cb5b916004808201926020929091908290030181600087803b158015611e9c57600080fd5b505af1158015611eb0573d6000803e3d6000fd5b505050506040513d6020811015611ec657600080fd5b5051600160a060020a03161492915050565b600054600160a060020a0316331480611ef75750611ef581611dc9565b155b1515611f3b576040805160e560020a62461bcd0281526020600482015260116024820152600080516020613477833981519152604482015290519081900360640190fd5b61197b81612deb565b6000610cc982611541565b6000610cc982611261565b6000611f7360008051602061349783398151915261233a565b600160a060020a031663a74498aa836040518263ffffffff1660e060020a02815260040180828152602001915050602060405180830381600087803b15801561122457600080fd5b611fc36122e8565b6003546002805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055565b600061200d60008051602061349783398151915261233a565b604080517f725b8786000000000000000000000000000000000000000000000000000000008152600160a060020a03868116600483015285811660248301529151929091169163725b8786916044808201926020929091908290030181600087803b15801561174c57600080fd5b600061198a60018484610bcb565b60006120a260008051602061349783398151915261233a565b600160a060020a031663e571049b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156118da57600080fd5b600154600160a060020a031681565b600061198a83836116d1565b600061211360008051602061349783398151915261233a565b600160a060020a0316634123ef60836040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b15801561122457600080fd5b6000610ab3612089565b600061219060008051602061349783398151915261233a565b600160a060020a031663e85455d7836040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b15801561122457600080fd5b606061220360008051602061349783398151915261233a565b600160a060020a03166304ceaf416040518163ffffffff1660e060020a028152600401600060405180830381600087803b15801561164157600080fd5b6122486122e8565b600054600160a060020a03828116911614156122ae576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f53414d455f4f574e4552000000000000000000000000000000000000604482015290519081900360640190fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6060610cc982610ab8565b600054600160a060020a03163314612338576040805160e560020a62461bcd0281526020600482015260116024820152600080516020613477833981519152604482015290519081900360640190fd5b565b600254604080517fbb34534c000000000000000000000000000000000000000000000000000000008152600481018490529051600092600160a060020a03169163bb34534c91602480830192602092919082900301818787803b15801561122457600080fd5b606060008060008060006123c160008051602061349783398151915261233a565b945084600160a060020a031663a43d5e948860008151811015156123e157fe5b906020019060200201516040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b15801561243657600080fd5b505af115801561244a573d6000803e3d6000fd5b505050506040513d602081101561246057600080fd5b5051935060009250600191505b86518210156125305784600160a060020a031663a43d5e94888481518110151561249357fe5b906020019060200201516040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b1580156124e857600080fd5b505af11580156124fc573d6000803e3d6000fd5b505050506040513d602081101561251257600080fd5b5051905080841115612525578093508192505b60019091019061246d565b84600160a060020a031663f4fb86c0888581518110151561254d57fe5b906020019060200201516040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b1580156125a257600080fd5b505af11580156125b6573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260208110156125df57600080fd5b8101908080516401000000008111156125f757600080fd5b8201602081018481111561260a57600080fd5b815185602082028301116401000000008211171561262757600080fd5b50909b9a5050505050505050505050565b60008085600160a060020a0316633e8ff43f6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561267957600080fd5b505af115801561268d573d6000803e3d6000fd5b505050506040513d60208110156126a357600080fd5b505161ffff8681169116146126bb57600091506127a8565b85600160a060020a03166371f52bf36040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156126f957600080fd5b505af115801561270d573d6000803e3d6000fd5b505050506040513d602081101561272357600080fd5b5051845161ffff9091161461273b57600091506127a8565b5060005b83518110156127a35761276986858381518110151561275a57fe5b90602001906020020151612d1a565b63ffffffff16838281518110151561277d57fe5b6020908102909101015163ffffffff161461279b57600091506127a8565b60010161273f565b600191505b50949350505050565b6000806000806127ce60008051602061349783398151915261233a565b935084600160a060020a031663fc0c546a6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561280e57600080fd5b505af1158015612822573d6000803e3d6000fd5b505050506040513d602081101561283857600080fd5b5051604080517f71f52bf30000000000000000000000000000000000000000000000000000000081529051919450600160a060020a038716916371f52bf3916004808201926020929091908290030181600087803b15801561289957600080fd5b505af11580156128ad573d6000803e3d6000fd5b505050506040513d60208110156128c357600080fd5b505161ffff1691506128d58484612fc5565b60018211156128ed576128e884846130a4565b6128f8565b6128f884848561314f565b5060005b8181101561298b576129838486600160a060020a03166319b64015846040518263ffffffff1660e060020a02815260040180828152602001915050602060405180830381600087803b15801561295157600080fd5b505af1158015612965573d6000803e3d6000fd5b505050506040513d602081101561297b57600080fd5b50518561314f565b6001016128fc565b5050505050565b6000806000806000865193508551841415156129f8576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e56414c49445f5245534552564553000000000000000000000000604482015290519081900360640190fd5b6000612a058d8989610bcb565b600160a060020a031614612a63576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f414c52454144595f4558495354530000000000000000000000000000604482015290519081900360640190fd5b612a8c7f436f6e766572746572466163746f72790000000000000000000000000000000061233a565b925082600160a060020a0316632e9ab7b38d8d8d8d6040518563ffffffff1660e060020a028152600401808561ffff1661ffff16815260200180602001806020018460ff1660ff168152602001838103835286818151815260200191508051906020019080838360005b83811015612b0e578181015183820152602001612af6565b50505050905090810190601f168015612b3b5780820380516001836020036101000a031916815260200191505b50838103825285518152855160209182019187019080838360005b83811015612b6e578181015183820152602001612b56565b50505050905090810190601f168015612b9b5780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600087803b158015612bbe57600080fd5b505af1158015612bd2573d6000803e3d6000fd5b505050506040513d6020811015612be857600080fd5b8101908080519060200190929190505050915082600160a060020a03166315f64b6a8d84600260009054906101000a9004600160a060020a03168c6040518563ffffffff1660e060020a028152600401808561ffff1661ffff16815260200184600160a060020a0316600160a060020a0316815260200183600160a060020a0316600160a060020a031681526020018263ffffffff1663ffffffff168152602001945050505050602060405180830381600087803b158015612ca957600080fd5b505af1158015612cbd573d6000803e3d6000fd5b505050506040513d6020811015612cd357600080fd5b5051600160a060020a0381166000908152600460205260409020805473ffffffffffffffffffffffffffffffffffffffff1916331790559c9b505050505050505050505050565b6000612d2461345b565b604080517f636f6e6e6563746f72732861646472657373290000000000000000000000000081528151908190036013018120600160a060020a03861660248084019190915283518084039091018152604490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090921691909117815281519192918491885afa801515612dde57600080fd5b5050602001519392505050565b600080600080612e0860008051602061349783398151915261233a565b935084600160a060020a031663fc0c546a6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015612e4857600080fd5b505af1158015612e5c573d6000803e3d6000fd5b505050506040513d6020811015612e7257600080fd5b5051604080517f71f52bf30000000000000000000000000000000000000000000000000000000081529051919450600160a060020a038716916371f52bf3916004808201926020929091908290030181600087803b158015612ed357600080fd5b505af1158015612ee7573d6000803e3d6000fd5b505050506040513d6020811015612efd57600080fd5b505161ffff169150612f0f8484613210565b6001821115612f2757612f2284846132ef565b612f32565b612f3284848561339a565b5060005b8181101561298b57612fbd8486600160a060020a03166319b64015846040518263ffffffff1660e060020a02815260040180828152602001915050602060405180830381600087803b158015612f8b57600080fd5b505af1158015612f9f573d6000803e3d6000fd5b505050506040513d6020811015612fb557600080fd5b50518561339a565b600101612f36565b81600160a060020a0316638de6c3eb826040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b15801561302057600080fd5b505af1158015613034573d6000803e3d6000fd5b5050604051600160a060020a03841692507fc0a6d303d67b7ed9fa0abae1c48878df32acc0e7ca4334c7dad2bceeee5956fd9150600090a2604051600160a060020a038216907f88881feecdf61136ac4bdb1f681f2f3746a82910263d21ffea94750d2a78c0ab90600090a25050565b81600160a060020a031663ee6a934c826040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b1580156130ff57600080fd5b505af1158015613113573d6000803e3d6000fd5b5050604051600160a060020a03841692507fb893f883ef734b712208a877459424ee509832c57e0461fb1ac99ed4d42f2d899150600090a25050565b604080517f36900c11000000000000000000000000000000000000000000000000000000008152600160a060020a03848116600483015283811660248301529151918516916336900c119160448082019260009290919082900301818387803b1580156131bb57600080fd5b505af11580156131cf573d6000803e3d6000fd5b5050604051600160a060020a038085169350851691507ff2e7cf6d6ed3f77039511409a43d4fa5108f09ab71d72b014380364c910233a590600090a3505050565b81600160a060020a031663ceb9838c826040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b15801561326b57600080fd5b505af115801561327f573d6000803e3d6000fd5b5050604051600160a060020a03841692507fbfdf1baaa7e4871111360083540f067050014f651c9e4610a2a4a4bdf8bfab5d9150600090a2604051600160a060020a038216907f2aff63790c7da80d1c50ede92d23bc841c384837735c92c184331f3d7b91e5bf90600090a25050565b81600160a060020a031663ae22107f826040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b15801561334a57600080fd5b505af115801561335e573d6000803e3d6000fd5b5050604051600160a060020a03841692507f59c3fbcae88f30e9b0e35c132a7f68c53231dffa4722f197c7ecb0ee013eee609150600090a25050565b604080517ffba8f031000000000000000000000000000000000000000000000000000000008152600160a060020a038481166004830152838116602483015291519185169163fba8f0319160448082019260009290919082900301818387803b15801561340657600080fd5b505af115801561341a573d6000803e3d6000fd5b5050604051600160a060020a038085169350851691507f9430ad6ff45d6c3e126c7711bf0036bd9bc6b202fa19628abd88e59cf43ced4390600090a3505050565b6040805180820182529060029082908038833950919291505056004552525f4143434553535f44454e494544000000000000000000000000000000536f7672796e53776170436f6e76657274657252656769737472794461746100a165627a7a7230582023bb3142e349dbb5b391f6eed5184e6c1bf93d52cf7d3e26938270e2c153c0f90029", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP1 PUSH3 0x35EE DUP4 CODECOPY DUP2 ADD PUSH1 0x40 MSTORE MLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND CALLER OR SWAP1 SSTORE DUP1 DUP1 DUP1 PUSH3 0x4D DUP2 PUSH5 0x100000000 PUSH3 0x81 DUP2 MUL DIV JUMP JUMPDEST POP PUSH1 0x2 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT SWAP3 DUP4 AND DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x3 DUP1 SLOAD SWAP1 SWAP3 AND OR SWAP1 SSTORE POP PUSH3 0xFC SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH3 0xF9 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x34E2 DUP1 PUSH3 0x10C PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x20B JUMPI PUSH4 0xFFFFFFFF PUSH1 0xE0 PUSH1 0x2 EXP PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x24C7EC7 DUP2 EQ PUSH2 0x210 JUMPI DUP1 PUSH4 0x4CEAF41 EQ PUSH2 0x22C JUMPI DUP1 PUSH4 0x11839064 EQ PUSH2 0x291 JUMPI DUP1 PUSH4 0x1814F2D2 EQ PUSH2 0x2B2 JUMPI DUP1 PUSH4 0x1D3FCCD5 EQ PUSH2 0x2E3 JUMPI DUP1 PUSH4 0x1F8E2620 EQ PUSH2 0x37A JUMPI DUP1 PUSH4 0x295D2A21 EQ PUSH2 0x3CF JUMPI DUP1 PUSH4 0x2FE8A6AD EQ PUSH2 0x471 JUMPI DUP1 PUSH4 0x3AB8857C EQ PUSH2 0x49A JUMPI DUP1 PUSH4 0x4123EF60 EQ PUSH2 0x4BB JUMPI DUP1 PUSH4 0x49C5F32B EQ PUSH2 0x4DC JUMPI DUP1 PUSH4 0x49D10B64 EQ PUSH2 0x50F JUMPI DUP1 PUSH4 0x4C7DF18F EQ PUSH2 0x524 JUMPI DUP1 PUSH4 0x5A0A6618 EQ PUSH2 0x53C JUMPI DUP1 PUSH4 0x5F1B50FE EQ PUSH2 0x666 JUMPI DUP1 PUSH4 0x603F51E4 EQ PUSH2 0x67B JUMPI DUP1 PUSH4 0x610C0B05 EQ PUSH2 0x69F JUMPI DUP1 PUSH4 0x61CD756E EQ PUSH2 0x6F4 JUMPI DUP1 PUSH4 0x69BE4784 EQ PUSH2 0x709 JUMPI DUP1 PUSH4 0x6CE1C4DC EQ PUSH2 0x71E JUMPI DUP1 PUSH4 0x725B8786 EQ PUSH2 0x73F JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x766 JUMPI DUP1 PUSH4 0x7A5F0FFD EQ PUSH2 0x77B JUMPI DUP1 PUSH4 0x7B103999 EQ PUSH2 0x790 JUMPI DUP1 PUSH4 0x7F45C4C3 EQ PUSH2 0x7A5 JUMPI DUP1 PUSH4 0x865CF194 EQ PUSH2 0x7BA JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x7D2 JUMPI DUP1 PUSH4 0x8F1D0E1A EQ PUSH2 0x7E7 JUMPI DUP1 PUSH4 0x954254F5 EQ PUSH2 0x808 JUMPI DUP1 PUSH4 0x9E76A007 EQ PUSH2 0x829 JUMPI DUP1 PUSH4 0xA109D214 EQ PUSH2 0x84A JUMPI DUP1 PUSH4 0xA43D5E94 EQ PUSH2 0x862 JUMPI DUP1 PUSH4 0xA74498AA EQ PUSH2 0x883 JUMPI DUP1 PUSH4 0xB4A176D3 EQ PUSH2 0x89B JUMPI DUP1 PUSH4 0xB4C4197A EQ PUSH2 0x8B0 JUMPI DUP1 PUSH4 0xC22B82F0 EQ PUSH2 0x8D7 JUMPI DUP1 PUSH4 0xD3182BED EQ PUSH2 0x965 JUMPI DUP1 PUSH4 0xD4EE1D90 EQ PUSH2 0x97A JUMPI DUP1 PUSH4 0xD6C4B5B2 EQ PUSH2 0x98F JUMPI DUP1 PUSH4 0xD8CCED2A EQ PUSH2 0x9B3 JUMPI DUP1 PUSH4 0xE571049B EQ PUSH2 0x9D4 JUMPI DUP1 PUSH4 0xE85455D7 EQ PUSH2 0x9E9 JUMPI DUP1 PUSH4 0xEFFB3C6E EQ PUSH2 0xA0A JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0xA1F JUMPI DUP1 PUSH4 0xF4FB86C0 EQ PUSH2 0xA40 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x21C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x22A PUSH1 0x4 CALLDATALOAD ISZERO ISZERO PUSH2 0xA61 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x238 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x241 PUSH2 0xAA9 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP4 MLOAD DUP2 DUP4 ADD MSTORE DUP4 MLOAD SWAP2 SWAP3 DUP4 SWAP3 SWAP1 DUP4 ADD SWAP2 DUP6 DUP2 ADD SWAP2 MUL DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x27D JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x265 JUMP JUMPDEST POP POP POP POP SWAP1 POP ADD SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x29D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x241 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0xAB8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2BE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C7 PUSH2 0xBBC JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2EF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 PUSH1 0x24 DUP1 CALLDATALOAD DUP3 DUP2 ADD CALLDATALOAD DUP5 DUP2 MUL DUP1 DUP8 ADD DUP7 ADD SWAP1 SWAP8 MSTORE DUP1 DUP7 MSTORE PUSH2 0x2C7 SWAP7 DUP5 CALLDATALOAD PUSH2 0xFFFF AND SWAP7 CALLDATASIZE SWAP7 PUSH1 0x44 SWAP6 SWAP2 SWAP5 SWAP1 SWAP2 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP POP PUSH1 0x40 DUP1 MLOAD DUP8 CALLDATALOAD DUP10 ADD DUP1 CALLDATALOAD PUSH1 0x20 DUP2 DUP2 MUL DUP5 DUP2 ADD DUP3 ADD SWAP1 SWAP6 MSTORE DUP2 DUP5 MSTORE SWAP9 SWAP12 SWAP11 SWAP10 DUP10 ADD SWAP9 SWAP3 SWAP8 POP SWAP1 DUP3 ADD SWAP6 POP SWAP4 POP DUP4 SWAP3 POP DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP PUSH2 0xBCB SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x386 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x241 SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP PUSH2 0xCBE SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3DB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 PUSH1 0x24 DUP1 CALLDATALOAD DUP3 DUP2 ADD CALLDATALOAD DUP5 DUP2 MUL DUP1 DUP8 ADD DUP7 ADD SWAP1 SWAP8 MSTORE DUP1 DUP7 MSTORE PUSH2 0x2C7 SWAP7 DUP5 CALLDATALOAD PUSH2 0xFFFF AND SWAP7 CALLDATASIZE SWAP7 PUSH1 0x44 SWAP6 SWAP2 SWAP5 SWAP1 SWAP2 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP POP PUSH1 0x40 DUP1 MLOAD DUP8 CALLDATALOAD DUP10 ADD DUP1 CALLDATALOAD PUSH1 0x20 DUP2 DUP2 MUL DUP5 DUP2 ADD DUP3 ADD SWAP1 SWAP6 MSTORE DUP2 DUP5 MSTORE SWAP9 SWAP12 SWAP11 SWAP10 DUP10 ADD SWAP9 SWAP3 SWAP8 POP SWAP1 DUP3 ADD SWAP6 POP SWAP4 POP DUP4 SWAP3 POP DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP POP POP SWAP3 CALLDATALOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP4 POP PUSH2 0xCCF SWAP3 POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x47D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x486 PUSH2 0x1190 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4A6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x486 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x11B1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4C7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x486 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x1256 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4E8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4FD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x1261 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x51B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x22A PUSH2 0x12D4 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x530 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C7 PUSH1 0x4 CALLDATALOAD PUSH2 0x1541 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x548 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 PUSH1 0x24 DUP1 CALLDATALOAD DUP3 DUP2 ADD CALLDATALOAD PUSH1 0x1F DUP2 ADD DUP6 SWAP1 DIV DUP6 MUL DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP6 DUP6 MSTORE PUSH2 0x2C7 SWAP6 DUP4 CALLDATALOAD PUSH2 0xFFFF AND SWAP6 CALLDATASIZE SWAP6 PUSH1 0x44 SWAP5 SWAP2 SWAP4 SWAP1 SWAP2 ADD SWAP2 SWAP1 DUP2 SWAP1 DUP5 ADD DUP4 DUP3 DUP1 DUP3 DUP5 CALLDATACOPY POP POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x1F DUP10 CALLDATALOAD DUP12 ADD DUP1 CALLDATALOAD SWAP2 DUP3 ADD DUP4 SWAP1 DIV DUP4 MUL DUP5 ADD DUP4 ADD SWAP1 SWAP5 MSTORE DUP1 DUP4 MSTORE SWAP8 SWAP11 SWAP10 SWAP9 DUP2 ADD SWAP8 SWAP2 SWAP7 POP SWAP2 DUP3 ADD SWAP5 POP SWAP3 POP DUP3 SWAP2 POP DUP5 ADD DUP4 DUP3 DUP1 DUP3 DUP5 CALLDATACOPY POP POP PUSH1 0x40 DUP1 MLOAD DUP2 DUP9 ADD CALLDATALOAD DUP10 ADD DUP1 CALLDATALOAD PUSH1 0x20 DUP2 DUP2 MUL DUP5 DUP2 ADD DUP3 ADD SWAP1 SWAP6 MSTORE DUP2 DUP5 MSTORE SWAP9 SWAP12 PUSH1 0xFF DUP12 CALLDATALOAD AND SWAP12 PUSH4 0xFFFFFFFF DUP12 DUP14 ADD CALLDATALOAD AND SWAP12 SWAP2 SWAP11 SWAP1 SWAP10 POP PUSH1 0x60 SWAP1 SWAP2 ADD SWAP8 POP SWAP3 SWAP6 POP SWAP1 DUP3 ADD SWAP4 POP SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP POP PUSH1 0x40 DUP1 MLOAD DUP8 CALLDATALOAD DUP10 ADD DUP1 CALLDATALOAD PUSH1 0x20 DUP2 DUP2 MUL DUP5 DUP2 ADD DUP3 ADD SWAP1 SWAP6 MSTORE DUP2 DUP5 MSTORE SWAP9 SWAP12 SWAP11 SWAP10 DUP10 ADD SWAP9 SWAP3 SWAP8 POP SWAP1 DUP3 ADD SWAP6 POP SWAP4 POP DUP4 SWAP3 POP DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP PUSH2 0x15A2 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x672 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x241 PUSH2 0x15EB JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x687 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x16D1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6AB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x241 SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP PUSH2 0x177F SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x700 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C7 PUSH2 0x1875 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x715 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4FD PUSH2 0x1884 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x72A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x22A PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x190B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x74B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x486 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH2 0x197E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x772 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x22A PUSH2 0x1991 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x787 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4FD PUSH2 0x1A52 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x79C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C7 PUSH2 0x1AA8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7B1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x241 PUSH2 0x1AB7 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7C6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C7 PUSH1 0x4 CALLDATALOAD PUSH2 0x1B0D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7DE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C7 PUSH2 0x1B6E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7F3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x486 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x1B7D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x814 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x486 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x1DC9 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x835 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x22A PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x1ED8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x856 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C7 PUSH1 0x4 CALLDATALOAD PUSH2 0x1F44 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x86E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4FD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x1F4F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x88F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C7 PUSH1 0x4 CALLDATALOAD PUSH2 0x1F5A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8A7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x22A PUSH2 0x1FBB JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8BC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x486 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH2 0x1FF4 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8E3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x2C7 SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP POP PUSH1 0x40 DUP1 MLOAD DUP8 CALLDATALOAD DUP10 ADD DUP1 CALLDATALOAD PUSH1 0x20 DUP2 DUP2 MUL DUP5 DUP2 ADD DUP3 ADD SWAP1 SWAP6 MSTORE DUP2 DUP5 MSTORE SWAP9 SWAP12 SWAP11 SWAP10 DUP10 ADD SWAP9 SWAP3 SWAP8 POP SWAP1 DUP3 ADD SWAP6 POP SWAP4 POP DUP4 SWAP3 POP DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP PUSH2 0x207B SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x971 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4FD PUSH2 0x2089 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x986 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C7 PUSH2 0x20DF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x99B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x20EE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9BF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x486 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x20FA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9E0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4FD PUSH2 0x216D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x486 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x2177 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA16 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x241 PUSH2 0x21EA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA2B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x22A PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x2240 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA4C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x241 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x22DD JUMP JUMPDEST PUSH2 0xA69 PUSH2 0x22E8 JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD SWAP2 ISZERO ISZERO PUSH21 0x10000000000000000000000000000000000000000 MUL PUSH21 0xFF0000000000000000000000000000000000000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x60 PUSH2 0xAB3 PUSH2 0x21EA JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH2 0xAD1 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3497 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x233A JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xF4FB86C0 DUP4 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xB2B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xB3F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xB68 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 MLOAD PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0xB80 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD PUSH1 0x20 DUP2 ADD DUP5 DUP2 GT ISZERO PUSH2 0xB93 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP6 PUSH1 0x20 DUP3 MUL DUP4 ADD GT PUSH5 0x100000000 DUP3 GT OR ISZERO PUSH2 0xBB0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP SWAP1 SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 MLOAD DUP8 MLOAD EQ DUP1 ISZERO PUSH2 0xBE6 JUMPI POP PUSH1 0x1 DUP8 MLOAD GT JUMPDEST ISZERO PUSH2 0xCAE JUMPI PUSH2 0xBF4 DUP8 PUSH2 0x23A0 JUMP JUMPDEST SWAP4 POP PUSH1 0x0 SWAP3 POP JUMPDEST DUP4 MLOAD DUP4 LT ISZERO PUSH2 0xCAE JUMPI DUP4 DUP4 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xC12 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD SWAP2 POP DUP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x8DA5CB5B PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC5C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xC70 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xC86 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 POP PUSH2 0xC96 DUP2 DUP10 DUP10 DUP10 PUSH2 0x2638 JUMP JUMPDEST ISZERO PUSH2 0xCA3 JUMPI DUP2 SWAP5 POP PUSH2 0xCB3 JUMP JUMPDEST PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 PUSH2 0xBFB JUMP JUMPDEST PUSH1 0x0 SWAP5 POP JUMPDEST POP POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0xCC9 DUP3 PUSH2 0x177F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD SWAP1 SWAP2 DUP3 SWAP2 DUP3 SWAP2 DUP3 SWAP2 AND CALLER EQ PUSH2 0xD6E JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x30 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x6F6E6C7920746865206465706C6F796572206D61792066696E69736820746865 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x20636F6E76657274657220736574757000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x84 ADD SWAP1 REVERT JUMPDEST DUP7 MLOAD DUP7 MLOAD SWAP1 SWAP4 POP DUP4 EQ PUSH2 0xDCB JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245534552564553000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xDD8 DUP10 DUP10 DUP10 PUSH2 0xBCB JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ PUSH2 0xE36 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F414C52454144595F4558495354530000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xD3FB73B4 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xE74 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xE88 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xE9E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x79BA509700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP4 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP2 PUSH4 0x79BA5097 SWAP2 PUSH1 0x4 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xEFE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xF12 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x79BA5097 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xF54 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xF68 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x0 SWAP1 POP JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x103A JUMPI DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x6A49D2C4 DUP9 DUP4 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xF96 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD DUP9 DUP5 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xFAE JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 PUSH4 0xFFFFFFFF AND PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1016 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x102A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 POP PUSH2 0xF71 SWAP1 POP JUMP JUMPDEST DUP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xF2FDE38B DUP7 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1095 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x10A9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xCDC91C69 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x10EB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x10FF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 DUP1 MLOAD PUSH32 0xF2FDE38B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP10 AND SWAP4 POP PUSH4 0xF2FDE38B SWAP3 POP PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1163 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1177 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x1184 DUP6 PUSH2 0x27B1 JUMP JUMPDEST POP SWAP3 SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x11CA PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3497 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x233A JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x3AB8857C DUP4 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1224 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1238 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x124E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xCC9 DUP3 PUSH2 0x20FA JUMP JUMPDEST PUSH1 0x0 PUSH2 0x127A PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3497 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x233A JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xA43D5E94 DUP4 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1224 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ DUP1 PUSH2 0x1309 JUMPI POP PUSH1 0x3 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x134D JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3477 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x1376 PUSH32 0x436F6E7472616374526567697374727900000000000000000000000000000000 PUSH2 0x233A JUMP JUMPDEST PUSH1 0x2 SLOAD SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP4 AND SWAP2 AND EQ DUP1 ISZERO SWAP1 PUSH2 0x139F JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x13F5 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245474953545259000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0xBB34534C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH32 0x436F6E7472616374526567697374727900000000000000000000000000000000 PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP2 PUSH4 0xBB34534C SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1479 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x148D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x14A3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ ISZERO PUSH2 0x1504 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245474953545259000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP5 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP3 DUP4 AND OR SWAP1 SWAP3 SSTORE SWAP1 SWAP2 AND SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH2 0x155A PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3497 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x233A JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xA109D214 DUP4 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1224 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x15B3 DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 PUSH2 0x2992 JUMP JUMPDEST PUSH1 0x5 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 DUP4 AND OR SWAP1 DUP2 SWAP1 SSTORE AND SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x1604 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3497 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x233A JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x5F1B50FE PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1641 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1655 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x167E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 MLOAD PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x1696 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD PUSH1 0x20 DUP2 ADD DUP5 DUP2 GT ISZERO PUSH2 0x16A9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP6 PUSH1 0x20 DUP3 MUL DUP4 ADD GT PUSH5 0x100000000 DUP3 GT OR ISZERO PUSH2 0x16C6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP SWAP1 SWAP5 POP POP POP POP POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x16EA PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3497 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x233A JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xD6C4B5B2 DUP5 DUP5 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x174C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1760 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1776 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP1 PUSH1 0x0 DUP4 MLOAD PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x17AF JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CODESIZE DUP4 CODECOPY ADD SWAP1 POP JUMPDEST POP SWAP2 POP PUSH1 0x0 SWAP1 POP JUMPDEST DUP4 MLOAD DUP2 LT ISZERO PUSH2 0x186E JUMPI DUP4 DUP2 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x17CE JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x8DA5CB5B PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1815 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1829 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x183F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD DUP3 MLOAD DUP4 SWAP1 DUP4 SWAP1 DUP2 LT PUSH2 0x184F JUMPI INVALID JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND PUSH1 0x20 SWAP3 DUP4 MUL SWAP1 SWAP2 ADD SWAP1 SWAP2 ADD MSTORE PUSH1 0x1 ADD PUSH2 0x17B7 JUMP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x189D PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3497 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x233A JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x69BE4784 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x18DA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x18EE JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1904 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x1913 PUSH2 0x22E8 JUMP JUMPDEST PUSH2 0x191C DUP2 PUSH2 0x1DC9 JUMP JUMPDEST ISZERO ISZERO PUSH2 0x1972 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F434F4E5645525445520000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x197B DUP2 PUSH2 0x27B1 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x198A DUP4 DUP4 PUSH2 0x1FF4 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x19E1 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3477 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND SWAP4 SWAP1 SWAP2 AND SWAP2 PUSH32 0x343765429AEA5A34B3FF6A3785A98A5ABB2597ACA87BFBB58632C173D585373A SWAP2 LOG3 PUSH1 0x1 DUP1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND OR SWAP1 SWAP2 SSTORE AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1A6B PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3497 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x233A JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x7A5F0FFD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x18DA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x60 PUSH2 0x1AD0 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3497 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x233A JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x7F45C4C3 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1641 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1B26 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3497 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x233A JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x865CF194 DUP4 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1224 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x60 DUP1 PUSH1 0x0 DUP1 DUP7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x71F52BF3 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1BC4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1BD8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1BEE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH2 0xFFFF SWAP1 SWAP3 AND DUP1 DUP4 MSTORE PUSH1 0x20 DUP2 DUP2 MUL DUP5 ADD ADD SWAP1 SWAP2 MSTORE SWAP6 POP DUP6 DUP1 ISZERO PUSH2 0x1C21 JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CODESIZE DUP4 CODECOPY ADD SWAP1 POP JUMPDEST POP SWAP4 POP DUP5 PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x1C4E JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CODESIZE DUP4 CODECOPY ADD SWAP1 POP JUMPDEST POP SWAP3 POP PUSH1 0x0 SWAP2 POP JUMPDEST DUP5 DUP3 LT ISZERO PUSH2 0x1D34 JUMPI DUP7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x19B64015 DUP4 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1CA7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1CBB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1CD1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD DUP5 MLOAD SWAP1 SWAP2 POP DUP2 SWAP1 DUP6 SWAP1 DUP5 SWAP1 DUP2 LT PUSH2 0x1CE6 JUMPI INVALID JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND PUSH1 0x20 SWAP3 DUP4 MUL SWAP1 SWAP2 ADD SWAP1 SWAP2 ADD MSTORE PUSH2 0x1D07 DUP8 DUP3 PUSH2 0x2D1A JUMP JUMPDEST DUP4 DUP4 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x1D15 JUMPI INVALID JUMPDEST PUSH4 0xFFFFFFFF SWAP1 SWAP3 AND PUSH1 0x20 SWAP3 DUP4 MUL SWAP1 SWAP2 ADD SWAP1 SWAP2 ADD MSTORE PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x1C56 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x1DB3 DUP9 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x3E8FF43F PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1D80 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1D94 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1DAA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD DUP7 DUP7 PUSH2 0xBCB JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ ISZERO SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xFC0C546A PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1E13 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1E27 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1E3D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x8DA5CB5B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP2 PUSH4 0x8DA5CB5B SWAP2 PUSH1 0x4 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1E9C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1EB0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1EC6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ DUP1 PUSH2 0x1EF7 JUMPI POP PUSH2 0x1EF5 DUP2 PUSH2 0x1DC9 JUMP JUMPDEST ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x1F3B JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3477 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x197B DUP2 PUSH2 0x2DEB JUMP JUMPDEST PUSH1 0x0 PUSH2 0xCC9 DUP3 PUSH2 0x1541 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xCC9 DUP3 PUSH2 0x1261 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1F73 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3497 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x233A JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xA74498AA DUP4 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1224 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1FC3 PUSH2 0x22E8 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x2 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH2 0x200D PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3497 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x233A JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x725B878600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP6 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE SWAP2 MLOAD SWAP3 SWAP1 SWAP2 AND SWAP2 PUSH4 0x725B8786 SWAP2 PUSH1 0x44 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x174C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x198A PUSH1 0x1 DUP5 DUP5 PUSH2 0xBCB JUMP JUMPDEST PUSH1 0x0 PUSH2 0x20A2 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3497 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x233A JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xE571049B PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x18DA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x198A DUP4 DUP4 PUSH2 0x16D1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2113 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3497 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x233A JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x4123EF60 DUP4 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1224 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xAB3 PUSH2 0x2089 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2190 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3497 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x233A JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xE85455D7 DUP4 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1224 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x60 PUSH2 0x2203 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3497 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x233A JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x4CEAF41 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1641 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2248 PUSH2 0x22E8 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x22AE JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F4F574E4552000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x60 PUSH2 0xCC9 DUP3 PUSH2 0xAB8 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x2338 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3477 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xBB34534C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP2 PUSH4 0xBB34534C SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1224 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x23C1 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3497 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x233A JUMP JUMPDEST SWAP5 POP DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xA43D5E94 DUP9 PUSH1 0x0 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x23E1 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2436 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x244A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2460 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP4 POP PUSH1 0x0 SWAP3 POP PUSH1 0x1 SWAP2 POP JUMPDEST DUP7 MLOAD DUP3 LT ISZERO PUSH2 0x2530 JUMPI DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xA43D5E94 DUP9 DUP5 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x2493 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x24E8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x24FC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2512 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 POP DUP1 DUP5 GT ISZERO PUSH2 0x2525 JUMPI DUP1 SWAP4 POP DUP2 SWAP3 POP JUMPDEST PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x246D JUMP JUMPDEST DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xF4FB86C0 DUP9 DUP6 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x254D JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x25A2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x25B6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x25DF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 MLOAD PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x25F7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD PUSH1 0x20 DUP2 ADD DUP5 DUP2 GT ISZERO PUSH2 0x260A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP6 PUSH1 0x20 DUP3 MUL DUP4 ADD GT PUSH5 0x100000000 DUP3 GT OR ISZERO PUSH2 0x2627 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP SWAP1 SWAP12 SWAP11 POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP6 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x3E8FF43F PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2679 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x268D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x26A3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH2 0xFFFF DUP7 DUP2 AND SWAP2 AND EQ PUSH2 0x26BB JUMPI PUSH1 0x0 SWAP2 POP PUSH2 0x27A8 JUMP JUMPDEST DUP6 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x71F52BF3 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x26F9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x270D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2723 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD DUP5 MLOAD PUSH2 0xFFFF SWAP1 SWAP2 AND EQ PUSH2 0x273B JUMPI PUSH1 0x0 SWAP2 POP PUSH2 0x27A8 JUMP JUMPDEST POP PUSH1 0x0 JUMPDEST DUP4 MLOAD DUP2 LT ISZERO PUSH2 0x27A3 JUMPI PUSH2 0x2769 DUP7 DUP6 DUP4 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x275A JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH2 0x2D1A JUMP JUMPDEST PUSH4 0xFFFFFFFF AND DUP4 DUP3 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x277D JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MLOAD PUSH4 0xFFFFFFFF AND EQ PUSH2 0x279B JUMPI PUSH1 0x0 SWAP2 POP PUSH2 0x27A8 JUMP JUMPDEST PUSH1 0x1 ADD PUSH2 0x273F JUMP JUMPDEST PUSH1 0x1 SWAP2 POP JUMPDEST POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x27CE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3497 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x233A JUMP JUMPDEST SWAP4 POP DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xFC0C546A PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x280E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2822 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2838 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x71F52BF300000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP5 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND SWAP2 PUSH4 0x71F52BF3 SWAP2 PUSH1 0x4 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2899 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x28AD JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x28C3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH2 0xFFFF AND SWAP2 POP PUSH2 0x28D5 DUP5 DUP5 PUSH2 0x2FC5 JUMP JUMPDEST PUSH1 0x1 DUP3 GT ISZERO PUSH2 0x28ED JUMPI PUSH2 0x28E8 DUP5 DUP5 PUSH2 0x30A4 JUMP JUMPDEST PUSH2 0x28F8 JUMP JUMPDEST PUSH2 0x28F8 DUP5 DUP5 DUP6 PUSH2 0x314F JUMP JUMPDEST POP PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x298B JUMPI PUSH2 0x2983 DUP5 DUP7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x19B64015 DUP5 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2951 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2965 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x297B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD DUP6 PUSH2 0x314F JUMP JUMPDEST PUSH1 0x1 ADD PUSH2 0x28FC JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP7 MLOAD SWAP4 POP DUP6 MLOAD DUP5 EQ ISZERO ISZERO PUSH2 0x29F8 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245534552564553000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2A05 DUP14 DUP10 DUP10 PUSH2 0xBCB JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ PUSH2 0x2A63 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F414C52454144595F4558495354530000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x2A8C PUSH32 0x436F6E766572746572466163746F727900000000000000000000000000000000 PUSH2 0x233A JUMP JUMPDEST SWAP3 POP DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x2E9AB7B3 DUP14 DUP14 DUP14 DUP14 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP6 PUSH2 0xFFFF AND PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP5 PUSH1 0xFF AND PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 SUB DUP4 MSTORE DUP7 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x2B0E JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x2AF6 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x2B3B JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP DUP4 DUP2 SUB DUP3 MSTORE DUP6 MLOAD DUP2 MSTORE DUP6 MLOAD PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 DUP8 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x2B6E JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x2B56 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x2B9B JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP7 POP POP POP POP POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2BBE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2BD2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2BE8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP SWAP2 POP DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x15F64B6A DUP14 DUP5 PUSH1 0x2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP13 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP6 PUSH2 0xFFFF AND PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 PUSH4 0xFFFFFFFF AND PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP5 POP POP POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2CA9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2CBD JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2CD3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND CALLER OR SWAP1 SSTORE SWAP13 SWAP12 POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2D24 PUSH2 0x345B JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x636F6E6E6563746F727328616464726573732900000000000000000000000000 DUP2 MSTORE DUP2 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x13 ADD DUP2 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND PUSH1 0x24 DUP1 DUP5 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x44 SWAP1 SWAP3 ADD DUP4 MSTORE PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR DUP2 MSTORE DUP2 MLOAD SWAP2 SWAP3 SWAP2 DUP5 SWAP2 DUP9 GAS STATICCALL DUP1 ISZERO ISZERO PUSH2 0x2DDE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP PUSH1 0x20 ADD MLOAD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x2E08 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3497 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x233A JUMP JUMPDEST SWAP4 POP DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xFC0C546A PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2E48 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2E5C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2E72 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x71F52BF300000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP5 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND SWAP2 PUSH4 0x71F52BF3 SWAP2 PUSH1 0x4 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2ED3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2EE7 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2EFD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH2 0xFFFF AND SWAP2 POP PUSH2 0x2F0F DUP5 DUP5 PUSH2 0x3210 JUMP JUMPDEST PUSH1 0x1 DUP3 GT ISZERO PUSH2 0x2F27 JUMPI PUSH2 0x2F22 DUP5 DUP5 PUSH2 0x32EF JUMP JUMPDEST PUSH2 0x2F32 JUMP JUMPDEST PUSH2 0x2F32 DUP5 DUP5 DUP6 PUSH2 0x339A JUMP JUMPDEST POP PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x298B JUMPI PUSH2 0x2FBD DUP5 DUP7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x19B64015 DUP5 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2F8B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2F9F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2FB5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD DUP6 PUSH2 0x339A JUMP JUMPDEST PUSH1 0x1 ADD PUSH2 0x2F36 JUMP JUMPDEST DUP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x8DE6C3EB DUP3 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3020 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3034 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP3 POP PUSH32 0xC0A6D303D67B7ED9FA0ABAE1C48878DF32ACC0E7CA4334C7DAD2BCEEEE5956FD SWAP2 POP PUSH1 0x0 SWAP1 LOG2 PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 AND SWAP1 PUSH32 0x88881FEECDF61136AC4BDB1F681F2F3746A82910263D21FFEA94750D2A78C0AB SWAP1 PUSH1 0x0 SWAP1 LOG2 POP POP JUMP JUMPDEST DUP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xEE6A934C DUP3 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x30FF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3113 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP3 POP PUSH32 0xB893F883EF734B712208A877459424EE509832C57E0461FB1AC99ED4D42F2D89 SWAP2 POP PUSH1 0x0 SWAP1 LOG2 POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x36900C1100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP4 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE SWAP2 MLOAD SWAP2 DUP6 AND SWAP2 PUSH4 0x36900C11 SWAP2 PUSH1 0x44 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x31BB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x31CF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP6 AND SWAP4 POP DUP6 AND SWAP2 POP PUSH32 0xF2E7CF6D6ED3F77039511409A43D4FA5108F09AB71D72B014380364C910233A5 SWAP1 PUSH1 0x0 SWAP1 LOG3 POP POP POP JUMP JUMPDEST DUP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xCEB9838C DUP3 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x326B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x327F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP3 POP PUSH32 0xBFDF1BAAA7E4871111360083540F067050014F651C9E4610A2A4A4BDF8BFAB5D SWAP2 POP PUSH1 0x0 SWAP1 LOG2 PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 AND SWAP1 PUSH32 0x2AFF63790C7DA80D1C50EDE92D23BC841C384837735C92C184331F3D7B91E5BF SWAP1 PUSH1 0x0 SWAP1 LOG2 POP POP JUMP JUMPDEST DUP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xAE22107F DUP3 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x334A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x335E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP3 POP PUSH32 0x59C3FBCAE88F30E9B0E35C132A7F68C53231DFFA4722F197C7ECB0EE013EEE60 SWAP2 POP PUSH1 0x0 SWAP1 LOG2 POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0xFBA8F03100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP4 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE SWAP2 MLOAD SWAP2 DUP6 AND SWAP2 PUSH4 0xFBA8F031 SWAP2 PUSH1 0x44 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3406 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x341A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP6 AND SWAP4 POP DUP6 AND SWAP2 POP PUSH32 0x9430AD6FF45D6C3E126C7711BF0036BD9BC6B202FA19628ABD88E59CF43CED43 SWAP1 PUSH1 0x0 SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD DUP3 MSTORE SWAP1 PUSH1 0x2 SWAP1 DUP3 SWAP1 DUP1 CODESIZE DUP4 CODECOPY POP SWAP2 SWAP3 SWAP2 POP POP JUMP STOP GASLIMIT MSTORE MSTORE 0x5f COINBASE NUMBER NUMBER GASLIMIT MSTORE8 MSTORE8 0x5f DIFFICULTY GASLIMIT 0x4e 0x49 GASLIMIT DIFFICULTY STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP MSTORE8 PUSH16 0x7672796E53776170436F6E7665727465 PUSH19 0x52656769737472794461746100A165627A7A72 ADDRESS PC KECCAK256 0x23 0xbb BALANCE TIMESTAMP 0xe3 0x49 0xdb 0xb5 0xb3 SWAP2 0xf6 0xee 0xd5 XOR 0x4e PUSH13 0x1BF93D52CF7D3E26938270E2C1 MSTORE8 0xc0 0xf9 STOP 0x29 ", + "sourceMap": "144:560:35:-;;;237:79;8:9:-1;5:2;;;30:1;27;20:12;5:2;237:79:35;;;;;;;;;;;;;488:5:66;:18;;-1:-1:-1;;;;;;488:18:66;496:10;488:18;;;237:79:35;;;475:23:72;237:79:35;475:13:72;;;;:23;:::i;:::-;-1:-1:-1;1931:8:60;:39;;-1:-1:-1;;;;;1931:39:60;;;-1:-1:-1;;;;;;1931:39:60;;;;;;;;1974:12;:43;;;;;;;;-1:-1:-1;144:560:35;;-1:-1:-1;144:560:35;553:117:72;-1:-1:-1;;;;;620:22:72;;;;612:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;553:117;:::o;144:560:35:-;;;;;;;" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "60806040526004361061020b5763ffffffff60e060020a600035041663024c7ec7811461021057806304ceaf411461022c57806311839064146102915780631814f2d2146102b25780631d3fccd5146102e35780631f8e26201461037a578063295d2a21146103cf5780632fe8a6ad146104715780633ab8857c1461049a5780634123ef60146104bb57806349c5f32b146104dc57806349d10b641461050f5780634c7df18f146105245780635a0a66181461053c5780635f1b50fe14610666578063603f51e41461067b578063610c0b051461069f57806361cd756e146106f457806369be4784146107095780636ce1c4dc1461071e578063725b87861461073f57806379ba5097146107665780637a5f0ffd1461077b5780637b103999146107905780637f45c4c3146107a5578063865cf194146107ba5780638da5cb5b146107d25780638f1d0e1a146107e7578063954254f5146108085780639e76a00714610829578063a109d2141461084a578063a43d5e9414610862578063a74498aa14610883578063b4a176d31461089b578063b4c4197a146108b0578063c22b82f0146108d7578063d3182bed14610965578063d4ee1d901461097a578063d6c4b5b21461098f578063d8cced2a146109b3578063e571049b146109d4578063e85455d7146109e9578063effb3c6e14610a0a578063f2fde38b14610a1f578063f4fb86c014610a40575b600080fd5b34801561021c57600080fd5b5061022a6004351515610a61565b005b34801561023857600080fd5b50610241610aa9565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561027d578181015183820152602001610265565b505050509050019250505060405180910390f35b34801561029d57600080fd5b50610241600160a060020a0360043516610ab8565b3480156102be57600080fd5b506102c7610bbc565b60408051600160a060020a039092168252519081900360200190f35b3480156102ef57600080fd5b506040805160206004602480358281013584810280870186019097528086526102c796843561ffff1696369660449591949091019291829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750949750610bcb9650505050505050565b34801561038657600080fd5b506040805160206004803580820135838102808601850190965280855261024195369593946024949385019291829185019084908082843750949750610cbe9650505050505050565b3480156103db57600080fd5b506040805160206004602480358281013584810280870186019097528086526102c796843561ffff1696369660449591949091019291829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a99890198929750908201955093508392508501908490808284375094975050509235600160a060020a03169350610ccf92505050565b34801561047d57600080fd5b50610486611190565b604080519115158252519081900360200190f35b3480156104a657600080fd5b50610486600160a060020a03600435166111b1565b3480156104c757600080fd5b50610486600160a060020a0360043516611256565b3480156104e857600080fd5b506104fd600160a060020a0360043516611261565b60408051918252519081900360200190f35b34801561051b57600080fd5b5061022a6112d4565b34801561053057600080fd5b506102c7600435611541565b34801561054857600080fd5b5060408051602060046024803582810135601f81018590048502860185019096528585526102c795833561ffff1695369560449491939091019190819084018382808284375050604080516020601f89358b018035918201839004830284018301909452808352979a9998810197919650918201945092508291508401838280828437505060408051818801358901803560208181028481018201909552818452989b60ff8b35169b63ffffffff8b8d0135169b919a90995060609091019750929550908201935091829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a9989019892975090820195509350839250850190849080828437509497506115a29650505050505050565b34801561067257600080fd5b506102416115eb565b34801561068757600080fd5b506102c7600160a060020a03600435166024356116d1565b3480156106ab57600080fd5b50604080516020600480358082013583810280860185019096528085526102419536959394602494938501929182918501908490808284375094975061177f9650505050505050565b34801561070057600080fd5b506102c7611875565b34801561071557600080fd5b506104fd611884565b34801561072a57600080fd5b5061022a600160a060020a036004351661190b565b34801561074b57600080fd5b50610486600160a060020a036004358116906024351661197e565b34801561077257600080fd5b5061022a611991565b34801561078757600080fd5b506104fd611a52565b34801561079c57600080fd5b506102c7611aa8565b3480156107b157600080fd5b50610241611ab7565b3480156107c657600080fd5b506102c7600435611b0d565b3480156107de57600080fd5b506102c7611b6e565b3480156107f357600080fd5b50610486600160a060020a0360043516611b7d565b34801561081457600080fd5b50610486600160a060020a0360043516611dc9565b34801561083557600080fd5b5061022a600160a060020a0360043516611ed8565b34801561085657600080fd5b506102c7600435611f44565b34801561086e57600080fd5b506104fd600160a060020a0360043516611f4f565b34801561088f57600080fd5b506102c7600435611f5a565b3480156108a757600080fd5b5061022a611fbb565b3480156108bc57600080fd5b50610486600160a060020a0360043581169060243516611ff4565b3480156108e357600080fd5b50604080516020600480358082013583810280860185019096528085526102c795369593946024949385019291829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a99890198929750908201955093508392508501908490808284375094975061207b9650505050505050565b34801561097157600080fd5b506104fd612089565b34801561098657600080fd5b506102c76120df565b34801561099b57600080fd5b506102c7600160a060020a03600435166024356120ee565b3480156109bf57600080fd5b50610486600160a060020a03600435166120fa565b3480156109e057600080fd5b506104fd61216d565b3480156109f557600080fd5b50610486600160a060020a0360043516612177565b348015610a1657600080fd5b506102416121ea565b348015610a2b57600080fd5b5061022a600160a060020a0360043516612240565b348015610a4c57600080fd5b50610241600160a060020a03600435166122dd565b610a696122e8565b60038054911515740100000000000000000000000000000000000000000274ff000000000000000000000000000000000000000019909216919091179055565b6060610ab36121ea565b905090565b6060610ad160008051602061349783398151915261233a565b600160a060020a031663f4fb86c0836040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b158015610b2b57600080fd5b505af1158015610b3f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526020811015610b6857600080fd5b810190808051640100000000811115610b8057600080fd5b82016020810184811115610b9357600080fd5b8151856020820283011164010000000082111715610bb057600080fd5b50909695505050505050565b600554600160a060020a031681565b60006060600080600085518751148015610be6575060018751115b15610cae57610bf4876123a0565b9350600092505b8351831015610cae578383815181101515610c1257fe5b90602001906020020151915081600160a060020a0316638da5cb5b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610c5c57600080fd5b505af1158015610c70573d6000803e3d6000fd5b505050506040513d6020811015610c8657600080fd5b50519050610c9681898989612638565b15610ca357819450610cb3565b600190920191610bfb565b600094505b505050509392505050565b6060610cc98261177f565b92915050565b600160a060020a038181166000908152600460205260408120549091829182918291163314610d6e576040805160e560020a62461bcd02815260206004820152603060248201527f6f6e6c7920746865206465706c6f796572206d61792066696e6973682074686560448201527f20636f6e76657274657220736574757000000000000000000000000000000000606482015290519081900360840190fd5b865186519093508314610dcb576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e56414c49445f5245534552564553000000000000000000000000604482015290519081900360640190fd5b6000610dd8898989610bcb565b600160a060020a031614610e36576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f414c52454144595f4558495354530000000000000000000000000000604482015290519081900360640190fd5b84600160a060020a031663d3fb73b46040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610e7457600080fd5b505af1158015610e88573d6000803e3d6000fd5b505050506040513d6020811015610e9e57600080fd5b5051604080517f79ba50970000000000000000000000000000000000000000000000000000000081529051919350600160a060020a038416916379ba50979160048082019260009290919082900301818387803b158015610efe57600080fd5b505af1158015610f12573d6000803e3d6000fd5b5050505084600160a060020a03166379ba50976040518163ffffffff1660e060020a028152600401600060405180830381600087803b158015610f5457600080fd5b505af1158015610f68573d6000803e3d6000fd5b50505050600090505b8281101561103a5784600160a060020a0316636a49d2c48883815181101515610f9657fe5b906020019060200201518884815181101515610fae57fe5b906020019060200201516040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a031681526020018263ffffffff1663ffffffff16815260200192505050600060405180830381600087803b15801561101657600080fd5b505af115801561102a573d6000803e3d6000fd5b505060019092019150610f719050565b81600160a060020a031663f2fde38b866040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b15801561109557600080fd5b505af11580156110a9573d6000803e3d6000fd5b5050505084600160a060020a031663cdc91c696040518163ffffffff1660e060020a028152600401600060405180830381600087803b1580156110eb57600080fd5b505af11580156110ff573d6000803e3d6000fd5b5050604080517ff2fde38b0000000000000000000000000000000000000000000000000000000081523360048201529051600160a060020a038916935063f2fde38b9250602480830192600092919082900301818387803b15801561116357600080fd5b505af1158015611177573d6000803e3d6000fd5b50505050611184856127b1565b50929695505050505050565b60035474010000000000000000000000000000000000000000900460ff1681565b60006111ca60008051602061349783398151915261233a565b600160a060020a0316633ab8857c836040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b15801561122457600080fd5b505af1158015611238573d6000803e3d6000fd5b505050506040513d602081101561124e57600080fd5b505192915050565b6000610cc9826120fa565b600061127a60008051602061349783398151915261233a565b600160a060020a031663a43d5e94836040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b15801561122457600080fd5b60008054600160a060020a0316331480611309575060035474010000000000000000000000000000000000000000900460ff16155b151561134d576040805160e560020a62461bcd0281526020600482015260116024820152600080516020613477833981519152604482015290519081900360640190fd5b6113767f436f6e747261637452656769737472790000000000000000000000000000000061233a565b600254909150600160a060020a0380831691161480159061139f5750600160a060020a03811615155b15156113f5576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e56414c49445f5245474953545259000000000000000000000000604482015290519081900360640190fd5b604080517fbb34534c0000000000000000000000000000000000000000000000000000000081527f436f6e747261637452656769737472790000000000000000000000000000000060048201529051600091600160a060020a0384169163bb34534c9160248082019260209290919082900301818787803b15801561147957600080fd5b505af115801561148d573d6000803e3d6000fd5b505050506040513d60208110156114a357600080fd5b5051600160a060020a03161415611504576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e56414c49445f5245474953545259000000000000000000000000604482015290519081900360640190fd5b6002805460038054600160a060020a0380841673ffffffffffffffffffffffffffffffffffffffff19928316179092559091169216919091179055565b600061155a60008051602061349783398151915261233a565b600160a060020a031663a109d214836040518263ffffffff1660e060020a02815260040180828152602001915050602060405180830381600087803b15801561122457600080fd5b60006115b388888888888888612992565b6005805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392831617908190551698975050505050505050565b606061160460008051602061349783398151915261233a565b600160a060020a0316635f1b50fe6040518163ffffffff1660e060020a028152600401600060405180830381600087803b15801561164157600080fd5b505af1158015611655573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561167e57600080fd5b81019080805164010000000081111561169657600080fd5b820160208101848111156116a957600080fd5b81518560208202830111640100000000821117156116c657600080fd5b509094505050505090565b60006116ea60008051602061349783398151915261233a565b600160a060020a031663d6c4b5b284846040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b15801561174c57600080fd5b505af1158015611760573d6000803e3d6000fd5b505050506040513d602081101561177657600080fd5b50519392505050565b606080600083516040519080825280602002602001820160405280156117af578160200160208202803883390190505b509150600090505b835181101561186e5783818151811015156117ce57fe5b90602001906020020151600160a060020a0316638da5cb5b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561181557600080fd5b505af1158015611829573d6000803e3d6000fd5b505050506040513d602081101561183f57600080fd5b5051825183908390811061184f57fe5b600160a060020a039092166020928302909101909101526001016117b7565b5092915050565b600354600160a060020a031681565b600061189d60008051602061349783398151915261233a565b600160a060020a03166369be47846040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156118da57600080fd5b505af11580156118ee573d6000803e3d6000fd5b505050506040513d602081101561190457600080fd5b5051905090565b6119136122e8565b61191c81611dc9565b1515611972576040805160e560020a62461bcd02815260206004820152601560248201527f4552525f494e56414c49445f434f4e5645525445520000000000000000000000604482015290519081900360640190fd5b61197b816127b1565b50565b600061198a8383611ff4565b9392505050565b600154600160a060020a031633146119e1576040805160e560020a62461bcd0281526020600482015260116024820152600080516020613477833981519152604482015290519081900360640190fd5b60015460008054604051600160a060020a0393841693909116917f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91a3600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b6000611a6b60008051602061349783398151915261233a565b600160a060020a0316637a5f0ffd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156118da57600080fd5b600254600160a060020a031681565b6060611ad060008051602061349783398151915261233a565b600160a060020a0316637f45c4c36040518163ffffffff1660e060020a028152600401600060405180830381600087803b15801561164157600080fd5b6000611b2660008051602061349783398151915261233a565b600160a060020a031663865cf194836040518263ffffffff1660e060020a02815260040180828152602001915050602060405180830381600087803b15801561122457600080fd5b600054600160a060020a031681565b60008060608060008086600160a060020a03166371f52bf36040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015611bc457600080fd5b505af1158015611bd8573d6000803e3d6000fd5b505050506040513d6020811015611bee57600080fd5b50516040805161ffff90921680835260208181028401019091529550858015611c21578160200160208202803883390190505b50935084604051908082528060200260200182016040528015611c4e578160200160208202803883390190505b509250600091505b84821015611d345786600160a060020a03166319b64015836040518263ffffffff1660e060020a02815260040180828152602001915050602060405180830381600087803b158015611ca757600080fd5b505af1158015611cbb573d6000803e3d6000fd5b505050506040513d6020811015611cd157600080fd5b505184519091508190859084908110611ce657fe5b600160a060020a03909216602092830290910190910152611d078782612d1a565b8383815181101515611d1557fe5b63ffffffff909216602092830290910190910152600190910190611c56565b6000600160a060020a0316611db388600160a060020a0316633e8ff43f6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015611d8057600080fd5b505af1158015611d94573d6000803e3d6000fd5b505050506040513d6020811015611daa57600080fd5b50518686610bcb565b600160a060020a03161415979650505050505050565b600081600160a060020a031682600160a060020a031663fc0c546a6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015611e1357600080fd5b505af1158015611e27573d6000803e3d6000fd5b505050506040513d6020811015611e3d57600080fd5b5051604080517f8da5cb5b0000000000000000000000000000000000000000000000000000000081529051600160a060020a0390921691638da5cb5b916004808201926020929091908290030181600087803b158015611e9c57600080fd5b505af1158015611eb0573d6000803e3d6000fd5b505050506040513d6020811015611ec657600080fd5b5051600160a060020a03161492915050565b600054600160a060020a0316331480611ef75750611ef581611dc9565b155b1515611f3b576040805160e560020a62461bcd0281526020600482015260116024820152600080516020613477833981519152604482015290519081900360640190fd5b61197b81612deb565b6000610cc982611541565b6000610cc982611261565b6000611f7360008051602061349783398151915261233a565b600160a060020a031663a74498aa836040518263ffffffff1660e060020a02815260040180828152602001915050602060405180830381600087803b15801561122457600080fd5b611fc36122e8565b6003546002805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055565b600061200d60008051602061349783398151915261233a565b604080517f725b8786000000000000000000000000000000000000000000000000000000008152600160a060020a03868116600483015285811660248301529151929091169163725b8786916044808201926020929091908290030181600087803b15801561174c57600080fd5b600061198a60018484610bcb565b60006120a260008051602061349783398151915261233a565b600160a060020a031663e571049b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156118da57600080fd5b600154600160a060020a031681565b600061198a83836116d1565b600061211360008051602061349783398151915261233a565b600160a060020a0316634123ef60836040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b15801561122457600080fd5b6000610ab3612089565b600061219060008051602061349783398151915261233a565b600160a060020a031663e85455d7836040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b15801561122457600080fd5b606061220360008051602061349783398151915261233a565b600160a060020a03166304ceaf416040518163ffffffff1660e060020a028152600401600060405180830381600087803b15801561164157600080fd5b6122486122e8565b600054600160a060020a03828116911614156122ae576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f53414d455f4f574e4552000000000000000000000000000000000000604482015290519081900360640190fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6060610cc982610ab8565b600054600160a060020a03163314612338576040805160e560020a62461bcd0281526020600482015260116024820152600080516020613477833981519152604482015290519081900360640190fd5b565b600254604080517fbb34534c000000000000000000000000000000000000000000000000000000008152600481018490529051600092600160a060020a03169163bb34534c91602480830192602092919082900301818787803b15801561122457600080fd5b606060008060008060006123c160008051602061349783398151915261233a565b945084600160a060020a031663a43d5e948860008151811015156123e157fe5b906020019060200201516040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b15801561243657600080fd5b505af115801561244a573d6000803e3d6000fd5b505050506040513d602081101561246057600080fd5b5051935060009250600191505b86518210156125305784600160a060020a031663a43d5e94888481518110151561249357fe5b906020019060200201516040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b1580156124e857600080fd5b505af11580156124fc573d6000803e3d6000fd5b505050506040513d602081101561251257600080fd5b5051905080841115612525578093508192505b60019091019061246d565b84600160a060020a031663f4fb86c0888581518110151561254d57fe5b906020019060200201516040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b1580156125a257600080fd5b505af11580156125b6573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260208110156125df57600080fd5b8101908080516401000000008111156125f757600080fd5b8201602081018481111561260a57600080fd5b815185602082028301116401000000008211171561262757600080fd5b50909b9a5050505050505050505050565b60008085600160a060020a0316633e8ff43f6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561267957600080fd5b505af115801561268d573d6000803e3d6000fd5b505050506040513d60208110156126a357600080fd5b505161ffff8681169116146126bb57600091506127a8565b85600160a060020a03166371f52bf36040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156126f957600080fd5b505af115801561270d573d6000803e3d6000fd5b505050506040513d602081101561272357600080fd5b5051845161ffff9091161461273b57600091506127a8565b5060005b83518110156127a35761276986858381518110151561275a57fe5b90602001906020020151612d1a565b63ffffffff16838281518110151561277d57fe5b6020908102909101015163ffffffff161461279b57600091506127a8565b60010161273f565b600191505b50949350505050565b6000806000806127ce60008051602061349783398151915261233a565b935084600160a060020a031663fc0c546a6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561280e57600080fd5b505af1158015612822573d6000803e3d6000fd5b505050506040513d602081101561283857600080fd5b5051604080517f71f52bf30000000000000000000000000000000000000000000000000000000081529051919450600160a060020a038716916371f52bf3916004808201926020929091908290030181600087803b15801561289957600080fd5b505af11580156128ad573d6000803e3d6000fd5b505050506040513d60208110156128c357600080fd5b505161ffff1691506128d58484612fc5565b60018211156128ed576128e884846130a4565b6128f8565b6128f884848561314f565b5060005b8181101561298b576129838486600160a060020a03166319b64015846040518263ffffffff1660e060020a02815260040180828152602001915050602060405180830381600087803b15801561295157600080fd5b505af1158015612965573d6000803e3d6000fd5b505050506040513d602081101561297b57600080fd5b50518561314f565b6001016128fc565b5050505050565b6000806000806000865193508551841415156129f8576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e56414c49445f5245534552564553000000000000000000000000604482015290519081900360640190fd5b6000612a058d8989610bcb565b600160a060020a031614612a63576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f414c52454144595f4558495354530000000000000000000000000000604482015290519081900360640190fd5b612a8c7f436f6e766572746572466163746f72790000000000000000000000000000000061233a565b925082600160a060020a0316632e9ab7b38d8d8d8d6040518563ffffffff1660e060020a028152600401808561ffff1661ffff16815260200180602001806020018460ff1660ff168152602001838103835286818151815260200191508051906020019080838360005b83811015612b0e578181015183820152602001612af6565b50505050905090810190601f168015612b3b5780820380516001836020036101000a031916815260200191505b50838103825285518152855160209182019187019080838360005b83811015612b6e578181015183820152602001612b56565b50505050905090810190601f168015612b9b5780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600087803b158015612bbe57600080fd5b505af1158015612bd2573d6000803e3d6000fd5b505050506040513d6020811015612be857600080fd5b8101908080519060200190929190505050915082600160a060020a03166315f64b6a8d84600260009054906101000a9004600160a060020a03168c6040518563ffffffff1660e060020a028152600401808561ffff1661ffff16815260200184600160a060020a0316600160a060020a0316815260200183600160a060020a0316600160a060020a031681526020018263ffffffff1663ffffffff168152602001945050505050602060405180830381600087803b158015612ca957600080fd5b505af1158015612cbd573d6000803e3d6000fd5b505050506040513d6020811015612cd357600080fd5b5051600160a060020a0381166000908152600460205260409020805473ffffffffffffffffffffffffffffffffffffffff1916331790559c9b505050505050505050505050565b6000612d2461345b565b604080517f636f6e6e6563746f72732861646472657373290000000000000000000000000081528151908190036013018120600160a060020a03861660248084019190915283518084039091018152604490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090921691909117815281519192918491885afa801515612dde57600080fd5b5050602001519392505050565b600080600080612e0860008051602061349783398151915261233a565b935084600160a060020a031663fc0c546a6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015612e4857600080fd5b505af1158015612e5c573d6000803e3d6000fd5b505050506040513d6020811015612e7257600080fd5b5051604080517f71f52bf30000000000000000000000000000000000000000000000000000000081529051919450600160a060020a038716916371f52bf3916004808201926020929091908290030181600087803b158015612ed357600080fd5b505af1158015612ee7573d6000803e3d6000fd5b505050506040513d6020811015612efd57600080fd5b505161ffff169150612f0f8484613210565b6001821115612f2757612f2284846132ef565b612f32565b612f3284848561339a565b5060005b8181101561298b57612fbd8486600160a060020a03166319b64015846040518263ffffffff1660e060020a02815260040180828152602001915050602060405180830381600087803b158015612f8b57600080fd5b505af1158015612f9f573d6000803e3d6000fd5b505050506040513d6020811015612fb557600080fd5b50518561339a565b600101612f36565b81600160a060020a0316638de6c3eb826040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b15801561302057600080fd5b505af1158015613034573d6000803e3d6000fd5b5050604051600160a060020a03841692507fc0a6d303d67b7ed9fa0abae1c48878df32acc0e7ca4334c7dad2bceeee5956fd9150600090a2604051600160a060020a038216907f88881feecdf61136ac4bdb1f681f2f3746a82910263d21ffea94750d2a78c0ab90600090a25050565b81600160a060020a031663ee6a934c826040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b1580156130ff57600080fd5b505af1158015613113573d6000803e3d6000fd5b5050604051600160a060020a03841692507fb893f883ef734b712208a877459424ee509832c57e0461fb1ac99ed4d42f2d899150600090a25050565b604080517f36900c11000000000000000000000000000000000000000000000000000000008152600160a060020a03848116600483015283811660248301529151918516916336900c119160448082019260009290919082900301818387803b1580156131bb57600080fd5b505af11580156131cf573d6000803e3d6000fd5b5050604051600160a060020a038085169350851691507ff2e7cf6d6ed3f77039511409a43d4fa5108f09ab71d72b014380364c910233a590600090a3505050565b81600160a060020a031663ceb9838c826040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b15801561326b57600080fd5b505af115801561327f573d6000803e3d6000fd5b5050604051600160a060020a03841692507fbfdf1baaa7e4871111360083540f067050014f651c9e4610a2a4a4bdf8bfab5d9150600090a2604051600160a060020a038216907f2aff63790c7da80d1c50ede92d23bc841c384837735c92c184331f3d7b91e5bf90600090a25050565b81600160a060020a031663ae22107f826040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b15801561334a57600080fd5b505af115801561335e573d6000803e3d6000fd5b5050604051600160a060020a03841692507f59c3fbcae88f30e9b0e35c132a7f68c53231dffa4722f197c7ecb0ee013eee609150600090a25050565b604080517ffba8f031000000000000000000000000000000000000000000000000000000008152600160a060020a038481166004830152838116602483015291519185169163fba8f0319160448082019260009290919082900301818387803b15801561340657600080fd5b505af115801561341a573d6000803e3d6000fd5b5050604051600160a060020a038085169350851691507f9430ad6ff45d6c3e126c7711bf0036bd9bc6b202fa19628abd88e59cf43ced4390600090a3505050565b6040805180820182529060029082908038833950919291505056004552525f4143434553535f44454e494544000000000000000000000000000000536f7672796e53776170436f6e76657274657252656769737472794461746100a165627a7a7230582023bb3142e349dbb5b391f6eed5184e6c1bf93d52cf7d3e26938270e2c153c0f90029", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x20B JUMPI PUSH4 0xFFFFFFFF PUSH1 0xE0 PUSH1 0x2 EXP PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x24C7EC7 DUP2 EQ PUSH2 0x210 JUMPI DUP1 PUSH4 0x4CEAF41 EQ PUSH2 0x22C JUMPI DUP1 PUSH4 0x11839064 EQ PUSH2 0x291 JUMPI DUP1 PUSH4 0x1814F2D2 EQ PUSH2 0x2B2 JUMPI DUP1 PUSH4 0x1D3FCCD5 EQ PUSH2 0x2E3 JUMPI DUP1 PUSH4 0x1F8E2620 EQ PUSH2 0x37A JUMPI DUP1 PUSH4 0x295D2A21 EQ PUSH2 0x3CF JUMPI DUP1 PUSH4 0x2FE8A6AD EQ PUSH2 0x471 JUMPI DUP1 PUSH4 0x3AB8857C EQ PUSH2 0x49A JUMPI DUP1 PUSH4 0x4123EF60 EQ PUSH2 0x4BB JUMPI DUP1 PUSH4 0x49C5F32B EQ PUSH2 0x4DC JUMPI DUP1 PUSH4 0x49D10B64 EQ PUSH2 0x50F JUMPI DUP1 PUSH4 0x4C7DF18F EQ PUSH2 0x524 JUMPI DUP1 PUSH4 0x5A0A6618 EQ PUSH2 0x53C JUMPI DUP1 PUSH4 0x5F1B50FE EQ PUSH2 0x666 JUMPI DUP1 PUSH4 0x603F51E4 EQ PUSH2 0x67B JUMPI DUP1 PUSH4 0x610C0B05 EQ PUSH2 0x69F JUMPI DUP1 PUSH4 0x61CD756E EQ PUSH2 0x6F4 JUMPI DUP1 PUSH4 0x69BE4784 EQ PUSH2 0x709 JUMPI DUP1 PUSH4 0x6CE1C4DC EQ PUSH2 0x71E JUMPI DUP1 PUSH4 0x725B8786 EQ PUSH2 0x73F JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x766 JUMPI DUP1 PUSH4 0x7A5F0FFD EQ PUSH2 0x77B JUMPI DUP1 PUSH4 0x7B103999 EQ PUSH2 0x790 JUMPI DUP1 PUSH4 0x7F45C4C3 EQ PUSH2 0x7A5 JUMPI DUP1 PUSH4 0x865CF194 EQ PUSH2 0x7BA JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x7D2 JUMPI DUP1 PUSH4 0x8F1D0E1A EQ PUSH2 0x7E7 JUMPI DUP1 PUSH4 0x954254F5 EQ PUSH2 0x808 JUMPI DUP1 PUSH4 0x9E76A007 EQ PUSH2 0x829 JUMPI DUP1 PUSH4 0xA109D214 EQ PUSH2 0x84A JUMPI DUP1 PUSH4 0xA43D5E94 EQ PUSH2 0x862 JUMPI DUP1 PUSH4 0xA74498AA EQ PUSH2 0x883 JUMPI DUP1 PUSH4 0xB4A176D3 EQ PUSH2 0x89B JUMPI DUP1 PUSH4 0xB4C4197A EQ PUSH2 0x8B0 JUMPI DUP1 PUSH4 0xC22B82F0 EQ PUSH2 0x8D7 JUMPI DUP1 PUSH4 0xD3182BED EQ PUSH2 0x965 JUMPI DUP1 PUSH4 0xD4EE1D90 EQ PUSH2 0x97A JUMPI DUP1 PUSH4 0xD6C4B5B2 EQ PUSH2 0x98F JUMPI DUP1 PUSH4 0xD8CCED2A EQ PUSH2 0x9B3 JUMPI DUP1 PUSH4 0xE571049B EQ PUSH2 0x9D4 JUMPI DUP1 PUSH4 0xE85455D7 EQ PUSH2 0x9E9 JUMPI DUP1 PUSH4 0xEFFB3C6E EQ PUSH2 0xA0A JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0xA1F JUMPI DUP1 PUSH4 0xF4FB86C0 EQ PUSH2 0xA40 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x21C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x22A PUSH1 0x4 CALLDATALOAD ISZERO ISZERO PUSH2 0xA61 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x238 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x241 PUSH2 0xAA9 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP4 MLOAD DUP2 DUP4 ADD MSTORE DUP4 MLOAD SWAP2 SWAP3 DUP4 SWAP3 SWAP1 DUP4 ADD SWAP2 DUP6 DUP2 ADD SWAP2 MUL DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x27D JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x265 JUMP JUMPDEST POP POP POP POP SWAP1 POP ADD SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x29D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x241 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0xAB8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2BE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C7 PUSH2 0xBBC JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2EF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 PUSH1 0x24 DUP1 CALLDATALOAD DUP3 DUP2 ADD CALLDATALOAD DUP5 DUP2 MUL DUP1 DUP8 ADD DUP7 ADD SWAP1 SWAP8 MSTORE DUP1 DUP7 MSTORE PUSH2 0x2C7 SWAP7 DUP5 CALLDATALOAD PUSH2 0xFFFF AND SWAP7 CALLDATASIZE SWAP7 PUSH1 0x44 SWAP6 SWAP2 SWAP5 SWAP1 SWAP2 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP POP PUSH1 0x40 DUP1 MLOAD DUP8 CALLDATALOAD DUP10 ADD DUP1 CALLDATALOAD PUSH1 0x20 DUP2 DUP2 MUL DUP5 DUP2 ADD DUP3 ADD SWAP1 SWAP6 MSTORE DUP2 DUP5 MSTORE SWAP9 SWAP12 SWAP11 SWAP10 DUP10 ADD SWAP9 SWAP3 SWAP8 POP SWAP1 DUP3 ADD SWAP6 POP SWAP4 POP DUP4 SWAP3 POP DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP PUSH2 0xBCB SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x386 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x241 SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP PUSH2 0xCBE SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3DB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 PUSH1 0x24 DUP1 CALLDATALOAD DUP3 DUP2 ADD CALLDATALOAD DUP5 DUP2 MUL DUP1 DUP8 ADD DUP7 ADD SWAP1 SWAP8 MSTORE DUP1 DUP7 MSTORE PUSH2 0x2C7 SWAP7 DUP5 CALLDATALOAD PUSH2 0xFFFF AND SWAP7 CALLDATASIZE SWAP7 PUSH1 0x44 SWAP6 SWAP2 SWAP5 SWAP1 SWAP2 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP POP PUSH1 0x40 DUP1 MLOAD DUP8 CALLDATALOAD DUP10 ADD DUP1 CALLDATALOAD PUSH1 0x20 DUP2 DUP2 MUL DUP5 DUP2 ADD DUP3 ADD SWAP1 SWAP6 MSTORE DUP2 DUP5 MSTORE SWAP9 SWAP12 SWAP11 SWAP10 DUP10 ADD SWAP9 SWAP3 SWAP8 POP SWAP1 DUP3 ADD SWAP6 POP SWAP4 POP DUP4 SWAP3 POP DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP POP POP SWAP3 CALLDATALOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP4 POP PUSH2 0xCCF SWAP3 POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x47D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x486 PUSH2 0x1190 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4A6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x486 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x11B1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4C7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x486 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x1256 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4E8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4FD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x1261 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x51B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x22A PUSH2 0x12D4 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x530 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C7 PUSH1 0x4 CALLDATALOAD PUSH2 0x1541 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x548 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 PUSH1 0x24 DUP1 CALLDATALOAD DUP3 DUP2 ADD CALLDATALOAD PUSH1 0x1F DUP2 ADD DUP6 SWAP1 DIV DUP6 MUL DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP6 DUP6 MSTORE PUSH2 0x2C7 SWAP6 DUP4 CALLDATALOAD PUSH2 0xFFFF AND SWAP6 CALLDATASIZE SWAP6 PUSH1 0x44 SWAP5 SWAP2 SWAP4 SWAP1 SWAP2 ADD SWAP2 SWAP1 DUP2 SWAP1 DUP5 ADD DUP4 DUP3 DUP1 DUP3 DUP5 CALLDATACOPY POP POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x1F DUP10 CALLDATALOAD DUP12 ADD DUP1 CALLDATALOAD SWAP2 DUP3 ADD DUP4 SWAP1 DIV DUP4 MUL DUP5 ADD DUP4 ADD SWAP1 SWAP5 MSTORE DUP1 DUP4 MSTORE SWAP8 SWAP11 SWAP10 SWAP9 DUP2 ADD SWAP8 SWAP2 SWAP7 POP SWAP2 DUP3 ADD SWAP5 POP SWAP3 POP DUP3 SWAP2 POP DUP5 ADD DUP4 DUP3 DUP1 DUP3 DUP5 CALLDATACOPY POP POP PUSH1 0x40 DUP1 MLOAD DUP2 DUP9 ADD CALLDATALOAD DUP10 ADD DUP1 CALLDATALOAD PUSH1 0x20 DUP2 DUP2 MUL DUP5 DUP2 ADD DUP3 ADD SWAP1 SWAP6 MSTORE DUP2 DUP5 MSTORE SWAP9 SWAP12 PUSH1 0xFF DUP12 CALLDATALOAD AND SWAP12 PUSH4 0xFFFFFFFF DUP12 DUP14 ADD CALLDATALOAD AND SWAP12 SWAP2 SWAP11 SWAP1 SWAP10 POP PUSH1 0x60 SWAP1 SWAP2 ADD SWAP8 POP SWAP3 SWAP6 POP SWAP1 DUP3 ADD SWAP4 POP SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP POP PUSH1 0x40 DUP1 MLOAD DUP8 CALLDATALOAD DUP10 ADD DUP1 CALLDATALOAD PUSH1 0x20 DUP2 DUP2 MUL DUP5 DUP2 ADD DUP3 ADD SWAP1 SWAP6 MSTORE DUP2 DUP5 MSTORE SWAP9 SWAP12 SWAP11 SWAP10 DUP10 ADD SWAP9 SWAP3 SWAP8 POP SWAP1 DUP3 ADD SWAP6 POP SWAP4 POP DUP4 SWAP3 POP DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP PUSH2 0x15A2 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x672 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x241 PUSH2 0x15EB JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x687 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x16D1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6AB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x241 SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP PUSH2 0x177F SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x700 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C7 PUSH2 0x1875 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x715 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4FD PUSH2 0x1884 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x72A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x22A PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x190B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x74B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x486 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH2 0x197E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x772 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x22A PUSH2 0x1991 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x787 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4FD PUSH2 0x1A52 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x79C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C7 PUSH2 0x1AA8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7B1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x241 PUSH2 0x1AB7 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7C6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C7 PUSH1 0x4 CALLDATALOAD PUSH2 0x1B0D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7DE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C7 PUSH2 0x1B6E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7F3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x486 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x1B7D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x814 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x486 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x1DC9 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x835 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x22A PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x1ED8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x856 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C7 PUSH1 0x4 CALLDATALOAD PUSH2 0x1F44 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x86E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4FD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x1F4F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x88F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C7 PUSH1 0x4 CALLDATALOAD PUSH2 0x1F5A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8A7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x22A PUSH2 0x1FBB JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8BC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x486 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH2 0x1FF4 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8E3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x2C7 SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP POP PUSH1 0x40 DUP1 MLOAD DUP8 CALLDATALOAD DUP10 ADD DUP1 CALLDATALOAD PUSH1 0x20 DUP2 DUP2 MUL DUP5 DUP2 ADD DUP3 ADD SWAP1 SWAP6 MSTORE DUP2 DUP5 MSTORE SWAP9 SWAP12 SWAP11 SWAP10 DUP10 ADD SWAP9 SWAP3 SWAP8 POP SWAP1 DUP3 ADD SWAP6 POP SWAP4 POP DUP4 SWAP3 POP DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP PUSH2 0x207B SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x971 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4FD PUSH2 0x2089 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x986 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C7 PUSH2 0x20DF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x99B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x20EE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9BF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x486 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x20FA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9E0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4FD PUSH2 0x216D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x486 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x2177 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA16 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x241 PUSH2 0x21EA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA2B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x22A PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x2240 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA4C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x241 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x22DD JUMP JUMPDEST PUSH2 0xA69 PUSH2 0x22E8 JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD SWAP2 ISZERO ISZERO PUSH21 0x10000000000000000000000000000000000000000 MUL PUSH21 0xFF0000000000000000000000000000000000000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x60 PUSH2 0xAB3 PUSH2 0x21EA JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH2 0xAD1 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3497 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x233A JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xF4FB86C0 DUP4 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xB2B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xB3F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xB68 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 MLOAD PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0xB80 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD PUSH1 0x20 DUP2 ADD DUP5 DUP2 GT ISZERO PUSH2 0xB93 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP6 PUSH1 0x20 DUP3 MUL DUP4 ADD GT PUSH5 0x100000000 DUP3 GT OR ISZERO PUSH2 0xBB0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP SWAP1 SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 MLOAD DUP8 MLOAD EQ DUP1 ISZERO PUSH2 0xBE6 JUMPI POP PUSH1 0x1 DUP8 MLOAD GT JUMPDEST ISZERO PUSH2 0xCAE JUMPI PUSH2 0xBF4 DUP8 PUSH2 0x23A0 JUMP JUMPDEST SWAP4 POP PUSH1 0x0 SWAP3 POP JUMPDEST DUP4 MLOAD DUP4 LT ISZERO PUSH2 0xCAE JUMPI DUP4 DUP4 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xC12 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD SWAP2 POP DUP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x8DA5CB5B PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC5C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xC70 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xC86 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 POP PUSH2 0xC96 DUP2 DUP10 DUP10 DUP10 PUSH2 0x2638 JUMP JUMPDEST ISZERO PUSH2 0xCA3 JUMPI DUP2 SWAP5 POP PUSH2 0xCB3 JUMP JUMPDEST PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 PUSH2 0xBFB JUMP JUMPDEST PUSH1 0x0 SWAP5 POP JUMPDEST POP POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0xCC9 DUP3 PUSH2 0x177F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD SWAP1 SWAP2 DUP3 SWAP2 DUP3 SWAP2 DUP3 SWAP2 AND CALLER EQ PUSH2 0xD6E JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x30 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x6F6E6C7920746865206465706C6F796572206D61792066696E69736820746865 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x20636F6E76657274657220736574757000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x84 ADD SWAP1 REVERT JUMPDEST DUP7 MLOAD DUP7 MLOAD SWAP1 SWAP4 POP DUP4 EQ PUSH2 0xDCB JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245534552564553000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xDD8 DUP10 DUP10 DUP10 PUSH2 0xBCB JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ PUSH2 0xE36 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F414C52454144595F4558495354530000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xD3FB73B4 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xE74 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xE88 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xE9E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x79BA509700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP4 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP2 PUSH4 0x79BA5097 SWAP2 PUSH1 0x4 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xEFE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xF12 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x79BA5097 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xF54 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xF68 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x0 SWAP1 POP JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x103A JUMPI DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x6A49D2C4 DUP9 DUP4 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xF96 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD DUP9 DUP5 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xFAE JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 PUSH4 0xFFFFFFFF AND PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1016 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x102A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 POP PUSH2 0xF71 SWAP1 POP JUMP JUMPDEST DUP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xF2FDE38B DUP7 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1095 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x10A9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xCDC91C69 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x10EB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x10FF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 DUP1 MLOAD PUSH32 0xF2FDE38B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP10 AND SWAP4 POP PUSH4 0xF2FDE38B SWAP3 POP PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1163 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1177 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x1184 DUP6 PUSH2 0x27B1 JUMP JUMPDEST POP SWAP3 SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x11CA PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3497 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x233A JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x3AB8857C DUP4 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1224 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1238 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x124E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xCC9 DUP3 PUSH2 0x20FA JUMP JUMPDEST PUSH1 0x0 PUSH2 0x127A PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3497 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x233A JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xA43D5E94 DUP4 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1224 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ DUP1 PUSH2 0x1309 JUMPI POP PUSH1 0x3 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x134D JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3477 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x1376 PUSH32 0x436F6E7472616374526567697374727900000000000000000000000000000000 PUSH2 0x233A JUMP JUMPDEST PUSH1 0x2 SLOAD SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP4 AND SWAP2 AND EQ DUP1 ISZERO SWAP1 PUSH2 0x139F JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x13F5 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245474953545259000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0xBB34534C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH32 0x436F6E7472616374526567697374727900000000000000000000000000000000 PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP2 PUSH4 0xBB34534C SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1479 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x148D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x14A3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ ISZERO PUSH2 0x1504 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245474953545259000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP5 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP3 DUP4 AND OR SWAP1 SWAP3 SSTORE SWAP1 SWAP2 AND SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH2 0x155A PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3497 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x233A JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xA109D214 DUP4 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1224 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x15B3 DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 PUSH2 0x2992 JUMP JUMPDEST PUSH1 0x5 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 DUP4 AND OR SWAP1 DUP2 SWAP1 SSTORE AND SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x1604 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3497 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x233A JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x5F1B50FE PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1641 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1655 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x167E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 MLOAD PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x1696 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD PUSH1 0x20 DUP2 ADD DUP5 DUP2 GT ISZERO PUSH2 0x16A9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP6 PUSH1 0x20 DUP3 MUL DUP4 ADD GT PUSH5 0x100000000 DUP3 GT OR ISZERO PUSH2 0x16C6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP SWAP1 SWAP5 POP POP POP POP POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x16EA PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3497 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x233A JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xD6C4B5B2 DUP5 DUP5 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x174C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1760 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1776 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP1 PUSH1 0x0 DUP4 MLOAD PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x17AF JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CODESIZE DUP4 CODECOPY ADD SWAP1 POP JUMPDEST POP SWAP2 POP PUSH1 0x0 SWAP1 POP JUMPDEST DUP4 MLOAD DUP2 LT ISZERO PUSH2 0x186E JUMPI DUP4 DUP2 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x17CE JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x8DA5CB5B PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1815 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1829 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x183F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD DUP3 MLOAD DUP4 SWAP1 DUP4 SWAP1 DUP2 LT PUSH2 0x184F JUMPI INVALID JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND PUSH1 0x20 SWAP3 DUP4 MUL SWAP1 SWAP2 ADD SWAP1 SWAP2 ADD MSTORE PUSH1 0x1 ADD PUSH2 0x17B7 JUMP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x189D PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3497 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x233A JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x69BE4784 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x18DA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x18EE JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1904 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x1913 PUSH2 0x22E8 JUMP JUMPDEST PUSH2 0x191C DUP2 PUSH2 0x1DC9 JUMP JUMPDEST ISZERO ISZERO PUSH2 0x1972 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F434F4E5645525445520000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x197B DUP2 PUSH2 0x27B1 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x198A DUP4 DUP4 PUSH2 0x1FF4 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x19E1 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3477 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND SWAP4 SWAP1 SWAP2 AND SWAP2 PUSH32 0x343765429AEA5A34B3FF6A3785A98A5ABB2597ACA87BFBB58632C173D585373A SWAP2 LOG3 PUSH1 0x1 DUP1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND OR SWAP1 SWAP2 SSTORE AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1A6B PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3497 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x233A JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x7A5F0FFD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x18DA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x60 PUSH2 0x1AD0 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3497 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x233A JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x7F45C4C3 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1641 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1B26 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3497 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x233A JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x865CF194 DUP4 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1224 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x60 DUP1 PUSH1 0x0 DUP1 DUP7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x71F52BF3 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1BC4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1BD8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1BEE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH2 0xFFFF SWAP1 SWAP3 AND DUP1 DUP4 MSTORE PUSH1 0x20 DUP2 DUP2 MUL DUP5 ADD ADD SWAP1 SWAP2 MSTORE SWAP6 POP DUP6 DUP1 ISZERO PUSH2 0x1C21 JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CODESIZE DUP4 CODECOPY ADD SWAP1 POP JUMPDEST POP SWAP4 POP DUP5 PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x1C4E JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CODESIZE DUP4 CODECOPY ADD SWAP1 POP JUMPDEST POP SWAP3 POP PUSH1 0x0 SWAP2 POP JUMPDEST DUP5 DUP3 LT ISZERO PUSH2 0x1D34 JUMPI DUP7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x19B64015 DUP4 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1CA7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1CBB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1CD1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD DUP5 MLOAD SWAP1 SWAP2 POP DUP2 SWAP1 DUP6 SWAP1 DUP5 SWAP1 DUP2 LT PUSH2 0x1CE6 JUMPI INVALID JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND PUSH1 0x20 SWAP3 DUP4 MUL SWAP1 SWAP2 ADD SWAP1 SWAP2 ADD MSTORE PUSH2 0x1D07 DUP8 DUP3 PUSH2 0x2D1A JUMP JUMPDEST DUP4 DUP4 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x1D15 JUMPI INVALID JUMPDEST PUSH4 0xFFFFFFFF SWAP1 SWAP3 AND PUSH1 0x20 SWAP3 DUP4 MUL SWAP1 SWAP2 ADD SWAP1 SWAP2 ADD MSTORE PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x1C56 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x1DB3 DUP9 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x3E8FF43F PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1D80 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1D94 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1DAA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD DUP7 DUP7 PUSH2 0xBCB JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ ISZERO SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xFC0C546A PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1E13 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1E27 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1E3D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x8DA5CB5B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP2 PUSH4 0x8DA5CB5B SWAP2 PUSH1 0x4 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1E9C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1EB0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1EC6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ DUP1 PUSH2 0x1EF7 JUMPI POP PUSH2 0x1EF5 DUP2 PUSH2 0x1DC9 JUMP JUMPDEST ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x1F3B JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3477 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x197B DUP2 PUSH2 0x2DEB JUMP JUMPDEST PUSH1 0x0 PUSH2 0xCC9 DUP3 PUSH2 0x1541 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xCC9 DUP3 PUSH2 0x1261 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1F73 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3497 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x233A JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xA74498AA DUP4 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1224 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1FC3 PUSH2 0x22E8 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x2 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH2 0x200D PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3497 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x233A JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x725B878600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP6 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE SWAP2 MLOAD SWAP3 SWAP1 SWAP2 AND SWAP2 PUSH4 0x725B8786 SWAP2 PUSH1 0x44 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x174C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x198A PUSH1 0x1 DUP5 DUP5 PUSH2 0xBCB JUMP JUMPDEST PUSH1 0x0 PUSH2 0x20A2 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3497 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x233A JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xE571049B PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x18DA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x198A DUP4 DUP4 PUSH2 0x16D1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2113 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3497 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x233A JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x4123EF60 DUP4 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1224 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xAB3 PUSH2 0x2089 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2190 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3497 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x233A JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xE85455D7 DUP4 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1224 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x60 PUSH2 0x2203 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3497 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x233A JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x4CEAF41 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1641 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2248 PUSH2 0x22E8 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x22AE JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F4F574E4552000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x60 PUSH2 0xCC9 DUP3 PUSH2 0xAB8 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x2338 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3477 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xBB34534C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP2 PUSH4 0xBB34534C SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1224 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x23C1 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3497 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x233A JUMP JUMPDEST SWAP5 POP DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xA43D5E94 DUP9 PUSH1 0x0 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x23E1 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2436 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x244A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2460 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP4 POP PUSH1 0x0 SWAP3 POP PUSH1 0x1 SWAP2 POP JUMPDEST DUP7 MLOAD DUP3 LT ISZERO PUSH2 0x2530 JUMPI DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xA43D5E94 DUP9 DUP5 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x2493 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x24E8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x24FC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2512 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 POP DUP1 DUP5 GT ISZERO PUSH2 0x2525 JUMPI DUP1 SWAP4 POP DUP2 SWAP3 POP JUMPDEST PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x246D JUMP JUMPDEST DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xF4FB86C0 DUP9 DUP6 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x254D JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x25A2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x25B6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x25DF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 MLOAD PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x25F7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD PUSH1 0x20 DUP2 ADD DUP5 DUP2 GT ISZERO PUSH2 0x260A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP6 PUSH1 0x20 DUP3 MUL DUP4 ADD GT PUSH5 0x100000000 DUP3 GT OR ISZERO PUSH2 0x2627 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP SWAP1 SWAP12 SWAP11 POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP6 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x3E8FF43F PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2679 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x268D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x26A3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH2 0xFFFF DUP7 DUP2 AND SWAP2 AND EQ PUSH2 0x26BB JUMPI PUSH1 0x0 SWAP2 POP PUSH2 0x27A8 JUMP JUMPDEST DUP6 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x71F52BF3 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x26F9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x270D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2723 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD DUP5 MLOAD PUSH2 0xFFFF SWAP1 SWAP2 AND EQ PUSH2 0x273B JUMPI PUSH1 0x0 SWAP2 POP PUSH2 0x27A8 JUMP JUMPDEST POP PUSH1 0x0 JUMPDEST DUP4 MLOAD DUP2 LT ISZERO PUSH2 0x27A3 JUMPI PUSH2 0x2769 DUP7 DUP6 DUP4 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x275A JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH2 0x2D1A JUMP JUMPDEST PUSH4 0xFFFFFFFF AND DUP4 DUP3 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x277D JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MLOAD PUSH4 0xFFFFFFFF AND EQ PUSH2 0x279B JUMPI PUSH1 0x0 SWAP2 POP PUSH2 0x27A8 JUMP JUMPDEST PUSH1 0x1 ADD PUSH2 0x273F JUMP JUMPDEST PUSH1 0x1 SWAP2 POP JUMPDEST POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x27CE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3497 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x233A JUMP JUMPDEST SWAP4 POP DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xFC0C546A PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x280E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2822 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2838 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x71F52BF300000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP5 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND SWAP2 PUSH4 0x71F52BF3 SWAP2 PUSH1 0x4 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2899 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x28AD JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x28C3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH2 0xFFFF AND SWAP2 POP PUSH2 0x28D5 DUP5 DUP5 PUSH2 0x2FC5 JUMP JUMPDEST PUSH1 0x1 DUP3 GT ISZERO PUSH2 0x28ED JUMPI PUSH2 0x28E8 DUP5 DUP5 PUSH2 0x30A4 JUMP JUMPDEST PUSH2 0x28F8 JUMP JUMPDEST PUSH2 0x28F8 DUP5 DUP5 DUP6 PUSH2 0x314F JUMP JUMPDEST POP PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x298B JUMPI PUSH2 0x2983 DUP5 DUP7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x19B64015 DUP5 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2951 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2965 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x297B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD DUP6 PUSH2 0x314F JUMP JUMPDEST PUSH1 0x1 ADD PUSH2 0x28FC JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP7 MLOAD SWAP4 POP DUP6 MLOAD DUP5 EQ ISZERO ISZERO PUSH2 0x29F8 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245534552564553000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2A05 DUP14 DUP10 DUP10 PUSH2 0xBCB JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ PUSH2 0x2A63 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F414C52454144595F4558495354530000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x2A8C PUSH32 0x436F6E766572746572466163746F727900000000000000000000000000000000 PUSH2 0x233A JUMP JUMPDEST SWAP3 POP DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x2E9AB7B3 DUP14 DUP14 DUP14 DUP14 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP6 PUSH2 0xFFFF AND PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP5 PUSH1 0xFF AND PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 SUB DUP4 MSTORE DUP7 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x2B0E JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x2AF6 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x2B3B JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP DUP4 DUP2 SUB DUP3 MSTORE DUP6 MLOAD DUP2 MSTORE DUP6 MLOAD PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 DUP8 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x2B6E JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x2B56 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x2B9B JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP7 POP POP POP POP POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2BBE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2BD2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2BE8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP SWAP2 POP DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x15F64B6A DUP14 DUP5 PUSH1 0x2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP13 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP6 PUSH2 0xFFFF AND PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 PUSH4 0xFFFFFFFF AND PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP5 POP POP POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2CA9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2CBD JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2CD3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND CALLER OR SWAP1 SSTORE SWAP13 SWAP12 POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2D24 PUSH2 0x345B JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x636F6E6E6563746F727328616464726573732900000000000000000000000000 DUP2 MSTORE DUP2 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x13 ADD DUP2 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND PUSH1 0x24 DUP1 DUP5 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x44 SWAP1 SWAP3 ADD DUP4 MSTORE PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR DUP2 MSTORE DUP2 MLOAD SWAP2 SWAP3 SWAP2 DUP5 SWAP2 DUP9 GAS STATICCALL DUP1 ISZERO ISZERO PUSH2 0x2DDE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP PUSH1 0x20 ADD MLOAD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x2E08 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3497 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x233A JUMP JUMPDEST SWAP4 POP DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xFC0C546A PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2E48 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2E5C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2E72 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x71F52BF300000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP5 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND SWAP2 PUSH4 0x71F52BF3 SWAP2 PUSH1 0x4 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2ED3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2EE7 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2EFD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH2 0xFFFF AND SWAP2 POP PUSH2 0x2F0F DUP5 DUP5 PUSH2 0x3210 JUMP JUMPDEST PUSH1 0x1 DUP3 GT ISZERO PUSH2 0x2F27 JUMPI PUSH2 0x2F22 DUP5 DUP5 PUSH2 0x32EF JUMP JUMPDEST PUSH2 0x2F32 JUMP JUMPDEST PUSH2 0x2F32 DUP5 DUP5 DUP6 PUSH2 0x339A JUMP JUMPDEST POP PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x298B JUMPI PUSH2 0x2FBD DUP5 DUP7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x19B64015 DUP5 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2F8B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2F9F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2FB5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD DUP6 PUSH2 0x339A JUMP JUMPDEST PUSH1 0x1 ADD PUSH2 0x2F36 JUMP JUMPDEST DUP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x8DE6C3EB DUP3 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3020 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3034 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP3 POP PUSH32 0xC0A6D303D67B7ED9FA0ABAE1C48878DF32ACC0E7CA4334C7DAD2BCEEEE5956FD SWAP2 POP PUSH1 0x0 SWAP1 LOG2 PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 AND SWAP1 PUSH32 0x88881FEECDF61136AC4BDB1F681F2F3746A82910263D21FFEA94750D2A78C0AB SWAP1 PUSH1 0x0 SWAP1 LOG2 POP POP JUMP JUMPDEST DUP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xEE6A934C DUP3 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x30FF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3113 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP3 POP PUSH32 0xB893F883EF734B712208A877459424EE509832C57E0461FB1AC99ED4D42F2D89 SWAP2 POP PUSH1 0x0 SWAP1 LOG2 POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x36900C1100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP4 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE SWAP2 MLOAD SWAP2 DUP6 AND SWAP2 PUSH4 0x36900C11 SWAP2 PUSH1 0x44 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x31BB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x31CF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP6 AND SWAP4 POP DUP6 AND SWAP2 POP PUSH32 0xF2E7CF6D6ED3F77039511409A43D4FA5108F09AB71D72B014380364C910233A5 SWAP1 PUSH1 0x0 SWAP1 LOG3 POP POP POP JUMP JUMPDEST DUP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xCEB9838C DUP3 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x326B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x327F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP3 POP PUSH32 0xBFDF1BAAA7E4871111360083540F067050014F651C9E4610A2A4A4BDF8BFAB5D SWAP2 POP PUSH1 0x0 SWAP1 LOG2 PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 AND SWAP1 PUSH32 0x2AFF63790C7DA80D1C50EDE92D23BC841C384837735C92C184331F3D7B91E5BF SWAP1 PUSH1 0x0 SWAP1 LOG2 POP POP JUMP JUMPDEST DUP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xAE22107F DUP3 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x334A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x335E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP3 POP PUSH32 0x59C3FBCAE88F30E9B0E35C132A7F68C53231DFFA4722F197C7ECB0EE013EEE60 SWAP2 POP PUSH1 0x0 SWAP1 LOG2 POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0xFBA8F03100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP4 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE SWAP2 MLOAD SWAP2 DUP6 AND SWAP2 PUSH4 0xFBA8F031 SWAP2 PUSH1 0x44 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3406 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x341A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP6 AND SWAP4 POP DUP6 AND SWAP2 POP PUSH32 0x9430AD6FF45D6C3E126C7711BF0036BD9BC6B202FA19628ABD88E59CF43CED43 SWAP1 PUSH1 0x0 SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD DUP3 MSTORE SWAP1 PUSH1 0x2 SWAP1 DUP3 SWAP1 DUP1 CODESIZE DUP4 CODECOPY POP SWAP2 SWAP3 SWAP2 POP POP JUMP STOP GASLIMIT MSTORE MSTORE 0x5f COINBASE NUMBER NUMBER GASLIMIT MSTORE8 MSTORE8 0x5f DIFFICULTY GASLIMIT 0x4e 0x49 GASLIMIT DIFFICULTY STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP MSTORE8 PUSH16 0x7672796E53776170436F6E7665727465 PUSH19 0x52656769737472794461746100A165627A7A72 ADDRESS PC KECCAK256 0x23 0xbb BALANCE TIMESTAMP 0xe3 0x49 0xdb 0xb5 0xb3 SWAP2 0xf6 0xee 0xd5 XOR 0x4e PUSH13 0x1BF93D52CF7D3E26938270E2C1 MSTORE8 0xc0 0xf9 STOP 0x29 ", + "sourceMap": "144:560:35:-;;;;;;;;;-1:-1:-1;;;144:560:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3280:206:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3280:206:60;;;;;;;;;21876:85:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;21876:85:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;21876:85:6;;;;;;;;;;;;;;;;;10964:218;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;10964:218:6;-1:-1:-1;;;;;10964:218:6;;;;;199:34:35;;8:9:-1;5:2;;;30:1;27;20:12;5:2;199:34:35;;;;;;;;-1:-1:-1;;;;;199:34:35;;;;;;;;;;;;;;14425:883:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;14425:883:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;14425:883:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;14425:883:6;;;;-1:-1:-1;14425:883:6;-1:-1:-1;14425:883:6;;-1:-1:-1;14425:883:6;;;;;;;;;-1:-1:-1;14425:883:6;;-1:-1:-1;14425:883:6;;-1:-1:-1;;;;;;;14425:883:6;23434:143;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;23434:143:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;23434:143:6;;-1:-1:-1;23434:143:6;;-1:-1:-1;;;;;;;23434:143:6;5068:901;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;5068:901:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;5068:901:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5068:901:6;;;;-1:-1:-1;5068:901:6;-1:-1:-1;5068:901:6;;-1:-1:-1;5068:901:6;;;;;;;;;-1:-1:-1;5068:901:6;;-1:-1:-1;;;5068:901:6;;-1:-1:-1;;;;;5068:901:6;;-1:-1:-1;5068:901:6;;-1:-1:-1;;;5068:901:6;1250:38:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1250:38:60;;;;;;;;;;;;;;;;;;;;;;10115:171:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;10115:171:6;-1:-1:-1;;;;;10115:171:6;;;;;22209:96;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;22209:96:6;-1:-1:-1;;;;;22209:96:6;;;;;10515:224;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;10515:224:6;-1:-1:-1;;;;;10515:224:6;;;;;;;;;;;;;;;;;;;;;2080:832:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2080:832:60;;;;7358:160:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;7358:160:6;;;;;319:383:35;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;319:383:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;319:383:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;319:383:35;;;;-1:-1:-1;319:383:35;-1:-1:-1;319:383:35;;-1:-1:-1;319:383:35;;;;;;;;-1:-1:-1;;319:383:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;319:383:35;;;;;-1:-1:-1;319:383:35;;-1:-1:-1;319:383:35;;;;-1:-1:-1;319:383:35;;;;;;;;;;;;-1:-1:-1;;319:383:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;319:383:35;;;;-1:-1:-1;319:383:35;-1:-1:-1;319:383:35;;-1:-1:-1;319:383:35;;;;;;;;;-1:-1:-1;319:383:35;;-1:-1:-1;319:383:35;;-1:-1:-1;;;;;;;319:383:35;9451:160:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9451:160:6;;;;11449:238;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;11449:238:6;-1:-1:-1;;;;;11449:238:6;;;;;;;12452:278;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;12452:278:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12452:278:6;;-1:-1:-1;12452:278:6;;-1:-1:-1;;;;;;;12452:278:6;1165:37:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1165:37:60;;;;9165:166:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9165:166:6;;;;6106:168;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;6106:168:6;-1:-1:-1;;;;;6106:168:6;;;;;23173:174;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;23173:174:6;-1:-1:-1;;;;;23173:174:6;;;;;;;;;;1159:176:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1159:176:66;;;;7962:160:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7962:160:6;;;;1085:33:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1085:33:60;;;;8236:154:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8236:154:6;;;;9757:176;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;9757:176:6;;;;;157:20:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;157:20:66;;;;13323:778:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;13323:778:6;-1:-1:-1;;;;;13323:778:6;;;;;12900:181;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;12900:181:6;-1:-1:-1;;;;;12900:181:6;;;;;6526:184;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;6526:184:6;-1:-1:-1;;;;;6526:184:6;;;;;22035:101;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;22035:101:6;;;;;22400:165;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;22400:165:6;-1:-1:-1;;;;;22400:165:6;;;;;8530:170;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;8530:170:6;;;;;2974:119:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2974:119:60;;;;11965:233:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;11965:233:6;-1:-1:-1;;;;;11965:233:6;;;;;;;;;;23666:232;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;23666:232:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;23666:232:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;23666:232:6;;;;-1:-1:-1;23666:232:6;-1:-1:-1;23666:232:6;;-1:-1:-1;23666:232:6;;;;;;;;;-1:-1:-1;23666:232:6;;-1:-1:-1;23666:232:6;;-1:-1:-1;;;;;;;23666:232:6;6822:150;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6822:150:6;;;;180:23:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;180:23:66;;;;22905:179:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;22905:179:6;-1:-1:-1;;;;;22905:179:6;;;;;;;7689:155;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;7689:155:6;-1:-1:-1;;;;;7689:155:6;;;;;21710:91;;8:9:-1;5:2;;;30:1;27;20:12;5:2;21710:91:6;;;;8876:165;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;8876:165:6;-1:-1:-1;;;;;8876:165:6;;;;;7080:144;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7080:144:6;;;;945:140:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;945:140:66;-1:-1:-1;;;;;945:140:66;;;;;22656:159:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;22656:159:6;-1:-1:-1;;;;;22656:159:6;;;;;3280:206:60;575:12:66;:10;:12::i;:::-;3426:26:60;:56;;;;;;;-1:-1:-1;;3426:56:60;;;;;;;;;3280:206::o;21876:85:6:-;21923:9;21945:12;:10;:12::i;:::-;21938:19;;21876:85;:::o;10964:218::-;11048:9;11093:34;-1:-1:-1;;;;;;;;;;;11093:9:6;:34::i;:::-;-1:-1:-1;;;;;11070:89:6;;11160:17;11070:108;;;;;-1:-1:-1;;;11070:108:6;;;;;;;-1:-1:-1;;;;;11070:108:6;-1:-1:-1;;;;;11070:108:6;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11070:108:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11070:108:6;;;;;;39:16:-1;36:1;17:17;2:54;101:4;11070:108:6;80:15:-1;;;-1:-1;;76:31;65:43;;120:4;113:20;13:2;5:11;;2:2;;;29:1;26;19:12;2:2;11070:108:6;;;;;;20:11:-1;15:3;12:20;9:2;;;45:1;42;35:12;9:2;64:21;;126:4;117:14;;142:31;;;139:2;;;186:1;183;176:12;139:2;224:3;218:10;339:9;333:2;319:12;315:21;297:16;293:44;290:59;268:11;254:12;251:29;239:119;236:2;;;371:1;368;361:12;236:2;-1:-1;11070:108:6;;10964:218;-1:-1:-1;;;;;;10964:218:6:o;199:34:35:-;;;-1:-1:-1;;;;;199:34:35;;:::o;14425:883:6:-;14573:16;14818:40;14972:9;15034:23;15110:20;14695:15;:22;14670:14;:21;:47;:76;;;;;14745:1;14721:14;:21;:25;14670:76;14666:608;;;14861:44;14890:14;14861:28;:44::i;:::-;14818:87;;14984:1;14972:13;;14967:303;14991:23;:30;14987:1;:34;14967:303;;;15077:23;15101:1;15077:26;;;;;;;;;;;;;;;;;;15034:70;;15144:6;-1:-1:-1;;;;;15144:12:6;;:14;;;;;-1:-1:-1;;;15144:14:6;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15144:14:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15144:14:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;15144:14:6;;-1:-1:-1;15169:80:6;15144:14;15210:5;15217:14;15233:15;15169:29;:80::i;:::-;15165:99;;;15258:6;15251:13;;;;15165:99;15023:3;;;;;14967:303;;;15302:1;15278:26;;14425:883;;;;;;;;;;:::o;23434:143::-;23515:9;23537:36;23560:12;23537:22;:36::i;:::-;23530:43;23434:143;-1:-1:-1;;23434:143:6:o;5068:901::-;-1:-1:-1;;;;;5250:20:6;;;5226:10;5250:20;;;:8;:20;;;;;;5226:10;;;;;;;;5250:20;5274:10;5250:34;5242:95;;;;;-1:-1:-1;;;;;5242:95:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5359:21;;5402:22;;5359:21;;-1:-1:-1;5392:32:6;;5384:65;;;;;-1:-1:-1;;;;;5384:65:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;5546:1;5461:64;5486:5;5493:14;5509:15;5461:24;:64::i;:::-;-1:-1:-1;;;;;5461:87:6;;5453:118;;;;;-1:-1:-1;;;;;5453:118:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;5602:10;-1:-1:-1;;;;;5602:17:6;;:19;;;;;-1:-1:-1;;;5602:19:6;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5602:19:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5602:19:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5602:19:6;5626:24;;;;;;;;5602:19;;-1:-1:-1;;;;;;5626:22:6;;;;;:24;;;;;;;;;;;;;;;;:22;:24;;;5:2:-1;;;;30:1;27;20:12;5:2;5626:24:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5626:24:6;;;;5654:10;-1:-1:-1;;;;;5654:26:6;;:28;;;;;-1:-1:-1;;;5654:28:6;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5654:28:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5654:28:6;;;;5704:1;5692:13;;5687:97;5711:6;5707:1;:10;5687:97;;;5724:10;-1:-1:-1;;;;;5724:21:6;;5746:14;5761:1;5746:17;;;;;;;;;;;;;;;;;;5765:15;5781:1;5765:18;;;;;;;;;;;;;;;;;;5724:60;;;;;-1:-1:-1;;;5724:60:6;;;;;;;-1:-1:-1;;;;;5724:60:6;-1:-1:-1;;;;;5724:60:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5724:60:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;5719:3:6;;;;;-1:-1:-1;5687:97:6;;-1:-1:-1;5687:97:6;;5789:6;-1:-1:-1;;;;;5789:24:6;;5814:10;5789:36;;;;;-1:-1:-1;;;5789:36:6;;;;;;;-1:-1:-1;;;;;5789:36:6;-1:-1:-1;;;;;5789:36:6;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5789:36:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5789:36:6;;;;5829:10;-1:-1:-1;;;;;5829:32:6;;:34;;;;;-1:-1:-1;;;5829:34:6;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5829:34:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;5867:40:6;;;;;;5896:10;5867:40;;;;;;-1:-1:-1;;;;;5867:28:6;;;-1:-1:-1;5867:28:6;;-1:-1:-1;5867:40:6;;;;;-1:-1:-1;;5867:40:6;;;;;;;-1:-1:-1;5867:28:6;:40;;;5:2:-1;;;;30:1;27;20:12;5:2;5867:40:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5867:40:6;;;;5912:32;5933:10;5912:20;:32::i;:::-;-1:-1:-1;5955:10:6;;5068:901;-1:-1:-1;;;;;;5068:901:6:o;1250:38:60:-;;;;;;;;;:::o;10115:171:6:-;10180:4;10220:34;-1:-1:-1;;;;;;;;;;;10220:9:6;:34::i;:::-;-1:-1:-1;;;;;10197:77:6;;10275:6;10197:85;;;;;-1:-1:-1;;;10197:85:6;;;;;;;-1:-1:-1;;;;;10197:85:6;-1:-1:-1;;;;;10197:85:6;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10197:85:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10197:85:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;10197:85:6;;10115:171;-1:-1:-1;;10115:171:6:o;22209:96::-;22268:4;22285:16;22294:6;22285:8;:16::i;10515:224::-;10603:7;10646:34;-1:-1:-1;;;;;;;;;;;10646:9:6;:34::i;:::-;-1:-1:-1;;;;;10623:93:6;;10717:17;10623:112;;;;;-1:-1:-1;;;10623:112:6;;;;;;;-1:-1:-1;;;;;10623:112:6;-1:-1:-1;;;;;10623:112:6;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;2080:832:60;2281:29;2183:5;;-1:-1:-1;;;;;2183:5:60;2169:10;:19;;:50;;-1:-1:-1;2193:26:60;;;;;;;2192:27;2169:50;2161:80;;;;;;;-1:-1:-1;;;;;2161:80:60;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2161:80:60;;;;;;;;;;;;;;;2331:28;2341:17;2331:9;:28::i;:::-;2465:8;;2281:79;;-1:-1:-1;;;;;;2442:32:60;;;2465:8;;2442:32;;;;:61;;-1:-1:-1;;;;;;2478:25:60;;;;2442:61;2434:94;;;;;;;-1:-1:-1;;;;;2434:94:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;2628:40;;;;;;2650:17;2628:40;;;;;;2680:1;;-1:-1:-1;;;;;2628:21:60;;;;;:40;;;;;;;;;;;;;;;2680:1;2628:21;:40;;;5:2:-1;;;;30:1;27;20:12;5:2;2628:40:60;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2628:40:60;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2628:40:60;-1:-1:-1;;;;;2628:54:60;;;2620:87;;;;;-1:-1:-1;;;;;2620:87:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;2799:8;;;2784:12;:23;;-1:-1:-1;;;;;2799:8:60;;;-1:-1:-1;;2784:23:60;;;;;;;2886:22;;;;;;;;;;;2080:832::o;7358:160:6:-;7414:7;7457:34;-1:-1:-1;;;;;;;;;;;7457:9:6;:34::i;:::-;-1:-1:-1;;;;;7434:72:6;;7507:6;7434:80;;;;;-1:-1:-1;;;7434:80:6;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;319:383:35;531:10;566:104;585:5;592;599:7;608:9;619:17;638:14;654:15;566:18;:104::i;:::-;547:16;:123;;-1:-1:-1;;547:123:35;-1:-1:-1;;;;;547:123:35;;;;;;;;682:16;;319:383;-1:-1:-1;;;;;;;;319:383:35:o;9451:160:6:-;9504:9;9549:34;-1:-1:-1;;;;;;;;;;;9549:9:6;:34::i;:::-;-1:-1:-1;;;;;9526:79:6;;:81;;;;;-1:-1:-1;;;9526:81:6;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9526:81:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9526:81:6;;;;;;39:16:-1;36:1;17:17;2:54;101:4;9526:81:6;80:15:-1;;;-1:-1;;76:31;65:43;;120:4;113:20;13:2;5:11;;2:2;;;29:1;26;19:12;2:2;9526:81:6;;;;;;20:11:-1;15:3;12:20;9:2;;;45:1;42;35:12;9:2;64:21;;126:4;117:14;;142:31;;;139:2;;;186:1;183;176:12;139:2;224:3;218:10;339:9;333:2;319:12;315:21;297:16;293:44;290:59;268:11;254:12;251:29;239:119;236:2;;;371:1;368;361:12;236:2;-1:-1;9526:81:6;;-1:-1:-1;;;;;9451:160:6;:::o;11449:238::-;11548:7;11591:34;-1:-1:-1;;;;;;;;;;;11591:9:6;:34::i;:::-;-1:-1:-1;;;;;11568:88:6;;11657:17;11676:6;11568:115;;;;;-1:-1:-1;;;11568:115:6;;;;;;;-1:-1:-1;;;;;11568:115:6;-1:-1:-1;;;;;11568:115:6;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11568:115:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11568:115:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11568:115:6;;11449:238;-1:-1:-1;;;11449:238:6:o;12452:278::-;12525:9;12540:27;12610:9;12584:8;:15;12570:30;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;136:17;;-1:-1;12570:30:6;;12540:60;;12622:1;12610:13;;12605:99;12629:8;:15;12625:1;:19;12605:99;;;12684:8;12693:1;12684:11;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12667:35:6;;:37;;;;;-1:-1:-1;;;12667:37:6;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12667:37:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12667:37:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12667:37:6;12651:13;;:10;;12662:1;;12651:13;;;;;;-1:-1:-1;;;;;12651:53:6;;;:13;;;;;;;;;;:53;12646:3;;12605:99;;;-1:-1:-1;12716:10:6;12452:278;-1:-1:-1;;12452:278:6:o;1165:37:60:-;;;-1:-1:-1;;;;;1165:37:60;;:::o;9165:166:6:-;9222:7;9265:34;-1:-1:-1;;;;;;;;;;;9265:9:6;:34::i;:::-;-1:-1:-1;;;;;9242:83:6;;:85;;;;;-1:-1:-1;;;9242:85:6;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9242:85:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9242:85:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9242:85:6;;-1:-1:-1;9165:166:6;:::o;6106:168::-;575:12:66;:10;:12::i;:::-;6180:28:6;6197:10;6180:16;:28::i;:::-;6172:62;;;;;;;-1:-1:-1;;;;;6172:62:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;6238:32;6259:10;6238:20;:32::i;:::-;6106:168;:::o;23173:174::-;23275:4;23292:51;23317:17;23336:6;23292:24;:51::i;:::-;23285:58;23173:174;-1:-1:-1;;;23173:174:6:o;1159:176:66:-;1219:8;;-1:-1:-1;;;;;1219:8:66;1205:10;:22;1197:52;;;;;-1:-1:-1;;;;;1197:52:66;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1197:52:66;;;;;;;;;;;;;;;1277:8;;;1270:5;;1258:28;;-1:-1:-1;;;;;1277:8:66;;;;1270:5;;;;1258:28;;;1298:8;;;;1290:16;;-1:-1:-1;;1290:16:66;;;-1:-1:-1;;;;;1298:8:66;;1290:16;;;;1310:21;;;1159:176::o;7962:160:6:-;8016:7;8059:34;-1:-1:-1;;;;;;;;;;;8059:9:6;:34::i;:::-;-1:-1:-1;;;;;8036:80:6;;:82;;;;;-1:-1:-1;;;8036:82:6;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;1085:33:60;;;-1:-1:-1;;;;;1085:33:60;;:::o;8236:154:6:-;8286:9;8331:34;-1:-1:-1;;;;;;;;;;;8331:9:6;:34::i;:::-;-1:-1:-1;;;;;8308:76:6;;:78;;;;;-1:-1:-1;;;8308:78:6;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;9757:176:6;9823:7;9866:34;-1:-1:-1;;;;;;;;;;;9866:9:6;:34::i;:::-;-1:-1:-1;;;;;9843:78:6;;9922:6;9843:86;;;;;-1:-1:-1;;;9843:86:6;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;157:20:66;;;-1:-1:-1;;;;;157:20:66;;:::o;13323:778:6:-;13409:4;13419:25;13483:34;13560:30;13686:9;13734:24;13447:10;-1:-1:-1;;;;;13447:30:6;;:32;;;;;-1:-1:-1;;;13447:32:6;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13447:32:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13447:32:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13447:32:6;13520:36;;;13419:60;;;;13520:36;;;13447:32;13520:36;;;;;;;;;13419:60;-1:-1:-1;13419:60:6;13520:36;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;136:17;;-1:-1;13520:36:6;;13483:73;;13606:17;13593:31;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;136:17;;-1:-1;13593:31:6;;13560:64;;13698:1;13686:13;;13681:217;13705:17;13701:1;:21;13681:217;;;13761:10;-1:-1:-1;;;;;13761:26:6;;13788:1;13761:29;;;;;-1:-1:-1;;;13761:29:6;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13761:29:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13761:29:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13761:29:6;13795:16;;13761:29;;-1:-1:-1;13761:29:6;;13795:13;;13809:1;;13795:16;;;;;;-1:-1:-1;;;;;13795:31:6;;;:16;;;;;;;;;;:31;13851:42;13868:10;13880:12;13851:16;:42::i;:::-;13831:14;13846:1;13831:17;;;;;;;;;;:62;;;;:17;;;;;;;;;;:62;13724:3;;;;;13681:217;;;14095:1;-1:-1:-1;;;;;13991:106:6;:83;14016:10;-1:-1:-1;;;;;14016:24:6;;:26;;;;;-1:-1:-1;;;14016:26:6;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14016:26:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14016:26:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;14016:26:6;14044:13;14059:14;13991:24;:83::i;:::-;-1:-1:-1;;;;;13991:106:6;;;;13323:778;-1:-1:-1;;;;;;;13323:778:6:o;12900:181::-;12970:4;13066:10;-1:-1:-1;;;;;13028:49:6;:10;-1:-1:-1;;;;;13028:16:6;;:18;;;;;-1:-1:-1;;;13028:18:6;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13028:18:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13028:18:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13028:18:6;:26;;;;;;;;-1:-1:-1;;;;;13028:24:6;;;;;;:26;;;;;:18;;:26;;;;;;;;;:24;:26;;;5:2:-1;;;;30:1;27;20:12;5:2;13028:26:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13028:26:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13028:26:6;-1:-1:-1;;;;;13028:49:6;;;12900:181;-1:-1:-1;;12900:181:6:o;6526:184::-;6607:5;;-1:-1:-1;;;;;6607:5:6;6593:10;:19;;:52;;;6617:28;6634:10;6617:16;:28::i;:::-;6616:29;6593:52;6585:82;;;;;;;-1:-1:-1;;;;;6585:82:6;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;6585:82:6;;;;;;;;;;;;;;;6671:35;6695:10;6671:23;:35::i;22035:101::-;22095:7;22115:17;22125:6;22115:9;:17::i;22400:165::-;22492:7;22512:49;22543:17;22512:30;:49::i;8530:170::-;8593:7;8636:34;-1:-1:-1;;;;;;;;;;;8636:9:6;:34::i;:::-;-1:-1:-1;;;;;8613:75:6;;8689:6;8613:83;;;;;-1:-1:-1;;;8613:83:6;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;2974:119:60;575:12:66;:10;:12::i;:::-;3077::60;;3066:8;:23;;-1:-1:-1;;3066:23:60;-1:-1:-1;;;;;3077:12:60;;;3066:23;;;;;;2974:119::o;11965:233:6:-;12063:4;12103:34;-1:-1:-1;;;;;;;;;;;12103:9:6;:34::i;:::-;12080:114;;;;;;-1:-1:-1;;;;;12080:114:6;;;;;;;;;;;;;;;;:87;;;;;;;:114;;;;;;;;;;;;;;;-1:-1:-1;12080:87:6;:114;;;5:2:-1;;;;30:1;27;20:12;23666:232:6;23804:16;23834:60;23859:1;23862:14;23878:15;23834:24;:60::i;6822:150::-;6869:7;6912:34;-1:-1:-1;;;;;;;;;;;6912:9:6;:34::i;:::-;-1:-1:-1;;;;;6889:77:6;;:79;;;;;-1:-1:-1;;;6889:79:6;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;180:23:66;;;-1:-1:-1;;;;;180:23:66;;:::o;22905:179:6:-;23008:7;23028:52;23054:17;23073:6;23028:25;:52::i;7689:155::-;7744:4;7784:34;-1:-1:-1;;;;;;;;;;;7784:9:6;:34::i;:::-;-1:-1:-1;;;;;7761:71:6;;7833:6;7761:79;;;;;-1:-1:-1;;;7761:79:6;;;;;;;-1:-1:-1;;;;;7761:79:6;-1:-1:-1;;;;;7761:79:6;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;21710:91:6;21761:7;21781:16;:14;:16::i;8876:165::-;8938:4;8978:34;-1:-1:-1;;;;;;;;;;;8978:9:6;:34::i;:::-;-1:-1:-1;;;;;8955:74:6;;9030:6;8955:82;;;;;-1:-1:-1;;;8955:82:6;;;;;;;-1:-1:-1;;;;;8955:82:6;-1:-1:-1;;;;;8955:82:6;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;7080:144:6;7123:9;7168:34;-1:-1:-1;;;;;;;;;;;7168:9:6;:34::i;:::-;-1:-1:-1;;;;;7145:73:6;;:75;;;;;-1:-1:-1;;;7145:75:6;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;945:140:66;575:12;:10;:12::i;:::-;1033:5;;-1:-1:-1;;;;;1020:18:66;;;1033:5;;1020:18;;1012:45;;;;;-1:-1:-1;;;;;1012:45:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;1061:8;:20;;-1:-1:-1;;1061:20:66;-1:-1:-1;;;;;1061:20:66;;;;;;;;;;945:140::o;22656:159:6:-;22744:9;22766:45;22793:17;22766:26;:45::i;642:93:66:-;704:5;;-1:-1:-1;;;;;704:5:66;690:10;:19;682:49;;;;;-1:-1:-1;;;;;682:49:66;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;682:49:66;;;;;;;;;;;;;;;642:93::o;3647:122:60:-;3732:8;;:33;;;;;;;;;;;;;;3712:7;;-1:-1:-1;;;;;3732:8:60;;:18;;:33;;;;;;;;;;;;;;3712:7;3732:8;:33;;;5:2:-1;;;;30:1;27;20:12;19307:823:6;19404:9;19426:44;19535:22;19639:13;19745:9;19797:35;19496:34;-1:-1:-1;;;;;;;;;;;19496:9:6;:34::i;:::-;19426:105;;19560:21;-1:-1:-1;;;;;19560:56:6;;19617:14;19632:1;19617:17;;;;;;;;;;;;;;;;;;19560:75;;;;;-1:-1:-1;;;19560:75:6;;;;;;;-1:-1:-1;;;;;19560:75:6;-1:-1:-1;;;;;19560:75:6;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19560:75:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;19560:75:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;19560:75:6;;-1:-1:-1;19655:1:6;;-1:-1:-1;19757:1:6;;-1:-1:-1;19740:300:6;19764:14;:21;19760:1;:25;19740:300;;;19835:21;-1:-1:-1;;;;;19835:56:6;;19892:14;19907:1;19892:17;;;;;;;;;;;;;;;;;;19835:75;;;;;-1:-1:-1;;;19835:75:6;;;;;;;-1:-1:-1;;;;;19835:75:6;-1:-1:-1;;;;;19835:75:6;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19835:75:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;19835:75:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;19835:75:6;;-1:-1:-1;19919:44:6;;;19915:121;;;19988:27;19971:44;;20029:1;20021:9;;19915:121;19787:3;;;;;19740:300;;;20051:21;-1:-1:-1;;;;;20051:52:6;;20104:14;20119:5;20104:21;;;;;;;;;;;;;;;;;;20051:75;;;;;-1:-1:-1;;;20051:75:6;;;;;;;-1:-1:-1;;;;;20051:75:6;-1:-1:-1;;;;;20051:75:6;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;20051:75:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;20051:75:6;;;;;;39:16:-1;36:1;17:17;2:54;101:4;20051:75:6;80:15:-1;;;-1:-1;;76:31;65:43;;120:4;113:20;13:2;5:11;;2:2;;;29:1;26;19:12;2:2;20051:75:6;;;;;;20:11:-1;15:3;12:20;9:2;;;45:1;42;35:12;9:2;64:21;;126:4;117:14;;142:31;;;139:2;;;186:1;183;176:12;139:2;224:3;218:10;339:9;333:2;319:12;315:21;297:16;293:44;290:59;268:11;254:12;251:29;239:119;236:2;;;371:1;368;361:12;236:2;-1:-1;20051:75:6;;19307:823;-1:-1:-1;;;;;;;;;;;19307:823:6:o;20133:495::-;20312:4;20465:9;20335:10;-1:-1:-1;;;;;20335:24:6;;:26;;;;;-1:-1:-1;;;20335:26:6;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;20335:26:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;20335:26:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;20335:26:6;20326:35;;;;;;;20322:53;;20370:5;20363:12;;;;20322:53;20409:10;-1:-1:-1;;;;;20409:30:6;;:32;;;;;-1:-1:-1;;;20409:32:6;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;20409:32:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;20409:32:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;20409:32:6;20384:21;;:57;;;;;20380:75;;20450:5;20443:12;;;;20380:75;-1:-1:-1;20477:1:6;20460:149;20484:14;:21;20480:1;:25;20460:149;;;20543:47;20560:10;20572:14;20587:1;20572:17;;;;;;;;;;;;;;;;;;20543:16;:47::i;:::-;20521:69;;:15;20537:1;20521:18;;;;;;;;;;;;;;;;;;;:69;;;20517:87;;20599:5;20592:12;;;;20517:87;20507:3;;20460:149;;;20620:4;20613:11;;20133:495;;;;;;;;:::o;17920:680::-;17985:44;18094:23;18154:25;18472:9;18055:34;-1:-1:-1;;;;;;;;;;;18055:9:6;:34::i;:::-;17985:105;;18131:10;-1:-1:-1;;;;;18120:28:6;;:30;;;;;-1:-1:-1;;;18120:30:6;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18120:30:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;18120:30:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;18120:30:6;18182:32;;;;;;;;18120:30;;-1:-1:-1;;;;;;18182:30:6;;;;;:32;;;;;18120:30;;18182:32;;;;;;;;;:30;:32;;;5:2:-1;;;;30:1;27;20:12;5:2;18182:32:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;18182:32:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;18182:32:6;18154:60;;;-1:-1:-1;18249:40:6;18259:21;18282:6;18249:9;:40::i;:::-;18317:1;18297:17;:21;18293:141;;;18320:47;18337:21;18360:6;18320:16;:47::i;:::-;18293:141;;;18376:58;18396:21;18419:6;18427;18376:19;:58::i;:::-;-1:-1:-1;18484:1:6;18467:129;18491:17;18487:1;:21;18467:129;;;18515:81;18535:21;18558:10;-1:-1:-1;;;;;18558:26:6;;18585:1;18558:29;;;;;-1:-1:-1;;;18558:29:6;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18558:29:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;18558:29:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;18558:29:6;18589:6;18515:19;:81::i;:::-;18510:3;;18467:129;;;17920:680;;;;;:::o;3798:902::-;4010:10;4026:14;4260:25;4339:23;4441:20;4043:14;:21;4026:38;;4086:15;:22;4076:6;:32;4068:65;;;;;;;-1:-1:-1;;;;;4068:65:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;4230:1;4145:64;4170:5;4177:14;4193:15;4145:24;:64::i;:::-;-1:-1:-1;;;;;4145:87:6;;4137:118;;;;;-1:-1:-1;;;;;4137:118:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;4306:28;4316:17;4306:9;:28::i;:::-;4260:75;;4382:7;-1:-1:-1;;;;;4382:20:6;;4403:5;4410;4417:7;4426:9;4382:54;;;;;-1:-1:-1;;;4382:54:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;4382:54:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4382:54:6;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;4382:54:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4382:54:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4382:54:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4382:54:6;;;;;;;;;;;;;;;;4339:98;;4475:7;-1:-1:-1;;;;;4475:23:6;;4499:5;4506:6;4514:8;;;;;;;;;-1:-1:-1;;;;;4514:8:6;4524:17;4475:67;;;;;-1:-1:-1;;;4475:67:6;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4475:67:6;-1:-1:-1;;;;;4475:67:6;;;;;;-1:-1:-1;;;;;4475:67:6;-1:-1:-1;;;;;4475:67:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4475:67:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4475:67:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4475:67:6;-1:-1:-1;;;;;4643:19:6;;;;;;:8;4475:67;4643:19;;;;:32;;-1:-1:-1;;4643:32:6;4665:10;4643:32;;;4475:67;;-1:-1:-1;;;;;;;;;;;;3798:902:6:o;21001:630::-;21092:6;21104:21;;:::i;:::-;20689:32;;;;;;;;;;;;;;;;-1:-1:-1;;;;;21149:63:6;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;21149:63:6;;;;;;;25:18:-1;;61:17;;21149:63:6;182:15:-1;21149:63:6;;;;179:29:-1;;;;160:49;;21416:11:6;;21149:63;;20689:32;21502:3;;21288:10;21262:3;21246:306;21566:7;21559:15;21556:2;;;21591:1;21588;21581:12;21556:2;-1:-1:-1;;21620:6:6;;;;;-1:-1:-1;;;21001:630:6:o;18603:701::-;18671:44;18780:23;18840:25;19173:9;18741:34;-1:-1:-1;;;;;;;;;;;18741:9:6;:34::i;:::-;18671:105;;18817:10;-1:-1:-1;;;;;18806:28:6;;:30;;;;;-1:-1:-1;;;18806:30:6;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18806:30:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;18806:30:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;18806:30:6;18868:32;;;;;;;;18806:30;;-1:-1:-1;;;;;;18868:30:6;;;;;:32;;;;;18806:30;;18868:32;;;;;;;;;:30;:32;;;5:2:-1;;;;30:1;27;20:12;5:2;18868:32:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;18868:32:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;18868:32:6;18840:60;;;-1:-1:-1;18938:43:6;18951:21;18974:6;18938:12;:43::i;:::-;19009:1;18989:17;:21;18985:147;;;19012:50;19032:21;19055:6;19012:19;:50::i;:::-;18985:147;;;19071:61;19094:21;19117:6;19125;19071:22;:61::i;:::-;-1:-1:-1;19185:1:6;19168:132;19192:17;19188:1;:21;19168:132;;;19216:84;19239:21;19262:10;-1:-1:-1;;;;;19262:26:6;;19289:1;19262:29;;;;;-1:-1:-1;;;19262:29:6;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19262:29:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;19262:29:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;19262:29:6;19293:6;19216:22;:84::i;:::-;19211:3;;19168:132;;15476:216;15572:22;-1:-1:-1;;;;;15572:36:6;;15609:7;15572:45;;;;;-1:-1:-1;;;15572:45:6;;;;;;;-1:-1:-1;;;;;15572:45:6;-1:-1:-1;;;;;15572:45:6;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15572:45:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;15626:29:6;;-1:-1:-1;;;;;15626:29:6;;;-1:-1:-1;15626:29:6;;-1:-1:-1;15626:29:6;;;15664:24;;-1:-1:-1;;;;;15664:24:6;;;;;;;;15476:216;;:::o;16262:212::-;16372:22;-1:-1:-1;;;;;16372:39:6;;16412:14;16372:55;;;;;-1:-1:-1;;;16372:55:6;;;;;;;-1:-1:-1;;;;;16372:55:6;-1:-1:-1;;;;;16372:55:6;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16372:55:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;16436:34:6;;-1:-1:-1;;;;;16436:34:6;;;-1:-1:-1;16436:34:6;;-1:-1:-1;16436:34:6;;;16262:212;;:::o;17113:274::-;17255:70;;;;;;-1:-1:-1;;;;;17255:70:6;;;;;;;;;;;;;;;;:42;;;;;;:70;;;;;-1:-1:-1;;17255:70:6;;;;;;;;-1:-1:-1;17255:42:6;:70;;;5:2:-1;;;;30:1;27;20:12;5:2;17255:70:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;17334:49:6;;-1:-1:-1;;;;;17334:49:6;;;;-1:-1:-1;17334:49:6;;;-1:-1:-1;17334:49:6;;;;;17113:274;;;:::o;15865:226::-;15964:22;-1:-1:-1;;;;;15964:39:6;;16004:7;15964:48;;;;;-1:-1:-1;;;15964:48:6;;;;;;;-1:-1:-1;;;;;15964:48:6;-1:-1:-1;;;;;15964:48:6;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15964:48:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;16021:31:6;;-1:-1:-1;;;;;16021:31:6;;;-1:-1:-1;16021:31:6;;-1:-1:-1;16021:31:6;;;16061:26;;-1:-1:-1;;;;;16061:26:6;;;;;;;;15865:226;;:::o;16650:220::-;16763:22;-1:-1:-1;;;;;16763:42:6;;16806:14;16763:58;;;;;-1:-1:-1;;;16763:58:6;;;;;;;-1:-1:-1;;;;;16763:58:6;-1:-1:-1;;;;;16763:58:6;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16763:58:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;16830:36:6;;-1:-1:-1;;;;;16830:36:6;;;-1:-1:-1;16830:36:6;;-1:-1:-1;16830:36:6;;;16650:220;;:::o;17635:282::-;17780:73;;;;;;-1:-1:-1;;;;;17780:73:6;;;;;;;;;;;;;;;;:45;;;;;;:73;;;;;-1:-1:-1;;17780:73:6;;;;;;;;-1:-1:-1;17780:45:6;:73;;;5:2:-1;;;;30:1;27;20:12;5:2;17780:73:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;17862:51:6;;-1:-1:-1;;;;;17862:51:6;;;;-1:-1:-1;17862:51:6;;;-1:-1:-1;17862:51:6;;;;;17635:282;;;:::o;144:560:35:-;;;;;;;;;;;;;;;105:10:-1;144:560:35;88:34:-1;-1:-1;144:560:35;;;-1:-1:-1;;144:560:35:o" + }, + "methodIdentifiers": { + "acceptOwnership()": "79ba5097", + "addConverter(address)": "6ce1c4dc", + "createdConverter()": "1814f2d2", + "getAnchor(uint256)": "4c7df18f", + "getAnchorCount()": "d3182bed", + "getAnchors()": "effb3c6e", + "getConvertersByAnchors(address[])": "610c0b05", + "getConvertersBySmartTokens(address[])": "1f8e2620", + "getConvertibleToken(uint256)": "865cf194", + "getConvertibleTokenAnchor(address,uint256)": "603f51e4", + "getConvertibleTokenAnchorCount(address)": "49c5f32b", + "getConvertibleTokenAnchors(address)": "11839064", + "getConvertibleTokenCount()": "69be4784", + "getConvertibleTokenSmartToken(address,uint256)": "d6c4b5b2", + "getConvertibleTokenSmartTokenCount(address)": "a43d5e94", + "getConvertibleTokenSmartTokens(address)": "f4fb86c0", + "getConvertibleTokens()": "5f1b50fe", + "getLiquidityPool(uint256)": "a74498aa", + "getLiquidityPoolByConfig(uint16,address[],uint32[])": "1d3fccd5", + "getLiquidityPoolByReserveConfig(address[],uint32[])": "c22b82f0", + "getLiquidityPoolCount()": "7a5f0ffd", + "getLiquidityPools()": "7f45c4c3", + "getSmartToken(uint256)": "a109d214", + "getSmartTokenCount()": "e571049b", + "getSmartTokens()": "04ceaf41", + "isAnchor(address)": "d8cced2a", + "isConverterValid(address)": "954254f5", + "isConvertibleToken(address)": "3ab8857c", + "isConvertibleTokenAnchor(address,address)": "b4c4197a", + "isConvertibleTokenSmartToken(address,address)": "725b8786", + "isLiquidityPool(address)": "e85455d7", + "isSimilarLiquidityPoolRegistered(address)": "8f1d0e1a", + "isSmartToken(address)": "4123ef60", + "newConverter(uint16,string,string,uint8,uint32,address[],uint32[])": "5a0a6618", + "newOwner()": "d4ee1d90", + "onlyOwnerCanUpdateRegistry()": "2fe8a6ad", + "owner()": "8da5cb5b", + "prevRegistry()": "61cd756e", + "registry()": "7b103999", + "removeConverter(address)": "9e76a007", + "restoreRegistry()": "b4a176d3", + "restrictRegistryUpdate(bool)": "024c7ec7", + "setupConverter(uint16,address[],uint32[],address)": "295d2a21", + "transferOwnership(address)": "f2fde38b", + "updateRegistry()": "49d10b64" + } + }, + "userdoc": { + "methods": {} + } + } + }, + "solidity/contracts/helpers/TestLiquidityPoolConverter.sol": { + "TestLiquidityPoolConverter": { + "abi": [ + { + "constant": false, + "inputs": [ + { + "name": "_onlyOwnerCanUpdateRegistry", + "type": "bool" + } + ], + "name": "restrictRegistryUpdate", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "reserveRatio", + "outputs": [ + { + "name": "", + "type": "uint32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_address", + "type": "address" + } + ], + "name": "connectors", + "outputs": [ + { + "name": "", + "type": "uint256" + }, + { + "name": "", + "type": "uint32" + }, + { + "name": "", + "type": "bool" + }, + { + "name": "", + "type": "bool" + }, + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "hasETHReserve", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_index", + "type": "uint256" + } + ], + "name": "connectorTokens", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_reserveToken", + "type": "address" + } + ], + "name": "reserveWeight", + "outputs": [ + { + "name": "", + "type": "uint32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_sourceToken", + "type": "address" + }, + { + "name": "_targetToken", + "type": "address" + }, + { + "name": "_amount", + "type": "uint256" + } + ], + "name": "getReturn", + "outputs": [ + { + "name": "", + "type": "uint256" + }, + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_newOwner", + "type": "address" + } + ], + "name": "transferTokenOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "isActive", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "onlyOwnerCanUpdateRegistry", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "acceptTokenOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_token", + "type": "address" + }, + { + "name": "_to", + "type": "address" + }, + { + "name": "_amount", + "type": "uint256" + } + ], + "name": "withdrawFromAnchor", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "converterType", + "outputs": [ + { + "name": "", + "type": "uint16" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_amount", + "type": "uint256" + } + ], + "name": "liquidate", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "updateRegistry", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_whitelist", + "type": "address" + } + ], + "name": "setConversionWhitelist", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "version", + "outputs": [ + { + "name": "", + "type": "uint16" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "conversionFee", + "outputs": [ + { + "name": "", + "type": "uint32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_token", + "type": "address" + }, + { + "name": "_to", + "type": "address" + }, + { + "name": "_amount", + "type": "uint256" + } + ], + "name": "withdrawTokens", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "prevRegistry", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_newOwner", + "type": "address" + } + ], + "name": "transferAnchorOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_to", + "type": "address" + } + ], + "name": "withdrawETH", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_token", + "type": "address" + }, + { + "name": "_weight", + "type": "uint32" + } + ], + "name": "addReserve", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_x", + "type": "uint256" + } + ], + "name": "decimalLength", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_etherToken", + "type": "address" + } + ], + "name": "setEtherToken", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "connectorTokenCount", + "outputs": [ + { + "name": "", + "type": "uint16" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "acceptOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "registry", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_reserveTokens", + "type": "address[]" + }, + { + "name": "_reserveAmounts", + "type": "uint256[]" + }, + { + "name": "_minReturn", + "type": "uint256" + } + ], + "name": "addLiquidity", + "outputs": [], + "payable": true, + "stateMutability": "payable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "owner", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "maxConversionFee", + "outputs": [ + { + "name": "", + "type": "uint32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "reserveTokenCount", + "outputs": [ + { + "name": "", + "type": "uint16" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_values", + "type": "uint256[]" + } + ], + "name": "geometricMean", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_sourceToken", + "type": "address" + }, + { + "name": "_targetToken", + "type": "address" + }, + { + "name": "_amount", + "type": "uint256" + } + ], + "name": "targetAmountAndFee", + "outputs": [ + { + "name": "", + "type": "uint256" + }, + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_amount", + "type": "uint256" + }, + { + "name": "_reserveTokens", + "type": "address[]" + }, + { + "name": "_reserveMinReturnAmounts", + "type": "uint256[]" + } + ], + "name": "removeLiquidity", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "restoreRegistry", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_n", + "type": "uint256" + }, + { + "name": "_d", + "type": "uint256" + } + ], + "name": "roundDiv", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "conversionsEnabled", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "conversionWhitelist", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_amount", + "type": "uint256" + } + ], + "name": "fund", + "outputs": [], + "payable": true, + "stateMutability": "payable", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "acceptAnchorOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "", + "type": "uint256" + } + ], + "name": "reserveTokens", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "isV28OrHigher", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "anchor", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "newOwner", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "upgrade", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "", + "type": "address" + } + ], + "name": "reserves", + "outputs": [ + { + "name": "balance", + "type": "uint256" + }, + { + "name": "weight", + "type": "uint32" + }, + { + "name": "deprecated1", + "type": "bool" + }, + { + "name": "deprecated2", + "type": "bool" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_connectorToken", + "type": "address" + } + ], + "name": "getConnectorBalance", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_reserveToken", + "type": "address" + } + ], + "name": "reserveBalance", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_sourceToken", + "type": "address" + }, + { + "name": "_targetToken", + "type": "address" + }, + { + "name": "_amount", + "type": "uint256" + }, + { + "name": "_trader", + "type": "address" + }, + { + "name": "_beneficiary", + "type": "address" + } + ], + "name": "convert", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": true, + "stateMutability": "payable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_conversionFee", + "type": "uint32" + } + ], + "name": "setConversionFee", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "token", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "name": "_token", + "type": "address" + }, + { + "name": "_registry", + "type": "address" + }, + { + "name": "_maxConversionFee", + "type": "uint32" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "payable": true, + "stateMutability": "payable", + "type": "fallback" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "_connectorToken", + "type": "address" + }, + { + "indexed": false, + "name": "_tokenSupply", + "type": "uint256" + }, + { + "indexed": false, + "name": "_connectorBalance", + "type": "uint256" + }, + { + "indexed": false, + "name": "_connectorWeight", + "type": "uint32" + } + ], + "name": "PriceDataUpdate", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "_provider", + "type": "address" + }, + { + "indexed": true, + "name": "_reserveToken", + "type": "address" + }, + { + "indexed": false, + "name": "_amount", + "type": "uint256" + }, + { + "indexed": false, + "name": "_newBalance", + "type": "uint256" + }, + { + "indexed": false, + "name": "_newSupply", + "type": "uint256" + } + ], + "name": "LiquidityAdded", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "_provider", + "type": "address" + }, + { + "indexed": true, + "name": "_reserveToken", + "type": "address" + }, + { + "indexed": false, + "name": "_amount", + "type": "uint256" + }, + { + "indexed": false, + "name": "_newBalance", + "type": "uint256" + }, + { + "indexed": false, + "name": "_newSupply", + "type": "uint256" + } + ], + "name": "LiquidityRemoved", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "_type", + "type": "uint16" + }, + { + "indexed": true, + "name": "_anchor", + "type": "address" + }, + { + "indexed": true, + "name": "_activated", + "type": "bool" + } + ], + "name": "Activation", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "_fromToken", + "type": "address" + }, + { + "indexed": true, + "name": "_toToken", + "type": "address" + }, + { + "indexed": true, + "name": "_trader", + "type": "address" + }, + { + "indexed": false, + "name": "_amount", + "type": "uint256" + }, + { + "indexed": false, + "name": "_return", + "type": "uint256" + }, + { + "indexed": false, + "name": "_conversionFee", + "type": "int256" + } + ], + "name": "Conversion", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "_token1", + "type": "address" + }, + { + "indexed": true, + "name": "_token2", + "type": "address" + }, + { + "indexed": false, + "name": "_rateN", + "type": "uint256" + }, + { + "indexed": false, + "name": "_rateD", + "type": "uint256" + } + ], + "name": "TokenRateUpdate", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "_prevFee", + "type": "uint32" + }, + { + "indexed": false, + "name": "_newFee", + "type": "uint32" + } + ], + "name": "ConversionFeeUpdate", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "_prevOwner", + "type": "address" + }, + { + "indexed": true, + "name": "_newOwner", + "type": "address" + } + ], + "name": "OwnerUpdate", + "type": "event" + } + ], + "devdoc": { + "methods": { + "acceptAnchorOwnership()": { + "details": "accepts ownership of the anchor after an ownership transfer\r also activates the converter\r can only be called by the contract owner\r note that prior to version 28, you should use 'acceptTokenOwnership' instead\r" + }, + "acceptOwnership()": { + "details": "used by a new owner to accept an ownership transfer" + }, + "acceptTokenOwnership()": { + "details": "deprecated, backward compatibility" + }, + "addLiquidity(address[],uint256[],uint256)": { + "details": "increases the pool's liquidity and mints new shares in the pool to the caller\r note that prior to version 28, you should use 'fund' instead\r ", + "params": { + "_minReturn": "token minimum return-amount\r", + "_reserveAmounts": "amount of each reserve token\r", + "_reserveTokens": "address of each reserve token\r" + } + }, + "addReserve(address,uint32)": { + "details": "defines a new reserve token for the converter can only be called by the owner while the converter is inactive", + "params": { + "_token": "address of the reserve token", + "_weight": "reserve weight, represented in ppm, 1-1000000" + } + }, + "connectorTokenCount()": { + "details": "deprecated, backward compatibility" + }, + "connectorTokens(uint256)": { + "details": "deprecated, backward compatibility" + }, + "connectors(address)": { + "details": "deprecated, backward compatibility" + }, + "convert(address,address,uint256,address,address)": { + "details": "converts a specific amount of source tokens to target tokens can only be called by the SovrynSwap network contract", + "params": { + "_amount": "amount of tokens to convert (in units of the source token)", + "_beneficiary": "wallet to receive the conversion result", + "_sourceToken": "source ERC20 token", + "_targetToken": "target ERC20 token", + "_trader": "address of the caller who executed the conversion" + }, + "return": "amount of tokens received (in units of the target token)" + }, + "converterType()": { + "details": "returns the converter type\r ", + "return": "see the converter types in the the main contract doc\r" + }, + "decimalLength(uint256)": { + "details": "calculates the number of decimal digits in a given value\r ", + "params": { + "_x": "value (assumed positive)\r" + }, + "return": "the number of decimal digits in the given value\r" + }, + "fund(uint256)": { + "details": "increases the pool's liquidity and mints new shares in the pool to the caller\r for example, if the caller increases the supply by 10%,\r then it will cost an amount equal to 10% of each reserve token balance\r note that starting from version 28, you should use 'addLiquidity' instead\r ", + "params": { + "_amount": "amount to increase the supply by (in the pool token)\r" + } + }, + "geometricMean(uint256[])": { + "details": "calculates the average number of decimal digits in a given list of values\r ", + "params": { + "_values": "list of values (each of which assumed positive)\r" + }, + "return": "the average number of decimal digits in the given list of values\r" + }, + "getConnectorBalance(address)": { + "details": "deprecated, backward compatibility" + }, + "getReturn(address,address,uint256)": { + "details": "deprecated, backward compatibility" + }, + "hasETHReserve()": { + "details": "checks whether or not the converter has an ETH reserve", + "return": "true if the converter has an ETH reserve, false otherwise" + }, + "isActive()": { + "details": "returns true if the converter is active, false otherwise", + "return": "true if the converter is active, false otherwise" + }, + "isV28OrHigher()": { + "details": "checks whether or not the converter version is 28 or higher", + "return": "true, since the converter version is 28 or higher" + }, + "liquidate(uint256)": { + "details": "decreases the pool's liquidity and burns the caller's shares in the pool\r for example, if the holder sells 10% of the supply,\r then they will receive 10% of each reserve token balance in return\r note that starting from version 28, you should use 'removeLiquidity' instead\r ", + "params": { + "_amount": "amount to liquidate (in the pool token)\r" + } + }, + "removeLiquidity(uint256,address[],uint256[])": { + "details": "decreases the pool's liquidity and burns the caller's shares in the pool\r note that prior to version 28, you should use 'liquidate' instead\r ", + "params": { + "_amount": "token amount\r", + "_reserveMinReturnAmounts": "minimum return-amount of each reserve token\r", + "_reserveTokens": "address of each reserve token\r" + } + }, + "reserveBalance(address)": { + "details": "returns the reserve's balance note that prior to version 17, you should use 'getConnectorBalance' instead", + "params": { + "_reserveToken": "reserve token contract address" + }, + "return": "reserve balance" + }, + "reserveTokenCount()": { + "details": "returns the number of reserve tokens defined note that prior to version 17, you should use 'connectorTokenCount' instead", + "return": "number of reserve tokens" + }, + "reserveWeight(address)": { + "details": "returns the reserve's weight added in version 28", + "params": { + "_reserveToken": "reserve token contract address" + }, + "return": "reserve weight" + }, + "restoreRegistry()": { + "details": "restores the previous contract-registry" + }, + "restrictRegistryUpdate(bool)": { + "details": "restricts the permission to update the contract-registry", + "params": { + "_onlyOwnerCanUpdateRegistry": "indicates whether or not permission is restricted to owner only" + } + }, + "roundDiv(uint256,uint256)": { + "details": "calculates the nearest integer to a given quotient\r ", + "params": { + "_d": "quotient denominator\r", + "_n": "quotient numerator\r" + }, + "return": "the nearest integer to the given quotient\r" + }, + "setConversionFee(uint32)": { + "details": "updates the current conversion fee can only be called by the contract owner", + "params": { + "_conversionFee": "new conversion fee, represented in ppm" + } + }, + "setConversionWhitelist(address)": { + "details": "allows the owner to update & enable the conversion whitelist contract address when set, only addresses that are whitelisted are actually allowed to use the converter note that the whitelist check is actually done by the SovrynSwapNetwork contract", + "params": { + "_whitelist": "address of a whitelist contract" + } + }, + "targetAmountAndFee(address,address,uint256)": { + "details": "returns the expected target amount of converting one reserve to another along with the fee\r ", + "params": { + "_amount": "amount of tokens received from the user\r ", + "_sourceToken": "contract address of the source reserve token\r", + "_targetToken": "contract address of the target reserve token\r" + }, + "return": "expected target amount\rexpected fee\r" + }, + "token()": { + "details": "deprecated since version 28, backward compatibility - use only for earlier versions" + }, + "transferAnchorOwnership(address)": { + "details": "transfers the anchor ownership the new owner needs to accept the transfer can only be called by the converter upgrder while the upgrader is the owner note that prior to version 28, you should use 'transferAnchorOwnership' instead", + "params": { + "_newOwner": "new token owner" + } + }, + "transferOwnership(address)": { + "details": "allows transferring the contract ownership the new owner still needs to accept the transfer can only be called by the contract owner", + "params": { + "_newOwner": "new contract owner" + } + }, + "transferTokenOwnership(address)": { + "details": "deprecated, backward compatibility" + }, + "updateRegistry()": { + "details": "updates to the new contract-registry" + }, + "upgrade()": { + "details": "upgrades the converter to the latest version can only be called by the owner note that the owner needs to call acceptOwnership on the new converter after the upgrade" + }, + "withdrawETH(address)": { + "details": "withdraws ether can only be called by the owner if the converter is inactive or by upgrader contract can only be called after the upgrader contract has accepted the ownership of this contract can only be called if the converter has an ETH reserve", + "params": { + "_to": "address to send the ETH to" + } + }, + "withdrawFromAnchor(address,address,uint256)": { + "details": "withdraws tokens held by the anchor and sends them to an account can only be called by the owner", + "params": { + "_amount": "amount to withdraw", + "_to": "account to receive the new amount", + "_token": "ERC20 token contract address" + } + }, + "withdrawTokens(address,address,uint256)": { + "details": "withdraws tokens held by the converter and sends them to an account can only be called by the owner note that reserve tokens can only be withdrawn by the owner while the converter is inactive unless the owner is the converter upgrader contract", + "params": { + "_amount": "amount to withdraw", + "_to": "account to receive the new amount", + "_token": "ERC20 token contract address" + } + } + } + }, + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "608060405260016004557fc0829421c1d260bd3cb3e0f06cfe2d52db2ce3150000000000000000000000006009553480156200003a57600080fd5b5060405160608062004bcd83398101604090815281516020830151919092015160008054600160a060020a0319163317905582828282828282828281806200008b816401000000006200013b810204565b5060028054600160a060020a03909216600160a060020a031992831681179091556003805490921617905582620000cb816401000000006200013b810204565b81620000e081640100000000620001b6810204565b505060058054600160a060020a03909416600160a060020a031990941693909317909255506009805463ffffffff9092166401000000000267ffffffff0000000019909216919091179055506200022f975050505050505050565b600160a060020a0381161515620001b357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b50565b620f424063ffffffff82161115620001b357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f4552525f494e56414c49445f434f4e56455253494f4e5f464545000000000000604482015290519081900360640190fd5b61498e806200023f6000396000f3006080604052600436106102635763ffffffff60e060020a600035041663024c7ec781146102ef5780630c7d5cd8146103095780630e53aae91461033757806312c2aca41461038c57806319b64015146103b55780631cfab290146103e95780631e1401f81461040a57806321e6b53d1461044d57806322f3e2d41461046e5780632fe8a6ad1461048357806338a5e01614610498578063395900d4146104ad5780633e8ff43f146104d7578063415f12401461050357806349d10b641461051b5780634af80f0e1461053057806354fd4d5014610551578063579cd3ca146105665780635e35359e1461057b57806361cd756e146105a557806367b6d57c146105ba578063690d8320146105db5780636a49d2c4146105fc5780636aa5332c146106265780636ad419a81461065057806371f52bf31461067157806379ba5097146106865780637b1039991461069b5780637d8916bd146106b05780638da5cb5b1461073357806394c275ad146107485780639b99a8e21461075d578063a60e772414610772578063af94b8d8146107c7578063b127c0a5146107f1578063b4a176d314610884578063bbb7e5d814610899578063bf754558146108b4578063c45d3d92146108c9578063ca1d209d146108de578063cdc91c69146108e9578063d031370b146108fe578063d260529c14610916578063d3fb73b41461092b578063d4ee1d9014610940578063d55ec69714610955578063d66bd5241461096a578063d89595121461098b578063dc8de379146109ac578063e8dc12ff146109cd578063ecbca55d146109f7578063f2fde38b14610a15578063fc0c546a14610a36575b60008051602061490383398151915260005260086020527f353c2eb9e53a4a4a6d45d72082ff2e9dc829d1125618772a83eb0e7f86632c43546601000000000000900460ff1615156102ed576040805160e560020a62461bcd02815260206004820152601360248201526000805160206148a3833981519152604482015290519081900360640190fd5b005b3480156102fb57600080fd5b506102ed6004351515610a4b565b34801561031557600080fd5b5061031e610a93565b6040805163ffffffff9092168252519081900360200190f35b34801561034357600080fd5b50610358600160a060020a0360043516610a9f565b6040805195865263ffffffff9094166020860152911515848401521515606084015215156080830152519081900360a00190f35b34801561039857600080fd5b506103a1610b3a565b604080519115158252519081900360200190f35b3480156103c157600080fd5b506103cd600435610b83565b60408051600160a060020a039092168252519081900360200190f35b3480156103f557600080fd5b5061031e600160a060020a0360043516610baf565b34801561041657600080fd5b50610434600160a060020a0360043581169060243516604435610be1565b6040805192835260208301919091528051918290030190f35b34801561045957600080fd5b506102ed600160a060020a0360043516610bfb565b34801561047a57600080fd5b506103a1610c0f565b34801561048f57600080fd5b506103a1610ca9565b3480156104a457600080fd5b506102ed610cca565b3480156104b957600080fd5b506102ed600160a060020a0360043581169060243516604435610cdc565b3480156104e357600080fd5b506104ec610d77565b6040805161ffff9092168252519081900360200190f35b34801561050f57600080fd5b506102ed600435610d7c565b34801561052757600080fd5b506102ed610fc0565b34801561053c57600080fd5b506102ed600160a060020a036004351661122d565b34801561055d57600080fd5b506104ec61126f565b34801561057257600080fd5b5061031e611274565b34801561058757600080fd5b506102ed600160a060020a036004358116906024351660443561128c565b3480156105b157600080fd5b506103cd611395565b3480156105c657600080fd5b506102ed600160a060020a03600435166113a4565b3480156105e757600080fd5b506102ed600160a060020a0360043516611447565b34801561060857600080fd5b506102ed600160a060020a036004351663ffffffff6024351661154c565b34801561063257600080fd5b5061063e60043561178b565b60408051918252519081900360200190f35b34801561065c57600080fd5b506102ed600160a060020a03600435166117b0565b34801561067d57600080fd5b506104ec6117e6565b34801561069257600080fd5b506102ed6117f5565b3480156106a757600080fd5b506103cd6118b6565b604080516020600480358082013583810280860185019096528085526102ed95369593946024949385019291829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a99890198929750908201955093508392508501908490808284375094975050933594506118c59350505050565b34801561073f57600080fd5b506103cd611bc4565b34801561075457600080fd5b5061031e611bd3565b34801561076957600080fd5b506104ec611be7565b34801561077e57600080fd5b506040805160206004803580820135838102808601850190965280855261063e95369593946024949385019291829185019084908082843750949750611bed9650505050505050565b3480156107d357600080fd5b50610434600160a060020a0360043581169060243516604435611c43565b3480156107fd57600080fd5b506040805160206004602480358281013584810280870186019097528086526102ed96843596369660449591949091019291829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750949750611de89650505050505050565b34801561089057600080fd5b506102ed611f1c565b3480156108a557600080fd5b5061063e600435602435611f55565b3480156108c057600080fd5b506103a1611f6f565b3480156108d557600080fd5b506103cd611f74565b6102ed600435611f83565b3480156108f557600080fd5b506102ed612490565b34801561090a57600080fd5b506103cd6004356124e9565b34801561092257600080fd5b506103a1610d77565b34801561093757600080fd5b506103cd612511565b34801561094c57600080fd5b506103cd612520565b34801561096157600080fd5b506102ed61252f565b34801561097657600080fd5b50610358600160a060020a0360043516612624565b34801561099757600080fd5b5061063e600160a060020a036004351661266a565b3480156109b857600080fd5b5061063e600160a060020a036004351661267b565b61063e600160a060020a0360043581169060243581169060443590606435811690608435166126a4565b348015610a0357600080fd5b506102ed63ffffffff600435166128f7565b348015610a2157600080fd5b506102ed600160a060020a03600435166129ec565b348015610a4257600080fd5b506103cd612a89565b610a53612a98565b60038054911515740100000000000000000000000000000000000000000274ff000000000000000000000000000000000000000019909216919091179055565b60095463ffffffff1681565b6000806000806000610aaf614855565b50505050600160a060020a03929092166000908152600860209081526040808320815160a081018352815480825260019092015463ffffffff811694820185905260ff64010000000082048116151594830194909452650100000000008104841615156060830152660100000000000090049092161515608090920182905295919450919250829190565b60008051602061490383398151915260005260086020527f353c2eb9e53a4a4a6d45d72082ff2e9dc829d1125618772a83eb0e7f86632c43546601000000000000900460ff1690565b6000600782815481101515610b9457fe5b600091825260209091200154600160a060020a031692915050565b600081610bbb81612ae8565b5050600160a060020a031660009081526008602052604090206001015463ffffffff1690565b600080610bef858585611c43565b91509150935093915050565b610c03612a98565b610c0c816113a4565b50565b600030600160a060020a0316600560009054906101000a9004600160a060020a0316600160a060020a0316638da5cb5b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610c6e57600080fd5b505af1158015610c82573d6000803e3d6000fd5b505050506040513d6020811015610c9857600080fd5b5051600160a060020a031614905090565b60035474010000000000000000000000000000000000000000900460ff1681565b610cd2612a98565b610cda612490565b565b610ce4612a98565b600554604080517f5e35359e000000000000000000000000000000000000000000000000000000008152600160a060020a03868116600483015285811660248301526044820185905291519190921691635e35359e91606480830192600092919082900301818387803b158015610d5a57600080fd5b505af1158015610d6e573d6000803e3d6000fd5b50505050505050565b600190565b600060606000610d8a612b55565b600260045560008411610de7576040805160e560020a62461bcd02815260206004820152600f60248201527f4552525f5a45524f5f414d4f554e540000000000000000000000000000000000604482015290519081900360640190fd5b600560009054906101000a9004600160a060020a0316600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610e3a57600080fd5b505af1158015610e4e573d6000803e3d6000fd5b505050506040513d6020811015610e6457600080fd5b5051600554604080517fa24835d1000000000000000000000000000000000000000000000000000000008152336004820152602481018890529051929550600160a060020a039091169163a24835d19160448082019260009290919082900301818387803b158015610ed557600080fd5b505af1158015610ee9573d6000803e3d6000fd5b50505050600780549050604051908082528060200260200182016040528015610f1c578160200160208202803883390190505b509150600090505b8151811015610f4f5760018282815181101515610f3d57fe5b60209081029091010152600101610f24565b610fb56007805480602002602001604051908101604052809291908181526020018280548015610fa857602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311610f8a575b5050505050838587612baf565b505060016004555050565b60008054600160a060020a0316331480610ff5575060035474010000000000000000000000000000000000000000900460ff16155b1515611039576040805160e560020a62461bcd0281526020600482015260116024820152600080516020614943833981519152604482015290519081900360640190fd5b6110627f436f6e7472616374526567697374727900000000000000000000000000000000612e74565b600254909150600160a060020a0380831691161480159061108b5750600160a060020a03811615155b15156110e1576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e56414c49445f5245474953545259000000000000000000000000604482015290519081900360640190fd5b604080517fbb34534c0000000000000000000000000000000000000000000000000000000081527f436f6e747261637452656769737472790000000000000000000000000000000060048201529051600091600160a060020a0384169163bb34534c9160248082019260209290919082900301818787803b15801561116557600080fd5b505af1158015611179573d6000803e3d6000fd5b505050506040513d602081101561118f57600080fd5b5051600160a060020a031614156111f0576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e56414c49445f5245474953545259000000000000000000000000604482015290519081900360640190fd5b6002805460038054600160a060020a0380841673ffffffffffffffffffffffffffffffffffffffff19928316179092559091169216919091179055565b611235612a98565b8061123f81612f0c565b506006805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b602081565b60095468010000000000000000900463ffffffff1681565b6000611296612b55565b60026004556112a3612a98565b6112ba6000805160206148e3833981519152612e74565b600160a060020a0385166000908152600860205260409020600101549091506601000000000000900460ff1615806112f757506112f5610c0f565b155b8061130f5750600054600160a060020a038281169116145b1515611353576040805160e560020a62461bcd0281526020600482015260116024820152600080516020614943833981519152604482015290519081900360640190fd5b61135e848484612f6d565b600160a060020a0384166000908152600860205260409020600101546601000000000000900460ff1615610fb557610fb584612f9e565b600354600160a060020a031681565b6113ac612a98565b6000805160206148e38339815191526113c481613093565b600554604080517ff2fde38b000000000000000000000000000000000000000000000000000000008152600160a060020a0385811660048301529151919092169163f2fde38b91602480830192600092919082900301818387803b15801561142b57600080fd5b505af115801561143f573d6000803e3d6000fd5b505050505050565b6000611451612b55565b600260045561145e612a98565b60008051602061490383398151915261147681612ae8565b61148d6000805160206148e3833981519152612e74565b9150611497610c0f565b15806114b05750600054600160a060020a038381169116145b15156114f4576040805160e560020a62461bcd0281526020600482015260116024820152600080516020614943833981519152604482015290519081900360640190fd5b604051600160a060020a03841690303180156108fc02916000818181858888f1935050505015801561152a573d6000803e3d6000fd5b50611542600080516020614903833981519152612f9e565b5050600160045550565b6000611556612a98565b61155e6130e9565b8261156881613146565b8361157281612f0c565b8361157c816131a6565b600554600160a060020a038781169116148015906115c05750600160a060020a0386166000908152600860205260409020600101546601000000000000900460ff16155b1515611604576040805160e560020a62461bcd02815260206004820152601360248201526000805160206148a3833981519152604482015290519081900360640190fd5b60095463ffffffff908116620f4240038116908616111561166f576040805160e560020a62461bcd02815260206004820152601a60248201527f4552525f494e56414c49445f524553455256455f574549474854000000000000604482015290519081900360640190fd5b61ffff61167a611be7565b61ffff16106116d3576040805160e560020a62461bcd02815260206004820152601960248201527f4552525f494e56414c49445f524553455256455f434f554e5400000000000000604482015290519081900360640190fd5b505050600160a060020a0390921660008181526008602052604081208181556001908101805466ff0000000000001963ffffffff80881663ffffffff1993841617919091166601000000000000179092556007805493840181559093527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688909101805473ffffffffffffffffffffffffffffffffffffffff191690931790925560098054808416909401909216921691909117905550565b600080825b60008111156117a95760019190910190600a9004611790565b5092915050565b60098054600160a060020a039092166c01000000000000000000000000026bffffffffffffffffffffffff909216919091179055565b60006117f0611be7565b905090565b600154600160a060020a03163314611845576040805160e560020a62461bcd0281526020600482015260116024820152600080516020614943833981519152604482015290519081900360640190fd5b60015460008054604051600160a060020a0393841693909116917f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91a3600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b600254600160a060020a031681565b60008060006118d2612b55565b60026004556118df61321b565b6118ea868686613279565b600092505b85518310156119a85785516000805160206149038339815191529087908590811061191657fe5b90602001906020020151600160a060020a0316141561199d5734858481518110151561193e57fe5b602090810290910101511461199d576040805160e560020a62461bcd02815260206004820152601760248201527f4552525f4554485f414d4f554e545f4d49534d41544348000000000000000000604482015290519081900360640190fd5b6001909201916118ef565b6000341115611a4d5760008051602061490383398151915260005260086020527f353c2eb9e53a4a4a6d45d72082ff2e9dc829d1125618772a83eb0e7f86632c43546601000000000000900460ff161515611a4d576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f4e4f5f4554485f524553455256450000000000000000000000000000604482015290519081900360640190fd5b600560009054906101000a9004600160a060020a0316600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015611aa057600080fd5b505af1158015611ab4573d6000803e3d6000fd5b505050506040513d6020811015611aca57600080fd5b50519150611ad9868684613535565b905083811015611b33576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f52455455524e5f544f4f5f4c4f570000000000000000000000000000604482015290519081900360640190fd5b600554604080517f867904b4000000000000000000000000000000000000000000000000000000008152336004820152602481018490529051600160a060020a039092169163867904b49160448082019260009290919082900301818387803b158015611b9f57600080fd5b505af1158015611bb3573d6000803e3d6000fd5b505060016004555050505050505050565b600054600160a060020a031681565b600954640100000000900463ffffffff1681565b60075490565b80516000908190815b81811015611c2a57611c1e8582815181101515611c0f57fe5b9060200190602002015161178b565b90920191600101611bf6565b6001611c368484611f55565b03600a0a95945050505050565b600080600080611c5161321b565b86611c5b81612ae8565b86611c6581612ae8565b600160a060020a038981169089161415611cc9576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f53414d455f534f555243455f54415247455400000000000000000000604482015290519081900360640190fd5b611ce0600080516020614923833981519152612e74565b600160a060020a03166394491fab611cf78b61267b565b600160a060020a038c1660009081526008602052604090206001015463ffffffff16611d228c61267b565b600160a060020a038d16600090815260086020908152604080832060010154815163ffffffff89811660e060020a028252600482019890985295871660248701526044860194909452949092166064840152608483018d9052925160a48084019492939192918390030190829087803b158015611d9e57600080fd5b505af1158015611db2573d6000803e3d6000fd5b505050506040513d6020811015611dc857600080fd5b50519350611dd584613564565b9384900399939850929650505050505050565b6000611df2612b55565b6002600455611dff61321b565b611e0a838386613279565b600560009054906101000a9004600160a060020a0316600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015611e5d57600080fd5b505af1158015611e71573d6000803e3d6000fd5b505050506040513d6020811015611e8757600080fd5b5051600554604080517fa24835d1000000000000000000000000000000000000000000000000000000008152336004820152602481018890529051929350600160a060020a039091169163a24835d19160448082019260009290919082900301818387803b158015611ef857600080fd5b505af1158015611f0c573d6000803e3d6000fd5b50505050610fb583838387612baf565b611f24612a98565b6003546002805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055565b600081600281048401811515611f6757fe5b049392505050565b600181565b600654600160a060020a031681565b600080600080600080600080600080611f9a612b55565b6002600455611fa76135a0565b60008051602061490383398151915260005260086020526000805160206148c383398151915254611fde903463ffffffff6135e216565b6000805160206149038339815191526000908152600860209081526000805160206148c383398151915292909255600554604080517f18160ddd0000000000000000000000000000000000000000000000000000000081529051600160a060020a03909216936318160ddd9360048084019492938390030190829087803b15801561206857600080fd5b505af115801561207c573d6000803e3d6000fd5b505050506040513d602081101561209257600080fd5b505199506120ad600080516020614923833981519152612e74565b6007549099509750600096505b878710156123fa5760078054889081106120d057fe5b9060005260206000200160009054906101000a9004600160a060020a031695506008600087600160a060020a0316600160a060020a0316815260200190815260200160002060000154945088600160a060020a031663ebbb21588b87600960009054906101000a900463ffffffff168f6040518563ffffffff1660e060020a028152600401808581526020018481526020018363ffffffff1663ffffffff168152602001828152602001945050505050602060405180830381600087803b15801561219a57600080fd5b505af11580156121ae573d6000803e3d6000fd5b505050506040513d60208110156121c457600080fd5b50519350600160a060020a038616600080516020614903833981519152141561232657833411156122245760405133903486900380156108fc02916000818181858888f1935050505015801561221e573d6000803e3d6000fd5b50612321565b83341015612321573415612282576040805160e560020a62461bcd02815260206004820152601560248201527f4552525f494e56414c49445f4554485f56414c55450000000000000000000000604482015290519081900360640190fd5b6009546122aa906c010000000000000000000000009004600160a060020a0316333087613642565b6009600c9054906101000a9004600160a060020a0316600160a060020a0316632e1a7d4d856040518263ffffffff1660e060020a02815260040180828152602001915050600060405180830381600087803b15801561230857600080fd5b505af115801561231c573d6000803e3d6000fd5b505050505b612332565b61233286333087613642565b612342858563ffffffff61372a16565b600160a060020a0387166000908152600860205260409020819055925061236f8a8c63ffffffff61372a16565b60408051868152602081018690528082018390529051919350600160a060020a0388169133917f4a1a2a6176e9646d9e3157f7c2ab3c499f18337c0b0828cfb28e0a61de4a11f7919081900360600190a350600160a060020a03851660009081526008602052604090206001015463ffffffff166123ef82878584613787565b6001909601956120ba565b600554604080517f867904b4000000000000000000000000000000000000000000000000000000008152336004820152602481018e90529051600160a060020a039092169163867904b49160448082019260009290919082900301818387803b15801561246657600080fd5b505af115801561247a573d6000803e3d6000fd5b5050600160045550505050505050505050505050565b612498612a98565b6124a06137f6565b600554600190600160a060020a03166124b7610d77565b61ffff167f6b08c2e2c9969e55a647a764db9b554d64dc42f1a704da11a6d5b129ad163f2c60405160405180910390a4565b60078054829081106124f757fe5b600091825260209091200154600160a060020a0316905081565b600554600160a060020a031681565b600154600160a060020a031681565b6000612539612a98565b6125506000805160206148e3833981519152612e74565b600554909150600090600160a060020a031661256a610d77565b61ffff167f6b08c2e2c9969e55a647a764db9b554d64dc42f1a704da11a6d5b129ad163f2c60405160405180910390a46125a3816129ec565b604080517f90f58c96000000000000000000000000000000000000000000000000000000008152602060048201529051600160a060020a038316916390f58c9691602480830192600092919082900301818387803b15801561260457600080fd5b505af1158015612618573d6000803e3d6000fd5b50505050610c0c6117f5565b6008602052600090815260409020805460019091015463ffffffff81169060ff640100000000820481169165010000000000810482169166010000000000009091041685565b60006126758261267b565b92915050565b60008161268781612ae8565b5050600160a060020a031660009081526008602052604090205490565b60006126ae612b55565b60026004557f536f7672796e537761704e6574776f726b0000000000000000000000000000006126dd81613093565b600160a060020a038781169087161415612741576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f53414d455f534f555243455f54415247455400000000000000000000604482015290519081900360640190fd5b600654600160a060020a031615806128845750600654604080517f3af32abf000000000000000000000000000000000000000000000000000000008152600160a060020a03878116600483015291519190921691633af32abf9160248083019260209291908290030181600087803b1580156127bc57600080fd5b505af11580156127d0573d6000803e3d6000fd5b505050506040513d60208110156127e657600080fd5b505180156128845750600654604080517f3af32abf000000000000000000000000000000000000000000000000000000008152600160a060020a03868116600483015291519190921691633af32abf9160248083019260209291908290030181600087803b15801561285757600080fd5b505af115801561286b573d6000803e3d6000fd5b505050506040513d602081101561288157600080fd5b50515b15156128da576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f4e4f545f57484954454c495354454400000000000000000000000000604482015290519081900360640190fd5b6128e78787878787613861565b6001600455979650505050505050565b6128ff612a98565b60095463ffffffff6401000000009091048116908216111561296b576040805160e560020a62461bcd02815260206004820152601a60248201527f4552525f494e56414c49445f434f4e56455253494f4e5f464545000000000000604482015290519081900360640190fd5b6009546040805163ffffffff6801000000000000000090930483168152918316602083015280517f81cd2ffb37dd237c0e4e2a3de5265fcf9deb43d3e7801e80db9f1ccfba7ee6009281900390910190a16009805463ffffffff90921668010000000000000000026bffffffff000000000000000019909216919091179055565b6129f4612a98565b600054600160a060020a0382811691161415612a5a576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f53414d455f4f574e4552000000000000000000000000000000000000604482015290519081900360640190fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600554600160a060020a031690565b600054600160a060020a03163314610cda576040805160e560020a62461bcd0281526020600482015260116024820152600080516020614943833981519152604482015290519081900360640190fd5b600160a060020a0381166000908152600860205260409020600101546601000000000000900460ff161515610c0c576040805160e560020a62461bcd02815260206004820152601360248201526000805160206148a3833981519152604482015290519081900360640190fd5b600454600114610cda576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f5245454e5452414e4359000000000000000000000000000000000000604482015290519081900360640190fd5b600080600080600080600080612bc36135a0565b612bda600080516020614923833981519152612e74565b9750612bec8a8a63ffffffff6135e216565b9650600095505b8b51861015612e66578b86815181101515612c0a57fe5b9060200190602002015194506008600086600160a060020a0316600160a060020a0316815260200190815260200160002060000154935087600160a060020a0316638074590a8b86600960009054906101000a900463ffffffff168d6040518563ffffffff1660e060020a028152600401808581526020018481526020018363ffffffff1663ffffffff168152602001828152602001945050505050602060405180830381600087803b158015612cc057600080fd5b505af1158015612cd4573d6000803e3d6000fd5b505050506040513d6020811015612cea57600080fd5b50518b519093508b9087908110612cfd57fe5b60209081029091010151831015612d5e576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f5a45524f5f5441524745545f414d4f554e5400000000000000000000604482015290519081900360640190fd5b612d6e848463ffffffff6135e216565b600160a060020a03861660008181526008602052604090208290559092506000805160206149038339815191521415612dd457604051339084156108fc029085906000818181858888f19350505050158015612dce573d6000803e3d6000fd5b50612ddf565b612ddf853385613b34565b60408051848152602081018490528082018990529051600160a060020a0387169133917fbc7d19d505c7ec4db83f3b51f19fb98c4c8a99922e7839d1ee608dfbee29501b9181900360600190a350600160a060020a03841660009081526008602052604090206001015463ffffffff16612e5b87868484613787565b600190950194612bf3565b505050505050505050505050565b600254604080517fbb34534c000000000000000000000000000000000000000000000000000000008152600481018490529051600092600160a060020a03169163bb34534c91602480830192602092919082900301818787803b158015612eda57600080fd5b505af1158015612eee573d6000803e3d6000fd5b505050506040513d6020811015612f0457600080fd5b505192915050565b600160a060020a038116301415610c0c576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f414444524553535f49535f53454c4600000000000000000000000000604482015290519081900360640190fd5b612f75612a98565b82612f7f81613146565b82612f8981613146565b83612f9381612f0c565b61143f868686613b34565b80612fa881612ae8565b600160a060020a0382166000805160206149038339815191521415612fe857600160a060020a03821660009081526008602052604090203031905561308f565b604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a038416916370a082319160248083019260209291908290030181600087803b15801561304957600080fd5b505af115801561305d573d6000803e3d6000fd5b505050506040513d602081101561307357600080fd5b5051600160a060020a0383166000908152600860205260409020555b5050565b61309c81612e74565b600160a060020a03163314610c0c576040805160e560020a62461bcd0281526020600482015260116024820152600080516020614943833981519152604482015290519081900360640190fd5b6130f1610c0f565b15610cda576040805160e560020a62461bcd02815260206004820152600a60248201527f4552525f41435449564500000000000000000000000000000000000000000000604482015290519081900360640190fd5b600160a060020a0381161515610c0c576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b60008163ffffffff161180156131c55750620f424063ffffffff821611155b1515610c0c576040805160e560020a62461bcd02815260206004820152601a60248201527f4552525f494e56414c49445f524553455256455f574549474854000000000000604482015290519081900360640190fd5b613223610c0f565b1515610cda576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f494e4143544956450000000000000000000000000000000000000000604482015290519081900360640190fd5b6007548351600091829181146132c7576040805160e560020a62461bcd02815260206004820152601360248201526000805160206148a3833981519152604482015290519081900360640190fd5b8451811461331f576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f494e56414c49445f414d4f554e540000000000000000000000000000604482015290519081900360640190fd5b600092505b808310156134dd5760086000878581518110151561333e57fe5b6020908102909101810151600160a060020a031682528101919091526040016000206001015460ff66010000000000009091041615156133b6576040805160e560020a62461bcd02815260206004820152601360248201526000805160206148a3833981519152604482015290519081900360640190fd5b600091505b8082101561341e5785828151811015156133d157fe5b90602001906020020151600160a060020a03166007848154811015156133f357fe5b600091825260209091200154600160a060020a031614156134135761341e565b6001909101906133bb565b808210613463576040805160e560020a62461bcd02815260206004820152601360248201526000805160206148a3833981519152604482015290519081900360640190fd5b6000858481518110151561347357fe5b60209081029091010151116134d2576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f494e56414c49445f414d4f554e540000000000000000000000000000604482015290519081900360640190fd5b600190920191613324565b6000841161143f576040805160e560020a62461bcd02815260206004820152600f60248201527f4552525f5a45524f5f414d4f554e540000000000000000000000000000000000604482015290519081900360640190fd5b600081151561354f576135488484613beb565b905061355d565b61355a848484613df2565b90505b9392505050565b60095460009061267590620f42409061359490859068010000000000000000900463ffffffff908116906141b216565b9063ffffffff61422b16565b60075460005b8181101561308f576135da6007828154811015156135c057fe5b600091825260209091200154600160a060020a0316612f9e565b6001016135a6565b60008183101561363c576040805160e560020a62461bcd02815260206004820152600d60248201527f4552525f554e444552464c4f5700000000000000000000000000000000000000604482015290519081900360640190fd5b50900390565b604080517f7472616e7366657246726f6d28616464726573732c616464726573732c75696e81527f74323536290000000000000000000000000000000000000000000000000000006020808301919091528251918290036025018220600160a060020a038088166024850152861660448401526064808401869052845180850390910181526084909301909352810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1990931692909217909152613724908590614299565b50505050565b60008282018381101561355d576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b600554600160a060020a0380851691167f77f29993cf2c084e726f7e802da0719d6a0ade3e204badc7a3ffd57ecb768c246137c585620f42406141b2565b6137d88863ffffffff808816906141b216565b6040805192835260208301919091528051918290030190a350505050565b6001613800611be7565b61ffff1611613859576040805160e560020a62461bcd02815260206004820152601960248201527f4552525f494e56414c49445f524553455256455f434f554e5400000000000000604482015290519081900360640190fd5b610cda614327565b600080600080613872898989611c43565b90935091508215156138ce576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f5a45524f5f5441524745545f414d4f554e5400000000000000000000604482015290519081900360640190fd5b6138d78861267b565b90508083106138e257fe5b600160a060020a038916600080516020614903833981519152141561395d57348714613958576040805160e560020a62461bcd02815260206004820152601760248201527f4552525f4554485f414d4f554e545f4d49534d41544348000000000000000000604482015290519081900360640190fd5b613a65565b34158015613a0f575086613a0c6139738b61267b565b604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a038e16916370a082319160248083019260209291908290030181600087803b1580156139d457600080fd5b505af11580156139e8573d6000803e3d6000fd5b505050506040513d60208110156139fe57600080fd5b50519063ffffffff6135e216565b10155b1515613a65576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f494e56414c49445f414d4f554e540000000000000000000000000000604482015290519081900360640190fd5b613a6e89612f9e565b600160a060020a038816600090815260086020526040902054613a97908463ffffffff6135e216565b600160a060020a0389166000818152600860205260409020919091556000805160206149038339815191521415613b0457604051600160a060020a0386169084156108fc029085906000818181858888f19350505050158015613afe573d6000803e3d6000fd5b50613b0f565b613b0f888685613b34565b613b1d8989888a8787614405565b613b27898961448a565b5090979650505050505050565b604080517f7472616e7366657228616464726573732c75696e74323536290000000000000081528151908190036019018120600160a060020a038516602483015260448083018590528351808403909101815260649092019092526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1990931692909217909152613be6908490614299565b505050565b600080600080613bfa85611bed565b9250600091505b8551821015613de857855160008051602061490383398151915290879084908110613c2857fe5b60209081029091010151600160a060020a031614613c7a57613c7a8683815181101515613c5157fe5b9060200190602002015133308886815181101515613c6b57fe5b90602001906020020151613642565b8482815181101515613c8857fe5b90602001906020020151600860008885815181101515613ca457fe5b6020908102909101810151600160a060020a03168252810191909152604001600020558551869083908110613cd557fe5b90602001906020020151600160a060020a031633600160a060020a03167f4a1a2a6176e9646d9e3157f7c2ab3c499f18337c0b0828cfb28e0a61de4a11f78785815181101515613d2157fe5b906020019060200201518886815181101515613d3957fe5b60209081029091018101516040805193845291830152818101889052519081900360600190a3600860008784815181101515613d7157fe5b6020908102909101810151600160a060020a0316825281019190915260400160002060010154865163ffffffff9091169150613ddd908490889085908110613db557fe5b906020019060200201518785815181101515613dcd57fe5b9060200190602002015184613787565b600190910190613c01565b5090949350505050565b600080600080600080600080600080613e096135a0565b60008051602061490383398151915260005260086020526000805160206148c383398151915254613e40903463ffffffff6135e216565b60008051602061490383398151915260005260086020526000805160206148c383398151915255613e7e600080516020614923833981519152612e74565b9850613e8c898c8f8f614698565b9750613e9e8b8963ffffffff61372a16565b9650600095505b8c518610156141a1578c86815181101515613ebc57fe5b9060200190602002015194506008600086600160a060020a0316600160a060020a0316815260200190815260200160002060000154935088600160a060020a031663ebbb21588c86600960009054906101000a900463ffffffff168c6040518563ffffffff1660e060020a028152600401808581526020018481526020018363ffffffff1663ffffffff168152602001828152602001945050505050602060405180830381600087803b158015613f7257600080fd5b505af1158015613f86573d6000803e3d6000fd5b505050506040513d6020811015613f9c57600080fd5b5051925060008311613ff8576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f5a45524f5f5441524745545f414d4f554e5400000000000000000000604482015290519081900360640190fd5b8b8681518110151561400657fe5b6020908102909101015183111561401957fe5b600160a060020a038516600080516020614903833981519152146140485761404385333086613642565b6140bb565b828c8781518110151561405757fe5b9060200190602002015111156140bb5733600160a060020a03166108fc848e8981518110151561408357fe5b90602001906020020151039081150290604051600060405180830381858888f193505050501580156140b9573d6000803e3d6000fd5b505b6140cb848463ffffffff61372a16565b600160a060020a03861660008181526008602090815260409182902084905581518781529081018490528082018b90529051929450909133917f4a1a2a6176e9646d9e3157f7c2ab3c499f18337c0b0828cfb28e0a61de4a11f7919081900360600190a3600860008e8881518110151561414157fe5b6020908102909101810151600160a060020a03168252810191909152604001600020600101548d5163ffffffff90911691506141969088908f908990811061418557fe5b906020019060200201518484613787565b600190950194613ea5565b50959b9a5050505050505050505050565b6000808315156141c557600091506117a9565b508282028284828115156141d557fe5b041461355d576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b600080808311614285576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f4449564944455f42595f5a45524f0000000000000000000000000000604482015290519081900360640190fd5b828481151561429057fe5b04949350505050565b6142a1614883565b602060405190810160405280600181525090506020818351602085016000875af18015156142ce57600080fd5b5080511515613be6576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f5452414e534645525f4641494c454400000000000000000000000000604482015290519081900360640190fd5b61432f612a98565b6000614339611be7565b61ffff1611614392576040805160e560020a62461bcd02815260206004820152601960248201527f4552525f494e56414c49445f524553455256455f434f554e5400000000000000604482015290519081900360640190fd5b600560009054906101000a9004600160a060020a0316600160a060020a03166379ba50976040518163ffffffff1660e060020a028152600401600060405180830381600087803b1580156143e557600080fd5b505af11580156143f9573d6000803e3d6000fd5b50505050610cda6135a0565b7f8000000000000000000000000000000000000000000000000000000000000000811061442e57fe5b60408051848152602081018490528082018390529051600160a060020a038087169288821692918a16917f276856b36cbc45526a0ba64f44611557a2a8b68662c5388e9fe6d72e86e1c8cb9181900360600190a4505050505050565b6000806000806000806000600560009054906101000a9004600160a060020a0316600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156144e857600080fd5b505af11580156144fc573d6000803e3d6000fd5b505050506040513d602081101561451257600080fd5b5051965061451f8961267b565b955061452a8861267b565b600160a060020a03808b16600090815260086020526040808220600190810154938d1683529120015491965063ffffffff9081169550908116935061457390869086906141b216565b91506145888663ffffffff808616906141b216565b60408051848152602081018390528151929350600160a060020a03808c1693908d16927f77f29993cf2c084e726f7e802da0719d6a0ade3e204badc7a3ffd57ecb768c24928290030190a36145df878a8887613787565b6145eb87898786613787565b604080518881526020810188905263ffffffff8616818301529051600160a060020a038b16917f8a6a7f53b3c8fa1dc4b83e3f1be668c1b251ff8d44cdcb83eb3acec3fec6a788919081900360600190a2604080518881526020810187905263ffffffff8516818301529051600160a060020a038a16917f8a6a7f53b3c8fa1dc4b83e3f1be668c1b251ff8d44cdcb83eb3acec3fec6a788919081900360600190a2505050505050505050565b60008060015b845181101561475b576147036008600087848151811015156146bc57fe5b6020908102909101810151600160a060020a031682528101919091526040016000205485518690859081106146ed57fe5b602090810290910101519063ffffffff6141b216565b61474960086000888681518110151561471857fe5b6020908102909101810151600160a060020a031682528101919091526040016000205486518790859081106146ed57fe5b1015614753578091505b60010161469e565b86600160a060020a0316632f55bdb58760086000898781518110151561477d57fe5b6020908102909101810151600160a060020a0316825281019190915260400160002054600954885163ffffffff909116908990889081106147ba57fe5b906020019060200201516040518563ffffffff1660e060020a028152600401808581526020018481526020018363ffffffff1663ffffffff168152602001828152602001945050505050602060405180830381600087803b15801561481e57600080fd5b505af1158015614832573d6000803e3d6000fd5b505050506040513d602081101561484857600080fd5b5051979650505050505050565b6040805160a08101825260008082526020820181905291810182905260608101829052608081019190915290565b602060405190810160405280600190602082028038833950919291505056004552525f494e56414c49445f5245534552564500000000000000000000000000353c2eb9e53a4a4a6d45d72082ff2e9dc829d1125618772a83eb0e7f86632c42536f7672796e53776170436f6e76657274657255706772616465720000000000000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee536f7672796e53776170466f726d756c610000000000000000000000000000004552525f4143434553535f44454e494544000000000000000000000000000000a165627a7a7230582077c4afb5dbb1930cdbef4451b66030971d5fdd9db5d2ee72732ef2e7eece1eb90029", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x1 PUSH1 0x4 SSTORE PUSH32 0xC0829421C1D260BD3CB3E0F06CFE2D52DB2CE315000000000000000000000000 PUSH1 0x9 SSTORE CALLVALUE DUP1 ISZERO PUSH3 0x3A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH1 0x60 DUP1 PUSH3 0x4BCD DUP4 CODECOPY DUP2 ADD PUSH1 0x40 SWAP1 DUP2 MSTORE DUP2 MLOAD PUSH1 0x20 DUP4 ADD MLOAD SWAP2 SWAP1 SWAP3 ADD MLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND CALLER OR SWAP1 SSTORE DUP3 DUP3 DUP3 DUP3 DUP3 DUP3 DUP3 DUP3 DUP3 DUP2 DUP1 PUSH3 0x8B DUP2 PUSH5 0x100000000 PUSH3 0x13B DUP2 MUL DIV JUMP JUMPDEST POP PUSH1 0x2 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT SWAP3 DUP4 AND DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x3 DUP1 SLOAD SWAP1 SWAP3 AND OR SWAP1 SSTORE DUP3 PUSH3 0xCB DUP2 PUSH5 0x100000000 PUSH3 0x13B DUP2 MUL DIV JUMP JUMPDEST DUP2 PUSH3 0xE0 DUP2 PUSH5 0x100000000 PUSH3 0x1B6 DUP2 MUL DIV JUMP JUMPDEST POP POP PUSH1 0x5 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP5 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 OR SWAP1 SWAP3 SSTORE POP PUSH1 0x9 DUP1 SLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP3 AND PUSH5 0x100000000 MUL PUSH8 0xFFFFFFFF00000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE POP PUSH3 0x22F SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH3 0x1B3 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH3 0xF4240 PUSH4 0xFFFFFFFF DUP3 AND GT ISZERO PUSH3 0x1B3 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F434F4E56455253494F4E5F464545000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x498E DUP1 PUSH3 0x23F PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x263 JUMPI PUSH4 0xFFFFFFFF PUSH1 0xE0 PUSH1 0x2 EXP PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x24C7EC7 DUP2 EQ PUSH2 0x2EF JUMPI DUP1 PUSH4 0xC7D5CD8 EQ PUSH2 0x309 JUMPI DUP1 PUSH4 0xE53AAE9 EQ PUSH2 0x337 JUMPI DUP1 PUSH4 0x12C2ACA4 EQ PUSH2 0x38C JUMPI DUP1 PUSH4 0x19B64015 EQ PUSH2 0x3B5 JUMPI DUP1 PUSH4 0x1CFAB290 EQ PUSH2 0x3E9 JUMPI DUP1 PUSH4 0x1E1401F8 EQ PUSH2 0x40A JUMPI DUP1 PUSH4 0x21E6B53D EQ PUSH2 0x44D JUMPI DUP1 PUSH4 0x22F3E2D4 EQ PUSH2 0x46E JUMPI DUP1 PUSH4 0x2FE8A6AD EQ PUSH2 0x483 JUMPI DUP1 PUSH4 0x38A5E016 EQ PUSH2 0x498 JUMPI DUP1 PUSH4 0x395900D4 EQ PUSH2 0x4AD JUMPI DUP1 PUSH4 0x3E8FF43F EQ PUSH2 0x4D7 JUMPI DUP1 PUSH4 0x415F1240 EQ PUSH2 0x503 JUMPI DUP1 PUSH4 0x49D10B64 EQ PUSH2 0x51B JUMPI DUP1 PUSH4 0x4AF80F0E EQ PUSH2 0x530 JUMPI DUP1 PUSH4 0x54FD4D50 EQ PUSH2 0x551 JUMPI DUP1 PUSH4 0x579CD3CA EQ PUSH2 0x566 JUMPI DUP1 PUSH4 0x5E35359E EQ PUSH2 0x57B JUMPI DUP1 PUSH4 0x61CD756E EQ PUSH2 0x5A5 JUMPI DUP1 PUSH4 0x67B6D57C EQ PUSH2 0x5BA JUMPI DUP1 PUSH4 0x690D8320 EQ PUSH2 0x5DB JUMPI DUP1 PUSH4 0x6A49D2C4 EQ PUSH2 0x5FC JUMPI DUP1 PUSH4 0x6AA5332C EQ PUSH2 0x626 JUMPI DUP1 PUSH4 0x6AD419A8 EQ PUSH2 0x650 JUMPI DUP1 PUSH4 0x71F52BF3 EQ PUSH2 0x671 JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x686 JUMPI DUP1 PUSH4 0x7B103999 EQ PUSH2 0x69B JUMPI DUP1 PUSH4 0x7D8916BD EQ PUSH2 0x6B0 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x733 JUMPI DUP1 PUSH4 0x94C275AD EQ PUSH2 0x748 JUMPI DUP1 PUSH4 0x9B99A8E2 EQ PUSH2 0x75D JUMPI DUP1 PUSH4 0xA60E7724 EQ PUSH2 0x772 JUMPI DUP1 PUSH4 0xAF94B8D8 EQ PUSH2 0x7C7 JUMPI DUP1 PUSH4 0xB127C0A5 EQ PUSH2 0x7F1 JUMPI DUP1 PUSH4 0xB4A176D3 EQ PUSH2 0x884 JUMPI DUP1 PUSH4 0xBBB7E5D8 EQ PUSH2 0x899 JUMPI DUP1 PUSH4 0xBF754558 EQ PUSH2 0x8B4 JUMPI DUP1 PUSH4 0xC45D3D92 EQ PUSH2 0x8C9 JUMPI DUP1 PUSH4 0xCA1D209D EQ PUSH2 0x8DE JUMPI DUP1 PUSH4 0xCDC91C69 EQ PUSH2 0x8E9 JUMPI DUP1 PUSH4 0xD031370B EQ PUSH2 0x8FE JUMPI DUP1 PUSH4 0xD260529C EQ PUSH2 0x916 JUMPI DUP1 PUSH4 0xD3FB73B4 EQ PUSH2 0x92B JUMPI DUP1 PUSH4 0xD4EE1D90 EQ PUSH2 0x940 JUMPI DUP1 PUSH4 0xD55EC697 EQ PUSH2 0x955 JUMPI DUP1 PUSH4 0xD66BD524 EQ PUSH2 0x96A JUMPI DUP1 PUSH4 0xD8959512 EQ PUSH2 0x98B JUMPI DUP1 PUSH4 0xDC8DE379 EQ PUSH2 0x9AC JUMPI DUP1 PUSH4 0xE8DC12FF EQ PUSH2 0x9CD JUMPI DUP1 PUSH4 0xECBCA55D EQ PUSH2 0x9F7 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0xA15 JUMPI DUP1 PUSH4 0xFC0C546A EQ PUSH2 0xA36 JUMPI JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4903 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x0 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH32 0x353C2EB9E53A4A4A6D45D72082FF2E9DC829D1125618772A83EB0E7F86632C43 SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO PUSH2 0x2ED JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A3 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2FB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2ED PUSH1 0x4 CALLDATALOAD ISZERO ISZERO PUSH2 0xA4B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x315 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x31E PUSH2 0xA93 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x343 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x358 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0xA9F JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP6 DUP7 MSTORE PUSH4 0xFFFFFFFF SWAP1 SWAP5 AND PUSH1 0x20 DUP7 ADD MSTORE SWAP2 ISZERO ISZERO DUP5 DUP5 ADD MSTORE ISZERO ISZERO PUSH1 0x60 DUP5 ADD MSTORE ISZERO ISZERO PUSH1 0x80 DUP4 ADD MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0xA0 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x398 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3A1 PUSH2 0xB3A JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3C1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3CD PUSH1 0x4 CALLDATALOAD PUSH2 0xB83 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x31E PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0xBAF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x416 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x434 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0xBE1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x459 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2ED PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0xBFB JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x47A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3A1 PUSH2 0xC0F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x48F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3A1 PUSH2 0xCA9 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4A4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2ED PUSH2 0xCCA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4B9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2ED PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0xCDC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4E3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4EC PUSH2 0xD77 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0xFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x50F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2ED PUSH1 0x4 CALLDATALOAD PUSH2 0xD7C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x527 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2ED PUSH2 0xFC0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x53C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2ED PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x122D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x55D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4EC PUSH2 0x126F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x572 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x31E PUSH2 0x1274 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x587 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2ED PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x128C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5B1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3CD PUSH2 0x1395 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5C6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2ED PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x13A4 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5E7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2ED PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x1447 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x608 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2ED PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH4 0xFFFFFFFF PUSH1 0x24 CALLDATALOAD AND PUSH2 0x154C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x632 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x63E PUSH1 0x4 CALLDATALOAD PUSH2 0x178B JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x65C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2ED PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x17B0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x67D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4EC PUSH2 0x17E6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x692 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2ED PUSH2 0x17F5 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6A7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3CD PUSH2 0x18B6 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x2ED SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP POP PUSH1 0x40 DUP1 MLOAD DUP8 CALLDATALOAD DUP10 ADD DUP1 CALLDATALOAD PUSH1 0x20 DUP2 DUP2 MUL DUP5 DUP2 ADD DUP3 ADD SWAP1 SWAP6 MSTORE DUP2 DUP5 MSTORE SWAP9 SWAP12 SWAP11 SWAP10 DUP10 ADD SWAP9 SWAP3 SWAP8 POP SWAP1 DUP3 ADD SWAP6 POP SWAP4 POP DUP4 SWAP3 POP DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP POP SWAP4 CALLDATALOAD SWAP5 POP PUSH2 0x18C5 SWAP4 POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x73F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3CD PUSH2 0x1BC4 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x754 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x31E PUSH2 0x1BD3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x769 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4EC PUSH2 0x1BE7 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x77E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x63E SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP PUSH2 0x1BED SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7D3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x434 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x1C43 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7FD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 PUSH1 0x24 DUP1 CALLDATALOAD DUP3 DUP2 ADD CALLDATALOAD DUP5 DUP2 MUL DUP1 DUP8 ADD DUP7 ADD SWAP1 SWAP8 MSTORE DUP1 DUP7 MSTORE PUSH2 0x2ED SWAP7 DUP5 CALLDATALOAD SWAP7 CALLDATASIZE SWAP7 PUSH1 0x44 SWAP6 SWAP2 SWAP5 SWAP1 SWAP2 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP POP PUSH1 0x40 DUP1 MLOAD DUP8 CALLDATALOAD DUP10 ADD DUP1 CALLDATALOAD PUSH1 0x20 DUP2 DUP2 MUL DUP5 DUP2 ADD DUP3 ADD SWAP1 SWAP6 MSTORE DUP2 DUP5 MSTORE SWAP9 SWAP12 SWAP11 SWAP10 DUP10 ADD SWAP9 SWAP3 SWAP8 POP SWAP1 DUP3 ADD SWAP6 POP SWAP4 POP DUP4 SWAP3 POP DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP PUSH2 0x1DE8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x890 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2ED PUSH2 0x1F1C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8A5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x63E PUSH1 0x4 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH2 0x1F55 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8C0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3A1 PUSH2 0x1F6F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8D5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3CD PUSH2 0x1F74 JUMP JUMPDEST PUSH2 0x2ED PUSH1 0x4 CALLDATALOAD PUSH2 0x1F83 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2ED PUSH2 0x2490 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x90A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3CD PUSH1 0x4 CALLDATALOAD PUSH2 0x24E9 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x922 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3A1 PUSH2 0xD77 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x937 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3CD PUSH2 0x2511 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x94C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3CD PUSH2 0x2520 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x961 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2ED PUSH2 0x252F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x976 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x358 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x2624 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x997 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x63E PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x266A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9B8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x63E PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x267B JUMP JUMPDEST PUSH2 0x63E PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x44 CALLDATALOAD SWAP1 PUSH1 0x64 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x84 CALLDATALOAD AND PUSH2 0x26A4 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA03 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2ED PUSH4 0xFFFFFFFF PUSH1 0x4 CALLDATALOAD AND PUSH2 0x28F7 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA21 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2ED PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x29EC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA42 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3CD PUSH2 0x2A89 JUMP JUMPDEST PUSH2 0xA53 PUSH2 0x2A98 JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD SWAP2 ISZERO ISZERO PUSH21 0x10000000000000000000000000000000000000000 MUL PUSH21 0xFF0000000000000000000000000000000000000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH4 0xFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0xAAF PUSH2 0x4855 JUMP JUMPDEST POP POP POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP2 MLOAD PUSH1 0xA0 DUP2 ADD DUP4 MSTORE DUP2 SLOAD DUP1 DUP3 MSTORE PUSH1 0x1 SWAP1 SWAP3 ADD SLOAD PUSH4 0xFFFFFFFF DUP2 AND SWAP5 DUP3 ADD DUP6 SWAP1 MSTORE PUSH1 0xFF PUSH5 0x100000000 DUP3 DIV DUP2 AND ISZERO ISZERO SWAP5 DUP4 ADD SWAP5 SWAP1 SWAP5 MSTORE PUSH6 0x10000000000 DUP2 DIV DUP5 AND ISZERO ISZERO PUSH1 0x60 DUP4 ADD MSTORE PUSH7 0x1000000000000 SWAP1 DIV SWAP1 SWAP3 AND ISZERO ISZERO PUSH1 0x80 SWAP1 SWAP3 ADD DUP3 SWAP1 MSTORE SWAP6 SWAP2 SWAP5 POP SWAP2 SWAP3 POP DUP3 SWAP2 SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4903 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x0 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH32 0x353C2EB9E53A4A4A6D45D72082FF2E9DC829D1125618772A83EB0E7F86632C43 SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x7 DUP3 DUP2 SLOAD DUP2 LT ISZERO ISZERO PUSH2 0xB94 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0xBBB DUP2 PUSH2 0x2AE8 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH4 0xFFFFFFFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xBEF DUP6 DUP6 DUP6 PUSH2 0x1C43 JUMP JUMPDEST SWAP2 POP SWAP2 POP SWAP4 POP SWAP4 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xC03 PUSH2 0x2A98 JUMP JUMPDEST PUSH2 0xC0C DUP2 PUSH2 0x13A4 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 ADDRESS PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x8DA5CB5B PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC6E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xC82 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xC98 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH2 0xCD2 PUSH2 0x2A98 JUMP JUMPDEST PUSH2 0xCDA PUSH2 0x2490 JUMP JUMPDEST JUMP JUMPDEST PUSH2 0xCE4 PUSH2 0x2A98 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x5E35359E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP6 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP3 ADD DUP6 SWAP1 MSTORE SWAP2 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP2 PUSH4 0x5E35359E SWAP2 PUSH1 0x64 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xD5A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xD6E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 PUSH1 0x0 PUSH2 0xD8A PUSH2 0x2B55 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH1 0x0 DUP5 GT PUSH2 0xDE7 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xF PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5A45524F5F414D4F554E540000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x18160DDD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xE3A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xE4E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xE64 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xA24835D100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP9 SWAP1 MSTORE SWAP1 MLOAD SWAP3 SWAP6 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP2 AND SWAP2 PUSH4 0xA24835D1 SWAP2 PUSH1 0x44 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xED5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xEE9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x7 DUP1 SLOAD SWAP1 POP PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0xF1C JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CODESIZE DUP4 CODECOPY ADD SWAP1 POP JUMPDEST POP SWAP2 POP PUSH1 0x0 SWAP1 POP JUMPDEST DUP2 MLOAD DUP2 LT ISZERO PUSH2 0xF4F JUMPI PUSH1 0x1 DUP3 DUP3 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xF3D JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MSTORE PUSH1 0x1 ADD PUSH2 0xF24 JUMP JUMPDEST PUSH2 0xFB5 PUSH1 0x7 DUP1 SLOAD DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD DUP1 ISZERO PUSH2 0xFA8 JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xF8A JUMPI JUMPDEST POP POP POP POP POP DUP4 DUP6 DUP8 PUSH2 0x2BAF JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0x4 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ DUP1 PUSH2 0xFF5 JUMPI POP PUSH1 0x3 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x1039 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4943 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x1062 PUSH32 0x436F6E7472616374526567697374727900000000000000000000000000000000 PUSH2 0x2E74 JUMP JUMPDEST PUSH1 0x2 SLOAD SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP4 AND SWAP2 AND EQ DUP1 ISZERO SWAP1 PUSH2 0x108B JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x10E1 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245474953545259000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0xBB34534C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH32 0x436F6E7472616374526567697374727900000000000000000000000000000000 PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP2 PUSH4 0xBB34534C SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1165 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1179 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x118F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ ISZERO PUSH2 0x11F0 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245474953545259000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP5 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP3 DUP4 AND OR SWAP1 SWAP3 SSTORE SWAP1 SWAP2 AND SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x1235 PUSH2 0x2A98 JUMP JUMPDEST DUP1 PUSH2 0x123F DUP2 PUSH2 0x2F0C JUMP JUMPDEST POP PUSH1 0x6 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x20 DUP2 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH9 0x10000000000000000 SWAP1 DIV PUSH4 0xFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1296 PUSH2 0x2B55 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH2 0x12A3 PUSH2 0x2A98 JUMP JUMPDEST PUSH2 0x12BA PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48E3 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x2E74 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD SWAP1 SWAP2 POP PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 PUSH2 0x12F7 JUMPI POP PUSH2 0x12F5 PUSH2 0xC0F JUMP JUMPDEST ISZERO JUMPDEST DUP1 PUSH2 0x130F JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ JUMPDEST ISZERO ISZERO PUSH2 0x1353 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4943 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x135E DUP5 DUP5 DUP5 PUSH2 0x2F6D JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0xFB5 JUMPI PUSH2 0xFB5 DUP5 PUSH2 0x2F9E JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH2 0x13AC PUSH2 0x2A98 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48E3 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x13C4 DUP2 PUSH2 0x3093 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xF2FDE38B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP2 PUSH4 0xF2FDE38B SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x142B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x143F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1451 PUSH2 0x2B55 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH2 0x145E PUSH2 0x2A98 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4903 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x1476 DUP2 PUSH2 0x2AE8 JUMP JUMPDEST PUSH2 0x148D PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48E3 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x2E74 JUMP JUMPDEST SWAP2 POP PUSH2 0x1497 PUSH2 0xC0F JUMP JUMPDEST ISZERO DUP1 PUSH2 0x14B0 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 DUP2 AND SWAP2 AND EQ JUMPDEST ISZERO ISZERO PUSH2 0x14F4 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4943 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP1 ADDRESS BALANCE DUP1 ISZERO PUSH2 0x8FC MUL SWAP2 PUSH1 0x0 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x152A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH2 0x1542 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4903 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x2F9E JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0x4 SSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1556 PUSH2 0x2A98 JUMP JUMPDEST PUSH2 0x155E PUSH2 0x30E9 JUMP JUMPDEST DUP3 PUSH2 0x1568 DUP2 PUSH2 0x3146 JUMP JUMPDEST DUP4 PUSH2 0x1572 DUP2 PUSH2 0x2F0C JUMP JUMPDEST DUP4 PUSH2 0x157C DUP2 PUSH2 0x31A6 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 DUP2 AND SWAP2 AND EQ DUP1 ISZERO SWAP1 PUSH2 0x15C0 JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x1604 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A3 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x9 SLOAD PUSH4 0xFFFFFFFF SWAP1 DUP2 AND PUSH3 0xF4240 SUB DUP2 AND SWAP1 DUP7 AND GT ISZERO PUSH2 0x166F JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F574549474854000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0xFFFF PUSH2 0x167A PUSH2 0x1BE7 JUMP JUMPDEST PUSH2 0xFFFF AND LT PUSH2 0x16D3 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F434F554E5400000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP2 DUP2 SSTORE PUSH1 0x1 SWAP1 DUP2 ADD DUP1 SLOAD PUSH7 0xFF000000000000 NOT PUSH4 0xFFFFFFFF DUP1 DUP9 AND PUSH4 0xFFFFFFFF NOT SWAP4 DUP5 AND OR SWAP2 SWAP1 SWAP2 AND PUSH7 0x1000000000000 OR SWAP1 SWAP3 SSTORE PUSH1 0x7 DUP1 SLOAD SWAP4 DUP5 ADD DUP2 SSTORE SWAP1 SWAP4 MSTORE PUSH32 0xA66CC928B5EDB82AF9BD49922954155AB7B0942694BEA4CE44661D9A8736C688 SWAP1 SWAP2 ADD DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 SWAP4 OR SWAP1 SWAP3 SSTORE PUSH1 0x9 DUP1 SLOAD DUP1 DUP5 AND SWAP1 SWAP5 ADD SWAP1 SWAP3 AND SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 JUMPDEST PUSH1 0x0 DUP2 GT ISZERO PUSH2 0x17A9 JUMPI PUSH1 0x1 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0xA SWAP1 DIV PUSH2 0x1790 JUMP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x9 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND PUSH13 0x1000000000000000000000000 MUL PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH2 0x17F0 PUSH2 0x1BE7 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x1845 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4943 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND SWAP4 SWAP1 SWAP2 AND SWAP2 PUSH32 0x343765429AEA5A34B3FF6A3785A98A5ABB2597ACA87BFBB58632C173D585373A SWAP2 LOG3 PUSH1 0x1 DUP1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND OR SWAP1 SWAP2 SSTORE AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x18D2 PUSH2 0x2B55 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH2 0x18DF PUSH2 0x321B JUMP JUMPDEST PUSH2 0x18EA DUP7 DUP7 DUP7 PUSH2 0x3279 JUMP JUMPDEST PUSH1 0x0 SWAP3 POP JUMPDEST DUP6 MLOAD DUP4 LT ISZERO PUSH2 0x19A8 JUMPI DUP6 MLOAD PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4903 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP1 DUP8 SWAP1 DUP6 SWAP1 DUP2 LT PUSH2 0x1916 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ ISZERO PUSH2 0x199D JUMPI CALLVALUE DUP6 DUP5 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x193E JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MLOAD EQ PUSH2 0x199D JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4554485F414D4F554E545F4D49534D41544348000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 PUSH2 0x18EF JUMP JUMPDEST PUSH1 0x0 CALLVALUE GT ISZERO PUSH2 0x1A4D JUMPI PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4903 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x0 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH32 0x353C2EB9E53A4A4A6D45D72082FF2E9DC829D1125618772A83EB0E7F86632C43 SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO PUSH2 0x1A4D JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4E4F5F4554485F524553455256450000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x18160DDD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1AA0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1AB4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1ACA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 POP PUSH2 0x1AD9 DUP7 DUP7 DUP5 PUSH2 0x3535 JUMP JUMPDEST SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0x1B33 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F52455455524E5F544F4F5F4C4F570000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x867904B400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP2 PUSH4 0x867904B4 SWAP2 PUSH1 0x44 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1B9F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1BB3 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x1 PUSH1 0x4 SSTORE POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH5 0x100000000 SWAP1 DIV PUSH4 0xFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x7 SLOAD SWAP1 JUMP JUMPDEST DUP1 MLOAD PUSH1 0x0 SWAP1 DUP2 SWAP1 DUP2 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1C2A JUMPI PUSH2 0x1C1E DUP6 DUP3 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x1C0F JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH2 0x178B JUMP JUMPDEST SWAP1 SWAP3 ADD SWAP2 PUSH1 0x1 ADD PUSH2 0x1BF6 JUMP JUMPDEST PUSH1 0x1 PUSH2 0x1C36 DUP5 DUP5 PUSH2 0x1F55 JUMP JUMPDEST SUB PUSH1 0xA EXP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x1C51 PUSH2 0x321B JUMP JUMPDEST DUP7 PUSH2 0x1C5B DUP2 PUSH2 0x2AE8 JUMP JUMPDEST DUP7 PUSH2 0x1C65 DUP2 PUSH2 0x2AE8 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP10 DUP2 AND SWAP1 DUP10 AND EQ ISZERO PUSH2 0x1CC9 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F534F555243455F54415247455400000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x1CE0 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4923 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x2E74 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x94491FAB PUSH2 0x1CF7 DUP12 PUSH2 0x267B JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP13 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH4 0xFFFFFFFF AND PUSH2 0x1D22 DUP13 PUSH2 0x267B JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP14 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 ADD SLOAD DUP2 MLOAD PUSH4 0xFFFFFFFF DUP10 DUP2 AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP3 MSTORE PUSH1 0x4 DUP3 ADD SWAP9 SWAP1 SWAP9 MSTORE SWAP6 DUP8 AND PUSH1 0x24 DUP8 ADD MSTORE PUSH1 0x44 DUP7 ADD SWAP5 SWAP1 SWAP5 MSTORE SWAP5 SWAP1 SWAP3 AND PUSH1 0x64 DUP5 ADD MSTORE PUSH1 0x84 DUP4 ADD DUP14 SWAP1 MSTORE SWAP3 MLOAD PUSH1 0xA4 DUP1 DUP5 ADD SWAP5 SWAP3 SWAP4 SWAP2 SWAP3 SWAP2 DUP4 SWAP1 SUB ADD SWAP1 DUP3 SWAP1 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1D9E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1DB2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1DC8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP4 POP PUSH2 0x1DD5 DUP5 PUSH2 0x3564 JUMP JUMPDEST SWAP4 DUP5 SWAP1 SUB SWAP10 SWAP4 SWAP9 POP SWAP3 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1DF2 PUSH2 0x2B55 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH2 0x1DFF PUSH2 0x321B JUMP JUMPDEST PUSH2 0x1E0A DUP4 DUP4 DUP7 PUSH2 0x3279 JUMP JUMPDEST PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x18160DDD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1E5D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1E71 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1E87 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xA24835D100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP9 SWAP1 MSTORE SWAP1 MLOAD SWAP3 SWAP4 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP2 AND SWAP2 PUSH4 0xA24835D1 SWAP2 PUSH1 0x44 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1EF8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1F0C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0xFB5 DUP4 DUP4 DUP4 DUP8 PUSH2 0x2BAF JUMP JUMPDEST PUSH2 0x1F24 PUSH2 0x2A98 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x2 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x2 DUP2 DIV DUP5 ADD DUP2 ISZERO ISZERO PUSH2 0x1F67 JUMPI INVALID JUMPDEST DIV SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x1 DUP2 JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x1F9A PUSH2 0x2B55 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH2 0x1FA7 PUSH2 0x35A0 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4903 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x0 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48C3 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SLOAD PUSH2 0x1FDE SWAP1 CALLVALUE PUSH4 0xFFFFFFFF PUSH2 0x35E2 AND JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4903 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48C3 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP3 SWAP1 SWAP3 SSTORE PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x18160DDD00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP4 PUSH4 0x18160DDD SWAP4 PUSH1 0x4 DUP1 DUP5 ADD SWAP5 SWAP3 SWAP4 DUP4 SWAP1 SUB ADD SWAP1 DUP3 SWAP1 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2068 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x207C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2092 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP10 POP PUSH2 0x20AD PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4923 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x2E74 JUMP JUMPDEST PUSH1 0x7 SLOAD SWAP1 SWAP10 POP SWAP8 POP PUSH1 0x0 SWAP7 POP JUMPDEST DUP8 DUP8 LT ISZERO PUSH2 0x23FA JUMPI PUSH1 0x7 DUP1 SLOAD DUP9 SWAP1 DUP2 LT PUSH2 0x20D0 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP6 POP PUSH1 0x8 PUSH1 0x0 DUP8 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD SWAP5 POP DUP9 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xEBBB2158 DUP12 DUP8 PUSH1 0x9 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH4 0xFFFFFFFF AND DUP16 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH4 0xFFFFFFFF AND PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP5 POP POP POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x219A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x21AE JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x21C4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP4 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4903 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ ISZERO PUSH2 0x2326 JUMPI DUP4 CALLVALUE GT ISZERO PUSH2 0x2224 JUMPI PUSH1 0x40 MLOAD CALLER SWAP1 CALLVALUE DUP7 SWAP1 SUB DUP1 ISZERO PUSH2 0x8FC MUL SWAP2 PUSH1 0x0 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x221E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH2 0x2321 JUMP JUMPDEST DUP4 CALLVALUE LT ISZERO PUSH2 0x2321 JUMPI CALLVALUE ISZERO PUSH2 0x2282 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4554485F56414C55450000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x9 SLOAD PUSH2 0x22AA SWAP1 PUSH13 0x1000000000000000000000000 SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER ADDRESS DUP8 PUSH2 0x3642 JUMP JUMPDEST PUSH1 0x9 PUSH1 0xC SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x2E1A7D4D DUP6 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2308 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x231C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMPDEST PUSH2 0x2332 JUMP JUMPDEST PUSH2 0x2332 DUP7 CALLER ADDRESS DUP8 PUSH2 0x3642 JUMP JUMPDEST PUSH2 0x2342 DUP6 DUP6 PUSH4 0xFFFFFFFF PUSH2 0x372A AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP2 SWAP1 SSTORE SWAP3 POP PUSH2 0x236F DUP11 DUP13 PUSH4 0xFFFFFFFF PUSH2 0x372A AND JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP7 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP7 SWAP1 MSTORE DUP1 DUP3 ADD DUP4 SWAP1 MSTORE SWAP1 MLOAD SWAP2 SWAP4 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 AND SWAP2 CALLER SWAP2 PUSH32 0x4A1A2A6176E9646D9E3157F7C2AB3C499F18337C0B0828CFB28E0A61DE4A11F7 SWAP2 SWAP1 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG3 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH4 0xFFFFFFFF AND PUSH2 0x23EF DUP3 DUP8 DUP6 DUP5 PUSH2 0x3787 JUMP JUMPDEST PUSH1 0x1 SWAP1 SWAP7 ADD SWAP6 PUSH2 0x20BA JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x867904B400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP15 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP2 PUSH4 0x867904B4 SWAP2 PUSH1 0x44 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2466 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x247A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x1 PUSH1 0x4 SSTORE POP POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x2498 PUSH2 0x2A98 JUMP JUMPDEST PUSH2 0x24A0 PUSH2 0x37F6 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x24B7 PUSH2 0xD77 JUMP JUMPDEST PUSH2 0xFFFF AND PUSH32 0x6B08C2E2C9969E55A647A764DB9B554D64DC42F1A704DA11A6D5B129AD163F2C PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 JUMP JUMPDEST PUSH1 0x7 DUP1 SLOAD DUP3 SWAP1 DUP2 LT PUSH2 0x24F7 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP1 POP DUP2 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2539 PUSH2 0x2A98 JUMP JUMPDEST PUSH2 0x2550 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48E3 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x2E74 JUMP JUMPDEST PUSH1 0x5 SLOAD SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x256A PUSH2 0xD77 JUMP JUMPDEST PUSH2 0xFFFF AND PUSH32 0x6B08C2E2C9969E55A647A764DB9B554D64DC42F1A704DA11A6D5B129AD163F2C PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH2 0x25A3 DUP2 PUSH2 0x29EC JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x90F58C9600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 AND SWAP2 PUSH4 0x90F58C96 SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2604 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2618 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0xC0C PUSH2 0x17F5 JUMP JUMPDEST PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD PUSH4 0xFFFFFFFF DUP2 AND SWAP1 PUSH1 0xFF PUSH5 0x100000000 DUP3 DIV DUP2 AND SWAP2 PUSH6 0x10000000000 DUP2 DIV DUP3 AND SWAP2 PUSH7 0x1000000000000 SWAP1 SWAP2 DIV AND DUP6 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2675 DUP3 PUSH2 0x267B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0x2687 DUP2 PUSH2 0x2AE8 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x26AE PUSH2 0x2B55 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH32 0x536F7672796E537761704E6574776F726B000000000000000000000000000000 PUSH2 0x26DD DUP2 PUSH2 0x3093 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 DUP2 AND SWAP1 DUP8 AND EQ ISZERO PUSH2 0x2741 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F534F555243455F54415247455400000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND ISZERO DUP1 PUSH2 0x2884 JUMPI POP PUSH1 0x6 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x3AF32ABF00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP2 PUSH4 0x3AF32ABF SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x27BC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x27D0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x27E6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD DUP1 ISZERO PUSH2 0x2884 JUMPI POP PUSH1 0x6 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x3AF32ABF00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP2 PUSH4 0x3AF32ABF SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2857 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x286B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2881 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD JUMPDEST ISZERO ISZERO PUSH2 0x28DA JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4E4F545F57484954454C495354454400000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x28E7 DUP8 DUP8 DUP8 DUP8 DUP8 PUSH2 0x3861 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x4 SSTORE SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x28FF PUSH2 0x2A98 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH4 0xFFFFFFFF PUSH5 0x100000000 SWAP1 SWAP2 DIV DUP2 AND SWAP1 DUP3 AND GT ISZERO PUSH2 0x296B JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F434F4E56455253494F4E5F464545000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH4 0xFFFFFFFF PUSH9 0x10000000000000000 SWAP1 SWAP4 DIV DUP4 AND DUP2 MSTORE SWAP2 DUP4 AND PUSH1 0x20 DUP4 ADD MSTORE DUP1 MLOAD PUSH32 0x81CD2FFB37DD237C0E4E2A3DE5265FCF9DEB43D3E7801E80DB9F1CCFBA7EE600 SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG1 PUSH1 0x9 DUP1 SLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP3 AND PUSH9 0x10000000000000000 MUL PUSH12 0xFFFFFFFF0000000000000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x29F4 PUSH2 0x2A98 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x2A5A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F4F574E4552000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0xCDA JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4943 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO PUSH2 0xC0C JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A3 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x4 SLOAD PUSH1 0x1 EQ PUSH2 0xCDA JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5245454E5452414E4359000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x2BC3 PUSH2 0x35A0 JUMP JUMPDEST PUSH2 0x2BDA PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4923 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x2E74 JUMP JUMPDEST SWAP8 POP PUSH2 0x2BEC DUP11 DUP11 PUSH4 0xFFFFFFFF PUSH2 0x35E2 AND JUMP JUMPDEST SWAP7 POP PUSH1 0x0 SWAP6 POP JUMPDEST DUP12 MLOAD DUP7 LT ISZERO PUSH2 0x2E66 JUMPI DUP12 DUP7 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x2C0A JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD SWAP5 POP PUSH1 0x8 PUSH1 0x0 DUP7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD SWAP4 POP DUP8 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x8074590A DUP12 DUP7 PUSH1 0x9 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH4 0xFFFFFFFF AND DUP14 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH4 0xFFFFFFFF AND PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP5 POP POP POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2CC0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2CD4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2CEA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD DUP12 MLOAD SWAP1 SWAP4 POP DUP12 SWAP1 DUP8 SWAP1 DUP2 LT PUSH2 0x2CFD JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MLOAD DUP4 LT ISZERO PUSH2 0x2D5E JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5A45524F5F5441524745545F414D4F554E5400000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x2D6E DUP5 DUP5 PUSH4 0xFFFFFFFF PUSH2 0x35E2 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP3 SWAP1 SSTORE SWAP1 SWAP3 POP PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4903 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ ISZERO PUSH2 0x2DD4 JUMPI PUSH1 0x40 MLOAD CALLER SWAP1 DUP5 ISZERO PUSH2 0x8FC MUL SWAP1 DUP6 SWAP1 PUSH1 0x0 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x2DCE JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH2 0x2DDF JUMP JUMPDEST PUSH2 0x2DDF DUP6 CALLER DUP6 PUSH2 0x3B34 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP5 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 SWAP1 MSTORE DUP1 DUP3 ADD DUP10 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND SWAP2 CALLER SWAP2 PUSH32 0xBC7D19D505C7EC4DB83F3B51F19FB98C4C8A99922E7839D1EE608DFBEE29501B SWAP2 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG3 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH4 0xFFFFFFFF AND PUSH2 0x2E5B DUP8 DUP7 DUP5 DUP5 PUSH2 0x3787 JUMP JUMPDEST PUSH1 0x1 SWAP1 SWAP6 ADD SWAP5 PUSH2 0x2BF3 JUMP JUMPDEST POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xBB34534C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP2 PUSH4 0xBB34534C SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2EDA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2EEE JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2F04 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ADDRESS EQ ISZERO PUSH2 0xC0C JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F414444524553535F49535F53454C4600000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x2F75 PUSH2 0x2A98 JUMP JUMPDEST DUP3 PUSH2 0x2F7F DUP2 PUSH2 0x3146 JUMP JUMPDEST DUP3 PUSH2 0x2F89 DUP2 PUSH2 0x3146 JUMP JUMPDEST DUP4 PUSH2 0x2F93 DUP2 PUSH2 0x2F0C JUMP JUMPDEST PUSH2 0x143F DUP7 DUP7 DUP7 PUSH2 0x3B34 JUMP JUMPDEST DUP1 PUSH2 0x2FA8 DUP2 PUSH2 0x2AE8 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 AND PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4903 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ ISZERO PUSH2 0x2FE8 JUMPI PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 ADDRESS BALANCE SWAP1 SSTORE PUSH2 0x308F JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3049 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x305D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x3073 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x309C DUP2 PUSH2 0x2E74 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0xC0C JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4943 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x30F1 PUSH2 0xC0F JUMP JUMPDEST ISZERO PUSH2 0xCDA JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xA PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F41435449564500000000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0xC0C JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 PUSH4 0xFFFFFFFF AND GT DUP1 ISZERO PUSH2 0x31C5 JUMPI POP PUSH3 0xF4240 PUSH4 0xFFFFFFFF DUP3 AND GT ISZERO JUMPDEST ISZERO ISZERO PUSH2 0xC0C JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F574549474854000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x3223 PUSH2 0xC0F JUMP JUMPDEST ISZERO ISZERO PUSH2 0xCDA JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E4143544956450000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x7 SLOAD DUP4 MLOAD PUSH1 0x0 SWAP2 DUP3 SWAP2 DUP2 EQ PUSH2 0x32C7 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A3 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP5 MLOAD DUP2 EQ PUSH2 0x331F JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F414D4F554E540000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 SWAP3 POP JUMPDEST DUP1 DUP4 LT ISZERO PUSH2 0x34DD JUMPI PUSH1 0x8 PUSH1 0x0 DUP8 DUP6 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x333E JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP3 MSTORE DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH1 0xFF PUSH7 0x1000000000000 SWAP1 SWAP2 DIV AND ISZERO ISZERO PUSH2 0x33B6 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A3 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 SWAP2 POP JUMPDEST DUP1 DUP3 LT ISZERO PUSH2 0x341E JUMPI DUP6 DUP3 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x33D1 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x7 DUP5 DUP2 SLOAD DUP2 LT ISZERO ISZERO PUSH2 0x33F3 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ ISZERO PUSH2 0x3413 JUMPI PUSH2 0x341E JUMP JUMPDEST PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x33BB JUMP JUMPDEST DUP1 DUP3 LT PUSH2 0x3463 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A3 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP6 DUP5 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3473 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MLOAD GT PUSH2 0x34D2 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F414D4F554E540000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 PUSH2 0x3324 JUMP JUMPDEST PUSH1 0x0 DUP5 GT PUSH2 0x143F JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xF PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5A45524F5F414D4F554E540000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO PUSH2 0x354F JUMPI PUSH2 0x3548 DUP5 DUP5 PUSH2 0x3BEB JUMP JUMPDEST SWAP1 POP PUSH2 0x355D JUMP JUMPDEST PUSH2 0x355A DUP5 DUP5 DUP5 PUSH2 0x3DF2 JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x0 SWAP1 PUSH2 0x2675 SWAP1 PUSH3 0xF4240 SWAP1 PUSH2 0x3594 SWAP1 DUP6 SWAP1 PUSH9 0x10000000000000000 SWAP1 DIV PUSH4 0xFFFFFFFF SWAP1 DUP2 AND SWAP1 PUSH2 0x41B2 AND JUMP JUMPDEST SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x422B AND JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x308F JUMPI PUSH2 0x35DA PUSH1 0x7 DUP3 DUP2 SLOAD DUP2 LT ISZERO ISZERO PUSH2 0x35C0 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x2F9E JUMP JUMPDEST PUSH1 0x1 ADD PUSH2 0x35A6 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT ISZERO PUSH2 0x363C JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F554E444552464C4F5700000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP SWAP1 SUB SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x7472616E7366657246726F6D28616464726573732C616464726573732C75696E DUP2 MSTORE PUSH32 0x7432353629000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP3 MLOAD SWAP2 DUP3 SWAP1 SUB PUSH1 0x25 ADD DUP3 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP9 AND PUSH1 0x24 DUP6 ADD MSTORE DUP7 AND PUSH1 0x44 DUP5 ADD MSTORE PUSH1 0x64 DUP1 DUP5 ADD DUP7 SWAP1 MSTORE DUP5 MLOAD DUP1 DUP6 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x84 SWAP1 SWAP4 ADD SWAP1 SWAP4 MSTORE DUP2 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE PUSH2 0x3724 SWAP1 DUP6 SWAP1 PUSH2 0x4299 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 ADD DUP4 DUP2 LT ISZERO PUSH2 0x355D JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP6 AND SWAP2 AND PUSH32 0x77F29993CF2C084E726F7E802DA0719D6A0ADE3E204BADC7A3FFD57ECB768C24 PUSH2 0x37C5 DUP6 PUSH3 0xF4240 PUSH2 0x41B2 JUMP JUMPDEST PUSH2 0x37D8 DUP9 PUSH4 0xFFFFFFFF DUP1 DUP9 AND SWAP1 PUSH2 0x41B2 AND JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB ADD SWAP1 LOG3 POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH2 0x3800 PUSH2 0x1BE7 JUMP JUMPDEST PUSH2 0xFFFF AND GT PUSH2 0x3859 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F434F554E5400000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0xCDA PUSH2 0x4327 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x3872 DUP10 DUP10 DUP10 PUSH2 0x1C43 JUMP JUMPDEST SWAP1 SWAP4 POP SWAP2 POP DUP3 ISZERO ISZERO PUSH2 0x38CE JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5A45524F5F5441524745545F414D4F554E5400000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x38D7 DUP9 PUSH2 0x267B JUMP JUMPDEST SWAP1 POP DUP1 DUP4 LT PUSH2 0x38E2 JUMPI INVALID JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP10 AND PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4903 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ ISZERO PUSH2 0x395D JUMPI CALLVALUE DUP8 EQ PUSH2 0x3958 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4554485F414D4F554E545F4D49534D41544348000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x3A65 JUMP JUMPDEST CALLVALUE ISZERO DUP1 ISZERO PUSH2 0x3A0F JUMPI POP DUP7 PUSH2 0x3A0C PUSH2 0x3973 DUP12 PUSH2 0x267B JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP15 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x39D4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x39E8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x39FE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x35E2 AND JUMP JUMPDEST LT ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x3A65 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F414D4F554E540000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x3A6E DUP10 PUSH2 0x2F9E JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x3A97 SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0x35E2 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP10 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4903 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ ISZERO PUSH2 0x3B04 JUMPI PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND SWAP1 DUP5 ISZERO PUSH2 0x8FC MUL SWAP1 DUP6 SWAP1 PUSH1 0x0 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x3AFE JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH2 0x3B0F JUMP JUMPDEST PUSH2 0x3B0F DUP9 DUP7 DUP6 PUSH2 0x3B34 JUMP JUMPDEST PUSH2 0x3B1D DUP10 DUP10 DUP9 DUP11 DUP8 DUP8 PUSH2 0x4405 JUMP JUMPDEST PUSH2 0x3B27 DUP10 DUP10 PUSH2 0x448A JUMP JUMPDEST POP SWAP1 SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x7472616E7366657228616464726573732C75696E743235362900000000000000 DUP2 MSTORE DUP2 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x19 ADD DUP2 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x64 SWAP1 SWAP3 ADD SWAP1 SWAP3 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE PUSH2 0x3BE6 SWAP1 DUP5 SWAP1 PUSH2 0x4299 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x3BFA DUP6 PUSH2 0x1BED JUMP JUMPDEST SWAP3 POP PUSH1 0x0 SWAP2 POP JUMPDEST DUP6 MLOAD DUP3 LT ISZERO PUSH2 0x3DE8 JUMPI DUP6 MLOAD PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4903 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP1 DUP8 SWAP1 DUP5 SWAP1 DUP2 LT PUSH2 0x3C28 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ PUSH2 0x3C7A JUMPI PUSH2 0x3C7A DUP7 DUP4 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3C51 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD CALLER ADDRESS DUP9 DUP7 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3C6B JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH2 0x3642 JUMP JUMPDEST DUP5 DUP3 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3C88 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x8 PUSH1 0x0 DUP9 DUP6 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3CA4 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP3 MSTORE DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 SSTORE DUP6 MLOAD DUP7 SWAP1 DUP4 SWAP1 DUP2 LT PUSH2 0x3CD5 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH32 0x4A1A2A6176E9646D9E3157F7C2AB3C499F18337C0B0828CFB28E0A61DE4A11F7 DUP8 DUP6 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3D21 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD DUP9 DUP7 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3D39 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x40 DUP1 MLOAD SWAP4 DUP5 MSTORE SWAP2 DUP4 ADD MSTORE DUP2 DUP2 ADD DUP9 SWAP1 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG3 PUSH1 0x8 PUSH1 0x0 DUP8 DUP5 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3D71 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP3 MSTORE DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD SLOAD DUP7 MLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP2 AND SWAP2 POP PUSH2 0x3DDD SWAP1 DUP5 SWAP1 DUP9 SWAP1 DUP6 SWAP1 DUP2 LT PUSH2 0x3DB5 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD DUP8 DUP6 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3DCD JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD DUP5 PUSH2 0x3787 JUMP JUMPDEST PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x3C01 JUMP JUMPDEST POP SWAP1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x3E09 PUSH2 0x35A0 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4903 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x0 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48C3 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SLOAD PUSH2 0x3E40 SWAP1 CALLVALUE PUSH4 0xFFFFFFFF PUSH2 0x35E2 AND JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4903 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x0 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48C3 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SSTORE PUSH2 0x3E7E PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4923 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x2E74 JUMP JUMPDEST SWAP9 POP PUSH2 0x3E8C DUP10 DUP13 DUP16 DUP16 PUSH2 0x4698 JUMP JUMPDEST SWAP8 POP PUSH2 0x3E9E DUP12 DUP10 PUSH4 0xFFFFFFFF PUSH2 0x372A AND JUMP JUMPDEST SWAP7 POP PUSH1 0x0 SWAP6 POP JUMPDEST DUP13 MLOAD DUP7 LT ISZERO PUSH2 0x41A1 JUMPI DUP13 DUP7 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3EBC JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD SWAP5 POP PUSH1 0x8 PUSH1 0x0 DUP7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD SWAP4 POP DUP9 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xEBBB2158 DUP13 DUP7 PUSH1 0x9 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH4 0xFFFFFFFF AND DUP13 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH4 0xFFFFFFFF AND PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP5 POP POP POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3F72 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3F86 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x3F9C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP3 POP PUSH1 0x0 DUP4 GT PUSH2 0x3FF8 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5A45524F5F5441524745545F414D4F554E5400000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP12 DUP7 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x4006 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MLOAD DUP4 GT ISZERO PUSH2 0x4019 JUMPI INVALID JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4903 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ PUSH2 0x4048 JUMPI PUSH2 0x4043 DUP6 CALLER ADDRESS DUP7 PUSH2 0x3642 JUMP JUMPDEST PUSH2 0x40BB JUMP JUMPDEST DUP3 DUP13 DUP8 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x4057 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD GT ISZERO PUSH2 0x40BB JUMPI CALLER PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x8FC DUP5 DUP15 DUP10 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x4083 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD SUB SWAP1 DUP2 ISZERO MUL SWAP1 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x40B9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP JUMPDEST PUSH2 0x40CB DUP5 DUP5 PUSH4 0xFFFFFFFF PUSH2 0x372A AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP5 SWAP1 SSTORE DUP2 MLOAD DUP8 DUP2 MSTORE SWAP1 DUP2 ADD DUP5 SWAP1 MSTORE DUP1 DUP3 ADD DUP12 SWAP1 MSTORE SWAP1 MLOAD SWAP3 SWAP5 POP SWAP1 SWAP2 CALLER SWAP2 PUSH32 0x4A1A2A6176E9646D9E3157F7C2AB3C499F18337C0B0828CFB28E0A61DE4A11F7 SWAP2 SWAP1 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG3 PUSH1 0x8 PUSH1 0x0 DUP15 DUP9 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x4141 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP3 MSTORE DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD SLOAD DUP14 MLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP2 AND SWAP2 POP PUSH2 0x4196 SWAP1 DUP9 SWAP1 DUP16 SWAP1 DUP10 SWAP1 DUP2 LT PUSH2 0x4185 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD DUP5 DUP5 PUSH2 0x3787 JUMP JUMPDEST PUSH1 0x1 SWAP1 SWAP6 ADD SWAP5 PUSH2 0x3EA5 JUMP JUMPDEST POP SWAP6 SWAP12 SWAP11 POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 ISZERO ISZERO PUSH2 0x41C5 JUMPI PUSH1 0x0 SWAP2 POP PUSH2 0x17A9 JUMP JUMPDEST POP DUP3 DUP3 MUL DUP3 DUP5 DUP3 DUP2 ISZERO ISZERO PUSH2 0x41D5 JUMPI INVALID JUMPDEST DIV EQ PUSH2 0x355D JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP4 GT PUSH2 0x4285 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4449564944455F42595F5A45524F0000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP3 DUP5 DUP2 ISZERO ISZERO PUSH2 0x4290 JUMPI INVALID JUMPDEST DIV SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0x42A1 PUSH2 0x4883 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE POP SWAP1 POP PUSH1 0x20 DUP2 DUP4 MLOAD PUSH1 0x20 DUP6 ADD PUSH1 0x0 DUP8 GAS CALL DUP1 ISZERO ISZERO PUSH2 0x42CE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD ISZERO ISZERO PUSH2 0x3BE6 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5452414E534645525F4641494C454400000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x432F PUSH2 0x2A98 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4339 PUSH2 0x1BE7 JUMP JUMPDEST PUSH2 0xFFFF AND GT PUSH2 0x4392 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F434F554E5400000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x79BA5097 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x43E5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x43F9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0xCDA PUSH2 0x35A0 JUMP JUMPDEST PUSH32 0x8000000000000000000000000000000000000000000000000000000000000000 DUP2 LT PUSH2 0x442E JUMPI INVALID JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP5 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 SWAP1 MSTORE DUP1 DUP3 ADD DUP4 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP8 AND SWAP3 DUP9 DUP3 AND SWAP3 SWAP2 DUP11 AND SWAP2 PUSH32 0x276856B36CBC45526A0BA64F44611557A2A8B68662C5388E9FE6D72E86E1C8CB SWAP2 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG4 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x18160DDD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x44E8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x44FC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x4512 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP7 POP PUSH2 0x451F DUP10 PUSH2 0x267B JUMP JUMPDEST SWAP6 POP PUSH2 0x452A DUP9 PUSH2 0x267B JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 PUSH1 0x1 SWAP1 DUP2 ADD SLOAD SWAP4 DUP14 AND DUP4 MSTORE SWAP2 KECCAK256 ADD SLOAD SWAP2 SWAP7 POP PUSH4 0xFFFFFFFF SWAP1 DUP2 AND SWAP6 POP SWAP1 DUP2 AND SWAP4 POP PUSH2 0x4573 SWAP1 DUP7 SWAP1 DUP7 SWAP1 PUSH2 0x41B2 AND JUMP JUMPDEST SWAP2 POP PUSH2 0x4588 DUP7 PUSH4 0xFFFFFFFF DUP1 DUP7 AND SWAP1 PUSH2 0x41B2 AND JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP5 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP4 SWAP1 MSTORE DUP2 MLOAD SWAP3 SWAP4 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP13 AND SWAP4 SWAP1 DUP14 AND SWAP3 PUSH32 0x77F29993CF2C084E726F7E802DA0719D6A0ADE3E204BADC7A3FFD57ECB768C24 SWAP3 DUP3 SWAP1 SUB ADD SWAP1 LOG3 PUSH2 0x45DF DUP8 DUP11 DUP9 DUP8 PUSH2 0x3787 JUMP JUMPDEST PUSH2 0x45EB DUP8 DUP10 DUP8 DUP7 PUSH2 0x3787 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP9 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP9 SWAP1 MSTORE PUSH4 0xFFFFFFFF DUP7 AND DUP2 DUP4 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND SWAP2 PUSH32 0x8A6A7F53B3C8FA1DC4B83E3F1BE668C1B251FF8D44CDCB83EB3ACEC3FEC6A788 SWAP2 SWAP1 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG2 PUSH1 0x40 DUP1 MLOAD DUP9 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP8 SWAP1 MSTORE PUSH4 0xFFFFFFFF DUP6 AND DUP2 DUP4 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP11 AND SWAP2 PUSH32 0x8A6A7F53B3C8FA1DC4B83E3F1BE668C1B251FF8D44CDCB83EB3ACEC3FEC6A788 SWAP2 SWAP1 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG2 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x1 JUMPDEST DUP5 MLOAD DUP2 LT ISZERO PUSH2 0x475B JUMPI PUSH2 0x4703 PUSH1 0x8 PUSH1 0x0 DUP8 DUP5 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x46BC JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP3 MSTORE DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 SLOAD DUP6 MLOAD DUP7 SWAP1 DUP6 SWAP1 DUP2 LT PUSH2 0x46ED JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MLOAD SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x41B2 AND JUMP JUMPDEST PUSH2 0x4749 PUSH1 0x8 PUSH1 0x0 DUP9 DUP7 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x4718 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP3 MSTORE DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 SLOAD DUP7 MLOAD DUP8 SWAP1 DUP6 SWAP1 DUP2 LT PUSH2 0x46ED JUMPI INVALID JUMPDEST LT ISZERO PUSH2 0x4753 JUMPI DUP1 SWAP2 POP JUMPDEST PUSH1 0x1 ADD PUSH2 0x469E JUMP JUMPDEST DUP7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x2F55BDB5 DUP8 PUSH1 0x8 PUSH1 0x0 DUP10 DUP8 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x477D JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP3 MSTORE DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH1 0x9 SLOAD DUP9 MLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP2 AND SWAP1 DUP10 SWAP1 DUP9 SWAP1 DUP2 LT PUSH2 0x47BA JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH4 0xFFFFFFFF AND PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP5 POP POP POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x481E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x4832 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x4848 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xA0 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE SWAP2 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x60 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 SWAP1 PUSH1 0x20 DUP3 MUL DUP1 CODESIZE DUP4 CODECOPY POP SWAP2 SWAP3 SWAP2 POP POP JUMP STOP GASLIMIT MSTORE MSTORE 0x5f 0x49 0x4e JUMP COINBASE 0x4c 0x49 DIFFICULTY 0x5f MSTORE GASLIMIT MSTORE8 GASLIMIT MSTORE JUMP GASLIMIT STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP CALLDATALOAD EXTCODECOPY 0x2e 0xb9 0xe5 GASPRICE 0x4a 0x4a PUSH14 0x45D72082FF2E9DC829D112561877 0x2a DUP4 0xeb 0xe PUSH32 0x86632C42536F7672796E53776170436F6E766572746572557067726164657200 STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee MSTORE8 PUSH16 0x7672796E53776170466F726D756C6100 STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP GASLIMIT MSTORE MSTORE 0x5f COINBASE NUMBER NUMBER GASLIMIT MSTORE8 MSTORE8 0x5f DIFFICULTY GASLIMIT 0x4e 0x49 GASLIMIT DIFFICULTY STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 PUSH24 0xC4AFB5DBB1930CDBEF4451B66030971D5FDD9DB5D2EE7273 0x2e CALLCODE 0xe7 0xee 0xce 0x1e 0xb9 STOP 0x29 ", + "sourceMap": "101:327:36:-;;;249:1:68;362:32;;519:89:23;2700:30:4;519:89:23;168:168:36;5:2:-1;;;;30:1;27;20:12;5:2;168:168:36;;;;;;;;;;;;;;;;;;;;;;;;;488:5:66;:18;;-1:-1:-1;;;;;;488:18:66;496:10;488:18;;;168:168:36;;;;;;;;;;;475:23:72;168:168:36;475:13:72;;;;:23;:::i;:::-;-1:-1:-1;1931:8:60;:39;;-1:-1:-1;;;;;1931:39:60;;;-1:-1:-1;;;;;;1931:39:60;;;;;;;;1974:12;:43;;;;;;;;5395:7:4;475:23:72;5395:7:4;475:13:72;;;;:23;:::i;:::-;5457:17:4;6403:35;5457:17;6403:19;;;;:35;:::i;:::-;-1:-1:-1;;5480:6:4;:16;;-1:-1:-1;;;;;5480:16:4;;;-1:-1:-1;;;;;;5480:16:4;;;;;;;;;;-1:-1:-1;5500:16:4;:36;;;;;;;;-1:-1:-1;;5500:36:4;;;;;;;;;-1:-1:-1;101:327:36;;-1:-1:-1;;;;;;;;101:327:36;553:117:72;-1:-1:-1;;;;;620:22:72;;;;612:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;553:117;:::o;6493:156:4:-;1826:7;6571:43;;;;;6563:82;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;101:327:36;;;;;;;" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "6080604052600436106102635763ffffffff60e060020a600035041663024c7ec781146102ef5780630c7d5cd8146103095780630e53aae91461033757806312c2aca41461038c57806319b64015146103b55780631cfab290146103e95780631e1401f81461040a57806321e6b53d1461044d57806322f3e2d41461046e5780632fe8a6ad1461048357806338a5e01614610498578063395900d4146104ad5780633e8ff43f146104d7578063415f12401461050357806349d10b641461051b5780634af80f0e1461053057806354fd4d5014610551578063579cd3ca146105665780635e35359e1461057b57806361cd756e146105a557806367b6d57c146105ba578063690d8320146105db5780636a49d2c4146105fc5780636aa5332c146106265780636ad419a81461065057806371f52bf31461067157806379ba5097146106865780637b1039991461069b5780637d8916bd146106b05780638da5cb5b1461073357806394c275ad146107485780639b99a8e21461075d578063a60e772414610772578063af94b8d8146107c7578063b127c0a5146107f1578063b4a176d314610884578063bbb7e5d814610899578063bf754558146108b4578063c45d3d92146108c9578063ca1d209d146108de578063cdc91c69146108e9578063d031370b146108fe578063d260529c14610916578063d3fb73b41461092b578063d4ee1d9014610940578063d55ec69714610955578063d66bd5241461096a578063d89595121461098b578063dc8de379146109ac578063e8dc12ff146109cd578063ecbca55d146109f7578063f2fde38b14610a15578063fc0c546a14610a36575b60008051602061490383398151915260005260086020527f353c2eb9e53a4a4a6d45d72082ff2e9dc829d1125618772a83eb0e7f86632c43546601000000000000900460ff1615156102ed576040805160e560020a62461bcd02815260206004820152601360248201526000805160206148a3833981519152604482015290519081900360640190fd5b005b3480156102fb57600080fd5b506102ed6004351515610a4b565b34801561031557600080fd5b5061031e610a93565b6040805163ffffffff9092168252519081900360200190f35b34801561034357600080fd5b50610358600160a060020a0360043516610a9f565b6040805195865263ffffffff9094166020860152911515848401521515606084015215156080830152519081900360a00190f35b34801561039857600080fd5b506103a1610b3a565b604080519115158252519081900360200190f35b3480156103c157600080fd5b506103cd600435610b83565b60408051600160a060020a039092168252519081900360200190f35b3480156103f557600080fd5b5061031e600160a060020a0360043516610baf565b34801561041657600080fd5b50610434600160a060020a0360043581169060243516604435610be1565b6040805192835260208301919091528051918290030190f35b34801561045957600080fd5b506102ed600160a060020a0360043516610bfb565b34801561047a57600080fd5b506103a1610c0f565b34801561048f57600080fd5b506103a1610ca9565b3480156104a457600080fd5b506102ed610cca565b3480156104b957600080fd5b506102ed600160a060020a0360043581169060243516604435610cdc565b3480156104e357600080fd5b506104ec610d77565b6040805161ffff9092168252519081900360200190f35b34801561050f57600080fd5b506102ed600435610d7c565b34801561052757600080fd5b506102ed610fc0565b34801561053c57600080fd5b506102ed600160a060020a036004351661122d565b34801561055d57600080fd5b506104ec61126f565b34801561057257600080fd5b5061031e611274565b34801561058757600080fd5b506102ed600160a060020a036004358116906024351660443561128c565b3480156105b157600080fd5b506103cd611395565b3480156105c657600080fd5b506102ed600160a060020a03600435166113a4565b3480156105e757600080fd5b506102ed600160a060020a0360043516611447565b34801561060857600080fd5b506102ed600160a060020a036004351663ffffffff6024351661154c565b34801561063257600080fd5b5061063e60043561178b565b60408051918252519081900360200190f35b34801561065c57600080fd5b506102ed600160a060020a03600435166117b0565b34801561067d57600080fd5b506104ec6117e6565b34801561069257600080fd5b506102ed6117f5565b3480156106a757600080fd5b506103cd6118b6565b604080516020600480358082013583810280860185019096528085526102ed95369593946024949385019291829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a99890198929750908201955093508392508501908490808284375094975050933594506118c59350505050565b34801561073f57600080fd5b506103cd611bc4565b34801561075457600080fd5b5061031e611bd3565b34801561076957600080fd5b506104ec611be7565b34801561077e57600080fd5b506040805160206004803580820135838102808601850190965280855261063e95369593946024949385019291829185019084908082843750949750611bed9650505050505050565b3480156107d357600080fd5b50610434600160a060020a0360043581169060243516604435611c43565b3480156107fd57600080fd5b506040805160206004602480358281013584810280870186019097528086526102ed96843596369660449591949091019291829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750949750611de89650505050505050565b34801561089057600080fd5b506102ed611f1c565b3480156108a557600080fd5b5061063e600435602435611f55565b3480156108c057600080fd5b506103a1611f6f565b3480156108d557600080fd5b506103cd611f74565b6102ed600435611f83565b3480156108f557600080fd5b506102ed612490565b34801561090a57600080fd5b506103cd6004356124e9565b34801561092257600080fd5b506103a1610d77565b34801561093757600080fd5b506103cd612511565b34801561094c57600080fd5b506103cd612520565b34801561096157600080fd5b506102ed61252f565b34801561097657600080fd5b50610358600160a060020a0360043516612624565b34801561099757600080fd5b5061063e600160a060020a036004351661266a565b3480156109b857600080fd5b5061063e600160a060020a036004351661267b565b61063e600160a060020a0360043581169060243581169060443590606435811690608435166126a4565b348015610a0357600080fd5b506102ed63ffffffff600435166128f7565b348015610a2157600080fd5b506102ed600160a060020a03600435166129ec565b348015610a4257600080fd5b506103cd612a89565b610a53612a98565b60038054911515740100000000000000000000000000000000000000000274ff000000000000000000000000000000000000000019909216919091179055565b60095463ffffffff1681565b6000806000806000610aaf614855565b50505050600160a060020a03929092166000908152600860209081526040808320815160a081018352815480825260019092015463ffffffff811694820185905260ff64010000000082048116151594830194909452650100000000008104841615156060830152660100000000000090049092161515608090920182905295919450919250829190565b60008051602061490383398151915260005260086020527f353c2eb9e53a4a4a6d45d72082ff2e9dc829d1125618772a83eb0e7f86632c43546601000000000000900460ff1690565b6000600782815481101515610b9457fe5b600091825260209091200154600160a060020a031692915050565b600081610bbb81612ae8565b5050600160a060020a031660009081526008602052604090206001015463ffffffff1690565b600080610bef858585611c43565b91509150935093915050565b610c03612a98565b610c0c816113a4565b50565b600030600160a060020a0316600560009054906101000a9004600160a060020a0316600160a060020a0316638da5cb5b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610c6e57600080fd5b505af1158015610c82573d6000803e3d6000fd5b505050506040513d6020811015610c9857600080fd5b5051600160a060020a031614905090565b60035474010000000000000000000000000000000000000000900460ff1681565b610cd2612a98565b610cda612490565b565b610ce4612a98565b600554604080517f5e35359e000000000000000000000000000000000000000000000000000000008152600160a060020a03868116600483015285811660248301526044820185905291519190921691635e35359e91606480830192600092919082900301818387803b158015610d5a57600080fd5b505af1158015610d6e573d6000803e3d6000fd5b50505050505050565b600190565b600060606000610d8a612b55565b600260045560008411610de7576040805160e560020a62461bcd02815260206004820152600f60248201527f4552525f5a45524f5f414d4f554e540000000000000000000000000000000000604482015290519081900360640190fd5b600560009054906101000a9004600160a060020a0316600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610e3a57600080fd5b505af1158015610e4e573d6000803e3d6000fd5b505050506040513d6020811015610e6457600080fd5b5051600554604080517fa24835d1000000000000000000000000000000000000000000000000000000008152336004820152602481018890529051929550600160a060020a039091169163a24835d19160448082019260009290919082900301818387803b158015610ed557600080fd5b505af1158015610ee9573d6000803e3d6000fd5b50505050600780549050604051908082528060200260200182016040528015610f1c578160200160208202803883390190505b509150600090505b8151811015610f4f5760018282815181101515610f3d57fe5b60209081029091010152600101610f24565b610fb56007805480602002602001604051908101604052809291908181526020018280548015610fa857602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311610f8a575b5050505050838587612baf565b505060016004555050565b60008054600160a060020a0316331480610ff5575060035474010000000000000000000000000000000000000000900460ff16155b1515611039576040805160e560020a62461bcd0281526020600482015260116024820152600080516020614943833981519152604482015290519081900360640190fd5b6110627f436f6e7472616374526567697374727900000000000000000000000000000000612e74565b600254909150600160a060020a0380831691161480159061108b5750600160a060020a03811615155b15156110e1576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e56414c49445f5245474953545259000000000000000000000000604482015290519081900360640190fd5b604080517fbb34534c0000000000000000000000000000000000000000000000000000000081527f436f6e747261637452656769737472790000000000000000000000000000000060048201529051600091600160a060020a0384169163bb34534c9160248082019260209290919082900301818787803b15801561116557600080fd5b505af1158015611179573d6000803e3d6000fd5b505050506040513d602081101561118f57600080fd5b5051600160a060020a031614156111f0576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e56414c49445f5245474953545259000000000000000000000000604482015290519081900360640190fd5b6002805460038054600160a060020a0380841673ffffffffffffffffffffffffffffffffffffffff19928316179092559091169216919091179055565b611235612a98565b8061123f81612f0c565b506006805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b602081565b60095468010000000000000000900463ffffffff1681565b6000611296612b55565b60026004556112a3612a98565b6112ba6000805160206148e3833981519152612e74565b600160a060020a0385166000908152600860205260409020600101549091506601000000000000900460ff1615806112f757506112f5610c0f565b155b8061130f5750600054600160a060020a038281169116145b1515611353576040805160e560020a62461bcd0281526020600482015260116024820152600080516020614943833981519152604482015290519081900360640190fd5b61135e848484612f6d565b600160a060020a0384166000908152600860205260409020600101546601000000000000900460ff1615610fb557610fb584612f9e565b600354600160a060020a031681565b6113ac612a98565b6000805160206148e38339815191526113c481613093565b600554604080517ff2fde38b000000000000000000000000000000000000000000000000000000008152600160a060020a0385811660048301529151919092169163f2fde38b91602480830192600092919082900301818387803b15801561142b57600080fd5b505af115801561143f573d6000803e3d6000fd5b505050505050565b6000611451612b55565b600260045561145e612a98565b60008051602061490383398151915261147681612ae8565b61148d6000805160206148e3833981519152612e74565b9150611497610c0f565b15806114b05750600054600160a060020a038381169116145b15156114f4576040805160e560020a62461bcd0281526020600482015260116024820152600080516020614943833981519152604482015290519081900360640190fd5b604051600160a060020a03841690303180156108fc02916000818181858888f1935050505015801561152a573d6000803e3d6000fd5b50611542600080516020614903833981519152612f9e565b5050600160045550565b6000611556612a98565b61155e6130e9565b8261156881613146565b8361157281612f0c565b8361157c816131a6565b600554600160a060020a038781169116148015906115c05750600160a060020a0386166000908152600860205260409020600101546601000000000000900460ff16155b1515611604576040805160e560020a62461bcd02815260206004820152601360248201526000805160206148a3833981519152604482015290519081900360640190fd5b60095463ffffffff908116620f4240038116908616111561166f576040805160e560020a62461bcd02815260206004820152601a60248201527f4552525f494e56414c49445f524553455256455f574549474854000000000000604482015290519081900360640190fd5b61ffff61167a611be7565b61ffff16106116d3576040805160e560020a62461bcd02815260206004820152601960248201527f4552525f494e56414c49445f524553455256455f434f554e5400000000000000604482015290519081900360640190fd5b505050600160a060020a0390921660008181526008602052604081208181556001908101805466ff0000000000001963ffffffff80881663ffffffff1993841617919091166601000000000000179092556007805493840181559093527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688909101805473ffffffffffffffffffffffffffffffffffffffff191690931790925560098054808416909401909216921691909117905550565b600080825b60008111156117a95760019190910190600a9004611790565b5092915050565b60098054600160a060020a039092166c01000000000000000000000000026bffffffffffffffffffffffff909216919091179055565b60006117f0611be7565b905090565b600154600160a060020a03163314611845576040805160e560020a62461bcd0281526020600482015260116024820152600080516020614943833981519152604482015290519081900360640190fd5b60015460008054604051600160a060020a0393841693909116917f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91a3600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b600254600160a060020a031681565b60008060006118d2612b55565b60026004556118df61321b565b6118ea868686613279565b600092505b85518310156119a85785516000805160206149038339815191529087908590811061191657fe5b90602001906020020151600160a060020a0316141561199d5734858481518110151561193e57fe5b602090810290910101511461199d576040805160e560020a62461bcd02815260206004820152601760248201527f4552525f4554485f414d4f554e545f4d49534d41544348000000000000000000604482015290519081900360640190fd5b6001909201916118ef565b6000341115611a4d5760008051602061490383398151915260005260086020527f353c2eb9e53a4a4a6d45d72082ff2e9dc829d1125618772a83eb0e7f86632c43546601000000000000900460ff161515611a4d576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f4e4f5f4554485f524553455256450000000000000000000000000000604482015290519081900360640190fd5b600560009054906101000a9004600160a060020a0316600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015611aa057600080fd5b505af1158015611ab4573d6000803e3d6000fd5b505050506040513d6020811015611aca57600080fd5b50519150611ad9868684613535565b905083811015611b33576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f52455455524e5f544f4f5f4c4f570000000000000000000000000000604482015290519081900360640190fd5b600554604080517f867904b4000000000000000000000000000000000000000000000000000000008152336004820152602481018490529051600160a060020a039092169163867904b49160448082019260009290919082900301818387803b158015611b9f57600080fd5b505af1158015611bb3573d6000803e3d6000fd5b505060016004555050505050505050565b600054600160a060020a031681565b600954640100000000900463ffffffff1681565b60075490565b80516000908190815b81811015611c2a57611c1e8582815181101515611c0f57fe5b9060200190602002015161178b565b90920191600101611bf6565b6001611c368484611f55565b03600a0a95945050505050565b600080600080611c5161321b565b86611c5b81612ae8565b86611c6581612ae8565b600160a060020a038981169089161415611cc9576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f53414d455f534f555243455f54415247455400000000000000000000604482015290519081900360640190fd5b611ce0600080516020614923833981519152612e74565b600160a060020a03166394491fab611cf78b61267b565b600160a060020a038c1660009081526008602052604090206001015463ffffffff16611d228c61267b565b600160a060020a038d16600090815260086020908152604080832060010154815163ffffffff89811660e060020a028252600482019890985295871660248701526044860194909452949092166064840152608483018d9052925160a48084019492939192918390030190829087803b158015611d9e57600080fd5b505af1158015611db2573d6000803e3d6000fd5b505050506040513d6020811015611dc857600080fd5b50519350611dd584613564565b9384900399939850929650505050505050565b6000611df2612b55565b6002600455611dff61321b565b611e0a838386613279565b600560009054906101000a9004600160a060020a0316600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015611e5d57600080fd5b505af1158015611e71573d6000803e3d6000fd5b505050506040513d6020811015611e8757600080fd5b5051600554604080517fa24835d1000000000000000000000000000000000000000000000000000000008152336004820152602481018890529051929350600160a060020a039091169163a24835d19160448082019260009290919082900301818387803b158015611ef857600080fd5b505af1158015611f0c573d6000803e3d6000fd5b50505050610fb583838387612baf565b611f24612a98565b6003546002805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055565b600081600281048401811515611f6757fe5b049392505050565b600181565b600654600160a060020a031681565b600080600080600080600080600080611f9a612b55565b6002600455611fa76135a0565b60008051602061490383398151915260005260086020526000805160206148c383398151915254611fde903463ffffffff6135e216565b6000805160206149038339815191526000908152600860209081526000805160206148c383398151915292909255600554604080517f18160ddd0000000000000000000000000000000000000000000000000000000081529051600160a060020a03909216936318160ddd9360048084019492938390030190829087803b15801561206857600080fd5b505af115801561207c573d6000803e3d6000fd5b505050506040513d602081101561209257600080fd5b505199506120ad600080516020614923833981519152612e74565b6007549099509750600096505b878710156123fa5760078054889081106120d057fe5b9060005260206000200160009054906101000a9004600160a060020a031695506008600087600160a060020a0316600160a060020a0316815260200190815260200160002060000154945088600160a060020a031663ebbb21588b87600960009054906101000a900463ffffffff168f6040518563ffffffff1660e060020a028152600401808581526020018481526020018363ffffffff1663ffffffff168152602001828152602001945050505050602060405180830381600087803b15801561219a57600080fd5b505af11580156121ae573d6000803e3d6000fd5b505050506040513d60208110156121c457600080fd5b50519350600160a060020a038616600080516020614903833981519152141561232657833411156122245760405133903486900380156108fc02916000818181858888f1935050505015801561221e573d6000803e3d6000fd5b50612321565b83341015612321573415612282576040805160e560020a62461bcd02815260206004820152601560248201527f4552525f494e56414c49445f4554485f56414c55450000000000000000000000604482015290519081900360640190fd5b6009546122aa906c010000000000000000000000009004600160a060020a0316333087613642565b6009600c9054906101000a9004600160a060020a0316600160a060020a0316632e1a7d4d856040518263ffffffff1660e060020a02815260040180828152602001915050600060405180830381600087803b15801561230857600080fd5b505af115801561231c573d6000803e3d6000fd5b505050505b612332565b61233286333087613642565b612342858563ffffffff61372a16565b600160a060020a0387166000908152600860205260409020819055925061236f8a8c63ffffffff61372a16565b60408051868152602081018690528082018390529051919350600160a060020a0388169133917f4a1a2a6176e9646d9e3157f7c2ab3c499f18337c0b0828cfb28e0a61de4a11f7919081900360600190a350600160a060020a03851660009081526008602052604090206001015463ffffffff166123ef82878584613787565b6001909601956120ba565b600554604080517f867904b4000000000000000000000000000000000000000000000000000000008152336004820152602481018e90529051600160a060020a039092169163867904b49160448082019260009290919082900301818387803b15801561246657600080fd5b505af115801561247a573d6000803e3d6000fd5b5050600160045550505050505050505050505050565b612498612a98565b6124a06137f6565b600554600190600160a060020a03166124b7610d77565b61ffff167f6b08c2e2c9969e55a647a764db9b554d64dc42f1a704da11a6d5b129ad163f2c60405160405180910390a4565b60078054829081106124f757fe5b600091825260209091200154600160a060020a0316905081565b600554600160a060020a031681565b600154600160a060020a031681565b6000612539612a98565b6125506000805160206148e3833981519152612e74565b600554909150600090600160a060020a031661256a610d77565b61ffff167f6b08c2e2c9969e55a647a764db9b554d64dc42f1a704da11a6d5b129ad163f2c60405160405180910390a46125a3816129ec565b604080517f90f58c96000000000000000000000000000000000000000000000000000000008152602060048201529051600160a060020a038316916390f58c9691602480830192600092919082900301818387803b15801561260457600080fd5b505af1158015612618573d6000803e3d6000fd5b50505050610c0c6117f5565b6008602052600090815260409020805460019091015463ffffffff81169060ff640100000000820481169165010000000000810482169166010000000000009091041685565b60006126758261267b565b92915050565b60008161268781612ae8565b5050600160a060020a031660009081526008602052604090205490565b60006126ae612b55565b60026004557f536f7672796e537761704e6574776f726b0000000000000000000000000000006126dd81613093565b600160a060020a038781169087161415612741576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f53414d455f534f555243455f54415247455400000000000000000000604482015290519081900360640190fd5b600654600160a060020a031615806128845750600654604080517f3af32abf000000000000000000000000000000000000000000000000000000008152600160a060020a03878116600483015291519190921691633af32abf9160248083019260209291908290030181600087803b1580156127bc57600080fd5b505af11580156127d0573d6000803e3d6000fd5b505050506040513d60208110156127e657600080fd5b505180156128845750600654604080517f3af32abf000000000000000000000000000000000000000000000000000000008152600160a060020a03868116600483015291519190921691633af32abf9160248083019260209291908290030181600087803b15801561285757600080fd5b505af115801561286b573d6000803e3d6000fd5b505050506040513d602081101561288157600080fd5b50515b15156128da576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f4e4f545f57484954454c495354454400000000000000000000000000604482015290519081900360640190fd5b6128e78787878787613861565b6001600455979650505050505050565b6128ff612a98565b60095463ffffffff6401000000009091048116908216111561296b576040805160e560020a62461bcd02815260206004820152601a60248201527f4552525f494e56414c49445f434f4e56455253494f4e5f464545000000000000604482015290519081900360640190fd5b6009546040805163ffffffff6801000000000000000090930483168152918316602083015280517f81cd2ffb37dd237c0e4e2a3de5265fcf9deb43d3e7801e80db9f1ccfba7ee6009281900390910190a16009805463ffffffff90921668010000000000000000026bffffffff000000000000000019909216919091179055565b6129f4612a98565b600054600160a060020a0382811691161415612a5a576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f53414d455f4f574e4552000000000000000000000000000000000000604482015290519081900360640190fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600554600160a060020a031690565b600054600160a060020a03163314610cda576040805160e560020a62461bcd0281526020600482015260116024820152600080516020614943833981519152604482015290519081900360640190fd5b600160a060020a0381166000908152600860205260409020600101546601000000000000900460ff161515610c0c576040805160e560020a62461bcd02815260206004820152601360248201526000805160206148a3833981519152604482015290519081900360640190fd5b600454600114610cda576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f5245454e5452414e4359000000000000000000000000000000000000604482015290519081900360640190fd5b600080600080600080600080612bc36135a0565b612bda600080516020614923833981519152612e74565b9750612bec8a8a63ffffffff6135e216565b9650600095505b8b51861015612e66578b86815181101515612c0a57fe5b9060200190602002015194506008600086600160a060020a0316600160a060020a0316815260200190815260200160002060000154935087600160a060020a0316638074590a8b86600960009054906101000a900463ffffffff168d6040518563ffffffff1660e060020a028152600401808581526020018481526020018363ffffffff1663ffffffff168152602001828152602001945050505050602060405180830381600087803b158015612cc057600080fd5b505af1158015612cd4573d6000803e3d6000fd5b505050506040513d6020811015612cea57600080fd5b50518b519093508b9087908110612cfd57fe5b60209081029091010151831015612d5e576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f5a45524f5f5441524745545f414d4f554e5400000000000000000000604482015290519081900360640190fd5b612d6e848463ffffffff6135e216565b600160a060020a03861660008181526008602052604090208290559092506000805160206149038339815191521415612dd457604051339084156108fc029085906000818181858888f19350505050158015612dce573d6000803e3d6000fd5b50612ddf565b612ddf853385613b34565b60408051848152602081018490528082018990529051600160a060020a0387169133917fbc7d19d505c7ec4db83f3b51f19fb98c4c8a99922e7839d1ee608dfbee29501b9181900360600190a350600160a060020a03841660009081526008602052604090206001015463ffffffff16612e5b87868484613787565b600190950194612bf3565b505050505050505050505050565b600254604080517fbb34534c000000000000000000000000000000000000000000000000000000008152600481018490529051600092600160a060020a03169163bb34534c91602480830192602092919082900301818787803b158015612eda57600080fd5b505af1158015612eee573d6000803e3d6000fd5b505050506040513d6020811015612f0457600080fd5b505192915050565b600160a060020a038116301415610c0c576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f414444524553535f49535f53454c4600000000000000000000000000604482015290519081900360640190fd5b612f75612a98565b82612f7f81613146565b82612f8981613146565b83612f9381612f0c565b61143f868686613b34565b80612fa881612ae8565b600160a060020a0382166000805160206149038339815191521415612fe857600160a060020a03821660009081526008602052604090203031905561308f565b604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a038416916370a082319160248083019260209291908290030181600087803b15801561304957600080fd5b505af115801561305d573d6000803e3d6000fd5b505050506040513d602081101561307357600080fd5b5051600160a060020a0383166000908152600860205260409020555b5050565b61309c81612e74565b600160a060020a03163314610c0c576040805160e560020a62461bcd0281526020600482015260116024820152600080516020614943833981519152604482015290519081900360640190fd5b6130f1610c0f565b15610cda576040805160e560020a62461bcd02815260206004820152600a60248201527f4552525f41435449564500000000000000000000000000000000000000000000604482015290519081900360640190fd5b600160a060020a0381161515610c0c576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b60008163ffffffff161180156131c55750620f424063ffffffff821611155b1515610c0c576040805160e560020a62461bcd02815260206004820152601a60248201527f4552525f494e56414c49445f524553455256455f574549474854000000000000604482015290519081900360640190fd5b613223610c0f565b1515610cda576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f494e4143544956450000000000000000000000000000000000000000604482015290519081900360640190fd5b6007548351600091829181146132c7576040805160e560020a62461bcd02815260206004820152601360248201526000805160206148a3833981519152604482015290519081900360640190fd5b8451811461331f576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f494e56414c49445f414d4f554e540000000000000000000000000000604482015290519081900360640190fd5b600092505b808310156134dd5760086000878581518110151561333e57fe5b6020908102909101810151600160a060020a031682528101919091526040016000206001015460ff66010000000000009091041615156133b6576040805160e560020a62461bcd02815260206004820152601360248201526000805160206148a3833981519152604482015290519081900360640190fd5b600091505b8082101561341e5785828151811015156133d157fe5b90602001906020020151600160a060020a03166007848154811015156133f357fe5b600091825260209091200154600160a060020a031614156134135761341e565b6001909101906133bb565b808210613463576040805160e560020a62461bcd02815260206004820152601360248201526000805160206148a3833981519152604482015290519081900360640190fd5b6000858481518110151561347357fe5b60209081029091010151116134d2576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f494e56414c49445f414d4f554e540000000000000000000000000000604482015290519081900360640190fd5b600190920191613324565b6000841161143f576040805160e560020a62461bcd02815260206004820152600f60248201527f4552525f5a45524f5f414d4f554e540000000000000000000000000000000000604482015290519081900360640190fd5b600081151561354f576135488484613beb565b905061355d565b61355a848484613df2565b90505b9392505050565b60095460009061267590620f42409061359490859068010000000000000000900463ffffffff908116906141b216565b9063ffffffff61422b16565b60075460005b8181101561308f576135da6007828154811015156135c057fe5b600091825260209091200154600160a060020a0316612f9e565b6001016135a6565b60008183101561363c576040805160e560020a62461bcd02815260206004820152600d60248201527f4552525f554e444552464c4f5700000000000000000000000000000000000000604482015290519081900360640190fd5b50900390565b604080517f7472616e7366657246726f6d28616464726573732c616464726573732c75696e81527f74323536290000000000000000000000000000000000000000000000000000006020808301919091528251918290036025018220600160a060020a038088166024850152861660448401526064808401869052845180850390910181526084909301909352810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1990931692909217909152613724908590614299565b50505050565b60008282018381101561355d576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b600554600160a060020a0380851691167f77f29993cf2c084e726f7e802da0719d6a0ade3e204badc7a3ffd57ecb768c246137c585620f42406141b2565b6137d88863ffffffff808816906141b216565b6040805192835260208301919091528051918290030190a350505050565b6001613800611be7565b61ffff1611613859576040805160e560020a62461bcd02815260206004820152601960248201527f4552525f494e56414c49445f524553455256455f434f554e5400000000000000604482015290519081900360640190fd5b610cda614327565b600080600080613872898989611c43565b90935091508215156138ce576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f5a45524f5f5441524745545f414d4f554e5400000000000000000000604482015290519081900360640190fd5b6138d78861267b565b90508083106138e257fe5b600160a060020a038916600080516020614903833981519152141561395d57348714613958576040805160e560020a62461bcd02815260206004820152601760248201527f4552525f4554485f414d4f554e545f4d49534d41544348000000000000000000604482015290519081900360640190fd5b613a65565b34158015613a0f575086613a0c6139738b61267b565b604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a038e16916370a082319160248083019260209291908290030181600087803b1580156139d457600080fd5b505af11580156139e8573d6000803e3d6000fd5b505050506040513d60208110156139fe57600080fd5b50519063ffffffff6135e216565b10155b1515613a65576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f494e56414c49445f414d4f554e540000000000000000000000000000604482015290519081900360640190fd5b613a6e89612f9e565b600160a060020a038816600090815260086020526040902054613a97908463ffffffff6135e216565b600160a060020a0389166000818152600860205260409020919091556000805160206149038339815191521415613b0457604051600160a060020a0386169084156108fc029085906000818181858888f19350505050158015613afe573d6000803e3d6000fd5b50613b0f565b613b0f888685613b34565b613b1d8989888a8787614405565b613b27898961448a565b5090979650505050505050565b604080517f7472616e7366657228616464726573732c75696e74323536290000000000000081528151908190036019018120600160a060020a038516602483015260448083018590528351808403909101815260649092019092526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1990931692909217909152613be6908490614299565b505050565b600080600080613bfa85611bed565b9250600091505b8551821015613de857855160008051602061490383398151915290879084908110613c2857fe5b60209081029091010151600160a060020a031614613c7a57613c7a8683815181101515613c5157fe5b9060200190602002015133308886815181101515613c6b57fe5b90602001906020020151613642565b8482815181101515613c8857fe5b90602001906020020151600860008885815181101515613ca457fe5b6020908102909101810151600160a060020a03168252810191909152604001600020558551869083908110613cd557fe5b90602001906020020151600160a060020a031633600160a060020a03167f4a1a2a6176e9646d9e3157f7c2ab3c499f18337c0b0828cfb28e0a61de4a11f78785815181101515613d2157fe5b906020019060200201518886815181101515613d3957fe5b60209081029091018101516040805193845291830152818101889052519081900360600190a3600860008784815181101515613d7157fe5b6020908102909101810151600160a060020a0316825281019190915260400160002060010154865163ffffffff9091169150613ddd908490889085908110613db557fe5b906020019060200201518785815181101515613dcd57fe5b9060200190602002015184613787565b600190910190613c01565b5090949350505050565b600080600080600080600080600080613e096135a0565b60008051602061490383398151915260005260086020526000805160206148c383398151915254613e40903463ffffffff6135e216565b60008051602061490383398151915260005260086020526000805160206148c383398151915255613e7e600080516020614923833981519152612e74565b9850613e8c898c8f8f614698565b9750613e9e8b8963ffffffff61372a16565b9650600095505b8c518610156141a1578c86815181101515613ebc57fe5b9060200190602002015194506008600086600160a060020a0316600160a060020a0316815260200190815260200160002060000154935088600160a060020a031663ebbb21588c86600960009054906101000a900463ffffffff168c6040518563ffffffff1660e060020a028152600401808581526020018481526020018363ffffffff1663ffffffff168152602001828152602001945050505050602060405180830381600087803b158015613f7257600080fd5b505af1158015613f86573d6000803e3d6000fd5b505050506040513d6020811015613f9c57600080fd5b5051925060008311613ff8576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f5a45524f5f5441524745545f414d4f554e5400000000000000000000604482015290519081900360640190fd5b8b8681518110151561400657fe5b6020908102909101015183111561401957fe5b600160a060020a038516600080516020614903833981519152146140485761404385333086613642565b6140bb565b828c8781518110151561405757fe5b9060200190602002015111156140bb5733600160a060020a03166108fc848e8981518110151561408357fe5b90602001906020020151039081150290604051600060405180830381858888f193505050501580156140b9573d6000803e3d6000fd5b505b6140cb848463ffffffff61372a16565b600160a060020a03861660008181526008602090815260409182902084905581518781529081018490528082018b90529051929450909133917f4a1a2a6176e9646d9e3157f7c2ab3c499f18337c0b0828cfb28e0a61de4a11f7919081900360600190a3600860008e8881518110151561414157fe5b6020908102909101810151600160a060020a03168252810191909152604001600020600101548d5163ffffffff90911691506141969088908f908990811061418557fe5b906020019060200201518484613787565b600190950194613ea5565b50959b9a5050505050505050505050565b6000808315156141c557600091506117a9565b508282028284828115156141d557fe5b041461355d576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b600080808311614285576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f4449564944455f42595f5a45524f0000000000000000000000000000604482015290519081900360640190fd5b828481151561429057fe5b04949350505050565b6142a1614883565b602060405190810160405280600181525090506020818351602085016000875af18015156142ce57600080fd5b5080511515613be6576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f5452414e534645525f4641494c454400000000000000000000000000604482015290519081900360640190fd5b61432f612a98565b6000614339611be7565b61ffff1611614392576040805160e560020a62461bcd02815260206004820152601960248201527f4552525f494e56414c49445f524553455256455f434f554e5400000000000000604482015290519081900360640190fd5b600560009054906101000a9004600160a060020a0316600160a060020a03166379ba50976040518163ffffffff1660e060020a028152600401600060405180830381600087803b1580156143e557600080fd5b505af11580156143f9573d6000803e3d6000fd5b50505050610cda6135a0565b7f8000000000000000000000000000000000000000000000000000000000000000811061442e57fe5b60408051848152602081018490528082018390529051600160a060020a038087169288821692918a16917f276856b36cbc45526a0ba64f44611557a2a8b68662c5388e9fe6d72e86e1c8cb9181900360600190a4505050505050565b6000806000806000806000600560009054906101000a9004600160a060020a0316600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156144e857600080fd5b505af11580156144fc573d6000803e3d6000fd5b505050506040513d602081101561451257600080fd5b5051965061451f8961267b565b955061452a8861267b565b600160a060020a03808b16600090815260086020526040808220600190810154938d1683529120015491965063ffffffff9081169550908116935061457390869086906141b216565b91506145888663ffffffff808616906141b216565b60408051848152602081018390528151929350600160a060020a03808c1693908d16927f77f29993cf2c084e726f7e802da0719d6a0ade3e204badc7a3ffd57ecb768c24928290030190a36145df878a8887613787565b6145eb87898786613787565b604080518881526020810188905263ffffffff8616818301529051600160a060020a038b16917f8a6a7f53b3c8fa1dc4b83e3f1be668c1b251ff8d44cdcb83eb3acec3fec6a788919081900360600190a2604080518881526020810187905263ffffffff8516818301529051600160a060020a038a16917f8a6a7f53b3c8fa1dc4b83e3f1be668c1b251ff8d44cdcb83eb3acec3fec6a788919081900360600190a2505050505050505050565b60008060015b845181101561475b576147036008600087848151811015156146bc57fe5b6020908102909101810151600160a060020a031682528101919091526040016000205485518690859081106146ed57fe5b602090810290910101519063ffffffff6141b216565b61474960086000888681518110151561471857fe5b6020908102909101810151600160a060020a031682528101919091526040016000205486518790859081106146ed57fe5b1015614753578091505b60010161469e565b86600160a060020a0316632f55bdb58760086000898781518110151561477d57fe5b6020908102909101810151600160a060020a0316825281019190915260400160002054600954885163ffffffff909116908990889081106147ba57fe5b906020019060200201516040518563ffffffff1660e060020a028152600401808581526020018481526020018363ffffffff1663ffffffff168152602001828152602001945050505050602060405180830381600087803b15801561481e57600080fd5b505af1158015614832573d6000803e3d6000fd5b505050506040513d602081101561484857600080fd5b5051979650505050505050565b6040805160a08101825260008082526020820181905291810182905260608101829052608081019190915290565b602060405190810160405280600190602082028038833950919291505056004552525f494e56414c49445f5245534552564500000000000000000000000000353c2eb9e53a4a4a6d45d72082ff2e9dc829d1125618772a83eb0e7f86632c42536f7672796e53776170436f6e76657274657255706772616465720000000000000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee536f7672796e53776170466f726d756c610000000000000000000000000000004552525f4143434553535f44454e494544000000000000000000000000000000a165627a7a7230582077c4afb5dbb1930cdbef4451b66030971d5fdd9db5d2ee72732ef2e7eece1eb90029", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x263 JUMPI PUSH4 0xFFFFFFFF PUSH1 0xE0 PUSH1 0x2 EXP PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x24C7EC7 DUP2 EQ PUSH2 0x2EF JUMPI DUP1 PUSH4 0xC7D5CD8 EQ PUSH2 0x309 JUMPI DUP1 PUSH4 0xE53AAE9 EQ PUSH2 0x337 JUMPI DUP1 PUSH4 0x12C2ACA4 EQ PUSH2 0x38C JUMPI DUP1 PUSH4 0x19B64015 EQ PUSH2 0x3B5 JUMPI DUP1 PUSH4 0x1CFAB290 EQ PUSH2 0x3E9 JUMPI DUP1 PUSH4 0x1E1401F8 EQ PUSH2 0x40A JUMPI DUP1 PUSH4 0x21E6B53D EQ PUSH2 0x44D JUMPI DUP1 PUSH4 0x22F3E2D4 EQ PUSH2 0x46E JUMPI DUP1 PUSH4 0x2FE8A6AD EQ PUSH2 0x483 JUMPI DUP1 PUSH4 0x38A5E016 EQ PUSH2 0x498 JUMPI DUP1 PUSH4 0x395900D4 EQ PUSH2 0x4AD JUMPI DUP1 PUSH4 0x3E8FF43F EQ PUSH2 0x4D7 JUMPI DUP1 PUSH4 0x415F1240 EQ PUSH2 0x503 JUMPI DUP1 PUSH4 0x49D10B64 EQ PUSH2 0x51B JUMPI DUP1 PUSH4 0x4AF80F0E EQ PUSH2 0x530 JUMPI DUP1 PUSH4 0x54FD4D50 EQ PUSH2 0x551 JUMPI DUP1 PUSH4 0x579CD3CA EQ PUSH2 0x566 JUMPI DUP1 PUSH4 0x5E35359E EQ PUSH2 0x57B JUMPI DUP1 PUSH4 0x61CD756E EQ PUSH2 0x5A5 JUMPI DUP1 PUSH4 0x67B6D57C EQ PUSH2 0x5BA JUMPI DUP1 PUSH4 0x690D8320 EQ PUSH2 0x5DB JUMPI DUP1 PUSH4 0x6A49D2C4 EQ PUSH2 0x5FC JUMPI DUP1 PUSH4 0x6AA5332C EQ PUSH2 0x626 JUMPI DUP1 PUSH4 0x6AD419A8 EQ PUSH2 0x650 JUMPI DUP1 PUSH4 0x71F52BF3 EQ PUSH2 0x671 JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x686 JUMPI DUP1 PUSH4 0x7B103999 EQ PUSH2 0x69B JUMPI DUP1 PUSH4 0x7D8916BD EQ PUSH2 0x6B0 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x733 JUMPI DUP1 PUSH4 0x94C275AD EQ PUSH2 0x748 JUMPI DUP1 PUSH4 0x9B99A8E2 EQ PUSH2 0x75D JUMPI DUP1 PUSH4 0xA60E7724 EQ PUSH2 0x772 JUMPI DUP1 PUSH4 0xAF94B8D8 EQ PUSH2 0x7C7 JUMPI DUP1 PUSH4 0xB127C0A5 EQ PUSH2 0x7F1 JUMPI DUP1 PUSH4 0xB4A176D3 EQ PUSH2 0x884 JUMPI DUP1 PUSH4 0xBBB7E5D8 EQ PUSH2 0x899 JUMPI DUP1 PUSH4 0xBF754558 EQ PUSH2 0x8B4 JUMPI DUP1 PUSH4 0xC45D3D92 EQ PUSH2 0x8C9 JUMPI DUP1 PUSH4 0xCA1D209D EQ PUSH2 0x8DE JUMPI DUP1 PUSH4 0xCDC91C69 EQ PUSH2 0x8E9 JUMPI DUP1 PUSH4 0xD031370B EQ PUSH2 0x8FE JUMPI DUP1 PUSH4 0xD260529C EQ PUSH2 0x916 JUMPI DUP1 PUSH4 0xD3FB73B4 EQ PUSH2 0x92B JUMPI DUP1 PUSH4 0xD4EE1D90 EQ PUSH2 0x940 JUMPI DUP1 PUSH4 0xD55EC697 EQ PUSH2 0x955 JUMPI DUP1 PUSH4 0xD66BD524 EQ PUSH2 0x96A JUMPI DUP1 PUSH4 0xD8959512 EQ PUSH2 0x98B JUMPI DUP1 PUSH4 0xDC8DE379 EQ PUSH2 0x9AC JUMPI DUP1 PUSH4 0xE8DC12FF EQ PUSH2 0x9CD JUMPI DUP1 PUSH4 0xECBCA55D EQ PUSH2 0x9F7 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0xA15 JUMPI DUP1 PUSH4 0xFC0C546A EQ PUSH2 0xA36 JUMPI JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4903 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x0 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH32 0x353C2EB9E53A4A4A6D45D72082FF2E9DC829D1125618772A83EB0E7F86632C43 SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO PUSH2 0x2ED JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A3 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2FB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2ED PUSH1 0x4 CALLDATALOAD ISZERO ISZERO PUSH2 0xA4B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x315 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x31E PUSH2 0xA93 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x343 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x358 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0xA9F JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP6 DUP7 MSTORE PUSH4 0xFFFFFFFF SWAP1 SWAP5 AND PUSH1 0x20 DUP7 ADD MSTORE SWAP2 ISZERO ISZERO DUP5 DUP5 ADD MSTORE ISZERO ISZERO PUSH1 0x60 DUP5 ADD MSTORE ISZERO ISZERO PUSH1 0x80 DUP4 ADD MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0xA0 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x398 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3A1 PUSH2 0xB3A JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3C1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3CD PUSH1 0x4 CALLDATALOAD PUSH2 0xB83 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x31E PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0xBAF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x416 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x434 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0xBE1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x459 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2ED PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0xBFB JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x47A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3A1 PUSH2 0xC0F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x48F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3A1 PUSH2 0xCA9 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4A4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2ED PUSH2 0xCCA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4B9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2ED PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0xCDC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4E3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4EC PUSH2 0xD77 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0xFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x50F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2ED PUSH1 0x4 CALLDATALOAD PUSH2 0xD7C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x527 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2ED PUSH2 0xFC0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x53C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2ED PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x122D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x55D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4EC PUSH2 0x126F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x572 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x31E PUSH2 0x1274 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x587 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2ED PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x128C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5B1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3CD PUSH2 0x1395 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5C6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2ED PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x13A4 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5E7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2ED PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x1447 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x608 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2ED PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH4 0xFFFFFFFF PUSH1 0x24 CALLDATALOAD AND PUSH2 0x154C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x632 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x63E PUSH1 0x4 CALLDATALOAD PUSH2 0x178B JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x65C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2ED PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x17B0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x67D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4EC PUSH2 0x17E6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x692 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2ED PUSH2 0x17F5 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6A7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3CD PUSH2 0x18B6 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x2ED SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP POP PUSH1 0x40 DUP1 MLOAD DUP8 CALLDATALOAD DUP10 ADD DUP1 CALLDATALOAD PUSH1 0x20 DUP2 DUP2 MUL DUP5 DUP2 ADD DUP3 ADD SWAP1 SWAP6 MSTORE DUP2 DUP5 MSTORE SWAP9 SWAP12 SWAP11 SWAP10 DUP10 ADD SWAP9 SWAP3 SWAP8 POP SWAP1 DUP3 ADD SWAP6 POP SWAP4 POP DUP4 SWAP3 POP DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP POP SWAP4 CALLDATALOAD SWAP5 POP PUSH2 0x18C5 SWAP4 POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x73F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3CD PUSH2 0x1BC4 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x754 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x31E PUSH2 0x1BD3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x769 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4EC PUSH2 0x1BE7 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x77E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x63E SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP PUSH2 0x1BED SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7D3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x434 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x1C43 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7FD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 PUSH1 0x24 DUP1 CALLDATALOAD DUP3 DUP2 ADD CALLDATALOAD DUP5 DUP2 MUL DUP1 DUP8 ADD DUP7 ADD SWAP1 SWAP8 MSTORE DUP1 DUP7 MSTORE PUSH2 0x2ED SWAP7 DUP5 CALLDATALOAD SWAP7 CALLDATASIZE SWAP7 PUSH1 0x44 SWAP6 SWAP2 SWAP5 SWAP1 SWAP2 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP POP PUSH1 0x40 DUP1 MLOAD DUP8 CALLDATALOAD DUP10 ADD DUP1 CALLDATALOAD PUSH1 0x20 DUP2 DUP2 MUL DUP5 DUP2 ADD DUP3 ADD SWAP1 SWAP6 MSTORE DUP2 DUP5 MSTORE SWAP9 SWAP12 SWAP11 SWAP10 DUP10 ADD SWAP9 SWAP3 SWAP8 POP SWAP1 DUP3 ADD SWAP6 POP SWAP4 POP DUP4 SWAP3 POP DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP PUSH2 0x1DE8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x890 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2ED PUSH2 0x1F1C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8A5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x63E PUSH1 0x4 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH2 0x1F55 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8C0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3A1 PUSH2 0x1F6F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8D5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3CD PUSH2 0x1F74 JUMP JUMPDEST PUSH2 0x2ED PUSH1 0x4 CALLDATALOAD PUSH2 0x1F83 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2ED PUSH2 0x2490 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x90A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3CD PUSH1 0x4 CALLDATALOAD PUSH2 0x24E9 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x922 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3A1 PUSH2 0xD77 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x937 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3CD PUSH2 0x2511 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x94C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3CD PUSH2 0x2520 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x961 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2ED PUSH2 0x252F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x976 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x358 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x2624 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x997 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x63E PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x266A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9B8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x63E PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x267B JUMP JUMPDEST PUSH2 0x63E PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x44 CALLDATALOAD SWAP1 PUSH1 0x64 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x84 CALLDATALOAD AND PUSH2 0x26A4 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA03 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2ED PUSH4 0xFFFFFFFF PUSH1 0x4 CALLDATALOAD AND PUSH2 0x28F7 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA21 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2ED PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x29EC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA42 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3CD PUSH2 0x2A89 JUMP JUMPDEST PUSH2 0xA53 PUSH2 0x2A98 JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD SWAP2 ISZERO ISZERO PUSH21 0x10000000000000000000000000000000000000000 MUL PUSH21 0xFF0000000000000000000000000000000000000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH4 0xFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0xAAF PUSH2 0x4855 JUMP JUMPDEST POP POP POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP2 MLOAD PUSH1 0xA0 DUP2 ADD DUP4 MSTORE DUP2 SLOAD DUP1 DUP3 MSTORE PUSH1 0x1 SWAP1 SWAP3 ADD SLOAD PUSH4 0xFFFFFFFF DUP2 AND SWAP5 DUP3 ADD DUP6 SWAP1 MSTORE PUSH1 0xFF PUSH5 0x100000000 DUP3 DIV DUP2 AND ISZERO ISZERO SWAP5 DUP4 ADD SWAP5 SWAP1 SWAP5 MSTORE PUSH6 0x10000000000 DUP2 DIV DUP5 AND ISZERO ISZERO PUSH1 0x60 DUP4 ADD MSTORE PUSH7 0x1000000000000 SWAP1 DIV SWAP1 SWAP3 AND ISZERO ISZERO PUSH1 0x80 SWAP1 SWAP3 ADD DUP3 SWAP1 MSTORE SWAP6 SWAP2 SWAP5 POP SWAP2 SWAP3 POP DUP3 SWAP2 SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4903 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x0 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH32 0x353C2EB9E53A4A4A6D45D72082FF2E9DC829D1125618772A83EB0E7F86632C43 SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x7 DUP3 DUP2 SLOAD DUP2 LT ISZERO ISZERO PUSH2 0xB94 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0xBBB DUP2 PUSH2 0x2AE8 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH4 0xFFFFFFFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xBEF DUP6 DUP6 DUP6 PUSH2 0x1C43 JUMP JUMPDEST SWAP2 POP SWAP2 POP SWAP4 POP SWAP4 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xC03 PUSH2 0x2A98 JUMP JUMPDEST PUSH2 0xC0C DUP2 PUSH2 0x13A4 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 ADDRESS PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x8DA5CB5B PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC6E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xC82 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xC98 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH2 0xCD2 PUSH2 0x2A98 JUMP JUMPDEST PUSH2 0xCDA PUSH2 0x2490 JUMP JUMPDEST JUMP JUMPDEST PUSH2 0xCE4 PUSH2 0x2A98 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x5E35359E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP6 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP3 ADD DUP6 SWAP1 MSTORE SWAP2 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP2 PUSH4 0x5E35359E SWAP2 PUSH1 0x64 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xD5A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xD6E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 PUSH1 0x0 PUSH2 0xD8A PUSH2 0x2B55 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH1 0x0 DUP5 GT PUSH2 0xDE7 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xF PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5A45524F5F414D4F554E540000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x18160DDD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xE3A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xE4E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xE64 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xA24835D100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP9 SWAP1 MSTORE SWAP1 MLOAD SWAP3 SWAP6 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP2 AND SWAP2 PUSH4 0xA24835D1 SWAP2 PUSH1 0x44 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xED5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xEE9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x7 DUP1 SLOAD SWAP1 POP PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0xF1C JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CODESIZE DUP4 CODECOPY ADD SWAP1 POP JUMPDEST POP SWAP2 POP PUSH1 0x0 SWAP1 POP JUMPDEST DUP2 MLOAD DUP2 LT ISZERO PUSH2 0xF4F JUMPI PUSH1 0x1 DUP3 DUP3 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xF3D JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MSTORE PUSH1 0x1 ADD PUSH2 0xF24 JUMP JUMPDEST PUSH2 0xFB5 PUSH1 0x7 DUP1 SLOAD DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD DUP1 ISZERO PUSH2 0xFA8 JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xF8A JUMPI JUMPDEST POP POP POP POP POP DUP4 DUP6 DUP8 PUSH2 0x2BAF JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0x4 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ DUP1 PUSH2 0xFF5 JUMPI POP PUSH1 0x3 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x1039 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4943 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x1062 PUSH32 0x436F6E7472616374526567697374727900000000000000000000000000000000 PUSH2 0x2E74 JUMP JUMPDEST PUSH1 0x2 SLOAD SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP4 AND SWAP2 AND EQ DUP1 ISZERO SWAP1 PUSH2 0x108B JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x10E1 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245474953545259000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0xBB34534C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH32 0x436F6E7472616374526567697374727900000000000000000000000000000000 PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP2 PUSH4 0xBB34534C SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1165 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1179 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x118F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ ISZERO PUSH2 0x11F0 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245474953545259000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP5 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP3 DUP4 AND OR SWAP1 SWAP3 SSTORE SWAP1 SWAP2 AND SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x1235 PUSH2 0x2A98 JUMP JUMPDEST DUP1 PUSH2 0x123F DUP2 PUSH2 0x2F0C JUMP JUMPDEST POP PUSH1 0x6 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x20 DUP2 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH9 0x10000000000000000 SWAP1 DIV PUSH4 0xFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1296 PUSH2 0x2B55 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH2 0x12A3 PUSH2 0x2A98 JUMP JUMPDEST PUSH2 0x12BA PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48E3 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x2E74 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD SWAP1 SWAP2 POP PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 PUSH2 0x12F7 JUMPI POP PUSH2 0x12F5 PUSH2 0xC0F JUMP JUMPDEST ISZERO JUMPDEST DUP1 PUSH2 0x130F JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ JUMPDEST ISZERO ISZERO PUSH2 0x1353 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4943 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x135E DUP5 DUP5 DUP5 PUSH2 0x2F6D JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0xFB5 JUMPI PUSH2 0xFB5 DUP5 PUSH2 0x2F9E JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH2 0x13AC PUSH2 0x2A98 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48E3 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x13C4 DUP2 PUSH2 0x3093 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xF2FDE38B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP2 PUSH4 0xF2FDE38B SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x142B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x143F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1451 PUSH2 0x2B55 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH2 0x145E PUSH2 0x2A98 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4903 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x1476 DUP2 PUSH2 0x2AE8 JUMP JUMPDEST PUSH2 0x148D PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48E3 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x2E74 JUMP JUMPDEST SWAP2 POP PUSH2 0x1497 PUSH2 0xC0F JUMP JUMPDEST ISZERO DUP1 PUSH2 0x14B0 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 DUP2 AND SWAP2 AND EQ JUMPDEST ISZERO ISZERO PUSH2 0x14F4 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4943 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP1 ADDRESS BALANCE DUP1 ISZERO PUSH2 0x8FC MUL SWAP2 PUSH1 0x0 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x152A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH2 0x1542 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4903 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x2F9E JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0x4 SSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1556 PUSH2 0x2A98 JUMP JUMPDEST PUSH2 0x155E PUSH2 0x30E9 JUMP JUMPDEST DUP3 PUSH2 0x1568 DUP2 PUSH2 0x3146 JUMP JUMPDEST DUP4 PUSH2 0x1572 DUP2 PUSH2 0x2F0C JUMP JUMPDEST DUP4 PUSH2 0x157C DUP2 PUSH2 0x31A6 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 DUP2 AND SWAP2 AND EQ DUP1 ISZERO SWAP1 PUSH2 0x15C0 JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x1604 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A3 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x9 SLOAD PUSH4 0xFFFFFFFF SWAP1 DUP2 AND PUSH3 0xF4240 SUB DUP2 AND SWAP1 DUP7 AND GT ISZERO PUSH2 0x166F JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F574549474854000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0xFFFF PUSH2 0x167A PUSH2 0x1BE7 JUMP JUMPDEST PUSH2 0xFFFF AND LT PUSH2 0x16D3 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F434F554E5400000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP2 DUP2 SSTORE PUSH1 0x1 SWAP1 DUP2 ADD DUP1 SLOAD PUSH7 0xFF000000000000 NOT PUSH4 0xFFFFFFFF DUP1 DUP9 AND PUSH4 0xFFFFFFFF NOT SWAP4 DUP5 AND OR SWAP2 SWAP1 SWAP2 AND PUSH7 0x1000000000000 OR SWAP1 SWAP3 SSTORE PUSH1 0x7 DUP1 SLOAD SWAP4 DUP5 ADD DUP2 SSTORE SWAP1 SWAP4 MSTORE PUSH32 0xA66CC928B5EDB82AF9BD49922954155AB7B0942694BEA4CE44661D9A8736C688 SWAP1 SWAP2 ADD DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 SWAP4 OR SWAP1 SWAP3 SSTORE PUSH1 0x9 DUP1 SLOAD DUP1 DUP5 AND SWAP1 SWAP5 ADD SWAP1 SWAP3 AND SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 JUMPDEST PUSH1 0x0 DUP2 GT ISZERO PUSH2 0x17A9 JUMPI PUSH1 0x1 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0xA SWAP1 DIV PUSH2 0x1790 JUMP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x9 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND PUSH13 0x1000000000000000000000000 MUL PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH2 0x17F0 PUSH2 0x1BE7 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x1845 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4943 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND SWAP4 SWAP1 SWAP2 AND SWAP2 PUSH32 0x343765429AEA5A34B3FF6A3785A98A5ABB2597ACA87BFBB58632C173D585373A SWAP2 LOG3 PUSH1 0x1 DUP1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND OR SWAP1 SWAP2 SSTORE AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x18D2 PUSH2 0x2B55 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH2 0x18DF PUSH2 0x321B JUMP JUMPDEST PUSH2 0x18EA DUP7 DUP7 DUP7 PUSH2 0x3279 JUMP JUMPDEST PUSH1 0x0 SWAP3 POP JUMPDEST DUP6 MLOAD DUP4 LT ISZERO PUSH2 0x19A8 JUMPI DUP6 MLOAD PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4903 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP1 DUP8 SWAP1 DUP6 SWAP1 DUP2 LT PUSH2 0x1916 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ ISZERO PUSH2 0x199D JUMPI CALLVALUE DUP6 DUP5 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x193E JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MLOAD EQ PUSH2 0x199D JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4554485F414D4F554E545F4D49534D41544348000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 PUSH2 0x18EF JUMP JUMPDEST PUSH1 0x0 CALLVALUE GT ISZERO PUSH2 0x1A4D JUMPI PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4903 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x0 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH32 0x353C2EB9E53A4A4A6D45D72082FF2E9DC829D1125618772A83EB0E7F86632C43 SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO PUSH2 0x1A4D JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4E4F5F4554485F524553455256450000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x18160DDD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1AA0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1AB4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1ACA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 POP PUSH2 0x1AD9 DUP7 DUP7 DUP5 PUSH2 0x3535 JUMP JUMPDEST SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0x1B33 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F52455455524E5F544F4F5F4C4F570000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x867904B400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP2 PUSH4 0x867904B4 SWAP2 PUSH1 0x44 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1B9F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1BB3 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x1 PUSH1 0x4 SSTORE POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH5 0x100000000 SWAP1 DIV PUSH4 0xFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x7 SLOAD SWAP1 JUMP JUMPDEST DUP1 MLOAD PUSH1 0x0 SWAP1 DUP2 SWAP1 DUP2 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1C2A JUMPI PUSH2 0x1C1E DUP6 DUP3 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x1C0F JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH2 0x178B JUMP JUMPDEST SWAP1 SWAP3 ADD SWAP2 PUSH1 0x1 ADD PUSH2 0x1BF6 JUMP JUMPDEST PUSH1 0x1 PUSH2 0x1C36 DUP5 DUP5 PUSH2 0x1F55 JUMP JUMPDEST SUB PUSH1 0xA EXP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x1C51 PUSH2 0x321B JUMP JUMPDEST DUP7 PUSH2 0x1C5B DUP2 PUSH2 0x2AE8 JUMP JUMPDEST DUP7 PUSH2 0x1C65 DUP2 PUSH2 0x2AE8 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP10 DUP2 AND SWAP1 DUP10 AND EQ ISZERO PUSH2 0x1CC9 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F534F555243455F54415247455400000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x1CE0 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4923 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x2E74 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x94491FAB PUSH2 0x1CF7 DUP12 PUSH2 0x267B JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP13 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH4 0xFFFFFFFF AND PUSH2 0x1D22 DUP13 PUSH2 0x267B JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP14 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 ADD SLOAD DUP2 MLOAD PUSH4 0xFFFFFFFF DUP10 DUP2 AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP3 MSTORE PUSH1 0x4 DUP3 ADD SWAP9 SWAP1 SWAP9 MSTORE SWAP6 DUP8 AND PUSH1 0x24 DUP8 ADD MSTORE PUSH1 0x44 DUP7 ADD SWAP5 SWAP1 SWAP5 MSTORE SWAP5 SWAP1 SWAP3 AND PUSH1 0x64 DUP5 ADD MSTORE PUSH1 0x84 DUP4 ADD DUP14 SWAP1 MSTORE SWAP3 MLOAD PUSH1 0xA4 DUP1 DUP5 ADD SWAP5 SWAP3 SWAP4 SWAP2 SWAP3 SWAP2 DUP4 SWAP1 SUB ADD SWAP1 DUP3 SWAP1 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1D9E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1DB2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1DC8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP4 POP PUSH2 0x1DD5 DUP5 PUSH2 0x3564 JUMP JUMPDEST SWAP4 DUP5 SWAP1 SUB SWAP10 SWAP4 SWAP9 POP SWAP3 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1DF2 PUSH2 0x2B55 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH2 0x1DFF PUSH2 0x321B JUMP JUMPDEST PUSH2 0x1E0A DUP4 DUP4 DUP7 PUSH2 0x3279 JUMP JUMPDEST PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x18160DDD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1E5D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1E71 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1E87 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xA24835D100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP9 SWAP1 MSTORE SWAP1 MLOAD SWAP3 SWAP4 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP2 AND SWAP2 PUSH4 0xA24835D1 SWAP2 PUSH1 0x44 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1EF8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1F0C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0xFB5 DUP4 DUP4 DUP4 DUP8 PUSH2 0x2BAF JUMP JUMPDEST PUSH2 0x1F24 PUSH2 0x2A98 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x2 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x2 DUP2 DIV DUP5 ADD DUP2 ISZERO ISZERO PUSH2 0x1F67 JUMPI INVALID JUMPDEST DIV SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x1 DUP2 JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x1F9A PUSH2 0x2B55 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH2 0x1FA7 PUSH2 0x35A0 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4903 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x0 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48C3 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SLOAD PUSH2 0x1FDE SWAP1 CALLVALUE PUSH4 0xFFFFFFFF PUSH2 0x35E2 AND JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4903 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48C3 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP3 SWAP1 SWAP3 SSTORE PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x18160DDD00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP4 PUSH4 0x18160DDD SWAP4 PUSH1 0x4 DUP1 DUP5 ADD SWAP5 SWAP3 SWAP4 DUP4 SWAP1 SUB ADD SWAP1 DUP3 SWAP1 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2068 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x207C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2092 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP10 POP PUSH2 0x20AD PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4923 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x2E74 JUMP JUMPDEST PUSH1 0x7 SLOAD SWAP1 SWAP10 POP SWAP8 POP PUSH1 0x0 SWAP7 POP JUMPDEST DUP8 DUP8 LT ISZERO PUSH2 0x23FA JUMPI PUSH1 0x7 DUP1 SLOAD DUP9 SWAP1 DUP2 LT PUSH2 0x20D0 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP6 POP PUSH1 0x8 PUSH1 0x0 DUP8 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD SWAP5 POP DUP9 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xEBBB2158 DUP12 DUP8 PUSH1 0x9 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH4 0xFFFFFFFF AND DUP16 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH4 0xFFFFFFFF AND PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP5 POP POP POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x219A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x21AE JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x21C4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP4 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4903 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ ISZERO PUSH2 0x2326 JUMPI DUP4 CALLVALUE GT ISZERO PUSH2 0x2224 JUMPI PUSH1 0x40 MLOAD CALLER SWAP1 CALLVALUE DUP7 SWAP1 SUB DUP1 ISZERO PUSH2 0x8FC MUL SWAP2 PUSH1 0x0 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x221E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH2 0x2321 JUMP JUMPDEST DUP4 CALLVALUE LT ISZERO PUSH2 0x2321 JUMPI CALLVALUE ISZERO PUSH2 0x2282 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4554485F56414C55450000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x9 SLOAD PUSH2 0x22AA SWAP1 PUSH13 0x1000000000000000000000000 SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER ADDRESS DUP8 PUSH2 0x3642 JUMP JUMPDEST PUSH1 0x9 PUSH1 0xC SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x2E1A7D4D DUP6 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2308 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x231C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMPDEST PUSH2 0x2332 JUMP JUMPDEST PUSH2 0x2332 DUP7 CALLER ADDRESS DUP8 PUSH2 0x3642 JUMP JUMPDEST PUSH2 0x2342 DUP6 DUP6 PUSH4 0xFFFFFFFF PUSH2 0x372A AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP2 SWAP1 SSTORE SWAP3 POP PUSH2 0x236F DUP11 DUP13 PUSH4 0xFFFFFFFF PUSH2 0x372A AND JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP7 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP7 SWAP1 MSTORE DUP1 DUP3 ADD DUP4 SWAP1 MSTORE SWAP1 MLOAD SWAP2 SWAP4 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 AND SWAP2 CALLER SWAP2 PUSH32 0x4A1A2A6176E9646D9E3157F7C2AB3C499F18337C0B0828CFB28E0A61DE4A11F7 SWAP2 SWAP1 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG3 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH4 0xFFFFFFFF AND PUSH2 0x23EF DUP3 DUP8 DUP6 DUP5 PUSH2 0x3787 JUMP JUMPDEST PUSH1 0x1 SWAP1 SWAP7 ADD SWAP6 PUSH2 0x20BA JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x867904B400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP15 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP2 PUSH4 0x867904B4 SWAP2 PUSH1 0x44 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2466 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x247A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x1 PUSH1 0x4 SSTORE POP POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x2498 PUSH2 0x2A98 JUMP JUMPDEST PUSH2 0x24A0 PUSH2 0x37F6 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x24B7 PUSH2 0xD77 JUMP JUMPDEST PUSH2 0xFFFF AND PUSH32 0x6B08C2E2C9969E55A647A764DB9B554D64DC42F1A704DA11A6D5B129AD163F2C PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 JUMP JUMPDEST PUSH1 0x7 DUP1 SLOAD DUP3 SWAP1 DUP2 LT PUSH2 0x24F7 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP1 POP DUP2 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2539 PUSH2 0x2A98 JUMP JUMPDEST PUSH2 0x2550 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48E3 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x2E74 JUMP JUMPDEST PUSH1 0x5 SLOAD SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x256A PUSH2 0xD77 JUMP JUMPDEST PUSH2 0xFFFF AND PUSH32 0x6B08C2E2C9969E55A647A764DB9B554D64DC42F1A704DA11A6D5B129AD163F2C PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH2 0x25A3 DUP2 PUSH2 0x29EC JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x90F58C9600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 AND SWAP2 PUSH4 0x90F58C96 SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2604 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2618 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0xC0C PUSH2 0x17F5 JUMP JUMPDEST PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD PUSH4 0xFFFFFFFF DUP2 AND SWAP1 PUSH1 0xFF PUSH5 0x100000000 DUP3 DIV DUP2 AND SWAP2 PUSH6 0x10000000000 DUP2 DIV DUP3 AND SWAP2 PUSH7 0x1000000000000 SWAP1 SWAP2 DIV AND DUP6 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2675 DUP3 PUSH2 0x267B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0x2687 DUP2 PUSH2 0x2AE8 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x26AE PUSH2 0x2B55 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH32 0x536F7672796E537761704E6574776F726B000000000000000000000000000000 PUSH2 0x26DD DUP2 PUSH2 0x3093 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 DUP2 AND SWAP1 DUP8 AND EQ ISZERO PUSH2 0x2741 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F534F555243455F54415247455400000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND ISZERO DUP1 PUSH2 0x2884 JUMPI POP PUSH1 0x6 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x3AF32ABF00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP2 PUSH4 0x3AF32ABF SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x27BC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x27D0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x27E6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD DUP1 ISZERO PUSH2 0x2884 JUMPI POP PUSH1 0x6 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x3AF32ABF00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP2 PUSH4 0x3AF32ABF SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2857 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x286B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2881 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD JUMPDEST ISZERO ISZERO PUSH2 0x28DA JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4E4F545F57484954454C495354454400000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x28E7 DUP8 DUP8 DUP8 DUP8 DUP8 PUSH2 0x3861 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x4 SSTORE SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x28FF PUSH2 0x2A98 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH4 0xFFFFFFFF PUSH5 0x100000000 SWAP1 SWAP2 DIV DUP2 AND SWAP1 DUP3 AND GT ISZERO PUSH2 0x296B JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F434F4E56455253494F4E5F464545000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH4 0xFFFFFFFF PUSH9 0x10000000000000000 SWAP1 SWAP4 DIV DUP4 AND DUP2 MSTORE SWAP2 DUP4 AND PUSH1 0x20 DUP4 ADD MSTORE DUP1 MLOAD PUSH32 0x81CD2FFB37DD237C0E4E2A3DE5265FCF9DEB43D3E7801E80DB9F1CCFBA7EE600 SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG1 PUSH1 0x9 DUP1 SLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP3 AND PUSH9 0x10000000000000000 MUL PUSH12 0xFFFFFFFF0000000000000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x29F4 PUSH2 0x2A98 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x2A5A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F4F574E4552000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0xCDA JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4943 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO PUSH2 0xC0C JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A3 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x4 SLOAD PUSH1 0x1 EQ PUSH2 0xCDA JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5245454E5452414E4359000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x2BC3 PUSH2 0x35A0 JUMP JUMPDEST PUSH2 0x2BDA PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4923 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x2E74 JUMP JUMPDEST SWAP8 POP PUSH2 0x2BEC DUP11 DUP11 PUSH4 0xFFFFFFFF PUSH2 0x35E2 AND JUMP JUMPDEST SWAP7 POP PUSH1 0x0 SWAP6 POP JUMPDEST DUP12 MLOAD DUP7 LT ISZERO PUSH2 0x2E66 JUMPI DUP12 DUP7 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x2C0A JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD SWAP5 POP PUSH1 0x8 PUSH1 0x0 DUP7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD SWAP4 POP DUP8 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x8074590A DUP12 DUP7 PUSH1 0x9 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH4 0xFFFFFFFF AND DUP14 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH4 0xFFFFFFFF AND PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP5 POP POP POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2CC0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2CD4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2CEA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD DUP12 MLOAD SWAP1 SWAP4 POP DUP12 SWAP1 DUP8 SWAP1 DUP2 LT PUSH2 0x2CFD JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MLOAD DUP4 LT ISZERO PUSH2 0x2D5E JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5A45524F5F5441524745545F414D4F554E5400000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x2D6E DUP5 DUP5 PUSH4 0xFFFFFFFF PUSH2 0x35E2 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP3 SWAP1 SSTORE SWAP1 SWAP3 POP PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4903 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ ISZERO PUSH2 0x2DD4 JUMPI PUSH1 0x40 MLOAD CALLER SWAP1 DUP5 ISZERO PUSH2 0x8FC MUL SWAP1 DUP6 SWAP1 PUSH1 0x0 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x2DCE JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH2 0x2DDF JUMP JUMPDEST PUSH2 0x2DDF DUP6 CALLER DUP6 PUSH2 0x3B34 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP5 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 SWAP1 MSTORE DUP1 DUP3 ADD DUP10 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND SWAP2 CALLER SWAP2 PUSH32 0xBC7D19D505C7EC4DB83F3B51F19FB98C4C8A99922E7839D1EE608DFBEE29501B SWAP2 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG3 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH4 0xFFFFFFFF AND PUSH2 0x2E5B DUP8 DUP7 DUP5 DUP5 PUSH2 0x3787 JUMP JUMPDEST PUSH1 0x1 SWAP1 SWAP6 ADD SWAP5 PUSH2 0x2BF3 JUMP JUMPDEST POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xBB34534C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP2 PUSH4 0xBB34534C SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2EDA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2EEE JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2F04 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ADDRESS EQ ISZERO PUSH2 0xC0C JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F414444524553535F49535F53454C4600000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x2F75 PUSH2 0x2A98 JUMP JUMPDEST DUP3 PUSH2 0x2F7F DUP2 PUSH2 0x3146 JUMP JUMPDEST DUP3 PUSH2 0x2F89 DUP2 PUSH2 0x3146 JUMP JUMPDEST DUP4 PUSH2 0x2F93 DUP2 PUSH2 0x2F0C JUMP JUMPDEST PUSH2 0x143F DUP7 DUP7 DUP7 PUSH2 0x3B34 JUMP JUMPDEST DUP1 PUSH2 0x2FA8 DUP2 PUSH2 0x2AE8 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 AND PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4903 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ ISZERO PUSH2 0x2FE8 JUMPI PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 ADDRESS BALANCE SWAP1 SSTORE PUSH2 0x308F JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3049 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x305D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x3073 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x309C DUP2 PUSH2 0x2E74 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0xC0C JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4943 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x30F1 PUSH2 0xC0F JUMP JUMPDEST ISZERO PUSH2 0xCDA JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xA PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F41435449564500000000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0xC0C JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 PUSH4 0xFFFFFFFF AND GT DUP1 ISZERO PUSH2 0x31C5 JUMPI POP PUSH3 0xF4240 PUSH4 0xFFFFFFFF DUP3 AND GT ISZERO JUMPDEST ISZERO ISZERO PUSH2 0xC0C JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F574549474854000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x3223 PUSH2 0xC0F JUMP JUMPDEST ISZERO ISZERO PUSH2 0xCDA JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E4143544956450000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x7 SLOAD DUP4 MLOAD PUSH1 0x0 SWAP2 DUP3 SWAP2 DUP2 EQ PUSH2 0x32C7 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A3 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP5 MLOAD DUP2 EQ PUSH2 0x331F JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F414D4F554E540000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 SWAP3 POP JUMPDEST DUP1 DUP4 LT ISZERO PUSH2 0x34DD JUMPI PUSH1 0x8 PUSH1 0x0 DUP8 DUP6 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x333E JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP3 MSTORE DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH1 0xFF PUSH7 0x1000000000000 SWAP1 SWAP2 DIV AND ISZERO ISZERO PUSH2 0x33B6 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A3 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 SWAP2 POP JUMPDEST DUP1 DUP3 LT ISZERO PUSH2 0x341E JUMPI DUP6 DUP3 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x33D1 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x7 DUP5 DUP2 SLOAD DUP2 LT ISZERO ISZERO PUSH2 0x33F3 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ ISZERO PUSH2 0x3413 JUMPI PUSH2 0x341E JUMP JUMPDEST PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x33BB JUMP JUMPDEST DUP1 DUP3 LT PUSH2 0x3463 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A3 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP6 DUP5 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3473 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MLOAD GT PUSH2 0x34D2 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F414D4F554E540000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 PUSH2 0x3324 JUMP JUMPDEST PUSH1 0x0 DUP5 GT PUSH2 0x143F JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xF PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5A45524F5F414D4F554E540000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO PUSH2 0x354F JUMPI PUSH2 0x3548 DUP5 DUP5 PUSH2 0x3BEB JUMP JUMPDEST SWAP1 POP PUSH2 0x355D JUMP JUMPDEST PUSH2 0x355A DUP5 DUP5 DUP5 PUSH2 0x3DF2 JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x0 SWAP1 PUSH2 0x2675 SWAP1 PUSH3 0xF4240 SWAP1 PUSH2 0x3594 SWAP1 DUP6 SWAP1 PUSH9 0x10000000000000000 SWAP1 DIV PUSH4 0xFFFFFFFF SWAP1 DUP2 AND SWAP1 PUSH2 0x41B2 AND JUMP JUMPDEST SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x422B AND JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x308F JUMPI PUSH2 0x35DA PUSH1 0x7 DUP3 DUP2 SLOAD DUP2 LT ISZERO ISZERO PUSH2 0x35C0 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x2F9E JUMP JUMPDEST PUSH1 0x1 ADD PUSH2 0x35A6 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT ISZERO PUSH2 0x363C JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F554E444552464C4F5700000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP SWAP1 SUB SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x7472616E7366657246726F6D28616464726573732C616464726573732C75696E DUP2 MSTORE PUSH32 0x7432353629000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP3 MLOAD SWAP2 DUP3 SWAP1 SUB PUSH1 0x25 ADD DUP3 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP9 AND PUSH1 0x24 DUP6 ADD MSTORE DUP7 AND PUSH1 0x44 DUP5 ADD MSTORE PUSH1 0x64 DUP1 DUP5 ADD DUP7 SWAP1 MSTORE DUP5 MLOAD DUP1 DUP6 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x84 SWAP1 SWAP4 ADD SWAP1 SWAP4 MSTORE DUP2 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE PUSH2 0x3724 SWAP1 DUP6 SWAP1 PUSH2 0x4299 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 ADD DUP4 DUP2 LT ISZERO PUSH2 0x355D JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP6 AND SWAP2 AND PUSH32 0x77F29993CF2C084E726F7E802DA0719D6A0ADE3E204BADC7A3FFD57ECB768C24 PUSH2 0x37C5 DUP6 PUSH3 0xF4240 PUSH2 0x41B2 JUMP JUMPDEST PUSH2 0x37D8 DUP9 PUSH4 0xFFFFFFFF DUP1 DUP9 AND SWAP1 PUSH2 0x41B2 AND JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB ADD SWAP1 LOG3 POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH2 0x3800 PUSH2 0x1BE7 JUMP JUMPDEST PUSH2 0xFFFF AND GT PUSH2 0x3859 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F434F554E5400000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0xCDA PUSH2 0x4327 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x3872 DUP10 DUP10 DUP10 PUSH2 0x1C43 JUMP JUMPDEST SWAP1 SWAP4 POP SWAP2 POP DUP3 ISZERO ISZERO PUSH2 0x38CE JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5A45524F5F5441524745545F414D4F554E5400000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x38D7 DUP9 PUSH2 0x267B JUMP JUMPDEST SWAP1 POP DUP1 DUP4 LT PUSH2 0x38E2 JUMPI INVALID JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP10 AND PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4903 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ ISZERO PUSH2 0x395D JUMPI CALLVALUE DUP8 EQ PUSH2 0x3958 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4554485F414D4F554E545F4D49534D41544348000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x3A65 JUMP JUMPDEST CALLVALUE ISZERO DUP1 ISZERO PUSH2 0x3A0F JUMPI POP DUP7 PUSH2 0x3A0C PUSH2 0x3973 DUP12 PUSH2 0x267B JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP15 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x39D4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x39E8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x39FE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x35E2 AND JUMP JUMPDEST LT ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x3A65 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F414D4F554E540000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x3A6E DUP10 PUSH2 0x2F9E JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x3A97 SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0x35E2 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP10 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4903 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ ISZERO PUSH2 0x3B04 JUMPI PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND SWAP1 DUP5 ISZERO PUSH2 0x8FC MUL SWAP1 DUP6 SWAP1 PUSH1 0x0 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x3AFE JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH2 0x3B0F JUMP JUMPDEST PUSH2 0x3B0F DUP9 DUP7 DUP6 PUSH2 0x3B34 JUMP JUMPDEST PUSH2 0x3B1D DUP10 DUP10 DUP9 DUP11 DUP8 DUP8 PUSH2 0x4405 JUMP JUMPDEST PUSH2 0x3B27 DUP10 DUP10 PUSH2 0x448A JUMP JUMPDEST POP SWAP1 SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x7472616E7366657228616464726573732C75696E743235362900000000000000 DUP2 MSTORE DUP2 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x19 ADD DUP2 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x64 SWAP1 SWAP3 ADD SWAP1 SWAP3 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE PUSH2 0x3BE6 SWAP1 DUP5 SWAP1 PUSH2 0x4299 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x3BFA DUP6 PUSH2 0x1BED JUMP JUMPDEST SWAP3 POP PUSH1 0x0 SWAP2 POP JUMPDEST DUP6 MLOAD DUP3 LT ISZERO PUSH2 0x3DE8 JUMPI DUP6 MLOAD PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4903 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP1 DUP8 SWAP1 DUP5 SWAP1 DUP2 LT PUSH2 0x3C28 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ PUSH2 0x3C7A JUMPI PUSH2 0x3C7A DUP7 DUP4 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3C51 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD CALLER ADDRESS DUP9 DUP7 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3C6B JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH2 0x3642 JUMP JUMPDEST DUP5 DUP3 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3C88 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x8 PUSH1 0x0 DUP9 DUP6 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3CA4 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP3 MSTORE DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 SSTORE DUP6 MLOAD DUP7 SWAP1 DUP4 SWAP1 DUP2 LT PUSH2 0x3CD5 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH32 0x4A1A2A6176E9646D9E3157F7C2AB3C499F18337C0B0828CFB28E0A61DE4A11F7 DUP8 DUP6 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3D21 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD DUP9 DUP7 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3D39 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x40 DUP1 MLOAD SWAP4 DUP5 MSTORE SWAP2 DUP4 ADD MSTORE DUP2 DUP2 ADD DUP9 SWAP1 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG3 PUSH1 0x8 PUSH1 0x0 DUP8 DUP5 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3D71 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP3 MSTORE DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD SLOAD DUP7 MLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP2 AND SWAP2 POP PUSH2 0x3DDD SWAP1 DUP5 SWAP1 DUP9 SWAP1 DUP6 SWAP1 DUP2 LT PUSH2 0x3DB5 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD DUP8 DUP6 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3DCD JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD DUP5 PUSH2 0x3787 JUMP JUMPDEST PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x3C01 JUMP JUMPDEST POP SWAP1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x3E09 PUSH2 0x35A0 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4903 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x0 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48C3 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SLOAD PUSH2 0x3E40 SWAP1 CALLVALUE PUSH4 0xFFFFFFFF PUSH2 0x35E2 AND JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4903 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x0 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48C3 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SSTORE PUSH2 0x3E7E PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4923 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x2E74 JUMP JUMPDEST SWAP9 POP PUSH2 0x3E8C DUP10 DUP13 DUP16 DUP16 PUSH2 0x4698 JUMP JUMPDEST SWAP8 POP PUSH2 0x3E9E DUP12 DUP10 PUSH4 0xFFFFFFFF PUSH2 0x372A AND JUMP JUMPDEST SWAP7 POP PUSH1 0x0 SWAP6 POP JUMPDEST DUP13 MLOAD DUP7 LT ISZERO PUSH2 0x41A1 JUMPI DUP13 DUP7 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3EBC JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD SWAP5 POP PUSH1 0x8 PUSH1 0x0 DUP7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD SWAP4 POP DUP9 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xEBBB2158 DUP13 DUP7 PUSH1 0x9 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH4 0xFFFFFFFF AND DUP13 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH4 0xFFFFFFFF AND PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP5 POP POP POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3F72 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3F86 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x3F9C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP3 POP PUSH1 0x0 DUP4 GT PUSH2 0x3FF8 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5A45524F5F5441524745545F414D4F554E5400000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP12 DUP7 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x4006 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MLOAD DUP4 GT ISZERO PUSH2 0x4019 JUMPI INVALID JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4903 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ PUSH2 0x4048 JUMPI PUSH2 0x4043 DUP6 CALLER ADDRESS DUP7 PUSH2 0x3642 JUMP JUMPDEST PUSH2 0x40BB JUMP JUMPDEST DUP3 DUP13 DUP8 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x4057 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD GT ISZERO PUSH2 0x40BB JUMPI CALLER PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x8FC DUP5 DUP15 DUP10 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x4083 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD SUB SWAP1 DUP2 ISZERO MUL SWAP1 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x40B9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP JUMPDEST PUSH2 0x40CB DUP5 DUP5 PUSH4 0xFFFFFFFF PUSH2 0x372A AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP5 SWAP1 SSTORE DUP2 MLOAD DUP8 DUP2 MSTORE SWAP1 DUP2 ADD DUP5 SWAP1 MSTORE DUP1 DUP3 ADD DUP12 SWAP1 MSTORE SWAP1 MLOAD SWAP3 SWAP5 POP SWAP1 SWAP2 CALLER SWAP2 PUSH32 0x4A1A2A6176E9646D9E3157F7C2AB3C499F18337C0B0828CFB28E0A61DE4A11F7 SWAP2 SWAP1 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG3 PUSH1 0x8 PUSH1 0x0 DUP15 DUP9 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x4141 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP3 MSTORE DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD SLOAD DUP14 MLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP2 AND SWAP2 POP PUSH2 0x4196 SWAP1 DUP9 SWAP1 DUP16 SWAP1 DUP10 SWAP1 DUP2 LT PUSH2 0x4185 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD DUP5 DUP5 PUSH2 0x3787 JUMP JUMPDEST PUSH1 0x1 SWAP1 SWAP6 ADD SWAP5 PUSH2 0x3EA5 JUMP JUMPDEST POP SWAP6 SWAP12 SWAP11 POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 ISZERO ISZERO PUSH2 0x41C5 JUMPI PUSH1 0x0 SWAP2 POP PUSH2 0x17A9 JUMP JUMPDEST POP DUP3 DUP3 MUL DUP3 DUP5 DUP3 DUP2 ISZERO ISZERO PUSH2 0x41D5 JUMPI INVALID JUMPDEST DIV EQ PUSH2 0x355D JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP4 GT PUSH2 0x4285 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4449564944455F42595F5A45524F0000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP3 DUP5 DUP2 ISZERO ISZERO PUSH2 0x4290 JUMPI INVALID JUMPDEST DIV SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0x42A1 PUSH2 0x4883 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE POP SWAP1 POP PUSH1 0x20 DUP2 DUP4 MLOAD PUSH1 0x20 DUP6 ADD PUSH1 0x0 DUP8 GAS CALL DUP1 ISZERO ISZERO PUSH2 0x42CE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD ISZERO ISZERO PUSH2 0x3BE6 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5452414E534645525F4641494C454400000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x432F PUSH2 0x2A98 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4339 PUSH2 0x1BE7 JUMP JUMPDEST PUSH2 0xFFFF AND GT PUSH2 0x4392 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F434F554E5400000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x79BA5097 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x43E5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x43F9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0xCDA PUSH2 0x35A0 JUMP JUMPDEST PUSH32 0x8000000000000000000000000000000000000000000000000000000000000000 DUP2 LT PUSH2 0x442E JUMPI INVALID JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP5 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 SWAP1 MSTORE DUP1 DUP3 ADD DUP4 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP8 AND SWAP3 DUP9 DUP3 AND SWAP3 SWAP2 DUP11 AND SWAP2 PUSH32 0x276856B36CBC45526A0BA64F44611557A2A8B68662C5388E9FE6D72E86E1C8CB SWAP2 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG4 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x18160DDD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x44E8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x44FC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x4512 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP7 POP PUSH2 0x451F DUP10 PUSH2 0x267B JUMP JUMPDEST SWAP6 POP PUSH2 0x452A DUP9 PUSH2 0x267B JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 PUSH1 0x1 SWAP1 DUP2 ADD SLOAD SWAP4 DUP14 AND DUP4 MSTORE SWAP2 KECCAK256 ADD SLOAD SWAP2 SWAP7 POP PUSH4 0xFFFFFFFF SWAP1 DUP2 AND SWAP6 POP SWAP1 DUP2 AND SWAP4 POP PUSH2 0x4573 SWAP1 DUP7 SWAP1 DUP7 SWAP1 PUSH2 0x41B2 AND JUMP JUMPDEST SWAP2 POP PUSH2 0x4588 DUP7 PUSH4 0xFFFFFFFF DUP1 DUP7 AND SWAP1 PUSH2 0x41B2 AND JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP5 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP4 SWAP1 MSTORE DUP2 MLOAD SWAP3 SWAP4 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP13 AND SWAP4 SWAP1 DUP14 AND SWAP3 PUSH32 0x77F29993CF2C084E726F7E802DA0719D6A0ADE3E204BADC7A3FFD57ECB768C24 SWAP3 DUP3 SWAP1 SUB ADD SWAP1 LOG3 PUSH2 0x45DF DUP8 DUP11 DUP9 DUP8 PUSH2 0x3787 JUMP JUMPDEST PUSH2 0x45EB DUP8 DUP10 DUP8 DUP7 PUSH2 0x3787 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP9 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP9 SWAP1 MSTORE PUSH4 0xFFFFFFFF DUP7 AND DUP2 DUP4 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND SWAP2 PUSH32 0x8A6A7F53B3C8FA1DC4B83E3F1BE668C1B251FF8D44CDCB83EB3ACEC3FEC6A788 SWAP2 SWAP1 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG2 PUSH1 0x40 DUP1 MLOAD DUP9 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP8 SWAP1 MSTORE PUSH4 0xFFFFFFFF DUP6 AND DUP2 DUP4 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP11 AND SWAP2 PUSH32 0x8A6A7F53B3C8FA1DC4B83E3F1BE668C1B251FF8D44CDCB83EB3ACEC3FEC6A788 SWAP2 SWAP1 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG2 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x1 JUMPDEST DUP5 MLOAD DUP2 LT ISZERO PUSH2 0x475B JUMPI PUSH2 0x4703 PUSH1 0x8 PUSH1 0x0 DUP8 DUP5 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x46BC JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP3 MSTORE DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 SLOAD DUP6 MLOAD DUP7 SWAP1 DUP6 SWAP1 DUP2 LT PUSH2 0x46ED JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MLOAD SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x41B2 AND JUMP JUMPDEST PUSH2 0x4749 PUSH1 0x8 PUSH1 0x0 DUP9 DUP7 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x4718 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP3 MSTORE DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 SLOAD DUP7 MLOAD DUP8 SWAP1 DUP6 SWAP1 DUP2 LT PUSH2 0x46ED JUMPI INVALID JUMPDEST LT ISZERO PUSH2 0x4753 JUMPI DUP1 SWAP2 POP JUMPDEST PUSH1 0x1 ADD PUSH2 0x469E JUMP JUMPDEST DUP7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x2F55BDB5 DUP8 PUSH1 0x8 PUSH1 0x0 DUP10 DUP8 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x477D JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP3 MSTORE DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH1 0x9 SLOAD DUP9 MLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP2 AND SWAP1 DUP10 SWAP1 DUP9 SWAP1 DUP2 LT PUSH2 0x47BA JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH4 0xFFFFFFFF AND PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP5 POP POP POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x481E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x4832 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x4848 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xA0 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE SWAP2 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x60 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 SWAP1 PUSH1 0x20 DUP3 MUL DUP1 CODESIZE DUP4 CODECOPY POP SWAP2 SWAP3 SWAP2 POP POP JUMP STOP GASLIMIT MSTORE MSTORE 0x5f 0x49 0x4e JUMP COINBASE 0x4c 0x49 DIFFICULTY 0x5f MSTORE GASLIMIT MSTORE8 GASLIMIT MSTORE JUMP GASLIMIT STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP CALLDATALOAD EXTCODECOPY 0x2e 0xb9 0xe5 GASPRICE 0x4a 0x4a PUSH14 0x45D72082FF2E9DC829D112561877 0x2a DUP4 0xeb 0xe PUSH32 0x86632C42536F7672796E53776170436F6E766572746572557067726164657200 STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee MSTORE8 PUSH16 0x7672796E53776170466F726D756C6100 STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP GASLIMIT MSTORE MSTORE 0x5f COINBASE NUMBER NUMBER GASLIMIT MSTORE8 MSTORE8 0x5f DIFFICULTY GASLIMIT 0x4e 0x49 GASLIMIT DIFFICULTY STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 PUSH24 0xC4AFB5DBB1930CDBEF4451B66030971D5FDD9DB5D2EE7273 0x2e CALLCODE 0xe7 0xee 0xce 0x1e 0xb9 STOP 0x29 ", + "sourceMap": "101:327:36:-;;;;;;;;;-1:-1:-1;;;101:327:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;7097:29:4;;:8;:29;;:35;;;;;;;7089:67;;;;;;;-1:-1:-1;;;;;7089:67:4;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;7089:67:4;;;;;;;;;;;;;;;101:327:36;3280:206:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3280:206:60;;;;;;;2700:30:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2700:30:4;;;;;;;;;;;;;;;;;;;;;;;18973:244;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;18973:244:4;-1:-1:-1;;;;;18973:244:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14417:102;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14417:102:4;;;;;;;;;;;;;;;;;;;;;;19274:125;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;19274:125:4;;;;;;;;;-1:-1:-1;;;;;19274:125:4;;;;;;;;;;;;;;13732:152;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;13732:152:4;-1:-1:-1;;;;;13732:152:4;;;;;19798:206;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;19798:206:4;-1:-1:-1;;;;;19798:206:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18669:110;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;18669:110:4;-1:-1:-1;;;;;18669:110:4;;;;;8967:93;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8967:93:4;;;;1250:38:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1250:38:60;;;;18836:80:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18836:80:4;;;;10292:155;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;10292:155:4;-1:-1:-1;;;;;10292:155:4;;;;;;;;;;;;1852:81:23;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1852:81:23;;;;;;;;;;;;;;;;;;;;;;;11984:542;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;11984:542:23;;;;;2080:832:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2080:832:60;;;;8691:132:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;8691:132:4;-1:-1:-1;;;;;8691:132:4;;;;;2221:35;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2221:35:4;;;;2993:31;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2993:31:4;;;;11282:601;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;11282:601:4;-1:-1:-1;;;;;11282:601:4;;;;;;;;;;;;1165:37:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1165:37:60;;;;9368:137:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;9368:137:4;-1:-1:-1;;;;;9368:137:4;;;;;7669:465;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;7669:465:4;-1:-1:-1;;;;;7669:465:4;;;;;12940:623;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;12940:623:4;-1:-1:-1;;;;;12940:623:4;;;;;;;;;21154:180:23;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;21154:180:23;;;;;;;;;;;;;;;;;;;;;339:87:36;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;339:87:36;-1:-1:-1;;;;;339:87:36;;;;;19456:94:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19456:94:4;;;;1159:176:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1159:176:66;;;;1085:33:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1085:33:60;;;;6247:1402:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6247:1402:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6247:1402:23;;;;-1:-1:-1;6247:1402:23;-1:-1:-1;6247:1402:23;;-1:-1:-1;6247:1402:23;;;;;;;;;-1:-1:-1;6247:1402:23;;-1:-1:-1;;6247:1402:23;;;-1:-1:-1;6247:1402:23;;-1:-1:-1;;;;6247:1402:23;157:20:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;157:20:66;;;;2818:34:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2818:34:4;;;;12584:101;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12584:101:4;;;;21967:332:23;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;21967:332:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;21967:332:23;;-1:-1:-1;21967:332:23;;-1:-1:-1;;;;;;;21967:332:23;2798:838;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2798:838:23;-1:-1:-1;;;;;2798:838:23;;;;;;;;;;;;8055:722;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;8055:722:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8055:722:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8055:722:23;;;;-1:-1:-1;8055:722:23;-1:-1:-1;8055:722:23;;-1:-1:-1;8055:722:23;;;;;;;;;-1:-1:-1;8055:722:23;;-1:-1:-1;8055:722:23;;-1:-1:-1;;;;;;;8055:722:23;2974:119:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2974:119:60;;;;21574:116:23;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;21574:116:23;;;;;;;3095:46:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3095:46:4;;;;2322:37;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2322:37:4;;;;9209:2366:23;;;;;;2206:157;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2206:157:23;;;;2445:34:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2445:34:4;;;;;8282:71;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8282:71:4;;;;2260:30;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2260:30:4;;;;180:23:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;180:23:66;;;;12079:317:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12079:317:4;;;;2566:43;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2566:43:4;-1:-1:-1;;;;;2566:43:4;;;;;19607:134;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;19607:134:4;-1:-1:-1;;;;;19607:134:4;;;;;14111:155;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;14111:155:4;-1:-1:-1;;;;;14111:155:4;;;;;15044:649;;-1:-1:-1;;;;;15044:649:4;;;;;;;;;;;;;;;;;;;;;;;10618:240;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;10618:240:4;;;;;;;945:140:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;945:140:66;-1:-1:-1;;;;;945:140:66;;;;;18535:77:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18535:77:4;;;;3280:206:60;575:12:66;:10;:12::i;:::-;3426:26:60;:56;;;;;;;-1:-1:-1;;3426:56:60;;;;;;;;;3280:206::o;2700:30:4:-;;;;;;:::o;18973:244::-;19042:7;19054:6;19065:4;19074;19083;19097:22;;:::i;:::-;-1:-1:-1;;;;;;;;;19122:18:4;;;;;;;;:8;:18;;;;;;;;19097:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;19122:18:4;;-1:-1:-1;19122:18:4;;19097:43;18973:244::o;14417:102::-;-1:-1:-1;;;;;;;;;;;14463:4:4;14480:29;:8;:29;;:35;;;;;;;;14417:102::o;19274:125::-;19336:11;19360:27;19388:6;19360:35;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;19360:35:4;;19274:125;-1:-1:-1;;19274:125:4:o;13732:152::-;13831:6;13807:13;6115:23;6129:8;6115:13;:23::i;:::-;-1:-1:-1;;;;;;;13850:23:4;;;;;:8;:23;;;;;:30;;;;;;13732:152::o;19798:206::-;19916:7;19925;19945:55;19964:12;19978;19992:7;19945:18;:55::i;:::-;19938:62;;;;19798:206;;;;;;:::o;18669:110::-;575:12:66;:10;:12::i;:::-;18741:34:4;18765:9;18741:23;:34::i;:::-;18669:110;:::o;8967:93::-;9008:4;9051;-1:-1:-1;;;;;9025:31:4;:6;;;;;;;;;-1:-1:-1;;;;;9025:6:4;-1:-1:-1;;;;;9025:12:4;;:14;;;;;-1:-1:-1;;;9025:14:4;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9025:14:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9025:14:4;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9025:14:4;-1:-1:-1;;;;;9025:31:4;;;-1:-1:-1;8967:93:4;:::o;1250:38:60:-;;;;;;;;;:::o;18836:80:4:-;575:12:66;:10;:12::i;:::-;18889:23:4;:21;:23::i;:::-;18836:80::o;10292:155::-;575:12:66;:10;:12::i;:::-;10400:6:4;;:43;;;;;;-1:-1:-1;;;;;10400:43:4;;;;;;;;;;;;;;;;;;;;;;:6;;;;;:21;;:43;;;;;:6;;:43;;;;;;;:6;;:43;;;5:2:-1;;;;30:1;27;20:12;5:2;10400:43:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10400:43:4;;;;10292:155;;;:::o;1852:81:23:-;1924:1;1852:81;:::o;11984:542::-;12100:19;12227:40;12321:9;565:12:68;:10;:12::i;:::-;287:1;581:5;:14;12066:1:23;12056:11;;12048:39;;;;;-1:-1:-1;;;;;12048:39:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;12134:6;;;;;;;;;-1:-1:-1;;;;;12134:6:23;-1:-1:-1;;;;;12122:31:23;;:33;;;;;-1:-1:-1;;;12122:33:23;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12122:33:23;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12122:33:23;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12122:33:23;12178:6;;12166:48;;;;;;12194:10;12166:48;;;;;;;;;;;;12122:33;;-1:-1:-1;;;;;;12178:6:23;;;;12166:27;;:48;;;;;12178:6;;12166:48;;;;;;;;12178:6;;12166:48;;;5:2:-1;;;;30:1;27;20:12;5:2;12166:48:23;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12166:48:23;;;;12284:13;:20;;;;12270:35;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;136:17;;-1:-1;12270:35:23;;12227:78;;12333:1;12321:13;;12316:104;12340:23;:30;12336:1;:34;12316:104;;;12419:1;12390:23;12414:1;12390:26;;;;;;;;;;;;;;;;;;:30;12372:3;;12316:104;;;12433:85;12457:13;12433:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12433:85:23;;;;;;;;;;;;;;;;;;;;;12472:23;12497:11;12510:7;12433:23;:85::i;:::-;-1:-1:-1;;249:1:68;604:5;:16;-1:-1:-1;;11984:542:23:o;2080:832:60:-;2281:29;2183:5;;-1:-1:-1;;;;;2183:5:60;2169:10;:19;;:50;;-1:-1:-1;2193:26:60;;;;;;;2192:27;2169:50;2161:80;;;;;;;-1:-1:-1;;;;;2161:80:60;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2161:80:60;;;;;;;;;;;;;;;2331:28;2341:17;2331:9;:28::i;:::-;2465:8;;2281:79;;-1:-1:-1;;;;;;2442:32:60;;;2465:8;;2442:32;;;;:61;;-1:-1:-1;;;;;;2478:25:60;;;;2442:61;2434:94;;;;;;;-1:-1:-1;;;;;2434:94:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;2628:40;;;;;;2650:17;2628:40;;;;;;2680:1;;-1:-1:-1;;;;;2628:21:60;;;;;:40;;;;;;;;;;;;;;;2680:1;2628:21;:40;;;5:2:-1;;;;30:1;27;20:12;5:2;2628:40:60;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2628:40:60;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2628:40:60;-1:-1:-1;;;;;2628:54:60;;;2620:87;;;;;-1:-1:-1;;;;;2620:87:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;2799:8;;;2784:12;:23;;-1:-1:-1;;;;;2799:8:60;;;-1:-1:-1;;2784:23:60;;;;;;;2886:22;;;;;;;;;;;2080:832::o;8691:132:4:-;575:12:66;:10;:12::i;:::-;8771:10:4;782:18:72;791:8;782;:18::i;:::-;-1:-1:-1;8787:19:4;:32;;-1:-1:-1;;8787:32:4;-1:-1:-1;;;;;8787:32:4;;;;;;;;;;8691:132::o;2221:35::-;2254:2;2221:35;:::o;2993:31::-;;;;;;;;;:::o;11282:601::-;11396:25;565:12:68;:10;:12::i;:::-;287:1;581:5;:14;575:12:66;:10;:12::i;:::-;11424:29:4;-1:-1:-1;;;;;;;;;;;11424:9:4;:29::i;:::-;-1:-1:-1;;;;;11622:16:4;;;;;;:8;:16;;;;;:22;;;11396:57;;-1:-1:-1;11622:22:4;;;;;11621:23;;:38;;;11649:10;:8;:10::i;:::-;11648:11;11621:38;:68;;;-1:-1:-1;11663:5:4;;-1:-1:-1;;;;;11663:26:4;;;:5;;:26;11621:68;11613:98;;;;;;;-1:-1:-1;;;;;11613:98:4;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;11613:98:4;;;;;;;;;;;;;;;11715:42;11736:6;11744:3;11749:7;11715:20;:42::i;:::-;-1:-1:-1;;;;;11829:16:4;;;;;;:8;:16;;;;;:22;;;;;;;;11825:54;;;11853:26;11872:6;11853:18;:26::i;1165:37:60:-;;;-1:-1:-1;;;;;1165:37:60;;:::o;9368:137:4:-;575:12:66;:10;:12::i;:::-;-1:-1:-1;;;;;;;;;;;1510:20:60;1516:13;1510:5;:20::i;:::-;9466:6:4;;:35;;;;;;-1:-1:-1;;;;;9466:35:4;;;;;;;;;:6;;;;;:24;;:35;;;;;:6;;:35;;;;;;;:6;;:35;;;5:2:-1;;;;30:1;27;20:12;5:2;9466:35:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9466:35:4;;;;591:1:66;9368:137:4;:::o;7669:465::-;7781:25;565:12:68;:10;:12::i;:::-;287:1;581:5;:14;575:12:66;:10;:12::i;:::-;-1:-1:-1;;;;;;;;;;;6115:23:4;6129:8;6115:13;:23::i;:::-;7809:29;-1:-1:-1;;;;;;;;;;;7809:9:4;:29::i;:::-;7781:57;;7938:10;:8;:10::i;:::-;7937:11;:41;;;-1:-1:-1;7952:5:4;;-1:-1:-1;;;;;7952:26:4;;;:5;;:26;7937:41;7929:71;;;;;;;-1:-1:-1;;;;;7929:71:4;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;7929:71:4;;;;;;;;;;;;;;;8004:35;;-1:-1:-1;;;;;8004:12:4;;;8025:4;8017:21;8004:35;;;;;;;;;8017:21;8004:12;:35;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8004:35:4;8078:52;-1:-1:-1;;;;;;;;;;;8078:18:4;:52::i;:::-;-1:-1:-1;;249:1:68;604:5;:16;-1:-1:-1;7669:465:4:o;12940:623::-;13373:26;575:12:66;:10;:12::i;:::-;5818:11:4;:9;:11::i;:::-;13043:6;475:23:72;489:8;475:13;:23::i;:::-;13061:6:4;782:18:72;791:8;782;:18::i;:::-;13090:7:4;6729:28;6749:7;6729:19;:28::i;:::-;13150:6;;-1:-1:-1;;;;;13132:25:4;;;13150:6;;13132:25;;;;:52;;-1:-1:-1;;;;;;13162:16:4;;;;;;:8;:16;;;;;:22;;;;;;;;13161:23;13132:52;13124:84;;;;;;;-1:-1:-1;;;;;13124:84:4;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;13124:84:4;;;;;;;;;;;;;;;13251:12;;;;;;1763:7;13231:32;13220:43;;;;;;;13212:82;;;;;-1:-1:-1;;;;;13212:82:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;13306:32;:19;:17;:19::i;:::-;:32;;;13298:70;;;;;-1:-1:-1;;;;;13298:70:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;13402:16:4;;;;;;;:8;:16;;;;;13422:22;;;13448:17;;;;:27;;-1:-1:-1;;13448:27:4;;;;-1:-1:-1;;13448:27:4;;;;13479:23;;;;;;;;;13506:13;27:10:-1;;23:18;;;45:23;;13506:26:4;;;;;;;;;-1:-1:-1;;13506:26:4;;;;;;;13536:12;:23;;;;;;;;;;;;;;;;;;;-1:-1:-1;12940:623:4:o;21154:180:23:-;21210:7;;21271:2;21254:53;21279:1;21275;:5;21254:53;;;21304:3;;;;;;21287:2;21282:7;;21254:53;;;-1:-1:-1;21325:1:23;21154:180;-1:-1:-1;;21154:180:23:o;339:87:36:-;398:10;:24;;-1:-1:-1;;;;;398:24:36;;;;;;;;;;;;;;;339:87::o;19456:94:4:-;19508:6;19527:19;:17;:19::i;:::-;19520:26;;19456:94;:::o;1159:176:66:-;1219:8;;-1:-1:-1;;;;;1219:8:66;1205:10;:22;1197:52;;;;;-1:-1:-1;;;;;1197:52:66;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1197:52:66;;;;;;;;;;;;;;;1277:8;;;1270:5;;1258:28;;-1:-1:-1;;;;;1277:8:66;;;;1270:5;;;;1258:28;;;1298:8;;;;1290:16;;-1:-1:-1;;1290:16:66;;;-1:-1:-1;;;;;1298:8:66;;1290:16;;;;1310:21;;;1159:176::o;1085:33:60:-;;;-1:-1:-1;;;;;1085:33:60;;:::o;6247:1402:23:-;6680:9;7130:19;7291:14;565:12:68;:10;:12::i;:::-;287:1;581:5;:14;5606:9:4;:7;:9::i;:::-;6478:65:23;6499:14;6515:15;6532:10;6478:20;:65::i;:::-;6692:1;6680:13;;6675:195;6699:14;:21;6695:1;:25;6675:195;;;6744:17;;-1:-1:-1;;;;;;;;;;;1884:42:4;6744:14:23;;6759:1;;6744:17;;;;;;;;;;;;;;-1:-1:-1;;;;;6744:40:23;;6740:130;;;6833:9;6811:15;6827:1;6811:18;;;;;;;;;;;;;;;;;;;:31;6803:67;;;;;-1:-1:-1;;;;;6803:67:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;6722:3;;;;;6675:195;;;7002:1;6990:9;:13;6986:98;;;-1:-1:-1;;;;;;;;;;;7026:29:23;;:8;:29;;:35;;;;;;;7018:66;;;;;;;-1:-1:-1;;;;;7018:66:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;7164:6;;;;;;;;;-1:-1:-1;;;;;7164:6:23;-1:-1:-1;;;;;7152:31:23;;:33;;;;;-1:-1:-1;;;7152:33:23;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7152:33:23;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7152:33:23;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7152:33:23;;-1:-1:-1;7308:64:23;7327:14;7343:15;7152:33;7308:18;:64::i;:::-;7291:81;-1:-1:-1;7499:20:23;;;;7491:51;;;;;-1:-1:-1;;;;;7491:51:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;7608:6;;7596:45;;;;;;7622:10;7596:45;;;;;;;;;;;;-1:-1:-1;;;;;7608:6:23;;;;7596:25;;:45;;;;;7608:6;;7596:45;;;;;;;;7608:6;;7596:45;;;5:2:-1;;;;30:1;27;20:12;5:2;7596:45:23;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;249:1:68;604:5;:16;-1:-1:-1;;;;;;;;6247:1402:23:o;157:20:66:-;;;-1:-1:-1;;;;;157:20:66;;:::o;2818:34:4:-;;;;;;;;;:::o;12584:101::-;12660:13;:20;12584:101;:::o;21967:332:23:-;22108:14;;22037:7;;;;;22133:90;22157:6;22153:1;:10;22133:90;;;22198:25;22212:7;22220:1;22212:10;;;;;;;;;;;;;;;;;;22198:13;:25::i;:::-;22183:40;;;;22165:3;;22133:90;;;22289:1;22257:29;22266:11;22279:6;22257:8;:29::i;:::-;:33;22249:2;22241:50;;21967:332;-1:-1:-1;;;;;21967:332:23:o;2798:838::-;3031:7;3040;3168:14;3557:11;5606:9:4;:7;:9::i;:::-;2963:12:23;6115:23:4;6129:8;6115:13;:23::i;:::-;2999:12:23;6115:23:4;6129:8;6115:13;:23::i;:::-;-1:-1:-1;;;;;3100:28:23;;;;;;;;3092:63;;;;;-1:-1:-1;;;;;3092:63:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;3204:29;-1:-1:-1;;;;;;;;;;;3204:9:23;:29::i;:::-;-1:-1:-1;;;;;3185:74:23;;3274:28;3289:12;3274:14;:28::i;:::-;-1:-1:-1;;;;;3317:22:23;;;;;;:8;:22;;;;;:29;;;;;3361:28;3376:12;3361:14;:28::i;:::-;-1:-1:-1;;;;;3404:22:23;;;;;;:8;:22;;;;;;;;:29;;;3185:281;;3404:29;3185:281;;;-1:-1:-1;;;3185:281:23;;;;;;;;;;;;;;;;;;;;;;;;3404:29;;;;3185:281;;;;;;;;;;;;;;;;;3404:22;;3185:281;;;;;;;;;;;;;;5:2:-1;;;;30:1;27;20:12;5:2;3185:281:23;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3185:281:23;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3185:281:23;;-1:-1:-1;3571:20:23;3185:281;3571:12;:20::i;:::-;3610:12;;;;;3557:34;;-1:-1:-1;2798:838:23;;-1:-1:-1;;;;;;;2798:838:23:o;8055:722::-;8429:19;565:12:68;:10;:12::i;:::-;287:1;581:5;:14;5606:9:4;:7;:9::i;:::-;8278:71:23;8299:14;8315:24;8341:7;8278:20;:71::i;:::-;8463:6;;;;;;;;;-1:-1:-1;;;;;8463:6:23;-1:-1:-1;;;;;8451:31:23;;:33;;;;;-1:-1:-1;;;8451:33:23;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8451:33:23;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8451:33:23;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8451:33:23;8545:6;;8533:48;;;;;;8561:10;8533:48;;;;;;;;;;;;8451:33;;-1:-1:-1;;;;;;8545:6:23;;;;8533:27;;:48;;;;;8545:6;;8533:48;;;;;;;;8545:6;;8533:48;;;5:2:-1;;;;30:1;27;20:12;5:2;8533:48:23;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8533:48:23;;;;8682:87;8706:14;8722:24;8748:11;8761:7;8682:23;:87::i;2974:119:60:-;575:12:66;:10;:12::i;:::-;3077::60;;3066:8;:23;;-1:-1:-1;;3066:23:60;-1:-1:-1;;;;;3077:12:60;;;3066:23;;;;;;2974:119::o;21574:116:23:-;21637:7;21680:2;21675:1;21680:2;21670:6;21665:2;:11;21664:18;;;;;;;;;21574:116;-1:-1:-1;;;21574:116:23:o;3095:46:4:-;3137:4;3095:46;:::o;2322:37::-;;;-1:-1:-1;;;;;2322:37:4;;:::o;9209:2366:23:-;9413:14;9474:26;9756:20;9815:9;9868:24;9926:18;9992:21;10815:25;10954:26;11276:20;565:12:68;:10;:12::i;:::-;287:1;581:5;:14;9276:21:23;:19;:21::i;:::-;-1:-1:-1;;;;;;;;;;;9348:29:23;;:8;:29;;-1:-1:-1;;;;;;;;;;;9348:37:23;:52;;9390:9;9348:52;:41;:52;:::i;:::-;-1:-1:-1;;;;;;;;;;;9308:29:23;;;;:8;:29;;;;-1:-1:-1;;;;;;;;;;;9308:92:23;;;;9442:6;;9308:29;9430:33;;;;;;;-1:-1:-1;;;;;9442:6:23;;;;9430:31;;:33;;;;;9308:29;;9430:33;;;;;;;9442:6;9430:33;;;5:2:-1;;;;30:1;27;20:12;5:2;9430:33:23;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9430:33:23;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9430:33:23;;-1:-1:-1;9522:29:23;-1:-1:-1;;;;;;;;;;;9522:9:23;:29::i;:::-;9779:13;:20;9474:78;;-1:-1:-1;9779:20:23;-1:-1:-1;9827:1:23;;-1:-1:-1;9810:1639:23;9834:12;9830:1;:16;9810:1639;;;9895:13;:16;;9909:1;;9895:16;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9895:16:23;9868:43;;9947:8;:22;9956:12;-1:-1:-1;;;;;9947:22:23;-1:-1:-1;;;;;9947:22:23;;;;;;;;;;;;:30;;;9926:51;;10016:7;-1:-1:-1;;;;;10016:16:23;;10033:6;10041:10;10053:12;;;;;;;;;;;10067:7;10016:59;;;;;-1:-1:-1;;;10016:59:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10016:59:23;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10016:59:23;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;10016:59:23;;-1:-1:-1;;;;;;10164:35:23;;-1:-1:-1;;;;;;;;;;;10164:35:23;10160:598;;;10236:13;10224:9;:25;10220:406;;;10274:46;;:10;;10294:9;:25;;;10274:46;;;;;;;;;10294:25;10274:10;:46;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10274:46:23;10220:406;;;10379:13;10367:9;:25;10363:263;;;10425:9;:14;10417:48;;;;;-1:-1:-1;;;;;10417:48:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;10505:10;;10488:61;;10505:10;;;-1:-1:-1;;;;;10505:10:23;10517;10529:4;10535:13;10488:16;:61::i;:::-;10572:10;;;;;;;;;-1:-1:-1;;;;;10572:10:23;-1:-1:-1;;;;;10572:19:23;;10592:13;10572:34;;;;;-1:-1:-1;;;10572:34:23;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10572:34:23;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10572:34:23;;;;10363:263;10160:598;;;10679:63;10696:12;10710:10;10722:4;10728:13;10679:16;:63::i;:::-;10843:29;:10;10858:13;10843:29;:14;:29;:::i;:::-;-1:-1:-1;;;;;10887:22:23;;;;;;:8;:22;;;;;:50;;;10815:57;-1:-1:-1;10983:19:23;:6;10994:7;10983:19;:10;:19;:::i;:::-;11093:94;;;;;;;;;;;;;;;;;;;;10954:48;;-1:-1:-1;;;;;;11093:94:23;;;11108:10;;11093:94;;;;;;;;;;-1:-1:-1;;;;;;11299:22:23;;;;;;:8;:22;;;;;:29;;;;;11343:94;11370:18;11308:12;11404:17;11299:29;11343:26;:94::i;:::-;9848:3;;;;;9810:1639;;;11533:6;;11521:46;;;;;;11547:10;11521:46;;;;;;;;;;;;-1:-1:-1;;;;;11533:6:23;;;;11521:25;;:46;;;;;11533:6;;11521:46;;;;;;;;11533:6;;11521:46;;;5:2:-1;;;;30:1;27;20:12;5:2;11521:46:23;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;249:1:68;604:5;:16;-1:-1:-1;;;;;;;;;;;;;9209:2366:23:o;2206:157::-;575:12:66;:10;:12::i;:::-;2267:29:23;:27;:29::i;:::-;2342:6;;2350:4;;-1:-1:-1;;;;;2342:6:23;2325:15;:13;:15::i;:::-;2314:41;;;;;;;;;;;;2206:157::o;2445:34:4:-;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2445:34:4;;-1:-1:-1;2445:34:4;:::o;2260:30::-;;;-1:-1:-1;;;;;2260:30:4;;:::o;180:23:66:-;;;-1:-1:-1;;;;;180:23:66;;:::o;12079:317:4:-;12119:36;575:12:66;:10;:12::i;:::-;12177:29:4;-1:-1:-1;;;;;;;;;;;12177:9:4;:29::i;:::-;12278:6;;12119:88;;-1:-1:-1;12286:5:4;;-1:-1:-1;;;;;12278:6:4;12261:15;:13;:15::i;:::-;12250:42;;;;;;;;;;;;12297:36;12315:17;12297;:36::i;:::-;12337:34;;;;;;2254:2;12337:34;;;;;;-1:-1:-1;;;;;12337:25:4;;;;;:34;;;;;-1:-1:-1;;12337:34:4;;;;;;;-1:-1:-1;12337:25:4;:34;;;5:2:-1;;;;30:1;27;20:12;5:2;12337:34:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12337:34:4;;;;12375:17;:15;:17::i;2566:43::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;19607:134::-;19686:7;19706:31;19721:15;19706:14;:31::i;:::-;19699:38;19607:134;-1:-1:-1;;19607:134:4:o;14111:155::-;14211:7;14187:13;6115:23;6129:8;6115:13;:23::i;:::-;-1:-1:-1;;;;;;;14231:23:4;;;;;:8;:23;;;;;:31;;14111:155::o;15044:649::-;15241:7;565:12:68;:10;:12::i;:::-;287:1;581:5;:14;15212:18:4;1510:20:60;15212:18:4;1510:5:60;:20::i;:::-;-1:-1:-1;;;;;15282:28:4;;;;;;;;15274:63;;;;;-1:-1:-1;;;;;15274:63:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;15446:19;;-1:-1:-1;;;;;15446:19:4;:33;;:132;;-1:-1:-1;15484:19:4;;:42;;;;;;-1:-1:-1;;;;;15484:42:4;;;;;;;;;:19;;;;;:33;;:42;;;;;;;;;;;;;;:19;;:42;;;5:2:-1;;;;30:1;27;20:12;5:2;15484:42:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15484:42:4;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;15484:42:4;:93;;;;-1:-1:-1;15530:19:4;;:47;;;;;;-1:-1:-1;;;;;15530:47:4;;;;;;;;;:19;;;;;:33;;:47;;;;;;;;;;;;;;:19;;:47;;;5:2:-1;;;;30:1;27;20:12;5:2;15530:47:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15530:47:4;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;15530:47:4;15484:93;15434:174;;;;;;;-1:-1:-1;;;;;15434:174:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;15620:69;15630:12;15644;15658:7;15667;15676:12;15620:9;:69::i;:::-;249:1:68;604:5;:16;15613:76:4;15044:649;-1:-1:-1;;;;;;;15044:649:4:o;10618:240::-;575:12:66;:10;:12::i;:::-;10714:16:4;;;;;;;;;10696:34;;;;;10688:73;;;;;-1:-1:-1;;;;;10688:73:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;10790:13;;10770:50;;;10790:13;;;;;;;10770:50;;;;;;;;;;;;;;;;;;;;;10824:13;:30;;;;;;;;-1:-1:-1;;10824:30:4;;;;;;;;;10618:240::o;945:140:66:-;575:12;:10;:12::i;:::-;1033:5;;-1:-1:-1;;;;;1020:18:66;;;1033:5;;1020:18;;1012:45;;;;;-1:-1:-1;;;;;1012:45:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;1061:8;:20;;-1:-1:-1;;1061:20:66;-1:-1:-1;;;;;1061:20:66;;;;;;;;;;945:140::o;18535:77:4:-;18602:6;;-1:-1:-1;;;;;18602:6:4;18535:77;:::o;642:93:66:-;704:5;;-1:-1:-1;;;;;704:5:66;690:10;:19;682:49;;;;;-1:-1:-1;;;;;682:49:66;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;682:49:66;;;;;;;;;;;;;;6193:123:4;-1:-1:-1;;;;;6264:18:4;;;;;;:8;:18;;;;;:24;;;;;;;;6256:56;;;;;;;-1:-1:-1;;;;;6256:56:4;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;6256:56:4;;;;;;;;;;;;;;670:88:68;718:5;;249:1;718:17;710:44;;;;;-1:-1:-1;;;;;710:44:68;;;;;;;;;;;;;;;;;;;;;;;;;;;18746:1572:23;18965:26;19054;19126:9;19188:24;19247:18;19313:21;19527:25;20138:20;18931:21;:19;:21::i;:::-;19013:29;-1:-1:-1;;;;;;;;;;;19013:9:23;:29::i;:::-;18965:78;-1:-1:-1;19083:25:23;:12;19100:7;19083:25;:16;:25;:::i;:::-;19054:54;;19138:1;19126:13;;19121:1190;19145:14;:21;19141:1;:25;19121:1190;;;19215:14;19230:1;19215:17;;;;;;;;;;;;;;;;;;19188:44;;19268:8;:22;19277:12;-1:-1:-1;;;;;19268:22:23;-1:-1:-1;;;;;19268:22:23;;;;;;;;;;;;:30;;;19247:51;;19337:7;-1:-1:-1;;;;;19337:30:23;;19368:12;19382:10;19394:12;;;;;;;;;;;19408:7;19337:79;;;;;-1:-1:-1;;;19337:79:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19337:79:23;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;19337:79:23;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;19337:79:23;19456:27;;19337:79;;-1:-1:-1;19456:24:23;;19481:1;;19456:27;;;;;;;;;;;;;;;19439:44;;;19431:79;;;;;-1:-1:-1;;;;;19431:79:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;19555:29;:10;19570:13;19555:29;:14;:29;:::i;:::-;-1:-1:-1;;;;;19599:22:23;;;;;;:8;:22;;;;;:50;;;19527:57;;-1:-1:-1;;;;;;;;;;;;19753:35:23;19749:182;;;19807:34;;:10;;:34;;;;;19827:13;;19807:34;;;;19827:13;19807:10;:34;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;19807:34:23;19749:182;;;19878:53;19891:12;19905:10;19917:13;19878:12;:53::i;:::-;19953:96;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;19953:96:23;;;19970:10;;19953:96;;;;;;;;;-1:-1:-1;;;;;;20161:22:23;;;;;;:8;:22;;;;;:29;;;;;20205:94;20232:18;20170:12;20266:17;20161:29;20205:26;:94::i;:::-;19168:3;;;;;19121:1190;;;18746:1572;;;;;;;;;;;;:::o;3647:122:60:-;3732:8;;:33;;;;;;;;;;;;;;3712:7;;-1:-1:-1;;;;;3732:8:60;;:18;;:33;;;;;;;;;;;;;;3712:7;3732:8;:33;;;5:2:-1;;;;30:1;27;20:12;5:2;3732:33:60;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3732:33:60;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3732:33:60;;3647:122;-1:-1:-1;;3647:122:60:o;855:115:72:-;-1:-1:-1;;;;;917:25:72;;937:4;917:25;;909:57;;;;;-1:-1:-1;;;;;909:57:72;;;;;;;;;;;;;;;;;;;;;;;;;;;1077:194:71;575:12:66;:10;:12::i;:::-;1190:6:71;475:23:72;489:8;475:13;:23::i;:::-;1211:3:71;475:23:72;489:8;475:13;:23::i;:::-;1224:3:71;782:18:72;791:8;782;:18::i;:::-;1233:34:71;1246:6;1254:3;1259:7;1233:12;:34::i;16898:269:4:-;16975:13;6115:23;6129:8;6115:13;:23::i;:::-;-1:-1:-1;;;;;16998:36:4;;-1:-1:-1;;;;;;;;;;;16998:36:4;16994:169;;;-1:-1:-1;;;;;17036:23:4;;;;;;:8;:23;;;;;17078:4;17070:21;17036:55;;16994:169;;;17134:29;;;;;;17158:4;17134:29;;;;;;-1:-1:-1;;;;;17134:23:4;;;;;:29;;;;;;;;;;;;;;-1:-1:-1;17134:23:4;:29;;;5:2:-1;;;;30:1;27;20:12;5:2;17134:29:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17134:29:4;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;17134:29:4;-1:-1:-1;;;;;17100:23:4;;;;;;:8;17134:29;17100:23;;;;:63;16994:169;16898:269;;:::o;1585:128:60:-;1663:24;1673:13;1663:9;:24::i;:::-;-1:-1:-1;;;;;1649:38:60;:10;:38;1641:68;;;;;-1:-1:-1;;;;;1641:68:60;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1641:68:60;;;;;;;;;;;;;;5884:77:4;5932:10;:8;:10::i;:::-;5931:11;5923:34;;;;;-1:-1:-1;;;;;5923:34:4;;;;;;;;;;;;;;;;;;;;;;;;;;;553:117:72;-1:-1:-1;;;;;620:22:72;;;;612:54;;;;;-1:-1:-1;;;;;612:54:72;;;;;;;;;;;;;;;;;;;;;;;;;;;6812:149:4;6893:1;6883:7;:11;;;:43;;;;-1:-1:-1;1763:7:4;6898:28;;;;;6883:43;6875:82;;;;;;;-1:-1:-1;;;;;6875:82:4;;;;;;;;;;;;;;;;;;;;;;;;;;;5670:76;5715:10;:8;:10::i;:::-;5707:35;;;;;;;-1:-1:-1;;;;;5707:35:4;;;;;;;;;;;;;;;;;;;;;;;;;;;12933:1158:23;13134:13;:20;13183:21;;13075:9;;;;13173:31;;13165:63;;;;;-1:-1:-1;;;;;13165:63:23;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;13165:63:23;;;;;;;;;;;;;;;13257:22;;13247:32;;13239:63;;;;;-1:-1:-1;;;;;13239:63:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;13324:1;13320:5;;13315:650;13331:6;13327:1;:10;13315:650;;;13455:8;:27;13464:14;13479:1;13464:17;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13455:27:23;;;;;;;;;;;-1:-1:-1;13455:27:23;:33;;;;;;;;;13447:65;;;;;;;-1:-1:-1;;;;;13447:65:23;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;13447:65:23;;;;;;;;;;;;;;;13536:1;13532:5;;13527:133;13543:6;13539:1;:10;13527:133;;;13599:14;13614:1;13599:17;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13579:37:23;:13;13593:1;13579:16;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13579:16:23;:37;13575:69;;;13639:5;;13575:69;13551:3;;;;;13527:133;;;13770:10;;;13762:42;;;;;-1:-1:-1;;;;;13762:42:23;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;13762:42:23;;;;;;;;;;;;;;;13929:1;13908:15;13924:1;13908:18;;;;;;;;;;;;;;;;;;;:22;13900:53;;;;;-1:-1:-1;;;;;13900:53:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;13339:3;;;;;13315:650;;;14062:1;14052:11;;14044:39;;;;;-1:-1:-1;;;;;14044:39:23;;;;;;;;;;;;;;;;;;;;;;;;;;;14353:379;14509:7;14538:17;;14534:99;;;14577:56;14601:14;14617:15;14577:23;:56::i;:::-;14570:63;;;;14534:99;14651:73;14678:14;14694:15;14711:12;14651:26;:73::i;:::-;14644:80;;14353:379;;;;;;:::o;16577:155:4:-;16683:13;;16645:7;;16665:63;;1826:7;;16665:32;;:13;;16683;;;16665:63;16683:13;;;;16665:17;:32;:::i;:::-;:36;:63;:36;:63;:::i;17223:174::-;17290:13;:20;17267;17314:79;17338:12;17334:1;:16;17314:79;;;17357:36;17376:13;17390:1;17376:16;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;17376:16:4;17357:18;:36::i;:::-;17352:3;;17314:79;;613:129:69;673:7;694:8;;;;686:34;;;;;-1:-1:-1;;;;;686:34:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;731:7:69;;;613:129::o;1740:206:70:-;351:50;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1870:71:70;;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;1870:71:70;;;;;;;25:18:-1;;61:17;;1870:71:70;182:15:-1;-1:-1;;1870:71:70;;;179:29:-1;;;;160:49;;;1854:88:70;;1862:6;;1854:7;:88::i;:::-;1740:206;;;;:::o;288:144:69:-;348:7;373;;;392;;;;384:32;;;;;-1:-1:-1;;;;;384:32:69;;;;;;;;;;;;;;;;;;;;;;;;;;;24265:285:23;24442:6;;-1:-1:-1;;;;;24426:116:23;;;;24442:6;24426:116;24465:38;:15;1763:7:4;24465:19:23;:38::i;:::-;24505:36;:16;:36;;;;;:20;:36;:::i;:::-;24426:116;;;;;;;;;;;;;;;;;;;;;;24265:285;;;;:::o;2090:197:9:-;2219:1;2197:19;:17;:19::i;:::-;:23;;;2189:61;;;;;-1:-1:-1;;;;;2189:61:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;2254:29;:27;:29::i;4223:1642:23:-;4386:7;4459:14;4475:11;4745:28;4490:55;4509:12;4523;4537:7;4490:18;:55::i;:::-;4458:87;;-1:-1:-1;4458:87:23;-1:-1:-1;4626:11:23;;;4618:46;;;;;-1:-1:-1;;;;;4618:46:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;4776:28;4791:12;4776:14;:28::i;:::-;4745:59;-1:-1:-1;4822:29:23;;;4815:37;;;;-1:-1:-1;;;;;4932:35:23;;-1:-1:-1;;;;;;;;;;;4932:35:23;4928:261;;;4990:9;:20;;4982:56;;;;;-1:-1:-1;;;;;4982:56:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;4928:261;;;5075:9;:14;:91;;;;;5159:7;5093:62;5126:28;5141:12;5126:14;:28::i;:::-;5093;;;;;;5116:4;5093:28;;;;;;-1:-1:-1;;;;;5093:22:23;;;;;:28;;;;;;;;;;;;;;-1:-1:-1;5093:22:23;:28;;;5:2:-1;;;;30:1;27;20:12;5:2;5093:28:23;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5093:28:23;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5093:28:23;;:62;:32;:62;:::i;:::-;:73;;5075:91;5067:122;;;;;;;-1:-1:-1;;;;;5067:122:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;5240:32;5259:12;5240:18;:32::i;:::-;-1:-1:-1;;;;;5316:22:23;;;;;;:8;:22;;;;;:30;:42;;5351:6;5316:42;:34;:42;:::i;:::-;-1:-1:-1;;;;;5283:22:23;;;;;;:8;:22;;;;;:75;;;;-1:-1:-1;;;;;;;;;;;5445:35:23;5441:160;;;5495:29;;-1:-1:-1;;;;;5495:21:23;;;:29;;;;;5517:6;;5495:29;;;;5517:6;5495:21;:29;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5495:29:23;5441:160;;;5553:48;5566:12;5580;5594:6;5553:12;:48::i;:::-;5656:82;5680:12;5694;5708:7;5717;5726:6;5734:3;5656:23;:82::i;:::-;5785:46;5804:12;5818;5785:18;:46::i;:::-;-1:-1:-1;5851:6:23;;4223:1642;-1:-1:-1;;;;;;;4223:1642:23:o;1214:173:70:-;248:38;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1323:59:70;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;1323:59:70;;;;;;;;25:18:-1;;61:17;;1323:59:70;182:15:-1;-1:-1;;1323:59:70;;;179:29:-1;;;;160:49;;;1307:76:70;;1315:6;;1307:7;:76::i;:::-;1214:173;;;:::o;14958:1136:23:-;15097:7;15207:14;15351:9;15889:20;15224:30;15238:15;15224:13;:30::i;:::-;15207:47;;15363:1;15351:13;;15346:715;15370:14;:21;15366:1;:25;15346:715;;;15417:17;;-1:-1:-1;;;;;;;;;;;1884:42:4;15417:14:23;;15432:1;;15417:17;;;;;;;;;;;;;;;-1:-1:-1;;;;;15417:40:23;;15413:199;;15539:73;15556:14;15571:1;15556:17;;;;;;;;;;;;;;;;;;15575:10;15587:4;15593:15;15609:1;15593:18;;;;;;;;;;;;;;;;;;15539:16;:73::i;:::-;15667:15;15683:1;15667:18;;;;;;;;;;;;;;;;;;15629:8;:27;15638:14;15653:1;15638:17;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;15629:27:23;;;;;;;;;;;-1:-1:-1;15629:27:23;:56;15734:17;;:14;;15749:1;;15734:17;;;;;;;;;;;;;;-1:-1:-1;;;;;15707:93:23;15722:10;-1:-1:-1;;;;;15707:93:23;;15753:15;15769:1;15753:18;;;;;;;;;;;;;;;;;;15773:15;15789:1;15773:18;;;;;;;;;;;;;;;;;;;;15707:93;;;;;;;;;;;;;;;;;;;;;;;;;15912:8;:27;15921:14;15936:1;15921:17;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;15912:27:23;;;;;;;;;;;-1:-1:-1;15912:27:23;:34;;;15996:17;;15912:34;;;;;-1:-1:-1;15961:88:23;;15988:6;;15996:14;;16011:1;;15996:17;;;;;;;;;;;;;;16015:15;16031:1;16015:18;;;;;;;;;;;;;;;;;;16035:13;15961:26;:88::i;:::-;15393:3;;;;;15346:715;;;-1:-1:-1;16080:6:23;;14958:1136;-1:-1:-1;;;;14958:1136:23:o;16376:2010::-;16540:7;16702:26;16791:14;16886:26;16957:9;17019:24;17078:18;17144:21;17843:25;18170:20;16565:21;:19;:21::i;:::-;-1:-1:-1;;;;;;;;;;;16637:29:23;;:8;:29;;-1:-1:-1;;;;;;;;;;;16637:37:23;:52;;16679:9;16637:52;:41;:52;:::i;:::-;-1:-1:-1;;;;;;;;;;;16597:29:23;;:8;:29;;-1:-1:-1;;;;;;;;;;;16597:92:23;16750:29;-1:-1:-1;;;;;;;;;;;16750:9:23;:29::i;:::-;16702:78;;16808:67;16820:7;16829:12;16843:14;16859:15;16808:11;:67::i;:::-;16791:84;-1:-1:-1;16915:24:23;:12;16791:84;16915:24;:16;:24;:::i;:::-;16886:53;;16969:1;16957:13;;16952:1401;16976:14;:21;16972:1;:25;16952:1401;;;17046:14;17061:1;17046:17;;;;;;;;;;;;;;;;;;17019:44;;17099:8;:22;17108:12;-1:-1:-1;;;;;17099:22:23;-1:-1:-1;;;;;17099:22:23;;;;;;;;;;;;:30;;;17078:51;;17168:7;-1:-1:-1;;;;;17168:16:23;;17185:12;17199:10;17211:12;;;;;;;;;;;17225:6;17168:64;;;;;-1:-1:-1;;;17168:64:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17168:64:23;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17168:64:23;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;17168:64:23;;-1:-1:-1;17271:1:23;17255:17;;17247:52;;;;;-1:-1:-1;;;;;17247:52:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;17338:15;17354:1;17338:18;;;;;;;;;;;;;;;;;;;17321:35;;;17314:43;;;;-1:-1:-1;;;;;17461:35:23;;-1:-1:-1;;;;;;;;;;;17461:35:23;17457:369;;17578:63;17595:12;17609:10;17621:4;17627:13;17578:16;:63::i;:::-;17457:369;;;17686:13;17665:15;17681:1;17665:18;;;;;;;;;;;;;;;;;;:34;17661:165;;;17771:10;-1:-1:-1;;;;;17771:19:23;:55;17812:13;17791:15;17807:1;17791:18;;;;;;;;;;;;;;;;;;:34;17771:55;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17771:55:23;17661:165;17871:29;:10;17886:13;17871:29;:14;:29;:::i;:::-;-1:-1:-1;;;;;17915:22:23;;;;;;:8;:22;;;;;;;;;:50;;;17987:94;;;;;;;;;;;;;;;;;;;17843:57;;-1:-1:-1;17915:22:23;;18002:10;;17987:94;;;;;;;;;;18193:8;:27;18202:14;18217:1;18202:17;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;18193:27:23;;;;;;;;;;;-1:-1:-1;18193:27:23;:34;;;18289:17;;18193:34;;;;;-1:-1:-1;18242:99:23;;18269:18;;18289:14;;18304:1;;18289:17;;;;;;;;;;;;;;18308;18327:13;18242:26;:99::i;:::-;16999:3;;;;;16952:1401;;;-1:-1:-1;18372:6:23;;16376:2010;-1:-1:-1;;;;;;;;;;;16376:2010:23:o;924:197:69:-;984:7;;1023;;1019:21;;;1039:1;1032:8;;;;1019:21;-1:-1:-1;1057:7:69;;;1062:2;1057;:7;1076:6;;;;;;;;:12;1068:37;;;;;-1:-1:-1;;;;;1068:37:69;;;;;;;;;;;;;;;;;;;;;;;;;;;1307:149;1367:7;;1388:6;;;1380:37;;;;;-1:-1:-1;;;;;1380:37:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;1438:2;1433;:7;;;;;;;;;1307:149;-1:-1:-1;;;;1307:149:69:o;2255:557:70:-;2324:21;;:::i;:::-;:36;;;;;;;;;2357:1;2324:36;;;;;2687:2;2661:3;2580:5;2574:12;2495:2;2488:5;2484:14;2465:1;2430:6;2404:3;2394:317;2725:7;2718:15;2715:2;;;2750:1;2747;2740:12;2715:2;-1:-1:-1;2773:6:70;;:11;;2765:43;;;;;-1:-1:-1;;;;;2765:43:70;;;;;;;;;;;;;;;;;;;;;;;;;;;9796:227:4;575:12:66;:10;:12::i;:::-;9935:1:4;9913:19;:17;:19::i;:::-;:23;;;9905:61;;;;;-1:-1:-1;;;;;9905:61:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;9970:6;;;;;;;;;-1:-1:-1;;;;;9970:6:4;-1:-1:-1;;;;;9970:22:4;;:24;;;;;-1:-1:-1;;;9970:24:4;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9970:24:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9970:24:4;;;;9998:21;:19;:21::i;17773:656::-;18318:6;18305:19;;18298:27;;;;18334:91;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;18334:91:4;;;;;;;;;;;;;;;;;;;;;17773:656;;;;;;:::o;22602:1278:23:-;22701:23;22771:28;22841;22911:26;22980;23096:13;23168;22739:6;;;;;;;;;-1:-1:-1;;;;;22739:6:23;-1:-1:-1;;;;;22727:31:23;;:33;;;;;-1:-1:-1;;;22727:33:23;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;22727:33:23;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;22727:33:23;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;22727:33:23;;-1:-1:-1;22802:28:23;22817:12;22802:14;:28::i;:::-;22771:59;;22872:28;22887:12;22872:14;:28::i;:::-;-1:-1:-1;;;;;22940:22:23;;;;;;;:8;:22;;;;;;:29;;;;;23009:22;;;;;;;:29;;22841:59;;-1:-1:-1;22940:29:23;;;;;-1:-1:-1;23009:29:23;;;;-1:-1:-1;23112:45:23;;22841:59;;22940:29;;23112:24;:45;:::i;:::-;23096:61;-1:-1:-1;23184:45:23;:20;:45;;;;;:24;:45;:::i;:::-;23245:57;;;;;;;;;;;;;;23168:61;;-1:-1:-1;;;;;;23245:57:23;;;;;;;;;;;;;;;;23383:100;23410:15;23427:12;23441:20;23463:19;23383:26;:100::i;:::-;23494;23521:15;23538:12;23552:20;23574:19;23494:26;:100::i;:::-;23678:89;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;23678:89:23;;;;;;;;;;;;;23783;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;23783:89:23;;;;;;;;;;;;;22602:1278;;;;;;;;;:::o;20326:612::-;20490:7;;20558:1;20541:249;20565:14;:21;20561:1;:25;20541:249;;;20681:66;20711:8;:27;20720:14;20735:1;20720:17;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;20711:27:23;;;;;;;;;;;-1:-1:-1;20711:27:23;:35;20681:25;;:15;;20697:8;;20681:25;;;;;;;;;;;;;;;;:66;:29;:66;:::i;:::-;20612;20635:8;:34;20644:14;20659:8;20644:24;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;20635:34:23;;;;;;;;;;;-1:-1:-1;20635:34:23;:42;20612:18;;:15;;20628:1;;20612:18;;;;;:66;:135;20608:170;;;20777:1;20766:12;;20608:170;20588:3;;20541:249;;;20807:7;-1:-1:-1;;;;;20807:24:23;;20832:12;20846:8;:34;20855:14;20870:8;20855:24;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;20846:34:23;;;;;;;;;;;-1:-1:-1;20846:34:23;:42;20890:12;;20904:25;;20890:12;;;;;20904:15;;20920:8;;20904:25;;;;;;;;;;;;;;20807:123;;;;;-1:-1:-1;;;20807:123:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;20807:123:23;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;20807:123:23;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;20807:123:23;;20326:612;-1:-1:-1;;;;;;;20326:612:23:o;101:327:36:-;;;;;;;;;-1:-1:-1;101:327:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;-1:-1;101:327:36;;;-1:-1:-1;;101:327:36:o" + }, + "methodIdentifiers": { + "acceptAnchorOwnership()": "cdc91c69", + "acceptOwnership()": "79ba5097", + "acceptTokenOwnership()": "38a5e016", + "addLiquidity(address[],uint256[],uint256)": "7d8916bd", + "addReserve(address,uint32)": "6a49d2c4", + "anchor()": "d3fb73b4", + "connectorTokenCount()": "71f52bf3", + "connectorTokens(uint256)": "19b64015", + "connectors(address)": "0e53aae9", + "conversionFee()": "579cd3ca", + "conversionWhitelist()": "c45d3d92", + "conversionsEnabled()": "bf754558", + "convert(address,address,uint256,address,address)": "e8dc12ff", + "converterType()": "3e8ff43f", + "decimalLength(uint256)": "6aa5332c", + "fund(uint256)": "ca1d209d", + "geometricMean(uint256[])": "a60e7724", + "getConnectorBalance(address)": "d8959512", + "getReturn(address,address,uint256)": "1e1401f8", + "hasETHReserve()": "12c2aca4", + "isActive()": "22f3e2d4", + "isV28OrHigher()": "d260529c", + "liquidate(uint256)": "415f1240", + "maxConversionFee()": "94c275ad", + "newOwner()": "d4ee1d90", + "onlyOwnerCanUpdateRegistry()": "2fe8a6ad", + "owner()": "8da5cb5b", + "prevRegistry()": "61cd756e", + "registry()": "7b103999", + "removeLiquidity(uint256,address[],uint256[])": "b127c0a5", + "reserveBalance(address)": "dc8de379", + "reserveRatio()": "0c7d5cd8", + "reserveTokenCount()": "9b99a8e2", + "reserveTokens(uint256)": "d031370b", + "reserveWeight(address)": "1cfab290", + "reserves(address)": "d66bd524", + "restoreRegistry()": "b4a176d3", + "restrictRegistryUpdate(bool)": "024c7ec7", + "roundDiv(uint256,uint256)": "bbb7e5d8", + "setConversionFee(uint32)": "ecbca55d", + "setConversionWhitelist(address)": "4af80f0e", + "setEtherToken(address)": "6ad419a8", + "targetAmountAndFee(address,address,uint256)": "af94b8d8", + "token()": "fc0c546a", + "transferAnchorOwnership(address)": "67b6d57c", + "transferOwnership(address)": "f2fde38b", + "transferTokenOwnership(address)": "21e6b53d", + "updateRegistry()": "49d10b64", + "upgrade()": "d55ec697", + "version()": "54fd4d50", + "withdrawETH(address)": "690d8320", + "withdrawFromAnchor(address,address,uint256)": "395900d4", + "withdrawTokens(address,address,uint256)": "5e35359e" + } + }, + "userdoc": { + "methods": {} + } + } + }, + "solidity/contracts/helpers/TestLiquidityPoolV2Converter.sol": { + "TestLiquidityPoolV2Converter": { + "abi": [ + { + "constant": true, + "inputs": [ + { + "name": "_reserveToken", + "type": "address" + } + ], + "name": "reserveStakedBalance", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_onlyOwnerCanUpdateRegistry", + "type": "bool" + } + ], + "name": "restrictRegistryUpdate", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "primaryReserveToken", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "maxStakedBalanceEnabled", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "reserveRatio", + "outputs": [ + { + "name": "", + "type": "uint32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_address", + "type": "address" + } + ], + "name": "connectors", + "outputs": [ + { + "name": "", + "type": "uint256" + }, + { + "name": "", + "type": "uint32" + }, + { + "name": "", + "type": "bool" + }, + { + "name": "", + "type": "bool" + }, + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_primaryReserveStaked", + "type": "uint256" + }, + { + "name": "_secondaryReserveStaked", + "type": "uint256" + }, + { + "name": "_primaryReserveWeight", + "type": "uint256" + }, + { + "name": "_secondaryReserveWeight", + "type": "uint256" + }, + { + "name": "_primaryReserveRate", + "type": "uint256" + }, + { + "name": "_secondaryReserveRate", + "type": "uint256" + }, + { + "name": "_dynamicFeeFactor", + "type": "uint256" + } + ], + "name": "calculateFeeToEquilibriumTest", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_primaryReserveToken", + "type": "address" + }, + { + "name": "_primaryReserveOracle", + "type": "address" + }, + { + "name": "_secondaryReserveOracle", + "type": "address" + } + ], + "name": "activate", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "hasETHReserve", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "disableMaxStakedBalances", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_index", + "type": "uint256" + } + ], + "name": "connectorTokens", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_reserveToken", + "type": "address" + } + ], + "name": "reserveWeight", + "outputs": [ + { + "name": "", + "type": "uint32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_sourceToken", + "type": "address" + }, + { + "name": "_targetToken", + "type": "address" + }, + { + "name": "_amount", + "type": "uint256" + } + ], + "name": "getReturn", + "outputs": [ + { + "name": "", + "type": "uint256" + }, + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_newOwner", + "type": "address" + } + ], + "name": "transferTokenOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "isActive", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "priceOracle", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_reserveToken", + "type": "address" + } + ], + "name": "reserveAmplifiedBalance", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_poolToken", + "type": "address" + } + ], + "name": "liquidationLimit", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "onlyOwnerCanUpdateRegistry", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "acceptTokenOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_token", + "type": "address" + }, + { + "name": "_to", + "type": "address" + }, + { + "name": "_amount", + "type": "uint256" + } + ], + "name": "withdrawFromAnchor", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_currentTime", + "type": "uint256" + } + ], + "name": "setTime", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "converterType", + "outputs": [ + { + "name": "", + "type": "uint16" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_reserve1MaxStakedBalance", + "type": "uint256" + }, + { + "name": "_reserve2MaxStakedBalance", + "type": "uint256" + } + ], + "name": "setMaxStakedBalances", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "updateRegistry", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_whitelist", + "type": "address" + } + ], + "name": "setConversionWhitelist", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "version", + "outputs": [ + { + "name": "", + "type": "uint16" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_reserveToken", + "type": "address" + }, + { + "name": "_amount", + "type": "uint256" + }, + { + "name": "_minReturn", + "type": "uint256" + } + ], + "name": "addLiquidity", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": true, + "stateMutability": "payable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_reserveToken", + "type": "address" + } + ], + "name": "poolToken", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "conversionFee", + "outputs": [ + { + "name": "", + "type": "uint32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_reserveToken", + "type": "address" + }, + { + "name": "_weight", + "type": "uint32" + } + ], + "name": "setReserveWeight", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_token", + "type": "address" + }, + { + "name": "_to", + "type": "address" + }, + { + "name": "_amount", + "type": "uint256" + } + ], + "name": "withdrawTokens", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "prevRegistry", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_newOwner", + "type": "address" + } + ], + "name": "transferAnchorOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_poolToken", + "type": "address" + }, + { + "name": "_amount", + "type": "uint256" + } + ], + "name": "removeLiquidityReturnAndFee", + "outputs": [ + { + "name": "", + "type": "uint256" + }, + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_to", + "type": "address" + } + ], + "name": "withdrawETH", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_dynamicFeeFactor", + "type": "uint256" + } + ], + "name": "setDynamicFeeFactor", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_token", + "type": "address" + }, + { + "name": "_weight", + "type": "uint32" + } + ], + "name": "addReserve", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "connectorTokenCount", + "outputs": [ + { + "name": "", + "type": "uint16" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "acceptOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "registry", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "owner", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "maxConversionFee", + "outputs": [ + { + "name": "", + "type": "uint32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "", + "type": "address" + } + ], + "name": "maxStakedBalances", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "reserveTokenCount", + "outputs": [ + { + "name": "", + "type": "uint16" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "referenceRate", + "outputs": [ + { + "name": "n", + "type": "uint256" + }, + { + "name": "d", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_sourceToken", + "type": "address" + }, + { + "name": "_targetToken", + "type": "address" + }, + { + "name": "_amount", + "type": "uint256" + } + ], + "name": "targetAmountAndFee", + "outputs": [ + { + "name": "", + "type": "uint256" + }, + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "restoreRegistry", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "conversionsEnabled", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_reserveToken", + "type": "address" + }, + { + "name": "_balance", + "type": "uint256" + } + ], + "name": "setReserveStakedBalance", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "referenceRateUpdateTime", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "conversionWhitelist", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "acceptAnchorOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "", + "type": "uint256" + } + ], + "name": "reserveTokens", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "currentTime", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "isV28OrHigher", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "anchor", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "newOwner", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "upgrade", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "amplificationFactor", + "outputs": [ + { + "name": "", + "type": "uint8" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "", + "type": "address" + } + ], + "name": "reserves", + "outputs": [ + { + "name": "balance", + "type": "uint256" + }, + { + "name": "weight", + "type": "uint32" + }, + { + "name": "deprecated1", + "type": "bool" + }, + { + "name": "deprecated2", + "type": "bool" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_connectorToken", + "type": "address" + } + ], + "name": "getConnectorBalance", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "effectiveTokensRate", + "outputs": [ + { + "name": "", + "type": "uint256" + }, + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "secondaryReserveToken", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_reserveToken", + "type": "address" + } + ], + "name": "reserveBalance", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_poolToken", + "type": "address" + }, + { + "name": "_amount", + "type": "uint256" + }, + { + "name": "_minReturn", + "type": "uint256" + } + ], + "name": "removeLiquidity", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "dynamicFeeFactor", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_sourceToken", + "type": "address" + }, + { + "name": "_targetToken", + "type": "address" + }, + { + "name": "_amount", + "type": "uint256" + }, + { + "name": "_trader", + "type": "address" + }, + { + "name": "_beneficiary", + "type": "address" + } + ], + "name": "convert", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": true, + "stateMutability": "payable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "effectiveReserveWeights", + "outputs": [ + { + "name": "", + "type": "uint256" + }, + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_conversionFee", + "type": "uint32" + } + ], + "name": "setConversionFee", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_referenceRateUpdateTime", + "type": "uint256" + } + ], + "name": "setReferenceRateUpdateTime", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "lastConversionRate", + "outputs": [ + { + "name": "n", + "type": "uint256" + }, + { + "name": "d", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "token", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "name": "_token", + "type": "address" + }, + { + "name": "_registry", + "type": "address" + }, + { + "name": "_maxConversionFee", + "type": "uint32" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "payable": true, + "stateMutability": "payable", + "type": "fallback" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "_prevFactor", + "type": "uint256" + }, + { + "indexed": false, + "name": "_newFactor", + "type": "uint256" + } + ], + "name": "DynamicFeeFactorUpdate", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "_provider", + "type": "address" + }, + { + "indexed": true, + "name": "_reserveToken", + "type": "address" + }, + { + "indexed": false, + "name": "_amount", + "type": "uint256" + }, + { + "indexed": false, + "name": "_newBalance", + "type": "uint256" + }, + { + "indexed": false, + "name": "_newSupply", + "type": "uint256" + } + ], + "name": "LiquidityAdded", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "_provider", + "type": "address" + }, + { + "indexed": true, + "name": "_reserveToken", + "type": "address" + }, + { + "indexed": false, + "name": "_amount", + "type": "uint256" + }, + { + "indexed": false, + "name": "_newBalance", + "type": "uint256" + }, + { + "indexed": false, + "name": "_newSupply", + "type": "uint256" + } + ], + "name": "LiquidityRemoved", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "_type", + "type": "uint16" + }, + { + "indexed": true, + "name": "_anchor", + "type": "address" + }, + { + "indexed": true, + "name": "_activated", + "type": "bool" + } + ], + "name": "Activation", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "_fromToken", + "type": "address" + }, + { + "indexed": true, + "name": "_toToken", + "type": "address" + }, + { + "indexed": true, + "name": "_trader", + "type": "address" + }, + { + "indexed": false, + "name": "_amount", + "type": "uint256" + }, + { + "indexed": false, + "name": "_return", + "type": "uint256" + }, + { + "indexed": false, + "name": "_conversionFee", + "type": "int256" + } + ], + "name": "Conversion", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "_token1", + "type": "address" + }, + { + "indexed": true, + "name": "_token2", + "type": "address" + }, + { + "indexed": false, + "name": "_rateN", + "type": "uint256" + }, + { + "indexed": false, + "name": "_rateD", + "type": "uint256" + } + ], + "name": "TokenRateUpdate", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "_prevFee", + "type": "uint32" + }, + { + "indexed": false, + "name": "_newFee", + "type": "uint32" + } + ], + "name": "ConversionFeeUpdate", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "_prevOwner", + "type": "address" + }, + { + "indexed": true, + "name": "_newOwner", + "type": "address" + } + ], + "name": "OwnerUpdate", + "type": "event" + } + ], + "devdoc": { + "methods": { + "acceptAnchorOwnership()": { + "details": "accepts ownership of the anchor after an ownership transfer also activates the converter can only be called by the contract owner note that prior to version 28, you should use 'acceptTokenOwnership' instead" + }, + "acceptOwnership()": { + "details": "used by a new owner to accept an ownership transfer" + }, + "acceptTokenOwnership()": { + "details": "deprecated, backward compatibility" + }, + "activate(address,address,address)": { + "details": "sets the pool's primary reserve token / price oracles and activates the pool\r each oracle must be able to provide the rate for each reserve token\r note that the oracle must be whitelisted prior to the call\r can only be called by the owner while the pool is inactive\r ", + "params": { + "_primaryReserveOracle": "address of a chainlink price oracle for the primary reserve token\r", + "_primaryReserveToken": "address of the pool's primary reserve token\r", + "_secondaryReserveOracle": "address of a chainlink price oracle for the secondary reserve token\r" + } + }, + "addLiquidity(address,uint256,uint256)": { + "details": "increases the pool's liquidity and mints new shares in the pool to the caller\r ", + "params": { + "_amount": "amount of liquidity to add\r", + "_minReturn": "minimum return-amount of pool tokens\r ", + "_reserveToken": "address of the reserve token to add liquidity to\r" + }, + "return": "amount of pool tokens minted\r" + }, + "addReserve(address,uint32)": { + "details": "defines a new reserve token for the converter\r can only be called by the owner while the converter is inactive and\r 2 reserves aren't defined yet\r ", + "params": { + "_token": "address of the reserve token\r", + "_weight": "reserve weight, represented in ppm, 1-1000000\r" + } + }, + "amplificationFactor()": { + "details": "returns the liquidity amplification factor in the pool\r ", + "return": "liquidity amplification factor\r" + }, + "connectorTokenCount()": { + "details": "deprecated, backward compatibility" + }, + "connectorTokens(uint256)": { + "details": "deprecated, backward compatibility" + }, + "connectors(address)": { + "details": "deprecated, backward compatibility" + }, + "convert(address,address,uint256,address,address)": { + "details": "converts a specific amount of source tokens to target tokens can only be called by the SovrynSwap network contract", + "params": { + "_amount": "amount of tokens to convert (in units of the source token)", + "_beneficiary": "wallet to receive the conversion result", + "_sourceToken": "source ERC20 token", + "_targetToken": "target ERC20 token", + "_trader": "address of the caller who executed the conversion" + }, + "return": "amount of tokens received (in units of the target token)" + }, + "converterType()": { + "details": "returns the converter type\r ", + "return": "see the converter types in the the main contract doc\r" + }, + "disableMaxStakedBalances()": { + "details": "disables the max staked balance mechanism\r available as a temporary mechanism during the pilot\r once disabled, it cannot be re-enabled\r can only be called by the owner\r" + }, + "effectiveReserveWeights()": { + "details": "returns the effective reserve tokens weights\r ", + "return": "reserve1 weight\rreserve2 weight\r" + }, + "effectiveTokensRate()": { + "details": "returns the effective rate of 1 primary token in secondary tokens\r ", + "return": "rate of 1 primary token in secondary tokens (numerator)\rrate of 1 primary token in secondary tokens (denominator)\r" + }, + "getConnectorBalance(address)": { + "details": "deprecated, backward compatibility" + }, + "getReturn(address,address,uint256)": { + "details": "deprecated, backward compatibility" + }, + "hasETHReserve()": { + "details": "checks whether or not the converter has an ETH reserve", + "return": "true if the converter has an ETH reserve, false otherwise" + }, + "isActive()": { + "details": "returns true if the converter is active, false otherwise\r ", + "return": "true if the converter is active, false otherwise\r" + }, + "isV28OrHigher()": { + "details": "checks whether or not the converter version is 28 or higher", + "return": "true, since the converter version is 28 or higher" + }, + "liquidationLimit(address)": { + "details": "returns the maximum number of pool tokens that can currently be liquidated\r ", + "params": { + "_poolToken": "address of the pool token\r " + }, + "return": "liquidation limit\r" + }, + "poolToken(address)": { + "details": "returns the pool token address by the reserve token address\r ", + "params": { + "_reserveToken": "reserve token address\r " + }, + "return": "pool token address\r" + }, + "removeLiquidity(address,uint256,uint256)": { + "details": "decreases the pool's liquidity and burns the caller's shares in the pool\r ", + "params": { + "_amount": "amount of pool tokens to burn\r", + "_minReturn": "minimum return-amount of reserve tokens\r ", + "_poolToken": "address of the pool token\r" + }, + "return": "amount of liquidity removed\r" + }, + "removeLiquidityReturnAndFee(address,uint256)": { + "details": "calculates the amount of reserve tokens entitled for a given amount of pool tokens\r note that a fee is applied according to the equilibrium level of the primary reserve token\r ", + "params": { + "_amount": "amount of pool tokens\r ", + "_poolToken": "address of the pool token\r" + }, + "return": "amount after fee and fee, in reserve token units\r" + }, + "reserveAmplifiedBalance(address)": { + "details": "returns the amplified balance of a given reserve token\r ", + "params": { + "_reserveToken": "reserve token address\r " + }, + "return": "amplified balance\r" + }, + "reserveBalance(address)": { + "details": "returns the reserve's balance note that prior to version 17, you should use 'getConnectorBalance' instead", + "params": { + "_reserveToken": "reserve token contract address" + }, + "return": "reserve balance" + }, + "reserveStakedBalance(address)": { + "details": "returns the staked balance of a given reserve token\r ", + "params": { + "_reserveToken": "reserve token address\r " + }, + "return": "staked balance\r" + }, + "reserveTokenCount()": { + "details": "returns the number of reserve tokens defined note that prior to version 17, you should use 'connectorTokenCount' instead", + "return": "number of reserve tokens" + }, + "reserveWeight(address)": { + "details": "returns the reserve's weight added in version 28", + "params": { + "_reserveToken": "reserve token contract address" + }, + "return": "reserve weight" + }, + "restoreRegistry()": { + "details": "restores the previous contract-registry" + }, + "restrictRegistryUpdate(bool)": { + "details": "restricts the permission to update the contract-registry", + "params": { + "_onlyOwnerCanUpdateRegistry": "indicates whether or not permission is restricted to owner only" + } + }, + "setConversionFee(uint32)": { + "details": "updates the current conversion fee can only be called by the contract owner", + "params": { + "_conversionFee": "new conversion fee, represented in ppm" + } + }, + "setConversionWhitelist(address)": { + "details": "allows the owner to update & enable the conversion whitelist contract address when set, only addresses that are whitelisted are actually allowed to use the converter note that the whitelist check is actually done by the SovrynSwapNetwork contract", + "params": { + "_whitelist": "address of a whitelist contract" + } + }, + "setDynamicFeeFactor(uint256)": { + "details": "updates the current dynamic fee factor\r can only be called by the contract owner\r ", + "params": { + "_dynamicFeeFactor": "new dynamic fee factor, represented in ppm\r" + } + }, + "setMaxStakedBalances(uint256,uint256)": { + "details": "sets the max staked balance for both reserves\r available as a temporary mechanism during the pilot\r can only be called by the owner\r ", + "params": { + "_reserve1MaxStakedBalance": "max staked balance for reserve 1\r", + "_reserve2MaxStakedBalance": "max staked balance for reserve 2\r" + } + }, + "setReserveStakedBalance(address,uint256)": { + "details": "sets the reserve's staked balance\r can only be called by the upgrader contract while the upgrader is the owner\r ", + "params": { + "_balance": "new reserve staked balance\r", + "_reserveToken": "reserve token address\r" + } + }, + "targetAmountAndFee(address,address,uint256)": { + "details": "returns the expected target amount of converting one reserve to another along with the fee\r ", + "params": { + "_amount": "amount of tokens received from the user\r ", + "_sourceToken": "contract address of the source reserve token\r", + "_targetToken": "contract address of the target reserve token\r" + }, + "return": "expected target amount\rexpected fee\r" + }, + "token()": { + "details": "deprecated since version 28, backward compatibility - use only for earlier versions" + }, + "transferAnchorOwnership(address)": { + "details": "transfers the anchor ownership the new owner needs to accept the transfer can only be called by the converter upgrder while the upgrader is the owner note that prior to version 28, you should use 'transferAnchorOwnership' instead", + "params": { + "_newOwner": "new token owner" + } + }, + "transferOwnership(address)": { + "details": "allows transferring the contract ownership the new owner still needs to accept the transfer can only be called by the contract owner", + "params": { + "_newOwner": "new contract owner" + } + }, + "transferTokenOwnership(address)": { + "details": "deprecated, backward compatibility" + }, + "updateRegistry()": { + "details": "updates to the new contract-registry" + }, + "upgrade()": { + "details": "upgrades the converter to the latest version can only be called by the owner note that the owner needs to call acceptOwnership on the new converter after the upgrade" + }, + "withdrawETH(address)": { + "details": "withdraws ether can only be called by the owner if the converter is inactive or by upgrader contract can only be called after the upgrader contract has accepted the ownership of this contract can only be called if the converter has an ETH reserve", + "params": { + "_to": "address to send the ETH to" + } + }, + "withdrawFromAnchor(address,address,uint256)": { + "details": "withdraws tokens held by the anchor and sends them to an account can only be called by the owner", + "params": { + "_amount": "amount to withdraw", + "_to": "account to receive the new amount", + "_token": "ERC20 token contract address" + } + }, + "withdrawTokens(address,address,uint256)": { + "details": "withdraws tokens held by the converter and sends them to an account can only be called by the owner note that reserve tokens can only be withdrawn by the owner while the converter is inactive unless the owner is the converter upgrader contract", + "params": { + "_amount": "amount to withdraw", + "_to": "account to receive the new amount", + "_token": "ERC20 token contract address" + } + } + } + }, + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "608060405260016004819055600980546001606060020a03191690556015805460ff19169091179055620111706016553480156200003c57600080fd5b506040516060806200571483398101604090815281516020830151919092015160008054600160a060020a0319163317905582828282828282828281806200008d816401000000006200013d810204565b5060028054600160a060020a03909216600160a060020a031992831681179091556003805490921617905582620000cd816401000000006200013d810204565b81620000e281640100000000620001b8810204565b505060058054600160a060020a03909416600160a060020a031990941693909317909255506009805463ffffffff9092166401000000000267ffffffff00000000199092169190911790555062000231975050505050505050565b600160a060020a0381161515620001b557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b50565b620f424063ffffffff82161115620001b557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f4552525f494e56414c49445f434f4e56455253494f4e5f464545000000000000604482015290519081900360640190fd5b6154d380620002416000396000f3006080604052600436106103495763ffffffff60e060020a6000350416625e319c81146103e7578063024c7ec71461041a5780630337e3fb146104345780630a55fb3d146104655780630c7d5cd81461048e5780630e53aae9146104bc5780630f0fb40714610511578063119b90cd1461053b57806312c2aca41461056857806316912f961461057d57806319b64015146105925780631cfab290146105aa5780631e1401f8146105cb57806321e6b53d1461060e57806322f3e2d41461062f5780632630c12f146106445780632bd3c107146106595780632bf0c9851461067a5780632fe8a6ad1461069b57806338a5e016146106b0578063395900d4146106c55780633beb26c4146106ef5780633e8ff43f14610707578063467494681461073357806349d10b641461074e5780634af80f0e1461076357806354fd4d501461078457806355776b77146107995780635768adcf146107b3578063579cd3ca146107d457806359cd4eec146107e95780635e35359e1461081357806361cd756e1461083d57806367b6d57c1461085257806369067d9514610873578063690d83201461089757806369d1354a146108b85780636a49d2c4146108d057806371f52bf3146108fa57806379ba50971461090f5780637b103999146109245780638da5cb5b1461093957806394c275ad1461094e57806398a71dcb146109635780639b99a8e214610984578063a32bff4414610999578063af94b8d8146109ae578063b4a176d3146109d8578063bf754558146109ed578063bf7da6ba14610a02578063c3321fb014610a26578063c45d3d9214610a3b578063cdc91c6914610a50578063d031370b14610a65578063d18e81b314610a7d578063d260529c14610a92578063d3fb73b414610aa7578063d4ee1d9014610abc578063d55ec69714610ad1578063d64c5a1a14610ae6578063d66bd52414610b11578063d895951214610b32578063db2830a414610b53578063dc75eb9a14610b68578063dc8de37914610b7d578063e38192e314610b9e578063e8104af914610bc5578063e8dc12ff14610bda578063ec2240f514610c04578063ecbca55d14610c19578063f1ff40d914610c37578063f2fde38b14610c4f578063f9cddde214610c70578063fc0c546a14610c85575b60008051602061544883398151915260005260086020527f353c2eb9e53a4a4a6d45d72082ff2e9dc829d1125618772a83eb0e7f86632c43546601000000000000900460ff1615156103e5576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f5245534552564500000000000000000000000000604482015290519081900360640190fd5b005b3480156103f357600080fd5b50610408600160a060020a0360043516610c9a565b60408051918252519081900360200190f35b34801561042657600080fd5b506103e56004351515610cc3565b34801561044057600080fd5b50610449610d0b565b60408051600160a060020a039092168252519081900360200190f35b34801561047157600080fd5b5061047a610d1a565b604080519115158252519081900360200190f35b34801561049a57600080fd5b506104a3610d23565b6040805163ffffffff9092168252519081900360200190f35b3480156104c857600080fd5b506104dd600160a060020a0360043516610d2f565b6040805195865263ffffffff9094166020860152911515848401521515606084015215156080830152519081900360a00190f35b34801561051d57600080fd5b5061040860043560243560443560643560843560a43560c435610dca565b34801561054757600080fd5b506103e5600160a060020a0360043581169060243581169060443516610de7565b34801561057457600080fd5b5061047a611551565b34801561058957600080fd5b506103e561159a565b34801561059e57600080fd5b506104496004356115ae565b3480156105b657600080fd5b506104a3600160a060020a03600435166115da565b3480156105d757600080fd5b506105f5600160a060020a036004358116906024351660443561160c565b6040805192835260208301919091528051918290030190f35b34801561061a57600080fd5b506103e5600160a060020a0360043516611626565b34801561063b57600080fd5b5061047a61163a565b34801561065057600080fd5b5061044961166f565b34801561066557600080fd5b50610408600160a060020a036004351661168e565b34801561068657600080fd5b50610408600160a060020a03600435166116e3565b3480156106a757600080fd5b5061047a6117c6565b3480156106bc57600080fd5b506103e56117e7565b3480156106d157600080fd5b506103e5600160a060020a03600435811690602435166044356117f9565b3480156106fb57600080fd5b506103e5600435611894565b34801561071357600080fd5b5061071c611899565b6040805161ffff9092168252519081900360200190f35b34801561073f57600080fd5b506103e560043560243561189e565b34801561075a57600080fd5b506103e5611922565b34801561076f57600080fd5b506103e5600160a060020a0360043516611b82565b34801561079057600080fd5b5061071c611bb7565b610408600160a060020a0360043516602435604435611bbc565b3480156107bf57600080fd5b50610449600160a060020a0360043516612125565b3480156107e057600080fd5b506104a3612143565b3480156107f557600080fd5b506103e5600160a060020a036004351663ffffffff6024351661215b565b34801561081f57600080fd5b506103e5600160a060020a036004358116906024351660443561219c565b34801561084957600080fd5b506104496122b0565b34801561085e57600080fd5b506103e5600160a060020a03600435166122bf565b34801561087f57600080fd5b506105f5600160a060020a0360043516602435612362565b3480156108a357600080fd5b506103e5600160a060020a03600435166124bd565b3480156108c457600080fd5b506103e56004356125c2565b3480156108dc57600080fd5b506103e5600160a060020a036004351663ffffffff60243516612667565b34801561090657600080fd5b5061071c6126c6565b34801561091b57600080fd5b506103e56126d0565b34801561093057600080fd5b50610449612784565b34801561094557600080fd5b50610449612793565b34801561095a57600080fd5b506104a36127a2565b34801561096f57600080fd5b50610408600160a060020a03600435166127b6565b34801561099057600080fd5b5061071c6127c8565b3480156109a557600080fd5b506105f56127ce565b3480156109ba57600080fd5b506105f5600160a060020a03600435811690602435166044356127d7565b3480156109e457600080fd5b506103e561297b565b3480156109f957600080fd5b5061047a6129a7565b348015610a0e57600080fd5b506103e5600160a060020a03600435166024356129ac565b348015610a3257600080fd5b506104086129f4565b348015610a4757600080fd5b506104496129fa565b348015610a5c57600080fd5b506103e5612a09565b348015610a7157600080fd5b50610449600435612a62565b348015610a8957600080fd5b50610408612a8a565b348015610a9e57600080fd5b5061047a612a90565b348015610ab357600080fd5b50610449612a95565b348015610ac857600080fd5b50610449612aa4565b348015610add57600080fd5b506103e5612ab3565b348015610af257600080fd5b50610afb612ba8565b6040805160ff9092168252519081900360200190f35b348015610b1d57600080fd5b506104dd600160a060020a0360043516612bad565b348015610b3e57600080fd5b50610408600160a060020a0360043516612bf3565b348015610b5f57600080fd5b506105f5612c04565b348015610b7457600080fd5b50610449612c29565b348015610b8957600080fd5b50610408600160a060020a0360043516612c38565b348015610baa57600080fd5b50610408600160a060020a0360043516602435604435612c61565b348015610bd157600080fd5b50610408612fc6565b610408600160a060020a036004358116906024358116906044359060643581169060843516612fcc565b348015610c1057600080fd5b506105f561321f565b348015610c2557600080fd5b506103e563ffffffff6004351661329f565b348015610c4357600080fd5b506103e5600435613394565b348015610c5b57600080fd5b506103e5600160a060020a0360043516613399565b348015610c7c57600080fd5b506105f5613429565b348015610c9157600080fd5b50610449613432565b600081610ca681613441565b5050600160a060020a03166000908152600c602052604090205490565b610ccb6134c0565b60038054911515740100000000000000000000000000000000000000000274ff000000000000000000000000000000000000000019909216919091179055565b600a54600160a060020a031681565b60155460ff1681565b60095463ffffffff1681565b6000806000806000610d3f6153c3565b50505050600160a060020a03929092166000908152600860209081526040808320815160a081018352815480825260019092015463ffffffff811694820185905260ff64010000000082048116151594830194909452650100000000008104841615156060830152660100000000000090049092161515608090920182905295919450919250829190565b6000610ddb88888888888888613510565b98975050505050505050565b6000806000806000610df7613588565b610dff6134c0565b87610e0981613441565b87610e13816135e5565b87610e1d816135e5565b89610e2781613646565b89610e3181613646565b600554604080517f8da5cb5b00000000000000000000000000000000000000000000000000000000815290513092600160a060020a031691638da5cb5b9160048083019260209291908290030181600087803b158015610e9057600080fd5b505af1158015610ea4573d6000803e3d6000fd5b505050506040513d6020811015610eba57600080fd5b5051600160a060020a031614610f1a576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f414e43484f525f4e4f545f4f574e4544000000000000000000000000604482015290519081900360640190fd5b610f437f436861696e6c696e6b4f7261636c6557686974656c69737400000000000000006136a6565b995089600160a060020a0316633af32abf8d6040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b158015610fa057600080fd5b505af1158015610fb4573d6000803e3d6000fd5b505050506040513d6020811015610fca57600080fd5b50511515611022576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f494e56414c49445f4f5241434c450000000000000000000000000000604482015290519081900360640190fd5b89600160a060020a0316633af32abf8c6040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b15801561107d57600080fd5b505af1158015611091573d6000803e3d6000fd5b505050506040513d60208110156110a757600080fd5b505115156110ff576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f494e56414c49445f4f5241434c450000000000000000000000000000604482015290519081900360640190fd5b61110761373e565b600a8054600160a060020a031916600160a060020a038f1617905560078054600090811061113157fe5b600091825260209091200154600160a060020a038e81169116141561118f5760078054600190811061115f57fe5b600091825260209091200154600b8054600160a060020a031916600160a060020a039092169190911790556111ca565b60078054600090811061119e57fe5b600091825260209091200154600b8054600160a060020a031916600160a060020a039092169190911790555b6111f37f436f6e766572746572466163746f7279000000000000000000000000000000006136a6565b600160a060020a031663c977aed2611209611899565b6040518263ffffffff1660e060020a028152600401808261ffff1661ffff168152602001915050602060405180830381600087803b15801561124a57600080fd5b505af115801561125e573d6000803e3d6000fd5b505050506040513d602081101561127457600080fd5b8101908080519060200190929190505050985088600160a060020a0316631b27444e8e600b60009054906101000a9004600160a060020a03168f8f6040518563ffffffff1660e060020a0281526004018085600160a060020a0316600160a060020a0316815260200184600160a060020a0316600160a060020a0316815260200183600160a060020a0316600160a060020a0316815260200182600160a060020a0316600160a060020a03168152602001945050505050602060405180830381600087803b15801561134557600080fd5b505af1158015611359573d6000803e3d6000fd5b505050506040513d602081101561136f57600080fd5b5051600980546bffffffffffffffffffffffff166c01000000000000000000000000600160a060020a0393841681029190911791829055600a54600b54604080517fae818004000000000000000000000000000000000000000000000000000000008152928616600484015290851660248301528051929093049093169263ae8180049260448083019391928290030181600087803b15801561141157600080fd5b505af1158015611425573d6000803e3d6000fd5b505050506040513d604081101561143b57600080fd5b5080516020909101516010819055600f82905560129190915560135561145f61397a565b601155600a5461147790600160a060020a0316610c9a565b600a5490985061148f90600160a060020a0316612c38565b600b549097506114a790600160a060020a0316612c38565b9550868814156114d25760008811806114c05750600086115b156114cd576114cd613994565b6114fb565b6000881180156114e25750600087115b80156114ee5750600086115b156114fb576114fb613994565b600554600190600160a060020a0316611512611899565b61ffff167f6b08c2e2c9969e55a647a764db9b554d64dc42f1a704da11a6d5b129ad163f2c60405160405180910390a450505050505050505050505050565b60008051602061544883398151915260005260086020527f353c2eb9e53a4a4a6d45d72082ff2e9dc829d1125618772a83eb0e7f86632c43546601000000000000900460ff1690565b6115a26134c0565b6015805460ff19169055565b60006007828154811015156115bf57fe5b600091825260209091200154600160a060020a031692915050565b6000816115e681613441565b5050600160a060020a031660009081526008602052604090206001015463ffffffff1690565b60008061161a8585856127d7565b91509150935093915050565b61162e6134c0565b611637816122bf565b50565b6000611644613a0c565b801561166a57506009546c010000000000000000000000009004600160a060020a031615155b905090565b6009546c010000000000000000000000009004600160a060020a031681565b60008161169a81613441565b6116dc6116a684612c38565b600160a060020a0385166000908152600c60205260409020546116d090601363ffffffff613aa616565b9063ffffffff613b2a16565b9392505050565b600080600080600085600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561172957600080fd5b505af115801561173d573d6000803e3d6000fd5b505050506040513d602081101561175357600080fd5b5051600160a060020a038088166000908152600e602052604090205491955016925061177e83612c38565b600160a060020a0384166000908152600c602052604090205490925090506117bc816117b0848763ffffffff613aa616565b9063ffffffff613b8716565b9695505050505050565b60035474010000000000000000000000000000000000000000900460ff1681565b6117ef6134c0565b6117f7612a09565b565b6118016134c0565b600554604080517f5e35359e000000000000000000000000000000000000000000000000000000008152600160a060020a03868116600483015285811660248301526044820185905291519190921691635e35359e91606480830192600092919082900301818387803b15801561187757600080fd5b505af115801561188b573d6000803e3d6000fd5b50505050505050565b601755565b600290565b6118a66134c0565b8160146000600760008154811015156118bb57fe5b6000918252602080832090910154600160a060020a03168352820192909252604001812091909155600780548392601492909160019081106118f957fe5b6000918252602080832090910154600160a060020a031683528201929092526040019020555050565b60008054600160a060020a0316331480611957575060035474010000000000000000000000000000000000000000900460ff16155b151561199b576040805160e560020a62461bcd0281526020600482015260116024820152600080516020615468833981519152604482015290519081900360640190fd5b6119c47f436f6e74726163745265676973747279000000000000000000000000000000006136a6565b600254909150600160a060020a038083169116148015906119ed5750600160a060020a03811615155b1515611a43576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e56414c49445f5245474953545259000000000000000000000000604482015290519081900360640190fd5b604080517fbb34534c0000000000000000000000000000000000000000000000000000000081527f436f6e747261637452656769737472790000000000000000000000000000000060048201529051600091600160a060020a0384169163bb34534c9160248082019260209290919082900301818787803b158015611ac757600080fd5b505af1158015611adb573d6000803e3d6000fd5b505050506040513d6020811015611af157600080fd5b5051600160a060020a03161415611b52576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e56414c49445f5245474953545259000000000000000000000000604482015290519081900360640190fd5b6002805460038054600160a060020a03808416600160a060020a0319928316179092559091169216919091179055565b611b8a6134c0565b80611b94816135e5565b5060068054600160a060020a031916600160a060020a0392909216919091179055565b602081565b6000806000806000611bcc613bf5565b6002600455611bd9613c4f565b87611be381613441565b87611bed81613cad565b87611bf781613cad565b600160a060020a038b1660008051602061544883398151915214611c1c573415611c20565b8934145b1515611c76576040805160e560020a62461bcd02815260206004820152601760248201527f4552525f4554485f414d4f554e545f4d49534d41544348000000000000000000604482015290519081900360640190fd5b611c7e613d05565b600160a060020a038b166000805160206154488339815191521415611d205760008051602061544883398151915260005260086020527f353c2eb9e53a4a4a6d45d72082ff2e9dc829d1125618772a83eb0e7f86632c4254611ce6903463ffffffff613d4716565b60008051602061544883398151915260005260086020527f353c2eb9e53a4a4a6d45d72082ff2e9dc829d1125618772a83eb0e7f86632c42555b600160a060020a038b166000908152600c602052604090205460155490975060ff1615611de957600160a060020a038b166000908152601460205260409020541580611d935750600160a060020a038b16600090815260146020526040902054611d90888c63ffffffff613b2a16565b11155b1515611de9576040805160e560020a62461bcd02815260206004820152601e60248201527f4552525f4d41585f5354414b45445f42414c414e43455f524541434845440000604482015290519081900360640190fd5b600160a060020a03808c166000908152600d602090815260408083205481517f18160ddd00000000000000000000000000000000000000000000000000000000815291519416995089936318160ddd93600480840194938390030190829087803b158015611e5657600080fd5b505af1158015611e6a573d6000803e3d6000fd5b505050506040513d6020811015611e8057600080fd5b50519450600160a060020a038b1660008051602061544883398151915214611eae57611eae8b33308d613da7565b600160a060020a038b16600090815260086020526040902054611ed7908b63ffffffff613b2a16565b600160a060020a038c16600090815260086020526040902055611f00878b63ffffffff613b2a16565b600160a060020a038c166000908152600c60205260408120919091559350861580611f29575084155b15611f3657899350611f4d565b611f4a876117b08c8863ffffffff613aa616565b93505b88841015611fa5576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f52455455524e5f544f4f5f4c4f570000000000000000000000000000604482015290519081900360640190fd5b600554604080517fc6c3bbe6000000000000000000000000000000000000000000000000000000008152600160a060020a038981166004830152336024830152604482018890529151919092169163c6c3bbe691606480830192600092919082900301818387803b15801561201957600080fd5b505af115801561202d573d6000803e3d6000fd5b50505050612039613994565b600160a060020a038b16337f4a1a2a6176e9646d9e3157f7c2ab3c499f18337c0b0828cfb28e0a61de4a11f78c6120768b8263ffffffff613b2a16565b6120868a8a63ffffffff613b2a16565b60408051938452602084019290925282820152519081900360600190a36120bd866120b7878763ffffffff613b2a16565b8d613e8f565b612112600760008154811015156120d057fe5b60009182526020909120015460078054600160a060020a039092169160019081106120f757fe5b6000918252602082200154600160a060020a03169080613eef565b5050600160045550979650505050505050565b600160a060020a039081166000908152600d60205260409020541690565b60095468010000000000000000900463ffffffff1681565b8161216581613441565b50600160a060020a03919091166000908152600860205260409020600101805463ffffffff191663ffffffff909216919091179055565b60006121a6613bf5565b60026004556121b36134c0565b6121ca6000805160206154288339815191526136a6565b600160a060020a0385166000908152600860205260409020600101549091506601000000000000900460ff161580612207575061220561163a565b155b8061221f5750600054600160a060020a038281169116145b1515612263576040805160e560020a62461bcd0281526020600482015260116024820152600080516020615468833981519152604482015290519081900360640190fd5b61226e848484613f5b565b600160a060020a0384166000908152600860205260409020600101546601000000000000900460ff16156122a5576122a584613f8c565b505060016004555050565b600354600160a060020a031681565b6122c76134c0565b6000805160206154288339815191526122df81614080565b600554604080517ff2fde38b000000000000000000000000000000000000000000000000000000008152600160a060020a0385811660048301529151919092169163f2fde38b91602480830192600092919082900301818387803b15801561234657600080fd5b505af115801561235a573d6000803e3d6000fd5b505050505050565b6000806000806000806000806000808b600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156123af57600080fd5b505af11580156123c3573d6000803e3d6000fd5b505050506040513d60208110156123d957600080fd5b5051600160a060020a03808e166000908152600e60209081526040808320549093168252600c905220549098509650878b10156124a457600a54600160a060020a03166000908152600c602052604090205461243c90601463ffffffff613aa616565b600a5490965061245490600160a060020a031661168e565b9450848610612464578486612467565b85855b9094509250612480886117b08d8a63ffffffff613aa616565b9150612496836117b0848763ffffffff613aa616565b9950508881039750886124ae565b9598506000975088955b50505050505050509250929050565b60006124c7613bf5565b60026004556124d46134c0565b6000805160206154488339815191526124ec81613441565b6125036000805160206154288339815191526136a6565b915061250d61163a565b15806125265750600054600160a060020a038381169116145b151561256a576040805160e560020a62461bcd0281526020600482015260116024820152600080516020615468833981519152604482015290519081900360640190fd5b604051600160a060020a03841690303180156108fc02916000818181858888f193505050501580156125a0573d6000803e3d6000fd5b506125b8600080516020615448833981519152613f8c565b5050600160045550565b6125ca6134c0565b620186a0811115612625576040805160e560020a62461bcd02815260206004820152601e60248201527f4552525f494e56414c49445f44594e414d49435f4645455f464143544f520000604482015290519081900360640190fd5b601654604080519182526020820183905280517f382fd3516344712a511dcd464ff8e6ab54139d6a28f64087a3253353ee7a56799281900390910190a1601655565b60026126716127c8565b61ffff16106126b8576040805160e560020a62461bcd0281526020600482015260196024820152600080516020615488833981519152604482015290519081900360640190fd5b6126c282826140d6565b5050565b600061166a6127c8565b600154600160a060020a03163314612720576040805160e560020a62461bcd0281526020600482015260116024820152600080516020615468833981519152604482015290519081900360640190fd5b60015460008054604051600160a060020a0393841693909116917f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91a36001805460008054600160a060020a0319908116600160a060020a03841617909155169055565b600254600160a060020a031681565b600054600160a060020a031681565b600954640100000000900463ffffffff1681565b60146020526000908152604090205481565b60075490565b600f5460105482565b6000806000806127e56153f1565b6000806000806127f3613c4f565b6127fc8c613441565b6128058b613441565b600160a060020a038c8116908c161415612869576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f53414d455f534f555243455f54415247455400000000000000000000604482015290519081900360640190fd5b61287161397a565b601154141561291857600f604080519081016040529081600082015481526020016001820154815250509450600860008d600160a060020a0316600160a060020a0316815260200190815260200160002060010160009054906101000a900463ffffffff169650600860008c600160a060020a0316600160a060020a0316815260200190815260200160002060010160009054906101000a900463ffffffff169550612958565b612920614308565b945061292b85614540565b600a549195509350600160a060020a038d81169116141561295157839650829550612958565b8296508395505b6129668c8c8989898f61466a565b919e919d50909b505050505050505050505050565b6129836134c0565b60035460028054600160a060020a031916600160a060020a03909216919091179055565b600181565b6129b46134c0565b6000805160206154288339815191526129cc81614080565b826129d681613441565b5050600160a060020a039091166000908152600c6020526040902055565b60115481565b600654600160a060020a031681565b6001612a136127c8565b61ffff1611612a5a576040805160e560020a62461bcd0281526020600482015260196024820152600080516020615488833981519152604482015290519081900360640190fd5b6117f7614806565b6007805482908110612a7057fe5b600091825260209091200154600160a060020a0316905081565b60175481565b600190565b600554600160a060020a031681565b600154600160a060020a031681565b6000612abd6134c0565b612ad46000805160206154288339815191526136a6565b600554909150600090600160a060020a0316612aee611899565b61ffff167f6b08c2e2c9969e55a647a764db9b554d64dc42f1a704da11a6d5b129ad163f2c60405160405180910390a4612b2781613399565b604080517f90f58c96000000000000000000000000000000000000000000000000000000008152602060048201529051600160a060020a038316916390f58c9691602480830192600092919082900301818387803b158015612b8857600080fd5b505af1158015612b9c573d6000803e3d6000fd5b505050506116376126d0565b601490565b6008602052600090815260409020805460019091015463ffffffff81169060ff640100000000820481169165010000000000810482169166010000000000009091041685565b6000612bfe82612c38565b92915050565b600080612c0f6153f1565b612c17614308565b80516020909101519094909350915050565b600b54600160a060020a031681565b600081612c4481613441565b5050600160a060020a031660009081526008602052604090205490565b600080600080600080612c72613bf5565b6002600455612c7f613c4f565b88612c89816148d2565b88612c9381613cad565b88612c9d81613cad565b612ca5613d05565b8b600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015612ce357600080fd5b505af1158015612cf7573d6000803e3d6000fd5b505050506040513d6020811015612d0d57600080fd5b50519750612d1b8c8c612362565b50965089871015612d76576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f52455455524e5f544f4f5f4c4f570000000000000000000000000000604482015290519081900360640190fd5b600e60008d600160a060020a0316600160a060020a0316815260200190815260200160002060009054906101000a9004600160a060020a03169550600560009054906101000a9004600160a060020a0316600160a060020a031663f6b911bc8d338e6040518463ffffffff1660e060020a0281526004018084600160a060020a0316600160a060020a0316815260200183600160a060020a0316600160a060020a031681526020018281526020019350505050600060405180830381600087803b158015612e4357600080fd5b505af1158015612e57573d6000803e3d6000fd5b505050600160a060020a038716600090815260086020526040902054612e8491508863ffffffff613d4716565b600160a060020a038716600090815260086020908152604080832093909355600c90522054612eb9908863ffffffff613d4716565b600160a060020a0387166000818152600c602052604090208290559095506000805160206154488339815191521415612f1f57604051339088156108fc029089906000818181858888f19350505050158015612f19573d6000803e3d6000fd5b50612f2a565b612f2a863389614943565b612f32613994565b612f42888c63ffffffff613d4716565b60408051898152602081018890528082018390529051919550600160a060020a0388169133917fbc7d19d505c7ec4db83f3b51f19fb98c4c8a99922e7839d1ee608dfbee29501b919081900360600190a3612f9e8c8588613e8f565b612fb1600760008154811015156120d057fe5b50506001600455509298975050505050505050565b60165481565b6000612fd6613bf5565b60026004557f536f7672796e537761704e6574776f726b00000000000000000000000000000061300581614080565b600160a060020a038781169087161415613069576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f53414d455f534f555243455f54415247455400000000000000000000604482015290519081900360640190fd5b600654600160a060020a031615806131ac5750600654604080517f3af32abf000000000000000000000000000000000000000000000000000000008152600160a060020a03878116600483015291519190921691633af32abf9160248083019260209291908290030181600087803b1580156130e457600080fd5b505af11580156130f8573d6000803e3d6000fd5b505050506040513d602081101561310e57600080fd5b505180156131ac5750600654604080517f3af32abf000000000000000000000000000000000000000000000000000000008152600160a060020a03868116600483015291519190921691633af32abf9160248083019260209291908290030181600087803b15801561317f57600080fd5b505af1158015613193573d6000803e3d6000fd5b505050506040513d60208110156131a957600080fd5b50515b1515613202576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f4e4f545f57484954454c495354454400000000000000000000000000604482015290519081900360640190fd5b61320f87878787876149fa565b6001600455979650505050505050565b60008061322a6153f1565b600080613235614308565b925061324083614540565b915091506007600081548110151561325457fe5b600091825260209091200154600a54600160a060020a03908116911614156132895763ffffffff808316955081169350613298565b63ffffffff8082169550821693505b5050509091565b6132a76134c0565b60095463ffffffff64010000000090910481169082161115613313576040805160e560020a62461bcd02815260206004820152601a60248201527f4552525f494e56414c49445f434f4e56455253494f4e5f464545000000000000604482015290519081900360640190fd5b6009546040805163ffffffff6801000000000000000090930483168152918316602083015280517f81cd2ffb37dd237c0e4e2a3de5265fcf9deb43d3e7801e80db9f1ccfba7ee6009281900390910190a16009805463ffffffff90921668010000000000000000026bffffffff000000000000000019909216919091179055565b601155565b6133a16134c0565b600054600160a060020a0382811691161415613407576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f53414d455f4f574e4552000000000000000000000000000000000000604482015290519081900360640190fd5b60018054600160a060020a031916600160a060020a0392909216919091179055565b60125460135482565b600554600160a060020a031690565b600160a060020a0381166000908152600860205260409020600101546601000000000000900460ff161515611637576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f5245534552564500000000000000000000000000604482015290519081900360640190fd5b600054600160a060020a031633146117f7576040805160e560020a62461bcd0281526020600482015260116024820152600080516020615468833981519152604482015290519081900360640190fd5b60008080613534876135288c8963ffffffff613aa616565b9063ffffffff613aa616565b915061354a886135288b8863ffffffff613aa616565b9050818111156135765761356f816117b060146135288684038963ffffffff613aa616565b925061357b565b600092505b5050979650505050505050565b61359061163a565b156117f7576040805160e560020a62461bcd02815260206004820152600a60248201527f4552525f41435449564500000000000000000000000000000000000000000000604482015290519081900360640190fd5b600160a060020a038116301415611637576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f414444524553535f49535f53454c4600000000000000000000000000604482015290519081900360640190fd5b600160a060020a0381161515611637576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b600254604080517fbb34534c000000000000000000000000000000000000000000000000000000008152600481018490529051600092600160a060020a03169163bb34534c91602480830192602092919082900301818787803b15801561370c57600080fd5b505af1158015613720573d6000803e3d6000fd5b505050506040513d602081101561373657600080fd5b505192915050565b60006060600080600080600560009054906101000a9004600160a060020a0316955085600160a060020a0316636d3e313e6040518163ffffffff1660e060020a028152600401600060405180830381600087803b15801561379e57600080fd5b505af11580156137b2573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260208110156137db57600080fd5b8101908080516401000000008111156137f357600080fd5b8201602081018481111561380657600080fd5b815185602082028301116401000000008211171561382357600080fd5b505080516007549199501597509550600094505050505b8282101561235a5783156138b95785600160a060020a0316639cbf9e366040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561388657600080fd5b505af115801561389a573d6000803e3d6000fd5b505050506040513d60208110156138b057600080fd5b505190506138d4565b84828151811015156138c757fe5b9060200190602002015190505b80600d60006007858154811015156138e857fe5b600091825260208083209190910154600160a060020a03908116845290830193909352604090910190208054600160a060020a03191692909116919091179055600780548390811061393657fe5b6000918252602080832090910154600160a060020a038481168452600e90925260409092208054600160a060020a031916919092161790556001919091019061383a565b60006017546000141561398d574261166a565b5060175490565b60408051808201909152600f548152601054602082015260009081906139b990614540565b600a54600160a060020a039081166000908152600860205260408082206001908101805463ffffffff97881663ffffffff1991821617909155600b54909416835291200180549290931691161790555050565b600030600160a060020a0316600560009054906101000a9004600160a060020a0316600160a060020a0316638da5cb5b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015613a6b57600080fd5b505af1158015613a7f573d6000803e3d6000fd5b505050506040513d6020811015613a9557600080fd5b5051600160a060020a031614905090565b600080831515613ab95760009150613b23565b50828202828482811515613ac957fe5b0414613b1f576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b8091505b5092915050565b600082820183811015613b1f576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b600080808311613be1576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f4449564944455f42595f5a45524f0000000000000000000000000000604482015290519081900360640190fd5b8284811515613bec57fe5b04949350505050565b6004546001146117f7576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f5245454e5452414e4359000000000000000000000000000000000000604482015290519081900360640190fd5b613c5761163a565b15156117f7576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f494e4143544956450000000000000000000000000000000000000000604482015290519081900360640190fd5b60008111611637576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f5a45524f5f56414c5545000000000000000000000000000000000000604482015290519081900360640190fd5b60075460005b818110156126c257613d3f600782815481101515613d2557fe5b600091825260209091200154600160a060020a0316613f8c565b600101613d0b565b600081831015613da1576040805160e560020a62461bcd02815260206004820152600d60248201527f4552525f554e444552464c4f5700000000000000000000000000000000000000604482015290519081900360640190fd5b50900390565b604080517f7472616e7366657246726f6d28616464726573732c616464726573732c75696e81527f74323536290000000000000000000000000000000000000000000000000000006020808301919091528251918290036025018220600160a060020a038088166024850152861660448401526064808401869052845180850390910181526084909301909352810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1990931692909217909152613e89908590614aed565b50505050565b600160a060020a038082166000818152600c6020908152604091829020548251908152908101869052815192938716927f77f29993cf2c084e726f7e802da0719d6a0ade3e204badc7a3ffd57ecb768c24929181900390910190a3505050565b613ef76153f1565b613f0385858585614b7b565b805160208083015160408051938452918301528051929350600160a060020a0380881693908916927f77f29993cf2c084e726f7e802da0719d6a0ade3e204badc7a3ffd57ecb768c2492908290030190a35050505050565b613f636134c0565b82613f6d81613646565b82613f7781613646565b83613f81816135e5565b61235a868686614943565b80613f9681613441565b600160a060020a0382166000805160206154488339815191521415613fd657600160a060020a0382166000908152600860205260409020303190556126c2565b604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a038416916370a082319160248083019260209291908290030181600087803b15801561403757600080fd5b505af115801561404b573d6000803e3d6000fd5b505050506040513d602081101561406157600080fd5b5051600160a060020a0383166000908152600860205260409020555050565b614089816136a6565b600160a060020a03163314611637576040805160e560020a62461bcd0281526020600482015260116024820152600080516020615468833981519152604482015290519081900360640190fd5b60006140e06134c0565b6140e8613588565b826140f281613646565b836140fc816135e5565b8361410681614c43565b600554600160a060020a0387811691161480159061414a5750600160a060020a0386166000908152600860205260409020600101546601000000000000900460ff16155b15156141a0576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f5245534552564500000000000000000000000000604482015290519081900360640190fd5b60095463ffffffff908116620f4240038116908616111561420b576040805160e560020a62461bcd02815260206004820152601a60248201527f4552525f494e56414c49445f524553455256455f574549474854000000000000604482015290519081900360640190fd5b61ffff6142166127c8565b61ffff161061425d576040805160e560020a62461bcd0281526020600482015260196024820152600080516020615488833981519152604482015290519081900360640190fd5b505050600160a060020a0390921660008181526008602052604081208181556001908101805466ff0000000000001963ffffffff80881663ffffffff1993841617919091166601000000000000179092556007805493840181559093527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c6889091018054600160a060020a03191690931790925560098054808416909401909216921691909117905550565b6143106153f1565b60008060008061431e6153f1565b6143266153f1565b600954600a54600b54604080517fb1772d7a000000000000000000000000000000000000000000000000000000008152600160a060020a0393841660048201529183166024830152516000938493849384936c010000000000000000000000009093049091169163b1772d7a9160448082019260609290919082900301818787803b1580156143b457600080fd5b505af11580156143c8573d6000803e3d6000fd5b505050506040513d60608110156143de57600080fd5b5080516020820151604090920151601154919c50919a5090985088111561441b5760408051908101604052808b81526020018a8152509a50614533565b60115461442661397a565b03965086151561444e5760408051808201909152600f54815260105460208201529a50614533565b61025887106144755760408051808201909152601254815260135460208201529a50614533565b604080518082018252600f548152601054602080830191825283518085019094526012548085526013549185019190915290519198509196506144bd9163ffffffff613aa616565b602086015187519195506144d7919063ffffffff613aa616565b92506145016144ec858963ffffffff613aa616565b6116d0856102588b900363ffffffff613aa616565b915061452461025861352887602001518960200151613aa690919063ffffffff16565b90506145308282614cb8565b9a505b5050505050505050505090565b600a54600160a060020a03166000818152600c602052604081205490918291908290819061456d9061168e565b600b5490925061458590600160a060020a031661168e565b90506145b07f536f7672796e53776170466f726d756c610000000000000000000000000000006136a6565b600160a060020a031663a11aa1b46145cf85601463ffffffff613aa616565b885160208a01516040805160e060020a63ffffffff87160281526004810194909452602484018890526044840187905260648401929092526084830152805160a4808401938290030181600087803b15801561462a57600080fd5b505af115801561463e573d6000803e3d6000fd5b505050506040513d604081101561465457600080fd5b5080516020909101519095509350505050915091565b60008080808063ffffffff891615156146a257600160a060020a038b1660009081526008602052604090206001015463ffffffff1698505b63ffffffff881615156146d457600160a060020a038a1660009081526008602052604090206001015463ffffffff1697505b6146dd8b61168e565b91506146e88a61168e565b90506147137f536f7672796e53776170466f726d756c610000000000000000000000000000006136a6565b604080517f94491fab0000000000000000000000000000000000000000000000000000000081526004810185905263ffffffff808d166024830152604482018590528b166064820152608481018990529051600160a060020a0392909216916394491fab9160a4808201926020929091908290030181600087803b15801561479a57600080fd5b505af11580156147ae573d6000803e3d6000fd5b505050506040513d60208110156147c457600080fd5b505194506147d185614d0d565b93506147e4846116d08c8c8c8c8b614d3d565b92506147f6858463ffffffff613d4716565b9450505096509650969350505050565b61480e6134c0565b60006148186127c8565b61ffff161161485f576040805160e560020a62461bcd0281526020600482015260196024820152600080516020615488833981519152604482015290519081900360640190fd5b600560009054906101000a9004600160a060020a0316600160a060020a03166379ba50976040518163ffffffff1660e060020a028152600401600060405180830381600087803b1580156148b257600080fd5b505af11580156148c6573d6000803e3d6000fd5b505050506117f7613d05565b600160a060020a038181166000908152600e6020526040902054161515611637576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f494e56414c49445f504f4f4c5f544f4b454e00000000000000000000604482015290519081900360640190fd5b604080517f7472616e7366657228616464726573732c75696e74323536290000000000000081528151908190036019018120600160a060020a038516602483015260448083018590528351808403909101815260649092019092526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19909316929092179091526149f5908490614aed565b505050565b6000806000614a07613c4f565b87614a1181613441565b87614a1b81613441565b614a268a8a8a614e16565b9094509250600160a060020a0389166000805160206154488339815191521415614a8657604051600160a060020a0387169085156108fc029086906000818181858888f19350505050158015614a80573d6000803e3d6000fd5b50614a91565b614a91898786614943565b614a9f8a8a898b888861512b565b600160a060020a03808b16600090815260086020526040808220600190810154938d16835291200154614adf918c918c9163ffffffff90811691166151b0565b509198975050505050505050565b614af5615408565b602060405190810160405280600181525090506020818351602085016000875af1801515614b2257600080fd5b50805115156149f5576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f5452414e534645525f4641494c454400000000000000000000000000604482015290519081900360640190fd5b614b836153f1565b600080614b8f8761168e565b9150614b9a8661168e565b905063ffffffff85161515614bce57600160a060020a03871660009081526008602052604090206001015463ffffffff1694505b63ffffffff84161515614c0057600160a060020a03861660009081526008602052604090206001015463ffffffff1693505b6040805180820190915280614c1e8363ffffffff808a1690613aa616565b8152602001614c368463ffffffff80891690613aa616565b9052979650505050505050565b60008163ffffffff16118015614c625750620f424063ffffffff821611155b1515611637576040805160e560020a62461bcd02815260206004820152601a60248201527f4552525f494e56414c49445f524553455256455f574549474854000000000000604482015290519081900360640190fd5b614cc06153f1565b614cc86153f1565b828410614ce057614cd98484615241565b9150613b23565b614cea8385615241565b604080518082019091526020808301518252825190820152925090505092915050565b600954600090612bfe90620f4240906117b090859068010000000000000000900463ffffffff90811690613aa616565b600b546000908190600160a060020a0388811691161415614dab57600a54600160a060020a039081166000908152600c6020908152604080832054600b54909416835290912054865191870151601654614da4949363ffffffff808d1693908c1692613510565b9050614dfa565b600a54600160a060020a039081166000908152600c6020908152604080832054600b54909416835290912054865191870151601654614df7949363ffffffff808c1693908d1692613510565b90505b614e0b620f42406117b08584613aa6565b979650505050505050565b6000806000614e236153f1565b600080600080614e316152fe565b95509550614e448b8b600080898e61466a565b91955093509150831515614ea2576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f5a45524f5f5441524745545f414d4f554e5400000000000000000000604482015290519081900360640190fd5b614eab8a612c38565b9050808410614f04576040805160e560020a62461bcd02815260206004820152601a60248201527f4552525f5441524745545f414d4f554e545f544f4f5f48494748000000000000604482015290519081900360640190fd5b600160a060020a038b166000805160206154488339815191521415614f7f57348914614f7a576040805160e560020a62461bcd02815260206004820152601760248201527f4552525f4554485f414d4f554e545f4d49534d41544348000000000000000000604482015290519081900360640190fd5b615081565b3415801561502b575088615028614f958d612c38565b8d600160a060020a03166370a08231306040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b158015614ff057600080fd5b505af1158015615004573d6000803e3d6000fd5b505050506040513d602081101561501a57600080fd5b50519063ffffffff613d4716565b10155b1515615081576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f494e56414c49445f414d4f554e540000000000000000000000000000604482015290519081900360640190fd5b61508a8b613f8c565b61509a818563ffffffff613d4716565b600160a060020a038b16600090815260086020908152604080832093909355600c905220546150cf908463ffffffff613b2a16565b600160a060020a038b166000908152600c6020526040902055851561511a57600a54600b5461510d91600160a060020a039081169116600080614b7b565b8051601255602001516013555b509199919850909650505050505050565b7f8000000000000000000000000000000000000000000000000000000000000000811061515457fe5b60408051848152602081018490528082018390529051600160a060020a038087169288821692918a16917f276856b36cbc45526a0ba64f44611557a2a8b68662c5388e9fe6d72e86e1c8cb9181900360600190a4505050505050565b6000806151bf86868686613eef565b6151c885612125565b915081600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561520857600080fd5b505af115801561521c573d6000803e3d6000fd5b505050506040513d602081101561523257600080fd5b5051905061235a828287613e8f565b6152496153f1565b7314484bfeebc29f863424b06f3529a051a31be59982111561529b57604080518082019091526c0c9f2c9cd04674edea40000000808252602082019085048481151561529157fe5b0490529050612bfe565b6c0c9f2c9cd04674edea400000008311156152e85760408051908101604052806c0c9f2c9cd04674edea400000008152602001846c0c9f2c9cd04674edea40000000850281151561529157fe5b5060408051808201909152918252602082015290565b60006153086153f1565b60006153126153f1565b61531a6153f1565b61532261397a565b92508260115414156153505760408051808201909152600f5481526010546020820152600095509350613298565b615358614308565b60408051808201909152600f548082526010546020830152825192945090925014801561538c575080602001518260200151145b1561539d5760008294509450613298565b8151600f55602082015160105560118390556153b7613994565b50600194909350915050565b6040805160a08101825260008082526020820181905291810182905260608101829052608081019190915290565b604080518082019091526000808252602082015290565b60206040519081016040528060019060208202803883395091929150505600536f7672796e53776170436f6e76657274657255706772616465720000000000000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee4552525f4143434553535f44454e4945440000000000000000000000000000004552525f494e56414c49445f524553455256455f434f554e5400000000000000a165627a7a72305820a8e9b9bcc5f6430bca345d5988d43dcc2bb881c5ef1a9b4eeb6ed4019ea859c80029", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x1 PUSH1 0x4 DUP2 SWAP1 SSTORE PUSH1 0x9 DUP1 SLOAD PUSH1 0x1 PUSH1 0x60 PUSH1 0x2 EXP SUB NOT AND SWAP1 SSTORE PUSH1 0x15 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SWAP2 OR SWAP1 SSTORE PUSH3 0x11170 PUSH1 0x16 SSTORE CALLVALUE DUP1 ISZERO PUSH3 0x3C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH1 0x60 DUP1 PUSH3 0x5714 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 SWAP1 DUP2 MSTORE DUP2 MLOAD PUSH1 0x20 DUP4 ADD MLOAD SWAP2 SWAP1 SWAP3 ADD MLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND CALLER OR SWAP1 SSTORE DUP3 DUP3 DUP3 DUP3 DUP3 DUP3 DUP3 DUP3 DUP3 DUP2 DUP1 PUSH3 0x8D DUP2 PUSH5 0x100000000 PUSH3 0x13D DUP2 MUL DIV JUMP JUMPDEST POP PUSH1 0x2 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT SWAP3 DUP4 AND DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x3 DUP1 SLOAD SWAP1 SWAP3 AND OR SWAP1 SSTORE DUP3 PUSH3 0xCD DUP2 PUSH5 0x100000000 PUSH3 0x13D DUP2 MUL DIV JUMP JUMPDEST DUP2 PUSH3 0xE2 DUP2 PUSH5 0x100000000 PUSH3 0x1B8 DUP2 MUL DIV JUMP JUMPDEST POP POP PUSH1 0x5 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP5 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 OR SWAP1 SWAP3 SSTORE POP PUSH1 0x9 DUP1 SLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP3 AND PUSH5 0x100000000 MUL PUSH8 0xFFFFFFFF00000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE POP PUSH3 0x231 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH3 0x1B5 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH3 0xF4240 PUSH4 0xFFFFFFFF DUP3 AND GT ISZERO PUSH3 0x1B5 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F434F4E56455253494F4E5F464545000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x54D3 DUP1 PUSH3 0x241 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x349 JUMPI PUSH4 0xFFFFFFFF PUSH1 0xE0 PUSH1 0x2 EXP PUSH1 0x0 CALLDATALOAD DIV AND PUSH3 0x5E319C DUP2 EQ PUSH2 0x3E7 JUMPI DUP1 PUSH4 0x24C7EC7 EQ PUSH2 0x41A JUMPI DUP1 PUSH4 0x337E3FB EQ PUSH2 0x434 JUMPI DUP1 PUSH4 0xA55FB3D EQ PUSH2 0x465 JUMPI DUP1 PUSH4 0xC7D5CD8 EQ PUSH2 0x48E JUMPI DUP1 PUSH4 0xE53AAE9 EQ PUSH2 0x4BC JUMPI DUP1 PUSH4 0xF0FB407 EQ PUSH2 0x511 JUMPI DUP1 PUSH4 0x119B90CD EQ PUSH2 0x53B JUMPI DUP1 PUSH4 0x12C2ACA4 EQ PUSH2 0x568 JUMPI DUP1 PUSH4 0x16912F96 EQ PUSH2 0x57D JUMPI DUP1 PUSH4 0x19B64015 EQ PUSH2 0x592 JUMPI DUP1 PUSH4 0x1CFAB290 EQ PUSH2 0x5AA JUMPI DUP1 PUSH4 0x1E1401F8 EQ PUSH2 0x5CB JUMPI DUP1 PUSH4 0x21E6B53D EQ PUSH2 0x60E JUMPI DUP1 PUSH4 0x22F3E2D4 EQ PUSH2 0x62F JUMPI DUP1 PUSH4 0x2630C12F EQ PUSH2 0x644 JUMPI DUP1 PUSH4 0x2BD3C107 EQ PUSH2 0x659 JUMPI DUP1 PUSH4 0x2BF0C985 EQ PUSH2 0x67A JUMPI DUP1 PUSH4 0x2FE8A6AD EQ PUSH2 0x69B JUMPI DUP1 PUSH4 0x38A5E016 EQ PUSH2 0x6B0 JUMPI DUP1 PUSH4 0x395900D4 EQ PUSH2 0x6C5 JUMPI DUP1 PUSH4 0x3BEB26C4 EQ PUSH2 0x6EF JUMPI DUP1 PUSH4 0x3E8FF43F EQ PUSH2 0x707 JUMPI DUP1 PUSH4 0x46749468 EQ PUSH2 0x733 JUMPI DUP1 PUSH4 0x49D10B64 EQ PUSH2 0x74E JUMPI DUP1 PUSH4 0x4AF80F0E EQ PUSH2 0x763 JUMPI DUP1 PUSH4 0x54FD4D50 EQ PUSH2 0x784 JUMPI DUP1 PUSH4 0x55776B77 EQ PUSH2 0x799 JUMPI DUP1 PUSH4 0x5768ADCF EQ PUSH2 0x7B3 JUMPI DUP1 PUSH4 0x579CD3CA EQ PUSH2 0x7D4 JUMPI DUP1 PUSH4 0x59CD4EEC EQ PUSH2 0x7E9 JUMPI DUP1 PUSH4 0x5E35359E EQ PUSH2 0x813 JUMPI DUP1 PUSH4 0x61CD756E EQ PUSH2 0x83D JUMPI DUP1 PUSH4 0x67B6D57C EQ PUSH2 0x852 JUMPI DUP1 PUSH4 0x69067D95 EQ PUSH2 0x873 JUMPI DUP1 PUSH4 0x690D8320 EQ PUSH2 0x897 JUMPI DUP1 PUSH4 0x69D1354A EQ PUSH2 0x8B8 JUMPI DUP1 PUSH4 0x6A49D2C4 EQ PUSH2 0x8D0 JUMPI DUP1 PUSH4 0x71F52BF3 EQ PUSH2 0x8FA JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x90F JUMPI DUP1 PUSH4 0x7B103999 EQ PUSH2 0x924 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x939 JUMPI DUP1 PUSH4 0x94C275AD EQ PUSH2 0x94E JUMPI DUP1 PUSH4 0x98A71DCB EQ PUSH2 0x963 JUMPI DUP1 PUSH4 0x9B99A8E2 EQ PUSH2 0x984 JUMPI DUP1 PUSH4 0xA32BFF44 EQ PUSH2 0x999 JUMPI DUP1 PUSH4 0xAF94B8D8 EQ PUSH2 0x9AE JUMPI DUP1 PUSH4 0xB4A176D3 EQ PUSH2 0x9D8 JUMPI DUP1 PUSH4 0xBF754558 EQ PUSH2 0x9ED JUMPI DUP1 PUSH4 0xBF7DA6BA EQ PUSH2 0xA02 JUMPI DUP1 PUSH4 0xC3321FB0 EQ PUSH2 0xA26 JUMPI DUP1 PUSH4 0xC45D3D92 EQ PUSH2 0xA3B JUMPI DUP1 PUSH4 0xCDC91C69 EQ PUSH2 0xA50 JUMPI DUP1 PUSH4 0xD031370B EQ PUSH2 0xA65 JUMPI DUP1 PUSH4 0xD18E81B3 EQ PUSH2 0xA7D JUMPI DUP1 PUSH4 0xD260529C EQ PUSH2 0xA92 JUMPI DUP1 PUSH4 0xD3FB73B4 EQ PUSH2 0xAA7 JUMPI DUP1 PUSH4 0xD4EE1D90 EQ PUSH2 0xABC JUMPI DUP1 PUSH4 0xD55EC697 EQ PUSH2 0xAD1 JUMPI DUP1 PUSH4 0xD64C5A1A EQ PUSH2 0xAE6 JUMPI DUP1 PUSH4 0xD66BD524 EQ PUSH2 0xB11 JUMPI DUP1 PUSH4 0xD8959512 EQ PUSH2 0xB32 JUMPI DUP1 PUSH4 0xDB2830A4 EQ PUSH2 0xB53 JUMPI DUP1 PUSH4 0xDC75EB9A EQ PUSH2 0xB68 JUMPI DUP1 PUSH4 0xDC8DE379 EQ PUSH2 0xB7D JUMPI DUP1 PUSH4 0xE38192E3 EQ PUSH2 0xB9E JUMPI DUP1 PUSH4 0xE8104AF9 EQ PUSH2 0xBC5 JUMPI DUP1 PUSH4 0xE8DC12FF EQ PUSH2 0xBDA JUMPI DUP1 PUSH4 0xEC2240F5 EQ PUSH2 0xC04 JUMPI DUP1 PUSH4 0xECBCA55D EQ PUSH2 0xC19 JUMPI DUP1 PUSH4 0xF1FF40D9 EQ PUSH2 0xC37 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0xC4F JUMPI DUP1 PUSH4 0xF9CDDDE2 EQ PUSH2 0xC70 JUMPI DUP1 PUSH4 0xFC0C546A EQ PUSH2 0xC85 JUMPI JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5448 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x0 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH32 0x353C2EB9E53A4A4A6D45D72082FF2E9DC829D1125618772A83EB0E7F86632C43 SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO PUSH2 0x3E5 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245534552564500000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3F3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x408 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0xC9A JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x426 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3E5 PUSH1 0x4 CALLDATALOAD ISZERO ISZERO PUSH2 0xCC3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x440 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x449 PUSH2 0xD0B JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x471 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x47A PUSH2 0xD1A JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x49A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4A3 PUSH2 0xD23 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4C8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4DD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0xD2F JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP6 DUP7 MSTORE PUSH4 0xFFFFFFFF SWAP1 SWAP5 AND PUSH1 0x20 DUP7 ADD MSTORE SWAP2 ISZERO ISZERO DUP5 DUP5 ADD MSTORE ISZERO ISZERO PUSH1 0x60 DUP5 ADD MSTORE ISZERO ISZERO PUSH1 0x80 DUP4 ADD MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0xA0 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x51D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x408 PUSH1 0x4 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH1 0x44 CALLDATALOAD PUSH1 0x64 CALLDATALOAD PUSH1 0x84 CALLDATALOAD PUSH1 0xA4 CALLDATALOAD PUSH1 0xC4 CALLDATALOAD PUSH2 0xDCA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x547 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3E5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x44 CALLDATALOAD AND PUSH2 0xDE7 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x574 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x47A PUSH2 0x1551 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x589 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3E5 PUSH2 0x159A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x59E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x449 PUSH1 0x4 CALLDATALOAD PUSH2 0x15AE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5B6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4A3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x15DA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5D7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x5F5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x160C JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x61A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3E5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x1626 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x63B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x47A PUSH2 0x163A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x650 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x449 PUSH2 0x166F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x665 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x408 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x168E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x686 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x408 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x16E3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6A7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x47A PUSH2 0x17C6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6BC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3E5 PUSH2 0x17E7 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6D1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3E5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x17F9 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6FB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3E5 PUSH1 0x4 CALLDATALOAD PUSH2 0x1894 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x713 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x71C PUSH2 0x1899 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0xFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x73F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3E5 PUSH1 0x4 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH2 0x189E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x75A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3E5 PUSH2 0x1922 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x76F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3E5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x1B82 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x790 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x71C PUSH2 0x1BB7 JUMP JUMPDEST PUSH2 0x408 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH1 0x44 CALLDATALOAD PUSH2 0x1BBC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7BF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x449 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x2125 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7E0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4A3 PUSH2 0x2143 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3E5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH4 0xFFFFFFFF PUSH1 0x24 CALLDATALOAD AND PUSH2 0x215B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x81F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3E5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x219C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x849 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x449 PUSH2 0x22B0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x85E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3E5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x22BF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x87F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x5F5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x2362 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8A3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3E5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x24BD JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8C4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3E5 PUSH1 0x4 CALLDATALOAD PUSH2 0x25C2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8DC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3E5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH4 0xFFFFFFFF PUSH1 0x24 CALLDATALOAD AND PUSH2 0x2667 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x906 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x71C PUSH2 0x26C6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x91B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3E5 PUSH2 0x26D0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x930 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x449 PUSH2 0x2784 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x945 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x449 PUSH2 0x2793 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x95A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4A3 PUSH2 0x27A2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x96F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x408 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x27B6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x990 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x71C PUSH2 0x27C8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9A5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x5F5 PUSH2 0x27CE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9BA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x5F5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x27D7 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9E4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3E5 PUSH2 0x297B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9F9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x47A PUSH2 0x29A7 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA0E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3E5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x29AC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA32 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x408 PUSH2 0x29F4 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA47 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x449 PUSH2 0x29FA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA5C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3E5 PUSH2 0x2A09 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA71 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x449 PUSH1 0x4 CALLDATALOAD PUSH2 0x2A62 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA89 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x408 PUSH2 0x2A8A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA9E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x47A PUSH2 0x2A90 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xAB3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x449 PUSH2 0x2A95 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xAC8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x449 PUSH2 0x2AA4 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xADD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3E5 PUSH2 0x2AB3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xAF2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xAFB PUSH2 0x2BA8 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xB1D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4DD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x2BAD JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xB3E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x408 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x2BF3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xB5F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x5F5 PUSH2 0x2C04 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xB74 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x449 PUSH2 0x2C29 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xB89 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x408 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x2C38 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xBAA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x408 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH1 0x44 CALLDATALOAD PUSH2 0x2C61 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xBD1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x408 PUSH2 0x2FC6 JUMP JUMPDEST PUSH2 0x408 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x44 CALLDATALOAD SWAP1 PUSH1 0x64 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x84 CALLDATALOAD AND PUSH2 0x2FCC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xC10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x5F5 PUSH2 0x321F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xC25 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3E5 PUSH4 0xFFFFFFFF PUSH1 0x4 CALLDATALOAD AND PUSH2 0x329F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xC43 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3E5 PUSH1 0x4 CALLDATALOAD PUSH2 0x3394 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xC5B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3E5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x3399 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xC7C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x5F5 PUSH2 0x3429 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xC91 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x449 PUSH2 0x3432 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0xCA6 DUP2 PUSH2 0x3441 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0xCCB PUSH2 0x34C0 JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD SWAP2 ISZERO ISZERO PUSH21 0x10000000000000000000000000000000000000000 MUL PUSH21 0xFF0000000000000000000000000000000000000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x15 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH4 0xFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0xD3F PUSH2 0x53C3 JUMP JUMPDEST POP POP POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP2 MLOAD PUSH1 0xA0 DUP2 ADD DUP4 MSTORE DUP2 SLOAD DUP1 DUP3 MSTORE PUSH1 0x1 SWAP1 SWAP3 ADD SLOAD PUSH4 0xFFFFFFFF DUP2 AND SWAP5 DUP3 ADD DUP6 SWAP1 MSTORE PUSH1 0xFF PUSH5 0x100000000 DUP3 DIV DUP2 AND ISZERO ISZERO SWAP5 DUP4 ADD SWAP5 SWAP1 SWAP5 MSTORE PUSH6 0x10000000000 DUP2 DIV DUP5 AND ISZERO ISZERO PUSH1 0x60 DUP4 ADD MSTORE PUSH7 0x1000000000000 SWAP1 DIV SWAP1 SWAP3 AND ISZERO ISZERO PUSH1 0x80 SWAP1 SWAP3 ADD DUP3 SWAP1 MSTORE SWAP6 SWAP2 SWAP5 POP SWAP2 SWAP3 POP DUP3 SWAP2 SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xDDB DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 PUSH2 0x3510 JUMP JUMPDEST SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0xDF7 PUSH2 0x3588 JUMP JUMPDEST PUSH2 0xDFF PUSH2 0x34C0 JUMP JUMPDEST DUP8 PUSH2 0xE09 DUP2 PUSH2 0x3441 JUMP JUMPDEST DUP8 PUSH2 0xE13 DUP2 PUSH2 0x35E5 JUMP JUMPDEST DUP8 PUSH2 0xE1D DUP2 PUSH2 0x35E5 JUMP JUMPDEST DUP10 PUSH2 0xE27 DUP2 PUSH2 0x3646 JUMP JUMPDEST DUP10 PUSH2 0xE31 DUP2 PUSH2 0x3646 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x8DA5CB5B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD ADDRESS SWAP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP2 PUSH4 0x8DA5CB5B SWAP2 PUSH1 0x4 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xE90 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xEA4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xEBA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ PUSH2 0xF1A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F414E43484F525F4E4F545F4F574E4544000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0xF43 PUSH32 0x436861696E6C696E6B4F7261636C6557686974656C6973740000000000000000 PUSH2 0x36A6 JUMP JUMPDEST SWAP10 POP DUP10 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x3AF32ABF DUP14 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xFA0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xFB4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xFCA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD ISZERO ISZERO PUSH2 0x1022 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4F5241434C450000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP10 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x3AF32ABF DUP13 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x107D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1091 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x10A7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD ISZERO ISZERO PUSH2 0x10FF JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4F5241434C450000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x1107 PUSH2 0x373E JUMP JUMPDEST PUSH1 0xA DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP16 AND OR SWAP1 SSTORE PUSH1 0x7 DUP1 SLOAD PUSH1 0x0 SWAP1 DUP2 LT PUSH2 0x1131 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP15 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x118F JUMPI PUSH1 0x7 DUP1 SLOAD PUSH1 0x1 SWAP1 DUP2 LT PUSH2 0x115F JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0xB DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x11CA JUMP JUMPDEST PUSH1 0x7 DUP1 SLOAD PUSH1 0x0 SWAP1 DUP2 LT PUSH2 0x119E JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0xB DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMPDEST PUSH2 0x11F3 PUSH32 0x436F6E766572746572466163746F727900000000000000000000000000000000 PUSH2 0x36A6 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xC977AED2 PUSH2 0x1209 PUSH2 0x1899 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH2 0xFFFF AND PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x124A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x125E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1274 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP SWAP9 POP DUP9 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x1B27444E DUP15 PUSH1 0xB PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP16 DUP16 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP6 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP5 POP POP POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1345 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1359 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x136F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x9 DUP1 SLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH13 0x1000000000000000000000000 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND DUP2 MUL SWAP2 SWAP1 SWAP2 OR SWAP2 DUP3 SWAP1 SSTORE PUSH1 0xA SLOAD PUSH1 0xB SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xAE81800400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP3 DUP7 AND PUSH1 0x4 DUP5 ADD MSTORE SWAP1 DUP6 AND PUSH1 0x24 DUP4 ADD MSTORE DUP1 MLOAD SWAP3 SWAP1 SWAP4 DIV SWAP1 SWAP4 AND SWAP3 PUSH4 0xAE818004 SWAP3 PUSH1 0x44 DUP1 DUP4 ADD SWAP4 SWAP2 SWAP3 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1411 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1425 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x143B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD MLOAD PUSH1 0x10 DUP2 SWAP1 SSTORE PUSH1 0xF DUP3 SWAP1 SSTORE PUSH1 0x12 SWAP2 SWAP1 SWAP2 SSTORE PUSH1 0x13 SSTORE PUSH2 0x145F PUSH2 0x397A JUMP JUMPDEST PUSH1 0x11 SSTORE PUSH1 0xA SLOAD PUSH2 0x1477 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0xC9A JUMP JUMPDEST PUSH1 0xA SLOAD SWAP1 SWAP9 POP PUSH2 0x148F SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x2C38 JUMP JUMPDEST PUSH1 0xB SLOAD SWAP1 SWAP8 POP PUSH2 0x14A7 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x2C38 JUMP JUMPDEST SWAP6 POP DUP7 DUP9 EQ ISZERO PUSH2 0x14D2 JUMPI PUSH1 0x0 DUP9 GT DUP1 PUSH2 0x14C0 JUMPI POP PUSH1 0x0 DUP7 GT JUMPDEST ISZERO PUSH2 0x14CD JUMPI PUSH2 0x14CD PUSH2 0x3994 JUMP JUMPDEST PUSH2 0x14FB JUMP JUMPDEST PUSH1 0x0 DUP9 GT DUP1 ISZERO PUSH2 0x14E2 JUMPI POP PUSH1 0x0 DUP8 GT JUMPDEST DUP1 ISZERO PUSH2 0x14EE JUMPI POP PUSH1 0x0 DUP7 GT JUMPDEST ISZERO PUSH2 0x14FB JUMPI PUSH2 0x14FB PUSH2 0x3994 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x1512 PUSH2 0x1899 JUMP JUMPDEST PUSH2 0xFFFF AND PUSH32 0x6B08C2E2C9969E55A647A764DB9B554D64DC42F1A704DA11A6D5B129AD163F2C PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5448 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x0 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH32 0x353C2EB9E53A4A4A6D45D72082FF2E9DC829D1125618772A83EB0E7F86632C43 SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH2 0x15A2 PUSH2 0x34C0 JUMP JUMPDEST PUSH1 0x15 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x7 DUP3 DUP2 SLOAD DUP2 LT ISZERO ISZERO PUSH2 0x15BF JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0x15E6 DUP2 PUSH2 0x3441 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH4 0xFFFFFFFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x161A DUP6 DUP6 DUP6 PUSH2 0x27D7 JUMP JUMPDEST SWAP2 POP SWAP2 POP SWAP4 POP SWAP4 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x162E PUSH2 0x34C0 JUMP JUMPDEST PUSH2 0x1637 DUP2 PUSH2 0x22BF JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1644 PUSH2 0x3A0C JUMP JUMPDEST DUP1 ISZERO PUSH2 0x166A JUMPI POP PUSH1 0x9 SLOAD PUSH13 0x1000000000000000000000000 SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND ISZERO ISZERO JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH13 0x1000000000000000000000000 SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0x169A DUP2 PUSH2 0x3441 JUMP JUMPDEST PUSH2 0x16DC PUSH2 0x16A6 DUP5 PUSH2 0x2C38 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x16D0 SWAP1 PUSH1 0x13 PUSH4 0xFFFFFFFF PUSH2 0x3AA6 AND JUMP JUMPDEST SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x3B2A AND JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x18160DDD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1729 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x173D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1753 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP2 SWAP6 POP AND SWAP3 POP PUSH2 0x177E DUP4 PUSH2 0x2C38 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 SWAP3 POP SWAP1 POP PUSH2 0x17BC DUP2 PUSH2 0x17B0 DUP5 DUP8 PUSH4 0xFFFFFFFF PUSH2 0x3AA6 AND JUMP JUMPDEST SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x3B87 AND JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH2 0x17EF PUSH2 0x34C0 JUMP JUMPDEST PUSH2 0x17F7 PUSH2 0x2A09 JUMP JUMPDEST JUMP JUMPDEST PUSH2 0x1801 PUSH2 0x34C0 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x5E35359E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP6 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP3 ADD DUP6 SWAP1 MSTORE SWAP2 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP2 PUSH4 0x5E35359E SWAP2 PUSH1 0x64 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1877 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x188B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x17 SSTORE JUMP JUMPDEST PUSH1 0x2 SWAP1 JUMP JUMPDEST PUSH2 0x18A6 PUSH2 0x34C0 JUMP JUMPDEST DUP2 PUSH1 0x14 PUSH1 0x0 PUSH1 0x7 PUSH1 0x0 DUP2 SLOAD DUP2 LT ISZERO ISZERO PUSH2 0x18BB JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 SWAP1 SWAP2 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP4 MSTORE DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x40 ADD DUP2 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE PUSH1 0x7 DUP1 SLOAD DUP4 SWAP3 PUSH1 0x14 SWAP3 SWAP1 SWAP2 PUSH1 0x1 SWAP1 DUP2 LT PUSH2 0x18F9 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 SWAP1 SWAP2 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP4 MSTORE DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x40 ADD SWAP1 KECCAK256 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ DUP1 PUSH2 0x1957 JUMPI POP PUSH1 0x3 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x199B JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5468 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x19C4 PUSH32 0x436F6E7472616374526567697374727900000000000000000000000000000000 PUSH2 0x36A6 JUMP JUMPDEST PUSH1 0x2 SLOAD SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP4 AND SWAP2 AND EQ DUP1 ISZERO SWAP1 PUSH2 0x19ED JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x1A43 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245474953545259000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0xBB34534C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH32 0x436F6E7472616374526567697374727900000000000000000000000000000000 PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP2 PUSH4 0xBB34534C SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1AC7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1ADB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1AF1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ ISZERO PUSH2 0x1B52 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245474953545259000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP5 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT SWAP3 DUP4 AND OR SWAP1 SWAP3 SSTORE SWAP1 SWAP2 AND SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x1B8A PUSH2 0x34C0 JUMP JUMPDEST DUP1 PUSH2 0x1B94 DUP2 PUSH2 0x35E5 JUMP JUMPDEST POP PUSH1 0x6 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x20 DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x1BCC PUSH2 0x3BF5 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH2 0x1BD9 PUSH2 0x3C4F JUMP JUMPDEST DUP8 PUSH2 0x1BE3 DUP2 PUSH2 0x3441 JUMP JUMPDEST DUP8 PUSH2 0x1BED DUP2 PUSH2 0x3CAD JUMP JUMPDEST DUP8 PUSH2 0x1BF7 DUP2 PUSH2 0x3CAD JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5448 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ PUSH2 0x1C1C JUMPI CALLVALUE ISZERO PUSH2 0x1C20 JUMP JUMPDEST DUP10 CALLVALUE EQ JUMPDEST ISZERO ISZERO PUSH2 0x1C76 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4554485F414D4F554E545F4D49534D41544348000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x1C7E PUSH2 0x3D05 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5448 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ ISZERO PUSH2 0x1D20 JUMPI PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5448 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x0 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH32 0x353C2EB9E53A4A4A6D45D72082FF2E9DC829D1125618772A83EB0E7F86632C42 SLOAD PUSH2 0x1CE6 SWAP1 CALLVALUE PUSH4 0xFFFFFFFF PUSH2 0x3D47 AND JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5448 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x0 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH32 0x353C2EB9E53A4A4A6D45D72082FF2E9DC829D1125618772A83EB0E7F86632C42 SSTORE JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x15 SLOAD SWAP1 SWAP8 POP PUSH1 0xFF AND ISZERO PUSH2 0x1DE9 JUMPI PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x14 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD ISZERO DUP1 PUSH2 0x1D93 JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x14 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x1D90 DUP9 DUP13 PUSH4 0xFFFFFFFF PUSH2 0x3B2A AND JUMP JUMPDEST GT ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x1DE9 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4D41585F5354414B45445F42414C414E43455F524541434845440000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP13 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD DUP2 MLOAD PUSH32 0x18160DDD00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP2 MLOAD SWAP5 AND SWAP10 POP DUP10 SWAP4 PUSH4 0x18160DDD SWAP4 PUSH1 0x4 DUP1 DUP5 ADD SWAP5 SWAP4 DUP4 SWAP1 SUB ADD SWAP1 DUP3 SWAP1 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1E56 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1E6A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1E80 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP5 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5448 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ PUSH2 0x1EAE JUMPI PUSH2 0x1EAE DUP12 CALLER ADDRESS DUP14 PUSH2 0x3DA7 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x1ED7 SWAP1 DUP12 PUSH4 0xFFFFFFFF PUSH2 0x3B2A AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP13 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE PUSH2 0x1F00 DUP8 DUP12 PUSH4 0xFFFFFFFF PUSH2 0x3B2A AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP13 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE SWAP4 POP DUP7 ISZERO DUP1 PUSH2 0x1F29 JUMPI POP DUP5 ISZERO JUMPDEST ISZERO PUSH2 0x1F36 JUMPI DUP10 SWAP4 POP PUSH2 0x1F4D JUMP JUMPDEST PUSH2 0x1F4A DUP8 PUSH2 0x17B0 DUP13 DUP9 PUSH4 0xFFFFFFFF PUSH2 0x3AA6 AND JUMP JUMPDEST SWAP4 POP JUMPDEST DUP9 DUP5 LT ISZERO PUSH2 0x1FA5 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F52455455524E5F544F4F5F4C4F570000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xC6C3BBE600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP10 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE CALLER PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP3 ADD DUP9 SWAP1 MSTORE SWAP2 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP2 PUSH4 0xC6C3BBE6 SWAP2 PUSH1 0x64 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2019 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x202D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x2039 PUSH2 0x3994 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND CALLER PUSH32 0x4A1A2A6176E9646D9E3157F7C2AB3C499F18337C0B0828CFB28E0A61DE4A11F7 DUP13 PUSH2 0x2076 DUP12 DUP3 PUSH4 0xFFFFFFFF PUSH2 0x3B2A AND JUMP JUMPDEST PUSH2 0x2086 DUP11 DUP11 PUSH4 0xFFFFFFFF PUSH2 0x3B2A AND JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP4 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP3 SWAP1 SWAP3 MSTORE DUP3 DUP3 ADD MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG3 PUSH2 0x20BD DUP7 PUSH2 0x20B7 DUP8 DUP8 PUSH4 0xFFFFFFFF PUSH2 0x3B2A AND JUMP JUMPDEST DUP14 PUSH2 0x3E8F JUMP JUMPDEST PUSH2 0x2112 PUSH1 0x7 PUSH1 0x0 DUP2 SLOAD DUP2 LT ISZERO ISZERO PUSH2 0x20D0 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x7 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP2 PUSH1 0x1 SWAP1 DUP2 LT PUSH2 0x20F7 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP1 DUP1 PUSH2 0x3EEF JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0x4 SSTORE POP SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD AND SWAP1 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH9 0x10000000000000000 SWAP1 DIV PUSH4 0xFFFFFFFF AND DUP2 JUMP JUMPDEST DUP2 PUSH2 0x2165 DUP2 PUSH2 0x3441 JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP2 SWAP1 SWAP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD DUP1 SLOAD PUSH4 0xFFFFFFFF NOT AND PUSH4 0xFFFFFFFF SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH2 0x21A6 PUSH2 0x3BF5 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH2 0x21B3 PUSH2 0x34C0 JUMP JUMPDEST PUSH2 0x21CA PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5428 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x36A6 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD SWAP1 SWAP2 POP PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 PUSH2 0x2207 JUMPI POP PUSH2 0x2205 PUSH2 0x163A JUMP JUMPDEST ISZERO JUMPDEST DUP1 PUSH2 0x221F JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ JUMPDEST ISZERO ISZERO PUSH2 0x2263 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5468 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x226E DUP5 DUP5 DUP5 PUSH2 0x3F5B JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x22A5 JUMPI PUSH2 0x22A5 DUP5 PUSH2 0x3F8C JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0x4 SSTORE POP POP JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH2 0x22C7 PUSH2 0x34C0 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5428 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x22DF DUP2 PUSH2 0x4080 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xF2FDE38B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP2 PUSH4 0xF2FDE38B SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2346 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x235A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 DUP12 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x18160DDD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x23AF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x23C3 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x23D9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP15 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD SWAP1 SWAP4 AND DUP3 MSTORE PUSH1 0xC SWAP1 MSTORE KECCAK256 SLOAD SWAP1 SWAP9 POP SWAP7 POP DUP8 DUP12 LT ISZERO PUSH2 0x24A4 JUMPI PUSH1 0xA SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x243C SWAP1 PUSH1 0x14 PUSH4 0xFFFFFFFF PUSH2 0x3AA6 AND JUMP JUMPDEST PUSH1 0xA SLOAD SWAP1 SWAP7 POP PUSH2 0x2454 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x168E JUMP JUMPDEST SWAP5 POP DUP5 DUP7 LT PUSH2 0x2464 JUMPI DUP5 DUP7 PUSH2 0x2467 JUMP JUMPDEST DUP6 DUP6 JUMPDEST SWAP1 SWAP5 POP SWAP3 POP PUSH2 0x2480 DUP9 PUSH2 0x17B0 DUP14 DUP11 PUSH4 0xFFFFFFFF PUSH2 0x3AA6 AND JUMP JUMPDEST SWAP2 POP PUSH2 0x2496 DUP4 PUSH2 0x17B0 DUP5 DUP8 PUSH4 0xFFFFFFFF PUSH2 0x3AA6 AND JUMP JUMPDEST SWAP10 POP POP DUP9 DUP2 SUB SWAP8 POP DUP9 PUSH2 0x24AE JUMP JUMPDEST SWAP6 SWAP9 POP PUSH1 0x0 SWAP8 POP DUP9 SWAP6 JUMPDEST POP POP POP POP POP POP POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x24C7 PUSH2 0x3BF5 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH2 0x24D4 PUSH2 0x34C0 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5448 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x24EC DUP2 PUSH2 0x3441 JUMP JUMPDEST PUSH2 0x2503 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5428 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x36A6 JUMP JUMPDEST SWAP2 POP PUSH2 0x250D PUSH2 0x163A JUMP JUMPDEST ISZERO DUP1 PUSH2 0x2526 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 DUP2 AND SWAP2 AND EQ JUMPDEST ISZERO ISZERO PUSH2 0x256A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5468 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP1 ADDRESS BALANCE DUP1 ISZERO PUSH2 0x8FC MUL SWAP2 PUSH1 0x0 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x25A0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH2 0x25B8 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5448 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x3F8C JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0x4 SSTORE POP JUMP JUMPDEST PUSH2 0x25CA PUSH2 0x34C0 JUMP JUMPDEST PUSH3 0x186A0 DUP2 GT ISZERO PUSH2 0x2625 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F44594E414D49435F4645455F464143544F520000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x16 SLOAD PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP4 SWAP1 MSTORE DUP1 MLOAD PUSH32 0x382FD3516344712A511DCD464FF8E6AB54139D6A28F64087A3253353EE7A5679 SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG1 PUSH1 0x16 SSTORE JUMP JUMPDEST PUSH1 0x2 PUSH2 0x2671 PUSH2 0x27C8 JUMP JUMPDEST PUSH2 0xFFFF AND LT PUSH2 0x26B8 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5488 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x26C2 DUP3 DUP3 PUSH2 0x40D6 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x166A PUSH2 0x27C8 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x2720 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5468 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND SWAP4 SWAP1 SWAP2 AND SWAP2 PUSH32 0x343765429AEA5A34B3FF6A3785A98A5ABB2597ACA87BFBB58632C173D585373A SWAP2 LOG3 PUSH1 0x1 DUP1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND OR SWAP1 SWAP2 SSTORE AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH5 0x100000000 SWAP1 DIV PUSH4 0xFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x14 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x7 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0xF SLOAD PUSH1 0x10 SLOAD DUP3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x27E5 PUSH2 0x53F1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x27F3 PUSH2 0x3C4F JUMP JUMPDEST PUSH2 0x27FC DUP13 PUSH2 0x3441 JUMP JUMPDEST PUSH2 0x2805 DUP12 PUSH2 0x3441 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP13 DUP2 AND SWAP1 DUP13 AND EQ ISZERO PUSH2 0x2869 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F534F555243455F54415247455400000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x2871 PUSH2 0x397A JUMP JUMPDEST PUSH1 0x11 SLOAD EQ ISZERO PUSH2 0x2918 JUMPI PUSH1 0xF PUSH1 0x40 DUP1 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD SLOAD DUP2 MSTORE POP POP SWAP5 POP PUSH1 0x8 PUSH1 0x0 DUP14 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH4 0xFFFFFFFF AND SWAP7 POP PUSH1 0x8 PUSH1 0x0 DUP13 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH4 0xFFFFFFFF AND SWAP6 POP PUSH2 0x2958 JUMP JUMPDEST PUSH2 0x2920 PUSH2 0x4308 JUMP JUMPDEST SWAP5 POP PUSH2 0x292B DUP6 PUSH2 0x4540 JUMP JUMPDEST PUSH1 0xA SLOAD SWAP2 SWAP6 POP SWAP4 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP14 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x2951 JUMPI DUP4 SWAP7 POP DUP3 SWAP6 POP PUSH2 0x2958 JUMP JUMPDEST DUP3 SWAP7 POP DUP4 SWAP6 POP JUMPDEST PUSH2 0x2966 DUP13 DUP13 DUP10 DUP10 DUP10 DUP16 PUSH2 0x466A JUMP JUMPDEST SWAP2 SWAP15 SWAP2 SWAP14 POP SWAP1 SWAP12 POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x2983 PUSH2 0x34C0 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x2 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x1 DUP2 JUMP JUMPDEST PUSH2 0x29B4 PUSH2 0x34C0 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5428 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x29CC DUP2 PUSH2 0x4080 JUMP JUMPDEST DUP3 PUSH2 0x29D6 DUP2 PUSH2 0x3441 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE JUMP JUMPDEST PUSH1 0x11 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x1 PUSH2 0x2A13 PUSH2 0x27C8 JUMP JUMPDEST PUSH2 0xFFFF AND GT PUSH2 0x2A5A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5488 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x17F7 PUSH2 0x4806 JUMP JUMPDEST PUSH1 0x7 DUP1 SLOAD DUP3 SWAP1 DUP2 LT PUSH2 0x2A70 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP1 POP DUP2 JUMP JUMPDEST PUSH1 0x17 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 SWAP1 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2ABD PUSH2 0x34C0 JUMP JUMPDEST PUSH2 0x2AD4 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5428 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x36A6 JUMP JUMPDEST PUSH1 0x5 SLOAD SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x2AEE PUSH2 0x1899 JUMP JUMPDEST PUSH2 0xFFFF AND PUSH32 0x6B08C2E2C9969E55A647A764DB9B554D64DC42F1A704DA11A6D5B129AD163F2C PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH2 0x2B27 DUP2 PUSH2 0x3399 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x90F58C9600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 AND SWAP2 PUSH4 0x90F58C96 SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2B88 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2B9C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x1637 PUSH2 0x26D0 JUMP JUMPDEST PUSH1 0x14 SWAP1 JUMP JUMPDEST PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD PUSH4 0xFFFFFFFF DUP2 AND SWAP1 PUSH1 0xFF PUSH5 0x100000000 DUP3 DIV DUP2 AND SWAP2 PUSH6 0x10000000000 DUP2 DIV DUP3 AND SWAP2 PUSH7 0x1000000000000 SWAP1 SWAP2 DIV AND DUP6 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2BFE DUP3 PUSH2 0x2C38 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2C0F PUSH2 0x53F1 JUMP JUMPDEST PUSH2 0x2C17 PUSH2 0x4308 JUMP JUMPDEST DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD MLOAD SWAP1 SWAP5 SWAP1 SWAP4 POP SWAP2 POP POP JUMP JUMPDEST PUSH1 0xB SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0x2C44 DUP2 PUSH2 0x3441 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x2C72 PUSH2 0x3BF5 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH2 0x2C7F PUSH2 0x3C4F JUMP JUMPDEST DUP9 PUSH2 0x2C89 DUP2 PUSH2 0x48D2 JUMP JUMPDEST DUP9 PUSH2 0x2C93 DUP2 PUSH2 0x3CAD JUMP JUMPDEST DUP9 PUSH2 0x2C9D DUP2 PUSH2 0x3CAD JUMP JUMPDEST PUSH2 0x2CA5 PUSH2 0x3D05 JUMP JUMPDEST DUP12 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x18160DDD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2CE3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2CF7 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2D0D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP8 POP PUSH2 0x2D1B DUP13 DUP13 PUSH2 0x2362 JUMP JUMPDEST POP SWAP7 POP DUP10 DUP8 LT ISZERO PUSH2 0x2D76 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F52455455524E5F544F4F5F4C4F570000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0xE PUSH1 0x0 DUP14 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP6 POP PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xF6B911BC DUP14 CALLER DUP15 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP4 POP POP POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2E43 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2E57 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x2E84 SWAP2 POP DUP9 PUSH4 0xFFFFFFFF PUSH2 0x3D47 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE PUSH1 0xC SWAP1 MSTORE KECCAK256 SLOAD PUSH2 0x2EB9 SWAP1 DUP9 PUSH4 0xFFFFFFFF PUSH2 0x3D47 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP3 SWAP1 SSTORE SWAP1 SWAP6 POP PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5448 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ ISZERO PUSH2 0x2F1F JUMPI PUSH1 0x40 MLOAD CALLER SWAP1 DUP9 ISZERO PUSH2 0x8FC MUL SWAP1 DUP10 SWAP1 PUSH1 0x0 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x2F19 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH2 0x2F2A JUMP JUMPDEST PUSH2 0x2F2A DUP7 CALLER DUP10 PUSH2 0x4943 JUMP JUMPDEST PUSH2 0x2F32 PUSH2 0x3994 JUMP JUMPDEST PUSH2 0x2F42 DUP9 DUP13 PUSH4 0xFFFFFFFF PUSH2 0x3D47 AND JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP10 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP9 SWAP1 MSTORE DUP1 DUP3 ADD DUP4 SWAP1 MSTORE SWAP1 MLOAD SWAP2 SWAP6 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 AND SWAP2 CALLER SWAP2 PUSH32 0xBC7D19D505C7EC4DB83F3B51F19FB98C4C8A99922E7839D1EE608DFBEE29501B SWAP2 SWAP1 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG3 PUSH2 0x2F9E DUP13 DUP6 DUP9 PUSH2 0x3E8F JUMP JUMPDEST PUSH2 0x2FB1 PUSH1 0x7 PUSH1 0x0 DUP2 SLOAD DUP2 LT ISZERO ISZERO PUSH2 0x20D0 JUMPI INVALID JUMPDEST POP POP PUSH1 0x1 PUSH1 0x4 SSTORE POP SWAP3 SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x16 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2FD6 PUSH2 0x3BF5 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH32 0x536F7672796E537761704E6574776F726B000000000000000000000000000000 PUSH2 0x3005 DUP2 PUSH2 0x4080 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 DUP2 AND SWAP1 DUP8 AND EQ ISZERO PUSH2 0x3069 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F534F555243455F54415247455400000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND ISZERO DUP1 PUSH2 0x31AC JUMPI POP PUSH1 0x6 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x3AF32ABF00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP2 PUSH4 0x3AF32ABF SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x30E4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x30F8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x310E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD DUP1 ISZERO PUSH2 0x31AC JUMPI POP PUSH1 0x6 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x3AF32ABF00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP2 PUSH4 0x3AF32ABF SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x317F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3193 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x31A9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD JUMPDEST ISZERO ISZERO PUSH2 0x3202 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4E4F545F57484954454C495354454400000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x320F DUP8 DUP8 DUP8 DUP8 DUP8 PUSH2 0x49FA JUMP JUMPDEST PUSH1 0x1 PUSH1 0x4 SSTORE SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x322A PUSH2 0x53F1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x3235 PUSH2 0x4308 JUMP JUMPDEST SWAP3 POP PUSH2 0x3240 DUP4 PUSH2 0x4540 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x7 PUSH1 0x0 DUP2 SLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3254 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0xA SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x3289 JUMPI PUSH4 0xFFFFFFFF DUP1 DUP4 AND SWAP6 POP DUP2 AND SWAP4 POP PUSH2 0x3298 JUMP JUMPDEST PUSH4 0xFFFFFFFF DUP1 DUP3 AND SWAP6 POP DUP3 AND SWAP4 POP JUMPDEST POP POP POP SWAP1 SWAP2 JUMP JUMPDEST PUSH2 0x32A7 PUSH2 0x34C0 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH4 0xFFFFFFFF PUSH5 0x100000000 SWAP1 SWAP2 DIV DUP2 AND SWAP1 DUP3 AND GT ISZERO PUSH2 0x3313 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F434F4E56455253494F4E5F464545000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH4 0xFFFFFFFF PUSH9 0x10000000000000000 SWAP1 SWAP4 DIV DUP4 AND DUP2 MSTORE SWAP2 DUP4 AND PUSH1 0x20 DUP4 ADD MSTORE DUP1 MLOAD PUSH32 0x81CD2FFB37DD237C0E4E2A3DE5265FCF9DEB43D3E7801E80DB9F1CCFBA7EE600 SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG1 PUSH1 0x9 DUP1 SLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP3 AND PUSH9 0x10000000000000000 MUL PUSH12 0xFFFFFFFF0000000000000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x11 SSTORE JUMP JUMPDEST PUSH2 0x33A1 PUSH2 0x34C0 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x3407 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F4F574E4552000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x12 SLOAD PUSH1 0x13 SLOAD DUP3 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO PUSH2 0x1637 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245534552564500000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x17F7 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5468 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP1 PUSH2 0x3534 DUP8 PUSH2 0x3528 DUP13 DUP10 PUSH4 0xFFFFFFFF PUSH2 0x3AA6 AND JUMP JUMPDEST SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x3AA6 AND JUMP JUMPDEST SWAP2 POP PUSH2 0x354A DUP9 PUSH2 0x3528 DUP12 DUP9 PUSH4 0xFFFFFFFF PUSH2 0x3AA6 AND JUMP JUMPDEST SWAP1 POP DUP2 DUP2 GT ISZERO PUSH2 0x3576 JUMPI PUSH2 0x356F DUP2 PUSH2 0x17B0 PUSH1 0x14 PUSH2 0x3528 DUP7 DUP5 SUB DUP10 PUSH4 0xFFFFFFFF PUSH2 0x3AA6 AND JUMP JUMPDEST SWAP3 POP PUSH2 0x357B JUMP JUMPDEST PUSH1 0x0 SWAP3 POP JUMPDEST POP POP SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x3590 PUSH2 0x163A JUMP JUMPDEST ISZERO PUSH2 0x17F7 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xA PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F41435449564500000000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ADDRESS EQ ISZERO PUSH2 0x1637 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F414444524553535F49535F53454C4600000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0x1637 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xBB34534C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP2 PUSH4 0xBB34534C SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x370C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3720 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x3736 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP6 POP DUP6 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x6D3E313E PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x379E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x37B2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x37DB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 MLOAD PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x37F3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD PUSH1 0x20 DUP2 ADD DUP5 DUP2 GT ISZERO PUSH2 0x3806 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP6 PUSH1 0x20 DUP3 MUL DUP4 ADD GT PUSH5 0x100000000 DUP3 GT OR ISZERO PUSH2 0x3823 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP DUP1 MLOAD PUSH1 0x7 SLOAD SWAP2 SWAP10 POP ISZERO SWAP8 POP SWAP6 POP PUSH1 0x0 SWAP5 POP POP POP POP JUMPDEST DUP3 DUP3 LT ISZERO PUSH2 0x235A JUMPI DUP4 ISZERO PUSH2 0x38B9 JUMPI DUP6 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x9CBF9E36 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3886 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x389A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x38B0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 POP PUSH2 0x38D4 JUMP JUMPDEST DUP5 DUP3 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x38C7 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD SWAP1 POP JUMPDEST DUP1 PUSH1 0xD PUSH1 0x0 PUSH1 0x7 DUP6 DUP2 SLOAD DUP2 LT ISZERO ISZERO PUSH2 0x38E8 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 SWAP2 SWAP1 SWAP2 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 DUP2 AND DUP5 MSTORE SWAP1 DUP4 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x40 SWAP1 SWAP2 ADD SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND SWAP3 SWAP1 SWAP2 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH1 0x7 DUP1 SLOAD DUP4 SWAP1 DUP2 LT PUSH2 0x3936 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 SWAP1 SWAP2 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 DUP2 AND DUP5 MSTORE PUSH1 0xE SWAP1 SWAP3 MSTORE PUSH1 0x40 SWAP1 SWAP3 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND SWAP2 SWAP1 SWAP3 AND OR SWAP1 SSTORE PUSH1 0x1 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x383A JUMP JUMPDEST PUSH1 0x0 PUSH1 0x17 SLOAD PUSH1 0x0 EQ ISZERO PUSH2 0x398D JUMPI TIMESTAMP PUSH2 0x166A JUMP JUMPDEST POP PUSH1 0x17 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0xF SLOAD DUP2 MSTORE PUSH1 0x10 SLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 SWAP1 DUP2 SWAP1 PUSH2 0x39B9 SWAP1 PUSH2 0x4540 JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 PUSH1 0x1 SWAP1 DUP2 ADD DUP1 SLOAD PUSH4 0xFFFFFFFF SWAP8 DUP9 AND PUSH4 0xFFFFFFFF NOT SWAP2 DUP3 AND OR SWAP1 SWAP2 SSTORE PUSH1 0xB SLOAD SWAP1 SWAP5 AND DUP4 MSTORE SWAP2 KECCAK256 ADD DUP1 SLOAD SWAP3 SWAP1 SWAP4 AND SWAP2 AND OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 ADDRESS PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x8DA5CB5B PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3A6B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3A7F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x3A95 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 ISZERO ISZERO PUSH2 0x3AB9 JUMPI PUSH1 0x0 SWAP2 POP PUSH2 0x3B23 JUMP JUMPDEST POP DUP3 DUP3 MUL DUP3 DUP5 DUP3 DUP2 ISZERO ISZERO PUSH2 0x3AC9 JUMPI INVALID JUMPDEST DIV EQ PUSH2 0x3B1F JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP1 SWAP2 POP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 ADD DUP4 DUP2 LT ISZERO PUSH2 0x3B1F JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP4 GT PUSH2 0x3BE1 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4449564944455F42595F5A45524F0000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP3 DUP5 DUP2 ISZERO ISZERO PUSH2 0x3BEC JUMPI INVALID JUMPDEST DIV SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH1 0x1 EQ PUSH2 0x17F7 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5245454E5452414E4359000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x3C57 PUSH2 0x163A JUMP JUMPDEST ISZERO ISZERO PUSH2 0x17F7 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E4143544956450000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 GT PUSH2 0x1637 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5A45524F5F56414C5545000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x26C2 JUMPI PUSH2 0x3D3F PUSH1 0x7 DUP3 DUP2 SLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3D25 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x3F8C JUMP JUMPDEST PUSH1 0x1 ADD PUSH2 0x3D0B JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT ISZERO PUSH2 0x3DA1 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F554E444552464C4F5700000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP SWAP1 SUB SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x7472616E7366657246726F6D28616464726573732C616464726573732C75696E DUP2 MSTORE PUSH32 0x7432353629000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP3 MLOAD SWAP2 DUP3 SWAP1 SUB PUSH1 0x25 ADD DUP3 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP9 AND PUSH1 0x24 DUP6 ADD MSTORE DUP7 AND PUSH1 0x44 DUP5 ADD MSTORE PUSH1 0x64 DUP1 DUP5 ADD DUP7 SWAP1 MSTORE DUP5 MLOAD DUP1 DUP6 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x84 SWAP1 SWAP4 ADD SWAP1 SWAP4 MSTORE DUP2 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE PUSH2 0x3E89 SWAP1 DUP6 SWAP1 PUSH2 0x4AED JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP3 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SLOAD DUP3 MLOAD SWAP1 DUP2 MSTORE SWAP1 DUP2 ADD DUP7 SWAP1 MSTORE DUP2 MLOAD SWAP3 SWAP4 DUP8 AND SWAP3 PUSH32 0x77F29993CF2C084E726F7E802DA0719D6A0ADE3E204BADC7A3FFD57ECB768C24 SWAP3 SWAP2 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH2 0x3EF7 PUSH2 0x53F1 JUMP JUMPDEST PUSH2 0x3F03 DUP6 DUP6 DUP6 DUP6 PUSH2 0x4B7B JUMP JUMPDEST DUP1 MLOAD PUSH1 0x20 DUP1 DUP4 ADD MLOAD PUSH1 0x40 DUP1 MLOAD SWAP4 DUP5 MSTORE SWAP2 DUP4 ADD MSTORE DUP1 MLOAD SWAP3 SWAP4 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP9 AND SWAP4 SWAP1 DUP10 AND SWAP3 PUSH32 0x77F29993CF2C084E726F7E802DA0719D6A0ADE3E204BADC7A3FFD57ECB768C24 SWAP3 SWAP1 DUP3 SWAP1 SUB ADD SWAP1 LOG3 POP POP POP POP POP JUMP JUMPDEST PUSH2 0x3F63 PUSH2 0x34C0 JUMP JUMPDEST DUP3 PUSH2 0x3F6D DUP2 PUSH2 0x3646 JUMP JUMPDEST DUP3 PUSH2 0x3F77 DUP2 PUSH2 0x3646 JUMP JUMPDEST DUP4 PUSH2 0x3F81 DUP2 PUSH2 0x35E5 JUMP JUMPDEST PUSH2 0x235A DUP7 DUP7 DUP7 PUSH2 0x4943 JUMP JUMPDEST DUP1 PUSH2 0x3F96 DUP2 PUSH2 0x3441 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 AND PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5448 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ ISZERO PUSH2 0x3FD6 JUMPI PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 ADDRESS BALANCE SWAP1 SSTORE PUSH2 0x26C2 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x4037 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x404B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x4061 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE POP POP JUMP JUMPDEST PUSH2 0x4089 DUP2 PUSH2 0x36A6 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x1637 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5468 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x40E0 PUSH2 0x34C0 JUMP JUMPDEST PUSH2 0x40E8 PUSH2 0x3588 JUMP JUMPDEST DUP3 PUSH2 0x40F2 DUP2 PUSH2 0x3646 JUMP JUMPDEST DUP4 PUSH2 0x40FC DUP2 PUSH2 0x35E5 JUMP JUMPDEST DUP4 PUSH2 0x4106 DUP2 PUSH2 0x4C43 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 DUP2 AND SWAP2 AND EQ DUP1 ISZERO SWAP1 PUSH2 0x414A JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x41A0 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245534552564500000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x9 SLOAD PUSH4 0xFFFFFFFF SWAP1 DUP2 AND PUSH3 0xF4240 SUB DUP2 AND SWAP1 DUP7 AND GT ISZERO PUSH2 0x420B JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F574549474854000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0xFFFF PUSH2 0x4216 PUSH2 0x27C8 JUMP JUMPDEST PUSH2 0xFFFF AND LT PUSH2 0x425D JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5488 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP2 DUP2 SSTORE PUSH1 0x1 SWAP1 DUP2 ADD DUP1 SLOAD PUSH7 0xFF000000000000 NOT PUSH4 0xFFFFFFFF DUP1 DUP9 AND PUSH4 0xFFFFFFFF NOT SWAP4 DUP5 AND OR SWAP2 SWAP1 SWAP2 AND PUSH7 0x1000000000000 OR SWAP1 SWAP3 SSTORE PUSH1 0x7 DUP1 SLOAD SWAP4 DUP5 ADD DUP2 SSTORE SWAP1 SWAP4 MSTORE PUSH32 0xA66CC928B5EDB82AF9BD49922954155AB7B0942694BEA4CE44661D9A8736C688 SWAP1 SWAP2 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND SWAP1 SWAP4 OR SWAP1 SWAP3 SSTORE PUSH1 0x9 DUP1 SLOAD DUP1 DUP5 AND SWAP1 SWAP5 ADD SWAP1 SWAP3 AND SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE POP JUMP JUMPDEST PUSH2 0x4310 PUSH2 0x53F1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x431E PUSH2 0x53F1 JUMP JUMPDEST PUSH2 0x4326 PUSH2 0x53F1 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0xA SLOAD PUSH1 0xB SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xB1772D7A00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND PUSH1 0x4 DUP3 ADD MSTORE SWAP2 DUP4 AND PUSH1 0x24 DUP4 ADD MSTORE MLOAD PUSH1 0x0 SWAP4 DUP5 SWAP4 DUP5 SWAP4 DUP5 SWAP4 PUSH13 0x1000000000000000000000000 SWAP1 SWAP4 DIV SWAP1 SWAP2 AND SWAP2 PUSH4 0xB1772D7A SWAP2 PUSH1 0x44 DUP1 DUP3 ADD SWAP3 PUSH1 0x60 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x43B4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x43C8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x60 DUP2 LT ISZERO PUSH2 0x43DE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD PUSH1 0x20 DUP3 ADD MLOAD PUSH1 0x40 SWAP1 SWAP3 ADD MLOAD PUSH1 0x11 SLOAD SWAP2 SWAP13 POP SWAP2 SWAP11 POP SWAP1 SWAP9 POP DUP9 GT ISZERO PUSH2 0x441B JUMPI PUSH1 0x40 DUP1 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 DUP12 DUP2 MSTORE PUSH1 0x20 ADD DUP11 DUP2 MSTORE POP SWAP11 POP PUSH2 0x4533 JUMP JUMPDEST PUSH1 0x11 SLOAD PUSH2 0x4426 PUSH2 0x397A JUMP JUMPDEST SUB SWAP7 POP DUP7 ISZERO ISZERO PUSH2 0x444E JUMPI PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0xF SLOAD DUP2 MSTORE PUSH1 0x10 SLOAD PUSH1 0x20 DUP3 ADD MSTORE SWAP11 POP PUSH2 0x4533 JUMP JUMPDEST PUSH2 0x258 DUP8 LT PUSH2 0x4475 JUMPI PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x12 SLOAD DUP2 MSTORE PUSH1 0x13 SLOAD PUSH1 0x20 DUP3 ADD MSTORE SWAP11 POP PUSH2 0x4533 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD DUP3 MSTORE PUSH1 0xF SLOAD DUP2 MSTORE PUSH1 0x10 SLOAD PUSH1 0x20 DUP1 DUP4 ADD SWAP2 DUP3 MSTORE DUP4 MLOAD DUP1 DUP6 ADD SWAP1 SWAP5 MSTORE PUSH1 0x12 SLOAD DUP1 DUP6 MSTORE PUSH1 0x13 SLOAD SWAP2 DUP6 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP1 MLOAD SWAP2 SWAP9 POP SWAP2 SWAP7 POP PUSH2 0x44BD SWAP2 PUSH4 0xFFFFFFFF PUSH2 0x3AA6 AND JUMP JUMPDEST PUSH1 0x20 DUP7 ADD MLOAD DUP8 MLOAD SWAP2 SWAP6 POP PUSH2 0x44D7 SWAP2 SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x3AA6 AND JUMP JUMPDEST SWAP3 POP PUSH2 0x4501 PUSH2 0x44EC DUP6 DUP10 PUSH4 0xFFFFFFFF PUSH2 0x3AA6 AND JUMP JUMPDEST PUSH2 0x16D0 DUP6 PUSH2 0x258 DUP12 SWAP1 SUB PUSH4 0xFFFFFFFF PUSH2 0x3AA6 AND JUMP JUMPDEST SWAP2 POP PUSH2 0x4524 PUSH2 0x258 PUSH2 0x3528 DUP8 PUSH1 0x20 ADD MLOAD DUP10 PUSH1 0x20 ADD MLOAD PUSH2 0x3AA6 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP PUSH2 0x4530 DUP3 DUP3 PUSH2 0x4CB8 JUMP JUMPDEST SWAP11 POP JUMPDEST POP POP POP POP POP POP POP POP POP POP SWAP1 JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD SWAP1 SWAP2 DUP3 SWAP2 SWAP1 DUP3 SWAP1 DUP2 SWAP1 PUSH2 0x456D SWAP1 PUSH2 0x168E JUMP JUMPDEST PUSH1 0xB SLOAD SWAP1 SWAP3 POP PUSH2 0x4585 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x168E JUMP JUMPDEST SWAP1 POP PUSH2 0x45B0 PUSH32 0x536F7672796E53776170466F726D756C61000000000000000000000000000000 PUSH2 0x36A6 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xA11AA1B4 PUSH2 0x45CF DUP6 PUSH1 0x14 PUSH4 0xFFFFFFFF PUSH2 0x3AA6 AND JUMP JUMPDEST DUP9 MLOAD PUSH1 0x20 DUP11 ADD MLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0xE0 PUSH1 0x2 EXP PUSH4 0xFFFFFFFF DUP8 AND MUL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP5 SWAP1 SWAP5 MSTORE PUSH1 0x24 DUP5 ADD DUP9 SWAP1 MSTORE PUSH1 0x44 DUP5 ADD DUP8 SWAP1 MSTORE PUSH1 0x64 DUP5 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x84 DUP4 ADD MSTORE DUP1 MLOAD PUSH1 0xA4 DUP1 DUP5 ADD SWAP4 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x462A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x463E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x4654 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD MLOAD SWAP1 SWAP6 POP SWAP4 POP POP POP POP SWAP2 POP SWAP2 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP1 DUP1 PUSH4 0xFFFFFFFF DUP10 AND ISZERO ISZERO PUSH2 0x46A2 JUMPI PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH4 0xFFFFFFFF AND SWAP9 POP JUMPDEST PUSH4 0xFFFFFFFF DUP9 AND ISZERO ISZERO PUSH2 0x46D4 JUMPI PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP11 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH4 0xFFFFFFFF AND SWAP8 POP JUMPDEST PUSH2 0x46DD DUP12 PUSH2 0x168E JUMP JUMPDEST SWAP2 POP PUSH2 0x46E8 DUP11 PUSH2 0x168E JUMP JUMPDEST SWAP1 POP PUSH2 0x4713 PUSH32 0x536F7672796E53776170466F726D756C61000000000000000000000000000000 PUSH2 0x36A6 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x94491FAB00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH4 0xFFFFFFFF DUP1 DUP14 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP3 ADD DUP6 SWAP1 MSTORE DUP12 AND PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 DUP2 ADD DUP10 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 PUSH4 0x94491FAB SWAP2 PUSH1 0xA4 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x479A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x47AE JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x47C4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP5 POP PUSH2 0x47D1 DUP6 PUSH2 0x4D0D JUMP JUMPDEST SWAP4 POP PUSH2 0x47E4 DUP5 PUSH2 0x16D0 DUP13 DUP13 DUP13 DUP13 DUP12 PUSH2 0x4D3D JUMP JUMPDEST SWAP3 POP PUSH2 0x47F6 DUP6 DUP5 PUSH4 0xFFFFFFFF PUSH2 0x3D47 AND JUMP JUMPDEST SWAP5 POP POP POP SWAP7 POP SWAP7 POP SWAP7 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0x480E PUSH2 0x34C0 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4818 PUSH2 0x27C8 JUMP JUMPDEST PUSH2 0xFFFF AND GT PUSH2 0x485F JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5488 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x79BA5097 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x48B2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x48C6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x17F7 PUSH2 0x3D05 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD AND ISZERO ISZERO PUSH2 0x1637 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F504F4F4C5F544F4B454E00000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x7472616E7366657228616464726573732C75696E743235362900000000000000 DUP2 MSTORE DUP2 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x19 ADD DUP2 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x64 SWAP1 SWAP3 ADD SWAP1 SWAP3 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE PUSH2 0x49F5 SWAP1 DUP5 SWAP1 PUSH2 0x4AED JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x4A07 PUSH2 0x3C4F JUMP JUMPDEST DUP8 PUSH2 0x4A11 DUP2 PUSH2 0x3441 JUMP JUMPDEST DUP8 PUSH2 0x4A1B DUP2 PUSH2 0x3441 JUMP JUMPDEST PUSH2 0x4A26 DUP11 DUP11 DUP11 PUSH2 0x4E16 JUMP JUMPDEST SWAP1 SWAP5 POP SWAP3 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP10 AND PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5448 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ ISZERO PUSH2 0x4A86 JUMPI PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND SWAP1 DUP6 ISZERO PUSH2 0x8FC MUL SWAP1 DUP7 SWAP1 PUSH1 0x0 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x4A80 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH2 0x4A91 JUMP JUMPDEST PUSH2 0x4A91 DUP10 DUP8 DUP7 PUSH2 0x4943 JUMP JUMPDEST PUSH2 0x4A9F DUP11 DUP11 DUP10 DUP12 DUP9 DUP9 PUSH2 0x512B JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 PUSH1 0x1 SWAP1 DUP2 ADD SLOAD SWAP4 DUP14 AND DUP4 MSTORE SWAP2 KECCAK256 ADD SLOAD PUSH2 0x4ADF SWAP2 DUP13 SWAP2 DUP13 SWAP2 PUSH4 0xFFFFFFFF SWAP1 DUP2 AND SWAP2 AND PUSH2 0x51B0 JUMP JUMPDEST POP SWAP2 SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x4AF5 PUSH2 0x5408 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE POP SWAP1 POP PUSH1 0x20 DUP2 DUP4 MLOAD PUSH1 0x20 DUP6 ADD PUSH1 0x0 DUP8 GAS CALL DUP1 ISZERO ISZERO PUSH2 0x4B22 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD ISZERO ISZERO PUSH2 0x49F5 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5452414E534645525F4641494C454400000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x4B83 PUSH2 0x53F1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x4B8F DUP8 PUSH2 0x168E JUMP JUMPDEST SWAP2 POP PUSH2 0x4B9A DUP7 PUSH2 0x168E JUMP JUMPDEST SWAP1 POP PUSH4 0xFFFFFFFF DUP6 AND ISZERO ISZERO PUSH2 0x4BCE JUMPI PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH4 0xFFFFFFFF AND SWAP5 POP JUMPDEST PUSH4 0xFFFFFFFF DUP5 AND ISZERO ISZERO PUSH2 0x4C00 JUMPI PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH4 0xFFFFFFFF AND SWAP4 POP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE DUP1 PUSH2 0x4C1E DUP4 PUSH4 0xFFFFFFFF DUP1 DUP11 AND SWAP1 PUSH2 0x3AA6 AND JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x4C36 DUP5 PUSH4 0xFFFFFFFF DUP1 DUP10 AND SWAP1 PUSH2 0x3AA6 AND JUMP JUMPDEST SWAP1 MSTORE SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH4 0xFFFFFFFF AND GT DUP1 ISZERO PUSH2 0x4C62 JUMPI POP PUSH3 0xF4240 PUSH4 0xFFFFFFFF DUP3 AND GT ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x1637 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F574549474854000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x4CC0 PUSH2 0x53F1 JUMP JUMPDEST PUSH2 0x4CC8 PUSH2 0x53F1 JUMP JUMPDEST DUP3 DUP5 LT PUSH2 0x4CE0 JUMPI PUSH2 0x4CD9 DUP5 DUP5 PUSH2 0x5241 JUMP JUMPDEST SWAP2 POP PUSH2 0x3B23 JUMP JUMPDEST PUSH2 0x4CEA DUP4 DUP6 PUSH2 0x5241 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x20 DUP1 DUP4 ADD MLOAD DUP3 MSTORE DUP3 MLOAD SWAP1 DUP3 ADD MSTORE SWAP3 POP SWAP1 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x0 SWAP1 PUSH2 0x2BFE SWAP1 PUSH3 0xF4240 SWAP1 PUSH2 0x17B0 SWAP1 DUP6 SWAP1 PUSH9 0x10000000000000000 SWAP1 DIV PUSH4 0xFFFFFFFF SWAP1 DUP2 AND SWAP1 PUSH2 0x3AA6 AND JUMP JUMPDEST PUSH1 0xB SLOAD PUSH1 0x0 SWAP1 DUP2 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x4DAB JUMPI PUSH1 0xA SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD PUSH1 0xB SLOAD SWAP1 SWAP5 AND DUP4 MSTORE SWAP1 SWAP2 KECCAK256 SLOAD DUP7 MLOAD SWAP2 DUP8 ADD MLOAD PUSH1 0x16 SLOAD PUSH2 0x4DA4 SWAP5 SWAP4 PUSH4 0xFFFFFFFF DUP1 DUP14 AND SWAP4 SWAP1 DUP13 AND SWAP3 PUSH2 0x3510 JUMP JUMPDEST SWAP1 POP PUSH2 0x4DFA JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD PUSH1 0xB SLOAD SWAP1 SWAP5 AND DUP4 MSTORE SWAP1 SWAP2 KECCAK256 SLOAD DUP7 MLOAD SWAP2 DUP8 ADD MLOAD PUSH1 0x16 SLOAD PUSH2 0x4DF7 SWAP5 SWAP4 PUSH4 0xFFFFFFFF DUP1 DUP13 AND SWAP4 SWAP1 DUP14 AND SWAP3 PUSH2 0x3510 JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH2 0x4E0B PUSH3 0xF4240 PUSH2 0x17B0 DUP6 DUP5 PUSH2 0x3AA6 JUMP JUMPDEST SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x4E23 PUSH2 0x53F1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x4E31 PUSH2 0x52FE JUMP JUMPDEST SWAP6 POP SWAP6 POP PUSH2 0x4E44 DUP12 DUP12 PUSH1 0x0 DUP1 DUP10 DUP15 PUSH2 0x466A JUMP JUMPDEST SWAP2 SWAP6 POP SWAP4 POP SWAP2 POP DUP4 ISZERO ISZERO PUSH2 0x4EA2 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5A45524F5F5441524745545F414D4F554E5400000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x4EAB DUP11 PUSH2 0x2C38 JUMP JUMPDEST SWAP1 POP DUP1 DUP5 LT PUSH2 0x4F04 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5441524745545F414D4F554E545F544F4F5F48494748000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5448 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ ISZERO PUSH2 0x4F7F JUMPI CALLVALUE DUP10 EQ PUSH2 0x4F7A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4554485F414D4F554E545F4D49534D41544348000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x5081 JUMP JUMPDEST CALLVALUE ISZERO DUP1 ISZERO PUSH2 0x502B JUMPI POP DUP9 PUSH2 0x5028 PUSH2 0x4F95 DUP14 PUSH2 0x2C38 JUMP JUMPDEST DUP14 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x4FF0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x5004 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x501A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x3D47 AND JUMP JUMPDEST LT ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x5081 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F414D4F554E540000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x508A DUP12 PUSH2 0x3F8C JUMP JUMPDEST PUSH2 0x509A DUP2 DUP6 PUSH4 0xFFFFFFFF PUSH2 0x3D47 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE PUSH1 0xC SWAP1 MSTORE KECCAK256 SLOAD PUSH2 0x50CF SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0x3B2A AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE DUP6 ISZERO PUSH2 0x511A JUMPI PUSH1 0xA SLOAD PUSH1 0xB SLOAD PUSH2 0x510D SWAP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 DUP2 AND SWAP2 AND PUSH1 0x0 DUP1 PUSH2 0x4B7B JUMP JUMPDEST DUP1 MLOAD PUSH1 0x12 SSTORE PUSH1 0x20 ADD MLOAD PUSH1 0x13 SSTORE JUMPDEST POP SWAP2 SWAP10 SWAP2 SWAP9 POP SWAP1 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0x8000000000000000000000000000000000000000000000000000000000000000 DUP2 LT PUSH2 0x5154 JUMPI INVALID JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP5 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 SWAP1 MSTORE DUP1 DUP3 ADD DUP4 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP8 AND SWAP3 DUP9 DUP3 AND SWAP3 SWAP2 DUP11 AND SWAP2 PUSH32 0x276856B36CBC45526A0BA64F44611557A2A8B68662C5388E9FE6D72E86E1C8CB SWAP2 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG4 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x51BF DUP7 DUP7 DUP7 DUP7 PUSH2 0x3EEF JUMP JUMPDEST PUSH2 0x51C8 DUP6 PUSH2 0x2125 JUMP JUMPDEST SWAP2 POP DUP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x18160DDD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x5208 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x521C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x5232 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 POP PUSH2 0x235A DUP3 DUP3 DUP8 PUSH2 0x3E8F JUMP JUMPDEST PUSH2 0x5249 PUSH2 0x53F1 JUMP JUMPDEST PUSH20 0x14484BFEEBC29F863424B06F3529A051A31BE599 DUP3 GT ISZERO PUSH2 0x529B JUMPI PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH13 0xC9F2C9CD04674EDEA40000000 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 DUP6 DIV DUP5 DUP2 ISZERO ISZERO PUSH2 0x5291 JUMPI INVALID JUMPDEST DIV SWAP1 MSTORE SWAP1 POP PUSH2 0x2BFE JUMP JUMPDEST PUSH13 0xC9F2C9CD04674EDEA40000000 DUP4 GT ISZERO PUSH2 0x52E8 JUMPI PUSH1 0x40 DUP1 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH13 0xC9F2C9CD04674EDEA40000000 DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH13 0xC9F2C9CD04674EDEA40000000 DUP6 MUL DUP2 ISZERO ISZERO PUSH2 0x5291 JUMPI INVALID JUMPDEST POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5308 PUSH2 0x53F1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5312 PUSH2 0x53F1 JUMP JUMPDEST PUSH2 0x531A PUSH2 0x53F1 JUMP JUMPDEST PUSH2 0x5322 PUSH2 0x397A JUMP JUMPDEST SWAP3 POP DUP3 PUSH1 0x11 SLOAD EQ ISZERO PUSH2 0x5350 JUMPI PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0xF SLOAD DUP2 MSTORE PUSH1 0x10 SLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 SWAP6 POP SWAP4 POP PUSH2 0x3298 JUMP JUMPDEST PUSH2 0x5358 PUSH2 0x4308 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0xF SLOAD DUP1 DUP3 MSTORE PUSH1 0x10 SLOAD PUSH1 0x20 DUP4 ADD MSTORE DUP3 MLOAD SWAP3 SWAP5 POP SWAP1 SWAP3 POP EQ DUP1 ISZERO PUSH2 0x538C JUMPI POP DUP1 PUSH1 0x20 ADD MLOAD DUP3 PUSH1 0x20 ADD MLOAD EQ JUMPDEST ISZERO PUSH2 0x539D JUMPI PUSH1 0x0 DUP3 SWAP5 POP SWAP5 POP PUSH2 0x3298 JUMP JUMPDEST DUP2 MLOAD PUSH1 0xF SSTORE PUSH1 0x20 DUP3 ADD MLOAD PUSH1 0x10 SSTORE PUSH1 0x11 DUP4 SWAP1 SSTORE PUSH2 0x53B7 PUSH2 0x3994 JUMP JUMPDEST POP PUSH1 0x1 SWAP5 SWAP1 SWAP4 POP SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xA0 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE SWAP2 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x60 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 SWAP1 PUSH1 0x20 DUP3 MUL DUP1 CODESIZE DUP4 CODECOPY POP SWAP2 SWAP3 SWAP2 POP POP JUMP STOP MSTORE8 PUSH16 0x7672796E53776170436F6E7665727465 PUSH19 0x55706772616465720000000000000000000000 STOP STOP STOP STOP STOP STOP 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee GASLIMIT MSTORE MSTORE 0x5f COINBASE NUMBER NUMBER GASLIMIT MSTORE8 MSTORE8 0x5f DIFFICULTY GASLIMIT 0x4e 0x49 GASLIMIT DIFFICULTY STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP GASLIMIT MSTORE MSTORE 0x5f 0x49 0x4e JUMP COINBASE 0x4c 0x49 DIFFICULTY 0x5f MSTORE GASLIMIT MSTORE8 GASLIMIT MSTORE JUMP GASLIMIT 0x5f NUMBER 0x4f SSTORE 0x4e SLOAD STOP STOP STOP STOP STOP STOP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 0xa8 0xe9 0xb9 0xbc 0xc5 0xf6 NUMBER SIGNEXTEND 0xca CALLVALUE 0x5d MSIZE DUP9 0xd4 RETURNDATASIZE 0xcc 0x2b 0xb8 DUP2 0xc5 0xef BYTE SWAP12 0x4e 0xeb PUSH15 0xD4019EA859C8002900000000000000 ", + "sourceMap": "101:1297:37:-;;;249:1:68;362:32;;;;2700:30:4;;;-1:-1:-1;;;;;;2993:31:4;;;2354:42:25;;;-1:-1:-1;;2354:42:25;;;;;;2439:5;2405:39;;200:177:37;5:2:-1;;;;30:1;27;20:12;5:2;200:177:37;;;;;;;;;;;;;;;;;;;;;;;;;488:5:66;:18;;-1:-1:-1;;;;;;488:18:66;496:10;488:18;;;200:177:37;;;;;;;;;;;475:23:72;200:177:37;475:13:72;;;;:23;:::i;:::-;-1:-1:-1;1931:8:60;:39;;-1:-1:-1;;;;;1931:39:60;;;-1:-1:-1;;;;;;1931:39:60;;;;;;;;1974:12;:43;;;;;;;;5395:7:4;475:23:72;5395:7:4;475:13:72;;;;:23;:::i;:::-;5457:17:4;6403:35;5457:17;6403:19;;;;:35;:::i;:::-;-1:-1:-1;;5480:6:4;:16;;-1:-1:-1;;;;;5480:16:4;;;-1:-1:-1;;;;;;5480:16:4;;;;;;;;;;-1:-1:-1;5500:16:4;:36;;;;;;;;-1:-1:-1;;5500:36:4;;;;;;;;;-1:-1:-1;101:1297:37;;-1:-1:-1;;;;;;;;101:1297:37;553:117:72;-1:-1:-1;;;;;620:22:72;;;;612:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;553:117;:::o;6493:156:4:-;1826:7;6571:43;;;;;6563:82;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;101:1297:37;;;;;;;" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "6080604052600436106103495763ffffffff60e060020a6000350416625e319c81146103e7578063024c7ec71461041a5780630337e3fb146104345780630a55fb3d146104655780630c7d5cd81461048e5780630e53aae9146104bc5780630f0fb40714610511578063119b90cd1461053b57806312c2aca41461056857806316912f961461057d57806319b64015146105925780631cfab290146105aa5780631e1401f8146105cb57806321e6b53d1461060e57806322f3e2d41461062f5780632630c12f146106445780632bd3c107146106595780632bf0c9851461067a5780632fe8a6ad1461069b57806338a5e016146106b0578063395900d4146106c55780633beb26c4146106ef5780633e8ff43f14610707578063467494681461073357806349d10b641461074e5780634af80f0e1461076357806354fd4d501461078457806355776b77146107995780635768adcf146107b3578063579cd3ca146107d457806359cd4eec146107e95780635e35359e1461081357806361cd756e1461083d57806367b6d57c1461085257806369067d9514610873578063690d83201461089757806369d1354a146108b85780636a49d2c4146108d057806371f52bf3146108fa57806379ba50971461090f5780637b103999146109245780638da5cb5b1461093957806394c275ad1461094e57806398a71dcb146109635780639b99a8e214610984578063a32bff4414610999578063af94b8d8146109ae578063b4a176d3146109d8578063bf754558146109ed578063bf7da6ba14610a02578063c3321fb014610a26578063c45d3d9214610a3b578063cdc91c6914610a50578063d031370b14610a65578063d18e81b314610a7d578063d260529c14610a92578063d3fb73b414610aa7578063d4ee1d9014610abc578063d55ec69714610ad1578063d64c5a1a14610ae6578063d66bd52414610b11578063d895951214610b32578063db2830a414610b53578063dc75eb9a14610b68578063dc8de37914610b7d578063e38192e314610b9e578063e8104af914610bc5578063e8dc12ff14610bda578063ec2240f514610c04578063ecbca55d14610c19578063f1ff40d914610c37578063f2fde38b14610c4f578063f9cddde214610c70578063fc0c546a14610c85575b60008051602061544883398151915260005260086020527f353c2eb9e53a4a4a6d45d72082ff2e9dc829d1125618772a83eb0e7f86632c43546601000000000000900460ff1615156103e5576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f5245534552564500000000000000000000000000604482015290519081900360640190fd5b005b3480156103f357600080fd5b50610408600160a060020a0360043516610c9a565b60408051918252519081900360200190f35b34801561042657600080fd5b506103e56004351515610cc3565b34801561044057600080fd5b50610449610d0b565b60408051600160a060020a039092168252519081900360200190f35b34801561047157600080fd5b5061047a610d1a565b604080519115158252519081900360200190f35b34801561049a57600080fd5b506104a3610d23565b6040805163ffffffff9092168252519081900360200190f35b3480156104c857600080fd5b506104dd600160a060020a0360043516610d2f565b6040805195865263ffffffff9094166020860152911515848401521515606084015215156080830152519081900360a00190f35b34801561051d57600080fd5b5061040860043560243560443560643560843560a43560c435610dca565b34801561054757600080fd5b506103e5600160a060020a0360043581169060243581169060443516610de7565b34801561057457600080fd5b5061047a611551565b34801561058957600080fd5b506103e561159a565b34801561059e57600080fd5b506104496004356115ae565b3480156105b657600080fd5b506104a3600160a060020a03600435166115da565b3480156105d757600080fd5b506105f5600160a060020a036004358116906024351660443561160c565b6040805192835260208301919091528051918290030190f35b34801561061a57600080fd5b506103e5600160a060020a0360043516611626565b34801561063b57600080fd5b5061047a61163a565b34801561065057600080fd5b5061044961166f565b34801561066557600080fd5b50610408600160a060020a036004351661168e565b34801561068657600080fd5b50610408600160a060020a03600435166116e3565b3480156106a757600080fd5b5061047a6117c6565b3480156106bc57600080fd5b506103e56117e7565b3480156106d157600080fd5b506103e5600160a060020a03600435811690602435166044356117f9565b3480156106fb57600080fd5b506103e5600435611894565b34801561071357600080fd5b5061071c611899565b6040805161ffff9092168252519081900360200190f35b34801561073f57600080fd5b506103e560043560243561189e565b34801561075a57600080fd5b506103e5611922565b34801561076f57600080fd5b506103e5600160a060020a0360043516611b82565b34801561079057600080fd5b5061071c611bb7565b610408600160a060020a0360043516602435604435611bbc565b3480156107bf57600080fd5b50610449600160a060020a0360043516612125565b3480156107e057600080fd5b506104a3612143565b3480156107f557600080fd5b506103e5600160a060020a036004351663ffffffff6024351661215b565b34801561081f57600080fd5b506103e5600160a060020a036004358116906024351660443561219c565b34801561084957600080fd5b506104496122b0565b34801561085e57600080fd5b506103e5600160a060020a03600435166122bf565b34801561087f57600080fd5b506105f5600160a060020a0360043516602435612362565b3480156108a357600080fd5b506103e5600160a060020a03600435166124bd565b3480156108c457600080fd5b506103e56004356125c2565b3480156108dc57600080fd5b506103e5600160a060020a036004351663ffffffff60243516612667565b34801561090657600080fd5b5061071c6126c6565b34801561091b57600080fd5b506103e56126d0565b34801561093057600080fd5b50610449612784565b34801561094557600080fd5b50610449612793565b34801561095a57600080fd5b506104a36127a2565b34801561096f57600080fd5b50610408600160a060020a03600435166127b6565b34801561099057600080fd5b5061071c6127c8565b3480156109a557600080fd5b506105f56127ce565b3480156109ba57600080fd5b506105f5600160a060020a03600435811690602435166044356127d7565b3480156109e457600080fd5b506103e561297b565b3480156109f957600080fd5b5061047a6129a7565b348015610a0e57600080fd5b506103e5600160a060020a03600435166024356129ac565b348015610a3257600080fd5b506104086129f4565b348015610a4757600080fd5b506104496129fa565b348015610a5c57600080fd5b506103e5612a09565b348015610a7157600080fd5b50610449600435612a62565b348015610a8957600080fd5b50610408612a8a565b348015610a9e57600080fd5b5061047a612a90565b348015610ab357600080fd5b50610449612a95565b348015610ac857600080fd5b50610449612aa4565b348015610add57600080fd5b506103e5612ab3565b348015610af257600080fd5b50610afb612ba8565b6040805160ff9092168252519081900360200190f35b348015610b1d57600080fd5b506104dd600160a060020a0360043516612bad565b348015610b3e57600080fd5b50610408600160a060020a0360043516612bf3565b348015610b5f57600080fd5b506105f5612c04565b348015610b7457600080fd5b50610449612c29565b348015610b8957600080fd5b50610408600160a060020a0360043516612c38565b348015610baa57600080fd5b50610408600160a060020a0360043516602435604435612c61565b348015610bd157600080fd5b50610408612fc6565b610408600160a060020a036004358116906024358116906044359060643581169060843516612fcc565b348015610c1057600080fd5b506105f561321f565b348015610c2557600080fd5b506103e563ffffffff6004351661329f565b348015610c4357600080fd5b506103e5600435613394565b348015610c5b57600080fd5b506103e5600160a060020a0360043516613399565b348015610c7c57600080fd5b506105f5613429565b348015610c9157600080fd5b50610449613432565b600081610ca681613441565b5050600160a060020a03166000908152600c602052604090205490565b610ccb6134c0565b60038054911515740100000000000000000000000000000000000000000274ff000000000000000000000000000000000000000019909216919091179055565b600a54600160a060020a031681565b60155460ff1681565b60095463ffffffff1681565b6000806000806000610d3f6153c3565b50505050600160a060020a03929092166000908152600860209081526040808320815160a081018352815480825260019092015463ffffffff811694820185905260ff64010000000082048116151594830194909452650100000000008104841615156060830152660100000000000090049092161515608090920182905295919450919250829190565b6000610ddb88888888888888613510565b98975050505050505050565b6000806000806000610df7613588565b610dff6134c0565b87610e0981613441565b87610e13816135e5565b87610e1d816135e5565b89610e2781613646565b89610e3181613646565b600554604080517f8da5cb5b00000000000000000000000000000000000000000000000000000000815290513092600160a060020a031691638da5cb5b9160048083019260209291908290030181600087803b158015610e9057600080fd5b505af1158015610ea4573d6000803e3d6000fd5b505050506040513d6020811015610eba57600080fd5b5051600160a060020a031614610f1a576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f414e43484f525f4e4f545f4f574e4544000000000000000000000000604482015290519081900360640190fd5b610f437f436861696e6c696e6b4f7261636c6557686974656c69737400000000000000006136a6565b995089600160a060020a0316633af32abf8d6040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b158015610fa057600080fd5b505af1158015610fb4573d6000803e3d6000fd5b505050506040513d6020811015610fca57600080fd5b50511515611022576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f494e56414c49445f4f5241434c450000000000000000000000000000604482015290519081900360640190fd5b89600160a060020a0316633af32abf8c6040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b15801561107d57600080fd5b505af1158015611091573d6000803e3d6000fd5b505050506040513d60208110156110a757600080fd5b505115156110ff576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f494e56414c49445f4f5241434c450000000000000000000000000000604482015290519081900360640190fd5b61110761373e565b600a8054600160a060020a031916600160a060020a038f1617905560078054600090811061113157fe5b600091825260209091200154600160a060020a038e81169116141561118f5760078054600190811061115f57fe5b600091825260209091200154600b8054600160a060020a031916600160a060020a039092169190911790556111ca565b60078054600090811061119e57fe5b600091825260209091200154600b8054600160a060020a031916600160a060020a039092169190911790555b6111f37f436f6e766572746572466163746f7279000000000000000000000000000000006136a6565b600160a060020a031663c977aed2611209611899565b6040518263ffffffff1660e060020a028152600401808261ffff1661ffff168152602001915050602060405180830381600087803b15801561124a57600080fd5b505af115801561125e573d6000803e3d6000fd5b505050506040513d602081101561127457600080fd5b8101908080519060200190929190505050985088600160a060020a0316631b27444e8e600b60009054906101000a9004600160a060020a03168f8f6040518563ffffffff1660e060020a0281526004018085600160a060020a0316600160a060020a0316815260200184600160a060020a0316600160a060020a0316815260200183600160a060020a0316600160a060020a0316815260200182600160a060020a0316600160a060020a03168152602001945050505050602060405180830381600087803b15801561134557600080fd5b505af1158015611359573d6000803e3d6000fd5b505050506040513d602081101561136f57600080fd5b5051600980546bffffffffffffffffffffffff166c01000000000000000000000000600160a060020a0393841681029190911791829055600a54600b54604080517fae818004000000000000000000000000000000000000000000000000000000008152928616600484015290851660248301528051929093049093169263ae8180049260448083019391928290030181600087803b15801561141157600080fd5b505af1158015611425573d6000803e3d6000fd5b505050506040513d604081101561143b57600080fd5b5080516020909101516010819055600f82905560129190915560135561145f61397a565b601155600a5461147790600160a060020a0316610c9a565b600a5490985061148f90600160a060020a0316612c38565b600b549097506114a790600160a060020a0316612c38565b9550868814156114d25760008811806114c05750600086115b156114cd576114cd613994565b6114fb565b6000881180156114e25750600087115b80156114ee5750600086115b156114fb576114fb613994565b600554600190600160a060020a0316611512611899565b61ffff167f6b08c2e2c9969e55a647a764db9b554d64dc42f1a704da11a6d5b129ad163f2c60405160405180910390a450505050505050505050505050565b60008051602061544883398151915260005260086020527f353c2eb9e53a4a4a6d45d72082ff2e9dc829d1125618772a83eb0e7f86632c43546601000000000000900460ff1690565b6115a26134c0565b6015805460ff19169055565b60006007828154811015156115bf57fe5b600091825260209091200154600160a060020a031692915050565b6000816115e681613441565b5050600160a060020a031660009081526008602052604090206001015463ffffffff1690565b60008061161a8585856127d7565b91509150935093915050565b61162e6134c0565b611637816122bf565b50565b6000611644613a0c565b801561166a57506009546c010000000000000000000000009004600160a060020a031615155b905090565b6009546c010000000000000000000000009004600160a060020a031681565b60008161169a81613441565b6116dc6116a684612c38565b600160a060020a0385166000908152600c60205260409020546116d090601363ffffffff613aa616565b9063ffffffff613b2a16565b9392505050565b600080600080600085600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561172957600080fd5b505af115801561173d573d6000803e3d6000fd5b505050506040513d602081101561175357600080fd5b5051600160a060020a038088166000908152600e602052604090205491955016925061177e83612c38565b600160a060020a0384166000908152600c602052604090205490925090506117bc816117b0848763ffffffff613aa616565b9063ffffffff613b8716565b9695505050505050565b60035474010000000000000000000000000000000000000000900460ff1681565b6117ef6134c0565b6117f7612a09565b565b6118016134c0565b600554604080517f5e35359e000000000000000000000000000000000000000000000000000000008152600160a060020a03868116600483015285811660248301526044820185905291519190921691635e35359e91606480830192600092919082900301818387803b15801561187757600080fd5b505af115801561188b573d6000803e3d6000fd5b50505050505050565b601755565b600290565b6118a66134c0565b8160146000600760008154811015156118bb57fe5b6000918252602080832090910154600160a060020a03168352820192909252604001812091909155600780548392601492909160019081106118f957fe5b6000918252602080832090910154600160a060020a031683528201929092526040019020555050565b60008054600160a060020a0316331480611957575060035474010000000000000000000000000000000000000000900460ff16155b151561199b576040805160e560020a62461bcd0281526020600482015260116024820152600080516020615468833981519152604482015290519081900360640190fd5b6119c47f436f6e74726163745265676973747279000000000000000000000000000000006136a6565b600254909150600160a060020a038083169116148015906119ed5750600160a060020a03811615155b1515611a43576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e56414c49445f5245474953545259000000000000000000000000604482015290519081900360640190fd5b604080517fbb34534c0000000000000000000000000000000000000000000000000000000081527f436f6e747261637452656769737472790000000000000000000000000000000060048201529051600091600160a060020a0384169163bb34534c9160248082019260209290919082900301818787803b158015611ac757600080fd5b505af1158015611adb573d6000803e3d6000fd5b505050506040513d6020811015611af157600080fd5b5051600160a060020a03161415611b52576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e56414c49445f5245474953545259000000000000000000000000604482015290519081900360640190fd5b6002805460038054600160a060020a03808416600160a060020a0319928316179092559091169216919091179055565b611b8a6134c0565b80611b94816135e5565b5060068054600160a060020a031916600160a060020a0392909216919091179055565b602081565b6000806000806000611bcc613bf5565b6002600455611bd9613c4f565b87611be381613441565b87611bed81613cad565b87611bf781613cad565b600160a060020a038b1660008051602061544883398151915214611c1c573415611c20565b8934145b1515611c76576040805160e560020a62461bcd02815260206004820152601760248201527f4552525f4554485f414d4f554e545f4d49534d41544348000000000000000000604482015290519081900360640190fd5b611c7e613d05565b600160a060020a038b166000805160206154488339815191521415611d205760008051602061544883398151915260005260086020527f353c2eb9e53a4a4a6d45d72082ff2e9dc829d1125618772a83eb0e7f86632c4254611ce6903463ffffffff613d4716565b60008051602061544883398151915260005260086020527f353c2eb9e53a4a4a6d45d72082ff2e9dc829d1125618772a83eb0e7f86632c42555b600160a060020a038b166000908152600c602052604090205460155490975060ff1615611de957600160a060020a038b166000908152601460205260409020541580611d935750600160a060020a038b16600090815260146020526040902054611d90888c63ffffffff613b2a16565b11155b1515611de9576040805160e560020a62461bcd02815260206004820152601e60248201527f4552525f4d41585f5354414b45445f42414c414e43455f524541434845440000604482015290519081900360640190fd5b600160a060020a03808c166000908152600d602090815260408083205481517f18160ddd00000000000000000000000000000000000000000000000000000000815291519416995089936318160ddd93600480840194938390030190829087803b158015611e5657600080fd5b505af1158015611e6a573d6000803e3d6000fd5b505050506040513d6020811015611e8057600080fd5b50519450600160a060020a038b1660008051602061544883398151915214611eae57611eae8b33308d613da7565b600160a060020a038b16600090815260086020526040902054611ed7908b63ffffffff613b2a16565b600160a060020a038c16600090815260086020526040902055611f00878b63ffffffff613b2a16565b600160a060020a038c166000908152600c60205260408120919091559350861580611f29575084155b15611f3657899350611f4d565b611f4a876117b08c8863ffffffff613aa616565b93505b88841015611fa5576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f52455455524e5f544f4f5f4c4f570000000000000000000000000000604482015290519081900360640190fd5b600554604080517fc6c3bbe6000000000000000000000000000000000000000000000000000000008152600160a060020a038981166004830152336024830152604482018890529151919092169163c6c3bbe691606480830192600092919082900301818387803b15801561201957600080fd5b505af115801561202d573d6000803e3d6000fd5b50505050612039613994565b600160a060020a038b16337f4a1a2a6176e9646d9e3157f7c2ab3c499f18337c0b0828cfb28e0a61de4a11f78c6120768b8263ffffffff613b2a16565b6120868a8a63ffffffff613b2a16565b60408051938452602084019290925282820152519081900360600190a36120bd866120b7878763ffffffff613b2a16565b8d613e8f565b612112600760008154811015156120d057fe5b60009182526020909120015460078054600160a060020a039092169160019081106120f757fe5b6000918252602082200154600160a060020a03169080613eef565b5050600160045550979650505050505050565b600160a060020a039081166000908152600d60205260409020541690565b60095468010000000000000000900463ffffffff1681565b8161216581613441565b50600160a060020a03919091166000908152600860205260409020600101805463ffffffff191663ffffffff909216919091179055565b60006121a6613bf5565b60026004556121b36134c0565b6121ca6000805160206154288339815191526136a6565b600160a060020a0385166000908152600860205260409020600101549091506601000000000000900460ff161580612207575061220561163a565b155b8061221f5750600054600160a060020a038281169116145b1515612263576040805160e560020a62461bcd0281526020600482015260116024820152600080516020615468833981519152604482015290519081900360640190fd5b61226e848484613f5b565b600160a060020a0384166000908152600860205260409020600101546601000000000000900460ff16156122a5576122a584613f8c565b505060016004555050565b600354600160a060020a031681565b6122c76134c0565b6000805160206154288339815191526122df81614080565b600554604080517ff2fde38b000000000000000000000000000000000000000000000000000000008152600160a060020a0385811660048301529151919092169163f2fde38b91602480830192600092919082900301818387803b15801561234657600080fd5b505af115801561235a573d6000803e3d6000fd5b505050505050565b6000806000806000806000806000808b600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156123af57600080fd5b505af11580156123c3573d6000803e3d6000fd5b505050506040513d60208110156123d957600080fd5b5051600160a060020a03808e166000908152600e60209081526040808320549093168252600c905220549098509650878b10156124a457600a54600160a060020a03166000908152600c602052604090205461243c90601463ffffffff613aa616565b600a5490965061245490600160a060020a031661168e565b9450848610612464578486612467565b85855b9094509250612480886117b08d8a63ffffffff613aa616565b9150612496836117b0848763ffffffff613aa616565b9950508881039750886124ae565b9598506000975088955b50505050505050509250929050565b60006124c7613bf5565b60026004556124d46134c0565b6000805160206154488339815191526124ec81613441565b6125036000805160206154288339815191526136a6565b915061250d61163a565b15806125265750600054600160a060020a038381169116145b151561256a576040805160e560020a62461bcd0281526020600482015260116024820152600080516020615468833981519152604482015290519081900360640190fd5b604051600160a060020a03841690303180156108fc02916000818181858888f193505050501580156125a0573d6000803e3d6000fd5b506125b8600080516020615448833981519152613f8c565b5050600160045550565b6125ca6134c0565b620186a0811115612625576040805160e560020a62461bcd02815260206004820152601e60248201527f4552525f494e56414c49445f44594e414d49435f4645455f464143544f520000604482015290519081900360640190fd5b601654604080519182526020820183905280517f382fd3516344712a511dcd464ff8e6ab54139d6a28f64087a3253353ee7a56799281900390910190a1601655565b60026126716127c8565b61ffff16106126b8576040805160e560020a62461bcd0281526020600482015260196024820152600080516020615488833981519152604482015290519081900360640190fd5b6126c282826140d6565b5050565b600061166a6127c8565b600154600160a060020a03163314612720576040805160e560020a62461bcd0281526020600482015260116024820152600080516020615468833981519152604482015290519081900360640190fd5b60015460008054604051600160a060020a0393841693909116917f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91a36001805460008054600160a060020a0319908116600160a060020a03841617909155169055565b600254600160a060020a031681565b600054600160a060020a031681565b600954640100000000900463ffffffff1681565b60146020526000908152604090205481565b60075490565b600f5460105482565b6000806000806127e56153f1565b6000806000806127f3613c4f565b6127fc8c613441565b6128058b613441565b600160a060020a038c8116908c161415612869576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f53414d455f534f555243455f54415247455400000000000000000000604482015290519081900360640190fd5b61287161397a565b601154141561291857600f604080519081016040529081600082015481526020016001820154815250509450600860008d600160a060020a0316600160a060020a0316815260200190815260200160002060010160009054906101000a900463ffffffff169650600860008c600160a060020a0316600160a060020a0316815260200190815260200160002060010160009054906101000a900463ffffffff169550612958565b612920614308565b945061292b85614540565b600a549195509350600160a060020a038d81169116141561295157839650829550612958565b8296508395505b6129668c8c8989898f61466a565b919e919d50909b505050505050505050505050565b6129836134c0565b60035460028054600160a060020a031916600160a060020a03909216919091179055565b600181565b6129b46134c0565b6000805160206154288339815191526129cc81614080565b826129d681613441565b5050600160a060020a039091166000908152600c6020526040902055565b60115481565b600654600160a060020a031681565b6001612a136127c8565b61ffff1611612a5a576040805160e560020a62461bcd0281526020600482015260196024820152600080516020615488833981519152604482015290519081900360640190fd5b6117f7614806565b6007805482908110612a7057fe5b600091825260209091200154600160a060020a0316905081565b60175481565b600190565b600554600160a060020a031681565b600154600160a060020a031681565b6000612abd6134c0565b612ad46000805160206154288339815191526136a6565b600554909150600090600160a060020a0316612aee611899565b61ffff167f6b08c2e2c9969e55a647a764db9b554d64dc42f1a704da11a6d5b129ad163f2c60405160405180910390a4612b2781613399565b604080517f90f58c96000000000000000000000000000000000000000000000000000000008152602060048201529051600160a060020a038316916390f58c9691602480830192600092919082900301818387803b158015612b8857600080fd5b505af1158015612b9c573d6000803e3d6000fd5b505050506116376126d0565b601490565b6008602052600090815260409020805460019091015463ffffffff81169060ff640100000000820481169165010000000000810482169166010000000000009091041685565b6000612bfe82612c38565b92915050565b600080612c0f6153f1565b612c17614308565b80516020909101519094909350915050565b600b54600160a060020a031681565b600081612c4481613441565b5050600160a060020a031660009081526008602052604090205490565b600080600080600080612c72613bf5565b6002600455612c7f613c4f565b88612c89816148d2565b88612c9381613cad565b88612c9d81613cad565b612ca5613d05565b8b600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015612ce357600080fd5b505af1158015612cf7573d6000803e3d6000fd5b505050506040513d6020811015612d0d57600080fd5b50519750612d1b8c8c612362565b50965089871015612d76576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f52455455524e5f544f4f5f4c4f570000000000000000000000000000604482015290519081900360640190fd5b600e60008d600160a060020a0316600160a060020a0316815260200190815260200160002060009054906101000a9004600160a060020a03169550600560009054906101000a9004600160a060020a0316600160a060020a031663f6b911bc8d338e6040518463ffffffff1660e060020a0281526004018084600160a060020a0316600160a060020a0316815260200183600160a060020a0316600160a060020a031681526020018281526020019350505050600060405180830381600087803b158015612e4357600080fd5b505af1158015612e57573d6000803e3d6000fd5b505050600160a060020a038716600090815260086020526040902054612e8491508863ffffffff613d4716565b600160a060020a038716600090815260086020908152604080832093909355600c90522054612eb9908863ffffffff613d4716565b600160a060020a0387166000818152600c602052604090208290559095506000805160206154488339815191521415612f1f57604051339088156108fc029089906000818181858888f19350505050158015612f19573d6000803e3d6000fd5b50612f2a565b612f2a863389614943565b612f32613994565b612f42888c63ffffffff613d4716565b60408051898152602081018890528082018390529051919550600160a060020a0388169133917fbc7d19d505c7ec4db83f3b51f19fb98c4c8a99922e7839d1ee608dfbee29501b919081900360600190a3612f9e8c8588613e8f565b612fb1600760008154811015156120d057fe5b50506001600455509298975050505050505050565b60165481565b6000612fd6613bf5565b60026004557f536f7672796e537761704e6574776f726b00000000000000000000000000000061300581614080565b600160a060020a038781169087161415613069576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f53414d455f534f555243455f54415247455400000000000000000000604482015290519081900360640190fd5b600654600160a060020a031615806131ac5750600654604080517f3af32abf000000000000000000000000000000000000000000000000000000008152600160a060020a03878116600483015291519190921691633af32abf9160248083019260209291908290030181600087803b1580156130e457600080fd5b505af11580156130f8573d6000803e3d6000fd5b505050506040513d602081101561310e57600080fd5b505180156131ac5750600654604080517f3af32abf000000000000000000000000000000000000000000000000000000008152600160a060020a03868116600483015291519190921691633af32abf9160248083019260209291908290030181600087803b15801561317f57600080fd5b505af1158015613193573d6000803e3d6000fd5b505050506040513d60208110156131a957600080fd5b50515b1515613202576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f4e4f545f57484954454c495354454400000000000000000000000000604482015290519081900360640190fd5b61320f87878787876149fa565b6001600455979650505050505050565b60008061322a6153f1565b600080613235614308565b925061324083614540565b915091506007600081548110151561325457fe5b600091825260209091200154600a54600160a060020a03908116911614156132895763ffffffff808316955081169350613298565b63ffffffff8082169550821693505b5050509091565b6132a76134c0565b60095463ffffffff64010000000090910481169082161115613313576040805160e560020a62461bcd02815260206004820152601a60248201527f4552525f494e56414c49445f434f4e56455253494f4e5f464545000000000000604482015290519081900360640190fd5b6009546040805163ffffffff6801000000000000000090930483168152918316602083015280517f81cd2ffb37dd237c0e4e2a3de5265fcf9deb43d3e7801e80db9f1ccfba7ee6009281900390910190a16009805463ffffffff90921668010000000000000000026bffffffff000000000000000019909216919091179055565b601155565b6133a16134c0565b600054600160a060020a0382811691161415613407576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f53414d455f4f574e4552000000000000000000000000000000000000604482015290519081900360640190fd5b60018054600160a060020a031916600160a060020a0392909216919091179055565b60125460135482565b600554600160a060020a031690565b600160a060020a0381166000908152600860205260409020600101546601000000000000900460ff161515611637576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f5245534552564500000000000000000000000000604482015290519081900360640190fd5b600054600160a060020a031633146117f7576040805160e560020a62461bcd0281526020600482015260116024820152600080516020615468833981519152604482015290519081900360640190fd5b60008080613534876135288c8963ffffffff613aa616565b9063ffffffff613aa616565b915061354a886135288b8863ffffffff613aa616565b9050818111156135765761356f816117b060146135288684038963ffffffff613aa616565b925061357b565b600092505b5050979650505050505050565b61359061163a565b156117f7576040805160e560020a62461bcd02815260206004820152600a60248201527f4552525f41435449564500000000000000000000000000000000000000000000604482015290519081900360640190fd5b600160a060020a038116301415611637576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f414444524553535f49535f53454c4600000000000000000000000000604482015290519081900360640190fd5b600160a060020a0381161515611637576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b600254604080517fbb34534c000000000000000000000000000000000000000000000000000000008152600481018490529051600092600160a060020a03169163bb34534c91602480830192602092919082900301818787803b15801561370c57600080fd5b505af1158015613720573d6000803e3d6000fd5b505050506040513d602081101561373657600080fd5b505192915050565b60006060600080600080600560009054906101000a9004600160a060020a0316955085600160a060020a0316636d3e313e6040518163ffffffff1660e060020a028152600401600060405180830381600087803b15801561379e57600080fd5b505af11580156137b2573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260208110156137db57600080fd5b8101908080516401000000008111156137f357600080fd5b8201602081018481111561380657600080fd5b815185602082028301116401000000008211171561382357600080fd5b505080516007549199501597509550600094505050505b8282101561235a5783156138b95785600160a060020a0316639cbf9e366040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561388657600080fd5b505af115801561389a573d6000803e3d6000fd5b505050506040513d60208110156138b057600080fd5b505190506138d4565b84828151811015156138c757fe5b9060200190602002015190505b80600d60006007858154811015156138e857fe5b600091825260208083209190910154600160a060020a03908116845290830193909352604090910190208054600160a060020a03191692909116919091179055600780548390811061393657fe5b6000918252602080832090910154600160a060020a038481168452600e90925260409092208054600160a060020a031916919092161790556001919091019061383a565b60006017546000141561398d574261166a565b5060175490565b60408051808201909152600f548152601054602082015260009081906139b990614540565b600a54600160a060020a039081166000908152600860205260408082206001908101805463ffffffff97881663ffffffff1991821617909155600b54909416835291200180549290931691161790555050565b600030600160a060020a0316600560009054906101000a9004600160a060020a0316600160a060020a0316638da5cb5b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015613a6b57600080fd5b505af1158015613a7f573d6000803e3d6000fd5b505050506040513d6020811015613a9557600080fd5b5051600160a060020a031614905090565b600080831515613ab95760009150613b23565b50828202828482811515613ac957fe5b0414613b1f576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b8091505b5092915050565b600082820183811015613b1f576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b600080808311613be1576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f4449564944455f42595f5a45524f0000000000000000000000000000604482015290519081900360640190fd5b8284811515613bec57fe5b04949350505050565b6004546001146117f7576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f5245454e5452414e4359000000000000000000000000000000000000604482015290519081900360640190fd5b613c5761163a565b15156117f7576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f494e4143544956450000000000000000000000000000000000000000604482015290519081900360640190fd5b60008111611637576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f5a45524f5f56414c5545000000000000000000000000000000000000604482015290519081900360640190fd5b60075460005b818110156126c257613d3f600782815481101515613d2557fe5b600091825260209091200154600160a060020a0316613f8c565b600101613d0b565b600081831015613da1576040805160e560020a62461bcd02815260206004820152600d60248201527f4552525f554e444552464c4f5700000000000000000000000000000000000000604482015290519081900360640190fd5b50900390565b604080517f7472616e7366657246726f6d28616464726573732c616464726573732c75696e81527f74323536290000000000000000000000000000000000000000000000000000006020808301919091528251918290036025018220600160a060020a038088166024850152861660448401526064808401869052845180850390910181526084909301909352810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1990931692909217909152613e89908590614aed565b50505050565b600160a060020a038082166000818152600c6020908152604091829020548251908152908101869052815192938716927f77f29993cf2c084e726f7e802da0719d6a0ade3e204badc7a3ffd57ecb768c24929181900390910190a3505050565b613ef76153f1565b613f0385858585614b7b565b805160208083015160408051938452918301528051929350600160a060020a0380881693908916927f77f29993cf2c084e726f7e802da0719d6a0ade3e204badc7a3ffd57ecb768c2492908290030190a35050505050565b613f636134c0565b82613f6d81613646565b82613f7781613646565b83613f81816135e5565b61235a868686614943565b80613f9681613441565b600160a060020a0382166000805160206154488339815191521415613fd657600160a060020a0382166000908152600860205260409020303190556126c2565b604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a038416916370a082319160248083019260209291908290030181600087803b15801561403757600080fd5b505af115801561404b573d6000803e3d6000fd5b505050506040513d602081101561406157600080fd5b5051600160a060020a0383166000908152600860205260409020555050565b614089816136a6565b600160a060020a03163314611637576040805160e560020a62461bcd0281526020600482015260116024820152600080516020615468833981519152604482015290519081900360640190fd5b60006140e06134c0565b6140e8613588565b826140f281613646565b836140fc816135e5565b8361410681614c43565b600554600160a060020a0387811691161480159061414a5750600160a060020a0386166000908152600860205260409020600101546601000000000000900460ff16155b15156141a0576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f5245534552564500000000000000000000000000604482015290519081900360640190fd5b60095463ffffffff908116620f4240038116908616111561420b576040805160e560020a62461bcd02815260206004820152601a60248201527f4552525f494e56414c49445f524553455256455f574549474854000000000000604482015290519081900360640190fd5b61ffff6142166127c8565b61ffff161061425d576040805160e560020a62461bcd0281526020600482015260196024820152600080516020615488833981519152604482015290519081900360640190fd5b505050600160a060020a0390921660008181526008602052604081208181556001908101805466ff0000000000001963ffffffff80881663ffffffff1993841617919091166601000000000000179092556007805493840181559093527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c6889091018054600160a060020a03191690931790925560098054808416909401909216921691909117905550565b6143106153f1565b60008060008061431e6153f1565b6143266153f1565b600954600a54600b54604080517fb1772d7a000000000000000000000000000000000000000000000000000000008152600160a060020a0393841660048201529183166024830152516000938493849384936c010000000000000000000000009093049091169163b1772d7a9160448082019260609290919082900301818787803b1580156143b457600080fd5b505af11580156143c8573d6000803e3d6000fd5b505050506040513d60608110156143de57600080fd5b5080516020820151604090920151601154919c50919a5090985088111561441b5760408051908101604052808b81526020018a8152509a50614533565b60115461442661397a565b03965086151561444e5760408051808201909152600f54815260105460208201529a50614533565b61025887106144755760408051808201909152601254815260135460208201529a50614533565b604080518082018252600f548152601054602080830191825283518085019094526012548085526013549185019190915290519198509196506144bd9163ffffffff613aa616565b602086015187519195506144d7919063ffffffff613aa616565b92506145016144ec858963ffffffff613aa616565b6116d0856102588b900363ffffffff613aa616565b915061452461025861352887602001518960200151613aa690919063ffffffff16565b90506145308282614cb8565b9a505b5050505050505050505090565b600a54600160a060020a03166000818152600c602052604081205490918291908290819061456d9061168e565b600b5490925061458590600160a060020a031661168e565b90506145b07f536f7672796e53776170466f726d756c610000000000000000000000000000006136a6565b600160a060020a031663a11aa1b46145cf85601463ffffffff613aa616565b885160208a01516040805160e060020a63ffffffff87160281526004810194909452602484018890526044840187905260648401929092526084830152805160a4808401938290030181600087803b15801561462a57600080fd5b505af115801561463e573d6000803e3d6000fd5b505050506040513d604081101561465457600080fd5b5080516020909101519095509350505050915091565b60008080808063ffffffff891615156146a257600160a060020a038b1660009081526008602052604090206001015463ffffffff1698505b63ffffffff881615156146d457600160a060020a038a1660009081526008602052604090206001015463ffffffff1697505b6146dd8b61168e565b91506146e88a61168e565b90506147137f536f7672796e53776170466f726d756c610000000000000000000000000000006136a6565b604080517f94491fab0000000000000000000000000000000000000000000000000000000081526004810185905263ffffffff808d166024830152604482018590528b166064820152608481018990529051600160a060020a0392909216916394491fab9160a4808201926020929091908290030181600087803b15801561479a57600080fd5b505af11580156147ae573d6000803e3d6000fd5b505050506040513d60208110156147c457600080fd5b505194506147d185614d0d565b93506147e4846116d08c8c8c8c8b614d3d565b92506147f6858463ffffffff613d4716565b9450505096509650969350505050565b61480e6134c0565b60006148186127c8565b61ffff161161485f576040805160e560020a62461bcd0281526020600482015260196024820152600080516020615488833981519152604482015290519081900360640190fd5b600560009054906101000a9004600160a060020a0316600160a060020a03166379ba50976040518163ffffffff1660e060020a028152600401600060405180830381600087803b1580156148b257600080fd5b505af11580156148c6573d6000803e3d6000fd5b505050506117f7613d05565b600160a060020a038181166000908152600e6020526040902054161515611637576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f494e56414c49445f504f4f4c5f544f4b454e00000000000000000000604482015290519081900360640190fd5b604080517f7472616e7366657228616464726573732c75696e74323536290000000000000081528151908190036019018120600160a060020a038516602483015260448083018590528351808403909101815260649092019092526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19909316929092179091526149f5908490614aed565b505050565b6000806000614a07613c4f565b87614a1181613441565b87614a1b81613441565b614a268a8a8a614e16565b9094509250600160a060020a0389166000805160206154488339815191521415614a8657604051600160a060020a0387169085156108fc029086906000818181858888f19350505050158015614a80573d6000803e3d6000fd5b50614a91565b614a91898786614943565b614a9f8a8a898b888861512b565b600160a060020a03808b16600090815260086020526040808220600190810154938d16835291200154614adf918c918c9163ffffffff90811691166151b0565b509198975050505050505050565b614af5615408565b602060405190810160405280600181525090506020818351602085016000875af1801515614b2257600080fd5b50805115156149f5576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f5452414e534645525f4641494c454400000000000000000000000000604482015290519081900360640190fd5b614b836153f1565b600080614b8f8761168e565b9150614b9a8661168e565b905063ffffffff85161515614bce57600160a060020a03871660009081526008602052604090206001015463ffffffff1694505b63ffffffff84161515614c0057600160a060020a03861660009081526008602052604090206001015463ffffffff1693505b6040805180820190915280614c1e8363ffffffff808a1690613aa616565b8152602001614c368463ffffffff80891690613aa616565b9052979650505050505050565b60008163ffffffff16118015614c625750620f424063ffffffff821611155b1515611637576040805160e560020a62461bcd02815260206004820152601a60248201527f4552525f494e56414c49445f524553455256455f574549474854000000000000604482015290519081900360640190fd5b614cc06153f1565b614cc86153f1565b828410614ce057614cd98484615241565b9150613b23565b614cea8385615241565b604080518082019091526020808301518252825190820152925090505092915050565b600954600090612bfe90620f4240906117b090859068010000000000000000900463ffffffff90811690613aa616565b600b546000908190600160a060020a0388811691161415614dab57600a54600160a060020a039081166000908152600c6020908152604080832054600b54909416835290912054865191870151601654614da4949363ffffffff808d1693908c1692613510565b9050614dfa565b600a54600160a060020a039081166000908152600c6020908152604080832054600b54909416835290912054865191870151601654614df7949363ffffffff808c1693908d1692613510565b90505b614e0b620f42406117b08584613aa6565b979650505050505050565b6000806000614e236153f1565b600080600080614e316152fe565b95509550614e448b8b600080898e61466a565b91955093509150831515614ea2576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f5a45524f5f5441524745545f414d4f554e5400000000000000000000604482015290519081900360640190fd5b614eab8a612c38565b9050808410614f04576040805160e560020a62461bcd02815260206004820152601a60248201527f4552525f5441524745545f414d4f554e545f544f4f5f48494748000000000000604482015290519081900360640190fd5b600160a060020a038b166000805160206154488339815191521415614f7f57348914614f7a576040805160e560020a62461bcd02815260206004820152601760248201527f4552525f4554485f414d4f554e545f4d49534d41544348000000000000000000604482015290519081900360640190fd5b615081565b3415801561502b575088615028614f958d612c38565b8d600160a060020a03166370a08231306040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b158015614ff057600080fd5b505af1158015615004573d6000803e3d6000fd5b505050506040513d602081101561501a57600080fd5b50519063ffffffff613d4716565b10155b1515615081576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f494e56414c49445f414d4f554e540000000000000000000000000000604482015290519081900360640190fd5b61508a8b613f8c565b61509a818563ffffffff613d4716565b600160a060020a038b16600090815260086020908152604080832093909355600c905220546150cf908463ffffffff613b2a16565b600160a060020a038b166000908152600c6020526040902055851561511a57600a54600b5461510d91600160a060020a039081169116600080614b7b565b8051601255602001516013555b509199919850909650505050505050565b7f8000000000000000000000000000000000000000000000000000000000000000811061515457fe5b60408051848152602081018490528082018390529051600160a060020a038087169288821692918a16917f276856b36cbc45526a0ba64f44611557a2a8b68662c5388e9fe6d72e86e1c8cb9181900360600190a4505050505050565b6000806151bf86868686613eef565b6151c885612125565b915081600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561520857600080fd5b505af115801561521c573d6000803e3d6000fd5b505050506040513d602081101561523257600080fd5b5051905061235a828287613e8f565b6152496153f1565b7314484bfeebc29f863424b06f3529a051a31be59982111561529b57604080518082019091526c0c9f2c9cd04674edea40000000808252602082019085048481151561529157fe5b0490529050612bfe565b6c0c9f2c9cd04674edea400000008311156152e85760408051908101604052806c0c9f2c9cd04674edea400000008152602001846c0c9f2c9cd04674edea40000000850281151561529157fe5b5060408051808201909152918252602082015290565b60006153086153f1565b60006153126153f1565b61531a6153f1565b61532261397a565b92508260115414156153505760408051808201909152600f5481526010546020820152600095509350613298565b615358614308565b60408051808201909152600f548082526010546020830152825192945090925014801561538c575080602001518260200151145b1561539d5760008294509450613298565b8151600f55602082015160105560118390556153b7613994565b50600194909350915050565b6040805160a08101825260008082526020820181905291810182905260608101829052608081019190915290565b604080518082019091526000808252602082015290565b60206040519081016040528060019060208202803883395091929150505600536f7672796e53776170436f6e76657274657255706772616465720000000000000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee4552525f4143434553535f44454e4945440000000000000000000000000000004552525f494e56414c49445f524553455256455f434f554e5400000000000000a165627a7a72305820a8e9b9bcc5f6430bca345d5988d43dcc2bb881c5ef1a9b4eeb6ed4019ea859c80029", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x349 JUMPI PUSH4 0xFFFFFFFF PUSH1 0xE0 PUSH1 0x2 EXP PUSH1 0x0 CALLDATALOAD DIV AND PUSH3 0x5E319C DUP2 EQ PUSH2 0x3E7 JUMPI DUP1 PUSH4 0x24C7EC7 EQ PUSH2 0x41A JUMPI DUP1 PUSH4 0x337E3FB EQ PUSH2 0x434 JUMPI DUP1 PUSH4 0xA55FB3D EQ PUSH2 0x465 JUMPI DUP1 PUSH4 0xC7D5CD8 EQ PUSH2 0x48E JUMPI DUP1 PUSH4 0xE53AAE9 EQ PUSH2 0x4BC JUMPI DUP1 PUSH4 0xF0FB407 EQ PUSH2 0x511 JUMPI DUP1 PUSH4 0x119B90CD EQ PUSH2 0x53B JUMPI DUP1 PUSH4 0x12C2ACA4 EQ PUSH2 0x568 JUMPI DUP1 PUSH4 0x16912F96 EQ PUSH2 0x57D JUMPI DUP1 PUSH4 0x19B64015 EQ PUSH2 0x592 JUMPI DUP1 PUSH4 0x1CFAB290 EQ PUSH2 0x5AA JUMPI DUP1 PUSH4 0x1E1401F8 EQ PUSH2 0x5CB JUMPI DUP1 PUSH4 0x21E6B53D EQ PUSH2 0x60E JUMPI DUP1 PUSH4 0x22F3E2D4 EQ PUSH2 0x62F JUMPI DUP1 PUSH4 0x2630C12F EQ PUSH2 0x644 JUMPI DUP1 PUSH4 0x2BD3C107 EQ PUSH2 0x659 JUMPI DUP1 PUSH4 0x2BF0C985 EQ PUSH2 0x67A JUMPI DUP1 PUSH4 0x2FE8A6AD EQ PUSH2 0x69B JUMPI DUP1 PUSH4 0x38A5E016 EQ PUSH2 0x6B0 JUMPI DUP1 PUSH4 0x395900D4 EQ PUSH2 0x6C5 JUMPI DUP1 PUSH4 0x3BEB26C4 EQ PUSH2 0x6EF JUMPI DUP1 PUSH4 0x3E8FF43F EQ PUSH2 0x707 JUMPI DUP1 PUSH4 0x46749468 EQ PUSH2 0x733 JUMPI DUP1 PUSH4 0x49D10B64 EQ PUSH2 0x74E JUMPI DUP1 PUSH4 0x4AF80F0E EQ PUSH2 0x763 JUMPI DUP1 PUSH4 0x54FD4D50 EQ PUSH2 0x784 JUMPI DUP1 PUSH4 0x55776B77 EQ PUSH2 0x799 JUMPI DUP1 PUSH4 0x5768ADCF EQ PUSH2 0x7B3 JUMPI DUP1 PUSH4 0x579CD3CA EQ PUSH2 0x7D4 JUMPI DUP1 PUSH4 0x59CD4EEC EQ PUSH2 0x7E9 JUMPI DUP1 PUSH4 0x5E35359E EQ PUSH2 0x813 JUMPI DUP1 PUSH4 0x61CD756E EQ PUSH2 0x83D JUMPI DUP1 PUSH4 0x67B6D57C EQ PUSH2 0x852 JUMPI DUP1 PUSH4 0x69067D95 EQ PUSH2 0x873 JUMPI DUP1 PUSH4 0x690D8320 EQ PUSH2 0x897 JUMPI DUP1 PUSH4 0x69D1354A EQ PUSH2 0x8B8 JUMPI DUP1 PUSH4 0x6A49D2C4 EQ PUSH2 0x8D0 JUMPI DUP1 PUSH4 0x71F52BF3 EQ PUSH2 0x8FA JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x90F JUMPI DUP1 PUSH4 0x7B103999 EQ PUSH2 0x924 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x939 JUMPI DUP1 PUSH4 0x94C275AD EQ PUSH2 0x94E JUMPI DUP1 PUSH4 0x98A71DCB EQ PUSH2 0x963 JUMPI DUP1 PUSH4 0x9B99A8E2 EQ PUSH2 0x984 JUMPI DUP1 PUSH4 0xA32BFF44 EQ PUSH2 0x999 JUMPI DUP1 PUSH4 0xAF94B8D8 EQ PUSH2 0x9AE JUMPI DUP1 PUSH4 0xB4A176D3 EQ PUSH2 0x9D8 JUMPI DUP1 PUSH4 0xBF754558 EQ PUSH2 0x9ED JUMPI DUP1 PUSH4 0xBF7DA6BA EQ PUSH2 0xA02 JUMPI DUP1 PUSH4 0xC3321FB0 EQ PUSH2 0xA26 JUMPI DUP1 PUSH4 0xC45D3D92 EQ PUSH2 0xA3B JUMPI DUP1 PUSH4 0xCDC91C69 EQ PUSH2 0xA50 JUMPI DUP1 PUSH4 0xD031370B EQ PUSH2 0xA65 JUMPI DUP1 PUSH4 0xD18E81B3 EQ PUSH2 0xA7D JUMPI DUP1 PUSH4 0xD260529C EQ PUSH2 0xA92 JUMPI DUP1 PUSH4 0xD3FB73B4 EQ PUSH2 0xAA7 JUMPI DUP1 PUSH4 0xD4EE1D90 EQ PUSH2 0xABC JUMPI DUP1 PUSH4 0xD55EC697 EQ PUSH2 0xAD1 JUMPI DUP1 PUSH4 0xD64C5A1A EQ PUSH2 0xAE6 JUMPI DUP1 PUSH4 0xD66BD524 EQ PUSH2 0xB11 JUMPI DUP1 PUSH4 0xD8959512 EQ PUSH2 0xB32 JUMPI DUP1 PUSH4 0xDB2830A4 EQ PUSH2 0xB53 JUMPI DUP1 PUSH4 0xDC75EB9A EQ PUSH2 0xB68 JUMPI DUP1 PUSH4 0xDC8DE379 EQ PUSH2 0xB7D JUMPI DUP1 PUSH4 0xE38192E3 EQ PUSH2 0xB9E JUMPI DUP1 PUSH4 0xE8104AF9 EQ PUSH2 0xBC5 JUMPI DUP1 PUSH4 0xE8DC12FF EQ PUSH2 0xBDA JUMPI DUP1 PUSH4 0xEC2240F5 EQ PUSH2 0xC04 JUMPI DUP1 PUSH4 0xECBCA55D EQ PUSH2 0xC19 JUMPI DUP1 PUSH4 0xF1FF40D9 EQ PUSH2 0xC37 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0xC4F JUMPI DUP1 PUSH4 0xF9CDDDE2 EQ PUSH2 0xC70 JUMPI DUP1 PUSH4 0xFC0C546A EQ PUSH2 0xC85 JUMPI JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5448 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x0 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH32 0x353C2EB9E53A4A4A6D45D72082FF2E9DC829D1125618772A83EB0E7F86632C43 SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO PUSH2 0x3E5 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245534552564500000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3F3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x408 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0xC9A JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x426 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3E5 PUSH1 0x4 CALLDATALOAD ISZERO ISZERO PUSH2 0xCC3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x440 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x449 PUSH2 0xD0B JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x471 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x47A PUSH2 0xD1A JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x49A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4A3 PUSH2 0xD23 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4C8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4DD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0xD2F JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP6 DUP7 MSTORE PUSH4 0xFFFFFFFF SWAP1 SWAP5 AND PUSH1 0x20 DUP7 ADD MSTORE SWAP2 ISZERO ISZERO DUP5 DUP5 ADD MSTORE ISZERO ISZERO PUSH1 0x60 DUP5 ADD MSTORE ISZERO ISZERO PUSH1 0x80 DUP4 ADD MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0xA0 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x51D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x408 PUSH1 0x4 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH1 0x44 CALLDATALOAD PUSH1 0x64 CALLDATALOAD PUSH1 0x84 CALLDATALOAD PUSH1 0xA4 CALLDATALOAD PUSH1 0xC4 CALLDATALOAD PUSH2 0xDCA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x547 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3E5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x44 CALLDATALOAD AND PUSH2 0xDE7 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x574 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x47A PUSH2 0x1551 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x589 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3E5 PUSH2 0x159A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x59E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x449 PUSH1 0x4 CALLDATALOAD PUSH2 0x15AE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5B6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4A3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x15DA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5D7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x5F5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x160C JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x61A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3E5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x1626 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x63B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x47A PUSH2 0x163A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x650 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x449 PUSH2 0x166F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x665 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x408 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x168E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x686 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x408 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x16E3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6A7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x47A PUSH2 0x17C6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6BC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3E5 PUSH2 0x17E7 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6D1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3E5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x17F9 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6FB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3E5 PUSH1 0x4 CALLDATALOAD PUSH2 0x1894 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x713 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x71C PUSH2 0x1899 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0xFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x73F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3E5 PUSH1 0x4 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH2 0x189E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x75A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3E5 PUSH2 0x1922 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x76F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3E5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x1B82 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x790 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x71C PUSH2 0x1BB7 JUMP JUMPDEST PUSH2 0x408 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH1 0x44 CALLDATALOAD PUSH2 0x1BBC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7BF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x449 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x2125 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7E0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4A3 PUSH2 0x2143 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3E5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH4 0xFFFFFFFF PUSH1 0x24 CALLDATALOAD AND PUSH2 0x215B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x81F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3E5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x219C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x849 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x449 PUSH2 0x22B0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x85E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3E5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x22BF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x87F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x5F5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x2362 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8A3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3E5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x24BD JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8C4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3E5 PUSH1 0x4 CALLDATALOAD PUSH2 0x25C2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8DC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3E5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH4 0xFFFFFFFF PUSH1 0x24 CALLDATALOAD AND PUSH2 0x2667 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x906 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x71C PUSH2 0x26C6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x91B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3E5 PUSH2 0x26D0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x930 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x449 PUSH2 0x2784 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x945 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x449 PUSH2 0x2793 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x95A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4A3 PUSH2 0x27A2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x96F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x408 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x27B6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x990 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x71C PUSH2 0x27C8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9A5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x5F5 PUSH2 0x27CE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9BA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x5F5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x27D7 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9E4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3E5 PUSH2 0x297B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9F9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x47A PUSH2 0x29A7 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA0E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3E5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x29AC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA32 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x408 PUSH2 0x29F4 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA47 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x449 PUSH2 0x29FA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA5C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3E5 PUSH2 0x2A09 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA71 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x449 PUSH1 0x4 CALLDATALOAD PUSH2 0x2A62 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA89 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x408 PUSH2 0x2A8A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA9E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x47A PUSH2 0x2A90 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xAB3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x449 PUSH2 0x2A95 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xAC8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x449 PUSH2 0x2AA4 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xADD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3E5 PUSH2 0x2AB3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xAF2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xAFB PUSH2 0x2BA8 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xB1D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4DD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x2BAD JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xB3E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x408 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x2BF3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xB5F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x5F5 PUSH2 0x2C04 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xB74 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x449 PUSH2 0x2C29 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xB89 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x408 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x2C38 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xBAA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x408 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH1 0x44 CALLDATALOAD PUSH2 0x2C61 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xBD1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x408 PUSH2 0x2FC6 JUMP JUMPDEST PUSH2 0x408 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x44 CALLDATALOAD SWAP1 PUSH1 0x64 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x84 CALLDATALOAD AND PUSH2 0x2FCC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xC10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x5F5 PUSH2 0x321F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xC25 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3E5 PUSH4 0xFFFFFFFF PUSH1 0x4 CALLDATALOAD AND PUSH2 0x329F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xC43 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3E5 PUSH1 0x4 CALLDATALOAD PUSH2 0x3394 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xC5B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3E5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x3399 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xC7C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x5F5 PUSH2 0x3429 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xC91 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x449 PUSH2 0x3432 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0xCA6 DUP2 PUSH2 0x3441 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0xCCB PUSH2 0x34C0 JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD SWAP2 ISZERO ISZERO PUSH21 0x10000000000000000000000000000000000000000 MUL PUSH21 0xFF0000000000000000000000000000000000000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x15 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH4 0xFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0xD3F PUSH2 0x53C3 JUMP JUMPDEST POP POP POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP2 MLOAD PUSH1 0xA0 DUP2 ADD DUP4 MSTORE DUP2 SLOAD DUP1 DUP3 MSTORE PUSH1 0x1 SWAP1 SWAP3 ADD SLOAD PUSH4 0xFFFFFFFF DUP2 AND SWAP5 DUP3 ADD DUP6 SWAP1 MSTORE PUSH1 0xFF PUSH5 0x100000000 DUP3 DIV DUP2 AND ISZERO ISZERO SWAP5 DUP4 ADD SWAP5 SWAP1 SWAP5 MSTORE PUSH6 0x10000000000 DUP2 DIV DUP5 AND ISZERO ISZERO PUSH1 0x60 DUP4 ADD MSTORE PUSH7 0x1000000000000 SWAP1 DIV SWAP1 SWAP3 AND ISZERO ISZERO PUSH1 0x80 SWAP1 SWAP3 ADD DUP3 SWAP1 MSTORE SWAP6 SWAP2 SWAP5 POP SWAP2 SWAP3 POP DUP3 SWAP2 SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xDDB DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 PUSH2 0x3510 JUMP JUMPDEST SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0xDF7 PUSH2 0x3588 JUMP JUMPDEST PUSH2 0xDFF PUSH2 0x34C0 JUMP JUMPDEST DUP8 PUSH2 0xE09 DUP2 PUSH2 0x3441 JUMP JUMPDEST DUP8 PUSH2 0xE13 DUP2 PUSH2 0x35E5 JUMP JUMPDEST DUP8 PUSH2 0xE1D DUP2 PUSH2 0x35E5 JUMP JUMPDEST DUP10 PUSH2 0xE27 DUP2 PUSH2 0x3646 JUMP JUMPDEST DUP10 PUSH2 0xE31 DUP2 PUSH2 0x3646 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x8DA5CB5B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD ADDRESS SWAP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP2 PUSH4 0x8DA5CB5B SWAP2 PUSH1 0x4 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xE90 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xEA4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xEBA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ PUSH2 0xF1A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F414E43484F525F4E4F545F4F574E4544000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0xF43 PUSH32 0x436861696E6C696E6B4F7261636C6557686974656C6973740000000000000000 PUSH2 0x36A6 JUMP JUMPDEST SWAP10 POP DUP10 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x3AF32ABF DUP14 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xFA0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xFB4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xFCA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD ISZERO ISZERO PUSH2 0x1022 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4F5241434C450000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP10 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x3AF32ABF DUP13 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x107D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1091 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x10A7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD ISZERO ISZERO PUSH2 0x10FF JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4F5241434C450000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x1107 PUSH2 0x373E JUMP JUMPDEST PUSH1 0xA DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP16 AND OR SWAP1 SSTORE PUSH1 0x7 DUP1 SLOAD PUSH1 0x0 SWAP1 DUP2 LT PUSH2 0x1131 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP15 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x118F JUMPI PUSH1 0x7 DUP1 SLOAD PUSH1 0x1 SWAP1 DUP2 LT PUSH2 0x115F JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0xB DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x11CA JUMP JUMPDEST PUSH1 0x7 DUP1 SLOAD PUSH1 0x0 SWAP1 DUP2 LT PUSH2 0x119E JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0xB DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMPDEST PUSH2 0x11F3 PUSH32 0x436F6E766572746572466163746F727900000000000000000000000000000000 PUSH2 0x36A6 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xC977AED2 PUSH2 0x1209 PUSH2 0x1899 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH2 0xFFFF AND PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x124A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x125E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1274 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP SWAP9 POP DUP9 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x1B27444E DUP15 PUSH1 0xB PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP16 DUP16 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP6 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP5 POP POP POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1345 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1359 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x136F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x9 DUP1 SLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH13 0x1000000000000000000000000 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND DUP2 MUL SWAP2 SWAP1 SWAP2 OR SWAP2 DUP3 SWAP1 SSTORE PUSH1 0xA SLOAD PUSH1 0xB SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xAE81800400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP3 DUP7 AND PUSH1 0x4 DUP5 ADD MSTORE SWAP1 DUP6 AND PUSH1 0x24 DUP4 ADD MSTORE DUP1 MLOAD SWAP3 SWAP1 SWAP4 DIV SWAP1 SWAP4 AND SWAP3 PUSH4 0xAE818004 SWAP3 PUSH1 0x44 DUP1 DUP4 ADD SWAP4 SWAP2 SWAP3 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1411 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1425 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x143B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD MLOAD PUSH1 0x10 DUP2 SWAP1 SSTORE PUSH1 0xF DUP3 SWAP1 SSTORE PUSH1 0x12 SWAP2 SWAP1 SWAP2 SSTORE PUSH1 0x13 SSTORE PUSH2 0x145F PUSH2 0x397A JUMP JUMPDEST PUSH1 0x11 SSTORE PUSH1 0xA SLOAD PUSH2 0x1477 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0xC9A JUMP JUMPDEST PUSH1 0xA SLOAD SWAP1 SWAP9 POP PUSH2 0x148F SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x2C38 JUMP JUMPDEST PUSH1 0xB SLOAD SWAP1 SWAP8 POP PUSH2 0x14A7 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x2C38 JUMP JUMPDEST SWAP6 POP DUP7 DUP9 EQ ISZERO PUSH2 0x14D2 JUMPI PUSH1 0x0 DUP9 GT DUP1 PUSH2 0x14C0 JUMPI POP PUSH1 0x0 DUP7 GT JUMPDEST ISZERO PUSH2 0x14CD JUMPI PUSH2 0x14CD PUSH2 0x3994 JUMP JUMPDEST PUSH2 0x14FB JUMP JUMPDEST PUSH1 0x0 DUP9 GT DUP1 ISZERO PUSH2 0x14E2 JUMPI POP PUSH1 0x0 DUP8 GT JUMPDEST DUP1 ISZERO PUSH2 0x14EE JUMPI POP PUSH1 0x0 DUP7 GT JUMPDEST ISZERO PUSH2 0x14FB JUMPI PUSH2 0x14FB PUSH2 0x3994 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x1512 PUSH2 0x1899 JUMP JUMPDEST PUSH2 0xFFFF AND PUSH32 0x6B08C2E2C9969E55A647A764DB9B554D64DC42F1A704DA11A6D5B129AD163F2C PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5448 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x0 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH32 0x353C2EB9E53A4A4A6D45D72082FF2E9DC829D1125618772A83EB0E7F86632C43 SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH2 0x15A2 PUSH2 0x34C0 JUMP JUMPDEST PUSH1 0x15 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x7 DUP3 DUP2 SLOAD DUP2 LT ISZERO ISZERO PUSH2 0x15BF JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0x15E6 DUP2 PUSH2 0x3441 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH4 0xFFFFFFFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x161A DUP6 DUP6 DUP6 PUSH2 0x27D7 JUMP JUMPDEST SWAP2 POP SWAP2 POP SWAP4 POP SWAP4 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x162E PUSH2 0x34C0 JUMP JUMPDEST PUSH2 0x1637 DUP2 PUSH2 0x22BF JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1644 PUSH2 0x3A0C JUMP JUMPDEST DUP1 ISZERO PUSH2 0x166A JUMPI POP PUSH1 0x9 SLOAD PUSH13 0x1000000000000000000000000 SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND ISZERO ISZERO JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH13 0x1000000000000000000000000 SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0x169A DUP2 PUSH2 0x3441 JUMP JUMPDEST PUSH2 0x16DC PUSH2 0x16A6 DUP5 PUSH2 0x2C38 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x16D0 SWAP1 PUSH1 0x13 PUSH4 0xFFFFFFFF PUSH2 0x3AA6 AND JUMP JUMPDEST SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x3B2A AND JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x18160DDD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1729 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x173D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1753 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP2 SWAP6 POP AND SWAP3 POP PUSH2 0x177E DUP4 PUSH2 0x2C38 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 SWAP3 POP SWAP1 POP PUSH2 0x17BC DUP2 PUSH2 0x17B0 DUP5 DUP8 PUSH4 0xFFFFFFFF PUSH2 0x3AA6 AND JUMP JUMPDEST SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x3B87 AND JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH2 0x17EF PUSH2 0x34C0 JUMP JUMPDEST PUSH2 0x17F7 PUSH2 0x2A09 JUMP JUMPDEST JUMP JUMPDEST PUSH2 0x1801 PUSH2 0x34C0 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x5E35359E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP6 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP3 ADD DUP6 SWAP1 MSTORE SWAP2 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP2 PUSH4 0x5E35359E SWAP2 PUSH1 0x64 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1877 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x188B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x17 SSTORE JUMP JUMPDEST PUSH1 0x2 SWAP1 JUMP JUMPDEST PUSH2 0x18A6 PUSH2 0x34C0 JUMP JUMPDEST DUP2 PUSH1 0x14 PUSH1 0x0 PUSH1 0x7 PUSH1 0x0 DUP2 SLOAD DUP2 LT ISZERO ISZERO PUSH2 0x18BB JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 SWAP1 SWAP2 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP4 MSTORE DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x40 ADD DUP2 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE PUSH1 0x7 DUP1 SLOAD DUP4 SWAP3 PUSH1 0x14 SWAP3 SWAP1 SWAP2 PUSH1 0x1 SWAP1 DUP2 LT PUSH2 0x18F9 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 SWAP1 SWAP2 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP4 MSTORE DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x40 ADD SWAP1 KECCAK256 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ DUP1 PUSH2 0x1957 JUMPI POP PUSH1 0x3 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x199B JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5468 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x19C4 PUSH32 0x436F6E7472616374526567697374727900000000000000000000000000000000 PUSH2 0x36A6 JUMP JUMPDEST PUSH1 0x2 SLOAD SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP4 AND SWAP2 AND EQ DUP1 ISZERO SWAP1 PUSH2 0x19ED JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x1A43 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245474953545259000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0xBB34534C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH32 0x436F6E7472616374526567697374727900000000000000000000000000000000 PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP2 PUSH4 0xBB34534C SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1AC7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1ADB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1AF1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ ISZERO PUSH2 0x1B52 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245474953545259000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP5 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT SWAP3 DUP4 AND OR SWAP1 SWAP3 SSTORE SWAP1 SWAP2 AND SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x1B8A PUSH2 0x34C0 JUMP JUMPDEST DUP1 PUSH2 0x1B94 DUP2 PUSH2 0x35E5 JUMP JUMPDEST POP PUSH1 0x6 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x20 DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x1BCC PUSH2 0x3BF5 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH2 0x1BD9 PUSH2 0x3C4F JUMP JUMPDEST DUP8 PUSH2 0x1BE3 DUP2 PUSH2 0x3441 JUMP JUMPDEST DUP8 PUSH2 0x1BED DUP2 PUSH2 0x3CAD JUMP JUMPDEST DUP8 PUSH2 0x1BF7 DUP2 PUSH2 0x3CAD JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5448 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ PUSH2 0x1C1C JUMPI CALLVALUE ISZERO PUSH2 0x1C20 JUMP JUMPDEST DUP10 CALLVALUE EQ JUMPDEST ISZERO ISZERO PUSH2 0x1C76 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4554485F414D4F554E545F4D49534D41544348000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x1C7E PUSH2 0x3D05 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5448 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ ISZERO PUSH2 0x1D20 JUMPI PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5448 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x0 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH32 0x353C2EB9E53A4A4A6D45D72082FF2E9DC829D1125618772A83EB0E7F86632C42 SLOAD PUSH2 0x1CE6 SWAP1 CALLVALUE PUSH4 0xFFFFFFFF PUSH2 0x3D47 AND JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5448 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x0 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH32 0x353C2EB9E53A4A4A6D45D72082FF2E9DC829D1125618772A83EB0E7F86632C42 SSTORE JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x15 SLOAD SWAP1 SWAP8 POP PUSH1 0xFF AND ISZERO PUSH2 0x1DE9 JUMPI PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x14 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD ISZERO DUP1 PUSH2 0x1D93 JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x14 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x1D90 DUP9 DUP13 PUSH4 0xFFFFFFFF PUSH2 0x3B2A AND JUMP JUMPDEST GT ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x1DE9 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4D41585F5354414B45445F42414C414E43455F524541434845440000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP13 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD DUP2 MLOAD PUSH32 0x18160DDD00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP2 MLOAD SWAP5 AND SWAP10 POP DUP10 SWAP4 PUSH4 0x18160DDD SWAP4 PUSH1 0x4 DUP1 DUP5 ADD SWAP5 SWAP4 DUP4 SWAP1 SUB ADD SWAP1 DUP3 SWAP1 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1E56 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1E6A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1E80 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP5 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5448 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ PUSH2 0x1EAE JUMPI PUSH2 0x1EAE DUP12 CALLER ADDRESS DUP14 PUSH2 0x3DA7 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x1ED7 SWAP1 DUP12 PUSH4 0xFFFFFFFF PUSH2 0x3B2A AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP13 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE PUSH2 0x1F00 DUP8 DUP12 PUSH4 0xFFFFFFFF PUSH2 0x3B2A AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP13 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE SWAP4 POP DUP7 ISZERO DUP1 PUSH2 0x1F29 JUMPI POP DUP5 ISZERO JUMPDEST ISZERO PUSH2 0x1F36 JUMPI DUP10 SWAP4 POP PUSH2 0x1F4D JUMP JUMPDEST PUSH2 0x1F4A DUP8 PUSH2 0x17B0 DUP13 DUP9 PUSH4 0xFFFFFFFF PUSH2 0x3AA6 AND JUMP JUMPDEST SWAP4 POP JUMPDEST DUP9 DUP5 LT ISZERO PUSH2 0x1FA5 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F52455455524E5F544F4F5F4C4F570000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xC6C3BBE600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP10 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE CALLER PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP3 ADD DUP9 SWAP1 MSTORE SWAP2 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP2 PUSH4 0xC6C3BBE6 SWAP2 PUSH1 0x64 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2019 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x202D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x2039 PUSH2 0x3994 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND CALLER PUSH32 0x4A1A2A6176E9646D9E3157F7C2AB3C499F18337C0B0828CFB28E0A61DE4A11F7 DUP13 PUSH2 0x2076 DUP12 DUP3 PUSH4 0xFFFFFFFF PUSH2 0x3B2A AND JUMP JUMPDEST PUSH2 0x2086 DUP11 DUP11 PUSH4 0xFFFFFFFF PUSH2 0x3B2A AND JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP4 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP3 SWAP1 SWAP3 MSTORE DUP3 DUP3 ADD MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG3 PUSH2 0x20BD DUP7 PUSH2 0x20B7 DUP8 DUP8 PUSH4 0xFFFFFFFF PUSH2 0x3B2A AND JUMP JUMPDEST DUP14 PUSH2 0x3E8F JUMP JUMPDEST PUSH2 0x2112 PUSH1 0x7 PUSH1 0x0 DUP2 SLOAD DUP2 LT ISZERO ISZERO PUSH2 0x20D0 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x7 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP2 PUSH1 0x1 SWAP1 DUP2 LT PUSH2 0x20F7 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP1 DUP1 PUSH2 0x3EEF JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0x4 SSTORE POP SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD AND SWAP1 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH9 0x10000000000000000 SWAP1 DIV PUSH4 0xFFFFFFFF AND DUP2 JUMP JUMPDEST DUP2 PUSH2 0x2165 DUP2 PUSH2 0x3441 JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP2 SWAP1 SWAP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD DUP1 SLOAD PUSH4 0xFFFFFFFF NOT AND PUSH4 0xFFFFFFFF SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH2 0x21A6 PUSH2 0x3BF5 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH2 0x21B3 PUSH2 0x34C0 JUMP JUMPDEST PUSH2 0x21CA PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5428 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x36A6 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD SWAP1 SWAP2 POP PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 PUSH2 0x2207 JUMPI POP PUSH2 0x2205 PUSH2 0x163A JUMP JUMPDEST ISZERO JUMPDEST DUP1 PUSH2 0x221F JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ JUMPDEST ISZERO ISZERO PUSH2 0x2263 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5468 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x226E DUP5 DUP5 DUP5 PUSH2 0x3F5B JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x22A5 JUMPI PUSH2 0x22A5 DUP5 PUSH2 0x3F8C JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0x4 SSTORE POP POP JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH2 0x22C7 PUSH2 0x34C0 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5428 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x22DF DUP2 PUSH2 0x4080 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xF2FDE38B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP2 PUSH4 0xF2FDE38B SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2346 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x235A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 DUP12 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x18160DDD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x23AF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x23C3 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x23D9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP15 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD SWAP1 SWAP4 AND DUP3 MSTORE PUSH1 0xC SWAP1 MSTORE KECCAK256 SLOAD SWAP1 SWAP9 POP SWAP7 POP DUP8 DUP12 LT ISZERO PUSH2 0x24A4 JUMPI PUSH1 0xA SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x243C SWAP1 PUSH1 0x14 PUSH4 0xFFFFFFFF PUSH2 0x3AA6 AND JUMP JUMPDEST PUSH1 0xA SLOAD SWAP1 SWAP7 POP PUSH2 0x2454 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x168E JUMP JUMPDEST SWAP5 POP DUP5 DUP7 LT PUSH2 0x2464 JUMPI DUP5 DUP7 PUSH2 0x2467 JUMP JUMPDEST DUP6 DUP6 JUMPDEST SWAP1 SWAP5 POP SWAP3 POP PUSH2 0x2480 DUP9 PUSH2 0x17B0 DUP14 DUP11 PUSH4 0xFFFFFFFF PUSH2 0x3AA6 AND JUMP JUMPDEST SWAP2 POP PUSH2 0x2496 DUP4 PUSH2 0x17B0 DUP5 DUP8 PUSH4 0xFFFFFFFF PUSH2 0x3AA6 AND JUMP JUMPDEST SWAP10 POP POP DUP9 DUP2 SUB SWAP8 POP DUP9 PUSH2 0x24AE JUMP JUMPDEST SWAP6 SWAP9 POP PUSH1 0x0 SWAP8 POP DUP9 SWAP6 JUMPDEST POP POP POP POP POP POP POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x24C7 PUSH2 0x3BF5 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH2 0x24D4 PUSH2 0x34C0 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5448 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x24EC DUP2 PUSH2 0x3441 JUMP JUMPDEST PUSH2 0x2503 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5428 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x36A6 JUMP JUMPDEST SWAP2 POP PUSH2 0x250D PUSH2 0x163A JUMP JUMPDEST ISZERO DUP1 PUSH2 0x2526 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 DUP2 AND SWAP2 AND EQ JUMPDEST ISZERO ISZERO PUSH2 0x256A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5468 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP1 ADDRESS BALANCE DUP1 ISZERO PUSH2 0x8FC MUL SWAP2 PUSH1 0x0 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x25A0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH2 0x25B8 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5448 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x3F8C JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0x4 SSTORE POP JUMP JUMPDEST PUSH2 0x25CA PUSH2 0x34C0 JUMP JUMPDEST PUSH3 0x186A0 DUP2 GT ISZERO PUSH2 0x2625 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F44594E414D49435F4645455F464143544F520000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x16 SLOAD PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP4 SWAP1 MSTORE DUP1 MLOAD PUSH32 0x382FD3516344712A511DCD464FF8E6AB54139D6A28F64087A3253353EE7A5679 SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG1 PUSH1 0x16 SSTORE JUMP JUMPDEST PUSH1 0x2 PUSH2 0x2671 PUSH2 0x27C8 JUMP JUMPDEST PUSH2 0xFFFF AND LT PUSH2 0x26B8 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5488 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x26C2 DUP3 DUP3 PUSH2 0x40D6 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x166A PUSH2 0x27C8 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x2720 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5468 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND SWAP4 SWAP1 SWAP2 AND SWAP2 PUSH32 0x343765429AEA5A34B3FF6A3785A98A5ABB2597ACA87BFBB58632C173D585373A SWAP2 LOG3 PUSH1 0x1 DUP1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND OR SWAP1 SWAP2 SSTORE AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH5 0x100000000 SWAP1 DIV PUSH4 0xFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x14 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x7 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0xF SLOAD PUSH1 0x10 SLOAD DUP3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x27E5 PUSH2 0x53F1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x27F3 PUSH2 0x3C4F JUMP JUMPDEST PUSH2 0x27FC DUP13 PUSH2 0x3441 JUMP JUMPDEST PUSH2 0x2805 DUP12 PUSH2 0x3441 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP13 DUP2 AND SWAP1 DUP13 AND EQ ISZERO PUSH2 0x2869 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F534F555243455F54415247455400000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x2871 PUSH2 0x397A JUMP JUMPDEST PUSH1 0x11 SLOAD EQ ISZERO PUSH2 0x2918 JUMPI PUSH1 0xF PUSH1 0x40 DUP1 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD SLOAD DUP2 MSTORE POP POP SWAP5 POP PUSH1 0x8 PUSH1 0x0 DUP14 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH4 0xFFFFFFFF AND SWAP7 POP PUSH1 0x8 PUSH1 0x0 DUP13 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH4 0xFFFFFFFF AND SWAP6 POP PUSH2 0x2958 JUMP JUMPDEST PUSH2 0x2920 PUSH2 0x4308 JUMP JUMPDEST SWAP5 POP PUSH2 0x292B DUP6 PUSH2 0x4540 JUMP JUMPDEST PUSH1 0xA SLOAD SWAP2 SWAP6 POP SWAP4 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP14 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x2951 JUMPI DUP4 SWAP7 POP DUP3 SWAP6 POP PUSH2 0x2958 JUMP JUMPDEST DUP3 SWAP7 POP DUP4 SWAP6 POP JUMPDEST PUSH2 0x2966 DUP13 DUP13 DUP10 DUP10 DUP10 DUP16 PUSH2 0x466A JUMP JUMPDEST SWAP2 SWAP15 SWAP2 SWAP14 POP SWAP1 SWAP12 POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x2983 PUSH2 0x34C0 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x2 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x1 DUP2 JUMP JUMPDEST PUSH2 0x29B4 PUSH2 0x34C0 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5428 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x29CC DUP2 PUSH2 0x4080 JUMP JUMPDEST DUP3 PUSH2 0x29D6 DUP2 PUSH2 0x3441 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE JUMP JUMPDEST PUSH1 0x11 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x1 PUSH2 0x2A13 PUSH2 0x27C8 JUMP JUMPDEST PUSH2 0xFFFF AND GT PUSH2 0x2A5A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5488 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x17F7 PUSH2 0x4806 JUMP JUMPDEST PUSH1 0x7 DUP1 SLOAD DUP3 SWAP1 DUP2 LT PUSH2 0x2A70 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP1 POP DUP2 JUMP JUMPDEST PUSH1 0x17 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 SWAP1 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2ABD PUSH2 0x34C0 JUMP JUMPDEST PUSH2 0x2AD4 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5428 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x36A6 JUMP JUMPDEST PUSH1 0x5 SLOAD SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x2AEE PUSH2 0x1899 JUMP JUMPDEST PUSH2 0xFFFF AND PUSH32 0x6B08C2E2C9969E55A647A764DB9B554D64DC42F1A704DA11A6D5B129AD163F2C PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH2 0x2B27 DUP2 PUSH2 0x3399 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x90F58C9600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 AND SWAP2 PUSH4 0x90F58C96 SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2B88 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2B9C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x1637 PUSH2 0x26D0 JUMP JUMPDEST PUSH1 0x14 SWAP1 JUMP JUMPDEST PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD PUSH4 0xFFFFFFFF DUP2 AND SWAP1 PUSH1 0xFF PUSH5 0x100000000 DUP3 DIV DUP2 AND SWAP2 PUSH6 0x10000000000 DUP2 DIV DUP3 AND SWAP2 PUSH7 0x1000000000000 SWAP1 SWAP2 DIV AND DUP6 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2BFE DUP3 PUSH2 0x2C38 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2C0F PUSH2 0x53F1 JUMP JUMPDEST PUSH2 0x2C17 PUSH2 0x4308 JUMP JUMPDEST DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD MLOAD SWAP1 SWAP5 SWAP1 SWAP4 POP SWAP2 POP POP JUMP JUMPDEST PUSH1 0xB SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0x2C44 DUP2 PUSH2 0x3441 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x2C72 PUSH2 0x3BF5 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH2 0x2C7F PUSH2 0x3C4F JUMP JUMPDEST DUP9 PUSH2 0x2C89 DUP2 PUSH2 0x48D2 JUMP JUMPDEST DUP9 PUSH2 0x2C93 DUP2 PUSH2 0x3CAD JUMP JUMPDEST DUP9 PUSH2 0x2C9D DUP2 PUSH2 0x3CAD JUMP JUMPDEST PUSH2 0x2CA5 PUSH2 0x3D05 JUMP JUMPDEST DUP12 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x18160DDD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2CE3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2CF7 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2D0D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP8 POP PUSH2 0x2D1B DUP13 DUP13 PUSH2 0x2362 JUMP JUMPDEST POP SWAP7 POP DUP10 DUP8 LT ISZERO PUSH2 0x2D76 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F52455455524E5F544F4F5F4C4F570000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0xE PUSH1 0x0 DUP14 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP6 POP PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xF6B911BC DUP14 CALLER DUP15 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP4 POP POP POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2E43 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2E57 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x2E84 SWAP2 POP DUP9 PUSH4 0xFFFFFFFF PUSH2 0x3D47 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE PUSH1 0xC SWAP1 MSTORE KECCAK256 SLOAD PUSH2 0x2EB9 SWAP1 DUP9 PUSH4 0xFFFFFFFF PUSH2 0x3D47 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP3 SWAP1 SSTORE SWAP1 SWAP6 POP PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5448 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ ISZERO PUSH2 0x2F1F JUMPI PUSH1 0x40 MLOAD CALLER SWAP1 DUP9 ISZERO PUSH2 0x8FC MUL SWAP1 DUP10 SWAP1 PUSH1 0x0 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x2F19 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH2 0x2F2A JUMP JUMPDEST PUSH2 0x2F2A DUP7 CALLER DUP10 PUSH2 0x4943 JUMP JUMPDEST PUSH2 0x2F32 PUSH2 0x3994 JUMP JUMPDEST PUSH2 0x2F42 DUP9 DUP13 PUSH4 0xFFFFFFFF PUSH2 0x3D47 AND JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP10 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP9 SWAP1 MSTORE DUP1 DUP3 ADD DUP4 SWAP1 MSTORE SWAP1 MLOAD SWAP2 SWAP6 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 AND SWAP2 CALLER SWAP2 PUSH32 0xBC7D19D505C7EC4DB83F3B51F19FB98C4C8A99922E7839D1EE608DFBEE29501B SWAP2 SWAP1 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG3 PUSH2 0x2F9E DUP13 DUP6 DUP9 PUSH2 0x3E8F JUMP JUMPDEST PUSH2 0x2FB1 PUSH1 0x7 PUSH1 0x0 DUP2 SLOAD DUP2 LT ISZERO ISZERO PUSH2 0x20D0 JUMPI INVALID JUMPDEST POP POP PUSH1 0x1 PUSH1 0x4 SSTORE POP SWAP3 SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x16 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2FD6 PUSH2 0x3BF5 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH32 0x536F7672796E537761704E6574776F726B000000000000000000000000000000 PUSH2 0x3005 DUP2 PUSH2 0x4080 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 DUP2 AND SWAP1 DUP8 AND EQ ISZERO PUSH2 0x3069 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F534F555243455F54415247455400000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND ISZERO DUP1 PUSH2 0x31AC JUMPI POP PUSH1 0x6 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x3AF32ABF00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP2 PUSH4 0x3AF32ABF SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x30E4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x30F8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x310E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD DUP1 ISZERO PUSH2 0x31AC JUMPI POP PUSH1 0x6 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x3AF32ABF00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP2 PUSH4 0x3AF32ABF SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x317F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3193 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x31A9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD JUMPDEST ISZERO ISZERO PUSH2 0x3202 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4E4F545F57484954454C495354454400000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x320F DUP8 DUP8 DUP8 DUP8 DUP8 PUSH2 0x49FA JUMP JUMPDEST PUSH1 0x1 PUSH1 0x4 SSTORE SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x322A PUSH2 0x53F1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x3235 PUSH2 0x4308 JUMP JUMPDEST SWAP3 POP PUSH2 0x3240 DUP4 PUSH2 0x4540 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x7 PUSH1 0x0 DUP2 SLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3254 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0xA SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x3289 JUMPI PUSH4 0xFFFFFFFF DUP1 DUP4 AND SWAP6 POP DUP2 AND SWAP4 POP PUSH2 0x3298 JUMP JUMPDEST PUSH4 0xFFFFFFFF DUP1 DUP3 AND SWAP6 POP DUP3 AND SWAP4 POP JUMPDEST POP POP POP SWAP1 SWAP2 JUMP JUMPDEST PUSH2 0x32A7 PUSH2 0x34C0 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH4 0xFFFFFFFF PUSH5 0x100000000 SWAP1 SWAP2 DIV DUP2 AND SWAP1 DUP3 AND GT ISZERO PUSH2 0x3313 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F434F4E56455253494F4E5F464545000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH4 0xFFFFFFFF PUSH9 0x10000000000000000 SWAP1 SWAP4 DIV DUP4 AND DUP2 MSTORE SWAP2 DUP4 AND PUSH1 0x20 DUP4 ADD MSTORE DUP1 MLOAD PUSH32 0x81CD2FFB37DD237C0E4E2A3DE5265FCF9DEB43D3E7801E80DB9F1CCFBA7EE600 SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG1 PUSH1 0x9 DUP1 SLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP3 AND PUSH9 0x10000000000000000 MUL PUSH12 0xFFFFFFFF0000000000000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x11 SSTORE JUMP JUMPDEST PUSH2 0x33A1 PUSH2 0x34C0 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x3407 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F4F574E4552000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x12 SLOAD PUSH1 0x13 SLOAD DUP3 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO PUSH2 0x1637 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245534552564500000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x17F7 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5468 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP1 PUSH2 0x3534 DUP8 PUSH2 0x3528 DUP13 DUP10 PUSH4 0xFFFFFFFF PUSH2 0x3AA6 AND JUMP JUMPDEST SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x3AA6 AND JUMP JUMPDEST SWAP2 POP PUSH2 0x354A DUP9 PUSH2 0x3528 DUP12 DUP9 PUSH4 0xFFFFFFFF PUSH2 0x3AA6 AND JUMP JUMPDEST SWAP1 POP DUP2 DUP2 GT ISZERO PUSH2 0x3576 JUMPI PUSH2 0x356F DUP2 PUSH2 0x17B0 PUSH1 0x14 PUSH2 0x3528 DUP7 DUP5 SUB DUP10 PUSH4 0xFFFFFFFF PUSH2 0x3AA6 AND JUMP JUMPDEST SWAP3 POP PUSH2 0x357B JUMP JUMPDEST PUSH1 0x0 SWAP3 POP JUMPDEST POP POP SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x3590 PUSH2 0x163A JUMP JUMPDEST ISZERO PUSH2 0x17F7 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xA PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F41435449564500000000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ADDRESS EQ ISZERO PUSH2 0x1637 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F414444524553535F49535F53454C4600000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0x1637 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xBB34534C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP2 PUSH4 0xBB34534C SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x370C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3720 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x3736 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP6 POP DUP6 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x6D3E313E PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x379E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x37B2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x37DB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 MLOAD PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x37F3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD PUSH1 0x20 DUP2 ADD DUP5 DUP2 GT ISZERO PUSH2 0x3806 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP6 PUSH1 0x20 DUP3 MUL DUP4 ADD GT PUSH5 0x100000000 DUP3 GT OR ISZERO PUSH2 0x3823 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP DUP1 MLOAD PUSH1 0x7 SLOAD SWAP2 SWAP10 POP ISZERO SWAP8 POP SWAP6 POP PUSH1 0x0 SWAP5 POP POP POP POP JUMPDEST DUP3 DUP3 LT ISZERO PUSH2 0x235A JUMPI DUP4 ISZERO PUSH2 0x38B9 JUMPI DUP6 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x9CBF9E36 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3886 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x389A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x38B0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 POP PUSH2 0x38D4 JUMP JUMPDEST DUP5 DUP3 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x38C7 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD SWAP1 POP JUMPDEST DUP1 PUSH1 0xD PUSH1 0x0 PUSH1 0x7 DUP6 DUP2 SLOAD DUP2 LT ISZERO ISZERO PUSH2 0x38E8 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 SWAP2 SWAP1 SWAP2 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 DUP2 AND DUP5 MSTORE SWAP1 DUP4 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x40 SWAP1 SWAP2 ADD SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND SWAP3 SWAP1 SWAP2 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH1 0x7 DUP1 SLOAD DUP4 SWAP1 DUP2 LT PUSH2 0x3936 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 SWAP1 SWAP2 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 DUP2 AND DUP5 MSTORE PUSH1 0xE SWAP1 SWAP3 MSTORE PUSH1 0x40 SWAP1 SWAP3 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND SWAP2 SWAP1 SWAP3 AND OR SWAP1 SSTORE PUSH1 0x1 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x383A JUMP JUMPDEST PUSH1 0x0 PUSH1 0x17 SLOAD PUSH1 0x0 EQ ISZERO PUSH2 0x398D JUMPI TIMESTAMP PUSH2 0x166A JUMP JUMPDEST POP PUSH1 0x17 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0xF SLOAD DUP2 MSTORE PUSH1 0x10 SLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 SWAP1 DUP2 SWAP1 PUSH2 0x39B9 SWAP1 PUSH2 0x4540 JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 PUSH1 0x1 SWAP1 DUP2 ADD DUP1 SLOAD PUSH4 0xFFFFFFFF SWAP8 DUP9 AND PUSH4 0xFFFFFFFF NOT SWAP2 DUP3 AND OR SWAP1 SWAP2 SSTORE PUSH1 0xB SLOAD SWAP1 SWAP5 AND DUP4 MSTORE SWAP2 KECCAK256 ADD DUP1 SLOAD SWAP3 SWAP1 SWAP4 AND SWAP2 AND OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 ADDRESS PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x8DA5CB5B PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3A6B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3A7F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x3A95 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 ISZERO ISZERO PUSH2 0x3AB9 JUMPI PUSH1 0x0 SWAP2 POP PUSH2 0x3B23 JUMP JUMPDEST POP DUP3 DUP3 MUL DUP3 DUP5 DUP3 DUP2 ISZERO ISZERO PUSH2 0x3AC9 JUMPI INVALID JUMPDEST DIV EQ PUSH2 0x3B1F JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP1 SWAP2 POP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 ADD DUP4 DUP2 LT ISZERO PUSH2 0x3B1F JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP4 GT PUSH2 0x3BE1 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4449564944455F42595F5A45524F0000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP3 DUP5 DUP2 ISZERO ISZERO PUSH2 0x3BEC JUMPI INVALID JUMPDEST DIV SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH1 0x1 EQ PUSH2 0x17F7 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5245454E5452414E4359000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x3C57 PUSH2 0x163A JUMP JUMPDEST ISZERO ISZERO PUSH2 0x17F7 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E4143544956450000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 GT PUSH2 0x1637 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5A45524F5F56414C5545000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x26C2 JUMPI PUSH2 0x3D3F PUSH1 0x7 DUP3 DUP2 SLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3D25 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x3F8C JUMP JUMPDEST PUSH1 0x1 ADD PUSH2 0x3D0B JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT ISZERO PUSH2 0x3DA1 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F554E444552464C4F5700000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP SWAP1 SUB SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x7472616E7366657246726F6D28616464726573732C616464726573732C75696E DUP2 MSTORE PUSH32 0x7432353629000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP3 MLOAD SWAP2 DUP3 SWAP1 SUB PUSH1 0x25 ADD DUP3 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP9 AND PUSH1 0x24 DUP6 ADD MSTORE DUP7 AND PUSH1 0x44 DUP5 ADD MSTORE PUSH1 0x64 DUP1 DUP5 ADD DUP7 SWAP1 MSTORE DUP5 MLOAD DUP1 DUP6 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x84 SWAP1 SWAP4 ADD SWAP1 SWAP4 MSTORE DUP2 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE PUSH2 0x3E89 SWAP1 DUP6 SWAP1 PUSH2 0x4AED JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP3 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SLOAD DUP3 MLOAD SWAP1 DUP2 MSTORE SWAP1 DUP2 ADD DUP7 SWAP1 MSTORE DUP2 MLOAD SWAP3 SWAP4 DUP8 AND SWAP3 PUSH32 0x77F29993CF2C084E726F7E802DA0719D6A0ADE3E204BADC7A3FFD57ECB768C24 SWAP3 SWAP2 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH2 0x3EF7 PUSH2 0x53F1 JUMP JUMPDEST PUSH2 0x3F03 DUP6 DUP6 DUP6 DUP6 PUSH2 0x4B7B JUMP JUMPDEST DUP1 MLOAD PUSH1 0x20 DUP1 DUP4 ADD MLOAD PUSH1 0x40 DUP1 MLOAD SWAP4 DUP5 MSTORE SWAP2 DUP4 ADD MSTORE DUP1 MLOAD SWAP3 SWAP4 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP9 AND SWAP4 SWAP1 DUP10 AND SWAP3 PUSH32 0x77F29993CF2C084E726F7E802DA0719D6A0ADE3E204BADC7A3FFD57ECB768C24 SWAP3 SWAP1 DUP3 SWAP1 SUB ADD SWAP1 LOG3 POP POP POP POP POP JUMP JUMPDEST PUSH2 0x3F63 PUSH2 0x34C0 JUMP JUMPDEST DUP3 PUSH2 0x3F6D DUP2 PUSH2 0x3646 JUMP JUMPDEST DUP3 PUSH2 0x3F77 DUP2 PUSH2 0x3646 JUMP JUMPDEST DUP4 PUSH2 0x3F81 DUP2 PUSH2 0x35E5 JUMP JUMPDEST PUSH2 0x235A DUP7 DUP7 DUP7 PUSH2 0x4943 JUMP JUMPDEST DUP1 PUSH2 0x3F96 DUP2 PUSH2 0x3441 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 AND PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5448 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ ISZERO PUSH2 0x3FD6 JUMPI PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 ADDRESS BALANCE SWAP1 SSTORE PUSH2 0x26C2 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x4037 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x404B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x4061 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE POP POP JUMP JUMPDEST PUSH2 0x4089 DUP2 PUSH2 0x36A6 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x1637 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5468 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x40E0 PUSH2 0x34C0 JUMP JUMPDEST PUSH2 0x40E8 PUSH2 0x3588 JUMP JUMPDEST DUP3 PUSH2 0x40F2 DUP2 PUSH2 0x3646 JUMP JUMPDEST DUP4 PUSH2 0x40FC DUP2 PUSH2 0x35E5 JUMP JUMPDEST DUP4 PUSH2 0x4106 DUP2 PUSH2 0x4C43 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 DUP2 AND SWAP2 AND EQ DUP1 ISZERO SWAP1 PUSH2 0x414A JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x41A0 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245534552564500000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x9 SLOAD PUSH4 0xFFFFFFFF SWAP1 DUP2 AND PUSH3 0xF4240 SUB DUP2 AND SWAP1 DUP7 AND GT ISZERO PUSH2 0x420B JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F574549474854000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0xFFFF PUSH2 0x4216 PUSH2 0x27C8 JUMP JUMPDEST PUSH2 0xFFFF AND LT PUSH2 0x425D JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5488 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP2 DUP2 SSTORE PUSH1 0x1 SWAP1 DUP2 ADD DUP1 SLOAD PUSH7 0xFF000000000000 NOT PUSH4 0xFFFFFFFF DUP1 DUP9 AND PUSH4 0xFFFFFFFF NOT SWAP4 DUP5 AND OR SWAP2 SWAP1 SWAP2 AND PUSH7 0x1000000000000 OR SWAP1 SWAP3 SSTORE PUSH1 0x7 DUP1 SLOAD SWAP4 DUP5 ADD DUP2 SSTORE SWAP1 SWAP4 MSTORE PUSH32 0xA66CC928B5EDB82AF9BD49922954155AB7B0942694BEA4CE44661D9A8736C688 SWAP1 SWAP2 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND SWAP1 SWAP4 OR SWAP1 SWAP3 SSTORE PUSH1 0x9 DUP1 SLOAD DUP1 DUP5 AND SWAP1 SWAP5 ADD SWAP1 SWAP3 AND SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE POP JUMP JUMPDEST PUSH2 0x4310 PUSH2 0x53F1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x431E PUSH2 0x53F1 JUMP JUMPDEST PUSH2 0x4326 PUSH2 0x53F1 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0xA SLOAD PUSH1 0xB SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xB1772D7A00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND PUSH1 0x4 DUP3 ADD MSTORE SWAP2 DUP4 AND PUSH1 0x24 DUP4 ADD MSTORE MLOAD PUSH1 0x0 SWAP4 DUP5 SWAP4 DUP5 SWAP4 DUP5 SWAP4 PUSH13 0x1000000000000000000000000 SWAP1 SWAP4 DIV SWAP1 SWAP2 AND SWAP2 PUSH4 0xB1772D7A SWAP2 PUSH1 0x44 DUP1 DUP3 ADD SWAP3 PUSH1 0x60 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x43B4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x43C8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x60 DUP2 LT ISZERO PUSH2 0x43DE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD PUSH1 0x20 DUP3 ADD MLOAD PUSH1 0x40 SWAP1 SWAP3 ADD MLOAD PUSH1 0x11 SLOAD SWAP2 SWAP13 POP SWAP2 SWAP11 POP SWAP1 SWAP9 POP DUP9 GT ISZERO PUSH2 0x441B JUMPI PUSH1 0x40 DUP1 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 DUP12 DUP2 MSTORE PUSH1 0x20 ADD DUP11 DUP2 MSTORE POP SWAP11 POP PUSH2 0x4533 JUMP JUMPDEST PUSH1 0x11 SLOAD PUSH2 0x4426 PUSH2 0x397A JUMP JUMPDEST SUB SWAP7 POP DUP7 ISZERO ISZERO PUSH2 0x444E JUMPI PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0xF SLOAD DUP2 MSTORE PUSH1 0x10 SLOAD PUSH1 0x20 DUP3 ADD MSTORE SWAP11 POP PUSH2 0x4533 JUMP JUMPDEST PUSH2 0x258 DUP8 LT PUSH2 0x4475 JUMPI PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x12 SLOAD DUP2 MSTORE PUSH1 0x13 SLOAD PUSH1 0x20 DUP3 ADD MSTORE SWAP11 POP PUSH2 0x4533 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD DUP3 MSTORE PUSH1 0xF SLOAD DUP2 MSTORE PUSH1 0x10 SLOAD PUSH1 0x20 DUP1 DUP4 ADD SWAP2 DUP3 MSTORE DUP4 MLOAD DUP1 DUP6 ADD SWAP1 SWAP5 MSTORE PUSH1 0x12 SLOAD DUP1 DUP6 MSTORE PUSH1 0x13 SLOAD SWAP2 DUP6 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP1 MLOAD SWAP2 SWAP9 POP SWAP2 SWAP7 POP PUSH2 0x44BD SWAP2 PUSH4 0xFFFFFFFF PUSH2 0x3AA6 AND JUMP JUMPDEST PUSH1 0x20 DUP7 ADD MLOAD DUP8 MLOAD SWAP2 SWAP6 POP PUSH2 0x44D7 SWAP2 SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x3AA6 AND JUMP JUMPDEST SWAP3 POP PUSH2 0x4501 PUSH2 0x44EC DUP6 DUP10 PUSH4 0xFFFFFFFF PUSH2 0x3AA6 AND JUMP JUMPDEST PUSH2 0x16D0 DUP6 PUSH2 0x258 DUP12 SWAP1 SUB PUSH4 0xFFFFFFFF PUSH2 0x3AA6 AND JUMP JUMPDEST SWAP2 POP PUSH2 0x4524 PUSH2 0x258 PUSH2 0x3528 DUP8 PUSH1 0x20 ADD MLOAD DUP10 PUSH1 0x20 ADD MLOAD PUSH2 0x3AA6 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP PUSH2 0x4530 DUP3 DUP3 PUSH2 0x4CB8 JUMP JUMPDEST SWAP11 POP JUMPDEST POP POP POP POP POP POP POP POP POP POP SWAP1 JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD SWAP1 SWAP2 DUP3 SWAP2 SWAP1 DUP3 SWAP1 DUP2 SWAP1 PUSH2 0x456D SWAP1 PUSH2 0x168E JUMP JUMPDEST PUSH1 0xB SLOAD SWAP1 SWAP3 POP PUSH2 0x4585 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x168E JUMP JUMPDEST SWAP1 POP PUSH2 0x45B0 PUSH32 0x536F7672796E53776170466F726D756C61000000000000000000000000000000 PUSH2 0x36A6 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xA11AA1B4 PUSH2 0x45CF DUP6 PUSH1 0x14 PUSH4 0xFFFFFFFF PUSH2 0x3AA6 AND JUMP JUMPDEST DUP9 MLOAD PUSH1 0x20 DUP11 ADD MLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0xE0 PUSH1 0x2 EXP PUSH4 0xFFFFFFFF DUP8 AND MUL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP5 SWAP1 SWAP5 MSTORE PUSH1 0x24 DUP5 ADD DUP9 SWAP1 MSTORE PUSH1 0x44 DUP5 ADD DUP8 SWAP1 MSTORE PUSH1 0x64 DUP5 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x84 DUP4 ADD MSTORE DUP1 MLOAD PUSH1 0xA4 DUP1 DUP5 ADD SWAP4 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x462A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x463E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x4654 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD MLOAD SWAP1 SWAP6 POP SWAP4 POP POP POP POP SWAP2 POP SWAP2 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP1 DUP1 PUSH4 0xFFFFFFFF DUP10 AND ISZERO ISZERO PUSH2 0x46A2 JUMPI PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH4 0xFFFFFFFF AND SWAP9 POP JUMPDEST PUSH4 0xFFFFFFFF DUP9 AND ISZERO ISZERO PUSH2 0x46D4 JUMPI PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP11 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH4 0xFFFFFFFF AND SWAP8 POP JUMPDEST PUSH2 0x46DD DUP12 PUSH2 0x168E JUMP JUMPDEST SWAP2 POP PUSH2 0x46E8 DUP11 PUSH2 0x168E JUMP JUMPDEST SWAP1 POP PUSH2 0x4713 PUSH32 0x536F7672796E53776170466F726D756C61000000000000000000000000000000 PUSH2 0x36A6 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x94491FAB00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH4 0xFFFFFFFF DUP1 DUP14 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP3 ADD DUP6 SWAP1 MSTORE DUP12 AND PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 DUP2 ADD DUP10 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 PUSH4 0x94491FAB SWAP2 PUSH1 0xA4 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x479A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x47AE JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x47C4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP5 POP PUSH2 0x47D1 DUP6 PUSH2 0x4D0D JUMP JUMPDEST SWAP4 POP PUSH2 0x47E4 DUP5 PUSH2 0x16D0 DUP13 DUP13 DUP13 DUP13 DUP12 PUSH2 0x4D3D JUMP JUMPDEST SWAP3 POP PUSH2 0x47F6 DUP6 DUP5 PUSH4 0xFFFFFFFF PUSH2 0x3D47 AND JUMP JUMPDEST SWAP5 POP POP POP SWAP7 POP SWAP7 POP SWAP7 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0x480E PUSH2 0x34C0 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4818 PUSH2 0x27C8 JUMP JUMPDEST PUSH2 0xFFFF AND GT PUSH2 0x485F JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5488 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x79BA5097 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x48B2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x48C6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x17F7 PUSH2 0x3D05 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD AND ISZERO ISZERO PUSH2 0x1637 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F504F4F4C5F544F4B454E00000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x7472616E7366657228616464726573732C75696E743235362900000000000000 DUP2 MSTORE DUP2 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x19 ADD DUP2 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x64 SWAP1 SWAP3 ADD SWAP1 SWAP3 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE PUSH2 0x49F5 SWAP1 DUP5 SWAP1 PUSH2 0x4AED JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x4A07 PUSH2 0x3C4F JUMP JUMPDEST DUP8 PUSH2 0x4A11 DUP2 PUSH2 0x3441 JUMP JUMPDEST DUP8 PUSH2 0x4A1B DUP2 PUSH2 0x3441 JUMP JUMPDEST PUSH2 0x4A26 DUP11 DUP11 DUP11 PUSH2 0x4E16 JUMP JUMPDEST SWAP1 SWAP5 POP SWAP3 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP10 AND PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5448 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ ISZERO PUSH2 0x4A86 JUMPI PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND SWAP1 DUP6 ISZERO PUSH2 0x8FC MUL SWAP1 DUP7 SWAP1 PUSH1 0x0 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x4A80 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH2 0x4A91 JUMP JUMPDEST PUSH2 0x4A91 DUP10 DUP8 DUP7 PUSH2 0x4943 JUMP JUMPDEST PUSH2 0x4A9F DUP11 DUP11 DUP10 DUP12 DUP9 DUP9 PUSH2 0x512B JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 PUSH1 0x1 SWAP1 DUP2 ADD SLOAD SWAP4 DUP14 AND DUP4 MSTORE SWAP2 KECCAK256 ADD SLOAD PUSH2 0x4ADF SWAP2 DUP13 SWAP2 DUP13 SWAP2 PUSH4 0xFFFFFFFF SWAP1 DUP2 AND SWAP2 AND PUSH2 0x51B0 JUMP JUMPDEST POP SWAP2 SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x4AF5 PUSH2 0x5408 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE POP SWAP1 POP PUSH1 0x20 DUP2 DUP4 MLOAD PUSH1 0x20 DUP6 ADD PUSH1 0x0 DUP8 GAS CALL DUP1 ISZERO ISZERO PUSH2 0x4B22 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD ISZERO ISZERO PUSH2 0x49F5 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5452414E534645525F4641494C454400000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x4B83 PUSH2 0x53F1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x4B8F DUP8 PUSH2 0x168E JUMP JUMPDEST SWAP2 POP PUSH2 0x4B9A DUP7 PUSH2 0x168E JUMP JUMPDEST SWAP1 POP PUSH4 0xFFFFFFFF DUP6 AND ISZERO ISZERO PUSH2 0x4BCE JUMPI PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH4 0xFFFFFFFF AND SWAP5 POP JUMPDEST PUSH4 0xFFFFFFFF DUP5 AND ISZERO ISZERO PUSH2 0x4C00 JUMPI PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH4 0xFFFFFFFF AND SWAP4 POP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE DUP1 PUSH2 0x4C1E DUP4 PUSH4 0xFFFFFFFF DUP1 DUP11 AND SWAP1 PUSH2 0x3AA6 AND JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x4C36 DUP5 PUSH4 0xFFFFFFFF DUP1 DUP10 AND SWAP1 PUSH2 0x3AA6 AND JUMP JUMPDEST SWAP1 MSTORE SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH4 0xFFFFFFFF AND GT DUP1 ISZERO PUSH2 0x4C62 JUMPI POP PUSH3 0xF4240 PUSH4 0xFFFFFFFF DUP3 AND GT ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x1637 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F574549474854000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x4CC0 PUSH2 0x53F1 JUMP JUMPDEST PUSH2 0x4CC8 PUSH2 0x53F1 JUMP JUMPDEST DUP3 DUP5 LT PUSH2 0x4CE0 JUMPI PUSH2 0x4CD9 DUP5 DUP5 PUSH2 0x5241 JUMP JUMPDEST SWAP2 POP PUSH2 0x3B23 JUMP JUMPDEST PUSH2 0x4CEA DUP4 DUP6 PUSH2 0x5241 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x20 DUP1 DUP4 ADD MLOAD DUP3 MSTORE DUP3 MLOAD SWAP1 DUP3 ADD MSTORE SWAP3 POP SWAP1 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x0 SWAP1 PUSH2 0x2BFE SWAP1 PUSH3 0xF4240 SWAP1 PUSH2 0x17B0 SWAP1 DUP6 SWAP1 PUSH9 0x10000000000000000 SWAP1 DIV PUSH4 0xFFFFFFFF SWAP1 DUP2 AND SWAP1 PUSH2 0x3AA6 AND JUMP JUMPDEST PUSH1 0xB SLOAD PUSH1 0x0 SWAP1 DUP2 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x4DAB JUMPI PUSH1 0xA SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD PUSH1 0xB SLOAD SWAP1 SWAP5 AND DUP4 MSTORE SWAP1 SWAP2 KECCAK256 SLOAD DUP7 MLOAD SWAP2 DUP8 ADD MLOAD PUSH1 0x16 SLOAD PUSH2 0x4DA4 SWAP5 SWAP4 PUSH4 0xFFFFFFFF DUP1 DUP14 AND SWAP4 SWAP1 DUP13 AND SWAP3 PUSH2 0x3510 JUMP JUMPDEST SWAP1 POP PUSH2 0x4DFA JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD PUSH1 0xB SLOAD SWAP1 SWAP5 AND DUP4 MSTORE SWAP1 SWAP2 KECCAK256 SLOAD DUP7 MLOAD SWAP2 DUP8 ADD MLOAD PUSH1 0x16 SLOAD PUSH2 0x4DF7 SWAP5 SWAP4 PUSH4 0xFFFFFFFF DUP1 DUP13 AND SWAP4 SWAP1 DUP14 AND SWAP3 PUSH2 0x3510 JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH2 0x4E0B PUSH3 0xF4240 PUSH2 0x17B0 DUP6 DUP5 PUSH2 0x3AA6 JUMP JUMPDEST SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x4E23 PUSH2 0x53F1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x4E31 PUSH2 0x52FE JUMP JUMPDEST SWAP6 POP SWAP6 POP PUSH2 0x4E44 DUP12 DUP12 PUSH1 0x0 DUP1 DUP10 DUP15 PUSH2 0x466A JUMP JUMPDEST SWAP2 SWAP6 POP SWAP4 POP SWAP2 POP DUP4 ISZERO ISZERO PUSH2 0x4EA2 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5A45524F5F5441524745545F414D4F554E5400000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x4EAB DUP11 PUSH2 0x2C38 JUMP JUMPDEST SWAP1 POP DUP1 DUP5 LT PUSH2 0x4F04 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5441524745545F414D4F554E545F544F4F5F48494748000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5448 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ ISZERO PUSH2 0x4F7F JUMPI CALLVALUE DUP10 EQ PUSH2 0x4F7A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4554485F414D4F554E545F4D49534D41544348000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x5081 JUMP JUMPDEST CALLVALUE ISZERO DUP1 ISZERO PUSH2 0x502B JUMPI POP DUP9 PUSH2 0x5028 PUSH2 0x4F95 DUP14 PUSH2 0x2C38 JUMP JUMPDEST DUP14 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x4FF0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x5004 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x501A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x3D47 AND JUMP JUMPDEST LT ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x5081 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F414D4F554E540000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x508A DUP12 PUSH2 0x3F8C JUMP JUMPDEST PUSH2 0x509A DUP2 DUP6 PUSH4 0xFFFFFFFF PUSH2 0x3D47 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE PUSH1 0xC SWAP1 MSTORE KECCAK256 SLOAD PUSH2 0x50CF SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0x3B2A AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE DUP6 ISZERO PUSH2 0x511A JUMPI PUSH1 0xA SLOAD PUSH1 0xB SLOAD PUSH2 0x510D SWAP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 DUP2 AND SWAP2 AND PUSH1 0x0 DUP1 PUSH2 0x4B7B JUMP JUMPDEST DUP1 MLOAD PUSH1 0x12 SSTORE PUSH1 0x20 ADD MLOAD PUSH1 0x13 SSTORE JUMPDEST POP SWAP2 SWAP10 SWAP2 SWAP9 POP SWAP1 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0x8000000000000000000000000000000000000000000000000000000000000000 DUP2 LT PUSH2 0x5154 JUMPI INVALID JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP5 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 SWAP1 MSTORE DUP1 DUP3 ADD DUP4 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP8 AND SWAP3 DUP9 DUP3 AND SWAP3 SWAP2 DUP11 AND SWAP2 PUSH32 0x276856B36CBC45526A0BA64F44611557A2A8B68662C5388E9FE6D72E86E1C8CB SWAP2 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG4 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x51BF DUP7 DUP7 DUP7 DUP7 PUSH2 0x3EEF JUMP JUMPDEST PUSH2 0x51C8 DUP6 PUSH2 0x2125 JUMP JUMPDEST SWAP2 POP DUP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x18160DDD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x5208 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x521C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x5232 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 POP PUSH2 0x235A DUP3 DUP3 DUP8 PUSH2 0x3E8F JUMP JUMPDEST PUSH2 0x5249 PUSH2 0x53F1 JUMP JUMPDEST PUSH20 0x14484BFEEBC29F863424B06F3529A051A31BE599 DUP3 GT ISZERO PUSH2 0x529B JUMPI PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH13 0xC9F2C9CD04674EDEA40000000 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 DUP6 DIV DUP5 DUP2 ISZERO ISZERO PUSH2 0x5291 JUMPI INVALID JUMPDEST DIV SWAP1 MSTORE SWAP1 POP PUSH2 0x2BFE JUMP JUMPDEST PUSH13 0xC9F2C9CD04674EDEA40000000 DUP4 GT ISZERO PUSH2 0x52E8 JUMPI PUSH1 0x40 DUP1 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH13 0xC9F2C9CD04674EDEA40000000 DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH13 0xC9F2C9CD04674EDEA40000000 DUP6 MUL DUP2 ISZERO ISZERO PUSH2 0x5291 JUMPI INVALID JUMPDEST POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5308 PUSH2 0x53F1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5312 PUSH2 0x53F1 JUMP JUMPDEST PUSH2 0x531A PUSH2 0x53F1 JUMP JUMPDEST PUSH2 0x5322 PUSH2 0x397A JUMP JUMPDEST SWAP3 POP DUP3 PUSH1 0x11 SLOAD EQ ISZERO PUSH2 0x5350 JUMPI PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0xF SLOAD DUP2 MSTORE PUSH1 0x10 SLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 SWAP6 POP SWAP4 POP PUSH2 0x3298 JUMP JUMPDEST PUSH2 0x5358 PUSH2 0x4308 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0xF SLOAD DUP1 DUP3 MSTORE PUSH1 0x10 SLOAD PUSH1 0x20 DUP4 ADD MSTORE DUP3 MLOAD SWAP3 SWAP5 POP SWAP1 SWAP3 POP EQ DUP1 ISZERO PUSH2 0x538C JUMPI POP DUP1 PUSH1 0x20 ADD MLOAD DUP3 PUSH1 0x20 ADD MLOAD EQ JUMPDEST ISZERO PUSH2 0x539D JUMPI PUSH1 0x0 DUP3 SWAP5 POP SWAP5 POP PUSH2 0x3298 JUMP JUMPDEST DUP2 MLOAD PUSH1 0xF SSTORE PUSH1 0x20 DUP3 ADD MLOAD PUSH1 0x10 SSTORE PUSH1 0x11 DUP4 SWAP1 SSTORE PUSH2 0x53B7 PUSH2 0x3994 JUMP JUMPDEST POP PUSH1 0x1 SWAP5 SWAP1 SWAP4 POP SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xA0 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE SWAP2 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x60 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 SWAP1 PUSH1 0x20 DUP3 MUL DUP1 CODESIZE DUP4 CODECOPY POP SWAP2 SWAP3 SWAP2 POP POP JUMP STOP MSTORE8 PUSH16 0x7672796E53776170436F6E7665727465 PUSH19 0x55706772616465720000000000000000000000 STOP STOP STOP STOP STOP STOP 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee GASLIMIT MSTORE MSTORE 0x5f COINBASE NUMBER NUMBER GASLIMIT MSTORE8 MSTORE8 0x5f DIFFICULTY GASLIMIT 0x4e 0x49 GASLIMIT DIFFICULTY STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP GASLIMIT MSTORE MSTORE 0x5f 0x49 0x4e JUMP COINBASE 0x4c 0x49 DIFFICULTY 0x5f MSTORE GASLIMIT MSTORE8 GASLIMIT MSTORE JUMP GASLIMIT 0x5f NUMBER 0x4f SSTORE 0x4e SLOAD STOP STOP STOP STOP STOP STOP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 0xa8 0xe9 0xb9 0xbc 0xc5 0xf6 NUMBER SIGNEXTEND 0xca CALLVALUE 0x5d MSIZE DUP9 0xd4 RETURNDATASIZE 0xcc 0x2b 0xb8 DUP2 0xc5 0xef BYTE SWAP12 0x4e 0xeb PUSH15 0xD4019EA859C8002900000000000000 ", + "sourceMap": "101:1297:37:-;;;;;;;;;-1:-1:-1;;;101:1297:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;7097:29:4;;:8;:29;;:35;;;;;;;7089:67;;;;;;;-1:-1:-1;;;;;7089:67:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;101:1297:37;8537:211:25;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;8537:211:25;-1:-1:-1;;;;;8537:211:25;;;;;;;;;;;;;;;;;;;;;3280:206:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3280:206:60;;;;;;;1168:38:25;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1168:38:25;;;;;;;;-1:-1:-1;;;;;1168:38:25;;;;;;;;;;;;;;2354:42;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2354:42:25;;;;;;;;;;;;;;;;;;;;;;2700:30:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2700:30:4;;;;;;;;;;;;;;;;;;;;;;;18973:244;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;18973:244:4;-1:-1:-1;;;;;18973:244:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;703:538:37;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;703:538:37;;;;;;;;;;;;;;;;;5167:2660:25;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;5167:2660:25;-1:-1:-1;;;;;5167:2660:25;;;;;;;;;;;;;;;14417:102:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14417:102:4;;;;10614:103:25;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10614:103:25;;;;19274:125:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;19274:125:4;;;;;13732:152;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;13732:152:4;-1:-1:-1;;;;;13732:152:4;;;;;19798:206;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;19798:206:4;-1:-1:-1;;;;;19798:206:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18669:110;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;18669:110:4;-1:-1:-1;;;;;18669:110:4;;;;;4154:118:25;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4154:118:25;;;;1074:31;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1074:31:25;;;;8949:279;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;8949:279:25;-1:-1:-1;;;;;8949:279:25;;;;;11288:610;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;11288:610:25;-1:-1:-1;;;;;11288:610:25;;;;;1250:38:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1250:38:60;;;;18836:80:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18836:80:4;;;;10292:155;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;10292:155:4;-1:-1:-1;;;;;10292:155:4;;;;;;;;;;;;620:80:37;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;620:80:37;;;;;3902:81:25;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3902:81:25;;;;;;;;;;;;;;;;;;;;;;;10110:273;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;10110:273:25;;;;;;;2080:832:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2080:832:60;;;;8691:132:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;8691:132:4;-1:-1:-1;;;;;8691:132:4;;;;;2221:35;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2221:35:4;;;;20067:3341:25;;-1:-1:-1;;;;;20067:3341:25;;;;;;;;;10925:141;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;10925:141:25;-1:-1:-1;;;;;10925:141:25;;;;;2993:31:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2993:31:4;;;;1244:152:37;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1244:152:37;-1:-1:-1;;;;;1244:152:37;;;;;;;;;11282:601:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;11282:601:4;-1:-1:-1;;;;;11282:601:4;;;;;;;;;;;;1165:37:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1165:37:60;;;;9368:137:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;9368:137:4;-1:-1:-1;;;;;9368:137:4;;;;;26408:839:25;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;26408:839:25;-1:-1:-1;;;;;26408:839:25;;;;;;;7669:465:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;7669:465:4;-1:-1:-1;;;;;7669:465:4;;;;;8041:300:25;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;8041:300:25;;;;;12233:253;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;12233:253:25;-1:-1:-1;;;;;12233:253:25;;;;;;;;;19456:94:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19456:94:4;;;;1159:176:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1159:176:66;;;;1085:33:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1085:33:60;;;;157:20:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;157:20:66;;;;2818:34:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2818:34:4;;;;2294:53:25;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2294:53:25;-1:-1:-1;;;;;2294:53:25;;;;;12584:101:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12584:101:4;;;;1866:29:25;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1866:29:25;;;;13954:1880;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;13954:1880:25;-1:-1:-1;;;;;13954:1880:25;;;;;;;;;;;;2974:119:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2974:119:60;;;;3095:46:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3095:46:4;;;;9510:248:25;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;9510:248:25;-1:-1:-1;;;;;9510:248:25;;;;;;;1999:38;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1999:38:25;;;;2322:37:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2322:37:4;;;;2090:197:9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2090:197:9;;;;2445:34:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2445:34:4;;;;;170:26:37;;8:9:-1;5:2;;;30:1;27;20:12;5:2;170:26:37;;;;8282:71:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8282:71:4;;;;2260:30;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2260:30:4;;;;180:23:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;180:23:66;;;;12079:317:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12079:317:4;;;;4423:105:25;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4423:105:25;;;;;;;;;;;;;;;;;;;;;;;2566:43:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2566:43:4;-1:-1:-1;;;;;2566:43:4;;;;;19607:134;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;19607:134:4;-1:-1:-1;;;;;19607:134:4;;;;;12748:168:25;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12748:168:25;;;;1268:40;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1268:40:25;;;;14111:155:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;14111:155:4;-1:-1:-1;;;;;14111:155:4;;;;;23766:2230:25;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;23766:2230:25;-1:-1:-1;;;;;23766:2230:25;;;;;;;;;2405:39;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2405:39:25;;;;15044:649:4;;-1:-1:-1;;;;;15044:649:4;;;;;;;;;;;;;;;;;;;;;;;13075:444:25;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13075:444:25;;;;10618:240:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;10618:240:4;;;;;;;380:135:37;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;380:135:37;;;;;945:140:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;945:140:66;-1:-1:-1;;;;;945:140:66;;;;;2112:34:25;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2112:34:25;;;;18535:77:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18535:77:4;;;;8537:211:25;8679:7;8646:13;6115:23:4;6129:8;6115:13;:23::i;:::-;-1:-1:-1;;;;;;;8711:29:25;;;;;:14;:29;;;;;;;8537:211::o;3280:206:60:-;575:12:66;:10;:12::i;:::-;3426:26:60;:56;;;;;;;-1:-1:-1;;3426:56:60;;;;;;;;;3280:206::o;1168:38:25:-;;;-1:-1:-1;;;;;1168:38:25;;:::o;2354:42::-;;;;;;:::o;2700:30:4:-;;;;;;:::o;18973:244::-;19042:7;19054:6;19065:4;19074;19083;19097:22;;:::i;:::-;-1:-1:-1;;;;;;;;;19122:18:4;;;;;;;;:8;:18;;;;;;;;19097:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;19122:18:4;;-1:-1:-1;19122:18:4;;19097:43;18973:244::o;703:538:37:-;997:7;1020:217;1051:21;1078:23;1107:21;1134:23;1163:19;1188:21;1215:17;1020:25;:217::i;:::-;1010:227;703:538;-1:-1:-1;;;;;;;;703:538:37:o;5167:2660:25:-;5740:26;6492:51;7161:35;7251:29;7329:31;5818:11:4;:9;:11::i;:::-;575:12:66;:10;:12::i;:::-;5384:20:25;6115:23:4;6129:8;6115:13;:23::i;:::-;5423:21:25;782:18:72;791:8;782;:18::i;:::-;5463:23:25;782:18:72;791:8;782;:18::i;:::-;5510:21:25;475:23:72;489:8;475:13;:23::i;:::-;5555::25;475::72;489:8;475:13;:23::i;:::-;5642:6:25;;:14;;;;;;;;5668:4;;-1:-1:-1;;;;;5642:6:25;;:12;;:14;;;;;;;;;;;;;;:6;;:14;;;5:2:-1;;;;30:1;27;20:12;5:2;5642:14:25;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5642:14:25;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5642:14:25;-1:-1:-1;;;;;5642:31:25;;5634:64;;;;;-1:-1:-1;;;;;5634:64:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;5780:37;5790:26;5780:9;:37::i;:::-;5740:78;;5837:15;-1:-1:-1;;;;;5837:29:25;;5867:21;5837:52;;;;;-1:-1:-1;;;5837:52:25;;;;;;;-1:-1:-1;;;;;5837:52:25;-1:-1:-1;;;;;5837:52:25;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5837:52:25;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5837:52:25;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5837:52:25;5829:83;;;;;;;-1:-1:-1;;;;;5829:83:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;5931:15;-1:-1:-1;;;;;5931:29:25;;5961:23;5931:54;;;;;-1:-1:-1;;;5931:54:25;;;;;;;-1:-1:-1;;;;;5931:54:25;-1:-1:-1;;;;;5931:54:25;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5931:54:25;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5931:54:25;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5931:54:25;5923:85;;;;;;;-1:-1:-1;;;;;5923:85:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;6096:18;:16;:18::i;:::-;6183:19;:42;;-1:-1:-1;;;;;;6183:42:25;-1:-1:-1;;;;;6183:42:25;;;;;6264:13;:16;;-1:-1:-1;;6264:16:25;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6240:40:25;;;6264:16;;6240:40;6236:168;;;6319:13;:16;;6333:1;;6319:16;;;;;;;;;;;;;;;;6295:21;:40;;-1:-1:-1;;;;;;6295:40:25;-1:-1:-1;;;;;6319:16:25;;;6295:40;;;;;;6236:168;;;6388:13;:16;;6402:1;;6388:16;;;;;;;;;;;;;;;;6364:21;:40;;-1:-1:-1;;;;;;6364:40:25;-1:-1:-1;;;;;6388:16:25;;;6364:40;;;;;;6236:168;6615:28;6625:17;6615:9;:28::i;:::-;-1:-1:-1;;;;;6597:63:25;;6661:15;:13;:15::i;:::-;6597:80;;;;;-1:-1:-1;;;6597:80:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6597:80:25;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6597:80:25;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6597:80:25;;;;;;;;;;;;;;;;6492:186;;6703:13;-1:-1:-1;;;;;6703:31:25;;6735:20;6757:21;;;;;;;;;-1:-1:-1;;;;;6757:21:25;6780;6803:23;6703:124;;;;;-1:-1:-1;;;6703:124:25;;;;;;;-1:-1:-1;;;;;6703:124:25;-1:-1:-1;;;;;6703:124:25;;;;;;-1:-1:-1;;;;;6703:124:25;-1:-1:-1;;;;;6703:124:25;;;;;;-1:-1:-1;;;;;6703:124:25;-1:-1:-1;;;;;6703:124:25;;;;;;-1:-1:-1;;;;;6703:124:25;-1:-1:-1;;;;;6703:124:25;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6703:124:25;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6703:124:25;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6703:124:25;6689:11;:138;;;;;-1:-1:-1;;;;;6689:138:25;;;;;;;;;;;;;6900:19;;6921:21;;6877:66;;;;;;6900:19;;;6877:66;;;;6921:21;;;6877:66;;;;;;:11;;;;;;;;:22;;:66;;;;;;;;;;;;-1:-1:-1;6877:11:25;:66;;;5:2:-1;;;;30:1;27;20:12;5:2;6877:66:25;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6877:66:25;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6877:66:25;;;;;;;6858:15;6840:103;;;6841:13;6840:103;;;6954:18;:34;;;;;;7027:6;:4;:6::i;:::-;7001:23;:32;7220:19;;7199:41;;-1:-1:-1;;;;;7220:19:25;7199:20;:41::i;:::-;7298:19;;7161:79;;-1:-1:-1;7283:35:25;;-1:-1:-1;;;;;7298:19:25;7283:14;:35::i;:::-;7378:21;;7251:67;;-1:-1:-1;7363:37:25;;-1:-1:-1;;;;;7378:21:25;7363:14;:37::i;:::-;7329:71;;7448:21;7417:27;:52;7413:348;;;7520:1;7490:27;:31;:62;;;;7551:1;7525:23;:27;7490:62;7486:114;;;7573:11;:9;:11::i;:::-;7413:348;;;7660:1;7630:27;:31;:60;;;;;7689:1;7665:21;:25;7630:60;:91;;;;;7720:1;7694:23;:27;7630:91;7626:135;;;7738:11;:9;:11::i;:::-;7806:6;;7814:4;;-1:-1:-1;;;;;7806:6:25;7789:15;:13;:15::i;:::-;7778:41;;;;;;;;;;;;502:1:72;804;;6142::4;591::66;5167:2660:25;;;;;;;;:::o;14417:102:4:-;-1:-1:-1;;;;;;;;;;;14463:4:4;14480:29;:8;:29;;:35;;;;;;;;14417:102::o;10614:103:25:-;575:12:66;:10;:12::i;:::-;10678:23:25;:31;;-1:-1:-1;;10678:31:25;;;10614:103::o;19274:125:4:-;19336:11;19360:27;19388:6;19360:35;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;19360:35:4;;19274:125;-1:-1:-1;;19274:125:4:o;13732:152::-;13831:6;13807:13;6115:23;6129:8;6115:13;:23::i;:::-;-1:-1:-1;;;;;;;13850:23:4;;;;;:8;:23;;;;;:30;;;;;;13732:152::o;19798:206::-;19916:7;19925;19945:55;19964:12;19978;19992:7;19945:18;:55::i;:::-;19938:62;;;;19798:206;;;;;;:::o;18669:110::-;575:12:66;:10;:12::i;:::-;18741:34:4;18765:9;18741:23;:34::i;:::-;18669:110;:::o;4154:118:25:-;4195:4;4219:16;:14;:16::i;:::-;:45;;;;-1:-1:-1;4239:11:25;;;;;-1:-1:-1;;;;;4239:11:25;:25;;4219:45;4212:52;;4154:118;:::o;1074:31::-;;;;;;-1:-1:-1;;;;;1074:31:25;;:::o;8949:279::-;9094:7;9061:13;6115:23:4;6129:8;6115:13;:23::i;:::-;9126:94:25;9190:29;9205:13;9190:14;:29::i;:::-;-1:-1:-1;;;;;9126:29:25;;;;;;:14;:29;;;;;;:59;;9160:24;9126:59;:33;:59;:::i;:::-;:63;:94;:63;:94;:::i;:::-;9119:101;8949:279;-1:-1:-1;;;8949:279:25:o;11288:610::-;11359:7;11417:23;11578:24;11648:15;11705:21;11443:10;-1:-1:-1;;;;;11443:22:25;;:24;;;;;-1:-1:-1;;;11443:24:25;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11443:24:25;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11443:24:25;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11443:24:25;-1:-1:-1;;;;;11605:32:25;;;;;;;:20;11443:24;11605:32;;;;;11443:24;;-1:-1:-1;11605:32:25;;-1:-1:-1;11666:28:25;11605:32;11666:14;:28::i;:::-;-1:-1:-1;;;;;11729:28:25;;;;;;:14;:28;;;;;;11648:46;;-1:-1:-1;11729:28:25;-1:-1:-1;11843:47:25;11729:28;11843;11648:46;11855:15;11843:28;:11;:28;:::i;:::-;:32;:47;:32;:47;:::i;:::-;11836:54;11288:610;-1:-1:-1;;;;;;11288:610:25:o;1250:38:60:-;;;;;;;;;:::o;18836:80:4:-;575:12:66;:10;:12::i;:::-;18889:23:4;:21;:23::i;:::-;18836:80::o;10292:155::-;575:12:66;:10;:12::i;:::-;10400:6:4;;:43;;;;;;-1:-1:-1;;;;;10400:43:4;;;;;;;;;;;;;;;;;;;;;;:6;;;;;:21;;:43;;;;;:6;;:43;;;;;;;:6;;:43;;;5:2:-1;;;;30:1;27;20:12;5:2;10400:43:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10400:43:4;;;;10292:155;;;:::o;620:80:37:-;670:11;:26;620:80::o;3902:81:25:-;3974:1;3902:81;:::o;10110:273::-;575:12:66;:10;:12::i;:::-;10276:25:25;10238:17;:35;10256:13;10270:1;10256:16;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10256:16:25;10238:35;;;;;;;;;;;;:63;;;;10330:13;:16;;10350:25;;10312:17;;10256:16;;;;10330;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10330:16:25;10312:35;;;;;;;;;;;;:63;-1:-1:-1;;10110:273:25:o;2080:832:60:-;2281:29;2183:5;;-1:-1:-1;;;;;2183:5:60;2169:10;:19;;:50;;-1:-1:-1;2193:26:60;;;;;;;2192:27;2169:50;2161:80;;;;;;;-1:-1:-1;;;;;2161:80:60;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2161:80:60;;;;;;;;;;;;;;;2331:28;2341:17;2331:9;:28::i;:::-;2465:8;;2281:79;;-1:-1:-1;;;;;;2442:32:60;;;2465:8;;2442:32;;;;:61;;-1:-1:-1;;;;;;2478:25:60;;;;2442:61;2434:94;;;;;;;-1:-1:-1;;;;;2434:94:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;2628:40;;;;;;2650:17;2628:40;;;;;;2680:1;;-1:-1:-1;;;;;2628:21:60;;;;;:40;;;;;;;;;;;;;;;2680:1;2628:21;:40;;;5:2:-1;;;;30:1;27;20:12;5:2;2628:40:60;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2628:40:60;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2628:40:60;-1:-1:-1;;;;;2628:54:60;;;2620:87;;;;;-1:-1:-1;;;;;2620:87:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;2799:8;;;2784:12;:23;;-1:-1:-1;;;;;2799:8:60;;;-1:-1:-1;;;;;;2784:23:60;;;;;;;2886:22;;;;;;;;;;;2080:832::o;8691:132:4:-;575:12:66;:10;:12::i;:::-;8771:10:4;782:18:72;791:8;782;:18::i;:::-;-1:-1:-1;8787:19:4;:32;;-1:-1:-1;;;;;;8787:32:4;-1:-1:-1;;;;;8787:32:4;;;;;;;;;;8691:132::o;2221:35::-;2254:2;2221:35;:::o;20067:3341:25:-;20347:7;21027:28;21493;21570:23;22271;565:12:68;:10;:12::i;:::-;287:1;581:5;:14;5606:9:4;:7;:9::i;:::-;20243:13:25;6115:23:4;6129:8;6115:13;:23::i;:::-;20283:7:25;180:24:72;197:6;180:16;:24::i;:::-;20317:10:25;180:24:72;197:6;180:16;:24::i;:::-;-1:-1:-1;;;;;20482:36:25;;-1:-1:-1;;;;;;;;;;;20482:36:25;:76;;20544:9;:14;20482:76;;;20534:7;20521:9;:20;20482:76;20474:112;;;;;;;-1:-1:-1;;;;;20474:112:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;20650:21;:19;:21::i;:::-;-1:-1:-1;;;;;20794:36:25;;-1:-1:-1;;;;;;;;;;;20794:36:25;20790:147;;;-1:-1:-1;;;;;;;;;;;20885:29:25;;:8;:29;;;:37;:52;;20927:9;20885:52;:41;:52;:::i;:::-;-1:-1:-1;;;;;;;;;;;20845:29:25;;:8;:29;;;:92;20790:147;-1:-1:-1;;;;;21058:29:25;;;;;;:14;:29;;;;;;21202:23;;21058:29;;-1:-1:-1;21202:23:25;;21198:209;;;-1:-1:-1;;;;;21250:32:25;;;;;;:17;:32;;;;;;:37;;:110;;-1:-1:-1;;;;;;21328:32:25;;;;;;:17;:32;;;;;;21291:33;:20;21316:7;21291:33;:24;:33;:::i;:::-;:69;;21250:110;21242:153;;;;;;;-1:-1:-1;;;;;21242:153:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;21524:35:25;;;;;;;:20;:35;;;;;;;;;21596:30;;;;;;;21524:35;;;-1:-1:-1;21524:35:25;;21596:28;;:30;;;;;21524:35;21596:30;;;;;;;21524:35;21596:30;;;5:2:-1;;;;30:1;27;20:12;5:2;21596:30:25;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;21596:30:25;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;21596:30:25;;-1:-1:-1;;;;;;21721:36:25;;-1:-1:-1;;;;;;;;;;;21721:36:25;21717:113;;21772:58;21789:13;21804:10;21816:4;21822:7;21772:16;:58::i;:::-;-1:-1:-1;;;;;21931:23:25;;;;;;:8;:23;;;;;:31;:44;;21967:7;21931:44;:35;:44;:::i;:::-;-1:-1:-1;;;;;21897:23:25;;;;;;:8;:23;;;;;:78;22018:33;:20;22043:7;22018:33;:24;:33;:::i;:::-;-1:-1:-1;;;;;21986:29:25;;;;;;:14;:29;;;;;:65;;;;:29;-1:-1:-1;22313:25:25;;;:49;;-1:-1:-1;22342:20:25;;22313:49;22309:194;;;22395:7;22377:25;;22309:194;;;22449:54;22482:20;22449:28;:7;22461:15;22449:28;:11;:28;:::i;:54::-;22431:72;;22309:194;22522:29;;;;22514:60;;;;;-1:-1:-1;;;;;22514:60:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;22655:6;;22634:80;;;;;;-1:-1:-1;;;;;22634:80:25;;;;;;;22686:10;22634:80;;;;;;;;;;;;22655:6;;;;;22634:33;;:80;;;;;22655:6;;22634:80;;;;;;;22655:6;;22634:80;;;5:2:-1;;;;30:1;27;20:12;5:2;22634:80:25;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;22634:80:25;;;;22776:11;:9;:11::i;:::-;-1:-1:-1;;;;;22851:123:25;;22866:10;22851:123;22893:7;22902:33;:20;22893:7;22902:33;:24;:33;:::i;:::-;22937:36;:15;22957;22937:36;:19;:36;:::i;:::-;22851:123;;;;;;;;;;;;;;;;;;;;;;;;;;23055:103;23088:16;23106:36;:15;23126;23106:36;:19;:36;:::i;:::-;23144:13;23055:32;:103::i;:::-;23243:70;23272:13;23286:1;23272:16;;;;;;;;;;;;;;;;;;;;23290:13;:16;;-1:-1:-1;;;;;23272:16:25;;;;;;23290;;;;;;;;;;;;;;;-1:-1:-1;;;;;23290:16:25;;;23243:28;:70::i;:::-;-1:-1:-1;;249:1:68;604:5;:16;-1:-1:-1;23385:15:25;20067:3341;-1:-1:-1;;;;;;;20067:3341:25:o;10925:141::-;-1:-1:-1;;;;;11023:35:25;;;10992:11;11023:35;;;:20;:35;;;;;;;;10925:141::o;2993:31:4:-;;;;;;;;;:::o;1244:152:37:-;1333:13;6115:23:4;6129:8;6115:13;:23::i;:::-;-1:-1:-1;;;;;;1352:23:37;;;;;;;;:8;:23;;;;;:30;;:40;;-1:-1:-1;;1352:40:37;;;;;;;;;;;1244:152::o;11282:601:4:-;11396:25;565:12:68;:10;:12::i;:::-;287:1;581:5;:14;575:12:66;:10;:12::i;:::-;11424:29:4;-1:-1:-1;;;;;;;;;;;11424:9:4;:29::i;:::-;-1:-1:-1;;;;;11622:16:4;;;;;;:8;:16;;;;;:22;;;11396:57;;-1:-1:-1;11622:22:4;;;;;11621:23;;:38;;;11649:10;:8;:10::i;:::-;11648:11;11621:38;:68;;;-1:-1:-1;11663:5:4;;-1:-1:-1;;;;;11663:26:4;;;:5;;:26;11621:68;11613:98;;;;;;;-1:-1:-1;;;;;11613:98:4;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;11613:98:4;;;;;;;;;;;;;;;11715:42;11736:6;11744:3;11749:7;11715:20;:42::i;:::-;-1:-1:-1;;;;;11829:16:4;;;;;;:8;:16;;;;;:22;;;;;;;;11825:54;;;11853:26;11872:6;11853:18;:26::i;:::-;-1:-1:-1;;249:1:68;604:5;:16;-1:-1:-1;;11282:601:4:o;1165:37:60:-;;;-1:-1:-1;;;;;1165:37:60;;:::o;9368:137:4:-;575:12:66;:10;:12::i;:::-;-1:-1:-1;;;;;;;;;;;1510:20:60;1516:13;1510:5;:20::i;:::-;9466:6:4;;:35;;;;;;-1:-1:-1;;;;;9466:35:4;;;;;;;;;:6;;;;;:24;;:35;;;;;:6;;:35;;;;;;;:6;;:35;;;5:2:-1;;;;30:1;27;20:12;5:2;9466:35:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9466:35:4;;;;591:1:66;9368:137:4;:::o;26408:839:25:-;26534:7;26543;26568:19;26625:21;26752:9;26840;26912:11;26925;26978:23;27062:22;26590:10;-1:-1:-1;;;;;26590:22:25;;:24;;;;;-1:-1:-1;;;26590:24:25;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;26590:24:25;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;26590:24:25;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;26590:24:25;-1:-1:-1;;;;;26664:32:25;;;26649:48;26664:32;;;:20;26590:24;26664:32;;;;;;;;;;;26649:48;;:14;:48;;;;26590:24;;-1:-1:-1;26649:48:25;-1:-1:-1;26714:21:25;;;26710:494;;;26779:19;;-1:-1:-1;;;;;26779:19:25;26764:35;;;;:14;:35;;;;;;:61;;765:2;26764:61;:39;:61;:::i;:::-;26876:19;;26752:73;;-1:-1:-1;26852:44:25;;-1:-1:-1;;;;;26876:19:25;26852:23;:44::i;:::-;26840:56;;26944:1;26940;:5;:23;;26958:1;26961;26940:23;;;26949:1;26952;26940:23;26911:52;;-1:-1:-1;26911:52:25;-1:-1:-1;27004:43:25;27035:11;27004:26;:7;27016:13;27004:26;:11;:26;:::i;:43::-;26978:69;-1:-1:-1;27087:33:25;27116:3;27087:24;26978:69;27107:3;27087:24;:19;:24;:::i;:33::-;27062:58;-1:-1:-1;;27159:32:25;;;;-1:-1:-1;27062:58:25;27135:57;;26710:494;27222:13;;-1:-1:-1;27237:1:25;;-1:-1:-1;27222:13:25;;26408:839;;;;;;;;;;;;;;:::o;7669:465:4:-;7781:25;565:12:68;:10;:12::i;:::-;287:1;581:5;:14;575:12:66;:10;:12::i;:::-;-1:-1:-1;;;;;;;;;;;6115:23:4;6129:8;6115:13;:23::i;:::-;7809:29;-1:-1:-1;;;;;;;;;;;7809:9:4;:29::i;:::-;7781:57;;7938:10;:8;:10::i;:::-;7937:11;:41;;;-1:-1:-1;7952:5:4;;-1:-1:-1;;;;;7952:26:4;;;:5;;:26;7937:41;7929:71;;;;;;;-1:-1:-1;;;;;7929:71:4;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;7929:71:4;;;;;;;;;;;;;;;8004:35;;-1:-1:-1;;;;;8004:12:4;;;8025:4;8017:21;8004:35;;;;;;;;;8017:21;8004:12;:35;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8004:35:4;8078:52;-1:-1:-1;;;;;;;;;;;8078:18:4;:52::i;:::-;-1:-1:-1;;249:1:68;604:5;:16;-1:-1:-1;7669:465:4:o;8041:300:25:-;575:12:66;:10;:12::i;:::-;889:6:25;8133:43;;;8125:86;;;;;-1:-1:-1;;;;;8125:86:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;8250:16;;8227:59;;;;;;;;;;;;;;;;;;;;;;;;8297:16;:36;8041:300::o;12233:253::-;12403:1;12381:19;:17;:19::i;:::-;:23;;;12373:61;;;;;-1:-1:-1;;;;;12373:61:25;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;12373:61:25;;;;;;;;;;;;;;;12445:33;12462:6;12470:7;12445:16;:33::i;:::-;12233:253;;:::o;19456:94:4:-;19508:6;19527:19;:17;:19::i;1159:176:66:-;1219:8;;-1:-1:-1;;;;;1219:8:66;1205:10;:22;1197:52;;;;;-1:-1:-1;;;;;1197:52:66;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1197:52:66;;;;;;;;;;;;;;;1277:8;;;1270:5;;1258:28;;-1:-1:-1;;;;;1277:8:66;;;;1270:5;;;;1258:28;;;1298:8;;;;1290:16;;-1:-1:-1;;;;;;1290:16:66;;;-1:-1:-1;;;;;1298:8:66;;1290:16;;;;1310:21;;;1159:176::o;1085:33:60:-;;;-1:-1:-1;;;;;1085:33:60;;:::o;157:20:66:-;;;-1:-1:-1;;;;;157:20:66;;:::o;2818:34:4:-;;;;;;;;;:::o;2294:53:25:-;;;;;;;;;;;;;:::o;12584:101:4:-;12660:13;:20;12584:101;:::o;1866:29:25:-;;;;;;:::o;13954:1880::-;14115:7;14124;14522:24;14557;14721:20;;:::i;:::-;15092:27;15121:29;15650:20;15674:11;5606:9:4;:7;:9::i;:::-;14272:27:25;14286:12;14272:13;:27::i;:::-;14310;14324:12;14310:13;:27::i;:::-;-1:-1:-1;;;;;14356:28:25;;;;;;;;14348:63;;;;;-1:-1:-1;;;;;14348:63:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;14783:6;:4;:6::i;:::-;14756:23;;:33;14752:791;;;14813:13;14806:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;14861:8;:22;14870:12;-1:-1:-1;;;;;14861:22:25;-1:-1:-1;;;;;14861:22:25;;;;;;;;;;;;:29;;;;;;;;;;;;14841:49;;14925:8;:22;14934:12;-1:-1:-1;;;;;14925:22:25;-1:-1:-1;;;;;14925:22:25;;;;;;;;;;;;:29;;;;;;;;;;;;14905:49;;14752:791;;;15054:22;:20;:22::i;:::-;15047:29;;15154;15178:4;15154:23;:29::i;:::-;15220:19;;15091:92;;-1:-1:-1;15091:92:25;-1:-1:-1;;;;;;15204:35:25;;;15220:19;;15204:35;15200:332;;;15280:20;15260:40;;15339:22;15319:42;;15200:332;;;15435:22;15415:42;;15496:20;15476:40;;15200:332;15689:100;15709:12;15723;15737:17;15756;15775:4;15781:7;15689:19;:100::i;:::-;15649:140;;;;-1:-1:-1;13954:1880:25;;-1:-1:-1;;;;;;;;;;;;13954:1880:25:o;2974:119:60:-;575:12:66;:10;:12::i;:::-;3077::60;;3066:8;:23;;-1:-1:-1;;;;;;3066:23:60;-1:-1:-1;;;;;3077:12:60;;;3066:23;;;;;;2974:119::o;3095:46:4:-;3137:4;3095:46;:::o;9510:248:25:-;575:12:66;:10;:12::i;:::-;-1:-1:-1;;;;;;;;;;;1510:20:60;1516:13;1510:5;:20::i;:::-;9679:13:25;6115:23:4;6129:8;6115:13;:23::i;:::-;-1:-1:-1;;;;;;;9710:29:25;;;;;;;:14;:29;;;;;:40;9510:248::o;1999:38::-;;;;:::o;2322:37:4:-;;;-1:-1:-1;;;;;2322:37:4;;:::o;2090:197:9:-;2219:1;2197:19;:17;:19::i;:::-;:23;;;2189:61;;;;;-1:-1:-1;;;;;2189:61:9;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2189:61:9;;;;;;;;;;;;;;;2254:29;:27;:29::i;2445:34:4:-;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2445:34:4;;-1:-1:-1;2445:34:4;:::o;170:26:37:-;;;;:::o;8282:71:4:-;8345:4;8282:71;:::o;2260:30::-;;;-1:-1:-1;;;;;2260:30:4;;:::o;180:23:66:-;;;-1:-1:-1;;;;;180:23:66;;:::o;12079:317:4:-;12119:36;575:12:66;:10;:12::i;:::-;12177:29:4;-1:-1:-1;;;;;;;;;;;12177:9:4;:29::i;:::-;12278:6;;12119:88;;-1:-1:-1;12286:5:4;;-1:-1:-1;;;;;12278:6:4;12261:15;:13;:15::i;:::-;12250:42;;;;;;;;;;;;12297:36;12315:17;12297;:36::i;:::-;12337:34;;;;;;2254:2;12337:34;;;;;;-1:-1:-1;;;;;12337:25:4;;;;;:34;;;;;-1:-1:-1;;12337:34:4;;;;;;;-1:-1:-1;12337:25:4;:34;;;5:2:-1;;;;30:1;27;20:12;5:2;12337:34:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12337:34:4;;;;12375:17;:15;:17::i;4423:105:25:-;765:2;4423:105;:::o;2566:43:4:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;19607:134::-;19686:7;19706:31;19721:15;19706:14;:31::i;:::-;19699:38;19607:134;-1:-1:-1;;19607:134:4:o;12748:168:25:-;12800:7;12809;12829:20;;:::i;:::-;12852:22;:20;:22::i;:::-;12893:6;;12901;;;;;12893;;12901;;-1:-1:-1;12748:168:25;-1:-1:-1;;12748:168:25:o;1268:40::-;;;-1:-1:-1;;;;;1268:40:25;;:::o;14111:155:4:-;14211:7;14187:13;6115:23;6129:8;6115:13;:23::i;:::-;-1:-1:-1;;;;;;;14231:23:4;;;;;:8;:23;;;;;:31;;14111:155::o;23766:2230:25:-;24028:7;24211:25;24353:21;24575:24;24915;25370:26;565:12:68;:10;:12::i;:::-;287:1;581:5;:14;5606:9:4;:7;:9::i;:::-;23927:10:25;3498:25;3514:8;3498:15;:25::i;:::-;23964:7;180:24:72;197:6;180:16;:24::i;:::-;23998:10:25;180:24:72;197:6;180:16;:24::i;:::-;24104:21:25;:19;:21::i;:::-;24239:10;-1:-1:-1;;;;;24239:22:25;;:24;;;;;-1:-1:-1;;;24239:24:25;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;24239:24:25;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;24239:24:25;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;24239:24:25;;-1:-1:-1;24380:48:25;24408:10;24420:7;24380:27;:48::i;:::-;-1:-1:-1;24352:76:25;-1:-1:-1;24447:27:25;;;;24439:58;;;;;-1:-1:-1;;;;;24439:58:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;24602:20;:32;24623:10;-1:-1:-1;;;;;24602:32:25;-1:-1:-1;;;;;24602:32:25;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;24602:32:25;24575:59;;24710:6;;;;;;;;;-1:-1:-1;;;;;24710:6:25;-1:-1:-1;;;;;24689:33:25;;24723:10;24735;24747:7;24689:66;;;;;-1:-1:-1;;;24689:66:25;;;;;;;-1:-1:-1;;;;;24689:66:25;-1:-1:-1;;;;;24689:66:25;;;;;;-1:-1:-1;;;;;24689:66:25;-1:-1:-1;;;;;24689:66:25;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;24689:66:25;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;;;;;;;24855:22:25;;;;;;:8;:22;;;;;:30;:49;;-1:-1:-1;24890:13:25;24855:49;:34;:49;:::i;:::-;-1:-1:-1;;;;;24822:22:25;;;;;;:8;:22;;;;;;;;:82;;;;24942:14;:28;;;;:47;;24975:13;24942:47;:32;:47;:::i;:::-;-1:-1:-1;;;;;25000:28:25;;;;;;:14;:28;;;;;:47;;;24915:74;;-1:-1:-1;;;;;;;;;;;;25118:35:25;25114:170;;;25168:34;;:10;;:34;;;;;25188:13;;25168:34;;;;25188:13;25168:10;:34;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;25168:34:25;25114:170;;;25231:53;25244:12;25258:10;25270:13;25231:12;:53::i;:::-;25346:11;:9;:11::i;:::-;25399:30;:17;25421:7;25399:30;:21;:30;:::i;:::-;25495:95;;;;;;;;;;;;;;;;;;;;25370:59;;-1:-1:-1;;;;;;25495:95:25;;;25512:10;;25495:95;;;;;;;;;;25671:78;25704:10;25716:18;25736:12;25671:32;:78::i;:::-;25834:70;25863:13;25877:1;25863:16;;;;;;;;;25834:70;-1:-1:-1;;249:1:68;604:5;:16;-1:-1:-1;25975:13:25;;23766:2230;-1:-1:-1;;;;;;;;23766:2230:25:o;2405:39::-;;;;:::o;15044:649:4:-;15241:7;565:12:68;:10;:12::i;:::-;287:1;581:5;:14;15212:18:4;1510:20:60;15212:18:4;1510:5:60;:20::i;:::-;-1:-1:-1;;;;;15282:28:4;;;;;;;;15274:63;;;;;-1:-1:-1;;;;;15274:63:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;15446:19;;-1:-1:-1;;;;;15446:19:4;:33;;:132;;-1:-1:-1;15484:19:4;;:42;;;;;;-1:-1:-1;;;;;15484:42:4;;;;;;;;;:19;;;;;:33;;:42;;;;;;;;;;;;;;:19;;:42;;;5:2:-1;;;;30:1;27;20:12;5:2;15484:42:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15484:42:4;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;15484:42:4;:93;;;;-1:-1:-1;15530:19:4;;:47;;;;;;-1:-1:-1;;;;;15530:47:4;;;;;;;;;:19;;;;;:33;;:47;;;;;;;;;;;;;;:19;;:47;;;5:2:-1;;;;30:1;27;20:12;5:2;15530:47:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15530:47:4;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;15530:47:4;15484:93;15434:174;;;;;;;-1:-1:-1;;;;;15434:174:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;15620:69;15630:12;15644;15658:7;15667;15676:12;15620:9;:69::i;:::-;249:1:68;604:5;:16;15613:76:4;15044:649;-1:-1:-1;;;;;;;15044:649:4:o;13075:444:25:-;13131:7;13140;13160:20;;:::i;:::-;13217:27;13246:29;13183:22;:20;:22::i;:::-;13160:45;;13279:29;13303:4;13279:23;:29::i;:::-;13216:92;;;;13348:13;13362:1;13348:16;;;;;;;;;;;;;;;;;;;;13325:19;;-1:-1:-1;;;;;13325:19:25;;;13348:16;;13325:39;13321:125;;;13381:53;;;;;-1:-1:-1;13381:53:25;;;-1:-1:-1;13381:53:25;;13321:125;13458:53;;;;;-1:-1:-1;13458:53:25;;;-1:-1:-1;13075:444:25;;;;;;:::o;10618:240:4:-;575:12:66;:10;:12::i;:::-;10714:16:4;;;;;;;;;10696:34;;;;;10688:73;;;;;-1:-1:-1;;;;;10688:73:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;10790:13;;10770:50;;;10790:13;;;;;;;10770:50;;;;;;;;;;;;;;;;;;;;;10824:13;:30;;;;;;;;-1:-1:-1;;10824:30:4;;;;;;;;;10618:240::o;380:135:37:-;461:23;:50;380:135::o;945:140:66:-;575:12;:10;:12::i;:::-;1033:5;;-1:-1:-1;;;;;1020:18:66;;;1033:5;;1020:18;;1012:45;;;;;-1:-1:-1;;;;;1012:45:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;1061:8;:20;;-1:-1:-1;;;;;;1061:20:66;-1:-1:-1;;;;;1061:20:66;;;;;;;;;;945:140::o;2112:34:25:-;;;;;;:::o;18535:77:4:-;18602:6;;-1:-1:-1;;;;;18602:6:4;18535:77;:::o;6193:123::-;-1:-1:-1;;;;;6264:18:4;;;;;;:8;:18;;;;;:24;;;;;;;;6256:56;;;;;;;-1:-1:-1;;;;;6256:56:4;;;;;;;;;;;;;;;;;;;;;;;;;;;642:93:66;704:5;;-1:-1:-1;;;;;704:5:66;690:10;:19;682:49;;;;;-1:-1:-1;;;;;682:49:66;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;682:49:66;;;;;;;;;;;;;;31642:708:25;32006:7;;;32043:75;32094:23;32043:46;:21;32069:19;32043:46;:25;:46;:::i;:::-;:50;:75;:50;:75;:::i;:::-;32031:87;-1:-1:-1;32141:77:25;32196:21;32141:50;:23;32169:21;32141:50;:27;:50;:::i;:77::-;32129:89;;32237:1;32233;:5;32229:94;;;32260:63;32321:1;32260:56;765:2;32260:30;32261:5;;;32272:17;32260:30;:11;:30;:::i;:63::-;32253:70;;;;32229:94;32341:1;32334:8;;31642:708;;;;;;;;;;;;:::o;5884:77:4:-;5932:10;:8;:10::i;:::-;5931:11;5923:34;;;;;-1:-1:-1;;;;;5923:34:4;;;;;;;;;;;;;;;;;;;;;;;;;;;855:115:72;-1:-1:-1;;;;;917:25:72;;937:4;917:25;;909:57;;;;;-1:-1:-1;;;;;909:57:72;;;;;;;;;;;;;;;;;;;;;;;;;;;553:117;-1:-1:-1;;;;;620:22:72;;;;612:54;;;;;-1:-1:-1;;;;;612:54:72;;;;;;;;;;;;;;;;;;;;;;;;;;;3647:122:60;3732:8;;:33;;;;;;;;;;;;;;3712:7;;-1:-1:-1;;;;;3732:8:60;;:18;;:33;;;;;;;;;;;;;;3712:7;3732:8;:33;;;5:2:-1;;;;30:1;27;20:12;5:2;3732:33:60;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3732:33:60;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3732:33:60;;3647:122;-1:-1:-1;;3647:122:60:o;32598:806:25:-;32646:30;32718:31;32785:17;32840:20;32899:9;32952:28;32700:6;;;;;;;;;-1:-1:-1;;;;;32700:6:25;32646:61;;32752:9;-1:-1:-1;;;;;32752:20:25;;:22;;;;;-1:-1:-1;;;32752:22:25;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;32752:22:25;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;32752:22:25;;;;;;39:16:-1;36:1;17:17;2:54;101:4;32752:22:25;80:15:-1;;;-1:-1;;76:31;65:43;;120:4;113:20;13:2;5:11;;2:2;;;29:1;26;19:12;2:2;32752:22:25;;;;;;20:11:-1;15:3;12:20;9:2;;;45:1;42;35:12;9:2;64:21;;126:4;117:14;;142:31;;;139:2;;;186:1;183;176:12;139:2;224:3;218:10;339:9;333:2;319:12;315:21;297:16;293:44;290:59;268:11;254:12;251:29;239:119;236:2;;;371:1;368;361:12;236:2;-1:-1;;32805:17:25;;32863:13;:20;32752:22;;-1:-1:-1;32805:22:25;;-1:-1:-1;32863:20:25;-1:-1:-1;32826:1:25;;-1:-1:-1;;;;32894:503:25;32918:12;32914:1;:16;32894:503;;;32999:12;32995:181;;;33051:9;-1:-1:-1;;;;;33051:21:25;;:23;;;;;-1:-1:-1;;;33051:23:25;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;33051:23:25;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;33051:23:25;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;33051:23:25;;-1:-1:-1;32995:181:25;;;33147:10;33158:1;33147:13;;;;;;;;;;;;;;;;;;33128:32;;32995:181;33297:16;33256:20;:38;33277:13;33291:1;33277:16;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;33277:16:25;;;33256:38;;;;;;;;;;;;;;;:57;;-1:-1:-1;;;;;;33256:57:25;;;;;;;;;;;33369:13;:16;;33383:1;;33369:16;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;33328:38:25;;;;;:20;:38;;;;;;;:57;;-1:-1:-1;;;;;;33328:57:25;33369:16;;;;33328:57;;;33369:16;32932:3;;;;;32894:503;;518:99:37;557:7;577:11;;592:1;577:16;;:36;;610:3;577:36;;;-1:-1:-1;596:11:37;;;518:99::o;36624:394:25:-;36767:38;;;;;;;;;36791:13;36767:38;;;;;;;;;36705:27;;;;36767:38;;:23;:38::i;:::-;36886:19;;-1:-1:-1;;;;;36886:19:25;;;36877:29;;;;:8;:29;;;;;;36886:19;36877:36;;;:59;;;;;;-1:-1:-1;;36877:59:25;;;;;;;36956:21;;;;;36947:31;;;;:38;:63;;;;;;;;;;;-1:-1:-1;;36624:394:25:o;8967:93:4:-;9008:4;9051;-1:-1:-1;;;;;9025:31:4;:6;;;;;;;;;-1:-1:-1;;;;;9025:6:4;-1:-1:-1;;;;;9025:12:4;;:14;;;;;-1:-1:-1;;;9025:14:4;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9025:14:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9025:14:4;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9025:14:4;-1:-1:-1;;;;;9025:31:4;;;-1:-1:-1;8967:93:4;:::o;924:197:69:-;984:7;;1023;;1019:21;;;1039:1;1032:8;;;;1019:21;-1:-1:-1;1057:7:69;;;1062:2;1057;:7;1076:6;;;;;;;;:12;1068:37;;;;;-1:-1:-1;;;;;1068:37:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;1116:1;1109:8;;924:197;;;;;;:::o;288:144::-;348:7;373;;;392;;;;384:32;;;;;-1:-1:-1;;;;;384:32:69;;;;;;;;;;;;;;;;;;;;;;;;;;;1307:149;1367:7;;1388:6;;;1380:37;;;;;-1:-1:-1;;;;;1380:37:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;1438:2;1433;:7;;;;;;;;;1307:149;-1:-1:-1;;;;1307:149:69:o;670:88:68:-;718:5;;249:1;718:17;710:44;;;;;-1:-1:-1;;;;;710:44:68;;;;;;;;;;;;;;;;;;;;;;;;;;;5670:76:4;5715:10;:8;:10::i;:::-;5707:35;;;;;;;-1:-1:-1;;;;;5707:35:4;;;;;;;;;;;;;;;;;;;;;;;;;;;259:101:72;336:1;327:10;;319:37;;;;;-1:-1:-1;;;;;319:37:72;;;;;;;;;;;;;;;;;;;;;;;;;;;17223:174:4;17290:13;:20;17267;17314:79;17338:12;17334:1;:16;17314:79;;;17357:36;17376:13;17390:1;17376:16;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;17376:16:4;17357:18;:36::i;:::-;17352:3;;17314:79;;613:129:69;673:7;694:8;;;;686:34;;;;;-1:-1:-1;;;;;686:34:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;731:7:69;;;613:129::o;1740:206:70:-;351:50;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1870:71:70;;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;1870:71:70;;;;;;;25:18:-1;;61:17;;1870:71:70;182:15:-1;-1:-1;;1870:71:70;;;179:29:-1;;;;160:49;;;1854:88:70;;1862:6;;1854:7;:88::i;:::-;1740:206;;;;:::o;41528:242:25:-;-1:-1:-1;;;;;41671:91:25;;;41714:29;;;;:14;:29;;;;;;;;;;41671:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;41528:242;;;:::o;40837:344::-;41025:20;;:::i;:::-;41048:58;41059:7;41068;41077:13;41092;41048:10;:58::i;:::-;41158:6;;41166;;;;;41124:49;;;;;;;;;;;;41025:81;;-1:-1:-1;;;;;;41124:49:25;;;;;;;;;;;;;;;;;40837:344;;;;;:::o;1077:194:71:-;575:12:66;:10;:12::i;:::-;1190:6:71;475:23:72;489:8;475:13;:23::i;:::-;1211:3:71;475:23:72;489:8;475:13;:23::i;:::-;1224:3:71;782:18:72;791:8;782;:18::i;:::-;1233:34:71;1246:6;1254:3;1259:7;1233:12;:34::i;16898:269:4:-;16975:13;6115:23;6129:8;6115:13;:23::i;:::-;-1:-1:-1;;;;;16998:36:4;;-1:-1:-1;;;;;;;;;;;16998:36:4;16994:169;;;-1:-1:-1;;;;;17036:23:4;;;;;;:8;:23;;;;;17078:4;17070:21;17036:55;;16994:169;;;17134:29;;;;;;17158:4;17134:29;;;;;;-1:-1:-1;;;;;17134:23:4;;;;;:29;;;;;;;;;;;;;;-1:-1:-1;17134:23:4;:29;;;5:2:-1;;;;30:1;27;20:12;5:2;17134:29:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17134:29:4;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;17134:29:4;-1:-1:-1;;;;;17100:23:4;;;;;;:8;17134:29;17100:23;;;;:63;16898:269;;:::o;1585:128:60:-;1663:24;1673:13;1663:9;:24::i;:::-;-1:-1:-1;;;;;1649:38:60;:10;:38;1641:68;;;;;-1:-1:-1;;;;;1641:68:60;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1641:68:60;;;;;;;;;;;;;;12940:623:4;13373:26;575:12:66;:10;:12::i;:::-;5818:11:4;:9;:11::i;:::-;13043:6;475:23:72;489:8;475:13;:23::i;:::-;13061:6:4;782:18:72;791:8;782;:18::i;:::-;13090:7:4;6729:28;6749:7;6729:19;:28::i;:::-;13150:6;;-1:-1:-1;;;;;13132:25:4;;;13150:6;;13132:25;;;;:52;;-1:-1:-1;;;;;;13162:16:4;;;;;;:8;:16;;;;;:22;;;;;;;;13161:23;13132:52;13124:84;;;;;;;-1:-1:-1;;;;;13124:84:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;13251:12;;;;;;1763:7;13231:32;13220:43;;;;;;;13212:82;;;;;-1:-1:-1;;;;;13212:82:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;13306:32;:19;:17;:19::i;:::-;:32;;;13298:70;;;;;-1:-1:-1;;;;;13298:70:4;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;13298:70:4;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;13402:16:4;;;;;;;:8;:16;;;;;13422:22;;;13448:17;;;;:27;;-1:-1:-1;;13448:27:4;;;;-1:-1:-1;;13448:27:4;;;;13479:23;;;;;;;;;13506:13;27:10:-1;;23:18;;;45:23;;13506:26:4;;;;;;;;;-1:-1:-1;;;;;;13506:26:4;;;;;;;13536:12;:23;;;;;;;;;;;;;;;;;;;-1:-1:-1;12940:623:4:o;33532:1842:25:-;33586:8;;:::i;:::-;33670:21;33693;33716:18;34132:19;34872;;:::i;:::-;34918:20;;:::i;:::-;33738:11;;33774:19;;33795:21;;33738:79;;;;;;-1:-1:-1;;;;;33774:19:25;;;33738:79;;;;33795:21;;;33738:79;;;;;-1:-1:-1;;;;;;;;33738:11:25;;;;;;;;:35;;:79;;;;;;;;;;;;;;;-1:-1:-1;33738:11:25;:79;;;5:2:-1;;;;30:1;27;20:12;5:2;33738:79:25;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;33738:79:25;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;33738:79:25;;;;;;;;;;;33936:23;;33738:79;;-1:-1:-1;33738:79:25;;-1:-1:-1;33738:79:25;;-1:-1:-1;33923:36:25;;33919:124;;;33983:48;;;;;;;;;33997:13;33983:48;;;;34015:13;33983:48;;;33976:55;;;;33919:124;34163:23;;34154:6;:4;:6::i;:::-;:32;;-1:-1:-1;34289:16:25;;34285:69;;;34322:20;;;;;;;;;34329:13;34322:20;;;;;;;;;;-1:-1:-1;34322:20:25;;34285:69;1847:10;34696:38;;34692:96;;34751:25;;;;;;;;;34758:18;34751:25;;;;;;;;;;-1:-1:-1;34751:25:25;;34692:96;34872:35;;;;;;;;34894:13;34872:35;;;;;;;;;;;;34918:41;;;;;;;;34941:18;34918:41;;;;;;;;;;;;;34984:5;;34872:35;;-1:-1:-1;34918:41:25;;-1:-1:-1;34984:17:25;;;:9;:17;:::i;:::-;35034:6;;;;35024:5;;34972:29;;-1:-1:-1;35024:17:25;;:5;:17;:9;:17;:::i;:::-;35012:29;-1:-1:-1;35172:68:25;35221:18;:1;35227:11;35221:18;:5;:18;:::i;:::-;35172:44;:1;1847:10;35178:37;;;35172:44;:5;:44;:::i;:68::-;35153:87;;35270:46;1847:10;35270:17;35280:4;:6;;;35270:3;:5;;;:9;;:17;;;;:::i;:46::-;35251:65;;35336:30;35347:8;35357;35336:10;:30::i;:::-;35329:37;;33532:1842;;;;;;;;;;;;:::o;37322:725::-;37524:19;;-1:-1:-1;;;;;37524:19:25;37400:6;37509:35;;;:14;:35;;;;;;37400:6;;;;37509:35;37400:6;;;;37628:44;;:23;:44::i;:::-;37734:21;;37603:69;;-1:-1:-1;37710:46:25;;-1:-1:-1;;;;;37734:21:25;37710:23;:46::i;:::-;37683:73;;37827:29;37837:18;37827:9;:29::i;:::-;-1:-1:-1;;;;;37808:65:25;;37888:46;:20;765:2;37888:46;:24;:46;:::i;:::-;38009:7;;38031;;;;37808:231;;;-1:-1:-1;;;37808:231:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;38009:7;37808:231;;;;5:2:-1;;;;30:1;27;20:12;5:2;37808:231:25;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;37808:231:25;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;37808:231:25;;;;;;;;;-1:-1:-1;37808:231:25;-1:-1:-1;37322:725:25;;;;;;:::o;28106:1360::-;28375:20;;;;;28458:18;;;;28454:82;;;-1:-1:-1;;;;;28507:22:25;;;;;;:8;:22;;;;;:29;;;;;;-1:-1:-1;28454:82:25;28551:18;;;;28547:82;;;-1:-1:-1;;;;;28600:22:25;;;;;;:8;:22;;;;;:29;;;;;;-1:-1:-1;28547:82:25;28712:37;28736:12;28712:23;:37::i;:::-;28688:61;;28784:37;28808:12;28784:23;:37::i;:::-;28760:61;;28902:29;28912:18;28902:9;:29::i;:::-;28883:219;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;28883:74:25;;;;;;;:219;;;;;;;;;;;;;;;-1:-1:-1;28883:74:25;:219;;;5:2:-1;;;;30:1;27;20:12;5:2;28883:219:25;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;28883:219:25;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;28883:219:25;;-1:-1:-1;29253:26:25;28883:219;29253:12;:26::i;:::-;29239:40;;29303:101;29392:11;29303:84;29323:12;29337:13;29352;29367:5;29374:12;29303:19;:84::i;:101::-;29290:114;-1:-1:-1;29430:28:25;:12;29290:114;29430:28;:16;:28;:::i;:::-;29415:43;;28106:1360;;;;;;;;;;;;:::o;9796:227:4:-;575:12:66;:10;:12::i;:::-;9935:1:4;9913:19;:17;:19::i;:::-;:23;;;9905:61;;;;;-1:-1:-1;;;;;9905:61:4;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;9905:61:4;;;;;;;;;;;;;;;9970:6;;;;;;;;;-1:-1:-1;;;;;9970:6:4;-1:-1:-1;;;;;9970:22:4;;:24;;;;;-1:-1:-1;;;9970:24:4;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9970:24:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9970:24:4;;;;9998:21;:19;:21::i;3598:159:25:-;-1:-1:-1;;;;;3678:30:25;;;3720:1;3678:30;;;:20;:30;;;;;;;:44;;3670:79;;;;;-1:-1:-1;;;;;3670:79:25;;;;;;;;;;;;;;;;;;;;;;;;;;;1214:173:70;248:38;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1323:59:70;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;1323:59:70;;;;;;;;25:18:-1;;61:17;;1323:59:70;182:15:-1;-1:-1;;1323:59:70;;;179:29:-1;;;;160:49;;;1307:76:70;;1315:6;;1307:7;:76::i;:::-;1214:173;;;:::o;16421:1097:25:-;16672:7;16768:14;16784:11;5606:9:4;:7;:9::i;:::-;16604:12:25;6115:23:4;6129:8;6115:13;:23::i;:::-;16640:12:25;6115:23:4;6129:8;6115:13;:23::i;:::-;16799:46:25;16809:12;16823;16837:7;16799:9;:46::i;:::-;16767:78;;-1:-1:-1;16767:78:25;-1:-1:-1;;;;;;16932:35:25;;-1:-1:-1;;;;;;;;;;;16932:35:25;16928:187;;;16984:29;;-1:-1:-1;;;;;16984:21:25;;;:29;;;;;17006:6;;16984:29;;;;17006:6;16984:21;:29;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16984:29:25;16928:187;;;17055:48;17068:12;17082;17096:6;17055:12;:48::i;:::-;17169:82;17193:12;17207;17221:7;17230;17239:6;17247:3;17169:23;:82::i;:::-;-1:-1:-1;;;;;17375:22:25;;;;;;;:8;:22;;;;;;:29;;;;;17406:22;;;;;;;:29;;17328:108;;17347:12;;17361;;17375:29;;;;;17406;17328:18;:108::i;:::-;-1:-1:-1;17504:6:25;;16421:1097;-1:-1:-1;;;;;;;;16421:1097:25:o;2255:557:70:-;2324:21;;:::i;:::-;:36;;;;;;;;;2357:1;2324:36;;;;;2687:2;2661:3;2580:5;2574:12;2495:2;2488:5;2484:14;2465:1;2430:6;2404:3;2394:317;2725:7;2718:15;2715:2;;;2750:1;2747;2740:12;2715:2;-1:-1:-1;2773:6:70;;:11;;2765:43;;;;;-1:-1:-1;;;;;2765:43:70;;;;;;;;;;;;;;;;;;;;;;;;;;;38511:674:25;38639:8;;:::i;:::-;38710:21;38777;38734:32;38758:7;38734:23;:32::i;:::-;38710:56;;38801:32;38825:7;38801:23;:32::i;:::-;38777:56;-1:-1:-1;38882:18:25;;;;38878:91;;;-1:-1:-1;;;;;38933:17:25;;;;;;:8;:17;;;;;:24;;;;;;-1:-1:-1;38878:91:25;38985:18;;;;38981:91;;;-1:-1:-1;;;;;39036:17:25;;;;;;:8;:17;;;;;:24;;;;;;-1:-1:-1;38981:91:25;39091:86;;;;;;;;;;39105:32;:13;:32;;;;;:17;:32;:::i;:::-;39091:86;;;;39142:32;:13;:32;;;;;:17;:32;:::i;:::-;39091:86;;39084:93;38511:674;-1:-1:-1;;;;;;;38511:674:25:o;6812:149:4:-;6893:1;6883:7;:11;;;:43;;;;-1:-1:-1;1763:7:4;6898:28;;;;;6883:43;6875:82;;;;;;;-1:-1:-1;;;;;6875:82:4;;;;;;;;;;;;;;;;;;;;;;;;;;;42226:280:25;42293:8;;:::i;:::-;42402:20;;:::i;:::-;42325:8;;;42321:69;;42357:21;42371:2;42375;42357:13;:21::i;:::-;42350:28;;;;42321:69;42425:21;42439:2;42443;42425:13;:21::i;:::-;42464:34;;;;;;;;;42478:6;;;;;42464:34;;42489:6;;42464:34;;;;;-1:-1:-1;42402:44:25;-1:-1:-1;42226:280:25;;;;;:::o;16577:155:4:-;16683:13;;16645:7;;16665:63;;1826:7;;16665:32;;:13;;16683;;;16665:63;16683:13;;;;16665:17;:32;:::i;29926:1050:25:-;30218:21;;30149:7;;;;-1:-1:-1;;;;;30202:37:25;;;30218:21;;30202:37;30198:698;;;30321:19;;-1:-1:-1;;;;;30321:19:25;;;30306:35;;;;:14;:35;;;;;;;;;30375:21;;;;;30360:37;;;;;;30480:7;;30506;;;;30532:16;;30262:287;;30306:35;30262:287;;;;;;;;;:25;:287::i;:::-;30256:293;;30198:698;;;30656:19;;-1:-1:-1;;;;;30656:19:25;;;30641:35;;;;:14;:35;;;;;;;;;30710:21;;;;;30695:37;;;;;;30815:7;;30841;;;;30867:16;;30597:287;;30641:35;30597:287;;;;;;;;;:25;:287::i;:::-;30591:293;;30198:698;30915:53;1826:7:4;30915:22:25;:13;30933:3;30915:17;:22::i;:53::-;30908:60;29926:1050;-1:-1:-1;;;;;;;29926:1050:25:o;17987:1687::-;18092:7;18101;18215:16;18233:20;;:::i;:::-;18337:14;18353:19;18374:18;18664:28;18257:18;:16;:18::i;:::-;18214:61;;;;18396:68;18416:12;18430;18444:1;18447;18450:4;18456:7;18396:19;:68::i;:::-;18336:128;;-1:-1:-1;18336:128:25;-1:-1:-1;18336:128:25;-1:-1:-1;18545:11:25;;;18537:46;;;;;-1:-1:-1;;;;;18537:46:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;18695:28;18710:12;18695:14;:28::i;:::-;18664:59;-1:-1:-1;18742:29:25;;;18734:68;;;;;-1:-1:-1;;;;;18734:68:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;18882:35:25;;-1:-1:-1;;;;;;;;;;;18882:35:25;18878:261;;;18940:9;:20;;18932:56;;;;;-1:-1:-1;;;;;18932:56:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;18878:261;;;19025:9;:14;:91;;;;;19109:7;19043:62;19076:28;19091:12;19076:14;:28::i;:::-;19043:12;-1:-1:-1;;;;;19043:22:25;;19066:4;19043:28;;;;;-1:-1:-1;;;19043:28:25;;;;;;;-1:-1:-1;;;;;19043:28:25;-1:-1:-1;;;;;19043:28:25;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19043:28:25;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;19043:28:25;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;19043:28:25;;:62;:32;:62;:::i;:::-;:73;;19025:91;19017:122;;;;;;;-1:-1:-1;;;;;19017:122:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;19190:32;19209:12;19190:18;:32::i;:::-;19266;:20;19291:6;19266:32;:24;:32;:::i;:::-;-1:-1:-1;;;;;19233:22:25;;;;;;:8;:22;;;;;;;;:65;;;;19400:14;:28;;;;:45;;19433:11;19400:45;:32;:45;:::i;:::-;-1:-1:-1;;;;;19369:28:25;;;;;;:14;:28;;;;;:76;19502:125;;;;19566:19;;19587:21;;19555:60;;-1:-1:-1;;;;;19566:19:25;;;;19587:21;19566:19;;19555:10;:60::i;:::-;19534:81;;:18;:81;;;;;;19502:125;-1:-1:-1;19647:6:25;;19655:10;;-1:-1:-1;17987:1687:25;;-1:-1:-1;;;;;;;17987:1687:25:o;17773:656:4:-;18318:6;18305:19;;18298:27;;;;18334:91;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;18334:91:4;;;;;;;;;;;;;;;;;;;;;17773:656;;;;;;:::o;39657:702:25:-;40129:27;40193:29;39800:86;39829:12;39843;39857:13;39872;39800:28;:86::i;:::-;40159:23;40169:12;40159:9;:23::i;:::-;40129:53;;40225:15;-1:-1:-1;;;;;40225:27:25;;:29;;;;;-1:-1:-1;;;40225:29:25;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;40225:29:25;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;40225:29:25;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;40225:29:25;;-1:-1:-1;40265:86:25;40298:15;40225:29;40338:12;40265:32;:86::i;42632:595::-;42706:8;;:::i;:::-;42040:41;42738:34;;42734:213;;;42796:139;;;;;;;;;41974:4;42796:139;;;;;;;42884:4;:34;42876:4;:43;;;;;;;;42796:139;;42789:146;-1:-1:-1;42789:146:25;;42734:213;41974:4;42963;:34;42959:211;;;43021:137;;;;;;;;;41974:4;43021:137;;;;43138:4;41974;43101;:34;:41;;;;;;42959:211;-1:-1:-1;43189:30:25;;;;;;;;;;;;;;;;;42632:595::o;35662:782::-;35707:4;35713:8;;:::i;:::-;35741:19;36021:23;;:::i;:::-;36152:19;;:::i;:::-;35763:6;:4;:6::i;:::-;35741:28;;35874:11;35847:23;;:38;35843:100;;;35902:29;;;;;;;;;35917:13;35902:29;;;;;;;;;35910:5;;-1:-1:-1;35902:29:25;-1:-1:-1;35902:29:25;;35843:100;36047:22;:20;:22::i;:::-;36152:35;;;;;;;;;36174:13;36152:35;;;;;;;;;;36202:9;;36021:48;;-1:-1:-1;36152:35:25;;-1:-1:-1;36202:18:25;:40;;;;;36237:3;:5;;;36224:7;:9;;;:18;36202:40;36198:96;;;36267:5;36274:7;36259:23;;;;;;36198:96;36306:23;;:13;:23;;;;;;;36340;:37;;;36390:11;:9;:11::i;:::-;-1:-1:-1;36422:4:25;;36428:7;;-1:-1:-1;35662:782:25;-1:-1:-1;;35662:782:25:o;101:1297:37:-;;;;;;;;;-1:-1:-1;101:1297:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;101:1297:37;;;;;;;;:::o;:::-;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;-1:-1;101:1297:37;;;-1:-1:-1;;101:1297:37:o" + }, + "methodIdentifiers": { + "acceptAnchorOwnership()": "cdc91c69", + "acceptOwnership()": "79ba5097", + "acceptTokenOwnership()": "38a5e016", + "activate(address,address,address)": "119b90cd", + "addLiquidity(address,uint256,uint256)": "55776b77", + "addReserve(address,uint32)": "6a49d2c4", + "amplificationFactor()": "d64c5a1a", + "anchor()": "d3fb73b4", + "calculateFeeToEquilibriumTest(uint256,uint256,uint256,uint256,uint256,uint256,uint256)": "0f0fb407", + "connectorTokenCount()": "71f52bf3", + "connectorTokens(uint256)": "19b64015", + "connectors(address)": "0e53aae9", + "conversionFee()": "579cd3ca", + "conversionWhitelist()": "c45d3d92", + "conversionsEnabled()": "bf754558", + "convert(address,address,uint256,address,address)": "e8dc12ff", + "converterType()": "3e8ff43f", + "currentTime()": "d18e81b3", + "disableMaxStakedBalances()": "16912f96", + "dynamicFeeFactor()": "e8104af9", + "effectiveReserveWeights()": "ec2240f5", + "effectiveTokensRate()": "db2830a4", + "getConnectorBalance(address)": "d8959512", + "getReturn(address,address,uint256)": "1e1401f8", + "hasETHReserve()": "12c2aca4", + "isActive()": "22f3e2d4", + "isV28OrHigher()": "d260529c", + "lastConversionRate()": "f9cddde2", + "liquidationLimit(address)": "2bf0c985", + "maxConversionFee()": "94c275ad", + "maxStakedBalanceEnabled()": "0a55fb3d", + "maxStakedBalances(address)": "98a71dcb", + "newOwner()": "d4ee1d90", + "onlyOwnerCanUpdateRegistry()": "2fe8a6ad", + "owner()": "8da5cb5b", + "poolToken(address)": "5768adcf", + "prevRegistry()": "61cd756e", + "priceOracle()": "2630c12f", + "primaryReserveToken()": "0337e3fb", + "referenceRate()": "a32bff44", + "referenceRateUpdateTime()": "c3321fb0", + "registry()": "7b103999", + "removeLiquidity(address,uint256,uint256)": "e38192e3", + "removeLiquidityReturnAndFee(address,uint256)": "69067d95", + "reserveAmplifiedBalance(address)": "2bd3c107", + "reserveBalance(address)": "dc8de379", + "reserveRatio()": "0c7d5cd8", + "reserveStakedBalance(address)": "005e319c", + "reserveTokenCount()": "9b99a8e2", + "reserveTokens(uint256)": "d031370b", + "reserveWeight(address)": "1cfab290", + "reserves(address)": "d66bd524", + "restoreRegistry()": "b4a176d3", + "restrictRegistryUpdate(bool)": "024c7ec7", + "secondaryReserveToken()": "dc75eb9a", + "setConversionFee(uint32)": "ecbca55d", + "setConversionWhitelist(address)": "4af80f0e", + "setDynamicFeeFactor(uint256)": "69d1354a", + "setMaxStakedBalances(uint256,uint256)": "46749468", + "setReferenceRateUpdateTime(uint256)": "f1ff40d9", + "setReserveStakedBalance(address,uint256)": "bf7da6ba", + "setReserveWeight(address,uint32)": "59cd4eec", + "setTime(uint256)": "3beb26c4", + "targetAmountAndFee(address,address,uint256)": "af94b8d8", + "token()": "fc0c546a", + "transferAnchorOwnership(address)": "67b6d57c", + "transferOwnership(address)": "f2fde38b", + "transferTokenOwnership(address)": "21e6b53d", + "updateRegistry()": "49d10b64", + "upgrade()": "d55ec697", + "version()": "54fd4d50", + "withdrawETH(address)": "690d8320", + "withdrawFromAnchor(address,address,uint256)": "395900d4", + "withdrawTokens(address,address,uint256)": "5e35359e" + } + }, + "userdoc": { + "methods": {} + } + } + }, + "solidity/contracts/helpers/TestReentrancyGuard.sol": { + "TestReentrancyGuard": { + "abi": [ + { + "constant": false, + "inputs": [], + "name": "protectedMethod", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "calls", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "unprotectedMethod", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ], + "devdoc": { + "methods": {} + }, + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "608060405260016000556101ea806100186000396000f3006080604052600436106100565763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416632d4d800c811461005b578063305f72b714610072578063f86485d914610099575b600080fd5b34801561006757600080fd5b506100706100ae565b005b34801561007e57600080fd5b506100876100ca565b60408051918252519081900360200190f35b3480156100a557600080fd5b506100706100d0565b6100b66100da565b60026000556100c361014b565b6001600055565b60015481565b6100d861014b565b565b6000546001146100d857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f4552525f5245454e5452414e4359000000000000000000000000000000000000604482015290519081900360640190fd5b6001805481019055604080517f083b27320000000000000000000000000000000000000000000000000000000081529051339163083b273291600480830192600092919082900301818387803b1580156101a457600080fd5b505af11580156101b8573d6000803e3d6000fd5b505050505600a165627a7a7230582013b9bbc507902321b050b016568c5eb7870008b8feb261f0645cc98075a4302e0029", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x1 PUSH1 0x0 SSTORE PUSH2 0x1EA DUP1 PUSH2 0x18 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x56 JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x2D4D800C DUP2 EQ PUSH2 0x5B JUMPI DUP1 PUSH4 0x305F72B7 EQ PUSH2 0x72 JUMPI DUP1 PUSH4 0xF86485D9 EQ PUSH2 0x99 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x67 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x70 PUSH2 0xAE JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x87 PUSH2 0xCA JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x70 PUSH2 0xD0 JUMP JUMPDEST PUSH2 0xB6 PUSH2 0xDA JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 SSTORE PUSH2 0xC3 PUSH2 0x14B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x0 SSTORE JUMP JUMPDEST PUSH1 0x1 SLOAD DUP2 JUMP JUMPDEST PUSH2 0xD8 PUSH2 0x14B JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 EQ PUSH2 0xD8 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5245454E5452414E4359000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD DUP2 ADD SWAP1 SSTORE PUSH1 0x40 DUP1 MLOAD PUSH32 0x83B273200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD CALLER SWAP2 PUSH4 0x83B2732 SWAP2 PUSH1 0x4 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1A4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1B8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 SGT 0xb9 0xbb 0xc5 SMOD SWAP1 0x23 0x21 0xb0 POP 0xb0 AND JUMP DUP13 0x5e 0xb7 DUP8 STOP ADDMOD 0xb8 INVALID 0xb2 PUSH2 0xF064 0x5c 0xc9 DUP1 PUSH22 0xA4302E00290000000000000000000000000000000000 ", + "sourceMap": "767:286:38:-;;;249:1:68;362:32;;767:286:38;;;;;;" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "6080604052600436106100565763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416632d4d800c811461005b578063305f72b714610072578063f86485d914610099575b600080fd5b34801561006757600080fd5b506100706100ae565b005b34801561007e57600080fd5b506100876100ca565b60408051918252519081900360200190f35b3480156100a557600080fd5b506100706100d0565b6100b66100da565b60026000556100c361014b565b6001600055565b60015481565b6100d861014b565b565b6000546001146100d857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f4552525f5245454e5452414e4359000000000000000000000000000000000000604482015290519081900360640190fd5b6001805481019055604080517f083b27320000000000000000000000000000000000000000000000000000000081529051339163083b273291600480830192600092919082900301818387803b1580156101a457600080fd5b505af11580156101b8573d6000803e3d6000fd5b505050505600a165627a7a7230582013b9bbc507902321b050b016568c5eb7870008b8feb261f0645cc98075a4302e0029", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x56 JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x2D4D800C DUP2 EQ PUSH2 0x5B JUMPI DUP1 PUSH4 0x305F72B7 EQ PUSH2 0x72 JUMPI DUP1 PUSH4 0xF86485D9 EQ PUSH2 0x99 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x67 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x70 PUSH2 0xAE JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x87 PUSH2 0xCA JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x70 PUSH2 0xD0 JUMP JUMPDEST PUSH2 0xB6 PUSH2 0xDA JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 SSTORE PUSH2 0xC3 PUSH2 0x14B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x0 SSTORE JUMP JUMPDEST PUSH1 0x1 SLOAD DUP2 JUMP JUMPDEST PUSH2 0xD8 PUSH2 0x14B JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 EQ PUSH2 0xD8 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5245454E5452414E4359000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD DUP2 ADD SWAP1 SSTORE PUSH1 0x40 DUP1 MLOAD PUSH32 0x83B273200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD CALLER SWAP2 PUSH4 0x83B2732 SWAP2 PUSH1 0x4 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1A4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1B8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 SGT 0xb9 0xbb 0xc5 SMOD SWAP1 0x23 0x21 0xb0 POP 0xb0 AND JUMP DUP13 0x5e 0xb7 DUP8 STOP ADDMOD 0xb8 INVALID 0xb2 PUSH2 0xF064 0x5c 0xc9 DUP1 PUSH22 0xA4302E00290000000000000000000000000000000000 ", + "sourceMap": "767:286:38:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;842:59;;8:9:-1;5:2;;;30:1;27;20:12;5:2;842:59:38;;;;;;818:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;818:20:38;;;;;;;;;;;;;;;;;;;;904:51;;8:9:-1;5:2;;;30:1;27;20:12;5:2;904:51:38;;;;842:59;565:12:68;:10;:12::i;:::-;287:1;581:5;:14;892:5:38;:3;:5::i;:::-;249:1:68;604:5;:16;842:59:38:o;818:20::-;;;;:::o;904:51::-;946:5;:3;:5::i;:::-;904:51::o;670:88:68:-;718:5;;249:1;718:17;710:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;958:93:38;985:5;:7;;;;;;997:50;;;;;;;;1025:10;;997:48;;:50;;;;;985:5;;997:50;;;;;;;985:5;1025:10;997:50;;;5:2:-1;;;;30:1;27;20:12;5:2;997:50:38;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;997:50:38;;;;958:93::o" + }, + "methodIdentifiers": { + "calls()": "305f72b7", + "protectedMethod()": "2d4d800c", + "unprotectedMethod()": "f86485d9" + } + }, + "userdoc": { + "methods": {} + } + }, + "TestReentrancyGuardAttacker": { + "abi": [ + { + "constant": false, + "inputs": [], + "name": "callback", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "callProtectedMethod", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_reentrancy", + "type": "bool" + } + ], + "name": "setReentrancy", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "attacking", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_callProtectedMethod", + "type": "bool" + } + ], + "name": "setCallProtectedMethod", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "run", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "target", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "reentrancy", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "name": "_target", + "type": "address" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + } + ], + "devdoc": { + "methods": {} + }, + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b506040516020806104e0833981016040525160008054600160a060020a03909216600160a060020a031990921691909117905561048e806100526000396000f30060806040526004361061008d5763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663083b2732811461009257806317846e39146100a9578063322d5010146100d25780633c0bbcd9146100ec57806399563f1014610101578063c04062261461011b578063d4b8399214610130578063e11f493e1461016e575b600080fd5b34801561009e57600080fd5b506100a7610183565b005b3480156100b557600080fd5b506100be610236565b604080519115158252519081900360200190f35b3480156100de57600080fd5b506100a76004351515610258565b3480156100f857600080fd5b506100be610298565b34801561010d57600080fd5b506100a760043515156102bb565b34801561012757600080fd5b506100a76102fd565b34801561013c57600080fd5b50610145610425565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b34801561017a57600080fd5b506100be610441565b60005474010000000000000000000000000000000000000000900460ff1615156101ac57610234565b600054760100000000000000000000000000000000000000000000900460ff161515610213576000805476ff0000000000000000000000000000000000000000000019167601000000000000000000000000000000000000000000001790556102136102fd565b6000805476ff00000000000000000000000000000000000000000000191690555b565b6000547501000000000000000000000000000000000000000000900460ff1681565b60008054911515740100000000000000000000000000000000000000000274ff000000000000000000000000000000000000000019909216919091179055565b600054760100000000000000000000000000000000000000000000900460ff1681565b6000805491151575010000000000000000000000000000000000000000000275ff00000000000000000000000000000000000000000019909216919091179055565b6000547501000000000000000000000000000000000000000000900460ff166103a45760008054604080517ff86485d9000000000000000000000000000000000000000000000000000000008152905173ffffffffffffffffffffffffffffffffffffffff9092169263f86485d99260048084019382900301818387803b15801561038757600080fd5b505af115801561039b573d6000803e3d6000fd5b50505050610234565b60008054604080517f2d4d800c000000000000000000000000000000000000000000000000000000008152905173ffffffffffffffffffffffffffffffffffffffff90921692632d4d800c9260048084019382900301818387803b15801561040b57600080fd5b505af115801561041f573d6000803e3d6000fd5b50505050565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b60005474010000000000000000000000000000000000000000900460ff16815600a165627a7a72305820b022b45b8f978904638fc84ce5d93340e43c79f95171ba5115ce816b25fb0e020029", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP1 PUSH2 0x4E0 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 MSTORE MLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x48E DUP1 PUSH2 0x52 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x8D JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x83B2732 DUP2 EQ PUSH2 0x92 JUMPI DUP1 PUSH4 0x17846E39 EQ PUSH2 0xA9 JUMPI DUP1 PUSH4 0x322D5010 EQ PUSH2 0xD2 JUMPI DUP1 PUSH4 0x3C0BBCD9 EQ PUSH2 0xEC JUMPI DUP1 PUSH4 0x99563F10 EQ PUSH2 0x101 JUMPI DUP1 PUSH4 0xC0406226 EQ PUSH2 0x11B JUMPI DUP1 PUSH4 0xD4B83992 EQ PUSH2 0x130 JUMPI DUP1 PUSH4 0xE11F493E EQ PUSH2 0x16E JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xA7 PUSH2 0x183 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xB5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xBE PUSH2 0x236 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xDE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xA7 PUSH1 0x4 CALLDATALOAD ISZERO ISZERO PUSH2 0x258 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xF8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xBE PUSH2 0x298 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x10D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xA7 PUSH1 0x4 CALLDATALOAD ISZERO ISZERO PUSH2 0x2BB JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x127 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xA7 PUSH2 0x2FD JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x13C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x145 PUSH2 0x425 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x17A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xBE PUSH2 0x441 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO PUSH2 0x1AC JUMPI PUSH2 0x234 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH23 0x100000000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO PUSH2 0x213 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH23 0xFF00000000000000000000000000000000000000000000 NOT AND PUSH23 0x100000000000000000000000000000000000000000000 OR SWAP1 SSTORE PUSH2 0x213 PUSH2 0x2FD JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH23 0xFF00000000000000000000000000000000000000000000 NOT AND SWAP1 SSTORE JUMPDEST JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH22 0x1000000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP2 ISZERO ISZERO PUSH21 0x10000000000000000000000000000000000000000 MUL PUSH21 0xFF0000000000000000000000000000000000000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH23 0x100000000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP2 ISZERO ISZERO PUSH22 0x1000000000000000000000000000000000000000000 MUL PUSH22 0xFF000000000000000000000000000000000000000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH22 0x1000000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x3A4 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xF86485D900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND SWAP3 PUSH4 0xF86485D9 SWAP3 PUSH1 0x4 DUP1 DUP5 ADD SWAP4 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x387 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x39B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x234 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x2D4D800C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND SWAP3 PUSH4 0x2D4D800C SWAP3 PUSH1 0x4 DUP1 DUP5 ADD SWAP4 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x40B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x41F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 0xb0 0x22 0xb4 JUMPDEST DUP16 SWAP8 DUP10 DIV PUSH4 0x8FC84CE5 0xd9 CALLER BLOCKHASH 0xe4 EXTCODECOPY PUSH26 0xF95171BA5115CE816B25FB0E0200290000000000000000000000 ", + "sourceMap": "66:699:38:-;;;226:72;8:9:-1;5:2;;;30:1;27;20:12;5:2;226:72:38;;;;;;;;;;;;;278:6;:16;;-1:-1:-1;;;;;278:16:38;;;-1:-1:-1;;;;;;278:16:38;;;;;;;;;66:699;;;;;;" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "60806040526004361061008d5763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663083b2732811461009257806317846e39146100a9578063322d5010146100d25780633c0bbcd9146100ec57806399563f1014610101578063c04062261461011b578063d4b8399214610130578063e11f493e1461016e575b600080fd5b34801561009e57600080fd5b506100a7610183565b005b3480156100b557600080fd5b506100be610236565b604080519115158252519081900360200190f35b3480156100de57600080fd5b506100a76004351515610258565b3480156100f857600080fd5b506100be610298565b34801561010d57600080fd5b506100a760043515156102bb565b34801561012757600080fd5b506100a76102fd565b34801561013c57600080fd5b50610145610425565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b34801561017a57600080fd5b506100be610441565b60005474010000000000000000000000000000000000000000900460ff1615156101ac57610234565b600054760100000000000000000000000000000000000000000000900460ff161515610213576000805476ff0000000000000000000000000000000000000000000019167601000000000000000000000000000000000000000000001790556102136102fd565b6000805476ff00000000000000000000000000000000000000000000191690555b565b6000547501000000000000000000000000000000000000000000900460ff1681565b60008054911515740100000000000000000000000000000000000000000274ff000000000000000000000000000000000000000019909216919091179055565b600054760100000000000000000000000000000000000000000000900460ff1681565b6000805491151575010000000000000000000000000000000000000000000275ff00000000000000000000000000000000000000000019909216919091179055565b6000547501000000000000000000000000000000000000000000900460ff166103a45760008054604080517ff86485d9000000000000000000000000000000000000000000000000000000008152905173ffffffffffffffffffffffffffffffffffffffff9092169263f86485d99260048084019382900301818387803b15801561038757600080fd5b505af115801561039b573d6000803e3d6000fd5b50505050610234565b60008054604080517f2d4d800c000000000000000000000000000000000000000000000000000000008152905173ffffffffffffffffffffffffffffffffffffffff90921692632d4d800c9260048084019382900301818387803b15801561040b57600080fd5b505af115801561041f573d6000803e3d6000fd5b50505050565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b60005474010000000000000000000000000000000000000000900460ff16815600a165627a7a72305820b022b45b8f978904638fc84ce5d93340e43c79f95171ba5115ce816b25fb0e020029", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x8D JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x83B2732 DUP2 EQ PUSH2 0x92 JUMPI DUP1 PUSH4 0x17846E39 EQ PUSH2 0xA9 JUMPI DUP1 PUSH4 0x322D5010 EQ PUSH2 0xD2 JUMPI DUP1 PUSH4 0x3C0BBCD9 EQ PUSH2 0xEC JUMPI DUP1 PUSH4 0x99563F10 EQ PUSH2 0x101 JUMPI DUP1 PUSH4 0xC0406226 EQ PUSH2 0x11B JUMPI DUP1 PUSH4 0xD4B83992 EQ PUSH2 0x130 JUMPI DUP1 PUSH4 0xE11F493E EQ PUSH2 0x16E JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xA7 PUSH2 0x183 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xB5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xBE PUSH2 0x236 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xDE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xA7 PUSH1 0x4 CALLDATALOAD ISZERO ISZERO PUSH2 0x258 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xF8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xBE PUSH2 0x298 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x10D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xA7 PUSH1 0x4 CALLDATALOAD ISZERO ISZERO PUSH2 0x2BB JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x127 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xA7 PUSH2 0x2FD JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x13C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x145 PUSH2 0x425 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x17A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xBE PUSH2 0x441 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO PUSH2 0x1AC JUMPI PUSH2 0x234 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH23 0x100000000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO PUSH2 0x213 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH23 0xFF00000000000000000000000000000000000000000000 NOT AND PUSH23 0x100000000000000000000000000000000000000000000 OR SWAP1 SSTORE PUSH2 0x213 PUSH2 0x2FD JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH23 0xFF00000000000000000000000000000000000000000000 NOT AND SWAP1 SSTORE JUMPDEST JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH22 0x1000000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP2 ISZERO ISZERO PUSH21 0x10000000000000000000000000000000000000000 MUL PUSH21 0xFF0000000000000000000000000000000000000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH23 0x100000000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP2 ISZERO ISZERO PUSH22 0x1000000000000000000000000000000000000000000 MUL PUSH22 0xFF000000000000000000000000000000000000000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH22 0x1000000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x3A4 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xF86485D900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND SWAP3 PUSH4 0xF86485D9 SWAP3 PUSH1 0x4 DUP1 DUP5 ADD SWAP4 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x387 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x39B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x234 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x2D4D800C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND SWAP3 PUSH4 0x2D4D800C SWAP3 PUSH1 0x4 DUP1 DUP5 ADD SWAP4 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x40B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x41F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 0xb0 0x22 0xb4 JUMPDEST DUP16 SWAP8 DUP10 DIV PUSH4 0x8FC84CE5 0xd9 CALLER BLOCKHASH 0xe4 EXTCODECOPY PUSH26 0xF95171BA5115CE816B25FB0E0200290000000000000000000000 ", + "sourceMap": "66:699:38:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;615:148;;8:9:-1;5:2;;;30:1;27;20:12;5:2;615:148:38;;;;;;167:31;;8:9:-1;5:2;;;30:1;27;20:12;5:2;167:31:38;;;;;;;;;;;;;;;;;;;;;;301:82;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;301:82:38;;;;;;;201:21;;8:9:-1;5:2;;;30:1;27;20:12;5:2;201:21:38;;;;386:118;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;386:118:38;;;;;;;507:105;;8:9:-1;5:2;;;30:1;27;20:12;5:2;507:105:38;;;;106:33;;8:9:-1;5:2;;;30:1;27;20:12;5:2;106:33:38;;;;;;;;;;;;;;;;;;;;;;;142:22;;8:9:-1;5:2;;;30:1;27;20:12;5:2;142:22:38;;;;615:148;653:10;;;;;;;652:11;648:33;;;670:7;;648:33;690:9;;;;;;;689:10;685:53;;;706:9;:16;;-1:-1:-1;;706:16:38;;;;;728:5;:3;:5::i;:::-;754;742:17;;-1:-1:-1;;742:17:38;;;615:148;:::o;167:31::-;;;;;;;;;:::o;301:82::-;355:10;:24;;;;;;;-1:-1:-1;;355:24:38;;;;;;;;;301:82::o;201:21::-;;;;;;;;;:::o;386:118::-;458:19;:42;;;;;;;-1:-1:-1;;458:42:38;;;;;;;;;386:118::o;507:105::-;533:19;;;;;;;:75;;582:6;;;:26;;;;;;;;:6;;;;;:24;;:26;;;;;;;;;;:6;;:26;;;5:2:-1;;;;30:1;27;20:12;5:2;582:26:38;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;582:26:38;;;;533:75;;;555:6;;;:24;;;;;;;;:6;;;;;:22;;:24;;;;;;;;;;:6;;:24;;;5:2:-1;;;;30:1;27;20:12;5:2;555:24:38;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;555:24:38;;;;507:105::o;106:33::-;;;;;;:::o;142:22::-;;;;;;;;;:::o" + }, + "methodIdentifiers": { + "attacking()": "3c0bbcd9", + "callProtectedMethod()": "17846e39", + "callback()": "083b2732", + "reentrancy()": "e11f493e", + "run()": "c0406226", + "setCallProtectedMethod(bool)": "99563f10", + "setReentrancy(bool)": "322d5010", + "target()": "d4b83992" + } + }, + "userdoc": { + "methods": {} + } + } + }, + "solidity/contracts/helpers/TestSafeMath.sol": { + "TestSafeMath": { + "abi": [ + { + "constant": true, + "inputs": [ + { + "name": "_x", + "type": "uint256" + }, + { + "name": "_y", + "type": "uint256" + } + ], + "name": "testSafeDiv", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_x", + "type": "uint256" + }, + { + "name": "_y", + "type": "uint256" + } + ], + "name": "testSafeMul", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_x", + "type": "uint256" + }, + { + "name": "_y", + "type": "uint256" + } + ], + "name": "testSafeAdd", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_x", + "type": "uint256" + }, + { + "name": "_y", + "type": "uint256" + } + ], + "name": "testSafeSub", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + } + ], + "devdoc": { + "methods": {} + }, + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b50610308806100206000396000f3006080604052600436106100615763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416635e47381d81146100665780639ee6ff7014610093578063de47864c146100ae578063ec0da330146100c9575b600080fd5b34801561007257600080fd5b506100816004356024356100e4565b60408051918252519081900360200190f35b34801561009f57600080fd5b506100816004356024356100fd565b3480156100ba57600080fd5b5061008160043560243561010f565b3480156100d557600080fd5b50610081600435602435610121565b60006100f6838363ffffffff61013316565b9392505050565b60006100f6838363ffffffff6101a616565b60006100f6838363ffffffff61021f16565b60006100f6838363ffffffff61027c16565b60008080831161018d576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f4449564944455f42595f5a45524f0000000000000000000000000000604482015290519081900360640190fd5b828481151561019857fe5b0490508091505b5092915050565b6000808315156101b9576000915061019f565b508282028284828115156101c957fe5b04146100f6576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b6000828201838110156100f6576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b6000818310156102d6576040805160e560020a62461bcd02815260206004820152600d60248201527f4552525f554e444552464c4f5700000000000000000000000000000000000000604482015290519081900360640190fd5b509003905600a165627a7a7230582052e74fdc4364f4ff7467db12347b22713d35e2b282f8244180d58e5855ef53310029", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x308 DUP1 PUSH2 0x20 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x61 JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x5E47381D DUP2 EQ PUSH2 0x66 JUMPI DUP1 PUSH4 0x9EE6FF70 EQ PUSH2 0x93 JUMPI DUP1 PUSH4 0xDE47864C EQ PUSH2 0xAE JUMPI DUP1 PUSH4 0xEC0DA330 EQ PUSH2 0xC9 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x72 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x81 PUSH1 0x4 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH2 0xE4 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x81 PUSH1 0x4 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH2 0xFD JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xBA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x81 PUSH1 0x4 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH2 0x10F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xD5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x81 PUSH1 0x4 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH2 0x121 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xF6 DUP4 DUP4 PUSH4 0xFFFFFFFF PUSH2 0x133 AND JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xF6 DUP4 DUP4 PUSH4 0xFFFFFFFF PUSH2 0x1A6 AND JUMP JUMPDEST PUSH1 0x0 PUSH2 0xF6 DUP4 DUP4 PUSH4 0xFFFFFFFF PUSH2 0x21F AND JUMP JUMPDEST PUSH1 0x0 PUSH2 0xF6 DUP4 DUP4 PUSH4 0xFFFFFFFF PUSH2 0x27C AND JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP4 GT PUSH2 0x18D JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4449564944455F42595F5A45524F0000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP3 DUP5 DUP2 ISZERO ISZERO PUSH2 0x198 JUMPI INVALID JUMPDEST DIV SWAP1 POP DUP1 SWAP2 POP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 ISZERO ISZERO PUSH2 0x1B9 JUMPI PUSH1 0x0 SWAP2 POP PUSH2 0x19F JUMP JUMPDEST POP DUP3 DUP3 MUL DUP3 DUP5 DUP3 DUP2 ISZERO ISZERO PUSH2 0x1C9 JUMPI INVALID JUMPDEST DIV EQ PUSH2 0xF6 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP3 DUP3 ADD DUP4 DUP2 LT ISZERO PUSH2 0xF6 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 DUP4 LT ISZERO PUSH2 0x2D6 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F554E444552464C4F5700000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP SWAP1 SUB SWAP1 JUMP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 MSTORE 0xe7 0x4f 0xdc NUMBER PUSH5 0xF4FF7467DB SLT CALLVALUE PUSH28 0x22713D35E2B282F8244180D58E5855EF533100290000000000000000 ", + "sourceMap": "124:466:39:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;124:466:39;;;;;;;" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "6080604052600436106100615763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416635e47381d81146100665780639ee6ff7014610093578063de47864c146100ae578063ec0da330146100c9575b600080fd5b34801561007257600080fd5b506100816004356024356100e4565b60408051918252519081900360200190f35b34801561009f57600080fd5b506100816004356024356100fd565b3480156100ba57600080fd5b5061008160043560243561010f565b3480156100d557600080fd5b50610081600435602435610121565b60006100f6838363ffffffff61013316565b9392505050565b60006100f6838363ffffffff6101a616565b60006100f6838363ffffffff61021f16565b60006100f6838363ffffffff61027c16565b60008080831161018d576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f4449564944455f42595f5a45524f0000000000000000000000000000604482015290519081900360640190fd5b828481151561019857fe5b0490508091505b5092915050565b6000808315156101b9576000915061019f565b508282028284828115156101c957fe5b04146100f6576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b6000828201838110156100f6576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b6000818310156102d6576040805160e560020a62461bcd02815260206004820152600d60248201527f4552525f554e444552464c4f5700000000000000000000000000000000000000604482015290519081900360640190fd5b509003905600a165627a7a7230582052e74fdc4364f4ff7467db12347b22713d35e2b282f8244180d58e5855ef53310029", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x61 JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x5E47381D DUP2 EQ PUSH2 0x66 JUMPI DUP1 PUSH4 0x9EE6FF70 EQ PUSH2 0x93 JUMPI DUP1 PUSH4 0xDE47864C EQ PUSH2 0xAE JUMPI DUP1 PUSH4 0xEC0DA330 EQ PUSH2 0xC9 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x72 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x81 PUSH1 0x4 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH2 0xE4 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x81 PUSH1 0x4 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH2 0xFD JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xBA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x81 PUSH1 0x4 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH2 0x10F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xD5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x81 PUSH1 0x4 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH2 0x121 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xF6 DUP4 DUP4 PUSH4 0xFFFFFFFF PUSH2 0x133 AND JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xF6 DUP4 DUP4 PUSH4 0xFFFFFFFF PUSH2 0x1A6 AND JUMP JUMPDEST PUSH1 0x0 PUSH2 0xF6 DUP4 DUP4 PUSH4 0xFFFFFFFF PUSH2 0x21F AND JUMP JUMPDEST PUSH1 0x0 PUSH2 0xF6 DUP4 DUP4 PUSH4 0xFFFFFFFF PUSH2 0x27C AND JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP4 GT PUSH2 0x18D JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4449564944455F42595F5A45524F0000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP3 DUP5 DUP2 ISZERO ISZERO PUSH2 0x198 JUMPI INVALID JUMPDEST DIV SWAP1 POP DUP1 SWAP2 POP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 ISZERO ISZERO PUSH2 0x1B9 JUMPI PUSH1 0x0 SWAP2 POP PUSH2 0x19F JUMP JUMPDEST POP DUP3 DUP3 MUL DUP3 DUP5 DUP3 DUP2 ISZERO ISZERO PUSH2 0x1C9 JUMPI INVALID JUMPDEST DIV EQ PUSH2 0xF6 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP3 DUP3 ADD DUP4 DUP2 LT ISZERO PUSH2 0xF6 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 DUP4 LT ISZERO PUSH2 0x2D6 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F554E444552464C4F5700000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP SWAP1 SUB SWAP1 JUMP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 MSTORE 0xe7 0x4f 0xdc NUMBER PUSH5 0xF4FF7467DB SLT CALLVALUE PUSH28 0x22713D35E2B282F8244180D58E5855EF533100290000000000000000 ", + "sourceMap": "124:466:39:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;488:100;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;488:100:39;;;;;;;;;;;;;;;;;;;;;;;385;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;385:100:39;;;;;;;179;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;179:100:39;;;;;;;282;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;282:100:39;;;;;;;488;554:7;574:10;:2;581;574:10;:6;:10;:::i;:::-;567:17;488:100;-1:-1:-1;;;488:100:39:o;385:::-;451:7;471:10;:2;478;471:10;:6;:10;:::i;179:100::-;245:7;265:10;:2;272;265:10;:6;:10;:::i;282:100::-;348:7;368:10;:2;375;368:10;:6;:10;:::i;1307:149:69:-;1367:7;;1388:6;;;1380:37;;;;;-1:-1:-1;;;;;1380:37:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;1438:2;1433;:7;;;;;;;;1421:19;;1451:1;1444:8;;1307:149;;;;;;:::o;924:197::-;984:7;;1023;;1019:21;;;1039:1;1032:8;;;;1019:21;-1:-1:-1;1057:7:69;;;1062:2;1057;:7;1076:6;;;;;;;;:12;1068:37;;;;;-1:-1:-1;;;;;1068:37:69;;;;;;;;;;;;;;;;;;;;;;;;;;;288:144;348:7;373;;;392;;;;384:32;;;;;-1:-1:-1;;;;;384:32:69;;;;;;;;;;;;;;;;;;;;;;;;;;;613:129;673:7;694:8;;;;686:34;;;;;-1:-1:-1;;;;;686:34:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;731:7:69;;;613:129::o" + }, + "methodIdentifiers": { + "testSafeAdd(uint256,uint256)": "de47864c", + "testSafeDiv(uint256,uint256)": "5e47381d", + "testSafeMul(uint256,uint256)": "9ee6ff70", + "testSafeSub(uint256,uint256)": "ec0da330" + } + }, + "userdoc": { + "methods": {} + } + } + }, + "solidity/contracts/helpers/TestSovrynSwapFormula.sol": { + "TestSovrynSwapFormula": { + "abi": [ + { + "constant": true, + "inputs": [ + { + "name": "_supply", + "type": "uint256" + }, + { + "name": "_reserveBalance", + "type": "uint256" + }, + { + "name": "_reserveRatio", + "type": "uint32" + }, + { + "name": "_amount", + "type": "uint256" + } + ], + "name": "calculateFundCost", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_supply", + "type": "uint256" + }, + { + "name": "_reserveBalance", + "type": "uint256" + }, + { + "name": "_reserveWeight", + "type": "uint32" + }, + { + "name": "_amount", + "type": "uint256" + } + ], + "name": "calculatePurchaseReturn", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_supply", + "type": "uint256" + }, + { + "name": "_reserveBalance", + "type": "uint256" + }, + { + "name": "_reserveRatio", + "type": "uint32" + }, + { + "name": "_amount", + "type": "uint256" + } + ], + "name": "fundSupplyAmount", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_supply", + "type": "uint256" + }, + { + "name": "_reserveBalance", + "type": "uint256" + }, + { + "name": "_reserveRatio", + "type": "uint32" + }, + { + "name": "_amount", + "type": "uint256" + } + ], + "name": "liquidateRate", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_a", + "type": "uint256" + }, + { + "name": "_b", + "type": "uint256" + } + ], + "name": "normalizedWeightsTest", + "outputs": [ + { + "name": "", + "type": "uint32" + }, + { + "name": "", + "type": "uint32" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "x", + "type": "uint256" + } + ], + "name": "optimalLogTest", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_n", + "type": "uint256" + }, + { + "name": "_d", + "type": "uint256" + } + ], + "name": "roundDivTest", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_supply", + "type": "uint256" + }, + { + "name": "_reserveBalance", + "type": "uint256" + }, + { + "name": "_reserveWeight", + "type": "uint32" + }, + { + "name": "_amount", + "type": "uint256" + } + ], + "name": "purchaseRate", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "x", + "type": "uint256" + } + ], + "name": "generalLogTest", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_supply", + "type": "uint256" + }, + { + "name": "_reserveBalance", + "type": "uint256" + }, + { + "name": "_reserveWeight", + "type": "uint32" + }, + { + "name": "_amount", + "type": "uint256" + } + ], + "name": "calculateSaleReturn", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "version", + "outputs": [ + { + "name": "", + "type": "uint16" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_sourceReserveBalance", + "type": "uint256" + }, + { + "name": "_sourceReserveWeight", + "type": "uint32" + }, + { + "name": "_targetReserveBalance", + "type": "uint256" + }, + { + "name": "_targetReserveWeight", + "type": "uint32" + }, + { + "name": "_amount", + "type": "uint256" + } + ], + "name": "calculateCrossConnectorReturn", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_x", + "type": "uint256" + }, + { + "name": "_precision", + "type": "uint8" + } + ], + "name": "generalExpTest", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_supply", + "type": "uint256" + }, + { + "name": "_reserveBalance", + "type": "uint256" + }, + { + "name": "_reserveWeight", + "type": "uint32" + }, + { + "name": "_amount", + "type": "uint256" + } + ], + "name": "saleTargetAmount", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_sourceReserveBalance", + "type": "uint256" + }, + { + "name": "_sourceReserveWeight", + "type": "uint32" + }, + { + "name": "_targetReserveBalance", + "type": "uint256" + }, + { + "name": "_targetReserveWeight", + "type": "uint32" + }, + { + "name": "_amount", + "type": "uint256" + } + ], + "name": "calculateCrossReserveReturn", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_supply", + "type": "uint256" + }, + { + "name": "_reserveBalance", + "type": "uint256" + }, + { + "name": "_reserveRatio", + "type": "uint32" + }, + { + "name": "_amount", + "type": "uint256" + } + ], + "name": "liquidateReserveAmount", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_baseN", + "type": "uint256" + }, + { + "name": "_baseD", + "type": "uint256" + }, + { + "name": "_expN", + "type": "uint32" + }, + { + "name": "_expD", + "type": "uint32" + } + ], + "name": "powerTest", + "outputs": [ + { + "name": "", + "type": "uint256" + }, + { + "name": "", + "type": "uint8" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_sourceReserveBalance", + "type": "uint256" + }, + { + "name": "_sourceReserveWeight", + "type": "uint32" + }, + { + "name": "_targetReserveBalance", + "type": "uint256" + }, + { + "name": "_targetReserveWeight", + "type": "uint32" + }, + { + "name": "_amount", + "type": "uint256" + } + ], + "name": "crossReserveTargetAmount", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_sourceReserveBalance", + "type": "uint256" + }, + { + "name": "_sourceReserveWeight", + "type": "uint32" + }, + { + "name": "_targetReserveBalance", + "type": "uint256" + }, + { + "name": "_targetReserveWeight", + "type": "uint32" + }, + { + "name": "_amount", + "type": "uint256" + } + ], + "name": "crossReserveRate", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_primaryReserveStakedBalance", + "type": "uint256" + }, + { + "name": "_primaryReserveBalance", + "type": "uint256" + }, + { + "name": "_secondaryReserveBalance", + "type": "uint256" + }, + { + "name": "_reserveRateNumerator", + "type": "uint256" + }, + { + "name": "_reserveRateDenominator", + "type": "uint256" + } + ], + "name": "balancedWeights", + "outputs": [ + { + "name": "", + "type": "uint32" + }, + { + "name": "", + "type": "uint32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_x", + "type": "uint256" + } + ], + "name": "findPositionInMaxExpArrayTest", + "outputs": [ + { + "name": "", + "type": "uint8" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_supply", + "type": "uint256" + }, + { + "name": "_reserveBalance", + "type": "uint256" + }, + { + "name": "_reserveRatio", + "type": "uint32" + }, + { + "name": "_amount", + "type": "uint256" + } + ], + "name": "calculateLiquidateReturn", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "x", + "type": "uint256" + } + ], + "name": "optimalExpTest", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_n", + "type": "uint256" + } + ], + "name": "floorLog2Test", + "outputs": [ + { + "name": "", + "type": "uint8" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "init", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_a", + "type": "uint256" + }, + { + "name": "_b", + "type": "uint256" + } + ], + "name": "accurateWeightsTest", + "outputs": [ + { + "name": "", + "type": "uint32" + }, + { + "name": "", + "type": "uint32" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_supply", + "type": "uint256" + }, + { + "name": "_reserveBalance", + "type": "uint256" + }, + { + "name": "_reserveRatio", + "type": "uint32" + }, + { + "name": "_amount", + "type": "uint256" + } + ], + "name": "fundCost", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_supply", + "type": "uint256" + }, + { + "name": "_reserveBalance", + "type": "uint256" + }, + { + "name": "_reserveWeight", + "type": "uint32" + }, + { + "name": "_amount", + "type": "uint256" + } + ], + "name": "purchaseTargetAmount", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_supply", + "type": "uint256" + }, + { + "name": "_reserveBalance", + "type": "uint256" + }, + { + "name": "_reserveWeight", + "type": "uint32" + }, + { + "name": "_amount", + "type": "uint256" + } + ], + "name": "saleRate", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + } + ], + "devdoc": { + "methods": { + "balancedWeights(uint256,uint256,uint256,uint256,uint256)": { + "details": "The arbitrage incentive is to convert to the point where the on-chain price is equal to the off-chain price. We want this operation to also impact the primary reserve balance becoming equal to the primary reserve staked balance. In other words, we want the arbitrager to convert the difference between the reserve balance and the reserve staked balance.\t * Formula input: - let t denote the primary reserve token staked balance - let s denote the primary reserve token balance - let r denote the secondary reserve token balance - let q denote the numerator of the rate between the tokens - let p denote the denominator of the rate between the tokens Where p primary tokens are equal to q secondary tokens\t * Formula output: - compute x = W(t / r * q / p * log(s / t)) / log(s / t) - return x / (1 + x) as the weight of the primary reserve token - return 1 / (1 + x) as the weight of the secondary reserve token Where W is the Lambert W Function\t * If the rate-provider provides the rates for a common unit, for example: - P = 2 ==> 2 primary reserve tokens = 1 ether - Q = 3 ==> 3 secondary reserve tokens = 1 ether Then you can simply use p = P and q = Q\t * If the rate-provider provides the rates for a single unit, for example: - P = 2 ==> 1 primary reserve token = 2 ethers - Q = 3 ==> 1 secondary reserve token = 3 ethers Then you can simply use p = Q and q = P", + "params": { + "_primaryReserveBalance": "the primary reserve token balance", + "_primaryReserveStakedBalance": "the primary reserve token staked balance", + "_reserveRateDenominator": "the denominator of the rate between the tokens\t * Note that `numerator / denominator` should represent the amount of secondary tokens equal to one primary token", + "_reserveRateNumerator": "the numerator of the rate between the tokens", + "_secondaryReserveBalance": "the secondary reserve token balance" + }, + "return": "the weight of the primary reserve token and the weight of the secondary reserve token, both in ppm (0-1000000)" + }, + "calculateCrossConnectorReturn(uint256,uint32,uint256,uint32,uint256)": { + "details": "deprecated, backward compatibility" + }, + "calculateCrossReserveReturn(uint256,uint32,uint256,uint32,uint256)": { + "details": "deprecated, backward compatibility" + }, + "calculateFundCost(uint256,uint256,uint32,uint256)": { + "details": "deprecated, backward compatibility" + }, + "calculateLiquidateReturn(uint256,uint256,uint32,uint256)": { + "details": "deprecated, backward compatibility" + }, + "calculatePurchaseReturn(uint256,uint256,uint32,uint256)": { + "details": "deprecated, backward compatibility" + }, + "calculateSaleReturn(uint256,uint256,uint32,uint256)": { + "details": "deprecated, backward compatibility" + }, + "crossReserveRate(uint256,uint32,uint256,uint32,uint256)": { + "details": "deprecated, backward compatibility" + }, + "crossReserveTargetAmount(uint256,uint32,uint256,uint32,uint256)": { + "details": "given two reserve balances/weights and a sell amount (in the first reserve token), calculates the target amount for a conversion from the source reserve token to the target reserve token\t * Formula: return = _targetReserveBalance * (1 - (_sourceReserveBalance / (_sourceReserveBalance + _amount)) ^ (_sourceReserveWeight / _targetReserveWeight))", + "params": { + "_amount": "source reserve amount", + "_sourceReserveBalance": "source reserve balance", + "_sourceReserveWeight": "source reserve weight, represented in ppm (1-1000000)", + "_targetReserveBalance": "target reserve balance", + "_targetReserveWeight": "target reserve weight, represented in ppm (1-1000000)" + }, + "return": "target reserve amount" + }, + "fundCost(uint256,uint256,uint32,uint256)": { + "details": "given a smart token supply, reserve balance, reserve ratio and an amount of requested smart tokens, calculates the amount of reserve tokens required for purchasing the given amount of smart tokens\t * Formula: return = _reserveBalance * (((_supply + _amount) / _supply) ^ (MAX_WEIGHT / _reserveRatio) - 1)", + "params": { + "_amount": "requested amount of smart tokens", + "_reserveBalance": "reserve balance", + "_reserveRatio": "reserve ratio, represented in ppm (2-2000000)", + "_supply": "smart token supply" + }, + "return": "reserve token amount" + }, + "fundSupplyAmount(uint256,uint256,uint32,uint256)": { + "details": "given a smart token supply, reserve balance, reserve ratio and an amount of reserve tokens to fund with, calculates the amount of smart tokens received for purchasing with the given amount of reserve tokens\t * Formula: return = _supply * ((_amount / _reserveBalance + 1) ^ (_reserveRatio / MAX_WEIGHT) - 1)", + "params": { + "_amount": "amount of reserve tokens to fund with", + "_reserveBalance": "reserve balance", + "_reserveRatio": "reserve ratio, represented in ppm (2-2000000)", + "_supply": "smart token supply" + }, + "return": "smart token amount" + }, + "init()": { + "details": "should be executed after construction (too large for the constructor)" + }, + "liquidateRate(uint256,uint256,uint32,uint256)": { + "details": "deprecated, backward compatibility" + }, + "liquidateReserveAmount(uint256,uint256,uint32,uint256)": { + "details": "given a smart token supply, reserve balance, reserve ratio and an amount of smart tokens to liquidate, calculates the amount of reserve tokens received for selling the given amount of smart tokens\t * Formula: return = _reserveBalance * (1 - ((_supply - _amount) / _supply) ^ (MAX_WEIGHT / _reserveRatio))", + "params": { + "_amount": "amount of smart tokens to liquidate", + "_reserveBalance": "reserve balance", + "_reserveRatio": "reserve ratio, represented in ppm (2-2000000)", + "_supply": "smart token supply" + }, + "return": "reserve token amount" + }, + "purchaseRate(uint256,uint256,uint32,uint256)": { + "details": "deprecated, backward compatibility" + }, + "purchaseTargetAmount(uint256,uint256,uint32,uint256)": { + "details": "given a token supply, reserve balance, weight and a deposit amount (in the reserve token), calculates the target amount for a given conversion (in the main token)\t * Formula: return = _supply * ((1 + _amount / _reserveBalance) ^ (_reserveWeight / 1000000) - 1)", + "params": { + "_amount": "amount of reserve tokens to get the target amount for", + "_reserveBalance": "reserve balance", + "_reserveWeight": "reserve weight, represented in ppm (1-1000000)", + "_supply": "smart token supply" + }, + "return": "smart token amount" + }, + "saleRate(uint256,uint256,uint32,uint256)": { + "details": "deprecated, backward compatibility" + }, + "saleTargetAmount(uint256,uint256,uint32,uint256)": { + "details": "given a token supply, reserve balance, weight and a sell amount (in the main token), calculates the target amount for a given conversion (in the reserve token)\t * Formula: return = _reserveBalance * (1 - (1 - _amount / _supply) ^ (1000000 / _reserveWeight))", + "params": { + "_amount": "amount of smart tokens to get the target amount for", + "_reserveBalance": "reserve balance", + "_reserveWeight": "reserve weight, represented in ppm (1-1000000)", + "_supply": "smart token supply" + }, + "return": "reserve token amount" + } + } + }, + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b506140e7806100206000396000f3006080604052600436106101745763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631da6bbfb811461017957806329a00e7c146101b25780632f55bdb5146101d957806335b49af4146102005780633e75c6ca146102275780633e8a38ab1461026557806347d0b6861461027d57806348d73fed146101b25780634982d52d1461029857806349f9b0f7146102b057806354fd4d50146102d757806365098bb3146103035780636cab50551461033157806376cf0b561461034f57806379c1b450146103035780638074590a146103765780638c5ce82a1461039d57806394491fab146103e25780639d11410814610303578063a11aa1b414610410578063a25a34b114610434578063abfd231d14610200578063acdee8cb14610462578063ce782e081461047a578063e1c7392a14610492578063e4883121146104a9578063ebbb2158146104c4578063f3250fe2146104eb578063f732f1c9146102b0575b600080fd5b34801561018557600080fd5b506101a060043560243563ffffffff60443516606435610512565b60408051918252519081900360200190f35b3480156101be57600080fd5b506101a060043560243563ffffffff60443516606435610529565b3480156101e557600080fd5b506101a060043560243563ffffffff60443516606435610537565b34801561020c57600080fd5b506101a060043560243563ffffffff604435166064356106d4565b34801561023357600080fd5b506102426004356024356106e2565b6040805163ffffffff938416815291909216602082015281519081900390910190f35b34801561027157600080fd5b506101a06004356106fa565b34801561028957600080fd5b506101a060043560243561070d565b3480156102a457600080fd5b506101a0600435610720565b3480156102bc57600080fd5b506101a060043560243563ffffffff6044351660643561072b565b3480156102e357600080fd5b506102ec610739565b6040805161ffff9092168252519081900360200190f35b34801561030f57600080fd5b506101a060043563ffffffff602435811690604435906064351660843561073e565b34801561033d57600080fd5b506101a060043560ff60243516610757565b34801561035b57600080fd5b506101a060043560243563ffffffff60443516606435610763565b34801561038257600080fd5b506101a060043560243563ffffffff60443516606435610968565b3480156103a957600080fd5b506103c760043560243563ffffffff60443581169060643516610b09565b6040805192835260ff90911660208301528051918290030190f35b3480156103ee57600080fd5b506101a060043563ffffffff6024358116906044359060643516608435610b25565b34801561041c57600080fd5b50610242600435602435604435606435608435610cc1565b34801561044057600080fd5b5061044c600435610e61565b6040805160ff9092168252519081900360200190f35b34801561046e57600080fd5b506101a0600435610e6c565b34801561048657600080fd5b5061044c600435610e77565b34801561049e57600080fd5b506104a7610e82565b005b3480156104b557600080fd5b50610242600435602435610e94565b3480156104d057600080fd5b506101a060043560243563ffffffff60443516606435610ea1565b3480156104f757600080fd5b506101a060043560243563ffffffff60443516606435611048565b600061052085858585610ea1565b95945050505050565b600061052085858585611048565b600080808080808911610582576040805160e560020a62461bcd028152602060048201526012602482015260008051602061407c833981519152604482015290519081900360640190fd5b600088116105c8576040805160e560020a62461bcd02815260206004820152601b602482015260008051602061409c833981519152604482015290519081900360640190fd5b60018763ffffffff161180156105e75750621e848063ffffffff881611155b151561063d576040805160e560020a62461bcd02815260206004820152601960248201527f4552525f494e56414c49445f524553455256455f524154494f00000000000000604482015290519081900360640190fd5b85151561064d57600094506106c8565b63ffffffff8716620f42401415610680578761066f878b63ffffffff61119016565b81151561067857fe5b0494506106c8565b610690888763ffffffff61121416565b91506106a1828989620f4240611271565b909450925060ff83166106ba8a8663ffffffff61119016565b9060020a9004905088810394505b50505050949350505050565b600061052085858585610968565b6000806106ef848461135b565b915091509250929050565b600061070582611398565b90505b919050565b600061071983836117b0565b9392505050565b6000610705826117e2565b600061052085858585610763565b600881565b600061074d8686868686610b25565b9695505050505050565b6000610719838361189c565b60008080808080808a116107af576040805160e560020a62461bcd028152602060048201526012602482015260008051602061407c833981519152604482015290519081900360640190fd5b600089116107f5576040805160e560020a62461bcd02815260206004820152601b602482015260008051602061409c833981519152604482015290519081900360640190fd5b60008863ffffffff161180156108145750620f424063ffffffff891611155b151561086a576040805160e560020a62461bcd02815260206004820152601a60248201527f4552525f494e56414c49445f524553455256455f574549474854000000000000604482015290519081900360640190fd5b898711156108c2576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f494e56414c49445f414d4f554e540000000000000000000000000000604482015290519081900360640190fd5b8615156108d2576000955061095b565b898714156108e25788955061095b565b63ffffffff8816620f4240141561091557896109048a8963ffffffff61119016565b81151561090d57fe5b04955061095b565b868a0392506109298a84620f42408b611271565b909550935061093e898663ffffffff61119016565b91505060ff831660020a88028481830381151561095757fe5b0495505b5050505050949350505050565b60008080808080808a116109b4576040805160e560020a62461bcd028152602060048201526012602482015260008051602061407c833981519152604482015290519081900360640190fd5b600089116109fa576040805160e560020a62461bcd02815260206004820152601b602482015260008051602061409c833981519152604482015290519081900360640190fd5b60018863ffffffff16118015610a195750621e848063ffffffff891611155b1515610a6f576040805160e560020a62461bcd02815260206004820152601960248201527f4552525f494e56414c49445f524553455256455f524154494f00000000000000604482015290519081900360640190fd5b89871115610ac7576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f494e56414c49445f414d4f554e540000000000000000000000000000604482015290519081900360640190fd5b861515610ad7576000955061095b565b89871415610ae75788955061095b565b63ffffffff8816620f424014156109155789610904888b63ffffffff61119016565b600080610b1886868686611271565b9150915094509492505050565b60008060008060008060008b118015610b3e5750600089115b1515610b82576040805160e560020a62461bcd02815260206004820152601b602482015260008051602061409c833981519152604482015290519081900360640190fd5b60008a63ffffffff16118015610ba15750620f424063ffffffff8b1611155b8015610bb3575060008863ffffffff16115b8015610bc85750620f424063ffffffff891611155b1515610c1e576040805160e560020a62461bcd02815260206004820152601a60248201527f4552525f494e56414c49445f524553455256455f574549474854000000000000604482015290519081900360640190fd5b8763ffffffff168a63ffffffff161415610c6357610c428b8863ffffffff61121416565b610c528a8963ffffffff61119016565b811515610c5b57fe5b049550610cb3565b610c738b8863ffffffff61121416565b9250610c81838c8c8b611271565b9095509350610c96898663ffffffff61119016565b91505060ff831660020a880284818303811515610caf57fe5b0495505b505050505095945050505050565b60008060008087891415610d27576000891180610cde5750600087115b1515610d22576040805160e560020a62461bcd02815260206004820152601b602482015260008051602061409c833981519152604482015290519081900360640190fd5b610d87565b600089118015610d375750600088115b8015610d435750600087115b1515610d87576040805160e560020a62461bcd02815260206004820152601b602482015260008051602061409c833981519152604482015290519081900360640190fd5b600086118015610d975750600085115b1515610ded576040805160e560020a62461bcd02815260206004820152601860248201527f4552525f494e56414c49445f524553455256455f524154450000000000000000604482015290519081900360640190fd5b610dfd898763ffffffff61119016565b9150610e0f878663ffffffff61119016565b905087891015610e3057610e27888a84846001611cbf565b93509350610e55565b87891115610e4657610e27898984846000611cbf565b610e50828261135b565b935093505b50509550959350505050565b600061070582611da2565b600061070582611e2f565b60006107058261222f565b610e8a612298565b610e92612a6e565b565b6000806106ef8484613475565b600080808080808911610eec576040805160e560020a62461bcd028152602060048201526012602482015260008051602061407c833981519152604482015290519081900360640190fd5b60008811610f32576040805160e560020a62461bcd02815260206004820152601b602482015260008051602061409c833981519152604482015290519081900360640190fd5b60018763ffffffff16118015610f515750621e848063ffffffff881611155b1515610fa7576040805160e560020a62461bcd02815260206004820152601960248201527f4552525f494e56414c49445f524553455256455f524154494f00000000000000604482015290519081900360640190fd5b851515610fb757600094506106c8565b63ffffffff8716620f42401415610ff057886001610fdb888b63ffffffff61119016565b03811515610fe557fe5b0460010194506106c8565b611000898763ffffffff61121416565b9150611011828a620f42408a611271565b909450925060ff8316600161102c8a8763ffffffff61119016565b60029290920a9103049790970360010198975050505050505050565b600080808080808911611093576040805160e560020a62461bcd028152602060048201526012602482015260008051602061407c833981519152604482015290519081900360640190fd5b600088116110d9576040805160e560020a62461bcd02815260206004820152601b602482015260008051602061409c833981519152604482015290519081900360640190fd5b60008763ffffffff161180156110f85750620f424063ffffffff881611155b151561114e576040805160e560020a62461bcd02815260206004820152601a60248201527f4552525f494e56414c49445f524553455256455f574549474854000000000000604482015290519081900360640190fd5b85151561115e57600094506106c8565b63ffffffff8716620f42401415611180578761066f8a8863ffffffff61119016565b610690868963ffffffff61121416565b6000808315156111a3576000915061120d565b508282028284828115156111b357fe5b0414611209576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b8091505b5092915050565b600082820183811015611209576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b600080808080807002000000000000000000000000000000008a1061129557600080fd5b88607f60020a8b028115156112a657fe5b04925070015bf0a8b1457695355fb8ac404e7a79e38310156112d2576112cb83611398565b93506112de565b6112db836117e2565b93505b8663ffffffff168863ffffffff1685028115156112f757fe5b0491507008000000000000000000000000000000008210156113275761131c82611e2f565b607f9550955061134e565b61133082611da2565b905061134860ff607f8390031660020a83048261189c565b81955095505b5050505094509492505050565b600080808084861161137a576113718686613475565b9350935061138f565b6113848587613475565b915091508082935093505b50509250929050565b6000808080806fd3094c70f034de4b96ff7d5b6f99fcd886106113e7576f4000000000000000000000000000000093909301926fd3094c70f034de4b96ff7d5b6f99fcd8607f60020a87020495505b6fa45af1e1f40c333b3de1db4dd55f29a78610611430576f2000000000000000000000000000000093909301926fa45af1e1f40c333b3de1db4dd55f29a7607f60020a87020495505b6f910b022db7ae67ce76b441c27035c6a18610611479576f1000000000000000000000000000000093909301926f910b022db7ae67ce76b441c27035c6a1607f60020a87020495505b6f88415abbe9a76bead8d00cf112e4d4a886106114c2576f0800000000000000000000000000000093909301926f88415abbe9a76bead8d00cf112e4d4a8607f60020a87020495505b6f84102b00893f64c705e841d5d4064bd3861061150b576f0400000000000000000000000000000093909301926f84102b00893f64c705e841d5d4064bd3607f60020a87020495505b6f8204055aaef1c8bd5c3259f4822735a28610611554576f0200000000000000000000000000000093909301926f8204055aaef1c8bd5c3259f4822735a2607f60020a87020495505b6f810100ab00222d861931c15e39b44e99861061159d576f0100000000000000000000000000000093909301926f810100ab00222d861931c15e39b44e99607f60020a87020495505b6f808040155aabbbe9451521693554f73386106115e5576e80000000000000000000000000000093909301926f808040155aabbbe9451521693554f733607f60020a87020495505b6f7fffffffffffffffffffffffffffffff1986019250829150607f60020a828002049050608060020a8381038302049390930192607f60020a8282020491507002000000000000000000000000000000006faaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa8490038302049390930192607f60020a8282020491507003000000000000000000000000000000006f999999999999999999999999999999998490038302049390930192607f60020a8282020491507004000000000000000000000000000000006f924924924924924924924924924924928490038302049390930192607f60020a8282020491507005000000000000000000000000000000006f8e38e38e38e38e38e38e38e38e38e38e8490038302049390930192607f60020a8282020491507006000000000000000000000000000000006f8ba2e8ba2e8ba2e8ba2e8ba2e8ba2e8b8490038302049390930192607f60020a8282020491507007000000000000000000000000000000006f89d89d89d89d89d89d89d89d89d89d898490038302049390930192607f60020a8282020491507008000000000000000000000000000000006f888888888888888888888888888888888490038302049390930195945050505050565b600060028204820382848115156117c357fe5b068115156117cd57fe5b0482848115156117d957fe5b04019392505050565b6000808080608060020a851061181a57611802607f60020a865b0461222f565b60ff8116600281900a90960495607f60020a02935091505b607f60020a85111561186c5750607f5b60008160ff16111561186c57607f60020a858002049450608060020a8510611863576002948590049460ff600019830116900a92909201915b6000190161182a565b6f05b9de1d10bf4103d647b0955897ba806f03f80fe03f80fe03f80fe03f80fe03f884020493505b505050919050565b6000806000849150600090508360ff168583029060020a90049150816f03442c4e6074a82f1797f72ac000000002810190508360ff168583029060020a90049150816f0116b96f757c380fb287fd0e4000000002810190508360ff168583029060020a90049150816e45ae5bdd5f0e03eca1ff439000000002810190508360ff168583029060020a90049150816e0defabf91302cd95b9ffda5000000002810190508360ff168583029060020a90049150816e02529ca9832b22439efff9b800000002810190508360ff168583029060020a90049150816d54f1cf12bd04e516b6da8800000002810190508360ff168583029060020a90049150816d0a9e39e257a09ca2d6db5100000002810190508360ff168583029060020a90049150816d012e066e7b839fa050c30900000002810190508360ff168583029060020a90049150816c1e33d7d926c329a1ad1a80000002810190508360ff168583029060020a90049150816c02bee513bdb4a6b19b5f80000002810190508360ff168583029060020a90049150816b3a9316fa79b88eccf2a0000002810190508360ff168583029060020a90049150816b048177ebe1fa81237520000002810190508360ff168583029060020a90049150816a5263fe90242dcbacf0000002810190508360ff168583029060020a90049150816a057e22099c030d9410000002810190508360ff168583029060020a90049150816957e22099c030d941000002810190508360ff168583029060020a900491508169052b6b5456997631000002810190508360ff168583029060020a9004915081684985f67696bf74800002810190508360ff168583029060020a90049150816803dea12ea99e49800002810190508360ff168583029060020a90049150816731880f2214b6e00002810190508360ff168583029060020a900491508167025bcff56eb3600002810190508360ff168583029060020a9004915081661b722e10ab100002810190508360ff168583029060020a90049150816601317c7007700002810190508360ff168583029060020a9004915081650cba84aafa0002810190508360ff168583029060020a90049150816482573a0a0002810190508360ff168583029060020a90049150816405035ad90002810190508360ff168583029060020a9004915081632f881b0002810190508360ff168583029060020a90049150816301b2934002810190508360ff168583029060020a9004915081620efc4002810190508360ff168583029060020a9004915081617fe002810190508360ff168583029060020a900491508161042002810190508360ff168583029060020a9004915081602102810190508360ff168583029060020a9004915081600102810190508360ff1660019060020a02856f0688589cc0e9505e2f2fee558000000083811515611cb357fe5b04010195945050505050565b600080600080600080611cd28989613511565b909950975089611cec8c607f60020a63ffffffff61119016565b811515611cf557fe5b04935070015bf0a8b1457695355fb8ac404e7a79e38410611d1e57611d19846117e2565b611d27565b611d2784611398565b925087611d3a848b63ffffffff61119016565b811515611d4357fe5b04915086611d5957611d54826135cd565b611d62565b611d6282613628565b9050611d90611d77828b63ffffffff61119016565b611d8b8a607f60020a63ffffffff61119016565b61135b565b95509550505050509550959350505050565b60006020607f825b8160ff168360010160ff161015611def57600260ff8484011604905084600060ff831660808110611dd757fe5b015410611de657809250611dea565b8091505b611daa565b84600060ff841660808110611e0057fe5b015410611e0f57819350611894565b84600060ff851660808110611e2057fe5b01541061017457829350611894565b6000670168244fdac78000607f60020a6f0fffffffffffffffffffffffffffffff84168080028290048082028390048083028490049485026710e1b3be415a00009092026705a0913f6b1e000091909102010192909181830204905080664807432bc180000283019250607f60020a828202811515611eaa57fe5b04905080660c0135dca040000283019250607f60020a828202811515611ecc57fe5b049050806601b707b1cdc0000283019250607f60020a828202811515611eee57fe5b049050806536e0f639b8000283019250607f60020a828202811515611f0f57fe5b04905080650618fee9f8000283019250607f60020a828202811515611f3057fe5b04905080649c197dcc000283019250607f60020a828202811515611f5057fe5b04905080640e30dce4000283019250607f60020a828202811515611f7057fe5b0490508064012ebd13000283019250607f60020a828202811515611f9057fe5b049050806317499f000283019250607f60020a828202811515611faf57fe5b049050806301a9d4800283019250607f60020a828202811515611fce57fe5b04905080621c63800283019250607f60020a828202811515611fec57fe5b049050806201c6380283019250607f60020a82820281151561200a57fe5b04905080611ab80283019250607f60020a82820281151561202757fe5b0490508061017c0283019250607f60020a82820281151561204457fe5b0490508060140283019250607f60020a82820281151561206057fe5b6721c3677c82b40000919004938401048201607f60020a019290506f100000000000000000000000000000008516156120bd5770018ebef9eac820ae8682b9793ac6d1e7767001c3d6a24ed82218787d624d3e5eba95f984020492505b6f200000000000000000000000000000008516156120ff577001368b2fc6f9609fe7aceb46aa619baed470018ebef9eac820ae8682b9793ac6d1e77884020492505b6f40000000000000000000000000000000851615612140576fbc5ab1b16779be3575bd8f0520a9f21f7001368b2fc6f9609fe7aceb46aa619baed584020492505b607f60020a851615612174576f454aaa8efe072e7f6ddbab84b40a55c96fbc5ab1b16779be3575bd8f0520a9f21e84020492505b608060020a8516156121a8576f0960aadc109e7a3bf4578099615711ea6f454aaa8efe072e7f6ddbab84b40a55c584020492505b7002000000000000000000000000000000008516156121e8576e2bf84208204f5977f9a8cf01fdce3d6f0960aadc109e7a3bf4578099615711d784020492505b700400000000000000000000000000000000851615612226576d03c6ab775dd0b95b4cbee7e65d116e2bf84208204f5977f9a8cf01fdc30784020492505b50909392505050565b6000808061010084101561225e575b6001841115612259576002909304926001919091019061223e565b61120d565b5060805b60008160ff16111561120d5760ff811660020a841061228b5760ff811660020a90930492908117905b600260ff90911604612262565b701c35fedd14ffffffffffffffffffffffff602055701b0ce43b323fffffffffffffffffffffff6021557019f0028ec1ffffffffffffffffffffffff6022557018ded91f0e7fffffffffffffffffffffff6023557017d8ec7f0417ffffffffffffffffffffff6024557016ddc6556cdbffffffffffffffffffffff6025557015ecf52776a1ffffffffffffffffffffff6026557015060c256cb2ffffffffffffffffffffff602755701428a2f98d72ffffffffffffffffffffff6028557013545598e5c23fffffffffffffffffffff602955701288c4161ce1dfffffffffffffffffffff602a557011c592761c666fffffffffffffffffffff602b5570110a688680a757ffffffffffffffffffff602c55701056f1b5bedf77ffffffffffffffffffff602d55700faadceceeff8bffffffffffffffffffff602e55700f05dc6b27edadffffffffffffffffffff602f55700e67a5a25da4107fffffffffffffffffff603055700dcff115b14eedffffffffffffffffffff603155700d3e7a392431239fffffffffffffffffff603255700cb2ff529eb71e4fffffffffffffffffff603355700c2d415c3db974afffffffffffffffffff603455700bad03e7d883f69bffffffffffffffffff603555700b320d03b2c343d5ffffffffffffffffff603655700abc25204e02828dffffffffffffffffff603755700a4b16f74ee4bb207fffffffffffffffff6038557009deaf736ac1f569ffffffffffffffffff603955700976bd9952c7aa957fffffffffffffffff603a557009131271922eaa606fffffffffffffffff603b557008b380f3558668c46fffffffffffffffff603c55700857ddf0117efa215bffffffffffffffff603d557007ffffffffffffffffffffffffffffffff603e557007abbf6f6abb9d087fffffffffffffffff603f5570075af62cbac95f7dfa7fffffffffffffff60405570070d7fb7452e187ac13fffffffffffffff6041557006c3390ecc8af379295fffffffffffffff60425570067c00a3b07ffc01fd6fffffffffffffff604355700637b647c39cbb9d3d27ffffffffffffff6044557005f63b1fc104dbd39587ffffffffffffff6045557005b771955b36e12f7235ffffffffffffff60465570057b3d49dda84556d6f6ffffffffffffff60475570054183095b2c8ececf30ffffffffffffff60485570050a28be635ca2b888f77fffffffffffff6049557004d5156639708c9db33c3fffffffffffff604a557004a23105873875bd52dfdfffffffffffff604b55700471649d87199aa990756fffffffffffff604c557004429a21a029d4c1457cfbffffffffffff604d55700415bc6d6fb7dd71af2cb3ffffffffffff604e557003eab73b3bbfe282243ce1ffffffffffff604f557003c1771ac9fb6b4c18e229ffffffffffff605055700399e96897690418f785257fffffffffff605155700373fc456c53bb779bf0ea9fffffffffff60525570034f9e8e490c48e67e6ab8bfffffffffff60535570032cbfd4a7adc790560b3337ffffffffff60545570030b50570f6e5d2acca94613ffffffffff6055557002eb40f9f620fda6b56c2861ffffffffff6056557002cc8340ecb0d0f520a6af58ffffffffff6057557002af09481380a0a35cf1ba02ffffffffff605855700292c5bdd3b92ec810287b1b3fffffffff605955700277abdcdab07d5a77ac6d6b9fffffffff605a5570025daf6654b1eaa55fd64df5efffffffff605b55700244c49c648baa98192dce88b7ffffffff605c5570022ce03cd5619a311b2471268bffffffff605d55700215f77c045fbe885654a44a0fffffffff605e557001ffffffffffffffffffffffffffffffff605f557001eaefdbdaaee7421fc4d3ede5ffffffff6060557001d6bd8b2eb257df7e8ca57b09bfffffff6061557001c35fedd14b861eb0443f7f133fffffff6062557001b0ce43b322bcde4a56e8ada5afffffff60635570019f0028ec1fff007f5a195a39dfffffff60645570018ded91f0e72ee74f49b15ba527ffffff60655570017d8ec7f04136f4e5615fd41a63ffffff60665570016ddc6556cdb84bdc8d12d22e6fffffff60675570015ecf52776a1155b5bd8395814f7fffff60685570015060c256cb23b3b3cc3754cf40ffffff6069557001428a2f98d728ae223ddab715be3fffff606a5570013545598e5c23276ccf0ede68034fffff606b557001288c4161ce1d6f54b7f61081194fffff606c5570011c592761c666aa641d5a01a40f17ffff606d55700110a688680a7530515f3e6e6cfdcdffff606e557001056f1b5bedf75c6bcb2ce8aed428ffff606f556ffaadceceeff8a0890f3875f008277fff6070556ff05dc6b27edad306388a600f6ba0bfff6071556fe67a5a25da41063de1495d5b18cdbfff6072556fdcff115b14eedde6fc3aa5353f2e4fff6073556fd3e7a3924312399f9aae2e0f868f8fff6074556fcb2ff529eb71e41582cccd5a1ee26fff6075556fc2d415c3db974ab32a51840c0b67edff6076556fbad03e7d883f69ad5b0a186184e06bff6077556fb320d03b2c343d4829abd6075f0cc5ff6078556fabc25204e02828d73c6e80bcdb1a95bf6079556fa4b16f74ee4bb2040a1ec6c15fbbf2df607a556f9deaf736ac1f569deb1b5ae3f36c130f607b556f976bd9952c7aa957f5937d790ef65037607c556f9131271922eaa6064b73a22d0bd4f2bf607d556f8b380f3558668c46c91c49a2f8e967b9607e556f857ddf0117efa215952912839f6473e66000607f5b0155565b6f60e393c68d20b1bd09deaabc0373b9c560809081556f5f8f46e4854120989ed94719fb4c20116081556f5e479ebb9129fb1b7e72a648f992b6066082556f5d0bd23fe42dfedde2e9586be12b85fe6083556f5bdb29ddee979308ddfca81aeeb8095a6084556f5ab4fd8a260d2c7e2c0d2afcf0009dad6085556f5998b31359a55d48724c65cf090012216086556f5885bcad2b322dfc43e8860f9c018cf56087556f577b97aa1fe222bb452fdf111b1f0be26088556f5679cb5e3575632e5baa27e2b949f7046089556f557fe8241b3a31c83c732f1cdff4a1c5608a556f548d868026504875d6e59bbe95fc2a6b608b556f53a2465ce347cf34d05a867c17dd3088608c556f52bdce5dcd4faed59c7f5511cf8f8acc608d556f51dfcb453c07f8da817606e7885f7c3e608e556f5107ef6b0a5a2be8f8ff15590daa3cce608f556f5035f241d6eae0cd7bacba119993de7b6090556f4f698fe90d5b53d532171e1210164c666091556f4ea288ca297a0e6a09a0eee240e16c856092556f4de0a13fdcf5d4213fc398ba6e3becde6093556f4d23a145eef91fec06b06140804c48086094556f4c6b5430d4c1ee5526473db4ae0f11de6095556f4bb7886c240562eba11f4963a53b42406096556f4b080f3f1cb491d2d521e0ea4583521e6097556f4a5cbc96a05589cb4d86be1db31683646098556f49b566d40243517658d78c33162d6ece6099556f4911e6a02e5507a30f947383fd9a3276609a556f487216c2b31be4adc41db8a8d5cc0c88609b556f47d5d3fc4a7a1b188cd3d788b5c5e9fc609c556f473cfce4871a2c40bc4f9e1c32b955d0609d556f46a771ca578ab878485810e285e31c67609e556f4615149718aed4c258c373dc676aa72d609f556f4585c8b3f8fe489c6e1833ca4787138460a0556f44f972f174e41e5efb7e9d63c29ce73560a1556f446ff970ba86d8b00beb05ecebf3c4dc60a2556f43e9438ec88971812d6f198b5ccaad9660a3556f436539d11ff7bea657aeddb394e809ef60a4556f42e3c5d3e5a913401d86f66db5d81c2c60a5556f4264d2395303070ea726cbe98df6217460a6556f41e84a9a593bb7194c3a6349ecae4eea60a7556f416e1b785d13eba07a08f3f18876a5ab60a8556f40f6322ff389d423ba9dd7e7e7b7e80960a9556f40807cec8a466880ecf4184545d240a460aa556f400cea9ce88a8d3ae668e8ea0d9bf07f60ab556f3f9b6ae8772d4c55091e0ed7dfea0ac160ac556f3f2bee253fd84594f54bcaafac383a1360ad556f3ebe654e95208bb9210c575c081c595860ae556f3e52c1fc5665635b78ce1f05ad53c08660af556f3de8f65ac388101ddf718a6f5c1eff6560b0556f3d80f522d59bd0b328ca012df4cd2d4960b1556f3d1ab193129ea72b23648a161163a85a60b2556f3cb61f68d32576c135b95cfb53f76d7560b3556f3c5332d9f1aae851a3619e77e4cc847360b4556f3bf1e08edbe2aa109e1525f65759ef7360b5556f3b921d9cff13fa2c197746a3dfc4918f60b6556f3b33df818910bfc1a5aefb8f63ae2ac460b7556f3ad71c1c77e34fa32a9f184967eccbf660b8556f3a7bc9abf2c5bb53e2f7384a8a16521a60b9556f3a21dec7e76369783a68a0c6385a1c5760ba556f39c9525de6c9cdf7c1c157ca4a7a6ee360bb556f39721bad3dc85d1240ff0190e0adaac360bc556f391c324344d3248f0469eb28dd3d77e060bd556f38c78df7e3c796279fb4ff84394ab3da60be556f387426ea4638ae9aae08049d3554c20a60bf556f3821f57dbd2763256c1a99bbd205137860c0556f37d0f256cb46a8c92ff62fbbef28969860c1556f37811658591ffc7abdd1feaf3cef9b7360c2556f37325aa10e9e82f7df0f380f7997154b60c3556f36e4b888cfb408d873b9a80d439311c660c4556f3698299e59f4bb9de645fc9b08c64cca60c5556f364ca7a5012cb603023b57dd3ebfd50d60c6556f36022c928915b778ab1b06aaee7e61d460c7556f35b8b28d1a73dc27500ffe35559cc02860c8556f357033e951fe250ec5eb4e60955132d760c9556f3528ab2867934e3a21b5412e4c4f888160ca556f34e212f66c55057f9676c80094a61d5960cb556f349c66289e5b3c4b540c24f42fa4b9bb60cc556f34579fbbd0c733a9c8d6af6b0f7d00f760cd556f3413bad2e712288b924b5882b5b369bf60ce556f33d0b2b56286510ef730e213f71f12e960cf556f338e82ce00e2496262c64457535ba1a160d0556f334d26a96b373bb7c2f8ea1827f27a9260d1556f330c99f4f4211469e00b3e18c31475ea60d2556f32ccd87d6486094999c7d5e6f33237d860d3556f328dde2dd617b6665a2e8556f250c1af60d4556f324fa70e9adc270f8262755af5a99af960d5556f32122f443110611ca51040f41fa6e1e360d6556f31d5730e42c0831482f0f1485c4263d860d7556f31996ec6b07b4a83421b5ebc4ab4e1f160d8556f315e1ee0a68ff46bb43ec2b85032e87660d9556f31237fe7bc4deacf6775b9efa1a145f860da556f30e98e7f1cc5a356e44627a6972ea2ff60db556f30b04760b8917ec74205a3002650ec0560dc556f3077a75c803468e9132ce0cf3224241d60dd556f303fab57a6a275c36f19cda9bace667a60de556f3008504beb8dcbd2cf3bc1f6d5a064f060df556f2fd19346ed17dac61219ce0c2c5ac4b060e0556f2f9b7169808c324b5852fd3d54ba971460e1556f2f65e7e711cf4b064eea9c08cbdad57460e2556f2f30f405093042ddff8a251b6bf6d10360e3556f2efc931a3750f2e8bfe323edfe03757460e4556f2ec8c28e46dbe56d98685278339400cb60e5556f2e957fd933c3926d8a599b602379b85160e6556f2e62c882c7c9ed4473412702f08ba0e560e7556f2e309a221c12ba361e3ed695167feee260e8556f2dfef25d1f865ae18dd07cfea4bcea1060e9556f2dcdcee821cdc80decc02c44344aeb3160ea556f2d9d2d8562b34944d0b201bb87260c8360eb556f2d6d0c04a5b62a2c42636308669b729a60ec556f2d3d6842c9a235517fc5a0332691528f60ed556f2d0e402963fe1ea2834abc408c437c1060ee556f2cdf91ae602647908aff975e4d6a2a8c60ef556f2cb15ad3a1eb65f6d74a75da09a1b6c560f0556f2c8399a6ab8e9774d6fcff373d21072760f1556f2c564c4046f64edba6883ca06bbc453560f2556f2c2970c431f952641e05cb493e23eed360f3556f2bfd0560cd9eb14563bc7c0732856c1860f4556f2bd1084ed0332f7ff4150f9d0ef41a2c60f5556f2ba577d0fa1628b76d040b12a82492fb60f6556f2b7a5233cd21581e855e89dc2f1e8a9260f7556f2b4f95cd46904d05d72bdcde337d9cc760f8556f2b2540fc9b4d9abba3faca669191467560f9556f2afb5229f68d0830d8be8adb0a0db70f60fa556f2ad1c7c63a9b294c5bc73a3ba3ab7a2b60fb556f2aa8a04ac3cbe1ee1c9c86361465dbb860fc556f2a7fda392d725a44a2c8aeb9ab35430d60fd556f2a57741b18cde618717792b4faa216db60fe556f2a2f6c81f5d84dd950a35626d6d5503a90607f612a6a565b60008060008060007d10c6f7a0b5ed8d36b4c7f34938583621fafc8b0079a2834d26fa3fcc9ea98711156134e6577d10c6f7a0b5ed8d36b4c7f34938583621fafc8b0079a2834d26fa3fcc9eaa8704600101925082878115156134d457fe5b04965082868115156134e257fe5b0495505b6134fe620f424088026134f98989611214565b6117b0565b97620f4240899003975095505050505050565b600080600080608060020a861115801561352f5750608060020a8511155b1561353f5785859350935061138f565b608060020a86101561356b5784608060020a870281151561355c57fe5b04608060020a9350935061138f565b608060020a85101561359757608060020a86608060020a870281151561358d57fe5b049350935061138f565b8486116135a457846135a6565b855b91506135b6607f60020a836117fc565b60ff1660020a958690049695909404949350505050565b60006f2f16ac6c59de6f8d5d6f63c1482a7c8682116135f6576135ef8261368c565b9050610708565b817f400000000000000000000000000000000000000000000000000000000000000081151561362157fe5b0492915050565b60006f2f16ac6c59de6f8d5d6f63c1482a7c86821161364a576135ef82613aef565b7001af16ac6c59de6f8d5d6f63c1482a7c80821161366b576135ef82613f70565b706b22d43e72c326539cceeef8bb48f255ff8211610174576135ef82613fee565b60008181607f60020a82800204915070014d29a73a6e7b02c3668c7b0880000000820201607f60020a8483020491507002504a0cd9a7f7215b60f9be4800000000820201607f60020a848302049150700484d0a1191c0ead267967c7a4a0000000820201607f60020a84830204915070095ec580d7e8427a4baf26a90a00000000820201607f60020a848302049150701440b0be1615a47dba6e5b3b1f10000000820201607f60020a848302049150702d207601f46a99b4112418400000000000820201607f60020a8483020491507066ebaac4c37c622dd8288a7eb1b2000000820201607f60020a84830204915070ef17240135f7dbd43a1ba10cf200000000820201607f60020a848302049150710233c33c676a5eb2416094a87b3657000000820201607f60020a848302049150710541cde48bc0254bed49a9f8700000000000820201607f60020a848302049150710cae1fad2cdd4d4cb8d73abca0d19a400000820201607f60020a848302049150711edb2aa2f760d15c41ceedba956400000000820201607f60020a848302049150714ba8d20d2dabd386c9529659841a2e200000820201607f60020a84830204915071bac08546b867cdaa20000000000000000000820201607f60020a8483020491507201cfa8e70c03625b9db76c8ebf5bbf24820000820201607f60020a8483020491507204851d99f82060df265f3309b26f8200000000820201607f60020a848302049150720b550d19b129d270c44f6f55f027723cbb0000820201607f60020a848302049150721c877dadc761dc272deb65d4b0000000000000820201607f60020a8483020491507248178ece97479f33a77f2ad22a81b64406c000820201607f60020a84830204915072b6ca8268b9d810fedf6695ef2f8a6c00000000820201607f60020a8483020491507301d0e76631a5b05d007b8cb72a7c7f11ec36e000820201607f60020a8483020491507304a1c37bd9f85fd9c6c780000000000000000000820201607f60020a848302049150730bd8369f1b702bf491e2ebfcee08250313b65400820201607f60020a848302049150731e5c7c32a9f6c70ab2cb59d9225764d400000000820201607f60020a848302049150734dff5820e165e910f95120a708e742496221e600820201607f60020a84830204915073c8c8f66db1fced378ee50e536000000000000000820201607f60020a848302049150740205db8dffff45bfa2938f128f599dbf16eb11d880820201607f60020a84830204915074053a044ebd984351493e1786af38d39a0800000000820201607f60020a848302049150740d86dae2a4cc0f47633a544479735869b487b59c40820201607f60020a84830204915074231000000000000000000000000000000000000000820201607f60020a848302049150745b0485a76f6646c2039db1507cdd51b08649680822820201607f60020a84830204915074ec983c46c49545bc17efa6b5b0055e242200000000820201607f60020a846fde1bc4d19efcac82445da75b0000000083040101949350505050565b600081607f60020a8181036fde1bc4d19efcac82445da75b00000000029082800204915070014d29a73a6e7b02c3668c7b0880000000820201607f60020a8483020491507002504a0cd9a7f7215b60f9be480000000082029003607f60020a848302049150700484d0a1191c0ead267967c7a4a0000000820201607f60020a84830204915070095ec580d7e8427a4baf26a90a0000000082029003607f60020a848302049150701440b0be1615a47dba6e5b3b1f10000000820201607f60020a848302049150702d207601f46a99b411241840000000000082029003607f60020a8483020491507066ebaac4c37c622dd8288a7eb1b2000000820201607f60020a84830204915070ef17240135f7dbd43a1ba10cf20000000082029003607f60020a848302049150710233c33c676a5eb2416094a87b3657000000820201607f60020a848302049150710541cde48bc0254bed49a9f870000000000082029003607f60020a848302049150710cae1fad2cdd4d4cb8d73abca0d19a400000820201607f60020a848302049150711edb2aa2f760d15c41ceedba95640000000082029003607f60020a848302049150714ba8d20d2dabd386c9529659841a2e200000820201607f60020a84830204915071bac08546b867cdaa2000000000000000000082029003607f60020a8483020491507201cfa8e70c03625b9db76c8ebf5bbf24820000820201607f60020a8483020491507204851d99f82060df265f3309b26f820000000082029003607f60020a848302049150720b550d19b129d270c44f6f55f027723cbb0000820201607f60020a848302049150721c877dadc761dc272deb65d4b000000000000082029003607f60020a8483020491507248178ece97479f33a77f2ad22a81b64406c000820201607f60020a84830204915072b6ca8268b9d810fedf6695ef2f8a6c0000000082029003607f60020a8483020491507301d0e76631a5b05d007b8cb72a7c7f11ec36e000820201607f60020a8483020491507304a1c37bd9f85fd9c6c78000000000000000000082029003607f60020a848302049150730bd8369f1b702bf491e2ebfcee08250313b65400820201607f60020a848302049150731e5c7c32a9f6c70ab2cb59d9225764d40000000082029003607f60020a848302049150734dff5820e165e910f95120a708e742496221e600820201607f60020a84830204915073c8c8f66db1fced378ee50e53600000000000000082029003607f60020a848302049150740205db8dffff45bfa2938f128f599dbf16eb11d880820201607f60020a84830204915074053a044ebd984351493e1786af38d39a080000000082029003607f60020a848302049150740d86dae2a4cc0f47633a544479735869b487b59c40820201607f60020a8483020491507423100000000000000000000000000000000000000082029003607f60020a848302049150745b0485a76f6646c2039db1507cdd51b08649680822820201607f60020a84830204915074ec983c46c49545bc17efa6b5b0055e242200000000820290036fde1bc4d19efcac82445da75b00000000815b04949350505050565b60006f2f16ac6c59de6f8d5d6f63c1482a7c861982016f03060c183060c183060c183060c18306808204908181029060018301028480608085818110613fb257fe5b01549150608060018601818110613fc557fe5b01546f03060c183060c183060c183060c183069487030295909203029390930104949350505050565b600080600070015bf0a8b1457695355fb8ac404e7a79e3841061401957614014846117e2565b614022565b61402284611398565b915070015bf0a8b1457695355fb8ac404e7a79e3821061404a57614045826117e2565b614053565b61405382611398565b905083607f60020a83607f60020a840281151561406c57fe5b048385030102811515613f6757fe004552525f494e56414c49445f535550504c5900000000000000000000000000004552525f494e56414c49445f524553455256455f42414c414e43450000000000a165627a7a7230582044f02762b5e42ac5c4daf454d158a089ec58a9a518279e70025d2514a1c9b3920029", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x40E7 DUP1 PUSH2 0x20 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x174 JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x1DA6BBFB DUP2 EQ PUSH2 0x179 JUMPI DUP1 PUSH4 0x29A00E7C EQ PUSH2 0x1B2 JUMPI DUP1 PUSH4 0x2F55BDB5 EQ PUSH2 0x1D9 JUMPI DUP1 PUSH4 0x35B49AF4 EQ PUSH2 0x200 JUMPI DUP1 PUSH4 0x3E75C6CA EQ PUSH2 0x227 JUMPI DUP1 PUSH4 0x3E8A38AB EQ PUSH2 0x265 JUMPI DUP1 PUSH4 0x47D0B686 EQ PUSH2 0x27D JUMPI DUP1 PUSH4 0x48D73FED EQ PUSH2 0x1B2 JUMPI DUP1 PUSH4 0x4982D52D EQ PUSH2 0x298 JUMPI DUP1 PUSH4 0x49F9B0F7 EQ PUSH2 0x2B0 JUMPI DUP1 PUSH4 0x54FD4D50 EQ PUSH2 0x2D7 JUMPI DUP1 PUSH4 0x65098BB3 EQ PUSH2 0x303 JUMPI DUP1 PUSH4 0x6CAB5055 EQ PUSH2 0x331 JUMPI DUP1 PUSH4 0x76CF0B56 EQ PUSH2 0x34F JUMPI DUP1 PUSH4 0x79C1B450 EQ PUSH2 0x303 JUMPI DUP1 PUSH4 0x8074590A EQ PUSH2 0x376 JUMPI DUP1 PUSH4 0x8C5CE82A EQ PUSH2 0x39D JUMPI DUP1 PUSH4 0x94491FAB EQ PUSH2 0x3E2 JUMPI DUP1 PUSH4 0x9D114108 EQ PUSH2 0x303 JUMPI DUP1 PUSH4 0xA11AA1B4 EQ PUSH2 0x410 JUMPI DUP1 PUSH4 0xA25A34B1 EQ PUSH2 0x434 JUMPI DUP1 PUSH4 0xABFD231D EQ PUSH2 0x200 JUMPI DUP1 PUSH4 0xACDEE8CB EQ PUSH2 0x462 JUMPI DUP1 PUSH4 0xCE782E08 EQ PUSH2 0x47A JUMPI DUP1 PUSH4 0xE1C7392A EQ PUSH2 0x492 JUMPI DUP1 PUSH4 0xE4883121 EQ PUSH2 0x4A9 JUMPI DUP1 PUSH4 0xEBBB2158 EQ PUSH2 0x4C4 JUMPI DUP1 PUSH4 0xF3250FE2 EQ PUSH2 0x4EB JUMPI DUP1 PUSH4 0xF732F1C9 EQ PUSH2 0x2B0 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x185 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A0 PUSH1 0x4 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH4 0xFFFFFFFF PUSH1 0x44 CALLDATALOAD AND PUSH1 0x64 CALLDATALOAD PUSH2 0x512 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1BE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A0 PUSH1 0x4 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH4 0xFFFFFFFF PUSH1 0x44 CALLDATALOAD AND PUSH1 0x64 CALLDATALOAD PUSH2 0x529 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1E5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A0 PUSH1 0x4 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH4 0xFFFFFFFF PUSH1 0x44 CALLDATALOAD AND PUSH1 0x64 CALLDATALOAD PUSH2 0x537 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x20C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A0 PUSH1 0x4 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH4 0xFFFFFFFF PUSH1 0x44 CALLDATALOAD AND PUSH1 0x64 CALLDATALOAD PUSH2 0x6D4 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x233 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x242 PUSH1 0x4 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH2 0x6E2 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH4 0xFFFFFFFF SWAP4 DUP5 AND DUP2 MSTORE SWAP2 SWAP1 SWAP3 AND PUSH1 0x20 DUP3 ADD MSTORE DUP2 MLOAD SWAP1 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x271 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A0 PUSH1 0x4 CALLDATALOAD PUSH2 0x6FA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x289 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A0 PUSH1 0x4 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH2 0x70D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2A4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A0 PUSH1 0x4 CALLDATALOAD PUSH2 0x720 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2BC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A0 PUSH1 0x4 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH4 0xFFFFFFFF PUSH1 0x44 CALLDATALOAD AND PUSH1 0x64 CALLDATALOAD PUSH2 0x72B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2E3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2EC PUSH2 0x739 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0xFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x30F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A0 PUSH1 0x4 CALLDATALOAD PUSH4 0xFFFFFFFF PUSH1 0x24 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x44 CALLDATALOAD SWAP1 PUSH1 0x64 CALLDATALOAD AND PUSH1 0x84 CALLDATALOAD PUSH2 0x73E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x33D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A0 PUSH1 0x4 CALLDATALOAD PUSH1 0xFF PUSH1 0x24 CALLDATALOAD AND PUSH2 0x757 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x35B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A0 PUSH1 0x4 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH4 0xFFFFFFFF PUSH1 0x44 CALLDATALOAD AND PUSH1 0x64 CALLDATALOAD PUSH2 0x763 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x382 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A0 PUSH1 0x4 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH4 0xFFFFFFFF PUSH1 0x44 CALLDATALOAD AND PUSH1 0x64 CALLDATALOAD PUSH2 0x968 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3A9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3C7 PUSH1 0x4 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH4 0xFFFFFFFF PUSH1 0x44 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x64 CALLDATALOAD AND PUSH2 0xB09 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0xFF SWAP1 SWAP2 AND PUSH1 0x20 DUP4 ADD MSTORE DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3EE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A0 PUSH1 0x4 CALLDATALOAD PUSH4 0xFFFFFFFF PUSH1 0x24 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x44 CALLDATALOAD SWAP1 PUSH1 0x64 CALLDATALOAD AND PUSH1 0x84 CALLDATALOAD PUSH2 0xB25 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x41C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x242 PUSH1 0x4 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH1 0x44 CALLDATALOAD PUSH1 0x64 CALLDATALOAD PUSH1 0x84 CALLDATALOAD PUSH2 0xCC1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x440 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x44C PUSH1 0x4 CALLDATALOAD PUSH2 0xE61 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x46E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A0 PUSH1 0x4 CALLDATALOAD PUSH2 0xE6C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x486 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x44C PUSH1 0x4 CALLDATALOAD PUSH2 0xE77 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x49E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4A7 PUSH2 0xE82 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4B5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x242 PUSH1 0x4 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH2 0xE94 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4D0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A0 PUSH1 0x4 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH4 0xFFFFFFFF PUSH1 0x44 CALLDATALOAD AND PUSH1 0x64 CALLDATALOAD PUSH2 0xEA1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4F7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A0 PUSH1 0x4 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH4 0xFFFFFFFF PUSH1 0x44 CALLDATALOAD AND PUSH1 0x64 CALLDATALOAD PUSH2 0x1048 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x520 DUP6 DUP6 DUP6 DUP6 PUSH2 0xEA1 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x520 DUP6 DUP6 DUP6 DUP6 PUSH2 0x1048 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP1 DUP1 DUP1 DUP10 GT PUSH2 0x582 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x407C DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP9 GT PUSH2 0x5C8 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x409C DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP8 PUSH4 0xFFFFFFFF AND GT DUP1 ISZERO PUSH2 0x5E7 JUMPI POP PUSH3 0x1E8480 PUSH4 0xFFFFFFFF DUP9 AND GT ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x63D JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F524154494F00000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP6 ISZERO ISZERO PUSH2 0x64D JUMPI PUSH1 0x0 SWAP5 POP PUSH2 0x6C8 JUMP JUMPDEST PUSH4 0xFFFFFFFF DUP8 AND PUSH3 0xF4240 EQ ISZERO PUSH2 0x680 JUMPI DUP8 PUSH2 0x66F DUP8 DUP12 PUSH4 0xFFFFFFFF PUSH2 0x1190 AND JUMP JUMPDEST DUP2 ISZERO ISZERO PUSH2 0x678 JUMPI INVALID JUMPDEST DIV SWAP5 POP PUSH2 0x6C8 JUMP JUMPDEST PUSH2 0x690 DUP9 DUP8 PUSH4 0xFFFFFFFF PUSH2 0x1214 AND JUMP JUMPDEST SWAP2 POP PUSH2 0x6A1 DUP3 DUP10 DUP10 PUSH3 0xF4240 PUSH2 0x1271 JUMP JUMPDEST SWAP1 SWAP5 POP SWAP3 POP PUSH1 0xFF DUP4 AND PUSH2 0x6BA DUP11 DUP7 PUSH4 0xFFFFFFFF PUSH2 0x1190 AND JUMP JUMPDEST SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP1 POP DUP9 DUP2 SUB SWAP5 POP JUMPDEST POP POP POP POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x520 DUP6 DUP6 DUP6 DUP6 PUSH2 0x968 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x6EF DUP5 DUP5 PUSH2 0x135B JUMP JUMPDEST SWAP2 POP SWAP2 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x705 DUP3 PUSH2 0x1398 JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x719 DUP4 DUP4 PUSH2 0x17B0 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x705 DUP3 PUSH2 0x17E2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x520 DUP6 DUP6 DUP6 DUP6 PUSH2 0x763 JUMP JUMPDEST PUSH1 0x8 DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x74D DUP7 DUP7 DUP7 DUP7 DUP7 PUSH2 0xB25 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x719 DUP4 DUP4 PUSH2 0x189C JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP1 DUP1 DUP1 DUP1 DUP11 GT PUSH2 0x7AF JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x407C DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP10 GT PUSH2 0x7F5 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x409C DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP9 PUSH4 0xFFFFFFFF AND GT DUP1 ISZERO PUSH2 0x814 JUMPI POP PUSH3 0xF4240 PUSH4 0xFFFFFFFF DUP10 AND GT ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x86A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F574549474854000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP10 DUP8 GT ISZERO PUSH2 0x8C2 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F414D4F554E540000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP7 ISZERO ISZERO PUSH2 0x8D2 JUMPI PUSH1 0x0 SWAP6 POP PUSH2 0x95B JUMP JUMPDEST DUP10 DUP8 EQ ISZERO PUSH2 0x8E2 JUMPI DUP9 SWAP6 POP PUSH2 0x95B JUMP JUMPDEST PUSH4 0xFFFFFFFF DUP9 AND PUSH3 0xF4240 EQ ISZERO PUSH2 0x915 JUMPI DUP10 PUSH2 0x904 DUP11 DUP10 PUSH4 0xFFFFFFFF PUSH2 0x1190 AND JUMP JUMPDEST DUP2 ISZERO ISZERO PUSH2 0x90D JUMPI INVALID JUMPDEST DIV SWAP6 POP PUSH2 0x95B JUMP JUMPDEST DUP7 DUP11 SUB SWAP3 POP PUSH2 0x929 DUP11 DUP5 PUSH3 0xF4240 DUP12 PUSH2 0x1271 JUMP JUMPDEST SWAP1 SWAP6 POP SWAP4 POP PUSH2 0x93E DUP10 DUP7 PUSH4 0xFFFFFFFF PUSH2 0x1190 AND JUMP JUMPDEST SWAP2 POP POP PUSH1 0xFF DUP4 AND PUSH1 0x2 EXP DUP9 MUL DUP5 DUP2 DUP4 SUB DUP2 ISZERO ISZERO PUSH2 0x957 JUMPI INVALID JUMPDEST DIV SWAP6 POP JUMPDEST POP POP POP POP POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP1 DUP1 DUP1 DUP1 DUP11 GT PUSH2 0x9B4 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x407C DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP10 GT PUSH2 0x9FA JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x409C DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP9 PUSH4 0xFFFFFFFF AND GT DUP1 ISZERO PUSH2 0xA19 JUMPI POP PUSH3 0x1E8480 PUSH4 0xFFFFFFFF DUP10 AND GT ISZERO JUMPDEST ISZERO ISZERO PUSH2 0xA6F JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F524154494F00000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP10 DUP8 GT ISZERO PUSH2 0xAC7 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F414D4F554E540000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP7 ISZERO ISZERO PUSH2 0xAD7 JUMPI PUSH1 0x0 SWAP6 POP PUSH2 0x95B JUMP JUMPDEST DUP10 DUP8 EQ ISZERO PUSH2 0xAE7 JUMPI DUP9 SWAP6 POP PUSH2 0x95B JUMP JUMPDEST PUSH4 0xFFFFFFFF DUP9 AND PUSH3 0xF4240 EQ ISZERO PUSH2 0x915 JUMPI DUP10 PUSH2 0x904 DUP9 DUP12 PUSH4 0xFFFFFFFF PUSH2 0x1190 AND JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xB18 DUP7 DUP7 DUP7 DUP7 PUSH2 0x1271 JUMP JUMPDEST SWAP2 POP SWAP2 POP SWAP5 POP SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP12 GT DUP1 ISZERO PUSH2 0xB3E JUMPI POP PUSH1 0x0 DUP10 GT JUMPDEST ISZERO ISZERO PUSH2 0xB82 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x409C DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP11 PUSH4 0xFFFFFFFF AND GT DUP1 ISZERO PUSH2 0xBA1 JUMPI POP PUSH3 0xF4240 PUSH4 0xFFFFFFFF DUP12 AND GT ISZERO JUMPDEST DUP1 ISZERO PUSH2 0xBB3 JUMPI POP PUSH1 0x0 DUP9 PUSH4 0xFFFFFFFF AND GT JUMPDEST DUP1 ISZERO PUSH2 0xBC8 JUMPI POP PUSH3 0xF4240 PUSH4 0xFFFFFFFF DUP10 AND GT ISZERO JUMPDEST ISZERO ISZERO PUSH2 0xC1E JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F574549474854000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP8 PUSH4 0xFFFFFFFF AND DUP11 PUSH4 0xFFFFFFFF AND EQ ISZERO PUSH2 0xC63 JUMPI PUSH2 0xC42 DUP12 DUP9 PUSH4 0xFFFFFFFF PUSH2 0x1214 AND JUMP JUMPDEST PUSH2 0xC52 DUP11 DUP10 PUSH4 0xFFFFFFFF PUSH2 0x1190 AND JUMP JUMPDEST DUP2 ISZERO ISZERO PUSH2 0xC5B JUMPI INVALID JUMPDEST DIV SWAP6 POP PUSH2 0xCB3 JUMP JUMPDEST PUSH2 0xC73 DUP12 DUP9 PUSH4 0xFFFFFFFF PUSH2 0x1214 AND JUMP JUMPDEST SWAP3 POP PUSH2 0xC81 DUP4 DUP13 DUP13 DUP12 PUSH2 0x1271 JUMP JUMPDEST SWAP1 SWAP6 POP SWAP4 POP PUSH2 0xC96 DUP10 DUP7 PUSH4 0xFFFFFFFF PUSH2 0x1190 AND JUMP JUMPDEST SWAP2 POP POP PUSH1 0xFF DUP4 AND PUSH1 0x2 EXP DUP9 MUL DUP5 DUP2 DUP4 SUB DUP2 ISZERO ISZERO PUSH2 0xCAF JUMPI INVALID JUMPDEST DIV SWAP6 POP JUMPDEST POP POP POP POP POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 DUP8 DUP10 EQ ISZERO PUSH2 0xD27 JUMPI PUSH1 0x0 DUP10 GT DUP1 PUSH2 0xCDE JUMPI POP PUSH1 0x0 DUP8 GT JUMPDEST ISZERO ISZERO PUSH2 0xD22 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x409C DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0xD87 JUMP JUMPDEST PUSH1 0x0 DUP10 GT DUP1 ISZERO PUSH2 0xD37 JUMPI POP PUSH1 0x0 DUP9 GT JUMPDEST DUP1 ISZERO PUSH2 0xD43 JUMPI POP PUSH1 0x0 DUP8 GT JUMPDEST ISZERO ISZERO PUSH2 0xD87 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x409C DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP7 GT DUP1 ISZERO PUSH2 0xD97 JUMPI POP PUSH1 0x0 DUP6 GT JUMPDEST ISZERO ISZERO PUSH2 0xDED JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F524154450000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0xDFD DUP10 DUP8 PUSH4 0xFFFFFFFF PUSH2 0x1190 AND JUMP JUMPDEST SWAP2 POP PUSH2 0xE0F DUP8 DUP7 PUSH4 0xFFFFFFFF PUSH2 0x1190 AND JUMP JUMPDEST SWAP1 POP DUP8 DUP10 LT ISZERO PUSH2 0xE30 JUMPI PUSH2 0xE27 DUP9 DUP11 DUP5 DUP5 PUSH1 0x1 PUSH2 0x1CBF JUMP JUMPDEST SWAP4 POP SWAP4 POP PUSH2 0xE55 JUMP JUMPDEST DUP8 DUP10 GT ISZERO PUSH2 0xE46 JUMPI PUSH2 0xE27 DUP10 DUP10 DUP5 DUP5 PUSH1 0x0 PUSH2 0x1CBF JUMP JUMPDEST PUSH2 0xE50 DUP3 DUP3 PUSH2 0x135B JUMP JUMPDEST SWAP4 POP SWAP4 POP JUMPDEST POP POP SWAP6 POP SWAP6 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x705 DUP3 PUSH2 0x1DA2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x705 DUP3 PUSH2 0x1E2F JUMP JUMPDEST PUSH1 0x0 PUSH2 0x705 DUP3 PUSH2 0x222F JUMP JUMPDEST PUSH2 0xE8A PUSH2 0x2298 JUMP JUMPDEST PUSH2 0xE92 PUSH2 0x2A6E JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x6EF DUP5 DUP5 PUSH2 0x3475 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP1 DUP1 DUP1 DUP10 GT PUSH2 0xEEC JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x407C DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP9 GT PUSH2 0xF32 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x409C DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP8 PUSH4 0xFFFFFFFF AND GT DUP1 ISZERO PUSH2 0xF51 JUMPI POP PUSH3 0x1E8480 PUSH4 0xFFFFFFFF DUP9 AND GT ISZERO JUMPDEST ISZERO ISZERO PUSH2 0xFA7 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F524154494F00000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP6 ISZERO ISZERO PUSH2 0xFB7 JUMPI PUSH1 0x0 SWAP5 POP PUSH2 0x6C8 JUMP JUMPDEST PUSH4 0xFFFFFFFF DUP8 AND PUSH3 0xF4240 EQ ISZERO PUSH2 0xFF0 JUMPI DUP9 PUSH1 0x1 PUSH2 0xFDB DUP9 DUP12 PUSH4 0xFFFFFFFF PUSH2 0x1190 AND JUMP JUMPDEST SUB DUP2 ISZERO ISZERO PUSH2 0xFE5 JUMPI INVALID JUMPDEST DIV PUSH1 0x1 ADD SWAP5 POP PUSH2 0x6C8 JUMP JUMPDEST PUSH2 0x1000 DUP10 DUP8 PUSH4 0xFFFFFFFF PUSH2 0x1214 AND JUMP JUMPDEST SWAP2 POP PUSH2 0x1011 DUP3 DUP11 PUSH3 0xF4240 DUP11 PUSH2 0x1271 JUMP JUMPDEST SWAP1 SWAP5 POP SWAP3 POP PUSH1 0xFF DUP4 AND PUSH1 0x1 PUSH2 0x102C DUP11 DUP8 PUSH4 0xFFFFFFFF PUSH2 0x1190 AND JUMP JUMPDEST PUSH1 0x2 SWAP3 SWAP1 SWAP3 EXP SWAP2 SUB DIV SWAP8 SWAP1 SWAP8 SUB PUSH1 0x1 ADD SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP1 DUP1 DUP1 DUP10 GT PUSH2 0x1093 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x407C DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP9 GT PUSH2 0x10D9 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x409C DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP8 PUSH4 0xFFFFFFFF AND GT DUP1 ISZERO PUSH2 0x10F8 JUMPI POP PUSH3 0xF4240 PUSH4 0xFFFFFFFF DUP9 AND GT ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x114E JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F574549474854000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP6 ISZERO ISZERO PUSH2 0x115E JUMPI PUSH1 0x0 SWAP5 POP PUSH2 0x6C8 JUMP JUMPDEST PUSH4 0xFFFFFFFF DUP8 AND PUSH3 0xF4240 EQ ISZERO PUSH2 0x1180 JUMPI DUP8 PUSH2 0x66F DUP11 DUP9 PUSH4 0xFFFFFFFF PUSH2 0x1190 AND JUMP JUMPDEST PUSH2 0x690 DUP7 DUP10 PUSH4 0xFFFFFFFF PUSH2 0x1214 AND JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 ISZERO ISZERO PUSH2 0x11A3 JUMPI PUSH1 0x0 SWAP2 POP PUSH2 0x120D JUMP JUMPDEST POP DUP3 DUP3 MUL DUP3 DUP5 DUP3 DUP2 ISZERO ISZERO PUSH2 0x11B3 JUMPI INVALID JUMPDEST DIV EQ PUSH2 0x1209 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP1 SWAP2 POP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 ADD DUP4 DUP2 LT ISZERO PUSH2 0x1209 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP1 DUP1 DUP1 PUSH17 0x200000000000000000000000000000000 DUP11 LT PUSH2 0x1295 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP9 PUSH1 0x7F PUSH1 0x2 EXP DUP12 MUL DUP2 ISZERO ISZERO PUSH2 0x12A6 JUMPI INVALID JUMPDEST DIV SWAP3 POP PUSH17 0x15BF0A8B1457695355FB8AC404E7A79E3 DUP4 LT ISZERO PUSH2 0x12D2 JUMPI PUSH2 0x12CB DUP4 PUSH2 0x1398 JUMP JUMPDEST SWAP4 POP PUSH2 0x12DE JUMP JUMPDEST PUSH2 0x12DB DUP4 PUSH2 0x17E2 JUMP JUMPDEST SWAP4 POP JUMPDEST DUP7 PUSH4 0xFFFFFFFF AND DUP9 PUSH4 0xFFFFFFFF AND DUP6 MUL DUP2 ISZERO ISZERO PUSH2 0x12F7 JUMPI INVALID JUMPDEST DIV SWAP2 POP PUSH17 0x800000000000000000000000000000000 DUP3 LT ISZERO PUSH2 0x1327 JUMPI PUSH2 0x131C DUP3 PUSH2 0x1E2F JUMP JUMPDEST PUSH1 0x7F SWAP6 POP SWAP6 POP PUSH2 0x134E JUMP JUMPDEST PUSH2 0x1330 DUP3 PUSH2 0x1DA2 JUMP JUMPDEST SWAP1 POP PUSH2 0x1348 PUSH1 0xFF PUSH1 0x7F DUP4 SWAP1 SUB AND PUSH1 0x2 EXP DUP4 DIV DUP3 PUSH2 0x189C JUMP JUMPDEST DUP2 SWAP6 POP SWAP6 POP JUMPDEST POP POP POP POP SWAP5 POP SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP1 DUP5 DUP7 GT PUSH2 0x137A JUMPI PUSH2 0x1371 DUP7 DUP7 PUSH2 0x3475 JUMP JUMPDEST SWAP4 POP SWAP4 POP PUSH2 0x138F JUMP JUMPDEST PUSH2 0x1384 DUP6 DUP8 PUSH2 0x3475 JUMP JUMPDEST SWAP2 POP SWAP2 POP DUP1 DUP3 SWAP4 POP SWAP4 POP JUMPDEST POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP1 DUP1 PUSH16 0xD3094C70F034DE4B96FF7D5B6F99FCD8 DUP7 LT PUSH2 0x13E7 JUMPI PUSH16 0x40000000000000000000000000000000 SWAP4 SWAP1 SWAP4 ADD SWAP3 PUSH16 0xD3094C70F034DE4B96FF7D5B6F99FCD8 PUSH1 0x7F PUSH1 0x2 EXP DUP8 MUL DIV SWAP6 POP JUMPDEST PUSH16 0xA45AF1E1F40C333B3DE1DB4DD55F29A7 DUP7 LT PUSH2 0x1430 JUMPI PUSH16 0x20000000000000000000000000000000 SWAP4 SWAP1 SWAP4 ADD SWAP3 PUSH16 0xA45AF1E1F40C333B3DE1DB4DD55F29A7 PUSH1 0x7F PUSH1 0x2 EXP DUP8 MUL DIV SWAP6 POP JUMPDEST PUSH16 0x910B022DB7AE67CE76B441C27035C6A1 DUP7 LT PUSH2 0x1479 JUMPI PUSH16 0x10000000000000000000000000000000 SWAP4 SWAP1 SWAP4 ADD SWAP3 PUSH16 0x910B022DB7AE67CE76B441C27035C6A1 PUSH1 0x7F PUSH1 0x2 EXP DUP8 MUL DIV SWAP6 POP JUMPDEST PUSH16 0x88415ABBE9A76BEAD8D00CF112E4D4A8 DUP7 LT PUSH2 0x14C2 JUMPI PUSH16 0x8000000000000000000000000000000 SWAP4 SWAP1 SWAP4 ADD SWAP3 PUSH16 0x88415ABBE9A76BEAD8D00CF112E4D4A8 PUSH1 0x7F PUSH1 0x2 EXP DUP8 MUL DIV SWAP6 POP JUMPDEST PUSH16 0x84102B00893F64C705E841D5D4064BD3 DUP7 LT PUSH2 0x150B JUMPI PUSH16 0x4000000000000000000000000000000 SWAP4 SWAP1 SWAP4 ADD SWAP3 PUSH16 0x84102B00893F64C705E841D5D4064BD3 PUSH1 0x7F PUSH1 0x2 EXP DUP8 MUL DIV SWAP6 POP JUMPDEST PUSH16 0x8204055AAEF1C8BD5C3259F4822735A2 DUP7 LT PUSH2 0x1554 JUMPI PUSH16 0x2000000000000000000000000000000 SWAP4 SWAP1 SWAP4 ADD SWAP3 PUSH16 0x8204055AAEF1C8BD5C3259F4822735A2 PUSH1 0x7F PUSH1 0x2 EXP DUP8 MUL DIV SWAP6 POP JUMPDEST PUSH16 0x810100AB00222D861931C15E39B44E99 DUP7 LT PUSH2 0x159D JUMPI PUSH16 0x1000000000000000000000000000000 SWAP4 SWAP1 SWAP4 ADD SWAP3 PUSH16 0x810100AB00222D861931C15E39B44E99 PUSH1 0x7F PUSH1 0x2 EXP DUP8 MUL DIV SWAP6 POP JUMPDEST PUSH16 0x808040155AABBBE9451521693554F733 DUP7 LT PUSH2 0x15E5 JUMPI PUSH15 0x800000000000000000000000000000 SWAP4 SWAP1 SWAP4 ADD SWAP3 PUSH16 0x808040155AABBBE9451521693554F733 PUSH1 0x7F PUSH1 0x2 EXP DUP8 MUL DIV SWAP6 POP JUMPDEST PUSH16 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT DUP7 ADD SWAP3 POP DUP3 SWAP2 POP PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP1 MUL DIV SWAP1 POP PUSH1 0x80 PUSH1 0x2 EXP DUP4 DUP2 SUB DUP4 MUL DIV SWAP4 SWAP1 SWAP4 ADD SWAP3 PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DIV SWAP2 POP PUSH17 0x200000000000000000000000000000000 PUSH16 0xAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA DUP5 SWAP1 SUB DUP4 MUL DIV SWAP4 SWAP1 SWAP4 ADD SWAP3 PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DIV SWAP2 POP PUSH17 0x300000000000000000000000000000000 PUSH16 0x99999999999999999999999999999999 DUP5 SWAP1 SUB DUP4 MUL DIV SWAP4 SWAP1 SWAP4 ADD SWAP3 PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DIV SWAP2 POP PUSH17 0x400000000000000000000000000000000 PUSH16 0x92492492492492492492492492492492 DUP5 SWAP1 SUB DUP4 MUL DIV SWAP4 SWAP1 SWAP4 ADD SWAP3 PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DIV SWAP2 POP PUSH17 0x500000000000000000000000000000000 PUSH16 0x8E38E38E38E38E38E38E38E38E38E38E DUP5 SWAP1 SUB DUP4 MUL DIV SWAP4 SWAP1 SWAP4 ADD SWAP3 PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DIV SWAP2 POP PUSH17 0x600000000000000000000000000000000 PUSH16 0x8BA2E8BA2E8BA2E8BA2E8BA2E8BA2E8B DUP5 SWAP1 SUB DUP4 MUL DIV SWAP4 SWAP1 SWAP4 ADD SWAP3 PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DIV SWAP2 POP PUSH17 0x700000000000000000000000000000000 PUSH16 0x89D89D89D89D89D89D89D89D89D89D89 DUP5 SWAP1 SUB DUP4 MUL DIV SWAP4 SWAP1 SWAP4 ADD SWAP3 PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DIV SWAP2 POP PUSH17 0x800000000000000000000000000000000 PUSH16 0x88888888888888888888888888888888 DUP5 SWAP1 SUB DUP4 MUL DIV SWAP4 SWAP1 SWAP4 ADD SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV DUP3 SUB DUP3 DUP5 DUP2 ISZERO ISZERO PUSH2 0x17C3 JUMPI INVALID JUMPDEST MOD DUP2 ISZERO ISZERO PUSH2 0x17CD JUMPI INVALID JUMPDEST DIV DUP3 DUP5 DUP2 ISZERO ISZERO PUSH2 0x17D9 JUMPI INVALID JUMPDEST DIV ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP1 PUSH1 0x80 PUSH1 0x2 EXP DUP6 LT PUSH2 0x181A JUMPI PUSH2 0x1802 PUSH1 0x7F PUSH1 0x2 EXP DUP7 JUMPDEST DIV PUSH2 0x222F JUMP JUMPDEST PUSH1 0xFF DUP2 AND PUSH1 0x2 DUP2 SWAP1 EXP SWAP1 SWAP7 DIV SWAP6 PUSH1 0x7F PUSH1 0x2 EXP MUL SWAP4 POP SWAP2 POP JUMPDEST PUSH1 0x7F PUSH1 0x2 EXP DUP6 GT ISZERO PUSH2 0x186C JUMPI POP PUSH1 0x7F JUMPDEST PUSH1 0x0 DUP2 PUSH1 0xFF AND GT ISZERO PUSH2 0x186C JUMPI PUSH1 0x7F PUSH1 0x2 EXP DUP6 DUP1 MUL DIV SWAP5 POP PUSH1 0x80 PUSH1 0x2 EXP DUP6 LT PUSH2 0x1863 JUMPI PUSH1 0x2 SWAP5 DUP6 SWAP1 DIV SWAP5 PUSH1 0xFF PUSH1 0x0 NOT DUP4 ADD AND SWAP1 EXP SWAP3 SWAP1 SWAP3 ADD SWAP2 JUMPDEST PUSH1 0x0 NOT ADD PUSH2 0x182A JUMP JUMPDEST PUSH16 0x5B9DE1D10BF4103D647B0955897BA80 PUSH16 0x3F80FE03F80FE03F80FE03F80FE03F8 DUP5 MUL DIV SWAP4 POP JUMPDEST POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP5 SWAP2 POP PUSH1 0x0 SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH16 0x3442C4E6074A82F1797F72AC0000000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH16 0x116B96F757C380FB287FD0E40000000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH15 0x45AE5BDD5F0E03ECA1FF4390000000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH15 0xDEFABF91302CD95B9FFDA50000000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH15 0x2529CA9832B22439EFFF9B8000000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH14 0x54F1CF12BD04E516B6DA88000000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH14 0xA9E39E257A09CA2D6DB51000000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH14 0x12E066E7B839FA050C309000000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH13 0x1E33D7D926C329A1AD1A800000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH13 0x2BEE513BDB4A6B19B5F800000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH12 0x3A9316FA79B88ECCF2A00000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH12 0x48177EBE1FA812375200000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH11 0x5263FE90242DCBACF00000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH11 0x57E22099C030D94100000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH10 0x57E22099C030D9410000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH10 0x52B6B54569976310000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH9 0x4985F67696BF748000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH9 0x3DEA12EA99E498000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH8 0x31880F2214B6E000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH8 0x25BCFF56EB36000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH7 0x1B722E10AB1000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH7 0x1317C70077000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH6 0xCBA84AAFA00 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH5 0x82573A0A00 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH5 0x5035AD900 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH4 0x2F881B00 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH4 0x1B29340 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH3 0xEFC40 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH2 0x7FE0 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH2 0x420 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH1 0x21 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH1 0x1 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND PUSH1 0x1 SWAP1 PUSH1 0x2 EXP MUL DUP6 PUSH16 0x688589CC0E9505E2F2FEE5580000000 DUP4 DUP2 ISZERO ISZERO PUSH2 0x1CB3 JUMPI INVALID JUMPDEST DIV ADD ADD SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x1CD2 DUP10 DUP10 PUSH2 0x3511 JUMP JUMPDEST SWAP1 SWAP10 POP SWAP8 POP DUP10 PUSH2 0x1CEC DUP13 PUSH1 0x7F PUSH1 0x2 EXP PUSH4 0xFFFFFFFF PUSH2 0x1190 AND JUMP JUMPDEST DUP2 ISZERO ISZERO PUSH2 0x1CF5 JUMPI INVALID JUMPDEST DIV SWAP4 POP PUSH17 0x15BF0A8B1457695355FB8AC404E7A79E3 DUP5 LT PUSH2 0x1D1E JUMPI PUSH2 0x1D19 DUP5 PUSH2 0x17E2 JUMP JUMPDEST PUSH2 0x1D27 JUMP JUMPDEST PUSH2 0x1D27 DUP5 PUSH2 0x1398 JUMP JUMPDEST SWAP3 POP DUP8 PUSH2 0x1D3A DUP5 DUP12 PUSH4 0xFFFFFFFF PUSH2 0x1190 AND JUMP JUMPDEST DUP2 ISZERO ISZERO PUSH2 0x1D43 JUMPI INVALID JUMPDEST DIV SWAP2 POP DUP7 PUSH2 0x1D59 JUMPI PUSH2 0x1D54 DUP3 PUSH2 0x35CD JUMP JUMPDEST PUSH2 0x1D62 JUMP JUMPDEST PUSH2 0x1D62 DUP3 PUSH2 0x3628 JUMP JUMPDEST SWAP1 POP PUSH2 0x1D90 PUSH2 0x1D77 DUP3 DUP12 PUSH4 0xFFFFFFFF PUSH2 0x1190 AND JUMP JUMPDEST PUSH2 0x1D8B DUP11 PUSH1 0x7F PUSH1 0x2 EXP PUSH4 0xFFFFFFFF PUSH2 0x1190 AND JUMP JUMPDEST PUSH2 0x135B JUMP JUMPDEST SWAP6 POP SWAP6 POP POP POP POP POP SWAP6 POP SWAP6 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 PUSH1 0x7F DUP3 JUMPDEST DUP2 PUSH1 0xFF AND DUP4 PUSH1 0x1 ADD PUSH1 0xFF AND LT ISZERO PUSH2 0x1DEF JUMPI PUSH1 0x2 PUSH1 0xFF DUP5 DUP5 ADD AND DIV SWAP1 POP DUP5 PUSH1 0x0 PUSH1 0xFF DUP4 AND PUSH1 0x80 DUP2 LT PUSH2 0x1DD7 JUMPI INVALID JUMPDEST ADD SLOAD LT PUSH2 0x1DE6 JUMPI DUP1 SWAP3 POP PUSH2 0x1DEA JUMP JUMPDEST DUP1 SWAP2 POP JUMPDEST PUSH2 0x1DAA JUMP JUMPDEST DUP5 PUSH1 0x0 PUSH1 0xFF DUP5 AND PUSH1 0x80 DUP2 LT PUSH2 0x1E00 JUMPI INVALID JUMPDEST ADD SLOAD LT PUSH2 0x1E0F JUMPI DUP2 SWAP4 POP PUSH2 0x1894 JUMP JUMPDEST DUP5 PUSH1 0x0 PUSH1 0xFF DUP6 AND PUSH1 0x80 DUP2 LT PUSH2 0x1E20 JUMPI INVALID JUMPDEST ADD SLOAD LT PUSH2 0x174 JUMPI DUP3 SWAP4 POP PUSH2 0x1894 JUMP JUMPDEST PUSH1 0x0 PUSH8 0x168244FDAC78000 PUSH1 0x7F PUSH1 0x2 EXP PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP5 AND DUP1 DUP1 MUL DUP3 SWAP1 DIV DUP1 DUP3 MUL DUP4 SWAP1 DIV DUP1 DUP4 MUL DUP5 SWAP1 DIV SWAP5 DUP6 MUL PUSH8 0x10E1B3BE415A0000 SWAP1 SWAP3 MUL PUSH8 0x5A0913F6B1E0000 SWAP2 SWAP1 SWAP2 MUL ADD ADD SWAP3 SWAP1 SWAP2 DUP2 DUP4 MUL DIV SWAP1 POP DUP1 PUSH7 0x4807432BC18000 MUL DUP4 ADD SWAP3 POP PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DUP2 ISZERO ISZERO PUSH2 0x1EAA JUMPI INVALID JUMPDEST DIV SWAP1 POP DUP1 PUSH7 0xC0135DCA04000 MUL DUP4 ADD SWAP3 POP PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DUP2 ISZERO ISZERO PUSH2 0x1ECC JUMPI INVALID JUMPDEST DIV SWAP1 POP DUP1 PUSH7 0x1B707B1CDC000 MUL DUP4 ADD SWAP3 POP PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DUP2 ISZERO ISZERO PUSH2 0x1EEE JUMPI INVALID JUMPDEST DIV SWAP1 POP DUP1 PUSH6 0x36E0F639B800 MUL DUP4 ADD SWAP3 POP PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DUP2 ISZERO ISZERO PUSH2 0x1F0F JUMPI INVALID JUMPDEST DIV SWAP1 POP DUP1 PUSH6 0x618FEE9F800 MUL DUP4 ADD SWAP3 POP PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DUP2 ISZERO ISZERO PUSH2 0x1F30 JUMPI INVALID JUMPDEST DIV SWAP1 POP DUP1 PUSH5 0x9C197DCC00 MUL DUP4 ADD SWAP3 POP PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DUP2 ISZERO ISZERO PUSH2 0x1F50 JUMPI INVALID JUMPDEST DIV SWAP1 POP DUP1 PUSH5 0xE30DCE400 MUL DUP4 ADD SWAP3 POP PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DUP2 ISZERO ISZERO PUSH2 0x1F70 JUMPI INVALID JUMPDEST DIV SWAP1 POP DUP1 PUSH5 0x12EBD1300 MUL DUP4 ADD SWAP3 POP PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DUP2 ISZERO ISZERO PUSH2 0x1F90 JUMPI INVALID JUMPDEST DIV SWAP1 POP DUP1 PUSH4 0x17499F00 MUL DUP4 ADD SWAP3 POP PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DUP2 ISZERO ISZERO PUSH2 0x1FAF JUMPI INVALID JUMPDEST DIV SWAP1 POP DUP1 PUSH4 0x1A9D480 MUL DUP4 ADD SWAP3 POP PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DUP2 ISZERO ISZERO PUSH2 0x1FCE JUMPI INVALID JUMPDEST DIV SWAP1 POP DUP1 PUSH3 0x1C6380 MUL DUP4 ADD SWAP3 POP PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DUP2 ISZERO ISZERO PUSH2 0x1FEC JUMPI INVALID JUMPDEST DIV SWAP1 POP DUP1 PUSH3 0x1C638 MUL DUP4 ADD SWAP3 POP PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DUP2 ISZERO ISZERO PUSH2 0x200A JUMPI INVALID JUMPDEST DIV SWAP1 POP DUP1 PUSH2 0x1AB8 MUL DUP4 ADD SWAP3 POP PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DUP2 ISZERO ISZERO PUSH2 0x2027 JUMPI INVALID JUMPDEST DIV SWAP1 POP DUP1 PUSH2 0x17C MUL DUP4 ADD SWAP3 POP PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DUP2 ISZERO ISZERO PUSH2 0x2044 JUMPI INVALID JUMPDEST DIV SWAP1 POP DUP1 PUSH1 0x14 MUL DUP4 ADD SWAP3 POP PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DUP2 ISZERO ISZERO PUSH2 0x2060 JUMPI INVALID JUMPDEST PUSH8 0x21C3677C82B40000 SWAP2 SWAP1 DIV SWAP4 DUP5 ADD DIV DUP3 ADD PUSH1 0x7F PUSH1 0x2 EXP ADD SWAP3 SWAP1 POP PUSH16 0x10000000000000000000000000000000 DUP6 AND ISZERO PUSH2 0x20BD JUMPI PUSH17 0x18EBEF9EAC820AE8682B9793AC6D1E776 PUSH17 0x1C3D6A24ED82218787D624D3E5EBA95F9 DUP5 MUL DIV SWAP3 POP JUMPDEST PUSH16 0x20000000000000000000000000000000 DUP6 AND ISZERO PUSH2 0x20FF JUMPI PUSH17 0x1368B2FC6F9609FE7ACEB46AA619BAED4 PUSH17 0x18EBEF9EAC820AE8682B9793AC6D1E778 DUP5 MUL DIV SWAP3 POP JUMPDEST PUSH16 0x40000000000000000000000000000000 DUP6 AND ISZERO PUSH2 0x2140 JUMPI PUSH16 0xBC5AB1B16779BE3575BD8F0520A9F21F PUSH17 0x1368B2FC6F9609FE7ACEB46AA619BAED5 DUP5 MUL DIV SWAP3 POP JUMPDEST PUSH1 0x7F PUSH1 0x2 EXP DUP6 AND ISZERO PUSH2 0x2174 JUMPI PUSH16 0x454AAA8EFE072E7F6DDBAB84B40A55C9 PUSH16 0xBC5AB1B16779BE3575BD8F0520A9F21E DUP5 MUL DIV SWAP3 POP JUMPDEST PUSH1 0x80 PUSH1 0x2 EXP DUP6 AND ISZERO PUSH2 0x21A8 JUMPI PUSH16 0x960AADC109E7A3BF4578099615711EA PUSH16 0x454AAA8EFE072E7F6DDBAB84B40A55C5 DUP5 MUL DIV SWAP3 POP JUMPDEST PUSH17 0x200000000000000000000000000000000 DUP6 AND ISZERO PUSH2 0x21E8 JUMPI PUSH15 0x2BF84208204F5977F9A8CF01FDCE3D PUSH16 0x960AADC109E7A3BF4578099615711D7 DUP5 MUL DIV SWAP3 POP JUMPDEST PUSH17 0x400000000000000000000000000000000 DUP6 AND ISZERO PUSH2 0x2226 JUMPI PUSH14 0x3C6AB775DD0B95B4CBEE7E65D11 PUSH15 0x2BF84208204F5977F9A8CF01FDC307 DUP5 MUL DIV SWAP3 POP JUMPDEST POP SWAP1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 PUSH2 0x100 DUP5 LT ISZERO PUSH2 0x225E JUMPI JUMPDEST PUSH1 0x1 DUP5 GT ISZERO PUSH2 0x2259 JUMPI PUSH1 0x2 SWAP1 SWAP4 DIV SWAP3 PUSH1 0x1 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x223E JUMP JUMPDEST PUSH2 0x120D JUMP JUMPDEST POP PUSH1 0x80 JUMPDEST PUSH1 0x0 DUP2 PUSH1 0xFF AND GT ISZERO PUSH2 0x120D JUMPI PUSH1 0xFF DUP2 AND PUSH1 0x2 EXP DUP5 LT PUSH2 0x228B JUMPI PUSH1 0xFF DUP2 AND PUSH1 0x2 EXP SWAP1 SWAP4 DIV SWAP3 SWAP1 DUP2 OR SWAP1 JUMPDEST PUSH1 0x2 PUSH1 0xFF SWAP1 SWAP2 AND DIV PUSH2 0x2262 JUMP JUMPDEST PUSH17 0x1C35FEDD14FFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x20 SSTORE PUSH17 0x1B0CE43B323FFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x21 SSTORE PUSH17 0x19F0028EC1FFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x22 SSTORE PUSH17 0x18DED91F0E7FFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x23 SSTORE PUSH17 0x17D8EC7F0417FFFFFFFFFFFFFFFFFFFFFF PUSH1 0x24 SSTORE PUSH17 0x16DDC6556CDBFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x25 SSTORE PUSH17 0x15ECF52776A1FFFFFFFFFFFFFFFFFFFFFF PUSH1 0x26 SSTORE PUSH17 0x15060C256CB2FFFFFFFFFFFFFFFFFFFFFF PUSH1 0x27 SSTORE PUSH17 0x1428A2F98D72FFFFFFFFFFFFFFFFFFFFFF PUSH1 0x28 SSTORE PUSH17 0x13545598E5C23FFFFFFFFFFFFFFFFFFFFF PUSH1 0x29 SSTORE PUSH17 0x1288C4161CE1DFFFFFFFFFFFFFFFFFFFFF PUSH1 0x2A SSTORE PUSH17 0x11C592761C666FFFFFFFFFFFFFFFFFFFFF PUSH1 0x2B SSTORE PUSH17 0x110A688680A757FFFFFFFFFFFFFFFFFFFF PUSH1 0x2C SSTORE PUSH17 0x1056F1B5BEDF77FFFFFFFFFFFFFFFFFFFF PUSH1 0x2D SSTORE PUSH17 0xFAADCECEEFF8BFFFFFFFFFFFFFFFFFFFF PUSH1 0x2E SSTORE PUSH17 0xF05DC6B27EDADFFFFFFFFFFFFFFFFFFFF PUSH1 0x2F SSTORE PUSH17 0xE67A5A25DA4107FFFFFFFFFFFFFFFFFFF PUSH1 0x30 SSTORE PUSH17 0xDCFF115B14EEDFFFFFFFFFFFFFFFFFFFF PUSH1 0x31 SSTORE PUSH17 0xD3E7A392431239FFFFFFFFFFFFFFFFFFF PUSH1 0x32 SSTORE PUSH17 0xCB2FF529EB71E4FFFFFFFFFFFFFFFFFFF PUSH1 0x33 SSTORE PUSH17 0xC2D415C3DB974AFFFFFFFFFFFFFFFFFFF PUSH1 0x34 SSTORE PUSH17 0xBAD03E7D883F69BFFFFFFFFFFFFFFFFFF PUSH1 0x35 SSTORE PUSH17 0xB320D03B2C343D5FFFFFFFFFFFFFFFFFF PUSH1 0x36 SSTORE PUSH17 0xABC25204E02828DFFFFFFFFFFFFFFFFFF PUSH1 0x37 SSTORE PUSH17 0xA4B16F74EE4BB207FFFFFFFFFFFFFFFFF PUSH1 0x38 SSTORE PUSH17 0x9DEAF736AC1F569FFFFFFFFFFFFFFFFFF PUSH1 0x39 SSTORE PUSH17 0x976BD9952C7AA957FFFFFFFFFFFFFFFFF PUSH1 0x3A SSTORE PUSH17 0x9131271922EAA606FFFFFFFFFFFFFFFFF PUSH1 0x3B SSTORE PUSH17 0x8B380F3558668C46FFFFFFFFFFFFFFFFF PUSH1 0x3C SSTORE PUSH17 0x857DDF0117EFA215BFFFFFFFFFFFFFFFF PUSH1 0x3D SSTORE PUSH17 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x3E SSTORE PUSH17 0x7ABBF6F6ABB9D087FFFFFFFFFFFFFFFFF PUSH1 0x3F SSTORE PUSH17 0x75AF62CBAC95F7DFA7FFFFFFFFFFFFFFF PUSH1 0x40 SSTORE PUSH17 0x70D7FB7452E187AC13FFFFFFFFFFFFFFF PUSH1 0x41 SSTORE PUSH17 0x6C3390ECC8AF379295FFFFFFFFFFFFFFF PUSH1 0x42 SSTORE PUSH17 0x67C00A3B07FFC01FD6FFFFFFFFFFFFFFF PUSH1 0x43 SSTORE PUSH17 0x637B647C39CBB9D3D27FFFFFFFFFFFFFF PUSH1 0x44 SSTORE PUSH17 0x5F63B1FC104DBD39587FFFFFFFFFFFFFF PUSH1 0x45 SSTORE PUSH17 0x5B771955B36E12F7235FFFFFFFFFFFFFF PUSH1 0x46 SSTORE PUSH17 0x57B3D49DDA84556D6F6FFFFFFFFFFFFFF PUSH1 0x47 SSTORE PUSH17 0x54183095B2C8ECECF30FFFFFFFFFFFFFF PUSH1 0x48 SSTORE PUSH17 0x50A28BE635CA2B888F77FFFFFFFFFFFFF PUSH1 0x49 SSTORE PUSH17 0x4D5156639708C9DB33C3FFFFFFFFFFFFF PUSH1 0x4A SSTORE PUSH17 0x4A23105873875BD52DFDFFFFFFFFFFFFF PUSH1 0x4B SSTORE PUSH17 0x471649D87199AA990756FFFFFFFFFFFFF PUSH1 0x4C SSTORE PUSH17 0x4429A21A029D4C1457CFBFFFFFFFFFFFF PUSH1 0x4D SSTORE PUSH17 0x415BC6D6FB7DD71AF2CB3FFFFFFFFFFFF PUSH1 0x4E SSTORE PUSH17 0x3EAB73B3BBFE282243CE1FFFFFFFFFFFF PUSH1 0x4F SSTORE PUSH17 0x3C1771AC9FB6B4C18E229FFFFFFFFFFFF PUSH1 0x50 SSTORE PUSH17 0x399E96897690418F785257FFFFFFFFFFF PUSH1 0x51 SSTORE PUSH17 0x373FC456C53BB779BF0EA9FFFFFFFFFFF PUSH1 0x52 SSTORE PUSH17 0x34F9E8E490C48E67E6AB8BFFFFFFFFFFF PUSH1 0x53 SSTORE PUSH17 0x32CBFD4A7ADC790560B3337FFFFFFFFFF PUSH1 0x54 SSTORE PUSH17 0x30B50570F6E5D2ACCA94613FFFFFFFFFF PUSH1 0x55 SSTORE PUSH17 0x2EB40F9F620FDA6B56C2861FFFFFFFFFF PUSH1 0x56 SSTORE PUSH17 0x2CC8340ECB0D0F520A6AF58FFFFFFFFFF PUSH1 0x57 SSTORE PUSH17 0x2AF09481380A0A35CF1BA02FFFFFFFFFF PUSH1 0x58 SSTORE PUSH17 0x292C5BDD3B92EC810287B1B3FFFFFFFFF PUSH1 0x59 SSTORE PUSH17 0x277ABDCDAB07D5A77AC6D6B9FFFFFFFFF PUSH1 0x5A SSTORE PUSH17 0x25DAF6654B1EAA55FD64DF5EFFFFFFFFF PUSH1 0x5B SSTORE PUSH17 0x244C49C648BAA98192DCE88B7FFFFFFFF PUSH1 0x5C SSTORE PUSH17 0x22CE03CD5619A311B2471268BFFFFFFFF PUSH1 0x5D SSTORE PUSH17 0x215F77C045FBE885654A44A0FFFFFFFFF PUSH1 0x5E SSTORE PUSH17 0x1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x5F SSTORE PUSH17 0x1EAEFDBDAAEE7421FC4D3EDE5FFFFFFFF PUSH1 0x60 SSTORE PUSH17 0x1D6BD8B2EB257DF7E8CA57B09BFFFFFFF PUSH1 0x61 SSTORE PUSH17 0x1C35FEDD14B861EB0443F7F133FFFFFFF PUSH1 0x62 SSTORE PUSH17 0x1B0CE43B322BCDE4A56E8ADA5AFFFFFFF PUSH1 0x63 SSTORE PUSH17 0x19F0028EC1FFF007F5A195A39DFFFFFFF PUSH1 0x64 SSTORE PUSH17 0x18DED91F0E72EE74F49B15BA527FFFFFF PUSH1 0x65 SSTORE PUSH17 0x17D8EC7F04136F4E5615FD41A63FFFFFF PUSH1 0x66 SSTORE PUSH17 0x16DDC6556CDB84BDC8D12D22E6FFFFFFF PUSH1 0x67 SSTORE PUSH17 0x15ECF52776A1155B5BD8395814F7FFFFF PUSH1 0x68 SSTORE PUSH17 0x15060C256CB23B3B3CC3754CF40FFFFFF PUSH1 0x69 SSTORE PUSH17 0x1428A2F98D728AE223DDAB715BE3FFFFF PUSH1 0x6A SSTORE PUSH17 0x13545598E5C23276CCF0EDE68034FFFFF PUSH1 0x6B SSTORE PUSH17 0x1288C4161CE1D6F54B7F61081194FFFFF PUSH1 0x6C SSTORE PUSH17 0x11C592761C666AA641D5A01A40F17FFFF PUSH1 0x6D SSTORE PUSH17 0x110A688680A7530515F3E6E6CFDCDFFFF PUSH1 0x6E SSTORE PUSH17 0x1056F1B5BEDF75C6BCB2CE8AED428FFFF PUSH1 0x6F SSTORE PUSH16 0xFAADCECEEFF8A0890F3875F008277FFF PUSH1 0x70 SSTORE PUSH16 0xF05DC6B27EDAD306388A600F6BA0BFFF PUSH1 0x71 SSTORE PUSH16 0xE67A5A25DA41063DE1495D5B18CDBFFF PUSH1 0x72 SSTORE PUSH16 0xDCFF115B14EEDDE6FC3AA5353F2E4FFF PUSH1 0x73 SSTORE PUSH16 0xD3E7A3924312399F9AAE2E0F868F8FFF PUSH1 0x74 SSTORE PUSH16 0xCB2FF529EB71E41582CCCD5A1EE26FFF PUSH1 0x75 SSTORE PUSH16 0xC2D415C3DB974AB32A51840C0B67EDFF PUSH1 0x76 SSTORE PUSH16 0xBAD03E7D883F69AD5B0A186184E06BFF PUSH1 0x77 SSTORE PUSH16 0xB320D03B2C343D4829ABD6075F0CC5FF PUSH1 0x78 SSTORE PUSH16 0xABC25204E02828D73C6E80BCDB1A95BF PUSH1 0x79 SSTORE PUSH16 0xA4B16F74EE4BB2040A1EC6C15FBBF2DF PUSH1 0x7A SSTORE PUSH16 0x9DEAF736AC1F569DEB1B5AE3F36C130F PUSH1 0x7B SSTORE PUSH16 0x976BD9952C7AA957F5937D790EF65037 PUSH1 0x7C SSTORE PUSH16 0x9131271922EAA6064B73A22D0BD4F2BF PUSH1 0x7D SSTORE PUSH16 0x8B380F3558668C46C91C49A2F8E967B9 PUSH1 0x7E SSTORE PUSH16 0x857DDF0117EFA215952912839F6473E6 PUSH1 0x0 PUSH1 0x7F JUMPDEST ADD SSTORE JUMP JUMPDEST PUSH16 0x60E393C68D20B1BD09DEAABC0373B9C5 PUSH1 0x80 SWAP1 DUP2 SSTORE PUSH16 0x5F8F46E4854120989ED94719FB4C2011 PUSH1 0x81 SSTORE PUSH16 0x5E479EBB9129FB1B7E72A648F992B606 PUSH1 0x82 SSTORE PUSH16 0x5D0BD23FE42DFEDDE2E9586BE12B85FE PUSH1 0x83 SSTORE PUSH16 0x5BDB29DDEE979308DDFCA81AEEB8095A PUSH1 0x84 SSTORE PUSH16 0x5AB4FD8A260D2C7E2C0D2AFCF0009DAD PUSH1 0x85 SSTORE PUSH16 0x5998B31359A55D48724C65CF09001221 PUSH1 0x86 SSTORE PUSH16 0x5885BCAD2B322DFC43E8860F9C018CF5 PUSH1 0x87 SSTORE PUSH16 0x577B97AA1FE222BB452FDF111B1F0BE2 PUSH1 0x88 SSTORE PUSH16 0x5679CB5E3575632E5BAA27E2B949F704 PUSH1 0x89 SSTORE PUSH16 0x557FE8241B3A31C83C732F1CDFF4A1C5 PUSH1 0x8A SSTORE PUSH16 0x548D868026504875D6E59BBE95FC2A6B PUSH1 0x8B SSTORE PUSH16 0x53A2465CE347CF34D05A867C17DD3088 PUSH1 0x8C SSTORE PUSH16 0x52BDCE5DCD4FAED59C7F5511CF8F8ACC PUSH1 0x8D SSTORE PUSH16 0x51DFCB453C07F8DA817606E7885F7C3E PUSH1 0x8E SSTORE PUSH16 0x5107EF6B0A5A2BE8F8FF15590DAA3CCE PUSH1 0x8F SSTORE PUSH16 0x5035F241D6EAE0CD7BACBA119993DE7B PUSH1 0x90 SSTORE PUSH16 0x4F698FE90D5B53D532171E1210164C66 PUSH1 0x91 SSTORE PUSH16 0x4EA288CA297A0E6A09A0EEE240E16C85 PUSH1 0x92 SSTORE PUSH16 0x4DE0A13FDCF5D4213FC398BA6E3BECDE PUSH1 0x93 SSTORE PUSH16 0x4D23A145EEF91FEC06B06140804C4808 PUSH1 0x94 SSTORE PUSH16 0x4C6B5430D4C1EE5526473DB4AE0F11DE PUSH1 0x95 SSTORE PUSH16 0x4BB7886C240562EBA11F4963A53B4240 PUSH1 0x96 SSTORE PUSH16 0x4B080F3F1CB491D2D521E0EA4583521E PUSH1 0x97 SSTORE PUSH16 0x4A5CBC96A05589CB4D86BE1DB3168364 PUSH1 0x98 SSTORE PUSH16 0x49B566D40243517658D78C33162D6ECE PUSH1 0x99 SSTORE PUSH16 0x4911E6A02E5507A30F947383FD9A3276 PUSH1 0x9A SSTORE PUSH16 0x487216C2B31BE4ADC41DB8A8D5CC0C88 PUSH1 0x9B SSTORE PUSH16 0x47D5D3FC4A7A1B188CD3D788B5C5E9FC PUSH1 0x9C SSTORE PUSH16 0x473CFCE4871A2C40BC4F9E1C32B955D0 PUSH1 0x9D SSTORE PUSH16 0x46A771CA578AB878485810E285E31C67 PUSH1 0x9E SSTORE PUSH16 0x4615149718AED4C258C373DC676AA72D PUSH1 0x9F SSTORE PUSH16 0x4585C8B3F8FE489C6E1833CA47871384 PUSH1 0xA0 SSTORE PUSH16 0x44F972F174E41E5EFB7E9D63C29CE735 PUSH1 0xA1 SSTORE PUSH16 0x446FF970BA86D8B00BEB05ECEBF3C4DC PUSH1 0xA2 SSTORE PUSH16 0x43E9438EC88971812D6F198B5CCAAD96 PUSH1 0xA3 SSTORE PUSH16 0x436539D11FF7BEA657AEDDB394E809EF PUSH1 0xA4 SSTORE PUSH16 0x42E3C5D3E5A913401D86F66DB5D81C2C PUSH1 0xA5 SSTORE PUSH16 0x4264D2395303070EA726CBE98DF62174 PUSH1 0xA6 SSTORE PUSH16 0x41E84A9A593BB7194C3A6349ECAE4EEA PUSH1 0xA7 SSTORE PUSH16 0x416E1B785D13EBA07A08F3F18876A5AB PUSH1 0xA8 SSTORE PUSH16 0x40F6322FF389D423BA9DD7E7E7B7E809 PUSH1 0xA9 SSTORE PUSH16 0x40807CEC8A466880ECF4184545D240A4 PUSH1 0xAA SSTORE PUSH16 0x400CEA9CE88A8D3AE668E8EA0D9BF07F PUSH1 0xAB SSTORE PUSH16 0x3F9B6AE8772D4C55091E0ED7DFEA0AC1 PUSH1 0xAC SSTORE PUSH16 0x3F2BEE253FD84594F54BCAAFAC383A13 PUSH1 0xAD SSTORE PUSH16 0x3EBE654E95208BB9210C575C081C5958 PUSH1 0xAE SSTORE PUSH16 0x3E52C1FC5665635B78CE1F05AD53C086 PUSH1 0xAF SSTORE PUSH16 0x3DE8F65AC388101DDF718A6F5C1EFF65 PUSH1 0xB0 SSTORE PUSH16 0x3D80F522D59BD0B328CA012DF4CD2D49 PUSH1 0xB1 SSTORE PUSH16 0x3D1AB193129EA72B23648A161163A85A PUSH1 0xB2 SSTORE PUSH16 0x3CB61F68D32576C135B95CFB53F76D75 PUSH1 0xB3 SSTORE PUSH16 0x3C5332D9F1AAE851A3619E77E4CC8473 PUSH1 0xB4 SSTORE PUSH16 0x3BF1E08EDBE2AA109E1525F65759EF73 PUSH1 0xB5 SSTORE PUSH16 0x3B921D9CFF13FA2C197746A3DFC4918F PUSH1 0xB6 SSTORE PUSH16 0x3B33DF818910BFC1A5AEFB8F63AE2AC4 PUSH1 0xB7 SSTORE PUSH16 0x3AD71C1C77E34FA32A9F184967ECCBF6 PUSH1 0xB8 SSTORE PUSH16 0x3A7BC9ABF2C5BB53E2F7384A8A16521A PUSH1 0xB9 SSTORE PUSH16 0x3A21DEC7E76369783A68A0C6385A1C57 PUSH1 0xBA SSTORE PUSH16 0x39C9525DE6C9CDF7C1C157CA4A7A6EE3 PUSH1 0xBB SSTORE PUSH16 0x39721BAD3DC85D1240FF0190E0ADAAC3 PUSH1 0xBC SSTORE PUSH16 0x391C324344D3248F0469EB28DD3D77E0 PUSH1 0xBD SSTORE PUSH16 0x38C78DF7E3C796279FB4FF84394AB3DA PUSH1 0xBE SSTORE PUSH16 0x387426EA4638AE9AAE08049D3554C20A PUSH1 0xBF SSTORE PUSH16 0x3821F57DBD2763256C1A99BBD2051378 PUSH1 0xC0 SSTORE PUSH16 0x37D0F256CB46A8C92FF62FBBEF289698 PUSH1 0xC1 SSTORE PUSH16 0x37811658591FFC7ABDD1FEAF3CEF9B73 PUSH1 0xC2 SSTORE PUSH16 0x37325AA10E9E82F7DF0F380F7997154B PUSH1 0xC3 SSTORE PUSH16 0x36E4B888CFB408D873B9A80D439311C6 PUSH1 0xC4 SSTORE PUSH16 0x3698299E59F4BB9DE645FC9B08C64CCA PUSH1 0xC5 SSTORE PUSH16 0x364CA7A5012CB603023B57DD3EBFD50D PUSH1 0xC6 SSTORE PUSH16 0x36022C928915B778AB1B06AAEE7E61D4 PUSH1 0xC7 SSTORE PUSH16 0x35B8B28D1A73DC27500FFE35559CC028 PUSH1 0xC8 SSTORE PUSH16 0x357033E951FE250EC5EB4E60955132D7 PUSH1 0xC9 SSTORE PUSH16 0x3528AB2867934E3A21B5412E4C4F8881 PUSH1 0xCA SSTORE PUSH16 0x34E212F66C55057F9676C80094A61D59 PUSH1 0xCB SSTORE PUSH16 0x349C66289E5B3C4B540C24F42FA4B9BB PUSH1 0xCC SSTORE PUSH16 0x34579FBBD0C733A9C8D6AF6B0F7D00F7 PUSH1 0xCD SSTORE PUSH16 0x3413BAD2E712288B924B5882B5B369BF PUSH1 0xCE SSTORE PUSH16 0x33D0B2B56286510EF730E213F71F12E9 PUSH1 0xCF SSTORE PUSH16 0x338E82CE00E2496262C64457535BA1A1 PUSH1 0xD0 SSTORE PUSH16 0x334D26A96B373BB7C2F8EA1827F27A92 PUSH1 0xD1 SSTORE PUSH16 0x330C99F4F4211469E00B3E18C31475EA PUSH1 0xD2 SSTORE PUSH16 0x32CCD87D6486094999C7D5E6F33237D8 PUSH1 0xD3 SSTORE PUSH16 0x328DDE2DD617B6665A2E8556F250C1AF PUSH1 0xD4 SSTORE PUSH16 0x324FA70E9ADC270F8262755AF5A99AF9 PUSH1 0xD5 SSTORE PUSH16 0x32122F443110611CA51040F41FA6E1E3 PUSH1 0xD6 SSTORE PUSH16 0x31D5730E42C0831482F0F1485C4263D8 PUSH1 0xD7 SSTORE PUSH16 0x31996EC6B07B4A83421B5EBC4AB4E1F1 PUSH1 0xD8 SSTORE PUSH16 0x315E1EE0A68FF46BB43EC2B85032E876 PUSH1 0xD9 SSTORE PUSH16 0x31237FE7BC4DEACF6775B9EFA1A145F8 PUSH1 0xDA SSTORE PUSH16 0x30E98E7F1CC5A356E44627A6972EA2FF PUSH1 0xDB SSTORE PUSH16 0x30B04760B8917EC74205A3002650EC05 PUSH1 0xDC SSTORE PUSH16 0x3077A75C803468E9132CE0CF3224241D PUSH1 0xDD SSTORE PUSH16 0x303FAB57A6A275C36F19CDA9BACE667A PUSH1 0xDE SSTORE PUSH16 0x3008504BEB8DCBD2CF3BC1F6D5A064F0 PUSH1 0xDF SSTORE PUSH16 0x2FD19346ED17DAC61219CE0C2C5AC4B0 PUSH1 0xE0 SSTORE PUSH16 0x2F9B7169808C324B5852FD3D54BA9714 PUSH1 0xE1 SSTORE PUSH16 0x2F65E7E711CF4B064EEA9C08CBDAD574 PUSH1 0xE2 SSTORE PUSH16 0x2F30F405093042DDFF8A251B6BF6D103 PUSH1 0xE3 SSTORE PUSH16 0x2EFC931A3750F2E8BFE323EDFE037574 PUSH1 0xE4 SSTORE PUSH16 0x2EC8C28E46DBE56D98685278339400CB PUSH1 0xE5 SSTORE PUSH16 0x2E957FD933C3926D8A599B602379B851 PUSH1 0xE6 SSTORE PUSH16 0x2E62C882C7C9ED4473412702F08BA0E5 PUSH1 0xE7 SSTORE PUSH16 0x2E309A221C12BA361E3ED695167FEEE2 PUSH1 0xE8 SSTORE PUSH16 0x2DFEF25D1F865AE18DD07CFEA4BCEA10 PUSH1 0xE9 SSTORE PUSH16 0x2DCDCEE821CDC80DECC02C44344AEB31 PUSH1 0xEA SSTORE PUSH16 0x2D9D2D8562B34944D0B201BB87260C83 PUSH1 0xEB SSTORE PUSH16 0x2D6D0C04A5B62A2C42636308669B729A PUSH1 0xEC SSTORE PUSH16 0x2D3D6842C9A235517FC5A0332691528F PUSH1 0xED SSTORE PUSH16 0x2D0E402963FE1EA2834ABC408C437C10 PUSH1 0xEE SSTORE PUSH16 0x2CDF91AE602647908AFF975E4D6A2A8C PUSH1 0xEF SSTORE PUSH16 0x2CB15AD3A1EB65F6D74A75DA09A1B6C5 PUSH1 0xF0 SSTORE PUSH16 0x2C8399A6AB8E9774D6FCFF373D210727 PUSH1 0xF1 SSTORE PUSH16 0x2C564C4046F64EDBA6883CA06BBC4535 PUSH1 0xF2 SSTORE PUSH16 0x2C2970C431F952641E05CB493E23EED3 PUSH1 0xF3 SSTORE PUSH16 0x2BFD0560CD9EB14563BC7C0732856C18 PUSH1 0xF4 SSTORE PUSH16 0x2BD1084ED0332F7FF4150F9D0EF41A2C PUSH1 0xF5 SSTORE PUSH16 0x2BA577D0FA1628B76D040B12A82492FB PUSH1 0xF6 SSTORE PUSH16 0x2B7A5233CD21581E855E89DC2F1E8A92 PUSH1 0xF7 SSTORE PUSH16 0x2B4F95CD46904D05D72BDCDE337D9CC7 PUSH1 0xF8 SSTORE PUSH16 0x2B2540FC9B4D9ABBA3FACA6691914675 PUSH1 0xF9 SSTORE PUSH16 0x2AFB5229F68D0830D8BE8ADB0A0DB70F PUSH1 0xFA SSTORE PUSH16 0x2AD1C7C63A9B294C5BC73A3BA3AB7A2B PUSH1 0xFB SSTORE PUSH16 0x2AA8A04AC3CBE1EE1C9C86361465DBB8 PUSH1 0xFC SSTORE PUSH16 0x2A7FDA392D725A44A2C8AEB9AB35430D PUSH1 0xFD SSTORE PUSH16 0x2A57741B18CDE618717792B4FAA216DB PUSH1 0xFE SSTORE PUSH16 0x2A2F6C81F5D84DD950A35626D6D5503A SWAP1 PUSH1 0x7F PUSH2 0x2A6A JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH30 0x10C6F7A0B5ED8D36B4C7F34938583621FAFC8B0079A2834D26FA3FCC9EA9 DUP8 GT ISZERO PUSH2 0x34E6 JUMPI PUSH30 0x10C6F7A0B5ED8D36B4C7F34938583621FAFC8B0079A2834D26FA3FCC9EAA DUP8 DIV PUSH1 0x1 ADD SWAP3 POP DUP3 DUP8 DUP2 ISZERO ISZERO PUSH2 0x34D4 JUMPI INVALID JUMPDEST DIV SWAP7 POP DUP3 DUP7 DUP2 ISZERO ISZERO PUSH2 0x34E2 JUMPI INVALID JUMPDEST DIV SWAP6 POP JUMPDEST PUSH2 0x34FE PUSH3 0xF4240 DUP9 MUL PUSH2 0x34F9 DUP10 DUP10 PUSH2 0x1214 JUMP JUMPDEST PUSH2 0x17B0 JUMP JUMPDEST SWAP8 PUSH3 0xF4240 DUP10 SWAP1 SUB SWAP8 POP SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 PUSH1 0x2 EXP DUP7 GT ISZERO DUP1 ISZERO PUSH2 0x352F JUMPI POP PUSH1 0x80 PUSH1 0x2 EXP DUP6 GT ISZERO JUMPDEST ISZERO PUSH2 0x353F JUMPI DUP6 DUP6 SWAP4 POP SWAP4 POP PUSH2 0x138F JUMP JUMPDEST PUSH1 0x80 PUSH1 0x2 EXP DUP7 LT ISZERO PUSH2 0x356B JUMPI DUP5 PUSH1 0x80 PUSH1 0x2 EXP DUP8 MUL DUP2 ISZERO ISZERO PUSH2 0x355C JUMPI INVALID JUMPDEST DIV PUSH1 0x80 PUSH1 0x2 EXP SWAP4 POP SWAP4 POP PUSH2 0x138F JUMP JUMPDEST PUSH1 0x80 PUSH1 0x2 EXP DUP6 LT ISZERO PUSH2 0x3597 JUMPI PUSH1 0x80 PUSH1 0x2 EXP DUP7 PUSH1 0x80 PUSH1 0x2 EXP DUP8 MUL DUP2 ISZERO ISZERO PUSH2 0x358D JUMPI INVALID JUMPDEST DIV SWAP4 POP SWAP4 POP PUSH2 0x138F JUMP JUMPDEST DUP5 DUP7 GT PUSH2 0x35A4 JUMPI DUP5 PUSH2 0x35A6 JUMP JUMPDEST DUP6 JUMPDEST SWAP2 POP PUSH2 0x35B6 PUSH1 0x7F PUSH1 0x2 EXP DUP4 PUSH2 0x17FC JUMP JUMPDEST PUSH1 0xFF AND PUSH1 0x2 EXP SWAP6 DUP7 SWAP1 DIV SWAP7 SWAP6 SWAP1 SWAP5 DIV SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH16 0x2F16AC6C59DE6F8D5D6F63C1482A7C86 DUP3 GT PUSH2 0x35F6 JUMPI PUSH2 0x35EF DUP3 PUSH2 0x368C JUMP JUMPDEST SWAP1 POP PUSH2 0x708 JUMP JUMPDEST DUP2 PUSH32 0x4000000000000000000000000000000000000000000000000000000000000000 DUP2 ISZERO ISZERO PUSH2 0x3621 JUMPI INVALID JUMPDEST DIV SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH16 0x2F16AC6C59DE6F8D5D6F63C1482A7C86 DUP3 GT PUSH2 0x364A JUMPI PUSH2 0x35EF DUP3 PUSH2 0x3AEF JUMP JUMPDEST PUSH17 0x1AF16AC6C59DE6F8D5D6F63C1482A7C80 DUP3 GT PUSH2 0x366B JUMPI PUSH2 0x35EF DUP3 PUSH2 0x3F70 JUMP JUMPDEST PUSH17 0x6B22D43E72C326539CCEEEF8BB48F255FF DUP3 GT PUSH2 0x174 JUMPI PUSH2 0x35EF DUP3 PUSH2 0x3FEE JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP1 MUL DIV SWAP2 POP PUSH17 0x14D29A73A6E7B02C3668C7B0880000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH17 0x2504A0CD9A7F7215B60F9BE4800000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH17 0x484D0A1191C0EAD267967C7A4A0000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH17 0x95EC580D7E8427A4BAF26A90A00000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH17 0x1440B0BE1615A47DBA6E5B3B1F10000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH17 0x2D207601F46A99B4112418400000000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH17 0x66EBAAC4C37C622DD8288A7EB1B2000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH17 0xEF17240135F7DBD43A1BA10CF200000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH18 0x233C33C676A5EB2416094A87B3657000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH18 0x541CDE48BC0254BED49A9F8700000000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH18 0xCAE1FAD2CDD4D4CB8D73ABCA0D19A400000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH18 0x1EDB2AA2F760D15C41CEEDBA956400000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH18 0x4BA8D20D2DABD386C9529659841A2E200000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH18 0xBAC08546B867CDAA20000000000000000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH19 0x1CFA8E70C03625B9DB76C8EBF5BBF24820000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH19 0x4851D99F82060DF265F3309B26F8200000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH19 0xB550D19B129D270C44F6F55F027723CBB0000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH19 0x1C877DADC761DC272DEB65D4B0000000000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH19 0x48178ECE97479F33A77F2AD22A81B64406C000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH19 0xB6CA8268B9D810FEDF6695EF2F8A6C00000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH20 0x1D0E76631A5B05D007B8CB72A7C7F11EC36E000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH20 0x4A1C37BD9F85FD9C6C780000000000000000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH20 0xBD8369F1B702BF491E2EBFCEE08250313B65400 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH20 0x1E5C7C32A9F6C70AB2CB59D9225764D400000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH20 0x4DFF5820E165E910F95120A708E742496221E600 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH20 0xC8C8F66DB1FCED378EE50E536000000000000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH21 0x205DB8DFFFF45BFA2938F128F599DBF16EB11D880 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH21 0x53A044EBD984351493E1786AF38D39A0800000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH21 0xD86DAE2A4CC0F47633A544479735869B487B59C40 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH21 0x231000000000000000000000000000000000000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH21 0x5B0485A76F6646C2039DB1507CDD51B08649680822 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH21 0xEC983C46C49545BC17EFA6B5B0055E242200000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 PUSH16 0xDE1BC4D19EFCAC82445DA75B00000000 DUP4 DIV ADD ADD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x7F PUSH1 0x2 EXP DUP2 DUP2 SUB PUSH16 0xDE1BC4D19EFCAC82445DA75B00000000 MUL SWAP1 DUP3 DUP1 MUL DIV SWAP2 POP PUSH17 0x14D29A73A6E7B02C3668C7B0880000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH17 0x2504A0CD9A7F7215B60F9BE4800000000 DUP3 MUL SWAP1 SUB PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH17 0x484D0A1191C0EAD267967C7A4A0000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH17 0x95EC580D7E8427A4BAF26A90A00000000 DUP3 MUL SWAP1 SUB PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH17 0x1440B0BE1615A47DBA6E5B3B1F10000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH17 0x2D207601F46A99B4112418400000000000 DUP3 MUL SWAP1 SUB PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH17 0x66EBAAC4C37C622DD8288A7EB1B2000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH17 0xEF17240135F7DBD43A1BA10CF200000000 DUP3 MUL SWAP1 SUB PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH18 0x233C33C676A5EB2416094A87B3657000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH18 0x541CDE48BC0254BED49A9F8700000000000 DUP3 MUL SWAP1 SUB PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH18 0xCAE1FAD2CDD4D4CB8D73ABCA0D19A400000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH18 0x1EDB2AA2F760D15C41CEEDBA956400000000 DUP3 MUL SWAP1 SUB PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH18 0x4BA8D20D2DABD386C9529659841A2E200000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH18 0xBAC08546B867CDAA20000000000000000000 DUP3 MUL SWAP1 SUB PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH19 0x1CFA8E70C03625B9DB76C8EBF5BBF24820000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH19 0x4851D99F82060DF265F3309B26F8200000000 DUP3 MUL SWAP1 SUB PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH19 0xB550D19B129D270C44F6F55F027723CBB0000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH19 0x1C877DADC761DC272DEB65D4B0000000000000 DUP3 MUL SWAP1 SUB PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH19 0x48178ECE97479F33A77F2AD22A81B64406C000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH19 0xB6CA8268B9D810FEDF6695EF2F8A6C00000000 DUP3 MUL SWAP1 SUB PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH20 0x1D0E76631A5B05D007B8CB72A7C7F11EC36E000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH20 0x4A1C37BD9F85FD9C6C780000000000000000000 DUP3 MUL SWAP1 SUB PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH20 0xBD8369F1B702BF491E2EBFCEE08250313B65400 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH20 0x1E5C7C32A9F6C70AB2CB59D9225764D400000000 DUP3 MUL SWAP1 SUB PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH20 0x4DFF5820E165E910F95120A708E742496221E600 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH20 0xC8C8F66DB1FCED378EE50E536000000000000000 DUP3 MUL SWAP1 SUB PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH21 0x205DB8DFFFF45BFA2938F128F599DBF16EB11D880 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH21 0x53A044EBD984351493E1786AF38D39A0800000000 DUP3 MUL SWAP1 SUB PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH21 0xD86DAE2A4CC0F47633A544479735869B487B59C40 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH21 0x231000000000000000000000000000000000000000 DUP3 MUL SWAP1 SUB PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH21 0x5B0485A76F6646C2039DB1507CDD51B08649680822 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH21 0xEC983C46C49545BC17EFA6B5B0055E242200000000 DUP3 MUL SWAP1 SUB PUSH16 0xDE1BC4D19EFCAC82445DA75B00000000 DUP2 JUMPDEST DIV SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH16 0x2F16AC6C59DE6F8D5D6F63C1482A7C86 NOT DUP3 ADD PUSH16 0x3060C183060C183060C183060C18306 DUP1 DUP3 DIV SWAP1 DUP2 DUP2 MUL SWAP1 PUSH1 0x1 DUP4 ADD MUL DUP5 DUP1 PUSH1 0x80 DUP6 DUP2 DUP2 LT PUSH2 0x3FB2 JUMPI INVALID JUMPDEST ADD SLOAD SWAP2 POP PUSH1 0x80 PUSH1 0x1 DUP7 ADD DUP2 DUP2 LT PUSH2 0x3FC5 JUMPI INVALID JUMPDEST ADD SLOAD PUSH16 0x3060C183060C183060C183060C18306 SWAP5 DUP8 SUB MUL SWAP6 SWAP1 SWAP3 SUB MUL SWAP4 SWAP1 SWAP4 ADD DIV SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH17 0x15BF0A8B1457695355FB8AC404E7A79E3 DUP5 LT PUSH2 0x4019 JUMPI PUSH2 0x4014 DUP5 PUSH2 0x17E2 JUMP JUMPDEST PUSH2 0x4022 JUMP JUMPDEST PUSH2 0x4022 DUP5 PUSH2 0x1398 JUMP JUMPDEST SWAP2 POP PUSH17 0x15BF0A8B1457695355FB8AC404E7A79E3 DUP3 LT PUSH2 0x404A JUMPI PUSH2 0x4045 DUP3 PUSH2 0x17E2 JUMP JUMPDEST PUSH2 0x4053 JUMP JUMPDEST PUSH2 0x4053 DUP3 PUSH2 0x1398 JUMP JUMPDEST SWAP1 POP DUP4 PUSH1 0x7F PUSH1 0x2 EXP DUP4 PUSH1 0x7F PUSH1 0x2 EXP DUP5 MUL DUP2 ISZERO ISZERO PUSH2 0x406C JUMPI INVALID JUMPDEST DIV DUP4 DUP6 SUB ADD MUL DUP2 ISZERO ISZERO PUSH2 0x3F67 JUMPI INVALID STOP GASLIMIT MSTORE MSTORE 0x5f 0x49 0x4e JUMP COINBASE 0x4c 0x49 DIFFICULTY 0x5f MSTORE8 SSTORE POP POP 0x4c MSIZE STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP GASLIMIT MSTORE MSTORE 0x5f 0x49 0x4e JUMP COINBASE 0x4c 0x49 DIFFICULTY 0x5f MSTORE GASLIMIT MSTORE8 GASLIMIT MSTORE JUMP GASLIMIT 0x5f TIMESTAMP COINBASE 0x4c COINBASE 0x4e NUMBER GASLIMIT STOP STOP STOP STOP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 DIFFICULTY CREATE 0x27 PUSH3 0xB5E42A 0xc5 0xc4 0xda DELEGATECALL SLOAD 0xd1 PC LOG0 DUP10 0xec PC 0xa9 0xa5 XOR 0x27 SWAP15 PUSH17 0x25D2514A1C9B392002900000000000000 ", + "sourceMap": "156:1326:40:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;156:1326:40;;;;;;;" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "6080604052600436106101745763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631da6bbfb811461017957806329a00e7c146101b25780632f55bdb5146101d957806335b49af4146102005780633e75c6ca146102275780633e8a38ab1461026557806347d0b6861461027d57806348d73fed146101b25780634982d52d1461029857806349f9b0f7146102b057806354fd4d50146102d757806365098bb3146103035780636cab50551461033157806376cf0b561461034f57806379c1b450146103035780638074590a146103765780638c5ce82a1461039d57806394491fab146103e25780639d11410814610303578063a11aa1b414610410578063a25a34b114610434578063abfd231d14610200578063acdee8cb14610462578063ce782e081461047a578063e1c7392a14610492578063e4883121146104a9578063ebbb2158146104c4578063f3250fe2146104eb578063f732f1c9146102b0575b600080fd5b34801561018557600080fd5b506101a060043560243563ffffffff60443516606435610512565b60408051918252519081900360200190f35b3480156101be57600080fd5b506101a060043560243563ffffffff60443516606435610529565b3480156101e557600080fd5b506101a060043560243563ffffffff60443516606435610537565b34801561020c57600080fd5b506101a060043560243563ffffffff604435166064356106d4565b34801561023357600080fd5b506102426004356024356106e2565b6040805163ffffffff938416815291909216602082015281519081900390910190f35b34801561027157600080fd5b506101a06004356106fa565b34801561028957600080fd5b506101a060043560243561070d565b3480156102a457600080fd5b506101a0600435610720565b3480156102bc57600080fd5b506101a060043560243563ffffffff6044351660643561072b565b3480156102e357600080fd5b506102ec610739565b6040805161ffff9092168252519081900360200190f35b34801561030f57600080fd5b506101a060043563ffffffff602435811690604435906064351660843561073e565b34801561033d57600080fd5b506101a060043560ff60243516610757565b34801561035b57600080fd5b506101a060043560243563ffffffff60443516606435610763565b34801561038257600080fd5b506101a060043560243563ffffffff60443516606435610968565b3480156103a957600080fd5b506103c760043560243563ffffffff60443581169060643516610b09565b6040805192835260ff90911660208301528051918290030190f35b3480156103ee57600080fd5b506101a060043563ffffffff6024358116906044359060643516608435610b25565b34801561041c57600080fd5b50610242600435602435604435606435608435610cc1565b34801561044057600080fd5b5061044c600435610e61565b6040805160ff9092168252519081900360200190f35b34801561046e57600080fd5b506101a0600435610e6c565b34801561048657600080fd5b5061044c600435610e77565b34801561049e57600080fd5b506104a7610e82565b005b3480156104b557600080fd5b50610242600435602435610e94565b3480156104d057600080fd5b506101a060043560243563ffffffff60443516606435610ea1565b3480156104f757600080fd5b506101a060043560243563ffffffff60443516606435611048565b600061052085858585610ea1565b95945050505050565b600061052085858585611048565b600080808080808911610582576040805160e560020a62461bcd028152602060048201526012602482015260008051602061407c833981519152604482015290519081900360640190fd5b600088116105c8576040805160e560020a62461bcd02815260206004820152601b602482015260008051602061409c833981519152604482015290519081900360640190fd5b60018763ffffffff161180156105e75750621e848063ffffffff881611155b151561063d576040805160e560020a62461bcd02815260206004820152601960248201527f4552525f494e56414c49445f524553455256455f524154494f00000000000000604482015290519081900360640190fd5b85151561064d57600094506106c8565b63ffffffff8716620f42401415610680578761066f878b63ffffffff61119016565b81151561067857fe5b0494506106c8565b610690888763ffffffff61121416565b91506106a1828989620f4240611271565b909450925060ff83166106ba8a8663ffffffff61119016565b9060020a9004905088810394505b50505050949350505050565b600061052085858585610968565b6000806106ef848461135b565b915091509250929050565b600061070582611398565b90505b919050565b600061071983836117b0565b9392505050565b6000610705826117e2565b600061052085858585610763565b600881565b600061074d8686868686610b25565b9695505050505050565b6000610719838361189c565b60008080808080808a116107af576040805160e560020a62461bcd028152602060048201526012602482015260008051602061407c833981519152604482015290519081900360640190fd5b600089116107f5576040805160e560020a62461bcd02815260206004820152601b602482015260008051602061409c833981519152604482015290519081900360640190fd5b60008863ffffffff161180156108145750620f424063ffffffff891611155b151561086a576040805160e560020a62461bcd02815260206004820152601a60248201527f4552525f494e56414c49445f524553455256455f574549474854000000000000604482015290519081900360640190fd5b898711156108c2576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f494e56414c49445f414d4f554e540000000000000000000000000000604482015290519081900360640190fd5b8615156108d2576000955061095b565b898714156108e25788955061095b565b63ffffffff8816620f4240141561091557896109048a8963ffffffff61119016565b81151561090d57fe5b04955061095b565b868a0392506109298a84620f42408b611271565b909550935061093e898663ffffffff61119016565b91505060ff831660020a88028481830381151561095757fe5b0495505b5050505050949350505050565b60008080808080808a116109b4576040805160e560020a62461bcd028152602060048201526012602482015260008051602061407c833981519152604482015290519081900360640190fd5b600089116109fa576040805160e560020a62461bcd02815260206004820152601b602482015260008051602061409c833981519152604482015290519081900360640190fd5b60018863ffffffff16118015610a195750621e848063ffffffff891611155b1515610a6f576040805160e560020a62461bcd02815260206004820152601960248201527f4552525f494e56414c49445f524553455256455f524154494f00000000000000604482015290519081900360640190fd5b89871115610ac7576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f494e56414c49445f414d4f554e540000000000000000000000000000604482015290519081900360640190fd5b861515610ad7576000955061095b565b89871415610ae75788955061095b565b63ffffffff8816620f424014156109155789610904888b63ffffffff61119016565b600080610b1886868686611271565b9150915094509492505050565b60008060008060008060008b118015610b3e5750600089115b1515610b82576040805160e560020a62461bcd02815260206004820152601b602482015260008051602061409c833981519152604482015290519081900360640190fd5b60008a63ffffffff16118015610ba15750620f424063ffffffff8b1611155b8015610bb3575060008863ffffffff16115b8015610bc85750620f424063ffffffff891611155b1515610c1e576040805160e560020a62461bcd02815260206004820152601a60248201527f4552525f494e56414c49445f524553455256455f574549474854000000000000604482015290519081900360640190fd5b8763ffffffff168a63ffffffff161415610c6357610c428b8863ffffffff61121416565b610c528a8963ffffffff61119016565b811515610c5b57fe5b049550610cb3565b610c738b8863ffffffff61121416565b9250610c81838c8c8b611271565b9095509350610c96898663ffffffff61119016565b91505060ff831660020a880284818303811515610caf57fe5b0495505b505050505095945050505050565b60008060008087891415610d27576000891180610cde5750600087115b1515610d22576040805160e560020a62461bcd02815260206004820152601b602482015260008051602061409c833981519152604482015290519081900360640190fd5b610d87565b600089118015610d375750600088115b8015610d435750600087115b1515610d87576040805160e560020a62461bcd02815260206004820152601b602482015260008051602061409c833981519152604482015290519081900360640190fd5b600086118015610d975750600085115b1515610ded576040805160e560020a62461bcd02815260206004820152601860248201527f4552525f494e56414c49445f524553455256455f524154450000000000000000604482015290519081900360640190fd5b610dfd898763ffffffff61119016565b9150610e0f878663ffffffff61119016565b905087891015610e3057610e27888a84846001611cbf565b93509350610e55565b87891115610e4657610e27898984846000611cbf565b610e50828261135b565b935093505b50509550959350505050565b600061070582611da2565b600061070582611e2f565b60006107058261222f565b610e8a612298565b610e92612a6e565b565b6000806106ef8484613475565b600080808080808911610eec576040805160e560020a62461bcd028152602060048201526012602482015260008051602061407c833981519152604482015290519081900360640190fd5b60008811610f32576040805160e560020a62461bcd02815260206004820152601b602482015260008051602061409c833981519152604482015290519081900360640190fd5b60018763ffffffff16118015610f515750621e848063ffffffff881611155b1515610fa7576040805160e560020a62461bcd02815260206004820152601960248201527f4552525f494e56414c49445f524553455256455f524154494f00000000000000604482015290519081900360640190fd5b851515610fb757600094506106c8565b63ffffffff8716620f42401415610ff057886001610fdb888b63ffffffff61119016565b03811515610fe557fe5b0460010194506106c8565b611000898763ffffffff61121416565b9150611011828a620f42408a611271565b909450925060ff8316600161102c8a8763ffffffff61119016565b60029290920a9103049790970360010198975050505050505050565b600080808080808911611093576040805160e560020a62461bcd028152602060048201526012602482015260008051602061407c833981519152604482015290519081900360640190fd5b600088116110d9576040805160e560020a62461bcd02815260206004820152601b602482015260008051602061409c833981519152604482015290519081900360640190fd5b60008763ffffffff161180156110f85750620f424063ffffffff881611155b151561114e576040805160e560020a62461bcd02815260206004820152601a60248201527f4552525f494e56414c49445f524553455256455f574549474854000000000000604482015290519081900360640190fd5b85151561115e57600094506106c8565b63ffffffff8716620f42401415611180578761066f8a8863ffffffff61119016565b610690868963ffffffff61121416565b6000808315156111a3576000915061120d565b508282028284828115156111b357fe5b0414611209576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b8091505b5092915050565b600082820183811015611209576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b600080808080807002000000000000000000000000000000008a1061129557600080fd5b88607f60020a8b028115156112a657fe5b04925070015bf0a8b1457695355fb8ac404e7a79e38310156112d2576112cb83611398565b93506112de565b6112db836117e2565b93505b8663ffffffff168863ffffffff1685028115156112f757fe5b0491507008000000000000000000000000000000008210156113275761131c82611e2f565b607f9550955061134e565b61133082611da2565b905061134860ff607f8390031660020a83048261189c565b81955095505b5050505094509492505050565b600080808084861161137a576113718686613475565b9350935061138f565b6113848587613475565b915091508082935093505b50509250929050565b6000808080806fd3094c70f034de4b96ff7d5b6f99fcd886106113e7576f4000000000000000000000000000000093909301926fd3094c70f034de4b96ff7d5b6f99fcd8607f60020a87020495505b6fa45af1e1f40c333b3de1db4dd55f29a78610611430576f2000000000000000000000000000000093909301926fa45af1e1f40c333b3de1db4dd55f29a7607f60020a87020495505b6f910b022db7ae67ce76b441c27035c6a18610611479576f1000000000000000000000000000000093909301926f910b022db7ae67ce76b441c27035c6a1607f60020a87020495505b6f88415abbe9a76bead8d00cf112e4d4a886106114c2576f0800000000000000000000000000000093909301926f88415abbe9a76bead8d00cf112e4d4a8607f60020a87020495505b6f84102b00893f64c705e841d5d4064bd3861061150b576f0400000000000000000000000000000093909301926f84102b00893f64c705e841d5d4064bd3607f60020a87020495505b6f8204055aaef1c8bd5c3259f4822735a28610611554576f0200000000000000000000000000000093909301926f8204055aaef1c8bd5c3259f4822735a2607f60020a87020495505b6f810100ab00222d861931c15e39b44e99861061159d576f0100000000000000000000000000000093909301926f810100ab00222d861931c15e39b44e99607f60020a87020495505b6f808040155aabbbe9451521693554f73386106115e5576e80000000000000000000000000000093909301926f808040155aabbbe9451521693554f733607f60020a87020495505b6f7fffffffffffffffffffffffffffffff1986019250829150607f60020a828002049050608060020a8381038302049390930192607f60020a8282020491507002000000000000000000000000000000006faaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa8490038302049390930192607f60020a8282020491507003000000000000000000000000000000006f999999999999999999999999999999998490038302049390930192607f60020a8282020491507004000000000000000000000000000000006f924924924924924924924924924924928490038302049390930192607f60020a8282020491507005000000000000000000000000000000006f8e38e38e38e38e38e38e38e38e38e38e8490038302049390930192607f60020a8282020491507006000000000000000000000000000000006f8ba2e8ba2e8ba2e8ba2e8ba2e8ba2e8b8490038302049390930192607f60020a8282020491507007000000000000000000000000000000006f89d89d89d89d89d89d89d89d89d89d898490038302049390930192607f60020a8282020491507008000000000000000000000000000000006f888888888888888888888888888888888490038302049390930195945050505050565b600060028204820382848115156117c357fe5b068115156117cd57fe5b0482848115156117d957fe5b04019392505050565b6000808080608060020a851061181a57611802607f60020a865b0461222f565b60ff8116600281900a90960495607f60020a02935091505b607f60020a85111561186c5750607f5b60008160ff16111561186c57607f60020a858002049450608060020a8510611863576002948590049460ff600019830116900a92909201915b6000190161182a565b6f05b9de1d10bf4103d647b0955897ba806f03f80fe03f80fe03f80fe03f80fe03f884020493505b505050919050565b6000806000849150600090508360ff168583029060020a90049150816f03442c4e6074a82f1797f72ac000000002810190508360ff168583029060020a90049150816f0116b96f757c380fb287fd0e4000000002810190508360ff168583029060020a90049150816e45ae5bdd5f0e03eca1ff439000000002810190508360ff168583029060020a90049150816e0defabf91302cd95b9ffda5000000002810190508360ff168583029060020a90049150816e02529ca9832b22439efff9b800000002810190508360ff168583029060020a90049150816d54f1cf12bd04e516b6da8800000002810190508360ff168583029060020a90049150816d0a9e39e257a09ca2d6db5100000002810190508360ff168583029060020a90049150816d012e066e7b839fa050c30900000002810190508360ff168583029060020a90049150816c1e33d7d926c329a1ad1a80000002810190508360ff168583029060020a90049150816c02bee513bdb4a6b19b5f80000002810190508360ff168583029060020a90049150816b3a9316fa79b88eccf2a0000002810190508360ff168583029060020a90049150816b048177ebe1fa81237520000002810190508360ff168583029060020a90049150816a5263fe90242dcbacf0000002810190508360ff168583029060020a90049150816a057e22099c030d9410000002810190508360ff168583029060020a90049150816957e22099c030d941000002810190508360ff168583029060020a900491508169052b6b5456997631000002810190508360ff168583029060020a9004915081684985f67696bf74800002810190508360ff168583029060020a90049150816803dea12ea99e49800002810190508360ff168583029060020a90049150816731880f2214b6e00002810190508360ff168583029060020a900491508167025bcff56eb3600002810190508360ff168583029060020a9004915081661b722e10ab100002810190508360ff168583029060020a90049150816601317c7007700002810190508360ff168583029060020a9004915081650cba84aafa0002810190508360ff168583029060020a90049150816482573a0a0002810190508360ff168583029060020a90049150816405035ad90002810190508360ff168583029060020a9004915081632f881b0002810190508360ff168583029060020a90049150816301b2934002810190508360ff168583029060020a9004915081620efc4002810190508360ff168583029060020a9004915081617fe002810190508360ff168583029060020a900491508161042002810190508360ff168583029060020a9004915081602102810190508360ff168583029060020a9004915081600102810190508360ff1660019060020a02856f0688589cc0e9505e2f2fee558000000083811515611cb357fe5b04010195945050505050565b600080600080600080611cd28989613511565b909950975089611cec8c607f60020a63ffffffff61119016565b811515611cf557fe5b04935070015bf0a8b1457695355fb8ac404e7a79e38410611d1e57611d19846117e2565b611d27565b611d2784611398565b925087611d3a848b63ffffffff61119016565b811515611d4357fe5b04915086611d5957611d54826135cd565b611d62565b611d6282613628565b9050611d90611d77828b63ffffffff61119016565b611d8b8a607f60020a63ffffffff61119016565b61135b565b95509550505050509550959350505050565b60006020607f825b8160ff168360010160ff161015611def57600260ff8484011604905084600060ff831660808110611dd757fe5b015410611de657809250611dea565b8091505b611daa565b84600060ff841660808110611e0057fe5b015410611e0f57819350611894565b84600060ff851660808110611e2057fe5b01541061017457829350611894565b6000670168244fdac78000607f60020a6f0fffffffffffffffffffffffffffffff84168080028290048082028390048083028490049485026710e1b3be415a00009092026705a0913f6b1e000091909102010192909181830204905080664807432bc180000283019250607f60020a828202811515611eaa57fe5b04905080660c0135dca040000283019250607f60020a828202811515611ecc57fe5b049050806601b707b1cdc0000283019250607f60020a828202811515611eee57fe5b049050806536e0f639b8000283019250607f60020a828202811515611f0f57fe5b04905080650618fee9f8000283019250607f60020a828202811515611f3057fe5b04905080649c197dcc000283019250607f60020a828202811515611f5057fe5b04905080640e30dce4000283019250607f60020a828202811515611f7057fe5b0490508064012ebd13000283019250607f60020a828202811515611f9057fe5b049050806317499f000283019250607f60020a828202811515611faf57fe5b049050806301a9d4800283019250607f60020a828202811515611fce57fe5b04905080621c63800283019250607f60020a828202811515611fec57fe5b049050806201c6380283019250607f60020a82820281151561200a57fe5b04905080611ab80283019250607f60020a82820281151561202757fe5b0490508061017c0283019250607f60020a82820281151561204457fe5b0490508060140283019250607f60020a82820281151561206057fe5b6721c3677c82b40000919004938401048201607f60020a019290506f100000000000000000000000000000008516156120bd5770018ebef9eac820ae8682b9793ac6d1e7767001c3d6a24ed82218787d624d3e5eba95f984020492505b6f200000000000000000000000000000008516156120ff577001368b2fc6f9609fe7aceb46aa619baed470018ebef9eac820ae8682b9793ac6d1e77884020492505b6f40000000000000000000000000000000851615612140576fbc5ab1b16779be3575bd8f0520a9f21f7001368b2fc6f9609fe7aceb46aa619baed584020492505b607f60020a851615612174576f454aaa8efe072e7f6ddbab84b40a55c96fbc5ab1b16779be3575bd8f0520a9f21e84020492505b608060020a8516156121a8576f0960aadc109e7a3bf4578099615711ea6f454aaa8efe072e7f6ddbab84b40a55c584020492505b7002000000000000000000000000000000008516156121e8576e2bf84208204f5977f9a8cf01fdce3d6f0960aadc109e7a3bf4578099615711d784020492505b700400000000000000000000000000000000851615612226576d03c6ab775dd0b95b4cbee7e65d116e2bf84208204f5977f9a8cf01fdc30784020492505b50909392505050565b6000808061010084101561225e575b6001841115612259576002909304926001919091019061223e565b61120d565b5060805b60008160ff16111561120d5760ff811660020a841061228b5760ff811660020a90930492908117905b600260ff90911604612262565b701c35fedd14ffffffffffffffffffffffff602055701b0ce43b323fffffffffffffffffffffff6021557019f0028ec1ffffffffffffffffffffffff6022557018ded91f0e7fffffffffffffffffffffff6023557017d8ec7f0417ffffffffffffffffffffff6024557016ddc6556cdbffffffffffffffffffffff6025557015ecf52776a1ffffffffffffffffffffff6026557015060c256cb2ffffffffffffffffffffff602755701428a2f98d72ffffffffffffffffffffff6028557013545598e5c23fffffffffffffffffffff602955701288c4161ce1dfffffffffffffffffffff602a557011c592761c666fffffffffffffffffffff602b5570110a688680a757ffffffffffffffffffff602c55701056f1b5bedf77ffffffffffffffffffff602d55700faadceceeff8bffffffffffffffffffff602e55700f05dc6b27edadffffffffffffffffffff602f55700e67a5a25da4107fffffffffffffffffff603055700dcff115b14eedffffffffffffffffffff603155700d3e7a392431239fffffffffffffffffff603255700cb2ff529eb71e4fffffffffffffffffff603355700c2d415c3db974afffffffffffffffffff603455700bad03e7d883f69bffffffffffffffffff603555700b320d03b2c343d5ffffffffffffffffff603655700abc25204e02828dffffffffffffffffff603755700a4b16f74ee4bb207fffffffffffffffff6038557009deaf736ac1f569ffffffffffffffffff603955700976bd9952c7aa957fffffffffffffffff603a557009131271922eaa606fffffffffffffffff603b557008b380f3558668c46fffffffffffffffff603c55700857ddf0117efa215bffffffffffffffff603d557007ffffffffffffffffffffffffffffffff603e557007abbf6f6abb9d087fffffffffffffffff603f5570075af62cbac95f7dfa7fffffffffffffff60405570070d7fb7452e187ac13fffffffffffffff6041557006c3390ecc8af379295fffffffffffffff60425570067c00a3b07ffc01fd6fffffffffffffff604355700637b647c39cbb9d3d27ffffffffffffff6044557005f63b1fc104dbd39587ffffffffffffff6045557005b771955b36e12f7235ffffffffffffff60465570057b3d49dda84556d6f6ffffffffffffff60475570054183095b2c8ececf30ffffffffffffff60485570050a28be635ca2b888f77fffffffffffff6049557004d5156639708c9db33c3fffffffffffff604a557004a23105873875bd52dfdfffffffffffff604b55700471649d87199aa990756fffffffffffff604c557004429a21a029d4c1457cfbffffffffffff604d55700415bc6d6fb7dd71af2cb3ffffffffffff604e557003eab73b3bbfe282243ce1ffffffffffff604f557003c1771ac9fb6b4c18e229ffffffffffff605055700399e96897690418f785257fffffffffff605155700373fc456c53bb779bf0ea9fffffffffff60525570034f9e8e490c48e67e6ab8bfffffffffff60535570032cbfd4a7adc790560b3337ffffffffff60545570030b50570f6e5d2acca94613ffffffffff6055557002eb40f9f620fda6b56c2861ffffffffff6056557002cc8340ecb0d0f520a6af58ffffffffff6057557002af09481380a0a35cf1ba02ffffffffff605855700292c5bdd3b92ec810287b1b3fffffffff605955700277abdcdab07d5a77ac6d6b9fffffffff605a5570025daf6654b1eaa55fd64df5efffffffff605b55700244c49c648baa98192dce88b7ffffffff605c5570022ce03cd5619a311b2471268bffffffff605d55700215f77c045fbe885654a44a0fffffffff605e557001ffffffffffffffffffffffffffffffff605f557001eaefdbdaaee7421fc4d3ede5ffffffff6060557001d6bd8b2eb257df7e8ca57b09bfffffff6061557001c35fedd14b861eb0443f7f133fffffff6062557001b0ce43b322bcde4a56e8ada5afffffff60635570019f0028ec1fff007f5a195a39dfffffff60645570018ded91f0e72ee74f49b15ba527ffffff60655570017d8ec7f04136f4e5615fd41a63ffffff60665570016ddc6556cdb84bdc8d12d22e6fffffff60675570015ecf52776a1155b5bd8395814f7fffff60685570015060c256cb23b3b3cc3754cf40ffffff6069557001428a2f98d728ae223ddab715be3fffff606a5570013545598e5c23276ccf0ede68034fffff606b557001288c4161ce1d6f54b7f61081194fffff606c5570011c592761c666aa641d5a01a40f17ffff606d55700110a688680a7530515f3e6e6cfdcdffff606e557001056f1b5bedf75c6bcb2ce8aed428ffff606f556ffaadceceeff8a0890f3875f008277fff6070556ff05dc6b27edad306388a600f6ba0bfff6071556fe67a5a25da41063de1495d5b18cdbfff6072556fdcff115b14eedde6fc3aa5353f2e4fff6073556fd3e7a3924312399f9aae2e0f868f8fff6074556fcb2ff529eb71e41582cccd5a1ee26fff6075556fc2d415c3db974ab32a51840c0b67edff6076556fbad03e7d883f69ad5b0a186184e06bff6077556fb320d03b2c343d4829abd6075f0cc5ff6078556fabc25204e02828d73c6e80bcdb1a95bf6079556fa4b16f74ee4bb2040a1ec6c15fbbf2df607a556f9deaf736ac1f569deb1b5ae3f36c130f607b556f976bd9952c7aa957f5937d790ef65037607c556f9131271922eaa6064b73a22d0bd4f2bf607d556f8b380f3558668c46c91c49a2f8e967b9607e556f857ddf0117efa215952912839f6473e66000607f5b0155565b6f60e393c68d20b1bd09deaabc0373b9c560809081556f5f8f46e4854120989ed94719fb4c20116081556f5e479ebb9129fb1b7e72a648f992b6066082556f5d0bd23fe42dfedde2e9586be12b85fe6083556f5bdb29ddee979308ddfca81aeeb8095a6084556f5ab4fd8a260d2c7e2c0d2afcf0009dad6085556f5998b31359a55d48724c65cf090012216086556f5885bcad2b322dfc43e8860f9c018cf56087556f577b97aa1fe222bb452fdf111b1f0be26088556f5679cb5e3575632e5baa27e2b949f7046089556f557fe8241b3a31c83c732f1cdff4a1c5608a556f548d868026504875d6e59bbe95fc2a6b608b556f53a2465ce347cf34d05a867c17dd3088608c556f52bdce5dcd4faed59c7f5511cf8f8acc608d556f51dfcb453c07f8da817606e7885f7c3e608e556f5107ef6b0a5a2be8f8ff15590daa3cce608f556f5035f241d6eae0cd7bacba119993de7b6090556f4f698fe90d5b53d532171e1210164c666091556f4ea288ca297a0e6a09a0eee240e16c856092556f4de0a13fdcf5d4213fc398ba6e3becde6093556f4d23a145eef91fec06b06140804c48086094556f4c6b5430d4c1ee5526473db4ae0f11de6095556f4bb7886c240562eba11f4963a53b42406096556f4b080f3f1cb491d2d521e0ea4583521e6097556f4a5cbc96a05589cb4d86be1db31683646098556f49b566d40243517658d78c33162d6ece6099556f4911e6a02e5507a30f947383fd9a3276609a556f487216c2b31be4adc41db8a8d5cc0c88609b556f47d5d3fc4a7a1b188cd3d788b5c5e9fc609c556f473cfce4871a2c40bc4f9e1c32b955d0609d556f46a771ca578ab878485810e285e31c67609e556f4615149718aed4c258c373dc676aa72d609f556f4585c8b3f8fe489c6e1833ca4787138460a0556f44f972f174e41e5efb7e9d63c29ce73560a1556f446ff970ba86d8b00beb05ecebf3c4dc60a2556f43e9438ec88971812d6f198b5ccaad9660a3556f436539d11ff7bea657aeddb394e809ef60a4556f42e3c5d3e5a913401d86f66db5d81c2c60a5556f4264d2395303070ea726cbe98df6217460a6556f41e84a9a593bb7194c3a6349ecae4eea60a7556f416e1b785d13eba07a08f3f18876a5ab60a8556f40f6322ff389d423ba9dd7e7e7b7e80960a9556f40807cec8a466880ecf4184545d240a460aa556f400cea9ce88a8d3ae668e8ea0d9bf07f60ab556f3f9b6ae8772d4c55091e0ed7dfea0ac160ac556f3f2bee253fd84594f54bcaafac383a1360ad556f3ebe654e95208bb9210c575c081c595860ae556f3e52c1fc5665635b78ce1f05ad53c08660af556f3de8f65ac388101ddf718a6f5c1eff6560b0556f3d80f522d59bd0b328ca012df4cd2d4960b1556f3d1ab193129ea72b23648a161163a85a60b2556f3cb61f68d32576c135b95cfb53f76d7560b3556f3c5332d9f1aae851a3619e77e4cc847360b4556f3bf1e08edbe2aa109e1525f65759ef7360b5556f3b921d9cff13fa2c197746a3dfc4918f60b6556f3b33df818910bfc1a5aefb8f63ae2ac460b7556f3ad71c1c77e34fa32a9f184967eccbf660b8556f3a7bc9abf2c5bb53e2f7384a8a16521a60b9556f3a21dec7e76369783a68a0c6385a1c5760ba556f39c9525de6c9cdf7c1c157ca4a7a6ee360bb556f39721bad3dc85d1240ff0190e0adaac360bc556f391c324344d3248f0469eb28dd3d77e060bd556f38c78df7e3c796279fb4ff84394ab3da60be556f387426ea4638ae9aae08049d3554c20a60bf556f3821f57dbd2763256c1a99bbd205137860c0556f37d0f256cb46a8c92ff62fbbef28969860c1556f37811658591ffc7abdd1feaf3cef9b7360c2556f37325aa10e9e82f7df0f380f7997154b60c3556f36e4b888cfb408d873b9a80d439311c660c4556f3698299e59f4bb9de645fc9b08c64cca60c5556f364ca7a5012cb603023b57dd3ebfd50d60c6556f36022c928915b778ab1b06aaee7e61d460c7556f35b8b28d1a73dc27500ffe35559cc02860c8556f357033e951fe250ec5eb4e60955132d760c9556f3528ab2867934e3a21b5412e4c4f888160ca556f34e212f66c55057f9676c80094a61d5960cb556f349c66289e5b3c4b540c24f42fa4b9bb60cc556f34579fbbd0c733a9c8d6af6b0f7d00f760cd556f3413bad2e712288b924b5882b5b369bf60ce556f33d0b2b56286510ef730e213f71f12e960cf556f338e82ce00e2496262c64457535ba1a160d0556f334d26a96b373bb7c2f8ea1827f27a9260d1556f330c99f4f4211469e00b3e18c31475ea60d2556f32ccd87d6486094999c7d5e6f33237d860d3556f328dde2dd617b6665a2e8556f250c1af60d4556f324fa70e9adc270f8262755af5a99af960d5556f32122f443110611ca51040f41fa6e1e360d6556f31d5730e42c0831482f0f1485c4263d860d7556f31996ec6b07b4a83421b5ebc4ab4e1f160d8556f315e1ee0a68ff46bb43ec2b85032e87660d9556f31237fe7bc4deacf6775b9efa1a145f860da556f30e98e7f1cc5a356e44627a6972ea2ff60db556f30b04760b8917ec74205a3002650ec0560dc556f3077a75c803468e9132ce0cf3224241d60dd556f303fab57a6a275c36f19cda9bace667a60de556f3008504beb8dcbd2cf3bc1f6d5a064f060df556f2fd19346ed17dac61219ce0c2c5ac4b060e0556f2f9b7169808c324b5852fd3d54ba971460e1556f2f65e7e711cf4b064eea9c08cbdad57460e2556f2f30f405093042ddff8a251b6bf6d10360e3556f2efc931a3750f2e8bfe323edfe03757460e4556f2ec8c28e46dbe56d98685278339400cb60e5556f2e957fd933c3926d8a599b602379b85160e6556f2e62c882c7c9ed4473412702f08ba0e560e7556f2e309a221c12ba361e3ed695167feee260e8556f2dfef25d1f865ae18dd07cfea4bcea1060e9556f2dcdcee821cdc80decc02c44344aeb3160ea556f2d9d2d8562b34944d0b201bb87260c8360eb556f2d6d0c04a5b62a2c42636308669b729a60ec556f2d3d6842c9a235517fc5a0332691528f60ed556f2d0e402963fe1ea2834abc408c437c1060ee556f2cdf91ae602647908aff975e4d6a2a8c60ef556f2cb15ad3a1eb65f6d74a75da09a1b6c560f0556f2c8399a6ab8e9774d6fcff373d21072760f1556f2c564c4046f64edba6883ca06bbc453560f2556f2c2970c431f952641e05cb493e23eed360f3556f2bfd0560cd9eb14563bc7c0732856c1860f4556f2bd1084ed0332f7ff4150f9d0ef41a2c60f5556f2ba577d0fa1628b76d040b12a82492fb60f6556f2b7a5233cd21581e855e89dc2f1e8a9260f7556f2b4f95cd46904d05d72bdcde337d9cc760f8556f2b2540fc9b4d9abba3faca669191467560f9556f2afb5229f68d0830d8be8adb0a0db70f60fa556f2ad1c7c63a9b294c5bc73a3ba3ab7a2b60fb556f2aa8a04ac3cbe1ee1c9c86361465dbb860fc556f2a7fda392d725a44a2c8aeb9ab35430d60fd556f2a57741b18cde618717792b4faa216db60fe556f2a2f6c81f5d84dd950a35626d6d5503a90607f612a6a565b60008060008060007d10c6f7a0b5ed8d36b4c7f34938583621fafc8b0079a2834d26fa3fcc9ea98711156134e6577d10c6f7a0b5ed8d36b4c7f34938583621fafc8b0079a2834d26fa3fcc9eaa8704600101925082878115156134d457fe5b04965082868115156134e257fe5b0495505b6134fe620f424088026134f98989611214565b6117b0565b97620f4240899003975095505050505050565b600080600080608060020a861115801561352f5750608060020a8511155b1561353f5785859350935061138f565b608060020a86101561356b5784608060020a870281151561355c57fe5b04608060020a9350935061138f565b608060020a85101561359757608060020a86608060020a870281151561358d57fe5b049350935061138f565b8486116135a457846135a6565b855b91506135b6607f60020a836117fc565b60ff1660020a958690049695909404949350505050565b60006f2f16ac6c59de6f8d5d6f63c1482a7c8682116135f6576135ef8261368c565b9050610708565b817f400000000000000000000000000000000000000000000000000000000000000081151561362157fe5b0492915050565b60006f2f16ac6c59de6f8d5d6f63c1482a7c86821161364a576135ef82613aef565b7001af16ac6c59de6f8d5d6f63c1482a7c80821161366b576135ef82613f70565b706b22d43e72c326539cceeef8bb48f255ff8211610174576135ef82613fee565b60008181607f60020a82800204915070014d29a73a6e7b02c3668c7b0880000000820201607f60020a8483020491507002504a0cd9a7f7215b60f9be4800000000820201607f60020a848302049150700484d0a1191c0ead267967c7a4a0000000820201607f60020a84830204915070095ec580d7e8427a4baf26a90a00000000820201607f60020a848302049150701440b0be1615a47dba6e5b3b1f10000000820201607f60020a848302049150702d207601f46a99b4112418400000000000820201607f60020a8483020491507066ebaac4c37c622dd8288a7eb1b2000000820201607f60020a84830204915070ef17240135f7dbd43a1ba10cf200000000820201607f60020a848302049150710233c33c676a5eb2416094a87b3657000000820201607f60020a848302049150710541cde48bc0254bed49a9f8700000000000820201607f60020a848302049150710cae1fad2cdd4d4cb8d73abca0d19a400000820201607f60020a848302049150711edb2aa2f760d15c41ceedba956400000000820201607f60020a848302049150714ba8d20d2dabd386c9529659841a2e200000820201607f60020a84830204915071bac08546b867cdaa20000000000000000000820201607f60020a8483020491507201cfa8e70c03625b9db76c8ebf5bbf24820000820201607f60020a8483020491507204851d99f82060df265f3309b26f8200000000820201607f60020a848302049150720b550d19b129d270c44f6f55f027723cbb0000820201607f60020a848302049150721c877dadc761dc272deb65d4b0000000000000820201607f60020a8483020491507248178ece97479f33a77f2ad22a81b64406c000820201607f60020a84830204915072b6ca8268b9d810fedf6695ef2f8a6c00000000820201607f60020a8483020491507301d0e76631a5b05d007b8cb72a7c7f11ec36e000820201607f60020a8483020491507304a1c37bd9f85fd9c6c780000000000000000000820201607f60020a848302049150730bd8369f1b702bf491e2ebfcee08250313b65400820201607f60020a848302049150731e5c7c32a9f6c70ab2cb59d9225764d400000000820201607f60020a848302049150734dff5820e165e910f95120a708e742496221e600820201607f60020a84830204915073c8c8f66db1fced378ee50e536000000000000000820201607f60020a848302049150740205db8dffff45bfa2938f128f599dbf16eb11d880820201607f60020a84830204915074053a044ebd984351493e1786af38d39a0800000000820201607f60020a848302049150740d86dae2a4cc0f47633a544479735869b487b59c40820201607f60020a84830204915074231000000000000000000000000000000000000000820201607f60020a848302049150745b0485a76f6646c2039db1507cdd51b08649680822820201607f60020a84830204915074ec983c46c49545bc17efa6b5b0055e242200000000820201607f60020a846fde1bc4d19efcac82445da75b0000000083040101949350505050565b600081607f60020a8181036fde1bc4d19efcac82445da75b00000000029082800204915070014d29a73a6e7b02c3668c7b0880000000820201607f60020a8483020491507002504a0cd9a7f7215b60f9be480000000082029003607f60020a848302049150700484d0a1191c0ead267967c7a4a0000000820201607f60020a84830204915070095ec580d7e8427a4baf26a90a0000000082029003607f60020a848302049150701440b0be1615a47dba6e5b3b1f10000000820201607f60020a848302049150702d207601f46a99b411241840000000000082029003607f60020a8483020491507066ebaac4c37c622dd8288a7eb1b2000000820201607f60020a84830204915070ef17240135f7dbd43a1ba10cf20000000082029003607f60020a848302049150710233c33c676a5eb2416094a87b3657000000820201607f60020a848302049150710541cde48bc0254bed49a9f870000000000082029003607f60020a848302049150710cae1fad2cdd4d4cb8d73abca0d19a400000820201607f60020a848302049150711edb2aa2f760d15c41ceedba95640000000082029003607f60020a848302049150714ba8d20d2dabd386c9529659841a2e200000820201607f60020a84830204915071bac08546b867cdaa2000000000000000000082029003607f60020a8483020491507201cfa8e70c03625b9db76c8ebf5bbf24820000820201607f60020a8483020491507204851d99f82060df265f3309b26f820000000082029003607f60020a848302049150720b550d19b129d270c44f6f55f027723cbb0000820201607f60020a848302049150721c877dadc761dc272deb65d4b000000000000082029003607f60020a8483020491507248178ece97479f33a77f2ad22a81b64406c000820201607f60020a84830204915072b6ca8268b9d810fedf6695ef2f8a6c0000000082029003607f60020a8483020491507301d0e76631a5b05d007b8cb72a7c7f11ec36e000820201607f60020a8483020491507304a1c37bd9f85fd9c6c78000000000000000000082029003607f60020a848302049150730bd8369f1b702bf491e2ebfcee08250313b65400820201607f60020a848302049150731e5c7c32a9f6c70ab2cb59d9225764d40000000082029003607f60020a848302049150734dff5820e165e910f95120a708e742496221e600820201607f60020a84830204915073c8c8f66db1fced378ee50e53600000000000000082029003607f60020a848302049150740205db8dffff45bfa2938f128f599dbf16eb11d880820201607f60020a84830204915074053a044ebd984351493e1786af38d39a080000000082029003607f60020a848302049150740d86dae2a4cc0f47633a544479735869b487b59c40820201607f60020a8483020491507423100000000000000000000000000000000000000082029003607f60020a848302049150745b0485a76f6646c2039db1507cdd51b08649680822820201607f60020a84830204915074ec983c46c49545bc17efa6b5b0055e242200000000820290036fde1bc4d19efcac82445da75b00000000815b04949350505050565b60006f2f16ac6c59de6f8d5d6f63c1482a7c861982016f03060c183060c183060c183060c18306808204908181029060018301028480608085818110613fb257fe5b01549150608060018601818110613fc557fe5b01546f03060c183060c183060c183060c183069487030295909203029390930104949350505050565b600080600070015bf0a8b1457695355fb8ac404e7a79e3841061401957614014846117e2565b614022565b61402284611398565b915070015bf0a8b1457695355fb8ac404e7a79e3821061404a57614045826117e2565b614053565b61405382611398565b905083607f60020a83607f60020a840281151561406c57fe5b048385030102811515613f6757fe004552525f494e56414c49445f535550504c5900000000000000000000000000004552525f494e56414c49445f524553455256455f42414c414e43450000000000a165627a7a7230582044f02762b5e42ac5c4daf454d158a089ec58a9a518279e70025d2514a1c9b3920029", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x174 JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x1DA6BBFB DUP2 EQ PUSH2 0x179 JUMPI DUP1 PUSH4 0x29A00E7C EQ PUSH2 0x1B2 JUMPI DUP1 PUSH4 0x2F55BDB5 EQ PUSH2 0x1D9 JUMPI DUP1 PUSH4 0x35B49AF4 EQ PUSH2 0x200 JUMPI DUP1 PUSH4 0x3E75C6CA EQ PUSH2 0x227 JUMPI DUP1 PUSH4 0x3E8A38AB EQ PUSH2 0x265 JUMPI DUP1 PUSH4 0x47D0B686 EQ PUSH2 0x27D JUMPI DUP1 PUSH4 0x48D73FED EQ PUSH2 0x1B2 JUMPI DUP1 PUSH4 0x4982D52D EQ PUSH2 0x298 JUMPI DUP1 PUSH4 0x49F9B0F7 EQ PUSH2 0x2B0 JUMPI DUP1 PUSH4 0x54FD4D50 EQ PUSH2 0x2D7 JUMPI DUP1 PUSH4 0x65098BB3 EQ PUSH2 0x303 JUMPI DUP1 PUSH4 0x6CAB5055 EQ PUSH2 0x331 JUMPI DUP1 PUSH4 0x76CF0B56 EQ PUSH2 0x34F JUMPI DUP1 PUSH4 0x79C1B450 EQ PUSH2 0x303 JUMPI DUP1 PUSH4 0x8074590A EQ PUSH2 0x376 JUMPI DUP1 PUSH4 0x8C5CE82A EQ PUSH2 0x39D JUMPI DUP1 PUSH4 0x94491FAB EQ PUSH2 0x3E2 JUMPI DUP1 PUSH4 0x9D114108 EQ PUSH2 0x303 JUMPI DUP1 PUSH4 0xA11AA1B4 EQ PUSH2 0x410 JUMPI DUP1 PUSH4 0xA25A34B1 EQ PUSH2 0x434 JUMPI DUP1 PUSH4 0xABFD231D EQ PUSH2 0x200 JUMPI DUP1 PUSH4 0xACDEE8CB EQ PUSH2 0x462 JUMPI DUP1 PUSH4 0xCE782E08 EQ PUSH2 0x47A JUMPI DUP1 PUSH4 0xE1C7392A EQ PUSH2 0x492 JUMPI DUP1 PUSH4 0xE4883121 EQ PUSH2 0x4A9 JUMPI DUP1 PUSH4 0xEBBB2158 EQ PUSH2 0x4C4 JUMPI DUP1 PUSH4 0xF3250FE2 EQ PUSH2 0x4EB JUMPI DUP1 PUSH4 0xF732F1C9 EQ PUSH2 0x2B0 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x185 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A0 PUSH1 0x4 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH4 0xFFFFFFFF PUSH1 0x44 CALLDATALOAD AND PUSH1 0x64 CALLDATALOAD PUSH2 0x512 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1BE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A0 PUSH1 0x4 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH4 0xFFFFFFFF PUSH1 0x44 CALLDATALOAD AND PUSH1 0x64 CALLDATALOAD PUSH2 0x529 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1E5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A0 PUSH1 0x4 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH4 0xFFFFFFFF PUSH1 0x44 CALLDATALOAD AND PUSH1 0x64 CALLDATALOAD PUSH2 0x537 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x20C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A0 PUSH1 0x4 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH4 0xFFFFFFFF PUSH1 0x44 CALLDATALOAD AND PUSH1 0x64 CALLDATALOAD PUSH2 0x6D4 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x233 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x242 PUSH1 0x4 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH2 0x6E2 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH4 0xFFFFFFFF SWAP4 DUP5 AND DUP2 MSTORE SWAP2 SWAP1 SWAP3 AND PUSH1 0x20 DUP3 ADD MSTORE DUP2 MLOAD SWAP1 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x271 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A0 PUSH1 0x4 CALLDATALOAD PUSH2 0x6FA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x289 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A0 PUSH1 0x4 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH2 0x70D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2A4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A0 PUSH1 0x4 CALLDATALOAD PUSH2 0x720 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2BC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A0 PUSH1 0x4 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH4 0xFFFFFFFF PUSH1 0x44 CALLDATALOAD AND PUSH1 0x64 CALLDATALOAD PUSH2 0x72B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2E3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2EC PUSH2 0x739 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0xFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x30F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A0 PUSH1 0x4 CALLDATALOAD PUSH4 0xFFFFFFFF PUSH1 0x24 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x44 CALLDATALOAD SWAP1 PUSH1 0x64 CALLDATALOAD AND PUSH1 0x84 CALLDATALOAD PUSH2 0x73E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x33D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A0 PUSH1 0x4 CALLDATALOAD PUSH1 0xFF PUSH1 0x24 CALLDATALOAD AND PUSH2 0x757 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x35B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A0 PUSH1 0x4 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH4 0xFFFFFFFF PUSH1 0x44 CALLDATALOAD AND PUSH1 0x64 CALLDATALOAD PUSH2 0x763 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x382 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A0 PUSH1 0x4 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH4 0xFFFFFFFF PUSH1 0x44 CALLDATALOAD AND PUSH1 0x64 CALLDATALOAD PUSH2 0x968 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3A9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3C7 PUSH1 0x4 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH4 0xFFFFFFFF PUSH1 0x44 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x64 CALLDATALOAD AND PUSH2 0xB09 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0xFF SWAP1 SWAP2 AND PUSH1 0x20 DUP4 ADD MSTORE DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3EE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A0 PUSH1 0x4 CALLDATALOAD PUSH4 0xFFFFFFFF PUSH1 0x24 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x44 CALLDATALOAD SWAP1 PUSH1 0x64 CALLDATALOAD AND PUSH1 0x84 CALLDATALOAD PUSH2 0xB25 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x41C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x242 PUSH1 0x4 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH1 0x44 CALLDATALOAD PUSH1 0x64 CALLDATALOAD PUSH1 0x84 CALLDATALOAD PUSH2 0xCC1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x440 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x44C PUSH1 0x4 CALLDATALOAD PUSH2 0xE61 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x46E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A0 PUSH1 0x4 CALLDATALOAD PUSH2 0xE6C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x486 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x44C PUSH1 0x4 CALLDATALOAD PUSH2 0xE77 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x49E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4A7 PUSH2 0xE82 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4B5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x242 PUSH1 0x4 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH2 0xE94 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4D0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A0 PUSH1 0x4 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH4 0xFFFFFFFF PUSH1 0x44 CALLDATALOAD AND PUSH1 0x64 CALLDATALOAD PUSH2 0xEA1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4F7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A0 PUSH1 0x4 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH4 0xFFFFFFFF PUSH1 0x44 CALLDATALOAD AND PUSH1 0x64 CALLDATALOAD PUSH2 0x1048 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x520 DUP6 DUP6 DUP6 DUP6 PUSH2 0xEA1 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x520 DUP6 DUP6 DUP6 DUP6 PUSH2 0x1048 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP1 DUP1 DUP1 DUP10 GT PUSH2 0x582 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x407C DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP9 GT PUSH2 0x5C8 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x409C DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP8 PUSH4 0xFFFFFFFF AND GT DUP1 ISZERO PUSH2 0x5E7 JUMPI POP PUSH3 0x1E8480 PUSH4 0xFFFFFFFF DUP9 AND GT ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x63D JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F524154494F00000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP6 ISZERO ISZERO PUSH2 0x64D JUMPI PUSH1 0x0 SWAP5 POP PUSH2 0x6C8 JUMP JUMPDEST PUSH4 0xFFFFFFFF DUP8 AND PUSH3 0xF4240 EQ ISZERO PUSH2 0x680 JUMPI DUP8 PUSH2 0x66F DUP8 DUP12 PUSH4 0xFFFFFFFF PUSH2 0x1190 AND JUMP JUMPDEST DUP2 ISZERO ISZERO PUSH2 0x678 JUMPI INVALID JUMPDEST DIV SWAP5 POP PUSH2 0x6C8 JUMP JUMPDEST PUSH2 0x690 DUP9 DUP8 PUSH4 0xFFFFFFFF PUSH2 0x1214 AND JUMP JUMPDEST SWAP2 POP PUSH2 0x6A1 DUP3 DUP10 DUP10 PUSH3 0xF4240 PUSH2 0x1271 JUMP JUMPDEST SWAP1 SWAP5 POP SWAP3 POP PUSH1 0xFF DUP4 AND PUSH2 0x6BA DUP11 DUP7 PUSH4 0xFFFFFFFF PUSH2 0x1190 AND JUMP JUMPDEST SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP1 POP DUP9 DUP2 SUB SWAP5 POP JUMPDEST POP POP POP POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x520 DUP6 DUP6 DUP6 DUP6 PUSH2 0x968 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x6EF DUP5 DUP5 PUSH2 0x135B JUMP JUMPDEST SWAP2 POP SWAP2 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x705 DUP3 PUSH2 0x1398 JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x719 DUP4 DUP4 PUSH2 0x17B0 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x705 DUP3 PUSH2 0x17E2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x520 DUP6 DUP6 DUP6 DUP6 PUSH2 0x763 JUMP JUMPDEST PUSH1 0x8 DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x74D DUP7 DUP7 DUP7 DUP7 DUP7 PUSH2 0xB25 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x719 DUP4 DUP4 PUSH2 0x189C JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP1 DUP1 DUP1 DUP1 DUP11 GT PUSH2 0x7AF JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x407C DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP10 GT PUSH2 0x7F5 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x409C DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP9 PUSH4 0xFFFFFFFF AND GT DUP1 ISZERO PUSH2 0x814 JUMPI POP PUSH3 0xF4240 PUSH4 0xFFFFFFFF DUP10 AND GT ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x86A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F574549474854000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP10 DUP8 GT ISZERO PUSH2 0x8C2 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F414D4F554E540000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP7 ISZERO ISZERO PUSH2 0x8D2 JUMPI PUSH1 0x0 SWAP6 POP PUSH2 0x95B JUMP JUMPDEST DUP10 DUP8 EQ ISZERO PUSH2 0x8E2 JUMPI DUP9 SWAP6 POP PUSH2 0x95B JUMP JUMPDEST PUSH4 0xFFFFFFFF DUP9 AND PUSH3 0xF4240 EQ ISZERO PUSH2 0x915 JUMPI DUP10 PUSH2 0x904 DUP11 DUP10 PUSH4 0xFFFFFFFF PUSH2 0x1190 AND JUMP JUMPDEST DUP2 ISZERO ISZERO PUSH2 0x90D JUMPI INVALID JUMPDEST DIV SWAP6 POP PUSH2 0x95B JUMP JUMPDEST DUP7 DUP11 SUB SWAP3 POP PUSH2 0x929 DUP11 DUP5 PUSH3 0xF4240 DUP12 PUSH2 0x1271 JUMP JUMPDEST SWAP1 SWAP6 POP SWAP4 POP PUSH2 0x93E DUP10 DUP7 PUSH4 0xFFFFFFFF PUSH2 0x1190 AND JUMP JUMPDEST SWAP2 POP POP PUSH1 0xFF DUP4 AND PUSH1 0x2 EXP DUP9 MUL DUP5 DUP2 DUP4 SUB DUP2 ISZERO ISZERO PUSH2 0x957 JUMPI INVALID JUMPDEST DIV SWAP6 POP JUMPDEST POP POP POP POP POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP1 DUP1 DUP1 DUP1 DUP11 GT PUSH2 0x9B4 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x407C DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP10 GT PUSH2 0x9FA JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x409C DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP9 PUSH4 0xFFFFFFFF AND GT DUP1 ISZERO PUSH2 0xA19 JUMPI POP PUSH3 0x1E8480 PUSH4 0xFFFFFFFF DUP10 AND GT ISZERO JUMPDEST ISZERO ISZERO PUSH2 0xA6F JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F524154494F00000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP10 DUP8 GT ISZERO PUSH2 0xAC7 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F414D4F554E540000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP7 ISZERO ISZERO PUSH2 0xAD7 JUMPI PUSH1 0x0 SWAP6 POP PUSH2 0x95B JUMP JUMPDEST DUP10 DUP8 EQ ISZERO PUSH2 0xAE7 JUMPI DUP9 SWAP6 POP PUSH2 0x95B JUMP JUMPDEST PUSH4 0xFFFFFFFF DUP9 AND PUSH3 0xF4240 EQ ISZERO PUSH2 0x915 JUMPI DUP10 PUSH2 0x904 DUP9 DUP12 PUSH4 0xFFFFFFFF PUSH2 0x1190 AND JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xB18 DUP7 DUP7 DUP7 DUP7 PUSH2 0x1271 JUMP JUMPDEST SWAP2 POP SWAP2 POP SWAP5 POP SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP12 GT DUP1 ISZERO PUSH2 0xB3E JUMPI POP PUSH1 0x0 DUP10 GT JUMPDEST ISZERO ISZERO PUSH2 0xB82 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x409C DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP11 PUSH4 0xFFFFFFFF AND GT DUP1 ISZERO PUSH2 0xBA1 JUMPI POP PUSH3 0xF4240 PUSH4 0xFFFFFFFF DUP12 AND GT ISZERO JUMPDEST DUP1 ISZERO PUSH2 0xBB3 JUMPI POP PUSH1 0x0 DUP9 PUSH4 0xFFFFFFFF AND GT JUMPDEST DUP1 ISZERO PUSH2 0xBC8 JUMPI POP PUSH3 0xF4240 PUSH4 0xFFFFFFFF DUP10 AND GT ISZERO JUMPDEST ISZERO ISZERO PUSH2 0xC1E JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F574549474854000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP8 PUSH4 0xFFFFFFFF AND DUP11 PUSH4 0xFFFFFFFF AND EQ ISZERO PUSH2 0xC63 JUMPI PUSH2 0xC42 DUP12 DUP9 PUSH4 0xFFFFFFFF PUSH2 0x1214 AND JUMP JUMPDEST PUSH2 0xC52 DUP11 DUP10 PUSH4 0xFFFFFFFF PUSH2 0x1190 AND JUMP JUMPDEST DUP2 ISZERO ISZERO PUSH2 0xC5B JUMPI INVALID JUMPDEST DIV SWAP6 POP PUSH2 0xCB3 JUMP JUMPDEST PUSH2 0xC73 DUP12 DUP9 PUSH4 0xFFFFFFFF PUSH2 0x1214 AND JUMP JUMPDEST SWAP3 POP PUSH2 0xC81 DUP4 DUP13 DUP13 DUP12 PUSH2 0x1271 JUMP JUMPDEST SWAP1 SWAP6 POP SWAP4 POP PUSH2 0xC96 DUP10 DUP7 PUSH4 0xFFFFFFFF PUSH2 0x1190 AND JUMP JUMPDEST SWAP2 POP POP PUSH1 0xFF DUP4 AND PUSH1 0x2 EXP DUP9 MUL DUP5 DUP2 DUP4 SUB DUP2 ISZERO ISZERO PUSH2 0xCAF JUMPI INVALID JUMPDEST DIV SWAP6 POP JUMPDEST POP POP POP POP POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 DUP8 DUP10 EQ ISZERO PUSH2 0xD27 JUMPI PUSH1 0x0 DUP10 GT DUP1 PUSH2 0xCDE JUMPI POP PUSH1 0x0 DUP8 GT JUMPDEST ISZERO ISZERO PUSH2 0xD22 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x409C DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0xD87 JUMP JUMPDEST PUSH1 0x0 DUP10 GT DUP1 ISZERO PUSH2 0xD37 JUMPI POP PUSH1 0x0 DUP9 GT JUMPDEST DUP1 ISZERO PUSH2 0xD43 JUMPI POP PUSH1 0x0 DUP8 GT JUMPDEST ISZERO ISZERO PUSH2 0xD87 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x409C DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP7 GT DUP1 ISZERO PUSH2 0xD97 JUMPI POP PUSH1 0x0 DUP6 GT JUMPDEST ISZERO ISZERO PUSH2 0xDED JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F524154450000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0xDFD DUP10 DUP8 PUSH4 0xFFFFFFFF PUSH2 0x1190 AND JUMP JUMPDEST SWAP2 POP PUSH2 0xE0F DUP8 DUP7 PUSH4 0xFFFFFFFF PUSH2 0x1190 AND JUMP JUMPDEST SWAP1 POP DUP8 DUP10 LT ISZERO PUSH2 0xE30 JUMPI PUSH2 0xE27 DUP9 DUP11 DUP5 DUP5 PUSH1 0x1 PUSH2 0x1CBF JUMP JUMPDEST SWAP4 POP SWAP4 POP PUSH2 0xE55 JUMP JUMPDEST DUP8 DUP10 GT ISZERO PUSH2 0xE46 JUMPI PUSH2 0xE27 DUP10 DUP10 DUP5 DUP5 PUSH1 0x0 PUSH2 0x1CBF JUMP JUMPDEST PUSH2 0xE50 DUP3 DUP3 PUSH2 0x135B JUMP JUMPDEST SWAP4 POP SWAP4 POP JUMPDEST POP POP SWAP6 POP SWAP6 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x705 DUP3 PUSH2 0x1DA2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x705 DUP3 PUSH2 0x1E2F JUMP JUMPDEST PUSH1 0x0 PUSH2 0x705 DUP3 PUSH2 0x222F JUMP JUMPDEST PUSH2 0xE8A PUSH2 0x2298 JUMP JUMPDEST PUSH2 0xE92 PUSH2 0x2A6E JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x6EF DUP5 DUP5 PUSH2 0x3475 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP1 DUP1 DUP1 DUP10 GT PUSH2 0xEEC JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x407C DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP9 GT PUSH2 0xF32 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x409C DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP8 PUSH4 0xFFFFFFFF AND GT DUP1 ISZERO PUSH2 0xF51 JUMPI POP PUSH3 0x1E8480 PUSH4 0xFFFFFFFF DUP9 AND GT ISZERO JUMPDEST ISZERO ISZERO PUSH2 0xFA7 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F524154494F00000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP6 ISZERO ISZERO PUSH2 0xFB7 JUMPI PUSH1 0x0 SWAP5 POP PUSH2 0x6C8 JUMP JUMPDEST PUSH4 0xFFFFFFFF DUP8 AND PUSH3 0xF4240 EQ ISZERO PUSH2 0xFF0 JUMPI DUP9 PUSH1 0x1 PUSH2 0xFDB DUP9 DUP12 PUSH4 0xFFFFFFFF PUSH2 0x1190 AND JUMP JUMPDEST SUB DUP2 ISZERO ISZERO PUSH2 0xFE5 JUMPI INVALID JUMPDEST DIV PUSH1 0x1 ADD SWAP5 POP PUSH2 0x6C8 JUMP JUMPDEST PUSH2 0x1000 DUP10 DUP8 PUSH4 0xFFFFFFFF PUSH2 0x1214 AND JUMP JUMPDEST SWAP2 POP PUSH2 0x1011 DUP3 DUP11 PUSH3 0xF4240 DUP11 PUSH2 0x1271 JUMP JUMPDEST SWAP1 SWAP5 POP SWAP3 POP PUSH1 0xFF DUP4 AND PUSH1 0x1 PUSH2 0x102C DUP11 DUP8 PUSH4 0xFFFFFFFF PUSH2 0x1190 AND JUMP JUMPDEST PUSH1 0x2 SWAP3 SWAP1 SWAP3 EXP SWAP2 SUB DIV SWAP8 SWAP1 SWAP8 SUB PUSH1 0x1 ADD SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP1 DUP1 DUP1 DUP10 GT PUSH2 0x1093 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x407C DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP9 GT PUSH2 0x10D9 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x409C DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP8 PUSH4 0xFFFFFFFF AND GT DUP1 ISZERO PUSH2 0x10F8 JUMPI POP PUSH3 0xF4240 PUSH4 0xFFFFFFFF DUP9 AND GT ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x114E JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F574549474854000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP6 ISZERO ISZERO PUSH2 0x115E JUMPI PUSH1 0x0 SWAP5 POP PUSH2 0x6C8 JUMP JUMPDEST PUSH4 0xFFFFFFFF DUP8 AND PUSH3 0xF4240 EQ ISZERO PUSH2 0x1180 JUMPI DUP8 PUSH2 0x66F DUP11 DUP9 PUSH4 0xFFFFFFFF PUSH2 0x1190 AND JUMP JUMPDEST PUSH2 0x690 DUP7 DUP10 PUSH4 0xFFFFFFFF PUSH2 0x1214 AND JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 ISZERO ISZERO PUSH2 0x11A3 JUMPI PUSH1 0x0 SWAP2 POP PUSH2 0x120D JUMP JUMPDEST POP DUP3 DUP3 MUL DUP3 DUP5 DUP3 DUP2 ISZERO ISZERO PUSH2 0x11B3 JUMPI INVALID JUMPDEST DIV EQ PUSH2 0x1209 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP1 SWAP2 POP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 ADD DUP4 DUP2 LT ISZERO PUSH2 0x1209 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP1 DUP1 DUP1 PUSH17 0x200000000000000000000000000000000 DUP11 LT PUSH2 0x1295 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP9 PUSH1 0x7F PUSH1 0x2 EXP DUP12 MUL DUP2 ISZERO ISZERO PUSH2 0x12A6 JUMPI INVALID JUMPDEST DIV SWAP3 POP PUSH17 0x15BF0A8B1457695355FB8AC404E7A79E3 DUP4 LT ISZERO PUSH2 0x12D2 JUMPI PUSH2 0x12CB DUP4 PUSH2 0x1398 JUMP JUMPDEST SWAP4 POP PUSH2 0x12DE JUMP JUMPDEST PUSH2 0x12DB DUP4 PUSH2 0x17E2 JUMP JUMPDEST SWAP4 POP JUMPDEST DUP7 PUSH4 0xFFFFFFFF AND DUP9 PUSH4 0xFFFFFFFF AND DUP6 MUL DUP2 ISZERO ISZERO PUSH2 0x12F7 JUMPI INVALID JUMPDEST DIV SWAP2 POP PUSH17 0x800000000000000000000000000000000 DUP3 LT ISZERO PUSH2 0x1327 JUMPI PUSH2 0x131C DUP3 PUSH2 0x1E2F JUMP JUMPDEST PUSH1 0x7F SWAP6 POP SWAP6 POP PUSH2 0x134E JUMP JUMPDEST PUSH2 0x1330 DUP3 PUSH2 0x1DA2 JUMP JUMPDEST SWAP1 POP PUSH2 0x1348 PUSH1 0xFF PUSH1 0x7F DUP4 SWAP1 SUB AND PUSH1 0x2 EXP DUP4 DIV DUP3 PUSH2 0x189C JUMP JUMPDEST DUP2 SWAP6 POP SWAP6 POP JUMPDEST POP POP POP POP SWAP5 POP SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP1 DUP5 DUP7 GT PUSH2 0x137A JUMPI PUSH2 0x1371 DUP7 DUP7 PUSH2 0x3475 JUMP JUMPDEST SWAP4 POP SWAP4 POP PUSH2 0x138F JUMP JUMPDEST PUSH2 0x1384 DUP6 DUP8 PUSH2 0x3475 JUMP JUMPDEST SWAP2 POP SWAP2 POP DUP1 DUP3 SWAP4 POP SWAP4 POP JUMPDEST POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP1 DUP1 PUSH16 0xD3094C70F034DE4B96FF7D5B6F99FCD8 DUP7 LT PUSH2 0x13E7 JUMPI PUSH16 0x40000000000000000000000000000000 SWAP4 SWAP1 SWAP4 ADD SWAP3 PUSH16 0xD3094C70F034DE4B96FF7D5B6F99FCD8 PUSH1 0x7F PUSH1 0x2 EXP DUP8 MUL DIV SWAP6 POP JUMPDEST PUSH16 0xA45AF1E1F40C333B3DE1DB4DD55F29A7 DUP7 LT PUSH2 0x1430 JUMPI PUSH16 0x20000000000000000000000000000000 SWAP4 SWAP1 SWAP4 ADD SWAP3 PUSH16 0xA45AF1E1F40C333B3DE1DB4DD55F29A7 PUSH1 0x7F PUSH1 0x2 EXP DUP8 MUL DIV SWAP6 POP JUMPDEST PUSH16 0x910B022DB7AE67CE76B441C27035C6A1 DUP7 LT PUSH2 0x1479 JUMPI PUSH16 0x10000000000000000000000000000000 SWAP4 SWAP1 SWAP4 ADD SWAP3 PUSH16 0x910B022DB7AE67CE76B441C27035C6A1 PUSH1 0x7F PUSH1 0x2 EXP DUP8 MUL DIV SWAP6 POP JUMPDEST PUSH16 0x88415ABBE9A76BEAD8D00CF112E4D4A8 DUP7 LT PUSH2 0x14C2 JUMPI PUSH16 0x8000000000000000000000000000000 SWAP4 SWAP1 SWAP4 ADD SWAP3 PUSH16 0x88415ABBE9A76BEAD8D00CF112E4D4A8 PUSH1 0x7F PUSH1 0x2 EXP DUP8 MUL DIV SWAP6 POP JUMPDEST PUSH16 0x84102B00893F64C705E841D5D4064BD3 DUP7 LT PUSH2 0x150B JUMPI PUSH16 0x4000000000000000000000000000000 SWAP4 SWAP1 SWAP4 ADD SWAP3 PUSH16 0x84102B00893F64C705E841D5D4064BD3 PUSH1 0x7F PUSH1 0x2 EXP DUP8 MUL DIV SWAP6 POP JUMPDEST PUSH16 0x8204055AAEF1C8BD5C3259F4822735A2 DUP7 LT PUSH2 0x1554 JUMPI PUSH16 0x2000000000000000000000000000000 SWAP4 SWAP1 SWAP4 ADD SWAP3 PUSH16 0x8204055AAEF1C8BD5C3259F4822735A2 PUSH1 0x7F PUSH1 0x2 EXP DUP8 MUL DIV SWAP6 POP JUMPDEST PUSH16 0x810100AB00222D861931C15E39B44E99 DUP7 LT PUSH2 0x159D JUMPI PUSH16 0x1000000000000000000000000000000 SWAP4 SWAP1 SWAP4 ADD SWAP3 PUSH16 0x810100AB00222D861931C15E39B44E99 PUSH1 0x7F PUSH1 0x2 EXP DUP8 MUL DIV SWAP6 POP JUMPDEST PUSH16 0x808040155AABBBE9451521693554F733 DUP7 LT PUSH2 0x15E5 JUMPI PUSH15 0x800000000000000000000000000000 SWAP4 SWAP1 SWAP4 ADD SWAP3 PUSH16 0x808040155AABBBE9451521693554F733 PUSH1 0x7F PUSH1 0x2 EXP DUP8 MUL DIV SWAP6 POP JUMPDEST PUSH16 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT DUP7 ADD SWAP3 POP DUP3 SWAP2 POP PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP1 MUL DIV SWAP1 POP PUSH1 0x80 PUSH1 0x2 EXP DUP4 DUP2 SUB DUP4 MUL DIV SWAP4 SWAP1 SWAP4 ADD SWAP3 PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DIV SWAP2 POP PUSH17 0x200000000000000000000000000000000 PUSH16 0xAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA DUP5 SWAP1 SUB DUP4 MUL DIV SWAP4 SWAP1 SWAP4 ADD SWAP3 PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DIV SWAP2 POP PUSH17 0x300000000000000000000000000000000 PUSH16 0x99999999999999999999999999999999 DUP5 SWAP1 SUB DUP4 MUL DIV SWAP4 SWAP1 SWAP4 ADD SWAP3 PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DIV SWAP2 POP PUSH17 0x400000000000000000000000000000000 PUSH16 0x92492492492492492492492492492492 DUP5 SWAP1 SUB DUP4 MUL DIV SWAP4 SWAP1 SWAP4 ADD SWAP3 PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DIV SWAP2 POP PUSH17 0x500000000000000000000000000000000 PUSH16 0x8E38E38E38E38E38E38E38E38E38E38E DUP5 SWAP1 SUB DUP4 MUL DIV SWAP4 SWAP1 SWAP4 ADD SWAP3 PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DIV SWAP2 POP PUSH17 0x600000000000000000000000000000000 PUSH16 0x8BA2E8BA2E8BA2E8BA2E8BA2E8BA2E8B DUP5 SWAP1 SUB DUP4 MUL DIV SWAP4 SWAP1 SWAP4 ADD SWAP3 PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DIV SWAP2 POP PUSH17 0x700000000000000000000000000000000 PUSH16 0x89D89D89D89D89D89D89D89D89D89D89 DUP5 SWAP1 SUB DUP4 MUL DIV SWAP4 SWAP1 SWAP4 ADD SWAP3 PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DIV SWAP2 POP PUSH17 0x800000000000000000000000000000000 PUSH16 0x88888888888888888888888888888888 DUP5 SWAP1 SUB DUP4 MUL DIV SWAP4 SWAP1 SWAP4 ADD SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV DUP3 SUB DUP3 DUP5 DUP2 ISZERO ISZERO PUSH2 0x17C3 JUMPI INVALID JUMPDEST MOD DUP2 ISZERO ISZERO PUSH2 0x17CD JUMPI INVALID JUMPDEST DIV DUP3 DUP5 DUP2 ISZERO ISZERO PUSH2 0x17D9 JUMPI INVALID JUMPDEST DIV ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP1 PUSH1 0x80 PUSH1 0x2 EXP DUP6 LT PUSH2 0x181A JUMPI PUSH2 0x1802 PUSH1 0x7F PUSH1 0x2 EXP DUP7 JUMPDEST DIV PUSH2 0x222F JUMP JUMPDEST PUSH1 0xFF DUP2 AND PUSH1 0x2 DUP2 SWAP1 EXP SWAP1 SWAP7 DIV SWAP6 PUSH1 0x7F PUSH1 0x2 EXP MUL SWAP4 POP SWAP2 POP JUMPDEST PUSH1 0x7F PUSH1 0x2 EXP DUP6 GT ISZERO PUSH2 0x186C JUMPI POP PUSH1 0x7F JUMPDEST PUSH1 0x0 DUP2 PUSH1 0xFF AND GT ISZERO PUSH2 0x186C JUMPI PUSH1 0x7F PUSH1 0x2 EXP DUP6 DUP1 MUL DIV SWAP5 POP PUSH1 0x80 PUSH1 0x2 EXP DUP6 LT PUSH2 0x1863 JUMPI PUSH1 0x2 SWAP5 DUP6 SWAP1 DIV SWAP5 PUSH1 0xFF PUSH1 0x0 NOT DUP4 ADD AND SWAP1 EXP SWAP3 SWAP1 SWAP3 ADD SWAP2 JUMPDEST PUSH1 0x0 NOT ADD PUSH2 0x182A JUMP JUMPDEST PUSH16 0x5B9DE1D10BF4103D647B0955897BA80 PUSH16 0x3F80FE03F80FE03F80FE03F80FE03F8 DUP5 MUL DIV SWAP4 POP JUMPDEST POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP5 SWAP2 POP PUSH1 0x0 SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH16 0x3442C4E6074A82F1797F72AC0000000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH16 0x116B96F757C380FB287FD0E40000000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH15 0x45AE5BDD5F0E03ECA1FF4390000000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH15 0xDEFABF91302CD95B9FFDA50000000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH15 0x2529CA9832B22439EFFF9B8000000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH14 0x54F1CF12BD04E516B6DA88000000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH14 0xA9E39E257A09CA2D6DB51000000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH14 0x12E066E7B839FA050C309000000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH13 0x1E33D7D926C329A1AD1A800000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH13 0x2BEE513BDB4A6B19B5F800000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH12 0x3A9316FA79B88ECCF2A00000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH12 0x48177EBE1FA812375200000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH11 0x5263FE90242DCBACF00000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH11 0x57E22099C030D94100000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH10 0x57E22099C030D9410000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH10 0x52B6B54569976310000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH9 0x4985F67696BF748000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH9 0x3DEA12EA99E498000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH8 0x31880F2214B6E000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH8 0x25BCFF56EB36000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH7 0x1B722E10AB1000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH7 0x1317C70077000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH6 0xCBA84AAFA00 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH5 0x82573A0A00 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH5 0x5035AD900 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH4 0x2F881B00 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH4 0x1B29340 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH3 0xEFC40 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH2 0x7FE0 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH2 0x420 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH1 0x21 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH1 0x1 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND PUSH1 0x1 SWAP1 PUSH1 0x2 EXP MUL DUP6 PUSH16 0x688589CC0E9505E2F2FEE5580000000 DUP4 DUP2 ISZERO ISZERO PUSH2 0x1CB3 JUMPI INVALID JUMPDEST DIV ADD ADD SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x1CD2 DUP10 DUP10 PUSH2 0x3511 JUMP JUMPDEST SWAP1 SWAP10 POP SWAP8 POP DUP10 PUSH2 0x1CEC DUP13 PUSH1 0x7F PUSH1 0x2 EXP PUSH4 0xFFFFFFFF PUSH2 0x1190 AND JUMP JUMPDEST DUP2 ISZERO ISZERO PUSH2 0x1CF5 JUMPI INVALID JUMPDEST DIV SWAP4 POP PUSH17 0x15BF0A8B1457695355FB8AC404E7A79E3 DUP5 LT PUSH2 0x1D1E JUMPI PUSH2 0x1D19 DUP5 PUSH2 0x17E2 JUMP JUMPDEST PUSH2 0x1D27 JUMP JUMPDEST PUSH2 0x1D27 DUP5 PUSH2 0x1398 JUMP JUMPDEST SWAP3 POP DUP8 PUSH2 0x1D3A DUP5 DUP12 PUSH4 0xFFFFFFFF PUSH2 0x1190 AND JUMP JUMPDEST DUP2 ISZERO ISZERO PUSH2 0x1D43 JUMPI INVALID JUMPDEST DIV SWAP2 POP DUP7 PUSH2 0x1D59 JUMPI PUSH2 0x1D54 DUP3 PUSH2 0x35CD JUMP JUMPDEST PUSH2 0x1D62 JUMP JUMPDEST PUSH2 0x1D62 DUP3 PUSH2 0x3628 JUMP JUMPDEST SWAP1 POP PUSH2 0x1D90 PUSH2 0x1D77 DUP3 DUP12 PUSH4 0xFFFFFFFF PUSH2 0x1190 AND JUMP JUMPDEST PUSH2 0x1D8B DUP11 PUSH1 0x7F PUSH1 0x2 EXP PUSH4 0xFFFFFFFF PUSH2 0x1190 AND JUMP JUMPDEST PUSH2 0x135B JUMP JUMPDEST SWAP6 POP SWAP6 POP POP POP POP POP SWAP6 POP SWAP6 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 PUSH1 0x7F DUP3 JUMPDEST DUP2 PUSH1 0xFF AND DUP4 PUSH1 0x1 ADD PUSH1 0xFF AND LT ISZERO PUSH2 0x1DEF JUMPI PUSH1 0x2 PUSH1 0xFF DUP5 DUP5 ADD AND DIV SWAP1 POP DUP5 PUSH1 0x0 PUSH1 0xFF DUP4 AND PUSH1 0x80 DUP2 LT PUSH2 0x1DD7 JUMPI INVALID JUMPDEST ADD SLOAD LT PUSH2 0x1DE6 JUMPI DUP1 SWAP3 POP PUSH2 0x1DEA JUMP JUMPDEST DUP1 SWAP2 POP JUMPDEST PUSH2 0x1DAA JUMP JUMPDEST DUP5 PUSH1 0x0 PUSH1 0xFF DUP5 AND PUSH1 0x80 DUP2 LT PUSH2 0x1E00 JUMPI INVALID JUMPDEST ADD SLOAD LT PUSH2 0x1E0F JUMPI DUP2 SWAP4 POP PUSH2 0x1894 JUMP JUMPDEST DUP5 PUSH1 0x0 PUSH1 0xFF DUP6 AND PUSH1 0x80 DUP2 LT PUSH2 0x1E20 JUMPI INVALID JUMPDEST ADD SLOAD LT PUSH2 0x174 JUMPI DUP3 SWAP4 POP PUSH2 0x1894 JUMP JUMPDEST PUSH1 0x0 PUSH8 0x168244FDAC78000 PUSH1 0x7F PUSH1 0x2 EXP PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP5 AND DUP1 DUP1 MUL DUP3 SWAP1 DIV DUP1 DUP3 MUL DUP4 SWAP1 DIV DUP1 DUP4 MUL DUP5 SWAP1 DIV SWAP5 DUP6 MUL PUSH8 0x10E1B3BE415A0000 SWAP1 SWAP3 MUL PUSH8 0x5A0913F6B1E0000 SWAP2 SWAP1 SWAP2 MUL ADD ADD SWAP3 SWAP1 SWAP2 DUP2 DUP4 MUL DIV SWAP1 POP DUP1 PUSH7 0x4807432BC18000 MUL DUP4 ADD SWAP3 POP PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DUP2 ISZERO ISZERO PUSH2 0x1EAA JUMPI INVALID JUMPDEST DIV SWAP1 POP DUP1 PUSH7 0xC0135DCA04000 MUL DUP4 ADD SWAP3 POP PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DUP2 ISZERO ISZERO PUSH2 0x1ECC JUMPI INVALID JUMPDEST DIV SWAP1 POP DUP1 PUSH7 0x1B707B1CDC000 MUL DUP4 ADD SWAP3 POP PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DUP2 ISZERO ISZERO PUSH2 0x1EEE JUMPI INVALID JUMPDEST DIV SWAP1 POP DUP1 PUSH6 0x36E0F639B800 MUL DUP4 ADD SWAP3 POP PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DUP2 ISZERO ISZERO PUSH2 0x1F0F JUMPI INVALID JUMPDEST DIV SWAP1 POP DUP1 PUSH6 0x618FEE9F800 MUL DUP4 ADD SWAP3 POP PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DUP2 ISZERO ISZERO PUSH2 0x1F30 JUMPI INVALID JUMPDEST DIV SWAP1 POP DUP1 PUSH5 0x9C197DCC00 MUL DUP4 ADD SWAP3 POP PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DUP2 ISZERO ISZERO PUSH2 0x1F50 JUMPI INVALID JUMPDEST DIV SWAP1 POP DUP1 PUSH5 0xE30DCE400 MUL DUP4 ADD SWAP3 POP PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DUP2 ISZERO ISZERO PUSH2 0x1F70 JUMPI INVALID JUMPDEST DIV SWAP1 POP DUP1 PUSH5 0x12EBD1300 MUL DUP4 ADD SWAP3 POP PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DUP2 ISZERO ISZERO PUSH2 0x1F90 JUMPI INVALID JUMPDEST DIV SWAP1 POP DUP1 PUSH4 0x17499F00 MUL DUP4 ADD SWAP3 POP PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DUP2 ISZERO ISZERO PUSH2 0x1FAF JUMPI INVALID JUMPDEST DIV SWAP1 POP DUP1 PUSH4 0x1A9D480 MUL DUP4 ADD SWAP3 POP PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DUP2 ISZERO ISZERO PUSH2 0x1FCE JUMPI INVALID JUMPDEST DIV SWAP1 POP DUP1 PUSH3 0x1C6380 MUL DUP4 ADD SWAP3 POP PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DUP2 ISZERO ISZERO PUSH2 0x1FEC JUMPI INVALID JUMPDEST DIV SWAP1 POP DUP1 PUSH3 0x1C638 MUL DUP4 ADD SWAP3 POP PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DUP2 ISZERO ISZERO PUSH2 0x200A JUMPI INVALID JUMPDEST DIV SWAP1 POP DUP1 PUSH2 0x1AB8 MUL DUP4 ADD SWAP3 POP PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DUP2 ISZERO ISZERO PUSH2 0x2027 JUMPI INVALID JUMPDEST DIV SWAP1 POP DUP1 PUSH2 0x17C MUL DUP4 ADD SWAP3 POP PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DUP2 ISZERO ISZERO PUSH2 0x2044 JUMPI INVALID JUMPDEST DIV SWAP1 POP DUP1 PUSH1 0x14 MUL DUP4 ADD SWAP3 POP PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DUP2 ISZERO ISZERO PUSH2 0x2060 JUMPI INVALID JUMPDEST PUSH8 0x21C3677C82B40000 SWAP2 SWAP1 DIV SWAP4 DUP5 ADD DIV DUP3 ADD PUSH1 0x7F PUSH1 0x2 EXP ADD SWAP3 SWAP1 POP PUSH16 0x10000000000000000000000000000000 DUP6 AND ISZERO PUSH2 0x20BD JUMPI PUSH17 0x18EBEF9EAC820AE8682B9793AC6D1E776 PUSH17 0x1C3D6A24ED82218787D624D3E5EBA95F9 DUP5 MUL DIV SWAP3 POP JUMPDEST PUSH16 0x20000000000000000000000000000000 DUP6 AND ISZERO PUSH2 0x20FF JUMPI PUSH17 0x1368B2FC6F9609FE7ACEB46AA619BAED4 PUSH17 0x18EBEF9EAC820AE8682B9793AC6D1E778 DUP5 MUL DIV SWAP3 POP JUMPDEST PUSH16 0x40000000000000000000000000000000 DUP6 AND ISZERO PUSH2 0x2140 JUMPI PUSH16 0xBC5AB1B16779BE3575BD8F0520A9F21F PUSH17 0x1368B2FC6F9609FE7ACEB46AA619BAED5 DUP5 MUL DIV SWAP3 POP JUMPDEST PUSH1 0x7F PUSH1 0x2 EXP DUP6 AND ISZERO PUSH2 0x2174 JUMPI PUSH16 0x454AAA8EFE072E7F6DDBAB84B40A55C9 PUSH16 0xBC5AB1B16779BE3575BD8F0520A9F21E DUP5 MUL DIV SWAP3 POP JUMPDEST PUSH1 0x80 PUSH1 0x2 EXP DUP6 AND ISZERO PUSH2 0x21A8 JUMPI PUSH16 0x960AADC109E7A3BF4578099615711EA PUSH16 0x454AAA8EFE072E7F6DDBAB84B40A55C5 DUP5 MUL DIV SWAP3 POP JUMPDEST PUSH17 0x200000000000000000000000000000000 DUP6 AND ISZERO PUSH2 0x21E8 JUMPI PUSH15 0x2BF84208204F5977F9A8CF01FDCE3D PUSH16 0x960AADC109E7A3BF4578099615711D7 DUP5 MUL DIV SWAP3 POP JUMPDEST PUSH17 0x400000000000000000000000000000000 DUP6 AND ISZERO PUSH2 0x2226 JUMPI PUSH14 0x3C6AB775DD0B95B4CBEE7E65D11 PUSH15 0x2BF84208204F5977F9A8CF01FDC307 DUP5 MUL DIV SWAP3 POP JUMPDEST POP SWAP1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 PUSH2 0x100 DUP5 LT ISZERO PUSH2 0x225E JUMPI JUMPDEST PUSH1 0x1 DUP5 GT ISZERO PUSH2 0x2259 JUMPI PUSH1 0x2 SWAP1 SWAP4 DIV SWAP3 PUSH1 0x1 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x223E JUMP JUMPDEST PUSH2 0x120D JUMP JUMPDEST POP PUSH1 0x80 JUMPDEST PUSH1 0x0 DUP2 PUSH1 0xFF AND GT ISZERO PUSH2 0x120D JUMPI PUSH1 0xFF DUP2 AND PUSH1 0x2 EXP DUP5 LT PUSH2 0x228B JUMPI PUSH1 0xFF DUP2 AND PUSH1 0x2 EXP SWAP1 SWAP4 DIV SWAP3 SWAP1 DUP2 OR SWAP1 JUMPDEST PUSH1 0x2 PUSH1 0xFF SWAP1 SWAP2 AND DIV PUSH2 0x2262 JUMP JUMPDEST PUSH17 0x1C35FEDD14FFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x20 SSTORE PUSH17 0x1B0CE43B323FFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x21 SSTORE PUSH17 0x19F0028EC1FFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x22 SSTORE PUSH17 0x18DED91F0E7FFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x23 SSTORE PUSH17 0x17D8EC7F0417FFFFFFFFFFFFFFFFFFFFFF PUSH1 0x24 SSTORE PUSH17 0x16DDC6556CDBFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x25 SSTORE PUSH17 0x15ECF52776A1FFFFFFFFFFFFFFFFFFFFFF PUSH1 0x26 SSTORE PUSH17 0x15060C256CB2FFFFFFFFFFFFFFFFFFFFFF PUSH1 0x27 SSTORE PUSH17 0x1428A2F98D72FFFFFFFFFFFFFFFFFFFFFF PUSH1 0x28 SSTORE PUSH17 0x13545598E5C23FFFFFFFFFFFFFFFFFFFFF PUSH1 0x29 SSTORE PUSH17 0x1288C4161CE1DFFFFFFFFFFFFFFFFFFFFF PUSH1 0x2A SSTORE PUSH17 0x11C592761C666FFFFFFFFFFFFFFFFFFFFF PUSH1 0x2B SSTORE PUSH17 0x110A688680A757FFFFFFFFFFFFFFFFFFFF PUSH1 0x2C SSTORE PUSH17 0x1056F1B5BEDF77FFFFFFFFFFFFFFFFFFFF PUSH1 0x2D SSTORE PUSH17 0xFAADCECEEFF8BFFFFFFFFFFFFFFFFFFFF PUSH1 0x2E SSTORE PUSH17 0xF05DC6B27EDADFFFFFFFFFFFFFFFFFFFF PUSH1 0x2F SSTORE PUSH17 0xE67A5A25DA4107FFFFFFFFFFFFFFFFFFF PUSH1 0x30 SSTORE PUSH17 0xDCFF115B14EEDFFFFFFFFFFFFFFFFFFFF PUSH1 0x31 SSTORE PUSH17 0xD3E7A392431239FFFFFFFFFFFFFFFFFFF PUSH1 0x32 SSTORE PUSH17 0xCB2FF529EB71E4FFFFFFFFFFFFFFFFFFF PUSH1 0x33 SSTORE PUSH17 0xC2D415C3DB974AFFFFFFFFFFFFFFFFFFF PUSH1 0x34 SSTORE PUSH17 0xBAD03E7D883F69BFFFFFFFFFFFFFFFFFF PUSH1 0x35 SSTORE PUSH17 0xB320D03B2C343D5FFFFFFFFFFFFFFFFFF PUSH1 0x36 SSTORE PUSH17 0xABC25204E02828DFFFFFFFFFFFFFFFFFF PUSH1 0x37 SSTORE PUSH17 0xA4B16F74EE4BB207FFFFFFFFFFFFFFFFF PUSH1 0x38 SSTORE PUSH17 0x9DEAF736AC1F569FFFFFFFFFFFFFFFFFF PUSH1 0x39 SSTORE PUSH17 0x976BD9952C7AA957FFFFFFFFFFFFFFFFF PUSH1 0x3A SSTORE PUSH17 0x9131271922EAA606FFFFFFFFFFFFFFFFF PUSH1 0x3B SSTORE PUSH17 0x8B380F3558668C46FFFFFFFFFFFFFFFFF PUSH1 0x3C SSTORE PUSH17 0x857DDF0117EFA215BFFFFFFFFFFFFFFFF PUSH1 0x3D SSTORE PUSH17 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x3E SSTORE PUSH17 0x7ABBF6F6ABB9D087FFFFFFFFFFFFFFFFF PUSH1 0x3F SSTORE PUSH17 0x75AF62CBAC95F7DFA7FFFFFFFFFFFFFFF PUSH1 0x40 SSTORE PUSH17 0x70D7FB7452E187AC13FFFFFFFFFFFFFFF PUSH1 0x41 SSTORE PUSH17 0x6C3390ECC8AF379295FFFFFFFFFFFFFFF PUSH1 0x42 SSTORE PUSH17 0x67C00A3B07FFC01FD6FFFFFFFFFFFFFFF PUSH1 0x43 SSTORE PUSH17 0x637B647C39CBB9D3D27FFFFFFFFFFFFFF PUSH1 0x44 SSTORE PUSH17 0x5F63B1FC104DBD39587FFFFFFFFFFFFFF PUSH1 0x45 SSTORE PUSH17 0x5B771955B36E12F7235FFFFFFFFFFFFFF PUSH1 0x46 SSTORE PUSH17 0x57B3D49DDA84556D6F6FFFFFFFFFFFFFF PUSH1 0x47 SSTORE PUSH17 0x54183095B2C8ECECF30FFFFFFFFFFFFFF PUSH1 0x48 SSTORE PUSH17 0x50A28BE635CA2B888F77FFFFFFFFFFFFF PUSH1 0x49 SSTORE PUSH17 0x4D5156639708C9DB33C3FFFFFFFFFFFFF PUSH1 0x4A SSTORE PUSH17 0x4A23105873875BD52DFDFFFFFFFFFFFFF PUSH1 0x4B SSTORE PUSH17 0x471649D87199AA990756FFFFFFFFFFFFF PUSH1 0x4C SSTORE PUSH17 0x4429A21A029D4C1457CFBFFFFFFFFFFFF PUSH1 0x4D SSTORE PUSH17 0x415BC6D6FB7DD71AF2CB3FFFFFFFFFFFF PUSH1 0x4E SSTORE PUSH17 0x3EAB73B3BBFE282243CE1FFFFFFFFFFFF PUSH1 0x4F SSTORE PUSH17 0x3C1771AC9FB6B4C18E229FFFFFFFFFFFF PUSH1 0x50 SSTORE PUSH17 0x399E96897690418F785257FFFFFFFFFFF PUSH1 0x51 SSTORE PUSH17 0x373FC456C53BB779BF0EA9FFFFFFFFFFF PUSH1 0x52 SSTORE PUSH17 0x34F9E8E490C48E67E6AB8BFFFFFFFFFFF PUSH1 0x53 SSTORE PUSH17 0x32CBFD4A7ADC790560B3337FFFFFFFFFF PUSH1 0x54 SSTORE PUSH17 0x30B50570F6E5D2ACCA94613FFFFFFFFFF PUSH1 0x55 SSTORE PUSH17 0x2EB40F9F620FDA6B56C2861FFFFFFFFFF PUSH1 0x56 SSTORE PUSH17 0x2CC8340ECB0D0F520A6AF58FFFFFFFFFF PUSH1 0x57 SSTORE PUSH17 0x2AF09481380A0A35CF1BA02FFFFFFFFFF PUSH1 0x58 SSTORE PUSH17 0x292C5BDD3B92EC810287B1B3FFFFFFFFF PUSH1 0x59 SSTORE PUSH17 0x277ABDCDAB07D5A77AC6D6B9FFFFFFFFF PUSH1 0x5A SSTORE PUSH17 0x25DAF6654B1EAA55FD64DF5EFFFFFFFFF PUSH1 0x5B SSTORE PUSH17 0x244C49C648BAA98192DCE88B7FFFFFFFF PUSH1 0x5C SSTORE PUSH17 0x22CE03CD5619A311B2471268BFFFFFFFF PUSH1 0x5D SSTORE PUSH17 0x215F77C045FBE885654A44A0FFFFFFFFF PUSH1 0x5E SSTORE PUSH17 0x1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x5F SSTORE PUSH17 0x1EAEFDBDAAEE7421FC4D3EDE5FFFFFFFF PUSH1 0x60 SSTORE PUSH17 0x1D6BD8B2EB257DF7E8CA57B09BFFFFFFF PUSH1 0x61 SSTORE PUSH17 0x1C35FEDD14B861EB0443F7F133FFFFFFF PUSH1 0x62 SSTORE PUSH17 0x1B0CE43B322BCDE4A56E8ADA5AFFFFFFF PUSH1 0x63 SSTORE PUSH17 0x19F0028EC1FFF007F5A195A39DFFFFFFF PUSH1 0x64 SSTORE PUSH17 0x18DED91F0E72EE74F49B15BA527FFFFFF PUSH1 0x65 SSTORE PUSH17 0x17D8EC7F04136F4E5615FD41A63FFFFFF PUSH1 0x66 SSTORE PUSH17 0x16DDC6556CDB84BDC8D12D22E6FFFFFFF PUSH1 0x67 SSTORE PUSH17 0x15ECF52776A1155B5BD8395814F7FFFFF PUSH1 0x68 SSTORE PUSH17 0x15060C256CB23B3B3CC3754CF40FFFFFF PUSH1 0x69 SSTORE PUSH17 0x1428A2F98D728AE223DDAB715BE3FFFFF PUSH1 0x6A SSTORE PUSH17 0x13545598E5C23276CCF0EDE68034FFFFF PUSH1 0x6B SSTORE PUSH17 0x1288C4161CE1D6F54B7F61081194FFFFF PUSH1 0x6C SSTORE PUSH17 0x11C592761C666AA641D5A01A40F17FFFF PUSH1 0x6D SSTORE PUSH17 0x110A688680A7530515F3E6E6CFDCDFFFF PUSH1 0x6E SSTORE PUSH17 0x1056F1B5BEDF75C6BCB2CE8AED428FFFF PUSH1 0x6F SSTORE PUSH16 0xFAADCECEEFF8A0890F3875F008277FFF PUSH1 0x70 SSTORE PUSH16 0xF05DC6B27EDAD306388A600F6BA0BFFF PUSH1 0x71 SSTORE PUSH16 0xE67A5A25DA41063DE1495D5B18CDBFFF PUSH1 0x72 SSTORE PUSH16 0xDCFF115B14EEDDE6FC3AA5353F2E4FFF PUSH1 0x73 SSTORE PUSH16 0xD3E7A3924312399F9AAE2E0F868F8FFF PUSH1 0x74 SSTORE PUSH16 0xCB2FF529EB71E41582CCCD5A1EE26FFF PUSH1 0x75 SSTORE PUSH16 0xC2D415C3DB974AB32A51840C0B67EDFF PUSH1 0x76 SSTORE PUSH16 0xBAD03E7D883F69AD5B0A186184E06BFF PUSH1 0x77 SSTORE PUSH16 0xB320D03B2C343D4829ABD6075F0CC5FF PUSH1 0x78 SSTORE PUSH16 0xABC25204E02828D73C6E80BCDB1A95BF PUSH1 0x79 SSTORE PUSH16 0xA4B16F74EE4BB2040A1EC6C15FBBF2DF PUSH1 0x7A SSTORE PUSH16 0x9DEAF736AC1F569DEB1B5AE3F36C130F PUSH1 0x7B SSTORE PUSH16 0x976BD9952C7AA957F5937D790EF65037 PUSH1 0x7C SSTORE PUSH16 0x9131271922EAA6064B73A22D0BD4F2BF PUSH1 0x7D SSTORE PUSH16 0x8B380F3558668C46C91C49A2F8E967B9 PUSH1 0x7E SSTORE PUSH16 0x857DDF0117EFA215952912839F6473E6 PUSH1 0x0 PUSH1 0x7F JUMPDEST ADD SSTORE JUMP JUMPDEST PUSH16 0x60E393C68D20B1BD09DEAABC0373B9C5 PUSH1 0x80 SWAP1 DUP2 SSTORE PUSH16 0x5F8F46E4854120989ED94719FB4C2011 PUSH1 0x81 SSTORE PUSH16 0x5E479EBB9129FB1B7E72A648F992B606 PUSH1 0x82 SSTORE PUSH16 0x5D0BD23FE42DFEDDE2E9586BE12B85FE PUSH1 0x83 SSTORE PUSH16 0x5BDB29DDEE979308DDFCA81AEEB8095A PUSH1 0x84 SSTORE PUSH16 0x5AB4FD8A260D2C7E2C0D2AFCF0009DAD PUSH1 0x85 SSTORE PUSH16 0x5998B31359A55D48724C65CF09001221 PUSH1 0x86 SSTORE PUSH16 0x5885BCAD2B322DFC43E8860F9C018CF5 PUSH1 0x87 SSTORE PUSH16 0x577B97AA1FE222BB452FDF111B1F0BE2 PUSH1 0x88 SSTORE PUSH16 0x5679CB5E3575632E5BAA27E2B949F704 PUSH1 0x89 SSTORE PUSH16 0x557FE8241B3A31C83C732F1CDFF4A1C5 PUSH1 0x8A SSTORE PUSH16 0x548D868026504875D6E59BBE95FC2A6B PUSH1 0x8B SSTORE PUSH16 0x53A2465CE347CF34D05A867C17DD3088 PUSH1 0x8C SSTORE PUSH16 0x52BDCE5DCD4FAED59C7F5511CF8F8ACC PUSH1 0x8D SSTORE PUSH16 0x51DFCB453C07F8DA817606E7885F7C3E PUSH1 0x8E SSTORE PUSH16 0x5107EF6B0A5A2BE8F8FF15590DAA3CCE PUSH1 0x8F SSTORE PUSH16 0x5035F241D6EAE0CD7BACBA119993DE7B PUSH1 0x90 SSTORE PUSH16 0x4F698FE90D5B53D532171E1210164C66 PUSH1 0x91 SSTORE PUSH16 0x4EA288CA297A0E6A09A0EEE240E16C85 PUSH1 0x92 SSTORE PUSH16 0x4DE0A13FDCF5D4213FC398BA6E3BECDE PUSH1 0x93 SSTORE PUSH16 0x4D23A145EEF91FEC06B06140804C4808 PUSH1 0x94 SSTORE PUSH16 0x4C6B5430D4C1EE5526473DB4AE0F11DE PUSH1 0x95 SSTORE PUSH16 0x4BB7886C240562EBA11F4963A53B4240 PUSH1 0x96 SSTORE PUSH16 0x4B080F3F1CB491D2D521E0EA4583521E PUSH1 0x97 SSTORE PUSH16 0x4A5CBC96A05589CB4D86BE1DB3168364 PUSH1 0x98 SSTORE PUSH16 0x49B566D40243517658D78C33162D6ECE PUSH1 0x99 SSTORE PUSH16 0x4911E6A02E5507A30F947383FD9A3276 PUSH1 0x9A SSTORE PUSH16 0x487216C2B31BE4ADC41DB8A8D5CC0C88 PUSH1 0x9B SSTORE PUSH16 0x47D5D3FC4A7A1B188CD3D788B5C5E9FC PUSH1 0x9C SSTORE PUSH16 0x473CFCE4871A2C40BC4F9E1C32B955D0 PUSH1 0x9D SSTORE PUSH16 0x46A771CA578AB878485810E285E31C67 PUSH1 0x9E SSTORE PUSH16 0x4615149718AED4C258C373DC676AA72D PUSH1 0x9F SSTORE PUSH16 0x4585C8B3F8FE489C6E1833CA47871384 PUSH1 0xA0 SSTORE PUSH16 0x44F972F174E41E5EFB7E9D63C29CE735 PUSH1 0xA1 SSTORE PUSH16 0x446FF970BA86D8B00BEB05ECEBF3C4DC PUSH1 0xA2 SSTORE PUSH16 0x43E9438EC88971812D6F198B5CCAAD96 PUSH1 0xA3 SSTORE PUSH16 0x436539D11FF7BEA657AEDDB394E809EF PUSH1 0xA4 SSTORE PUSH16 0x42E3C5D3E5A913401D86F66DB5D81C2C PUSH1 0xA5 SSTORE PUSH16 0x4264D2395303070EA726CBE98DF62174 PUSH1 0xA6 SSTORE PUSH16 0x41E84A9A593BB7194C3A6349ECAE4EEA PUSH1 0xA7 SSTORE PUSH16 0x416E1B785D13EBA07A08F3F18876A5AB PUSH1 0xA8 SSTORE PUSH16 0x40F6322FF389D423BA9DD7E7E7B7E809 PUSH1 0xA9 SSTORE PUSH16 0x40807CEC8A466880ECF4184545D240A4 PUSH1 0xAA SSTORE PUSH16 0x400CEA9CE88A8D3AE668E8EA0D9BF07F PUSH1 0xAB SSTORE PUSH16 0x3F9B6AE8772D4C55091E0ED7DFEA0AC1 PUSH1 0xAC SSTORE PUSH16 0x3F2BEE253FD84594F54BCAAFAC383A13 PUSH1 0xAD SSTORE PUSH16 0x3EBE654E95208BB9210C575C081C5958 PUSH1 0xAE SSTORE PUSH16 0x3E52C1FC5665635B78CE1F05AD53C086 PUSH1 0xAF SSTORE PUSH16 0x3DE8F65AC388101DDF718A6F5C1EFF65 PUSH1 0xB0 SSTORE PUSH16 0x3D80F522D59BD0B328CA012DF4CD2D49 PUSH1 0xB1 SSTORE PUSH16 0x3D1AB193129EA72B23648A161163A85A PUSH1 0xB2 SSTORE PUSH16 0x3CB61F68D32576C135B95CFB53F76D75 PUSH1 0xB3 SSTORE PUSH16 0x3C5332D9F1AAE851A3619E77E4CC8473 PUSH1 0xB4 SSTORE PUSH16 0x3BF1E08EDBE2AA109E1525F65759EF73 PUSH1 0xB5 SSTORE PUSH16 0x3B921D9CFF13FA2C197746A3DFC4918F PUSH1 0xB6 SSTORE PUSH16 0x3B33DF818910BFC1A5AEFB8F63AE2AC4 PUSH1 0xB7 SSTORE PUSH16 0x3AD71C1C77E34FA32A9F184967ECCBF6 PUSH1 0xB8 SSTORE PUSH16 0x3A7BC9ABF2C5BB53E2F7384A8A16521A PUSH1 0xB9 SSTORE PUSH16 0x3A21DEC7E76369783A68A0C6385A1C57 PUSH1 0xBA SSTORE PUSH16 0x39C9525DE6C9CDF7C1C157CA4A7A6EE3 PUSH1 0xBB SSTORE PUSH16 0x39721BAD3DC85D1240FF0190E0ADAAC3 PUSH1 0xBC SSTORE PUSH16 0x391C324344D3248F0469EB28DD3D77E0 PUSH1 0xBD SSTORE PUSH16 0x38C78DF7E3C796279FB4FF84394AB3DA PUSH1 0xBE SSTORE PUSH16 0x387426EA4638AE9AAE08049D3554C20A PUSH1 0xBF SSTORE PUSH16 0x3821F57DBD2763256C1A99BBD2051378 PUSH1 0xC0 SSTORE PUSH16 0x37D0F256CB46A8C92FF62FBBEF289698 PUSH1 0xC1 SSTORE PUSH16 0x37811658591FFC7ABDD1FEAF3CEF9B73 PUSH1 0xC2 SSTORE PUSH16 0x37325AA10E9E82F7DF0F380F7997154B PUSH1 0xC3 SSTORE PUSH16 0x36E4B888CFB408D873B9A80D439311C6 PUSH1 0xC4 SSTORE PUSH16 0x3698299E59F4BB9DE645FC9B08C64CCA PUSH1 0xC5 SSTORE PUSH16 0x364CA7A5012CB603023B57DD3EBFD50D PUSH1 0xC6 SSTORE PUSH16 0x36022C928915B778AB1B06AAEE7E61D4 PUSH1 0xC7 SSTORE PUSH16 0x35B8B28D1A73DC27500FFE35559CC028 PUSH1 0xC8 SSTORE PUSH16 0x357033E951FE250EC5EB4E60955132D7 PUSH1 0xC9 SSTORE PUSH16 0x3528AB2867934E3A21B5412E4C4F8881 PUSH1 0xCA SSTORE PUSH16 0x34E212F66C55057F9676C80094A61D59 PUSH1 0xCB SSTORE PUSH16 0x349C66289E5B3C4B540C24F42FA4B9BB PUSH1 0xCC SSTORE PUSH16 0x34579FBBD0C733A9C8D6AF6B0F7D00F7 PUSH1 0xCD SSTORE PUSH16 0x3413BAD2E712288B924B5882B5B369BF PUSH1 0xCE SSTORE PUSH16 0x33D0B2B56286510EF730E213F71F12E9 PUSH1 0xCF SSTORE PUSH16 0x338E82CE00E2496262C64457535BA1A1 PUSH1 0xD0 SSTORE PUSH16 0x334D26A96B373BB7C2F8EA1827F27A92 PUSH1 0xD1 SSTORE PUSH16 0x330C99F4F4211469E00B3E18C31475EA PUSH1 0xD2 SSTORE PUSH16 0x32CCD87D6486094999C7D5E6F33237D8 PUSH1 0xD3 SSTORE PUSH16 0x328DDE2DD617B6665A2E8556F250C1AF PUSH1 0xD4 SSTORE PUSH16 0x324FA70E9ADC270F8262755AF5A99AF9 PUSH1 0xD5 SSTORE PUSH16 0x32122F443110611CA51040F41FA6E1E3 PUSH1 0xD6 SSTORE PUSH16 0x31D5730E42C0831482F0F1485C4263D8 PUSH1 0xD7 SSTORE PUSH16 0x31996EC6B07B4A83421B5EBC4AB4E1F1 PUSH1 0xD8 SSTORE PUSH16 0x315E1EE0A68FF46BB43EC2B85032E876 PUSH1 0xD9 SSTORE PUSH16 0x31237FE7BC4DEACF6775B9EFA1A145F8 PUSH1 0xDA SSTORE PUSH16 0x30E98E7F1CC5A356E44627A6972EA2FF PUSH1 0xDB SSTORE PUSH16 0x30B04760B8917EC74205A3002650EC05 PUSH1 0xDC SSTORE PUSH16 0x3077A75C803468E9132CE0CF3224241D PUSH1 0xDD SSTORE PUSH16 0x303FAB57A6A275C36F19CDA9BACE667A PUSH1 0xDE SSTORE PUSH16 0x3008504BEB8DCBD2CF3BC1F6D5A064F0 PUSH1 0xDF SSTORE PUSH16 0x2FD19346ED17DAC61219CE0C2C5AC4B0 PUSH1 0xE0 SSTORE PUSH16 0x2F9B7169808C324B5852FD3D54BA9714 PUSH1 0xE1 SSTORE PUSH16 0x2F65E7E711CF4B064EEA9C08CBDAD574 PUSH1 0xE2 SSTORE PUSH16 0x2F30F405093042DDFF8A251B6BF6D103 PUSH1 0xE3 SSTORE PUSH16 0x2EFC931A3750F2E8BFE323EDFE037574 PUSH1 0xE4 SSTORE PUSH16 0x2EC8C28E46DBE56D98685278339400CB PUSH1 0xE5 SSTORE PUSH16 0x2E957FD933C3926D8A599B602379B851 PUSH1 0xE6 SSTORE PUSH16 0x2E62C882C7C9ED4473412702F08BA0E5 PUSH1 0xE7 SSTORE PUSH16 0x2E309A221C12BA361E3ED695167FEEE2 PUSH1 0xE8 SSTORE PUSH16 0x2DFEF25D1F865AE18DD07CFEA4BCEA10 PUSH1 0xE9 SSTORE PUSH16 0x2DCDCEE821CDC80DECC02C44344AEB31 PUSH1 0xEA SSTORE PUSH16 0x2D9D2D8562B34944D0B201BB87260C83 PUSH1 0xEB SSTORE PUSH16 0x2D6D0C04A5B62A2C42636308669B729A PUSH1 0xEC SSTORE PUSH16 0x2D3D6842C9A235517FC5A0332691528F PUSH1 0xED SSTORE PUSH16 0x2D0E402963FE1EA2834ABC408C437C10 PUSH1 0xEE SSTORE PUSH16 0x2CDF91AE602647908AFF975E4D6A2A8C PUSH1 0xEF SSTORE PUSH16 0x2CB15AD3A1EB65F6D74A75DA09A1B6C5 PUSH1 0xF0 SSTORE PUSH16 0x2C8399A6AB8E9774D6FCFF373D210727 PUSH1 0xF1 SSTORE PUSH16 0x2C564C4046F64EDBA6883CA06BBC4535 PUSH1 0xF2 SSTORE PUSH16 0x2C2970C431F952641E05CB493E23EED3 PUSH1 0xF3 SSTORE PUSH16 0x2BFD0560CD9EB14563BC7C0732856C18 PUSH1 0xF4 SSTORE PUSH16 0x2BD1084ED0332F7FF4150F9D0EF41A2C PUSH1 0xF5 SSTORE PUSH16 0x2BA577D0FA1628B76D040B12A82492FB PUSH1 0xF6 SSTORE PUSH16 0x2B7A5233CD21581E855E89DC2F1E8A92 PUSH1 0xF7 SSTORE PUSH16 0x2B4F95CD46904D05D72BDCDE337D9CC7 PUSH1 0xF8 SSTORE PUSH16 0x2B2540FC9B4D9ABBA3FACA6691914675 PUSH1 0xF9 SSTORE PUSH16 0x2AFB5229F68D0830D8BE8ADB0A0DB70F PUSH1 0xFA SSTORE PUSH16 0x2AD1C7C63A9B294C5BC73A3BA3AB7A2B PUSH1 0xFB SSTORE PUSH16 0x2AA8A04AC3CBE1EE1C9C86361465DBB8 PUSH1 0xFC SSTORE PUSH16 0x2A7FDA392D725A44A2C8AEB9AB35430D PUSH1 0xFD SSTORE PUSH16 0x2A57741B18CDE618717792B4FAA216DB PUSH1 0xFE SSTORE PUSH16 0x2A2F6C81F5D84DD950A35626D6D5503A SWAP1 PUSH1 0x7F PUSH2 0x2A6A JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH30 0x10C6F7A0B5ED8D36B4C7F34938583621FAFC8B0079A2834D26FA3FCC9EA9 DUP8 GT ISZERO PUSH2 0x34E6 JUMPI PUSH30 0x10C6F7A0B5ED8D36B4C7F34938583621FAFC8B0079A2834D26FA3FCC9EAA DUP8 DIV PUSH1 0x1 ADD SWAP3 POP DUP3 DUP8 DUP2 ISZERO ISZERO PUSH2 0x34D4 JUMPI INVALID JUMPDEST DIV SWAP7 POP DUP3 DUP7 DUP2 ISZERO ISZERO PUSH2 0x34E2 JUMPI INVALID JUMPDEST DIV SWAP6 POP JUMPDEST PUSH2 0x34FE PUSH3 0xF4240 DUP9 MUL PUSH2 0x34F9 DUP10 DUP10 PUSH2 0x1214 JUMP JUMPDEST PUSH2 0x17B0 JUMP JUMPDEST SWAP8 PUSH3 0xF4240 DUP10 SWAP1 SUB SWAP8 POP SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 PUSH1 0x2 EXP DUP7 GT ISZERO DUP1 ISZERO PUSH2 0x352F JUMPI POP PUSH1 0x80 PUSH1 0x2 EXP DUP6 GT ISZERO JUMPDEST ISZERO PUSH2 0x353F JUMPI DUP6 DUP6 SWAP4 POP SWAP4 POP PUSH2 0x138F JUMP JUMPDEST PUSH1 0x80 PUSH1 0x2 EXP DUP7 LT ISZERO PUSH2 0x356B JUMPI DUP5 PUSH1 0x80 PUSH1 0x2 EXP DUP8 MUL DUP2 ISZERO ISZERO PUSH2 0x355C JUMPI INVALID JUMPDEST DIV PUSH1 0x80 PUSH1 0x2 EXP SWAP4 POP SWAP4 POP PUSH2 0x138F JUMP JUMPDEST PUSH1 0x80 PUSH1 0x2 EXP DUP6 LT ISZERO PUSH2 0x3597 JUMPI PUSH1 0x80 PUSH1 0x2 EXP DUP7 PUSH1 0x80 PUSH1 0x2 EXP DUP8 MUL DUP2 ISZERO ISZERO PUSH2 0x358D JUMPI INVALID JUMPDEST DIV SWAP4 POP SWAP4 POP PUSH2 0x138F JUMP JUMPDEST DUP5 DUP7 GT PUSH2 0x35A4 JUMPI DUP5 PUSH2 0x35A6 JUMP JUMPDEST DUP6 JUMPDEST SWAP2 POP PUSH2 0x35B6 PUSH1 0x7F PUSH1 0x2 EXP DUP4 PUSH2 0x17FC JUMP JUMPDEST PUSH1 0xFF AND PUSH1 0x2 EXP SWAP6 DUP7 SWAP1 DIV SWAP7 SWAP6 SWAP1 SWAP5 DIV SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH16 0x2F16AC6C59DE6F8D5D6F63C1482A7C86 DUP3 GT PUSH2 0x35F6 JUMPI PUSH2 0x35EF DUP3 PUSH2 0x368C JUMP JUMPDEST SWAP1 POP PUSH2 0x708 JUMP JUMPDEST DUP2 PUSH32 0x4000000000000000000000000000000000000000000000000000000000000000 DUP2 ISZERO ISZERO PUSH2 0x3621 JUMPI INVALID JUMPDEST DIV SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH16 0x2F16AC6C59DE6F8D5D6F63C1482A7C86 DUP3 GT PUSH2 0x364A JUMPI PUSH2 0x35EF DUP3 PUSH2 0x3AEF JUMP JUMPDEST PUSH17 0x1AF16AC6C59DE6F8D5D6F63C1482A7C80 DUP3 GT PUSH2 0x366B JUMPI PUSH2 0x35EF DUP3 PUSH2 0x3F70 JUMP JUMPDEST PUSH17 0x6B22D43E72C326539CCEEEF8BB48F255FF DUP3 GT PUSH2 0x174 JUMPI PUSH2 0x35EF DUP3 PUSH2 0x3FEE JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP1 MUL DIV SWAP2 POP PUSH17 0x14D29A73A6E7B02C3668C7B0880000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH17 0x2504A0CD9A7F7215B60F9BE4800000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH17 0x484D0A1191C0EAD267967C7A4A0000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH17 0x95EC580D7E8427A4BAF26A90A00000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH17 0x1440B0BE1615A47DBA6E5B3B1F10000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH17 0x2D207601F46A99B4112418400000000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH17 0x66EBAAC4C37C622DD8288A7EB1B2000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH17 0xEF17240135F7DBD43A1BA10CF200000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH18 0x233C33C676A5EB2416094A87B3657000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH18 0x541CDE48BC0254BED49A9F8700000000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH18 0xCAE1FAD2CDD4D4CB8D73ABCA0D19A400000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH18 0x1EDB2AA2F760D15C41CEEDBA956400000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH18 0x4BA8D20D2DABD386C9529659841A2E200000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH18 0xBAC08546B867CDAA20000000000000000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH19 0x1CFA8E70C03625B9DB76C8EBF5BBF24820000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH19 0x4851D99F82060DF265F3309B26F8200000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH19 0xB550D19B129D270C44F6F55F027723CBB0000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH19 0x1C877DADC761DC272DEB65D4B0000000000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH19 0x48178ECE97479F33A77F2AD22A81B64406C000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH19 0xB6CA8268B9D810FEDF6695EF2F8A6C00000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH20 0x1D0E76631A5B05D007B8CB72A7C7F11EC36E000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH20 0x4A1C37BD9F85FD9C6C780000000000000000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH20 0xBD8369F1B702BF491E2EBFCEE08250313B65400 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH20 0x1E5C7C32A9F6C70AB2CB59D9225764D400000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH20 0x4DFF5820E165E910F95120A708E742496221E600 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH20 0xC8C8F66DB1FCED378EE50E536000000000000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH21 0x205DB8DFFFF45BFA2938F128F599DBF16EB11D880 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH21 0x53A044EBD984351493E1786AF38D39A0800000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH21 0xD86DAE2A4CC0F47633A544479735869B487B59C40 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH21 0x231000000000000000000000000000000000000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH21 0x5B0485A76F6646C2039DB1507CDD51B08649680822 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH21 0xEC983C46C49545BC17EFA6B5B0055E242200000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 PUSH16 0xDE1BC4D19EFCAC82445DA75B00000000 DUP4 DIV ADD ADD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x7F PUSH1 0x2 EXP DUP2 DUP2 SUB PUSH16 0xDE1BC4D19EFCAC82445DA75B00000000 MUL SWAP1 DUP3 DUP1 MUL DIV SWAP2 POP PUSH17 0x14D29A73A6E7B02C3668C7B0880000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH17 0x2504A0CD9A7F7215B60F9BE4800000000 DUP3 MUL SWAP1 SUB PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH17 0x484D0A1191C0EAD267967C7A4A0000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH17 0x95EC580D7E8427A4BAF26A90A00000000 DUP3 MUL SWAP1 SUB PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH17 0x1440B0BE1615A47DBA6E5B3B1F10000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH17 0x2D207601F46A99B4112418400000000000 DUP3 MUL SWAP1 SUB PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH17 0x66EBAAC4C37C622DD8288A7EB1B2000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH17 0xEF17240135F7DBD43A1BA10CF200000000 DUP3 MUL SWAP1 SUB PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH18 0x233C33C676A5EB2416094A87B3657000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH18 0x541CDE48BC0254BED49A9F8700000000000 DUP3 MUL SWAP1 SUB PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH18 0xCAE1FAD2CDD4D4CB8D73ABCA0D19A400000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH18 0x1EDB2AA2F760D15C41CEEDBA956400000000 DUP3 MUL SWAP1 SUB PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH18 0x4BA8D20D2DABD386C9529659841A2E200000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH18 0xBAC08546B867CDAA20000000000000000000 DUP3 MUL SWAP1 SUB PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH19 0x1CFA8E70C03625B9DB76C8EBF5BBF24820000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH19 0x4851D99F82060DF265F3309B26F8200000000 DUP3 MUL SWAP1 SUB PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH19 0xB550D19B129D270C44F6F55F027723CBB0000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH19 0x1C877DADC761DC272DEB65D4B0000000000000 DUP3 MUL SWAP1 SUB PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH19 0x48178ECE97479F33A77F2AD22A81B64406C000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH19 0xB6CA8268B9D810FEDF6695EF2F8A6C00000000 DUP3 MUL SWAP1 SUB PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH20 0x1D0E76631A5B05D007B8CB72A7C7F11EC36E000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH20 0x4A1C37BD9F85FD9C6C780000000000000000000 DUP3 MUL SWAP1 SUB PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH20 0xBD8369F1B702BF491E2EBFCEE08250313B65400 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH20 0x1E5C7C32A9F6C70AB2CB59D9225764D400000000 DUP3 MUL SWAP1 SUB PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH20 0x4DFF5820E165E910F95120A708E742496221E600 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH20 0xC8C8F66DB1FCED378EE50E536000000000000000 DUP3 MUL SWAP1 SUB PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH21 0x205DB8DFFFF45BFA2938F128F599DBF16EB11D880 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH21 0x53A044EBD984351493E1786AF38D39A0800000000 DUP3 MUL SWAP1 SUB PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH21 0xD86DAE2A4CC0F47633A544479735869B487B59C40 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH21 0x231000000000000000000000000000000000000000 DUP3 MUL SWAP1 SUB PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH21 0x5B0485A76F6646C2039DB1507CDD51B08649680822 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH21 0xEC983C46C49545BC17EFA6B5B0055E242200000000 DUP3 MUL SWAP1 SUB PUSH16 0xDE1BC4D19EFCAC82445DA75B00000000 DUP2 JUMPDEST DIV SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH16 0x2F16AC6C59DE6F8D5D6F63C1482A7C86 NOT DUP3 ADD PUSH16 0x3060C183060C183060C183060C18306 DUP1 DUP3 DIV SWAP1 DUP2 DUP2 MUL SWAP1 PUSH1 0x1 DUP4 ADD MUL DUP5 DUP1 PUSH1 0x80 DUP6 DUP2 DUP2 LT PUSH2 0x3FB2 JUMPI INVALID JUMPDEST ADD SLOAD SWAP2 POP PUSH1 0x80 PUSH1 0x1 DUP7 ADD DUP2 DUP2 LT PUSH2 0x3FC5 JUMPI INVALID JUMPDEST ADD SLOAD PUSH16 0x3060C183060C183060C183060C18306 SWAP5 DUP8 SUB MUL SWAP6 SWAP1 SWAP3 SUB MUL SWAP4 SWAP1 SWAP4 ADD DIV SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH17 0x15BF0A8B1457695355FB8AC404E7A79E3 DUP5 LT PUSH2 0x4019 JUMPI PUSH2 0x4014 DUP5 PUSH2 0x17E2 JUMP JUMPDEST PUSH2 0x4022 JUMP JUMPDEST PUSH2 0x4022 DUP5 PUSH2 0x1398 JUMP JUMPDEST SWAP2 POP PUSH17 0x15BF0A8B1457695355FB8AC404E7A79E3 DUP3 LT PUSH2 0x404A JUMPI PUSH2 0x4045 DUP3 PUSH2 0x17E2 JUMP JUMPDEST PUSH2 0x4053 JUMP JUMPDEST PUSH2 0x4053 DUP3 PUSH2 0x1398 JUMP JUMPDEST SWAP1 POP DUP4 PUSH1 0x7F PUSH1 0x2 EXP DUP4 PUSH1 0x7F PUSH1 0x2 EXP DUP5 MUL DUP2 ISZERO ISZERO PUSH2 0x406C JUMPI INVALID JUMPDEST DIV DUP4 DUP6 SUB ADD MUL DUP2 ISZERO ISZERO PUSH2 0x3F67 JUMPI INVALID STOP GASLIMIT MSTORE MSTORE 0x5f 0x49 0x4e JUMP COINBASE 0x4c 0x49 DIFFICULTY 0x5f MSTORE8 SSTORE POP POP 0x4c MSIZE STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP GASLIMIT MSTORE MSTORE 0x5f 0x49 0x4e JUMP COINBASE 0x4c 0x49 DIFFICULTY 0x5f MSTORE GASLIMIT MSTORE8 GASLIMIT MSTORE JUMP GASLIMIT 0x5f TIMESTAMP COINBASE 0x4c COINBASE 0x4e NUMBER GASLIMIT STOP STOP STOP STOP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 DIFFICULTY CREATE 0x27 PUSH3 0xB5E42A 0xc5 0xc4 0xda DELEGATECALL SLOAD 0xd1 PC LOG0 DUP10 0xec PC 0xa9 0xa5 XOR 0x27 SWAP15 PUSH17 0x25D2514A1C9B392002900000000000000 ", + "sourceMap": "156:1326:40:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;59263:222:10;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;59263:222:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;57847:242;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;57847:242:10;;;;;;;;;;;;;23900:810;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;23900:810:10;;;;;;;;;;;;;60811:232;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;60811:232:10;;;;;;;;;;;;;1083:140:40;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1083:140:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;875:101;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;875:101:40;;;;;1365:115;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1365:115:40;;;;;;;399:101;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;399:101:40;;;;;58146:234:10;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;58146:234:10;;;;;;;;;;;;;187:34;;8:9:-1;5:2;;;30:1;27;20:12;5:2;187:34:10;;;;;;;;;;;;;;;;;;;;;;;58849:357;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;58849:357:10;;;;;;;;;;;;;;;;;;;739:133:40;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;739:133:40;;;;;;;;;19056:997:10;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;19056:997:10;;;;;;;;;;;;;25320:1007;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;25320:1007:10;;;;;;;;;;;;;211:185:40;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;211:185:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20832:1025:10;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;20832:1025:10;;;;;;;;;;;;;;;;;;;28461:1167;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;28461:1167:10;;;;;;;;;;;;;605:131:40;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;605:131:40;;;;;;;;;;;;;;;;;;;;;;;;979:101;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;979:101:40;;;;;503:99;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;503:99:40;;;;;17006:70:10;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17006:70:10;;;;;;1226:136:40;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1226:136:40;;;;;;;22464:824:10;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;22464:824:10;;;;;;;;;;;;;17659:817;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;17659:817:10;;;;;;;;;;;;;59263:222;59403:7;59423:58;59432:7;59441:15;59458:13;59473:7;59423:8;:58::i;:::-;59416:65;59263:222;-1:-1:-1;;;;;59263:222:10:o;57847:242::-;57994:7;58014:71;58035:7;58044:15;58061:14;58077:7;58014:20;:71::i;23900:810::-;24039:7;;;;;24080:11;;;24072:42;;;;;-1:-1:-1;;;;;24072:42:10;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;24072:42:10;;;;;;;;;;;;;;;24144:1;24126:19;;24118:59;;;;;-1:-1:-1;;;;;24118:59:10;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;24118:59:10;;;;;;;;;;;;;;;24205:1;24189:13;:17;;;:52;;;;-1:-1:-1;24227:14:10;24210:31;;;;;24189:52;24181:90;;;;;;;-1:-1:-1;;;;;24181:90:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;24311:12;;24307:26;;;24332:1;24325:8;;;;24307:26;24388:27;;;297:7;24388:27;24384:78;;;24447:15;24424:20;:7;24436;24424:20;:11;:20;:::i;:::-;:38;;;;;;;;24417:45;;;;24384:78;24520:28;:15;24540:7;24520:28;:19;:28;:::i;:::-;24504:44;;24574:56;24580:5;24587:15;24604:13;297:7;24574:5;:56::i;:::-;24552:78;;-1:-1:-1;24552:78:10;-1:-1:-1;24649:32:10;;;:19;:7;24552:78;24649:19;:11;:19;:::i;:::-;:32;;;;;24634:47;;24699:7;24692:4;:14;24685:21;;23900:810;;;;;;;;;;;:::o;60811:232::-;60947:7;60967:72;60990:7;60999:15;61016:13;61031:7;60967:22;:72::i;1083:140:40:-;1161:6;1169;1188:31;1212:2;1216;1188:23;:31::i;:::-;1181:38;;;;1083:140;;;;;:::o;875:101::-;933:7;953:19;970:1;953:16;:19::i;:::-;946:26;;875:101;;;;:::o;1365:115::-;1434:7;1454:22;1469:2;1473;1454:14;:22::i;:::-;1447:29;1365:115;-1:-1:-1;;;1365:115:40:o;399:101::-;457:7;477:19;494:1;477:16;:19::i;58146:234:10:-;58289:7;58309:67;58326:7;58335:15;58352:14;58368:7;58309:16;:67::i;187:34::-;220:1;187:34;:::o;58849:357::-;59059:7;59079:123;59104:21;59127:20;59149:21;59172:20;59194:7;59079:24;:123::i;:::-;59072:130;58849:357;-1:-1:-1;;;;;;58849:357:10:o;739:133:40:-;816:7;836:32;853:2;857:10;836:16;:32::i;19056:997:10:-;19196:7;;;;;;19237:11;;;19229:42;;;;;-1:-1:-1;;;;;19229:42:10;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;19229:42:10;;;;;;;;;;;;;;;19301:1;19283:19;;19275:59;;;;;-1:-1:-1;;;;;19275:59:10;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;19275:59:10;;;;;;;;;;;;;;;19363:1;19346:14;:18;;;:50;;;;-1:-1:-1;297:7:10;19368:28;;;;;19346:50;19338:89;;;;;;;-1:-1:-1;;;;;19338:89:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;19439:18;;;;19431:49;;;;;-1:-1:-1;;;;;19431:49:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;19525:12;;19521:26;;;19546:1;19539:8;;;;19521:26;19615:7;19604;:18;19600:46;;;19631:15;19624:22;;;;19600:46;19694:28;;;297:7;19694:28;19690:79;;;19762:7;19731:28;:15;19751:7;19731:28;:19;:28;:::i;:::-;:38;;;;;;;;19724:45;;;;19690:79;19837:7;19827;:17;19811:33;;19870:49;19876:7;19885:5;297:7;19904:14;19870:5;:49::i;:::-;19848:71;;-1:-1:-1;19848:71:10;-1:-1:-1;19939:27:10;:15;19848:71;19939:27;:19;:27;:::i;:::-;19923:43;-1:-1:-1;;19986:28:10;;;;;;;20043:6;20026:13;;;20025:24;;;;;;;;20018:31;;19056:997;;;;;;;;;;;;:::o;25320:1007::-;25465:7;;;;;;25506:11;;;25498:42;;;;;-1:-1:-1;;;;;25498:42:10;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;25498:42:10;;;;;;;;;;;;;;;25570:1;25552:19;;25544:59;;;;;-1:-1:-1;;;;;25544:59:10;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;25544:59:10;;;;;;;;;;;;;;;25631:1;25615:13;:17;;;:52;;;;-1:-1:-1;25653:14:10;25636:31;;;;;25615:52;25607:90;;;;;;;-1:-1:-1;;;;;25607:90:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;25709:18;;;;25701:49;;;;;-1:-1:-1;;;;;25701:49:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;25790:12;;25786:26;;;25811:1;25804:8;;;;25786:26;25884:7;25873;:18;25869:46;;;25900:15;25893:22;;;;25869:46;25970:27;;;297:7;25970:27;25966:78;;;26037:7;26006:28;:7;26018:15;26006:28;:11;:28;:::i;211:185:40:-;324:7;333:5;351:41;363:6;371;379:5;386;351:11;:41::i;:::-;344:48;;;;211:185;;;;;;;:::o;20832:1025:10:-;21037:7;21519:14;21537:15;21556:13;21715;21768;21102:1;21078:21;:25;:54;;;;;21131:1;21107:21;:25;21078:54;21070:94;;;;;;;-1:-1:-1;;;;;21070:94:10;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;21070:94:10;;;;;;;;;;;;;;;21203:1;21180:20;:24;;;:62;;;;-1:-1:-1;297:7:10;21208:34;;;;;21180:62;:90;;;;;21269:1;21246:20;:24;;;21180:90;:128;;;;-1:-1:-1;297:7:10;21274:34;;;;;21180:128;21168:177;;;;;;;-1:-1:-1;;;;;21168:177:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;21414:20;21390:44;;:20;:44;;;21386:128;;;21480:34;:21;21506:7;21480:34;:25;:34;:::i;:::-;21443;:21;21469:7;21443:34;:25;:34;:::i;:::-;:71;;;;;;;;21436:78;;;;21386:128;21572:34;:21;21598:7;21572:34;:25;:34;:::i;:::-;21556:50;;21632:79;21638:5;21645:21;21668:20;21690;21632:5;:79::i;:::-;21610:101;;-1:-1:-1;21610:101:10;-1:-1:-1;21731:33:10;:21;21610:101;21731:33;:25;:33;:::i;:::-;21715:49;-1:-1:-1;;21784:34:10;;;;;;;21847:6;21830:13;;;21829:24;;;;;;;;21822:31;;20832:1025;;;;;;;;;;;;;:::o;28461:1167::-;28688:6;28696;29120:10;29192;28744:22;28712:28;:54;28708:310;;;28810:1;28779:28;:32;:64;;;;28842:1;28815:24;:28;28779:64;28771:104;;;;;;;-1:-1:-1;;;;;28771:104:10;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;28771:104:10;;;;;;;;;;;;;;;28708:310;;;28923:1;28892:28;:32;:62;;;;;28953:1;28928:22;:26;28892:62;:94;;;;;28985:1;28958:24;:28;28892:94;28884:134;;;;;;;-1:-1:-1;;;;;28884:134:10;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;28884:134:10;;;;;;;;;;;;;;;29054:1;29030:21;:25;:56;;;;;29085:1;29059:23;:27;29030:56;29022:93;;;;;;;-1:-1:-1;;;;;29022:93:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;29133:55;:28;29166:21;29133:55;:32;:55;:::i;:::-;29120:68;-1:-1:-1;29205:53:10;:24;29234:23;29205:53;:28;:53;:::i;:::-;29192:66;;29298:22;29267:28;:53;29263:159;;;29332:90;29355:22;29379:28;29409:2;29413;29417:4;29332:22;:90::i;:::-;29325:97;;;;;;29263:159;29462:22;29431:28;:53;29427:160;;;29496:91;29519:28;29549:22;29573:2;29577;29581:5;29496:22;:91::i;29427:160::-;29599:25;29617:2;29621;29599:17;:25::i;:::-;29592:32;;;;28461:1167;;;;;;;;;;;:::o;605:131:40:-;679:5;697:35;729:2;697:31;:35::i;979:101::-;1037:7;1057:19;1074:1;1057:16;:19::i;503:99::-;561:5;579:19;595:2;579:15;:19::i;17006:70:10:-;17033:17;:15;:17::i;:::-;17054:18;:16;:18::i;:::-;17006:70::o;1226:136:40:-;1302:6;1310;1329:29;1351:2;1355;1329:21;:29::i;22464:824:10:-;22595:7;;;;;22636:11;;;22628:42;;;;;-1:-1:-1;;;;;22628:42:10;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;22628:42:10;;;;;;;;;;;;;;;22700:1;22682:19;;22674:59;;;;;-1:-1:-1;;;;;22674:59:10;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;22674:59:10;;;;;;;;;;;;;;;22761:1;22745:13;:17;;;:52;;;;-1:-1:-1;22783:14:10;22766:31;;;;;22745:52;22737:90;;;;;;;-1:-1:-1;;;;;22737:90:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;22867:12;;22863:26;;;22888:1;22881:8;;;;22863:26;22944:27;;;297:7;22944:27;22940:88;;;23017:7;23012:1;22981:28;:7;22993:15;22981:28;:11;:28;:::i;:::-;:32;22980:44;;;;;;;;23027:1;22980:48;22973:55;;;;22940:88;23086:20;:7;23098;23086:20;:11;:20;:::i;:::-;23070:36;;23132:48;23138:5;23145:7;297;23166:13;23132:5;:48::i;:::-;23110:70;;-1:-1:-1;23110:70:10;-1:-1:-1;23200:46:10;;;23231:1;23201:27;:15;23110:70;23201:27;:19;:27;:::i;:::-;23200:46;;;;;23201:31;;23200:46;23262:22;;;;23250:1;23262:22;;22464:824;-1:-1:-1;;;;;;;;22464:824:10:o;17659:817::-;17803:7;;;;;17844:11;;;17836:42;;;;;-1:-1:-1;;;;;17836:42:10;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;17836:42:10;;;;;;;;;;;;;;;17908:1;17890:19;;17882:59;;;;;-1:-1:-1;;;;;17882:59:10;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;17882:59:10;;;;;;;;;;;;;;;17970:1;17953:14;:18;;;:50;;;;-1:-1:-1;297:7:10;17975:28;;;;;17953:50;17945:89;;;;;;;-1:-1:-1;;;;;17945:89:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;18082:12;;18078:26;;;18103:1;18096:8;;;;18078:26;18152:28;;;297:7;18152:28;18148:79;;;18212:15;18189:20;:7;18201;18189:20;:11;:20;:::i;18148:79::-;18285:28;:7;18297:15;18285:28;:11;:28;:::i;924:197:69:-;984:7;;1023;;1019:21;;;1039:1;1032:8;;;;1019:21;-1:-1:-1;1057:7:69;;;1062:2;1057;:7;1076:6;;;;;;;;:12;1068:37;;;;;-1:-1:-1;;;;;1068:37:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;1116:1;1109:8;;924:197;;;;;;:::o;288:144::-;348:7;373;;;392;;;;384:32;;;;;-1:-1:-1;;;;;384:32:69;;;;;;;;;;;;;;;;;;;;;;;;;;;31126:662:10;31235:7;;;;;;639:35;31263:16;;31255:25;;;;;;31340:6;-1:-1:-1;;;31320:6:10;:16;31319:27;;;;;;;;31304:42;;1034:35;31354:4;:22;31350:106;;;31393:16;31404:4;31393:10;:16::i;:::-;31383:26;;31350:106;;;31435:16;31446:4;31435:10;:16::i;:::-;31425:26;;31350:106;31506:5;31486:25;;31497:5;31487:15;;:7;:15;31486:25;;;;;;;;31460:51;;1115:35;31519:15;:33;31515:270;;;31567:27;31578:15;31567:10;:27::i;:::-;390:3;31559:51;;;;;;31515:270;31644:42;31670:15;31644:25;:42::i;:::-;31626:60;-1:-1:-1;31699:69:10;31710:46;390:3;31730:25;;;31710:46;;;;;31626:60;31699:10;:69::i;:::-;31770:9;31691:89;;;;31515:270;31126:662;;;;;;;;;;;:::o;56924:209::-;56998:6;;;;57022:8;;;57018:44;;57039:23;57055:2;57059;57039:15;:23::i;:::-;57032:30;;;;;;57018:44;57089:23;57105:2;57109;57089:15;:23::i;:::-;57066:46;;;;57124:1;57127;57116:13;;;;56924:209;;;;;;;;:::o;38641:2750::-;38695:7;;;;;38777:34;38772:39;;38768:155;;38825:34;38818:41;;;;;38884:34;-1:-1:-1;;;38869:11:10;;38868:50;38864:54;;38768:155;38950:34;38945:39;;38941:155;;38998:34;38991:41;;;;;39057:34;-1:-1:-1;;;39042:11:10;;39041:50;39037:54;;38941:155;39123:34;39118:39;;39114:155;;39171:34;39164:41;;;;;39230:34;-1:-1:-1;;;39215:11:10;;39214:50;39210:54;;39114:155;39296:34;39291:39;;39287:155;;39344:34;39337:41;;;;;39403:34;-1:-1:-1;;;39388:11:10;;39387:50;39383:54;;39287:155;39469:34;39464:39;;39460:155;;39517:34;39510:41;;;;;39576:34;-1:-1:-1;;;39561:11:10;;39560:50;39556:54;;39460:155;39642:34;39637:39;;39633:155;;39690:34;39683:41;;;;;39749:34;-1:-1:-1;;;39734:11:10;;39733:50;39729:54;;39633:155;39815:34;39810:39;;39806:155;;39863:34;39856:41;;;;;39922:34;-1:-1:-1;;;39907:11:10;;39906:50;39902:54;;39806:155;39988:34;39983:39;;39979:155;;40036:34;40029:41;;;;;40095:34;-1:-1:-1;;;40080:11:10;;40079:50;40075:54;;39979:155;-1:-1:-1;;40161:11:10;;;-1:-1:-1;40161:11:10;;-1:-1:-1;;;;40181:5:10;;;40180:17;;-1:-1:-1;;;;40214:39:10;;;40209:45;;40208:85;40201:92;;;;;-1:-1:-1;;;40302:5:10;;;40301:17;;-1:-1:-1;40408:35:10;40364;:39;;;40359:45;;40358:85;40351:92;;;;;-1:-1:-1;;;40452:5:10;;;40451:17;;-1:-1:-1;40558:35:10;40514;:39;;;40509:45;;40508:85;40501:92;;;;;-1:-1:-1;;;40602:5:10;;;40601:17;;-1:-1:-1;40708:35:10;40664;:39;;;40659:45;;40658:85;40651:92;;;;;-1:-1:-1;;;40752:5:10;;;40751:17;;-1:-1:-1;40858:35:10;40814;:39;;;40809:45;;40808:85;40801:92;;;;;-1:-1:-1;;;40902:5:10;;;40901:17;;-1:-1:-1;41008:35:10;40964;:39;;;40959:45;;40958:85;40951:92;;;;;-1:-1:-1;;;41052:5:10;;;41051:17;;-1:-1:-1;41158:35:10;41114;:39;;;41109:45;;41108:85;41101:92;;;;;-1:-1:-1;;;41202:5:10;;;41201:17;;-1:-1:-1;41308:35:10;41264;:39;;;41259:45;;41258:85;41251:92;;;;;38641:2750;-1:-1:-1;;;;;38641:2750:10:o;57666:124::-;57731:7;57784:1;57779:2;:6;57774:2;:11;57767:2;57762;:7;;;;;;;;57761:25;;;;;;;;57756:2;57751;:7;;;;;;;;:35;;57666:124;-1:-1:-1;;;57666:124:10:o;31943:641::-;31997:7;;;;-1:-1:-1;;;32119:12:10;;32115:119;;32152:22;-1:-1:-1;;;32162:1:10;:11;;32152:9;:22::i;:::-;32179:11;;;;;;;;;;;-1:-1:-1;;;32214:15:10;;-1:-1:-1;32138:36:10;-1:-1:-1;32115:119:10;-1:-1:-1;;;32327:1:10;:11;32323:207;;;-1:-1:-1;390:3:10;32345:181;32379:1;32375;:5;;;32345:181;;;-1:-1:-1;;;32398:5:10;;;32397:17;;-1:-1:-1;;;;32441:12:10;;32437:84;;32462:7;;;;;;32500:14;-1:-1:-1;;32508:5:10;;32500:14;;;32493:21;;;;;32437:84;-1:-1:-1;;32382:3:10;32345:181;;;859:33;780;32542:19;;32541:39;32534:46;;31943:641;;;;;;;:::o;34279:3677::-;34352:7;34365:10;34384:11;34378:2;34365:15;;34398:1;34384:15;;34422:10;34409:23;;34415:2;34410;:7;34409:23;;;;;34404:28;;34443:2;34448:33;34443:38;34436:45;;;;34529:10;34516:23;;34522:2;34517;:7;34516:23;;;;;34511:28;;34550:2;34555:33;34550:38;34543:45;;;;34636:10;34623:23;;34629:2;34624;:7;34623:23;;;;;34618:28;;34657:2;34662:33;34657:38;34650:45;;;;34743:10;34730:23;;34736:2;34731;:7;34730:23;;;;;34725:28;;34764:2;34769:33;34764:38;34757:45;;;;34850:10;34837:23;;34843:2;34838;:7;34837:23;;;;;34832:28;;34871:2;34876:33;34871:38;34864:45;;;;34957:10;34944:23;;34950:2;34945;:7;34944:23;;;;;34939:28;;34978:2;34983:33;34978:38;34971:45;;;;35064:10;35051:23;;35057:2;35052;:7;35051:23;;;;;35046:28;;35085:2;35090:33;35085:38;35078:45;;;;35171:10;35158:23;;35164:2;35159;:7;35158:23;;;;;35153:28;;35192:2;35197:33;35192:38;35185:45;;;;35278:10;35265:23;;35271:2;35266;:7;35265:23;;;;;35260:28;;35299:2;35304:33;35299:38;35292:45;;;;35385:10;35372:23;;35378:2;35373;:7;35372:23;;;;;35367:28;;35406:2;35411:33;35406:38;35399:45;;;;35492:10;35479:23;;35485:2;35480;:7;35479:23;;;;;35474:28;;35513:2;35518:33;35513:38;35506:45;;;;35599:10;35586:23;;35592:2;35587;:7;35586:23;;;;;35581:28;;35620:2;35625:33;35620:38;35613:45;;;;35706:10;35693:23;;35699:2;35694;:7;35693:23;;;;;35688:28;;35727:2;35732:33;35727:38;35720:45;;;;35813:10;35800:23;;35806:2;35801;:7;35800:23;;;;;35795:28;;35834:2;35839:33;35834:38;35827:45;;;;35920:10;35907:23;;35913:2;35908;:7;35907:23;;;;;35902:28;;35941:2;35946:33;35941:38;35934:45;;;;36027:10;36014:23;;36020:2;36015;:7;36014:23;;;;;36009:28;;36048:2;36053:33;36048:38;36041:45;;;;36134:10;36121:23;;36127:2;36122;:7;36121:23;;;;;36116:28;;36155:2;36160:33;36155:38;36148:45;;;;36241:10;36228:23;;36234:2;36229;:7;36228:23;;;;;36223:28;;36262:2;36267:33;36262:38;36255:45;;;;36348:10;36335:23;;36341:2;36336;:7;36335:23;;;;;36330:28;;36369:2;36374:33;36369:38;36362:45;;;;36455:10;36442:23;;36448:2;36443;:7;36442:23;;;;;36437:28;;36476:2;36481:33;36476:38;36469:45;;;;36562:10;36549:23;;36555:2;36550;:7;36549:23;;;;;36544:28;;36583:2;36588:33;36583:38;36576:45;;;;36669:10;36656:23;;36662:2;36657;:7;36656:23;;;;;36651:28;;36690:2;36695:33;36690:38;36683:45;;;;36776:10;36763:23;;36769:2;36764;:7;36763:23;;;;;36758:28;;36797:2;36802:33;36797:38;36790:45;;;;36883:10;36870:23;;36876:2;36871;:7;36870:23;;;;;36865:28;;36904:2;36909:33;36904:38;36897:45;;;;36990:10;36977:23;;36983:2;36978;:7;36977:23;;;;;36972:28;;37011:2;37016:33;37011:38;37004:45;;;;37097:10;37084:23;;37090:2;37085;:7;37084:23;;;;;37079:28;;37118:2;37123:33;37118:38;37111:45;;;;37204:10;37191:23;;37197:2;37192;:7;37191:23;;;;;37186:28;;37225:2;37230:33;37225:38;37218:45;;;;37311:10;37298:23;;37304:2;37299;:7;37298:23;;;;;37293:28;;37332:2;37337:33;37332:38;37325:45;;;;37418:10;37405:23;;37411:2;37406;:7;37405:23;;;;;37400:28;;37439:2;37444:33;37439:38;37432:45;;;;37525:10;37512:23;;37518:2;37513;:7;37512:23;;;;;37507:28;;37546:2;37551:33;37546:38;37539:45;;;;37632:10;37619:23;;37625:2;37620;:7;37619:23;;;;;37614:28;;37653:2;37658:33;37653:38;37646:45;;;;37739:10;37726:23;;37732:2;37727;:7;37726:23;;;;;37721:28;;37760:2;37765:33;37760:38;37753:45;;;;37891:10;37884:17;;256:1;37884:17;;;;37878:2;37842:33;37836:3;:39;;;;;;;;:44;:66;;34279:3677;-1:-1:-1;;;;;34279:3677:10:o;55947:451::-;56085:6;56093;56143:9;56181;56248;56280;56118:21;56130:3;56135;56118:11;:21::i;:::-;56105:34;;-1:-1:-1;56105:34:10;-1:-1:-1;56174:3:10;56155:16;:3;-1:-1:-1;;;56155:16:10;:7;:16;:::i;:::-;:22;;;;;;;;56143:34;;1034:35;56193:1;:19;:51;;56231:13;56242:1;56231:10;:13::i;:::-;56193:51;;;56215:13;56226:1;56215:10;:13::i;:::-;56181:63;-1:-1:-1;56273:3:10;56260:10;56181:63;56266:3;56260:10;:5;:10;:::i;:::-;:16;;;;;;;;56248:28;;56292:11;:44;;56322:14;56334:1;56322:11;:14::i;:::-;56292:44;;;56306:13;56317:1;56306:10;:13::i;:::-;56280:56;-1:-1:-1;56347:47:10;56365:10;56280:56;56371:3;56365:10;:5;:10;:::i;:::-;56377:16;:3;-1:-1:-1;;;56377:16:10;:7;:16;:::i;:::-;56347:17;:47::i;:::-;56340:54;;;;55947:451;;;;;;;;;;;;:::o;33389:355::-;33459:5;346:2;390:3;33459:5;33527:114;33543:2;33534:11;;:2;33539:1;33534:6;:11;;;33527:114;;;33576:1;33564:13;33565:7;;;33564:13;;;-1:-1:-1;33606:2:10;33586:11;:16;;;;;;;;;;;;:22;33582:54;;33615:3;33610:8;;33582:54;;;33633:3;33628:8;;33582:54;33527:114;;;33668:2;33649:11;:15;;;;;;;;;;;;:21;33645:36;;33679:2;33672:9;;;;33645:36;33708:2;33689:11;:15;;;;;;;;;;;;:21;33685:36;;33719:2;33712:9;;;;42031:3074;42085:7;42430:18;-1:-1:-1;;;42153:38:10;;;42231:5;;;42230:17;;;42315:5;;;42314:17;;;42399:5;;;42398:17;;;42426:22;;;42262:18;42258:22;;;42346:18;42342:22;;;;42335:29;42419;;42153:38;;42483:5;;;42482:17;42478:21;;42510:1;42514:18;42510:22;42503:29;;;;-1:-1:-1;;;42571:1:10;42567;:5;42566:17;;;;;;;;42562:21;;42594:1;42598:18;42594:22;42587:29;;;;-1:-1:-1;;;42655:1:10;42651;:5;42650:17;;;;;;;;42646:21;;42678:1;42682:18;42678:22;42671:29;;;;-1:-1:-1;;;42739:1:10;42735;:5;42734:17;;;;;;;;42730:21;;42762:1;42766:18;42762:22;42755:29;;;;-1:-1:-1;;;42823:1:10;42819;:5;42818:17;;;;;;;;42814:21;;42846:1;42850:18;42846:22;42839:29;;;;-1:-1:-1;;;42907:1:10;42903;:5;42902:17;;;;;;;;42898:21;;42930:1;42934:18;42930:22;42923:29;;;;-1:-1:-1;;;42991:1:10;42987;:5;42986:17;;;;;;;;42982:21;;43014:1;43018:18;43014:22;43007:29;;;;-1:-1:-1;;;43075:1:10;43071;:5;43070:17;;;;;;;;43066:21;;43098:1;43102:18;43098:22;43091:29;;;;-1:-1:-1;;;43159:1:10;43155;:5;43154:17;;;;;;;;43150:21;;43182:1;43186:18;43182:22;43175:29;;;;-1:-1:-1;;;43243:1:10;43239;:5;43238:17;;;;;;;;43234:21;;43266:1;43270:18;43266:22;43259:29;;;;-1:-1:-1;;;43327:1:10;43323;:5;43322:17;;;;;;;;43318:21;;43350:1;43354:18;43350:22;43343:29;;;;-1:-1:-1;;;43411:1:10;43407;:5;43406:17;;;;;;;;43402:21;;43434:1;43438:18;43434:22;43427:29;;;;-1:-1:-1;;;43495:1:10;43491;:5;43490:17;;;;;;;;43486:21;;43518:1;43522:18;43518:22;43511:29;;;;-1:-1:-1;;;43579:1:10;43575;:5;43574:17;;;;;;;;43570:21;;43602:1;43606:18;43602:22;43595:29;;;;-1:-1:-1;;;43663:1:10;43659;:5;43658:17;;;;;;;;43654:21;;43686:1;43690:18;43686:22;43679:29;;;;-1:-1:-1;;;43747:1:10;43743;:5;43742:17;;;;;;;43834:18;43742:17;;;43763:29;;;43828:24;:28;;-1:-1:-1;;;43828:38:10;;43742:17;-1:-1:-1;43930:35:10;43926:39;;43925:46;43921:139;;44025:35;43986;43980:41;;43979:81;43973:87;;43921:139;44097:35;44093:39;;44092:46;44088:139;;44192:35;44153;44147:41;;44146:81;44140:87;;44088:139;44264:35;44260:39;;44259:46;44255:139;;44359:35;44320;44314:41;;44313:81;44307:87;;44255:139;-1:-1:-1;;;44427:39:10;;44426:46;44422:139;;44526:35;44487;44481:41;;44480:81;44474:87;;44422:139;-1:-1:-1;;;44594:39:10;;44593:46;44589:139;;44693:35;44654;44648:41;;44647:81;44641:87;;44589:139;44765:35;44761:39;;44760:46;44756:139;;44860:35;44821;44815:41;;44814:81;44808:87;;44756:139;44932:35;44928:39;;44927:46;44923:139;;45027:35;44988;44982:41;;44981:81;44975:87;;44923:139;-1:-1:-1;45098:3:10;;42031:3074;-1:-1:-1;;;42031:3074:10:o;32695:348::-;32749:5;;;32787:3;32782:8;;32778:247;;;32824:49;32836:1;32831:2;:6;32824:49;;;32845:8;;;;;32852:1;32859:8;;;;;32824:49;;;32778:247;;;-1:-1:-1;32930:3:10;32915:106;32939:1;32935;:5;;;32915:106;;;32968:8;;;;;32961:16;;32957:59;;32986:8;;;;;;;;;33001;;;;32957:59;32942:7;;;;;;32915:106;;1813:7651;3886:36;3880:2;3868:54;3944:36;3938:2;3926:54;4002:36;3996:2;3984:54;4060:36;4054:2;4042:54;4118:36;4112:2;4100:54;4176:36;4170:2;4158:54;4234:36;4228:2;4216:54;4292:36;4286:2;4274:54;4350:36;4344:2;4332:54;4408:36;4402:2;4390:54;4466:36;4460:2;4448:54;4524:36;4518:2;4506:54;4582:36;4576:2;4564:54;4640:36;4634:2;4622:54;4698:36;4692:2;4680:54;4756:36;4750:2;4738:54;4814:36;4808:2;4796:54;4872:36;4866:2;4854:54;4930:36;4924:2;4912:54;4988:36;4982:2;4970:54;5046:36;5040:2;5028:54;5104:36;5098:2;5086:54;5162:36;5156:2;5144:54;5220:36;5214:2;5202:54;5278:36;5272:2;5260:54;5336:36;5330:2;5318:54;5394:36;5388:2;5376:54;5452:36;5446:2;5434:54;5510:36;5504:2;5492:54;5568:36;5562:2;5550:54;5626:36;5620:2;5608:54;5684:36;5678:2;5666:54;5742:36;5736:2;5724:54;5800:36;5794:2;5782:54;5858:36;5852:2;5840:54;5916:36;5910:2;5898:54;5974:36;5968:2;5956:54;6032:36;6026:2;6014:54;6090:36;6084:2;6072:54;6148:36;6142:2;6130:54;6206:36;6200:2;6188:54;6264:36;6258:2;6246:54;6322:36;6316:2;6304:54;6380:36;6374:2;6362:54;6438:36;6432:2;6420:54;6496:36;6490:2;6478:54;6554:36;6548:2;6536:54;6612:36;6606:2;6594:54;6670:36;6664:2;6652:54;6728:36;6722:2;6710:54;6786:36;6780:2;6768:54;6844:36;6838:2;6826:54;6902:36;6896:2;6884:54;6960:36;6954:2;6942:54;7018:36;7012:2;7000:54;7076:36;7070:2;7058:54;7134:36;7128:2;7116:54;7192:36;7186:2;7174:54;7250:36;7244:2;7232:54;7308:36;7302:2;7290:54;7366:36;7360:2;7348:54;7424:36;7418:2;7406:54;7482:36;7476:2;7464:54;7540:36;7534:2;7522:54;7598:36;7592:2;7580:54;7656:36;7650:2;7638:54;7714:36;7708:2;7696:54;7772:36;7766:2;7754:54;7831:36;7824:3;7812:55;7890:36;7883:3;7871:55;7949:36;7942:3;7930:55;8008:36;8001:3;7989:55;8067:36;8060:3;8048:55;8126:36;8119:3;8107:55;8185:36;8178:3;8166:55;8244:36;8237:3;8225:55;8303:36;8296:3;8284:55;8362:36;8355:3;8343:55;8421:36;8414:3;8402:55;8480:36;8473:3;8461:55;8539:36;8532:3;8520:55;8598:36;8591:3;8579:55;8657:36;8650:3;8638:55;8716:36;8709:3;8697:55;8775:36;8768:3;8756:55;8834:36;8827:3;8815:55;8893:36;8886:3;8874:55;8952:36;8945:3;8933:55;9011:36;9004:3;8992:55;9070:36;9063:3;9051:55;9129:36;9122:3;9110:55;9188:36;9181:3;9169:55;9247:36;9240:3;9228:55;9306:36;9299:3;9287:55;9365:36;9358:3;9346:55;9424:36;3868:11;9417:3;9405:16;;:55;1813:7651::o;9560:7354::-;9618:34;9600:12;:52;;;9674:34;9656:15;:52;9730:34;9712:15;:52;9786:34;9768:15;:52;9842:34;9824:15;:52;9898:34;9880:15;:52;9954:34;9936:15;:52;10010:34;9992:15;:52;10066:34;10048:15;:52;10122:34;10104:15;:52;10179:34;10160:16;:53;10236:34;10217:16;:53;10293:34;10274:16;:53;10350:34;10331:16;:53;10407:34;10388:16;:53;10464:34;10445:16;:53;10521:34;10502:16;:53;10578:34;10559:16;:53;10635:34;10616:16;:53;10692:34;10673:16;:53;10749:34;10730:16;:53;10806:34;10787:16;:53;10863:34;10844:16;:53;10920:34;10901:16;:53;10977:34;10958:16;:53;11034:34;11015:16;:53;11091:34;11072:16;:53;11148:34;11129:16;:53;11205:34;11186:16;:53;11262:34;11243:16;:53;11319:34;11300:16;:53;11376:34;11357:16;:53;11433:34;11414:16;:53;11490:34;11471:16;:53;11547:34;11528:16;:53;11604:34;11585:16;:53;11661:34;11642:16;:53;11718:34;11699:16;:53;11775:34;11756:16;:53;11832:34;11813:16;:53;11889:34;11870:16;:53;11946:34;11927:16;:53;12003:34;11984:16;:53;12060:34;12041:16;:53;12117:34;12098:16;:53;12174:34;12155:16;:53;12231:34;12212:16;:53;12288:34;12269:16;:53;12345:34;12326:16;:53;12402:34;12383:16;:53;12459:34;12440:16;:53;12516:34;12497:16;:53;12573:34;12554:16;:53;12630:34;12611:16;:53;12687:34;12668:16;:53;12744:34;12725:16;:53;12801:34;12782:16;:53;12858:34;12839:16;:53;12915:34;12896:16;:53;12972:34;12953:16;:53;13029:34;13010:16;:53;13086:34;13067:16;:53;13143:34;13124:16;:53;13200:34;13181:16;:53;13257:34;13238:16;:53;13314:34;13295:16;:53;13371:34;13352:16;:53;13428:34;13409:16;:53;13485:34;13466:16;:53;13542:34;13523:16;:53;13599:34;13580:16;:53;13656:34;13637:16;:53;13713:34;13694:16;:53;13770:34;13751:16;:53;13827:34;13808:16;:53;13884:34;13865:16;:53;13941:34;13922:16;:53;13998:34;13979:16;:53;14055:34;14036:16;:53;14112:34;14093:16;:53;14169:34;14150:16;:53;14226:34;14207:16;:53;14283:34;14264:16;:53;14340:34;14321:16;:53;14397:34;14378:16;:53;14454:34;14435:16;:53;14511:34;14492:16;:53;14568:34;14549:16;:53;14625:34;14606:16;:53;14682:34;14663:16;:53;14739:34;14720:16;:53;14796:34;14777:16;:53;14853:34;14834:16;:53;14910:34;14891:16;:53;14967:34;14948:16;:53;15024:34;15005:16;:53;15081:34;15062:16;:53;15138:34;15119:16;:53;15195:34;15176:16;:53;15252:34;15233:16;:53;15310:34;15290:17;:54;15368:34;15348:17;:54;15426:34;15406:17;:54;15484:34;15464:17;:54;15542:34;15522:17;:54;15600:34;15580:17;:54;15658:34;15638:17;:54;15716:34;15696:17;:54;15774:34;15754:17;:54;15832:34;15812:17;:54;15890:34;15870:17;:54;15948:34;15928:17;:54;16006:34;15986:17;:54;16064:34;16044:17;:54;16122:34;16102:17;:54;16180:34;16160:17;:54;16238:34;16218:17;:54;16296:34;16276:17;:54;16354:34;16334:17;:54;16412:34;16392:17;:54;16470:34;16450:17;:54;16528:34;16508:17;:54;16586:34;16566:17;:54;16644:34;16624:17;:54;16702:34;16682:17;:54;16760:34;16740:17;:54;16818:34;16798:17;:54;16876:34;;16869:3;16856:17;;57247:311;57319:6;57327;57369:9;57442;57495;1656:62;57343:2;:19;57339:100;;;57387:18;57381:2;:25;57409:1;57381:29;57369:41;;57421:1;57415:7;;;;;;;;;;;57433:1;57427:7;;;;;;;;;;;57339:100;57454:37;297:7;57463:15;;57480:10;57463:2;57487;57480:6;:10::i;:::-;57454:8;:37::i;:::-;57442:49;297:7;57507:14;;;;-1:-1:-1;57247:311:10;-1:-1:-1;;;;;;57247:311:10:o;56471:363::-;56539:7;56548;56734:9;56767;-1:-1:-1;;;56565:2:10;:13;;:30;;;;;-1:-1:-1;;;56582:2:10;:13;;56565:30;56561:51;;;56605:2;56609;56597:15;;;;;;56561:51;-1:-1:-1;;;56620:2:10;:12;56616:55;;;56659:2;-1:-1:-1;;;56643:2:10;:12;56642:19;;;;;;;;-1:-1:-1;;;56634:37:10;;;;;;56616:55;-1:-1:-1;;;56679:2:10;:12;56675:55;;;-1:-1:-1;;;56727:2:10;-1:-1:-1;;;56711:2:10;:12;56710:19;;;;;;;;56693:37;;;;;;56675:55;56751:2;56746;:7;:17;;56761:2;56746:17;;;56756:2;56746:17;56734:29;-1:-1:-1;56779:22:10;-1:-1:-1;;;56734:29:10;56789:11;;56779:22;56767:34;;56813:7;;;;;;;56822;;;;;56471:363;-1:-1:-1;;;;56471:363:10:o;45508:161::-;45564:7;1259:36;45581:25;;45577:53;;45615:15;45627:2;45615:11;:15::i;:::-;45608:22;;;;45577:53;45663:2;45642:17;45641:24;;;;;;;;;45508:161;-1:-1:-1;;45508:161:10:o;45177:257::-;45232:7;1259:36;45249:25;;45245:53;;45283:15;45295:2;45283:11;:15::i;45245:53::-;1431:36;45306:25;;45302:53;;45340:15;45352:2;45340:11;:15::i;45302:53::-;1517:36;45363:25;;45359:53;;45397:15;45409:2;45397:11;:15::i;51375:4429::-;51431:7;51457:2;51431:7;-1:-1:-1;;;51489:7:10;;;51488:19;;-1:-1:-1;51523:44:10;51518:49;;51511:56;-1:-1:-1;;;51619:7:10;;;51618:19;;-1:-1:-1;51653:44:10;51648:49;;51641:56;-1:-1:-1;;;51749:7:10;;;51748:19;;-1:-1:-1;51783:44:10;51778:49;;51771:56;-1:-1:-1;;;51879:7:10;;;51878:19;;-1:-1:-1;51913:44:10;51908:49;;51901:56;-1:-1:-1;;;52009:7:10;;;52008:19;;-1:-1:-1;52043:44:10;52038:49;;52031:56;-1:-1:-1;;;52139:7:10;;;52138:19;;-1:-1:-1;52173:44:10;52168:49;;52161:56;-1:-1:-1;;;52269:7:10;;;52268:19;;-1:-1:-1;52303:44:10;52298:49;;52291:56;-1:-1:-1;;;52399:7:10;;;52398:19;;-1:-1:-1;52433:44:10;52428:49;;52421:56;-1:-1:-1;;;52529:7:10;;;52528:19;;-1:-1:-1;52563:44:10;52558:49;;52551:56;-1:-1:-1;;;52659:7:10;;;52658:19;;-1:-1:-1;52693:44:10;52688:49;;52681:56;-1:-1:-1;;;52789:7:10;;;52788:19;;-1:-1:-1;52823:44:10;52818:49;;52811:56;-1:-1:-1;;;52919:7:10;;;52918:19;;-1:-1:-1;52953:44:10;52948:49;;52941:56;-1:-1:-1;;;53049:7:10;;;53048:19;;-1:-1:-1;53083:44:10;53078:49;;53071:56;-1:-1:-1;;;53179:7:10;;;53178:19;;-1:-1:-1;53213:44:10;53208:49;;53201:56;-1:-1:-1;;;53309:7:10;;;53308:19;;-1:-1:-1;53343:44:10;53338:49;;53331:56;-1:-1:-1;;;53439:7:10;;;53438:19;;-1:-1:-1;53473:44:10;53468:49;;53461:56;-1:-1:-1;;;53569:7:10;;;53568:19;;-1:-1:-1;53603:44:10;53598:49;;53591:56;-1:-1:-1;;;53699:7:10;;;53698:19;;-1:-1:-1;53733:44:10;53728:49;;53721:56;-1:-1:-1;;;53829:7:10;;;53828:19;;-1:-1:-1;53863:44:10;53858:49;;53851:56;-1:-1:-1;;;53959:7:10;;;53958:19;;-1:-1:-1;53993:44:10;53988:49;;53981:56;-1:-1:-1;;;54089:7:10;;;54088:19;;-1:-1:-1;54123:44:10;54118:49;;54111:56;-1:-1:-1;;;54219:7:10;;;54218:19;;-1:-1:-1;54253:44:10;54248:49;;54241:56;-1:-1:-1;;;54349:7:10;;;54348:19;;-1:-1:-1;54383:44:10;54378:49;;54371:56;-1:-1:-1;;;54479:7:10;;;54478:19;;-1:-1:-1;54513:44:10;54508:49;;54501:56;-1:-1:-1;;;54609:7:10;;;54608:19;;-1:-1:-1;54643:44:10;54638:49;;54631:56;-1:-1:-1;;;54739:7:10;;;54738:19;;-1:-1:-1;54773:44:10;54768:49;;54761:56;-1:-1:-1;;;54869:7:10;;;54868:19;;-1:-1:-1;54903:44:10;54898:49;;54891:56;-1:-1:-1;;;54999:7:10;;;54998:19;;-1:-1:-1;55033:44:10;55028:49;;55021:56;-1:-1:-1;;;55129:7:10;;;55128:19;;-1:-1:-1;55163:44:10;55158:49;;55151:56;-1:-1:-1;;;55259:7:10;;;55258:19;;-1:-1:-1;55293:44:10;55288:49;;55281:56;-1:-1:-1;;;55389:7:10;;;55388:19;;-1:-1:-1;55423:44:10;55418:49;;55411:56;-1:-1:-1;;;55519:7:10;;;55518:19;;-1:-1:-1;55553:44:10;55548:49;;55541:56;-1:-1:-1;;;55694:2:10;55657:34;55541:56;55651:40;:45;:55;;51375:4429;-1:-1:-1;;;;51375:4429:10:o;45837:4454::-;45893:7;45919:2;-1:-1:-1;;;45940:12:10;;;45956:34;45939:51;;46068:7;;;46067:19;;-1:-1:-1;46102:44:10;46097:49;;46090:56;-1:-1:-1;;;46198:7:10;;;46197:19;;-1:-1:-1;46232:44:10;46227:49;;46220:56;;-1:-1:-1;;;46328:7:10;;;46327:19;;-1:-1:-1;46362:44:10;46357:49;;46350:56;-1:-1:-1;;;46458:7:10;;;46457:19;;-1:-1:-1;46492:44:10;46487:49;;46480:56;;-1:-1:-1;;;46588:7:10;;;46587:19;;-1:-1:-1;46622:44:10;46617:49;;46610:56;-1:-1:-1;;;46718:7:10;;;46717:19;;-1:-1:-1;46752:44:10;46747:49;;46740:56;;-1:-1:-1;;;46848:7:10;;;46847:19;;-1:-1:-1;46882:44:10;46877:49;;46870:56;-1:-1:-1;;;46978:7:10;;;46977:19;;-1:-1:-1;47012:44:10;47007:49;;47000:56;;-1:-1:-1;;;47108:7:10;;;47107:19;;-1:-1:-1;47142:44:10;47137:49;;47130:56;-1:-1:-1;;;47238:7:10;;;47237:19;;-1:-1:-1;47272:44:10;47267:49;;47260:56;;-1:-1:-1;;;47368:7:10;;;47367:19;;-1:-1:-1;47402:44:10;47397:49;;47390:56;-1:-1:-1;;;47498:7:10;;;47497:19;;-1:-1:-1;47532:44:10;47527:49;;47520:56;;-1:-1:-1;;;47628:7:10;;;47627:19;;-1:-1:-1;47662:44:10;47657:49;;47650:56;-1:-1:-1;;;47758:7:10;;;47757:19;;-1:-1:-1;47792:44:10;47787:49;;47780:56;;-1:-1:-1;;;47888:7:10;;;47887:19;;-1:-1:-1;47922:44:10;47917:49;;47910:56;-1:-1:-1;;;48018:7:10;;;48017:19;;-1:-1:-1;48052:44:10;48047:49;;48040:56;;-1:-1:-1;;;48148:7:10;;;48147:19;;-1:-1:-1;48182:44:10;48177:49;;48170:56;-1:-1:-1;;;48278:7:10;;;48277:19;;-1:-1:-1;48312:44:10;48307:49;;48300:56;;-1:-1:-1;;;48408:7:10;;;48407:19;;-1:-1:-1;48442:44:10;48437:49;;48430:56;-1:-1:-1;;;48538:7:10;;;48537:19;;-1:-1:-1;48572:44:10;48567:49;;48560:56;;-1:-1:-1;;;48668:7:10;;;48667:19;;-1:-1:-1;48702:44:10;48697:49;;48690:56;-1:-1:-1;;;48798:7:10;;;48797:19;;-1:-1:-1;48832:44:10;48827:49;;48820:56;;-1:-1:-1;;;48928:7:10;;;48927:19;;-1:-1:-1;48962:44:10;48957:49;;48950:56;-1:-1:-1;;;49058:7:10;;;49057:19;;-1:-1:-1;49092:44:10;49087:49;;49080:56;;-1:-1:-1;;;49188:7:10;;;49187:19;;-1:-1:-1;49222:44:10;49217:49;;49210:56;-1:-1:-1;;;49318:7:10;;;49317:19;;-1:-1:-1;49352:44:10;49347:49;;49340:56;;-1:-1:-1;;;49448:7:10;;;49447:19;;-1:-1:-1;49482:44:10;49477:49;;49470:56;-1:-1:-1;;;49578:7:10;;;49577:19;;-1:-1:-1;49612:44:10;49607:49;;49600:56;;-1:-1:-1;;;49708:7:10;;;49707:19;;-1:-1:-1;49742:44:10;49737:49;;49730:56;-1:-1:-1;;;49838:7:10;;;49837:19;;-1:-1:-1;49872:44:10;49867:49;;49860:56;;-1:-1:-1;;;49968:7:10;;;49967:19;;-1:-1:-1;50002:44:10;49997:49;;49990:56;-1:-1:-1;;;50098:7:10;;;50097:19;;-1:-1:-1;50132:44:10;50127:49;;50120:56;;50236:34;50120:56;50230:40;;;45837:4454;-1:-1:-1;;;;45837:4454:10:o;50432:362::-;50488:7;-1:-1:-1;;50513:28:10;;1345:36;50557:23;;;;50596;;;;50662:1;50658:5;;50635:29;50488:7;;50680:12;50557:23;50680:15;;;;;;;;;;-1:-1:-1;50711:12:10;50728:1;50724:5;;50711:19;;;;;;;;;1345:36;50761:5;;;50756:11;50747:5;;;;50742:11;:25;;;;50741:49;;;-1:-1:-1;;;;50432:362:10:o;50935:270::-;50991:7;51004:10;51075;1034:35;51017:2;:20;:54;;51057:14;51068:2;51057:10;:14::i;:::-;51017:54;;;51040:14;51051:2;51040:10;:14::i;:::-;51004:67;;1034:35;51088:2;:20;:54;;51128:14;51139:2;51128:10;:14::i;:::-;51088:54;;;51111:14;51122:2;51111:10;:14::i;:::-;51075:67;;51199:2;-1:-1:-1;;;51182:2:10;-1:-1:-1;;;51166:2:10;:12;51165:19;;;;;;;;51160:2;51155;:7;:29;51154:41;51153:48;;;;;" + }, + "methodIdentifiers": { + "accurateWeightsTest(uint256,uint256)": "e4883121", + "balancedWeights(uint256,uint256,uint256,uint256,uint256)": "a11aa1b4", + "calculateCrossConnectorReturn(uint256,uint32,uint256,uint32,uint256)": "65098bb3", + "calculateCrossReserveReturn(uint256,uint32,uint256,uint32,uint256)": "79c1b450", + "calculateFundCost(uint256,uint256,uint32,uint256)": "1da6bbfb", + "calculateLiquidateReturn(uint256,uint256,uint32,uint256)": "abfd231d", + "calculatePurchaseReturn(uint256,uint256,uint32,uint256)": "29a00e7c", + "calculateSaleReturn(uint256,uint256,uint32,uint256)": "49f9b0f7", + "crossReserveRate(uint256,uint32,uint256,uint32,uint256)": "9d114108", + "crossReserveTargetAmount(uint256,uint32,uint256,uint32,uint256)": "94491fab", + "findPositionInMaxExpArrayTest(uint256)": "a25a34b1", + "floorLog2Test(uint256)": "ce782e08", + "fundCost(uint256,uint256,uint32,uint256)": "ebbb2158", + "fundSupplyAmount(uint256,uint256,uint32,uint256)": "2f55bdb5", + "generalExpTest(uint256,uint8)": "6cab5055", + "generalLogTest(uint256)": "4982d52d", + "init()": "e1c7392a", + "liquidateRate(uint256,uint256,uint32,uint256)": "35b49af4", + "liquidateReserveAmount(uint256,uint256,uint32,uint256)": "8074590a", + "normalizedWeightsTest(uint256,uint256)": "3e75c6ca", + "optimalExpTest(uint256)": "acdee8cb", + "optimalLogTest(uint256)": "3e8a38ab", + "powerTest(uint256,uint256,uint32,uint32)": "8c5ce82a", + "purchaseRate(uint256,uint256,uint32,uint256)": "48d73fed", + "purchaseTargetAmount(uint256,uint256,uint32,uint256)": "f3250fe2", + "roundDivTest(uint256,uint256)": "47d0b686", + "saleRate(uint256,uint256,uint32,uint256)": "f732f1c9", + "saleTargetAmount(uint256,uint256,uint32,uint256)": "76cf0b56", + "version()": "54fd4d50" + } + }, + "userdoc": { + "methods": {} + } + } + }, + "solidity/contracts/helpers/TestSovrynSwapNetwork.sol": { + "ConverterV27OrLowerWithFallback": { + "abi": [ + { + "payable": true, + "stateMutability": "payable", + "type": "fallback" + } + ], + "devdoc": { + "methods": {} + }, + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "6080604052348015600f57600080fd5b50603280601d6000396000f30060806040520000a165627a7a7230582048f6102a582c8f9fff1f9bbfa7670e249983982b4737248649cc5a0f07e16faf0029", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x32 DUP1 PUSH1 0x1D PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE STOP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 0x48 0xf6 LT 0x2a PC 0x2c DUP16 SWAP16 SELFDESTRUCT 0x1f SWAP12 0xbf 0xa7 PUSH8 0xE249983982B4737 0x24 DUP7 0x49 0xcc GAS 0xf SMOD 0xe1 PUSH16 0xAF002900000000000000000000000000 ", + "sourceMap": "798:76:41:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;798:76:41;;;;;;;" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "60806040520000a165627a7a7230582048f6102a582c8f9fff1f9bbfa7670e249983982b4737248649cc5a0f07e16faf0029", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE STOP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 0x48 0xf6 LT 0x2a PC 0x2c DUP16 SWAP16 SELFDESTRUCT 0x1f SWAP12 0xbf 0xa7 PUSH8 0xE249983982B4737 0x24 DUP7 0x49 0xcc GAS 0xf SMOD 0xe1 PUSH16 0xAF002900000000000000000000000000 ", + "sourceMap": "798:76:41:-;;;" + }, + "methodIdentifiers": {} + }, + "userdoc": { + "methods": {} + } + }, + "ConverterV27OrLowerWithoutFallback": { + "abi": [], + "devdoc": { + "methods": {} + }, + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "6080604052348015600f57600080fd5b50603580601d6000396000f3006080604052600080fd00a165627a7a723058201fabf330eaeac588cf9f8d7d48ed60d750a559be392a90196066ab5c431e38920029", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x35 DUP1 PUSH1 0x1D PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 0x1f 0xab RETURN ADDRESS 0xea 0xea 0xc5 DUP9 0xcf SWAP16 DUP14 PUSH30 0x48ED60D750A559BE392A90196066AB5C431E389200290000000000000000 ", + "sourceMap": "750:46:41:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;750:46:41;;;;;;;" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "6080604052600080fd00a165627a7a723058201fabf330eaeac588cf9f8d7d48ed60d750a559be392a90196066ab5c431e38920029", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 0x1f 0xab RETURN ADDRESS 0xea 0xea 0xc5 DUP9 0xcf SWAP16 DUP14 PUSH30 0x48ED60D750A559BE392A90196066AB5C431E389200290000000000000000 ", + "sourceMap": "750:46:41:-;;;;;" + }, + "methodIdentifiers": {} + }, + "userdoc": { + "methods": {} + } + }, + "ConverterV28OrHigherWithFallback": { + "abi": [ + { + "constant": true, + "inputs": [], + "name": "isV28OrHigher", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "payable": true, + "stateMutability": "payable", + "type": "fallback" + } + ], + "devdoc": { + "methods": {} + }, + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "6080604052348015600f57600080fd5b50609a8061001e6000396000f300608060405260043610603e5763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663d260529c81146043575b600080fd5b348015604e57600080fd5b5060556069565b604080519115158252519081900360200190f35b6001905600a165627a7a72305820a8cebff575d5dd85e4baca0197b3aaad5425779935ce6638666d078cc82efd820029", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x9A DUP1 PUSH2 0x1E PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH1 0x3E JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0xD260529C DUP2 EQ PUSH1 0x43 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH1 0x4E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x55 PUSH1 0x69 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH1 0x1 SWAP1 JUMP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 0xa8 0xce 0xbf 0xf5 PUSH22 0xD5DD85E4BACA0197B3AAAD5425779935CE6638666D07 DUP13 0xc8 0x2e REVERT DUP3 STOP 0x29 ", + "sourceMap": "999:165:41:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;999:165:41;;;;;;;" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "608060405260043610603e5763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663d260529c81146043575b600080fd5b348015604e57600080fd5b5060556069565b604080519115158252519081900360200190f35b6001905600a165627a7a72305820a8cebff575d5dd85e4baca0197b3aaad5425779935ce6638666d078cc82efd820029", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH1 0x3E JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0xD260529C DUP2 EQ PUSH1 0x43 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH1 0x4E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x55 PUSH1 0x69 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH1 0x1 SWAP1 JUMP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 0xa8 0xce 0xbf 0xf5 PUSH22 0xD5DD85E4BACA0197B3AAAD5425779935CE6638666D07 DUP13 0xc8 0x2e REVERT DUP3 STOP 0x29 ", + "sourceMap": "999:165:41:-;;;;;;;;;;;;;;;;;;;;1150:8;;;1044:71;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1044:71:41;;;;;;;;;;;;;;;;;;;;;;;1107:4;1044:71;:::o" + }, + "methodIdentifiers": { + "isV28OrHigher()": "d260529c" + } + }, + "userdoc": { + "methods": {} + } + }, + "ConverterV28OrHigherWithoutFallback": { + "abi": [ + { + "constant": true, + "inputs": [], + "name": "isV28OrHigher", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + } + ], + "devdoc": { + "methods": {} + }, + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "6080604052348015600f57600080fd5b50609a8061001e6000396000f300608060405260043610603e5763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663d260529c81146043575b600080fd5b348015604e57600080fd5b5060556069565b604080519115158252519081900360200190f35b6001905600a165627a7a72305820c1ca1bff38144be6e62222d73e6e0a0a0a89c432c118c1f28a2534952344a97d0029", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x9A DUP1 PUSH2 0x1E PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH1 0x3E JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0xD260529C DUP2 EQ PUSH1 0x43 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH1 0x4E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x55 PUSH1 0x69 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH1 0x1 SWAP1 JUMP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 0xc1 0xca SHL SELFDESTRUCT CODESIZE EQ 0x4b 0xe6 0xe6 0x22 0x22 0xd7 RETURNDATACOPY PUSH15 0xA0A0A89C432C118C1F28A25349523 DIFFICULTY 0xa9 PUSH30 0x2900000000000000000000000000000000000000000000000000000000 ", + "sourceMap": "876:121:41:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;876:121:41;;;;;;;" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "608060405260043610603e5763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663d260529c81146043575b600080fd5b348015604e57600080fd5b5060556069565b604080519115158252519081900360200190f35b6001905600a165627a7a72305820c1ca1bff38144be6e62222d73e6e0a0a0a89c432c118c1f28a2534952344a97d0029", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH1 0x3E JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0xD260529C DUP2 EQ PUSH1 0x43 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH1 0x4E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x55 PUSH1 0x69 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH1 0x1 SWAP1 JUMP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 0xc1 0xca SHL SELFDESTRUCT CODESIZE EQ 0x4b 0xe6 0xe6 0x22 0x22 0xd7 RETURNDATACOPY PUSH15 0xA0A0A89C432C118C1F28A25349523 DIFFICULTY 0xa9 PUSH30 0x2900000000000000000000000000000000000000000000000000000000 ", + "sourceMap": "876:121:41:-;;;;;;;;;;;;;;;;;;;;;;;924:71;;8:9:-1;5:2;;;30:1;27;20:12;5:2;924:71:41;;;;;;;;;;;;;;;;;;;;;;;987:4;924:71;:::o" + }, + "methodIdentifiers": { + "isV28OrHigher()": "d260529c" + } + }, + "userdoc": { + "methods": {} + } + }, + "NewConverter": { + "abi": [ + { + "constant": true, + "inputs": [ + { + "name": "_sourceToken", + "type": "address" + }, + { + "name": "_targetToken", + "type": "address" + }, + { + "name": "_amount", + "type": "uint256" + } + ], + "name": "getReturn", + "outputs": [ + { + "name": "", + "type": "uint256" + }, + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "name": "_amount", + "type": "uint256" + }, + { + "name": "_fee", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + } + ], + "devdoc": { + "methods": {} + }, + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b5060405160408061010a83398101604052805160209091015160009190915560015560ca806100406000396000f300608060405260043610603e5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631e1401f881146043575b600080fd5b348015604e57600080fd5b50607773ffffffffffffffffffffffffffffffffffffffff600435811690602435166044356090565b6040805192835260208301919091528051918290030190f35b6000546001549350939150505600a165627a7a72305820f59a5f0499e84fadcd06e28530c74fe29488cdbfd8ab3b949df60f2e7c4958fe0029", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH1 0x40 DUP1 PUSH2 0x10A DUP4 CODECOPY DUP2 ADD PUSH1 0x40 MSTORE DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD MLOAD PUSH1 0x0 SWAP2 SWAP1 SWAP2 SSTORE PUSH1 0x1 SSTORE PUSH1 0xCA DUP1 PUSH2 0x40 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH1 0x3E JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x1E1401F8 DUP2 EQ PUSH1 0x43 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH1 0x4E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x77 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH1 0x90 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB ADD SWAP1 RETURN JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 SLOAD SWAP4 POP SWAP4 SWAP2 POP POP JUMP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 0xf5 SWAP11 0x5f DIV SWAP10 0xe8 0x4f 0xad 0xcd MOD 0xe2 DUP6 ADDRESS 0xc7 0x4f 0xe2 SWAP5 DUP9 0xcd 0xbf 0xd8 0xab EXTCODESIZE SWAP5 SWAP14 0xf6 0xf 0x2e PUSH29 0x4958FE0029000000000000000000000000000000000000000000000000 ", + "sourceMap": "373:375:41:-;;;446:88;8:9:-1;5:2;;;30:1;27;20:12;5:2;446:88:41;;;;;;;;;;;;;;;;;;;500:6;:16;;;;520:3;:10;373:375;;;;;;" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "608060405260043610603e5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631e1401f881146043575b600080fd5b348015604e57600080fd5b50607773ffffffffffffffffffffffffffffffffffffffff600435811690602435166044356090565b6040805192835260208301919091528051918290030190f35b6000546001549350939150505600a165627a7a72305820f59a5f0499e84fadcd06e28530c74fe29488cdbfd8ab3b949df60f2e7c4958fe0029", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH1 0x3E JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x1E1401F8 DUP2 EQ PUSH1 0x43 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH1 0x4E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x77 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH1 0x90 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB ADD SWAP1 RETURN JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 SLOAD SWAP4 POP SWAP4 SWAP2 POP POP JUMP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 0xf5 SWAP11 0x5f DIV SWAP10 0xe8 0x4f 0xad 0xcd MOD 0xe2 DUP6 ADDRESS 0xc7 0x4f 0xe2 SWAP5 DUP9 0xcd 0xbf 0xd8 0xab EXTCODESIZE SWAP5 SWAP14 0xf6 0xf 0x2e PUSH29 0x4958FE0029000000000000000000000000000000000000000000000000 ", + "sourceMap": "373:375:41:-;;;;;;;;;;;;;;;;;;;;;;;537:209;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;537:209:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;657:7;730:6;738:3;;537:209;;;;;;:::o" + }, + "methodIdentifiers": { + "getReturn(address,address,uint256)": "1e1401f8" + } + }, + "userdoc": { + "methods": {} + } + }, + "OldConverter": { + "abi": [ + { + "constant": true, + "inputs": [ + { + "name": "_sourceToken", + "type": "address" + }, + { + "name": "_targetToken", + "type": "address" + }, + { + "name": "_amount", + "type": "uint256" + } + ], + "name": "getReturn", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "name": "_amount", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + } + ], + "devdoc": { + "methods": {} + }, + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b506040516020806100f2833981016040525160005560bf806100336000396000f300608060405260043610603e5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631e1401f881146043575b600080fd5b348015604e57600080fd5b50607773ffffffffffffffffffffffffffffffffffffffff600435811690602435166044356089565b60408051918252519081900360200190f35b60005493925050505600a165627a7a72305820c6573e4c7b6ab6a4aec09194599f94bc00b98e755e2dc8bad25f2a0a020244fc0029", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP1 PUSH2 0xF2 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 MSTORE MLOAD PUSH1 0x0 SSTORE PUSH1 0xBF DUP1 PUSH2 0x33 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH1 0x3E JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x1E1401F8 DUP2 EQ PUSH1 0x43 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH1 0x4E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x77 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH1 0x89 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH1 0x0 SLOAD SWAP4 SWAP3 POP POP POP JUMP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 0xc6 JUMPI RETURNDATACOPY 0x4c PUSH28 0x6AB6A4AEC09194599F94BC00B98E755E2DC8BAD25F2A0A020244FC00 0x29 ", + "sourceMap": "60:311:41:-;;;111:60;8:9:-1;5:2;;;30:1;27;20:12;5:2;111:60:41;;;;;;;;;;;;;151:6;:16;60:311;;;;;;" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "608060405260043610603e5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631e1401f881146043575b600080fd5b348015604e57600080fd5b50607773ffffffffffffffffffffffffffffffffffffffff600435811690602435166044356089565b60408051918252519081900360200190f35b60005493925050505600a165627a7a72305820c6573e4c7b6ab6a4aec09194599f94bc00b98e755e2dc8bad25f2a0a020244fc0029", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH1 0x3E JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x1E1401F8 DUP2 EQ PUSH1 0x43 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH1 0x4E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x77 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH1 0x89 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH1 0x0 SLOAD SWAP4 SWAP3 POP POP POP JUMP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 0xc6 JUMPI RETURNDATACOPY 0x4c PUSH28 0x6AB6A4AEC09194599F94BC00B98E755E2DC8BAD25F2A0A020244FC00 0x29 ", + "sourceMap": "60:311:41:-;;;;;;;;;;;;;;;;;;;;;;;174:195;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;174:195:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;294:7;358:6;174:195;;;;;:::o" + }, + "methodIdentifiers": { + "getReturn(address,address,uint256)": "1e1401f8" + } + }, + "userdoc": { + "methods": {} + } + }, + "TestSovrynSwapNetwork": { + "abi": [ + { + "constant": false, + "inputs": [ + { + "name": "_onlyOwnerCanUpdateRegistry", + "type": "bool" + } + ], + "name": "restrictRegistryUpdate", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_token", + "type": "address" + }, + { + "name": "_register", + "type": "bool" + } + ], + "name": "registerEtherToken", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_converter", + "type": "address" + } + ], + "name": "isV28OrHigherConverterExternal", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_path", + "type": "address[]" + }, + { + "name": "_amount", + "type": "uint256" + } + ], + "name": "getReturnByPath", + "outputs": [ + { + "name": "", + "type": "uint256" + }, + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_path", + "type": "address[]" + }, + { + "name": "_amount", + "type": "uint256" + }, + { + "name": "_minReturn", + "type": "uint256" + }, + { + "name": "_beneficiary", + "type": "address" + }, + { + "name": "_affiliateAccount", + "type": "address" + }, + { + "name": "_affiliateFee", + "type": "uint256" + } + ], + "name": "claimAndConvertFor2", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "onlyOwnerCanUpdateRegistry", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "updateRegistry", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_path", + "type": "address[]" + }, + { + "name": "_amount", + "type": "uint256" + }, + { + "name": "_minReturn", + "type": "uint256" + }, + { + "name": "_affiliateAccount", + "type": "address" + }, + { + "name": "_affiliateFee", + "type": "uint256" + } + ], + "name": "convert2", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": true, + "stateMutability": "payable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "maxAffiliateFee", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_token", + "type": "address" + }, + { + "name": "_to", + "type": "address" + }, + { + "name": "_amount", + "type": "uint256" + } + ], + "name": "withdrawTokens", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "prevRegistry", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getReturnNew", + "outputs": [ + { + "name": "", + "type": "uint256" + }, + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "acceptOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "registry", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_path", + "type": "address[]" + }, + { + "name": "_amount", + "type": "uint256" + } + ], + "name": "rateByPath", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "", + "type": "address" + } + ], + "name": "etherTokens", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_path", + "type": "address[]" + }, + { + "name": "_sovrynSwapX", + "type": "address" + }, + { + "name": "_conversionId", + "type": "uint256" + }, + { + "name": "_minReturn", + "type": "uint256" + }, + { + "name": "_beneficiary", + "type": "address" + } + ], + "name": "completeXConversion", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "owner", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getReturnOld", + "outputs": [ + { + "name": "", + "type": "uint256" + }, + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_path", + "type": "address[]" + }, + { + "name": "_amount", + "type": "uint256" + }, + { + "name": "_minReturn", + "type": "uint256" + }, + { + "name": "_beneficiary", + "type": "address" + }, + { + "name": "_affiliateAccount", + "type": "address" + }, + { + "name": "_affiliateFee", + "type": "uint256" + } + ], + "name": "convertFor2", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": true, + "stateMutability": "payable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_path", + "type": "address[]" + }, + { + "name": "_amount", + "type": "uint256" + }, + { + "name": "_minReturn", + "type": "uint256" + }, + { + "name": "_beneficiary", + "type": "address" + } + ], + "name": "claimAndConvertFor", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "restoreRegistry", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_path", + "type": "address[]" + }, + { + "name": "_amount", + "type": "uint256" + }, + { + "name": "_minReturn", + "type": "uint256" + }, + { + "name": "_beneficiary", + "type": "address" + }, + { + "name": "_affiliateAccount", + "type": "address" + }, + { + "name": "_affiliateFee", + "type": "uint256" + } + ], + "name": "convertByPath", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": true, + "stateMutability": "payable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_path", + "type": "address[]" + }, + { + "name": "_amount", + "type": "uint256" + }, + { + "name": "_minReturn", + "type": "uint256" + }, + { + "name": "_targetBlockchain", + "type": "bytes32" + }, + { + "name": "_targetAccount", + "type": "bytes32" + }, + { + "name": "_conversionId", + "type": "uint256" + } + ], + "name": "xConvert", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": true, + "stateMutability": "payable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_path", + "type": "address[]" + }, + { + "name": "_amount", + "type": "uint256" + }, + { + "name": "_minReturn", + "type": "uint256" + } + ], + "name": "claimAndConvert", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_path", + "type": "address[]" + }, + { + "name": "_amount", + "type": "uint256" + }, + { + "name": "_minReturn", + "type": "uint256" + }, + { + "name": "_beneficiary", + "type": "address" + } + ], + "name": "convertFor", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": true, + "stateMutability": "payable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_path", + "type": "address[]" + }, + { + "name": "_amount", + "type": "uint256" + }, + { + "name": "_minReturn", + "type": "uint256" + }, + { + "name": "_targetBlockchain", + "type": "bytes32" + }, + { + "name": "_targetAccount", + "type": "bytes32" + }, + { + "name": "_conversionId", + "type": "uint256" + }, + { + "name": "_affiliateAccount", + "type": "address" + }, + { + "name": "_affiliateFee", + "type": "uint256" + } + ], + "name": "xConvert2", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": true, + "stateMutability": "payable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "newOwner", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_sourceToken", + "type": "address" + }, + { + "name": "_targetToken", + "type": "address" + } + ], + "name": "conversionPath", + "outputs": [ + { + "name": "", + "type": "address[]" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_path", + "type": "address[]" + }, + { + "name": "_amount", + "type": "uint256" + }, + { + "name": "_minReturn", + "type": "uint256" + }, + { + "name": "_affiliateAccount", + "type": "address" + }, + { + "name": "_affiliateFee", + "type": "uint256" + } + ], + "name": "claimAndConvert2", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_path", + "type": "address[]" + }, + { + "name": "_amount", + "type": "uint256" + }, + { + "name": "_minReturn", + "type": "uint256" + } + ], + "name": "convert", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": true, + "stateMutability": "payable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_maxAffiliateFee", + "type": "uint256" + } + ], + "name": "setMaxAffiliateFee", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "name": "_amount", + "type": "uint256" + }, + { + "name": "_fee", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "_smartToken", + "type": "address" + }, + { + "indexed": true, + "name": "_fromToken", + "type": "address" + }, + { + "indexed": true, + "name": "_toToken", + "type": "address" + }, + { + "indexed": false, + "name": "_fromAmount", + "type": "uint256" + }, + { + "indexed": false, + "name": "_toAmount", + "type": "uint256" + }, + { + "indexed": false, + "name": "_trader", + "type": "address" + } + ], + "name": "Conversion", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "_prevOwner", + "type": "address" + }, + { + "indexed": true, + "name": "_newOwner", + "type": "address" + } + ], + "name": "OwnerUpdate", + "type": "event" + } + ], + "devdoc": { + "methods": { + "acceptOwnership()": { + "details": "used by a new owner to accept an ownership transfer" + }, + "claimAndConvert(address[],uint256,uint256)": { + "details": "deprecated, backward compatibility" + }, + "claimAndConvert2(address[],uint256,uint256,address,uint256)": { + "details": "deprecated, backward compatibility" + }, + "claimAndConvertFor(address[],uint256,uint256,address)": { + "details": "deprecated, backward compatibility" + }, + "claimAndConvertFor2(address[],uint256,uint256,address,address,uint256)": { + "details": "deprecated, backward compatibility" + }, + "completeXConversion(address[],address,uint256,uint256,address)": { + "details": "allows a user to convert a token that was sent from another blockchain into any other token on the SovrynSwapNetwork ideally this transaction is created before the previous conversion is even complete, so so the input amount isn't known at that point - the amount is actually take from the SovrynSwapX contract directly by specifying the conversion id", + "params": { + "_beneficiary": "wallet to receive the conversion result", + "_conversionId": "pre-determined unique (if non zero) id which refers to this conversion", + "_minReturn": "if the conversion results in an amount smaller than the minimum return - it is cancelled, must be nonzero", + "_path": "conversion path", + "_sovrynSwapX": "address of the SovrynSwapX contract for the source token" + }, + "return": "amount of tokens received from the conversion" + }, + "conversionPath(address,address)": { + "details": "returns the conversion path between two tokens in the network note that this method is quite expensive in terms of gas and should generally be called off-chain", + "params": { + "_sourceToken": "source token address", + "_targetToken": "target token address" + }, + "return": "conversion path between the two tokens" + }, + "convert(address[],uint256,uint256)": { + "details": "deprecated, backward compatibility" + }, + "convert2(address[],uint256,uint256,address,uint256)": { + "details": "deprecated, backward compatibility" + }, + "convertByPath(address[],uint256,uint256,address,address,uint256)": { + "details": "converts the token to any other token in the sovrynSwap network by following a predefined conversion path and transfers the result tokens to a target account affiliate account/fee can also be passed in to receive a conversion fee (on top of the liquidity provider fees) note that the network should already have been given allowance of the source token (if not ETH)", + "params": { + "_affiliateAccount": "wallet address to receive the affiliate fee or 0x0 to disable affiliate fee", + "_affiliateFee": "affiliate fee in PPM or 0 to disable affiliate fee", + "_amount": "amount to convert from, in the source token", + "_beneficiary": "account that will receive the conversion result or 0x0 to send the result to the sender account", + "_minReturn": "if the conversion results in an amount smaller than the minimum return - it is cancelled, must be greater than zero", + "_path": "conversion path, see conversion path format above" + }, + "return": "amount of tokens received from the conversion" + }, + "convertFor(address[],uint256,uint256,address)": { + "details": "deprecated, backward compatibility" + }, + "convertFor2(address[],uint256,uint256,address,address,uint256)": { + "details": "deprecated, backward compatibility" + }, + "getReturnByPath(address[],uint256)": { + "details": "deprecated, backward compatibility" + }, + "rateByPath(address[],uint256)": { + "details": "returns the expected target amount of converting a given amount on a given path note that there is no support for circular paths", + "params": { + "_amount": "amount of _path[0] tokens received from the sender", + "_path": "conversion path (see conversion path format above)" + }, + "return": "expected target amount" + }, + "registerEtherToken(address,bool)": { + "details": "allows the owner to register/unregister ether tokens", + "params": { + "_register": "true to register, false to unregister", + "_token": "ether token contract address" + } + }, + "restoreRegistry()": { + "details": "restores the previous contract-registry" + }, + "restrictRegistryUpdate(bool)": { + "details": "restricts the permission to update the contract-registry", + "params": { + "_onlyOwnerCanUpdateRegistry": "indicates whether or not permission is restricted to owner only" + } + }, + "setMaxAffiliateFee(uint256)": { + "details": "allows the owner to update the maximum affiliate-fee", + "params": { + "_maxAffiliateFee": "maximum affiliate-fee" + } + }, + "transferOwnership(address)": { + "details": "allows transferring the contract ownership the new owner still needs to accept the transfer can only be called by the contract owner", + "params": { + "_newOwner": "new contract owner" + } + }, + "updateRegistry()": { + "details": "updates to the new contract-registry" + }, + "withdrawTokens(address,address,uint256)": { + "details": "withdraws tokens held by the contract and sends them to an account can only be called by the owner", + "params": { + "_amount": "amount to withdraw", + "_to": "account to receive the new amount", + "_token": "ERC20 token contract address" + } + }, + "xConvert(address[],uint256,uint256,bytes32,bytes32,uint256)": { + "details": "converts any other token to BNT in the sovrynSwap network by following a predefined conversion path and transfers the result to an account on a different blockchain note that the network should already have been given allowance of the source token (if not ETH)", + "params": { + "_amount": "amount to convert from, in the source token", + "_conversionId": "pre-determined unique (if non zero) id which refers to this transaction", + "_minReturn": "if the conversion results in an amount smaller than the minimum return - it is cancelled, must be greater than zero", + "_path": "conversion path, see conversion path format above", + "_targetAccount": "address/account on the target blockchain to send the BNT to", + "_targetBlockchain": "blockchain BNT will be issued on" + }, + "return": "the amount of BNT received from this conversion" + }, + "xConvert2(address[],uint256,uint256,bytes32,bytes32,uint256,address,uint256)": { + "details": "converts any other token to BNT in the sovrynSwap network by following a predefined conversion path and transfers the result to an account on a different blockchain note that the network should already have been given allowance of the source token (if not ETH)", + "params": { + "_affiliateAccount": "affiliate account", + "_affiliateFee": "affiliate fee in PPM", + "_amount": "amount to convert from, in the source token", + "_conversionId": "pre-determined unique (if non zero) id which refers to this transaction", + "_minReturn": "if the conversion results in an amount smaller than the minimum return - it is cancelled, must be greater than zero", + "_path": "conversion path, see conversion path format above", + "_targetAccount": "address/account on the target blockchain to send the BNT to", + "_targetBlockchain": "blockchain BNT will be issued on" + }, + "return": "the amount of BNT received from this conversion" + } + } + }, + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "608060405260016004556175306005553480156200001c57600080fd5b5060405160408062003aa483398101604052805160209091015160008054600160a060020a0319163317905560018080620000608164010000000062000183810204565b5060028054600160a060020a03909216600160a060020a03199283168117909155600380549092161790555073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee60005260066020527fa2e5aefc6e2cbe2917a296f0fd89c5f915c487c803db1d98eccb43f14012d711805460ff1916600117905581620000e0620001fe565b90815260405190819003602001906000f08015801562000104573d6000803e3d6000fd5b5060078054600160a060020a031916600160a060020a03929092169190911790558181620001316200020e565b9182526020820152604080519182900301906000f08015801562000159573d6000803e3d6000fd5b5060088054600160a060020a031916600160a060020a0392909216919091179055506200021f9050565b600160a060020a0381161515620001fb57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b50565b60405160f280620038a883390190565b60405161010a806200399a83390190565b613679806200022f6000396000f3006080604052600436106101875763ffffffff60e060020a600035041663024c7ec7811461018c57806302ef521e146101a857806303613f39146101ce5780630c8496cc146102035780632978c10e146102735780632fe8a6ad146102fc57806349d10b6414610311578063569706eb146103265780635d732ff2146103895780635e35359e1461039e57806361cd756e146103c8578063699e7546146103f957806379ba50971461040e5780637b103999146104235780637f9c0ecd146104385780638077ccf71461048f57806389f9cc61146104b05780638da5cb5b1461052357806398e9574014610538578063ab6214ce1461054d578063b1e9932b146105b7578063b4a176d314610622578063b77d239b14610637578063c52173de146106a1578063c7ba24bc14610700578063c98fefed1461075e578063cb32564e146107bc578063d4ee1d9014610830578063d734fa1914610845578063e57738e5146108bc578063f2fde38b1461092c578063f3898a971461094d578063f3bc7d2a1461099e575b600080fd5b34801561019857600080fd5b506101a660043515156109b6565b005b3480156101b457600080fd5b506101a6600160a060020a036004351660243515156109fe565b3480156101da57600080fd5b506101ef600160a060020a0360043516610a47565b604080519115158252519081900360200190f35b34801561020f57600080fd5b506040805160206004803580820135838102808601850190965280855261025a953695939460249493850192918291850190849080828437509497505093359450610a589350505050565b6040805192835260208301919091528051918290030190f35b34801561027f57600080fd5b50604080516020600480358082013583810280860185019096528085526102ea9536959394602494938501929182918501908490808284375094975050843595505050602083013592600160a060020a03604082013581169350606082013516915060800135610a70565b60408051918252519081900360200190f35b34801561030857600080fd5b506101ef610a8b565b34801561031d57600080fd5b506101a6610aac565b604080516020600480358082013583810280860185019096528085526102ea9536959394602494938501929182918501908490808284375094975050843595505050602083013592600160a060020a036040820135169250606001359050610d2b565b34801561039557600080fd5b506102ea610d46565b3480156103aa57600080fd5b506101a6600160a060020a0360043581169060243516604435610d4c565b3480156103d457600080fd5b506103dd610d85565b60408051600160a060020a039092168252519081900360200190f35b34801561040557600080fd5b5061025a610d94565b34801561041a57600080fd5b506101a6610db9565b34801561042f57600080fd5b506103dd610e8c565b34801561044457600080fd5b50604080516020600480358082013583810280860185019096528085526102ea953695939460249493850192918291850190849080828437509497505093359450610e9b9350505050565b34801561049b57600080fd5b506101ef600160a060020a03600435166116ca565b3480156104bc57600080fd5b50604080516020600480358082013583810280860185019096528085526102ea9536959394602494938501929182918501908490808284375094975050600160a060020a0385358116965060208601359560408101359550606001351692506116df915050565b34801561052f57600080fd5b506103dd611874565b34801561054457600080fd5b5061025a611883565b604080516020600480358082013583810280860185019096528085526102ea9536959394602494938501929182918501908490808284375094975050843595505050602083013592600160a060020a036040820135811693506060820135169150608001356118a0565b3480156105c357600080fd5b50604080516020600480358082013583810280860185019096528085526102ea953695939460249493850192918291850190849080828437509497505084359550505060208301359260400135600160a060020a031691506118c69050565b34801561062e57600080fd5b506101a66118e0565b604080516020600480358082013583810280860185019096528085526102ea9536959394602494938501929182918501908490808284375094975050843595505050602083013592600160a060020a03604082013581169350606082013516915060800135611919565b604080516020600480358082013583810280860185019096528085526102ea9536959394602494938501929182918501908490808284375094975050843595505050602083013592604081013592506060810135915060800135611b0d565b34801561070c57600080fd5b50604080516020600480358082013583810280860185019096528085526102ea95369593946024949385019291829185019084908082843750949750508435955050506020909201359150611b209050565b604080516020600480358082013583810280860185019096528085526102ea953695939460249493850192918291850190849080828437509497505084359550505060208301359260400135600160a060020a031691506118c69050565b604080516020600480358082013583810280860185019096528085526102ea95369593946024949385019291829185019084908082843750949750508435955050506020830135926040810135925060608101359150608081013590600160a060020a0360a0820135169060c00135611b3a565b34801561083c57600080fd5b506103dd611cd8565b34801561085157600080fd5b5061086c600160a060020a0360043581169060243516611ce7565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156108a8578181015183820152602001610890565b505050509050019250505060405180910390f35b3480156108c857600080fd5b50604080516020600480358082013583810280860185019096528085526102ea9536959394602494938501929182918501908490808284375094975050843595505050602083013592600160a060020a036040820135169250606001359050610d2b565b34801561093857600080fd5b506101a6600160a060020a0360043516611e18565b604080516020600480358082013583810280860185019096528085526102ea95369593946024949385019291829185019084908082843750949750508435955050506020909201359150611b209050565b3480156109aa57600080fd5b506101a6600435611eb5565b6109be611f1d565b60038054911515740100000000000000000000000000000000000000000274ff000000000000000000000000000000000000000019909216919091179055565b610a06611f1d565b81610a1081611f81565b82610a1a81611fe4565b5050600160a060020a03919091166000908152600660205260409020805460ff1916911515919091179055565b6000610a5282612045565b92915050565b600080610a658484610e9b565b946000945092505050565b6000610a80878787878787611919565b979650505050505050565b60035474010000000000000000000000000000000000000000900460ff1681565b60008054600160a060020a0316331480610ae1575060035474010000000000000000000000000000000000000000900460ff16155b1515610b37576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b610b607f436f6e74726163745265676973747279000000000000000000000000000000006120d6565b600254909150600160a060020a03808316911614801590610b895750600160a060020a03811615155b1515610bdf576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e56414c49445f5245474953545259000000000000000000000000604482015290519081900360640190fd5b604080517fbb34534c0000000000000000000000000000000000000000000000000000000081527f436f6e747261637452656769737472790000000000000000000000000000000060048201529051600091600160a060020a0384169163bb34534c9160248082019260209290919082900301818787803b158015610c6357600080fd5b505af1158015610c77573d6000803e3d6000fd5b505050506040513d6020811015610c8d57600080fd5b5051600160a060020a03161415610cee576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e56414c49445f5245474953545259000000000000000000000000604482015290519081900360640190fd5b6002805460038054600160a060020a0380841673ffffffffffffffffffffffffffffffffffffffff19928316179092559091169216919091179055565b6000610d3c86868660008787611919565b9695505050505050565b60055481565b610d54611f1d565b82610d5e81611f81565b82610d6881611f81565b83610d7281611fe4565b610d7d86868661216e565b505050505050565b600354600160a060020a031681565b6008546000908190610db190600160a060020a03168280806121fb565b915091509091565b600154600160a060020a03163314610e1b576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b60015460008054604051600160a060020a0393841693909116917f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91a3600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b600254600160a060020a031681565b600080600080600080600080600080600080610ed67f536f7672796e53776170466f726d756c610000000000000000000000000000006120d6565b94508c9a5060028e51118015610ef157508d51600290066001145b1515610f47576040805160e560020a62461bcd02815260206004820152601060248201527f4552525f494e56414c49445f5041544800000000000000000000000000000000604482015290519081900360640190fd5b600293505b8d518410156116b8578d60028503815181101515610f6657fe5b9060200190602002015192508d60018503815181101515610f8357fe5b9060200190602002015191508d84815181101515610f9d57fe5b90602001906020020151905081600160a060020a0316638da5cb5b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610fe757600080fd5b505af1158015610ffb573d6000803e3d6000fd5b505050506040513d602081101561101157600080fd5b5051955061101f86846122df565b925061102b86826122df565b905081600160a060020a031681600160a060020a0316141561138c57600384108061108257508d6003850381518110151561106257fe5b90602001906020020151600160a060020a031682600160a060020a031614155b156110f45781600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156110c557600080fd5b505af11580156110d9573d6000803e3d6000fd5b505050506040513d60208110156110ef57600080fd5b505198505b85600160a060020a031663d8959512846040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b15801561114f57600080fd5b505af1158015611163573d6000803e3d6000fd5b505050506040513d602081101561117957600080fd5b5051604080517f0e53aae9000000000000000000000000000000000000000000000000000000008152600160a060020a0386811660048301529151929a5090881691630e53aae99160248082019260a0929091908290030181600087803b1580156111e357600080fd5b505af11580156111f7573d6000803e3d6000fd5b505050506040513d60a081101561120d57600080fd5b50602090810151604080517ff3250fe2000000000000000000000000000000000000000000000000000000008152600481018d9052602481018c905263ffffffff83166044820152606481018f90529051919950600160a060020a0388169263f3250fe2926084808401938290030181600087803b15801561128e57600080fd5b505af11580156112a2573d6000803e3d6000fd5b505050506040513d60208110156112b857600080fd5b5051604080517f579cd3ca0000000000000000000000000000000000000000000000000000000081529051919c5061136e91620f42409161136291600160a060020a038b169163579cd3ca9160048083019260209291908290030181600087803b15801561132557600080fd5b505af1158015611339573d6000803e3d6000fd5b505050506040513d602081101561134f57600080fd5b50518e9063ffffffff9081169061234116565b9063ffffffff6123ba16565b9a8b90039a9950611385898c63ffffffff61242816565b98506116ad565b81600160a060020a031683600160a060020a0316141561169b5760038410806113e157508d600385038151811015156113c157fe5b90602001906020020151600160a060020a031682600160a060020a031614155b156114535781600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561142457600080fd5b505af1158015611438573d6000803e3d6000fd5b505050506040513d602081101561144e57600080fd5b505198505b85600160a060020a031663d8959512826040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b1580156114ae57600080fd5b505af11580156114c2573d6000803e3d6000fd5b505050506040513d60208110156114d857600080fd5b5051604080517f0e53aae9000000000000000000000000000000000000000000000000000000008152600160a060020a0384811660048301529151929a5090881691630e53aae99160248082019260a0929091908290030181600087803b15801561154257600080fd5b505af1158015611556573d6000803e3d6000fd5b505050506040513d60a081101561156c57600080fd5b50602090810151604080517f76cf0b56000000000000000000000000000000000000000000000000000000008152600481018d9052602481018c905263ffffffff83166044820152606481018f90529051919950600160a060020a038816926376cf0b56926084808401938290030181600087803b1580156115ed57600080fd5b505af1158015611601573d6000803e3d6000fd5b505050506040513d602081101561161757600080fd5b5051604080517f579cd3ca0000000000000000000000000000000000000000000000000000000081529051919c5061168491620f42409161136291600160a060020a038b169163579cd3ca9160048083019260209291908290030181600087803b15801561132557600080fd5b9a8b90039a9950611385898c63ffffffff61248516565b6116a78684838e6121fb565b909b5099505b600284019350610f4c565b50989c9b505050505050505050505050565b60066020526000908152604090205460ff1681565b60008085600160a060020a031663fc0c546a6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561172057600080fd5b505af1158015611734573d6000803e3d6000fd5b505050506040513d602081101561174a57600080fd5b50518751600160a060020a03909116908890600090811061176757fe5b60209081029091010151600160a060020a0316146117cf576040805160e560020a62461bcd02815260206004820152601860248201527f4552525f494e56414c49445f534f555243455f544f4b454e0000000000000000604482015290519081900360640190fd5b604080517faafd6b76000000000000000000000000000000000000000000000000000000008152600481018790523360248201529051600160a060020a0388169163aafd6b769160448083019260209291908290030181600087803b15801561183757600080fd5b505af115801561184b573d6000803e3d6000fd5b505050506040513d602081101561186157600080fd5b50519050610a8087828686600080611919565b600054600160a060020a031681565b6007546000908190610db190600160a060020a03168280806121fb565b6000846118ac816124e5565b6118ba888888888888611919565b98975050505050505050565b60006118d785858585600080611919565b95945050505050565b6118e8611f1d565b6003546002805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055565b60008060006060600061192a61253d565b600260045588611939816124e5565b60028c5111801561194f57508b51600290066001145b15156119a5576040805160e560020a62461bcd02815260206004820152601060248201527f4552525f494e56414c49445f5041544800000000000000000000000000000000604482015290519081900360640190fd5b6119e08c60008151811015156119b757fe5b906020019060200201518d60018151811015156119d057fe5b906020019060200201518d612597565b60009450600160a060020a0388161515611a4f578615611a4a576040805160e560020a62461bcd02815260206004820152601960248201527f4552525f494e56414c49445f414646494c494154455f46454500000000000000604482015290519081900360640190fd5b611abc565b866000108015611a6157506005548711155b1515611ab7576040805160e560020a62461bcd02815260206004820152601960248201527f4552525f494e56414c49445f414646494c494154455f46454500000000000000604482015290519081900360640190fd5b600194505b339350600160a060020a03891615611ad2578893505b611add8c858761279b565b9250611aec838c8c8b8b612bb2565b9150611af9838386613112565b5060016004559a9950505050505050505050565b6000610a80878787878787600080611b3a565b6000611b328484846000806000611919565b949350505050565b60008060008089611b4a816124e5565b8c518d906000198101908110611b5c57fe5b906020019060200201519350611b917f536f7672796e53776170580000000000000000000000000000000000000000006120d6565b9250611bbc7f424e54546f6b656e0000000000000000000000000000000000000000000000006120d6565b600160a060020a03858116911614611c1e576040805160e560020a62461bcd02815260206004820152601860248201527f4552525f494e56414c49445f5441524745545f544f4b454e0000000000000000604482015290519081900360640190fd5b611c2c8d8d8d308b8b611919565b9150611c398484846131f5565b604080517f427c0374000000000000000000000000000000000000000000000000000000008152600481018c9052602481018b905260448101849052606481018a90529051600160a060020a0385169163427c037491608480830192600092919082900301818387803b158015611caf57600080fd5b505af1158015611cc3573d6000803e3d6000fd5b50939f9e505050505050505050505050505050565b600154600160a060020a031681565b60606000611d147f436f6e76657273696f6e5061746846696e6465720000000000000000000000006120d6565b604080517fa1c421cd000000000000000000000000000000000000000000000000000000008152600160a060020a038781166004830152868116602483015291519293509083169163a1c421cd9160448082019260009290919082900301818387803b158015611d8357600080fd5b505af1158015611d97573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526020811015611dc057600080fd5b810190808051640100000000811115611dd857600080fd5b82016020810184811115611deb57600080fd5b8151856020820283011164010000000082111715611e0857600080fd5b50909550505050505b5092915050565b611e20611f1d565b600054600160a060020a0382811691161415611e86576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f53414d455f4f574e4552000000000000000000000000000000000000604482015290519081900360640190fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b611ebd611f1d565b620f4240811115611f18576040805160e560020a62461bcd02815260206004820152601960248201527f4552525f494e56414c49445f414646494c494154455f46454500000000000000604482015290519081900360640190fd5b600555565b600054600160a060020a03163314611f7f576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b565b600160a060020a0381161515611fe1576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b50565b600160a060020a038116301415611fe1576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f414444524553535f49535f53454c4600000000000000000000000000604482015290519081900360640190fd5b6000806120506135d7565b604080517f69735632384f72486967686572282900000000000000000000000000000000008152815190819003600f018120600482526024820190925260208082018051600160e060020a0316600160e060020a0319909416939093178352815191929091849188611388fa92508280156120cb5750815115155b93505b505050919050565b600254604080517fbb34534c000000000000000000000000000000000000000000000000000000008152600481018490529051600092600160a060020a03169163bb34534c91602480830192602092919082900301818787803b15801561213c57600080fd5b505af1158015612150573d6000803e3d6000fd5b505050506040513d602081101561216657600080fd5b505192915050565b604080517f7472616e7366657228616464726573732c75696e74323536290000000000000081528151908190036019018120600160a060020a03851660248301526044808301859052835180840390910181526064909201909252602081018051600160e060020a0316600160e060020a0319909316929092179091526121f69084906132bc565b505050565b6000806122066135f6565b604080517f67657452657475726e28616464726573732c616464726573732c75696e74323581527f36290000000000000000000000000000000000000000000000000000000000006020808301919091528251918290036022018220600160a060020a03808b16602485015289166044840152606480840189905284518085039091018152608490930184529082018051600160e060020a0316600160e060020a0319909216919091178152815191929184918b5afa8015156122c857600080fd5b505080516020909101519097909650945050505050565b600160a060020a03811660009081526006602052604081205460ff161515612308575080610a52565b61231183612045565b15612331575073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee610a52565b61233a8361334a565b9392505050565b6000808315156123545760009150611e11565b5082820282848281151561236457fe5b041461233a576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b600080808311612414576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f4449564944455f42595f5a45524f0000000000000000000000000000604482015290519081900360640190fd5b828481151561241f57fe5b04949350505050565b60008282018381101561233a576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b6000818310156124df576040805160e560020a62461bcd02815260206004820152600d60248201527f4552525f554e444552464c4f5700000000000000000000000000000000000000604482015290519081900360640190fd5b50900390565b60008111611fe1576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f5a45524f5f56414c5545000000000000000000000000000000000000604482015290519081900360640190fd5b600454600114611f7f576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f5245454e5452414e4359000000000000000000000000000000000000604482015290519081900360640190fd5b60008083600160a060020a0316638da5cb5b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156125d857600080fd5b505af11580156125ec573d6000803e3d6000fd5b505050506040513d602081101561260257600080fd5b5051915061260f82612045565b905060003411156126dd57348314612671576040805160e560020a62461bcd02815260206004820152601760248201527f4552525f4554485f414d4f554e545f4d49534d41544348000000000000000000604482015290519081900360640190fd5b8015156126d8576126818261334a565b600160a060020a031663d0e30db0346040518263ffffffff1660e060020a0281526004016000604051808303818588803b1580156126be57600080fd5b505af11580156126d2573d6000803e3d6000fd5b50505050505b612794565b600160a060020a03851660009081526006602052604090205460ff16156127765761270a85333086613497565b80156126d85784600160a060020a0316632e1a7d4d846040518263ffffffff1660e060020a02815260040180828152602001915050600060405180830381600087803b15801561275957600080fd5b505af115801561276d573d6000803e3d6000fd5b50505050612794565b8015612788576126d885338486613497565b61279485333086613497565b5050505050565b60608060008060008060008060006127b1613611565b8c51600290046040519080825280602002602001820160405280156127f057816020015b6127dd613611565b8152602001906001900390816127d55790505b509850600097506128207f424e54546f6b656e0000000000000000000000000000000000000000000000006120d6565b9650600095505b60018d51038610156129bb578c8660010181518110151561284457fe5b90602001906020020151945084600160a060020a0316638da5cb5b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561288e57600080fd5b505af11580156128a2573d6000803e3d6000fd5b505050506040513d60208110156128b857600080fd5b50518d519094508d90600288019081106128ce57fe5b9060200190602002015192508a80156128e5575087155b8015612902575086600160a060020a031683600160a060020a0316145b9150811561290f57600197505b60e06040519081016040528085600160a060020a0316815260200186600160a060020a031681526020018e8881518110151561294757fe5b90602001906020020151600160a060020a0316815260200184600160a060020a031681526020016000600160a060020a0316815260200161298786612045565b1515815283151560209091015289600288048151811015156129a557fe5b6020908102909101015260029590950194612827565b8860008151811015156129ca57fe5b6020908102909101810151604080820151600160a060020a0316600090815260069093529091205490915060ff1615612a40578060a0015115612a265773eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6040820152612a40565b8051612a319061334a565b600160a060020a031660408201525b885189906000198101908110612a5257fe5b60209081029091018101516060810151600160a060020a03166000908152600690925260409091205490915060ff1615612ac9578060a0015115612aaf5773eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6060820152612ac9565b8051612aba9061334a565b600160a060020a031660608201525b600095505b8851861015612ba1578886815181101515612ae557fe5b9060200190602002015190508060a0015115612b8f578060c0015115612b1057306080820152612b8a565b6001895103861415612b3057600160a060020a038c166080820152612b8a565b8886600101815181101515612b4157fe5b9060200190602002015160a0015115612b83578886600101815181101515612b6557fe5b6020908102909101015151600160a060020a03166080820152612b8a565b3060808201525b612b96565b3060808201525b600190950194612ace565b50969b9a5050505050505050505050565b600080600080612bc0613611565b6000899350600092505b8a518310156130ab578a83815181101515612be157fe5b9060200190602002015191508160a0015115612c72578215801590612c2e57508a5130908c906000198601908110612c1557fe5b9060200190602002015160800151600160a060020a0316145b8015612c555750604080830151600160a060020a031660009081526006602052205460ff16155b15612c6d57612c6d826040015183600001518661216e565b612ca8565b8160200151600160a060020a03168260400151600160a060020a0316141515612ca857612ca882604001518360000151866131f5565b8160a001511515612d6b578151604080840151606085015182517f5e5144eb000000000000000000000000000000000000000000000000000000008152600160a060020a039283166004820152908216602482015260448101889052600160648201529151921691635e5144eb916084808201926020929091908290030181600087803b158015612d3857600080fd5b505af1158015612d4c573d6000803e3d6000fd5b505050506040513d6020811015612d6257600080fd5b50519450612f08565b604080830151600160a060020a031660009081526006602052205460ff1615612e495781516040808401516060850151608086015183517fe8dc12ff000000000000000000000000000000000000000000000000000000008152600160a060020a03938416600482015291831660248301526044820189905233606483015282166084820152915192169163e8dc12ff91349160a480830192602092919082900301818588803b158015612e1e57600080fd5b505af1158015612e32573d6000803e3d6000fd5b50505050506040513d6020811015612d6257600080fd5b81516040808401516060850151608086015183517fe8dc12ff000000000000000000000000000000000000000000000000000000008152600160a060020a03938416600482015291831660248301526044820189905233606483015282166084820152915192169163e8dc12ff9160a4808201926020929091908290030181600087803b158015612ed957600080fd5b505af1158015612eed573d6000803e3d6000fd5b505050506040513d6020811015612f0357600080fd5b505194505b8160c001511561301a57612f29620f4240611362878a63ffffffff61234116565b90508160600151600160a060020a031663a9059cbb89836040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b158015612f9257600080fd5b505af1158015612fa6573d6000803e3d6000fd5b505050506040513d6020811015612fbc57600080fd5b50511515613014576040805160e560020a62461bcd02815260206004820152601760248201527f4552525f4645455f5452414e534645525f4641494c4544000000000000000000604482015290519081900360640190fd5b80850394505b8160600151600160a060020a03168260400151600160a060020a03168360200151600160a060020a03167f7154b38b5dd31bb3122436a96d4e09aba5b323ae1fd580025fab55074334c0958789336040518084815260200183815260200182600160a060020a0316600160a060020a03168152602001935050505060405180910390a4849350600190920191612bca565b88851015613103576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f52455455524e5f544f4f5f4c4f570000000000000000000000000000604482015290519081900360640190fd5b50929998505050505050505050565b61311a613611565b600084600186510381518110151561312e57fe5b602090810290910101516080810151909250600160a060020a0316301461315457612794565b506060810151600160a060020a03811660009081526006602052604090205460ff16156131ea5760a08201511561318757fe5b80600160a060020a031663205c287884866040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050600060405180830381600087803b15801561275957600080fd5b61279481848661216e565b604080517fdd62ed3e000000000000000000000000000000000000000000000000000000008152306004820152600160a060020a038481166024830152915160009286169163dd62ed3e91604480830192602092919082900301818787803b15801561326057600080fd5b505af1158015613274573d6000803e3d6000fd5b505050506040513d602081101561328a57600080fd5b50519050818110156132b65760008111156132ab576132ab8484600061354f565b6132b684848461354f565b50505050565b6132c46135d7565b602060405190810160405280600181525090506020818351602085016000875af18015156132f157600080fd5b50805115156121f6576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f5452414e534645525f4641494c454400000000000000000000000000604482015290519081900360640190fd5b60008060008084600160a060020a03166371f52bf36040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561338e57600080fd5b505af11580156133a2573d6000803e3d6000fd5b505050506040513d60208110156133b857600080fd5b505161ffff169250600091505b828210156134795784600160a060020a03166319b64015836040518263ffffffff1660e060020a02815260040180828152602001915050602060405180830381600087803b15801561341657600080fd5b505af115801561342a573d6000803e3d6000fd5b505050506040513d602081101561344057600080fd5b5051600160a060020a03811660009081526006602052604090205490915060ff161561346e578093506120ce565b6001909101906133c5565b5073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee949350505050565b604080517f7472616e7366657246726f6d28616464726573732c616464726573732c75696e81527f74323536290000000000000000000000000000000000000000000000000000006020808301919091528251918290036025018220600160a060020a03808816602485015286166044840152606480840186905284518085039091018152608490930190935281018051600160e060020a0316600160e060020a0319909316929092179091526132b69085906132bc565b604080517f617070726f766528616464726573732c75696e7432353629000000000000000081528151908190036018018120600160a060020a03851660248301526044808301859052835180840390910181526064909201909252602081018051600160e060020a0316600160e060020a0319909316929092179091526121f69084906132bc565b6020604051908101604052806001906020820280388339509192915050565b60408051808201825290600290829080388339509192915050565b6040805160e081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810191909152905600a165627a7a72305820c663caccd0f92dedd66f87b5b8167fe490551f2bec97adf4d32a21482d8a8ac00029608060405234801561001057600080fd5b506040516020806100f2833981016040525160005560bf806100336000396000f300608060405260043610603e5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631e1401f881146043575b600080fd5b348015604e57600080fd5b50607773ffffffffffffffffffffffffffffffffffffffff600435811690602435166044356089565b60408051918252519081900360200190f35b60005493925050505600a165627a7a72305820c6573e4c7b6ab6a4aec09194599f94bc00b98e755e2dc8bad25f2a0a020244fc0029608060405234801561001057600080fd5b5060405160408061010a83398101604052805160209091015160009190915560015560ca806100406000396000f300608060405260043610603e5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631e1401f881146043575b600080fd5b348015604e57600080fd5b50607773ffffffffffffffffffffffffffffffffffffffff600435811690602435166044356090565b6040805192835260208301919091528051918290030190f35b6000546001549350939150505600a165627a7a72305820f59a5f0499e84fadcd06e28530c74fe29488cdbfd8ab3b949df60f2e7c4958fe0029", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x1 PUSH1 0x4 SSTORE PUSH2 0x7530 PUSH1 0x5 SSTORE CALLVALUE DUP1 ISZERO PUSH3 0x1C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH1 0x40 DUP1 PUSH3 0x3AA4 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 MSTORE DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD MLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND CALLER OR SWAP1 SSTORE PUSH1 0x1 DUP1 DUP1 PUSH3 0x60 DUP2 PUSH5 0x100000000 PUSH3 0x183 DUP2 MUL DIV JUMP JUMPDEST POP PUSH1 0x2 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT SWAP3 DUP4 AND DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x3 DUP1 SLOAD SWAP1 SWAP3 AND OR SWAP1 SSTORE POP PUSH20 0xEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE PUSH1 0x0 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH32 0xA2E5AEFC6E2CBE2917A296F0FD89C5F915C487C803DB1D98ECCB43F14012D711 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE DUP2 PUSH3 0xE0 PUSH3 0x1FE JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 PUSH1 0x0 CREATE DUP1 ISZERO DUP1 ISZERO PUSH3 0x104 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH1 0x7 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE DUP2 DUP2 PUSH3 0x131 PUSH3 0x20E JUMP JUMPDEST SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB ADD SWAP1 PUSH1 0x0 CREATE DUP1 ISZERO DUP1 ISZERO PUSH3 0x159 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH1 0x8 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE POP PUSH3 0x21F SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH3 0x1FB JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0xF2 DUP1 PUSH3 0x38A8 DUP4 CODECOPY ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x10A DUP1 PUSH3 0x399A DUP4 CODECOPY ADD SWAP1 JUMP JUMPDEST PUSH2 0x3679 DUP1 PUSH3 0x22F PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x187 JUMPI PUSH4 0xFFFFFFFF PUSH1 0xE0 PUSH1 0x2 EXP PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x24C7EC7 DUP2 EQ PUSH2 0x18C JUMPI DUP1 PUSH4 0x2EF521E EQ PUSH2 0x1A8 JUMPI DUP1 PUSH4 0x3613F39 EQ PUSH2 0x1CE JUMPI DUP1 PUSH4 0xC8496CC EQ PUSH2 0x203 JUMPI DUP1 PUSH4 0x2978C10E EQ PUSH2 0x273 JUMPI DUP1 PUSH4 0x2FE8A6AD EQ PUSH2 0x2FC JUMPI DUP1 PUSH4 0x49D10B64 EQ PUSH2 0x311 JUMPI DUP1 PUSH4 0x569706EB EQ PUSH2 0x326 JUMPI DUP1 PUSH4 0x5D732FF2 EQ PUSH2 0x389 JUMPI DUP1 PUSH4 0x5E35359E EQ PUSH2 0x39E JUMPI DUP1 PUSH4 0x61CD756E EQ PUSH2 0x3C8 JUMPI DUP1 PUSH4 0x699E7546 EQ PUSH2 0x3F9 JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x40E JUMPI DUP1 PUSH4 0x7B103999 EQ PUSH2 0x423 JUMPI DUP1 PUSH4 0x7F9C0ECD EQ PUSH2 0x438 JUMPI DUP1 PUSH4 0x8077CCF7 EQ PUSH2 0x48F JUMPI DUP1 PUSH4 0x89F9CC61 EQ PUSH2 0x4B0 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x523 JUMPI DUP1 PUSH4 0x98E95740 EQ PUSH2 0x538 JUMPI DUP1 PUSH4 0xAB6214CE EQ PUSH2 0x54D JUMPI DUP1 PUSH4 0xB1E9932B EQ PUSH2 0x5B7 JUMPI DUP1 PUSH4 0xB4A176D3 EQ PUSH2 0x622 JUMPI DUP1 PUSH4 0xB77D239B EQ PUSH2 0x637 JUMPI DUP1 PUSH4 0xC52173DE EQ PUSH2 0x6A1 JUMPI DUP1 PUSH4 0xC7BA24BC EQ PUSH2 0x700 JUMPI DUP1 PUSH4 0xC98FEFED EQ PUSH2 0x75E JUMPI DUP1 PUSH4 0xCB32564E EQ PUSH2 0x7BC JUMPI DUP1 PUSH4 0xD4EE1D90 EQ PUSH2 0x830 JUMPI DUP1 PUSH4 0xD734FA19 EQ PUSH2 0x845 JUMPI DUP1 PUSH4 0xE57738E5 EQ PUSH2 0x8BC JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x92C JUMPI DUP1 PUSH4 0xF3898A97 EQ PUSH2 0x94D JUMPI DUP1 PUSH4 0xF3BC7D2A EQ PUSH2 0x99E JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x198 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A6 PUSH1 0x4 CALLDATALOAD ISZERO ISZERO PUSH2 0x9B6 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1B4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A6 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD ISZERO ISZERO PUSH2 0x9FE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1DA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1EF PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0xA47 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x20F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x25A SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP POP SWAP4 CALLDATALOAD SWAP5 POP PUSH2 0xA58 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x27F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x2EA SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP POP DUP5 CALLDATALOAD SWAP6 POP POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD SWAP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x40 DUP3 ADD CALLDATALOAD DUP2 AND SWAP4 POP PUSH1 0x60 DUP3 ADD CALLDATALOAD AND SWAP2 POP PUSH1 0x80 ADD CALLDATALOAD PUSH2 0xA70 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x308 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1EF PUSH2 0xA8B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x31D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A6 PUSH2 0xAAC JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x2EA SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP POP DUP5 CALLDATALOAD SWAP6 POP POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD SWAP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x40 DUP3 ADD CALLDATALOAD AND SWAP3 POP PUSH1 0x60 ADD CALLDATALOAD SWAP1 POP PUSH2 0xD2B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x395 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2EA PUSH2 0xD46 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3AA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A6 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0xD4C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3D4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3DD PUSH2 0xD85 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x405 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x25A PUSH2 0xD94 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x41A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A6 PUSH2 0xDB9 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x42F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3DD PUSH2 0xE8C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x444 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x2EA SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP POP SWAP4 CALLDATALOAD SWAP5 POP PUSH2 0xE9B SWAP4 POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x49B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1EF PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x16CA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4BC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x2EA SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 CALLDATALOAD DUP2 AND SWAP7 POP PUSH1 0x20 DUP7 ADD CALLDATALOAD SWAP6 PUSH1 0x40 DUP2 ADD CALLDATALOAD SWAP6 POP PUSH1 0x60 ADD CALLDATALOAD AND SWAP3 POP PUSH2 0x16DF SWAP2 POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x52F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3DD PUSH2 0x1874 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x544 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x25A PUSH2 0x1883 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x2EA SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP POP DUP5 CALLDATALOAD SWAP6 POP POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD SWAP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x40 DUP3 ADD CALLDATALOAD DUP2 AND SWAP4 POP PUSH1 0x60 DUP3 ADD CALLDATALOAD AND SWAP2 POP PUSH1 0x80 ADD CALLDATALOAD PUSH2 0x18A0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5C3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x2EA SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP POP DUP5 CALLDATALOAD SWAP6 POP POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD SWAP3 PUSH1 0x40 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP2 POP PUSH2 0x18C6 SWAP1 POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x62E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A6 PUSH2 0x18E0 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x2EA SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP POP DUP5 CALLDATALOAD SWAP6 POP POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD SWAP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x40 DUP3 ADD CALLDATALOAD DUP2 AND SWAP4 POP PUSH1 0x60 DUP3 ADD CALLDATALOAD AND SWAP2 POP PUSH1 0x80 ADD CALLDATALOAD PUSH2 0x1919 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x2EA SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP POP DUP5 CALLDATALOAD SWAP6 POP POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD SWAP3 PUSH1 0x40 DUP2 ADD CALLDATALOAD SWAP3 POP PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP2 POP PUSH1 0x80 ADD CALLDATALOAD PUSH2 0x1B0D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x70C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x2EA SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP POP DUP5 CALLDATALOAD SWAP6 POP POP POP PUSH1 0x20 SWAP1 SWAP3 ADD CALLDATALOAD SWAP2 POP PUSH2 0x1B20 SWAP1 POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x2EA SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP POP DUP5 CALLDATALOAD SWAP6 POP POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD SWAP3 PUSH1 0x40 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP2 POP PUSH2 0x18C6 SWAP1 POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x2EA SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP POP DUP5 CALLDATALOAD SWAP6 POP POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD SWAP3 PUSH1 0x40 DUP2 ADD CALLDATALOAD SWAP3 POP PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP2 POP PUSH1 0x80 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0xA0 DUP3 ADD CALLDATALOAD AND SWAP1 PUSH1 0xC0 ADD CALLDATALOAD PUSH2 0x1B3A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x83C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3DD PUSH2 0x1CD8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x851 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x86C PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH2 0x1CE7 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP4 MLOAD DUP2 DUP4 ADD MSTORE DUP4 MLOAD SWAP2 SWAP3 DUP4 SWAP3 SWAP1 DUP4 ADD SWAP2 DUP6 DUP2 ADD SWAP2 MUL DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x8A8 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x890 JUMP JUMPDEST POP POP POP POP SWAP1 POP ADD SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8C8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x2EA SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP POP DUP5 CALLDATALOAD SWAP6 POP POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD SWAP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x40 DUP3 ADD CALLDATALOAD AND SWAP3 POP PUSH1 0x60 ADD CALLDATALOAD SWAP1 POP PUSH2 0xD2B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x938 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A6 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x1E18 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x2EA SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP POP DUP5 CALLDATALOAD SWAP6 POP POP POP PUSH1 0x20 SWAP1 SWAP3 ADD CALLDATALOAD SWAP2 POP PUSH2 0x1B20 SWAP1 POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9AA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A6 PUSH1 0x4 CALLDATALOAD PUSH2 0x1EB5 JUMP JUMPDEST PUSH2 0x9BE PUSH2 0x1F1D JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD SWAP2 ISZERO ISZERO PUSH21 0x10000000000000000000000000000000000000000 MUL PUSH21 0xFF0000000000000000000000000000000000000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0xA06 PUSH2 0x1F1D JUMP JUMPDEST DUP2 PUSH2 0xA10 DUP2 PUSH2 0x1F81 JUMP JUMPDEST DUP3 PUSH2 0xA1A DUP2 PUSH2 0x1FE4 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP2 SWAP1 SWAP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP2 ISZERO ISZERO SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA52 DUP3 PUSH2 0x2045 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xA65 DUP5 DUP5 PUSH2 0xE9B JUMP JUMPDEST SWAP5 PUSH1 0x0 SWAP5 POP SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA80 DUP8 DUP8 DUP8 DUP8 DUP8 DUP8 PUSH2 0x1919 JUMP JUMPDEST SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ DUP1 PUSH2 0xAE1 JUMPI POP PUSH1 0x3 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST ISZERO ISZERO PUSH2 0xB37 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0xB60 PUSH32 0x436F6E7472616374526567697374727900000000000000000000000000000000 PUSH2 0x20D6 JUMP JUMPDEST PUSH1 0x2 SLOAD SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP4 AND SWAP2 AND EQ DUP1 ISZERO SWAP1 PUSH2 0xB89 JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO JUMPDEST ISZERO ISZERO PUSH2 0xBDF JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245474953545259000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0xBB34534C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH32 0x436F6E7472616374526567697374727900000000000000000000000000000000 PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP2 PUSH4 0xBB34534C SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC63 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xC77 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xC8D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ ISZERO PUSH2 0xCEE JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245474953545259000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP5 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP3 DUP4 AND OR SWAP1 SWAP3 SSTORE SWAP1 SWAP2 AND SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH2 0xD3C DUP7 DUP7 DUP7 PUSH1 0x0 DUP8 DUP8 PUSH2 0x1919 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x5 SLOAD DUP2 JUMP JUMPDEST PUSH2 0xD54 PUSH2 0x1F1D JUMP JUMPDEST DUP3 PUSH2 0xD5E DUP2 PUSH2 0x1F81 JUMP JUMPDEST DUP3 PUSH2 0xD68 DUP2 PUSH2 0x1F81 JUMP JUMPDEST DUP4 PUSH2 0xD72 DUP2 PUSH2 0x1FE4 JUMP JUMPDEST PUSH2 0xD7D DUP7 DUP7 DUP7 PUSH2 0x216E JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x0 SWAP1 DUP2 SWAP1 PUSH2 0xDB1 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP3 DUP1 DUP1 PUSH2 0x21FB JUMP JUMPDEST SWAP2 POP SWAP2 POP SWAP1 SWAP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0xE1B JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND SWAP4 SWAP1 SWAP2 AND SWAP2 PUSH32 0x343765429AEA5A34B3FF6A3785A98A5ABB2597ACA87BFBB58632C173D585373A SWAP2 LOG3 PUSH1 0x1 DUP1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND OR SWAP1 SWAP2 SSTORE AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0xED6 PUSH32 0x536F7672796E53776170466F726D756C61000000000000000000000000000000 PUSH2 0x20D6 JUMP JUMPDEST SWAP5 POP DUP13 SWAP11 POP PUSH1 0x2 DUP15 MLOAD GT DUP1 ISZERO PUSH2 0xEF1 JUMPI POP DUP14 MLOAD PUSH1 0x2 SWAP1 MOD PUSH1 0x1 EQ JUMPDEST ISZERO ISZERO PUSH2 0xF47 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5041544800000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x2 SWAP4 POP JUMPDEST DUP14 MLOAD DUP5 LT ISZERO PUSH2 0x16B8 JUMPI DUP14 PUSH1 0x2 DUP6 SUB DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xF66 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD SWAP3 POP DUP14 PUSH1 0x1 DUP6 SUB DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xF83 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD SWAP2 POP DUP14 DUP5 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xF9D JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD SWAP1 POP DUP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x8DA5CB5B PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xFE7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xFFB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1011 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP6 POP PUSH2 0x101F DUP7 DUP5 PUSH2 0x22DF JUMP JUMPDEST SWAP3 POP PUSH2 0x102B DUP7 DUP3 PUSH2 0x22DF JUMP JUMPDEST SWAP1 POP DUP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ ISZERO PUSH2 0x138C JUMPI PUSH1 0x3 DUP5 LT DUP1 PUSH2 0x1082 JUMPI POP DUP14 PUSH1 0x3 DUP6 SUB DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x1062 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ ISZERO JUMPDEST ISZERO PUSH2 0x10F4 JUMPI DUP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x18160DDD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x10C5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x10D9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x10EF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP9 POP JUMPDEST DUP6 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xD8959512 DUP5 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x114F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1163 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1179 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xE53AAE900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 MLOAD SWAP3 SWAP11 POP SWAP1 DUP9 AND SWAP2 PUSH4 0xE53AAE9 SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0xA0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x11E3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x11F7 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0xA0 DUP2 LT ISZERO PUSH2 0x120D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x20 SWAP1 DUP2 ADD MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xF3250FE200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP14 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP13 SWAP1 MSTORE PUSH4 0xFFFFFFFF DUP4 AND PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 DUP2 ADD DUP16 SWAP1 MSTORE SWAP1 MLOAD SWAP2 SWAP10 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 AND SWAP3 PUSH4 0xF3250FE2 SWAP3 PUSH1 0x84 DUP1 DUP5 ADD SWAP4 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x128E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x12A2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x12B8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x579CD3CA00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP13 POP PUSH2 0x136E SWAP2 PUSH3 0xF4240 SWAP2 PUSH2 0x1362 SWAP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND SWAP2 PUSH4 0x579CD3CA SWAP2 PUSH1 0x4 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1325 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1339 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x134F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD DUP15 SWAP1 PUSH4 0xFFFFFFFF SWAP1 DUP2 AND SWAP1 PUSH2 0x2341 AND JUMP JUMPDEST SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x23BA AND JUMP JUMPDEST SWAP11 DUP12 SWAP1 SUB SWAP11 SWAP10 POP PUSH2 0x1385 DUP10 DUP13 PUSH4 0xFFFFFFFF PUSH2 0x2428 AND JUMP JUMPDEST SWAP9 POP PUSH2 0x16AD JUMP JUMPDEST DUP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ ISZERO PUSH2 0x169B JUMPI PUSH1 0x3 DUP5 LT DUP1 PUSH2 0x13E1 JUMPI POP DUP14 PUSH1 0x3 DUP6 SUB DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x13C1 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ ISZERO JUMPDEST ISZERO PUSH2 0x1453 JUMPI DUP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x18160DDD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1424 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1438 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x144E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP9 POP JUMPDEST DUP6 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xD8959512 DUP3 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x14AE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x14C2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x14D8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xE53AAE900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 MLOAD SWAP3 SWAP11 POP SWAP1 DUP9 AND SWAP2 PUSH4 0xE53AAE9 SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0xA0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1542 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1556 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0xA0 DUP2 LT ISZERO PUSH2 0x156C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x20 SWAP1 DUP2 ADD MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x76CF0B5600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP14 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP13 SWAP1 MSTORE PUSH4 0xFFFFFFFF DUP4 AND PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 DUP2 ADD DUP16 SWAP1 MSTORE SWAP1 MLOAD SWAP2 SWAP10 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 AND SWAP3 PUSH4 0x76CF0B56 SWAP3 PUSH1 0x84 DUP1 DUP5 ADD SWAP4 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x15ED JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1601 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1617 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x579CD3CA00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP13 POP PUSH2 0x1684 SWAP2 PUSH3 0xF4240 SWAP2 PUSH2 0x1362 SWAP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND SWAP2 PUSH4 0x579CD3CA SWAP2 PUSH1 0x4 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1325 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP11 DUP12 SWAP1 SUB SWAP11 SWAP10 POP PUSH2 0x1385 DUP10 DUP13 PUSH4 0xFFFFFFFF PUSH2 0x2485 AND JUMP JUMPDEST PUSH2 0x16A7 DUP7 DUP5 DUP4 DUP15 PUSH2 0x21FB JUMP JUMPDEST SWAP1 SWAP12 POP SWAP10 POP JUMPDEST PUSH1 0x2 DUP5 ADD SWAP4 POP PUSH2 0xF4C JUMP JUMPDEST POP SWAP9 SWAP13 SWAP12 POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP6 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xFC0C546A PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1720 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1734 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x174A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD DUP8 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP2 AND SWAP1 DUP9 SWAP1 PUSH1 0x0 SWAP1 DUP2 LT PUSH2 0x1767 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ PUSH2 0x17CF JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F534F555243455F544F4B454E0000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0xAAFD6B7600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP8 SWAP1 MSTORE CALLER PUSH1 0x24 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 AND SWAP2 PUSH4 0xAAFD6B76 SWAP2 PUSH1 0x44 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1837 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x184B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1861 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 POP PUSH2 0xA80 DUP8 DUP3 DUP7 DUP7 PUSH1 0x0 DUP1 PUSH2 0x1919 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x0 SWAP1 DUP2 SWAP1 PUSH2 0xDB1 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP3 DUP1 DUP1 PUSH2 0x21FB JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH2 0x18AC DUP2 PUSH2 0x24E5 JUMP JUMPDEST PUSH2 0x18BA DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 PUSH2 0x1919 JUMP JUMPDEST SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x18D7 DUP6 DUP6 DUP6 DUP6 PUSH1 0x0 DUP1 PUSH2 0x1919 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH2 0x18E8 PUSH2 0x1F1D JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x2 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 PUSH1 0x0 PUSH2 0x192A PUSH2 0x253D JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE DUP9 PUSH2 0x1939 DUP2 PUSH2 0x24E5 JUMP JUMPDEST PUSH1 0x2 DUP13 MLOAD GT DUP1 ISZERO PUSH2 0x194F JUMPI POP DUP12 MLOAD PUSH1 0x2 SWAP1 MOD PUSH1 0x1 EQ JUMPDEST ISZERO ISZERO PUSH2 0x19A5 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5041544800000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x19E0 DUP13 PUSH1 0x0 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x19B7 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD DUP14 PUSH1 0x1 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x19D0 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD DUP14 PUSH2 0x2597 JUMP JUMPDEST PUSH1 0x0 SWAP5 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 AND ISZERO ISZERO PUSH2 0x1A4F JUMPI DUP7 ISZERO PUSH2 0x1A4A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F414646494C494154455F46454500000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x1ABC JUMP JUMPDEST DUP7 PUSH1 0x0 LT DUP1 ISZERO PUSH2 0x1A61 JUMPI POP PUSH1 0x5 SLOAD DUP8 GT ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x1AB7 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F414646494C494154455F46454500000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SWAP5 POP JUMPDEST CALLER SWAP4 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP10 AND ISZERO PUSH2 0x1AD2 JUMPI DUP9 SWAP4 POP JUMPDEST PUSH2 0x1ADD DUP13 DUP6 DUP8 PUSH2 0x279B JUMP JUMPDEST SWAP3 POP PUSH2 0x1AEC DUP4 DUP13 DUP13 DUP12 DUP12 PUSH2 0x2BB2 JUMP JUMPDEST SWAP2 POP PUSH2 0x1AF9 DUP4 DUP4 DUP7 PUSH2 0x3112 JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x4 SSTORE SWAP11 SWAP10 POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA80 DUP8 DUP8 DUP8 DUP8 DUP8 DUP8 PUSH1 0x0 DUP1 PUSH2 0x1B3A JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1B32 DUP5 DUP5 DUP5 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x1919 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 DUP10 PUSH2 0x1B4A DUP2 PUSH2 0x24E5 JUMP JUMPDEST DUP13 MLOAD DUP14 SWAP1 PUSH1 0x0 NOT DUP2 ADD SWAP1 DUP2 LT PUSH2 0x1B5C JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD SWAP4 POP PUSH2 0x1B91 PUSH32 0x536F7672796E5377617058000000000000000000000000000000000000000000 PUSH2 0x20D6 JUMP JUMPDEST SWAP3 POP PUSH2 0x1BBC PUSH32 0x424E54546F6B656E000000000000000000000000000000000000000000000000 PUSH2 0x20D6 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 DUP2 AND SWAP2 AND EQ PUSH2 0x1C1E JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5441524745545F544F4B454E0000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x1C2C DUP14 DUP14 DUP14 ADDRESS DUP12 DUP12 PUSH2 0x1919 JUMP JUMPDEST SWAP2 POP PUSH2 0x1C39 DUP5 DUP5 DUP5 PUSH2 0x31F5 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x427C037400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP13 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP12 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x64 DUP2 ADD DUP11 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND SWAP2 PUSH4 0x427C0374 SWAP2 PUSH1 0x84 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1CAF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1CC3 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP SWAP4 SWAP16 SWAP15 POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0x1D14 PUSH32 0x436F6E76657273696F6E5061746846696E646572000000000000000000000000 PUSH2 0x20D6 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0xA1C421CD00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP7 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE SWAP2 MLOAD SWAP3 SWAP4 POP SWAP1 DUP4 AND SWAP2 PUSH4 0xA1C421CD SWAP2 PUSH1 0x44 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1D83 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1D97 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1DC0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 MLOAD PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x1DD8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD PUSH1 0x20 DUP2 ADD DUP5 DUP2 GT ISZERO PUSH2 0x1DEB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP6 PUSH1 0x20 DUP3 MUL DUP4 ADD GT PUSH5 0x100000000 DUP3 GT OR ISZERO PUSH2 0x1E08 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP SWAP1 SWAP6 POP POP POP POP POP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1E20 PUSH2 0x1F1D JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x1E86 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F4F574E4552000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x1EBD PUSH2 0x1F1D JUMP JUMPDEST PUSH3 0xF4240 DUP2 GT ISZERO PUSH2 0x1F18 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F414646494C494154455F46454500000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x5 SSTORE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x1F7F JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0x1FE1 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ADDRESS EQ ISZERO PUSH2 0x1FE1 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F414444524553535F49535F53454C4600000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2050 PUSH2 0x35D7 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x69735632384F7248696768657228290000000000000000000000000000000000 DUP2 MSTORE DUP2 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0xF ADD DUP2 KECCAK256 PUSH1 0x4 DUP3 MSTORE PUSH1 0x24 DUP3 ADD SWAP1 SWAP3 MSTORE PUSH1 0x20 DUP1 DUP3 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0xE0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xE0 PUSH1 0x2 EXP SUB NOT SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 OR DUP4 MSTORE DUP2 MLOAD SWAP2 SWAP3 SWAP1 SWAP2 DUP5 SWAP2 DUP9 PUSH2 0x1388 STATICCALL SWAP3 POP DUP3 DUP1 ISZERO PUSH2 0x20CB JUMPI POP DUP2 MLOAD ISZERO ISZERO JUMPDEST SWAP4 POP JUMPDEST POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xBB34534C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP2 PUSH4 0xBB34534C SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x213C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2150 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2166 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x7472616E7366657228616464726573732C75696E743235362900000000000000 DUP2 MSTORE DUP2 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x19 ADD DUP2 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x64 SWAP1 SWAP3 ADD SWAP1 SWAP3 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0xE0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xE0 PUSH1 0x2 EXP SUB NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE PUSH2 0x21F6 SWAP1 DUP5 SWAP1 PUSH2 0x32BC JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2206 PUSH2 0x35F6 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x67657452657475726E28616464726573732C616464726573732C75696E743235 DUP2 MSTORE PUSH32 0x3629000000000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP3 MLOAD SWAP2 DUP3 SWAP1 SUB PUSH1 0x22 ADD DUP3 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP12 AND PUSH1 0x24 DUP6 ADD MSTORE DUP10 AND PUSH1 0x44 DUP5 ADD MSTORE PUSH1 0x64 DUP1 DUP5 ADD DUP10 SWAP1 MSTORE DUP5 MLOAD DUP1 DUP6 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x84 SWAP1 SWAP4 ADD DUP5 MSTORE SWAP1 DUP3 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0xE0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xE0 PUSH1 0x2 EXP SUB NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR DUP2 MSTORE DUP2 MLOAD SWAP2 SWAP3 SWAP2 DUP5 SWAP2 DUP12 GAS STATICCALL DUP1 ISZERO ISZERO PUSH2 0x22C8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD MLOAD SWAP1 SWAP8 SWAP1 SWAP7 POP SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO ISZERO PUSH2 0x2308 JUMPI POP DUP1 PUSH2 0xA52 JUMP JUMPDEST PUSH2 0x2311 DUP4 PUSH2 0x2045 JUMP JUMPDEST ISZERO PUSH2 0x2331 JUMPI POP PUSH20 0xEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE PUSH2 0xA52 JUMP JUMPDEST PUSH2 0x233A DUP4 PUSH2 0x334A JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 ISZERO ISZERO PUSH2 0x2354 JUMPI PUSH1 0x0 SWAP2 POP PUSH2 0x1E11 JUMP JUMPDEST POP DUP3 DUP3 MUL DUP3 DUP5 DUP3 DUP2 ISZERO ISZERO PUSH2 0x2364 JUMPI INVALID JUMPDEST DIV EQ PUSH2 0x233A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP4 GT PUSH2 0x2414 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4449564944455F42595F5A45524F0000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP3 DUP5 DUP2 ISZERO ISZERO PUSH2 0x241F JUMPI INVALID JUMPDEST DIV SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 ADD DUP4 DUP2 LT ISZERO PUSH2 0x233A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 DUP4 LT ISZERO PUSH2 0x24DF JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F554E444552464C4F5700000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP SWAP1 SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 GT PUSH2 0x1FE1 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5A45524F5F56414C5545000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x4 SLOAD PUSH1 0x1 EQ PUSH2 0x1F7F JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5245454E5452414E4359000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x8DA5CB5B PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x25D8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x25EC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2602 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 POP PUSH2 0x260F DUP3 PUSH2 0x2045 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 CALLVALUE GT ISZERO PUSH2 0x26DD JUMPI CALLVALUE DUP4 EQ PUSH2 0x2671 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4554485F414D4F554E545F4D49534D41544348000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP1 ISZERO ISZERO PUSH2 0x26D8 JUMPI PUSH2 0x2681 DUP3 PUSH2 0x334A JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xD0E30DB0 CALLVALUE PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x26BE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x26D2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP JUMPDEST PUSH2 0x2794 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x2776 JUMPI PUSH2 0x270A DUP6 CALLER ADDRESS DUP7 PUSH2 0x3497 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x26D8 JUMPI DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x2E1A7D4D DUP5 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2759 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x276D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x2794 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2788 JUMPI PUSH2 0x26D8 DUP6 CALLER DUP5 DUP7 PUSH2 0x3497 JUMP JUMPDEST PUSH2 0x2794 DUP6 CALLER ADDRESS DUP7 PUSH2 0x3497 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x27B1 PUSH2 0x3611 JUMP JUMPDEST DUP13 MLOAD PUSH1 0x2 SWAP1 DIV PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x27F0 JUMPI DUP2 PUSH1 0x20 ADD JUMPDEST PUSH2 0x27DD PUSH2 0x3611 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 SWAP1 SUB SWAP1 DUP2 PUSH2 0x27D5 JUMPI SWAP1 POP JUMPDEST POP SWAP9 POP PUSH1 0x0 SWAP8 POP PUSH2 0x2820 PUSH32 0x424E54546F6B656E000000000000000000000000000000000000000000000000 PUSH2 0x20D6 JUMP JUMPDEST SWAP7 POP PUSH1 0x0 SWAP6 POP JUMPDEST PUSH1 0x1 DUP14 MLOAD SUB DUP7 LT ISZERO PUSH2 0x29BB JUMPI DUP13 DUP7 PUSH1 0x1 ADD DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x2844 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD SWAP5 POP DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x8DA5CB5B PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x288E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x28A2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x28B8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD DUP14 MLOAD SWAP1 SWAP5 POP DUP14 SWAP1 PUSH1 0x2 DUP9 ADD SWAP1 DUP2 LT PUSH2 0x28CE JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD SWAP3 POP DUP11 DUP1 ISZERO PUSH2 0x28E5 JUMPI POP DUP8 ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x2902 JUMPI POP DUP7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ JUMPDEST SWAP2 POP DUP2 ISZERO PUSH2 0x290F JUMPI PUSH1 0x1 SWAP8 POP JUMPDEST PUSH1 0xE0 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 DUP6 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP15 DUP9 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x2947 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x2987 DUP7 PUSH2 0x2045 JUMP JUMPDEST ISZERO ISZERO DUP2 MSTORE DUP4 ISZERO ISZERO PUSH1 0x20 SWAP1 SWAP2 ADD MSTORE DUP10 PUSH1 0x2 DUP9 DIV DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x29A5 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MSTORE PUSH1 0x2 SWAP6 SWAP1 SWAP6 ADD SWAP5 PUSH2 0x2827 JUMP JUMPDEST DUP9 PUSH1 0x0 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x29CA JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x40 DUP1 DUP3 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 SWAP1 SWAP4 MSTORE SWAP1 SWAP2 KECCAK256 SLOAD SWAP1 SWAP2 POP PUSH1 0xFF AND ISZERO PUSH2 0x2A40 JUMPI DUP1 PUSH1 0xA0 ADD MLOAD ISZERO PUSH2 0x2A26 JUMPI PUSH20 0xEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE PUSH1 0x40 DUP3 ADD MSTORE PUSH2 0x2A40 JUMP JUMPDEST DUP1 MLOAD PUSH2 0x2A31 SWAP1 PUSH2 0x334A JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x40 DUP3 ADD MSTORE JUMPDEST DUP9 MLOAD DUP10 SWAP1 PUSH1 0x0 NOT DUP2 ADD SWAP1 DUP2 LT PUSH2 0x2A52 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x60 DUP2 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 SWAP1 SWAP3 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 SLOAD SWAP1 SWAP2 POP PUSH1 0xFF AND ISZERO PUSH2 0x2AC9 JUMPI DUP1 PUSH1 0xA0 ADD MLOAD ISZERO PUSH2 0x2AAF JUMPI PUSH20 0xEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE PUSH1 0x60 DUP3 ADD MSTORE PUSH2 0x2AC9 JUMP JUMPDEST DUP1 MLOAD PUSH2 0x2ABA SWAP1 PUSH2 0x334A JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x60 DUP3 ADD MSTORE JUMPDEST PUSH1 0x0 SWAP6 POP JUMPDEST DUP9 MLOAD DUP7 LT ISZERO PUSH2 0x2BA1 JUMPI DUP9 DUP7 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x2AE5 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD SWAP1 POP DUP1 PUSH1 0xA0 ADD MLOAD ISZERO PUSH2 0x2B8F JUMPI DUP1 PUSH1 0xC0 ADD MLOAD ISZERO PUSH2 0x2B10 JUMPI ADDRESS PUSH1 0x80 DUP3 ADD MSTORE PUSH2 0x2B8A JUMP JUMPDEST PUSH1 0x1 DUP10 MLOAD SUB DUP7 EQ ISZERO PUSH2 0x2B30 JUMPI PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP13 AND PUSH1 0x80 DUP3 ADD MSTORE PUSH2 0x2B8A JUMP JUMPDEST DUP9 DUP7 PUSH1 0x1 ADD DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x2B41 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0xA0 ADD MLOAD ISZERO PUSH2 0x2B83 JUMPI DUP9 DUP7 PUSH1 0x1 ADD DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x2B65 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MLOAD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x80 DUP3 ADD MSTORE PUSH2 0x2B8A JUMP JUMPDEST ADDRESS PUSH1 0x80 DUP3 ADD MSTORE JUMPDEST PUSH2 0x2B96 JUMP JUMPDEST ADDRESS PUSH1 0x80 DUP3 ADD MSTORE JUMPDEST PUSH1 0x1 SWAP1 SWAP6 ADD SWAP5 PUSH2 0x2ACE JUMP JUMPDEST POP SWAP7 SWAP12 SWAP11 POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x2BC0 PUSH2 0x3611 JUMP JUMPDEST PUSH1 0x0 DUP10 SWAP4 POP PUSH1 0x0 SWAP3 POP JUMPDEST DUP11 MLOAD DUP4 LT ISZERO PUSH2 0x30AB JUMPI DUP11 DUP4 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x2BE1 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD SWAP2 POP DUP2 PUSH1 0xA0 ADD MLOAD ISZERO PUSH2 0x2C72 JUMPI DUP3 ISZERO DUP1 ISZERO SWAP1 PUSH2 0x2C2E JUMPI POP DUP11 MLOAD ADDRESS SWAP1 DUP13 SWAP1 PUSH1 0x0 NOT DUP7 ADD SWAP1 DUP2 LT PUSH2 0x2C15 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x80 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ JUMPDEST DUP1 ISZERO PUSH2 0x2C55 JUMPI POP PUSH1 0x40 DUP1 DUP4 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE KECCAK256 SLOAD PUSH1 0xFF AND ISZERO JUMPDEST ISZERO PUSH2 0x2C6D JUMPI PUSH2 0x2C6D DUP3 PUSH1 0x40 ADD MLOAD DUP4 PUSH1 0x0 ADD MLOAD DUP7 PUSH2 0x216E JUMP JUMPDEST PUSH2 0x2CA8 JUMP JUMPDEST DUP2 PUSH1 0x20 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP3 PUSH1 0x40 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ ISZERO ISZERO PUSH2 0x2CA8 JUMPI PUSH2 0x2CA8 DUP3 PUSH1 0x40 ADD MLOAD DUP4 PUSH1 0x0 ADD MLOAD DUP7 PUSH2 0x31F5 JUMP JUMPDEST DUP2 PUSH1 0xA0 ADD MLOAD ISZERO ISZERO PUSH2 0x2D6B JUMPI DUP2 MLOAD PUSH1 0x40 DUP1 DUP5 ADD MLOAD PUSH1 0x60 DUP6 ADD MLOAD DUP3 MLOAD PUSH32 0x5E5144EB00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 DUP4 AND PUSH1 0x4 DUP3 ADD MSTORE SWAP1 DUP3 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 DUP2 ADD DUP9 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x64 DUP3 ADD MSTORE SWAP2 MLOAD SWAP3 AND SWAP2 PUSH4 0x5E5144EB SWAP2 PUSH1 0x84 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2D38 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2D4C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2D62 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP5 POP PUSH2 0x2F08 JUMP JUMPDEST PUSH1 0x40 DUP1 DUP4 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x2E49 JUMPI DUP2 MLOAD PUSH1 0x40 DUP1 DUP5 ADD MLOAD PUSH1 0x60 DUP6 ADD MLOAD PUSH1 0x80 DUP7 ADD MLOAD DUP4 MLOAD PUSH32 0xE8DC12FF00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND PUSH1 0x4 DUP3 ADD MSTORE SWAP2 DUP4 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP3 ADD DUP10 SWAP1 MSTORE CALLER PUSH1 0x64 DUP4 ADD MSTORE DUP3 AND PUSH1 0x84 DUP3 ADD MSTORE SWAP2 MLOAD SWAP3 AND SWAP2 PUSH4 0xE8DC12FF SWAP2 CALLVALUE SWAP2 PUSH1 0xA4 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP6 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2E1E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2E32 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2D62 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x40 DUP1 DUP5 ADD MLOAD PUSH1 0x60 DUP6 ADD MLOAD PUSH1 0x80 DUP7 ADD MLOAD DUP4 MLOAD PUSH32 0xE8DC12FF00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND PUSH1 0x4 DUP3 ADD MSTORE SWAP2 DUP4 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP3 ADD DUP10 SWAP1 MSTORE CALLER PUSH1 0x64 DUP4 ADD MSTORE DUP3 AND PUSH1 0x84 DUP3 ADD MSTORE SWAP2 MLOAD SWAP3 AND SWAP2 PUSH4 0xE8DC12FF SWAP2 PUSH1 0xA4 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2ED9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2EED JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2F03 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP5 POP JUMPDEST DUP2 PUSH1 0xC0 ADD MLOAD ISZERO PUSH2 0x301A JUMPI PUSH2 0x2F29 PUSH3 0xF4240 PUSH2 0x1362 DUP8 DUP11 PUSH4 0xFFFFFFFF PUSH2 0x2341 AND JUMP JUMPDEST SWAP1 POP DUP2 PUSH1 0x60 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xA9059CBB DUP10 DUP4 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2F92 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2FA6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2FBC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD ISZERO ISZERO PUSH2 0x3014 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4645455F5452414E534645525F4641494C4544000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP1 DUP6 SUB SWAP5 POP JUMPDEST DUP2 PUSH1 0x60 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP3 PUSH1 0x40 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP4 PUSH1 0x20 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH32 0x7154B38B5DD31BB3122436A96D4E09ABA5B323AE1FD580025FAB55074334C095 DUP8 DUP10 CALLER PUSH1 0x40 MLOAD DUP1 DUP5 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP4 POP POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 DUP5 SWAP4 POP PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 PUSH2 0x2BCA JUMP JUMPDEST DUP9 DUP6 LT ISZERO PUSH2 0x3103 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F52455455524E5F544F4F5F4C4F570000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP SWAP3 SWAP10 SWAP9 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x311A PUSH2 0x3611 JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH1 0x1 DUP7 MLOAD SUB DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x312E JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MLOAD PUSH1 0x80 DUP2 ADD MLOAD SWAP1 SWAP3 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND ADDRESS EQ PUSH2 0x3154 JUMPI PUSH2 0x2794 JUMP JUMPDEST POP PUSH1 0x60 DUP2 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x31EA JUMPI PUSH1 0xA0 DUP3 ADD MLOAD ISZERO PUSH2 0x3187 JUMPI INVALID JUMPDEST DUP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x205C2878 DUP5 DUP7 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2759 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2794 DUP2 DUP5 DUP7 PUSH2 0x216E JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0xDD62ED3E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE SWAP2 MLOAD PUSH1 0x0 SWAP3 DUP7 AND SWAP2 PUSH4 0xDD62ED3E SWAP2 PUSH1 0x44 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3260 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3274 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x328A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 POP DUP2 DUP2 LT ISZERO PUSH2 0x32B6 JUMPI PUSH1 0x0 DUP2 GT ISZERO PUSH2 0x32AB JUMPI PUSH2 0x32AB DUP5 DUP5 PUSH1 0x0 PUSH2 0x354F JUMP JUMPDEST PUSH2 0x32B6 DUP5 DUP5 DUP5 PUSH2 0x354F JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0x32C4 PUSH2 0x35D7 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE POP SWAP1 POP PUSH1 0x20 DUP2 DUP4 MLOAD PUSH1 0x20 DUP6 ADD PUSH1 0x0 DUP8 GAS CALL DUP1 ISZERO ISZERO PUSH2 0x32F1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD ISZERO ISZERO PUSH2 0x21F6 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5452414E534645525F4641494C454400000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x71F52BF3 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x338E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x33A2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x33B8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH2 0xFFFF AND SWAP3 POP PUSH1 0x0 SWAP2 POP JUMPDEST DUP3 DUP3 LT ISZERO PUSH2 0x3479 JUMPI DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x19B64015 DUP4 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3416 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x342A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x3440 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 SWAP2 POP PUSH1 0xFF AND ISZERO PUSH2 0x346E JUMPI DUP1 SWAP4 POP PUSH2 0x20CE JUMP JUMPDEST PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x33C5 JUMP JUMPDEST POP PUSH20 0xEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x7472616E7366657246726F6D28616464726573732C616464726573732C75696E DUP2 MSTORE PUSH32 0x7432353629000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP3 MLOAD SWAP2 DUP3 SWAP1 SUB PUSH1 0x25 ADD DUP3 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP9 AND PUSH1 0x24 DUP6 ADD MSTORE DUP7 AND PUSH1 0x44 DUP5 ADD MSTORE PUSH1 0x64 DUP1 DUP5 ADD DUP7 SWAP1 MSTORE DUP5 MLOAD DUP1 DUP6 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x84 SWAP1 SWAP4 ADD SWAP1 SWAP4 MSTORE DUP2 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0xE0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xE0 PUSH1 0x2 EXP SUB NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE PUSH2 0x32B6 SWAP1 DUP6 SWAP1 PUSH2 0x32BC JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x617070726F766528616464726573732C75696E74323536290000000000000000 DUP2 MSTORE DUP2 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x18 ADD DUP2 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x64 SWAP1 SWAP3 ADD SWAP1 SWAP3 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0xE0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xE0 PUSH1 0x2 EXP SUB NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE PUSH2 0x21F6 SWAP1 DUP5 SWAP1 PUSH2 0x32BC JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 SWAP1 PUSH1 0x20 DUP3 MUL DUP1 CODESIZE DUP4 CODECOPY POP SWAP2 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD DUP3 MSTORE SWAP1 PUSH1 0x2 SWAP1 DUP3 SWAP1 DUP1 CODESIZE DUP4 CODECOPY POP SWAP2 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xE0 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE SWAP2 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x60 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0xA0 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0xC0 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP1 JUMP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 0xc6 PUSH4 0xCACCD0F9 0x2d 0xed 0xd6 PUSH16 0x87B5B8167FE490551F2BEC97ADF4D32A 0x21 0x48 0x2d DUP11 DUP11 0xc0 STOP 0x29 PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP1 PUSH2 0xF2 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 MSTORE MLOAD PUSH1 0x0 SSTORE PUSH1 0xBF DUP1 PUSH2 0x33 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH1 0x3E JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x1E1401F8 DUP2 EQ PUSH1 0x43 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH1 0x4E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x77 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH1 0x89 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH1 0x0 SLOAD SWAP4 SWAP3 POP POP POP JUMP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 0xc6 JUMPI RETURNDATACOPY 0x4c PUSH28 0x6AB6A4AEC09194599F94BC00B98E755E2DC8BAD25F2A0A020244FC00 0x29 PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH1 0x40 DUP1 PUSH2 0x10A DUP4 CODECOPY DUP2 ADD PUSH1 0x40 MSTORE DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD MLOAD PUSH1 0x0 SWAP2 SWAP1 SWAP2 SSTORE PUSH1 0x1 SSTORE PUSH1 0xCA DUP1 PUSH2 0x40 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH1 0x3E JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x1E1401F8 DUP2 EQ PUSH1 0x43 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH1 0x4E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x77 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH1 0x90 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB ADD SWAP1 RETURN JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 SLOAD SWAP4 POP SWAP4 SWAP2 POP POP JUMP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 0xf5 SWAP11 0x5f DIV SWAP10 0xe8 0x4f 0xad 0xcd MOD 0xe2 DUP6 ADDRESS 0xc7 0x4f 0xe2 SWAP5 DUP9 0xcd 0xbf 0xd8 0xab EXTCODESIZE SWAP5 SWAP14 0xf6 0xf 0x2e PUSH29 0x4958FE0029000000000000000000000000000000000000000000000000 ", + "sourceMap": "1166:795:41:-;;;249:1:68;362:32;;2522:5:3;2489:38;;1294:197:41;8:9:-1;5:2;;;30:1;27;20:12;5:2;1294:197:41;;;;;;;;;;;;;;;;;;;488:5:66;:18;;-1:-1:-1;;;;;;488:18:66;496:10;488:18;;;1388:1:41;;;475:23:72;1388:1:41;475:13:72;;;;:23;:::i;:::-;-1:-1:-1;1931:8:60;:39;;-1:-1:-1;;;;;1931:39:60;;;-1:-1:-1;;;;;;1931:39:60;;;;;;;;1974:12;:43;;;;;;;;-1:-1:-1;2227:42:3;1931:8:60;3434:32:3;:11;:32;;;:39;;-1:-1:-1;;3434:39:3;1931::60;3434::3;;;1429:7:41;1412:25;;:::i;:::-;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;1397:12:41;:40;;-1:-1:-1;;;;;;1397:40:41;-1:-1:-1;;;;;1397:40:41;;;;;;;;;;1473:7;1482:4;1456:31;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;1456:31:41;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;1441:12:41;:46;;-1:-1:-1;;;;;;1441:46:41;-1:-1:-1;;;;;1441:46:41;;;;;;;;;;-1:-1:-1;1166:795:41;;-1:-1:-1;1166:795:41;553:117:72;-1:-1:-1;;;;;620:22:72;;;;612:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;553:117;:::o;1166:795:41:-;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "6080604052600436106101875763ffffffff60e060020a600035041663024c7ec7811461018c57806302ef521e146101a857806303613f39146101ce5780630c8496cc146102035780632978c10e146102735780632fe8a6ad146102fc57806349d10b6414610311578063569706eb146103265780635d732ff2146103895780635e35359e1461039e57806361cd756e146103c8578063699e7546146103f957806379ba50971461040e5780637b103999146104235780637f9c0ecd146104385780638077ccf71461048f57806389f9cc61146104b05780638da5cb5b1461052357806398e9574014610538578063ab6214ce1461054d578063b1e9932b146105b7578063b4a176d314610622578063b77d239b14610637578063c52173de146106a1578063c7ba24bc14610700578063c98fefed1461075e578063cb32564e146107bc578063d4ee1d9014610830578063d734fa1914610845578063e57738e5146108bc578063f2fde38b1461092c578063f3898a971461094d578063f3bc7d2a1461099e575b600080fd5b34801561019857600080fd5b506101a660043515156109b6565b005b3480156101b457600080fd5b506101a6600160a060020a036004351660243515156109fe565b3480156101da57600080fd5b506101ef600160a060020a0360043516610a47565b604080519115158252519081900360200190f35b34801561020f57600080fd5b506040805160206004803580820135838102808601850190965280855261025a953695939460249493850192918291850190849080828437509497505093359450610a589350505050565b6040805192835260208301919091528051918290030190f35b34801561027f57600080fd5b50604080516020600480358082013583810280860185019096528085526102ea9536959394602494938501929182918501908490808284375094975050843595505050602083013592600160a060020a03604082013581169350606082013516915060800135610a70565b60408051918252519081900360200190f35b34801561030857600080fd5b506101ef610a8b565b34801561031d57600080fd5b506101a6610aac565b604080516020600480358082013583810280860185019096528085526102ea9536959394602494938501929182918501908490808284375094975050843595505050602083013592600160a060020a036040820135169250606001359050610d2b565b34801561039557600080fd5b506102ea610d46565b3480156103aa57600080fd5b506101a6600160a060020a0360043581169060243516604435610d4c565b3480156103d457600080fd5b506103dd610d85565b60408051600160a060020a039092168252519081900360200190f35b34801561040557600080fd5b5061025a610d94565b34801561041a57600080fd5b506101a6610db9565b34801561042f57600080fd5b506103dd610e8c565b34801561044457600080fd5b50604080516020600480358082013583810280860185019096528085526102ea953695939460249493850192918291850190849080828437509497505093359450610e9b9350505050565b34801561049b57600080fd5b506101ef600160a060020a03600435166116ca565b3480156104bc57600080fd5b50604080516020600480358082013583810280860185019096528085526102ea9536959394602494938501929182918501908490808284375094975050600160a060020a0385358116965060208601359560408101359550606001351692506116df915050565b34801561052f57600080fd5b506103dd611874565b34801561054457600080fd5b5061025a611883565b604080516020600480358082013583810280860185019096528085526102ea9536959394602494938501929182918501908490808284375094975050843595505050602083013592600160a060020a036040820135811693506060820135169150608001356118a0565b3480156105c357600080fd5b50604080516020600480358082013583810280860185019096528085526102ea953695939460249493850192918291850190849080828437509497505084359550505060208301359260400135600160a060020a031691506118c69050565b34801561062e57600080fd5b506101a66118e0565b604080516020600480358082013583810280860185019096528085526102ea9536959394602494938501929182918501908490808284375094975050843595505050602083013592600160a060020a03604082013581169350606082013516915060800135611919565b604080516020600480358082013583810280860185019096528085526102ea9536959394602494938501929182918501908490808284375094975050843595505050602083013592604081013592506060810135915060800135611b0d565b34801561070c57600080fd5b50604080516020600480358082013583810280860185019096528085526102ea95369593946024949385019291829185019084908082843750949750508435955050506020909201359150611b209050565b604080516020600480358082013583810280860185019096528085526102ea953695939460249493850192918291850190849080828437509497505084359550505060208301359260400135600160a060020a031691506118c69050565b604080516020600480358082013583810280860185019096528085526102ea95369593946024949385019291829185019084908082843750949750508435955050506020830135926040810135925060608101359150608081013590600160a060020a0360a0820135169060c00135611b3a565b34801561083c57600080fd5b506103dd611cd8565b34801561085157600080fd5b5061086c600160a060020a0360043581169060243516611ce7565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156108a8578181015183820152602001610890565b505050509050019250505060405180910390f35b3480156108c857600080fd5b50604080516020600480358082013583810280860185019096528085526102ea9536959394602494938501929182918501908490808284375094975050843595505050602083013592600160a060020a036040820135169250606001359050610d2b565b34801561093857600080fd5b506101a6600160a060020a0360043516611e18565b604080516020600480358082013583810280860185019096528085526102ea95369593946024949385019291829185019084908082843750949750508435955050506020909201359150611b209050565b3480156109aa57600080fd5b506101a6600435611eb5565b6109be611f1d565b60038054911515740100000000000000000000000000000000000000000274ff000000000000000000000000000000000000000019909216919091179055565b610a06611f1d565b81610a1081611f81565b82610a1a81611fe4565b5050600160a060020a03919091166000908152600660205260409020805460ff1916911515919091179055565b6000610a5282612045565b92915050565b600080610a658484610e9b565b946000945092505050565b6000610a80878787878787611919565b979650505050505050565b60035474010000000000000000000000000000000000000000900460ff1681565b60008054600160a060020a0316331480610ae1575060035474010000000000000000000000000000000000000000900460ff16155b1515610b37576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b610b607f436f6e74726163745265676973747279000000000000000000000000000000006120d6565b600254909150600160a060020a03808316911614801590610b895750600160a060020a03811615155b1515610bdf576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e56414c49445f5245474953545259000000000000000000000000604482015290519081900360640190fd5b604080517fbb34534c0000000000000000000000000000000000000000000000000000000081527f436f6e747261637452656769737472790000000000000000000000000000000060048201529051600091600160a060020a0384169163bb34534c9160248082019260209290919082900301818787803b158015610c6357600080fd5b505af1158015610c77573d6000803e3d6000fd5b505050506040513d6020811015610c8d57600080fd5b5051600160a060020a03161415610cee576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e56414c49445f5245474953545259000000000000000000000000604482015290519081900360640190fd5b6002805460038054600160a060020a0380841673ffffffffffffffffffffffffffffffffffffffff19928316179092559091169216919091179055565b6000610d3c86868660008787611919565b9695505050505050565b60055481565b610d54611f1d565b82610d5e81611f81565b82610d6881611f81565b83610d7281611fe4565b610d7d86868661216e565b505050505050565b600354600160a060020a031681565b6008546000908190610db190600160a060020a03168280806121fb565b915091509091565b600154600160a060020a03163314610e1b576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b60015460008054604051600160a060020a0393841693909116917f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91a3600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b600254600160a060020a031681565b600080600080600080600080600080600080610ed67f536f7672796e53776170466f726d756c610000000000000000000000000000006120d6565b94508c9a5060028e51118015610ef157508d51600290066001145b1515610f47576040805160e560020a62461bcd02815260206004820152601060248201527f4552525f494e56414c49445f5041544800000000000000000000000000000000604482015290519081900360640190fd5b600293505b8d518410156116b8578d60028503815181101515610f6657fe5b9060200190602002015192508d60018503815181101515610f8357fe5b9060200190602002015191508d84815181101515610f9d57fe5b90602001906020020151905081600160a060020a0316638da5cb5b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610fe757600080fd5b505af1158015610ffb573d6000803e3d6000fd5b505050506040513d602081101561101157600080fd5b5051955061101f86846122df565b925061102b86826122df565b905081600160a060020a031681600160a060020a0316141561138c57600384108061108257508d6003850381518110151561106257fe5b90602001906020020151600160a060020a031682600160a060020a031614155b156110f45781600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156110c557600080fd5b505af11580156110d9573d6000803e3d6000fd5b505050506040513d60208110156110ef57600080fd5b505198505b85600160a060020a031663d8959512846040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b15801561114f57600080fd5b505af1158015611163573d6000803e3d6000fd5b505050506040513d602081101561117957600080fd5b5051604080517f0e53aae9000000000000000000000000000000000000000000000000000000008152600160a060020a0386811660048301529151929a5090881691630e53aae99160248082019260a0929091908290030181600087803b1580156111e357600080fd5b505af11580156111f7573d6000803e3d6000fd5b505050506040513d60a081101561120d57600080fd5b50602090810151604080517ff3250fe2000000000000000000000000000000000000000000000000000000008152600481018d9052602481018c905263ffffffff83166044820152606481018f90529051919950600160a060020a0388169263f3250fe2926084808401938290030181600087803b15801561128e57600080fd5b505af11580156112a2573d6000803e3d6000fd5b505050506040513d60208110156112b857600080fd5b5051604080517f579cd3ca0000000000000000000000000000000000000000000000000000000081529051919c5061136e91620f42409161136291600160a060020a038b169163579cd3ca9160048083019260209291908290030181600087803b15801561132557600080fd5b505af1158015611339573d6000803e3d6000fd5b505050506040513d602081101561134f57600080fd5b50518e9063ffffffff9081169061234116565b9063ffffffff6123ba16565b9a8b90039a9950611385898c63ffffffff61242816565b98506116ad565b81600160a060020a031683600160a060020a0316141561169b5760038410806113e157508d600385038151811015156113c157fe5b90602001906020020151600160a060020a031682600160a060020a031614155b156114535781600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561142457600080fd5b505af1158015611438573d6000803e3d6000fd5b505050506040513d602081101561144e57600080fd5b505198505b85600160a060020a031663d8959512826040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b1580156114ae57600080fd5b505af11580156114c2573d6000803e3d6000fd5b505050506040513d60208110156114d857600080fd5b5051604080517f0e53aae9000000000000000000000000000000000000000000000000000000008152600160a060020a0384811660048301529151929a5090881691630e53aae99160248082019260a0929091908290030181600087803b15801561154257600080fd5b505af1158015611556573d6000803e3d6000fd5b505050506040513d60a081101561156c57600080fd5b50602090810151604080517f76cf0b56000000000000000000000000000000000000000000000000000000008152600481018d9052602481018c905263ffffffff83166044820152606481018f90529051919950600160a060020a038816926376cf0b56926084808401938290030181600087803b1580156115ed57600080fd5b505af1158015611601573d6000803e3d6000fd5b505050506040513d602081101561161757600080fd5b5051604080517f579cd3ca0000000000000000000000000000000000000000000000000000000081529051919c5061168491620f42409161136291600160a060020a038b169163579cd3ca9160048083019260209291908290030181600087803b15801561132557600080fd5b9a8b90039a9950611385898c63ffffffff61248516565b6116a78684838e6121fb565b909b5099505b600284019350610f4c565b50989c9b505050505050505050505050565b60066020526000908152604090205460ff1681565b60008085600160a060020a031663fc0c546a6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561172057600080fd5b505af1158015611734573d6000803e3d6000fd5b505050506040513d602081101561174a57600080fd5b50518751600160a060020a03909116908890600090811061176757fe5b60209081029091010151600160a060020a0316146117cf576040805160e560020a62461bcd02815260206004820152601860248201527f4552525f494e56414c49445f534f555243455f544f4b454e0000000000000000604482015290519081900360640190fd5b604080517faafd6b76000000000000000000000000000000000000000000000000000000008152600481018790523360248201529051600160a060020a0388169163aafd6b769160448083019260209291908290030181600087803b15801561183757600080fd5b505af115801561184b573d6000803e3d6000fd5b505050506040513d602081101561186157600080fd5b50519050610a8087828686600080611919565b600054600160a060020a031681565b6007546000908190610db190600160a060020a03168280806121fb565b6000846118ac816124e5565b6118ba888888888888611919565b98975050505050505050565b60006118d785858585600080611919565b95945050505050565b6118e8611f1d565b6003546002805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055565b60008060006060600061192a61253d565b600260045588611939816124e5565b60028c5111801561194f57508b51600290066001145b15156119a5576040805160e560020a62461bcd02815260206004820152601060248201527f4552525f494e56414c49445f5041544800000000000000000000000000000000604482015290519081900360640190fd5b6119e08c60008151811015156119b757fe5b906020019060200201518d60018151811015156119d057fe5b906020019060200201518d612597565b60009450600160a060020a0388161515611a4f578615611a4a576040805160e560020a62461bcd02815260206004820152601960248201527f4552525f494e56414c49445f414646494c494154455f46454500000000000000604482015290519081900360640190fd5b611abc565b866000108015611a6157506005548711155b1515611ab7576040805160e560020a62461bcd02815260206004820152601960248201527f4552525f494e56414c49445f414646494c494154455f46454500000000000000604482015290519081900360640190fd5b600194505b339350600160a060020a03891615611ad2578893505b611add8c858761279b565b9250611aec838c8c8b8b612bb2565b9150611af9838386613112565b5060016004559a9950505050505050505050565b6000610a80878787878787600080611b3a565b6000611b328484846000806000611919565b949350505050565b60008060008089611b4a816124e5565b8c518d906000198101908110611b5c57fe5b906020019060200201519350611b917f536f7672796e53776170580000000000000000000000000000000000000000006120d6565b9250611bbc7f424e54546f6b656e0000000000000000000000000000000000000000000000006120d6565b600160a060020a03858116911614611c1e576040805160e560020a62461bcd02815260206004820152601860248201527f4552525f494e56414c49445f5441524745545f544f4b454e0000000000000000604482015290519081900360640190fd5b611c2c8d8d8d308b8b611919565b9150611c398484846131f5565b604080517f427c0374000000000000000000000000000000000000000000000000000000008152600481018c9052602481018b905260448101849052606481018a90529051600160a060020a0385169163427c037491608480830192600092919082900301818387803b158015611caf57600080fd5b505af1158015611cc3573d6000803e3d6000fd5b50939f9e505050505050505050505050505050565b600154600160a060020a031681565b60606000611d147f436f6e76657273696f6e5061746846696e6465720000000000000000000000006120d6565b604080517fa1c421cd000000000000000000000000000000000000000000000000000000008152600160a060020a038781166004830152868116602483015291519293509083169163a1c421cd9160448082019260009290919082900301818387803b158015611d8357600080fd5b505af1158015611d97573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526020811015611dc057600080fd5b810190808051640100000000811115611dd857600080fd5b82016020810184811115611deb57600080fd5b8151856020820283011164010000000082111715611e0857600080fd5b50909550505050505b5092915050565b611e20611f1d565b600054600160a060020a0382811691161415611e86576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f53414d455f4f574e4552000000000000000000000000000000000000604482015290519081900360640190fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b611ebd611f1d565b620f4240811115611f18576040805160e560020a62461bcd02815260206004820152601960248201527f4552525f494e56414c49445f414646494c494154455f46454500000000000000604482015290519081900360640190fd5b600555565b600054600160a060020a03163314611f7f576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b565b600160a060020a0381161515611fe1576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b50565b600160a060020a038116301415611fe1576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f414444524553535f49535f53454c4600000000000000000000000000604482015290519081900360640190fd5b6000806120506135d7565b604080517f69735632384f72486967686572282900000000000000000000000000000000008152815190819003600f018120600482526024820190925260208082018051600160e060020a0316600160e060020a0319909416939093178352815191929091849188611388fa92508280156120cb5750815115155b93505b505050919050565b600254604080517fbb34534c000000000000000000000000000000000000000000000000000000008152600481018490529051600092600160a060020a03169163bb34534c91602480830192602092919082900301818787803b15801561213c57600080fd5b505af1158015612150573d6000803e3d6000fd5b505050506040513d602081101561216657600080fd5b505192915050565b604080517f7472616e7366657228616464726573732c75696e74323536290000000000000081528151908190036019018120600160a060020a03851660248301526044808301859052835180840390910181526064909201909252602081018051600160e060020a0316600160e060020a0319909316929092179091526121f69084906132bc565b505050565b6000806122066135f6565b604080517f67657452657475726e28616464726573732c616464726573732c75696e74323581527f36290000000000000000000000000000000000000000000000000000000000006020808301919091528251918290036022018220600160a060020a03808b16602485015289166044840152606480840189905284518085039091018152608490930184529082018051600160e060020a0316600160e060020a0319909216919091178152815191929184918b5afa8015156122c857600080fd5b505080516020909101519097909650945050505050565b600160a060020a03811660009081526006602052604081205460ff161515612308575080610a52565b61231183612045565b15612331575073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee610a52565b61233a8361334a565b9392505050565b6000808315156123545760009150611e11565b5082820282848281151561236457fe5b041461233a576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b600080808311612414576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f4449564944455f42595f5a45524f0000000000000000000000000000604482015290519081900360640190fd5b828481151561241f57fe5b04949350505050565b60008282018381101561233a576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b6000818310156124df576040805160e560020a62461bcd02815260206004820152600d60248201527f4552525f554e444552464c4f5700000000000000000000000000000000000000604482015290519081900360640190fd5b50900390565b60008111611fe1576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f5a45524f5f56414c5545000000000000000000000000000000000000604482015290519081900360640190fd5b600454600114611f7f576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f5245454e5452414e4359000000000000000000000000000000000000604482015290519081900360640190fd5b60008083600160a060020a0316638da5cb5b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156125d857600080fd5b505af11580156125ec573d6000803e3d6000fd5b505050506040513d602081101561260257600080fd5b5051915061260f82612045565b905060003411156126dd57348314612671576040805160e560020a62461bcd02815260206004820152601760248201527f4552525f4554485f414d4f554e545f4d49534d41544348000000000000000000604482015290519081900360640190fd5b8015156126d8576126818261334a565b600160a060020a031663d0e30db0346040518263ffffffff1660e060020a0281526004016000604051808303818588803b1580156126be57600080fd5b505af11580156126d2573d6000803e3d6000fd5b50505050505b612794565b600160a060020a03851660009081526006602052604090205460ff16156127765761270a85333086613497565b80156126d85784600160a060020a0316632e1a7d4d846040518263ffffffff1660e060020a02815260040180828152602001915050600060405180830381600087803b15801561275957600080fd5b505af115801561276d573d6000803e3d6000fd5b50505050612794565b8015612788576126d885338486613497565b61279485333086613497565b5050505050565b60608060008060008060008060006127b1613611565b8c51600290046040519080825280602002602001820160405280156127f057816020015b6127dd613611565b8152602001906001900390816127d55790505b509850600097506128207f424e54546f6b656e0000000000000000000000000000000000000000000000006120d6565b9650600095505b60018d51038610156129bb578c8660010181518110151561284457fe5b90602001906020020151945084600160a060020a0316638da5cb5b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561288e57600080fd5b505af11580156128a2573d6000803e3d6000fd5b505050506040513d60208110156128b857600080fd5b50518d519094508d90600288019081106128ce57fe5b9060200190602002015192508a80156128e5575087155b8015612902575086600160a060020a031683600160a060020a0316145b9150811561290f57600197505b60e06040519081016040528085600160a060020a0316815260200186600160a060020a031681526020018e8881518110151561294757fe5b90602001906020020151600160a060020a0316815260200184600160a060020a031681526020016000600160a060020a0316815260200161298786612045565b1515815283151560209091015289600288048151811015156129a557fe5b6020908102909101015260029590950194612827565b8860008151811015156129ca57fe5b6020908102909101810151604080820151600160a060020a0316600090815260069093529091205490915060ff1615612a40578060a0015115612a265773eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6040820152612a40565b8051612a319061334a565b600160a060020a031660408201525b885189906000198101908110612a5257fe5b60209081029091018101516060810151600160a060020a03166000908152600690925260409091205490915060ff1615612ac9578060a0015115612aaf5773eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6060820152612ac9565b8051612aba9061334a565b600160a060020a031660608201525b600095505b8851861015612ba1578886815181101515612ae557fe5b9060200190602002015190508060a0015115612b8f578060c0015115612b1057306080820152612b8a565b6001895103861415612b3057600160a060020a038c166080820152612b8a565b8886600101815181101515612b4157fe5b9060200190602002015160a0015115612b83578886600101815181101515612b6557fe5b6020908102909101015151600160a060020a03166080820152612b8a565b3060808201525b612b96565b3060808201525b600190950194612ace565b50969b9a5050505050505050505050565b600080600080612bc0613611565b6000899350600092505b8a518310156130ab578a83815181101515612be157fe5b9060200190602002015191508160a0015115612c72578215801590612c2e57508a5130908c906000198601908110612c1557fe5b9060200190602002015160800151600160a060020a0316145b8015612c555750604080830151600160a060020a031660009081526006602052205460ff16155b15612c6d57612c6d826040015183600001518661216e565b612ca8565b8160200151600160a060020a03168260400151600160a060020a0316141515612ca857612ca882604001518360000151866131f5565b8160a001511515612d6b578151604080840151606085015182517f5e5144eb000000000000000000000000000000000000000000000000000000008152600160a060020a039283166004820152908216602482015260448101889052600160648201529151921691635e5144eb916084808201926020929091908290030181600087803b158015612d3857600080fd5b505af1158015612d4c573d6000803e3d6000fd5b505050506040513d6020811015612d6257600080fd5b50519450612f08565b604080830151600160a060020a031660009081526006602052205460ff1615612e495781516040808401516060850151608086015183517fe8dc12ff000000000000000000000000000000000000000000000000000000008152600160a060020a03938416600482015291831660248301526044820189905233606483015282166084820152915192169163e8dc12ff91349160a480830192602092919082900301818588803b158015612e1e57600080fd5b505af1158015612e32573d6000803e3d6000fd5b50505050506040513d6020811015612d6257600080fd5b81516040808401516060850151608086015183517fe8dc12ff000000000000000000000000000000000000000000000000000000008152600160a060020a03938416600482015291831660248301526044820189905233606483015282166084820152915192169163e8dc12ff9160a4808201926020929091908290030181600087803b158015612ed957600080fd5b505af1158015612eed573d6000803e3d6000fd5b505050506040513d6020811015612f0357600080fd5b505194505b8160c001511561301a57612f29620f4240611362878a63ffffffff61234116565b90508160600151600160a060020a031663a9059cbb89836040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b158015612f9257600080fd5b505af1158015612fa6573d6000803e3d6000fd5b505050506040513d6020811015612fbc57600080fd5b50511515613014576040805160e560020a62461bcd02815260206004820152601760248201527f4552525f4645455f5452414e534645525f4641494c4544000000000000000000604482015290519081900360640190fd5b80850394505b8160600151600160a060020a03168260400151600160a060020a03168360200151600160a060020a03167f7154b38b5dd31bb3122436a96d4e09aba5b323ae1fd580025fab55074334c0958789336040518084815260200183815260200182600160a060020a0316600160a060020a03168152602001935050505060405180910390a4849350600190920191612bca565b88851015613103576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f52455455524e5f544f4f5f4c4f570000000000000000000000000000604482015290519081900360640190fd5b50929998505050505050505050565b61311a613611565b600084600186510381518110151561312e57fe5b602090810290910101516080810151909250600160a060020a0316301461315457612794565b506060810151600160a060020a03811660009081526006602052604090205460ff16156131ea5760a08201511561318757fe5b80600160a060020a031663205c287884866040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050600060405180830381600087803b15801561275957600080fd5b61279481848661216e565b604080517fdd62ed3e000000000000000000000000000000000000000000000000000000008152306004820152600160a060020a038481166024830152915160009286169163dd62ed3e91604480830192602092919082900301818787803b15801561326057600080fd5b505af1158015613274573d6000803e3d6000fd5b505050506040513d602081101561328a57600080fd5b50519050818110156132b65760008111156132ab576132ab8484600061354f565b6132b684848461354f565b50505050565b6132c46135d7565b602060405190810160405280600181525090506020818351602085016000875af18015156132f157600080fd5b50805115156121f6576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f5452414e534645525f4641494c454400000000000000000000000000604482015290519081900360640190fd5b60008060008084600160a060020a03166371f52bf36040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561338e57600080fd5b505af11580156133a2573d6000803e3d6000fd5b505050506040513d60208110156133b857600080fd5b505161ffff169250600091505b828210156134795784600160a060020a03166319b64015836040518263ffffffff1660e060020a02815260040180828152602001915050602060405180830381600087803b15801561341657600080fd5b505af115801561342a573d6000803e3d6000fd5b505050506040513d602081101561344057600080fd5b5051600160a060020a03811660009081526006602052604090205490915060ff161561346e578093506120ce565b6001909101906133c5565b5073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee949350505050565b604080517f7472616e7366657246726f6d28616464726573732c616464726573732c75696e81527f74323536290000000000000000000000000000000000000000000000000000006020808301919091528251918290036025018220600160a060020a03808816602485015286166044840152606480840186905284518085039091018152608490930190935281018051600160e060020a0316600160e060020a0319909316929092179091526132b69085906132bc565b604080517f617070726f766528616464726573732c75696e7432353629000000000000000081528151908190036018018120600160a060020a03851660248301526044808301859052835180840390910181526064909201909252602081018051600160e060020a0316600160e060020a0319909316929092179091526121f69084906132bc565b6020604051908101604052806001906020820280388339509192915050565b60408051808201825290600290829080388339509192915050565b6040805160e081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810191909152905600a165627a7a72305820c663caccd0f92dedd66f87b5b8167fe490551f2bec97adf4d32a21482d8a8ac00029", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x187 JUMPI PUSH4 0xFFFFFFFF PUSH1 0xE0 PUSH1 0x2 EXP PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x24C7EC7 DUP2 EQ PUSH2 0x18C JUMPI DUP1 PUSH4 0x2EF521E EQ PUSH2 0x1A8 JUMPI DUP1 PUSH4 0x3613F39 EQ PUSH2 0x1CE JUMPI DUP1 PUSH4 0xC8496CC EQ PUSH2 0x203 JUMPI DUP1 PUSH4 0x2978C10E EQ PUSH2 0x273 JUMPI DUP1 PUSH4 0x2FE8A6AD EQ PUSH2 0x2FC JUMPI DUP1 PUSH4 0x49D10B64 EQ PUSH2 0x311 JUMPI DUP1 PUSH4 0x569706EB EQ PUSH2 0x326 JUMPI DUP1 PUSH4 0x5D732FF2 EQ PUSH2 0x389 JUMPI DUP1 PUSH4 0x5E35359E EQ PUSH2 0x39E JUMPI DUP1 PUSH4 0x61CD756E EQ PUSH2 0x3C8 JUMPI DUP1 PUSH4 0x699E7546 EQ PUSH2 0x3F9 JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x40E JUMPI DUP1 PUSH4 0x7B103999 EQ PUSH2 0x423 JUMPI DUP1 PUSH4 0x7F9C0ECD EQ PUSH2 0x438 JUMPI DUP1 PUSH4 0x8077CCF7 EQ PUSH2 0x48F JUMPI DUP1 PUSH4 0x89F9CC61 EQ PUSH2 0x4B0 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x523 JUMPI DUP1 PUSH4 0x98E95740 EQ PUSH2 0x538 JUMPI DUP1 PUSH4 0xAB6214CE EQ PUSH2 0x54D JUMPI DUP1 PUSH4 0xB1E9932B EQ PUSH2 0x5B7 JUMPI DUP1 PUSH4 0xB4A176D3 EQ PUSH2 0x622 JUMPI DUP1 PUSH4 0xB77D239B EQ PUSH2 0x637 JUMPI DUP1 PUSH4 0xC52173DE EQ PUSH2 0x6A1 JUMPI DUP1 PUSH4 0xC7BA24BC EQ PUSH2 0x700 JUMPI DUP1 PUSH4 0xC98FEFED EQ PUSH2 0x75E JUMPI DUP1 PUSH4 0xCB32564E EQ PUSH2 0x7BC JUMPI DUP1 PUSH4 0xD4EE1D90 EQ PUSH2 0x830 JUMPI DUP1 PUSH4 0xD734FA19 EQ PUSH2 0x845 JUMPI DUP1 PUSH4 0xE57738E5 EQ PUSH2 0x8BC JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x92C JUMPI DUP1 PUSH4 0xF3898A97 EQ PUSH2 0x94D JUMPI DUP1 PUSH4 0xF3BC7D2A EQ PUSH2 0x99E JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x198 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A6 PUSH1 0x4 CALLDATALOAD ISZERO ISZERO PUSH2 0x9B6 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1B4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A6 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD ISZERO ISZERO PUSH2 0x9FE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1DA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1EF PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0xA47 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x20F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x25A SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP POP SWAP4 CALLDATALOAD SWAP5 POP PUSH2 0xA58 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x27F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x2EA SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP POP DUP5 CALLDATALOAD SWAP6 POP POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD SWAP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x40 DUP3 ADD CALLDATALOAD DUP2 AND SWAP4 POP PUSH1 0x60 DUP3 ADD CALLDATALOAD AND SWAP2 POP PUSH1 0x80 ADD CALLDATALOAD PUSH2 0xA70 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x308 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1EF PUSH2 0xA8B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x31D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A6 PUSH2 0xAAC JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x2EA SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP POP DUP5 CALLDATALOAD SWAP6 POP POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD SWAP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x40 DUP3 ADD CALLDATALOAD AND SWAP3 POP PUSH1 0x60 ADD CALLDATALOAD SWAP1 POP PUSH2 0xD2B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x395 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2EA PUSH2 0xD46 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3AA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A6 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0xD4C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3D4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3DD PUSH2 0xD85 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x405 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x25A PUSH2 0xD94 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x41A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A6 PUSH2 0xDB9 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x42F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3DD PUSH2 0xE8C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x444 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x2EA SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP POP SWAP4 CALLDATALOAD SWAP5 POP PUSH2 0xE9B SWAP4 POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x49B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1EF PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x16CA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4BC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x2EA SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 CALLDATALOAD DUP2 AND SWAP7 POP PUSH1 0x20 DUP7 ADD CALLDATALOAD SWAP6 PUSH1 0x40 DUP2 ADD CALLDATALOAD SWAP6 POP PUSH1 0x60 ADD CALLDATALOAD AND SWAP3 POP PUSH2 0x16DF SWAP2 POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x52F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3DD PUSH2 0x1874 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x544 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x25A PUSH2 0x1883 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x2EA SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP POP DUP5 CALLDATALOAD SWAP6 POP POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD SWAP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x40 DUP3 ADD CALLDATALOAD DUP2 AND SWAP4 POP PUSH1 0x60 DUP3 ADD CALLDATALOAD AND SWAP2 POP PUSH1 0x80 ADD CALLDATALOAD PUSH2 0x18A0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5C3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x2EA SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP POP DUP5 CALLDATALOAD SWAP6 POP POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD SWAP3 PUSH1 0x40 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP2 POP PUSH2 0x18C6 SWAP1 POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x62E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A6 PUSH2 0x18E0 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x2EA SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP POP DUP5 CALLDATALOAD SWAP6 POP POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD SWAP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x40 DUP3 ADD CALLDATALOAD DUP2 AND SWAP4 POP PUSH1 0x60 DUP3 ADD CALLDATALOAD AND SWAP2 POP PUSH1 0x80 ADD CALLDATALOAD PUSH2 0x1919 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x2EA SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP POP DUP5 CALLDATALOAD SWAP6 POP POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD SWAP3 PUSH1 0x40 DUP2 ADD CALLDATALOAD SWAP3 POP PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP2 POP PUSH1 0x80 ADD CALLDATALOAD PUSH2 0x1B0D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x70C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x2EA SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP POP DUP5 CALLDATALOAD SWAP6 POP POP POP PUSH1 0x20 SWAP1 SWAP3 ADD CALLDATALOAD SWAP2 POP PUSH2 0x1B20 SWAP1 POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x2EA SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP POP DUP5 CALLDATALOAD SWAP6 POP POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD SWAP3 PUSH1 0x40 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP2 POP PUSH2 0x18C6 SWAP1 POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x2EA SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP POP DUP5 CALLDATALOAD SWAP6 POP POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD SWAP3 PUSH1 0x40 DUP2 ADD CALLDATALOAD SWAP3 POP PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP2 POP PUSH1 0x80 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0xA0 DUP3 ADD CALLDATALOAD AND SWAP1 PUSH1 0xC0 ADD CALLDATALOAD PUSH2 0x1B3A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x83C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3DD PUSH2 0x1CD8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x851 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x86C PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH2 0x1CE7 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP4 MLOAD DUP2 DUP4 ADD MSTORE DUP4 MLOAD SWAP2 SWAP3 DUP4 SWAP3 SWAP1 DUP4 ADD SWAP2 DUP6 DUP2 ADD SWAP2 MUL DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x8A8 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x890 JUMP JUMPDEST POP POP POP POP SWAP1 POP ADD SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8C8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x2EA SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP POP DUP5 CALLDATALOAD SWAP6 POP POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD SWAP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x40 DUP3 ADD CALLDATALOAD AND SWAP3 POP PUSH1 0x60 ADD CALLDATALOAD SWAP1 POP PUSH2 0xD2B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x938 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A6 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x1E18 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x2EA SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP POP DUP5 CALLDATALOAD SWAP6 POP POP POP PUSH1 0x20 SWAP1 SWAP3 ADD CALLDATALOAD SWAP2 POP PUSH2 0x1B20 SWAP1 POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9AA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A6 PUSH1 0x4 CALLDATALOAD PUSH2 0x1EB5 JUMP JUMPDEST PUSH2 0x9BE PUSH2 0x1F1D JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD SWAP2 ISZERO ISZERO PUSH21 0x10000000000000000000000000000000000000000 MUL PUSH21 0xFF0000000000000000000000000000000000000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0xA06 PUSH2 0x1F1D JUMP JUMPDEST DUP2 PUSH2 0xA10 DUP2 PUSH2 0x1F81 JUMP JUMPDEST DUP3 PUSH2 0xA1A DUP2 PUSH2 0x1FE4 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP2 SWAP1 SWAP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP2 ISZERO ISZERO SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA52 DUP3 PUSH2 0x2045 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xA65 DUP5 DUP5 PUSH2 0xE9B JUMP JUMPDEST SWAP5 PUSH1 0x0 SWAP5 POP SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA80 DUP8 DUP8 DUP8 DUP8 DUP8 DUP8 PUSH2 0x1919 JUMP JUMPDEST SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ DUP1 PUSH2 0xAE1 JUMPI POP PUSH1 0x3 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST ISZERO ISZERO PUSH2 0xB37 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0xB60 PUSH32 0x436F6E7472616374526567697374727900000000000000000000000000000000 PUSH2 0x20D6 JUMP JUMPDEST PUSH1 0x2 SLOAD SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP4 AND SWAP2 AND EQ DUP1 ISZERO SWAP1 PUSH2 0xB89 JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO JUMPDEST ISZERO ISZERO PUSH2 0xBDF JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245474953545259000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0xBB34534C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH32 0x436F6E7472616374526567697374727900000000000000000000000000000000 PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP2 PUSH4 0xBB34534C SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC63 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xC77 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xC8D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ ISZERO PUSH2 0xCEE JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245474953545259000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP5 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP3 DUP4 AND OR SWAP1 SWAP3 SSTORE SWAP1 SWAP2 AND SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH2 0xD3C DUP7 DUP7 DUP7 PUSH1 0x0 DUP8 DUP8 PUSH2 0x1919 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x5 SLOAD DUP2 JUMP JUMPDEST PUSH2 0xD54 PUSH2 0x1F1D JUMP JUMPDEST DUP3 PUSH2 0xD5E DUP2 PUSH2 0x1F81 JUMP JUMPDEST DUP3 PUSH2 0xD68 DUP2 PUSH2 0x1F81 JUMP JUMPDEST DUP4 PUSH2 0xD72 DUP2 PUSH2 0x1FE4 JUMP JUMPDEST PUSH2 0xD7D DUP7 DUP7 DUP7 PUSH2 0x216E JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x0 SWAP1 DUP2 SWAP1 PUSH2 0xDB1 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP3 DUP1 DUP1 PUSH2 0x21FB JUMP JUMPDEST SWAP2 POP SWAP2 POP SWAP1 SWAP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0xE1B JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND SWAP4 SWAP1 SWAP2 AND SWAP2 PUSH32 0x343765429AEA5A34B3FF6A3785A98A5ABB2597ACA87BFBB58632C173D585373A SWAP2 LOG3 PUSH1 0x1 DUP1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND OR SWAP1 SWAP2 SSTORE AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0xED6 PUSH32 0x536F7672796E53776170466F726D756C61000000000000000000000000000000 PUSH2 0x20D6 JUMP JUMPDEST SWAP5 POP DUP13 SWAP11 POP PUSH1 0x2 DUP15 MLOAD GT DUP1 ISZERO PUSH2 0xEF1 JUMPI POP DUP14 MLOAD PUSH1 0x2 SWAP1 MOD PUSH1 0x1 EQ JUMPDEST ISZERO ISZERO PUSH2 0xF47 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5041544800000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x2 SWAP4 POP JUMPDEST DUP14 MLOAD DUP5 LT ISZERO PUSH2 0x16B8 JUMPI DUP14 PUSH1 0x2 DUP6 SUB DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xF66 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD SWAP3 POP DUP14 PUSH1 0x1 DUP6 SUB DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xF83 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD SWAP2 POP DUP14 DUP5 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xF9D JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD SWAP1 POP DUP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x8DA5CB5B PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xFE7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xFFB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1011 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP6 POP PUSH2 0x101F DUP7 DUP5 PUSH2 0x22DF JUMP JUMPDEST SWAP3 POP PUSH2 0x102B DUP7 DUP3 PUSH2 0x22DF JUMP JUMPDEST SWAP1 POP DUP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ ISZERO PUSH2 0x138C JUMPI PUSH1 0x3 DUP5 LT DUP1 PUSH2 0x1082 JUMPI POP DUP14 PUSH1 0x3 DUP6 SUB DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x1062 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ ISZERO JUMPDEST ISZERO PUSH2 0x10F4 JUMPI DUP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x18160DDD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x10C5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x10D9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x10EF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP9 POP JUMPDEST DUP6 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xD8959512 DUP5 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x114F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1163 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1179 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xE53AAE900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 MLOAD SWAP3 SWAP11 POP SWAP1 DUP9 AND SWAP2 PUSH4 0xE53AAE9 SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0xA0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x11E3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x11F7 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0xA0 DUP2 LT ISZERO PUSH2 0x120D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x20 SWAP1 DUP2 ADD MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xF3250FE200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP14 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP13 SWAP1 MSTORE PUSH4 0xFFFFFFFF DUP4 AND PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 DUP2 ADD DUP16 SWAP1 MSTORE SWAP1 MLOAD SWAP2 SWAP10 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 AND SWAP3 PUSH4 0xF3250FE2 SWAP3 PUSH1 0x84 DUP1 DUP5 ADD SWAP4 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x128E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x12A2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x12B8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x579CD3CA00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP13 POP PUSH2 0x136E SWAP2 PUSH3 0xF4240 SWAP2 PUSH2 0x1362 SWAP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND SWAP2 PUSH4 0x579CD3CA SWAP2 PUSH1 0x4 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1325 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1339 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x134F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD DUP15 SWAP1 PUSH4 0xFFFFFFFF SWAP1 DUP2 AND SWAP1 PUSH2 0x2341 AND JUMP JUMPDEST SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x23BA AND JUMP JUMPDEST SWAP11 DUP12 SWAP1 SUB SWAP11 SWAP10 POP PUSH2 0x1385 DUP10 DUP13 PUSH4 0xFFFFFFFF PUSH2 0x2428 AND JUMP JUMPDEST SWAP9 POP PUSH2 0x16AD JUMP JUMPDEST DUP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ ISZERO PUSH2 0x169B JUMPI PUSH1 0x3 DUP5 LT DUP1 PUSH2 0x13E1 JUMPI POP DUP14 PUSH1 0x3 DUP6 SUB DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x13C1 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ ISZERO JUMPDEST ISZERO PUSH2 0x1453 JUMPI DUP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x18160DDD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1424 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1438 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x144E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP9 POP JUMPDEST DUP6 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xD8959512 DUP3 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x14AE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x14C2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x14D8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xE53AAE900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 MLOAD SWAP3 SWAP11 POP SWAP1 DUP9 AND SWAP2 PUSH4 0xE53AAE9 SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0xA0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1542 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1556 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0xA0 DUP2 LT ISZERO PUSH2 0x156C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x20 SWAP1 DUP2 ADD MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x76CF0B5600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP14 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP13 SWAP1 MSTORE PUSH4 0xFFFFFFFF DUP4 AND PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 DUP2 ADD DUP16 SWAP1 MSTORE SWAP1 MLOAD SWAP2 SWAP10 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 AND SWAP3 PUSH4 0x76CF0B56 SWAP3 PUSH1 0x84 DUP1 DUP5 ADD SWAP4 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x15ED JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1601 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1617 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x579CD3CA00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP13 POP PUSH2 0x1684 SWAP2 PUSH3 0xF4240 SWAP2 PUSH2 0x1362 SWAP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND SWAP2 PUSH4 0x579CD3CA SWAP2 PUSH1 0x4 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1325 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP11 DUP12 SWAP1 SUB SWAP11 SWAP10 POP PUSH2 0x1385 DUP10 DUP13 PUSH4 0xFFFFFFFF PUSH2 0x2485 AND JUMP JUMPDEST PUSH2 0x16A7 DUP7 DUP5 DUP4 DUP15 PUSH2 0x21FB JUMP JUMPDEST SWAP1 SWAP12 POP SWAP10 POP JUMPDEST PUSH1 0x2 DUP5 ADD SWAP4 POP PUSH2 0xF4C JUMP JUMPDEST POP SWAP9 SWAP13 SWAP12 POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP6 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xFC0C546A PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1720 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1734 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x174A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD DUP8 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP2 AND SWAP1 DUP9 SWAP1 PUSH1 0x0 SWAP1 DUP2 LT PUSH2 0x1767 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ PUSH2 0x17CF JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F534F555243455F544F4B454E0000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0xAAFD6B7600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP8 SWAP1 MSTORE CALLER PUSH1 0x24 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 AND SWAP2 PUSH4 0xAAFD6B76 SWAP2 PUSH1 0x44 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1837 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x184B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1861 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 POP PUSH2 0xA80 DUP8 DUP3 DUP7 DUP7 PUSH1 0x0 DUP1 PUSH2 0x1919 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x0 SWAP1 DUP2 SWAP1 PUSH2 0xDB1 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP3 DUP1 DUP1 PUSH2 0x21FB JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH2 0x18AC DUP2 PUSH2 0x24E5 JUMP JUMPDEST PUSH2 0x18BA DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 PUSH2 0x1919 JUMP JUMPDEST SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x18D7 DUP6 DUP6 DUP6 DUP6 PUSH1 0x0 DUP1 PUSH2 0x1919 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH2 0x18E8 PUSH2 0x1F1D JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x2 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 PUSH1 0x0 PUSH2 0x192A PUSH2 0x253D JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE DUP9 PUSH2 0x1939 DUP2 PUSH2 0x24E5 JUMP JUMPDEST PUSH1 0x2 DUP13 MLOAD GT DUP1 ISZERO PUSH2 0x194F JUMPI POP DUP12 MLOAD PUSH1 0x2 SWAP1 MOD PUSH1 0x1 EQ JUMPDEST ISZERO ISZERO PUSH2 0x19A5 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5041544800000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x19E0 DUP13 PUSH1 0x0 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x19B7 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD DUP14 PUSH1 0x1 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x19D0 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD DUP14 PUSH2 0x2597 JUMP JUMPDEST PUSH1 0x0 SWAP5 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 AND ISZERO ISZERO PUSH2 0x1A4F JUMPI DUP7 ISZERO PUSH2 0x1A4A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F414646494C494154455F46454500000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x1ABC JUMP JUMPDEST DUP7 PUSH1 0x0 LT DUP1 ISZERO PUSH2 0x1A61 JUMPI POP PUSH1 0x5 SLOAD DUP8 GT ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x1AB7 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F414646494C494154455F46454500000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SWAP5 POP JUMPDEST CALLER SWAP4 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP10 AND ISZERO PUSH2 0x1AD2 JUMPI DUP9 SWAP4 POP JUMPDEST PUSH2 0x1ADD DUP13 DUP6 DUP8 PUSH2 0x279B JUMP JUMPDEST SWAP3 POP PUSH2 0x1AEC DUP4 DUP13 DUP13 DUP12 DUP12 PUSH2 0x2BB2 JUMP JUMPDEST SWAP2 POP PUSH2 0x1AF9 DUP4 DUP4 DUP7 PUSH2 0x3112 JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x4 SSTORE SWAP11 SWAP10 POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA80 DUP8 DUP8 DUP8 DUP8 DUP8 DUP8 PUSH1 0x0 DUP1 PUSH2 0x1B3A JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1B32 DUP5 DUP5 DUP5 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x1919 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 DUP10 PUSH2 0x1B4A DUP2 PUSH2 0x24E5 JUMP JUMPDEST DUP13 MLOAD DUP14 SWAP1 PUSH1 0x0 NOT DUP2 ADD SWAP1 DUP2 LT PUSH2 0x1B5C JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD SWAP4 POP PUSH2 0x1B91 PUSH32 0x536F7672796E5377617058000000000000000000000000000000000000000000 PUSH2 0x20D6 JUMP JUMPDEST SWAP3 POP PUSH2 0x1BBC PUSH32 0x424E54546F6B656E000000000000000000000000000000000000000000000000 PUSH2 0x20D6 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 DUP2 AND SWAP2 AND EQ PUSH2 0x1C1E JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5441524745545F544F4B454E0000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x1C2C DUP14 DUP14 DUP14 ADDRESS DUP12 DUP12 PUSH2 0x1919 JUMP JUMPDEST SWAP2 POP PUSH2 0x1C39 DUP5 DUP5 DUP5 PUSH2 0x31F5 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x427C037400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP13 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP12 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x64 DUP2 ADD DUP11 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND SWAP2 PUSH4 0x427C0374 SWAP2 PUSH1 0x84 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1CAF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1CC3 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP SWAP4 SWAP16 SWAP15 POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0x1D14 PUSH32 0x436F6E76657273696F6E5061746846696E646572000000000000000000000000 PUSH2 0x20D6 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0xA1C421CD00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP7 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE SWAP2 MLOAD SWAP3 SWAP4 POP SWAP1 DUP4 AND SWAP2 PUSH4 0xA1C421CD SWAP2 PUSH1 0x44 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1D83 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1D97 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1DC0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 MLOAD PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x1DD8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD PUSH1 0x20 DUP2 ADD DUP5 DUP2 GT ISZERO PUSH2 0x1DEB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP6 PUSH1 0x20 DUP3 MUL DUP4 ADD GT PUSH5 0x100000000 DUP3 GT OR ISZERO PUSH2 0x1E08 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP SWAP1 SWAP6 POP POP POP POP POP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1E20 PUSH2 0x1F1D JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x1E86 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F4F574E4552000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x1EBD PUSH2 0x1F1D JUMP JUMPDEST PUSH3 0xF4240 DUP2 GT ISZERO PUSH2 0x1F18 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F414646494C494154455F46454500000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x5 SSTORE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x1F7F JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0x1FE1 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ADDRESS EQ ISZERO PUSH2 0x1FE1 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F414444524553535F49535F53454C4600000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2050 PUSH2 0x35D7 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x69735632384F7248696768657228290000000000000000000000000000000000 DUP2 MSTORE DUP2 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0xF ADD DUP2 KECCAK256 PUSH1 0x4 DUP3 MSTORE PUSH1 0x24 DUP3 ADD SWAP1 SWAP3 MSTORE PUSH1 0x20 DUP1 DUP3 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0xE0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xE0 PUSH1 0x2 EXP SUB NOT SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 OR DUP4 MSTORE DUP2 MLOAD SWAP2 SWAP3 SWAP1 SWAP2 DUP5 SWAP2 DUP9 PUSH2 0x1388 STATICCALL SWAP3 POP DUP3 DUP1 ISZERO PUSH2 0x20CB JUMPI POP DUP2 MLOAD ISZERO ISZERO JUMPDEST SWAP4 POP JUMPDEST POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xBB34534C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP2 PUSH4 0xBB34534C SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x213C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2150 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2166 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x7472616E7366657228616464726573732C75696E743235362900000000000000 DUP2 MSTORE DUP2 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x19 ADD DUP2 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x64 SWAP1 SWAP3 ADD SWAP1 SWAP3 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0xE0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xE0 PUSH1 0x2 EXP SUB NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE PUSH2 0x21F6 SWAP1 DUP5 SWAP1 PUSH2 0x32BC JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2206 PUSH2 0x35F6 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x67657452657475726E28616464726573732C616464726573732C75696E743235 DUP2 MSTORE PUSH32 0x3629000000000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP3 MLOAD SWAP2 DUP3 SWAP1 SUB PUSH1 0x22 ADD DUP3 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP12 AND PUSH1 0x24 DUP6 ADD MSTORE DUP10 AND PUSH1 0x44 DUP5 ADD MSTORE PUSH1 0x64 DUP1 DUP5 ADD DUP10 SWAP1 MSTORE DUP5 MLOAD DUP1 DUP6 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x84 SWAP1 SWAP4 ADD DUP5 MSTORE SWAP1 DUP3 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0xE0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xE0 PUSH1 0x2 EXP SUB NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR DUP2 MSTORE DUP2 MLOAD SWAP2 SWAP3 SWAP2 DUP5 SWAP2 DUP12 GAS STATICCALL DUP1 ISZERO ISZERO PUSH2 0x22C8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD MLOAD SWAP1 SWAP8 SWAP1 SWAP7 POP SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO ISZERO PUSH2 0x2308 JUMPI POP DUP1 PUSH2 0xA52 JUMP JUMPDEST PUSH2 0x2311 DUP4 PUSH2 0x2045 JUMP JUMPDEST ISZERO PUSH2 0x2331 JUMPI POP PUSH20 0xEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE PUSH2 0xA52 JUMP JUMPDEST PUSH2 0x233A DUP4 PUSH2 0x334A JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 ISZERO ISZERO PUSH2 0x2354 JUMPI PUSH1 0x0 SWAP2 POP PUSH2 0x1E11 JUMP JUMPDEST POP DUP3 DUP3 MUL DUP3 DUP5 DUP3 DUP2 ISZERO ISZERO PUSH2 0x2364 JUMPI INVALID JUMPDEST DIV EQ PUSH2 0x233A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP4 GT PUSH2 0x2414 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4449564944455F42595F5A45524F0000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP3 DUP5 DUP2 ISZERO ISZERO PUSH2 0x241F JUMPI INVALID JUMPDEST DIV SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 ADD DUP4 DUP2 LT ISZERO PUSH2 0x233A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 DUP4 LT ISZERO PUSH2 0x24DF JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F554E444552464C4F5700000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP SWAP1 SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 GT PUSH2 0x1FE1 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5A45524F5F56414C5545000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x4 SLOAD PUSH1 0x1 EQ PUSH2 0x1F7F JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5245454E5452414E4359000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x8DA5CB5B PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x25D8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x25EC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2602 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 POP PUSH2 0x260F DUP3 PUSH2 0x2045 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 CALLVALUE GT ISZERO PUSH2 0x26DD JUMPI CALLVALUE DUP4 EQ PUSH2 0x2671 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4554485F414D4F554E545F4D49534D41544348000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP1 ISZERO ISZERO PUSH2 0x26D8 JUMPI PUSH2 0x2681 DUP3 PUSH2 0x334A JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xD0E30DB0 CALLVALUE PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x26BE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x26D2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP JUMPDEST PUSH2 0x2794 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x2776 JUMPI PUSH2 0x270A DUP6 CALLER ADDRESS DUP7 PUSH2 0x3497 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x26D8 JUMPI DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x2E1A7D4D DUP5 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2759 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x276D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x2794 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2788 JUMPI PUSH2 0x26D8 DUP6 CALLER DUP5 DUP7 PUSH2 0x3497 JUMP JUMPDEST PUSH2 0x2794 DUP6 CALLER ADDRESS DUP7 PUSH2 0x3497 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x27B1 PUSH2 0x3611 JUMP JUMPDEST DUP13 MLOAD PUSH1 0x2 SWAP1 DIV PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x27F0 JUMPI DUP2 PUSH1 0x20 ADD JUMPDEST PUSH2 0x27DD PUSH2 0x3611 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 SWAP1 SUB SWAP1 DUP2 PUSH2 0x27D5 JUMPI SWAP1 POP JUMPDEST POP SWAP9 POP PUSH1 0x0 SWAP8 POP PUSH2 0x2820 PUSH32 0x424E54546F6B656E000000000000000000000000000000000000000000000000 PUSH2 0x20D6 JUMP JUMPDEST SWAP7 POP PUSH1 0x0 SWAP6 POP JUMPDEST PUSH1 0x1 DUP14 MLOAD SUB DUP7 LT ISZERO PUSH2 0x29BB JUMPI DUP13 DUP7 PUSH1 0x1 ADD DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x2844 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD SWAP5 POP DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x8DA5CB5B PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x288E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x28A2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x28B8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD DUP14 MLOAD SWAP1 SWAP5 POP DUP14 SWAP1 PUSH1 0x2 DUP9 ADD SWAP1 DUP2 LT PUSH2 0x28CE JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD SWAP3 POP DUP11 DUP1 ISZERO PUSH2 0x28E5 JUMPI POP DUP8 ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x2902 JUMPI POP DUP7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ JUMPDEST SWAP2 POP DUP2 ISZERO PUSH2 0x290F JUMPI PUSH1 0x1 SWAP8 POP JUMPDEST PUSH1 0xE0 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 DUP6 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP15 DUP9 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x2947 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x2987 DUP7 PUSH2 0x2045 JUMP JUMPDEST ISZERO ISZERO DUP2 MSTORE DUP4 ISZERO ISZERO PUSH1 0x20 SWAP1 SWAP2 ADD MSTORE DUP10 PUSH1 0x2 DUP9 DIV DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x29A5 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MSTORE PUSH1 0x2 SWAP6 SWAP1 SWAP6 ADD SWAP5 PUSH2 0x2827 JUMP JUMPDEST DUP9 PUSH1 0x0 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x29CA JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x40 DUP1 DUP3 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 SWAP1 SWAP4 MSTORE SWAP1 SWAP2 KECCAK256 SLOAD SWAP1 SWAP2 POP PUSH1 0xFF AND ISZERO PUSH2 0x2A40 JUMPI DUP1 PUSH1 0xA0 ADD MLOAD ISZERO PUSH2 0x2A26 JUMPI PUSH20 0xEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE PUSH1 0x40 DUP3 ADD MSTORE PUSH2 0x2A40 JUMP JUMPDEST DUP1 MLOAD PUSH2 0x2A31 SWAP1 PUSH2 0x334A JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x40 DUP3 ADD MSTORE JUMPDEST DUP9 MLOAD DUP10 SWAP1 PUSH1 0x0 NOT DUP2 ADD SWAP1 DUP2 LT PUSH2 0x2A52 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x60 DUP2 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 SWAP1 SWAP3 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 SLOAD SWAP1 SWAP2 POP PUSH1 0xFF AND ISZERO PUSH2 0x2AC9 JUMPI DUP1 PUSH1 0xA0 ADD MLOAD ISZERO PUSH2 0x2AAF JUMPI PUSH20 0xEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE PUSH1 0x60 DUP3 ADD MSTORE PUSH2 0x2AC9 JUMP JUMPDEST DUP1 MLOAD PUSH2 0x2ABA SWAP1 PUSH2 0x334A JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x60 DUP3 ADD MSTORE JUMPDEST PUSH1 0x0 SWAP6 POP JUMPDEST DUP9 MLOAD DUP7 LT ISZERO PUSH2 0x2BA1 JUMPI DUP9 DUP7 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x2AE5 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD SWAP1 POP DUP1 PUSH1 0xA0 ADD MLOAD ISZERO PUSH2 0x2B8F JUMPI DUP1 PUSH1 0xC0 ADD MLOAD ISZERO PUSH2 0x2B10 JUMPI ADDRESS PUSH1 0x80 DUP3 ADD MSTORE PUSH2 0x2B8A JUMP JUMPDEST PUSH1 0x1 DUP10 MLOAD SUB DUP7 EQ ISZERO PUSH2 0x2B30 JUMPI PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP13 AND PUSH1 0x80 DUP3 ADD MSTORE PUSH2 0x2B8A JUMP JUMPDEST DUP9 DUP7 PUSH1 0x1 ADD DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x2B41 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0xA0 ADD MLOAD ISZERO PUSH2 0x2B83 JUMPI DUP9 DUP7 PUSH1 0x1 ADD DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x2B65 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MLOAD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x80 DUP3 ADD MSTORE PUSH2 0x2B8A JUMP JUMPDEST ADDRESS PUSH1 0x80 DUP3 ADD MSTORE JUMPDEST PUSH2 0x2B96 JUMP JUMPDEST ADDRESS PUSH1 0x80 DUP3 ADD MSTORE JUMPDEST PUSH1 0x1 SWAP1 SWAP6 ADD SWAP5 PUSH2 0x2ACE JUMP JUMPDEST POP SWAP7 SWAP12 SWAP11 POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x2BC0 PUSH2 0x3611 JUMP JUMPDEST PUSH1 0x0 DUP10 SWAP4 POP PUSH1 0x0 SWAP3 POP JUMPDEST DUP11 MLOAD DUP4 LT ISZERO PUSH2 0x30AB JUMPI DUP11 DUP4 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x2BE1 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD SWAP2 POP DUP2 PUSH1 0xA0 ADD MLOAD ISZERO PUSH2 0x2C72 JUMPI DUP3 ISZERO DUP1 ISZERO SWAP1 PUSH2 0x2C2E JUMPI POP DUP11 MLOAD ADDRESS SWAP1 DUP13 SWAP1 PUSH1 0x0 NOT DUP7 ADD SWAP1 DUP2 LT PUSH2 0x2C15 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x80 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ JUMPDEST DUP1 ISZERO PUSH2 0x2C55 JUMPI POP PUSH1 0x40 DUP1 DUP4 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE KECCAK256 SLOAD PUSH1 0xFF AND ISZERO JUMPDEST ISZERO PUSH2 0x2C6D JUMPI PUSH2 0x2C6D DUP3 PUSH1 0x40 ADD MLOAD DUP4 PUSH1 0x0 ADD MLOAD DUP7 PUSH2 0x216E JUMP JUMPDEST PUSH2 0x2CA8 JUMP JUMPDEST DUP2 PUSH1 0x20 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP3 PUSH1 0x40 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ ISZERO ISZERO PUSH2 0x2CA8 JUMPI PUSH2 0x2CA8 DUP3 PUSH1 0x40 ADD MLOAD DUP4 PUSH1 0x0 ADD MLOAD DUP7 PUSH2 0x31F5 JUMP JUMPDEST DUP2 PUSH1 0xA0 ADD MLOAD ISZERO ISZERO PUSH2 0x2D6B JUMPI DUP2 MLOAD PUSH1 0x40 DUP1 DUP5 ADD MLOAD PUSH1 0x60 DUP6 ADD MLOAD DUP3 MLOAD PUSH32 0x5E5144EB00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 DUP4 AND PUSH1 0x4 DUP3 ADD MSTORE SWAP1 DUP3 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 DUP2 ADD DUP9 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x64 DUP3 ADD MSTORE SWAP2 MLOAD SWAP3 AND SWAP2 PUSH4 0x5E5144EB SWAP2 PUSH1 0x84 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2D38 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2D4C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2D62 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP5 POP PUSH2 0x2F08 JUMP JUMPDEST PUSH1 0x40 DUP1 DUP4 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x2E49 JUMPI DUP2 MLOAD PUSH1 0x40 DUP1 DUP5 ADD MLOAD PUSH1 0x60 DUP6 ADD MLOAD PUSH1 0x80 DUP7 ADD MLOAD DUP4 MLOAD PUSH32 0xE8DC12FF00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND PUSH1 0x4 DUP3 ADD MSTORE SWAP2 DUP4 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP3 ADD DUP10 SWAP1 MSTORE CALLER PUSH1 0x64 DUP4 ADD MSTORE DUP3 AND PUSH1 0x84 DUP3 ADD MSTORE SWAP2 MLOAD SWAP3 AND SWAP2 PUSH4 0xE8DC12FF SWAP2 CALLVALUE SWAP2 PUSH1 0xA4 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP6 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2E1E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2E32 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2D62 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x40 DUP1 DUP5 ADD MLOAD PUSH1 0x60 DUP6 ADD MLOAD PUSH1 0x80 DUP7 ADD MLOAD DUP4 MLOAD PUSH32 0xE8DC12FF00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND PUSH1 0x4 DUP3 ADD MSTORE SWAP2 DUP4 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP3 ADD DUP10 SWAP1 MSTORE CALLER PUSH1 0x64 DUP4 ADD MSTORE DUP3 AND PUSH1 0x84 DUP3 ADD MSTORE SWAP2 MLOAD SWAP3 AND SWAP2 PUSH4 0xE8DC12FF SWAP2 PUSH1 0xA4 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2ED9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2EED JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2F03 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP5 POP JUMPDEST DUP2 PUSH1 0xC0 ADD MLOAD ISZERO PUSH2 0x301A JUMPI PUSH2 0x2F29 PUSH3 0xF4240 PUSH2 0x1362 DUP8 DUP11 PUSH4 0xFFFFFFFF PUSH2 0x2341 AND JUMP JUMPDEST SWAP1 POP DUP2 PUSH1 0x60 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xA9059CBB DUP10 DUP4 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2F92 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2FA6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2FBC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD ISZERO ISZERO PUSH2 0x3014 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4645455F5452414E534645525F4641494C4544000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP1 DUP6 SUB SWAP5 POP JUMPDEST DUP2 PUSH1 0x60 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP3 PUSH1 0x40 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP4 PUSH1 0x20 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH32 0x7154B38B5DD31BB3122436A96D4E09ABA5B323AE1FD580025FAB55074334C095 DUP8 DUP10 CALLER PUSH1 0x40 MLOAD DUP1 DUP5 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP4 POP POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 DUP5 SWAP4 POP PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 PUSH2 0x2BCA JUMP JUMPDEST DUP9 DUP6 LT ISZERO PUSH2 0x3103 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F52455455524E5F544F4F5F4C4F570000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP SWAP3 SWAP10 SWAP9 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x311A PUSH2 0x3611 JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH1 0x1 DUP7 MLOAD SUB DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x312E JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MLOAD PUSH1 0x80 DUP2 ADD MLOAD SWAP1 SWAP3 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND ADDRESS EQ PUSH2 0x3154 JUMPI PUSH2 0x2794 JUMP JUMPDEST POP PUSH1 0x60 DUP2 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x31EA JUMPI PUSH1 0xA0 DUP3 ADD MLOAD ISZERO PUSH2 0x3187 JUMPI INVALID JUMPDEST DUP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x205C2878 DUP5 DUP7 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2759 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2794 DUP2 DUP5 DUP7 PUSH2 0x216E JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0xDD62ED3E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE SWAP2 MLOAD PUSH1 0x0 SWAP3 DUP7 AND SWAP2 PUSH4 0xDD62ED3E SWAP2 PUSH1 0x44 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3260 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3274 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x328A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 POP DUP2 DUP2 LT ISZERO PUSH2 0x32B6 JUMPI PUSH1 0x0 DUP2 GT ISZERO PUSH2 0x32AB JUMPI PUSH2 0x32AB DUP5 DUP5 PUSH1 0x0 PUSH2 0x354F JUMP JUMPDEST PUSH2 0x32B6 DUP5 DUP5 DUP5 PUSH2 0x354F JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0x32C4 PUSH2 0x35D7 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE POP SWAP1 POP PUSH1 0x20 DUP2 DUP4 MLOAD PUSH1 0x20 DUP6 ADD PUSH1 0x0 DUP8 GAS CALL DUP1 ISZERO ISZERO PUSH2 0x32F1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD ISZERO ISZERO PUSH2 0x21F6 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5452414E534645525F4641494C454400000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x71F52BF3 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x338E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x33A2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x33B8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH2 0xFFFF AND SWAP3 POP PUSH1 0x0 SWAP2 POP JUMPDEST DUP3 DUP3 LT ISZERO PUSH2 0x3479 JUMPI DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x19B64015 DUP4 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3416 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x342A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x3440 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 SWAP2 POP PUSH1 0xFF AND ISZERO PUSH2 0x346E JUMPI DUP1 SWAP4 POP PUSH2 0x20CE JUMP JUMPDEST PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x33C5 JUMP JUMPDEST POP PUSH20 0xEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x7472616E7366657246726F6D28616464726573732C616464726573732C75696E DUP2 MSTORE PUSH32 0x7432353629000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP3 MLOAD SWAP2 DUP3 SWAP1 SUB PUSH1 0x25 ADD DUP3 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP9 AND PUSH1 0x24 DUP6 ADD MSTORE DUP7 AND PUSH1 0x44 DUP5 ADD MSTORE PUSH1 0x64 DUP1 DUP5 ADD DUP7 SWAP1 MSTORE DUP5 MLOAD DUP1 DUP6 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x84 SWAP1 SWAP4 ADD SWAP1 SWAP4 MSTORE DUP2 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0xE0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xE0 PUSH1 0x2 EXP SUB NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE PUSH2 0x32B6 SWAP1 DUP6 SWAP1 PUSH2 0x32BC JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x617070726F766528616464726573732C75696E74323536290000000000000000 DUP2 MSTORE DUP2 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x18 ADD DUP2 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x64 SWAP1 SWAP3 ADD SWAP1 SWAP3 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0xE0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xE0 PUSH1 0x2 EXP SUB NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE PUSH2 0x21F6 SWAP1 DUP5 SWAP1 PUSH2 0x32BC JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 SWAP1 PUSH1 0x20 DUP3 MUL DUP1 CODESIZE DUP4 CODECOPY POP SWAP2 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD DUP3 MSTORE SWAP1 PUSH1 0x2 SWAP1 DUP3 SWAP1 DUP1 CODESIZE DUP4 CODECOPY POP SWAP2 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xE0 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE SWAP2 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x60 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0xA0 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0xC0 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP1 JUMP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 0xc6 PUSH4 0xCACCD0F9 0x2d 0xed 0xd6 PUSH16 0x87B5B8167FE490551F2BEC97ADF4D32A 0x21 0x48 0x2d DUP11 DUP11 0xc0 STOP 0x29 ", + "sourceMap": "1166:795:41:-;;;;;;;;;-1:-1:-1;;;1166:795:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3280:206:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3280:206:60;;;;;;;;;4001:157:3;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4001:157:3;-1:-1:-1;;;;;4001:157:3;;;;;;;;;1494:147:41;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1494:147:41;-1:-1:-1;;;;;1494:147:41;;;;;;;;;;;;;;;;;;;;;;;27386:148:3;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;27386:148:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;27386:148:3;;-1:-1:-1;;27386:148:3;;;-1:-1:-1;27386:148:3;;-1:-1:-1;;;;27386:148:3;;;;;;;;;;;;;;;;;;;;;;;;29727:303;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;29727:303:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;29727:303:3;;-1:-1:-1;;29727:303:3;;;-1:-1:-1;;;29727:303:3;;;;;-1:-1:-1;;;;;29727:303:3;;;;;;;-1:-1:-1;29727:303:3;;;;;;-1:-1:-1;29727:303:3;;;;;;;;;;;;;;;;;;;;;1250:38:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1250:38:60;;;;2080:832;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2080:832:60;;;;27848:274:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;27848:274:3;;-1:-1:-1;;27848:274:3;;;-1:-1:-1;;;27848:274:3;;;;;-1:-1:-1;;;;;27848:274:3;;;;;;-1:-1:-1;27848:274:3;;;;-1:-1:-1;27848:274:3;;2489:38;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2489:38:3;;;;1077:194:71;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1077:194:71;-1:-1:-1;;;;;1077:194:71;;;;;;;;;;;;1165:37:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1165:37:60;;;;;;;;-1:-1:-1;;;;;1165:37:60;;;;;;;;;;;;;;1803:156:41;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1803:156:41;;;;1159:176:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1159:176:66;;;;1085:33:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1085:33:60;;;;5106:2283:3;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;5106:2283:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5106:2283:3;;-1:-1:-1;;5106:2283:3;;;-1:-1:-1;5106:2283:3;;-1:-1:-1;;;;5106:2283:3;2556:43;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2556:43:3;-1:-1:-1;;;;;2556:43:3;;;;;14007:558;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;14007:558:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;14007:558:3;;-1:-1:-1;;;;;;;14007:558:3;;;;;-1:-1:-1;14007:558:3;;;;;;;;;;-1:-1:-1;14007:558:3;;;;;-1:-1:-1;14007:558:3;;-1:-1:-1;;14007:558:3;157:20:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;157:20:66;;;;1644:156:41;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1644:156:41;;;;28465:331:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;28465:331:3;;-1:-1:-1;;28465:331:3;;;-1:-1:-1;;;28465:331:3;;;;;-1:-1:-1;;;;;28465:331:3;;;;;;;-1:-1:-1;28465:331:3;;;;;;-1:-1:-1;28465:331:3;;;;;29441:229;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;29441:229:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;29441:229:3;;-1:-1:-1;;29441:229:3;;;-1:-1:-1;;;29441:229:3;;;;;;;;-1:-1:-1;;;;;29441:229:3;;-1:-1:-1;29441:229:3;;-1:-1:-1;29441:229:3;2974:119:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2974:119:60;;;;8480:1350:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8480:1350:3;;-1:-1:-1;;8480:1350:3;;;-1:-1:-1;;;8480:1350:3;;;;;-1:-1:-1;;;;;8480:1350:3;;;;;;;-1:-1:-1;8480:1350:3;;;;;;-1:-1:-1;8480:1350:3;;;;;10804:315;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;10804:315:3;;-1:-1:-1;;10804:315:3;;;-1:-1:-1;;;10804:315:3;;;;;;;;;;-1:-1:-1;10804:315:3;;;;;-1:-1:-1;10804:315:3;;;;;28853:200;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;28853:200:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;28853:200:3;;-1:-1:-1;;28853:200:3;;;-1:-1:-1;;;28853:200:3;;;;;;-1:-1:-1;28853:200:3;;-1:-1:-1;28853:200:3;28179:229;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;28179:229:3;;-1:-1:-1;;28179:229:3;;;-1:-1:-1;;;28179:229:3;;;;;;;;-1:-1:-1;;;;;28179:229:3;;-1:-1:-1;28179:229:3;;-1:-1:-1;28179:229:3;12204:913;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12204:913:3;;-1:-1:-1;;12204:913:3;;;-1:-1:-1;;;12204:913:3;;;;;;;;;;-1:-1:-1;12204:913:3;;;;;-1:-1:-1;12204:913:3;;;;;-1:-1:-1;;;;;12204:913:3;;;;;;;;;;;180:23:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;180:23:66;;;;4493:265:3;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4493:265:3;-1:-1:-1;;;;;4493:265:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;4493:265:3;;;;;;;;;;;;;;;;;29110:274;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;29110:274:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;29110:274:3;;-1:-1:-1;;29110:274:3;;;-1:-1:-1;;;29110:274:3;;;;;-1:-1:-1;;;;;29110:274:3;;;;;;-1:-1:-1;29110:274:3;;;;-1:-1:-1;29110:274:3;;945:140:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;945:140:66;-1:-1:-1;;;;;945:140:66;;;;;27591:200:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;27591:200:3;;-1:-1:-1;;27591:200:3;;;-1:-1:-1;;;27591:200:3;;;;;;-1:-1:-1;27591:200:3;;-1:-1:-1;27591:200:3;3608:199;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3608:199:3;;;;;3280:206:60;575:12:66;:10;:12::i;:::-;3426:26:60;:56;;;;;;;-1:-1:-1;;3426:56:60;;;;;;;;;3280:206::o;4001:157:3:-;575:12:66;:10;:12::i;:::-;4095:6:3;475:23:72;489:8;475:13;:23::i;:::-;4111:6:3;782:18:72;791:8;782;:18::i;:::-;-1:-1:-1;;;;;;;4123:19:3;;;;;;;;:11;:19;;;;;:31;;-1:-1:-1;;4123:31:3;;;;;;;;;;4001:157::o;1494:147:41:-;1580:4;1597:40;1626:10;1597:28;:40::i;:::-;1590:47;1494:147;-1:-1:-1;;1494:147:41:o;27386:148:3:-;27470:7;27479;27500:26;27511:5;27518:7;27500:10;:26::i;:::-;27492:38;27528:1;;-1:-1:-1;27386:148:3;-1:-1:-1;;;27386:148:3:o;29727:303::-;29917:7;29937:89;29951:5;29958:7;29967:10;29979:12;29993:17;30012:13;29937;:89::i;:::-;29930:96;29727:303;-1:-1:-1;;;;;;;29727:303:3:o;1250:38:60:-;;;;;;;;;:::o;2080:832::-;2281:29;2183:5;;-1:-1:-1;;;;;2183:5:60;2169:10;:19;;:50;;-1:-1:-1;2193:26:60;;;;;;;2192:27;2169:50;2161:80;;;;;;;-1:-1:-1;;;;;2161:80:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;2331:28;2341:17;2331:9;:28::i;:::-;2465:8;;2281:79;;-1:-1:-1;;;;;;2442:32:60;;;2465:8;;2442:32;;;;:61;;-1:-1:-1;;;;;;2478:25:60;;;;2442:61;2434:94;;;;;;;-1:-1:-1;;;;;2434:94:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;2628:40;;;;;;2650:17;2628:40;;;;;;2680:1;;-1:-1:-1;;;;;2628:21:60;;;;;:40;;;;;;;;;;;;;;;2680:1;2628:21;:40;;;5:2:-1;;;;30:1;27;20:12;5:2;2628:40:60;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2628:40:60;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2628:40:60;-1:-1:-1;;;;;2628:54:60;;;2620:87;;;;;-1:-1:-1;;;;;2620:87:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;2799:8;;;2784:12;:23;;-1:-1:-1;;;;;2799:8:60;;;-1:-1:-1;;2784:23:60;;;;;;;2886:22;;;;;;;;;;;2080:832::o;27848:274:3:-;28011:7;28031:87;28045:5;28052:7;28061:10;28081:1;28085:17;28104:13;28031;:87::i;:::-;28024:94;27848:274;-1:-1:-1;;;;;;27848:274:3:o;2489:38::-;;;;:::o;1077:194:71:-;575:12:66;:10;:12::i;:::-;1190:6:71;475:23:72;489:8;475:13;:23::i;:::-;1211:3:71;475:23:72;489:8;475:13;:23::i;:::-;1224:3:71;782:18:72;791:8;782;:18::i;:::-;1233:34:71;1246:6;1254:3;1259:7;1233:12;:34::i;:::-;502:1:72;;591::66;1077:194:71;;;:::o;1165:37:60:-;;;-1:-1:-1;;;;;1165:37:60;;:::o;1803:156:41:-;1897:12;;1850:7;;;;1879:76;;-1:-1:-1;;;;;1897:12:41;1850:7;;;1879:9;:76::i;:::-;1872:83;;;;1803:156;;:::o;1159:176:66:-;1219:8;;-1:-1:-1;;;;;1219:8:66;1205:10;:22;1197:52;;;;;-1:-1:-1;;;;;1197:52:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;1277:8;;;1270:5;;1258:28;;-1:-1:-1;;;;;1277:8:66;;;;1270:5;;;;1258:28;;;1298:8;;;;1290:16;;-1:-1:-1;;1290:16:66;;;-1:-1:-1;;;;;1298:8:66;;1290:16;;;;1310:21;;;1159:176::o;1085:33:60:-;;;-1:-1:-1;;;;;1085:33:60;;:::o;5106:2283:3:-;5185:7;5198:14;5216:11;5231:14;5249:15;5268:13;5285:20;5309:26;5596:9;5642:23;5685:18;5723:23;5357:29;5367:18;5357:9;:29::i;:::-;5309:78;;5401:7;5392:16;;5501:1;5486:5;:12;:16;:41;;;;-1:-1:-1;5506:12:3;;5521:1;;5506:16;5526:1;5506:21;5486:41;5478:70;;;;;;;-1:-1:-1;;;;;5478:70:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;5608:1;5596:13;;5591:1777;5615:5;:12;5611:1;:16;5591:1777;;;5668:5;5678:1;5674;:5;5668:12;;;;;;;;;;;;;;;;;;5642:38;;5706:5;5716:1;5712;:5;5706:12;;;;;;;;;;;;;;;;;;5685:33;;5749:5;5755:1;5749:8;;;;;;;;;;;;;;;;;;5723:34;;5803:6;-1:-1:-1;;;;;5786:30:3;;:32;;;;;-1:-1:-1;;;5786:32:3;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5786:32:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5786:32:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5786:32:3;;-1:-1:-1;5868:48:3;5786:32;5904:11;5868:24;:48::i;:::-;5854:62;;5935:48;5960:9;5971:11;5935:24;:48::i;:::-;5921:62;;6008:6;-1:-1:-1;;;;;5993:21:3;:11;-1:-1:-1;;;;;5993:21:3;;5989:1375;;;6109:1;6105;:5;:31;;;;6124:5;6134:1;6130;:5;6124:12;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6114:22:3;:6;-1:-1:-1;;;;;6114:22:3;;;6105:31;6101:79;;;6159:6;-1:-1:-1;;;;;6147:31:3;;:33;;;;;-1:-1:-1;;;6147:33:3;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6147:33:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6147:33:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6147:33:3;;-1:-1:-1;6101:79:3;6240:9;-1:-1:-1;;;;;6240:29:3;;6270:11;6240:42;;;;;-1:-1:-1;;;6240:42:3;;;;;;;-1:-1:-1;;;;;6240:42:3;-1:-1:-1;;;;;6240:42:3;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6240:42:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6240:42:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6240:42:3;6307:33;;;;;;-1:-1:-1;;;;;6307:33:3;;;;;;;;;6240:42;;-1:-1:-1;6307:20:3;;;;;;:33;;;;;;;;;;;;;;;-1:-1:-1;6307:20:3;:33;;;5:2:-1;;;;30:1;27;20:12;5:2;6307:33:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6307:33:3;;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;6307:33:3;;;;;;6355:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6307:33;;-1:-1:-1;;;;;;6355:28:3;;;;;:61;;;;;;;;;;-1:-1:-1;6355:28:3;:61;;;5:2:-1;;;;30:1;27;20:12;5:2;6355:61:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6355:61:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6355:61:3;6439:25;;;;;;;;6355:61;;-1:-1:-1;6428:68:3;;2108:7;;6428:37;;-1:-1:-1;;;;;6439:23:3;;;;;:25;;;;;6355:61;;6439:25;;;;;;;;:23;:25;;;5:2:-1;;;;30:1;27;20:12;5:2;6439:25:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6439:25:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6439:25:3;6428:6;;:37;;;;;:10;:37;:::i;:::-;:41;:68;:41;:68;:::i;:::-;6502:13;;;;;6422:74;-1:-1:-1;6591:18:3;:6;6502:13;6591:18;:10;:18;:::i;:::-;6582:27;;5989:1375;;;6640:6;-1:-1:-1;;;;;6625:21:3;:11;-1:-1:-1;;;;;6625:21:3;;6621:743;;;6742:1;6738;:5;:31;;;;6757:5;6767:1;6763;:5;6757:12;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6747:22:3;:6;-1:-1:-1;;;;;6747:22:3;;;6738:31;6734:79;;;6792:6;-1:-1:-1;;;;;6780:31:3;;:33;;;;;-1:-1:-1;;;6780:33:3;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6780:33:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6780:33:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6780:33:3;;-1:-1:-1;6734:79:3;6873:9;-1:-1:-1;;;;;6873:29:3;;6903:11;6873:42;;;;;-1:-1:-1;;;6873:42:3;;;;;;;-1:-1:-1;;;;;6873:42:3;-1:-1:-1;;;;;6873:42:3;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6873:42:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6873:42:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6873:42:3;6940:33;;;;;;-1:-1:-1;;;;;6940:33:3;;;;;;;;;6873:42;;-1:-1:-1;6940:20:3;;;;;;:33;;;;;;;;;;;;;;;-1:-1:-1;6940:20:3;:33;;;5:2:-1;;;;30:1;27;20:12;5:2;6940:33:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6940:33:3;;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;6940:33:3;;;;;;6988:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6940:33;;-1:-1:-1;;;;;;6988:24:3;;;;;:57;;;;;;;;;;-1:-1:-1;6988:24:3;:57;;;5:2:-1;;;;30:1;27;20:12;5:2;6988:57:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6988:57:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6988:57:3;7068:25;;;;;;;;6988:57;;-1:-1:-1;7057:68:3;;2108:7;;7057:37;;-1:-1:-1;;;;;7068:23:3;;;;;:25;;;;;6988:57;;7068:25;;;;;;;;:23;:25;;;5:2:-1;;;;30:1;27;20:12;7057:68:3;7131:13;;;;;7051:74;-1:-1:-1;7220:18:3;:6;7131:13;7220:18;:10;:18;:::i;6621:743::-;7304:54;7314:9;7325:11;7338;7351:6;7304:9;:54::i;:::-;7288:70;;-1:-1:-1;7288:70:3;-1:-1:-1;6621:743:3;5634:1;5629:6;;;;5591:1777;;;-1:-1:-1;7379:6:3;;5106:2283;-1:-1:-1;;;;;;;;;;;;5106:2283:3:o;2556:43::-;;;;;;;;;;;;;;;:::o;14007:558::-;14178:7;14377:14;14270:12;-1:-1:-1;;;;;14270:18:3;;:20;;;;;-1:-1:-1;;;14270:20:3;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14270:20:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14270:20:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;14270:20:3;14258:8;;-1:-1:-1;;;;;14258:32:3;;;;:5;;14264:1;;14258:8;;;;;;;;;;;;;;;-1:-1:-1;;;;;14258:32:3;;14250:69;;;;;-1:-1:-1;;;;;14250:69:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;14394:58;;;;;;;;;;;;14441:10;14394:58;;;;;;-1:-1:-1;;;;;14394:31:3;;;;;:58;;;;;;;;;;;;;;-1:-1:-1;14394:31:3;:58;;;5:2:-1;;;;30:1;27;20:12;5:2;14394:58:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14394:58:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;14394:58:3;;-1:-1:-1;14492:69:3;14506:5;14394:58;14521:10;14533:12;14555:1;;14492:13;:69::i;157:20:66:-;;;-1:-1:-1;;;;;157:20:66;;:::o;1644:156:41:-;1738:12;;1691:7;;;;1720:76;;-1:-1:-1;;;;;1738:12:41;1691:7;;;1720:9;:76::i;28465:331:3:-;28683:7;28662:10;180:24:72;197:6;180:16;:24::i;:::-;28703:89:3;28717:5;28724:7;28733:10;28745:12;28759:17;28778:13;28703;:89::i;:::-;28696:96;28465:331;-1:-1:-1;;;;;;;;28465:331:3:o;29441:229::-;29576:7;29596:70;29610:5;29617:7;29626:10;29638:12;29660:1;29664;29596:13;:70::i;:::-;29589:77;29441:229;-1:-1:-1;;;;;29441:229:3:o;2974:119:60:-;575:12:66;:10;:12::i;:::-;3077::60;;3066:8;:23;;-1:-1:-1;;3066:23:60;-1:-1:-1;;;;;3077:12:60;;;3066:23;;;;;;2974:119::o;8480:1350:3:-;8710:7;9077:24;9391:19;9532:28;9628:14;565:12:68;:10;:12::i;:::-;287:1;581:5;:14;8689:10:3;180:24:72;8689:10:3;180:16:72;:24::i;:::-;8845:1:3;8830:5;:12;:16;:41;;;;-1:-1:-1;8850:12:3;;8865:1;;8850:16;8870:1;8850:21;8830:41;8822:70;;;;;;;-1:-1:-1;;;;;8822:70:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;8969:64;8987:5;8993:1;8987:8;;;;;;;;;;;;;;;;;;9014:5;9020:1;9014:8;;;;;;;;;;;;;;;;;;9025:7;8969:17;:64::i;:::-;9104:5;;-1:-1:-1;;;;;;9117:31:3;;;9113:241;;;9163:18;;9155:56;;;;;-1:-1:-1;;;;;9155:56:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;9113:241;;;9239:13;9235:1;:17;:53;;;;;9273:15;;9256:13;:32;;9235:53;9227:91;;;;;;;-1:-1:-1;;;;;9227:91:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;9345:4;9323:26;;9113:241;9413:10;;-1:-1:-1;;;;;;9431:26:3;;;9427:58;;9473:12;9459:26;;9427:58;9563:61;9584:5;9591:11;9604:19;9563:20;:61::i;:::-;9532:92;;9645:73;9658:4;9664:7;9673:10;9685:17;9704:13;9645:12;:73::i;:::-;9628:90;;9764:44;9782:4;9788:6;9796:11;9764:17;:44::i;:::-;-1:-1:-1;249:1:68;604:5;:16;9820:6:3;8480:1350;-1:-1:-1;;;;;;;;;;8480:1350:3:o;10804:315::-;10993:7;11013:102;11023:5;11030:7;11039:10;11051:17;11070:14;11086:13;11109:1;11113;11013:9;:102::i;28853:200::-;28961:7;28981:68;28995:5;29002:7;29011:10;29031:1;29043;29047;28981:13;:68::i;:::-;28974:75;28853:200;-1:-1:-1;;;;28853:200:3:o;12204:913::-;12476:7;12489:23;12542:24;12776:14;12455:10;180:24:72;197:6;180:16;:24::i;:::-;12521:12:3;;12515:5;;-1:-1:-1;;12521:16:3;;;12515:23;;;;;;;;;;;;;;12489:49;;12582:23;12592:12;12582:9;:23::i;:::-;12542:64;;12680:20;12690:9;12680;:20::i;:::-;-1:-1:-1;;;;;12665:35:3;;;;;;12657:72;;;;;-1:-1:-1;;;;;12657:72:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;12793:81;12807:5;12814:7;12823:10;12835:4;12841:17;12860:13;12793;:81::i;:::-;12776:98;;12912:49;12928:11;12941;12954:6;12912:15;:49::i;:::-;13016:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13016:21:3;;;;;:79;;;;;;;;;;;;;;;:21;:79;;;5:2:-1;;;;30:1;27;20:12;5:2;13016:79:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;13107:6:3;;12204:913;-1:-1:-1;;;;;;;;;;;;;;;12204:913:3:o;180:23:66:-;;;-1:-1:-1;;;;;180:23:66;;:::o;4493:265:3:-;4590:9;4605:32;4662:33;4672:22;4662:9;:33::i;:::-;4707:47;;;;;;-1:-1:-1;;;;;4707:47:3;;;;;;;;;;;;;;;;4605:91;;-1:-1:-1;4707:19:3;;;;;;:47;;;;;-1:-1:-1;;4707:47:3;;;;;;;;-1:-1:-1;4707:19:3;:47;;;5:2:-1;;;;30:1;27;20:12;5:2;4707:47:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4707:47:3;;;;;;39:16:-1;36:1;17:17;2:54;101:4;4707:47:3;80:15:-1;;;-1:-1;;76:31;65:43;;120:4;113:20;13:2;5:11;;2:2;;;29:1;26;19:12;2:2;4707:47:3;;;;;;20:11:-1;15:3;12:20;9:2;;;45:1;42;35:12;9:2;64:21;;126:4;117:14;;142:31;;;139:2;;;186:1;183;176:12;139:2;224:3;218:10;339:9;333:2;319:12;315:21;297:16;293:44;290:59;268:11;254:12;251:29;239:119;236:2;;;371:1;368;361:12;236:2;-1:-1;4707:47:3;;-1:-1:-1;;;;;4493:265:3;;;;;;:::o;945:140:66:-;575:12;:10;:12::i;:::-;1033:5;;-1:-1:-1;;;;;1020:18:66;;;1033:5;;1020:18;;1012:45;;;;;-1:-1:-1;;;;;1012:45:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;1061:8;:20;;-1:-1:-1;;1061:20:66;-1:-1:-1;;;;;1061:20:66;;;;;;;;;;945:140::o;3608:199:3:-;575:12:66;:10;:12::i;:::-;2170:7:3;3691:44;;;3683:82;;;;;-1:-1:-1;;;;;3683:82:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;3769:15;:34;3608:199::o;642:93:66:-;704:5;;-1:-1:-1;;;;;704:5:66;690:10;:19;682:49;;;;;-1:-1:-1;;;;;682:49:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;642:93::o;553:117:72:-;-1:-1:-1;;;;;620:22:72;;;;612:54;;;;;-1:-1:-1;;;;;612:54:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;553:117;:::o;855:115::-;-1:-1:-1;;;;;917:25:72;;937:4;917:25;;909:57;;;;;-1:-1:-1;;;;;909:57:72;;;;;;;;;;;;;;;;;;;;;;;;;;;26704:625:3;26782:4;26792:12;26808:21;;:::i;:::-;26515:28;;;;;;;;;;;;;;;;22:32:-1;6:49;;26853:54:3;;;;;;49:4:-1;25:18;;;61:17;;-1:-1;;;;;182:15;-1:-1;;;;;;26853:54:3;;;179:29:-1;;;;160:49;;27152:11:3;;26515:28;;49:4:-1;;27238:3:3;;27024:10;26953:4;26937:351;26926:362;;27303:7;:22;;;;-1:-1:-1;27314:6:3;;:11;;27303:22;27296:29;;26704:625;;;;;;;:::o;3647:122:60:-;3732:8;;:33;;;;;;;;;;;;;;3712:7;;-1:-1:-1;;;;;3732:8:60;;:18;;:33;;;;;;;;;;;;;;3712:7;3732:8;:33;;;5:2:-1;;;;30:1;27;20:12;5:2;3732:33:60;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3732:33:60;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3732:33:60;;3647:122;-1:-1:-1;;3647:122:60:o;1214:173:70:-;248:38;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1323:59:70;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;1323:59:70;;;;;;;;25:18:-1;;61:17;;-1:-1;;;;;182:15;-1:-1;;;;;;1323:59:70;;;179:29:-1;;;;160:49;;;1307:76:70;;1315:6;;1307:7;:76::i;:::-;1214:173;;;:::o;25751:697:3:-;25880:7;25889;25902:21;;:::i;:::-;25615:47;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;25947:85:3;;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;25947:85:3;;;;;;25:18:-1;;;61:17;;-1:-1;;;;;182:15;-1:-1;;;;;;25947:85:3;;;179:29:-1;;;;160:49;;26231:11:3;;25947:85;;25615:47;26317:3;;26108:5;26082:3;26066:301;26381:7;26374:15;26371:2;;;26406:1;26403;26396:12;26371:2;-1:-1:-1;;26429:6:3;;;26437;;;;26429;;26437;;-1:-1:-1;25751:697:3;-1:-1:-1;;;;;25751:697:3:o;25245:309::-;-1:-1:-1;;;;;25366:19:3;;25344:11;25366:19;;;:11;:19;;;;;;;;25365:20;25361:39;;;-1:-1:-1;25394:6:3;25387:13;;25361:39;25409:34;25432:10;25409:22;:34::i;:::-;25405:79;;;-1:-1:-1;2227:42:3;25445:39;;25405:79;25508:41;25538:10;25508:29;:41::i;:::-;25489:61;25245:309;-1:-1:-1;;;25245:309:3:o;924:197:69:-;984:7;;1023;;1019:21;;;1039:1;1032:8;;;;1019:21;-1:-1:-1;1057:7:69;;;1062:2;1057;:7;1076:6;;;;;;;;:12;1068:37;;;;;-1:-1:-1;;;;;1068:37:69;;;;;;;;;;;;;;;;;;;;;;;;;;;1307:149;1367:7;;1388:6;;;1380:37;;;;;-1:-1:-1;;;;;1380:37:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;1438:2;1433;:7;;;;;;;;;1307:149;-1:-1:-1;;;;1307:149:69:o;288:144::-;348:7;373;;;392;;;;384:32;;;;;-1:-1:-1;;;;;384:32:69;;;;;;;;;;;;;;;;;;;;;;;;;;;613:129;673:7;694:8;;;;686:34;;;;;-1:-1:-1;;;;;686:34:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;731:7:69;;;613:129::o;259:101:72:-;336:1;327:10;;319:37;;;;;-1:-1:-1;;;;;319:37:72;;;;;;;;;;;;;;;;;;;;;;;;;;;670:88:68;718:5;;249:1;718:17;710:44;;;;;-1:-1:-1;;;;;710:44:68;;;;;;;;;;;;;;;;;;;;;;;;;;;17692:1360:3;17809:25;17868:21;17848:7;-1:-1:-1;;;;;17848:13:3;;:15;;;;;-1:-1:-1;;;17848:15:3;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17848:15:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17848:15:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;17848:15:3;;-1:-1:-1;17892:38:3;17848:15;17892:22;:38::i;:::-;17868:62;;17960:1;17948:9;:13;17944:1105;;;18001:9;:20;;17993:56;;;;;-1:-1:-1;;;;;17993:56:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;18243:16;18242:17;18238:108;;;18273:45;18303:14;18273:29;:45::i;:::-;-1:-1:-1;;;;;18261:66:3;;18334:9;18261:85;;;;;-1:-1:-1;;;18261:85:3;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18261:85:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;18261:85:3;;;;;18238:108;17944:1105;;;-1:-1:-1;;;;;18379:25:3;;;;;;:11;:25;;;;;;;;18375:674;;;18561:57;18578:12;18592:10;18604:4;18610:7;18561:16;:57::i;:::-;18667:16;18663:65;;;18697:12;-1:-1:-1;;;;;18685:34:3;;18720:7;18685:43;;;;;-1:-1:-1;;;18685:43:3;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18685:43:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;18685:43:3;;;;18375:674;;;18892:16;18888:156;;;18910:67;18927:12;18941:10;18953:14;18969:7;18910:16;:67::i;18888:156::-;18987:57;19004:12;19018:10;19030:4;19036:7;18987:16;:57::i;:::-;17692:1360;;;;;:::o;20566:3379::-;20707:16;20729:28;20813:26;20851:16;20972:9;21042:23;21113:20;21167:23;21287:24;21971:30;;:::i;:::-;20781:22;;20806:1;;20781:26;20760:48;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;20729:79;;20842:5;20813:34;;20870:20;20880:9;20870;:20::i;:::-;20851:39;;20994:1;20990:5;;20985:946;21026:1;21001:15;:22;:26;20997:1;:30;20985:946;;;21085:15;21101:1;21105;21101:5;21085:22;;;;;;;;;;;;;;;;;;21042:66;;21147:6;-1:-1:-1;;;;;21147:12:3;;:14;;;;;-1:-1:-1;;;21147:14:3;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;21147:14:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;21147:14:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;21147:14:3;21193:22;;21147:14;;-1:-1:-1;21193:15:3;;21213:1;21209:5;;;21193:22;;;;;;;;;;;;;;21167:48;;21314:20;:46;;;;;21339:21;21338:22;21314:46;:73;;;;;21379:8;-1:-1:-1;;;;;21364:23:3;:11;-1:-1:-1;;;;;21364:23:3;;21314:73;21287:100;;21396:19;21392:53;;;21441:4;21417:28;;21392:53;21465:461;;;;;;;;;21574:9;-1:-1:-1;;;;;21465:461:3;;;;;21526:6;-1:-1:-1;;;;;21465:461:3;;;;;21638:15;21654:1;21638:18;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;21465:461:3;;;;;21675:11;-1:-1:-1;;;;;21465:461:3;;;;;21792:1;-1:-1:-1;;;;;21465:461:3;;;;;21841:33;21864:9;21841:22;:33::i;:::-;21465:461;;;;;;;;;;;;21451:4;21460:1;21456;:5;21451:11;;;;;;;;;;;;;;;;;;:475;21034:1;21029:6;;;;;20985:946;;;22004:4;22009:1;22004:7;;;;;;;;;;;;;;;;;;;;22031:20;;;;;-1:-1:-1;;;;;22019:33:3;;;;;:11;:33;;;;;;;22004:7;;-1:-1:-1;22019:33:3;;22015:422;;;22145:8;:31;;;22141:291;;;2227:42;22182:20;;;:55;22141:291;;;22412:18;;22382:49;;:29;:49::i;:::-;-1:-1:-1;;;;;22347:85:3;:20;;;:85;22141:291;22476:11;;22471:4;;-1:-1:-1;;22476:15:3;;;22471:21;;;;;;;;;;;;;;;;22512:20;;;;-1:-1:-1;;;;;22500:33:3;;;;;:11;:33;;;;;;;;22471:21;;-1:-1:-1;22500:33:3;;22496:422;;;22626:8;:31;;;22622:291;;;2227:42;22663:20;;;:55;22622:291;;;22893:18;;22863:49;;:29;:49::i;:::-;-1:-1:-1;;;;;22828:85:3;:20;;;:85;22622:291;22970:1;22966:5;;22961:965;22977:4;:11;22973:1;:15;22961:965;;;23011:4;23016:1;23011:7;;;;;;;;;;;;;;;;;;23000:18;;23149:8;:31;;;23145:777;;;23279:8;:28;;;23275:520;;;23337:4;23314:20;;;:27;23275:520;;;23443:1;23429:4;:11;:15;23424:1;:20;23420:375;;;-1:-1:-1;;;;;23451:35:3;;:20;;;:35;23420:375;;;23587:4;23592:1;23596;23592:5;23587:11;;;;;;;;;;;;;;;;;;:34;;;23583:212;;;23651:4;23656:1;23660;23656:5;23651:11;;;;;;;;;;;;;;;;;;;:21;-1:-1:-1;;;;;23628:44:3;:20;;;:44;23583:212;;;23791:4;23768:20;;;:27;23583:212;23145:777;;;23912:4;23889:20;;;:27;23145:777;22990:3;;;;;22961:965;;;-1:-1:-1;23937:4:3;;20566:3379;-1:-1:-1;;;;;;;;;;;20566:3379:3:o;15125:2257::-;15288:7;15301:16;15321:18;15397:9;15440:30;;:::i;:::-;16869:23;15342:7;15321:28;;15409:1;15397:13;;15392:1852;15416:5;:12;15412:1;:16;15392:1852;;;15473:5;15479:1;15473:8;;;;;;;;;;;;;;;;;;15440:41;;15513:8;:31;;;15509:731;;;15720:6;;;;;:51;;-1:-1:-1;15730:12:3;;15766:4;;15730:5;;-1:-1:-1;;15736:5:3;;;15730:12;;;;;;;;;;;;;;:24;;;-1:-1:-1;;;;;15730:41:3;;15720:51;:89;;;;-1:-1:-1;15788:20:3;;;;;-1:-1:-1;;;;;15776:33:3;;;;;:11;:33;;;;;;15775:34;15720:89;15716:166;;;15816:66;15829:8;:20;;;15851:8;:18;;;15871:10;15816:12;:66::i;:::-;15509:731;;;16062:8;:15;;;-1:-1:-1;;;;;16026:52:3;:8;:20;;;-1:-1:-1;;;;;16026:52:3;;;16022:218;;;16165:69;16181:8;:20;;;16203:8;:18;;;16223:10;16165:15;:69::i;:::-;16274:8;:31;;;16273:32;16269:520;;;16339:18;;16366:20;;;;;16388;;;;16322:102;;;;;-1:-1:-1;;;;;16322:102:3;;;;;;;;;;;;;;;;;;;;16422:1;16322:102;;;;;;:43;;;;;:102;;;;;;;;;;;;;;;16339:18;16322:43;:102;;;5:2:-1;;;;30:1;27;20:12;5:2;16322:102:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16322:102:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;16322:102:3;;-1:-1:-1;16269:520:3;;;16450:20;;;;;-1:-1:-1;;;;;16438:33:3;;;;;:11;:33;;;;;;16434:355;;;16488:18;;16538:20;;;;;16565;;;;16626;;;;16488:164;;;;;-1:-1:-1;;;;;16488:164:3;;;;;;;;;;;;;;;;;;;;16609:10;16488:164;;;;;;;;;;;;:26;;;;;16521:9;;16488:164;;;;;;;;;;;;;;16521:9;16488:26;:164;;;5:2:-1;;;;30:1;27;20:12;5:2;16488:164:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16488:164:3;;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;16434:355:3;16673:18;;16700:20;;;;;16722;;;;16768;;;;16673:116;;;;;-1:-1:-1;;;;;16673:116:3;;;;;;;;;;;;;;;;;;;;16756:10;16673:116;;;;;;;;;;;;:26;;;;;:116;;;;;;;;;;;;;;;:18;:26;:116;;;5:2:-1;;;;30:1;27;20:12;5:2;16673:116:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16673:116:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;16673:116:3;;-1:-1:-1;16434:355:3;16833:8;:28;;;16829:269;;;16895:57;2170:7;16895:27;:8;16908:13;16895:27;:12;:27;:::i;:57::-;16869:83;;16966:8;:20;;;-1:-1:-1;;;;;16966:29:3;;16996:17;17015:15;16966:65;;;;;-1:-1:-1;;;16966:65:3;;;;;;;-1:-1:-1;;;;;16966:65:3;-1:-1:-1;;;;;16966:65:3;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16966:65:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16966:65:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;16966:65:3;16958:101;;;;;;;-1:-1:-1;;;;;16958:101:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;17077:15;17065:27;;;;16829:269;17158:8;:20;;;-1:-1:-1;;;;;17108:105:3;17136:8;:20;;;-1:-1:-1;;;;;17108:105:3;17119:8;:15;;;-1:-1:-1;;;;;17108:105:3;;17180:10;17192:8;17202:10;17108:105;;;;;;;;;;;;;;-1:-1:-1;;;;;17108:105:3;-1:-1:-1;;;;;17108:105:3;;;;;;;;;;;;;;;;;17231:8;;-1:-1:-1;15430:3:3;;;;;15392:1852;;;17313:22;;;;17305:53;;;;;-1:-1:-1;;;;;17305:53:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;17370:8:3;;15125:2257;-1:-1:-1;;;;;;;;;15125:2257:3:o;19359:737::-;19470:30;;:::i;:::-;19643:23;19503:5;19524:1;19509:5;:12;:16;19503:23;;;;;;;;;;;;;;;;;;;19593:20;;;;19503:23;;-1:-1:-1;;;;;;19593:37:3;19625:4;19593:37;19589:50;;19632:7;;19589:50;-1:-1:-1;19669:20:3;;;;-1:-1:-1;;;;;19720:24:3;;;;;;:11;:24;;;;;;;;19716:377;;;19825:31;;;;19824:32;19817:40;;;;19953:11;-1:-1:-1;;;;;19941:35:3;;19977:12;19991:7;19941:58;;;;;-1:-1:-1;;;19941:58:3;;;;;;;-1:-1:-1;;;;;19941:58:3;-1:-1:-1;;;;;19941:58:3;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;19716:377:3;20040:48;20053:11;20066:12;20080:7;20040:12;:48::i;24364:286::-;24484:32;;;;;;24501:4;24484:32;;;;-1:-1:-1;;;;;24484:32:3;;;;;;;;;24464:17;;24484:16;;;;;:32;;;;;;;;;;;;;;24464:17;24484:16;:32;;;5:2:-1;;;;30:1;27;20:12;5:2;24484:32:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;24484:32:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;24484:32:3;;-1:-1:-1;24524:18:3;;;24520:127;;;24565:1;24553:9;:13;24549:51;;;24568:32;24580:6;24588:8;24598:1;24568:11;:32::i;:::-;24605:37;24617:6;24625:8;24635:6;24605:11;:37::i;:::-;24364:286;;;;:::o;2255:557:70:-;2324:21;;:::i;:::-;:36;;;;;;;;;2357:1;2324:36;;;;;2687:2;2661:3;2580:5;2574:12;2495:2;2488:5;2484:14;2465:1;2430:6;2404:3;2394:317;2725:7;2718:15;2715:2;;;2750:1;2747;2740:12;2715:2;-1:-1:-1;2773:6:70;;:11;;2765:43;;;;;-1:-1:-1;;;;;2765:43:70;;;;;;;;;;;;;;;;;;;;;;;;;;;24725:371:3;24809:7;24822:20;24886:9;24929:27;24845:10;-1:-1:-1;;;;;24845:30:3;;:32;;;;;-1:-1:-1;;;24845:32:3;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;24845:32:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;24845:32:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;24845:32:3;24822:55;;;-1:-1:-1;24898:1:3;;-1:-1:-1;24881:181:3;24905:12;24901:1;:16;24881:181;;;24959:10;-1:-1:-1;;;;;24959:26:3;;24986:1;24959:29;;;;;-1:-1:-1;;;24959:29:3;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;24959:29:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;24959:29:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;24959:29:3;-1:-1:-1;;;;;24997:32:3;;;;;;:11;24959:29;24997:32;;;;;24959:29;;-1:-1:-1;24997:32:3;;24993:64;;;25038:19;25031:26;;;;24993:64;24919:3;;;;;24881:181;;;-1:-1:-1;2227:42:3;;24725:371;-1:-1:-1;;;;24725:371:3:o;1740:206:70:-;351:50;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1870:71:70;;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;1870:71:70;;;;;;;25:18:-1;;61:17;;-1:-1;;;;;182:15;-1:-1;;;;;;1870:71:70;;;179:29:-1;;;;160:49;;;1854:88:70;;1862:6;;1854:7;:88::i;719:181::-;151:37;;;;;;;;;;;;;;;;-1:-1:-1;;;;;832:63:70;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;832:63:70;;;;;;;;25:18:-1;;61:17;;-1:-1;;;;;182:15;-1:-1;;;;;;832:63:70;;;179:29:-1;;;;160:49;;;816:80:70;;824:6;;816:7;:80::i;1166:795:41:-;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;-1:-1;1166:795:41;;;-1:-1:-1;;1166:795:41:o;:::-;;;;;;;;;;;;;;;105:10:-1;1166:795:41;88:34:-1;-1:-1;1166:795:41;;;-1:-1:-1;;1166:795:41:o;:::-;;;;;;;;;-1:-1:-1;1166:795:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o" + }, + "methodIdentifiers": { + "acceptOwnership()": "79ba5097", + "claimAndConvert(address[],uint256,uint256)": "c7ba24bc", + "claimAndConvert2(address[],uint256,uint256,address,uint256)": "e57738e5", + "claimAndConvertFor(address[],uint256,uint256,address)": "b1e9932b", + "claimAndConvertFor2(address[],uint256,uint256,address,address,uint256)": "2978c10e", + "completeXConversion(address[],address,uint256,uint256,address)": "89f9cc61", + "conversionPath(address,address)": "d734fa19", + "convert(address[],uint256,uint256)": "f3898a97", + "convert2(address[],uint256,uint256,address,uint256)": "569706eb", + "convertByPath(address[],uint256,uint256,address,address,uint256)": "b77d239b", + "convertFor(address[],uint256,uint256,address)": "c98fefed", + "convertFor2(address[],uint256,uint256,address,address,uint256)": "ab6214ce", + "etherTokens(address)": "8077ccf7", + "getReturnByPath(address[],uint256)": "0c8496cc", + "getReturnNew()": "699e7546", + "getReturnOld()": "98e95740", + "isV28OrHigherConverterExternal(address)": "03613f39", + "maxAffiliateFee()": "5d732ff2", + "newOwner()": "d4ee1d90", + "onlyOwnerCanUpdateRegistry()": "2fe8a6ad", + "owner()": "8da5cb5b", + "prevRegistry()": "61cd756e", + "rateByPath(address[],uint256)": "7f9c0ecd", + "registerEtherToken(address,bool)": "02ef521e", + "registry()": "7b103999", + "restoreRegistry()": "b4a176d3", + "restrictRegistryUpdate(bool)": "024c7ec7", + "setMaxAffiliateFee(uint256)": "f3bc7d2a", + "transferOwnership(address)": "f2fde38b", + "updateRegistry()": "49d10b64", + "withdrawTokens(address,address,uint256)": "5e35359e", + "xConvert(address[],uint256,uint256,bytes32,bytes32,uint256)": "c52173de", + "xConvert2(address[],uint256,uint256,bytes32,bytes32,uint256,address,uint256)": "cb32564e" + } + }, + "userdoc": { + "methods": {} + } + } + }, + "solidity/contracts/helpers/TestTokenHandler.sol": { + "TestTokenHandler": { + "abi": [ + { + "constant": false, + "inputs": [ + { + "name": "_token", + "type": "address" + }, + { + "name": "_spender", + "type": "address" + }, + { + "name": "_value", + "type": "uint256" + } + ], + "name": "testSafeApprove", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_token", + "type": "address" + }, + { + "name": "_from", + "type": "address" + }, + { + "name": "_to", + "type": "address" + }, + { + "name": "_value", + "type": "uint256" + } + ], + "name": "testSafeTransferFrom", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_token", + "type": "address" + }, + { + "name": "_to", + "type": "address" + }, + { + "name": "_value", + "type": "uint256" + } + ], + "name": "testSafeTransfer", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ], + "devdoc": { + "methods": {} + }, + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b5061048e806100206000396000f3006080604052600436106100565763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166308315314811461005b57806375231e6114610094578063f705d961146100d1575b600080fd5b34801561006757600080fd5b5061009273ffffffffffffffffffffffffffffffffffffffff60043581169060243516604435610108565b005b3480156100a057600080fd5b5061009273ffffffffffffffffffffffffffffffffffffffff60043581169060243581169060443516606435610118565b3480156100dd57600080fd5b5061009273ffffffffffffffffffffffffffffffffffffffff6004358116906024351660443561012a565b610113838383610135565b505050565b610124848484846101f4565b50505050565b6101138383836102e3565b604080517f617070726f766528616464726573732c75696e743235362900000000000000008152815190819003601801812073ffffffffffffffffffffffffffffffffffffffff8516602483015260448083018590528351808403909101815260649092019092526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff199093169290921790915261011390849061039e565b604080517f7472616e7366657246726f6d28616464726573732c616464726573732c75696e81527f7432353629000000000000000000000000000000000000000000000000000000602080830191909152825191829003602501822073ffffffffffffffffffffffffffffffffffffffff8088166024850152861660448401526064808401869052845180850390910181526084909301909352810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff199093169290921790915261012490859061039e565b604080517f7472616e7366657228616464726573732c75696e7432353629000000000000008152815190819003601901812073ffffffffffffffffffffffffffffffffffffffff8516602483015260448083018590528351808403909101815260649092019092526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19909316929092179091526101139084905b6103a6610443565b602060405190810160405280600181525090506020818351602085016000875af18015156103d357600080fd5b508051151561011357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4552525f5452414e534645525f4641494c454400000000000000000000000000604482015290519081900360640190fd5b60206040519081016040528060019060208202803883395091929150505600a165627a7a72305820f6ec6c0069e8270f1e4993ac559d452ae33da18131d27a925955e67aaf3fa82f0029", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x48E DUP1 PUSH2 0x20 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x56 JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x8315314 DUP2 EQ PUSH2 0x5B JUMPI DUP1 PUSH4 0x75231E61 EQ PUSH2 0x94 JUMPI DUP1 PUSH4 0xF705D961 EQ PUSH2 0xD1 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x67 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x92 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x108 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x92 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x44 CALLDATALOAD AND PUSH1 0x64 CALLDATALOAD PUSH2 0x118 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xDD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x92 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x12A JUMP JUMPDEST PUSH2 0x113 DUP4 DUP4 DUP4 PUSH2 0x135 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x124 DUP5 DUP5 DUP5 DUP5 PUSH2 0x1F4 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0x113 DUP4 DUP4 DUP4 PUSH2 0x2E3 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x617070726F766528616464726573732C75696E74323536290000000000000000 DUP2 MSTORE DUP2 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x18 ADD DUP2 KECCAK256 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP6 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x64 SWAP1 SWAP3 ADD SWAP1 SWAP3 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE PUSH2 0x113 SWAP1 DUP5 SWAP1 PUSH2 0x39E JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x7472616E7366657246726F6D28616464726573732C616464726573732C75696E DUP2 MSTORE PUSH32 0x7432353629000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP3 MLOAD SWAP2 DUP3 SWAP1 SUB PUSH1 0x25 ADD DUP3 KECCAK256 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP9 AND PUSH1 0x24 DUP6 ADD MSTORE DUP7 AND PUSH1 0x44 DUP5 ADD MSTORE PUSH1 0x64 DUP1 DUP5 ADD DUP7 SWAP1 MSTORE DUP5 MLOAD DUP1 DUP6 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x84 SWAP1 SWAP4 ADD SWAP1 SWAP4 MSTORE DUP2 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE PUSH2 0x124 SWAP1 DUP6 SWAP1 PUSH2 0x39E JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x7472616E7366657228616464726573732C75696E743235362900000000000000 DUP2 MSTORE DUP2 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x19 ADD DUP2 KECCAK256 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP6 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x64 SWAP1 SWAP3 ADD SWAP1 SWAP3 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE PUSH2 0x113 SWAP1 DUP5 SWAP1 JUMPDEST PUSH2 0x3A6 PUSH2 0x443 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE POP SWAP1 POP PUSH1 0x20 DUP2 DUP4 MLOAD PUSH1 0x20 DUP6 ADD PUSH1 0x0 DUP8 GAS CALL DUP1 ISZERO ISZERO PUSH2 0x3D3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD ISZERO ISZERO PUSH2 0x113 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5452414E534645525F4641494C454400000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 SWAP1 PUSH1 0x20 DUP3 MUL DUP1 CODESIZE DUP4 CODECOPY POP SWAP2 SWAP3 SWAP2 POP POP JUMP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 0xf6 0xec PUSH13 0x69E8270F1E4993AC559D452A 0xe3 RETURNDATASIZE LOG1 DUP2 BALANCE 0xd2 PUSH27 0x925955E67AAF3FA82F002900000000000000000000000000000000 ", + "sourceMap": "132:489:42:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;132:489:42;;;;;;;" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "6080604052600436106100565763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166308315314811461005b57806375231e6114610094578063f705d961146100d1575b600080fd5b34801561006757600080fd5b5061009273ffffffffffffffffffffffffffffffffffffffff60043581169060243516604435610108565b005b3480156100a057600080fd5b5061009273ffffffffffffffffffffffffffffffffffffffff60043581169060243581169060443516606435610118565b3480156100dd57600080fd5b5061009273ffffffffffffffffffffffffffffffffffffffff6004358116906024351660443561012a565b610113838383610135565b505050565b610124848484846101f4565b50505050565b6101138383836102e3565b604080517f617070726f766528616464726573732c75696e743235362900000000000000008152815190819003601801812073ffffffffffffffffffffffffffffffffffffffff8516602483015260448083018590528351808403909101815260649092019092526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff199093169290921790915261011390849061039e565b604080517f7472616e7366657246726f6d28616464726573732c616464726573732c75696e81527f7432353629000000000000000000000000000000000000000000000000000000602080830191909152825191829003602501822073ffffffffffffffffffffffffffffffffffffffff8088166024850152861660448401526064808401869052845180850390910181526084909301909352810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff199093169290921790915261012490859061039e565b604080517f7472616e7366657228616464726573732c75696e7432353629000000000000008152815190819003601901812073ffffffffffffffffffffffffffffffffffffffff8516602483015260448083018590528351808403909101815260649092019092526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19909316929092179091526101139084905b6103a6610443565b602060405190810160405280600181525090506020818351602085016000875af18015156103d357600080fd5b508051151561011357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4552525f5452414e534645525f4641494c454400000000000000000000000000604482015290519081900360640190fd5b60206040519081016040528060019060208202803883395091929150505600a165627a7a72305820f6ec6c0069e8270f1e4993ac559d452ae33da18131d27a925955e67aaf3fa82f0029", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x56 JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x8315314 DUP2 EQ PUSH2 0x5B JUMPI DUP1 PUSH4 0x75231E61 EQ PUSH2 0x94 JUMPI DUP1 PUSH4 0xF705D961 EQ PUSH2 0xD1 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x67 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x92 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x108 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x92 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x44 CALLDATALOAD AND PUSH1 0x64 CALLDATALOAD PUSH2 0x118 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xDD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x92 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x12A JUMP JUMPDEST PUSH2 0x113 DUP4 DUP4 DUP4 PUSH2 0x135 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x124 DUP5 DUP5 DUP5 DUP5 PUSH2 0x1F4 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0x113 DUP4 DUP4 DUP4 PUSH2 0x2E3 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x617070726F766528616464726573732C75696E74323536290000000000000000 DUP2 MSTORE DUP2 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x18 ADD DUP2 KECCAK256 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP6 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x64 SWAP1 SWAP3 ADD SWAP1 SWAP3 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE PUSH2 0x113 SWAP1 DUP5 SWAP1 PUSH2 0x39E JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x7472616E7366657246726F6D28616464726573732C616464726573732C75696E DUP2 MSTORE PUSH32 0x7432353629000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP3 MLOAD SWAP2 DUP3 SWAP1 SUB PUSH1 0x25 ADD DUP3 KECCAK256 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP9 AND PUSH1 0x24 DUP6 ADD MSTORE DUP7 AND PUSH1 0x44 DUP5 ADD MSTORE PUSH1 0x64 DUP1 DUP5 ADD DUP7 SWAP1 MSTORE DUP5 MLOAD DUP1 DUP6 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x84 SWAP1 SWAP4 ADD SWAP1 SWAP4 MSTORE DUP2 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE PUSH2 0x124 SWAP1 DUP6 SWAP1 PUSH2 0x39E JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x7472616E7366657228616464726573732C75696E743235362900000000000000 DUP2 MSTORE DUP2 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x19 ADD DUP2 KECCAK256 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP6 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x64 SWAP1 SWAP3 ADD SWAP1 SWAP3 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE PUSH2 0x113 SWAP1 DUP5 SWAP1 JUMPDEST PUSH2 0x3A6 PUSH2 0x443 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE POP SWAP1 POP PUSH1 0x20 DUP2 DUP4 MLOAD PUSH1 0x20 DUP6 ADD PUSH1 0x0 DUP8 GAS CALL DUP1 ISZERO ISZERO PUSH2 0x3D3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD ISZERO ISZERO PUSH2 0x113 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5452414E534645525F4641494C454400000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 SWAP1 PUSH1 0x20 DUP3 MUL DUP1 CODESIZE DUP4 CODECOPY POP SWAP2 SWAP3 SWAP2 POP POP JUMP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 0xf6 0xec PUSH13 0x69E8270F1E4993AC559D452A 0xe3 RETURNDATASIZE LOG1 DUP2 BALANCE 0xd2 PUSH27 0x925955E67AAF3FA82F002900000000000000000000000000000000 ", + "sourceMap": "132:489:42:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;177:140;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;177:140:42;;;;;;;;;;;;;;;;455:164;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;455:164:42;;;;;;;;;;;;;;;;;;;320:132;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;320:132:42;;;;;;;;;;;;;;177:140;276:37;288:6;296:8;306:6;276:11;:37::i;:::-;177:140;;;:::o;455:164::-;571:44;588:6;596:5;603:3;608:6;571:16;:44::i;:::-;455:164;;;;:::o;320:132::-;415:33;428:6;436:3;441:6;415:12;:33::i;719:181:70:-;151:37;;;;;;;;;;;;;;;;832:63;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;832:63:70;;;;;;;;25:18:-1;;61:17;;832:63:70;182:15:-1;-1:-1;;832:63:70;;;179:29:-1;;;;160:49;;;816:80:70;;824:6;;816:7;:80::i;1740:206::-;351:50;;;;;;;;;;;;;;;;;;;;;;;;;1870:71;;;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;1870:71:70;;;;;;;25:18:-1;;61:17;;1870:71:70;182:15:-1;-1:-1;;1870:71:70;;;179:29:-1;;;;160:49;;;1854:88:70;;1862:6;;1854:7;:88::i;1214:173::-;248:38;;;;;;;;;;;;;;;;1323:59;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;1323:59:70;;;;;;;;25:18:-1;;61:17;;1323:59:70;182:15:-1;-1:-1;;1323:59:70;;;179:29:-1;;;;160:49;;;1307:76:70;;1315:6;;2255:557;2324:21;;:::i;:::-;:36;;;;;;;;;2357:1;2324:36;;;;;2687:2;2661:3;2580:5;2574:12;2495:2;2488:5;2484:14;2465:1;2430:6;2404:3;2394:317;2725:7;2718:15;2715:2;;;2750:1;2747;2740:12;2715:2;-1:-1:-1;2773:6:70;;:11;;2765:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;132:489:42;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;-1:-1;132:489:42;;;-1:-1:-1;;132:489:42:o" + }, + "methodIdentifiers": { + "testSafeApprove(address,address,uint256)": "08315314", + "testSafeTransfer(address,address,uint256)": "f705d961", + "testSafeTransferFrom(address,address,address,uint256)": "75231e61" + } + }, + "userdoc": { + "methods": {} + } + } + }, + "solidity/contracts/helpers/TestTokens.sol": { + "NonStandardToken": { + "abi": [ + { + "constant": true, + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "", + "type": "address" + }, + { + "name": "", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "name": "_supply", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "_from", + "type": "address" + }, + { + "indexed": true, + "name": "_to", + "type": "address" + }, + { + "indexed": false, + "name": "_value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "_owner", + "type": "address" + }, + { + "indexed": true, + "name": "_spender", + "type": "address" + }, + { + "indexed": false, + "name": "_value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + } + ], + "devdoc": { + "methods": {} + }, + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "allowance(address,address)": "dd62ed3e", + "balanceOf(address)": "70a08231", + "totalSupply()": "18160ddd" + } + }, + "userdoc": { + "methods": {} + } + }, + "NonStandardTokenDetailed": { + "abi": [ + { + "constant": true, + "inputs": [], + "name": "name", + "outputs": [ + { + "name": "", + "type": "string" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "decimals", + "outputs": [ + { + "name": "", + "type": "uint8" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "symbol", + "outputs": [ + { + "name": "", + "type": "string" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "", + "type": "address" + }, + { + "name": "", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "name": "_name", + "type": "string" + }, + { + "name": "_symbol", + "type": "string" + }, + { + "name": "_decimals", + "type": "uint8" + }, + { + "name": "_supply", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "_from", + "type": "address" + }, + { + "indexed": true, + "name": "_to", + "type": "address" + }, + { + "indexed": false, + "name": "_value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "_owner", + "type": "address" + }, + { + "indexed": true, + "name": "_spender", + "type": "address" + }, + { + "indexed": false, + "name": "_value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + } + ], + "devdoc": { + "methods": {} + }, + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "allowance(address,address)": "dd62ed3e", + "balanceOf(address)": "70a08231", + "decimals()": "313ce567", + "name()": "06fdde03", + "symbol()": "95d89b41", + "totalSupply()": "18160ddd" + } + }, + "userdoc": { + "methods": {} + } + }, + "TestNonStandardToken": { + "abi": [ + { + "constant": true, + "inputs": [], + "name": "name", + "outputs": [ + { + "name": "", + "type": "string" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_spender", + "type": "address" + }, + { + "name": "_value", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_from", + "type": "address" + }, + { + "name": "_to", + "type": "address" + }, + { + "name": "_value", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "decimals", + "outputs": [ + { + "name": "", + "type": "uint8" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_ok", + "type": "bool" + } + ], + "name": "set", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "symbol", + "outputs": [ + { + "name": "", + "type": "string" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_to", + "type": "address" + }, + { + "name": "_value", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "ok", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "", + "type": "address" + }, + { + "name": "", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "name": "_name", + "type": "string" + }, + { + "name": "_symbol", + "type": "string" + }, + { + "name": "_decimals", + "type": "uint8" + }, + { + "name": "_supply", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "_from", + "type": "address" + }, + { + "indexed": true, + "name": "_to", + "type": "address" + }, + { + "indexed": false, + "name": "_value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "_owner", + "type": "address" + }, + { + "indexed": true, + "name": "_spender", + "type": "address" + }, + { + "indexed": false, + "name": "_value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + } + ], + "devdoc": { + "methods": {} + }, + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b506040516109d13803806109d183398101604090815281516020808401518385015160608601516000818155338152600185529590952085905592850180519095919091019391859185918591859161006e916003918701906100d1565b5082516100829060049060208601906100d1565b50506005805460ff191660ff92909216919091179055506100ae905060016401000000006100b7810204565b5050505061016c565b600580549115156101000261ff0019909216919091179055565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061011257805160ff191683800117855561013f565b8280016001018555821561013f579182015b8281111561013f578251825591602001919060010190610124565b5061014b92915061014f565b5090565b61016991905b8082111561014b5760008155600101610155565b90565b6108568061017b6000396000f3006080604052600436106100ae5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde0381146100b3578063095ea7b31461013d57806318160ddd1461016357806323b872dd1461018a578063313ce567146101b45780635f76f6ab146101df57806370a08231146101f957806395d89b411461021a578063a9059cbb1461022f578063d909b40314610253578063dd62ed3e1461027c575b600080fd5b3480156100bf57600080fd5b506100c86102a3565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101025781810151838201526020016100ea565b50505050905090810190601f16801561012f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561014957600080fd5b50610161600160a060020a0360043516602435610331565b005b34801561016f57600080fd5b50610178610355565b60408051918252519081900360200190f35b34801561019657600080fd5b50610161600160a060020a036004358116906024351660443561035b565b3480156101c057600080fd5b506101c9610381565b6040805160ff9092168252519081900360200190f35b3480156101eb57600080fd5b50610161600435151561038a565b34801561020557600080fd5b50610178600160a060020a03600435166103a4565b34801561022657600080fd5b506100c86103b6565b34801561023b57600080fd5b50610161600160a060020a0360043516602435610411565b34801561025f57600080fd5b5061026861041b565b604080519115158252519081900360200190f35b34801561028857600080fd5b50610178600160a060020a0360043581169060243516610429565b6003805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156103295780601f106102fe57610100808354040283529160200191610329565b820191906000526020600020905b81548152906001019060200180831161030c57829003601f168201915b505050505081565b61033b8282610446565b600554610100900460ff16151561035157600080fd5b5050565b60005481565b6103668383836104ec565b600554610100900460ff16151561037c57600080fd5b505050565b60055460ff1681565b600580549115156101000261ff0019909216919091179055565b60016020526000908152604090205481565b6004805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156103295780601f106102fe57610100808354040283529160200191610329565b61033b8282610608565b600554610100900460ff1681565b600260209081526000928352604080842090915290825290205481565b81610450816106be565b81158061047e5750336000908152600260209081526040808320600160a060020a0387168452909152902054155b151561048957600080fd5b336000818152600260209081526040808320600160a060020a03881680855290835292819020869055805186815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a3505050565b826104f6816106be565b82610500816106be565b600160a060020a0385166000908152600260209081526040808320338452909152902054610534908463ffffffff61073816565b600160a060020a038616600081815260026020908152604080832033845282528083209490945591815260019091522054610575908463ffffffff61073816565b600160a060020a0380871660009081526001602052604080822093909355908616815220546105aa908463ffffffff6107af16565b600160a060020a0380861660008181526001602090815260409182902094909455805187815290519193928916927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a35050505050565b81610612816106be565b33600090815260016020526040902054610632908363ffffffff61073816565b3360009081526001602052604080822092909255600160a060020a03851681522054610664908363ffffffff6107af16565b600160a060020a0384166000818152600160209081526040918290209390935580518581529051919233927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a3505050565b600160a060020a038116151561073557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b50565b6000818310156107a957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600d60248201527f4552525f554e444552464c4f5700000000000000000000000000000000000000604482015290519081900360640190fd5b50900390565b60008282018381101561082357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b93925050505600a165627a7a723058200afe9dcf575813beb0bb8cd2c37b1629ef7b9236a5a0f87d712e8c3132df3b220029", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x9D1 CODESIZE SUB DUP1 PUSH2 0x9D1 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 SWAP1 DUP2 MSTORE DUP2 MLOAD PUSH1 0x20 DUP1 DUP5 ADD MLOAD DUP4 DUP6 ADD MLOAD PUSH1 0x60 DUP7 ADD MLOAD PUSH1 0x0 DUP2 DUP2 SSTORE CALLER DUP2 MSTORE PUSH1 0x1 DUP6 MSTORE SWAP6 SWAP1 SWAP6 KECCAK256 DUP6 SWAP1 SSTORE SWAP3 DUP6 ADD DUP1 MLOAD SWAP1 SWAP6 SWAP2 SWAP1 SWAP2 ADD SWAP4 SWAP2 DUP6 SWAP2 DUP6 SWAP2 DUP6 SWAP2 DUP6 SWAP2 PUSH2 0x6E SWAP2 PUSH1 0x3 SWAP2 DUP8 ADD SWAP1 PUSH2 0xD1 JUMP JUMPDEST POP DUP3 MLOAD PUSH2 0x82 SWAP1 PUSH1 0x4 SWAP1 PUSH1 0x20 DUP7 ADD SWAP1 PUSH2 0xD1 JUMP JUMPDEST POP POP PUSH1 0x5 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0xFF SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE POP PUSH2 0xAE SWAP1 POP PUSH1 0x1 PUSH5 0x100000000 PUSH2 0xB7 DUP2 MUL DIV JUMP JUMPDEST POP POP POP POP PUSH2 0x16C JUMP JUMPDEST PUSH1 0x5 DUP1 SLOAD SWAP2 ISZERO ISZERO PUSH2 0x100 MUL PUSH2 0xFF00 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH1 0x1F LT PUSH2 0x112 JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH2 0x13F JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x13F JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x13F JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x124 JUMP JUMPDEST POP PUSH2 0x14B SWAP3 SWAP2 POP PUSH2 0x14F JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH2 0x169 SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x14B JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x155 JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH2 0x856 DUP1 PUSH2 0x17B PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0xAE JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x6FDDE03 DUP2 EQ PUSH2 0xB3 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x13D JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x163 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x18A JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x1B4 JUMPI DUP1 PUSH4 0x5F76F6AB EQ PUSH2 0x1DF JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x1F9 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x21A JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x22F JUMPI DUP1 PUSH4 0xD909B403 EQ PUSH2 0x253 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x27C JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xBF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xC8 PUSH2 0x2A3 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP4 MLOAD DUP2 DUP4 ADD MSTORE DUP4 MLOAD SWAP2 SWAP3 DUP4 SWAP3 SWAP1 DUP4 ADD SWAP2 DUP6 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x102 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0xEA JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x12F JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x149 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x161 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x331 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x16F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x178 PUSH2 0x355 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x196 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x161 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x35B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1C0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1C9 PUSH2 0x381 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1EB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x161 PUSH1 0x4 CALLDATALOAD ISZERO ISZERO PUSH2 0x38A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x205 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x178 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x3A4 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x226 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xC8 PUSH2 0x3B6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x23B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x161 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x411 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x25F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x268 PUSH2 0x41B JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x288 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x178 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH2 0x429 JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x2 PUSH1 0x1 DUP6 AND ISZERO PUSH2 0x100 MUL PUSH1 0x0 NOT ADD SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 DIV PUSH1 0x1F DUP2 ADD DUP5 SWAP1 DIV DUP5 MUL DUP3 ADD DUP5 ADD SWAP1 SWAP3 MSTORE DUP2 DUP2 MSTORE SWAP3 SWAP2 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x329 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x2FE JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x329 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x30C JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH2 0x33B DUP3 DUP3 PUSH2 0x446 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO PUSH2 0x351 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x366 DUP4 DUP4 DUP4 PUSH2 0x4EC JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO PUSH2 0x37C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x5 DUP1 SLOAD SWAP2 ISZERO ISZERO PUSH2 0x100 MUL PUSH2 0xFF00 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x4 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x2 PUSH1 0x1 DUP6 AND ISZERO PUSH2 0x100 MUL PUSH1 0x0 NOT ADD SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 DIV PUSH1 0x1F DUP2 ADD DUP5 SWAP1 DIV DUP5 MUL DUP3 ADD DUP5 ADD SWAP1 SWAP3 MSTORE DUP2 DUP2 MSTORE SWAP3 SWAP2 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x329 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x2FE JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x329 JUMP JUMPDEST PUSH2 0x33B DUP3 DUP3 PUSH2 0x608 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST DUP2 PUSH2 0x450 DUP2 PUSH2 0x6BE JUMP JUMPDEST DUP2 ISZERO DUP1 PUSH2 0x47E JUMPI POP CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x489 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST CALLER PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 AND DUP1 DUP6 MSTORE SWAP1 DUP4 MSTORE SWAP3 DUP2 SWAP1 KECCAK256 DUP7 SWAP1 SSTORE DUP1 MLOAD DUP7 DUP2 MSTORE SWAP1 MLOAD SWAP3 SWAP4 SWAP3 PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP3 SWAP2 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP POP POP JUMP JUMPDEST DUP3 PUSH2 0x4F6 DUP2 PUSH2 0x6BE JUMP JUMPDEST DUP3 PUSH2 0x500 DUP2 PUSH2 0x6BE JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH2 0x534 SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0x738 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE DUP3 MSTORE DUP1 DUP4 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE SWAP2 DUP2 MSTORE PUSH1 0x1 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD PUSH2 0x575 SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0x738 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE SWAP1 DUP7 AND DUP2 MSTORE KECCAK256 SLOAD PUSH2 0x5AA SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0x7AF AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP7 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE DUP1 MLOAD DUP8 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP4 SWAP3 DUP10 AND SWAP3 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP3 SWAP2 DUP3 SWAP1 SUB ADD SWAP1 LOG3 POP POP POP POP POP JUMP JUMPDEST DUP2 PUSH2 0x612 DUP2 PUSH2 0x6BE JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x632 SWAP1 DUP4 PUSH4 0xFFFFFFFF PUSH2 0x738 AND JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP3 SWAP1 SWAP3 SSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND DUP2 MSTORE KECCAK256 SLOAD PUSH2 0x664 SWAP1 DUP4 PUSH4 0xFFFFFFFF PUSH2 0x7AF AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE DUP1 MLOAD DUP6 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP3 CALLER SWAP3 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0x735 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT ISZERO PUSH2 0x7A9 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F554E444552464C4F5700000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP SWAP1 SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 ADD DUP4 DUP2 LT ISZERO PUSH2 0x823 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 EXP INVALID SWAP14 0xcf JUMPI PC SGT 0xbe 0xb0 0xbb DUP13 0xd2 0xc3 PUSH28 0x1629EF7B9236A5A0F87D712E8C3132DF3B2200290000000000000000 ", + "sourceMap": "3417:655:43:-;;;3496:172;8:9:-1;5:2;;;30:1;27;20:12;5:2;3496:172:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;662:11;:21;;;697:10;687:21;;:9;:21;;;;;;:31;;;3496:172;;;3353:12;;3496:172;;;;;;;;;;;;;;;;3353:12;;:4;;:12;;;;:::i;:::-;-1:-1:-1;3369:16:43;;;;:6;;:16;;;;;:::i;:::-;-1:-1:-1;;3389:8:43;:20;;-1:-1:-1;;3389:20:43;;;;;;;;;;;;-1:-1:-1;3655:9:43;;-1:-1:-1;;3655:3:43;;;;:9;:::i;:::-;3496:172;;;;3417:655;;3671:46;3705:2;:8;;;;;;;-1:-1:-1;;3705:8:43;;;;;;;;;3671:46::o;3417:655::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3417:655:43;;;-1:-1:-1;3417:655:43;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "6080604052600436106100ae5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde0381146100b3578063095ea7b31461013d57806318160ddd1461016357806323b872dd1461018a578063313ce567146101b45780635f76f6ab146101df57806370a08231146101f957806395d89b411461021a578063a9059cbb1461022f578063d909b40314610253578063dd62ed3e1461027c575b600080fd5b3480156100bf57600080fd5b506100c86102a3565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101025781810151838201526020016100ea565b50505050905090810190601f16801561012f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561014957600080fd5b50610161600160a060020a0360043516602435610331565b005b34801561016f57600080fd5b50610178610355565b60408051918252519081900360200190f35b34801561019657600080fd5b50610161600160a060020a036004358116906024351660443561035b565b3480156101c057600080fd5b506101c9610381565b6040805160ff9092168252519081900360200190f35b3480156101eb57600080fd5b50610161600435151561038a565b34801561020557600080fd5b50610178600160a060020a03600435166103a4565b34801561022657600080fd5b506100c86103b6565b34801561023b57600080fd5b50610161600160a060020a0360043516602435610411565b34801561025f57600080fd5b5061026861041b565b604080519115158252519081900360200190f35b34801561028857600080fd5b50610178600160a060020a0360043581169060243516610429565b6003805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156103295780601f106102fe57610100808354040283529160200191610329565b820191906000526020600020905b81548152906001019060200180831161030c57829003601f168201915b505050505081565b61033b8282610446565b600554610100900460ff16151561035157600080fd5b5050565b60005481565b6103668383836104ec565b600554610100900460ff16151561037c57600080fd5b505050565b60055460ff1681565b600580549115156101000261ff0019909216919091179055565b60016020526000908152604090205481565b6004805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156103295780601f106102fe57610100808354040283529160200191610329565b61033b8282610608565b600554610100900460ff1681565b600260209081526000928352604080842090915290825290205481565b81610450816106be565b81158061047e5750336000908152600260209081526040808320600160a060020a0387168452909152902054155b151561048957600080fd5b336000818152600260209081526040808320600160a060020a03881680855290835292819020869055805186815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a3505050565b826104f6816106be565b82610500816106be565b600160a060020a0385166000908152600260209081526040808320338452909152902054610534908463ffffffff61073816565b600160a060020a038616600081815260026020908152604080832033845282528083209490945591815260019091522054610575908463ffffffff61073816565b600160a060020a0380871660009081526001602052604080822093909355908616815220546105aa908463ffffffff6107af16565b600160a060020a0380861660008181526001602090815260409182902094909455805187815290519193928916927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a35050505050565b81610612816106be565b33600090815260016020526040902054610632908363ffffffff61073816565b3360009081526001602052604080822092909255600160a060020a03851681522054610664908363ffffffff6107af16565b600160a060020a0384166000818152600160209081526040918290209390935580518581529051919233927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a3505050565b600160a060020a038116151561073557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b50565b6000818310156107a957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600d60248201527f4552525f554e444552464c4f5700000000000000000000000000000000000000604482015290519081900360640190fd5b50900390565b60008282018381101561082357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b93925050505600a165627a7a723058200afe9dcf575813beb0bb8cd2c37b1629ef7b9236a5a0f87d712e8c3132df3b220029", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0xAE JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x6FDDE03 DUP2 EQ PUSH2 0xB3 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x13D JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x163 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x18A JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x1B4 JUMPI DUP1 PUSH4 0x5F76F6AB EQ PUSH2 0x1DF JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x1F9 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x21A JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x22F JUMPI DUP1 PUSH4 0xD909B403 EQ PUSH2 0x253 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x27C JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xBF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xC8 PUSH2 0x2A3 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP4 MLOAD DUP2 DUP4 ADD MSTORE DUP4 MLOAD SWAP2 SWAP3 DUP4 SWAP3 SWAP1 DUP4 ADD SWAP2 DUP6 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x102 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0xEA JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x12F JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x149 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x161 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x331 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x16F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x178 PUSH2 0x355 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x196 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x161 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x35B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1C0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1C9 PUSH2 0x381 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1EB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x161 PUSH1 0x4 CALLDATALOAD ISZERO ISZERO PUSH2 0x38A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x205 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x178 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x3A4 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x226 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xC8 PUSH2 0x3B6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x23B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x161 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x411 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x25F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x268 PUSH2 0x41B JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x288 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x178 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH2 0x429 JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x2 PUSH1 0x1 DUP6 AND ISZERO PUSH2 0x100 MUL PUSH1 0x0 NOT ADD SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 DIV PUSH1 0x1F DUP2 ADD DUP5 SWAP1 DIV DUP5 MUL DUP3 ADD DUP5 ADD SWAP1 SWAP3 MSTORE DUP2 DUP2 MSTORE SWAP3 SWAP2 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x329 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x2FE JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x329 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x30C JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH2 0x33B DUP3 DUP3 PUSH2 0x446 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO PUSH2 0x351 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x366 DUP4 DUP4 DUP4 PUSH2 0x4EC JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO PUSH2 0x37C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x5 DUP1 SLOAD SWAP2 ISZERO ISZERO PUSH2 0x100 MUL PUSH2 0xFF00 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x4 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x2 PUSH1 0x1 DUP6 AND ISZERO PUSH2 0x100 MUL PUSH1 0x0 NOT ADD SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 DIV PUSH1 0x1F DUP2 ADD DUP5 SWAP1 DIV DUP5 MUL DUP3 ADD DUP5 ADD SWAP1 SWAP3 MSTORE DUP2 DUP2 MSTORE SWAP3 SWAP2 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x329 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x2FE JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x329 JUMP JUMPDEST PUSH2 0x33B DUP3 DUP3 PUSH2 0x608 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST DUP2 PUSH2 0x450 DUP2 PUSH2 0x6BE JUMP JUMPDEST DUP2 ISZERO DUP1 PUSH2 0x47E JUMPI POP CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x489 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST CALLER PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 AND DUP1 DUP6 MSTORE SWAP1 DUP4 MSTORE SWAP3 DUP2 SWAP1 KECCAK256 DUP7 SWAP1 SSTORE DUP1 MLOAD DUP7 DUP2 MSTORE SWAP1 MLOAD SWAP3 SWAP4 SWAP3 PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP3 SWAP2 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP POP POP JUMP JUMPDEST DUP3 PUSH2 0x4F6 DUP2 PUSH2 0x6BE JUMP JUMPDEST DUP3 PUSH2 0x500 DUP2 PUSH2 0x6BE JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH2 0x534 SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0x738 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE DUP3 MSTORE DUP1 DUP4 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE SWAP2 DUP2 MSTORE PUSH1 0x1 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD PUSH2 0x575 SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0x738 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE SWAP1 DUP7 AND DUP2 MSTORE KECCAK256 SLOAD PUSH2 0x5AA SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0x7AF AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP7 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE DUP1 MLOAD DUP8 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP4 SWAP3 DUP10 AND SWAP3 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP3 SWAP2 DUP3 SWAP1 SUB ADD SWAP1 LOG3 POP POP POP POP POP JUMP JUMPDEST DUP2 PUSH2 0x612 DUP2 PUSH2 0x6BE JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x632 SWAP1 DUP4 PUSH4 0xFFFFFFFF PUSH2 0x738 AND JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP3 SWAP1 SWAP3 SSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND DUP2 MSTORE KECCAK256 SLOAD PUSH2 0x664 SWAP1 DUP4 PUSH4 0xFFFFFFFF PUSH2 0x7AF AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE DUP1 MLOAD DUP6 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP3 CALLER SWAP3 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0x735 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT ISZERO PUSH2 0x7A9 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F554E444552464C4F5700000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP SWAP1 SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 ADD DUP4 DUP2 LT ISZERO PUSH2 0x823 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 EXP INVALID SWAP14 0xcf JUMPI PC SGT 0xbe 0xb0 0xbb DUP13 0xd2 0xc3 PUSH28 0x1629EF7B9236A5A0F87D712E8C3132DF3B2200290000000000000000 ", + "sourceMap": "3417:655:43:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2941:18;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2941:18:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;2941:18:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3720:107;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3720:107:43;-1:-1:-1;;;;;3720:107:43;;;;;;;;;209:26;;8:9:-1;5:2;;;30:1;27;20:12;5:2;209:26:43;;;;;;;;;;;;;;;;;;;;3932:138;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3932:138:43;-1:-1:-1;;;;;3932:138:43;;;;;;;;;;;;2985:21;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2985:21:43;;;;;;;;;;;;;;;;;;;;;;;3671:46;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3671:46:43;;;;;;;238:44;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;238:44:43;-1:-1:-1;;;;;238:44:43;;;;;2962:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2962:20:43;;;;3830:99;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3830:99:43;-1:-1:-1;;;;;3830:99:43;;;;;;;3478:14;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3478:14:43;;;;;;;;;;;;;;;;;;;;;;285:64;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;285:64:43;-1:-1:-1;;;;;285:64:43;;;;;;;;;;2941:18;;;;;;;;;;;;;;;-1:-1:-1;;2941:18:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;3720:107::-;3782:26;3791:8;3801:6;3782:8;:26::i;:::-;3820:2;;;;;;;3812:11;;;;;;;;3720:107;;:::o;209:26::-;;;;:::o;3932:138::-;4018:33;4032:5;4039:3;4044:6;4018:13;:33::i;:::-;4063:2;;;;;;;4055:11;;;;;;;;3932:138;;;:::o;2985:21::-;;;;;;:::o;3671:46::-;3705:2;:8;;;;;;;-1:-1:-1;;3705:8:43;;;;;;;;;3671:46::o;238:44::-;;;;;;;;;;;;;:::o;2962:20::-;;;;;;;;;;;;;;;-1:-1:-1;;2962:20:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3830:99;3888:22;3898:3;3903:6;3888:9;:22::i;3478:14::-;;;;;;;;;:::o;285:64::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;2517:363::-;2591:8;475:23:72;489:8;475:13;:23::i;:::-;2732:11:43;;;:51;;-1:-1:-1;2757:10:43;2747:21;;;;:9;:21;;;;;;;;-1:-1:-1;;;;;2747:31:43;;;;;;;;;;:36;2732:51;2724:60;;;;;;;;2799:10;2789:21;;;;:9;:21;;;;;;;;-1:-1:-1;;;;;2789:31:43;;;;;;;;;;;;:40;;;2838:38;;;;;;;2789:31;;2799:10;2838:38;;;;;;;;;;;2517:363;;;:::o;1541:337::-;1639:5;475:23:72;489:8;475:13;:23::i;:::-;1659:3:43;475:23:72;489:8;475:13;:23::i;:::-;-1:-1:-1;;;;;1699:16:43;;;;;;:9;:16;;;;;;;;1716:10;1699:28;;;;;;;;:40;;1732:6;1699:40;:32;:40;:::i;:::-;-1:-1:-1;;;;;1668:16:43;;;;;;:9;:16;;;;;;;;1685:10;1668:28;;;;;;;:71;;;;1762:16;;;:9;:16;;;;;:28;;1783:6;1762:28;:20;:28;:::i;:::-;-1:-1:-1;;;;;1743:16:43;;;;;;;:9;:16;;;;;;:47;;;;1811:14;;;;;;;:26;;1830:6;1811:26;:18;:26;:::i;:::-;-1:-1:-1;;;;;1794:14:43;;;;;;;:9;:14;;;;;;;;;:43;;;;1846:28;;;;;;;1794:14;;1846:28;;;;;;;;;;;;;502:1:72;1541:337:43;;;;:::o;982:229::-;1052:3;475:23:72;489:8;475:13;:23::i;:::-;1095:10:43;1085:21;;;;:9;:21;;;;;;:33;;1111:6;1085:33;:25;:33;:::i;:::-;1071:10;1061:21;;;;:9;:21;;;;;;:57;;;;-1:-1:-1;;;;;1139:14:43;;;;;;:26;;1158:6;1139:26;:18;:26;:::i;:::-;-1:-1:-1;;;;;1122:14:43;;;;;;:9;:14;;;;;;;;;:43;;;;1174:33;;;;;;;1122:14;;1183:10;;1174:33;;;;;;;;;;982:229;;;:::o;553:117:72:-;-1:-1:-1;;;;;620:22:72;;;;612:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;553:117;:::o;613:129:69:-;673:7;694:8;;;;686:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;731:7:69;;;613:129::o;288:144::-;348:7;373;;;392;;;;384:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;427:1;288:144;-1:-1:-1;;;288:144:69:o" + }, + "methodIdentifiers": { + "allowance(address,address)": "dd62ed3e", + "approve(address,uint256)": "095ea7b3", + "balanceOf(address)": "70a08231", + "decimals()": "313ce567", + "name()": "06fdde03", + "ok()": "d909b403", + "set(bool)": "5f76f6ab", + "symbol()": "95d89b41", + "totalSupply()": "18160ddd", + "transfer(address,uint256)": "a9059cbb", + "transferFrom(address,address,uint256)": "23b872dd" + } + }, + "userdoc": { + "methods": {} + } + }, + "TestNonStandardTokenWithoutDecimals": { + "abi": [ + { + "constant": true, + "inputs": [], + "name": "name", + "outputs": [ + { + "name": "", + "type": "string" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_spender", + "type": "address" + }, + { + "name": "_value", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_from", + "type": "address" + }, + { + "name": "_to", + "type": "address" + }, + { + "name": "_value", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "symbol", + "outputs": [ + { + "name": "", + "type": "string" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_to", + "type": "address" + }, + { + "name": "_value", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "", + "type": "address" + }, + { + "name": "", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "name": "_name", + "type": "string" + }, + { + "name": "_symbol", + "type": "string" + }, + { + "name": "_supply", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "_from", + "type": "address" + }, + { + "indexed": true, + "name": "_to", + "type": "address" + }, + { + "indexed": false, + "name": "_value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "_owner", + "type": "address" + }, + { + "indexed": true, + "name": "_spender", + "type": "address" + }, + { + "indexed": false, + "name": "_value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + } + ], + "devdoc": { + "methods": {} + }, + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b506040516108933803806108938339810160409081528151602080840151838501516000818155338152600184529490942084905591840180519094929092019291610062916003919086019061007f565b50815161007690600490602085019061007f565b5050505061011a565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106100c057805160ff19168380011785556100ed565b828001600101855582156100ed579182015b828111156100ed5782518255916020019190600101906100d2565b506100f99291506100fd565b5090565b61011791905b808211156100f95760008155600101610103565b90565b61076a806101296000396000f30060806040526004361061008d5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde038114610092578063095ea7b31461011c57806318160ddd1461014257806323b872dd1461016957806370a082311461019357806395d89b41146101b4578063a9059cbb146101c9578063dd62ed3e146101ed575b600080fd5b34801561009e57600080fd5b506100a7610214565b6040805160208082528351818301528351919283929083019185019080838360005b838110156100e15781810151838201526020016100c9565b50505050905090810190601f16801561010e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561012857600080fd5b50610140600160a060020a03600435166024356102a2565b005b34801561014e57600080fd5b506101576102b0565b60408051918252519081900360200190f35b34801561017557600080fd5b50610140600160a060020a03600435811690602435166044356102b6565b34801561019f57600080fd5b50610157600160a060020a03600435166102c6565b3480156101c057600080fd5b506100a76102d8565b3480156101d557600080fd5b50610140600160a060020a0360043516602435610333565b3480156101f957600080fd5b50610157600160a060020a036004358116906024351661033d565b6003805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561029a5780601f1061026f5761010080835404028352916020019161029a565b820191906000526020600020905b81548152906001019060200180831161027d57829003601f168201915b505050505081565b6102ac828261035a565b5050565b60005481565b6102c1838383610400565b505050565b60016020526000908152604090205481565b6004805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561029a5780601f1061026f5761010080835404028352916020019161029a565b6102ac828261051c565b600260209081526000928352604080842090915290825290205481565b81610364816105d2565b8115806103925750336000908152600260209081526040808320600160a060020a0387168452909152902054155b151561039d57600080fd5b336000818152600260209081526040808320600160a060020a03881680855290835292819020869055805186815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a3505050565b8261040a816105d2565b82610414816105d2565b600160a060020a0385166000908152600260209081526040808320338452909152902054610448908463ffffffff61064c16565b600160a060020a038616600081815260026020908152604080832033845282528083209490945591815260019091522054610489908463ffffffff61064c16565b600160a060020a0380871660009081526001602052604080822093909355908616815220546104be908463ffffffff6106c316565b600160a060020a0380861660008181526001602090815260409182902094909455805187815290519193928916927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a35050505050565b81610526816105d2565b33600090815260016020526040902054610546908363ffffffff61064c16565b3360009081526001602052604080822092909255600160a060020a03851681522054610578908363ffffffff6106c316565b600160a060020a0384166000818152600160209081526040918290209390935580518581529051919233927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a3505050565b600160a060020a038116151561064957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b50565b6000818310156106bd57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600d60248201527f4552525f554e444552464c4f5700000000000000000000000000000000000000604482015290519081900360640190fd5b50900390565b60008282018381101561073757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b93925050505600a165627a7a723058208ea6fd181893953ddad17d77c8cc38a5c9a1bb7d61b87c7a780ec4c82055c5ee0029", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x893 CODESIZE SUB DUP1 PUSH2 0x893 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 SWAP1 DUP2 MSTORE DUP2 MLOAD PUSH1 0x20 DUP1 DUP5 ADD MLOAD DUP4 DUP6 ADD MLOAD PUSH1 0x0 DUP2 DUP2 SSTORE CALLER DUP2 MSTORE PUSH1 0x1 DUP5 MSTORE SWAP5 SWAP1 SWAP5 KECCAK256 DUP5 SWAP1 SSTORE SWAP2 DUP5 ADD DUP1 MLOAD SWAP1 SWAP5 SWAP3 SWAP1 SWAP3 ADD SWAP3 SWAP2 PUSH2 0x62 SWAP2 PUSH1 0x3 SWAP2 SWAP1 DUP7 ADD SWAP1 PUSH2 0x7F JUMP JUMPDEST POP DUP2 MLOAD PUSH2 0x76 SWAP1 PUSH1 0x4 SWAP1 PUSH1 0x20 DUP6 ADD SWAP1 PUSH2 0x7F JUMP JUMPDEST POP POP POP POP PUSH2 0x11A JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH1 0x1F LT PUSH2 0xC0 JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH2 0xED JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0xED JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0xED JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0xD2 JUMP JUMPDEST POP PUSH2 0xF9 SWAP3 SWAP2 POP PUSH2 0xFD JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH2 0x117 SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0xF9 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x103 JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH2 0x76A DUP1 PUSH2 0x129 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x8D JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x6FDDE03 DUP2 EQ PUSH2 0x92 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x11C JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x142 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x169 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x193 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x1B4 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x1C9 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x1ED JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xA7 PUSH2 0x214 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP4 MLOAD DUP2 DUP4 ADD MSTORE DUP4 MLOAD SWAP2 SWAP3 DUP4 SWAP3 SWAP1 DUP4 ADD SWAP2 DUP6 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xE1 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0xC9 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x10E JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x128 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x140 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x2A2 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x14E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x157 PUSH2 0x2B0 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x175 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x140 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x2B6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x19F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x157 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x2C6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1C0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xA7 PUSH2 0x2D8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1D5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x140 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x333 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1F9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x157 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH2 0x33D JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x2 PUSH1 0x1 DUP6 AND ISZERO PUSH2 0x100 MUL PUSH1 0x0 NOT ADD SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 DIV PUSH1 0x1F DUP2 ADD DUP5 SWAP1 DIV DUP5 MUL DUP3 ADD DUP5 ADD SWAP1 SWAP3 MSTORE DUP2 DUP2 MSTORE SWAP3 SWAP2 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x29A JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x26F JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x29A JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x27D JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH2 0x2AC DUP3 DUP3 PUSH2 0x35A JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x2C1 DUP4 DUP4 DUP4 PUSH2 0x400 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x4 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x2 PUSH1 0x1 DUP6 AND ISZERO PUSH2 0x100 MUL PUSH1 0x0 NOT ADD SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 DIV PUSH1 0x1F DUP2 ADD DUP5 SWAP1 DIV DUP5 MUL DUP3 ADD DUP5 ADD SWAP1 SWAP3 MSTORE DUP2 DUP2 MSTORE SWAP3 SWAP2 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x29A JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x26F JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x29A JUMP JUMPDEST PUSH2 0x2AC DUP3 DUP3 PUSH2 0x51C JUMP JUMPDEST PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST DUP2 PUSH2 0x364 DUP2 PUSH2 0x5D2 JUMP JUMPDEST DUP2 ISZERO DUP1 PUSH2 0x392 JUMPI POP CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x39D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST CALLER PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 AND DUP1 DUP6 MSTORE SWAP1 DUP4 MSTORE SWAP3 DUP2 SWAP1 KECCAK256 DUP7 SWAP1 SSTORE DUP1 MLOAD DUP7 DUP2 MSTORE SWAP1 MLOAD SWAP3 SWAP4 SWAP3 PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP3 SWAP2 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP POP POP JUMP JUMPDEST DUP3 PUSH2 0x40A DUP2 PUSH2 0x5D2 JUMP JUMPDEST DUP3 PUSH2 0x414 DUP2 PUSH2 0x5D2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH2 0x448 SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0x64C AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE DUP3 MSTORE DUP1 DUP4 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE SWAP2 DUP2 MSTORE PUSH1 0x1 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD PUSH2 0x489 SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0x64C AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE SWAP1 DUP7 AND DUP2 MSTORE KECCAK256 SLOAD PUSH2 0x4BE SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0x6C3 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP7 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE DUP1 MLOAD DUP8 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP4 SWAP3 DUP10 AND SWAP3 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP3 SWAP2 DUP3 SWAP1 SUB ADD SWAP1 LOG3 POP POP POP POP POP JUMP JUMPDEST DUP2 PUSH2 0x526 DUP2 PUSH2 0x5D2 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x546 SWAP1 DUP4 PUSH4 0xFFFFFFFF PUSH2 0x64C AND JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP3 SWAP1 SWAP3 SSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND DUP2 MSTORE KECCAK256 SLOAD PUSH2 0x578 SWAP1 DUP4 PUSH4 0xFFFFFFFF PUSH2 0x6C3 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE DUP1 MLOAD DUP6 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP3 CALLER SWAP3 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0x649 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT ISZERO PUSH2 0x6BD JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F554E444552464C4F5700000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP SWAP1 SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 ADD DUP4 DUP2 LT ISZERO PUSH2 0x737 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 DUP15 0xa6 REVERT XOR XOR SWAP4 SWAP6 RETURNDATASIZE 0xda 0xd1 PUSH30 0x77C8CC38A5C9A1BB7D61B87C7A780EC4C82055C5EE002900000000000000 ", + "sourceMap": "4074:564:43:-;;;4187:141;8:9:-1;5:2;;;30:1;27;20:12;5:2;4187:141:43;;;;;;;;;;;;;;;;;;;;;;;;;;;662:11;:21;;;697:10;687:21;;:9;:21;;;;;;:31;;;4187:141;;;4292:12;;4187:141;;;;;;;;4292:12;;:4;;:12;;;;;:::i;:::-;-1:-1:-1;4308:16:43;;;;:6;;:16;;;;;:::i;:::-;;4187:141;;;4074:564;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4074:564:43;;;-1:-1:-1;4074:564:43;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "60806040526004361061008d5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde038114610092578063095ea7b31461011c57806318160ddd1461014257806323b872dd1461016957806370a082311461019357806395d89b41146101b4578063a9059cbb146101c9578063dd62ed3e146101ed575b600080fd5b34801561009e57600080fd5b506100a7610214565b6040805160208082528351818301528351919283929083019185019080838360005b838110156100e15781810151838201526020016100c9565b50505050905090810190601f16801561010e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561012857600080fd5b50610140600160a060020a03600435166024356102a2565b005b34801561014e57600080fd5b506101576102b0565b60408051918252519081900360200190f35b34801561017557600080fd5b50610140600160a060020a03600435811690602435166044356102b6565b34801561019f57600080fd5b50610157600160a060020a03600435166102c6565b3480156101c057600080fd5b506100a76102d8565b3480156101d557600080fd5b50610140600160a060020a0360043516602435610333565b3480156101f957600080fd5b50610157600160a060020a036004358116906024351661033d565b6003805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561029a5780601f1061026f5761010080835404028352916020019161029a565b820191906000526020600020905b81548152906001019060200180831161027d57829003601f168201915b505050505081565b6102ac828261035a565b5050565b60005481565b6102c1838383610400565b505050565b60016020526000908152604090205481565b6004805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561029a5780601f1061026f5761010080835404028352916020019161029a565b6102ac828261051c565b600260209081526000928352604080842090915290825290205481565b81610364816105d2565b8115806103925750336000908152600260209081526040808320600160a060020a0387168452909152902054155b151561039d57600080fd5b336000818152600260209081526040808320600160a060020a03881680855290835292819020869055805186815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a3505050565b8261040a816105d2565b82610414816105d2565b600160a060020a0385166000908152600260209081526040808320338452909152902054610448908463ffffffff61064c16565b600160a060020a038616600081815260026020908152604080832033845282528083209490945591815260019091522054610489908463ffffffff61064c16565b600160a060020a0380871660009081526001602052604080822093909355908616815220546104be908463ffffffff6106c316565b600160a060020a0380861660008181526001602090815260409182902094909455805187815290519193928916927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a35050505050565b81610526816105d2565b33600090815260016020526040902054610546908363ffffffff61064c16565b3360009081526001602052604080822092909255600160a060020a03851681522054610578908363ffffffff6106c316565b600160a060020a0384166000818152600160209081526040918290209390935580518581529051919233927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a3505050565b600160a060020a038116151561064957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b50565b6000818310156106bd57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600d60248201527f4552525f554e444552464c4f5700000000000000000000000000000000000000604482015290519081900360640190fd5b50900390565b60008282018381101561073757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b93925050505600a165627a7a723058208ea6fd181893953ddad17d77c8cc38a5c9a1bb7d61b87c7a780ec4c82055c5ee0029", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x8D JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x6FDDE03 DUP2 EQ PUSH2 0x92 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x11C JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x142 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x169 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x193 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x1B4 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x1C9 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x1ED JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xA7 PUSH2 0x214 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP4 MLOAD DUP2 DUP4 ADD MSTORE DUP4 MLOAD SWAP2 SWAP3 DUP4 SWAP3 SWAP1 DUP4 ADD SWAP2 DUP6 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xE1 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0xC9 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x10E JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x128 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x140 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x2A2 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x14E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x157 PUSH2 0x2B0 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x175 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x140 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x2B6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x19F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x157 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x2C6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1C0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xA7 PUSH2 0x2D8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1D5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x140 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x333 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1F9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x157 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH2 0x33D JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x2 PUSH1 0x1 DUP6 AND ISZERO PUSH2 0x100 MUL PUSH1 0x0 NOT ADD SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 DIV PUSH1 0x1F DUP2 ADD DUP5 SWAP1 DIV DUP5 MUL DUP3 ADD DUP5 ADD SWAP1 SWAP3 MSTORE DUP2 DUP2 MSTORE SWAP3 SWAP2 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x29A JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x26F JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x29A JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x27D JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH2 0x2AC DUP3 DUP3 PUSH2 0x35A JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x2C1 DUP4 DUP4 DUP4 PUSH2 0x400 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x4 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x2 PUSH1 0x1 DUP6 AND ISZERO PUSH2 0x100 MUL PUSH1 0x0 NOT ADD SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 DIV PUSH1 0x1F DUP2 ADD DUP5 SWAP1 DIV DUP5 MUL DUP3 ADD DUP5 ADD SWAP1 SWAP3 MSTORE DUP2 DUP2 MSTORE SWAP3 SWAP2 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x29A JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x26F JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x29A JUMP JUMPDEST PUSH2 0x2AC DUP3 DUP3 PUSH2 0x51C JUMP JUMPDEST PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST DUP2 PUSH2 0x364 DUP2 PUSH2 0x5D2 JUMP JUMPDEST DUP2 ISZERO DUP1 PUSH2 0x392 JUMPI POP CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x39D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST CALLER PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 AND DUP1 DUP6 MSTORE SWAP1 DUP4 MSTORE SWAP3 DUP2 SWAP1 KECCAK256 DUP7 SWAP1 SSTORE DUP1 MLOAD DUP7 DUP2 MSTORE SWAP1 MLOAD SWAP3 SWAP4 SWAP3 PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP3 SWAP2 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP POP POP JUMP JUMPDEST DUP3 PUSH2 0x40A DUP2 PUSH2 0x5D2 JUMP JUMPDEST DUP3 PUSH2 0x414 DUP2 PUSH2 0x5D2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH2 0x448 SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0x64C AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE DUP3 MSTORE DUP1 DUP4 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE SWAP2 DUP2 MSTORE PUSH1 0x1 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD PUSH2 0x489 SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0x64C AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE SWAP1 DUP7 AND DUP2 MSTORE KECCAK256 SLOAD PUSH2 0x4BE SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0x6C3 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP7 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE DUP1 MLOAD DUP8 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP4 SWAP3 DUP10 AND SWAP3 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP3 SWAP2 DUP3 SWAP1 SUB ADD SWAP1 LOG3 POP POP POP POP POP JUMP JUMPDEST DUP2 PUSH2 0x526 DUP2 PUSH2 0x5D2 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x546 SWAP1 DUP4 PUSH4 0xFFFFFFFF PUSH2 0x64C AND JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP3 SWAP1 SWAP3 SSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND DUP2 MSTORE KECCAK256 SLOAD PUSH2 0x578 SWAP1 DUP4 PUSH4 0xFFFFFFFF PUSH2 0x6C3 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE DUP1 MLOAD DUP6 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP3 CALLER SWAP3 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0x649 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT ISZERO PUSH2 0x6BD JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F554E444552464C4F5700000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP SWAP1 SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 ADD DUP4 DUP2 LT ISZERO PUSH2 0x737 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 DUP15 0xa6 REVERT XOR XOR SWAP4 SWAP6 RETURNDATASIZE 0xda 0xd1 PUSH30 0x77C8CC38A5C9A1BB7D61B87C7A780EC4C82055C5EE002900000000000000 ", + "sourceMap": "4074:564:43:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4142:18;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4142:18:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;4142:18:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4331:92;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4331:92:43;-1:-1:-1;;;;;4331:92:43;;;;;;;;;209:26;;8:9:-1;5:2;;;30:1;27;20:12;5:2;209:26:43;;;;;;;;;;;;;;;;;;;;4513:123;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4513:123:43;-1:-1:-1;;;;;4513:123:43;;;;;;;;;;;;238:44;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;238:44:43;-1:-1:-1;;;;;238:44:43;;;;;4163:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4163:20:43;;;;4426:84;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4426:84:43;-1:-1:-1;;;;;4426:84:43;;;;;;;285:64;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;285:64:43;-1:-1:-1;;;;;285:64:43;;;;;;;;;;4142:18;;;;;;;;;;;;;;;-1:-1:-1;;4142:18:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;4331:92::-;4393:26;4402:8;4412:6;4393:8;:26::i;:::-;4331:92;;:::o;209:26::-;;;;:::o;4513:123::-;4599:33;4613:5;4620:3;4625:6;4599:13;:33::i;:::-;4513:123;;;:::o;238:44::-;;;;;;;;;;;;;:::o;4163:20::-;;;;;;;;;;;;;;;-1:-1:-1;;4163:20:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4426:84;4484:22;4494:3;4499:6;4484:9;:22::i;285:64::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;2517:363::-;2591:8;475:23:72;489:8;475:13;:23::i;:::-;2732:11:43;;;:51;;-1:-1:-1;2757:10:43;2747:21;;;;:9;:21;;;;;;;;-1:-1:-1;;;;;2747:31:43;;;;;;;;;;:36;2732:51;2724:60;;;;;;;;2799:10;2789:21;;;;:9;:21;;;;;;;;-1:-1:-1;;;;;2789:31:43;;;;;;;;;;;;:40;;;2838:38;;;;;;;2789:31;;2799:10;2838:38;;;;;;;;;;;2517:363;;;:::o;1541:337::-;1639:5;475:23:72;489:8;475:13;:23::i;:::-;1659:3:43;475:23:72;489:8;475:13;:23::i;:::-;-1:-1:-1;;;;;1699:16:43;;;;;;:9;:16;;;;;;;;1716:10;1699:28;;;;;;;;:40;;1732:6;1699:40;:32;:40;:::i;:::-;-1:-1:-1;;;;;1668:16:43;;;;;;:9;:16;;;;;;;;1685:10;1668:28;;;;;;;:71;;;;1762:16;;;:9;:16;;;;;:28;;1783:6;1762:28;:20;:28;:::i;:::-;-1:-1:-1;;;;;1743:16:43;;;;;;;:9;:16;;;;;;:47;;;;1811:14;;;;;;;:26;;1830:6;1811:26;:18;:26;:::i;:::-;-1:-1:-1;;;;;1794:14:43;;;;;;;:9;:14;;;;;;;;;:43;;;;1846:28;;;;;;;1794:14;;1846:28;;;;;;;;;;;;;502:1:72;1541:337:43;;;;:::o;982:229::-;1052:3;475:23:72;489:8;475:13;:23::i;:::-;1095:10:43;1085:21;;;;:9;:21;;;;;;:33;;1111:6;1085:33;:25;:33;:::i;:::-;1071:10;1061:21;;;;:9;:21;;;;;;:57;;;;-1:-1:-1;;;;;1139:14:43;;;;;;:26;;1158:6;1139:26;:18;:26;:::i;:::-;-1:-1:-1;;;;;1122:14:43;;;;;;:9;:14;;;;;;;;;:43;;;;1174:33;;;;;;;1122:14;;1183:10;;1174:33;;;;;;;;;;982:229;;;:::o;553:117:72:-;-1:-1:-1;;;;;620:22:72;;;;612:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;553:117;:::o;613:129:69:-;673:7;694:8;;;;686:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;731:7:69;;;613:129::o;288:144::-;348:7;373;;;392;;;;384:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;427:1;288:144;-1:-1:-1;;;288:144:69:o" + }, + "methodIdentifiers": { + "allowance(address,address)": "dd62ed3e", + "approve(address,uint256)": "095ea7b3", + "balanceOf(address)": "70a08231", + "name()": "06fdde03", + "symbol()": "95d89b41", + "totalSupply()": "18160ddd", + "transfer(address,uint256)": "a9059cbb", + "transferFrom(address,address,uint256)": "23b872dd" + } + }, + "userdoc": { + "methods": {} + } + }, + "TestStandardToken": { + "abi": [ + { + "constant": true, + "inputs": [], + "name": "name", + "outputs": [ + { + "name": "", + "type": "string" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_spender", + "type": "address" + }, + { + "name": "_value", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "ret", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_from", + "type": "address" + }, + { + "name": "_to", + "type": "address" + }, + { + "name": "_value", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "decimals", + "outputs": [ + { + "name": "", + "type": "uint8" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "symbol", + "outputs": [ + { + "name": "", + "type": "string" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_to", + "type": "address" + }, + { + "name": "_value", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "ok", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "", + "type": "address" + }, + { + "name": "", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_ok", + "type": "bool" + }, + { + "name": "_ret", + "type": "bool" + } + ], + "name": "set", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "name": "_name", + "type": "string" + }, + { + "name": "_symbol", + "type": "string" + }, + { + "name": "_decimals", + "type": "uint8" + }, + { + "name": "_supply", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "_from", + "type": "address" + }, + { + "indexed": true, + "name": "_to", + "type": "address" + }, + { + "indexed": false, + "name": "_value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "_owner", + "type": "address" + }, + { + "indexed": true, + "name": "_spender", + "type": "address" + }, + { + "indexed": false, + "name": "_value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + } + ], + "devdoc": { + "methods": {} + }, + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b50604051610a4e380380610a4e83398101604090815281516020808401518385015160608601516000818155338152600185529590952085905592850180519095919091019391859185918591859161006e916003918701906100e4565b5082516100829060049060208601906100e4565b50506005805460ff191660ff92909216919091179055506100af90506001806401000000006100b8810204565b5050505061017f565b60058054911515620100000262ff0000199315156101000261ff00199093169290921792909216179055565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061012557805160ff1916838001178555610152565b82800160010185558215610152579182015b82811115610152578251825591602001919060010190610137565b5061015e929150610162565b5090565b61017c91905b8082111561015e5760008155600101610168565b90565b6108c08061018e6000396000f3006080604052600436106100b95763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde0381146100be578063095ea7b31461014857806318160ddd146101805780631b08d96f146101a757806323b872dd146101bc578063313ce567146101e657806370a082311461021157806395d89b4114610232578063a9059cbb14610247578063d909b4031461026b578063dd62ed3e14610280578063f907191a146102a7575b600080fd5b3480156100ca57600080fd5b506100d36102c8565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561010d5781810151838201526020016100f5565b50505050905090810190601f16801561013a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561015457600080fd5b5061016c600160a060020a0360043516602435610356565b604080519115158252519081900360200190f35b34801561018c57600080fd5b5061019561038b565b60408051918252519081900360200190f35b3480156101b357600080fd5b5061016c610391565b3480156101c857600080fd5b5061016c600160a060020a03600435811690602435166044356103a0565b3480156101f257600080fd5b506101fb6103d7565b6040805160ff9092168252519081900360200190f35b34801561021d57600080fd5b50610195600160a060020a03600435166103e0565b34801561023e57600080fd5b506100d36103f2565b34801561025357600080fd5b5061016c600160a060020a036004351660243561044d565b34801561027757600080fd5b5061016c610459565b34801561028c57600080fd5b50610195600160a060020a0360043581169060243516610467565b3480156102b357600080fd5b506102c660043515156024351515610484565b005b6003805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561034e5780601f106103235761010080835404028352916020019161034e565b820191906000526020600020905b81548152906001019060200180831161033157829003601f168201915b505050505081565b600061036283836104b0565b600554610100900460ff16151561037857600080fd5b505060055462010000900460ff16919050565b60005481565b60055462010000900460ff1681565b60006103ad848484610556565b600554610100900460ff1615156103c357600080fd5b505060055462010000900460ff1692915050565b60055460ff1681565b60016020526000908152604090205481565b6004805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561034e5780601f106103235761010080835404028352916020019161034e565b60006103628383610672565b600554610100900460ff1681565b600260209081526000928352604080842090915290825290205481565b60058054911515620100000262ff0000199315156101000261ff00199093169290921792909216179055565b816104ba81610728565b8115806104e85750336000908152600260209081526040808320600160a060020a0387168452909152902054155b15156104f357600080fd5b336000818152600260209081526040808320600160a060020a03881680855290835292819020869055805186815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a3505050565b8261056081610728565b8261056a81610728565b600160a060020a038516600090815260026020908152604080832033845290915290205461059e908463ffffffff6107a216565b600160a060020a0386166000818152600260209081526040808320338452825280832094909455918152600190915220546105df908463ffffffff6107a216565b600160a060020a038087166000908152600160205260408082209390935590861681522054610614908463ffffffff61081916565b600160a060020a0380861660008181526001602090815260409182902094909455805187815290519193928916927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a35050505050565b8161067c81610728565b3360009081526001602052604090205461069c908363ffffffff6107a216565b3360009081526001602052604080822092909255600160a060020a038516815220546106ce908363ffffffff61081916565b600160a060020a0384166000818152600160209081526040918290209390935580518581529051919233927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a3505050565b600160a060020a038116151561079f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b50565b60008183101561081357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600d60248201527f4552525f554e444552464c4f5700000000000000000000000000000000000000604482015290519081900360640190fd5b50900390565b60008282018381101561088d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b93925050505600a165627a7a72305820edafaf3a955d04caae72138a446cb28ee6a87ad170c277045dc197d87a246aa20029", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0xA4E CODESIZE SUB DUP1 PUSH2 0xA4E DUP4 CODECOPY DUP2 ADD PUSH1 0x40 SWAP1 DUP2 MSTORE DUP2 MLOAD PUSH1 0x20 DUP1 DUP5 ADD MLOAD DUP4 DUP6 ADD MLOAD PUSH1 0x60 DUP7 ADD MLOAD PUSH1 0x0 DUP2 DUP2 SSTORE CALLER DUP2 MSTORE PUSH1 0x1 DUP6 MSTORE SWAP6 SWAP1 SWAP6 KECCAK256 DUP6 SWAP1 SSTORE SWAP3 DUP6 ADD DUP1 MLOAD SWAP1 SWAP6 SWAP2 SWAP1 SWAP2 ADD SWAP4 SWAP2 DUP6 SWAP2 DUP6 SWAP2 DUP6 SWAP2 DUP6 SWAP2 PUSH2 0x6E SWAP2 PUSH1 0x3 SWAP2 DUP8 ADD SWAP1 PUSH2 0xE4 JUMP JUMPDEST POP DUP3 MLOAD PUSH2 0x82 SWAP1 PUSH1 0x4 SWAP1 PUSH1 0x20 DUP7 ADD SWAP1 PUSH2 0xE4 JUMP JUMPDEST POP POP PUSH1 0x5 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0xFF SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE POP PUSH2 0xAF SWAP1 POP PUSH1 0x1 DUP1 PUSH5 0x100000000 PUSH2 0xB8 DUP2 MUL DIV JUMP JUMPDEST POP POP POP POP PUSH2 0x17F JUMP JUMPDEST PUSH1 0x5 DUP1 SLOAD SWAP2 ISZERO ISZERO PUSH3 0x10000 MUL PUSH3 0xFF0000 NOT SWAP4 ISZERO ISZERO PUSH2 0x100 MUL PUSH2 0xFF00 NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP3 SWAP1 SWAP3 AND OR SWAP1 SSTORE JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH1 0x1F LT PUSH2 0x125 JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH2 0x152 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x152 JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x152 JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x137 JUMP JUMPDEST POP PUSH2 0x15E SWAP3 SWAP2 POP PUSH2 0x162 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH2 0x17C SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x15E JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x168 JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH2 0x8C0 DUP1 PUSH2 0x18E PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0xB9 JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x6FDDE03 DUP2 EQ PUSH2 0xBE JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x148 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x180 JUMPI DUP1 PUSH4 0x1B08D96F EQ PUSH2 0x1A7 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x1BC JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x1E6 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x211 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x232 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x247 JUMPI DUP1 PUSH4 0xD909B403 EQ PUSH2 0x26B JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x280 JUMPI DUP1 PUSH4 0xF907191A EQ PUSH2 0x2A7 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xCA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xD3 PUSH2 0x2C8 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP4 MLOAD DUP2 DUP4 ADD MSTORE DUP4 MLOAD SWAP2 SWAP3 DUP4 SWAP3 SWAP1 DUP4 ADD SWAP2 DUP6 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x10D JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0xF5 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x13A JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x154 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x16C PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x356 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x18C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x195 PUSH2 0x38B JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1B3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x16C PUSH2 0x391 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1C8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x16C PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x3A0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1F2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1FB PUSH2 0x3D7 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x21D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x195 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x3E0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x23E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xD3 PUSH2 0x3F2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x253 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x16C PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x44D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x277 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x16C PUSH2 0x459 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x28C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x195 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH2 0x467 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2B3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C6 PUSH1 0x4 CALLDATALOAD ISZERO ISZERO PUSH1 0x24 CALLDATALOAD ISZERO ISZERO PUSH2 0x484 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x3 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x2 PUSH1 0x1 DUP6 AND ISZERO PUSH2 0x100 MUL PUSH1 0x0 NOT ADD SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 DIV PUSH1 0x1F DUP2 ADD DUP5 SWAP1 DIV DUP5 MUL DUP3 ADD DUP5 ADD SWAP1 SWAP3 MSTORE DUP2 DUP2 MSTORE SWAP3 SWAP2 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x34E JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x323 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x34E JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x331 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x362 DUP4 DUP4 PUSH2 0x4B0 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO PUSH2 0x378 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP PUSH1 0x5 SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0xFF AND SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3AD DUP5 DUP5 DUP5 PUSH2 0x556 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO PUSH2 0x3C3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP PUSH1 0x5 SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0xFF AND SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x4 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x2 PUSH1 0x1 DUP6 AND ISZERO PUSH2 0x100 MUL PUSH1 0x0 NOT ADD SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 DIV PUSH1 0x1F DUP2 ADD DUP5 SWAP1 DIV DUP5 MUL DUP3 ADD DUP5 ADD SWAP1 SWAP3 MSTORE DUP2 DUP2 MSTORE SWAP3 SWAP2 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x34E JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x323 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x34E JUMP JUMPDEST PUSH1 0x0 PUSH2 0x362 DUP4 DUP4 PUSH2 0x672 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x5 DUP1 SLOAD SWAP2 ISZERO ISZERO PUSH3 0x10000 MUL PUSH3 0xFF0000 NOT SWAP4 ISZERO ISZERO PUSH2 0x100 MUL PUSH2 0xFF00 NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP3 SWAP1 SWAP3 AND OR SWAP1 SSTORE JUMP JUMPDEST DUP2 PUSH2 0x4BA DUP2 PUSH2 0x728 JUMP JUMPDEST DUP2 ISZERO DUP1 PUSH2 0x4E8 JUMPI POP CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x4F3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST CALLER PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 AND DUP1 DUP6 MSTORE SWAP1 DUP4 MSTORE SWAP3 DUP2 SWAP1 KECCAK256 DUP7 SWAP1 SSTORE DUP1 MLOAD DUP7 DUP2 MSTORE SWAP1 MLOAD SWAP3 SWAP4 SWAP3 PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP3 SWAP2 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP POP POP JUMP JUMPDEST DUP3 PUSH2 0x560 DUP2 PUSH2 0x728 JUMP JUMPDEST DUP3 PUSH2 0x56A DUP2 PUSH2 0x728 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH2 0x59E SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0x7A2 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE DUP3 MSTORE DUP1 DUP4 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE SWAP2 DUP2 MSTORE PUSH1 0x1 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD PUSH2 0x5DF SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0x7A2 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE SWAP1 DUP7 AND DUP2 MSTORE KECCAK256 SLOAD PUSH2 0x614 SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0x819 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP7 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE DUP1 MLOAD DUP8 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP4 SWAP3 DUP10 AND SWAP3 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP3 SWAP2 DUP3 SWAP1 SUB ADD SWAP1 LOG3 POP POP POP POP POP JUMP JUMPDEST DUP2 PUSH2 0x67C DUP2 PUSH2 0x728 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x69C SWAP1 DUP4 PUSH4 0xFFFFFFFF PUSH2 0x7A2 AND JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP3 SWAP1 SWAP3 SSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND DUP2 MSTORE KECCAK256 SLOAD PUSH2 0x6CE SWAP1 DUP4 PUSH4 0xFFFFFFFF PUSH2 0x819 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE DUP1 MLOAD DUP6 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP3 CALLER SWAP3 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0x79F JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT ISZERO PUSH2 0x813 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F554E444552464C4F5700000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP SWAP1 SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 ADD DUP4 DUP2 LT ISZERO PUSH2 0x88D JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 0xed 0xaf 0xaf GASPRICE SWAP6 0x5d DIV 0xca 0xae PUSH19 0x138A446CB28EE6A87AD170C277045DC197D87A 0x24 PUSH11 0xA200290000000000000000 ", + "sourceMap": "4640:788:43:-;;;4734:178;8:9:-1;5:2;;;30:1;27;20:12;5:2;4734:178:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;662:11;:21;;;697:10;687:21;;:9;:21;;;;;;:31;;;4734:178;;;3353:12;;4734:178;;;;;;;;;;;;;;;;3353:12;;:4;;:12;;;;:::i;:::-;-1:-1:-1;3369:16:43;;;;:6;;:16;;;;;:::i;:::-;-1:-1:-1;;3389:8:43;:20;;-1:-1:-1;;3389:20:43;;;;;;;;;;;;-1:-1:-1;4893:15:43;;-1:-1:-1;;;4893:3:43;;;;:15;:::i;:::-;4734:178;;;;4640:788;;4915:71;4960:2;:8;;4972:10;;;;;-1:-1:-1;;4960:8:43;;;;;-1:-1:-1;;4960:8:43;;;;;;;4972:10;;;;;;;4915:71::o;4640:788::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4640:788:43;;;-1:-1:-1;4640:788:43;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "6080604052600436106100b95763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde0381146100be578063095ea7b31461014857806318160ddd146101805780631b08d96f146101a757806323b872dd146101bc578063313ce567146101e657806370a082311461021157806395d89b4114610232578063a9059cbb14610247578063d909b4031461026b578063dd62ed3e14610280578063f907191a146102a7575b600080fd5b3480156100ca57600080fd5b506100d36102c8565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561010d5781810151838201526020016100f5565b50505050905090810190601f16801561013a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561015457600080fd5b5061016c600160a060020a0360043516602435610356565b604080519115158252519081900360200190f35b34801561018c57600080fd5b5061019561038b565b60408051918252519081900360200190f35b3480156101b357600080fd5b5061016c610391565b3480156101c857600080fd5b5061016c600160a060020a03600435811690602435166044356103a0565b3480156101f257600080fd5b506101fb6103d7565b6040805160ff9092168252519081900360200190f35b34801561021d57600080fd5b50610195600160a060020a03600435166103e0565b34801561023e57600080fd5b506100d36103f2565b34801561025357600080fd5b5061016c600160a060020a036004351660243561044d565b34801561027757600080fd5b5061016c610459565b34801561028c57600080fd5b50610195600160a060020a0360043581169060243516610467565b3480156102b357600080fd5b506102c660043515156024351515610484565b005b6003805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561034e5780601f106103235761010080835404028352916020019161034e565b820191906000526020600020905b81548152906001019060200180831161033157829003601f168201915b505050505081565b600061036283836104b0565b600554610100900460ff16151561037857600080fd5b505060055462010000900460ff16919050565b60005481565b60055462010000900460ff1681565b60006103ad848484610556565b600554610100900460ff1615156103c357600080fd5b505060055462010000900460ff1692915050565b60055460ff1681565b60016020526000908152604090205481565b6004805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561034e5780601f106103235761010080835404028352916020019161034e565b60006103628383610672565b600554610100900460ff1681565b600260209081526000928352604080842090915290825290205481565b60058054911515620100000262ff0000199315156101000261ff00199093169290921792909216179055565b816104ba81610728565b8115806104e85750336000908152600260209081526040808320600160a060020a0387168452909152902054155b15156104f357600080fd5b336000818152600260209081526040808320600160a060020a03881680855290835292819020869055805186815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a3505050565b8261056081610728565b8261056a81610728565b600160a060020a038516600090815260026020908152604080832033845290915290205461059e908463ffffffff6107a216565b600160a060020a0386166000818152600260209081526040808320338452825280832094909455918152600190915220546105df908463ffffffff6107a216565b600160a060020a038087166000908152600160205260408082209390935590861681522054610614908463ffffffff61081916565b600160a060020a0380861660008181526001602090815260409182902094909455805187815290519193928916927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a35050505050565b8161067c81610728565b3360009081526001602052604090205461069c908363ffffffff6107a216565b3360009081526001602052604080822092909255600160a060020a038516815220546106ce908363ffffffff61081916565b600160a060020a0384166000818152600160209081526040918290209390935580518581529051919233927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a3505050565b600160a060020a038116151561079f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b50565b60008183101561081357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600d60248201527f4552525f554e444552464c4f5700000000000000000000000000000000000000604482015290519081900360640190fd5b50900390565b60008282018381101561088d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b93925050505600a165627a7a72305820edafaf3a955d04caae72138a446cb28ee6a87ad170c277045dc197d87a246aa20029", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0xB9 JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x6FDDE03 DUP2 EQ PUSH2 0xBE JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x148 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x180 JUMPI DUP1 PUSH4 0x1B08D96F EQ PUSH2 0x1A7 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x1BC JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x1E6 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x211 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x232 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x247 JUMPI DUP1 PUSH4 0xD909B403 EQ PUSH2 0x26B JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x280 JUMPI DUP1 PUSH4 0xF907191A EQ PUSH2 0x2A7 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xCA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xD3 PUSH2 0x2C8 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP4 MLOAD DUP2 DUP4 ADD MSTORE DUP4 MLOAD SWAP2 SWAP3 DUP4 SWAP3 SWAP1 DUP4 ADD SWAP2 DUP6 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x10D JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0xF5 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x13A JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x154 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x16C PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x356 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x18C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x195 PUSH2 0x38B JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1B3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x16C PUSH2 0x391 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1C8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x16C PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x3A0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1F2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1FB PUSH2 0x3D7 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x21D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x195 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x3E0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x23E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xD3 PUSH2 0x3F2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x253 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x16C PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x44D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x277 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x16C PUSH2 0x459 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x28C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x195 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH2 0x467 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2B3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C6 PUSH1 0x4 CALLDATALOAD ISZERO ISZERO PUSH1 0x24 CALLDATALOAD ISZERO ISZERO PUSH2 0x484 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x3 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x2 PUSH1 0x1 DUP6 AND ISZERO PUSH2 0x100 MUL PUSH1 0x0 NOT ADD SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 DIV PUSH1 0x1F DUP2 ADD DUP5 SWAP1 DIV DUP5 MUL DUP3 ADD DUP5 ADD SWAP1 SWAP3 MSTORE DUP2 DUP2 MSTORE SWAP3 SWAP2 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x34E JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x323 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x34E JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x331 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x362 DUP4 DUP4 PUSH2 0x4B0 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO PUSH2 0x378 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP PUSH1 0x5 SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0xFF AND SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3AD DUP5 DUP5 DUP5 PUSH2 0x556 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO PUSH2 0x3C3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP PUSH1 0x5 SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0xFF AND SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x4 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x2 PUSH1 0x1 DUP6 AND ISZERO PUSH2 0x100 MUL PUSH1 0x0 NOT ADD SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 DIV PUSH1 0x1F DUP2 ADD DUP5 SWAP1 DIV DUP5 MUL DUP3 ADD DUP5 ADD SWAP1 SWAP3 MSTORE DUP2 DUP2 MSTORE SWAP3 SWAP2 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x34E JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x323 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x34E JUMP JUMPDEST PUSH1 0x0 PUSH2 0x362 DUP4 DUP4 PUSH2 0x672 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x5 DUP1 SLOAD SWAP2 ISZERO ISZERO PUSH3 0x10000 MUL PUSH3 0xFF0000 NOT SWAP4 ISZERO ISZERO PUSH2 0x100 MUL PUSH2 0xFF00 NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP3 SWAP1 SWAP3 AND OR SWAP1 SSTORE JUMP JUMPDEST DUP2 PUSH2 0x4BA DUP2 PUSH2 0x728 JUMP JUMPDEST DUP2 ISZERO DUP1 PUSH2 0x4E8 JUMPI POP CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x4F3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST CALLER PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 AND DUP1 DUP6 MSTORE SWAP1 DUP4 MSTORE SWAP3 DUP2 SWAP1 KECCAK256 DUP7 SWAP1 SSTORE DUP1 MLOAD DUP7 DUP2 MSTORE SWAP1 MLOAD SWAP3 SWAP4 SWAP3 PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP3 SWAP2 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP POP POP JUMP JUMPDEST DUP3 PUSH2 0x560 DUP2 PUSH2 0x728 JUMP JUMPDEST DUP3 PUSH2 0x56A DUP2 PUSH2 0x728 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH2 0x59E SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0x7A2 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE DUP3 MSTORE DUP1 DUP4 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE SWAP2 DUP2 MSTORE PUSH1 0x1 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD PUSH2 0x5DF SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0x7A2 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE SWAP1 DUP7 AND DUP2 MSTORE KECCAK256 SLOAD PUSH2 0x614 SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0x819 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP7 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE DUP1 MLOAD DUP8 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP4 SWAP3 DUP10 AND SWAP3 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP3 SWAP2 DUP3 SWAP1 SUB ADD SWAP1 LOG3 POP POP POP POP POP JUMP JUMPDEST DUP2 PUSH2 0x67C DUP2 PUSH2 0x728 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x69C SWAP1 DUP4 PUSH4 0xFFFFFFFF PUSH2 0x7A2 AND JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP3 SWAP1 SWAP3 SSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND DUP2 MSTORE KECCAK256 SLOAD PUSH2 0x6CE SWAP1 DUP4 PUSH4 0xFFFFFFFF PUSH2 0x819 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE DUP1 MLOAD DUP6 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP3 CALLER SWAP3 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0x79F JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT ISZERO PUSH2 0x813 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F554E444552464C4F5700000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP SWAP1 SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 ADD DUP4 DUP2 LT ISZERO PUSH2 0x88D JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 0xed 0xaf 0xaf GASPRICE SWAP6 0x5d DIV 0xca 0xae PUSH19 0x138A446CB28EE6A87AD170C277045DC197D87A 0x24 PUSH11 0xA200290000000000000000 ", + "sourceMap": "4640:788:43:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2941:18;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2941:18:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;2941:18:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4989:136;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4989:136:43;-1:-1:-1;;;;;4989:136:43;;;;;;;;;;;;;;;;;;;;;;;;;209:26;;8:9:-1;5:2;;;30:1;27;20:12;5:2;209:26:43;;;;;;;;;;;;;;;;;;;;4715:15;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4715:15:43;;;;5259:167;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;5259:167:43;-1:-1:-1;;;;;5259:167:43;;;;;;;;;;;;2985:21;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2985:21:43;;;;;;;;;;;;;;;;;;;;;;;238:44;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;238:44:43;-1:-1:-1;;;;;238:44:43;;;;;2962:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2962:20:43;;;;5128:128;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;5128:128:43;-1:-1:-1;;;;;5128:128:43;;;;;;;4698:14;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4698:14:43;;;;285:64;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;285:64:43;-1:-1:-1;;;;;285:64:43;;;;;;;;;;4915:71;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4915:71:43;;;;;;;;;;;;;2941:18;;;;;;;;;;;;;;;-1:-1:-1;;2941:18:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;4989:136::-;5056:4;5066:26;5075:8;5085:6;5066:8;:26::i;:::-;5104:2;;;;;;;5096:11;;;;;;;;-1:-1:-1;;5118:3:43;;;;;;;;4989:136;-1:-1:-1;4989:136:43:o;209:26::-;;;;:::o;4715:15::-;;;;;;;;;:::o;5259:167::-;5350:4;5360:33;5374:5;5381:3;5386:6;5360:13;:33::i;:::-;5405:2;;;;;;;5397:11;;;;;;;;-1:-1:-1;;5419:3:43;;;;;;;;5259:167;-1:-1:-1;;5259:167:43:o;2985:21::-;;;;;;:::o;238:44::-;;;;;;;;;;;;;:::o;2962:20::-;;;;;;;;;;;;;;;-1:-1:-1;;2962:20:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5128:128;5191:4;5201:22;5211:3;5216:6;5201:9;:22::i;4698:14::-;;;;;;;;;:::o;285:64::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;4915:71::-;4960:2;:8;;4972:10;;;;;-1:-1:-1;;4960:8:43;;;;;-1:-1:-1;;4960:8:43;;;;;;;4972:10;;;;;;;4915:71::o;2517:363::-;2591:8;475:23:72;489:8;475:13;:23::i;:::-;2732:11:43;;;:51;;-1:-1:-1;2757:10:43;2747:21;;;;:9;:21;;;;;;;;-1:-1:-1;;;;;2747:31:43;;;;;;;;;;:36;2732:51;2724:60;;;;;;;;2799:10;2789:21;;;;:9;:21;;;;;;;;-1:-1:-1;;;;;2789:31:43;;;;;;;;;;;;:40;;;2838:38;;;;;;;2789:31;;2799:10;2838:38;;;;;;;;;;;2517:363;;;:::o;1541:337::-;1639:5;475:23:72;489:8;475:13;:23::i;:::-;1659:3:43;475:23:72;489:8;475:13;:23::i;:::-;-1:-1:-1;;;;;1699:16:43;;;;;;:9;:16;;;;;;;;1716:10;1699:28;;;;;;;;:40;;1732:6;1699:40;:32;:40;:::i;:::-;-1:-1:-1;;;;;1668:16:43;;;;;;:9;:16;;;;;;;;1685:10;1668:28;;;;;;;:71;;;;1762:16;;;:9;:16;;;;;:28;;1783:6;1762:28;:20;:28;:::i;:::-;-1:-1:-1;;;;;1743:16:43;;;;;;;:9;:16;;;;;;:47;;;;1811:14;;;;;;;:26;;1830:6;1811:26;:18;:26;:::i;:::-;-1:-1:-1;;;;;1794:14:43;;;;;;;:9;:14;;;;;;;;;:43;;;;1846:28;;;;;;;1794:14;;1846:28;;;;;;;;;;;;;502:1:72;1541:337:43;;;;:::o;982:229::-;1052:3;475:23:72;489:8;475:13;:23::i;:::-;1095:10:43;1085:21;;;;:9;:21;;;;;;:33;;1111:6;1085:33;:25;:33;:::i;:::-;1071:10;1061:21;;;;:9;:21;;;;;;:57;;;;-1:-1:-1;;;;;1139:14:43;;;;;;:26;;1158:6;1139:26;:18;:26;:::i;:::-;-1:-1:-1;;;;;1122:14:43;;;;;;:9;:14;;;;;;;;;:43;;;;1174:33;;;;;;;1122:14;;1183:10;;1174:33;;;;;;;;;;982:229;;;:::o;553:117:72:-;-1:-1:-1;;;;;620:22:72;;;;612:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;553:117;:::o;613:129:69:-;673:7;694:8;;;;686:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;731:7:69;;;613:129::o;288:144::-;348:7;373;;;392;;;;384:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;427:1;288:144;-1:-1:-1;;;288:144:69:o" + }, + "methodIdentifiers": { + "allowance(address,address)": "dd62ed3e", + "approve(address,uint256)": "095ea7b3", + "balanceOf(address)": "70a08231", + "decimals()": "313ce567", + "name()": "06fdde03", + "ok()": "d909b403", + "ret()": "1b08d96f", + "set(bool,bool)": "f907191a", + "symbol()": "95d89b41", + "totalSupply()": "18160ddd", + "transfer(address,uint256)": "a9059cbb", + "transferFrom(address,address,uint256)": "23b872dd" + } + }, + "userdoc": { + "methods": {} + } + } + }, + "solidity/contracts/helpers/TestTypedConverterAnchorFactory.sol": { + "TestTypedConverterAnchorFactory": { + "abi": [ + { + "constant": true, + "inputs": [], + "name": "name", + "outputs": [ + { + "name": "", + "type": "string" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "converterType", + "outputs": [ + { + "name": "", + "type": "uint16" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "", + "type": "string" + }, + { + "name": "_symbol", + "type": "string" + }, + { + "name": "_decimals", + "type": "uint8" + } + ], + "name": "createAnchor", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "name": "_name", + "type": "string" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + } + ], + "devdoc": { + "methods": {} + }, + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b5060405161176338038061176383398101604052805101805161003a906000906020840190610041565b50506100dc565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061008257805160ff19168380011785556100af565b828001600101855582156100af579182015b828111156100af578251825591602001919060010190610094565b506100bb9291506100bf565b5090565b6100d991905b808211156100bb57600081556001016100c5565b90565b611678806100eb6000396000f3006080604052600436106100565763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde03811461005b5780633e8ff43f146100e5578063a9fd4a2a14610111575b600080fd5b34801561006757600080fd5b506100706101d6565b6040805160208082528351818301528351919283929083019185019080838360005b838110156100aa578181015183820152602001610092565b50505050905090810190601f1680156100d75780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156100f157600080fd5b506100fa610264565b6040805161ffff9092168252519081900360200190f35b34801561011d57600080fd5b506040805160206004803580820135601f81018490048402850184019095528484526101ad94369492936024939284019190819084018382808284375050604080516020601f89358b018035918201839004830284018301909452808352979a9998810197919650918201945092508291508401838280828437509497505050923560ff16935061026992505050565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6000805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561025c5780601f106102315761010080835404028352916020019161025c565b820191906000526020600020905b81548152906001019060200180831161023f57829003601f168201915b505050505081565b600890565b60008060008484610278610414565b60ff821660408201526060808252845460026000196101006001841615020190911604908201819052819060208201906080830190879080156102fc5780601f106102d1576101008083540402835291602001916102fc565b820191906000526020600020905b8154815290600101906020018083116102df57829003601f168201915b5050838103825285518152855160209182019187019080838360005b83811015610330578181015183820152602001610318565b50505050905090810190601f16801561035d5780820380516001836020036101000a031916815260200191505b5095505050505050604051809103906000f080158015610381573d6000803e3d6000fd5b50604080517ff2fde38b000000000000000000000000000000000000000000000000000000008152336004820152905191925073ffffffffffffffffffffffffffffffffffffffff83169163f2fde38b9160248082019260009290919082900301818387803b1580156103f357600080fd5b505af1158015610407573d6000803e3d6000fd5b5092979650505050505050565b6040516112288061042583390190560060806040526008805460ff191660011790553480156200001e57600080fd5b506040516200122838038062001228833981016040908152815160208301519183015160008054600160a060020a0319163317815591840180519094939093019290918491849184918110620000d557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f4552525f494e56414c49445f4e414d4500000000000000000000000000000000604482015290519081900360640190fd5b82516000106200014657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f4552525f494e56414c49445f53594d424f4c0000000000000000000000000000604482015290519081900360640190fd5b83516200015b906002906020870190620001a8565b50825162000171906003906020860190620001a8565b506004805460ff191660ff9390931692909217909155600581905533600090815260066020526040902055506200024d9350505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620001eb57805160ff19168380011785556200021b565b828001600101855582156200021b579182015b828111156200021b578251825591602001919060010190620001fe565b50620002299291506200022d565b5090565b6200024a91905b8082111562000229576000815560010162000234565b90565b610fcb806200025d6000396000f3006080604052600436106101065763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde03811461010b578063095ea7b3146101955780631608f18f146101cd57806318160ddd146101e957806323b872dd14610210578063313ce5671461023a57806354fd4d50146102655780635e35359e1461029157806370a08231146102bb57806379ba5097146102dc578063867904b4146102f15780638da5cb5b1461031557806395d89b4114610346578063a24835d11461035b578063a9059cbb1461037f578063bef97c87146103a3578063d4ee1d90146103b8578063dd62ed3e146103cd578063f2fde38b146103f4575b600080fd5b34801561011757600080fd5b50610120610415565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561015a578181015183820152602001610142565b50505050905090810190601f1680156101875780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101a157600080fd5b506101b9600160a060020a03600435166024356104a0565b604080519115158252519081900360200190f35b3480156101d957600080fd5b506101e76004351515610598565b005b3480156101f557600080fd5b506101fe6105b2565b60408051918252519081900360200190f35b34801561021c57600080fd5b506101b9600160a060020a03600435811690602435166044356105b8565b34801561024657600080fd5b5061024f6105df565b6040805160ff9092168252519081900360200190f35b34801561027157600080fd5b5061027a6105e8565b6040805161ffff9092168252519081900360200190f35b34801561029d57600080fd5b506101e7600160a060020a03600435811690602435166044356105ed565b3480156102c757600080fd5b506101fe600160a060020a0360043516610626565b3480156102e857600080fd5b506101e7610638565b3480156102fd57600080fd5b506101e7600160a060020a036004351660243561070b565b34801561032157600080fd5b5061032a6107ed565b60408051600160a060020a039092168252519081900360200190f35b34801561035257600080fd5b506101206107fc565b34801561036757600080fd5b506101e7600160a060020a0360043516602435610857565b34801561038b57600080fd5b506101b9600160a060020a036004351660243561091d565b3480156103af57600080fd5b506101b9610942565b3480156103c457600080fd5b5061032a61094b565b3480156103d957600080fd5b506101fe600160a060020a036004358116906024351661095a565b34801561040057600080fd5b506101e7600160a060020a0360043516610977565b6002805460408051602060018416156101000260001901909316849004601f810184900484028201840190925281815292918301828280156104985780601f1061046d57610100808354040283529160200191610498565b820191906000526020600020905b81548152906001019060200180831161047b57829003601f168201915b505050505081565b6000826104ac81610a14565b8215806104da5750336000908152600760209081526040808320600160a060020a0388168452909152902054155b1515610530576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f494e56414c49445f414d4f554e540000000000000000000000000000604482015290519081900360640190fd5b336000818152600760209081526040808320600160a060020a03891680855290835292819020879055805187815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060019392505050565b6105a0610a77565b6008805460ff19169115919091179055565b60055481565b60006105c2610adb565b6105cd848484610b37565b15156105d557fe5b5060019392505050565b60045460ff1681565b600481565b6105f5610a77565b826105ff81610a14565b8261060981610a14565b8361061381610c48565b61061e868686610ca9565b505050505050565b60066020526000908152604090205481565b600154600160a060020a0316331461069a576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b60015460008054604051600160a060020a0393841693909116917f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91a3600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b610713610a77565b8161071d81610a14565b8261072781610c48565b60055461073a908463ffffffff610d6316565b600555600160a060020a038416600090815260066020526040902054610766908463ffffffff610d6316565b600160a060020a03851660009081526006602090815260409182902092909255805185815290517f9386c90217c323f58030f9dadcbc938f807a940f4ff41cd4cead9562f5da7dc3929181900390910190a1604080518481529051600160a060020a03861691600091600080516020610f808339815191529181900360200190a350505050565b600054600160a060020a031681565b6003805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156104985780601f1061046d57610100808354040283529160200191610498565b61085f610a77565b600160a060020a038216600090815260066020526040902054610888908263ffffffff610dc716565b600160a060020a0383166000908152600660205260409020556005546108b4908263ffffffff610dc716565b600555604080518281529051600091600160a060020a03851691600080516020610f808339815191529181900360200190a36040805182815290517f9a1b418bc061a5d80270261562e6986a35d995f8051145f277be16103abd34539181900360200190a15050565b6000610927610adb565b6109318383610e27565b151561093957fe5b50600192915050565b60085460ff1681565b600154600160a060020a031681565b600760209081526000928352604080842090915290825290205481565b61097f610a77565b600054600160a060020a03828116911614156109e5576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f53414d455f4f574e4552000000000000000000000000000000000000604482015290519081900360640190fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600160a060020a0381161515610a74576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b50565b600054600160a060020a03163314610ad9576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b565b60085460ff161515610ad9576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f5452414e53464552535f44495341424c454400000000000000000000604482015290519081900360640190fd5b600083610b4381610a14565b83610b4d81610a14565b600160a060020a0386166000908152600760209081526040808320338452909152902054610b81908563ffffffff610dc716565b600160a060020a038716600081815260076020908152604080832033845282528083209490945591815260069091522054610bc2908563ffffffff610dc716565b600160a060020a038088166000908152600660205260408082209390935590871681522054610bf7908563ffffffff610d6316565b600160a060020a0380871660008181526006602090815260409182902094909455805188815290519193928a1692600080516020610f8083398151915292918290030190a350600195945050505050565b600160a060020a038116301415610a74576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f414444524553535f49535f53454c4600000000000000000000000000604482015290519081900360640190fd5b604080517f7472616e7366657228616464726573732c75696e74323536290000000000000081528151908190036019018120600160a060020a038516602483015260448083018590528351808403909101815260649092019092526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152610d5e908490610ed2565b505050565b600082820183811015610dc0576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b9392505050565b600081831015610e21576040805160e560020a62461bcd02815260206004820152600d60248201527f4552525f554e444552464c4f5700000000000000000000000000000000000000604482015290519081900360640190fd5b50900390565b600082610e3381610a14565b33600090815260066020526040902054610e53908463ffffffff610dc716565b3360009081526006602052604080822092909255600160a060020a03861681522054610e85908463ffffffff610d6316565b600160a060020a038516600081815260066020908152604091829020939093558051868152905191923392600080516020610f808339815191529281900390910190a35060019392505050565b610eda610f60565b602060405190810160405280600181525090506020818351602085016000875af1801515610f0757600080fd5b5080511515610d5e576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f5452414e534645525f4641494c454400000000000000000000000000604482015290519081900360640190fd5b60206040519081016040528060019060208202803883395091929150505600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a7230582031b56aebc8336b547b3e1346f50c2f44f70def554ed4cba4c81bcf2e092d047f0029a165627a7a7230582097488304562bb3686d468c1f6c1c2362931404ba307d8528a280012f8e9f0a3c0029", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x1763 CODESIZE SUB DUP1 PUSH2 0x1763 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 MSTORE DUP1 MLOAD ADD DUP1 MLOAD PUSH2 0x3A SWAP1 PUSH1 0x0 SWAP1 PUSH1 0x20 DUP5 ADD SWAP1 PUSH2 0x41 JUMP JUMPDEST POP POP PUSH2 0xDC JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH1 0x1F LT PUSH2 0x82 JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH2 0xAF JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0xAF JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0xAF JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x94 JUMP JUMPDEST POP PUSH2 0xBB SWAP3 SWAP2 POP PUSH2 0xBF JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH2 0xD9 SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0xBB JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0xC5 JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH2 0x1678 DUP1 PUSH2 0xEB PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x56 JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x6FDDE03 DUP2 EQ PUSH2 0x5B JUMPI DUP1 PUSH4 0x3E8FF43F EQ PUSH2 0xE5 JUMPI DUP1 PUSH4 0xA9FD4A2A EQ PUSH2 0x111 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x67 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x70 PUSH2 0x1D6 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP4 MLOAD DUP2 DUP4 ADD MSTORE DUP4 MLOAD SWAP2 SWAP3 DUP4 SWAP3 SWAP1 DUP4 ADD SWAP2 DUP6 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xAA JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x92 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0xD7 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xF1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xFA PUSH2 0x264 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0xFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x11D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD PUSH1 0x1F DUP2 ADD DUP5 SWAP1 DIV DUP5 MUL DUP6 ADD DUP5 ADD SWAP1 SWAP6 MSTORE DUP5 DUP5 MSTORE PUSH2 0x1AD SWAP5 CALLDATASIZE SWAP5 SWAP3 SWAP4 PUSH1 0x24 SWAP4 SWAP3 DUP5 ADD SWAP2 SWAP1 DUP2 SWAP1 DUP5 ADD DUP4 DUP3 DUP1 DUP3 DUP5 CALLDATACOPY POP POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x1F DUP10 CALLDATALOAD DUP12 ADD DUP1 CALLDATALOAD SWAP2 DUP3 ADD DUP4 SWAP1 DIV DUP4 MUL DUP5 ADD DUP4 ADD SWAP1 SWAP5 MSTORE DUP1 DUP4 MSTORE SWAP8 SWAP11 SWAP10 SWAP9 DUP2 ADD SWAP8 SWAP2 SWAP7 POP SWAP2 DUP3 ADD SWAP5 POP SWAP3 POP DUP3 SWAP2 POP DUP5 ADD DUP4 DUP3 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP POP POP SWAP3 CALLDATALOAD PUSH1 0xFF AND SWAP4 POP PUSH2 0x269 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x2 PUSH1 0x1 DUP6 AND ISZERO PUSH2 0x100 MUL PUSH1 0x0 NOT ADD SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 DIV PUSH1 0x1F DUP2 ADD DUP5 SWAP1 DIV DUP5 MUL DUP3 ADD DUP5 ADD SWAP1 SWAP3 MSTORE DUP2 DUP2 MSTORE SWAP3 SWAP2 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x25C JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x231 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x25C JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x23F JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH1 0x8 SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP5 DUP5 PUSH2 0x278 PUSH2 0x414 JUMP JUMPDEST PUSH1 0xFF DUP3 AND PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP1 DUP3 MSTORE DUP5 SLOAD PUSH1 0x2 PUSH1 0x0 NOT PUSH2 0x100 PUSH1 0x1 DUP5 AND ISZERO MUL ADD SWAP1 SWAP2 AND DIV SWAP1 DUP3 ADD DUP2 SWAP1 MSTORE DUP2 SWAP1 PUSH1 0x20 DUP3 ADD SWAP1 PUSH1 0x80 DUP4 ADD SWAP1 DUP8 SWAP1 DUP1 ISZERO PUSH2 0x2FC JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x2D1 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x2FC JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x2DF JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP DUP4 DUP2 SUB DUP3 MSTORE DUP6 MLOAD DUP2 MSTORE DUP6 MLOAD PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 DUP8 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x330 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x318 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x35D JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP6 POP POP POP POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 PUSH1 0x0 CREATE DUP1 ISZERO DUP1 ISZERO PUSH2 0x381 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH32 0xF2FDE38B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD SWAP2 SWAP3 POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND SWAP2 PUSH4 0xF2FDE38B SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3F3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x407 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP SWAP3 SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1228 DUP1 PUSH2 0x425 DUP4 CODECOPY ADD SWAP1 JUMP STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x8 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE CALLVALUE DUP1 ISZERO PUSH3 0x1E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x1228 CODESIZE SUB DUP1 PUSH3 0x1228 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 SWAP1 DUP2 MSTORE DUP2 MLOAD PUSH1 0x20 DUP4 ADD MLOAD SWAP2 DUP4 ADD MLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND CALLER OR DUP2 SSTORE SWAP2 DUP5 ADD DUP1 MLOAD SWAP1 SWAP5 SWAP4 SWAP1 SWAP4 ADD SWAP3 SWAP1 SWAP2 DUP5 SWAP2 DUP5 SWAP2 DUP5 SWAP2 DUP2 LT PUSH3 0xD5 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4E414D4500000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP3 MLOAD PUSH1 0x0 LT PUSH3 0x146 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F53594D424F4C0000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP4 MLOAD PUSH3 0x15B SWAP1 PUSH1 0x2 SWAP1 PUSH1 0x20 DUP8 ADD SWAP1 PUSH3 0x1A8 JUMP JUMPDEST POP DUP3 MLOAD PUSH3 0x171 SWAP1 PUSH1 0x3 SWAP1 PUSH1 0x20 DUP7 ADD SWAP1 PUSH3 0x1A8 JUMP JUMPDEST POP PUSH1 0x4 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0xFF SWAP4 SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 SSTORE PUSH1 0x5 DUP2 SWAP1 SSTORE CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE POP PUSH3 0x24D SWAP4 POP POP POP POP JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH1 0x1F LT PUSH3 0x1EB JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH3 0x21B JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH3 0x21B JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH3 0x21B JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH3 0x1FE JUMP JUMPDEST POP PUSH3 0x229 SWAP3 SWAP2 POP PUSH3 0x22D JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH3 0x24A SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH3 0x229 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH3 0x234 JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH2 0xFCB DUP1 PUSH3 0x25D PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x106 JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x6FDDE03 DUP2 EQ PUSH2 0x10B JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x195 JUMPI DUP1 PUSH4 0x1608F18F EQ PUSH2 0x1CD JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x1E9 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x210 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x23A JUMPI DUP1 PUSH4 0x54FD4D50 EQ PUSH2 0x265 JUMPI DUP1 PUSH4 0x5E35359E EQ PUSH2 0x291 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x2BB JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x2DC JUMPI DUP1 PUSH4 0x867904B4 EQ PUSH2 0x2F1 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x315 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x346 JUMPI DUP1 PUSH4 0xA24835D1 EQ PUSH2 0x35B JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x37F JUMPI DUP1 PUSH4 0xBEF97C87 EQ PUSH2 0x3A3 JUMPI DUP1 PUSH4 0xD4EE1D90 EQ PUSH2 0x3B8 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x3CD JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x3F4 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x117 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x120 PUSH2 0x415 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP4 MLOAD DUP2 DUP4 ADD MSTORE DUP4 MLOAD SWAP2 SWAP3 DUP4 SWAP3 SWAP1 DUP4 ADD SWAP2 DUP6 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x15A JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x142 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x187 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1A1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B9 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x4A0 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1D9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH1 0x4 CALLDATALOAD ISZERO ISZERO PUSH2 0x598 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1FE PUSH2 0x5B2 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x21C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B9 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x5B8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x246 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x24F PUSH2 0x5DF JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x271 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x27A PUSH2 0x5E8 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0xFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x29D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x5ED JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2C7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1FE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x626 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2E8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH2 0x638 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2FD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x70B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x321 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x32A PUSH2 0x7ED JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x352 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x120 PUSH2 0x7FC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x367 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x857 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x38B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B9 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x91D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3AF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B9 PUSH2 0x942 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3C4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x32A PUSH2 0x94B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3D9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1FE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH2 0x95A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x400 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x977 JUMP JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x1 DUP5 AND ISZERO PUSH2 0x100 MUL PUSH1 0x0 NOT ADD SWAP1 SWAP4 AND DUP5 SWAP1 DIV PUSH1 0x1F DUP2 ADD DUP5 SWAP1 DIV DUP5 MUL DUP3 ADD DUP5 ADD SWAP1 SWAP3 MSTORE DUP2 DUP2 MSTORE SWAP3 SWAP2 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x498 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x46D JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x498 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x47B JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x4AC DUP2 PUSH2 0xA14 JUMP JUMPDEST DUP3 ISZERO DUP1 PUSH2 0x4DA JUMPI POP CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x530 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F414D4F554E540000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST CALLER PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP10 AND DUP1 DUP6 MSTORE SWAP1 DUP4 MSTORE SWAP3 DUP2 SWAP1 KECCAK256 DUP8 SWAP1 SSTORE DUP1 MLOAD DUP8 DUP2 MSTORE SWAP1 MLOAD SWAP3 SWAP4 SWAP3 PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP3 SWAP2 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x5A0 PUSH2 0xA77 JUMP JUMPDEST PUSH1 0x8 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP2 ISZERO SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x5 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5C2 PUSH2 0xADB JUMP JUMPDEST PUSH2 0x5CD DUP5 DUP5 DUP5 PUSH2 0xB37 JUMP JUMPDEST ISZERO ISZERO PUSH2 0x5D5 JUMPI INVALID JUMPDEST POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x4 DUP2 JUMP JUMPDEST PUSH2 0x5F5 PUSH2 0xA77 JUMP JUMPDEST DUP3 PUSH2 0x5FF DUP2 PUSH2 0xA14 JUMP JUMPDEST DUP3 PUSH2 0x609 DUP2 PUSH2 0xA14 JUMP JUMPDEST DUP4 PUSH2 0x613 DUP2 PUSH2 0xC48 JUMP JUMPDEST PUSH2 0x61E DUP7 DUP7 DUP7 PUSH2 0xCA9 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x69A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND SWAP4 SWAP1 SWAP2 AND SWAP2 PUSH32 0x343765429AEA5A34B3FF6A3785A98A5ABB2597ACA87BFBB58632C173D585373A SWAP2 LOG3 PUSH1 0x1 DUP1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND OR SWAP1 SWAP2 SSTORE AND SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x713 PUSH2 0xA77 JUMP JUMPDEST DUP2 PUSH2 0x71D DUP2 PUSH2 0xA14 JUMP JUMPDEST DUP3 PUSH2 0x727 DUP2 PUSH2 0xC48 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH2 0x73A SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0xD63 AND JUMP JUMPDEST PUSH1 0x5 SSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x766 SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0xD63 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SWAP3 SWAP1 SWAP3 SSTORE DUP1 MLOAD DUP6 DUP2 MSTORE SWAP1 MLOAD PUSH32 0x9386C90217C323F58030F9DADCBC938F807A940F4FF41CD4CEAD9562F5DA7DC3 SWAP3 SWAP2 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG1 PUSH1 0x40 DUP1 MLOAD DUP5 DUP2 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND SWAP2 PUSH1 0x0 SWAP2 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xF80 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP2 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 LOG3 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x2 PUSH1 0x1 DUP6 AND ISZERO PUSH2 0x100 MUL PUSH1 0x0 NOT ADD SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 DIV PUSH1 0x1F DUP2 ADD DUP5 SWAP1 DIV DUP5 MUL DUP3 ADD DUP5 ADD SWAP1 SWAP3 MSTORE DUP2 DUP2 MSTORE SWAP3 SWAP2 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x498 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x46D JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x498 JUMP JUMPDEST PUSH2 0x85F PUSH2 0xA77 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x888 SWAP1 DUP3 PUSH4 0xFFFFFFFF PUSH2 0xDC7 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE PUSH1 0x5 SLOAD PUSH2 0x8B4 SWAP1 DUP3 PUSH4 0xFFFFFFFF PUSH2 0xDC7 AND JUMP JUMPDEST PUSH1 0x5 SSTORE PUSH1 0x40 DUP1 MLOAD DUP3 DUP2 MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND SWAP2 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xF80 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP2 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 LOG3 PUSH1 0x40 DUP1 MLOAD DUP3 DUP2 MSTORE SWAP1 MLOAD PUSH32 0x9A1B418BC061A5D80270261562E6986A35D995F8051145F277BE16103ABD3453 SWAP2 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x927 PUSH2 0xADB JUMP JUMPDEST PUSH2 0x931 DUP4 DUP4 PUSH2 0xE27 JUMP JUMPDEST ISZERO ISZERO PUSH2 0x939 JUMPI INVALID JUMPDEST POP PUSH1 0x1 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x97F PUSH2 0xA77 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x9E5 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F4F574E4552000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0xA74 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0xAD9 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0xFF AND ISZERO ISZERO PUSH2 0xAD9 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5452414E53464552535F44495341424C454400000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP4 PUSH2 0xB43 DUP2 PUSH2 0xA14 JUMP JUMPDEST DUP4 PUSH2 0xB4D DUP2 PUSH2 0xA14 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH2 0xB81 SWAP1 DUP6 PUSH4 0xFFFFFFFF PUSH2 0xDC7 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE DUP3 MSTORE DUP1 DUP4 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE SWAP2 DUP2 MSTORE PUSH1 0x6 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD PUSH2 0xBC2 SWAP1 DUP6 PUSH4 0xFFFFFFFF PUSH2 0xDC7 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE SWAP1 DUP8 AND DUP2 MSTORE KECCAK256 SLOAD PUSH2 0xBF7 SWAP1 DUP6 PUSH4 0xFFFFFFFF PUSH2 0xD63 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP8 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE DUP1 MLOAD DUP9 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP4 SWAP3 DUP11 AND SWAP3 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xF80 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP3 SWAP2 DUP3 SWAP1 SUB ADD SWAP1 LOG3 POP PUSH1 0x1 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ADDRESS EQ ISZERO PUSH2 0xA74 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F414444524553535F49535F53454C4600000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x7472616E7366657228616464726573732C75696E743235362900000000000000 DUP2 MSTORE DUP2 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x19 ADD DUP2 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x64 SWAP1 SWAP3 ADD SWAP1 SWAP3 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE PUSH2 0xD5E SWAP1 DUP5 SWAP1 PUSH2 0xED2 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 ADD DUP4 DUP2 LT ISZERO PUSH2 0xDC0 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT ISZERO PUSH2 0xE21 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F554E444552464C4F5700000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP SWAP1 SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0xE33 DUP2 PUSH2 0xA14 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0xE53 SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0xDC7 AND JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP3 SWAP1 SWAP3 SSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND DUP2 MSTORE KECCAK256 SLOAD PUSH2 0xE85 SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0xD63 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE DUP1 MLOAD DUP7 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP3 CALLER SWAP3 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xF80 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0xEDA PUSH2 0xF60 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE POP SWAP1 POP PUSH1 0x20 DUP2 DUP4 MLOAD PUSH1 0x20 DUP6 ADD PUSH1 0x0 DUP8 GAS CALL DUP1 ISZERO ISZERO PUSH2 0xF07 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD ISZERO ISZERO PUSH2 0xD5E JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5452414E534645525F4641494C454400000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 SWAP1 PUSH1 0x20 DUP3 MUL DUP1 CODESIZE DUP4 CODECOPY POP SWAP2 SWAP3 SWAP2 POP POP JUMP STOP 0xdd CALLCODE MSTORE 0xad SHL 0xe2 0xc8 SWAP12 PUSH10 0xC2B068FC378DAA952BA7 CALL PUSH4 0xC4A11628 0xf5 GAS 0x4d 0xf5 0x23 0xb3 0xef LOG1 PUSH6 0x627A7A723058 KECCAK256 BALANCE 0xb5 PUSH11 0xEBC8336B547B3E1346F50C 0x2f DIFFICULTY 0xf7 0xd 0xef SSTORE 0x4e 0xd4 0xcb LOG4 0xc8 SHL 0xcf 0x2e MULMOD 0x2d DIV PUSH32 0x29A165627A7A7230582097488304562BB3686D468C1F6C1C2362931404BA30 PUSH30 0x8528A280012F8E9F0A3C0029000000000000000000000000000000000000 ", + "sourceMap": "181:479:44:-;;;279:53;8:9:-1;5:2;;;30:1;27;20:12;5:2;279:53:44;;;;;;;;;;;;;;;;;316:12;;;;:4;;:12;;;;;:::i;:::-;;279:53;181:479;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;181:479:44;;;-1:-1:-1;181:479:44;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "6080604052600436106100565763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde03811461005b5780633e8ff43f146100e5578063a9fd4a2a14610111575b600080fd5b34801561006757600080fd5b506100706101d6565b6040805160208082528351818301528351919283929083019185019080838360005b838110156100aa578181015183820152602001610092565b50505050905090810190601f1680156100d75780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156100f157600080fd5b506100fa610264565b6040805161ffff9092168252519081900360200190f35b34801561011d57600080fd5b506040805160206004803580820135601f81018490048402850184019095528484526101ad94369492936024939284019190819084018382808284375050604080516020601f89358b018035918201839004830284018301909452808352979a9998810197919650918201945092508291508401838280828437509497505050923560ff16935061026992505050565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6000805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561025c5780601f106102315761010080835404028352916020019161025c565b820191906000526020600020905b81548152906001019060200180831161023f57829003601f168201915b505050505081565b600890565b60008060008484610278610414565b60ff821660408201526060808252845460026000196101006001841615020190911604908201819052819060208201906080830190879080156102fc5780601f106102d1576101008083540402835291602001916102fc565b820191906000526020600020905b8154815290600101906020018083116102df57829003601f168201915b5050838103825285518152855160209182019187019080838360005b83811015610330578181015183820152602001610318565b50505050905090810190601f16801561035d5780820380516001836020036101000a031916815260200191505b5095505050505050604051809103906000f080158015610381573d6000803e3d6000fd5b50604080517ff2fde38b000000000000000000000000000000000000000000000000000000008152336004820152905191925073ffffffffffffffffffffffffffffffffffffffff83169163f2fde38b9160248082019260009290919082900301818387803b1580156103f357600080fd5b505af1158015610407573d6000803e3d6000fd5b5092979650505050505050565b6040516112288061042583390190560060806040526008805460ff191660011790553480156200001e57600080fd5b506040516200122838038062001228833981016040908152815160208301519183015160008054600160a060020a0319163317815591840180519094939093019290918491849184918110620000d557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f4552525f494e56414c49445f4e414d4500000000000000000000000000000000604482015290519081900360640190fd5b82516000106200014657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f4552525f494e56414c49445f53594d424f4c0000000000000000000000000000604482015290519081900360640190fd5b83516200015b906002906020870190620001a8565b50825162000171906003906020860190620001a8565b506004805460ff191660ff9390931692909217909155600581905533600090815260066020526040902055506200024d9350505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620001eb57805160ff19168380011785556200021b565b828001600101855582156200021b579182015b828111156200021b578251825591602001919060010190620001fe565b50620002299291506200022d565b5090565b6200024a91905b8082111562000229576000815560010162000234565b90565b610fcb806200025d6000396000f3006080604052600436106101065763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde03811461010b578063095ea7b3146101955780631608f18f146101cd57806318160ddd146101e957806323b872dd14610210578063313ce5671461023a57806354fd4d50146102655780635e35359e1461029157806370a08231146102bb57806379ba5097146102dc578063867904b4146102f15780638da5cb5b1461031557806395d89b4114610346578063a24835d11461035b578063a9059cbb1461037f578063bef97c87146103a3578063d4ee1d90146103b8578063dd62ed3e146103cd578063f2fde38b146103f4575b600080fd5b34801561011757600080fd5b50610120610415565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561015a578181015183820152602001610142565b50505050905090810190601f1680156101875780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101a157600080fd5b506101b9600160a060020a03600435166024356104a0565b604080519115158252519081900360200190f35b3480156101d957600080fd5b506101e76004351515610598565b005b3480156101f557600080fd5b506101fe6105b2565b60408051918252519081900360200190f35b34801561021c57600080fd5b506101b9600160a060020a03600435811690602435166044356105b8565b34801561024657600080fd5b5061024f6105df565b6040805160ff9092168252519081900360200190f35b34801561027157600080fd5b5061027a6105e8565b6040805161ffff9092168252519081900360200190f35b34801561029d57600080fd5b506101e7600160a060020a03600435811690602435166044356105ed565b3480156102c757600080fd5b506101fe600160a060020a0360043516610626565b3480156102e857600080fd5b506101e7610638565b3480156102fd57600080fd5b506101e7600160a060020a036004351660243561070b565b34801561032157600080fd5b5061032a6107ed565b60408051600160a060020a039092168252519081900360200190f35b34801561035257600080fd5b506101206107fc565b34801561036757600080fd5b506101e7600160a060020a0360043516602435610857565b34801561038b57600080fd5b506101b9600160a060020a036004351660243561091d565b3480156103af57600080fd5b506101b9610942565b3480156103c457600080fd5b5061032a61094b565b3480156103d957600080fd5b506101fe600160a060020a036004358116906024351661095a565b34801561040057600080fd5b506101e7600160a060020a0360043516610977565b6002805460408051602060018416156101000260001901909316849004601f810184900484028201840190925281815292918301828280156104985780601f1061046d57610100808354040283529160200191610498565b820191906000526020600020905b81548152906001019060200180831161047b57829003601f168201915b505050505081565b6000826104ac81610a14565b8215806104da5750336000908152600760209081526040808320600160a060020a0388168452909152902054155b1515610530576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f494e56414c49445f414d4f554e540000000000000000000000000000604482015290519081900360640190fd5b336000818152600760209081526040808320600160a060020a03891680855290835292819020879055805187815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060019392505050565b6105a0610a77565b6008805460ff19169115919091179055565b60055481565b60006105c2610adb565b6105cd848484610b37565b15156105d557fe5b5060019392505050565b60045460ff1681565b600481565b6105f5610a77565b826105ff81610a14565b8261060981610a14565b8361061381610c48565b61061e868686610ca9565b505050505050565b60066020526000908152604090205481565b600154600160a060020a0316331461069a576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b60015460008054604051600160a060020a0393841693909116917f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91a3600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b610713610a77565b8161071d81610a14565b8261072781610c48565b60055461073a908463ffffffff610d6316565b600555600160a060020a038416600090815260066020526040902054610766908463ffffffff610d6316565b600160a060020a03851660009081526006602090815260409182902092909255805185815290517f9386c90217c323f58030f9dadcbc938f807a940f4ff41cd4cead9562f5da7dc3929181900390910190a1604080518481529051600160a060020a03861691600091600080516020610f808339815191529181900360200190a350505050565b600054600160a060020a031681565b6003805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156104985780601f1061046d57610100808354040283529160200191610498565b61085f610a77565b600160a060020a038216600090815260066020526040902054610888908263ffffffff610dc716565b600160a060020a0383166000908152600660205260409020556005546108b4908263ffffffff610dc716565b600555604080518281529051600091600160a060020a03851691600080516020610f808339815191529181900360200190a36040805182815290517f9a1b418bc061a5d80270261562e6986a35d995f8051145f277be16103abd34539181900360200190a15050565b6000610927610adb565b6109318383610e27565b151561093957fe5b50600192915050565b60085460ff1681565b600154600160a060020a031681565b600760209081526000928352604080842090915290825290205481565b61097f610a77565b600054600160a060020a03828116911614156109e5576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f53414d455f4f574e4552000000000000000000000000000000000000604482015290519081900360640190fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600160a060020a0381161515610a74576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b50565b600054600160a060020a03163314610ad9576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b565b60085460ff161515610ad9576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f5452414e53464552535f44495341424c454400000000000000000000604482015290519081900360640190fd5b600083610b4381610a14565b83610b4d81610a14565b600160a060020a0386166000908152600760209081526040808320338452909152902054610b81908563ffffffff610dc716565b600160a060020a038716600081815260076020908152604080832033845282528083209490945591815260069091522054610bc2908563ffffffff610dc716565b600160a060020a038088166000908152600660205260408082209390935590871681522054610bf7908563ffffffff610d6316565b600160a060020a0380871660008181526006602090815260409182902094909455805188815290519193928a1692600080516020610f8083398151915292918290030190a350600195945050505050565b600160a060020a038116301415610a74576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f414444524553535f49535f53454c4600000000000000000000000000604482015290519081900360640190fd5b604080517f7472616e7366657228616464726573732c75696e74323536290000000000000081528151908190036019018120600160a060020a038516602483015260448083018590528351808403909101815260649092019092526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152610d5e908490610ed2565b505050565b600082820183811015610dc0576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b9392505050565b600081831015610e21576040805160e560020a62461bcd02815260206004820152600d60248201527f4552525f554e444552464c4f5700000000000000000000000000000000000000604482015290519081900360640190fd5b50900390565b600082610e3381610a14565b33600090815260066020526040902054610e53908463ffffffff610dc716565b3360009081526006602052604080822092909255600160a060020a03861681522054610e85908463ffffffff610d6316565b600160a060020a038516600081815260066020908152604091829020939093558051868152905191923392600080516020610f808339815191529281900390910190a35060019392505050565b610eda610f60565b602060405190810160405280600181525090506020818351602085016000875af1801515610f0757600080fd5b5080511515610d5e576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f5452414e534645525f4641494c454400000000000000000000000000604482015290519081900360640190fd5b60206040519081016040528060019060208202803883395091929150505600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a7230582031b56aebc8336b547b3e1346f50c2f44f70def554ed4cba4c81bcf2e092d047f0029a165627a7a7230582097488304562bb3686d468c1f6c1c2362931404ba307d8528a280012f8e9f0a3c0029", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x56 JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x6FDDE03 DUP2 EQ PUSH2 0x5B JUMPI DUP1 PUSH4 0x3E8FF43F EQ PUSH2 0xE5 JUMPI DUP1 PUSH4 0xA9FD4A2A EQ PUSH2 0x111 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x67 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x70 PUSH2 0x1D6 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP4 MLOAD DUP2 DUP4 ADD MSTORE DUP4 MLOAD SWAP2 SWAP3 DUP4 SWAP3 SWAP1 DUP4 ADD SWAP2 DUP6 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xAA JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x92 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0xD7 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xF1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xFA PUSH2 0x264 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0xFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x11D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD PUSH1 0x1F DUP2 ADD DUP5 SWAP1 DIV DUP5 MUL DUP6 ADD DUP5 ADD SWAP1 SWAP6 MSTORE DUP5 DUP5 MSTORE PUSH2 0x1AD SWAP5 CALLDATASIZE SWAP5 SWAP3 SWAP4 PUSH1 0x24 SWAP4 SWAP3 DUP5 ADD SWAP2 SWAP1 DUP2 SWAP1 DUP5 ADD DUP4 DUP3 DUP1 DUP3 DUP5 CALLDATACOPY POP POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x1F DUP10 CALLDATALOAD DUP12 ADD DUP1 CALLDATALOAD SWAP2 DUP3 ADD DUP4 SWAP1 DIV DUP4 MUL DUP5 ADD DUP4 ADD SWAP1 SWAP5 MSTORE DUP1 DUP4 MSTORE SWAP8 SWAP11 SWAP10 SWAP9 DUP2 ADD SWAP8 SWAP2 SWAP7 POP SWAP2 DUP3 ADD SWAP5 POP SWAP3 POP DUP3 SWAP2 POP DUP5 ADD DUP4 DUP3 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP POP POP SWAP3 CALLDATALOAD PUSH1 0xFF AND SWAP4 POP PUSH2 0x269 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x2 PUSH1 0x1 DUP6 AND ISZERO PUSH2 0x100 MUL PUSH1 0x0 NOT ADD SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 DIV PUSH1 0x1F DUP2 ADD DUP5 SWAP1 DIV DUP5 MUL DUP3 ADD DUP5 ADD SWAP1 SWAP3 MSTORE DUP2 DUP2 MSTORE SWAP3 SWAP2 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x25C JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x231 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x25C JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x23F JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH1 0x8 SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP5 DUP5 PUSH2 0x278 PUSH2 0x414 JUMP JUMPDEST PUSH1 0xFF DUP3 AND PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP1 DUP3 MSTORE DUP5 SLOAD PUSH1 0x2 PUSH1 0x0 NOT PUSH2 0x100 PUSH1 0x1 DUP5 AND ISZERO MUL ADD SWAP1 SWAP2 AND DIV SWAP1 DUP3 ADD DUP2 SWAP1 MSTORE DUP2 SWAP1 PUSH1 0x20 DUP3 ADD SWAP1 PUSH1 0x80 DUP4 ADD SWAP1 DUP8 SWAP1 DUP1 ISZERO PUSH2 0x2FC JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x2D1 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x2FC JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x2DF JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP DUP4 DUP2 SUB DUP3 MSTORE DUP6 MLOAD DUP2 MSTORE DUP6 MLOAD PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 DUP8 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x330 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x318 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x35D JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP6 POP POP POP POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 PUSH1 0x0 CREATE DUP1 ISZERO DUP1 ISZERO PUSH2 0x381 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH32 0xF2FDE38B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD SWAP2 SWAP3 POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND SWAP2 PUSH4 0xF2FDE38B SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3F3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x407 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP SWAP3 SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1228 DUP1 PUSH2 0x425 DUP4 CODECOPY ADD SWAP1 JUMP STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x8 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE CALLVALUE DUP1 ISZERO PUSH3 0x1E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x1228 CODESIZE SUB DUP1 PUSH3 0x1228 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 SWAP1 DUP2 MSTORE DUP2 MLOAD PUSH1 0x20 DUP4 ADD MLOAD SWAP2 DUP4 ADD MLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND CALLER OR DUP2 SSTORE SWAP2 DUP5 ADD DUP1 MLOAD SWAP1 SWAP5 SWAP4 SWAP1 SWAP4 ADD SWAP3 SWAP1 SWAP2 DUP5 SWAP2 DUP5 SWAP2 DUP5 SWAP2 DUP2 LT PUSH3 0xD5 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4E414D4500000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP3 MLOAD PUSH1 0x0 LT PUSH3 0x146 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F53594D424F4C0000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP4 MLOAD PUSH3 0x15B SWAP1 PUSH1 0x2 SWAP1 PUSH1 0x20 DUP8 ADD SWAP1 PUSH3 0x1A8 JUMP JUMPDEST POP DUP3 MLOAD PUSH3 0x171 SWAP1 PUSH1 0x3 SWAP1 PUSH1 0x20 DUP7 ADD SWAP1 PUSH3 0x1A8 JUMP JUMPDEST POP PUSH1 0x4 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0xFF SWAP4 SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 SSTORE PUSH1 0x5 DUP2 SWAP1 SSTORE CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE POP PUSH3 0x24D SWAP4 POP POP POP POP JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH1 0x1F LT PUSH3 0x1EB JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH3 0x21B JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH3 0x21B JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH3 0x21B JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH3 0x1FE JUMP JUMPDEST POP PUSH3 0x229 SWAP3 SWAP2 POP PUSH3 0x22D JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH3 0x24A SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH3 0x229 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH3 0x234 JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH2 0xFCB DUP1 PUSH3 0x25D PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x106 JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x6FDDE03 DUP2 EQ PUSH2 0x10B JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x195 JUMPI DUP1 PUSH4 0x1608F18F EQ PUSH2 0x1CD JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x1E9 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x210 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x23A JUMPI DUP1 PUSH4 0x54FD4D50 EQ PUSH2 0x265 JUMPI DUP1 PUSH4 0x5E35359E EQ PUSH2 0x291 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x2BB JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x2DC JUMPI DUP1 PUSH4 0x867904B4 EQ PUSH2 0x2F1 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x315 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x346 JUMPI DUP1 PUSH4 0xA24835D1 EQ PUSH2 0x35B JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x37F JUMPI DUP1 PUSH4 0xBEF97C87 EQ PUSH2 0x3A3 JUMPI DUP1 PUSH4 0xD4EE1D90 EQ PUSH2 0x3B8 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x3CD JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x3F4 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x117 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x120 PUSH2 0x415 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP4 MLOAD DUP2 DUP4 ADD MSTORE DUP4 MLOAD SWAP2 SWAP3 DUP4 SWAP3 SWAP1 DUP4 ADD SWAP2 DUP6 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x15A JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x142 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x187 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1A1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B9 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x4A0 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1D9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH1 0x4 CALLDATALOAD ISZERO ISZERO PUSH2 0x598 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1FE PUSH2 0x5B2 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x21C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B9 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x5B8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x246 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x24F PUSH2 0x5DF JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x271 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x27A PUSH2 0x5E8 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0xFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x29D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x5ED JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2C7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1FE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x626 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2E8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH2 0x638 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2FD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x70B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x321 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x32A PUSH2 0x7ED JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x352 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x120 PUSH2 0x7FC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x367 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x857 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x38B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B9 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x91D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3AF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B9 PUSH2 0x942 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3C4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x32A PUSH2 0x94B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3D9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1FE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH2 0x95A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x400 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x977 JUMP JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x1 DUP5 AND ISZERO PUSH2 0x100 MUL PUSH1 0x0 NOT ADD SWAP1 SWAP4 AND DUP5 SWAP1 DIV PUSH1 0x1F DUP2 ADD DUP5 SWAP1 DIV DUP5 MUL DUP3 ADD DUP5 ADD SWAP1 SWAP3 MSTORE DUP2 DUP2 MSTORE SWAP3 SWAP2 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x498 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x46D JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x498 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x47B JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x4AC DUP2 PUSH2 0xA14 JUMP JUMPDEST DUP3 ISZERO DUP1 PUSH2 0x4DA JUMPI POP CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x530 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F414D4F554E540000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST CALLER PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP10 AND DUP1 DUP6 MSTORE SWAP1 DUP4 MSTORE SWAP3 DUP2 SWAP1 KECCAK256 DUP8 SWAP1 SSTORE DUP1 MLOAD DUP8 DUP2 MSTORE SWAP1 MLOAD SWAP3 SWAP4 SWAP3 PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP3 SWAP2 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x5A0 PUSH2 0xA77 JUMP JUMPDEST PUSH1 0x8 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP2 ISZERO SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x5 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5C2 PUSH2 0xADB JUMP JUMPDEST PUSH2 0x5CD DUP5 DUP5 DUP5 PUSH2 0xB37 JUMP JUMPDEST ISZERO ISZERO PUSH2 0x5D5 JUMPI INVALID JUMPDEST POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x4 DUP2 JUMP JUMPDEST PUSH2 0x5F5 PUSH2 0xA77 JUMP JUMPDEST DUP3 PUSH2 0x5FF DUP2 PUSH2 0xA14 JUMP JUMPDEST DUP3 PUSH2 0x609 DUP2 PUSH2 0xA14 JUMP JUMPDEST DUP4 PUSH2 0x613 DUP2 PUSH2 0xC48 JUMP JUMPDEST PUSH2 0x61E DUP7 DUP7 DUP7 PUSH2 0xCA9 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x69A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND SWAP4 SWAP1 SWAP2 AND SWAP2 PUSH32 0x343765429AEA5A34B3FF6A3785A98A5ABB2597ACA87BFBB58632C173D585373A SWAP2 LOG3 PUSH1 0x1 DUP1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND OR SWAP1 SWAP2 SSTORE AND SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x713 PUSH2 0xA77 JUMP JUMPDEST DUP2 PUSH2 0x71D DUP2 PUSH2 0xA14 JUMP JUMPDEST DUP3 PUSH2 0x727 DUP2 PUSH2 0xC48 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH2 0x73A SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0xD63 AND JUMP JUMPDEST PUSH1 0x5 SSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x766 SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0xD63 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SWAP3 SWAP1 SWAP3 SSTORE DUP1 MLOAD DUP6 DUP2 MSTORE SWAP1 MLOAD PUSH32 0x9386C90217C323F58030F9DADCBC938F807A940F4FF41CD4CEAD9562F5DA7DC3 SWAP3 SWAP2 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG1 PUSH1 0x40 DUP1 MLOAD DUP5 DUP2 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND SWAP2 PUSH1 0x0 SWAP2 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xF80 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP2 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 LOG3 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x2 PUSH1 0x1 DUP6 AND ISZERO PUSH2 0x100 MUL PUSH1 0x0 NOT ADD SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 DIV PUSH1 0x1F DUP2 ADD DUP5 SWAP1 DIV DUP5 MUL DUP3 ADD DUP5 ADD SWAP1 SWAP3 MSTORE DUP2 DUP2 MSTORE SWAP3 SWAP2 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x498 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x46D JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x498 JUMP JUMPDEST PUSH2 0x85F PUSH2 0xA77 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x888 SWAP1 DUP3 PUSH4 0xFFFFFFFF PUSH2 0xDC7 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE PUSH1 0x5 SLOAD PUSH2 0x8B4 SWAP1 DUP3 PUSH4 0xFFFFFFFF PUSH2 0xDC7 AND JUMP JUMPDEST PUSH1 0x5 SSTORE PUSH1 0x40 DUP1 MLOAD DUP3 DUP2 MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND SWAP2 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xF80 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP2 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 LOG3 PUSH1 0x40 DUP1 MLOAD DUP3 DUP2 MSTORE SWAP1 MLOAD PUSH32 0x9A1B418BC061A5D80270261562E6986A35D995F8051145F277BE16103ABD3453 SWAP2 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x927 PUSH2 0xADB JUMP JUMPDEST PUSH2 0x931 DUP4 DUP4 PUSH2 0xE27 JUMP JUMPDEST ISZERO ISZERO PUSH2 0x939 JUMPI INVALID JUMPDEST POP PUSH1 0x1 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x97F PUSH2 0xA77 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x9E5 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F4F574E4552000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0xA74 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0xAD9 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0xFF AND ISZERO ISZERO PUSH2 0xAD9 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5452414E53464552535F44495341424C454400000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP4 PUSH2 0xB43 DUP2 PUSH2 0xA14 JUMP JUMPDEST DUP4 PUSH2 0xB4D DUP2 PUSH2 0xA14 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH2 0xB81 SWAP1 DUP6 PUSH4 0xFFFFFFFF PUSH2 0xDC7 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE DUP3 MSTORE DUP1 DUP4 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE SWAP2 DUP2 MSTORE PUSH1 0x6 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD PUSH2 0xBC2 SWAP1 DUP6 PUSH4 0xFFFFFFFF PUSH2 0xDC7 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE SWAP1 DUP8 AND DUP2 MSTORE KECCAK256 SLOAD PUSH2 0xBF7 SWAP1 DUP6 PUSH4 0xFFFFFFFF PUSH2 0xD63 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP8 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE DUP1 MLOAD DUP9 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP4 SWAP3 DUP11 AND SWAP3 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xF80 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP3 SWAP2 DUP3 SWAP1 SUB ADD SWAP1 LOG3 POP PUSH1 0x1 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ADDRESS EQ ISZERO PUSH2 0xA74 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F414444524553535F49535F53454C4600000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x7472616E7366657228616464726573732C75696E743235362900000000000000 DUP2 MSTORE DUP2 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x19 ADD DUP2 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x64 SWAP1 SWAP3 ADD SWAP1 SWAP3 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE PUSH2 0xD5E SWAP1 DUP5 SWAP1 PUSH2 0xED2 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 ADD DUP4 DUP2 LT ISZERO PUSH2 0xDC0 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT ISZERO PUSH2 0xE21 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F554E444552464C4F5700000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP SWAP1 SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0xE33 DUP2 PUSH2 0xA14 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0xE53 SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0xDC7 AND JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP3 SWAP1 SWAP3 SSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND DUP2 MSTORE KECCAK256 SLOAD PUSH2 0xE85 SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0xD63 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE DUP1 MLOAD DUP7 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP3 CALLER SWAP3 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xF80 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0xEDA PUSH2 0xF60 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE POP SWAP1 POP PUSH1 0x20 DUP2 DUP4 MLOAD PUSH1 0x20 DUP6 ADD PUSH1 0x0 DUP8 GAS CALL DUP1 ISZERO ISZERO PUSH2 0xF07 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD ISZERO ISZERO PUSH2 0xD5E JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5452414E534645525F4641494C454400000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 SWAP1 PUSH1 0x20 DUP3 MUL DUP1 CODESIZE DUP4 CODECOPY POP SWAP2 SWAP3 SWAP2 POP POP JUMP STOP 0xdd CALLCODE MSTORE 0xad SHL 0xe2 0xc8 SWAP12 PUSH10 0xC2B068FC378DAA952BA7 CALL PUSH4 0xC4A11628 0xf5 GAS 0x4d 0xf5 0x23 0xb3 0xef LOG1 PUSH6 0x627A7A723058 KECCAK256 BALANCE 0xb5 PUSH11 0xEBC8336B547B3E1346F50C 0x2f DIFFICULTY 0xf7 0xd 0xef SSTORE 0x4e 0xd4 0xcb LOG4 0xc8 SHL 0xcf 0x2e MULMOD 0x2d DIV PUSH32 0x29A165627A7A7230582097488304562BB3686D468C1F6C1C2362931404BA30 PUSH30 0x8528A280012F8E9F0A3C0029000000000000000000000000000000000000 ", + "sourceMap": "181:479:44:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;257:18;;8:9:-1;5:2;;;30:1;27;20:12;5:2;257:18:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;257:18:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;335:70;;8:9:-1;5:2;;;30:1;27;20:12;5:2;335:70:44;;;;;;;;;;;;;;;;;;;;;;;408:250;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;408:250:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;408:250:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;408:250:44;;;;-1:-1:-1;408:250:44;-1:-1:-1;408:250:44;;-1:-1:-1;408:250:44;;;;;;;;-1:-1:-1;408:250:44;;-1:-1:-1;;;408:250:44;;;;;-1:-1:-1;408:250:44;;-1:-1:-1;;;408:250:44;;;;;;;;;;;;;;;;;;;;257:18;;;;;;;;;;;;;;;-1:-1:-1;;257:18:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;335:70::-;400:1;335:70;:::o;408:250::-;507:16;529:23;570:4;576:7;585:9;555:40;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;555:40:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;555:40:44;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;555:40:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;600:36:44;;;;;;625:10;600:36;;;;;;529:66;;-1:-1:-1;600:24:44;;;;;;:36;;;;;-1:-1:-1;;600:36:44;;;;;;;;-1:-1:-1;600:24:44;:36;;;5:2:-1;;;;30:1;27;20:12;5:2;600:36:44;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;648:6:44;;408:250;-1:-1:-1;;;;;;;408:250:44:o;181:479::-;;;;;;;;;;:::o" + }, + "methodIdentifiers": { + "converterType()": "3e8ff43f", + "createAnchor(string,string,uint8)": "a9fd4a2a", + "name()": "06fdde03" + } + }, + "userdoc": { + "methods": {} + } + } + }, + "solidity/contracts/sovrynswapx/SovrynSwapX.sol": { + "SovrynSwapX": { + "abi": [ + { + "constant": false, + "inputs": [ + { + "name": "_reporters", + "type": "address[]" + } + ], + "name": "upgrade", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_onlyOwnerCanUpdateRegistry", + "type": "bool" + } + ], + "name": "restrictRegistryUpdate", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "prevLockLimit", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getCurrentLockLimit", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "prevLockBlockNumber", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getCurrentReleaseLimit", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "minLimit", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "", + "type": "address" + } + ], + "name": "reporters", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "onlyOwnerCanUpdateRegistry", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_toBlockchain", + "type": "bytes32" + }, + { + "name": "_to", + "type": "bytes32" + }, + { + "name": "_amount", + "type": "uint256" + }, + { + "name": "_id", + "type": "uint256" + } + ], + "name": "xTransfer", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_toBlockchain", + "type": "bytes32" + }, + { + "name": "_to", + "type": "bytes32" + }, + { + "name": "_amount", + "type": "uint256" + } + ], + "name": "xTransfer", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "updateRegistry", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "prevReleaseBlockNumber", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "maxReleaseLimit", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "version", + "outputs": [ + { + "name": "", + "type": "uint16" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_token", + "type": "address" + }, + { + "name": "_to", + "type": "address" + }, + { + "name": "_amount", + "type": "uint256" + } + ], + "name": "withdrawTokens", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "prevRegistry", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_fromBlockchain", + "type": "bytes32" + }, + { + "name": "_txId", + "type": "uint256" + }, + { + "name": "_to", + "type": "address" + }, + { + "name": "_amount", + "type": "uint256" + }, + { + "name": "_xTransferId", + "type": "uint256" + } + ], + "name": "reportTx", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_minLimit", + "type": "uint256" + } + ], + "name": "setMinLimit", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "limitIncPerBlock", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "acceptOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "registry", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_minRequiredReports", + "type": "uint8" + } + ], + "name": "setMinRequiredReports", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "", + "type": "uint256" + }, + { + "name": "", + "type": "address" + } + ], + "name": "reportedTxs", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "owner", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "reportingEnabled", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "", + "type": "uint256" + } + ], + "name": "transactions", + "outputs": [ + { + "name": "amount", + "type": "uint256" + }, + { + "name": "fromBlockchain", + "type": "bytes32" + }, + { + "name": "to", + "type": "address" + }, + { + "name": "numOfReports", + "type": "uint8" + }, + { + "name": "completed", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_limitIncPerBlock", + "type": "uint256" + } + ], + "name": "setLimitIncPerBlock", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_enable", + "type": "bool" + } + ], + "name": "enableXTransfers", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "maxLockLimit", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_xTransferId", + "type": "uint256" + }, + { + "name": "_for", + "type": "address" + } + ], + "name": "getXTransferAmount", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_maxLockLimit", + "type": "uint256" + } + ], + "name": "setMaxLockLimit", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "restoreRegistry", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_maxReleaseLimit", + "type": "uint256" + } + ], + "name": "setMaxReleaseLimit", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "minRequiredReports", + "outputs": [ + { + "name": "", + "type": "uint8" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "newOwner", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_reporter", + "type": "address" + }, + { + "name": "_active", + "type": "bool" + } + ], + "name": "setReporter", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "", + "type": "uint256" + } + ], + "name": "transactionIds", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_enable", + "type": "bool" + } + ], + "name": "enableReporting", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "prevReleaseLimit", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "xTransfersEnabled", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "token", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "name": "_maxLockLimit", + "type": "uint256" + }, + { + "name": "_maxReleaseLimit", + "type": "uint256" + }, + { + "name": "_minLimit", + "type": "uint256" + }, + { + "name": "_limitIncPerBlock", + "type": "uint256" + }, + { + "name": "_minRequiredReports", + "type": "uint8" + }, + { + "name": "_registry", + "type": "address" + }, + { + "name": "_token", + "type": "address" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "_from", + "type": "address" + }, + { + "indexed": false, + "name": "_amount", + "type": "uint256" + } + ], + "name": "TokensLock", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "_to", + "type": "address" + }, + { + "indexed": false, + "name": "_amount", + "type": "uint256" + } + ], + "name": "TokensRelease", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "_from", + "type": "address" + }, + { + "indexed": false, + "name": "_toBlockchain", + "type": "bytes32" + }, + { + "indexed": true, + "name": "_to", + "type": "bytes32" + }, + { + "indexed": false, + "name": "_amount", + "type": "uint256" + }, + { + "indexed": false, + "name": "_id", + "type": "uint256" + } + ], + "name": "XTransfer", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "_reporter", + "type": "address" + }, + { + "indexed": false, + "name": "_fromBlockchain", + "type": "bytes32" + }, + { + "indexed": false, + "name": "_txId", + "type": "uint256" + }, + { + "indexed": false, + "name": "_to", + "type": "address" + }, + { + "indexed": false, + "name": "_amount", + "type": "uint256" + }, + { + "indexed": false, + "name": "_xTransferId", + "type": "uint256" + } + ], + "name": "TxReport", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "_to", + "type": "address" + }, + { + "indexed": false, + "name": "_id", + "type": "uint256" + } + ], + "name": "XTransferComplete", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "_prevOwner", + "type": "address" + }, + { + "indexed": true, + "name": "_newOwner", + "type": "address" + } + ], + "name": "OwnerUpdate", + "type": "event" + } + ], + "devdoc": { + "methods": { + "acceptOwnership()": { + "details": "used by a new owner to accept an ownership transfer" + }, + "enableReporting(bool)": { + "details": "allows the owner enable/disable the reportTransaction method", + "params": { + "_enable": "true to enable, false to disable" + } + }, + "enableXTransfers(bool)": { + "details": "allows the owner enable/disable the xTransfer method", + "params": { + "_enable": "true to enable, false to disable" + } + }, + "getCurrentLockLimit()": { + "details": "method for calculating current lock limit", + "return": "the current maximum limit of tokens that can be locked" + }, + "getCurrentReleaseLimit()": { + "details": "method for calculating current release limit", + "return": "the current maximum limit of tokens that can be released" + }, + "getXTransferAmount(uint256,address)": { + "details": "gets x transfer amount by xTransferId (not txId)", + "params": { + "_for": "address corresponding to xTransferId", + "_xTransferId": "unique (if non zero) pre-determined id (unlike _txId which is determined after the transactions been broadcasted)" + }, + "return": "amount that was sent in xTransfer corresponding to _xTransferId" + }, + "reportTx(bytes32,uint256,address,uint256,uint256)": { + "details": "allows reporter to report transaction which occured on another blockchain", + "params": { + "_amount": "amount of tokens destroyed on another blockchain", + "_fromBlockchain": "blockchain in which tokens were destroyed", + "_to": "address to receive tokens", + "_txId": "transactionId of transaction thats being reported", + "_xTransferId": "unique (if non zero) pre-determined id (unlike _txId which is determined after the transactions been mined)" + } + }, + "restoreRegistry()": { + "details": "restores the previous contract-registry" + }, + "restrictRegistryUpdate(bool)": { + "details": "restricts the permission to update the contract-registry", + "params": { + "_onlyOwnerCanUpdateRegistry": "indicates whether or not permission is restricted to owner only" + } + }, + "setLimitIncPerBlock(uint256)": { + "details": "setter", + "params": { + "_limitIncPerBlock": "new limitIncPerBlock" + } + }, + "setMaxLockLimit(uint256)": { + "details": "setter", + "params": { + "_maxLockLimit": "new maxLockLimit" + } + }, + "setMaxReleaseLimit(uint256)": { + "details": "setter", + "params": { + "_maxReleaseLimit": "new maxReleaseLimit" + } + }, + "setMinLimit(uint256)": { + "details": "setter", + "params": { + "_minLimit": "new minLimit" + } + }, + "setMinRequiredReports(uint8)": { + "details": "setter", + "params": { + "_minRequiredReports": "new minRequiredReports" + } + }, + "setReporter(address,bool)": { + "details": "allows the owner to set/remove reporters", + "params": { + "_active": "true if the reporter is approved, false otherwise", + "_reporter": "reporter whos status is to be set" + } + }, + "transferOwnership(address)": { + "details": "allows transferring the contract ownership the new owner still needs to accept the transfer can only be called by the contract owner", + "params": { + "_newOwner": "new contract owner" + } + }, + "updateRegistry()": { + "details": "updates to the new contract-registry" + }, + "upgrade(address[])": { + "details": "upgrades the contract to the latest version can only be called by the owner note that the owner needs to call acceptOwnership on the new contract after the upgrade", + "params": { + "_reporters": "new list of reporters" + } + }, + "withdrawTokens(address,address,uint256)": { + "details": "withdraws tokens held by the contract and sends them to an account can only be called by the owner", + "params": { + "_amount": "amount to withdraw", + "_to": "account to receive the new amount", + "_token": "ERC20 token contract address" + } + }, + "xTransfer(bytes32,bytes32,uint256)": { + "details": "claims tokens from msg.sender to be converted to tokens on another blockchain", + "params": { + "_amount": "the amount of tokens to transfer", + "_to": "address to send the tokens to", + "_toBlockchain": "blockchain on which tokens will be issued" + } + }, + "xTransfer(bytes32,bytes32,uint256,uint256)": { + "details": "claims tokens from msg.sender to be converted to tokens on another blockchain", + "params": { + "_amount": "the amount of tokens to transfer", + "_id": "pre-determined unique (if non zero) id which refers to this transaction", + "_to": "address to send the tokens to", + "_toBlockchain": "blockchain on which tokens will be issued" + } + } + } + }, + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "6080604052600c805460b060020a60ff021960a860020a60ff0219909116750100000000000000000000000000000000000000000017167601000000000000000000000000000000000000000000001790553480156200005e57600080fd5b5060405160e0806200237383398101604090815281516020830151918301516060840151608085015160a086015160c09096015160008054600160a060020a0319163317905593959293919290918180620000c2816401000000006200026e810204565b5060028054600160a060020a03909216600160a060020a0319928316811790915560038054909216179055866200010281640100000000620002e9810204565b866200011781640100000000620002e9810204565b866200012c81640100000000620002e9810204565b866200014181640100000000620002e9810204565b60ff87166200015981640100000000620002e9810204565b856200016e816401000000006200026e810204565b86620001838164010000000062000359810204565b8d8c111580156200019457508c8c11155b15156200020257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f4552525f494e56414c49445f4d494e5f4c494d49540000000000000000000000604482015290519081900360640190fd5b50505060048b905550505060058790555060069490945550600991909155600c805460079590955560089390935543600a819055600b55600160a060020a039091166101000261010060a860020a031960ff90921660ff199094169390931716919091179055620003d2565b600160a060020a0381161515620002e657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b50565b60008111620002e657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f4552525f5a45524f5f56414c5545000000000000000000000000000000000000604482015290519081900360640190fd5b600160a060020a038116301415620002e657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4552525f414444524553535f49535f53454c4600000000000000000000000000604482015290519081900360640190fd5b611f9180620003e26000396000f30060806040526004361061020e5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630183592b8114610213578063024c7ec71461026a57806316c76c271461028457806319967439146102ab5780631aff29eb146102c05780631e04a593146102d55780631fd8088d146102ea5780632cc1cd9e146102ff5780632fe8a6ad14610334578063427c037414610349578063492825381461036a57806349d10b64146103885780634b3e475c1461039d57806352e94ce3146103b257806354fd4d50146103c75780635e35359e146103f357806361cd756e1461041d5780636dc6a01b1461044e5780636ec6d4a61461047b57806372f43d191461049357806379ba5097146104a85780637b103999146104bd5780637b15879c146104d25780638544c52d146104ed5780638da5cb5b146105115780639390701c146105265780639ace38c21461053b578063a50c326c1461058b578063a5c670ca146105a3578063a8c36a90146105bd578063aafd6b76146105d2578063af2b9618146105f6578063b4a176d31461060e578063bf28ece414610623578063ca27e0111461063b578063d4ee1d9014610666578063e1bb51331461067b578063e36f8dc5146106a1578063ed1d73a6146106b9578063f2fde38b146106d3578063f7385f76146106f4578063fbb2469214610709578063fc0c546a1461071e575b600080fd5b34801561021f57600080fd5b5060408051602060048035808201358381028086018501909652808552610268953695939460249493850192918291850190849080828437509497506107339650505050505050565b005b34801561027657600080fd5b506102686004351515610839565b34801561029057600080fd5b50610299610870565b60408051918252519081900360200190f35b3480156102b757600080fd5b50610299610876565b3480156102cc57600080fd5b506102996108d0565b3480156102e157600080fd5b506102996108d6565b3480156102f657600080fd5b5061029961091c565b34801561030b57600080fd5b50610320600160a060020a0360043516610922565b604080519115158252519081900360200190f35b34801561034057600080fd5b50610320610937565b34801561035557600080fd5b50610268600435602435604435606435610947565b34801561037657600080fd5b50610268600435602435604435610a2e565b34801561039457600080fd5b50610268610b14565b3480156103a957600080fd5b50610299610d70565b3480156103be57600080fd5b50610299610d76565b3480156103d357600080fd5b506103dc610d7c565b6040805161ffff9092168252519081900360200190f35b3480156103ff57600080fd5b50610268600160a060020a0360043581169060243516604435610d81565b34801561042957600080fd5b50610432610dba565b60408051600160a060020a039092168252519081900360200190f35b34801561045a57600080fd5b50610268600435602435600160a060020a0360443516606435608435610dc9565b34801561048757600080fd5b506102686004356111f6565b34801561049f57600080fd5b50610299611278565b3480156104b457600080fd5b5061026861127e565b3480156104c957600080fd5b5061043261133f565b3480156104de57600080fd5b5061026860ff6004351661134e565b3480156104f957600080fd5b50610320600435600160a060020a036024351661137a565b34801561051d57600080fd5b5061043261139a565b34801561053257600080fd5b506103206113a9565b34801561054757600080fd5b506105536004356113cc565b604080519586526020860194909452600160a060020a039092168484015260ff16606084015215156080830152519081900360a00190f35b34801561059757600080fd5b5061026860043561140c565b3480156105af57600080fd5b506102686004351515611424565b3480156105c957600080fd5b5061029961145c565b3480156105de57600080fd5b50610299600435600160a060020a0360243516611462565b34801561060257600080fd5b5061026860043561153e565b34801561061a57600080fd5b50610268611556565b34801561062f57600080fd5b5061026860043561158f565b34801561064757600080fd5b506106506115a7565b6040805160ff9092168252519081900360200190f35b34801561067257600080fd5b506104326115b0565b34801561068757600080fd5b50610268600160a060020a036004351660243515156115bf565b3480156106ad57600080fd5b506102996004356115f2565b3480156106c557600080fd5b506102686004351515611604565b3480156106df57600080fd5b50610268600160a060020a0360043516611650565b34801561070057600080fd5b506102996116ed565b34801561071557600080fd5b506103206116f3565b34801561072a57600080fd5b50610432611703565b600061073d611717565b6107667f536f7672796e5377617058557067726164657200000000000000000000000000611769565b905061077181611650565b604080517f546872cc000000000000000000000000000000000000000000000000000000008152600481810181815260248301938452855160448401528551600160a060020a0386169463546872cc948893926064909101906020808601910280838360005b838110156107ef5781810151838201526020016107d7565b505050509050019350505050600060405180830381600087803b15801561081557600080fd5b505af1158015610829573d6000803e3d6000fd5b5050505061083561127e565b5050565b610841611717565b6003805491151560a060020a0274ff000000000000000000000000000000000000000019909216919091179055565b60075481565b6000806108b26108a3600954610897600a544361180190919063ffffffff16565b9063ffffffff61186116565b6007549063ffffffff6118e116565b90506004548111156108c85760045491506108cc565b8091505b5090565b600a5481565b6000806109066108f7600954610897600b544361180190919063ffffffff16565b6008549063ffffffff6118e116565b90506005548111156108c85760055491506108cc565b60065481565b60106020526000908152604090205460ff1681565b60035460a060020a900460ff1681565b600061095161193e565b610959610876565b9050600654831015801561096d5750808311155b15156109c3576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f414d4f554e545f544f4f5f4849474800000000000000000000000000604482015290519081900360640190fd5b6109cc836119a1565b6109dc818463ffffffff61180116565b60075543600a5560408051868152602081018590528082018490529051859133917f4780f3edc9124597ede658e04ed3d8887b58c86943b2a805dc961cf512570b629181900360600190a35050505050565b6000610a3861193e565b610a40610876565b90506006548210158015610a545750808211155b1515610aaa576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f414d4f554e545f544f4f5f4849474800000000000000000000000000604482015290519081900360640190fd5b610ab3826119a1565b610ac3818363ffffffff61180116565b60075543600a5560408051858152602081018490526000818301529051849133917f4780f3edc9124597ede658e04ed3d8887b58c86943b2a805dc961cf512570b629181900360600190a350505050565b60008054600160a060020a0316331480610b38575060035460a060020a900460ff16155b1515610b7c576040805160e560020a62461bcd0281526020600482015260116024820152600080516020611f46833981519152604482015290519081900360640190fd5b610ba57f436f6e7472616374526567697374727900000000000000000000000000000000611769565b600254909150600160a060020a03808316911614801590610bce5750600160a060020a03811615155b1515610c24576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e56414c49445f5245474953545259000000000000000000000000604482015290519081900360640190fd5b604080517fbb34534c0000000000000000000000000000000000000000000000000000000081527f436f6e747261637452656769737472790000000000000000000000000000000060048201529051600091600160a060020a0384169163bb34534c9160248082019260209290919082900301818787803b158015610ca857600080fd5b505af1158015610cbc573d6000803e3d6000fd5b505050506040513d6020811015610cd257600080fd5b5051600160a060020a03161415610d33576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e56414c49445f5245474953545259000000000000000000000000604482015290519081900360640190fd5b6002805460038054600160a060020a0380841673ffffffffffffffffffffffffffffffffffffffff19928316179092559091169216919091179055565b600b5481565b60055481565b600481565b610d89611717565b82610d93816119f7565b82610d9d816119f7565b83610da781611a5a565b610db2868686611abb565b505050505050565b600354600160a060020a031681565b6000610dd3611b72565b610ddb611bc9565b83610de5816119f7565b83610def81611c3f565b6000878152600f6020908152604080832033845290915290205460ff1615610e61576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f414c52454144595f5245504f52544544000000000000000000000000604482015290519081900360640190fd5b6000878152600f602090815260408083203384528252808320805460ff19166001179055898352600d9091529020600281015490935060a060020a900460ff161515610f5c5760028301805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038816179055848355600183018890558315610f57576000848152600e602052604090205415610f45576040805160e560020a62461bcd02815260206004820152601560248201527f4552525f54585f414c52454144595f4558495354530000000000000000000000604482015290519081900360640190fd5b6000848152600e602052604090208790555b61104b565b6002830154600160a060020a038781169116148015610f7b5750825485145b8015610f8a5750600183015488145b1515610fe0576040805160e560020a62461bcd02815260206004820152600f60248201527f4552525f54585f4d49534d415443480000000000000000000000000000000000604482015290519081900360640190fd5b831561104b576000848152600e6020526040902054871461104b576040805160e560020a62461bcd02815260206004820152601560248201527f4552525f54585f414c52454144595f4558495354530000000000000000000000604482015290519081900360640190fd5b600283018054600160ff60a060020a808404821692909201160274ff0000000000000000000000000000000000000000199091161790556040805189815260208101899052600160a060020a038816818301526060810187905260808101869052905133917f5e77831e701760f7f4a1e61a8e9834d773b52c45d91ba9006b7d2afb7a144739919081900360a00190a2600c54600284015460ff91821660a060020a909104909116106111ec576000878152600d602052604090206002015460a860020a900460ff1615611169576040805160e560020a62461bcd02815260206004820152601860248201527f4552525f54585f414c52454144595f434f4d504c455445440000000000000000604482015290519081900360640190fd5b6000878152600d6020908152604091829020600201805475ff000000000000000000000000000000000000000000191660a860020a1790558151600160a060020a038916815290810186905281517fd87906b7fce534fc5e6dde30064e777d92d0aaf3a28c72315de8ef2e4134dfef929181900390910190a16111ec8686611c97565b5050505050505050565b6111fe611717565b8061120881611c3f565b600454821115801561121c57506005548211155b1515611272576040805160e560020a62461bcd02815260206004820152601560248201527f4552525f494e56414c49445f4d494e5f4c494d49540000000000000000000000604482015290519081900360640190fd5b50600655565b60095481565b600154600160a060020a031633146112ce576040805160e560020a62461bcd0281526020600482015260116024820152600080516020611f46833981519152604482015290519081900360640190fd5b60015460008054604051600160a060020a0393841693909116917f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91a3600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b600254600160a060020a031681565b611356611717565b8060ff1661136381611c3f565b50600c805460ff191660ff92909216919091179055565b600f60209081526000928352604080842090915290825290205460ff1681565b600054600160a060020a031681565b600c54760100000000000000000000000000000000000000000000900460ff1681565b600d60205260009081526040902080546001820154600290920154909190600160a060020a0381169060ff60a060020a820481169160a860020a90041685565b611414611717565b8061141e81611c3f565b50600955565b61142c611717565b600c805491151560a860020a0275ff00000000000000000000000000000000000000000019909216919091179055565b60045481565b600061146c611ef8565b506000838152600e60209081526040808320548352600d825291829020825160a0810184528154815260018201549281019290925260020154600160a060020a0380821693830184905260ff60a060020a83048116606085015260a860020a90920490911615156080830152909190841614611532576040805160e560020a62461bcd02815260206004820152600f60248201527f4552525f54585f4d49534d415443480000000000000000000000000000000000604482015290519081900360640190fd5b805191505b5092915050565b611546611717565b8061155081611c3f565b50600455565b61155e611717565b6003546002805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055565b611597611717565b806115a181611c3f565b50600555565b600c5460ff1681565b600154600160a060020a031681565b6115c7611717565b600160a060020a03919091166000908152601060205260409020805460ff1916911515919091179055565b600e6020526000908152604090205481565b61160c611717565b600c80549115157601000000000000000000000000000000000000000000000276ff0000000000000000000000000000000000000000000019909216919091179055565b611658611717565b600054600160a060020a03828116911614156116be576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f53414d455f4f574e4552000000000000000000000000000000000000604482015290519081900360640190fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60085481565b600c5460a860020a900460ff1681565b600c546101009004600160a060020a031681565b600054600160a060020a03163314611767576040805160e560020a62461bcd0281526020600482015260116024820152600080516020611f46833981519152604482015290519081900360640190fd5b565b600254604080517fbb34534c000000000000000000000000000000000000000000000000000000008152600481018490529051600092600160a060020a03169163bb34534c91602480830192602092919082900301818787803b1580156117cf57600080fd5b505af11580156117e3573d6000803e3d6000fd5b505050506040513d60208110156117f957600080fd5b505192915050565b60008183101561185b576040805160e560020a62461bcd02815260206004820152600d60248201527f4552525f554e444552464c4f5700000000000000000000000000000000000000604482015290519081900360640190fd5b50900390565b6000808315156118745760009150611537565b5082820282848281151561188457fe5b04146118da576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b9392505050565b6000828201838110156118da576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b600c5460a860020a900460ff161515611767576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f44495341424c45440000000000000000000000000000000000000000604482015290519081900360640190fd5b600c546119be906101009004600160a060020a0316333084611d82565b60408051828152905133917ff5d7535a395393675f56d066384113754ca9cf4abd37298469934e2e9c2ec902919081900360200190a250565b600160a060020a0381161515611a57576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b50565b600160a060020a038116301415611a57576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f414444524553535f49535f53454c4600000000000000000000000000604482015290519081900360640190fd5b604080517f7472616e7366657228616464726573732c75696e74323536290000000000000081528151908190036019018120600160a060020a038516602483015260448083018590528351808403909101815260649092019092526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1990931692909217909152611b6d908490611e6a565b505050565b3360009081526010602052604090205460ff161515611767576040805160e560020a62461bcd0281526020600482015260116024820152600080516020611f46833981519152604482015290519081900360640190fd5b600c54760100000000000000000000000000000000000000000000900460ff161515611767576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f44495341424c45440000000000000000000000000000000000000000604482015290519081900360640190fd5b60008111611a57576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f5a45524f5f56414c5545000000000000000000000000000000000000604482015290519081900360640190fd5b6000611ca16108d6565b90506006548210158015611cb55750808211155b1515611d0b576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f414d4f554e545f544f4f5f4849474800000000000000000000000000604482015290519081900360640190fd5b611d1b818363ffffffff61180116565b60085543600b55600c54611d3e906101009004600160a060020a03168484611abb565b604080518381529051600160a060020a038516917fbfdc1f3c02b4715077e0be4a262f967d53d4d0fcd76c6987fa2ad6e2257d7c8f919081900360200190a2505050565b604080517f7472616e7366657246726f6d28616464726573732c616464726573732c75696e81527f74323536290000000000000000000000000000000000000000000000000000006020808301919091528251918290036025018220600160a060020a038088166024850152861660448401526064808401869052845180850390910181526084909301909352810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1990931692909217909152611e64908590611e6a565b50505050565b611e72611f26565b602060405190810160405280600181525090506020818351602085016000875af1801515611e9f57600080fd5b5080511515611b6d576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f5452414e534645525f4641494c454400000000000000000000000000604482015290519081900360640190fd5b6040805160a08101825260008082526020820181905291810182905260608101829052608081019190915290565b602060405190810160405280600190602082028038833950919291505056004552525f4143434553535f44454e494544000000000000000000000000000000a165627a7a72305820569010e6ee8ceb676c8764611af1b7a6593834eec0d3636f2accc21eb2c327b90029", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0xC DUP1 SLOAD PUSH1 0xB0 PUSH1 0x2 EXP PUSH1 0xFF MUL NOT PUSH1 0xA8 PUSH1 0x2 EXP PUSH1 0xFF MUL NOT SWAP1 SWAP2 AND PUSH22 0x1000000000000000000000000000000000000000000 OR AND PUSH23 0x100000000000000000000000000000000000000000000 OR SWAP1 SSTORE CALLVALUE DUP1 ISZERO PUSH3 0x5E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH1 0xE0 DUP1 PUSH3 0x2373 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 SWAP1 DUP2 MSTORE DUP2 MLOAD PUSH1 0x20 DUP4 ADD MLOAD SWAP2 DUP4 ADD MLOAD PUSH1 0x60 DUP5 ADD MLOAD PUSH1 0x80 DUP6 ADD MLOAD PUSH1 0xA0 DUP7 ADD MLOAD PUSH1 0xC0 SWAP1 SWAP7 ADD MLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND CALLER OR SWAP1 SSTORE SWAP4 SWAP6 SWAP3 SWAP4 SWAP2 SWAP3 SWAP1 SWAP2 DUP2 DUP1 PUSH3 0xC2 DUP2 PUSH5 0x100000000 PUSH3 0x26E DUP2 MUL DIV JUMP JUMPDEST POP PUSH1 0x2 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT SWAP3 DUP4 AND DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x3 DUP1 SLOAD SWAP1 SWAP3 AND OR SWAP1 SSTORE DUP7 PUSH3 0x102 DUP2 PUSH5 0x100000000 PUSH3 0x2E9 DUP2 MUL DIV JUMP JUMPDEST DUP7 PUSH3 0x117 DUP2 PUSH5 0x100000000 PUSH3 0x2E9 DUP2 MUL DIV JUMP JUMPDEST DUP7 PUSH3 0x12C DUP2 PUSH5 0x100000000 PUSH3 0x2E9 DUP2 MUL DIV JUMP JUMPDEST DUP7 PUSH3 0x141 DUP2 PUSH5 0x100000000 PUSH3 0x2E9 DUP2 MUL DIV JUMP JUMPDEST PUSH1 0xFF DUP8 AND PUSH3 0x159 DUP2 PUSH5 0x100000000 PUSH3 0x2E9 DUP2 MUL DIV JUMP JUMPDEST DUP6 PUSH3 0x16E DUP2 PUSH5 0x100000000 PUSH3 0x26E DUP2 MUL DIV JUMP JUMPDEST DUP7 PUSH3 0x183 DUP2 PUSH5 0x100000000 PUSH3 0x359 DUP2 MUL DIV JUMP JUMPDEST DUP14 DUP13 GT ISZERO DUP1 ISZERO PUSH3 0x194 JUMPI POP DUP13 DUP13 GT ISZERO JUMPDEST ISZERO ISZERO PUSH3 0x202 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4D494E5F4C494D49540000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP POP POP PUSH1 0x4 DUP12 SWAP1 SSTORE POP POP POP PUSH1 0x5 DUP8 SWAP1 SSTORE POP PUSH1 0x6 SWAP5 SWAP1 SWAP5 SSTORE POP PUSH1 0x9 SWAP2 SWAP1 SWAP2 SSTORE PUSH1 0xC DUP1 SLOAD PUSH1 0x7 SWAP6 SWAP1 SWAP6 SSTORE PUSH1 0x8 SWAP4 SWAP1 SWAP4 SSTORE NUMBER PUSH1 0xA DUP2 SWAP1 SSTORE PUSH1 0xB SSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP2 AND PUSH2 0x100 MUL PUSH2 0x100 PUSH1 0xA8 PUSH1 0x2 EXP SUB NOT PUSH1 0xFF SWAP1 SWAP3 AND PUSH1 0xFF NOT SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 OR AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH3 0x3D2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH3 0x2E6 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 GT PUSH3 0x2E6 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5A45524F5F56414C5545000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ADDRESS EQ ISZERO PUSH3 0x2E6 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F414444524553535F49535F53454C4600000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x1F91 DUP1 PUSH3 0x3E2 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x20E JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x183592B DUP2 EQ PUSH2 0x213 JUMPI DUP1 PUSH4 0x24C7EC7 EQ PUSH2 0x26A JUMPI DUP1 PUSH4 0x16C76C27 EQ PUSH2 0x284 JUMPI DUP1 PUSH4 0x19967439 EQ PUSH2 0x2AB JUMPI DUP1 PUSH4 0x1AFF29EB EQ PUSH2 0x2C0 JUMPI DUP1 PUSH4 0x1E04A593 EQ PUSH2 0x2D5 JUMPI DUP1 PUSH4 0x1FD8088D EQ PUSH2 0x2EA JUMPI DUP1 PUSH4 0x2CC1CD9E EQ PUSH2 0x2FF JUMPI DUP1 PUSH4 0x2FE8A6AD EQ PUSH2 0x334 JUMPI DUP1 PUSH4 0x427C0374 EQ PUSH2 0x349 JUMPI DUP1 PUSH4 0x49282538 EQ PUSH2 0x36A JUMPI DUP1 PUSH4 0x49D10B64 EQ PUSH2 0x388 JUMPI DUP1 PUSH4 0x4B3E475C EQ PUSH2 0x39D JUMPI DUP1 PUSH4 0x52E94CE3 EQ PUSH2 0x3B2 JUMPI DUP1 PUSH4 0x54FD4D50 EQ PUSH2 0x3C7 JUMPI DUP1 PUSH4 0x5E35359E EQ PUSH2 0x3F3 JUMPI DUP1 PUSH4 0x61CD756E EQ PUSH2 0x41D JUMPI DUP1 PUSH4 0x6DC6A01B EQ PUSH2 0x44E JUMPI DUP1 PUSH4 0x6EC6D4A6 EQ PUSH2 0x47B JUMPI DUP1 PUSH4 0x72F43D19 EQ PUSH2 0x493 JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x4A8 JUMPI DUP1 PUSH4 0x7B103999 EQ PUSH2 0x4BD JUMPI DUP1 PUSH4 0x7B15879C EQ PUSH2 0x4D2 JUMPI DUP1 PUSH4 0x8544C52D EQ PUSH2 0x4ED JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x511 JUMPI DUP1 PUSH4 0x9390701C EQ PUSH2 0x526 JUMPI DUP1 PUSH4 0x9ACE38C2 EQ PUSH2 0x53B JUMPI DUP1 PUSH4 0xA50C326C EQ PUSH2 0x58B JUMPI DUP1 PUSH4 0xA5C670CA EQ PUSH2 0x5A3 JUMPI DUP1 PUSH4 0xA8C36A90 EQ PUSH2 0x5BD JUMPI DUP1 PUSH4 0xAAFD6B76 EQ PUSH2 0x5D2 JUMPI DUP1 PUSH4 0xAF2B9618 EQ PUSH2 0x5F6 JUMPI DUP1 PUSH4 0xB4A176D3 EQ PUSH2 0x60E JUMPI DUP1 PUSH4 0xBF28ECE4 EQ PUSH2 0x623 JUMPI DUP1 PUSH4 0xCA27E011 EQ PUSH2 0x63B JUMPI DUP1 PUSH4 0xD4EE1D90 EQ PUSH2 0x666 JUMPI DUP1 PUSH4 0xE1BB5133 EQ PUSH2 0x67B JUMPI DUP1 PUSH4 0xE36F8DC5 EQ PUSH2 0x6A1 JUMPI DUP1 PUSH4 0xED1D73A6 EQ PUSH2 0x6B9 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x6D3 JUMPI DUP1 PUSH4 0xF7385F76 EQ PUSH2 0x6F4 JUMPI DUP1 PUSH4 0xFBB24692 EQ PUSH2 0x709 JUMPI DUP1 PUSH4 0xFC0C546A EQ PUSH2 0x71E JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x21F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x268 SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP PUSH2 0x733 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x276 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x268 PUSH1 0x4 CALLDATALOAD ISZERO ISZERO PUSH2 0x839 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x290 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x299 PUSH2 0x870 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2B7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x299 PUSH2 0x876 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2CC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x299 PUSH2 0x8D0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2E1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x299 PUSH2 0x8D6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2F6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x299 PUSH2 0x91C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x30B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x320 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x922 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x340 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x320 PUSH2 0x937 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x355 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x268 PUSH1 0x4 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH1 0x44 CALLDATALOAD PUSH1 0x64 CALLDATALOAD PUSH2 0x947 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x376 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x268 PUSH1 0x4 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH1 0x44 CALLDATALOAD PUSH2 0xA2E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x394 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x268 PUSH2 0xB14 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3A9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x299 PUSH2 0xD70 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3BE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x299 PUSH2 0xD76 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3D3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3DC PUSH2 0xD7C JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0xFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3FF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x268 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0xD81 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x429 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x432 PUSH2 0xDBA JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x45A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x268 PUSH1 0x4 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x44 CALLDATALOAD AND PUSH1 0x64 CALLDATALOAD PUSH1 0x84 CALLDATALOAD PUSH2 0xDC9 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x487 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x268 PUSH1 0x4 CALLDATALOAD PUSH2 0x11F6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x49F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x299 PUSH2 0x1278 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4B4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x268 PUSH2 0x127E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4C9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x432 PUSH2 0x133F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4DE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x268 PUSH1 0xFF PUSH1 0x4 CALLDATALOAD AND PUSH2 0x134E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4F9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x320 PUSH1 0x4 CALLDATALOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x24 CALLDATALOAD AND PUSH2 0x137A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x51D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x432 PUSH2 0x139A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x532 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x320 PUSH2 0x13A9 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x547 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x553 PUSH1 0x4 CALLDATALOAD PUSH2 0x13CC JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP6 DUP7 MSTORE PUSH1 0x20 DUP7 ADD SWAP5 SWAP1 SWAP5 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP5 DUP5 ADD MSTORE PUSH1 0xFF AND PUSH1 0x60 DUP5 ADD MSTORE ISZERO ISZERO PUSH1 0x80 DUP4 ADD MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0xA0 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x597 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x268 PUSH1 0x4 CALLDATALOAD PUSH2 0x140C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5AF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x268 PUSH1 0x4 CALLDATALOAD ISZERO ISZERO PUSH2 0x1424 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5C9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x299 PUSH2 0x145C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5DE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x299 PUSH1 0x4 CALLDATALOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x24 CALLDATALOAD AND PUSH2 0x1462 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x602 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x268 PUSH1 0x4 CALLDATALOAD PUSH2 0x153E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x61A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x268 PUSH2 0x1556 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x62F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x268 PUSH1 0x4 CALLDATALOAD PUSH2 0x158F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x647 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x650 PUSH2 0x15A7 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x672 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x432 PUSH2 0x15B0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x687 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x268 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD ISZERO ISZERO PUSH2 0x15BF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6AD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x299 PUSH1 0x4 CALLDATALOAD PUSH2 0x15F2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6C5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x268 PUSH1 0x4 CALLDATALOAD ISZERO ISZERO PUSH2 0x1604 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6DF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x268 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x1650 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x700 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x299 PUSH2 0x16ED JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x715 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x320 PUSH2 0x16F3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x72A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x432 PUSH2 0x1703 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x73D PUSH2 0x1717 JUMP JUMPDEST PUSH2 0x766 PUSH32 0x536F7672796E5377617058557067726164657200000000000000000000000000 PUSH2 0x1769 JUMP JUMPDEST SWAP1 POP PUSH2 0x771 DUP2 PUSH2 0x1650 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x546872CC00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 DUP2 ADD DUP2 DUP2 MSTORE PUSH1 0x24 DUP4 ADD SWAP4 DUP5 MSTORE DUP6 MLOAD PUSH1 0x44 DUP5 ADD MSTORE DUP6 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND SWAP5 PUSH4 0x546872CC SWAP5 DUP9 SWAP4 SWAP3 PUSH1 0x64 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x20 DUP1 DUP7 ADD SWAP2 MUL DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x7EF JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x7D7 JUMP JUMPDEST POP POP POP POP SWAP1 POP ADD SWAP4 POP POP POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x815 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x829 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x835 PUSH2 0x127E JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x841 PUSH2 0x1717 JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD SWAP2 ISZERO ISZERO PUSH1 0xA0 PUSH1 0x2 EXP MUL PUSH21 0xFF0000000000000000000000000000000000000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x7 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x8B2 PUSH2 0x8A3 PUSH1 0x9 SLOAD PUSH2 0x897 PUSH1 0xA SLOAD NUMBER PUSH2 0x1801 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x1861 AND JUMP JUMPDEST PUSH1 0x7 SLOAD SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x18E1 AND JUMP JUMPDEST SWAP1 POP PUSH1 0x4 SLOAD DUP2 GT ISZERO PUSH2 0x8C8 JUMPI PUSH1 0x4 SLOAD SWAP2 POP PUSH2 0x8CC JUMP JUMPDEST DUP1 SWAP2 POP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH1 0xA SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x906 PUSH2 0x8F7 PUSH1 0x9 SLOAD PUSH2 0x897 PUSH1 0xB SLOAD NUMBER PUSH2 0x1801 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x8 SLOAD SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x18E1 AND JUMP JUMPDEST SWAP1 POP PUSH1 0x5 SLOAD DUP2 GT ISZERO PUSH2 0x8C8 JUMPI PUSH1 0x5 SLOAD SWAP2 POP PUSH2 0x8CC JUMP JUMPDEST PUSH1 0x6 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x10 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0xA0 PUSH1 0x2 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x951 PUSH2 0x193E JUMP JUMPDEST PUSH2 0x959 PUSH2 0x876 JUMP JUMPDEST SWAP1 POP PUSH1 0x6 SLOAD DUP4 LT ISZERO DUP1 ISZERO PUSH2 0x96D JUMPI POP DUP1 DUP4 GT ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x9C3 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F414D4F554E545F544F4F5F4849474800000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x9CC DUP4 PUSH2 0x19A1 JUMP JUMPDEST PUSH2 0x9DC DUP2 DUP5 PUSH4 0xFFFFFFFF PUSH2 0x1801 AND JUMP JUMPDEST PUSH1 0x7 SSTORE NUMBER PUSH1 0xA SSTORE PUSH1 0x40 DUP1 MLOAD DUP7 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP6 SWAP1 MSTORE DUP1 DUP3 ADD DUP5 SWAP1 MSTORE SWAP1 MLOAD DUP6 SWAP2 CALLER SWAP2 PUSH32 0x4780F3EDC9124597EDE658E04ED3D8887B58C86943B2A805DC961CF512570B62 SWAP2 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG3 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA38 PUSH2 0x193E JUMP JUMPDEST PUSH2 0xA40 PUSH2 0x876 JUMP JUMPDEST SWAP1 POP PUSH1 0x6 SLOAD DUP3 LT ISZERO DUP1 ISZERO PUSH2 0xA54 JUMPI POP DUP1 DUP3 GT ISZERO JUMPDEST ISZERO ISZERO PUSH2 0xAAA JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F414D4F554E545F544F4F5F4849474800000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0xAB3 DUP3 PUSH2 0x19A1 JUMP JUMPDEST PUSH2 0xAC3 DUP2 DUP4 PUSH4 0xFFFFFFFF PUSH2 0x1801 AND JUMP JUMPDEST PUSH1 0x7 SSTORE NUMBER PUSH1 0xA SSTORE PUSH1 0x40 DUP1 MLOAD DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x0 DUP2 DUP4 ADD MSTORE SWAP1 MLOAD DUP5 SWAP2 CALLER SWAP2 PUSH32 0x4780F3EDC9124597EDE658E04ED3D8887B58C86943B2A805DC961CF512570B62 SWAP2 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG3 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ DUP1 PUSH2 0xB38 JUMPI POP PUSH1 0x3 SLOAD PUSH1 0xA0 PUSH1 0x2 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST ISZERO ISZERO PUSH2 0xB7C JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1F46 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0xBA5 PUSH32 0x436F6E7472616374526567697374727900000000000000000000000000000000 PUSH2 0x1769 JUMP JUMPDEST PUSH1 0x2 SLOAD SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP4 AND SWAP2 AND EQ DUP1 ISZERO SWAP1 PUSH2 0xBCE JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO JUMPDEST ISZERO ISZERO PUSH2 0xC24 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245474953545259000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0xBB34534C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH32 0x436F6E7472616374526567697374727900000000000000000000000000000000 PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP2 PUSH4 0xBB34534C SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xCA8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xCBC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xCD2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ ISZERO PUSH2 0xD33 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245474953545259000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP5 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP3 DUP4 AND OR SWAP1 SWAP3 SSTORE SWAP1 SWAP2 AND SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0xB SLOAD DUP2 JUMP JUMPDEST PUSH1 0x5 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x4 DUP2 JUMP JUMPDEST PUSH2 0xD89 PUSH2 0x1717 JUMP JUMPDEST DUP3 PUSH2 0xD93 DUP2 PUSH2 0x19F7 JUMP JUMPDEST DUP3 PUSH2 0xD9D DUP2 PUSH2 0x19F7 JUMP JUMPDEST DUP4 PUSH2 0xDA7 DUP2 PUSH2 0x1A5A JUMP JUMPDEST PUSH2 0xDB2 DUP7 DUP7 DUP7 PUSH2 0x1ABB JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xDD3 PUSH2 0x1B72 JUMP JUMPDEST PUSH2 0xDDB PUSH2 0x1BC9 JUMP JUMPDEST DUP4 PUSH2 0xDE5 DUP2 PUSH2 0x19F7 JUMP JUMPDEST DUP4 PUSH2 0xDEF DUP2 PUSH2 0x1C3F JUMP JUMPDEST PUSH1 0x0 DUP8 DUP2 MSTORE PUSH1 0xF PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0xE61 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F414C52454144595F5245504F52544544000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP8 DUP2 MSTORE PUSH1 0xF PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE DUP3 MSTORE DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE DUP10 DUP4 MSTORE PUSH1 0xD SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 PUSH1 0x2 DUP2 ADD SLOAD SWAP1 SWAP4 POP PUSH1 0xA0 PUSH1 0x2 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO PUSH2 0xF5C JUMPI PUSH1 0x2 DUP4 ADD DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 AND OR SWAP1 SSTORE DUP5 DUP4 SSTORE PUSH1 0x1 DUP4 ADD DUP9 SWAP1 SSTORE DUP4 ISZERO PUSH2 0xF57 JUMPI PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD ISZERO PUSH2 0xF45 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F54585F414C52454144595F4558495354530000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP8 SWAP1 SSTORE JUMPDEST PUSH2 0x104B JUMP JUMPDEST PUSH1 0x2 DUP4 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 DUP2 AND SWAP2 AND EQ DUP1 ISZERO PUSH2 0xF7B JUMPI POP DUP3 SLOAD DUP6 EQ JUMPDEST DUP1 ISZERO PUSH2 0xF8A JUMPI POP PUSH1 0x1 DUP4 ADD SLOAD DUP9 EQ JUMPDEST ISZERO ISZERO PUSH2 0xFE0 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xF PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F54585F4D49534D415443480000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP4 ISZERO PUSH2 0x104B JUMPI PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP8 EQ PUSH2 0x104B JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F54585F414C52454144595F4558495354530000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x2 DUP4 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0xFF PUSH1 0xA0 PUSH1 0x2 EXP DUP1 DUP5 DIV DUP3 AND SWAP3 SWAP1 SWAP3 ADD AND MUL PUSH21 0xFF0000000000000000000000000000000000000000 NOT SWAP1 SWAP2 AND OR SWAP1 SSTORE PUSH1 0x40 DUP1 MLOAD DUP10 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP10 SWAP1 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 AND DUP2 DUP4 ADD MSTORE PUSH1 0x60 DUP2 ADD DUP8 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD DUP7 SWAP1 MSTORE SWAP1 MLOAD CALLER SWAP2 PUSH32 0x5E77831E701760F7F4A1E61A8E9834D773B52C45D91BA9006B7D2AFB7A144739 SWAP2 SWAP1 DUP2 SWAP1 SUB PUSH1 0xA0 ADD SWAP1 LOG2 PUSH1 0xC SLOAD PUSH1 0x2 DUP5 ADD SLOAD PUSH1 0xFF SWAP2 DUP3 AND PUSH1 0xA0 PUSH1 0x2 EXP SWAP1 SWAP2 DIV SWAP1 SWAP2 AND LT PUSH2 0x11EC JUMPI PUSH1 0x0 DUP8 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x2 ADD SLOAD PUSH1 0xA8 PUSH1 0x2 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x1169 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F54585F414C52454144595F434F4D504C455445440000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP8 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 PUSH1 0x2 ADD DUP1 SLOAD PUSH22 0xFF000000000000000000000000000000000000000000 NOT AND PUSH1 0xA8 PUSH1 0x2 EXP OR SWAP1 SSTORE DUP2 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP10 AND DUP2 MSTORE SWAP1 DUP2 ADD DUP7 SWAP1 MSTORE DUP2 MLOAD PUSH32 0xD87906B7FCE534FC5E6DDE30064E777D92D0AAF3A28C72315DE8EF2E4134DFEF SWAP3 SWAP2 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG1 PUSH2 0x11EC DUP7 DUP7 PUSH2 0x1C97 JUMP JUMPDEST POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x11FE PUSH2 0x1717 JUMP JUMPDEST DUP1 PUSH2 0x1208 DUP2 PUSH2 0x1C3F JUMP JUMPDEST PUSH1 0x4 SLOAD DUP3 GT ISZERO DUP1 ISZERO PUSH2 0x121C JUMPI POP PUSH1 0x5 SLOAD DUP3 GT ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x1272 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4D494E5F4C494D49540000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP PUSH1 0x6 SSTORE JUMP JUMPDEST PUSH1 0x9 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x12CE JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1F46 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND SWAP4 SWAP1 SWAP2 AND SWAP2 PUSH32 0x343765429AEA5A34B3FF6A3785A98A5ABB2597ACA87BFBB58632C173D585373A SWAP2 LOG3 PUSH1 0x1 DUP1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND OR SWAP1 SWAP2 SSTORE AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH2 0x1356 PUSH2 0x1717 JUMP JUMPDEST DUP1 PUSH1 0xFF AND PUSH2 0x1363 DUP2 PUSH2 0x1C3F JUMP JUMPDEST POP PUSH1 0xC DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0xFF SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0xF PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0xC SLOAD PUSH23 0x100000000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0xD PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0x2 SWAP1 SWAP3 ADD SLOAD SWAP1 SWAP2 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND SWAP1 PUSH1 0xFF PUSH1 0xA0 PUSH1 0x2 EXP DUP3 DIV DUP2 AND SWAP2 PUSH1 0xA8 PUSH1 0x2 EXP SWAP1 DIV AND DUP6 JUMP JUMPDEST PUSH2 0x1414 PUSH2 0x1717 JUMP JUMPDEST DUP1 PUSH2 0x141E DUP2 PUSH2 0x1C3F JUMP JUMPDEST POP PUSH1 0x9 SSTORE JUMP JUMPDEST PUSH2 0x142C PUSH2 0x1717 JUMP JUMPDEST PUSH1 0xC DUP1 SLOAD SWAP2 ISZERO ISZERO PUSH1 0xA8 PUSH1 0x2 EXP MUL PUSH22 0xFF000000000000000000000000000000000000000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x4 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x146C PUSH2 0x1EF8 JUMP JUMPDEST POP PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD DUP4 MSTORE PUSH1 0xD DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD PUSH1 0xA0 DUP2 ADD DUP5 MSTORE DUP2 SLOAD DUP2 MSTORE PUSH1 0x1 DUP3 ADD SLOAD SWAP3 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x2 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP3 AND SWAP4 DUP4 ADD DUP5 SWAP1 MSTORE PUSH1 0xFF PUSH1 0xA0 PUSH1 0x2 EXP DUP4 DIV DUP2 AND PUSH1 0x60 DUP6 ADD MSTORE PUSH1 0xA8 PUSH1 0x2 EXP SWAP1 SWAP3 DIV SWAP1 SWAP2 AND ISZERO ISZERO PUSH1 0x80 DUP4 ADD MSTORE SWAP1 SWAP2 SWAP1 DUP5 AND EQ PUSH2 0x1532 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xF PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F54585F4D49534D415443480000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP1 MLOAD SWAP2 POP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1546 PUSH2 0x1717 JUMP JUMPDEST DUP1 PUSH2 0x1550 DUP2 PUSH2 0x1C3F JUMP JUMPDEST POP PUSH1 0x4 SSTORE JUMP JUMPDEST PUSH2 0x155E PUSH2 0x1717 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x2 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x1597 PUSH2 0x1717 JUMP JUMPDEST DUP1 PUSH2 0x15A1 DUP2 PUSH2 0x1C3F JUMP JUMPDEST POP PUSH1 0x5 SSTORE JUMP JUMPDEST PUSH1 0xC SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH2 0x15C7 PUSH2 0x1717 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP2 SWAP1 SWAP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x10 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP2 ISZERO ISZERO SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0xE PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x160C PUSH2 0x1717 JUMP JUMPDEST PUSH1 0xC DUP1 SLOAD SWAP2 ISZERO ISZERO PUSH23 0x100000000000000000000000000000000000000000000 MUL PUSH23 0xFF00000000000000000000000000000000000000000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x1658 PUSH2 0x1717 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x16BE JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F4F574E4552000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x8 SLOAD DUP2 JUMP JUMPDEST PUSH1 0xC SLOAD PUSH1 0xA8 PUSH1 0x2 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0xC SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x1767 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1F46 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xBB34534C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP2 PUSH4 0xBB34534C SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x17CF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x17E3 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x17F9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT ISZERO PUSH2 0x185B JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F554E444552464C4F5700000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP SWAP1 SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 ISZERO ISZERO PUSH2 0x1874 JUMPI PUSH1 0x0 SWAP2 POP PUSH2 0x1537 JUMP JUMPDEST POP DUP3 DUP3 MUL DUP3 DUP5 DUP3 DUP2 ISZERO ISZERO PUSH2 0x1884 JUMPI INVALID JUMPDEST DIV EQ PUSH2 0x18DA JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 ADD DUP4 DUP2 LT ISZERO PUSH2 0x18DA JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0xC SLOAD PUSH1 0xA8 PUSH1 0x2 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO PUSH2 0x1767 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F44495341424C45440000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0xC SLOAD PUSH2 0x19BE SWAP1 PUSH2 0x100 SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER ADDRESS DUP5 PUSH2 0x1D82 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP3 DUP2 MSTORE SWAP1 MLOAD CALLER SWAP2 PUSH32 0xF5D7535A395393675F56D066384113754CA9CF4ABD37298469934E2E9C2EC902 SWAP2 SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 LOG2 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0x1A57 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ADDRESS EQ ISZERO PUSH2 0x1A57 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F414444524553535F49535F53454C4600000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x7472616E7366657228616464726573732C75696E743235362900000000000000 DUP2 MSTORE DUP2 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x19 ADD DUP2 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x64 SWAP1 SWAP3 ADD SWAP1 SWAP3 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE PUSH2 0x1B6D SWAP1 DUP5 SWAP1 PUSH2 0x1E6A JUMP JUMPDEST POP POP POP JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x10 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO ISZERO PUSH2 0x1767 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1F46 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0xC SLOAD PUSH23 0x100000000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO PUSH2 0x1767 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F44495341424C45440000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 GT PUSH2 0x1A57 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5A45524F5F56414C5545000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1CA1 PUSH2 0x8D6 JUMP JUMPDEST SWAP1 POP PUSH1 0x6 SLOAD DUP3 LT ISZERO DUP1 ISZERO PUSH2 0x1CB5 JUMPI POP DUP1 DUP3 GT ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x1D0B JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F414D4F554E545F544F4F5F4849474800000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x1D1B DUP2 DUP4 PUSH4 0xFFFFFFFF PUSH2 0x1801 AND JUMP JUMPDEST PUSH1 0x8 SSTORE NUMBER PUSH1 0xB SSTORE PUSH1 0xC SLOAD PUSH2 0x1D3E SWAP1 PUSH2 0x100 SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP5 DUP5 PUSH2 0x1ABB JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP4 DUP2 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND SWAP2 PUSH32 0xBFDC1F3C02B4715077E0BE4A262F967D53D4D0FCD76C6987FA2AD6E2257D7C8F SWAP2 SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 LOG2 POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x7472616E7366657246726F6D28616464726573732C616464726573732C75696E DUP2 MSTORE PUSH32 0x7432353629000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP3 MLOAD SWAP2 DUP3 SWAP1 SUB PUSH1 0x25 ADD DUP3 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP9 AND PUSH1 0x24 DUP6 ADD MSTORE DUP7 AND PUSH1 0x44 DUP5 ADD MSTORE PUSH1 0x64 DUP1 DUP5 ADD DUP7 SWAP1 MSTORE DUP5 MLOAD DUP1 DUP6 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x84 SWAP1 SWAP4 ADD SWAP1 SWAP4 MSTORE DUP2 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE PUSH2 0x1E64 SWAP1 DUP6 SWAP1 PUSH2 0x1E6A JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0x1E72 PUSH2 0x1F26 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE POP SWAP1 POP PUSH1 0x20 DUP2 DUP4 MLOAD PUSH1 0x20 DUP6 ADD PUSH1 0x0 DUP8 GAS CALL DUP1 ISZERO ISZERO PUSH2 0x1E9F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD ISZERO ISZERO PUSH2 0x1B6D JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5452414E534645525F4641494C454400000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xA0 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE SWAP2 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x60 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 SWAP1 PUSH1 0x20 DUP3 MUL DUP1 CODESIZE DUP4 CODECOPY POP SWAP2 SWAP3 SWAP2 POP POP JUMP STOP GASLIMIT MSTORE MSTORE 0x5f COINBASE NUMBER NUMBER GASLIMIT MSTORE8 MSTORE8 0x5f DIFFICULTY GASLIMIT 0x4e 0x49 GASLIMIT DIFFICULTY STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 JUMP SWAP1 LT 0xe6 0xee DUP13 0xeb PUSH8 0x6C8764611AF1B7A6 MSIZE CODESIZE CALLVALUE 0xee 0xc0 0xd3 PUSH4 0x6F2ACCC2 0x1e 0xb2 0xc3 0x27 0xb9 STOP 0x29 ", + "sourceMap": "835:15088:45:-;;;2060:36;;;-1:-1:-1;;;;;;;;;;;;2060:36:45;;;;;2148:35;;;;;4847:1085;5:2:-1;;;;30:1;27;20:12;5:2;4847:1085:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;488:5:66;:18;;-1:-1:-1;;;;;;488:18:66;496:10;488:18;;;4847:1085:45;;;;;;;;;;475:23:72;4847:1085:45;475:13:72;;;;:23;:::i;:::-;-1:-1:-1;1931:8:60;:39;;-1:-1:-1;;;;;1931:39:60;;;-1:-1:-1;;;;;;1931:39:60;;;;;;;;1974:12;:43;;;;;;;;5110:13:45;180:24:72;5110:13:45;180:16:72;;;;:24;:::i;:::-;5143:16:45;180:24:72;5143:16:45;180::72;;;;:24;:::i;:::-;5179:9:45;180:24:72;5179:9:45;180:16:72;;;;:24;:::i;:::-;5208:17:45;180:24:72;5208:17:45;180:16:72;;;;:24;:::i;:::-;135:78;;;180:24;135:78;180:16;;;;:24;:::i;:::-;5281:6:45;475:23:72;5281:6:45;475:13:72;;;;:23;:::i;:::-;5299:6:45;782:18:72;5299:6:45;782:8:72;;;;:18;:::i;:::-;5353:13:45;5340:9;:26;;:59;;;;;5383:16;5370:9;:29;;5340:59;5332:93;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5499:12:45;:28;;;-1:-1:-1;;;5531:15:45;:34;;;-1:-1:-1;5569:8:45;:20;;;;-1:-1:-1;5593:16:45;:36;;;;5633:18;:40;;5762:13;:29;;;;5795:16;:35;;;;5856:12;5834:19;:34;;;5872:22;:37;-1:-1:-1;;;;;5914:14:45;;;5633:40;5914:14;-1:-1:-1;;;;;;5633:40:45;;;;-1:-1:-1;;5633:40:45;;;;;;;5914:14;;;;;;;835:15088;;553:117:72;-1:-1:-1;;;;;620:22:72;;;;612:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;553:117;:::o;259:101::-;336:1;327:10;;319:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;855:115;-1:-1:-1;;;;;917:25:72;;937:4;917:25;;909:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;835:15088:45;;;;;;;" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "60806040526004361061020e5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630183592b8114610213578063024c7ec71461026a57806316c76c271461028457806319967439146102ab5780631aff29eb146102c05780631e04a593146102d55780631fd8088d146102ea5780632cc1cd9e146102ff5780632fe8a6ad14610334578063427c037414610349578063492825381461036a57806349d10b64146103885780634b3e475c1461039d57806352e94ce3146103b257806354fd4d50146103c75780635e35359e146103f357806361cd756e1461041d5780636dc6a01b1461044e5780636ec6d4a61461047b57806372f43d191461049357806379ba5097146104a85780637b103999146104bd5780637b15879c146104d25780638544c52d146104ed5780638da5cb5b146105115780639390701c146105265780639ace38c21461053b578063a50c326c1461058b578063a5c670ca146105a3578063a8c36a90146105bd578063aafd6b76146105d2578063af2b9618146105f6578063b4a176d31461060e578063bf28ece414610623578063ca27e0111461063b578063d4ee1d9014610666578063e1bb51331461067b578063e36f8dc5146106a1578063ed1d73a6146106b9578063f2fde38b146106d3578063f7385f76146106f4578063fbb2469214610709578063fc0c546a1461071e575b600080fd5b34801561021f57600080fd5b5060408051602060048035808201358381028086018501909652808552610268953695939460249493850192918291850190849080828437509497506107339650505050505050565b005b34801561027657600080fd5b506102686004351515610839565b34801561029057600080fd5b50610299610870565b60408051918252519081900360200190f35b3480156102b757600080fd5b50610299610876565b3480156102cc57600080fd5b506102996108d0565b3480156102e157600080fd5b506102996108d6565b3480156102f657600080fd5b5061029961091c565b34801561030b57600080fd5b50610320600160a060020a0360043516610922565b604080519115158252519081900360200190f35b34801561034057600080fd5b50610320610937565b34801561035557600080fd5b50610268600435602435604435606435610947565b34801561037657600080fd5b50610268600435602435604435610a2e565b34801561039457600080fd5b50610268610b14565b3480156103a957600080fd5b50610299610d70565b3480156103be57600080fd5b50610299610d76565b3480156103d357600080fd5b506103dc610d7c565b6040805161ffff9092168252519081900360200190f35b3480156103ff57600080fd5b50610268600160a060020a0360043581169060243516604435610d81565b34801561042957600080fd5b50610432610dba565b60408051600160a060020a039092168252519081900360200190f35b34801561045a57600080fd5b50610268600435602435600160a060020a0360443516606435608435610dc9565b34801561048757600080fd5b506102686004356111f6565b34801561049f57600080fd5b50610299611278565b3480156104b457600080fd5b5061026861127e565b3480156104c957600080fd5b5061043261133f565b3480156104de57600080fd5b5061026860ff6004351661134e565b3480156104f957600080fd5b50610320600435600160a060020a036024351661137a565b34801561051d57600080fd5b5061043261139a565b34801561053257600080fd5b506103206113a9565b34801561054757600080fd5b506105536004356113cc565b604080519586526020860194909452600160a060020a039092168484015260ff16606084015215156080830152519081900360a00190f35b34801561059757600080fd5b5061026860043561140c565b3480156105af57600080fd5b506102686004351515611424565b3480156105c957600080fd5b5061029961145c565b3480156105de57600080fd5b50610299600435600160a060020a0360243516611462565b34801561060257600080fd5b5061026860043561153e565b34801561061a57600080fd5b50610268611556565b34801561062f57600080fd5b5061026860043561158f565b34801561064757600080fd5b506106506115a7565b6040805160ff9092168252519081900360200190f35b34801561067257600080fd5b506104326115b0565b34801561068757600080fd5b50610268600160a060020a036004351660243515156115bf565b3480156106ad57600080fd5b506102996004356115f2565b3480156106c557600080fd5b506102686004351515611604565b3480156106df57600080fd5b50610268600160a060020a0360043516611650565b34801561070057600080fd5b506102996116ed565b34801561071557600080fd5b506103206116f3565b34801561072a57600080fd5b50610432611703565b600061073d611717565b6107667f536f7672796e5377617058557067726164657200000000000000000000000000611769565b905061077181611650565b604080517f546872cc000000000000000000000000000000000000000000000000000000008152600481810181815260248301938452855160448401528551600160a060020a0386169463546872cc948893926064909101906020808601910280838360005b838110156107ef5781810151838201526020016107d7565b505050509050019350505050600060405180830381600087803b15801561081557600080fd5b505af1158015610829573d6000803e3d6000fd5b5050505061083561127e565b5050565b610841611717565b6003805491151560a060020a0274ff000000000000000000000000000000000000000019909216919091179055565b60075481565b6000806108b26108a3600954610897600a544361180190919063ffffffff16565b9063ffffffff61186116565b6007549063ffffffff6118e116565b90506004548111156108c85760045491506108cc565b8091505b5090565b600a5481565b6000806109066108f7600954610897600b544361180190919063ffffffff16565b6008549063ffffffff6118e116565b90506005548111156108c85760055491506108cc565b60065481565b60106020526000908152604090205460ff1681565b60035460a060020a900460ff1681565b600061095161193e565b610959610876565b9050600654831015801561096d5750808311155b15156109c3576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f414d4f554e545f544f4f5f4849474800000000000000000000000000604482015290519081900360640190fd5b6109cc836119a1565b6109dc818463ffffffff61180116565b60075543600a5560408051868152602081018590528082018490529051859133917f4780f3edc9124597ede658e04ed3d8887b58c86943b2a805dc961cf512570b629181900360600190a35050505050565b6000610a3861193e565b610a40610876565b90506006548210158015610a545750808211155b1515610aaa576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f414d4f554e545f544f4f5f4849474800000000000000000000000000604482015290519081900360640190fd5b610ab3826119a1565b610ac3818363ffffffff61180116565b60075543600a5560408051858152602081018490526000818301529051849133917f4780f3edc9124597ede658e04ed3d8887b58c86943b2a805dc961cf512570b629181900360600190a350505050565b60008054600160a060020a0316331480610b38575060035460a060020a900460ff16155b1515610b7c576040805160e560020a62461bcd0281526020600482015260116024820152600080516020611f46833981519152604482015290519081900360640190fd5b610ba57f436f6e7472616374526567697374727900000000000000000000000000000000611769565b600254909150600160a060020a03808316911614801590610bce5750600160a060020a03811615155b1515610c24576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e56414c49445f5245474953545259000000000000000000000000604482015290519081900360640190fd5b604080517fbb34534c0000000000000000000000000000000000000000000000000000000081527f436f6e747261637452656769737472790000000000000000000000000000000060048201529051600091600160a060020a0384169163bb34534c9160248082019260209290919082900301818787803b158015610ca857600080fd5b505af1158015610cbc573d6000803e3d6000fd5b505050506040513d6020811015610cd257600080fd5b5051600160a060020a03161415610d33576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e56414c49445f5245474953545259000000000000000000000000604482015290519081900360640190fd5b6002805460038054600160a060020a0380841673ffffffffffffffffffffffffffffffffffffffff19928316179092559091169216919091179055565b600b5481565b60055481565b600481565b610d89611717565b82610d93816119f7565b82610d9d816119f7565b83610da781611a5a565b610db2868686611abb565b505050505050565b600354600160a060020a031681565b6000610dd3611b72565b610ddb611bc9565b83610de5816119f7565b83610def81611c3f565b6000878152600f6020908152604080832033845290915290205460ff1615610e61576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f414c52454144595f5245504f52544544000000000000000000000000604482015290519081900360640190fd5b6000878152600f602090815260408083203384528252808320805460ff19166001179055898352600d9091529020600281015490935060a060020a900460ff161515610f5c5760028301805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038816179055848355600183018890558315610f57576000848152600e602052604090205415610f45576040805160e560020a62461bcd02815260206004820152601560248201527f4552525f54585f414c52454144595f4558495354530000000000000000000000604482015290519081900360640190fd5b6000848152600e602052604090208790555b61104b565b6002830154600160a060020a038781169116148015610f7b5750825485145b8015610f8a5750600183015488145b1515610fe0576040805160e560020a62461bcd02815260206004820152600f60248201527f4552525f54585f4d49534d415443480000000000000000000000000000000000604482015290519081900360640190fd5b831561104b576000848152600e6020526040902054871461104b576040805160e560020a62461bcd02815260206004820152601560248201527f4552525f54585f414c52454144595f4558495354530000000000000000000000604482015290519081900360640190fd5b600283018054600160ff60a060020a808404821692909201160274ff0000000000000000000000000000000000000000199091161790556040805189815260208101899052600160a060020a038816818301526060810187905260808101869052905133917f5e77831e701760f7f4a1e61a8e9834d773b52c45d91ba9006b7d2afb7a144739919081900360a00190a2600c54600284015460ff91821660a060020a909104909116106111ec576000878152600d602052604090206002015460a860020a900460ff1615611169576040805160e560020a62461bcd02815260206004820152601860248201527f4552525f54585f414c52454144595f434f4d504c455445440000000000000000604482015290519081900360640190fd5b6000878152600d6020908152604091829020600201805475ff000000000000000000000000000000000000000000191660a860020a1790558151600160a060020a038916815290810186905281517fd87906b7fce534fc5e6dde30064e777d92d0aaf3a28c72315de8ef2e4134dfef929181900390910190a16111ec8686611c97565b5050505050505050565b6111fe611717565b8061120881611c3f565b600454821115801561121c57506005548211155b1515611272576040805160e560020a62461bcd02815260206004820152601560248201527f4552525f494e56414c49445f4d494e5f4c494d49540000000000000000000000604482015290519081900360640190fd5b50600655565b60095481565b600154600160a060020a031633146112ce576040805160e560020a62461bcd0281526020600482015260116024820152600080516020611f46833981519152604482015290519081900360640190fd5b60015460008054604051600160a060020a0393841693909116917f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91a3600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b600254600160a060020a031681565b611356611717565b8060ff1661136381611c3f565b50600c805460ff191660ff92909216919091179055565b600f60209081526000928352604080842090915290825290205460ff1681565b600054600160a060020a031681565b600c54760100000000000000000000000000000000000000000000900460ff1681565b600d60205260009081526040902080546001820154600290920154909190600160a060020a0381169060ff60a060020a820481169160a860020a90041685565b611414611717565b8061141e81611c3f565b50600955565b61142c611717565b600c805491151560a860020a0275ff00000000000000000000000000000000000000000019909216919091179055565b60045481565b600061146c611ef8565b506000838152600e60209081526040808320548352600d825291829020825160a0810184528154815260018201549281019290925260020154600160a060020a0380821693830184905260ff60a060020a83048116606085015260a860020a90920490911615156080830152909190841614611532576040805160e560020a62461bcd02815260206004820152600f60248201527f4552525f54585f4d49534d415443480000000000000000000000000000000000604482015290519081900360640190fd5b805191505b5092915050565b611546611717565b8061155081611c3f565b50600455565b61155e611717565b6003546002805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055565b611597611717565b806115a181611c3f565b50600555565b600c5460ff1681565b600154600160a060020a031681565b6115c7611717565b600160a060020a03919091166000908152601060205260409020805460ff1916911515919091179055565b600e6020526000908152604090205481565b61160c611717565b600c80549115157601000000000000000000000000000000000000000000000276ff0000000000000000000000000000000000000000000019909216919091179055565b611658611717565b600054600160a060020a03828116911614156116be576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f53414d455f4f574e4552000000000000000000000000000000000000604482015290519081900360640190fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60085481565b600c5460a860020a900460ff1681565b600c546101009004600160a060020a031681565b600054600160a060020a03163314611767576040805160e560020a62461bcd0281526020600482015260116024820152600080516020611f46833981519152604482015290519081900360640190fd5b565b600254604080517fbb34534c000000000000000000000000000000000000000000000000000000008152600481018490529051600092600160a060020a03169163bb34534c91602480830192602092919082900301818787803b1580156117cf57600080fd5b505af11580156117e3573d6000803e3d6000fd5b505050506040513d60208110156117f957600080fd5b505192915050565b60008183101561185b576040805160e560020a62461bcd02815260206004820152600d60248201527f4552525f554e444552464c4f5700000000000000000000000000000000000000604482015290519081900360640190fd5b50900390565b6000808315156118745760009150611537565b5082820282848281151561188457fe5b04146118da576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b9392505050565b6000828201838110156118da576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b600c5460a860020a900460ff161515611767576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f44495341424c45440000000000000000000000000000000000000000604482015290519081900360640190fd5b600c546119be906101009004600160a060020a0316333084611d82565b60408051828152905133917ff5d7535a395393675f56d066384113754ca9cf4abd37298469934e2e9c2ec902919081900360200190a250565b600160a060020a0381161515611a57576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b50565b600160a060020a038116301415611a57576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f414444524553535f49535f53454c4600000000000000000000000000604482015290519081900360640190fd5b604080517f7472616e7366657228616464726573732c75696e74323536290000000000000081528151908190036019018120600160a060020a038516602483015260448083018590528351808403909101815260649092019092526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1990931692909217909152611b6d908490611e6a565b505050565b3360009081526010602052604090205460ff161515611767576040805160e560020a62461bcd0281526020600482015260116024820152600080516020611f46833981519152604482015290519081900360640190fd5b600c54760100000000000000000000000000000000000000000000900460ff161515611767576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f44495341424c45440000000000000000000000000000000000000000604482015290519081900360640190fd5b60008111611a57576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f5a45524f5f56414c5545000000000000000000000000000000000000604482015290519081900360640190fd5b6000611ca16108d6565b90506006548210158015611cb55750808211155b1515611d0b576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f414d4f554e545f544f4f5f4849474800000000000000000000000000604482015290519081900360640190fd5b611d1b818363ffffffff61180116565b60085543600b55600c54611d3e906101009004600160a060020a03168484611abb565b604080518381529051600160a060020a038516917fbfdc1f3c02b4715077e0be4a262f967d53d4d0fcd76c6987fa2ad6e2257d7c8f919081900360200190a2505050565b604080517f7472616e7366657246726f6d28616464726573732c616464726573732c75696e81527f74323536290000000000000000000000000000000000000000000000000000006020808301919091528251918290036025018220600160a060020a038088166024850152861660448401526064808401869052845180850390910181526084909301909352810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1990931692909217909152611e64908590611e6a565b50505050565b611e72611f26565b602060405190810160405280600181525090506020818351602085016000875af1801515611e9f57600080fd5b5080511515611b6d576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f5452414e534645525f4641494c454400000000000000000000000000604482015290519081900360640190fd5b6040805160a08101825260008082526020820181905291810182905260608101829052608081019190915290565b602060405190810160405280600190602082028038833950919291505056004552525f4143434553535f44454e494544000000000000000000000000000000a165627a7a72305820569010e6ee8ceb676c8764611af1b7a6593834eec0d3636f2accc21eb2c327b90029", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x20E JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x183592B DUP2 EQ PUSH2 0x213 JUMPI DUP1 PUSH4 0x24C7EC7 EQ PUSH2 0x26A JUMPI DUP1 PUSH4 0x16C76C27 EQ PUSH2 0x284 JUMPI DUP1 PUSH4 0x19967439 EQ PUSH2 0x2AB JUMPI DUP1 PUSH4 0x1AFF29EB EQ PUSH2 0x2C0 JUMPI DUP1 PUSH4 0x1E04A593 EQ PUSH2 0x2D5 JUMPI DUP1 PUSH4 0x1FD8088D EQ PUSH2 0x2EA JUMPI DUP1 PUSH4 0x2CC1CD9E EQ PUSH2 0x2FF JUMPI DUP1 PUSH4 0x2FE8A6AD EQ PUSH2 0x334 JUMPI DUP1 PUSH4 0x427C0374 EQ PUSH2 0x349 JUMPI DUP1 PUSH4 0x49282538 EQ PUSH2 0x36A JUMPI DUP1 PUSH4 0x49D10B64 EQ PUSH2 0x388 JUMPI DUP1 PUSH4 0x4B3E475C EQ PUSH2 0x39D JUMPI DUP1 PUSH4 0x52E94CE3 EQ PUSH2 0x3B2 JUMPI DUP1 PUSH4 0x54FD4D50 EQ PUSH2 0x3C7 JUMPI DUP1 PUSH4 0x5E35359E EQ PUSH2 0x3F3 JUMPI DUP1 PUSH4 0x61CD756E EQ PUSH2 0x41D JUMPI DUP1 PUSH4 0x6DC6A01B EQ PUSH2 0x44E JUMPI DUP1 PUSH4 0x6EC6D4A6 EQ PUSH2 0x47B JUMPI DUP1 PUSH4 0x72F43D19 EQ PUSH2 0x493 JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x4A8 JUMPI DUP1 PUSH4 0x7B103999 EQ PUSH2 0x4BD JUMPI DUP1 PUSH4 0x7B15879C EQ PUSH2 0x4D2 JUMPI DUP1 PUSH4 0x8544C52D EQ PUSH2 0x4ED JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x511 JUMPI DUP1 PUSH4 0x9390701C EQ PUSH2 0x526 JUMPI DUP1 PUSH4 0x9ACE38C2 EQ PUSH2 0x53B JUMPI DUP1 PUSH4 0xA50C326C EQ PUSH2 0x58B JUMPI DUP1 PUSH4 0xA5C670CA EQ PUSH2 0x5A3 JUMPI DUP1 PUSH4 0xA8C36A90 EQ PUSH2 0x5BD JUMPI DUP1 PUSH4 0xAAFD6B76 EQ PUSH2 0x5D2 JUMPI DUP1 PUSH4 0xAF2B9618 EQ PUSH2 0x5F6 JUMPI DUP1 PUSH4 0xB4A176D3 EQ PUSH2 0x60E JUMPI DUP1 PUSH4 0xBF28ECE4 EQ PUSH2 0x623 JUMPI DUP1 PUSH4 0xCA27E011 EQ PUSH2 0x63B JUMPI DUP1 PUSH4 0xD4EE1D90 EQ PUSH2 0x666 JUMPI DUP1 PUSH4 0xE1BB5133 EQ PUSH2 0x67B JUMPI DUP1 PUSH4 0xE36F8DC5 EQ PUSH2 0x6A1 JUMPI DUP1 PUSH4 0xED1D73A6 EQ PUSH2 0x6B9 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x6D3 JUMPI DUP1 PUSH4 0xF7385F76 EQ PUSH2 0x6F4 JUMPI DUP1 PUSH4 0xFBB24692 EQ PUSH2 0x709 JUMPI DUP1 PUSH4 0xFC0C546A EQ PUSH2 0x71E JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x21F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x268 SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP PUSH2 0x733 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x276 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x268 PUSH1 0x4 CALLDATALOAD ISZERO ISZERO PUSH2 0x839 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x290 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x299 PUSH2 0x870 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2B7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x299 PUSH2 0x876 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2CC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x299 PUSH2 0x8D0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2E1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x299 PUSH2 0x8D6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2F6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x299 PUSH2 0x91C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x30B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x320 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x922 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x340 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x320 PUSH2 0x937 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x355 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x268 PUSH1 0x4 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH1 0x44 CALLDATALOAD PUSH1 0x64 CALLDATALOAD PUSH2 0x947 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x376 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x268 PUSH1 0x4 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH1 0x44 CALLDATALOAD PUSH2 0xA2E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x394 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x268 PUSH2 0xB14 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3A9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x299 PUSH2 0xD70 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3BE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x299 PUSH2 0xD76 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3D3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3DC PUSH2 0xD7C JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0xFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3FF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x268 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0xD81 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x429 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x432 PUSH2 0xDBA JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x45A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x268 PUSH1 0x4 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x44 CALLDATALOAD AND PUSH1 0x64 CALLDATALOAD PUSH1 0x84 CALLDATALOAD PUSH2 0xDC9 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x487 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x268 PUSH1 0x4 CALLDATALOAD PUSH2 0x11F6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x49F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x299 PUSH2 0x1278 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4B4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x268 PUSH2 0x127E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4C9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x432 PUSH2 0x133F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4DE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x268 PUSH1 0xFF PUSH1 0x4 CALLDATALOAD AND PUSH2 0x134E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4F9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x320 PUSH1 0x4 CALLDATALOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x24 CALLDATALOAD AND PUSH2 0x137A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x51D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x432 PUSH2 0x139A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x532 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x320 PUSH2 0x13A9 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x547 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x553 PUSH1 0x4 CALLDATALOAD PUSH2 0x13CC JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP6 DUP7 MSTORE PUSH1 0x20 DUP7 ADD SWAP5 SWAP1 SWAP5 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP5 DUP5 ADD MSTORE PUSH1 0xFF AND PUSH1 0x60 DUP5 ADD MSTORE ISZERO ISZERO PUSH1 0x80 DUP4 ADD MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0xA0 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x597 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x268 PUSH1 0x4 CALLDATALOAD PUSH2 0x140C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5AF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x268 PUSH1 0x4 CALLDATALOAD ISZERO ISZERO PUSH2 0x1424 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5C9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x299 PUSH2 0x145C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5DE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x299 PUSH1 0x4 CALLDATALOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x24 CALLDATALOAD AND PUSH2 0x1462 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x602 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x268 PUSH1 0x4 CALLDATALOAD PUSH2 0x153E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x61A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x268 PUSH2 0x1556 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x62F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x268 PUSH1 0x4 CALLDATALOAD PUSH2 0x158F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x647 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x650 PUSH2 0x15A7 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x672 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x432 PUSH2 0x15B0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x687 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x268 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD ISZERO ISZERO PUSH2 0x15BF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6AD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x299 PUSH1 0x4 CALLDATALOAD PUSH2 0x15F2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6C5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x268 PUSH1 0x4 CALLDATALOAD ISZERO ISZERO PUSH2 0x1604 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6DF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x268 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x1650 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x700 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x299 PUSH2 0x16ED JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x715 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x320 PUSH2 0x16F3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x72A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x432 PUSH2 0x1703 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x73D PUSH2 0x1717 JUMP JUMPDEST PUSH2 0x766 PUSH32 0x536F7672796E5377617058557067726164657200000000000000000000000000 PUSH2 0x1769 JUMP JUMPDEST SWAP1 POP PUSH2 0x771 DUP2 PUSH2 0x1650 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x546872CC00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 DUP2 ADD DUP2 DUP2 MSTORE PUSH1 0x24 DUP4 ADD SWAP4 DUP5 MSTORE DUP6 MLOAD PUSH1 0x44 DUP5 ADD MSTORE DUP6 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND SWAP5 PUSH4 0x546872CC SWAP5 DUP9 SWAP4 SWAP3 PUSH1 0x64 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x20 DUP1 DUP7 ADD SWAP2 MUL DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x7EF JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x7D7 JUMP JUMPDEST POP POP POP POP SWAP1 POP ADD SWAP4 POP POP POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x815 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x829 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x835 PUSH2 0x127E JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x841 PUSH2 0x1717 JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD SWAP2 ISZERO ISZERO PUSH1 0xA0 PUSH1 0x2 EXP MUL PUSH21 0xFF0000000000000000000000000000000000000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x7 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x8B2 PUSH2 0x8A3 PUSH1 0x9 SLOAD PUSH2 0x897 PUSH1 0xA SLOAD NUMBER PUSH2 0x1801 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x1861 AND JUMP JUMPDEST PUSH1 0x7 SLOAD SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x18E1 AND JUMP JUMPDEST SWAP1 POP PUSH1 0x4 SLOAD DUP2 GT ISZERO PUSH2 0x8C8 JUMPI PUSH1 0x4 SLOAD SWAP2 POP PUSH2 0x8CC JUMP JUMPDEST DUP1 SWAP2 POP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH1 0xA SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x906 PUSH2 0x8F7 PUSH1 0x9 SLOAD PUSH2 0x897 PUSH1 0xB SLOAD NUMBER PUSH2 0x1801 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x8 SLOAD SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x18E1 AND JUMP JUMPDEST SWAP1 POP PUSH1 0x5 SLOAD DUP2 GT ISZERO PUSH2 0x8C8 JUMPI PUSH1 0x5 SLOAD SWAP2 POP PUSH2 0x8CC JUMP JUMPDEST PUSH1 0x6 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x10 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0xA0 PUSH1 0x2 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x951 PUSH2 0x193E JUMP JUMPDEST PUSH2 0x959 PUSH2 0x876 JUMP JUMPDEST SWAP1 POP PUSH1 0x6 SLOAD DUP4 LT ISZERO DUP1 ISZERO PUSH2 0x96D JUMPI POP DUP1 DUP4 GT ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x9C3 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F414D4F554E545F544F4F5F4849474800000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x9CC DUP4 PUSH2 0x19A1 JUMP JUMPDEST PUSH2 0x9DC DUP2 DUP5 PUSH4 0xFFFFFFFF PUSH2 0x1801 AND JUMP JUMPDEST PUSH1 0x7 SSTORE NUMBER PUSH1 0xA SSTORE PUSH1 0x40 DUP1 MLOAD DUP7 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP6 SWAP1 MSTORE DUP1 DUP3 ADD DUP5 SWAP1 MSTORE SWAP1 MLOAD DUP6 SWAP2 CALLER SWAP2 PUSH32 0x4780F3EDC9124597EDE658E04ED3D8887B58C86943B2A805DC961CF512570B62 SWAP2 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG3 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA38 PUSH2 0x193E JUMP JUMPDEST PUSH2 0xA40 PUSH2 0x876 JUMP JUMPDEST SWAP1 POP PUSH1 0x6 SLOAD DUP3 LT ISZERO DUP1 ISZERO PUSH2 0xA54 JUMPI POP DUP1 DUP3 GT ISZERO JUMPDEST ISZERO ISZERO PUSH2 0xAAA JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F414D4F554E545F544F4F5F4849474800000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0xAB3 DUP3 PUSH2 0x19A1 JUMP JUMPDEST PUSH2 0xAC3 DUP2 DUP4 PUSH4 0xFFFFFFFF PUSH2 0x1801 AND JUMP JUMPDEST PUSH1 0x7 SSTORE NUMBER PUSH1 0xA SSTORE PUSH1 0x40 DUP1 MLOAD DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x0 DUP2 DUP4 ADD MSTORE SWAP1 MLOAD DUP5 SWAP2 CALLER SWAP2 PUSH32 0x4780F3EDC9124597EDE658E04ED3D8887B58C86943B2A805DC961CF512570B62 SWAP2 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG3 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ DUP1 PUSH2 0xB38 JUMPI POP PUSH1 0x3 SLOAD PUSH1 0xA0 PUSH1 0x2 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST ISZERO ISZERO PUSH2 0xB7C JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1F46 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0xBA5 PUSH32 0x436F6E7472616374526567697374727900000000000000000000000000000000 PUSH2 0x1769 JUMP JUMPDEST PUSH1 0x2 SLOAD SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP4 AND SWAP2 AND EQ DUP1 ISZERO SWAP1 PUSH2 0xBCE JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO JUMPDEST ISZERO ISZERO PUSH2 0xC24 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245474953545259000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0xBB34534C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH32 0x436F6E7472616374526567697374727900000000000000000000000000000000 PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP2 PUSH4 0xBB34534C SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xCA8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xCBC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xCD2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ ISZERO PUSH2 0xD33 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245474953545259000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP5 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP3 DUP4 AND OR SWAP1 SWAP3 SSTORE SWAP1 SWAP2 AND SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0xB SLOAD DUP2 JUMP JUMPDEST PUSH1 0x5 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x4 DUP2 JUMP JUMPDEST PUSH2 0xD89 PUSH2 0x1717 JUMP JUMPDEST DUP3 PUSH2 0xD93 DUP2 PUSH2 0x19F7 JUMP JUMPDEST DUP3 PUSH2 0xD9D DUP2 PUSH2 0x19F7 JUMP JUMPDEST DUP4 PUSH2 0xDA7 DUP2 PUSH2 0x1A5A JUMP JUMPDEST PUSH2 0xDB2 DUP7 DUP7 DUP7 PUSH2 0x1ABB JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xDD3 PUSH2 0x1B72 JUMP JUMPDEST PUSH2 0xDDB PUSH2 0x1BC9 JUMP JUMPDEST DUP4 PUSH2 0xDE5 DUP2 PUSH2 0x19F7 JUMP JUMPDEST DUP4 PUSH2 0xDEF DUP2 PUSH2 0x1C3F JUMP JUMPDEST PUSH1 0x0 DUP8 DUP2 MSTORE PUSH1 0xF PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0xE61 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F414C52454144595F5245504F52544544000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP8 DUP2 MSTORE PUSH1 0xF PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE DUP3 MSTORE DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE DUP10 DUP4 MSTORE PUSH1 0xD SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 PUSH1 0x2 DUP2 ADD SLOAD SWAP1 SWAP4 POP PUSH1 0xA0 PUSH1 0x2 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO PUSH2 0xF5C JUMPI PUSH1 0x2 DUP4 ADD DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 AND OR SWAP1 SSTORE DUP5 DUP4 SSTORE PUSH1 0x1 DUP4 ADD DUP9 SWAP1 SSTORE DUP4 ISZERO PUSH2 0xF57 JUMPI PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD ISZERO PUSH2 0xF45 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F54585F414C52454144595F4558495354530000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP8 SWAP1 SSTORE JUMPDEST PUSH2 0x104B JUMP JUMPDEST PUSH1 0x2 DUP4 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 DUP2 AND SWAP2 AND EQ DUP1 ISZERO PUSH2 0xF7B JUMPI POP DUP3 SLOAD DUP6 EQ JUMPDEST DUP1 ISZERO PUSH2 0xF8A JUMPI POP PUSH1 0x1 DUP4 ADD SLOAD DUP9 EQ JUMPDEST ISZERO ISZERO PUSH2 0xFE0 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xF PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F54585F4D49534D415443480000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP4 ISZERO PUSH2 0x104B JUMPI PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP8 EQ PUSH2 0x104B JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F54585F414C52454144595F4558495354530000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x2 DUP4 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0xFF PUSH1 0xA0 PUSH1 0x2 EXP DUP1 DUP5 DIV DUP3 AND SWAP3 SWAP1 SWAP3 ADD AND MUL PUSH21 0xFF0000000000000000000000000000000000000000 NOT SWAP1 SWAP2 AND OR SWAP1 SSTORE PUSH1 0x40 DUP1 MLOAD DUP10 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP10 SWAP1 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 AND DUP2 DUP4 ADD MSTORE PUSH1 0x60 DUP2 ADD DUP8 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD DUP7 SWAP1 MSTORE SWAP1 MLOAD CALLER SWAP2 PUSH32 0x5E77831E701760F7F4A1E61A8E9834D773B52C45D91BA9006B7D2AFB7A144739 SWAP2 SWAP1 DUP2 SWAP1 SUB PUSH1 0xA0 ADD SWAP1 LOG2 PUSH1 0xC SLOAD PUSH1 0x2 DUP5 ADD SLOAD PUSH1 0xFF SWAP2 DUP3 AND PUSH1 0xA0 PUSH1 0x2 EXP SWAP1 SWAP2 DIV SWAP1 SWAP2 AND LT PUSH2 0x11EC JUMPI PUSH1 0x0 DUP8 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x2 ADD SLOAD PUSH1 0xA8 PUSH1 0x2 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x1169 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F54585F414C52454144595F434F4D504C455445440000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP8 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 PUSH1 0x2 ADD DUP1 SLOAD PUSH22 0xFF000000000000000000000000000000000000000000 NOT AND PUSH1 0xA8 PUSH1 0x2 EXP OR SWAP1 SSTORE DUP2 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP10 AND DUP2 MSTORE SWAP1 DUP2 ADD DUP7 SWAP1 MSTORE DUP2 MLOAD PUSH32 0xD87906B7FCE534FC5E6DDE30064E777D92D0AAF3A28C72315DE8EF2E4134DFEF SWAP3 SWAP2 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG1 PUSH2 0x11EC DUP7 DUP7 PUSH2 0x1C97 JUMP JUMPDEST POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x11FE PUSH2 0x1717 JUMP JUMPDEST DUP1 PUSH2 0x1208 DUP2 PUSH2 0x1C3F JUMP JUMPDEST PUSH1 0x4 SLOAD DUP3 GT ISZERO DUP1 ISZERO PUSH2 0x121C JUMPI POP PUSH1 0x5 SLOAD DUP3 GT ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x1272 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4D494E5F4C494D49540000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP PUSH1 0x6 SSTORE JUMP JUMPDEST PUSH1 0x9 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x12CE JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1F46 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND SWAP4 SWAP1 SWAP2 AND SWAP2 PUSH32 0x343765429AEA5A34B3FF6A3785A98A5ABB2597ACA87BFBB58632C173D585373A SWAP2 LOG3 PUSH1 0x1 DUP1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND OR SWAP1 SWAP2 SSTORE AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH2 0x1356 PUSH2 0x1717 JUMP JUMPDEST DUP1 PUSH1 0xFF AND PUSH2 0x1363 DUP2 PUSH2 0x1C3F JUMP JUMPDEST POP PUSH1 0xC DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0xFF SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0xF PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0xC SLOAD PUSH23 0x100000000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0xD PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0x2 SWAP1 SWAP3 ADD SLOAD SWAP1 SWAP2 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND SWAP1 PUSH1 0xFF PUSH1 0xA0 PUSH1 0x2 EXP DUP3 DIV DUP2 AND SWAP2 PUSH1 0xA8 PUSH1 0x2 EXP SWAP1 DIV AND DUP6 JUMP JUMPDEST PUSH2 0x1414 PUSH2 0x1717 JUMP JUMPDEST DUP1 PUSH2 0x141E DUP2 PUSH2 0x1C3F JUMP JUMPDEST POP PUSH1 0x9 SSTORE JUMP JUMPDEST PUSH2 0x142C PUSH2 0x1717 JUMP JUMPDEST PUSH1 0xC DUP1 SLOAD SWAP2 ISZERO ISZERO PUSH1 0xA8 PUSH1 0x2 EXP MUL PUSH22 0xFF000000000000000000000000000000000000000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x4 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x146C PUSH2 0x1EF8 JUMP JUMPDEST POP PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD DUP4 MSTORE PUSH1 0xD DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD PUSH1 0xA0 DUP2 ADD DUP5 MSTORE DUP2 SLOAD DUP2 MSTORE PUSH1 0x1 DUP3 ADD SLOAD SWAP3 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x2 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP3 AND SWAP4 DUP4 ADD DUP5 SWAP1 MSTORE PUSH1 0xFF PUSH1 0xA0 PUSH1 0x2 EXP DUP4 DIV DUP2 AND PUSH1 0x60 DUP6 ADD MSTORE PUSH1 0xA8 PUSH1 0x2 EXP SWAP1 SWAP3 DIV SWAP1 SWAP2 AND ISZERO ISZERO PUSH1 0x80 DUP4 ADD MSTORE SWAP1 SWAP2 SWAP1 DUP5 AND EQ PUSH2 0x1532 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xF PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F54585F4D49534D415443480000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP1 MLOAD SWAP2 POP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1546 PUSH2 0x1717 JUMP JUMPDEST DUP1 PUSH2 0x1550 DUP2 PUSH2 0x1C3F JUMP JUMPDEST POP PUSH1 0x4 SSTORE JUMP JUMPDEST PUSH2 0x155E PUSH2 0x1717 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x2 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x1597 PUSH2 0x1717 JUMP JUMPDEST DUP1 PUSH2 0x15A1 DUP2 PUSH2 0x1C3F JUMP JUMPDEST POP PUSH1 0x5 SSTORE JUMP JUMPDEST PUSH1 0xC SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH2 0x15C7 PUSH2 0x1717 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP2 SWAP1 SWAP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x10 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP2 ISZERO ISZERO SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0xE PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x160C PUSH2 0x1717 JUMP JUMPDEST PUSH1 0xC DUP1 SLOAD SWAP2 ISZERO ISZERO PUSH23 0x100000000000000000000000000000000000000000000 MUL PUSH23 0xFF00000000000000000000000000000000000000000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x1658 PUSH2 0x1717 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x16BE JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F4F574E4552000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x8 SLOAD DUP2 JUMP JUMPDEST PUSH1 0xC SLOAD PUSH1 0xA8 PUSH1 0x2 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0xC SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x1767 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1F46 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xBB34534C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP2 PUSH4 0xBB34534C SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x17CF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x17E3 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x17F9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT ISZERO PUSH2 0x185B JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F554E444552464C4F5700000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP SWAP1 SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 ISZERO ISZERO PUSH2 0x1874 JUMPI PUSH1 0x0 SWAP2 POP PUSH2 0x1537 JUMP JUMPDEST POP DUP3 DUP3 MUL DUP3 DUP5 DUP3 DUP2 ISZERO ISZERO PUSH2 0x1884 JUMPI INVALID JUMPDEST DIV EQ PUSH2 0x18DA JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 ADD DUP4 DUP2 LT ISZERO PUSH2 0x18DA JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0xC SLOAD PUSH1 0xA8 PUSH1 0x2 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO PUSH2 0x1767 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F44495341424C45440000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0xC SLOAD PUSH2 0x19BE SWAP1 PUSH2 0x100 SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER ADDRESS DUP5 PUSH2 0x1D82 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP3 DUP2 MSTORE SWAP1 MLOAD CALLER SWAP2 PUSH32 0xF5D7535A395393675F56D066384113754CA9CF4ABD37298469934E2E9C2EC902 SWAP2 SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 LOG2 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0x1A57 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ADDRESS EQ ISZERO PUSH2 0x1A57 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F414444524553535F49535F53454C4600000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x7472616E7366657228616464726573732C75696E743235362900000000000000 DUP2 MSTORE DUP2 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x19 ADD DUP2 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x64 SWAP1 SWAP3 ADD SWAP1 SWAP3 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE PUSH2 0x1B6D SWAP1 DUP5 SWAP1 PUSH2 0x1E6A JUMP JUMPDEST POP POP POP JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x10 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO ISZERO PUSH2 0x1767 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1F46 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0xC SLOAD PUSH23 0x100000000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO PUSH2 0x1767 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F44495341424C45440000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 GT PUSH2 0x1A57 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5A45524F5F56414C5545000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1CA1 PUSH2 0x8D6 JUMP JUMPDEST SWAP1 POP PUSH1 0x6 SLOAD DUP3 LT ISZERO DUP1 ISZERO PUSH2 0x1CB5 JUMPI POP DUP1 DUP3 GT ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x1D0B JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F414D4F554E545F544F4F5F4849474800000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x1D1B DUP2 DUP4 PUSH4 0xFFFFFFFF PUSH2 0x1801 AND JUMP JUMPDEST PUSH1 0x8 SSTORE NUMBER PUSH1 0xB SSTORE PUSH1 0xC SLOAD PUSH2 0x1D3E SWAP1 PUSH2 0x100 SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP5 DUP5 PUSH2 0x1ABB JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP4 DUP2 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND SWAP2 PUSH32 0xBFDC1F3C02B4715077E0BE4A262F967D53D4D0FCD76C6987FA2AD6E2257D7C8F SWAP2 SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 LOG2 POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x7472616E7366657246726F6D28616464726573732C616464726573732C75696E DUP2 MSTORE PUSH32 0x7432353629000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP3 MLOAD SWAP2 DUP3 SWAP1 SUB PUSH1 0x25 ADD DUP3 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP9 AND PUSH1 0x24 DUP6 ADD MSTORE DUP7 AND PUSH1 0x44 DUP5 ADD MSTORE PUSH1 0x64 DUP1 DUP5 ADD DUP7 SWAP1 MSTORE DUP5 MLOAD DUP1 DUP6 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x84 SWAP1 SWAP4 ADD SWAP1 SWAP4 MSTORE DUP2 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE PUSH2 0x1E64 SWAP1 DUP6 SWAP1 PUSH2 0x1E6A JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0x1E72 PUSH2 0x1F26 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE POP SWAP1 POP PUSH1 0x20 DUP2 DUP4 MLOAD PUSH1 0x20 DUP6 ADD PUSH1 0x0 DUP8 GAS CALL DUP1 ISZERO ISZERO PUSH2 0x1E9F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD ISZERO ISZERO PUSH2 0x1B6D JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5452414E534645525F4641494C454400000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xA0 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE SWAP2 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x60 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 SWAP1 PUSH1 0x20 DUP3 MUL DUP1 CODESIZE DUP4 CODECOPY POP SWAP2 SWAP3 SWAP2 POP POP JUMP STOP GASLIMIT MSTORE MSTORE 0x5f COINBASE NUMBER NUMBER GASLIMIT MSTORE8 MSTORE8 0x5f DIFFICULTY GASLIMIT 0x4e 0x49 GASLIMIT DIFFICULTY STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 JUMP SWAP1 LT 0xe6 0xee DUP13 0xeb PUSH8 0x6C8764611AF1B7A6 MSIZE CODESIZE CALLVALUE 0xee 0xc0 0xd3 PUSH4 0x6F2ACCC2 0x1e 0xb2 0xc3 0x27 0xb9 STOP 0x29 ", + "sourceMap": "835:15088:45:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8922:277;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;8922:277:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8922:277:45;;-1:-1:-1;8922:277:45;;-1:-1:-1;;;;;;;8922:277:45;;;3280:206:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3280:206:60;;;;;;;1510:28:45;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1510:28:45;;;;;;;;;;;;;;;;;;;;14037:347;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14037:347:45;;;;1748:34;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1748:34:45;;;;14524:377;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14524:377:45;;;;1409:23;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1409:23:45;;;;2562:41;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2562:41:45;-1:-1:-1;;;;;2562:41:45;;;;;;;;;;;;;;;;;;;;;;;1250:38:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1250:38:60;;;;10453:608:45;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;10453:608:45;;;;;;;;;;;9492:568;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;9492:568:45;;;;;;;;;2080:832:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2080:832:60;;;;1834:37:45;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1834:37:45;;;;1304:30;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1304:30:45;;;;1166:34;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1166:34:45;;;;;;;;;;;;;;;;;;;;;;;1077:194:71;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1077:194:71;-1:-1:-1;;;;;1077:194:71;;;;;;;;;;;;1165:37:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1165:37:60;;;;;;;;-1:-1:-1;;;;;1165:37:60;;;;;;;;;;;;;;11576:1619:45;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;11576:1619:45;;;;;-1:-1:-1;;;;;11576:1619:45;;;;;;;;;7193:228;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;7193:228:45;;;;;1672:31;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1672:31:45;;;;1159:176:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1159:176:66;;;;1085:33:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1085:33:60;;;;7749:160:45;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;7749:160:45;;;;;;;2452:63;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2452:63:45;;;-1:-1:-1;;;;;2452:63:45;;;;;157:20:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;157:20:66;;;;2148:35:45;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2148:35:45;;;;2257:51;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2257:51:45;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2257:51:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;7507:152;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;7507:152:45;;;;;8352:92;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;8352:92:45;;;;;;;1204:27;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1204:27:45;;;;13555:347;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;13555:347:45;;;-1:-1:-1;;;;;13555:347:45;;;;;6760:132;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;6760:132:45;;;;;2974:119:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2974:119:60;;;;6976:147:45;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;6976:147:45;;;;;1926:31;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1926:31:45;;;;;;;;;;;;;;;;;;;;;;;180:23:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;180:23:66;;;;8108:109:45;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;8108:109:45;-1:-1:-1;;;;;8108:109:45;;;;;;;;;2336:49;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2336:49:45;;;;;8587:90;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;8587:90:45;;;;;;;945:140:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;945:140:66;-1:-1:-1;;;;;945:140:66;;;;;1588:31:45;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1588:31:45;;;;2060:36;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2060:36:45;;;;2017:24;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2017:24:45;;;;8922:277;8982:40;575:12:66;:10;:12::i;:::-;9046:32:45;9056:21;9046:9;:32::i;:::-;8982:97;;9084:38;9102:19;9084:17;:38::i;:::-;9126:48;;;;;;1199:1;9126:48;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9126:27:45;;;;;9163:10;;9126:48;;;;;;;;;;;;;;;-1:-1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;9126:48:45;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9126:48:45;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9126:48:45;;;;9178:17;:15;:17::i;:::-;8922:277;;:::o;3280:206:60:-;575:12:66;:10;:12::i;:::-;3426:26:60;:56;;;;;-1:-1:-1;;;3426:56:60;-1:-1:-1;;3426:56:60;;;;;;;;;3280:206::o;1510:28:45:-;;;;:::o;14037:347::-;14089:7;14184:24;14211:82;14229:63;14275:16;;14230:39;14249:19;;14231:12;14230:18;;:39;;;;:::i;:::-;14229:45;:63;:45;:63;:::i;:::-;14211:13;;;:82;:17;:82;:::i;:::-;14184:109;;14320:12;;14301:16;:31;14297:56;;;14341:12;;14334:19;;;;14297:56;14364:16;14357:23;;14037:347;;;:::o;1748:34::-;;;;:::o;14524:377::-;14579:7;14680:27;14710:88;14731:66;14780:16;;14732:42;14751:22;;14733:12;14732:18;;:42;;;;:::i;14731:66::-;14710:16;;;:88;:20;:88;:::i;:::-;14680:118;;14828:15;;14806:19;:37;14802:65;;;14852:15;;14845:22;;;;1409:23;;;;:::o;2562:41::-;;;;;;;;;;;;;;;:::o;1250:38:60:-;;;-1:-1:-1;;;1250:38:60;;;;;:::o;10453:608:45:-;10610:24;6262:20;:18;:20::i;:::-;10637:21;:19;:21::i;:::-;10610:48;;10741:8;;10730:7;:19;;:50;;;;;10764:16;10753:7;:27;;10730:50;10722:82;;;;;;;-1:-1:-1;;;;;10722:82:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;10809:19;10820:7;10809:10;:19::i;:::-;10899:29;:16;10920:7;10899:29;:20;:29;:::i;:::-;10883:13;:45;10954:12;10932:19;:34;11002:55;;;;;;;;;;;;;;;;;;;;11039:3;;11012:10;;11002:55;;;;;;;;;10453:608;;;;;:::o;9492:568::-;9634:24;6262:20;:18;:20::i;:::-;9661:21;:19;:21::i;:::-;9634:48;;9729:8;;9718:7;:19;;:50;;;;;9752:16;9741:7;:27;;9718:50;9710:82;;;;;;;-1:-1:-1;;;;;9710:82:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;9797:19;9808:7;9797:10;:19::i;:::-;9887:29;:16;9908:7;9887:29;:20;:29;:::i;:::-;9871:13;:45;9942:12;9920:19;:34;10003:53;;;;;;;;;;;;-1:-1:-1;10003:53:45;;;;;;10040:3;;10013:10;;10003:53;;;;;;;;;9492:568;;;;:::o;2080:832:60:-;2281:29;2183:5;;-1:-1:-1;;;;;2183:5:60;2169:10;:19;;:50;;-1:-1:-1;2193:26:60;;-1:-1:-1;;;2193:26:60;;;;2192:27;2169:50;2161:80;;;;;;;-1:-1:-1;;;;;2161:80:60;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2161:80:60;;;;;;;;;;;;;;;2331:28;2341:17;2331:9;:28::i;:::-;2465:8;;2281:79;;-1:-1:-1;;;;;;2442:32:60;;;2465:8;;2442:32;;;;:61;;-1:-1:-1;;;;;;2478:25:60;;;;2442:61;2434:94;;;;;;;-1:-1:-1;;;;;2434:94:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;2628:40;;;;;;2650:17;2628:40;;;;;;2680:1;;-1:-1:-1;;;;;2628:21:60;;;;;:40;;;;;;;;;;;;;;;2680:1;2628:21;:40;;;5:2:-1;;;;30:1;27;20:12;5:2;2628:40:60;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2628:40:60;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2628:40:60;-1:-1:-1;;;;;2628:54:60;;;2620:87;;;;;-1:-1:-1;;;;;2620:87:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;2799:8;;;2784:12;:23;;-1:-1:-1;;;;;2799:8:60;;;-1:-1:-1;;2784:23:60;;;;;;;2886:22;;;;;;;;;;;2080:832::o;1834:37:45:-;;;;:::o;1304:30::-;;;;:::o;1166:34::-;1199:1;1166:34;:::o;1077:194:71:-;575:12:66;:10;:12::i;:::-;1190:6:71;475:23:72;489:8;475:13;:23::i;:::-;1211:3:71;475:23:72;489:8;475:13;:23::i;:::-;1224:3:71;782:18:72;791:8;782;:18::i;:::-;1233:34:71;1246:6;1254:3;1259:7;1233:12;:34::i;:::-;502:1:72;;591::66;1077:194:71;;;:::o;1165:37:60:-;;;-1:-1:-1;;;;;1165:37:60;;:::o;11576:1619:45:-;11996:23;6005:15;:13;:15::i;:::-;6516:19;:17;:19::i;:::-;11749:3;475:23:72;489:8;475:13;:23::i;:::-;11770:7:45;180:24:72;197:6;180:16;:24::i;:::-;11868:18:45;;;;:11;:18;;;;;;;;11887:10;11868:30;;;;;;;;;;11867:31;11859:64;;;;;-1:-1:-1;;;;;11859:64:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;11954:18;;;;:11;:18;;;;;;;;11973:10;11954:30;;;;;;;:37;;-1:-1:-1;;11954:37:45;11987:4;11954:37;;;12022:19;;;:12;:19;;;;;12120:16;;;;12022:19;;-1:-1:-1;;;;12120:16:45;;11954:37;12120:16;:21;12116:595;;;12148:6;;;:12;;-1:-1:-1;;12148:12:45;-1:-1:-1;;;;;12148:12:45;;;;;12165:20;;;-1:-1:-1;12190:18:45;;:36;;;12236:17;;12232:208;;12333:28;;;;:14;:28;;;;;;:33;12325:67;;;;;-1:-1:-1;;;;;12325:67:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;12398:28;;;;:14;:28;;;;;:36;;;12232:208;12116:595;;;12507:6;;;;-1:-1:-1;;;;;12507:13:45;;;:6;;:13;:38;;;;-1:-1:-1;12524:10:45;;:21;;12507:38;:79;;;;-1:-1:-1;12549:18:45;;;;:37;;12507:79;12499:107;;;;;;;-1:-1:-1;;;;;12499:107:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;12616:17;;12612:94;;12643:28;;;;:14;:28;;;;;;:37;;12635:71;;;;;-1:-1:-1;;;;;12635:71:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;12752:16;;;:18;;;;-1:-1:-1;;;12752:18:45;;;;;;;;;;;-1:-1:-1;;12752:18:45;;;;;;12780:72;;;;;;;;;;;;-1:-1:-1;;;;;12780:72:45;;;;;;;;;;;;;;;;;;;;12789:10;;12780:72;;;;;;;;;;12934:18;;12914:16;;;;12934:18;;;;-1:-1:-1;;;12914:16:45;;;;;;:38;12910:282;;12968:19;;;;:12;:19;;;;;:29;;;-1:-1:-1;;;12968:29:45;;;;12967:30;12959:67;;;;;-1:-1:-1;;;;;12959:67:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;13071:19;;;;:12;:19;;;;;;;;;:29;;:36;;-1:-1:-1;;13071:36:45;-1:-1:-1;;;13071:36:45;;;13118;;-1:-1:-1;;;;;13118:36:45;;;;;;;;;;;;;;;;;;;;;;;13160:27;13174:3;13179:7;13160:13;:27::i;:::-;502:1:72;6539::45;11576:1619;;;;;;:::o;7193:228::-;575:12:66;:10;:12::i;:::-;7266:9:45;180:24:72;197:6;180:16;:24::i;:::-;7322:12:45;;7309:9;:25;;:57;;;;;7351:15;;7338:9;:28;;7309:57;7301:91;;;;;;;-1:-1:-1;;;;;7301:91:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7397:8:45;:20;7193:228::o;1672:31::-;;;;:::o;1159:176:66:-;1219:8;;-1:-1:-1;;;;;1219:8:66;1205:10;:22;1197:52;;;;;-1:-1:-1;;;;;1197:52:66;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1197:52:66;;;;;;;;;;;;;;;1277:8;;;1270:5;;1258:28;;-1:-1:-1;;;;;1277:8:66;;;;1270:5;;;;1258:28;;;1298:8;;;;1290:16;;-1:-1:-1;;1290:16:66;;;-1:-1:-1;;;;;1298:8:66;;1290:16;;;;1310:21;;;1159:176::o;1085:33:60:-;;;-1:-1:-1;;;;;1085:33:60;;:::o;7749:160:45:-;575:12:66;:10;:12::i;:::-;7840:19:45;135:78:72;;180:24;197:6;180:16;:24::i;:::-;-1:-1:-1;7865:18:45;:40;;-1:-1:-1;;7865:40:45;;;;;;;;;;;;7749:160::o;2452:63::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;157:20:66:-;;;-1:-1:-1;;;;;157:20:66;;:::o;2148:35:45:-;;;;;;;;;:::o;2257:51::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2257:51:45;;;;-1:-1:-1;;;2257:51:45;;;;;-1:-1:-1;;;2257:51:45;;;;:::o;7507:152::-;575:12:66;:10;:12::i;:::-;7596:17:45;180:24:72;197:6;180:16;:24::i;:::-;-1:-1:-1;7619:16:45;:36;7507:152::o;8352:92::-;575:12:66;:10;:12::i;:::-;8413:17:45;:27;;;;;-1:-1:-1;;;8413:27:45;-1:-1:-1;;8413:27:45;;;;;;;;;8352:92::o;1204:27::-;;;;:::o;13555:347::-;13640:7;13693:30;;:::i;:::-;-1:-1:-1;13726:42:45;13739:28;;;:14;:28;;;;;;;;;13726:42;;:12;:42;;;;;;13693:75;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13693:75:45;;;;;;;;;;-1:-1:-1;;;13693:75:45;;;;;;;;-1:-1:-1;;;13693:75:45;;;;;;;;;;;;;;13826:22;;;;13818:50;;;;;-1:-1:-1;;;;;13818:50:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;13880:18;;;-1:-1:-1;13555:347:45;;;;;;:::o;6760:132::-;575:12:66;:10;:12::i;:::-;6841:13:45;180:24:72;197:6;180:16;:24::i;:::-;-1:-1:-1;6860:12:45;:28;6760:132::o;2974:119:60:-;575:12:66;:10;:12::i;:::-;3077::60;;3066:8;:23;;-1:-1:-1;;3066:23:60;-1:-1:-1;;;;;3077:12:60;;;3066:23;;;;;;2974:119::o;6976:147:45:-;575:12:66;:10;:12::i;:::-;7063:16:45;180:24:72;197:6;180:16;:24::i;:::-;-1:-1:-1;7085:15:45;:34;6976:147::o;1926:31::-;;;;;;:::o;180:23:66:-;;;-1:-1:-1;;;;;180:23:66;;:::o;8108:109:45:-;575:12:66;:10;:12::i;:::-;-1:-1:-1;;;;;8183:20:45;;;;;;;;:9;:20;;;;;:30;;-1:-1:-1;;8183:30:45;;;;;;;;;;8108:109::o;2336:49::-;;;;;;;;;;;;;:::o;8587:90::-;575:12:66;:10;:12::i;:::-;8647:16:45;:26;;;;;;;-1:-1:-1;;8647:26:45;;;;;;;;;8587:90::o;945:140:66:-;575:12;:10;:12::i;:::-;1033:5;;-1:-1:-1;;;;;1020:18:66;;;1033:5;;1020:18;;1012:45;;;;;-1:-1:-1;;;;;1012:45:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;1061:8;:20;;-1:-1:-1;;1061:20:66;-1:-1:-1;;;;;1061:20:66;;;;;;;;;;945:140::o;1588:31:45:-;;;;:::o;2060:36::-;;;-1:-1:-1;;;2060:36:45;;;;;:::o;2017:24::-;;;;;;-1:-1:-1;;;;;2017:24:45;;:::o;642:93:66:-;704:5;;-1:-1:-1;;;;;704:5:66;690:10;:19;682:49;;;;;-1:-1:-1;;;;;682:49:66;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;682:49:66;;;;;;;;;;;;;;;642:93::o;3647:122:60:-;3732:8;;:33;;;;;;;;;;;;;;3712:7;;-1:-1:-1;;;;;3732:8:60;;:18;;:33;;;;;;;;;;;;;;3712:7;3732:8;:33;;;5:2:-1;;;;30:1;27;20:12;5:2;3732:33:60;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3732:33:60;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3732:33:60;;3647:122;-1:-1:-1;;3647:122:60:o;613:129:69:-;673:7;694:8;;;;686:34;;;;;-1:-1:-1;;;;;686:34:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;731:7:69;;;613:129::o;924:197::-;984:7;;1023;;1019:21;;;1039:1;1032:8;;;;1019:21;-1:-1:-1;1057:7:69;;;1062:2;1057;:7;1076:6;;;;;;;;:12;1068:37;;;;;-1:-1:-1;;;;;1068:37:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;1116:1;924:197;-1:-1:-1;;;924:197:69:o;288:144::-;348:7;373;;;392;;;;384:32;;;;;-1:-1:-1;;;;;384:32:69;;;;;;;;;;;;;;;;;;;;;;;;;;;6337:94:45;6393:17;;-1:-1:-1;;;6393:17:45;;;;6385:42;;;;;;;-1:-1:-1;;;;;6385:42:45;;;;;;;;;;;;;;;;;;;;;;;;;;;15064:152;15130:5;;15113:59;;15130:5;;;-1:-1:-1;;;;;15130:5:45;15137:10;15157:4;15164:7;15113:16;:59::i;:::-;15181:31;;;;;;;;15192:10;;15181:31;;;;;;;;;;15064:152;:::o;553:117:72:-;-1:-1:-1;;;;;620:22:72;;;;612:54;;;;;-1:-1:-1;;;;;612:54:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;553:117;:::o;855:115::-;-1:-1:-1;;;;;917:25:72;;937:4;917:25;;909:57;;;;;-1:-1:-1;;;;;909:57:72;;;;;;;;;;;;;;;;;;;;;;;;;;;1214:173:70;248:38;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1323:59:70;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;1323:59:70;;;;;;;;25:18:-1;;61:17;;1323:59:70;182:15:-1;-1:-1;;1323:59:70;;;179:29:-1;;;;160:49;;;1307:76:70;;1315:6;;1307:7;:76::i;:::-;1214:173;;;:::o;6075:98:45:-;6136:10;6126:21;;;;:9;:21;;;;;;;;6118:51;;;;;;;-1:-1:-1;;;;;6118:51:45;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;6118:51:45;;;;;;;;;;;;;;6590:92;6645:16;;;;;;;6637:41;;;;;;;-1:-1:-1;;;;;6637:41:45;;;;;;;;;;;;;;;;;;;;;;;;;;;259:101:72;336:1;327:10;;319:37;;;;;-1:-1:-1;;;;;319:37:72;;;;;;;;;;;;;;;;;;;;;;;;;;;15401:520:45;15501:27;15531:24;:22;:24::i;:::-;15501:54;;15579:8;;15568:7;:19;;:53;;;;;15602:19;15591:7;:30;;15568:53;15560:85;;;;;;;-1:-1:-1;;;;;15560:85:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;15725:32;:19;15749:7;15725:32;:23;:32;:::i;:::-;15706:16;:51;15786:12;15761:22;:37;15860:5;;15847:33;;15860:5;;;-1:-1:-1;;;;;15860:5:45;15867:3;15872:7;15847:12;:33::i;:::-;15890:27;;;;;;;;-1:-1:-1;;;;;15890:27:45;;;;;;;;;;;;;15401:520;;;:::o;1740:206:70:-;351:50;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1870:71:70;;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;1870:71:70;;;;;;;25:18:-1;;61:17;;1870:71:70;182:15:-1;-1:-1;;1870:71:70;;;179:29:-1;;;;160:49;;;1854:88:70;;1862:6;;1854:7;:88::i;:::-;1740:206;;;;:::o;2255:557::-;2324:21;;:::i;:::-;:36;;;;;;;;;2357:1;2324:36;;;;;2687:2;2661:3;2580:5;2574:12;2495:2;2488:5;2484:14;2465:1;2430:6;2404:3;2394:317;2725:7;2718:15;2715:2;;;2750:1;2747;2740:12;2715:2;-1:-1:-1;2773:6:70;;:11;;2765:43;;;;;-1:-1:-1;;;;;2765:43:70;;;;;;;;;;;;;;;;;;;;;;;;;;;835:15088:45;;;;;;;;;-1:-1:-1;835:15088:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;-1:-1;835:15088:45;;;-1:-1:-1;;835:15088:45:o" + }, + "methodIdentifiers": { + "acceptOwnership()": "79ba5097", + "enableReporting(bool)": "ed1d73a6", + "enableXTransfers(bool)": "a5c670ca", + "getCurrentLockLimit()": "19967439", + "getCurrentReleaseLimit()": "1e04a593", + "getXTransferAmount(uint256,address)": "aafd6b76", + "limitIncPerBlock()": "72f43d19", + "maxLockLimit()": "a8c36a90", + "maxReleaseLimit()": "52e94ce3", + "minLimit()": "1fd8088d", + "minRequiredReports()": "ca27e011", + "newOwner()": "d4ee1d90", + "onlyOwnerCanUpdateRegistry()": "2fe8a6ad", + "owner()": "8da5cb5b", + "prevLockBlockNumber()": "1aff29eb", + "prevLockLimit()": "16c76c27", + "prevRegistry()": "61cd756e", + "prevReleaseBlockNumber()": "4b3e475c", + "prevReleaseLimit()": "f7385f76", + "registry()": "7b103999", + "reportTx(bytes32,uint256,address,uint256,uint256)": "6dc6a01b", + "reportedTxs(uint256,address)": "8544c52d", + "reporters(address)": "2cc1cd9e", + "reportingEnabled()": "9390701c", + "restoreRegistry()": "b4a176d3", + "restrictRegistryUpdate(bool)": "024c7ec7", + "setLimitIncPerBlock(uint256)": "a50c326c", + "setMaxLockLimit(uint256)": "af2b9618", + "setMaxReleaseLimit(uint256)": "bf28ece4", + "setMinLimit(uint256)": "6ec6d4a6", + "setMinRequiredReports(uint8)": "7b15879c", + "setReporter(address,bool)": "e1bb5133", + "token()": "fc0c546a", + "transactionIds(uint256)": "e36f8dc5", + "transactions(uint256)": "9ace38c2", + "transferOwnership(address)": "f2fde38b", + "updateRegistry()": "49d10b64", + "upgrade(address[])": "0183592b", + "version()": "54fd4d50", + "withdrawTokens(address,address,uint256)": "5e35359e", + "xTransfer(bytes32,bytes32,uint256)": "49282538", + "xTransfer(bytes32,bytes32,uint256,uint256)": "427c0374", + "xTransfersEnabled()": "fbb24692" + } + }, + "userdoc": { + "methods": {} + } + } + }, + "solidity/contracts/sovrynswapx/XTransferRerouter.sol": { + "XTransferRerouter": { + "abi": [ + { + "constant": false, + "inputs": [], + "name": "acceptOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "owner", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_enable", + "type": "bool" + } + ], + "name": "enableRerouting", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "newOwner", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_txId", + "type": "uint256" + }, + { + "name": "_blockchain", + "type": "bytes32" + }, + { + "name": "_to", + "type": "bytes32" + } + ], + "name": "rerouteTx", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "reroutingEnabled", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "name": "_reroutingEnabled", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "_txId", + "type": "uint256" + }, + { + "indexed": false, + "name": "_toBlockchain", + "type": "bytes32" + }, + { + "indexed": false, + "name": "_to", + "type": "bytes32" + } + ], + "name": "TxReroute", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "_prevOwner", + "type": "address" + }, + { + "indexed": true, + "name": "_newOwner", + "type": "address" + } + ], + "name": "OwnerUpdate", + "type": "event" + } + ], + "devdoc": { + "methods": { + "acceptOwnership()": { + "details": "used by a new owner to accept an ownership transfer" + }, + "enableRerouting(bool)": { + "details": "allows the owner to disable/enable rerouting", + "params": { + "_enable": "true to enable, false to disable" + } + }, + "rerouteTx(uint256,bytes32,bytes32)": { + "details": "allows a user to reroute a transaction to a new blockchain/target address", + "params": { + "_blockchain": "the new blockchain name", + "_to": "the new target address/account", + "_txId": "the original transaction id" + } + }, + "transferOwnership(address)": { + "details": "allows transferring the contract ownership the new owner still needs to accept the transfer can only be called by the contract owner", + "params": { + "_newOwner": "new contract owner" + } + } + } + }, + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b5060405160208061051b833981016040525160008054600160a060020a0319163317905560018054911515740100000000000000000000000000000000000000000260a060020a60ff02199092169190911790556104a8806100736000396000f3006080604052600436106100825763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166379ba509781146100875780638da5cb5b1461009e578063a3ebe71c146100cf578063d4ee1d90146100e9578063e3db16f7146100fe578063edd63c351461011c578063f2fde38b14610145575b600080fd5b34801561009357600080fd5b5061009c610166565b005b3480156100aa57600080fd5b506100b3610239565b60408051600160a060020a039092168252519081900360200190f35b3480156100db57600080fd5b5061009c6004351515610248565b3480156100f557600080fd5b506100b3610290565b34801561010a57600080fd5b5061009c60043560243560443561029f565b34801561012857600080fd5b506101316102e6565b604080519115158252519081900360200190f35b34801561015157600080fd5b5061009c600160a060020a0360043516610307565b600154600160a060020a031633146101c8576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b60015460008054604051600160a060020a0393841693909116917f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91a3600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b600054600160a060020a031681565b6102506103a4565b60018054911515740100000000000000000000000000000000000000000274ff000000000000000000000000000000000000000019909216919091179055565b600154600160a060020a031681565b6102a7610408565b6040805183815260208101839052815185927fb5c80f971fb729e469ffa874c60425659ce82cb4adcfba9731af35ef87b6e619928290030190a2505050565b60015474010000000000000000000000000000000000000000900460ff1681565b61030f6103a4565b600054600160a060020a0382811691161415610375576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f53414d455f4f574e4552000000000000000000000000000000000000604482015290519081900360640190fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600054600160a060020a03163314610406576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b565b60015474010000000000000000000000000000000000000000900460ff161515610406576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f44495341424c45440000000000000000000000000000000000000000604482015290519081900360640190fd00a165627a7a723058202be84313e0e97231d23ea0292a2be1ddf372aa1933ccbb2d64443ecbf191ccf70029", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP1 PUSH2 0x51B DUP4 CODECOPY DUP2 ADD PUSH1 0x40 MSTORE MLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND CALLER OR SWAP1 SSTORE PUSH1 0x1 DUP1 SLOAD SWAP2 ISZERO ISZERO PUSH21 0x10000000000000000000000000000000000000000 MUL PUSH1 0xA0 PUSH1 0x2 EXP PUSH1 0xFF MUL NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x4A8 DUP1 PUSH2 0x73 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x82 JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x79BA5097 DUP2 EQ PUSH2 0x87 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x9E JUMPI DUP1 PUSH4 0xA3EBE71C EQ PUSH2 0xCF JUMPI DUP1 PUSH4 0xD4EE1D90 EQ PUSH2 0xE9 JUMPI DUP1 PUSH4 0xE3DB16F7 EQ PUSH2 0xFE JUMPI DUP1 PUSH4 0xEDD63C35 EQ PUSH2 0x11C JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x145 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x93 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x9C PUSH2 0x166 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xAA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB3 PUSH2 0x239 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xDB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x9C PUSH1 0x4 CALLDATALOAD ISZERO ISZERO PUSH2 0x248 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xF5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB3 PUSH2 0x290 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x10A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x9C PUSH1 0x4 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH1 0x44 CALLDATALOAD PUSH2 0x29F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x128 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x131 PUSH2 0x2E6 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x151 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x9C PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x307 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x1C8 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND SWAP4 SWAP1 SWAP2 AND SWAP2 PUSH32 0x343765429AEA5A34B3FF6A3785A98A5ABB2597ACA87BFBB58632C173D585373A SWAP2 LOG3 PUSH1 0x1 DUP1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND OR SWAP1 SWAP2 SSTORE AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH2 0x250 PUSH2 0x3A4 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD SWAP2 ISZERO ISZERO PUSH21 0x10000000000000000000000000000000000000000 MUL PUSH21 0xFF0000000000000000000000000000000000000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH2 0x2A7 PUSH2 0x408 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP4 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP4 SWAP1 MSTORE DUP2 MLOAD DUP6 SWAP3 PUSH32 0xB5C80F971FB729E469FFA874C60425659CE82CB4ADCFBA9731AF35EF87B6E619 SWAP3 DUP3 SWAP1 SUB ADD SWAP1 LOG2 POP POP POP JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH2 0x30F PUSH2 0x3A4 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x375 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F4F574E4552000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x406 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO PUSH2 0x406 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F44495341424C45440000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 0x2b 0xe8 NUMBER SGT 0xe0 0xe9 PUSH19 0x31D23EA0292A2BE1DDF372AA1933CCBB2D6444 RETURNDATACOPY 0xcb CALL SWAP2 0xcc 0xf7 STOP 0x29 ", + "sourceMap": "56:1302:46:-;;;398:87;8:9:-1;5:2;;;30:1;27;20:12;5:2;398:87:46;;;;;;;;;;;;;488:5:66;:18;;-1:-1:-1;;;;;;488:18:66;496:10;488:18;;;;445:36:46;;;;;;;-1:-1:-1;;;;;;445:36:46;;;;;;;;;56:1302;;;;;;" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "6080604052600436106100825763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166379ba509781146100875780638da5cb5b1461009e578063a3ebe71c146100cf578063d4ee1d90146100e9578063e3db16f7146100fe578063edd63c351461011c578063f2fde38b14610145575b600080fd5b34801561009357600080fd5b5061009c610166565b005b3480156100aa57600080fd5b506100b3610239565b60408051600160a060020a039092168252519081900360200190f35b3480156100db57600080fd5b5061009c6004351515610248565b3480156100f557600080fd5b506100b3610290565b34801561010a57600080fd5b5061009c60043560243560443561029f565b34801561012857600080fd5b506101316102e6565b604080519115158252519081900360200190f35b34801561015157600080fd5b5061009c600160a060020a0360043516610307565b600154600160a060020a031633146101c8576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b60015460008054604051600160a060020a0393841693909116917f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91a3600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b600054600160a060020a031681565b6102506103a4565b60018054911515740100000000000000000000000000000000000000000274ff000000000000000000000000000000000000000019909216919091179055565b600154600160a060020a031681565b6102a7610408565b6040805183815260208101839052815185927fb5c80f971fb729e469ffa874c60425659ce82cb4adcfba9731af35ef87b6e619928290030190a2505050565b60015474010000000000000000000000000000000000000000900460ff1681565b61030f6103a4565b600054600160a060020a0382811691161415610375576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f53414d455f4f574e4552000000000000000000000000000000000000604482015290519081900360640190fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600054600160a060020a03163314610406576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b565b60015474010000000000000000000000000000000000000000900460ff161515610406576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f44495341424c45440000000000000000000000000000000000000000604482015290519081900360640190fd00a165627a7a723058202be84313e0e97231d23ea0292a2be1ddf372aa1933ccbb2d64443ecbf191ccf70029", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x82 JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x79BA5097 DUP2 EQ PUSH2 0x87 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x9E JUMPI DUP1 PUSH4 0xA3EBE71C EQ PUSH2 0xCF JUMPI DUP1 PUSH4 0xD4EE1D90 EQ PUSH2 0xE9 JUMPI DUP1 PUSH4 0xE3DB16F7 EQ PUSH2 0xFE JUMPI DUP1 PUSH4 0xEDD63C35 EQ PUSH2 0x11C JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x145 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x93 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x9C PUSH2 0x166 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xAA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB3 PUSH2 0x239 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xDB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x9C PUSH1 0x4 CALLDATALOAD ISZERO ISZERO PUSH2 0x248 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xF5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB3 PUSH2 0x290 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x10A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x9C PUSH1 0x4 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH1 0x44 CALLDATALOAD PUSH2 0x29F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x128 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x131 PUSH2 0x2E6 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x151 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x9C PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x307 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x1C8 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND SWAP4 SWAP1 SWAP2 AND SWAP2 PUSH32 0x343765429AEA5A34B3FF6A3785A98A5ABB2597ACA87BFBB58632C173D585373A SWAP2 LOG3 PUSH1 0x1 DUP1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND OR SWAP1 SWAP2 SSTORE AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH2 0x250 PUSH2 0x3A4 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD SWAP2 ISZERO ISZERO PUSH21 0x10000000000000000000000000000000000000000 MUL PUSH21 0xFF0000000000000000000000000000000000000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH2 0x2A7 PUSH2 0x408 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP4 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP4 SWAP1 MSTORE DUP2 MLOAD DUP6 SWAP3 PUSH32 0xB5C80F971FB729E469FFA874C60425659CE82CB4ADCFBA9731AF35EF87B6E619 SWAP3 DUP3 SWAP1 SUB ADD SWAP1 LOG2 POP POP POP JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH2 0x30F PUSH2 0x3A4 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x375 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F4F574E4552000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x406 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO PUSH2 0x406 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F44495341424C45440000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 0x2b 0xe8 NUMBER SGT 0xe0 0xe9 PUSH19 0x31D23EA0292A2BE1DDF372AA1933CCBB2D6444 RETURNDATACOPY 0xcb CALL SWAP2 0xcc 0xf7 STOP 0x29 ", + "sourceMap": "56:1302:46:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1159:176:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1159:176:66;;;;;;157:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;157:20:66;;;;;;;;-1:-1:-1;;;;;157:20:66;;;;;;;;;;;;;;612:90:46;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;612:90:46;;;;;;;180:23:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;180:23:66;;;;1208:148:46;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1208:148:46;;;;;;;;;95:28;;8:9:-1;5:2;;;30:1;27;20:12;5:2;95:28:46;;;;;;;;;;;;;;;;;;;;;;945:140:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;945:140:66;-1:-1:-1;;;;;945:140:66;;;;;1159:176;1219:8;;-1:-1:-1;;;;;1219:8:66;1205:10;:22;1197:52;;;;;-1:-1:-1;;;;;1197:52:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;1277:8;;;1270:5;;1258:28;;-1:-1:-1;;;;;1277:8:66;;;;1270:5;;;;1258:28;;;1298:8;;;;1290:16;;-1:-1:-1;;1290:16:66;;;-1:-1:-1;;;;;1298:8:66;;1290:16;;;;1310:21;;;1159:176::o;157:20::-;;;-1:-1:-1;;;;;157:20:66;;:::o;612:90:46:-;575:12:66;:10;:12::i;:::-;672:16:46;:26;;;;;;;-1:-1:-1;;672:26:46;;;;;;;;;612:90::o;180:23:66:-;;;-1:-1:-1;;;;;180:23:66;;:::o;1208:148:46:-;784:19;:17;:19::i;:::-;1318:34;;;;;;;;;;;;;;1328:5;;1318:34;;;;;;;;1208:148;;;:::o;95:28::-;;;;;;;;;:::o;945:140:66:-;575:12;:10;:12::i;:::-;1033:5;;-1:-1:-1;;;;;1020:18:66;;;1033:5;;1020:18;;1012:45;;;;;-1:-1:-1;;;;;1012:45:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;1061:8;:20;;-1:-1:-1;;1061:20:66;-1:-1:-1;;;;;1061:20:66;;;;;;;;;;945:140::o;642:93::-;704:5;;-1:-1:-1;;;;;704:5:66;690:10;:19;682:49;;;;;-1:-1:-1;;;;;682:49:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;642:93::o;858:92:46:-;913:16;;;;;;;905:41;;;;;;;-1:-1:-1;;;;;905:41:46;;;;;;;;;;;;;;;;;;;;;;;;;;" + }, + "methodIdentifiers": { + "acceptOwnership()": "79ba5097", + "enableRerouting(bool)": "a3ebe71c", + "newOwner()": "d4ee1d90", + "owner()": "8da5cb5b", + "rerouteTx(uint256,bytes32,bytes32)": "e3db16f7", + "reroutingEnabled()": "edd63c35", + "transferOwnership(address)": "f2fde38b" + } + }, + "userdoc": { + "methods": {} + } + } + }, + "solidity/contracts/sovrynswapx/interfaces/ISovrynSwapX.sol": { + "ISovrynSwapX": { + "abi": [ + { + "constant": false, + "inputs": [ + { + "name": "_toBlockchain", + "type": "bytes32" + }, + { + "name": "_to", + "type": "bytes32" + }, + { + "name": "_amount", + "type": "uint256" + }, + { + "name": "_id", + "type": "uint256" + } + ], + "name": "xTransfer", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_xTransferId", + "type": "uint256" + }, + { + "name": "_for", + "type": "address" + } + ], + "name": "getXTransferAmount", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "token", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + } + ], + "devdoc": { + "methods": {} + }, + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "getXTransferAmount(uint256,address)": "aafd6b76", + "token()": "fc0c546a", + "xTransfer(bytes32,bytes32,uint256,uint256)": "427c0374" + } + }, + "userdoc": { + "methods": {} + } + } + }, + "solidity/contracts/sovrynswapx/interfaces/ISovrynSwapXUpgrader.sol": { + "ISovrynSwapXUpgrader": { + "abi": [ + { + "constant": false, + "inputs": [ + { + "name": "_version", + "type": "uint16" + }, + { + "name": "_reporters", + "type": "address[]" + } + ], + "name": "upgrade", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ], + "devdoc": { + "methods": {} + }, + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "upgrade(uint16,address[])": "546872cc" + } + }, + "userdoc": { + "methods": {} + } + } + }, + "solidity/contracts/token/ERC20Token.sol": { + "ERC20Token": { + "abi": [ + { + "constant": true, + "inputs": [], + "name": "name", + "outputs": [ + { + "name": "", + "type": "string" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_spender", + "type": "address" + }, + { + "name": "_value", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "name": "success", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_from", + "type": "address" + }, + { + "name": "_to", + "type": "address" + }, + { + "name": "_value", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "name": "success", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "decimals", + "outputs": [ + { + "name": "", + "type": "uint8" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "symbol", + "outputs": [ + { + "name": "", + "type": "string" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_to", + "type": "address" + }, + { + "name": "_value", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "name": "success", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "", + "type": "address" + }, + { + "name": "", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "name": "_name", + "type": "string" + }, + { + "name": "_symbol", + "type": "string" + }, + { + "name": "_decimals", + "type": "uint8" + }, + { + "name": "_totalSupply", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "_from", + "type": "address" + }, + { + "indexed": true, + "name": "_to", + "type": "address" + }, + { + "indexed": false, + "name": "_value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "_owner", + "type": "address" + }, + { + "indexed": true, + "name": "_spender", + "type": "address" + }, + { + "indexed": false, + "name": "_value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + } + ], + "devdoc": { + "methods": { + "approve(address,uint256)": { + "details": "allows another account/contract to transfers tokens on behalf of the caller throws on any error rather then return a false flag to minimize user errors\t * also, to minimize the risk of the approve/transferFrom attack vector (see https://docs.google.com/document/d/1YLPtQxZu1UAvO9cZ1O2RPXBbT0mooh4DYKjA_jp-RLM/), approve has to be called twice in 2 separate transactions - once to change the allowance to 0 and secondly to change it to the new allowance value", + "params": { + "_spender": "approved address", + "_value": "allowance amount" + }, + "return": "true if the approval was successful, false if it wasn't" + }, + "transfer(address,uint256)": { + "details": "transfers tokens to a given address throws on any error rather then return a false flag to minimize user errors", + "params": { + "_to": "target address", + "_value": "transfer amount" + }, + "return": "true if the transfer was successful, false if it wasn't" + }, + "transferFrom(address,address,uint256)": { + "details": "transfers tokens to a given address on behalf of another address throws on any error rather then return a false flag to minimize user errors", + "params": { + "_from": "source address", + "_to": "target address", + "_value": "transfer amount" + }, + "return": "true if the transfer was successful, false if it wasn't" + } + } + }, + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b506040516109d43803806109d4833981016040908152815160208301519183015160608401519184018051909493909301929091906000106100b357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f4552525f494e56414c49445f4e414d4500000000000000000000000000000000604482015290519081900360640190fd5b825160001061012357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f4552525f494e56414c49445f53594d424f4c0000000000000000000000000000604482015290519081900360640190fd5b835161013690600090602087019061017d565b50825161014a90600190602086019061017d565b506002805460ff191660ff9390931692909217909155600381905533600090815260046020526040902055506102189050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106101be57805160ff19168380011785556101eb565b828001600101855582156101eb579182015b828111156101eb5782518255916020019190600101906101d0565b506101f79291506101fb565b5090565b61021591905b808211156101f75760008155600101610201565b90565b6107ad806102276000396000f3006080604052600436106100985763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde03811461009d578063095ea7b31461012757806318160ddd1461015f57806323b872dd14610186578063313ce567146101b057806370a08231146101db57806395d89b41146101fc578063a9059cbb14610211578063dd62ed3e14610235575b600080fd5b3480156100a957600080fd5b506100b261025c565b6040805160208082528351818301528351919283929083019185019080838360005b838110156100ec5781810151838201526020016100d4565b50505050905090810190601f1680156101195780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561013357600080fd5b5061014b600160a060020a03600435166024356102ea565b604080519115158252519081900360200190f35b34801561016b57600080fd5b506101746103e2565b60408051918252519081900360200190f35b34801561019257600080fd5b5061014b600160a060020a03600435811690602435166044356103e8565b3480156101bc57600080fd5b506101c561050b565b6040805160ff9092168252519081900360200190f35b3480156101e757600080fd5b50610174600160a060020a0360043516610514565b34801561020857600080fd5b506100b2610526565b34801561021d57600080fd5b5061014b600160a060020a0360043516602435610580565b34801561024157600080fd5b50610174600160a060020a036004358116906024351661063d565b6000805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156102e25780601f106102b7576101008083540402835291602001916102e2565b820191906000526020600020905b8154815290600101906020018083116102c557829003601f168201915b505050505081565b6000826102f68161065a565b8215806103245750336000908152600560209081526040808320600160a060020a0388168452909152902054155b151561037a576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f494e56414c49445f414d4f554e540000000000000000000000000000604482015290519081900360640190fd5b336000818152600560209081526040808320600160a060020a03891680855290835292819020879055805187815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060019392505050565b60035481565b6000836103f48161065a565b836103fe8161065a565b600160a060020a0386166000908152600560209081526040808320338452909152902054610432908563ffffffff6106bd16565b600160a060020a038716600081815260056020908152604080832033845282528083209490945591815260049091522054610473908563ffffffff6106bd16565b600160a060020a0380881660009081526004602052604080822093909355908716815220546104a8908563ffffffff61071d16565b600160a060020a0380871660008181526004602090815260409182902094909455805188815290519193928a16927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a350600195945050505050565b60025460ff1681565b60046020526000908152604090205481565b60018054604080516020600284861615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156102e25780601f106102b7576101008083540402835291602001916102e2565b60008261058c8161065a565b336000908152600460205260409020546105ac908463ffffffff6106bd16565b3360009081526004602052604080822092909255600160a060020a038616815220546105de908463ffffffff61071d16565b600160a060020a0385166000818152600460209081526040918290209390935580518681529051919233927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35060019392505050565b600560209081526000928352604080842090915290825290205481565b600160a060020a03811615156106ba576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b50565b600081831015610717576040805160e560020a62461bcd02815260206004820152600d60248201527f4552525f554e444552464c4f5700000000000000000000000000000000000000604482015290519081900360640190fd5b50900390565b60008282018381101561077a576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b93925050505600a165627a7a72305820f983e55dd5027ec2e284b0b3f527b365b85a38996efb27c657a54a4a308d06d40029", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x9D4 CODESIZE SUB DUP1 PUSH2 0x9D4 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 SWAP1 DUP2 MSTORE DUP2 MLOAD PUSH1 0x20 DUP4 ADD MLOAD SWAP2 DUP4 ADD MLOAD PUSH1 0x60 DUP5 ADD MLOAD SWAP2 DUP5 ADD DUP1 MLOAD SWAP1 SWAP5 SWAP4 SWAP1 SWAP4 ADD SWAP3 SWAP1 SWAP2 SWAP1 PUSH1 0x0 LT PUSH2 0xB3 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4E414D4500000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP3 MLOAD PUSH1 0x0 LT PUSH2 0x123 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F53594D424F4C0000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP4 MLOAD PUSH2 0x136 SWAP1 PUSH1 0x0 SWAP1 PUSH1 0x20 DUP8 ADD SWAP1 PUSH2 0x17D JUMP JUMPDEST POP DUP3 MLOAD PUSH2 0x14A SWAP1 PUSH1 0x1 SWAP1 PUSH1 0x20 DUP7 ADD SWAP1 PUSH2 0x17D JUMP JUMPDEST POP PUSH1 0x2 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0xFF SWAP4 SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 SSTORE PUSH1 0x3 DUP2 SWAP1 SSTORE CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE POP PUSH2 0x218 SWAP1 POP JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH1 0x1F LT PUSH2 0x1BE JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH2 0x1EB JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x1EB JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x1EB JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x1D0 JUMP JUMPDEST POP PUSH2 0x1F7 SWAP3 SWAP2 POP PUSH2 0x1FB JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH2 0x215 SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x1F7 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x201 JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH2 0x7AD DUP1 PUSH2 0x227 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x98 JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x6FDDE03 DUP2 EQ PUSH2 0x9D JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x127 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x15F JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x186 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x1B0 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x1DB JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x1FC JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x211 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x235 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB2 PUSH2 0x25C JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP4 MLOAD DUP2 DUP4 ADD MSTORE DUP4 MLOAD SWAP2 SWAP3 DUP4 SWAP3 SWAP1 DUP4 ADD SWAP2 DUP6 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xEC JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0xD4 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x119 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x133 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x14B PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x2EA JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x16B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x174 PUSH2 0x3E2 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x192 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x14B PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x3E8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1BC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1C5 PUSH2 0x50B JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1E7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x174 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x514 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x208 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB2 PUSH2 0x526 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x21D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x14B PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x580 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x241 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x174 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH2 0x63D JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x2 PUSH1 0x1 DUP6 AND ISZERO PUSH2 0x100 MUL PUSH1 0x0 NOT ADD SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 DIV PUSH1 0x1F DUP2 ADD DUP5 SWAP1 DIV DUP5 MUL DUP3 ADD DUP5 ADD SWAP1 SWAP3 MSTORE DUP2 DUP2 MSTORE SWAP3 SWAP2 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x2E2 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x2B7 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x2E2 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x2C5 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x2F6 DUP2 PUSH2 0x65A JUMP JUMPDEST DUP3 ISZERO DUP1 PUSH2 0x324 JUMPI POP CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x37A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F414D4F554E540000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST CALLER PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP10 AND DUP1 DUP6 MSTORE SWAP1 DUP4 MSTORE SWAP3 DUP2 SWAP1 KECCAK256 DUP8 SWAP1 SSTORE DUP1 MLOAD DUP8 DUP2 MSTORE SWAP1 MLOAD SWAP3 SWAP4 SWAP3 PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP3 SWAP2 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 DUP4 PUSH2 0x3F4 DUP2 PUSH2 0x65A JUMP JUMPDEST DUP4 PUSH2 0x3FE DUP2 PUSH2 0x65A JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH2 0x432 SWAP1 DUP6 PUSH4 0xFFFFFFFF PUSH2 0x6BD AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE DUP3 MSTORE DUP1 DUP4 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE SWAP2 DUP2 MSTORE PUSH1 0x4 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD PUSH2 0x473 SWAP1 DUP6 PUSH4 0xFFFFFFFF PUSH2 0x6BD AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE SWAP1 DUP8 AND DUP2 MSTORE KECCAK256 SLOAD PUSH2 0x4A8 SWAP1 DUP6 PUSH4 0xFFFFFFFF PUSH2 0x71D AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP8 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE DUP1 MLOAD DUP9 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP4 SWAP3 DUP11 AND SWAP3 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP3 SWAP2 DUP3 SWAP1 SUB ADD SWAP1 LOG3 POP PUSH1 0x1 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x2 DUP5 DUP7 AND ISZERO PUSH2 0x100 MUL PUSH1 0x0 NOT ADD SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 DIV PUSH1 0x1F DUP2 ADD DUP5 SWAP1 DIV DUP5 MUL DUP3 ADD DUP5 ADD SWAP1 SWAP3 MSTORE DUP2 DUP2 MSTORE SWAP3 SWAP2 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x2E2 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x2B7 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x2E2 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x58C DUP2 PUSH2 0x65A JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x5AC SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0x6BD AND JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP3 SWAP1 SWAP3 SSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND DUP2 MSTORE KECCAK256 SLOAD PUSH2 0x5DE SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0x71D AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE DUP1 MLOAD DUP7 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP3 CALLER SWAP3 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0x6BA JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT ISZERO PUSH2 0x717 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F554E444552464C4F5700000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP SWAP1 SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 ADD DUP4 DUP2 LT ISZERO PUSH2 0x77A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 0xf9 DUP4 0xe5 0x5d 0xd5 MUL PUSH31 0xC2E284B0B3F527B365B85A38996EFB27C657A54A4A308D06D4002900000000 ", + "sourceMap": "181:3842:49:-;;;1313:370;8:9:-1;5:2;;;30:1;27;20:12;5:2;1313:370:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1444:19;;1313:370;;;;;;;;;;1466:1;-1:-1:-1;1436:52:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1500:21;;1524:1;-1:-1:-1;1492:56:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1553:12;;;;:4;;:12;;;;;:::i;:::-;-1:-1:-1;1569:16:49;;;;:6;;:16;;;;;:::i;:::-;-1:-1:-1;1589:8:49;:20;;-1:-1:-1;;1589:20:49;;;;;;;;;;;;;1613:11;:26;;;1653:10;-1:-1:-1;1643:21:49;;;:9;:21;;;;;:36;-1:-1:-1;181:3842:49;;-1:-1:-1;181:3842:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;181:3842:49;;;-1:-1:-1;181:3842:49;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "6080604052600436106100985763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde03811461009d578063095ea7b31461012757806318160ddd1461015f57806323b872dd14610186578063313ce567146101b057806370a08231146101db57806395d89b41146101fc578063a9059cbb14610211578063dd62ed3e14610235575b600080fd5b3480156100a957600080fd5b506100b261025c565b6040805160208082528351818301528351919283929083019185019080838360005b838110156100ec5781810151838201526020016100d4565b50505050905090810190601f1680156101195780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561013357600080fd5b5061014b600160a060020a03600435166024356102ea565b604080519115158252519081900360200190f35b34801561016b57600080fd5b506101746103e2565b60408051918252519081900360200190f35b34801561019257600080fd5b5061014b600160a060020a03600435811690602435166044356103e8565b3480156101bc57600080fd5b506101c561050b565b6040805160ff9092168252519081900360200190f35b3480156101e757600080fd5b50610174600160a060020a0360043516610514565b34801561020857600080fd5b506100b2610526565b34801561021d57600080fd5b5061014b600160a060020a0360043516602435610580565b34801561024157600080fd5b50610174600160a060020a036004358116906024351661063d565b6000805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156102e25780601f106102b7576101008083540402835291602001916102e2565b820191906000526020600020905b8154815290600101906020018083116102c557829003601f168201915b505050505081565b6000826102f68161065a565b8215806103245750336000908152600560209081526040808320600160a060020a0388168452909152902054155b151561037a576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f494e56414c49445f414d4f554e540000000000000000000000000000604482015290519081900360640190fd5b336000818152600560209081526040808320600160a060020a03891680855290835292819020879055805187815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060019392505050565b60035481565b6000836103f48161065a565b836103fe8161065a565b600160a060020a0386166000908152600560209081526040808320338452909152902054610432908563ffffffff6106bd16565b600160a060020a038716600081815260056020908152604080832033845282528083209490945591815260049091522054610473908563ffffffff6106bd16565b600160a060020a0380881660009081526004602052604080822093909355908716815220546104a8908563ffffffff61071d16565b600160a060020a0380871660008181526004602090815260409182902094909455805188815290519193928a16927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a350600195945050505050565b60025460ff1681565b60046020526000908152604090205481565b60018054604080516020600284861615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156102e25780601f106102b7576101008083540402835291602001916102e2565b60008261058c8161065a565b336000908152600460205260409020546105ac908463ffffffff6106bd16565b3360009081526004602052604080822092909255600160a060020a038616815220546105de908463ffffffff61071d16565b600160a060020a0385166000818152600460209081526040918290209390935580518681529051919233927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35060019392505050565b600560209081526000928352604080842090915290825290205481565b600160a060020a03811615156106ba576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b50565b600081831015610717576040805160e560020a62461bcd02815260206004820152600d60248201527f4552525f554e444552464c4f5700000000000000000000000000000000000000604482015290519081900360640190fd5b50900390565b60008282018381101561077a576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b93925050505600a165627a7a72305820f983e55dd5027ec2e284b0b3f527b365b85a38996efb27c657a54a4a308d06d40029", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x98 JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x6FDDE03 DUP2 EQ PUSH2 0x9D JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x127 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x15F JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x186 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x1B0 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x1DB JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x1FC JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x211 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x235 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB2 PUSH2 0x25C JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP4 MLOAD DUP2 DUP4 ADD MSTORE DUP4 MLOAD SWAP2 SWAP3 DUP4 SWAP3 SWAP1 DUP4 ADD SWAP2 DUP6 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xEC JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0xD4 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x119 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x133 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x14B PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x2EA JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x16B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x174 PUSH2 0x3E2 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x192 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x14B PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x3E8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1BC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1C5 PUSH2 0x50B JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1E7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x174 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x514 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x208 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB2 PUSH2 0x526 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x21D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x14B PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x580 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x241 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x174 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH2 0x63D JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x2 PUSH1 0x1 DUP6 AND ISZERO PUSH2 0x100 MUL PUSH1 0x0 NOT ADD SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 DIV PUSH1 0x1F DUP2 ADD DUP5 SWAP1 DIV DUP5 MUL DUP3 ADD DUP5 ADD SWAP1 SWAP3 MSTORE DUP2 DUP2 MSTORE SWAP3 SWAP2 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x2E2 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x2B7 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x2E2 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x2C5 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x2F6 DUP2 PUSH2 0x65A JUMP JUMPDEST DUP3 ISZERO DUP1 PUSH2 0x324 JUMPI POP CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x37A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F414D4F554E540000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST CALLER PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP10 AND DUP1 DUP6 MSTORE SWAP1 DUP4 MSTORE SWAP3 DUP2 SWAP1 KECCAK256 DUP8 SWAP1 SSTORE DUP1 MLOAD DUP8 DUP2 MSTORE SWAP1 MLOAD SWAP3 SWAP4 SWAP3 PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP3 SWAP2 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 DUP4 PUSH2 0x3F4 DUP2 PUSH2 0x65A JUMP JUMPDEST DUP4 PUSH2 0x3FE DUP2 PUSH2 0x65A JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH2 0x432 SWAP1 DUP6 PUSH4 0xFFFFFFFF PUSH2 0x6BD AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE DUP3 MSTORE DUP1 DUP4 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE SWAP2 DUP2 MSTORE PUSH1 0x4 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD PUSH2 0x473 SWAP1 DUP6 PUSH4 0xFFFFFFFF PUSH2 0x6BD AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE SWAP1 DUP8 AND DUP2 MSTORE KECCAK256 SLOAD PUSH2 0x4A8 SWAP1 DUP6 PUSH4 0xFFFFFFFF PUSH2 0x71D AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP8 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE DUP1 MLOAD DUP9 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP4 SWAP3 DUP11 AND SWAP3 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP3 SWAP2 DUP3 SWAP1 SUB ADD SWAP1 LOG3 POP PUSH1 0x1 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x2 DUP5 DUP7 AND ISZERO PUSH2 0x100 MUL PUSH1 0x0 NOT ADD SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 DIV PUSH1 0x1F DUP2 ADD DUP5 SWAP1 DIV DUP5 MUL DUP3 ADD DUP5 ADD SWAP1 SWAP3 MSTORE DUP2 DUP2 MSTORE SWAP3 SWAP2 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x2E2 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x2B7 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x2E2 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x58C DUP2 PUSH2 0x65A JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x5AC SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0x6BD AND JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP3 SWAP1 SWAP3 SSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND DUP2 MSTORE KECCAK256 SLOAD PUSH2 0x5DE SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0x71D AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE DUP1 MLOAD DUP7 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP3 CALLER SWAP3 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0x6BA JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT ISZERO PUSH2 0x717 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F554E444552464C4F5700000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP SWAP1 SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 ADD DUP4 DUP2 LT ISZERO PUSH2 0x77A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 0xf9 DUP4 0xe5 0x5d 0xd5 MUL PUSH31 0xC2E284B0B3F527B365B85A38996EFB27C657A54A4A308D06D4002900000000 ", + "sourceMap": "181:3842:49:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;256:18;;8:9:-1;5:2;;;30:1;27;20:12;5:2;256:18:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;256:18:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3601:420;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3601:420:49;-1:-1:-1;;;;;3601:420:49;;;;;;;;;;;;;;;;;;;;;;;;;324:26;;8:9:-1;5:2;;;30:1;27;20:12;5:2;324:26:49;;;;;;;;;;;;;;;;;;;;2581:372;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2581:372:49;-1:-1:-1;;;;;2581:372:49;;;;;;;;;;;;300:21;;8:9:-1;5:2;;;30:1;27;20:12;5:2;300:21:49;;;;;;;;;;;;;;;;;;;;;;;353:44;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;353:44:49;-1:-1:-1;;;;;353:44:49;;;;;277:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;277:20:49;;;;1968:264;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1968:264:49;-1:-1:-1;;;;;1968:264:49;;;;;;;400:64;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;400:64:49;-1:-1:-1;;;;;400:64:49;;;;;;;;;;256:18;;;;;;;;;;;;;;;-1:-1:-1;;256:18:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;3601:420::-;3691:12;3672:8;475:23:72;489:8;475:13;:23::i;:::-;3836:11:49;;;:51;;-1:-1:-1;3861:10:49;3851:21;;;;:9;:21;;;;;;;;-1:-1:-1;;;;;3851:31:49;;;;;;;;;;:36;3836:51;3828:82;;;;;;;-1:-1:-1;;;;;3828:82:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;3925:10;3915:21;;;;:9;:21;;;;;;;;-1:-1:-1;;;;;3915:31:49;;;;;;;;;;;;:40;;;3964:38;;;;;;;3915:31;;3925:10;3964:38;;;;;;;;;;;-1:-1:-1;4013:4:49;;3601:420;-1:-1:-1;;;3601:420:49:o;324:26::-;;;;:::o;2581:372::-;2710:12;2676:5;475:23:72;489:8;475:13;:23::i;:::-;2696:3:49;475:23:72;489:8;475:13;:23::i;:::-;-1:-1:-1;;;;;2759:16:49;;;;;;:9;:16;;;;;;;;2776:10;2759:28;;;;;;;;:40;;2792:6;2759:40;:32;:40;:::i;:::-;-1:-1:-1;;;;;2728:16:49;;;;;;:9;:16;;;;;;;;2745:10;2728:28;;;;;;;:71;;;;2822:16;;;:9;:16;;;;;:28;;2843:6;2822:28;:20;:28;:::i;:::-;-1:-1:-1;;;;;2803:16:49;;;;;;;:9;:16;;;;;;:47;;;;2871:14;;;;;;;:26;;2890:6;2871:26;:18;:26;:::i;:::-;-1:-1:-1;;;;;2854:14:49;;;;;;;:9;:14;;;;;;;;;:43;;;;2906:28;;;;;;;2854:14;;2906:28;;;;;;;;;;;;;-1:-1:-1;2945:4:49;;2581:372;-1:-1:-1;;;;;2581:372:49:o;300:21::-;;;;;;:::o;353:44::-;;;;;;;;;;;;;:::o;277:20::-;;;;;;;;;;;;;;;-1:-1:-1;;277:20:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1968:264;2049:12;2035:3;475:23:72;489:8;475:13;:23::i;:::-;2101:10:49;2091:21;;;;:9;:21;;;;;;:33;;2117:6;2091:33;:25;:33;:::i;:::-;2077:10;2067:21;;;;:9;:21;;;;;;:57;;;;-1:-1:-1;;;;;2145:14:49;;;;;;:26;;2164:6;2145:26;:18;:26;:::i;:::-;-1:-1:-1;;;;;2128:14:49;;;;;;:9;:14;;;;;;;;;:43;;;;2180:33;;;;;;;2128:14;;2189:10;;2180:33;;;;;;;;;;-1:-1:-1;2224:4:49;;1968:264;-1:-1:-1;;;1968:264:49:o;400:64::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;553:117:72:-;-1:-1:-1;;;;;620:22:72;;;;612:54;;;;;-1:-1:-1;;;;;612:54:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;553:117;:::o;613:129:69:-;673:7;694:8;;;;686:34;;;;;-1:-1:-1;;;;;686:34:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;731:7:69;;;613:129::o;288:144::-;348:7;373;;;392;;;;384:32;;;;;-1:-1:-1;;;;;384:32:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;427:1;288:144;-1:-1:-1;;;288:144:69:o" + }, + "methodIdentifiers": { + "allowance(address,address)": "dd62ed3e", + "approve(address,uint256)": "095ea7b3", + "balanceOf(address)": "70a08231", + "decimals()": "313ce567", + "name()": "06fdde03", + "symbol()": "95d89b41", + "totalSupply()": "18160ddd", + "transfer(address,uint256)": "a9059cbb", + "transferFrom(address,address,uint256)": "23b872dd" + } + }, + "userdoc": { + "methods": {} + } + } + }, + "solidity/contracts/token/EtherToken.sol": { + "EtherToken": { + "abi": [ + { + "constant": true, + "inputs": [], + "name": "name", + "outputs": [ + { + "name": "", + "type": "string" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_spender", + "type": "address" + }, + { + "name": "_value", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "name": "success", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_to", + "type": "address" + }, + { + "name": "_amount", + "type": "uint256" + } + ], + "name": "withdrawTo", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_from", + "type": "address" + }, + { + "name": "_to", + "type": "address" + }, + { + "name": "_value", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "name": "success", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_amount", + "type": "uint256" + } + ], + "name": "withdraw", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "decimals", + "outputs": [ + { + "name": "", + "type": "uint8" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "symbol", + "outputs": [ + { + "name": "", + "type": "string" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_to", + "type": "address" + }, + { + "name": "_value", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "name": "success", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_to", + "type": "address" + } + ], + "name": "depositTo", + "outputs": [], + "payable": true, + "stateMutability": "payable", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "deposit", + "outputs": [], + "payable": true, + "stateMutability": "payable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "", + "type": "address" + }, + { + "name": "", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "name": "_name", + "type": "string" + }, + { + "name": "_symbol", + "type": "string" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "payable": true, + "stateMutability": "payable", + "type": "fallback" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "_amount", + "type": "uint256" + } + ], + "name": "Issuance", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "_amount", + "type": "uint256" + } + ], + "name": "Destruction", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "_from", + "type": "address" + }, + { + "indexed": true, + "name": "_to", + "type": "address" + }, + { + "indexed": false, + "name": "_value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "_owner", + "type": "address" + }, + { + "indexed": true, + "name": "_spender", + "type": "address" + }, + { + "indexed": false, + "name": "_value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + } + ], + "devdoc": { + "methods": { + "approve(address,uint256)": { + "details": "allows another account/contract to transfers tokens on behalf of the caller throws on any error rather then return a false flag to minimize user errors\t * also, to minimize the risk of the approve/transferFrom attack vector (see https://docs.google.com/document/d/1YLPtQxZu1UAvO9cZ1O2RPXBbT0mooh4DYKjA_jp-RLM/), approve has to be called twice in 2 separate transactions - once to change the allowance to 0 and secondly to change it to the new allowance value", + "params": { + "_spender": "approved address", + "_value": "allowance amount" + }, + "return": "true if the approval was successful, false if it wasn't" + }, + "deposit()": { + "details": "deposit ether on behalf of the sender" + }, + "depositTo(address)": { + "details": "deposit ether to be entitled for a given account", + "params": { + "_to": "account to be entitled for the ether" + } + }, + "transfer(address,uint256)": { + "details": "send coins throws on any error rather then return a false flag to minimize user errors", + "params": { + "_to": "target address", + "_value": "transfer amount" + }, + "return": "true if the transfer was successful, false if it wasn't" + }, + "transferFrom(address,address,uint256)": { + "details": "an account/contract attempts to get the coins throws on any error rather then return a false flag to minimize user errors", + "params": { + "_from": "source address", + "_to": "target address", + "_value": "transfer amount" + }, + "return": "true if the transfer was successful, false if it wasn't" + }, + "withdraw(uint256)": { + "details": "withdraw ether to the sender's account", + "params": { + "_amount": "amount of ether to withdraw" + } + }, + "withdrawTo(address,uint256)": { + "details": "withdraw ether entitled by the sender to a given account", + "params": { + "_amount": "amount of ether to withdraw", + "_to": "account to receive the ether" + } + } + } + }, + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b50604051610cc1380380610cc183398101604052805160208201519082018051909291909101908290829060129060009081106100ae57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f4552525f494e56414c49445f4e414d4500000000000000000000000000000000604482015290519081900360640190fd5b825160001061011e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f4552525f494e56414c49445f53594d424f4c0000000000000000000000000000604482015290519081900360640190fd5b835161013190600090602087019061017a565b50825161014590600190602086019061017a565b506002805460ff191660ff93909316929092179091556003819055336000908152600460205260409020555061021592505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106101bb57805160ff19168380011785556101e8565b828001600101855582156101e8579182015b828111156101e85782518255916020019190600101906101cd565b506101f49291506101f8565b5090565b61021291905b808211156101f457600081556001016101fe565b90565b610a9d806102246000396000f3006080604052600436106100c45763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde0381146100ce578063095ea7b31461015857806318160ddd14610190578063205c2878146101b757806323b872dd146101db5780632e1a7d4d14610205578063313ce5671461021d57806370a082311461024857806395d89b4114610269578063a9059cbb1461027e578063b760faf9146102a2578063d0e30db0146100c4578063dd62ed3e146102b6575b6100cc6102dd565b005b3480156100da57600080fd5b506100e36102e8565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561011d578181015183820152602001610105565b50505050905090810190601f16801561014a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561016457600080fd5b5061017c600160a060020a0360043516602435610376565b604080519115158252519081900360200190f35b34801561019c57600080fd5b506101a561046e565b60408051918252519081900360200190f35b3480156101c357600080fd5b506100cc600160a060020a0360043516602435610474565b3480156101e757600080fd5b5061017c600160a060020a0360043581169060243516604435610558565b34801561021157600080fd5b506100cc600435610582565b34801561022957600080fd5b5061023261058f565b6040805160ff9092168252519081900360200190f35b34801561025457600080fd5b506101a5600160a060020a0360043516610598565b34801561027557600080fd5b506100e36105aa565b34801561028a57600080fd5b5061017c600160a060020a0360043516602435610604565b6100cc600160a060020a036004351661062c565b3480156102c257600080fd5b506101a5600160a060020a03600435811690602435166106f3565b6102e63361062c565b565b6000805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561036e5780601f106103435761010080835404028352916020019161036e565b820191906000526020600020905b81548152906001019060200180831161035157829003601f168201915b505050505081565b60008261038281610710565b8215806103b05750336000908152600560209081526040808320600160a060020a0388168452909152902054155b1515610406576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f494e56414c49445f414d4f554e540000000000000000000000000000604482015290519081900360640190fd5b336000818152600560209081526040808320600160a060020a03891680855290835292819020879055805187815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060019392505050565b60035481565b8161047e81610770565b3360009081526004602052604090205461049e908363ffffffff6107d116565b336000908152600460205260409020556003546104c1908363ffffffff6107d116565b600355604051600160a060020a0384169083156108fc029084906000818181858888f193505050501580156104fa573d6000803e3d6000fd5b5060408051838152905130913391600080516020610a528339815191529181900360200190a36040805183815290517f9a1b418bc061a5d80270261562e6986a35d995f8051145f277be16103abd34539181900360200190a1505050565b60008261056481610770565b61056f858585610831565b151561057757fe5b506001949350505050565b61058c3382610474565b50565b60025460ff1681565b60046020526000908152604090205481565b60018054604080516020600284861615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561036e5780601f106103435761010080835404028352916020019161036e565b60008261061081610770565b61061a8484610942565b151561062257fe5b5060019392505050565b8061063681610770565b600160a060020a03821660009081526004602052604090205461065f903463ffffffff6109ed16565b600160a060020a03831660009081526004602052604090205560035461068b903463ffffffff6109ed16565b6003556040805134815290517f9386c90217c323f58030f9dadcbc938f807a940f4ff41cd4cead9562f5da7dc39181900360200190a1604080513481529051600160a060020a038416913091600080516020610a528339815191529181900360200190a35050565b600560209081526000928352604080842090915290825290205481565b600160a060020a038116151561058c576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b600160a060020a03811630141561058c576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f414444524553535f49535f53454c4600000000000000000000000000604482015290519081900360640190fd5b60008183101561082b576040805160e560020a62461bcd02815260206004820152600d60248201527f4552525f554e444552464c4f5700000000000000000000000000000000000000604482015290519081900360640190fd5b50900390565b60008361083d81610710565b8361084781610710565b600160a060020a038616600090815260056020908152604080832033845290915290205461087b908563ffffffff6107d116565b600160a060020a0387166000818152600560209081526040808320338452825280832094909455918152600490915220546108bc908563ffffffff6107d116565b600160a060020a0380881660009081526004602052604080822093909355908716815220546108f1908563ffffffff6109ed16565b600160a060020a0380871660008181526004602090815260409182902094909455805188815290519193928a1692600080516020610a5283398151915292918290030190a350600195945050505050565b60008261094e81610710565b3360009081526004602052604090205461096e908463ffffffff6107d116565b3360009081526004602052604080822092909255600160a060020a038616815220546109a0908463ffffffff6109ed16565b600160a060020a038516600081815260046020908152604091829020939093558051868152905191923392600080516020610a528339815191529281900390910190a35060019392505050565b600082820183811015610a4a576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b93925050505600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a723058209b194fe681270843ec21d4151855ee409d3da2083b0350689914f351617de1240029", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0xCC1 CODESIZE SUB DUP1 PUSH2 0xCC1 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 MSTORE DUP1 MLOAD PUSH1 0x20 DUP3 ADD MLOAD SWAP1 DUP3 ADD DUP1 MLOAD SWAP1 SWAP3 SWAP2 SWAP1 SWAP2 ADD SWAP1 DUP3 SWAP1 DUP3 SWAP1 PUSH1 0x12 SWAP1 PUSH1 0x0 SWAP1 DUP2 LT PUSH2 0xAE JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4E414D4500000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP3 MLOAD PUSH1 0x0 LT PUSH2 0x11E JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F53594D424F4C0000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP4 MLOAD PUSH2 0x131 SWAP1 PUSH1 0x0 SWAP1 PUSH1 0x20 DUP8 ADD SWAP1 PUSH2 0x17A JUMP JUMPDEST POP DUP3 MLOAD PUSH2 0x145 SWAP1 PUSH1 0x1 SWAP1 PUSH1 0x20 DUP7 ADD SWAP1 PUSH2 0x17A JUMP JUMPDEST POP PUSH1 0x2 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0xFF SWAP4 SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 SSTORE PUSH1 0x3 DUP2 SWAP1 SSTORE CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE POP PUSH2 0x215 SWAP3 POP POP POP JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH1 0x1F LT PUSH2 0x1BB JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH2 0x1E8 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x1E8 JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x1E8 JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x1CD JUMP JUMPDEST POP PUSH2 0x1F4 SWAP3 SWAP2 POP PUSH2 0x1F8 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH2 0x212 SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x1F4 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x1FE JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH2 0xA9D DUP1 PUSH2 0x224 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0xC4 JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x6FDDE03 DUP2 EQ PUSH2 0xCE JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x158 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x190 JUMPI DUP1 PUSH4 0x205C2878 EQ PUSH2 0x1B7 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x1DB JUMPI DUP1 PUSH4 0x2E1A7D4D EQ PUSH2 0x205 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x21D JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x248 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x269 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x27E JUMPI DUP1 PUSH4 0xB760FAF9 EQ PUSH2 0x2A2 JUMPI DUP1 PUSH4 0xD0E30DB0 EQ PUSH2 0xC4 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x2B6 JUMPI JUMPDEST PUSH2 0xCC PUSH2 0x2DD JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xDA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xE3 PUSH2 0x2E8 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP4 MLOAD DUP2 DUP4 ADD MSTORE DUP4 MLOAD SWAP2 SWAP3 DUP4 SWAP3 SWAP1 DUP4 ADD SWAP2 DUP6 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x11D JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x105 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x14A JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x164 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x17C PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x376 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x19C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A5 PUSH2 0x46E JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1C3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xCC PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x474 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1E7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x17C PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x558 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x211 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xCC PUSH1 0x4 CALLDATALOAD PUSH2 0x582 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x229 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x232 PUSH2 0x58F JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x254 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x598 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x275 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xE3 PUSH2 0x5AA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x28A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x17C PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x604 JUMP JUMPDEST PUSH2 0xCC PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x62C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2C2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH2 0x6F3 JUMP JUMPDEST PUSH2 0x2E6 CALLER PUSH2 0x62C JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x2 PUSH1 0x1 DUP6 AND ISZERO PUSH2 0x100 MUL PUSH1 0x0 NOT ADD SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 DIV PUSH1 0x1F DUP2 ADD DUP5 SWAP1 DIV DUP5 MUL DUP3 ADD DUP5 ADD SWAP1 SWAP3 MSTORE DUP2 DUP2 MSTORE SWAP3 SWAP2 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x36E JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x343 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x36E JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x351 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x382 DUP2 PUSH2 0x710 JUMP JUMPDEST DUP3 ISZERO DUP1 PUSH2 0x3B0 JUMPI POP CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x406 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F414D4F554E540000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST CALLER PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP10 AND DUP1 DUP6 MSTORE SWAP1 DUP4 MSTORE SWAP3 DUP2 SWAP1 KECCAK256 DUP8 SWAP1 SSTORE DUP1 MLOAD DUP8 DUP2 MSTORE SWAP1 MLOAD SWAP3 SWAP4 SWAP3 PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP3 SWAP2 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST DUP2 PUSH2 0x47E DUP2 PUSH2 0x770 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x49E SWAP1 DUP4 PUSH4 0xFFFFFFFF PUSH2 0x7D1 AND JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE PUSH1 0x3 SLOAD PUSH2 0x4C1 SWAP1 DUP4 PUSH4 0xFFFFFFFF PUSH2 0x7D1 AND JUMP JUMPDEST PUSH1 0x3 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP1 DUP4 ISZERO PUSH2 0x8FC MUL SWAP1 DUP5 SWAP1 PUSH1 0x0 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x4FA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD DUP4 DUP2 MSTORE SWAP1 MLOAD ADDRESS SWAP2 CALLER SWAP2 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xA52 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP2 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 LOG3 PUSH1 0x40 DUP1 MLOAD DUP4 DUP2 MSTORE SWAP1 MLOAD PUSH32 0x9A1B418BC061A5D80270261562E6986A35D995F8051145F277BE16103ABD3453 SWAP2 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 LOG1 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x564 DUP2 PUSH2 0x770 JUMP JUMPDEST PUSH2 0x56F DUP6 DUP6 DUP6 PUSH2 0x831 JUMP JUMPDEST ISZERO ISZERO PUSH2 0x577 JUMPI INVALID JUMPDEST POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0x58C CALLER DUP3 PUSH2 0x474 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x2 DUP5 DUP7 AND ISZERO PUSH2 0x100 MUL PUSH1 0x0 NOT ADD SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 DIV PUSH1 0x1F DUP2 ADD DUP5 SWAP1 DIV DUP5 MUL DUP3 ADD DUP5 ADD SWAP1 SWAP3 MSTORE DUP2 DUP2 MSTORE SWAP3 SWAP2 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x36E JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x343 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x36E JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x610 DUP2 PUSH2 0x770 JUMP JUMPDEST PUSH2 0x61A DUP5 DUP5 PUSH2 0x942 JUMP JUMPDEST ISZERO ISZERO PUSH2 0x622 JUMPI INVALID JUMPDEST POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST DUP1 PUSH2 0x636 DUP2 PUSH2 0x770 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x65F SWAP1 CALLVALUE PUSH4 0xFFFFFFFF PUSH2 0x9ED AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE PUSH1 0x3 SLOAD PUSH2 0x68B SWAP1 CALLVALUE PUSH4 0xFFFFFFFF PUSH2 0x9ED AND JUMP JUMPDEST PUSH1 0x3 SSTORE PUSH1 0x40 DUP1 MLOAD CALLVALUE DUP2 MSTORE SWAP1 MLOAD PUSH32 0x9386C90217C323F58030F9DADCBC938F807A940F4FF41CD4CEAD9562F5DA7DC3 SWAP2 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 LOG1 PUSH1 0x40 DUP1 MLOAD CALLVALUE DUP2 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP2 ADDRESS SWAP2 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xA52 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP2 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0x58C JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ADDRESS EQ ISZERO PUSH2 0x58C JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F414444524553535F49535F53454C4600000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 DUP4 LT ISZERO PUSH2 0x82B JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F554E444552464C4F5700000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP SWAP1 SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP4 PUSH2 0x83D DUP2 PUSH2 0x710 JUMP JUMPDEST DUP4 PUSH2 0x847 DUP2 PUSH2 0x710 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH2 0x87B SWAP1 DUP6 PUSH4 0xFFFFFFFF PUSH2 0x7D1 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE DUP3 MSTORE DUP1 DUP4 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE SWAP2 DUP2 MSTORE PUSH1 0x4 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD PUSH2 0x8BC SWAP1 DUP6 PUSH4 0xFFFFFFFF PUSH2 0x7D1 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE SWAP1 DUP8 AND DUP2 MSTORE KECCAK256 SLOAD PUSH2 0x8F1 SWAP1 DUP6 PUSH4 0xFFFFFFFF PUSH2 0x9ED AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP8 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE DUP1 MLOAD DUP9 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP4 SWAP3 DUP11 AND SWAP3 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xA52 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP3 SWAP2 DUP3 SWAP1 SUB ADD SWAP1 LOG3 POP PUSH1 0x1 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x94E DUP2 PUSH2 0x710 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x96E SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0x7D1 AND JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP3 SWAP1 SWAP3 SSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND DUP2 MSTORE KECCAK256 SLOAD PUSH2 0x9A0 SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0x9ED AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE DUP1 MLOAD DUP7 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP3 CALLER SWAP3 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xA52 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 ADD DUP4 DUP2 LT ISZERO PUSH2 0xA4A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP STOP 0xdd CALLCODE MSTORE 0xad SHL 0xe2 0xc8 SWAP12 PUSH10 0xC2B068FC378DAA952BA7 CALL PUSH4 0xC4A11628 0xf5 GAS 0x4d 0xf5 0x23 0xb3 0xef LOG1 PUSH6 0x627A7A723058 KECCAK256 SWAP12 NOT 0x4f 0xe6 DUP2 0x27 ADDMOD NUMBER 0xec 0x21 0xd4 ISZERO XOR SSTORE 0xee BLOCKHASH SWAP14 RETURNDATASIZE LOG2 ADDMOD EXTCODESIZE SUB POP PUSH9 0x9914F351617DE12400 0x29 ", + "sourceMap": "225:3029:50:-;;;765:85;8:9:-1;5:2;;;30:1;27;20:12;5:2;765:85:50;;;;;;;;;;;;;;;;;;;;;;;1444:19:49;;765:85:50;;;;;;;;;;;841:2;;845:1;;1444:23:49;-1:-1:-1;1436:52:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1500:21;;1524:1;-1:-1:-1;1492:56:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1553:12;;;;:4;;:12;;;;;:::i;:::-;-1:-1:-1;1569:16:49;;;;:6;;:16;;;;;:::i;:::-;-1:-1:-1;1589:8:49;:20;;-1:-1:-1;;1589:20:49;;;;;;;;;;;;;1613:11;:26;;;1653:10;-1:-1:-1;1643:21:49;;;:9;:21;;;;;:36;-1:-1:-1;225:3029:50;;-1:-1:-1;;;225:3029:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;225:3029:50;;;-1:-1:-1;225:3029:50;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "6080604052600436106100c45763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde0381146100ce578063095ea7b31461015857806318160ddd14610190578063205c2878146101b757806323b872dd146101db5780632e1a7d4d14610205578063313ce5671461021d57806370a082311461024857806395d89b4114610269578063a9059cbb1461027e578063b760faf9146102a2578063d0e30db0146100c4578063dd62ed3e146102b6575b6100cc6102dd565b005b3480156100da57600080fd5b506100e36102e8565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561011d578181015183820152602001610105565b50505050905090810190601f16801561014a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561016457600080fd5b5061017c600160a060020a0360043516602435610376565b604080519115158252519081900360200190f35b34801561019c57600080fd5b506101a561046e565b60408051918252519081900360200190f35b3480156101c357600080fd5b506100cc600160a060020a0360043516602435610474565b3480156101e757600080fd5b5061017c600160a060020a0360043581169060243516604435610558565b34801561021157600080fd5b506100cc600435610582565b34801561022957600080fd5b5061023261058f565b6040805160ff9092168252519081900360200190f35b34801561025457600080fd5b506101a5600160a060020a0360043516610598565b34801561027557600080fd5b506100e36105aa565b34801561028a57600080fd5b5061017c600160a060020a0360043516602435610604565b6100cc600160a060020a036004351661062c565b3480156102c257600080fd5b506101a5600160a060020a03600435811690602435166106f3565b6102e63361062c565b565b6000805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561036e5780601f106103435761010080835404028352916020019161036e565b820191906000526020600020905b81548152906001019060200180831161035157829003601f168201915b505050505081565b60008261038281610710565b8215806103b05750336000908152600560209081526040808320600160a060020a0388168452909152902054155b1515610406576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f494e56414c49445f414d4f554e540000000000000000000000000000604482015290519081900360640190fd5b336000818152600560209081526040808320600160a060020a03891680855290835292819020879055805187815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060019392505050565b60035481565b8161047e81610770565b3360009081526004602052604090205461049e908363ffffffff6107d116565b336000908152600460205260409020556003546104c1908363ffffffff6107d116565b600355604051600160a060020a0384169083156108fc029084906000818181858888f193505050501580156104fa573d6000803e3d6000fd5b5060408051838152905130913391600080516020610a528339815191529181900360200190a36040805183815290517f9a1b418bc061a5d80270261562e6986a35d995f8051145f277be16103abd34539181900360200190a1505050565b60008261056481610770565b61056f858585610831565b151561057757fe5b506001949350505050565b61058c3382610474565b50565b60025460ff1681565b60046020526000908152604090205481565b60018054604080516020600284861615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561036e5780601f106103435761010080835404028352916020019161036e565b60008261061081610770565b61061a8484610942565b151561062257fe5b5060019392505050565b8061063681610770565b600160a060020a03821660009081526004602052604090205461065f903463ffffffff6109ed16565b600160a060020a03831660009081526004602052604090205560035461068b903463ffffffff6109ed16565b6003556040805134815290517f9386c90217c323f58030f9dadcbc938f807a940f4ff41cd4cead9562f5da7dc39181900360200190a1604080513481529051600160a060020a038416913091600080516020610a528339815191529181900360200190a35050565b600560209081526000928352604080842090915290825290205481565b600160a060020a038116151561058c576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b600160a060020a03811630141561058c576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f414444524553535f49535f53454c4600000000000000000000000000604482015290519081900360640190fd5b60008183101561082b576040805160e560020a62461bcd02815260206004820152600d60248201527f4552525f554e444552464c4f5700000000000000000000000000000000000000604482015290519081900360640190fd5b50900390565b60008361083d81610710565b8361084781610710565b600160a060020a038616600090815260056020908152604080832033845290915290205461087b908563ffffffff6107d116565b600160a060020a0387166000818152600560209081526040808320338452825280832094909455918152600490915220546108bc908563ffffffff6107d116565b600160a060020a0380881660009081526004602052604080822093909355908716815220546108f1908563ffffffff6109ed16565b600160a060020a0380871660008181526004602090815260409182902094909455805188815290519193928a1692600080516020610a5283398151915292918290030190a350600195945050505050565b60008261094e81610710565b3360009081526004602052604090205461096e908463ffffffff6107d116565b3360009081526004602052604080822092909255600160a060020a038616815220546109a0908463ffffffff6109ed16565b600160a060020a038516600081815260046020908152604091829020939093558051868152905191923392600080516020610a528339815191529281900390910190a35060019392505050565b600082820183811015610a4a576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b93925050505600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a723058209b194fe681270843ec21d4151855ee409d3da2083b0350689914f351617de1240029", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0xC4 JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x6FDDE03 DUP2 EQ PUSH2 0xCE JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x158 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x190 JUMPI DUP1 PUSH4 0x205C2878 EQ PUSH2 0x1B7 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x1DB JUMPI DUP1 PUSH4 0x2E1A7D4D EQ PUSH2 0x205 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x21D JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x248 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x269 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x27E JUMPI DUP1 PUSH4 0xB760FAF9 EQ PUSH2 0x2A2 JUMPI DUP1 PUSH4 0xD0E30DB0 EQ PUSH2 0xC4 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x2B6 JUMPI JUMPDEST PUSH2 0xCC PUSH2 0x2DD JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xDA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xE3 PUSH2 0x2E8 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP4 MLOAD DUP2 DUP4 ADD MSTORE DUP4 MLOAD SWAP2 SWAP3 DUP4 SWAP3 SWAP1 DUP4 ADD SWAP2 DUP6 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x11D JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x105 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x14A JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x164 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x17C PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x376 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x19C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A5 PUSH2 0x46E JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1C3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xCC PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x474 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1E7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x17C PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x558 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x211 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xCC PUSH1 0x4 CALLDATALOAD PUSH2 0x582 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x229 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x232 PUSH2 0x58F JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x254 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x598 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x275 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xE3 PUSH2 0x5AA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x28A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x17C PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x604 JUMP JUMPDEST PUSH2 0xCC PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x62C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2C2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH2 0x6F3 JUMP JUMPDEST PUSH2 0x2E6 CALLER PUSH2 0x62C JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x2 PUSH1 0x1 DUP6 AND ISZERO PUSH2 0x100 MUL PUSH1 0x0 NOT ADD SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 DIV PUSH1 0x1F DUP2 ADD DUP5 SWAP1 DIV DUP5 MUL DUP3 ADD DUP5 ADD SWAP1 SWAP3 MSTORE DUP2 DUP2 MSTORE SWAP3 SWAP2 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x36E JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x343 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x36E JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x351 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x382 DUP2 PUSH2 0x710 JUMP JUMPDEST DUP3 ISZERO DUP1 PUSH2 0x3B0 JUMPI POP CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x406 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F414D4F554E540000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST CALLER PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP10 AND DUP1 DUP6 MSTORE SWAP1 DUP4 MSTORE SWAP3 DUP2 SWAP1 KECCAK256 DUP8 SWAP1 SSTORE DUP1 MLOAD DUP8 DUP2 MSTORE SWAP1 MLOAD SWAP3 SWAP4 SWAP3 PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP3 SWAP2 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST DUP2 PUSH2 0x47E DUP2 PUSH2 0x770 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x49E SWAP1 DUP4 PUSH4 0xFFFFFFFF PUSH2 0x7D1 AND JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE PUSH1 0x3 SLOAD PUSH2 0x4C1 SWAP1 DUP4 PUSH4 0xFFFFFFFF PUSH2 0x7D1 AND JUMP JUMPDEST PUSH1 0x3 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP1 DUP4 ISZERO PUSH2 0x8FC MUL SWAP1 DUP5 SWAP1 PUSH1 0x0 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x4FA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD DUP4 DUP2 MSTORE SWAP1 MLOAD ADDRESS SWAP2 CALLER SWAP2 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xA52 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP2 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 LOG3 PUSH1 0x40 DUP1 MLOAD DUP4 DUP2 MSTORE SWAP1 MLOAD PUSH32 0x9A1B418BC061A5D80270261562E6986A35D995F8051145F277BE16103ABD3453 SWAP2 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 LOG1 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x564 DUP2 PUSH2 0x770 JUMP JUMPDEST PUSH2 0x56F DUP6 DUP6 DUP6 PUSH2 0x831 JUMP JUMPDEST ISZERO ISZERO PUSH2 0x577 JUMPI INVALID JUMPDEST POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0x58C CALLER DUP3 PUSH2 0x474 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x2 DUP5 DUP7 AND ISZERO PUSH2 0x100 MUL PUSH1 0x0 NOT ADD SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 DIV PUSH1 0x1F DUP2 ADD DUP5 SWAP1 DIV DUP5 MUL DUP3 ADD DUP5 ADD SWAP1 SWAP3 MSTORE DUP2 DUP2 MSTORE SWAP3 SWAP2 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x36E JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x343 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x36E JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x610 DUP2 PUSH2 0x770 JUMP JUMPDEST PUSH2 0x61A DUP5 DUP5 PUSH2 0x942 JUMP JUMPDEST ISZERO ISZERO PUSH2 0x622 JUMPI INVALID JUMPDEST POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST DUP1 PUSH2 0x636 DUP2 PUSH2 0x770 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x65F SWAP1 CALLVALUE PUSH4 0xFFFFFFFF PUSH2 0x9ED AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE PUSH1 0x3 SLOAD PUSH2 0x68B SWAP1 CALLVALUE PUSH4 0xFFFFFFFF PUSH2 0x9ED AND JUMP JUMPDEST PUSH1 0x3 SSTORE PUSH1 0x40 DUP1 MLOAD CALLVALUE DUP2 MSTORE SWAP1 MLOAD PUSH32 0x9386C90217C323F58030F9DADCBC938F807A940F4FF41CD4CEAD9562F5DA7DC3 SWAP2 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 LOG1 PUSH1 0x40 DUP1 MLOAD CALLVALUE DUP2 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP2 ADDRESS SWAP2 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xA52 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP2 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0x58C JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ADDRESS EQ ISZERO PUSH2 0x58C JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F414444524553535F49535F53454C4600000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 DUP4 LT ISZERO PUSH2 0x82B JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F554E444552464C4F5700000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP SWAP1 SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP4 PUSH2 0x83D DUP2 PUSH2 0x710 JUMP JUMPDEST DUP4 PUSH2 0x847 DUP2 PUSH2 0x710 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH2 0x87B SWAP1 DUP6 PUSH4 0xFFFFFFFF PUSH2 0x7D1 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE DUP3 MSTORE DUP1 DUP4 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE SWAP2 DUP2 MSTORE PUSH1 0x4 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD PUSH2 0x8BC SWAP1 DUP6 PUSH4 0xFFFFFFFF PUSH2 0x7D1 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE SWAP1 DUP8 AND DUP2 MSTORE KECCAK256 SLOAD PUSH2 0x8F1 SWAP1 DUP6 PUSH4 0xFFFFFFFF PUSH2 0x9ED AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP8 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE DUP1 MLOAD DUP9 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP4 SWAP3 DUP11 AND SWAP3 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xA52 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP3 SWAP2 DUP3 SWAP1 SUB ADD SWAP1 LOG3 POP PUSH1 0x1 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x94E DUP2 PUSH2 0x710 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x96E SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0x7D1 AND JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP3 SWAP1 SWAP3 SSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND DUP2 MSTORE KECCAK256 SLOAD PUSH2 0x9A0 SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0x9ED AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE DUP1 MLOAD DUP7 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP3 CALLER SWAP3 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xA52 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 ADD DUP4 DUP2 LT ISZERO PUSH2 0xA4A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP STOP 0xdd CALLCODE MSTORE 0xad SHL 0xe2 0xc8 SWAP12 PUSH10 0xC2B068FC378DAA952BA7 CALL PUSH4 0xC4A11628 0xf5 GAS 0x4d 0xf5 0x23 0xb3 0xef LOG1 PUSH6 0x627A7A723058 KECCAK256 SWAP12 NOT 0x4f 0xe6 DUP2 0x27 ADDMOD NUMBER 0xec 0x21 0xd4 ISZERO XOR SSTORE 0xee BLOCKHASH SWAP14 RETURNDATASIZE LOG2 ADDMOD EXTCODESIZE SUB POP PUSH9 0x9914F351617DE12400 0x29 ", + "sourceMap": "225:3029:50:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3239:9;:7;:9::i;:::-;225:3029;256:18:49;;8:9:-1;5:2;;;30:1;27;20:12;5:2;256:18:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;256:18:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3601:420;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3601:420:49;-1:-1:-1;;;;;3601:420:49;;;;;;;;;;;;;;;;;;;;;;;;;324:26;;8:9:-1;5:2;;;30:1;27;20:12;5:2;324:26:49;;;;;;;;;;;;;;;;;;;;1774:393:50;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1774:393:50;-1:-1:-1;;;;;1774:393:50;;;;;;;2969:187;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2969:187:50;-1:-1:-1;;;;;2969:187:50;;;;;;;;;;;;1086:81;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1086:81:50;;;;;300:21:49;;8:9:-1;5:2;;;30:1;27;20:12;5:2;300:21:49;;;;;;;;;;;;;;;;;;;;;;;353:44;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;353:44:49;-1:-1:-1;;;;;353:44:49;;;;;277:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;277:20:49;;;;2491:148:50;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2491:148:50;-1:-1:-1;;;;;2491:148:50;;;;;;;1299:295;;-1:-1:-1;;;;;1299:295:50;;;;;400:64:49;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;400:64:49;-1:-1:-1;;;;;400:64:49;;;;;;;;;;910:63:50;948:21;958:10;948:9;:21::i;:::-;910:63::o;256:18:49:-;;;;;;;;;;;;;;;-1:-1:-1;;256:18:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;3601:420::-;3691:12;3672:8;475:23:72;489:8;475:13;:23::i;:::-;3836:11:49;;;:51;;-1:-1:-1;3861:10:49;3851:21;;;;:9;:21;;;;;;;;-1:-1:-1;;;;;3851:31:49;;;;;;;;;;:36;3836:51;3828:82;;;;;;;-1:-1:-1;;;;;3828:82:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;3925:10;3915:21;;;;:9;:21;;;;;;;;-1:-1:-1;;;;;3915:31:49;;;;;;;;;;;;:40;;;3964:38;;;;;;;3915:31;;3925:10;3964:38;;;;;;;;;;;-1:-1:-1;4013:4:49;;3601:420;-1:-1:-1;;;3601:420:49:o;324:26::-;;;;:::o;1774:393:50:-;1839:3;782:18:72;791:8;782;:18::i;:::-;1882:10:50;1872:21;;;;:9;:21;;;;;;:34;;1898:7;1872:34;:25;:34;:::i;:::-;1858:10;1848:21;;;;:9;:21;;;;;:58;1970:11;;:24;;1986:7;1970:24;:15;:24;:::i;:::-;1956:11;:38;2027:21;;-1:-1:-1;;;;;2027:12:50;;;:21;;;;;2040:7;;2027:21;;;;2040:7;2027:12;:21;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;2099:35:50;;;;;;;;2120:4;;2108:10;;-1:-1:-1;;;;;;;;;;;2099:35:50;;;;;;;;2143:20;;;;;;;;;;;;;;;;;1774:393;;;:::o;2969:187::-;3073:12;3059:3;782:18:72;791:8;782;:18::i;:::-;3098:38:50;3117:5;3124:3;3129:6;3098:18;:38::i;:::-;3091:46;;;;;;-1:-1:-1;3148:4:50;;2969:187;-1:-1:-1;;;;2969:187:50:o;1086:81::-;1132:31;1143:10;1155:7;1132:10;:31::i;:::-;1086:81;:::o;300:21:49:-;;;;;;:::o;353:44::-;;;;;;;;;;;;;:::o;277:20::-;;;;;;;;;;;;;;;-1:-1:-1;;277:20:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2491:148:50;2567:12;2553:3;782:18:72;791:8;782;:18::i;:::-;2592:27:50;2607:3;2612:6;2592:14;:27::i;:::-;2585:35;;;;;;-1:-1:-1;2631:4:50;;2491:148;-1:-1:-1;;;2491:148:50:o;1299:295::-;1354:3;782:18:72;791:8;782;:18::i;:::-;-1:-1:-1;;;;;1380:14:50;;;;;;:9;:14;;;;;;:29;;1399:9;1380:29;:18;:29;:::i;:::-;-1:-1:-1;;;;;1363:14:50;;;;;;:9;:14;;;;;:46;1467:11;;:26;;1483:9;1467:26;:15;:26;:::i;:::-;1453:11;:40;1532:19;;;1541:9;1532:19;;;;;;;;;;;;;1560:30;;;1580:9;1560:30;;;;-1:-1:-1;;;;;1560:30:50;;;1569:4;;-1:-1:-1;;;;;;;;;;;1560:30:50;;;;;;;;1299:295;;:::o;400:64:49:-;;;;;;;;;;;;;;;;;;;;;;;;:::o;553:117:72:-;-1:-1:-1;;;;;620:22:72;;;;612:54;;;;;-1:-1:-1;;;;;612:54:72;;;;;;;;;;;;;;;;;;;;;;;;;;;855:115;-1:-1:-1;;;;;917:25:72;;937:4;917:25;;909:57;;;;;-1:-1:-1;;;;;909:57:72;;;;;;;;;;;;;;;;;;;;;;;;;;;613:129:69;673:7;694:8;;;;686:34;;;;;-1:-1:-1;;;;;686:34:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;731:7:69;;;613:129::o;2581:372:49:-;2710:12;2676:5;475:23:72;489:8;475:13;:23::i;:::-;2696:3:49;475:23:72;489:8;475:13;:23::i;:::-;-1:-1:-1;;;;;2759:16:49;;;;;;:9;:16;;;;;;;;2776:10;2759:28;;;;;;;;:40;;2792:6;2759:40;:32;:40;:::i;:::-;-1:-1:-1;;;;;2728:16:49;;;;;;:9;:16;;;;;;;;2745:10;2728:28;;;;;;;:71;;;;2822:16;;;:9;:16;;;;;:28;;2843:6;2822:28;:20;:28;:::i;:::-;-1:-1:-1;;;;;2803:16:49;;;;;;;:9;:16;;;;;;:47;;;;2871:14;;;;;;;:26;;2890:6;2871:26;:18;:26;:::i;:::-;-1:-1:-1;;;;;2854:14:49;;;;;;;:9;:14;;;;;;;;;:43;;;;2906:28;;;;;;;2854:14;;2906:28;;;;-1:-1:-1;;;;;;;;;;;2906:28:49;;;;;;;;-1:-1:-1;2945:4:49;;2581:372;-1:-1:-1;;;;;2581:372:49:o;1968:264::-;2049:12;2035:3;475:23:72;489:8;475:13;:23::i;:::-;2101:10:49;2091:21;;;;:9;:21;;;;;;:33;;2117:6;2091:33;:25;:33;:::i;:::-;2077:10;2067:21;;;;:9;:21;;;;;;:57;;;;-1:-1:-1;;;;;2145:14:49;;;;;;:26;;2164:6;2145:26;:18;:26;:::i;:::-;-1:-1:-1;;;;;2128:14:49;;;;;;:9;:14;;;;;;;;;:43;;;;2180:33;;;;;;;2128:14;;2189:10;;-1:-1:-1;;;;;;;;;;;2180:33:49;;;;;;;;;-1:-1:-1;2224:4:49;;1968:264;-1:-1:-1;;;1968:264:49:o;288:144:69:-;348:7;373;;;392;;;;384:32;;;;;-1:-1:-1;;;;;384:32:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;427:1;288:144;-1:-1:-1;;;288:144:69:o" + }, + "methodIdentifiers": { + "allowance(address,address)": "dd62ed3e", + "approve(address,uint256)": "095ea7b3", + "balanceOf(address)": "70a08231", + "decimals()": "313ce567", + "deposit()": "d0e30db0", + "depositTo(address)": "b760faf9", + "name()": "06fdde03", + "symbol()": "95d89b41", + "totalSupply()": "18160ddd", + "transfer(address,uint256)": "a9059cbb", + "transferFrom(address,address,uint256)": "23b872dd", + "withdraw(uint256)": "2e1a7d4d", + "withdrawTo(address,uint256)": "205c2878" + } + }, + "userdoc": { + "methods": {} + } + } + }, + "solidity/contracts/token/SmartToken.sol": { + "SmartToken": { + "abi": [ + { + "constant": true, + "inputs": [], + "name": "name", + "outputs": [ + { + "name": "", + "type": "string" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_spender", + "type": "address" + }, + { + "name": "_value", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "name": "success", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_disable", + "type": "bool" + } + ], + "name": "disableTransfers", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_from", + "type": "address" + }, + { + "name": "_to", + "type": "address" + }, + { + "name": "_value", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "name": "success", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "decimals", + "outputs": [ + { + "name": "", + "type": "uint8" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "version", + "outputs": [ + { + "name": "", + "type": "uint16" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_token", + "type": "address" + }, + { + "name": "_to", + "type": "address" + }, + { + "name": "_amount", + "type": "uint256" + } + ], + "name": "withdrawTokens", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "acceptOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_to", + "type": "address" + }, + { + "name": "_amount", + "type": "uint256" + } + ], + "name": "issue", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "owner", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "symbol", + "outputs": [ + { + "name": "", + "type": "string" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_from", + "type": "address" + }, + { + "name": "_amount", + "type": "uint256" + } + ], + "name": "destroy", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_to", + "type": "address" + }, + { + "name": "_value", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "name": "success", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "transfersEnabled", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "newOwner", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "", + "type": "address" + }, + { + "name": "", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "name": "_name", + "type": "string" + }, + { + "name": "_symbol", + "type": "string" + }, + { + "name": "_decimals", + "type": "uint8" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "_amount", + "type": "uint256" + } + ], + "name": "Issuance", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "_amount", + "type": "uint256" + } + ], + "name": "Destruction", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "_from", + "type": "address" + }, + { + "indexed": true, + "name": "_to", + "type": "address" + }, + { + "indexed": false, + "name": "_value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "_owner", + "type": "address" + }, + { + "indexed": true, + "name": "_spender", + "type": "address" + }, + { + "indexed": false, + "name": "_value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "_prevOwner", + "type": "address" + }, + { + "indexed": true, + "name": "_newOwner", + "type": "address" + } + ], + "name": "OwnerUpdate", + "type": "event" + } + ], + "devdoc": { + "methods": { + "acceptOwnership()": { + "details": "used by a new owner to accept an ownership transfer" + }, + "approve(address,uint256)": { + "details": "allows another account/contract to transfers tokens on behalf of the caller throws on any error rather then return a false flag to minimize user errors\t * also, to minimize the risk of the approve/transferFrom attack vector (see https://docs.google.com/document/d/1YLPtQxZu1UAvO9cZ1O2RPXBbT0mooh4DYKjA_jp-RLM/), approve has to be called twice in 2 separate transactions - once to change the allowance to 0 and secondly to change it to the new allowance value", + "params": { + "_spender": "approved address", + "_value": "allowance amount" + }, + "return": "true if the approval was successful, false if it wasn't" + }, + "destroy(address,uint256)": { + "details": "removes tokens from the given account and decreases the token supply can only be called by the contract owner", + "params": { + "_amount": "amount to decrease the supply by", + "_from": "account to remove the amount from" + } + }, + "disableTransfers(bool)": { + "details": "disables/enables transfers can only be called by the contract owner", + "params": { + "_disable": "true to disable transfers, false to enable them" + } + }, + "issue(address,uint256)": { + "details": "increases the token supply and sends the new tokens to the given account can only be called by the contract owner", + "params": { + "_amount": "amount to increase the supply by", + "_to": "account to receive the new amount" + } + }, + "transfer(address,uint256)": { + "details": "send coins throws on any error rather then return a false flag to minimize user errors in addition to the standard checks, the function throws if transfers are disabled", + "params": { + "_to": "target address", + "_value": "transfer amount" + }, + "return": "true if the transfer was successful, false if it wasn't" + }, + "transferFrom(address,address,uint256)": { + "details": "an account/contract attempts to get the coins throws on any error rather then return a false flag to minimize user errors in addition to the standard checks, the function throws if transfers are disabled", + "params": { + "_from": "source address", + "_to": "target address", + "_value": "transfer amount" + }, + "return": "true if the transfer was successful, false if it wasn't" + }, + "transferOwnership(address)": { + "details": "allows transferring the contract ownership the new owner still needs to accept the transfer can only be called by the contract owner", + "params": { + "_newOwner": "new contract owner" + } + }, + "withdrawTokens(address,address,uint256)": { + "details": "withdraws tokens held by the contract and sends them to an account can only be called by the owner", + "params": { + "_amount": "amount to withdraw", + "_to": "account to receive the new amount", + "_token": "ERC20 token contract address" + } + } + } + }, + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "60806040526008805460ff191660011790553480156200001e57600080fd5b506040516200122838038062001228833981016040908152815160208301519183015160008054600160a060020a0319163317815591840180519094939093019290918491849184918110620000d557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f4552525f494e56414c49445f4e414d4500000000000000000000000000000000604482015290519081900360640190fd5b82516000106200014657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f4552525f494e56414c49445f53594d424f4c0000000000000000000000000000604482015290519081900360640190fd5b83516200015b906002906020870190620001a8565b50825162000171906003906020860190620001a8565b506004805460ff191660ff9390931692909217909155600581905533600090815260066020526040902055506200024d9350505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620001eb57805160ff19168380011785556200021b565b828001600101855582156200021b579182015b828111156200021b578251825591602001919060010190620001fe565b50620002299291506200022d565b5090565b6200024a91905b8082111562000229576000815560010162000234565b90565b610fcb806200025d6000396000f3006080604052600436106101065763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde03811461010b578063095ea7b3146101955780631608f18f146101cd57806318160ddd146101e957806323b872dd14610210578063313ce5671461023a57806354fd4d50146102655780635e35359e1461029157806370a08231146102bb57806379ba5097146102dc578063867904b4146102f15780638da5cb5b1461031557806395d89b4114610346578063a24835d11461035b578063a9059cbb1461037f578063bef97c87146103a3578063d4ee1d90146103b8578063dd62ed3e146103cd578063f2fde38b146103f4575b600080fd5b34801561011757600080fd5b50610120610415565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561015a578181015183820152602001610142565b50505050905090810190601f1680156101875780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101a157600080fd5b506101b9600160a060020a03600435166024356104a0565b604080519115158252519081900360200190f35b3480156101d957600080fd5b506101e76004351515610598565b005b3480156101f557600080fd5b506101fe6105b2565b60408051918252519081900360200190f35b34801561021c57600080fd5b506101b9600160a060020a03600435811690602435166044356105b8565b34801561024657600080fd5b5061024f6105df565b6040805160ff9092168252519081900360200190f35b34801561027157600080fd5b5061027a6105e8565b6040805161ffff9092168252519081900360200190f35b34801561029d57600080fd5b506101e7600160a060020a03600435811690602435166044356105ed565b3480156102c757600080fd5b506101fe600160a060020a0360043516610626565b3480156102e857600080fd5b506101e7610638565b3480156102fd57600080fd5b506101e7600160a060020a036004351660243561070b565b34801561032157600080fd5b5061032a6107ed565b60408051600160a060020a039092168252519081900360200190f35b34801561035257600080fd5b506101206107fc565b34801561036757600080fd5b506101e7600160a060020a0360043516602435610857565b34801561038b57600080fd5b506101b9600160a060020a036004351660243561091d565b3480156103af57600080fd5b506101b9610942565b3480156103c457600080fd5b5061032a61094b565b3480156103d957600080fd5b506101fe600160a060020a036004358116906024351661095a565b34801561040057600080fd5b506101e7600160a060020a0360043516610977565b6002805460408051602060018416156101000260001901909316849004601f810184900484028201840190925281815292918301828280156104985780601f1061046d57610100808354040283529160200191610498565b820191906000526020600020905b81548152906001019060200180831161047b57829003601f168201915b505050505081565b6000826104ac81610a14565b8215806104da5750336000908152600760209081526040808320600160a060020a0388168452909152902054155b1515610530576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f494e56414c49445f414d4f554e540000000000000000000000000000604482015290519081900360640190fd5b336000818152600760209081526040808320600160a060020a03891680855290835292819020879055805187815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060019392505050565b6105a0610a77565b6008805460ff19169115919091179055565b60055481565b60006105c2610adb565b6105cd848484610b37565b15156105d557fe5b5060019392505050565b60045460ff1681565b600481565b6105f5610a77565b826105ff81610a14565b8261060981610a14565b8361061381610c48565b61061e868686610ca9565b505050505050565b60066020526000908152604090205481565b600154600160a060020a0316331461069a576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b60015460008054604051600160a060020a0393841693909116917f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91a3600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b610713610a77565b8161071d81610a14565b8261072781610c48565b60055461073a908463ffffffff610d6316565b600555600160a060020a038416600090815260066020526040902054610766908463ffffffff610d6316565b600160a060020a03851660009081526006602090815260409182902092909255805185815290517f9386c90217c323f58030f9dadcbc938f807a940f4ff41cd4cead9562f5da7dc3929181900390910190a1604080518481529051600160a060020a03861691600091600080516020610f808339815191529181900360200190a350505050565b600054600160a060020a031681565b6003805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156104985780601f1061046d57610100808354040283529160200191610498565b61085f610a77565b600160a060020a038216600090815260066020526040902054610888908263ffffffff610dc716565b600160a060020a0383166000908152600660205260409020556005546108b4908263ffffffff610dc716565b600555604080518281529051600091600160a060020a03851691600080516020610f808339815191529181900360200190a36040805182815290517f9a1b418bc061a5d80270261562e6986a35d995f8051145f277be16103abd34539181900360200190a15050565b6000610927610adb565b6109318383610e27565b151561093957fe5b50600192915050565b60085460ff1681565b600154600160a060020a031681565b600760209081526000928352604080842090915290825290205481565b61097f610a77565b600054600160a060020a03828116911614156109e5576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f53414d455f4f574e4552000000000000000000000000000000000000604482015290519081900360640190fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600160a060020a0381161515610a74576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b50565b600054600160a060020a03163314610ad9576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b565b60085460ff161515610ad9576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f5452414e53464552535f44495341424c454400000000000000000000604482015290519081900360640190fd5b600083610b4381610a14565b83610b4d81610a14565b600160a060020a0386166000908152600760209081526040808320338452909152902054610b81908563ffffffff610dc716565b600160a060020a038716600081815260076020908152604080832033845282528083209490945591815260069091522054610bc2908563ffffffff610dc716565b600160a060020a038088166000908152600660205260408082209390935590871681522054610bf7908563ffffffff610d6316565b600160a060020a0380871660008181526006602090815260409182902094909455805188815290519193928a1692600080516020610f8083398151915292918290030190a350600195945050505050565b600160a060020a038116301415610a74576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f414444524553535f49535f53454c4600000000000000000000000000604482015290519081900360640190fd5b604080517f7472616e7366657228616464726573732c75696e74323536290000000000000081528151908190036019018120600160a060020a038516602483015260448083018590528351808403909101815260649092019092526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152610d5e908490610ed2565b505050565b600082820183811015610dc0576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b9392505050565b600081831015610e21576040805160e560020a62461bcd02815260206004820152600d60248201527f4552525f554e444552464c4f5700000000000000000000000000000000000000604482015290519081900360640190fd5b50900390565b600082610e3381610a14565b33600090815260066020526040902054610e53908463ffffffff610dc716565b3360009081526006602052604080822092909255600160a060020a03861681522054610e85908463ffffffff610d6316565b600160a060020a038516600081815260066020908152604091829020939093558051868152905191923392600080516020610f808339815191529281900390910190a35060019392505050565b610eda610f60565b602060405190810160405280600181525090506020818351602085016000875af1801515610f0757600080fd5b5080511515610d5e576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f5452414e534645525f4641494c454400000000000000000000000000604482015290519081900360640190fd5b60206040519081016040528060019060208202803883395091929150505600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a7230582031b56aebc8336b547b3e1346f50c2f44f70def554ed4cba4c81bcf2e092d047f0029", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x8 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE CALLVALUE DUP1 ISZERO PUSH3 0x1E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x1228 CODESIZE SUB DUP1 PUSH3 0x1228 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 SWAP1 DUP2 MSTORE DUP2 MLOAD PUSH1 0x20 DUP4 ADD MLOAD SWAP2 DUP4 ADD MLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND CALLER OR DUP2 SSTORE SWAP2 DUP5 ADD DUP1 MLOAD SWAP1 SWAP5 SWAP4 SWAP1 SWAP4 ADD SWAP3 SWAP1 SWAP2 DUP5 SWAP2 DUP5 SWAP2 DUP5 SWAP2 DUP2 LT PUSH3 0xD5 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4E414D4500000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP3 MLOAD PUSH1 0x0 LT PUSH3 0x146 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F53594D424F4C0000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP4 MLOAD PUSH3 0x15B SWAP1 PUSH1 0x2 SWAP1 PUSH1 0x20 DUP8 ADD SWAP1 PUSH3 0x1A8 JUMP JUMPDEST POP DUP3 MLOAD PUSH3 0x171 SWAP1 PUSH1 0x3 SWAP1 PUSH1 0x20 DUP7 ADD SWAP1 PUSH3 0x1A8 JUMP JUMPDEST POP PUSH1 0x4 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0xFF SWAP4 SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 SSTORE PUSH1 0x5 DUP2 SWAP1 SSTORE CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE POP PUSH3 0x24D SWAP4 POP POP POP POP JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH1 0x1F LT PUSH3 0x1EB JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH3 0x21B JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH3 0x21B JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH3 0x21B JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH3 0x1FE JUMP JUMPDEST POP PUSH3 0x229 SWAP3 SWAP2 POP PUSH3 0x22D JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH3 0x24A SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH3 0x229 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH3 0x234 JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH2 0xFCB DUP1 PUSH3 0x25D PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x106 JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x6FDDE03 DUP2 EQ PUSH2 0x10B JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x195 JUMPI DUP1 PUSH4 0x1608F18F EQ PUSH2 0x1CD JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x1E9 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x210 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x23A JUMPI DUP1 PUSH4 0x54FD4D50 EQ PUSH2 0x265 JUMPI DUP1 PUSH4 0x5E35359E EQ PUSH2 0x291 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x2BB JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x2DC JUMPI DUP1 PUSH4 0x867904B4 EQ PUSH2 0x2F1 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x315 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x346 JUMPI DUP1 PUSH4 0xA24835D1 EQ PUSH2 0x35B JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x37F JUMPI DUP1 PUSH4 0xBEF97C87 EQ PUSH2 0x3A3 JUMPI DUP1 PUSH4 0xD4EE1D90 EQ PUSH2 0x3B8 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x3CD JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x3F4 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x117 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x120 PUSH2 0x415 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP4 MLOAD DUP2 DUP4 ADD MSTORE DUP4 MLOAD SWAP2 SWAP3 DUP4 SWAP3 SWAP1 DUP4 ADD SWAP2 DUP6 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x15A JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x142 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x187 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1A1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B9 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x4A0 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1D9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH1 0x4 CALLDATALOAD ISZERO ISZERO PUSH2 0x598 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1FE PUSH2 0x5B2 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x21C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B9 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x5B8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x246 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x24F PUSH2 0x5DF JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x271 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x27A PUSH2 0x5E8 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0xFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x29D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x5ED JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2C7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1FE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x626 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2E8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH2 0x638 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2FD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x70B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x321 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x32A PUSH2 0x7ED JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x352 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x120 PUSH2 0x7FC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x367 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x857 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x38B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B9 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x91D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3AF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B9 PUSH2 0x942 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3C4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x32A PUSH2 0x94B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3D9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1FE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH2 0x95A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x400 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x977 JUMP JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x1 DUP5 AND ISZERO PUSH2 0x100 MUL PUSH1 0x0 NOT ADD SWAP1 SWAP4 AND DUP5 SWAP1 DIV PUSH1 0x1F DUP2 ADD DUP5 SWAP1 DIV DUP5 MUL DUP3 ADD DUP5 ADD SWAP1 SWAP3 MSTORE DUP2 DUP2 MSTORE SWAP3 SWAP2 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x498 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x46D JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x498 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x47B JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x4AC DUP2 PUSH2 0xA14 JUMP JUMPDEST DUP3 ISZERO DUP1 PUSH2 0x4DA JUMPI POP CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x530 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F414D4F554E540000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST CALLER PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP10 AND DUP1 DUP6 MSTORE SWAP1 DUP4 MSTORE SWAP3 DUP2 SWAP1 KECCAK256 DUP8 SWAP1 SSTORE DUP1 MLOAD DUP8 DUP2 MSTORE SWAP1 MLOAD SWAP3 SWAP4 SWAP3 PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP3 SWAP2 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x5A0 PUSH2 0xA77 JUMP JUMPDEST PUSH1 0x8 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP2 ISZERO SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x5 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5C2 PUSH2 0xADB JUMP JUMPDEST PUSH2 0x5CD DUP5 DUP5 DUP5 PUSH2 0xB37 JUMP JUMPDEST ISZERO ISZERO PUSH2 0x5D5 JUMPI INVALID JUMPDEST POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x4 DUP2 JUMP JUMPDEST PUSH2 0x5F5 PUSH2 0xA77 JUMP JUMPDEST DUP3 PUSH2 0x5FF DUP2 PUSH2 0xA14 JUMP JUMPDEST DUP3 PUSH2 0x609 DUP2 PUSH2 0xA14 JUMP JUMPDEST DUP4 PUSH2 0x613 DUP2 PUSH2 0xC48 JUMP JUMPDEST PUSH2 0x61E DUP7 DUP7 DUP7 PUSH2 0xCA9 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x69A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND SWAP4 SWAP1 SWAP2 AND SWAP2 PUSH32 0x343765429AEA5A34B3FF6A3785A98A5ABB2597ACA87BFBB58632C173D585373A SWAP2 LOG3 PUSH1 0x1 DUP1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND OR SWAP1 SWAP2 SSTORE AND SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x713 PUSH2 0xA77 JUMP JUMPDEST DUP2 PUSH2 0x71D DUP2 PUSH2 0xA14 JUMP JUMPDEST DUP3 PUSH2 0x727 DUP2 PUSH2 0xC48 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH2 0x73A SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0xD63 AND JUMP JUMPDEST PUSH1 0x5 SSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x766 SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0xD63 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SWAP3 SWAP1 SWAP3 SSTORE DUP1 MLOAD DUP6 DUP2 MSTORE SWAP1 MLOAD PUSH32 0x9386C90217C323F58030F9DADCBC938F807A940F4FF41CD4CEAD9562F5DA7DC3 SWAP3 SWAP2 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG1 PUSH1 0x40 DUP1 MLOAD DUP5 DUP2 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND SWAP2 PUSH1 0x0 SWAP2 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xF80 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP2 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 LOG3 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x2 PUSH1 0x1 DUP6 AND ISZERO PUSH2 0x100 MUL PUSH1 0x0 NOT ADD SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 DIV PUSH1 0x1F DUP2 ADD DUP5 SWAP1 DIV DUP5 MUL DUP3 ADD DUP5 ADD SWAP1 SWAP3 MSTORE DUP2 DUP2 MSTORE SWAP3 SWAP2 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x498 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x46D JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x498 JUMP JUMPDEST PUSH2 0x85F PUSH2 0xA77 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x888 SWAP1 DUP3 PUSH4 0xFFFFFFFF PUSH2 0xDC7 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE PUSH1 0x5 SLOAD PUSH2 0x8B4 SWAP1 DUP3 PUSH4 0xFFFFFFFF PUSH2 0xDC7 AND JUMP JUMPDEST PUSH1 0x5 SSTORE PUSH1 0x40 DUP1 MLOAD DUP3 DUP2 MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND SWAP2 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xF80 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP2 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 LOG3 PUSH1 0x40 DUP1 MLOAD DUP3 DUP2 MSTORE SWAP1 MLOAD PUSH32 0x9A1B418BC061A5D80270261562E6986A35D995F8051145F277BE16103ABD3453 SWAP2 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x927 PUSH2 0xADB JUMP JUMPDEST PUSH2 0x931 DUP4 DUP4 PUSH2 0xE27 JUMP JUMPDEST ISZERO ISZERO PUSH2 0x939 JUMPI INVALID JUMPDEST POP PUSH1 0x1 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x97F PUSH2 0xA77 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x9E5 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F4F574E4552000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0xA74 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0xAD9 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0xFF AND ISZERO ISZERO PUSH2 0xAD9 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5452414E53464552535F44495341424C454400000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP4 PUSH2 0xB43 DUP2 PUSH2 0xA14 JUMP JUMPDEST DUP4 PUSH2 0xB4D DUP2 PUSH2 0xA14 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH2 0xB81 SWAP1 DUP6 PUSH4 0xFFFFFFFF PUSH2 0xDC7 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE DUP3 MSTORE DUP1 DUP4 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE SWAP2 DUP2 MSTORE PUSH1 0x6 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD PUSH2 0xBC2 SWAP1 DUP6 PUSH4 0xFFFFFFFF PUSH2 0xDC7 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE SWAP1 DUP8 AND DUP2 MSTORE KECCAK256 SLOAD PUSH2 0xBF7 SWAP1 DUP6 PUSH4 0xFFFFFFFF PUSH2 0xD63 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP8 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE DUP1 MLOAD DUP9 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP4 SWAP3 DUP11 AND SWAP3 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xF80 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP3 SWAP2 DUP3 SWAP1 SUB ADD SWAP1 LOG3 POP PUSH1 0x1 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ADDRESS EQ ISZERO PUSH2 0xA74 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F414444524553535F49535F53454C4600000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x7472616E7366657228616464726573732C75696E743235362900000000000000 DUP2 MSTORE DUP2 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x19 ADD DUP2 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x64 SWAP1 SWAP3 ADD SWAP1 SWAP3 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE PUSH2 0xD5E SWAP1 DUP5 SWAP1 PUSH2 0xED2 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 ADD DUP4 DUP2 LT ISZERO PUSH2 0xDC0 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT ISZERO PUSH2 0xE21 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F554E444552464C4F5700000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP SWAP1 SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0xE33 DUP2 PUSH2 0xA14 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0xE53 SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0xDC7 AND JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP3 SWAP1 SWAP3 SSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND DUP2 MSTORE KECCAK256 SLOAD PUSH2 0xE85 SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0xD63 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE DUP1 MLOAD DUP7 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP3 CALLER SWAP3 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xF80 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0xEDA PUSH2 0xF60 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE POP SWAP1 POP PUSH1 0x20 DUP2 DUP4 MLOAD PUSH1 0x20 DUP6 ADD PUSH1 0x0 DUP8 GAS CALL DUP1 ISZERO ISZERO PUSH2 0xF07 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD ISZERO ISZERO PUSH2 0xD5E JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5452414E534645525F4641494C454400000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 SWAP1 PUSH1 0x20 DUP3 MUL DUP1 CODESIZE DUP4 CODECOPY POP SWAP2 SWAP3 SWAP2 POP POP JUMP STOP 0xdd CALLCODE MSTORE 0xad SHL 0xe2 0xc8 SWAP12 PUSH10 0xC2B068FC378DAA952BA7 CALL PUSH4 0xC4A11628 0xf5 GAS 0x4d 0xf5 0x23 0xb3 0xef LOG1 PUSH6 0x627A7A723058 KECCAK256 BALANCE 0xb5 PUSH11 0xEBC8336B547B3E1346F50C 0x2f DIFFICULTY 0xf7 0xd 0xef SSTORE 0x4e 0xd4 0xcb LOG4 0xc8 SHL 0xcf 0x2e MULMOD 0x2d DIV PUSH32 0x29000000000000000000000000000000000000000000000000000000000000 ", + "sourceMap": "243:3584:51:-;;;381:35;;;-1:-1:-1;;381:35:51;412:4;381:35;;;1016:118;5:2:-1;;;;30:1;27;20:12;5:2;1016:118:51;;;;;;;;;;;;;;;;;;;;;;;;;;1129:1;488:18:66;;-1:-1:-1;;;;;;488:18:66;496:10;488:18;;;1016:118:51;;;1444:19:49;;1016:118:51;;;;;;;;;;;;;;;1444:23:49;-1:-1:-1;1436:52:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1500:21;;1524:1;-1:-1:-1;1492:56:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1553:12;;;;:4;;:12;;;;;:::i;:::-;-1:-1:-1;1569:16:49;;;;:6;;:16;;;;;:::i;:::-;-1:-1:-1;1589:8:49;:20;;-1:-1:-1;;1589:20:49;;;;;;;;;;;;;1613:11;:26;;;1653:10;-1:-1:-1;1643:21:49;;;:9;:21;;;;;:36;-1:-1:-1;243:3584:51;;-1:-1:-1;;;;243:3584:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;243:3584:51;;;-1:-1:-1;243:3584:51;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "6080604052600436106101065763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde03811461010b578063095ea7b3146101955780631608f18f146101cd57806318160ddd146101e957806323b872dd14610210578063313ce5671461023a57806354fd4d50146102655780635e35359e1461029157806370a08231146102bb57806379ba5097146102dc578063867904b4146102f15780638da5cb5b1461031557806395d89b4114610346578063a24835d11461035b578063a9059cbb1461037f578063bef97c87146103a3578063d4ee1d90146103b8578063dd62ed3e146103cd578063f2fde38b146103f4575b600080fd5b34801561011757600080fd5b50610120610415565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561015a578181015183820152602001610142565b50505050905090810190601f1680156101875780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101a157600080fd5b506101b9600160a060020a03600435166024356104a0565b604080519115158252519081900360200190f35b3480156101d957600080fd5b506101e76004351515610598565b005b3480156101f557600080fd5b506101fe6105b2565b60408051918252519081900360200190f35b34801561021c57600080fd5b506101b9600160a060020a03600435811690602435166044356105b8565b34801561024657600080fd5b5061024f6105df565b6040805160ff9092168252519081900360200190f35b34801561027157600080fd5b5061027a6105e8565b6040805161ffff9092168252519081900360200190f35b34801561029d57600080fd5b506101e7600160a060020a03600435811690602435166044356105ed565b3480156102c757600080fd5b506101fe600160a060020a0360043516610626565b3480156102e857600080fd5b506101e7610638565b3480156102fd57600080fd5b506101e7600160a060020a036004351660243561070b565b34801561032157600080fd5b5061032a6107ed565b60408051600160a060020a039092168252519081900360200190f35b34801561035257600080fd5b506101206107fc565b34801561036757600080fd5b506101e7600160a060020a0360043516602435610857565b34801561038b57600080fd5b506101b9600160a060020a036004351660243561091d565b3480156103af57600080fd5b506101b9610942565b3480156103c457600080fd5b5061032a61094b565b3480156103d957600080fd5b506101fe600160a060020a036004358116906024351661095a565b34801561040057600080fd5b506101e7600160a060020a0360043516610977565b6002805460408051602060018416156101000260001901909316849004601f810184900484028201840190925281815292918301828280156104985780601f1061046d57610100808354040283529160200191610498565b820191906000526020600020905b81548152906001019060200180831161047b57829003601f168201915b505050505081565b6000826104ac81610a14565b8215806104da5750336000908152600760209081526040808320600160a060020a0388168452909152902054155b1515610530576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f494e56414c49445f414d4f554e540000000000000000000000000000604482015290519081900360640190fd5b336000818152600760209081526040808320600160a060020a03891680855290835292819020879055805187815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060019392505050565b6105a0610a77565b6008805460ff19169115919091179055565b60055481565b60006105c2610adb565b6105cd848484610b37565b15156105d557fe5b5060019392505050565b60045460ff1681565b600481565b6105f5610a77565b826105ff81610a14565b8261060981610a14565b8361061381610c48565b61061e868686610ca9565b505050505050565b60066020526000908152604090205481565b600154600160a060020a0316331461069a576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b60015460008054604051600160a060020a0393841693909116917f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91a3600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b610713610a77565b8161071d81610a14565b8261072781610c48565b60055461073a908463ffffffff610d6316565b600555600160a060020a038416600090815260066020526040902054610766908463ffffffff610d6316565b600160a060020a03851660009081526006602090815260409182902092909255805185815290517f9386c90217c323f58030f9dadcbc938f807a940f4ff41cd4cead9562f5da7dc3929181900390910190a1604080518481529051600160a060020a03861691600091600080516020610f808339815191529181900360200190a350505050565b600054600160a060020a031681565b6003805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156104985780601f1061046d57610100808354040283529160200191610498565b61085f610a77565b600160a060020a038216600090815260066020526040902054610888908263ffffffff610dc716565b600160a060020a0383166000908152600660205260409020556005546108b4908263ffffffff610dc716565b600555604080518281529051600091600160a060020a03851691600080516020610f808339815191529181900360200190a36040805182815290517f9a1b418bc061a5d80270261562e6986a35d995f8051145f277be16103abd34539181900360200190a15050565b6000610927610adb565b6109318383610e27565b151561093957fe5b50600192915050565b60085460ff1681565b600154600160a060020a031681565b600760209081526000928352604080842090915290825290205481565b61097f610a77565b600054600160a060020a03828116911614156109e5576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f53414d455f4f574e4552000000000000000000000000000000000000604482015290519081900360640190fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600160a060020a0381161515610a74576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b50565b600054600160a060020a03163314610ad9576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b565b60085460ff161515610ad9576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f5452414e53464552535f44495341424c454400000000000000000000604482015290519081900360640190fd5b600083610b4381610a14565b83610b4d81610a14565b600160a060020a0386166000908152600760209081526040808320338452909152902054610b81908563ffffffff610dc716565b600160a060020a038716600081815260076020908152604080832033845282528083209490945591815260069091522054610bc2908563ffffffff610dc716565b600160a060020a038088166000908152600660205260408082209390935590871681522054610bf7908563ffffffff610d6316565b600160a060020a0380871660008181526006602090815260409182902094909455805188815290519193928a1692600080516020610f8083398151915292918290030190a350600195945050505050565b600160a060020a038116301415610a74576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f414444524553535f49535f53454c4600000000000000000000000000604482015290519081900360640190fd5b604080517f7472616e7366657228616464726573732c75696e74323536290000000000000081528151908190036019018120600160a060020a038516602483015260448083018590528351808403909101815260649092019092526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152610d5e908490610ed2565b505050565b600082820183811015610dc0576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b9392505050565b600081831015610e21576040805160e560020a62461bcd02815260206004820152600d60248201527f4552525f554e444552464c4f5700000000000000000000000000000000000000604482015290519081900360640190fd5b50900390565b600082610e3381610a14565b33600090815260066020526040902054610e53908463ffffffff610dc716565b3360009081526006602052604080822092909255600160a060020a03861681522054610e85908463ffffffff610d6316565b600160a060020a038516600081815260066020908152604091829020939093558051868152905191923392600080516020610f808339815191529281900390910190a35060019392505050565b610eda610f60565b602060405190810160405280600181525090506020818351602085016000875af1801515610f0757600080fd5b5080511515610d5e576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f5452414e534645525f4641494c454400000000000000000000000000604482015290519081900360640190fd5b60206040519081016040528060019060208202803883395091929150505600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a7230582031b56aebc8336b547b3e1346f50c2f44f70def554ed4cba4c81bcf2e092d047f0029", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x106 JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x6FDDE03 DUP2 EQ PUSH2 0x10B JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x195 JUMPI DUP1 PUSH4 0x1608F18F EQ PUSH2 0x1CD JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x1E9 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x210 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x23A JUMPI DUP1 PUSH4 0x54FD4D50 EQ PUSH2 0x265 JUMPI DUP1 PUSH4 0x5E35359E EQ PUSH2 0x291 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x2BB JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x2DC JUMPI DUP1 PUSH4 0x867904B4 EQ PUSH2 0x2F1 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x315 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x346 JUMPI DUP1 PUSH4 0xA24835D1 EQ PUSH2 0x35B JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x37F JUMPI DUP1 PUSH4 0xBEF97C87 EQ PUSH2 0x3A3 JUMPI DUP1 PUSH4 0xD4EE1D90 EQ PUSH2 0x3B8 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x3CD JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x3F4 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x117 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x120 PUSH2 0x415 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP4 MLOAD DUP2 DUP4 ADD MSTORE DUP4 MLOAD SWAP2 SWAP3 DUP4 SWAP3 SWAP1 DUP4 ADD SWAP2 DUP6 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x15A JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x142 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x187 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1A1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B9 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x4A0 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1D9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH1 0x4 CALLDATALOAD ISZERO ISZERO PUSH2 0x598 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1FE PUSH2 0x5B2 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x21C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B9 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x5B8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x246 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x24F PUSH2 0x5DF JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x271 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x27A PUSH2 0x5E8 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0xFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x29D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x5ED JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2C7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1FE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x626 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2E8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH2 0x638 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2FD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x70B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x321 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x32A PUSH2 0x7ED JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x352 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x120 PUSH2 0x7FC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x367 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x857 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x38B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B9 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x91D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3AF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B9 PUSH2 0x942 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3C4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x32A PUSH2 0x94B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3D9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1FE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH2 0x95A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x400 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x977 JUMP JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x1 DUP5 AND ISZERO PUSH2 0x100 MUL PUSH1 0x0 NOT ADD SWAP1 SWAP4 AND DUP5 SWAP1 DIV PUSH1 0x1F DUP2 ADD DUP5 SWAP1 DIV DUP5 MUL DUP3 ADD DUP5 ADD SWAP1 SWAP3 MSTORE DUP2 DUP2 MSTORE SWAP3 SWAP2 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x498 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x46D JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x498 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x47B JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x4AC DUP2 PUSH2 0xA14 JUMP JUMPDEST DUP3 ISZERO DUP1 PUSH2 0x4DA JUMPI POP CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x530 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F414D4F554E540000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST CALLER PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP10 AND DUP1 DUP6 MSTORE SWAP1 DUP4 MSTORE SWAP3 DUP2 SWAP1 KECCAK256 DUP8 SWAP1 SSTORE DUP1 MLOAD DUP8 DUP2 MSTORE SWAP1 MLOAD SWAP3 SWAP4 SWAP3 PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP3 SWAP2 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x5A0 PUSH2 0xA77 JUMP JUMPDEST PUSH1 0x8 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP2 ISZERO SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x5 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5C2 PUSH2 0xADB JUMP JUMPDEST PUSH2 0x5CD DUP5 DUP5 DUP5 PUSH2 0xB37 JUMP JUMPDEST ISZERO ISZERO PUSH2 0x5D5 JUMPI INVALID JUMPDEST POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x4 DUP2 JUMP JUMPDEST PUSH2 0x5F5 PUSH2 0xA77 JUMP JUMPDEST DUP3 PUSH2 0x5FF DUP2 PUSH2 0xA14 JUMP JUMPDEST DUP3 PUSH2 0x609 DUP2 PUSH2 0xA14 JUMP JUMPDEST DUP4 PUSH2 0x613 DUP2 PUSH2 0xC48 JUMP JUMPDEST PUSH2 0x61E DUP7 DUP7 DUP7 PUSH2 0xCA9 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x69A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND SWAP4 SWAP1 SWAP2 AND SWAP2 PUSH32 0x343765429AEA5A34B3FF6A3785A98A5ABB2597ACA87BFBB58632C173D585373A SWAP2 LOG3 PUSH1 0x1 DUP1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND OR SWAP1 SWAP2 SSTORE AND SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x713 PUSH2 0xA77 JUMP JUMPDEST DUP2 PUSH2 0x71D DUP2 PUSH2 0xA14 JUMP JUMPDEST DUP3 PUSH2 0x727 DUP2 PUSH2 0xC48 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH2 0x73A SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0xD63 AND JUMP JUMPDEST PUSH1 0x5 SSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x766 SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0xD63 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SWAP3 SWAP1 SWAP3 SSTORE DUP1 MLOAD DUP6 DUP2 MSTORE SWAP1 MLOAD PUSH32 0x9386C90217C323F58030F9DADCBC938F807A940F4FF41CD4CEAD9562F5DA7DC3 SWAP3 SWAP2 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG1 PUSH1 0x40 DUP1 MLOAD DUP5 DUP2 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND SWAP2 PUSH1 0x0 SWAP2 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xF80 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP2 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 LOG3 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x2 PUSH1 0x1 DUP6 AND ISZERO PUSH2 0x100 MUL PUSH1 0x0 NOT ADD SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 DIV PUSH1 0x1F DUP2 ADD DUP5 SWAP1 DIV DUP5 MUL DUP3 ADD DUP5 ADD SWAP1 SWAP3 MSTORE DUP2 DUP2 MSTORE SWAP3 SWAP2 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x498 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x46D JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x498 JUMP JUMPDEST PUSH2 0x85F PUSH2 0xA77 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x888 SWAP1 DUP3 PUSH4 0xFFFFFFFF PUSH2 0xDC7 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE PUSH1 0x5 SLOAD PUSH2 0x8B4 SWAP1 DUP3 PUSH4 0xFFFFFFFF PUSH2 0xDC7 AND JUMP JUMPDEST PUSH1 0x5 SSTORE PUSH1 0x40 DUP1 MLOAD DUP3 DUP2 MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND SWAP2 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xF80 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP2 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 LOG3 PUSH1 0x40 DUP1 MLOAD DUP3 DUP2 MSTORE SWAP1 MLOAD PUSH32 0x9A1B418BC061A5D80270261562E6986A35D995F8051145F277BE16103ABD3453 SWAP2 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x927 PUSH2 0xADB JUMP JUMPDEST PUSH2 0x931 DUP4 DUP4 PUSH2 0xE27 JUMP JUMPDEST ISZERO ISZERO PUSH2 0x939 JUMPI INVALID JUMPDEST POP PUSH1 0x1 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x97F PUSH2 0xA77 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x9E5 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F4F574E4552000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0xA74 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0xAD9 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0xFF AND ISZERO ISZERO PUSH2 0xAD9 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5452414E53464552535F44495341424C454400000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP4 PUSH2 0xB43 DUP2 PUSH2 0xA14 JUMP JUMPDEST DUP4 PUSH2 0xB4D DUP2 PUSH2 0xA14 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH2 0xB81 SWAP1 DUP6 PUSH4 0xFFFFFFFF PUSH2 0xDC7 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE DUP3 MSTORE DUP1 DUP4 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE SWAP2 DUP2 MSTORE PUSH1 0x6 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD PUSH2 0xBC2 SWAP1 DUP6 PUSH4 0xFFFFFFFF PUSH2 0xDC7 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE SWAP1 DUP8 AND DUP2 MSTORE KECCAK256 SLOAD PUSH2 0xBF7 SWAP1 DUP6 PUSH4 0xFFFFFFFF PUSH2 0xD63 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP8 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE DUP1 MLOAD DUP9 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP4 SWAP3 DUP11 AND SWAP3 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xF80 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP3 SWAP2 DUP3 SWAP1 SUB ADD SWAP1 LOG3 POP PUSH1 0x1 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ADDRESS EQ ISZERO PUSH2 0xA74 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F414444524553535F49535F53454C4600000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x7472616E7366657228616464726573732C75696E743235362900000000000000 DUP2 MSTORE DUP2 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x19 ADD DUP2 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x64 SWAP1 SWAP3 ADD SWAP1 SWAP3 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE PUSH2 0xD5E SWAP1 DUP5 SWAP1 PUSH2 0xED2 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 ADD DUP4 DUP2 LT ISZERO PUSH2 0xDC0 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT ISZERO PUSH2 0xE21 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F554E444552464C4F5700000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP SWAP1 SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0xE33 DUP2 PUSH2 0xA14 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0xE53 SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0xDC7 AND JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP3 SWAP1 SWAP3 SSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND DUP2 MSTORE KECCAK256 SLOAD PUSH2 0xE85 SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0xD63 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE DUP1 MLOAD DUP7 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP3 CALLER SWAP3 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xF80 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0xEDA PUSH2 0xF60 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE POP SWAP1 POP PUSH1 0x20 DUP2 DUP4 MLOAD PUSH1 0x20 DUP6 ADD PUSH1 0x0 DUP8 GAS CALL DUP1 ISZERO ISZERO PUSH2 0xF07 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD ISZERO ISZERO PUSH2 0xD5E JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5452414E534645525F4641494C454400000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 SWAP1 PUSH1 0x20 DUP3 MUL DUP1 CODESIZE DUP4 CODECOPY POP SWAP2 SWAP3 SWAP2 POP POP JUMP STOP 0xdd CALLCODE MSTORE 0xad SHL 0xe2 0xc8 SWAP12 PUSH10 0xC2B068FC378DAA952BA7 CALL PUSH4 0xC4A11628 0xf5 GAS 0x4d 0xf5 0x23 0xb3 0xef LOG1 PUSH6 0x627A7A723058 KECCAK256 BALANCE 0xb5 PUSH11 0xEBC8336B547B3E1346F50C 0x2f DIFFICULTY 0xf7 0xd 0xef SSTORE 0x4e 0xd4 0xcb LOG4 0xc8 SHL 0xcf 0x2e MULMOD 0x2d DIV PUSH32 0x29000000000000000000000000000000000000000000000000000000000000 ", + "sourceMap": "243:3584:51:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;256:18:49;;8:9:-1;5:2;;;30:1;27;20:12;5:2;256:18:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;256:18:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3601:420;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3601:420:49;;;-1:-1:-1;;;;;3601:420:49;;;;;;;;;;;;;;;;;;;;;;;1565:94:51;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1565:94:51;;;;;;;;;324:26:49;;8:9:-1;5:2;;;30:1;27;20:12;5:2;324:26:49;;;;;;;;;;;;;;;;;;;;3634:191:51;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3634:191:51;-1:-1:-1;;;;;3634:191:51;;;;;;;;;;;;300:21:49;;8:9:-1;5:2;;;30:1;27;20:12;5:2;300:21:49;;;;;;;;;;;;;;;;;;;;;;;343:34:51;;8:9:-1;5:2;;;30:1;27;20:12;5:2;343:34:51;;;;;;;;;;;;;;;;;;;;;;;1077:194:71;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1077:194:71;-1:-1:-1;;;;;1077:194:71;;;;;;;;;;;;353:44:49;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;353:44:49;;;-1:-1:-1;;;;;353:44:49;;;1159:176:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1159:176:66;;;;1910:257:51;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1910:257:51;;;-1:-1:-1;;;;;1910:257:51;;;;;157:20:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;157:20:66;;;;;;;;-1:-1:-1;;;;;157:20:66;;;;;;;;;;;;;;277::49;;8:9:-1;5:2;;;30:1;27;20:12;5:2;277:20:49;;;;2414:239:51;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2414:239:51;;;-1:-1:-1;;;;;2414:239:51;;;;;3066:152;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3066:152:51;;;-1:-1:-1;;;;;3066:152:51;;;;;381:35;;8:9:-1;5:2;;;30:1;27;20:12;5:2;381:35:51;;;;180:23:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;180:23:66;;;;400:64:49;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;400:64:49;-1:-1:-1;;;;;400:64:49;;;;;;;;;;945:140:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;945:140:66;;;-1:-1:-1;;;;;945:140:66;;;256:18:49;;;;;;;;;;;;;;-1:-1:-1;;256:18:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;3601:420::-;3691:12;3672:8;475:23:72;489:8;475:13;:23::i;:::-;3836:11:49;;;:51;;-1:-1:-1;3861:10:49;3851:21;;;;:9;:21;;;;;;;;-1:-1:-1;;;;;3851:31:49;;;;;;;;;;:36;3836:51;3828:82;;;;;;;-1:-1:-1;;;;;3828:82:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;3925:10;3915:21;;;;:9;:21;;;;;;;;-1:-1:-1;;;;;3915:31:49;;;;;;;;;;;;:40;;;3964:38;;;;;;;3915:31;;3925:10;3964:38;;;;;;;;;;;-1:-1:-1;4013:4:49;;3601:420;-1:-1:-1;;;3601:420:49:o;1565:94:51:-;575:12:66;:10;:12::i;:::-;1627:16:51;:28;;-1:-1:-1;;1627:28:51;1646:9;;1627:28;;;;;;1565:94::o;324:26:49:-;;;;:::o;3634:191:51:-;3742:12;1220:19;:17;:19::i;:::-;3767:38;3786:5;3793:3;3798:6;3767:18;:38::i;:::-;3760:46;;;;;;-1:-1:-1;3817:4:51;3634:191;;;;;:::o;300:21:49:-;;;;;;:::o;343:34:51:-;376:1;343:34;:::o;1077:194:71:-;575:12:66;:10;:12::i;:::-;1190:6:71;475:23:72;489:8;475:13;:23::i;:::-;1211:3:71;475:23:72;489:8;475:13;:23::i;:::-;1224:3:71;782:18:72;791:8;782;:18::i;:::-;1233:34:71;1246:6;1254:3;1259:7;1233:12;:34::i;:::-;502:1:72;;591::66;1077:194:71;;;:::o;353:44:49:-;;;;;;;;;;;;;:::o;1159:176:66:-;1219:8;;-1:-1:-1;;;;;1219:8:66;1205:10;:22;1197:52;;;;;-1:-1:-1;;;;;1197:52:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;1277:8;;;1270:5;;1258:28;;-1:-1:-1;;;;;1277:8:66;;;;1270:5;;;;1258:28;;;1298:8;;;;1290:16;;-1:-1:-1;;;;;1298:8:66;;-1:-1:-1;;1290:16:66;;;;;;;1310:21;;;1159:176::o;1910:257:51:-;575:12:66;:10;:12::i;:::-;1985:3:51;475:23:72;489:8;475:13;:23::i;:::-;1998:3:51;782:18:72;791:8;782;:18::i;:::-;2021:11:51;;:24;;2037:7;2021:24;:15;:24;:::i;:::-;2007:11;:38;-1:-1:-1;;;;;2066:14:51;;;;;;:9;:14;;;;;;:27;;2085:7;2066:18;:27::i;:::-;-1:-1:-1;;;;;2049:14:51;;;;;;:9;:14;;;;;;;;;:44;;;;2103:17;;;;;;;;;;;;;;;;;;2129:34;;;;;;;;2146:1;-1:-1:-1;;;;;;;2129:34:51;;;2146:1;;2129:34;2146:1;;-1:-1:-1;;2146:1:51;-1:-1:-1;;;;;2129:34:51;;;;;;;;502:1:72;591::66;1910:257:51;;:::o;157:20:66:-;;;-1:-1:-1;;;;;157:20:66;;:::o;277::49:-;;;;;;;;;;;;;;;-1:-1:-1;;277:20:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2414:239:51;575:12:66;:10;:12::i;:::-;-1:-1:-1;;;;;2503:16:51;;;;;;:9;:16;;;;;;:29;;2524:7;2503:20;:29::i;:::-;-1:-1:-1;;;;;2484:16:51;;;;;;:9;:16;;;;;:48;2550:11;;:24;;2566:7;2550:15;:24::i;:::-;2536:11;:38;2584:36;;;;;;;;2608:1;;-1:-1:-1;;;;;2584:36:51;;;-1:-1:-1;;;;;;;;;;;2584:36:51;;;;;;;;2629:20;;;;;;;;;;;;;;;;;2414:239;;:::o;3066:152::-;3146:12;1220:19;:17;:19::i;:::-;3171:27;3186:3;3191:6;3171:14;:27::i;:::-;3164:35;;;;;;-1:-1:-1;3210:4:51;3066:152;;;;:::o;381:35::-;;;;;;:::o;180:23:66:-;;;-1:-1:-1;;;;;180:23:66;;:::o;400:64:49:-;;;;;;;;;;;;;;;;;;;;;;;;:::o;945:140:66:-;575:12;:10;:12::i;:::-;1033:5;;-1:-1:-1;;;;;1020:18:66;;;1033:5;;1020:18;;1012:45;;;;;-1:-1:-1;;;;;1012:45:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;1061:8;:20;;-1:-1:-1;;1061:20:66;-1:-1:-1;;;;;1061:20:66;;;;;;;;;;945:140::o;553:117:72:-;-1:-1:-1;;;;;620:22:72;;;;612:54;;;;;-1:-1:-1;;;;;612:54:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;553:117;:::o;642:93:66:-;704:5;;-1:-1:-1;;;;;704:5:66;690:10;:19;682:49;;;;;-1:-1:-1;;;;;682:49:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;642:93::o;1294:102:51:-;1349:16;;;;1341:51;;;;;;;-1:-1:-1;;;;;1341:51:51;;;;;;;;;;;;;;;;;;;;;;;;;;;2581:372:49;2710:12;2676:5;475:23:72;489:8;475:13;:23::i;:::-;2696:3:49;475:23:72;489:8;475:13;:23::i;:::-;-1:-1:-1;;;;;2759:16:49;;;;;;:9;:16;;;;;;;;2776:10;2759:28;;;;;;;;:40;;2792:6;2759:32;:40::i;:::-;-1:-1:-1;;;;;2728:16:49;;;;;;:9;:16;;;;;;;;2745:10;2728:28;;;;;;;:71;;;;2822:16;;;:9;:16;;;;;:28;;2843:6;2822:20;:28::i;:::-;-1:-1:-1;;;;;2803:16:49;;;;;;;:9;:16;;;;;;:47;;;;2871:14;;;;;;;:26;;2890:6;2871:18;:26::i;:::-;-1:-1:-1;;;;;2854:14:49;;;;;;;:9;:14;;;;;;;;:43;;;;2906:28;;;;;;;-1:-1:-1;;2854:14:49;;2906:28;;;;;;;;2854:14;;-1:-1:-1;2854:14:49;-1:-1:-1;;;;;2906:28:49;;;;;;;;-1:-1:-1;2945:4:49;;2581:372;-1:-1:-1;;;;;2581:372:49:o;855:115:72:-;937:4;-1:-1:-1;;;;;917:25:72;;;;909:57;;;;;-1:-1:-1;;;;;909:57:72;;;;;;;;;;;;;;;;;;;;;;;;;;;1214:173:70;248:38;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1323:59:70;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;1323:59:70;;;;;;;;25:18:-1;;61:17;;1323:59:70;182:15:-1;1323:59:70;;;;179:29:-1;;;;160:49;;;1307:76:70;;1315:6;;1307:7;:76::i;:::-;1214:173;;;:::o;288:144:69:-;348:7;373;;;392;;;;384:32;;;;;-1:-1:-1;;;;;384:32:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;427:1;288:144;-1:-1:-1;;;288:144:69:o;613:129::-;673:7;694:8;;;;686:34;;;;;-1:-1:-1;;;;;686:34:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;731:7:69;;;613:129::o;1968:264:49:-;2049:12;2035:3;475:23:72;489:8;475:13;:23::i;:::-;2101:10:49;2091:21;;;;:9;:21;;;;;;:33;;2117:6;2091:33;:25;:33;:::i;:::-;2077:10;2067:21;;;;:9;:21;;;;;;:57;;;;-1:-1:-1;;;;;2145:14:49;;;;;;:26;;2164:6;2145:18;:26::i;:::-;-1:-1:-1;;;;;2128:14:49;;;;;;:9;:14;;;;;;;;:43;;;;2180:33;;;;;;;-1:-1:-1;;2128:14:49;;2189:10;;2180:33;;2128:14;;-1:-1:-1;2128:14:49;-1:-1:-1;;;;;2180:33:49;;;;;;;;;-1:-1:-1;2224:4:49;;1968:264;-1:-1:-1;;;1968:264:49:o;2255:557:70:-;2324:21;;:::i;:::-;:36;;;;;;;;;2357:1;2324:36;;;;;2687:2;2661:3;2580:5;2574:12;2495:2;2488:5;2484:14;2465:1;2430:6;2404:3;2394:317;2725:7;2718:15;2715:2;;;2750:1;2747;2740:12;2715:2;-1:-1:-1;2773:6:70;;:11;;2765:43;;;;;-1:-1:-1;;;;;2765:43:70;;;;;;;;;;;;;;;;;;;;;;;;;;;243:3584:51;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;-1:-1;243:3584:51;;;-1:-1:-1;;243:3584:51:o" + }, + "methodIdentifiers": { + "acceptOwnership()": "79ba5097", + "allowance(address,address)": "dd62ed3e", + "approve(address,uint256)": "095ea7b3", + "balanceOf(address)": "70a08231", + "decimals()": "313ce567", + "destroy(address,uint256)": "a24835d1", + "disableTransfers(bool)": "1608f18f", + "issue(address,uint256)": "867904b4", + "name()": "06fdde03", + "newOwner()": "d4ee1d90", + "owner()": "8da5cb5b", + "symbol()": "95d89b41", + "totalSupply()": "18160ddd", + "transfer(address,uint256)": "a9059cbb", + "transferFrom(address,address,uint256)": "23b872dd", + "transferOwnership(address)": "f2fde38b", + "transfersEnabled()": "bef97c87", + "version()": "54fd4d50", + "withdrawTokens(address,address,uint256)": "5e35359e" + } + }, + "userdoc": { + "methods": {} + } + } + }, + "solidity/contracts/token/interfaces/IERC20Token.sol": { + "IERC20Token": { + "abi": [ + { + "constant": true, + "inputs": [], + "name": "name", + "outputs": [ + { + "name": "", + "type": "string" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_spender", + "type": "address" + }, + { + "name": "_value", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "name": "success", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_from", + "type": "address" + }, + { + "name": "_to", + "type": "address" + }, + { + "name": "_value", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "name": "success", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "decimals", + "outputs": [ + { + "name": "", + "type": "uint8" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_owner", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "symbol", + "outputs": [ + { + "name": "", + "type": "string" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_to", + "type": "address" + }, + { + "name": "_value", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "name": "success", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_owner", + "type": "address" + }, + { + "name": "_spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + } + ], + "devdoc": { + "methods": {} + }, + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "allowance(address,address)": "dd62ed3e", + "approve(address,uint256)": "095ea7b3", + "balanceOf(address)": "70a08231", + "decimals()": "313ce567", + "name()": "06fdde03", + "symbol()": "95d89b41", + "totalSupply()": "18160ddd", + "transfer(address,uint256)": "a9059cbb", + "transferFrom(address,address,uint256)": "23b872dd" + } + }, + "userdoc": { + "methods": {} + } + } + }, + "solidity/contracts/token/interfaces/IEtherToken.sol": { + "IEtherToken": { + "abi": [ + { + "constant": true, + "inputs": [], + "name": "name", + "outputs": [ + { + "name": "", + "type": "string" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_spender", + "type": "address" + }, + { + "name": "_value", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "name": "success", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_to", + "type": "address" + }, + { + "name": "_amount", + "type": "uint256" + } + ], + "name": "withdrawTo", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_from", + "type": "address" + }, + { + "name": "_to", + "type": "address" + }, + { + "name": "_value", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "name": "success", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_amount", + "type": "uint256" + } + ], + "name": "withdraw", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "decimals", + "outputs": [ + { + "name": "", + "type": "uint8" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_owner", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "symbol", + "outputs": [ + { + "name": "", + "type": "string" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_to", + "type": "address" + }, + { + "name": "_value", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "name": "success", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_to", + "type": "address" + } + ], + "name": "depositTo", + "outputs": [], + "payable": true, + "stateMutability": "payable", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "deposit", + "outputs": [], + "payable": true, + "stateMutability": "payable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_owner", + "type": "address" + }, + { + "name": "_spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + } + ], + "devdoc": { + "methods": {} + }, + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "allowance(address,address)": "dd62ed3e", + "approve(address,uint256)": "095ea7b3", + "balanceOf(address)": "70a08231", + "decimals()": "313ce567", + "deposit()": "d0e30db0", + "depositTo(address)": "b760faf9", + "name()": "06fdde03", + "symbol()": "95d89b41", + "totalSupply()": "18160ddd", + "transfer(address,uint256)": "a9059cbb", + "transferFrom(address,address,uint256)": "23b872dd", + "withdraw(uint256)": "2e1a7d4d", + "withdrawTo(address,uint256)": "205c2878" + } + }, + "userdoc": { + "methods": {} + } + } + }, + "solidity/contracts/token/interfaces/ISmartToken.sol": { + "ISmartToken": { + "abi": [ + { + "constant": true, + "inputs": [], + "name": "name", + "outputs": [ + { + "name": "", + "type": "string" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_spender", + "type": "address" + }, + { + "name": "_value", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "name": "success", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_disable", + "type": "bool" + } + ], + "name": "disableTransfers", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_from", + "type": "address" + }, + { + "name": "_to", + "type": "address" + }, + { + "name": "_value", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "name": "success", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "decimals", + "outputs": [ + { + "name": "", + "type": "uint8" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_token", + "type": "address" + }, + { + "name": "_to", + "type": "address" + }, + { + "name": "_amount", + "type": "uint256" + } + ], + "name": "withdrawTokens", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_owner", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "acceptOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_to", + "type": "address" + }, + { + "name": "_amount", + "type": "uint256" + } + ], + "name": "issue", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "owner", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "symbol", + "outputs": [ + { + "name": "", + "type": "string" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_from", + "type": "address" + }, + { + "name": "_amount", + "type": "uint256" + } + ], + "name": "destroy", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_to", + "type": "address" + }, + { + "name": "_value", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "name": "success", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_owner", + "type": "address" + }, + { + "name": "_spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ], + "devdoc": { + "methods": {} + }, + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "acceptOwnership()": "79ba5097", + "allowance(address,address)": "dd62ed3e", + "approve(address,uint256)": "095ea7b3", + "balanceOf(address)": "70a08231", + "decimals()": "313ce567", + "destroy(address,uint256)": "a24835d1", + "disableTransfers(bool)": "1608f18f", + "issue(address,uint256)": "867904b4", + "name()": "06fdde03", + "owner()": "8da5cb5b", + "symbol()": "95d89b41", + "totalSupply()": "18160ddd", + "transfer(address,uint256)": "a9059cbb", + "transferFrom(address,address,uint256)": "23b872dd", + "transferOwnership(address)": "f2fde38b", + "withdrawTokens(address,address,uint256)": "5e35359e" + } + }, + "userdoc": { + "methods": {} + } + } + }, + "solidity/contracts/utility/BProOracle.sol": { + "BProOracle": { + "abi": [ + { + "constant": false, + "inputs": [ + { + "name": "_mocStateAddress", + "type": "address" + } + ], + "name": "setMoCStateAddress", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "latestAnswer", + "outputs": [ + { + "name": "", + "type": "int256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "acceptOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "latestTimestamp", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "owner", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "mocStateAddress", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "newOwner", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "name": "_mocStateAddress", + "type": "address" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "mocStateAddress", + "type": "address" + }, + { + "indexed": false, + "name": "changerAddress", + "type": "address" + } + ], + "name": "SetMoCStateAddress", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "_prevOwner", + "type": "address" + }, + { + "indexed": true, + "name": "_newOwner", + "type": "address" + } + ], + "name": "OwnerUpdate", + "type": "event" + } + ], + "devdoc": { + "methods": { + "acceptOwnership()": { + "details": "used by a new owner to accept an ownership transfer" + }, + "latestAnswer()": { + "details": "BPro USD PRICE", + "return": "the BPro USD Price [using mocPrecision]" + }, + "latestTimestamp()": { + "details": "returns the update time.", + "return": "always returns current block's timestamp" + }, + "setMoCStateAddress(address)": { + "details": "set MoC state address", + "params": { + "_mocStateAddress": "MoC state address" + } + }, + "transferOwnership(address)": { + "details": "allows transferring the contract ownership the new owner still needs to accept the transfer can only be called by the contract owner", + "params": { + "_newOwner": "new contract owner" + } + } + } + }, + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b50604051602080610720833981016040525160008054600160a060020a031916331790556100468164010000000061004c810204565b506101d2565b61005d640100000000610157810204565b600160a060020a03811615156100fa57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5f6d6f63537461746541646472657373207368616c6c206e6f74206265207a6560448201527f726f206164647265737300000000000000000000000000000000000000000000606482015290519081900360840190fd5b60028054600160a060020a031916600160a060020a03838116919091179182905560408051338152905192909116917faabf985d3e03e92a41537d04d0e369c7afc56183856290aa2c1a230768842ef4916020908290030190a250565b600054600160a060020a031633146101d057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b565b61053f806101e16000396000f30060806040526004361061008d5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166327bcc684811461009257806350d25bcd146100b557806379ba5097146100dc5780638205bf6a146100f15780638da5cb5b14610106578063ab5e3e5b14610137578063d4ee1d901461014c578063f2fde38b14610161575b600080fd5b34801561009e57600080fd5b506100b3600160a060020a0360043516610182565b005b3480156100c157600080fd5b506100ca61027a565b60408051918252519081900360200190f35b3480156100e857600080fd5b506100b361030e565b3480156100fd57600080fd5b506100ca6103e1565b34801561011257600080fd5b5061011b6103e5565b60408051600160a060020a039092168252519081900360200190f35b34801561014357600080fd5b5061011b6103f4565b34801561015857600080fd5b5061011b610403565b34801561016d57600080fd5b506100b3600160a060020a0360043516610412565b61018a6104af565b600160a060020a0381161515610210576040805160e560020a62461bcd02815260206004820152602a60248201527f5f6d6f63537461746541646472657373207368616c6c206e6f74206265207a6560448201527f726f206164647265737300000000000000000000000000000000000000000000606482015290519081900360840190fd5b6002805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03838116919091179182905560408051338152905192909116917faabf985d3e03e92a41537d04d0e369c7afc56183856290aa2c1a230768842ef4916020908290030190a250565b600254604080517f747a56630000000000000000000000000000000000000000000000000000000081529051600092600160a060020a031691829163747a56639160048082019260209290919082900301818887803b1580156102dc57600080fd5b505af11580156102f0573d6000803e3d6000fd5b505050506040513d602081101561030657600080fd5b505191505090565b600154600160a060020a03163314610370576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b60015460008054604051600160a060020a0393841693909116917f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91a3600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b4290565b600054600160a060020a031681565b600254600160a060020a031681565b600154600160a060020a031681565b61041a6104af565b600054600160a060020a0382811691161415610480576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f53414d455f4f574e4552000000000000000000000000000000000000604482015290519081900360640190fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600054600160a060020a03163314610511576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b5600a165627a7a7230582053b09a203fc6c1287331f418788e6c63719ea550dcf43c898bc7a59fb166c3b10029", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP1 PUSH2 0x720 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 MSTORE MLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND CALLER OR SWAP1 SSTORE PUSH2 0x46 DUP2 PUSH5 0x100000000 PUSH2 0x4C DUP2 MUL DIV JUMP JUMPDEST POP PUSH2 0x1D2 JUMP JUMPDEST PUSH2 0x5D PUSH5 0x100000000 PUSH2 0x157 DUP2 MUL DIV JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0xFA JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5F6D6F63537461746541646472657373207368616C6C206E6F74206265207A65 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x726F206164647265737300000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x84 ADD SWAP1 REVERT JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 DUP2 AND SWAP2 SWAP1 SWAP2 OR SWAP2 DUP3 SWAP1 SSTORE PUSH1 0x40 DUP1 MLOAD CALLER DUP2 MSTORE SWAP1 MLOAD SWAP3 SWAP1 SWAP2 AND SWAP2 PUSH32 0xAABF985D3E03E92A41537D04D0E369C7AFC56183856290AA2C1A230768842EF4 SWAP2 PUSH1 0x20 SWAP1 DUP3 SWAP1 SUB ADD SWAP1 LOG2 POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x1D0 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH2 0x53F DUP1 PUSH2 0x1E1 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x8D JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x27BCC684 DUP2 EQ PUSH2 0x92 JUMPI DUP1 PUSH4 0x50D25BCD EQ PUSH2 0xB5 JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0xDC JUMPI DUP1 PUSH4 0x8205BF6A EQ PUSH2 0xF1 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x106 JUMPI DUP1 PUSH4 0xAB5E3E5B EQ PUSH2 0x137 JUMPI DUP1 PUSH4 0xD4EE1D90 EQ PUSH2 0x14C JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x161 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x182 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xC1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xCA PUSH2 0x27A JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xE8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB3 PUSH2 0x30E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xFD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xCA PUSH2 0x3E1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x112 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x11B PUSH2 0x3E5 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x143 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x11B PUSH2 0x3F4 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x158 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x11B PUSH2 0x403 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x16D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x412 JUMP JUMPDEST PUSH2 0x18A PUSH2 0x4AF JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0x210 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5F6D6F63537461746541646472657373207368616C6C206E6F74206265207A65 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x726F206164647265737300000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x84 ADD SWAP1 REVERT JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 DUP2 AND SWAP2 SWAP1 SWAP2 OR SWAP2 DUP3 SWAP1 SSTORE PUSH1 0x40 DUP1 MLOAD CALLER DUP2 MSTORE SWAP1 MLOAD SWAP3 SWAP1 SWAP2 AND SWAP2 PUSH32 0xAABF985D3E03E92A41537D04D0E369C7AFC56183856290AA2C1A230768842EF4 SWAP2 PUSH1 0x20 SWAP1 DUP3 SWAP1 SUB ADD SWAP1 LOG2 POP JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x747A566300000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP2 DUP3 SWAP2 PUSH4 0x747A5663 SWAP2 PUSH1 0x4 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP9 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2DC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2F0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x306 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 POP POP SWAP1 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x370 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND SWAP4 SWAP1 SWAP2 AND SWAP2 PUSH32 0x343765429AEA5A34B3FF6A3785A98A5ABB2597ACA87BFBB58632C173D585373A SWAP2 LOG3 PUSH1 0x1 DUP1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND OR SWAP1 SWAP2 SSTORE AND SWAP1 SSTORE JUMP JUMPDEST TIMESTAMP SWAP1 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH2 0x41A PUSH2 0x4AF JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x480 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F4F574E4552000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x511 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST JUMP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 MSTORE8 0xb0 SWAP11 KECCAK256 0x3f 0xc6 0xc1 0x28 PUSH20 0x31F418788E6C63719EA550DCF43C898BC7A59FB1 PUSH7 0xC3B10029000000 ", + "sourceMap": "133:1182:55:-;;;403:89;8:9:-1;5:2;;;30:1;27;20:12;5:2;403:89:55;;;;;;;;;;;;;488:5:66;:18;;-1:-1:-1;;;;;;488:18:66;496:10;488:18;;;452:36:55;403:89;452:18;;;;:36;:::i;:::-;403:89;133:1182;;1055:258;575:12:66;:10;;;;:12;:::i;:::-;-1:-1:-1;;;;;1138:30:55;;;;1130:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1219:15;:34;;-1:-1:-1;;;;;;1219:34:55;-1:-1:-1;;;;;1219:34:55;;;;;;;;;;;1262:47;;;1298:10;1262:47;;;;1281:15;;;;;1262:47;;;;;;;;;;1055:258;:::o;642:93:66:-;704:5;;-1:-1:-1;;;;;704:5:66;690:10;:19;682:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;642:93::o;133:1182:55:-;;;;;;;" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "60806040526004361061008d5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166327bcc684811461009257806350d25bcd146100b557806379ba5097146100dc5780638205bf6a146100f15780638da5cb5b14610106578063ab5e3e5b14610137578063d4ee1d901461014c578063f2fde38b14610161575b600080fd5b34801561009e57600080fd5b506100b3600160a060020a0360043516610182565b005b3480156100c157600080fd5b506100ca61027a565b60408051918252519081900360200190f35b3480156100e857600080fd5b506100b361030e565b3480156100fd57600080fd5b506100ca6103e1565b34801561011257600080fd5b5061011b6103e5565b60408051600160a060020a039092168252519081900360200190f35b34801561014357600080fd5b5061011b6103f4565b34801561015857600080fd5b5061011b610403565b34801561016d57600080fd5b506100b3600160a060020a0360043516610412565b61018a6104af565b600160a060020a0381161515610210576040805160e560020a62461bcd02815260206004820152602a60248201527f5f6d6f63537461746541646472657373207368616c6c206e6f74206265207a6560448201527f726f206164647265737300000000000000000000000000000000000000000000606482015290519081900360840190fd5b6002805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03838116919091179182905560408051338152905192909116917faabf985d3e03e92a41537d04d0e369c7afc56183856290aa2c1a230768842ef4916020908290030190a250565b600254604080517f747a56630000000000000000000000000000000000000000000000000000000081529051600092600160a060020a031691829163747a56639160048082019260209290919082900301818887803b1580156102dc57600080fd5b505af11580156102f0573d6000803e3d6000fd5b505050506040513d602081101561030657600080fd5b505191505090565b600154600160a060020a03163314610370576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b60015460008054604051600160a060020a0393841693909116917f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91a3600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b4290565b600054600160a060020a031681565b600254600160a060020a031681565b600154600160a060020a031681565b61041a6104af565b600054600160a060020a0382811691161415610480576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f53414d455f4f574e4552000000000000000000000000000000000000604482015290519081900360640190fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600054600160a060020a03163314610511576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b5600a165627a7a7230582053b09a203fc6c1287331f418788e6c63719ea550dcf43c898bc7a59fb166c3b10029", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x8D JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x27BCC684 DUP2 EQ PUSH2 0x92 JUMPI DUP1 PUSH4 0x50D25BCD EQ PUSH2 0xB5 JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0xDC JUMPI DUP1 PUSH4 0x8205BF6A EQ PUSH2 0xF1 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x106 JUMPI DUP1 PUSH4 0xAB5E3E5B EQ PUSH2 0x137 JUMPI DUP1 PUSH4 0xD4EE1D90 EQ PUSH2 0x14C JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x161 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x182 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xC1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xCA PUSH2 0x27A JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xE8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB3 PUSH2 0x30E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xFD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xCA PUSH2 0x3E1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x112 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x11B PUSH2 0x3E5 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x143 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x11B PUSH2 0x3F4 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x158 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x11B PUSH2 0x403 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x16D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x412 JUMP JUMPDEST PUSH2 0x18A PUSH2 0x4AF JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0x210 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5F6D6F63537461746541646472657373207368616C6C206E6F74206265207A65 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x726F206164647265737300000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x84 ADD SWAP1 REVERT JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 DUP2 AND SWAP2 SWAP1 SWAP2 OR SWAP2 DUP3 SWAP1 SSTORE PUSH1 0x40 DUP1 MLOAD CALLER DUP2 MSTORE SWAP1 MLOAD SWAP3 SWAP1 SWAP2 AND SWAP2 PUSH32 0xAABF985D3E03E92A41537D04D0E369C7AFC56183856290AA2C1A230768842EF4 SWAP2 PUSH1 0x20 SWAP1 DUP3 SWAP1 SUB ADD SWAP1 LOG2 POP JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x747A566300000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP2 DUP3 SWAP2 PUSH4 0x747A5663 SWAP2 PUSH1 0x4 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP9 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2DC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2F0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x306 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 POP POP SWAP1 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x370 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND SWAP4 SWAP1 SWAP2 AND SWAP2 PUSH32 0x343765429AEA5A34B3FF6A3785A98A5ABB2597ACA87BFBB58632C173D585373A SWAP2 LOG3 PUSH1 0x1 DUP1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND OR SWAP1 SWAP2 SSTORE AND SWAP1 SSTORE JUMP JUMPDEST TIMESTAMP SWAP1 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH2 0x41A PUSH2 0x4AF JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x480 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F4F574E4552000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x511 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST JUMP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 MSTORE8 0xb0 SWAP11 KECCAK256 0x3f 0xc6 0xc1 0x28 PUSH20 0x31F418788E6C63719EA550DCF43C898BC7A59FB1 PUSH7 0xC3B10029000000 ", + "sourceMap": "133:1182:55:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1055:258;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1055:258:55;-1:-1:-1;;;;;1055:258:55;;;;;;;581:154;;8:9:-1;5:2;;;30:1;27;20:12;5:2;581:154:55;;;;;;;;;;;;;;;;;;;;1159:176:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1159:176:66;;;;839:122:55;;8:9:-1;5:2;;;30:1;27;20:12;5:2;839:122:55;;;;157:20:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;157:20:66;;;;;;;;-1:-1:-1;;;;;157:20:66;;;;;;;;;;;;;;187:30:55;;8:9:-1;5:2;;;30:1;27;20:12;5:2;187:30:55;;;;180:23:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;180:23:66;;;;945:140;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;945:140:66;-1:-1:-1;;;;;945:140:66;;;;;1055:258:55;575:12:66;:10;:12::i;:::-;-1:-1:-1;;;;;1138:30:55;;;;1130:85;;;;;-1:-1:-1;;;;;1130:85:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1219:15;:34;;-1:-1:-1;;1219:34:55;-1:-1:-1;;;;;1219:34:55;;;;;;;;;;;1262:47;;;1298:10;1262:47;;;;1281:15;;;;;1262:47;;;;;;;;;;1055:258;:::o;581:154::-;672:15;;706:24;;;;;;;;628:6;;-1:-1:-1;;;;;672:15:55;;;;706:22;;:24;;;;;;;;;;;;;;;628:6;672:15;706:24;;;5:2:-1;;;;30:1;27;20:12;5:2;706:24:55;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;706:24:55;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;706:24:55;;-1:-1:-1;581:154:55;;:::o;1159:176:66:-;1219:8;;-1:-1:-1;;;;;1219:8:66;1205:10;:22;1197:52;;;;;-1:-1:-1;;;;;1197:52:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;1277:8;;;1270:5;;1258:28;;-1:-1:-1;;;;;1277:8:66;;;;1270:5;;;;1258:28;;;1298:8;;;;1290:16;;-1:-1:-1;;1290:16:66;;;-1:-1:-1;;;;;1298:8:66;;1290:16;;;;1310:21;;;1159:176::o;839:122:55:-;909:3;839:122;:::o;157:20:66:-;;;-1:-1:-1;;;;;157:20:66;;:::o;187:30:55:-;;;-1:-1:-1;;;;;187:30:55;;:::o;180:23:66:-;;;-1:-1:-1;;;;;180:23:66;;:::o;945:140::-;575:12;:10;:12::i;:::-;1033:5;;-1:-1:-1;;;;;1020:18:66;;;1033:5;;1020:18;;1012:45;;;;;-1:-1:-1;;;;;1012:45:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;1061:8;:20;;-1:-1:-1;;1061:20:66;-1:-1:-1;;;;;1061:20:66;;;;;;;;;;945:140::o;642:93::-;704:5;;-1:-1:-1;;;;;704:5:66;690:10;:19;682:49;;;;;-1:-1:-1;;;;;682:49:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;642:93::o" + }, + "methodIdentifiers": { + "acceptOwnership()": "79ba5097", + "latestAnswer()": "50d25bcd", + "latestTimestamp()": "8205bf6a", + "mocStateAddress()": "ab5e3e5b", + "newOwner()": "d4ee1d90", + "owner()": "8da5cb5b", + "setMoCStateAddress(address)": "27bcc684", + "transferOwnership(address)": "f2fde38b" + } + }, + "userdoc": { + "methods": {} + } + } + }, + "solidity/contracts/utility/ChainlinkBTCToUSDOracle.sol": { + "ChainlinkBTCToUSDOracle": { + "abi": [ + { + "constant": true, + "inputs": [], + "name": "latestAnswer", + "outputs": [ + { + "name": "", + "type": "int256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "latestTimestamp", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + } + ], + "devdoc": { + "methods": { + "latestAnswer()": { + "details": "returns the BTC/USD rate.", + "return": "always returns the rate of 1" + }, + "latestTimestamp()": { + "details": "returns the BTC/USD update time.", + "return": "always returns current block's timestamp" + } + } + }, + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b5060b98061001f6000396000f30060806040526004361060485763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166350d25bcd8114604d5780638205bf6a146071575b600080fd5b348015605857600080fd5b50605f6083565b60408051918252519081900360200190f35b348015607c57600080fd5b50605f6089565b61271090565b42905600a165627a7a7230582017427c3651c6d2b7456e80db325cbd0fcf6119893a83e7518edde2578dda2cca0029", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0xB9 DUP1 PUSH2 0x1F PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH1 0x48 JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x50D25BCD DUP2 EQ PUSH1 0x4D JUMPI DUP1 PUSH4 0x8205BF6A EQ PUSH1 0x71 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH1 0x58 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x5F PUSH1 0x83 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH1 0x7C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x5F PUSH1 0x89 JUMP JUMPDEST PUSH2 0x2710 SWAP1 JUMP JUMPDEST TIMESTAMP SWAP1 JUMP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 OR TIMESTAMP PUSH29 0x3651C6D2B7456E80DB325CBD0FCF6119893A83E7518EDDE2578DDA2CCA STOP 0x29 ", + "sourceMap": "116:463:56:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;116:463:56;;;;;;;" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "60806040526004361060485763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166350d25bcd8114604d5780638205bf6a146071575b600080fd5b348015605857600080fd5b50605f6083565b60408051918252519081900360200190f35b348015607c57600080fd5b50605f6089565b61271090565b42905600a165627a7a7230582017427c3651c6d2b7456e80db325cbd0fcf6119893a83e7518edde2578dda2cca0029", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH1 0x48 JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x50D25BCD DUP2 EQ PUSH1 0x4D JUMPI DUP1 PUSH4 0x8205BF6A EQ PUSH1 0x71 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH1 0x58 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x5F PUSH1 0x83 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH1 0x7C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x5F PUSH1 0x89 JUMP JUMPDEST PUSH2 0x2710 SWAP1 JUMP JUMPDEST TIMESTAMP SWAP1 JUMP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 OR TIMESTAMP PUSH29 0x3651C6D2B7456E80DB325CBD0FCF6119893A83E7518EDDE2578DDA2CCA STOP 0x29 ", + "sourceMap": "116:463:56:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;310:78;;8:9:-1;5:2;;;30:1;27;20:12;5:2;310:78:56;;;;;;;;;;;;;;;;;;;;500:77;;8:9:-1;5:2;;;30:1;27;20:12;5:2;500:77:56;;;;310:78;211:5;310:78;:::o;500:77::-;570:3;500:77;:::o" + }, + "methodIdentifiers": { + "latestAnswer()": "50d25bcd", + "latestTimestamp()": "8205bf6a" + } + }, + "userdoc": { + "methods": {} + } + } + }, + "solidity/contracts/utility/ChainlinkETHToETHOracle.sol": { + "ChainlinkETHToETHOracle": { + "abi": [ + { + "constant": true, + "inputs": [], + "name": "latestAnswer", + "outputs": [ + { + "name": "", + "type": "int256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "latestTimestamp", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + } + ], + "devdoc": { + "methods": { + "latestAnswer()": { + "details": "returns the trivial ETH/ETH rate.", + "return": "always returns the trivial rate of 1" + }, + "latestTimestamp()": { + "details": "returns the trivial ETH/ETH update time.", + "return": "always returns current block's timestamp" + } + } + }, + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b5060b88061001f6000396000f30060806040526004361060485763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166350d25bcd8114604d5780638205bf6a146071575b600080fd5b348015605857600080fd5b50605f6083565b60408051918252519081900360200190f35b348015607c57600080fd5b50605f6088565b600190565b42905600a165627a7a72305820b982a034cefe2e36cd488c27cb03fb4263488a7ac3d3dc4d15cfd7518213d30c0029", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0xB8 DUP1 PUSH2 0x1F PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH1 0x48 JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x50D25BCD DUP2 EQ PUSH1 0x4D JUMPI DUP1 PUSH4 0x8205BF6A EQ PUSH1 0x71 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH1 0x58 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x5F PUSH1 0x83 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH1 0x7C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x5F PUSH1 0x88 JUMP JUMPDEST PUSH1 0x1 SWAP1 JUMP JUMPDEST TIMESTAMP SWAP1 JUMP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 0xb9 DUP3 LOG0 CALLVALUE 0xce INVALID 0x2e CALLDATASIZE 0xcd 0x48 DUP13 0x27 0xcb SUB CREATE2 TIMESTAMP PUSH4 0x488A7AC3 0xd3 0xdc 0x4d ISZERO 0xcf 0xd7 MLOAD DUP3 SGT 0xd3 0xc STOP 0x29 ", + "sourceMap": "160:483:57:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;160:483:57;;;;;;;" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "60806040526004361060485763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166350d25bcd8114604d5780638205bf6a146071575b600080fd5b348015605857600080fd5b50605f6083565b60408051918252519081900360200190f35b348015607c57600080fd5b50605f6088565b600190565b42905600a165627a7a72305820b982a034cefe2e36cd488c27cb03fb4263488a7ac3d3dc4d15cfd7518213d30c0029", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH1 0x48 JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x50D25BCD DUP2 EQ PUSH1 0x4D JUMPI DUP1 PUSH4 0x8205BF6A EQ PUSH1 0x71 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH1 0x58 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x5F PUSH1 0x83 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH1 0x7C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x5F PUSH1 0x88 JUMP JUMPDEST PUSH1 0x1 SWAP1 JUMP JUMPDEST TIMESTAMP SWAP1 JUMP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 0xb9 DUP3 LOG0 CALLVALUE 0xce INVALID 0x2e CALLDATASIZE 0xcd 0x48 DUP13 0x27 0xcb SUB CREATE2 TIMESTAMP PUSH4 0x488A7AC3 0xd3 0xdc 0x4d ISZERO 0xcf 0xd7 MLOAD DUP3 SGT 0xd3 0xc STOP 0x29 ", + "sourceMap": "160:483:57:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;366:78;;8:9:-1;5:2;;;30:1;27;20:12;5:2;366:78:57;;;;;;;;;;;;;;;;;;;;564:77;;8:9:-1;5:2;;;30:1;27;20:12;5:2;564:77:57;;;;366:78;255:1;366:78;:::o;564:77::-;634:3;564:77;:::o" + }, + "methodIdentifiers": { + "latestAnswer()": "50d25bcd", + "latestTimestamp()": "8205bf6a" + } + }, + "userdoc": { + "methods": {} + } + } + }, + "solidity/contracts/utility/ChainlinkUSDToBTCOracle.sol": { + "ChainlinkUSDToBTCOracle": { + "abi": [ + { + "constant": true, + "inputs": [], + "name": "latestAnswer", + "outputs": [ + { + "name": "", + "type": "int256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "latestTimestamp", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + } + ], + "devdoc": { + "methods": { + "latestAnswer()": { + "details": "returns the USD/BTC rate.", + "return": "always returns the rate of 10000" + }, + "latestTimestamp()": { + "details": "returns the USD/BTC update time.", + "return": "always returns current block's timestamp" + } + } + }, + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b5060b98061001f6000396000f30060806040526004361060485763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166350d25bcd8114604d5780638205bf6a146071575b600080fd5b348015605857600080fd5b50605f6083565b60408051918252519081900360200190f35b348015607c57600080fd5b50605f6089565b61271090565b42905600a165627a7a723058205163230a17581c29ef01f88cb68d01b1006c815c7d452027cbce2ebdbfc725560029", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0xB9 DUP1 PUSH2 0x1F PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH1 0x48 JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x50D25BCD DUP2 EQ PUSH1 0x4D JUMPI DUP1 PUSH4 0x8205BF6A EQ PUSH1 0x71 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH1 0x58 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x5F PUSH1 0x83 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH1 0x7C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x5F PUSH1 0x89 JUMP JUMPDEST PUSH2 0x2710 SWAP1 JUMP JUMPDEST TIMESTAMP SWAP1 JUMP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 MLOAD PUSH4 0x230A1758 SHR 0x29 0xef ADD 0xf8 DUP13 0xb6 DUP14 ADD 0xb1 STOP PUSH13 0x815C7D452027CBCE2EBDBFC725 JUMP STOP 0x29 ", + "sourceMap": "116:467:58:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;116:467:58;;;;;;;" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "60806040526004361060485763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166350d25bcd8114604d5780638205bf6a146071575b600080fd5b348015605857600080fd5b50605f6083565b60408051918252519081900360200190f35b348015607c57600080fd5b50605f6089565b61271090565b42905600a165627a7a723058205163230a17581c29ef01f88cb68d01b1006c815c7d452027cbce2ebdbfc725560029", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH1 0x48 JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x50D25BCD DUP2 EQ PUSH1 0x4D JUMPI DUP1 PUSH4 0x8205BF6A EQ PUSH1 0x71 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH1 0x58 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x5F PUSH1 0x83 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH1 0x7C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x5F PUSH1 0x89 JUMP JUMPDEST PUSH2 0x2710 SWAP1 JUMP JUMPDEST TIMESTAMP SWAP1 JUMP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 MLOAD PUSH4 0x230A1758 SHR 0x29 0xef ADD 0xf8 DUP13 0xb6 DUP14 ADD 0xb1 STOP PUSH13 0x815C7D452027CBCE2EBDBFC725 JUMP STOP 0x29 ", + "sourceMap": "116:467:58:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;314:78;;8:9:-1;5:2;;;30:1;27;20:12;5:2;314:78:58;;;;;;;;;;;;;;;;;;;;504:77;;8:9:-1;5:2;;;30:1;27;20:12;5:2;504:77:58;;;;314:78;211:5;314:78;:::o;504:77::-;574:3;504:77;:::o" + }, + "methodIdentifiers": { + "latestAnswer()": "50d25bcd", + "latestTimestamp()": "8205bf6a" + } + }, + "userdoc": { + "methods": {} + } + } + }, + "solidity/contracts/utility/ContractRegistry.sol": { + "ContractRegistry": { + "abi": [ + { + "constant": true, + "inputs": [ + { + "name": "_contractName", + "type": "bytes32" + } + ], + "name": "getAddress", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_contractName", + "type": "bytes32" + } + ], + "name": "unregisterAddress", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "", + "type": "uint256" + } + ], + "name": "contractNames", + "outputs": [ + { + "name": "", + "type": "string" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_contractName", + "type": "bytes32" + }, + { + "name": "_contractAddress", + "type": "address" + } + ], + "name": "registerAddress", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "itemCount", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "acceptOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "owner", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_contractName", + "type": "bytes32" + } + ], + "name": "addressOf", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "newOwner", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "_contractName", + "type": "bytes32" + }, + { + "indexed": false, + "name": "_contractAddress", + "type": "address" + } + ], + "name": "AddressUpdate", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "_prevOwner", + "type": "address" + }, + { + "indexed": true, + "name": "_newOwner", + "type": "address" + } + ], + "name": "OwnerUpdate", + "type": "event" + } + ], + "devdoc": { + "methods": { + "acceptOwnership()": { + "details": "used by a new owner to accept an ownership transfer" + }, + "addressOf(bytes32)": { + "details": "returns the address associated with the given contract name", + "params": { + "_contractName": "contract name" + }, + "return": "contract address" + }, + "getAddress(bytes32)": { + "details": "deprecated, backward compatibility" + }, + "itemCount()": { + "details": "returns the number of items in the registry", + "return": "number of items" + }, + "registerAddress(bytes32,address)": { + "details": "registers a new address for the contract name in the registry", + "params": { + "_contractAddress": "contract address", + "_contractName": "contract name" + } + }, + "transferOwnership(address)": { + "details": "allows transferring the contract ownership the new owner still needs to accept the transfer can only be called by the contract owner", + "params": { + "_newOwner": "new contract owner" + } + }, + "unregisterAddress(bytes32)": { + "details": "removes an existing contract address from the registry", + "params": { + "_contractName": "contract name" + } + } + } + }, + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "608060405260008054600160a060020a03191633179055610aba806100256000396000f3006080604052600436106100a35763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166321f8a72181146100a85780632bbd9530146100dc5780633ca6bb92146100f6578063662de379146101835780636bfb0d01146101a757806379ba5097146101ce5780638da5cb5b146101e3578063bb34534c146101f8578063d4ee1d9014610210578063f2fde38b14610225575b600080fd5b3480156100b457600080fd5b506100c0600435610246565b60408051600160a060020a039092168252519081900360200190f35b3480156100e857600080fd5b506100f4600435610257565b005b34801561010257600080fd5b5061010e60043561047c565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610148578181015183820152602001610130565b50505050905090810190601f1680156101755780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561018f57600080fd5b506100f4600435600160a060020a0360243516610523565b3480156101b357600080fd5b506101bc610637565b60408051918252519081900360200190f35b3480156101da57600080fd5b506100f461063e565b3480156101ef57600080fd5b506100c0610711565b34801561020457600080fd5b506100c0600435610720565b34801561021c57600080fd5b506100c061073b565b34801561023157600080fd5b506100f4600160a060020a036004351661074a565b600061025182610720565b92915050565b606060008060006102666107e7565b600085815260026020526040902054600160a060020a031615156102d4576040805160e560020a62461bcd02815260206004820152601060248201527f4552525f494e56414c49445f4e414d4500000000000000000000000000000000604482015290519081900360640190fd5b6000858152600260205260409020805473ffffffffffffffffffffffffffffffffffffffff19169055600354600110156104195760038054600019810190811061031a57fe5b600091825260209182902001805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156103a85780601f1061037d576101008083540402835291602001916103a8565b820191906000526020600020905b81548152906001019060200180831161038b57829003601f168201915b50505060008881526002602052604090206001015460038054949850909650879390925086915081106103d757fe5b9060005260206000200190805190602001906103f4929190610966565b506103fe8461084b565b60008181526002602052604090206001810185905590925090505b600380549061042c9060001983016109e4565b50600085815260026020908152604080832060010183905580519283525187927ffc08d1253c81bcd5444fc7056ef1f5a5df4c9220b6fd70d7449267f1f0f2991892908290030190a25050505050565b600380548290811061048a57fe5b600091825260209182902001805460408051601f600260001961010060018716150201909416939093049283018590048502810185019091528181529350909183018282801561051b5780601f106104f05761010080835404028352916020019161051b565b820191906000526020600020905b8154815290600101906020018083116104fe57829003601f168201915b505050505081565b60008061052e6107e7565b8261053881610852565b600085815260026020526040902054600160a060020a039081169350841683141561056257610630565b600160a060020a03831615156105c257600361057d866108b5565b8154600181018084556000938452602093849020835191946105a59491909301920190610966565b506000868152600260205260409020600019820160019091015591505b600085815260026020908152604091829020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0388169081179091558251908152915187927ffc08d1253c81bcd5444fc7056ef1f5a5df4c9220b6fd70d7449267f1f0f2991892908290030190a25b5050505050565b6003545b90565b600154600160a060020a031633146106a0576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b60015460008054604051600160a060020a0393841693909116917f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91a3600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b600054600160a060020a031681565b600090815260026020526040902054600160a060020a031690565b600154600160a060020a031681565b6107526107e7565b600054600160a060020a03828116911614156107b8576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f53414d455f4f574e4552000000000000000000000000000000000000604482015290519081900360640190fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600054600160a060020a03163314610849576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b565b6020015190565b600160a060020a03811615156108b2576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b50565b604080516020808252818301909252606091829160009180820161040080388339019050509150600090505b602081101561095f578381602081106108f657fe5b1a7f010000000000000000000000000000000000000000000000000000000000000002828281518110151561092757fe5b9060200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053506001016108e1565b5092915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106109a757805160ff19168380011785556109d4565b828001600101855582156109d4579182015b828111156109d45782518255916020019190600101906109b9565b506109e0929150610a0d565b5090565b815481835581811115610a0857600083815260209020610a08918101908301610a27565b505050565b61063b91905b808211156109e05760008155600101610a13565b61063b91905b808211156109e0576000610a418282610a4a565b50600101610a2d565b50805460018160011615610100020316600290046000825580601f10610a7057506108b2565b601f0160209004906000526020600020908101906108b29190610a0d5600a165627a7a72305820725bd5161c1217c7cb02b8b50cf5e635f08da97d20f1b1f802664034eade82c40029", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND CALLER OR SWAP1 SSTORE PUSH2 0xABA DUP1 PUSH2 0x25 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0xA3 JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x21F8A721 DUP2 EQ PUSH2 0xA8 JUMPI DUP1 PUSH4 0x2BBD9530 EQ PUSH2 0xDC JUMPI DUP1 PUSH4 0x3CA6BB92 EQ PUSH2 0xF6 JUMPI DUP1 PUSH4 0x662DE379 EQ PUSH2 0x183 JUMPI DUP1 PUSH4 0x6BFB0D01 EQ PUSH2 0x1A7 JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x1CE JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x1E3 JUMPI DUP1 PUSH4 0xBB34534C EQ PUSH2 0x1F8 JUMPI DUP1 PUSH4 0xD4EE1D90 EQ PUSH2 0x210 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x225 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xB4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xC0 PUSH1 0x4 CALLDATALOAD PUSH2 0x246 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xE8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xF4 PUSH1 0x4 CALLDATALOAD PUSH2 0x257 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x102 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x10E PUSH1 0x4 CALLDATALOAD PUSH2 0x47C JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP4 MLOAD DUP2 DUP4 ADD MSTORE DUP4 MLOAD SWAP2 SWAP3 DUP4 SWAP3 SWAP1 DUP4 ADD SWAP2 DUP6 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x148 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x130 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x175 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x18F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xF4 PUSH1 0x4 CALLDATALOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x24 CALLDATALOAD AND PUSH2 0x523 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1B3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1BC PUSH2 0x637 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1DA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xF4 PUSH2 0x63E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1EF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xC0 PUSH2 0x711 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x204 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xC0 PUSH1 0x4 CALLDATALOAD PUSH2 0x720 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x21C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xC0 PUSH2 0x73B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x231 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xF4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x74A JUMP JUMPDEST PUSH1 0x0 PUSH2 0x251 DUP3 PUSH2 0x720 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x266 PUSH2 0x7E7 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND ISZERO ISZERO PUSH2 0x2D4 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4E414D4500000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 SSTORE PUSH1 0x3 SLOAD PUSH1 0x1 LT ISZERO PUSH2 0x419 JUMPI PUSH1 0x3 DUP1 SLOAD PUSH1 0x0 NOT DUP2 ADD SWAP1 DUP2 LT PUSH2 0x31A JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP2 DUP3 SWAP1 KECCAK256 ADD DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F PUSH1 0x2 PUSH1 0x0 NOT PUSH2 0x100 PUSH1 0x1 DUP8 AND ISZERO MUL ADD SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 DIV SWAP3 DUP4 ADD DUP6 SWAP1 DIV DUP6 MUL DUP2 ADD DUP6 ADD SWAP1 SWAP2 MSTORE DUP2 DUP2 MSTORE SWAP3 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x3A8 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x37D JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x3A8 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x38B JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP PUSH1 0x0 DUP9 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH1 0x3 DUP1 SLOAD SWAP5 SWAP9 POP SWAP1 SWAP7 POP DUP8 SWAP4 SWAP1 SWAP3 POP DUP7 SWAP2 POP DUP2 LT PUSH2 0x3D7 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0x3F4 SWAP3 SWAP2 SWAP1 PUSH2 0x966 JUMP JUMPDEST POP PUSH2 0x3FE DUP5 PUSH2 0x84B JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 DUP2 ADD DUP6 SWAP1 SSTORE SWAP1 SWAP3 POP SWAP1 POP JUMPDEST PUSH1 0x3 DUP1 SLOAD SWAP1 PUSH2 0x42C SWAP1 PUSH1 0x0 NOT DUP4 ADD PUSH2 0x9E4 JUMP JUMPDEST POP PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 ADD DUP4 SWAP1 SSTORE DUP1 MLOAD SWAP3 DUP4 MSTORE MLOAD DUP8 SWAP3 PUSH32 0xFC08D1253C81BCD5444FC7056EF1F5A5DF4C9220B6FD70D7449267F1F0F29918 SWAP3 SWAP1 DUP3 SWAP1 SUB ADD SWAP1 LOG2 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD DUP3 SWAP1 DUP2 LT PUSH2 0x48A JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP2 DUP3 SWAP1 KECCAK256 ADD DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F PUSH1 0x2 PUSH1 0x0 NOT PUSH2 0x100 PUSH1 0x1 DUP8 AND ISZERO MUL ADD SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 DIV SWAP3 DUP4 ADD DUP6 SWAP1 DIV DUP6 MUL DUP2 ADD DUP6 ADD SWAP1 SWAP2 MSTORE DUP2 DUP2 MSTORE SWAP4 POP SWAP1 SWAP2 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x51B JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x4F0 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x51B JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x4FE JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x52E PUSH2 0x7E7 JUMP JUMPDEST DUP3 PUSH2 0x538 DUP2 PUSH2 0x852 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 DUP2 AND SWAP4 POP DUP5 AND DUP4 EQ ISZERO PUSH2 0x562 JUMPI PUSH2 0x630 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 AND ISZERO ISZERO PUSH2 0x5C2 JUMPI PUSH1 0x3 PUSH2 0x57D DUP7 PUSH2 0x8B5 JUMP JUMPDEST DUP2 SLOAD PUSH1 0x1 DUP2 ADD DUP1 DUP5 SSTORE PUSH1 0x0 SWAP4 DUP5 MSTORE PUSH1 0x20 SWAP4 DUP5 SWAP1 KECCAK256 DUP4 MLOAD SWAP2 SWAP5 PUSH2 0x5A5 SWAP5 SWAP2 SWAP1 SWAP4 ADD SWAP3 ADD SWAP1 PUSH2 0x966 JUMP JUMPDEST POP PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x0 NOT DUP3 ADD PUSH1 0x1 SWAP1 SWAP2 ADD SSTORE SWAP2 POP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE DUP3 MLOAD SWAP1 DUP2 MSTORE SWAP2 MLOAD DUP8 SWAP3 PUSH32 0xFC08D1253C81BCD5444FC7056EF1F5A5DF4C9220B6FD70D7449267F1F0F29918 SWAP3 SWAP1 DUP3 SWAP1 SUB ADD SWAP1 LOG2 JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x3 SLOAD JUMPDEST SWAP1 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x6A0 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND SWAP4 SWAP1 SWAP2 AND SWAP2 PUSH32 0x343765429AEA5A34B3FF6A3785A98A5ABB2597ACA87BFBB58632C173D585373A SWAP2 LOG3 PUSH1 0x1 DUP1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND OR SWAP1 SWAP2 SSTORE AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH2 0x752 PUSH2 0x7E7 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x7B8 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F4F574E4552000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x849 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x20 ADD MLOAD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0x8B2 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 DUP4 ADD SWAP1 SWAP3 MSTORE PUSH1 0x60 SWAP2 DUP3 SWAP2 PUSH1 0x0 SWAP2 DUP1 DUP3 ADD PUSH2 0x400 DUP1 CODESIZE DUP4 CODECOPY ADD SWAP1 POP POP SWAP2 POP PUSH1 0x0 SWAP1 POP JUMPDEST PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x95F JUMPI DUP4 DUP2 PUSH1 0x20 DUP2 LT PUSH2 0x8F6 JUMPI INVALID JUMPDEST BYTE PUSH32 0x100000000000000000000000000000000000000000000000000000000000000 MUL DUP3 DUP3 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x927 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD ADD SWAP1 PUSH31 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0x1 ADD PUSH2 0x8E1 JUMP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH1 0x1F LT PUSH2 0x9A7 JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH2 0x9D4 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x9D4 JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x9D4 JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x9B9 JUMP JUMPDEST POP PUSH2 0x9E0 SWAP3 SWAP2 POP PUSH2 0xA0D JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST DUP2 SLOAD DUP2 DUP4 SSTORE DUP2 DUP2 GT ISZERO PUSH2 0xA08 JUMPI PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 SWAP1 KECCAK256 PUSH2 0xA08 SWAP2 DUP2 ADD SWAP1 DUP4 ADD PUSH2 0xA27 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x63B SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x9E0 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0xA13 JUMP JUMPDEST PUSH2 0x63B SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x9E0 JUMPI PUSH1 0x0 PUSH2 0xA41 DUP3 DUP3 PUSH2 0xA4A JUMP JUMPDEST POP PUSH1 0x1 ADD PUSH2 0xA2D JUMP JUMPDEST POP DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV PUSH1 0x0 DUP3 SSTORE DUP1 PUSH1 0x1F LT PUSH2 0xA70 JUMPI POP PUSH2 0x8B2 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP1 PUSH2 0x8B2 SWAP2 SWAP1 PUSH2 0xA0D JUMP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 PUSH19 0x5BD5161C1217C7CB02B8B50CF5E635F08DA97D KECCAK256 CALL 0xb1 0xf8 MUL PUSH7 0x4034EADE82C400 0x29 ", + "sourceMap": "557:4370:59:-;;;488:5:66;:18;;-1:-1:-1;;;;;;488:18:66;496:10;488:18;;;557:4370:59;;;;;;" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "6080604052600436106100a35763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166321f8a72181146100a85780632bbd9530146100dc5780633ca6bb92146100f6578063662de379146101835780636bfb0d01146101a757806379ba5097146101ce5780638da5cb5b146101e3578063bb34534c146101f8578063d4ee1d9014610210578063f2fde38b14610225575b600080fd5b3480156100b457600080fd5b506100c0600435610246565b60408051600160a060020a039092168252519081900360200190f35b3480156100e857600080fd5b506100f4600435610257565b005b34801561010257600080fd5b5061010e60043561047c565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610148578181015183820152602001610130565b50505050905090810190601f1680156101755780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561018f57600080fd5b506100f4600435600160a060020a0360243516610523565b3480156101b357600080fd5b506101bc610637565b60408051918252519081900360200190f35b3480156101da57600080fd5b506100f461063e565b3480156101ef57600080fd5b506100c0610711565b34801561020457600080fd5b506100c0600435610720565b34801561021c57600080fd5b506100c061073b565b34801561023157600080fd5b506100f4600160a060020a036004351661074a565b600061025182610720565b92915050565b606060008060006102666107e7565b600085815260026020526040902054600160a060020a031615156102d4576040805160e560020a62461bcd02815260206004820152601060248201527f4552525f494e56414c49445f4e414d4500000000000000000000000000000000604482015290519081900360640190fd5b6000858152600260205260409020805473ffffffffffffffffffffffffffffffffffffffff19169055600354600110156104195760038054600019810190811061031a57fe5b600091825260209182902001805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156103a85780601f1061037d576101008083540402835291602001916103a8565b820191906000526020600020905b81548152906001019060200180831161038b57829003601f168201915b50505060008881526002602052604090206001015460038054949850909650879390925086915081106103d757fe5b9060005260206000200190805190602001906103f4929190610966565b506103fe8461084b565b60008181526002602052604090206001810185905590925090505b600380549061042c9060001983016109e4565b50600085815260026020908152604080832060010183905580519283525187927ffc08d1253c81bcd5444fc7056ef1f5a5df4c9220b6fd70d7449267f1f0f2991892908290030190a25050505050565b600380548290811061048a57fe5b600091825260209182902001805460408051601f600260001961010060018716150201909416939093049283018590048502810185019091528181529350909183018282801561051b5780601f106104f05761010080835404028352916020019161051b565b820191906000526020600020905b8154815290600101906020018083116104fe57829003601f168201915b505050505081565b60008061052e6107e7565b8261053881610852565b600085815260026020526040902054600160a060020a039081169350841683141561056257610630565b600160a060020a03831615156105c257600361057d866108b5565b8154600181018084556000938452602093849020835191946105a59491909301920190610966565b506000868152600260205260409020600019820160019091015591505b600085815260026020908152604091829020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0388169081179091558251908152915187927ffc08d1253c81bcd5444fc7056ef1f5a5df4c9220b6fd70d7449267f1f0f2991892908290030190a25b5050505050565b6003545b90565b600154600160a060020a031633146106a0576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b60015460008054604051600160a060020a0393841693909116917f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91a3600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b600054600160a060020a031681565b600090815260026020526040902054600160a060020a031690565b600154600160a060020a031681565b6107526107e7565b600054600160a060020a03828116911614156107b8576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f53414d455f4f574e4552000000000000000000000000000000000000604482015290519081900360640190fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600054600160a060020a03163314610849576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b565b6020015190565b600160a060020a03811615156108b2576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b50565b604080516020808252818301909252606091829160009180820161040080388339019050509150600090505b602081101561095f578381602081106108f657fe5b1a7f010000000000000000000000000000000000000000000000000000000000000002828281518110151561092757fe5b9060200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053506001016108e1565b5092915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106109a757805160ff19168380011785556109d4565b828001600101855582156109d4579182015b828111156109d45782518255916020019190600101906109b9565b506109e0929150610a0d565b5090565b815481835581811115610a0857600083815260209020610a08918101908301610a27565b505050565b61063b91905b808211156109e05760008155600101610a13565b61063b91905b808211156109e0576000610a418282610a4a565b50600101610a2d565b50805460018160011615610100020316600290046000825580601f10610a7057506108b2565b601f0160209004906000526020600020908101906108b29190610a0d5600a165627a7a72305820725bd5161c1217c7cb02b8b50cf5e635f08da97d20f1b1f802664034eade82c40029", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0xA3 JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x21F8A721 DUP2 EQ PUSH2 0xA8 JUMPI DUP1 PUSH4 0x2BBD9530 EQ PUSH2 0xDC JUMPI DUP1 PUSH4 0x3CA6BB92 EQ PUSH2 0xF6 JUMPI DUP1 PUSH4 0x662DE379 EQ PUSH2 0x183 JUMPI DUP1 PUSH4 0x6BFB0D01 EQ PUSH2 0x1A7 JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x1CE JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x1E3 JUMPI DUP1 PUSH4 0xBB34534C EQ PUSH2 0x1F8 JUMPI DUP1 PUSH4 0xD4EE1D90 EQ PUSH2 0x210 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x225 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xB4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xC0 PUSH1 0x4 CALLDATALOAD PUSH2 0x246 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xE8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xF4 PUSH1 0x4 CALLDATALOAD PUSH2 0x257 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x102 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x10E PUSH1 0x4 CALLDATALOAD PUSH2 0x47C JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP4 MLOAD DUP2 DUP4 ADD MSTORE DUP4 MLOAD SWAP2 SWAP3 DUP4 SWAP3 SWAP1 DUP4 ADD SWAP2 DUP6 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x148 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x130 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x175 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x18F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xF4 PUSH1 0x4 CALLDATALOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x24 CALLDATALOAD AND PUSH2 0x523 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1B3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1BC PUSH2 0x637 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1DA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xF4 PUSH2 0x63E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1EF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xC0 PUSH2 0x711 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x204 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xC0 PUSH1 0x4 CALLDATALOAD PUSH2 0x720 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x21C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xC0 PUSH2 0x73B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x231 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xF4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x74A JUMP JUMPDEST PUSH1 0x0 PUSH2 0x251 DUP3 PUSH2 0x720 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x266 PUSH2 0x7E7 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND ISZERO ISZERO PUSH2 0x2D4 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4E414D4500000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 SSTORE PUSH1 0x3 SLOAD PUSH1 0x1 LT ISZERO PUSH2 0x419 JUMPI PUSH1 0x3 DUP1 SLOAD PUSH1 0x0 NOT DUP2 ADD SWAP1 DUP2 LT PUSH2 0x31A JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP2 DUP3 SWAP1 KECCAK256 ADD DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F PUSH1 0x2 PUSH1 0x0 NOT PUSH2 0x100 PUSH1 0x1 DUP8 AND ISZERO MUL ADD SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 DIV SWAP3 DUP4 ADD DUP6 SWAP1 DIV DUP6 MUL DUP2 ADD DUP6 ADD SWAP1 SWAP2 MSTORE DUP2 DUP2 MSTORE SWAP3 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x3A8 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x37D JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x3A8 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x38B JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP PUSH1 0x0 DUP9 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH1 0x3 DUP1 SLOAD SWAP5 SWAP9 POP SWAP1 SWAP7 POP DUP8 SWAP4 SWAP1 SWAP3 POP DUP7 SWAP2 POP DUP2 LT PUSH2 0x3D7 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0x3F4 SWAP3 SWAP2 SWAP1 PUSH2 0x966 JUMP JUMPDEST POP PUSH2 0x3FE DUP5 PUSH2 0x84B JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 DUP2 ADD DUP6 SWAP1 SSTORE SWAP1 SWAP3 POP SWAP1 POP JUMPDEST PUSH1 0x3 DUP1 SLOAD SWAP1 PUSH2 0x42C SWAP1 PUSH1 0x0 NOT DUP4 ADD PUSH2 0x9E4 JUMP JUMPDEST POP PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 ADD DUP4 SWAP1 SSTORE DUP1 MLOAD SWAP3 DUP4 MSTORE MLOAD DUP8 SWAP3 PUSH32 0xFC08D1253C81BCD5444FC7056EF1F5A5DF4C9220B6FD70D7449267F1F0F29918 SWAP3 SWAP1 DUP3 SWAP1 SUB ADD SWAP1 LOG2 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD DUP3 SWAP1 DUP2 LT PUSH2 0x48A JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP2 DUP3 SWAP1 KECCAK256 ADD DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F PUSH1 0x2 PUSH1 0x0 NOT PUSH2 0x100 PUSH1 0x1 DUP8 AND ISZERO MUL ADD SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 DIV SWAP3 DUP4 ADD DUP6 SWAP1 DIV DUP6 MUL DUP2 ADD DUP6 ADD SWAP1 SWAP2 MSTORE DUP2 DUP2 MSTORE SWAP4 POP SWAP1 SWAP2 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x51B JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x4F0 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x51B JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x4FE JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x52E PUSH2 0x7E7 JUMP JUMPDEST DUP3 PUSH2 0x538 DUP2 PUSH2 0x852 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 DUP2 AND SWAP4 POP DUP5 AND DUP4 EQ ISZERO PUSH2 0x562 JUMPI PUSH2 0x630 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 AND ISZERO ISZERO PUSH2 0x5C2 JUMPI PUSH1 0x3 PUSH2 0x57D DUP7 PUSH2 0x8B5 JUMP JUMPDEST DUP2 SLOAD PUSH1 0x1 DUP2 ADD DUP1 DUP5 SSTORE PUSH1 0x0 SWAP4 DUP5 MSTORE PUSH1 0x20 SWAP4 DUP5 SWAP1 KECCAK256 DUP4 MLOAD SWAP2 SWAP5 PUSH2 0x5A5 SWAP5 SWAP2 SWAP1 SWAP4 ADD SWAP3 ADD SWAP1 PUSH2 0x966 JUMP JUMPDEST POP PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x0 NOT DUP3 ADD PUSH1 0x1 SWAP1 SWAP2 ADD SSTORE SWAP2 POP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE DUP3 MLOAD SWAP1 DUP2 MSTORE SWAP2 MLOAD DUP8 SWAP3 PUSH32 0xFC08D1253C81BCD5444FC7056EF1F5A5DF4C9220B6FD70D7449267F1F0F29918 SWAP3 SWAP1 DUP3 SWAP1 SUB ADD SWAP1 LOG2 JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x3 SLOAD JUMPDEST SWAP1 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x6A0 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND SWAP4 SWAP1 SWAP2 AND SWAP2 PUSH32 0x343765429AEA5A34B3FF6A3785A98A5ABB2597ACA87BFBB58632C173D585373A SWAP2 LOG3 PUSH1 0x1 DUP1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND OR SWAP1 SWAP2 SSTORE AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH2 0x752 PUSH2 0x7E7 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x7B8 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F4F574E4552000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x849 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x20 ADD MLOAD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0x8B2 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 DUP4 ADD SWAP1 SWAP3 MSTORE PUSH1 0x60 SWAP2 DUP3 SWAP2 PUSH1 0x0 SWAP2 DUP1 DUP3 ADD PUSH2 0x400 DUP1 CODESIZE DUP4 CODECOPY ADD SWAP1 POP POP SWAP2 POP PUSH1 0x0 SWAP1 POP JUMPDEST PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x95F JUMPI DUP4 DUP2 PUSH1 0x20 DUP2 LT PUSH2 0x8F6 JUMPI INVALID JUMPDEST BYTE PUSH32 0x100000000000000000000000000000000000000000000000000000000000000 MUL DUP3 DUP3 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x927 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD ADD SWAP1 PUSH31 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0x1 ADD PUSH2 0x8E1 JUMP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH1 0x1F LT PUSH2 0x9A7 JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH2 0x9D4 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x9D4 JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x9D4 JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x9B9 JUMP JUMPDEST POP PUSH2 0x9E0 SWAP3 SWAP2 POP PUSH2 0xA0D JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST DUP2 SLOAD DUP2 DUP4 SSTORE DUP2 DUP2 GT ISZERO PUSH2 0xA08 JUMPI PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 SWAP1 KECCAK256 PUSH2 0xA08 SWAP2 DUP2 ADD SWAP1 DUP4 ADD PUSH2 0xA27 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x63B SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x9E0 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0xA13 JUMP JUMPDEST PUSH2 0x63B SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x9E0 JUMPI PUSH1 0x0 PUSH2 0xA41 DUP3 DUP3 PUSH2 0xA4A JUMP JUMPDEST POP PUSH1 0x1 ADD PUSH2 0xA2D JUMP JUMPDEST POP DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV PUSH1 0x0 DUP3 SSTORE DUP1 PUSH1 0x1F LT PUSH2 0xA70 JUMPI POP PUSH2 0x8B2 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP1 PUSH2 0x8B2 SWAP2 SWAP1 PUSH2 0xA0D JUMP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 PUSH19 0x5BD5161C1217C7CB02B8B50CF5E635F08DA97D KECCAK256 CALL 0xb1 0xf8 MUL PUSH7 0x4034EADE82C400 0x29 ", + "sourceMap": "557:4370:59:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4813:112;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4813:112:59;;;;;;;;;-1:-1:-1;;;;;4813:112:59;;;;;;;;;;;;;;2735:1223;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2735:1223:59;;;;;;;848:29;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;848:29:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;848:29:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1826:789;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1826:789:59;;;-1:-1:-1;;;;;1826:789:59;;;;;1279:86;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1279:86:59;;;;;;;;;;;;;;;;;;;;1159:176:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1159:176:66;;;;157:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;157:20:66;;;;1526:123:59;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1526:123:59;;;;;180:23:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;180:23:66;;;;945:140;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;945:140:66;-1:-1:-1;;;;;945:140:66;;;;;4813:112:59;4877:7;4897:24;4907:13;4897:9;:24::i;:::-;4890:31;4813:112;-1:-1:-1;;4813:112:59:o;2735:1223::-;3330:36;3413:23;3535:24;3606:33;575:12:66;:10;:12::i;:::-;2939:1:59;2891:20;;;:5;:20;;;;;:36;-1:-1:-1;;;;;2891:36:59;:50;;2883:79;;;;;-1:-1:-1;;;;;2883:79:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;3056:1;3009:20;;;:5;:20;;;;;:49;;-1:-1:-1;;3009:49:59;;;3299:13;:20;3009:49;-1:-1:-1;3295:420:59;;;3369:13;3383:20;;-1:-1:-1;;3383:24:59;;;3369:39;;;;;;;;;;;;;;;;3330:78;;;;;;;-1:-1:-1;;3330:78:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3369:39;3330:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3439:20:59;;;;:5;:20;;;;;:30;;;3475:13;:30;;3330:78;;-1:-1:-1;3439:30:59;;-1:-1:-1;3330:78:59;;3475:13;;-1:-1:-1;3439:30:59;;-1:-1:-1;3475:30:59;;;;;;;;;;;;;:55;;;;;;;;;;;;:::i;:::-;;3562:39;3578:22;3562:15;:39::i;:::-;3642:23;;;;:5;:23;;;;;3670:22;;;:40;;;3535:66;;-1:-1:-1;3642:23:59;-1:-1:-1;3295:420:59;3767:13;:22;;;;;-1:-1:-1;;3767:22:59;;;:::i;:::-;-1:-1:-1;3864:1:59;3831:20;;;:5;:20;;;;;;;;:30;;:34;;;3914:40;;;;;;3837:13;;3914:40;;;;;;;;;2735:1223;;;;;:::o;848:29::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;848:29:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;848:29:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1826:789::-;2065:22;2265:9;575:12:66;:10;:12::i;:::-;1930:16:59;475:23:72;489:8;475:13;:23::i;:::-;2090:20:59;;;;:5;:20;;;;;:36;-1:-1:-1;;;;;2090:36:59;;;;-1:-1:-1;2134:34:59;;;;2130:47;;;2170:7;;2130:47;-1:-1:-1;;;;;2185:28:59;;;2181:236;;;2277:13;2296:30;2312:13;2296:15;:30::i;:::-;27:10:-1;;39:1;23:18;;45:23;;;-1:-1;2277:50:59;;;;;;;;;;23:18:-1;;2277:50:59;;;;;;;;;;:::i;:::-;-1:-1:-1;2374:20:59;;;;:5;:20;;;;;-1:-1:-1;;2407:5:59;;2411:1;2374:30;;;:38;2407:5;-1:-1:-1;2181:236:59;2461:20;;;;:5;:20;;;;;;;;;:55;;-1:-1:-1;;2461:55:59;-1:-1:-1;;;;;2461:55:59;;;;;;;;2565:46;;;;;;;2461:20;;2565:46;;;;;;;;;502:1:72;591::66;1826:789:59;;;;:::o;1279:86::-;1341:13;:20;1279:86;;:::o;1159:176:66:-;1219:8;;-1:-1:-1;;;;;1219:8:66;1205:10;:22;1197:52;;;;;-1:-1:-1;;;;;1197:52:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;1277:8;;;1270:5;;1258:28;;-1:-1:-1;;;;;1277:8:66;;;;1270:5;;;;1258:28;;;1298:8;;;;1290:16;;-1:-1:-1;;1290:16:66;;;-1:-1:-1;;;;;1298:8:66;;1290:16;;;;1310:21;;;1159:176::o;157:20::-;;;-1:-1:-1;;;;;157:20:66;;:::o;1526:123:59:-;1589:7;1609:20;;;:5;:20;;;;;:36;-1:-1:-1;;;;;1609:36:59;;1526:123::o;180:23:66:-;;;-1:-1:-1;;;;;180:23:66;;:::o;945:140::-;575:12;:10;:12::i;:::-;1033:5;;-1:-1:-1;;;;;1020:18:66;;;1033:5;;1020:18;;1012:45;;;;;-1:-1:-1;;;;;1012:45:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;1061:8;:20;;-1:-1:-1;;1061:20:66;-1:-1:-1;;;;;1061:20:66;;;;;;;;;;945:140::o;642:93::-;704:5;;-1:-1:-1;;;;;704:5:66;690:10;:19;682:49;;;;;-1:-1:-1;;;;;682:49:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;642:93::o;4584:172:59:-;4728:2;4715:16;4709:23;;4584:172::o;553:117:72:-;-1:-1:-1;;;;;620:22:72;;;;612:54;;;;;-1:-1:-1;;;;;612:54:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;553:117;:::o;4164:216:59:-;4264:13;;;4274:2;4264:13;;;;;;;;;4227:6;;;;4286:9;;4264:13;;;17:15:-1;;105:10;4264:13:59;88:34:-1;136:17;;-1:-1;4264:13:59;4239:38;;4298:1;4286:13;;4281:67;4305:2;4301:1;:6;4281:67;;;4334:6;4341:1;4334:9;;;;;;;;;;4319;4329:1;4319:12;;;;;;;;;;;;;;:24;;;;;;;;;;-1:-1:-1;4309:3:59;;4281:67;;;-1:-1:-1;4366:9:59;4164:216;-1:-1:-1;;4164:216:59:o;557:4370::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;557:4370:59;;;-1:-1:-1;557:4370:59;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i" + }, + "methodIdentifiers": { + "acceptOwnership()": "79ba5097", + "addressOf(bytes32)": "bb34534c", + "contractNames(uint256)": "3ca6bb92", + "getAddress(bytes32)": "21f8a721", + "itemCount()": "6bfb0d01", + "newOwner()": "d4ee1d90", + "owner()": "8da5cb5b", + "registerAddress(bytes32,address)": "662de379", + "transferOwnership(address)": "f2fde38b", + "unregisterAddress(bytes32)": "2bbd9530" + } + }, + "userdoc": { + "methods": {} + } + } + }, + "solidity/contracts/utility/ContractRegistryClient.sol": { + "ContractRegistryClient": { + "abi": [ + { + "constant": false, + "inputs": [ + { + "name": "_onlyOwnerCanUpdateRegistry", + "type": "bool" + } + ], + "name": "restrictRegistryUpdate", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "onlyOwnerCanUpdateRegistry", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "updateRegistry", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "prevRegistry", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "acceptOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "registry", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "owner", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "restoreRegistry", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "newOwner", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "name": "_registry", + "type": "address" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "_prevOwner", + "type": "address" + }, + { + "indexed": true, + "name": "_newOwner", + "type": "address" + } + ], + "name": "OwnerUpdate", + "type": "event" + } + ], + "devdoc": { + "methods": { + "acceptOwnership()": { + "details": "used by a new owner to accept an ownership transfer" + }, + "restoreRegistry()": { + "details": "restores the previous contract-registry" + }, + "restrictRegistryUpdate(bool)": { + "details": "restricts the permission to update the contract-registry", + "params": { + "_onlyOwnerCanUpdateRegistry": "indicates whether or not permission is restricted to owner only" + } + }, + "transferOwnership(address)": { + "details": "allows transferring the contract ownership the new owner still needs to accept the transfer can only be called by the contract owner", + "params": { + "_newOwner": "new contract owner" + } + }, + "updateRegistry()": { + "details": "updates to the new contract-registry" + } + } + }, + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "acceptOwnership()": "79ba5097", + "newOwner()": "d4ee1d90", + "onlyOwnerCanUpdateRegistry()": "2fe8a6ad", + "owner()": "8da5cb5b", + "prevRegistry()": "61cd756e", + "registry()": "7b103999", + "restoreRegistry()": "b4a176d3", + "restrictRegistryUpdate(bool)": "024c7ec7", + "transferOwnership(address)": "f2fde38b", + "updateRegistry()": "49d10b64" + } + }, + "userdoc": { + "methods": {} + } + } + }, + "solidity/contracts/utility/MoCMedianizerMock.sol": { + "MoCMedianizerMock": { + "abi": [ + { + "constant": true, + "inputs": [], + "name": "value", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_value", + "type": "uint256" + } + ], + "name": "setValue", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "peek", + "outputs": [ + { + "name": "", + "type": "bytes32" + }, + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_has", + "type": "bool" + } + ], + "name": "setHas", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "has", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + } + ], + "devdoc": { + "methods": {} + }, + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b50610183806100206000396000f30060806040526004361061006c5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416633fa4f2458114610071578063552410771461009857806359e02dd7146100b257806361da0693146100e0578063b689d5ac146100fa575b600080fd5b34801561007d57600080fd5b50610086610123565b60408051918252519081900360200190f35b3480156100a457600080fd5b506100b0600435610129565b005b3480156100be57600080fd5b506100c761012e565b6040805192835290151560208301528051918290030190f35b3480156100ec57600080fd5b506100b0600435151561013b565b34801561010657600080fd5b5061010f61014e565b604080519115158252519081900360200190f35b60005481565b600055565b60005460015460ff169091565b6001805460ff1916911515919091179055565b60015460ff16815600a165627a7a7230582007583151b494330547fa89c83fce333518d58f5d3e7d49004be6933bd8d6d3bb0029", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x183 DUP1 PUSH2 0x20 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x6C JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x3FA4F245 DUP2 EQ PUSH2 0x71 JUMPI DUP1 PUSH4 0x55241077 EQ PUSH2 0x98 JUMPI DUP1 PUSH4 0x59E02DD7 EQ PUSH2 0xB2 JUMPI DUP1 PUSH4 0x61DA0693 EQ PUSH2 0xE0 JUMPI DUP1 PUSH4 0xB689D5AC EQ PUSH2 0xFA JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x86 PUSH2 0x123 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB0 PUSH1 0x4 CALLDATALOAD PUSH2 0x129 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xBE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xC7 PUSH2 0x12E JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE SWAP1 ISZERO ISZERO PUSH1 0x20 DUP4 ADD MSTORE DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xEC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB0 PUSH1 0x4 CALLDATALOAD ISZERO ISZERO PUSH2 0x13B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x106 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x10F PUSH2 0x14E JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 SSTORE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 SLOAD PUSH1 0xFF AND SWAP1 SWAP2 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP2 ISZERO ISZERO SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0xFF AND DUP2 JUMP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 SMOD PC BALANCE MLOAD 0xb4 SWAP5 CALLER SDIV 0x47 STATICCALL DUP10 0xc8 0x3f 0xce CALLER CALLDATALOAD XOR 0xd5 DUP16 0x5d RETURNDATACOPY PUSH30 0x49004BE6933BD8D6D3BB0029000000000000000000000000000000000000 ", + "sourceMap": "204:299:61:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;204:299:61;;;;;;;" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "60806040526004361061006c5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416633fa4f2458114610071578063552410771461009857806359e02dd7146100b257806361da0693146100e0578063b689d5ac146100fa575b600080fd5b34801561007d57600080fd5b50610086610123565b60408051918252519081900360200190f35b3480156100a457600080fd5b506100b0600435610129565b005b3480156100be57600080fd5b506100c761012e565b6040805192835290151560208301528051918290030190f35b3480156100ec57600080fd5b506100b0600435151561013b565b34801561010657600080fd5b5061010f61014e565b604080519115158252519081900360200190f35b60005481565b600055565b60005460015460ff169091565b6001805460ff1916911515919091179055565b60015460ff16815600a165627a7a7230582007583151b494330547fa89c83fce333518d58f5d3e7d49004be6933bd8d6d3bb0029", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x6C JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x3FA4F245 DUP2 EQ PUSH2 0x71 JUMPI DUP1 PUSH4 0x55241077 EQ PUSH2 0x98 JUMPI DUP1 PUSH4 0x59E02DD7 EQ PUSH2 0xB2 JUMPI DUP1 PUSH4 0x61DA0693 EQ PUSH2 0xE0 JUMPI DUP1 PUSH4 0xB689D5AC EQ PUSH2 0xFA JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x86 PUSH2 0x123 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB0 PUSH1 0x4 CALLDATALOAD PUSH2 0x129 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xBE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xC7 PUSH2 0x12E JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE SWAP1 ISZERO ISZERO PUSH1 0x20 DUP4 ADD MSTORE DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xEC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB0 PUSH1 0x4 CALLDATALOAD ISZERO ISZERO PUSH2 0x13B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x106 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x10F PUSH2 0x14E JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 SSTORE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 SLOAD PUSH1 0xFF AND SWAP1 SWAP2 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP2 ISZERO ISZERO SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0xFF AND DUP2 JUMP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 SMOD PC BALANCE MLOAD 0xb4 SWAP5 CALLER SDIV 0x47 STATICCALL DUP10 0xc8 0x3f 0xce CALLER CALLDATALOAD XOR 0xd5 DUP16 0x5d RETURNDATACOPY PUSH30 0x49004BE6933BD8D6D3BB0029000000000000000000000000000000000000 ", + "sourceMap": "204:299:61:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;248:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;248:20:61;;;;;;;;;;;;;;;;;;;;383:63;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;383:63:61;;;;;;;290:90;;8:9:-1;5:2;;;30:1;27;20:12;5:2;290:90:61;;;;;;;;;;;;;;;;;;;;;;;;;;;449:52;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;449:52:61;;;;;;;271:15;;8:9:-1;5:2;;;30:1;27;20:12;5:2;271:15:61;;;;;;;;;;;;;;;;;;;;;;248:20;;;;:::o;383:63::-;428:5;:14;383:63::o;290:90::-;329:7;364:5;356:14;372:3;;;290:90;;:::o;449:52::-;487:3;:10;;-1:-1:-1;;487:10:61;;;;;;;;;;449:52::o;271:15::-;;;;;;:::o" + }, + "methodIdentifiers": { + "has()": "b689d5ac", + "peek()": "59e02dd7", + "setHas(bool)": "61da0693", + "setValue(uint256)": "55241077", + "value()": "3fa4f245" + } + }, + "userdoc": { + "methods": {} + } + } + }, + "solidity/contracts/utility/MoCStateMock.sol": { + "MoCStateMock": { + "abi": [ + { + "constant": true, + "inputs": [], + "name": "value", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_value", + "type": "uint256" + } + ], + "name": "setValue", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "bproUsdPrice", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + } + ], + "devdoc": { + "methods": {} + }, + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b5060e18061001f6000396000f30060806040526004361060525763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416633fa4f245811460575780635524107714607b578063747a5663146092575b600080fd5b348015606257600080fd5b50606960a4565b60408051918252519081900360200190f35b348015608657600080fd5b50609060043560aa565b005b348015609d57600080fd5b50606960af565b60005481565b600055565b600054905600a165627a7a723058202ebe593130f015ec45b96332b43be92bb07e705551b39cef2745f020258c0c940029", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0xE1 DUP1 PUSH2 0x1F PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH1 0x52 JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x3FA4F245 DUP2 EQ PUSH1 0x57 JUMPI DUP1 PUSH4 0x55241077 EQ PUSH1 0x7B JUMPI DUP1 PUSH4 0x747A5663 EQ PUSH1 0x92 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH1 0x62 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x69 PUSH1 0xA4 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH1 0x86 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x90 PUSH1 0x4 CALLDATALOAD PUSH1 0xAA JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH1 0x9D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x69 PUSH1 0xAF JUMP JUMPDEST PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 SSTORE JUMP JUMPDEST PUSH1 0x0 SLOAD SWAP1 JUMP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 0x2e 0xbe MSIZE BALANCE ADDRESS CREATE ISZERO 0xec GASLIMIT 0xb9 PUSH4 0x32B43BE9 0x2b 0xb0 PUSH31 0x705551B39CEF2745F020258C0C940029000000000000000000000000000000 ", + "sourceMap": "63:204:62:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;63:204:62;;;;;;;" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "60806040526004361060525763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416633fa4f245811460575780635524107714607b578063747a5663146092575b600080fd5b348015606257600080fd5b50606960a4565b60408051918252519081900360200190f35b348015608657600080fd5b50609060043560aa565b005b348015609d57600080fd5b50606960af565b60005481565b600055565b600054905600a165627a7a723058202ebe593130f015ec45b96332b43be92bb07e705551b39cef2745f020258c0c940029", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH1 0x52 JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x3FA4F245 DUP2 EQ PUSH1 0x57 JUMPI DUP1 PUSH4 0x55241077 EQ PUSH1 0x7B JUMPI DUP1 PUSH4 0x747A5663 EQ PUSH1 0x92 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH1 0x62 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x69 PUSH1 0xA4 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH1 0x86 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x90 PUSH1 0x4 CALLDATALOAD PUSH1 0xAA JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH1 0x9D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x69 PUSH1 0xAF JUMP JUMPDEST PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 SSTORE JUMP JUMPDEST PUSH1 0x0 SLOAD SWAP1 JUMP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 0x2e 0xbe MSIZE BALANCE ADDRESS CREATE ISZERO 0xec GASLIMIT 0xb9 PUSH4 0x32B43BE9 0x2b 0xb0 PUSH31 0x705551B39CEF2745F020258C0C940029000000000000000000000000000000 ", + "sourceMap": "63:204:62:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;101:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;101:20:62;;;;;;;;;;;;;;;;;;;;202:63;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;202:63:62;;;;;;;125:74;;8:9:-1;5:2;;;30:1;27;20:12;5:2;125:74:62;;;;101:20;;;;:::o;202:63::-;247:5;:14;202:63::o;125:74::-;170:7;190:5;125:74;:::o" + }, + "methodIdentifiers": { + "bproUsdPrice()": "747a5663", + "setValue(uint256)": "55241077", + "value()": "3fa4f245" + } + }, + "userdoc": { + "methods": {} + } + } + }, + "solidity/contracts/utility/MocBTCToBTCOracle.sol": { + "MocBTCToBTCOracle": { + "abi": [ + { + "constant": true, + "inputs": [], + "name": "latestAnswer", + "outputs": [ + { + "name": "", + "type": "int256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "latestTimestamp", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + } + ], + "devdoc": { + "methods": { + "latestAnswer()": { + "details": "returns the trivial ETH/ETH rate.", + "return": "always returns the trivial rate of 1" + }, + "latestTimestamp()": { + "details": "returns the trivial ETH/ETH update time.", + "return": "always returns current block's timestamp" + } + } + }, + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b5060b88061001f6000396000f30060806040526004361060485763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166350d25bcd8114604d5780638205bf6a146071575b600080fd5b348015605857600080fd5b50605f6083565b60408051918252519081900360200190f35b348015607c57600080fd5b50605f6088565b600190565b42905600a165627a7a7230582045a944b0900d5b4c55e19b0dd8df92b4c7875337eae5504ca7ed2a5fa5a242100029", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0xB8 DUP1 PUSH2 0x1F PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH1 0x48 JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x50D25BCD DUP2 EQ PUSH1 0x4D JUMPI DUP1 PUSH4 0x8205BF6A EQ PUSH1 0x71 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH1 0x58 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x5F PUSH1 0x83 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH1 0x7C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x5F PUSH1 0x88 JUMP JUMPDEST PUSH1 0x1 SWAP1 JUMP JUMPDEST TIMESTAMP SWAP1 JUMP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 GASLIMIT 0xa9 DIFFICULTY 0xb0 SWAP1 0xd JUMPDEST 0x4c SSTORE 0xe1 SWAP12 0xd 0xd8 0xdf SWAP3 0xb4 0xc7 DUP8 MSTORE8 CALLDATACOPY 0xea 0xe5 POP 0x4c 0xa7 0xed 0x2a 0x5f 0xa5 LOG2 TIMESTAMP LT STOP 0x29 ", + "sourceMap": "160:477:63:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;160:477:63;;;;;;;" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "60806040526004361060485763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166350d25bcd8114604d5780638205bf6a146071575b600080fd5b348015605857600080fd5b50605f6083565b60408051918252519081900360200190f35b348015607c57600080fd5b50605f6088565b600190565b42905600a165627a7a7230582045a944b0900d5b4c55e19b0dd8df92b4c7875337eae5504ca7ed2a5fa5a242100029", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH1 0x48 JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x50D25BCD DUP2 EQ PUSH1 0x4D JUMPI DUP1 PUSH4 0x8205BF6A EQ PUSH1 0x71 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH1 0x58 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x5F PUSH1 0x83 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH1 0x7C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x5F PUSH1 0x88 JUMP JUMPDEST PUSH1 0x1 SWAP1 JUMP JUMPDEST TIMESTAMP SWAP1 JUMP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 GASLIMIT 0xa9 DIFFICULTY 0xb0 SWAP1 0xd JUMPDEST 0x4c SSTORE 0xe1 SWAP12 0xd 0xd8 0xdf SWAP3 0xb4 0xc7 DUP8 MSTORE8 CALLDATACOPY 0xea 0xe5 POP 0x4c 0xa7 0xed 0x2a 0x5f 0xa5 LOG2 TIMESTAMP LT STOP 0x29 ", + "sourceMap": "160:477:63:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;360:78;;8:9:-1;5:2;;;30:1;27;20:12;5:2;360:78:63;;;;;;;;;;;;;;;;;;;;558:77;;8:9:-1;5:2;;;30:1;27;20:12;5:2;558:77:63;;;;360:78;249:1;360:78;:::o;558:77::-;628:3;558:77;:::o" + }, + "methodIdentifiers": { + "latestAnswer()": "50d25bcd", + "latestTimestamp()": "8205bf6a" + } + }, + "userdoc": { + "methods": {} + } + } + }, + "solidity/contracts/utility/MocBTCToUSDOracle.sol": { + "Medianizer": { + "abi": [ + { + "constant": true, + "inputs": [], + "name": "peek", + "outputs": [ + { + "name": "", + "type": "bytes32" + }, + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + } + ], + "devdoc": { + "methods": {} + }, + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "peek()": "59e02dd7" + } + }, + "userdoc": { + "methods": {} + } + }, + "MocBTCToUSDOracle": { + "abi": [ + { + "constant": false, + "inputs": [ + { + "name": "_mocOracleAddress", + "type": "address" + } + ], + "name": "setMoCOracleAddress", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "latestAnswer", + "outputs": [ + { + "name": "", + "type": "int256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "acceptOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "latestTimestamp", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "owner", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "newOwner", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "mocOracleAddress", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "name": "_mocOracleAddress", + "type": "address" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "mocOracleAddress", + "type": "address" + }, + { + "indexed": false, + "name": "changerAddress", + "type": "address" + } + ], + "name": "SetMoCOracleAddress", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "_prevOwner", + "type": "address" + }, + { + "indexed": true, + "name": "_newOwner", + "type": "address" + } + ], + "name": "OwnerUpdate", + "type": "event" + } + ], + "devdoc": { + "methods": { + "acceptOwnership()": { + "details": "used by a new owner to accept an ownership transfer" + }, + "latestAnswer()": { + "details": "returns the USD/BTC rate.", + "return": "MoC medianizer rate" + }, + "latestTimestamp()": { + "details": "returns the USD/BTC update time.", + "return": "always returns current block's timestamp" + }, + "setMoCOracleAddress(address)": { + "details": "set MoC oracle address", + "params": { + "_mocOracleAddress": "MoC oracle address" + } + }, + "transferOwnership(address)": { + "details": "allows transferring the contract ownership the new owner still needs to accept the transfer can only be called by the contract owner", + "params": { + "_newOwner": "new contract owner" + } + } + } + }, + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b50604051602080610791833981016040525160008054600160a060020a031916331790556100468164010000000061004c810204565b506101d2565b61005d640100000000610157810204565b600160a060020a03811615156100fa57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f5f6d6f634f7261636c6541646472657373207368616c6c206e6f74206265207a60448201527f65726f2061646472657373000000000000000000000000000000000000000000606482015290519081900360840190fd5b60028054600160a060020a031916600160a060020a03838116919091179182905560408051338152905192909116917f1275deefe41e3273f2a99545002cc8369a04b2dbd04b2557e428a712cb2d5117916020908290030190a250565b600054600160a060020a031633146101d057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b565b6105b0806101e16000396000f30060806040526004361061008d5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416634541b2e3811461009257806350d25bcd146100b557806379ba5097146100dc5780638205bf6a146100f15780638da5cb5b14610106578063d4ee1d9014610137578063f106b5f41461014c578063f2fde38b14610161575b600080fd5b34801561009e57600080fd5b506100b3600160a060020a0360043516610182565b005b3480156100c157600080fd5b506100ca61027a565b60408051918252519081900360200190f35b3480156100e857600080fd5b506100b361037f565b3480156100fd57600080fd5b506100ca610452565b34801561011257600080fd5b5061011b610456565b60408051600160a060020a039092168252519081900360200190f35b34801561014357600080fd5b5061011b610465565b34801561015857600080fd5b5061011b610474565b34801561016d57600080fd5b506100b3600160a060020a0360043516610483565b61018a610520565b600160a060020a0381161515610210576040805160e560020a62461bcd02815260206004820152602b60248201527f5f6d6f634f7261636c6541646472657373207368616c6c206e6f74206265207a60448201527f65726f2061646472657373000000000000000000000000000000000000000000606482015290519081900360840190fd5b6002805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03838116919091179182905560408051338152905192909116917f1275deefe41e3273f2a99545002cc8369a04b2dbd04b2557e428a712cb2d5117916020908290030190a250565b6000806000600260009054906101000a9004600160a060020a0316600160a060020a03166359e02dd76040518163ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004016040805180830381600087803b1580156102ea57600080fd5b505af11580156102fe573d6000803e3d6000fd5b505050506040513d604081101561031457600080fd5b5080516020909101519092509050801515610379576040805160e560020a62461bcd02815260206004820152601160248201527f446f65736e2774206861732076616c7565000000000000000000000000000000604482015290519081900360640190fd5b50919050565b600154600160a060020a031633146103e1576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b60015460008054604051600160a060020a0393841693909116917f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91a3600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b4290565b600054600160a060020a031681565b600154600160a060020a031681565b600254600160a060020a031681565b61048b610520565b600054600160a060020a03828116911614156104f1576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f53414d455f4f574e4552000000000000000000000000000000000000604482015290519081900360640190fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600054600160a060020a03163314610582576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b5600a165627a7a7230582074b529db0a6435438201ab07c58fc9707cc61f8b6e44a63fef6b6872fb9f27e80029", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP1 PUSH2 0x791 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 MSTORE MLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND CALLER OR SWAP1 SSTORE PUSH2 0x46 DUP2 PUSH5 0x100000000 PUSH2 0x4C DUP2 MUL DIV JUMP JUMPDEST POP PUSH2 0x1D2 JUMP JUMPDEST PUSH2 0x5D PUSH5 0x100000000 PUSH2 0x157 DUP2 MUL DIV JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0xFA JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5F6D6F634F7261636C6541646472657373207368616C6C206E6F74206265207A PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x65726F2061646472657373000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x84 ADD SWAP1 REVERT JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 DUP2 AND SWAP2 SWAP1 SWAP2 OR SWAP2 DUP3 SWAP1 SSTORE PUSH1 0x40 DUP1 MLOAD CALLER DUP2 MSTORE SWAP1 MLOAD SWAP3 SWAP1 SWAP2 AND SWAP2 PUSH32 0x1275DEEFE41E3273F2A99545002CC8369A04B2DBD04B2557E428A712CB2D5117 SWAP2 PUSH1 0x20 SWAP1 DUP3 SWAP1 SUB ADD SWAP1 LOG2 POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x1D0 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH2 0x5B0 DUP1 PUSH2 0x1E1 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x8D JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x4541B2E3 DUP2 EQ PUSH2 0x92 JUMPI DUP1 PUSH4 0x50D25BCD EQ PUSH2 0xB5 JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0xDC JUMPI DUP1 PUSH4 0x8205BF6A EQ PUSH2 0xF1 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x106 JUMPI DUP1 PUSH4 0xD4EE1D90 EQ PUSH2 0x137 JUMPI DUP1 PUSH4 0xF106B5F4 EQ PUSH2 0x14C JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x161 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x182 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xC1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xCA PUSH2 0x27A JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xE8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB3 PUSH2 0x37F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xFD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xCA PUSH2 0x452 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x112 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x11B PUSH2 0x456 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x143 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x11B PUSH2 0x465 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x158 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x11B PUSH2 0x474 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x16D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x483 JUMP JUMPDEST PUSH2 0x18A PUSH2 0x520 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0x210 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5F6D6F634F7261636C6541646472657373207368616C6C206E6F74206265207A PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x65726F2061646472657373000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x84 ADD SWAP1 REVERT JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 DUP2 AND SWAP2 SWAP1 SWAP2 OR SWAP2 DUP3 SWAP1 SSTORE PUSH1 0x40 DUP1 MLOAD CALLER DUP2 MSTORE SWAP1 MLOAD SWAP3 SWAP1 SWAP2 AND SWAP2 PUSH32 0x1275DEEFE41E3273F2A99545002CC8369A04B2DBD04B2557E428A712CB2D5117 SWAP2 PUSH1 0x20 SWAP1 DUP3 SWAP1 SUB ADD SWAP1 LOG2 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x59E02DD7 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH29 0x100000000000000000000000000000000000000000000000000000000 MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 DUP1 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2FE JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x314 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD MLOAD SWAP1 SWAP3 POP SWAP1 POP DUP1 ISZERO ISZERO PUSH2 0x379 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x446F65736E2774206861732076616C7565000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x3E1 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND SWAP4 SWAP1 SWAP2 AND SWAP2 PUSH32 0x343765429AEA5A34B3FF6A3785A98A5ABB2597ACA87BFBB58632C173D585373A SWAP2 LOG3 PUSH1 0x1 DUP1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND OR SWAP1 SWAP2 SSTORE AND SWAP1 SSTORE JUMP JUMPDEST TIMESTAMP SWAP1 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH2 0x48B PUSH2 0x520 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x4F1 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F4F574E4552000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x582 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST JUMP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 PUSH21 0xB529DB0A6435438201AB07C58FC9707CC61F8B6E44 0xa6 0x3f 0xef PUSH12 0x6872FB9F27E8002900000000 ", + "sourceMap": "178:1255:64:-;;;460:92;8:9:-1;5:2;;;30:1;27;20:12;5:2;460:92:64;;;;;;;;;;;;;488:5:66;:18;;-1:-1:-1;;;;;;488:18:66;496:10;488:18;;;510:38:64;460:92;510:19;;;;:38;:::i;:::-;460:92;178:1255;;1165:266;575:12:66;:10;;;;:12;:::i;:::-;-1:-1:-1;;;;;1250:31:64;;;;1242:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1333:16;:36;;-1:-1:-1;;;;;;1333:36:64;-1:-1:-1;;;;;1333:36:64;;;;;;;;;;;1378:49;;;1416:10;1378:49;;;;1398:16;;;;;1378:49;;;;;;;;;;1165:266;:::o;642:93:66:-;704:5;;-1:-1:-1;;;;;704:5:66;690:10;:19;682:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;642:93::o;178:1255:64:-;;;;;;;" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "60806040526004361061008d5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416634541b2e3811461009257806350d25bcd146100b557806379ba5097146100dc5780638205bf6a146100f15780638da5cb5b14610106578063d4ee1d9014610137578063f106b5f41461014c578063f2fde38b14610161575b600080fd5b34801561009e57600080fd5b506100b3600160a060020a0360043516610182565b005b3480156100c157600080fd5b506100ca61027a565b60408051918252519081900360200190f35b3480156100e857600080fd5b506100b361037f565b3480156100fd57600080fd5b506100ca610452565b34801561011257600080fd5b5061011b610456565b60408051600160a060020a039092168252519081900360200190f35b34801561014357600080fd5b5061011b610465565b34801561015857600080fd5b5061011b610474565b34801561016d57600080fd5b506100b3600160a060020a0360043516610483565b61018a610520565b600160a060020a0381161515610210576040805160e560020a62461bcd02815260206004820152602b60248201527f5f6d6f634f7261636c6541646472657373207368616c6c206e6f74206265207a60448201527f65726f2061646472657373000000000000000000000000000000000000000000606482015290519081900360840190fd5b6002805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03838116919091179182905560408051338152905192909116917f1275deefe41e3273f2a99545002cc8369a04b2dbd04b2557e428a712cb2d5117916020908290030190a250565b6000806000600260009054906101000a9004600160a060020a0316600160a060020a03166359e02dd76040518163ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004016040805180830381600087803b1580156102ea57600080fd5b505af11580156102fe573d6000803e3d6000fd5b505050506040513d604081101561031457600080fd5b5080516020909101519092509050801515610379576040805160e560020a62461bcd02815260206004820152601160248201527f446f65736e2774206861732076616c7565000000000000000000000000000000604482015290519081900360640190fd5b50919050565b600154600160a060020a031633146103e1576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b60015460008054604051600160a060020a0393841693909116917f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91a3600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b4290565b600054600160a060020a031681565b600154600160a060020a031681565b600254600160a060020a031681565b61048b610520565b600054600160a060020a03828116911614156104f1576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f53414d455f4f574e4552000000000000000000000000000000000000604482015290519081900360640190fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600054600160a060020a03163314610582576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b5600a165627a7a7230582074b529db0a6435438201ab07c58fc9707cc61f8b6e44a63fef6b6872fb9f27e80029", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x8D JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x4541B2E3 DUP2 EQ PUSH2 0x92 JUMPI DUP1 PUSH4 0x50D25BCD EQ PUSH2 0xB5 JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0xDC JUMPI DUP1 PUSH4 0x8205BF6A EQ PUSH2 0xF1 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x106 JUMPI DUP1 PUSH4 0xD4EE1D90 EQ PUSH2 0x137 JUMPI DUP1 PUSH4 0xF106B5F4 EQ PUSH2 0x14C JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x161 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x182 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xC1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xCA PUSH2 0x27A JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xE8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB3 PUSH2 0x37F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xFD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xCA PUSH2 0x452 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x112 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x11B PUSH2 0x456 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x143 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x11B PUSH2 0x465 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x158 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x11B PUSH2 0x474 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x16D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x483 JUMP JUMPDEST PUSH2 0x18A PUSH2 0x520 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0x210 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5F6D6F634F7261636C6541646472657373207368616C6C206E6F74206265207A PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x65726F2061646472657373000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x84 ADD SWAP1 REVERT JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 DUP2 AND SWAP2 SWAP1 SWAP2 OR SWAP2 DUP3 SWAP1 SSTORE PUSH1 0x40 DUP1 MLOAD CALLER DUP2 MSTORE SWAP1 MLOAD SWAP3 SWAP1 SWAP2 AND SWAP2 PUSH32 0x1275DEEFE41E3273F2A99545002CC8369A04B2DBD04B2557E428A712CB2D5117 SWAP2 PUSH1 0x20 SWAP1 DUP3 SWAP1 SUB ADD SWAP1 LOG2 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x59E02DD7 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH29 0x100000000000000000000000000000000000000000000000000000000 MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 DUP1 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2FE JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x314 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD MLOAD SWAP1 SWAP3 POP SWAP1 POP DUP1 ISZERO ISZERO PUSH2 0x379 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x446F65736E2774206861732076616C7565000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x3E1 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND SWAP4 SWAP1 SWAP2 AND SWAP2 PUSH32 0x343765429AEA5A34B3FF6A3785A98A5ABB2597ACA87BFBB58632C173D585373A SWAP2 LOG3 PUSH1 0x1 DUP1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND OR SWAP1 SWAP2 SSTORE AND SWAP1 SSTORE JUMP JUMPDEST TIMESTAMP SWAP1 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH2 0x48B PUSH2 0x520 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x4F1 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F4F574E4552000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x582 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST JUMP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 PUSH21 0xB529DB0A6435438201AB07C58FC9707CC61F8B6E44 0xa6 0x3f 0xef PUSH12 0x6872FB9F27E8002900000000 ", + "sourceMap": "178:1255:64:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1165:266;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1165:266:64;-1:-1:-1;;;;;1165:266:64;;;;;;;636:197;;8:9:-1;5:2;;;30:1;27;20:12;5:2;636:197:64;;;;;;;;;;;;;;;;;;;;1159:176:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1159:176:66;;;;945:123:64;;8:9:-1;5:2;;;30:1;27;20:12;5:2;945:123:64;;;;157:20:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;157:20:66;;;;;;;;-1:-1:-1;;;;;157:20:66;;;;;;;;;;;;;;180:23;;8:9:-1;5:2;;;30:1;27;20:12;5:2;180:23:66;;;;239:31:64;;8:9:-1;5:2;;;30:1;27;20:12;5:2;239:31:64;;;;945:140:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;945:140:66;-1:-1:-1;;;;;945:140:66;;;;;1165:266:64;575:12:66;:10;:12::i;:::-;-1:-1:-1;;;;;1250:31:64;;;;1242:87;;;;;-1:-1:-1;;;;;1242:87:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1333:16;:36;;-1:-1:-1;;1333:36:64;-1:-1:-1;;;;;1333:36:64;;;;;;;;;;;1378:49;;;1416:10;1378:49;;;;1398:16;;;;;1378:49;;;;;;;;;;1165:266;:::o;636:197::-;683:6;696:13;711;739:16;;;;;;;;;-1:-1:-1;;;;;739:16:64;-1:-1:-1;;;;;728:33:64;;:35;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;728:35:64;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;728:35:64;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;728:35:64;;;;;;;;;-1:-1:-1;728:35:64;-1:-1:-1;767:38:64;;;;;;;;-1:-1:-1;;;;;767:38:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;823:5:64;636:197;-1:-1:-1;636:197:64:o;1159:176:66:-;1219:8;;-1:-1:-1;;;;;1219:8:66;1205:10;:22;1197:52;;;;;-1:-1:-1;;;;;1197:52:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;1277:8;;;1270:5;;1258:28;;-1:-1:-1;;;;;1277:8:66;;;;1270:5;;;;1258:28;;;1298:8;;;;1290:16;;-1:-1:-1;;1290:16:66;;;-1:-1:-1;;;;;1298:8:66;;1290:16;;;;1310:21;;;1159:176::o;945:123:64:-;1015:3;945:123;:::o;157:20:66:-;;;-1:-1:-1;;;;;157:20:66;;:::o;180:23::-;;;-1:-1:-1;;;;;180:23:66;;:::o;239:31:64:-;;;-1:-1:-1;;;;;239:31:64;;:::o;945:140:66:-;575:12;:10;:12::i;:::-;1033:5;;-1:-1:-1;;;;;1020:18:66;;;1033:5;;1020:18;;1012:45;;;;;-1:-1:-1;;;;;1012:45:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;1061:8;:20;;-1:-1:-1;;1061:20:66;-1:-1:-1;;;;;1061:20:66;;;;;;;;;;945:140::o;642:93::-;704:5;;-1:-1:-1;;;;;704:5:66;690:10;:19;682:49;;;;;-1:-1:-1;;;;;682:49:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;642:93::o" + }, + "methodIdentifiers": { + "acceptOwnership()": "79ba5097", + "latestAnswer()": "50d25bcd", + "latestTimestamp()": "8205bf6a", + "mocOracleAddress()": "f106b5f4", + "newOwner()": "d4ee1d90", + "owner()": "8da5cb5b", + "setMoCOracleAddress(address)": "4541b2e3", + "transferOwnership(address)": "f2fde38b" + } + }, + "userdoc": { + "methods": {} + } + } + }, + "solidity/contracts/utility/MocUSDToBTCOracle.sol": { + "Medianizer": { + "abi": [ + { + "constant": true, + "inputs": [], + "name": "peek", + "outputs": [ + { + "name": "", + "type": "bytes32" + }, + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + } + ], + "devdoc": { + "methods": {} + }, + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "peek()": "59e02dd7" + } + }, + "userdoc": { + "methods": {} + } + }, + "MocUSDToBTCOracle": { + "abi": [ + { + "constant": true, + "inputs": [], + "name": "DECIMALS", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_mocOracleAddress", + "type": "address" + } + ], + "name": "setMoCOracleAddress", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "latestAnswer", + "outputs": [ + { + "name": "", + "type": "int256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "acceptOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "latestTimestamp", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "owner", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "newOwner", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "mocOracleAddress", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "name": "_mocOracleAddress", + "type": "address" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "mocOracleAddress", + "type": "address" + }, + { + "indexed": false, + "name": "changerAddress", + "type": "address" + } + ], + "name": "SetMoCOracleAddress", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "_prevOwner", + "type": "address" + }, + { + "indexed": true, + "name": "_newOwner", + "type": "address" + } + ], + "name": "OwnerUpdate", + "type": "event" + } + ], + "devdoc": { + "methods": { + "acceptOwnership()": { + "details": "used by a new owner to accept an ownership transfer" + }, + "latestAnswer()": { + "details": "returns the USD/BTC rate.", + "return": "always returns the rate of 10000" + }, + "latestTimestamp()": { + "details": "returns the USD/BTC update time.", + "return": "always returns current block's timestamp" + }, + "setMoCOracleAddress(address)": { + "details": "set MoC oracle address", + "params": { + "_mocOracleAddress": "MoC oracle address" + } + }, + "transferOwnership(address)": { + "details": "allows transferring the contract ownership the new owner still needs to accept the transfer can only be called by the contract owner", + "params": { + "_newOwner": "new contract owner" + } + } + } + }, + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b506040516020806108d9833981016040525160008054600160a060020a031916331790556100468164010000000061004c810204565b506101d2565b61005d640100000000610157810204565b600160a060020a03811615156100fa57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f5f6d6f634f7261636c6541646472657373207368616c6c206e6f74206265207a60448201527f65726f2061646472657373000000000000000000000000000000000000000000606482015290519081900360840190fd5b60028054600160a060020a031916600160a060020a03838116919091179182905560408051338152905192909116917f1275deefe41e3273f2a99545002cc8369a04b2dbd04b2557e428a712cb2d5117916020908290030190a250565b600054600160a060020a031633146101d057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b565b6106f8806101e16000396000f3006080604052600436106100985763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416632e0f2625811461009d5780634541b2e3146100c457806350d25bcd146100e757806379ba5097146100fc5780638205bf6a146101115780638da5cb5b14610126578063d4ee1d9014610157578063f106b5f41461016c578063f2fde38b14610181575b600080fd5b3480156100a957600080fd5b506100b26101a2565b60408051918252519081900360200190f35b3480156100d057600080fd5b506100e5600160a060020a03600435166101ae565b005b3480156100f357600080fd5b506100b26102a6565b34801561010857600080fd5b506100e56103d4565b34801561011d57600080fd5b506100b26104a7565b34801561013257600080fd5b5061013b6104ab565b60408051600160a060020a039092168252519081900360200190f35b34801561016357600080fd5b5061013b6104ba565b34801561017857600080fd5b5061013b6104c9565b34801561018d57600080fd5b506100e5600160a060020a03600435166104d8565b670de0b6b3a764000081565b6101b6610575565b600160a060020a038116151561023c576040805160e560020a62461bcd02815260206004820152602b60248201527f5f6d6f634f7261636c6541646472657373207368616c6c206e6f74206265207a60448201527f65726f2061646472657373000000000000000000000000000000000000000000606482015290519081900360840190fd5b6002805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03838116919091179182905560408051338152905192909116917f1275deefe41e3273f2a99545002cc8369a04b2dbd04b2557e428a712cb2d5117916020908290030190a250565b6000806000600260009054906101000a9004600160a060020a0316600160a060020a03166359e02dd76040518163ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004016040805180830381600087803b15801561031657600080fd5b505af115801561032a573d6000803e3d6000fd5b505050506040513d604081101561034057600080fd5b50805160209091015190925090508015156103a5576040805160e560020a62461bcd02815260206004820152601160248201527f446f65736e2774206861732076616c7565000000000000000000000000000000604482015290519081900360640190fd5b6103cd670de0b6b3a76400006103c1818563ffffffff6105d916565b9063ffffffff61064c16565b9250505090565b600154600160a060020a03163314610436576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b60015460008054604051600160a060020a0393841693909116917f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91a3600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b4290565b600054600160a060020a031681565b600154600160a060020a031681565b600254600160a060020a031681565b6104e0610575565b600054600160a060020a0382811691161415610546576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f53414d455f4f574e4552000000000000000000000000000000000000604482015290519081900360640190fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600054600160a060020a031633146105d7576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b565b600080808311610633576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f4449564944455f42595f5a45524f0000000000000000000000000000604482015290519081900360640190fd5b828481151561063e57fe5b0490508091505b5092915050565b60008083151561065f5760009150610645565b5082820282848281151561066f57fe5b04146106c5576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b93925050505600a165627a7a723058202b4d48ffa3c43a6820d3d413dc7f5873bdb3dbee8530e9378d294c9fde4bfdcf0029", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP1 PUSH2 0x8D9 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 MSTORE MLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND CALLER OR SWAP1 SSTORE PUSH2 0x46 DUP2 PUSH5 0x100000000 PUSH2 0x4C DUP2 MUL DIV JUMP JUMPDEST POP PUSH2 0x1D2 JUMP JUMPDEST PUSH2 0x5D PUSH5 0x100000000 PUSH2 0x157 DUP2 MUL DIV JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0xFA JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5F6D6F634F7261636C6541646472657373207368616C6C206E6F74206265207A PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x65726F2061646472657373000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x84 ADD SWAP1 REVERT JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 DUP2 AND SWAP2 SWAP1 SWAP2 OR SWAP2 DUP3 SWAP1 SSTORE PUSH1 0x40 DUP1 MLOAD CALLER DUP2 MSTORE SWAP1 MLOAD SWAP3 SWAP1 SWAP2 AND SWAP2 PUSH32 0x1275DEEFE41E3273F2A99545002CC8369A04B2DBD04B2557E428A712CB2D5117 SWAP2 PUSH1 0x20 SWAP1 DUP3 SWAP1 SUB ADD SWAP1 LOG2 POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x1D0 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH2 0x6F8 DUP1 PUSH2 0x1E1 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x98 JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x2E0F2625 DUP2 EQ PUSH2 0x9D JUMPI DUP1 PUSH4 0x4541B2E3 EQ PUSH2 0xC4 JUMPI DUP1 PUSH4 0x50D25BCD EQ PUSH2 0xE7 JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0xFC JUMPI DUP1 PUSH4 0x8205BF6A EQ PUSH2 0x111 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x126 JUMPI DUP1 PUSH4 0xD4EE1D90 EQ PUSH2 0x157 JUMPI DUP1 PUSH4 0xF106B5F4 EQ PUSH2 0x16C JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x181 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB2 PUSH2 0x1A2 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xD0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xE5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x1AE JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xF3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB2 PUSH2 0x2A6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x108 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xE5 PUSH2 0x3D4 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x11D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB2 PUSH2 0x4A7 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x132 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x13B PUSH2 0x4AB JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x163 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x13B PUSH2 0x4BA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x178 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x13B PUSH2 0x4C9 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x18D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xE5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x4D8 JUMP JUMPDEST PUSH8 0xDE0B6B3A7640000 DUP2 JUMP JUMPDEST PUSH2 0x1B6 PUSH2 0x575 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0x23C JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5F6D6F634F7261636C6541646472657373207368616C6C206E6F74206265207A PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x65726F2061646472657373000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x84 ADD SWAP1 REVERT JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 DUP2 AND SWAP2 SWAP1 SWAP2 OR SWAP2 DUP3 SWAP1 SSTORE PUSH1 0x40 DUP1 MLOAD CALLER DUP2 MSTORE SWAP1 MLOAD SWAP3 SWAP1 SWAP2 AND SWAP2 PUSH32 0x1275DEEFE41E3273F2A99545002CC8369A04B2DBD04B2557E428A712CB2D5117 SWAP2 PUSH1 0x20 SWAP1 DUP3 SWAP1 SUB ADD SWAP1 LOG2 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x59E02DD7 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH29 0x100000000000000000000000000000000000000000000000000000000 MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 DUP1 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x316 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x32A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x340 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD MLOAD SWAP1 SWAP3 POP SWAP1 POP DUP1 ISZERO ISZERO PUSH2 0x3A5 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x446F65736E2774206861732076616C7565000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x3CD PUSH8 0xDE0B6B3A7640000 PUSH2 0x3C1 DUP2 DUP6 PUSH4 0xFFFFFFFF PUSH2 0x5D9 AND JUMP JUMPDEST SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x64C AND JUMP JUMPDEST SWAP3 POP POP POP SWAP1 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x436 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND SWAP4 SWAP1 SWAP2 AND SWAP2 PUSH32 0x343765429AEA5A34B3FF6A3785A98A5ABB2597ACA87BFBB58632C173D585373A SWAP2 LOG3 PUSH1 0x1 DUP1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND OR SWAP1 SWAP2 SSTORE AND SWAP1 SSTORE JUMP JUMPDEST TIMESTAMP SWAP1 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH2 0x4E0 PUSH2 0x575 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x546 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F4F574E4552000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x5D7 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP4 GT PUSH2 0x633 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4449564944455F42595F5A45524F0000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP3 DUP5 DUP2 ISZERO ISZERO PUSH2 0x63E JUMPI INVALID JUMPDEST DIV SWAP1 POP DUP1 SWAP2 POP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 ISZERO ISZERO PUSH2 0x65F JUMPI PUSH1 0x0 SWAP2 POP PUSH2 0x645 JUMP JUMPDEST POP DUP3 DUP3 MUL DUP3 DUP5 DUP3 DUP2 ISZERO ISZERO PUSH2 0x66F JUMPI INVALID JUMPDEST DIV EQ PUSH2 0x6C5 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 0x2b 0x4d 0x48 SELFDESTRUCT LOG3 0xc4 GASPRICE PUSH9 0x20D3D413DC7F5873BD 0xb3 0xdb 0xee DUP6 ADDRESS 0xe9 CALLDATACOPY DUP14 0x29 0x4c SWAP16 0xde 0x4b REVERT 0xcf STOP 0x29 ", + "sourceMap": "203:1381:65:-;;;560:92;8:9:-1;5:2;;;30:1;27;20:12;5:2;560:92:65;;;;;;;;;;;;;488:5:66;:18;;-1:-1:-1;;;;;;488:18:66;496:10;488:18;;;610:38:65;560:92;610:19;;;;:38;:::i;:::-;560:92;203:1381;;1316:266;575:12:66;:10;;;;:12;:::i;:::-;-1:-1:-1;;;;;1401:31:65;;;;1393:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1484:16;:36;;-1:-1:-1;;;;;;1484:36:65;-1:-1:-1;;;;;1484:36:65;;;;;;;;;;;1529:49;;;1567:10;1529:49;;;;1549:16;;;;;1529:49;;;;;;;;;;1316:266;:::o;642:93:66:-;704:5;;-1:-1:-1;;;;;704:5:66;690:10;:19;682:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;642:93::o;203:1381:65:-;;;;;;;" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "6080604052600436106100985763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416632e0f2625811461009d5780634541b2e3146100c457806350d25bcd146100e757806379ba5097146100fc5780638205bf6a146101115780638da5cb5b14610126578063d4ee1d9014610157578063f106b5f41461016c578063f2fde38b14610181575b600080fd5b3480156100a957600080fd5b506100b26101a2565b60408051918252519081900360200190f35b3480156100d057600080fd5b506100e5600160a060020a03600435166101ae565b005b3480156100f357600080fd5b506100b26102a6565b34801561010857600080fd5b506100e56103d4565b34801561011d57600080fd5b506100b26104a7565b34801561013257600080fd5b5061013b6104ab565b60408051600160a060020a039092168252519081900360200190f35b34801561016357600080fd5b5061013b6104ba565b34801561017857600080fd5b5061013b6104c9565b34801561018d57600080fd5b506100e5600160a060020a03600435166104d8565b670de0b6b3a764000081565b6101b6610575565b600160a060020a038116151561023c576040805160e560020a62461bcd02815260206004820152602b60248201527f5f6d6f634f7261636c6541646472657373207368616c6c206e6f74206265207a60448201527f65726f2061646472657373000000000000000000000000000000000000000000606482015290519081900360840190fd5b6002805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03838116919091179182905560408051338152905192909116917f1275deefe41e3273f2a99545002cc8369a04b2dbd04b2557e428a712cb2d5117916020908290030190a250565b6000806000600260009054906101000a9004600160a060020a0316600160a060020a03166359e02dd76040518163ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004016040805180830381600087803b15801561031657600080fd5b505af115801561032a573d6000803e3d6000fd5b505050506040513d604081101561034057600080fd5b50805160209091015190925090508015156103a5576040805160e560020a62461bcd02815260206004820152601160248201527f446f65736e2774206861732076616c7565000000000000000000000000000000604482015290519081900360640190fd5b6103cd670de0b6b3a76400006103c1818563ffffffff6105d916565b9063ffffffff61064c16565b9250505090565b600154600160a060020a03163314610436576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b60015460008054604051600160a060020a0393841693909116917f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91a3600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b4290565b600054600160a060020a031681565b600154600160a060020a031681565b600254600160a060020a031681565b6104e0610575565b600054600160a060020a0382811691161415610546576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f53414d455f4f574e4552000000000000000000000000000000000000604482015290519081900360640190fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600054600160a060020a031633146105d7576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b565b600080808311610633576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f4449564944455f42595f5a45524f0000000000000000000000000000604482015290519081900360640190fd5b828481151561063e57fe5b0490508091505b5092915050565b60008083151561065f5760009150610645565b5082820282848281151561066f57fe5b04146106c5576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b93925050505600a165627a7a723058202b4d48ffa3c43a6820d3d413dc7f5873bdb3dbee8530e9378d294c9fde4bfdcf0029", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x98 JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x2E0F2625 DUP2 EQ PUSH2 0x9D JUMPI DUP1 PUSH4 0x4541B2E3 EQ PUSH2 0xC4 JUMPI DUP1 PUSH4 0x50D25BCD EQ PUSH2 0xE7 JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0xFC JUMPI DUP1 PUSH4 0x8205BF6A EQ PUSH2 0x111 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x126 JUMPI DUP1 PUSH4 0xD4EE1D90 EQ PUSH2 0x157 JUMPI DUP1 PUSH4 0xF106B5F4 EQ PUSH2 0x16C JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x181 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB2 PUSH2 0x1A2 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xD0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xE5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x1AE JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xF3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB2 PUSH2 0x2A6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x108 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xE5 PUSH2 0x3D4 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x11D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB2 PUSH2 0x4A7 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x132 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x13B PUSH2 0x4AB JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x163 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x13B PUSH2 0x4BA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x178 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x13B PUSH2 0x4C9 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x18D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xE5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x4D8 JUMP JUMPDEST PUSH8 0xDE0B6B3A7640000 DUP2 JUMP JUMPDEST PUSH2 0x1B6 PUSH2 0x575 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0x23C JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5F6D6F634F7261636C6541646472657373207368616C6C206E6F74206265207A PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x65726F2061646472657373000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x84 ADD SWAP1 REVERT JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 DUP2 AND SWAP2 SWAP1 SWAP2 OR SWAP2 DUP3 SWAP1 SSTORE PUSH1 0x40 DUP1 MLOAD CALLER DUP2 MSTORE SWAP1 MLOAD SWAP3 SWAP1 SWAP2 AND SWAP2 PUSH32 0x1275DEEFE41E3273F2A99545002CC8369A04B2DBD04B2557E428A712CB2D5117 SWAP2 PUSH1 0x20 SWAP1 DUP3 SWAP1 SUB ADD SWAP1 LOG2 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x59E02DD7 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH29 0x100000000000000000000000000000000000000000000000000000000 MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 DUP1 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x316 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x32A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x340 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD MLOAD SWAP1 SWAP3 POP SWAP1 POP DUP1 ISZERO ISZERO PUSH2 0x3A5 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x446F65736E2774206861732076616C7565000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x3CD PUSH8 0xDE0B6B3A7640000 PUSH2 0x3C1 DUP2 DUP6 PUSH4 0xFFFFFFFF PUSH2 0x5D9 AND JUMP JUMPDEST SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x64C AND JUMP JUMPDEST SWAP3 POP POP POP SWAP1 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x436 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND SWAP4 SWAP1 SWAP2 AND SWAP2 PUSH32 0x343765429AEA5A34B3FF6A3785A98A5ABB2597ACA87BFBB58632C173D585373A SWAP2 LOG3 PUSH1 0x1 DUP1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND OR SWAP1 SWAP2 SSTORE AND SWAP1 SSTORE JUMP JUMPDEST TIMESTAMP SWAP1 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH2 0x4E0 PUSH2 0x575 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x546 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F4F574E4552000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x5D7 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP4 GT PUSH2 0x633 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4449564944455F42595F5A45524F0000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP3 DUP5 DUP2 ISZERO ISZERO PUSH2 0x63E JUMPI INVALID JUMPDEST DIV SWAP1 POP DUP1 SWAP2 POP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 ISZERO ISZERO PUSH2 0x65F JUMPI PUSH1 0x0 SWAP2 POP PUSH2 0x645 JUMP JUMPDEST POP DUP3 DUP3 MUL DUP3 DUP5 DUP3 DUP2 ISZERO ISZERO PUSH2 0x66F JUMPI INVALID JUMPDEST DIV EQ PUSH2 0x6C5 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 0x2b 0x4d 0x48 SELFDESTRUCT LOG3 0xc4 GASPRICE PUSH9 0x20D3D413DC7F5873BD 0xb3 0xdb 0xee DUP6 ADDRESS 0xe9 CALLDATACOPY DUP14 0x29 0x4c SWAP16 0xde 0x4b REVERT 0xcf STOP 0x29 ", + "sourceMap": "203:1381:65:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;294:41;;8:9:-1;5:2;;;30:1;27;20:12;5:2;294:41:65;;;;;;;;;;;;;;;;;;;;1316:266;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1316:266:65;-1:-1:-1;;;;;1316:266:65;;;;;;;749:235;;8:9:-1;5:2;;;30:1;27;20:12;5:2;749:235:65;;;;1159:176:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1159:176:66;;;;1096:123:65;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1096:123:65;;;;157:20:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;157:20:66;;;;;;;;-1:-1:-1;;;;;157:20:66;;;;;;;;;;;;;;180:23;;8:9:-1;5:2;;;30:1;27;20:12;5:2;180:23:66;;;;339:31:65;;8:9:-1;5:2;;;30:1;27;20:12;5:2;339:31:65;;;;945:140:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;945:140:66;-1:-1:-1;;;;;945:140:66;;;;;294:41:65;329:6;294:41;:::o;1316:266::-;575:12:66;:10;:12::i;:::-;-1:-1:-1;;;;;1401:31:65;;;;1393:87;;;;;-1:-1:-1;;;;;1393:87:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1484:16;:36;;-1:-1:-1;;1484:36:65;-1:-1:-1;;;;;1484:36:65;;;;;;;;;;;1529:49;;;1567:10;1529:49;;;;1549:16;;;;;1529:49;;;;;;;;;;1316:266;:::o;749:235::-;796:6;809:13;824;852:16;;;;;;;;;-1:-1:-1;;;;;852:16:65;-1:-1:-1;;;;;841:33:65;;:35;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;841:35:65;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;841:35:65;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;841:35:65;;;;;;;;;-1:-1:-1;841:35:65;-1:-1:-1;880:38:65;;;;;;;;-1:-1:-1;;;;;880:38:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;937:42;329:6;937:28;329:6;958:5;937:28;:12;:28;:::i;:::-;:32;:42;:32;:42;:::i;:::-;923:57;;749:235;;;:::o;1159:176:66:-;1219:8;;-1:-1:-1;;;;;1219:8:66;1205:10;:22;1197:52;;;;;-1:-1:-1;;;;;1197:52:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;1277:8;;;1270:5;;1258:28;;-1:-1:-1;;;;;1277:8:66;;;;1270:5;;;;1258:28;;;1298:8;;;;1290:16;;-1:-1:-1;;1290:16:66;;;-1:-1:-1;;;;;1298:8:66;;1290:16;;;;1310:21;;;1159:176::o;1096:123:65:-;1166:3;1096:123;:::o;157:20:66:-;;;-1:-1:-1;;;;;157:20:66;;:::o;180:23::-;;;-1:-1:-1;;;;;180:23:66;;:::o;339:31:65:-;;;-1:-1:-1;;;;;339:31:65;;:::o;945:140:66:-;575:12;:10;:12::i;:::-;1033:5;;-1:-1:-1;;;;;1020:18:66;;;1033:5;;1020:18;;1012:45;;;;;-1:-1:-1;;;;;1012:45:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;1061:8;:20;;-1:-1:-1;;1061:20:66;-1:-1:-1;;;;;1061:20:66;;;;;;;;;;945:140::o;642:93::-;704:5;;-1:-1:-1;;;;;704:5:66;690:10;:19;682:49;;;;;-1:-1:-1;;;;;682:49:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;642:93::o;1307:149:69:-;1367:7;;1388:6;;;1380:37;;;;;-1:-1:-1;;;;;1380:37:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;1438:2;1433;:7;;;;;;;;1421:19;;1451:1;1444:8;;1307:149;;;;;;:::o;924:197::-;984:7;;1023;;1019:21;;;1039:1;1032:8;;;;1019:21;-1:-1:-1;1057:7:69;;;1062:2;1057;:7;1076:6;;;;;;;;:12;1068:37;;;;;-1:-1:-1;;;;;1068:37:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;1116:1;924:197;-1:-1:-1;;;924:197:69:o" + }, + "methodIdentifiers": { + "DECIMALS()": "2e0f2625", + "acceptOwnership()": "79ba5097", + "latestAnswer()": "50d25bcd", + "latestTimestamp()": "8205bf6a", + "mocOracleAddress()": "f106b5f4", + "newOwner()": "d4ee1d90", + "owner()": "8da5cb5b", + "setMoCOracleAddress(address)": "4541b2e3", + "transferOwnership(address)": "f2fde38b" + } + }, + "userdoc": { + "methods": {} + } + } + }, + "solidity/contracts/utility/Owned.sol": { + "Owned": { + "abi": [ + { + "constant": false, + "inputs": [], + "name": "acceptOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "owner", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "newOwner", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "_prevOwner", + "type": "address" + }, + { + "indexed": true, + "name": "_newOwner", + "type": "address" + } + ], + "name": "OwnerUpdate", + "type": "event" + } + ], + "devdoc": { + "methods": { + "acceptOwnership()": { + "details": "used by a new owner to accept an ownership transfer" + }, + "transferOwnership(address)": { + "details": "allows transferring the contract ownership the new owner still needs to accept the transfer can only be called by the contract owner", + "params": { + "_newOwner": "new contract owner" + } + } + } + }, + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b5060008054600160a060020a03191633179055610347806100326000396000f3006080604052600436106100615763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166379ba509781146100665780638da5cb5b1461007d578063d4ee1d90146100ae578063f2fde38b146100c3575b600080fd5b34801561007257600080fd5b5061007b6100e4565b005b34801561008957600080fd5b506100926101ce565b60408051600160a060020a039092168252519081900360200190f35b3480156100ba57600080fd5b506100926101dd565b3480156100cf57600080fd5b5061007b600160a060020a03600435166101ec565b600154600160a060020a0316331461015d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b60015460008054604051600160a060020a0393841693909116917f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91a3600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b600054600160a060020a031681565b600154600160a060020a031681565b6101f46102a0565b600054600160a060020a038281169116141561027157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f4552525f53414d455f4f574e4552000000000000000000000000000000000000604482015290519081900360640190fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600054600160a060020a0316331461031957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b5600a165627a7a72305820bbdeef54d2bab62aa3237d2bb16e59a02989a6361c89680a084491de23c79a460029", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND CALLER OR SWAP1 SSTORE PUSH2 0x347 DUP1 PUSH2 0x32 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x61 JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x79BA5097 DUP2 EQ PUSH2 0x66 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x7D JUMPI DUP1 PUSH4 0xD4EE1D90 EQ PUSH2 0xAE JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0xC3 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x72 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x7B PUSH2 0xE4 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x89 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x92 PUSH2 0x1CE JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xBA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x92 PUSH2 0x1DD JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xCF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x7B PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x1EC JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x15D JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND SWAP4 SWAP1 SWAP2 AND SWAP2 PUSH32 0x343765429AEA5A34B3FF6A3785A98A5ABB2597ACA87BFBB58632C173D585373A SWAP2 LOG3 PUSH1 0x1 DUP1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND OR SWAP1 SWAP2 SSTORE AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH2 0x1F4 PUSH2 0x2A0 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x271 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F4F574E4552000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x319 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST JUMP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 0xbb 0xde 0xef SLOAD 0xd2 0xba 0xb6 0x2a LOG3 0x23 PUSH30 0x2BB16E59A02989A6361C89680A084491DE23C79A46002900000000000000 ", + "sourceMap": "129:1208:66:-;;;463:47;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;488:5:66;:18;;-1:-1:-1;;;;;;488:18:66;496:10;488:18;;;129:1208;;;;;;" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "6080604052600436106100615763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166379ba509781146100665780638da5cb5b1461007d578063d4ee1d90146100ae578063f2fde38b146100c3575b600080fd5b34801561007257600080fd5b5061007b6100e4565b005b34801561008957600080fd5b506100926101ce565b60408051600160a060020a039092168252519081900360200190f35b3480156100ba57600080fd5b506100926101dd565b3480156100cf57600080fd5b5061007b600160a060020a03600435166101ec565b600154600160a060020a0316331461015d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b60015460008054604051600160a060020a0393841693909116917f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91a3600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b600054600160a060020a031681565b600154600160a060020a031681565b6101f46102a0565b600054600160a060020a038281169116141561027157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f4552525f53414d455f4f574e4552000000000000000000000000000000000000604482015290519081900360640190fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600054600160a060020a0316331461031957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b5600a165627a7a72305820bbdeef54d2bab62aa3237d2bb16e59a02989a6361c89680a084491de23c79a460029", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x61 JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x79BA5097 DUP2 EQ PUSH2 0x66 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x7D JUMPI DUP1 PUSH4 0xD4EE1D90 EQ PUSH2 0xAE JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0xC3 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x72 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x7B PUSH2 0xE4 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x89 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x92 PUSH2 0x1CE JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xBA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x92 PUSH2 0x1DD JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xCF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x7B PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x1EC JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x15D JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND SWAP4 SWAP1 SWAP2 AND SWAP2 PUSH32 0x343765429AEA5A34B3FF6A3785A98A5ABB2597ACA87BFBB58632C173D585373A SWAP2 LOG3 PUSH1 0x1 DUP1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND OR SWAP1 SWAP2 SSTORE AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH2 0x1F4 PUSH2 0x2A0 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x271 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F4F574E4552000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x319 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST JUMP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 0xbb 0xde 0xef SLOAD 0xd2 0xba 0xb6 0x2a LOG3 0x23 PUSH30 0x2BB16E59A02989A6361C89680A084491DE23C79A46002900000000000000 ", + "sourceMap": "129:1208:66:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1159:176;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1159:176:66;;;;;;157:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;157:20:66;;;;;;;;-1:-1:-1;;;;;157:20:66;;;;;;;;;;;;;;180:23;;8:9:-1;5:2;;;30:1;27;20:12;5:2;180:23:66;;;;945:140;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;945:140:66;-1:-1:-1;;;;;945:140:66;;;;;1159:176;1219:8;;-1:-1:-1;;;;;1219:8:66;1205:10;:22;1197:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1277:8;;;1270:5;;1258:28;;-1:-1:-1;;;;;1277:8:66;;;;1270:5;;;;1258:28;;;1298:8;;;;1290:16;;-1:-1:-1;;1290:16:66;;;-1:-1:-1;;;;;1298:8:66;;1290:16;;;;1310:21;;;1159:176::o;157:20::-;;;-1:-1:-1;;;;;157:20:66;;:::o;180:23::-;;;-1:-1:-1;;;;;180:23:66;;:::o;945:140::-;575:12;:10;:12::i;:::-;1033:5;;-1:-1:-1;;;;;1020:18:66;;;1033:5;;1020:18;;1012:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1061:8;:20;;-1:-1:-1;;1061:20:66;-1:-1:-1;;;;;1061:20:66;;;;;;;;;;945:140::o;642:93::-;704:5;;-1:-1:-1;;;;;704:5:66;690:10;:19;682:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;642:93::o" + }, + "methodIdentifiers": { + "acceptOwnership()": "79ba5097", + "newOwner()": "d4ee1d90", + "owner()": "8da5cb5b", + "transferOwnership(address)": "f2fde38b" + } + }, + "userdoc": { + "methods": {} + } + } + }, + "solidity/contracts/utility/PriceOracle.sol": { + "PriceOracle": { + "abi": [ + { + "constant": true, + "inputs": [], + "name": "tokenA", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "tokenB", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "", + "type": "address" + } + ], + "name": "tokenDecimals", + "outputs": [ + { + "name": "", + "type": "uint8" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_tokenA", + "type": "address" + }, + { + "name": "_tokenB", + "type": "address" + } + ], + "name": "latestRate", + "outputs": [ + { + "name": "", + "type": "uint256" + }, + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_tokenA", + "type": "address" + }, + { + "name": "_tokenB", + "type": "address" + } + ], + "name": "latestRateAndUpdateTime", + "outputs": [ + { + "name": "", + "type": "uint256" + }, + { + "name": "", + "type": "uint256" + }, + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "tokenAOracle", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "lastUpdateTime", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "", + "type": "address" + } + ], + "name": "tokensToOracles", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "tokenBOracle", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "name": "_tokenA", + "type": "address" + }, + { + "name": "_tokenB", + "type": "address" + }, + { + "name": "_tokenAOracle", + "type": "address" + }, + { + "name": "_tokenBOracle", + "type": "address" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + } + ], + "devdoc": { + "methods": { + "lastUpdateTime()": { + "details": "returns the timestamp of the last price update", + "return": "timestamp" + }, + "latestRate(address,address)": { + "details": "returns the latest known rate between the two given tokens for a given pair of tokens A and B, returns the rate of A / B (the number of B units equivalent to a single A unit) the rate is returned as a fraction (numerator / denominator) for accuracy", + "params": { + "_tokenA": "token to get the rate of 1 unit of", + "_tokenB": "token to get the rate of 1 `_tokenA` against" + }, + "return": "numeratordenominator" + }, + "latestRateAndUpdateTime(address,address)": { + "details": "returns both the rate and the timestamp of the last update in a single call (gas optimization)", + "params": { + "_tokenA": "token to get the rate of 1 unit of", + "_tokenB": "token to get the rate of 1 `_tokenA` against" + }, + "return": "numeratordenominatortimestamp of the last update" + } + } + }, + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b50604051608080610b408339810160409081528151602083015191830151606090930151909290838361004c8282640100000000610168810204565b83836100618282640100000000610168810204565b60008054600160a060020a03808b16600160a060020a03199283161790925560018054928a16929091169190911790556100a38864010000000061020b810204565b600160a060020a0389166000908152600260205260409020805460ff191660ff929092169190911790556100df8764010000000061020b810204565b600160a060020a039788166000818152600260209081526040808320805460ff9690961660ff1990961695909517909455600380549a8c16600160a060020a03199b8c168117909155600480549a8d169a8c168b1790559b909a168152600590995281892080548916909a1790995597875250505093909220805490911690911790555061033f565b61017a826401000000006102c5810204565b61018c816401000000006102c5810204565b600160a060020a03828116908216141561020757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f4552525f53414d455f4144445245535300000000000000000000000000000000604482015290519081900360640190fd5b5050565b6000600160a060020a03821673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee141561023a575060126102c0565b81600160a060020a031663313ce5676040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561029157600080fd5b505af11580156102a5573d6000803e3d6000fd5b505050506040513d60208110156102bb57600080fd5b505190505b919050565b600160a060020a038116151561033c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b50565b6107f28061034e6000396000f3006080604052600436106100985763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630fc63d10811461009d5780635f64b55b146100ce5780638ee573ac146100e3578063ae8180041461011a578063b1772d7a1461015a578063b9e1715b1461019f578063c8f33c91146101b4578063cbd962d1146101db578063f997fda7146101fc575b600080fd5b3480156100a957600080fd5b506100b2610211565b60408051600160a060020a039092168252519081900360200190f35b3480156100da57600080fd5b506100b2610220565b3480156100ef57600080fd5b50610104600160a060020a036004351661022f565b6040805160ff9092168252519081900360200190f35b34801561012657600080fd5b50610141600160a060020a0360043581169060243516610244565b6040805192835260208301919091528051918290030190f35b34801561016657600080fd5b50610181600160a060020a0360043581169060243516610419565b60408051938452602084019290925282820152519081900360600190f35b3480156101ab57600080fd5b506100b2610448565b3480156101c057600080fd5b506101c9610457565b60408051918252519081900360200190f35b3480156101e757600080fd5b506100b2600160a060020a0360043516610599565b34801561020857600080fd5b506100b26105b4565b600054600160a060020a031681565b600154600160a060020a031681565b60026020526000908152604090205460ff1681565b600080600080600080878761025982826105c3565b600160a060020a03808b1660009081526005602090815260408083205481517f50d25bcd00000000000000000000000000000000000000000000000000000000815291519416936350d25bcd93600480840194938390030190829087803b1580156102c357600080fd5b505af11580156102d7573d6000803e3d6000fd5b505050506040513d60208110156102ed57600080fd5b5051600160a060020a03808b1660009081526005602090815260408083205481517f50d25bcd0000000000000000000000000000000000000000000000000000000081529151959b50909316936350d25bcd93600480820194918390030190829087803b15801561035d57600080fd5b505af1158015610371573d6000803e3d6000fd5b505050506040513d602081101561038757600080fd5b5051600160a060020a03808c1660009081526002602052604080822054928d16825290205491965060ff9081169550169250828411156103e0576103d98560ff85870316600a0a63ffffffff61066916565b9450610409565b8260ff168460ff161015610409576104068660ff86860316600a0a63ffffffff61066916565b95505b5093989297509195505050505050565b600080600080600061042b8787610244565b915091508181610439610457565b94509450945050509250925092565b600354600160a060020a031681565b6000806000600360009054906101000a9004600160a060020a0316600160a060020a0316638205bf6a6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156104c857600080fd5b505af11580156104dc573d6000803e3d6000fd5b505050506040513d60208110156104f257600080fd5b505160048054604080517f8205bf6a0000000000000000000000000000000000000000000000000000000081529051939550600160a060020a0390911692638205bf6a928281019260209291908290030181600087803b15801561055557600080fd5b505af1158015610569573d6000803e3d6000fd5b505050506040513d602081101561057f57600080fd5b505190508082116105905780610592565b815b9250505090565b600560205260009081526040902054600160a060020a031681565b600454600160a060020a031681565b6105cd82826106ed565b600160a060020a03828116600090815260056020526040902054161580159061060f5750600160a060020a038181166000908152600560205260409020541615155b1515610665576040805160e560020a62461bcd02815260206004820152601560248201527f4552525f554e535550504f525445445f544f4b454e0000000000000000000000604482015290519081900360640190fd5b5050565b60008083151561067c57600091506106e6565b5082820282848281151561068c57fe5b04146106e2576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b8091505b5092915050565b6106f682610763565b6106ff81610763565b600160a060020a038281169082161415610665576040805160e560020a62461bcd02815260206004820152601060248201527f4552525f53414d455f4144445245535300000000000000000000000000000000604482015290519081900360640190fd5b600160a060020a03811615156107c3576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b505600a165627a7a72305820cbe01ca5d8106253df6f9a272819eaf7073655d80bfe9974cf71d48b1af26f530029", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH1 0x80 DUP1 PUSH2 0xB40 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 SWAP1 DUP2 MSTORE DUP2 MLOAD PUSH1 0x20 DUP4 ADD MLOAD SWAP2 DUP4 ADD MLOAD PUSH1 0x60 SWAP1 SWAP4 ADD MLOAD SWAP1 SWAP3 SWAP1 DUP4 DUP4 PUSH2 0x4C DUP3 DUP3 PUSH5 0x100000000 PUSH2 0x168 DUP2 MUL DIV JUMP JUMPDEST DUP4 DUP4 PUSH2 0x61 DUP3 DUP3 PUSH5 0x100000000 PUSH2 0x168 DUP2 MUL DIV JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP12 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT SWAP3 DUP4 AND OR SWAP1 SWAP3 SSTORE PUSH1 0x1 DUP1 SLOAD SWAP3 DUP11 AND SWAP3 SWAP1 SWAP2 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0xA3 DUP9 PUSH5 0x100000000 PUSH2 0x20B DUP2 MUL DIV JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP10 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0xFF SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0xDF DUP8 PUSH5 0x100000000 PUSH2 0x20B DUP2 MUL DIV JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP8 DUP9 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH1 0xFF SWAP7 SWAP1 SWAP7 AND PUSH1 0xFF NOT SWAP1 SWAP7 AND SWAP6 SWAP1 SWAP6 OR SWAP1 SWAP5 SSTORE PUSH1 0x3 DUP1 SLOAD SWAP11 DUP13 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT SWAP12 DUP13 AND DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x4 DUP1 SLOAD SWAP11 DUP14 AND SWAP11 DUP13 AND DUP12 OR SWAP1 SSTORE SWAP12 SWAP1 SWAP11 AND DUP2 MSTORE PUSH1 0x5 SWAP1 SWAP10 MSTORE DUP2 DUP10 KECCAK256 DUP1 SLOAD DUP10 AND SWAP1 SWAP11 OR SWAP1 SWAP10 SSTORE SWAP8 DUP8 MSTORE POP POP POP SWAP4 SWAP1 SWAP3 KECCAK256 DUP1 SLOAD SWAP1 SWAP2 AND SWAP1 SWAP2 OR SWAP1 SSTORE POP PUSH2 0x33F JUMP JUMPDEST PUSH2 0x17A DUP3 PUSH5 0x100000000 PUSH2 0x2C5 DUP2 MUL DIV JUMP JUMPDEST PUSH2 0x18C DUP2 PUSH5 0x100000000 PUSH2 0x2C5 DUP2 MUL DIV JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP1 DUP3 AND EQ ISZERO PUSH2 0x207 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F4144445245535300000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 AND PUSH20 0xEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE EQ ISZERO PUSH2 0x23A JUMPI POP PUSH1 0x12 PUSH2 0x2C0 JUMP JUMPDEST DUP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x313CE567 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH29 0x100000000000000000000000000000000000000000000000000000000 MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x291 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2A5 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2BB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0x33C JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x7F2 DUP1 PUSH2 0x34E PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x98 JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0xFC63D10 DUP2 EQ PUSH2 0x9D JUMPI DUP1 PUSH4 0x5F64B55B EQ PUSH2 0xCE JUMPI DUP1 PUSH4 0x8EE573AC EQ PUSH2 0xE3 JUMPI DUP1 PUSH4 0xAE818004 EQ PUSH2 0x11A JUMPI DUP1 PUSH4 0xB1772D7A EQ PUSH2 0x15A JUMPI DUP1 PUSH4 0xB9E1715B EQ PUSH2 0x19F JUMPI DUP1 PUSH4 0xC8F33C91 EQ PUSH2 0x1B4 JUMPI DUP1 PUSH4 0xCBD962D1 EQ PUSH2 0x1DB JUMPI DUP1 PUSH4 0xF997FDA7 EQ PUSH2 0x1FC JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB2 PUSH2 0x211 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xDA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB2 PUSH2 0x220 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xEF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x104 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x22F JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x126 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x141 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH2 0x244 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x166 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x181 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH2 0x419 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP4 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP3 SWAP1 SWAP3 MSTORE DUP3 DUP3 ADD MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1AB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB2 PUSH2 0x448 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1C0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1C9 PUSH2 0x457 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1E7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x599 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x208 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB2 PUSH2 0x5B4 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 DUP8 DUP8 PUSH2 0x259 DUP3 DUP3 PUSH2 0x5C3 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD DUP2 MLOAD PUSH32 0x50D25BCD00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP2 MLOAD SWAP5 AND SWAP4 PUSH4 0x50D25BCD SWAP4 PUSH1 0x4 DUP1 DUP5 ADD SWAP5 SWAP4 DUP4 SWAP1 SUB ADD SWAP1 DUP3 SWAP1 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2C3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2D7 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2ED JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD DUP2 MLOAD PUSH32 0x50D25BCD00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP2 MLOAD SWAP6 SWAP12 POP SWAP1 SWAP4 AND SWAP4 PUSH4 0x50D25BCD SWAP4 PUSH1 0x4 DUP1 DUP3 ADD SWAP5 SWAP2 DUP4 SWAP1 SUB ADD SWAP1 DUP3 SWAP1 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x35D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x371 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x387 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP13 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SLOAD SWAP3 DUP14 AND DUP3 MSTORE SWAP1 KECCAK256 SLOAD SWAP2 SWAP7 POP PUSH1 0xFF SWAP1 DUP2 AND SWAP6 POP AND SWAP3 POP DUP3 DUP5 GT ISZERO PUSH2 0x3E0 JUMPI PUSH2 0x3D9 DUP6 PUSH1 0xFF DUP6 DUP8 SUB AND PUSH1 0xA EXP PUSH4 0xFFFFFFFF PUSH2 0x669 AND JUMP JUMPDEST SWAP5 POP PUSH2 0x409 JUMP JUMPDEST DUP3 PUSH1 0xFF AND DUP5 PUSH1 0xFF AND LT ISZERO PUSH2 0x409 JUMPI PUSH2 0x406 DUP7 PUSH1 0xFF DUP7 DUP7 SUB AND PUSH1 0xA EXP PUSH4 0xFFFFFFFF PUSH2 0x669 AND JUMP JUMPDEST SWAP6 POP JUMPDEST POP SWAP4 SWAP9 SWAP3 SWAP8 POP SWAP2 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x42B DUP8 DUP8 PUSH2 0x244 JUMP JUMPDEST SWAP2 POP SWAP2 POP DUP2 DUP2 PUSH2 0x439 PUSH2 0x457 JUMP JUMPDEST SWAP5 POP SWAP5 POP SWAP5 POP POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x3 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x8205BF6A PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH29 0x100000000000000000000000000000000000000000000000000000000 MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x4C8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x4DC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x4F2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x4 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x8205BF6A00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD SWAP4 SWAP6 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP2 AND SWAP3 PUSH4 0x8205BF6A SWAP3 DUP3 DUP2 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x555 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x569 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x57F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 POP DUP1 DUP3 GT PUSH2 0x590 JUMPI DUP1 PUSH2 0x592 JUMP JUMPDEST DUP2 JUMPDEST SWAP3 POP POP POP SWAP1 JUMP JUMPDEST PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH2 0x5CD DUP3 DUP3 PUSH2 0x6ED JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD AND ISZERO DUP1 ISZERO SWAP1 PUSH2 0x60F JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD AND ISZERO ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x665 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F554E535550504F525445445F544F4B454E0000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 ISZERO ISZERO PUSH2 0x67C JUMPI PUSH1 0x0 SWAP2 POP PUSH2 0x6E6 JUMP JUMPDEST POP DUP3 DUP3 MUL DUP3 DUP5 DUP3 DUP2 ISZERO ISZERO PUSH2 0x68C JUMPI INVALID JUMPDEST DIV EQ PUSH2 0x6E2 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP1 SWAP2 POP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x6F6 DUP3 PUSH2 0x763 JUMP JUMPDEST PUSH2 0x6FF DUP2 PUSH2 0x763 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP1 DUP3 AND EQ ISZERO PUSH2 0x665 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F4144445245535300000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0x7C3 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP JUMP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 0xcb 0xe0 SHR 0xa5 0xd8 LT PUSH3 0x53DF6F SWAP11 0x27 0x28 NOT 0xea 0xf7 SMOD CALLDATASIZE SSTORE 0xd8 SIGNEXTEND INVALID SWAP10 PUSH21 0xCF71D48B1AF26F5300290000000000000000000000 ", + "sourceMap": "450:5492:67:-;;;1466:523;8:9:-1;5:2;;;30:1;27;20:12;5:2;1466:523:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2121:43;1466:523;;2121:21;;;;:43;:::i;:::-;1670:13;1685;2121:43;1670:13;1685;2121:21;;;;:43;:::i;:::-;1704:6;:16;;-1:-1:-1;;;;;1704:16:67;;;-1:-1:-1;;;;;;1704:16:67;;;;;;;;1724;;;;;;;;;;;;;;;1769:17;1713:7;1769:8;;;;:17;:::i;:::-;-1:-1:-1;;;;;1744:22:67;;;;;;:13;:22;;;;;:42;;-1:-1:-1;;1744:42:67;;;;;;;;;;;;1815:17;1824:7;1815:8;;;;:17;:::i;:::-;-1:-1:-1;;;;;1790:22:67;;;;;;;:13;:22;;;;;;;;:42;;;;;;;-1:-1:-1;;1790:42:67;;;;;;;;;;1837:12;:28;;;;;-1:-1:-1;;;;;;1837:28:67;;;;;;;;1869:12;:28;;;;;;;;;;;;1901:24;;;;;;:15;:24;;;;;;:40;;;;;;;;;;1945:24;;;-1:-1:-1;;;1945:24:67;;;;:40;;;;;;;;;;-1:-1:-1;450:5492:67;;2219:198;2306:24;2320:9;2306:13;;;;:24;:::i;:::-;2334;2348:9;2334:13;;;;:24;:::i;:::-;-1:-1:-1;;;;;2370:22:67;;;;;;;;2362:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2219:198;;:::o;5781:159::-;5841:5;-1:-1:-1;;;;;5856:21:67;;566:42;5856:21;5852:56;;;-1:-1:-1;649:2:67;5884:19;;5852:56;5919:6;-1:-1:-1;;;;;5919:15:67;;:17;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5919:17:67;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5919:17:67;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5919:17:67;;-1:-1:-1;5781:159:67;;;;:::o;553:117:72:-;-1:-1:-1;;;;;620:22:72;;;;612:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;553:117;:::o;450:5492:67:-;;;;;;;" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "6080604052600436106100985763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630fc63d10811461009d5780635f64b55b146100ce5780638ee573ac146100e3578063ae8180041461011a578063b1772d7a1461015a578063b9e1715b1461019f578063c8f33c91146101b4578063cbd962d1146101db578063f997fda7146101fc575b600080fd5b3480156100a957600080fd5b506100b2610211565b60408051600160a060020a039092168252519081900360200190f35b3480156100da57600080fd5b506100b2610220565b3480156100ef57600080fd5b50610104600160a060020a036004351661022f565b6040805160ff9092168252519081900360200190f35b34801561012657600080fd5b50610141600160a060020a0360043581169060243516610244565b6040805192835260208301919091528051918290030190f35b34801561016657600080fd5b50610181600160a060020a0360043581169060243516610419565b60408051938452602084019290925282820152519081900360600190f35b3480156101ab57600080fd5b506100b2610448565b3480156101c057600080fd5b506101c9610457565b60408051918252519081900360200190f35b3480156101e757600080fd5b506100b2600160a060020a0360043516610599565b34801561020857600080fd5b506100b26105b4565b600054600160a060020a031681565b600154600160a060020a031681565b60026020526000908152604090205460ff1681565b600080600080600080878761025982826105c3565b600160a060020a03808b1660009081526005602090815260408083205481517f50d25bcd00000000000000000000000000000000000000000000000000000000815291519416936350d25bcd93600480840194938390030190829087803b1580156102c357600080fd5b505af11580156102d7573d6000803e3d6000fd5b505050506040513d60208110156102ed57600080fd5b5051600160a060020a03808b1660009081526005602090815260408083205481517f50d25bcd0000000000000000000000000000000000000000000000000000000081529151959b50909316936350d25bcd93600480820194918390030190829087803b15801561035d57600080fd5b505af1158015610371573d6000803e3d6000fd5b505050506040513d602081101561038757600080fd5b5051600160a060020a03808c1660009081526002602052604080822054928d16825290205491965060ff9081169550169250828411156103e0576103d98560ff85870316600a0a63ffffffff61066916565b9450610409565b8260ff168460ff161015610409576104068660ff86860316600a0a63ffffffff61066916565b95505b5093989297509195505050505050565b600080600080600061042b8787610244565b915091508181610439610457565b94509450945050509250925092565b600354600160a060020a031681565b6000806000600360009054906101000a9004600160a060020a0316600160a060020a0316638205bf6a6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156104c857600080fd5b505af11580156104dc573d6000803e3d6000fd5b505050506040513d60208110156104f257600080fd5b505160048054604080517f8205bf6a0000000000000000000000000000000000000000000000000000000081529051939550600160a060020a0390911692638205bf6a928281019260209291908290030181600087803b15801561055557600080fd5b505af1158015610569573d6000803e3d6000fd5b505050506040513d602081101561057f57600080fd5b505190508082116105905780610592565b815b9250505090565b600560205260009081526040902054600160a060020a031681565b600454600160a060020a031681565b6105cd82826106ed565b600160a060020a03828116600090815260056020526040902054161580159061060f5750600160a060020a038181166000908152600560205260409020541615155b1515610665576040805160e560020a62461bcd02815260206004820152601560248201527f4552525f554e535550504f525445445f544f4b454e0000000000000000000000604482015290519081900360640190fd5b5050565b60008083151561067c57600091506106e6565b5082820282848281151561068c57fe5b04146106e2576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b8091505b5092915050565b6106f682610763565b6106ff81610763565b600160a060020a038281169082161415610665576040805160e560020a62461bcd02815260206004820152601060248201527f4552525f53414d455f4144445245535300000000000000000000000000000000604482015290519081900360640190fd5b600160a060020a03811615156107c3576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b505600a165627a7a72305820cbe01ca5d8106253df6f9a272819eaf7073655d80bfe9974cf71d48b1af26f530029", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x98 JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0xFC63D10 DUP2 EQ PUSH2 0x9D JUMPI DUP1 PUSH4 0x5F64B55B EQ PUSH2 0xCE JUMPI DUP1 PUSH4 0x8EE573AC EQ PUSH2 0xE3 JUMPI DUP1 PUSH4 0xAE818004 EQ PUSH2 0x11A JUMPI DUP1 PUSH4 0xB1772D7A EQ PUSH2 0x15A JUMPI DUP1 PUSH4 0xB9E1715B EQ PUSH2 0x19F JUMPI DUP1 PUSH4 0xC8F33C91 EQ PUSH2 0x1B4 JUMPI DUP1 PUSH4 0xCBD962D1 EQ PUSH2 0x1DB JUMPI DUP1 PUSH4 0xF997FDA7 EQ PUSH2 0x1FC JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB2 PUSH2 0x211 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xDA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB2 PUSH2 0x220 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xEF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x104 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x22F JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x126 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x141 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH2 0x244 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x166 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x181 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH2 0x419 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP4 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP3 SWAP1 SWAP3 MSTORE DUP3 DUP3 ADD MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1AB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB2 PUSH2 0x448 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1C0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1C9 PUSH2 0x457 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1E7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x599 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x208 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB2 PUSH2 0x5B4 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 DUP8 DUP8 PUSH2 0x259 DUP3 DUP3 PUSH2 0x5C3 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD DUP2 MLOAD PUSH32 0x50D25BCD00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP2 MLOAD SWAP5 AND SWAP4 PUSH4 0x50D25BCD SWAP4 PUSH1 0x4 DUP1 DUP5 ADD SWAP5 SWAP4 DUP4 SWAP1 SUB ADD SWAP1 DUP3 SWAP1 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2C3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2D7 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2ED JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD DUP2 MLOAD PUSH32 0x50D25BCD00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP2 MLOAD SWAP6 SWAP12 POP SWAP1 SWAP4 AND SWAP4 PUSH4 0x50D25BCD SWAP4 PUSH1 0x4 DUP1 DUP3 ADD SWAP5 SWAP2 DUP4 SWAP1 SUB ADD SWAP1 DUP3 SWAP1 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x35D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x371 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x387 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP13 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SLOAD SWAP3 DUP14 AND DUP3 MSTORE SWAP1 KECCAK256 SLOAD SWAP2 SWAP7 POP PUSH1 0xFF SWAP1 DUP2 AND SWAP6 POP AND SWAP3 POP DUP3 DUP5 GT ISZERO PUSH2 0x3E0 JUMPI PUSH2 0x3D9 DUP6 PUSH1 0xFF DUP6 DUP8 SUB AND PUSH1 0xA EXP PUSH4 0xFFFFFFFF PUSH2 0x669 AND JUMP JUMPDEST SWAP5 POP PUSH2 0x409 JUMP JUMPDEST DUP3 PUSH1 0xFF AND DUP5 PUSH1 0xFF AND LT ISZERO PUSH2 0x409 JUMPI PUSH2 0x406 DUP7 PUSH1 0xFF DUP7 DUP7 SUB AND PUSH1 0xA EXP PUSH4 0xFFFFFFFF PUSH2 0x669 AND JUMP JUMPDEST SWAP6 POP JUMPDEST POP SWAP4 SWAP9 SWAP3 SWAP8 POP SWAP2 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x42B DUP8 DUP8 PUSH2 0x244 JUMP JUMPDEST SWAP2 POP SWAP2 POP DUP2 DUP2 PUSH2 0x439 PUSH2 0x457 JUMP JUMPDEST SWAP5 POP SWAP5 POP SWAP5 POP POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x3 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x8205BF6A PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH29 0x100000000000000000000000000000000000000000000000000000000 MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x4C8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x4DC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x4F2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x4 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x8205BF6A00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD SWAP4 SWAP6 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP2 AND SWAP3 PUSH4 0x8205BF6A SWAP3 DUP3 DUP2 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x555 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x569 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x57F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 POP DUP1 DUP3 GT PUSH2 0x590 JUMPI DUP1 PUSH2 0x592 JUMP JUMPDEST DUP2 JUMPDEST SWAP3 POP POP POP SWAP1 JUMP JUMPDEST PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH2 0x5CD DUP3 DUP3 PUSH2 0x6ED JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD AND ISZERO DUP1 ISZERO SWAP1 PUSH2 0x60F JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD AND ISZERO ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x665 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F554E535550504F525445445F544F4B454E0000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 ISZERO ISZERO PUSH2 0x67C JUMPI PUSH1 0x0 SWAP2 POP PUSH2 0x6E6 JUMP JUMPDEST POP DUP3 DUP3 MUL DUP3 DUP5 DUP3 DUP2 ISZERO ISZERO PUSH2 0x68C JUMPI INVALID JUMPDEST DIV EQ PUSH2 0x6E2 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP1 SWAP2 POP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x6F6 DUP3 PUSH2 0x763 JUMP JUMPDEST PUSH2 0x6FF DUP2 PUSH2 0x763 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP1 DUP3 AND EQ ISZERO PUSH2 0x665 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F4144445245535300000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0x7C3 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP JUMP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 0xcb 0xe0 SHR 0xa5 0xd8 LT PUSH3 0x53DF6F SWAP11 0x27 0x28 NOT 0xea 0xf7 SMOD CALLDATASIZE SSTORE 0xd8 SIGNEXTEND INVALID SWAP10 PUSH21 0xCF71D48B1AF26F5300290000000000000000000000 ", + "sourceMap": "450:5492:67:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;655:25;;8:9:-1;5:2;;;30:1;27;20:12;5:2;655:25:67;;;;;;;;-1:-1:-1;;;;;655:25:67;;;;;;;;;;;;;;714;;8:9:-1;5:2;;;30:1;27;20:12;5:2;714:25:67;;;;773:46;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;773:46:67;;;-1:-1:-1;;;;;773:46:67;;;;;;;;;;;;;;;;;;;;;;3349:1394;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3349:1394:67;-1:-1:-1;;;;;3349:1394:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5451:276;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;5451:276:67;-1:-1:-1;;;;;5451:276:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;850:40;;8:9:-1;5:2;;;30:1;27;20:12;5:2;850:40:67;;;;4838:281;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4838:281:67;;;;;;;;;;;;;;;;;;;;1004:63;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1004:63:67;;;-1:-1:-1;;;;;1004:63:67;;;927:40;;8:9:-1;5:2;;;30:1;27;20:12;5:2;927:40:67;;;;655:25;;;-1:-1:-1;;;;;655:25:67;;:::o;714:::-;;;-1:-1:-1;;;;;714:25:67;;:::o;773:46::-;;;;;;;;;;;;;;;:::o;3349:1394::-;3466:7;3475;3488:18;3561;3634:20;3683;3439:7;3448;2556:34;2573:7;2582;2556:16;:34::i;:::-;-1:-1:-1;;;;;3517:24:67;;;;;;;:15;:24;;;;;;;;;:39;;;;;;;:24;;;:37;;:39;;;;;:24;:39;;;;;;;:24;:39;;;5:2:-1;;;;30:1;27;20:12;5:2;3517:39:67;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3517:39:67;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3517:39:67;-1:-1:-1;;;;;3590:24:67;;;;;;;:15;3517:39;3590:24;;;;;;;;:39;;;;;;;3517;;-1:-1:-1;3590:24:67;;;;:37;;:39;;;;;;;;;;;;;:24;:39;;;5:2:-1;;;;30:1;27;20:12;5:2;3590:39:67;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3590:39:67;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3590:39:67;-1:-1:-1;;;;;3657:22:67;;;;;;;-1:-1:-1;3590:39:67;3657:22;;;;;;3706;;;;;;;;3590:39;;-1:-1:-1;3657:22:67;;;;;-1:-1:-1;3706:22:67;;-1:-1:-1;4458:31:67;;;4454:250;;;4509:62;:10;4524:46;4538:31;;;4524:46;4532:2;4524:46;4509:62;:14;:62;:::i;:::-;4496:75;;4454:250;;;4603:14;4586:31;;:14;:31;;;4582:122;;;4637:62;:10;4652:46;4666:31;;;4652:46;4660:2;4652:46;4637:62;:14;:62;:::i;:::-;4624:75;;4582:122;-1:-1:-1;4716:10:67;;4728;;-1:-1:-1;3349:1394:67;;-1:-1:-1;;;;;;3349:1394:67:o;5451:276::-;5557:7;5569;5581;5599:17;5618:19;5641:28;5652:7;5661;5641:10;:28::i;:::-;5598:71;;;;5682:9;5693:11;5706:16;:14;:16::i;:::-;5674:49;;;;;;5451:276;;;;;;;:::o;850:40::-;;;-1:-1:-1;;;;;850:40:67;;:::o;4838:281::-;4969:12;;:30;;;;;;;;4885:7;;;;;;-1:-1:-1;;;;;4969:12:67;;;;:28;;:30;;;;;;;;;;;;;;;4885:7;4969:12;:30;;;5:2:-1;;;;30:1;27;20:12;5:2;4969:30:67;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4969:30:67;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4969:30:67;5024:12;;;:30;;;;;;;;4969;;-1:-1:-1;;;;;;5024:12:67;;;;:28;;:30;;;;4969;;5024;;;;;;;:12;;:30;;;5:2:-1;;;;30:1;27;20:12;5:2;5024:30:67;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5024:30:67;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5024:30:67;;-1:-1:-1;5066:23:67;;;:49;;5105:10;5066:49;;;5092:10;5066:49;5059:56;;4838:281;;;:::o;1004:63::-;;;;;;;;;;;;-1:-1:-1;;;;;1004:63:67;;:::o;927:40::-;;;-1:-1:-1;;;;;927:40:67;;:::o;2645:247::-;2731:39;2753:7;2762;2731:21;:39::i;:::-;-1:-1:-1;;;;;2782:24:67;;;2818:1;2782:24;;;:15;:24;;;;;;;:38;;;;:80;;-1:-1:-1;;;;;;2824:24:67;;;2860:1;2824:24;;;:15;:24;;;;;;;:38;;2782:80;2774:114;;;;;;;-1:-1:-1;;;;;2774:114:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;2645:247;;:::o;924:197:69:-;984:7;;1023;;1019:21;;;1039:1;1032:8;;;;1019:21;-1:-1:-1;1057:7:69;;;1062:2;1057;:7;1076:6;;;;;;;;:12;1068:37;;;;;-1:-1:-1;;;;;1068:37:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;1116:1;1109:8;;924:197;;;;;;:::o;2219:198:67:-;2306:24;2320:9;2306:13;:24::i;:::-;2334;2348:9;2334:13;:24::i;:::-;-1:-1:-1;;;;;2370:22:67;;;;;;;;2362:51;;;;;-1:-1:-1;;;;;2362:51:67;;;;;;;;;;;;;;;;;;;;;;;;;;;553:117:72;-1:-1:-1;;;;;620:22:72;;;;612:54;;;;;-1:-1:-1;;;;;612:54:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;553:117;:::o" + }, + "methodIdentifiers": { + "lastUpdateTime()": "c8f33c91", + "latestRate(address,address)": "ae818004", + "latestRateAndUpdateTime(address,address)": "b1772d7a", + "tokenA()": "0fc63d10", + "tokenAOracle()": "b9e1715b", + "tokenB()": "5f64b55b", + "tokenBOracle()": "f997fda7", + "tokenDecimals(address)": "8ee573ac", + "tokensToOracles(address)": "cbd962d1" + } + }, + "userdoc": { + "methods": {} + } + } + }, + "solidity/contracts/utility/ReentrancyGuard.sol": { + "ReentrancyGuard": { + "abi": [ + { + "inputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + } + ], + "devdoc": { + "methods": {} + }, + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": {} + }, + "userdoc": { + "methods": {} + } + } + }, + "solidity/contracts/utility/SafeMath.sol": { + "SafeMath": { + "abi": [], + "devdoc": { + "methods": {} + }, + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "604c602c600b82828239805160001a60731460008114601c57601e565bfe5b5030600052607381538281f30073000000000000000000000000000000000000000030146080604052600080fd00a165627a7a72305820513d6be17ce9fda0c1394082456cdb0f5d36103b4b20ca72ec0dcdfe1a03e0260029", + "opcodes": "PUSH1 0x4C PUSH1 0x2C PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x0 DUP2 EQ PUSH1 0x1C JUMPI PUSH1 0x1E JUMP JUMPDEST INVALID JUMPDEST POP ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN STOP PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 MLOAD RETURNDATASIZE PUSH12 0xE17CE9FDA0C1394082456CDB 0xf 0x5d CALLDATASIZE LT EXTCODESIZE 0x4b KECCAK256 0xca PUSH19 0xEC0DCDFE1A03E0260029000000000000000000 ", + "sourceMap": "110:1348:69:-;;132:2:-1;166:7;155:9;146:7;137:37;252:7;246:14;243:1;238:23;232:4;229:33;270:1;265:20;;;;222:63;;265:20;274:9;222:63;;298:9;295:1;288:20;328:4;319:7;311:22;352:7;343;336:24" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "73000000000000000000000000000000000000000030146080604052600080fd00a165627a7a72305820513d6be17ce9fda0c1394082456cdb0f5d36103b4b20ca72ec0dcdfe1a03e0260029", + "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 MLOAD RETURNDATASIZE PUSH12 0xE17CE9FDA0C1394082456CDB 0xf 0x5d CALLDATASIZE LT EXTCODESIZE 0x4b KECCAK256 0xca PUSH19 0xEC0DCDFE1A03E0260029000000000000000000 ", + "sourceMap": "110:1348:69:-;;;;;;;;" + }, + "methodIdentifiers": {} + }, + "userdoc": { + "methods": {} + } + } + }, + "solidity/contracts/utility/TokenHandler.sol": { + "TokenHandler": { + "abi": [], + "devdoc": { + "methods": {} + }, + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "6080604052348015600f57600080fd5b50603580601d6000396000f3006080604052600080fd00a165627a7a7230582082f148d7bc6acce6729510281d97ccbf0c0bb988cd546017d8510576d56bc2520029", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x35 DUP1 PUSH1 0x1D PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 DUP3 CALL 0x48 0xd7 0xbc PUSH11 0xCCE6729510281D97CCBF0C SIGNEXTEND 0xb9 DUP9 0xcd SLOAD PUSH1 0x17 0xd8 MLOAD SDIV PUSH23 0xD56BC25200290000000000000000000000000000000000 ", + "sourceMap": "71:2743:70:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;71:2743:70;;;;;;;" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "6080604052600080fd00a165627a7a7230582082f148d7bc6acce6729510281d97ccbf0c0bb988cd546017d8510576d56bc2520029", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 DUP3 CALL 0x48 0xd7 0xbc PUSH11 0xCCE6729510281D97CCBF0C SIGNEXTEND 0xb9 DUP9 0xcd SLOAD PUSH1 0x17 0xd8 MLOAD SDIV PUSH23 0xD56BC25200290000000000000000000000000000000000 ", + "sourceMap": "71:2743:70:-;;;;;" + }, + "methodIdentifiers": {} + }, + "userdoc": { + "methods": {} + } + } + }, + "solidity/contracts/utility/TokenHolder.sol": { + "TokenHolder": { + "abi": [ + { + "constant": false, + "inputs": [ + { + "name": "_token", + "type": "address" + }, + { + "name": "_to", + "type": "address" + }, + { + "name": "_amount", + "type": "uint256" + } + ], + "name": "withdrawTokens", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "acceptOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "owner", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "newOwner", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "_prevOwner", + "type": "address" + }, + { + "indexed": true, + "name": "_newOwner", + "type": "address" + } + ], + "name": "OwnerUpdate", + "type": "event" + } + ], + "devdoc": { + "methods": { + "acceptOwnership()": { + "details": "used by a new owner to accept an ownership transfer" + }, + "transferOwnership(address)": { + "details": "allows transferring the contract ownership the new owner still needs to accept the transfer can only be called by the contract owner", + "params": { + "_newOwner": "new contract owner" + } + }, + "withdrawTokens(address,address,uint256)": { + "details": "withdraws tokens held by the contract and sends them to an account can only be called by the owner", + "params": { + "_amount": "amount to withdraw", + "_to": "account to receive the new amount", + "_token": "ERC20 token contract address" + } + } + } + }, + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "608060405260008054600160a060020a0319163317905561059b806100256000396000f30060806040526004361061006c5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416635e35359e811461007157806379ba50971461009d5780638da5cb5b146100b2578063d4ee1d90146100e3578063f2fde38b146100f8575b600080fd5b34801561007d57600080fd5b5061009b600160a060020a0360043581169060243516604435610119565b005b3480156100a957600080fd5b5061009b610152565b3480156100be57600080fd5b506100c7610225565b60408051600160a060020a039092168252519081900360200190f35b3480156100ef57600080fd5b506100c7610234565b34801561010457600080fd5b5061009b600160a060020a0360043516610243565b6101216102e0565b8261012b81610344565b8261013581610344565b8361013f816103a7565b61014a868686610408565b505050505050565b600154600160a060020a031633146101b4576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b60015460008054604051600160a060020a0393841693909116917f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91a3600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b600054600160a060020a031681565b600154600160a060020a031681565b61024b6102e0565b600054600160a060020a03828116911614156102b1576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f53414d455f4f574e4552000000000000000000000000000000000000604482015290519081900360640190fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600054600160a060020a03163314610342576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b565b600160a060020a03811615156103a4576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b50565b600160a060020a0381163014156103a4576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f414444524553535f49535f53454c4600000000000000000000000000604482015290519081900360640190fd5b604080517f7472616e7366657228616464726573732c75696e74323536290000000000000081528151908190036019018120600160a060020a038516602483015260448083018590528351808403909101815260649092019092526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909316929092179091526104bd9084906104c2565b505050565b6104ca610550565b602060405190810160405280600181525090506020818351602085016000875af18015156104f757600080fd5b50805115156104bd576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f5452414e534645525f4641494c454400000000000000000000000000604482015290519081900360640190fd5b60206040519081016040528060019060208202803883395091929150505600a165627a7a72305820a0d36593d4e84a593c8e4f7455ca835ffa0dcbc557f96ffd38452ccd890c23bb0029", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND CALLER OR SWAP1 SSTORE PUSH2 0x59B DUP1 PUSH2 0x25 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x6C JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x5E35359E DUP2 EQ PUSH2 0x71 JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x9D JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0xB2 JUMPI DUP1 PUSH4 0xD4EE1D90 EQ PUSH2 0xE3 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0xF8 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x9B PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x119 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x9B PUSH2 0x152 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xBE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xC7 PUSH2 0x225 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xEF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xC7 PUSH2 0x234 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x104 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x9B PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x243 JUMP JUMPDEST PUSH2 0x121 PUSH2 0x2E0 JUMP JUMPDEST DUP3 PUSH2 0x12B DUP2 PUSH2 0x344 JUMP JUMPDEST DUP3 PUSH2 0x135 DUP2 PUSH2 0x344 JUMP JUMPDEST DUP4 PUSH2 0x13F DUP2 PUSH2 0x3A7 JUMP JUMPDEST PUSH2 0x14A DUP7 DUP7 DUP7 PUSH2 0x408 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x1B4 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND SWAP4 SWAP1 SWAP2 AND SWAP2 PUSH32 0x343765429AEA5A34B3FF6A3785A98A5ABB2597ACA87BFBB58632C173D585373A SWAP2 LOG3 PUSH1 0x1 DUP1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND OR SWAP1 SWAP2 SSTORE AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH2 0x24B PUSH2 0x2E0 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x2B1 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F4F574E4552000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x342 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0x3A4 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ADDRESS EQ ISZERO PUSH2 0x3A4 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F414444524553535F49535F53454C4600000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x7472616E7366657228616464726573732C75696E743235362900000000000000 DUP2 MSTORE DUP2 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x19 ADD DUP2 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x64 SWAP1 SWAP3 ADD SWAP1 SWAP3 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE PUSH2 0x4BD SWAP1 DUP5 SWAP1 PUSH2 0x4C2 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x4CA PUSH2 0x550 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE POP SWAP1 POP PUSH1 0x20 DUP2 DUP4 MLOAD PUSH1 0x20 DUP6 ADD PUSH1 0x0 DUP8 GAS CALL DUP1 ISZERO ISZERO PUSH2 0x4F7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD ISZERO ISZERO PUSH2 0x4BD JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5452414E534645525F4641494C454400000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 SWAP1 PUSH1 0x20 DUP3 MUL DUP1 CODESIZE DUP4 CODECOPY POP SWAP2 SWAP3 SWAP2 POP POP JUMP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 LOG0 0xd3 PUSH6 0x93D4E84A593C DUP15 0x4f PUSH21 0x55CA835FFA0DCBC557F96FFD38452CCD890C23BB00 0x29 ", + "sourceMap": "741:532:71:-;;;488:5:66;:18;;-1:-1:-1;;;;;;488:18:66;496:10;488:18;;;741:532:71;;;;;;" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "60806040526004361061006c5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416635e35359e811461007157806379ba50971461009d5780638da5cb5b146100b2578063d4ee1d90146100e3578063f2fde38b146100f8575b600080fd5b34801561007d57600080fd5b5061009b600160a060020a0360043581169060243516604435610119565b005b3480156100a957600080fd5b5061009b610152565b3480156100be57600080fd5b506100c7610225565b60408051600160a060020a039092168252519081900360200190f35b3480156100ef57600080fd5b506100c7610234565b34801561010457600080fd5b5061009b600160a060020a0360043516610243565b6101216102e0565b8261012b81610344565b8261013581610344565b8361013f816103a7565b61014a868686610408565b505050505050565b600154600160a060020a031633146101b4576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b60015460008054604051600160a060020a0393841693909116917f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91a3600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b600054600160a060020a031681565b600154600160a060020a031681565b61024b6102e0565b600054600160a060020a03828116911614156102b1576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f53414d455f4f574e4552000000000000000000000000000000000000604482015290519081900360640190fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600054600160a060020a03163314610342576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b565b600160a060020a03811615156103a4576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b50565b600160a060020a0381163014156103a4576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f414444524553535f49535f53454c4600000000000000000000000000604482015290519081900360640190fd5b604080517f7472616e7366657228616464726573732c75696e74323536290000000000000081528151908190036019018120600160a060020a038516602483015260448083018590528351808403909101815260649092019092526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909316929092179091526104bd9084906104c2565b505050565b6104ca610550565b602060405190810160405280600181525090506020818351602085016000875af18015156104f757600080fd5b50805115156104bd576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f5452414e534645525f4641494c454400000000000000000000000000604482015290519081900360640190fd5b60206040519081016040528060019060208202803883395091929150505600a165627a7a72305820a0d36593d4e84a593c8e4f7455ca835ffa0dcbc557f96ffd38452ccd890c23bb0029", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x6C JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x5E35359E DUP2 EQ PUSH2 0x71 JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x9D JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0xB2 JUMPI DUP1 PUSH4 0xD4EE1D90 EQ PUSH2 0xE3 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0xF8 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x9B PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x119 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x9B PUSH2 0x152 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xBE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xC7 PUSH2 0x225 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xEF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xC7 PUSH2 0x234 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x104 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x9B PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x243 JUMP JUMPDEST PUSH2 0x121 PUSH2 0x2E0 JUMP JUMPDEST DUP3 PUSH2 0x12B DUP2 PUSH2 0x344 JUMP JUMPDEST DUP3 PUSH2 0x135 DUP2 PUSH2 0x344 JUMP JUMPDEST DUP4 PUSH2 0x13F DUP2 PUSH2 0x3A7 JUMP JUMPDEST PUSH2 0x14A DUP7 DUP7 DUP7 PUSH2 0x408 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x1B4 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND SWAP4 SWAP1 SWAP2 AND SWAP2 PUSH32 0x343765429AEA5A34B3FF6A3785A98A5ABB2597ACA87BFBB58632C173D585373A SWAP2 LOG3 PUSH1 0x1 DUP1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND OR SWAP1 SWAP2 SSTORE AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH2 0x24B PUSH2 0x2E0 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x2B1 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F4F574E4552000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x342 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0x3A4 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ADDRESS EQ ISZERO PUSH2 0x3A4 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F414444524553535F49535F53454C4600000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x7472616E7366657228616464726573732C75696E743235362900000000000000 DUP2 MSTORE DUP2 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x19 ADD DUP2 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x64 SWAP1 SWAP3 ADD SWAP1 SWAP3 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE PUSH2 0x4BD SWAP1 DUP5 SWAP1 PUSH2 0x4C2 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x4CA PUSH2 0x550 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE POP SWAP1 POP PUSH1 0x20 DUP2 DUP4 MLOAD PUSH1 0x20 DUP6 ADD PUSH1 0x0 DUP8 GAS CALL DUP1 ISZERO ISZERO PUSH2 0x4F7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD ISZERO ISZERO PUSH2 0x4BD JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5452414E534645525F4641494C454400000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 SWAP1 PUSH1 0x20 DUP3 MUL DUP1 CODESIZE DUP4 CODECOPY POP SWAP2 SWAP3 SWAP2 POP POP JUMP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 LOG0 0xd3 PUSH6 0x93D4E84A593C DUP15 0x4f PUSH21 0x55CA835FFA0DCBC557F96FFD38452CCD890C23BB00 0x29 ", + "sourceMap": "741:532:71:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1077:194;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1077:194:71;-1:-1:-1;;;;;1077:194:71;;;;;;;;;;;;;;1159:176:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1159:176:66;;;;157:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;157:20:66;;;;;;;;-1:-1:-1;;;;;157:20:66;;;;;;;;;;;;;;180:23;;8:9:-1;5:2;;;30:1;27;20:12;5:2;180:23:66;;;;945:140;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;945:140:66;-1:-1:-1;;;;;945:140:66;;;;;1077:194:71;575:12:66;:10;:12::i;:::-;1190:6:71;475:23:72;489:8;475:13;:23::i;:::-;1211:3:71;475:23:72;489:8;475:13;:23::i;:::-;1224:3:71;782:18:72;791:8;782;:18::i;:::-;1233:34:71;1246:6;1254:3;1259:7;1233:12;:34::i;:::-;502:1:72;;591::66;1077:194:71;;;:::o;1159:176:66:-;1219:8;;-1:-1:-1;;;;;1219:8:66;1205:10;:22;1197:52;;;;;-1:-1:-1;;;;;1197:52:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;1277:8;;;1270:5;;1258:28;;-1:-1:-1;;;;;1277:8:66;;;;1270:5;;;;1258:28;;;1298:8;;;;1290:16;;-1:-1:-1;;1290:16:66;;;-1:-1:-1;;;;;1298:8:66;;1290:16;;;;1310:21;;;1159:176::o;157:20::-;;;-1:-1:-1;;;;;157:20:66;;:::o;180:23::-;;;-1:-1:-1;;;;;180:23:66;;:::o;945:140::-;575:12;:10;:12::i;:::-;1033:5;;-1:-1:-1;;;;;1020:18:66;;;1033:5;;1020:18;;1012:45;;;;;-1:-1:-1;;;;;1012:45:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;1061:8;:20;;-1:-1:-1;;1061:20:66;-1:-1:-1;;;;;1061:20:66;;;;;;;;;;945:140::o;642:93::-;704:5;;-1:-1:-1;;;;;704:5:66;690:10;:19;682:49;;;;;-1:-1:-1;;;;;682:49:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;642:93::o;553:117:72:-;-1:-1:-1;;;;;620:22:72;;;;612:54;;;;;-1:-1:-1;;;;;612:54:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;553:117;:::o;855:115::-;-1:-1:-1;;;;;917:25:72;;937:4;917:25;;909:57;;;;;-1:-1:-1;;;;;909:57:72;;;;;;;;;;;;;;;;;;;;;;;;;;;1214:173:70;248:38;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1323:59:70;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;1323:59:70;;;;;;;;25:18:-1;;61:17;;1323:59:70;182:15:-1;1323:59:70;;;;179:29:-1;;;;160:49;;;1307:76:70;;1315:6;;1307:7;:76::i;:::-;1214:173;;;:::o;2255:557::-;2324:21;;:::i;:::-;:36;;;;;;;;;2357:1;2324:36;;;;;2687:2;2661:3;2580:5;2574:12;2495:2;2488:5;2484:14;2465:1;2430:6;2404:3;2394:317;2725:7;2718:15;2715:2;;;2750:1;2747;2740:12;2715:2;-1:-1:-1;2773:6:70;;:11;;2765:43;;;;;-1:-1:-1;;;;;2765:43:70;;;;;;;;;;;;;;;;;;;;;;;;;;;741:532:71;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;-1:-1;741:532:71;;;-1:-1:-1;;741:532:71:o" + }, + "methodIdentifiers": { + "acceptOwnership()": "79ba5097", + "newOwner()": "d4ee1d90", + "owner()": "8da5cb5b", + "transferOwnership(address)": "f2fde38b", + "withdrawTokens(address,address,uint256)": "5e35359e" + } + }, + "userdoc": { + "methods": {} + } + } + }, + "solidity/contracts/utility/Utils.sol": { + "Utils": { + "abi": [], + "devdoc": { + "methods": {} + }, + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "6080604052348015600f57600080fd5b50603580601d6000396000f3006080604052600080fd00a165627a7a723058200976d1ac93d5f2fa6ad54a01fdc41c7f24f585ab0bfff1b62d58b1890a6dda940029", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x35 DUP1 PUSH1 0x1D PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 MULMOD PUSH23 0xD1AC93D5F2FA6AD54A01FDC41C7F24F585AB0BFFF1B62D PC 0xb1 DUP10 EXP PUSH14 0xDA94002900000000000000000000 ", + "sourceMap": "70:902:72:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;70:902:72;;;;;;;" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "6080604052600080fd00a165627a7a723058200976d1ac93d5f2fa6ad54a01fdc41c7f24f585ab0bfff1b62d58b1890a6dda940029", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 MULMOD PUSH23 0xD1AC93D5F2FA6AD54A01FDC41C7F24F585AB0BFFF1B62D PC 0xb1 DUP10 EXP PUSH14 0xDA94002900000000000000000000 ", + "sourceMap": "70:902:72:-;;;;;" + }, + "methodIdentifiers": {} + }, + "userdoc": { + "methods": {} + } + } + }, + "solidity/contracts/utility/Whitelist.sol": { + "Whitelist": { + "abi": [ + { + "constant": false, + "inputs": [ + { + "name": "_addresses", + "type": "address[]" + } + ], + "name": "addAddresses", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_address", + "type": "address" + } + ], + "name": "addAddress", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_address", + "type": "address" + } + ], + "name": "isWhitelisted", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_address", + "type": "address" + } + ], + "name": "removeAddress", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "acceptOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "owner", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_addresses", + "type": "address[]" + } + ], + "name": "removeAddresses", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "newOwner", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "_address", + "type": "address" + } + ], + "name": "AddressAddition", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "_address", + "type": "address" + } + ], + "name": "AddressRemoval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "_prevOwner", + "type": "address" + }, + { + "indexed": true, + "name": "_newOwner", + "type": "address" + } + ], + "name": "OwnerUpdate", + "type": "event" + } + ], + "devdoc": { + "methods": { + "acceptOwnership()": { + "details": "used by a new owner to accept an ownership transfer" + }, + "addAddress(address)": { + "details": "adds a given address to the whitelist", + "params": { + "_address": "address to add" + } + }, + "addAddresses(address[])": { + "details": "adds a list of addresses to the whitelist", + "params": { + "_addresses": "addresses to add" + } + }, + "isWhitelisted(address)": { + "details": "returns true if a given address is whitelisted, false if not", + "params": { + "_address": "address to check" + }, + "return": "true if the address is whitelisted, false if not" + }, + "removeAddress(address)": { + "details": "removes a given address from the whitelist", + "params": { + "_address": "address to remove" + } + }, + "removeAddresses(address[])": { + "details": "removes a list of addresses from the whitelist", + "params": { + "_addresses": "addresses to remove" + } + }, + "transferOwnership(address)": { + "details": "allows transferring the contract ownership the new owner still needs to accept the transfer can only be called by the contract owner", + "params": { + "_newOwner": "new contract owner" + } + } + } + }, + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "608060405260008054600160a060020a03191633179055610642806100256000396000f3006080604052600436106100985763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416633628731c811461009d57806338eada1c146100f45780633af32abf146101155780634ba79dfe1461014a57806379ba50971461016b5780638da5cb5b14610180578063a84eb999146101b1578063d4ee1d9014610206578063f2fde38b1461021b575b600080fd5b3480156100a957600080fd5b50604080516020600480358082013583810280860185019096528085526100f29536959394602494938501929182918501908490808284375094975061023c9650505050505050565b005b34801561010057600080fd5b506100f2600160a060020a0360043516610274565b34801561012157600080fd5b50610136600160a060020a03600435166102f9565b604080519115158252519081900360200190f35b34801561015657600080fd5b506100f2600160a060020a0360043516610317565b34801561017757600080fd5b506100f2610390565b34801561018c57600080fd5b50610195610463565b60408051600160a060020a039092168252519081900360200190f35b3480156101bd57600080fd5b50604080516020600480358082013583810280860185019096528085526100f2953695939460249493850192918291850190849080828437509497506104729650505050505050565b34801561021257600080fd5b506101956104a6565b34801561022757600080fd5b506100f2600160a060020a03600435166104b5565b60005b815181101561027057610268828281518110151561025957fe5b90602001906020020151610274565b60010161023f565b5050565b61027c610552565b80610286816105b6565b600160a060020a03821660009081526002602052604090205460ff16156102ac57610270565b600160a060020a038216600081815260026020526040808220805460ff19166001179055517f2c51f80053e9ee7518567e43b2f8e8b48f50cf10daede6d11893df9ad49e4a8a9190a25050565b600160a060020a031660009081526002602052604090205460ff1690565b61031f610552565b600160a060020a03811660009081526002602052604090205460ff1615156103465761038d565b600160a060020a038116600081815260026020526040808220805460ff19169055517f7ec2df28665f8610f9b1d2f74faae35dbc6bd58684a1194a6dfc31584953f03b9190a25b50565b600154600160a060020a031633146103f2576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b60015460008054604051600160a060020a0393841693909116917f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91a3600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b600054600160a060020a031681565b60005b81518110156102705761049e828281518110151561048f57fe5b90602001906020020151610317565b600101610475565b600154600160a060020a031681565b6104bd610552565b600054600160a060020a0382811691161415610523576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f53414d455f4f574e4552000000000000000000000000000000000000604482015290519081900360640190fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600054600160a060020a031633146105b4576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b565b600160a060020a038116151561038d576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd00a165627a7a72305820276dee7d5aa59f5cd7bfdfbf62a11f1964822181078b41e2ba38ed0b6236c5780029", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND CALLER OR SWAP1 SSTORE PUSH2 0x642 DUP1 PUSH2 0x25 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x98 JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x3628731C DUP2 EQ PUSH2 0x9D JUMPI DUP1 PUSH4 0x38EADA1C EQ PUSH2 0xF4 JUMPI DUP1 PUSH4 0x3AF32ABF EQ PUSH2 0x115 JUMPI DUP1 PUSH4 0x4BA79DFE EQ PUSH2 0x14A JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x16B JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x180 JUMPI DUP1 PUSH4 0xA84EB999 EQ PUSH2 0x1B1 JUMPI DUP1 PUSH4 0xD4EE1D90 EQ PUSH2 0x206 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x21B JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0xF2 SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP PUSH2 0x23C SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x100 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xF2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x274 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x121 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x136 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x2F9 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x156 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xF2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x317 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x177 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xF2 PUSH2 0x390 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x18C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x195 PUSH2 0x463 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1BD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0xF2 SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP PUSH2 0x472 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x212 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x195 PUSH2 0x4A6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x227 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xF2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x4B5 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP2 MLOAD DUP2 LT ISZERO PUSH2 0x270 JUMPI PUSH2 0x268 DUP3 DUP3 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x259 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH2 0x274 JUMP JUMPDEST PUSH1 0x1 ADD PUSH2 0x23F JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x27C PUSH2 0x552 JUMP JUMPDEST DUP1 PUSH2 0x286 DUP2 PUSH2 0x5B6 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x2AC JUMPI PUSH2 0x270 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE MLOAD PUSH32 0x2C51F80053E9EE7518567E43B2F8E8B48F50CF10DAEDE6D11893DF9AD49E4A8A SWAP2 SWAP1 LOG2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH2 0x31F PUSH2 0x552 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO ISZERO PUSH2 0x346 JUMPI PUSH2 0x38D JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE MLOAD PUSH32 0x7EC2DF28665F8610F9B1D2F74FAAE35DBC6BD58684A1194A6DFC31584953F03B SWAP2 SWAP1 LOG2 JUMPDEST POP JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x3F2 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND SWAP4 SWAP1 SWAP2 AND SWAP2 PUSH32 0x343765429AEA5A34B3FF6A3785A98A5ABB2597ACA87BFBB58632C173D585373A SWAP2 LOG3 PUSH1 0x1 DUP1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND OR SWAP1 SWAP2 SSTORE AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP2 MLOAD DUP2 LT ISZERO PUSH2 0x270 JUMPI PUSH2 0x49E DUP3 DUP3 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x48F JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH2 0x317 JUMP JUMPDEST PUSH1 0x1 ADD PUSH2 0x475 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH2 0x4BD PUSH2 0x552 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x523 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F4F574E4552000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x5B4 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0x38D JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 0x27 PUSH14 0xEE7D5AA59F5CD7BFDFBF62A11F19 PUSH5 0x822181078B COINBASE 0xe2 0xba CODESIZE 0xed SIGNEXTEND PUSH3 0x36C578 STOP 0x29 ", + "sourceMap": "176:1933:73:-;;;488:5:66;:18;;-1:-1:-1;;;;;;488:18:66;496:10;488:18;;;176:1933:73;;;;;;" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "6080604052600436106100985763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416633628731c811461009d57806338eada1c146100f45780633af32abf146101155780634ba79dfe1461014a57806379ba50971461016b5780638da5cb5b14610180578063a84eb999146101b1578063d4ee1d9014610206578063f2fde38b1461021b575b600080fd5b3480156100a957600080fd5b50604080516020600480358082013583810280860185019096528085526100f29536959394602494938501929182918501908490808284375094975061023c9650505050505050565b005b34801561010057600080fd5b506100f2600160a060020a0360043516610274565b34801561012157600080fd5b50610136600160a060020a03600435166102f9565b604080519115158252519081900360200190f35b34801561015657600080fd5b506100f2600160a060020a0360043516610317565b34801561017757600080fd5b506100f2610390565b34801561018c57600080fd5b50610195610463565b60408051600160a060020a039092168252519081900360200190f35b3480156101bd57600080fd5b50604080516020600480358082013583810280860185019096528085526100f2953695939460249493850192918291850190849080828437509497506104729650505050505050565b34801561021257600080fd5b506101956104a6565b34801561022757600080fd5b506100f2600160a060020a03600435166104b5565b60005b815181101561027057610268828281518110151561025957fe5b90602001906020020151610274565b60010161023f565b5050565b61027c610552565b80610286816105b6565b600160a060020a03821660009081526002602052604090205460ff16156102ac57610270565b600160a060020a038216600081815260026020526040808220805460ff19166001179055517f2c51f80053e9ee7518567e43b2f8e8b48f50cf10daede6d11893df9ad49e4a8a9190a25050565b600160a060020a031660009081526002602052604090205460ff1690565b61031f610552565b600160a060020a03811660009081526002602052604090205460ff1615156103465761038d565b600160a060020a038116600081815260026020526040808220805460ff19169055517f7ec2df28665f8610f9b1d2f74faae35dbc6bd58684a1194a6dfc31584953f03b9190a25b50565b600154600160a060020a031633146103f2576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b60015460008054604051600160a060020a0393841693909116917f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91a3600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b600054600160a060020a031681565b60005b81518110156102705761049e828281518110151561048f57fe5b90602001906020020151610317565b600101610475565b600154600160a060020a031681565b6104bd610552565b600054600160a060020a0382811691161415610523576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f53414d455f4f574e4552000000000000000000000000000000000000604482015290519081900360640190fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600054600160a060020a031633146105b4576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b565b600160a060020a038116151561038d576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd00a165627a7a72305820276dee7d5aa59f5cd7bfdfbf62a11f1964822181078b41e2ba38ed0b6236c5780029", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x98 JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x3628731C DUP2 EQ PUSH2 0x9D JUMPI DUP1 PUSH4 0x38EADA1C EQ PUSH2 0xF4 JUMPI DUP1 PUSH4 0x3AF32ABF EQ PUSH2 0x115 JUMPI DUP1 PUSH4 0x4BA79DFE EQ PUSH2 0x14A JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x16B JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x180 JUMPI DUP1 PUSH4 0xA84EB999 EQ PUSH2 0x1B1 JUMPI DUP1 PUSH4 0xD4EE1D90 EQ PUSH2 0x206 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x21B JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0xF2 SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP PUSH2 0x23C SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x100 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xF2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x274 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x121 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x136 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x2F9 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x156 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xF2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x317 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x177 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xF2 PUSH2 0x390 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x18C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x195 PUSH2 0x463 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1BD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0xF2 SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP PUSH2 0x472 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x212 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x195 PUSH2 0x4A6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x227 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xF2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x4B5 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP2 MLOAD DUP2 LT ISZERO PUSH2 0x270 JUMPI PUSH2 0x268 DUP3 DUP3 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x259 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH2 0x274 JUMP JUMPDEST PUSH1 0x1 ADD PUSH2 0x23F JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x27C PUSH2 0x552 JUMP JUMPDEST DUP1 PUSH2 0x286 DUP2 PUSH2 0x5B6 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x2AC JUMPI PUSH2 0x270 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE MLOAD PUSH32 0x2C51F80053E9EE7518567E43B2F8E8B48F50CF10DAEDE6D11893DF9AD49E4A8A SWAP2 SWAP1 LOG2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH2 0x31F PUSH2 0x552 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO ISZERO PUSH2 0x346 JUMPI PUSH2 0x38D JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE MLOAD PUSH32 0x7EC2DF28665F8610F9B1D2F74FAAE35DBC6BD58684A1194A6DFC31584953F03B SWAP2 SWAP1 LOG2 JUMPDEST POP JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x3F2 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND SWAP4 SWAP1 SWAP2 AND SWAP2 PUSH32 0x343765429AEA5A34B3FF6A3785A98A5ABB2597ACA87BFBB58632C173D585373A SWAP2 LOG3 PUSH1 0x1 DUP1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND OR SWAP1 SWAP2 SSTORE AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP2 MLOAD DUP2 LT ISZERO PUSH2 0x270 JUMPI PUSH2 0x49E DUP3 DUP3 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x48F JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH2 0x317 JUMP JUMPDEST PUSH1 0x1 ADD PUSH2 0x475 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH2 0x4BD PUSH2 0x552 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x523 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F4F574E4552000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x5B4 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0x38D JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 0x27 PUSH14 0xEE7D5AA59F5CD7BFDFBF62A11F19 PUSH5 0x822181078B COINBASE 0xe2 0xba CODESIZE 0xed SIGNEXTEND PUSH3 0x36C578 STOP 0x29 ", + "sourceMap": "176:1933:73:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1379:141;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1379:141:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1379:141:73;;-1:-1:-1;1379:141:73;;-1:-1:-1;;;;;;;1379:141:73;;;1036:236;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1036:236:73;-1:-1:-1;;;;;1036:236:73;;;;;835:102;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;835:102:73;-1:-1:-1;;;;;835:102:73;;;;;;;;;;;;;;;;;;;;;;;1627:218;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1627:218:73;-1:-1:-1;;;;;1627:218:73;;;;;1159:176:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1159:176:66;;;;157:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;157:20:66;;;;;;;;-1:-1:-1;;;;;157:20:66;;;;;;;;;;;;;;1960:147:73;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1960:147:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1960:147:73;;-1:-1:-1;1960:147:73;;-1:-1:-1;;;;;;;1960:147:73;180:23:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;180:23:66;;;;945:140;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;945:140:66;-1:-1:-1;;;;;945:140:66;;;;;1379:141:73;1439:9;1434:83;1458:10;:17;1454:1;:21;1434:83;;;1487:25;1498:10;1509:1;1498:13;;;;;;;;;;;;;;;;;;1487:10;:25::i;:::-;1477:3;;1434:83;;;1379:141;;:::o;1036:236::-;575:12:66;:10;:12::i;:::-;1104:8:73;475:23:72;489:8;475:13;:23::i;:::-;-1:-1:-1;;;;;1122:19:73;;;;;;:9;:19;;;;;;;;1118:86;;;1197:7;;1118:86;-1:-1:-1;;;;;1208:19:73;;;;;;:9;:19;;;;;;:26;;-1:-1:-1;;1208:26:73;1230:4;1208:26;;;1243:25;;;1208:19;1243:25;591:1:66;1036:236:73;:::o;835:102::-;-1:-1:-1;;;;;914:19:73;897:4;914:19;;;:9;:19;;;;;;;;;835:102::o;1627:218::-;575:12:66;:10;:12::i;:::-;-1:-1:-1;;;;;1694:19:73;;;;;;:9;:19;;;;;;;;1693:20;1689:88;;;1770:7;;1689:88;-1:-1:-1;;;;;1781:19:73;;1803:5;1781:19;;;:9;:19;;;;;;:27;;-1:-1:-1;;1781:27:73;;;1817:24;;;1803:5;1817:24;591:1:66;1627:218:73;:::o;1159:176:66:-;1219:8;;-1:-1:-1;;;;;1219:8:66;1205:10;:22;1197:52;;;;;-1:-1:-1;;;;;1197:52:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;1277:8;;;1270:5;;1258:28;;-1:-1:-1;;;;;1277:8:66;;;;1270:5;;;;1258:28;;;1298:8;;;;1290:16;;-1:-1:-1;;1290:16:66;;;-1:-1:-1;;;;;1298:8:66;;1290:16;;;;1310:21;;;1159:176::o;157:20::-;;;-1:-1:-1;;;;;157:20:66;;:::o;1960:147:73:-;2023:9;2018:86;2042:10;:17;2038:1;:21;2018:86;;;2071:28;2085:10;2096:1;2085:13;;;;;;;;;;;;;;;;;;2071;:28::i;:::-;2061:3;;2018:86;;180:23:66;;;-1:-1:-1;;;;;180:23:66;;:::o;945:140::-;575:12;:10;:12::i;:::-;1033:5;;-1:-1:-1;;;;;1020:18:66;;;1033:5;;1020:18;;1012:45;;;;;-1:-1:-1;;;;;1012:45:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;1061:8;:20;;-1:-1:-1;;1061:20:66;-1:-1:-1;;;;;1061:20:66;;;;;;;;;;945:140::o;642:93::-;704:5;;-1:-1:-1;;;;;704:5:66;690:10;:19;682:49;;;;;-1:-1:-1;;;;;682:49:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;642:93::o;553:117:72:-;-1:-1:-1;;;;;620:22:72;;;;612:54;;;;;-1:-1:-1;;;;;612:54:72;;;;;;;;;;;;;;;;;;;;;;;;;;" + }, + "methodIdentifiers": { + "acceptOwnership()": "79ba5097", + "addAddress(address)": "38eada1c", + "addAddresses(address[])": "3628731c", + "isWhitelisted(address)": "3af32abf", + "newOwner()": "d4ee1d90", + "owner()": "8da5cb5b", + "removeAddress(address)": "4ba79dfe", + "removeAddresses(address[])": "a84eb999", + "transferOwnership(address)": "f2fde38b" + } + }, + "userdoc": { + "methods": {} + } + } + }, + "solidity/contracts/utility/interfaces/IConsumerPriceOracle.sol": { + "IConsumerPriceOracle": { + "abi": [ + { + "constant": true, + "inputs": [], + "name": "latestAnswer", + "outputs": [ + { + "name": "", + "type": "int256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "latestTimestamp", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + } + ], + "devdoc": { + "methods": {} + }, + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "latestAnswer()": "50d25bcd", + "latestTimestamp()": "8205bf6a" + } + }, + "userdoc": { + "methods": {} + } + } + }, + "solidity/contracts/utility/interfaces/IContractRegistry.sol": { + "IContractRegistry": { + "abi": [ + { + "constant": true, + "inputs": [ + { + "name": "_contractName", + "type": "bytes32" + } + ], + "name": "getAddress", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_contractName", + "type": "bytes32" + } + ], + "name": "addressOf", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + } + ], + "devdoc": { + "methods": {} + }, + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "addressOf(bytes32)": "bb34534c", + "getAddress(bytes32)": "21f8a721" + } + }, + "userdoc": { + "methods": {} + } + } + }, + "solidity/contracts/utility/interfaces/IMoCState.sol": { + "IMoCState": { + "abi": [ + { + "constant": true, + "inputs": [], + "name": "bproUsdPrice", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + } + ], + "devdoc": { + "methods": {} + }, + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "bproUsdPrice()": "747a5663" + } + }, + "userdoc": { + "methods": {} + } + } + }, + "solidity/contracts/utility/interfaces/IOwned.sol": { + "IOwned": { + "abi": [ + { + "constant": false, + "inputs": [], + "name": "acceptOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "owner", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ], + "devdoc": { + "methods": {} + }, + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "acceptOwnership()": "79ba5097", + "owner()": "8da5cb5b", + "transferOwnership(address)": "f2fde38b" + } + }, + "userdoc": { + "methods": {} + } + } + }, + "solidity/contracts/utility/interfaces/IPriceOracle.sol": { + "IPriceOracle": { + "abi": [ + { + "constant": true, + "inputs": [ + { + "name": "_tokenA", + "type": "address" + }, + { + "name": "_tokenB", + "type": "address" + } + ], + "name": "latestRate", + "outputs": [ + { + "name": "", + "type": "uint256" + }, + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_tokenA", + "type": "address" + }, + { + "name": "_tokenB", + "type": "address" + } + ], + "name": "latestRateAndUpdateTime", + "outputs": [ + { + "name": "", + "type": "uint256" + }, + { + "name": "", + "type": "uint256" + }, + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "tokenAOracle", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "lastUpdateTime", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "tokenBOracle", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + } + ], + "devdoc": { + "methods": {} + }, + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "lastUpdateTime()": "c8f33c91", + "latestRate(address,address)": "ae818004", + "latestRateAndUpdateTime(address,address)": "b1772d7a", + "tokenAOracle()": "b9e1715b", + "tokenBOracle()": "f997fda7" + } + }, + "userdoc": { + "methods": {} + } + } + }, + "solidity/contracts/utility/interfaces/ITokenHolder.sol": { + "ITokenHolder": { + "abi": [ + { + "constant": false, + "inputs": [ + { + "name": "_token", + "type": "address" + }, + { + "name": "_to", + "type": "address" + }, + { + "name": "_amount", + "type": "uint256" + } + ], + "name": "withdrawTokens", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "acceptOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "owner", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ], + "devdoc": { + "methods": {} + }, + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "acceptOwnership()": "79ba5097", + "owner()": "8da5cb5b", + "transferOwnership(address)": "f2fde38b", + "withdrawTokens(address,address,uint256)": "5e35359e" + } + }, + "userdoc": { + "methods": {} + } + } + }, + "solidity/contracts/utility/interfaces/IWhitelist.sol": { + "IWhitelist": { + "abi": [ + { + "constant": true, + "inputs": [ + { + "name": "_address", + "type": "address" + } + ], + "name": "isWhitelisted", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + } + ], + "devdoc": { + "methods": {} + }, + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "isWhitelisted(address)": "3af32abf" + } + }, + "userdoc": { + "methods": {} + } + } + } + }, + "sources": { + "solidity/contracts/ConversionPathFinder.sol": { + "ast": { + "absolutePath": "solidity/contracts/ConversionPathFinder.sol", + "exportedSymbols": { + "ConversionPathFinder": [ + 523 + ] + }, + "id": 524, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1, + "literals": [ + "solidity", + "0.4", + ".26" + ], + "nodeType": "PragmaDirective", + "src": "0:23:0" + }, + { + "absolutePath": "solidity/contracts/IConversionPathFinder.sol", + "file": "./IConversionPathFinder.sol", + "id": 2, + "nodeType": "ImportDirective", + "scope": 524, + "sourceUnit": 538, + "src": "24:37:0", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "solidity/contracts/utility/ContractRegistryClient.sol", + "file": "./utility/ContractRegistryClient.sol", + "id": 3, + "nodeType": "ImportDirective", + "scope": 524, + "sourceUnit": 20933, + "src": "62:46:0", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "solidity/contracts/converter/interfaces/IConverter.sol", + "file": "./converter/interfaces/IConverter.sol", + "id": 4, + "nodeType": "ImportDirective", + "scope": 524, + "sourceUnit": 11818, + "src": "109:47:0", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "solidity/contracts/converter/interfaces/IConverterAnchor.sol", + "file": "./converter/interfaces/IConverterAnchor.sol", + "id": 5, + "nodeType": "ImportDirective", + "scope": 524, + "sourceUnit": 11827, + "src": "157:53:0", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "solidity/contracts/converter/interfaces/IConverterRegistry.sol", + "file": "./converter/interfaces/IConverterRegistry.sol", + "id": 6, + "nodeType": "ImportDirective", + "scope": 524, + "sourceUnit": 11983, + "src": "211:55:0", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 7, + "name": "IConversionPathFinder", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 537, + "src": "591:21:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConversionPathFinder_$537", + "typeString": "contract IConversionPathFinder" + } + }, + "id": 8, + "nodeType": "InheritanceSpecifier", + "src": "591:21:0" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 9, + "name": "ContractRegistryClient", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20932, + "src": "614:22:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ContractRegistryClient_$20932", + "typeString": "contract ContractRegistryClient" + } + }, + "id": 10, + "nodeType": "InheritanceSpecifier", + "src": "614:22:0" + } + ], + "contractDependencies": [ + 537, + 20932, + 21324, + 22052, + 22247 + ], + "contractKind": "contract", + "documentation": "@dev The ConversionPathFinder contract allows generating a conversion path between any token pair in the SovrynSwap Network.\nThe path can then be used in various functions in the SovrynSwapNetwork contract.\n * See the SovrynSwapNetwork contract for conversion path format.", + "fullyImplemented": true, + "id": 523, + "linearizedBaseContracts": [ + 523, + 20932, + 22052, + 21324, + 22247, + 537 + ], + "name": "ConversionPathFinder", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 12, + "name": "anchorToken", + "nodeType": "VariableDeclaration", + "scope": 523, + "src": "640:26:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "640:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "body": { + "id": 20, + "nodeType": "Block", + "src": "884:2:0", + "statements": [] + }, + "documentation": "@dev initializes a new ConversionPathFinder instance\n\t * @param _registry address of a contract registry contract", + "id": 21, + "implemented": true, + "isConstructor": true, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 17, + "name": "_registry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14, + "src": "873:9:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IContractRegistry_$22220", + "typeString": "contract IContractRegistry" + } + } + ], + "id": 18, + "modifierName": { + "argumentTypes": null, + "id": 16, + "name": "ContractRegistryClient", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20932, + "src": "850:22:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ContractRegistryClient_$20932_$", + "typeString": "type(contract ContractRegistryClient)" + } + }, + "nodeType": "ModifierInvocation", + "src": "850:33:0" + } + ], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 15, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 14, + "name": "_registry", + "nodeType": "VariableDeclaration", + "scope": 21, + "src": "814:27:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IContractRegistry_$22220", + "typeString": "contract IContractRegistry" + }, + "typeName": { + "contractScope": null, + "id": 13, + "name": "IContractRegistry", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 22220, + "src": "814:17:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IContractRegistry_$22220", + "typeString": "contract IContractRegistry" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "813:29:0" + }, + "payable": false, + "returnParameters": { + "id": 19, + "nodeType": "ParameterList", + "parameters": [], + "src": "884:0:0" + }, + "scope": 523, + "src": "802:84:0", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 32, + "nodeType": "Block", + "src": "1052:34:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 30, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 28, + "name": "anchorToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12, + "src": "1056:11:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 29, + "name": "_anchorToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23, + "src": "1070:12:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1056:26:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 31, + "nodeType": "ExpressionStatement", + "src": "1056:26:0" + } + ] + }, + "documentation": "@dev updates the anchor token\n\t * @param _anchorToken address of the anchor token", + "id": 33, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 26, + "modifierName": { + "argumentTypes": null, + "id": 25, + "name": "ownerOnly", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21265, + "src": "1042:9:0", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "1042:9:0" + } + ], + "name": "setAnchorToken", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 24, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 23, + "name": "_anchorToken", + "nodeType": "VariableDeclaration", + "scope": 33, + "src": "1013:20:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 22, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1013:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1012:22:0" + }, + "payable": false, + "returnParameters": { + "id": 27, + "nodeType": "ParameterList", + "parameters": [], + "src": "1052:0:0" + }, + "scope": 523, + "src": "989:97:0", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 74, + "nodeType": "Block", + "src": "1467:294:0", + "statements": [ + { + "assignments": [ + 44 + ], + "declarations": [ + { + "constant": false, + "id": 44, + "name": "converterRegistry", + "nodeType": "VariableDeclaration", + "scope": 75, + "src": "1471:36:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterRegistry_$11982", + "typeString": "contract IConverterRegistry" + }, + "typeName": { + "contractScope": null, + "id": 43, + "name": "IConverterRegistry", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11982, + "src": "1471:18:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterRegistry_$11982", + "typeString": "contract IConverterRegistry" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 50, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 47, + "name": "CONVERTER_REGISTRY", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20770, + "src": "1539:18:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 46, + "name": "addressOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20931, + "src": "1529:9:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$", + "typeString": "function (bytes32) view returns (address)" + } + }, + "id": 48, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1529:29:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 45, + "name": "IConverterRegistry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11982, + "src": "1510:18:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IConverterRegistry_$11982_$", + "typeString": "type(contract IConverterRegistry)" + } + }, + "id": 49, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1510:49:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterRegistry_$11982", + "typeString": "contract IConverterRegistry" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1471:88:0" + }, + { + "assignments": [ + 54 + ], + "declarations": [ + { + "constant": false, + "id": 54, + "name": "sourcePath", + "nodeType": "VariableDeclaration", + "scope": 75, + "src": "1563:27:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 52, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1563:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 53, + "length": null, + "nodeType": "ArrayTypeName", + "src": "1563:9:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 59, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 56, + "name": "_sourceToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 35, + "src": "1601:12:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 57, + "name": "converterRegistry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 44, + "src": "1615:17:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterRegistry_$11982", + "typeString": "contract IConverterRegistry" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_contract$_IConverterRegistry_$11982", + "typeString": "contract IConverterRegistry" + } + ], + "id": 55, + "name": "getPath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 200, + "src": "1593:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_contract$_IConverterRegistry_$11982_$returns$_t_array$_t_address_$dyn_memory_ptr_$", + "typeString": "function (address,contract IConverterRegistry) view returns (address[] memory)" + } + }, + "id": 58, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1593:40:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1563:70:0" + }, + { + "assignments": [ + 63 + ], + "declarations": [ + { + "constant": false, + "id": 63, + "name": "targetPath", + "nodeType": "VariableDeclaration", + "scope": 75, + "src": "1637:27:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 61, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1637:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 62, + "length": null, + "nodeType": "ArrayTypeName", + "src": "1637:9:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 68, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 65, + "name": "_targetToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37, + "src": "1675:12:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 66, + "name": "converterRegistry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 44, + "src": "1689:17:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterRegistry_$11982", + "typeString": "contract IConverterRegistry" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_contract$_IConverterRegistry_$11982", + "typeString": "contract IConverterRegistry" + } + ], + "id": 64, + "name": "getPath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 200, + "src": "1667:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_contract$_IConverterRegistry_$11982_$returns$_t_array$_t_address_$dyn_memory_ptr_$", + "typeString": "function (address,contract IConverterRegistry) view returns (address[] memory)" + } + }, + "id": 67, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1667:40:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1637:70:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 70, + "name": "sourcePath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 54, + "src": "1734:10:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + { + "argumentTypes": null, + "id": 71, + "name": "targetPath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 63, + "src": "1746:10:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + }, + { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + ], + "id": 69, + "name": "getShortestPath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 389, + "src": "1718:15:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$returns$_t_array$_t_address_$dyn_memory_ptr_$", + "typeString": "function (address[] memory,address[] memory) pure returns (address[] memory)" + } + }, + "id": 72, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1718:39:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "functionReturnParameters": 42, + "id": 73, + "nodeType": "Return", + "src": "1711:46:0" + } + ] + }, + "documentation": "@dev generates a conversion path between a given pair of tokens in the SovrynSwap Network\n\t * @param _sourceToken address of the source token\n@param _targetToken address of the target token\n\t * @return a path from the source token to the target token", + "id": 75, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "findPath", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 38, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 35, + "name": "_sourceToken", + "nodeType": "VariableDeclaration", + "scope": 75, + "src": "1384:20:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 34, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1384:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 37, + "name": "_targetToken", + "nodeType": "VariableDeclaration", + "scope": 75, + "src": "1406:20:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 36, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1406:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1383:44:0" + }, + "payable": false, + "returnParameters": { + "id": 42, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 41, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 75, + "src": "1449:9:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 39, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1449:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 40, + "length": null, + "nodeType": "ArrayTypeName", + "src": "1449:9:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1448:18:0" + }, + "scope": 523, + "src": "1366:395:0", + "stateMutability": "view", + "superFunction": 536, + "visibility": "public" + }, + { + "body": { + "id": 199, + "nodeType": "Block", + "src": "2153:780:0", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 87, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 85, + "name": "_token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 77, + "src": "2161:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 86, + "name": "anchorToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12, + "src": "2171:11:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "2161:21:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 92, + "nodeType": "IfStatement", + "src": "2157:57:0", + "trueBody": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 89, + "name": "_token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 77, + "src": "2207:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 88, + "name": "getInitialArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 416, + "src": "2191:15:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_address_$returns$_t_array$_t_address_$dyn_memory_ptr_$", + "typeString": "function (address) pure returns (address[] memory)" + } + }, + "id": 90, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2191:23:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "functionReturnParameters": 84, + "id": 91, + "nodeType": "Return", + "src": "2184:30:0" + } + }, + { + "assignments": [], + "declarations": [ + { + "constant": false, + "id": 96, + "name": "anchors", + "nodeType": "VariableDeclaration", + "scope": 200, + "src": "2219:24:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 94, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2219:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 95, + "length": null, + "nodeType": "ArrayTypeName", + "src": "2219:9:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 97, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "2219:24:0" + }, + { + "condition": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 100, + "name": "_token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 77, + "src": "2279:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 98, + "name": "_converterRegistry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 79, + "src": "2251:18:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterRegistry_$11982", + "typeString": "contract IConverterRegistry" + } + }, + "id": 99, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "isAnchor", + "nodeType": "MemberAccess", + "referencedDeclaration": 11898, + "src": "2251:27:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bool_$", + "typeString": "function (address) view external returns (bool)" + } + }, + "id": 101, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2251:35:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "expression": { + "argumentTypes": null, + "id": 113, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 108, + "name": "anchors", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 96, + "src": "2330:7:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 111, + "name": "_token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 77, + "src": "2386:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 109, + "name": "_converterRegistry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 79, + "src": "2340:18:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterRegistry_$11982", + "typeString": "contract IConverterRegistry" + } + }, + "id": 110, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getConvertibleTokenAnchors", + "nodeType": "MemberAccess", + "referencedDeclaration": 11963, + "src": "2340:45:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_array$_t_address_$dyn_memory_ptr_$", + "typeString": "function (address) view external returns (address[] memory)" + } + }, + "id": 112, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2340:53:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "src": "2330:63:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 114, + "nodeType": "ExpressionStatement", + "src": "2330:63:0" + }, + "id": 115, + "nodeType": "IfStatement", + "src": "2247:146:0", + "trueBody": { + "expression": { + "argumentTypes": null, + "id": 106, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 102, + "name": "anchors", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 96, + "src": "2288:7:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 104, + "name": "_token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 77, + "src": "2314:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 103, + "name": "getInitialArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 416, + "src": "2298:15:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_address_$returns$_t_array$_t_address_$dyn_memory_ptr_$", + "typeString": "function (address) pure returns (address[] memory)" + } + }, + "id": 105, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2298:23:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "src": "2288:33:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 107, + "nodeType": "ExpressionStatement", + "src": "2288:33:0" + } + }, + { + "body": { + "id": 191, + "nodeType": "Block", + "src": "2443:459:0", + "statements": [ + { + "assignments": [ + 128 + ], + "declarations": [ + { + "constant": false, + "id": 128, + "name": "converter", + "nodeType": "VariableDeclaration", + "scope": 200, + "src": "2448:20:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + }, + "typeName": { + "contractScope": null, + "id": 127, + "name": "IConverter", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11817, + "src": "2448:10:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 138, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 131, + "name": "anchors", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 96, + "src": "2499:7:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 133, + "indexExpression": { + "argumentTypes": null, + "id": 132, + "name": "n", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 117, + "src": "2507:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2499:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 130, + "name": "IConverterAnchor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11826, + "src": "2482:16:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IConverterAnchor_$11826_$", + "typeString": "type(contract IConverterAnchor)" + } + }, + "id": 134, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2482:28:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + }, + "id": 135, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "owner", + "nodeType": "MemberAccess", + "referencedDeclaration": 22238, + "src": "2482:34:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", + "typeString": "function () view external returns (address)" + } + }, + "id": 136, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2482:36:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 129, + "name": "IConverter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11817, + "src": "2471:10:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IConverter_$11817_$", + "typeString": "type(contract IConverter)" + } + }, + "id": 137, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2471:48:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2448:71:0" + }, + { + "assignments": [ + 140 + ], + "declarations": [ + { + "constant": false, + "id": 140, + "name": "connectorTokenCount", + "nodeType": "VariableDeclaration", + "scope": 200, + "src": "2524:27:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 139, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2524:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 144, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 141, + "name": "converter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 128, + "src": "2554:9:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + "id": 142, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "connectorTokenCount", + "nodeType": "MemberAccess", + "referencedDeclaration": 11816, + "src": "2554:29:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint16_$", + "typeString": "function () view external returns (uint16)" + } + }, + "id": 143, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2554:31:0", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2524:61:0" + }, + { + "body": { + "id": 189, + "nodeType": "Block", + "src": "2640:258:0", + "statements": [ + { + "assignments": [ + 156 + ], + "declarations": [ + { + "constant": false, + "id": 156, + "name": "connectorToken", + "nodeType": "VariableDeclaration", + "scope": 200, + "src": "2646:22:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 155, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2646:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 161, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 159, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 146, + "src": "2697:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 157, + "name": "converter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 128, + "src": "2671:9:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + "id": 158, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "connectorTokens", + "nodeType": "MemberAccess", + "referencedDeclaration": 11811, + "src": "2671:25:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_contract$_IERC20Token_$20240_$", + "typeString": "function (uint256) view external returns (contract IERC20Token)" + } + }, + "id": 160, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2671:28:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2646:53:0" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 164, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 162, + "name": "connectorToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 156, + "src": "2709:14:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "id": 163, + "name": "_token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 77, + "src": "2727:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "2709:24:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 188, + "nodeType": "IfStatement", + "src": "2705:188:0", + "trueBody": { + "id": 187, + "nodeType": "Block", + "src": "2735:158:0", + "statements": [ + { + "assignments": [ + 168 + ], + "declarations": [ + { + "constant": false, + "id": 168, + "name": "path", + "nodeType": "VariableDeclaration", + "scope": 200, + "src": "2742:21:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 166, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2742:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 167, + "length": null, + "nodeType": "ArrayTypeName", + "src": "2742:9:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 173, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 170, + "name": "connectorToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 156, + "src": "2774:14:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 171, + "name": "_converterRegistry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 79, + "src": "2790:18:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterRegistry_$11982", + "typeString": "contract IConverterRegistry" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_contract$_IConverterRegistry_$11982", + "typeString": "contract IConverterRegistry" + } + ], + "id": 169, + "name": "getPath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 200, + "src": "2766:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_contract$_IConverterRegistry_$11982_$returns$_t_array$_t_address_$dyn_memory_ptr_$", + "typeString": "function (address,contract IConverterRegistry) view returns (address[] memory)" + } + }, + "id": 172, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2766:43:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2742:67:0" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 177, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 174, + "name": "path", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 168, + "src": "2820:4:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 175, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2820:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 176, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2834:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "2820:15:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 186, + "nodeType": "IfStatement", + "src": "2816:70:0", + "trueBody": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 179, + "name": "_token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 77, + "src": "2861:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 180, + "name": "anchors", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 96, + "src": "2869:7:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 182, + "indexExpression": { + "argumentTypes": null, + "id": 181, + "name": "n", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 117, + "src": "2877:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2869:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 183, + "name": "path", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 168, + "src": "2881:4:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + ], + "id": 178, + "name": "getExtendedArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 479, + "src": "2844:16:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_address_$_t_address_$_t_array$_t_address_$dyn_memory_ptr_$returns$_t_array$_t_address_$dyn_memory_ptr_$", + "typeString": "function (address,address,address[] memory) pure returns (address[] memory)" + } + }, + "id": 184, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2844:42:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "functionReturnParameters": 84, + "id": 185, + "nodeType": "Return", + "src": "2837:49:0" + } + } + ] + } + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 151, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 149, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 146, + "src": "2610:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 150, + "name": "connectorTokenCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 140, + "src": "2614:19:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2610:23:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 190, + "initializationExpression": { + "assignments": [ + 146 + ], + "declarations": [ + { + "constant": false, + "id": 146, + "name": "i", + "nodeType": "VariableDeclaration", + "scope": 200, + "src": "2595:9:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 145, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2595:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 148, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 147, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2607:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "2595:13:0" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 153, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "2635:3:0", + "subExpression": { + "argumentTypes": null, + "id": 152, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 146, + "src": "2635:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 154, + "nodeType": "ExpressionStatement", + "src": "2635:3:0" + }, + "nodeType": "ForStatement", + "src": "2590:308:0" + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 123, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 120, + "name": "n", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 117, + "src": "2418:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 121, + "name": "anchors", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 96, + "src": "2422:7:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 122, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2422:14:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2418:18:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 192, + "initializationExpression": { + "assignments": [ + 117 + ], + "declarations": [ + { + "constant": false, + "id": 117, + "name": "n", + "nodeType": "VariableDeclaration", + "scope": 200, + "src": "2403:9:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 116, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2403:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 119, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 118, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2415:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "2403:13:0" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 125, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "2438:3:0", + "subExpression": { + "argumentTypes": null, + "id": 124, + "name": "n", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 117, + "src": "2438:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 126, + "nodeType": "ExpressionStatement", + "src": "2438:3:0" + }, + "nodeType": "ForStatement", + "src": "2398:504:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 196, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2927:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 195, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "2913:13:0", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_$", + "typeString": "function (uint256) pure returns (address[] memory)" + }, + "typeName": { + "baseType": { + "id": 193, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2917:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 194, + "length": null, + "nodeType": "ArrayTypeName", + "src": "2917:9:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + } + }, + "id": 197, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2913:16:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory", + "typeString": "address[] memory" + } + }, + "functionReturnParameters": 84, + "id": 198, + "nodeType": "Return", + "src": "2906:23:0" + } + ] + }, + "documentation": "@dev generates a conversion path between a given token and the anchor token\n\t * @param _token address of the token\n@param _converterRegistry address of the converter registry\n\t * @return a path from the input token to the anchor token", + "id": 200, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getPath", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 80, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 77, + "name": "_token", + "nodeType": "VariableDeclaration", + "scope": 200, + "src": "2058:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 76, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2058:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 79, + "name": "_converterRegistry", + "nodeType": "VariableDeclaration", + "scope": 200, + "src": "2074:37:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterRegistry_$11982", + "typeString": "contract IConverterRegistry" + }, + "typeName": { + "contractScope": null, + "id": 78, + "name": "IConverterRegistry", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11982, + "src": "2074:18:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterRegistry_$11982", + "typeString": "contract IConverterRegistry" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2057:55:0" + }, + "payable": false, + "returnParameters": { + "id": 84, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 83, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 200, + "src": "2135:9:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 81, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2135:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 82, + "length": null, + "nodeType": "ArrayTypeName", + "src": "2135:9:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2134:18:0" + }, + "scope": 523, + "src": "2041:892:0", + "stateMutability": "view", + "superFunction": null, + "visibility": "private" + }, + { + "body": { + "id": 388, + "nodeType": "Block", + "src": "3259:712:0", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 220, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 215, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 212, + "name": "_sourcePath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 203, + "src": "3267:11:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 213, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3267:18:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 214, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3288:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3267:22:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 219, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 216, + "name": "_targetPath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 206, + "src": "3293:11:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 217, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3293:18:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 218, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3314:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3293:22:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "3267:48:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 381, + "nodeType": "IfStatement", + "src": "3263:677:0", + "trueBody": { + "id": 380, + "nodeType": "Block", + "src": "3317:623:0", + "statements": [ + { + "assignments": [ + 222 + ], + "declarations": [ + { + "constant": false, + "id": 222, + "name": "i", + "nodeType": "VariableDeclaration", + "scope": 389, + "src": "3322:9:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 221, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3322:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 225, + "initialValue": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 223, + "name": "_sourcePath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 203, + "src": "3334:11:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 224, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3334:18:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3322:30:0" + }, + { + "assignments": [ + 227 + ], + "declarations": [ + { + "constant": false, + "id": 227, + "name": "j", + "nodeType": "VariableDeclaration", + "scope": 389, + "src": "3357:9:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 226, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3357:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 230, + "initialValue": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 228, + "name": "_targetPath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 206, + "src": "3369:11:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 229, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3369:18:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3357:30:0" + }, + { + "body": { + "id": 256, + "nodeType": "Block", + "src": "3459:24:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 251, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "--", + "prefix": false, + "src": "3465:3:0", + "subExpression": { + "argumentTypes": null, + "id": 250, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 222, + "src": "3465:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 252, + "nodeType": "ExpressionStatement", + "src": "3465:3:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 254, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "--", + "prefix": false, + "src": "3474:3:0", + "subExpression": { + "argumentTypes": null, + "id": 253, + "name": "j", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 227, + "src": "3474:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 255, + "nodeType": "ExpressionStatement", + "src": "3474:3:0" + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 249, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 237, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 233, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 231, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 222, + "src": "3399:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 232, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3403:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3399:5:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 236, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 234, + "name": "j", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 227, + "src": "3408:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 235, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3412:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3408:5:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "3399:14:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 248, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 238, + "name": "_sourcePath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 203, + "src": "3417:11:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 242, + "indexExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 241, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 239, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 222, + "src": "3429:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 240, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3433:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "3429:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3417:18:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 243, + "name": "_targetPath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 206, + "src": "3439:11:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 247, + "indexExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 246, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 244, + "name": "j", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 227, + "src": "3451:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 245, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3455:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "3451:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3439:18:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "3417:40:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "3399:58:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 257, + "nodeType": "WhileStatement", + "src": "3392:91:0" + }, + { + "assignments": [ + 261 + ], + "declarations": [ + { + "constant": false, + "id": 261, + "name": "path", + "nodeType": "VariableDeclaration", + "scope": 389, + "src": "3488:21:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 259, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3488:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 260, + "length": null, + "nodeType": "ArrayTypeName", + "src": "3488:9:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 271, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 269, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 267, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 265, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 222, + "src": "3526:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "id": 266, + "name": "j", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 227, + "src": "3530:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3526:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 268, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3534:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "3526:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 264, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "3512:13:0", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_$", + "typeString": "function (uint256) pure returns (address[] memory)" + }, + "typeName": { + "baseType": { + "id": 262, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3516:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 263, + "length": null, + "nodeType": "ArrayTypeName", + "src": "3516:9:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + } + }, + "id": 270, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3512:24:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory", + "typeString": "address[] memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3488:48:0" + }, + { + "body": { + "expression": { + "argumentTypes": null, + "id": 288, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 282, + "name": "path", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 261, + "src": "3574:4:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 284, + "indexExpression": { + "argumentTypes": null, + "id": 283, + "name": "m", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 273, + "src": "3579:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "3574:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 285, + "name": "_sourcePath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 203, + "src": "3584:11:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 287, + "indexExpression": { + "argumentTypes": null, + "id": 286, + "name": "m", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 273, + "src": "3596:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3584:14:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "3574:24:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 289, + "nodeType": "ExpressionStatement", + "src": "3574:24:0" + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 278, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 276, + "name": "m", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 273, + "src": "3561:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "id": 277, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 222, + "src": "3566:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3561:6:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 290, + "initializationExpression": { + "assignments": [ + 273 + ], + "declarations": [ + { + "constant": false, + "id": 273, + "name": "m", + "nodeType": "VariableDeclaration", + "scope": 389, + "src": "3546:9:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 272, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3546:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 275, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 274, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3558:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "3546:13:0" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 280, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "3569:3:0", + "subExpression": { + "argumentTypes": null, + "id": 279, + "name": "m", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 273, + "src": "3569:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 281, + "nodeType": "ExpressionStatement", + "src": "3569:3:0" + }, + "nodeType": "ForStatement", + "src": "3541:57:0" + }, + { + "body": { + "expression": { + "argumentTypes": null, + "id": 312, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 301, + "name": "path", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 261, + "src": "3635:4:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 306, + "indexExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 305, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 302, + "name": "path", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 261, + "src": "3640:4:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 303, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3640:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 304, + "name": "n", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 292, + "src": "3654:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3640:15:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "3635:21:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 307, + "name": "_targetPath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 206, + "src": "3659:11:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 311, + "indexExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 310, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 308, + "name": "n", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 292, + "src": "3671:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 309, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3675:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "3671:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3659:18:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "3635:42:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 313, + "nodeType": "ExpressionStatement", + "src": "3635:42:0" + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 297, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 295, + "name": "n", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 292, + "src": "3623:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 296, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3627:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3623:5:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 314, + "initializationExpression": { + "assignments": [ + 292 + ], + "declarations": [ + { + "constant": false, + "id": 292, + "name": "n", + "nodeType": "VariableDeclaration", + "scope": 389, + "src": "3608:9:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 291, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3608:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 294, + "initialValue": { + "argumentTypes": null, + "id": 293, + "name": "j", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 227, + "src": "3620:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3608:13:0" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 299, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "--", + "prefix": false, + "src": "3630:3:0", + "subExpression": { + "argumentTypes": null, + "id": 298, + "name": "n", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 292, + "src": "3630:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 300, + "nodeType": "ExpressionStatement", + "src": "3630:3:0" + }, + "nodeType": "ForStatement", + "src": "3603:74:0" + }, + { + "assignments": [ + 316 + ], + "declarations": [ + { + "constant": false, + "id": 316, + "name": "length", + "nodeType": "VariableDeclaration", + "scope": 389, + "src": "3683:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 315, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3683:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 318, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 317, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3700:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "3683:18:0" + }, + { + "body": { + "id": 373, + "nodeType": "Block", + "src": "3751:143:0", + "statements": [ + { + "body": { + "id": 362, + "nodeType": "Block", + "src": "3816:43:0", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 356, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 350, + "name": "path", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 261, + "src": "3827:4:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 352, + "indexExpression": { + "argumentTypes": null, + "id": 351, + "name": "p", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 320, + "src": "3832:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3827:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 353, + "name": "path", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 261, + "src": "3838:4:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 355, + "indexExpression": { + "argumentTypes": null, + "id": 354, + "name": "q", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 332, + "src": "3843:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3838:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "3827:18:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 361, + "nodeType": "IfStatement", + "src": "3823:29:0", + "trueBody": { + "expression": { + "argumentTypes": null, + "id": 359, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 357, + "name": "p", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 320, + "src": "3847:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 358, + "name": "q", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 332, + "src": "3851:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3847:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 360, + "nodeType": "ExpressionStatement", + "src": "3847:5:0" + } + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 345, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 337, + "name": "q", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 332, + "src": "3781:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 344, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 338, + "name": "path", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 261, + "src": "3785:4:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 339, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3785:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 342, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 340, + "name": "p", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 320, + "src": "3800:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 341, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3804:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "3800:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 343, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "3799:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3785:21:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3781:25:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 363, + "initializationExpression": { + "assignments": [ + 332 + ], + "declarations": [ + { + "constant": false, + "id": 332, + "name": "q", + "nodeType": "VariableDeclaration", + "scope": 389, + "src": "3762:9:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 331, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3762:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 336, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 335, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 333, + "name": "p", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 320, + "src": "3774:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 334, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3778:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "3774:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3762:17:0" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 348, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 346, + "name": "q", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 332, + "src": "3808:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "32", + "id": 347, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3813:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "3808:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 349, + "nodeType": "ExpressionStatement", + "src": "3808:6:0" + }, + "nodeType": "ForStatement", + "src": "3757:102:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 371, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 364, + "name": "path", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 261, + "src": "3864:4:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 367, + "indexExpression": { + "argumentTypes": null, + "id": 366, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "3869:8:0", + "subExpression": { + "argumentTypes": null, + "id": 365, + "name": "length", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 316, + "src": "3869:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "3864:14:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 368, + "name": "path", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 261, + "src": "3881:4:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 370, + "indexExpression": { + "argumentTypes": null, + "id": 369, + "name": "p", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 320, + "src": "3886:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3881:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "3864:24:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 372, + "nodeType": "ExpressionStatement", + "src": "3864:24:0" + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 326, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 323, + "name": "p", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 320, + "src": "3726:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 324, + "name": "path", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 261, + "src": "3730:4:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 325, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3730:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3726:15:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 374, + "initializationExpression": { + "assignments": [ + 320 + ], + "declarations": [ + { + "constant": false, + "id": 320, + "name": "p", + "nodeType": "VariableDeclaration", + "scope": 389, + "src": "3711:9:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 319, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3711:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 322, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 321, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3723:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "3711:13:0" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 329, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 327, + "name": "p", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 320, + "src": "3743:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "31", + "id": 328, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3748:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "3743:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 330, + "nodeType": "ExpressionStatement", + "src": "3743:6:0" + }, + "nodeType": "ForStatement", + "src": "3706:188:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 376, + "name": "path", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 261, + "src": "3922:4:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + { + "argumentTypes": null, + "id": 377, + "name": "length", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 316, + "src": "3928:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 375, + "name": "getPartialArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 522, + "src": "3906:15:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_array$_t_address_$dyn_memory_ptr_$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$", + "typeString": "function (address[] memory,uint256) pure returns (address[] memory)" + } + }, + "id": 378, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3906:29:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "functionReturnParameters": 211, + "id": 379, + "nodeType": "Return", + "src": "3899:36:0" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 385, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3965:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 384, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "3951:13:0", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_$", + "typeString": "function (uint256) pure returns (address[] memory)" + }, + "typeName": { + "baseType": { + "id": 382, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3955:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 383, + "length": null, + "nodeType": "ArrayTypeName", + "src": "3955:9:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + } + }, + "id": 386, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3951:16:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory", + "typeString": "address[] memory" + } + }, + "functionReturnParameters": 211, + "id": 387, + "nodeType": "Return", + "src": "3944:23:0" + } + ] + }, + "documentation": "@dev merges two paths with a common suffix into one\n\t * @param _sourcePath address of the source path\n@param _targetPath address of the target path\n\t * @return merged path", + "id": 389, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getShortestPath", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 207, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 203, + "name": "_sourcePath", + "nodeType": "VariableDeclaration", + "scope": 389, + "src": "3159:28:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 201, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3159:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 202, + "length": null, + "nodeType": "ArrayTypeName", + "src": "3159:9:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 206, + "name": "_targetPath", + "nodeType": "VariableDeclaration", + "scope": 389, + "src": "3189:28:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 204, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3189:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 205, + "length": null, + "nodeType": "ArrayTypeName", + "src": "3189:9:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3158:60:0" + }, + "payable": false, + "returnParameters": { + "id": 211, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 210, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 389, + "src": "3241:9:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 208, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3241:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 209, + "length": null, + "nodeType": "ArrayTypeName", + "src": "3241:9:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3240:18:0" + }, + "scope": 523, + "src": "3134:837:0", + "stateMutability": "pure", + "superFunction": null, + "visibility": "private" + }, + { + "body": { + "id": 415, + "nodeType": "Block", + "src": "4174:85:0", + "statements": [ + { + "assignments": [ + 400 + ], + "declarations": [ + { + "constant": false, + "id": 400, + "name": "array", + "nodeType": "VariableDeclaration", + "scope": 416, + "src": "4178:22:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 398, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4178:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 399, + "length": null, + "nodeType": "ArrayTypeName", + "src": "4178:9:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 406, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "31", + "id": 404, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4217:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + } + ], + "id": 403, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "4203:13:0", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_$", + "typeString": "function (uint256) pure returns (address[] memory)" + }, + "typeName": { + "baseType": { + "id": 401, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4207:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 402, + "length": null, + "nodeType": "ArrayTypeName", + "src": "4207:9:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + } + }, + "id": 405, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4203:16:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory", + "typeString": "address[] memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4178:41:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 411, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 407, + "name": "array", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 400, + "src": "4223:5:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 409, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 408, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4229:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "4223:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 410, + "name": "_item", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 391, + "src": "4234:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "4223:16:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 412, + "nodeType": "ExpressionStatement", + "src": "4223:16:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 413, + "name": "array", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 400, + "src": "4250:5:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "functionReturnParameters": 396, + "id": 414, + "nodeType": "Return", + "src": "4243:12:0" + } + ] + }, + "documentation": "@dev creates a new array containing a single item\n\t * @param _item item\n\t * @return initial array", + "id": 416, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getInitialArray", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 392, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 391, + "name": "_item", + "nodeType": "VariableDeclaration", + "scope": 416, + "src": "4119:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 390, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4119:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4118:15:0" + }, + "payable": false, + "returnParameters": { + "id": 396, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 395, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 416, + "src": "4156:9:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 393, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4156:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 394, + "length": null, + "nodeType": "ArrayTypeName", + "src": "4156:9:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4155:18:0" + }, + "scope": 523, + "src": "4094:165:0", + "stateMutability": "pure", + "superFunction": null, + "visibility": "private" + }, + { + "body": { + "id": 478, + "nodeType": "Block", + "src": "4587:195:0", + "statements": [ + { + "assignments": [ + 432 + ], + "declarations": [ + { + "constant": false, + "id": 432, + "name": "array", + "nodeType": "VariableDeclaration", + "scope": 479, + "src": "4591:22:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 430, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4591:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 431, + "length": null, + "nodeType": "ArrayTypeName", + "src": "4591:9:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 441, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 439, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 436, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4630:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 437, + "name": "_array", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 423, + "src": "4634:6:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 438, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4634:13:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4630:17:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 435, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "4616:13:0", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_$", + "typeString": "function (uint256) pure returns (address[] memory)" + }, + "typeName": { + "baseType": { + "id": 433, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4620:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 434, + "length": null, + "nodeType": "ArrayTypeName", + "src": "4620:9:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + } + }, + "id": 440, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4616:32:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory", + "typeString": "address[] memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4591:57:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 446, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 442, + "name": "array", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 432, + "src": "4652:5:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 444, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 443, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4658:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "4652:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 445, + "name": "_item0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 418, + "src": "4663:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "4652:17:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 447, + "nodeType": "ExpressionStatement", + "src": "4652:17:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 452, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 448, + "name": "array", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 432, + "src": "4673:5:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 450, + "indexExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 449, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4679:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "4673:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 451, + "name": "_item1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 420, + "src": "4684:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "4673:17:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 453, + "nodeType": "ExpressionStatement", + "src": "4673:17:0" + }, + { + "body": { + "expression": { + "argumentTypes": null, + "id": 473, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 465, + "name": "array", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 432, + "src": "4738:5:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 469, + "indexExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 468, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 466, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4744:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "id": 467, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 455, + "src": "4748:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4744:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "4738:12:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 470, + "name": "_array", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 423, + "src": "4753:6:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 472, + "indexExpression": { + "argumentTypes": null, + "id": 471, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 455, + "src": "4760:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4753:9:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "4738:24:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 474, + "nodeType": "ExpressionStatement", + "src": "4738:24:0" + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 461, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 458, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 455, + "src": "4714:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 459, + "name": "_array", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 423, + "src": "4718:6:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 460, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4718:13:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4714:17:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 475, + "initializationExpression": { + "assignments": [ + 455 + ], + "declarations": [ + { + "constant": false, + "id": 455, + "name": "i", + "nodeType": "VariableDeclaration", + "scope": 479, + "src": "4699:9:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 454, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4699:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 457, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 456, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4711:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "4699:13:0" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 463, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "4733:3:0", + "subExpression": { + "argumentTypes": null, + "id": 462, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 455, + "src": "4733:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 464, + "nodeType": "ExpressionStatement", + "src": "4733:3:0" + }, + "nodeType": "ForStatement", + "src": "4694:68:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 476, + "name": "array", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 432, + "src": "4773:5:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "functionReturnParameters": 428, + "id": 477, + "nodeType": "Return", + "src": "4766:12:0" + } + ] + }, + "documentation": "@dev prepends two items to the beginning of an array\n\t * @param _item0 first item\n@param _item1 second item\n@param _array initial array\n\t * @return extended array", + "id": 479, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getExtendedArray", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 424, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 418, + "name": "_item0", + "nodeType": "VariableDeclaration", + "scope": 479, + "src": "4484:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 417, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4484:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 420, + "name": "_item1", + "nodeType": "VariableDeclaration", + "scope": 479, + "src": "4502:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 419, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4502:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 423, + "name": "_array", + "nodeType": "VariableDeclaration", + "scope": 479, + "src": "4520:23:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 421, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4520:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 422, + "length": null, + "nodeType": "ArrayTypeName", + "src": "4520:9:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4480:66:0" + }, + "payable": false, + "returnParameters": { + "id": 428, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 427, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 479, + "src": "4569:9:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 425, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4569:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 426, + "length": null, + "nodeType": "ArrayTypeName", + "src": "4569:9:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4568:18:0" + }, + "scope": 523, + "src": "4455:327:0", + "stateMutability": "pure", + "superFunction": null, + "visibility": "private" + }, + { + "body": { + "id": 521, + "nodeType": "Block", + "src": "5045:133:0", + "statements": [ + { + "assignments": [ + 493 + ], + "declarations": [ + { + "constant": false, + "id": 493, + "name": "array", + "nodeType": "VariableDeclaration", + "scope": 522, + "src": "5049:22:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 491, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5049:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 492, + "length": null, + "nodeType": "ArrayTypeName", + "src": "5049:9:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 499, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 497, + "name": "_length", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 484, + "src": "5088:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 496, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "5074:13:0", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_$", + "typeString": "function (uint256) pure returns (address[] memory)" + }, + "typeName": { + "baseType": { + "id": 494, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5078:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 495, + "length": null, + "nodeType": "ArrayTypeName", + "src": "5078:9:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + } + }, + "id": 498, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5074:22:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory", + "typeString": "address[] memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5049:47:0" + }, + { + "body": { + "expression": { + "argumentTypes": null, + "id": 516, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 510, + "name": "array", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 493, + "src": "5138:5:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 512, + "indexExpression": { + "argumentTypes": null, + "id": 511, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 501, + "src": "5144:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "5138:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 513, + "name": "_array", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 482, + "src": "5149:6:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 515, + "indexExpression": { + "argumentTypes": null, + "id": 514, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 501, + "src": "5156:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5149:9:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "5138:20:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 517, + "nodeType": "ExpressionStatement", + "src": "5138:20:0" + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 506, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 504, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 501, + "src": "5120:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 505, + "name": "_length", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 484, + "src": "5124:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5120:11:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 518, + "initializationExpression": { + "assignments": [ + 501 + ], + "declarations": [ + { + "constant": false, + "id": 501, + "name": "i", + "nodeType": "VariableDeclaration", + "scope": 522, + "src": "5105:9:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 500, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5105:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 503, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 502, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5117:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "5105:13:0" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 508, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "5133:3:0", + "subExpression": { + "argumentTypes": null, + "id": 507, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 501, + "src": "5133:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 509, + "nodeType": "ExpressionStatement", + "src": "5133:3:0" + }, + "nodeType": "ForStatement", + "src": "5100:58:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 519, + "name": "array", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 493, + "src": "5169:5:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "functionReturnParameters": 489, + "id": 520, + "nodeType": "Return", + "src": "5162:12:0" + } + ] + }, + "documentation": "@dev extracts the prefix of a given array\n\t * @param _array given array\n@param _length prefix length\n\t * @return partial array", + "id": 522, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getPartialArray", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 485, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 482, + "name": "_array", + "nodeType": "VariableDeclaration", + "scope": 522, + "src": "4963:23:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 480, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4963:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 481, + "length": null, + "nodeType": "ArrayTypeName", + "src": "4963:9:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 484, + "name": "_length", + "nodeType": "VariableDeclaration", + "scope": 522, + "src": "4988:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 483, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4988:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4962:42:0" + }, + "payable": false, + "returnParameters": { + "id": 489, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 488, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 522, + "src": "5027:9:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 486, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5027:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 487, + "length": null, + "nodeType": "ArrayTypeName", + "src": "5027:9:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5026:18:0" + }, + "scope": 523, + "src": "4938:240:0", + "stateMutability": "pure", + "superFunction": null, + "visibility": "private" + } + ], + "scope": 524, + "src": "558:4622:0" + } + ], + "src": "0:5181:0" + }, + "id": 0 + }, + "solidity/contracts/IConversionPathFinder.sol": { + "ast": { + "absolutePath": "solidity/contracts/IConversionPathFinder.sol", + "exportedSymbols": { + "IConversionPathFinder": [ + 537 + ] + }, + "id": 538, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 525, + "literals": [ + "solidity", + "0.4", + ".26" + ], + "nodeType": "PragmaDirective", + "src": "0:23:1" + }, + { + "absolutePath": "solidity/contracts/token/interfaces/IERC20Token.sol", + "file": "./token/interfaces/IERC20Token.sol", + "id": 526, + "nodeType": "ImportDirective", + "scope": 538, + "sourceUnit": 20241, + "src": "24:44:1", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": false, + "id": 537, + "linearizedBaseContracts": [ + 537 + ], + "name": "IConversionPathFinder", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": null, + "id": 536, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "findPath", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 531, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 528, + "name": "_sourceToken", + "nodeType": "VariableDeclaration", + "scope": 536, + "src": "165:20:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 527, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "165:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 530, + "name": "_targetToken", + "nodeType": "VariableDeclaration", + "scope": 536, + "src": "187:20:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 529, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "187:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "164:44:1" + }, + "payable": false, + "returnParameters": { + "id": 535, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 534, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 536, + "src": "230:9:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 532, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "230:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 533, + "length": null, + "nodeType": "ArrayTypeName", + "src": "230:9:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "229:18:1" + }, + "scope": 537, + "src": "147:101:1", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 538, + "src": "113:137:1" + } + ], + "src": "0:251:1" + }, + "id": 1 + }, + "solidity/contracts/ISovrynSwapNetwork.sol": { + "ast": { + "absolutePath": "solidity/contracts/ISovrynSwapNetwork.sol", + "exportedSymbols": { + "ISovrynSwapNetwork": [ + 661 + ] + }, + "id": 662, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 539, + "literals": [ + "solidity", + "0.4", + ".26" + ], + "nodeType": "PragmaDirective", + "src": "0:23:2" + }, + { + "absolutePath": "solidity/contracts/token/interfaces/IERC20Token.sol", + "file": "./token/interfaces/IERC20Token.sol", + "id": 540, + "nodeType": "ImportDirective", + "scope": 662, + "sourceUnit": 20241, + "src": "24:44:2", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": false, + "id": 661, + "linearizedBaseContracts": [ + 661 + ], + "name": "ISovrynSwapNetwork", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": null, + "id": 556, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "convert2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 552, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 543, + "name": "_path", + "nodeType": "VariableDeclaration", + "scope": 556, + "src": "161:19:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", + "typeString": "contract IERC20Token[]" + }, + "typeName": { + "baseType": { + "contractScope": null, + "id": 541, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "161:11:2", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "id": 542, + "length": null, + "nodeType": "ArrayTypeName", + "src": "161:13:2", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_storage_ptr", + "typeString": "contract IERC20Token[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 545, + "name": "_amount", + "nodeType": "VariableDeclaration", + "scope": 556, + "src": "184:15:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 544, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "184:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 547, + "name": "_minReturn", + "nodeType": "VariableDeclaration", + "scope": 556, + "src": "203:18:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 546, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "203:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 549, + "name": "_affiliateAccount", + "nodeType": "VariableDeclaration", + "scope": 556, + "src": "225:25:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 548, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "225:7:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 551, + "name": "_affiliateFee", + "nodeType": "VariableDeclaration", + "scope": 556, + "src": "254:21:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 550, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "254:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "157:121:2" + }, + "payable": true, + "returnParameters": { + "id": 555, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 554, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 556, + "src": "303:7:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 553, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "303:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "302:9:2" + }, + "scope": 661, + "src": "140:172:2", + "stateMutability": "payable", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 572, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "claimAndConvert2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 568, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 559, + "name": "_path", + "nodeType": "VariableDeclaration", + "scope": 572, + "src": "344:19:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", + "typeString": "contract IERC20Token[]" + }, + "typeName": { + "baseType": { + "contractScope": null, + "id": 557, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "344:11:2", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "id": 558, + "length": null, + "nodeType": "ArrayTypeName", + "src": "344:13:2", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_storage_ptr", + "typeString": "contract IERC20Token[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 561, + "name": "_amount", + "nodeType": "VariableDeclaration", + "scope": 572, + "src": "367:15:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 560, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "367:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 563, + "name": "_minReturn", + "nodeType": "VariableDeclaration", + "scope": 572, + "src": "386:18:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 562, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "386:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 565, + "name": "_affiliateAccount", + "nodeType": "VariableDeclaration", + "scope": 572, + "src": "408:25:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 564, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "408:7:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 567, + "name": "_affiliateFee", + "nodeType": "VariableDeclaration", + "scope": 572, + "src": "437:21:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 566, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "437:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "340:121:2" + }, + "payable": false, + "returnParameters": { + "id": 571, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 570, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 572, + "src": "478:7:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 569, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "478:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "477:9:2" + }, + "scope": 661, + "src": "315:172:2", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 590, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "convertFor2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 586, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 575, + "name": "_path", + "nodeType": "VariableDeclaration", + "scope": 590, + "src": "514:19:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", + "typeString": "contract IERC20Token[]" + }, + "typeName": { + "baseType": { + "contractScope": null, + "id": 573, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "514:11:2", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "id": 574, + "length": null, + "nodeType": "ArrayTypeName", + "src": "514:13:2", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_storage_ptr", + "typeString": "contract IERC20Token[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 577, + "name": "_amount", + "nodeType": "VariableDeclaration", + "scope": 590, + "src": "537:15:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 576, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "537:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 579, + "name": "_minReturn", + "nodeType": "VariableDeclaration", + "scope": 590, + "src": "556:18:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 578, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "556:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 581, + "name": "_for", + "nodeType": "VariableDeclaration", + "scope": 590, + "src": "578:12:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 580, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "578:7:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 583, + "name": "_affiliateAccount", + "nodeType": "VariableDeclaration", + "scope": 590, + "src": "594:25:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 582, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "594:7:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 585, + "name": "_affiliateFee", + "nodeType": "VariableDeclaration", + "scope": 590, + "src": "623:21:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 584, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "623:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "510:137:2" + }, + "payable": true, + "returnParameters": { + "id": 589, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 588, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 590, + "src": "672:7:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 587, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "672:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "671:9:2" + }, + "scope": 661, + "src": "490:191:2", + "stateMutability": "payable", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 608, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "claimAndConvertFor2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 604, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 593, + "name": "_path", + "nodeType": "VariableDeclaration", + "scope": 608, + "src": "716:19:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", + "typeString": "contract IERC20Token[]" + }, + "typeName": { + "baseType": { + "contractScope": null, + "id": 591, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "716:11:2", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "id": 592, + "length": null, + "nodeType": "ArrayTypeName", + "src": "716:13:2", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_storage_ptr", + "typeString": "contract IERC20Token[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 595, + "name": "_amount", + "nodeType": "VariableDeclaration", + "scope": 608, + "src": "739:15:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 594, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "739:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 597, + "name": "_minReturn", + "nodeType": "VariableDeclaration", + "scope": 608, + "src": "758:18:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 596, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "758:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 599, + "name": "_for", + "nodeType": "VariableDeclaration", + "scope": 608, + "src": "780:12:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 598, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "780:7:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 601, + "name": "_affiliateAccount", + "nodeType": "VariableDeclaration", + "scope": 608, + "src": "796:25:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 600, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "796:7:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 603, + "name": "_affiliateFee", + "nodeType": "VariableDeclaration", + "scope": 608, + "src": "825:21:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 602, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "825:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "712:137:2" + }, + "payable": false, + "returnParameters": { + "id": 607, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 606, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 608, + "src": "866:7:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 605, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "866:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "865:9:2" + }, + "scope": 661, + "src": "684:191:2", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 620, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "convert", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 616, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 611, + "name": "_path", + "nodeType": "VariableDeclaration", + "scope": 620, + "src": "937:19:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", + "typeString": "contract IERC20Token[]" + }, + "typeName": { + "baseType": { + "contractScope": null, + "id": 609, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "937:11:2", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "id": 610, + "length": null, + "nodeType": "ArrayTypeName", + "src": "937:13:2", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_storage_ptr", + "typeString": "contract IERC20Token[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 613, + "name": "_amount", + "nodeType": "VariableDeclaration", + "scope": 620, + "src": "960:15:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 612, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "960:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 615, + "name": "_minReturn", + "nodeType": "VariableDeclaration", + "scope": 620, + "src": "979:18:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 614, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "979:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "933:67:2" + }, + "payable": true, + "returnParameters": { + "id": 619, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 618, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 620, + "src": "1025:7:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 617, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1025:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1024:9:2" + }, + "scope": 661, + "src": "917:117:2", + "stateMutability": "payable", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 632, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "claimAndConvert", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 628, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 623, + "name": "_path", + "nodeType": "VariableDeclaration", + "scope": 632, + "src": "1104:19:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", + "typeString": "contract IERC20Token[]" + }, + "typeName": { + "baseType": { + "contractScope": null, + "id": 621, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "1104:11:2", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "id": 622, + "length": null, + "nodeType": "ArrayTypeName", + "src": "1104:13:2", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_storage_ptr", + "typeString": "contract IERC20Token[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 625, + "name": "_amount", + "nodeType": "VariableDeclaration", + "scope": 632, + "src": "1127:15:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 624, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1127:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 627, + "name": "_minReturn", + "nodeType": "VariableDeclaration", + "scope": 632, + "src": "1146:18:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 626, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1146:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1100:67:2" + }, + "payable": false, + "returnParameters": { + "id": 631, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 630, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 632, + "src": "1184:7:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 629, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1184:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1183:9:2" + }, + "scope": 661, + "src": "1076:117:2", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 646, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "convertFor", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 642, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 635, + "name": "_path", + "nodeType": "VariableDeclaration", + "scope": 646, + "src": "1258:19:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", + "typeString": "contract IERC20Token[]" + }, + "typeName": { + "baseType": { + "contractScope": null, + "id": 633, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "1258:11:2", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "id": 634, + "length": null, + "nodeType": "ArrayTypeName", + "src": "1258:13:2", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_storage_ptr", + "typeString": "contract IERC20Token[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 637, + "name": "_amount", + "nodeType": "VariableDeclaration", + "scope": 646, + "src": "1281:15:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 636, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1281:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 639, + "name": "_minReturn", + "nodeType": "VariableDeclaration", + "scope": 646, + "src": "1300:18:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 638, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1300:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 641, + "name": "_for", + "nodeType": "VariableDeclaration", + "scope": 646, + "src": "1322:12:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 640, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1322:7:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1254:83:2" + }, + "payable": true, + "returnParameters": { + "id": 645, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 644, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 646, + "src": "1362:7:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 643, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1362:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1361:9:2" + }, + "scope": 661, + "src": "1235:136:2", + "stateMutability": "payable", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 660, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "claimAndConvertFor", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 656, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 649, + "name": "_path", + "nodeType": "VariableDeclaration", + "scope": 660, + "src": "1444:19:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", + "typeString": "contract IERC20Token[]" + }, + "typeName": { + "baseType": { + "contractScope": null, + "id": 647, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "1444:11:2", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "id": 648, + "length": null, + "nodeType": "ArrayTypeName", + "src": "1444:13:2", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_storage_ptr", + "typeString": "contract IERC20Token[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 651, + "name": "_amount", + "nodeType": "VariableDeclaration", + "scope": 660, + "src": "1467:15:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 650, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1467:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 653, + "name": "_minReturn", + "nodeType": "VariableDeclaration", + "scope": 660, + "src": "1486:18:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 652, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1486:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 655, + "name": "_for", + "nodeType": "VariableDeclaration", + "scope": 660, + "src": "1508:12:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 654, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1508:7:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1440:83:2" + }, + "payable": false, + "returnParameters": { + "id": 659, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 658, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 660, + "src": "1540:7:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 657, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1540:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1539:9:2" + }, + "scope": 661, + "src": "1413:136:2", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 662, + "src": "109:1442:2" + } + ], + "src": "0:1552:2" + }, + "id": 2 + }, + "solidity/contracts/SovrynSwapNetwork.sol": { + "ast": { + "absolutePath": "solidity/contracts/SovrynSwapNetwork.sol", + "exportedSymbols": { + "ILegacyConverter": [ + 689 + ], + "SovrynSwapNetwork": [ + 2459 + ] + }, + "id": 2460, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 663, + "literals": [ + "solidity", + "0.4", + ".26" + ], + "nodeType": "PragmaDirective", + "src": "0:23:3" + }, + { + "absolutePath": "solidity/contracts/ISovrynSwapNetwork.sol", + "file": "./ISovrynSwapNetwork.sol", + "id": 664, + "nodeType": "ImportDirective", + "scope": 2460, + "sourceUnit": 662, + "src": "24:34:3", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "solidity/contracts/IConversionPathFinder.sol", + "file": "./IConversionPathFinder.sol", + "id": 665, + "nodeType": "ImportDirective", + "scope": 2460, + "sourceUnit": 538, + "src": "59:37:3", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "solidity/contracts/converter/interfaces/IConverter.sol", + "file": "./converter/interfaces/IConverter.sol", + "id": 666, + "nodeType": "ImportDirective", + "scope": 2460, + "sourceUnit": 11818, + "src": "97:47:3", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "solidity/contracts/converter/interfaces/IConverterAnchor.sol", + "file": "./converter/interfaces/IConverterAnchor.sol", + "id": 667, + "nodeType": "ImportDirective", + "scope": 2460, + "sourceUnit": 11827, + "src": "145:53:3", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "solidity/contracts/converter/interfaces/ISovrynSwapFormula.sol", + "file": "./converter/interfaces/ISovrynSwapFormula.sol", + "id": 668, + "nodeType": "ImportDirective", + "scope": 2460, + "sourceUnit": 12241, + "src": "199:55:3", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "solidity/contracts/utility/ContractRegistryClient.sol", + "file": "./utility/ContractRegistryClient.sol", + "id": 669, + "nodeType": "ImportDirective", + "scope": 2460, + "sourceUnit": 20933, + "src": "255:46:3", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "solidity/contracts/utility/ReentrancyGuard.sol", + "file": "./utility/ReentrancyGuard.sol", + "id": 670, + "nodeType": "ImportDirective", + "scope": 2460, + "sourceUnit": 21711, + "src": "302:39:3", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "solidity/contracts/utility/TokenHolder.sol", + "file": "./utility/TokenHolder.sol", + "id": 671, + "nodeType": "ImportDirective", + "scope": 2460, + "sourceUnit": 21977, + "src": "342:35:3", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "solidity/contracts/utility/SafeMath.sol", + "file": "./utility/SafeMath.sol", + "id": 672, + "nodeType": "ImportDirective", + "scope": 2460, + "sourceUnit": 21818, + "src": "378:32:3", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "solidity/contracts/token/interfaces/IEtherToken.sol", + "file": "./token/interfaces/IEtherToken.sol", + "id": 673, + "nodeType": "ImportDirective", + "scope": 2460, + "sourceUnit": 20267, + "src": "411:44:3", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "solidity/contracts/token/interfaces/ISmartToken.sol", + "file": "./token/interfaces/ISmartToken.sol", + "id": 674, + "nodeType": "ImportDirective", + "scope": 2460, + "sourceUnit": 20296, + "src": "456:44:3", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "solidity/contracts/sovrynswapx/interfaces/ISovrynSwapX.sol", + "file": "./sovrynswapx/interfaces/ISovrynSwapX.sol", + "id": 675, + "nodeType": "ImportDirective", + "scope": 2460, + "sourceUnit": 19467, + "src": "501:51:3", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": false, + "id": 689, + "linearizedBaseContracts": [ + 689 + ], + "name": "ILegacyConverter", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": null, + "id": 688, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "change", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 684, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 677, + "name": "_sourceToken", + "nodeType": "VariableDeclaration", + "scope": 688, + "src": "662:24:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + "typeName": { + "contractScope": null, + "id": 676, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "662:11:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 679, + "name": "_targetToken", + "nodeType": "VariableDeclaration", + "scope": 688, + "src": "690:24:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + "typeName": { + "contractScope": null, + "id": 678, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "690:11:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 681, + "name": "_amount", + "nodeType": "VariableDeclaration", + "scope": 688, + "src": "718:15:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 680, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "718:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 683, + "name": "_minReturn", + "nodeType": "VariableDeclaration", + "scope": 688, + "src": "737:18:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 682, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "737:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "658:100:3" + }, + "payable": false, + "returnParameters": { + "id": 687, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 686, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 688, + "src": "775:7:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 685, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "775:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "774:9:3" + }, + "scope": 689, + "src": "643:141:3", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 2460, + "src": "614:172:3" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 690, + "name": "ISovrynSwapNetwork", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 661, + "src": "1949:18:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISovrynSwapNetwork_$661", + "typeString": "contract ISovrynSwapNetwork" + } + }, + "id": 691, + "nodeType": "InheritanceSpecifier", + "src": "1949:18:3" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 692, + "name": "TokenHolder", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 21976, + "src": "1969:11:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_TokenHolder_$21976", + "typeString": "contract TokenHolder" + } + }, + "id": 693, + "nodeType": "InheritanceSpecifier", + "src": "1969:11:3" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 694, + "name": "ContractRegistryClient", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20932, + "src": "1982:22:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ContractRegistryClient_$20932", + "typeString": "contract ContractRegistryClient" + } + }, + "id": 695, + "nodeType": "InheritanceSpecifier", + "src": "1982:22:3" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 696, + "name": "ReentrancyGuard", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 21710, + "src": "2006:15:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ReentrancyGuard_$21710", + "typeString": "contract ReentrancyGuard" + } + }, + "id": 697, + "nodeType": "InheritanceSpecifier", + "src": "2006:15:3" + } + ], + "contractDependencies": [ + 661, + 20932, + 21324, + 21710, + 21933, + 21976, + 22052, + 22247, + 22313 + ], + "contractKind": "contract", + "documentation": "@dev The SovrynSwapNetwork contract is the main entry point for SovrynSwap token conversions.\nIt also allows for the conversion of any token in the SovrynSwap Network to any other token in a single\ntransaction by providing a conversion path.\n * A note on Conversion Path: Conversion path is a data structure that is used when converting a token\nto another token in the SovrynSwap Network, when the conversion cannot necessarily be done by a single\nconverter and might require multiple 'hops'.\nThe path defines which converters should be used and what kind of conversion should be done in each step.\n * The path format doesn't include complex structure; instead, it is represented by a single array\nin which each 'hop' is represented by a 2-tuple - converter anchor & target token.\nIn addition, the first element is always the source token.\nThe converter anchor is only used as a pointer to a converter (since converter addresses are more\nlikely to change as opposed to anchor addresses).\n * Format:\n[source token, converter anchor, target token, converter anchor, target token...]", + "fullyImplemented": true, + "id": 2459, + "linearizedBaseContracts": [ + 2459, + 21710, + 20932, + 21976, + 22052, + 21324, + 21933, + 22313, + 22247, + 661 + ], + "name": "SovrynSwapNetwork", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 700, + "libraryName": { + "contractScope": null, + "id": 698, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 21817, + "src": "2031:8:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$21817", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "2025:27:3", + "typeName": { + "id": 699, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2044:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "constant": true, + "id": 703, + "name": "CONVERSION_FEE_RESOLUTION", + "nodeType": "VariableDeclaration", + "scope": 2459, + "src": "2055:60:3", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 701, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2055:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "31303030303030", + "id": 702, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2108:7:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000_by_1", + "typeString": "int_const 1000000" + }, + "value": "1000000" + }, + "visibility": "private" + }, + { + "constant": true, + "id": 706, + "name": "AFFILIATE_FEE_RESOLUTION", + "nodeType": "VariableDeclaration", + "scope": 2459, + "src": "2118:59:3", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 704, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2118:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "31303030303030", + "id": 705, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2170:7:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000_by_1", + "typeString": "int_const 1000000" + }, + "value": "1000000" + }, + "visibility": "private" + }, + { + "constant": true, + "id": 709, + "name": "ETH_RESERVE_ADDRESS", + "nodeType": "VariableDeclaration", + "scope": 2459, + "src": "2180:89:3", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 707, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2180:7:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "307845656565654565656545654565654565456545656545454565656565456565656565656545456545", + "id": 708, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2227:42:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "value": "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE" + }, + "visibility": "private" + }, + { + "canonicalName": "SovrynSwapNetwork.ConversionStep", + "id": 724, + "members": [ + { + "constant": false, + "id": 711, + "name": "converter", + "nodeType": "VariableDeclaration", + "scope": 724, + "src": "2299:20:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + }, + "typeName": { + "contractScope": null, + "id": 710, + "name": "IConverter", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11817, + "src": "2299:10:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 713, + "name": "anchor", + "nodeType": "VariableDeclaration", + "scope": 724, + "src": "2323:23:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + }, + "typeName": { + "contractScope": null, + "id": 712, + "name": "IConverterAnchor", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11826, + "src": "2323:16:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 715, + "name": "sourceToken", + "nodeType": "VariableDeclaration", + "scope": 724, + "src": "2350:23:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + "typeName": { + "contractScope": null, + "id": 714, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "2350:11:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 717, + "name": "targetToken", + "nodeType": "VariableDeclaration", + "scope": 724, + "src": "2377:23:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + "typeName": { + "contractScope": null, + "id": 716, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "2377:11:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 719, + "name": "beneficiary", + "nodeType": "VariableDeclaration", + "scope": 724, + "src": "2404:19:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 718, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2404:7:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 721, + "name": "isV28OrHigherConverter", + "nodeType": "VariableDeclaration", + "scope": 724, + "src": "2427:27:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 720, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2427:4:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 723, + "name": "processAffiliateFee", + "nodeType": "VariableDeclaration", + "scope": 724, + "src": "2458:24:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 722, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2458:4:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "name": "ConversionStep", + "nodeType": "StructDefinition", + "scope": 2459, + "src": "2273:213:3", + "visibility": "public" + }, + { + "constant": false, + "id": 727, + "name": "maxAffiliateFee", + "nodeType": "VariableDeclaration", + "scope": 2459, + "src": "2489:38:3", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 725, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2489:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "3330303030", + "id": 726, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2522:5:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_30000_by_1", + "typeString": "int_const 30000" + }, + "value": "30000" + }, + "visibility": "public" + }, + { + "constant": false, + "id": 731, + "name": "etherTokens", + "nodeType": "VariableDeclaration", + "scope": 2459, + "src": "2556:43:3", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + }, + "typeName": { + "id": 730, + "keyType": { + "id": 728, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2564:7:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "2556:24:3", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + }, + "valueType": { + "id": 729, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2575:4:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + }, + "value": null, + "visibility": "public" + }, + { + "anonymous": false, + "documentation": "@dev triggered when a conversion between two tokens occurs\n\t * @param _smartToken anchor governed by the converter\n@param _fromToken source ERC20 token\n@param _toToken target ERC20 token\n@param _fromAmount amount converted, in the source token\n@param _toAmount amount returned, minus conversion fee\n@param _trader wallet that initiated the trade", + "id": 745, + "name": "Conversion", + "nodeType": "EventDefinition", + "parameters": { + "id": 744, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 733, + "indexed": true, + "name": "_smartToken", + "nodeType": "VariableDeclaration", + "scope": 745, + "src": "3061:27:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 732, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3061:7:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 735, + "indexed": true, + "name": "_fromToken", + "nodeType": "VariableDeclaration", + "scope": 745, + "src": "3092:26:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 734, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3092:7:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 737, + "indexed": true, + "name": "_toToken", + "nodeType": "VariableDeclaration", + "scope": 745, + "src": "3122:24:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 736, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3122:7:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 739, + "indexed": false, + "name": "_fromAmount", + "nodeType": "VariableDeclaration", + "scope": 745, + "src": "3150:19:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 738, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3150:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 741, + "indexed": false, + "name": "_toAmount", + "nodeType": "VariableDeclaration", + "scope": 745, + "src": "3173:17:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 740, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3173:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 743, + "indexed": false, + "name": "_trader", + "nodeType": "VariableDeclaration", + "scope": 745, + "src": "3194:15:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 742, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3194:7:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3057:155:3" + }, + "src": "3041:172:3" + }, + { + "body": { + "id": 759, + "nodeType": "Block", + "src": "3430:47:3", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 757, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 753, + "name": "etherTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 731, + "src": "3434:11:3", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 755, + "indexExpression": { + "argumentTypes": null, + "id": 754, + "name": "ETH_RESERVE_ADDRESS", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 709, + "src": "3446:19:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "3434:32:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 756, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3469:4:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "3434:39:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 758, + "nodeType": "ExpressionStatement", + "src": "3434:39:3" + } + ] + }, + "documentation": "@dev initializes a new SovrynSwapNetwork instance\n\t * @param _registry address of a contract registry contract", + "id": 760, + "implemented": true, + "isConstructor": true, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 750, + "name": "_registry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 747, + "src": "3419:9:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IContractRegistry_$22220", + "typeString": "contract IContractRegistry" + } + } + ], + "id": 751, + "modifierName": { + "argumentTypes": null, + "id": 749, + "name": "ContractRegistryClient", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20932, + "src": "3396:22:3", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ContractRegistryClient_$20932_$", + "typeString": "type(contract ContractRegistryClient)" + } + }, + "nodeType": "ModifierInvocation", + "src": "3396:33:3" + } + ], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 748, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 747, + "name": "_registry", + "nodeType": "VariableDeclaration", + "scope": 760, + "src": "3360:27:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IContractRegistry_$22220", + "typeString": "contract IContractRegistry" + }, + "typeName": { + "contractScope": null, + "id": 746, + "name": "IContractRegistry", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 22220, + "src": "3360:17:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IContractRegistry_$22220", + "typeString": "contract IContractRegistry" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3359:29:3" + }, + "payable": false, + "returnParameters": { + "id": 752, + "nodeType": "ParameterList", + "parameters": [], + "src": "3430:0:3" + }, + "scope": 2459, + "src": "3348:129:3", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 778, + "nodeType": "Block", + "src": "3679:128:3", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 770, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 768, + "name": "_maxAffiliateFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 762, + "src": "3691:16:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "id": 769, + "name": "AFFILIATE_FEE_RESOLUTION", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 706, + "src": "3711:24:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3691:44:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4552525f494e56414c49445f414646494c494154455f464545", + "id": 771, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3737:27:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_5421a6ae0116cbc310697cd7899b77d6a7bc1fb10cd896c84c63fd20f8fbd382", + "typeString": "literal_string \"ERR_INVALID_AFFILIATE_FEE\"" + }, + "value": "ERR_INVALID_AFFILIATE_FEE" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_5421a6ae0116cbc310697cd7899b77d6a7bc1fb10cd896c84c63fd20f8fbd382", + "typeString": "literal_string \"ERR_INVALID_AFFILIATE_FEE\"" + } + ], + "id": 767, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 22341, + 22342 + ], + "referencedDeclaration": 22342, + "src": "3683:7:3", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 772, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3683:82:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 773, + "nodeType": "ExpressionStatement", + "src": "3683:82:3" + }, + { + "expression": { + "argumentTypes": null, + "id": 776, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 774, + "name": "maxAffiliateFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 727, + "src": "3769:15:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 775, + "name": "_maxAffiliateFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 762, + "src": "3787:16:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3769:34:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 777, + "nodeType": "ExpressionStatement", + "src": "3769:34:3" + } + ] + }, + "documentation": "@dev allows the owner to update the maximum affiliate-fee\n\t * @param _maxAffiliateFee maximum affiliate-fee", + "id": 779, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 765, + "modifierName": { + "argumentTypes": null, + "id": 764, + "name": "ownerOnly", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21265, + "src": "3669:9:3", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "3669:9:3" + } + ], + "name": "setMaxAffiliateFee", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 763, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 762, + "name": "_maxAffiliateFee", + "nodeType": "VariableDeclaration", + "scope": 779, + "src": "3636:24:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 761, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3636:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3635:26:3" + }, + "payable": false, + "returnParameters": { + "id": 766, + "nodeType": "ParameterList", + "parameters": [], + "src": "3679:0:3" + }, + "scope": 2459, + "src": "3608:199:3", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 800, + "nodeType": "Block", + "src": "4119:39:3", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 798, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 794, + "name": "etherTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 731, + "src": "4123:11:3", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 796, + "indexExpression": { + "argumentTypes": null, + "id": 795, + "name": "_token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 781, + "src": "4135:6:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IEtherToken_$20266", + "typeString": "contract IEtherToken" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "4123:19:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 797, + "name": "_register", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 783, + "src": "4145:9:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "4123:31:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 799, + "nodeType": "ExpressionStatement", + "src": "4123:31:3" + } + ] + }, + "documentation": "@dev allows the owner to register/unregister ether tokens\n\t * @param _token ether token contract address\n@param _register true to register, false to unregister", + "id": 801, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 786, + "modifierName": { + "argumentTypes": null, + "id": 785, + "name": "ownerOnly", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21265, + "src": "4072:9:3", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "4072:9:3" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 788, + "name": "_token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 781, + "src": "4095:6:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IEtherToken_$20266", + "typeString": "contract IEtherToken" + } + } + ], + "id": 789, + "modifierName": { + "argumentTypes": null, + "id": 787, + "name": "validAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22011, + "src": "4082:12:3", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_address_$", + "typeString": "modifier (address)" + } + }, + "nodeType": "ModifierInvocation", + "src": "4082:20:3" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 791, + "name": "_token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 781, + "src": "4111:6:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IEtherToken_$20266", + "typeString": "contract IEtherToken" + } + } + ], + "id": 792, + "modifierName": { + "argumentTypes": null, + "id": 790, + "name": "notThis", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22036, + "src": "4103:7:3", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_address_$", + "typeString": "modifier (address)" + } + }, + "nodeType": "ModifierInvocation", + "src": "4103:15:3" + } + ], + "name": "registerEtherToken", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 784, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 781, + "name": "_token", + "nodeType": "VariableDeclaration", + "scope": 801, + "src": "4029:18:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IEtherToken_$20266", + "typeString": "contract IEtherToken" + }, + "typeName": { + "contractScope": null, + "id": 780, + "name": "IEtherToken", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20266, + "src": "4029:11:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IEtherToken_$20266", + "typeString": "contract IEtherToken" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 783, + "name": "_register", + "nodeType": "VariableDeclaration", + "scope": 801, + "src": "4049:14:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 782, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4049:4:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4028:36:3" + }, + "payable": false, + "returnParameters": { + "id": 793, + "nodeType": "ParameterList", + "parameters": [], + "src": "4119:0:3" + }, + "scope": 2459, + "src": "4001:157:3", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 825, + "nodeType": "Block", + "src": "4601:157:3", + "statements": [ + { + "assignments": [ + 812 + ], + "declarations": [ + { + "constant": false, + "id": 812, + "name": "pathFinder", + "nodeType": "VariableDeclaration", + "scope": 826, + "src": "4605:32:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConversionPathFinder_$537", + "typeString": "contract IConversionPathFinder" + }, + "typeName": { + "contractScope": null, + "id": 811, + "name": "IConversionPathFinder", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 537, + "src": "4605:21:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConversionPathFinder_$537", + "typeString": "contract IConversionPathFinder" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 818, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 815, + "name": "CONVERSION_PATH_FINDER", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20764, + "src": "4672:22:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 814, + "name": "addressOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20931, + "src": "4662:9:3", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$", + "typeString": "function (bytes32) view returns (address)" + } + }, + "id": 816, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4662:33:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 813, + "name": "IConversionPathFinder", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 537, + "src": "4640:21:3", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IConversionPathFinder_$537_$", + "typeString": "type(contract IConversionPathFinder)" + } + }, + "id": 817, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4640:56:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConversionPathFinder_$537", + "typeString": "contract IConversionPathFinder" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4605:91:3" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 821, + "name": "_sourceToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 803, + "src": "4727:12:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + { + "argumentTypes": null, + "id": 822, + "name": "_targetToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 805, + "src": "4741:12:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + ], + "expression": { + "argumentTypes": null, + "id": 819, + "name": "pathFinder", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 812, + "src": "4707:10:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConversionPathFinder_$537", + "typeString": "contract IConversionPathFinder" + } + }, + "id": 820, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "findPath", + "nodeType": "MemberAccess", + "referencedDeclaration": 536, + "src": "4707:19:3", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_array$_t_address_$dyn_memory_ptr_$", + "typeString": "function (address,address) view external returns (address[] memory)" + } + }, + "id": 823, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4707:47:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "functionReturnParameters": 810, + "id": 824, + "nodeType": "Return", + "src": "4700:54:3" + } + ] + }, + "documentation": "@dev returns the conversion path between two tokens in the network\nnote that this method is quite expensive in terms of gas and should generally be called off-chain\n\t * @param _sourceToken source token address\n@param _targetToken target token address\n\t * @return conversion path between the two tokens", + "id": 826, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "conversionPath", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 806, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 803, + "name": "_sourceToken", + "nodeType": "VariableDeclaration", + "scope": 826, + "src": "4517:24:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + "typeName": { + "contractScope": null, + "id": 802, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "4517:11:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 805, + "name": "_targetToken", + "nodeType": "VariableDeclaration", + "scope": 826, + "src": "4543:24:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + "typeName": { + "contractScope": null, + "id": 804, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "4543:11:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4516:52:3" + }, + "payable": false, + "returnParameters": { + "id": 810, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 809, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 826, + "src": "4590:9:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 807, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4590:7:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 808, + "length": null, + "nodeType": "ArrayTypeName", + "src": "4590:9:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4589:11:3" + }, + "scope": 2459, + "src": "4493:265:3", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 1101, + "nodeType": "Block", + "src": "5194:2195:3", + "statements": [ + { + "assignments": [], + "declarations": [ + { + "constant": false, + "id": 837, + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 1102, + "src": "5198:14:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 836, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5198:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 838, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "5198:14:3" + }, + { + "assignments": [], + "declarations": [ + { + "constant": false, + "id": 840, + "name": "fee", + "nodeType": "VariableDeclaration", + "scope": 1102, + "src": "5216:11:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 839, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5216:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 841, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "5216:11:3" + }, + { + "assignments": [], + "declarations": [ + { + "constant": false, + "id": 843, + "name": "supply", + "nodeType": "VariableDeclaration", + "scope": 1102, + "src": "5231:14:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 842, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5231:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 844, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "5231:14:3" + }, + { + "assignments": [], + "declarations": [ + { + "constant": false, + "id": 846, + "name": "balance", + "nodeType": "VariableDeclaration", + "scope": 1102, + "src": "5249:15:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 845, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5249:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 847, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "5249:15:3" + }, + { + "assignments": [], + "declarations": [ + { + "constant": false, + "id": 849, + "name": "weight", + "nodeType": "VariableDeclaration", + "scope": 1102, + "src": "5268:13:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 848, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "5268:6:3", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 850, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "5268:13:3" + }, + { + "assignments": [], + "declarations": [ + { + "constant": false, + "id": 852, + "name": "converter", + "nodeType": "VariableDeclaration", + "scope": 1102, + "src": "5285:20:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + }, + "typeName": { + "contractScope": null, + "id": 851, + "name": "IConverter", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11817, + "src": "5285:10:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 853, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "5285:20:3" + }, + { + "assignments": [ + 855 + ], + "declarations": [ + { + "constant": false, + "id": 855, + "name": "formula", + "nodeType": "VariableDeclaration", + "scope": 1102, + "src": "5309:26:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISovrynSwapFormula_$12240", + "typeString": "contract ISovrynSwapFormula" + }, + "typeName": { + "contractScope": null, + "id": 854, + "name": "ISovrynSwapFormula", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 12240, + "src": "5309:18:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISovrynSwapFormula_$12240", + "typeString": "contract ISovrynSwapFormula" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 861, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 858, + "name": "SOVRYNSWAP_FORMULA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20758, + "src": "5367:18:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 857, + "name": "addressOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20931, + "src": "5357:9:3", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$", + "typeString": "function (bytes32) view returns (address)" + } + }, + "id": 859, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5357:29:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 856, + "name": "ISovrynSwapFormula", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12240, + "src": "5338:18:3", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ISovrynSwapFormula_$12240_$", + "typeString": "type(contract ISovrynSwapFormula)" + } + }, + "id": 860, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5338:49:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISovrynSwapFormula_$12240", + "typeString": "contract ISovrynSwapFormula" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5309:78:3" + }, + { + "expression": { + "argumentTypes": null, + "id": 864, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 862, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 837, + "src": "5392:6:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 863, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 831, + "src": "5401:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5392:16:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 865, + "nodeType": "ExpressionStatement", + "src": "5392:16:3" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 877, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 870, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 867, + "name": "_path", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 829, + "src": "5486:5:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", + "typeString": "contract IERC20Token[] memory" + } + }, + "id": 868, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5486:12:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 869, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5501:1:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "5486:16:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 876, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 874, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 871, + "name": "_path", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 829, + "src": "5506:5:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", + "typeString": "contract IERC20Token[] memory" + } + }, + "id": 872, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5506:12:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 873, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5521:1:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "5506:16:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 875, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5526:1:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "5506:21:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "5486:41:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4552525f494e56414c49445f50415448", + "id": 878, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5529:18:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_db637d0ca669449dd352e97481d5a38953b8126ef5f657bdd830d33ff33d5b16", + "typeString": "literal_string \"ERR_INVALID_PATH\"" + }, + "value": "ERR_INVALID_PATH" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_db637d0ca669449dd352e97481d5a38953b8126ef5f657bdd830d33ff33d5b16", + "typeString": "literal_string \"ERR_INVALID_PATH\"" + } + ], + "id": 866, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 22341, + 22342 + ], + "referencedDeclaration": 22342, + "src": "5478:7:3", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 879, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5478:70:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 880, + "nodeType": "ExpressionStatement", + "src": "5478:70:3" + }, + { + "body": { + "id": 1097, + "nodeType": "Block", + "src": "5637:1731:3", + "statements": [ + { + "assignments": [ + 894 + ], + "declarations": [ + { + "constant": false, + "id": 894, + "name": "sourceToken", + "nodeType": "VariableDeclaration", + "scope": 1102, + "src": "5642:23:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + "typeName": { + "contractScope": null, + "id": 893, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "5642:11:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 900, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 895, + "name": "_path", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 829, + "src": "5668:5:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", + "typeString": "contract IERC20Token[] memory" + } + }, + "id": 899, + "indexExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 898, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 896, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 882, + "src": "5674:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 897, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5678:1:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "5674:5:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5668:12:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5642:38:3" + }, + { + "assignments": [ + 902 + ], + "declarations": [ + { + "constant": false, + "id": 902, + "name": "anchor", + "nodeType": "VariableDeclaration", + "scope": 1102, + "src": "5685:18:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + "typeName": { + "contractScope": null, + "id": 901, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "5685:11:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 908, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 903, + "name": "_path", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 829, + "src": "5706:5:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", + "typeString": "contract IERC20Token[] memory" + } + }, + "id": 907, + "indexExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 906, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 904, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 882, + "src": "5712:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 905, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5716:1:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "5712:5:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5706:12:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5685:33:3" + }, + { + "assignments": [ + 910 + ], + "declarations": [ + { + "constant": false, + "id": 910, + "name": "targetToken", + "nodeType": "VariableDeclaration", + "scope": 1102, + "src": "5723:23:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + "typeName": { + "contractScope": null, + "id": 909, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "5723:11:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 914, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 911, + "name": "_path", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 829, + "src": "5749:5:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", + "typeString": "contract IERC20Token[] memory" + } + }, + "id": 913, + "indexExpression": { + "argumentTypes": null, + "id": 912, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 882, + "src": "5755:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5749:8:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5723:34:3" + }, + { + "expression": { + "argumentTypes": null, + "id": 923, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 915, + "name": "converter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 852, + "src": "5763:9:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 918, + "name": "anchor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 902, + "src": "5803:6:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + ], + "id": 917, + "name": "IConverterAnchor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11826, + "src": "5786:16:3", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IConverterAnchor_$11826_$", + "typeString": "type(contract IConverterAnchor)" + } + }, + "id": 919, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5786:24:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + }, + "id": 920, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "owner", + "nodeType": "MemberAccess", + "referencedDeclaration": 22238, + "src": "5786:30:3", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", + "typeString": "function () view external returns (address)" + } + }, + "id": 921, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5786:32:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 916, + "name": "IConverter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11817, + "src": "5775:10:3", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IConverter_$11817_$", + "typeString": "type(contract IConverter)" + } + }, + "id": 922, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5775:44:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + "src": "5763:56:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + "id": 924, + "nodeType": "ExpressionStatement", + "src": "5763:56:3" + }, + { + "expression": { + "argumentTypes": null, + "id": 930, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 925, + "name": "sourceToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 894, + "src": "5854:11:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 927, + "name": "converter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 852, + "src": "5893:9:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + { + "argumentTypes": null, + "id": 928, + "name": "sourceToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 894, + "src": "5904:11:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + }, + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + ], + "id": 926, + "name": "getConverterTokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2131, + "src": "5868:24:3", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_contract$_IConverter_$11817_$_t_contract$_IERC20Token_$20240_$returns$_t_contract$_IERC20Token_$20240_$", + "typeString": "function (contract IConverter,contract IERC20Token) view returns (contract IERC20Token)" + } + }, + "id": 929, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5868:48:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "src": "5854:62:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "id": 931, + "nodeType": "ExpressionStatement", + "src": "5854:62:3" + }, + { + "expression": { + "argumentTypes": null, + "id": 937, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 932, + "name": "targetToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 910, + "src": "5921:11:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 934, + "name": "converter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 852, + "src": "5960:9:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + { + "argumentTypes": null, + "id": 935, + "name": "targetToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 910, + "src": "5971:11:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + }, + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + ], + "id": 933, + "name": "getConverterTokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2131, + "src": "5935:24:3", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_contract$_IConverter_$11817_$_t_contract$_IERC20Token_$20240_$returns$_t_contract$_IERC20Token_$20240_$", + "typeString": "function (contract IConverter,contract IERC20Token) view returns (contract IERC20Token)" + } + }, + "id": 936, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5935:48:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "src": "5921:62:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "id": 938, + "nodeType": "ExpressionStatement", + "src": "5921:62:3" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + "id": 941, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 939, + "name": "targetToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 910, + "src": "5993:11:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 940, + "name": "anchor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 902, + "src": "6008:6:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "src": "5993:21:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + "id": 1013, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1011, + "name": "sourceToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 894, + "src": "6625:11:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 1012, + "name": "anchor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 902, + "src": "6640:6:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "src": "6625:21:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 1094, + "nodeType": "Block", + "src": "7250:114:3", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 1092, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "id": 1083, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 837, + "src": "7289:6:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1084, + "name": "fee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 840, + "src": "7297:3:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1085, + "isConstant": false, + "isInlineArray": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "TupleExpression", + "src": "7288:13:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1087, + "name": "converter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 852, + "src": "7314:9:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + { + "argumentTypes": null, + "id": 1088, + "name": "sourceToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 894, + "src": "7325:11:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + { + "argumentTypes": null, + "id": 1089, + "name": "targetToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 910, + "src": "7338:11:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + { + "argumentTypes": null, + "id": 1090, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 837, + "src": "7351:6:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + }, + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1086, + "name": "getReturn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2179, + "src": "7304:9:3", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$_t_address_$_t_uint256_$returns$_t_uint256_$_t_uint256_$", + "typeString": "function (address,address,address,uint256) view returns (uint256,uint256)" + } + }, + "id": 1091, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7304:54:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "src": "7288:70:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1093, + "nodeType": "ExpressionStatement", + "src": "7288:70:3" + } + ] + }, + "id": 1095, + "nodeType": "IfStatement", + "src": "6621:743:3", + "trueBody": { + "id": 1082, + "nodeType": "Block", + "src": "6648:596:3", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 1024, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1016, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1014, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 882, + "src": "6738:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "hexValue": "33", + "id": 1015, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6742:1:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "src": "6738:5:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + "id": 1023, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1017, + "name": "anchor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 902, + "src": "6747:6:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1018, + "name": "_path", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 829, + "src": "6757:5:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", + "typeString": "contract IERC20Token[] memory" + } + }, + "id": 1022, + "indexExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1021, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1019, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 882, + "src": "6763:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "hexValue": "33", + "id": 1020, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6767:1:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "src": "6763:5:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6757:12:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "src": "6747:22:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "6738:31:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 1033, + "nodeType": "IfStatement", + "src": "6734:79:3", + "trueBody": { + "expression": { + "argumentTypes": null, + "id": 1031, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 1025, + "name": "supply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 843, + "src": "6771:6:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1027, + "name": "anchor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 902, + "src": "6792:6:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + ], + "id": 1026, + "name": "ISmartToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20295, + "src": "6780:11:3", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ISmartToken_$20295_$", + "typeString": "type(contract ISmartToken)" + } + }, + "id": 1028, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6780:19:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISmartToken_$20295", + "typeString": "contract ISmartToken" + } + }, + "id": 1029, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "totalSupply", + "nodeType": "MemberAccess", + "referencedDeclaration": 20182, + "src": "6780:31:3", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", + "typeString": "function () view external returns (uint256)" + } + }, + "id": 1030, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6780:33:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6771:42:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1032, + "nodeType": "ExpressionStatement", + "src": "6771:42:3" + } + }, + { + "expression": { + "argumentTypes": null, + "id": 1039, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 1034, + "name": "balance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 846, + "src": "6863:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1037, + "name": "targetToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 910, + "src": "6903:11:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + ], + "expression": { + "argumentTypes": null, + "id": 1035, + "name": "converter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 852, + "src": "6873:9:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + "id": 1036, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getConnectorBalance", + "nodeType": "MemberAccess", + "referencedDeclaration": 11804, + "src": "6873:29:3", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_contract$_IERC20Token_$20240_$returns$_t_uint256_$", + "typeString": "function (contract IERC20Token) view external returns (uint256)" + } + }, + "id": 1038, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6873:42:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6863:52:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1040, + "nodeType": "ExpressionStatement", + "src": "6863:52:3" + }, + { + "expression": { + "argumentTypes": null, + "id": 1047, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "components": [ + null, + { + "argumentTypes": null, + "id": 1041, + "name": "weight", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 849, + "src": "6924:6:3", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + null, + null, + null + ], + "id": 1042, + "isConstant": false, + "isInlineArray": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "TupleExpression", + "src": "6921:16:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$_t_uint32_$__$__$__$", + "typeString": "tuple(,uint32,,,)" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1045, + "name": "targetToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 910, + "src": "6961:11:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + ], + "expression": { + "argumentTypes": null, + "id": 1043, + "name": "converter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 852, + "src": "6940:9:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + "id": 1044, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "connectors", + "nodeType": "MemberAccess", + "referencedDeclaration": 11797, + "src": "6940:20:3", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$_t_uint32_$_t_bool_$_t_bool_$_t_bool_$", + "typeString": "function (address) view external returns (uint256,uint32,bool,bool,bool)" + } + }, + "id": 1046, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6940:33:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint32_$_t_bool_$_t_bool_$_t_bool_$", + "typeString": "tuple(uint256,uint32,bool,bool,bool)" + } + }, + "src": "6921:52:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1048, + "nodeType": "ExpressionStatement", + "src": "6921:52:3" + }, + { + "expression": { + "argumentTypes": null, + "id": 1057, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 1049, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 837, + "src": "6979:6:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1052, + "name": "supply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 843, + "src": "7013:6:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1053, + "name": "balance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 846, + "src": "7021:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1054, + "name": "weight", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 849, + "src": "7030:6:3", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + { + "argumentTypes": null, + "id": 1055, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 837, + "src": "7038:6:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 1050, + "name": "formula", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 855, + "src": "6988:7:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISovrynSwapFormula_$12240", + "typeString": "contract ISovrynSwapFormula" + } + }, + "id": 1051, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "saleTargetAmount", + "nodeType": "MemberAccess", + "referencedDeclaration": 12168, + "src": "6988:24:3", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_uint256_$_t_uint256_$_t_uint32_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint32,uint256) view external returns (uint256)" + } + }, + "id": 1056, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6988:57:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6979:66:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1058, + "nodeType": "ExpressionStatement", + "src": "6979:66:3" + }, + { + "expression": { + "argumentTypes": null, + "id": 1069, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 1059, + "name": "fee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 840, + "src": "7051:3:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1067, + "name": "CONVERSION_FEE_RESOLUTION", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 703, + "src": "7099:25:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 1062, + "name": "converter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 852, + "src": "7068:9:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + "id": 1063, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "conversionFee", + "nodeType": "MemberAccess", + "referencedDeclaration": 11712, + "src": "7068:23:3", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint32_$", + "typeString": "function () view external returns (uint32)" + } + }, + "id": 1064, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7068:25:3", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + ], + "expression": { + "argumentTypes": null, + "id": 1060, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 837, + "src": "7057:6:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1061, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 21791, + "src": "7057:10:3", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 1065, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7057:37:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1066, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "div", + "nodeType": "MemberAccess", + "referencedDeclaration": 21816, + "src": "7057:41:3", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 1068, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7057:68:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7051:74:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1070, + "nodeType": "ExpressionStatement", + "src": "7051:74:3" + }, + { + "expression": { + "argumentTypes": null, + "id": 1073, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 1071, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 837, + "src": "7131:6:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "-=", + "rightHandSide": { + "argumentTypes": null, + "id": 1072, + "name": "fee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 840, + "src": "7141:3:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7131:13:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1074, + "nodeType": "ExpressionStatement", + "src": "7131:13:3" + }, + { + "expression": { + "argumentTypes": null, + "id": 1080, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 1075, + "name": "supply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 843, + "src": "7211:6:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1078, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 837, + "src": "7231:6:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 1076, + "name": "supply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 843, + "src": "7220:6:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1077, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 21758, + "src": "7220:10:3", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 1079, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7220:18:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7211:27:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1081, + "nodeType": "ExpressionStatement", + "src": "7211:27:3" + } + ] + } + }, + "id": 1096, + "nodeType": "IfStatement", + "src": "5989:1375:3", + "trueBody": { + "id": 1010, + "nodeType": "Block", + "src": "6016:599:3", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 952, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 944, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 942, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 882, + "src": "6105:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "hexValue": "33", + "id": 943, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6109:1:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "src": "6105:5:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + "id": 951, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 945, + "name": "anchor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 902, + "src": "6114:6:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 946, + "name": "_path", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 829, + "src": "6124:5:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", + "typeString": "contract IERC20Token[] memory" + } + }, + "id": 950, + "indexExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 949, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 947, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 882, + "src": "6130:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "hexValue": "33", + "id": 948, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6134:1:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "src": "6130:5:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6124:12:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "src": "6114:22:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "6105:31:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 961, + "nodeType": "IfStatement", + "src": "6101:79:3", + "trueBody": { + "expression": { + "argumentTypes": null, + "id": 959, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 953, + "name": "supply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 843, + "src": "6138:6:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 955, + "name": "anchor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 902, + "src": "6159:6:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + ], + "id": 954, + "name": "ISmartToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20295, + "src": "6147:11:3", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ISmartToken_$20295_$", + "typeString": "type(contract ISmartToken)" + } + }, + "id": 956, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6147:19:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISmartToken_$20295", + "typeString": "contract ISmartToken" + } + }, + "id": 957, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "totalSupply", + "nodeType": "MemberAccess", + "referencedDeclaration": 20182, + "src": "6147:31:3", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", + "typeString": "function () view external returns (uint256)" + } + }, + "id": 958, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6147:33:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6138:42:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 960, + "nodeType": "ExpressionStatement", + "src": "6138:42:3" + } + }, + { + "expression": { + "argumentTypes": null, + "id": 967, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 962, + "name": "balance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 846, + "src": "6230:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 965, + "name": "sourceToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 894, + "src": "6270:11:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + ], + "expression": { + "argumentTypes": null, + "id": 963, + "name": "converter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 852, + "src": "6240:9:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + "id": 964, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getConnectorBalance", + "nodeType": "MemberAccess", + "referencedDeclaration": 11804, + "src": "6240:29:3", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_contract$_IERC20Token_$20240_$returns$_t_uint256_$", + "typeString": "function (contract IERC20Token) view external returns (uint256)" + } + }, + "id": 966, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6240:42:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6230:52:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 968, + "nodeType": "ExpressionStatement", + "src": "6230:52:3" + }, + { + "expression": { + "argumentTypes": null, + "id": 975, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "components": [ + null, + { + "argumentTypes": null, + "id": 969, + "name": "weight", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 849, + "src": "6291:6:3", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + null, + null, + null + ], + "id": 970, + "isConstant": false, + "isInlineArray": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "TupleExpression", + "src": "6288:16:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$_t_uint32_$__$__$__$", + "typeString": "tuple(,uint32,,,)" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 973, + "name": "sourceToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 894, + "src": "6328:11:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + ], + "expression": { + "argumentTypes": null, + "id": 971, + "name": "converter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 852, + "src": "6307:9:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + "id": 972, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "connectors", + "nodeType": "MemberAccess", + "referencedDeclaration": 11797, + "src": "6307:20:3", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$_t_uint32_$_t_bool_$_t_bool_$_t_bool_$", + "typeString": "function (address) view external returns (uint256,uint32,bool,bool,bool)" + } + }, + "id": 974, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6307:33:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint32_$_t_bool_$_t_bool_$_t_bool_$", + "typeString": "tuple(uint256,uint32,bool,bool,bool)" + } + }, + "src": "6288:52:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 976, + "nodeType": "ExpressionStatement", + "src": "6288:52:3" + }, + { + "expression": { + "argumentTypes": null, + "id": 985, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 977, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 837, + "src": "6346:6:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 980, + "name": "supply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 843, + "src": "6384:6:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 981, + "name": "balance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 846, + "src": "6392:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 982, + "name": "weight", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 849, + "src": "6401:6:3", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + { + "argumentTypes": null, + "id": 983, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 837, + "src": "6409:6:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 978, + "name": "formula", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 855, + "src": "6355:7:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISovrynSwapFormula_$12240", + "typeString": "contract ISovrynSwapFormula" + } + }, + "id": 979, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "purchaseTargetAmount", + "nodeType": "MemberAccess", + "referencedDeclaration": 12155, + "src": "6355:28:3", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_uint256_$_t_uint256_$_t_uint32_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint32,uint256) view external returns (uint256)" + } + }, + "id": 984, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6355:61:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6346:70:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 986, + "nodeType": "ExpressionStatement", + "src": "6346:70:3" + }, + { + "expression": { + "argumentTypes": null, + "id": 997, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 987, + "name": "fee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 840, + "src": "6422:3:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 995, + "name": "CONVERSION_FEE_RESOLUTION", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 703, + "src": "6470:25:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 990, + "name": "converter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 852, + "src": "6439:9:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + "id": 991, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "conversionFee", + "nodeType": "MemberAccess", + "referencedDeclaration": 11712, + "src": "6439:23:3", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint32_$", + "typeString": "function () view external returns (uint32)" + } + }, + "id": 992, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6439:25:3", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + ], + "expression": { + "argumentTypes": null, + "id": 988, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 837, + "src": "6428:6:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 989, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 21791, + "src": "6428:10:3", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 993, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6428:37:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 994, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "div", + "nodeType": "MemberAccess", + "referencedDeclaration": 21816, + "src": "6428:41:3", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 996, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6428:68:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6422:74:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 998, + "nodeType": "ExpressionStatement", + "src": "6422:74:3" + }, + { + "expression": { + "argumentTypes": null, + "id": 1001, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 999, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 837, + "src": "6502:6:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "-=", + "rightHandSide": { + "argumentTypes": null, + "id": 1000, + "name": "fee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 840, + "src": "6512:3:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6502:13:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1002, + "nodeType": "ExpressionStatement", + "src": "6502:13:3" + }, + { + "expression": { + "argumentTypes": null, + "id": 1008, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 1003, + "name": "supply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 843, + "src": "6582:6:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1006, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 837, + "src": "6602:6:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 1004, + "name": "supply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 843, + "src": "6591:6:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1005, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 21737, + "src": "6591:10:3", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 1007, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6591:18:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6582:27:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1009, + "nodeType": "ExpressionStatement", + "src": "6582:27:3" + } + ] + } + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 888, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 885, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 882, + "src": "5611:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 886, + "name": "_path", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 829, + "src": "5615:5:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", + "typeString": "contract IERC20Token[] memory" + } + }, + "id": 887, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5615:12:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5611:16:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1098, + "initializationExpression": { + "assignments": [ + 882 + ], + "declarations": [ + { + "constant": false, + "id": 882, + "name": "i", + "nodeType": "VariableDeclaration", + "scope": 1102, + "src": "5596:9:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 881, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5596:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 884, + "initialValue": { + "argumentTypes": null, + "hexValue": "32", + "id": 883, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5608:1:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "VariableDeclarationStatement", + "src": "5596:13:3" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 891, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 889, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 882, + "src": "5629:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "32", + "id": 890, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5634:1:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "5629:6:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 892, + "nodeType": "ExpressionStatement", + "src": "5629:6:3" + }, + "nodeType": "ForStatement", + "src": "5591:1777:3" + }, + { + "expression": { + "argumentTypes": null, + "id": 1099, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 837, + "src": "7379:6:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 835, + "id": 1100, + "nodeType": "Return", + "src": "7372:13:3" + } + ] + }, + "documentation": "@dev returns the expected target amount of converting a given amount on a given path\nnote that there is no support for circular paths\n\t * @param _path conversion path (see conversion path format above)\n@param _amount amount of _path[0] tokens received from the sender\n\t * @return expected target amount", + "id": 1102, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "rateByPath", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 832, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 829, + "name": "_path", + "nodeType": "VariableDeclaration", + "scope": 1102, + "src": "5126:19:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", + "typeString": "contract IERC20Token[]" + }, + "typeName": { + "baseType": { + "contractScope": null, + "id": 827, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "5126:11:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "id": 828, + "length": null, + "nodeType": "ArrayTypeName", + "src": "5126:13:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_storage_ptr", + "typeString": "contract IERC20Token[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 831, + "name": "_amount", + "nodeType": "VariableDeclaration", + "scope": 1102, + "src": "5147:15:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 830, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5147:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5125:38:3" + }, + "payable": false, + "returnParameters": { + "id": 835, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 834, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1102, + "src": "5185:7:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 833, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5185:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5184:9:3" + }, + "scope": 2459, + "src": "5106:2283:3", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 1229, + "nodeType": "Block", + "src": "8719:1111:3", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 1136, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1129, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1126, + "name": "_path", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1105, + "src": "8830:5:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", + "typeString": "contract IERC20Token[] memory" + } + }, + "id": 1127, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8830:12:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 1128, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8845:1:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "8830:16:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1135, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1133, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1130, + "name": "_path", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1105, + "src": "8850:5:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", + "typeString": "contract IERC20Token[] memory" + } + }, + "id": 1131, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8850:12:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 1132, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8865:1:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "8850:16:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 1134, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8870:1:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "8850:21:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "8830:41:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4552525f494e56414c49445f50415448", + "id": 1137, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8873:18:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_db637d0ca669449dd352e97481d5a38953b8126ef5f657bdd830d33ff33d5b16", + "typeString": "literal_string \"ERR_INVALID_PATH\"" + }, + "value": "ERR_INVALID_PATH" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_db637d0ca669449dd352e97481d5a38953b8126ef5f657bdd830d33ff33d5b16", + "typeString": "literal_string \"ERR_INVALID_PATH\"" + } + ], + "id": 1125, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 22341, + 22342 + ], + "referencedDeclaration": 22342, + "src": "8822:7:3", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1138, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8822:70:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1139, + "nodeType": "ExpressionStatement", + "src": "8822:70:3" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1141, + "name": "_path", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1105, + "src": "8987:5:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", + "typeString": "contract IERC20Token[] memory" + } + }, + "id": 1143, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 1142, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8993:1:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8987:8:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1145, + "name": "_path", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1105, + "src": "9014:5:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", + "typeString": "contract IERC20Token[] memory" + } + }, + "id": 1147, + "indexExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 1146, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9020:1:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9014:8:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + ], + "id": 1144, + "name": "IConverterAnchor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11826, + "src": "8997:16:3", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IConverterAnchor_$11826_$", + "typeString": "type(contract IConverterAnchor)" + } + }, + "id": 1148, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8997:26:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + }, + { + "argumentTypes": null, + "id": 1149, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1107, + "src": "9025:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1140, + "name": "handleSourceToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1691, + "src": "8969:17:3", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20Token_$20240_$_t_contract$_IConverterAnchor_$11826_$_t_uint256_$returns$__$", + "typeString": "function (contract IERC20Token,contract IConverterAnchor,uint256)" + } + }, + "id": 1150, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8969:64:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1151, + "nodeType": "ExpressionStatement", + "src": "8969:64:3" + }, + { + "assignments": [ + 1153 + ], + "declarations": [ + { + "constant": false, + "id": 1153, + "name": "affiliateFeeEnabled", + "nodeType": "VariableDeclaration", + "scope": 1230, + "src": "9077:24:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1152, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "9077:4:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1155, + "initialValue": { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 1154, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9104:5:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "nodeType": "VariableDeclarationStatement", + "src": "9077:32:3" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1160, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1157, + "name": "_affiliateAccount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1113, + "src": "9125:17:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1156, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9117:7:3", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 1158, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9117:26:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 1159, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9147:1:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "9117:31:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 1184, + "nodeType": "Block", + "src": "9222:132:3", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 1176, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1172, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 1170, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9235:1:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 1171, + "name": "_affiliateFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1115, + "src": "9239:13:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9235:17:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1175, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1173, + "name": "_affiliateFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1115, + "src": "9256:13:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "id": 1174, + "name": "maxAffiliateFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 727, + "src": "9273:15:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9256:32:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "9235:53:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4552525f494e56414c49445f414646494c494154455f464545", + "id": 1177, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9290:27:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_5421a6ae0116cbc310697cd7899b77d6a7bc1fb10cd896c84c63fd20f8fbd382", + "typeString": "literal_string \"ERR_INVALID_AFFILIATE_FEE\"" + }, + "value": "ERR_INVALID_AFFILIATE_FEE" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_5421a6ae0116cbc310697cd7899b77d6a7bc1fb10cd896c84c63fd20f8fbd382", + "typeString": "literal_string \"ERR_INVALID_AFFILIATE_FEE\"" + } + ], + "id": 1169, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 22341, + 22342 + ], + "referencedDeclaration": 22342, + "src": "9227:7:3", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1178, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9227:91:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1179, + "nodeType": "ExpressionStatement", + "src": "9227:91:3" + }, + { + "expression": { + "argumentTypes": null, + "id": 1182, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 1180, + "name": "affiliateFeeEnabled", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1153, + "src": "9323:19:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 1181, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9345:4:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "9323:26:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1183, + "nodeType": "ExpressionStatement", + "src": "9323:26:3" + } + ] + }, + "id": 1185, + "nodeType": "IfStatement", + "src": "9113:241:3", + "trueBody": { + "id": 1168, + "nodeType": "Block", + "src": "9150:66:3", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1164, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1162, + "name": "_affiliateFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1115, + "src": "9163:13:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 1163, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9180:1:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "9163:18:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4552525f494e56414c49445f414646494c494154455f464545", + "id": 1165, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9183:27:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_5421a6ae0116cbc310697cd7899b77d6a7bc1fb10cd896c84c63fd20f8fbd382", + "typeString": "literal_string \"ERR_INVALID_AFFILIATE_FEE\"" + }, + "value": "ERR_INVALID_AFFILIATE_FEE" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_5421a6ae0116cbc310697cd7899b77d6a7bc1fb10cd896c84c63fd20f8fbd382", + "typeString": "literal_string \"ERR_INVALID_AFFILIATE_FEE\"" + } + ], + "id": 1161, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 22341, + 22342 + ], + "referencedDeclaration": 22342, + "src": "9155:7:3", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1166, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9155:56:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1167, + "nodeType": "ExpressionStatement", + "src": "9155:56:3" + } + ] + } + }, + { + "assignments": [ + 1187 + ], + "declarations": [ + { + "constant": false, + "id": 1187, + "name": "beneficiary", + "nodeType": "VariableDeclaration", + "scope": 1230, + "src": "9391:19:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1186, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9391:7:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1190, + "initialValue": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1188, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22338, + "src": "9413:3:3", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1189, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "9413:10:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9391:32:3" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1195, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1191, + "name": "_beneficiary", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1111, + "src": "9431:12:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 1193, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9455:1:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1192, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9447:7:3", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 1194, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9447:10:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "9431:26:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 1200, + "nodeType": "IfStatement", + "src": "9427:58:3", + "trueBody": { + "expression": { + "argumentTypes": null, + "id": 1198, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 1196, + "name": "beneficiary", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1187, + "src": "9459:11:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 1197, + "name": "_beneficiary", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1111, + "src": "9473:12:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "9459:26:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1199, + "nodeType": "ExpressionStatement", + "src": "9459:26:3" + } + }, + { + "assignments": [ + 1204 + ], + "declarations": [ + { + "constant": false, + "id": 1204, + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 1230, + "src": "9532:28:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_ConversionStep_$724_memory_$dyn_memory_ptr", + "typeString": "struct SovrynSwapNetwork.ConversionStep[]" + }, + "typeName": { + "baseType": { + "contractScope": null, + "id": 1202, + "name": "ConversionStep", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 724, + "src": "9532:14:3", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ConversionStep_$724_storage_ptr", + "typeString": "struct SovrynSwapNetwork.ConversionStep" + } + }, + "id": 1203, + "length": null, + "nodeType": "ArrayTypeName", + "src": "9532:16:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_ConversionStep_$724_storage_$dyn_storage_ptr", + "typeString": "struct SovrynSwapNetwork.ConversionStep[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1210, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1206, + "name": "_path", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1105, + "src": "9584:5:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", + "typeString": "contract IERC20Token[] memory" + } + }, + { + "argumentTypes": null, + "id": 1207, + "name": "beneficiary", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1187, + "src": "9591:11:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1208, + "name": "affiliateFeeEnabled", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1153, + "src": "9604:19:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", + "typeString": "contract IERC20Token[] memory" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1205, + "name": "createConversionData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2020, + "src": "9563:20:3", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr_$_t_address_$_t_bool_$returns$_t_array$_t_struct$_ConversionStep_$724_memory_$dyn_memory_ptr_$", + "typeString": "function (contract IERC20Token[] memory,address,bool) view returns (struct SovrynSwapNetwork.ConversionStep memory[] memory)" + } + }, + "id": 1209, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9563:61:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_ConversionStep_$724_memory_$dyn_memory_ptr", + "typeString": "struct SovrynSwapNetwork.ConversionStep memory[] memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9532:92:3" + }, + { + "assignments": [ + 1212 + ], + "declarations": [ + { + "constant": false, + "id": 1212, + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 1230, + "src": "9628:14:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1211, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9628:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1220, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1214, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1204, + "src": "9658:4:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_ConversionStep_$724_memory_$dyn_memory_ptr", + "typeString": "struct SovrynSwapNetwork.ConversionStep memory[] memory" + } + }, + { + "argumentTypes": null, + "id": 1215, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1107, + "src": "9664:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1216, + "name": "_minReturn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1109, + "src": "9673:10:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1217, + "name": "_affiliateAccount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1113, + "src": "9685:17:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1218, + "name": "_affiliateFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1115, + "src": "9704:13:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_array$_t_struct$_ConversionStep_$724_memory_$dyn_memory_ptr", + "typeString": "struct SovrynSwapNetwork.ConversionStep memory[] memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1213, + "name": "doConversion", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1597, + "src": "9645:12:3", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_struct$_ConversionStep_$724_memory_$dyn_memory_ptr_$_t_uint256_$_t_uint256_$_t_address_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (struct SovrynSwapNetwork.ConversionStep memory[] memory,uint256,uint256,address,uint256) returns (uint256)" + } + }, + "id": 1219, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9645:73:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9628:90:3" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1222, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1204, + "src": "9782:4:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_ConversionStep_$724_memory_$dyn_memory_ptr", + "typeString": "struct SovrynSwapNetwork.ConversionStep memory[] memory" + } + }, + { + "argumentTypes": null, + "id": 1223, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1212, + "src": "9788:6:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1224, + "name": "beneficiary", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1187, + "src": "9796:11:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_array$_t_struct$_ConversionStep_$724_memory_$dyn_memory_ptr", + "typeString": "struct SovrynSwapNetwork.ConversionStep memory[] memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1221, + "name": "handleTargetToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1750, + "src": "9764:17:3", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_struct$_ConversionStep_$724_memory_$dyn_memory_ptr_$_t_uint256_$_t_address_$returns$__$", + "typeString": "function (struct SovrynSwapNetwork.ConversionStep memory[] memory,uint256,address)" + } + }, + "id": 1225, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9764:44:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1226, + "nodeType": "ExpressionStatement", + "src": "9764:44:3" + }, + { + "expression": { + "argumentTypes": null, + "id": 1227, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1212, + "src": "9820:6:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1124, + "id": 1228, + "nodeType": "Return", + "src": "9813:13:3" + } + ] + }, + "documentation": "@dev converts the token to any other token in the sovrynSwap network by following\na predefined conversion path and transfers the result tokens to a target account\naffiliate account/fee can also be passed in to receive a conversion fee (on top of the liquidity provider fees)\nnote that the network should already have been given allowance of the source token (if not ETH)\n\t * @param _path conversion path, see conversion path format above\n@param _amount amount to convert from, in the source token\n@param _minReturn if the conversion results in an amount smaller than the minimum return - it is cancelled, must be greater than zero\n@param _beneficiary account that will receive the conversion result or 0x0 to send the result to the sender account\n@param _affiliateAccount wallet address to receive the affiliate fee or 0x0 to disable affiliate fee\n@param _affiliateFee affiliate fee in PPM or 0 to disable affiliate fee\n\t * @return amount of tokens received from the conversion", + "id": 1230, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 1118, + "modifierName": { + "argumentTypes": null, + "id": 1117, + "name": "protected", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21698, + "src": "8663:9:3", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "8663:9:3" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 1120, + "name": "_minReturn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1109, + "src": "8689:10:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1121, + "modifierName": { + "argumentTypes": null, + "id": 1119, + "name": "greaterThanZero", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21988, + "src": "8673:15:3", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$", + "typeString": "modifier (uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "8673:27:3" + } + ], + "name": "convertByPath", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1116, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1105, + "name": "_path", + "nodeType": "VariableDeclaration", + "scope": 1230, + "src": "8506:19:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", + "typeString": "contract IERC20Token[]" + }, + "typeName": { + "baseType": { + "contractScope": null, + "id": 1103, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "8506:11:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "id": 1104, + "length": null, + "nodeType": "ArrayTypeName", + "src": "8506:13:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_storage_ptr", + "typeString": "contract IERC20Token[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1107, + "name": "_amount", + "nodeType": "VariableDeclaration", + "scope": 1230, + "src": "8529:15:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1106, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8529:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1109, + "name": "_minReturn", + "nodeType": "VariableDeclaration", + "scope": 1230, + "src": "8548:18:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1108, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8548:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1111, + "name": "_beneficiary", + "nodeType": "VariableDeclaration", + "scope": 1230, + "src": "8570:20:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1110, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8570:7:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1113, + "name": "_affiliateAccount", + "nodeType": "VariableDeclaration", + "scope": 1230, + "src": "8594:25:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1112, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8594:7:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1115, + "name": "_affiliateFee", + "nodeType": "VariableDeclaration", + "scope": 1230, + "src": "8623:21:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1114, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8623:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8502:145:3" + }, + "payable": true, + "returnParameters": { + "id": 1124, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1123, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1230, + "src": "8710:7:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1122, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8710:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8709:9:3" + }, + "scope": 2459, + "src": "8480:1350:3", + "stateMutability": "payable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 1261, + "nodeType": "Block", + "src": "11002:117:3", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1249, + "name": "_path", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1233, + "src": "11023:5:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", + "typeString": "contract IERC20Token[] memory" + } + }, + { + "argumentTypes": null, + "id": 1250, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1235, + "src": "11030:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1251, + "name": "_minReturn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1237, + "src": "11039:10:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1252, + "name": "_targetBlockchain", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1239, + "src": "11051:17:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 1253, + "name": "_targetAccount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1241, + "src": "11070:14:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 1254, + "name": "_conversionId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1243, + "src": "11086:13:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 1256, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11109:1:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1255, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "11101:7:3", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 1257, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11101:10:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "hexValue": "30", + "id": 1258, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11113:1:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", + "typeString": "contract IERC20Token[] memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1248, + "name": "xConvert2", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1342, + "src": "11013:9:3", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr_$_t_uint256_$_t_uint256_$_t_bytes32_$_t_bytes32_$_t_uint256_$_t_address_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (contract IERC20Token[] memory,uint256,uint256,bytes32,bytes32,uint256,address,uint256) returns (uint256)" + } + }, + "id": 1259, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11013:102:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1247, + "id": 1260, + "nodeType": "Return", + "src": "11006:109:3" + } + ] + }, + "documentation": "@dev converts any other token to BNT in the sovrynSwap network by following\na predefined conversion path and transfers the result to an account on a different blockchain\nnote that the network should already have been given allowance of the source token (if not ETH)\n * @param _path conversion path, see conversion path format above\n@param _amount amount to convert from, in the source token\n@param _minReturn if the conversion results in an amount smaller than the minimum return - it is cancelled, must be greater than zero\n@param _targetBlockchain blockchain BNT will be issued on\n@param _targetAccount address/account on the target blockchain to send the BNT to\n@param _conversionId pre-determined unique (if non zero) id which refers to this transaction\n * @return the amount of BNT received from this conversion", + "id": 1262, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "xConvert", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1244, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1233, + "name": "_path", + "nodeType": "VariableDeclaration", + "scope": 1262, + "src": "10825:19:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", + "typeString": "contract IERC20Token[]" + }, + "typeName": { + "baseType": { + "contractScope": null, + "id": 1231, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "10825:11:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "id": 1232, + "length": null, + "nodeType": "ArrayTypeName", + "src": "10825:13:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_storage_ptr", + "typeString": "contract IERC20Token[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1235, + "name": "_amount", + "nodeType": "VariableDeclaration", + "scope": 1262, + "src": "10848:15:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1234, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10848:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1237, + "name": "_minReturn", + "nodeType": "VariableDeclaration", + "scope": 1262, + "src": "10867:18:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1236, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10867:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1239, + "name": "_targetBlockchain", + "nodeType": "VariableDeclaration", + "scope": 1262, + "src": "10889:25:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1238, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "10889:7:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1241, + "name": "_targetAccount", + "nodeType": "VariableDeclaration", + "scope": 1262, + "src": "10918:22:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1240, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "10918:7:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1243, + "name": "_conversionId", + "nodeType": "VariableDeclaration", + "scope": 1262, + "src": "10944:21:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1242, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10944:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10821:147:3" + }, + "payable": true, + "returnParameters": { + "id": 1247, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1246, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1262, + "src": "10993:7:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1245, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10993:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10992:9:3" + }, + "scope": 2459, + "src": "10804:315:3", + "stateMutability": "payable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 1341, + "nodeType": "Block", + "src": "12485:632:3", + "statements": [ + { + "assignments": [ + 1288 + ], + "declarations": [ + { + "constant": false, + "id": 1288, + "name": "targetToken", + "nodeType": "VariableDeclaration", + "scope": 1342, + "src": "12489:23:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + "typeName": { + "contractScope": null, + "id": 1287, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "12489:11:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1295, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1289, + "name": "_path", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1265, + "src": "12515:5:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", + "typeString": "contract IERC20Token[] memory" + } + }, + "id": 1294, + "indexExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1293, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1290, + "name": "_path", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1265, + "src": "12521:5:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", + "typeString": "contract IERC20Token[] memory" + } + }, + "id": 1291, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "12521:12:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 1292, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12536:1:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "12521:16:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "12515:23:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "12489:49:3" + }, + { + "assignments": [ + 1297 + ], + "declarations": [ + { + "constant": false, + "id": 1297, + "name": "sovrynSwapX", + "nodeType": "VariableDeclaration", + "scope": 1342, + "src": "12542:24:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISovrynSwapX_$19466", + "typeString": "contract ISovrynSwapX" + }, + "typeName": { + "contractScope": null, + "id": 1296, + "name": "ISovrynSwapX", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 19466, + "src": "12542:12:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISovrynSwapX_$19466", + "typeString": "contract ISovrynSwapX" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1303, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1300, + "name": "SOVRYNSWAP_X", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20779, + "src": "12592:12:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1299, + "name": "addressOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20931, + "src": "12582:9:3", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$", + "typeString": "function (bytes32) view returns (address)" + } + }, + "id": 1301, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12582:23:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1298, + "name": "ISovrynSwapX", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19466, + "src": "12569:12:3", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ISovrynSwapX_$19466_$", + "typeString": "type(contract ISovrynSwapX)" + } + }, + "id": 1302, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12569:37:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISovrynSwapX_$19466", + "typeString": "contract ISovrynSwapX" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "12542:64:3" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1309, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1305, + "name": "targetToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1288, + "src": "12665:11:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1307, + "name": "BNT_TOKEN", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20776, + "src": "12690:9:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1306, + "name": "addressOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20931, + "src": "12680:9:3", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$", + "typeString": "function (bytes32) view returns (address)" + } + }, + "id": 1308, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12680:20:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "12665:35:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4552525f494e56414c49445f5441524745545f544f4b454e", + "id": 1310, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12702:26:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_506dba30f9da1ed4da3626f556faadafab0575131908ae8223c813a59e0707f3", + "typeString": "literal_string \"ERR_INVALID_TARGET_TOKEN\"" + }, + "value": "ERR_INVALID_TARGET_TOKEN" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_506dba30f9da1ed4da3626f556faadafab0575131908ae8223c813a59e0707f3", + "typeString": "literal_string \"ERR_INVALID_TARGET_TOKEN\"" + } + ], + "id": 1304, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 22341, + 22342 + ], + "referencedDeclaration": 22342, + "src": "12657:7:3", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1311, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12657:72:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1312, + "nodeType": "ExpressionStatement", + "src": "12657:72:3" + }, + { + "assignments": [ + 1314 + ], + "declarations": [ + { + "constant": false, + "id": 1314, + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 1342, + "src": "12776:14:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1313, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12776:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1323, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1316, + "name": "_path", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1265, + "src": "12807:5:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", + "typeString": "contract IERC20Token[] memory" + } + }, + { + "argumentTypes": null, + "id": 1317, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1267, + "src": "12814:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1318, + "name": "_minReturn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1269, + "src": "12823:10:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1319, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22397, + "src": "12835:4:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SovrynSwapNetwork_$2459", + "typeString": "contract SovrynSwapNetwork" + } + }, + { + "argumentTypes": null, + "id": 1320, + "name": "_affiliateAccount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1277, + "src": "12841:17:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1321, + "name": "_affiliateFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1279, + "src": "12860:13:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", + "typeString": "contract IERC20Token[] memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_contract$_SovrynSwapNetwork_$2459", + "typeString": "contract SovrynSwapNetwork" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1315, + "name": "convertByPath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1230, + "src": "12793:13:3", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr_$_t_uint256_$_t_uint256_$_t_address_$_t_address_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (contract IERC20Token[] memory,uint256,uint256,address,address,uint256) returns (uint256)" + } + }, + "id": 1322, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12793:81:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "12776:98:3" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1325, + "name": "targetToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1288, + "src": "12928:11:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + { + "argumentTypes": null, + "id": 1326, + "name": "sovrynSwapX", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1297, + "src": "12941:11:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISovrynSwapX_$19466", + "typeString": "contract ISovrynSwapX" + } + }, + { + "argumentTypes": null, + "id": 1327, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1314, + "src": "12954:6:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + { + "typeIdentifier": "t_contract$_ISovrynSwapX_$19466", + "typeString": "contract ISovrynSwapX" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1324, + "name": "ensureAllowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2059, + "src": "12912:15:3", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20Token_$20240_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (contract IERC20Token,address,uint256)" + } + }, + "id": 1328, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12912:49:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1329, + "nodeType": "ExpressionStatement", + "src": "12912:49:3" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1333, + "name": "_targetBlockchain", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1271, + "src": "13038:17:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 1334, + "name": "_targetAccount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1273, + "src": "13057:14:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 1335, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1314, + "src": "13073:6:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1336, + "name": "_conversionId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1275, + "src": "13081:13:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 1330, + "name": "sovrynSwapX", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1297, + "src": "13016:11:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISovrynSwapX_$19466", + "typeString": "contract ISovrynSwapX" + } + }, + "id": 1332, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "xTransfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 19456, + "src": "13016:21:3", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_bytes32_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (bytes32,bytes32,uint256,uint256) external" + } + }, + "id": 1337, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13016:79:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1338, + "nodeType": "ExpressionStatement", + "src": "13016:79:3" + }, + { + "expression": { + "argumentTypes": null, + "id": 1339, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1314, + "src": "13107:6:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1286, + "id": 1340, + "nodeType": "Return", + "src": "13100:13:3" + } + ] + }, + "documentation": "@dev converts any other token to BNT in the sovrynSwap network by following\na predefined conversion path and transfers the result to an account on a different blockchain\nnote that the network should already have been given allowance of the source token (if not ETH)\n * @param _path conversion path, see conversion path format above\n@param _amount amount to convert from, in the source token\n@param _minReturn if the conversion results in an amount smaller than the minimum return - it is cancelled, must be greater than zero\n@param _targetBlockchain blockchain BNT will be issued on\n@param _targetAccount address/account on the target blockchain to send the BNT to\n@param _conversionId pre-determined unique (if non zero) id which refers to this transaction\n@param _affiliateAccount affiliate account\n@param _affiliateFee affiliate fee in PPM\n * @return the amount of BNT received from this conversion", + "id": 1342, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 1282, + "name": "_minReturn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1269, + "src": "12455:10:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1283, + "modifierName": { + "argumentTypes": null, + "id": 1281, + "name": "greaterThanZero", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21988, + "src": "12439:15:3", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$", + "typeString": "modifier (uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "12439:27:3" + } + ], + "name": "xConvert2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1280, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1265, + "name": "_path", + "nodeType": "VariableDeclaration", + "scope": 1342, + "src": "12226:19:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", + "typeString": "contract IERC20Token[]" + }, + "typeName": { + "baseType": { + "contractScope": null, + "id": 1263, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "12226:11:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "id": 1264, + "length": null, + "nodeType": "ArrayTypeName", + "src": "12226:13:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_storage_ptr", + "typeString": "contract IERC20Token[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1267, + "name": "_amount", + "nodeType": "VariableDeclaration", + "scope": 1342, + "src": "12249:15:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1266, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12249:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1269, + "name": "_minReturn", + "nodeType": "VariableDeclaration", + "scope": 1342, + "src": "12268:18:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1268, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12268:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1271, + "name": "_targetBlockchain", + "nodeType": "VariableDeclaration", + "scope": 1342, + "src": "12290:25:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1270, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "12290:7:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1273, + "name": "_targetAccount", + "nodeType": "VariableDeclaration", + "scope": 1342, + "src": "12319:22:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1272, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "12319:7:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1275, + "name": "_conversionId", + "nodeType": "VariableDeclaration", + "scope": 1342, + "src": "12345:21:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1274, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12345:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1277, + "name": "_affiliateAccount", + "nodeType": "VariableDeclaration", + "scope": 1342, + "src": "12370:25:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1276, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12370:7:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1279, + "name": "_affiliateFee", + "nodeType": "VariableDeclaration", + "scope": 1342, + "src": "12399:21:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1278, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12399:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "12222:201:3" + }, + "payable": true, + "returnParameters": { + "id": 1286, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1285, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1342, + "src": "12476:7:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1284, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12476:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "12475:9:3" + }, + "scope": 2459, + "src": "12204:913:3", + "stateMutability": "payable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 1389, + "nodeType": "Block", + "src": "14187:378:3", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + "id": 1365, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1359, + "name": "_path", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1345, + "src": "14258:5:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", + "typeString": "contract IERC20Token[] memory" + } + }, + "id": 1361, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 1360, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14264:1:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "14258:8:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 1362, + "name": "_sovrynSwapX", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1347, + "src": "14270:12:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISovrynSwapX_$19466", + "typeString": "contract ISovrynSwapX" + } + }, + "id": 1363, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "token", + "nodeType": "MemberAccess", + "referencedDeclaration": 19445, + "src": "14270:18:3", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_IERC20Token_$20240_$", + "typeString": "function () view external returns (contract IERC20Token)" + } + }, + "id": 1364, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14270:20:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "src": "14258:32:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4552525f494e56414c49445f534f555243455f544f4b454e", + "id": 1366, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14292:26:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_0f690a2bdb8b25e0198ca38056ef0e9f045e379ec977ffdcb1486f3c53b6e8fa", + "typeString": "literal_string \"ERR_INVALID_SOURCE_TOKEN\"" + }, + "value": "ERR_INVALID_SOURCE_TOKEN" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_0f690a2bdb8b25e0198ca38056ef0e9f045e379ec977ffdcb1486f3c53b6e8fa", + "typeString": "literal_string \"ERR_INVALID_SOURCE_TOKEN\"" + } + ], + "id": 1358, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 22341, + 22342 + ], + "referencedDeclaration": 22342, + "src": "14250:7:3", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1367, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14250:69:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1368, + "nodeType": "ExpressionStatement", + "src": "14250:69:3" + }, + { + "assignments": [ + 1370 + ], + "declarations": [ + { + "constant": false, + "id": 1370, + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 1390, + "src": "14377:14:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1369, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14377:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1377, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1373, + "name": "_conversionId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1349, + "src": "14426:13:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1374, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22338, + "src": "14441:3:3", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1375, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "14441:10:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 1371, + "name": "_sovrynSwapX", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1347, + "src": "14394:12:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISovrynSwapX_$19466", + "typeString": "contract ISovrynSwapX" + } + }, + "id": 1372, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getXTransferAmount", + "nodeType": "MemberAccess", + "referencedDeclaration": 19465, + "src": "14394:31:3", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_uint256_$_t_address_$returns$_t_uint256_$", + "typeString": "function (uint256,address) view external returns (uint256)" + } + }, + "id": 1376, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14394:58:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "14377:75:3" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1379, + "name": "_path", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1345, + "src": "14506:5:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", + "typeString": "contract IERC20Token[] memory" + } + }, + { + "argumentTypes": null, + "id": 1380, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1370, + "src": "14513:6:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1381, + "name": "_minReturn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1351, + "src": "14521:10:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1382, + "name": "_beneficiary", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1353, + "src": "14533:12:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 1384, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14555:1:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1383, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "14547:7:3", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 1385, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14547:10:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "hexValue": "30", + "id": 1386, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14559:1:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", + "typeString": "contract IERC20Token[] memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1378, + "name": "convertByPath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1230, + "src": "14492:13:3", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr_$_t_uint256_$_t_uint256_$_t_address_$_t_address_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (contract IERC20Token[] memory,uint256,uint256,address,address,uint256) returns (uint256)" + } + }, + "id": 1387, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14492:69:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1357, + "id": 1388, + "nodeType": "Return", + "src": "14485:76:3" + } + ] + }, + "documentation": "@dev allows a user to convert a token that was sent from another blockchain into any other\ntoken on the SovrynSwapNetwork\nideally this transaction is created before the previous conversion is even complete, so\nso the input amount isn't known at that point - the amount is actually take from the\nSovrynSwapX contract directly by specifying the conversion id\n\t * @param _path conversion path\n@param _sovrynSwapX address of the SovrynSwapX contract for the source token\n@param _conversionId pre-determined unique (if non zero) id which refers to this conversion\n@param _minReturn if the conversion results in an amount smaller than the minimum return - it is cancelled, must be nonzero\n@param _beneficiary wallet to receive the conversion result\n\t * @return amount of tokens received from the conversion", + "id": 1390, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "completeXConversion", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1354, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1345, + "name": "_path", + "nodeType": "VariableDeclaration", + "scope": 1390, + "src": "14039:19:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", + "typeString": "contract IERC20Token[]" + }, + "typeName": { + "baseType": { + "contractScope": null, + "id": 1343, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "14039:11:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "id": 1344, + "length": null, + "nodeType": "ArrayTypeName", + "src": "14039:13:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_storage_ptr", + "typeString": "contract IERC20Token[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1347, + "name": "_sovrynSwapX", + "nodeType": "VariableDeclaration", + "scope": 1390, + "src": "14062:25:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISovrynSwapX_$19466", + "typeString": "contract ISovrynSwapX" + }, + "typeName": { + "contractScope": null, + "id": 1346, + "name": "ISovrynSwapX", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 19466, + "src": "14062:12:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISovrynSwapX_$19466", + "typeString": "contract ISovrynSwapX" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1349, + "name": "_conversionId", + "nodeType": "VariableDeclaration", + "scope": 1390, + "src": "14091:21:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1348, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14091:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1351, + "name": "_minReturn", + "nodeType": "VariableDeclaration", + "scope": 1390, + "src": "14116:18:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1350, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14116:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1353, + "name": "_beneficiary", + "nodeType": "VariableDeclaration", + "scope": 1390, + "src": "14138:20:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1352, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "14138:7:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "14035:126:3" + }, + "payable": false, + "returnParameters": { + "id": 1357, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1356, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1390, + "src": "14178:7:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1355, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14178:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "14177:9:3" + }, + "scope": 2459, + "src": "14007:558:3", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 1596, + "nodeType": "Block", + "src": "15297:2085:3", + "statements": [ + { + "assignments": [], + "declarations": [ + { + "constant": false, + "id": 1407, + "name": "toAmount", + "nodeType": "VariableDeclaration", + "scope": 1597, + "src": "15301:16:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1406, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15301:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1408, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "15301:16:3" + }, + { + "assignments": [ + 1410 + ], + "declarations": [ + { + "constant": false, + "id": 1410, + "name": "fromAmount", + "nodeType": "VariableDeclaration", + "scope": 1597, + "src": "15321:18:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1409, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15321:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1412, + "initialValue": { + "argumentTypes": null, + "id": 1411, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1395, + "src": "15342:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15321:28:3" + }, + { + "body": { + "id": 1585, + "nodeType": "Block", + "src": "15435:1809:3", + "statements": [ + { + "assignments": [ + 1425 + ], + "declarations": [ + { + "constant": false, + "id": 1425, + "name": "stepData", + "nodeType": "VariableDeclaration", + "scope": 1597, + "src": "15440:30:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ConversionStep_$724_memory_ptr", + "typeString": "struct SovrynSwapNetwork.ConversionStep" + }, + "typeName": { + "contractScope": null, + "id": 1424, + "name": "ConversionStep", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 724, + "src": "15440:14:3", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ConversionStep_$724_storage_ptr", + "typeString": "struct SovrynSwapNetwork.ConversionStep" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1429, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1426, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1393, + "src": "15473:5:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_ConversionStep_$724_memory_$dyn_memory_ptr", + "typeString": "struct SovrynSwapNetwork.ConversionStep memory[] memory" + } + }, + "id": 1428, + "indexExpression": { + "argumentTypes": null, + "id": 1427, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1414, + "src": "15479:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "15473:8:3", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ConversionStep_$724_memory", + "typeString": "struct SovrynSwapNetwork.ConversionStep memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15440:41:3" + }, + { + "condition": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1430, + "name": "stepData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1425, + "src": "15513:8:3", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ConversionStep_$724_memory_ptr", + "typeString": "struct SovrynSwapNetwork.ConversionStep memory" + } + }, + "id": 1431, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "isV28OrHigherConverter", + "nodeType": "MemberAccess", + "referencedDeclaration": 721, + "src": "15513:31:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + "id": 1468, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1462, + "name": "stepData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1425, + "src": "16026:8:3", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ConversionStep_$724_memory_ptr", + "typeString": "struct SovrynSwapNetwork.ConversionStep memory" + } + }, + "id": 1463, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "sourceToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 715, + "src": "16026:20:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1465, + "name": "stepData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1425, + "src": "16062:8:3", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ConversionStep_$724_memory_ptr", + "typeString": "struct SovrynSwapNetwork.ConversionStep memory" + } + }, + "id": 1466, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "anchor", + "nodeType": "MemberAccess", + "referencedDeclaration": 713, + "src": "16062:15:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + ], + "id": 1464, + "name": "ISmartToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20295, + "src": "16050:11:3", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ISmartToken_$20295_$", + "typeString": "type(contract ISmartToken)" + } + }, + "id": 1467, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16050:28:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISmartToken_$20295", + "typeString": "contract ISmartToken" + } + }, + "src": "16026:52:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 1478, + "nodeType": "IfStatement", + "src": "16022:218:3", + "trueBody": { + "id": 1477, + "nodeType": "Block", + "src": "16080:160:3", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1470, + "name": "stepData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1425, + "src": "16181:8:3", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ConversionStep_$724_memory_ptr", + "typeString": "struct SovrynSwapNetwork.ConversionStep memory" + } + }, + "id": 1471, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "sourceToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 715, + "src": "16181:20:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1472, + "name": "stepData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1425, + "src": "16203:8:3", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ConversionStep_$724_memory_ptr", + "typeString": "struct SovrynSwapNetwork.ConversionStep memory" + } + }, + "id": 1473, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "converter", + "nodeType": "MemberAccess", + "referencedDeclaration": 711, + "src": "16203:18:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + { + "argumentTypes": null, + "id": 1474, + "name": "fromAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1410, + "src": "16223:10:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1469, + "name": "ensureAllowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2059, + "src": "16165:15:3", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20Token_$20240_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (contract IERC20Token,address,uint256)" + } + }, + "id": 1475, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16165:69:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1476, + "nodeType": "ExpressionStatement", + "src": "16165:69:3" + } + ] + } + }, + "id": 1479, + "nodeType": "IfStatement", + "src": "15509:731:3", + "trueBody": { + "id": 1461, + "nodeType": "Block", + "src": "15546:342:3", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 1451, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 1445, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1434, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1432, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1414, + "src": "15720:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 1433, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15725:1:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "15720:6:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1444, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1435, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1393, + "src": "15730:5:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_ConversionStep_$724_memory_$dyn_memory_ptr", + "typeString": "struct SovrynSwapNetwork.ConversionStep memory[] memory" + } + }, + "id": 1439, + "indexExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1438, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1436, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1414, + "src": "15736:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 1437, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15740:1:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "15736:5:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "15730:12:3", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ConversionStep_$724_memory", + "typeString": "struct SovrynSwapNetwork.ConversionStep memory" + } + }, + "id": 1440, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "beneficiary", + "nodeType": "MemberAccess", + "referencedDeclaration": 719, + "src": "15730:24:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1442, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22397, + "src": "15766:4:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SovrynSwapNetwork_$2459", + "typeString": "contract SovrynSwapNetwork" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_SovrynSwapNetwork_$2459", + "typeString": "contract SovrynSwapNetwork" + } + ], + "id": 1441, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "15758:7:3", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 1443, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15758:13:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "15730:41:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "15720:51:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "id": 1450, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "15775:34:3", + "subExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1446, + "name": "etherTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 731, + "src": "15776:11:3", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 1449, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1447, + "name": "stepData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1425, + "src": "15788:8:3", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ConversionStep_$724_memory_ptr", + "typeString": "struct SovrynSwapNetwork.ConversionStep memory" + } + }, + "id": 1448, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "sourceToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 715, + "src": "15788:20:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "15776:33:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "15720:89:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 1460, + "nodeType": "IfStatement", + "src": "15716:166:3", + "trueBody": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1453, + "name": "stepData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1425, + "src": "15829:8:3", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ConversionStep_$724_memory_ptr", + "typeString": "struct SovrynSwapNetwork.ConversionStep memory" + } + }, + "id": 1454, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "sourceToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 715, + "src": "15829:20:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1455, + "name": "stepData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1425, + "src": "15851:8:3", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ConversionStep_$724_memory_ptr", + "typeString": "struct SovrynSwapNetwork.ConversionStep memory" + } + }, + "id": 1456, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "converter", + "nodeType": "MemberAccess", + "referencedDeclaration": 711, + "src": "15851:18:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + { + "argumentTypes": null, + "id": 1457, + "name": "fromAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1410, + "src": "15871:10:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1452, + "name": "safeTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21881, + "src": "15816:12:3", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20Token_$20240_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (contract IERC20Token,address,uint256)" + } + }, + "id": 1458, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15816:66:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1459, + "nodeType": "ExpressionStatement", + "src": "15816:66:3" + } + } + ] + } + }, + { + "condition": { + "argumentTypes": null, + "id": 1482, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "16273:32:3", + "subExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1480, + "name": "stepData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1425, + "src": "16274:8:3", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ConversionStep_$724_memory_ptr", + "typeString": "struct SovrynSwapNetwork.ConversionStep memory" + } + }, + "id": 1481, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "isV28OrHigherConverter", + "nodeType": "MemberAccess", + "referencedDeclaration": 721, + "src": "16274:31:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1498, + "name": "etherTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 731, + "src": "16438:11:3", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 1501, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1499, + "name": "stepData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1425, + "src": "16450:8:3", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ConversionStep_$724_memory_ptr", + "typeString": "struct SovrynSwapNetwork.ConversionStep memory" + } + }, + "id": 1500, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "sourceToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 715, + "src": "16450:20:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "16438:33:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "expression": { + "argumentTypes": null, + "id": 1536, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 1522, + "name": "toAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1407, + "src": "16662:8:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1526, + "name": "stepData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1425, + "src": "16700:8:3", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ConversionStep_$724_memory_ptr", + "typeString": "struct SovrynSwapNetwork.ConversionStep memory" + } + }, + "id": 1527, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "sourceToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 715, + "src": "16700:20:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1528, + "name": "stepData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1425, + "src": "16722:8:3", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ConversionStep_$724_memory_ptr", + "typeString": "struct SovrynSwapNetwork.ConversionStep memory" + } + }, + "id": 1529, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "targetToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 717, + "src": "16722:20:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + { + "argumentTypes": null, + "id": 1530, + "name": "fromAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1410, + "src": "16744:10:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1531, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22338, + "src": "16756:3:3", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1532, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "16756:10:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1533, + "name": "stepData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1425, + "src": "16768:8:3", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ConversionStep_$724_memory_ptr", + "typeString": "struct SovrynSwapNetwork.ConversionStep memory" + } + }, + "id": 1534, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "beneficiary", + "nodeType": "MemberAccess", + "referencedDeclaration": 719, + "src": "16768:20:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1523, + "name": "stepData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1425, + "src": "16673:8:3", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ConversionStep_$724_memory_ptr", + "typeString": "struct SovrynSwapNetwork.ConversionStep memory" + } + }, + "id": 1524, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "converter", + "nodeType": "MemberAccess", + "referencedDeclaration": 711, + "src": "16673:18:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + "id": 1525, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "convert", + "nodeType": "MemberAccess", + "referencedDeclaration": 11696, + "src": "16673:26:3", + "typeDescriptions": { + "typeIdentifier": "t_function_external_payable$_t_contract$_IERC20Token_$20240_$_t_contract$_IERC20Token_$20240_$_t_uint256_$_t_address_$_t_address_$returns$_t_uint256_$", + "typeString": "function (contract IERC20Token,contract IERC20Token,uint256,address,address) payable external returns (uint256)" + } + }, + "id": 1535, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16673:116:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "16662:127:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1537, + "nodeType": "ExpressionStatement", + "src": "16662:127:3" + }, + "id": 1538, + "nodeType": "IfStatement", + "src": "16434:355:3", + "trueBody": { + "expression": { + "argumentTypes": null, + "id": 1520, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 1502, + "name": "toAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1407, + "src": "16477:8:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1510, + "name": "stepData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1425, + "src": "16538:8:3", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ConversionStep_$724_memory_ptr", + "typeString": "struct SovrynSwapNetwork.ConversionStep memory" + } + }, + "id": 1511, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "sourceToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 715, + "src": "16538:20:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1512, + "name": "stepData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1425, + "src": "16565:8:3", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ConversionStep_$724_memory_ptr", + "typeString": "struct SovrynSwapNetwork.ConversionStep memory" + } + }, + "id": 1513, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "targetToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 717, + "src": "16565:20:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + { + "argumentTypes": null, + "id": 1514, + "name": "fromAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1410, + "src": "16592:10:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1515, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22338, + "src": "16609:3:3", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1516, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "16609:10:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1517, + "name": "stepData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1425, + "src": "16626:8:3", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ConversionStep_$724_memory_ptr", + "typeString": "struct SovrynSwapNetwork.ConversionStep memory" + } + }, + "id": 1518, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "beneficiary", + "nodeType": "MemberAccess", + "referencedDeclaration": 719, + "src": "16626:20:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1507, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22338, + "src": "16521:3:3", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1508, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "16521:9:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1503, + "name": "stepData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1425, + "src": "16488:8:3", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ConversionStep_$724_memory_ptr", + "typeString": "struct SovrynSwapNetwork.ConversionStep memory" + } + }, + "id": 1504, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "converter", + "nodeType": "MemberAccess", + "referencedDeclaration": 711, + "src": "16488:18:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + "id": 1505, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "convert", + "nodeType": "MemberAccess", + "referencedDeclaration": 11696, + "src": "16488:26:3", + "typeDescriptions": { + "typeIdentifier": "t_function_external_payable$_t_contract$_IERC20Token_$20240_$_t_contract$_IERC20Token_$20240_$_t_uint256_$_t_address_$_t_address_$returns$_t_uint256_$", + "typeString": "function (contract IERC20Token,contract IERC20Token,uint256,address,address) payable external returns (uint256)" + } + }, + "id": 1506, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "16488:32:3", + "typeDescriptions": { + "typeIdentifier": "t_function_setvalue_nonpayable$_t_uint256_$returns$_t_function_external_payable$_t_contract$_IERC20Token_$20240_$_t_contract$_IERC20Token_$20240_$_t_uint256_$_t_address_$_t_address_$returns$_t_uint256_$value_$", + "typeString": "function (uint256) returns (function (contract IERC20Token,contract IERC20Token,uint256,address,address) payable external returns (uint256))" + } + }, + "id": 1509, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16488:43:3", + "typeDescriptions": { + "typeIdentifier": "t_function_external_payable$_t_contract$_IERC20Token_$20240_$_t_contract$_IERC20Token_$20240_$_t_uint256_$_t_address_$_t_address_$returns$_t_uint256_$value", + "typeString": "function (contract IERC20Token,contract IERC20Token,uint256,address,address) payable external returns (uint256)" + } + }, + "id": 1519, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16488:164:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "16477:175:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1521, + "nodeType": "ExpressionStatement", + "src": "16477:175:3" + } + }, + "id": 1539, + "nodeType": "IfStatement", + "src": "16269:520:3", + "trueBody": { + "expression": { + "argumentTypes": null, + "id": 1496, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 1483, + "name": "toAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1407, + "src": "16311:8:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1489, + "name": "stepData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1425, + "src": "16366:8:3", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ConversionStep_$724_memory_ptr", + "typeString": "struct SovrynSwapNetwork.ConversionStep memory" + } + }, + "id": 1490, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "sourceToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 715, + "src": "16366:20:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1491, + "name": "stepData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1425, + "src": "16388:8:3", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ConversionStep_$724_memory_ptr", + "typeString": "struct SovrynSwapNetwork.ConversionStep memory" + } + }, + "id": 1492, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "targetToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 717, + "src": "16388:20:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + { + "argumentTypes": null, + "id": 1493, + "name": "fromAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1410, + "src": "16410:10:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "hexValue": "31", + "id": 1494, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16422:1:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1485, + "name": "stepData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1425, + "src": "16339:8:3", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ConversionStep_$724_memory_ptr", + "typeString": "struct SovrynSwapNetwork.ConversionStep memory" + } + }, + "id": 1486, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "converter", + "nodeType": "MemberAccess", + "referencedDeclaration": 711, + "src": "16339:18:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + ], + "id": 1484, + "name": "ILegacyConverter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 689, + "src": "16322:16:3", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ILegacyConverter_$689_$", + "typeString": "type(contract ILegacyConverter)" + } + }, + "id": 1487, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16322:36:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ILegacyConverter_$689", + "typeString": "contract ILegacyConverter" + } + }, + "id": 1488, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "change", + "nodeType": "MemberAccess", + "referencedDeclaration": 688, + "src": "16322:43:3", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_contract$_IERC20Token_$20240_$_t_contract$_IERC20Token_$20240_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (contract IERC20Token,contract IERC20Token,uint256,uint256) external returns (uint256)" + } + }, + "id": 1495, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16322:102:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "16311:113:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1497, + "nodeType": "ExpressionStatement", + "src": "16311:113:3" + } + }, + { + "condition": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1540, + "name": "stepData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1425, + "src": "16833:8:3", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ConversionStep_$724_memory_ptr", + "typeString": "struct SovrynSwapNetwork.ConversionStep memory" + } + }, + "id": 1541, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "processAffiliateFee", + "nodeType": "MemberAccess", + "referencedDeclaration": 723, + "src": "16833:28:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 1567, + "nodeType": "IfStatement", + "src": "16829:269:3", + "trueBody": { + "id": 1566, + "nodeType": "Block", + "src": "16863:235:3", + "statements": [ + { + "assignments": [ + 1543 + ], + "declarations": [ + { + "constant": false, + "id": 1543, + "name": "affiliateAmount", + "nodeType": "VariableDeclaration", + "scope": 1597, + "src": "16869:23:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1542, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16869:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1551, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1549, + "name": "AFFILIATE_FEE_RESOLUTION", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 706, + "src": "16927:24:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1546, + "name": "_affiliateFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1401, + "src": "16908:13:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 1544, + "name": "toAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1407, + "src": "16895:8:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1545, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 21791, + "src": "16895:12:3", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 1547, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16895:27:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1548, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "div", + "nodeType": "MemberAccess", + "referencedDeclaration": 21816, + "src": "16895:31:3", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 1550, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16895:57:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "16869:83:3" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1556, + "name": "_affiliateAccount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1399, + "src": "16996:17:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1557, + "name": "affiliateAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1543, + "src": "17015:15:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1553, + "name": "stepData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1425, + "src": "16966:8:3", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ConversionStep_$724_memory_ptr", + "typeString": "struct SovrynSwapNetwork.ConversionStep memory" + } + }, + "id": 1554, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "targetToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 717, + "src": "16966:20:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "id": 1555, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 20219, + "src": "16966:29:3", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 1558, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16966:65:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4552525f4645455f5452414e534645525f4641494c4544", + "id": 1559, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17033:25:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_adc6d664872bc68defa0e975019744f9c0f552331af13f5f130791cee181d10c", + "typeString": "literal_string \"ERR_FEE_TRANSFER_FAILED\"" + }, + "value": "ERR_FEE_TRANSFER_FAILED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_adc6d664872bc68defa0e975019744f9c0f552331af13f5f130791cee181d10c", + "typeString": "literal_string \"ERR_FEE_TRANSFER_FAILED\"" + } + ], + "id": 1552, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 22341, + 22342 + ], + "referencedDeclaration": 22342, + "src": "16958:7:3", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1560, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16958:101:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1561, + "nodeType": "ExpressionStatement", + "src": "16958:101:3" + }, + { + "expression": { + "argumentTypes": null, + "id": 1564, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 1562, + "name": "toAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1407, + "src": "17065:8:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "-=", + "rightHandSide": { + "argumentTypes": null, + "id": 1563, + "name": "affiliateAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1543, + "src": "17077:15:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17065:27:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1565, + "nodeType": "ExpressionStatement", + "src": "17065:27:3" + } + ] + } + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1569, + "name": "stepData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1425, + "src": "17119:8:3", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ConversionStep_$724_memory_ptr", + "typeString": "struct SovrynSwapNetwork.ConversionStep memory" + } + }, + "id": 1570, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "anchor", + "nodeType": "MemberAccess", + "referencedDeclaration": 713, + "src": "17119:15:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1571, + "name": "stepData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1425, + "src": "17136:8:3", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ConversionStep_$724_memory_ptr", + "typeString": "struct SovrynSwapNetwork.ConversionStep memory" + } + }, + "id": 1572, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "sourceToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 715, + "src": "17136:20:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1573, + "name": "stepData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1425, + "src": "17158:8:3", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ConversionStep_$724_memory_ptr", + "typeString": "struct SovrynSwapNetwork.ConversionStep memory" + } + }, + "id": 1574, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "targetToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 717, + "src": "17158:20:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + { + "argumentTypes": null, + "id": 1575, + "name": "fromAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1410, + "src": "17180:10:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1576, + "name": "toAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1407, + "src": "17192:8:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1577, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22338, + "src": "17202:3:3", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1578, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "17202:10:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + }, + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1568, + "name": "Conversion", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 745, + "src": "17108:10:3", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_address_$returns$__$", + "typeString": "function (address,address,address,uint256,uint256,address)" + } + }, + "id": 1579, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17108:105:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1580, + "nodeType": "EmitStatement", + "src": "17103:110:3" + }, + { + "expression": { + "argumentTypes": null, + "id": 1583, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 1581, + "name": "fromAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1410, + "src": "17218:10:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 1582, + "name": "toAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1407, + "src": "17231:8:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17218:21:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1584, + "nodeType": "ExpressionStatement", + "src": "17218:21:3" + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1420, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1417, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1414, + "src": "15412:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1418, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1393, + "src": "15416:5:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_ConversionStep_$724_memory_$dyn_memory_ptr", + "typeString": "struct SovrynSwapNetwork.ConversionStep memory[] memory" + } + }, + "id": 1419, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "15416:12:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "15412:16:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1586, + "initializationExpression": { + "assignments": [ + 1414 + ], + "declarations": [ + { + "constant": false, + "id": 1414, + "name": "i", + "nodeType": "VariableDeclaration", + "scope": 1597, + "src": "15397:9:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1413, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15397:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1416, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 1415, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15409:1:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "15397:13:3" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 1422, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "15430:3:3", + "subExpression": { + "argumentTypes": null, + "id": 1421, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1414, + "src": "15430:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1423, + "nodeType": "ExpressionStatement", + "src": "15430:3:3" + }, + "nodeType": "ForStatement", + "src": "15392:1852:3" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1590, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1588, + "name": "toAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1407, + "src": "17313:8:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 1589, + "name": "_minReturn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1397, + "src": "17325:10:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17313:22:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4552525f52455455524e5f544f4f5f4c4f57", + "id": 1591, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17337:20:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c3237cc40443cfd1e0e9492ef35b7447eab6349fb6eac5eb1ec626edd3c555aa", + "typeString": "literal_string \"ERR_RETURN_TOO_LOW\"" + }, + "value": "ERR_RETURN_TOO_LOW" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c3237cc40443cfd1e0e9492ef35b7447eab6349fb6eac5eb1ec626edd3c555aa", + "typeString": "literal_string \"ERR_RETURN_TOO_LOW\"" + } + ], + "id": 1587, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 22341, + 22342 + ], + "referencedDeclaration": 22342, + "src": "17305:7:3", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1592, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17305:53:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1593, + "nodeType": "ExpressionStatement", + "src": "17305:53:3" + }, + { + "expression": { + "argumentTypes": null, + "id": 1594, + "name": "toAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1407, + "src": "17370:8:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1405, + "id": 1595, + "nodeType": "Return", + "src": "17363:15:3" + } + ] + }, + "documentation": "@dev executes the actual conversion by following the conversion path\n\t * @param _data conversion data, see ConversionStep struct above\n@param _amount amount to convert from, in the source token\n@param _minReturn if the conversion results in an amount smaller than the minimum return - it is cancelled, must be greater than zero\n@param _affiliateAccount affiliate account\n@param _affiliateFee affiliate fee in PPM\n\t * @return amount of tokens received from the conversion", + "id": 1597, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "doConversion", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1402, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1393, + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 1597, + "src": "15150:22:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_ConversionStep_$724_memory_$dyn_memory_ptr", + "typeString": "struct SovrynSwapNetwork.ConversionStep[]" + }, + "typeName": { + "baseType": { + "contractScope": null, + "id": 1391, + "name": "ConversionStep", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 724, + "src": "15150:14:3", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ConversionStep_$724_storage_ptr", + "typeString": "struct SovrynSwapNetwork.ConversionStep" + } + }, + "id": 1392, + "length": null, + "nodeType": "ArrayTypeName", + "src": "15150:16:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_ConversionStep_$724_storage_$dyn_storage_ptr", + "typeString": "struct SovrynSwapNetwork.ConversionStep[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1395, + "name": "_amount", + "nodeType": "VariableDeclaration", + "scope": 1597, + "src": "15176:15:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1394, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15176:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1397, + "name": "_minReturn", + "nodeType": "VariableDeclaration", + "scope": 1597, + "src": "15195:18:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1396, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15195:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1399, + "name": "_affiliateAccount", + "nodeType": "VariableDeclaration", + "scope": 1597, + "src": "15217:25:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1398, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15217:7:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1401, + "name": "_affiliateFee", + "nodeType": "VariableDeclaration", + "scope": 1597, + "src": "15246:21:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1400, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15246:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "15146:124:3" + }, + "payable": false, + "returnParameters": { + "id": 1405, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1404, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1597, + "src": "15288:7:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1403, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15288:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "15287:9:3" + }, + "scope": 2459, + "src": "15125:2257:3", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "private" + }, + { + "body": { + "id": 1690, + "nodeType": "Block", + "src": "17805:1247:3", + "statements": [ + { + "assignments": [ + 1607 + ], + "declarations": [ + { + "constant": false, + "id": 1607, + "name": "firstConverter", + "nodeType": "VariableDeclaration", + "scope": 1691, + "src": "17809:25:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + }, + "typeName": { + "contractScope": null, + "id": 1606, + "name": "IConverter", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11817, + "src": "17809:10:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1613, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 1609, + "name": "_anchor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1601, + "src": "17848:7:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + }, + "id": 1610, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "owner", + "nodeType": "MemberAccess", + "referencedDeclaration": 22238, + "src": "17848:13:3", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", + "typeString": "function () view external returns (address)" + } + }, + "id": 1611, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17848:15:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1608, + "name": "IConverter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11817, + "src": "17837:10:3", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IConverter_$11817_$", + "typeString": "type(contract IConverter)" + } + }, + "id": 1612, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17837:27:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17809:55:3" + }, + { + "assignments": [ + 1615 + ], + "declarations": [ + { + "constant": false, + "id": 1615, + "name": "isNewerConverter", + "nodeType": "VariableDeclaration", + "scope": 1691, + "src": "17868:21:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1614, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "17868:4:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1619, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1617, + "name": "firstConverter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1607, + "src": "17915:14:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + ], + "id": 1616, + "name": "isV28OrHigherConverter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2219, + "src": "17892:22:3", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_contract$_IConverter_$11817_$returns$_t_bool_$", + "typeString": "function (contract IConverter) view returns (bool)" + } + }, + "id": 1618, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17892:38:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17868:62:3" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1623, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1620, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22338, + "src": "17948:3:3", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1621, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "17948:9:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 1622, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17960:1:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "17948:13:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1648, + "name": "etherTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 731, + "src": "18379:11:3", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 1650, + "indexExpression": { + "argumentTypes": null, + "id": 1649, + "name": "_sourceToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1599, + "src": "18391:12:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "18379:25:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 1687, + "nodeType": "Block", + "src": "18764:285:3", + "statements": [ + { + "condition": { + "argumentTypes": null, + "id": 1669, + "name": "isNewerConverter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1615, + "src": "18892:16:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1679, + "name": "_sourceToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1599, + "src": "19004:12:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1680, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22338, + "src": "19018:3:3", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1681, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "19018:10:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1682, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22397, + "src": "19030:4:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SovrynSwapNetwork_$2459", + "typeString": "contract SovrynSwapNetwork" + } + }, + { + "argumentTypes": null, + "id": 1683, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1603, + "src": "19036:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_contract$_SovrynSwapNetwork_$2459", + "typeString": "contract SovrynSwapNetwork" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1678, + "name": "safeTransferFrom", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21904, + "src": "18987:16:3", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20Token_$20240_$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (contract IERC20Token,address,address,uint256)" + } + }, + "id": 1684, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18987:57:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1685, + "nodeType": "ExpressionStatement", + "src": "18987:57:3" + }, + "id": 1686, + "nodeType": "IfStatement", + "src": "18888:156:3", + "trueBody": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1671, + "name": "_sourceToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1599, + "src": "18927:12:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1672, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22338, + "src": "18941:3:3", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1673, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "18941:10:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1674, + "name": "firstConverter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1607, + "src": "18953:14:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + { + "argumentTypes": null, + "id": 1675, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1603, + "src": "18969:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1670, + "name": "safeTransferFrom", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21904, + "src": "18910:16:3", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20Token_$20240_$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (contract IERC20Token,address,address,uint256)" + } + }, + "id": 1676, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18910:67:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1677, + "nodeType": "ExpressionStatement", + "src": "18910:67:3" + } + } + ] + }, + "id": 1688, + "nodeType": "IfStatement", + "src": "18375:674:3", + "trueBody": { + "id": 1668, + "nodeType": "Block", + "src": "18406:327:3", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1652, + "name": "_sourceToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1599, + "src": "18578:12:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1653, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22338, + "src": "18592:3:3", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1654, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "18592:10:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1655, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22397, + "src": "18604:4:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SovrynSwapNetwork_$2459", + "typeString": "contract SovrynSwapNetwork" + } + }, + { + "argumentTypes": null, + "id": 1656, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1603, + "src": "18610:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_contract$_SovrynSwapNetwork_$2459", + "typeString": "contract SovrynSwapNetwork" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1651, + "name": "safeTransferFrom", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21904, + "src": "18561:16:3", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20Token_$20240_$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (contract IERC20Token,address,address,uint256)" + } + }, + "id": 1657, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18561:57:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1658, + "nodeType": "ExpressionStatement", + "src": "18561:57:3" + }, + { + "condition": { + "argumentTypes": null, + "id": 1659, + "name": "isNewerConverter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1615, + "src": "18667:16:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 1667, + "nodeType": "IfStatement", + "src": "18663:65:3", + "trueBody": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1664, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1603, + "src": "18720:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1661, + "name": "_sourceToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1599, + "src": "18697:12:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + ], + "id": 1660, + "name": "IEtherToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20266, + "src": "18685:11:3", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IEtherToken_$20266_$", + "typeString": "type(contract IEtherToken)" + } + }, + "id": 1662, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18685:25:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IEtherToken_$20266", + "typeString": "contract IEtherToken" + } + }, + "id": 1663, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "withdraw", + "nodeType": "MemberAccess", + "referencedDeclaration": 20253, + "src": "18685:34:3", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256) external" + } + }, + "id": 1665, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18685:43:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1666, + "nodeType": "ExpressionStatement", + "src": "18685:43:3" + } + } + ] + } + }, + "id": 1689, + "nodeType": "IfStatement", + "src": "17944:1105:3", + "trueBody": { + "id": 1647, + "nodeType": "Block", + "src": "17963:388:3", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1628, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1625, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22338, + "src": "18001:3:3", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1626, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "18001:9:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 1627, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1603, + "src": "18014:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "18001:20:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4552525f4554485f414d4f554e545f4d49534d41544348", + "id": 1629, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18023:25:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_b27c160ac497b67c4fef6b5554e0b1a41f3c9b44e4bd8482662df760b76c093b", + "typeString": "literal_string \"ERR_ETH_AMOUNT_MISMATCH\"" + }, + "value": "ERR_ETH_AMOUNT_MISMATCH" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_b27c160ac497b67c4fef6b5554e0b1a41f3c9b44e4bd8482662df760b76c093b", + "typeString": "literal_string \"ERR_ETH_AMOUNT_MISMATCH\"" + } + ], + "id": 1624, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 22341, + 22342 + ], + "referencedDeclaration": 22342, + "src": "17993:7:3", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1630, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17993:56:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1631, + "nodeType": "ExpressionStatement", + "src": "17993:56:3" + }, + { + "condition": { + "argumentTypes": null, + "id": 1633, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "18242:17:3", + "subExpression": { + "argumentTypes": null, + "id": 1632, + "name": "isNewerConverter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1615, + "src": "18243:16:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 1646, + "nodeType": "IfStatement", + "src": "18238:108:3", + "trueBody": { + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1641, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22338, + "src": "18334:3:3", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1642, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "18334:9:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1636, + "name": "firstConverter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1607, + "src": "18303:14:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + ], + "id": 1635, + "name": "getConverterEtherTokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2100, + "src": "18273:29:3", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_contract$_IConverter_$11817_$returns$_t_address_$", + "typeString": "function (contract IConverter) view returns (address)" + } + }, + "id": 1637, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18273:45:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1634, + "name": "IEtherToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20266, + "src": "18261:11:3", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IEtherToken_$20266_$", + "typeString": "type(contract IEtherToken)" + } + }, + "id": 1638, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18261:58:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IEtherToken_$20266", + "typeString": "contract IEtherToken" + } + }, + "id": 1639, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "deposit", + "nodeType": "MemberAccess", + "referencedDeclaration": 20248, + "src": "18261:66:3", + "typeDescriptions": { + "typeIdentifier": "t_function_external_payable$__$returns$__$", + "typeString": "function () payable external" + } + }, + "id": 1640, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "18261:72:3", + "typeDescriptions": { + "typeIdentifier": "t_function_setvalue_nonpayable$_t_uint256_$returns$_t_function_external_payable$__$returns$__$value_$", + "typeString": "function (uint256) returns (function () payable external)" + } + }, + "id": 1643, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18261:83:3", + "typeDescriptions": { + "typeIdentifier": "t_function_external_payable$__$returns$__$value", + "typeString": "function () payable external" + } + }, + "id": 1644, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18261:85:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1645, + "nodeType": "ExpressionStatement", + "src": "18261:85:3" + } + } + ] + } + } + ] + }, + "documentation": "@dev validates msg.value and prepares the conversion source token for the conversion\n\t * @param _sourceToken source token of the first conversion step\n@param _anchor converter anchor of the first conversion step\n@param _amount amount to convert from, in the source token", + "id": 1691, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "handleSourceToken", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1604, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1599, + "name": "_sourceToken", + "nodeType": "VariableDeclaration", + "scope": 1691, + "src": "17722:24:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + "typeName": { + "contractScope": null, + "id": 1598, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "17722:11:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1601, + "name": "_anchor", + "nodeType": "VariableDeclaration", + "scope": 1691, + "src": "17750:24:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + }, + "typeName": { + "contractScope": null, + "id": 1600, + "name": "IConverterAnchor", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11826, + "src": "17750:16:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1603, + "name": "_amount", + "nodeType": "VariableDeclaration", + "scope": 1691, + "src": "17778:15:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1602, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17778:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "17718:78:3" + }, + "payable": false, + "returnParameters": { + "id": 1605, + "nodeType": "ParameterList", + "parameters": [], + "src": "17805:0:3" + }, + "scope": 2459, + "src": "17692:1360:3", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "private" + }, + { + "body": { + "id": 1749, + "nodeType": "Block", + "src": "19466:630:3", + "statements": [ + { + "assignments": [ + 1702 + ], + "declarations": [ + { + "constant": false, + "id": 1702, + "name": "stepData", + "nodeType": "VariableDeclaration", + "scope": 1750, + "src": "19470:30:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ConversionStep_$724_memory_ptr", + "typeString": "struct SovrynSwapNetwork.ConversionStep" + }, + "typeName": { + "contractScope": null, + "id": 1701, + "name": "ConversionStep", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 724, + "src": "19470:14:3", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ConversionStep_$724_storage_ptr", + "typeString": "struct SovrynSwapNetwork.ConversionStep" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1709, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1703, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1694, + "src": "19503:5:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_ConversionStep_$724_memory_$dyn_memory_ptr", + "typeString": "struct SovrynSwapNetwork.ConversionStep memory[] memory" + } + }, + "id": 1708, + "indexExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1707, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1704, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1694, + "src": "19509:5:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_ConversionStep_$724_memory_$dyn_memory_ptr", + "typeString": "struct SovrynSwapNetwork.ConversionStep memory[] memory" + } + }, + "id": 1705, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "19509:12:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 1706, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19524:1:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "19509:16:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "19503:23:3", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ConversionStep_$724_memory", + "typeString": "struct SovrynSwapNetwork.ConversionStep memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "19470:56:3" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1715, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1710, + "name": "stepData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1702, + "src": "19593:8:3", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ConversionStep_$724_memory_ptr", + "typeString": "struct SovrynSwapNetwork.ConversionStep memory" + } + }, + "id": 1711, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "beneficiary", + "nodeType": "MemberAccess", + "referencedDeclaration": 719, + "src": "19593:20:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1713, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22397, + "src": "19625:4:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SovrynSwapNetwork_$2459", + "typeString": "contract SovrynSwapNetwork" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_SovrynSwapNetwork_$2459", + "typeString": "contract SovrynSwapNetwork" + } + ], + "id": 1712, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "19617:7:3", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 1714, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19617:13:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "19593:37:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 1717, + "nodeType": "IfStatement", + "src": "19589:50:3", + "trueBody": { + "expression": null, + "functionReturnParameters": 1700, + "id": 1716, + "nodeType": "Return", + "src": "19632:7:3" + } + }, + { + "assignments": [ + 1719 + ], + "declarations": [ + { + "constant": false, + "id": 1719, + "name": "targetToken", + "nodeType": "VariableDeclaration", + "scope": 1750, + "src": "19643:23:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + "typeName": { + "contractScope": null, + "id": 1718, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "19643:11:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1722, + "initialValue": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1720, + "name": "stepData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1702, + "src": "19669:8:3", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ConversionStep_$724_memory_ptr", + "typeString": "struct SovrynSwapNetwork.ConversionStep memory" + } + }, + "id": 1721, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "targetToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 717, + "src": "19669:20:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "19643:46:3" + }, + { + "condition": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1723, + "name": "etherTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 731, + "src": "19720:11:3", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 1725, + "indexExpression": { + "argumentTypes": null, + "id": 1724, + "name": "targetToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1719, + "src": "19732:11:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "19720:24:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 1747, + "nodeType": "Block", + "src": "20035:58:3", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1742, + "name": "targetToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1719, + "src": "20053:11:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + { + "argumentTypes": null, + "id": 1743, + "name": "_beneficiary", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1698, + "src": "20066:12:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1744, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1696, + "src": "20080:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1741, + "name": "safeTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21881, + "src": "20040:12:3", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20Token_$20240_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (contract IERC20Token,address,uint256)" + } + }, + "id": 1745, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20040:48:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1746, + "nodeType": "ExpressionStatement", + "src": "20040:48:3" + } + ] + }, + "id": 1748, + "nodeType": "IfStatement", + "src": "19716:377:3", + "trueBody": { + "id": 1740, + "nodeType": "Block", + "src": "19746:258:3", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1729, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "19824:32:3", + "subExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1727, + "name": "stepData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1702, + "src": "19825:8:3", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ConversionStep_$724_memory_ptr", + "typeString": "struct SovrynSwapNetwork.ConversionStep memory" + } + }, + "id": 1728, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "isV28OrHigherConverter", + "nodeType": "MemberAccess", + "referencedDeclaration": 721, + "src": "19825:31:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1726, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22327, + "src": "19817:6:3", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 1730, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19817:40:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1731, + "nodeType": "ExpressionStatement", + "src": "19817:40:3" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1736, + "name": "_beneficiary", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1698, + "src": "19977:12:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1737, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1696, + "src": "19991:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1733, + "name": "targetToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1719, + "src": "19953:11:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + ], + "id": 1732, + "name": "IEtherToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20266, + "src": "19941:11:3", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IEtherToken_$20266_$", + "typeString": "type(contract IEtherToken)" + } + }, + "id": 1734, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19941:24:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IEtherToken_$20266", + "typeString": "contract IEtherToken" + } + }, + "id": 1735, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "withdrawTo", + "nodeType": "MemberAccess", + "referencedDeclaration": 20265, + "src": "19941:35:3", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256) external" + } + }, + "id": 1738, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19941:58:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1739, + "nodeType": "ExpressionStatement", + "src": "19941:58:3" + } + ] + } + } + ] + }, + "documentation": "@dev handles the conversion target token if the network still holds it at the end of the conversion\n\t * @param _data conversion data, see ConversionStep struct above\n@param _amount conversion target amount\n@param _beneficiary wallet to receive the conversion result", + "id": 1750, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "handleTargetToken", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1699, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1694, + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 1750, + "src": "19389:22:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_ConversionStep_$724_memory_$dyn_memory_ptr", + "typeString": "struct SovrynSwapNetwork.ConversionStep[]" + }, + "typeName": { + "baseType": { + "contractScope": null, + "id": 1692, + "name": "ConversionStep", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 724, + "src": "19389:14:3", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ConversionStep_$724_storage_ptr", + "typeString": "struct SovrynSwapNetwork.ConversionStep" + } + }, + "id": 1693, + "length": null, + "nodeType": "ArrayTypeName", + "src": "19389:16:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_ConversionStep_$724_storage_$dyn_storage_ptr", + "typeString": "struct SovrynSwapNetwork.ConversionStep[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1696, + "name": "_amount", + "nodeType": "VariableDeclaration", + "scope": 1750, + "src": "19415:15:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1695, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "19415:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1698, + "name": "_beneficiary", + "nodeType": "VariableDeclaration", + "scope": 1750, + "src": "19434:20:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1697, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "19434:7:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "19385:72:3" + }, + "payable": false, + "returnParameters": { + "id": 1700, + "nodeType": "ParameterList", + "parameters": [], + "src": "19466:0:3" + }, + "scope": 2459, + "src": "19359:737:3", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "private" + }, + { + "body": { + "id": 2019, + "nodeType": "Block", + "src": "20725:3220:3", + "statements": [ + { + "assignments": [ + 1766 + ], + "declarations": [ + { + "constant": false, + "id": 1766, + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 2020, + "src": "20729:28:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_ConversionStep_$724_memory_$dyn_memory_ptr", + "typeString": "struct SovrynSwapNetwork.ConversionStep[]" + }, + "typeName": { + "baseType": { + "contractScope": null, + "id": 1764, + "name": "ConversionStep", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 724, + "src": "20729:14:3", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ConversionStep_$724_storage_ptr", + "typeString": "struct SovrynSwapNetwork.ConversionStep" + } + }, + "id": 1765, + "length": null, + "nodeType": "ArrayTypeName", + "src": "20729:16:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_ConversionStep_$724_storage_$dyn_storage_ptr", + "typeString": "struct SovrynSwapNetwork.ConversionStep[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1775, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1773, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1770, + "name": "_conversionPath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1753, + "src": "20781:15:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", + "typeString": "contract IERC20Token[] memory" + } + }, + "id": 1771, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "20781:22:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 1772, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20806:1:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "20781:26:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1769, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "20760:20:3", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_ConversionStep_$724_memory_$dyn_memory_$", + "typeString": "function (uint256) pure returns (struct SovrynSwapNetwork.ConversionStep memory[] memory)" + }, + "typeName": { + "baseType": { + "contractScope": null, + "id": 1767, + "name": "ConversionStep", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 724, + "src": "20764:14:3", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ConversionStep_$724_storage_ptr", + "typeString": "struct SovrynSwapNetwork.ConversionStep" + } + }, + "id": 1768, + "length": null, + "nodeType": "ArrayTypeName", + "src": "20764:16:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_ConversionStep_$724_storage_$dyn_storage_ptr", + "typeString": "struct SovrynSwapNetwork.ConversionStep[]" + } + } + }, + "id": 1774, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20760:48:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_ConversionStep_$724_memory_$dyn_memory", + "typeString": "struct SovrynSwapNetwork.ConversionStep memory[] memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "20729:79:3" + }, + { + "assignments": [ + 1777 + ], + "declarations": [ + { + "constant": false, + "id": 1777, + "name": "affiliateFeeProcessed", + "nodeType": "VariableDeclaration", + "scope": 2020, + "src": "20813:26:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1776, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "20813:4:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1779, + "initialValue": { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 1778, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20842:5:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "nodeType": "VariableDeclarationStatement", + "src": "20813:34:3" + }, + { + "assignments": [ + 1781 + ], + "declarations": [ + { + "constant": false, + "id": 1781, + "name": "bntToken", + "nodeType": "VariableDeclaration", + "scope": 2020, + "src": "20851:16:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1780, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "20851:7:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1785, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1783, + "name": "BNT_TOKEN", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20776, + "src": "20880:9:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1782, + "name": "addressOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20931, + "src": "20870:9:3", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$", + "typeString": "function (bytes32) view returns (address)" + } + }, + "id": 1784, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20870:20:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "20851:39:3" + }, + { + "assignments": [], + "declarations": [ + { + "constant": false, + "id": 1787, + "name": "i", + "nodeType": "VariableDeclaration", + "scope": 2020, + "src": "20972:9:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1786, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "20972:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1788, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "20972:9:3" + }, + { + "body": { + "id": 1868, + "nodeType": "Block", + "src": "21037:894:3", + "statements": [ + { + "assignments": [ + 1804 + ], + "declarations": [ + { + "constant": false, + "id": 1804, + "name": "anchor", + "nodeType": "VariableDeclaration", + "scope": 2020, + "src": "21042:23:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + }, + "typeName": { + "contractScope": null, + "id": 1803, + "name": "IConverterAnchor", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11826, + "src": "21042:16:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1812, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1806, + "name": "_conversionPath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1753, + "src": "21085:15:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", + "typeString": "contract IERC20Token[] memory" + } + }, + "id": 1810, + "indexExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1809, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1807, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1787, + "src": "21101:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 1808, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "21105:1:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "21101:5:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "21085:22:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + ], + "id": 1805, + "name": "IConverterAnchor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11826, + "src": "21068:16:3", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IConverterAnchor_$11826_$", + "typeString": "type(contract IConverterAnchor)" + } + }, + "id": 1811, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21068:40:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "21042:66:3" + }, + { + "assignments": [ + 1814 + ], + "declarations": [ + { + "constant": false, + "id": 1814, + "name": "converter", + "nodeType": "VariableDeclaration", + "scope": 2020, + "src": "21113:20:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + }, + "typeName": { + "contractScope": null, + "id": 1813, + "name": "IConverter", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11817, + "src": "21113:10:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1820, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 1816, + "name": "anchor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1804, + "src": "21147:6:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + }, + "id": 1817, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "owner", + "nodeType": "MemberAccess", + "referencedDeclaration": 22238, + "src": "21147:12:3", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", + "typeString": "function () view external returns (address)" + } + }, + "id": 1818, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21147:14:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1815, + "name": "IConverter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11817, + "src": "21136:10:3", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IConverter_$11817_$", + "typeString": "type(contract IConverter)" + } + }, + "id": 1819, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21136:26:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "21113:49:3" + }, + { + "assignments": [ + 1822 + ], + "declarations": [ + { + "constant": false, + "id": 1822, + "name": "targetToken", + "nodeType": "VariableDeclaration", + "scope": 2020, + "src": "21167:23:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + "typeName": { + "contractScope": null, + "id": 1821, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "21167:11:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1828, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1823, + "name": "_conversionPath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1753, + "src": "21193:15:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", + "typeString": "contract IERC20Token[] memory" + } + }, + "id": 1827, + "indexExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1826, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1824, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1787, + "src": "21209:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 1825, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "21213:1:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "21209:5:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "21193:22:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "21167:48:3" + }, + { + "assignments": [ + 1830 + ], + "declarations": [ + { + "constant": false, + "id": 1830, + "name": "processAffiliateFee", + "nodeType": "VariableDeclaration", + "scope": 2020, + "src": "21287:24:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1829, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "21287:4:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1839, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 1838, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 1834, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1831, + "name": "_affiliateFeeEnabled", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1757, + "src": "21314:20:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "id": 1833, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "21338:22:3", + "subExpression": { + "argumentTypes": null, + "id": 1832, + "name": "affiliateFeeProcessed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1777, + "src": "21339:21:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "21314:46:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1837, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1835, + "name": "targetToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1822, + "src": "21364:11:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 1836, + "name": "bntToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1781, + "src": "21379:8:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "21364:23:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "21314:73:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "21287:100:3" + }, + { + "condition": { + "argumentTypes": null, + "id": 1840, + "name": "processAffiliateFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1830, + "src": "21396:19:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 1845, + "nodeType": "IfStatement", + "src": "21392:53:3", + "trueBody": { + "expression": { + "argumentTypes": null, + "id": 1843, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 1841, + "name": "affiliateFeeProcessed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1777, + "src": "21417:21:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 1842, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "21441:4:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "21417:28:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1844, + "nodeType": "ExpressionStatement", + "src": "21417:28:3" + } + }, + { + "expression": { + "argumentTypes": null, + "id": 1866, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1846, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1766, + "src": "21451:4:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_ConversionStep_$724_memory_$dyn_memory_ptr", + "typeString": "struct SovrynSwapNetwork.ConversionStep memory[] memory" + } + }, + "id": 1850, + "indexExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1849, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1847, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1787, + "src": "21456:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 1848, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "21460:1:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "21456:5:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "21451:11:3", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ConversionStep_$724_memory", + "typeString": "struct SovrynSwapNetwork.ConversionStep memory" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1852, + "name": "anchor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1804, + "src": "21526:6:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + }, + { + "argumentTypes": null, + "id": 1853, + "name": "converter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1814, + "src": "21574:9:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1854, + "name": "_conversionPath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1753, + "src": "21638:15:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", + "typeString": "contract IERC20Token[] memory" + } + }, + "id": 1856, + "indexExpression": { + "argumentTypes": null, + "id": 1855, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1787, + "src": "21654:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "21638:18:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + { + "argumentTypes": null, + "id": 1857, + "name": "targetToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1822, + "src": "21675:11:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 1859, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "21792:1:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1858, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "21784:7:3", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 1860, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21784:10:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1862, + "name": "converter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1814, + "src": "21864:9:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + ], + "id": 1861, + "name": "isV28OrHigherConverter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2219, + "src": "21841:22:3", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_contract$_IConverter_$11817_$returns$_t_bool_$", + "typeString": "function (contract IConverter) view returns (bool)" + } + }, + "id": 1863, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21841:33:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "id": 1864, + "name": "processAffiliateFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1830, + "src": "21901:19:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": null, + "id": 1851, + "name": "ConversionStep", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 724, + "src": "21465:14:3", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_ConversionStep_$724_storage_ptr_$", + "typeString": "type(struct SovrynSwapNetwork.ConversionStep storage pointer)" + } + }, + "id": 1865, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "names": [ + "anchor", + "converter", + "sourceToken", + "targetToken", + "beneficiary", + "isV28OrHigherConverter", + "processAffiliateFee" + ], + "nodeType": "FunctionCall", + "src": "21465:461:3", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ConversionStep_$724_memory", + "typeString": "struct SovrynSwapNetwork.ConversionStep memory" + } + }, + "src": "21451:475:3", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ConversionStep_$724_memory", + "typeString": "struct SovrynSwapNetwork.ConversionStep memory" + } + }, + "id": 1867, + "nodeType": "ExpressionStatement", + "src": "21451:475:3" + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1798, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1793, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1787, + "src": "20997:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1797, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1794, + "name": "_conversionPath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1753, + "src": "21001:15:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", + "typeString": "contract IERC20Token[] memory" + } + }, + "id": 1795, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "21001:22:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 1796, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "21026:1:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "21001:26:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "20997:30:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1869, + "initializationExpression": { + "expression": { + "argumentTypes": null, + "id": 1791, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 1789, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1787, + "src": "20990:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30", + "id": 1790, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20994:1:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "20990:5:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1792, + "nodeType": "ExpressionStatement", + "src": "20990:5:3" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 1801, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 1799, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1787, + "src": "21029:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "32", + "id": 1800, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "21034:1:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "21029:6:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1802, + "nodeType": "ExpressionStatement", + "src": "21029:6:3" + }, + "nodeType": "ForStatement", + "src": "20985:946:3" + }, + { + "assignments": [ + 1871 + ], + "declarations": [ + { + "constant": false, + "id": 1871, + "name": "stepData", + "nodeType": "VariableDeclaration", + "scope": 2020, + "src": "21971:30:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ConversionStep_$724_memory_ptr", + "typeString": "struct SovrynSwapNetwork.ConversionStep" + }, + "typeName": { + "contractScope": null, + "id": 1870, + "name": "ConversionStep", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 724, + "src": "21971:14:3", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ConversionStep_$724_storage_ptr", + "typeString": "struct SovrynSwapNetwork.ConversionStep" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1875, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1872, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1766, + "src": "22004:4:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_ConversionStep_$724_memory_$dyn_memory_ptr", + "typeString": "struct SovrynSwapNetwork.ConversionStep memory[] memory" + } + }, + "id": 1874, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 1873, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22009:1:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "22004:7:3", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ConversionStep_$724_memory", + "typeString": "struct SovrynSwapNetwork.ConversionStep memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "21971:40:3" + }, + { + "condition": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1876, + "name": "etherTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 731, + "src": "22019:11:3", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 1879, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1877, + "name": "stepData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1871, + "src": "22031:8:3", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ConversionStep_$724_memory_ptr", + "typeString": "struct SovrynSwapNetwork.ConversionStep memory" + } + }, + "id": 1878, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "sourceToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 715, + "src": "22031:20:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "22019:33:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 1903, + "nodeType": "IfStatement", + "src": "22015:422:3", + "trueBody": { + "id": 1902, + "nodeType": "Block", + "src": "22054:383:3", + "statements": [ + { + "condition": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1880, + "name": "stepData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1871, + "src": "22145:8:3", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ConversionStep_$724_memory_ptr", + "typeString": "struct SovrynSwapNetwork.ConversionStep memory" + } + }, + "id": 1881, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "isV28OrHigherConverter", + "nodeType": "MemberAccess", + "referencedDeclaration": 721, + "src": "22145:31:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "expression": { + "argumentTypes": null, + "id": 1899, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1890, + "name": "stepData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1871, + "src": "22347:8:3", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ConversionStep_$724_memory_ptr", + "typeString": "struct SovrynSwapNetwork.ConversionStep memory" + } + }, + "id": 1892, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "sourceToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 715, + "src": "22347:20:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1895, + "name": "stepData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1871, + "src": "22412:8:3", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ConversionStep_$724_memory_ptr", + "typeString": "struct SovrynSwapNetwork.ConversionStep memory" + } + }, + "id": 1896, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "converter", + "nodeType": "MemberAccess", + "referencedDeclaration": 711, + "src": "22412:18:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + ], + "id": 1894, + "name": "getConverterEtherTokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2100, + "src": "22382:29:3", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_contract$_IConverter_$11817_$returns$_t_address_$", + "typeString": "function (contract IConverter) view returns (address)" + } + }, + "id": 1897, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "22382:49:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1893, + "name": "IERC20Token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20240, + "src": "22370:11:3", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20Token_$20240_$", + "typeString": "type(contract IERC20Token)" + } + }, + "id": 1898, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "22370:62:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "src": "22347:85:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "id": 1900, + "nodeType": "ExpressionStatement", + "src": "22347:85:3" + }, + "id": 1901, + "nodeType": "IfStatement", + "src": "22141:291:3", + "trueBody": { + "expression": { + "argumentTypes": null, + "id": 1888, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1882, + "name": "stepData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1871, + "src": "22182:8:3", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ConversionStep_$724_memory_ptr", + "typeString": "struct SovrynSwapNetwork.ConversionStep memory" + } + }, + "id": 1884, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "sourceToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 715, + "src": "22182:20:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1886, + "name": "ETH_RESERVE_ADDRESS", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 709, + "src": "22217:19:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1885, + "name": "IERC20Token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20240, + "src": "22205:11:3", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20Token_$20240_$", + "typeString": "type(contract IERC20Token)" + } + }, + "id": 1887, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "22205:32:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "src": "22182:55:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "id": 1889, + "nodeType": "ExpressionStatement", + "src": "22182:55:3" + } + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "id": 1911, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 1904, + "name": "stepData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1871, + "src": "22460:8:3", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ConversionStep_$724_memory_ptr", + "typeString": "struct SovrynSwapNetwork.ConversionStep memory" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1905, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1766, + "src": "22471:4:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_ConversionStep_$724_memory_$dyn_memory_ptr", + "typeString": "struct SovrynSwapNetwork.ConversionStep memory[] memory" + } + }, + "id": 1910, + "indexExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1909, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1906, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1766, + "src": "22476:4:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_ConversionStep_$724_memory_$dyn_memory_ptr", + "typeString": "struct SovrynSwapNetwork.ConversionStep memory[] memory" + } + }, + "id": 1907, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "22476:11:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 1908, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22490:1:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "22476:15:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "22471:21:3", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ConversionStep_$724_memory", + "typeString": "struct SovrynSwapNetwork.ConversionStep memory" + } + }, + "src": "22460:32:3", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ConversionStep_$724_memory_ptr", + "typeString": "struct SovrynSwapNetwork.ConversionStep memory" + } + }, + "id": 1912, + "nodeType": "ExpressionStatement", + "src": "22460:32:3" + }, + { + "condition": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1913, + "name": "etherTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 731, + "src": "22500:11:3", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 1916, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1914, + "name": "stepData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1871, + "src": "22512:8:3", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ConversionStep_$724_memory_ptr", + "typeString": "struct SovrynSwapNetwork.ConversionStep memory" + } + }, + "id": 1915, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "targetToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 717, + "src": "22512:20:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "22500:33:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 1940, + "nodeType": "IfStatement", + "src": "22496:422:3", + "trueBody": { + "id": 1939, + "nodeType": "Block", + "src": "22535:383:3", + "statements": [ + { + "condition": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1917, + "name": "stepData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1871, + "src": "22626:8:3", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ConversionStep_$724_memory_ptr", + "typeString": "struct SovrynSwapNetwork.ConversionStep memory" + } + }, + "id": 1918, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "isV28OrHigherConverter", + "nodeType": "MemberAccess", + "referencedDeclaration": 721, + "src": "22626:31:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "expression": { + "argumentTypes": null, + "id": 1936, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1927, + "name": "stepData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1871, + "src": "22828:8:3", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ConversionStep_$724_memory_ptr", + "typeString": "struct SovrynSwapNetwork.ConversionStep memory" + } + }, + "id": 1929, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "targetToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 717, + "src": "22828:20:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1932, + "name": "stepData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1871, + "src": "22893:8:3", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ConversionStep_$724_memory_ptr", + "typeString": "struct SovrynSwapNetwork.ConversionStep memory" + } + }, + "id": 1933, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "converter", + "nodeType": "MemberAccess", + "referencedDeclaration": 711, + "src": "22893:18:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + ], + "id": 1931, + "name": "getConverterEtherTokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2100, + "src": "22863:29:3", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_contract$_IConverter_$11817_$returns$_t_address_$", + "typeString": "function (contract IConverter) view returns (address)" + } + }, + "id": 1934, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "22863:49:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1930, + "name": "IERC20Token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20240, + "src": "22851:11:3", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20Token_$20240_$", + "typeString": "type(contract IERC20Token)" + } + }, + "id": 1935, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "22851:62:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "src": "22828:85:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "id": 1937, + "nodeType": "ExpressionStatement", + "src": "22828:85:3" + }, + "id": 1938, + "nodeType": "IfStatement", + "src": "22622:291:3", + "trueBody": { + "expression": { + "argumentTypes": null, + "id": 1925, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1919, + "name": "stepData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1871, + "src": "22663:8:3", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ConversionStep_$724_memory_ptr", + "typeString": "struct SovrynSwapNetwork.ConversionStep memory" + } + }, + "id": 1921, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "targetToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 717, + "src": "22663:20:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1923, + "name": "ETH_RESERVE_ADDRESS", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 709, + "src": "22698:19:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1922, + "name": "IERC20Token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20240, + "src": "22686:11:3", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20Token_$20240_$", + "typeString": "type(contract IERC20Token)" + } + }, + "id": 1924, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "22686:32:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "src": "22663:55:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "id": 1926, + "nodeType": "ExpressionStatement", + "src": "22663:55:3" + } + } + ] + } + }, + { + "body": { + "id": 2015, + "nodeType": "Block", + "src": "22995:931:3", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 1956, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 1952, + "name": "stepData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1871, + "src": "23000:8:3", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ConversionStep_$724_memory_ptr", + "typeString": "struct SovrynSwapNetwork.ConversionStep memory" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1953, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1766, + "src": "23011:4:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_ConversionStep_$724_memory_$dyn_memory_ptr", + "typeString": "struct SovrynSwapNetwork.ConversionStep memory[] memory" + } + }, + "id": 1955, + "indexExpression": { + "argumentTypes": null, + "id": 1954, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1787, + "src": "23016:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "23011:7:3", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ConversionStep_$724_memory", + "typeString": "struct SovrynSwapNetwork.ConversionStep memory" + } + }, + "src": "23000:18:3", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ConversionStep_$724_memory_ptr", + "typeString": "struct SovrynSwapNetwork.ConversionStep memory" + } + }, + "id": 1957, + "nodeType": "ExpressionStatement", + "src": "23000:18:3" + }, + { + "condition": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1958, + "name": "stepData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1871, + "src": "23149:8:3", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ConversionStep_$724_memory_ptr", + "typeString": "struct SovrynSwapNetwork.ConversionStep memory" + } + }, + "id": 1959, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "isV28OrHigherConverter", + "nodeType": "MemberAccess", + "referencedDeclaration": 721, + "src": "23149:31:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 2013, + "nodeType": "Block", + "src": "23807:115:3", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 2011, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2007, + "name": "stepData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1871, + "src": "23889:8:3", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ConversionStep_$724_memory_ptr", + "typeString": "struct SovrynSwapNetwork.ConversionStep memory" + } + }, + "id": 2009, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "beneficiary", + "nodeType": "MemberAccess", + "referencedDeclaration": 719, + "src": "23889:20:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 2010, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22397, + "src": "23912:4:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SovrynSwapNetwork_$2459", + "typeString": "contract SovrynSwapNetwork" + } + }, + "src": "23889:27:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 2012, + "nodeType": "ExpressionStatement", + "src": "23889:27:3" + } + ] + }, + "id": 2014, + "nodeType": "IfStatement", + "src": "23145:777:3", + "trueBody": { + "id": 2006, + "nodeType": "Block", + "src": "23182:619:3", + "statements": [ + { + "condition": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1960, + "name": "stepData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1871, + "src": "23279:8:3", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ConversionStep_$724_memory_ptr", + "typeString": "struct SovrynSwapNetwork.ConversionStep memory" + } + }, + "id": 1961, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "processAffiliateFee", + "nodeType": "MemberAccess", + "referencedDeclaration": 723, + "src": "23279:28:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1973, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1968, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1787, + "src": "23424:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1972, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1969, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1766, + "src": "23429:4:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_ConversionStep_$724_memory_$dyn_memory_ptr", + "typeString": "struct SovrynSwapNetwork.ConversionStep memory[] memory" + } + }, + "id": 1970, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "23429:11:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 1971, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "23443:1:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "23429:15:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "23424:20:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1980, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1766, + "src": "23587:4:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_ConversionStep_$724_memory_$dyn_memory_ptr", + "typeString": "struct SovrynSwapNetwork.ConversionStep memory[] memory" + } + }, + "id": 1984, + "indexExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1983, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1981, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1787, + "src": "23592:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 1982, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "23596:1:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "23592:5:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "23587:11:3", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ConversionStep_$724_memory", + "typeString": "struct SovrynSwapNetwork.ConversionStep memory" + } + }, + "id": 1985, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "isV28OrHigherConverter", + "nodeType": "MemberAccess", + "referencedDeclaration": 721, + "src": "23587:34:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "expression": { + "argumentTypes": null, + "id": 2001, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1997, + "name": "stepData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1871, + "src": "23768:8:3", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ConversionStep_$724_memory_ptr", + "typeString": "struct SovrynSwapNetwork.ConversionStep memory" + } + }, + "id": 1999, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "beneficiary", + "nodeType": "MemberAccess", + "referencedDeclaration": 719, + "src": "23768:20:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 2000, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22397, + "src": "23791:4:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SovrynSwapNetwork_$2459", + "typeString": "contract SovrynSwapNetwork" + } + }, + "src": "23768:27:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 2002, + "nodeType": "ExpressionStatement", + "src": "23768:27:3" + }, + "id": 2003, + "nodeType": "IfStatement", + "src": "23583:212:3", + "trueBody": { + "expression": { + "argumentTypes": null, + "id": 1995, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1986, + "name": "stepData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1871, + "src": "23628:8:3", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ConversionStep_$724_memory_ptr", + "typeString": "struct SovrynSwapNetwork.ConversionStep memory" + } + }, + "id": 1988, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "beneficiary", + "nodeType": "MemberAccess", + "referencedDeclaration": 719, + "src": "23628:20:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1989, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1766, + "src": "23651:4:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_ConversionStep_$724_memory_$dyn_memory_ptr", + "typeString": "struct SovrynSwapNetwork.ConversionStep memory[] memory" + } + }, + "id": 1993, + "indexExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1992, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1990, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1787, + "src": "23656:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 1991, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "23660:1:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "23656:5:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "23651:11:3", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ConversionStep_$724_memory", + "typeString": "struct SovrynSwapNetwork.ConversionStep memory" + } + }, + "id": 1994, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "converter", + "nodeType": "MemberAccess", + "referencedDeclaration": 711, + "src": "23651:21:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + "src": "23628:44:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1996, + "nodeType": "ExpressionStatement", + "src": "23628:44:3" + } + }, + "id": 2004, + "nodeType": "IfStatement", + "src": "23420:375:3", + "trueBody": { + "expression": { + "argumentTypes": null, + "id": 1978, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1974, + "name": "stepData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1871, + "src": "23451:8:3", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ConversionStep_$724_memory_ptr", + "typeString": "struct SovrynSwapNetwork.ConversionStep memory" + } + }, + "id": 1976, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "beneficiary", + "nodeType": "MemberAccess", + "referencedDeclaration": 719, + "src": "23451:20:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 1977, + "name": "_beneficiary", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1755, + "src": "23474:12:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "23451:35:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1979, + "nodeType": "ExpressionStatement", + "src": "23451:35:3" + } + }, + "id": 2005, + "nodeType": "IfStatement", + "src": "23275:520:3", + "trueBody": { + "expression": { + "argumentTypes": null, + "id": 1966, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1962, + "name": "stepData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1871, + "src": "23314:8:3", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ConversionStep_$724_memory_ptr", + "typeString": "struct SovrynSwapNetwork.ConversionStep memory" + } + }, + "id": 1964, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "beneficiary", + "nodeType": "MemberAccess", + "referencedDeclaration": 719, + "src": "23314:20:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 1965, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22397, + "src": "23337:4:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SovrynSwapNetwork_$2459", + "typeString": "contract SovrynSwapNetwork" + } + }, + "src": "23314:27:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1967, + "nodeType": "ExpressionStatement", + "src": "23314:27:3" + } + } + ] + } + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1948, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1945, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1787, + "src": "22973:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1946, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1766, + "src": "22977:4:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_ConversionStep_$724_memory_$dyn_memory_ptr", + "typeString": "struct SovrynSwapNetwork.ConversionStep memory[] memory" + } + }, + "id": 1947, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "22977:11:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "22973:15:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2016, + "initializationExpression": { + "expression": { + "argumentTypes": null, + "id": 1943, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 1941, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1787, + "src": "22966:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30", + "id": 1942, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22970:1:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "22966:5:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1944, + "nodeType": "ExpressionStatement", + "src": "22966:5:3" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 1950, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "22990:3:3", + "subExpression": { + "argumentTypes": null, + "id": 1949, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1787, + "src": "22990:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1951, + "nodeType": "ExpressionStatement", + "src": "22990:3:3" + }, + "nodeType": "ForStatement", + "src": "22961:965:3" + }, + { + "expression": { + "argumentTypes": null, + "id": 2017, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1766, + "src": "23937:4:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_ConversionStep_$724_memory_$dyn_memory_ptr", + "typeString": "struct SovrynSwapNetwork.ConversionStep memory[] memory" + } + }, + "functionReturnParameters": 1762, + "id": 2018, + "nodeType": "Return", + "src": "23930:11:3" + } + ] + }, + "documentation": "@dev creates a memory cache of all conversion steps data to minimize logic and external calls during conversions\n\t * @param _conversionPath conversion path, see conversion path format above\n@param _beneficiary wallet to receive the conversion result\n@param _affiliateFeeEnabled true if affiliate fee was requested by the sender, false if not\n\t * @return cached conversion data to be ingested later on by the conversion flow", + "id": 2020, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "createConversionData", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1758, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1753, + "name": "_conversionPath", + "nodeType": "VariableDeclaration", + "scope": 2020, + "src": "20599:29:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", + "typeString": "contract IERC20Token[]" + }, + "typeName": { + "baseType": { + "contractScope": null, + "id": 1751, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "20599:11:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "id": 1752, + "length": null, + "nodeType": "ArrayTypeName", + "src": "20599:13:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_storage_ptr", + "typeString": "contract IERC20Token[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1755, + "name": "_beneficiary", + "nodeType": "VariableDeclaration", + "scope": 2020, + "src": "20632:20:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1754, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "20632:7:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1757, + "name": "_affiliateFeeEnabled", + "nodeType": "VariableDeclaration", + "scope": 2020, + "src": "20656:25:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1756, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "20656:4:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "20595:89:3" + }, + "payable": false, + "returnParameters": { + "id": 1762, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1761, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2020, + "src": "20707:16:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_ConversionStep_$724_memory_$dyn_memory_ptr", + "typeString": "struct SovrynSwapNetwork.ConversionStep[]" + }, + "typeName": { + "baseType": { + "contractScope": null, + "id": 1759, + "name": "ConversionStep", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 724, + "src": "20707:14:3", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ConversionStep_$724_storage_ptr", + "typeString": "struct SovrynSwapNetwork.ConversionStep" + } + }, + "id": 1760, + "length": null, + "nodeType": "ArrayTypeName", + "src": "20707:16:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_ConversionStep_$724_storage_$dyn_storage_ptr", + "typeString": "struct SovrynSwapNetwork.ConversionStep[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "20706:18:3" + }, + "scope": 2459, + "src": "20566:3379:3", + "stateMutability": "view", + "superFunction": null, + "visibility": "private" + }, + { + "body": { + "id": 2058, + "nodeType": "Block", + "src": "24460:190:3", + "statements": [ + { + "assignments": [ + 2030 + ], + "declarations": [ + { + "constant": false, + "id": 2030, + "name": "allowance", + "nodeType": "VariableDeclaration", + "scope": 2059, + "src": "24464:17:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2029, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "24464:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2036, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2033, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22397, + "src": "24501:4:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SovrynSwapNetwork_$2459", + "typeString": "contract SovrynSwapNetwork" + } + }, + { + "argumentTypes": null, + "id": 2034, + "name": "_spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2024, + "src": "24507:8:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_SovrynSwapNetwork_$2459", + "typeString": "contract SovrynSwapNetwork" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 2031, + "name": "_token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2022, + "src": "24484:6:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "id": 2032, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "allowance", + "nodeType": "MemberAccess", + "referencedDeclaration": 20210, + "src": "24484:16:3", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", + "typeString": "function (address,address) view external returns (uint256)" + } + }, + "id": 2035, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "24484:32:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "24464:52:3" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2039, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2037, + "name": "allowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2030, + "src": "24524:9:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 2038, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2026, + "src": "24536:6:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "24524:18:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 2057, + "nodeType": "IfStatement", + "src": "24520:127:3", + "trueBody": { + "id": 2056, + "nodeType": "Block", + "src": "24544:103:3", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2042, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2040, + "name": "allowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2030, + "src": "24553:9:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 2041, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "24565:1:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "24553:13:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 2049, + "nodeType": "IfStatement", + "src": "24549:51:3", + "trueBody": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2044, + "name": "_token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2022, + "src": "24580:6:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + { + "argumentTypes": null, + "id": 2045, + "name": "_spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2024, + "src": "24588:8:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "hexValue": "30", + "id": 2046, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "24598:1:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 2043, + "name": "safeApprove", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21861, + "src": "24568:11:3", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20Token_$20240_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (contract IERC20Token,address,uint256)" + } + }, + "id": 2047, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "24568:32:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2048, + "nodeType": "ExpressionStatement", + "src": "24568:32:3" + } + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2051, + "name": "_token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2022, + "src": "24617:6:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + { + "argumentTypes": null, + "id": 2052, + "name": "_spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2024, + "src": "24625:8:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 2053, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2026, + "src": "24635:6:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2050, + "name": "safeApprove", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21861, + "src": "24605:11:3", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20Token_$20240_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (contract IERC20Token,address,uint256)" + } + }, + "id": 2054, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "24605:37:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2055, + "nodeType": "ExpressionStatement", + "src": "24605:37:3" + } + ] + } + } + ] + }, + "documentation": "@dev utility, checks whether allowance for the given spender exists and approves one if it doesn't.\nNote that we use the non standard erc-20 interface in which `approve` has no return value so that\nthis function will work for both standard and non standard tokens\n\t * @param _token token to check the allowance in\n@param _spender approved address\n@param _value allowance amount", + "id": 2059, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "ensureAllowance", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2027, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2022, + "name": "_token", + "nodeType": "VariableDeclaration", + "scope": 2059, + "src": "24392:18:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + "typeName": { + "contractScope": null, + "id": 2021, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "24392:11:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2024, + "name": "_spender", + "nodeType": "VariableDeclaration", + "scope": 2059, + "src": "24414:16:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2023, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "24414:7:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2026, + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 2059, + "src": "24434:14:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2025, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "24434:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "24388:63:3" + }, + "payable": false, + "returnParameters": { + "id": 2028, + "nodeType": "ParameterList", + "parameters": [], + "src": "24460:0:3" + }, + "scope": 2459, + "src": "24364:286:3", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "private" + }, + { + "body": { + "id": 2099, + "nodeType": "Block", + "src": "24818:278:3", + "statements": [ + { + "assignments": [ + 2067 + ], + "declarations": [ + { + "constant": false, + "id": 2067, + "name": "reserveCount", + "nodeType": "VariableDeclaration", + "scope": 2100, + "src": "24822:20:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2066, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "24822:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2071, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 2068, + "name": "_converter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2061, + "src": "24845:10:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + "id": 2069, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "connectorTokenCount", + "nodeType": "MemberAccess", + "referencedDeclaration": 11816, + "src": "24845:30:3", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint16_$", + "typeString": "function () view external returns (uint16)" + } + }, + "id": 2070, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "24845:32:3", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "24822:55:3" + }, + { + "body": { + "id": 2095, + "nodeType": "Block", + "src": "24924:138:3", + "statements": [ + { + "assignments": [ + 2083 + ], + "declarations": [ + { + "constant": false, + "id": 2083, + "name": "reserveTokenAddress", + "nodeType": "VariableDeclaration", + "scope": 2100, + "src": "24929:27:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2082, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "24929:7:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2088, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2086, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2073, + "src": "24986:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 2084, + "name": "_converter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2061, + "src": "24959:10:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + "id": 2085, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "connectorTokens", + "nodeType": "MemberAccess", + "referencedDeclaration": 11811, + "src": "24959:26:3", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_contract$_IERC20Token_$20240_$", + "typeString": "function (uint256) view external returns (contract IERC20Token)" + } + }, + "id": 2087, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "24959:29:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "24929:59:3" + }, + { + "condition": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2089, + "name": "etherTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 731, + "src": "24997:11:3", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 2091, + "indexExpression": { + "argumentTypes": null, + "id": 2090, + "name": "reserveTokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2083, + "src": "25009:19:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "24997:32:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 2094, + "nodeType": "IfStatement", + "src": "24993:64:3", + "trueBody": { + "expression": { + "argumentTypes": null, + "id": 2092, + "name": "reserveTokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2083, + "src": "25038:19:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 2065, + "id": 2093, + "nodeType": "Return", + "src": "25031:26:3" + } + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2078, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2076, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2073, + "src": "24901:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 2077, + "name": "reserveCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2067, + "src": "24905:12:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "24901:16:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2096, + "initializationExpression": { + "assignments": [ + 2073 + ], + "declarations": [ + { + "constant": false, + "id": 2073, + "name": "i", + "nodeType": "VariableDeclaration", + "scope": 2100, + "src": "24886:9:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2072, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "24886:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2075, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 2074, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "24898:1:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "24886:13:3" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 2080, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "24919:3:3", + "subExpression": { + "argumentTypes": null, + "id": 2079, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2073, + "src": "24919:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2081, + "nodeType": "ExpressionStatement", + "src": "24919:3:3" + }, + "nodeType": "ForStatement", + "src": "24881:181:3" + }, + { + "expression": { + "argumentTypes": null, + "id": 2097, + "name": "ETH_RESERVE_ADDRESS", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 709, + "src": "25073:19:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 2065, + "id": 2098, + "nodeType": "Return", + "src": "25066:26:3" + } + ] + }, + "documentation": null, + "id": 2100, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getConverterEtherTokenAddress", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2062, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2061, + "name": "_converter", + "nodeType": "VariableDeclaration", + "scope": 2100, + "src": "24764:21:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + }, + "typeName": { + "contractScope": null, + "id": 2060, + "name": "IConverter", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11817, + "src": "24764:10:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "24763:23:3" + }, + "payable": false, + "returnParameters": { + "id": 2065, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2064, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2100, + "src": "24809:7:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2063, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "24809:7:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "24808:9:3" + }, + "scope": 2459, + "src": "24725:371:3", + "stateMutability": "view", + "superFunction": null, + "visibility": "private" + }, + { + "body": { + "id": 2130, + "nodeType": "Block", + "src": "25357:197:3", + "statements": [ + { + "condition": { + "argumentTypes": null, + "id": 2112, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "25365:20:3", + "subExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2109, + "name": "etherTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 731, + "src": "25366:11:3", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 2111, + "indexExpression": { + "argumentTypes": null, + "id": 2110, + "name": "_token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2104, + "src": "25378:6:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "25366:19:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 2115, + "nodeType": "IfStatement", + "src": "25361:39:3", + "trueBody": { + "expression": { + "argumentTypes": null, + "id": 2113, + "name": "_token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2104, + "src": "25394:6:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "functionReturnParameters": 2108, + "id": 2114, + "nodeType": "Return", + "src": "25387:13:3" + } + }, + { + "condition": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2117, + "name": "_converter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2102, + "src": "25432:10:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + ], + "id": 2116, + "name": "isV28OrHigherConverter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2219, + "src": "25409:22:3", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_contract$_IConverter_$11817_$returns$_t_bool_$", + "typeString": "function (contract IConverter) view returns (bool)" + } + }, + "id": 2118, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "25409:34:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 2123, + "nodeType": "IfStatement", + "src": "25405:79:3", + "trueBody": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2120, + "name": "ETH_RESERVE_ADDRESS", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 709, + "src": "25464:19:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2119, + "name": "IERC20Token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20240, + "src": "25452:11:3", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20Token_$20240_$", + "typeString": "type(contract IERC20Token)" + } + }, + "id": 2121, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "25452:32:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "functionReturnParameters": 2108, + "id": 2122, + "nodeType": "Return", + "src": "25445:39:3" + } + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2126, + "name": "_converter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2102, + "src": "25538:10:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + ], + "id": 2125, + "name": "getConverterEtherTokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2100, + "src": "25508:29:3", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_contract$_IConverter_$11817_$returns$_t_address_$", + "typeString": "function (contract IConverter) view returns (address)" + } + }, + "id": 2127, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "25508:41:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2124, + "name": "IERC20Token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20240, + "src": "25496:11:3", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20Token_$20240_$", + "typeString": "type(contract IERC20Token)" + } + }, + "id": 2128, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "25496:54:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "functionReturnParameters": 2108, + "id": 2129, + "nodeType": "Return", + "src": "25489:61:3" + } + ] + }, + "documentation": null, + "id": 2131, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getConverterTokenAddress", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2105, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2102, + "name": "_converter", + "nodeType": "VariableDeclaration", + "scope": 2131, + "src": "25279:21:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + }, + "typeName": { + "contractScope": null, + "id": 2101, + "name": "IConverter", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11817, + "src": "25279:10:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2104, + "name": "_token", + "nodeType": "VariableDeclaration", + "scope": 2131, + "src": "25302:18:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + "typeName": { + "contractScope": null, + "id": 2103, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "25302:11:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "25278:43:3" + }, + "payable": false, + "returnParameters": { + "id": 2108, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2107, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2131, + "src": "25344:11:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + "typeName": { + "contractScope": null, + "id": 2106, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "25344:11:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "25343:13:3" + }, + "scope": 2459, + "src": "25245:309:3", + "stateMutability": "view", + "superFunction": null, + "visibility": "private" + }, + { + "constant": true, + "id": 2138, + "name": "GET_RETURN_FUNC_SELECTOR", + "nodeType": "VariableDeclaration", + "scope": 2459, + "src": "25557:106:3", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 2132, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "25557:6:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "67657452657475726e28616464726573732c616464726573732c75696e7432353629", + "id": 2135, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "25625:36:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_1e1401f8329fe5eb5c7e76277d3c971ffeee3a41a0eef7c00afeb0a286cef0af", + "typeString": "literal_string \"getReturn(address,address,uint256)\"" + }, + "value": "getReturn(address,address,uint256)" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_1e1401f8329fe5eb5c7e76277d3c971ffeee3a41a0eef7c00afeb0a286cef0af", + "typeString": "literal_string \"getReturn(address,address,uint256)\"" + } + ], + "id": 2134, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22332, + "src": "25615:9:3", + "typeDescriptions": { + "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", + "typeString": "function () pure returns (bytes32)" + } + }, + "id": 2136, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "25615:47:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2133, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "25608:6:3", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes4_$", + "typeString": "type(bytes4)" + }, + "typeName": "bytes4" + }, + "id": 2137, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "25608:55:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "private" + }, + { + "body": { + "id": 2178, + "nodeType": "Block", + "src": "25898:550:3", + "statements": [ + { + "assignments": [], + "declarations": [ + { + "constant": false, + "id": 2157, + "name": "ret", + "nodeType": "VariableDeclaration", + "scope": 2179, + "src": "25902:21:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", + "typeString": "uint256[2]" + }, + "typeName": { + "baseType": { + "id": 2155, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "25902:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2156, + "length": { + "argumentTypes": null, + "hexValue": "32", + "id": 2154, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "25910:1:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + }, + "value": "2" + }, + "nodeType": "ArrayTypeName", + "src": "25902:10:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr", + "typeString": "uint256[2]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2158, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "25902:21:3" + }, + { + "assignments": [ + 2160 + ], + "declarations": [ + { + "constant": false, + "id": 2160, + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 2179, + "src": "25927:17:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2159, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "25927:5:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2168, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2163, + "name": "GET_RETURN_FUNC_SELECTOR", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2138, + "src": "25970:24:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + { + "argumentTypes": null, + "id": 2164, + "name": "_sourceToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2142, + "src": "25996:12:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 2165, + "name": "_targetToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2144, + "src": "26010:12:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 2166, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2146, + "src": "26024:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 2161, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22325, + "src": "25947:3:3", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 2162, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encodeWithSelector", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "25947:22:3", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (bytes4) pure returns (bytes memory)" + } + }, + "id": 2167, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "25947:85:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "25927:105:3" + }, + { + "externalReferences": [ + { + "data": { + "declaration": 2160, + "isOffset": false, + "isSlot": false, + "src": "26237:4:3", + "valueSize": 1 + } + }, + { + "data": { + "declaration": 2160, + "isOffset": false, + "isSlot": false, + "src": "26146:4:3", + "valueSize": 1 + } + }, + { + "_dest": { + "declaration": 2140, + "isOffset": false, + "isSlot": false, + "src": "26108:5:3", + "valueSize": 1 + } + }, + { + "ret": { + "declaration": 2157, + "isOffset": false, + "isSlot": false, + "src": "26317:3:3", + "valueSize": 1 + } + } + ], + "id": 2169, + "nodeType": "InlineAssembly", + "operations": "{\n let success := staticcall(gas(), _dest, add(data, 32), mload(data), ret, 64)\n if iszero(success)\n {\n revert(0, 0)\n }\n}", + "src": "26037:390:3" + }, + { + "expression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2170, + "name": "ret", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2157, + "src": "26429:3:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", + "typeString": "uint256[2] memory" + } + }, + "id": 2172, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 2171, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "26433:1:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "26429:6:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2173, + "name": "ret", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2157, + "src": "26437:3:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", + "typeString": "uint256[2] memory" + } + }, + "id": 2175, + "indexExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 2174, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "26441:1:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "26437:6:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 2176, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "26428:16:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "functionReturnParameters": 2152, + "id": 2177, + "nodeType": "Return", + "src": "26421:23:3" + } + ] + }, + "documentation": null, + "id": 2179, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getReturn", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2147, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2140, + "name": "_dest", + "nodeType": "VariableDeclaration", + "scope": 2179, + "src": "25773:13:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2139, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "25773:7:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2142, + "name": "_sourceToken", + "nodeType": "VariableDeclaration", + "scope": 2179, + "src": "25790:20:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2141, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "25790:7:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2144, + "name": "_targetToken", + "nodeType": "VariableDeclaration", + "scope": 2179, + "src": "25814:20:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2143, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "25814:7:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2146, + "name": "_amount", + "nodeType": "VariableDeclaration", + "scope": 2179, + "src": "25838:15:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2145, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "25838:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "25769:87:3" + }, + "payable": false, + "returnParameters": { + "id": 2152, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2149, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2179, + "src": "25880:7:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2148, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "25880:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2151, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2179, + "src": "25889:7:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2150, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "25889:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "25879:18:3" + }, + "scope": 2459, + "src": "25751:697:3", + "stateMutability": "view", + "superFunction": null, + "visibility": "internal" + }, + { + "constant": true, + "id": 2186, + "name": "IS_V28_OR_HIGHER_FUNC_SELECTOR", + "nodeType": "VariableDeclaration", + "scope": 2459, + "src": "26451:93:3", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 2180, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "26451:6:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "69735632384f724869676865722829", + "id": 2183, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "26525:17:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_d260529c8620a59d78f2e58cfd1294673bb6cba228ad1f34ac7731003ab870dd", + "typeString": "literal_string \"isV28OrHigher()\"" + }, + "value": "isV28OrHigher()" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_d260529c8620a59d78f2e58cfd1294673bb6cba228ad1f34ac7731003ab870dd", + "typeString": "literal_string \"isV28OrHigher()\"" + } + ], + "id": 2182, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22332, + "src": "26515:9:3", + "typeDescriptions": { + "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", + "typeString": "function () pure returns (bytes32)" + } + }, + "id": 2184, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "26515:28:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2181, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "26508:6:3", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes4_$", + "typeString": "type(bytes4)" + }, + "typeName": "bytes4" + }, + "id": 2185, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "26508:36:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "private" + }, + { + "body": { + "id": 2218, + "nodeType": "Block", + "src": "26788:541:3", + "statements": [ + { + "assignments": [], + "declarations": [ + { + "constant": false, + "id": 2194, + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 2219, + "src": "26792:12:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2193, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "26792:4:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2195, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "26792:12:3" + }, + { + "assignments": [], + "declarations": [ + { + "constant": false, + "id": 2200, + "name": "ret", + "nodeType": "VariableDeclaration", + "scope": 2219, + "src": "26808:21:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$1_memory_ptr", + "typeString": "uint256[1]" + }, + "typeName": { + "baseType": { + "id": 2198, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "26808:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2199, + "length": { + "argumentTypes": null, + "hexValue": "31", + "id": 2197, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "26816:1:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + }, + "value": "1" + }, + "nodeType": "ArrayTypeName", + "src": "26808:10:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$1_storage_ptr", + "typeString": "uint256[1]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2201, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "26808:21:3" + }, + { + "assignments": [ + 2203 + ], + "declarations": [ + { + "constant": false, + "id": 2203, + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 2219, + "src": "26833:17:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2202, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "26833:5:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2208, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2206, + "name": "IS_V28_OR_HIGHER_FUNC_SELECTOR", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2186, + "src": "26876:30:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "expression": { + "argumentTypes": null, + "id": 2204, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22325, + "src": "26853:3:3", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 2205, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encodeWithSelector", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "26853:22:3", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (bytes4) pure returns (bytes memory)" + } + }, + "id": 2207, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "26853:54:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "26833:74:3" + }, + { + "externalReferences": [ + { + "success": { + "declaration": 2194, + "isOffset": false, + "isSlot": false, + "src": "26926:7:3", + "valueSize": 1 + } + }, + { + "data": { + "declaration": 2203, + "isOffset": false, + "isSlot": false, + "src": "27158:4:3", + "valueSize": 1 + } + }, + { + "data": { + "declaration": 2203, + "isOffset": false, + "isSlot": false, + "src": "27067:4:3", + "valueSize": 1 + } + }, + { + "_converter": { + "declaration": 2188, + "isOffset": false, + "isSlot": false, + "src": "27024:10:3", + "valueSize": 1 + } + }, + { + "ret": { + "declaration": 2200, + "isOffset": false, + "isSlot": false, + "src": "27238:3:3", + "valueSize": 1 + } + } + ], + "id": 2209, + "nodeType": "InlineAssembly", + "operations": "{\n success := staticcall(5000, _converter, add(data, 32), mload(data), ret, 32)\n}", + "src": "26912:390:3" + }, + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 2216, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2210, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2194, + "src": "27303:7:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2215, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2211, + "name": "ret", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2200, + "src": "27314:3:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$1_memory_ptr", + "typeString": "uint256[1] memory" + } + }, + "id": 2213, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 2212, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "27318:1:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "27314:6:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 2214, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "27324:1:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "27314:11:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "27303:22:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 2192, + "id": 2217, + "nodeType": "Return", + "src": "27296:29:3" + } + ] + }, + "documentation": null, + "id": 2219, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "isV28OrHigherConverter", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2189, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2188, + "name": "_converter", + "nodeType": "VariableDeclaration", + "scope": 2219, + "src": "26736:21:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + }, + "typeName": { + "contractScope": null, + "id": 2187, + "name": "IConverter", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11817, + "src": "26736:10:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "26735:23:3" + }, + "payable": false, + "returnParameters": { + "id": 2192, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2191, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2219, + "src": "26782:4:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2190, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "26782:4:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "26781:6:3" + }, + "scope": 2459, + "src": "26704:625:3", + "stateMutability": "view", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 2238, + "nodeType": "Block", + "src": "27488:46:3", + "statements": [ + { + "expression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2232, + "name": "_path", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2222, + "src": "27511:5:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", + "typeString": "contract IERC20Token[] memory" + } + }, + { + "argumentTypes": null, + "id": 2233, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2224, + "src": "27518:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", + "typeString": "contract IERC20Token[] memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2231, + "name": "rateByPath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1102, + "src": "27500:10:3", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (contract IERC20Token[] memory,uint256) view returns (uint256)" + } + }, + "id": 2234, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "27500:26:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "hexValue": "30", + "id": 2235, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "27528:1:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 2236, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "27499:31:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_rational_0_by_1_$", + "typeString": "tuple(uint256,int_const 0)" + } + }, + "functionReturnParameters": 2230, + "id": 2237, + "nodeType": "Return", + "src": "27492:38:3" + } + ] + }, + "documentation": "@dev deprecated, backward compatibility", + "id": 2239, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getReturnByPath", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2225, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2222, + "name": "_path", + "nodeType": "VariableDeclaration", + "scope": 2239, + "src": "27411:19:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", + "typeString": "contract IERC20Token[]" + }, + "typeName": { + "baseType": { + "contractScope": null, + "id": 2220, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "27411:11:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "id": 2221, + "length": null, + "nodeType": "ArrayTypeName", + "src": "27411:13:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_storage_ptr", + "typeString": "contract IERC20Token[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2224, + "name": "_amount", + "nodeType": "VariableDeclaration", + "scope": 2239, + "src": "27432:15:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2223, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "27432:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "27410:38:3" + }, + "payable": false, + "returnParameters": { + "id": 2230, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2227, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2239, + "src": "27470:7:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2226, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "27470:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2229, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2239, + "src": "27479:7:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2228, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "27479:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "27469:18:3" + }, + "scope": 2459, + "src": "27386:148:3", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 2264, + "nodeType": "Block", + "src": "27708:83:3", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2252, + "name": "_path", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2242, + "src": "27733:5:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", + "typeString": "contract IERC20Token[] memory" + } + }, + { + "argumentTypes": null, + "id": 2253, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2244, + "src": "27740:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 2254, + "name": "_minReturn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2246, + "src": "27749:10:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 2256, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "27769:1:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 2255, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "27761:7:3", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 2257, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "27761:10:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 2259, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "27781:1:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 2258, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "27773:7:3", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 2260, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "27773:10:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "hexValue": "30", + "id": 2261, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "27785:1:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", + "typeString": "contract IERC20Token[] memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 2251, + "name": "convertByPath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1230, + "src": "27719:13:3", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr_$_t_uint256_$_t_uint256_$_t_address_$_t_address_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (contract IERC20Token[] memory,uint256,uint256,address,address,uint256) returns (uint256)" + } + }, + "id": 2262, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "27719:68:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2250, + "id": 2263, + "nodeType": "Return", + "src": "27712:75:3" + } + ] + }, + "documentation": "@dev deprecated, backward compatibility", + "id": 2265, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "convert", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2247, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2242, + "name": "_path", + "nodeType": "VariableDeclaration", + "scope": 2265, + "src": "27611:19:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", + "typeString": "contract IERC20Token[]" + }, + "typeName": { + "baseType": { + "contractScope": null, + "id": 2240, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "27611:11:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "id": 2241, + "length": null, + "nodeType": "ArrayTypeName", + "src": "27611:13:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_storage_ptr", + "typeString": "contract IERC20Token[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2244, + "name": "_amount", + "nodeType": "VariableDeclaration", + "scope": 2265, + "src": "27634:15:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2243, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "27634:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2246, + "name": "_minReturn", + "nodeType": "VariableDeclaration", + "scope": 2265, + "src": "27653:18:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2245, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "27653:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "27607:67:3" + }, + "payable": true, + "returnParameters": { + "id": 2250, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2249, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2265, + "src": "27699:7:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2248, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "27699:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "27698:9:3" + }, + "scope": 2459, + "src": "27591:200:3", + "stateMutability": "payable", + "superFunction": 620, + "visibility": "public" + }, + { + "body": { + "id": 2292, + "nodeType": "Block", + "src": "28020:102:3", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2282, + "name": "_path", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2268, + "src": "28045:5:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", + "typeString": "contract IERC20Token[] memory" + } + }, + { + "argumentTypes": null, + "id": 2283, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2270, + "src": "28052:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 2284, + "name": "_minReturn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2272, + "src": "28061:10:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 2286, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "28081:1:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 2285, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "28073:7:3", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 2287, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "28073:10:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 2288, + "name": "_affiliateAccount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2274, + "src": "28085:17:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 2289, + "name": "_affiliateFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2276, + "src": "28104:13:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", + "typeString": "contract IERC20Token[] memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2281, + "name": "convertByPath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1230, + "src": "28031:13:3", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr_$_t_uint256_$_t_uint256_$_t_address_$_t_address_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (contract IERC20Token[] memory,uint256,uint256,address,address,uint256) returns (uint256)" + } + }, + "id": 2290, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "28031:87:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2280, + "id": 2291, + "nodeType": "Return", + "src": "28024:94:3" + } + ] + }, + "documentation": "@dev deprecated, backward compatibility", + "id": 2293, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "convert2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2277, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2268, + "name": "_path", + "nodeType": "VariableDeclaration", + "scope": 2293, + "src": "27869:19:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", + "typeString": "contract IERC20Token[]" + }, + "typeName": { + "baseType": { + "contractScope": null, + "id": 2266, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "27869:11:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "id": 2267, + "length": null, + "nodeType": "ArrayTypeName", + "src": "27869:13:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_storage_ptr", + "typeString": "contract IERC20Token[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2270, + "name": "_amount", + "nodeType": "VariableDeclaration", + "scope": 2293, + "src": "27892:15:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2269, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "27892:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2272, + "name": "_minReturn", + "nodeType": "VariableDeclaration", + "scope": 2293, + "src": "27911:18:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2271, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "27911:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2274, + "name": "_affiliateAccount", + "nodeType": "VariableDeclaration", + "scope": 2293, + "src": "27933:25:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2273, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "27933:7:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2276, + "name": "_affiliateFee", + "nodeType": "VariableDeclaration", + "scope": 2293, + "src": "27962:21:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2275, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "27962:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "27865:121:3" + }, + "payable": true, + "returnParameters": { + "id": 2280, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2279, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2293, + "src": "28011:7:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2278, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "28011:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "28010:9:3" + }, + "scope": 2459, + "src": "27848:274:3", + "stateMutability": "payable", + "superFunction": 556, + "visibility": "public" + }, + { + "body": { + "id": 2318, + "nodeType": "Block", + "src": "28323:85:3", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2308, + "name": "_path", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2296, + "src": "28348:5:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", + "typeString": "contract IERC20Token[] memory" + } + }, + { + "argumentTypes": null, + "id": 2309, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2298, + "src": "28355:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 2310, + "name": "_minReturn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2300, + "src": "28364:10:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 2311, + "name": "_beneficiary", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2302, + "src": "28376:12:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 2313, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "28398:1:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 2312, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "28390:7:3", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 2314, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "28390:10:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "hexValue": "30", + "id": 2315, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "28402:1:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", + "typeString": "contract IERC20Token[] memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 2307, + "name": "convertByPath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1230, + "src": "28334:13:3", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr_$_t_uint256_$_t_uint256_$_t_address_$_t_address_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (contract IERC20Token[] memory,uint256,uint256,address,address,uint256) returns (uint256)" + } + }, + "id": 2316, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "28334:70:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2306, + "id": 2317, + "nodeType": "Return", + "src": "28327:77:3" + } + ] + }, + "documentation": "@dev deprecated, backward compatibility", + "id": 2319, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "convertFor", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2303, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2296, + "name": "_path", + "nodeType": "VariableDeclaration", + "scope": 2319, + "src": "28202:19:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", + "typeString": "contract IERC20Token[]" + }, + "typeName": { + "baseType": { + "contractScope": null, + "id": 2294, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "28202:11:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "id": 2295, + "length": null, + "nodeType": "ArrayTypeName", + "src": "28202:13:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_storage_ptr", + "typeString": "contract IERC20Token[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2298, + "name": "_amount", + "nodeType": "VariableDeclaration", + "scope": 2319, + "src": "28225:15:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2297, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "28225:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2300, + "name": "_minReturn", + "nodeType": "VariableDeclaration", + "scope": 2319, + "src": "28244:18:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2299, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "28244:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2302, + "name": "_beneficiary", + "nodeType": "VariableDeclaration", + "scope": 2319, + "src": "28266:20:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2301, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "28266:7:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "28198:91:3" + }, + "payable": true, + "returnParameters": { + "id": 2306, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2305, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2319, + "src": "28314:7:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2304, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "28314:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "28313:9:3" + }, + "scope": 2459, + "src": "28179:229:3", + "stateMutability": "payable", + "superFunction": 646, + "visibility": "public" + }, + { + "body": { + "id": 2349, + "nodeType": "Block", + "src": "28692:104:3", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2341, + "name": "_path", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2322, + "src": "28717:5:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", + "typeString": "contract IERC20Token[] memory" + } + }, + { + "argumentTypes": null, + "id": 2342, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2324, + "src": "28724:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 2343, + "name": "_minReturn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2326, + "src": "28733:10:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 2344, + "name": "_beneficiary", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2328, + "src": "28745:12:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 2345, + "name": "_affiliateAccount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2330, + "src": "28759:17:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 2346, + "name": "_affiliateFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2332, + "src": "28778:13:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", + "typeString": "contract IERC20Token[] memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2340, + "name": "convertByPath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1230, + "src": "28703:13:3", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr_$_t_uint256_$_t_uint256_$_t_address_$_t_address_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (contract IERC20Token[] memory,uint256,uint256,address,address,uint256) returns (uint256)" + } + }, + "id": 2347, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "28703:89:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2339, + "id": 2348, + "nodeType": "Return", + "src": "28696:96:3" + } + ] + }, + "documentation": "@dev deprecated, backward compatibility", + "id": 2350, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 2335, + "name": "_minReturn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2326, + "src": "28662:10:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 2336, + "modifierName": { + "argumentTypes": null, + "id": 2334, + "name": "greaterThanZero", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21988, + "src": "28646:15:3", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$", + "typeString": "modifier (uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "28646:27:3" + } + ], + "name": "convertFor2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2333, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2322, + "name": "_path", + "nodeType": "VariableDeclaration", + "scope": 2350, + "src": "28489:19:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", + "typeString": "contract IERC20Token[]" + }, + "typeName": { + "baseType": { + "contractScope": null, + "id": 2320, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "28489:11:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "id": 2321, + "length": null, + "nodeType": "ArrayTypeName", + "src": "28489:13:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_storage_ptr", + "typeString": "contract IERC20Token[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2324, + "name": "_amount", + "nodeType": "VariableDeclaration", + "scope": 2350, + "src": "28512:15:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2323, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "28512:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2326, + "name": "_minReturn", + "nodeType": "VariableDeclaration", + "scope": 2350, + "src": "28531:18:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2325, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "28531:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2328, + "name": "_beneficiary", + "nodeType": "VariableDeclaration", + "scope": 2350, + "src": "28553:20:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2327, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "28553:7:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2330, + "name": "_affiliateAccount", + "nodeType": "VariableDeclaration", + "scope": 2350, + "src": "28577:25:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2329, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "28577:7:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2332, + "name": "_affiliateFee", + "nodeType": "VariableDeclaration", + "scope": 2350, + "src": "28606:21:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2331, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "28606:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "28485:145:3" + }, + "payable": true, + "returnParameters": { + "id": 2339, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2338, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2350, + "src": "28683:7:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2337, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "28683:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "28682:9:3" + }, + "scope": 2459, + "src": "28465:331:3", + "stateMutability": "payable", + "superFunction": 590, + "visibility": "public" + }, + { + "body": { + "id": 2375, + "nodeType": "Block", + "src": "28970:83:3", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2363, + "name": "_path", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2353, + "src": "28995:5:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", + "typeString": "contract IERC20Token[] memory" + } + }, + { + "argumentTypes": null, + "id": 2364, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2355, + "src": "29002:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 2365, + "name": "_minReturn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2357, + "src": "29011:10:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 2367, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29031:1:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 2366, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "29023:7:3", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 2368, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "29023:10:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 2370, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29043:1:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 2369, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "29035:7:3", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 2371, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "29035:10:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "hexValue": "30", + "id": 2372, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29047:1:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", + "typeString": "contract IERC20Token[] memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 2362, + "name": "convertByPath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1230, + "src": "28981:13:3", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr_$_t_uint256_$_t_uint256_$_t_address_$_t_address_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (contract IERC20Token[] memory,uint256,uint256,address,address,uint256) returns (uint256)" + } + }, + "id": 2373, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "28981:68:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2361, + "id": 2374, + "nodeType": "Return", + "src": "28974:75:3" + } + ] + }, + "documentation": "@dev deprecated, backward compatibility", + "id": 2376, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "claimAndConvert", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2358, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2353, + "name": "_path", + "nodeType": "VariableDeclaration", + "scope": 2376, + "src": "28881:19:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", + "typeString": "contract IERC20Token[]" + }, + "typeName": { + "baseType": { + "contractScope": null, + "id": 2351, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "28881:11:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "id": 2352, + "length": null, + "nodeType": "ArrayTypeName", + "src": "28881:13:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_storage_ptr", + "typeString": "contract IERC20Token[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2355, + "name": "_amount", + "nodeType": "VariableDeclaration", + "scope": 2376, + "src": "28904:15:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2354, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "28904:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2357, + "name": "_minReturn", + "nodeType": "VariableDeclaration", + "scope": 2376, + "src": "28923:18:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2356, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "28923:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "28877:67:3" + }, + "payable": false, + "returnParameters": { + "id": 2361, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2360, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2376, + "src": "28961:7:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2359, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "28961:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "28960:9:3" + }, + "scope": 2459, + "src": "28853:200:3", + "stateMutability": "nonpayable", + "superFunction": 632, + "visibility": "public" + }, + { + "body": { + "id": 2403, + "nodeType": "Block", + "src": "29282:102:3", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2393, + "name": "_path", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2379, + "src": "29307:5:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", + "typeString": "contract IERC20Token[] memory" + } + }, + { + "argumentTypes": null, + "id": 2394, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2381, + "src": "29314:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 2395, + "name": "_minReturn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2383, + "src": "29323:10:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 2397, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29343:1:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 2396, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "29335:7:3", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 2398, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "29335:10:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 2399, + "name": "_affiliateAccount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2385, + "src": "29347:17:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 2400, + "name": "_affiliateFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2387, + "src": "29366:13:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", + "typeString": "contract IERC20Token[] memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2392, + "name": "convertByPath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1230, + "src": "29293:13:3", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr_$_t_uint256_$_t_uint256_$_t_address_$_t_address_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (contract IERC20Token[] memory,uint256,uint256,address,address,uint256) returns (uint256)" + } + }, + "id": 2401, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "29293:87:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2391, + "id": 2402, + "nodeType": "Return", + "src": "29286:94:3" + } + ] + }, + "documentation": "@dev deprecated, backward compatibility", + "id": 2404, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "claimAndConvert2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2388, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2379, + "name": "_path", + "nodeType": "VariableDeclaration", + "scope": 2404, + "src": "29139:19:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", + "typeString": "contract IERC20Token[]" + }, + "typeName": { + "baseType": { + "contractScope": null, + "id": 2377, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "29139:11:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "id": 2378, + "length": null, + "nodeType": "ArrayTypeName", + "src": "29139:13:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_storage_ptr", + "typeString": "contract IERC20Token[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2381, + "name": "_amount", + "nodeType": "VariableDeclaration", + "scope": 2404, + "src": "29162:15:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2380, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "29162:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2383, + "name": "_minReturn", + "nodeType": "VariableDeclaration", + "scope": 2404, + "src": "29181:18:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2382, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "29181:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2385, + "name": "_affiliateAccount", + "nodeType": "VariableDeclaration", + "scope": 2404, + "src": "29203:25:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2384, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "29203:7:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2387, + "name": "_affiliateFee", + "nodeType": "VariableDeclaration", + "scope": 2404, + "src": "29232:21:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2386, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "29232:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "29135:121:3" + }, + "payable": false, + "returnParameters": { + "id": 2391, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2390, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2404, + "src": "29273:7:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2389, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "29273:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "29272:9:3" + }, + "scope": 2459, + "src": "29110:274:3", + "stateMutability": "nonpayable", + "superFunction": 572, + "visibility": "public" + }, + { + "body": { + "id": 2429, + "nodeType": "Block", + "src": "29585:85:3", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2419, + "name": "_path", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2407, + "src": "29610:5:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", + "typeString": "contract IERC20Token[] memory" + } + }, + { + "argumentTypes": null, + "id": 2420, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2409, + "src": "29617:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 2421, + "name": "_minReturn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2411, + "src": "29626:10:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 2422, + "name": "_beneficiary", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2413, + "src": "29638:12:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 2424, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29660:1:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 2423, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "29652:7:3", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 2425, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "29652:10:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "hexValue": "30", + "id": 2426, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29664:1:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", + "typeString": "contract IERC20Token[] memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 2418, + "name": "convertByPath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1230, + "src": "29596:13:3", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr_$_t_uint256_$_t_uint256_$_t_address_$_t_address_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (contract IERC20Token[] memory,uint256,uint256,address,address,uint256) returns (uint256)" + } + }, + "id": 2427, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "29596:70:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2417, + "id": 2428, + "nodeType": "Return", + "src": "29589:77:3" + } + ] + }, + "documentation": "@dev deprecated, backward compatibility", + "id": 2430, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "claimAndConvertFor", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2414, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2407, + "name": "_path", + "nodeType": "VariableDeclaration", + "scope": 2430, + "src": "29472:19:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", + "typeString": "contract IERC20Token[]" + }, + "typeName": { + "baseType": { + "contractScope": null, + "id": 2405, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "29472:11:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "id": 2406, + "length": null, + "nodeType": "ArrayTypeName", + "src": "29472:13:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_storage_ptr", + "typeString": "contract IERC20Token[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2409, + "name": "_amount", + "nodeType": "VariableDeclaration", + "scope": 2430, + "src": "29495:15:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2408, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "29495:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2411, + "name": "_minReturn", + "nodeType": "VariableDeclaration", + "scope": 2430, + "src": "29514:18:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2410, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "29514:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2413, + "name": "_beneficiary", + "nodeType": "VariableDeclaration", + "scope": 2430, + "src": "29536:20:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2412, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "29536:7:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "29468:91:3" + }, + "payable": false, + "returnParameters": { + "id": 2417, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2416, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2430, + "src": "29576:7:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2415, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "29576:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "29575:9:3" + }, + "scope": 2459, + "src": "29441:229:3", + "stateMutability": "nonpayable", + "superFunction": 660, + "visibility": "public" + }, + { + "body": { + "id": 2457, + "nodeType": "Block", + "src": "29926:104:3", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2449, + "name": "_path", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2433, + "src": "29951:5:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", + "typeString": "contract IERC20Token[] memory" + } + }, + { + "argumentTypes": null, + "id": 2450, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2435, + "src": "29958:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 2451, + "name": "_minReturn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2437, + "src": "29967:10:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 2452, + "name": "_beneficiary", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2439, + "src": "29979:12:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 2453, + "name": "_affiliateAccount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2441, + "src": "29993:17:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 2454, + "name": "_affiliateFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2443, + "src": "30012:13:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", + "typeString": "contract IERC20Token[] memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2448, + "name": "convertByPath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1230, + "src": "29937:13:3", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr_$_t_uint256_$_t_uint256_$_t_address_$_t_address_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (contract IERC20Token[] memory,uint256,uint256,address,address,uint256) returns (uint256)" + } + }, + "id": 2455, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "29937:89:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2447, + "id": 2456, + "nodeType": "Return", + "src": "29930:96:3" + } + ] + }, + "documentation": "@dev deprecated, backward compatibility", + "id": 2458, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "claimAndConvertFor2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2444, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2433, + "name": "_path", + "nodeType": "VariableDeclaration", + "scope": 2458, + "src": "29759:19:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", + "typeString": "contract IERC20Token[]" + }, + "typeName": { + "baseType": { + "contractScope": null, + "id": 2431, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "29759:11:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "id": 2432, + "length": null, + "nodeType": "ArrayTypeName", + "src": "29759:13:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_storage_ptr", + "typeString": "contract IERC20Token[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2435, + "name": "_amount", + "nodeType": "VariableDeclaration", + "scope": 2458, + "src": "29782:15:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2434, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "29782:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2437, + "name": "_minReturn", + "nodeType": "VariableDeclaration", + "scope": 2458, + "src": "29801:18:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2436, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "29801:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2439, + "name": "_beneficiary", + "nodeType": "VariableDeclaration", + "scope": 2458, + "src": "29823:20:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2438, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "29823:7:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2441, + "name": "_affiliateAccount", + "nodeType": "VariableDeclaration", + "scope": 2458, + "src": "29847:25:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2440, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "29847:7:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2443, + "name": "_affiliateFee", + "nodeType": "VariableDeclaration", + "scope": 2458, + "src": "29876:21:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2442, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "29876:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "29755:145:3" + }, + "payable": false, + "returnParameters": { + "id": 2447, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2446, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2458, + "src": "29917:7:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2445, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "29917:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "29916:9:3" + }, + "scope": 2459, + "src": "29727:303:3", + "stateMutability": "nonpayable", + "superFunction": 608, + "visibility": "public" + } + ], + "scope": 2460, + "src": "1919:28113:3" + } + ], + "src": "0:30033:3" + }, + "id": 3 + }, + "solidity/contracts/converter/ConverterBase.sol": { + "ast": { + "absolutePath": "solidity/contracts/converter/ConverterBase.sol", + "exportedSymbols": { + "ConverterBase": [ + 3414 + ] + }, + "id": 3415, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2461, + "literals": [ + "solidity", + "0.4", + ".26" + ], + "nodeType": "PragmaDirective", + "src": "0:23:4" + }, + { + "absolutePath": "solidity/contracts/converter/interfaces/IConverter.sol", + "file": "./interfaces/IConverter.sol", + "id": 2462, + "nodeType": "ImportDirective", + "scope": 3415, + "sourceUnit": 11818, + "src": "24:37:4", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "solidity/contracts/converter/interfaces/IConverterAnchor.sol", + "file": "./interfaces/IConverterAnchor.sol", + "id": 2463, + "nodeType": "ImportDirective", + "scope": 3415, + "sourceUnit": 11827, + "src": "62:43:4", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "solidity/contracts/converter/interfaces/IConverterUpgrader.sol", + "file": "./interfaces/IConverterUpgrader.sol", + "id": 2464, + "nodeType": "ImportDirective", + "scope": 3415, + "sourceUnit": 12141, + "src": "106:45:4", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "solidity/contracts/converter/interfaces/ISovrynSwapFormula.sol", + "file": "./interfaces/ISovrynSwapFormula.sol", + "id": 2465, + "nodeType": "ImportDirective", + "scope": 3415, + "sourceUnit": 12241, + "src": "152:45:4", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "solidity/contracts/ISovrynSwapNetwork.sol", + "file": "../ISovrynSwapNetwork.sol", + "id": 2466, + "nodeType": "ImportDirective", + "scope": 3415, + "sourceUnit": 662, + "src": "198:35:4", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "solidity/contracts/utility/ContractRegistryClient.sol", + "file": "../utility/ContractRegistryClient.sol", + "id": 2467, + "nodeType": "ImportDirective", + "scope": 3415, + "sourceUnit": 20933, + "src": "234:47:4", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "solidity/contracts/utility/ReentrancyGuard.sol", + "file": "../utility/ReentrancyGuard.sol", + "id": 2468, + "nodeType": "ImportDirective", + "scope": 3415, + "sourceUnit": 21711, + "src": "282:40:4", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "solidity/contracts/utility/SafeMath.sol", + "file": "../utility/SafeMath.sol", + "id": 2469, + "nodeType": "ImportDirective", + "scope": 3415, + "sourceUnit": 21818, + "src": "323:33:4", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "solidity/contracts/utility/TokenHandler.sol", + "file": "../utility/TokenHandler.sol", + "id": 2470, + "nodeType": "ImportDirective", + "scope": 3415, + "sourceUnit": 21934, + "src": "357:37:4", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "solidity/contracts/utility/TokenHolder.sol", + "file": "../utility/TokenHolder.sol", + "id": 2471, + "nodeType": "ImportDirective", + "scope": 3415, + "sourceUnit": 21977, + "src": "395:36:4", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "solidity/contracts/token/interfaces/IEtherToken.sol", + "file": "../token/interfaces/IEtherToken.sol", + "id": 2472, + "nodeType": "ImportDirective", + "scope": 3415, + "sourceUnit": 20267, + "src": "432:45:4", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "solidity/contracts/sovrynswapx/interfaces/ISovrynSwapX.sol", + "file": "../sovrynswapx/interfaces/ISovrynSwapX.sol", + "id": 2473, + "nodeType": "ImportDirective", + "scope": 3415, + "sourceUnit": 19467, + "src": "478:52:4", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 2474, + "name": "IConverter", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11817, + "src": "1606:10:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + "id": 2475, + "nodeType": "InheritanceSpecifier", + "src": "1606:10:4" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 2476, + "name": "TokenHandler", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 21933, + "src": "1618:12:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_TokenHandler_$21933", + "typeString": "contract TokenHandler" + } + }, + "id": 2477, + "nodeType": "InheritanceSpecifier", + "src": "1618:12:4" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 2478, + "name": "TokenHolder", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 21976, + "src": "1632:11:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_TokenHolder_$21976", + "typeString": "contract TokenHolder" + } + }, + "id": 2479, + "nodeType": "InheritanceSpecifier", + "src": "1632:11:4" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 2480, + "name": "ContractRegistryClient", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20932, + "src": "1645:22:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ContractRegistryClient_$20932", + "typeString": "contract ContractRegistryClient" + } + }, + "id": 2481, + "nodeType": "InheritanceSpecifier", + "src": "1645:22:4" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 2482, + "name": "ReentrancyGuard", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 21710, + "src": "1669:15:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ReentrancyGuard_$21710", + "typeString": "contract ReentrancyGuard" + } + }, + "id": 2483, + "nodeType": "InheritanceSpecifier", + "src": "1669:15:4" + } + ], + "contractDependencies": [ + 11817, + 20932, + 21324, + 21710, + 21933, + 21976, + 22052, + 22247, + 22313 + ], + "contractKind": "contract", + "documentation": "@dev ConverterBase\n * The converter contains the main logic for conversions between different ERC20 tokens.\n * It is also the upgradable part of the mechanism (note that upgrades are opt-in).\n * The anchor must be set on construction and cannot be changed afterwards.\nWrappers are provided for some of the anchor's functions, for easier access.\n * Once the converter accepts ownership of the anchor, it becomes the anchor's sole controller\nand can execute any of its functions.\n * To upgrade the converter, anchor ownership must be transferred to a new converter, along with\nany relevant data.\n * Note that the converter can transfer anchor ownership to a new converter that\ndoesn't allow upgrades anymore, for finalizing the relationship between the converter\nand the anchor.\n * Converter types (defined as uint16 type) -\n0 = liquid token converter\n1 = liquidity pool v1 converter\n2 = liquidity pool v2 converter\n * Note that converters don't currently support tokens with transfer fees.", + "fullyImplemented": false, + "id": 3414, + "linearizedBaseContracts": [ + 3414, + 21710, + 20932, + 21976, + 22052, + 21324, + 21933, + 22313, + 11817, + 22247 + ], + "name": "ConverterBase", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 2486, + "libraryName": { + "contractScope": null, + "id": 2484, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 21817, + "src": "1694:8:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$21817", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "1688:27:4", + "typeName": { + "id": 2485, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1707:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "constant": true, + "id": 2489, + "name": "WEIGHT_RESOLUTION", + "nodeType": "VariableDeclaration", + "scope": 3414, + "src": "1718:52:4", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 2487, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "1718:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "31303030303030", + "id": 2488, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1763:7:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000_by_1", + "typeString": "int_const 1000000" + }, + "value": "1000000" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 2492, + "name": "CONVERSION_FEE_RESOLUTION", + "nodeType": "VariableDeclaration", + "scope": 3414, + "src": "1773:60:4", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 2490, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "1773:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "31303030303030", + "id": 2491, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1826:7:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000_by_1", + "typeString": "int_const 1000000" + }, + "value": "1000000" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 2495, + "name": "ETH_RESERVE_ADDRESS", + "nodeType": "VariableDeclaration", + "scope": 3414, + "src": "1836:90:4", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2493, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1836:7:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "307845656565654565656545654565654565456545656545454565656565456565656565656545456545", + "id": 2494, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1884:42:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "value": "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE" + }, + "visibility": "internal" + }, + { + "canonicalName": "ConverterBase.Reserve", + "id": 2506, + "members": [ + { + "constant": false, + "id": 2497, + "name": "balance", + "nodeType": "VariableDeclaration", + "scope": 2506, + "src": "1949:15:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2496, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1949:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2499, + "name": "weight", + "nodeType": "VariableDeclaration", + "scope": 2506, + "src": "1987:13:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 2498, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "1987:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2501, + "name": "deprecated1", + "nodeType": "VariableDeclaration", + "scope": 2506, + "src": "2053:16:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2500, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2053:4:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2503, + "name": "deprecated2", + "nodeType": "VariableDeclaration", + "scope": 2506, + "src": "2087:16:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2502, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2087:4:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2505, + "name": "isSet", + "nodeType": "VariableDeclaration", + "scope": 2506, + "src": "2121:10:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2504, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2121:4:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "name": "Reserve", + "nodeType": "StructDefinition", + "scope": 3414, + "src": "1930:254:4", + "visibility": "public" + }, + { + "constant": true, + "id": 2509, + "name": "version", + "nodeType": "VariableDeclaration", + "scope": 3414, + "src": "2221:35:4", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 2507, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "2221:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "3332", + "id": 2508, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2254:2:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + "value": "32" + }, + "visibility": "public" + }, + { + "constant": false, + "id": 2511, + "name": "anchor", + "nodeType": "VariableDeclaration", + "scope": 3414, + "src": "2260:30:4", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + }, + "typeName": { + "contractScope": null, + "id": 2510, + "name": "IConverterAnchor", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11826, + "src": "2260:16:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 2513, + "name": "conversionWhitelist", + "nodeType": "VariableDeclaration", + "scope": 3414, + "src": "2322:37:4", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWhitelist_$22323", + "typeString": "contract IWhitelist" + }, + "typeName": { + "contractScope": null, + "id": 2512, + "name": "IWhitelist", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 22323, + "src": "2322:10:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWhitelist_$22323", + "typeString": "contract IWhitelist" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 2516, + "name": "reserveTokens", + "nodeType": "VariableDeclaration", + "scope": 3414, + "src": "2445:34:4", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_storage", + "typeString": "contract IERC20Token[]" + }, + "typeName": { + "baseType": { + "contractScope": null, + "id": 2514, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "2445:11:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "id": 2515, + "length": null, + "nodeType": "ArrayTypeName", + "src": "2445:13:4", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_storage_ptr", + "typeString": "contract IERC20Token[]" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 2520, + "name": "reserves", + "nodeType": "VariableDeclaration", + "scope": 3414, + "src": "2566:43:4", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Reserve_$2506_storage_$", + "typeString": "mapping(address => struct ConverterBase.Reserve)" + }, + "typeName": { + "id": 2519, + "keyType": { + "id": 2517, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2574:7:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "2566:27:4", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Reserve_$2506_storage_$", + "typeString": "mapping(address => struct ConverterBase.Reserve)" + }, + "valueType": { + "contractScope": null, + "id": 2518, + "name": "Reserve", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2506, + "src": "2585:7:4", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Reserve_$2506_storage_ptr", + "typeString": "struct ConverterBase.Reserve" + } + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 2523, + "name": "reserveRatio", + "nodeType": "VariableDeclaration", + "scope": 3414, + "src": "2700:30:4", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 2521, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "2700:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "30", + "id": 2522, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2729:1:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "visibility": "public" + }, + { + "constant": false, + "id": 2526, + "name": "maxConversionFee", + "nodeType": "VariableDeclaration", + "scope": 3414, + "src": "2818:34:4", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 2524, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "2818:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "30", + "id": 2525, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2851:1:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "visibility": "public" + }, + { + "constant": false, + "id": 2529, + "name": "conversionFee", + "nodeType": "VariableDeclaration", + "scope": 3414, + "src": "2993:31:4", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 2527, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "2993:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "30", + "id": 2528, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3023:1:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "visibility": "public" + }, + { + "constant": true, + "id": 2532, + "name": "conversionsEnabled", + "nodeType": "VariableDeclaration", + "scope": 3414, + "src": "3095:46:4", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2530, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3095:4:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 2531, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3137:4:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "visibility": "public" + }, + { + "anonymous": false, + "documentation": "@dev triggered when the converter is activated\n\t * @param _type converter type\n@param _anchor converter anchor\n@param _activated true if the converter was activated, false if it was deactivated", + "id": 2540, + "name": "Activation", + "nodeType": "EventDefinition", + "parameters": { + "id": 2539, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2534, + "indexed": true, + "name": "_type", + "nodeType": "VariableDeclaration", + "scope": 2540, + "src": "3434:20:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 2533, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "3434:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2536, + "indexed": true, + "name": "_anchor", + "nodeType": "VariableDeclaration", + "scope": 2540, + "src": "3456:32:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + }, + "typeName": { + "contractScope": null, + "id": 2535, + "name": "IConverterAnchor", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11826, + "src": "3456:16:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2538, + "indexed": true, + "name": "_activated", + "nodeType": "VariableDeclaration", + "scope": 2540, + "src": "3490:23:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2537, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3490:4:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3433:81:4" + }, + "src": "3417:98:4" + }, + { + "anonymous": false, + "documentation": "@dev triggered when a conversion between two tokens occurs\n\t * @param _fromToken source ERC20 token\n@param _toToken target ERC20 token\n@param _trader wallet that initiated the trade\n@param _amount amount converted, in the source token\n@param _return amount returned, minus conversion fee\n@param _conversionFee conversion fee", + "id": 2554, + "name": "Conversion", + "nodeType": "EventDefinition", + "parameters": { + "id": 2553, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2542, + "indexed": true, + "name": "_fromToken", + "nodeType": "VariableDeclaration", + "scope": 2554, + "src": "3944:26:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2541, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3944:7:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2544, + "indexed": true, + "name": "_toToken", + "nodeType": "VariableDeclaration", + "scope": 2554, + "src": "3974:24:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2543, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3974:7:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2546, + "indexed": true, + "name": "_trader", + "nodeType": "VariableDeclaration", + "scope": 2554, + "src": "4002:23:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2545, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4002:7:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2548, + "indexed": false, + "name": "_amount", + "nodeType": "VariableDeclaration", + "scope": 2554, + "src": "4029:15:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2547, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4029:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2550, + "indexed": false, + "name": "_return", + "nodeType": "VariableDeclaration", + "scope": 2554, + "src": "4048:15:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2549, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4048:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2552, + "indexed": false, + "name": "_conversionFee", + "nodeType": "VariableDeclaration", + "scope": 2554, + "src": "4067:21:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 2551, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "4067:6:4", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3940:151:4" + }, + "src": "3924:168:4" + }, + { + "anonymous": false, + "documentation": "@dev triggered when the rate between two tokens in the converter changes\nnote that the event might be dispatched for rate updates between any two tokens in the converter\nnote that prior to version 28, you should use the 'PriceDataUpdate' event instead\n\t * @param _token1 address of the first token\n@param _token2 address of the second token\n@param _rateN rate of 1 unit of `_token1` in `_token2` (numerator)\n@param _rateD rate of 1 unit of `_token1` in `_token2` (denominator)", + "id": 2564, + "name": "TokenRateUpdate", + "nodeType": "EventDefinition", + "parameters": { + "id": 2563, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2556, + "indexed": true, + "name": "_token1", + "nodeType": "VariableDeclaration", + "scope": 2564, + "src": "4638:23:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2555, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4638:7:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2558, + "indexed": true, + "name": "_token2", + "nodeType": "VariableDeclaration", + "scope": 2564, + "src": "4663:23:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2557, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4663:7:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2560, + "indexed": false, + "name": "_rateN", + "nodeType": "VariableDeclaration", + "scope": 2564, + "src": "4688:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2559, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4688:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2562, + "indexed": false, + "name": "_rateD", + "nodeType": "VariableDeclaration", + "scope": 2564, + "src": "4704:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2561, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4704:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4637:82:4" + }, + "src": "4616:104:4" + }, + { + "anonymous": false, + "documentation": "@dev triggered when the conversion fee is updated\n\t * @param _prevFee previous fee percentage, represented in ppm\n@param _newFee new fee percentage, represented in ppm", + "id": 2570, + "name": "ConversionFeeUpdate", + "nodeType": "EventDefinition", + "parameters": { + "id": 2569, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2566, + "indexed": false, + "name": "_prevFee", + "nodeType": "VariableDeclaration", + "scope": 2570, + "src": "4948:15:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 2565, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "4948:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2568, + "indexed": false, + "name": "_newFee", + "nodeType": "VariableDeclaration", + "scope": 2570, + "src": "4965:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 2567, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "4965:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4947:33:4" + }, + "src": "4922:59:4" + }, + { + "body": { + "id": 2596, + "nodeType": "Block", + "src": "5476:64:4", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 2590, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 2588, + "name": "anchor", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2511 + ], + "referencedDeclaration": 2511, + "src": "5480:6:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 2589, + "name": "_anchor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2572, + "src": "5489:7:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + }, + "src": "5480:16:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + }, + "id": 2591, + "nodeType": "ExpressionStatement", + "src": "5480:16:4" + }, + { + "expression": { + "argumentTypes": null, + "id": 2594, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 2592, + "name": "maxConversionFee", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2526 + ], + "referencedDeclaration": 2526, + "src": "5500:16:4", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 2593, + "name": "_maxConversionFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2576, + "src": "5519:17:4", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "5500:36:4", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "id": 2595, + "nodeType": "ExpressionStatement", + "src": "5500:36:4" + } + ] + }, + "documentation": "@dev used by sub-contracts to initialize a new converter\n\t * @param _anchor anchor governed by the converter\n@param _registry address of a contract registry contract\n@param _maxConversionFee maximum conversion fee, represented in ppm", + "id": 2597, + "implemented": true, + "isConstructor": true, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 2579, + "name": "_anchor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2572, + "src": "5395:7:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + } + ], + "id": 2580, + "modifierName": { + "argumentTypes": null, + "id": 2578, + "name": "validAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22011, + "src": "5382:12:4", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_address_$", + "typeString": "modifier (address)" + } + }, + "nodeType": "ModifierInvocation", + "src": "5382:21:4" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 2582, + "name": "_registry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2574, + "src": "5427:9:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IContractRegistry_$22220", + "typeString": "contract IContractRegistry" + } + } + ], + "id": 2583, + "modifierName": { + "argumentTypes": null, + "id": 2581, + "name": "ContractRegistryClient", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20932, + "src": "5404:22:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ContractRegistryClient_$20932_$", + "typeString": "type(contract ContractRegistryClient)" + } + }, + "nodeType": "ModifierInvocation", + "src": "5404:33:4" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 2585, + "name": "_maxConversionFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2576, + "src": "5457:17:4", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + } + ], + "id": 2586, + "modifierName": { + "argumentTypes": null, + "id": 2584, + "name": "validConversionFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2666, + "src": "5438:18:4", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint32_$", + "typeString": "modifier (uint32)" + } + }, + "nodeType": "ModifierInvocation", + "src": "5438:37:4" + } + ], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2577, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2572, + "name": "_anchor", + "nodeType": "VariableDeclaration", + "scope": 2597, + "src": "5286:24:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + }, + "typeName": { + "contractScope": null, + "id": 2571, + "name": "IConverterAnchor", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11826, + "src": "5286:16:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2574, + "name": "_registry", + "nodeType": "VariableDeclaration", + "scope": 2597, + "src": "5314:27:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IContractRegistry_$22220", + "typeString": "contract IContractRegistry" + }, + "typeName": { + "contractScope": null, + "id": 2573, + "name": "IContractRegistry", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 22220, + "src": "5314:17:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IContractRegistry_$22220", + "typeString": "contract IContractRegistry" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2576, + "name": "_maxConversionFee", + "nodeType": "VariableDeclaration", + "scope": 2597, + "src": "5345:24:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 2575, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "5345:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5282:90:4" + }, + "payable": false, + "returnParameters": { + "id": 2587, + "nodeType": "ParameterList", + "parameters": [], + "src": "5476:0:4" + }, + "scope": 3414, + "src": "5271:269:4", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 2603, + "nodeType": "Block", + "src": "5602:22:4", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2599, + "name": "_active", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2614, + "src": "5606:7:4", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$__$", + "typeString": "function () view" + } + }, + "id": 2600, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5606:9:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2601, + "nodeType": "ExpressionStatement", + "src": "5606:9:4" + }, + { + "id": 2602, + "nodeType": "PlaceholderStatement", + "src": "5619:1:4" + } + ] + }, + "documentation": null, + "id": 2604, + "name": "active", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 2598, + "nodeType": "ParameterList", + "parameters": [], + "src": "5599:2:4" + }, + "src": "5584:40:4", + "visibility": "internal" + }, + { + "body": { + "id": 2613, + "nodeType": "Block", + "src": "5703:43:4", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2608, + "name": "isActive", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2802 + ], + "referencedDeclaration": 2802, + "src": "5715:8:4", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$", + "typeString": "function () view returns (bool)" + } + }, + "id": 2609, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5715:10:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4552525f494e414354495645", + "id": 2610, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5727:14:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_a22dd8039fb80c8642cf17389b806c873aa9fbdbf3f2bd8746d8ce373ef50f9e", + "typeString": "literal_string \"ERR_INACTIVE\"" + }, + "value": "ERR_INACTIVE" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_a22dd8039fb80c8642cf17389b806c873aa9fbdbf3f2bd8746d8ce373ef50f9e", + "typeString": "literal_string \"ERR_INACTIVE\"" + } + ], + "id": 2607, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 22341, + 22342 + ], + "referencedDeclaration": 22342, + "src": "5707:7:4", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2611, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5707:35:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2612, + "nodeType": "ExpressionStatement", + "src": "5707:35:4" + } + ] + }, + "documentation": null, + "id": 2614, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "_active", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2605, + "nodeType": "ParameterList", + "parameters": [], + "src": "5686:2:4" + }, + "payable": false, + "returnParameters": { + "id": 2606, + "nodeType": "ParameterList", + "parameters": [], + "src": "5703:0:4" + }, + "scope": 3414, + "src": "5670:76:4", + "stateMutability": "view", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 2620, + "nodeType": "Block", + "src": "5814:24:4", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2616, + "name": "_inactive", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2632, + "src": "5818:9:4", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$__$", + "typeString": "function () view" + } + }, + "id": 2617, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5818:11:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2618, + "nodeType": "ExpressionStatement", + "src": "5818:11:4" + }, + { + "id": 2619, + "nodeType": "PlaceholderStatement", + "src": "5833:1:4" + } + ] + }, + "documentation": null, + "id": 2621, + "name": "inactive", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 2615, + "nodeType": "ParameterList", + "parameters": [], + "src": "5811:2:4" + }, + "src": "5794:44:4", + "visibility": "internal" + }, + { + "body": { + "id": 2631, + "nodeType": "Block", + "src": "5919:42:4", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2627, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "5931:11:4", + "subExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2625, + "name": "isActive", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2802 + ], + "referencedDeclaration": 2802, + "src": "5932:8:4", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$", + "typeString": "function () view returns (bool)" + } + }, + "id": 2626, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5932:10:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4552525f414354495645", + "id": 2628, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5944:12:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_181d3d32638945611c2cb46b623de141c5e74a32dcd850864f64837aa849ee3f", + "typeString": "literal_string \"ERR_ACTIVE\"" + }, + "value": "ERR_ACTIVE" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_181d3d32638945611c2cb46b623de141c5e74a32dcd850864f64837aa849ee3f", + "typeString": "literal_string \"ERR_ACTIVE\"" + } + ], + "id": 2624, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 22341, + 22342 + ], + "referencedDeclaration": 22342, + "src": "5923:7:4", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2629, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5923:34:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2630, + "nodeType": "ExpressionStatement", + "src": "5923:34:4" + } + ] + }, + "documentation": null, + "id": 2632, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "_inactive", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2622, + "nodeType": "ParameterList", + "parameters": [], + "src": "5902:2:4" + }, + "payable": false, + "returnParameters": { + "id": 2623, + "nodeType": "ParameterList", + "parameters": [], + "src": "5919:0:4" + }, + "scope": 3414, + "src": "5884:77:4", + "stateMutability": "view", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 2641, + "nodeType": "Block", + "src": "6111:36:4", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2637, + "name": "_address", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2634, + "src": "6129:8:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + ], + "id": 2636, + "name": "_validReserve", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2656, + "src": "6115:13:4", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_contract$_IERC20Token_$20240_$returns$__$", + "typeString": "function (contract IERC20Token) view" + } + }, + "id": 2638, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6115:23:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2639, + "nodeType": "ExpressionStatement", + "src": "6115:23:4" + }, + { + "id": 2640, + "nodeType": "PlaceholderStatement", + "src": "6142:1:4" + } + ] + }, + "documentation": null, + "id": 2642, + "name": "validReserve", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 2635, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2634, + "name": "_address", + "nodeType": "VariableDeclaration", + "scope": 2642, + "src": "6089:20:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + "typeName": { + "contractScope": null, + "id": 2633, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "6089:11:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6088:22:4" + }, + "src": "6067:80:4", + "visibility": "internal" + }, + { + "body": { + "id": 2655, + "nodeType": "Block", + "src": "6252:64:4", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2648, + "name": "reserves", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2520, + "src": "6264:8:4", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Reserve_$2506_storage_$", + "typeString": "mapping(address => struct ConverterBase.Reserve storage ref)" + } + }, + "id": 2650, + "indexExpression": { + "argumentTypes": null, + "id": 2649, + "name": "_address", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2644, + "src": "6273:8:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6264:18:4", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Reserve_$2506_storage", + "typeString": "struct ConverterBase.Reserve storage ref" + } + }, + "id": 2651, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "isSet", + "nodeType": "MemberAccess", + "referencedDeclaration": 2505, + "src": "6264:24:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4552525f494e56414c49445f52455345525645", + "id": 2652, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6290:21:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_2f153897d46b1410527faf37dfe95496d4a79980282840ba17da0adc4406792c", + "typeString": "literal_string \"ERR_INVALID_RESERVE\"" + }, + "value": "ERR_INVALID_RESERVE" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_2f153897d46b1410527faf37dfe95496d4a79980282840ba17da0adc4406792c", + "typeString": "literal_string \"ERR_INVALID_RESERVE\"" + } + ], + "id": 2647, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 22341, + 22342 + ], + "referencedDeclaration": 22342, + "src": "6256:7:4", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2653, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6256:56:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2654, + "nodeType": "ExpressionStatement", + "src": "6256:56:4" + } + ] + }, + "documentation": null, + "id": 2656, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "_validReserve", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2645, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2644, + "name": "_address", + "nodeType": "VariableDeclaration", + "scope": 2656, + "src": "6216:20:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + "typeName": { + "contractScope": null, + "id": 2643, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "6216:11:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6215:22:4" + }, + "payable": false, + "returnParameters": { + "id": 2646, + "nodeType": "ParameterList", + "parameters": [], + "src": "6252:0:4" + }, + "scope": 3414, + "src": "6193:123:4", + "stateMutability": "view", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 2665, + "nodeType": "Block", + "src": "6399:48:4", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2661, + "name": "_conversionFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2658, + "src": "6423:14:4", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + ], + "id": 2660, + "name": "_validConversionFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2679, + "src": "6403:19:4", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint32_$returns$__$", + "typeString": "function (uint32) pure" + } + }, + "id": 2662, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6403:35:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2663, + "nodeType": "ExpressionStatement", + "src": "6403:35:4" + }, + { + "id": 2664, + "nodeType": "PlaceholderStatement", + "src": "6442:1:4" + } + ] + }, + "documentation": null, + "id": 2666, + "name": "validConversionFee", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 2659, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2658, + "name": "_conversionFee", + "nodeType": "VariableDeclaration", + "scope": 2666, + "src": "6376:21:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 2657, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "6376:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6375:23:4" + }, + "src": "6348:99:4", + "visibility": "internal" + }, + { + "body": { + "id": 2678, + "nodeType": "Block", + "src": "6559:90:4", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 2674, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2672, + "name": "_conversionFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2668, + "src": "6571:14:4", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "id": 2673, + "name": "CONVERSION_FEE_RESOLUTION", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2492, + "src": "6589:25:4", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "6571:43:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4552525f494e56414c49445f434f4e56455253494f4e5f464545", + "id": 2675, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6616:28:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_ae729833ea0b2cfd1b35fa1d075ae330e76860b5ab276fa04bde88b85e5c4d00", + "typeString": "literal_string \"ERR_INVALID_CONVERSION_FEE\"" + }, + "value": "ERR_INVALID_CONVERSION_FEE" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_ae729833ea0b2cfd1b35fa1d075ae330e76860b5ab276fa04bde88b85e5c4d00", + "typeString": "literal_string \"ERR_INVALID_CONVERSION_FEE\"" + } + ], + "id": 2671, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 22341, + 22342 + ], + "referencedDeclaration": 22342, + "src": "6563:7:4", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2676, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6563:82:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2677, + "nodeType": "ExpressionStatement", + "src": "6563:82:4" + } + ] + }, + "documentation": null, + "id": 2679, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "_validConversionFee", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2669, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2668, + "name": "_conversionFee", + "nodeType": "VariableDeclaration", + "scope": 2679, + "src": "6522:21:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 2667, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "6522:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6521:23:4" + }, + "payable": false, + "returnParameters": { + "id": 2670, + "nodeType": "ParameterList", + "parameters": [], + "src": "6559:0:4" + }, + "scope": 3414, + "src": "6493:156:4", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 2688, + "nodeType": "Block", + "src": "6725:41:4", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2684, + "name": "_weight", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2681, + "src": "6749:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + ], + "id": 2683, + "name": "_validReserveWeight", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2706, + "src": "6729:19:4", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint32_$returns$__$", + "typeString": "function (uint32) pure" + } + }, + "id": 2685, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6729:28:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2686, + "nodeType": "ExpressionStatement", + "src": "6729:28:4" + }, + { + "id": 2687, + "nodeType": "PlaceholderStatement", + "src": "6761:1:4" + } + ] + }, + "documentation": null, + "id": 2689, + "name": "validReserveWeight", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 2682, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2681, + "name": "_weight", + "nodeType": "VariableDeclaration", + "scope": 2689, + "src": "6709:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 2680, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "6709:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6708:16:4" + }, + "src": "6681:85:4", + "visibility": "internal" + }, + { + "body": { + "id": 2705, + "nodeType": "Block", + "src": "6871:90:4", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 2701, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 2697, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2695, + "name": "_weight", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2691, + "src": "6883:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 2696, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6893:1:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "6883:11:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 2700, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2698, + "name": "_weight", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2691, + "src": "6898:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "id": 2699, + "name": "WEIGHT_RESOLUTION", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2489, + "src": "6909:17:4", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "6898:28:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "6883:43:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4552525f494e56414c49445f524553455256455f574549474854", + "id": 2702, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6928:28:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_e4e4c57eb13b428a7fc031dc1f6f2c3e13b61f7d7b93994b2d17f8dc75658178", + "typeString": "literal_string \"ERR_INVALID_RESERVE_WEIGHT\"" + }, + "value": "ERR_INVALID_RESERVE_WEIGHT" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_e4e4c57eb13b428a7fc031dc1f6f2c3e13b61f7d7b93994b2d17f8dc75658178", + "typeString": "literal_string \"ERR_INVALID_RESERVE_WEIGHT\"" + } + ], + "id": 2694, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 22341, + 22342 + ], + "referencedDeclaration": 22342, + "src": "6875:7:4", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2703, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6875:82:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2704, + "nodeType": "ExpressionStatement", + "src": "6875:82:4" + } + ] + }, + "documentation": null, + "id": 2706, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "_validReserveWeight", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2692, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2691, + "name": "_weight", + "nodeType": "VariableDeclaration", + "scope": 2706, + "src": "6841:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 2690, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "6841:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6840:16:4" + }, + "payable": false, + "returnParameters": { + "id": 2693, + "nodeType": "ParameterList", + "parameters": [], + "src": "6871:0:4" + }, + "scope": 3414, + "src": "6812:149:4", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 2717, + "nodeType": "Block", + "src": "7085:256:4", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2710, + "name": "reserves", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2520, + "src": "7097:8:4", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Reserve_$2506_storage_$", + "typeString": "mapping(address => struct ConverterBase.Reserve storage ref)" + } + }, + "id": 2712, + "indexExpression": { + "argumentTypes": null, + "id": 2711, + "name": "ETH_RESERVE_ADDRESS", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2495, + "src": "7106:19:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7097:29:4", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Reserve_$2506_storage", + "typeString": "struct ConverterBase.Reserve storage ref" + } + }, + "id": 2713, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "isSet", + "nodeType": "MemberAccess", + "referencedDeclaration": 2505, + "src": "7097:35:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4552525f494e56414c49445f52455345525645", + "id": 2714, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7134:21:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_2f153897d46b1410527faf37dfe95496d4a79980282840ba17da0adc4406792c", + "typeString": "literal_string \"ERR_INVALID_RESERVE\"" + }, + "value": "ERR_INVALID_RESERVE" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_2f153897d46b1410527faf37dfe95496d4a79980282840ba17da0adc4406792c", + "typeString": "literal_string \"ERR_INVALID_RESERVE\"" + } + ], + "id": 2709, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 22341, + 22342 + ], + "referencedDeclaration": 22342, + "src": "7089:7:4", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2715, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7089:67:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2716, + "nodeType": "ExpressionStatement", + "src": "7089:67:4" + } + ] + }, + "documentation": "@dev deposits ether\ncan only be called if the converter has an ETH reserve", + "id": 2718, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2707, + "nodeType": "ParameterList", + "parameters": [], + "src": "7065:2:4" + }, + "payable": true, + "returnParameters": { + "id": 2708, + "nodeType": "ParameterList", + "parameters": [], + "src": "7085:0:4" + }, + "scope": 3414, + "src": "7057:284:4", + "stateMutability": "payable", + "superFunction": 11730, + "visibility": "external" + }, + { + "body": { + "id": 2764, + "nodeType": "Block", + "src": "7777:357:4", + "statements": [ + { + "assignments": [ + 2733 + ], + "declarations": [ + { + "constant": false, + "id": 2733, + "name": "converterUpgrader", + "nodeType": "VariableDeclaration", + "scope": 2765, + "src": "7781:25:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2732, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7781:7:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2737, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2735, + "name": "CONVERTER_UPGRADER", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20767, + "src": "7819:18:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2734, + "name": "addressOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20931, + "src": "7809:9:4", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$", + "typeString": "function (bytes32) view returns (address)" + } + }, + "id": 2736, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7809:29:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7781:57:4" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 2745, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2741, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "7937:11:4", + "subExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2739, + "name": "isActive", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2802 + ], + "referencedDeclaration": 2802, + "src": "7938:8:4", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$", + "typeString": "function () view returns (bool)" + } + }, + "id": 2740, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7938:10:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 2744, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2742, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 21241 + ], + "referencedDeclaration": 21241, + "src": "7952:5:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 2743, + "name": "converterUpgrader", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2733, + "src": "7961:17:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "7952:26:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "7937:41:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4552525f4143434553535f44454e494544", + "id": 2746, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7980:19:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_f5894269650d3e1726ed81a4f48c5b62c7dd6fa025b89d639952a7012960d666", + "typeString": "literal_string \"ERR_ACCESS_DENIED\"" + }, + "value": "ERR_ACCESS_DENIED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_f5894269650d3e1726ed81a4f48c5b62c7dd6fa025b89d639952a7012960d666", + "typeString": "literal_string \"ERR_ACCESS_DENIED\"" + } + ], + "id": 2738, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 22341, + 22342 + ], + "referencedDeclaration": 22342, + "src": "7929:7:4", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2747, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7929:71:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2748, + "nodeType": "ExpressionStatement", + "src": "7929:71:4" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2753, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22401, + "src": "8025:4:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ConverterBase_$3414", + "typeString": "contract ConverterBase" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_ConverterBase_$3414", + "typeString": "contract ConverterBase" + } + ], + "id": 2752, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8017:7:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 2754, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8017:13:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 2755, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balance", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8017:21:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 2749, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2720, + "src": "8004:3:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 2751, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8004:12:4", + "typeDescriptions": { + "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 2756, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8004:35:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2757, + "nodeType": "ExpressionStatement", + "src": "8004:35:4" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2760, + "name": "ETH_RESERVE_ADDRESS", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2495, + "src": "8109:19:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2759, + "name": "IERC20Token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20240, + "src": "8097:11:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20Token_$20240_$", + "typeString": "type(contract IERC20Token)" + } + }, + "id": 2761, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8097:32:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + ], + "id": 2758, + "name": "syncReserveBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3237, + "src": "8078:18:4", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20Token_$20240_$returns$__$", + "typeString": "function (contract IERC20Token)" + } + }, + "id": 2762, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8078:52:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2763, + "nodeType": "ExpressionStatement", + "src": "8078:52:4" + } + ] + }, + "documentation": "@dev withdraws ether\ncan only be called by the owner if the converter is inactive or by upgrader contract\ncan only be called after the upgrader contract has accepted the ownership of this contract\ncan only be called if the converter has an ETH reserve\n\t * @param _to address to send the ETH to", + "id": 2765, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 2723, + "modifierName": { + "argumentTypes": null, + "id": 2722, + "name": "protected", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21698, + "src": "7710:9:4", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "7710:9:4" + }, + { + "arguments": null, + "id": 2725, + "modifierName": { + "argumentTypes": null, + "id": 2724, + "name": "ownerOnly", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21265, + "src": "7720:9:4", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "7720:9:4" + }, + { + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2728, + "name": "ETH_RESERVE_ADDRESS", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2495, + "src": "7755:19:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2727, + "name": "IERC20Token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20240, + "src": "7743:11:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20Token_$20240_$", + "typeString": "type(contract IERC20Token)" + } + }, + "id": 2729, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7743:32:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + } + ], + "id": 2730, + "modifierName": { + "argumentTypes": null, + "id": 2726, + "name": "validReserve", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2642, + "src": "7730:12:4", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_contract$_IERC20Token_$20240_$", + "typeString": "modifier (contract IERC20Token)" + } + }, + "nodeType": "ModifierInvocation", + "src": "7730:46:4" + } + ], + "name": "withdrawETH", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2721, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2720, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 2765, + "src": "7690:11:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2719, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7690:7:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "7689:13:4" + }, + "payable": false, + "returnParameters": { + "id": 2731, + "nodeType": "ParameterList", + "parameters": [], + "src": "7777:0:4" + }, + "scope": 3414, + "src": "7669:465:4", + "stateMutability": "nonpayable", + "superFunction": 11762, + "visibility": "public" + }, + { + "body": { + "id": 2772, + "nodeType": "Block", + "src": "8334:19:4", + "statements": [ + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 2770, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8345:4:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 2769, + "id": 2771, + "nodeType": "Return", + "src": "8338:11:4" + } + ] + }, + "documentation": "@dev checks whether or not the converter version is 28 or higher\n\t * @return true, since the converter version is 28 or higher", + "id": 2773, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "isV28OrHigher", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2766, + "nodeType": "ParameterList", + "parameters": [], + "src": "8304:2:4" + }, + "payable": false, + "returnParameters": { + "id": 2769, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2768, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2773, + "src": "8328:4:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2767, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "8328:4:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8327:6:4" + }, + "scope": 3414, + "src": "8282:71:4", + "stateMutability": "pure", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 2787, + "nodeType": "Block", + "src": "8783:40:4", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 2785, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 2783, + "name": "conversionWhitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2513 + ], + "referencedDeclaration": 2513, + "src": "8787:19:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWhitelist_$22323", + "typeString": "contract IWhitelist" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 2784, + "name": "_whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2775, + "src": "8809:10:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWhitelist_$22323", + "typeString": "contract IWhitelist" + } + }, + "src": "8787:32:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWhitelist_$22323", + "typeString": "contract IWhitelist" + } + }, + "id": 2786, + "nodeType": "ExpressionStatement", + "src": "8787:32:4" + } + ] + }, + "documentation": "@dev allows the owner to update & enable the conversion whitelist contract address\nwhen set, only addresses that are whitelisted are actually allowed to use the converter\nnote that the whitelist check is actually done by the SovrynSwapNetwork contract\n\t * @param _whitelist address of a whitelist contract", + "id": 2788, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 2778, + "modifierName": { + "argumentTypes": null, + "id": 2777, + "name": "ownerOnly", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21265, + "src": "8753:9:4", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "8753:9:4" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 2780, + "name": "_whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2775, + "src": "8771:10:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWhitelist_$22323", + "typeString": "contract IWhitelist" + } + } + ], + "id": 2781, + "modifierName": { + "argumentTypes": null, + "id": 2779, + "name": "notThis", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22036, + "src": "8763:7:4", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_address_$", + "typeString": "modifier (address)" + } + }, + "nodeType": "ModifierInvocation", + "src": "8763:19:4" + } + ], + "name": "setConversionWhitelist", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2776, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2775, + "name": "_whitelist", + "nodeType": "VariableDeclaration", + "scope": 2788, + "src": "8723:21:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWhitelist_$22323", + "typeString": "contract IWhitelist" + }, + "typeName": { + "contractScope": null, + "id": 2774, + "name": "IWhitelist", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 22323, + "src": "8723:10:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWhitelist_$22323", + "typeString": "contract IWhitelist" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8722:23:4" + }, + "payable": false, + "returnParameters": { + "id": 2782, + "nodeType": "ParameterList", + "parameters": [], + "src": "8783:0:4" + }, + "scope": 3414, + "src": "8691:132:4", + "stateMutability": "nonpayable", + "superFunction": 11748, + "visibility": "public" + }, + { + "body": { + "id": 2801, + "nodeType": "Block", + "src": "9014:46:4", + "statements": [ + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 2799, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 2793, + "name": "anchor", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2511 + ], + "referencedDeclaration": 2511, + "src": "9025:6:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + }, + "id": 2794, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "owner", + "nodeType": "MemberAccess", + "referencedDeclaration": 22238, + "src": "9025:12:4", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", + "typeString": "function () view external returns (address)" + } + }, + "id": 2795, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9025:14:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2797, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22401, + "src": "9051:4:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ConverterBase_$3414", + "typeString": "contract ConverterBase" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_ConverterBase_$3414", + "typeString": "contract ConverterBase" + } + ], + "id": 2796, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9043:7:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 2798, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9043:13:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "9025:31:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 2792, + "id": 2800, + "nodeType": "Return", + "src": "9018:38:4" + } + ] + }, + "documentation": "@dev returns true if the converter is active, false otherwise\n\t * @return true if the converter is active, false otherwise", + "id": 2802, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "isActive", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2789, + "nodeType": "ParameterList", + "parameters": [], + "src": "8984:2:4" + }, + "payable": false, + "returnParameters": { + "id": 2792, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2791, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2802, + "src": "9008:4:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2790, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "9008:4:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9007:6:4" + }, + "scope": 3414, + "src": "8967:93:4", + "stateMutability": "view", + "superFunction": 11668, + "visibility": "public" + }, + { + "body": { + "id": 2818, + "nodeType": "Block", + "src": "9462:43:4", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2815, + "name": "_newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2804, + "src": "9491:9:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 2812, + "name": "anchor", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2511 + ], + "referencedDeclaration": 2511, + "src": "9466:6:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + }, + "id": 2814, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transferOwnership", + "nodeType": "MemberAccess", + "referencedDeclaration": 22243, + "src": "9466:24:4", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$", + "typeString": "function (address) external" + } + }, + "id": 2816, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9466:35:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2817, + "nodeType": "ExpressionStatement", + "src": "9466:35:4" + } + ] + }, + "documentation": "@dev transfers the anchor ownership\nthe new owner needs to accept the transfer\ncan only be called by the converter upgrder while the upgrader is the owner\nnote that prior to version 28, you should use 'transferAnchorOwnership' instead\n\t * @param _newOwner new token owner", + "id": 2819, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 2807, + "modifierName": { + "argumentTypes": null, + "id": 2806, + "name": "ownerOnly", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21265, + "src": "9427:9:4", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "9427:9:4" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 2809, + "name": "CONVERTER_UPGRADER", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20767, + "src": "9442:18:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "id": 2810, + "modifierName": { + "argumentTypes": null, + "id": 2808, + "name": "only", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20801, + "src": "9437:4:4", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_bytes32_$", + "typeString": "modifier (bytes32)" + } + }, + "nodeType": "ModifierInvocation", + "src": "9437:24:4" + } + ], + "name": "transferAnchorOwnership", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2805, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2804, + "name": "_newOwner", + "nodeType": "VariableDeclaration", + "scope": 2819, + "src": "9401:17:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2803, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9401:7:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9400:19:4" + }, + "payable": false, + "returnParameters": { + "id": 2811, + "nodeType": "ParameterList", + "parameters": [], + "src": "9462:0:4" + }, + "scope": 3414, + "src": "9368:137:4", + "stateMutability": "nonpayable", + "superFunction": 11735, + "visibility": "public" + }, + { + "body": { + "id": 2840, + "nodeType": "Block", + "src": "9846:177:4", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "id": 2828, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2825, + "name": "reserveTokenCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2984, + "src": "9913:17:4", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint16_$", + "typeString": "function () view returns (uint16)" + } + }, + "id": 2826, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9913:19:4", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 2827, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9935:1:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "9913:23:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4552525f494e56414c49445f524553455256455f434f554e54", + "id": 2829, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9938:27:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_ed94f14d8dcbb423a259b4072978fc0c494c6af1fea066a19023afb1a76ac87f", + "typeString": "literal_string \"ERR_INVALID_RESERVE_COUNT\"" + }, + "value": "ERR_INVALID_RESERVE_COUNT" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_ed94f14d8dcbb423a259b4072978fc0c494c6af1fea066a19023afb1a76ac87f", + "typeString": "literal_string \"ERR_INVALID_RESERVE_COUNT\"" + } + ], + "id": 2824, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 22341, + 22342 + ], + "referencedDeclaration": 22342, + "src": "9905:7:4", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2830, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9905:61:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2831, + "nodeType": "ExpressionStatement", + "src": "9905:61:4" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 2832, + "name": "anchor", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2511 + ], + "referencedDeclaration": 2511, + "src": "9970:6:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + }, + "id": 2834, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "acceptOwnership", + "nodeType": "MemberAccess", + "referencedDeclaration": 22246, + "src": "9970:22:4", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$__$returns$__$", + "typeString": "function () external" + } + }, + "id": 2835, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9970:24:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2836, + "nodeType": "ExpressionStatement", + "src": "9970:24:4" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2837, + "name": "syncReserveBalances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3263, + "src": "9998:19:4", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", + "typeString": "function ()" + } + }, + "id": 2838, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9998:21:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2839, + "nodeType": "ExpressionStatement", + "src": "9998:21:4" + } + ] + }, + "documentation": "@dev accepts ownership of the anchor after an ownership transfer\nmost converters are also activated as soon as they accept the anchor ownership\ncan only be called by the contract owner\nnote that prior to version 28, you should use 'acceptTokenOwnership' instead", + "id": 2841, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 2822, + "modifierName": { + "argumentTypes": null, + "id": 2821, + "name": "ownerOnly", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21265, + "src": "9836:9:4", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "9836:9:4" + } + ], + "name": "acceptAnchorOwnership", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2820, + "nodeType": "ParameterList", + "parameters": [], + "src": "9826:2:4" + }, + "payable": false, + "returnParameters": { + "id": 2823, + "nodeType": "ParameterList", + "parameters": [], + "src": "9846:0:4" + }, + "scope": 3414, + "src": "9796:227:4", + "stateMutability": "nonpayable", + "superFunction": 11738, + "visibility": "public" + }, + { + "body": { + "id": 2860, + "nodeType": "Block", + "src": "10396:51:4", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2855, + "name": "_token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2843, + "src": "10422:6:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + { + "argumentTypes": null, + "id": 2856, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2845, + "src": "10430:3:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 2857, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2847, + "src": "10435:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 2852, + "name": "anchor", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2511 + ], + "referencedDeclaration": 2511, + "src": "10400:6:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + }, + "id": 2854, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "withdrawTokens", + "nodeType": "MemberAccess", + "referencedDeclaration": 22312, + "src": "10400:21:4", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_contract$_IERC20Token_$20240_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (contract IERC20Token,address,uint256) external" + } + }, + "id": 2858, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10400:43:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2859, + "nodeType": "ExpressionStatement", + "src": "10400:43:4" + } + ] + }, + "documentation": "@dev withdraws tokens held by the anchor and sends them to an account\ncan only be called by the owner\n\t * @param _token ERC20 token contract address\n@param _to account to receive the new amount\n@param _amount amount to withdraw", + "id": 2861, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 2850, + "modifierName": { + "argumentTypes": null, + "id": 2849, + "name": "ownerOnly", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21265, + "src": "10386:9:4", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "10386:9:4" + } + ], + "name": "withdrawFromAnchor", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2848, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2843, + "name": "_token", + "nodeType": "VariableDeclaration", + "scope": 2861, + "src": "10323:18:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + "typeName": { + "contractScope": null, + "id": 2842, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "10323:11:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2845, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 2861, + "src": "10345:11:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2844, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10345:7:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2847, + "name": "_amount", + "nodeType": "VariableDeclaration", + "scope": 2861, + "src": "10360:15:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2846, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10360:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10319:59:4" + }, + "payable": false, + "returnParameters": { + "id": 2851, + "nodeType": "ParameterList", + "parameters": [], + "src": "10396:0:4" + }, + "scope": 3414, + "src": "10292:155:4", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 2884, + "nodeType": "Block", + "src": "10684:174:4", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 2871, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2869, + "name": "_conversionFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2863, + "src": "10696:14:4", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "id": 2870, + "name": "maxConversionFee", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2526 + ], + "referencedDeclaration": 2526, + "src": "10714:16:4", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "10696:34:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4552525f494e56414c49445f434f4e56455253494f4e5f464545", + "id": 2872, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10732:28:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_ae729833ea0b2cfd1b35fa1d075ae330e76860b5ab276fa04bde88b85e5c4d00", + "typeString": "literal_string \"ERR_INVALID_CONVERSION_FEE\"" + }, + "value": "ERR_INVALID_CONVERSION_FEE" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_ae729833ea0b2cfd1b35fa1d075ae330e76860b5ab276fa04bde88b85e5c4d00", + "typeString": "literal_string \"ERR_INVALID_CONVERSION_FEE\"" + } + ], + "id": 2868, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 22341, + 22342 + ], + "referencedDeclaration": 22342, + "src": "10688:7:4", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2873, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10688:73:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2874, + "nodeType": "ExpressionStatement", + "src": "10688:73:4" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2876, + "name": "conversionFee", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2529 + ], + "referencedDeclaration": 2529, + "src": "10790:13:4", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + { + "argumentTypes": null, + "id": 2877, + "name": "_conversionFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2863, + "src": "10805:14:4", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + ], + "id": 2875, + "name": "ConversionFeeUpdate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2570, + "src": "10770:19:4", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint32_$_t_uint32_$returns$__$", + "typeString": "function (uint32,uint32)" + } + }, + "id": 2878, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10770:50:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2879, + "nodeType": "EmitStatement", + "src": "10765:55:4" + }, + { + "expression": { + "argumentTypes": null, + "id": 2882, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 2880, + "name": "conversionFee", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2529 + ], + "referencedDeclaration": 2529, + "src": "10824:13:4", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 2881, + "name": "_conversionFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2863, + "src": "10840:14:4", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "10824:30:4", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "id": 2883, + "nodeType": "ExpressionStatement", + "src": "10824:30:4" + } + ] + }, + "documentation": "@dev updates the current conversion fee\ncan only be called by the contract owner\n\t * @param _conversionFee new conversion fee, represented in ppm", + "id": 2885, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 2866, + "modifierName": { + "argumentTypes": null, + "id": 2865, + "name": "ownerOnly", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21265, + "src": "10674:9:4", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "10674:9:4" + } + ], + "name": "setConversionFee", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2864, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2863, + "name": "_conversionFee", + "nodeType": "VariableDeclaration", + "scope": 2885, + "src": "10644:21:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 2862, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "10644:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10643:23:4" + }, + "payable": false, + "returnParameters": { + "id": 2867, + "nodeType": "ParameterList", + "parameters": [], + "src": "10684:0:4" + }, + "scope": 3414, + "src": "10618:240:4", + "stateMutability": "nonpayable", + "superFunction": 11743, + "visibility": "public" + }, + { + "body": { + "id": 2938, + "nodeType": "Block", + "src": "11392:491:4", + "statements": [ + { + "assignments": [ + 2899 + ], + "declarations": [ + { + "constant": false, + "id": 2899, + "name": "converterUpgrader", + "nodeType": "VariableDeclaration", + "scope": 2939, + "src": "11396:25:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2898, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11396:7:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2903, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2901, + "name": "CONVERTER_UPGRADER", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20767, + "src": "11434:18:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2900, + "name": "addressOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20931, + "src": "11424:9:4", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$", + "typeString": "function (bytes32) view returns (address)" + } + }, + "id": 2902, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11424:29:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "11396:57:4" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 2917, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 2913, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2909, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "11621:23:4", + "subExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2905, + "name": "reserves", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2520, + "src": "11622:8:4", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Reserve_$2506_storage_$", + "typeString": "mapping(address => struct ConverterBase.Reserve storage ref)" + } + }, + "id": 2907, + "indexExpression": { + "argumentTypes": null, + "id": 2906, + "name": "_token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2887, + "src": "11631:6:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "11622:16:4", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Reserve_$2506_storage", + "typeString": "struct ConverterBase.Reserve storage ref" + } + }, + "id": 2908, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "isSet", + "nodeType": "MemberAccess", + "referencedDeclaration": 2505, + "src": "11622:22:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "id": 2912, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "11648:11:4", + "subExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2910, + "name": "isActive", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2802 + ], + "referencedDeclaration": 2802, + "src": "11649:8:4", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$", + "typeString": "function () view returns (bool)" + } + }, + "id": 2911, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11649:10:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "11621:38:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 2916, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2914, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 21241 + ], + "referencedDeclaration": 21241, + "src": "11663:5:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 2915, + "name": "converterUpgrader", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2899, + "src": "11672:17:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "11663:26:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "11621:68:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4552525f4143434553535f44454e494544", + "id": 2918, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11691:19:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_f5894269650d3e1726ed81a4f48c5b62c7dd6fa025b89d639952a7012960d666", + "typeString": "literal_string \"ERR_ACCESS_DENIED\"" + }, + "value": "ERR_ACCESS_DENIED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_f5894269650d3e1726ed81a4f48c5b62c7dd6fa025b89d639952a7012960d666", + "typeString": "literal_string \"ERR_ACCESS_DENIED\"" + } + ], + "id": 2904, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 22341, + 22342 + ], + "referencedDeclaration": 22342, + "src": "11613:7:4", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2919, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11613:98:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2920, + "nodeType": "ExpressionStatement", + "src": "11613:98:4" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2924, + "name": "_token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2887, + "src": "11736:6:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + { + "argumentTypes": null, + "id": 2925, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2889, + "src": "11744:3:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 2926, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2891, + "src": "11749:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 2921, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22402, + "src": "11715:5:4", + "typeDescriptions": { + "typeIdentifier": "t_super$_ConverterBase_$3414", + "typeString": "contract super ConverterBase" + } + }, + "id": 2923, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "withdrawTokens", + "nodeType": "MemberAccess", + "referencedDeclaration": 21975, + "src": "11715:20:4", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20Token_$20240_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (contract IERC20Token,address,uint256)" + } + }, + "id": 2927, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11715:42:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2928, + "nodeType": "ExpressionStatement", + "src": "11715:42:4" + }, + { + "condition": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2929, + "name": "reserves", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2520, + "src": "11829:8:4", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Reserve_$2506_storage_$", + "typeString": "mapping(address => struct ConverterBase.Reserve storage ref)" + } + }, + "id": 2931, + "indexExpression": { + "argumentTypes": null, + "id": 2930, + "name": "_token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2887, + "src": "11838:6:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "11829:16:4", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Reserve_$2506_storage", + "typeString": "struct ConverterBase.Reserve storage ref" + } + }, + "id": 2932, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "isSet", + "nodeType": "MemberAccess", + "referencedDeclaration": 2505, + "src": "11829:22:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 2937, + "nodeType": "IfStatement", + "src": "11825:54:4", + "trueBody": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2934, + "name": "_token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2887, + "src": "11872:6:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + ], + "id": 2933, + "name": "syncReserveBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3237, + "src": "11853:18:4", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20Token_$20240_$returns$__$", + "typeString": "function (contract IERC20Token)" + } + }, + "id": 2935, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11853:26:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2936, + "nodeType": "ExpressionStatement", + "src": "11853:26:4" + } + } + ] + }, + "documentation": "@dev withdraws tokens held by the converter and sends them to an account\ncan only be called by the owner\nnote that reserve tokens can only be withdrawn by the owner while the converter is inactive\nunless the owner is the converter upgrader contract\n\t * @param _token ERC20 token contract address\n@param _to account to receive the new amount\n@param _amount amount to withdraw", + "id": 2939, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 2894, + "modifierName": { + "argumentTypes": null, + "id": 2893, + "name": "protected", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21698, + "src": "11372:9:4", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "11372:9:4" + }, + { + "arguments": null, + "id": 2896, + "modifierName": { + "argumentTypes": null, + "id": 2895, + "name": "ownerOnly", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21265, + "src": "11382:9:4", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "11382:9:4" + } + ], + "name": "withdrawTokens", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2892, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2887, + "name": "_token", + "nodeType": "VariableDeclaration", + "scope": 2939, + "src": "11309:18:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + "typeName": { + "contractScope": null, + "id": 2886, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "11309:11:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2889, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 2939, + "src": "11331:11:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2888, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11331:7:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2891, + "name": "_amount", + "nodeType": "VariableDeclaration", + "scope": 2939, + "src": "11346:15:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2890, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11346:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "11305:59:4" + }, + "payable": false, + "returnParameters": { + "id": 2897, + "nodeType": "ParameterList", + "parameters": [], + "src": "11392:0:4" + }, + "scope": 3414, + "src": "11282:601:4", + "stateMutability": "nonpayable", + "superFunction": 21975, + "visibility": "public" + }, + { + "body": { + "id": 2972, + "nodeType": "Block", + "src": "12115:281:4", + "statements": [ + { + "assignments": [ + 2945 + ], + "declarations": [ + { + "constant": false, + "id": 2945, + "name": "converterUpgrader", + "nodeType": "VariableDeclaration", + "scope": 2973, + "src": "12119:36:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterUpgrader_$12140", + "typeString": "contract IConverterUpgrader" + }, + "typeName": { + "contractScope": null, + "id": 2944, + "name": "IConverterUpgrader", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 12140, + "src": "12119:18:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterUpgrader_$12140", + "typeString": "contract IConverterUpgrader" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2951, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2948, + "name": "CONVERTER_UPGRADER", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20767, + "src": "12187:18:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2947, + "name": "addressOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20931, + "src": "12177:9:4", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$", + "typeString": "function (bytes32) view returns (address)" + } + }, + "id": 2949, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12177:29:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2946, + "name": "IConverterUpgrader", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12140, + "src": "12158:18:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IConverterUpgrader_$12140_$", + "typeString": "type(contract IConverterUpgrader)" + } + }, + "id": 2950, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12158:49:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterUpgrader_$12140", + "typeString": "contract IConverterUpgrader" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "12119:88:4" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2953, + "name": "converterType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11655, + "src": "12261:13:4", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_uint16_$", + "typeString": "function () pure returns (uint16)" + } + }, + "id": 2954, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12261:15:4", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + { + "argumentTypes": null, + "id": 2955, + "name": "anchor", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2511 + ], + "referencedDeclaration": 2511, + "src": "12278:6:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + }, + { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 2956, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12286:5:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 2952, + "name": "Activation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2540, + "src": "12250:10:4", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint16_$_t_contract$_IConverterAnchor_$11826_$_t_bool_$returns$__$", + "typeString": "function (uint16,contract IConverterAnchor,bool)" + } + }, + "id": 2957, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12250:42:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2958, + "nodeType": "EmitStatement", + "src": "12245:47:4" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2960, + "name": "converterUpgrader", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2945, + "src": "12315:17:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterUpgrader_$12140", + "typeString": "contract IConverterUpgrader" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IConverterUpgrader_$12140", + "typeString": "contract IConverterUpgrader" + } + ], + "id": 2959, + "name": "transferOwnership", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 21296 + ], + "referencedDeclaration": 21296, + "src": "12297:17:4", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 2961, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12297:36:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2962, + "nodeType": "ExpressionStatement", + "src": "12297:36:4" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2966, + "name": "version", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2509, + "src": "12363:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + ], + "expression": { + "argumentTypes": null, + "id": 2963, + "name": "converterUpgrader", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2945, + "src": "12337:17:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterUpgrader_$12140", + "typeString": "contract IConverterUpgrader" + } + }, + "id": 2965, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "upgrade", + "nodeType": "MemberAccess", + "referencedDeclaration": 12139, + "src": "12337:25:4", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_uint16_$returns$__$", + "typeString": "function (uint16) external" + } + }, + "id": 2967, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12337:34:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2968, + "nodeType": "ExpressionStatement", + "src": "12337:34:4" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2969, + "name": "acceptOwnership", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 21323 + ], + "referencedDeclaration": 21323, + "src": "12375:15:4", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", + "typeString": "function ()" + } + }, + "id": 2970, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12375:17:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2971, + "nodeType": "ExpressionStatement", + "src": "12375:17:4" + } + ] + }, + "documentation": "@dev upgrades the converter to the latest version\ncan only be called by the owner\nnote that the owner needs to call acceptOwnership on the new converter after the upgrade", + "id": 2973, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 2942, + "modifierName": { + "argumentTypes": null, + "id": 2941, + "name": "ownerOnly", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21265, + "src": "12105:9:4", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "12105:9:4" + } + ], + "name": "upgrade", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2940, + "nodeType": "ParameterList", + "parameters": [], + "src": "12095:2:4" + }, + "payable": false, + "returnParameters": { + "id": 2943, + "nodeType": "ParameterList", + "parameters": [], + "src": "12115:0:4" + }, + "scope": 3414, + "src": "12079:317:4", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 2983, + "nodeType": "Block", + "src": "12642:43:4", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2979, + "name": "reserveTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2516, + "src": "12660:13:4", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_storage", + "typeString": "contract IERC20Token[] storage ref" + } + }, + "id": 2980, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "12660:20:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2978, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "12653:6:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint16_$", + "typeString": "type(uint16)" + }, + "typeName": "uint16" + }, + "id": 2981, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12653:28:4", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "functionReturnParameters": 2977, + "id": 2982, + "nodeType": "Return", + "src": "12646:35:4" + } + ] + }, + "documentation": "@dev returns the number of reserve tokens defined\nnote that prior to version 17, you should use 'connectorTokenCount' instead\n\t * @return number of reserve tokens", + "id": 2984, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "reserveTokenCount", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2974, + "nodeType": "ParameterList", + "parameters": [], + "src": "12610:2:4" + }, + "payable": false, + "returnParameters": { + "id": 2977, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2976, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2984, + "src": "12634:6:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 2975, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "12634:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "12633:8:4" + }, + "scope": 3414, + "src": "12584:101:4", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 3073, + "nodeType": "Block", + "src": "13100:463:4", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 3015, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3009, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3005, + "name": "_token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2986, + "src": "13132:6:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3007, + "name": "anchor", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2511 + ], + "referencedDeclaration": 2511, + "src": "13150:6:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + ], + "id": 3006, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "13142:7:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 3008, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13142:15:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "13132:25:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "id": 3014, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "13161:23:4", + "subExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3010, + "name": "reserves", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2520, + "src": "13162:8:4", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Reserve_$2506_storage_$", + "typeString": "mapping(address => struct ConverterBase.Reserve storage ref)" + } + }, + "id": 3012, + "indexExpression": { + "argumentTypes": null, + "id": 3011, + "name": "_token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2986, + "src": "13171:6:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "13162:16:4", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Reserve_$2506_storage", + "typeString": "struct ConverterBase.Reserve storage ref" + } + }, + "id": 3013, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "isSet", + "nodeType": "MemberAccess", + "referencedDeclaration": 2505, + "src": "13162:22:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "13132:52:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4552525f494e56414c49445f52455345525645", + "id": 3016, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13186:21:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_2f153897d46b1410527faf37dfe95496d4a79980282840ba17da0adc4406792c", + "typeString": "literal_string \"ERR_INVALID_RESERVE\"" + }, + "value": "ERR_INVALID_RESERVE" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_2f153897d46b1410527faf37dfe95496d4a79980282840ba17da0adc4406792c", + "typeString": "literal_string \"ERR_INVALID_RESERVE\"" + } + ], + "id": 3004, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 22341, + 22342 + ], + "referencedDeclaration": 22342, + "src": "13124:7:4", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3017, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13124:84:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3018, + "nodeType": "ExpressionStatement", + "src": "13124:84:4" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 3024, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3020, + "name": "_weight", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2988, + "src": "13220:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 3023, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3021, + "name": "WEIGHT_RESOLUTION", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2489, + "src": "13231:17:4", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 3022, + "name": "reserveRatio", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2523, + "src": "13251:12:4", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "13231:32:4", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "13220:43:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4552525f494e56414c49445f524553455256455f574549474854", + "id": 3025, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13265:28:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_e4e4c57eb13b428a7fc031dc1f6f2c3e13b61f7d7b93994b2d17f8dc75658178", + "typeString": "literal_string \"ERR_INVALID_RESERVE_WEIGHT\"" + }, + "value": "ERR_INVALID_RESERVE_WEIGHT" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_e4e4c57eb13b428a7fc031dc1f6f2c3e13b61f7d7b93994b2d17f8dc75658178", + "typeString": "literal_string \"ERR_INVALID_RESERVE_WEIGHT\"" + } + ], + "id": 3019, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 22341, + 22342 + ], + "referencedDeclaration": 22342, + "src": "13212:7:4", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3026, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13212:82:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3027, + "nodeType": "ExpressionStatement", + "src": "13212:82:4" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "id": 3035, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 3029, + "name": "reserveTokenCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2984, + "src": "13306:17:4", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint16_$", + "typeString": "function () view returns (uint16)" + } + }, + "id": 3030, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13306:19:4", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3033, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "-", + "prefix": true, + "src": "13335:2:4", + "subExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 3032, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13336:1:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "typeDescriptions": { + "typeIdentifier": "t_rational_-1_by_1", + "typeString": "int_const -1" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_-1_by_1", + "typeString": "int_const -1" + } + ], + "id": 3031, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "13328:6:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint16_$", + "typeString": "type(uint16)" + }, + "typeName": "uint16" + }, + "id": 3034, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13328:10:4", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "src": "13306:32:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4552525f494e56414c49445f524553455256455f434f554e54", + "id": 3036, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13340:27:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_ed94f14d8dcbb423a259b4072978fc0c494c6af1fea066a19023afb1a76ac87f", + "typeString": "literal_string \"ERR_INVALID_RESERVE_COUNT\"" + }, + "value": "ERR_INVALID_RESERVE_COUNT" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_ed94f14d8dcbb423a259b4072978fc0c494c6af1fea066a19023afb1a76ac87f", + "typeString": "literal_string \"ERR_INVALID_RESERVE_COUNT\"" + } + ], + "id": 3028, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 22341, + 22342 + ], + "referencedDeclaration": 22342, + "src": "13298:7:4", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3037, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13298:70:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3038, + "nodeType": "ExpressionStatement", + "src": "13298:70:4" + }, + { + "assignments": [ + 3040 + ], + "declarations": [ + { + "constant": false, + "id": 3040, + "name": "newReserve", + "nodeType": "VariableDeclaration", + "scope": 3074, + "src": "13373:26:4", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Reserve_$2506_storage_ptr", + "typeString": "struct ConverterBase.Reserve" + }, + "typeName": { + "contractScope": null, + "id": 3039, + "name": "Reserve", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2506, + "src": "13373:7:4", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Reserve_$2506_storage_ptr", + "typeString": "struct ConverterBase.Reserve" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 3044, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3041, + "name": "reserves", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2520, + "src": "13402:8:4", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Reserve_$2506_storage_$", + "typeString": "mapping(address => struct ConverterBase.Reserve storage ref)" + } + }, + "id": 3043, + "indexExpression": { + "argumentTypes": null, + "id": 3042, + "name": "_token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2986, + "src": "13411:6:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "13402:16:4", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Reserve_$2506_storage", + "typeString": "struct ConverterBase.Reserve storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "13373:45:4" + }, + { + "expression": { + "argumentTypes": null, + "id": 3049, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3045, + "name": "newReserve", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3040, + "src": "13422:10:4", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Reserve_$2506_storage_ptr", + "typeString": "struct ConverterBase.Reserve storage pointer" + } + }, + "id": 3047, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "balance", + "nodeType": "MemberAccess", + "referencedDeclaration": 2497, + "src": "13422:18:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30", + "id": 3048, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13443:1:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "13422:22:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3050, + "nodeType": "ExpressionStatement", + "src": "13422:22:4" + }, + { + "expression": { + "argumentTypes": null, + "id": 3055, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3051, + "name": "newReserve", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3040, + "src": "13448:10:4", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Reserve_$2506_storage_ptr", + "typeString": "struct ConverterBase.Reserve storage pointer" + } + }, + "id": 3053, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "weight", + "nodeType": "MemberAccess", + "referencedDeclaration": 2499, + "src": "13448:17:4", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 3054, + "name": "_weight", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2988, + "src": "13468:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "13448:27:4", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "id": 3056, + "nodeType": "ExpressionStatement", + "src": "13448:27:4" + }, + { + "expression": { + "argumentTypes": null, + "id": 3061, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3057, + "name": "newReserve", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3040, + "src": "13479:10:4", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Reserve_$2506_storage_ptr", + "typeString": "struct ConverterBase.Reserve storage pointer" + } + }, + "id": 3059, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "isSet", + "nodeType": "MemberAccess", + "referencedDeclaration": 2505, + "src": "13479:16:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 3060, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13498:4:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "13479:23:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3062, + "nodeType": "ExpressionStatement", + "src": "13479:23:4" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3066, + "name": "_token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2986, + "src": "13525:6:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + ], + "expression": { + "argumentTypes": null, + "id": 3063, + "name": "reserveTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2516, + "src": "13506:13:4", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_storage", + "typeString": "contract IERC20Token[] storage ref" + } + }, + "id": 3065, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "push", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "13506:18:4", + "typeDescriptions": { + "typeIdentifier": "t_function_arraypush_nonpayable$_t_contract$_IERC20Token_$20240_$returns$_t_uint256_$", + "typeString": "function (contract IERC20Token) returns (uint256)" + } + }, + "id": 3067, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13506:26:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3068, + "nodeType": "ExpressionStatement", + "src": "13506:26:4" + }, + { + "expression": { + "argumentTypes": null, + "id": 3071, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3069, + "name": "reserveRatio", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2523, + "src": "13536:12:4", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "id": 3070, + "name": "_weight", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2988, + "src": "13552:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "13536:23:4", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "id": 3072, + "nodeType": "ExpressionStatement", + "src": "13536:23:4" + } + ] + }, + "documentation": "@dev defines a new reserve token for the converter\ncan only be called by the owner while the converter is inactive\n\t * @param _token address of the reserve token\n@param _weight reserve weight, represented in ppm, 1-1000000", + "id": 3074, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 2991, + "modifierName": { + "argumentTypes": null, + "id": 2990, + "name": "ownerOnly", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21265, + "src": "13007:9:4", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "13007:9:4" + }, + { + "arguments": null, + "id": 2993, + "modifierName": { + "argumentTypes": null, + "id": 2992, + "name": "inactive", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2621, + "src": "13019:8:4", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "13019:8:4" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 2995, + "name": "_token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2986, + "src": "13043:6:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + } + ], + "id": 2996, + "modifierName": { + "argumentTypes": null, + "id": 2994, + "name": "validAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22011, + "src": "13030:12:4", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_address_$", + "typeString": "modifier (address)" + } + }, + "nodeType": "ModifierInvocation", + "src": "13030:20:4" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 2998, + "name": "_token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2986, + "src": "13061:6:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + } + ], + "id": 2999, + "modifierName": { + "argumentTypes": null, + "id": 2997, + "name": "notThis", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22036, + "src": "13053:7:4", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_address_$", + "typeString": "modifier (address)" + } + }, + "nodeType": "ModifierInvocation", + "src": "13053:15:4" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 3001, + "name": "_weight", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2988, + "src": "13090:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + } + ], + "id": 3002, + "modifierName": { + "argumentTypes": null, + "id": 3000, + "name": "validReserveWeight", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2689, + "src": "13071:18:4", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint32_$", + "typeString": "modifier (uint32)" + } + }, + "nodeType": "ModifierInvocation", + "src": "13071:27:4" + } + ], + "name": "addReserve", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2989, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2986, + "name": "_token", + "nodeType": "VariableDeclaration", + "scope": 3074, + "src": "12960:18:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + "typeName": { + "contractScope": null, + "id": 2985, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "12960:11:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2988, + "name": "_weight", + "nodeType": "VariableDeclaration", + "scope": 3074, + "src": "12980:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 2987, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "12980:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "12959:36:4" + }, + "payable": false, + "returnParameters": { + "id": 3003, + "nodeType": "ParameterList", + "parameters": [], + "src": "13100:0:4" + }, + "scope": 3414, + "src": "12940:623:4", + "stateMutability": "nonpayable", + "superFunction": 11769, + "visibility": "public" + }, + { + "body": { + "id": 3089, + "nodeType": "Block", + "src": "13839:45:4", + "statements": [ + { + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3084, + "name": "reserves", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2520, + "src": "13850:8:4", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Reserve_$2506_storage_$", + "typeString": "mapping(address => struct ConverterBase.Reserve storage ref)" + } + }, + "id": 3086, + "indexExpression": { + "argumentTypes": null, + "id": 3085, + "name": "_reserveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3076, + "src": "13859:13:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "13850:23:4", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Reserve_$2506_storage", + "typeString": "struct ConverterBase.Reserve storage ref" + } + }, + "id": 3087, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "weight", + "nodeType": "MemberAccess", + "referencedDeclaration": 2499, + "src": "13850:30:4", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "functionReturnParameters": 3083, + "id": 3088, + "nodeType": "Return", + "src": "13843:37:4" + } + ] + }, + "documentation": "@dev returns the reserve's weight\nadded in version 28\n\t * @param _reserveToken reserve token contract address\n\t * @return reserve weight", + "id": 3090, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 3079, + "name": "_reserveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3076, + "src": "13807:13:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + } + ], + "id": 3080, + "modifierName": { + "argumentTypes": null, + "id": 3078, + "name": "validReserve", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2642, + "src": "13794:12:4", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_contract$_IERC20Token_$20240_$", + "typeString": "modifier (contract IERC20Token)" + } + }, + "nodeType": "ModifierInvocation", + "src": "13794:27:4" + } + ], + "name": "reserveWeight", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3077, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3076, + "name": "_reserveToken", + "nodeType": "VariableDeclaration", + "scope": 3090, + "src": "13755:25:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + "typeName": { + "contractScope": null, + "id": 3075, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "13755:11:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "13754:27:4" + }, + "payable": false, + "returnParameters": { + "id": 3083, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3082, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3090, + "src": "13831:6:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 3081, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "13831:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "13830:8:4" + }, + "scope": 3414, + "src": "13732:152:4", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 3105, + "nodeType": "Block", + "src": "14220:46:4", + "statements": [ + { + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3100, + "name": "reserves", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2520, + "src": "14231:8:4", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Reserve_$2506_storage_$", + "typeString": "mapping(address => struct ConverterBase.Reserve storage ref)" + } + }, + "id": 3102, + "indexExpression": { + "argumentTypes": null, + "id": 3101, + "name": "_reserveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3092, + "src": "14240:13:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "14231:23:4", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Reserve_$2506_storage", + "typeString": "struct ConverterBase.Reserve storage ref" + } + }, + "id": 3103, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "balance", + "nodeType": "MemberAccess", + "referencedDeclaration": 2497, + "src": "14231:31:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3099, + "id": 3104, + "nodeType": "Return", + "src": "14224:38:4" + } + ] + }, + "documentation": "@dev returns the reserve's balance\nnote that prior to version 17, you should use 'getConnectorBalance' instead\n\t * @param _reserveToken reserve token contract address\n\t * @return reserve balance", + "id": 3106, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 3095, + "name": "_reserveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3092, + "src": "14187:13:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + } + ], + "id": 3096, + "modifierName": { + "argumentTypes": null, + "id": 3094, + "name": "validReserve", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2642, + "src": "14174:12:4", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_contract$_IERC20Token_$20240_$", + "typeString": "modifier (contract IERC20Token)" + } + }, + "nodeType": "ModifierInvocation", + "src": "14174:27:4" + } + ], + "name": "reserveBalance", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3093, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3092, + "name": "_reserveToken", + "nodeType": "VariableDeclaration", + "scope": 3106, + "src": "14135:25:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + "typeName": { + "contractScope": null, + "id": 3091, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "14135:11:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "14134:27:4" + }, + "payable": false, + "returnParameters": { + "id": 3099, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3098, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3106, + "src": "14211:7:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3097, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14211:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "14210:9:4" + }, + "scope": 3414, + "src": "14111:155:4", + "stateMutability": "view", + "superFunction": 11727, + "visibility": "public" + }, + { + "body": { + "id": 3116, + "nodeType": "Block", + "src": "14469:50:4", + "statements": [ + { + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3111, + "name": "reserves", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2520, + "src": "14480:8:4", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Reserve_$2506_storage_$", + "typeString": "mapping(address => struct ConverterBase.Reserve storage ref)" + } + }, + "id": 3113, + "indexExpression": { + "argumentTypes": null, + "id": 3112, + "name": "ETH_RESERVE_ADDRESS", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2495, + "src": "14489:19:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "14480:29:4", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Reserve_$2506_storage", + "typeString": "struct ConverterBase.Reserve storage ref" + } + }, + "id": 3114, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "isSet", + "nodeType": "MemberAccess", + "referencedDeclaration": 2505, + "src": "14480:35:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 3110, + "id": 3115, + "nodeType": "Return", + "src": "14473:42:4" + } + ] + }, + "documentation": "@dev checks whether or not the converter has an ETH reserve\n\t * @return true if the converter has an ETH reserve, false otherwise", + "id": 3117, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "hasETHReserve", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3107, + "nodeType": "ParameterList", + "parameters": [], + "src": "14439:2:4" + }, + "payable": false, + "returnParameters": { + "id": 3110, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3109, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3117, + "src": "14463:4:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3108, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "14463:4:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "14462:6:4" + }, + "scope": 3414, + "src": "14417:102:4", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 3172, + "nodeType": "Block", + "src": "15250:443:4", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + "id": 3140, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3138, + "name": "_sourceToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3119, + "src": "15282:12:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "id": 3139, + "name": "_targetToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3121, + "src": "15298:12:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "src": "15282:28:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4552525f53414d455f534f555243455f544152474554", + "id": 3141, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15312:24:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_238302f57e4481fe6a4c903e930919efa155f2aabe0b5da37da1448cea5fd634", + "typeString": "literal_string \"ERR_SAME_SOURCE_TARGET\"" + }, + "value": "ERR_SAME_SOURCE_TARGET" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_238302f57e4481fe6a4c903e930919efa155f2aabe0b5da37da1448cea5fd634", + "typeString": "literal_string \"ERR_SAME_SOURCE_TARGET\"" + } + ], + "id": 3137, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 22341, + 22342 + ], + "referencedDeclaration": 22342, + "src": "15274:7:4", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3142, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15274:63:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3143, + "nodeType": "ExpressionStatement", + "src": "15274:63:4" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 3160, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3149, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3145, + "name": "conversionWhitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2513 + ], + "referencedDeclaration": 2513, + "src": "15446:19:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWhitelist_$22323", + "typeString": "contract IWhitelist" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 3147, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15477:1:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3146, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "15469:7:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 3148, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15469:10:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "15446:33:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 3158, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3152, + "name": "_trader", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3125, + "src": "15518:7:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 3150, + "name": "conversionWhitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2513 + ], + "referencedDeclaration": 2513, + "src": "15484:19:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWhitelist_$22323", + "typeString": "contract IWhitelist" + } + }, + "id": 3151, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "isWhitelisted", + "nodeType": "MemberAccess", + "referencedDeclaration": 22322, + "src": "15484:33:4", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bool_$", + "typeString": "function (address) view external returns (bool)" + } + }, + "id": 3153, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15484:42:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3156, + "name": "_beneficiary", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3127, + "src": "15564:12:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 3154, + "name": "conversionWhitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2513 + ], + "referencedDeclaration": 2513, + "src": "15530:19:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWhitelist_$22323", + "typeString": "contract IWhitelist" + } + }, + "id": 3155, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "isWhitelisted", + "nodeType": "MemberAccess", + "referencedDeclaration": 22322, + "src": "15530:33:4", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bool_$", + "typeString": "function (address) view external returns (bool)" + } + }, + "id": 3157, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15530:47:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "15484:93:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 3159, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "15483:95:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "15446:132:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4552525f4e4f545f57484954454c4953544544", + "id": 3161, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15583:21:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_d03711a645ac13b3887baa10c28f347997e96617340d7ffae036e653d4c59185", + "typeString": "literal_string \"ERR_NOT_WHITELISTED\"" + }, + "value": "ERR_NOT_WHITELISTED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_d03711a645ac13b3887baa10c28f347997e96617340d7ffae036e653d4c59185", + "typeString": "literal_string \"ERR_NOT_WHITELISTED\"" + } + ], + "id": 3144, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 22341, + 22342 + ], + "referencedDeclaration": 22342, + "src": "15434:7:4", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3162, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15434:174:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3163, + "nodeType": "ExpressionStatement", + "src": "15434:174:4" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3165, + "name": "_sourceToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3119, + "src": "15630:12:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + { + "argumentTypes": null, + "id": 3166, + "name": "_targetToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3121, + "src": "15644:12:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + { + "argumentTypes": null, + "id": 3167, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3123, + "src": "15658:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 3168, + "name": "_trader", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3125, + "src": "15667:7:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3169, + "name": "_beneficiary", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3127, + "src": "15676:12:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 3164, + "name": "doConvert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3188, + "src": "15620:9:4", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20Token_$20240_$_t_contract$_IERC20Token_$20240_$_t_uint256_$_t_address_$_t_address_$returns$_t_uint256_$", + "typeString": "function (contract IERC20Token,contract IERC20Token,uint256,address,address) returns (uint256)" + } + }, + "id": 3170, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15620:69:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3136, + "id": 3171, + "nodeType": "Return", + "src": "15613:76:4" + } + ] + }, + "documentation": "@dev converts a specific amount of source tokens to target tokens\ncan only be called by the SovrynSwap network contract\n\t * @param _sourceToken source ERC20 token\n@param _targetToken target ERC20 token\n@param _amount amount of tokens to convert (in units of the source token)\n@param _trader address of the caller who executed the conversion\n@param _beneficiary wallet to receive the conversion result\n\t * @return amount of tokens received (in units of the target token)", + "id": 3173, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 3130, + "modifierName": { + "argumentTypes": null, + "id": 3129, + "name": "protected", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21698, + "src": "15197:9:4", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "15197:9:4" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 3132, + "name": "SOVRYNSWAP_NETWORK", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20755, + "src": "15212:18:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "id": 3133, + "modifierName": { + "argumentTypes": null, + "id": 3131, + "name": "only", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20801, + "src": "15207:4:4", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_bytes32_$", + "typeString": "modifier (bytes32)" + } + }, + "nodeType": "ModifierInvocation", + "src": "15207:24:4" + } + ], + "name": "convert", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3128, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3119, + "name": "_sourceToken", + "nodeType": "VariableDeclaration", + "scope": 3173, + "src": "15064:24:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + "typeName": { + "contractScope": null, + "id": 3118, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "15064:11:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3121, + "name": "_targetToken", + "nodeType": "VariableDeclaration", + "scope": 3173, + "src": "15092:24:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + "typeName": { + "contractScope": null, + "id": 3120, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "15092:11:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3123, + "name": "_amount", + "nodeType": "VariableDeclaration", + "scope": 3173, + "src": "15120:15:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3122, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15120:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3125, + "name": "_trader", + "nodeType": "VariableDeclaration", + "scope": 3173, + "src": "15139:15:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3124, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15139:7:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3127, + "name": "_beneficiary", + "nodeType": "VariableDeclaration", + "scope": 3173, + "src": "15158:20:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3126, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15158:7:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "15060:121:4" + }, + "payable": true, + "returnParameters": { + "id": 3136, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3135, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3173, + "src": "15241:7:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3134, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15241:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "15240:9:4" + }, + "scope": 3414, + "src": "15044:649:4", + "stateMutability": "payable", + "superFunction": 11696, + "visibility": "public" + }, + { + "body": null, + "documentation": "@dev converts a specific amount of source tokens to target tokens\ncalled by ConverterBase and allows the inherited contracts to implement custom conversion logic\n\t * @param _sourceToken source ERC20 token\n@param _targetToken target ERC20 token\n@param _amount amount of tokens to convert (in units of the source token)\n@param _trader address of the caller who executed the conversion\n@param _beneficiary wallet to receive the conversion result\n\t * @return amount of tokens received (in units of the target token)", + "id": 3188, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "doConvert", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3184, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3175, + "name": "_sourceToken", + "nodeType": "VariableDeclaration", + "scope": 3188, + "src": "16282:24:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + "typeName": { + "contractScope": null, + "id": 3174, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "16282:11:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3177, + "name": "_targetToken", + "nodeType": "VariableDeclaration", + "scope": 3188, + "src": "16310:24:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + "typeName": { + "contractScope": null, + "id": 3176, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "16310:11:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3179, + "name": "_amount", + "nodeType": "VariableDeclaration", + "scope": 3188, + "src": "16338:15:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3178, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16338:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3181, + "name": "_trader", + "nodeType": "VariableDeclaration", + "scope": 3188, + "src": "16357:15:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3180, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "16357:7:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3183, + "name": "_beneficiary", + "nodeType": "VariableDeclaration", + "scope": 3188, + "src": "16376:20:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3182, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "16376:7:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "16278:121:4" + }, + "payable": false, + "returnParameters": { + "id": 3187, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3186, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3188, + "src": "16418:7:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3185, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16418:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "16417:9:4" + }, + "scope": 3414, + "src": "16260:167:4", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 3203, + "nodeType": "Block", + "src": "16654:78:4", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3200, + "name": "CONVERSION_FEE_RESOLUTION", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2492, + "src": "16702:25:4", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3197, + "name": "conversionFee", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2529 + ], + "referencedDeclaration": 2529, + "src": "16683:13:4", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + ], + "expression": { + "argumentTypes": null, + "id": 3195, + "name": "_targetAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3190, + "src": "16665:13:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3196, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 21791, + "src": "16665:17:4", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 3198, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16665:32:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3199, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "div", + "nodeType": "MemberAccess", + "referencedDeclaration": 21816, + "src": "16665:36:4", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 3201, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16665:63:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3194, + "id": 3202, + "nodeType": "Return", + "src": "16658:70:4" + } + ] + }, + "documentation": "@dev returns the conversion fee for a given target amount\n\t * @param _targetAmount target amount\n\t * @return conversion fee", + "id": 3204, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "calculateFee", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3191, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3190, + "name": "_targetAmount", + "nodeType": "VariableDeclaration", + "scope": 3204, + "src": "16599:21:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3189, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16599:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "16598:23:4" + }, + "payable": false, + "returnParameters": { + "id": 3194, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3193, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3204, + "src": "16645:7:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3192, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16645:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "16644:9:4" + }, + "scope": 3414, + "src": "16577:155:4", + "stateMutability": "view", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 3236, + "nodeType": "Block", + "src": "16990:177:4", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3214, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3212, + "name": "_reserveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3206, + "src": "16998:13:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 3213, + "name": "ETH_RESERVE_ADDRESS", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2495, + "src": "17015:19:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "16998:36:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "expression": { + "argumentTypes": null, + "id": 3233, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3225, + "name": "reserves", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2520, + "src": "17100:8:4", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Reserve_$2506_storage_$", + "typeString": "mapping(address => struct ConverterBase.Reserve storage ref)" + } + }, + "id": 3227, + "indexExpression": { + "argumentTypes": null, + "id": 3226, + "name": "_reserveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3206, + "src": "17109:13:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "17100:23:4", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Reserve_$2506_storage", + "typeString": "struct ConverterBase.Reserve storage ref" + } + }, + "id": 3228, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "balance", + "nodeType": "MemberAccess", + "referencedDeclaration": 2497, + "src": "17100:31:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3231, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22401, + "src": "17158:4:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ConverterBase_$3414", + "typeString": "contract ConverterBase" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_ConverterBase_$3414", + "typeString": "contract ConverterBase" + } + ], + "expression": { + "argumentTypes": null, + "id": 3229, + "name": "_reserveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3206, + "src": "17134:13:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "id": 3230, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 20194, + "src": "17134:23:4", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 3232, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17134:29:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17100:63:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3234, + "nodeType": "ExpressionStatement", + "src": "17100:63:4" + }, + "id": 3235, + "nodeType": "IfStatement", + "src": "16994:169:4", + "trueBody": { + "expression": { + "argumentTypes": null, + "id": 3223, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3215, + "name": "reserves", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2520, + "src": "17036:8:4", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Reserve_$2506_storage_$", + "typeString": "mapping(address => struct ConverterBase.Reserve storage ref)" + } + }, + "id": 3217, + "indexExpression": { + "argumentTypes": null, + "id": 3216, + "name": "_reserveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3206, + "src": "17045:13:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "17036:23:4", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Reserve_$2506_storage", + "typeString": "struct ConverterBase.Reserve storage ref" + } + }, + "id": 3218, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "balance", + "nodeType": "MemberAccess", + "referencedDeclaration": 2497, + "src": "17036:31:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3220, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22401, + "src": "17078:4:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ConverterBase_$3414", + "typeString": "contract ConverterBase" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_ConverterBase_$3414", + "typeString": "contract ConverterBase" + } + ], + "id": 3219, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "17070:7:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 3221, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17070:13:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 3222, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balance", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "17070:21:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17036:55:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3224, + "nodeType": "ExpressionStatement", + "src": "17036:55:4" + } + } + ] + }, + "documentation": "@dev syncs the stored reserve balance for a given reserve with the real reserve balance\n\t * @param _reserveToken address of the reserve token", + "id": 3237, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 3209, + "name": "_reserveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3206, + "src": "16975:13:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + } + ], + "id": 3210, + "modifierName": { + "argumentTypes": null, + "id": 3208, + "name": "validReserve", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2642, + "src": "16962:12:4", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_contract$_IERC20Token_$20240_$", + "typeString": "modifier (contract IERC20Token)" + } + }, + "nodeType": "ModifierInvocation", + "src": "16962:27:4" + } + ], + "name": "syncReserveBalance", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3207, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3206, + "name": "_reserveToken", + "nodeType": "VariableDeclaration", + "scope": 3237, + "src": "16926:25:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + "typeName": { + "contractScope": null, + "id": 3205, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "16926:11:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "16925:27:4" + }, + "payable": false, + "returnParameters": { + "id": 3211, + "nodeType": "ParameterList", + "parameters": [], + "src": "16990:0:4" + }, + "scope": 3414, + "src": "16898:269:4", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 3262, + "nodeType": "Block", + "src": "17263:134:4", + "statements": [ + { + "assignments": [ + 3241 + ], + "declarations": [ + { + "constant": false, + "id": 3241, + "name": "reserveCount", + "nodeType": "VariableDeclaration", + "scope": 3263, + "src": "17267:20:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3240, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17267:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 3244, + "initialValue": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3242, + "name": "reserveTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2516, + "src": "17290:13:4", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_storage", + "typeString": "contract IERC20Token[] storage ref" + } + }, + "id": 3243, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "17290:20:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17267:43:4" + }, + { + "body": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3256, + "name": "reserveTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2516, + "src": "17376:13:4", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_storage", + "typeString": "contract IERC20Token[] storage ref" + } + }, + "id": 3258, + "indexExpression": { + "argumentTypes": null, + "id": 3257, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3246, + "src": "17390:1:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "17376:16:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + ], + "id": 3255, + "name": "syncReserveBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3237, + "src": "17357:18:4", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20Token_$20240_$returns$__$", + "typeString": "function (contract IERC20Token)" + } + }, + "id": 3259, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17357:36:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3260, + "nodeType": "ExpressionStatement", + "src": "17357:36:4" + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3251, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3249, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3246, + "src": "17334:1:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 3250, + "name": "reserveCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3241, + "src": "17338:12:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17334:16:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3261, + "initializationExpression": { + "assignments": [ + 3246 + ], + "declarations": [ + { + "constant": false, + "id": 3246, + "name": "i", + "nodeType": "VariableDeclaration", + "scope": 3263, + "src": "17319:9:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3245, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17319:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 3248, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 3247, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17331:1:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "17319:13:4" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 3253, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "17352:3:4", + "subExpression": { + "argumentTypes": null, + "id": 3252, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3246, + "src": "17352:1:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3254, + "nodeType": "ExpressionStatement", + "src": "17352:3:4" + }, + "nodeType": "ForStatement", + "src": "17314:79:4" + } + ] + }, + "documentation": "@dev syncs all stored reserve balances", + "id": 3263, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "syncReserveBalances", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3238, + "nodeType": "ParameterList", + "parameters": [], + "src": "17251:2:4" + }, + "payable": false, + "returnParameters": { + "id": 3239, + "nodeType": "ParameterList", + "parameters": [], + "src": "17263:0:4" + }, + "scope": 3414, + "src": "17223:174:4", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 3297, + "nodeType": "Block", + "src": "17959:470:4", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3283, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3279, + "name": "_feeAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3275, + "src": "18305:10:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_rational_57896044618658097711785492504343953926634992332820282019728792003956564819968_by_1", + "typeString": "int_const 5789...(69 digits omitted)...9968" + }, + "id": 3282, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 3280, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18318:1:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "argumentTypes": null, + "hexValue": "323535", + "id": 3281, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18321:3:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_255_by_1", + "typeString": "int_const 255" + }, + "value": "255" + }, + "src": "18318:6:4", + "typeDescriptions": { + "typeIdentifier": "t_rational_57896044618658097711785492504343953926634992332820282019728792003956564819968_by_1", + "typeString": "int_const 5789...(69 digits omitted)...9968" + } + }, + "src": "18305:19:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 3278, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22327, + "src": "18298:6:4", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3284, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18298:27:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3285, + "nodeType": "ExpressionStatement", + "src": "18298:27:4" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3287, + "name": "_sourceToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3265, + "src": "18345:12:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + { + "argumentTypes": null, + "id": 3288, + "name": "_targetToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3267, + "src": "18359:12:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + { + "argumentTypes": null, + "id": 3289, + "name": "_trader", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3269, + "src": "18373:7:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3290, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3271, + "src": "18382:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 3291, + "name": "_returnAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3273, + "src": "18391:13:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3293, + "name": "_feeAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3275, + "src": "18413:10:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3292, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "18406:6:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int256_$", + "typeString": "type(int256)" + }, + "typeName": "int256" + }, + "id": 3294, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18406:18:4", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 3286, + "name": "Conversion", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2554, + "src": "18334:10:4", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_int256_$returns$__$", + "typeString": "function (address,address,address,uint256,uint256,int256)" + } + }, + "id": 3295, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18334:91:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3296, + "nodeType": "EmitStatement", + "src": "18329:96:4" + } + ] + }, + "documentation": "@dev helper, dispatches the Conversion event\n\t * @param _sourceToken source ERC20 token\n@param _targetToken target ERC20 token\n@param _trader address of the caller who executed the conversion\n@param _amount amount purchased/sold (in the source token)\n@param _returnAmount amount returned (in the target token)", + "id": 3298, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "dispatchConversionEvent", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3276, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3265, + "name": "_sourceToken", + "nodeType": "VariableDeclaration", + "scope": 3298, + "src": "17809:24:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + "typeName": { + "contractScope": null, + "id": 3264, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "17809:11:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3267, + "name": "_targetToken", + "nodeType": "VariableDeclaration", + "scope": 3298, + "src": "17837:24:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + "typeName": { + "contractScope": null, + "id": 3266, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "17837:11:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3269, + "name": "_trader", + "nodeType": "VariableDeclaration", + "scope": 3298, + "src": "17865:15:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3268, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17865:7:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3271, + "name": "_amount", + "nodeType": "VariableDeclaration", + "scope": 3298, + "src": "17884:15:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3270, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17884:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3273, + "name": "_returnAmount", + "nodeType": "VariableDeclaration", + "scope": 3298, + "src": "17903:21:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3272, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17903:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3275, + "name": "_feeAmount", + "nodeType": "VariableDeclaration", + "scope": 3298, + "src": "17928:18:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3274, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17928:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "17805:144:4" + }, + "payable": false, + "returnParameters": { + "id": 3277, + "nodeType": "ParameterList", + "parameters": [], + "src": "17959:0:4" + }, + "scope": 3414, + "src": "17773:656:4", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 3305, + "nodeType": "Block", + "src": "18591:21:4", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3303, + "name": "anchor", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2511 + ], + "referencedDeclaration": 2511, + "src": "18602:6:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + }, + "functionReturnParameters": 3302, + "id": 3304, + "nodeType": "Return", + "src": "18595:13:4" + } + ] + }, + "documentation": "@dev deprecated since version 28, backward compatibility - use only for earlier versions", + "id": 3306, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "token", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3299, + "nodeType": "ParameterList", + "parameters": [], + "src": "18549:2:4" + }, + "payable": false, + "returnParameters": { + "id": 3302, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3301, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3306, + "src": "18573:16:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + }, + "typeName": { + "contractScope": null, + "id": 3300, + "name": "IConverterAnchor", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11826, + "src": "18573:16:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "18572:18:4" + }, + "scope": 3414, + "src": "18535:77:4", + "stateMutability": "view", + "superFunction": 11774, + "visibility": "public" + }, + { + "body": { + "id": 3317, + "nodeType": "Block", + "src": "18737:42:4", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3314, + "name": "_newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3308, + "src": "18765:9:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 3313, + "name": "transferAnchorOwnership", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2819 + ], + "referencedDeclaration": 2819, + "src": "18741:23:4", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 3315, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18741:34:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3316, + "nodeType": "ExpressionStatement", + "src": "18741:34:4" + } + ] + }, + "documentation": "@dev deprecated, backward compatibility", + "id": 3318, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 3311, + "modifierName": { + "argumentTypes": null, + "id": 3310, + "name": "ownerOnly", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21265, + "src": "18727:9:4", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "18727:9:4" + } + ], + "name": "transferTokenOwnership", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3309, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3308, + "name": "_newOwner", + "nodeType": "VariableDeclaration", + "scope": 3318, + "src": "18701:17:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3307, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "18701:7:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "18700:19:4" + }, + "payable": false, + "returnParameters": { + "id": 3312, + "nodeType": "ParameterList", + "parameters": [], + "src": "18737:0:4" + }, + "scope": 3414, + "src": "18669:110:4", + "stateMutability": "nonpayable", + "superFunction": 11779, + "visibility": "public" + }, + { + "body": { + "id": 3326, + "nodeType": "Block", + "src": "18885:31:4", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 3323, + "name": "acceptAnchorOwnership", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2841 + ], + "referencedDeclaration": 2841, + "src": "18889:21:4", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", + "typeString": "function ()" + } + }, + "id": 3324, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18889:23:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3325, + "nodeType": "ExpressionStatement", + "src": "18889:23:4" + } + ] + }, + "documentation": "@dev deprecated, backward compatibility", + "id": 3327, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 3321, + "modifierName": { + "argumentTypes": null, + "id": 3320, + "name": "ownerOnly", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21265, + "src": "18875:9:4", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "18875:9:4" + } + ], + "name": "acceptTokenOwnership", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3319, + "nodeType": "ParameterList", + "parameters": [], + "src": "18865:2:4" + }, + "payable": false, + "returnParameters": { + "id": 3322, + "nodeType": "ParameterList", + "parameters": [], + "src": "18885:0:4" + }, + "scope": 3414, + "src": "18836:80:4", + "stateMutability": "nonpayable", + "superFunction": 11782, + "visibility": "public" + }, + { + "body": { + "id": 3358, + "nodeType": "Block", + "src": "19093:124:4", + "statements": [ + { + "assignments": [ + 3343 + ], + "declarations": [ + { + "constant": false, + "id": 3343, + "name": "reserve", + "nodeType": "VariableDeclaration", + "scope": 3359, + "src": "19097:22:4", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Reserve_$2506_memory_ptr", + "typeString": "struct ConverterBase.Reserve" + }, + "typeName": { + "contractScope": null, + "id": 3342, + "name": "Reserve", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2506, + "src": "19097:7:4", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Reserve_$2506_storage_ptr", + "typeString": "struct ConverterBase.Reserve" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 3347, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3344, + "name": "reserves", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2520, + "src": "19122:8:4", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Reserve_$2506_storage_$", + "typeString": "mapping(address => struct ConverterBase.Reserve storage ref)" + } + }, + "id": 3346, + "indexExpression": { + "argumentTypes": null, + "id": 3345, + "name": "_address", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3329, + "src": "19131:8:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "19122:18:4", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Reserve_$2506_storage", + "typeString": "struct ConverterBase.Reserve storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "19097:43:4" + }, + { + "expression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3348, + "name": "reserve", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3343, + "src": "19152:7:4", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Reserve_$2506_memory_ptr", + "typeString": "struct ConverterBase.Reserve memory" + } + }, + "id": 3349, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "balance", + "nodeType": "MemberAccess", + "referencedDeclaration": 2497, + "src": "19152:15:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3350, + "name": "reserve", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3343, + "src": "19169:7:4", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Reserve_$2506_memory_ptr", + "typeString": "struct ConverterBase.Reserve memory" + } + }, + "id": 3351, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "weight", + "nodeType": "MemberAccess", + "referencedDeclaration": 2499, + "src": "19169:14:4", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 3352, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19185:5:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 3353, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19192:5:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3354, + "name": "reserve", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3343, + "src": "19199:7:4", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Reserve_$2506_memory_ptr", + "typeString": "struct ConverterBase.Reserve memory" + } + }, + "id": 3355, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "isSet", + "nodeType": "MemberAccess", + "referencedDeclaration": 2505, + "src": "19199:13:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 3356, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "19151:62:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint32_$_t_bool_$_t_bool_$_t_bool_$", + "typeString": "tuple(uint256,uint32,bool,bool,bool)" + } + }, + "functionReturnParameters": 3341, + "id": 3357, + "nodeType": "Return", + "src": "19144:69:4" + } + ] + }, + "documentation": "@dev deprecated, backward compatibility", + "id": 3359, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "connectors", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3330, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3329, + "name": "_address", + "nodeType": "VariableDeclaration", + "scope": 3359, + "src": "18993:16:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3328, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "18993:7:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "18992:18:4" + }, + "payable": false, + "returnParameters": { + "id": 3341, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3332, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3359, + "src": "19042:7:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3331, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "19042:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3334, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3359, + "src": "19054:6:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 3333, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "19054:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3336, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3359, + "src": "19065:4:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3335, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "19065:4:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3338, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3359, + "src": "19074:4:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3337, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "19074:4:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3340, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3359, + "src": "19083:4:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3339, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "19083:4:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "19037:54:4" + }, + "scope": 3414, + "src": "18973:244:4", + "stateMutability": "view", + "superFunction": 11797, + "visibility": "public" + }, + { + "body": { + "id": 3371, + "nodeType": "Block", + "src": "19349:50:4", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3366, + "name": "ConverterBase", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3414, + "src": "19360:13:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ConverterBase_$3414_$", + "typeString": "type(contract ConverterBase)" + } + }, + "id": 3367, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "reserveTokens", + "nodeType": "MemberAccess", + "referencedDeclaration": 2516, + "src": "19360:27:4", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_storage", + "typeString": "contract IERC20Token[] storage ref" + } + }, + "id": 3369, + "indexExpression": { + "argumentTypes": null, + "id": 3368, + "name": "_index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3361, + "src": "19388:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "19360:35:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "functionReturnParameters": 3365, + "id": 3370, + "nodeType": "Return", + "src": "19353:42:4" + } + ] + }, + "documentation": "@dev deprecated, backward compatibility", + "id": 3372, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "connectorTokens", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3362, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3361, + "name": "_index", + "nodeType": "VariableDeclaration", + "scope": 3372, + "src": "19299:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3360, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "19299:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "19298:16:4" + }, + "payable": false, + "returnParameters": { + "id": 3365, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3364, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3372, + "src": "19336:11:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + "typeName": { + "contractScope": null, + "id": 3363, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "19336:11:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "19335:13:4" + }, + "scope": 3414, + "src": "19274:125:4", + "stateMutability": "view", + "superFunction": 11811, + "visibility": "public" + }, + { + "body": { + "id": 3380, + "nodeType": "Block", + "src": "19516:34:4", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 3377, + "name": "reserveTokenCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2984, + "src": "19527:17:4", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint16_$", + "typeString": "function () view returns (uint16)" + } + }, + "id": 3378, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19527:19:4", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "functionReturnParameters": 3376, + "id": 3379, + "nodeType": "Return", + "src": "19520:26:4" + } + ] + }, + "documentation": "@dev deprecated, backward compatibility", + "id": 3381, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "connectorTokenCount", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3373, + "nodeType": "ParameterList", + "parameters": [], + "src": "19484:2:4" + }, + "payable": false, + "returnParameters": { + "id": 3376, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3375, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3381, + "src": "19508:6:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 3374, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "19508:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "19507:8:4" + }, + "scope": 3414, + "src": "19456:94:4", + "stateMutability": "view", + "superFunction": 11816, + "visibility": "public" + }, + { + "body": { + "id": 3392, + "nodeType": "Block", + "src": "19695:46:4", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3389, + "name": "_connectorToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3383, + "src": "19721:15:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + ], + "id": 3388, + "name": "reserveBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3106 + ], + "referencedDeclaration": 3106, + "src": "19706:14:4", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_contract$_IERC20Token_$20240_$returns$_t_uint256_$", + "typeString": "function (contract IERC20Token) view returns (uint256)" + } + }, + "id": 3390, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19706:31:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3387, + "id": 3391, + "nodeType": "Return", + "src": "19699:38:4" + } + ] + }, + "documentation": "@dev deprecated, backward compatibility", + "id": 3393, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getConnectorBalance", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3384, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3383, + "name": "_connectorToken", + "nodeType": "VariableDeclaration", + "scope": 3393, + "src": "19636:27:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + "typeName": { + "contractScope": null, + "id": 3382, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "19636:11:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "19635:29:4" + }, + "payable": false, + "returnParameters": { + "id": 3387, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3386, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3393, + "src": "19686:7:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3385, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "19686:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "19685:9:4" + }, + "scope": 3414, + "src": "19607:134:4", + "stateMutability": "view", + "superFunction": 11804, + "visibility": "public" + }, + { + "body": { + "id": 3412, + "nodeType": "Block", + "src": "19934:70:4", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3407, + "name": "_sourceToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3395, + "src": "19964:12:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + { + "argumentTypes": null, + "id": 3408, + "name": "_targetToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3397, + "src": "19978:12:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + { + "argumentTypes": null, + "id": 3409, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3399, + "src": "19992:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3406, + "name": "targetAmountAndFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11681, + "src": "19945:18:4", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_contract$_IERC20Token_$20240_$_t_contract$_IERC20Token_$20240_$_t_uint256_$returns$_t_uint256_$_t_uint256_$", + "typeString": "function (contract IERC20Token,contract IERC20Token,uint256) view returns (uint256,uint256)" + } + }, + "id": 3410, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19945:55:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "functionReturnParameters": 3405, + "id": 3411, + "nodeType": "Return", + "src": "19938:62:4" + } + ] + }, + "documentation": "@dev deprecated, backward compatibility", + "id": 3413, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getReturn", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3400, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3395, + "name": "_sourceToken", + "nodeType": "VariableDeclaration", + "scope": 3413, + "src": "19820:24:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + "typeName": { + "contractScope": null, + "id": 3394, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "19820:11:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3397, + "name": "_targetToken", + "nodeType": "VariableDeclaration", + "scope": 3413, + "src": "19848:24:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + "typeName": { + "contractScope": null, + "id": 3396, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "19848:11:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3399, + "name": "_amount", + "nodeType": "VariableDeclaration", + "scope": 3413, + "src": "19876:15:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3398, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "19876:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "19816:78:4" + }, + "payable": false, + "returnParameters": { + "id": 3405, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3402, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3413, + "src": "19916:7:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3401, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "19916:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3404, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3413, + "src": "19925:7:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3403, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "19925:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "19915:18:4" + }, + "scope": 3414, + "src": "19798:206:4", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 3415, + "src": "1580:18426:4" + } + ], + "src": "0:20007:4" + }, + "id": 4 + }, + "solidity/contracts/converter/ConverterFactory.sol": { + "ast": { + "absolutePath": "solidity/contracts/converter/ConverterFactory.sol", + "exportedSymbols": { + "ConverterFactory": [ + 3606 + ] + }, + "id": 3607, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 3416, + "literals": [ + "solidity", + "0.4", + ".26" + ], + "nodeType": "PragmaDirective", + "src": "0:23:5" + }, + { + "absolutePath": "solidity/contracts/converter/interfaces/IConverter.sol", + "file": "./interfaces/IConverter.sol", + "id": 3417, + "nodeType": "ImportDirective", + "scope": 3607, + "sourceUnit": 11818, + "src": "24:37:5", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "solidity/contracts/converter/interfaces/IConverterFactory.sol", + "file": "./interfaces/IConverterFactory.sol", + "id": 3418, + "nodeType": "ImportDirective", + "scope": 3607, + "sourceUnit": 11872, + "src": "62:44:5", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "solidity/contracts/converter/interfaces/ITypedConverterFactory.sol", + "file": "./interfaces/ITypedConverterFactory.sol", + "id": 3419, + "nodeType": "ImportDirective", + "scope": 3607, + "sourceUnit": 12291, + "src": "107:49:5", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "solidity/contracts/converter/interfaces/ITypedConverterAnchorFactory.sol", + "file": "./interfaces/ITypedConverterAnchorFactory.sol", + "id": 3420, + "nodeType": "ImportDirective", + "scope": 3607, + "sourceUnit": 12261, + "src": "157:55:5", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "solidity/contracts/converter/interfaces/ITypedConverterCustomFactory.sol", + "file": "./interfaces/ITypedConverterCustomFactory.sol", + "id": 3421, + "nodeType": "ImportDirective", + "scope": 3607, + "sourceUnit": 12269, + "src": "213:55:5", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "solidity/contracts/utility/Owned.sol", + "file": "../utility/Owned.sol", + "id": 3422, + "nodeType": "ImportDirective", + "scope": 3607, + "sourceUnit": 21325, + "src": "269:30:5", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "solidity/contracts/utility/interfaces/IContractRegistry.sol", + "file": "../utility/interfaces/IContractRegistry.sol", + "id": 3423, + "nodeType": "ImportDirective", + "scope": 3607, + "sourceUnit": 22221, + "src": "300:53:5", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "solidity/contracts/token/SmartToken.sol", + "file": "../token/SmartToken.sol", + "id": 3424, + "nodeType": "ImportDirective", + "scope": 3607, + "sourceUnit": 20149, + "src": "354:33:5", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 3425, + "name": "IConverterFactory", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11871, + "src": "446:17:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterFactory_$11871", + "typeString": "contract IConverterFactory" + } + }, + "id": 3426, + "nodeType": "InheritanceSpecifier", + "src": "446:17:5" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 3427, + "name": "Owned", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 21324, + "src": "465:5:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Owned_$21324", + "typeString": "contract Owned" + } + }, + "id": 3428, + "nodeType": "InheritanceSpecifier", + "src": "465:5:5" + } + ], + "contractDependencies": [ + 11871, + 20148, + 21324, + 22247 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 3606, + "linearizedBaseContracts": [ + 3606, + 21324, + 22247, + 11871 + ], + "name": "ConverterFactory", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": "@dev triggered when a new converter is created\n\t * @param _type converter type, see ConverterBase contract main doc\n@param _converter new converter address\n@param _owner converter owner address", + "id": 3436, + "name": "NewConverter", + "nodeType": "EventDefinition", + "parameters": { + "id": 3435, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3430, + "indexed": true, + "name": "_type", + "nodeType": "VariableDeclaration", + "scope": 3436, + "src": "728:20:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 3429, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "728:6:5", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3432, + "indexed": true, + "name": "_converter", + "nodeType": "VariableDeclaration", + "scope": 3436, + "src": "750:26:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3431, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "750:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3434, + "indexed": true, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 3436, + "src": "778:22:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3433, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "778:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "727:74:5" + }, + "src": "709:93:5" + }, + { + "constant": false, + "id": 3440, + "name": "converterFactories", + "nodeType": "VariableDeclaration", + "scope": 3606, + "src": "805:67:5", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint16_$_t_contract$_ITypedConverterFactory_$12290_$", + "typeString": "mapping(uint16 => contract ITypedConverterFactory)" + }, + "typeName": { + "id": 3439, + "keyType": { + "id": 3437, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "813:6:5", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "nodeType": "Mapping", + "src": "805:41:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint16_$_t_contract$_ITypedConverterFactory_$12290_$", + "typeString": "mapping(uint16 => contract ITypedConverterFactory)" + }, + "valueType": { + "contractScope": null, + "id": 3438, + "name": "ITypedConverterFactory", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 12290, + "src": "823:22:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ITypedConverterFactory_$12290", + "typeString": "contract ITypedConverterFactory" + } + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 3444, + "name": "anchorFactories", + "nodeType": "VariableDeclaration", + "scope": 3606, + "src": "875:70:5", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint16_$_t_contract$_ITypedConverterAnchorFactory_$12260_$", + "typeString": "mapping(uint16 => contract ITypedConverterAnchorFactory)" + }, + "typeName": { + "id": 3443, + "keyType": { + "id": 3441, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "883:6:5", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "nodeType": "Mapping", + "src": "875:47:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint16_$_t_contract$_ITypedConverterAnchorFactory_$12260_$", + "typeString": "mapping(uint16 => contract ITypedConverterAnchorFactory)" + }, + "valueType": { + "contractScope": null, + "id": 3442, + "name": "ITypedConverterAnchorFactory", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 12260, + "src": "893:28:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ITypedConverterAnchorFactory_$12260", + "typeString": "contract ITypedConverterAnchorFactory" + } + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 3448, + "name": "customFactories", + "nodeType": "VariableDeclaration", + "scope": 3606, + "src": "948:70:5", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint16_$_t_contract$_ITypedConverterCustomFactory_$12268_$", + "typeString": "mapping(uint16 => contract ITypedConverterCustomFactory)" + }, + "typeName": { + "id": 3447, + "keyType": { + "id": 3445, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "956:6:5", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "nodeType": "Mapping", + "src": "948:47:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint16_$_t_contract$_ITypedConverterCustomFactory_$12268_$", + "typeString": "mapping(uint16 => contract ITypedConverterCustomFactory)" + }, + "valueType": { + "contractScope": null, + "id": 3446, + "name": "ITypedConverterCustomFactory", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 12268, + "src": "966:28:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ITypedConverterCustomFactory_$12268", + "typeString": "contract ITypedConverterCustomFactory" + } + } + }, + "value": null, + "visibility": "public" + }, + { + "body": { + "id": 3463, + "nodeType": "Block", + "src": "1278:63:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3461, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3455, + "name": "converterFactories", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3440, + "src": "1282:18:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint16_$_t_contract$_ITypedConverterFactory_$12290_$", + "typeString": "mapping(uint16 => contract ITypedConverterFactory)" + } + }, + "id": 3459, + "indexExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 3456, + "name": "_factory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3450, + "src": "1301:8:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ITypedConverterFactory_$12290", + "typeString": "contract ITypedConverterFactory" + } + }, + "id": 3457, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "converterType", + "nodeType": "MemberAccess", + "referencedDeclaration": 12278, + "src": "1301:22:5", + "typeDescriptions": { + "typeIdentifier": "t_function_external_pure$__$returns$_t_uint16_$", + "typeString": "function () pure external returns (uint16)" + } + }, + "id": 3458, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1301:24:5", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1282:44:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ITypedConverterFactory_$12290", + "typeString": "contract ITypedConverterFactory" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 3460, + "name": "_factory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3450, + "src": "1329:8:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ITypedConverterFactory_$12290", + "typeString": "contract ITypedConverterFactory" + } + }, + "src": "1282:55:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ITypedConverterFactory_$12290", + "typeString": "contract ITypedConverterFactory" + } + }, + "id": 3462, + "nodeType": "ExpressionStatement", + "src": "1282:55:5" + } + ] + }, + "documentation": "@dev initializes the factory with a specific typed converter factory\ncan only be called by the owner\n\t * @param _factory typed converter factory", + "id": 3464, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 3453, + "modifierName": { + "argumentTypes": null, + "id": 3452, + "name": "ownerOnly", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21265, + "src": "1268:9:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "1268:9:5" + } + ], + "name": "registerTypedConverterFactory", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3451, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3450, + "name": "_factory", + "nodeType": "VariableDeclaration", + "scope": 3464, + "src": "1228:31:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ITypedConverterFactory_$12290", + "typeString": "contract ITypedConverterFactory" + }, + "typeName": { + "contractScope": null, + "id": 3449, + "name": "ITypedConverterFactory", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 12290, + "src": "1228:22:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ITypedConverterFactory_$12290", + "typeString": "contract ITypedConverterFactory" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1227:33:5" + }, + "payable": false, + "returnParameters": { + "id": 3454, + "nodeType": "ParameterList", + "parameters": [], + "src": "1278:0:5" + }, + "scope": 3606, + "src": "1189:152:5", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 3479, + "nodeType": "Block", + "src": "1626:60:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3477, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3471, + "name": "anchorFactories", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3444, + "src": "1630:15:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint16_$_t_contract$_ITypedConverterAnchorFactory_$12260_$", + "typeString": "mapping(uint16 => contract ITypedConverterAnchorFactory)" + } + }, + "id": 3475, + "indexExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 3472, + "name": "_factory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3466, + "src": "1646:8:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ITypedConverterAnchorFactory_$12260", + "typeString": "contract ITypedConverterAnchorFactory" + } + }, + "id": 3473, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "converterType", + "nodeType": "MemberAccess", + "referencedDeclaration": 12248, + "src": "1646:22:5", + "typeDescriptions": { + "typeIdentifier": "t_function_external_pure$__$returns$_t_uint16_$", + "typeString": "function () pure external returns (uint16)" + } + }, + "id": 3474, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1646:24:5", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1630:41:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ITypedConverterAnchorFactory_$12260", + "typeString": "contract ITypedConverterAnchorFactory" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 3476, + "name": "_factory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3466, + "src": "1674:8:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ITypedConverterAnchorFactory_$12260", + "typeString": "contract ITypedConverterAnchorFactory" + } + }, + "src": "1630:52:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ITypedConverterAnchorFactory_$12260", + "typeString": "contract ITypedConverterAnchorFactory" + } + }, + "id": 3478, + "nodeType": "ExpressionStatement", + "src": "1630:52:5" + } + ] + }, + "documentation": "@dev initializes the factory with a specific typed converter anchor factory\ncan only be called by the owner\n\t * @param _factory typed converter anchor factory", + "id": 3480, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 3469, + "modifierName": { + "argumentTypes": null, + "id": 3468, + "name": "ownerOnly", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21265, + "src": "1616:9:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "1616:9:5" + } + ], + "name": "registerTypedConverterAnchorFactory", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3467, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3466, + "name": "_factory", + "nodeType": "VariableDeclaration", + "scope": 3480, + "src": "1570:37:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ITypedConverterAnchorFactory_$12260", + "typeString": "contract ITypedConverterAnchorFactory" + }, + "typeName": { + "contractScope": null, + "id": 3465, + "name": "ITypedConverterAnchorFactory", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 12260, + "src": "1570:28:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ITypedConverterAnchorFactory_$12260", + "typeString": "contract ITypedConverterAnchorFactory" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1569:39:5" + }, + "payable": false, + "returnParameters": { + "id": 3470, + "nodeType": "ParameterList", + "parameters": [], + "src": "1626:0:5" + }, + "scope": 3606, + "src": "1525:161:5", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 3495, + "nodeType": "Block", + "src": "1971:60:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3493, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3487, + "name": "customFactories", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3448 + ], + "referencedDeclaration": 3448, + "src": "1975:15:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint16_$_t_contract$_ITypedConverterCustomFactory_$12268_$", + "typeString": "mapping(uint16 => contract ITypedConverterCustomFactory)" + } + }, + "id": 3491, + "indexExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 3488, + "name": "_factory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3482, + "src": "1991:8:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ITypedConverterCustomFactory_$12268", + "typeString": "contract ITypedConverterCustomFactory" + } + }, + "id": 3489, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "converterType", + "nodeType": "MemberAccess", + "referencedDeclaration": 12267, + "src": "1991:22:5", + "typeDescriptions": { + "typeIdentifier": "t_function_external_pure$__$returns$_t_uint16_$", + "typeString": "function () pure external returns (uint16)" + } + }, + "id": 3490, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1991:24:5", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1975:41:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ITypedConverterCustomFactory_$12268", + "typeString": "contract ITypedConverterCustomFactory" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 3492, + "name": "_factory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3482, + "src": "2019:8:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ITypedConverterCustomFactory_$12268", + "typeString": "contract ITypedConverterCustomFactory" + } + }, + "src": "1975:52:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ITypedConverterCustomFactory_$12268", + "typeString": "contract ITypedConverterCustomFactory" + } + }, + "id": 3494, + "nodeType": "ExpressionStatement", + "src": "1975:52:5" + } + ] + }, + "documentation": "@dev initializes the factory with a specific typed converter custom factory\ncan only be called by the owner\n\t * @param _factory typed converter custom factory", + "id": 3496, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 3485, + "modifierName": { + "argumentTypes": null, + "id": 3484, + "name": "ownerOnly", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21265, + "src": "1961:9:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "1961:9:5" + } + ], + "name": "registerTypedConverterCustomFactory", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3483, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3482, + "name": "_factory", + "nodeType": "VariableDeclaration", + "scope": 3496, + "src": "1915:37:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ITypedConverterCustomFactory_$12268", + "typeString": "contract ITypedConverterCustomFactory" + }, + "typeName": { + "contractScope": null, + "id": 3481, + "name": "ITypedConverterCustomFactory", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 12268, + "src": "1915:28:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ITypedConverterCustomFactory_$12268", + "typeString": "contract ITypedConverterCustomFactory" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1914:39:5" + }, + "payable": false, + "returnParameters": { + "id": 3486, + "nodeType": "ParameterList", + "parameters": [], + "src": "1971:0:5" + }, + "scope": 3606, + "src": "1870:161:5", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 3558, + "nodeType": "Block", + "src": "2518:423:5", + "statements": [ + { + "assignments": [], + "declarations": [ + { + "constant": false, + "id": 3510, + "name": "anchor", + "nodeType": "VariableDeclaration", + "scope": 3559, + "src": "2522:23:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + }, + "typeName": { + "contractScope": null, + "id": 3509, + "name": "IConverterAnchor", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11826, + "src": "2522:16:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 3511, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "2522:23:5" + }, + { + "assignments": [ + 3513 + ], + "declarations": [ + { + "constant": false, + "id": 3513, + "name": "factory", + "nodeType": "VariableDeclaration", + "scope": 3559, + "src": "2549:36:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ITypedConverterAnchorFactory_$12260", + "typeString": "contract ITypedConverterAnchorFactory" + }, + "typeName": { + "contractScope": null, + "id": 3512, + "name": "ITypedConverterAnchorFactory", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 12260, + "src": "2549:28:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ITypedConverterAnchorFactory_$12260", + "typeString": "contract ITypedConverterAnchorFactory" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 3517, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3514, + "name": "anchorFactories", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3444, + "src": "2588:15:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint16_$_t_contract$_ITypedConverterAnchorFactory_$12260_$", + "typeString": "mapping(uint16 => contract ITypedConverterAnchorFactory)" + } + }, + "id": 3516, + "indexExpression": { + "argumentTypes": null, + "id": 3515, + "name": "_converterType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3498, + "src": "2604:14:5", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2588:31:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ITypedConverterAnchorFactory_$12260", + "typeString": "contract ITypedConverterAnchorFactory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2549:70:5" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3522, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3518, + "name": "factory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3513, + "src": "2628:7:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ITypedConverterAnchorFactory_$12260", + "typeString": "contract ITypedConverterAnchorFactory" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 3520, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2647:1:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3519, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2639:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 3521, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2639:10:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "2628:21:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 3547, + "nodeType": "Block", + "src": "2758:122:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3540, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3533, + "name": "anchor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3510, + "src": "2790:6:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3536, + "name": "_name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3500, + "src": "2820:5:5", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "argumentTypes": null, + "id": 3537, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3502, + "src": "2827:7:5", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "argumentTypes": null, + "id": 3538, + "name": "_decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3504, + "src": "2836:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + ], + "expression": { + "argumentTypes": null, + "id": 3534, + "name": "factory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3513, + "src": "2799:7:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ITypedConverterAnchorFactory_$12260", + "typeString": "contract ITypedConverterAnchorFactory" + } + }, + "id": 3535, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "createAnchor", + "nodeType": "MemberAccess", + "referencedDeclaration": 12259, + "src": "2799:20:5", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_uint8_$returns$_t_contract$_IConverterAnchor_$11826_$", + "typeString": "function (string memory,string memory,uint8) external returns (contract IConverterAnchor)" + } + }, + "id": 3539, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2799:47:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + }, + "src": "2790:56:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + }, + "id": 3541, + "nodeType": "ExpressionStatement", + "src": "2790:56:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 3542, + "name": "anchor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3510, + "src": "2851:6:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + }, + "id": 3544, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "acceptOwnership", + "nodeType": "MemberAccess", + "referencedDeclaration": 22246, + "src": "2851:22:5", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$__$returns$__$", + "typeString": "function () external" + } + }, + "id": 3545, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2851:24:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3546, + "nodeType": "ExpressionStatement", + "src": "2851:24:5" + } + ] + }, + "id": 3548, + "nodeType": "IfStatement", + "src": "2624:256:5", + "trueBody": { + "id": 3532, + "nodeType": "Block", + "src": "2651:101:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3530, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3523, + "name": "anchor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3510, + "src": "2697:6:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3526, + "name": "_name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3500, + "src": "2721:5:5", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "argumentTypes": null, + "id": 3527, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3502, + "src": "2728:7:5", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "argumentTypes": null, + "id": 3528, + "name": "_decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3504, + "src": "2737:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + ], + "id": 3525, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "2706:14:5", + "typeDescriptions": { + "typeIdentifier": "t_function_creation_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_uint8_$returns$_t_contract$_SmartToken_$20148_$", + "typeString": "function (string memory,string memory,uint8) returns (contract SmartToken)" + }, + "typeName": { + "contractScope": null, + "id": 3524, + "name": "SmartToken", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20148, + "src": "2710:10:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SmartToken_$20148", + "typeString": "contract SmartToken" + } + } + }, + "id": 3529, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2706:41:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SmartToken_$20148", + "typeString": "contract SmartToken" + } + }, + "src": "2697:50:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + }, + "id": 3531, + "nodeType": "ExpressionStatement", + "src": "2697:50:5" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3552, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22338, + "src": "2909:3:5", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3553, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2909:10:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 3549, + "name": "anchor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3510, + "src": "2884:6:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + }, + "id": 3551, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transferOwnership", + "nodeType": "MemberAccess", + "referencedDeclaration": 22243, + "src": "2884:24:5", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$", + "typeString": "function (address) external" + } + }, + "id": 3554, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2884:36:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3555, + "nodeType": "ExpressionStatement", + "src": "2884:36:5" + }, + { + "expression": { + "argumentTypes": null, + "id": 3556, + "name": "anchor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3510, + "src": "2931:6:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + }, + "functionReturnParameters": 3508, + "id": 3557, + "nodeType": "Return", + "src": "2924:13:5" + } + ] + }, + "documentation": "@dev creates a new converter anchor with the given arguments and transfers\nthe ownership to the caller\n\t * @param _converterType converter type, see ConverterBase contract main doc\n@param _name name\n@param _symbol symbol\n@param _decimals decimals\n\t * @return new converter anchor", + "id": 3559, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "createAnchor", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3505, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3498, + "name": "_converterType", + "nodeType": "VariableDeclaration", + "scope": 3559, + "src": "2406:21:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 3497, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "2406:6:5", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3500, + "name": "_name", + "nodeType": "VariableDeclaration", + "scope": 3559, + "src": "2431:12:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3499, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2431:6:5", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3502, + "name": "_symbol", + "nodeType": "VariableDeclaration", + "scope": 3559, + "src": "2447:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3501, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2447:6:5", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3504, + "name": "_decimals", + "nodeType": "VariableDeclaration", + "scope": 3559, + "src": "2465:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 3503, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "2465:5:5", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2402:81:5" + }, + "payable": false, + "returnParameters": { + "id": 3508, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3507, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3559, + "src": "2500:16:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + }, + "typeName": { + "contractScope": null, + "id": 3506, + "name": "IConverterAnchor", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11826, + "src": "2500:16:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2499:18:5" + }, + "scope": 3606, + "src": "2381:560:5", + "stateMutability": "nonpayable", + "superFunction": 11845, + "visibility": "public" + }, + { + "body": { + "id": 3604, + "nodeType": "Block", + "src": "3539:257:5", + "statements": [ + { + "assignments": [ + 3573 + ], + "declarations": [ + { + "constant": false, + "id": 3573, + "name": "converter", + "nodeType": "VariableDeclaration", + "scope": 3605, + "src": "3543:20:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + }, + "typeName": { + "contractScope": null, + "id": 3572, + "name": "IConverter", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11817, + "src": "3543:10:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 3582, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3578, + "name": "_anchor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3563, + "src": "3608:7:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + }, + { + "argumentTypes": null, + "id": 3579, + "name": "_registry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3565, + "src": "3617:9:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IContractRegistry_$22220", + "typeString": "contract IContractRegistry" + } + }, + { + "argumentTypes": null, + "id": 3580, + "name": "_maxConversionFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3567, + "src": "3628:17:5", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + }, + { + "typeIdentifier": "t_contract$_IContractRegistry_$22220", + "typeString": "contract IContractRegistry" + }, + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3574, + "name": "converterFactories", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3440, + "src": "3566:18:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint16_$_t_contract$_ITypedConverterFactory_$12290_$", + "typeString": "mapping(uint16 => contract ITypedConverterFactory)" + } + }, + "id": 3576, + "indexExpression": { + "argumentTypes": null, + "id": 3575, + "name": "_type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3561, + "src": "3585:5:5", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3566:25:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ITypedConverterFactory_$12290", + "typeString": "contract ITypedConverterFactory" + } + }, + "id": 3577, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "createConverter", + "nodeType": "MemberAccess", + "referencedDeclaration": 12289, + "src": "3566:41:5", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_contract$_IConverterAnchor_$11826_$_t_contract$_IContractRegistry_$22220_$_t_uint32_$returns$_t_contract$_IConverter_$11817_$", + "typeString": "function (contract IConverterAnchor,contract IContractRegistry,uint32) external returns (contract IConverter)" + } + }, + "id": 3581, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3566:80:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3543:103:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 3583, + "name": "converter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3573, + "src": "3650:9:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + "id": 3585, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "acceptOwnership", + "nodeType": "MemberAccess", + "referencedDeclaration": 22246, + "src": "3650:25:5", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$__$returns$__$", + "typeString": "function () external" + } + }, + "id": 3586, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3650:27:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3587, + "nodeType": "ExpressionStatement", + "src": "3650:27:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3591, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22338, + "src": "3709:3:5", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3592, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3709:10:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 3588, + "name": "converter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3573, + "src": "3681:9:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + "id": 3590, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transferOwnership", + "nodeType": "MemberAccess", + "referencedDeclaration": 22243, + "src": "3681:27:5", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$", + "typeString": "function (address) external" + } + }, + "id": 3593, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3681:39:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3594, + "nodeType": "ExpressionStatement", + "src": "3681:39:5" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3596, + "name": "_type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3561, + "src": "3743:5:5", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + { + "argumentTypes": null, + "id": 3597, + "name": "converter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3573, + "src": "3750:9:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3598, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22338, + "src": "3761:3:5", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3599, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3761:10:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 3595, + "name": "NewConverter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3436, + "src": "3730:12:5", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint16_$_t_address_$_t_address_$returns$__$", + "typeString": "function (uint16,address,address)" + } + }, + "id": 3600, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3730:42:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3601, + "nodeType": "EmitStatement", + "src": "3725:47:5" + }, + { + "expression": { + "argumentTypes": null, + "id": 3602, + "name": "converter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3573, + "src": "3783:9:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + "functionReturnParameters": 3571, + "id": 3603, + "nodeType": "Return", + "src": "3776:16:5" + } + ] + }, + "documentation": "@dev creates a new converter with the given arguments and transfers\nthe ownership to the caller\n\t * @param _type converter type, see ConverterBase contract main doc\n@param _anchor anchor governed by the converter\n@param _registry address of a contract registry contract\n@param _maxConversionFee maximum conversion fee, represented in ppm\n\t * @return new converter", + "id": 3605, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "createConverter", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3568, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3561, + "name": "_type", + "nodeType": "VariableDeclaration", + "scope": 3605, + "src": "3408:12:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 3560, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "3408:6:5", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3563, + "name": "_anchor", + "nodeType": "VariableDeclaration", + "scope": 3605, + "src": "3424:24:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + }, + "typeName": { + "contractScope": null, + "id": 3562, + "name": "IConverterAnchor", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11826, + "src": "3424:16:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3565, + "name": "_registry", + "nodeType": "VariableDeclaration", + "scope": 3605, + "src": "3452:27:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IContractRegistry_$22220", + "typeString": "contract IContractRegistry" + }, + "typeName": { + "contractScope": null, + "id": 3564, + "name": "IContractRegistry", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 22220, + "src": "3452:17:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IContractRegistry_$22220", + "typeString": "contract IContractRegistry" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3567, + "name": "_maxConversionFee", + "nodeType": "VariableDeclaration", + "scope": 3605, + "src": "3483:24:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 3566, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "3483:6:5", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3404:106:5" + }, + "payable": false, + "returnParameters": { + "id": 3571, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3570, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3605, + "src": "3527:10:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + }, + "typeName": { + "contractScope": null, + "id": 3569, + "name": "IConverter", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11817, + "src": "3527:10:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3526:12:5" + }, + "scope": 3606, + "src": "3380:416:5", + "stateMutability": "nonpayable", + "superFunction": 11858, + "visibility": "public" + } + ], + "scope": 3607, + "src": "417:3381:5" + } + ], + "src": "0:3799:5" + }, + "id": 5 + }, + "solidity/contracts/converter/ConverterRegistry.sol": { + "ast": { + "absolutePath": "solidity/contracts/converter/ConverterRegistry.sol", + "exportedSymbols": { + "ConverterRegistry": [ + 4965 + ] + }, + "id": 4966, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 3608, + "literals": [ + "solidity", + "0.4", + ".26" + ], + "nodeType": "PragmaDirective", + "src": "0:23:6" + }, + { + "absolutePath": "solidity/contracts/utility/TokenHandler.sol", + "file": "../utility/TokenHandler.sol", + "id": 3609, + "nodeType": "ImportDirective", + "scope": 4966, + "sourceUnit": 21934, + "src": "24:37:6", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "solidity/contracts/utility/ContractRegistryClient.sol", + "file": "../utility/ContractRegistryClient.sol", + "id": 3610, + "nodeType": "ImportDirective", + "scope": 4966, + "sourceUnit": 20933, + "src": "62:47:6", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "solidity/contracts/converter/interfaces/IConverter.sol", + "file": "./interfaces/IConverter.sol", + "id": 3611, + "nodeType": "ImportDirective", + "scope": 4966, + "sourceUnit": 11818, + "src": "110:37:6", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "solidity/contracts/converter/interfaces/IConverterFactory.sol", + "file": "./interfaces/IConverterFactory.sol", + "id": 3612, + "nodeType": "ImportDirective", + "scope": 4966, + "sourceUnit": 11872, + "src": "148:44:6", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "solidity/contracts/converter/interfaces/IConverterRegistry.sol", + "file": "./interfaces/IConverterRegistry.sol", + "id": 3613, + "nodeType": "ImportDirective", + "scope": 4966, + "sourceUnit": 11983, + "src": "193:45:6", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "solidity/contracts/converter/interfaces/IConverterRegistryData.sol", + "file": "./interfaces/IConverterRegistryData.sol", + "id": 3614, + "nodeType": "ImportDirective", + "scope": 4966, + "sourceUnit": 12128, + "src": "239:49:6", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 3615, + "name": "IConverterRegistry", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11982, + "src": "1308:18:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterRegistry_$11982", + "typeString": "contract IConverterRegistry" + } + }, + "id": 3616, + "nodeType": "InheritanceSpecifier", + "src": "1308:18:6" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 3617, + "name": "ContractRegistryClient", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20932, + "src": "1328:22:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ContractRegistryClient_$20932", + "typeString": "contract ContractRegistryClient" + } + }, + "id": 3618, + "nodeType": "InheritanceSpecifier", + "src": "1328:22:6" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 3619, + "name": "TokenHandler", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 21933, + "src": "1352:12:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_TokenHandler_$21933", + "typeString": "contract TokenHandler" + } + }, + "id": 3620, + "nodeType": "InheritanceSpecifier", + "src": "1352:12:6" + } + ], + "contractDependencies": [ + 11982, + 20932, + 21324, + 21933, + 22052, + 22247 + ], + "contractKind": "contract", + "documentation": "@dev The ConverterRegistry maintains a list of all active converters in the SovrynSwap Network.\n * Since converters can be upgraded and thus their address can change, the registry actually keeps\nconverter anchors internally and not the converters themselves.\nThe active converter for each anchor can be easily accessed by querying the anchor's owner.\n * The registry exposes 3 differnet lists that can be accessed and iterated, based on the use-case of the caller:\n- Anchors - can be used to get all the latest / historical data in the network\n- Liquidity pools - can be used to get all liquidity pools for funding, liquidation etc.\n- Convertible tokens - can be used to get all tokens that can be converted in the network (excluding pool\n tokens), and for each one - all anchors that hold it in their reserves\n *\nThe contract fires events whenever one of the primitives is added to or removed from the registry\n * The contract is upgradable.", + "fullyImplemented": true, + "id": 4965, + "linearizedBaseContracts": [ + 4965, + 21933, + 20932, + 22052, + 21324, + 22247, + 11982 + ], + "name": "ConverterRegistry", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "id": 3623, + "name": "ETH_RESERVE_ADDRESS", + "nodeType": "VariableDeclaration", + "scope": 4965, + "src": "1368:89:6", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3621, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1368:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "307845656565654565656545654565654565456545656545454565656565456565656565656545456545", + "id": 3622, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1415:42:6", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "value": "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE" + }, + "visibility": "private" + }, + { + "constant": false, + "id": 3627, + "name": "deployer", + "nodeType": "VariableDeclaration", + "scope": 4965, + "src": "1460:44:6", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_address_$", + "typeString": "mapping(address => address)" + }, + "typeName": { + "id": 3626, + "keyType": { + "id": 3624, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1468:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1460:27:6", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_address_$", + "typeString": "mapping(address => address)" + }, + "valueType": { + "id": 3625, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1479:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + }, + "value": null, + "visibility": "private" + }, + { + "anonymous": false, + "documentation": "@dev triggered when a converter anchor is added to the registry\n\t * @param _anchor smart token", + "id": 3631, + "name": "ConverterAnchorAdded", + "nodeType": "EventDefinition", + "parameters": { + "id": 3630, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3629, + "indexed": true, + "name": "_anchor", + "nodeType": "VariableDeclaration", + "scope": 3631, + "src": "1648:23:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3628, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1648:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1647:25:6" + }, + "src": "1621:52:6" + }, + { + "anonymous": false, + "documentation": "@dev triggered when a converter anchor is removed from the registry\n\t * @param _anchor smart token", + "id": 3635, + "name": "ConverterAnchorRemoved", + "nodeType": "EventDefinition", + "parameters": { + "id": 3634, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3633, + "indexed": true, + "name": "_anchor", + "nodeType": "VariableDeclaration", + "scope": 3635, + "src": "1822:23:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3632, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1822:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1821:25:6" + }, + "src": "1793:54:6" + }, + { + "anonymous": false, + "documentation": "@dev triggered when a liquidity pool is added to the registry\n\t * @param _liquidityPool liquidity pool", + "id": 3639, + "name": "LiquidityPoolAdded", + "nodeType": "EventDefinition", + "parameters": { + "id": 3638, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3637, + "indexed": true, + "name": "_liquidityPool", + "nodeType": "VariableDeclaration", + "scope": 3639, + "src": "1996:30:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3636, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1996:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1995:32:6" + }, + "src": "1971:57:6" + }, + { + "anonymous": false, + "documentation": "@dev triggered when a liquidity pool is removed from the registry\n\t * @param _liquidityPool liquidity pool", + "id": 3643, + "name": "LiquidityPoolRemoved", + "nodeType": "EventDefinition", + "parameters": { + "id": 3642, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3641, + "indexed": true, + "name": "_liquidityPool", + "nodeType": "VariableDeclaration", + "scope": 3643, + "src": "2183:30:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3640, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2183:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2182:32:6" + }, + "src": "2156:59:6" + }, + { + "anonymous": false, + "documentation": "@dev triggered when a convertible token is added to the registry\n\t * @param _convertibleToken convertible token\n@param _smartToken associated smart token", + "id": 3649, + "name": "ConvertibleTokenAdded", + "nodeType": "EventDefinition", + "parameters": { + "id": 3648, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3645, + "indexed": true, + "name": "_convertibleToken", + "nodeType": "VariableDeclaration", + "scope": 3649, + "src": "2422:33:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3644, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2422:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3647, + "indexed": true, + "name": "_smartToken", + "nodeType": "VariableDeclaration", + "scope": 3649, + "src": "2457:27:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3646, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2457:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2421:64:6" + }, + "src": "2394:92:6" + }, + { + "anonymous": false, + "documentation": "@dev triggered when a convertible token is removed from the registry\n\t * @param _convertibleToken convertible token\n@param _smartToken associated smart token", + "id": 3655, + "name": "ConvertibleTokenRemoved", + "nodeType": "EventDefinition", + "parameters": { + "id": 3654, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3651, + "indexed": true, + "name": "_convertibleToken", + "nodeType": "VariableDeclaration", + "scope": 3655, + "src": "2699:33:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3650, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2699:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3653, + "indexed": true, + "name": "_smartToken", + "nodeType": "VariableDeclaration", + "scope": 3655, + "src": "2734:27:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3652, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2734:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2698:64:6" + }, + "src": "2669:94:6" + }, + { + "anonymous": false, + "documentation": "@dev deprecated, backward compatibility, use `ConverterAnchorAdded`", + "id": 3659, + "name": "SmartTokenAdded", + "nodeType": "EventDefinition", + "parameters": { + "id": 3658, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3657, + "indexed": true, + "name": "_smartToken", + "nodeType": "VariableDeclaration", + "scope": 3659, + "src": "2870:27:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3656, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2870:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2869:29:6" + }, + "src": "2848:51:6" + }, + { + "anonymous": false, + "documentation": "@dev deprecated, backward compatibility, use `ConverterAnchorRemoved`", + "id": 3663, + "name": "SmartTokenRemoved", + "nodeType": "EventDefinition", + "parameters": { + "id": 3662, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3661, + "indexed": true, + "name": "_smartToken", + "nodeType": "VariableDeclaration", + "scope": 3663, + "src": "3010:27:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3660, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3010:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3009:29:6" + }, + "src": "2986:53:6" + }, + { + "body": { + "id": 3671, + "nodeType": "Block", + "src": "3253:2:6", + "statements": [] + }, + "documentation": "@dev initializes a new ConverterRegistry instance\n\t * @param _registry address of a contract registry contract", + "id": 3672, + "implemented": true, + "isConstructor": true, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 3668, + "name": "_registry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3665, + "src": "3242:9:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IContractRegistry_$22220", + "typeString": "contract IContractRegistry" + } + } + ], + "id": 3669, + "modifierName": { + "argumentTypes": null, + "id": 3667, + "name": "ContractRegistryClient", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20932, + "src": "3219:22:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ContractRegistryClient_$20932_$", + "typeString": "type(contract ContractRegistryClient)" + } + }, + "nodeType": "ModifierInvocation", + "src": "3219:33:6" + } + ], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3666, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3665, + "name": "_registry", + "nodeType": "VariableDeclaration", + "scope": 3672, + "src": "3183:27:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IContractRegistry_$22220", + "typeString": "contract IContractRegistry" + }, + "typeName": { + "contractScope": null, + "id": 3664, + "name": "IContractRegistry", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 22220, + "src": "3183:17:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IContractRegistry_$22220", + "typeString": "contract IContractRegistry" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3182:29:6" + }, + "payable": false, + "returnParameters": { + "id": 3670, + "nodeType": "ParameterList", + "parameters": [], + "src": "3253:0:6" + }, + "scope": 4965, + "src": "3171:84:6", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 3760, + "nodeType": "Block", + "src": "4022:678:6", + "statements": [ + { + "assignments": [ + 3694 + ], + "declarations": [ + { + "constant": false, + "id": 3694, + "name": "length", + "nodeType": "VariableDeclaration", + "scope": 3761, + "src": "4026:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3693, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4026:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 3697, + "initialValue": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3695, + "name": "_reserveTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3685, + "src": "4043:14:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", + "typeString": "contract IERC20Token[] memory" + } + }, + "id": 3696, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4043:21:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4026:38:6" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3702, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3699, + "name": "length", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3694, + "src": "4076:6:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3700, + "name": "_reserveWeights", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3688, + "src": "4086:15:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint32_$dyn_memory_ptr", + "typeString": "uint32[] memory" + } + }, + "id": 3701, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4086:22:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4076:32:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4552525f494e56414c49445f5245534552564553", + "id": 3703, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4110:22:6", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_d9402087dd8193cd0dfdf2ea32d5d892390e5da6cfb95c2d9c82b55c80bcce77", + "typeString": "literal_string \"ERR_INVALID_RESERVES\"" + }, + "value": "ERR_INVALID_RESERVES" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_d9402087dd8193cd0dfdf2ea32d5d892390e5da6cfb95c2d9c82b55c80bcce77", + "typeString": "literal_string \"ERR_INVALID_RESERVES\"" + } + ], + "id": 3698, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 22341, + 22342 + ], + "referencedDeclaration": 22342, + "src": "4068:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3704, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4068:65:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3705, + "nodeType": "ExpressionStatement", + "src": "4068:65:6" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + }, + "id": 3715, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3708, + "name": "_type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3674, + "src": "4170:5:6", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + { + "argumentTypes": null, + "id": 3709, + "name": "_reserveTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3685, + "src": "4177:14:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", + "typeString": "contract IERC20Token[] memory" + } + }, + { + "argumentTypes": null, + "id": 3710, + "name": "_reserveWeights", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3688, + "src": "4193:15:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint32_$dyn_memory_ptr", + "typeString": "uint32[] memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", + "typeString": "contract IERC20Token[] memory" + }, + { + "typeIdentifier": "t_array$_t_uint32_$dyn_memory_ptr", + "typeString": "uint32[] memory" + } + ], + "id": 3707, + "name": "getLiquidityPoolByConfig", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4402, + "src": "4145:24:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint16_$_t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr_$_t_array$_t_uint32_$dyn_memory_ptr_$returns$_t_contract$_IConverterAnchor_$11826_$", + "typeString": "function (uint16,contract IERC20Token[] memory,uint32[] memory) view returns (contract IConverterAnchor)" + } + }, + "id": 3711, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4145:64:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 3713, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4230:1:6", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3712, + "name": "IConverterAnchor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11826, + "src": "4213:16:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IConverterAnchor_$11826_$", + "typeString": "type(contract IConverterAnchor)" + } + }, + "id": 3714, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4213:19:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + }, + "src": "4145:87:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4552525f414c52454144595f455849535453", + "id": 3716, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4234:20:6", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_dee3679442264532ea8006772293a0d73a73c45dea71a562b7f372acad036a5c", + "typeString": "literal_string \"ERR_ALREADY_EXISTS\"" + }, + "value": "ERR_ALREADY_EXISTS" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_dee3679442264532ea8006772293a0d73a73c45dea71a562b7f372acad036a5c", + "typeString": "literal_string \"ERR_ALREADY_EXISTS\"" + } + ], + "id": 3706, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 22341, + 22342 + ], + "referencedDeclaration": 22342, + "src": "4137:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3717, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4137:118:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3718, + "nodeType": "ExpressionStatement", + "src": "4137:118:6" + }, + { + "assignments": [ + 3720 + ], + "declarations": [ + { + "constant": false, + "id": 3720, + "name": "factory", + "nodeType": "VariableDeclaration", + "scope": 3761, + "src": "4260:25:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterFactory_$11871", + "typeString": "contract IConverterFactory" + }, + "typeName": { + "contractScope": null, + "id": 3719, + "name": "IConverterFactory", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11871, + "src": "4260:17:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterFactory_$11871", + "typeString": "contract IConverterFactory" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 3726, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3723, + "name": "CONVERTER_FACTORY", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20761, + "src": "4316:17:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 3722, + "name": "addressOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20931, + "src": "4306:9:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$", + "typeString": "function (bytes32) view returns (address)" + } + }, + "id": 3724, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4306:28:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 3721, + "name": "IConverterFactory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11871, + "src": "4288:17:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IConverterFactory_$11871_$", + "typeString": "type(contract IConverterFactory)" + } + }, + "id": 3725, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4288:47:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterFactory_$11871", + "typeString": "contract IConverterFactory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4260:75:6" + }, + { + "assignments": [ + 3728 + ], + "declarations": [ + { + "constant": false, + "id": 3728, + "name": "anchor", + "nodeType": "VariableDeclaration", + "scope": 3761, + "src": "4339:23:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + }, + "typeName": { + "contractScope": null, + "id": 3727, + "name": "IConverterAnchor", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11826, + "src": "4339:16:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 3738, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3732, + "name": "_type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3674, + "src": "4403:5:6", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + { + "argumentTypes": null, + "id": 3733, + "name": "_name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3676, + "src": "4410:5:6", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "argumentTypes": null, + "id": 3734, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3678, + "src": "4417:7:6", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "argumentTypes": null, + "id": 3735, + "name": "_decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3680, + "src": "4426:9:6", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + ], + "expression": { + "argumentTypes": null, + "id": 3730, + "name": "factory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3720, + "src": "4382:7:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterFactory_$11871", + "typeString": "contract IConverterFactory" + } + }, + "id": 3731, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "createAnchor", + "nodeType": "MemberAccess", + "referencedDeclaration": 11845, + "src": "4382:20:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_uint16_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_uint8_$returns$_t_contract$_IConverterAnchor_$11826_$", + "typeString": "function (uint16,string memory,string memory,uint8) external returns (contract IConverterAnchor)" + } + }, + "id": 3736, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4382:54:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + ], + "id": 3729, + "name": "IConverterAnchor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11826, + "src": "4365:16:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IConverterAnchor_$11826_$", + "typeString": "type(contract IConverterAnchor)" + } + }, + "id": 3737, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4365:72:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4339:98:6" + }, + { + "assignments": [ + 3740 + ], + "declarations": [ + { + "constant": false, + "id": 3740, + "name": "converter", + "nodeType": "VariableDeclaration", + "scope": 3761, + "src": "4441:20:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + }, + "typeName": { + "contractScope": null, + "id": 3739, + "name": "IConverter", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11817, + "src": "4441:10:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 3750, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3744, + "name": "_type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3674, + "src": "4499:5:6", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + { + "argumentTypes": null, + "id": 3745, + "name": "anchor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3728, + "src": "4506:6:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + }, + { + "argumentTypes": null, + "id": 3746, + "name": "registry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20787, + "src": "4514:8:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IContractRegistry_$22220", + "typeString": "contract IContractRegistry" + } + }, + { + "argumentTypes": null, + "id": 3747, + "name": "_maxConversionFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3682, + "src": "4524:17:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + }, + { + "typeIdentifier": "t_contract$_IContractRegistry_$22220", + "typeString": "contract IContractRegistry" + }, + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + ], + "expression": { + "argumentTypes": null, + "id": 3742, + "name": "factory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3720, + "src": "4475:7:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterFactory_$11871", + "typeString": "contract IConverterFactory" + } + }, + "id": 3743, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "createConverter", + "nodeType": "MemberAccess", + "referencedDeclaration": 11858, + "src": "4475:23:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_uint16_$_t_contract$_IConverterAnchor_$11826_$_t_contract$_IContractRegistry_$22220_$_t_uint32_$returns$_t_contract$_IConverter_$11817_$", + "typeString": "function (uint16,contract IConverterAnchor,contract IContractRegistry,uint32) external returns (contract IConverter)" + } + }, + "id": 3748, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4475:67:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + ], + "id": 3741, + "name": "IConverter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11817, + "src": "4464:10:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IConverter_$11817_$", + "typeString": "type(contract IConverter)" + } + }, + "id": 3749, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4464:79:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4441:102:6" + }, + { + "expression": { + "argumentTypes": null, + "id": 3756, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3751, + "name": "deployer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3627, + "src": "4643:8:6", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_address_$", + "typeString": "mapping(address => address)" + } + }, + "id": 3753, + "indexExpression": { + "argumentTypes": null, + "id": 3752, + "name": "converter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3740, + "src": "4652:9:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "4643:19:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3754, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22338, + "src": "4665:3:6", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3755, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4665:10:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "4643:32:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 3757, + "nodeType": "ExpressionStatement", + "src": "4643:32:6" + }, + { + "expression": { + "argumentTypes": null, + "id": 3758, + "name": "converter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3740, + "src": "4687:9:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + "functionReturnParameters": 3692, + "id": 3759, + "nodeType": "Return", + "src": "4680:16:6" + } + ] + }, + "documentation": "@dev creates a zero supply liquid token / empty liquidity pool and adds its converter to the registry\n\t * @param _type converter type, see ConverterBase contract main doc\n@param _name token / pool name\n@param _symbol token / pool symbol\n@param _decimals token / pool decimals\n@param _maxConversionFee maximum conversion-fee\n@param _reserveTokens reserve tokens\n@param _reserveWeights reserve weights\n\t * @return new converter", + "id": 3761, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "newConverter", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3689, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3674, + "name": "_type", + "nodeType": "VariableDeclaration", + "scope": 3761, + "src": "3823:12:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 3673, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "3823:6:6", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3676, + "name": "_name", + "nodeType": "VariableDeclaration", + "scope": 3761, + "src": "3839:12:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3675, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3839:6:6", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3678, + "name": "_symbol", + "nodeType": "VariableDeclaration", + "scope": 3761, + "src": "3855:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3677, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3855:6:6", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3680, + "name": "_decimals", + "nodeType": "VariableDeclaration", + "scope": 3761, + "src": "3873:15:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 3679, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "3873:5:6", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3682, + "name": "_maxConversionFee", + "nodeType": "VariableDeclaration", + "scope": 3761, + "src": "3892:24:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 3681, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "3892:6:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3685, + "name": "_reserveTokens", + "nodeType": "VariableDeclaration", + "scope": 3761, + "src": "3920:35:6", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", + "typeString": "contract IERC20Token[]" + }, + "typeName": { + "baseType": { + "contractScope": null, + "id": 3683, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "3920:11:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "id": 3684, + "length": null, + "nodeType": "ArrayTypeName", + "src": "3920:13:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_storage_ptr", + "typeString": "contract IERC20Token[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3688, + "name": "_reserveWeights", + "nodeType": "VariableDeclaration", + "scope": 3761, + "src": "3959:31:6", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint32_$dyn_memory_ptr", + "typeString": "uint32[]" + }, + "typeName": { + "baseType": { + "id": 3686, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "3959:6:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "id": 3687, + "length": null, + "nodeType": "ArrayTypeName", + "src": "3959:8:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint32_$dyn_storage_ptr", + "typeString": "uint32[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3819:174:6" + }, + "payable": false, + "returnParameters": { + "id": 3692, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3691, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3761, + "src": "4010:10:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + }, + "typeName": { + "contractScope": null, + "id": 3690, + "name": "IConverter", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11817, + "src": "4010:10:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4009:12:6" + }, + "scope": 4965, + "src": "3798:902:6", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 3874, + "nodeType": "Block", + "src": "5238:731:6", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3782, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3777, + "name": "deployer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3627, + "src": "5250:8:6", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_address_$", + "typeString": "mapping(address => address)" + } + }, + "id": 3779, + "indexExpression": { + "argumentTypes": null, + "id": 3778, + "name": "_converter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3771, + "src": "5259:10:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5250:20:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3780, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22338, + "src": "5274:3:6", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3781, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5274:10:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "5250:34:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "6f6e6c7920746865206465706c6f796572206d61792066696e6973682074686520636f6e766572746572207365747570", + "id": 3783, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5286:50:6", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_1926632051886f5b909fae0d6be4ec37b8e0904a01f29ae4da4a1e48e9fa0f71", + "typeString": "literal_string \"only the deployer may finish the converter setup\"" + }, + "value": "only the deployer may finish the converter setup" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_1926632051886f5b909fae0d6be4ec37b8e0904a01f29ae4da4a1e48e9fa0f71", + "typeString": "literal_string \"only the deployer may finish the converter setup\"" + } + ], + "id": 3776, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 22341, + 22342 + ], + "referencedDeclaration": 22342, + "src": "5242:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3784, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5242:95:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3785, + "nodeType": "ExpressionStatement", + "src": "5242:95:6" + }, + { + "assignments": [ + 3787 + ], + "declarations": [ + { + "constant": false, + "id": 3787, + "name": "length", + "nodeType": "VariableDeclaration", + "scope": 3875, + "src": "5342:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3786, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5342:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 3790, + "initialValue": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3788, + "name": "_reserveTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3766, + "src": "5359:14:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", + "typeString": "contract IERC20Token[] memory" + } + }, + "id": 3789, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5359:21:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5342:38:6" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3795, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3792, + "name": "length", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3787, + "src": "5392:6:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3793, + "name": "_reserveWeights", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3769, + "src": "5402:15:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint32_$dyn_memory_ptr", + "typeString": "uint32[] memory" + } + }, + "id": 3794, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5402:22:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5392:32:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4552525f494e56414c49445f5245534552564553", + "id": 3796, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5426:22:6", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_d9402087dd8193cd0dfdf2ea32d5d892390e5da6cfb95c2d9c82b55c80bcce77", + "typeString": "literal_string \"ERR_INVALID_RESERVES\"" + }, + "value": "ERR_INVALID_RESERVES" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_d9402087dd8193cd0dfdf2ea32d5d892390e5da6cfb95c2d9c82b55c80bcce77", + "typeString": "literal_string \"ERR_INVALID_RESERVES\"" + } + ], + "id": 3791, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 22341, + 22342 + ], + "referencedDeclaration": 22342, + "src": "5384:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3797, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5384:65:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3798, + "nodeType": "ExpressionStatement", + "src": "5384:65:6" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + }, + "id": 3808, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3801, + "name": "_type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3763, + "src": "5486:5:6", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + { + "argumentTypes": null, + "id": 3802, + "name": "_reserveTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3766, + "src": "5493:14:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", + "typeString": "contract IERC20Token[] memory" + } + }, + { + "argumentTypes": null, + "id": 3803, + "name": "_reserveWeights", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3769, + "src": "5509:15:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint32_$dyn_memory_ptr", + "typeString": "uint32[] memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", + "typeString": "contract IERC20Token[] memory" + }, + { + "typeIdentifier": "t_array$_t_uint32_$dyn_memory_ptr", + "typeString": "uint32[] memory" + } + ], + "id": 3800, + "name": "getLiquidityPoolByConfig", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4402, + "src": "5461:24:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint16_$_t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr_$_t_array$_t_uint32_$dyn_memory_ptr_$returns$_t_contract$_IConverterAnchor_$11826_$", + "typeString": "function (uint16,contract IERC20Token[] memory,uint32[] memory) view returns (contract IConverterAnchor)" + } + }, + "id": 3804, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5461:64:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 3806, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5546:1:6", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3805, + "name": "IConverterAnchor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11826, + "src": "5529:16:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IConverterAnchor_$11826_$", + "typeString": "type(contract IConverterAnchor)" + } + }, + "id": 3807, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5529:19:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + }, + "src": "5461:87:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4552525f414c52454144595f455849535453", + "id": 3809, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5550:20:6", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_dee3679442264532ea8006772293a0d73a73c45dea71a562b7f372acad036a5c", + "typeString": "literal_string \"ERR_ALREADY_EXISTS\"" + }, + "value": "ERR_ALREADY_EXISTS" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_dee3679442264532ea8006772293a0d73a73c45dea71a562b7f372acad036a5c", + "typeString": "literal_string \"ERR_ALREADY_EXISTS\"" + } + ], + "id": 3799, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 22341, + 22342 + ], + "referencedDeclaration": 22342, + "src": "5453:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3810, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5453:118:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3811, + "nodeType": "ExpressionStatement", + "src": "5453:118:6" + }, + { + "assignments": [ + 3813 + ], + "declarations": [ + { + "constant": false, + "id": 3813, + "name": "anchor", + "nodeType": "VariableDeclaration", + "scope": 3875, + "src": "5576:23:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + }, + "typeName": { + "contractScope": null, + "id": 3812, + "name": "IConverterAnchor", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11826, + "src": "5576:16:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 3817, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 3814, + "name": "_converter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3771, + "src": "5602:10:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + "id": 3815, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "anchor", + "nodeType": "MemberAccess", + "referencedDeclaration": 11663, + "src": "5602:17:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_IConverterAnchor_$11826_$", + "typeString": "function () view external returns (contract IConverterAnchor)" + } + }, + "id": 3816, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5602:19:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5576:45:6" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 3818, + "name": "anchor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3813, + "src": "5626:6:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + }, + "id": 3820, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "acceptOwnership", + "nodeType": "MemberAccess", + "referencedDeclaration": 22246, + "src": "5626:22:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$__$returns$__$", + "typeString": "function () external" + } + }, + "id": 3821, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5626:24:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3822, + "nodeType": "ExpressionStatement", + "src": "5626:24:6" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 3823, + "name": "_converter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3771, + "src": "5654:10:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + "id": 3825, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "acceptOwnership", + "nodeType": "MemberAccess", + "referencedDeclaration": 22246, + "src": "5654:26:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$__$returns$__$", + "typeString": "function () external" + } + }, + "id": 3826, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5654:28:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3827, + "nodeType": "ExpressionStatement", + "src": "5654:28:6" + }, + { + "body": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3841, + "name": "_reserveTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3766, + "src": "5746:14:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", + "typeString": "contract IERC20Token[] memory" + } + }, + "id": 3843, + "indexExpression": { + "argumentTypes": null, + "id": 3842, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3829, + "src": "5761:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5746:17:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3844, + "name": "_reserveWeights", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3769, + "src": "5765:15:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint32_$dyn_memory_ptr", + "typeString": "uint32[] memory" + } + }, + "id": 3846, + "indexExpression": { + "argumentTypes": null, + "id": 3845, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3829, + "src": "5781:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5765:18:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + ], + "expression": { + "argumentTypes": null, + "id": 3838, + "name": "_converter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3771, + "src": "5724:10:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + "id": 3840, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "addReserve", + "nodeType": "MemberAccess", + "referencedDeclaration": 11769, + "src": "5724:21:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_contract$_IERC20Token_$20240_$_t_uint32_$returns$__$", + "typeString": "function (contract IERC20Token,uint32) external" + } + }, + "id": 3847, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5724:60:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3848, + "nodeType": "ExpressionStatement", + "src": "5724:60:6" + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3834, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3832, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3829, + "src": "5707:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 3833, + "name": "length", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3787, + "src": "5711:6:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5707:10:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3849, + "initializationExpression": { + "assignments": [ + 3829 + ], + "declarations": [ + { + "constant": false, + "id": 3829, + "name": "i", + "nodeType": "VariableDeclaration", + "scope": 3875, + "src": "5692:9:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3828, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5692:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 3831, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 3830, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5704:1:6", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "5692:13:6" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 3836, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "5719:3:6", + "subExpression": { + "argumentTypes": null, + "id": 3835, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3829, + "src": "5719:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3837, + "nodeType": "ExpressionStatement", + "src": "5719:3:6" + }, + "nodeType": "ForStatement", + "src": "5687:97:6" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3853, + "name": "_converter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3771, + "src": "5814:10:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + ], + "expression": { + "argumentTypes": null, + "id": 3850, + "name": "anchor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3813, + "src": "5789:6:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + }, + "id": 3852, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transferOwnership", + "nodeType": "MemberAccess", + "referencedDeclaration": 22243, + "src": "5789:24:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$", + "typeString": "function (address) external" + } + }, + "id": 3854, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5789:36:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3855, + "nodeType": "ExpressionStatement", + "src": "5789:36:6" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 3856, + "name": "_converter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3771, + "src": "5829:10:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + "id": 3858, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "acceptAnchorOwnership", + "nodeType": "MemberAccess", + "referencedDeclaration": 11738, + "src": "5829:32:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$__$returns$__$", + "typeString": "function () external" + } + }, + "id": 3859, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5829:34:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3860, + "nodeType": "ExpressionStatement", + "src": "5829:34:6" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3864, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22338, + "src": "5896:3:6", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3865, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5896:10:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 3861, + "name": "_converter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3771, + "src": "5867:10:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + "id": 3863, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transferOwnership", + "nodeType": "MemberAccess", + "referencedDeclaration": 22243, + "src": "5867:28:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$", + "typeString": "function (address) external" + } + }, + "id": 3866, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5867:40:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3867, + "nodeType": "ExpressionStatement", + "src": "5867:40:6" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3869, + "name": "_converter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3771, + "src": "5933:10:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + ], + "id": 3868, + "name": "addConverterInternal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4594, + "src": "5912:20:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IConverter_$11817_$returns$__$", + "typeString": "function (contract IConverter)" + } + }, + "id": 3870, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5912:32:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3871, + "nodeType": "ExpressionStatement", + "src": "5912:32:6" + }, + { + "expression": { + "argumentTypes": null, + "id": 3872, + "name": "_converter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3771, + "src": "5955:10:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + "functionReturnParameters": 3775, + "id": 3873, + "nodeType": "Return", + "src": "5948:17:6" + } + ] + }, + "documentation": "@dev completes the configuration for a converter\n\t * @param _type converter type, see ConverterBase contract main doc\n@param _reserveTokens reserve tokens\n@param _reserveWeights reserve weights\n@param _converter the converter previously created through newConverter method\n\t * @return converter", + "id": 3875, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "setupConverter", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3772, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3763, + "name": "_type", + "nodeType": "VariableDeclaration", + "scope": 3875, + "src": "5095:12:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 3762, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "5095:6:6", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3766, + "name": "_reserveTokens", + "nodeType": "VariableDeclaration", + "scope": 3875, + "src": "5111:35:6", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", + "typeString": "contract IERC20Token[]" + }, + "typeName": { + "baseType": { + "contractScope": null, + "id": 3764, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "5111:11:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "id": 3765, + "length": null, + "nodeType": "ArrayTypeName", + "src": "5111:13:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_storage_ptr", + "typeString": "contract IERC20Token[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3769, + "name": "_reserveWeights", + "nodeType": "VariableDeclaration", + "scope": 3875, + "src": "5150:31:6", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint32_$dyn_memory_ptr", + "typeString": "uint32[]" + }, + "typeName": { + "baseType": { + "id": 3767, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "5150:6:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "id": 3768, + "length": null, + "nodeType": "ArrayTypeName", + "src": "5150:8:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint32_$dyn_storage_ptr", + "typeString": "uint32[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3771, + "name": "_converter", + "nodeType": "VariableDeclaration", + "scope": 3875, + "src": "5185:21:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + }, + "typeName": { + "contractScope": null, + "id": 3770, + "name": "IConverter", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11817, + "src": "5185:10:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5091:118:6" + }, + "payable": false, + "returnParameters": { + "id": 3775, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3774, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3875, + "src": "5226:10:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + }, + "typeName": { + "contractScope": null, + "id": 3773, + "name": "IConverter", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11817, + "src": "5226:10:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5225:12:6" + }, + "scope": 4965, + "src": "5068:901:6", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 3893, + "nodeType": "Block", + "src": "6168:106:6", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3884, + "name": "_converter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3877, + "src": "6197:10:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + ], + "id": 3883, + "name": "isConverterValid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4246, + "src": "6180:16:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_contract$_IConverter_$11817_$returns$_t_bool_$", + "typeString": "function (contract IConverter) view returns (bool)" + } + }, + "id": 3885, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6180:28:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4552525f494e56414c49445f434f4e564552544552", + "id": 3886, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6210:23:6", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_29b07c9e09ddb3e03f778b1e41e2a2ddb5432c5f4862b4c497de9268b6aaf6bf", + "typeString": "literal_string \"ERR_INVALID_CONVERTER\"" + }, + "value": "ERR_INVALID_CONVERTER" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_29b07c9e09ddb3e03f778b1e41e2a2ddb5432c5f4862b4c497de9268b6aaf6bf", + "typeString": "literal_string \"ERR_INVALID_CONVERTER\"" + } + ], + "id": 3882, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 22341, + 22342 + ], + "referencedDeclaration": 22342, + "src": "6172:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3887, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6172:62:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3888, + "nodeType": "ExpressionStatement", + "src": "6172:62:6" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3890, + "name": "_converter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3877, + "src": "6259:10:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + ], + "id": 3889, + "name": "addConverterInternal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4594, + "src": "6238:20:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IConverter_$11817_$returns$__$", + "typeString": "function (contract IConverter)" + } + }, + "id": 3891, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6238:32:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3892, + "nodeType": "ExpressionStatement", + "src": "6238:32:6" + } + ] + }, + "documentation": "@dev adds an existing converter to the registry\ncan only be called by the owner\n\t * @param _converter converter", + "id": 3894, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 3880, + "modifierName": { + "argumentTypes": null, + "id": 3879, + "name": "ownerOnly", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21265, + "src": "6158:9:6", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "6158:9:6" + } + ], + "name": "addConverter", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3878, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3877, + "name": "_converter", + "nodeType": "VariableDeclaration", + "scope": 3894, + "src": "6128:21:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + }, + "typeName": { + "contractScope": null, + "id": 3876, + "name": "IConverter", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11817, + "src": "6128:10:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6127:23:6" + }, + "payable": false, + "returnParameters": { + "id": 3881, + "nodeType": "ParameterList", + "parameters": [], + "src": "6168:0:6" + }, + "scope": 4965, + "src": "6106:168:6", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 3916, + "nodeType": "Block", + "src": "6581:129:6", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 3908, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3903, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3900, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22338, + "src": "6593:3:6", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3901, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6593:10:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 3902, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 21241 + ], + "referencedDeclaration": 21241, + "src": "6607:5:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "6593:19:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "id": 3907, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "6616:29:6", + "subExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3905, + "name": "_converter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3896, + "src": "6634:10:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + ], + "id": 3904, + "name": "isConverterValid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4246, + "src": "6617:16:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_contract$_IConverter_$11817_$returns$_t_bool_$", + "typeString": "function (contract IConverter) view returns (bool)" + } + }, + "id": 3906, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6617:28:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "6593:52:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4552525f4143434553535f44454e494544", + "id": 3909, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6647:19:6", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_f5894269650d3e1726ed81a4f48c5b62c7dd6fa025b89d639952a7012960d666", + "typeString": "literal_string \"ERR_ACCESS_DENIED\"" + }, + "value": "ERR_ACCESS_DENIED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_f5894269650d3e1726ed81a4f48c5b62c7dd6fa025b89d639952a7012960d666", + "typeString": "literal_string \"ERR_ACCESS_DENIED\"" + } + ], + "id": 3899, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 22341, + 22342 + ], + "referencedDeclaration": 22342, + "src": "6585:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3910, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6585:82:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3911, + "nodeType": "ExpressionStatement", + "src": "6585:82:6" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3913, + "name": "_converter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3896, + "src": "6695:10:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + ], + "id": 3912, + "name": "removeConverterInternal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4662, + "src": "6671:23:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IConverter_$11817_$returns$__$", + "typeString": "function (contract IConverter)" + } + }, + "id": 3914, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6671:35:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3915, + "nodeType": "ExpressionStatement", + "src": "6671:35:6" + } + ] + }, + "documentation": "@dev removes a converter from the registry\nanyone can remove an existing converter from the registry, as long as the converter is invalid\nnote that the owner can also remove valid converters\n\t * @param _converter converter", + "id": 3917, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "removeConverter", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3897, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3896, + "name": "_converter", + "nodeType": "VariableDeclaration", + "scope": 3917, + "src": "6551:21:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + }, + "typeName": { + "contractScope": null, + "id": 3895, + "name": "IConverter", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11817, + "src": "6551:10:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6550:23:6" + }, + "payable": false, + "returnParameters": { + "id": 3898, + "nodeType": "ParameterList", + "parameters": [], + "src": "6581:0:6" + }, + "scope": 4965, + "src": "6526:184:6", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 3930, + "nodeType": "Block", + "src": "6878:94:6", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3924, + "name": "CONVERTER_REGISTRY_DATA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20773, + "src": "6922:23:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 3923, + "name": "addressOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20931, + "src": "6912:9:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$", + "typeString": "function (bytes32) view returns (address)" + } + }, + "id": 3925, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6912:34:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 3922, + "name": "IConverterRegistryData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12127, + "src": "6889:22:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IConverterRegistryData_$12127_$", + "typeString": "type(contract IConverterRegistryData)" + } + }, + "id": 3926, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6889:58:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterRegistryData_$12127", + "typeString": "contract IConverterRegistryData" + } + }, + "id": 3927, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getSmartTokenCount", + "nodeType": "MemberAccess", + "referencedDeclaration": 12023, + "src": "6889:77:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", + "typeString": "function () view external returns (uint256)" + } + }, + "id": 3928, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6889:79:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3921, + "id": 3929, + "nodeType": "Return", + "src": "6882:86:6" + } + ] + }, + "documentation": "@dev returns the number of converter anchors in the registry\n\t * @return number of anchors", + "id": 3931, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getAnchorCount", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3918, + "nodeType": "ParameterList", + "parameters": [], + "src": "6845:2:6" + }, + "payable": false, + "returnParameters": { + "id": 3921, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3920, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3931, + "src": "6869:7:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3919, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6869:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6868:9:6" + }, + "scope": 4965, + "src": "6822:150:6", + "stateMutability": "view", + "superFunction": 11878, + "visibility": "public" + }, + { + "body": { + "id": 3945, + "nodeType": "Block", + "src": "7134:90:6", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3939, + "name": "CONVERTER_REGISTRY_DATA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20773, + "src": "7178:23:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 3938, + "name": "addressOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20931, + "src": "7168:9:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$", + "typeString": "function (bytes32) view returns (address)" + } + }, + "id": 3940, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7168:34:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 3937, + "name": "IConverterRegistryData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12127, + "src": "7145:22:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IConverterRegistryData_$12127_$", + "typeString": "type(contract IConverterRegistryData)" + } + }, + "id": 3941, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7145:58:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterRegistryData_$12127", + "typeString": "contract IConverterRegistryData" + } + }, + "id": 3942, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getSmartTokens", + "nodeType": "MemberAccess", + "referencedDeclaration": 12029, + "src": "7145:73:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_array$_t_address_$dyn_memory_ptr_$", + "typeString": "function () view external returns (address[] memory)" + } + }, + "id": 3943, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7145:75:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "functionReturnParameters": 3936, + "id": 3944, + "nodeType": "Return", + "src": "7138:82:6" + } + ] + }, + "documentation": "@dev returns the list of converter anchors in the registry\n\t * @return list of anchors", + "id": 3946, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getAnchors", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3932, + "nodeType": "ParameterList", + "parameters": [], + "src": "7099:2:6" + }, + "payable": false, + "returnParameters": { + "id": 3936, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3935, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3946, + "src": "7123:9:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 3933, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7123:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 3934, + "length": null, + "nodeType": "ArrayTypeName", + "src": "7123:9:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "7122:11:6" + }, + "scope": 4965, + "src": "7080:144:6", + "stateMutability": "view", + "superFunction": 11884, + "visibility": "public" + }, + { + "body": { + "id": 3962, + "nodeType": "Block", + "src": "7423:95:6", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3959, + "name": "_index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3948, + "src": "7507:6:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3955, + "name": "CONVERTER_REGISTRY_DATA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20773, + "src": "7467:23:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 3954, + "name": "addressOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20931, + "src": "7457:9:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$", + "typeString": "function (bytes32) view returns (address)" + } + }, + "id": 3956, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7457:34:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 3953, + "name": "IConverterRegistryData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12127, + "src": "7434:22:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IConverterRegistryData_$12127_$", + "typeString": "type(contract IConverterRegistryData)" + } + }, + "id": 3957, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7434:58:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterRegistryData_$12127", + "typeString": "contract IConverterRegistryData" + } + }, + "id": 3958, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getSmartToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 12036, + "src": "7434:72:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view external returns (address)" + } + }, + "id": 3960, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7434:80:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 3952, + "id": 3961, + "nodeType": "Return", + "src": "7427:87:6" + } + ] + }, + "documentation": "@dev returns the converter anchor at a given index\n\t * @param _index index\n@return anchor at the given index", + "id": 3963, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getAnchor", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3949, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3948, + "name": "_index", + "nodeType": "VariableDeclaration", + "scope": 3963, + "src": "7377:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3947, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7377:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "7376:16:6" + }, + "payable": false, + "returnParameters": { + "id": 3952, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3951, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3963, + "src": "7414:7:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3950, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7414:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "7413:9:6" + }, + "scope": 4965, + "src": "7358:160:6", + "stateMutability": "view", + "superFunction": 11891, + "visibility": "public" + }, + { + "body": { + "id": 3979, + "nodeType": "Block", + "src": "7750:94:6", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3976, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3965, + "src": "7833:6:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3972, + "name": "CONVERTER_REGISTRY_DATA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20773, + "src": "7794:23:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 3971, + "name": "addressOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20931, + "src": "7784:9:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$", + "typeString": "function (bytes32) view returns (address)" + } + }, + "id": 3973, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7784:34:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 3970, + "name": "IConverterRegistryData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12127, + "src": "7761:22:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IConverterRegistryData_$12127_$", + "typeString": "type(contract IConverterRegistryData)" + } + }, + "id": 3974, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7761:58:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterRegistryData_$12127", + "typeString": "contract IConverterRegistryData" + } + }, + "id": 3975, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "isSmartToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 12043, + "src": "7761:71:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bool_$", + "typeString": "function (address) view external returns (bool)" + } + }, + "id": 3977, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7761:79:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 3969, + "id": 3978, + "nodeType": "Return", + "src": "7754:86:6" + } + ] + }, + "documentation": "@dev checks whether or not a given value is a converter anchor\n\t * @param _value value\n@return true if the given value is an anchor, false if not", + "id": 3980, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "isAnchor", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3966, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3965, + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 3980, + "src": "7707:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3964, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7707:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "7706:16:6" + }, + "payable": false, + "returnParameters": { + "id": 3969, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3968, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3980, + "src": "7744:4:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3967, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "7744:4:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "7743:6:6" + }, + "scope": 4965, + "src": "7689:155:6", + "stateMutability": "view", + "superFunction": 11898, + "visibility": "public" + }, + { + "body": { + "id": 3993, + "nodeType": "Block", + "src": "8025:97:6", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3987, + "name": "CONVERTER_REGISTRY_DATA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20773, + "src": "8069:23:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 3986, + "name": "addressOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20931, + "src": "8059:9:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$", + "typeString": "function (bytes32) view returns (address)" + } + }, + "id": 3988, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8059:34:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 3985, + "name": "IConverterRegistryData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12127, + "src": "8036:22:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IConverterRegistryData_$12127_$", + "typeString": "type(contract IConverterRegistryData)" + } + }, + "id": 3989, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8036:58:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterRegistryData_$12127", + "typeString": "contract IConverterRegistryData" + } + }, + "id": 3990, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getLiquidityPoolCount", + "nodeType": "MemberAccess", + "referencedDeclaration": 12048, + "src": "8036:80:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", + "typeString": "function () view external returns (uint256)" + } + }, + "id": 3991, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8036:82:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3984, + "id": 3992, + "nodeType": "Return", + "src": "8029:89:6" + } + ] + }, + "documentation": "@dev returns the number of liquidity pools in the registry\n\t * @return number of liquidity pools", + "id": 3994, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getLiquidityPoolCount", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3981, + "nodeType": "ParameterList", + "parameters": [], + "src": "7992:2:6" + }, + "payable": false, + "returnParameters": { + "id": 3984, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3983, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3994, + "src": "8016:7:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3982, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8016:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8015:9:6" + }, + "scope": 4965, + "src": "7962:160:6", + "stateMutability": "view", + "superFunction": 11903, + "visibility": "public" + }, + { + "body": { + "id": 4008, + "nodeType": "Block", + "src": "8297:93:6", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4002, + "name": "CONVERTER_REGISTRY_DATA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20773, + "src": "8341:23:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 4001, + "name": "addressOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20931, + "src": "8331:9:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$", + "typeString": "function (bytes32) view returns (address)" + } + }, + "id": 4003, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8331:34:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 4000, + "name": "IConverterRegistryData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12127, + "src": "8308:22:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IConverterRegistryData_$12127_$", + "typeString": "type(contract IConverterRegistryData)" + } + }, + "id": 4004, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8308:58:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterRegistryData_$12127", + "typeString": "contract IConverterRegistryData" + } + }, + "id": 4005, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getLiquidityPools", + "nodeType": "MemberAccess", + "referencedDeclaration": 12054, + "src": "8308:76:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_array$_t_address_$dyn_memory_ptr_$", + "typeString": "function () view external returns (address[] memory)" + } + }, + "id": 4006, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8308:78:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "functionReturnParameters": 3999, + "id": 4007, + "nodeType": "Return", + "src": "8301:85:6" + } + ] + }, + "documentation": "@dev returns the list of liquidity pools in the registry\n\t * @return list of liquidity pools", + "id": 4009, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getLiquidityPools", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3995, + "nodeType": "ParameterList", + "parameters": [], + "src": "8262:2:6" + }, + "payable": false, + "returnParameters": { + "id": 3999, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3998, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 4009, + "src": "8286:9:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 3996, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8286:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 3997, + "length": null, + "nodeType": "ArrayTypeName", + "src": "8286:9:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8285:11:6" + }, + "scope": 4965, + "src": "8236:154:6", + "stateMutability": "view", + "superFunction": 11909, + "visibility": "public" + }, + { + "body": { + "id": 4025, + "nodeType": "Block", + "src": "8602:98:6", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4022, + "name": "_index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4011, + "src": "8689:6:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4018, + "name": "CONVERTER_REGISTRY_DATA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20773, + "src": "8646:23:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 4017, + "name": "addressOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20931, + "src": "8636:9:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$", + "typeString": "function (bytes32) view returns (address)" + } + }, + "id": 4019, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8636:34:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 4016, + "name": "IConverterRegistryData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12127, + "src": "8613:22:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IConverterRegistryData_$12127_$", + "typeString": "type(contract IConverterRegistryData)" + } + }, + "id": 4020, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8613:58:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterRegistryData_$12127", + "typeString": "contract IConverterRegistryData" + } + }, + "id": 4021, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getLiquidityPool", + "nodeType": "MemberAccess", + "referencedDeclaration": 12061, + "src": "8613:75:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view external returns (address)" + } + }, + "id": 4023, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8613:83:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 4015, + "id": 4024, + "nodeType": "Return", + "src": "8606:90:6" + } + ] + }, + "documentation": "@dev returns the liquidity pool at a given index\n\t * @param _index index\n@return liquidity pool at the given index", + "id": 4026, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getLiquidityPool", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4012, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4011, + "name": "_index", + "nodeType": "VariableDeclaration", + "scope": 4026, + "src": "8556:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4010, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8556:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8555:16:6" + }, + "payable": false, + "returnParameters": { + "id": 4015, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4014, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 4026, + "src": "8593:7:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4013, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8593:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8592:9:6" + }, + "scope": 4965, + "src": "8530:170:6", + "stateMutability": "view", + "superFunction": 11916, + "visibility": "public" + }, + { + "body": { + "id": 4042, + "nodeType": "Block", + "src": "8944:97:6", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4039, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4028, + "src": "9030:6:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4035, + "name": "CONVERTER_REGISTRY_DATA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20773, + "src": "8988:23:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 4034, + "name": "addressOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20931, + "src": "8978:9:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$", + "typeString": "function (bytes32) view returns (address)" + } + }, + "id": 4036, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8978:34:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 4033, + "name": "IConverterRegistryData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12127, + "src": "8955:22:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IConverterRegistryData_$12127_$", + "typeString": "type(contract IConverterRegistryData)" + } + }, + "id": 4037, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8955:58:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterRegistryData_$12127", + "typeString": "contract IConverterRegistryData" + } + }, + "id": 4038, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "isLiquidityPool", + "nodeType": "MemberAccess", + "referencedDeclaration": 12068, + "src": "8955:74:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bool_$", + "typeString": "function (address) view external returns (bool)" + } + }, + "id": 4040, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8955:82:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 4032, + "id": 4041, + "nodeType": "Return", + "src": "8948:89:6" + } + ] + }, + "documentation": "@dev checks whether or not a given value is a liquidity pool\n\t * @param _value value\n@return true if the given value is a liquidity pool, false if not", + "id": 4043, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "isLiquidityPool", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4029, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4028, + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 4043, + "src": "8901:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4027, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8901:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8900:16:6" + }, + "payable": false, + "returnParameters": { + "id": 4032, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4031, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 4043, + "src": "8938:4:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4030, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "8938:4:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8937:6:6" + }, + "scope": 4965, + "src": "8876:165:6", + "stateMutability": "view", + "superFunction": 11923, + "visibility": "public" + }, + { + "body": { + "id": 4056, + "nodeType": "Block", + "src": "9231:100:6", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4050, + "name": "CONVERTER_REGISTRY_DATA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20773, + "src": "9275:23:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 4049, + "name": "addressOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20931, + "src": "9265:9:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$", + "typeString": "function (bytes32) view returns (address)" + } + }, + "id": 4051, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9265:34:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 4048, + "name": "IConverterRegistryData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12127, + "src": "9242:22:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IConverterRegistryData_$12127_$", + "typeString": "type(contract IConverterRegistryData)" + } + }, + "id": 4052, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9242:58:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterRegistryData_$12127", + "typeString": "contract IConverterRegistryData" + } + }, + "id": 4053, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getConvertibleTokenCount", + "nodeType": "MemberAccess", + "referencedDeclaration": 12073, + "src": "9242:83:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", + "typeString": "function () view external returns (uint256)" + } + }, + "id": 4054, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9242:85:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 4047, + "id": 4055, + "nodeType": "Return", + "src": "9235:92:6" + } + ] + }, + "documentation": "@dev returns the number of convertible tokens in the registry\n\t * @return number of convertible tokens", + "id": 4057, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getConvertibleTokenCount", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4044, + "nodeType": "ParameterList", + "parameters": [], + "src": "9198:2:6" + }, + "payable": false, + "returnParameters": { + "id": 4047, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4046, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 4057, + "src": "9222:7:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4045, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9222:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9221:9:6" + }, + "scope": 4965, + "src": "9165:166:6", + "stateMutability": "view", + "superFunction": 11928, + "visibility": "public" + }, + { + "body": { + "id": 4071, + "nodeType": "Block", + "src": "9515:96:6", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4065, + "name": "CONVERTER_REGISTRY_DATA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20773, + "src": "9559:23:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 4064, + "name": "addressOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20931, + "src": "9549:9:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$", + "typeString": "function (bytes32) view returns (address)" + } + }, + "id": 4066, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9549:34:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 4063, + "name": "IConverterRegistryData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12127, + "src": "9526:22:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IConverterRegistryData_$12127_$", + "typeString": "type(contract IConverterRegistryData)" + } + }, + "id": 4067, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9526:58:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterRegistryData_$12127", + "typeString": "contract IConverterRegistryData" + } + }, + "id": 4068, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getConvertibleTokens", + "nodeType": "MemberAccess", + "referencedDeclaration": 12079, + "src": "9526:79:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_array$_t_address_$dyn_memory_ptr_$", + "typeString": "function () view external returns (address[] memory)" + } + }, + "id": 4069, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9526:81:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "functionReturnParameters": 4062, + "id": 4070, + "nodeType": "Return", + "src": "9519:88:6" + } + ] + }, + "documentation": "@dev returns the list of convertible tokens in the registry\n\t * @return list of convertible tokens", + "id": 4072, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getConvertibleTokens", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4058, + "nodeType": "ParameterList", + "parameters": [], + "src": "9480:2:6" + }, + "payable": false, + "returnParameters": { + "id": 4062, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4061, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 4072, + "src": "9504:9:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 4059, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9504:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 4060, + "length": null, + "nodeType": "ArrayTypeName", + "src": "9504:9:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9503:11:6" + }, + "scope": 4965, + "src": "9451:160:6", + "stateMutability": "view", + "superFunction": 11934, + "visibility": "public" + }, + { + "body": { + "id": 4088, + "nodeType": "Block", + "src": "9832:101:6", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4085, + "name": "_index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4074, + "src": "9922:6:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4081, + "name": "CONVERTER_REGISTRY_DATA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20773, + "src": "9876:23:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 4080, + "name": "addressOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20931, + "src": "9866:9:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$", + "typeString": "function (bytes32) view returns (address)" + } + }, + "id": 4082, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9866:34:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 4079, + "name": "IConverterRegistryData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12127, + "src": "9843:22:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IConverterRegistryData_$12127_$", + "typeString": "type(contract IConverterRegistryData)" + } + }, + "id": 4083, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9843:58:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterRegistryData_$12127", + "typeString": "contract IConverterRegistryData" + } + }, + "id": 4084, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getConvertibleToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 12086, + "src": "9843:78:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view external returns (address)" + } + }, + "id": 4086, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9843:86:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 4078, + "id": 4087, + "nodeType": "Return", + "src": "9836:93:6" + } + ] + }, + "documentation": "@dev returns the convertible token at a given index\n\t * @param _index index\n@return convertible token at the given index", + "id": 4089, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getConvertibleToken", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4075, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4074, + "name": "_index", + "nodeType": "VariableDeclaration", + "scope": 4089, + "src": "9786:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4073, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9786:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9785:16:6" + }, + "payable": false, + "returnParameters": { + "id": 4078, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4077, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 4089, + "src": "9823:7:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4076, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9823:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9822:9:6" + }, + "scope": 4965, + "src": "9757:176:6", + "stateMutability": "view", + "superFunction": 11941, + "visibility": "public" + }, + { + "body": { + "id": 4105, + "nodeType": "Block", + "src": "10186:100:6", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4102, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4091, + "src": "10275:6:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4098, + "name": "CONVERTER_REGISTRY_DATA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20773, + "src": "10230:23:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 4097, + "name": "addressOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20931, + "src": "10220:9:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$", + "typeString": "function (bytes32) view returns (address)" + } + }, + "id": 4099, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10220:34:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 4096, + "name": "IConverterRegistryData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12127, + "src": "10197:22:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IConverterRegistryData_$12127_$", + "typeString": "type(contract IConverterRegistryData)" + } + }, + "id": 4100, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10197:58:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterRegistryData_$12127", + "typeString": "contract IConverterRegistryData" + } + }, + "id": 4101, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "isConvertibleToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 12093, + "src": "10197:77:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bool_$", + "typeString": "function (address) view external returns (bool)" + } + }, + "id": 4103, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10197:85:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 4095, + "id": 4104, + "nodeType": "Return", + "src": "10190:92:6" + } + ] + }, + "documentation": "@dev checks whether or not a given value is a convertible token\n\t * @param _value value\n@return true if the given value is a convertible token, false if not", + "id": 4106, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "isConvertibleToken", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4092, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4091, + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 4106, + "src": "10143:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4090, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10143:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10142:16:6" + }, + "payable": false, + "returnParameters": { + "id": 4095, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4094, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 4106, + "src": "10180:4:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4093, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "10180:4:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10179:6:6" + }, + "scope": 4965, + "src": "10115:171:6", + "stateMutability": "view", + "superFunction": 11948, + "visibility": "public" + }, + { + "body": { + "id": 4122, + "nodeType": "Block", + "src": "10612:127:6", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4119, + "name": "_convertibleToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4108, + "src": "10717:17:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4115, + "name": "CONVERTER_REGISTRY_DATA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20773, + "src": "10656:23:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 4114, + "name": "addressOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20931, + "src": "10646:9:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$", + "typeString": "function (bytes32) view returns (address)" + } + }, + "id": 4116, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10646:34:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 4113, + "name": "IConverterRegistryData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12127, + "src": "10623:22:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IConverterRegistryData_$12127_$", + "typeString": "type(contract IConverterRegistryData)" + } + }, + "id": 4117, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10623:58:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterRegistryData_$12127", + "typeString": "contract IConverterRegistryData" + } + }, + "id": 4118, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getConvertibleTokenSmartTokenCount", + "nodeType": "MemberAccess", + "referencedDeclaration": 12100, + "src": "10623:93:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 4120, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10623:112:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 4112, + "id": 4121, + "nodeType": "Return", + "src": "10616:119:6" + } + ] + }, + "documentation": "@dev returns the number of converter anchors associated with a given convertible token\n\t * @param _convertibleToken convertible token\n@return number of anchors associated with the given convertible token", + "id": 4123, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getConvertibleTokenAnchorCount", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4109, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4108, + "name": "_convertibleToken", + "nodeType": "VariableDeclaration", + "scope": 4123, + "src": "10555:25:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4107, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10555:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10554:27:6" + }, + "payable": false, + "returnParameters": { + "id": 4112, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4111, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 4123, + "src": "10603:7:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4110, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10603:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10602:9:6" + }, + "scope": 4965, + "src": "10515:224:6", + "stateMutability": "view", + "superFunction": 11955, + "visibility": "public" + }, + { + "body": { + "id": 4140, + "nodeType": "Block", + "src": "11059:123:6", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4137, + "name": "_convertibleToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4125, + "src": "11160:17:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4133, + "name": "CONVERTER_REGISTRY_DATA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20773, + "src": "11103:23:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 4132, + "name": "addressOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20931, + "src": "11093:9:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$", + "typeString": "function (bytes32) view returns (address)" + } + }, + "id": 4134, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11093:34:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 4131, + "name": "IConverterRegistryData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12127, + "src": "11070:22:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IConverterRegistryData_$12127_$", + "typeString": "type(contract IConverterRegistryData)" + } + }, + "id": 4135, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11070:58:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterRegistryData_$12127", + "typeString": "contract IConverterRegistryData" + } + }, + "id": 4136, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getConvertibleTokenSmartTokens", + "nodeType": "MemberAccess", + "referencedDeclaration": 12108, + "src": "11070:89:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_array$_t_address_$dyn_memory_ptr_$", + "typeString": "function (address) view external returns (address[] memory)" + } + }, + "id": 4138, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11070:108:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "functionReturnParameters": 4130, + "id": 4139, + "nodeType": "Return", + "src": "11063:115:6" + } + ] + }, + "documentation": "@dev returns the list of converter anchors associated with a given convertible token\n\t * @param _convertibleToken convertible token\n@return list of anchors associated with the given convertible token", + "id": 4141, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getConvertibleTokenAnchors", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4126, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4125, + "name": "_convertibleToken", + "nodeType": "VariableDeclaration", + "scope": 4141, + "src": "11000:25:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4124, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11000:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10999:27:6" + }, + "payable": false, + "returnParameters": { + "id": 4130, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4129, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 4141, + "src": "11048:9:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 4127, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11048:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 4128, + "length": null, + "nodeType": "ArrayTypeName", + "src": "11048:9:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "11047:11:6" + }, + "scope": 4965, + "src": "10964:218:6", + "stateMutability": "view", + "superFunction": 11963, + "visibility": "public" + }, + { + "body": { + "id": 4160, + "nodeType": "Block", + "src": "11557:130:6", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4156, + "name": "_convertibleToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4143, + "src": "11657:17:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 4157, + "name": "_index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4145, + "src": "11676:6:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4152, + "name": "CONVERTER_REGISTRY_DATA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20773, + "src": "11601:23:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 4151, + "name": "addressOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20931, + "src": "11591:9:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$", + "typeString": "function (bytes32) view returns (address)" + } + }, + "id": 4153, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11591:34:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 4150, + "name": "IConverterRegistryData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12127, + "src": "11568:22:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IConverterRegistryData_$12127_$", + "typeString": "type(contract IConverterRegistryData)" + } + }, + "id": 4154, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11568:58:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterRegistryData_$12127", + "typeString": "contract IConverterRegistryData" + } + }, + "id": 4155, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getConvertibleTokenSmartToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 12117, + "src": "11568:88:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$_t_uint256_$returns$_t_address_$", + "typeString": "function (address,uint256) view external returns (address)" + } + }, + "id": 4158, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11568:115:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 4149, + "id": 4159, + "nodeType": "Return", + "src": "11561:122:6" + } + ] + }, + "documentation": "@dev returns the converter anchor associated with a given convertible token at a given index\n\t * @param _convertibleToken convertible token\n@param _index index\n@return anchor associated with the given convertible token at the given index", + "id": 4161, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getConvertibleTokenAnchor", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4146, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4143, + "name": "_convertibleToken", + "nodeType": "VariableDeclaration", + "scope": 4161, + "src": "11484:25:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4142, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11484:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4145, + "name": "_index", + "nodeType": "VariableDeclaration", + "scope": 4161, + "src": "11511:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4144, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11511:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "11483:43:6" + }, + "payable": false, + "returnParameters": { + "id": 4149, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4148, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 4161, + "src": "11548:7:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4147, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11548:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "11547:9:6" + }, + "scope": 4965, + "src": "11449:238:6", + "stateMutability": "view", + "superFunction": 11972, + "visibility": "public" + }, + { + "body": { + "id": 4180, + "nodeType": "Block", + "src": "12069:129:6", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4176, + "name": "_convertibleToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4163, + "src": "12168:17:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 4177, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4165, + "src": "12187:6:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4172, + "name": "CONVERTER_REGISTRY_DATA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20773, + "src": "12113:23:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 4171, + "name": "addressOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20931, + "src": "12103:9:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$", + "typeString": "function (bytes32) view returns (address)" + } + }, + "id": 4173, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12103:34:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 4170, + "name": "IConverterRegistryData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12127, + "src": "12080:22:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IConverterRegistryData_$12127_$", + "typeString": "type(contract IConverterRegistryData)" + } + }, + "id": 4174, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12080:58:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterRegistryData_$12127", + "typeString": "contract IConverterRegistryData" + } + }, + "id": 4175, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "isConvertibleTokenSmartToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 12126, + "src": "12080:87:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_bool_$", + "typeString": "function (address,address) view external returns (bool)" + } + }, + "id": 4178, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12080:114:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 4169, + "id": 4179, + "nodeType": "Return", + "src": "12073:121:6" + } + ] + }, + "documentation": "@dev checks whether or not a given value is a converter anchor of a given convertible token\n\t * @param _convertibleToken convertible token\n@param _value value\n@return true if the given value is an anchor of the given convertible token, false if not", + "id": 4181, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "isConvertibleTokenAnchor", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4166, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4163, + "name": "_convertibleToken", + "nodeType": "VariableDeclaration", + "scope": 4181, + "src": "11999:25:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4162, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11999:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4165, + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 4181, + "src": "12026:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4164, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12026:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "11998:43:6" + }, + "payable": false, + "returnParameters": { + "id": 4169, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4168, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 4181, + "src": "12063:4:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4167, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "12063:4:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "12062:6:6" + }, + "scope": 4965, + "src": "11965:233:6", + "stateMutability": "view", + "superFunction": 11981, + "visibility": "public" + }, + { + "body": { + "id": 4227, + "nodeType": "Block", + "src": "12536:194:6", + "statements": [ + { + "assignments": [ + 4193 + ], + "declarations": [ + { + "constant": false, + "id": 4193, + "name": "converters", + "nodeType": "VariableDeclaration", + "scope": 4228, + "src": "12540:27:6", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 4191, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12540:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 4192, + "length": null, + "nodeType": "ArrayTypeName", + "src": "12540:9:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 4200, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4197, + "name": "_anchors", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4184, + "src": "12584:8:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 4198, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "12584:15:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 4196, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "12570:13:6", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_$", + "typeString": "function (uint256) pure returns (address[] memory)" + }, + "typeName": { + "baseType": { + "id": 4194, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12574:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 4195, + "length": null, + "nodeType": "ArrayTypeName", + "src": "12574:9:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + } + }, + "id": 4199, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12570:30:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory", + "typeString": "address[] memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "12540:60:6" + }, + { + "body": { + "expression": { + "argumentTypes": null, + "id": 4222, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4212, + "name": "converters", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4193, + "src": "12651:10:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 4214, + "indexExpression": { + "argumentTypes": null, + "id": 4213, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4202, + "src": "12662:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "12651:13:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4216, + "name": "_anchors", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4184, + "src": "12684:8:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 4218, + "indexExpression": { + "argumentTypes": null, + "id": 4217, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4202, + "src": "12693:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "12684:11:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 4215, + "name": "IConverterAnchor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11826, + "src": "12667:16:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IConverterAnchor_$11826_$", + "typeString": "type(contract IConverterAnchor)" + } + }, + "id": 4219, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12667:29:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + }, + "id": 4220, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "owner", + "nodeType": "MemberAccess", + "referencedDeclaration": 22238, + "src": "12667:35:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", + "typeString": "function () view external returns (address)" + } + }, + "id": 4221, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12667:37:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "12651:53:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 4223, + "nodeType": "ExpressionStatement", + "src": "12651:53:6" + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4208, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4205, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4202, + "src": "12625:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4206, + "name": "_anchors", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4184, + "src": "12629:8:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 4207, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "12629:15:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12625:19:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 4224, + "initializationExpression": { + "assignments": [ + 4202 + ], + "declarations": [ + { + "constant": false, + "id": 4202, + "name": "i", + "nodeType": "VariableDeclaration", + "scope": 4228, + "src": "12610:9:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4201, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12610:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 4204, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 4203, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12622:1:6", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "12610:13:6" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 4210, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "12646:3:6", + "subExpression": { + "argumentTypes": null, + "id": 4209, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4202, + "src": "12646:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4211, + "nodeType": "ExpressionStatement", + "src": "12646:3:6" + }, + "nodeType": "ForStatement", + "src": "12605:99:6" + }, + { + "expression": { + "argumentTypes": null, + "id": 4225, + "name": "converters", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4193, + "src": "12716:10:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "functionReturnParameters": 4189, + "id": 4226, + "nodeType": "Return", + "src": "12709:17:6" + } + ] + }, + "documentation": "@dev returns a list of converters for a given list of anchors\nthis is a utility function that can be used to reduce the number of calls to the contract\n\t * @param _anchors list of converter anchors\n@return list of converters", + "id": 4228, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getConvertersByAnchors", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4185, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4184, + "name": "_anchors", + "nodeType": "VariableDeclaration", + "scope": 4228, + "src": "12484:18:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 4182, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12484:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 4183, + "length": null, + "nodeType": "ArrayTypeName", + "src": "12484:9:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "12483:20:6" + }, + "payable": false, + "returnParameters": { + "id": 4189, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4188, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 4228, + "src": "12525:9:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 4186, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12525:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 4187, + "length": null, + "nodeType": "ArrayTypeName", + "src": "12525:9:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "12524:11:6" + }, + "scope": 4965, + "src": "12452:278:6", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 4245, + "nodeType": "Block", + "src": "12976:105:6", + "statements": [ + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 4243, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 4235, + "name": "_converter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4230, + "src": "13028:10:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + "id": 4236, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "token", + "nodeType": "MemberAccess", + "referencedDeclaration": 11774, + "src": "13028:16:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_IConverterAnchor_$11826_$", + "typeString": "function () view external returns (contract IConverterAnchor)" + } + }, + "id": 4237, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13028:18:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + }, + "id": 4238, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "owner", + "nodeType": "MemberAccess", + "referencedDeclaration": 22238, + "src": "13028:24:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", + "typeString": "function () view external returns (address)" + } + }, + "id": 4239, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13028:26:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4241, + "name": "_converter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4230, + "src": "13066:10:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + ], + "id": 4240, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "13058:7:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 4242, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13058:19:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "13028:49:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 4234, + "id": 4244, + "nodeType": "Return", + "src": "13021:56:6" + } + ] + }, + "documentation": "@dev checks whether or not a given converter is valid\n\t * @param _converter converter\n@return true if the given converter is valid, false if not", + "id": 4246, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "isConverterValid", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4231, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4230, + "name": "_converter", + "nodeType": "VariableDeclaration", + "scope": 4246, + "src": "12926:21:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + }, + "typeName": { + "contractScope": null, + "id": 4229, + "name": "IConverter", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11817, + "src": "12926:10:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "12925:23:6" + }, + "payable": false, + "returnParameters": { + "id": 4234, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4233, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 4246, + "src": "12970:4:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4232, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "12970:4:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "12969:6:6" + }, + "scope": 4965, + "src": "12900:181:6", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 4325, + "nodeType": "Block", + "src": "13415:686:6", + "statements": [ + { + "assignments": [ + 4254 + ], + "declarations": [ + { + "constant": false, + "id": 4254, + "name": "reserveTokenCount", + "nodeType": "VariableDeclaration", + "scope": 4326, + "src": "13419:25:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4253, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13419:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 4258, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 4255, + "name": "_converter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4248, + "src": "13447:10:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + "id": 4256, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "connectorTokenCount", + "nodeType": "MemberAccess", + "referencedDeclaration": 11816, + "src": "13447:30:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint16_$", + "typeString": "function () view external returns (uint16)" + } + }, + "id": 4257, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13447:32:6", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "13419:60:6" + }, + { + "assignments": [ + 4262 + ], + "declarations": [ + { + "constant": false, + "id": 4262, + "name": "reserveTokens", + "nodeType": "VariableDeclaration", + "scope": 4326, + "src": "13483:34:6", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", + "typeString": "contract IERC20Token[]" + }, + "typeName": { + "baseType": { + "contractScope": null, + "id": 4260, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "13483:11:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "id": 4261, + "length": null, + "nodeType": "ArrayTypeName", + "src": "13483:13:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_storage_ptr", + "typeString": "contract IERC20Token[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 4268, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4266, + "name": "reserveTokenCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4254, + "src": "13538:17:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 4265, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "13520:17:6", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_$", + "typeString": "function (uint256) pure returns (contract IERC20Token[] memory)" + }, + "typeName": { + "baseType": { + "contractScope": null, + "id": 4263, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "13524:11:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "id": 4264, + "length": null, + "nodeType": "ArrayTypeName", + "src": "13524:13:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_storage_ptr", + "typeString": "contract IERC20Token[]" + } + } + }, + "id": 4267, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13520:36:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory", + "typeString": "contract IERC20Token[] memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "13483:73:6" + }, + { + "assignments": [ + 4272 + ], + "declarations": [ + { + "constant": false, + "id": 4272, + "name": "reserveWeights", + "nodeType": "VariableDeclaration", + "scope": 4326, + "src": "13560:30:6", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint32_$dyn_memory_ptr", + "typeString": "uint32[]" + }, + "typeName": { + "baseType": { + "id": 4270, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "13560:6:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "id": 4271, + "length": null, + "nodeType": "ArrayTypeName", + "src": "13560:8:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint32_$dyn_storage_ptr", + "typeString": "uint32[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 4278, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4276, + "name": "reserveTokenCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4254, + "src": "13606:17:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 4275, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "13593:12:6", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint32_$dyn_memory_$", + "typeString": "function (uint256) pure returns (uint32[] memory)" + }, + "typeName": { + "baseType": { + "id": 4273, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "13597:6:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "id": 4274, + "length": null, + "nodeType": "ArrayTypeName", + "src": "13597:8:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint32_$dyn_storage_ptr", + "typeString": "uint32[]" + } + } + }, + "id": 4277, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13593:31:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint32_$dyn_memory", + "typeString": "uint32[] memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "13560:64:6" + }, + { + "body": { + "id": 4311, + "nodeType": "Block", + "src": "13729:169:6", + "statements": [ + { + "assignments": [ + 4290 + ], + "declarations": [ + { + "constant": false, + "id": 4290, + "name": "reserveToken", + "nodeType": "VariableDeclaration", + "scope": 4326, + "src": "13734:24:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + "typeName": { + "contractScope": null, + "id": 4289, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "13734:11:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 4295, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4293, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4280, + "src": "13788:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 4291, + "name": "_converter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4248, + "src": "13761:10:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + "id": 4292, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "connectorTokens", + "nodeType": "MemberAccess", + "referencedDeclaration": 11811, + "src": "13761:26:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_contract$_IERC20Token_$20240_$", + "typeString": "function (uint256) view external returns (contract IERC20Token)" + } + }, + "id": 4294, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13761:29:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "13734:56:6" + }, + { + "expression": { + "argumentTypes": null, + "id": 4300, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4296, + "name": "reserveTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4262, + "src": "13795:13:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", + "typeString": "contract IERC20Token[] memory" + } + }, + "id": 4298, + "indexExpression": { + "argumentTypes": null, + "id": 4297, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4280, + "src": "13809:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "13795:16:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 4299, + "name": "reserveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4290, + "src": "13814:12:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "src": "13795:31:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "id": 4301, + "nodeType": "ExpressionStatement", + "src": "13795:31:6" + }, + { + "expression": { + "argumentTypes": null, + "id": 4309, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4302, + "name": "reserveWeights", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4272, + "src": "13831:14:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint32_$dyn_memory_ptr", + "typeString": "uint32[] memory" + } + }, + "id": 4304, + "indexExpression": { + "argumentTypes": null, + "id": 4303, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4280, + "src": "13846:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "13831:17:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4306, + "name": "_converter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4248, + "src": "13868:10:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + { + "argumentTypes": null, + "id": 4307, + "name": "reserveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4290, + "src": "13880:12:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + }, + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + ], + "id": 4305, + "name": "getReserveWeight", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4834, + "src": "13851:16:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_uint32_$", + "typeString": "function (address,address) view returns (uint32)" + } + }, + "id": 4308, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13851:42:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "13831:62:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "id": 4310, + "nodeType": "ExpressionStatement", + "src": "13831:62:6" + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4285, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4283, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4280, + "src": "13701:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 4284, + "name": "reserveTokenCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4254, + "src": "13705:17:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13701:21:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 4312, + "initializationExpression": { + "assignments": [ + 4280 + ], + "declarations": [ + { + "constant": false, + "id": 4280, + "name": "i", + "nodeType": "VariableDeclaration", + "scope": 4326, + "src": "13686:9:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4279, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13686:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 4282, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 4281, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13698:1:6", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "13686:13:6" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 4287, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "13724:3:6", + "subExpression": { + "argumentTypes": null, + "id": 4286, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4280, + "src": "13724:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4288, + "nodeType": "ExpressionStatement", + "src": "13724:3:6" + }, + "nodeType": "ForStatement", + "src": "13681:217:6" + }, + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + }, + "id": 4323, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 4314, + "name": "_converter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4248, + "src": "14016:10:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + "id": 4315, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "converterType", + "nodeType": "MemberAccess", + "referencedDeclaration": 11655, + "src": "14016:24:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_pure$__$returns$_t_uint16_$", + "typeString": "function () pure external returns (uint16)" + } + }, + "id": 4316, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14016:26:6", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + { + "argumentTypes": null, + "id": 4317, + "name": "reserveTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4262, + "src": "14044:13:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", + "typeString": "contract IERC20Token[] memory" + } + }, + { + "argumentTypes": null, + "id": 4318, + "name": "reserveWeights", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4272, + "src": "14059:14:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint32_$dyn_memory_ptr", + "typeString": "uint32[] memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", + "typeString": "contract IERC20Token[] memory" + }, + { + "typeIdentifier": "t_array$_t_uint32_$dyn_memory_ptr", + "typeString": "uint32[] memory" + } + ], + "id": 4313, + "name": "getLiquidityPoolByConfig", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4402, + "src": "13991:24:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint16_$_t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr_$_t_array$_t_uint32_$dyn_memory_ptr_$returns$_t_contract$_IConverterAnchor_$11826_$", + "typeString": "function (uint16,contract IERC20Token[] memory,uint32[] memory) view returns (contract IConverterAnchor)" + } + }, + "id": 4319, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13991:83:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 4321, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14095:1:6", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 4320, + "name": "IConverterAnchor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11826, + "src": "14078:16:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IConverterAnchor_$11826_$", + "typeString": "type(contract IConverterAnchor)" + } + }, + "id": 4322, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14078:19:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + }, + "src": "13991:106:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 4252, + "id": 4324, + "nodeType": "Return", + "src": "13984:113:6" + } + ] + }, + "documentation": "@dev checks if a liquidity pool with given configuration is already registered\n\t * @param _converter converter with specific configuration\n@return if a liquidity pool with the same configuration is already registered", + "id": 4326, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "isSimilarLiquidityPoolRegistered", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4249, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4248, + "name": "_converter", + "nodeType": "VariableDeclaration", + "scope": 4326, + "src": "13365:21:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + }, + "typeName": { + "contractScope": null, + "id": 4247, + "name": "IConverter", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11817, + "src": "13365:10:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "13364:23:6" + }, + "payable": false, + "returnParameters": { + "id": 4252, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4251, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 4326, + "src": "13409:4:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4250, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "13409:4:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "13408:6:6" + }, + "scope": 4965, + "src": "13323:778:6", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 4401, + "nodeType": "Block", + "src": "14591:717:6", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 4348, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4343, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4339, + "name": "_reserveTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4331, + "src": "14670:14:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", + "typeString": "contract IERC20Token[] memory" + } + }, + "id": 4340, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "14670:21:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4341, + "name": "_reserveWeights", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4334, + "src": "14695:15:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint32_$dyn_memory_ptr", + "typeString": "uint32[] memory" + } + }, + "id": 4342, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "14695:22:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "14670:47:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4347, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4344, + "name": "_reserveTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4331, + "src": "14721:14:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", + "typeString": "contract IERC20Token[] memory" + } + }, + "id": 4345, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "14721:21:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 4346, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14745:1:6", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "14721:25:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "14670:76:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 4396, + "nodeType": "IfStatement", + "src": "14666:608:6", + "trueBody": { + "id": 4395, + "nodeType": "Block", + "src": "14748:526:6", + "statements": [ + { + "assignments": [ + 4352 + ], + "declarations": [ + { + "constant": false, + "id": 4352, + "name": "convertibleTokenAnchors", + "nodeType": "VariableDeclaration", + "scope": 4402, + "src": "14818:40:6", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 4350, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "14818:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 4351, + "length": null, + "nodeType": "ArrayTypeName", + "src": "14818:9:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 4356, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4354, + "name": "_reserveTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4331, + "src": "14890:14:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", + "typeString": "contract IERC20Token[] memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", + "typeString": "contract IERC20Token[] memory" + } + ], + "id": 4353, + "name": "getLeastFrequentTokenAnchors", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4735, + "src": "14861:28:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr_$returns$_t_array$_t_address_$dyn_memory_ptr_$", + "typeString": "function (contract IERC20Token[] memory) view returns (address[] memory)" + } + }, + "id": 4355, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14861:44:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "14818:87:6" + }, + { + "body": { + "id": 4393, + "nodeType": "Block", + "src": "15028:242:6", + "statements": [ + { + "assignments": [ + 4369 + ], + "declarations": [ + { + "constant": false, + "id": 4369, + "name": "anchor", + "nodeType": "VariableDeclaration", + "scope": 4402, + "src": "15034:23:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + }, + "typeName": { + "contractScope": null, + "id": 4368, + "name": "IConverterAnchor", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11826, + "src": "15034:16:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 4375, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4371, + "name": "convertibleTokenAnchors", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4352, + "src": "15077:23:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 4373, + "indexExpression": { + "argumentTypes": null, + "id": 4372, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4358, + "src": "15101:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "15077:26:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 4370, + "name": "IConverterAnchor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11826, + "src": "15060:16:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IConverterAnchor_$11826_$", + "typeString": "type(contract IConverterAnchor)" + } + }, + "id": 4374, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15060:44:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15034:70:6" + }, + { + "assignments": [ + 4377 + ], + "declarations": [ + { + "constant": false, + "id": 4377, + "name": "converter", + "nodeType": "VariableDeclaration", + "scope": 4402, + "src": "15110:20:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + }, + "typeName": { + "contractScope": null, + "id": 4376, + "name": "IConverter", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11817, + "src": "15110:10:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 4383, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 4379, + "name": "anchor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4369, + "src": "15144:6:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + }, + "id": 4380, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "owner", + "nodeType": "MemberAccess", + "referencedDeclaration": 22238, + "src": "15144:12:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", + "typeString": "function () view external returns (address)" + } + }, + "id": 4381, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15144:14:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 4378, + "name": "IConverter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11817, + "src": "15133:10:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IConverter_$11817_$", + "typeString": "type(contract IConverter)" + } + }, + "id": 4382, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15133:26:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15110:49:6" + }, + { + "condition": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4385, + "name": "converter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4377, + "src": "15199:9:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + { + "argumentTypes": null, + "id": 4386, + "name": "_type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4328, + "src": "15210:5:6", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + { + "argumentTypes": null, + "id": 4387, + "name": "_reserveTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4331, + "src": "15217:14:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", + "typeString": "contract IERC20Token[] memory" + } + }, + { + "argumentTypes": null, + "id": 4388, + "name": "_reserveWeights", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4334, + "src": "15233:15:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint32_$dyn_memory_ptr", + "typeString": "uint32[] memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + }, + { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", + "typeString": "contract IERC20Token[] memory" + }, + { + "typeIdentifier": "t_array$_t_uint32_$dyn_memory_ptr", + "typeString": "uint32[] memory" + } + ], + "id": 4384, + "name": "isConverterReserveConfigEqual", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4796, + "src": "15169:29:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_contract$_IConverter_$11817_$_t_uint16_$_t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr_$_t_array$_t_uint32_$dyn_memory_ptr_$returns$_t_bool_$", + "typeString": "function (contract IConverter,uint16,contract IERC20Token[] memory,uint32[] memory) view returns (bool)" + } + }, + "id": 4389, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15169:80:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 4392, + "nodeType": "IfStatement", + "src": "15165:99:6", + "trueBody": { + "expression": { + "argumentTypes": null, + "id": 4390, + "name": "anchor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4369, + "src": "15258:6:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + }, + "functionReturnParameters": 4338, + "id": 4391, + "nodeType": "Return", + "src": "15251:13:6" + } + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4364, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4361, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4358, + "src": "14987:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4362, + "name": "convertibleTokenAnchors", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4352, + "src": "14991:23:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 4363, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "14991:30:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "14987:34:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 4394, + "initializationExpression": { + "assignments": [ + 4358 + ], + "declarations": [ + { + "constant": false, + "id": 4358, + "name": "i", + "nodeType": "VariableDeclaration", + "scope": 4402, + "src": "14972:9:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4357, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14972:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 4360, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 4359, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14984:1:6", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "14972:13:6" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 4366, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "15023:3:6", + "subExpression": { + "argumentTypes": null, + "id": 4365, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4358, + "src": "15023:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4367, + "nodeType": "ExpressionStatement", + "src": "15023:3:6" + }, + "nodeType": "ForStatement", + "src": "14967:303:6" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 4398, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15302:1:6", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 4397, + "name": "IConverterAnchor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11826, + "src": "15285:16:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IConverterAnchor_$11826_$", + "typeString": "type(contract IConverterAnchor)" + } + }, + "id": 4399, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15285:19:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + }, + "functionReturnParameters": 4338, + "id": 4400, + "nodeType": "Return", + "src": "15278:26:6" + } + ] + }, + "documentation": "@dev searches for a liquidity pool with specific configuration\n\t * @param _type converter type, see ConverterBase contract main doc\n@param _reserveTokens reserve tokens\n@param _reserveWeights reserve weights\n@return the liquidity pool, or zero if no such liquidity pool exists", + "id": 4402, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getLiquidityPoolByConfig", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4335, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4328, + "name": "_type", + "nodeType": "VariableDeclaration", + "scope": 4402, + "src": "14462:12:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 4327, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "14462:6:6", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4331, + "name": "_reserveTokens", + "nodeType": "VariableDeclaration", + "scope": 4402, + "src": "14478:35:6", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", + "typeString": "contract IERC20Token[]" + }, + "typeName": { + "baseType": { + "contractScope": null, + "id": 4329, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "14478:11:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "id": 4330, + "length": null, + "nodeType": "ArrayTypeName", + "src": "14478:13:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_storage_ptr", + "typeString": "contract IERC20Token[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4334, + "name": "_reserveWeights", + "nodeType": "VariableDeclaration", + "scope": 4402, + "src": "14517:31:6", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint32_$dyn_memory_ptr", + "typeString": "uint32[]" + }, + "typeName": { + "baseType": { + "id": 4332, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "14517:6:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "id": 4333, + "length": null, + "nodeType": "ArrayTypeName", + "src": "14517:8:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint32_$dyn_storage_ptr", + "typeString": "uint32[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "14458:93:6" + }, + "payable": false, + "returnParameters": { + "id": 4338, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4337, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 4402, + "src": "14573:16:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + }, + "typeName": { + "contractScope": null, + "id": 4336, + "name": "IConverterAnchor", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11826, + "src": "14573:16:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "14572:18:6" + }, + "scope": 4965, + "src": "14425:883:6", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 4423, + "nodeType": "Block", + "src": "15568:124:6", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4412, + "name": "_anchor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4406, + "src": "15609:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 4409, + "name": "_converterRegistryData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4404, + "src": "15572:22:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterRegistryData_$12127", + "typeString": "contract IConverterRegistryData" + } + }, + "id": 4411, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "addSmartToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 11989, + "src": "15572:36:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$", + "typeString": "function (address) external" + } + }, + "id": 4413, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15572:45:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4414, + "nodeType": "ExpressionStatement", + "src": "15572:45:6" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4416, + "name": "_anchor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4406, + "src": "15647:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 4415, + "name": "ConverterAnchorAdded", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3631, + "src": "15626:20:6", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 4417, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15626:29:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4418, + "nodeType": "EmitStatement", + "src": "15621:34:6" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4420, + "name": "_anchor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4406, + "src": "15680:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 4419, + "name": "SmartTokenAdded", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3659, + "src": "15664:15:6", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 4421, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15664:24:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4422, + "nodeType": "EmitStatement", + "src": "15659:29:6" + } + ] + }, + "documentation": "@dev adds a converter anchor to the registry\n\t * @param _converterRegistryData Converter Registry Data Address\n@param _anchor converter anchor", + "id": 4424, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "addAnchor", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4407, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4404, + "name": "_converterRegistryData", + "nodeType": "VariableDeclaration", + "scope": 4424, + "src": "15495:45:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterRegistryData_$12127", + "typeString": "contract IConverterRegistryData" + }, + "typeName": { + "contractScope": null, + "id": 4403, + "name": "IConverterRegistryData", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 12127, + "src": "15495:22:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterRegistryData_$12127", + "typeString": "contract IConverterRegistryData" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4406, + "name": "_anchor", + "nodeType": "VariableDeclaration", + "scope": 4424, + "src": "15542:15:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4405, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15542:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "15494:64:6" + }, + "payable": false, + "returnParameters": { + "id": 4408, + "nodeType": "ParameterList", + "parameters": [], + "src": "15568:0:6" + }, + "scope": 4965, + "src": "15476:216:6", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 4445, + "nodeType": "Block", + "src": "15960:131:6", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4434, + "name": "_anchor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4428, + "src": "16004:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 4431, + "name": "_converterRegistryData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4426, + "src": "15964:22:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterRegistryData_$12127", + "typeString": "contract IConverterRegistryData" + } + }, + "id": 4433, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "removeSmartToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 11994, + "src": "15964:39:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$", + "typeString": "function (address) external" + } + }, + "id": 4435, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15964:48:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4436, + "nodeType": "ExpressionStatement", + "src": "15964:48:6" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4438, + "name": "_anchor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4428, + "src": "16044:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 4437, + "name": "ConverterAnchorRemoved", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3635, + "src": "16021:22:6", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 4439, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16021:31:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4440, + "nodeType": "EmitStatement", + "src": "16016:36:6" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4442, + "name": "_anchor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4428, + "src": "16079:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 4441, + "name": "SmartTokenRemoved", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3663, + "src": "16061:17:6", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 4443, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16061:26:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4444, + "nodeType": "EmitStatement", + "src": "16056:31:6" + } + ] + }, + "documentation": "@dev removes a converter anchor from the registry\n\t * @param _converterRegistryData Converter Registry Data Address\n@param _anchor converter anchor", + "id": 4446, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "removeAnchor", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4429, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4426, + "name": "_converterRegistryData", + "nodeType": "VariableDeclaration", + "scope": 4446, + "src": "15887:45:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterRegistryData_$12127", + "typeString": "contract IConverterRegistryData" + }, + "typeName": { + "contractScope": null, + "id": 4425, + "name": "IConverterRegistryData", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 12127, + "src": "15887:22:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterRegistryData_$12127", + "typeString": "contract IConverterRegistryData" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4428, + "name": "_anchor", + "nodeType": "VariableDeclaration", + "scope": 4446, + "src": "15934:15:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4427, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15934:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "15886:64:6" + }, + "payable": false, + "returnParameters": { + "id": 4430, + "nodeType": "ParameterList", + "parameters": [], + "src": "15960:0:6" + }, + "scope": 4965, + "src": "15865:226:6", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 4463, + "nodeType": "Block", + "src": "16368:106:6", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4456, + "name": "_liquidityPool", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4450, + "src": "16412:14:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 4453, + "name": "_converterRegistryData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4448, + "src": "16372:22:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterRegistryData_$12127", + "typeString": "contract IConverterRegistryData" + } + }, + "id": 4455, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "addLiquidityPool", + "nodeType": "MemberAccess", + "referencedDeclaration": 11999, + "src": "16372:39:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$", + "typeString": "function (address) external" + } + }, + "id": 4457, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16372:55:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4458, + "nodeType": "ExpressionStatement", + "src": "16372:55:6" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4460, + "name": "_liquidityPool", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4450, + "src": "16455:14:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 4459, + "name": "LiquidityPoolAdded", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3639, + "src": "16436:18:6", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 4461, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16436:34:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4462, + "nodeType": "EmitStatement", + "src": "16431:39:6" + } + ] + }, + "documentation": "@dev adds a liquidity pool to the registry\n\t * @param _converterRegistryData Converter Registry Data Address\n@param _liquidityPool liquidity pool", + "id": 4464, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "addLiquidityPool", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4451, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4448, + "name": "_converterRegistryData", + "nodeType": "VariableDeclaration", + "scope": 4464, + "src": "16288:45:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterRegistryData_$12127", + "typeString": "contract IConverterRegistryData" + }, + "typeName": { + "contractScope": null, + "id": 4447, + "name": "IConverterRegistryData", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 12127, + "src": "16288:22:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterRegistryData_$12127", + "typeString": "contract IConverterRegistryData" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4450, + "name": "_liquidityPool", + "nodeType": "VariableDeclaration", + "scope": 4464, + "src": "16335:22:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4449, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "16335:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "16287:71:6" + }, + "payable": false, + "returnParameters": { + "id": 4452, + "nodeType": "ParameterList", + "parameters": [], + "src": "16368:0:6" + }, + "scope": 4965, + "src": "16262:212:6", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 4481, + "nodeType": "Block", + "src": "16759:111:6", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4474, + "name": "_liquidityPool", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4468, + "src": "16806:14:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 4471, + "name": "_converterRegistryData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4466, + "src": "16763:22:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterRegistryData_$12127", + "typeString": "contract IConverterRegistryData" + } + }, + "id": 4473, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "removeLiquidityPool", + "nodeType": "MemberAccess", + "referencedDeclaration": 12004, + "src": "16763:42:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$", + "typeString": "function (address) external" + } + }, + "id": 4475, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16763:58:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4476, + "nodeType": "ExpressionStatement", + "src": "16763:58:6" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4478, + "name": "_liquidityPool", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4468, + "src": "16851:14:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 4477, + "name": "LiquidityPoolRemoved", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3643, + "src": "16830:20:6", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 4479, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16830:36:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4480, + "nodeType": "EmitStatement", + "src": "16825:41:6" + } + ] + }, + "documentation": "@dev removes a liquidity pool from the registry\n\t * @param _converterRegistryData Converter Registry Data Address\n@param _liquidityPool liquidity pool", + "id": 4482, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "removeLiquidityPool", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4469, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4466, + "name": "_converterRegistryData", + "nodeType": "VariableDeclaration", + "scope": 4482, + "src": "16679:45:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterRegistryData_$12127", + "typeString": "contract IConverterRegistryData" + }, + "typeName": { + "contractScope": null, + "id": 4465, + "name": "IConverterRegistryData", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 12127, + "src": "16679:22:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterRegistryData_$12127", + "typeString": "contract IConverterRegistryData" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4468, + "name": "_liquidityPool", + "nodeType": "VariableDeclaration", + "scope": 4482, + "src": "16726:22:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4467, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "16726:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "16678:71:6" + }, + "payable": false, + "returnParameters": { + "id": 4470, + "nodeType": "ParameterList", + "parameters": [], + "src": "16759:0:6" + }, + "scope": 4965, + "src": "16650:220:6", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 4503, + "nodeType": "Block", + "src": "17251:136:6", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4494, + "name": "_convertibleToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4486, + "src": "17298:17:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 4495, + "name": "_anchor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4488, + "src": "17317:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 4491, + "name": "_converterRegistryData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4484, + "src": "17255:22:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterRegistryData_$12127", + "typeString": "contract IConverterRegistryData" + } + }, + "id": 4493, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "addConvertibleToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 12011, + "src": "17255:42:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$returns$__$", + "typeString": "function (address,address) external" + } + }, + "id": 4496, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17255:70:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4497, + "nodeType": "ExpressionStatement", + "src": "17255:70:6" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4499, + "name": "_convertibleToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4486, + "src": "17356:17:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 4500, + "name": "_anchor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4488, + "src": "17375:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 4498, + "name": "ConvertibleTokenAdded", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3649, + "src": "17334:21:6", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", + "typeString": "function (address,address)" + } + }, + "id": 4501, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17334:49:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4502, + "nodeType": "EmitStatement", + "src": "17329:54:6" + } + ] + }, + "documentation": "@dev adds a convertible token to the registry\n\t * @param _converterRegistryData Converter Registry Data Address\n@param _convertibleToken convertible token\n@param _anchor associated converter anchor", + "id": 4504, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "addConvertibleToken", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4489, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4484, + "name": "_converterRegistryData", + "nodeType": "VariableDeclaration", + "scope": 4504, + "src": "17145:45:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterRegistryData_$12127", + "typeString": "contract IConverterRegistryData" + }, + "typeName": { + "contractScope": null, + "id": 4483, + "name": "IConverterRegistryData", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 12127, + "src": "17145:22:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterRegistryData_$12127", + "typeString": "contract IConverterRegistryData" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4486, + "name": "_convertibleToken", + "nodeType": "VariableDeclaration", + "scope": 4504, + "src": "17194:25:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4485, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17194:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4488, + "name": "_anchor", + "nodeType": "VariableDeclaration", + "scope": 4504, + "src": "17223:15:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4487, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17223:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "17141:100:6" + }, + "payable": false, + "returnParameters": { + "id": 4490, + "nodeType": "ParameterList", + "parameters": [], + "src": "17251:0:6" + }, + "scope": 4965, + "src": "17113:274:6", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 4525, + "nodeType": "Block", + "src": "17776:141:6", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4516, + "name": "_convertibleToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4508, + "src": "17826:17:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 4517, + "name": "_anchor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4510, + "src": "17845:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 4513, + "name": "_converterRegistryData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4506, + "src": "17780:22:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterRegistryData_$12127", + "typeString": "contract IConverterRegistryData" + } + }, + "id": 4515, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "removeConvertibleToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 12018, + "src": "17780:45:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$returns$__$", + "typeString": "function (address,address) external" + } + }, + "id": 4518, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17780:73:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4519, + "nodeType": "ExpressionStatement", + "src": "17780:73:6" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4521, + "name": "_convertibleToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4508, + "src": "17886:17:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 4522, + "name": "_anchor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4510, + "src": "17905:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 4520, + "name": "ConvertibleTokenRemoved", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3655, + "src": "17862:23:6", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", + "typeString": "function (address,address)" + } + }, + "id": 4523, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17862:51:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4524, + "nodeType": "EmitStatement", + "src": "17857:56:6" + } + ] + }, + "documentation": "@dev removes a convertible token from the registry\n\t * @param _converterRegistryData Converter Registry Data Address\n@param _convertibleToken convertible token\n@param _anchor associated converter anchor", + "id": 4526, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "removeConvertibleToken", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4511, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4506, + "name": "_converterRegistryData", + "nodeType": "VariableDeclaration", + "scope": 4526, + "src": "17670:45:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterRegistryData_$12127", + "typeString": "contract IConverterRegistryData" + }, + "typeName": { + "contractScope": null, + "id": 4505, + "name": "IConverterRegistryData", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 12127, + "src": "17670:22:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterRegistryData_$12127", + "typeString": "contract IConverterRegistryData" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4508, + "name": "_convertibleToken", + "nodeType": "VariableDeclaration", + "scope": 4526, + "src": "17719:25:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4507, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17719:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4510, + "name": "_anchor", + "nodeType": "VariableDeclaration", + "scope": 4526, + "src": "17748:15:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4509, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17748:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "17666:100:6" + }, + "payable": false, + "returnParameters": { + "id": 4512, + "nodeType": "ParameterList", + "parameters": [], + "src": "17776:0:6" + }, + "scope": 4965, + "src": "17635:282:6", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 4593, + "nodeType": "Block", + "src": "17981:619:6", + "statements": [ + { + "assignments": [ + 4532 + ], + "declarations": [ + { + "constant": false, + "id": 4532, + "name": "converterRegistryData", + "nodeType": "VariableDeclaration", + "scope": 4594, + "src": "17985:44:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterRegistryData_$12127", + "typeString": "contract IConverterRegistryData" + }, + "typeName": { + "contractScope": null, + "id": 4531, + "name": "IConverterRegistryData", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 12127, + "src": "17985:22:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterRegistryData_$12127", + "typeString": "contract IConverterRegistryData" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 4538, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4535, + "name": "CONVERTER_REGISTRY_DATA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20773, + "src": "18065:23:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 4534, + "name": "addressOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20931, + "src": "18055:9:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$", + "typeString": "function (bytes32) view returns (address)" + } + }, + "id": 4536, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18055:34:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 4533, + "name": "IConverterRegistryData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12127, + "src": "18032:22:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IConverterRegistryData_$12127_$", + "typeString": "type(contract IConverterRegistryData)" + } + }, + "id": 4537, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18032:58:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterRegistryData_$12127", + "typeString": "contract IConverterRegistryData" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17985:105:6" + }, + { + "assignments": [ + 4540 + ], + "declarations": [ + { + "constant": false, + "id": 4540, + "name": "anchor", + "nodeType": "VariableDeclaration", + "scope": 4594, + "src": "18094:23:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + }, + "typeName": { + "contractScope": null, + "id": 4539, + "name": "IConverterAnchor", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11826, + "src": "18094:16:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 4546, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4542, + "name": "_converter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4528, + "src": "18131:10:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + ], + "id": 4541, + "name": "IConverter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11817, + "src": "18120:10:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IConverter_$11817_$", + "typeString": "type(contract IConverter)" + } + }, + "id": 4543, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18120:22:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + "id": 4544, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "token", + "nodeType": "MemberAccess", + "referencedDeclaration": 11774, + "src": "18120:28:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_IConverterAnchor_$11826_$", + "typeString": "function () view external returns (contract IConverterAnchor)" + } + }, + "id": 4545, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18120:30:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "18094:56:6" + }, + { + "assignments": [ + 4548 + ], + "declarations": [ + { + "constant": false, + "id": 4548, + "name": "reserveTokenCount", + "nodeType": "VariableDeclaration", + "scope": 4594, + "src": "18154:25:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4547, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "18154:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 4552, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 4549, + "name": "_converter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4528, + "src": "18182:10:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + "id": 4550, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "connectorTokenCount", + "nodeType": "MemberAccess", + "referencedDeclaration": 11816, + "src": "18182:30:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint16_$", + "typeString": "function () view external returns (uint16)" + } + }, + "id": 4551, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18182:32:6", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "18154:60:6" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4554, + "name": "converterRegistryData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4532, + "src": "18259:21:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterRegistryData_$12127", + "typeString": "contract IConverterRegistryData" + } + }, + { + "argumentTypes": null, + "id": 4555, + "name": "anchor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4540, + "src": "18282:6:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IConverterRegistryData_$12127", + "typeString": "contract IConverterRegistryData" + }, + { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + ], + "id": 4553, + "name": "addAnchor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4424, + "src": "18249:9:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IConverterRegistryData_$12127_$_t_address_$returns$__$", + "typeString": "function (contract IConverterRegistryData,address)" + } + }, + "id": 4556, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18249:40:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4557, + "nodeType": "ExpressionStatement", + "src": "18249:40:6" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4560, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4558, + "name": "reserveTokenCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4548, + "src": "18297:17:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 4559, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18317:1:6", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "18297:21:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4567, + "name": "converterRegistryData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4532, + "src": "18396:21:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterRegistryData_$12127", + "typeString": "contract IConverterRegistryData" + } + }, + { + "argumentTypes": null, + "id": 4568, + "name": "anchor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4540, + "src": "18419:6:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + }, + { + "argumentTypes": null, + "id": 4569, + "name": "anchor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4540, + "src": "18427:6:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IConverterRegistryData_$12127", + "typeString": "contract IConverterRegistryData" + }, + { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + }, + { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + ], + "id": 4566, + "name": "addConvertibleToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4504, + "src": "18376:19:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IConverterRegistryData_$12127_$_t_address_$_t_address_$returns$__$", + "typeString": "function (contract IConverterRegistryData,address,address)" + } + }, + "id": 4570, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18376:58:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4571, + "nodeType": "ExpressionStatement", + "src": "18376:58:6" + }, + "id": 4572, + "nodeType": "IfStatement", + "src": "18293:141:6", + "trueBody": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4562, + "name": "converterRegistryData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4532, + "src": "18337:21:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterRegistryData_$12127", + "typeString": "contract IConverterRegistryData" + } + }, + { + "argumentTypes": null, + "id": 4563, + "name": "anchor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4540, + "src": "18360:6:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IConverterRegistryData_$12127", + "typeString": "contract IConverterRegistryData" + }, + { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + ], + "id": 4561, + "name": "addLiquidityPool", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4464, + "src": "18320:16:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IConverterRegistryData_$12127_$_t_address_$returns$__$", + "typeString": "function (contract IConverterRegistryData,address)" + } + }, + "id": 4564, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18320:47:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4565, + "nodeType": "ExpressionStatement", + "src": "18320:47:6" + } + }, + { + "body": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4584, + "name": "converterRegistryData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4532, + "src": "18535:21:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterRegistryData_$12127", + "typeString": "contract IConverterRegistryData" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4587, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4574, + "src": "18585:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 4585, + "name": "_converter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4528, + "src": "18558:10:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + "id": 4586, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "connectorTokens", + "nodeType": "MemberAccess", + "referencedDeclaration": 11811, + "src": "18558:26:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_contract$_IERC20Token_$20240_$", + "typeString": "function (uint256) view external returns (contract IERC20Token)" + } + }, + "id": 4588, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18558:29:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + { + "argumentTypes": null, + "id": 4589, + "name": "anchor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4540, + "src": "18589:6:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IConverterRegistryData_$12127", + "typeString": "contract IConverterRegistryData" + }, + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + ], + "id": 4583, + "name": "addConvertibleToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4504, + "src": "18515:19:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IConverterRegistryData_$12127_$_t_address_$_t_address_$returns$__$", + "typeString": "function (contract IConverterRegistryData,address,address)" + } + }, + "id": 4590, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18515:81:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4591, + "nodeType": "ExpressionStatement", + "src": "18515:81:6" + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4579, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4577, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4574, + "src": "18487:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 4578, + "name": "reserveTokenCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4548, + "src": "18491:17:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "18487:21:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 4592, + "initializationExpression": { + "assignments": [ + 4574 + ], + "declarations": [ + { + "constant": false, + "id": 4574, + "name": "i", + "nodeType": "VariableDeclaration", + "scope": 4594, + "src": "18472:9:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4573, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "18472:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 4576, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 4575, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18484:1:6", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "18472:13:6" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 4581, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "18510:3:6", + "subExpression": { + "argumentTypes": null, + "id": 4580, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4574, + "src": "18510:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4582, + "nodeType": "ExpressionStatement", + "src": "18510:3:6" + }, + "nodeType": "ForStatement", + "src": "18467:129:6" + } + ] + }, + "documentation": null, + "id": 4594, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "addConverterInternal", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4529, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4528, + "name": "_converter", + "nodeType": "VariableDeclaration", + "scope": 4594, + "src": "17950:21:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + }, + "typeName": { + "contractScope": null, + "id": 4527, + "name": "IConverter", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11817, + "src": "17950:10:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "17949:23:6" + }, + "payable": false, + "returnParameters": { + "id": 4530, + "nodeType": "ParameterList", + "parameters": [], + "src": "17981:0:6" + }, + "scope": 4965, + "src": "17920:680:6", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "private" + }, + { + "body": { + "id": 4661, + "nodeType": "Block", + "src": "18667:637:6", + "statements": [ + { + "assignments": [ + 4600 + ], + "declarations": [ + { + "constant": false, + "id": 4600, + "name": "converterRegistryData", + "nodeType": "VariableDeclaration", + "scope": 4662, + "src": "18671:44:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterRegistryData_$12127", + "typeString": "contract IConverterRegistryData" + }, + "typeName": { + "contractScope": null, + "id": 4599, + "name": "IConverterRegistryData", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 12127, + "src": "18671:22:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterRegistryData_$12127", + "typeString": "contract IConverterRegistryData" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 4606, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4603, + "name": "CONVERTER_REGISTRY_DATA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20773, + "src": "18751:23:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 4602, + "name": "addressOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20931, + "src": "18741:9:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$", + "typeString": "function (bytes32) view returns (address)" + } + }, + "id": 4604, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18741:34:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 4601, + "name": "IConverterRegistryData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12127, + "src": "18718:22:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IConverterRegistryData_$12127_$", + "typeString": "type(contract IConverterRegistryData)" + } + }, + "id": 4605, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18718:58:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterRegistryData_$12127", + "typeString": "contract IConverterRegistryData" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "18671:105:6" + }, + { + "assignments": [ + 4608 + ], + "declarations": [ + { + "constant": false, + "id": 4608, + "name": "anchor", + "nodeType": "VariableDeclaration", + "scope": 4662, + "src": "18780:23:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + }, + "typeName": { + "contractScope": null, + "id": 4607, + "name": "IConverterAnchor", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11826, + "src": "18780:16:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 4614, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4610, + "name": "_converter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4596, + "src": "18817:10:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + ], + "id": 4609, + "name": "IConverter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11817, + "src": "18806:10:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IConverter_$11817_$", + "typeString": "type(contract IConverter)" + } + }, + "id": 4611, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18806:22:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + "id": 4612, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "token", + "nodeType": "MemberAccess", + "referencedDeclaration": 11774, + "src": "18806:28:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_IConverterAnchor_$11826_$", + "typeString": "function () view external returns (contract IConverterAnchor)" + } + }, + "id": 4613, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18806:30:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "18780:56:6" + }, + { + "assignments": [ + 4616 + ], + "declarations": [ + { + "constant": false, + "id": 4616, + "name": "reserveTokenCount", + "nodeType": "VariableDeclaration", + "scope": 4662, + "src": "18840:25:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4615, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "18840:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 4620, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 4617, + "name": "_converter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4596, + "src": "18868:10:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + "id": 4618, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "connectorTokenCount", + "nodeType": "MemberAccess", + "referencedDeclaration": 11816, + "src": "18868:30:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint16_$", + "typeString": "function () view external returns (uint16)" + } + }, + "id": 4619, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18868:32:6", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "18840:60:6" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4622, + "name": "converterRegistryData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4600, + "src": "18951:21:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterRegistryData_$12127", + "typeString": "contract IConverterRegistryData" + } + }, + { + "argumentTypes": null, + "id": 4623, + "name": "anchor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4608, + "src": "18974:6:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IConverterRegistryData_$12127", + "typeString": "contract IConverterRegistryData" + }, + { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + ], + "id": 4621, + "name": "removeAnchor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4446, + "src": "18938:12:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IConverterRegistryData_$12127_$_t_address_$returns$__$", + "typeString": "function (contract IConverterRegistryData,address)" + } + }, + "id": 4624, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18938:43:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4625, + "nodeType": "ExpressionStatement", + "src": "18938:43:6" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4628, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4626, + "name": "reserveTokenCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4616, + "src": "18989:17:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 4627, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19009:1:6", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "18989:21:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4635, + "name": "converterRegistryData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4600, + "src": "19094:21:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterRegistryData_$12127", + "typeString": "contract IConverterRegistryData" + } + }, + { + "argumentTypes": null, + "id": 4636, + "name": "anchor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4608, + "src": "19117:6:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + }, + { + "argumentTypes": null, + "id": 4637, + "name": "anchor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4608, + "src": "19125:6:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IConverterRegistryData_$12127", + "typeString": "contract IConverterRegistryData" + }, + { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + }, + { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + ], + "id": 4634, + "name": "removeConvertibleToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4526, + "src": "19071:22:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IConverterRegistryData_$12127_$_t_address_$_t_address_$returns$__$", + "typeString": "function (contract IConverterRegistryData,address,address)" + } + }, + "id": 4638, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19071:61:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4639, + "nodeType": "ExpressionStatement", + "src": "19071:61:6" + }, + "id": 4640, + "nodeType": "IfStatement", + "src": "18985:147:6", + "trueBody": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4630, + "name": "converterRegistryData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4600, + "src": "19032:21:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterRegistryData_$12127", + "typeString": "contract IConverterRegistryData" + } + }, + { + "argumentTypes": null, + "id": 4631, + "name": "anchor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4608, + "src": "19055:6:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IConverterRegistryData_$12127", + "typeString": "contract IConverterRegistryData" + }, + { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + ], + "id": 4629, + "name": "removeLiquidityPool", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4482, + "src": "19012:19:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IConverterRegistryData_$12127_$_t_address_$returns$__$", + "typeString": "function (contract IConverterRegistryData,address)" + } + }, + "id": 4632, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19012:50:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4633, + "nodeType": "ExpressionStatement", + "src": "19012:50:6" + } + }, + { + "body": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4652, + "name": "converterRegistryData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4600, + "src": "19239:21:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterRegistryData_$12127", + "typeString": "contract IConverterRegistryData" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4655, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4642, + "src": "19289:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 4653, + "name": "_converter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4596, + "src": "19262:10:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + "id": 4654, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "connectorTokens", + "nodeType": "MemberAccess", + "referencedDeclaration": 11811, + "src": "19262:26:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_contract$_IERC20Token_$20240_$", + "typeString": "function (uint256) view external returns (contract IERC20Token)" + } + }, + "id": 4656, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19262:29:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + { + "argumentTypes": null, + "id": 4657, + "name": "anchor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4608, + "src": "19293:6:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IConverterRegistryData_$12127", + "typeString": "contract IConverterRegistryData" + }, + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + ], + "id": 4651, + "name": "removeConvertibleToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4526, + "src": "19216:22:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IConverterRegistryData_$12127_$_t_address_$_t_address_$returns$__$", + "typeString": "function (contract IConverterRegistryData,address,address)" + } + }, + "id": 4658, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19216:84:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4659, + "nodeType": "ExpressionStatement", + "src": "19216:84:6" + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4647, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4645, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4642, + "src": "19188:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 4646, + "name": "reserveTokenCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4616, + "src": "19192:17:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19188:21:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 4660, + "initializationExpression": { + "assignments": [ + 4642 + ], + "declarations": [ + { + "constant": false, + "id": 4642, + "name": "i", + "nodeType": "VariableDeclaration", + "scope": 4662, + "src": "19173:9:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4641, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "19173:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 4644, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 4643, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19185:1:6", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "19173:13:6" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 4649, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "19211:3:6", + "subExpression": { + "argumentTypes": null, + "id": 4648, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4642, + "src": "19211:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4650, + "nodeType": "ExpressionStatement", + "src": "19211:3:6" + }, + "nodeType": "ForStatement", + "src": "19168:132:6" + } + ] + }, + "documentation": null, + "id": 4662, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "removeConverterInternal", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4597, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4596, + "name": "_converter", + "nodeType": "VariableDeclaration", + "scope": 4662, + "src": "18636:21:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + }, + "typeName": { + "contractScope": null, + "id": 4595, + "name": "IConverter", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11817, + "src": "18636:10:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "18635:23:6" + }, + "payable": false, + "returnParameters": { + "id": 4598, + "nodeType": "ParameterList", + "parameters": [], + "src": "18667:0:6" + }, + "scope": 4965, + "src": "18603:701:6", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "private" + }, + { + "body": { + "id": 4734, + "nodeType": "Block", + "src": "19422:708:6", + "statements": [ + { + "assignments": [ + 4672 + ], + "declarations": [ + { + "constant": false, + "id": 4672, + "name": "converterRegistryData", + "nodeType": "VariableDeclaration", + "scope": 4735, + "src": "19426:44:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterRegistryData_$12127", + "typeString": "contract IConverterRegistryData" + }, + "typeName": { + "contractScope": null, + "id": 4671, + "name": "IConverterRegistryData", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 12127, + "src": "19426:22:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterRegistryData_$12127", + "typeString": "contract IConverterRegistryData" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 4678, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4675, + "name": "CONVERTER_REGISTRY_DATA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20773, + "src": "19506:23:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 4674, + "name": "addressOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20931, + "src": "19496:9:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$", + "typeString": "function (bytes32) view returns (address)" + } + }, + "id": 4676, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19496:34:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 4673, + "name": "IConverterRegistryData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12127, + "src": "19473:22:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IConverterRegistryData_$12127_$", + "typeString": "type(contract IConverterRegistryData)" + } + }, + "id": 4677, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19473:58:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterRegistryData_$12127", + "typeString": "contract IConverterRegistryData" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "19426:105:6" + }, + { + "assignments": [ + 4680 + ], + "declarations": [ + { + "constant": false, + "id": 4680, + "name": "minAnchorCount", + "nodeType": "VariableDeclaration", + "scope": 4735, + "src": "19535:22:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4679, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "19535:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 4687, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4683, + "name": "_reserveTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4665, + "src": "19617:14:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", + "typeString": "contract IERC20Token[] memory" + } + }, + "id": 4685, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 4684, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19632:1:6", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "19617:17:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + ], + "expression": { + "argumentTypes": null, + "id": 4681, + "name": "converterRegistryData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4672, + "src": "19560:21:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterRegistryData_$12127", + "typeString": "contract IConverterRegistryData" + } + }, + "id": 4682, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getConvertibleTokenSmartTokenCount", + "nodeType": "MemberAccess", + "referencedDeclaration": 12100, + "src": "19560:56:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 4686, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19560:75:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "19535:100:6" + }, + { + "assignments": [ + 4689 + ], + "declarations": [ + { + "constant": false, + "id": 4689, + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 4735, + "src": "19639:13:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4688, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "19639:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 4691, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 4690, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19655:1:6", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "19639:17:6" + }, + { + "body": { + "id": 4725, + "nodeType": "Block", + "src": "19792:248:6", + "statements": [ + { + "assignments": [ + 4704 + ], + "declarations": [ + { + "constant": false, + "id": 4704, + "name": "convertibleTokenAnchorCount", + "nodeType": "VariableDeclaration", + "scope": 4735, + "src": "19797:35:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4703, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "19797:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 4711, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4707, + "name": "_reserveTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4665, + "src": "19892:14:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", + "typeString": "contract IERC20Token[] memory" + } + }, + "id": 4709, + "indexExpression": { + "argumentTypes": null, + "id": 4708, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4693, + "src": "19907:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "19892:17:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + ], + "expression": { + "argumentTypes": null, + "id": 4705, + "name": "converterRegistryData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4672, + "src": "19835:21:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterRegistryData_$12127", + "typeString": "contract IConverterRegistryData" + } + }, + "id": 4706, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getConvertibleTokenSmartTokenCount", + "nodeType": "MemberAccess", + "referencedDeclaration": 12100, + "src": "19835:56:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 4710, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19835:75:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "19797:113:6" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4714, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4712, + "name": "minAnchorCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4680, + "src": "19919:14:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "id": 4713, + "name": "convertibleTokenAnchorCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4704, + "src": "19936:27:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19919:44:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 4724, + "nodeType": "IfStatement", + "src": "19915:121:6", + "trueBody": { + "id": 4723, + "nodeType": "Block", + "src": "19965:71:6", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 4717, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 4715, + "name": "minAnchorCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4680, + "src": "19971:14:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 4716, + "name": "convertibleTokenAnchorCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4704, + "src": "19988:27:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19971:44:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4718, + "nodeType": "ExpressionStatement", + "src": "19971:44:6" + }, + { + "expression": { + "argumentTypes": null, + "id": 4721, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 4719, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4689, + "src": "20021:5:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 4720, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4693, + "src": "20029:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "20021:9:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4722, + "nodeType": "ExpressionStatement", + "src": "20021:9:6" + } + ] + } + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4699, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4696, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4693, + "src": "19760:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4697, + "name": "_reserveTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4665, + "src": "19764:14:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", + "typeString": "contract IERC20Token[] memory" + } + }, + "id": 4698, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "19764:21:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19760:25:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 4726, + "initializationExpression": { + "assignments": [ + 4693 + ], + "declarations": [ + { + "constant": false, + "id": 4693, + "name": "i", + "nodeType": "VariableDeclaration", + "scope": 4735, + "src": "19745:9:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4692, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "19745:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 4695, + "initialValue": { + "argumentTypes": null, + "hexValue": "31", + "id": 4694, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19757:1:6", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "nodeType": "VariableDeclarationStatement", + "src": "19745:13:6" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 4701, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "19787:3:6", + "subExpression": { + "argumentTypes": null, + "id": 4700, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4693, + "src": "19787:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4702, + "nodeType": "ExpressionStatement", + "src": "19787:3:6" + }, + "nodeType": "ForStatement", + "src": "19740:300:6" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4729, + "name": "_reserveTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4665, + "src": "20104:14:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", + "typeString": "contract IERC20Token[] memory" + } + }, + "id": 4731, + "indexExpression": { + "argumentTypes": null, + "id": 4730, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4689, + "src": "20119:5:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "20104:21:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + ], + "expression": { + "argumentTypes": null, + "id": 4727, + "name": "converterRegistryData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4672, + "src": "20051:21:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterRegistryData_$12127", + "typeString": "contract IConverterRegistryData" + } + }, + "id": 4728, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getConvertibleTokenSmartTokens", + "nodeType": "MemberAccess", + "referencedDeclaration": 12108, + "src": "20051:52:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_array$_t_address_$dyn_memory_ptr_$", + "typeString": "function (address) view external returns (address[] memory)" + } + }, + "id": 4732, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20051:75:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "functionReturnParameters": 4670, + "id": 4733, + "nodeType": "Return", + "src": "20044:82:6" + } + ] + }, + "documentation": null, + "id": 4735, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getLeastFrequentTokenAnchors", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4666, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4665, + "name": "_reserveTokens", + "nodeType": "VariableDeclaration", + "scope": 4735, + "src": "19345:35:6", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", + "typeString": "contract IERC20Token[]" + }, + "typeName": { + "baseType": { + "contractScope": null, + "id": 4663, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "19345:11:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "id": 4664, + "length": null, + "nodeType": "ArrayTypeName", + "src": "19345:13:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_storage_ptr", + "typeString": "contract IERC20Token[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "19344:37:6" + }, + "payable": false, + "returnParameters": { + "id": 4670, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4669, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 4735, + "src": "19404:9:6", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 4667, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "19404:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 4668, + "length": null, + "nodeType": "ArrayTypeName", + "src": "19404:9:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "19403:18:6" + }, + "scope": 4965, + "src": "19307:823:6", + "stateMutability": "view", + "superFunction": null, + "visibility": "private" + }, + { + "body": { + "id": 4795, + "nodeType": "Block", + "src": "20318:310:6", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "id": 4754, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4750, + "name": "_type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4739, + "src": "20326:5:6", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 4751, + "name": "_converter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4737, + "src": "20335:10:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + "id": 4752, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "converterType", + "nodeType": "MemberAccess", + "referencedDeclaration": 11655, + "src": "20335:24:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_pure$__$returns$_t_uint16_$", + "typeString": "function () pure external returns (uint16)" + } + }, + "id": 4753, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20335:26:6", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "src": "20326:35:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 4757, + "nodeType": "IfStatement", + "src": "20322:53:6", + "trueBody": { + "expression": { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 4755, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20370:5:6", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "functionReturnParameters": 4749, + "id": 4756, + "nodeType": "Return", + "src": "20363:12:6" + } + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4763, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4758, + "name": "_reserveTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4742, + "src": "20384:14:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", + "typeString": "contract IERC20Token[] memory" + } + }, + "id": 4759, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "20384:21:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 4760, + "name": "_converter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4737, + "src": "20409:10:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + "id": 4761, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "connectorTokenCount", + "nodeType": "MemberAccess", + "referencedDeclaration": 11816, + "src": "20409:30:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint16_$", + "typeString": "function () view external returns (uint16)" + } + }, + "id": 4762, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20409:32:6", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "src": "20384:57:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 4766, + "nodeType": "IfStatement", + "src": "20380:75:6", + "trueBody": { + "expression": { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 4764, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20450:5:6", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "functionReturnParameters": 4749, + "id": 4765, + "nodeType": "Return", + "src": "20443:12:6" + } + }, + { + "body": { + "id": 4791, + "nodeType": "Block", + "src": "20512:97:6", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 4787, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4778, + "name": "_reserveWeights", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4745, + "src": "20521:15:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint32_$dyn_memory_ptr", + "typeString": "uint32[] memory" + } + }, + "id": 4780, + "indexExpression": { + "argumentTypes": null, + "id": 4779, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4768, + "src": "20537:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "20521:18:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4782, + "name": "_converter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4737, + "src": "20560:10:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4783, + "name": "_reserveTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4742, + "src": "20572:14:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", + "typeString": "contract IERC20Token[] memory" + } + }, + "id": 4785, + "indexExpression": { + "argumentTypes": null, + "id": 4784, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4768, + "src": "20587:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "20572:17:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + }, + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + ], + "id": 4781, + "name": "getReserveWeight", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4834, + "src": "20543:16:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_uint32_$", + "typeString": "function (address,address) view returns (uint32)" + } + }, + "id": 4786, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20543:47:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "20521:69:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 4790, + "nodeType": "IfStatement", + "src": "20517:87:6", + "trueBody": { + "expression": { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 4788, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20599:5:6", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "functionReturnParameters": 4749, + "id": 4789, + "nodeType": "Return", + "src": "20592:12:6" + } + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4774, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4771, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4768, + "src": "20480:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4772, + "name": "_reserveTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4742, + "src": "20484:14:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", + "typeString": "contract IERC20Token[] memory" + } + }, + "id": 4773, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "20484:21:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "20480:25:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 4792, + "initializationExpression": { + "assignments": [ + 4768 + ], + "declarations": [ + { + "constant": false, + "id": 4768, + "name": "i", + "nodeType": "VariableDeclaration", + "scope": 4796, + "src": "20465:9:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4767, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "20465:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 4770, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 4769, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20477:1:6", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "20465:13:6" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 4776, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "20507:3:6", + "subExpression": { + "argumentTypes": null, + "id": 4775, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4768, + "src": "20507:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4777, + "nodeType": "ExpressionStatement", + "src": "20507:3:6" + }, + "nodeType": "ForStatement", + "src": "20460:149:6" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 4793, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20620:4:6", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 4749, + "id": 4794, + "nodeType": "Return", + "src": "20613:11:6" + } + ] + }, + "documentation": null, + "id": 4796, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "isConverterReserveConfigEqual", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4746, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4737, + "name": "_converter", + "nodeType": "VariableDeclaration", + "scope": 4796, + "src": "20175:21:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + }, + "typeName": { + "contractScope": null, + "id": 4736, + "name": "IConverter", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11817, + "src": "20175:10:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4739, + "name": "_type", + "nodeType": "VariableDeclaration", + "scope": 4796, + "src": "20200:12:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 4738, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "20200:6:6", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4742, + "name": "_reserveTokens", + "nodeType": "VariableDeclaration", + "scope": 4796, + "src": "20216:35:6", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", + "typeString": "contract IERC20Token[]" + }, + "typeName": { + "baseType": { + "contractScope": null, + "id": 4740, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "20216:11:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "id": 4741, + "length": null, + "nodeType": "ArrayTypeName", + "src": "20216:13:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_storage_ptr", + "typeString": "contract IERC20Token[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4745, + "name": "_reserveWeights", + "nodeType": "VariableDeclaration", + "scope": 4796, + "src": "20255:31:6", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint32_$dyn_memory_ptr", + "typeString": "uint32[]" + }, + "typeName": { + "baseType": { + "id": 4743, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "20255:6:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "id": 4744, + "length": null, + "nodeType": "ArrayTypeName", + "src": "20255:8:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint32_$dyn_storage_ptr", + "typeString": "uint32[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "20171:118:6" + }, + "payable": false, + "returnParameters": { + "id": 4749, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4748, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 4796, + "src": "20312:4:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4747, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "20312:4:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "20311:6:6" + }, + "scope": 4965, + "src": "20133:495:6", + "stateMutability": "view", + "superFunction": null, + "visibility": "private" + }, + { + "constant": true, + "id": 4803, + "name": "CONNECTORS_FUNC_SELECTOR", + "nodeType": "VariableDeclaration", + "scope": 4965, + "src": "20631:91:6", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 4797, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "20631:6:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "636f6e6e6563746f7273286164647265737329", + "id": 4800, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20699:21:6", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_0e53aae97787976ff3e17f0e93a0423377140d489f6c292432ee1e420ce38fa9", + "typeString": "literal_string \"connectors(address)\"" + }, + "value": "connectors(address)" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_0e53aae97787976ff3e17f0e93a0423377140d489f6c292432ee1e420ce38fa9", + "typeString": "literal_string \"connectors(address)\"" + } + ], + "id": 4799, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22332, + "src": "20689:9:6", + "typeDescriptions": { + "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", + "typeString": "function () pure returns (bytes32)" + } + }, + "id": 4801, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20689:32:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 4798, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "20682:6:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes4_$", + "typeString": "type(bytes4)" + }, + "typeName": "bytes4" + }, + "id": 4802, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20682:40:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "private" + }, + { + "body": { + "id": 4833, + "nodeType": "Block", + "src": "21100:531:6", + "statements": [ + { + "assignments": [], + "declarations": [ + { + "constant": false, + "id": 4816, + "name": "ret", + "nodeType": "VariableDeclaration", + "scope": 4834, + "src": "21104:21:6", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", + "typeString": "uint256[2]" + }, + "typeName": { + "baseType": { + "id": 4814, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "21104:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4815, + "length": { + "argumentTypes": null, + "hexValue": "32", + "id": 4813, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "21112:1:6", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + }, + "value": "2" + }, + "nodeType": "ArrayTypeName", + "src": "21104:10:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr", + "typeString": "uint256[2]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 4817, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "21104:21:6" + }, + { + "assignments": [ + 4819 + ], + "declarations": [ + { + "constant": false, + "id": 4819, + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 4834, + "src": "21129:17:6", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 4818, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "21129:5:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 4825, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4822, + "name": "CONNECTORS_FUNC_SELECTOR", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4803, + "src": "21172:24:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + { + "argumentTypes": null, + "id": 4823, + "name": "_reserveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4807, + "src": "21198:13:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 4820, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22325, + "src": "21149:3:6", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 4821, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encodeWithSelector", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "21149:22:6", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (bytes4) pure returns (bytes memory)" + } + }, + "id": 4824, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21149:63:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "21129:83:6" + }, + { + "externalReferences": [ + { + "data": { + "declaration": 4819, + "isOffset": false, + "isSlot": false, + "src": "21422:4:6", + "valueSize": 1 + } + }, + { + "data": { + "declaration": 4819, + "isOffset": false, + "isSlot": false, + "src": "21331:4:6", + "valueSize": 1 + } + }, + { + "_converter": { + "declaration": 4805, + "isOffset": false, + "isSlot": false, + "src": "21288:10:6", + "valueSize": 1 + } + }, + { + "ret": { + "declaration": 4816, + "isOffset": false, + "isSlot": false, + "src": "21502:3:6", + "valueSize": 1 + } + } + ], + "id": 4826, + "nodeType": "InlineAssembly", + "operations": "{\n let success := staticcall(gas(), _converter, add(data, 32), mload(data), ret, 64)\n if iszero(success)\n {\n revert(0, 0)\n }\n}", + "src": "21217:395:6" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4828, + "name": "ret", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4816, + "src": "21620:3:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", + "typeString": "uint256[2] memory" + } + }, + "id": 4830, + "indexExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 4829, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "21624:1:6", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "21620:6:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 4827, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "21613:6:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint32_$", + "typeString": "type(uint32)" + }, + "typeName": "uint32" + }, + "id": 4831, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21613:14:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "functionReturnParameters": 4811, + "id": 4832, + "nodeType": "Return", + "src": "21606:21:6" + } + ] + }, + "documentation": null, + "id": 4834, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getReserveWeight", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4808, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4805, + "name": "_converter", + "nodeType": "VariableDeclaration", + "scope": 4834, + "src": "21027:18:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4804, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "21027:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4807, + "name": "_reserveToken", + "nodeType": "VariableDeclaration", + "scope": 4834, + "src": "21047:21:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4806, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "21047:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "21026:43:6" + }, + "payable": false, + "returnParameters": { + "id": 4811, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4810, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 4834, + "src": "21092:6:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 4809, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "21092:6:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "21091:8:6" + }, + "scope": 4965, + "src": "21001:630:6", + "stateMutability": "view", + "superFunction": null, + "visibility": "private" + }, + { + "body": { + "id": 4842, + "nodeType": "Block", + "src": "21770:31:6", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 4839, + "name": "getAnchorCount", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3931 + ], + "referencedDeclaration": 3931, + "src": "21781:14:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 4840, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21781:16:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 4838, + "id": 4841, + "nodeType": "Return", + "src": "21774:23:6" + } + ] + }, + "documentation": "@dev deprecated, backward compatibility, use `getAnchorCount`", + "id": 4843, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getSmartTokenCount", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4835, + "nodeType": "ParameterList", + "parameters": [], + "src": "21737:2:6" + }, + "payable": false, + "returnParameters": { + "id": 4838, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4837, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 4843, + "src": "21761:7:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4836, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "21761:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "21760:9:6" + }, + "scope": 4965, + "src": "21710:91:6", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 4852, + "nodeType": "Block", + "src": "21934:27:6", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 4849, + "name": "getAnchors", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3946 + ], + "referencedDeclaration": 3946, + "src": "21945:10:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_array$_t_address_$dyn_memory_ptr_$", + "typeString": "function () view returns (address[] memory)" + } + }, + "id": 4850, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21945:12:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "functionReturnParameters": 4848, + "id": 4851, + "nodeType": "Return", + "src": "21938:19:6" + } + ] + }, + "documentation": "@dev deprecated, backward compatibility, use `getAnchors`", + "id": 4853, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getSmartTokens", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4844, + "nodeType": "ParameterList", + "parameters": [], + "src": "21899:2:6" + }, + "payable": false, + "returnParameters": { + "id": 4848, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4847, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 4853, + "src": "21923:9:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 4845, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "21923:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 4846, + "length": null, + "nodeType": "ArrayTypeName", + "src": "21923:9:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "21922:11:6" + }, + "scope": 4965, + "src": "21876:85:6", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 4864, + "nodeType": "Block", + "src": "22104:32:6", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4861, + "name": "_index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4855, + "src": "22125:6:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 4860, + "name": "getAnchor", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3963 + ], + "referencedDeclaration": 3963, + "src": "22115:9:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 4862, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "22115:17:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 4859, + "id": 4863, + "nodeType": "Return", + "src": "22108:24:6" + } + ] + }, + "documentation": "@dev deprecated, backward compatibility, use `getAnchor`", + "id": 4865, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getSmartToken", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4856, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4855, + "name": "_index", + "nodeType": "VariableDeclaration", + "scope": 4865, + "src": "22058:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4854, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "22058:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "22057:16:6" + }, + "payable": false, + "returnParameters": { + "id": 4859, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4858, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 4865, + "src": "22095:7:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4857, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "22095:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "22094:9:6" + }, + "scope": 4965, + "src": "22035:101:6", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 4876, + "nodeType": "Block", + "src": "22274:31:6", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4873, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4867, + "src": "22294:6:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 4872, + "name": "isAnchor", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3980 + ], + "referencedDeclaration": 3980, + "src": "22285:8:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", + "typeString": "function (address) view returns (bool)" + } + }, + "id": 4874, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "22285:16:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 4871, + "id": 4875, + "nodeType": "Return", + "src": "22278:23:6" + } + ] + }, + "documentation": "@dev deprecated, backward compatibility, use `isAnchor`", + "id": 4877, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "isSmartToken", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4868, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4867, + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 4877, + "src": "22231:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4866, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "22231:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "22230:16:6" + }, + "payable": false, + "returnParameters": { + "id": 4871, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4870, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 4877, + "src": "22268:4:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4869, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "22268:4:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "22267:6:6" + }, + "scope": 4965, + "src": "22209:96:6", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 4888, + "nodeType": "Block", + "src": "22501:64:6", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4885, + "name": "_convertibleToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4879, + "src": "22543:17:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 4884, + "name": "getConvertibleTokenAnchorCount", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4123 + ], + "referencedDeclaration": 4123, + "src": "22512:30:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view returns (uint256)" + } + }, + "id": 4886, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "22512:49:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 4883, + "id": 4887, + "nodeType": "Return", + "src": "22505:56:6" + } + ] + }, + "documentation": "@dev deprecated, backward compatibility, use `getConvertibleTokenAnchorCount`", + "id": 4889, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getConvertibleTokenSmartTokenCount", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4880, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4879, + "name": "_convertibleToken", + "nodeType": "VariableDeclaration", + "scope": 4889, + "src": "22444:25:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4878, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "22444:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "22443:27:6" + }, + "payable": false, + "returnParameters": { + "id": 4883, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4882, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 4889, + "src": "22492:7:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4881, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "22492:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "22491:9:6" + }, + "scope": 4965, + "src": "22400:165:6", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 4901, + "nodeType": "Block", + "src": "22755:60:6", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4898, + "name": "_convertibleToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4891, + "src": "22793:17:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 4897, + "name": "getConvertibleTokenAnchors", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4141 + ], + "referencedDeclaration": 4141, + "src": "22766:26:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_array$_t_address_$dyn_memory_ptr_$", + "typeString": "function (address) view returns (address[] memory)" + } + }, + "id": 4899, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "22766:45:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "functionReturnParameters": 4896, + "id": 4900, + "nodeType": "Return", + "src": "22759:52:6" + } + ] + }, + "documentation": "@dev deprecated, backward compatibility, use `getConvertibleTokenAnchors`", + "id": 4902, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getConvertibleTokenSmartTokens", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4892, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4891, + "name": "_convertibleToken", + "nodeType": "VariableDeclaration", + "scope": 4902, + "src": "22696:25:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4890, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "22696:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "22695:27:6" + }, + "payable": false, + "returnParameters": { + "id": 4896, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4895, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 4902, + "src": "22744:9:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 4893, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "22744:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 4894, + "length": null, + "nodeType": "ArrayTypeName", + "src": "22744:9:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "22743:11:6" + }, + "scope": 4965, + "src": "22656:159:6", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 4916, + "nodeType": "Block", + "src": "23017:67:6", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4912, + "name": "_convertibleToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4904, + "src": "23054:17:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 4913, + "name": "_index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4906, + "src": "23073:6:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 4911, + "name": "getConvertibleTokenAnchor", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4161 + ], + "referencedDeclaration": 4161, + "src": "23028:25:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_address_$", + "typeString": "function (address,uint256) view returns (address)" + } + }, + "id": 4914, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "23028:52:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 4910, + "id": 4915, + "nodeType": "Return", + "src": "23021:59:6" + } + ] + }, + "documentation": "@dev deprecated, backward compatibility, use `getConvertibleTokenAnchor`", + "id": 4917, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getConvertibleTokenSmartToken", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4907, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4904, + "name": "_convertibleToken", + "nodeType": "VariableDeclaration", + "scope": 4917, + "src": "22944:25:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4903, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "22944:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4906, + "name": "_index", + "nodeType": "VariableDeclaration", + "scope": 4917, + "src": "22971:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4905, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "22971:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "22943:43:6" + }, + "payable": false, + "returnParameters": { + "id": 4910, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4909, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 4917, + "src": "23008:7:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4908, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "23008:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "23007:9:6" + }, + "scope": 4965, + "src": "22905:179:6", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 4931, + "nodeType": "Block", + "src": "23281:66:6", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4927, + "name": "_convertibleToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4919, + "src": "23317:17:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 4928, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4921, + "src": "23336:6:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 4926, + "name": "isConvertibleTokenAnchor", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4181 + ], + "referencedDeclaration": 4181, + "src": "23292:24:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", + "typeString": "function (address,address) view returns (bool)" + } + }, + "id": 4929, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "23292:51:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 4925, + "id": 4930, + "nodeType": "Return", + "src": "23285:58:6" + } + ] + }, + "documentation": "@dev deprecated, backward compatibility, use `isConvertibleTokenAnchor`", + "id": 4932, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "isConvertibleTokenSmartToken", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4922, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4919, + "name": "_convertibleToken", + "nodeType": "VariableDeclaration", + "scope": 4932, + "src": "23211:25:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4918, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "23211:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4921, + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 4932, + "src": "23238:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4920, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "23238:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "23210:43:6" + }, + "payable": false, + "returnParameters": { + "id": 4925, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4924, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 4932, + "src": "23275:4:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4923, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "23275:4:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "23274:6:6" + }, + "scope": 4965, + "src": "23173:174:6", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 4945, + "nodeType": "Block", + "src": "23526:51:6", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4942, + "name": "_smartTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4935, + "src": "23560:12:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + ], + "id": 4941, + "name": "getConvertersByAnchors", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4228, + "src": "23537:22:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_array$_t_address_$dyn_memory_ptr_$returns$_t_array$_t_address_$dyn_memory_ptr_$", + "typeString": "function (address[] memory) view returns (address[] memory)" + } + }, + "id": 4943, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "23537:36:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "functionReturnParameters": 4940, + "id": 4944, + "nodeType": "Return", + "src": "23530:43:6" + } + ] + }, + "documentation": "@dev deprecated, backward compatibility, use `getConvertersByAnchors`", + "id": 4946, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getConvertersBySmartTokens", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4936, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4935, + "name": "_smartTokens", + "nodeType": "VariableDeclaration", + "scope": 4946, + "src": "23470:22:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 4933, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "23470:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 4934, + "length": null, + "nodeType": "ArrayTypeName", + "src": "23470:9:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "23469:24:6" + }, + "payable": false, + "returnParameters": { + "id": 4940, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4939, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 4946, + "src": "23515:9:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 4937, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "23515:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 4938, + "length": null, + "nodeType": "ArrayTypeName", + "src": "23515:9:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "23514:11:6" + }, + "scope": 4965, + "src": "23434:143:6", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 4963, + "nodeType": "Block", + "src": "23823:75:6", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "31", + "id": 4958, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "23859:1:6", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + { + "argumentTypes": null, + "id": 4959, + "name": "_reserveTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4949, + "src": "23862:14:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", + "typeString": "contract IERC20Token[] memory" + } + }, + { + "argumentTypes": null, + "id": 4960, + "name": "_reserveWeights", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4952, + "src": "23878:15:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint32_$dyn_memory_ptr", + "typeString": "uint32[] memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", + "typeString": "contract IERC20Token[] memory" + }, + { + "typeIdentifier": "t_array$_t_uint32_$dyn_memory_ptr", + "typeString": "uint32[] memory" + } + ], + "id": 4957, + "name": "getLiquidityPoolByConfig", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4402, + "src": "23834:24:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint16_$_t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr_$_t_array$_t_uint32_$dyn_memory_ptr_$returns$_t_contract$_IConverterAnchor_$11826_$", + "typeString": "function (uint16,contract IERC20Token[] memory,uint32[] memory) view returns (contract IConverterAnchor)" + } + }, + "id": 4961, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "23834:60:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + }, + "functionReturnParameters": 4956, + "id": 4962, + "nodeType": "Return", + "src": "23827:67:6" + } + ] + }, + "documentation": "@dev deprecated, backward compatibility, use `getLiquidityPoolByConfig`", + "id": 4964, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getLiquidityPoolByReserveConfig", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4953, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4949, + "name": "_reserveTokens", + "nodeType": "VariableDeclaration", + "scope": 4964, + "src": "23707:35:6", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", + "typeString": "contract IERC20Token[]" + }, + "typeName": { + "baseType": { + "contractScope": null, + "id": 4947, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "23707:11:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "id": 4948, + "length": null, + "nodeType": "ArrayTypeName", + "src": "23707:13:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_storage_ptr", + "typeString": "contract IERC20Token[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4952, + "name": "_reserveWeights", + "nodeType": "VariableDeclaration", + "scope": 4964, + "src": "23744:31:6", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint32_$dyn_memory_ptr", + "typeString": "uint32[]" + }, + "typeName": { + "baseType": { + "id": 4950, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "23744:6:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "id": 4951, + "length": null, + "nodeType": "ArrayTypeName", + "src": "23744:8:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint32_$dyn_storage_ptr", + "typeString": "uint32[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "23706:70:6" + }, + "payable": false, + "returnParameters": { + "id": 4956, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4955, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 4964, + "src": "23804:16:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + }, + "typeName": { + "contractScope": null, + "id": 4954, + "name": "IConverterAnchor", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11826, + "src": "23804:16:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "23803:18:6" + }, + "scope": 4965, + "src": "23666:232:6", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 4966, + "src": "1278:22622:6" + } + ], + "src": "0:23901:6" + }, + "id": 6 + }, + "solidity/contracts/converter/ConverterRegistryData.sol": { + "ast": { + "absolutePath": "solidity/contracts/converter/ConverterRegistryData.sol", + "exportedSymbols": { + "ConverterRegistryData": [ + 5516 + ] + }, + "id": 5517, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 4967, + "literals": [ + "solidity", + "0.4", + ".26" + ], + "nodeType": "PragmaDirective", + "src": "0:23:7" + }, + { + "absolutePath": "solidity/contracts/utility/ContractRegistryClient.sol", + "file": "../utility/ContractRegistryClient.sol", + "id": 4968, + "nodeType": "ImportDirective", + "scope": 5517, + "sourceUnit": 20933, + "src": "24:47:7", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "solidity/contracts/converter/interfaces/IConverterRegistryData.sol", + "file": "./interfaces/IConverterRegistryData.sol", + "id": 4969, + "nodeType": "ImportDirective", + "scope": 5517, + "sourceUnit": 12128, + "src": "72:49:7", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 4970, + "name": "IConverterRegistryData", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 12127, + "src": "711:22:7", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterRegistryData_$12127", + "typeString": "contract IConverterRegistryData" + } + }, + "id": 4971, + "nodeType": "InheritanceSpecifier", + "src": "711:22:7" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 4972, + "name": "ContractRegistryClient", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20932, + "src": "735:22:7", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ContractRegistryClient_$20932", + "typeString": "contract ContractRegistryClient" + } + }, + "id": 4973, + "nodeType": "InheritanceSpecifier", + "src": "735:22:7" + } + ], + "contractDependencies": [ + 12127, + 20932, + 21324, + 22052, + 22247 + ], + "contractKind": "contract", + "documentation": "@dev The ConverterRegistryData contract is an integral part of the converter registry\nas it serves as the database contract that holds all registry data.\n * The registry is separated into two different contracts for upgradability - the data contract\nis harder to upgrade as it requires migrating all registry data into a new contract, while\nthe registry contract itself can be easily upgraded.\n * For that same reason, the data contract is simple and contains no logic beyond the basic data\naccess utilities that it exposes.", + "fullyImplemented": true, + "id": 5516, + "linearizedBaseContracts": [ + 5516, + 20932, + 22052, + 21324, + 22247, + 12127 + ], + "name": "ConverterRegistryData", + "nodeType": "ContractDefinition", + "nodes": [ + { + "canonicalName": "ConverterRegistryData.Item", + "id": 4978, + "members": [ + { + "constant": false, + "id": 4975, + "name": "valid", + "nodeType": "VariableDeclaration", + "scope": 4978, + "src": "777:10:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4974, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "777:4:7", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4977, + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 4978, + "src": "791:13:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4976, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "791:7:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "name": "Item", + "nodeType": "StructDefinition", + "scope": 5516, + "src": "761:47:7", + "visibility": "public" + }, + { + "canonicalName": "ConverterRegistryData.Items", + "id": 4986, + "members": [ + { + "constant": false, + "id": 4981, + "name": "array", + "nodeType": "VariableDeclaration", + "scope": 4986, + "src": "828:15:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 4979, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "828:7:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 4980, + "length": null, + "nodeType": "ArrayTypeName", + "src": "828:9:7", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4985, + "name": "table", + "nodeType": "VariableDeclaration", + "scope": 4986, + "src": "847:30:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Item_$4978_storage_$", + "typeString": "mapping(address => struct ConverterRegistryData.Item)" + }, + "typeName": { + "id": 4984, + "keyType": { + "id": 4982, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "855:7:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "847:24:7", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Item_$4978_storage_$", + "typeString": "mapping(address => struct ConverterRegistryData.Item)" + }, + "valueType": { + "contractScope": null, + "id": 4983, + "name": "Item", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4978, + "src": "866:4:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Item_$4978_storage_ptr", + "typeString": "struct ConverterRegistryData.Item" + } + } + }, + "value": null, + "visibility": "internal" + } + ], + "name": "Items", + "nodeType": "StructDefinition", + "scope": 5516, + "src": "811:70:7", + "visibility": "public" + }, + { + "canonicalName": "ConverterRegistryData.List", + "id": 4991, + "members": [ + { + "constant": false, + "id": 4988, + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 4991, + "src": "900:13:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4987, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "900:7:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4990, + "name": "items", + "nodeType": "VariableDeclaration", + "scope": 4991, + "src": "917:11:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Items_$4986_storage_ptr", + "typeString": "struct ConverterRegistryData.Items" + }, + "typeName": { + "contractScope": null, + "id": 4989, + "name": "Items", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4986, + "src": "917:5:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Items_$4986_storage_ptr", + "typeString": "struct ConverterRegistryData.Items" + } + }, + "value": null, + "visibility": "internal" + } + ], + "name": "List", + "nodeType": "StructDefinition", + "scope": 5516, + "src": "884:48:7", + "visibility": "public" + }, + { + "canonicalName": "ConverterRegistryData.Lists", + "id": 4999, + "members": [ + { + "constant": false, + "id": 4994, + "name": "array", + "nodeType": "VariableDeclaration", + "scope": 4999, + "src": "952:15:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 4992, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "952:7:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 4993, + "length": null, + "nodeType": "ArrayTypeName", + "src": "952:9:7", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4998, + "name": "table", + "nodeType": "VariableDeclaration", + "scope": 4999, + "src": "971:30:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_List_$4991_storage_$", + "typeString": "mapping(address => struct ConverterRegistryData.List)" + }, + "typeName": { + "id": 4997, + "keyType": { + "id": 4995, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "979:7:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "971:24:7", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_List_$4991_storage_$", + "typeString": "mapping(address => struct ConverterRegistryData.List)" + }, + "valueType": { + "contractScope": null, + "id": 4996, + "name": "List", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4991, + "src": "990:4:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_List_$4991_storage_ptr", + "typeString": "struct ConverterRegistryData.List" + } + } + }, + "value": null, + "visibility": "internal" + } + ], + "name": "Lists", + "nodeType": "StructDefinition", + "scope": 5516, + "src": "935:70:7", + "visibility": "public" + }, + { + "constant": false, + "id": 5001, + "name": "smartTokens", + "nodeType": "VariableDeclaration", + "scope": 5516, + "src": "1008:25:7", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Items_$4986_storage", + "typeString": "struct ConverterRegistryData.Items" + }, + "typeName": { + "contractScope": null, + "id": 5000, + "name": "Items", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4986, + "src": "1008:5:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Items_$4986_storage_ptr", + "typeString": "struct ConverterRegistryData.Items" + } + }, + "value": null, + "visibility": "private" + }, + { + "constant": false, + "id": 5003, + "name": "liquidityPools", + "nodeType": "VariableDeclaration", + "scope": 5516, + "src": "1036:28:7", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Items_$4986_storage", + "typeString": "struct ConverterRegistryData.Items" + }, + "typeName": { + "contractScope": null, + "id": 5002, + "name": "Items", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4986, + "src": "1036:5:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Items_$4986_storage_ptr", + "typeString": "struct ConverterRegistryData.Items" + } + }, + "value": null, + "visibility": "private" + }, + { + "constant": false, + "id": 5005, + "name": "convertibleTokens", + "nodeType": "VariableDeclaration", + "scope": 5516, + "src": "1067:31:7", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Lists_$4999_storage", + "typeString": "struct ConverterRegistryData.Lists" + }, + "typeName": { + "contractScope": null, + "id": 5004, + "name": "Lists", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4999, + "src": "1067:5:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Lists_$4999_storage_ptr", + "typeString": "struct ConverterRegistryData.Lists" + } + }, + "value": null, + "visibility": "private" + }, + { + "body": { + "id": 5013, + "nodeType": "Block", + "src": "1317:2:7", + "statements": [] + }, + "documentation": "@dev initializes a new ConverterRegistryData instance\n\t * @param _registry address of a contract registry contract", + "id": 5014, + "implemented": true, + "isConstructor": true, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 5010, + "name": "_registry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5007, + "src": "1306:9:7", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IContractRegistry_$22220", + "typeString": "contract IContractRegistry" + } + } + ], + "id": 5011, + "modifierName": { + "argumentTypes": null, + "id": 5009, + "name": "ContractRegistryClient", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20932, + "src": "1283:22:7", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ContractRegistryClient_$20932_$", + "typeString": "type(contract ContractRegistryClient)" + } + }, + "nodeType": "ModifierInvocation", + "src": "1283:33:7" + } + ], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5008, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5007, + "name": "_registry", + "nodeType": "VariableDeclaration", + "scope": 5014, + "src": "1247:27:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IContractRegistry_$22220", + "typeString": "contract IContractRegistry" + }, + "typeName": { + "contractScope": null, + "id": 5006, + "name": "IContractRegistry", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 22220, + "src": "1247:17:7", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IContractRegistry_$22220", + "typeString": "contract IContractRegistry" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1246:29:7" + }, + "payable": false, + "returnParameters": { + "id": 5012, + "nodeType": "ParameterList", + "parameters": [], + "src": "1317:0:7" + }, + "scope": 5516, + "src": "1235:84:7", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 5027, + "nodeType": "Block", + "src": "1477:41:7", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5023, + "name": "smartTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5001, + "src": "1489:11:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Items_$4986_storage", + "typeString": "struct ConverterRegistryData.Items storage ref" + } + }, + { + "argumentTypes": null, + "id": 5024, + "name": "_smartToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5016, + "src": "1502:11:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Items_$4986_storage", + "typeString": "struct ConverterRegistryData.Items storage ref" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 5022, + "name": "addItem", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5448, + "src": "1481:7:7", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Items_$4986_storage_ptr_$_t_address_$returns$__$", + "typeString": "function (struct ConverterRegistryData.Items storage pointer,address)" + } + }, + "id": 5025, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1481:33:7", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5026, + "nodeType": "ExpressionStatement", + "src": "1481:33:7" + } + ] + }, + "documentation": "@dev adds a smart token\n\t * @param _smartToken smart token", + "id": 5028, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 5019, + "name": "CONVERTER_REGISTRY", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20770, + "src": "1457:18:7", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "id": 5020, + "modifierName": { + "argumentTypes": null, + "id": 5018, + "name": "only", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20801, + "src": "1452:4:7", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_bytes32_$", + "typeString": "modifier (bytes32)" + } + }, + "nodeType": "ModifierInvocation", + "src": "1452:24:7" + } + ], + "name": "addSmartToken", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5017, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5016, + "name": "_smartToken", + "nodeType": "VariableDeclaration", + "scope": 5028, + "src": "1422:19:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5015, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1422:7:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1421:21:7" + }, + "payable": false, + "returnParameters": { + "id": 5021, + "nodeType": "ParameterList", + "parameters": [], + "src": "1477:0:7" + }, + "scope": 5516, + "src": "1399:119:7", + "stateMutability": "nonpayable", + "superFunction": 11989, + "visibility": "external" + }, + { + "body": { + "id": 5041, + "nodeType": "Block", + "src": "1682:44:7", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5037, + "name": "smartTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5001, + "src": "1697:11:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Items_$4986_storage", + "typeString": "struct ConverterRegistryData.Items storage ref" + } + }, + { + "argumentTypes": null, + "id": 5038, + "name": "_smartToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5030, + "src": "1710:11:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Items_$4986_storage", + "typeString": "struct ConverterRegistryData.Items storage ref" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 5036, + "name": "removeItem", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5515, + "src": "1686:10:7", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Items_$4986_storage_ptr_$_t_address_$returns$__$", + "typeString": "function (struct ConverterRegistryData.Items storage pointer,address)" + } + }, + "id": 5039, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1686:36:7", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5040, + "nodeType": "ExpressionStatement", + "src": "1686:36:7" + } + ] + }, + "documentation": "@dev removes a smart token\n\t * @param _smartToken smart token", + "id": 5042, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 5033, + "name": "CONVERTER_REGISTRY", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20770, + "src": "1662:18:7", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "id": 5034, + "modifierName": { + "argumentTypes": null, + "id": 5032, + "name": "only", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20801, + "src": "1657:4:7", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_bytes32_$", + "typeString": "modifier (bytes32)" + } + }, + "nodeType": "ModifierInvocation", + "src": "1657:24:7" + } + ], + "name": "removeSmartToken", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5031, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5030, + "name": "_smartToken", + "nodeType": "VariableDeclaration", + "scope": 5042, + "src": "1627:19:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5029, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1627:7:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1626:21:7" + }, + "payable": false, + "returnParameters": { + "id": 5035, + "nodeType": "ParameterList", + "parameters": [], + "src": "1682:0:7" + }, + "scope": 5516, + "src": "1601:125:7", + "stateMutability": "nonpayable", + "superFunction": 11994, + "visibility": "external" + }, + { + "body": { + "id": 5055, + "nodeType": "Block", + "src": "1899:47:7", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5051, + "name": "liquidityPools", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5003, + "src": "1911:14:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Items_$4986_storage", + "typeString": "struct ConverterRegistryData.Items storage ref" + } + }, + { + "argumentTypes": null, + "id": 5052, + "name": "_liquidityPool", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5044, + "src": "1927:14:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Items_$4986_storage", + "typeString": "struct ConverterRegistryData.Items storage ref" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 5050, + "name": "addItem", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5448, + "src": "1903:7:7", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Items_$4986_storage_ptr_$_t_address_$returns$__$", + "typeString": "function (struct ConverterRegistryData.Items storage pointer,address)" + } + }, + "id": 5053, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1903:39:7", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5054, + "nodeType": "ExpressionStatement", + "src": "1903:39:7" + } + ] + }, + "documentation": "@dev adds a liquidity pool\n\t * @param _liquidityPool liquidity pool", + "id": 5056, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 5047, + "name": "CONVERTER_REGISTRY", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20770, + "src": "1879:18:7", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "id": 5048, + "modifierName": { + "argumentTypes": null, + "id": 5046, + "name": "only", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20801, + "src": "1874:4:7", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_bytes32_$", + "typeString": "modifier (bytes32)" + } + }, + "nodeType": "ModifierInvocation", + "src": "1874:24:7" + } + ], + "name": "addLiquidityPool", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5045, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5044, + "name": "_liquidityPool", + "nodeType": "VariableDeclaration", + "scope": 5056, + "src": "1841:22:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5043, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1841:7:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1840:24:7" + }, + "payable": false, + "returnParameters": { + "id": 5049, + "nodeType": "ParameterList", + "parameters": [], + "src": "1899:0:7" + }, + "scope": 5516, + "src": "1815:131:7", + "stateMutability": "nonpayable", + "superFunction": 11999, + "visibility": "external" + }, + { + "body": { + "id": 5069, + "nodeType": "Block", + "src": "2125:50:7", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5065, + "name": "liquidityPools", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5003, + "src": "2140:14:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Items_$4986_storage", + "typeString": "struct ConverterRegistryData.Items storage ref" + } + }, + { + "argumentTypes": null, + "id": 5066, + "name": "_liquidityPool", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5058, + "src": "2156:14:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Items_$4986_storage", + "typeString": "struct ConverterRegistryData.Items storage ref" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 5064, + "name": "removeItem", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5515, + "src": "2129:10:7", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Items_$4986_storage_ptr_$_t_address_$returns$__$", + "typeString": "function (struct ConverterRegistryData.Items storage pointer,address)" + } + }, + "id": 5067, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2129:42:7", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5068, + "nodeType": "ExpressionStatement", + "src": "2129:42:7" + } + ] + }, + "documentation": "@dev removes a liquidity pool\n\t * @param _liquidityPool liquidity pool", + "id": 5070, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 5061, + "name": "CONVERTER_REGISTRY", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20770, + "src": "2105:18:7", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "id": 5062, + "modifierName": { + "argumentTypes": null, + "id": 5060, + "name": "only", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20801, + "src": "2100:4:7", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_bytes32_$", + "typeString": "modifier (bytes32)" + } + }, + "nodeType": "ModifierInvocation", + "src": "2100:24:7" + } + ], + "name": "removeLiquidityPool", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5059, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5058, + "name": "_liquidityPool", + "nodeType": "VariableDeclaration", + "scope": 5070, + "src": "2067:22:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5057, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2067:7:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2066:24:7" + }, + "payable": false, + "returnParameters": { + "id": 5063, + "nodeType": "ParameterList", + "parameters": [], + "src": "2125:0:7" + }, + "scope": 5516, + "src": "2038:137:7", + "stateMutability": "nonpayable", + "superFunction": 12004, + "visibility": "external" + }, + { + "body": { + "id": 5113, + "nodeType": "Block", + "src": "2430:217:7", + "statements": [ + { + "assignments": [ + 5081 + ], + "declarations": [ + { + "constant": false, + "id": 5081, + "name": "list", + "nodeType": "VariableDeclaration", + "scope": 5114, + "src": "2434:17:7", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_List_$4991_storage_ptr", + "typeString": "struct ConverterRegistryData.List" + }, + "typeName": { + "contractScope": null, + "id": 5080, + "name": "List", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4991, + "src": "2434:4:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_List_$4991_storage_ptr", + "typeString": "struct ConverterRegistryData.List" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5086, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5082, + "name": "convertibleTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5005, + "src": "2454:17:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Lists_$4999_storage", + "typeString": "struct ConverterRegistryData.Lists storage ref" + } + }, + "id": 5083, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "table", + "nodeType": "MemberAccess", + "referencedDeclaration": 4998, + "src": "2454:23:7", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_List_$4991_storage_$", + "typeString": "mapping(address => struct ConverterRegistryData.List storage ref)" + } + }, + "id": 5085, + "indexExpression": { + "argumentTypes": null, + "id": 5084, + "name": "_convertibleToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5072, + "src": "2478:17:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2454:42:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_List_$4991_storage", + "typeString": "struct ConverterRegistryData.List storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2434:62:7" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5092, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5087, + "name": "list", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5081, + "src": "2504:4:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_List_$4991_storage_ptr", + "typeString": "struct ConverterRegistryData.List storage pointer" + } + }, + "id": 5088, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "items", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "2504:10:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Items_$4986_storage", + "typeString": "struct ConverterRegistryData.Items storage ref" + } + }, + "id": 5089, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "array", + "nodeType": "MemberAccess", + "referencedDeclaration": 4981, + "src": "2504:16:7", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 5090, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2504:23:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5091, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2531:1:7", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "2504:28:7", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 5106, + "nodeType": "IfStatement", + "src": "2500:108:7", + "trueBody": { + "id": 5105, + "nodeType": "Block", + "src": "2534:74:7", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5103, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5093, + "name": "list", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5081, + "src": "2539:4:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_List_$4991_storage_ptr", + "typeString": "struct ConverterRegistryData.List storage pointer" + } + }, + "id": 5095, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "index", + "nodeType": "MemberAccess", + "referencedDeclaration": 4988, + "src": "2539:10:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5102, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5099, + "name": "_convertibleToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5072, + "src": "2581:17:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5096, + "name": "convertibleTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5005, + "src": "2552:17:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Lists_$4999_storage", + "typeString": "struct ConverterRegistryData.Lists storage ref" + } + }, + "id": 5097, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "array", + "nodeType": "MemberAccess", + "referencedDeclaration": 4994, + "src": "2552:23:7", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 5098, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "push", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2552:28:7", + "typeDescriptions": { + "typeIdentifier": "t_function_arraypush_nonpayable$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) returns (uint256)" + } + }, + "id": 5100, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2552:47:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 5101, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2602:1:7", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "2552:51:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2539:64:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5104, + "nodeType": "ExpressionStatement", + "src": "2539:64:7" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5108, + "name": "list", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5081, + "src": "2619:4:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_List_$4991_storage_ptr", + "typeString": "struct ConverterRegistryData.List storage pointer" + } + }, + "id": 5109, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "items", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "2619:10:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Items_$4986_storage", + "typeString": "struct ConverterRegistryData.Items storage ref" + } + }, + { + "argumentTypes": null, + "id": 5110, + "name": "_smartToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5074, + "src": "2631:11:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Items_$4986_storage", + "typeString": "struct ConverterRegistryData.Items storage ref" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 5107, + "name": "addItem", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5448, + "src": "2611:7:7", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Items_$4986_storage_ptr_$_t_address_$returns$__$", + "typeString": "function (struct ConverterRegistryData.Items storage pointer,address)" + } + }, + "id": 5111, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2611:32:7", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5112, + "nodeType": "ExpressionStatement", + "src": "2611:32:7" + } + ] + }, + "documentation": "@dev adds a convertible token\n\t * @param _convertibleToken convertible token\n@param _smartToken associated smart token", + "id": 5114, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 5077, + "name": "CONVERTER_REGISTRY", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20770, + "src": "2410:18:7", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "id": 5078, + "modifierName": { + "argumentTypes": null, + "id": 5076, + "name": "only", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20801, + "src": "2405:4:7", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_bytes32_$", + "typeString": "modifier (bytes32)" + } + }, + "nodeType": "ModifierInvocation", + "src": "2405:24:7" + } + ], + "name": "addConvertibleToken", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5075, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5072, + "name": "_convertibleToken", + "nodeType": "VariableDeclaration", + "scope": 5114, + "src": "2348:25:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5071, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2348:7:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5074, + "name": "_smartToken", + "nodeType": "VariableDeclaration", + "scope": 5114, + "src": "2375:19:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5073, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2375:7:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2347:48:7" + }, + "payable": false, + "returnParameters": { + "id": 5079, + "nodeType": "ParameterList", + "parameters": [], + "src": "2430:0:7" + }, + "scope": 5516, + "src": "2319:328:7", + "stateMutability": "nonpayable", + "superFunction": 12011, + "visibility": "external" + }, + { + "body": { + "id": 5188, + "nodeType": "Block", + "src": "2908:469:7", + "statements": [ + { + "assignments": [ + 5125 + ], + "declarations": [ + { + "constant": false, + "id": 5125, + "name": "list", + "nodeType": "VariableDeclaration", + "scope": 5189, + "src": "2912:17:7", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_List_$4991_storage_ptr", + "typeString": "struct ConverterRegistryData.List" + }, + "typeName": { + "contractScope": null, + "id": 5124, + "name": "List", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4991, + "src": "2912:4:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_List_$4991_storage_ptr", + "typeString": "struct ConverterRegistryData.List" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5130, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5126, + "name": "convertibleTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5005, + "src": "2932:17:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Lists_$4999_storage", + "typeString": "struct ConverterRegistryData.Lists storage ref" + } + }, + "id": 5127, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "table", + "nodeType": "MemberAccess", + "referencedDeclaration": 4998, + "src": "2932:23:7", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_List_$4991_storage_$", + "typeString": "mapping(address => struct ConverterRegistryData.List storage ref)" + } + }, + "id": 5129, + "indexExpression": { + "argumentTypes": null, + "id": 5128, + "name": "_convertibleToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5116, + "src": "2956:17:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2932:42:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_List_$4991_storage", + "typeString": "struct ConverterRegistryData.List storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2912:62:7" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5132, + "name": "list", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5125, + "src": "2989:4:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_List_$4991_storage_ptr", + "typeString": "struct ConverterRegistryData.List storage pointer" + } + }, + "id": 5133, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "items", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "2989:10:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Items_$4986_storage", + "typeString": "struct ConverterRegistryData.Items storage ref" + } + }, + { + "argumentTypes": null, + "id": 5134, + "name": "_smartToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5118, + "src": "3001:11:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Items_$4986_storage", + "typeString": "struct ConverterRegistryData.Items storage ref" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 5131, + "name": "removeItem", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5515, + "src": "2978:10:7", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Items_$4986_storage_ptr_$_t_address_$returns$__$", + "typeString": "function (struct ConverterRegistryData.Items storage pointer,address)" + } + }, + "id": 5135, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2978:35:7", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5136, + "nodeType": "ExpressionStatement", + "src": "2978:35:7" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5142, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5137, + "name": "list", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5125, + "src": "3021:4:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_List_$4991_storage_ptr", + "typeString": "struct ConverterRegistryData.List storage pointer" + } + }, + "id": 5138, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "items", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "3021:10:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Items_$4986_storage", + "typeString": "struct ConverterRegistryData.Items storage ref" + } + }, + "id": 5139, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "array", + "nodeType": "MemberAccess", + "referencedDeclaration": 4981, + "src": "3021:16:7", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 5140, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3021:23:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5141, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3048:1:7", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3021:28:7", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 5187, + "nodeType": "IfStatement", + "src": "3017:357:7", + "trueBody": { + "id": 5186, + "nodeType": "Block", + "src": "3051:323:7", + "statements": [ + { + "assignments": [ + 5144 + ], + "declarations": [ + { + "constant": false, + "id": 5144, + "name": "lastConvertibleToken", + "nodeType": "VariableDeclaration", + "scope": 5189, + "src": "3056:28:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5143, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3056:7:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5153, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5145, + "name": "convertibleTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5005, + "src": "3087:17:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Lists_$4999_storage", + "typeString": "struct ConverterRegistryData.Lists storage ref" + } + }, + "id": 5146, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "array", + "nodeType": "MemberAccess", + "referencedDeclaration": 4994, + "src": "3087:23:7", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 5152, + "indexExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5151, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5147, + "name": "convertibleTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5005, + "src": "3111:17:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Lists_$4999_storage", + "typeString": "struct ConverterRegistryData.Lists storage ref" + } + }, + "id": 5148, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "array", + "nodeType": "MemberAccess", + "referencedDeclaration": 4994, + "src": "3111:23:7", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 5149, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3111:30:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 5150, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3144:1:7", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "3111:34:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3087:59:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3056:90:7" + }, + { + "expression": { + "argumentTypes": null, + "id": 5162, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5154, + "name": "convertibleTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5005, + "src": "3151:17:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Lists_$4999_storage", + "typeString": "struct ConverterRegistryData.Lists storage ref" + } + }, + "id": 5157, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "table", + "nodeType": "MemberAccess", + "referencedDeclaration": 4998, + "src": "3151:23:7", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_List_$4991_storage_$", + "typeString": "mapping(address => struct ConverterRegistryData.List storage ref)" + } + }, + "id": 5158, + "indexExpression": { + "argumentTypes": null, + "id": 5156, + "name": "lastConvertibleToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5144, + "src": "3175:20:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3151:45:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_List_$4991_storage", + "typeString": "struct ConverterRegistryData.List storage ref" + } + }, + "id": 5159, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "index", + "nodeType": "MemberAccess", + "referencedDeclaration": 4988, + "src": "3151:51:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5160, + "name": "list", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5125, + "src": "3205:4:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_List_$4991_storage_ptr", + "typeString": "struct ConverterRegistryData.List storage pointer" + } + }, + "id": 5161, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "index", + "nodeType": "MemberAccess", + "referencedDeclaration": 4988, + "src": "3205:10:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3151:64:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5163, + "nodeType": "ExpressionStatement", + "src": "3151:64:7" + }, + { + "expression": { + "argumentTypes": null, + "id": 5171, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5164, + "name": "convertibleTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5005, + "src": "3220:17:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Lists_$4999_storage", + "typeString": "struct ConverterRegistryData.Lists storage ref" + } + }, + "id": 5168, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "array", + "nodeType": "MemberAccess", + "referencedDeclaration": 4994, + "src": "3220:23:7", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 5169, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5166, + "name": "list", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5125, + "src": "3244:4:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_List_$4991_storage_ptr", + "typeString": "struct ConverterRegistryData.List storage pointer" + } + }, + "id": 5167, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "index", + "nodeType": "MemberAccess", + "referencedDeclaration": 4988, + "src": "3244:10:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "3220:35:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5170, + "name": "lastConvertibleToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5144, + "src": "3258:20:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "3220:58:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5172, + "nodeType": "ExpressionStatement", + "src": "3220:58:7" + }, + { + "expression": { + "argumentTypes": null, + "id": 5178, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "--", + "prefix": false, + "src": "3283:32:7", + "subExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5173, + "name": "convertibleTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5005, + "src": "3283:17:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Lists_$4999_storage", + "typeString": "struct ConverterRegistryData.Lists storage ref" + } + }, + "id": 5176, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "array", + "nodeType": "MemberAccess", + "referencedDeclaration": 4994, + "src": "3283:23:7", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 5177, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3283:30:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5179, + "nodeType": "ExpressionStatement", + "src": "3283:32:7" + }, + { + "expression": { + "argumentTypes": null, + "id": 5184, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "delete", + "prefix": true, + "src": "3320:49:7", + "subExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5180, + "name": "convertibleTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5005, + "src": "3327:17:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Lists_$4999_storage", + "typeString": "struct ConverterRegistryData.Lists storage ref" + } + }, + "id": 5181, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "table", + "nodeType": "MemberAccess", + "referencedDeclaration": 4998, + "src": "3327:23:7", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_List_$4991_storage_$", + "typeString": "mapping(address => struct ConverterRegistryData.List storage ref)" + } + }, + "id": 5183, + "indexExpression": { + "argumentTypes": null, + "id": 5182, + "name": "_convertibleToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5116, + "src": "3351:17:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "3327:42:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_List_$4991_storage", + "typeString": "struct ConverterRegistryData.List storage ref" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5185, + "nodeType": "ExpressionStatement", + "src": "3320:49:7" + } + ] + } + } + ] + }, + "documentation": "@dev removes a convertible token\n\t * @param _convertibleToken convertible token\n@param _smartToken associated smart token", + "id": 5189, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 5121, + "name": "CONVERTER_REGISTRY", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20770, + "src": "2888:18:7", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "id": 5122, + "modifierName": { + "argumentTypes": null, + "id": 5120, + "name": "only", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20801, + "src": "2883:4:7", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_bytes32_$", + "typeString": "modifier (bytes32)" + } + }, + "nodeType": "ModifierInvocation", + "src": "2883:24:7" + } + ], + "name": "removeConvertibleToken", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5119, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5116, + "name": "_convertibleToken", + "nodeType": "VariableDeclaration", + "scope": 5189, + "src": "2826:25:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5115, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2826:7:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5118, + "name": "_smartToken", + "nodeType": "VariableDeclaration", + "scope": 5189, + "src": "2853:19:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5117, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2853:7:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2825:48:7" + }, + "payable": false, + "returnParameters": { + "id": 5123, + "nodeType": "ParameterList", + "parameters": [], + "src": "2908:0:7" + }, + "scope": 5516, + "src": "2794:583:7", + "stateMutability": "nonpayable", + "superFunction": 12018, + "visibility": "external" + }, + { + "body": { + "id": 5198, + "nodeType": "Block", + "src": "3535:39:7", + "statements": [ + { + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5194, + "name": "smartTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5001, + "src": "3546:11:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Items_$4986_storage", + "typeString": "struct ConverterRegistryData.Items storage ref" + } + }, + "id": 5195, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "array", + "nodeType": "MemberAccess", + "referencedDeclaration": 4981, + "src": "3546:17:7", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 5196, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3546:24:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 5193, + "id": 5197, + "nodeType": "Return", + "src": "3539:31:7" + } + ] + }, + "documentation": "@dev returns the number of smart tokens\n\t * @return number of smart tokens", + "id": 5199, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getSmartTokenCount", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5190, + "nodeType": "ParameterList", + "parameters": [], + "src": "3500:2:7" + }, + "payable": false, + "returnParameters": { + "id": 5193, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5192, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5199, + "src": "3526:7:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5191, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3526:7:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3525:9:7" + }, + "scope": 5516, + "src": "3473:101:7", + "stateMutability": "view", + "superFunction": 12023, + "visibility": "external" + }, + { + "body": { + "id": 5208, + "nodeType": "Block", + "src": "3726:32:7", + "statements": [ + { + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5205, + "name": "smartTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5001, + "src": "3737:11:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Items_$4986_storage", + "typeString": "struct ConverterRegistryData.Items storage ref" + } + }, + "id": 5206, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "array", + "nodeType": "MemberAccess", + "referencedDeclaration": 4981, + "src": "3737:17:7", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "functionReturnParameters": 5204, + "id": 5207, + "nodeType": "Return", + "src": "3730:24:7" + } + ] + }, + "documentation": "@dev returns the list of smart tokens\n\t * @return list of smart tokens", + "id": 5209, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getSmartTokens", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5200, + "nodeType": "ParameterList", + "parameters": [], + "src": "3689:2:7" + }, + "payable": false, + "returnParameters": { + "id": 5204, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5203, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5209, + "src": "3715:9:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 5201, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3715:7:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5202, + "length": null, + "nodeType": "ArrayTypeName", + "src": "3715:9:7", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3714:11:7" + }, + "scope": 5516, + "src": "3666:92:7", + "stateMutability": "view", + "superFunction": 12029, + "visibility": "external" + }, + { + "body": { + "id": 5221, + "nodeType": "Block", + "src": "3963:40:7", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5216, + "name": "smartTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5001, + "src": "3974:11:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Items_$4986_storage", + "typeString": "struct ConverterRegistryData.Items storage ref" + } + }, + "id": 5217, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "array", + "nodeType": "MemberAccess", + "referencedDeclaration": 4981, + "src": "3974:17:7", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 5219, + "indexExpression": { + "argumentTypes": null, + "id": 5218, + "name": "_index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5211, + "src": "3992:6:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3974:25:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 5215, + "id": 5220, + "nodeType": "Return", + "src": "3967:32:7" + } + ] + }, + "documentation": "@dev returns the smart token at a given index\n\t * @param _index index\n@return smart token at the given index", + "id": 5222, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getSmartToken", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5212, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5211, + "name": "_index", + "nodeType": "VariableDeclaration", + "scope": 5222, + "src": "3915:14:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5210, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3915:7:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3914:16:7" + }, + "payable": false, + "returnParameters": { + "id": 5215, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5214, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5222, + "src": "3954:7:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5213, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3954:7:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3953:9:7" + }, + "scope": 5516, + "src": "3892:111:7", + "stateMutability": "view", + "superFunction": 12036, + "visibility": "external" + }, + { + "body": { + "id": 5235, + "nodeType": "Block", + "src": "4240:46:7", + "statements": [ + { + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5229, + "name": "smartTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5001, + "src": "4251:11:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Items_$4986_storage", + "typeString": "struct ConverterRegistryData.Items storage ref" + } + }, + "id": 5230, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "table", + "nodeType": "MemberAccess", + "referencedDeclaration": 4985, + "src": "4251:17:7", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Item_$4978_storage_$", + "typeString": "mapping(address => struct ConverterRegistryData.Item storage ref)" + } + }, + "id": 5232, + "indexExpression": { + "argumentTypes": null, + "id": 5231, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5224, + "src": "4269:6:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4251:25:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Item_$4978_storage", + "typeString": "struct ConverterRegistryData.Item storage ref" + } + }, + "id": 5233, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "valid", + "nodeType": "MemberAccess", + "referencedDeclaration": 4975, + "src": "4251:31:7", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 5228, + "id": 5234, + "nodeType": "Return", + "src": "4244:38:7" + } + ] + }, + "documentation": "@dev checks whether or not a given value is a smart token\n\t * @param _value value\n@return true if the given value is a smart token, false if not", + "id": 5236, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "isSmartToken", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5225, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5224, + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 5236, + "src": "4195:14:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5223, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4195:7:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4194:16:7" + }, + "payable": false, + "returnParameters": { + "id": 5228, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5227, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5236, + "src": "4234:4:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5226, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4234:4:7", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4233:6:7" + }, + "scope": 5516, + "src": "4173:113:7", + "stateMutability": "view", + "superFunction": 12043, + "visibility": "external" + }, + { + "body": { + "id": 5245, + "nodeType": "Block", + "src": "4453:42:7", + "statements": [ + { + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5241, + "name": "liquidityPools", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5003, + "src": "4464:14:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Items_$4986_storage", + "typeString": "struct ConverterRegistryData.Items storage ref" + } + }, + "id": 5242, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "array", + "nodeType": "MemberAccess", + "referencedDeclaration": 4981, + "src": "4464:20:7", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 5243, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4464:27:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 5240, + "id": 5244, + "nodeType": "Return", + "src": "4457:34:7" + } + ] + }, + "documentation": "@dev returns the number of liquidity pools\n\t * @return number of liquidity pools", + "id": 5246, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getLiquidityPoolCount", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5237, + "nodeType": "ParameterList", + "parameters": [], + "src": "4418:2:7" + }, + "payable": false, + "returnParameters": { + "id": 5240, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5239, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5246, + "src": "4444:7:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5238, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4444:7:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4443:9:7" + }, + "scope": 5516, + "src": "4388:107:7", + "stateMutability": "view", + "superFunction": 12048, + "visibility": "external" + }, + { + "body": { + "id": 5255, + "nodeType": "Block", + "src": "4656:35:7", + "statements": [ + { + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5252, + "name": "liquidityPools", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5003, + "src": "4667:14:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Items_$4986_storage", + "typeString": "struct ConverterRegistryData.Items storage ref" + } + }, + "id": 5253, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "array", + "nodeType": "MemberAccess", + "referencedDeclaration": 4981, + "src": "4667:20:7", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "functionReturnParameters": 5251, + "id": 5254, + "nodeType": "Return", + "src": "4660:27:7" + } + ] + }, + "documentation": "@dev returns the list of liquidity pools\n\t * @return list of liquidity pools", + "id": 5256, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getLiquidityPools", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5247, + "nodeType": "ParameterList", + "parameters": [], + "src": "4619:2:7" + }, + "payable": false, + "returnParameters": { + "id": 5251, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5250, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5256, + "src": "4645:9:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 5248, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4645:7:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5249, + "length": null, + "nodeType": "ArrayTypeName", + "src": "4645:9:7", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4644:11:7" + }, + "scope": 5516, + "src": "4593:98:7", + "stateMutability": "view", + "superFunction": 12054, + "visibility": "external" + }, + { + "body": { + "id": 5268, + "nodeType": "Block", + "src": "4905:43:7", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5263, + "name": "liquidityPools", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5003, + "src": "4916:14:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Items_$4986_storage", + "typeString": "struct ConverterRegistryData.Items storage ref" + } + }, + "id": 5264, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "array", + "nodeType": "MemberAccess", + "referencedDeclaration": 4981, + "src": "4916:20:7", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 5266, + "indexExpression": { + "argumentTypes": null, + "id": 5265, + "name": "_index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5258, + "src": "4937:6:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4916:28:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 5262, + "id": 5267, + "nodeType": "Return", + "src": "4909:35:7" + } + ] + }, + "documentation": "@dev returns the liquidity pool at a given index\n\t * @param _index index\n@return liquidity pool at the given index", + "id": 5269, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getLiquidityPool", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5259, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5258, + "name": "_index", + "nodeType": "VariableDeclaration", + "scope": 5269, + "src": "4857:14:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5257, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4857:7:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4856:16:7" + }, + "payable": false, + "returnParameters": { + "id": 5262, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5261, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5269, + "src": "4896:7:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5260, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4896:7:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4895:9:7" + }, + "scope": 5516, + "src": "4831:117:7", + "stateMutability": "view", + "superFunction": 12061, + "visibility": "external" + }, + { + "body": { + "id": 5282, + "nodeType": "Block", + "src": "5194:49:7", + "statements": [ + { + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5276, + "name": "liquidityPools", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5003, + "src": "5205:14:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Items_$4986_storage", + "typeString": "struct ConverterRegistryData.Items storage ref" + } + }, + "id": 5277, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "table", + "nodeType": "MemberAccess", + "referencedDeclaration": 4985, + "src": "5205:20:7", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Item_$4978_storage_$", + "typeString": "mapping(address => struct ConverterRegistryData.Item storage ref)" + } + }, + "id": 5279, + "indexExpression": { + "argumentTypes": null, + "id": 5278, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5271, + "src": "5226:6:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5205:28:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Item_$4978_storage", + "typeString": "struct ConverterRegistryData.Item storage ref" + } + }, + "id": 5280, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "valid", + "nodeType": "MemberAccess", + "referencedDeclaration": 4975, + "src": "5205:34:7", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 5275, + "id": 5281, + "nodeType": "Return", + "src": "5198:41:7" + } + ] + }, + "documentation": "@dev checks whether or not a given value is a liquidity pool\n\t * @param _value value\n@return true if the given value is a liquidity pool, false if not", + "id": 5283, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "isLiquidityPool", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5272, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5271, + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 5283, + "src": "5149:14:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5270, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5149:7:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5148:16:7" + }, + "payable": false, + "returnParameters": { + "id": 5275, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5274, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5283, + "src": "5188:4:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5273, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "5188:4:7", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5187:6:7" + }, + "scope": 5516, + "src": "5124:119:7", + "stateMutability": "view", + "superFunction": 12068, + "visibility": "external" + }, + { + "body": { + "id": 5292, + "nodeType": "Block", + "src": "5419:45:7", + "statements": [ + { + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5288, + "name": "convertibleTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5005, + "src": "5430:17:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Lists_$4999_storage", + "typeString": "struct ConverterRegistryData.Lists storage ref" + } + }, + "id": 5289, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "array", + "nodeType": "MemberAccess", + "referencedDeclaration": 4994, + "src": "5430:23:7", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 5290, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5430:30:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 5287, + "id": 5291, + "nodeType": "Return", + "src": "5423:37:7" + } + ] + }, + "documentation": "@dev returns the number of convertible tokens\n\t * @return number of convertible tokens", + "id": 5293, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getConvertibleTokenCount", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5284, + "nodeType": "ParameterList", + "parameters": [], + "src": "5384:2:7" + }, + "payable": false, + "returnParameters": { + "id": 5287, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5286, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5293, + "src": "5410:7:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5285, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5410:7:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5409:9:7" + }, + "scope": 5516, + "src": "5351:113:7", + "stateMutability": "view", + "superFunction": 12073, + "visibility": "external" + }, + { + "body": { + "id": 5302, + "nodeType": "Block", + "src": "5634:38:7", + "statements": [ + { + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5299, + "name": "convertibleTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5005, + "src": "5645:17:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Lists_$4999_storage", + "typeString": "struct ConverterRegistryData.Lists storage ref" + } + }, + "id": 5300, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "array", + "nodeType": "MemberAccess", + "referencedDeclaration": 4994, + "src": "5645:23:7", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "functionReturnParameters": 5298, + "id": 5301, + "nodeType": "Return", + "src": "5638:30:7" + } + ] + }, + "documentation": "@dev returns the list of convertible tokens\n\t * @return list of convertible tokens", + "id": 5303, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getConvertibleTokens", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5294, + "nodeType": "ParameterList", + "parameters": [], + "src": "5597:2:7" + }, + "payable": false, + "returnParameters": { + "id": 5298, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5297, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5303, + "src": "5623:9:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 5295, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5623:7:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5296, + "length": null, + "nodeType": "ArrayTypeName", + "src": "5623:9:7", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5622:11:7" + }, + "scope": 5516, + "src": "5568:104:7", + "stateMutability": "view", + "superFunction": 12079, + "visibility": "external" + }, + { + "body": { + "id": 5315, + "nodeType": "Block", + "src": "5895:46:7", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5310, + "name": "convertibleTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5005, + "src": "5906:17:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Lists_$4999_storage", + "typeString": "struct ConverterRegistryData.Lists storage ref" + } + }, + "id": 5311, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "array", + "nodeType": "MemberAccess", + "referencedDeclaration": 4994, + "src": "5906:23:7", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 5313, + "indexExpression": { + "argumentTypes": null, + "id": 5312, + "name": "_index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5305, + "src": "5930:6:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5906:31:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 5309, + "id": 5314, + "nodeType": "Return", + "src": "5899:38:7" + } + ] + }, + "documentation": "@dev returns the convertible token at a given index\n\t * @param _index index\n@return convertible token at the given index", + "id": 5316, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getConvertibleToken", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5306, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5305, + "name": "_index", + "nodeType": "VariableDeclaration", + "scope": 5316, + "src": "5847:14:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5304, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5847:7:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5846:16:7" + }, + "payable": false, + "returnParameters": { + "id": 5309, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5308, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5316, + "src": "5886:7:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5307, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5886:7:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5885:9:7" + }, + "scope": 5516, + "src": "5818:123:7", + "stateMutability": "view", + "superFunction": 12086, + "visibility": "external" + }, + { + "body": { + "id": 5333, + "nodeType": "Block", + "src": "6196:69:7", + "statements": [ + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5331, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5323, + "name": "convertibleTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5005, + "src": "6207:17:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Lists_$4999_storage", + "typeString": "struct ConverterRegistryData.Lists storage ref" + } + }, + "id": 5324, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "table", + "nodeType": "MemberAccess", + "referencedDeclaration": 4998, + "src": "6207:23:7", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_List_$4991_storage_$", + "typeString": "mapping(address => struct ConverterRegistryData.List storage ref)" + } + }, + "id": 5326, + "indexExpression": { + "argumentTypes": null, + "id": 5325, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5318, + "src": "6231:6:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6207:31:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_List_$4991_storage", + "typeString": "struct ConverterRegistryData.List storage ref" + } + }, + "id": 5327, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "items", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "6207:37:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Items_$4986_storage", + "typeString": "struct ConverterRegistryData.Items storage ref" + } + }, + "id": 5328, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "array", + "nodeType": "MemberAccess", + "referencedDeclaration": 4981, + "src": "6207:43:7", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 5329, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6207:50:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5330, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6260:1:7", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "6207:54:7", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 5322, + "id": 5332, + "nodeType": "Return", + "src": "6200:61:7" + } + ] + }, + "documentation": "@dev checks whether or not a given value is a convertible token\n\t * @param _value value\n@return true if the given value is a convertible token, false if not", + "id": 5334, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "isConvertibleToken", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5319, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5318, + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 5334, + "src": "6151:14:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5317, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6151:7:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6150:16:7" + }, + "payable": false, + "returnParameters": { + "id": 5322, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5321, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5334, + "src": "6190:4:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5320, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6190:4:7", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6189:6:7" + }, + "scope": 5516, + "src": "6123:142:7", + "stateMutability": "view", + "superFunction": 12093, + "visibility": "external" + }, + { + "body": { + "id": 5349, + "nodeType": "Block", + "src": "6597:76:7", + "statements": [ + { + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5341, + "name": "convertibleTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5005, + "src": "6608:17:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Lists_$4999_storage", + "typeString": "struct ConverterRegistryData.Lists storage ref" + } + }, + "id": 5342, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "table", + "nodeType": "MemberAccess", + "referencedDeclaration": 4998, + "src": "6608:23:7", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_List_$4991_storage_$", + "typeString": "mapping(address => struct ConverterRegistryData.List storage ref)" + } + }, + "id": 5344, + "indexExpression": { + "argumentTypes": null, + "id": 5343, + "name": "_convertibleToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5336, + "src": "6632:17:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6608:42:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_List_$4991_storage", + "typeString": "struct ConverterRegistryData.List storage ref" + } + }, + "id": 5345, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "items", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "6608:48:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Items_$4986_storage", + "typeString": "struct ConverterRegistryData.Items storage ref" + } + }, + "id": 5346, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "array", + "nodeType": "MemberAccess", + "referencedDeclaration": 4981, + "src": "6608:54:7", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 5347, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6608:61:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 5340, + "id": 5348, + "nodeType": "Return", + "src": "6601:68:7" + } + ] + }, + "documentation": "@dev returns the number of smart tokens associated with a given convertible token\n\t * @param _convertibleToken convertible token\n@return number of smart tokens associated with the given convertible token", + "id": 5350, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getConvertibleTokenSmartTokenCount", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5337, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5336, + "name": "_convertibleToken", + "nodeType": "VariableDeclaration", + "scope": 5350, + "src": "6538:25:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5335, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6538:7:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6537:27:7" + }, + "payable": false, + "returnParameters": { + "id": 5340, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5339, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5350, + "src": "6588:7:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5338, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6588:7:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6587:9:7" + }, + "scope": 5516, + "src": "6494:179:7", + "stateMutability": "view", + "superFunction": 12100, + "visibility": "external" + }, + { + "body": { + "id": 5365, + "nodeType": "Block", + "src": "6999:69:7", + "statements": [ + { + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5358, + "name": "convertibleTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5005, + "src": "7010:17:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Lists_$4999_storage", + "typeString": "struct ConverterRegistryData.Lists storage ref" + } + }, + "id": 5359, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "table", + "nodeType": "MemberAccess", + "referencedDeclaration": 4998, + "src": "7010:23:7", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_List_$4991_storage_$", + "typeString": "mapping(address => struct ConverterRegistryData.List storage ref)" + } + }, + "id": 5361, + "indexExpression": { + "argumentTypes": null, + "id": 5360, + "name": "_convertibleToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5352, + "src": "7034:17:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7010:42:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_List_$4991_storage", + "typeString": "struct ConverterRegistryData.List storage ref" + } + }, + "id": 5362, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "items", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "7010:48:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Items_$4986_storage", + "typeString": "struct ConverterRegistryData.Items storage ref" + } + }, + "id": 5363, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "array", + "nodeType": "MemberAccess", + "referencedDeclaration": 4981, + "src": "7010:54:7", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "functionReturnParameters": 5357, + "id": 5364, + "nodeType": "Return", + "src": "7003:61:7" + } + ] + }, + "documentation": "@dev returns the list of smart tokens associated with a given convertible token\n\t * @param _convertibleToken convertible token\n@return list of smart tokens associated with the given convertible token", + "id": 5366, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getConvertibleTokenSmartTokens", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5353, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5352, + "name": "_convertibleToken", + "nodeType": "VariableDeclaration", + "scope": 5366, + "src": "6938:25:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5351, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6938:7:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6937:27:7" + }, + "payable": false, + "returnParameters": { + "id": 5357, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5356, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5366, + "src": "6988:9:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 5354, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6988:7:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5355, + "length": null, + "nodeType": "ArrayTypeName", + "src": "6988:9:7", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6987:11:7" + }, + "scope": 5516, + "src": "6898:170:7", + "stateMutability": "view", + "superFunction": 12108, + "visibility": "external" + }, + { + "body": { + "id": 5384, + "nodeType": "Block", + "src": "7402:77:7", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5375, + "name": "convertibleTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5005, + "src": "7413:17:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Lists_$4999_storage", + "typeString": "struct ConverterRegistryData.Lists storage ref" + } + }, + "id": 5376, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "table", + "nodeType": "MemberAccess", + "referencedDeclaration": 4998, + "src": "7413:23:7", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_List_$4991_storage_$", + "typeString": "mapping(address => struct ConverterRegistryData.List storage ref)" + } + }, + "id": 5378, + "indexExpression": { + "argumentTypes": null, + "id": 5377, + "name": "_convertibleToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5368, + "src": "7437:17:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7413:42:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_List_$4991_storage", + "typeString": "struct ConverterRegistryData.List storage ref" + } + }, + "id": 5379, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "items", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "7413:48:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Items_$4986_storage", + "typeString": "struct ConverterRegistryData.Items storage ref" + } + }, + "id": 5380, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "array", + "nodeType": "MemberAccess", + "referencedDeclaration": 4981, + "src": "7413:54:7", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 5382, + "indexExpression": { + "argumentTypes": null, + "id": 5381, + "name": "_index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5370, + "src": "7468:6:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7413:62:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 5374, + "id": 5383, + "nodeType": "Return", + "src": "7406:69:7" + } + ] + }, + "documentation": "@dev returns the smart token associated with a given convertible token at a given index\n\t * @param _index index\n@return smart token associated with the given convertible token at the given index", + "id": 5385, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getConvertibleTokenSmartToken", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5371, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5368, + "name": "_convertibleToken", + "nodeType": "VariableDeclaration", + "scope": 5385, + "src": "7327:25:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5367, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7327:7:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5370, + "name": "_index", + "nodeType": "VariableDeclaration", + "scope": 5385, + "src": "7354:14:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5369, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7354:7:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "7326:43:7" + }, + "payable": false, + "returnParameters": { + "id": 5374, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5373, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5385, + "src": "7393:7:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5372, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7393:7:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "7392:9:7" + }, + "scope": 5516, + "src": "7288:191:7", + "stateMutability": "view", + "superFunction": 12117, + "visibility": "external" + }, + { + "body": { + "id": 5404, + "nodeType": "Block", + "src": "7866:83:7", + "statements": [ + { + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5394, + "name": "convertibleTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5005, + "src": "7877:17:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Lists_$4999_storage", + "typeString": "struct ConverterRegistryData.Lists storage ref" + } + }, + "id": 5395, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "table", + "nodeType": "MemberAccess", + "referencedDeclaration": 4998, + "src": "7877:23:7", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_List_$4991_storage_$", + "typeString": "mapping(address => struct ConverterRegistryData.List storage ref)" + } + }, + "id": 5397, + "indexExpression": { + "argumentTypes": null, + "id": 5396, + "name": "_convertibleToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5387, + "src": "7901:17:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7877:42:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_List_$4991_storage", + "typeString": "struct ConverterRegistryData.List storage ref" + } + }, + "id": 5398, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "items", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "7877:48:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Items_$4986_storage", + "typeString": "struct ConverterRegistryData.Items storage ref" + } + }, + "id": 5399, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "table", + "nodeType": "MemberAccess", + "referencedDeclaration": 4985, + "src": "7877:54:7", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Item_$4978_storage_$", + "typeString": "mapping(address => struct ConverterRegistryData.Item storage ref)" + } + }, + "id": 5401, + "indexExpression": { + "argumentTypes": null, + "id": 5400, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5389, + "src": "7932:6:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7877:62:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Item_$4978_storage", + "typeString": "struct ConverterRegistryData.Item storage ref" + } + }, + "id": 5402, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "valid", + "nodeType": "MemberAccess", + "referencedDeclaration": 4975, + "src": "7877:68:7", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 5393, + "id": 5403, + "nodeType": "Return", + "src": "7870:75:7" + } + ] + }, + "documentation": "@dev checks whether or not a given value is a smart token of a given convertible token\n\t * @param _convertibleToken convertible token\n@param _value value\n@return true if the given value is a smart token of the given convertible token, false it not", + "id": 5405, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "isConvertibleTokenSmartToken", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5390, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5387, + "name": "_convertibleToken", + "nodeType": "VariableDeclaration", + "scope": 5405, + "src": "7794:25:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5386, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7794:7:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5389, + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 5405, + "src": "7821:14:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5388, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7821:7:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "7793:43:7" + }, + "payable": false, + "returnParameters": { + "id": 5393, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5392, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5405, + "src": "7860:4:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5391, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "7860:4:7", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "7859:6:7" + }, + "scope": 5516, + "src": "7756:193:7", + "stateMutability": "view", + "superFunction": 12126, + "visibility": "external" + }, + { + "body": { + "id": 5447, + "nodeType": "Block", + "src": "8155:160:7", + "statements": [ + { + "assignments": [ + 5416 + ], + "declarations": [ + { + "constant": false, + "id": 5416, + "name": "item", + "nodeType": "VariableDeclaration", + "scope": 5448, + "src": "8159:17:7", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Item_$4978_storage_ptr", + "typeString": "struct ConverterRegistryData.Item" + }, + "typeName": { + "contractScope": null, + "id": 5415, + "name": "Item", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4978, + "src": "8159:4:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Item_$4978_storage_ptr", + "typeString": "struct ConverterRegistryData.Item" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5421, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5417, + "name": "_items", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5407, + "src": "8179:6:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Items_$4986_storage_ptr", + "typeString": "struct ConverterRegistryData.Items storage pointer" + } + }, + "id": 5418, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "table", + "nodeType": "MemberAccess", + "referencedDeclaration": 4985, + "src": "8179:12:7", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Item_$4978_storage_$", + "typeString": "mapping(address => struct ConverterRegistryData.Item storage ref)" + } + }, + "id": 5420, + "indexExpression": { + "argumentTypes": null, + "id": 5419, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5409, + "src": "8192:6:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8179:20:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Item_$4978_storage", + "typeString": "struct ConverterRegistryData.Item storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8159:40:7" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5425, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "8211:11:7", + "subExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5423, + "name": "item", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5416, + "src": "8212:4:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Item_$4978_storage_ptr", + "typeString": "struct ConverterRegistryData.Item storage pointer" + } + }, + "id": 5424, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "valid", + "nodeType": "MemberAccess", + "referencedDeclaration": 4975, + "src": "8212:10:7", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4552525f494e56414c49445f4954454d", + "id": 5426, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8224:18:7", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_45c52aff26d012f687a90a37723f3c6469b3bdb8dce3fb6f14072d935b05b47b", + "typeString": "literal_string \"ERR_INVALID_ITEM\"" + }, + "value": "ERR_INVALID_ITEM" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_45c52aff26d012f687a90a37723f3c6469b3bdb8dce3fb6f14072d935b05b47b", + "typeString": "literal_string \"ERR_INVALID_ITEM\"" + } + ], + "id": 5422, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 22341, + 22342 + ], + "referencedDeclaration": 22342, + "src": "8203:7:7", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 5427, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8203:40:7", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5428, + "nodeType": "ExpressionStatement", + "src": "8203:40:7" + }, + { + "expression": { + "argumentTypes": null, + "id": 5439, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5429, + "name": "item", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5416, + "src": "8248:4:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Item_$4978_storage_ptr", + "typeString": "struct ConverterRegistryData.Item storage pointer" + } + }, + "id": 5431, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "index", + "nodeType": "MemberAccess", + "referencedDeclaration": 4977, + "src": "8248:10:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5438, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5435, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5409, + "src": "8279:6:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5432, + "name": "_items", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5407, + "src": "8261:6:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Items_$4986_storage_ptr", + "typeString": "struct ConverterRegistryData.Items storage pointer" + } + }, + "id": 5433, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "array", + "nodeType": "MemberAccess", + "referencedDeclaration": 4981, + "src": "8261:12:7", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 5434, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "push", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8261:17:7", + "typeDescriptions": { + "typeIdentifier": "t_function_arraypush_nonpayable$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) returns (uint256)" + } + }, + "id": 5436, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8261:25:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 5437, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8289:1:7", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "8261:29:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8248:42:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5440, + "nodeType": "ExpressionStatement", + "src": "8248:42:7" + }, + { + "expression": { + "argumentTypes": null, + "id": 5445, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5441, + "name": "item", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5416, + "src": "8294:4:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Item_$4978_storage_ptr", + "typeString": "struct ConverterRegistryData.Item storage pointer" + } + }, + "id": 5443, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "valid", + "nodeType": "MemberAccess", + "referencedDeclaration": 4975, + "src": "8294:10:7", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 5444, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8307:4:7", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "8294:17:7", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5446, + "nodeType": "ExpressionStatement", + "src": "8294:17:7" + } + ] + }, + "documentation": "@dev adds an item to a list of items\n\t * @param _items list of items\n@param _value item's value", + "id": 5448, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 5412, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5409, + "src": "8147:6:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 5413, + "modifierName": { + "argumentTypes": null, + "id": 5411, + "name": "validAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22011, + "src": "8134:12:7", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_address_$", + "typeString": "modifier (address)" + } + }, + "nodeType": "ModifierInvocation", + "src": "8134:20:7" + } + ], + "name": "addItem", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5410, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5407, + "name": "_items", + "nodeType": "VariableDeclaration", + "scope": 5448, + "src": "8087:20:7", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Items_$4986_storage_ptr", + "typeString": "struct ConverterRegistryData.Items" + }, + "typeName": { + "contractScope": null, + "id": 5406, + "name": "Items", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4986, + "src": "8087:5:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Items_$4986_storage_ptr", + "typeString": "struct ConverterRegistryData.Items" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5409, + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 5448, + "src": "8109:14:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5408, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8109:7:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8086:38:7" + }, + "payable": false, + "returnParameters": { + "id": 5414, + "nodeType": "ParameterList", + "parameters": [], + "src": "8155:0:7" + }, + "scope": 5516, + "src": "8070:245:7", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 5514, + "nodeType": "Block", + "src": "8529:295:7", + "statements": [ + { + "assignments": [ + 5459 + ], + "declarations": [ + { + "constant": false, + "id": 5459, + "name": "item", + "nodeType": "VariableDeclaration", + "scope": 5515, + "src": "8533:17:7", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Item_$4978_storage_ptr", + "typeString": "struct ConverterRegistryData.Item" + }, + "typeName": { + "contractScope": null, + "id": 5458, + "name": "Item", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4978, + "src": "8533:4:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Item_$4978_storage_ptr", + "typeString": "struct ConverterRegistryData.Item" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5464, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5460, + "name": "_items", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5450, + "src": "8553:6:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Items_$4986_storage_ptr", + "typeString": "struct ConverterRegistryData.Items storage pointer" + } + }, + "id": 5461, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "table", + "nodeType": "MemberAccess", + "referencedDeclaration": 4985, + "src": "8553:12:7", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Item_$4978_storage_$", + "typeString": "mapping(address => struct ConverterRegistryData.Item storage ref)" + } + }, + "id": 5463, + "indexExpression": { + "argumentTypes": null, + "id": 5462, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5452, + "src": "8566:6:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8553:20:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Item_$4978_storage", + "typeString": "struct ConverterRegistryData.Item storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8533:40:7" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5466, + "name": "item", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5459, + "src": "8585:4:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Item_$4978_storage_ptr", + "typeString": "struct ConverterRegistryData.Item storage pointer" + } + }, + "id": 5467, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "valid", + "nodeType": "MemberAccess", + "referencedDeclaration": 4975, + "src": "8585:10:7", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4552525f494e56414c49445f4954454d", + "id": 5468, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8597:18:7", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_45c52aff26d012f687a90a37723f3c6469b3bdb8dce3fb6f14072d935b05b47b", + "typeString": "literal_string \"ERR_INVALID_ITEM\"" + }, + "value": "ERR_INVALID_ITEM" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_45c52aff26d012f687a90a37723f3c6469b3bdb8dce3fb6f14072d935b05b47b", + "typeString": "literal_string \"ERR_INVALID_ITEM\"" + } + ], + "id": 5465, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 22341, + 22342 + ], + "referencedDeclaration": 22342, + "src": "8577:7:7", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 5469, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8577:39:7", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5470, + "nodeType": "ExpressionStatement", + "src": "8577:39:7" + }, + { + "assignments": [ + 5472 + ], + "declarations": [ + { + "constant": false, + "id": 5472, + "name": "lastValue", + "nodeType": "VariableDeclaration", + "scope": 5515, + "src": "8621:17:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5471, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8621:7:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5481, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5473, + "name": "_items", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5450, + "src": "8641:6:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Items_$4986_storage_ptr", + "typeString": "struct ConverterRegistryData.Items storage pointer" + } + }, + "id": 5474, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "array", + "nodeType": "MemberAccess", + "referencedDeclaration": 4981, + "src": "8641:12:7", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 5480, + "indexExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5479, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5475, + "name": "_items", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5450, + "src": "8654:6:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Items_$4986_storage_ptr", + "typeString": "struct ConverterRegistryData.Items storage pointer" + } + }, + "id": 5476, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "array", + "nodeType": "MemberAccess", + "referencedDeclaration": 4981, + "src": "8654:12:7", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 5477, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8654:19:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 5478, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8676:1:7", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "8654:23:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8641:37:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8621:57:7" + }, + { + "expression": { + "argumentTypes": null, + "id": 5490, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5482, + "name": "_items", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5450, + "src": "8682:6:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Items_$4986_storage_ptr", + "typeString": "struct ConverterRegistryData.Items storage pointer" + } + }, + "id": 5485, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "table", + "nodeType": "MemberAccess", + "referencedDeclaration": 4985, + "src": "8682:12:7", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Item_$4978_storage_$", + "typeString": "mapping(address => struct ConverterRegistryData.Item storage ref)" + } + }, + "id": 5486, + "indexExpression": { + "argumentTypes": null, + "id": 5484, + "name": "lastValue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5472, + "src": "8695:9:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8682:23:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Item_$4978_storage", + "typeString": "struct ConverterRegistryData.Item storage ref" + } + }, + "id": 5487, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "index", + "nodeType": "MemberAccess", + "referencedDeclaration": 4977, + "src": "8682:29:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5488, + "name": "item", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5459, + "src": "8714:4:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Item_$4978_storage_ptr", + "typeString": "struct ConverterRegistryData.Item storage pointer" + } + }, + "id": 5489, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "index", + "nodeType": "MemberAccess", + "referencedDeclaration": 4977, + "src": "8714:10:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8682:42:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5491, + "nodeType": "ExpressionStatement", + "src": "8682:42:7" + }, + { + "expression": { + "argumentTypes": null, + "id": 5499, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5492, + "name": "_items", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5450, + "src": "8728:6:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Items_$4986_storage_ptr", + "typeString": "struct ConverterRegistryData.Items storage pointer" + } + }, + "id": 5496, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "array", + "nodeType": "MemberAccess", + "referencedDeclaration": 4981, + "src": "8728:12:7", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 5497, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5494, + "name": "item", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5459, + "src": "8741:4:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Item_$4978_storage_ptr", + "typeString": "struct ConverterRegistryData.Item storage pointer" + } + }, + "id": 5495, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "index", + "nodeType": "MemberAccess", + "referencedDeclaration": 4977, + "src": "8741:10:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "8728:24:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5498, + "name": "lastValue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5472, + "src": "8755:9:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "8728:36:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5500, + "nodeType": "ExpressionStatement", + "src": "8728:36:7" + }, + { + "expression": { + "argumentTypes": null, + "id": 5506, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "--", + "prefix": false, + "src": "8768:21:7", + "subExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5501, + "name": "_items", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5450, + "src": "8768:6:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Items_$4986_storage_ptr", + "typeString": "struct ConverterRegistryData.Items storage pointer" + } + }, + "id": 5504, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "array", + "nodeType": "MemberAccess", + "referencedDeclaration": 4981, + "src": "8768:12:7", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 5505, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8768:19:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5507, + "nodeType": "ExpressionStatement", + "src": "8768:21:7" + }, + { + "expression": { + "argumentTypes": null, + "id": 5512, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "delete", + "prefix": true, + "src": "8793:27:7", + "subExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5508, + "name": "_items", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5450, + "src": "8800:6:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Items_$4986_storage_ptr", + "typeString": "struct ConverterRegistryData.Items storage pointer" + } + }, + "id": 5509, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "table", + "nodeType": "MemberAccess", + "referencedDeclaration": 4985, + "src": "8800:12:7", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Item_$4978_storage_$", + "typeString": "mapping(address => struct ConverterRegistryData.Item storage ref)" + } + }, + "id": 5511, + "indexExpression": { + "argumentTypes": null, + "id": 5510, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5452, + "src": "8813:6:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "8800:20:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Item_$4978_storage", + "typeString": "struct ConverterRegistryData.Item storage ref" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5513, + "nodeType": "ExpressionStatement", + "src": "8793:27:7" + } + ] + }, + "documentation": "@dev removes an item from a list of items\n\t * @param _items list of items\n@param _value item's value", + "id": 5515, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 5455, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5452, + "src": "8521:6:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 5456, + "modifierName": { + "argumentTypes": null, + "id": 5454, + "name": "validAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22011, + "src": "8508:12:7", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_address_$", + "typeString": "modifier (address)" + } + }, + "nodeType": "ModifierInvocation", + "src": "8508:20:7" + } + ], + "name": "removeItem", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5453, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5450, + "name": "_items", + "nodeType": "VariableDeclaration", + "scope": 5515, + "src": "8461:20:7", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Items_$4986_storage_ptr", + "typeString": "struct ConverterRegistryData.Items" + }, + "typeName": { + "contractScope": null, + "id": 5449, + "name": "Items", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4986, + "src": "8461:5:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Items_$4986_storage_ptr", + "typeString": "struct ConverterRegistryData.Items" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5452, + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 5515, + "src": "8483:14:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5451, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8483:7:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8460:38:7" + }, + "payable": false, + "returnParameters": { + "id": 5457, + "nodeType": "ParameterList", + "parameters": [], + "src": "8529:0:7" + }, + "scope": 5516, + "src": "8441:383:7", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + } + ], + "scope": 5517, + "src": "677:8149:7" + } + ], + "src": "0:8827:7" + }, + "id": 7 + }, + "solidity/contracts/converter/ConverterUpgrader.sol": { + "ast": { + "absolutePath": "solidity/contracts/converter/ConverterUpgrader.sol", + "exportedSymbols": { + "ConverterUpgrader": [ + 6148 + ] + }, + "id": 6149, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 5518, + "literals": [ + "solidity", + "0.4", + ".26" + ], + "nodeType": "PragmaDirective", + "src": "0:23:8" + }, + { + "absolutePath": "solidity/contracts/converter/interfaces/IConverter.sol", + "file": "./interfaces/IConverter.sol", + "id": 5519, + "nodeType": "ImportDirective", + "scope": 6149, + "sourceUnit": 11818, + "src": "24:37:8", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "solidity/contracts/converter/interfaces/IConverterUpgrader.sol", + "file": "./interfaces/IConverterUpgrader.sol", + "id": 5520, + "nodeType": "ImportDirective", + "scope": 6149, + "sourceUnit": 12141, + "src": "62:45:8", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "solidity/contracts/converter/interfaces/IConverterFactory.sol", + "file": "./interfaces/IConverterFactory.sol", + "id": 5521, + "nodeType": "ImportDirective", + "scope": 6149, + "sourceUnit": 11872, + "src": "108:44:8", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "solidity/contracts/utility/ContractRegistryClient.sol", + "file": "../utility/ContractRegistryClient.sol", + "id": 5522, + "nodeType": "ImportDirective", + "scope": 6149, + "sourceUnit": 20933, + "src": "153:47:8", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "solidity/contracts/utility/interfaces/IWhitelist.sol", + "file": "../utility/interfaces/IWhitelist.sol", + "id": 5523, + "nodeType": "ImportDirective", + "scope": 6149, + "sourceUnit": 22324, + "src": "201:46:8", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "solidity/contracts/token/interfaces/IEtherToken.sol", + "file": "../token/interfaces/IEtherToken.sol", + "id": 5524, + "nodeType": "ImportDirective", + "scope": 6149, + "sourceUnit": 20267, + "src": "248:45:8", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "solidity/contracts/converter/types/liquidity-pool-v2/interfaces/ILiquidityPoolV2Converter.sol", + "file": "./types/liquidity-pool-v2/interfaces/ILiquidityPoolV2Converter.sol", + "id": 5525, + "nodeType": "ImportDirective", + "scope": 6149, + "sourceUnit": 16974, + "src": "294:76:8", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 5526, + "name": "IConverterUpgrader", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 12140, + "src": "1193:18:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterUpgrader_$12140", + "typeString": "contract IConverterUpgrader" + } + }, + "id": 5527, + "nodeType": "InheritanceSpecifier", + "src": "1193:18:8" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 5528, + "name": "ContractRegistryClient", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20932, + "src": "1213:22:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ContractRegistryClient_$20932", + "typeString": "contract ContractRegistryClient" + } + }, + "id": 5529, + "nodeType": "InheritanceSpecifier", + "src": "1213:22:8" + } + ], + "contractDependencies": [ + 12140, + 20932, + 21324, + 22052, + 22247 + ], + "contractKind": "contract", + "documentation": "@dev Converter Upgrader\n * The converter upgrader contract allows upgrading an older converter contract (0.4 and up)\nto the latest version.\nTo begin the upgrade process, simply execute the 'upgrade' function.\nAt the end of the process, the ownership of the newly upgraded converter will be transferred\nback to the original owner and the original owner will need to execute the 'acceptOwnership' function.\n * The address of the new converter is available in the ConverterUpgrade event.\n * Note that for older converters that don't yet have the 'upgrade' function, ownership should first\nbe transferred manually to the ConverterUpgrader contract using the 'transferOwnership' function\nand then the upgrader 'upgrade' function should be executed directly.", + "fullyImplemented": true, + "id": 6148, + "linearizedBaseContracts": [ + 6148, + 20932, + 22052, + 21324, + 22247, + 12140 + ], + "name": "ConverterUpgrader", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "id": 5532, + "name": "ETH_RESERVE_ADDRESS", + "nodeType": "VariableDeclaration", + "scope": 6148, + "src": "1239:89:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5530, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1239:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "307845656565654565656545654565654565456545656545454565656565456565656565656545456545", + "id": 5531, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1286:42:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "value": "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE" + }, + "visibility": "private" + }, + { + "constant": false, + "id": 5534, + "name": "etherToken", + "nodeType": "VariableDeclaration", + "scope": 6148, + "src": "1331:29:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IEtherToken_$20266", + "typeString": "contract IEtherToken" + }, + "typeName": { + "contractScope": null, + "id": 5533, + "name": "IEtherToken", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20266, + "src": "1331:11:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IEtherToken_$20266", + "typeString": "contract IEtherToken" + } + }, + "value": null, + "visibility": "public" + }, + { + "anonymous": false, + "documentation": "@dev triggered when the contract accept a converter ownership\n\t * @param _converter converter address\n@param _owner new owner - local upgrader address", + "id": 5540, + "name": "ConverterOwned", + "nodeType": "EventDefinition", + "parameters": { + "id": 5539, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5536, + "indexed": true, + "name": "_converter", + "nodeType": "VariableDeclaration", + "scope": 5540, + "src": "1566:26:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5535, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1566:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5538, + "indexed": true, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 5540, + "src": "1594:22:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5537, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1594:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1565:52:8" + }, + "src": "1545:73:8" + }, + { + "anonymous": false, + "documentation": "@dev triggered when the upgrading process is done\n\t * @param _oldConverter old converter address\n@param _newConverter new converter address", + "id": 5546, + "name": "ConverterUpgrade", + "nodeType": "EventDefinition", + "parameters": { + "id": 5545, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5542, + "indexed": true, + "name": "_oldConverter", + "nodeType": "VariableDeclaration", + "scope": 5546, + "src": "1812:29:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5541, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1812:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5544, + "indexed": true, + "name": "_newConverter", + "nodeType": "VariableDeclaration", + "scope": 5546, + "src": "1843:29:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5543, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1843:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1811:62:8" + }, + "src": "1789:85:8" + }, + { + "body": { + "id": 5560, + "nodeType": "Block", + "src": "2116:32:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5558, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5556, + "name": "etherToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5534, + "src": "2120:10:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IEtherToken_$20266", + "typeString": "contract IEtherToken" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5557, + "name": "_etherToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5550, + "src": "2133:11:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IEtherToken_$20266", + "typeString": "contract IEtherToken" + } + }, + "src": "2120:24:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IEtherToken_$20266", + "typeString": "contract IEtherToken" + } + }, + "id": 5559, + "nodeType": "ExpressionStatement", + "src": "2120:24:8" + } + ] + }, + "documentation": "@dev initializes a new ConverterUpgrader instance\n\t * @param _registry address of a contract registry contract", + "id": 5561, + "implemented": true, + "isConstructor": true, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 5553, + "name": "_registry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5548, + "src": "2105:9:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IContractRegistry_$22220", + "typeString": "contract IContractRegistry" + } + } + ], + "id": 5554, + "modifierName": { + "argumentTypes": null, + "id": 5552, + "name": "ContractRegistryClient", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20932, + "src": "2082:22:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ContractRegistryClient_$20932_$", + "typeString": "type(contract ContractRegistryClient)" + } + }, + "nodeType": "ModifierInvocation", + "src": "2082:33:8" + } + ], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5551, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5548, + "name": "_registry", + "nodeType": "VariableDeclaration", + "scope": 5561, + "src": "2021:27:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IContractRegistry_$22220", + "typeString": "contract IContractRegistry" + }, + "typeName": { + "contractScope": null, + "id": 5547, + "name": "IContractRegistry", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 22220, + "src": "2021:17:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IContractRegistry_$22220", + "typeString": "contract IContractRegistry" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5550, + "name": "_etherToken", + "nodeType": "VariableDeclaration", + "scope": 5561, + "src": "2050:23:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IEtherToken_$20266", + "typeString": "contract IEtherToken" + }, + "typeName": { + "contractScope": null, + "id": 5549, + "name": "IEtherToken", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20266, + "src": "2050:11:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IEtherToken_$20266", + "typeString": "contract IEtherToken" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2020:54:8" + }, + "payable": false, + "returnParameters": { + "id": 5555, + "nodeType": "ParameterList", + "parameters": [], + "src": "2116:0:8" + }, + "scope": 6148, + "src": "2009:139:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 5574, + "nodeType": "Block", + "src": "2571:52:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5568, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22338, + "src": "2597:3:8", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5569, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2597:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 5567, + "name": "IConverter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11817, + "src": "2586:10:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IConverter_$11817_$", + "typeString": "type(contract IConverter)" + } + }, + "id": 5570, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2586:22:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + { + "argumentTypes": null, + "id": 5571, + "name": "_version", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5563, + "src": "2610:8:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 5566, + "name": "upgradeOld", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5701, + "src": "2575:10:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IConverter_$11817_$_t_bytes32_$returns$__$", + "typeString": "function (contract IConverter,bytes32)" + } + }, + "id": 5572, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2575:44:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5573, + "nodeType": "ExpressionStatement", + "src": "2575:44:8" + } + ] + }, + "documentation": "@dev upgrades an old converter to the latest version\nwill throw if ownership wasn't transferred to the upgrader before calling this function.\nownership of the new converter will be transferred back to the original owner.\nfires the ConverterUpgrade event upon success.\ncan only be called by a converter\n\t * @param _version old converter version", + "id": 5575, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "upgrade", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5564, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5563, + "name": "_version", + "nodeType": "VariableDeclaration", + "scope": 5575, + "src": "2546:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 5562, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2546:7:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2545:18:8" + }, + "payable": false, + "returnParameters": { + "id": 5565, + "nodeType": "ParameterList", + "parameters": [], + "src": "2571:0:8" + }, + "scope": 6148, + "src": "2529:94:8", + "stateMutability": "nonpayable", + "superFunction": 12134, + "visibility": "public" + }, + { + "body": { + "id": 5590, + "nodeType": "Block", + "src": "3045:61:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5582, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22338, + "src": "3071:3:8", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5583, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3071:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 5581, + "name": "IConverter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11817, + "src": "3060:10:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IConverter_$11817_$", + "typeString": "type(contract IConverter)" + } + }, + "id": 5584, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3060:22:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5586, + "name": "_version", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5577, + "src": "3092:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + ], + "id": 5585, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3084:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": "bytes32" + }, + "id": 5587, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3084:17:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 5580, + "name": "upgradeOld", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5701, + "src": "3049:10:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IConverter_$11817_$_t_bytes32_$returns$__$", + "typeString": "function (contract IConverter,bytes32)" + } + }, + "id": 5588, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3049:53:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5589, + "nodeType": "ExpressionStatement", + "src": "3049:53:8" + } + ] + }, + "documentation": "@dev upgrades an old converter to the latest version\nwill throw if ownership wasn't transferred to the upgrader before calling this function.\nownership of the new converter will be transferred back to the original owner.\nfires the ConverterUpgrade event upon success.\ncan only be called by a converter\n\t * @param _version old converter version", + "id": 5591, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "upgrade", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5578, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5577, + "name": "_version", + "nodeType": "VariableDeclaration", + "scope": 5591, + "src": "3021:15:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 5576, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "3021:6:8", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3020:17:8" + }, + "payable": false, + "returnParameters": { + "id": 5579, + "nodeType": "ParameterList", + "parameters": [], + "src": "3045:0:8" + }, + "scope": 6148, + "src": "3004:102:8", + "stateMutability": "nonpayable", + "superFunction": 12139, + "visibility": "public" + }, + { + "body": { + "id": 5700, + "nodeType": "Block", + "src": "3576:888:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5598, + "name": "_version", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5595, + "src": "3580:8:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 5599, + "nodeType": "ExpressionStatement", + "src": "3580:8:8" + }, + { + "assignments": [ + 5601 + ], + "declarations": [ + { + "constant": false, + "id": 5601, + "name": "converter", + "nodeType": "VariableDeclaration", + "scope": 5701, + "src": "3592:20:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + }, + "typeName": { + "contractScope": null, + "id": 5600, + "name": "IConverter", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11817, + "src": "3592:10:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5605, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5603, + "name": "_converter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5593, + "src": "3626:10:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + ], + "id": 5602, + "name": "IConverter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11817, + "src": "3615:10:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IConverter_$11817_$", + "typeString": "type(contract IConverter)" + } + }, + "id": 5604, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3615:22:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3592:45:8" + }, + { + "assignments": [ + 5607 + ], + "declarations": [ + { + "constant": false, + "id": 5607, + "name": "prevOwner", + "nodeType": "VariableDeclaration", + "scope": 5701, + "src": "3641:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5606, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3641:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5611, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 5608, + "name": "converter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5601, + "src": "3661:9:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + "id": 5609, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "owner", + "nodeType": "MemberAccess", + "referencedDeclaration": 22238, + "src": "3661:15:8", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", + "typeString": "function () view external returns (address)" + } + }, + "id": 5610, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3661:17:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3641:37:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5613, + "name": "converter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5601, + "src": "3707:9:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + ], + "id": 5612, + "name": "acceptConverterOwnership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5717, + "src": "3682:24:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IConverter_$11817_$returns$__$", + "typeString": "function (contract IConverter)" + } + }, + "id": 5614, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3682:35:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5615, + "nodeType": "ExpressionStatement", + "src": "3682:35:8" + }, + { + "assignments": [ + 5617 + ], + "declarations": [ + { + "constant": false, + "id": 5617, + "name": "newConverter", + "nodeType": "VariableDeclaration", + "scope": 5701, + "src": "3721:23:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + }, + "typeName": { + "contractScope": null, + "id": 5616, + "name": "IConverter", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11817, + "src": "3721:10:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5621, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5619, + "name": "converter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5601, + "src": "3763:9:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + ], + "id": 5618, + "name": "createConverter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5790, + "src": "3747:15:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IConverter_$11817_$returns$_t_contract$_IConverter_$11817_$", + "typeString": "function (contract IConverter) returns (contract IConverter)" + } + }, + "id": 5620, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3747:26:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3721:52:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5623, + "name": "converter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5601, + "src": "3790:9:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + { + "argumentTypes": null, + "id": 5624, + "name": "newConverter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5617, + "src": "3801:12:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + }, + { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + ], + "id": 5622, + "name": "copyReserves", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5870, + "src": "3777:12:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IConverter_$11817_$_t_contract$_IConverter_$11817_$returns$__$", + "typeString": "function (contract IConverter,contract IConverter)" + } + }, + "id": 5625, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3777:37:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5626, + "nodeType": "ExpressionStatement", + "src": "3777:37:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5628, + "name": "converter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5601, + "src": "3836:9:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + { + "argumentTypes": null, + "id": 5629, + "name": "newConverter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5617, + "src": "3847:12:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + }, + { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + ], + "id": 5627, + "name": "copyConversionFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5890, + "src": "3818:17:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IConverter_$11817_$_t_contract$_IConverter_$11817_$returns$__$", + "typeString": "function (contract IConverter,contract IConverter)" + } + }, + "id": 5630, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3818:42:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5631, + "nodeType": "ExpressionStatement", + "src": "3818:42:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5633, + "name": "converter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5601, + "src": "3888:9:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + { + "argumentTypes": null, + "id": 5634, + "name": "newConverter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5617, + "src": "3899:12:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + }, + { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + ], + "id": 5632, + "name": "transferReserveBalances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5996, + "src": "3864:23:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IConverter_$11817_$_t_contract$_IConverter_$11817_$returns$__$", + "typeString": "function (contract IConverter,contract IConverter)" + } + }, + "id": 5635, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3864:48:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5636, + "nodeType": "ExpressionStatement", + "src": "3864:48:8" + }, + { + "assignments": [ + 5638 + ], + "declarations": [ + { + "constant": false, + "id": 5638, + "name": "anchor", + "nodeType": "VariableDeclaration", + "scope": 5701, + "src": "3916:23:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + }, + "typeName": { + "contractScope": null, + "id": 5637, + "name": "IConverterAnchor", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11826, + "src": "3916:16:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5642, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 5639, + "name": "converter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5601, + "src": "3942:9:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + "id": 5640, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "token", + "nodeType": "MemberAccess", + "referencedDeclaration": 11774, + "src": "3942:15:8", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_IConverterAnchor_$11826_$", + "typeString": "function () view external returns (contract IConverterAnchor)" + } + }, + "id": 5641, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3942:17:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3916:43:8" + }, + { + "assignments": [ + 5644 + ], + "declarations": [ + { + "constant": false, + "id": 5644, + "name": "activate", + "nodeType": "VariableDeclaration", + "scope": 5701, + "src": "4025:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5643, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4025:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5652, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5651, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5646, + "name": "converter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5601, + "src": "4064:9:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + ], + "id": 5645, + "name": "isV28OrHigherConverter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6147, + "src": "4041:22:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_contract$_IConverter_$11817_$returns$_t_bool_$", + "typeString": "function (contract IConverter) view returns (bool)" + } + }, + "id": 5647, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4041:33:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 5648, + "name": "converter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5601, + "src": "4078:9:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + "id": 5649, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "isActive", + "nodeType": "MemberAccess", + "referencedDeclaration": 11668, + "src": "4078:18:8", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_bool_$", + "typeString": "function () view external returns (bool)" + } + }, + "id": 5650, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4078:20:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "4041:57:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4025:73:8" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5659, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 5653, + "name": "anchor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5638, + "src": "4107:6:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + }, + "id": 5654, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "owner", + "nodeType": "MemberAccess", + "referencedDeclaration": 22238, + "src": "4107:12:8", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", + "typeString": "function () view external returns (address)" + } + }, + "id": 5655, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4107:14:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5657, + "name": "converter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5601, + "src": "4133:9:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + ], + "id": 5656, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4125:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5658, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4125:18:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "4107:36:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 5672, + "nodeType": "IfStatement", + "src": "4103:139:8", + "trueBody": { + "id": 5671, + "nodeType": "Block", + "src": "4145:97:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5663, + "name": "newConverter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5617, + "src": "4183:12:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + ], + "expression": { + "argumentTypes": null, + "id": 5660, + "name": "converter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5601, + "src": "4150:9:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + "id": 5662, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transferTokenOwnership", + "nodeType": "MemberAccess", + "referencedDeclaration": 11779, + "src": "4150:32:8", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$", + "typeString": "function (address) external" + } + }, + "id": 5664, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4150:46:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5665, + "nodeType": "ExpressionStatement", + "src": "4150:46:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 5666, + "name": "newConverter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5617, + "src": "4201:12:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + "id": 5668, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "acceptAnchorOwnership", + "nodeType": "MemberAccess", + "referencedDeclaration": 11738, + "src": "4201:34:8", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$__$returns$__$", + "typeString": "function () external" + } + }, + "id": 5669, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4201:36:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5670, + "nodeType": "ExpressionStatement", + "src": "4201:36:8" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5674, + "name": "converter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5601, + "src": "4269:9:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + { + "argumentTypes": null, + "id": 5675, + "name": "newConverter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5617, + "src": "4280:12:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + { + "argumentTypes": null, + "id": 5676, + "name": "activate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5644, + "src": "4294:8:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + }, + { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5673, + "name": "handleTypeSpecificData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6107, + "src": "4246:22:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IConverter_$11817_$_t_contract$_IConverter_$11817_$_t_bool_$returns$__$", + "typeString": "function (contract IConverter,contract IConverter,bool)" + } + }, + "id": 5677, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4246:57:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5678, + "nodeType": "ExpressionStatement", + "src": "4246:57:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5682, + "name": "prevOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5607, + "src": "4336:9:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 5679, + "name": "converter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5601, + "src": "4308:9:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + "id": 5681, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transferOwnership", + "nodeType": "MemberAccess", + "referencedDeclaration": 22243, + "src": "4308:27:8", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$", + "typeString": "function (address) external" + } + }, + "id": 5683, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4308:38:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5684, + "nodeType": "ExpressionStatement", + "src": "4308:38:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5688, + "name": "prevOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5607, + "src": "4381:9:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 5685, + "name": "newConverter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5617, + "src": "4350:12:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + "id": 5687, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transferOwnership", + "nodeType": "MemberAccess", + "referencedDeclaration": 22243, + "src": "4350:30:8", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$", + "typeString": "function (address) external" + } + }, + "id": 5689, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4350:41:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5690, + "nodeType": "ExpressionStatement", + "src": "4350:41:8" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5693, + "name": "converter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5601, + "src": "4426:9:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + ], + "id": 5692, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4418:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5694, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4418:18:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5696, + "name": "newConverter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5617, + "src": "4446:12:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + ], + "id": 5695, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4438:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5697, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4438:21:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 5691, + "name": "ConverterUpgrade", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5546, + "src": "4401:16:8", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", + "typeString": "function (address,address)" + } + }, + "id": 5698, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4401:59:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5699, + "nodeType": "EmitStatement", + "src": "4396:64:8" + } + ] + }, + "documentation": "@dev upgrades an old converter to the latest version\nwill throw if ownership wasn't transferred to the upgrader before calling this function.\nownership of the new converter will be transferred back to the original owner.\nfires the ConverterUpgrade event upon success.\n\t * @param _converter old converter contract address\n@param _version old converter version", + "id": 5701, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "upgradeOld", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5596, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5593, + "name": "_converter", + "nodeType": "VariableDeclaration", + "scope": 5701, + "src": "3528:21:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + }, + "typeName": { + "contractScope": null, + "id": 5592, + "name": "IConverter", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11817, + "src": "3528:10:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5595, + "name": "_version", + "nodeType": "VariableDeclaration", + "scope": 5701, + "src": "3551:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 5594, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3551:7:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3527:41:8" + }, + "payable": false, + "returnParameters": { + "id": 5597, + "nodeType": "ParameterList", + "parameters": [], + "src": "3576:0:8" + }, + "scope": 6148, + "src": "3508:956:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 5716, + "nodeType": "Block", + "src": "4877:83:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 5706, + "name": "_oldConverter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5703, + "src": "4881:13:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + "id": 5708, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "acceptOwnership", + "nodeType": "MemberAccess", + "referencedDeclaration": 22246, + "src": "4881:29:8", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$__$returns$__$", + "typeString": "function () external" + } + }, + "id": 5709, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4881:31:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5710, + "nodeType": "ExpressionStatement", + "src": "4881:31:8" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5712, + "name": "_oldConverter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5703, + "src": "4936:13:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + { + "argumentTypes": null, + "id": 5713, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22429, + "src": "4951:4:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ConverterUpgrader_$6148", + "typeString": "contract ConverterUpgrader" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + }, + { + "typeIdentifier": "t_contract$_ConverterUpgrader_$6148", + "typeString": "contract ConverterUpgrader" + } + ], + "id": 5711, + "name": "ConverterOwned", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5540, + "src": "4921:14:8", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", + "typeString": "function (address,address)" + } + }, + "id": 5714, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4921:35:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5715, + "nodeType": "EmitStatement", + "src": "4916:40:8" + } + ] + }, + "documentation": "@dev the first step when upgrading a converter is to transfer the ownership to the local contract.\nthe upgrader contract then needs to accept the ownership transfer before initiating\nthe upgrade process.\nfires the ConverterOwned event upon success\n\t * @param _oldConverter converter to accept ownership of", + "id": 5717, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "acceptConverterOwnership", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5704, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5703, + "name": "_oldConverter", + "nodeType": "VariableDeclaration", + "scope": 5717, + "src": "4843:24:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + }, + "typeName": { + "contractScope": null, + "id": 5702, + "name": "IConverter", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11817, + "src": "4843:10:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4842:26:8" + }, + "payable": false, + "returnParameters": { + "id": 5705, + "nodeType": "ParameterList", + "parameters": [], + "src": "4877:0:8" + }, + "scope": 6148, + "src": "4809:151:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "private" + }, + { + "body": { + "id": 5789, + "nodeType": "Block", + "src": "5334:792:8", + "statements": [ + { + "assignments": [ + 5725 + ], + "declarations": [ + { + "constant": false, + "id": 5725, + "name": "anchor", + "nodeType": "VariableDeclaration", + "scope": 5790, + "src": "5338:23:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + }, + "typeName": { + "contractScope": null, + "id": 5724, + "name": "IConverterAnchor", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11826, + "src": "5338:16:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5729, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 5726, + "name": "_oldConverter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5719, + "src": "5364:13:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + "id": 5727, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "token", + "nodeType": "MemberAccess", + "referencedDeclaration": 11774, + "src": "5364:19:8", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_IConverterAnchor_$11826_$", + "typeString": "function () view external returns (contract IConverterAnchor)" + } + }, + "id": 5728, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5364:21:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5338:47:8" + }, + { + "assignments": [ + 5731 + ], + "declarations": [ + { + "constant": false, + "id": 5731, + "name": "maxConversionFee", + "nodeType": "VariableDeclaration", + "scope": 5790, + "src": "5389:23:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 5730, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "5389:6:8", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5735, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 5732, + "name": "_oldConverter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5719, + "src": "5415:13:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + "id": 5733, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "maxConversionFee", + "nodeType": "MemberAccess", + "referencedDeclaration": 11720, + "src": "5415:30:8", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint32_$", + "typeString": "function () view external returns (uint32)" + } + }, + "id": 5734, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5415:32:8", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5389:58:8" + }, + { + "assignments": [ + 5737 + ], + "declarations": [ + { + "constant": false, + "id": 5737, + "name": "reserveTokenCount", + "nodeType": "VariableDeclaration", + "scope": 5790, + "src": "5451:24:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 5736, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "5451:6:8", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5741, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 5738, + "name": "_oldConverter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5719, + "src": "5478:13:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + "id": 5739, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "connectorTokenCount", + "nodeType": "MemberAccess", + "referencedDeclaration": 11816, + "src": "5478:33:8", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint16_$", + "typeString": "function () view external returns (uint16)" + } + }, + "id": 5740, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5478:35:8", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5451:62:8" + }, + { + "assignments": [ + 5743 + ], + "declarations": [ + { + "constant": false, + "id": 5743, + "name": "newType", + "nodeType": "VariableDeclaration", + "scope": 5790, + "src": "5552:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 5742, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "5552:6:8", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5745, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 5744, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5569:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "5552:18:8" + }, + { + "condition": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5747, + "name": "_oldConverter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5719, + "src": "5661:13:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + ], + "id": 5746, + "name": "isV28OrHigherConverter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6147, + "src": "5638:22:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_contract$_IConverter_$11817_$returns$_t_bool_$", + "typeString": "function (contract IConverter) view returns (bool)" + } + }, + "id": 5748, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5638:37:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "id": 5757, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5755, + "name": "reserveTokenCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5737, + "src": "5843:17:8", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 5756, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5863:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "5843:21:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 5762, + "nodeType": "IfStatement", + "src": "5839:38:8", + "trueBody": { + "expression": { + "argumentTypes": null, + "id": 5760, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5758, + "name": "newType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5743, + "src": "5866:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "31", + "id": 5759, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5876:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "5866:11:8", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "id": 5761, + "nodeType": "ExpressionStatement", + "src": "5866:11:8" + } + }, + "id": 5763, + "nodeType": "IfStatement", + "src": "5634:243:8", + "trueBody": { + "expression": { + "argumentTypes": null, + "id": 5753, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5749, + "name": "newType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5743, + "src": "5680:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 5750, + "name": "_oldConverter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5719, + "src": "5690:13:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + "id": 5751, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "converterType", + "nodeType": "MemberAccess", + "referencedDeclaration": 11655, + "src": "5690:27:8", + "typeDescriptions": { + "typeIdentifier": "t_function_external_pure$__$returns$_t_uint16_$", + "typeString": "function () pure external returns (uint16)" + } + }, + "id": 5752, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5690:29:8", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "src": "5680:39:8", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "id": 5754, + "nodeType": "ExpressionStatement", + "src": "5680:39:8" + } + }, + { + "assignments": [ + 5765 + ], + "declarations": [ + { + "constant": false, + "id": 5765, + "name": "converterFactory", + "nodeType": "VariableDeclaration", + "scope": 5790, + "src": "5882:34:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterFactory_$11871", + "typeString": "contract IConverterFactory" + }, + "typeName": { + "contractScope": null, + "id": 5764, + "name": "IConverterFactory", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11871, + "src": "5882:17:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterFactory_$11871", + "typeString": "contract IConverterFactory" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5771, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5768, + "name": "CONVERTER_FACTORY", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20761, + "src": "5947:17:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 5767, + "name": "addressOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20931, + "src": "5937:9:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$", + "typeString": "function (bytes32) view returns (address)" + } + }, + "id": 5769, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5937:28:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 5766, + "name": "IConverterFactory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11871, + "src": "5919:17:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IConverterFactory_$11871_$", + "typeString": "type(contract IConverterFactory)" + } + }, + "id": 5770, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5919:47:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterFactory_$11871", + "typeString": "contract IConverterFactory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5882:84:8" + }, + { + "assignments": [ + 5773 + ], + "declarations": [ + { + "constant": false, + "id": 5773, + "name": "converter", + "nodeType": "VariableDeclaration", + "scope": 5790, + "src": "5970:20:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + }, + "typeName": { + "contractScope": null, + "id": 5772, + "name": "IConverter", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11817, + "src": "5970:10:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5781, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5776, + "name": "newType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5743, + "src": "6026:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + { + "argumentTypes": null, + "id": 5777, + "name": "anchor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5725, + "src": "6035:6:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + }, + { + "argumentTypes": null, + "id": 5778, + "name": "registry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20787, + "src": "6043:8:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IContractRegistry_$22220", + "typeString": "contract IContractRegistry" + } + }, + { + "argumentTypes": null, + "id": 5779, + "name": "maxConversionFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5731, + "src": "6053:16:8", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + }, + { + "typeIdentifier": "t_contract$_IContractRegistry_$22220", + "typeString": "contract IContractRegistry" + }, + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + ], + "expression": { + "argumentTypes": null, + "id": 5774, + "name": "converterFactory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5765, + "src": "5993:16:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterFactory_$11871", + "typeString": "contract IConverterFactory" + } + }, + "id": 5775, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "createConverter", + "nodeType": "MemberAccess", + "referencedDeclaration": 11858, + "src": "5993:32:8", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_uint16_$_t_contract$_IConverterAnchor_$11826_$_t_contract$_IContractRegistry_$22220_$_t_uint32_$returns$_t_contract$_IConverter_$11817_$", + "typeString": "function (uint16,contract IConverterAnchor,contract IContractRegistry,uint32) external returns (contract IConverter)" + } + }, + "id": 5780, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5993:77:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5970:100:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 5782, + "name": "converter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5773, + "src": "6075:9:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + "id": 5784, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "acceptOwnership", + "nodeType": "MemberAccess", + "referencedDeclaration": 22246, + "src": "6075:25:8", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$__$returns$__$", + "typeString": "function () external" + } + }, + "id": 5785, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6075:27:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5786, + "nodeType": "ExpressionStatement", + "src": "6075:27:8" + }, + { + "expression": { + "argumentTypes": null, + "id": 5787, + "name": "converter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5773, + "src": "6113:9:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + "functionReturnParameters": 5723, + "id": 5788, + "nodeType": "Return", + "src": "6106:16:8" + } + ] + }, + "documentation": "@dev creates a new converter with same basic data as the original old converter\nthe newly created converter will have no reserves at this step.\n\t * @param _oldConverter old converter contract address\n\t * @return the new converter new converter contract address", + "id": 5790, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "createConverter", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5720, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5719, + "name": "_oldConverter", + "nodeType": "VariableDeclaration", + "scope": 5790, + "src": "5279:24:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + }, + "typeName": { + "contractScope": null, + "id": 5718, + "name": "IConverter", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11817, + "src": "5279:10:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5278:26:8" + }, + "payable": false, + "returnParameters": { + "id": 5723, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5722, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5790, + "src": "5322:10:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + }, + "typeName": { + "contractScope": null, + "id": 5721, + "name": "IConverter", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11817, + "src": "5322:10:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5321:12:8" + }, + "scope": 6148, + "src": "5254:872:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "private" + }, + { + "body": { + "id": 5869, + "nodeType": "Block", + "src": "6516:669:8", + "statements": [ + { + "assignments": [ + 5798 + ], + "declarations": [ + { + "constant": false, + "id": 5798, + "name": "reserveTokenCount", + "nodeType": "VariableDeclaration", + "scope": 5870, + "src": "6520:24:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 5797, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "6520:6:8", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5802, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 5799, + "name": "_oldConverter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5792, + "src": "6547:13:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + "id": 5800, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "connectorTokenCount", + "nodeType": "MemberAccess", + "referencedDeclaration": 11816, + "src": "6547:33:8", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint16_$", + "typeString": "function () view external returns (uint16)" + } + }, + "id": 5801, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6547:35:8", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6520:62:8" + }, + { + "body": { + "id": 5867, + "nodeType": "Block", + "src": "6634:548:8", + "statements": [ + { + "assignments": [ + 5814 + ], + "declarations": [ + { + "constant": false, + "id": 5814, + "name": "reserveAddress", + "nodeType": "VariableDeclaration", + "scope": 5870, + "src": "6639:22:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5813, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6639:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5819, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5817, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5804, + "src": "6694:1:8", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + ], + "expression": { + "argumentTypes": null, + "id": 5815, + "name": "_oldConverter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5792, + "src": "6664:13:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + "id": 5816, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "connectorTokens", + "nodeType": "MemberAccess", + "referencedDeclaration": 11811, + "src": "6664:29:8", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_contract$_IERC20Token_$20240_$", + "typeString": "function (uint256) view external returns (contract IERC20Token)" + } + }, + "id": 5818, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6664:32:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6639:57:8" + }, + { + "assignments": [ + null, + 5821, + null, + null, + null + ], + "declarations": [ + null, + { + "constant": false, + "id": 5821, + "name": "weight", + "nodeType": "VariableDeclaration", + "scope": 5870, + "src": "6704:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 5820, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "6704:6:8", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + }, + null, + null, + null + ], + "id": 5826, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5824, + "name": "reserveAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5814, + "src": "6752:14:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 5822, + "name": "_oldConverter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5792, + "src": "6727:13:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + "id": 5823, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "connectors", + "nodeType": "MemberAccess", + "referencedDeclaration": 11797, + "src": "6727:24:8", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$_t_uint32_$_t_bool_$_t_bool_$_t_bool_$", + "typeString": "function (address) view external returns (uint256,uint32,bool,bool,bool)" + } + }, + "id": 5825, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6727:40:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint32_$_t_bool_$_t_bool_$_t_bool_$", + "typeString": "tuple(uint256,uint32,bool,bool,bool)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6701:66:8" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5829, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5827, + "name": "reserveAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5814, + "src": "6797:14:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 5828, + "name": "ETH_RESERVE_ADDRESS", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5532, + "src": "6815:19:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "6797:37:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5844, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5840, + "name": "reserveAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5814, + "src": "6953:14:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5842, + "name": "etherToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5534, + "src": "6979:10:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IEtherToken_$20266", + "typeString": "contract IEtherToken" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IEtherToken_$20266", + "typeString": "contract IEtherToken" + } + ], + "id": 5841, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6971:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5843, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6971:19:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "6953:37:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 5864, + "nodeType": "Block", + "src": "7105:73:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5859, + "name": "reserveAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5814, + "src": "7148:14:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 5858, + "name": "IERC20Token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20240, + "src": "7136:11:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20Token_$20240_$", + "typeString": "type(contract IERC20Token)" + } + }, + "id": 5860, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7136:27:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + { + "argumentTypes": null, + "id": 5861, + "name": "weight", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5821, + "src": "7165:6:8", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + ], + "expression": { + "argumentTypes": null, + "id": 5855, + "name": "_newConverter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5794, + "src": "7111:13:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + "id": 5857, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "addReserve", + "nodeType": "MemberAccess", + "referencedDeclaration": 11769, + "src": "7111:24:8", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_contract$_IERC20Token_$20240_$_t_uint32_$returns$__$", + "typeString": "function (contract IERC20Token,uint32) external" + } + }, + "id": 5862, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7111:61:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5863, + "nodeType": "ExpressionStatement", + "src": "7111:61:8" + } + ] + }, + "id": 5865, + "nodeType": "IfStatement", + "src": "6949:229:8", + "trueBody": { + "id": 5854, + "nodeType": "Block", + "src": "6992:78:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5849, + "name": "ETH_RESERVE_ADDRESS", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5532, + "src": "7035:19:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 5848, + "name": "IERC20Token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20240, + "src": "7023:11:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20Token_$20240_$", + "typeString": "type(contract IERC20Token)" + } + }, + "id": 5850, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7023:32:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + { + "argumentTypes": null, + "id": 5851, + "name": "weight", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5821, + "src": "7057:6:8", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + ], + "expression": { + "argumentTypes": null, + "id": 5845, + "name": "_newConverter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5794, + "src": "6998:13:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + "id": 5847, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "addReserve", + "nodeType": "MemberAccess", + "referencedDeclaration": 11769, + "src": "6998:24:8", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_contract$_IERC20Token_$20240_$_t_uint32_$returns$__$", + "typeString": "function (contract IERC20Token,uint32) external" + } + }, + "id": 5852, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6998:66:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5853, + "nodeType": "ExpressionStatement", + "src": "6998:66:8" + } + ] + } + }, + "id": 5866, + "nodeType": "IfStatement", + "src": "6793:385:8", + "trueBody": { + "id": 5839, + "nodeType": "Block", + "src": "6836:78:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5834, + "name": "ETH_RESERVE_ADDRESS", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5532, + "src": "6879:19:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 5833, + "name": "IERC20Token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20240, + "src": "6867:11:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20Token_$20240_$", + "typeString": "type(contract IERC20Token)" + } + }, + "id": 5835, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6867:32:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + { + "argumentTypes": null, + "id": 5836, + "name": "weight", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5821, + "src": "6901:6:8", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + ], + "expression": { + "argumentTypes": null, + "id": 5830, + "name": "_newConverter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5794, + "src": "6842:13:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + "id": 5832, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "addReserve", + "nodeType": "MemberAccess", + "referencedDeclaration": 11769, + "src": "6842:24:8", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_contract$_IERC20Token_$20240_$_t_uint32_$returns$__$", + "typeString": "function (contract IERC20Token,uint32) external" + } + }, + "id": 5837, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6842:66:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5838, + "nodeType": "ExpressionStatement", + "src": "6842:66:8" + } + ] + } + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "id": 5809, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5807, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5804, + "src": "6606:1:8", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 5808, + "name": "reserveTokenCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5798, + "src": "6610:17:8", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "src": "6606:21:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5868, + "initializationExpression": { + "assignments": [ + 5804 + ], + "declarations": [ + { + "constant": false, + "id": 5804, + "name": "i", + "nodeType": "VariableDeclaration", + "scope": 5870, + "src": "6592:8:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 5803, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "6592:6:8", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5806, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 5805, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6603:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "6592:12:8" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 5811, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "6629:3:8", + "subExpression": { + "argumentTypes": null, + "id": 5810, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5804, + "src": "6629:1:8", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "id": 5812, + "nodeType": "ExpressionStatement", + "src": "6629:3:8" + }, + "nodeType": "ForStatement", + "src": "6587:595:8" + } + ] + }, + "documentation": "@dev copies the reserves from the old converter to the new one.\nnote that this will not work for an unlimited number of reserves due to block gas limit constraints.\n\t * @param _oldConverter old converter contract address\n@param _newConverter new converter contract address", + "id": 5870, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "copyReserves", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5795, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5792, + "name": "_oldConverter", + "nodeType": "VariableDeclaration", + "scope": 5870, + "src": "6456:24:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + }, + "typeName": { + "contractScope": null, + "id": 5791, + "name": "IConverter", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11817, + "src": "6456:10:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5794, + "name": "_newConverter", + "nodeType": "VariableDeclaration", + "scope": 5870, + "src": "6482:24:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + }, + "typeName": { + "contractScope": null, + "id": 5793, + "name": "IConverter", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11817, + "src": "6482:10:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6455:52:8" + }, + "payable": false, + "returnParameters": { + "id": 5796, + "nodeType": "ParameterList", + "parameters": [], + "src": "6516:0:8" + }, + "scope": 6148, + "src": "6434:751:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "private" + }, + { + "body": { + "id": 5889, + "nodeType": "Block", + "src": "7480:109:8", + "statements": [ + { + "assignments": [ + 5878 + ], + "declarations": [ + { + "constant": false, + "id": 5878, + "name": "conversionFee", + "nodeType": "VariableDeclaration", + "scope": 5890, + "src": "7484:20:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 5877, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "7484:6:8", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5882, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 5879, + "name": "_oldConverter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5872, + "src": "7507:13:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + "id": 5880, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "conversionFee", + "nodeType": "MemberAccess", + "referencedDeclaration": 11712, + "src": "7507:27:8", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint32_$", + "typeString": "function () view external returns (uint32)" + } + }, + "id": 5881, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7507:29:8", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7484:52:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5886, + "name": "conversionFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5878, + "src": "7571:13:8", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + ], + "expression": { + "argumentTypes": null, + "id": 5883, + "name": "_newConverter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5874, + "src": "7540:13:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + "id": 5885, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "setConversionFee", + "nodeType": "MemberAccess", + "referencedDeclaration": 11743, + "src": "7540:30:8", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_uint32_$returns$__$", + "typeString": "function (uint32) external" + } + }, + "id": 5887, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7540:45:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5888, + "nodeType": "ExpressionStatement", + "src": "7540:45:8" + } + ] + }, + "documentation": "@dev copies the conversion fee from the old converter to the new one\n\t * @param _oldConverter old converter contract address\n@param _newConverter new converter contract address", + "id": 5890, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "copyConversionFee", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5875, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5872, + "name": "_oldConverter", + "nodeType": "VariableDeclaration", + "scope": 5890, + "src": "7420:24:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + }, + "typeName": { + "contractScope": null, + "id": 5871, + "name": "IConverter", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11817, + "src": "7420:10:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5874, + "name": "_newConverter", + "nodeType": "VariableDeclaration", + "scope": 5890, + "src": "7446:24:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + }, + "typeName": { + "contractScope": null, + "id": 5873, + "name": "IConverter", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11817, + "src": "7446:10:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "7419:52:8" + }, + "payable": false, + "returnParameters": { + "id": 5876, + "nodeType": "ParameterList", + "parameters": [], + "src": "7480:0:8" + }, + "scope": 6148, + "src": "7393:196:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "private" + }, + { + "body": { + "id": 5995, + "nodeType": "Block", + "src": "8097:868:8", + "statements": [ + { + "assignments": [], + "declarations": [ + { + "constant": false, + "id": 5898, + "name": "reserveBalance", + "nodeType": "VariableDeclaration", + "scope": 5996, + "src": "8101:22:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5897, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8101:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5899, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "8101:22:8" + }, + { + "assignments": [ + 5901 + ], + "declarations": [ + { + "constant": false, + "id": 5901, + "name": "reserveTokenCount", + "nodeType": "VariableDeclaration", + "scope": 5996, + "src": "8127:24:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 5900, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "8127:6:8", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5905, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 5902, + "name": "_oldConverter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5892, + "src": "8154:13:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + "id": 5903, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "connectorTokenCount", + "nodeType": "MemberAccess", + "referencedDeclaration": 11816, + "src": "8154:33:8", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint16_$", + "typeString": "function () view external returns (uint16)" + } + }, + "id": 5904, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8154:35:8", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8127:62:8" + }, + { + "body": { + "id": 5993, + "nodeType": "Block", + "src": "8241:721:8", + "statements": [ + { + "assignments": [ + 5917 + ], + "declarations": [ + { + "constant": false, + "id": 5917, + "name": "reserveAddress", + "nodeType": "VariableDeclaration", + "scope": 5996, + "src": "8246:22:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5916, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8246:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5922, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5920, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5907, + "src": "8301:1:8", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + ], + "expression": { + "argumentTypes": null, + "id": 5918, + "name": "_oldConverter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5892, + "src": "8271:13:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + "id": 5919, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "connectorTokens", + "nodeType": "MemberAccess", + "referencedDeclaration": 11811, + "src": "8271:29:8", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_contract$_IERC20Token_$20240_$", + "typeString": "function (uint256) view external returns (contract IERC20Token)" + } + }, + "id": 5921, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8271:32:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8246:57:8" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5925, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5923, + "name": "reserveAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5917, + "src": "8332:14:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 5924, + "name": "ETH_RESERVE_ADDRESS", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5532, + "src": "8350:19:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "8332:37:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5939, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5935, + "name": "reserveAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5917, + "src": "8471:14:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5937, + "name": "etherToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5534, + "src": "8497:10:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IEtherToken_$20266", + "typeString": "contract IEtherToken" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IEtherToken_$20266", + "typeString": "contract IEtherToken" + } + ], + "id": 5936, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8489:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5938, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8489:19:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "8471:37:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 5990, + "nodeType": "Block", + "src": "8753:205:8", + "statements": [ + { + "assignments": [ + 5968 + ], + "declarations": [ + { + "constant": false, + "id": 5968, + "name": "connector", + "nodeType": "VariableDeclaration", + "scope": 5996, + "src": "8759:21:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + "typeName": { + "contractScope": null, + "id": 5967, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "8759:11:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5972, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5970, + "name": "reserveAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5917, + "src": "8795:14:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 5969, + "name": "IERC20Token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20240, + "src": "8783:11:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20Token_$20240_$", + "typeString": "type(contract IERC20Token)" + } + }, + "id": 5971, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8783:27:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8759:51:8" + }, + { + "expression": { + "argumentTypes": null, + "id": 5978, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5973, + "name": "reserveBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5898, + "src": "8816:14:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5976, + "name": "_oldConverter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5892, + "src": "8853:13:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + ], + "expression": { + "argumentTypes": null, + "id": 5974, + "name": "connector", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5968, + "src": "8833:9:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "id": 5975, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 20194, + "src": "8833:19:8", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 5977, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8833:34:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8816:51:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5979, + "nodeType": "ExpressionStatement", + "src": "8816:51:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5983, + "name": "connector", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5968, + "src": "8902:9:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5985, + "name": "_newConverter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5894, + "src": "8921:13:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + ], + "id": 5984, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8913:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5986, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8913:22:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5987, + "name": "reserveBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5898, + "src": "8937:14:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5980, + "name": "_oldConverter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5892, + "src": "8873:13:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + "id": 5982, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "withdrawTokens", + "nodeType": "MemberAccess", + "referencedDeclaration": 11757, + "src": "8873:28:8", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_contract$_IERC20Token_$20240_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (contract IERC20Token,address,uint256) external" + } + }, + "id": 5988, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8873:79:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5989, + "nodeType": "ExpressionStatement", + "src": "8873:79:8" + } + ] + }, + "id": 5991, + "nodeType": "IfStatement", + "src": "8467:491:8", + "trueBody": { + "id": 5966, + "nodeType": "Block", + "src": "8510:208:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5945, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5940, + "name": "reserveBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5898, + "src": "8516:14:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5943, + "name": "_oldConverter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5892, + "src": "8554:13:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + ], + "expression": { + "argumentTypes": null, + "id": 5941, + "name": "etherToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5534, + "src": "8533:10:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IEtherToken_$20266", + "typeString": "contract IEtherToken" + } + }, + "id": 5942, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 20194, + "src": "8533:20:8", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 5944, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8533:35:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8516:52:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5946, + "nodeType": "ExpressionStatement", + "src": "8516:52:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5950, + "name": "etherToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5534, + "src": "8603:10:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IEtherToken_$20266", + "typeString": "contract IEtherToken" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5952, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22429, + "src": "8623:4:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ConverterUpgrader_$6148", + "typeString": "contract ConverterUpgrader" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_ConverterUpgrader_$6148", + "typeString": "contract ConverterUpgrader" + } + ], + "id": 5951, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8615:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5953, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8615:13:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5954, + "name": "reserveBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5898, + "src": "8630:14:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IEtherToken_$20266", + "typeString": "contract IEtherToken" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5947, + "name": "_oldConverter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5892, + "src": "8574:13:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + "id": 5949, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "withdrawTokens", + "nodeType": "MemberAccess", + "referencedDeclaration": 11757, + "src": "8574:28:8", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_contract$_IERC20Token_$20240_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (contract IERC20Token,address,uint256) external" + } + }, + "id": 5955, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8574:71:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5956, + "nodeType": "ExpressionStatement", + "src": "8574:71:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5961, + "name": "_newConverter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5894, + "src": "8681:13:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + ], + "id": 5960, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8673:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5962, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8673:22:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5963, + "name": "reserveBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5898, + "src": "8697:14:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5957, + "name": "etherToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5534, + "src": "8651:10:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IEtherToken_$20266", + "typeString": "contract IEtherToken" + } + }, + "id": 5959, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "withdrawTo", + "nodeType": "MemberAccess", + "referencedDeclaration": 20265, + "src": "8651:21:8", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256) external" + } + }, + "id": 5964, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8651:61:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5965, + "nodeType": "ExpressionStatement", + "src": "8651:61:8" + } + ] + } + }, + "id": 5992, + "nodeType": "IfStatement", + "src": "8328:630:8", + "trueBody": { + "id": 5934, + "nodeType": "Block", + "src": "8371:61:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5930, + "name": "_newConverter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5894, + "src": "8411:13:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + ], + "id": 5929, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8403:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5931, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8403:22:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 5926, + "name": "_oldConverter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5892, + "src": "8377:13:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + "id": 5928, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "withdrawETH", + "nodeType": "MemberAccess", + "referencedDeclaration": 11762, + "src": "8377:25:8", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$", + "typeString": "function (address) external" + } + }, + "id": 5932, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8377:49:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5933, + "nodeType": "ExpressionStatement", + "src": "8377:49:8" + } + ] + } + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "id": 5912, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5910, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5907, + "src": "8213:1:8", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 5911, + "name": "reserveTokenCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5901, + "src": "8217:17:8", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "src": "8213:21:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5994, + "initializationExpression": { + "assignments": [ + 5907 + ], + "declarations": [ + { + "constant": false, + "id": 5907, + "name": "i", + "nodeType": "VariableDeclaration", + "scope": 5996, + "src": "8199:8:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 5906, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "8199:6:8", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5909, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 5908, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8210:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "8199:12:8" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 5914, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "8236:3:8", + "subExpression": { + "argumentTypes": null, + "id": 5913, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5907, + "src": "8236:1:8", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "id": 5915, + "nodeType": "ExpressionStatement", + "src": "8236:3:8" + }, + "nodeType": "ForStatement", + "src": "8194:768:8" + } + ] + }, + "documentation": "@dev transfers the balance of each reserve in the old converter to the new one.\nnote that the function assumes that the new converter already has the exact same number of\nalso, this will not work for an unlimited number of reserves due to block gas limit constraints.\n\t * @param _oldConverter old converter contract address\n@param _newConverter new converter contract address", + "id": 5996, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "transferReserveBalances", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5895, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5892, + "name": "_oldConverter", + "nodeType": "VariableDeclaration", + "scope": 5996, + "src": "8037:24:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + }, + "typeName": { + "contractScope": null, + "id": 5891, + "name": "IConverter", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11817, + "src": "8037:10:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5894, + "name": "_newConverter", + "nodeType": "VariableDeclaration", + "scope": 5996, + "src": "8063:24:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + }, + "typeName": { + "contractScope": null, + "id": 5893, + "name": "IConverter", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11817, + "src": "8063:10:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8036:52:8" + }, + "payable": false, + "returnParameters": { + "id": 5896, + "nodeType": "ParameterList", + "parameters": [], + "src": "8097:0:8" + }, + "scope": 6148, + "src": "8004:961:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "private" + }, + { + "body": { + "id": 6106, + "nodeType": "Block", + "src": "9365:1137:8", + "statements": [ + { + "condition": { + "argumentTypes": null, + "id": 6008, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "9373:38:8", + "subExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6006, + "name": "_oldConverter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5998, + "src": "9397:13:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + ], + "id": 6005, + "name": "isV28OrHigherConverter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6147, + "src": "9374:22:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_contract$_IConverter_$11817_$returns$_t_bool_$", + "typeString": "function (contract IConverter) view returns (bool)" + } + }, + "id": 6007, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9374:37:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 6010, + "nodeType": "IfStatement", + "src": "9369:51:8", + "trueBody": { + "expression": null, + "functionReturnParameters": 6004, + "id": 6009, + "nodeType": "Return", + "src": "9413:7:8" + } + }, + { + "assignments": [ + 6012 + ], + "declarations": [ + { + "constant": false, + "id": 6012, + "name": "converterType", + "nodeType": "VariableDeclaration", + "scope": 6107, + "src": "9424:20:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 6011, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "9424:6:8", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6016, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 6013, + "name": "_oldConverter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5998, + "src": "9447:13:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + "id": 6014, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "converterType", + "nodeType": "MemberAccess", + "referencedDeclaration": 11655, + "src": "9447:27:8", + "typeDescriptions": { + "typeIdentifier": "t_function_external_pure$__$returns$_t_uint16_$", + "typeString": "function () pure external returns (uint16)" + } + }, + "id": 6015, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9447:29:8", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9424:52:8" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "id": 6019, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6017, + "name": "converterType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6012, + "src": "9484:13:8", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 6018, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9501:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "9484:18:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 6105, + "nodeType": "IfStatement", + "src": "9480:1019:8", + "trueBody": { + "id": 6104, + "nodeType": "Block", + "src": "9504:995:8", + "statements": [ + { + "assignments": [ + 6021 + ], + "declarations": [ + { + "constant": false, + "id": 6021, + "name": "reserveTokenCount", + "nodeType": "VariableDeclaration", + "scope": 6107, + "src": "9509:24:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 6020, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "9509:6:8", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6025, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 6022, + "name": "_oldConverter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5998, + "src": "9536:13:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + "id": 6023, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "connectorTokenCount", + "nodeType": "MemberAccess", + "referencedDeclaration": 11816, + "src": "9536:33:8", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint16_$", + "typeString": "function () view external returns (uint16)" + } + }, + "id": 6024, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9536:35:8", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9509:62:8" + }, + { + "body": { + "id": 6060, + "nodeType": "Block", + "src": "9623:319:8", + "statements": [ + { + "assignments": [ + 6037 + ], + "declarations": [ + { + "constant": false, + "id": 6037, + "name": "reserveTokenAddress", + "nodeType": "VariableDeclaration", + "scope": 6107, + "src": "9664:31:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + "typeName": { + "contractScope": null, + "id": 6036, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "9664:11:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6042, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6040, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6027, + "src": "9728:1:8", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + ], + "expression": { + "argumentTypes": null, + "id": 6038, + "name": "_oldConverter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5998, + "src": "9698:13:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + "id": 6039, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "connectorTokens", + "nodeType": "MemberAccess", + "referencedDeclaration": 11811, + "src": "9698:29:8", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_contract$_IERC20Token_$20240_$", + "typeString": "function (uint256) view external returns (contract IERC20Token)" + } + }, + "id": 6041, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9698:32:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9664:66:8" + }, + { + "assignments": [ + 6044 + ], + "declarations": [ + { + "constant": false, + "id": 6044, + "name": "balance", + "nodeType": "VariableDeclaration", + "scope": 6107, + "src": "9736:15:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6043, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9736:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6051, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6049, + "name": "reserveTokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6037, + "src": "9816:19:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6046, + "name": "_oldConverter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5998, + "src": "9780:13:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + ], + "id": 6045, + "name": "ILiquidityPoolV2Converter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16973, + "src": "9754:25:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ILiquidityPoolV2Converter_$16973_$", + "typeString": "type(contract ILiquidityPoolV2Converter)" + } + }, + "id": 6047, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9754:40:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ILiquidityPoolV2Converter_$16973", + "typeString": "contract ILiquidityPoolV2Converter" + } + }, + "id": 6048, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "reserveStakedBalance", + "nodeType": "MemberAccess", + "referencedDeclaration": 16946, + "src": "9754:61:8", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_contract$_IERC20Token_$20240_$returns$_t_uint256_$", + "typeString": "function (contract IERC20Token) view external returns (uint256)" + } + }, + "id": 6050, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9754:82:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9736:100:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6056, + "name": "reserveTokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6037, + "src": "9907:19:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + { + "argumentTypes": null, + "id": 6057, + "name": "balance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6044, + "src": "9928:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6053, + "name": "_newConverter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6000, + "src": "9868:13:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + ], + "id": 6052, + "name": "ILiquidityPoolV2Converter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16973, + "src": "9842:25:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ILiquidityPoolV2Converter_$16973_$", + "typeString": "type(contract ILiquidityPoolV2Converter)" + } + }, + "id": 6054, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9842:40:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ILiquidityPoolV2Converter_$16973", + "typeString": "contract ILiquidityPoolV2Converter" + } + }, + "id": 6055, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "setReserveStakedBalance", + "nodeType": "MemberAccess", + "referencedDeclaration": 16953, + "src": "9842:64:8", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_contract$_IERC20Token_$20240_$_t_uint256_$returns$__$", + "typeString": "function (contract IERC20Token,uint256) external" + } + }, + "id": 6058, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9842:94:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6059, + "nodeType": "ExpressionStatement", + "src": "9842:94:8" + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "id": 6032, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6030, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6027, + "src": "9595:1:8", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 6031, + "name": "reserveTokenCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6021, + "src": "9599:17:8", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "src": "9595:21:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 6061, + "initializationExpression": { + "assignments": [ + 6027 + ], + "declarations": [ + { + "constant": false, + "id": 6027, + "name": "i", + "nodeType": "VariableDeclaration", + "scope": 6107, + "src": "9581:8:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 6026, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "9581:6:8", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6029, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 6028, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9592:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "9581:12:8" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 6034, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "9618:3:8", + "subExpression": { + "argumentTypes": null, + "id": 6033, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6027, + "src": "9618:1:8", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "id": 6035, + "nodeType": "ExpressionStatement", + "src": "9618:3:8" + }, + "nodeType": "ForStatement", + "src": "9576:366:8" + }, + { + "condition": { + "argumentTypes": null, + "id": 6063, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "9951:10:8", + "subExpression": { + "argumentTypes": null, + "id": 6062, + "name": "_activate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6002, + "src": "9952:9:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 6066, + "nodeType": "IfStatement", + "src": "9947:34:8", + "trueBody": { + "id": 6065, + "nodeType": "Block", + "src": "9963:18:8", + "statements": [ + { + "expression": null, + "functionReturnParameters": 6004, + "id": 6064, + "nodeType": "Return", + "src": "9969:7:8" + } + ] + } + }, + { + "assignments": [ + 6068 + ], + "declarations": [ + { + "constant": false, + "id": 6068, + "name": "primaryReserveToken", + "nodeType": "VariableDeclaration", + "scope": 6107, + "src": "10022:31:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + "typeName": { + "contractScope": null, + "id": 6067, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "10022:11:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6074, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6070, + "name": "_oldConverter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5998, + "src": "10082:13:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + ], + "id": 6069, + "name": "ILiquidityPoolV2Converter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16973, + "src": "10056:25:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ILiquidityPoolV2Converter_$16973_$", + "typeString": "type(contract ILiquidityPoolV2Converter)" + } + }, + "id": 6071, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10056:40:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ILiquidityPoolV2Converter_$16973", + "typeString": "contract ILiquidityPoolV2Converter" + } + }, + "id": 6072, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "primaryReserveToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 16958, + "src": "10056:60:8", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_IERC20Token_$20240_$", + "typeString": "function () view external returns (contract IERC20Token)" + } + }, + "id": 6073, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10056:62:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10022:96:8" + }, + { + "assignments": [ + 6076 + ], + "declarations": [ + { + "constant": false, + "id": 6076, + "name": "priceOracle", + "nodeType": "VariableDeclaration", + "scope": 6107, + "src": "10162:24:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IPriceOracle_$22297", + "typeString": "contract IPriceOracle" + }, + "typeName": { + "contractScope": null, + "id": 6075, + "name": "IPriceOracle", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 22297, + "src": "10162:12:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IPriceOracle_$22297", + "typeString": "contract IPriceOracle" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6082, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6078, + "name": "_oldConverter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5998, + "src": "10215:13:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + ], + "id": 6077, + "name": "ILiquidityPoolV2Converter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16973, + "src": "10189:25:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ILiquidityPoolV2Converter_$16973_$", + "typeString": "type(contract ILiquidityPoolV2Converter)" + } + }, + "id": 6079, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10189:40:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ILiquidityPoolV2Converter_$16973", + "typeString": "contract ILiquidityPoolV2Converter" + } + }, + "id": 6080, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "priceOracle", + "nodeType": "MemberAccess", + "referencedDeclaration": 16963, + "src": "10189:52:8", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_IPriceOracle_$22297_$", + "typeString": "function () view external returns (contract IPriceOracle)" + } + }, + "id": 6081, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10189:54:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IPriceOracle_$22297", + "typeString": "contract IPriceOracle" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10162:81:8" + }, + { + "assignments": [ + 6084 + ], + "declarations": [ + { + "constant": false, + "id": 6084, + "name": "oracleA", + "nodeType": "VariableDeclaration", + "scope": 6107, + "src": "10248:28:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", + "typeString": "contract IConsumerPriceOracle" + }, + "typeName": { + "contractScope": null, + "id": 6083, + "name": "IConsumerPriceOracle", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 22203, + "src": "10248:20:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", + "typeString": "contract IConsumerPriceOracle" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6088, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 6085, + "name": "priceOracle", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6076, + "src": "10279:11:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IPriceOracle_$22297", + "typeString": "contract IPriceOracle" + } + }, + "id": 6086, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "tokenAOracle", + "nodeType": "MemberAccess", + "referencedDeclaration": 22288, + "src": "10279:24:8", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_IConsumerPriceOracle_$22203_$", + "typeString": "function () view external returns (contract IConsumerPriceOracle)" + } + }, + "id": 6087, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10279:26:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", + "typeString": "contract IConsumerPriceOracle" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10248:57:8" + }, + { + "assignments": [ + 6090 + ], + "declarations": [ + { + "constant": false, + "id": 6090, + "name": "oracleB", + "nodeType": "VariableDeclaration", + "scope": 6107, + "src": "10310:28:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", + "typeString": "contract IConsumerPriceOracle" + }, + "typeName": { + "contractScope": null, + "id": 6089, + "name": "IConsumerPriceOracle", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 22203, + "src": "10310:20:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", + "typeString": "contract IConsumerPriceOracle" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6094, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 6091, + "name": "priceOracle", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6076, + "src": "10341:11:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IPriceOracle_$22297", + "typeString": "contract IPriceOracle" + } + }, + "id": 6092, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "tokenBOracle", + "nodeType": "MemberAccess", + "referencedDeclaration": 22296, + "src": "10341:24:8", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_IConsumerPriceOracle_$22203_$", + "typeString": "function () view external returns (contract IConsumerPriceOracle)" + } + }, + "id": 6093, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10341:26:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", + "typeString": "contract IConsumerPriceOracle" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10310:57:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6099, + "name": "primaryReserveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6068, + "src": "10456:19:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + { + "argumentTypes": null, + "id": 6100, + "name": "oracleA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6084, + "src": "10477:7:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", + "typeString": "contract IConsumerPriceOracle" + } + }, + { + "argumentTypes": null, + "id": 6101, + "name": "oracleB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6090, + "src": "10486:7:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", + "typeString": "contract IConsumerPriceOracle" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + { + "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", + "typeString": "contract IConsumerPriceOracle" + }, + { + "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", + "typeString": "contract IConsumerPriceOracle" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6096, + "name": "_newConverter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6000, + "src": "10432:13:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + ], + "id": 6095, + "name": "ILiquidityPoolV2Converter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16973, + "src": "10406:25:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ILiquidityPoolV2Converter_$16973_$", + "typeString": "type(contract ILiquidityPoolV2Converter)" + } + }, + "id": 6097, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10406:40:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ILiquidityPoolV2Converter_$16973", + "typeString": "contract ILiquidityPoolV2Converter" + } + }, + "id": 6098, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "activate", + "nodeType": "MemberAccess", + "referencedDeclaration": 16972, + "src": "10406:49:8", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_contract$_IERC20Token_$20240_$_t_contract$_IConsumerPriceOracle_$22203_$_t_contract$_IConsumerPriceOracle_$22203_$returns$__$", + "typeString": "function (contract IERC20Token,contract IConsumerPriceOracle,contract IConsumerPriceOracle) external" + } + }, + "id": 6102, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10406:88:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6103, + "nodeType": "ExpressionStatement", + "src": "10406:88:8" + } + ] + } + } + ] + }, + "documentation": "@dev handles upgrading custom (type specific) data from the old converter to the new one\n\t * @param _oldConverter old converter contract address\n@param _newConverter new converter contract address\n@param _activate activate the new converter", + "id": 6107, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "handleTypeSpecificData", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6003, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5998, + "name": "_oldConverter", + "nodeType": "VariableDeclaration", + "scope": 6107, + "src": "9283:24:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + }, + "typeName": { + "contractScope": null, + "id": 5997, + "name": "IConverter", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11817, + "src": "9283:10:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6000, + "name": "_newConverter", + "nodeType": "VariableDeclaration", + "scope": 6107, + "src": "9311:24:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + }, + "typeName": { + "contractScope": null, + "id": 5999, + "name": "IConverter", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11817, + "src": "9311:10:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6002, + "name": "_activate", + "nodeType": "VariableDeclaration", + "scope": 6107, + "src": "9339:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 6001, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "9339:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9279:77:8" + }, + "payable": false, + "returnParameters": { + "id": 6004, + "nodeType": "ParameterList", + "parameters": [], + "src": "9365:0:8" + }, + "scope": 6148, + "src": "9248:1254:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "private" + }, + { + "constant": true, + "id": 6114, + "name": "IS_V28_OR_HIGHER_FUNC_SELECTOR", + "nodeType": "VariableDeclaration", + "scope": 6148, + "src": "10505:93:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 6108, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "10505:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "69735632384f724869676865722829", + "id": 6111, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10579:17:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_d260529c8620a59d78f2e58cfd1294673bb6cba228ad1f34ac7731003ab870dd", + "typeString": "literal_string \"isV28OrHigher()\"" + }, + "value": "isV28OrHigher()" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_d260529c8620a59d78f2e58cfd1294673bb6cba228ad1f34ac7731003ab870dd", + "typeString": "literal_string \"isV28OrHigher()\"" + } + ], + "id": 6110, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22332, + "src": "10569:9:8", + "typeDescriptions": { + "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", + "typeString": "function () pure returns (bytes32)" + } + }, + "id": 6112, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10569:28:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 6109, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10562:6:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes4_$", + "typeString": "type(bytes4)" + }, + "typeName": "bytes4" + }, + "id": 6113, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10562:36:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "private" + }, + { + "body": { + "id": 6146, + "nodeType": "Block", + "src": "10842:541:8", + "statements": [ + { + "assignments": [], + "declarations": [ + { + "constant": false, + "id": 6122, + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 6147, + "src": "10846:12:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 6121, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "10846:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6123, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "10846:12:8" + }, + { + "assignments": [], + "declarations": [ + { + "constant": false, + "id": 6128, + "name": "ret", + "nodeType": "VariableDeclaration", + "scope": 6147, + "src": "10862:21:8", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$1_memory_ptr", + "typeString": "uint256[1]" + }, + "typeName": { + "baseType": { + "id": 6126, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10862:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6127, + "length": { + "argumentTypes": null, + "hexValue": "31", + "id": 6125, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10870:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + }, + "value": "1" + }, + "nodeType": "ArrayTypeName", + "src": "10862:10:8", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$1_storage_ptr", + "typeString": "uint256[1]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6129, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "10862:21:8" + }, + { + "assignments": [ + 6131 + ], + "declarations": [ + { + "constant": false, + "id": 6131, + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 6147, + "src": "10887:17:8", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 6130, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "10887:5:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6136, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6134, + "name": "IS_V28_OR_HIGHER_FUNC_SELECTOR", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6114, + "src": "10930:30:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "expression": { + "argumentTypes": null, + "id": 6132, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22325, + "src": "10907:3:8", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 6133, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encodeWithSelector", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "10907:22:8", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (bytes4) pure returns (bytes memory)" + } + }, + "id": 6135, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10907:54:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10887:74:8" + }, + { + "externalReferences": [ + { + "success": { + "declaration": 6122, + "isOffset": false, + "isSlot": false, + "src": "10980:7:8", + "valueSize": 1 + } + }, + { + "data": { + "declaration": 6131, + "isOffset": false, + "isSlot": false, + "src": "11212:4:8", + "valueSize": 1 + } + }, + { + "data": { + "declaration": 6131, + "isOffset": false, + "isSlot": false, + "src": "11121:4:8", + "valueSize": 1 + } + }, + { + "_converter": { + "declaration": 6116, + "isOffset": false, + "isSlot": false, + "src": "11078:10:8", + "valueSize": 1 + } + }, + { + "ret": { + "declaration": 6128, + "isOffset": false, + "isSlot": false, + "src": "11292:3:8", + "valueSize": 1 + } + } + ], + "id": 6137, + "nodeType": "InlineAssembly", + "operations": "{\n success := staticcall(5000, _converter, add(data, 32), mload(data), ret, 32)\n}", + "src": "10966:390:8" + }, + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 6144, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6138, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6122, + "src": "11357:7:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6143, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6139, + "name": "ret", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6128, + "src": "11368:3:8", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$1_memory_ptr", + "typeString": "uint256[1] memory" + } + }, + "id": 6141, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6140, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11372:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "11368:6:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6142, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11378:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "11368:11:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "11357:22:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 6120, + "id": 6145, + "nodeType": "Return", + "src": "11350:29:8" + } + ] + }, + "documentation": null, + "id": 6147, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "isV28OrHigherConverter", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6117, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6116, + "name": "_converter", + "nodeType": "VariableDeclaration", + "scope": 6147, + "src": "10790:21:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + }, + "typeName": { + "contractScope": null, + "id": 6115, + "name": "IConverter", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11817, + "src": "10790:10:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10789:23:8" + }, + "payable": false, + "returnParameters": { + "id": 6120, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6119, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 6147, + "src": "10836:4:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 6118, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "10836:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10835:6:8" + }, + "scope": 6148, + "src": "10758:625:8", + "stateMutability": "view", + "superFunction": null, + "visibility": "internal" + } + ], + "scope": 6149, + "src": "1163:10222:8" + } + ], + "src": "0:11386:8" + }, + "id": 8 + }, + "solidity/contracts/converter/LiquidityPoolConverter.sol": { + "ast": { + "absolutePath": "solidity/contracts/converter/LiquidityPoolConverter.sol", + "exportedSymbols": { + "LiquidityPoolConverter": [ + 6210 + ] + }, + "id": 6211, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 6150, + "literals": [ + "solidity", + "0.4", + ".26" + ], + "nodeType": "PragmaDirective", + "src": "0:23:9" + }, + { + "absolutePath": "solidity/contracts/converter/ConverterBase.sol", + "file": "./ConverterBase.sol", + "id": 6151, + "nodeType": "ImportDirective", + "scope": 6211, + "sourceUnit": 3415, + "src": "24:29:9", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 6152, + "name": "ConverterBase", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 3414, + "src": "481:13:9", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ConverterBase_$3414", + "typeString": "contract ConverterBase" + } + }, + "id": 6153, + "nodeType": "InheritanceSpecifier", + "src": "481:13:9" + } + ], + "contractDependencies": [ + 3414, + 11817, + 20932, + 21324, + 21710, + 21933, + 21976, + 22052, + 22247, + 22313 + ], + "contractKind": "contract", + "documentation": "@dev Liquidity Pool Converter\n * The liquidity pool converter is the base contract for specific types of converters that\nmanage liquidity pools.\n * Liquidity pools have 2 reserves or more and they allow converting between them.\n * Note that TokenRateUpdate events are dispatched for pool tokens as well.\nThe pool token is the first token in the event in that case.", + "fullyImplemented": false, + "id": 6210, + "linearizedBaseContracts": [ + 6210, + 3414, + 21710, + 20932, + 21976, + 22052, + 21324, + 21933, + 22313, + 11817, + 22247 + ], + "name": "LiquidityPoolConverter", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": "@dev triggered after liquidity is added\n\t * @param _provider liquidity provider\n@param _reserveToken reserve token address\n@param _amount reserve token amount\n@param _newBalance reserve token new balance\n@param _newSupply pool token new supply", + "id": 6165, + "name": "LiquidityAdded", + "nodeType": "EventDefinition", + "parameters": { + "id": 6164, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6155, + "indexed": true, + "name": "_provider", + "nodeType": "VariableDeclaration", + "scope": 6165, + "src": "827:25:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6154, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "827:7:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6157, + "indexed": true, + "name": "_reserveToken", + "nodeType": "VariableDeclaration", + "scope": 6165, + "src": "854:29:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6156, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "854:7:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6159, + "indexed": false, + "name": "_amount", + "nodeType": "VariableDeclaration", + "scope": 6165, + "src": "885:15:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6158, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "885:7:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6161, + "indexed": false, + "name": "_newBalance", + "nodeType": "VariableDeclaration", + "scope": 6165, + "src": "902:19:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6160, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "902:7:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6163, + "indexed": false, + "name": "_newSupply", + "nodeType": "VariableDeclaration", + "scope": 6165, + "src": "923:18:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6162, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "923:7:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "826:116:9" + }, + "src": "806:137:9" + }, + { + "anonymous": false, + "documentation": "@dev triggered after liquidity is removed\n\t * @param _provider liquidity provider\n@param _reserveToken reserve token address\n@param _amount reserve token amount\n@param _newBalance reserve token new balance\n@param _newSupply pool token new supply", + "id": 6177, + "name": "LiquidityRemoved", + "nodeType": "EventDefinition", + "parameters": { + "id": 6176, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6167, + "indexed": true, + "name": "_provider", + "nodeType": "VariableDeclaration", + "scope": 6177, + "src": "1279:25:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6166, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1279:7:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6169, + "indexed": true, + "name": "_reserveToken", + "nodeType": "VariableDeclaration", + "scope": 6177, + "src": "1306:29:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6168, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1306:7:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6171, + "indexed": false, + "name": "_amount", + "nodeType": "VariableDeclaration", + "scope": 6177, + "src": "1337:15:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6170, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1337:7:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6173, + "indexed": false, + "name": "_newBalance", + "nodeType": "VariableDeclaration", + "scope": 6177, + "src": "1354:19:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6172, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1354:7:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6175, + "indexed": false, + "name": "_newSupply", + "nodeType": "VariableDeclaration", + "scope": 6177, + "src": "1375:18:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6174, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1375:7:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1278:116:9" + }, + "src": "1256:139:9" + }, + { + "body": { + "id": 6191, + "nodeType": "Block", + "src": "1847:2:9", + "statements": [] + }, + "documentation": "@dev initializes a new LiquidityPoolConverter instance\n\t * @param _anchor anchor governed by the converter\n@param _registry address of a contract registry contract\n@param _maxConversionFee maximum conversion fee, represented in ppm", + "id": 6192, + "implemented": true, + "isConstructor": true, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 6186, + "name": "_anchor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6179, + "src": "1808:7:9", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + }, + { + "argumentTypes": null, + "id": 6187, + "name": "_registry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6181, + "src": "1817:9:9", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IContractRegistry_$22220", + "typeString": "contract IContractRegistry" + } + }, + { + "argumentTypes": null, + "id": 6188, + "name": "_maxConversionFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6183, + "src": "1828:17:9", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + } + ], + "id": 6189, + "modifierName": { + "argumentTypes": null, + "id": 6185, + "name": "ConverterBase", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3414, + "src": "1794:13:9", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ConverterBase_$3414_$", + "typeString": "type(contract ConverterBase)" + } + }, + "nodeType": "ModifierInvocation", + "src": "1794:52:9" + } + ], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6184, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6179, + "name": "_anchor", + "nodeType": "VariableDeclaration", + "scope": 6192, + "src": "1698:24:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + }, + "typeName": { + "contractScope": null, + "id": 6178, + "name": "IConverterAnchor", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11826, + "src": "1698:16:9", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6181, + "name": "_registry", + "nodeType": "VariableDeclaration", + "scope": 6192, + "src": "1726:27:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IContractRegistry_$22220", + "typeString": "contract IContractRegistry" + }, + "typeName": { + "contractScope": null, + "id": 6180, + "name": "IContractRegistry", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 22220, + "src": "1726:17:9", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IContractRegistry_$22220", + "typeString": "contract IContractRegistry" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6183, + "name": "_maxConversionFee", + "nodeType": "VariableDeclaration", + "scope": 6192, + "src": "1757:24:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 6182, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "1757:6:9", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1694:90:9" + }, + "payable": false, + "returnParameters": { + "id": 6190, + "nodeType": "ParameterList", + "parameters": [], + "src": "1847:0:9" + }, + "scope": 6210, + "src": "1683:166:9", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 6208, + "nodeType": "Block", + "src": "2130:157:9", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "id": 6199, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 6196, + "name": "reserveTokenCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2984, + "src": "2197:17:9", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint16_$", + "typeString": "function () view returns (uint16)" + } + }, + "id": 6197, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2197:19:9", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 6198, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2219:1:9", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "2197:23:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4552525f494e56414c49445f524553455256455f434f554e54", + "id": 6200, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2222:27:9", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_ed94f14d8dcbb423a259b4072978fc0c494c6af1fea066a19023afb1a76ac87f", + "typeString": "literal_string \"ERR_INVALID_RESERVE_COUNT\"" + }, + "value": "ERR_INVALID_RESERVE_COUNT" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_ed94f14d8dcbb423a259b4072978fc0c494c6af1fea066a19023afb1a76ac87f", + "typeString": "literal_string \"ERR_INVALID_RESERVE_COUNT\"" + } + ], + "id": 6195, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 22341, + 22342 + ], + "referencedDeclaration": 22342, + "src": "2189:7:9", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6201, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2189:61:9", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6202, + "nodeType": "ExpressionStatement", + "src": "2189:61:9" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 6203, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22432, + "src": "2254:5:9", + "typeDescriptions": { + "typeIdentifier": "t_super$_LiquidityPoolConverter_$6210", + "typeString": "contract super LiquidityPoolConverter" + } + }, + "id": 6205, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "acceptAnchorOwnership", + "nodeType": "MemberAccess", + "referencedDeclaration": 2841, + "src": "2254:27:9", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", + "typeString": "function ()" + } + }, + "id": 6206, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2254:29:9", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6207, + "nodeType": "ExpressionStatement", + "src": "2254:29:9" + } + ] + }, + "documentation": "@dev accepts ownership of the anchor after an ownership transfer\nalso activates the converter\ncan only be called by the contract owner\nnote that prior to version 28, you should use 'acceptTokenOwnership' instead", + "id": 6209, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "acceptAnchorOwnership", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6193, + "nodeType": "ParameterList", + "parameters": [], + "src": "2120:2:9" + }, + "payable": false, + "returnParameters": { + "id": 6194, + "nodeType": "ParameterList", + "parameters": [], + "src": "2130:0:9" + }, + "scope": 6210, + "src": "2090:197:9", + "stateMutability": "nonpayable", + "superFunction": 2841, + "visibility": "public" + } + ], + "scope": 6211, + "src": "446:1843:9" + } + ], + "src": "0:2290:9" + }, + "id": 9 + }, + "solidity/contracts/converter/SovrynSwapFormula.sol": { + "ast": { + "absolutePath": "solidity/contracts/converter/SovrynSwapFormula.sol", + "exportedSymbols": { + "SovrynSwapFormula": [ + 11642 + ] + }, + "id": 11643, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 6212, + "literals": [ + "solidity", + "0.4", + ".26" + ], + "nodeType": "PragmaDirective", + "src": "0:23:10" + }, + { + "absolutePath": "solidity/contracts/converter/interfaces/ISovrynSwapFormula.sol", + "file": "./interfaces/ISovrynSwapFormula.sol", + "id": 6213, + "nodeType": "ImportDirective", + "scope": 11643, + "sourceUnit": 12241, + "src": "24:45:10", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "solidity/contracts/utility/SafeMath.sol", + "file": "../utility/SafeMath.sol", + "id": 6214, + "nodeType": "ImportDirective", + "scope": 11643, + "sourceUnit": 21818, + "src": "70:33:10", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 6215, + "name": "ISovrynSwapFormula", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 12240, + "src": "135:18:10", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISovrynSwapFormula_$12240", + "typeString": "contract ISovrynSwapFormula" + } + }, + "id": 6216, + "nodeType": "InheritanceSpecifier", + "src": "135:18:10" + } + ], + "contractDependencies": [ + 12240 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 11642, + "linearizedBaseContracts": [ + 11642, + 12240 + ], + "name": "SovrynSwapFormula", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 6219, + "libraryName": { + "contractScope": null, + "id": 6217, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 21817, + "src": "163:8:10", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$21817", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "157:27:10", + "typeName": { + "id": 6218, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "176:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "constant": true, + "id": 6222, + "name": "version", + "nodeType": "VariableDeclaration", + "scope": 11642, + "src": "187:34:10", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 6220, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "187:6:10", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "38", + "id": 6221, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "220:1:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_8_by_1", + "typeString": "int_const 8" + }, + "value": "8" + }, + "visibility": "public" + }, + { + "constant": true, + "id": 6225, + "name": "ONE", + "nodeType": "VariableDeclaration", + "scope": 11642, + "src": "225:32:10", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6223, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "225:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "31", + "id": 6224, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "256:1:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "visibility": "private" + }, + { + "constant": true, + "id": 6228, + "name": "MAX_WEIGHT", + "nodeType": "VariableDeclaration", + "scope": 11642, + "src": "260:44:10", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 6226, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "260:6:10", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "31303030303030", + "id": 6227, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "297:7:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000_by_1", + "typeString": "int_const 1000000" + }, + "value": "1000000" + }, + "visibility": "private" + }, + { + "constant": true, + "id": 6231, + "name": "MIN_PRECISION", + "nodeType": "VariableDeclaration", + "scope": 11642, + "src": "307:41:10", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 6229, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "307:5:10", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "3332", + "id": 6230, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "346:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + "value": "32" + }, + "visibility": "private" + }, + { + "constant": true, + "id": 6234, + "name": "MAX_PRECISION", + "nodeType": "VariableDeclaration", + "scope": 11642, + "src": "351:42:10", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 6232, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "351:5:10", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "313237", + "id": 6233, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "390:3:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_127_by_1", + "typeString": "int_const 127" + }, + "value": "127" + }, + "visibility": "private" + }, + { + "constant": true, + "id": 6237, + "name": "FIXED_1", + "nodeType": "VariableDeclaration", + "scope": 11642, + "src": "458:70:10", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6235, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "458:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "3078303830303030303030303030303030303030303030303030303030303030303030", + "id": 6236, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "493:35:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_170141183460469231731687303715884105728_by_1", + "typeString": "int_const 1701...(31 digits omitted)...5728" + }, + "value": "0x080000000000000000000000000000000" + }, + "visibility": "private" + }, + { + "constant": true, + "id": 6240, + "name": "FIXED_2", + "nodeType": "VariableDeclaration", + "scope": 11642, + "src": "531:70:10", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6238, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "531:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "3078313030303030303030303030303030303030303030303030303030303030303030", + "id": 6239, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "566:35:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_340282366920938463463374607431768211456_by_1", + "typeString": "int_const 3402...(31 digits omitted)...1456" + }, + "value": "0x100000000000000000000000000000000" + }, + "visibility": "private" + }, + { + "constant": true, + "id": 6243, + "name": "MAX_NUM", + "nodeType": "VariableDeclaration", + "scope": 11642, + "src": "604:70:10", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6241, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "604:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "3078323030303030303030303030303030303030303030303030303030303030303030", + "id": 6242, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "639:35:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_680564733841876926926749214863536422912_by_1", + "typeString": "int_const 6805...(31 digits omitted)...2912" + }, + "value": "0x200000000000000000000000000000000" + }, + "visibility": "private" + }, + { + "constant": true, + "id": 6246, + "name": "LN2_NUMERATOR", + "nodeType": "VariableDeclaration", + "scope": 11642, + "src": "739:74:10", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6244, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "739:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "307833663830666530336638306665303366383066653033663830666530336638", + "id": 6245, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "780:33:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_5275695611177340518812009417546793976_by_1", + "typeString": "int_const 5275...(29 digits omitted)...3976" + }, + "value": "0x3f80fe03f80fe03f80fe03f80fe03f8" + }, + "visibility": "private" + }, + { + "constant": true, + "id": 6249, + "name": "LN2_DENOMINATOR", + "nodeType": "VariableDeclaration", + "scope": 11642, + "src": "816:76:10", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6247, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "816:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "307835623964653164313062663431303364363437623039353538393762613830", + "id": 6248, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "859:33:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_7611219895485218073587121647846406784_by_1", + "typeString": "int_const 7611...(29 digits omitted)...6784" + }, + "value": "0x5b9de1d10bf4103d647b0955897ba80" + }, + "visibility": "private" + }, + { + "constant": true, + "id": 6252, + "name": "OPT_LOG_MAX_VAL", + "nodeType": "VariableDeclaration", + "scope": 11642, + "src": "991:78:10", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6250, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "991:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "3078313562663061386231343537363935333535666238616334303465376137396533", + "id": 6251, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1034:35:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_462491687273110168575455517921668397539_by_1", + "typeString": "int_const 4624...(31 digits omitted)...7539" + }, + "value": "0x15bf0a8b1457695355fb8ac404e7a79e3" + }, + "visibility": "private" + }, + { + "constant": true, + "id": 6255, + "name": "OPT_EXP_MAX_VAL", + "nodeType": "VariableDeclaration", + "scope": 11642, + "src": "1072:78:10", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6253, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1072:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "3078383030303030303030303030303030303030303030303030303030303030303030", + "id": 6254, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1115:35:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2722258935367507707706996859454145691648_by_1", + "typeString": "int_const 2722...(32 digits omitted)...1648" + }, + "value": "0x800000000000000000000000000000000" + }, + "visibility": "private" + }, + { + "constant": true, + "id": 6258, + "name": "LAMBERT_CONV_RADIUS", + "nodeType": "VariableDeclaration", + "scope": 11642, + "src": "1212:83:10", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6256, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1212:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "307830303266313661633663353964653666386435643666363363313438326137633836", + "id": 6257, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1259:36:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_62591443491685266058625363149075414150_by_1", + "typeString": "int_const 6259...(30 digits omitted)...4150" + }, + "value": "0x002f16ac6c59de6f8d5d6f63c1482a7c86" + }, + "visibility": "private" + }, + { + "constant": true, + "id": 6261, + "name": "LAMBERT_POS2_SAMPLE", + "nodeType": "VariableDeclaration", + "scope": 11642, + "src": "1298:83:10", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6259, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1298:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "307830303033303630633138333036306331383330363063313833303630633138333036", + "id": 6260, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1345:36:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_4019083073869351930669778827934270214_by_1", + "typeString": "int_const 4019...(29 digits omitted)...0214" + }, + "value": "0x0003060c183060c183060c183060c18306" + }, + "visibility": "private" + }, + { + "constant": true, + "id": 6264, + "name": "LAMBERT_POS2_MAXVAL", + "nodeType": "VariableDeclaration", + "scope": 11642, + "src": "1384:83:10", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6262, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1384:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "307830316166313661633663353964653666386435643666363363313438326137633830", + "id": 6263, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1431:36:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_573014993873092961253687274296727731328_by_1", + "typeString": "int_const 5730...(31 digits omitted)...1328" + }, + "value": "0x01af16ac6c59de6f8d5d6f63c1482a7c80" + }, + "visibility": "private" + }, + { + "constant": true, + "id": 6267, + "name": "LAMBERT_POS3_MAXVAL", + "nodeType": "VariableDeclaration", + "scope": 11642, + "src": "1470:83:10", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6265, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1470:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "307836623232643433653732633332363533396363656565663862623438663235356666", + "id": 6266, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1517:36:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_36456509045932913977692090597752865707519_by_1", + "typeString": "int_const 3645...(33 digits omitted)...7519" + }, + "value": "0x6b22d43e72c326539cceeef8bb48f255ff" + }, + "visibility": "private" + }, + { + "constant": true, + "id": 6270, + "name": "MAX_UNF_WEIGHT", + "nodeType": "VariableDeclaration", + "scope": 11642, + "src": "1614:104:10", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6268, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1614:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "3078313063366637613062356564386433366234633766333439333835383336323166616663386230303739613238333464323666613366636339656139", + "id": 6269, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1656:62:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_115792089237316195423570985008687907853269984665640564039457584007913129_by_1", + "typeString": "int_const 1157...(64 digits omitted)...3129" + }, + "value": "0x10c6f7a0b5ed8d36b4c7f34938583621fafc8b0079a2834d26fa3fcc9ea9" + }, + "visibility": "private" + }, + { + "constant": false, + "id": 6274, + "name": "maxExpArray", + "nodeType": "VariableDeclaration", + "scope": 11642, + "src": "1777:32:10", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128]" + }, + "typeName": { + "baseType": { + "id": 6271, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1777:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6273, + "length": { + "argumentTypes": null, + "hexValue": "313238", + "id": 6272, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1785:3:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + }, + "value": "128" + }, + "nodeType": "ArrayTypeName", + "src": "1777:12:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage_ptr", + "typeString": "uint256[128]" + } + }, + "value": null, + "visibility": "private" + }, + { + "body": { + "id": 6853, + "nodeType": "Block", + "src": "1848:7616:10", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 6281, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6277, + "name": "maxExpArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6274, + "src": "3868:11:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 6279, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3332", + "id": 6278, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3880:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + "value": "32" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "3868:15:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "307831633335666564643134666666666666666666666666666666666666666666666666", + "id": 6280, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3886:36:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_9599678685041259184274752310158947254271_by_1", + "typeString": "int_const 9599...(32 digits omitted)...4271" + }, + "value": "0x1c35fedd14ffffffffffffffffffffffff" + }, + "src": "3868:54:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6282, + "nodeType": "ExpressionStatement", + "src": "3868:54:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 6287, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6283, + "name": "maxExpArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6274, + "src": "3926:11:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 6285, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3333", + "id": 6284, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3938:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_33_by_1", + "typeString": "int_const 33" + }, + "value": "33" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "3926:15:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "307831623063653433623332336666666666666666666666666666666666666666666666", + "id": 6286, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3944:36:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_9204759687141885226475603015507577405439_by_1", + "typeString": "int_const 9204...(32 digits omitted)...5439" + }, + "value": "0x1b0ce43b323fffffffffffffffffffffff" + }, + "src": "3926:54:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6288, + "nodeType": "ExpressionStatement", + "src": "3926:54:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 6293, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6289, + "name": "maxExpArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6274, + "src": "3984:11:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 6291, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3334", + "id": 6290, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3996:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_34_by_1", + "typeString": "int_const 34" + }, + "value": "34" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "3984:15:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "307831396630303238656331666666666666666666666666666666666666666666666666", + "id": 6292, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4002:36:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_8826087172077985712041017634911355404287_by_1", + "typeString": "int_const 8826...(32 digits omitted)...4287" + }, + "value": "0x19f0028ec1ffffffffffffffffffffffff" + }, + "src": "3984:54:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6294, + "nodeType": "ExpressionStatement", + "src": "3984:54:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 6299, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6295, + "name": "maxExpArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6274, + "src": "4042:11:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 6297, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3335", + "id": 6296, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4054:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_35_by_1", + "typeString": "int_const 35" + }, + "value": "35" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "4042:15:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "307831386465643931663065376666666666666666666666666666666666666666666666", + "id": 6298, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4060:36:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_8462992779488582574159642900919291478015_by_1", + "typeString": "int_const 8462...(32 digits omitted)...8015" + }, + "value": "0x18ded91f0e7fffffffffffffffffffffff" + }, + "src": "4042:54:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6300, + "nodeType": "ExpressionStatement", + "src": "4042:54:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 6305, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6301, + "name": "maxExpArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6274, + "src": "4100:11:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 6303, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3336", + "id": 6302, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4112:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_36_by_1", + "typeString": "int_const 36" + }, + "value": "36" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "4100:15:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "307831376438656337663034313766666666666666666666666666666666666666666666", + "id": 6304, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4118:36:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_8114835644520100661580084966409403105279_by_1", + "typeString": "int_const 8114...(32 digits omitted)...5279" + }, + "value": "0x17d8ec7f0417ffffffffffffffffffffff" + }, + "src": "4100:54:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6306, + "nodeType": "ExpressionStatement", + "src": "4100:54:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 6311, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6307, + "name": "maxExpArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6274, + "src": "4158:11:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 6309, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3337", + "id": 6308, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4170:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_37_by_1", + "typeString": "int_const 37" + }, + "value": "37" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "4158:15:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "307831366464633635353663646266666666666666666666666666666666666666666666", + "id": 6310, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4176:36:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_7781001266736647064069662172832600162303_by_1", + "typeString": "int_const 7781...(32 digits omitted)...2303" + }, + "value": "0x16ddc6556cdbffffffffffffffffffffff" + }, + "src": "4158:54:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6312, + "nodeType": "ExpressionStatement", + "src": "4158:54:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 6317, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6313, + "name": "maxExpArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6274, + "src": "4216:11:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 6315, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3338", + "id": 6314, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4228:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_38_by_1", + "typeString": "int_const 38" + }, + "value": "38" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "4216:15:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "307831356563663532373736613166666666666666666666666666666666666666666666", + "id": 6316, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4234:36:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_7460900425488323202194551465008353509375_by_1", + "typeString": "int_const 7460...(32 digits omitted)...9375" + }, + "value": "0x15ecf52776a1ffffffffffffffffffffff" + }, + "src": "4216:54:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6318, + "nodeType": "ExpressionStatement", + "src": "4216:54:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 6323, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6319, + "name": "maxExpArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6274, + "src": "4274:11:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 6321, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3339", + "id": 6320, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4286:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_39_by_1", + "typeString": "int_const 39" + }, + "value": "39" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "4274:15:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "307831353036306332353663623266666666666666666666666666666666666666666666", + "id": 6322, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4292:36:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_7153968139937914349310206877837545177087_by_1", + "typeString": "int_const 7153...(32 digits omitted)...7087" + }, + "value": "0x15060c256cb2ffffffffffffffffffffff" + }, + "src": "4274:54:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6324, + "nodeType": "ExpressionStatement", + "src": "4274:54:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 6329, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6325, + "name": "maxExpArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6274, + "src": "4332:11:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 6327, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3430", + "id": 6326, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4344:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_40_by_1", + "typeString": "int_const 40" + }, + "value": "40" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "4332:15:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "307831343238613266393864373266666666666666666666666666666666666666666666", + "id": 6328, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4350:36:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_6859662671868001546166128217910528704511_by_1", + "typeString": "int_const 6859...(32 digits omitted)...4511" + }, + "value": "0x1428a2f98d72ffffffffffffffffffffff" + }, + "src": "4332:54:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6330, + "nodeType": "ExpressionStatement", + "src": "4332:54:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 6335, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6331, + "name": "maxExpArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6274, + "src": "4390:11:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 6333, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3431", + "id": 6332, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4402:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_41_by_1", + "typeString": "int_const 41" + }, + "value": "41" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "4390:15:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "307831333534353539386535633233666666666666666666666666666666666666666666", + "id": 6334, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4408:36:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_6577464569506365633454696454958677491711_by_1", + "typeString": "int_const 6577...(32 digits omitted)...1711" + }, + "value": "0x13545598e5c23fffffffffffffffffffff" + }, + "src": "4390:54:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6336, + "nodeType": "ExpressionStatement", + "src": "4390:54:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 6341, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6337, + "name": "maxExpArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6274, + "src": "4448:11:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 6339, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3432", + "id": 6338, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4460:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_42_by_1", + "typeString": "int_const 42" + }, + "value": "42" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "4448:15:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "307831323838633431363163653164666666666666666666666666666666666666666666", + "id": 6340, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4466:36:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_6306875750689218484600399768107450630143_by_1", + "typeString": "int_const 6306...(32 digits omitted)...0143" + }, + "value": "0x1288c4161ce1dfffffffffffffffffffff" + }, + "src": "4448:54:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6342, + "nodeType": "ExpressionStatement", + "src": "4448:54:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 6347, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6343, + "name": "maxExpArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6274, + "src": "4506:11:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 6345, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3433", + "id": 6344, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4518:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_43_by_1", + "typeString": "int_const 43" + }, + "value": "43" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "4506:15:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "307831316335393237363163363636666666666666666666666666666666666666666666", + "id": 6346, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4524:36:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_6047418623741353042663269283551730728959_by_1", + "typeString": "int_const 6047...(32 digits omitted)...8959" + }, + "value": "0x11c592761c666fffffffffffffffffffff" + }, + "src": "4506:54:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6348, + "nodeType": "ExpressionStatement", + "src": "4506:54:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 6353, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6349, + "name": "maxExpArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6274, + "src": "4564:11:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 6351, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3434", + "id": 6350, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4576:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_44_by_1", + "typeString": "int_const 44" + }, + "value": "44" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "4564:15:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "307831313061363838363830613735376666666666666666666666666666666666666666", + "id": 6352, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4582:36:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_5798635244522972732941736303310812479487_by_1", + "typeString": "int_const 5798...(32 digits omitted)...9487" + }, + "value": "0x110a688680a757ffffffffffffffffffff" + }, + "src": "4564:54:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6354, + "nodeType": "ExpressionStatement", + "src": "4564:54:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 6359, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6355, + "name": "maxExpArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6274, + "src": "4622:11:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 6357, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3435", + "id": 6356, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4634:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_45_by_1", + "typeString": "int_const 45" + }, + "value": "45" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "4622:15:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "307831303536663162356265646637376666666666666666666666666666666666666666", + "id": 6358, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4640:36:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_5560086508154074440893281558760167309311_by_1", + "typeString": "int_const 5560...(32 digits omitted)...9311" + }, + "value": "0x1056f1b5bedf77ffffffffffffffffffff" + }, + "src": "4622:54:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6360, + "nodeType": "ExpressionStatement", + "src": "4622:54:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 6365, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6361, + "name": "maxExpArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6274, + "src": "4680:11:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 6363, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3436", + "id": 6362, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4692:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_46_by_1", + "typeString": "int_const 46" + }, + "value": "46" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "4680:15:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "307830666161646365636565666638626666666666666666666666666666666666666666", + "id": 6364, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4698:36:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_5331351373990447379730864460340651884543_by_1", + "typeString": "int_const 5331...(32 digits omitted)...4543" + }, + "value": "0x0faadceceeff8bffffffffffffffffffff" + }, + "src": "4680:54:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6366, + "nodeType": "ExpressionStatement", + "src": "4680:54:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 6371, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6367, + "name": "maxExpArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6274, + "src": "4738:11:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 6369, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3437", + "id": 6368, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4750:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_47_by_1", + "typeString": "int_const 47" + }, + "value": "47" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "4738:15:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "307830663035646336623237656461646666666666666666666666666666666666666666", + "id": 6370, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4756:36:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_5112026122483163422598731111238626967551_by_1", + "typeString": "int_const 5112...(32 digits omitted)...7551" + }, + "value": "0x0f05dc6b27edadffffffffffffffffffff" + }, + "src": "4738:54:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6372, + "nodeType": "ExpressionStatement", + "src": "4738:54:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 6377, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6373, + "name": "maxExpArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6274, + "src": "4796:11:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 6375, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3438", + "id": 6374, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4808:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_48_by_1", + "typeString": "int_const 48" + }, + "value": "48" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "4796:15:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "307830653637613561323564613431303766666666666666666666666666666666666666", + "id": 6376, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4814:36:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_4901723642609993464238960471454494228479_by_1", + "typeString": "int_const 4901...(32 digits omitted)...8479" + }, + "value": "0x0e67a5a25da4107fffffffffffffffffff" + }, + "src": "4796:54:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6378, + "nodeType": "ExpressionStatement", + "src": "4796:54:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 6383, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6379, + "name": "maxExpArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6274, + "src": "4854:11:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 6381, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3439", + "id": 6380, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4866:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_49_by_1", + "typeString": "int_const 49" + }, + "value": "49" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "4854:15:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "307830646366663131356231346565646666666666666666666666666666666666666666", + "id": 6382, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4872:36:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_4700072748620998500994433661760029327359_by_1", + "typeString": "int_const 4700...(32 digits omitted)...7359" + }, + "value": "0x0dcff115b14eedffffffffffffffffffff" + }, + "src": "4854:54:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6384, + "nodeType": "ExpressionStatement", + "src": "4854:54:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 6389, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6385, + "name": "maxExpArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6274, + "src": "4912:11:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 6387, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3530", + "id": 6386, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4924:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_50_by_1", + "typeString": "int_const 50" + }, + "value": "50" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "4912:15:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "307830643365376133393234333132333966666666666666666666666666666666666666", + "id": 6388, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4930:36:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_4506717524892375150236886652795301658623_by_1", + "typeString": "int_const 4506...(32 digits omitted)...8623" + }, + "value": "0x0d3e7a392431239fffffffffffffffffff" + }, + "src": "4912:54:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6390, + "nodeType": "ExpressionStatement", + "src": "4912:54:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 6395, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6391, + "name": "maxExpArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6274, + "src": "4970:11:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 6393, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3531", + "id": 6392, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4982:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_51_by_1", + "typeString": "int_const 51" + }, + "value": "51" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "4970:15:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "307830636232666635323965623731653466666666666666666666666666666666666666", + "id": 6394, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4988:36:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_4321316697732212547034601541953113817087_by_1", + "typeString": "int_const 4321...(32 digits omitted)...7087" + }, + "value": "0x0cb2ff529eb71e4fffffffffffffffffff" + }, + "src": "4970:54:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6396, + "nodeType": "ExpressionStatement", + "src": "4970:54:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 6401, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6397, + "name": "maxExpArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6274, + "src": "5028:11:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 6399, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3532", + "id": 6398, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5040:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_52_by_1", + "typeString": "int_const 52" + }, + "value": "52" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "5028:15:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "307830633264343135633364623937346166666666666666666666666666666666666666", + "id": 6400, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5046:36:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_4143543033029384782309349805264440655871_by_1", + "typeString": "int_const 4143...(32 digits omitted)...5871" + }, + "value": "0x0c2d415c3db974afffffffffffffffffff" + }, + "src": "5028:54:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6402, + "nodeType": "ExpressionStatement", + "src": "5028:54:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 6407, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6403, + "name": "maxExpArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6274, + "src": "5086:11:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 6405, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3533", + "id": 6404, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5098:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_53_by_1", + "typeString": "int_const 53" + }, + "value": "53" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "5086:15:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "307830626164303365376438383366363962666666666666666666666666666666666666", + "id": 6406, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5104:36:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_3973082758682431363936722477132055314431_by_1", + "typeString": "int_const 3973...(32 digits omitted)...4431" + }, + "value": "0x0bad03e7d883f69bffffffffffffffffff" + }, + "src": "5086:54:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6408, + "nodeType": "ExpressionStatement", + "src": "5086:54:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 6413, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6409, + "name": "maxExpArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6274, + "src": "5144:11:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 6411, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3534", + "id": 6410, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5156:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_54_by_1", + "typeString": "int_const 54" + }, + "value": "54" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "5144:15:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "307830623332306430336232633334336435666666666666666666666666666666666666", + "id": 6412, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5162:36:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_3809635010789003168527049097368437784575_by_1", + "typeString": "int_const 3809...(32 digits omitted)...4575" + }, + "value": "0x0b320d03b2c343d5ffffffffffffffffff" + }, + "src": "5144:54:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6414, + "nodeType": "ExpressionStatement", + "src": "5144:54:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 6419, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6415, + "name": "maxExpArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6274, + "src": "5202:11:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 6417, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3535", + "id": 6416, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5214:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_55_by_1", + "typeString": "int_const 55" + }, + "value": "55" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "5202:15:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "307830616263323532303465303238323864666666666666666666666666666666666666", + "id": 6418, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5220:36:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_3652911302618395401280222488042819026943_by_1", + "typeString": "int_const 3652...(32 digits omitted)...6943" + }, + "value": "0x0abc25204e02828dffffffffffffffffff" + }, + "src": "5202:54:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6420, + "nodeType": "ExpressionStatement", + "src": "5202:54:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 6425, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6421, + "name": "maxExpArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6274, + "src": "5260:11:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 6423, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3536", + "id": 6422, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5272:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_56_by_1", + "typeString": "int_const 56" + }, + "value": "56" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "5260:15:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "307830613462313666373465653462623230376666666666666666666666666666666666", + "id": 6424, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5278:36:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_3502635015429898674229017626613836152831_by_1", + "typeString": "int_const 3502...(32 digits omitted)...2831" + }, + "value": "0x0a4b16f74ee4bb207fffffffffffffffff" + }, + "src": "5260:54:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6426, + "nodeType": "ExpressionStatement", + "src": "5260:54:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 6431, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6427, + "name": "maxExpArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6274, + "src": "5318:11:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 6429, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3537", + "id": 6428, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5330:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_57_by_1", + "typeString": "int_const 57" + }, + "value": "57" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "5318:15:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "307830396465616637333661633166353639666666666666666666666666666666666666", + "id": 6430, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5336:36:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_3358540910238258030536300376569398951935_by_1", + "typeString": "int_const 3358...(32 digits omitted)...1935" + }, + "value": "0x09deaf736ac1f569ffffffffffffffffff" + }, + "src": "5318:54:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6432, + "nodeType": "ExpressionStatement", + "src": "5318:54:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 6437, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6433, + "name": "maxExpArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6274, + "src": "5376:11:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 6435, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3538", + "id": 6434, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5388:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_58_by_1", + "typeString": "int_const 58" + }, + "value": "58" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "5376:15:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "307830393736626439393532633761613935376666666666666666666666666666666666", + "id": 6436, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5394:36:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_3220374659664501751807634855053158776831_by_1", + "typeString": "int_const 3220...(32 digits omitted)...6831" + }, + "value": "0x0976bd9952c7aa957fffffffffffffffff" + }, + "src": "5376:54:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6438, + "nodeType": "ExpressionStatement", + "src": "5376:54:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 6443, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6439, + "name": "maxExpArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6274, + "src": "5434:11:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 6441, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3539", + "id": 6440, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5446:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_59_by_1", + "typeString": "int_const 59" + }, + "value": "59" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "5434:15:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "307830393133313237313932326561613630366666666666666666666666666666666666", + "id": 6442, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5452:36:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_3087892399045852422628542596524428754943_by_1", + "typeString": "int_const 3087...(32 digits omitted)...4943" + }, + "value": "0x09131271922eaa606fffffffffffffffff" + }, + "src": "5434:54:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6444, + "nodeType": "ExpressionStatement", + "src": "5434:54:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 6449, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6445, + "name": "maxExpArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6274, + "src": "5492:11:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 6447, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3630", + "id": 6446, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5504:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_60_by_1", + "typeString": "int_const 60" + }, + "value": "60" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "5492:15:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "307830386233383066333535383636386334366666666666666666666666666666666666", + "id": 6448, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5510:36:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2960860296012425255212778080756987592703_by_1", + "typeString": "int_const 2960...(32 digits omitted)...2703" + }, + "value": "0x08b380f3558668c46fffffffffffffffff" + }, + "src": "5492:54:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6450, + "nodeType": "ExpressionStatement", + "src": "5492:54:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 6455, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6451, + "name": "maxExpArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6274, + "src": "5550:11:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 6453, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3631", + "id": 6452, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5562:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_61_by_1", + "typeString": "int_const 61" + }, + "value": "61" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "5550:15:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "307830383537646466303131376566613231356266666666666666666666666666666666", + "id": 6454, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5568:36:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2839054137771012724926516325250418868223_by_1", + "typeString": "int_const 2839...(32 digits omitted)...8223" + }, + "value": "0x0857ddf0117efa215bffffffffffffffff" + }, + "src": "5550:54:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6456, + "nodeType": "ExpressionStatement", + "src": "5550:54:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 6461, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6457, + "name": "maxExpArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6274, + "src": "5608:11:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 6459, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3632", + "id": 6458, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5620:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_62_by_1", + "typeString": "int_const 62" + }, + "value": "62" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "5608:15:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "307830376666666666666666666666666666666666666666666666666666666666666666", + "id": 6460, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5626:36:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2722258935367507707706996859454145691647_by_1", + "typeString": "int_const 2722...(32 digits omitted)...1647" + }, + "value": "0x07ffffffffffffffffffffffffffffffff" + }, + "src": "5608:54:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6462, + "nodeType": "ExpressionStatement", + "src": "5608:54:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 6467, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6463, + "name": "maxExpArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6274, + "src": "5666:11:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 6465, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3633", + "id": 6464, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5678:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_63_by_1", + "typeString": "int_const 63" + }, + "value": "63" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "5666:15:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "307830376162626636663661626239643038376666666666666666666666666666666666", + "id": 6466, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5684:36:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2610268544229484780765045556213696167935_by_1", + "typeString": "int_const 2610...(32 digits omitted)...7935" + }, + "value": "0x07abbf6f6abb9d087fffffffffffffffff" + }, + "src": "5666:54:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6468, + "nodeType": "ExpressionStatement", + "src": "5666:54:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 6473, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6469, + "name": "maxExpArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6274, + "src": "5724:11:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 6471, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3634", + "id": 6470, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5736:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_64_by_1", + "typeString": "int_const 64" + }, + "value": "64" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "5724:15:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "307830373561663632636261633935663764666137666666666666666666666666666666", + "id": 6472, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5742:36:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2502885300319193958571922333378000453631_by_1", + "typeString": "int_const 2502...(32 digits omitted)...3631" + }, + "value": "0x075af62cbac95f7dfa7fffffffffffffff" + }, + "src": "5724:54:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6474, + "nodeType": "ExpressionStatement", + "src": "5724:54:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 6479, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6475, + "name": "maxExpArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6274, + "src": "5782:11:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 6477, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3635", + "id": 6476, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5794:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_65_by_1", + "typeString": "int_const 65" + }, + "value": "65" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "5782:15:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "307830373064376662373435326531383761633133666666666666666666666666666666", + "id": 6478, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5800:36:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2399919671254773659805118819743970623487_by_1", + "typeString": "int_const 2399...(32 digits omitted)...3487" + }, + "value": "0x070d7fb7452e187ac13fffffffffffffff" + }, + "src": "5782:54:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6480, + "nodeType": "ExpressionStatement", + "src": "5782:54:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 6485, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6481, + "name": "maxExpArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6274, + "src": "5840:11:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 6483, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3636", + "id": 6482, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5852:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_66_by_1", + "typeString": "int_const 66" + }, + "value": "66" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "5840:15:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "307830366333333930656363386166333739323935666666666666666666666666666666", + "id": 6484, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5858:36:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2301189921783908737703717501630802821119_by_1", + "typeString": "int_const 2301...(32 digits omitted)...1119" + }, + "value": "0x06c3390ecc8af379295fffffffffffffff" + }, + "src": "5840:54:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6486, + "nodeType": "ExpressionStatement", + "src": "5840:54:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 6491, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6487, + "name": "maxExpArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6274, + "src": "5898:11:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 6489, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3637", + "id": 6488, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5910:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_67_by_1", + "typeString": "int_const 67" + }, + "value": "67" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "5898:15:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "307830363763303061336230376666633031666436666666666666666666666666666666", + "id": 6490, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5916:36:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2206521793019491601704439134261549727743_by_1", + "typeString": "int_const 2206...(32 digits omitted)...7743" + }, + "value": "0x067c00a3b07ffc01fd6fffffffffffffff" + }, + "src": "5898:54:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6492, + "nodeType": "ExpressionStatement", + "src": "5898:54:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 6497, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6493, + "name": "maxExpArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6274, + "src": "5956:11:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 6495, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3638", + "id": 6494, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5968:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_68_by_1", + "typeString": "int_const 68" + }, + "value": "68" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "5956:15:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "307830363337623634376333396362623964336432376666666666666666666666666666", + "id": 6496, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5974:36:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2115748194871134515168564783402692116479_by_1", + "typeString": "int_const 2115...(32 digits omitted)...6479" + }, + "value": "0x0637b647c39cbb9d3d27ffffffffffffff" + }, + "src": "5956:54:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6498, + "nodeType": "ExpressionStatement", + "src": "5956:54:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 6503, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6499, + "name": "maxExpArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6274, + "src": "6014:11:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 6501, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3639", + "id": 6500, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6026:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_69_by_1", + "typeString": "int_const 69" + }, + "value": "69" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6014:15:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "307830356636336231666331303464626433393538376666666666666666666666666666", + "id": 6502, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6032:36:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2028708911129671949307566740521183346687_by_1", + "typeString": "int_const 2028...(32 digits omitted)...6687" + }, + "value": "0x05f63b1fc104dbd39587ffffffffffffff" + }, + "src": "6014:54:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6504, + "nodeType": "ExpressionStatement", + "src": "6014:54:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 6509, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6505, + "name": "maxExpArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6274, + "src": "6072:11:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 6507, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3730", + "id": 6506, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6084:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_70_by_1", + "typeString": "int_const 70" + }, + "value": "70" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6072:15:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "307830356237373139353562333665313266373233356666666666666666666666666666", + "id": 6508, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6090:36:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1945250316684124513375052119057996185599_by_1", + "typeString": "int_const 1945...(32 digits omitted)...5599" + }, + "value": "0x05b771955b36e12f7235ffffffffffffff" + }, + "src": "6072:54:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6510, + "nodeType": "ExpressionStatement", + "src": "6072:54:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 6515, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6511, + "name": "maxExpArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6274, + "src": "6130:11:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 6513, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3731", + "id": 6512, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6142:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_71_by_1", + "typeString": "int_const 71" + }, + "value": "71" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6130:15:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "307830353762336434396464613834353536643666366666666666666666666666666666", + "id": 6514, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6148:36:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1865225106372009884014199587421481336831_by_1", + "typeString": "int_const 1865...(32 digits omitted)...6831" + }, + "value": "0x057b3d49dda84556d6f6ffffffffffffff" + }, + "src": "6130:54:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6516, + "nodeType": "ExpressionStatement", + "src": "6130:54:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 6521, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6517, + "name": "maxExpArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6274, + "src": "6188:11:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 6519, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3732", + "id": 6518, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6200:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_72_by_1", + "typeString": "int_const 72" + }, + "value": "72" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6188:15:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "307830353431383330393562326338656365636633306666666666666666666666666666", + "id": 6520, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6206:36:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1788492034984419117666073304513300660223_by_1", + "typeString": "int_const 1788...(32 digits omitted)...0223" + }, + "value": "0x054183095b2c8ececf30ffffffffffffff" + }, + "src": "6188:54:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6522, + "nodeType": "ExpressionStatement", + "src": "6188:54:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 6527, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6523, + "name": "maxExpArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6274, + "src": "6246:11:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 6525, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3733", + "id": 6524, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6258:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_73_by_1", + "typeString": "int_const 73" + }, + "value": "73" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6246:15:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "307830353061323862653633356361326238383866373766666666666666666666666666", + "id": 6526, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6264:36:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1714915667966964990208967912165996494847_by_1", + "typeString": "int_const 1714...(32 digits omitted)...4847" + }, + "value": "0x050a28be635ca2b888f77fffffffffffff" + }, + "src": "6246:54:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6528, + "nodeType": "ExpressionStatement", + "src": "6246:54:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 6533, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6529, + "name": "maxExpArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6274, + "src": "6304:11:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 6531, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3734", + "id": 6530, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6316:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_74_by_1", + "typeString": "int_const 74" + }, + "value": "74" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6304:15:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "307830346435313536363339373038633964623333633366666666666666666666666666", + "id": 6532, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6322:36:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1644366142376587317378242124992063995903_by_1", + "typeString": "int_const 1644...(32 digits omitted)...5903" + }, + "value": "0x04d5156639708c9db33c3fffffffffffff" + }, + "src": "6304:54:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6534, + "nodeType": "ExpressionStatement", + "src": "6304:54:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 6539, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6535, + "name": "maxExpArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6274, + "src": "6362:11:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 6537, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3735", + "id": 6536, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6374:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_75_by_1", + "typeString": "int_const 75" + }, + "value": "75" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6362:15:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "307830346132333130353837333837356264353264666466666666666666666666666666", + "id": 6538, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6380:36:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1576718937672301888428671268411708276735_by_1", + "typeString": "int_const 1576...(32 digits omitted)...6735" + }, + "value": "0x04a23105873875bd52dfdfffffffffffff" + }, + "src": "6362:54:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6540, + "nodeType": "ExpressionStatement", + "src": "6362:54:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 6545, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6541, + "name": "maxExpArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6274, + "src": "6420:11:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 6543, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3736", + "id": 6542, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6432:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_76_by_1", + "typeString": "int_const 76" + }, + "value": "76" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6420:15:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "307830343731363439643837313939616139393037353666666666666666666666666666", + "id": 6544, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6438:36:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1511854655935336643558907106913628979199_by_1", + "typeString": "int_const 1511...(32 digits omitted)...9199" + }, + "value": "0x0471649d87199aa990756fffffffffffff" + }, + "src": "6420:54:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6546, + "nodeType": "ExpressionStatement", + "src": "6420:54:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 6551, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6547, + "name": "maxExpArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6274, + "src": "6478:11:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 6549, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3737", + "id": 6548, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6490:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_77_by_1", + "typeString": "int_const 77" + }, + "value": "77" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6478:15:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "307830343432396132316130323964346331343537636662666666666666666666666666", + "id": 6550, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6496:36:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1449658811130741678082357454851673161727_by_1", + "typeString": "int_const 1449...(32 digits omitted)...1727" + }, + "value": "0x04429a21a029d4c1457cfbffffffffffff" + }, + "src": "6478:54:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6552, + "nodeType": "ExpressionStatement", + "src": "6478:54:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 6557, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6553, + "name": "maxExpArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6274, + "src": "6536:11:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 6555, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3738", + "id": 6554, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6548:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_78_by_1", + "typeString": "int_const 78" + }, + "value": "78" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6536:15:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "307830343135626336643666623764643731616632636233666666666666666666666666", + "id": 6556, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6554:36:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1390021627038517938156314751863424548863_by_1", + "typeString": "int_const 1390...(32 digits omitted)...8863" + }, + "value": "0x0415bc6d6fb7dd71af2cb3ffffffffffff" + }, + "src": "6536:54:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6558, + "nodeType": "ExpressionStatement", + "src": "6536:54:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 6563, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6559, + "name": "maxExpArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6274, + "src": "6594:11:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 6561, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3739", + "id": 6560, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6606:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_79_by_1", + "typeString": "int_const 79" + }, + "value": "79" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6594:15:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "307830336561623733623362626665323832323433636531666666666666666666666666", + "id": 6562, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6612:36:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1332837843497611250583009129150422188031_by_1", + "typeString": "int_const 1332...(32 digits omitted)...8031" + }, + "value": "0x03eab73b3bbfe282243ce1ffffffffffff" + }, + "src": "6594:54:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6564, + "nodeType": "ExpressionStatement", + "src": "6594:54:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 6569, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6565, + "name": "maxExpArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6274, + "src": "6652:11:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 6567, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3830", + "id": 6566, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6664:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_80_by_1", + "typeString": "int_const 80" + }, + "value": "80" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6652:15:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "307830336331373731616339666236623463313865323239666666666666666666666666", + "id": 6568, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6670:36:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1278006530620790610545644364558728429567_by_1", + "typeString": "int_const 1278...(32 digits omitted)...9567" + }, + "value": "0x03c1771ac9fb6b4c18e229ffffffffffff" + }, + "src": "6652:54:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6570, + "nodeType": "ExpressionStatement", + "src": "6652:54:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 6575, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6571, + "name": "maxExpArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6274, + "src": "6710:11:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 6573, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3831", + "id": 6572, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6722:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_81_by_1", + "typeString": "int_const 81" + }, + "value": "81" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6710:15:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "307830333939653936383937363930343138663738353235376666666666666666666666", + "id": 6574, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6728:36:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1225430910652498332846748256431392161791_by_1", + "typeString": "int_const 1225...(32 digits omitted)...1791" + }, + "value": "0x0399e96897690418f785257fffffffffff" + }, + "src": "6710:54:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6576, + "nodeType": "ExpressionStatement", + "src": "6710:54:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 6581, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6577, + "name": "maxExpArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6274, + "src": "6768:11:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 6579, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3832", + "id": 6578, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6780:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_82_by_1", + "typeString": "int_const 82" + }, + "value": "82" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6768:15:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "307830333733666334353663353362623737396266306561396666666666666666666666", + "id": 6580, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6786:36:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1175018187155249585623915264673694351359_by_1", + "typeString": "int_const 1175...(32 digits omitted)...1359" + }, + "value": "0x0373fc456c53bb779bf0ea9fffffffffff" + }, + "src": "6768:54:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6582, + "nodeType": "ExpressionStatement", + "src": "6768:54:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 6587, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6583, + "name": "maxExpArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6274, + "src": "6826:11:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 6585, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3833", + "id": 6584, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6838:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_83_by_1", + "typeString": "int_const 83" + }, + "value": "83" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6826:15:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "307830333466396538653439306334386536376536616238626666666666666666666666", + "id": 6586, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6844:36:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1126679381223093780446468558216906145791_by_1", + "typeString": "int_const 1126...(32 digits omitted)...5791" + }, + "value": "0x034f9e8e490c48e67e6ab8bfffffffffff" + }, + "src": "6826:54:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6588, + "nodeType": "ExpressionStatement", + "src": "6826:54:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 6593, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6589, + "name": "maxExpArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6274, + "src": "6884:11:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 6591, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3834", + "id": 6590, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6896:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_84_by_1", + "typeString": "int_const 84" + }, + "value": "84" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6884:15:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "307830333263626664346137616463373930353630623333333766666666666666666666", + "id": 6592, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6902:36:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1080329174433053119456411494679599644671_by_1", + "typeString": "int_const 1080...(32 digits omitted)...4671" + }, + "value": "0x032cbfd4a7adc790560b3337ffffffffff" + }, + "src": "6884:54:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6594, + "nodeType": "ExpressionStatement", + "src": "6884:54:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 6599, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6595, + "name": "maxExpArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6274, + "src": "6942:11:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 6597, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3835", + "id": 6596, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6954:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_85_by_1", + "typeString": "int_const 85" + }, + "value": "85" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6942:15:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "307830333062353035373066366535643261636361393436313366666666666666666666", + "id": 6598, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6960:36:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1035885758257346189907937735244580388863_by_1", + "typeString": "int_const 1035...(32 digits omitted)...8863" + }, + "value": "0x030b50570f6e5d2acca94613ffffffffff" + }, + "src": "6942:54:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6600, + "nodeType": "ExpressionStatement", + "src": "6942:54:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 6605, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6601, + "name": "maxExpArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6274, + "src": "7000:11:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 6603, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3836", + "id": 6602, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7012:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_86_by_1", + "typeString": "int_const 86" + }, + "value": "86" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "7000:15:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "307830326562343066396636323066646136623536633238363166666666666666666666", + "id": 6604, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7018:36:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_993270689670607839608468400662101622783_by_1", + "typeString": "int_const 9932...(31 digits omitted)...2783" + }, + "value": "0x02eb40f9f620fda6b56c2861ffffffffff" + }, + "src": "7000:54:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6606, + "nodeType": "ExpressionStatement", + "src": "7000:54:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 6611, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6607, + "name": "maxExpArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6274, + "src": "7058:11:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 6609, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3837", + "id": 6608, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7070:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_87_by_1", + "typeString": "int_const 87" + }, + "value": "87" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "7058:15:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "307830326363383334306563623064306635323061366166353866666666666666666666", + "id": 6610, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7076:36:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_952408752697250790372885759853747765247_by_1", + "typeString": "int_const 9524...(31 digits omitted)...5247" + }, + "value": "0x02cc8340ecb0d0f520a6af58ffffffffff" + }, + "src": "7058:54:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6612, + "nodeType": "ExpressionStatement", + "src": "7058:54:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 6617, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6613, + "name": "maxExpArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6274, + "src": "7116:11:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 6615, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3838", + "id": 6614, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7128:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_88_by_1", + "typeString": "int_const 88" + }, + "value": "88" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "7116:15:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "307830326166303934383133383061306133356366316261303266666666666666666666", + "id": 6616, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7134:36:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_913227825654598849673391073164504596479_by_1", + "typeString": "int_const 9132...(31 digits omitted)...6479" + }, + "value": "0x02af09481380a0a35cf1ba02ffffffffff" + }, + "src": "7116:54:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6618, + "nodeType": "ExpressionStatement", + "src": "7116:54:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 6623, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6619, + "name": "maxExpArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6274, + "src": "7174:11:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 6621, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3839", + "id": 6620, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7186:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_89_by_1", + "typeString": "int_const 89" + }, + "value": "89" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "7174:15:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "307830323932633562646433623932656338313032383762316233666666666666666666", + "id": 6622, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7192:36:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_875658753857474668265023456619450597375_by_1", + "typeString": "int_const 8756...(31 digits omitted)...7375" + }, + "value": "0x0292c5bdd3b92ec810287b1b3fffffffff" + }, + "src": "7174:54:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6624, + "nodeType": "ExpressionStatement", + "src": "7174:54:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 6629, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6625, + "name": "maxExpArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6274, + "src": "7232:11:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 6627, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3930", + "id": 6626, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7244:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_90_by_1", + "typeString": "int_const 90" + }, + "value": "90" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "7232:15:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "307830323737616264636461623037643561373761633664366239666666666666666666", + "id": 6628, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7250:36:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_839635227559564507480479102760887779327_by_1", + "typeString": "int_const 8396...(31 digits omitted)...9327" + }, + "value": "0x0277abdcdab07d5a77ac6d6b9fffffffff" + }, + "src": "7232:54:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6630, + "nodeType": "ExpressionStatement", + "src": "7232:54:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 6635, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6631, + "name": "maxExpArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6274, + "src": "7290:11:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 6633, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3931", + "id": 6632, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7302:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_91_by_1", + "typeString": "int_const 91" + }, + "value": "91" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "7290:15:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "307830323564616636363534623165616135356664363464663565666666666666666666", + "id": 6634, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7308:36:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_805093664916125437948904238798044397567_by_1", + "typeString": "int_const 8050...(31 digits omitted)...7567" + }, + "value": "0x025daf6654b1eaa55fd64df5efffffffff" + }, + "src": "7290:54:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6636, + "nodeType": "ExpressionStatement", + "src": "7290:54:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 6641, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6637, + "name": "maxExpArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6274, + "src": "7348:11:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 6639, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3932", + "id": 6638, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7360:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_92_by_1", + "typeString": "int_const 92" + }, + "value": "92" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "7348:15:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "307830323434633439633634386261613938313932646365383862376666666666666666", + "id": 6640, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7366:36:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_771973099761463105605096142810743046143_by_1", + "typeString": "int_const 7719...(31 digits omitted)...6143" + }, + "value": "0x0244c49c648baa98192dce88b7ffffffff" + }, + "src": "7348:54:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6642, + "nodeType": "ExpressionStatement", + "src": "7348:54:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 6647, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6643, + "name": "maxExpArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6274, + "src": "7406:11:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 6645, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3933", + "id": 6644, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7418:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_93_by_1", + "typeString": "int_const 93" + }, + "value": "93" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "7406:15:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "307830323263653033636435363139613331316232343731323638626666666666666666", + "id": 6646, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7424:36:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_740215074003106313787373698556008333311_by_1", + "typeString": "int_const 7402...(31 digits omitted)...3311" + }, + "value": "0x022ce03cd5619a311b2471268bffffffff" + }, + "src": "7406:54:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6648, + "nodeType": "ExpressionStatement", + "src": "7406:54:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 6653, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6649, + "name": "maxExpArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6274, + "src": "7464:11:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 6651, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3934", + "id": 6650, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7476:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_94_by_1", + "typeString": "int_const 94" + }, + "value": "94" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "7464:15:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "307830323135663737633034356662653838353635346134346130666666666666666666", + "id": 6652, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7482:36:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_709763534442753181219281418466841591807_by_1", + "typeString": "int_const 7097...(31 digits omitted)...1807" + }, + "value": "0x0215f77c045fbe885654a44a0fffffffff" + }, + "src": "7464:54:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6654, + "nodeType": "ExpressionStatement", + "src": "7464:54:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 6659, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6655, + "name": "maxExpArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6274, + "src": "7522:11:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 6657, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3935", + "id": 6656, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7534:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_95_by_1", + "typeString": "int_const 95" + }, + "value": "95" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "7522:15:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "307830316666666666666666666666666666666666666666666666666666666666666666", + "id": 6658, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7540:36:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_680564733841876926926749214863536422911_by_1", + "typeString": "int_const 6805...(31 digits omitted)...2911" + }, + "value": "0x01ffffffffffffffffffffffffffffffff" + }, + "src": "7522:54:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6660, + "nodeType": "ExpressionStatement", + "src": "7522:54:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 6665, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6661, + "name": "maxExpArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6274, + "src": "7580:11:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 6663, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3936", + "id": 6662, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7592:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_96_by_1", + "typeString": "int_const 96" + }, + "value": "96" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "7580:15:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "307830316561656664626461616565373432316663346433656465356666666666666666", + "id": 6664, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7598:36:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_652567136057371195186997586203332575231_by_1", + "typeString": "int_const 6525...(31 digits omitted)...5231" + }, + "value": "0x01eaefdbdaaee7421fc4d3ede5ffffffff" + }, + "src": "7580:54:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6666, + "nodeType": "ExpressionStatement", + "src": "7580:54:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 6671, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6667, + "name": "maxExpArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6274, + "src": "7638:11:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 6669, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3937", + "id": 6668, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7650:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_97_by_1", + "typeString": "int_const 97" + }, + "value": "97" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "7638:15:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "307830316436626438623265623235376466376538636135376230396266666666666666", + "id": 6670, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7656:36:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_625721325079798489641586010116704960511_by_1", + "typeString": "int_const 6257...(31 digits omitted)...0511" + }, + "value": "0x01d6bd8b2eb257df7e8ca57b09bfffffff" + }, + "src": "7638:54:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6672, + "nodeType": "ExpressionStatement", + "src": "7638:54:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 6677, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6673, + "name": "maxExpArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6274, + "src": "7696:11:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 6675, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3938", + "id": 6674, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7708:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_98_by_1", + "typeString": "int_const 98" + }, + "value": "98" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "7696:15:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "307830316333356665646431346238363165623034343366376631333366666666666666", + "id": 6676, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7714:36:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_599979917813693414950432886451725139967_by_1", + "typeString": "int_const 5999...(31 digits omitted)...9967" + }, + "value": "0x01c35fedd14b861eb0443f7f133fffffff" + }, + "src": "7696:54:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6678, + "nodeType": "ExpressionStatement", + "src": "7696:54:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 6683, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6679, + "name": "maxExpArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6274, + "src": "7754:11:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 6681, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3939", + "id": 6680, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7766:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_99_by_1", + "typeString": "int_const 99" + }, + "value": "99" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "7754:15:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "307830316230636534336233323262636465346135366538616461356166666666666666", + "id": 6682, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7772:36:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_575297480445977184425850753341355720703_by_1", + "typeString": "int_const 5752...(31 digits omitted)...0703" + }, + "value": "0x01b0ce43b322bcde4a56e8ada5afffffff" + }, + "src": "7754:54:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6684, + "nodeType": "ExpressionStatement", + "src": "7754:54:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 6689, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6685, + "name": "maxExpArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6274, + "src": "7812:11:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 6687, + "indexExpression": { + "argumentTypes": null, + "hexValue": "313030", + "id": 6686, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7824:3:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_100_by_1", + "typeString": "int_const 100" + }, + "value": "100" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "7812:16:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "307830313966303032386563316666663030376635613139356133396466666666666666", + "id": 6688, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7831:36:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_551630448254872900425972804456347074559_by_1", + "typeString": "int_const 5516...(31 digits omitted)...4559" + }, + "value": "0x019f0028ec1fff007f5a195a39dfffffff" + }, + "src": "7812:55:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6690, + "nodeType": "ExpressionStatement", + "src": "7812:55:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 6695, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6691, + "name": "maxExpArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6274, + "src": "7871:11:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 6693, + "indexExpression": { + "argumentTypes": null, + "hexValue": "313031", + "id": 6692, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7883:3:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_101_by_1", + "typeString": "int_const 101" + }, + "value": "101" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "7871:16:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "307830313864656439316630653732656537346634396231356261353237666666666666", + "id": 6694, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7890:36:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_528937048717783628792119060092411707391_by_1", + "typeString": "int_const 5289...(31 digits omitted)...7391" + }, + "value": "0x018ded91f0e72ee74f49b15ba527ffffff" + }, + "src": "7871:55:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6696, + "nodeType": "ExpressionStatement", + "src": "7871:55:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 6701, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6697, + "name": "maxExpArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6274, + "src": "7930:11:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 6699, + "indexExpression": { + "argumentTypes": null, + "hexValue": "313032", + "id": 6698, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7942:3:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_102_by_1", + "typeString": "int_const 102" + }, + "value": "102" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "7930:16:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "307830313764386563376630343133366634653536313566643431613633666666666666", + "id": 6700, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7949:36:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_507177227782417987326846600868857380863_by_1", + "typeString": "int_const 5071...(31 digits omitted)...0863" + }, + "value": "0x017d8ec7f04136f4e5615fd41a63ffffff" + }, + "src": "7930:55:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6702, + "nodeType": "ExpressionStatement", + "src": "7930:55:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 6707, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6703, + "name": "maxExpArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6274, + "src": "7989:11:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 6705, + "indexExpression": { + "argumentTypes": null, + "hexValue": "313033", + "id": 6704, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8001:3:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_103_by_1", + "typeString": "int_const 103" + }, + "value": "103" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "7989:16:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "307830313664646336353536636462383462646338643132643232653666666666666666", + "id": 6706, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8008:36:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_486312579171031128343732298613950251007_by_1", + "typeString": "int_const 4863...(31 digits omitted)...1007" + }, + "value": "0x016ddc6556cdb84bdc8d12d22e6fffffff" + }, + "src": "7989:55:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6708, + "nodeType": "ExpressionStatement", + "src": "7989:55:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 6713, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6709, + "name": "maxExpArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6274, + "src": "8048:11:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 6711, + "indexExpression": { + "argumentTypes": null, + "hexValue": "313034", + "id": 6710, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8060:3:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_104_by_1", + "typeString": "int_const 104" + }, + "value": "104" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "8048:16:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "307830313565636635323737366131313535623562643833393538313466376666666666", + "id": 6712, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8067:36:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_466306276593002471003532891264408092671_by_1", + "typeString": "int_const 4663...(31 digits omitted)...2671" + }, + "value": "0x015ecf52776a1155b5bd8395814f7fffff" + }, + "src": "8048:55:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6714, + "nodeType": "ExpressionStatement", + "src": "8048:55:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 6719, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6715, + "name": "maxExpArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6274, + "src": "8107:11:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 6717, + "indexExpression": { + "argumentTypes": null, + "hexValue": "313035", + "id": 6716, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8119:3:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_105_by_1", + "typeString": "int_const 105" + }, + "value": "105" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "8107:16:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "307830313530363063323536636232336233623363633337353463663430666666666666", + "id": 6718, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8126:36:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_447123008746104779416515886102660251647_by_1", + "typeString": "int_const 4471...(31 digits omitted)...1647" + }, + "value": "0x015060c256cb23b3b3cc3754cf40ffffff" + }, + "src": "8107:55:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6720, + "nodeType": "ExpressionStatement", + "src": "8107:55:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 6725, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6721, + "name": "maxExpArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6274, + "src": "8166:11:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 6723, + "indexExpression": { + "argumentTypes": null, + "hexValue": "313036", + "id": 6722, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8178:3:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_106_by_1", + "typeString": "int_const 106" + }, + "value": "106" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "8166:16:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "307830313432386132663938643732386165323233646461623731356265336666666666", + "id": 6724, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8185:36:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_428728916991741247552240490495652921343_by_1", + "typeString": "int_const 4287...(31 digits omitted)...1343" + }, + "value": "0x01428a2f98d728ae223ddab715be3fffff" + }, + "src": "8166:55:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6726, + "nodeType": "ExpressionStatement", + "src": "8166:55:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 6731, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6727, + "name": "maxExpArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6274, + "src": "8225:11:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 6729, + "indexExpression": { + "argumentTypes": null, + "hexValue": "313037", + "id": 6728, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8237:3:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_107_by_1", + "typeString": "int_const 107" + }, + "value": "107" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "8225:16:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "307830313335343535393865356332333237366363663065646536383033346666666666", + "id": 6730, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8244:36:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_411091535594146829344560212836376117247_by_1", + "typeString": "int_const 4110...(31 digits omitted)...7247" + }, + "value": "0x013545598e5c23276ccf0ede68034fffff" + }, + "src": "8225:55:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6732, + "nodeType": "ExpressionStatement", + "src": "8225:55:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 6737, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6733, + "name": "maxExpArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6274, + "src": "8284:11:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 6735, + "indexExpression": { + "argumentTypes": null, + "hexValue": "313038", + "id": 6734, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8296:3:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_108_by_1", + "typeString": "int_const 108" + }, + "value": "108" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "8284:16:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "307830313238386334313631636531643666353462376636313038313139346666666666", + "id": 6736, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8303:36:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_394179734418075472107167272299635146751_by_1", + "typeString": "int_const 3941...(31 digits omitted)...6751" + }, + "value": "0x01288c4161ce1d6f54b7f61081194fffff" + }, + "src": "8284:55:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6738, + "nodeType": "ExpressionStatement", + "src": "8284:55:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 6743, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6739, + "name": "maxExpArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6274, + "src": "8343:11:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 6741, + "indexExpression": { + "argumentTypes": null, + "hexValue": "313039", + "id": 6740, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8355:3:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_109_by_1", + "typeString": "int_const 109" + }, + "value": "109" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "8343:16:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "307830313163353932373631633636366161363431643561303161343066313766666666", + "id": 6742, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8362:36:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_377963663983834160889726215582593318911_by_1", + "typeString": "int_const 3779...(31 digits omitted)...8911" + }, + "value": "0x011c592761c666aa641d5a01a40f17ffff" + }, + "src": "8343:55:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6744, + "nodeType": "ExpressionStatement", + "src": "8343:55:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 6749, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6745, + "name": "maxExpArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6274, + "src": "8402:11:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 6747, + "indexExpression": { + "argumentTypes": null, + "hexValue": "313130", + "id": 6746, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8414:3:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_110_by_1", + "typeString": "int_const 110" + }, + "value": "110" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "8402:16:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "307830313130613638383638306137353330353135663365366536636664636466666666", + "id": 6748, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8421:36:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_362414702782685419520589203652335239167_by_1", + "typeString": "int_const 3624...(31 digits omitted)...9167" + }, + "value": "0x0110a688680a7530515f3e6e6cfdcdffff" + }, + "src": "8402:55:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6750, + "nodeType": "ExpressionStatement", + "src": "8402:55:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 6755, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6751, + "name": "maxExpArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6274, + "src": "8461:11:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 6753, + "indexExpression": { + "argumentTypes": null, + "hexValue": "313131", + "id": 6752, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8473:3:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_111_by_1", + "typeString": "int_const 111" + }, + "value": "111" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "8461:16:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "307830313035366631623562656466373563366263623263653861656434323866666666", + "id": 6754, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8480:36:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_347505406759629484539078662328460836863_by_1", + "typeString": "int_const 3475...(31 digits omitted)...6863" + }, + "value": "0x01056f1b5bedf75c6bcb2ce8aed428ffff" + }, + "src": "8461:55:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6756, + "nodeType": "ExpressionStatement", + "src": "8461:55:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 6761, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6757, + "name": "maxExpArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6274, + "src": "8520:11:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 6759, + "indexExpression": { + "argumentTypes": null, + "hexValue": "313132", + "id": 6758, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8532:3:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_112_by_1", + "typeString": "int_const 112" + }, + "value": "112" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "8520:16:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "307830306661616463656365656666386130383930663338373566303038323737666666", + "id": 6760, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8539:36:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_333209460874402812645752271223906598911_by_1", + "typeString": "int_const 3332...(31 digits omitted)...8911" + }, + "value": "0x00faadceceeff8a0890f3875f008277fff" + }, + "src": "8520:55:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6762, + "nodeType": "ExpressionStatement", + "src": "8520:55:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 6767, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6763, + "name": "maxExpArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6274, + "src": "8579:11:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 6765, + "indexExpression": { + "argumentTypes": null, + "hexValue": "313133", + "id": 6764, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8591:3:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_113_by_1", + "typeString": "int_const 113" + }, + "value": "113" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "8579:16:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "307830306630356463366232376564616433303633383861363030663662613062666666", + "id": 6766, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8598:36:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_319501632655197652636411056021540225023_by_1", + "typeString": "int_const 3195...(31 digits omitted)...5023" + }, + "value": "0x00f05dc6b27edad306388a600f6ba0bfff" + }, + "src": "8579:55:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6768, + "nodeType": "ExpressionStatement", + "src": "8579:55:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 6773, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6769, + "name": "maxExpArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6274, + "src": "8638:11:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 6771, + "indexExpression": { + "argumentTypes": null, + "hexValue": "313134", + "id": 6770, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8650:3:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_114_by_1", + "typeString": "int_const 114" + }, + "value": "114" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "8638:16:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "307830306536376135613235646134313036336465313439356435623138636462666666", + "id": 6772, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8657:36:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_306357727663124583211687061200571318271_by_1", + "typeString": "int_const 3063...(31 digits omitted)...8271" + }, + "value": "0x00e67a5a25da41063de1495d5b18cdbfff" + }, + "src": "8638:55:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6774, + "nodeType": "ExpressionStatement", + "src": "8638:55:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 6779, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6775, + "name": "maxExpArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6274, + "src": "8697:11:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 6777, + "indexExpression": { + "argumentTypes": null, + "hexValue": "313135", + "id": 6776, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8709:3:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_115_by_1", + "typeString": "int_const 115" + }, + "value": "115" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "8697:16:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "307830306463666631313562313465656464653666633361613533353366326534666666", + "id": 6778, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8716:36:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_293754546788812396405978813098581970943_by_1", + "typeString": "int_const 2937...(31 digits omitted)...0943" + }, + "value": "0x00dcff115b14eedde6fc3aa5353f2e4fff" + }, + "src": "8697:55:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6780, + "nodeType": "ExpressionStatement", + "src": "8697:55:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 6785, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6781, + "name": "maxExpArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6274, + "src": "8756:11:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 6783, + "indexExpression": { + "argumentTypes": null, + "hexValue": "313136", + "id": 6782, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8768:3:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_116_by_1", + "typeString": "int_const 116" + }, + "value": "116" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "8756:16:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "307830306433653761333932343331323339396639616165326530663836386638666666", + "id": 6784, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8775:36:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_281669845305773445111617137421885345791_by_1", + "typeString": "int_const 2816...(31 digits omitted)...5791" + }, + "value": "0x00d3e7a3924312399f9aae2e0f868f8fff" + }, + "src": "8756:55:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6786, + "nodeType": "ExpressionStatement", + "src": "8756:55:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 6791, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6787, + "name": "maxExpArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6274, + "src": "8815:11:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 6789, + "indexExpression": { + "argumentTypes": null, + "hexValue": "313137", + "id": 6788, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8827:3:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_117_by_1", + "typeString": "int_const 117" + }, + "value": "117" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "8815:16:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "307830306362326666353239656237316534313538326363636435613165653236666666", + "id": 6790, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8834:36:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_270082293608263279864102872957453496319_by_1", + "typeString": "int_const 2700...(31 digits omitted)...6319" + }, + "value": "0x00cb2ff529eb71e41582cccd5a1ee26fff" + }, + "src": "8815:55:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6792, + "nodeType": "ExpressionStatement", + "src": "8815:55:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 6797, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6793, + "name": "maxExpArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6274, + "src": "8874:11:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 6795, + "indexExpression": { + "argumentTypes": null, + "hexValue": "313138", + "id": 6794, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8886:3:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_118_by_1", + "typeString": "int_const 118" + }, + "value": "118" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "8874:16:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "307830306332643431356333646239373461623332613531383430633062363765646666", + "id": 6796, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8893:36:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_258971439564336547476984432763364437503_by_1", + "typeString": "int_const 2589...(31 digits omitted)...7503" + }, + "value": "0x00c2d415c3db974ab32a51840c0b67edff" + }, + "src": "8874:55:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6798, + "nodeType": "ExpressionStatement", + "src": "8874:55:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 6803, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6799, + "name": "maxExpArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6274, + "src": "8933:11:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 6801, + "indexExpression": { + "argumentTypes": null, + "hexValue": "313139", + "id": 6800, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8945:3:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_119_by_1", + "typeString": "int_const 119" + }, + "value": "119" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "8933:16:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "307830306261643033653764383833663639616435623061313836313834653036626666", + "id": 6802, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8952:36:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_248317672417651959902117100034610719743_by_1", + "typeString": "int_const 2483...(31 digits omitted)...9743" + }, + "value": "0x00bad03e7d883f69ad5b0a186184e06bff" + }, + "src": "8933:55:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6804, + "nodeType": "ExpressionStatement", + "src": "8933:55:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 6809, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6805, + "name": "maxExpArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6274, + "src": "8992:11:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 6807, + "indexExpression": { + "argumentTypes": null, + "hexValue": "313230", + "id": 6806, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9004:3:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_120_by_1", + "typeString": "int_const 120" + }, + "value": "120" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "8992:16:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "307830306233323064303362326333343364343832396162643630373566306363356666", + "id": 6808, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9011:36:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_238102188174312697593221439720218478079_by_1", + "typeString": "int_const 2381...(31 digits omitted)...8079" + }, + "value": "0x00b320d03b2c343d4829abd6075f0cc5ff" + }, + "src": "8992:55:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6810, + "nodeType": "ExpressionStatement", + "src": "8992:55:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 6815, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6811, + "name": "maxExpArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6274, + "src": "9051:11:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 6813, + "indexExpression": { + "argumentTypes": null, + "hexValue": "313231", + "id": 6812, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9063:3:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_121_by_1", + "typeString": "int_const 121" + }, + "value": "121" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "9051:16:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "307830306162633235323034653032383238643733633665383062636462316139356266", + "id": 6814, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9070:36:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_228306956413649712418347768277622232511_by_1", + "typeString": "int_const 2283...(31 digits omitted)...2511" + }, + "value": "0x00abc25204e02828d73c6e80bcdb1a95bf" + }, + "src": "9051:55:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6816, + "nodeType": "ExpressionStatement", + "src": "9051:55:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 6821, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6817, + "name": "maxExpArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6274, + "src": "9110:11:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 6819, + "indexExpression": { + "argumentTypes": null, + "hexValue": "313232", + "id": 6818, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9122:3:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_122_by_1", + "typeString": "int_const 122" + }, + "value": "122" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "9110:16:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "307830306134623136663734656534626232303430613165633663313566626266326466", + "id": 6820, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9129:36:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_218914688464368667066255864092044292831_by_1", + "typeString": "int_const 2189...(31 digits omitted)...2831" + }, + "value": "0x00a4b16f74ee4bb2040a1ec6c15fbbf2df" + }, + "src": "9110:55:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6822, + "nodeType": "ExpressionStatement", + "src": "9110:55:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 6827, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6823, + "name": "maxExpArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6274, + "src": "9169:11:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 6825, + "indexExpression": { + "argumentTypes": null, + "hexValue": "313233", + "id": 6824, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9181:3:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_123_by_1", + "typeString": "int_const 123" + }, + "value": "123" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "9169:16:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "307830303964656166373336616331663536396465623162356165336633366331333066", + "id": 6826, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9188:36:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_209908806889891126870119775672831054607_by_1", + "typeString": "int_const 2099...(31 digits omitted)...4607" + }, + "value": "0x009deaf736ac1f569deb1b5ae3f36c130f" + }, + "src": "9169:55:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6828, + "nodeType": "ExpressionStatement", + "src": "9169:55:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 6833, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6829, + "name": "maxExpArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6274, + "src": "9228:11:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 6831, + "indexExpression": { + "argumentTypes": null, + "hexValue": "313234", + "id": 6830, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9240:3:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_124_by_1", + "typeString": "int_const 124" + }, + "value": "124" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "9228:16:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "307830303937366264393935326337616139353766353933376437393065663635303337", + "id": 6832, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9247:36:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_201273416229031359487226059686877220919_by_1", + "typeString": "int_const 2012...(31 digits omitted)...0919" + }, + "value": "0x00976bd9952c7aa957f5937d790ef65037" + }, + "src": "9228:55:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6834, + "nodeType": "ExpressionStatement", + "src": "9228:55:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 6839, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6835, + "name": "maxExpArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6274, + "src": "9287:11:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 6837, + "indexExpression": { + "argumentTypes": null, + "hexValue": "313235", + "id": 6836, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9299:3:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_125_by_1", + "typeString": "int_const 125" + }, + "value": "125" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "9287:16:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "307830303931333132373139323265616136303634623733613232643062643466326266", + "id": 6838, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9306:36:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_192993274940365776401274035698589299391_by_1", + "typeString": "int_const 1929...(31 digits omitted)...9391" + }, + "value": "0x009131271922eaa6064b73a22d0bd4f2bf" + }, + "src": "9287:55:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6840, + "nodeType": "ExpressionStatement", + "src": "9287:55:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 6845, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6841, + "name": "maxExpArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6274, + "src": "9346:11:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 6843, + "indexExpression": { + "argumentTypes": null, + "hexValue": "313236", + "id": 6842, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9358:3:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_126_by_1", + "typeString": "int_const 126" + }, + "value": "126" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "9346:16:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "307830303862333830663335353836363863343663393163343961326638653936376239", + "id": 6844, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9365:36:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_185053768500776578446843424638883162041_by_1", + "typeString": "int_const 1850...(31 digits omitted)...2041" + }, + "value": "0x008b380f3558668c46c91c49a2f8e967b9" + }, + "src": "9346:55:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6846, + "nodeType": "ExpressionStatement", + "src": "9346:55:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 6851, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6847, + "name": "maxExpArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6274, + "src": "9405:11:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 6849, + "indexExpression": { + "argumentTypes": null, + "hexValue": "313237", + "id": 6848, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9417:3:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_127_by_1", + "typeString": "int_const 127" + }, + "value": "127" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "9405:16:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "307830303835376464663031313765666132313539353239313238333966363437336536", + "id": 6850, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9424:36:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_177440883610688295304820354615089591270_by_1", + "typeString": "int_const 1774...(31 digits omitted)...1270" + }, + "value": "0x00857ddf0117efa215952912839f6473e6" + }, + "src": "9405:55:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6852, + "nodeType": "ExpressionStatement", + "src": "9405:55:10" + } + ] + }, + "documentation": null, + "id": 6854, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "initMaxExpArray", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6275, + "nodeType": "ParameterList", + "parameters": [], + "src": "1837:2:10" + }, + "payable": false, + "returnParameters": { + "id": 6276, + "nodeType": "ParameterList", + "parameters": [], + "src": "1848:0:10" + }, + "scope": 11642, + "src": "1813:7651:10", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "private" + }, + { + "constant": false, + "id": 6858, + "name": "lambertArray", + "nodeType": "VariableDeclaration", + "scope": 11642, + "src": "9523:33:10", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128]" + }, + "typeName": { + "baseType": { + "id": 6855, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9523:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6857, + "length": { + "argumentTypes": null, + "hexValue": "313238", + "id": 6856, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9531:3:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + }, + "value": "128" + }, + "nodeType": "ArrayTypeName", + "src": "9523:12:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage_ptr", + "typeString": "uint256[128]" + } + }, + "value": null, + "visibility": "private" + }, + { + "body": { + "id": 7629, + "nodeType": "Block", + "src": "9596:7318:10", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 6865, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6861, + "name": "lambertArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6858, + "src": "9600:12:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 6863, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6862, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9613:1:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "9600:15:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30783630653339336336386432306231626430396465616162633033373362396335", + "id": 6864, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9618:34:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_128787536227304155647383678419039664581_by_1", + "typeString": "int_const 1287...(31 digits omitted)...4581" + }, + "value": "0x60e393c68d20b1bd09deaabc0373b9c5" + }, + "src": "9600:52:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6866, + "nodeType": "ExpressionStatement", + "src": "9600:52:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 6871, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6867, + "name": "lambertArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6858, + "src": "9656:12:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 6869, + "indexExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 6868, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9669:1:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "9656:15:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30783566386634366534383534313230393839656439343731396662346332303131", + "id": 6870, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9674:34:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_127020595924271037561532833511427022865_by_1", + "typeString": "int_const 1270...(31 digits omitted)...2865" + }, + "value": "0x5f8f46e4854120989ed94719fb4c2011" + }, + "src": "9656:52:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6872, + "nodeType": "ExpressionStatement", + "src": "9656:52:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 6877, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6873, + "name": "lambertArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6858, + "src": "9712:12:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 6875, + "indexExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 6874, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9725:1:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "9712:15:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30783565343739656262393132396662316237653732613634386639393262363036", + "id": 6876, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9730:34:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_125319304162047910149801695424990590470_by_1", + "typeString": "int_const 1253...(31 digits omitted)...0470" + }, + "value": "0x5e479ebb9129fb1b7e72a648f992b606" + }, + "src": "9712:52:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6878, + "nodeType": "ExpressionStatement", + "src": "9712:52:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 6883, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6879, + "name": "lambertArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6858, + "src": "9768:12:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 6881, + "indexExpression": { + "argumentTypes": null, + "hexValue": "33", + "id": 6880, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9781:1:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "9768:15:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30783564306264323366653432646665646465326539353836626531326238356665", + "id": 6882, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9786:34:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_123679583241450252008727309686047213054_by_1", + "typeString": "int_const 1236...(31 digits omitted)...3054" + }, + "value": "0x5d0bd23fe42dfedde2e9586be12b85fe" + }, + "src": "9768:52:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6884, + "nodeType": "ExpressionStatement", + "src": "9768:52:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 6889, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6885, + "name": "lambertArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6858, + "src": "9824:12:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 6887, + "indexExpression": { + "argumentTypes": null, + "hexValue": "34", + "id": 6886, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9837:1:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "9824:15:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30783562646232396464656539373933303864646663613831616565623830393561", + "id": 6888, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9842:34:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_122097709790504811543485325791668472154_by_1", + "typeString": "int_const 1220...(31 digits omitted)...2154" + }, + "value": "0x5bdb29ddee979308ddfca81aeeb8095a" + }, + "src": "9824:52:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6890, + "nodeType": "ExpressionStatement", + "src": "9824:52:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 6895, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6891, + "name": "lambertArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6858, + "src": "9880:12:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 6893, + "indexExpression": { + "argumentTypes": null, + "hexValue": "35", + "id": 6892, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9893:1:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_5_by_1", + "typeString": "int_const 5" + }, + "value": "5" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "9880:15:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30783561623466643861323630643263376532633064326166636630303039646164", + "id": 6894, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9898:34:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_120570275450071204896029314248949669293_by_1", + "typeString": "int_const 1205...(31 digits omitted)...9293" + }, + "value": "0x5ab4fd8a260d2c7e2c0d2afcf0009dad" + }, + "src": "9880:52:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6896, + "nodeType": "ExpressionStatement", + "src": "9880:52:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 6901, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6897, + "name": "lambertArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6858, + "src": "9936:12:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 6899, + "indexExpression": { + "argumentTypes": null, + "hexValue": "36", + "id": 6898, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9949:1:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_6_by_1", + "typeString": "int_const 6" + }, + "value": "6" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "9936:15:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30783539393862333133353961353564343837323463363563663039303031323231", + "id": 6900, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9954:34:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_119094152831753027058824439515169428001_by_1", + "typeString": "int_const 1190...(31 digits omitted)...8001" + }, + "value": "0x5998b31359a55d48724c65cf09001221" + }, + "src": "9936:52:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6902, + "nodeType": "ExpressionStatement", + "src": "9936:52:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 6907, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6903, + "name": "lambertArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6858, + "src": "9992:12:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 6905, + "indexExpression": { + "argumentTypes": null, + "hexValue": "37", + "id": 6904, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10005:1:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_7_by_1", + "typeString": "int_const 7" + }, + "value": "7" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "9992:15:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30783538383562636164326233323264666334336538383630663963303138636635", + "id": 6906, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10010:34:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_117666465924103849245162796602282314997_by_1", + "typeString": "int_const 1176...(31 digits omitted)...4997" + }, + "value": "0x5885bcad2b322dfc43e8860f9c018cf5" + }, + "src": "9992:52:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6908, + "nodeType": "ExpressionStatement", + "src": "9992:52:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 6913, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6909, + "name": "lambertArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6858, + "src": "10048:12:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 6911, + "indexExpression": { + "argumentTypes": null, + "hexValue": "38", + "id": 6910, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10061:1:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_8_by_1", + "typeString": "int_const 8" + }, + "value": "8" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "10048:15:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30783537376239376161316665323232626234353266646631313162316630626532", + "id": 6912, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10066:34:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_116284564269392660122793483482959907810_by_1", + "typeString": "int_const 1162...(31 digits omitted)...7810" + }, + "value": "0x577b97aa1fe222bb452fdf111b1f0be2" + }, + "src": "10048:52:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6914, + "nodeType": "ExpressionStatement", + "src": "10048:52:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 6919, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6915, + "name": "lambertArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6858, + "src": "10104:12:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 6917, + "indexExpression": { + "argumentTypes": null, + "hexValue": "39", + "id": 6916, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10117:1:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_9_by_1", + "typeString": "int_const 9" + }, + "value": "9" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "10104:15:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30783536373963623565333537353633326535626161323765326239343966373034", + "id": 6918, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10122:34:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_114946000350526915053586759724674184964_by_1", + "typeString": "int_const 1149...(31 digits omitted)...4964" + }, + "value": "0x5679cb5e3575632e5baa27e2b949f704" + }, + "src": "10104:52:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6920, + "nodeType": "ExpressionStatement", + "src": "10104:52:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 6925, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6921, + "name": "lambertArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6858, + "src": "10160:12:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 6923, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3130", + "id": 6922, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10173:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "10160:16:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30783535376665383234316233613331633833633733326631636466663461316335", + "id": 6924, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10179:34:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_113648509722420118059077800055408992709_by_1", + "typeString": "int_const 1136...(31 digits omitted)...2709" + }, + "value": "0x557fe8241b3a31c83c732f1cdff4a1c5" + }, + "src": "10160:53:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6926, + "nodeType": "ExpressionStatement", + "src": "10160:53:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 6931, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6927, + "name": "lambertArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6858, + "src": "10217:12:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 6929, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3131", + "id": 6928, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10230:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_11_by_1", + "typeString": "int_const 11" + }, + "value": "11" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "10217:16:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30783534386438363830323635303438373564366535396262653935666332613662", + "id": 6930, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10236:34:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_112389993498935521792135674271903787627_by_1", + "typeString": "int_const 1123...(31 digits omitted)...7627" + }, + "value": "0x548d868026504875d6e59bbe95fc2a6b" + }, + "src": "10217:53:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6932, + "nodeType": "ExpressionStatement", + "src": "10217:53:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 6937, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6933, + "name": "lambertArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6858, + "src": "10274:12:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 6935, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3132", + "id": 6934, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10287:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_12_by_1", + "typeString": "int_const 12" + }, + "value": "12" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "10274:16:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30783533613234363563653334376366333464303561383637633137646433303838", + "id": 6936, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10293:34:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_111168502869233775922830736618948472968_by_1", + "typeString": "int_const 1111...(31 digits omitted)...2968" + }, + "value": "0x53a2465ce347cf34d05a867c17dd3088" + }, + "src": "10274:53:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6938, + "nodeType": "ExpressionStatement", + "src": "10274:53:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 6943, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6939, + "name": "lambertArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6858, + "src": "10331:12:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 6941, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3133", + "id": 6940, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10344:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_13_by_1", + "typeString": "int_const 13" + }, + "value": "13" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "10331:16:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30783532626463653564636434666165643539633766353531316366386638616363", + "id": 6942, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10350:34:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_109982225368764407855921799421290842828_by_1", + "typeString": "int_const 1099...(31 digits omitted)...2828" + }, + "value": "0x52bdce5dcd4faed59c7f5511cf8f8acc" + }, + "src": "10331:53:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6944, + "nodeType": "ExpressionStatement", + "src": "10331:53:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 6949, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6945, + "name": "lambertArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6858, + "src": "10388:12:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 6947, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3134", + "id": 6946, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10401:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_14_by_1", + "typeString": "int_const 14" + }, + "value": "14" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "10388:16:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30783531646663623435336330376638646138313736303665373838356637633365", + "id": 6948, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10407:34:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_108829472672502945287330645348712414270_by_1", + "typeString": "int_const 1088...(31 digits omitted)...4270" + }, + "value": "0x51dfcb453c07f8da817606e7885f7c3e" + }, + "src": "10388:53:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6950, + "nodeType": "ExpressionStatement", + "src": "10388:53:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 6955, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6951, + "name": "lambertArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6858, + "src": "10445:12:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 6953, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3135", + "id": 6952, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10458:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_15_by_1", + "typeString": "int_const 15" + }, + "value": "15" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "10445:16:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30783531303765663662306135613262653866386666313535393064616133636365", + "id": 6954, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10464:34:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_107708669713100452055447769980296903886_by_1", + "typeString": "int_const 1077...(31 digits omitted)...3886" + }, + "value": "0x5107ef6b0a5a2be8f8ff15590daa3cce" + }, + "src": "10445:53:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6956, + "nodeType": "ExpressionStatement", + "src": "10445:53:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 6961, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6957, + "name": "lambertArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6858, + "src": "10502:12:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 6959, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3136", + "id": 6958, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10515:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_16_by_1", + "typeString": "int_const 16" + }, + "value": "16" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "10502:16:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30783530333566323431643665616530636437626163626131313939393364653762", + "id": 6960, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10521:34:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_106618344955764005172185288135427743355_by_1", + "typeString": "int_const 1066...(31 digits omitted)...3355" + }, + "value": "0x5035f241d6eae0cd7bacba119993de7b" + }, + "src": "10502:53:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6962, + "nodeType": "ExpressionStatement", + "src": "10502:53:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 6967, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6963, + "name": "lambertArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6858, + "src": "10559:12:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 6965, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3137", + "id": 6964, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10572:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_17_by_1", + "typeString": "int_const 17" + }, + "value": "17" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "10559:16:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30783466363938666539306435623533643533323137316531323130313634633636", + "id": 6966, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10578:34:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_105557121686023412139304113347686190182_by_1", + "typeString": "int_const 1055...(31 digits omitted)...0182" + }, + "value": "0x4f698fe90d5b53d532171e1210164c66" + }, + "src": "10559:53:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6968, + "nodeType": "ExpressionStatement", + "src": "10559:53:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 6973, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6969, + "name": "lambertArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6858, + "src": "10616:12:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 6971, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3138", + "id": 6970, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10629:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_18_by_1", + "typeString": "int_const 18" + }, + "value": "18" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "10616:16:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30783465613238386361323937613065366130396130656565323430653136633835", + "id": 6972, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10635:34:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_104523710186937447092740323392662629509_by_1", + "typeString": "int_const 1045...(31 digits omitted)...9509" + }, + "value": "0x4ea288ca297a0e6a09a0eee240e16c85" + }, + "src": "10616:53:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6974, + "nodeType": "ExpressionStatement", + "src": "10616:53:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 6979, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6975, + "name": "lambertArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6858, + "src": "10673:12:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 6977, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3139", + "id": 6976, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10686:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_19_by_1", + "typeString": "int_const 19" + }, + "value": "19" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "10673:16:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30783464653061313366646366356434323133666333393862613665336265636465", + "id": 6978, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10692:34:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_103516900699454640661508604755841903838_by_1", + "typeString": "int_const 1035...(31 digits omitted)...3838" + }, + "value": "0x4de0a13fdcf5d4213fc398ba6e3becde" + }, + "src": "10673:53:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6980, + "nodeType": "ExpressionStatement", + "src": "10673:53:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 6985, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6981, + "name": "lambertArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6858, + "src": "10730:12:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 6983, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3230", + "id": 6982, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10743:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_20_by_1", + "typeString": "int_const 20" + }, + "value": "20" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "10730:16:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30783464323361313435656566393166656330366230363134303830346334383038", + "id": 6984, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10749:34:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_102535557074135248197607991940341319688_by_1", + "typeString": "int_const 1025...(31 digits omitted)...9688" + }, + "value": "0x4d23a145eef91fec06b06140804c4808" + }, + "src": "10730:53:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6986, + "nodeType": "ExpressionStatement", + "src": "10730:53:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 6991, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6987, + "name": "lambertArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6858, + "src": "10787:12:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 6989, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3231", + "id": 6988, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10800:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_21_by_1", + "typeString": "int_const 21" + }, + "value": "21" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "10787:16:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30783463366235343330643463316565353532363437336462346165306631316465", + "id": 6990, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10806:34:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_101578611034720610581211104132006351326_by_1", + "typeString": "int_const 1015...(31 digits omitted)...1326" + }, + "value": "0x4c6b5430d4c1ee5526473db4ae0f11de" + }, + "src": "10787:53:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6992, + "nodeType": "ExpressionStatement", + "src": "10787:53:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 6997, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6993, + "name": "lambertArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6858, + "src": "10844:12:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 6995, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3232", + "id": 6994, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10857:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_22_by_1", + "typeString": "int_const 22" + }, + "value": "22" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "10844:16:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30783462623738383663323430353632656261313166343936336135336234323430", + "id": 6996, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10863:34:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_100645056984476184212709480501843018304_by_1", + "typeString": "int_const 1006...(31 digits omitted)...8304" + }, + "value": "0x4bb7886c240562eba11f4963a53b4240" + }, + "src": "10844:53:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6998, + "nodeType": "ExpressionStatement", + "src": "10844:53:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 7003, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6999, + "name": "lambertArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6858, + "src": "10901:12:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 7001, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3233", + "id": 7000, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10914:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_23_by_1", + "typeString": "int_const 23" + }, + "value": "23" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "10901:16:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30783462303830663366316362343931643264353231653065613435383335323165", + "id": 7002, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10920:34:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_99733947295139137817365771348103877150_by_1", + "typeString": "int_const 9973...(30 digits omitted)...7150" + }, + "value": "0x4b080f3f1cb491d2d521e0ea4583521e" + }, + "src": "10901:53:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7004, + "nodeType": "ExpressionStatement", + "src": "10901:53:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 7009, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7005, + "name": "lambertArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6858, + "src": "10958:12:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 7007, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3234", + "id": 7006, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10971:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_24_by_1", + "typeString": "int_const 24" + }, + "value": "24" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "10958:16:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30783461356362633936613035353839636234643836626531646233313638333634", + "id": 7008, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10977:34:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_98844388025919853370962885240683922276_by_1", + "typeString": "int_const 9884...(30 digits omitted)...2276" + }, + "value": "0x4a5cbc96a05589cb4d86be1db3168364" + }, + "src": "10958:53:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7010, + "nodeType": "ExpressionStatement", + "src": "10958:53:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 7015, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7011, + "name": "lambertArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6858, + "src": "11015:12:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 7013, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3235", + "id": 7012, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11028:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_25_by_1", + "typeString": "int_const 25" + }, + "value": "25" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "11015:16:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30783439623536366434303234333531373635386437386333333136326436656365", + "id": 7014, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11034:34:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_97975535026544040761524270664520658638_by_1", + "typeString": "int_const 9797...(30 digits omitted)...8638" + }, + "value": "0x49b566d40243517658d78c33162d6ece" + }, + "src": "11015:53:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7016, + "nodeType": "ExpressionStatement", + "src": "11015:53:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 7021, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7017, + "name": "lambertArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6858, + "src": "11072:12:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 7019, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3236", + "id": 7018, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11085:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_26_by_1", + "typeString": "int_const 26" + }, + "value": "26" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "11072:16:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30783439313165366130326535353037613330663934373338336664396133323736", + "id": 7020, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11091:34:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_97126590383947898169110886634107843190_by_1", + "typeString": "int_const 9712...(30 digits omitted)...3190" + }, + "value": "0x4911e6a02e5507a30f947383fd9a3276" + }, + "src": "11072:53:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7022, + "nodeType": "ExpressionStatement", + "src": "11072:53:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 7027, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7023, + "name": "lambertArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6858, + "src": "11129:12:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 7025, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3237", + "id": 7024, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11142:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_27_by_1", + "typeString": "int_const 27" + }, + "value": "27" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "11129:16:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30783438373231366332623331626534616463343164623861386435636330633838", + "id": 7026, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11148:34:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_96296799177093258962884240470124006536_by_1", + "typeString": "int_const 9629...(30 digits omitted)...6536" + }, + "value": "0x487216c2b31be4adc41db8a8d5cc0c88" + }, + "src": "11129:53:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7028, + "nodeType": "ExpressionStatement", + "src": "11129:53:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 7033, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7029, + "name": "lambertArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6858, + "src": "11186:12:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 7031, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3238", + "id": 7030, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11199:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_28_by_1", + "typeString": "int_const 28" + }, + "value": "28" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "11186:16:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30783437643564336663346137613162313838636433643738386235633565396663", + "id": 7032, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11205:34:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_95485446508569776991656929903084169724_by_1", + "typeString": "int_const 9548...(30 digits omitted)...9724" + }, + "value": "0x47d5d3fc4a7a1b188cd3d788b5c5e9fc" + }, + "src": "11186:53:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7034, + "nodeType": "ExpressionStatement", + "src": "11186:53:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 7039, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7035, + "name": "lambertArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6858, + "src": "11243:12:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 7037, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3239", + "id": 7036, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11256:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_29_by_1", + "typeString": "int_const 29" + }, + "value": "29" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "11243:16:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30783437336366636534383731613263343062633466396531633332623935356430", + "id": 7038, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11262:34:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_94691854785294407482575606759428806096_by_1", + "typeString": "int_const 9469...(30 digits omitted)...6096" + }, + "value": "0x473cfce4871a2c40bc4f9e1c32b955d0" + }, + "src": "11243:53:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7040, + "nodeType": "ExpressionStatement", + "src": "11243:53:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 7045, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7041, + "name": "lambertArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6858, + "src": "11300:12:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 7043, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3330", + "id": 7042, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11313:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_30_by_1", + "typeString": "int_const 30" + }, + "value": "30" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "11300:16:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30783436613737316361353738616238373834383538313065323835653331633637", + "id": 7044, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11319:34:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_93915381223786366589204098840684338279_by_1", + "typeString": "int_const 9391...(30 digits omitted)...8279" + }, + "value": "0x46a771ca578ab878485810e285e31c67" + }, + "src": "11300:53:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7046, + "nodeType": "ExpressionStatement", + "src": "11300:53:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 7051, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7047, + "name": "lambertArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6858, + "src": "11357:12:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 7049, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3331", + "id": 7048, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11370:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_31_by_1", + "typeString": "int_const 31" + }, + "value": "31" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "11357:16:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30783436313531343937313861656434633235386333373364633637366161373264", + "id": 7050, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11376:34:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_93155415558256953225873119289193178925_by_1", + "typeString": "int_const 9315...(30 digits omitted)...8925" + }, + "value": "0x4615149718aed4c258c373dc676aa72d" + }, + "src": "11357:53:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7052, + "nodeType": "ExpressionStatement", + "src": "11357:53:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 7057, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7053, + "name": "lambertArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6858, + "src": "11414:12:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 7055, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3332", + "id": 7054, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11427:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + "value": "32" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "11414:16:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30783435383563386233663866653438396336653138333363613437383731333834", + "id": 7056, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11433:34:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_92411377932165840182246144520510444420_by_1", + "typeString": "int_const 9241...(30 digits omitted)...4420" + }, + "value": "0x4585c8b3f8fe489c6e1833ca47871384" + }, + "src": "11414:53:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7058, + "nodeType": "ExpressionStatement", + "src": "11414:53:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 7063, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7059, + "name": "lambertArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6858, + "src": "11471:12:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 7061, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3333", + "id": 7060, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11484:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_33_by_1", + "typeString": "int_const 33" + }, + "value": "33" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "11471:16:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30783434663937326631373465343165356566623765396436336332396365373335", + "id": 7062, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11490:34:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_91682716956007473314355351160117585717_by_1", + "typeString": "int_const 9168...(30 digits omitted)...5717" + }, + "value": "0x44f972f174e41e5efb7e9d63c29ce735" + }, + "src": "11471:53:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7064, + "nodeType": "ExpressionStatement", + "src": "11471:53:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 7069, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7065, + "name": "lambertArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6858, + "src": "11528:12:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 7067, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3334", + "id": 7066, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11541:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_34_by_1", + "typeString": "int_const 34" + }, + "value": "34" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "11528:16:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30783434366666393730626138366438623030626562303565636562663363346463", + "id": 7068, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11547:34:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_90968907915944387253011725111639917788_by_1", + "typeString": "int_const 9096...(30 digits omitted)...7788" + }, + "value": "0x446ff970ba86d8b00beb05ecebf3c4dc" + }, + "src": "11528:53:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7070, + "nodeType": "ExpressionStatement", + "src": "11528:53:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 7075, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7071, + "name": "lambertArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6858, + "src": "11585:12:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 7073, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3335", + "id": 7072, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11598:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_35_by_1", + "typeString": "int_const 35" + }, + "value": "35" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "11585:16:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30783433653934333865633838393731383132643666313938623563636161643936", + "id": 7074, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11604:34:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_90269451119533660821329652693370318230_by_1", + "typeString": "int_const 9026...(30 digits omitted)...8230" + }, + "value": "0x43e9438ec88971812d6f198b5ccaad96" + }, + "src": "11585:53:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7076, + "nodeType": "ExpressionStatement", + "src": "11585:53:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 7081, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7077, + "name": "lambertArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6858, + "src": "11642:12:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 7079, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3336", + "id": 7078, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11655:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_36_by_1", + "typeString": "int_const 36" + }, + "value": "36" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "11642:16:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30783433363533396431316666376265613635376165646462333934653830396566", + "id": 7080, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11661:34:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_89583870366228295001513378307654552047_by_1", + "typeString": "int_const 8958...(30 digits omitted)...2047" + }, + "value": "0x436539d11ff7bea657aeddb394e809ef" + }, + "src": "11642:53:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7082, + "nodeType": "ExpressionStatement", + "src": "11642:53:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 7087, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7083, + "name": "lambertArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6858, + "src": "11699:12:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 7085, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3337", + "id": 7084, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11712:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_37_by_1", + "typeString": "int_const 37" + }, + "value": "37" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "11699:16:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30783432653363356433653561393133343031643836663636646235643831633263", + "id": 7086, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11718:34:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_88911711531602529992461785625724984364_by_1", + "typeString": "int_const 8891...(30 digits omitted)...4364" + }, + "value": "0x42e3c5d3e5a913401d86f66db5d81c2c" + }, + "src": "11699:53:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7088, + "nodeType": "ExpressionStatement", + "src": "11699:53:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 7093, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7089, + "name": "lambertArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6858, + "src": "11756:12:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 7091, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3338", + "id": 7090, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11769:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_38_by_1", + "typeString": "int_const 38" + }, + "value": "38" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "11756:16:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30783432363464323339353330333037306561373236636265393864663632313734", + "id": 7092, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11775:34:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_88252541255370876457855407534749655412_by_1", + "typeString": "int_const 8825...(30 digits omitted)...5412" + }, + "value": "0x4264d2395303070ea726cbe98df62174" + }, + "src": "11756:53:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7094, + "nodeType": "ExpressionStatement", + "src": "11756:53:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 7099, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7095, + "name": "lambertArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6858, + "src": "11813:12:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 7097, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3339", + "id": 7096, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11826:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_39_by_1", + "typeString": "int_const 39" + }, + "value": "39" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "11813:16:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30783431653834613961353933626237313934633361363334396563616534656561", + "id": 7098, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11832:34:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_87605945724263666326070648659277401834_by_1", + "typeString": "int_const 8760...(30 digits omitted)...1834" + }, + "value": "0x41e84a9a593bb7194c3a6349ecae4eea" + }, + "src": "11813:53:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7100, + "nodeType": "ExpressionStatement", + "src": "11813:53:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 7105, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7101, + "name": "lambertArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6858, + "src": "11870:12:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 7103, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3430", + "id": 7102, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11883:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_40_by_1", + "typeString": "int_const 40" + }, + "value": "40" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "11870:16:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30783431366531623738356431336562613037613038663366313838373661356162", + "id": 7104, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11889:34:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_86971529541703351305061613312515941803_by_1", + "typeString": "int_const 8697...(30 digits omitted)...1803" + }, + "value": "0x416e1b785d13eba07a08f3f18876a5ab" + }, + "src": "11870:53:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7106, + "nodeType": "ExpressionStatement", + "src": "11870:53:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 7111, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7107, + "name": "lambertArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6858, + "src": "11927:12:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 7109, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3431", + "id": 7108, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11940:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_41_by_1", + "typeString": "int_const 41" + }, + "value": "41" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "11927:16:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30783430663633323266663338396434323362613964643765376537623765383039", + "id": 7110, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11946:34:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_86348914677009486241058826509159491593_by_1", + "typeString": "int_const 8634...(30 digits omitted)...1593" + }, + "value": "0x40f6322ff389d423ba9dd7e7e7b7e809" + }, + "src": "11927:53:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7112, + "nodeType": "ExpressionStatement", + "src": "11927:53:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 7117, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7113, + "name": "lambertArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6858, + "src": "11984:12:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 7115, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3432", + "id": 7114, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11997:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_42_by_1", + "typeString": "int_const 42" + }, + "value": "42" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "11984:16:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30783430383037636563386134363638383065636634313834353435643234306134", + "id": 7116, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12003:34:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_85737739487558329642902199100859629732_by_1", + "typeString": "int_const 8573...(30 digits omitted)...9732" + }, + "value": "0x40807cec8a466880ecf4184545d240a4" + }, + "src": "11984:53:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7118, + "nodeType": "ExpressionStatement", + "src": "11984:53:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 7123, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7119, + "name": "lambertArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6858, + "src": "12041:12:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 7121, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3433", + "id": 7120, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12054:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_43_by_1", + "typeString": "int_const 43" + }, + "value": "43" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "12041:16:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30783430306365613963653838613864336165363638653865613064396266303766", + "id": 7122, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12060:34:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_85137657807945661495348777847187304575_by_1", + "typeString": "int_const 8513...(30 digits omitted)...4575" + }, + "value": "0x400cea9ce88a8d3ae668e8ea0d9bf07f" + }, + "src": "12041:53:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7124, + "nodeType": "ExpressionStatement", + "src": "12041:53:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 7129, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7125, + "name": "lambertArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6858, + "src": "12098:12:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 7127, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3434", + "id": 7126, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12111:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_44_by_1", + "typeString": "int_const 44" + }, + "value": "44" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "12098:16:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30783366396236616538373732643463353530393165306564376466656130616331", + "id": 7128, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12117:34:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_84548338100757766960858976604962556609_by_1", + "typeString": "int_const 8454...(30 digits omitted)...6609" + }, + "value": "0x3f9b6ae8772d4c55091e0ed7dfea0ac1" + }, + "src": "12098:53:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7130, + "nodeType": "ExpressionStatement", + "src": "12098:53:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 7135, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7131, + "name": "lambertArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6858, + "src": "12155:12:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 7133, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3435", + "id": 7132, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12168:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_45_by_1", + "typeString": "int_const 45" + }, + "value": "45" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "12155:16:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30783366326265653235336664383435393466353462636161666163333833613133", + "id": 7134, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12174:34:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_83969462664053391893170430711084628499_by_1", + "typeString": "int_const 8396...(30 digits omitted)...8499" + }, + "value": "0x3f2bee253fd84594f54bcaafac383a13" + }, + "src": "12155:53:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7136, + "nodeType": "ExpressionStatement", + "src": "12155:53:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 7141, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7137, + "name": "lambertArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6858, + "src": "12212:12:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 7139, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3436", + "id": 7138, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12225:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_46_by_1", + "typeString": "int_const 46" + }, + "value": "46" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "12212:16:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30783365626536353465393532303862623932313063353735633038316335393538", + "id": 7140, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12231:34:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_83400726891105658214366213255032756568_by_1", + "typeString": "int_const 8340...(30 digits omitted)...6568" + }, + "value": "0x3ebe654e95208bb9210c575c081c5958" + }, + "src": "12212:53:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7142, + "nodeType": "ExpressionStatement", + "src": "12212:53:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 7147, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7143, + "name": "lambertArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6858, + "src": "12269:12:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 7145, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3437", + "id": 7144, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12282:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_47_by_1", + "typeString": "int_const 47" + }, + "value": "47" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "12269:16:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30783365353263316663353636353633356237386365316630356164353363303836", + "id": 7146, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12288:34:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_82841838578353379906637631327369937030_by_1", + "typeString": "int_const 8284...(30 digits omitted)...7030" + }, + "value": "0x3e52c1fc5665635b78ce1f05ad53c086" + }, + "src": "12269:53:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7148, + "nodeType": "ExpressionStatement", + "src": "12269:53:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 7153, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7149, + "name": "lambertArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6858, + "src": "12326:12:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 7151, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3438", + "id": 7150, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12339:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_48_by_1", + "typeString": "int_const 48" + }, + "value": "48" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "12326:16:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30783364653866363561633338383130316464663731386136663563316566663635", + "id": 7152, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12345:34:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_82292517277871139787215964642962505573_by_1", + "typeString": "int_const 8229...(30 digits omitted)...5573" + }, + "value": "0x3de8f65ac388101ddf718a6f5c1eff65" + }, + "src": "12326:53:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7154, + "nodeType": "ExpressionStatement", + "src": "12326:53:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 7159, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7155, + "name": "lambertArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6858, + "src": "12383:12:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 7157, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3439", + "id": 7156, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12396:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_49_by_1", + "typeString": "int_const 49" + }, + "value": "49" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "12383:16:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30783364383066353232643539626430623332386361303132646634636432643439", + "id": 7158, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12402:34:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_81752493690991422478947035708677500233_by_1", + "typeString": "int_const 8175...(30 digits omitted)...0233" + }, + "value": "0x3d80f522d59bd0b328ca012df4cd2d49" + }, + "src": "12383:53:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7160, + "nodeType": "ExpressionStatement", + "src": "12383:53:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 7165, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7161, + "name": "lambertArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6858, + "src": "12440:12:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 7163, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3530", + "id": 7162, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12453:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_50_by_1", + "typeString": "int_const 50" + }, + "value": "50" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "12440:16:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30783364316162313933313239656137326232333634386131363131363361383561", + "id": 7164, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12459:34:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_81221509100004039595242960659394308186_by_1", + "typeString": "int_const 8122...(30 digits omitted)...8186" + }, + "value": "0x3d1ab193129ea72b23648a161163a85a" + }, + "src": "12440:53:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7166, + "nodeType": "ExpressionStatement", + "src": "12440:53:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 7171, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7167, + "name": "lambertArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6858, + "src": "12497:12:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 7169, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3531", + "id": 7168, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12510:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_51_by_1", + "typeString": "int_const 51" + }, + "value": "51" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "12497:16:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30783363623631663638643332353736633133356239356366623533663736643735", + "id": 7170, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12516:34:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_80699314835121533818862589255787965813_by_1", + "typeString": "int_const 8069...(30 digits omitted)...5813" + }, + "value": "0x3cb61f68d32576c135b95cfb53f76d75" + }, + "src": "12497:53:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7172, + "nodeType": "ExpressionStatement", + "src": "12497:53:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 7177, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7173, + "name": "lambertArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6858, + "src": "12554:12:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 7175, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3532", + "id": 7174, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12567:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_52_by_1", + "typeString": "int_const 52" + }, + "value": "52" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "12554:16:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30783363353333326439663161616538353161333631396537376534636338343733", + "id": 7176, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12573:34:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_80185671774137293097540719362983101555_by_1", + "typeString": "int_const 8018...(30 digits omitted)...1555" + }, + "value": "0x3c5332d9f1aae851a3619e77e4cc8473" + }, + "src": "12554:53:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7178, + "nodeType": "ExpressionStatement", + "src": "12554:53:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 7183, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7179, + "name": "lambertArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6858, + "src": "12611:12:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 7181, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3533", + "id": 7180, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12624:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_53_by_1", + "typeString": "int_const 53" + }, + "value": "53" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "12611:16:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30783362663165303865646265326161313039653135323566363537353965663733", + "id": 7182, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12630:34:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_79680349872418462454459890475122421619_by_1", + "typeString": "int_const 7968...(30 digits omitted)...1619" + }, + "value": "0x3bf1e08edbe2aa109e1525f65759ef73" + }, + "src": "12611:53:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7184, + "nodeType": "ExpressionStatement", + "src": "12611:53:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 7189, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7185, + "name": "lambertArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6858, + "src": "12668:12:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 7187, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3534", + "id": 7186, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12681:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_54_by_1", + "typeString": "int_const 54" + }, + "value": "54" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "12668:16:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30783362393231643963666631336661326331393737343661336466633439313866", + "id": 7188, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12687:34:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_79183127721070807958897168260236874127_by_1", + "typeString": "int_const 7918...(30 digits omitted)...4127" + }, + "value": "0x3b921d9cff13fa2c197746a3dfc4918f" + }, + "src": "12668:53:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7190, + "nodeType": "ExpressionStatement", + "src": "12668:53:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 7195, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7191, + "name": "lambertArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6858, + "src": "12725:12:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 7193, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3535", + "id": 7192, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12738:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_55_by_1", + "typeString": "int_const 55" + }, + "value": "55" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "12725:16:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30783362333364663831383931306266633161356165666238663633616532616334", + "id": 7194, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12744:34:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_78693792131289586075780460739283528388_by_1", + "typeString": "int_const 7869...(30 digits omitted)...8388" + }, + "value": "0x3b33df818910bfc1a5aefb8f63ae2ac4" + }, + "src": "12725:53:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7196, + "nodeType": "ExpressionStatement", + "src": "12725:53:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 7201, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7197, + "name": "lambertArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6858, + "src": "12782:12:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 7199, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3536", + "id": 7198, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12795:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_56_by_1", + "typeString": "int_const 56" + }, + "value": "56" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "12782:16:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30783361643731633163373765333466613332613966313834393637656363626636", + "id": 7200, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12801:34:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_78212137743071079621363404241290185718_by_1", + "typeString": "int_const 7821...(30 digits omitted)...5718" + }, + "value": "0x3ad71c1c77e34fa32a9f184967eccbf6" + }, + "src": "12782:53:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7202, + "nodeType": "ExpressionStatement", + "src": "12782:53:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 7207, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7203, + "name": "lambertArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6858, + "src": "12839:12:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 7205, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3537", + "id": 7204, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12852:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_57_by_1", + "typeString": "int_const 57" + }, + "value": "57" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "12839:16:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30783361376263396162663263356262353365326637333834613861313635323161", + "id": 7206, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12858:34:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_77737966656605443744883248223254630938_by_1", + "typeString": "int_const 7773...(30 digits omitted)...0938" + }, + "value": "0x3a7bc9abf2c5bb53e2f7384a8a16521a" + }, + "src": "12839:53:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7208, + "nodeType": "ExpressionStatement", + "src": "12839:53:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 7213, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7209, + "name": "lambertArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6858, + "src": "12896:12:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 7211, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3538", + "id": 7210, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12909:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_58_by_1", + "typeString": "int_const 58" + }, + "value": "58" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "12896:16:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30783361323164656337653736333639373833613638613063363338356131633537", + "id": 7212, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12915:34:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_77271088084804339940770953226756955223_by_1", + "typeString": "int_const 7727...(30 digits omitted)...5223" + }, + "value": "0x3a21dec7e76369783a68a0c6385a1c57" + }, + "src": "12896:53:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7214, + "nodeType": "ExpressionStatement", + "src": "12896:53:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 7219, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7215, + "name": "lambertArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6858, + "src": "12953:12:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 7217, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3539", + "id": 7216, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12966:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_59_by_1", + "typeString": "int_const 59" + }, + "value": "59" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "12953:16:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30783339633935323564653663396364663763316331353763613461376136656533", + "id": 7218, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12972:34:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_76811318025537837376498009672859152099_by_1", + "typeString": "int_const 7681...(30 digits omitted)...2099" + }, + "value": "0x39c9525de6c9cdf7c1c157ca4a7a6ee3" + }, + "src": "12953:53:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7220, + "nodeType": "ExpressionStatement", + "src": "12953:53:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 7225, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7221, + "name": "lambertArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6858, + "src": "13010:12:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 7223, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3630", + "id": 7222, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13023:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_60_by_1", + "typeString": "int_const 60" + }, + "value": "60" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "13010:16:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30783339373231626164336463383564313234306666303139306530616461616333", + "id": 7224, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13029:34:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_76358478952265398947834068366573546179_by_1", + "typeString": "int_const 7635...(30 digits omitted)...6179" + }, + "value": "0x39721bad3dc85d1240ff0190e0adaac3" + }, + "src": "13010:53:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7226, + "nodeType": "ExpressionStatement", + "src": "13010:53:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 7231, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7227, + "name": "lambertArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6858, + "src": "13067:12:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 7229, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3631", + "id": 7228, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13080:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_61_by_1", + "typeString": "int_const 61" + }, + "value": "61" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "13067:16:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30783339316333323433343464333234386630343639656232386464336437376530", + "id": 7230, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13086:34:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_75912399521846487627533653549497808864_by_1", + "typeString": "int_const 7591...(30 digits omitted)...8864" + }, + "value": "0x391c324344d3248f0469eb28dd3d77e0" + }, + "src": "13067:53:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7232, + "nodeType": "ExpressionStatement", + "src": "13067:53:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 7237, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7233, + "name": "lambertArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6858, + "src": "13124:12:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 7235, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3632", + "id": 7234, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13137:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_62_by_1", + "typeString": "int_const 62" + }, + "value": "62" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "13124:16:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30783338633738646637653363373936323739666234666638343339346162336461", + "id": 7236, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13143:34:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_75472914298408358042964121331947975642_by_1", + "typeString": "int_const 7547...(30 digits omitted)...5642" + }, + "value": "0x38c78df7e3c796279fb4ff84394ab3da" + }, + "src": "13124:53:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7238, + "nodeType": "ExpressionStatement", + "src": "13124:53:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 7243, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7239, + "name": "lambertArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6858, + "src": "13181:12:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 7241, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3633", + "id": 7240, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13194:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_63_by_1", + "typeString": "int_const 63" + }, + "value": "63" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "13181:16:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30783338373432366561343633386165396161653038303439643335353463323061", + "id": 7242, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13200:34:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_75039863492232771067353298784442696202_by_1", + "typeString": "int_const 7503...(30 digits omitted)...6202" + }, + "value": "0x387426ea4638ae9aae08049d3554c20a" + }, + "src": "13181:53:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7244, + "nodeType": "ExpressionStatement", + "src": "13181:53:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 7249, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7245, + "name": "lambertArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6858, + "src": "13238:12:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 7247, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3634", + "id": 7246, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13251:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_64_by_1", + "typeString": "int_const 64" + }, + "value": "64" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "13238:16:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30783338323166353764626432373633323536633161393962626432303531333738", + "id": 7248, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13257:34:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_74613092712700430304450998910501327736_by_1", + "typeString": "int_const 7461...(30 digits omitted)...7736" + }, + "value": "0x3821f57dbd2763256c1a99bbd2051378" + }, + "src": "13238:53:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7250, + "nodeType": "ExpressionStatement", + "src": "13238:53:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 7255, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7251, + "name": "lambertArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6858, + "src": "13295:12:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 7253, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3635", + "id": 7252, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13308:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_65_by_1", + "typeString": "int_const 65" + }, + "value": "65" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "13295:16:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30783337643066323536636234366138633932666636326662626566323839363938", + "id": 7254, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13314:34:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_74192452734402555957346115989134677656_by_1", + "typeString": "int_const 7419...(30 digits omitted)...7656" + }, + "value": "0x37d0f256cb46a8c92ff62fbbef289698" + }, + "src": "13295:53:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7256, + "nodeType": "ExpressionStatement", + "src": "13295:53:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 7261, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7257, + "name": "lambertArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6858, + "src": "13352:12:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 7259, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3636", + "id": 7258, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13365:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_66_by_1", + "typeString": "int_const 66" + }, + "value": "66" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "13352:16:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30783337383131363538353931666663376162646431666561663363656639623733", + "id": 7260, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13371:34:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_73777799275593782240843075749260794739_by_1", + "typeString": "int_const 7377...(30 digits omitted)...4739" + }, + "value": "0x37811658591ffc7abdd1feaf3cef9b73" + }, + "src": "13352:53:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7262, + "nodeType": "ExpressionStatement", + "src": "13352:53:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 7267, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7263, + "name": "lambertArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6858, + "src": "13409:12:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 7265, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3637", + "id": 7264, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13422:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_67_by_1", + "typeString": "int_const 67" + }, + "value": "67" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "13409:16:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30783337333235616131306539653832663764663066333830663739393731353462", + "id": 7266, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13428:34:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_73368992788220026735092049811183441227_by_1", + "typeString": "int_const 7336...(30 digits omitted)...1227" + }, + "value": "0x37325aa10e9e82f7df0f380f7997154b" + }, + "src": "13409:53:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7268, + "nodeType": "ExpressionStatement", + "src": "13409:53:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 7273, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7269, + "name": "lambertArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6858, + "src": "13466:12:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 7271, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3638", + "id": 7270, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13479:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_68_by_1", + "typeString": "int_const 68" + }, + "value": "68" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "13466:16:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30783336653462383838636662343038643837336239613830643433393331316336", + "id": 7272, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13485:34:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_72965898258809617135734979750291247558_by_1", + "typeString": "int_const 7296...(30 digits omitted)...7558" + }, + "value": "0x36e4b888cfb408d873b9a80d439311c6" + }, + "src": "13466:53:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7274, + "nodeType": "ExpressionStatement", + "src": "13466:53:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 7279, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7275, + "name": "lambertArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6858, + "src": "13523:12:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 7277, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3639", + "id": 7276, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13536:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_69_by_1", + "typeString": "int_const 69" + }, + "value": "69" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "13523:16:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30783336393832393965353966346262396465363435666339623038633634636361", + "id": 7278, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13542:34:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_72568385019566207677944681290529131722_by_1", + "typeString": "int_const 7256...(30 digits omitted)...1722" + }, + "value": "0x3698299e59f4bb9de645fc9b08c64cca" + }, + "src": "13523:53:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7280, + "nodeType": "ExpressionStatement", + "src": "13523:53:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 7285, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7281, + "name": "lambertArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6858, + "src": "13580:12:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 7283, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3730", + "id": 7282, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13593:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_70_by_1", + "typeString": "int_const 70" + }, + "value": "70" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "13580:16:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30783336346361376135303132636236303330323362353764643365626664353064", + "id": 7284, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13599:34:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_72176326569048265991235723170299237645_by_1", + "typeString": "int_const 7217...(30 digits omitted)...7645" + }, + "value": "0x364ca7a5012cb603023b57dd3ebfd50d" + }, + "src": "13580:53:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7286, + "nodeType": "ExpressionStatement", + "src": "13580:53:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 7291, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7287, + "name": "lambertArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6858, + "src": "13637:12:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 7289, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3731", + "id": 7288, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13650:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_71_by_1", + "typeString": "int_const 71" + }, + "value": "71" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "13637:16:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30783336303232633932383931356237373861623162303661616565376536316434", + "id": 7290, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13656:34:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_71789600401862514754895875938526847444_by_1", + "typeString": "int_const 7178...(30 digits omitted)...7444" + }, + "value": "0x36022c928915b778ab1b06aaee7e61d4" + }, + "src": "13637:53:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7292, + "nodeType": "ExpressionStatement", + "src": "13637:53:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 7297, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7293, + "name": "lambertArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6858, + "src": "13694:12:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 7295, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3732", + "id": 7294, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13707:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_72_by_1", + "typeString": "int_const 72" + }, + "value": "72" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "13694:16:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30783335623862323864316137336463323735303066666533353535396363303238", + "id": 7296, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13713:34:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_71408087846837990426587462311123664936_by_1", + "typeString": "int_const 7140...(30 digits omitted)...4936" + }, + "value": "0x35b8b28d1a73dc27500ffe35559cc028" + }, + "src": "13694:53:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7298, + "nodeType": "ExpressionStatement", + "src": "13694:53:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 7303, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7299, + "name": "lambertArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6858, + "src": "13751:12:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 7301, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3733", + "id": 7300, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13764:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_73_by_1", + "typeString": "int_const 73" + }, + "value": "73" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "13751:16:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30783335373033336539353166653235306563356562346536303935353133326437", + "id": 7302, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13770:34:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_71031673913183621970866398796903953111_by_1", + "typeString": "int_const 7103...(30 digits omitted)...3111" + }, + "value": "0x357033e951fe250ec5eb4e60955132d7" + }, + "src": "13751:53:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7304, + "nodeType": "ExpressionStatement", + "src": "13751:53:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 7309, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7305, + "name": "lambertArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6858, + "src": "13808:12:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 7307, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3734", + "id": 7306, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13821:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_74_by_1", + "typeString": "int_const 74" + }, + "value": "74" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "13808:16:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30783335323861623238363739333465336132316235343132653463346638383831", + "id": 7308, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13827:34:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_70660247144165696899266624685710739585_by_1", + "typeString": "int_const 7066...(30 digits omitted)...9585" + }, + "value": "0x3528ab2867934e3a21b5412e4c4f8881" + }, + "src": "13808:53:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7310, + "nodeType": "ExpressionStatement", + "src": "13808:53:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 7315, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7311, + "name": "lambertArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6858, + "src": "13865:12:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 7313, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3735", + "id": 7312, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13878:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_75_by_1", + "typeString": "int_const 75" + }, + "value": "75" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "13865:16:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30783334653231326636366335353035376639363736633830303934613631643539", + "id": 7314, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13884:34:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_70293699477872506394924034036542610777_by_1", + "typeString": "int_const 7029...(30 digits omitted)...0777" + }, + "value": "0x34e212f66c55057f9676c80094a61d59" + }, + "src": "13865:53:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7316, + "nodeType": "ExpressionStatement", + "src": "13865:53:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 7321, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7317, + "name": "lambertArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6858, + "src": "13922:12:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 7319, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3736", + "id": 7318, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13935:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_76_by_1", + "typeString": "int_const 76" + }, + "value": "76" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "13922:16:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30783334396336363238396535623363346235343063323466343266613462396262", + "id": 7320, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13941:34:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_69931926114662060074913956973764721083_by_1", + "typeString": "int_const 6993...(30 digits omitted)...1083" + }, + "value": "0x349c66289e5b3c4b540c24f42fa4b9bb" + }, + "src": "13922:53:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7322, + "nodeType": "ExpressionStatement", + "src": "13922:53:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 7327, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7323, + "name": "lambertArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6858, + "src": "13979:12:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 7325, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3737", + "id": 7324, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13992:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_77_by_1", + "typeString": "int_const 77" + }, + "value": "77" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "13979:16:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30783334353739666262643063373333613963386436616636623066376430306637", + "id": 7326, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13998:34:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_69574825390915228431314065557192245495_by_1", + "typeString": "int_const 6957...(30 digits omitted)...5495" + }, + "value": "0x34579fbbd0c733a9c8d6af6b0f7d00f7" + }, + "src": "13979:53:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7328, + "nodeType": "ExpressionStatement", + "src": "13979:53:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 7333, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7329, + "name": "lambertArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6858, + "src": "14036:12:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 7331, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3738", + "id": 7330, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14049:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_78_by_1", + "typeString": "int_const 78" + }, + "value": "78" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "14036:16:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30783334313362616432653731323238386239323462353838326235623336396266", + "id": 7332, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14055:34:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_69222298658741183724931927301015431615_by_1", + "typeString": "int_const 6922...(30 digits omitted)...1615" + }, + "value": "0x3413bad2e712288b924b5882b5b369bf" + }, + "src": "14036:53:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7334, + "nodeType": "ExpressionStatement", + "src": "14036:53:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 7339, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7335, + "name": "lambertArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6858, + "src": "14093:12:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 7337, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3739", + "id": 7336, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14106:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_79_by_1", + "typeString": "int_const 79" + }, + "value": "79" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "14093:16:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30783333643062326235363238363531306566373330653231336637316631326539", + "id": 7338, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14112:34:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_68874250171304728554080761972223054569_by_1", + "typeString": "int_const 6887...(30 digits omitted)...4569" + }, + "value": "0x33d0b2b56286510ef730e213f71f12e9" + }, + "src": "14093:53:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7340, + "nodeType": "ExpressionStatement", + "src": "14093:53:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 7345, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7341, + "name": "lambertArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6858, + "src": "14150:12:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 7343, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3830", + "id": 7342, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14163:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_80_by_1", + "typeString": "int_const 80" + }, + "value": "80" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "14150:16:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30783333386538326365303065323439363236326336343435373533356261316131", + "id": 7344, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14169:34:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_68530586973466171479838674269845037473_by_1", + "typeString": "int_const 6853...(30 digits omitted)...7473" + }, + "value": "0x338e82ce00e2496262c64457535ba1a1" + }, + "src": "14150:53:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7346, + "nodeType": "ExpressionStatement", + "src": "14150:53:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 7351, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7347, + "name": "lambertArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6858, + "src": "14207:12:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 7349, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3831", + "id": 7348, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14220:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_81_by_1", + "typeString": "int_const 81" + }, + "value": "81" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "14207:16:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30783333346432366139366233373362623763326638656131383237663237613932", + "id": 7350, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14226:34:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_68191218797443963900028789779252542098_by_1", + "typeString": "int_const 6819...(30 digits omitted)...2098" + }, + "value": "0x334d26a96b373bb7c2f8ea1827f27a92" + }, + "src": "14207:53:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7352, + "nodeType": "ExpressionStatement", + "src": "14207:53:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 7357, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7353, + "name": "lambertArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6858, + "src": "14264:12:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 7355, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3832", + "id": 7354, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14277:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_82_by_1", + "typeString": "int_const 82" + }, + "value": "82" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "14264:16:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30783333306339396634663432313134363965303062336531386333313437356561", + "id": 7356, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14283:34:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_67856057963228472984547093013750642154_by_1", + "typeString": "int_const 6785...(30 digits omitted)...2154" + }, + "value": "0x330c99f4f4211469e00b3e18c31475ea" + }, + "src": "14264:53:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7358, + "nodeType": "ExpressionStatement", + "src": "14264:53:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 7363, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7359, + "name": "lambertArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6858, + "src": "14321:12:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 7361, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3833", + "id": 7360, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14334:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_83_by_1", + "typeString": "int_const 83" + }, + "value": "83" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "14321:16:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30783332636364383764363438363039343939396337643565366633333233376438", + "id": 7362, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14340:34:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_67525019283492142426218937050010367960_by_1", + "typeString": "int_const 6752...(30 digits omitted)...7960" + }, + "value": "0x32ccd87d6486094999c7d5e6f33237d8" + }, + "src": "14321:53:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7364, + "nodeType": "ExpressionStatement", + "src": "14321:53:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 7369, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7365, + "name": "lambertArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6858, + "src": "14378:12:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 7367, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3834", + "id": 7366, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14391:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_84_by_1", + "typeString": "int_const 84" + }, + "value": "84" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "14378:16:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30783332386464653264643631376236363635613265383535366632353063316166", + "id": 7368, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14397:34:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_67198019972756986907927497888446333359_by_1", + "typeString": "int_const 6719...(30 digits omitted)...3359" + }, + "value": "0x328dde2dd617b6665a2e8556f250c1af" + }, + "src": "14378:53:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7370, + "nodeType": "ExpressionStatement", + "src": "14378:53:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 7375, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7371, + "name": "lambertArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6858, + "src": "14435:12:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 7373, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3835", + "id": 7372, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14448:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_85_by_1", + "typeString": "int_const 85" + }, + "value": "85" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "14435:16:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30783332346661373065396164633237306638323632373535616635613939616639", + "id": 7374, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14454:34:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_66874979560594969707697340554641251065_by_1", + "typeString": "int_const 6687...(30 digits omitted)...1065" + }, + "value": "0x324fa70e9adc270f8262755af5a99af9" + }, + "src": "14435:53:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7376, + "nodeType": "ExpressionStatement", + "src": "14435:53:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 7381, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7377, + "name": "lambertArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6858, + "src": "14492:12:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 7379, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3836", + "id": 7378, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14505:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_86_by_1", + "typeString": "int_const 86" + }, + "value": "86" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "14492:16:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30783332313232663434333131303631316361353130343066343166613665316533", + "id": 7380, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14511:34:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_66555819808650410033300276716637708771_by_1", + "typeString": "int_const 6655...(30 digits omitted)...8771" + }, + "value": "0x32122f443110611ca51040f41fa6e1e3" + }, + "src": "14492:53:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7382, + "nodeType": "ExpressionStatement", + "src": "14492:53:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 7387, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7383, + "name": "lambertArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6858, + "src": "14549:12:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 7385, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3837", + "id": 7384, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14562:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_87_by_1", + "typeString": "int_const 87" + }, + "value": "87" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "14549:16:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30783331643537333065343263303833313438326630663134383563343236336438", + "id": 7386, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14568:34:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_66240464631286234612917249162896106456_by_1", + "typeString": "int_const 6624...(30 digits omitted)...6456" + }, + "value": "0x31d5730e42c0831482f0f1485c4263d8" + }, + "src": "14549:53:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7388, + "nodeType": "ExpressionStatement", + "src": "14549:53:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 7393, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7389, + "name": "lambertArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6858, + "src": "14606:12:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 7391, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3838", + "id": 7390, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14619:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_88_by_1", + "typeString": "int_const 88" + }, + "value": "88" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "14606:16:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30783331393936656336623037623461383334323162356562633461623465316631", + "id": 7392, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14625:34:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_65928840019667697388313232298873250289_by_1", + "typeString": "int_const 6592...(30 digits omitted)...0289" + }, + "value": "0x31996ec6b07b4a83421b5ebc4ab4e1f1" + }, + "src": "14606:53:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7394, + "nodeType": "ExpressionStatement", + "src": "14606:53:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 7399, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7395, + "name": "lambertArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6858, + "src": "14663:12:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 7397, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3839", + "id": 7396, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14676:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_89_by_1", + "typeString": "int_const 89" + }, + "value": "89" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "14663:16:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30783331356531656530613638666634366262343365633262383530333265383736", + "id": 7398, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14682:34:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_65620873969108206581452393912976205942_by_1", + "typeString": "int_const 6562...(30 digits omitted)...5942" + }, + "value": "0x315e1ee0a68ff46bb43ec2b85032e876" + }, + "src": "14663:53:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7400, + "nodeType": "ExpressionStatement", + "src": "14663:53:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 7405, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7401, + "name": "lambertArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6858, + "src": "14720:12:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 7403, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3930", + "id": 7402, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14733:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_90_by_1", + "typeString": "int_const 90" + }, + "value": "90" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "14720:16:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30783331323337666537626334646561636636373735623965666131613134356638", + "id": 7404, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14739:34:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_65316496409512179290702222053435590136_by_1", + "typeString": "int_const 6531...(30 digits omitted)...0136" + }, + "value": "0x31237fe7bc4deacf6775b9efa1a145f8" + }, + "src": "14720:53:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7406, + "nodeType": "ExpressionStatement", + "src": "14720:53:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 7411, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7407, + "name": "lambertArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6858, + "src": "14777:12:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 7409, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3931", + "id": 7408, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14790:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_91_by_1", + "typeString": "int_const 91" + }, + "value": "91" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "14777:16:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30783330653938653766316363356133353665343436323761363937326561326666", + "id": 7410, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14796:34:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_65015639138759444595668739676303172351_by_1", + "typeString": "int_const 6501...(30 digits omitted)...2351" + }, + "value": "0x30e98e7f1cc5a356e44627a6972ea2ff" + }, + "src": "14777:53:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7412, + "nodeType": "ExpressionStatement", + "src": "14777:53:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 7417, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7413, + "name": "lambertArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6858, + "src": "14834:12:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 7415, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3932", + "id": 7414, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14847:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_92_by_1", + "typeString": "int_const 92" + }, + "value": "92" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "14834:16:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30783330623034373630623839313765633734323035613330303236353065633035", + "id": 7416, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14853:34:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_64718235758884686944788529404074585093_by_1", + "typeString": "int_const 6471...(30 digits omitted)...5093" + }, + "value": "0x30b04760b8917ec74205a3002650ec05" + }, + "src": "14834:53:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7418, + "nodeType": "ExpressionStatement", + "src": "14834:53:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 7423, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7419, + "name": "lambertArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6858, + "src": "14891:12:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 7421, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3933", + "id": 7420, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14904:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_93_by_1", + "typeString": "int_const 93" + }, + "value": "93" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "14891:16:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30783330373761373563383033343638653931333263653063663332323432343164", + "id": 7422, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14910:34:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_64424221614913808353797169251126354973_by_1", + "typeString": "int_const 6442...(30 digits omitted)...4973" + }, + "value": "0x3077a75c803468e9132ce0cf3224241d" + }, + "src": "14891:53:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7424, + "nodeType": "ExpressionStatement", + "src": "14891:53:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 7429, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7425, + "name": "lambertArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6858, + "src": "14948:12:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 7427, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3934", + "id": 7426, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14961:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_94_by_1", + "typeString": "int_const 94" + }, + "value": "94" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "14948:16:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30783330336661623537613661323735633336663139636461396261636536363761", + "id": 7428, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14967:34:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_64133533736226932951740123178454640250_by_1", + "typeString": "int_const 6413...(30 digits omitted)...0250" + }, + "value": "0x303fab57a6a275c36f19cda9bace667a" + }, + "src": "14948:53:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7430, + "nodeType": "ExpressionStatement", + "src": "14948:53:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 7435, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7431, + "name": "lambertArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6858, + "src": "15005:12:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 7433, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3935", + "id": 7432, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15018:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_95_by_1", + "typeString": "int_const 95" + }, + "value": "95" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "15005:16:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30783330303835303462656238646362643263663362633166366435613036346630", + "id": 7434, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15024:34:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_63846110780325119601596992296297981168_by_1", + "typeString": "int_const 6384...(30 digits omitted)...1168" + }, + "value": "0x3008504beb8dcbd2cf3bc1f6d5a064f0" + }, + "src": "15005:53:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7436, + "nodeType": "ExpressionStatement", + "src": "15005:53:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 7441, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7437, + "name": "lambertArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6858, + "src": "15062:12:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 7439, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3936", + "id": 7438, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15075:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_96_by_1", + "typeString": "int_const 96" + }, + "value": "96" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "15062:16:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30783266643139333436656431376461633631323139636530633263356163346230", + "id": 7440, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15081:34:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_63561892978884723546060567414717465776_by_1", + "typeString": "int_const 6356...(30 digits omitted)...5776" + }, + "value": "0x2fd19346ed17dac61219ce0c2c5ac4b0" + }, + "src": "15062:53:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7442, + "nodeType": "ExpressionStatement", + "src": "15062:53:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 7447, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7443, + "name": "lambertArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6858, + "src": "15119:12:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 7445, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3937", + "id": 7444, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15132:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_97_by_1", + "typeString": "int_const 97" + }, + "value": "97" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "15119:16:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30783266396237313639383038633332346235383532666433643534626139373134", + "id": 7446, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15138:34:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_63280822085989789325487105680707589908_by_1", + "typeString": "int_const 6328...(30 digits omitted)...9908" + }, + "value": "0x2f9b7169808c324b5852fd3d54ba9714" + }, + "src": "15119:53:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7448, + "nodeType": "ExpressionStatement", + "src": "15119:53:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 7453, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7449, + "name": "lambertArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6858, + "src": "15176:12:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 7451, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3938", + "id": 7450, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15189:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_98_by_1", + "typeString": "int_const 98" + }, + "value": "98" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "15176:16:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30783266363565376537313163663462303634656561396330386362646164353734", + "id": 7452, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15195:34:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_63002841328438895053366731000363275636_by_1", + "typeString": "int_const 6300...(30 digits omitted)...5636" + }, + "value": "0x2f65e7e711cf4b064eea9c08cbdad574" + }, + "src": "15176:53:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7454, + "nodeType": "ExpressionStatement", + "src": "15176:53:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 7459, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7455, + "name": "lambertArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6858, + "src": "15233:12:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 7457, + "indexExpression": { + "argumentTypes": null, + "hexValue": "3939", + "id": 7456, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15246:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_99_by_1", + "typeString": "int_const 99" + }, + "value": "99" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "15233:16:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30783266333066343035303933303432646466663861323531623662663664313033", + "id": 7458, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15252:34:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_62727895358028530630619015085479612675_by_1", + "typeString": "int_const 6272...(30 digits omitted)...2675" + }, + "value": "0x2f30f405093042ddff8a251b6bf6d103" + }, + "src": "15233:53:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7460, + "nodeType": "ExpressionStatement", + "src": "15233:53:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 7465, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7461, + "name": "lambertArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6858, + "src": "15290:12:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 7463, + "indexExpression": { + "argumentTypes": null, + "hexValue": "313030", + "id": 7462, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15303:3:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_100_by_1", + "typeString": "int_const 100" + }, + "value": "100" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "15290:17:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30783265666339333161333735306632653862666533323365646665303337353734", + "id": 7464, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15310:34:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_62455930205720405594293470980571624820_by_1", + "typeString": "int_const 6245...(30 digits omitted)...4820" + }, + "value": "0x2efc931a3750f2e8bfe323edfe037574" + }, + "src": "15290:54:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7466, + "nodeType": "ExpressionStatement", + "src": "15290:54:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 7471, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7467, + "name": "lambertArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6858, + "src": "15348:12:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 7469, + "indexExpression": { + "argumentTypes": null, + "hexValue": "313031", + "id": 7468, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15361:3:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_101_by_1", + "typeString": "int_const 101" + }, + "value": "101" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "15348:17:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30783265633863323865343664626535366439383638353237383333393430306362", + "id": 7470, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15368:34:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_62186893237605070014470966239378538699_by_1", + "typeString": "int_const 6218...(30 digits omitted)...8699" + }, + "value": "0x2ec8c28e46dbe56d98685278339400cb" + }, + "src": "15348:54:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7472, + "nodeType": "ExpressionStatement", + "src": "15348:54:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 7477, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7473, + "name": "lambertArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6858, + "src": "15406:12:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 7475, + "indexExpression": { + "argumentTypes": null, + "hexValue": "313032", + "id": 7474, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15419:3:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_102_by_1", + "typeString": "int_const 102" + }, + "value": "102" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "15406:17:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30783265393537666439333363333932366438613539396236303233373962383531", + "id": 7476, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15426:34:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_61920733112578916349615492109849704529_by_1", + "typeString": "int_const 6192...(30 digits omitted)...4529" + }, + "value": "0x2e957fd933c3926d8a599b602379b851" + }, + "src": "15406:54:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7478, + "nodeType": "ExpressionStatement", + "src": "15406:54:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 7483, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7479, + "name": "lambertArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6858, + "src": "15464:12:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 7481, + "indexExpression": { + "argumentTypes": null, + "hexValue": "313033", + "id": 7480, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15477:3:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_103_by_1", + "typeString": "int_const 103" + }, + "value": "103" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "15464:17:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30783265363263383832633763396564343437333431323730326630386261306535", + "id": 7482, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15484:34:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_61657399741656031957349998364069699813_by_1", + "typeString": "int_const 6165...(30 digits omitted)...9813" + }, + "value": "0x2e62c882c7c9ed4473412702f08ba0e5" + }, + "src": "15464:54:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7484, + "nodeType": "ExpressionStatement", + "src": "15464:54:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 7489, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7485, + "name": "lambertArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6858, + "src": "15522:12:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 7487, + "indexExpression": { + "argumentTypes": null, + "hexValue": "313034", + "id": 7486, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15535:3:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_104_by_1", + "typeString": "int_const 104" + }, + "value": "104" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "15522:17:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30783265333039613232316331326261333631653365643639353136376665656532", + "id": 7488, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15542:34:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_61396844248840510020197488843164741346_by_1", + "typeString": "int_const 6139...(30 digits omitted)...1346" + }, + "value": "0x2e309a221c12ba361e3ed695167feee2" + }, + "src": "15522:54:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7490, + "nodeType": "ExpressionStatement", + "src": "15522:54:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 7495, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7491, + "name": "lambertArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6858, + "src": "15580:12:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 7493, + "indexExpression": { + "argumentTypes": null, + "hexValue": "313035", + "id": 7492, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15593:3:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_105_by_1", + "typeString": "int_const 105" + }, + "value": "105" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "15580:17:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30783264666566323564316638363561653138646430376366656134626365613130", + "id": 7494, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15600:34:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_61139018933488718567153792494864230928_by_1", + "typeString": "int_const 6113...(30 digits omitted)...0928" + }, + "value": "0x2dfef25d1f865ae18dd07cfea4bcea10" + }, + "src": "15580:54:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7496, + "nodeType": "ExpressionStatement", + "src": "15580:54:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 7501, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7497, + "name": "lambertArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6858, + "src": "15638:12:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 7499, + "indexExpression": { + "argumentTypes": null, + "hexValue": "313036", + "id": 7498, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15651:3:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_106_by_1", + "typeString": "int_const 106" + }, + "value": "106" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "15638:17:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30783264636463656538323163646338306465636330326334343334346165623331", + "id": 7500, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15658:34:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_60883877234094689345243041491992636209_by_1", + "typeString": "int_const 6088...(30 digits omitted)...6209" + }, + "value": "0x2dcdcee821cdc80decc02c44344aeb31" + }, + "src": "15638:54:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7502, + "nodeType": "ExpressionStatement", + "src": "15638:54:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 7507, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7503, + "name": "lambertArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6858, + "src": "15696:12:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 7505, + "indexExpression": { + "argumentTypes": null, + "hexValue": "313037", + "id": 7504, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15709:3:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_107_by_1", + "typeString": "int_const 107" + }, + "value": "107" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "15696:17:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30783264396432643835363262333439343464306232303162623837323630633833", + "id": 7506, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15716:34:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_60631373693435235627049349068288822403_by_1", + "typeString": "int_const 6063...(30 digits omitted)...2403" + }, + "value": "0x2d9d2d8562b34944d0b201bb87260c83" + }, + "src": "15696:54:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7508, + "nodeType": "ExpressionStatement", + "src": "15696:54:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 7513, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7509, + "name": "lambertArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6858, + "src": "15754:12:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 7511, + "indexExpression": { + "argumentTypes": null, + "hexValue": "313038", + "id": 7510, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15767:3:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_108_by_1", + "typeString": "int_const 108" + }, + "value": "108" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "15754:17:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30783264366430633034613562363261326334323633363330383636396237323961", + "id": 7512, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15774:34:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_60381463925014654644808174288326324890_by_1", + "typeString": "int_const 6038...(30 digits omitted)...4890" + }, + "value": "0x2d6d0c04a5b62a2c42636308669b729a" + }, + "src": "15754:54:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7514, + "nodeType": "ExpressionStatement", + "src": "15754:54:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 7519, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7515, + "name": "lambertArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6858, + "src": "15812:12:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 7517, + "indexExpression": { + "argumentTypes": null, + "hexValue": "313039", + "id": 7516, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15825:3:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_109_by_1", + "typeString": "int_const 109" + }, + "value": "109" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "15812:17:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30783264336436383432633961323335353137666335613033333236393135323866", + "id": 7518, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15832:34:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_60134104580751929226866781633165480591_by_1", + "typeString": "int_const 6013...(30 digits omitted)...0591" + }, + "value": "0x2d3d6842c9a235517fc5a0332691528f" + }, + "src": "15812:54:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7520, + "nodeType": "ExpressionStatement", + "src": "15812:54:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 7525, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7521, + "name": "lambertArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6858, + "src": "15870:12:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 7523, + "indexExpression": { + "argumentTypes": null, + "hexValue": "313130", + "id": 7522, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15883:3:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_110_by_1", + "typeString": "int_const 110" + }, + "value": "110" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "15870:17:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30783264306534303239363366653165613238333461626334303863343337633130", + "id": 7524, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15890:34:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_59889253319856226458538603217703631888_by_1", + "typeString": "int_const 5988...(30 digits omitted)...1888" + }, + "value": "0x2d0e402963fe1ea2834abc408c437c10" + }, + "src": "15870:54:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7526, + "nodeType": "ExpressionStatement", + "src": "15870:54:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 7531, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7527, + "name": "lambertArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6858, + "src": "15928:12:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 7529, + "indexExpression": { + "argumentTypes": null, + "hexValue": "313131", + "id": 7528, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15941:3:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_111_by_1", + "typeString": "int_const 111" + }, + "value": "111" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "15928:17:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30783263646639316165363032363437393038616666393735653464366132613863", + "id": 7530, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15948:34:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_59646868778839210021497828354615290508_by_1", + "typeString": "int_const 5964...(30 digits omitted)...0508" + }, + "value": "0x2cdf91ae602647908aff975e4d6a2a8c" + }, + "src": "15928:54:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7532, + "nodeType": "ExpressionStatement", + "src": "15928:54:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 7537, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7533, + "name": "lambertArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6858, + "src": "15986:12:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 7535, + "indexExpression": { + "argumentTypes": null, + "hexValue": "313132", + "id": 7534, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15999:3:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_112_by_1", + "typeString": "int_const 112" + }, + "value": "112" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "15986:17:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30783263623135616433613165623635663664373461373564613039613162366335", + "id": 7536, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16006:34:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_59406910542615247719403943326214371013_by_1", + "typeString": "int_const 5940...(30 digits omitted)...1013" + }, + "value": "0x2cb15ad3a1eb65f6d74a75da09a1b6c5" + }, + "src": "15986:54:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7538, + "nodeType": "ExpressionStatement", + "src": "15986:54:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 7543, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7539, + "name": "lambertArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6858, + "src": "16044:12:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 7541, + "indexExpression": { + "argumentTypes": null, + "hexValue": "313133", + "id": 7540, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16057:3:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_113_by_1", + "typeString": "int_const 113" + }, + "value": "113" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "16044:17:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30783263383339396136616238653937373464366663666633373364323130373237", + "id": 7542, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16064:34:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_59169339116643016279047957521648125735_by_1", + "typeString": "int_const 5916...(30 digits omitted)...5735" + }, + "value": "0x2c8399a6ab8e9774d6fcff373d210727" + }, + "src": "16044:54:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7544, + "nodeType": "ExpressionStatement", + "src": "16044:54:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 7549, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7545, + "name": "lambertArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6858, + "src": "16102:12:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 7547, + "indexExpression": { + "argumentTypes": null, + "hexValue": "313134", + "id": 7546, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16115:3:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_114_by_1", + "typeString": "int_const 114" + }, + "value": "114" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "16102:17:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30783263353634633430343666363465646261363838336361303662626334353335", + "id": 7548, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16122:34:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_58934115900064290859232836743818134837_by_1", + "typeString": "int_const 5893...(30 digits omitted)...4837" + }, + "value": "0x2c564c4046f64edba6883ca06bbc4535" + }, + "src": "16102:54:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7550, + "nodeType": "ExpressionStatement", + "src": "16102:54:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 7555, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7551, + "name": "lambertArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6858, + "src": "16160:12:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 7553, + "indexExpression": { + "argumentTypes": null, + "hexValue": "313135", + "id": 7552, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16173:3:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_115_by_1", + "typeString": "int_const 115" + }, + "value": "115" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "16160:17:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30783263323937306334333166393532363431653035636234393365323365656433", + "id": 7554, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16180:34:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_58701203159797865214654223853927263955_by_1", + "typeString": "int_const 5870...(30 digits omitted)...3955" + }, + "value": "0x2c2970c431f952641e05cb493e23eed3" + }, + "src": "16160:54:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7556, + "nodeType": "ExpressionStatement", + "src": "16160:54:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 7561, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7557, + "name": "lambertArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6858, + "src": "16218:12:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 7559, + "indexExpression": { + "argumentTypes": null, + "hexValue": "313136", + "id": 7558, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16231:3:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_116_by_1", + "typeString": "int_const 116" + }, + "value": "116" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "16218:17:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30783262666430353630636439656231343536336263376330373332383536633138", + "id": 7560, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16238:34:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_58470564005548587984364862866899430424_by_1", + "typeString": "int_const 5847...(30 digits omitted)...0424" + }, + "value": "0x2bfd0560cd9eb14563bc7c0732856c18" + }, + "src": "16218:54:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7562, + "nodeType": "ExpressionStatement", + "src": "16218:54:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 7567, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7563, + "name": "lambertArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6858, + "src": "16276:12:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 7565, + "indexExpression": { + "argumentTypes": null, + "hexValue": "313137", + "id": 7564, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16289:3:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_117_by_1", + "typeString": "int_const 117" + }, + "value": "117" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "16276:17:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30783262643130383465643033333266376666343135306639643065663431613263", + "id": 7566, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16296:34:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_58242162365693428406397594903403305516_by_1", + "typeString": "int_const 5824...(30 digits omitted)...5516" + }, + "value": "0x2bd1084ed0332f7ff4150f9d0ef41a2c" + }, + "src": "16276:54:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7568, + "nodeType": "ExpressionStatement", + "src": "16276:54:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 7573, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7569, + "name": "lambertArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6858, + "src": "16334:12:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 7571, + "indexExpression": { + "argumentTypes": null, + "hexValue": "313138", + "id": 7570, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16347:3:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_118_by_1", + "typeString": "int_const 118" + }, + "value": "118" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "16334:17:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30783262613537376430666131363238623736643034306231326138323439326662", + "id": 7572, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16354:34:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_58015962964008307710970589788915405563_by_1", + "typeString": "int_const 5801...(30 digits omitted)...5563" + }, + "value": "0x2ba577d0fa1628b76d040b12a82492fb" + }, + "src": "16334:54:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7574, + "nodeType": "ExpressionStatement", + "src": "16334:54:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 7579, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7575, + "name": "lambertArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6858, + "src": "16392:12:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 7577, + "indexExpression": { + "argumentTypes": null, + "hexValue": "313139", + "id": 7576, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16405:3:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_119_by_1", + "typeString": "int_const 119" + }, + "value": "119" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "16392:17:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30783262376135323333636432313538316538353565383964633266316538613932", + "id": 7578, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16412:34:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_57791931297201156866686511914608921234_by_1", + "typeString": "int_const 5779...(30 digits omitted)...1234" + }, + "value": "0x2b7a5233cd21581e855e89dc2f1e8a92" + }, + "src": "16392:54:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7580, + "nodeType": "ExpressionStatement", + "src": "16392:54:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 7585, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7581, + "name": "lambertArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6858, + "src": "16450:12:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 7583, + "indexExpression": { + "argumentTypes": null, + "hexValue": "313230", + "id": 7582, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16463:3:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_120_by_1", + "typeString": "int_const 120" + }, + "value": "120" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "16450:17:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30783262346639356364343639303464303564373262646364653333376439636337", + "id": 7584, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16470:34:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_57570033613218293176076279351194000583_by_1", + "typeString": "int_const 5757...(30 digits omitted)...0583" + }, + "value": "0x2b4f95cd46904d05d72bdcde337d9cc7" + }, + "src": "16450:54:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7586, + "nodeType": "ExpressionStatement", + "src": "16450:54:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 7591, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7587, + "name": "lambertArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6858, + "src": "16508:12:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 7589, + "indexExpression": { + "argumentTypes": null, + "hexValue": "313231", + "id": 7588, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16521:3:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_121_by_1", + "typeString": "int_const 121" + }, + "value": "121" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "16508:17:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30783262323534306663396234643961626261336661636136363931393134363735", + "id": 7590, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16528:34:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_57350236890292752974853833075473860213_by_1", + "typeString": "int_const 5735...(30 digits omitted)...0213" + }, + "value": "0x2b2540fc9b4d9abba3faca6691914675" + }, + "src": "16508:54:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7592, + "nodeType": "ExpressionStatement", + "src": "16508:54:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 7597, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7593, + "name": "lambertArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6858, + "src": "16566:12:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 7595, + "indexExpression": { + "argumentTypes": null, + "hexValue": "313232", + "id": 7594, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16579:3:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_122_by_1", + "typeString": "int_const 122" + }, + "value": "122" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "16566:17:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30783261666235323239663638643038333064386265386164623061306462373066", + "id": 7596, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16586:34:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_57132508816704680555143857466604631823_by_1", + "typeString": "int_const 5713...(30 digits omitted)...1823" + }, + "value": "0x2afb5229f68d0830d8be8adb0a0db70f" + }, + "src": "16566:54:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7598, + "nodeType": "ExpressionStatement", + "src": "16566:54:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 7603, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7599, + "name": "lambertArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6858, + "src": "16624:12:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 7601, + "indexExpression": { + "argumentTypes": null, + "hexValue": "313233", + "id": 7600, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16637:3:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_123_by_1", + "typeString": "int_const 123" + }, + "value": "123" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "16624:17:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30783261643163376336336139623239346335626337336133626133616237613262", + "id": 7602, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16644:34:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_56916817771225259240345926660426267179_by_1", + "typeString": "int_const 5691...(30 digits omitted)...7179" + }, + "value": "0x2ad1c7c63a9b294c5bc73a3ba3ab7a2b" + }, + "src": "16624:54:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7604, + "nodeType": "ExpressionStatement", + "src": "16624:54:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 7609, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7605, + "name": "lambertArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6858, + "src": "16682:12:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 7607, + "indexExpression": { + "argumentTypes": null, + "hexValue": "313234", + "id": 7606, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16695:3:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_124_by_1", + "typeString": "int_const 124" + }, + "value": "124" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "16682:17:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30783261613861303461633363626531656531633963383633363134363564626238", + "id": 7608, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16702:34:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_56703132804216983807771297030642981816_by_1", + "typeString": "int_const 5670...(30 digits omitted)...1816" + }, + "value": "0x2aa8a04ac3cbe1ee1c9c86361465dbb8" + }, + "src": "16682:54:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7610, + "nodeType": "ExpressionStatement", + "src": "16682:54:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 7615, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7611, + "name": "lambertArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6858, + "src": "16740:12:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 7613, + "indexExpression": { + "argumentTypes": null, + "hexValue": "313235", + "id": 7612, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16753:3:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_125_by_1", + "typeString": "int_const 125" + }, + "value": "125" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "16740:17:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30783261376664613339326437323561343461326338616562396162333534333064", + "id": 7614, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16760:34:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_56491423619364318412491401339172373261_by_1", + "typeString": "int_const 5649...(30 digits omitted)...3261" + }, + "value": "0x2a7fda392d725a44a2c8aeb9ab35430d" + }, + "src": "16740:54:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7616, + "nodeType": "ExpressionStatement", + "src": "16740:54:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 7621, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7617, + "name": "lambertArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6858, + "src": "16798:12:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 7619, + "indexExpression": { + "argumentTypes": null, + "hexValue": "313236", + "id": 7618, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16811:3:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_126_by_1", + "typeString": "int_const 126" + }, + "value": "126" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "16798:17:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30783261353737343162313863646536313837313737393262346661613231366462", + "id": 7620, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16818:34:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_56281660556009964768470705991401477851_by_1", + "typeString": "int_const 5628...(30 digits omitted)...7851" + }, + "value": "0x2a57741b18cde618717792b4faa216db" + }, + "src": "16798:54:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7622, + "nodeType": "ExpressionStatement", + "src": "16798:54:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 7627, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7623, + "name": "lambertArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6858, + "src": "16856:12:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 7625, + "indexExpression": { + "argumentTypes": null, + "hexValue": "313237", + "id": 7624, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16869:3:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_127_by_1", + "typeString": "int_const 127" + }, + "value": "127" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "16856:17:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30783261326636633831663564383464643935306133353632366436643535303361", + "id": 7626, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16876:34:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_56073814572073085295245695095569469498_by_1", + "typeString": "int_const 5607...(30 digits omitted)...9498" + }, + "value": "0x2a2f6c81f5d84dd950a35626d6d5503a" + }, + "src": "16856:54:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7628, + "nodeType": "ExpressionStatement", + "src": "16856:54:10" + } + ] + }, + "documentation": null, + "id": 7630, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "initLambertArray", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6859, + "nodeType": "ParameterList", + "parameters": [], + "src": "9585:2:10" + }, + "payable": false, + "returnParameters": { + "id": 6860, + "nodeType": "ParameterList", + "parameters": [], + "src": "9596:0:10" + }, + "scope": 11642, + "src": "9560:7354:10", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "private" + }, + { + "body": { + "id": 7639, + "nodeType": "Block", + "src": "17029:47:10", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 7633, + "name": "initMaxExpArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6854, + "src": "17033:15:10", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", + "typeString": "function ()" + } + }, + "id": 7634, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17033:17:10", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7635, + "nodeType": "ExpressionStatement", + "src": "17033:17:10" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 7636, + "name": "initLambertArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7630, + "src": "17054:16:10", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", + "typeString": "function ()" + } + }, + "id": 7637, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17054:18:10", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7638, + "nodeType": "ExpressionStatement", + "src": "17054:18:10" + } + ] + }, + "documentation": "@dev should be executed after construction (too large for the constructor)", + "id": 7640, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "init", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7631, + "nodeType": "ParameterList", + "parameters": [], + "src": "17019:2:10" + }, + "payable": false, + "returnParameters": { + "id": 7632, + "nodeType": "ParameterList", + "parameters": [], + "src": "17029:0:10" + }, + "scope": 11642, + "src": "17006:70:10", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 7732, + "nodeType": "Block", + "src": "17812:664:10", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7656, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 7654, + "name": "_supply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7642, + "src": "17844:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 7655, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17854:1:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "17844:11:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4552525f494e56414c49445f535550504c59", + "id": 7657, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17857:20:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_663f10355ba071616cc91891330bbbd56c18b20e7bda020baff58fa08722ec60", + "typeString": "literal_string \"ERR_INVALID_SUPPLY\"" + }, + "value": "ERR_INVALID_SUPPLY" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_663f10355ba071616cc91891330bbbd56c18b20e7bda020baff58fa08722ec60", + "typeString": "literal_string \"ERR_INVALID_SUPPLY\"" + } + ], + "id": 7653, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 22341, + 22342 + ], + "referencedDeclaration": 22342, + "src": "17836:7:10", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 7658, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17836:42:10", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7659, + "nodeType": "ExpressionStatement", + "src": "17836:42:10" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7663, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 7661, + "name": "_reserveBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7644, + "src": "17890:15:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 7662, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17908:1:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "17890:19:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4552525f494e56414c49445f524553455256455f42414c414e4345", + "id": 7664, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17911:29:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_50b448733a1d57cdd008d269297c4a2f50984605cb59e986bc2d98cee971e78d", + "typeString": "literal_string \"ERR_INVALID_RESERVE_BALANCE\"" + }, + "value": "ERR_INVALID_RESERVE_BALANCE" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_50b448733a1d57cdd008d269297c4a2f50984605cb59e986bc2d98cee971e78d", + "typeString": "literal_string \"ERR_INVALID_RESERVE_BALANCE\"" + } + ], + "id": 7660, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 22341, + 22342 + ], + "referencedDeclaration": 22342, + "src": "17882:7:10", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 7665, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17882:59:10", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7666, + "nodeType": "ExpressionStatement", + "src": "17882:59:10" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 7674, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 7670, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 7668, + "name": "_reserveWeight", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7646, + "src": "17953:14:10", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 7669, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17970:1:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "17953:18:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 7673, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 7671, + "name": "_reserveWeight", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7646, + "src": "17975:14:10", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "id": 7672, + "name": "MAX_WEIGHT", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6228, + "src": "17993:10:10", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "17975:28:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "17953:50:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4552525f494e56414c49445f524553455256455f574549474854", + "id": 7675, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18005:28:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_e4e4c57eb13b428a7fc031dc1f6f2c3e13b61f7d7b93994b2d17f8dc75658178", + "typeString": "literal_string \"ERR_INVALID_RESERVE_WEIGHT\"" + }, + "value": "ERR_INVALID_RESERVE_WEIGHT" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_e4e4c57eb13b428a7fc031dc1f6f2c3e13b61f7d7b93994b2d17f8dc75658178", + "typeString": "literal_string \"ERR_INVALID_RESERVE_WEIGHT\"" + } + ], + "id": 7667, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 22341, + 22342 + ], + "referencedDeclaration": 22342, + "src": "17945:7:10", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 7676, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17945:89:10", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7677, + "nodeType": "ExpressionStatement", + "src": "17945:89:10" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7680, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 7678, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7648, + "src": "18082:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 7679, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18093:1:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "18082:12:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 7683, + "nodeType": "IfStatement", + "src": "18078:26:10", + "trueBody": { + "expression": { + "argumentTypes": null, + "hexValue": "30", + "id": 7681, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18103:1:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "functionReturnParameters": 7652, + "id": 7682, + "nodeType": "Return", + "src": "18096:8:10" + } + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 7686, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 7684, + "name": "_reserveWeight", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7646, + "src": "18152:14:10", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 7685, + "name": "MAX_WEIGHT", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6228, + "src": "18170:10:10", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "18152:28:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 7694, + "nodeType": "IfStatement", + "src": "18148:79:10", + "trueBody": { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7692, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7689, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7648, + "src": "18201:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 7687, + "name": "_supply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7642, + "src": "18189:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7688, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 21791, + "src": "18189:11:10", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 7690, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18189:20:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 7691, + "name": "_reserveBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7644, + "src": "18212:15:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "18189:38:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 7652, + "id": 7693, + "nodeType": "Return", + "src": "18182:45:10" + } + }, + { + "assignments": [], + "declarations": [ + { + "constant": false, + "id": 7696, + "name": "result", + "nodeType": "VariableDeclaration", + "scope": 7733, + "src": "18232:14:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7695, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "18232:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 7697, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "18232:14:10" + }, + { + "assignments": [], + "declarations": [ + { + "constant": false, + "id": 7699, + "name": "precision", + "nodeType": "VariableDeclaration", + "scope": 7733, + "src": "18250:15:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 7698, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "18250:5:10", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 7700, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "18250:15:10" + }, + { + "assignments": [ + 7702 + ], + "declarations": [ + { + "constant": false, + "id": 7702, + "name": "baseN", + "nodeType": "VariableDeclaration", + "scope": 7733, + "src": "18269:13:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7701, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "18269:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 7707, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7705, + "name": "_reserveBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7644, + "src": "18297:15:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 7703, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7648, + "src": "18285:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7704, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 21737, + "src": "18285:11:10", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 7706, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18285:28:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "18269:44:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 7717, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "id": 7708, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7696, + "src": "18318:6:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 7709, + "name": "precision", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7699, + "src": "18326:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "id": 7710, + "isConstant": false, + "isInlineArray": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "TupleExpression", + "src": "18317:19:10", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint8_$", + "typeString": "tuple(uint256,uint8)" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7712, + "name": "baseN", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7702, + "src": "18345:5:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 7713, + "name": "_reserveBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7644, + "src": "18352:15:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 7714, + "name": "_reserveWeight", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7646, + "src": "18369:14:10", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + { + "argumentTypes": null, + "id": 7715, + "name": "MAX_WEIGHT", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6228, + "src": "18385:10:10", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + ], + "id": 7711, + "name": "power", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8457, + "src": "18339:5:10", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint256_$_t_uint32_$_t_uint32_$returns$_t_uint256_$_t_uint8_$", + "typeString": "function (uint256,uint256,uint32,uint32) view returns (uint256,uint8)" + } + }, + "id": 7716, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18339:57:10", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint8_$", + "typeString": "tuple(uint256,uint8)" + } + }, + "src": "18317:79:10", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7718, + "nodeType": "ExpressionStatement", + "src": "18317:79:10" + }, + { + "assignments": [ + 7720 + ], + "declarations": [ + { + "constant": false, + "id": 7720, + "name": "temp", + "nodeType": "VariableDeclaration", + "scope": 7733, + "src": "18400:12:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7719, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "18400:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 7727, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7726, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7723, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7696, + "src": "18427:6:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 7721, + "name": "_supply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7642, + "src": "18415:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7722, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 21791, + "src": "18415:11:10", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 7724, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18415:19:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "argumentTypes": null, + "id": 7725, + "name": "precision", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7699, + "src": "18438:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "18415:32:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "18400:47:10" + }, + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7730, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 7728, + "name": "temp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7720, + "src": "18458:4:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 7729, + "name": "_supply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7642, + "src": "18465:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "18458:14:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 7652, + "id": 7731, + "nodeType": "Return", + "src": "18451:21:10" + } + ] + }, + "documentation": "@dev given a token supply, reserve balance, weight and a deposit amount (in the reserve token),\ncalculates the target amount for a given conversion (in the main token)\n\t * Formula:\nreturn = _supply * ((1 + _amount / _reserveBalance) ^ (_reserveWeight / 1000000) - 1)\n\t * @param _supply smart token supply\n@param _reserveBalance reserve balance\n@param _reserveWeight reserve weight, represented in ppm (1-1000000)\n@param _amount amount of reserve tokens to get the target amount for\n\t * @return smart token amount", + "id": 7733, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "purchaseTargetAmount", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7649, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7642, + "name": "_supply", + "nodeType": "VariableDeclaration", + "scope": 7733, + "src": "17692:15:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7641, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17692:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7644, + "name": "_reserveBalance", + "nodeType": "VariableDeclaration", + "scope": 7733, + "src": "17711:23:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7643, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17711:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7646, + "name": "_reserveWeight", + "nodeType": "VariableDeclaration", + "scope": 7733, + "src": "17738:21:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 7645, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "17738:6:10", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7648, + "name": "_amount", + "nodeType": "VariableDeclaration", + "scope": 7733, + "src": "17763:15:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7647, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17763:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "17688:93:10" + }, + "payable": false, + "returnParameters": { + "id": 7652, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7651, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 7733, + "src": "17803:7:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7650, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17803:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "17802:9:10" + }, + "scope": 11642, + "src": "17659:817:10", + "stateMutability": "view", + "superFunction": 12155, + "visibility": "public" + }, + { + "body": { + "id": 7844, + "nodeType": "Block", + "src": "19205:848:10", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7749, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 7747, + "name": "_supply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7735, + "src": "19237:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 7748, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19247:1:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "19237:11:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4552525f494e56414c49445f535550504c59", + "id": 7750, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19250:20:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_663f10355ba071616cc91891330bbbd56c18b20e7bda020baff58fa08722ec60", + "typeString": "literal_string \"ERR_INVALID_SUPPLY\"" + }, + "value": "ERR_INVALID_SUPPLY" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_663f10355ba071616cc91891330bbbd56c18b20e7bda020baff58fa08722ec60", + "typeString": "literal_string \"ERR_INVALID_SUPPLY\"" + } + ], + "id": 7746, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 22341, + 22342 + ], + "referencedDeclaration": 22342, + "src": "19229:7:10", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 7751, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19229:42:10", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7752, + "nodeType": "ExpressionStatement", + "src": "19229:42:10" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7756, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 7754, + "name": "_reserveBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7737, + "src": "19283:15:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 7755, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19301:1:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "19283:19:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4552525f494e56414c49445f524553455256455f42414c414e4345", + "id": 7757, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19304:29:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_50b448733a1d57cdd008d269297c4a2f50984605cb59e986bc2d98cee971e78d", + "typeString": "literal_string \"ERR_INVALID_RESERVE_BALANCE\"" + }, + "value": "ERR_INVALID_RESERVE_BALANCE" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_50b448733a1d57cdd008d269297c4a2f50984605cb59e986bc2d98cee971e78d", + "typeString": "literal_string \"ERR_INVALID_RESERVE_BALANCE\"" + } + ], + "id": 7753, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 22341, + 22342 + ], + "referencedDeclaration": 22342, + "src": "19275:7:10", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 7758, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19275:59:10", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7759, + "nodeType": "ExpressionStatement", + "src": "19275:59:10" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 7767, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 7763, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 7761, + "name": "_reserveWeight", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7739, + "src": "19346:14:10", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 7762, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19363:1:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "19346:18:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 7766, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 7764, + "name": "_reserveWeight", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7739, + "src": "19368:14:10", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "id": 7765, + "name": "MAX_WEIGHT", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6228, + "src": "19386:10:10", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "19368:28:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "19346:50:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4552525f494e56414c49445f524553455256455f574549474854", + "id": 7768, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19398:28:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_e4e4c57eb13b428a7fc031dc1f6f2c3e13b61f7d7b93994b2d17f8dc75658178", + "typeString": "literal_string \"ERR_INVALID_RESERVE_WEIGHT\"" + }, + "value": "ERR_INVALID_RESERVE_WEIGHT" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_e4e4c57eb13b428a7fc031dc1f6f2c3e13b61f7d7b93994b2d17f8dc75658178", + "typeString": "literal_string \"ERR_INVALID_RESERVE_WEIGHT\"" + } + ], + "id": 7760, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 22341, + 22342 + ], + "referencedDeclaration": 22342, + "src": "19338:7:10", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 7769, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19338:89:10", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7770, + "nodeType": "ExpressionStatement", + "src": "19338:89:10" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7774, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 7772, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7741, + "src": "19439:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "id": 7773, + "name": "_supply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7735, + "src": "19450:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19439:18:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4552525f494e56414c49445f414d4f554e54", + "id": 7775, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19459:20:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c44007bfe4e704be0ed1393660a827b4f88825f4b6fe1bc10cd38fc3fcb7d839", + "typeString": "literal_string \"ERR_INVALID_AMOUNT\"" + }, + "value": "ERR_INVALID_AMOUNT" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c44007bfe4e704be0ed1393660a827b4f88825f4b6fe1bc10cd38fc3fcb7d839", + "typeString": "literal_string \"ERR_INVALID_AMOUNT\"" + } + ], + "id": 7771, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 22341, + 22342 + ], + "referencedDeclaration": 22342, + "src": "19431:7:10", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 7776, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19431:49:10", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7777, + "nodeType": "ExpressionStatement", + "src": "19431:49:10" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7780, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 7778, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7741, + "src": "19525:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 7779, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19536:1:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "19525:12:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 7783, + "nodeType": "IfStatement", + "src": "19521:26:10", + "trueBody": { + "expression": { + "argumentTypes": null, + "hexValue": "30", + "id": 7781, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19546:1:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "functionReturnParameters": 7745, + "id": 7782, + "nodeType": "Return", + "src": "19539:8:10" + } + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7786, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 7784, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7741, + "src": "19604:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 7785, + "name": "_supply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7735, + "src": "19615:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19604:18:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 7789, + "nodeType": "IfStatement", + "src": "19600:46:10", + "trueBody": { + "expression": { + "argumentTypes": null, + "id": 7787, + "name": "_reserveBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7737, + "src": "19631:15:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 7745, + "id": 7788, + "nodeType": "Return", + "src": "19624:22:10" + } + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 7792, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 7790, + "name": "_reserveWeight", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7739, + "src": "19694:14:10", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 7791, + "name": "MAX_WEIGHT", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6228, + "src": "19712:10:10", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "19694:28:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 7800, + "nodeType": "IfStatement", + "src": "19690:79:10", + "trueBody": { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7798, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7795, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7741, + "src": "19751:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 7793, + "name": "_reserveBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7737, + "src": "19731:15:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7794, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 21791, + "src": "19731:19:10", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 7796, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19731:28:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 7797, + "name": "_supply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7735, + "src": "19762:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19731:38:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 7745, + "id": 7799, + "nodeType": "Return", + "src": "19724:45:10" + } + }, + { + "assignments": [], + "declarations": [ + { + "constant": false, + "id": 7802, + "name": "result", + "nodeType": "VariableDeclaration", + "scope": 7845, + "src": "19774:14:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7801, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "19774:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 7803, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "19774:14:10" + }, + { + "assignments": [], + "declarations": [ + { + "constant": false, + "id": 7805, + "name": "precision", + "nodeType": "VariableDeclaration", + "scope": 7845, + "src": "19792:15:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 7804, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "19792:5:10", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 7806, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "19792:15:10" + }, + { + "assignments": [ + 7808 + ], + "declarations": [ + { + "constant": false, + "id": 7808, + "name": "baseD", + "nodeType": "VariableDeclaration", + "scope": 7845, + "src": "19811:13:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7807, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "19811:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 7812, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7811, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 7809, + "name": "_supply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7735, + "src": "19827:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 7810, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7741, + "src": "19837:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19827:17:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "19811:33:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 7822, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "id": 7813, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7802, + "src": "19849:6:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 7814, + "name": "precision", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7805, + "src": "19857:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "id": 7815, + "isConstant": false, + "isInlineArray": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "TupleExpression", + "src": "19848:19:10", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint8_$", + "typeString": "tuple(uint256,uint8)" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7817, + "name": "_supply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7735, + "src": "19876:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 7818, + "name": "baseD", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7808, + "src": "19885:5:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 7819, + "name": "MAX_WEIGHT", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6228, + "src": "19892:10:10", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + { + "argumentTypes": null, + "id": 7820, + "name": "_reserveWeight", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7739, + "src": "19904:14:10", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + ], + "id": 7816, + "name": "power", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8457, + "src": "19870:5:10", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint256_$_t_uint32_$_t_uint32_$returns$_t_uint256_$_t_uint8_$", + "typeString": "function (uint256,uint256,uint32,uint32) view returns (uint256,uint8)" + } + }, + "id": 7821, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19870:49:10", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint8_$", + "typeString": "tuple(uint256,uint8)" + } + }, + "src": "19848:71:10", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7823, + "nodeType": "ExpressionStatement", + "src": "19848:71:10" + }, + { + "assignments": [ + 7825 + ], + "declarations": [ + { + "constant": false, + "id": 7825, + "name": "temp1", + "nodeType": "VariableDeclaration", + "scope": 7845, + "src": "19923:13:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7824, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "19923:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 7830, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7828, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7802, + "src": "19959:6:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 7826, + "name": "_reserveBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7737, + "src": "19939:15:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7827, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 21791, + "src": "19939:19:10", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 7829, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19939:27:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "19923:43:10" + }, + { + "assignments": [ + 7832 + ], + "declarations": [ + { + "constant": false, + "id": 7832, + "name": "temp2", + "nodeType": "VariableDeclaration", + "scope": 7845, + "src": "19970:13:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7831, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "19970:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 7836, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7835, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 7833, + "name": "_reserveBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7737, + "src": "19986:15:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<<", + "rightExpression": { + "argumentTypes": null, + "id": 7834, + "name": "precision", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7805, + "src": "20005:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "19986:28:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "19970:44:10" + }, + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7842, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7839, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 7837, + "name": "temp1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7825, + "src": "20026:5:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 7838, + "name": "temp2", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7832, + "src": "20034:5:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "20026:13:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 7840, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "20025:15:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 7841, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7802, + "src": "20043:6:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "20025:24:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 7745, + "id": 7843, + "nodeType": "Return", + "src": "20018:31:10" + } + ] + }, + "documentation": "@dev given a token supply, reserve balance, weight and a sell amount (in the main token),\ncalculates the target amount for a given conversion (in the reserve token)\n\t * Formula:\nreturn = _reserveBalance * (1 - (1 - _amount / _supply) ^ (1000000 / _reserveWeight))\n\t * @param _supply smart token supply\n@param _reserveBalance reserve balance\n@param _reserveWeight reserve weight, represented in ppm (1-1000000)\n@param _amount amount of smart tokens to get the target amount for\n\t * @return reserve token amount", + "id": 7845, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "saleTargetAmount", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7742, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7735, + "name": "_supply", + "nodeType": "VariableDeclaration", + "scope": 7845, + "src": "19085:15:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7734, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "19085:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7737, + "name": "_reserveBalance", + "nodeType": "VariableDeclaration", + "scope": 7845, + "src": "19104:23:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7736, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "19104:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7739, + "name": "_reserveWeight", + "nodeType": "VariableDeclaration", + "scope": 7845, + "src": "19131:21:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 7738, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "19131:6:10", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7741, + "name": "_amount", + "nodeType": "VariableDeclaration", + "scope": 7845, + "src": "19156:15:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7740, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "19156:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "19081:93:10" + }, + "payable": false, + "returnParameters": { + "id": 7745, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7744, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 7845, + "src": "19196:7:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7743, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "19196:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "19195:9:10" + }, + "scope": 11642, + "src": "19056:997:10", + "stateMutability": "view", + "superFunction": 12168, + "visibility": "public" + }, + { + "body": { + "id": 7948, + "nodeType": "Block", + "src": "21046:811:10", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 7867, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7863, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 7861, + "name": "_sourceReserveBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7847, + "src": "21078:21:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 7862, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "21102:1:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "21078:25:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7866, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 7864, + "name": "_targetReserveBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7851, + "src": "21107:21:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 7865, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "21131:1:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "21107:25:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "21078:54:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4552525f494e56414c49445f524553455256455f42414c414e4345", + "id": 7868, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "21134:29:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_50b448733a1d57cdd008d269297c4a2f50984605cb59e986bc2d98cee971e78d", + "typeString": "literal_string \"ERR_INVALID_RESERVE_BALANCE\"" + }, + "value": "ERR_INVALID_RESERVE_BALANCE" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_50b448733a1d57cdd008d269297c4a2f50984605cb59e986bc2d98cee971e78d", + "typeString": "literal_string \"ERR_INVALID_RESERVE_BALANCE\"" + } + ], + "id": 7860, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 22341, + 22342 + ], + "referencedDeclaration": 22342, + "src": "21070:7:10", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 7869, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21070:94:10", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7870, + "nodeType": "ExpressionStatement", + "src": "21070:94:10" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 7886, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 7882, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 7878, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 7874, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 7872, + "name": "_sourceReserveWeight", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7849, + "src": "21180:20:10", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 7873, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "21203:1:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "21180:24:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 7877, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 7875, + "name": "_sourceReserveWeight", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7849, + "src": "21208:20:10", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "id": 7876, + "name": "MAX_WEIGHT", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6228, + "src": "21232:10:10", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "21208:34:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "21180:62:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 7881, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 7879, + "name": "_targetReserveWeight", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7853, + "src": "21246:20:10", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 7880, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "21269:1:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "21246:24:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "21180:90:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 7885, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 7883, + "name": "_targetReserveWeight", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7853, + "src": "21274:20:10", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "id": 7884, + "name": "MAX_WEIGHT", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6228, + "src": "21298:10:10", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "21274:34:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "21180:128:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4552525f494e56414c49445f524553455256455f574549474854", + "id": 7887, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "21313:28:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_e4e4c57eb13b428a7fc031dc1f6f2c3e13b61f7d7b93994b2d17f8dc75658178", + "typeString": "literal_string \"ERR_INVALID_RESERVE_WEIGHT\"" + }, + "value": "ERR_INVALID_RESERVE_WEIGHT" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_e4e4c57eb13b428a7fc031dc1f6f2c3e13b61f7d7b93994b2d17f8dc75658178", + "typeString": "literal_string \"ERR_INVALID_RESERVE_WEIGHT\"" + } + ], + "id": 7871, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 22341, + 22342 + ], + "referencedDeclaration": 22342, + "src": "21168:7:10", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 7888, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21168:177:10", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7889, + "nodeType": "ExpressionStatement", + "src": "21168:177:10" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 7892, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 7890, + "name": "_sourceReserveWeight", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7849, + "src": "21390:20:10", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 7891, + "name": "_targetReserveWeight", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7853, + "src": "21414:20:10", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "21390:44:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 7903, + "nodeType": "IfStatement", + "src": "21386:128:10", + "trueBody": { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7901, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7895, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7855, + "src": "21469:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 7893, + "name": "_targetReserveBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7851, + "src": "21443:21:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7894, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 21791, + "src": "21443:25:10", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 7896, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21443:34:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7899, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7855, + "src": "21506:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 7897, + "name": "_sourceReserveBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7847, + "src": "21480:21:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7898, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 21737, + "src": "21480:25:10", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 7900, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21480:34:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "21443:71:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 7859, + "id": 7902, + "nodeType": "Return", + "src": "21436:78:10" + } + }, + { + "assignments": [], + "declarations": [ + { + "constant": false, + "id": 7905, + "name": "result", + "nodeType": "VariableDeclaration", + "scope": 7949, + "src": "21519:14:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7904, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "21519:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 7906, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "21519:14:10" + }, + { + "assignments": [], + "declarations": [ + { + "constant": false, + "id": 7908, + "name": "precision", + "nodeType": "VariableDeclaration", + "scope": 7949, + "src": "21537:15:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 7907, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "21537:5:10", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 7909, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "21537:15:10" + }, + { + "assignments": [ + 7911 + ], + "declarations": [ + { + "constant": false, + "id": 7911, + "name": "baseN", + "nodeType": "VariableDeclaration", + "scope": 7949, + "src": "21556:13:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7910, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "21556:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 7916, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7914, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7855, + "src": "21598:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 7912, + "name": "_sourceReserveBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7847, + "src": "21572:21:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7913, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 21737, + "src": "21572:25:10", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 7915, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21572:34:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "21556:50:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 7926, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "id": 7917, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7905, + "src": "21611:6:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 7918, + "name": "precision", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7908, + "src": "21619:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "id": 7919, + "isConstant": false, + "isInlineArray": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "TupleExpression", + "src": "21610:19:10", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint8_$", + "typeString": "tuple(uint256,uint8)" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7921, + "name": "baseN", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7911, + "src": "21638:5:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 7922, + "name": "_sourceReserveBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7847, + "src": "21645:21:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 7923, + "name": "_sourceReserveWeight", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7849, + "src": "21668:20:10", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + { + "argumentTypes": null, + "id": 7924, + "name": "_targetReserveWeight", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7853, + "src": "21690:20:10", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + ], + "id": 7920, + "name": "power", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8457, + "src": "21632:5:10", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint256_$_t_uint32_$_t_uint32_$returns$_t_uint256_$_t_uint8_$", + "typeString": "function (uint256,uint256,uint32,uint32) view returns (uint256,uint8)" + } + }, + "id": 7925, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21632:79:10", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint8_$", + "typeString": "tuple(uint256,uint8)" + } + }, + "src": "21610:101:10", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7927, + "nodeType": "ExpressionStatement", + "src": "21610:101:10" + }, + { + "assignments": [ + 7929 + ], + "declarations": [ + { + "constant": false, + "id": 7929, + "name": "temp1", + "nodeType": "VariableDeclaration", + "scope": 7949, + "src": "21715:13:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7928, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "21715:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 7934, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7932, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7905, + "src": "21757:6:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 7930, + "name": "_targetReserveBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7851, + "src": "21731:21:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7931, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 21791, + "src": "21731:25:10", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 7933, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21731:33:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "21715:49:10" + }, + { + "assignments": [ + 7936 + ], + "declarations": [ + { + "constant": false, + "id": 7936, + "name": "temp2", + "nodeType": "VariableDeclaration", + "scope": 7949, + "src": "21768:13:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7935, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "21768:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 7940, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7939, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 7937, + "name": "_targetReserveBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7851, + "src": "21784:21:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<<", + "rightExpression": { + "argumentTypes": null, + "id": 7938, + "name": "precision", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7908, + "src": "21809:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "21784:34:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "21768:50:10" + }, + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7946, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7943, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 7941, + "name": "temp1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7929, + "src": "21830:5:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 7942, + "name": "temp2", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7936, + "src": "21838:5:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "21830:13:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 7944, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "21829:15:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 7945, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7905, + "src": "21847:6:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "21829:24:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 7859, + "id": 7947, + "nodeType": "Return", + "src": "21822:31:10" + } + ] + }, + "documentation": "@dev given two reserve balances/weights and a sell amount (in the first reserve token),\ncalculates the target amount for a conversion from the source reserve token to the target reserve token\n\t * Formula:\nreturn = _targetReserveBalance * (1 - (_sourceReserveBalance / (_sourceReserveBalance + _amount)) ^ (_sourceReserveWeight / _targetReserveWeight))\n\t * @param _sourceReserveBalance source reserve balance\n@param _sourceReserveWeight source reserve weight, represented in ppm (1-1000000)\n@param _targetReserveBalance target reserve balance\n@param _targetReserveWeight target reserve weight, represented in ppm (1-1000000)\n@param _amount source reserve amount\n\t * @return target reserve amount", + "id": 7949, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "crossReserveTargetAmount", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7856, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7847, + "name": "_sourceReserveBalance", + "nodeType": "VariableDeclaration", + "scope": 7949, + "src": "20869:29:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7846, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "20869:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7849, + "name": "_sourceReserveWeight", + "nodeType": "VariableDeclaration", + "scope": 7949, + "src": "20902:27:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 7848, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "20902:6:10", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7851, + "name": "_targetReserveBalance", + "nodeType": "VariableDeclaration", + "scope": 7949, + "src": "20933:29:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7850, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "20933:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7853, + "name": "_targetReserveWeight", + "nodeType": "VariableDeclaration", + "scope": 7949, + "src": "20966:27:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 7852, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "20966:6:10", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7855, + "name": "_amount", + "nodeType": "VariableDeclaration", + "scope": 7949, + "src": "20997:15:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7854, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "20997:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "20865:150:10" + }, + "payable": false, + "returnParameters": { + "id": 7859, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7858, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 7949, + "src": "21037:7:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7857, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "21037:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "21036:9:10" + }, + "scope": 11642, + "src": "20832:1025:10", + "stateMutability": "view", + "superFunction": 12183, + "visibility": "public" + }, + { + "body": { + "id": 8054, + "nodeType": "Block", + "src": "22604:684:10", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7965, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 7963, + "name": "_supply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7951, + "src": "22636:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 7964, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22646:1:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "22636:11:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4552525f494e56414c49445f535550504c59", + "id": 7966, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22649:20:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_663f10355ba071616cc91891330bbbd56c18b20e7bda020baff58fa08722ec60", + "typeString": "literal_string \"ERR_INVALID_SUPPLY\"" + }, + "value": "ERR_INVALID_SUPPLY" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_663f10355ba071616cc91891330bbbd56c18b20e7bda020baff58fa08722ec60", + "typeString": "literal_string \"ERR_INVALID_SUPPLY\"" + } + ], + "id": 7962, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 22341, + 22342 + ], + "referencedDeclaration": 22342, + "src": "22628:7:10", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 7967, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "22628:42:10", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7968, + "nodeType": "ExpressionStatement", + "src": "22628:42:10" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7972, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 7970, + "name": "_reserveBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7953, + "src": "22682:15:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 7971, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22700:1:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "22682:19:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4552525f494e56414c49445f524553455256455f42414c414e4345", + "id": 7973, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22703:29:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_50b448733a1d57cdd008d269297c4a2f50984605cb59e986bc2d98cee971e78d", + "typeString": "literal_string \"ERR_INVALID_RESERVE_BALANCE\"" + }, + "value": "ERR_INVALID_RESERVE_BALANCE" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_50b448733a1d57cdd008d269297c4a2f50984605cb59e986bc2d98cee971e78d", + "typeString": "literal_string \"ERR_INVALID_RESERVE_BALANCE\"" + } + ], + "id": 7969, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 22341, + 22342 + ], + "referencedDeclaration": 22342, + "src": "22674:7:10", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 7974, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "22674:59:10", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7975, + "nodeType": "ExpressionStatement", + "src": "22674:59:10" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 7985, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 7979, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 7977, + "name": "_reserveRatio", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7955, + "src": "22745:13:10", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 7978, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22761:1:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "22745:17:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 7984, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 7980, + "name": "_reserveRatio", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7955, + "src": "22766:13:10", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 7983, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 7981, + "name": "MAX_WEIGHT", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6228, + "src": "22783:10:10", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 7982, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22796:1:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "22783:14:10", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "22766:31:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "22745:52:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4552525f494e56414c49445f524553455256455f524154494f", + "id": 7986, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22799:27:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_8a8172d57fd89f78d9ce572e7618cbce6e9962212a6741dcc1911f87bc706d73", + "typeString": "literal_string \"ERR_INVALID_RESERVE_RATIO\"" + }, + "value": "ERR_INVALID_RESERVE_RATIO" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_8a8172d57fd89f78d9ce572e7618cbce6e9962212a6741dcc1911f87bc706d73", + "typeString": "literal_string \"ERR_INVALID_RESERVE_RATIO\"" + } + ], + "id": 7976, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 22341, + 22342 + ], + "referencedDeclaration": 22342, + "src": "22737:7:10", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 7987, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "22737:90:10", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7988, + "nodeType": "ExpressionStatement", + "src": "22737:90:10" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7991, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 7989, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7957, + "src": "22867:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 7990, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22878:1:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "22867:12:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 7994, + "nodeType": "IfStatement", + "src": "22863:26:10", + "trueBody": { + "expression": { + "argumentTypes": null, + "hexValue": "30", + "id": 7992, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22888:1:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "functionReturnParameters": 7961, + "id": 7993, + "nodeType": "Return", + "src": "22881:8:10" + } + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 7997, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 7995, + "name": "_reserveRatio", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7955, + "src": "22944:13:10", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 7996, + "name": "MAX_WEIGHT", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6228, + "src": "22961:10:10", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "22944:27:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 8010, + "nodeType": "IfStatement", + "src": "22940:88:10", + "trueBody": { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8008, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8006, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8003, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8000, + "name": "_reserveBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7953, + "src": "22993:15:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 7998, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7957, + "src": "22981:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7999, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 21791, + "src": "22981:11:10", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 8001, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "22981:28:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 8002, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "23012:1:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "22981:32:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 8004, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "22980:34:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 8005, + "name": "_supply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7951, + "src": "23017:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "22980:44:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 8007, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "23027:1:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "22980:48:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 7961, + "id": 8009, + "nodeType": "Return", + "src": "22973:55:10" + } + }, + { + "assignments": [], + "declarations": [ + { + "constant": false, + "id": 8012, + "name": "result", + "nodeType": "VariableDeclaration", + "scope": 8055, + "src": "23033:14:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8011, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "23033:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 8013, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "23033:14:10" + }, + { + "assignments": [], + "declarations": [ + { + "constant": false, + "id": 8015, + "name": "precision", + "nodeType": "VariableDeclaration", + "scope": 8055, + "src": "23051:15:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 8014, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "23051:5:10", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 8016, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "23051:15:10" + }, + { + "assignments": [ + 8018 + ], + "declarations": [ + { + "constant": false, + "id": 8018, + "name": "baseN", + "nodeType": "VariableDeclaration", + "scope": 8055, + "src": "23070:13:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8017, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "23070:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 8023, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8021, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7957, + "src": "23098:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 8019, + "name": "_supply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7951, + "src": "23086:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8020, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 21737, + "src": "23086:11:10", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 8022, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "23086:20:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "23070:36:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 8033, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "id": 8024, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8012, + "src": "23111:6:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 8025, + "name": "precision", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8015, + "src": "23119:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "id": 8026, + "isConstant": false, + "isInlineArray": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "TupleExpression", + "src": "23110:19:10", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint8_$", + "typeString": "tuple(uint256,uint8)" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8028, + "name": "baseN", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8018, + "src": "23138:5:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 8029, + "name": "_supply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7951, + "src": "23145:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 8030, + "name": "MAX_WEIGHT", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6228, + "src": "23154:10:10", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + { + "argumentTypes": null, + "id": 8031, + "name": "_reserveRatio", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7955, + "src": "23166:13:10", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + ], + "id": 8027, + "name": "power", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8457, + "src": "23132:5:10", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint256_$_t_uint32_$_t_uint32_$returns$_t_uint256_$_t_uint8_$", + "typeString": "function (uint256,uint256,uint32,uint32) view returns (uint256,uint8)" + } + }, + "id": 8032, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "23132:48:10", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint8_$", + "typeString": "tuple(uint256,uint8)" + } + }, + "src": "23110:70:10", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8034, + "nodeType": "ExpressionStatement", + "src": "23110:70:10" + }, + { + "assignments": [ + 8036 + ], + "declarations": [ + { + "constant": false, + "id": 8036, + "name": "temp", + "nodeType": "VariableDeclaration", + "scope": 8055, + "src": "23184:12:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8035, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "23184:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 8049, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8048, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8045, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8042, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8039, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8012, + "src": "23221:6:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 8037, + "name": "_reserveBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7953, + "src": "23201:15:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8038, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 21791, + "src": "23201:19:10", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 8040, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "23201:27:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 8041, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "23231:1:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "23201:31:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 8043, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "23200:33:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "argumentTypes": null, + "id": 8044, + "name": "precision", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8015, + "src": "23237:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "23200:46:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 8046, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "23199:48:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 8047, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "23250:1:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "23199:52:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "23184:67:10" + }, + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8052, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8050, + "name": "temp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8036, + "src": "23262:4:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 8051, + "name": "_reserveBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7953, + "src": "23269:15:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "23262:22:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 7961, + "id": 8053, + "nodeType": "Return", + "src": "23255:29:10" + } + ] + }, + "documentation": "@dev given a smart token supply, reserve balance, reserve ratio and an amount of requested smart tokens,\ncalculates the amount of reserve tokens required for purchasing the given amount of smart tokens\n\t * Formula:\nreturn = _reserveBalance * (((_supply + _amount) / _supply) ^ (MAX_WEIGHT / _reserveRatio) - 1)\n\t * @param _supply smart token supply\n@param _reserveBalance reserve balance\n@param _reserveRatio reserve ratio, represented in ppm (2-2000000)\n@param _amount requested amount of smart tokens\n\t * @return reserve token amount", + "id": 8055, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "fundCost", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7958, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7951, + "name": "_supply", + "nodeType": "VariableDeclaration", + "scope": 8055, + "src": "22485:15:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7950, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "22485:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7953, + "name": "_reserveBalance", + "nodeType": "VariableDeclaration", + "scope": 8055, + "src": "22504:23:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7952, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "22504:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7955, + "name": "_reserveRatio", + "nodeType": "VariableDeclaration", + "scope": 8055, + "src": "22531:20:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 7954, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "22531:6:10", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7957, + "name": "_amount", + "nodeType": "VariableDeclaration", + "scope": 8055, + "src": "22555:15:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7956, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "22555:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "22481:92:10" + }, + "payable": false, + "returnParameters": { + "id": 7961, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7960, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 8055, + "src": "22595:7:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7959, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "22595:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "22594:9:10" + }, + "scope": 11642, + "src": "22464:824:10", + "stateMutability": "view", + "superFunction": 12196, + "visibility": "public" + }, + { + "body": { + "id": 8149, + "nodeType": "Block", + "src": "24048:662:10", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8071, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8069, + "name": "_supply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8057, + "src": "24080:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 8070, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "24090:1:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "24080:11:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4552525f494e56414c49445f535550504c59", + "id": 8072, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "24093:20:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_663f10355ba071616cc91891330bbbd56c18b20e7bda020baff58fa08722ec60", + "typeString": "literal_string \"ERR_INVALID_SUPPLY\"" + }, + "value": "ERR_INVALID_SUPPLY" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_663f10355ba071616cc91891330bbbd56c18b20e7bda020baff58fa08722ec60", + "typeString": "literal_string \"ERR_INVALID_SUPPLY\"" + } + ], + "id": 8068, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 22341, + 22342 + ], + "referencedDeclaration": 22342, + "src": "24072:7:10", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 8073, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "24072:42:10", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8074, + "nodeType": "ExpressionStatement", + "src": "24072:42:10" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8078, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8076, + "name": "_reserveBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8059, + "src": "24126:15:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 8077, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "24144:1:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "24126:19:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4552525f494e56414c49445f524553455256455f42414c414e4345", + "id": 8079, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "24147:29:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_50b448733a1d57cdd008d269297c4a2f50984605cb59e986bc2d98cee971e78d", + "typeString": "literal_string \"ERR_INVALID_RESERVE_BALANCE\"" + }, + "value": "ERR_INVALID_RESERVE_BALANCE" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_50b448733a1d57cdd008d269297c4a2f50984605cb59e986bc2d98cee971e78d", + "typeString": "literal_string \"ERR_INVALID_RESERVE_BALANCE\"" + } + ], + "id": 8075, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 22341, + 22342 + ], + "referencedDeclaration": 22342, + "src": "24118:7:10", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 8080, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "24118:59:10", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8081, + "nodeType": "ExpressionStatement", + "src": "24118:59:10" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 8091, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 8085, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8083, + "name": "_reserveRatio", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8061, + "src": "24189:13:10", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 8084, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "24205:1:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "24189:17:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 8090, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8086, + "name": "_reserveRatio", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8061, + "src": "24210:13:10", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 8089, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8087, + "name": "MAX_WEIGHT", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6228, + "src": "24227:10:10", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 8088, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "24240:1:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "24227:14:10", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "24210:31:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "24189:52:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4552525f494e56414c49445f524553455256455f524154494f", + "id": 8092, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "24243:27:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_8a8172d57fd89f78d9ce572e7618cbce6e9962212a6741dcc1911f87bc706d73", + "typeString": "literal_string \"ERR_INVALID_RESERVE_RATIO\"" + }, + "value": "ERR_INVALID_RESERVE_RATIO" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_8a8172d57fd89f78d9ce572e7618cbce6e9962212a6741dcc1911f87bc706d73", + "typeString": "literal_string \"ERR_INVALID_RESERVE_RATIO\"" + } + ], + "id": 8082, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 22341, + 22342 + ], + "referencedDeclaration": 22342, + "src": "24181:7:10", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 8093, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "24181:90:10", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8094, + "nodeType": "ExpressionStatement", + "src": "24181:90:10" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8097, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8095, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8063, + "src": "24311:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 8096, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "24322:1:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "24311:12:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 8100, + "nodeType": "IfStatement", + "src": "24307:26:10", + "trueBody": { + "expression": { + "argumentTypes": null, + "hexValue": "30", + "id": 8098, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "24332:1:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "functionReturnParameters": 8067, + "id": 8099, + "nodeType": "Return", + "src": "24325:8:10" + } + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 8103, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8101, + "name": "_reserveRatio", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8061, + "src": "24388:13:10", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 8102, + "name": "MAX_WEIGHT", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6228, + "src": "24405:10:10", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "24388:27:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 8111, + "nodeType": "IfStatement", + "src": "24384:78:10", + "trueBody": { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8109, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8106, + "name": "_supply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8057, + "src": "24436:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 8104, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8063, + "src": "24424:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8105, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 21791, + "src": "24424:11:10", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 8107, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "24424:20:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 8108, + "name": "_reserveBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8059, + "src": "24447:15:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "24424:38:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 8067, + "id": 8110, + "nodeType": "Return", + "src": "24417:45:10" + } + }, + { + "assignments": [], + "declarations": [ + { + "constant": false, + "id": 8113, + "name": "result", + "nodeType": "VariableDeclaration", + "scope": 8150, + "src": "24467:14:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8112, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "24467:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 8114, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "24467:14:10" + }, + { + "assignments": [], + "declarations": [ + { + "constant": false, + "id": 8116, + "name": "precision", + "nodeType": "VariableDeclaration", + "scope": 8150, + "src": "24485:15:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 8115, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "24485:5:10", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 8117, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "24485:15:10" + }, + { + "assignments": [ + 8119 + ], + "declarations": [ + { + "constant": false, + "id": 8119, + "name": "baseN", + "nodeType": "VariableDeclaration", + "scope": 8150, + "src": "24504:13:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8118, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "24504:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 8124, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8122, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8063, + "src": "24540:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 8120, + "name": "_reserveBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8059, + "src": "24520:15:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8121, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 21737, + "src": "24520:19:10", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 8123, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "24520:28:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "24504:44:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 8134, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "id": 8125, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8113, + "src": "24553:6:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 8126, + "name": "precision", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8116, + "src": "24561:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "id": 8127, + "isConstant": false, + "isInlineArray": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "TupleExpression", + "src": "24552:19:10", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint8_$", + "typeString": "tuple(uint256,uint8)" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8129, + "name": "baseN", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8119, + "src": "24580:5:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 8130, + "name": "_reserveBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8059, + "src": "24587:15:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 8131, + "name": "_reserveRatio", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8061, + "src": "24604:13:10", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + { + "argumentTypes": null, + "id": 8132, + "name": "MAX_WEIGHT", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6228, + "src": "24619:10:10", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + ], + "id": 8128, + "name": "power", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8457, + "src": "24574:5:10", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint256_$_t_uint32_$_t_uint32_$returns$_t_uint256_$_t_uint8_$", + "typeString": "function (uint256,uint256,uint32,uint32) view returns (uint256,uint8)" + } + }, + "id": 8133, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "24574:56:10", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint8_$", + "typeString": "tuple(uint256,uint8)" + } + }, + "src": "24552:78:10", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8135, + "nodeType": "ExpressionStatement", + "src": "24552:78:10" + }, + { + "assignments": [ + 8137 + ], + "declarations": [ + { + "constant": false, + "id": 8137, + "name": "temp", + "nodeType": "VariableDeclaration", + "scope": 8150, + "src": "24634:12:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8136, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "24634:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 8144, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8143, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8140, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8113, + "src": "24661:6:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 8138, + "name": "_supply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8057, + "src": "24649:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8139, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 21791, + "src": "24649:11:10", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 8141, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "24649:19:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "argumentTypes": null, + "id": 8142, + "name": "precision", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8116, + "src": "24672:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "24649:32:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "24634:47:10" + }, + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8147, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8145, + "name": "temp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8137, + "src": "24692:4:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 8146, + "name": "_supply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8057, + "src": "24699:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "24692:14:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 8067, + "id": 8148, + "nodeType": "Return", + "src": "24685:21:10" + } + ] + }, + "documentation": "@dev given a smart token supply, reserve balance, reserve ratio and an amount of reserve tokens to fund with,\ncalculates the amount of smart tokens received for purchasing with the given amount of reserve tokens\n\t * Formula:\nreturn = _supply * ((_amount / _reserveBalance + 1) ^ (_reserveRatio / MAX_WEIGHT) - 1)\n\t * @param _supply smart token supply\n@param _reserveBalance reserve balance\n@param _reserveRatio reserve ratio, represented in ppm (2-2000000)\n@param _amount amount of reserve tokens to fund with\n\t * @return smart token amount", + "id": 8150, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "fundSupplyAmount", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8064, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8057, + "name": "_supply", + "nodeType": "VariableDeclaration", + "scope": 8150, + "src": "23929:15:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8056, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "23929:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 8059, + "name": "_reserveBalance", + "nodeType": "VariableDeclaration", + "scope": 8150, + "src": "23948:23:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8058, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "23948:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 8061, + "name": "_reserveRatio", + "nodeType": "VariableDeclaration", + "scope": 8150, + "src": "23975:20:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 8060, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "23975:6:10", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 8063, + "name": "_amount", + "nodeType": "VariableDeclaration", + "scope": 8150, + "src": "23999:15:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8062, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "23999:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "23925:92:10" + }, + "payable": false, + "returnParameters": { + "id": 8067, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8066, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 8150, + "src": "24039:7:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8065, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "24039:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "24038:9:10" + }, + "scope": 11642, + "src": "23900:810:10", + "stateMutability": "view", + "superFunction": 12209, + "visibility": "public" + }, + { + "body": { + "id": 8263, + "nodeType": "Block", + "src": "25474:853:10", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8166, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8164, + "name": "_supply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8152, + "src": "25506:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 8165, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "25516:1:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "25506:11:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4552525f494e56414c49445f535550504c59", + "id": 8167, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "25519:20:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_663f10355ba071616cc91891330bbbd56c18b20e7bda020baff58fa08722ec60", + "typeString": "literal_string \"ERR_INVALID_SUPPLY\"" + }, + "value": "ERR_INVALID_SUPPLY" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_663f10355ba071616cc91891330bbbd56c18b20e7bda020baff58fa08722ec60", + "typeString": "literal_string \"ERR_INVALID_SUPPLY\"" + } + ], + "id": 8163, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 22341, + 22342 + ], + "referencedDeclaration": 22342, + "src": "25498:7:10", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 8168, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "25498:42:10", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8169, + "nodeType": "ExpressionStatement", + "src": "25498:42:10" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8173, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8171, + "name": "_reserveBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8154, + "src": "25552:15:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 8172, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "25570:1:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "25552:19:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4552525f494e56414c49445f524553455256455f42414c414e4345", + "id": 8174, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "25573:29:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_50b448733a1d57cdd008d269297c4a2f50984605cb59e986bc2d98cee971e78d", + "typeString": "literal_string \"ERR_INVALID_RESERVE_BALANCE\"" + }, + "value": "ERR_INVALID_RESERVE_BALANCE" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_50b448733a1d57cdd008d269297c4a2f50984605cb59e986bc2d98cee971e78d", + "typeString": "literal_string \"ERR_INVALID_RESERVE_BALANCE\"" + } + ], + "id": 8170, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 22341, + 22342 + ], + "referencedDeclaration": 22342, + "src": "25544:7:10", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 8175, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "25544:59:10", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8176, + "nodeType": "ExpressionStatement", + "src": "25544:59:10" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 8186, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 8180, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8178, + "name": "_reserveRatio", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8156, + "src": "25615:13:10", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 8179, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "25631:1:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "25615:17:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 8185, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8181, + "name": "_reserveRatio", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8156, + "src": "25636:13:10", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 8184, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8182, + "name": "MAX_WEIGHT", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6228, + "src": "25653:10:10", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 8183, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "25666:1:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "25653:14:10", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "25636:31:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "25615:52:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4552525f494e56414c49445f524553455256455f524154494f", + "id": 8187, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "25669:27:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_8a8172d57fd89f78d9ce572e7618cbce6e9962212a6741dcc1911f87bc706d73", + "typeString": "literal_string \"ERR_INVALID_RESERVE_RATIO\"" + }, + "value": "ERR_INVALID_RESERVE_RATIO" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_8a8172d57fd89f78d9ce572e7618cbce6e9962212a6741dcc1911f87bc706d73", + "typeString": "literal_string \"ERR_INVALID_RESERVE_RATIO\"" + } + ], + "id": 8177, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 22341, + 22342 + ], + "referencedDeclaration": 22342, + "src": "25607:7:10", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 8188, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "25607:90:10", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8189, + "nodeType": "ExpressionStatement", + "src": "25607:90:10" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8193, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8191, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8158, + "src": "25709:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "id": 8192, + "name": "_supply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8152, + "src": "25720:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "25709:18:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4552525f494e56414c49445f414d4f554e54", + "id": 8194, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "25729:20:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c44007bfe4e704be0ed1393660a827b4f88825f4b6fe1bc10cd38fc3fcb7d839", + "typeString": "literal_string \"ERR_INVALID_AMOUNT\"" + }, + "value": "ERR_INVALID_AMOUNT" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c44007bfe4e704be0ed1393660a827b4f88825f4b6fe1bc10cd38fc3fcb7d839", + "typeString": "literal_string \"ERR_INVALID_AMOUNT\"" + } + ], + "id": 8190, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 22341, + 22342 + ], + "referencedDeclaration": 22342, + "src": "25701:7:10", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 8195, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "25701:49:10", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8196, + "nodeType": "ExpressionStatement", + "src": "25701:49:10" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8199, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8197, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8158, + "src": "25790:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 8198, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "25801:1:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "25790:12:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 8202, + "nodeType": "IfStatement", + "src": "25786:26:10", + "trueBody": { + "expression": { + "argumentTypes": null, + "hexValue": "30", + "id": 8200, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "25811:1:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "functionReturnParameters": 8162, + "id": 8201, + "nodeType": "Return", + "src": "25804:8:10" + } + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8205, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8203, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8158, + "src": "25873:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 8204, + "name": "_supply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8152, + "src": "25884:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "25873:18:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 8208, + "nodeType": "IfStatement", + "src": "25869:46:10", + "trueBody": { + "expression": { + "argumentTypes": null, + "id": 8206, + "name": "_reserveBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8154, + "src": "25900:15:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 8162, + "id": 8207, + "nodeType": "Return", + "src": "25893:22:10" + } + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 8211, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8209, + "name": "_reserveRatio", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8156, + "src": "25970:13:10", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 8210, + "name": "MAX_WEIGHT", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6228, + "src": "25987:10:10", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "25970:27:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 8219, + "nodeType": "IfStatement", + "src": "25966:78:10", + "trueBody": { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8217, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8214, + "name": "_reserveBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8154, + "src": "26018:15:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 8212, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8158, + "src": "26006:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8213, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 21791, + "src": "26006:11:10", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 8215, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "26006:28:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 8216, + "name": "_supply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8152, + "src": "26037:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "26006:38:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 8162, + "id": 8218, + "nodeType": "Return", + "src": "25999:45:10" + } + }, + { + "assignments": [], + "declarations": [ + { + "constant": false, + "id": 8221, + "name": "result", + "nodeType": "VariableDeclaration", + "scope": 8264, + "src": "26049:14:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8220, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "26049:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 8222, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "26049:14:10" + }, + { + "assignments": [], + "declarations": [ + { + "constant": false, + "id": 8224, + "name": "precision", + "nodeType": "VariableDeclaration", + "scope": 8264, + "src": "26067:15:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 8223, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "26067:5:10", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 8225, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "26067:15:10" + }, + { + "assignments": [ + 8227 + ], + "declarations": [ + { + "constant": false, + "id": 8227, + "name": "baseD", + "nodeType": "VariableDeclaration", + "scope": 8264, + "src": "26086:13:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8226, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "26086:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 8231, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8230, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8228, + "name": "_supply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8152, + "src": "26102:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 8229, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8158, + "src": "26112:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "26102:17:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "26086:33:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 8241, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "id": 8232, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8221, + "src": "26124:6:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 8233, + "name": "precision", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8224, + "src": "26132:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "id": 8234, + "isConstant": false, + "isInlineArray": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "TupleExpression", + "src": "26123:19:10", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint8_$", + "typeString": "tuple(uint256,uint8)" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8236, + "name": "_supply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8152, + "src": "26151:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 8237, + "name": "baseD", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8227, + "src": "26160:5:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 8238, + "name": "MAX_WEIGHT", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6228, + "src": "26167:10:10", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + { + "argumentTypes": null, + "id": 8239, + "name": "_reserveRatio", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8156, + "src": "26179:13:10", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + ], + "id": 8235, + "name": "power", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8457, + "src": "26145:5:10", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint256_$_t_uint32_$_t_uint32_$returns$_t_uint256_$_t_uint8_$", + "typeString": "function (uint256,uint256,uint32,uint32) view returns (uint256,uint8)" + } + }, + "id": 8240, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "26145:48:10", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint8_$", + "typeString": "tuple(uint256,uint8)" + } + }, + "src": "26123:70:10", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8242, + "nodeType": "ExpressionStatement", + "src": "26123:70:10" + }, + { + "assignments": [ + 8244 + ], + "declarations": [ + { + "constant": false, + "id": 8244, + "name": "temp1", + "nodeType": "VariableDeclaration", + "scope": 8264, + "src": "26197:13:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8243, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "26197:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 8249, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8247, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8221, + "src": "26233:6:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 8245, + "name": "_reserveBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8154, + "src": "26213:15:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8246, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 21791, + "src": "26213:19:10", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 8248, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "26213:27:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "26197:43:10" + }, + { + "assignments": [ + 8251 + ], + "declarations": [ + { + "constant": false, + "id": 8251, + "name": "temp2", + "nodeType": "VariableDeclaration", + "scope": 8264, + "src": "26244:13:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8250, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "26244:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 8255, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8254, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8252, + "name": "_reserveBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8154, + "src": "26260:15:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<<", + "rightExpression": { + "argumentTypes": null, + "id": 8253, + "name": "precision", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8224, + "src": "26279:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "26260:28:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "26244:44:10" + }, + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8261, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8258, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8256, + "name": "temp1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8244, + "src": "26300:5:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 8257, + "name": "temp2", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8251, + "src": "26308:5:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "26300:13:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 8259, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "26299:15:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 8260, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8221, + "src": "26317:6:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "26299:24:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 8162, + "id": 8262, + "nodeType": "Return", + "src": "26292:31:10" + } + ] + }, + "documentation": "@dev given a smart token supply, reserve balance, reserve ratio and an amount of smart tokens to liquidate,\ncalculates the amount of reserve tokens received for selling the given amount of smart tokens\n\t * Formula:\nreturn = _reserveBalance * (1 - ((_supply - _amount) / _supply) ^ (MAX_WEIGHT / _reserveRatio))\n\t * @param _supply smart token supply\n@param _reserveBalance reserve balance\n@param _reserveRatio reserve ratio, represented in ppm (2-2000000)\n@param _amount amount of smart tokens to liquidate\n\t * @return reserve token amount", + "id": 8264, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "liquidateReserveAmount", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8159, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8152, + "name": "_supply", + "nodeType": "VariableDeclaration", + "scope": 8264, + "src": "25355:15:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8151, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "25355:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 8154, + "name": "_reserveBalance", + "nodeType": "VariableDeclaration", + "scope": 8264, + "src": "25374:23:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8153, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "25374:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 8156, + "name": "_reserveRatio", + "nodeType": "VariableDeclaration", + "scope": 8264, + "src": "25401:20:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 8155, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "25401:6:10", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 8158, + "name": "_amount", + "nodeType": "VariableDeclaration", + "scope": 8264, + "src": "25425:15:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8157, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "25425:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "25351:92:10" + }, + "payable": false, + "returnParameters": { + "id": 8162, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8161, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 8264, + "src": "25465:7:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8160, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "25465:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "25464:9:10" + }, + "scope": 11642, + "src": "25320:1007:10", + "stateMutability": "view", + "superFunction": 12222, + "visibility": "public" + }, + { + "body": { + "id": 8365, + "nodeType": "Block", + "src": "28704:924:10", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8283, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8281, + "name": "_primaryReserveStakedBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8266, + "src": "28712:28:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 8282, + "name": "_primaryReserveBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8268, + "src": "28744:22:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "28712:54:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 8306, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 8302, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8298, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8296, + "name": "_primaryReserveStakedBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8266, + "src": "28892:28:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 8297, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "28923:1:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "28892:32:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8301, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8299, + "name": "_primaryReserveBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8268, + "src": "28928:22:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 8300, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "28953:1:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "28928:26:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "28892:62:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8305, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8303, + "name": "_secondaryReserveBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8270, + "src": "28958:24:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 8304, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "28985:1:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "28958:28:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "28892:94:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4552525f494e56414c49445f524553455256455f42414c414e4345", + "id": 8307, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "28988:29:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_50b448733a1d57cdd008d269297c4a2f50984605cb59e986bc2d98cee971e78d", + "typeString": "literal_string \"ERR_INVALID_RESERVE_BALANCE\"" + }, + "value": "ERR_INVALID_RESERVE_BALANCE" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_50b448733a1d57cdd008d269297c4a2f50984605cb59e986bc2d98cee971e78d", + "typeString": "literal_string \"ERR_INVALID_RESERVE_BALANCE\"" + } + ], + "id": 8295, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 22341, + 22342 + ], + "referencedDeclaration": 22342, + "src": "28884:7:10", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 8308, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "28884:134:10", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8309, + "nodeType": "ExpressionStatement", + "src": "28884:134:10" + }, + "id": 8310, + "nodeType": "IfStatement", + "src": "28708:310:10", + "trueBody": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 8291, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8287, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8285, + "name": "_primaryReserveStakedBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8266, + "src": "28779:28:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 8286, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "28810:1:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "28779:32:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8290, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8288, + "name": "_secondaryReserveBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8270, + "src": "28815:24:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 8289, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "28842:1:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "28815:28:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "28779:64:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4552525f494e56414c49445f524553455256455f42414c414e4345", + "id": 8292, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "28845:29:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_50b448733a1d57cdd008d269297c4a2f50984605cb59e986bc2d98cee971e78d", + "typeString": "literal_string \"ERR_INVALID_RESERVE_BALANCE\"" + }, + "value": "ERR_INVALID_RESERVE_BALANCE" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_50b448733a1d57cdd008d269297c4a2f50984605cb59e986bc2d98cee971e78d", + "typeString": "literal_string \"ERR_INVALID_RESERVE_BALANCE\"" + } + ], + "id": 8284, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 22341, + 22342 + ], + "referencedDeclaration": 22342, + "src": "28771:7:10", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 8293, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "28771:104:10", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8294, + "nodeType": "ExpressionStatement", + "src": "28771:104:10" + } + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 8318, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8314, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8312, + "name": "_reserveRateNumerator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8272, + "src": "29030:21:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 8313, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29054:1:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "29030:25:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8317, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8315, + "name": "_reserveRateDenominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8274, + "src": "29059:23:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 8316, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29085:1:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "29059:27:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "29030:56:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4552525f494e56414c49445f524553455256455f52415445", + "id": 8319, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29088:26:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_ef2ffbf1bb88550d8f6c1cbc448ef8c9b658c0125c3eaac6dd7d95fb505ee813", + "typeString": "literal_string \"ERR_INVALID_RESERVE_RATE\"" + }, + "value": "ERR_INVALID_RESERVE_RATE" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_ef2ffbf1bb88550d8f6c1cbc448ef8c9b658c0125c3eaac6dd7d95fb505ee813", + "typeString": "literal_string \"ERR_INVALID_RESERVE_RATE\"" + } + ], + "id": 8311, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 22341, + 22342 + ], + "referencedDeclaration": 22342, + "src": "29022:7:10", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 8320, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "29022:93:10", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8321, + "nodeType": "ExpressionStatement", + "src": "29022:93:10" + }, + { + "assignments": [ + 8323 + ], + "declarations": [ + { + "constant": false, + "id": 8323, + "name": "tq", + "nodeType": "VariableDeclaration", + "scope": 8366, + "src": "29120:10:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8322, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "29120:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 8328, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8326, + "name": "_reserveRateNumerator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8272, + "src": "29166:21:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 8324, + "name": "_primaryReserveStakedBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8266, + "src": "29133:28:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8325, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 21791, + "src": "29133:32:10", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 8327, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "29133:55:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "29120:68:10" + }, + { + "assignments": [ + 8330 + ], + "declarations": [ + { + "constant": false, + "id": 8330, + "name": "rp", + "nodeType": "VariableDeclaration", + "scope": 8366, + "src": "29192:10:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8329, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "29192:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 8335, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8333, + "name": "_reserveRateDenominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8274, + "src": "29234:23:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 8331, + "name": "_secondaryReserveBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8270, + "src": "29205:24:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8332, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 21791, + "src": "29205:28:10", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 8334, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "29205:53:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "29192:66:10" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8338, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8336, + "name": "_primaryReserveStakedBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8266, + "src": "29267:28:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 8337, + "name": "_primaryReserveBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8268, + "src": "29298:22:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "29267:53:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 8347, + "nodeType": "IfStatement", + "src": "29263:159:10", + "trueBody": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8340, + "name": "_primaryReserveBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8268, + "src": "29355:22:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 8341, + "name": "_primaryReserveStakedBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8266, + "src": "29379:28:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 8342, + "name": "tq", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8323, + "src": "29409:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 8343, + "name": "rp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8330, + "src": "29413:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "hexValue": "74727565", + "id": 8344, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29417:4:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 8339, + "name": "balancedWeightsByStake", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11225, + "src": "29332:22:10", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_bool_$returns$_t_uint32_$_t_uint32_$", + "typeString": "function (uint256,uint256,uint256,uint256,bool) view returns (uint32,uint32)" + } + }, + "id": 8345, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "29332:90:10", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint32_$_t_uint32_$", + "typeString": "tuple(uint32,uint32)" + } + }, + "functionReturnParameters": 8280, + "id": 8346, + "nodeType": "Return", + "src": "29325:97:10" + } + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8350, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8348, + "name": "_primaryReserveStakedBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8266, + "src": "29431:28:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "id": 8349, + "name": "_primaryReserveBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8268, + "src": "29462:22:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "29431:53:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 8359, + "nodeType": "IfStatement", + "src": "29427:160:10", + "trueBody": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8352, + "name": "_primaryReserveStakedBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8266, + "src": "29519:28:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 8353, + "name": "_primaryReserveBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8268, + "src": "29549:22:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 8354, + "name": "tq", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8323, + "src": "29573:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 8355, + "name": "rp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8330, + "src": "29577:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 8356, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29581:5:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 8351, + "name": "balancedWeightsByStake", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11225, + "src": "29496:22:10", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_bool_$returns$_t_uint32_$_t_uint32_$", + "typeString": "function (uint256,uint256,uint256,uint256,bool) view returns (uint32,uint32)" + } + }, + "id": 8357, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "29496:91:10", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint32_$_t_uint32_$", + "typeString": "tuple(uint32,uint32)" + } + }, + "functionReturnParameters": 8280, + "id": 8358, + "nodeType": "Return", + "src": "29489:98:10" + } + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8361, + "name": "tq", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8323, + "src": "29617:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 8362, + "name": "rp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8330, + "src": "29621:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 8360, + "name": "normalizedWeights", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11334, + "src": "29599:17:10", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint32_$_t_uint32_$", + "typeString": "function (uint256,uint256) pure returns (uint32,uint32)" + } + }, + "id": 8363, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "29599:25:10", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint32_$_t_uint32_$", + "typeString": "tuple(uint32,uint32)" + } + }, + "functionReturnParameters": 8280, + "id": 8364, + "nodeType": "Return", + "src": "29592:32:10" + } + ] + }, + "documentation": "@dev The arbitrage incentive is to convert to the point where the on-chain price is equal to the off-chain price.\nWe want this operation to also impact the primary reserve balance becoming equal to the primary reserve staked balance.\nIn other words, we want the arbitrager to convert the difference between the reserve balance and the reserve staked balance.\n\t * Formula input:\n- let t denote the primary reserve token staked balance\n- let s denote the primary reserve token balance\n- let r denote the secondary reserve token balance\n- let q denote the numerator of the rate between the tokens\n- let p denote the denominator of the rate between the tokens\nWhere p primary tokens are equal to q secondary tokens\n\t * Formula output:\n- compute x = W(t / r * q / p * log(s / t)) / log(s / t)\n- return x / (1 + x) as the weight of the primary reserve token\n- return 1 / (1 + x) as the weight of the secondary reserve token\nWhere W is the Lambert W Function\n\t * If the rate-provider provides the rates for a common unit, for example:\n- P = 2 ==> 2 primary reserve tokens = 1 ether\n- Q = 3 ==> 3 secondary reserve tokens = 1 ether\nThen you can simply use p = P and q = Q\n\t * If the rate-provider provides the rates for a single unit, for example:\n- P = 2 ==> 1 primary reserve token = 2 ethers\n- Q = 3 ==> 1 secondary reserve token = 3 ethers\nThen you can simply use p = Q and q = P\n\t * @param _primaryReserveStakedBalance the primary reserve token staked balance\n@param _primaryReserveBalance the primary reserve token balance\n@param _secondaryReserveBalance the secondary reserve token balance\n@param _reserveRateNumerator the numerator of the rate between the tokens\n@param _reserveRateDenominator the denominator of the rate between the tokens\n\t * Note that `numerator / denominator` should represent the amount of secondary tokens equal to one primary token\n\t * @return the weight of the primary reserve token and the weight of the secondary reserve token, both in ppm (0-1000000)", + "id": 8366, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "balancedWeights", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8275, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8266, + "name": "_primaryReserveStakedBalance", + "nodeType": "VariableDeclaration", + "scope": 8366, + "src": "28489:36:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8265, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "28489:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 8268, + "name": "_primaryReserveBalance", + "nodeType": "VariableDeclaration", + "scope": 8366, + "src": "28529:30:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8267, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "28529:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 8270, + "name": "_secondaryReserveBalance", + "nodeType": "VariableDeclaration", + "scope": 8366, + "src": "28563:32:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8269, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "28563:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 8272, + "name": "_reserveRateNumerator", + "nodeType": "VariableDeclaration", + "scope": 8366, + "src": "28599:29:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8271, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "28599:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 8274, + "name": "_reserveRateDenominator", + "nodeType": "VariableDeclaration", + "scope": 8366, + "src": "28632:31:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8273, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "28632:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "28485:181:10" + }, + "payable": false, + "returnParameters": { + "id": 8280, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8277, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 8366, + "src": "28688:6:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 8276, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "28688:6:10", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 8279, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 8366, + "src": "28696:6:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 8278, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "28696:6:10", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "28687:16:10" + }, + "scope": 11642, + "src": "28461:1167:10", + "stateMutability": "view", + "superFunction": 12239, + "visibility": "public" + }, + { + "body": { + "id": 8456, + "nodeType": "Block", + "src": "31251:537:10", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8384, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8382, + "name": "_baseN", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8368, + "src": "31263:6:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 8383, + "name": "MAX_NUM", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6243, + "src": "31272:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "31263:16:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 8381, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 22341, + 22342 + ], + "referencedDeclaration": 22341, + "src": "31255:7:10", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 8385, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "31255:25:10", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8386, + "nodeType": "ExpressionStatement", + "src": "31255:25:10" + }, + { + "assignments": [], + "declarations": [ + { + "constant": false, + "id": 8388, + "name": "baseLog", + "nodeType": "VariableDeclaration", + "scope": 8457, + "src": "31285:15:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8387, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "31285:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 8389, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "31285:15:10" + }, + { + "assignments": [ + 8391 + ], + "declarations": [ + { + "constant": false, + "id": 8391, + "name": "base", + "nodeType": "VariableDeclaration", + "scope": 8457, + "src": "31304:12:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8390, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "31304:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 8398, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8397, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8394, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8392, + "name": "_baseN", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8368, + "src": "31320:6:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 8393, + "name": "FIXED_1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6237, + "src": "31329:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "31320:16:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 8395, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "31319:18:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 8396, + "name": "_baseD", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8370, + "src": "31340:6:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "31319:27:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "31304:42:10" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8401, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8399, + "name": "base", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8391, + "src": "31354:4:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 8400, + "name": "OPT_LOG_MAX_VAL", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6252, + "src": "31361:15:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "31354:22:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 8415, + "nodeType": "Block", + "src": "31420:36:10", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 8413, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 8409, + "name": "baseLog", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8388, + "src": "31425:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8411, + "name": "base", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8391, + "src": "31446:4:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 8410, + "name": "generalLog", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8543, + "src": "31435:10:10", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 8412, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "31435:16:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "31425:26:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8414, + "nodeType": "ExpressionStatement", + "src": "31425:26:10" + } + ] + }, + "id": 8416, + "nodeType": "IfStatement", + "src": "31350:106:10", + "trueBody": { + "id": 8408, + "nodeType": "Block", + "src": "31378:36:10", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 8406, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 8402, + "name": "baseLog", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8388, + "src": "31383:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8404, + "name": "base", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8391, + "src": "31404:4:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 8403, + "name": "optimalLog", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9523, + "src": "31393:10:10", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 8405, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "31393:16:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "31383:26:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8407, + "nodeType": "ExpressionStatement", + "src": "31383:26:10" + } + ] + } + }, + { + "assignments": [ + 8418 + ], + "declarations": [ + { + "constant": false, + "id": 8418, + "name": "baseLogTimesExp", + "nodeType": "VariableDeclaration", + "scope": 8457, + "src": "31460:23:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8417, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "31460:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 8425, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8424, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8421, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8419, + "name": "baseLog", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8388, + "src": "31487:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 8420, + "name": "_expN", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8372, + "src": "31497:5:10", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "31487:15:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 8422, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "31486:17:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 8423, + "name": "_expD", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8374, + "src": "31506:5:10", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "31486:25:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "31460:51:10" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8428, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8426, + "name": "baseLogTimesExp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8418, + "src": "31519:15:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 8427, + "name": "OPT_EXP_MAX_VAL", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6255, + "src": "31537:15:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "31519:33:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 8454, + "nodeType": "Block", + "src": "31621:164:10", + "statements": [ + { + "assignments": [ + 8437 + ], + "declarations": [ + { + "constant": false, + "id": 8437, + "name": "precision", + "nodeType": "VariableDeclaration", + "scope": 8457, + "src": "31626:15:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 8436, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "31626:5:10", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 8441, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8439, + "name": "baseLogTimesExp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8418, + "src": "31670:15:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 8438, + "name": "findPositionInMaxExpArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8671, + "src": "31644:25:10", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint8_$", + "typeString": "function (uint256) view returns (uint8)" + } + }, + "id": 8440, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "31644:42:10", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "31626:60:10" + }, + { + "expression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8448, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8443, + "name": "baseLogTimesExp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8418, + "src": "31710:15:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 8446, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8444, + "name": "MAX_PRECISION", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6234, + "src": "31730:13:10", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 8445, + "name": "precision", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8437, + "src": "31746:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "31730:25:10", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "id": 8447, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "31729:27:10", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "31710:46:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 8449, + "name": "precision", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8437, + "src": "31758:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + ], + "id": 8442, + "name": "generalExp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9180, + "src": "31699:10:10", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint8_$returns$_t_uint256_$", + "typeString": "function (uint256,uint8) pure returns (uint256)" + } + }, + "id": 8450, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "31699:69:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 8451, + "name": "precision", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8437, + "src": "31770:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "id": 8452, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "31698:82:10", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint8_$", + "typeString": "tuple(uint256,uint8)" + } + }, + "functionReturnParameters": 8380, + "id": 8453, + "nodeType": "Return", + "src": "31691:89:10" + } + ] + }, + "id": 8455, + "nodeType": "IfStatement", + "src": "31515:270:10", + "trueBody": { + "id": 8435, + "nodeType": "Block", + "src": "31554:61:10", + "statements": [ + { + "expression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8430, + "name": "baseLogTimesExp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8418, + "src": "31578:15:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 8429, + "name": "optimalExp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9958, + "src": "31567:10:10", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 8431, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "31567:27:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 8432, + "name": "MAX_PRECISION", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6234, + "src": "31596:13:10", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "id": 8433, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "31566:44:10", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint8_$", + "typeString": "tuple(uint256,uint8)" + } + }, + "functionReturnParameters": 8380, + "id": 8434, + "nodeType": "Return", + "src": "31559:51:10" + } + ] + } + } + ] + }, + "documentation": "@dev General Description:\n Determine a value of precision.\n Calculate an integer approximation of (_baseN / _baseD) ^ (_expN / _expD) * 2 ^ precision.\n Return the result along with the precision used.\n\t * Detailed Description:\n Instead of calculating \"base ^ exp\", we calculate \"e ^ (log(base) * exp)\".\n The value of \"log(base)\" is represented with an integer slightly smaller than \"log(base) * 2 ^ precision\".\n The larger \"precision\" is, the more accurately this value represents the real value.\n However, the larger \"precision\" is, the more bits are required in order to store this value.\n And the exponentiation function, which takes \"x\" and calculates \"e ^ x\", is limited to a maximum exponent (maximum value of \"x\").\n This maximum exponent depends on the \"precision\" used, and it is given by \"maxExpArray[precision] >> (MAX_PRECISION - precision)\".\n Hence we need to determine the highest precision which can be used for the given input, before calling the exponentiation function.\n This allows us to compute \"base ^ exp\" with maximum accuracy and without exceeding 256 bits in any of the intermediate computations.\n This functions assumes that \"_expN < 2 ^ 256 / log(MAX_NUM - 1)\", otherwise the multiplication should be replaced with a \"safeMul\".\n Since we rely on unsigned-integer arithmetic and \"base < 1\" ==> \"log(base) < 0\", this function does not support \"_baseN < _baseD\".", + "id": 8457, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "power", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8375, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8368, + "name": "_baseN", + "nodeType": "VariableDeclaration", + "scope": 8457, + "src": "31144:14:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8367, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "31144:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 8370, + "name": "_baseD", + "nodeType": "VariableDeclaration", + "scope": 8457, + "src": "31162:14:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8369, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "31162:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 8372, + "name": "_expN", + "nodeType": "VariableDeclaration", + "scope": 8457, + "src": "31180:12:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 8371, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "31180:6:10", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 8374, + "name": "_expD", + "nodeType": "VariableDeclaration", + "scope": 8457, + "src": "31196:12:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 8373, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "31196:6:10", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "31140:71:10" + }, + "payable": false, + "returnParameters": { + "id": 8380, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8377, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 8457, + "src": "31235:7:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8376, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "31235:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 8379, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 8457, + "src": "31244:5:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 8378, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "31244:5:10", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "31234:16:10" + }, + "scope": 11642, + "src": "31126:662:10", + "stateMutability": "view", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 8542, + "nodeType": "Block", + "src": "32006:578:10", + "statements": [ + { + "assignments": [ + 8465 + ], + "declarations": [ + { + "constant": false, + "id": 8465, + "name": "res", + "nodeType": "VariableDeclaration", + "scope": 8543, + "src": "32010:11:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8464, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "32010:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 8467, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 8466, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "32024:1:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "32010:15:10" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8470, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8468, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8459, + "src": "32119:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 8469, + "name": "FIXED_2", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6240, + "src": "32124:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "32119:12:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 8490, + "nodeType": "IfStatement", + "src": "32115:119:10", + "trueBody": { + "id": 8489, + "nodeType": "Block", + "src": "32133:101:10", + "statements": [ + { + "assignments": [ + 8472 + ], + "declarations": [ + { + "constant": false, + "id": 8472, + "name": "count", + "nodeType": "VariableDeclaration", + "scope": 8543, + "src": "32138:11:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 8471, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "32138:5:10", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 8478, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8476, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8474, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8459, + "src": "32162:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 8475, + "name": "FIXED_1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6237, + "src": "32166:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "32162:11:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 8473, + "name": "floorLog2", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8605, + "src": "32152:9:10", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint8_$", + "typeString": "function (uint256) pure returns (uint8)" + } + }, + "id": 8477, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32152:22:10", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "32138:36:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 8481, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 8479, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8459, + "src": "32179:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": ">>=", + "rightHandSide": { + "argumentTypes": null, + "id": 8480, + "name": "count", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8472, + "src": "32185:5:10", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "32179:11:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8482, + "nodeType": "ExpressionStatement", + "src": "32179:11:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 8487, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 8483, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8465, + "src": "32208:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8486, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8484, + "name": "count", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8472, + "src": "32214:5:10", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 8485, + "name": "FIXED_1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6237, + "src": "32222:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "32214:15:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "32208:21:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8488, + "nodeType": "ExpressionStatement", + "src": "32208:21:10" + } + ] + } + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8493, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8491, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8459, + "src": "32327:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "id": 8492, + "name": "FIXED_1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6237, + "src": "32331:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "32327:11:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 8534, + "nodeType": "IfStatement", + "src": "32323:207:10", + "trueBody": { + "id": 8533, + "nodeType": "Block", + "src": "32340:190:10", + "statements": [ + { + "body": { + "id": 8531, + "nodeType": "Block", + "src": "32387:139:10", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 8511, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 8504, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8459, + "src": "32393:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8510, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8507, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8505, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8459, + "src": "32398:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 8506, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8459, + "src": "32402:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "32398:5:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 8508, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "32397:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 8509, + "name": "FIXED_1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6237, + "src": "32407:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "32397:17:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "32393:21:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8512, + "nodeType": "ExpressionStatement", + "src": "32393:21:10" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8515, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8513, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8459, + "src": "32441:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 8514, + "name": "FIXED_2", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6240, + "src": "32446:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "32441:12:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 8530, + "nodeType": "IfStatement", + "src": "32437:84:10", + "trueBody": { + "id": 8529, + "nodeType": "Block", + "src": "32455:66:10", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 8518, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 8516, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8459, + "src": "32462:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": ">>=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "31", + "id": 8517, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "32468:1:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "32462:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8519, + "nodeType": "ExpressionStatement", + "src": "32462:7:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 8527, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 8520, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8465, + "src": "32493:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8526, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8521, + "name": "ONE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6225, + "src": "32500:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<<", + "rightExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 8524, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8522, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8495, + "src": "32508:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 8523, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "32512:1:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "32508:5:10", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "id": 8525, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "32507:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "32500:14:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "32493:21:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8528, + "nodeType": "ExpressionStatement", + "src": "32493:21:10" + } + ] + } + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 8500, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8498, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8495, + "src": "32375:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 8499, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "32379:1:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "32375:5:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 8532, + "initializationExpression": { + "assignments": [ + 8495 + ], + "declarations": [ + { + "constant": false, + "id": 8495, + "name": "i", + "nodeType": "VariableDeclaration", + "scope": 8543, + "src": "32350:7:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 8494, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "32350:5:10", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 8497, + "initialValue": { + "argumentTypes": null, + "id": 8496, + "name": "MAX_PRECISION", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6234, + "src": "32360:13:10", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "32350:23:10" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 8502, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "--", + "prefix": true, + "src": "32382:3:10", + "subExpression": { + "argumentTypes": null, + "id": 8501, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8495, + "src": "32384:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "id": 8503, + "nodeType": "ExpressionStatement", + "src": "32382:3:10" + }, + "nodeType": "ForStatement", + "src": "32345:181:10" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8540, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8537, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8535, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8465, + "src": "32542:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 8536, + "name": "LN2_NUMERATOR", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6246, + "src": "32548:13:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "32542:19:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 8538, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "32541:21:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 8539, + "name": "LN2_DENOMINATOR", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6249, + "src": "32565:15:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "32541:39:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 8463, + "id": 8541, + "nodeType": "Return", + "src": "32534:46:10" + } + ] + }, + "documentation": "@dev computes log(x / FIXED_1) * FIXED_1.\nThis functions assumes that \"x >= FIXED_1\", because the output would be negative otherwise.", + "id": 8543, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "generalLog", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8460, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8459, + "name": "x", + "nodeType": "VariableDeclaration", + "scope": 8543, + "src": "31963:9:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8458, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "31963:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "31962:11:10" + }, + "payable": false, + "returnParameters": { + "id": 8463, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8462, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 8543, + "src": "31997:7:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8461, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "31997:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "31996:9:10" + }, + "scope": 11642, + "src": "31943:641:10", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 8604, + "nodeType": "Block", + "src": "32756:287:10", + "statements": [ + { + "assignments": [ + 8551 + ], + "declarations": [ + { + "constant": false, + "id": 8551, + "name": "res", + "nodeType": "VariableDeclaration", + "scope": 8605, + "src": "32760:9:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 8550, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "32760:5:10", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 8553, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 8552, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "32772:1:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "32760:13:10" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8556, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8554, + "name": "_n", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8545, + "src": "32782:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "hexValue": "323536", + "id": 8555, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "32787:3:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_256_by_1", + "typeString": "int_const 256" + }, + "value": "256" + }, + "src": "32782:8:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 8600, + "nodeType": "Block", + "src": "32883:142:10", + "statements": [ + { + "body": { + "id": 8598, + "nodeType": "Block", + "src": "32951:70:10", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8587, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8582, + "name": "_n", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8545, + "src": "32961:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8585, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8583, + "name": "ONE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6225, + "src": "32968:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<<", + "rightExpression": { + "argumentTypes": null, + "id": 8584, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8572, + "src": "32975:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "32968:8:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 8586, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "32967:10:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "32961:16:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 8597, + "nodeType": "IfStatement", + "src": "32957:59:10", + "trueBody": { + "id": 8596, + "nodeType": "Block", + "src": "32979:37:10", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 8590, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 8588, + "name": "_n", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8545, + "src": "32986:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": ">>=", + "rightHandSide": { + "argumentTypes": null, + "id": 8589, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8572, + "src": "32993:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "32986:8:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8591, + "nodeType": "ExpressionStatement", + "src": "32986:8:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 8594, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 8592, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8551, + "src": "33001:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "Assignment", + "operator": "|=", + "rightHandSide": { + "argumentTypes": null, + "id": 8593, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8572, + "src": "33008:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "33001:8:10", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "id": 8595, + "nodeType": "ExpressionStatement", + "src": "33001:8:10" + } + ] + } + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 8577, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8575, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8572, + "src": "32935:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 8576, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "32939:1:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "32935:5:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 8599, + "initializationExpression": { + "assignments": [ + 8572 + ], + "declarations": [ + { + "constant": false, + "id": 8572, + "name": "s", + "nodeType": "VariableDeclaration", + "scope": 8605, + "src": "32920:7:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 8571, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "32920:5:10", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 8574, + "initialValue": { + "argumentTypes": null, + "hexValue": "313238", + "id": 8573, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "32930:3:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_128_by_1", + "typeString": "int_const 128" + }, + "value": "128" + }, + "nodeType": "VariableDeclarationStatement", + "src": "32920:13:10" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 8580, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 8578, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8572, + "src": "32942:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "Assignment", + "operator": ">>=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "31", + "id": 8579, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "32948:1:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "32942:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "id": 8581, + "nodeType": "ExpressionStatement", + "src": "32942:7:10" + }, + "nodeType": "ForStatement", + "src": "32915:106:10" + } + ] + }, + "id": 8601, + "nodeType": "IfStatement", + "src": "32778:247:10", + "trueBody": { + "id": 8570, + "nodeType": "Block", + "src": "32792:85:10", + "statements": [ + { + "body": { + "id": 8568, + "nodeType": "Block", + "src": "32839:34:10", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 8562, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 8560, + "name": "_n", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8545, + "src": "32845:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": ">>=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "31", + "id": 8561, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "32852:1:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "32845:8:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8563, + "nodeType": "ExpressionStatement", + "src": "32845:8:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 8566, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 8564, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8551, + "src": "32859:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "31", + "id": 8565, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "32866:1:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "32859:8:10", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "id": 8567, + "nodeType": "ExpressionStatement", + "src": "32859:8:10" + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8559, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8557, + "name": "_n", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8545, + "src": "32831:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 8558, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "32836:1:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "32831:6:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 8569, + "nodeType": "WhileStatement", + "src": "32824:49:10" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "id": 8602, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8551, + "src": "33036:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "functionReturnParameters": 8549, + "id": 8603, + "nodeType": "Return", + "src": "33029:10:10" + } + ] + }, + "documentation": "@dev computes the largest integer smaller than or equal to the binary logarithm of the input.", + "id": 8605, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "floorLog2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8546, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8545, + "name": "_n", + "nodeType": "VariableDeclaration", + "scope": 8605, + "src": "32714:10:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8544, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "32714:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "32713:12:10" + }, + "payable": false, + "returnParameters": { + "id": 8549, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8548, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 8605, + "src": "32749:5:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 8547, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "32749:5:10", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "32748:7:10" + }, + "scope": 11642, + "src": "32695:348:10", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 8670, + "nodeType": "Block", + "src": "33466:278:10", + "statements": [ + { + "assignments": [ + 8613 + ], + "declarations": [ + { + "constant": false, + "id": 8613, + "name": "lo", + "nodeType": "VariableDeclaration", + "scope": 8671, + "src": "33470:8:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 8612, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "33470:5:10", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 8615, + "initialValue": { + "argumentTypes": null, + "id": 8614, + "name": "MIN_PRECISION", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6231, + "src": "33481:13:10", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "33470:24:10" + }, + { + "assignments": [ + 8617 + ], + "declarations": [ + { + "constant": false, + "id": 8617, + "name": "hi", + "nodeType": "VariableDeclaration", + "scope": 8671, + "src": "33498:8:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 8616, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "33498:5:10", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 8619, + "initialValue": { + "argumentTypes": null, + "id": 8618, + "name": "MAX_PRECISION", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6234, + "src": "33509:13:10", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "33498:24:10" + }, + { + "body": { + "id": 8648, + "nodeType": "Block", + "src": "33547:94:10", + "statements": [ + { + "assignments": [ + 8626 + ], + "declarations": [ + { + "constant": false, + "id": 8626, + "name": "mid", + "nodeType": "VariableDeclaration", + "scope": 8671, + "src": "33552:9:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 8625, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "33552:5:10", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 8633, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 8632, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 8629, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8627, + "name": "lo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8613, + "src": "33565:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "id": 8628, + "name": "hi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8617, + "src": "33570:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "33565:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "id": 8630, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "33564:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 8631, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "33576:1:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "33564:13:10", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "33552:25:10" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8638, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 8634, + "name": "maxExpArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6274, + "src": "33586:11:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 8636, + "indexExpression": { + "argumentTypes": null, + "id": 8635, + "name": "mid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8626, + "src": "33598:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "33586:16:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 8637, + "name": "_x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8607, + "src": "33606:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "33586:22:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "expression": { + "argumentTypes": null, + "id": 8645, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 8643, + "name": "hi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8617, + "src": "33628:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 8644, + "name": "mid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8626, + "src": "33633:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "33628:8:10", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "id": 8646, + "nodeType": "ExpressionStatement", + "src": "33628:8:10" + }, + "id": 8647, + "nodeType": "IfStatement", + "src": "33582:54:10", + "trueBody": { + "expression": { + "argumentTypes": null, + "id": 8641, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 8639, + "name": "lo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8613, + "src": "33610:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 8640, + "name": "mid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8626, + "src": "33615:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "33610:8:10", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "id": 8642, + "nodeType": "ExpressionStatement", + "src": "33610:8:10" + } + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 8624, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 8622, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8620, + "name": "lo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8613, + "src": "33534:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 8621, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "33539:1:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "33534:6:10", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 8623, + "name": "hi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8617, + "src": "33543:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "33534:11:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 8649, + "nodeType": "WhileStatement", + "src": "33527:114:10" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8654, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 8650, + "name": "maxExpArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6274, + "src": "33649:11:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 8652, + "indexExpression": { + "argumentTypes": null, + "id": 8651, + "name": "hi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8617, + "src": "33661:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "33649:15:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 8653, + "name": "_x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8607, + "src": "33668:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "33649:21:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 8657, + "nodeType": "IfStatement", + "src": "33645:36:10", + "trueBody": { + "expression": { + "argumentTypes": null, + "id": 8655, + "name": "hi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8617, + "src": "33679:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "functionReturnParameters": 8611, + "id": 8656, + "nodeType": "Return", + "src": "33672:9:10" + } + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8662, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 8658, + "name": "maxExpArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6274, + "src": "33689:11:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 8660, + "indexExpression": { + "argumentTypes": null, + "id": 8659, + "name": "lo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8613, + "src": "33701:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "33689:15:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 8661, + "name": "_x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8607, + "src": "33708:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "33689:21:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 8665, + "nodeType": "IfStatement", + "src": "33685:36:10", + "trueBody": { + "expression": { + "argumentTypes": null, + "id": 8663, + "name": "lo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8613, + "src": "33719:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "functionReturnParameters": 8611, + "id": 8664, + "nodeType": "Return", + "src": "33712:9:10" + } + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 8667, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "33734:5:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 8666, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 22341, + 22342 + ], + "referencedDeclaration": 22341, + "src": "33726:7:10", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 8668, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "33726:14:10", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8669, + "nodeType": "ExpressionStatement", + "src": "33726:14:10" + } + ] + }, + "documentation": "@dev the global \"maxExpArray\" is sorted in descending order, and therefore the following statements are equivalent:\n- This function finds the position of [the smallest value in \"maxExpArray\" larger than or equal to \"x\"]\n- This function finds the highest position of [a value in \"maxExpArray\" larger than or equal to \"x\"]", + "id": 8671, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "findPositionInMaxExpArray", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8608, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8607, + "name": "_x", + "nodeType": "VariableDeclaration", + "scope": 8671, + "src": "33424:10:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8606, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "33424:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "33423:12:10" + }, + "payable": false, + "returnParameters": { + "id": 8611, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8610, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 8671, + "src": "33459:5:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 8609, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "33459:5:10", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "33458:7:10" + }, + "scope": 11642, + "src": "33389:355:10", + "stateMutability": "view", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 9179, + "nodeType": "Block", + "src": "34361:3595:10", + "statements": [ + { + "assignments": [ + 8681 + ], + "declarations": [ + { + "constant": false, + "id": 8681, + "name": "xi", + "nodeType": "VariableDeclaration", + "scope": 9180, + "src": "34365:10:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8680, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "34365:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 8683, + "initialValue": { + "argumentTypes": null, + "id": 8682, + "name": "_x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8673, + "src": "34378:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "34365:15:10" + }, + { + "assignments": [ + 8685 + ], + "declarations": [ + { + "constant": false, + "id": 8685, + "name": "res", + "nodeType": "VariableDeclaration", + "scope": 9180, + "src": "34384:11:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8684, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "34384:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 8687, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 8686, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "34398:1:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "34384:15:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 8695, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 8688, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8681, + "src": "34404:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8694, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8691, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8689, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8681, + "src": "34410:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 8690, + "name": "_x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8673, + "src": "34415:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "34410:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 8692, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "34409:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "argumentTypes": null, + "id": 8693, + "name": "_precision", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8675, + "src": "34422:10:10", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "34409:23:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "34404:28:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8696, + "nodeType": "ExpressionStatement", + "src": "34404:28:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 8701, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 8697, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8685, + "src": "34436:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8700, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8698, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8681, + "src": "34443:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "hexValue": "307833343432633465363037346138326631373937663732616330303030303030", + "id": 8699, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "34448:33:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_4341658809405943247759097200640000000_by_1", + "typeString": "int_const 4341...(29 digits omitted)...0000" + }, + "value": "0x3442c4e6074a82f1797f72ac0000000" + }, + "src": "34443:38:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "34436:45:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8702, + "nodeType": "ExpressionStatement", + "src": "34436:45:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 8710, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 8703, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8681, + "src": "34511:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8709, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8706, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8704, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8681, + "src": "34517:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 8705, + "name": "_x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8673, + "src": "34522:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "34517:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 8707, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "34516:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "argumentTypes": null, + "id": 8708, + "name": "_precision", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8675, + "src": "34529:10:10", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "34516:23:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "34511:28:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8711, + "nodeType": "ExpressionStatement", + "src": "34511:28:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 8716, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 8712, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8685, + "src": "34543:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8715, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8713, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8681, + "src": "34550:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "hexValue": "307831313662393666373537633338306662323837666430653430303030303030", + "id": 8714, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "34555:33:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1447219603135314415919699066880000000_by_1", + "typeString": "int_const 1447...(29 digits omitted)...0000" + }, + "value": "0x116b96f757c380fb287fd0e40000000" + }, + "src": "34550:38:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "34543:45:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8717, + "nodeType": "ExpressionStatement", + "src": "34543:45:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 8725, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 8718, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8681, + "src": "34618:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8724, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8721, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8719, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8681, + "src": "34624:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 8720, + "name": "_x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8673, + "src": "34629:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "34624:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 8722, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "34623:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "argumentTypes": null, + "id": 8723, + "name": "_precision", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8675, + "src": "34636:10:10", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "34623:23:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "34618:28:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8726, + "nodeType": "ExpressionStatement", + "src": "34618:28:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 8731, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 8727, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8685, + "src": "34650:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8730, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8728, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8681, + "src": "34657:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "hexValue": "307830343561653562646435663065303365636131666634333930303030303030", + "id": 8729, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "34662:33:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_361804900783828603979924766720000000_by_1", + "typeString": "int_const 3618...(28 digits omitted)...0000" + }, + "value": "0x045ae5bdd5f0e03eca1ff4390000000" + }, + "src": "34657:38:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "34650:45:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8732, + "nodeType": "ExpressionStatement", + "src": "34650:45:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 8740, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 8733, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8681, + "src": "34725:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8739, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8736, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8734, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8681, + "src": "34731:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 8735, + "name": "_x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8673, + "src": "34736:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "34731:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 8737, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "34730:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "argumentTypes": null, + "id": 8738, + "name": "_precision", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8675, + "src": "34743:10:10", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "34730:23:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "34725:28:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8741, + "nodeType": "ExpressionStatement", + "src": "34725:28:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 8746, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 8742, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8685, + "src": "34757:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8745, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8743, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8681, + "src": "34764:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "hexValue": "307830306465666162663931333032636439356239666664613530303030303030", + "id": 8744, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "34769:33:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_72360980156765720795984953344000000_by_1", + "typeString": "int_const 7236...(27 digits omitted)...0000" + }, + "value": "0x00defabf91302cd95b9ffda50000000" + }, + "src": "34764:38:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "34757:45:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8747, + "nodeType": "ExpressionStatement", + "src": "34757:45:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 8755, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 8748, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8681, + "src": "34832:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8754, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8751, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8749, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8681, + "src": "34838:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 8750, + "name": "_x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8673, + "src": "34843:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "34838:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 8752, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "34837:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "argumentTypes": null, + "id": 8753, + "name": "_precision", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8675, + "src": "34850:10:10", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "34837:23:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "34832:28:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8756, + "nodeType": "ExpressionStatement", + "src": "34832:28:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 8761, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 8757, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8685, + "src": "34864:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8760, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8758, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8681, + "src": "34871:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "hexValue": "307830303235323963613938333262323234333965666666396238303030303030", + "id": 8759, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "34876:33:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_12060163359460953465997492224000000_by_1", + "typeString": "int_const 1206...(27 digits omitted)...0000" + }, + "value": "0x002529ca9832b22439efff9b8000000" + }, + "src": "34871:38:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "34864:45:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8762, + "nodeType": "ExpressionStatement", + "src": "34864:45:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 8770, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 8763, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8681, + "src": "34939:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8769, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8766, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8764, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8681, + "src": "34945:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 8765, + "name": "_x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8673, + "src": "34950:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "34945:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 8767, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "34944:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "argumentTypes": null, + "id": 8768, + "name": "_precision", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8675, + "src": "34957:10:10", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "34944:23:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "34939:28:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8771, + "nodeType": "ExpressionStatement", + "src": "34939:28:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 8776, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 8772, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8685, + "src": "34971:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8775, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8773, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8681, + "src": "34978:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "hexValue": "307830303035346631636631326264303465353136623664613838303030303030", + "id": 8774, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "34983:33:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1722880479922993352285356032000000_by_1", + "typeString": "int_const 1722...(26 digits omitted)...0000" + }, + "value": "0x00054f1cf12bd04e516b6da88000000" + }, + "src": "34978:38:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "34971:45:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8777, + "nodeType": "ExpressionStatement", + "src": "34971:45:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 8785, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 8778, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8681, + "src": "35046:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8784, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8781, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8779, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8681, + "src": "35052:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 8780, + "name": "_x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8673, + "src": "35057:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "35052:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 8782, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "35051:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "argumentTypes": null, + "id": 8783, + "name": "_precision", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8675, + "src": "35064:10:10", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "35051:23:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "35046:28:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8786, + "nodeType": "ExpressionStatement", + "src": "35046:28:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 8791, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 8787, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8685, + "src": "35078:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8790, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8788, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8681, + "src": "35085:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "hexValue": "307830303030613965333965323537613039636132643664623531303030303030", + "id": 8789, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "35090:33:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_215360059990374169035669504000000_by_1", + "typeString": "int_const 2153...(25 digits omitted)...0000" + }, + "value": "0x0000a9e39e257a09ca2d6db51000000" + }, + "src": "35085:38:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "35078:45:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8792, + "nodeType": "ExpressionStatement", + "src": "35078:45:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 8800, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 8793, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8681, + "src": "35153:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8799, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8796, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8794, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8681, + "src": "35159:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 8795, + "name": "_x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8673, + "src": "35164:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "35159:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 8797, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "35158:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "argumentTypes": null, + "id": 8798, + "name": "_precision", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8675, + "src": "35171:10:10", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "35158:23:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "35153:28:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8801, + "nodeType": "ExpressionStatement", + "src": "35153:28:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 8806, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 8802, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8685, + "src": "35185:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8805, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8803, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8681, + "src": "35192:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "hexValue": "307830303030313265303636653762383339666130353063333039303030303030", + "id": 8804, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "35197:33:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_23928895554486018781741056000000_by_1", + "typeString": "int_const 23928895554486018781741056000000" + }, + "value": "0x000012e066e7b839fa050c309000000" + }, + "src": "35192:38:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "35185:45:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8807, + "nodeType": "ExpressionStatement", + "src": "35185:45:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 8815, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 8808, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8681, + "src": "35260:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8814, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8811, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8809, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8681, + "src": "35266:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 8810, + "name": "_x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8673, + "src": "35271:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "35266:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 8812, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "35265:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "argumentTypes": null, + "id": 8813, + "name": "_precision", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8675, + "src": "35278:10:10", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "35265:23:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "35260:28:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8816, + "nodeType": "ExpressionStatement", + "src": "35260:28:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 8821, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 8817, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8685, + "src": "35292:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8820, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8818, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8681, + "src": "35299:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "hexValue": "307830303030303165333364376439323663333239613161643161383030303030", + "id": 8819, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "35304:33:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2392889555448601878174105600000_by_1", + "typeString": "int_const 2392889555448601878174105600000" + }, + "value": "0x000001e33d7d926c329a1ad1a800000" + }, + "src": "35299:38:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "35292:45:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8822, + "nodeType": "ExpressionStatement", + "src": "35292:45:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 8830, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 8823, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8681, + "src": "35367:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8829, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8826, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8824, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8681, + "src": "35373:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 8825, + "name": "_x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8673, + "src": "35378:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "35373:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 8827, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "35372:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "argumentTypes": null, + "id": 8828, + "name": "_precision", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8675, + "src": "35385:10:10", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "35372:23:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "35367:28:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8831, + "nodeType": "ExpressionStatement", + "src": "35367:28:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 8836, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 8832, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8685, + "src": "35399:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8835, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8833, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8681, + "src": "35406:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "hexValue": "307830303030303032626565353133626462346136623139623566383030303030", + "id": 8834, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "35411:33:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_217535414131691079834009600000_by_1", + "typeString": "int_const 217535414131691079834009600000" + }, + "value": "0x0000002bee513bdb4a6b19b5f800000" + }, + "src": "35406:38:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "35399:45:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8837, + "nodeType": "ExpressionStatement", + "src": "35399:45:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 8845, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 8838, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8681, + "src": "35474:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8844, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8841, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8839, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8681, + "src": "35480:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 8840, + "name": "_x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8673, + "src": "35485:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "35480:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 8842, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "35479:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "argumentTypes": null, + "id": 8843, + "name": "_precision", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8675, + "src": "35492:10:10", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "35479:23:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "35474:28:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8846, + "nodeType": "ExpressionStatement", + "src": "35474:28:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 8851, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 8847, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8685, + "src": "35506:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8850, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8848, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8681, + "src": "35513:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "hexValue": "307830303030303030336139333136666137396238386563636632613030303030", + "id": 8849, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "35518:33:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_18127951177640923319500800000_by_1", + "typeString": "int_const 18127951177640923319500800000" + }, + "value": "0x00000003a9316fa79b88eccf2a00000" + }, + "src": "35513:38:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "35506:45:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8852, + "nodeType": "ExpressionStatement", + "src": "35506:45:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 8860, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 8853, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8681, + "src": "35581:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8859, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8856, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8854, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8681, + "src": "35587:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 8855, + "name": "_x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8673, + "src": "35592:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "35587:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 8857, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "35586:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "argumentTypes": null, + "id": 8858, + "name": "_precision", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8675, + "src": "35599:10:10", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "35586:23:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "35581:28:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8861, + "nodeType": "ExpressionStatement", + "src": "35581:28:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 8866, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 8862, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8685, + "src": "35613:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8865, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8863, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8681, + "src": "35620:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "hexValue": "307830303030303030303438313737656265316661383132333735323030303030", + "id": 8864, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "35625:33:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1394457782895455639961600000_by_1", + "typeString": "int_const 1394457782895455639961600000" + }, + "value": "0x0000000048177ebe1fa812375200000" + }, + "src": "35620:38:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "35613:45:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8867, + "nodeType": "ExpressionStatement", + "src": "35613:45:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 8875, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 8868, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8681, + "src": "35688:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8874, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8871, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8869, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8681, + "src": "35694:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 8870, + "name": "_x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8673, + "src": "35699:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "35694:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 8872, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "35693:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "argumentTypes": null, + "id": 8873, + "name": "_precision", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8675, + "src": "35706:10:10", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "35693:23:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "35688:28:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8876, + "nodeType": "ExpressionStatement", + "src": "35688:28:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 8881, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 8877, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8685, + "src": "35720:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8880, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8878, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8681, + "src": "35727:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "hexValue": "307830303030303030303035323633666539303234326463626163663030303030", + "id": 8879, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "35732:33:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_99604127349675402854400000_by_1", + "typeString": "int_const 99604127349675402854400000" + }, + "value": "0x0000000005263fe90242dcbacf00000" + }, + "src": "35727:38:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "35720:45:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8882, + "nodeType": "ExpressionStatement", + "src": "35720:45:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 8890, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 8883, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8681, + "src": "35795:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8889, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8886, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8884, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8681, + "src": "35801:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 8885, + "name": "_x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8673, + "src": "35806:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "35801:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 8887, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "35800:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "argumentTypes": null, + "id": 8888, + "name": "_precision", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8675, + "src": "35813:10:10", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "35800:23:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "35795:28:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8891, + "nodeType": "ExpressionStatement", + "src": "35795:28:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 8896, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 8892, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8685, + "src": "35827:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8895, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8893, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8681, + "src": "35834:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "hexValue": "307830303030303030303030353765323230393963303330643934313030303030", + "id": 8894, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "35839:33:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_6640275156645026856960000_by_1", + "typeString": "int_const 6640275156645026856960000" + }, + "value": "0x000000000057e22099c030d94100000" + }, + "src": "35834:38:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "35827:45:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8897, + "nodeType": "ExpressionStatement", + "src": "35827:45:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 8905, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 8898, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8681, + "src": "35902:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8904, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8901, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8899, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8681, + "src": "35908:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 8900, + "name": "_x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8673, + "src": "35913:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "35908:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 8902, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "35907:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "argumentTypes": null, + "id": 8903, + "name": "_precision", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8675, + "src": "35920:10:10", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "35907:23:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "35902:28:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8906, + "nodeType": "ExpressionStatement", + "src": "35902:28:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 8911, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 8907, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8685, + "src": "35934:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8910, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8908, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8681, + "src": "35941:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "hexValue": "307830303030303030303030303537653232303939633033306439343130303030", + "id": 8909, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "35946:33:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_415017197290314178560000_by_1", + "typeString": "int_const 415017197290314178560000" + }, + "value": "0x0000000000057e22099c030d9410000" + }, + "src": "35941:38:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "35934:45:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8912, + "nodeType": "ExpressionStatement", + "src": "35934:45:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 8920, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 8913, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8681, + "src": "36009:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8919, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8916, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8914, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8681, + "src": "36015:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 8915, + "name": "_x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8673, + "src": "36020:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "36015:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 8917, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "36014:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "argumentTypes": null, + "id": 8918, + "name": "_precision", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8675, + "src": "36027:10:10", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "36014:23:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "36009:28:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8921, + "nodeType": "ExpressionStatement", + "src": "36009:28:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 8926, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 8922, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8685, + "src": "36041:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8925, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8923, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8681, + "src": "36048:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "hexValue": "307830303030303030303030303035326236623534353639393736333130303030", + "id": 8924, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "36053:33:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_24412776311194951680000_by_1", + "typeString": "int_const 24412776311194951680000" + }, + "value": "0x00000000000052b6b54569976310000" + }, + "src": "36048:38:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "36041:45:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8927, + "nodeType": "ExpressionStatement", + "src": "36041:45:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 8935, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 8928, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8681, + "src": "36116:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8934, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8931, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8929, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8681, + "src": "36122:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 8930, + "name": "_x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8673, + "src": "36127:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "36122:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 8932, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "36121:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "argumentTypes": null, + "id": 8933, + "name": "_precision", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8675, + "src": "36134:10:10", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "36121:23:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "36116:28:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8936, + "nodeType": "ExpressionStatement", + "src": "36116:28:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 8941, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 8937, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8685, + "src": "36148:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8940, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8938, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8681, + "src": "36155:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "hexValue": "307830303030303030303030303030343938356636373639366266373438303030", + "id": 8939, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "36160:33:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1356265350621941760000_by_1", + "typeString": "int_const 1356265350621941760000" + }, + "value": "0x00000000000004985f67696bf748000" + }, + "src": "36155:38:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "36148:45:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8942, + "nodeType": "ExpressionStatement", + "src": "36148:45:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 8950, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 8943, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8681, + "src": "36223:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8949, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8946, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8944, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8681, + "src": "36229:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 8945, + "name": "_x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8673, + "src": "36234:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "36229:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 8947, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "36228:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "argumentTypes": null, + "id": 8948, + "name": "_precision", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8675, + "src": "36241:10:10", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "36228:23:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "36223:28:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8951, + "nodeType": "ExpressionStatement", + "src": "36223:28:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 8956, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 8952, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8685, + "src": "36255:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8955, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8953, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8681, + "src": "36262:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "hexValue": "307830303030303030303030303030303364656131326561393965343938303030", + "id": 8954, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "36267:33:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_71382386874839040000_by_1", + "typeString": "int_const 71382386874839040000" + }, + "value": "0x000000000000003dea12ea99e498000" + }, + "src": "36262:38:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "36255:45:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8957, + "nodeType": "ExpressionStatement", + "src": "36255:45:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 8965, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 8958, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8681, + "src": "36330:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8964, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8961, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8959, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8681, + "src": "36336:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 8960, + "name": "_x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8673, + "src": "36341:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "36336:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 8962, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "36335:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "argumentTypes": null, + "id": 8963, + "name": "_precision", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8675, + "src": "36348:10:10", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "36335:23:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "36330:28:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8966, + "nodeType": "ExpressionStatement", + "src": "36330:28:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 8971, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 8967, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8685, + "src": "36362:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8970, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8968, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8681, + "src": "36369:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "hexValue": "307830303030303030303030303030303033313838306632323134623665303030", + "id": 8969, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "36374:33:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_3569119343741952000_by_1", + "typeString": "int_const 3569119343741952000" + }, + "value": "0x00000000000000031880f2214b6e000" + }, + "src": "36369:38:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "36362:45:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8972, + "nodeType": "ExpressionStatement", + "src": "36362:45:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 8980, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 8973, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8681, + "src": "36437:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8979, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8976, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8974, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8681, + "src": "36443:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 8975, + "name": "_x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8673, + "src": "36448:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "36443:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 8977, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "36442:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "argumentTypes": null, + "id": 8978, + "name": "_precision", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8675, + "src": "36455:10:10", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "36442:23:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "36437:28:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8981, + "nodeType": "ExpressionStatement", + "src": "36437:28:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 8986, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 8982, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8685, + "src": "36469:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8985, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8983, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8681, + "src": "36476:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "hexValue": "307830303030303030303030303030303030323562636666353665623336303030", + "id": 8984, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "36481:33:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_169958063987712000_by_1", + "typeString": "int_const 169958063987712000" + }, + "value": "0x000000000000000025bcff56eb36000" + }, + "src": "36476:38:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "36469:45:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8987, + "nodeType": "ExpressionStatement", + "src": "36469:45:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 8995, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 8988, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8681, + "src": "36544:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8994, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8991, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8989, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8681, + "src": "36550:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 8990, + "name": "_x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8673, + "src": "36555:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "36550:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 8992, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "36549:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "argumentTypes": null, + "id": 8993, + "name": "_precision", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8675, + "src": "36562:10:10", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "36549:23:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "36544:28:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8996, + "nodeType": "ExpressionStatement", + "src": "36544:28:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 9001, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 8997, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8685, + "src": "36576:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9000, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8998, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8681, + "src": "36583:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "hexValue": "307830303030303030303030303030303030303162373232653130616231303030", + "id": 8999, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "36588:33:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_7725366544896000_by_1", + "typeString": "int_const 7725366544896000" + }, + "value": "0x000000000000000001b722e10ab1000" + }, + "src": "36583:38:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "36576:45:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9002, + "nodeType": "ExpressionStatement", + "src": "36576:45:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 9010, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9003, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8681, + "src": "36651:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9009, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9006, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9004, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8681, + "src": "36657:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 9005, + "name": "_x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8673, + "src": "36662:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "36657:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 9007, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "36656:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "argumentTypes": null, + "id": 9008, + "name": "_precision", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8675, + "src": "36669:10:10", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "36656:23:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "36651:28:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9011, + "nodeType": "ExpressionStatement", + "src": "36651:28:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 9016, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9012, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8685, + "src": "36683:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9015, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9013, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8681, + "src": "36690:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "hexValue": "307830303030303030303030303030303030303031333137633730303737303030", + "id": 9014, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "36695:33:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_335885501952000_by_1", + "typeString": "int_const 335885501952000" + }, + "value": "0x0000000000000000001317c70077000" + }, + "src": "36690:38:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "36683:45:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9017, + "nodeType": "ExpressionStatement", + "src": "36683:45:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 9025, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9018, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8681, + "src": "36758:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9024, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9021, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9019, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8681, + "src": "36764:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 9020, + "name": "_x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8673, + "src": "36769:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "36764:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 9022, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "36763:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "argumentTypes": null, + "id": 9023, + "name": "_precision", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8675, + "src": "36776:10:10", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "36763:23:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "36758:28:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9026, + "nodeType": "ExpressionStatement", + "src": "36758:28:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 9031, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9027, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8685, + "src": "36790:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9030, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9028, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8681, + "src": "36797:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "hexValue": "307830303030303030303030303030303030303030306362613834616166613030", + "id": 9029, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "36802:33:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_13995229248000_by_1", + "typeString": "int_const 13995229248000" + }, + "value": "0x00000000000000000000cba84aafa00" + }, + "src": "36797:38:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "36790:45:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9032, + "nodeType": "ExpressionStatement", + "src": "36790:45:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 9040, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9033, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8681, + "src": "36865:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9039, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9036, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9034, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8681, + "src": "36871:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 9035, + "name": "_x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8673, + "src": "36876:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "36871:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 9037, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "36870:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "argumentTypes": null, + "id": 9038, + "name": "_precision", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8675, + "src": "36883:10:10", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "36870:23:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "36865:28:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9041, + "nodeType": "ExpressionStatement", + "src": "36865:28:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 9046, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9042, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8685, + "src": "36897:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9045, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9043, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8681, + "src": "36904:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "hexValue": "307830303030303030303030303030303030303030303038323537336130613030", + "id": 9044, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "36909:33:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_559809169920_by_1", + "typeString": "int_const 559809169920" + }, + "value": "0x00000000000000000000082573a0a00" + }, + "src": "36904:38:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "36897:45:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9047, + "nodeType": "ExpressionStatement", + "src": "36897:45:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 9055, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9048, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8681, + "src": "36972:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9054, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9051, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9049, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8681, + "src": "36978:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 9050, + "name": "_x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8673, + "src": "36983:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "36978:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 9052, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "36977:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "argumentTypes": null, + "id": 9053, + "name": "_precision", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8675, + "src": "36990:10:10", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "36977:23:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "36972:28:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9056, + "nodeType": "ExpressionStatement", + "src": "36972:28:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 9061, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9057, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8685, + "src": "37004:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9060, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9058, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8681, + "src": "37011:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "hexValue": "307830303030303030303030303030303030303030303030353033356164393030", + "id": 9059, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "37016:33:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_21531121920_by_1", + "typeString": "int_const 21531121920" + }, + "value": "0x00000000000000000000005035ad900" + }, + "src": "37011:38:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "37004:45:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9062, + "nodeType": "ExpressionStatement", + "src": "37004:45:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 9070, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9063, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8681, + "src": "37079:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9069, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9066, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9064, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8681, + "src": "37085:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 9065, + "name": "_x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8673, + "src": "37090:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "37085:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 9067, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "37084:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "argumentTypes": null, + "id": 9068, + "name": "_precision", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8675, + "src": "37097:10:10", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "37084:23:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "37079:28:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9071, + "nodeType": "ExpressionStatement", + "src": "37079:28:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 9076, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9072, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8685, + "src": "37111:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9075, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9073, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8681, + "src": "37118:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "hexValue": "307830303030303030303030303030303030303030303030303266383831623030", + "id": 9074, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "37123:33:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_797448960_by_1", + "typeString": "int_const 797448960" + }, + "value": "0x000000000000000000000002f881b00" + }, + "src": "37118:38:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "37111:45:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9077, + "nodeType": "ExpressionStatement", + "src": "37111:45:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 9085, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9078, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8681, + "src": "37186:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9084, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9081, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9079, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8681, + "src": "37192:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 9080, + "name": "_x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8673, + "src": "37197:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "37192:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 9082, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "37191:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "argumentTypes": null, + "id": 9083, + "name": "_precision", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8675, + "src": "37204:10:10", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "37191:23:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "37186:28:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9086, + "nodeType": "ExpressionStatement", + "src": "37186:28:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 9091, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9087, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8685, + "src": "37218:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9090, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9088, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8681, + "src": "37225:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "hexValue": "307830303030303030303030303030303030303030303030303031623239333430", + "id": 9089, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "37230:33:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_28480320_by_1", + "typeString": "int_const 28480320" + }, + "value": "0x0000000000000000000000001b29340" + }, + "src": "37225:38:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "37218:45:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9092, + "nodeType": "ExpressionStatement", + "src": "37218:45:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 9100, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9093, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8681, + "src": "37293:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9099, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9096, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9094, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8681, + "src": "37299:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 9095, + "name": "_x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8673, + "src": "37304:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "37299:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 9097, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "37298:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "argumentTypes": null, + "id": 9098, + "name": "_precision", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8675, + "src": "37311:10:10", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "37298:23:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "37293:28:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9101, + "nodeType": "ExpressionStatement", + "src": "37293:28:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 9106, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9102, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8685, + "src": "37325:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9105, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9103, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8681, + "src": "37332:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "hexValue": "307830303030303030303030303030303030303030303030303030306566633430", + "id": 9104, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "37337:33:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_982080_by_1", + "typeString": "int_const 982080" + }, + "value": "0x00000000000000000000000000efc40" + }, + "src": "37332:38:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "37325:45:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9107, + "nodeType": "ExpressionStatement", + "src": "37325:45:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 9115, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9108, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8681, + "src": "37400:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9114, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9111, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9109, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8681, + "src": "37406:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 9110, + "name": "_x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8673, + "src": "37411:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "37406:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 9112, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "37405:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "argumentTypes": null, + "id": 9113, + "name": "_precision", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8675, + "src": "37418:10:10", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "37405:23:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "37400:28:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9116, + "nodeType": "ExpressionStatement", + "src": "37400:28:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 9121, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9117, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8685, + "src": "37432:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9120, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9118, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8681, + "src": "37439:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "hexValue": "307830303030303030303030303030303030303030303030303030303037666530", + "id": 9119, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "37444:33:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_32736_by_1", + "typeString": "int_const 32736" + }, + "value": "0x0000000000000000000000000007fe0" + }, + "src": "37439:38:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "37432:45:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9122, + "nodeType": "ExpressionStatement", + "src": "37432:45:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 9130, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9123, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8681, + "src": "37507:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9129, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9126, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9124, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8681, + "src": "37513:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 9125, + "name": "_x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8673, + "src": "37518:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "37513:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 9127, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "37512:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "argumentTypes": null, + "id": 9128, + "name": "_precision", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8675, + "src": "37525:10:10", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "37512:23:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "37507:28:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9131, + "nodeType": "ExpressionStatement", + "src": "37507:28:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 9136, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9132, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8685, + "src": "37539:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9135, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9133, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8681, + "src": "37546:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "hexValue": "307830303030303030303030303030303030303030303030303030303030343230", + "id": 9134, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "37551:33:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1056_by_1", + "typeString": "int_const 1056" + }, + "value": "0x0000000000000000000000000000420" + }, + "src": "37546:38:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "37539:45:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9137, + "nodeType": "ExpressionStatement", + "src": "37539:45:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 9145, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9138, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8681, + "src": "37614:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9144, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9141, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9139, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8681, + "src": "37620:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 9140, + "name": "_x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8673, + "src": "37625:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "37620:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 9142, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "37619:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "argumentTypes": null, + "id": 9143, + "name": "_precision", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8675, + "src": "37632:10:10", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "37619:23:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "37614:28:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9146, + "nodeType": "ExpressionStatement", + "src": "37614:28:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 9151, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9147, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8685, + "src": "37646:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9150, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9148, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8681, + "src": "37653:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "hexValue": "307830303030303030303030303030303030303030303030303030303030303231", + "id": 9149, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "37658:33:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_33_by_1", + "typeString": "int_const 33" + }, + "value": "0x0000000000000000000000000000021" + }, + "src": "37653:38:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "37646:45:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9152, + "nodeType": "ExpressionStatement", + "src": "37646:45:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 9160, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9153, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8681, + "src": "37721:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9159, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9156, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9154, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8681, + "src": "37727:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 9155, + "name": "_x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8673, + "src": "37732:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "37727:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 9157, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "37726:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "argumentTypes": null, + "id": 9158, + "name": "_precision", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8675, + "src": "37739:10:10", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "37726:23:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "37721:28:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9161, + "nodeType": "ExpressionStatement", + "src": "37721:28:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 9166, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9162, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8685, + "src": "37753:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9165, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9163, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8681, + "src": "37760:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "hexValue": "307830303030303030303030303030303030303030303030303030303030303031", + "id": 9164, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "37765:33:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "0x0000000000000000000000000000001" + }, + "src": "37760:38:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "37753:45:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9167, + "nodeType": "ExpressionStatement", + "src": "37753:45:10" + }, + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9177, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9172, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9170, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9168, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8685, + "src": "37836:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "hexValue": "307836383835383963633065393530356532663266656535353830303030303030", + "id": 9169, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "37842:33:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_8683317618811886495518194401280000000_by_1", + "typeString": "int_const 8683...(29 digits omitted)...0000" + }, + "value": "0x688589cc0e9505e2f2fee5580000000" + }, + "src": "37836:39:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "id": 9171, + "name": "_x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8673, + "src": "37878:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "37836:44:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9175, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9173, + "name": "ONE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6225, + "src": "37884:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<<", + "rightExpression": { + "argumentTypes": null, + "id": 9174, + "name": "_precision", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8675, + "src": "37891:10:10", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "37884:17:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 9176, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "37883:19:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "37836:66:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 8679, + "id": 9178, + "nodeType": "Return", + "src": "37829:73:10" + } + ] + }, + "documentation": "@dev this function can be auto-generated by the script 'PrintFunctionGeneralExp.py'.\nit approximates \"e ^ x\" via maclaurin summation: \"(x^0)/0! + (x^1)/1! + ... + (x^n)/n!\".\nit returns \"e ^ (x / 2 ^ precision) * 2 ^ precision\", that is, the result is upshifted for accuracy.\nthe global \"maxExpArray\" maps each \"precision\" to \"((maximumExponent + 1) << (MAX_PRECISION - precision)) - 1\".\nthe maximum permitted value for \"x\" is therefore given by \"maxExpArray[precision] >> (MAX_PRECISION - precision)\".", + "id": 9180, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "generalExp", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8676, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8673, + "name": "_x", + "nodeType": "VariableDeclaration", + "scope": 9180, + "src": "34299:10:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8672, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "34299:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 8675, + "name": "_precision", + "nodeType": "VariableDeclaration", + "scope": 9180, + "src": "34311:16:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 8674, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "34311:5:10", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "34298:30:10" + }, + "payable": false, + "returnParameters": { + "id": 8679, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8678, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9180, + "src": "34352:7:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8677, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "34352:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "34351:9:10" + }, + "scope": 11642, + "src": "34279:3677:10", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 9522, + "nodeType": "Block", + "src": "38704:2687:10", + "statements": [ + { + "assignments": [ + 9188 + ], + "declarations": [ + { + "constant": false, + "id": 9188, + "name": "res", + "nodeType": "VariableDeclaration", + "scope": 9523, + "src": "38708:11:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9187, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "38708:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 9190, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 9189, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "38722:1:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "38708:15:10" + }, + { + "assignments": [], + "declarations": [ + { + "constant": false, + "id": 9192, + "name": "y", + "nodeType": "VariableDeclaration", + "scope": 9523, + "src": "38728:9:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9191, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "38728:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 9193, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "38728:9:10" + }, + { + "assignments": [], + "declarations": [ + { + "constant": false, + "id": 9195, + "name": "z", + "nodeType": "VariableDeclaration", + "scope": 9523, + "src": "38741:9:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9194, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "38741:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 9196, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "38741:9:10" + }, + { + "assignments": [], + "declarations": [ + { + "constant": false, + "id": 9198, + "name": "w", + "nodeType": "VariableDeclaration", + "scope": 9523, + "src": "38754:9:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9197, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "38754:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 9199, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "38754:9:10" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9202, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9200, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9182, + "src": "38772:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30786433303934633730663033346465346239366666376435623666393966636438", + "id": 9201, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "38777:34:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_280515388193368458015406427511040113880_by_1", + "typeString": "int_const 2805...(31 digits omitted)...3880" + }, + "value": "0xd3094c70f034de4b96ff7d5b6f99fcd8" + }, + "src": "38772:39:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 9217, + "nodeType": "IfStatement", + "src": "38768:155:10", + "trueBody": { + "id": 9216, + "nodeType": "Block", + "src": "38813:110:10", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 9205, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9203, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9188, + "src": "38818:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30783430303030303030303030303030303030303030303030303030303030303030", + "id": 9204, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "38825:34:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_85070591730234615865843651857942052864_by_1", + "typeString": "int_const 8507...(30 digits omitted)...2864" + }, + "value": "0x40000000000000000000000000000000" + }, + "src": "38818:41:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9206, + "nodeType": "ExpressionStatement", + "src": "38818:41:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 9214, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9207, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9182, + "src": "38864:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9213, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9210, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9208, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9182, + "src": "38869:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 9209, + "name": "FIXED_1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6237, + "src": "38873:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "38869:11:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 9211, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "38868:13:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30786433303934633730663033346465346239366666376435623666393966636438", + "id": 9212, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "38884:34:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_280515388193368458015406427511040113880_by_1", + "typeString": "int_const 2805...(31 digits omitted)...3880" + }, + "value": "0xd3094c70f034de4b96ff7d5b6f99fcd8" + }, + "src": "38868:50:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "38864:54:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9215, + "nodeType": "ExpressionStatement", + "src": "38864:54:10" + } + ] + } + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9220, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9218, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9182, + "src": "38945:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30786134356166316531663430633333336233646531646234646435356632396137", + "id": 9219, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "38950:34:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_218465603988574474844591417643679820199_by_1", + "typeString": "int_const 2184...(31 digits omitted)...0199" + }, + "value": "0xa45af1e1f40c333b3de1db4dd55f29a7" + }, + "src": "38945:39:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 9235, + "nodeType": "IfStatement", + "src": "38941:155:10", + "trueBody": { + "id": 9234, + "nodeType": "Block", + "src": "38986:110:10", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 9223, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9221, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9188, + "src": "38991:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30783230303030303030303030303030303030303030303030303030303030303030", + "id": 9222, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "38998:34:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_42535295865117307932921825928971026432_by_1", + "typeString": "int_const 4253...(30 digits omitted)...6432" + }, + "value": "0x20000000000000000000000000000000" + }, + "src": "38991:41:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9224, + "nodeType": "ExpressionStatement", + "src": "38991:41:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 9232, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9225, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9182, + "src": "39037:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9231, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9228, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9226, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9182, + "src": "39042:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 9227, + "name": "FIXED_1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6237, + "src": "39046:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "39042:11:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 9229, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "39041:13:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30786134356166316531663430633333336233646531646234646435356632396137", + "id": 9230, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "39057:34:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_218465603988574474844591417643679820199_by_1", + "typeString": "int_const 2184...(31 digits omitted)...0199" + }, + "value": "0xa45af1e1f40c333b3de1db4dd55f29a7" + }, + "src": "39041:50:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "39037:54:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9233, + "nodeType": "ExpressionStatement", + "src": "39037:54:10" + } + ] + } + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9238, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9236, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9182, + "src": "39118:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30783931306230323264623761653637636537366234343163323730333563366131", + "id": 9237, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "39123:34:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_192795218841189805222451540510555621025_by_1", + "typeString": "int_const 1927...(31 digits omitted)...1025" + }, + "value": "0x910b022db7ae67ce76b441c27035c6a1" + }, + "src": "39118:39:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 9253, + "nodeType": "IfStatement", + "src": "39114:155:10", + "trueBody": { + "id": 9252, + "nodeType": "Block", + "src": "39159:110:10", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 9241, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9239, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9188, + "src": "39164:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30783130303030303030303030303030303030303030303030303030303030303030", + "id": 9240, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "39171:34:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_21267647932558653966460912964485513216_by_1", + "typeString": "int_const 2126...(30 digits omitted)...3216" + }, + "value": "0x10000000000000000000000000000000" + }, + "src": "39164:41:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9242, + "nodeType": "ExpressionStatement", + "src": "39164:41:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 9250, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9243, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9182, + "src": "39210:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9249, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9246, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9244, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9182, + "src": "39215:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 9245, + "name": "FIXED_1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6237, + "src": "39219:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "39215:11:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 9247, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "39214:13:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30783931306230323264623761653637636537366234343163323730333563366131", + "id": 9248, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "39230:34:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_192795218841189805222451540510555621025_by_1", + "typeString": "int_const 1927...(31 digits omitted)...1025" + }, + "value": "0x910b022db7ae67ce76b441c27035c6a1" + }, + "src": "39214:50:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "39210:54:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9251, + "nodeType": "ExpressionStatement", + "src": "39210:54:10" + } + ] + } + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9256, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9254, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9182, + "src": "39291:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30783838343135616262653961373662656164386430306366313132653464346138", + "id": 9255, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "39296:34:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_181114347027396448854165353426875372712_by_1", + "typeString": "int_const 1811...(31 digits omitted)...2712" + }, + "value": "0x88415abbe9a76bead8d00cf112e4d4a8" + }, + "src": "39291:39:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 9271, + "nodeType": "IfStatement", + "src": "39287:155:10", + "trueBody": { + "id": 9270, + "nodeType": "Block", + "src": "39332:110:10", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 9259, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9257, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9188, + "src": "39337:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30783038303030303030303030303030303030303030303030303030303030303030", + "id": 9258, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "39344:34:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_10633823966279326983230456482242756608_by_1", + "typeString": "int_const 1063...(30 digits omitted)...6608" + }, + "value": "0x08000000000000000000000000000000" + }, + "src": "39337:41:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9260, + "nodeType": "ExpressionStatement", + "src": "39337:41:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 9268, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9261, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9182, + "src": "39383:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9267, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9264, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9262, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9182, + "src": "39388:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 9263, + "name": "FIXED_1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6237, + "src": "39392:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "39388:11:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 9265, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "39387:13:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30783838343135616262653961373662656164386430306366313132653464346138", + "id": 9266, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "39403:34:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_181114347027396448854165353426875372712_by_1", + "typeString": "int_const 1811...(31 digits omitted)...2712" + }, + "value": "0x88415abbe9a76bead8d00cf112e4d4a8" + }, + "src": "39387:50:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "39383:54:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9269, + "nodeType": "ExpressionStatement", + "src": "39383:54:10" + } + ] + } + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9274, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9272, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9182, + "src": "39464:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30783834313032623030383933663634633730356538343164356434303634626433", + "id": 9273, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "39469:34:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_175542044379434494067323265867529472979_by_1", + "typeString": "int_const 1755...(31 digits omitted)...2979" + }, + "value": "0x84102b00893f64c705e841d5d4064bd3" + }, + "src": "39464:39:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 9289, + "nodeType": "IfStatement", + "src": "39460:155:10", + "trueBody": { + "id": 9288, + "nodeType": "Block", + "src": "39505:110:10", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 9277, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9275, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9188, + "src": "39510:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30783034303030303030303030303030303030303030303030303030303030303030", + "id": 9276, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "39517:34:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_5316911983139663491615228241121378304_by_1", + "typeString": "int_const 5316...(29 digits omitted)...8304" + }, + "value": "0x04000000000000000000000000000000" + }, + "src": "39510:41:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9278, + "nodeType": "ExpressionStatement", + "src": "39510:41:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 9286, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9279, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9182, + "src": "39556:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9285, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9282, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9280, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9182, + "src": "39561:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 9281, + "name": "FIXED_1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6237, + "src": "39565:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "39561:11:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 9283, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "39560:13:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30783834313032623030383933663634633730356538343164356434303634626433", + "id": 9284, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "39576:34:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_175542044379434494067323265867529472979_by_1", + "typeString": "int_const 1755...(31 digits omitted)...2979" + }, + "value": "0x84102b00893f64c705e841d5d4064bd3" + }, + "src": "39560:50:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "39556:54:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9287, + "nodeType": "ExpressionStatement", + "src": "39556:54:10" + } + ] + } + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9292, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9290, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9182, + "src": "39637:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30783832303430353561616566316338626435633332353966343832323733356132", + "id": 9291, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "39642:34:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_172820517236198538127967385733353125282_by_1", + "typeString": "int_const 1728...(31 digits omitted)...5282" + }, + "value": "0x8204055aaef1c8bd5c3259f4822735a2" + }, + "src": "39637:39:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 9307, + "nodeType": "IfStatement", + "src": "39633:155:10", + "trueBody": { + "id": 9306, + "nodeType": "Block", + "src": "39678:110:10", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 9295, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9293, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9188, + "src": "39683:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30783032303030303030303030303030303030303030303030303030303030303030", + "id": 9294, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "39690:34:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2658455991569831745807614120560689152_by_1", + "typeString": "int_const 2658...(29 digits omitted)...9152" + }, + "value": "0x02000000000000000000000000000000" + }, + "src": "39683:41:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9296, + "nodeType": "ExpressionStatement", + "src": "39683:41:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 9304, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9297, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9182, + "src": "39729:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9303, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9300, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9298, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9182, + "src": "39734:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 9299, + "name": "FIXED_1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6237, + "src": "39738:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "39734:11:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 9301, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "39733:13:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30783832303430353561616566316338626435633332353966343832323733356132", + "id": 9302, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "39749:34:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_172820517236198538127967385733353125282_by_1", + "typeString": "int_const 1728...(31 digits omitted)...5282" + }, + "value": "0x8204055aaef1c8bd5c3259f4822735a2" + }, + "src": "39733:50:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "39729:54:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9305, + "nodeType": "ExpressionStatement", + "src": "39729:54:10" + } + ] + } + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9310, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9308, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9182, + "src": "39810:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30783831303130306162303032323264383631393331633135653339623434653939", + "id": 9309, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "39815:34:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_171475617301169790829459146906809945753_by_1", + "typeString": "int_const 1714...(31 digits omitted)...5753" + }, + "value": "0x810100ab00222d861931c15e39b44e99" + }, + "src": "39810:39:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 9325, + "nodeType": "IfStatement", + "src": "39806:155:10", + "trueBody": { + "id": 9324, + "nodeType": "Block", + "src": "39851:110:10", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 9313, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9311, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9188, + "src": "39856:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30783031303030303030303030303030303030303030303030303030303030303030", + "id": 9312, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "39863:34:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1329227995784915872903807060280344576_by_1", + "typeString": "int_const 1329...(29 digits omitted)...4576" + }, + "value": "0x01000000000000000000000000000000" + }, + "src": "39856:41:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9314, + "nodeType": "ExpressionStatement", + "src": "39856:41:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 9322, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9315, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9182, + "src": "39902:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9321, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9318, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9316, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9182, + "src": "39907:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 9317, + "name": "FIXED_1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6237, + "src": "39911:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "39907:11:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 9319, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "39906:13:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30783831303130306162303032323264383631393331633135653339623434653939", + "id": 9320, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "39922:34:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_171475617301169790829459146906809945753_by_1", + "typeString": "int_const 1714...(31 digits omitted)...5753" + }, + "value": "0x810100ab00222d861931c15e39b44e99" + }, + "src": "39906:50:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "39902:54:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9323, + "nodeType": "ExpressionStatement", + "src": "39902:54:10" + } + ] + } + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9328, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9326, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9182, + "src": "39983:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30783830383034303135356161626262653934353135323136393335353466373333", + "id": 9327, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "39988:34:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_170807097224429000759274174605493073715_by_1", + "typeString": "int_const 1708...(31 digits omitted)...3715" + }, + "value": "0x808040155aabbbe9451521693554f733" + }, + "src": "39983:39:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 9343, + "nodeType": "IfStatement", + "src": "39979:155:10", + "trueBody": { + "id": 9342, + "nodeType": "Block", + "src": "40024:110:10", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 9331, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9329, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9188, + "src": "40029:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30783030383030303030303030303030303030303030303030303030303030303030", + "id": 9330, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "40036:34:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_664613997892457936451903530140172288_by_1", + "typeString": "int_const 6646...(28 digits omitted)...2288" + }, + "value": "0x00800000000000000000000000000000" + }, + "src": "40029:41:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9332, + "nodeType": "ExpressionStatement", + "src": "40029:41:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 9340, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9333, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9182, + "src": "40075:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9339, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9336, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9334, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9182, + "src": "40080:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 9335, + "name": "FIXED_1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6237, + "src": "40084:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "40080:11:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 9337, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "40079:13:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30783830383034303135356161626262653934353135323136393335353466373333", + "id": 9338, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "40095:34:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_170807097224429000759274174605493073715_by_1", + "typeString": "int_const 1708...(31 digits omitted)...3715" + }, + "value": "0x808040155aabbbe9451521693554f733" + }, + "src": "40079:50:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "40075:54:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9341, + "nodeType": "ExpressionStatement", + "src": "40075:54:10" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "id": 9350, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9344, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9195, + "src": "40153:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 9349, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9345, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9192, + "src": "40157:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9348, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9346, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9182, + "src": "40161:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 9347, + "name": "FIXED_1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6237, + "src": "40165:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "40161:11:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "40157:15:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "40153:19:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9351, + "nodeType": "ExpressionStatement", + "src": "40153:19:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 9359, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9352, + "name": "w", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9198, + "src": "40176:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9358, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9355, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9353, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9192, + "src": "40181:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 9354, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9192, + "src": "40185:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "40181:5:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 9356, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "40180:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 9357, + "name": "FIXED_1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6237, + "src": "40190:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "40180:17:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "40176:21:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9360, + "nodeType": "ExpressionStatement", + "src": "40176:21:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 9371, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9361, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9188, + "src": "40201:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9370, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9367, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9362, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9195, + "src": "40209:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9365, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "3078313030303030303030303030303030303030303030303030303030303030303030", + "id": 9363, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "40214:35:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_340282366920938463463374607431768211456_by_1", + "typeString": "int_const 3402...(31 digits omitted)...1456" + }, + "value": "0x100000000000000000000000000000000" + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 9364, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9192, + "src": "40252:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "40214:39:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 9366, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "40213:41:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "40209:45:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 9368, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "40208:47:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3078313030303030303030303030303030303030303030303030303030303030303030", + "id": 9369, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "40258:35:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_340282366920938463463374607431768211456_by_1", + "typeString": "int_const 3402...(31 digits omitted)...1456" + }, + "value": "0x100000000000000000000000000000000" + }, + "src": "40208:85:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "40201:92:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9372, + "nodeType": "ExpressionStatement", + "src": "40201:92:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 9380, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9373, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9195, + "src": "40297:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9379, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9376, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9374, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9195, + "src": "40302:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 9375, + "name": "w", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9198, + "src": "40306:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "40302:5:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 9377, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "40301:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 9378, + "name": "FIXED_1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6237, + "src": "40311:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "40301:17:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "40297:21:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9381, + "nodeType": "ExpressionStatement", + "src": "40297:21:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 9392, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9382, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9188, + "src": "40351:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9391, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9388, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9383, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9195, + "src": "40359:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9386, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "3078306161616161616161616161616161616161616161616161616161616161616161", + "id": 9384, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "40364:35:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_226854911280625642308916404954512140970_by_1", + "typeString": "int_const 2268...(31 digits omitted)...0970" + }, + "value": "0x0aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 9385, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9192, + "src": "40402:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "40364:39:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 9387, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "40363:41:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "40359:45:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 9389, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "40358:47:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3078323030303030303030303030303030303030303030303030303030303030303030", + "id": 9390, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "40408:35:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_680564733841876926926749214863536422912_by_1", + "typeString": "int_const 6805...(31 digits omitted)...2912" + }, + "value": "0x200000000000000000000000000000000" + }, + "src": "40358:85:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "40351:92:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9393, + "nodeType": "ExpressionStatement", + "src": "40351:92:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 9401, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9394, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9195, + "src": "40447:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9400, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9397, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9395, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9195, + "src": "40452:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 9396, + "name": "w", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9198, + "src": "40456:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "40452:5:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 9398, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "40451:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 9399, + "name": "FIXED_1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6237, + "src": "40461:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "40451:17:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "40447:21:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9402, + "nodeType": "ExpressionStatement", + "src": "40447:21:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 9413, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9403, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9188, + "src": "40501:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9412, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9409, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9404, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9195, + "src": "40509:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9407, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "3078303939393939393939393939393939393939393939393939393939393939393939", + "id": 9405, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "40514:35:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_204169420152563078078024764459060926873_by_1", + "typeString": "int_const 2041...(31 digits omitted)...6873" + }, + "value": "0x099999999999999999999999999999999" + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 9406, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9192, + "src": "40552:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "40514:39:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 9408, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "40513:41:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "40509:45:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 9410, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "40508:47:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3078333030303030303030303030303030303030303030303030303030303030303030", + "id": 9411, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "40558:35:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1020847100762815390390123822295304634368_by_1", + "typeString": "int_const 1020...(32 digits omitted)...4368" + }, + "value": "0x300000000000000000000000000000000" + }, + "src": "40508:85:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "40501:92:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9414, + "nodeType": "ExpressionStatement", + "src": "40501:92:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 9422, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9415, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9195, + "src": "40597:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9421, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9418, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9416, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9195, + "src": "40602:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 9417, + "name": "w", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9198, + "src": "40606:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "40602:5:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 9419, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "40601:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 9420, + "name": "FIXED_1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6237, + "src": "40611:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "40601:17:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "40597:21:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9423, + "nodeType": "ExpressionStatement", + "src": "40597:21:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 9434, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9424, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9188, + "src": "40651:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9433, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9430, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9425, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9195, + "src": "40659:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9428, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "3078303932343932343932343932343932343932343932343932343932343932343932", + "id": 9426, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "40664:35:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_194447066811964836264785489961010406546_by_1", + "typeString": "int_const 1944...(31 digits omitted)...6546" + }, + "value": "0x092492492492492492492492492492492" + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 9427, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9192, + "src": "40702:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "40664:39:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 9429, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "40663:41:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "40659:45:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 9431, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "40658:47:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3078343030303030303030303030303030303030303030303030303030303030303030", + "id": 9432, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "40708:35:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1361129467683753853853498429727072845824_by_1", + "typeString": "int_const 1361...(32 digits omitted)...5824" + }, + "value": "0x400000000000000000000000000000000" + }, + "src": "40658:85:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "40651:92:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9435, + "nodeType": "ExpressionStatement", + "src": "40651:92:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 9443, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9436, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9195, + "src": "40747:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9442, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9439, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9437, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9195, + "src": "40752:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 9438, + "name": "w", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9198, + "src": "40756:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "40752:5:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 9440, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "40751:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 9441, + "name": "FIXED_1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6237, + "src": "40761:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "40751:17:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "40747:21:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9444, + "nodeType": "ExpressionStatement", + "src": "40747:21:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 9455, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9445, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9188, + "src": "40801:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9454, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9451, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9446, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9195, + "src": "40809:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9449, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "3078303865333865333865333865333865333865333865333865333865333865333865", + "id": 9447, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "40814:35:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_189045759400521368590763670795426784142_by_1", + "typeString": "int_const 1890...(31 digits omitted)...4142" + }, + "value": "0x08e38e38e38e38e38e38e38e38e38e38e" + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 9448, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9192, + "src": "40852:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "40814:39:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 9450, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "40813:41:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "40809:45:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 9452, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "40808:47:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3078353030303030303030303030303030303030303030303030303030303030303030", + "id": 9453, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "40858:35:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1701411834604692317316873037158841057280_by_1", + "typeString": "int_const 1701...(32 digits omitted)...7280" + }, + "value": "0x500000000000000000000000000000000" + }, + "src": "40808:85:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "40801:92:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9456, + "nodeType": "ExpressionStatement", + "src": "40801:92:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 9464, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9457, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9195, + "src": "40897:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9463, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9460, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9458, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9195, + "src": "40902:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 9459, + "name": "w", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9198, + "src": "40906:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "40902:5:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 9461, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "40901:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 9462, + "name": "FIXED_1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6237, + "src": "40911:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "40901:17:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "40897:21:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9465, + "nodeType": "ExpressionStatement", + "src": "40897:21:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 9476, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9466, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9188, + "src": "40951:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9475, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9472, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9467, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9195, + "src": "40959:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9470, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "3078303862613265386261326538626132653862613265386261326538626132653862", + "id": 9468, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "40964:35:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_185608563775057343707295240417328115339_by_1", + "typeString": "int_const 1856...(31 digits omitted)...5339" + }, + "value": "0x08ba2e8ba2e8ba2e8ba2e8ba2e8ba2e8b" + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 9469, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9192, + "src": "41002:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "40964:39:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 9471, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "40963:41:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "40959:45:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 9473, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "40958:47:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3078363030303030303030303030303030303030303030303030303030303030303030", + "id": 9474, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "41008:35:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2041694201525630780780247644590609268736_by_1", + "typeString": "int_const 2041...(32 digits omitted)...8736" + }, + "value": "0x600000000000000000000000000000000" + }, + "src": "40958:85:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "40951:92:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9477, + "nodeType": "ExpressionStatement", + "src": "40951:92:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 9485, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9478, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9195, + "src": "41047:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9484, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9481, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9479, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9195, + "src": "41052:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 9480, + "name": "w", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9198, + "src": "41056:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "41052:5:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 9482, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "41051:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 9483, + "name": "FIXED_1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6237, + "src": "41061:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "41051:17:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "41047:21:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9486, + "nodeType": "ExpressionStatement", + "src": "41047:21:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 9497, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9487, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9188, + "src": "41101:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9496, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9493, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9488, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9195, + "src": "41109:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9491, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "3078303839643839643839643839643839643839643839643839643839643839643839", + "id": 9489, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "41114:35:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_183228966803582249557201711694029036937_by_1", + "typeString": "int_const 1832...(31 digits omitted)...6937" + }, + "value": "0x089d89d89d89d89d89d89d89d89d89d89" + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 9490, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9192, + "src": "41152:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "41114:39:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 9492, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "41113:41:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "41109:45:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 9494, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "41108:47:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3078373030303030303030303030303030303030303030303030303030303030303030", + "id": 9495, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "41158:35:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2381976568446569244243622252022377480192_by_1", + "typeString": "int_const 2381...(32 digits omitted)...0192" + }, + "value": "0x700000000000000000000000000000000" + }, + "src": "41108:85:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "41101:92:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9498, + "nodeType": "ExpressionStatement", + "src": "41101:92:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 9506, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9499, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9195, + "src": "41197:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9505, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9502, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9500, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9195, + "src": "41202:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 9501, + "name": "w", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9198, + "src": "41206:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "41202:5:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 9503, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "41201:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 9504, + "name": "FIXED_1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6237, + "src": "41211:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "41201:17:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "41197:21:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9507, + "nodeType": "ExpressionStatement", + "src": "41197:21:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 9518, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9508, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9188, + "src": "41251:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9517, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9514, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9509, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9195, + "src": "41259:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9512, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "3078303838383838383838383838383838383838383838383838383838383838383838", + "id": 9510, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "41264:35:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_181483929024500513847133123963609712776_by_1", + "typeString": "int_const 1814...(31 digits omitted)...2776" + }, + "value": "0x088888888888888888888888888888888" + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 9511, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9192, + "src": "41302:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "41264:39:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 9513, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "41263:41:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "41259:45:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 9515, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "41258:47:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3078383030303030303030303030303030303030303030303030303030303030303030", + "id": 9516, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "41308:35:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2722258935367507707706996859454145691648_by_1", + "typeString": "int_const 2722...(32 digits omitted)...1648" + }, + "value": "0x800000000000000000000000000000000" + }, + "src": "41258:85:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "41251:92:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9519, + "nodeType": "ExpressionStatement", + "src": "41251:92:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 9520, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9188, + "src": "41384:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 9186, + "id": 9521, + "nodeType": "Return", + "src": "41377:10:10" + } + ] + }, + "documentation": "@dev computes log(x / FIXED_1) * FIXED_1\nInput range: FIXED_1 <= x <= OPT_LOG_MAX_VAL - 1\nAuto-generated via 'PrintFunctionOptimalLog.py'\nDetailed description:\n- Rewrite the input as a product of natural exponents and a single residual r, such that 1 < r < 2\n- The natural logarithm of each (pre-calculated) exponent is the degree of the exponent\n- The natural logarithm of r is calculated via Taylor series for log(1 + x), where x = r - 1\n- The natural logarithm of the input is calculated by summing up the intermediate results above\n- For example: log(250) = log(e^4 * e^1 * e^0.5 * 1.021692859) = 4 + 1 + 0.5 + log(1 + 0.021692859)", + "id": 9523, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "optimalLog", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9183, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9182, + "name": "x", + "nodeType": "VariableDeclaration", + "scope": 9523, + "src": "38661:9:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9181, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "38661:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "38660:11:10" + }, + "payable": false, + "returnParameters": { + "id": 9186, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9185, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9523, + "src": "38695:7:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9184, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "38695:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "38694:9:10" + }, + "scope": 11642, + "src": "38641:2750:10", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 9957, + "nodeType": "Block", + "src": "42094:3011:10", + "statements": [ + { + "assignments": [ + 9531 + ], + "declarations": [ + { + "constant": false, + "id": 9531, + "name": "res", + "nodeType": "VariableDeclaration", + "scope": 9958, + "src": "42098:11:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9530, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "42098:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 9533, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 9532, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "42112:1:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "42098:15:10" + }, + { + "assignments": [], + "declarations": [ + { + "constant": false, + "id": 9535, + "name": "y", + "nodeType": "VariableDeclaration", + "scope": 9958, + "src": "42118:9:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9534, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "42118:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 9536, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "42118:9:10" + }, + { + "assignments": [], + "declarations": [ + { + "constant": false, + "id": 9538, + "name": "z", + "nodeType": "VariableDeclaration", + "scope": 9958, + "src": "42131:9:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9537, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "42131:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 9539, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "42131:9:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 9546, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9540, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9538, + "src": "42145:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 9545, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9541, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9535, + "src": "42149:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9544, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9542, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9525, + "src": "42153:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30783130303030303030303030303030303030303030303030303030303030303030", + "id": 9543, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "42157:34:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_21267647932558653966460912964485513216_by_1", + "typeString": "int_const 2126...(30 digits omitted)...3216" + }, + "value": "0x10000000000000000000000000000000" + }, + "src": "42153:38:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "42149:42:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "42145:46:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9547, + "nodeType": "ExpressionStatement", + "src": "42145:46:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 9555, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9548, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9538, + "src": "42226:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9554, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9551, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9549, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9538, + "src": "42231:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 9550, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9535, + "src": "42235:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "42231:5:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 9552, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "42230:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 9553, + "name": "FIXED_1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6237, + "src": "42240:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "42230:17:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "42226:21:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9556, + "nodeType": "ExpressionStatement", + "src": "42226:21:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 9561, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9557, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9531, + "src": "42251:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9560, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9558, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9538, + "src": "42258:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "hexValue": "307831306531623362653431356130303030", + "id": 9559, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "42262:18:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1216451004088320000_by_1", + "typeString": "int_const 1216451004088320000" + }, + "value": "0x10e1b3be415a0000" + }, + "src": "42258:22:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "42251:29:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9562, + "nodeType": "ExpressionStatement", + "src": "42251:29:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 9570, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9563, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9538, + "src": "42310:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9569, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9566, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9564, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9538, + "src": "42315:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 9565, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9535, + "src": "42319:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "42315:5:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 9567, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "42314:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 9568, + "name": "FIXED_1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6237, + "src": "42324:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "42314:17:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "42310:21:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9571, + "nodeType": "ExpressionStatement", + "src": "42310:21:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 9576, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9572, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9531, + "src": "42335:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9575, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9573, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9538, + "src": "42342:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "hexValue": "307830356130393133663662316530303030", + "id": 9574, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "42346:18:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_405483668029440000_by_1", + "typeString": "int_const 405483668029440000" + }, + "value": "0x05a0913f6b1e0000" + }, + "src": "42342:22:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "42335:29:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9577, + "nodeType": "ExpressionStatement", + "src": "42335:29:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 9585, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9578, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9538, + "src": "42394:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9584, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9581, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9579, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9538, + "src": "42399:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 9580, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9535, + "src": "42403:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "42399:5:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 9582, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "42398:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 9583, + "name": "FIXED_1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6237, + "src": "42408:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "42398:17:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "42394:21:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9586, + "nodeType": "ExpressionStatement", + "src": "42394:21:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 9591, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9587, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9531, + "src": "42419:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9590, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9588, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9538, + "src": "42426:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "hexValue": "307830313638323434666461633738303030", + "id": 9589, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "42430:18:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_101370917007360000_by_1", + "typeString": "int_const 101370917007360000" + }, + "value": "0x0168244fdac78000" + }, + "src": "42426:22:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "42419:29:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9592, + "nodeType": "ExpressionStatement", + "src": "42419:29:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 9600, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9593, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9538, + "src": "42478:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9599, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9596, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9594, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9538, + "src": "42483:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 9595, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9535, + "src": "42487:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "42483:5:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 9597, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "42482:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 9598, + "name": "FIXED_1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6237, + "src": "42492:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "42482:17:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "42478:21:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9601, + "nodeType": "ExpressionStatement", + "src": "42478:21:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 9606, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9602, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9531, + "src": "42503:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9605, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9603, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9538, + "src": "42510:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "hexValue": "307830303438303734333262633138303030", + "id": 9604, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "42514:18:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_20274183401472000_by_1", + "typeString": "int_const 20274183401472000" + }, + "value": "0x004807432bc18000" + }, + "src": "42510:22:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "42503:29:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9607, + "nodeType": "ExpressionStatement", + "src": "42503:29:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 9615, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9608, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9538, + "src": "42562:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9614, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9611, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9609, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9538, + "src": "42567:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 9610, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9535, + "src": "42571:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "42567:5:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 9612, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "42566:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 9613, + "name": "FIXED_1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6237, + "src": "42576:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "42566:17:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "42562:21:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9616, + "nodeType": "ExpressionStatement", + "src": "42562:21:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 9621, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9617, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9531, + "src": "42587:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9620, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9618, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9538, + "src": "42594:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "hexValue": "307830303063303133356463613034303030", + "id": 9619, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "42598:18:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_3379030566912000_by_1", + "typeString": "int_const 3379030566912000" + }, + "value": "0x000c0135dca04000" + }, + "src": "42594:22:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "42587:29:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9622, + "nodeType": "ExpressionStatement", + "src": "42587:29:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 9630, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9623, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9538, + "src": "42646:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9629, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9626, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9624, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9538, + "src": "42651:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 9625, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9535, + "src": "42655:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "42651:5:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 9627, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "42650:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 9628, + "name": "FIXED_1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6237, + "src": "42660:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "42650:17:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "42646:21:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9631, + "nodeType": "ExpressionStatement", + "src": "42646:21:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 9636, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9632, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9531, + "src": "42671:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9635, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9633, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9538, + "src": "42678:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "hexValue": "307830303031623730376231636463303030", + "id": 9634, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "42682:18:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_482718652416000_by_1", + "typeString": "int_const 482718652416000" + }, + "value": "0x0001b707b1cdc000" + }, + "src": "42678:22:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "42671:29:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9637, + "nodeType": "ExpressionStatement", + "src": "42671:29:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 9645, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9638, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9538, + "src": "42730:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9644, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9641, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9639, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9538, + "src": "42735:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 9640, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9535, + "src": "42739:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "42735:5:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 9642, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "42734:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 9643, + "name": "FIXED_1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6237, + "src": "42744:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "42734:17:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "42730:21:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9646, + "nodeType": "ExpressionStatement", + "src": "42730:21:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 9651, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9647, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9531, + "src": "42755:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9650, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9648, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9538, + "src": "42762:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "hexValue": "307830303030333665306636333962383030", + "id": 9649, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "42766:18:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_60339831552000_by_1", + "typeString": "int_const 60339831552000" + }, + "value": "0x000036e0f639b800" + }, + "src": "42762:22:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "42755:29:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9652, + "nodeType": "ExpressionStatement", + "src": "42755:29:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 9660, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9653, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9538, + "src": "42814:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9659, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9656, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9654, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9538, + "src": "42819:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 9655, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9535, + "src": "42823:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "42819:5:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 9657, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "42818:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 9658, + "name": "FIXED_1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6237, + "src": "42828:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "42818:17:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "42814:21:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9661, + "nodeType": "ExpressionStatement", + "src": "42814:21:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 9666, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9662, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9531, + "src": "42839:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9665, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9663, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9538, + "src": "42846:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "hexValue": "307830303030303631386665653966383030", + "id": 9664, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "42850:18:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_6704425728000_by_1", + "typeString": "int_const 6704425728000" + }, + "value": "0x00000618fee9f800" + }, + "src": "42846:22:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "42839:29:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9667, + "nodeType": "ExpressionStatement", + "src": "42839:29:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 9675, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9668, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9538, + "src": "42898:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9674, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9671, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9669, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9538, + "src": "42903:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 9670, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9535, + "src": "42907:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "42903:5:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 9672, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "42902:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 9673, + "name": "FIXED_1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6237, + "src": "42912:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "42902:17:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "42898:21:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9676, + "nodeType": "ExpressionStatement", + "src": "42898:21:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 9681, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9677, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9531, + "src": "42923:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9680, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9678, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9538, + "src": "42930:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "hexValue": "307830303030303039633139376463633030", + "id": 9679, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "42934:18:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_670442572800_by_1", + "typeString": "int_const 670442572800" + }, + "value": "0x0000009c197dcc00" + }, + "src": "42930:22:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "42923:29:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9682, + "nodeType": "ExpressionStatement", + "src": "42923:29:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 9690, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9683, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9538, + "src": "42982:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9689, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9686, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9684, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9538, + "src": "42987:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 9685, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9535, + "src": "42991:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "42987:5:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 9687, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "42986:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 9688, + "name": "FIXED_1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6237, + "src": "42996:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "42986:17:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "42982:21:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9691, + "nodeType": "ExpressionStatement", + "src": "42982:21:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 9696, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9692, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9531, + "src": "43007:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9695, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9693, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9538, + "src": "43014:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "hexValue": "307830303030303030653330646365343030", + "id": 9694, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "43018:18:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_60949324800_by_1", + "typeString": "int_const 60949324800" + }, + "value": "0x0000000e30dce400" + }, + "src": "43014:22:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "43007:29:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9697, + "nodeType": "ExpressionStatement", + "src": "43007:29:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 9705, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9698, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9538, + "src": "43066:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9704, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9701, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9699, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9538, + "src": "43071:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 9700, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9535, + "src": "43075:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "43071:5:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 9702, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "43070:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 9703, + "name": "FIXED_1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6237, + "src": "43080:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "43070:17:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "43066:21:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9706, + "nodeType": "ExpressionStatement", + "src": "43066:21:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 9711, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9707, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9531, + "src": "43091:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9710, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9708, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9538, + "src": "43098:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "hexValue": "307830303030303030313265626431333030", + "id": 9709, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "43102:18:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_5079110400_by_1", + "typeString": "int_const 5079110400" + }, + "value": "0x000000012ebd1300" + }, + "src": "43098:22:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "43091:29:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9712, + "nodeType": "ExpressionStatement", + "src": "43091:29:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 9720, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9713, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9538, + "src": "43150:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9719, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9716, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9714, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9538, + "src": "43155:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 9715, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9535, + "src": "43159:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "43155:5:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 9717, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "43154:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 9718, + "name": "FIXED_1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6237, + "src": "43164:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "43154:17:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "43150:21:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9721, + "nodeType": "ExpressionStatement", + "src": "43150:21:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 9726, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9722, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9531, + "src": "43175:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9725, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9723, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9538, + "src": "43182:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "hexValue": "307830303030303030303137343939663030", + "id": 9724, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "43186:18:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_390700800_by_1", + "typeString": "int_const 390700800" + }, + "value": "0x0000000017499f00" + }, + "src": "43182:22:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "43175:29:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9727, + "nodeType": "ExpressionStatement", + "src": "43175:29:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 9735, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9728, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9538, + "src": "43234:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9734, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9731, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9729, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9538, + "src": "43239:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 9730, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9535, + "src": "43243:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "43239:5:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 9732, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "43238:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 9733, + "name": "FIXED_1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6237, + "src": "43248:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "43238:17:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "43234:21:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9736, + "nodeType": "ExpressionStatement", + "src": "43234:21:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 9741, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9737, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9531, + "src": "43259:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9740, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9738, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9538, + "src": "43266:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "hexValue": "307830303030303030303031613964343830", + "id": 9739, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "43270:18:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_27907200_by_1", + "typeString": "int_const 27907200" + }, + "value": "0x0000000001a9d480" + }, + "src": "43266:22:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "43259:29:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9742, + "nodeType": "ExpressionStatement", + "src": "43259:29:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 9750, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9743, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9538, + "src": "43318:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9749, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9746, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9744, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9538, + "src": "43323:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 9745, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9535, + "src": "43327:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "43323:5:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 9747, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "43322:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 9748, + "name": "FIXED_1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6237, + "src": "43332:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "43322:17:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "43318:21:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9751, + "nodeType": "ExpressionStatement", + "src": "43318:21:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 9756, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9752, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9531, + "src": "43343:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9755, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9753, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9538, + "src": "43350:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "hexValue": "307830303030303030303030316336333830", + "id": 9754, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "43354:18:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1860480_by_1", + "typeString": "int_const 1860480" + }, + "value": "0x00000000001c6380" + }, + "src": "43350:22:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "43343:29:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9757, + "nodeType": "ExpressionStatement", + "src": "43343:29:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 9765, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9758, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9538, + "src": "43402:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9764, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9761, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9759, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9538, + "src": "43407:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 9760, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9535, + "src": "43411:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "43407:5:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 9762, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "43406:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 9763, + "name": "FIXED_1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6237, + "src": "43416:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "43406:17:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "43402:21:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9766, + "nodeType": "ExpressionStatement", + "src": "43402:21:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 9771, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9767, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9531, + "src": "43427:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9770, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9768, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9538, + "src": "43434:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "hexValue": "307830303030303030303030303163363338", + "id": 9769, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "43438:18:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_116280_by_1", + "typeString": "int_const 116280" + }, + "value": "0x000000000001c638" + }, + "src": "43434:22:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "43427:29:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9772, + "nodeType": "ExpressionStatement", + "src": "43427:29:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 9780, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9773, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9538, + "src": "43486:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9779, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9776, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9774, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9538, + "src": "43491:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 9775, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9535, + "src": "43495:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "43491:5:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 9777, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "43490:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 9778, + "name": "FIXED_1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6237, + "src": "43500:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "43490:17:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "43486:21:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9781, + "nodeType": "ExpressionStatement", + "src": "43486:21:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 9786, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9782, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9531, + "src": "43511:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9785, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9783, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9538, + "src": "43518:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "hexValue": "307830303030303030303030303031616238", + "id": 9784, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "43522:18:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_6840_by_1", + "typeString": "int_const 6840" + }, + "value": "0x0000000000001ab8" + }, + "src": "43518:22:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "43511:29:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9787, + "nodeType": "ExpressionStatement", + "src": "43511:29:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 9795, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9788, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9538, + "src": "43570:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9794, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9791, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9789, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9538, + "src": "43575:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 9790, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9535, + "src": "43579:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "43575:5:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 9792, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "43574:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 9793, + "name": "FIXED_1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6237, + "src": "43584:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "43574:17:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "43570:21:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9796, + "nodeType": "ExpressionStatement", + "src": "43570:21:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 9801, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9797, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9531, + "src": "43595:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9800, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9798, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9538, + "src": "43602:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "hexValue": "307830303030303030303030303030313763", + "id": 9799, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "43606:18:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_380_by_1", + "typeString": "int_const 380" + }, + "value": "0x000000000000017c" + }, + "src": "43602:22:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "43595:29:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9802, + "nodeType": "ExpressionStatement", + "src": "43595:29:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 9810, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9803, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9538, + "src": "43654:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9809, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9806, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9804, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9538, + "src": "43659:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 9805, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9535, + "src": "43663:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "43659:5:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 9807, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "43658:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 9808, + "name": "FIXED_1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6237, + "src": "43668:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "43658:17:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "43654:21:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9811, + "nodeType": "ExpressionStatement", + "src": "43654:21:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 9816, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9812, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9531, + "src": "43679:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9815, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9813, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9538, + "src": "43686:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "hexValue": "307830303030303030303030303030303134", + "id": 9814, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "43690:18:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_20_by_1", + "typeString": "int_const 20" + }, + "value": "0x0000000000000014" + }, + "src": "43686:22:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "43679:29:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9817, + "nodeType": "ExpressionStatement", + "src": "43679:29:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 9825, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9818, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9538, + "src": "43738:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9824, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9821, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9819, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9538, + "src": "43743:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 9820, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9535, + "src": "43747:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "43743:5:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 9822, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "43742:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 9823, + "name": "FIXED_1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6237, + "src": "43752:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "43742:17:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "43738:21:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9826, + "nodeType": "ExpressionStatement", + "src": "43738:21:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 9831, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9827, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9531, + "src": "43763:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9830, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9828, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9538, + "src": "43770:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "hexValue": "307830303030303030303030303030303031", + "id": 9829, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "43774:18:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "0x0000000000000001" + }, + "src": "43770:22:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "43763:29:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9832, + "nodeType": "ExpressionStatement", + "src": "43763:29:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 9841, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9833, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9531, + "src": "43822:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9840, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9838, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9836, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9834, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9531, + "src": "43828:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "hexValue": "307832316333363737633832623430303030", + "id": 9835, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "43834:18:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2432902008176640000_by_1", + "typeString": "int_const 2432902008176640000" + }, + "value": "0x21c3677c82b40000" + }, + "src": "43828:24:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "id": 9837, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9535, + "src": "43855:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "43828:28:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "id": 9839, + "name": "FIXED_1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6237, + "src": "43859:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "43828:38:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "43822:44:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9842, + "nodeType": "ExpressionStatement", + "src": "43822:44:10" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9848, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9845, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9843, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9525, + "src": "43926:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "&", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3078303130303030303030303030303030303030303030303030303030303030303030", + "id": 9844, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "43930:35:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_21267647932558653966460912964485513216_by_1", + "typeString": "int_const 2126...(30 digits omitted)...3216" + }, + "value": "0x010000000000000000000000000000000" + }, + "src": "43926:39:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 9846, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "43925:41:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 9847, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "43970:1:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "43925:46:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 9858, + "nodeType": "IfStatement", + "src": "43921:139:10", + "trueBody": { + "expression": { + "argumentTypes": null, + "id": 9856, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9849, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9531, + "src": "43973:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9855, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9852, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9850, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9531, + "src": "43980:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3078316333643661323465643832323138373837643632346433653565626139356639", + "id": 9851, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "43986:35:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_600596269623765960634066700837880239609_by_1", + "typeString": "int_const 6005...(31 digits omitted)...9609" + }, + "value": "0x1c3d6a24ed82218787d624d3e5eba95f9" + }, + "src": "43980:41:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 9853, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "43979:43:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3078313865626566396561633832306165383638326239373933616336643165373736", + "id": 9854, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "44025:35:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_530024347646835984032474664511850276726_by_1", + "typeString": "int_const 5300...(31 digits omitted)...6726" + }, + "value": "0x18ebef9eac820ae8682b9793ac6d1e776" + }, + "src": "43979:81:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "43973:87:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9857, + "nodeType": "ExpressionStatement", + "src": "43973:87:10" + } + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9864, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9861, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9859, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9525, + "src": "44093:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "&", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3078303230303030303030303030303030303030303030303030303030303030303030", + "id": 9860, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "44097:35:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_42535295865117307932921825928971026432_by_1", + "typeString": "int_const 4253...(30 digits omitted)...6432" + }, + "value": "0x020000000000000000000000000000000" + }, + "src": "44093:39:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 9862, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "44092:41:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 9863, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "44137:1:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "44092:46:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 9874, + "nodeType": "IfStatement", + "src": "44088:139:10", + "trueBody": { + "expression": { + "argumentTypes": null, + "id": 9872, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9865, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9531, + "src": "44140:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9871, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9868, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9866, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9531, + "src": "44147:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3078313865626566396561633832306165383638326239373933616336643165373738", + "id": 9867, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "44153:35:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_530024347646835984032474664511850276728_by_1", + "typeString": "int_const 5300...(31 digits omitted)...6728" + }, + "value": "0x18ebef9eac820ae8682b9793ac6d1e778" + }, + "src": "44147:41:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 9869, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "44146:43:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3078313336386232666336663936303966653761636562343661613631396261656434", + "id": 9870, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "44192:35:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_412783376994266390547521411024565284564_by_1", + "typeString": "int_const 4127...(31 digits omitted)...4564" + }, + "value": "0x1368b2fc6f9609fe7aceb46aa619baed4" + }, + "src": "44146:81:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "44140:87:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9873, + "nodeType": "ExpressionStatement", + "src": "44140:87:10" + } + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9880, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9877, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9875, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9525, + "src": "44260:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "&", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3078303430303030303030303030303030303030303030303030303030303030303030", + "id": 9876, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "44264:35:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_85070591730234615865843651857942052864_by_1", + "typeString": "int_const 8507...(30 digits omitted)...2864" + }, + "value": "0x040000000000000000000000000000000" + }, + "src": "44260:39:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 9878, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "44259:41:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 9879, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "44304:1:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "44259:46:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 9890, + "nodeType": "IfStatement", + "src": "44255:139:10", + "trueBody": { + "expression": { + "argumentTypes": null, + "id": 9888, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9881, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9531, + "src": "44307:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9887, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9884, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9882, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9531, + "src": "44314:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3078313336386232666336663936303966653761636562343661613631396261656435", + "id": 9883, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "44320:35:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_412783376994266390547521411024565284565_by_1", + "typeString": "int_const 4127...(31 digits omitted)...4565" + }, + "value": "0x1368b2fc6f9609fe7aceb46aa619baed5" + }, + "src": "44314:41:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 9885, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "44313:43:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3078306263356162316231363737396265333537356264386630353230613966323166", + "id": 9886, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "44359:35:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_250365773966741064234501452596301656607_by_1", + "typeString": "int_const 2503...(31 digits omitted)...6607" + }, + "value": "0x0bc5ab1b16779be3575bd8f0520a9f21f" + }, + "src": "44313:81:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "44307:87:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9889, + "nodeType": "ExpressionStatement", + "src": "44307:87:10" + } + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9896, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9893, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9891, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9525, + "src": "44427:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "&", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3078303830303030303030303030303030303030303030303030303030303030303030", + "id": 9892, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "44431:35:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_170141183460469231731687303715884105728_by_1", + "typeString": "int_const 1701...(31 digits omitted)...5728" + }, + "value": "0x080000000000000000000000000000000" + }, + "src": "44427:39:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 9894, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "44426:41:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 9895, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "44471:1:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "44426:46:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 9906, + "nodeType": "IfStatement", + "src": "44422:139:10", + "trueBody": { + "expression": { + "argumentTypes": null, + "id": 9904, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9897, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9531, + "src": "44474:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9903, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9900, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9898, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9531, + "src": "44481:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3078306263356162316231363737396265333537356264386630353230613966323165", + "id": 9899, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "44487:35:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_250365773966741064234501452596301656606_by_1", + "typeString": "int_const 2503...(31 digits omitted)...6606" + }, + "value": "0x0bc5ab1b16779be3575bd8f0520a9f21e" + }, + "src": "44481:41:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 9901, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "44480:43:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3078303435346161613865666530373265376636646462616238346234306135356339", + "id": 9902, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "44526:35:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_92104421015340344839251721785254237641_by_1", + "typeString": "int_const 9210...(30 digits omitted)...7641" + }, + "value": "0x0454aaa8efe072e7f6ddbab84b40a55c9" + }, + "src": "44480:81:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "44474:87:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9905, + "nodeType": "ExpressionStatement", + "src": "44474:87:10" + } + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9912, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9909, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9907, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9525, + "src": "44594:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "&", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3078313030303030303030303030303030303030303030303030303030303030303030", + "id": 9908, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "44598:35:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_340282366920938463463374607431768211456_by_1", + "typeString": "int_const 3402...(31 digits omitted)...1456" + }, + "value": "0x100000000000000000000000000000000" + }, + "src": "44594:39:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 9910, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "44593:41:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 9911, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "44638:1:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "44593:46:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 9922, + "nodeType": "IfStatement", + "src": "44589:139:10", + "trueBody": { + "expression": { + "argumentTypes": null, + "id": 9920, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9913, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9531, + "src": "44641:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9919, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9916, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9914, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9531, + "src": "44648:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3078303435346161613865666530373265376636646462616238346234306135356335", + "id": 9915, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "44654:35:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_92104421015340344839251721785254237637_by_1", + "typeString": "int_const 9210...(30 digits omitted)...7637" + }, + "value": "0x0454aaa8efe072e7f6ddbab84b40a55c5" + }, + "src": "44648:41:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 9917, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "44647:43:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3078303039363061616463313039653761336266343537383039393631353731316561", + "id": 9918, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "44693:35:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_12464977905455307901915658421775307242_by_1", + "typeString": "int_const 1246...(30 digits omitted)...7242" + }, + "value": "0x00960aadc109e7a3bf4578099615711ea" + }, + "src": "44647:81:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "44641:87:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9921, + "nodeType": "ExpressionStatement", + "src": "44641:87:10" + } + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9928, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9925, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9923, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9525, + "src": "44761:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "&", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3078323030303030303030303030303030303030303030303030303030303030303030", + "id": 9924, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "44765:35:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_680564733841876926926749214863536422912_by_1", + "typeString": "int_const 6805...(31 digits omitted)...2912" + }, + "value": "0x200000000000000000000000000000000" + }, + "src": "44761:39:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 9926, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "44760:41:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 9927, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "44805:1:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "44760:46:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 9938, + "nodeType": "IfStatement", + "src": "44756:139:10", + "trueBody": { + "expression": { + "argumentTypes": null, + "id": 9936, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9929, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9531, + "src": "44808:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9935, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9932, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9930, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9531, + "src": "44815:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3078303039363061616463313039653761336266343537383039393631353731316437", + "id": 9931, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "44821:35:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_12464977905455307901915658421775307223_by_1", + "typeString": "int_const 1246...(30 digits omitted)...7223" + }, + "value": "0x00960aadc109e7a3bf4578099615711d7" + }, + "src": "44815:41:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 9933, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "44814:43:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3078303030326266383432303832303466353937376639613863663031666463653364", + "id": 9934, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "44860:35:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_228304034072369565894155946646425149_by_1", + "typeString": "int_const 2283...(28 digits omitted)...5149" + }, + "value": "0x0002bf84208204f5977f9a8cf01fdce3d" + }, + "src": "44814:81:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "44808:87:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9937, + "nodeType": "ExpressionStatement", + "src": "44808:87:10" + } + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9944, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9941, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9939, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9525, + "src": "44928:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "&", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3078343030303030303030303030303030303030303030303030303030303030303030", + "id": 9940, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "44932:35:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1361129467683753853853498429727072845824_by_1", + "typeString": "int_const 1361...(32 digits omitted)...5824" + }, + "value": "0x400000000000000000000000000000000" + }, + "src": "44928:39:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 9942, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "44927:41:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 9943, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "44972:1:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "44927:46:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 9954, + "nodeType": "IfStatement", + "src": "44923:139:10", + "trueBody": { + "expression": { + "argumentTypes": null, + "id": 9952, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9945, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9531, + "src": "44975:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9951, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9948, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9946, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9531, + "src": "44982:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3078303030326266383432303832303466353937376639613863663031666463333037", + "id": 9947, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "44988:35:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_228304034072369565894155946646422279_by_1", + "typeString": "int_const 2283...(28 digits omitted)...2279" + }, + "value": "0x0002bf84208204f5977f9a8cf01fdc307" + }, + "src": "44982:41:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 9949, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "44981:43:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3078303030303030336336616237373564643062393562346362656537653635643131", + "id": 9950, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "45027:35:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_76587471230661696290698490699025_by_1", + "typeString": "int_const 76587471230661696290698490699025" + }, + "value": "0x0000003c6ab775dd0b95b4cbee7e65d11" + }, + "src": "44981:81:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "44975:87:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9953, + "nodeType": "ExpressionStatement", + "src": "44975:87:10" + } + }, + { + "expression": { + "argumentTypes": null, + "id": 9955, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9531, + "src": "45098:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 9529, + "id": 9956, + "nodeType": "Return", + "src": "45091:10:10" + } + ] + }, + "documentation": "@dev computes e ^ (x / FIXED_1) * FIXED_1\ninput range: 0 <= x <= OPT_EXP_MAX_VAL - 1\nauto-generated via 'PrintFunctionOptimalExp.py'\nDetailed description:\n- Rewrite the input as a sum of binary exponents and a single residual r, as small as possible\n- The exponentiation of each binary exponent is given (pre-calculated)\n- The exponentiation of r is calculated via Taylor series for e^x, where x = r\n- The exponentiation of the input is calculated by multiplying the intermediate results above\n- For example: e^5.521692859 = e^(4 + 1 + 0.5 + 0.021692859) = e^4 * e^1 * e^0.5 * e^0.021692859", + "id": 9958, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "optimalExp", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9526, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9525, + "name": "x", + "nodeType": "VariableDeclaration", + "scope": 9958, + "src": "42051:9:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9524, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "42051:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "42050:11:10" + }, + "payable": false, + "returnParameters": { + "id": 9529, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9528, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9958, + "src": "42085:7:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9527, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "42085:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "42084:9:10" + }, + "scope": 11642, + "src": "42031:3074:10", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 9993, + "nodeType": "Block", + "src": "45241:193:10", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9967, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9965, + "name": "_x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9960, + "src": "45249:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "id": 9966, + "name": "LAMBERT_CONV_RADIUS", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6258, + "src": "45255:19:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "45249:25:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 9972, + "nodeType": "IfStatement", + "src": "45245:53:10", + "trueBody": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9969, + "name": "_x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9960, + "src": "45295:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 9968, + "name": "lambertPos1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10522, + "src": "45283:11:10", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 9970, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "45283:15:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 9964, + "id": 9971, + "nodeType": "Return", + "src": "45276:22:10" + } + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9975, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9973, + "name": "_x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9960, + "src": "45306:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "id": 9974, + "name": "LAMBERT_POS2_MAXVAL", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6264, + "src": "45312:19:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "45306:25:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 9980, + "nodeType": "IfStatement", + "src": "45302:53:10", + "trueBody": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9977, + "name": "_x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9960, + "src": "45352:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 9976, + "name": "lambertPos2", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10590, + "src": "45340:11:10", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) view returns (uint256)" + } + }, + "id": 9978, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "45340:15:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 9964, + "id": 9979, + "nodeType": "Return", + "src": "45333:22:10" + } + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9983, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9981, + "name": "_x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9960, + "src": "45363:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "id": 9982, + "name": "LAMBERT_POS3_MAXVAL", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6267, + "src": "45369:19:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "45363:25:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 9988, + "nodeType": "IfStatement", + "src": "45359:53:10", + "trueBody": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9985, + "name": "_x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9960, + "src": "45409:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 9984, + "name": "lambertPos3", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10641, + "src": "45397:11:10", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 9986, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "45397:15:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 9964, + "id": 9987, + "nodeType": "Return", + "src": "45390:22:10" + } + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 9990, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "45424:5:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 9989, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 22341, + 22342 + ], + "referencedDeclaration": 22341, + "src": "45416:7:10", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 9991, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "45416:14:10", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9992, + "nodeType": "ExpressionStatement", + "src": "45416:14:10" + } + ] + }, + "documentation": "@dev computes W(x / FIXED_1) / (x / FIXED_1) * FIXED_1", + "id": 9994, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "lowerStake", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9961, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9960, + "name": "_x", + "nodeType": "VariableDeclaration", + "scope": 9994, + "src": "45197:10:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9959, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "45197:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "45196:12:10" + }, + "payable": false, + "returnParameters": { + "id": 9964, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9963, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9994, + "src": "45232:7:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9962, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "45232:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "45231:9:10" + }, + "scope": 11642, + "src": "45177:257:10", + "stateMutability": "view", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 10016, + "nodeType": "Block", + "src": "45573:96:10", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10003, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10001, + "name": "_x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9996, + "src": "45581:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "id": 10002, + "name": "LAMBERT_CONV_RADIUS", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6258, + "src": "45587:19:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "45581:25:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 10008, + "nodeType": "IfStatement", + "src": "45577:53:10", + "trueBody": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10005, + "name": "_x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9996, + "src": "45627:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10004, + "name": "lambertNeg1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11145, + "src": "45615:11:10", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 10006, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "45615:15:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 10000, + "id": 10007, + "nodeType": "Return", + "src": "45608:22:10" + } + }, + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10014, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10011, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10009, + "name": "FIXED_1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6237, + "src": "45642:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 10010, + "name": "FIXED_1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6237, + "src": "45652:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "45642:17:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 10012, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "45641:19:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 10013, + "name": "_x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9996, + "src": "45663:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "45641:24:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 10000, + "id": 10015, + "nodeType": "Return", + "src": "45634:31:10" + } + ] + }, + "documentation": "@dev computes W(-x / FIXED_1) / (-x / FIXED_1) * FIXED_1", + "id": 10017, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "higherStake", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9997, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9996, + "name": "_x", + "nodeType": "VariableDeclaration", + "scope": 10017, + "src": "45529:10:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9995, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "45529:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "45528:12:10" + }, + "payable": false, + "returnParameters": { + "id": 10000, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9999, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 10017, + "src": "45564:7:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9998, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "45564:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "45563:9:10" + }, + "scope": 11642, + "src": "45508:161:10", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 10521, + "nodeType": "Block", + "src": "45902:4389:10", + "statements": [ + { + "assignments": [ + 10025 + ], + "declarations": [ + { + "constant": false, + "id": 10025, + "name": "xi", + "nodeType": "VariableDeclaration", + "scope": 10522, + "src": "45906:10:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10024, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "45906:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 10027, + "initialValue": { + "argumentTypes": null, + "id": 10026, + "name": "_x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10019, + "src": "45919:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "45906:15:10" + }, + { + "assignments": [ + 10029 + ], + "declarations": [ + { + "constant": false, + "id": 10029, + "name": "res", + "nodeType": "VariableDeclaration", + "scope": 10522, + "src": "45925:11:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10028, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "45925:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 10036, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10035, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10032, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10030, + "name": "FIXED_1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6237, + "src": "45940:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 10031, + "name": "_x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10019, + "src": "45950:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "45940:12:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 10033, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "45939:14:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30786465316263346431396566636163383234343564613735623030303030303030", + "id": 10034, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "45956:34:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_295232799039604140847618609643520000000_by_1", + "typeString": "int_const 2952...(31 digits omitted)...0000" + }, + "value": "0xde1bc4d19efcac82445da75b00000000" + }, + "src": "45939:51:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "45925:65:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 10044, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10037, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10025, + "src": "46062:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10043, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10040, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10038, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10025, + "src": "46068:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 10039, + "name": "_x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10019, + "src": "46073:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "46068:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 10041, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "46067:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 10042, + "name": "FIXED_1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6237, + "src": "46079:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "46067:19:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "46062:24:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10045, + "nodeType": "ExpressionStatement", + "src": "46062:24:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 10050, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10046, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10029, + "src": "46090:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10049, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10047, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10025, + "src": "46097:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3078303030303030303030313464323961373361366537623032633336363863376230383830303030303030", + "id": 10048, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "46102:44:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_442849198559406211271427914465280000000_by_1", + "typeString": "int_const 4428...(31 digits omitted)...0000" + }, + "value": "0x00000000014d29a73a6e7b02c3668c7b0880000000" + }, + "src": "46097:49:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "46090:56:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10051, + "nodeType": "ExpressionStatement", + "src": "46090:56:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 10059, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10052, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10025, + "src": "46192:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10058, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10055, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10053, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10025, + "src": "46198:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 10054, + "name": "_x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10019, + "src": "46203:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "46198:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 10056, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "46197:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 10057, + "name": "FIXED_1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6237, + "src": "46209:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "46197:19:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "46192:24:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10060, + "nodeType": "ExpressionStatement", + "src": "46192:24:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 10065, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10061, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10029, + "src": "46220:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "-=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10064, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10062, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10025, + "src": "46227:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3078303030303030303030323530346130636439613766373231356236306639626534383030303030303030", + "id": 10063, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "46232:44:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_787287464105611042260316292382720000000_by_1", + "typeString": "int_const 7872...(31 digits omitted)...0000" + }, + "value": "0x0000000002504a0cd9a7f7215b60f9be4800000000" + }, + "src": "46227:49:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "46220:56:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10066, + "nodeType": "ExpressionStatement", + "src": "46220:56:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 10074, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10067, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10025, + "src": "46322:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10073, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10070, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10068, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10025, + "src": "46328:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 10069, + "name": "_x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10019, + "src": "46333:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "46328:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 10071, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "46327:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 10072, + "name": "FIXED_1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6237, + "src": "46339:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "46327:19:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "46322:24:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10075, + "nodeType": "ExpressionStatement", + "src": "46322:24:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 10080, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10076, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10029, + "src": "46350:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10079, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10077, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10025, + "src": "46357:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3078303030303030303030343834643061313139316330656164323637393637633761346130303030303030", + "id": 10078, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "46362:44:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1537670828331271566914680258560000000000_by_1", + "typeString": "int_const 1537...(32 digits omitted)...0000" + }, + "value": "0x000000000484d0a1191c0ead267967c7a4a0000000" + }, + "src": "46357:49:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "46350:56:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10081, + "nodeType": "ExpressionStatement", + "src": "46350:56:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 10089, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10082, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10025, + "src": "46452:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10088, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10085, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10083, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10025, + "src": "46458:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 10084, + "name": "_x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10019, + "src": "46463:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "46458:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 10086, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "46457:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 10087, + "name": "FIXED_1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6237, + "src": "46469:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "46457:19:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "46452:24:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10090, + "nodeType": "ExpressionStatement", + "src": "46452:24:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 10095, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10091, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10029, + "src": "46480:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "-=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10094, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10092, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10025, + "src": "46487:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3078303030303030303030393565633538306437653834323761346261663236613930613030303030303030", + "id": 10093, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "46492:44:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_3188514229627724721154280984150016000000_by_1", + "typeString": "int_const 3188...(32 digits omitted)...0000" + }, + "value": "0x00000000095ec580d7e8427a4baf26a90a00000000" + }, + "src": "46487:49:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "46480:56:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10096, + "nodeType": "ExpressionStatement", + "src": "46480:56:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 10104, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10097, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10025, + "src": "46582:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10103, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10100, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10098, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10025, + "src": "46588:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 10099, + "name": "_x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10019, + "src": "46593:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "46588:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 10101, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "46587:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 10102, + "name": "FIXED_1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6237, + "src": "46599:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "46587:19:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "46582:24:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10105, + "nodeType": "ExpressionStatement", + "src": "46582:24:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 10110, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10106, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10029, + "src": "46610:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10109, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10107, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10025, + "src": "46617:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3078303030303030303031343430623062653136313561343764626136653562336231663130303030303030", + "id": 10108, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "46622:44:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_6891635629803648326702674961498112000000_by_1", + "typeString": "int_const 6891...(32 digits omitted)...0000" + }, + "value": "0x000000001440b0be1615a47dba6e5b3b1f10000000" + }, + "src": "46617:49:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "46610:56:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10111, + "nodeType": "ExpressionStatement", + "src": "46610:56:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 10119, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10112, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10025, + "src": "46712:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10118, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10115, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10113, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10025, + "src": "46718:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 10114, + "name": "_x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10019, + "src": "46723:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "46718:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 10116, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "46717:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 10117, + "name": "FIXED_1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6237, + "src": "46729:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "46717:19:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "46712:24:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10120, + "nodeType": "ExpressionStatement", + "src": "46712:24:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 10125, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10121, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10029, + "src": "46740:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "-=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10124, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10122, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10025, + "src": "46747:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3078303030303030303032643230373630316634366139396234313132343138343030303030303030303030", + "id": 10123, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "46752:44:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_15355854537983727757610740636188672000000_by_1", + "typeString": "int_const 1535...(33 digits omitted)...0000" + }, + "value": "0x000000002d207601f46a99b4112418400000000000" + }, + "src": "46747:49:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "46740:56:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10126, + "nodeType": "ExpressionStatement", + "src": "46740:56:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 10134, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10127, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10025, + "src": "46842:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10133, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10130, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10128, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10025, + "src": "46848:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 10129, + "name": "_x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10019, + "src": "46853:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "46848:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 10131, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "46847:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 10132, + "name": "FIXED_1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6237, + "src": "46859:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "46847:19:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "46842:24:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10135, + "nodeType": "ExpressionStatement", + "src": "46842:24:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 10140, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10136, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10029, + "src": "46870:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10139, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10137, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10025, + "src": "46877:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3078303030303030303036366562616163346333376336323264643832383861376562316232303030303030", + "id": 10138, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "46882:44:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_35022056686251398262544482483830784000000_by_1", + "typeString": "int_const 3502...(33 digits omitted)...0000" + }, + "value": "0x0000000066ebaac4c37c622dd8288a7eb1b2000000" + }, + "src": "46877:49:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "46870:56:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10141, + "nodeType": "ExpressionStatement", + "src": "46870:56:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 10149, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10142, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10025, + "src": "46972:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10148, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10145, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10143, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10025, + "src": "46978:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 10144, + "name": "_x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10019, + "src": "46983:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "46978:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 10146, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "46977:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 10147, + "name": "FIXED_1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6237, + "src": "46989:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "46977:19:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "46972:24:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10150, + "nodeType": "ExpressionStatement", + "src": "46972:24:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 10155, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10151, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10029, + "src": "47000:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "-=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10154, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10152, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10025, + "src": "47007:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3078303030303030303065663137323430313335663764626434336131626131306366323030303030303030", + "id": 10153, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "47012:44:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_81358244885252463857919590400000000000000_by_1", + "typeString": "int_const 8135...(33 digits omitted)...0000" + }, + "value": "0x00000000ef17240135f7dbd43a1ba10cf200000000" + }, + "src": "47007:49:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "47000:56:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10156, + "nodeType": "ExpressionStatement", + "src": "47000:56:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 10164, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10157, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10025, + "src": "47102:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10163, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10160, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10158, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10025, + "src": "47108:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 10159, + "name": "_x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10019, + "src": "47113:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "47108:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 10161, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "47107:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 10162, + "name": "FIXED_1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6237, + "src": "47119:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "47107:19:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "47102:24:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10165, + "nodeType": "ExpressionStatement", + "src": "47102:24:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 10170, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10166, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10029, + "src": "47130:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10169, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10167, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10025, + "src": "47137:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3078303030303030303233336333336336373661356562323431363039346138376233363537303030303030", + "id": 10168, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "47142:44:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_191838485670993607105842450247345766400000_by_1", + "typeString": "int_const 1918...(34 digits omitted)...0000" + }, + "value": "0x0000000233c33c676a5eb2416094a87b3657000000" + }, + "src": "47137:49:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "47130:56:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10171, + "nodeType": "ExpressionStatement", + "src": "47130:56:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 10179, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10172, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10025, + "src": "47232:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10178, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10175, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10173, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10025, + "src": "47238:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 10174, + "name": "_x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10019, + "src": "47243:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "47238:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 10176, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "47237:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 10177, + "name": "FIXED_1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6237, + "src": "47249:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "47237:19:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "47232:24:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10180, + "nodeType": "ExpressionStatement", + "src": "47232:24:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 10185, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10181, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10029, + "src": "47260:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "-=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10184, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10182, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10025, + "src": "47267:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3078303030303030303534316364653438626330323534626564343961396638373030303030303030303030", + "id": 10183, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "47272:44:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_457953461925960171898563951427426713600000_by_1", + "typeString": "int_const 4579...(34 digits omitted)...0000" + }, + "value": "0x0000000541cde48bc0254bed49a9f8700000000000" + }, + "src": "47267:49:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "47260:56:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10186, + "nodeType": "ExpressionStatement", + "src": "47260:56:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 10194, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10187, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10025, + "src": "47362:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10193, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10190, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10188, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10025, + "src": "47368:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 10189, + "name": "_x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10019, + "src": "47373:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "47368:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 10191, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "47367:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 10192, + "name": "FIXED_1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6237, + "src": "47379:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "47367:19:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "47362:24:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10195, + "nodeType": "ExpressionStatement", + "src": "47362:24:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 10200, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10196, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10029, + "src": "47390:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10199, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10197, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10025, + "src": "47397:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3078303030303030306361653166616432636464346434636238643733616263613064313961343030303030", + "id": 10198, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "47402:44:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1104598668270551480892683896320648806400000_by_1", + "typeString": "int_const 1104...(35 digits omitted)...0000" + }, + "value": "0x0000000cae1fad2cdd4d4cb8d73abca0d19a400000" + }, + "src": "47397:49:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "47390:56:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10201, + "nodeType": "ExpressionStatement", + "src": "47390:56:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 10209, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10202, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10025, + "src": "47492:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10208, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10205, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10203, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10025, + "src": "47498:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 10204, + "name": "_x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10019, + "src": "47503:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "47498:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 10206, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "47497:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 10207, + "name": "FIXED_1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6237, + "src": "47509:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "47497:19:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "47492:24:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10210, + "nodeType": "ExpressionStatement", + "src": "47492:24:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 10215, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10211, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10029, + "src": "47520:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "-=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10214, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10212, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10025, + "src": "47527:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3078303030303030316564623261613266373630643135633431636565646261393536343030303030303030", + "id": 10213, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "47532:44:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2687947090053832841608264823563773542400000_by_1", + "typeString": "int_const 2687...(35 digits omitted)...0000" + }, + "value": "0x0000001edb2aa2f760d15c41ceedba956400000000" + }, + "src": "47527:49:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "47520:56:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10216, + "nodeType": "ExpressionStatement", + "src": "47520:56:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 10224, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10217, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10025, + "src": "47622:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10223, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10220, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10218, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10025, + "src": "47628:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 10219, + "name": "_x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10019, + "src": "47633:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "47628:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 10221, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "47627:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 10222, + "name": "FIXED_1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6237, + "src": "47639:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "47627:19:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "47622:24:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10225, + "nodeType": "ExpressionStatement", + "src": "47622:24:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 10230, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10226, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10029, + "src": "47650:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10229, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10227, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10025, + "src": "47657:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3078303030303030346261386432306432646162643338366339353239363539383431613265323030303030", + "id": 10228, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "47662:44:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_6590868088830032065882824000000000000000000_by_1", + "typeString": "int_const 6590...(35 digits omitted)...0000" + }, + "value": "0x0000004ba8d20d2dabd386c9529659841a2e200000" + }, + "src": "47657:49:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "47650:56:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10231, + "nodeType": "ExpressionStatement", + "src": "47650:56:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 10239, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10232, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10025, + "src": "47752:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10238, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10235, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10233, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10025, + "src": "47758:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 10234, + "name": "_x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10019, + "src": "47763:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "47758:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 10236, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "47757:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 10237, + "name": "FIXED_1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6237, + "src": "47769:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "47757:19:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "47752:24:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10240, + "nodeType": "ExpressionStatement", + "src": "47752:24:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 10245, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10241, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10029, + "src": "47780:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "-=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10244, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10242, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10025, + "src": "47787:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3078303030303030626163303835343662383637636461613230303030303030303030303030303030303030", + "id": 10243, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "47792:44:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_16268396552280633070412438458028041175040000_by_1", + "typeString": "int_const 1626...(36 digits omitted)...0000" + }, + "value": "0x000000bac08546b867cdaa20000000000000000000" + }, + "src": "47787:49:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "47780:56:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10246, + "nodeType": "ExpressionStatement", + "src": "47780:56:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 10254, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10247, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10025, + "src": "47882:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10253, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10250, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10248, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10025, + "src": "47888:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 10249, + "name": "_x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10019, + "src": "47893:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "47888:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 10251, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "47887:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 10252, + "name": "FIXED_1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6237, + "src": "47899:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "47887:19:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "47882:24:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10255, + "nodeType": "ExpressionStatement", + "src": "47882:24:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 10260, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10256, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10029, + "src": "47910:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10259, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10257, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10025, + "src": "47917:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3078303030303031636661386537306330333632356239646237366338656266356262663234383230303030", + "id": 10258, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "47922:44:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_40390462938090940419774080664538139934720000_by_1", + "typeString": "int_const 4039...(36 digits omitted)...0000" + }, + "value": "0x000001cfa8e70c03625b9db76c8ebf5bbf24820000" + }, + "src": "47917:49:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "47910:56:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10261, + "nodeType": "ExpressionStatement", + "src": "47910:56:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 10269, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10262, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10025, + "src": "48012:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10268, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10265, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10263, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10025, + "src": "48018:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 10264, + "name": "_x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10019, + "src": "48023:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "48018:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 10266, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "48017:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 10267, + "name": "FIXED_1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6237, + "src": "48029:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "48017:19:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "48012:24:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10270, + "nodeType": "ExpressionStatement", + "src": "48012:24:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 10275, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10271, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10029, + "src": "48040:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "-=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10274, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10272, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10025, + "src": "48047:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3078303030303034383531643939663832303630646632363566333330396232366638323030303030303030", + "id": 10273, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "48052:44:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_100798987671917000666814256179934522245120000_by_1", + "typeString": "int_const 1007...(37 digits omitted)...0000" + }, + "value": "0x000004851d99f82060df265f3309b26f8200000000" + }, + "src": "48047:49:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "48040:56:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10276, + "nodeType": "ExpressionStatement", + "src": "48040:56:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 10284, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10277, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10025, + "src": "48142:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10283, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10280, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10278, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10025, + "src": "48148:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 10279, + "name": "_x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10019, + "src": "48153:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "48148:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 10281, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "48147:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 10282, + "name": "FIXED_1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6237, + "src": "48159:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "48147:19:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "48142:24:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10285, + "nodeType": "ExpressionStatement", + "src": "48142:24:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 10290, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10286, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10029, + "src": "48170:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10289, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10287, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10025, + "src": "48177:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3078303030303062353530643139623132396432373063343466366635356630323737323363626230303030", + "id": 10288, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "48182:44:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_252717199309391137912965664538441463029760000_by_1", + "typeString": "int_const 2527...(37 digits omitted)...0000" + }, + "value": "0x00000b550d19b129d270c44f6f55f027723cbb0000" + }, + "src": "48177:49:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "48170:56:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10291, + "nodeType": "ExpressionStatement", + "src": "48170:56:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 10299, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10292, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10025, + "src": "48272:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10298, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10295, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10293, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10025, + "src": "48278:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 10294, + "name": "_x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10019, + "src": "48283:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "48278:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 10296, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "48277:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 10297, + "name": "FIXED_1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6237, + "src": "48289:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "48277:19:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "48272:24:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10300, + "nodeType": "ExpressionStatement", + "src": "48272:24:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 10305, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10301, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10029, + "src": "48300:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "-=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10304, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10302, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10025, + "src": "48307:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3078303030303163383737646164633736316463323732646562363564346230303030303030303030303030", + "id": 10303, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "48312:44:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_636223790447205380259840000000000000000000000_by_1", + "typeString": "int_const 6362...(37 digits omitted)...0000" + }, + "value": "0x00001c877dadc761dc272deb65d4b0000000000000" + }, + "src": "48307:49:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "48300:56:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10306, + "nodeType": "ExpressionStatement", + "src": "48300:56:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 10314, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10307, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10025, + "src": "48402:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10313, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10310, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10308, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10025, + "src": "48408:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 10309, + "name": "_x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10019, + "src": "48413:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "48408:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 10311, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "48407:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 10312, + "name": "FIXED_1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6237, + "src": "48419:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "48407:19:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "48402:24:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10315, + "nodeType": "ExpressionStatement", + "src": "48402:24:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 10320, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10316, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10029, + "src": "48430:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10319, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10317, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10025, + "src": "48437:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3078303030303438313738656365393734373966333361373766326164323261383162363434303663303030", + "id": 10318, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "48442:44:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1607705831573194746802610334450509017233408000_by_1", + "typeString": "int_const 1607...(38 digits omitted)...8000" + }, + "value": "0x000048178ece97479f33a77f2ad22a81b64406c000" + }, + "src": "48437:49:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "48430:56:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10321, + "nodeType": "ExpressionStatement", + "src": "48430:56:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 10329, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10322, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10025, + "src": "48532:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10328, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10325, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10323, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10025, + "src": "48538:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 10324, + "name": "_x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10019, + "src": "48543:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "48538:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 10326, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "48537:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 10327, + "name": "FIXED_1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6237, + "src": "48549:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "48537:19:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "48532:24:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10330, + "nodeType": "ExpressionStatement", + "src": "48532:24:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 10335, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10331, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10029, + "src": "48560:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "-=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10334, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10332, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10025, + "src": "48567:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3078303030306236636138323638623964383130666564663636393565663266386136633030303030303030", + "id": 10333, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "48572:44:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_4076376683803157531046819273912505658769408000_by_1", + "typeString": "int_const 4076...(38 digits omitted)...8000" + }, + "value": "0x0000b6ca8268b9d810fedf6695ef2f8a6c00000000" + }, + "src": "48567:49:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "48560:56:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10336, + "nodeType": "ExpressionStatement", + "src": "48560:56:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 10344, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10337, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10025, + "src": "48662:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10343, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10340, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10338, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10025, + "src": "48668:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 10339, + "name": "_x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10019, + "src": "48673:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "48668:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 10341, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "48667:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 10342, + "name": "FIXED_1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6237, + "src": "48679:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "48667:19:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "48662:24:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10345, + "nodeType": "ExpressionStatement", + "src": "48662:24:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 10350, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10346, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10029, + "src": "48690:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10349, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10347, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10025, + "src": "48697:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3078303030316430653736363331613562303564303037623863623732613763376631316563333665303030", + "id": 10348, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "48702:44:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_10367703484962349537949059901011799777283072000_by_1", + "typeString": "int_const 1036...(39 digits omitted)...2000" + }, + "value": "0x0001d0e76631a5b05d007b8cb72a7c7f11ec36e000" + }, + "src": "48697:49:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "48690:56:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10351, + "nodeType": "ExpressionStatement", + "src": "48690:56:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 10359, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10352, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10025, + "src": "48792:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10358, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10355, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10353, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10025, + "src": "48798:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 10354, + "name": "_x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10019, + "src": "48803:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "48798:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 10356, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "48797:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 10357, + "name": "FIXED_1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6237, + "src": "48809:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "48797:19:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "48792:24:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10360, + "nodeType": "ExpressionStatement", + "src": "48792:24:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 10365, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10361, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10029, + "src": "48820:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "-=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10364, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10362, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10025, + "src": "48827:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3078303030346131633337626439663835666439633663373830303030303030303030303030303030303030", + "id": 10363, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "48832:44:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_26443412100478721735433130630260686447443968000_by_1", + "typeString": "int_const 2644...(39 digits omitted)...8000" + }, + "value": "0x0004a1c37bd9f85fd9c6c780000000000000000000" + }, + "src": "48827:49:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "48820:56:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10366, + "nodeType": "ExpressionStatement", + "src": "48820:56:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 10374, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10367, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10025, + "src": "48922:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10373, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10370, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10368, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10025, + "src": "48928:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 10369, + "name": "_x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10019, + "src": "48933:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "48928:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 10371, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "48927:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 10372, + "name": "FIXED_1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6237, + "src": "48939:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "48927:19:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "48922:24:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10375, + "nodeType": "ExpressionStatement", + "src": "48922:24:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 10380, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10376, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10029, + "src": "48950:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10379, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10377, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10025, + "src": "48957:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3078303030626438333639663162373032626634393165326562666365653038323530333133623635343030", + "id": 10378, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "48962:44:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_67620617646753089502453804016113281250000000000_by_1", + "typeString": "int_const 6762...(39 digits omitted)...0000" + }, + "value": "0x000bd8369f1b702bf491e2ebfcee08250313b65400" + }, + "src": "48957:49:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "48950:56:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10381, + "nodeType": "ExpressionStatement", + "src": "48950:56:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 10389, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10382, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10025, + "src": "49052:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10388, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10385, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10383, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10025, + "src": "49058:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 10384, + "name": "_x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10019, + "src": "49063:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "49058:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 10386, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "49057:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 10387, + "name": "FIXED_1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6237, + "src": "49069:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "49057:19:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "49052:24:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10390, + "nodeType": "ExpressionStatement", + "src": "49052:24:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 10395, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10391, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10029, + "src": "49080:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "-=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10394, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10392, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10025, + "src": "49087:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3078303031653563376333326139663663373061623263623539643932323537363464343030303030303030", + "id": 10393, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "49092:44:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_173332210846474760735500226875327576716638945280_by_1", + "typeString": "int_const 1733...(40 digits omitted)...5280" + }, + "value": "0x001e5c7c32a9f6c70ab2cb59d9225764d400000000" + }, + "src": "49087:49:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "49080:56:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10396, + "nodeType": "ExpressionStatement", + "src": "49080:56:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 10404, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10397, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10025, + "src": "49182:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10403, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10400, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10398, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10025, + "src": "49188:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 10399, + "name": "_x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10019, + "src": "49193:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "49188:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 10401, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "49187:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 10402, + "name": "FIXED_1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6237, + "src": "49199:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "49187:19:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "49182:24:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10405, + "nodeType": "ExpressionStatement", + "src": "49182:24:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 10410, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10406, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10029, + "src": "49210:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10409, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10407, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10025, + "src": "49217:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3078303034646666353832306531363565393130663935313230613730386537343234393632323165363030", + "id": 10408, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "49222:44:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_445286656448864136819345605176268818347976680960_by_1", + "typeString": "int_const 4452...(40 digits omitted)...0960" + }, + "value": "0x004dff5820e165e910f95120a708e742496221e600" + }, + "src": "49217:49:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "49210:56:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10411, + "nodeType": "ExpressionStatement", + "src": "49210:56:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 10419, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10412, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10025, + "src": "49312:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10418, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10415, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10413, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10025, + "src": "49318:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 10414, + "name": "_x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10019, + "src": "49323:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "49318:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 10416, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "49317:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 10417, + "name": "FIXED_1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6237, + "src": "49329:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "49317:19:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "49312:24:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10420, + "nodeType": "ExpressionStatement", + "src": "49312:24:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 10425, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10421, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10029, + "src": "49340:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "-=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10424, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10422, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10025, + "src": "49347:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3078303063386338663636646231666365643337386565353065353336303030303030303030303030303030", + "id": 10423, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "49352:44:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1146279770154177862273033179056478989553563074560_by_1", + "typeString": "int_const 1146...(41 digits omitted)...4560" + }, + "value": "0x00c8c8f66db1fced378ee50e536000000000000000" + }, + "src": "49347:49:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "49340:56:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10426, + "nodeType": "ExpressionStatement", + "src": "49340:56:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 10434, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10427, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10025, + "src": "49442:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10433, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10430, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10428, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10025, + "src": "49448:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 10429, + "name": "_x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10019, + "src": "49453:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "49448:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 10431, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "49447:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 10432, + "name": "FIXED_1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6237, + "src": "49459:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "49447:19:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "49442:24:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10435, + "nodeType": "ExpressionStatement", + "src": "49442:24:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 10440, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10436, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10029, + "src": "49470:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10439, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10437, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10025, + "src": "49477:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3078303230356462386466666666343562666132393338663132386635393964626631366562313164383830", + "id": 10438, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "49482:44:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2956444461658038477759873400213214992927382689920_by_1", + "typeString": "int_const 2956...(41 digits omitted)...9920" + }, + "value": "0x0205db8dffff45bfa2938f128f599dbf16eb11d880" + }, + "src": "49477:49:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "49470:56:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10441, + "nodeType": "ExpressionStatement", + "src": "49470:56:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 10449, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10442, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10025, + "src": "49572:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10448, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10445, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10443, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10025, + "src": "49578:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 10444, + "name": "_x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10019, + "src": "49583:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "49578:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 10446, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "49577:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 10447, + "name": "FIXED_1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6237, + "src": "49589:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "49577:19:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "49572:24:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10450, + "nodeType": "ExpressionStatement", + "src": "49572:24:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 10455, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10451, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10029, + "src": "49600:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "-=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10454, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10452, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10025, + "src": "49607:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3078303533613034346562643938343335313439336531373836616633386433396130383030303030303030", + "id": 10453, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "49612:44:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_7638725713617153619200000000000000000000000000000_by_1", + "typeString": "int_const 7638...(41 digits omitted)...0000" + }, + "value": "0x053a044ebd984351493e1786af38d39a0800000000" + }, + "src": "49607:49:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "49600:56:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10456, + "nodeType": "ExpressionStatement", + "src": "49600:56:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 10464, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10457, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10025, + "src": "49702:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10463, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10460, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10458, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10025, + "src": "49708:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 10459, + "name": "_x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10019, + "src": "49713:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "49708:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 10461, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "49707:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 10462, + "name": "FIXED_1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6237, + "src": "49719:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "49707:19:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "49702:24:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10465, + "nodeType": "ExpressionStatement", + "src": "49702:24:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 10470, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10466, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10029, + "src": "49730:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10469, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10467, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10025, + "src": "49737:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3078306438366461653261346363306634373633336135343434373937333538363962343837623539633430", + "id": 10468, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "49742:44:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_19769407354499582705095371848882117322613875645504_by_1", + "typeString": "int_const 1976...(42 digits omitted)...5504" + }, + "value": "0x0d86dae2a4cc0f47633a544479735869b487b59c40" + }, + "src": "49737:49:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "49730:56:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10471, + "nodeType": "ExpressionStatement", + "src": "49730:56:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 10479, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10472, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10025, + "src": "49832:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10478, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10475, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10473, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10025, + "src": "49838:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 10474, + "name": "_x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10019, + "src": "49843:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "49838:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 10476, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "49837:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 10477, + "name": "FIXED_1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6237, + "src": "49849:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "49837:19:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "49832:24:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10480, + "nodeType": "ExpressionStatement", + "src": "49832:24:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 10485, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10481, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10029, + "src": "49860:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "-=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10484, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10482, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10025, + "src": "49867:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3078323331303030303030303030303030303030303030303030303030303030303030303030303030303030", + "id": 10483, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "49872:44:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_51243901158914783569516699447114673376686134788096_by_1", + "typeString": "int_const 5124...(42 digits omitted)...8096" + }, + "value": "0x231000000000000000000000000000000000000000" + }, + "src": "49867:49:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "49860:56:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10486, + "nodeType": "ExpressionStatement", + "src": "49860:56:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 10494, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10487, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10025, + "src": "49962:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10493, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10490, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10488, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10025, + "src": "49968:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 10489, + "name": "_x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10019, + "src": "49973:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "49968:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 10491, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "49967:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 10492, + "name": "FIXED_1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6237, + "src": "49979:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "49967:19:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "49962:24:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10495, + "nodeType": "ExpressionStatement", + "src": "49962:24:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 10500, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10496, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10029, + "src": "49990:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10499, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10497, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10025, + "src": "49997:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3078356230343835613736663636343663323033396462313530376364643531623038363439363830383232", + "id": 10498, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "50002:44:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_133022465544965907471119545993290733585983764695074_by_1", + "typeString": "int_const 1330...(43 digits omitted)...5074" + }, + "value": "0x5b0485a76f6646c2039db1507cdd51b08649680822" + }, + "src": "49997:49:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "49990:56:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10501, + "nodeType": "ExpressionStatement", + "src": "49990:56:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 10509, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10502, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10025, + "src": "50092:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10508, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10505, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10503, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10025, + "src": "50098:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 10504, + "name": "_x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10019, + "src": "50103:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "50098:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 10506, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "50097:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 10507, + "name": "FIXED_1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6237, + "src": "50109:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "50097:19:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "50092:24:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10510, + "nodeType": "ExpressionStatement", + "src": "50092:24:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 10515, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10511, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10029, + "src": "50120:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "-=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10514, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10512, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10025, + "src": "50127:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3078656339383363343663343935343562633137656661366235623030353565323432323030303030303030", + "id": 10513, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "50132:44:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_345783497216724000335707367685598692782880644399104_by_1", + "typeString": "int_const 3457...(43 digits omitted)...9104" + }, + "value": "0xec983c46c49545bc17efa6b5b0055e242200000000" + }, + "src": "50127:49:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "50120:56:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10516, + "nodeType": "ExpressionStatement", + "src": "50120:56:10" + }, + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10519, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10517, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10029, + "src": "50230:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30786465316263346431396566636163383234343564613735623030303030303030", + "id": 10518, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "50236:34:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_295232799039604140847618609643520000000_by_1", + "typeString": "int_const 2952...(31 digits omitted)...0000" + }, + "value": "0xde1bc4d19efcac82445da75b00000000" + }, + "src": "50230:40:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 10023, + "id": 10520, + "nodeType": "Return", + "src": "50223:47:10" + } + ] + }, + "documentation": "@dev computes W(x / FIXED_1) / (x / FIXED_1) * FIXED_1\ninput range: 1 <= x <= 1 / e * FIXED_1\nauto-generated via 'PrintFunctionLambertPos1.py'", + "id": 10522, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "lambertPos1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10020, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10019, + "name": "_x", + "nodeType": "VariableDeclaration", + "scope": 10522, + "src": "45858:10:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10018, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "45858:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "45857:12:10" + }, + "payable": false, + "returnParameters": { + "id": 10023, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10022, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 10522, + "src": "45893:7:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10021, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "45893:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "45892:9:10" + }, + "scope": 11642, + "src": "45837:4454:10", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 10589, + "nodeType": "Block", + "src": "50497:297:10", + "statements": [ + { + "assignments": [ + 10530 + ], + "declarations": [ + { + "constant": false, + "id": 10530, + "name": "x", + "nodeType": "VariableDeclaration", + "scope": 10590, + "src": "50501:9:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10529, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "50501:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 10536, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10535, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10533, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10531, + "name": "_x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10524, + "src": "50513:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 10532, + "name": "LAMBERT_CONV_RADIUS", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6258, + "src": "50518:19:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "50513:24:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 10534, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "50540:1:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "50513:28:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "50501:40:10" + }, + { + "assignments": [ + 10538 + ], + "declarations": [ + { + "constant": false, + "id": 10538, + "name": "i", + "nodeType": "VariableDeclaration", + "scope": 10590, + "src": "50545:9:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10537, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "50545:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 10542, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10541, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10539, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10530, + "src": "50557:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 10540, + "name": "LAMBERT_POS2_SAMPLE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6261, + "src": "50561:19:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "50557:23:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "50545:35:10" + }, + { + "assignments": [ + 10544 + ], + "declarations": [ + { + "constant": false, + "id": 10544, + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 10590, + "src": "50584:9:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10543, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "50584:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 10548, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10547, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10545, + "name": "LAMBERT_POS2_SAMPLE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6261, + "src": "50596:19:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 10546, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10538, + "src": "50618:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "50596:23:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "50584:35:10" + }, + { + "assignments": [ + 10550 + ], + "declarations": [ + { + "constant": false, + "id": 10550, + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 10590, + "src": "50623:9:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10549, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "50623:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 10557, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10556, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10551, + "name": "LAMBERT_POS2_SAMPLE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6261, + "src": "50635:19:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10554, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10552, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10538, + "src": "50658:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 10553, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "50662:1:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "50658:5:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 10555, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "50657:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "50635:29:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "50623:41:10" + }, + { + "assignments": [ + 10559 + ], + "declarations": [ + { + "constant": false, + "id": 10559, + "name": "c", + "nodeType": "VariableDeclaration", + "scope": 10590, + "src": "50668:9:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10558, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "50668:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 10563, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 10560, + "name": "lambertArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6858, + "src": "50680:12:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 10562, + "indexExpression": { + "argumentTypes": null, + "id": 10561, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10538, + "src": "50693:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "50680:15:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "50668:27:10" + }, + { + "assignments": [ + 10565 + ], + "declarations": [ + { + "constant": false, + "id": 10565, + "name": "d", + "nodeType": "VariableDeclaration", + "scope": 10590, + "src": "50699:9:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10564, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "50699:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 10571, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 10566, + "name": "lambertArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6858, + "src": "50711:12:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$128_storage", + "typeString": "uint256[128] storage ref" + } + }, + "id": 10570, + "indexExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10569, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10567, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10538, + "src": "50724:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 10568, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "50728:1:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "50724:5:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "50711:19:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "50699:31:10" + }, + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10587, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10584, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10577, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10572, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10559, + "src": "50742:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10575, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10573, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10550, + "src": "50747:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 10574, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10530, + "src": "50751:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "50747:5:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 10576, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "50746:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "50742:11:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10583, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10578, + "name": "d", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10565, + "src": "50756:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10581, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10579, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10530, + "src": "50761:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 10580, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10544, + "src": "50765:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "50761:5:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 10582, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "50760:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "50756:11:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "50742:25:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 10585, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "50741:27:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 10586, + "name": "LAMBERT_POS2_SAMPLE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6261, + "src": "50771:19:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "50741:49:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 10528, + "id": 10588, + "nodeType": "Return", + "src": "50734:56:10" + } + ] + }, + "documentation": "@dev computes W(x / FIXED_1) / (x / FIXED_1) * FIXED_1\ninput range: LAMBERT_CONV_RADIUS + 1 <= x <= LAMBERT_POS2_MAXVAL", + "id": 10590, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "lambertPos2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10525, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10524, + "name": "_x", + "nodeType": "VariableDeclaration", + "scope": 10590, + "src": "50453:10:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10523, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "50453:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "50452:12:10" + }, + "payable": false, + "returnParameters": { + "id": 10528, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10527, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 10590, + "src": "50488:7:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10526, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "50488:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "50487:9:10" + }, + "scope": 11642, + "src": "50432:362:10", + "stateMutability": "view", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 10640, + "nodeType": "Block", + "src": "51000:205:10", + "statements": [ + { + "assignments": [ + 10598 + ], + "declarations": [ + { + "constant": false, + "id": 10598, + "name": "l1", + "nodeType": "VariableDeclaration", + "scope": 10641, + "src": "51004:10:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10597, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "51004:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 10609, + "initialValue": { + "argumentTypes": null, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10601, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10599, + "name": "_x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10592, + "src": "51017:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 10600, + "name": "OPT_LOG_MAX_VAL", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6252, + "src": "51022:15:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "51017:20:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10606, + "name": "_x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10592, + "src": "51068:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10605, + "name": "generalLog", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8543, + "src": "51057:10:10", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 10607, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "51057:14:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10608, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "51017:54:10", + "trueExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10603, + "name": "_x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10592, + "src": "51051:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10602, + "name": "optimalLog", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9523, + "src": "51040:10:10", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 10604, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "51040:14:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "51004:67:10" + }, + { + "assignments": [ + 10611 + ], + "declarations": [ + { + "constant": false, + "id": 10611, + "name": "l2", + "nodeType": "VariableDeclaration", + "scope": 10641, + "src": "51075:10:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10610, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "51075:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 10622, + "initialValue": { + "argumentTypes": null, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10614, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10612, + "name": "l1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10598, + "src": "51088:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 10613, + "name": "OPT_LOG_MAX_VAL", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6252, + "src": "51093:15:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "51088:20:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10619, + "name": "l1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10598, + "src": "51139:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10618, + "name": "generalLog", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8543, + "src": "51128:10:10", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 10620, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "51128:14:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10621, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "51088:54:10", + "trueExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10616, + "name": "l1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10598, + "src": "51122:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10615, + "name": "optimalLog", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9523, + "src": "51111:10:10", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 10617, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "51111:14:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "51075:67:10" + }, + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10638, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10635, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10632, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10625, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10623, + "name": "l1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10598, + "src": "51155:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 10624, + "name": "l2", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10611, + "src": "51160:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "51155:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10631, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10628, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10626, + "name": "l2", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10611, + "src": "51166:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 10627, + "name": "FIXED_1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6237, + "src": "51171:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "51166:12:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 10629, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "51165:14:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 10630, + "name": "l1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10598, + "src": "51182:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "51165:19:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "51155:29:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 10633, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "51154:31:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 10634, + "name": "FIXED_1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6237, + "src": "51188:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "51154:41:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 10636, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "51153:43:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 10637, + "name": "_x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10592, + "src": "51199:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "51153:48:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 10596, + "id": 10639, + "nodeType": "Return", + "src": "51146:55:10" + } + ] + }, + "documentation": "@dev computes W(x / FIXED_1) / (x / FIXED_1) * FIXED_1\ninput range: LAMBERT_POS2_MAXVAL + 1 <= x <= LAMBERT_POS3_MAXVAL", + "id": 10641, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "lambertPos3", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10593, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10592, + "name": "_x", + "nodeType": "VariableDeclaration", + "scope": 10641, + "src": "50956:10:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10591, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "50956:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "50955:12:10" + }, + "payable": false, + "returnParameters": { + "id": 10596, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10595, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 10641, + "src": "50991:7:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10594, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "50991:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "50990:9:10" + }, + "scope": 11642, + "src": "50935:270:10", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 11144, + "nodeType": "Block", + "src": "51440:4364:10", + "statements": [ + { + "assignments": [ + 10649 + ], + "declarations": [ + { + "constant": false, + "id": 10649, + "name": "xi", + "nodeType": "VariableDeclaration", + "scope": 11145, + "src": "51444:10:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10648, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "51444:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 10651, + "initialValue": { + "argumentTypes": null, + "id": 10650, + "name": "_x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10643, + "src": "51457:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "51444:15:10" + }, + { + "assignments": [ + 10653 + ], + "declarations": [ + { + "constant": false, + "id": 10653, + "name": "res", + "nodeType": "VariableDeclaration", + "scope": 11145, + "src": "51463:11:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10652, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "51463:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 10655, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 10654, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "51477:1:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "51463:15:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 10663, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10656, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10649, + "src": "51483:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10662, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10659, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10657, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10649, + "src": "51489:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 10658, + "name": "_x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10643, + "src": "51494:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "51489:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 10660, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "51488:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 10661, + "name": "FIXED_1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6237, + "src": "51500:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "51488:19:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "51483:24:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10664, + "nodeType": "ExpressionStatement", + "src": "51483:24:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 10669, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10665, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10653, + "src": "51511:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10668, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10666, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10649, + "src": "51518:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3078303030303030303030313464323961373361366537623032633336363863376230383830303030303030", + "id": 10667, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "51523:44:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_442849198559406211271427914465280000000_by_1", + "typeString": "int_const 4428...(31 digits omitted)...0000" + }, + "value": "0x00000000014d29a73a6e7b02c3668c7b0880000000" + }, + "src": "51518:49:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "51511:56:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10670, + "nodeType": "ExpressionStatement", + "src": "51511:56:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 10678, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10671, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10649, + "src": "51613:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10677, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10674, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10672, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10649, + "src": "51619:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 10673, + "name": "_x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10643, + "src": "51624:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "51619:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 10675, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "51618:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 10676, + "name": "FIXED_1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6237, + "src": "51630:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "51618:19:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "51613:24:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10679, + "nodeType": "ExpressionStatement", + "src": "51613:24:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 10684, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10680, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10653, + "src": "51641:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10683, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10681, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10649, + "src": "51648:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3078303030303030303030323530346130636439613766373231356236306639626534383030303030303030", + "id": 10682, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "51653:44:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_787287464105611042260316292382720000000_by_1", + "typeString": "int_const 7872...(31 digits omitted)...0000" + }, + "value": "0x0000000002504a0cd9a7f7215b60f9be4800000000" + }, + "src": "51648:49:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "51641:56:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10685, + "nodeType": "ExpressionStatement", + "src": "51641:56:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 10693, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10686, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10649, + "src": "51743:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10692, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10689, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10687, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10649, + "src": "51749:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 10688, + "name": "_x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10643, + "src": "51754:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "51749:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 10690, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "51748:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 10691, + "name": "FIXED_1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6237, + "src": "51760:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "51748:19:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "51743:24:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10694, + "nodeType": "ExpressionStatement", + "src": "51743:24:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 10699, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10695, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10653, + "src": "51771:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10698, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10696, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10649, + "src": "51778:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3078303030303030303030343834643061313139316330656164323637393637633761346130303030303030", + "id": 10697, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "51783:44:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1537670828331271566914680258560000000000_by_1", + "typeString": "int_const 1537...(32 digits omitted)...0000" + }, + "value": "0x000000000484d0a1191c0ead267967c7a4a0000000" + }, + "src": "51778:49:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "51771:56:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10700, + "nodeType": "ExpressionStatement", + "src": "51771:56:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 10708, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10701, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10649, + "src": "51873:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10707, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10704, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10702, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10649, + "src": "51879:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 10703, + "name": "_x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10643, + "src": "51884:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "51879:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 10705, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "51878:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 10706, + "name": "FIXED_1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6237, + "src": "51890:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "51878:19:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "51873:24:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10709, + "nodeType": "ExpressionStatement", + "src": "51873:24:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 10714, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10710, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10653, + "src": "51901:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10713, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10711, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10649, + "src": "51908:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3078303030303030303030393565633538306437653834323761346261663236613930613030303030303030", + "id": 10712, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "51913:44:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_3188514229627724721154280984150016000000_by_1", + "typeString": "int_const 3188...(32 digits omitted)...0000" + }, + "value": "0x00000000095ec580d7e8427a4baf26a90a00000000" + }, + "src": "51908:49:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "51901:56:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10715, + "nodeType": "ExpressionStatement", + "src": "51901:56:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 10723, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10716, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10649, + "src": "52003:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10722, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10719, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10717, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10649, + "src": "52009:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 10718, + "name": "_x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10643, + "src": "52014:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "52009:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 10720, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "52008:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 10721, + "name": "FIXED_1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6237, + "src": "52020:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "52008:19:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "52003:24:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10724, + "nodeType": "ExpressionStatement", + "src": "52003:24:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 10729, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10725, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10653, + "src": "52031:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10728, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10726, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10649, + "src": "52038:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3078303030303030303031343430623062653136313561343764626136653562336231663130303030303030", + "id": 10727, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "52043:44:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_6891635629803648326702674961498112000000_by_1", + "typeString": "int_const 6891...(32 digits omitted)...0000" + }, + "value": "0x000000001440b0be1615a47dba6e5b3b1f10000000" + }, + "src": "52038:49:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "52031:56:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10730, + "nodeType": "ExpressionStatement", + "src": "52031:56:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 10738, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10731, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10649, + "src": "52133:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10737, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10734, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10732, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10649, + "src": "52139:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 10733, + "name": "_x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10643, + "src": "52144:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "52139:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 10735, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "52138:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 10736, + "name": "FIXED_1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6237, + "src": "52150:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "52138:19:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "52133:24:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10739, + "nodeType": "ExpressionStatement", + "src": "52133:24:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 10744, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10740, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10653, + "src": "52161:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10743, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10741, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10649, + "src": "52168:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3078303030303030303032643230373630316634366139396234313132343138343030303030303030303030", + "id": 10742, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "52173:44:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_15355854537983727757610740636188672000000_by_1", + "typeString": "int_const 1535...(33 digits omitted)...0000" + }, + "value": "0x000000002d207601f46a99b4112418400000000000" + }, + "src": "52168:49:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "52161:56:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10745, + "nodeType": "ExpressionStatement", + "src": "52161:56:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 10753, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10746, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10649, + "src": "52263:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10752, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10749, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10747, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10649, + "src": "52269:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 10748, + "name": "_x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10643, + "src": "52274:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "52269:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 10750, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "52268:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 10751, + "name": "FIXED_1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6237, + "src": "52280:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "52268:19:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "52263:24:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10754, + "nodeType": "ExpressionStatement", + "src": "52263:24:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 10759, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10755, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10653, + "src": "52291:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10758, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10756, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10649, + "src": "52298:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3078303030303030303036366562616163346333376336323264643832383861376562316232303030303030", + "id": 10757, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "52303:44:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_35022056686251398262544482483830784000000_by_1", + "typeString": "int_const 3502...(33 digits omitted)...0000" + }, + "value": "0x0000000066ebaac4c37c622dd8288a7eb1b2000000" + }, + "src": "52298:49:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "52291:56:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10760, + "nodeType": "ExpressionStatement", + "src": "52291:56:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 10768, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10761, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10649, + "src": "52393:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10767, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10764, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10762, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10649, + "src": "52399:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 10763, + "name": "_x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10643, + "src": "52404:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "52399:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 10765, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "52398:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 10766, + "name": "FIXED_1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6237, + "src": "52410:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "52398:19:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "52393:24:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10769, + "nodeType": "ExpressionStatement", + "src": "52393:24:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 10774, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10770, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10653, + "src": "52421:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10773, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10771, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10649, + "src": "52428:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3078303030303030303065663137323430313335663764626434336131626131306366323030303030303030", + "id": 10772, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "52433:44:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_81358244885252463857919590400000000000000_by_1", + "typeString": "int_const 8135...(33 digits omitted)...0000" + }, + "value": "0x00000000ef17240135f7dbd43a1ba10cf200000000" + }, + "src": "52428:49:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "52421:56:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10775, + "nodeType": "ExpressionStatement", + "src": "52421:56:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 10783, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10776, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10649, + "src": "52523:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10782, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10779, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10777, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10649, + "src": "52529:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 10778, + "name": "_x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10643, + "src": "52534:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "52529:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 10780, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "52528:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 10781, + "name": "FIXED_1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6237, + "src": "52540:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "52528:19:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "52523:24:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10784, + "nodeType": "ExpressionStatement", + "src": "52523:24:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 10789, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10785, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10653, + "src": "52551:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10788, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10786, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10649, + "src": "52558:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3078303030303030303233336333336336373661356562323431363039346138376233363537303030303030", + "id": 10787, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "52563:44:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_191838485670993607105842450247345766400000_by_1", + "typeString": "int_const 1918...(34 digits omitted)...0000" + }, + "value": "0x0000000233c33c676a5eb2416094a87b3657000000" + }, + "src": "52558:49:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "52551:56:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10790, + "nodeType": "ExpressionStatement", + "src": "52551:56:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 10798, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10791, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10649, + "src": "52653:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10797, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10794, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10792, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10649, + "src": "52659:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 10793, + "name": "_x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10643, + "src": "52664:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "52659:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 10795, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "52658:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 10796, + "name": "FIXED_1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6237, + "src": "52670:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "52658:19:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "52653:24:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10799, + "nodeType": "ExpressionStatement", + "src": "52653:24:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 10804, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10800, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10653, + "src": "52681:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10803, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10801, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10649, + "src": "52688:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3078303030303030303534316364653438626330323534626564343961396638373030303030303030303030", + "id": 10802, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "52693:44:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_457953461925960171898563951427426713600000_by_1", + "typeString": "int_const 4579...(34 digits omitted)...0000" + }, + "value": "0x0000000541cde48bc0254bed49a9f8700000000000" + }, + "src": "52688:49:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "52681:56:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10805, + "nodeType": "ExpressionStatement", + "src": "52681:56:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 10813, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10806, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10649, + "src": "52783:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10812, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10809, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10807, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10649, + "src": "52789:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 10808, + "name": "_x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10643, + "src": "52794:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "52789:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 10810, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "52788:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 10811, + "name": "FIXED_1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6237, + "src": "52800:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "52788:19:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "52783:24:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10814, + "nodeType": "ExpressionStatement", + "src": "52783:24:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 10819, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10815, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10653, + "src": "52811:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10818, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10816, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10649, + "src": "52818:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3078303030303030306361653166616432636464346434636238643733616263613064313961343030303030", + "id": 10817, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "52823:44:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1104598668270551480892683896320648806400000_by_1", + "typeString": "int_const 1104...(35 digits omitted)...0000" + }, + "value": "0x0000000cae1fad2cdd4d4cb8d73abca0d19a400000" + }, + "src": "52818:49:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "52811:56:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10820, + "nodeType": "ExpressionStatement", + "src": "52811:56:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 10828, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10821, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10649, + "src": "52913:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10827, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10824, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10822, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10649, + "src": "52919:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 10823, + "name": "_x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10643, + "src": "52924:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "52919:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 10825, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "52918:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 10826, + "name": "FIXED_1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6237, + "src": "52930:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "52918:19:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "52913:24:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10829, + "nodeType": "ExpressionStatement", + "src": "52913:24:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 10834, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10830, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10653, + "src": "52941:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10833, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10831, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10649, + "src": "52948:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3078303030303030316564623261613266373630643135633431636565646261393536343030303030303030", + "id": 10832, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "52953:44:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2687947090053832841608264823563773542400000_by_1", + "typeString": "int_const 2687...(35 digits omitted)...0000" + }, + "value": "0x0000001edb2aa2f760d15c41ceedba956400000000" + }, + "src": "52948:49:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "52941:56:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10835, + "nodeType": "ExpressionStatement", + "src": "52941:56:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 10843, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10836, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10649, + "src": "53043:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10842, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10839, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10837, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10649, + "src": "53049:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 10838, + "name": "_x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10643, + "src": "53054:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "53049:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 10840, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "53048:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 10841, + "name": "FIXED_1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6237, + "src": "53060:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "53048:19:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "53043:24:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10844, + "nodeType": "ExpressionStatement", + "src": "53043:24:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 10849, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10845, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10653, + "src": "53071:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10848, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10846, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10649, + "src": "53078:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3078303030303030346261386432306432646162643338366339353239363539383431613265323030303030", + "id": 10847, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "53083:44:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_6590868088830032065882824000000000000000000_by_1", + "typeString": "int_const 6590...(35 digits omitted)...0000" + }, + "value": "0x0000004ba8d20d2dabd386c9529659841a2e200000" + }, + "src": "53078:49:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "53071:56:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10850, + "nodeType": "ExpressionStatement", + "src": "53071:56:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 10858, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10851, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10649, + "src": "53173:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10857, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10854, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10852, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10649, + "src": "53179:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 10853, + "name": "_x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10643, + "src": "53184:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "53179:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 10855, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "53178:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 10856, + "name": "FIXED_1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6237, + "src": "53190:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "53178:19:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "53173:24:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10859, + "nodeType": "ExpressionStatement", + "src": "53173:24:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 10864, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10860, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10653, + "src": "53201:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10863, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10861, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10649, + "src": "53208:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3078303030303030626163303835343662383637636461613230303030303030303030303030303030303030", + "id": 10862, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "53213:44:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_16268396552280633070412438458028041175040000_by_1", + "typeString": "int_const 1626...(36 digits omitted)...0000" + }, + "value": "0x000000bac08546b867cdaa20000000000000000000" + }, + "src": "53208:49:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "53201:56:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10865, + "nodeType": "ExpressionStatement", + "src": "53201:56:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 10873, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10866, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10649, + "src": "53303:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10872, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10869, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10867, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10649, + "src": "53309:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 10868, + "name": "_x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10643, + "src": "53314:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "53309:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 10870, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "53308:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 10871, + "name": "FIXED_1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6237, + "src": "53320:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "53308:19:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "53303:24:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10874, + "nodeType": "ExpressionStatement", + "src": "53303:24:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 10879, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10875, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10653, + "src": "53331:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10878, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10876, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10649, + "src": "53338:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3078303030303031636661386537306330333632356239646237366338656266356262663234383230303030", + "id": 10877, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "53343:44:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_40390462938090940419774080664538139934720000_by_1", + "typeString": "int_const 4039...(36 digits omitted)...0000" + }, + "value": "0x000001cfa8e70c03625b9db76c8ebf5bbf24820000" + }, + "src": "53338:49:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "53331:56:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10880, + "nodeType": "ExpressionStatement", + "src": "53331:56:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 10888, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10881, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10649, + "src": "53433:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10887, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10884, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10882, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10649, + "src": "53439:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 10883, + "name": "_x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10643, + "src": "53444:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "53439:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 10885, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "53438:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 10886, + "name": "FIXED_1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6237, + "src": "53450:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "53438:19:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "53433:24:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10889, + "nodeType": "ExpressionStatement", + "src": "53433:24:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 10894, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10890, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10653, + "src": "53461:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10893, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10891, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10649, + "src": "53468:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3078303030303034383531643939663832303630646632363566333330396232366638323030303030303030", + "id": 10892, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "53473:44:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_100798987671917000666814256179934522245120000_by_1", + "typeString": "int_const 1007...(37 digits omitted)...0000" + }, + "value": "0x000004851d99f82060df265f3309b26f8200000000" + }, + "src": "53468:49:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "53461:56:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10895, + "nodeType": "ExpressionStatement", + "src": "53461:56:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 10903, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10896, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10649, + "src": "53563:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10902, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10899, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10897, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10649, + "src": "53569:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 10898, + "name": "_x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10643, + "src": "53574:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "53569:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 10900, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "53568:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 10901, + "name": "FIXED_1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6237, + "src": "53580:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "53568:19:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "53563:24:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10904, + "nodeType": "ExpressionStatement", + "src": "53563:24:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 10909, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10905, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10653, + "src": "53591:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10908, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10906, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10649, + "src": "53598:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3078303030303062353530643139623132396432373063343466366635356630323737323363626230303030", + "id": 10907, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "53603:44:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_252717199309391137912965664538441463029760000_by_1", + "typeString": "int_const 2527...(37 digits omitted)...0000" + }, + "value": "0x00000b550d19b129d270c44f6f55f027723cbb0000" + }, + "src": "53598:49:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "53591:56:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10910, + "nodeType": "ExpressionStatement", + "src": "53591:56:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 10918, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10911, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10649, + "src": "53693:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10917, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10914, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10912, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10649, + "src": "53699:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 10913, + "name": "_x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10643, + "src": "53704:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "53699:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 10915, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "53698:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 10916, + "name": "FIXED_1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6237, + "src": "53710:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "53698:19:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "53693:24:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10919, + "nodeType": "ExpressionStatement", + "src": "53693:24:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 10924, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10920, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10653, + "src": "53721:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10923, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10921, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10649, + "src": "53728:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3078303030303163383737646164633736316463323732646562363564346230303030303030303030303030", + "id": 10922, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "53733:44:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_636223790447205380259840000000000000000000000_by_1", + "typeString": "int_const 6362...(37 digits omitted)...0000" + }, + "value": "0x00001c877dadc761dc272deb65d4b0000000000000" + }, + "src": "53728:49:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "53721:56:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10925, + "nodeType": "ExpressionStatement", + "src": "53721:56:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 10933, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10926, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10649, + "src": "53823:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10932, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10929, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10927, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10649, + "src": "53829:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 10928, + "name": "_x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10643, + "src": "53834:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "53829:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 10930, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "53828:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 10931, + "name": "FIXED_1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6237, + "src": "53840:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "53828:19:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "53823:24:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10934, + "nodeType": "ExpressionStatement", + "src": "53823:24:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 10939, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10935, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10653, + "src": "53851:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10938, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10936, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10649, + "src": "53858:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3078303030303438313738656365393734373966333361373766326164323261383162363434303663303030", + "id": 10937, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "53863:44:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1607705831573194746802610334450509017233408000_by_1", + "typeString": "int_const 1607...(38 digits omitted)...8000" + }, + "value": "0x000048178ece97479f33a77f2ad22a81b64406c000" + }, + "src": "53858:49:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "53851:56:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10940, + "nodeType": "ExpressionStatement", + "src": "53851:56:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 10948, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10941, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10649, + "src": "53953:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10947, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10944, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10942, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10649, + "src": "53959:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 10943, + "name": "_x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10643, + "src": "53964:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "53959:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 10945, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "53958:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 10946, + "name": "FIXED_1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6237, + "src": "53970:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "53958:19:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "53953:24:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10949, + "nodeType": "ExpressionStatement", + "src": "53953:24:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 10954, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10950, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10653, + "src": "53981:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10953, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10951, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10649, + "src": "53988:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3078303030306236636138323638623964383130666564663636393565663266386136633030303030303030", + "id": 10952, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "53993:44:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_4076376683803157531046819273912505658769408000_by_1", + "typeString": "int_const 4076...(38 digits omitted)...8000" + }, + "value": "0x0000b6ca8268b9d810fedf6695ef2f8a6c00000000" + }, + "src": "53988:49:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "53981:56:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10955, + "nodeType": "ExpressionStatement", + "src": "53981:56:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 10963, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10956, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10649, + "src": "54083:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10962, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10959, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10957, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10649, + "src": "54089:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 10958, + "name": "_x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10643, + "src": "54094:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "54089:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 10960, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "54088:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 10961, + "name": "FIXED_1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6237, + "src": "54100:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "54088:19:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "54083:24:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10964, + "nodeType": "ExpressionStatement", + "src": "54083:24:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 10969, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10965, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10653, + "src": "54111:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10968, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10966, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10649, + "src": "54118:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3078303030316430653736363331613562303564303037623863623732613763376631316563333665303030", + "id": 10967, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "54123:44:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_10367703484962349537949059901011799777283072000_by_1", + "typeString": "int_const 1036...(39 digits omitted)...2000" + }, + "value": "0x0001d0e76631a5b05d007b8cb72a7c7f11ec36e000" + }, + "src": "54118:49:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "54111:56:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10970, + "nodeType": "ExpressionStatement", + "src": "54111:56:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 10978, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10971, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10649, + "src": "54213:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10977, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10974, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10972, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10649, + "src": "54219:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 10973, + "name": "_x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10643, + "src": "54224:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "54219:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 10975, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "54218:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 10976, + "name": "FIXED_1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6237, + "src": "54230:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "54218:19:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "54213:24:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10979, + "nodeType": "ExpressionStatement", + "src": "54213:24:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 10984, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10980, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10653, + "src": "54241:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10983, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10981, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10649, + "src": "54248:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3078303030346131633337626439663835666439633663373830303030303030303030303030303030303030", + "id": 10982, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "54253:44:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_26443412100478721735433130630260686447443968000_by_1", + "typeString": "int_const 2644...(39 digits omitted)...8000" + }, + "value": "0x0004a1c37bd9f85fd9c6c780000000000000000000" + }, + "src": "54248:49:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "54241:56:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10985, + "nodeType": "ExpressionStatement", + "src": "54241:56:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 10993, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10986, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10649, + "src": "54343:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10992, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10989, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10987, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10649, + "src": "54349:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 10988, + "name": "_x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10643, + "src": "54354:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "54349:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 10990, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "54348:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 10991, + "name": "FIXED_1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6237, + "src": "54360:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "54348:19:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "54343:24:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10994, + "nodeType": "ExpressionStatement", + "src": "54343:24:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 10999, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10995, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10653, + "src": "54371:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10998, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10996, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10649, + "src": "54378:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3078303030626438333639663162373032626634393165326562666365653038323530333133623635343030", + "id": 10997, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "54383:44:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_67620617646753089502453804016113281250000000000_by_1", + "typeString": "int_const 6762...(39 digits omitted)...0000" + }, + "value": "0x000bd8369f1b702bf491e2ebfcee08250313b65400" + }, + "src": "54378:49:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "54371:56:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 11000, + "nodeType": "ExpressionStatement", + "src": "54371:56:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 11008, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 11001, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10649, + "src": "54473:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 11007, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 11004, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 11002, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10649, + "src": "54479:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 11003, + "name": "_x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10643, + "src": "54484:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "54479:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 11005, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "54478:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 11006, + "name": "FIXED_1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6237, + "src": "54490:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "54478:19:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "54473:24:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 11009, + "nodeType": "ExpressionStatement", + "src": "54473:24:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 11014, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 11010, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10653, + "src": "54501:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 11013, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 11011, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10649, + "src": "54508:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3078303031653563376333326139663663373061623263623539643932323537363464343030303030303030", + "id": 11012, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "54513:44:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_173332210846474760735500226875327576716638945280_by_1", + "typeString": "int_const 1733...(40 digits omitted)...5280" + }, + "value": "0x001e5c7c32a9f6c70ab2cb59d9225764d400000000" + }, + "src": "54508:49:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "54501:56:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 11015, + "nodeType": "ExpressionStatement", + "src": "54501:56:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 11023, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 11016, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10649, + "src": "54603:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 11022, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 11019, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 11017, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10649, + "src": "54609:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 11018, + "name": "_x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10643, + "src": "54614:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "54609:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 11020, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "54608:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 11021, + "name": "FIXED_1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6237, + "src": "54620:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "54608:19:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "54603:24:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 11024, + "nodeType": "ExpressionStatement", + "src": "54603:24:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 11029, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 11025, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10653, + "src": "54631:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 11028, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 11026, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10649, + "src": "54638:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3078303034646666353832306531363565393130663935313230613730386537343234393632323165363030", + "id": 11027, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "54643:44:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_445286656448864136819345605176268818347976680960_by_1", + "typeString": "int_const 4452...(40 digits omitted)...0960" + }, + "value": "0x004dff5820e165e910f95120a708e742496221e600" + }, + "src": "54638:49:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "54631:56:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 11030, + "nodeType": "ExpressionStatement", + "src": "54631:56:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 11038, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 11031, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10649, + "src": "54733:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 11037, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 11034, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 11032, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10649, + "src": "54739:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 11033, + "name": "_x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10643, + "src": "54744:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "54739:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 11035, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "54738:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 11036, + "name": "FIXED_1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6237, + "src": "54750:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "54738:19:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "54733:24:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 11039, + "nodeType": "ExpressionStatement", + "src": "54733:24:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 11044, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 11040, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10653, + "src": "54761:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 11043, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 11041, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10649, + "src": "54768:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3078303063386338663636646231666365643337386565353065353336303030303030303030303030303030", + "id": 11042, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "54773:44:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1146279770154177862273033179056478989553563074560_by_1", + "typeString": "int_const 1146...(41 digits omitted)...4560" + }, + "value": "0x00c8c8f66db1fced378ee50e536000000000000000" + }, + "src": "54768:49:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "54761:56:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 11045, + "nodeType": "ExpressionStatement", + "src": "54761:56:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 11053, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 11046, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10649, + "src": "54863:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 11052, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 11049, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 11047, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10649, + "src": "54869:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 11048, + "name": "_x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10643, + "src": "54874:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "54869:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 11050, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "54868:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 11051, + "name": "FIXED_1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6237, + "src": "54880:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "54868:19:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "54863:24:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 11054, + "nodeType": "ExpressionStatement", + "src": "54863:24:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 11059, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 11055, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10653, + "src": "54891:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 11058, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 11056, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10649, + "src": "54898:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3078303230356462386466666666343562666132393338663132386635393964626631366562313164383830", + "id": 11057, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "54903:44:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2956444461658038477759873400213214992927382689920_by_1", + "typeString": "int_const 2956...(41 digits omitted)...9920" + }, + "value": "0x0205db8dffff45bfa2938f128f599dbf16eb11d880" + }, + "src": "54898:49:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "54891:56:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 11060, + "nodeType": "ExpressionStatement", + "src": "54891:56:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 11068, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 11061, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10649, + "src": "54993:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 11067, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 11064, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 11062, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10649, + "src": "54999:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 11063, + "name": "_x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10643, + "src": "55004:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "54999:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 11065, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "54998:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 11066, + "name": "FIXED_1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6237, + "src": "55010:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "54998:19:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "54993:24:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 11069, + "nodeType": "ExpressionStatement", + "src": "54993:24:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 11074, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 11070, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10653, + "src": "55021:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 11073, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 11071, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10649, + "src": "55028:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3078303533613034346562643938343335313439336531373836616633386433396130383030303030303030", + "id": 11072, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "55033:44:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_7638725713617153619200000000000000000000000000000_by_1", + "typeString": "int_const 7638...(41 digits omitted)...0000" + }, + "value": "0x053a044ebd984351493e1786af38d39a0800000000" + }, + "src": "55028:49:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "55021:56:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 11075, + "nodeType": "ExpressionStatement", + "src": "55021:56:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 11083, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 11076, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10649, + "src": "55123:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 11082, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 11079, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 11077, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10649, + "src": "55129:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 11078, + "name": "_x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10643, + "src": "55134:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "55129:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 11080, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "55128:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 11081, + "name": "FIXED_1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6237, + "src": "55140:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "55128:19:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "55123:24:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 11084, + "nodeType": "ExpressionStatement", + "src": "55123:24:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 11089, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 11085, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10653, + "src": "55151:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 11088, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 11086, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10649, + "src": "55158:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3078306438366461653261346363306634373633336135343434373937333538363962343837623539633430", + "id": 11087, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "55163:44:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_19769407354499582705095371848882117322613875645504_by_1", + "typeString": "int_const 1976...(42 digits omitted)...5504" + }, + "value": "0x0d86dae2a4cc0f47633a544479735869b487b59c40" + }, + "src": "55158:49:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "55151:56:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 11090, + "nodeType": "ExpressionStatement", + "src": "55151:56:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 11098, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 11091, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10649, + "src": "55253:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 11097, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 11094, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 11092, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10649, + "src": "55259:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 11093, + "name": "_x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10643, + "src": "55264:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "55259:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 11095, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "55258:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 11096, + "name": "FIXED_1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6237, + "src": "55270:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "55258:19:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "55253:24:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 11099, + "nodeType": "ExpressionStatement", + "src": "55253:24:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 11104, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 11100, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10653, + "src": "55281:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 11103, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 11101, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10649, + "src": "55288:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3078323331303030303030303030303030303030303030303030303030303030303030303030303030303030", + "id": 11102, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "55293:44:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_51243901158914783569516699447114673376686134788096_by_1", + "typeString": "int_const 5124...(42 digits omitted)...8096" + }, + "value": "0x231000000000000000000000000000000000000000" + }, + "src": "55288:49:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "55281:56:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 11105, + "nodeType": "ExpressionStatement", + "src": "55281:56:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 11113, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 11106, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10649, + "src": "55383:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 11112, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 11109, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 11107, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10649, + "src": "55389:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 11108, + "name": "_x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10643, + "src": "55394:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "55389:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 11110, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "55388:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 11111, + "name": "FIXED_1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6237, + "src": "55400:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "55388:19:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "55383:24:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 11114, + "nodeType": "ExpressionStatement", + "src": "55383:24:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 11119, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 11115, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10653, + "src": "55411:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 11118, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 11116, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10649, + "src": "55418:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3078356230343835613736663636343663323033396462313530376364643531623038363439363830383232", + "id": 11117, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "55423:44:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_133022465544965907471119545993290733585983764695074_by_1", + "typeString": "int_const 1330...(43 digits omitted)...5074" + }, + "value": "0x5b0485a76f6646c2039db1507cdd51b08649680822" + }, + "src": "55418:49:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "55411:56:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 11120, + "nodeType": "ExpressionStatement", + "src": "55411:56:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 11128, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 11121, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10649, + "src": "55513:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 11127, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 11124, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 11122, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10649, + "src": "55519:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 11123, + "name": "_x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10643, + "src": "55524:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "55519:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 11125, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "55518:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 11126, + "name": "FIXED_1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6237, + "src": "55530:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "55518:19:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "55513:24:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 11129, + "nodeType": "ExpressionStatement", + "src": "55513:24:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 11134, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 11130, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10653, + "src": "55541:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 11133, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 11131, + "name": "xi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10649, + "src": "55548:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3078656339383363343663343935343562633137656661366235623030353565323432323030303030303030", + "id": 11132, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "55553:44:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_345783497216724000335707367685598692782880644399104_by_1", + "typeString": "int_const 3457...(43 digits omitted)...9104" + }, + "value": "0xec983c46c49545bc17efa6b5b0055e242200000000" + }, + "src": "55548:49:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "55541:56:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 11135, + "nodeType": "ExpressionStatement", + "src": "55541:56:10" + }, + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 11142, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 11140, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 11138, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 11136, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10653, + "src": "55651:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30786465316263346431396566636163383234343564613735623030303030303030", + "id": 11137, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "55657:34:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_295232799039604140847618609643520000000_by_1", + "typeString": "int_const 2952...(31 digits omitted)...0000" + }, + "value": "0xde1bc4d19efcac82445da75b00000000" + }, + "src": "55651:40:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "id": 11139, + "name": "_x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10643, + "src": "55694:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "55651:45:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "id": 11141, + "name": "FIXED_1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6237, + "src": "55699:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "55651:55:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 10647, + "id": 11143, + "nodeType": "Return", + "src": "55644:62:10" + } + ] + }, + "documentation": "@dev computes W(-x / FIXED_1) / (-x / FIXED_1) * FIXED_1\ninput range: 1 <= x <= 1 / e * FIXED_1\nauto-generated via 'PrintFunctionLambertNeg1.py'", + "id": 11145, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "lambertNeg1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10644, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10643, + "name": "_x", + "nodeType": "VariableDeclaration", + "scope": 11145, + "src": "51396:10:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10642, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "51396:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "51395:12:10" + }, + "payable": false, + "returnParameters": { + "id": 10647, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10646, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 11145, + "src": "51431:7:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10645, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "51431:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "51430:9:10" + }, + "scope": 11642, + "src": "51375:4429:10", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 11224, + "nodeType": "Block", + "src": "56101:297:10", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 11169, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "id": 11162, + "name": "_tq", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11151, + "src": "56106:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 11163, + "name": "_rp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11153, + "src": "56111:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 11164, + "isConstant": false, + "isInlineArray": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "TupleExpression", + "src": "56105:10:10", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 11166, + "name": "_tq", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11151, + "src": "56130:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 11167, + "name": "_rp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11153, + "src": "56135:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 11165, + "name": "safeFactors", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11300, + "src": "56118:11:10", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256,uint256)" + } + }, + "id": 11168, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "56118:21:10", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "src": "56105:34:10", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 11170, + "nodeType": "ExpressionStatement", + "src": "56105:34:10" + }, + { + "assignments": [ + 11172 + ], + "declarations": [ + { + "constant": false, + "id": 11172, + "name": "f", + "nodeType": "VariableDeclaration", + "scope": 11225, + "src": "56143:9:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11171, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "56143:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 11179, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 11178, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 11175, + "name": "FIXED_1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6237, + "src": "56163:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 11173, + "name": "_hi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11147, + "src": "56155:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 11174, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 21791, + "src": "56155:7:10", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 11176, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "56155:16:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 11177, + "name": "_lo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11149, + "src": "56174:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "56155:22:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "56143:34:10" + }, + { + "assignments": [ + 11181 + ], + "declarations": [ + { + "constant": false, + "id": 11181, + "name": "g", + "nodeType": "VariableDeclaration", + "scope": 11225, + "src": "56181:9:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11180, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "56181:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 11192, + "initialValue": { + "argumentTypes": null, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 11184, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 11182, + "name": "f", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11172, + "src": "56193:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 11183, + "name": "OPT_LOG_MAX_VAL", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6252, + "src": "56197:15:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "56193:19:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 11189, + "name": "f", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11172, + "src": "56242:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 11188, + "name": "generalLog", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8543, + "src": "56231:10:10", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 11190, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "56231:13:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 11191, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "56193:51:10", + "trueExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 11186, + "name": "f", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11172, + "src": "56226:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 11185, + "name": "optimalLog", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9523, + "src": "56215:10:10", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 11187, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "56215:13:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "56181:63:10" + }, + { + "assignments": [ + 11194 + ], + "declarations": [ + { + "constant": false, + "id": 11194, + "name": "x", + "nodeType": "VariableDeclaration", + "scope": 11225, + "src": "56248:9:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11193, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "56248:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 11201, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 11200, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 11197, + "name": "_tq", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11151, + "src": "56266:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 11195, + "name": "g", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11181, + "src": "56260:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 11196, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 21791, + "src": "56260:5:10", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 11198, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "56260:10:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 11199, + "name": "_rp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11153, + "src": "56273:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "56260:16:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "56248:28:10" + }, + { + "assignments": [ + 11203 + ], + "declarations": [ + { + "constant": false, + "id": 11203, + "name": "y", + "nodeType": "VariableDeclaration", + "scope": 11225, + "src": "56280:9:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11202, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "56280:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 11212, + "initialValue": { + "argumentTypes": null, + "condition": { + "argumentTypes": null, + "id": 11204, + "name": "_lowerStake", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11155, + "src": "56292:11:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 11209, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11194, + "src": "56334:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 11208, + "name": "higherStake", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10017, + "src": "56322:11:10", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 11210, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "56322:14:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 11211, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "56292:44:10", + "trueExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 11206, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11194, + "src": "56317:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 11205, + "name": "lowerStake", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9994, + "src": "56306:10:10", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) view returns (uint256)" + } + }, + "id": 11207, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "56306:13:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "56280:56:10" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 11216, + "name": "_tq", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11151, + "src": "56371:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 11214, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11203, + "src": "56365:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 11215, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 21791, + "src": "56365:5:10", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 11217, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "56365:10:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 11220, + "name": "FIXED_1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6237, + "src": "56385:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 11218, + "name": "_rp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11153, + "src": "56377:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 11219, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 21791, + "src": "56377:7:10", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 11221, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "56377:16:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 11213, + "name": "normalizedWeights", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11334, + "src": "56347:17:10", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint32_$_t_uint32_$", + "typeString": "function (uint256,uint256) pure returns (uint32,uint32)" + } + }, + "id": 11222, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "56347:47:10", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint32_$_t_uint32_$", + "typeString": "tuple(uint32,uint32)" + } + }, + "functionReturnParameters": 11161, + "id": 11223, + "nodeType": "Return", + "src": "56340:54:10" + } + ] + }, + "documentation": "@dev computes the weights based on \"W(log(hi / lo) * tq / rp) * tq / rp\", where \"W\" is a variation of the Lambert W function.", + "id": 11225, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "balancedWeightsByStake", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11156, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11147, + "name": "_hi", + "nodeType": "VariableDeclaration", + "scope": 11225, + "src": "55982:11:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11146, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "55982:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 11149, + "name": "_lo", + "nodeType": "VariableDeclaration", + "scope": 11225, + "src": "55997:11:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11148, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "55997:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 11151, + "name": "_tq", + "nodeType": "VariableDeclaration", + "scope": 11225, + "src": "56012:11:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11150, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "56012:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 11153, + "name": "_rp", + "nodeType": "VariableDeclaration", + "scope": 11225, + "src": "56027:11:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11152, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "56027:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 11155, + "name": "_lowerStake", + "nodeType": "VariableDeclaration", + "scope": 11225, + "src": "56042:16:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 11154, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "56042:4:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "55978:83:10" + }, + "payable": false, + "returnParameters": { + "id": 11161, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11158, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 11225, + "src": "56085:6:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 11157, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "56085:6:10", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 11160, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 11225, + "src": "56093:6:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 11159, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "56093:6:10", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "56084:16:10" + }, + "scope": 11642, + "src": "55947:451:10", + "stateMutability": "view", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 11299, + "nodeType": "Block", + "src": "56557:277:10", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 11242, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 11238, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 11236, + "name": "_a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11227, + "src": "56565:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "id": 11237, + "name": "FIXED_2", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6240, + "src": "56571:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "56565:13:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 11241, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 11239, + "name": "_b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11229, + "src": "56582:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "id": 11240, + "name": "FIXED_2", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6240, + "src": "56588:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "56582:13:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "56565:30:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 11247, + "nodeType": "IfStatement", + "src": "56561:51:10", + "trueBody": { + "expression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "id": 11243, + "name": "_a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11227, + "src": "56605:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 11244, + "name": "_b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11229, + "src": "56609:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 11245, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "56604:8:10", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "functionReturnParameters": 11235, + "id": 11246, + "nodeType": "Return", + "src": "56597:15:10" + } + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 11250, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 11248, + "name": "_a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11227, + "src": "56620:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 11249, + "name": "FIXED_2", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6240, + "src": "56625:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "56620:12:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 11260, + "nodeType": "IfStatement", + "src": "56616:55:10", + "trueBody": { + "expression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 11256, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 11253, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 11251, + "name": "_a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11227, + "src": "56643:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 11252, + "name": "FIXED_2", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6240, + "src": "56648:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "56643:12:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 11254, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "56642:14:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 11255, + "name": "_b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11229, + "src": "56659:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "56642:19:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 11257, + "name": "FIXED_2", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6240, + "src": "56663:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 11258, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "56641:30:10", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "functionReturnParameters": 11235, + "id": 11259, + "nodeType": "Return", + "src": "56634:37:10" + } + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 11263, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 11261, + "name": "_b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11229, + "src": "56679:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 11262, + "name": "FIXED_2", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6240, + "src": "56684:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "56679:12:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 11273, + "nodeType": "IfStatement", + "src": "56675:55:10", + "trueBody": { + "expression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "id": 11264, + "name": "FIXED_2", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6240, + "src": "56701:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 11270, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 11267, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 11265, + "name": "_b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11229, + "src": "56711:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 11266, + "name": "FIXED_2", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6240, + "src": "56716:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "56711:12:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 11268, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "56710:14:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 11269, + "name": "_a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11227, + "src": "56727:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "56710:19:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 11271, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "56700:30:10", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "functionReturnParameters": 11235, + "id": 11272, + "nodeType": "Return", + "src": "56693:37:10" + } + }, + { + "assignments": [ + 11275 + ], + "declarations": [ + { + "constant": false, + "id": 11275, + "name": "c", + "nodeType": "VariableDeclaration", + "scope": 11300, + "src": "56734:9:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11274, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "56734:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 11282, + "initialValue": { + "argumentTypes": null, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 11278, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 11276, + "name": "_a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11227, + "src": "56746:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "id": 11277, + "name": "_b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11229, + "src": "56751:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "56746:7:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "argumentTypes": null, + "id": 11280, + "name": "_b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11229, + "src": "56761:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 11281, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "56746:17:10", + "trueExpression": { + "argumentTypes": null, + "id": 11279, + "name": "_a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11227, + "src": "56756:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "56734:29:10" + }, + { + "assignments": [ + 11284 + ], + "declarations": [ + { + "constant": false, + "id": 11284, + "name": "n", + "nodeType": "VariableDeclaration", + "scope": 11300, + "src": "56767:9:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11283, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "56767:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 11290, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 11288, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 11286, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11275, + "src": "56789:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 11287, + "name": "FIXED_1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6237, + "src": "56793:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "56789:11:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 11285, + "name": "floorLog2", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8605, + "src": "56779:9:10", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint8_$", + "typeString": "function (uint256) pure returns (uint8)" + } + }, + "id": 11289, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "56779:22:10", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "56767:34:10" + }, + { + "expression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 11293, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 11291, + "name": "_a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11227, + "src": "56813:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "argumentTypes": null, + "id": 11292, + "name": "n", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11284, + "src": "56819:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "56813:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 11296, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 11294, + "name": "_b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11229, + "src": "56822:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "argumentTypes": null, + "id": 11295, + "name": "n", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11284, + "src": "56828:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "56822:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 11297, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "56812:18:10", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "functionReturnParameters": 11235, + "id": 11298, + "nodeType": "Return", + "src": "56805:25:10" + } + ] + }, + "documentation": "@dev reduces \"a\" and \"b\" while maintaining their ratio.", + "id": 11300, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "safeFactors", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11230, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11227, + "name": "_a", + "nodeType": "VariableDeclaration", + "scope": 11300, + "src": "56492:10:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11226, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "56492:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 11229, + "name": "_b", + "nodeType": "VariableDeclaration", + "scope": 11300, + "src": "56504:10:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11228, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "56504:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "56491:24:10" + }, + "payable": false, + "returnParameters": { + "id": 11235, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11232, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 11300, + "src": "56539:7:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11231, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "56539:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 11234, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 11300, + "src": "56548:7:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11233, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "56548:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "56538:18:10" + }, + "scope": 11642, + "src": "56471:363:10", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 11333, + "nodeType": "Block", + "src": "57014:119:10", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 11313, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 11311, + "name": "_a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11302, + "src": "57022:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "id": 11312, + "name": "_b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11304, + "src": "57028:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "57022:8:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 11319, + "nodeType": "IfStatement", + "src": "57018:44:10", + "trueBody": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 11315, + "name": "_a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11302, + "src": "57055:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 11316, + "name": "_b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11304, + "src": "57059:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 11314, + "name": "accurateWeights", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11396, + "src": "57039:15:10", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint32_$_t_uint32_$", + "typeString": "function (uint256,uint256) pure returns (uint32,uint32)" + } + }, + "id": 11317, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "57039:23:10", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint32_$_t_uint32_$", + "typeString": "tuple(uint32,uint32)" + } + }, + "functionReturnParameters": 11310, + "id": 11318, + "nodeType": "Return", + "src": "57032:30:10" + } + }, + { + "assignments": [ + 11321, + 11323 + ], + "declarations": [ + { + "constant": false, + "id": 11321, + "name": "y", + "nodeType": "VariableDeclaration", + "scope": 11334, + "src": "57067:8:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 11320, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "57067:6:10", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 11323, + "name": "x", + "nodeType": "VariableDeclaration", + "scope": 11334, + "src": "57077:8:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 11322, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "57077:6:10", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 11328, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 11325, + "name": "_b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11304, + "src": "57105:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 11326, + "name": "_a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11302, + "src": "57109:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 11324, + "name": "accurateWeights", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11396, + "src": "57089:15:10", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint32_$_t_uint32_$", + "typeString": "function (uint256,uint256) pure returns (uint32,uint32)" + } + }, + "id": 11327, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "57089:23:10", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint32_$_t_uint32_$", + "typeString": "tuple(uint32,uint32)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "57066:46:10" + }, + { + "expression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "id": 11329, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11323, + "src": "57124:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + { + "argumentTypes": null, + "id": 11330, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11321, + "src": "57127:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + } + ], + "id": 11331, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "57123:6:10", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint32_$_t_uint32_$", + "typeString": "tuple(uint32,uint32)" + } + }, + "functionReturnParameters": 11310, + "id": 11332, + "nodeType": "Return", + "src": "57116:13:10" + } + ] + }, + "documentation": "@dev computes \"MAX_WEIGHT * a / (a + b)\" and \"MAX_WEIGHT * b / (a + b)\".", + "id": 11334, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "normalizedWeights", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11305, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11302, + "name": "_a", + "nodeType": "VariableDeclaration", + "scope": 11334, + "src": "56951:10:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11301, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "56951:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 11304, + "name": "_b", + "nodeType": "VariableDeclaration", + "scope": 11334, + "src": "56963:10:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11303, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "56963:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "56950:24:10" + }, + "payable": false, + "returnParameters": { + "id": 11310, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11307, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 11334, + "src": "56998:6:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 11306, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "56998:6:10", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 11309, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 11334, + "src": "57006:6:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 11308, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "57006:6:10", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "56997:16:10" + }, + "scope": 11642, + "src": "56924:209:10", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 11395, + "nodeType": "Block", + "src": "57335:223:10", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 11347, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 11345, + "name": "_a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11336, + "src": "57343:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "id": 11346, + "name": "MAX_UNF_WEIGHT", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6270, + "src": "57348:14:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "57343:19:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 11368, + "nodeType": "IfStatement", + "src": "57339:100:10", + "trueBody": { + "id": 11367, + "nodeType": "Block", + "src": "57364:75:10", + "statements": [ + { + "assignments": [ + 11349 + ], + "declarations": [ + { + "constant": false, + "id": 11349, + "name": "c", + "nodeType": "VariableDeclaration", + "scope": 11396, + "src": "57369:9:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11348, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "57369:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 11358, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 11357, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 11355, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 11350, + "name": "_a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11336, + "src": "57381:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 11353, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 11351, + "name": "MAX_UNF_WEIGHT", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6270, + "src": "57387:14:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 11352, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "57404:1:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "57387:18:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 11354, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "57386:20:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "57381:25:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 11356, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "57409:1:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "57381:29:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "57369:41:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 11361, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 11359, + "name": "_a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11336, + "src": "57415:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "/=", + "rightHandSide": { + "argumentTypes": null, + "id": 11360, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11349, + "src": "57421:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "57415:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 11362, + "nodeType": "ExpressionStatement", + "src": "57415:7:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 11365, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 11363, + "name": "_b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11338, + "src": "57427:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "/=", + "rightHandSide": { + "argumentTypes": null, + "id": 11364, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11349, + "src": "57433:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "57427:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 11366, + "nodeType": "ExpressionStatement", + "src": "57427:7:10" + } + ] + } + }, + { + "assignments": [ + 11370 + ], + "declarations": [ + { + "constant": false, + "id": 11370, + "name": "x", + "nodeType": "VariableDeclaration", + "scope": 11396, + "src": "57442:9:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11369, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "57442:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 11380, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 11374, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 11372, + "name": "_a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11336, + "src": "57463:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 11373, + "name": "MAX_WEIGHT", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6228, + "src": "57468:10:10", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "57463:15:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 11377, + "name": "_b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11338, + "src": "57487:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 11375, + "name": "_a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11336, + "src": "57480:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 11376, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 21737, + "src": "57480:6:10", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 11378, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "57480:10:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 11371, + "name": "roundDiv", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11422, + "src": "57454:8:10", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 11379, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "57454:37:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "57442:49:10" + }, + { + "assignments": [ + 11382 + ], + "declarations": [ + { + "constant": false, + "id": 11382, + "name": "y", + "nodeType": "VariableDeclaration", + "scope": 11396, + "src": "57495:9:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11381, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "57495:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 11386, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 11385, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 11383, + "name": "MAX_WEIGHT", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6228, + "src": "57507:10:10", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 11384, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11370, + "src": "57520:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "57507:14:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "57495:26:10" + }, + { + "expression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 11388, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11370, + "src": "57540:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 11387, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "57533:6:10", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint32_$", + "typeString": "type(uint32)" + }, + "typeName": "uint32" + }, + "id": 11389, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "57533:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 11391, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11382, + "src": "57551:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 11390, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "57544:6:10", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint32_$", + "typeString": "type(uint32)" + }, + "typeName": "uint32" + }, + "id": 11392, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "57544:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + } + ], + "id": 11393, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "57532:22:10", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint32_$_t_uint32_$", + "typeString": "tuple(uint32,uint32)" + } + }, + "functionReturnParameters": 11344, + "id": 11394, + "nodeType": "Return", + "src": "57525:29:10" + } + ] + }, + "documentation": "@dev computes \"MAX_WEIGHT * a / (a + b)\" and \"MAX_WEIGHT * b / (a + b)\", assuming that \"a <= b\".", + "id": 11396, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "accurateWeights", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11339, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11336, + "name": "_a", + "nodeType": "VariableDeclaration", + "scope": 11396, + "src": "57272:10:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11335, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "57272:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 11338, + "name": "_b", + "nodeType": "VariableDeclaration", + "scope": 11396, + "src": "57284:10:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11337, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "57284:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "57271:24:10" + }, + "payable": false, + "returnParameters": { + "id": 11344, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11341, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 11396, + "src": "57319:6:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 11340, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "57319:6:10", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 11343, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 11396, + "src": "57327:6:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 11342, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "57327:6:10", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "57318:16:10" + }, + "scope": 11642, + "src": "57247:311:10", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 11421, + "nodeType": "Block", + "src": "57740:50:10", + "statements": [ + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 11419, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 11407, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 11405, + "name": "_n", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11398, + "src": "57751:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 11406, + "name": "_d", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11400, + "src": "57756:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "57751:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 11418, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 11410, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 11408, + "name": "_n", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11398, + "src": "57762:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "argumentTypes": null, + "id": 11409, + "name": "_d", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11400, + "src": "57767:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "57762:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 11411, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "57761:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 11416, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 11412, + "name": "_d", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11400, + "src": "57774:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 11415, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 11413, + "name": "_d", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11400, + "src": "57779:2:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 11414, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "57784:1:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "57779:6:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "57774:11:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 11417, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "57773:13:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "57761:25:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "57751:35:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 11404, + "id": 11420, + "nodeType": "Return", + "src": "57744:42:10" + } + ] + }, + "documentation": "@dev computes the nearest integer to a given quotient without overflowing or underflowing.", + "id": 11422, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "roundDiv", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11401, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11398, + "name": "_n", + "nodeType": "VariableDeclaration", + "scope": 11422, + "src": "57684:10:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11397, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "57684:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 11400, + "name": "_d", + "nodeType": "VariableDeclaration", + "scope": 11422, + "src": "57696:10:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11399, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "57696:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "57683:24:10" + }, + "payable": false, + "returnParameters": { + "id": 11404, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11403, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 11422, + "src": "57731:7:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11402, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "57731:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "57730:9:10" + }, + "scope": 11642, + "src": "57666:124:10", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 11442, + "nodeType": "Block", + "src": "58003:86:10", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 11436, + "name": "_supply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11424, + "src": "58035:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 11437, + "name": "_reserveBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11426, + "src": "58044:15:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 11438, + "name": "_reserveWeight", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11428, + "src": "58061:14:10", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + { + "argumentTypes": null, + "id": 11439, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11430, + "src": "58077:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 11435, + "name": "purchaseTargetAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 7733 + ], + "referencedDeclaration": 7733, + "src": "58014:20:10", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint256_$_t_uint32_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint32,uint256) view returns (uint256)" + } + }, + "id": 11440, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58014:71:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 11434, + "id": 11441, + "nodeType": "Return", + "src": "58007:78:10" + } + ] + }, + "documentation": "@dev deprecated, backward compatibility", + "id": 11443, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "calculatePurchaseReturn", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11431, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11424, + "name": "_supply", + "nodeType": "VariableDeclaration", + "scope": 11443, + "src": "57883:15:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11423, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "57883:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 11426, + "name": "_reserveBalance", + "nodeType": "VariableDeclaration", + "scope": 11443, + "src": "57902:23:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11425, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "57902:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 11428, + "name": "_reserveWeight", + "nodeType": "VariableDeclaration", + "scope": 11443, + "src": "57929:21:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 11427, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "57929:6:10", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 11430, + "name": "_amount", + "nodeType": "VariableDeclaration", + "scope": 11443, + "src": "57954:15:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11429, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "57954:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "57879:93:10" + }, + "payable": false, + "returnParameters": { + "id": 11434, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11433, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 11443, + "src": "57994:7:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11432, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "57994:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "57993:9:10" + }, + "scope": 11642, + "src": "57847:242:10", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 11463, + "nodeType": "Block", + "src": "58298:82:10", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 11457, + "name": "_supply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11445, + "src": "58326:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 11458, + "name": "_reserveBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11447, + "src": "58335:15:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 11459, + "name": "_reserveWeight", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11449, + "src": "58352:14:10", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + { + "argumentTypes": null, + "id": 11460, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11451, + "src": "58368:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 11456, + "name": "saleTargetAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 7845 + ], + "referencedDeclaration": 7845, + "src": "58309:16:10", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint256_$_t_uint32_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint32,uint256) view returns (uint256)" + } + }, + "id": 11461, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58309:67:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 11455, + "id": 11462, + "nodeType": "Return", + "src": "58302:74:10" + } + ] + }, + "documentation": "@dev deprecated, backward compatibility", + "id": 11464, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "calculateSaleReturn", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11452, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11445, + "name": "_supply", + "nodeType": "VariableDeclaration", + "scope": 11464, + "src": "58178:15:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11444, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "58178:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 11447, + "name": "_reserveBalance", + "nodeType": "VariableDeclaration", + "scope": 11464, + "src": "58197:23:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11446, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "58197:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 11449, + "name": "_reserveWeight", + "nodeType": "VariableDeclaration", + "scope": 11464, + "src": "58224:21:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 11448, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "58224:6:10", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 11451, + "name": "_amount", + "nodeType": "VariableDeclaration", + "scope": 11464, + "src": "58249:15:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11450, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "58249:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "58174:93:10" + }, + "payable": false, + "returnParameters": { + "id": 11455, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11454, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 11464, + "src": "58289:7:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11453, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "58289:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "58288:9:10" + }, + "scope": 11642, + "src": "58146:234:10", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 11487, + "nodeType": "Block", + "src": "58654:138:10", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 11480, + "name": "_sourceReserveBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11466, + "src": "58690:21:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 11481, + "name": "_sourceReserveWeight", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11468, + "src": "58713:20:10", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + { + "argumentTypes": null, + "id": 11482, + "name": "_targetReserveBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11470, + "src": "58735:21:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 11483, + "name": "_targetReserveWeight", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11472, + "src": "58758:20:10", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + { + "argumentTypes": null, + "id": 11484, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11474, + "src": "58780:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 11479, + "name": "crossReserveTargetAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 7949 + ], + "referencedDeclaration": 7949, + "src": "58665:24:10", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint32_$_t_uint256_$_t_uint32_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint32,uint256,uint32,uint256) view returns (uint256)" + } + }, + "id": 11485, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58665:123:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 11478, + "id": 11486, + "nodeType": "Return", + "src": "58658:130:10" + } + ] + }, + "documentation": "@dev deprecated, backward compatibility", + "id": 11488, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "calculateCrossReserveReturn", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11475, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11466, + "name": "_sourceReserveBalance", + "nodeType": "VariableDeclaration", + "scope": 11488, + "src": "58477:29:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11465, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "58477:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 11468, + "name": "_sourceReserveWeight", + "nodeType": "VariableDeclaration", + "scope": 11488, + "src": "58510:27:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 11467, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "58510:6:10", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 11470, + "name": "_targetReserveBalance", + "nodeType": "VariableDeclaration", + "scope": 11488, + "src": "58541:29:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11469, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "58541:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 11472, + "name": "_targetReserveWeight", + "nodeType": "VariableDeclaration", + "scope": 11488, + "src": "58574:27:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 11471, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "58574:6:10", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 11474, + "name": "_amount", + "nodeType": "VariableDeclaration", + "scope": 11488, + "src": "58605:15:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11473, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "58605:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "58473:150:10" + }, + "payable": false, + "returnParameters": { + "id": 11478, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11477, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 11488, + "src": "58645:7:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11476, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "58645:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "58644:9:10" + }, + "scope": 11642, + "src": "58437:355:10", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 11511, + "nodeType": "Block", + "src": "59068:138:10", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 11504, + "name": "_sourceReserveBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11490, + "src": "59104:21:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 11505, + "name": "_sourceReserveWeight", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11492, + "src": "59127:20:10", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + { + "argumentTypes": null, + "id": 11506, + "name": "_targetReserveBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11494, + "src": "59149:21:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 11507, + "name": "_targetReserveWeight", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11496, + "src": "59172:20:10", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + { + "argumentTypes": null, + "id": 11508, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11498, + "src": "59194:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 11503, + "name": "crossReserveTargetAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 7949 + ], + "referencedDeclaration": 7949, + "src": "59079:24:10", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint32_$_t_uint256_$_t_uint32_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint32,uint256,uint32,uint256) view returns (uint256)" + } + }, + "id": 11509, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "59079:123:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 11502, + "id": 11510, + "nodeType": "Return", + "src": "59072:130:10" + } + ] + }, + "documentation": "@dev deprecated, backward compatibility", + "id": 11512, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "calculateCrossConnectorReturn", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11499, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11490, + "name": "_sourceReserveBalance", + "nodeType": "VariableDeclaration", + "scope": 11512, + "src": "58891:29:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11489, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "58891:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 11492, + "name": "_sourceReserveWeight", + "nodeType": "VariableDeclaration", + "scope": 11512, + "src": "58924:27:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 11491, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "58924:6:10", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 11494, + "name": "_targetReserveBalance", + "nodeType": "VariableDeclaration", + "scope": 11512, + "src": "58955:29:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11493, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "58955:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 11496, + "name": "_targetReserveWeight", + "nodeType": "VariableDeclaration", + "scope": 11512, + "src": "58988:27:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 11495, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "58988:6:10", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 11498, + "name": "_amount", + "nodeType": "VariableDeclaration", + "scope": 11512, + "src": "59019:15:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11497, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "59019:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "58887:150:10" + }, + "payable": false, + "returnParameters": { + "id": 11502, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11501, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 11512, + "src": "59059:7:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11500, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "59059:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "59058:9:10" + }, + "scope": 11642, + "src": "58849:357:10", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 11532, + "nodeType": "Block", + "src": "59412:73:10", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 11526, + "name": "_supply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11514, + "src": "59432:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 11527, + "name": "_reserveBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11516, + "src": "59441:15:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 11528, + "name": "_reserveRatio", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11518, + "src": "59458:13:10", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + { + "argumentTypes": null, + "id": 11529, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11520, + "src": "59473:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 11525, + "name": "fundCost", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 8055 + ], + "referencedDeclaration": 8055, + "src": "59423:8:10", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint256_$_t_uint32_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint32,uint256) view returns (uint256)" + } + }, + "id": 11530, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "59423:58:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 11524, + "id": 11531, + "nodeType": "Return", + "src": "59416:65:10" + } + ] + }, + "documentation": "@dev deprecated, backward compatibility", + "id": 11533, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "calculateFundCost", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11521, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11514, + "name": "_supply", + "nodeType": "VariableDeclaration", + "scope": 11533, + "src": "59293:15:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11513, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "59293:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 11516, + "name": "_reserveBalance", + "nodeType": "VariableDeclaration", + "scope": 11533, + "src": "59312:23:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11515, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "59312:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 11518, + "name": "_reserveRatio", + "nodeType": "VariableDeclaration", + "scope": 11533, + "src": "59339:20:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 11517, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "59339:6:10", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 11520, + "name": "_amount", + "nodeType": "VariableDeclaration", + "scope": 11533, + "src": "59363:15:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11519, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "59363:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "59289:92:10" + }, + "payable": false, + "returnParameters": { + "id": 11524, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11523, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 11533, + "src": "59403:7:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11522, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "59403:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "59402:9:10" + }, + "scope": 11642, + "src": "59263:222:10", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 11553, + "nodeType": "Block", + "src": "59698:87:10", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 11547, + "name": "_supply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11535, + "src": "59732:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 11548, + "name": "_reserveBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11537, + "src": "59741:15:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 11549, + "name": "_reserveRatio", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11539, + "src": "59758:13:10", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + { + "argumentTypes": null, + "id": 11550, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11541, + "src": "59773:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 11546, + "name": "liquidateReserveAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 8264 + ], + "referencedDeclaration": 8264, + "src": "59709:22:10", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint256_$_t_uint32_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint32,uint256) view returns (uint256)" + } + }, + "id": 11551, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "59709:72:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 11545, + "id": 11552, + "nodeType": "Return", + "src": "59702:79:10" + } + ] + }, + "documentation": "@dev deprecated, backward compatibility", + "id": 11554, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "calculateLiquidateReturn", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11542, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11535, + "name": "_supply", + "nodeType": "VariableDeclaration", + "scope": 11554, + "src": "59579:15:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11534, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "59579:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 11537, + "name": "_reserveBalance", + "nodeType": "VariableDeclaration", + "scope": 11554, + "src": "59598:23:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11536, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "59598:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 11539, + "name": "_reserveRatio", + "nodeType": "VariableDeclaration", + "scope": 11554, + "src": "59625:20:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 11538, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "59625:6:10", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 11541, + "name": "_amount", + "nodeType": "VariableDeclaration", + "scope": 11554, + "src": "59649:15:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11540, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "59649:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "59575:92:10" + }, + "payable": false, + "returnParameters": { + "id": 11545, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11544, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 11554, + "src": "59689:7:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11543, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "59689:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "59688:9:10" + }, + "scope": 11642, + "src": "59542:243:10", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 11574, + "nodeType": "Block", + "src": "59987:86:10", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 11568, + "name": "_supply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11556, + "src": "60019:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 11569, + "name": "_reserveBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11558, + "src": "60028:15:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 11570, + "name": "_reserveWeight", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11560, + "src": "60045:14:10", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + { + "argumentTypes": null, + "id": 11571, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11562, + "src": "60061:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 11567, + "name": "purchaseTargetAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 7733 + ], + "referencedDeclaration": 7733, + "src": "59998:20:10", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint256_$_t_uint32_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint32,uint256) view returns (uint256)" + } + }, + "id": 11572, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "59998:71:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 11566, + "id": 11573, + "nodeType": "Return", + "src": "59991:78:10" + } + ] + }, + "documentation": "@dev deprecated, backward compatibility", + "id": 11575, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "purchaseRate", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11563, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11556, + "name": "_supply", + "nodeType": "VariableDeclaration", + "scope": 11575, + "src": "59867:15:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11555, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "59867:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 11558, + "name": "_reserveBalance", + "nodeType": "VariableDeclaration", + "scope": 11575, + "src": "59886:23:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11557, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "59886:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 11560, + "name": "_reserveWeight", + "nodeType": "VariableDeclaration", + "scope": 11575, + "src": "59913:21:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 11559, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "59913:6:10", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 11562, + "name": "_amount", + "nodeType": "VariableDeclaration", + "scope": 11575, + "src": "59938:15:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11561, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "59938:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "59863:93:10" + }, + "payable": false, + "returnParameters": { + "id": 11566, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11565, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 11575, + "src": "59978:7:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11564, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "59978:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "59977:9:10" + }, + "scope": 11642, + "src": "59842:231:10", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 11595, + "nodeType": "Block", + "src": "60271:82:10", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 11589, + "name": "_supply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11577, + "src": "60299:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 11590, + "name": "_reserveBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11579, + "src": "60308:15:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 11591, + "name": "_reserveWeight", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11581, + "src": "60325:14:10", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + { + "argumentTypes": null, + "id": 11592, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11583, + "src": "60341:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 11588, + "name": "saleTargetAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 7845 + ], + "referencedDeclaration": 7845, + "src": "60282:16:10", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint256_$_t_uint32_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint32,uint256) view returns (uint256)" + } + }, + "id": 11593, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "60282:67:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 11587, + "id": 11594, + "nodeType": "Return", + "src": "60275:74:10" + } + ] + }, + "documentation": "@dev deprecated, backward compatibility", + "id": 11596, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "saleRate", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11584, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11577, + "name": "_supply", + "nodeType": "VariableDeclaration", + "scope": 11596, + "src": "60151:15:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11576, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "60151:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 11579, + "name": "_reserveBalance", + "nodeType": "VariableDeclaration", + "scope": 11596, + "src": "60170:23:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11578, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "60170:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 11581, + "name": "_reserveWeight", + "nodeType": "VariableDeclaration", + "scope": 11596, + "src": "60197:21:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 11580, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "60197:6:10", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 11583, + "name": "_amount", + "nodeType": "VariableDeclaration", + "scope": 11596, + "src": "60222:15:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11582, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "60222:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "60147:93:10" + }, + "payable": false, + "returnParameters": { + "id": 11587, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11586, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 11596, + "src": "60262:7:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11585, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "60262:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "60261:9:10" + }, + "scope": 11642, + "src": "60130:223:10", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 11619, + "nodeType": "Block", + "src": "60616:138:10", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 11612, + "name": "_sourceReserveBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11598, + "src": "60652:21:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 11613, + "name": "_sourceReserveWeight", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11600, + "src": "60675:20:10", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + { + "argumentTypes": null, + "id": 11614, + "name": "_targetReserveBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11602, + "src": "60697:21:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 11615, + "name": "_targetReserveWeight", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11604, + "src": "60720:20:10", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + { + "argumentTypes": null, + "id": 11616, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11606, + "src": "60742:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 11611, + "name": "crossReserveTargetAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 7949 + ], + "referencedDeclaration": 7949, + "src": "60627:24:10", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint32_$_t_uint256_$_t_uint32_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint32,uint256,uint32,uint256) view returns (uint256)" + } + }, + "id": 11617, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "60627:123:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 11610, + "id": 11618, + "nodeType": "Return", + "src": "60620:130:10" + } + ] + }, + "documentation": "@dev deprecated, backward compatibility", + "id": 11620, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "crossReserveRate", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11607, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11598, + "name": "_sourceReserveBalance", + "nodeType": "VariableDeclaration", + "scope": 11620, + "src": "60439:29:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11597, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "60439:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 11600, + "name": "_sourceReserveWeight", + "nodeType": "VariableDeclaration", + "scope": 11620, + "src": "60472:27:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 11599, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "60472:6:10", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 11602, + "name": "_targetReserveBalance", + "nodeType": "VariableDeclaration", + "scope": 11620, + "src": "60503:29:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11601, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "60503:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 11604, + "name": "_targetReserveWeight", + "nodeType": "VariableDeclaration", + "scope": 11620, + "src": "60536:27:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 11603, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "60536:6:10", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 11606, + "name": "_amount", + "nodeType": "VariableDeclaration", + "scope": 11620, + "src": "60567:15:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11605, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "60567:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "60435:150:10" + }, + "payable": false, + "returnParameters": { + "id": 11610, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11609, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 11620, + "src": "60607:7:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11608, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "60607:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "60606:9:10" + }, + "scope": 11642, + "src": "60410:344:10", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 11640, + "nodeType": "Block", + "src": "60956:87:10", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 11634, + "name": "_supply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11622, + "src": "60990:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 11635, + "name": "_reserveBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11624, + "src": "60999:15:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 11636, + "name": "_reserveRatio", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11626, + "src": "61016:13:10", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + { + "argumentTypes": null, + "id": 11637, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11628, + "src": "61031:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 11633, + "name": "liquidateReserveAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 8264 + ], + "referencedDeclaration": 8264, + "src": "60967:22:10", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint256_$_t_uint32_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint32,uint256) view returns (uint256)" + } + }, + "id": 11638, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "60967:72:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 11632, + "id": 11639, + "nodeType": "Return", + "src": "60960:79:10" + } + ] + }, + "documentation": "@dev deprecated, backward compatibility", + "id": 11641, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "liquidateRate", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11629, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11622, + "name": "_supply", + "nodeType": "VariableDeclaration", + "scope": 11641, + "src": "60837:15:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11621, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "60837:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 11624, + "name": "_reserveBalance", + "nodeType": "VariableDeclaration", + "scope": 11641, + "src": "60856:23:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11623, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "60856:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 11626, + "name": "_reserveRatio", + "nodeType": "VariableDeclaration", + "scope": 11641, + "src": "60883:20:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 11625, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "60883:6:10", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 11628, + "name": "_amount", + "nodeType": "VariableDeclaration", + "scope": 11641, + "src": "60907:15:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11627, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "60907:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "60833:92:10" + }, + "payable": false, + "returnParameters": { + "id": 11632, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11631, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 11641, + "src": "60947:7:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11630, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "60947:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "60946:9:10" + }, + "scope": 11642, + "src": "60811:232:10", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 11643, + "src": "105:60940:10" + } + ], + "src": "0:61046:10" + }, + "id": 10 + }, + "solidity/contracts/converter/interfaces/IConverter.sol": { + "ast": { + "absolutePath": "solidity/contracts/converter/interfaces/IConverter.sol", + "exportedSymbols": { + "IConverter": [ + 11817 + ] + }, + "id": 11818, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 11644, + "literals": [ + "solidity", + "0.4", + ".26" + ], + "nodeType": "PragmaDirective", + "src": "0:23:11" + }, + { + "absolutePath": "solidity/contracts/converter/interfaces/IConverterAnchor.sol", + "file": "./IConverterAnchor.sol", + "id": 11645, + "nodeType": "ImportDirective", + "scope": 11818, + "sourceUnit": 11827, + "src": "24:32:11", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "solidity/contracts/token/interfaces/IERC20Token.sol", + "file": "../../token/interfaces/IERC20Token.sol", + "id": 11646, + "nodeType": "ImportDirective", + "scope": 11818, + "sourceUnit": 20241, + "src": "57:48:11", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "solidity/contracts/utility/interfaces/IOwned.sol", + "file": "../../utility/interfaces/IOwned.sol", + "id": 11647, + "nodeType": "ImportDirective", + "scope": 11818, + "sourceUnit": 22248, + "src": "106:45:11", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "solidity/contracts/utility/interfaces/IWhitelist.sol", + "file": "../../utility/interfaces/IWhitelist.sol", + "id": 11648, + "nodeType": "ImportDirective", + "scope": 11818, + "sourceUnit": 22324, + "src": "152:49:11", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 11649, + "name": "IOwned", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 22247, + "src": "256:6:11", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IOwned_$22247", + "typeString": "contract IOwned" + } + }, + "id": 11650, + "nodeType": "InheritanceSpecifier", + "src": "256:6:11" + } + ], + "contractDependencies": [ + 22247 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": false, + "id": 11817, + "linearizedBaseContracts": [ + 11817, + 22247 + ], + "name": "IConverter", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": null, + "id": 11655, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "converterType", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11651, + "nodeType": "ParameterList", + "parameters": [], + "src": "288:2:11" + }, + "payable": false, + "returnParameters": { + "id": 11654, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11653, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 11655, + "src": "312:6:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 11652, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "312:6:11", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "311:8:11" + }, + "scope": 11817, + "src": "266:54:11", + "stateMutability": "pure", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 11662, + "nodeType": "Block", + "src": "380:12:11", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 11660, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22371, + "src": "384:4:11", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + "id": 11661, + "nodeType": "ExpressionStatement", + "src": "384:4:11" + } + ] + }, + "documentation": null, + "id": 11663, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "anchor", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11656, + "nodeType": "ParameterList", + "parameters": [], + "src": "338:2:11" + }, + "payable": false, + "returnParameters": { + "id": 11659, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11658, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 11663, + "src": "362:16:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + }, + "typeName": { + "contractScope": null, + "id": 11657, + "name": "IConverterAnchor", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11826, + "src": "362:16:11", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "361:18:11" + }, + "scope": 11817, + "src": "323:69:11", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 11668, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "isActive", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11664, + "nodeType": "ParameterList", + "parameters": [], + "src": "412:2:11" + }, + "payable": false, + "returnParameters": { + "id": 11667, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11666, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 11668, + "src": "436:4:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 11665, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "436:4:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "435:6:11" + }, + "scope": 11817, + "src": "395:47:11", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 11681, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "targetAmountAndFee", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11675, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11670, + "name": "_sourceToken", + "nodeType": "VariableDeclaration", + "scope": 11681, + "src": "476:24:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + "typeName": { + "contractScope": null, + "id": 11669, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "476:11:11", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 11672, + "name": "_targetToken", + "nodeType": "VariableDeclaration", + "scope": 11681, + "src": "504:24:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + "typeName": { + "contractScope": null, + "id": 11671, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "504:11:11", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 11674, + "name": "_amount", + "nodeType": "VariableDeclaration", + "scope": 11681, + "src": "532:15:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11673, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "532:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "472:78:11" + }, + "payable": false, + "returnParameters": { + "id": 11680, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11677, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 11681, + "src": "572:7:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11676, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "572:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 11679, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 11681, + "src": "581:7:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11678, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "581:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "571:18:11" + }, + "scope": 11817, + "src": "445:145:11", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 11696, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "convert", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11692, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11683, + "name": "_sourceToken", + "nodeType": "VariableDeclaration", + "scope": 11696, + "src": "613:24:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + "typeName": { + "contractScope": null, + "id": 11682, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "613:11:11", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 11685, + "name": "_targetToken", + "nodeType": "VariableDeclaration", + "scope": 11696, + "src": "641:24:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + "typeName": { + "contractScope": null, + "id": 11684, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "641:11:11", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 11687, + "name": "_amount", + "nodeType": "VariableDeclaration", + "scope": 11696, + "src": "669:15:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11686, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "669:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 11689, + "name": "_trader", + "nodeType": "VariableDeclaration", + "scope": 11696, + "src": "688:15:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11688, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "688:7:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 11691, + "name": "_beneficiary", + "nodeType": "VariableDeclaration", + "scope": 11696, + "src": "707:20:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11690, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "707:7:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "609:121:11" + }, + "payable": true, + "returnParameters": { + "id": 11695, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11694, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 11696, + "src": "755:7:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11693, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "755:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "754:9:11" + }, + "scope": 11817, + "src": "593:171:11", + "stateMutability": "payable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 11703, + "nodeType": "Block", + "src": "831:12:11", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 11701, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22371, + "src": "835:4:11", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + "id": 11702, + "nodeType": "ExpressionStatement", + "src": "835:4:11" + } + ] + }, + "documentation": null, + "id": 11704, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "conversionWhitelist", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11697, + "nodeType": "ParameterList", + "parameters": [], + "src": "795:2:11" + }, + "payable": false, + "returnParameters": { + "id": 11700, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11699, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 11704, + "src": "819:10:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWhitelist_$22323", + "typeString": "contract IWhitelist" + }, + "typeName": { + "contractScope": null, + "id": 11698, + "name": "IWhitelist", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 22323, + "src": "819:10:11", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWhitelist_$22323", + "typeString": "contract IWhitelist" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "818:12:11" + }, + "scope": 11817, + "src": "767:76:11", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 11711, + "nodeType": "Block", + "src": "900:12:11", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 11709, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22371, + "src": "904:4:11", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + "id": 11710, + "nodeType": "ExpressionStatement", + "src": "904:4:11" + } + ] + }, + "documentation": null, + "id": 11712, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "conversionFee", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11705, + "nodeType": "ParameterList", + "parameters": [], + "src": "868:2:11" + }, + "payable": false, + "returnParameters": { + "id": 11708, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11707, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 11712, + "src": "892:6:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 11706, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "892:6:11", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "891:8:11" + }, + "scope": 11817, + "src": "846:66:11", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 11719, + "nodeType": "Block", + "src": "972:12:11", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 11717, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22371, + "src": "976:4:11", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + "id": 11718, + "nodeType": "ExpressionStatement", + "src": "976:4:11" + } + ] + }, + "documentation": null, + "id": 11720, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "maxConversionFee", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11713, + "nodeType": "ParameterList", + "parameters": [], + "src": "940:2:11" + }, + "payable": false, + "returnParameters": { + "id": 11716, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11715, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 11720, + "src": "964:6:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 11714, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "964:6:11", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "963:8:11" + }, + "scope": 11817, + "src": "915:69:11", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 11727, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "reserveBalance", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11723, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11722, + "name": "_reserveToken", + "nodeType": "VariableDeclaration", + "scope": 11727, + "src": "1011:25:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + "typeName": { + "contractScope": null, + "id": 11721, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "1011:11:11", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1010:27:11" + }, + "payable": false, + "returnParameters": { + "id": 11726, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11725, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 11727, + "src": "1059:7:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11724, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1059:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1058:9:11" + }, + "scope": 11817, + "src": "987:81:11", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 11730, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11728, + "nodeType": "ParameterList", + "parameters": [], + "src": "1079:2:11" + }, + "payable": true, + "returnParameters": { + "id": 11729, + "nodeType": "ParameterList", + "parameters": [], + "src": "1098:0:11" + }, + "scope": 11817, + "src": "1071:28:11", + "stateMutability": "payable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 11735, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "transferAnchorOwnership", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11733, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11732, + "name": "_newOwner", + "nodeType": "VariableDeclaration", + "scope": 11735, + "src": "1135:17:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11731, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1135:7:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1134:19:11" + }, + "payable": false, + "returnParameters": { + "id": 11734, + "nodeType": "ParameterList", + "parameters": [], + "src": "1160:0:11" + }, + "scope": 11817, + "src": "1102:59:11", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 11738, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "acceptAnchorOwnership", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11736, + "nodeType": "ParameterList", + "parameters": [], + "src": "1194:2:11" + }, + "payable": false, + "returnParameters": { + "id": 11737, + "nodeType": "ParameterList", + "parameters": [], + "src": "1203:0:11" + }, + "scope": 11817, + "src": "1164:40:11", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 11743, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "setConversionFee", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11741, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11740, + "name": "_conversionFee", + "nodeType": "VariableDeclaration", + "scope": 11743, + "src": "1233:21:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 11739, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "1233:6:11", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1232:23:11" + }, + "payable": false, + "returnParameters": { + "id": 11742, + "nodeType": "ParameterList", + "parameters": [], + "src": "1262:0:11" + }, + "scope": 11817, + "src": "1207:56:11", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 11748, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "setConversionWhitelist", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11746, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11745, + "name": "_whitelist", + "nodeType": "VariableDeclaration", + "scope": 11748, + "src": "1298:21:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWhitelist_$22323", + "typeString": "contract IWhitelist" + }, + "typeName": { + "contractScope": null, + "id": 11744, + "name": "IWhitelist", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 22323, + "src": "1298:10:11", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWhitelist_$22323", + "typeString": "contract IWhitelist" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1297:23:11" + }, + "payable": false, + "returnParameters": { + "id": 11747, + "nodeType": "ParameterList", + "parameters": [], + "src": "1327:0:11" + }, + "scope": 11817, + "src": "1266:62:11", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 11757, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "withdrawTokens", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11755, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11750, + "name": "_token", + "nodeType": "VariableDeclaration", + "scope": 11757, + "src": "1358:18:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + "typeName": { + "contractScope": null, + "id": 11749, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "1358:11:11", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 11752, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 11757, + "src": "1380:11:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11751, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1380:7:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 11754, + "name": "_amount", + "nodeType": "VariableDeclaration", + "scope": 11757, + "src": "1395:15:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11753, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1395:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1354:59:11" + }, + "payable": false, + "returnParameters": { + "id": 11756, + "nodeType": "ParameterList", + "parameters": [], + "src": "1420:0:11" + }, + "scope": 11817, + "src": "1331:90:11", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 11762, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "withdrawETH", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11760, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11759, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 11762, + "src": "1445:11:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11758, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1445:7:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1444:13:11" + }, + "payable": false, + "returnParameters": { + "id": 11761, + "nodeType": "ParameterList", + "parameters": [], + "src": "1464:0:11" + }, + "scope": 11817, + "src": "1424:41:11", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 11769, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "addReserve", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11767, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11764, + "name": "_token", + "nodeType": "VariableDeclaration", + "scope": 11769, + "src": "1488:18:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + "typeName": { + "contractScope": null, + "id": 11763, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "1488:11:11", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 11766, + "name": "_ratio", + "nodeType": "VariableDeclaration", + "scope": 11769, + "src": "1508:13:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 11765, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "1508:6:11", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1487:35:11" + }, + "payable": false, + "returnParameters": { + "id": 11768, + "nodeType": "ParameterList", + "parameters": [], + "src": "1529:0:11" + }, + "scope": 11817, + "src": "1468:62:11", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 11774, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "token", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11770, + "nodeType": "ParameterList", + "parameters": [], + "src": "1586:2:11" + }, + "payable": false, + "returnParameters": { + "id": 11773, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11772, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 11774, + "src": "1610:16:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + }, + "typeName": { + "contractScope": null, + "id": 11771, + "name": "IConverterAnchor", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11826, + "src": "1610:16:11", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1609:18:11" + }, + "scope": 11817, + "src": "1572:56:11", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 11779, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "transferTokenOwnership", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11777, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11776, + "name": "_newOwner", + "nodeType": "VariableDeclaration", + "scope": 11779, + "src": "1663:17:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11775, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1663:7:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1662:19:11" + }, + "payable": false, + "returnParameters": { + "id": 11778, + "nodeType": "ParameterList", + "parameters": [], + "src": "1688:0:11" + }, + "scope": 11817, + "src": "1631:58:11", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 11782, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "acceptTokenOwnership", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11780, + "nodeType": "ParameterList", + "parameters": [], + "src": "1721:2:11" + }, + "payable": false, + "returnParameters": { + "id": 11781, + "nodeType": "ParameterList", + "parameters": [], + "src": "1730:0:11" + }, + "scope": 11817, + "src": "1692:39:11", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 11797, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "connectors", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11785, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11784, + "name": "_address", + "nodeType": "VariableDeclaration", + "scope": 11797, + "src": "1754:16:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11783, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1754:7:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1753:18:11" + }, + "payable": false, + "returnParameters": { + "id": 11796, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11787, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 11797, + "src": "1803:7:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11786, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1803:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 11789, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 11797, + "src": "1815:6:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 11788, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "1815:6:11", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 11791, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 11797, + "src": "1826:4:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 11790, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1826:4:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 11793, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 11797, + "src": "1835:4:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 11792, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1835:4:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 11795, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 11797, + "src": "1844:4:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 11794, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1844:4:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1798:54:11" + }, + "scope": 11817, + "src": "1734:119:11", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 11804, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getConnectorBalance", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11800, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11799, + "name": "_connectorToken", + "nodeType": "VariableDeclaration", + "scope": 11804, + "src": "1885:27:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + "typeName": { + "contractScope": null, + "id": 11798, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "1885:11:11", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1884:29:11" + }, + "payable": false, + "returnParameters": { + "id": 11803, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11802, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 11804, + "src": "1935:7:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11801, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1935:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1934:9:11" + }, + "scope": 11817, + "src": "1856:88:11", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 11811, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "connectorTokens", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11807, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11806, + "name": "_index", + "nodeType": "VariableDeclaration", + "scope": 11811, + "src": "1972:14:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11805, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1972:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1971:16:11" + }, + "payable": false, + "returnParameters": { + "id": 11810, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11809, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 11811, + "src": "2009:11:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + "typeName": { + "contractScope": null, + "id": 11808, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "2009:11:11", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2008:13:11" + }, + "scope": 11817, + "src": "1947:75:11", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 11816, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "connectorTokenCount", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11812, + "nodeType": "ParameterList", + "parameters": [], + "src": "2053:2:11" + }, + "payable": false, + "returnParameters": { + "id": 11815, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11814, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 11816, + "src": "2077:6:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 11813, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "2077:6:11", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2076:8:11" + }, + "scope": 11817, + "src": "2025:60:11", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 11818, + "src": "233:1854:11" + } + ], + "src": "0:2088:11" + }, + "id": 11 + }, + "solidity/contracts/converter/interfaces/IConverterAnchor.sol": { + "ast": { + "absolutePath": "solidity/contracts/converter/interfaces/IConverterAnchor.sol", + "exportedSymbols": { + "IConverterAnchor": [ + 11826 + ] + }, + "id": 11827, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 11819, + "literals": [ + "solidity", + "0.4", + ".26" + ], + "nodeType": "PragmaDirective", + "src": "0:23:12" + }, + { + "absolutePath": "solidity/contracts/utility/interfaces/IOwned.sol", + "file": "../../utility/interfaces/IOwned.sol", + "id": 11820, + "nodeType": "ImportDirective", + "scope": 11827, + "sourceUnit": 22248, + "src": "24:45:12", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "solidity/contracts/utility/interfaces/ITokenHolder.sol", + "file": "../../utility/interfaces/ITokenHolder.sol", + "id": 11821, + "nodeType": "ImportDirective", + "scope": 11827, + "sourceUnit": 22314, + "src": "70:51:12", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 11822, + "name": "IOwned", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 22247, + "src": "189:6:12", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IOwned_$22247", + "typeString": "contract IOwned" + } + }, + "id": 11823, + "nodeType": "InheritanceSpecifier", + "src": "189:6:12" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 11824, + "name": "ITokenHolder", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 22313, + "src": "197:12:12", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ITokenHolder_$22313", + "typeString": "contract ITokenHolder" + } + }, + "id": 11825, + "nodeType": "InheritanceSpecifier", + "src": "197:12:12" + } + ], + "contractDependencies": [ + 22247, + 22313 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": false, + "id": 11826, + "linearizedBaseContracts": [ + 11826, + 22313, + 22247 + ], + "name": "IConverterAnchor", + "nodeType": "ContractDefinition", + "nodes": [], + "scope": 11827, + "src": "160:54:12" + } + ], + "src": "0:215:12" + }, + "id": 12 + }, + "solidity/contracts/converter/interfaces/IConverterFactory.sol": { + "ast": { + "absolutePath": "solidity/contracts/converter/interfaces/IConverterFactory.sol", + "exportedSymbols": { + "IConverterFactory": [ + 11871 + ] + }, + "id": 11872, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 11828, + "literals": [ + "solidity", + "0.4", + ".26" + ], + "nodeType": "PragmaDirective", + "src": "0:23:13" + }, + { + "absolutePath": "solidity/contracts/converter/interfaces/IConverter.sol", + "file": "./IConverter.sol", + "id": 11829, + "nodeType": "ImportDirective", + "scope": 11872, + "sourceUnit": 11818, + "src": "24:26:13", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "solidity/contracts/converter/interfaces/IConverterAnchor.sol", + "file": "./IConverterAnchor.sol", + "id": 11830, + "nodeType": "ImportDirective", + "scope": 11872, + "sourceUnit": 11827, + "src": "51:32:13", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "solidity/contracts/converter/interfaces/ITypedConverterCustomFactory.sol", + "file": "./ITypedConverterCustomFactory.sol", + "id": 11831, + "nodeType": "ImportDirective", + "scope": 11872, + "sourceUnit": 12269, + "src": "84:44:13", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "solidity/contracts/utility/interfaces/IContractRegistry.sol", + "file": "../../utility/interfaces/IContractRegistry.sol", + "id": 11832, + "nodeType": "ImportDirective", + "scope": 11872, + "sourceUnit": 22221, + "src": "129:56:13", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": false, + "id": 11871, + "linearizedBaseContracts": [ + 11871 + ], + "name": "IConverterFactory", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": null, + "id": 11845, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "createAnchor", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11841, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11834, + "name": "_type", + "nodeType": "VariableDeclaration", + "scope": 11845, + "src": "280:12:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 11833, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "280:6:13", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 11836, + "name": "_name", + "nodeType": "VariableDeclaration", + "scope": 11845, + "src": "296:12:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 11835, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "296:6:13", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 11838, + "name": "_symbol", + "nodeType": "VariableDeclaration", + "scope": 11845, + "src": "312:14:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 11837, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "312:6:13", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 11840, + "name": "_decimals", + "nodeType": "VariableDeclaration", + "scope": 11845, + "src": "330:15:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 11839, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "330:5:13", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "276:72:13" + }, + "payable": false, + "returnParameters": { + "id": 11844, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11843, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 11845, + "src": "365:16:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + }, + "typeName": { + "contractScope": null, + "id": 11842, + "name": "IConverterAnchor", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11826, + "src": "365:16:13", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "364:18:13" + }, + "scope": 11871, + "src": "255:128:13", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 11858, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "createConverter", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11854, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11847, + "name": "_type", + "nodeType": "VariableDeclaration", + "scope": 11858, + "src": "414:12:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 11846, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "414:6:13", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 11849, + "name": "_anchor", + "nodeType": "VariableDeclaration", + "scope": 11858, + "src": "430:24:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + }, + "typeName": { + "contractScope": null, + "id": 11848, + "name": "IConverterAnchor", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11826, + "src": "430:16:13", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 11851, + "name": "_registry", + "nodeType": "VariableDeclaration", + "scope": 11858, + "src": "458:27:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IContractRegistry_$22220", + "typeString": "contract IContractRegistry" + }, + "typeName": { + "contractScope": null, + "id": 11850, + "name": "IContractRegistry", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 22220, + "src": "458:17:13", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IContractRegistry_$22220", + "typeString": "contract IContractRegistry" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 11853, + "name": "_maxConversionFee", + "nodeType": "VariableDeclaration", + "scope": 11858, + "src": "489:24:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 11852, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "489:6:13", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "410:106:13" + }, + "payable": false, + "returnParameters": { + "id": 11857, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11856, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 11858, + "src": "533:10:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + }, + "typeName": { + "contractScope": null, + "id": 11855, + "name": "IConverter", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11817, + "src": "533:10:13", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "532:12:13" + }, + "scope": 11871, + "src": "386:159:13", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 11869, + "nodeType": "Block", + "src": "638:21:13", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 11865, + "name": "_type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11860, + "src": "642:5:13", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "id": 11866, + "nodeType": "ExpressionStatement", + "src": "642:5:13" + }, + { + "expression": { + "argumentTypes": null, + "id": 11867, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22405, + "src": "651:4:13", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterFactory_$11871", + "typeString": "contract IConverterFactory" + } + }, + "id": 11868, + "nodeType": "ExpressionStatement", + "src": "651:4:13" + } + ] + }, + "documentation": null, + "id": 11870, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "customFactories", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11861, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11860, + "name": "_type", + "nodeType": "VariableDeclaration", + "scope": 11870, + "src": "573:12:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 11859, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "573:6:13", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "572:14:13" + }, + "payable": false, + "returnParameters": { + "id": 11864, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11863, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 11870, + "src": "608:28:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ITypedConverterCustomFactory_$12268", + "typeString": "contract ITypedConverterCustomFactory" + }, + "typeName": { + "contractScope": null, + "id": 11862, + "name": "ITypedConverterCustomFactory", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 12268, + "src": "608:28:13", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ITypedConverterCustomFactory_$12268", + "typeString": "contract ITypedConverterCustomFactory" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "607:30:13" + }, + "scope": 11871, + "src": "548:111:13", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 11872, + "src": "225:436:13" + } + ], + "src": "0:662:13" + }, + "id": 13 + }, + "solidity/contracts/converter/interfaces/IConverterRegistry.sol": { + "ast": { + "absolutePath": "solidity/contracts/converter/interfaces/IConverterRegistry.sol", + "exportedSymbols": { + "IConverterRegistry": [ + 11982 + ] + }, + "id": 11983, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 11873, + "literals": [ + "solidity", + "0.4", + ".26" + ], + "nodeType": "PragmaDirective", + "src": "0:23:14" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": false, + "id": 11982, + "linearizedBaseContracts": [ + 11982 + ], + "name": "IConverterRegistry", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": null, + "id": 11878, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getAnchorCount", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11874, + "nodeType": "ParameterList", + "parameters": [], + "src": "79:2:14" + }, + "payable": false, + "returnParameters": { + "id": 11877, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11876, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 11878, + "src": "103:7:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11875, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "103:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "102:9:14" + }, + "scope": 11982, + "src": "56:56:14", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 11884, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getAnchors", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11879, + "nodeType": "ParameterList", + "parameters": [], + "src": "134:2:14" + }, + "payable": false, + "returnParameters": { + "id": 11883, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11882, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 11884, + "src": "158:9:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 11880, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "158:7:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 11881, + "length": null, + "nodeType": "ArrayTypeName", + "src": "158:9:14", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "157:11:14" + }, + "scope": 11982, + "src": "115:54:14", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 11891, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getAnchor", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11887, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11886, + "name": "_index", + "nodeType": "VariableDeclaration", + "scope": 11891, + "src": "191:14:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11885, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "191:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "190:16:14" + }, + "payable": false, + "returnParameters": { + "id": 11890, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11889, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 11891, + "src": "228:7:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11888, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "228:7:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "227:9:14" + }, + "scope": 11982, + "src": "172:65:14", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 11898, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "isAnchor", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11894, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11893, + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 11898, + "src": "258:14:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11892, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "258:7:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "257:16:14" + }, + "payable": false, + "returnParameters": { + "id": 11897, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11896, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 11898, + "src": "295:4:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 11895, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "295:4:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "294:6:14" + }, + "scope": 11982, + "src": "240:61:14", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 11903, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getLiquidityPoolCount", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11899, + "nodeType": "ParameterList", + "parameters": [], + "src": "334:2:14" + }, + "payable": false, + "returnParameters": { + "id": 11902, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11901, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 11903, + "src": "358:7:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11900, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "358:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "357:9:14" + }, + "scope": 11982, + "src": "304:63:14", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 11909, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getLiquidityPools", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11904, + "nodeType": "ParameterList", + "parameters": [], + "src": "396:2:14" + }, + "payable": false, + "returnParameters": { + "id": 11908, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11907, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 11909, + "src": "420:9:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 11905, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "420:7:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 11906, + "length": null, + "nodeType": "ArrayTypeName", + "src": "420:9:14", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "419:11:14" + }, + "scope": 11982, + "src": "370:61:14", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 11916, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getLiquidityPool", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11912, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11911, + "name": "_index", + "nodeType": "VariableDeclaration", + "scope": 11916, + "src": "460:14:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11910, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "460:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "459:16:14" + }, + "payable": false, + "returnParameters": { + "id": 11915, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11914, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 11916, + "src": "497:7:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11913, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "497:7:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "496:9:14" + }, + "scope": 11982, + "src": "434:72:14", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 11923, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "isLiquidityPool", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11919, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11918, + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 11923, + "src": "534:14:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11917, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "534:7:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "533:16:14" + }, + "payable": false, + "returnParameters": { + "id": 11922, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11921, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 11923, + "src": "571:4:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 11920, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "571:4:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "570:6:14" + }, + "scope": 11982, + "src": "509:68:14", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 11928, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getConvertibleTokenCount", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11924, + "nodeType": "ParameterList", + "parameters": [], + "src": "613:2:14" + }, + "payable": false, + "returnParameters": { + "id": 11927, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11926, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 11928, + "src": "637:7:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11925, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "637:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "636:9:14" + }, + "scope": 11982, + "src": "580:66:14", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 11934, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getConvertibleTokens", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11929, + "nodeType": "ParameterList", + "parameters": [], + "src": "678:2:14" + }, + "payable": false, + "returnParameters": { + "id": 11933, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11932, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 11934, + "src": "702:9:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 11930, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "702:7:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 11931, + "length": null, + "nodeType": "ArrayTypeName", + "src": "702:9:14", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "701:11:14" + }, + "scope": 11982, + "src": "649:64:14", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 11941, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getConvertibleToken", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11937, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11936, + "name": "_index", + "nodeType": "VariableDeclaration", + "scope": 11941, + "src": "745:14:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11935, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "745:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "744:16:14" + }, + "payable": false, + "returnParameters": { + "id": 11940, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11939, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 11941, + "src": "782:7:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11938, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "782:7:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "781:9:14" + }, + "scope": 11982, + "src": "716:75:14", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 11948, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "isConvertibleToken", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11944, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11943, + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 11948, + "src": "822:14:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11942, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "822:7:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "821:16:14" + }, + "payable": false, + "returnParameters": { + "id": 11947, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11946, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 11948, + "src": "859:4:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 11945, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "859:4:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "858:6:14" + }, + "scope": 11982, + "src": "794:71:14", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 11955, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getConvertibleTokenAnchorCount", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11951, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11950, + "name": "_convertibleToken", + "nodeType": "VariableDeclaration", + "scope": 11955, + "src": "908:25:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11949, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "908:7:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "907:27:14" + }, + "payable": false, + "returnParameters": { + "id": 11954, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11953, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 11955, + "src": "956:7:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11952, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "956:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "955:9:14" + }, + "scope": 11982, + "src": "868:97:14", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 11963, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getConvertibleTokenAnchors", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11958, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11957, + "name": "_convertibleToken", + "nodeType": "VariableDeclaration", + "scope": 11963, + "src": "1004:25:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11956, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1004:7:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1003:27:14" + }, + "payable": false, + "returnParameters": { + "id": 11962, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11961, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 11963, + "src": "1052:9:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 11959, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1052:7:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 11960, + "length": null, + "nodeType": "ArrayTypeName", + "src": "1052:9:14", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1051:11:14" + }, + "scope": 11982, + "src": "968:95:14", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 11972, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getConvertibleTokenAnchor", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11968, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11965, + "name": "_convertibleToken", + "nodeType": "VariableDeclaration", + "scope": 11972, + "src": "1101:25:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11964, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1101:7:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 11967, + "name": "_index", + "nodeType": "VariableDeclaration", + "scope": 11972, + "src": "1128:14:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11966, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1128:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1100:43:14" + }, + "payable": false, + "returnParameters": { + "id": 11971, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11970, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 11972, + "src": "1165:7:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11969, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1165:7:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1164:9:14" + }, + "scope": 11982, + "src": "1066:108:14", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 11981, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "isConvertibleTokenAnchor", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11977, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11974, + "name": "_convertibleToken", + "nodeType": "VariableDeclaration", + "scope": 11981, + "src": "1211:25:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11973, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1211:7:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 11976, + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 11981, + "src": "1238:14:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11975, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1238:7:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1210:43:14" + }, + "payable": false, + "returnParameters": { + "id": 11980, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11979, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 11981, + "src": "1275:4:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 11978, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1275:4:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1274:6:14" + }, + "scope": 11982, + "src": "1177:104:14", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 11983, + "src": "25:1258:14" + } + ], + "src": "0:1284:14" + }, + "id": 14 + }, + "solidity/contracts/converter/interfaces/IConverterRegistryData.sol": { + "ast": { + "absolutePath": "solidity/contracts/converter/interfaces/IConverterRegistryData.sol", + "exportedSymbols": { + "IConverterRegistryData": [ + 12127 + ] + }, + "id": 12128, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 11984, + "literals": [ + "solidity", + "0.4", + ".26" + ], + "nodeType": "PragmaDirective", + "src": "0:23:15" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 12127, + "linearizedBaseContracts": [ + 12127 + ], + "name": "IConverterRegistryData", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": null, + "id": 11989, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "addSmartToken", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11987, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11986, + "name": "_smartToken", + "nodeType": "VariableDeclaration", + "scope": 11989, + "src": "84:19:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11985, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "84:7:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "83:21:15" + }, + "payable": false, + "returnParameters": { + "id": 11988, + "nodeType": "ParameterList", + "parameters": [], + "src": "113:0:15" + }, + "scope": 12127, + "src": "61:53:15", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 11994, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "removeSmartToken", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11992, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11991, + "name": "_smartToken", + "nodeType": "VariableDeclaration", + "scope": 11994, + "src": "143:19:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11990, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "143:7:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "142:21:15" + }, + "payable": false, + "returnParameters": { + "id": 11993, + "nodeType": "ParameterList", + "parameters": [], + "src": "172:0:15" + }, + "scope": 12127, + "src": "117:56:15", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 11999, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "addLiquidityPool", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11997, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11996, + "name": "_liquidityPool", + "nodeType": "VariableDeclaration", + "scope": 11999, + "src": "202:22:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11995, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "202:7:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "201:24:15" + }, + "payable": false, + "returnParameters": { + "id": 11998, + "nodeType": "ParameterList", + "parameters": [], + "src": "234:0:15" + }, + "scope": 12127, + "src": "176:59:15", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 12004, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "removeLiquidityPool", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12002, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12001, + "name": "_liquidityPool", + "nodeType": "VariableDeclaration", + "scope": 12004, + "src": "267:22:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12000, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "267:7:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "266:24:15" + }, + "payable": false, + "returnParameters": { + "id": 12003, + "nodeType": "ParameterList", + "parameters": [], + "src": "299:0:15" + }, + "scope": 12127, + "src": "238:62:15", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 12011, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "addConvertibleToken", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12009, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12006, + "name": "_convertibleToken", + "nodeType": "VariableDeclaration", + "scope": 12011, + "src": "332:25:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12005, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "332:7:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 12008, + "name": "_smartToken", + "nodeType": "VariableDeclaration", + "scope": 12011, + "src": "359:19:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12007, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "359:7:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "331:48:15" + }, + "payable": false, + "returnParameters": { + "id": 12010, + "nodeType": "ParameterList", + "parameters": [], + "src": "388:0:15" + }, + "scope": 12127, + "src": "303:86:15", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 12018, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "removeConvertibleToken", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12016, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12013, + "name": "_convertibleToken", + "nodeType": "VariableDeclaration", + "scope": 12018, + "src": "424:25:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12012, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "424:7:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 12015, + "name": "_smartToken", + "nodeType": "VariableDeclaration", + "scope": 12018, + "src": "451:19:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12014, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "451:7:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "423:48:15" + }, + "payable": false, + "returnParameters": { + "id": 12017, + "nodeType": "ParameterList", + "parameters": [], + "src": "480:0:15" + }, + "scope": 12127, + "src": "392:89:15", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 12023, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getSmartTokenCount", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12019, + "nodeType": "ParameterList", + "parameters": [], + "src": "511:2:15" + }, + "payable": false, + "returnParameters": { + "id": 12022, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12021, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 12023, + "src": "537:7:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12020, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "537:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "536:9:15" + }, + "scope": 12127, + "src": "484:62:15", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 12029, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getSmartTokens", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12024, + "nodeType": "ParameterList", + "parameters": [], + "src": "572:2:15" + }, + "payable": false, + "returnParameters": { + "id": 12028, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12027, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 12029, + "src": "598:9:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 12025, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "598:7:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 12026, + "length": null, + "nodeType": "ArrayTypeName", + "src": "598:9:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "597:11:15" + }, + "scope": 12127, + "src": "549:60:15", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 12036, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getSmartToken", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12032, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12031, + "name": "_index", + "nodeType": "VariableDeclaration", + "scope": 12036, + "src": "635:14:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12030, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "635:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "634:16:15" + }, + "payable": false, + "returnParameters": { + "id": 12035, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12034, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 12036, + "src": "674:7:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12033, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "674:7:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "673:9:15" + }, + "scope": 12127, + "src": "612:71:15", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 12043, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "isSmartToken", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12039, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12038, + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 12043, + "src": "708:14:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12037, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "708:7:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "707:16:15" + }, + "payable": false, + "returnParameters": { + "id": 12042, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12041, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 12043, + "src": "747:4:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 12040, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "747:4:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "746:6:15" + }, + "scope": 12127, + "src": "686:67:15", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 12048, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getLiquidityPoolCount", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12044, + "nodeType": "ParameterList", + "parameters": [], + "src": "786:2:15" + }, + "payable": false, + "returnParameters": { + "id": 12047, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12046, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 12048, + "src": "812:7:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12045, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "812:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "811:9:15" + }, + "scope": 12127, + "src": "756:65:15", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 12054, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getLiquidityPools", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12049, + "nodeType": "ParameterList", + "parameters": [], + "src": "850:2:15" + }, + "payable": false, + "returnParameters": { + "id": 12053, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12052, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 12054, + "src": "876:9:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 12050, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "876:7:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 12051, + "length": null, + "nodeType": "ArrayTypeName", + "src": "876:9:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "875:11:15" + }, + "scope": 12127, + "src": "824:63:15", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 12061, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getLiquidityPool", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12057, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12056, + "name": "_index", + "nodeType": "VariableDeclaration", + "scope": 12061, + "src": "916:14:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12055, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "916:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "915:16:15" + }, + "payable": false, + "returnParameters": { + "id": 12060, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12059, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 12061, + "src": "955:7:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12058, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "955:7:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "954:9:15" + }, + "scope": 12127, + "src": "890:74:15", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 12068, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "isLiquidityPool", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12064, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12063, + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 12068, + "src": "992:14:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12062, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "992:7:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "991:16:15" + }, + "payable": false, + "returnParameters": { + "id": 12067, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12066, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 12068, + "src": "1031:4:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 12065, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1031:4:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1030:6:15" + }, + "scope": 12127, + "src": "967:70:15", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 12073, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getConvertibleTokenCount", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12069, + "nodeType": "ParameterList", + "parameters": [], + "src": "1073:2:15" + }, + "payable": false, + "returnParameters": { + "id": 12072, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12071, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 12073, + "src": "1099:7:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12070, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1099:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1098:9:15" + }, + "scope": 12127, + "src": "1040:68:15", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 12079, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getConvertibleTokens", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12074, + "nodeType": "ParameterList", + "parameters": [], + "src": "1140:2:15" + }, + "payable": false, + "returnParameters": { + "id": 12078, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12077, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 12079, + "src": "1166:9:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 12075, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1166:7:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 12076, + "length": null, + "nodeType": "ArrayTypeName", + "src": "1166:9:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1165:11:15" + }, + "scope": 12127, + "src": "1111:66:15", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 12086, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getConvertibleToken", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12082, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12081, + "name": "_index", + "nodeType": "VariableDeclaration", + "scope": 12086, + "src": "1209:14:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12080, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1209:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1208:16:15" + }, + "payable": false, + "returnParameters": { + "id": 12085, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12084, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 12086, + "src": "1248:7:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12083, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1248:7:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1247:9:15" + }, + "scope": 12127, + "src": "1180:77:15", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 12093, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "isConvertibleToken", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12089, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12088, + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 12093, + "src": "1288:14:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12087, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1288:7:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1287:16:15" + }, + "payable": false, + "returnParameters": { + "id": 12092, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12091, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 12093, + "src": "1327:4:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 12090, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1327:4:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1326:6:15" + }, + "scope": 12127, + "src": "1260:73:15", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 12100, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getConvertibleTokenSmartTokenCount", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12096, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12095, + "name": "_convertibleToken", + "nodeType": "VariableDeclaration", + "scope": 12100, + "src": "1380:25:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12094, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1380:7:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1379:27:15" + }, + "payable": false, + "returnParameters": { + "id": 12099, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12098, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 12100, + "src": "1430:7:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12097, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1430:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1429:9:15" + }, + "scope": 12127, + "src": "1336:103:15", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 12108, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getConvertibleTokenSmartTokens", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12103, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12102, + "name": "_convertibleToken", + "nodeType": "VariableDeclaration", + "scope": 12108, + "src": "1482:25:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12101, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1482:7:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1481:27:15" + }, + "payable": false, + "returnParameters": { + "id": 12107, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12106, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 12108, + "src": "1532:9:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 12104, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1532:7:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 12105, + "length": null, + "nodeType": "ArrayTypeName", + "src": "1532:9:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1531:11:15" + }, + "scope": 12127, + "src": "1442:101:15", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 12117, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getConvertibleTokenSmartToken", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12113, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12110, + "name": "_convertibleToken", + "nodeType": "VariableDeclaration", + "scope": 12117, + "src": "1585:25:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12109, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1585:7:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 12112, + "name": "_index", + "nodeType": "VariableDeclaration", + "scope": 12117, + "src": "1612:14:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12111, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1612:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1584:43:15" + }, + "payable": false, + "returnParameters": { + "id": 12116, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12115, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 12117, + "src": "1651:7:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12114, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1651:7:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1650:9:15" + }, + "scope": 12127, + "src": "1546:114:15", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 12126, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "isConvertibleTokenSmartToken", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12122, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12119, + "name": "_convertibleToken", + "nodeType": "VariableDeclaration", + "scope": 12126, + "src": "1701:25:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12118, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1701:7:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 12121, + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 12126, + "src": "1728:14:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12120, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1728:7:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1700:43:15" + }, + "payable": false, + "returnParameters": { + "id": 12125, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12124, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 12126, + "src": "1767:4:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 12123, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1767:4:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1766:6:15" + }, + "scope": 12127, + "src": "1663:110:15", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + } + ], + "scope": 12128, + "src": "25:1750:15" + } + ], + "src": "0:1776:15" + }, + "id": 15 + }, + "solidity/contracts/converter/interfaces/IConverterUpgrader.sol": { + "ast": { + "absolutePath": "solidity/contracts/converter/interfaces/IConverterUpgrader.sol", + "exportedSymbols": { + "IConverterUpgrader": [ + 12140 + ] + }, + "id": 12141, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 12129, + "literals": [ + "solidity", + "0.4", + ".26" + ], + "nodeType": "PragmaDirective", + "src": "0:23:16" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": false, + "id": 12140, + "linearizedBaseContracts": [ + 12140 + ], + "name": "IConverterUpgrader", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": null, + "id": 12134, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "upgrade", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12132, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12131, + "name": "_version", + "nodeType": "VariableDeclaration", + "scope": 12134, + "src": "112:16:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 12130, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "112:7:16", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "111:18:16" + }, + "payable": false, + "returnParameters": { + "id": 12133, + "nodeType": "ParameterList", + "parameters": [], + "src": "136:0:16" + }, + "scope": 12140, + "src": "95:42:16", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 12139, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "upgrade", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12137, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12136, + "name": "_version", + "nodeType": "VariableDeclaration", + "scope": 12139, + "src": "157:15:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 12135, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "157:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "156:17:16" + }, + "payable": false, + "returnParameters": { + "id": 12138, + "nodeType": "ParameterList", + "parameters": [], + "src": "180:0:16" + }, + "scope": 12140, + "src": "140:41:16", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 12141, + "src": "64:119:16" + } + ], + "src": "0:184:16" + }, + "id": 16 + }, + "solidity/contracts/converter/interfaces/ISovrynSwapFormula.sol": { + "ast": { + "absolutePath": "solidity/contracts/converter/interfaces/ISovrynSwapFormula.sol", + "exportedSymbols": { + "ISovrynSwapFormula": [ + 12240 + ] + }, + "id": 12241, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 12142, + "literals": [ + "solidity", + "0.4", + ".26" + ], + "nodeType": "PragmaDirective", + "src": "0:23:17" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": false, + "id": 12240, + "linearizedBaseContracts": [ + 12240 + ], + "name": "ISovrynSwapFormula", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": null, + "id": 12155, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "purchaseTargetAmount", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12151, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12144, + "name": "_supply", + "nodeType": "VariableDeclaration", + "scope": 12155, + "src": "128:15:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12143, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "128:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 12146, + "name": "_reserveBalance", + "nodeType": "VariableDeclaration", + "scope": 12155, + "src": "147:23:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12145, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "147:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 12148, + "name": "_reserveWeight", + "nodeType": "VariableDeclaration", + "scope": 12155, + "src": "174:21:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 12147, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "174:6:17", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 12150, + "name": "_amount", + "nodeType": "VariableDeclaration", + "scope": 12155, + "src": "199:15:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12149, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "199:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "124:93:17" + }, + "payable": false, + "returnParameters": { + "id": 12154, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12153, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 12155, + "src": "239:7:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12152, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "239:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "238:9:17" + }, + "scope": 12240, + "src": "95:153:17", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 12168, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "saleTargetAmount", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12164, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12157, + "name": "_supply", + "nodeType": "VariableDeclaration", + "scope": 12168, + "src": "280:15:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12156, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "280:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 12159, + "name": "_reserveBalance", + "nodeType": "VariableDeclaration", + "scope": 12168, + "src": "299:23:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12158, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "299:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 12161, + "name": "_reserveWeight", + "nodeType": "VariableDeclaration", + "scope": 12168, + "src": "326:21:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 12160, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "326:6:17", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 12163, + "name": "_amount", + "nodeType": "VariableDeclaration", + "scope": 12168, + "src": "351:15:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12162, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "351:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "276:93:17" + }, + "payable": false, + "returnParameters": { + "id": 12167, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12166, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 12168, + "src": "391:7:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12165, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "391:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "390:9:17" + }, + "scope": 12240, + "src": "251:149:17", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 12183, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "crossReserveTargetAmount", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12179, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12170, + "name": "_sourceReserveBalance", + "nodeType": "VariableDeclaration", + "scope": 12183, + "src": "440:29:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12169, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "440:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 12172, + "name": "_sourceReserveWeight", + "nodeType": "VariableDeclaration", + "scope": 12183, + "src": "473:27:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 12171, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "473:6:17", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 12174, + "name": "_targetReserveBalance", + "nodeType": "VariableDeclaration", + "scope": 12183, + "src": "504:29:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12173, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "504:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 12176, + "name": "_targetReserveWeight", + "nodeType": "VariableDeclaration", + "scope": 12183, + "src": "537:27:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 12175, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "537:6:17", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 12178, + "name": "_amount", + "nodeType": "VariableDeclaration", + "scope": 12183, + "src": "568:15:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12177, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "568:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "436:150:17" + }, + "payable": false, + "returnParameters": { + "id": 12182, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12181, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 12183, + "src": "608:7:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12180, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "608:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "607:9:17" + }, + "scope": 12240, + "src": "403:214:17", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 12196, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "fundCost", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12192, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12185, + "name": "_supply", + "nodeType": "VariableDeclaration", + "scope": 12196, + "src": "641:15:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12184, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "641:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 12187, + "name": "_reserveBalance", + "nodeType": "VariableDeclaration", + "scope": 12196, + "src": "660:23:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12186, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "660:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 12189, + "name": "_reserveRatio", + "nodeType": "VariableDeclaration", + "scope": 12196, + "src": "687:20:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 12188, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "687:6:17", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 12191, + "name": "_amount", + "nodeType": "VariableDeclaration", + "scope": 12196, + "src": "711:15:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12190, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "711:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "637:92:17" + }, + "payable": false, + "returnParameters": { + "id": 12195, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12194, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 12196, + "src": "751:7:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12193, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "751:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "750:9:17" + }, + "scope": 12240, + "src": "620:140:17", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 12209, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "fundSupplyAmount", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12205, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12198, + "name": "_supply", + "nodeType": "VariableDeclaration", + "scope": 12209, + "src": "792:15:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12197, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "792:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 12200, + "name": "_reserveBalance", + "nodeType": "VariableDeclaration", + "scope": 12209, + "src": "811:23:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12199, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "811:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 12202, + "name": "_reserveRatio", + "nodeType": "VariableDeclaration", + "scope": 12209, + "src": "838:20:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 12201, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "838:6:17", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 12204, + "name": "_amount", + "nodeType": "VariableDeclaration", + "scope": 12209, + "src": "862:15:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12203, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "862:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "788:92:17" + }, + "payable": false, + "returnParameters": { + "id": 12208, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12207, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 12209, + "src": "902:7:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12206, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "902:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "901:9:17" + }, + "scope": 12240, + "src": "763:148:17", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 12222, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "liquidateReserveAmount", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12218, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12211, + "name": "_supply", + "nodeType": "VariableDeclaration", + "scope": 12222, + "src": "949:15:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12210, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "949:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 12213, + "name": "_reserveBalance", + "nodeType": "VariableDeclaration", + "scope": 12222, + "src": "968:23:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12212, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "968:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 12215, + "name": "_reserveRatio", + "nodeType": "VariableDeclaration", + "scope": 12222, + "src": "995:20:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 12214, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "995:6:17", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 12217, + "name": "_amount", + "nodeType": "VariableDeclaration", + "scope": 12222, + "src": "1019:15:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12216, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1019:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "945:92:17" + }, + "payable": false, + "returnParameters": { + "id": 12221, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12220, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 12222, + "src": "1059:7:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12219, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1059:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1058:9:17" + }, + "scope": 12240, + "src": "914:154:17", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 12239, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "balancedWeights", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12233, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12224, + "name": "_primaryReserveStakedBalance", + "nodeType": "VariableDeclaration", + "scope": 12239, + "src": "1099:36:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12223, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1099:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 12226, + "name": "_primaryReserveBalance", + "nodeType": "VariableDeclaration", + "scope": 12239, + "src": "1139:30:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12225, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1139:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 12228, + "name": "_secondaryReserveBalance", + "nodeType": "VariableDeclaration", + "scope": 12239, + "src": "1173:32:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12227, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1173:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 12230, + "name": "_reserveRateNumerator", + "nodeType": "VariableDeclaration", + "scope": 12239, + "src": "1209:29:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12229, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1209:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 12232, + "name": "_reserveRateDenominator", + "nodeType": "VariableDeclaration", + "scope": 12239, + "src": "1242:31:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12231, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1242:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1095:181:17" + }, + "payable": false, + "returnParameters": { + "id": 12238, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12235, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 12239, + "src": "1298:6:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 12234, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "1298:6:17", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 12237, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 12239, + "src": "1306:6:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 12236, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "1306:6:17", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1297:16:17" + }, + "scope": 12240, + "src": "1071:243:17", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 12241, + "src": "64:1252:17" + } + ], + "src": "0:1317:17" + }, + "id": 17 + }, + "solidity/contracts/converter/interfaces/ITypedConverterAnchorFactory.sol": { + "ast": { + "absolutePath": "solidity/contracts/converter/interfaces/ITypedConverterAnchorFactory.sol", + "exportedSymbols": { + "ITypedConverterAnchorFactory": [ + 12260 + ] + }, + "id": 12261, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 12242, + "literals": [ + "solidity", + "0.4", + ".26" + ], + "nodeType": "PragmaDirective", + "src": "0:23:18" + }, + { + "absolutePath": "solidity/contracts/converter/interfaces/IConverterAnchor.sol", + "file": "./IConverterAnchor.sol", + "id": 12243, + "nodeType": "ImportDirective", + "scope": 12261, + "sourceUnit": 11827, + "src": "24:32:18", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": false, + "id": 12260, + "linearizedBaseContracts": [ + 12260 + ], + "name": "ITypedConverterAnchorFactory", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": null, + "id": 12248, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "converterType", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12244, + "nodeType": "ParameterList", + "parameters": [], + "src": "172:2:18" + }, + "payable": false, + "returnParameters": { + "id": 12247, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12246, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 12248, + "src": "196:6:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 12245, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "196:6:18", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "195:8:18" + }, + "scope": 12260, + "src": "150:54:18", + "stateMutability": "pure", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 12259, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "createAnchor", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12255, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12250, + "name": "_name", + "nodeType": "VariableDeclaration", + "scope": 12259, + "src": "232:12:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 12249, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "232:6:18", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 12252, + "name": "_symbol", + "nodeType": "VariableDeclaration", + "scope": 12259, + "src": "248:14:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 12251, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "248:6:18", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 12254, + "name": "_decimals", + "nodeType": "VariableDeclaration", + "scope": 12259, + "src": "266:15:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 12253, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "266:5:18", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "228:56:18" + }, + "payable": false, + "returnParameters": { + "id": 12258, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12257, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 12259, + "src": "301:16:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + }, + "typeName": { + "contractScope": null, + "id": 12256, + "name": "IConverterAnchor", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11826, + "src": "301:16:18", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "300:18:18" + }, + "scope": 12260, + "src": "207:112:18", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 12261, + "src": "109:212:18" + } + ], + "src": "0:322:18" + }, + "id": 18 + }, + "solidity/contracts/converter/interfaces/ITypedConverterCustomFactory.sol": { + "ast": { + "absolutePath": "solidity/contracts/converter/interfaces/ITypedConverterCustomFactory.sol", + "exportedSymbols": { + "ITypedConverterCustomFactory": [ + 12268 + ] + }, + "id": 12269, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 12262, + "literals": [ + "solidity", + "0.4", + ".26" + ], + "nodeType": "PragmaDirective", + "src": "0:23:19" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": false, + "id": 12268, + "linearizedBaseContracts": [ + 12268 + ], + "name": "ITypedConverterCustomFactory", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": null, + "id": 12267, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "converterType", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12263, + "nodeType": "ParameterList", + "parameters": [], + "src": "139:2:19" + }, + "payable": false, + "returnParameters": { + "id": 12266, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12265, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 12267, + "src": "163:6:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 12264, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "163:6:19", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "162:8:19" + }, + "scope": 12268, + "src": "117:54:19", + "stateMutability": "pure", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 12269, + "src": "76:97:19" + } + ], + "src": "0:174:19" + }, + "id": 19 + }, + "solidity/contracts/converter/interfaces/ITypedConverterFactory.sol": { + "ast": { + "absolutePath": "solidity/contracts/converter/interfaces/ITypedConverterFactory.sol", + "exportedSymbols": { + "ITypedConverterFactory": [ + 12290 + ] + }, + "id": 12291, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 12270, + "literals": [ + "solidity", + "0.4", + ".26" + ], + "nodeType": "PragmaDirective", + "src": "0:23:20" + }, + { + "absolutePath": "solidity/contracts/converter/interfaces/IConverter.sol", + "file": "./IConverter.sol", + "id": 12271, + "nodeType": "ImportDirective", + "scope": 12291, + "sourceUnit": 11818, + "src": "24:26:20", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "solidity/contracts/converter/interfaces/IConverterAnchor.sol", + "file": "./IConverterAnchor.sol", + "id": 12272, + "nodeType": "ImportDirective", + "scope": 12291, + "sourceUnit": 11827, + "src": "51:32:20", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "solidity/contracts/utility/interfaces/IContractRegistry.sol", + "file": "../../utility/interfaces/IContractRegistry.sol", + "id": 12273, + "nodeType": "ImportDirective", + "scope": 12291, + "sourceUnit": 22221, + "src": "84:56:20", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": false, + "id": 12290, + "linearizedBaseContracts": [ + 12290 + ], + "name": "ITypedConverterFactory", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": null, + "id": 12278, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "converterType", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12274, + "nodeType": "ParameterList", + "parameters": [], + "src": "243:2:20" + }, + "payable": false, + "returnParameters": { + "id": 12277, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12276, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 12278, + "src": "267:6:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 12275, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "267:6:20", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "266:8:20" + }, + "scope": 12290, + "src": "221:54:20", + "stateMutability": "pure", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 12289, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "createConverter", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12285, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12280, + "name": "_anchor", + "nodeType": "VariableDeclaration", + "scope": 12289, + "src": "306:24:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + }, + "typeName": { + "contractScope": null, + "id": 12279, + "name": "IConverterAnchor", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11826, + "src": "306:16:20", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 12282, + "name": "_registry", + "nodeType": "VariableDeclaration", + "scope": 12289, + "src": "334:27:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IContractRegistry_$22220", + "typeString": "contract IContractRegistry" + }, + "typeName": { + "contractScope": null, + "id": 12281, + "name": "IContractRegistry", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 22220, + "src": "334:17:20", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IContractRegistry_$22220", + "typeString": "contract IContractRegistry" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 12284, + "name": "_maxConversionFee", + "nodeType": "VariableDeclaration", + "scope": 12289, + "src": "365:24:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 12283, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "365:6:20", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "302:90:20" + }, + "payable": false, + "returnParameters": { + "id": 12288, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12287, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 12289, + "src": "409:10:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + }, + "typeName": { + "contractScope": null, + "id": 12286, + "name": "IConverter", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11817, + "src": "409:10:20", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "408:12:20" + }, + "scope": 12290, + "src": "278:143:20", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 12291, + "src": "186:237:20" + } + ], + "src": "0:424:20" + }, + "id": 20 + }, + "solidity/contracts/converter/types/liquid-token/LiquidTokenConverter.sol": { + "ast": { + "absolutePath": "solidity/contracts/converter/types/liquid-token/LiquidTokenConverter.sol", + "exportedSymbols": { + "LiquidTokenConverter": [ + 12871 + ] + }, + "id": 12872, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 12292, + "literals": [ + "solidity", + "0.4", + ".26" + ], + "nodeType": "PragmaDirective", + "src": "0:23:21" + }, + { + "absolutePath": "solidity/contracts/converter/ConverterBase.sol", + "file": "../../ConverterBase.sol", + "id": 12293, + "nodeType": "ImportDirective", + "scope": 12872, + "sourceUnit": 3415, + "src": "25:33:21", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "solidity/contracts/token/interfaces/ISmartToken.sol", + "file": "../../../token/interfaces/ISmartToken.sol", + "id": 12294, + "nodeType": "ImportDirective", + "scope": 12872, + "sourceUnit": 20296, + "src": "60:51:21", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 12295, + "name": "ConverterBase", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 3414, + "src": "482:13:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ConverterBase_$3414", + "typeString": "contract ConverterBase" + } + }, + "id": 12296, + "nodeType": "InheritanceSpecifier", + "src": "482:13:21" + } + ], + "contractDependencies": [ + 3414, + 11817, + 20932, + 21324, + 21710, + 21933, + 21976, + 22052, + 22247, + 22313 + ], + "contractKind": "contract", + "documentation": "@dev Liquid Token Converter\r\n\n * The liquid token converter is a specialized version of a converter that manages a liquid token.\r\n\n * The converters govern a token with a single reserve and allow converting between the two.\r\nLiquid tokens usually have fractional reserve (reserve ratio smaller than 100%).\r", + "fullyImplemented": true, + "id": 12871, + "linearizedBaseContracts": [ + 12871, + 3414, + 21710, + 20932, + 21976, + 22052, + 21324, + 21933, + 22313, + 11817, + 22247 + ], + "name": "LiquidTokenConverter", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 12310, + "nodeType": "Block", + "src": "1027:8:21", + "statements": [] + }, + "documentation": "@dev initializes a new LiquidTokenConverter instance\r\n\n * @param _token liquid token governed by the converter\r\n@param _registry address of a contract registry contract\r\n@param _maxConversionFee maximum conversion fee, represented in ppm\r", + "id": 12311, + "implemented": true, + "isConstructor": true, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 12305, + "name": "_token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12298, + "src": "968:6:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISmartToken_$20295", + "typeString": "contract ISmartToken" + } + }, + { + "argumentTypes": null, + "id": 12306, + "name": "_registry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12300, + "src": "976:9:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IContractRegistry_$22220", + "typeString": "contract IContractRegistry" + } + }, + { + "argumentTypes": null, + "id": 12307, + "name": "_maxConversionFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12302, + "src": "987:17:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + } + ], + "id": 12308, + "modifierName": { + "argumentTypes": null, + "id": 12304, + "name": "ConverterBase", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3414, + "src": "954:13:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ConverterBase_$3414_$", + "typeString": "type(contract ConverterBase)" + } + }, + "nodeType": "ModifierInvocation", + "src": "954:51:21" + } + ], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12303, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12298, + "name": "_token", + "nodeType": "VariableDeclaration", + "scope": 12311, + "src": "846:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISmartToken_$20295", + "typeString": "contract ISmartToken" + }, + "typeName": { + "contractScope": null, + "id": 12297, + "name": "ISmartToken", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20295, + "src": "846:11:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISmartToken_$20295", + "typeString": "contract ISmartToken" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 12300, + "name": "_registry", + "nodeType": "VariableDeclaration", + "scope": 12311, + "src": "875:27:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IContractRegistry_$22220", + "typeString": "contract IContractRegistry" + }, + "typeName": { + "contractScope": null, + "id": 12299, + "name": "IContractRegistry", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 22220, + "src": "875:17:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IContractRegistry_$22220", + "typeString": "contract IContractRegistry" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 12302, + "name": "_maxConversionFee", + "nodeType": "VariableDeclaration", + "scope": 12311, + "src": "913:24:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 12301, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "913:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "835:109:21" + }, + "payable": false, + "returnParameters": { + "id": 12309, + "nodeType": "ParameterList", + "parameters": [], + "src": "1027:0:21" + }, + "scope": 12871, + "src": "824:211:21", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 12318, + "nodeType": "Block", + "src": "1234:27:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "hexValue": "30", + "id": 12316, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1252:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "functionReturnParameters": 12315, + "id": 12317, + "nodeType": "Return", + "src": "1245:8:21" + } + ] + }, + "documentation": "@dev returns the converter type\r\n\n * @return see the converter types in the the main contract doc\r", + "id": 12319, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "converterType", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12312, + "nodeType": "ParameterList", + "parameters": [], + "src": "1202:2:21" + }, + "payable": false, + "returnParameters": { + "id": 12315, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12314, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 12319, + "src": "1226:6:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 12313, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "1226:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1225:8:21" + }, + "scope": 12871, + "src": "1180:81:21", + "stateMutability": "pure", + "superFunction": 11655, + "visibility": "public" + }, + { + "body": { + "id": 12336, + "nodeType": "Block", + "src": "1584:107:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 12324, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22436, + "src": "1595:5:21", + "typeDescriptions": { + "typeIdentifier": "t_super$_LiquidTokenConverter_$12871", + "typeString": "contract super LiquidTokenConverter" + } + }, + "id": 12326, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "acceptAnchorOwnership", + "nodeType": "MemberAccess", + "referencedDeclaration": 2841, + "src": "1595:27:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", + "typeString": "function ()" + } + }, + "id": 12327, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1595:29:21", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12328, + "nodeType": "ExpressionStatement", + "src": "1595:29:21" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 12330, + "name": "converterType", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 12319 + ], + "referencedDeclaration": 12319, + "src": "1653:13:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_uint16_$", + "typeString": "function () pure returns (uint16)" + } + }, + "id": 12331, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1653:15:21", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + { + "argumentTypes": null, + "id": 12332, + "name": "anchor", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2511 + ], + "referencedDeclaration": 2511, + "src": "1670:6:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + }, + { + "argumentTypes": null, + "hexValue": "74727565", + "id": 12333, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1678:4:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 12329, + "name": "Activation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2540, + "src": "1642:10:21", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint16_$_t_contract$_IConverterAnchor_$11826_$_t_bool_$returns$__$", + "typeString": "function (uint16,contract IConverterAnchor,bool)" + } + }, + "id": 12334, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1642:41:21", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12335, + "nodeType": "EmitStatement", + "src": "1637:46:21" + } + ] + }, + "documentation": "@dev accepts ownership of the anchor after an ownership transfer\r\nalso activates the converter\r\ncan only be called by the contract owner\r\nnote that prior to version 28, you should use 'acceptTokenOwnership' instead\r", + "id": 12337, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 12322, + "modifierName": { + "argumentTypes": null, + "id": 12321, + "name": "ownerOnly", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21265, + "src": "1574:9:21", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "1574:9:21" + } + ], + "name": "acceptAnchorOwnership", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12320, + "nodeType": "ParameterList", + "parameters": [], + "src": "1564:2:21" + }, + "payable": false, + "returnParameters": { + "id": 12323, + "nodeType": "ParameterList", + "parameters": [], + "src": "1584:0:21" + }, + "scope": 12871, + "src": "1534:157:21", + "stateMutability": "nonpayable", + "superFunction": 2841, + "visibility": "public" + }, + { + "body": { + "id": 12359, + "nodeType": "Block", + "src": "2088:190:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "id": 12348, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 12345, + "name": "reserveTokenCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2984, + "src": "2172:17:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint16_$", + "typeString": "function () view returns (uint16)" + } + }, + "id": 12346, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2172:19:21", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 12347, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2195:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "2172:24:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4552525f494e56414c49445f524553455256455f434f554e54", + "id": 12349, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2198:27:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_ed94f14d8dcbb423a259b4072978fc0c494c6af1fea066a19023afb1a76ac87f", + "typeString": "literal_string \"ERR_INVALID_RESERVE_COUNT\"" + }, + "value": "ERR_INVALID_RESERVE_COUNT" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_ed94f14d8dcbb423a259b4072978fc0c494c6af1fea066a19023afb1a76ac87f", + "typeString": "literal_string \"ERR_INVALID_RESERVE_COUNT\"" + } + ], + "id": 12344, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 22341, + 22342 + ], + "referencedDeclaration": 22342, + "src": "2164:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 12350, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2164:62:21", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12351, + "nodeType": "ExpressionStatement", + "src": "2164:62:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12355, + "name": "_token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12339, + "src": "2254:6:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + { + "argumentTypes": null, + "id": 12356, + "name": "_weight", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12341, + "src": "2262:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + ], + "expression": { + "argumentTypes": null, + "id": 12352, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22436, + "src": "2237:5:21", + "typeDescriptions": { + "typeIdentifier": "t_super$_LiquidTokenConverter_$12871", + "typeString": "contract super LiquidTokenConverter" + } + }, + "id": 12354, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "addReserve", + "nodeType": "MemberAccess", + "referencedDeclaration": 3074, + "src": "2237:16:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20Token_$20240_$_t_uint32_$returns$__$", + "typeString": "function (contract IERC20Token,uint32)" + } + }, + "id": 12357, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2237:33:21", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12358, + "nodeType": "ExpressionStatement", + "src": "2237:33:21" + } + ] + }, + "documentation": "@dev defines the reserve token for the converter\r\ncan only be called by the owner while the converter is inactive and the\r\nreserve wasn't defined yet\r\n\n * @param _token address of the reserve token\r\n@param _weight reserve weight, represented in ppm, 1-1000000\r", + "id": 12360, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "addReserve", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12342, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12339, + "name": "_token", + "nodeType": "VariableDeclaration", + "scope": 12360, + "src": "2045:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + "typeName": { + "contractScope": null, + "id": 12338, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "2045:11:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 12341, + "name": "_weight", + "nodeType": "VariableDeclaration", + "scope": 12360, + "src": "2065:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 12340, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "2065:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2044:36:21" + }, + "payable": false, + "returnParameters": { + "id": 12343, + "nodeType": "ParameterList", + "parameters": [], + "src": "2088:0:21" + }, + "scope": 12871, + "src": "2025:253:21", + "stateMutability": "nonpayable", + "superFunction": 3074, + "visibility": "public" + }, + { + "body": { + "id": 12407, + "nodeType": "Block", + "src": "2856:336:21", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 12382, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + "id": 12377, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 12373, + "name": "_targetToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12364, + "src": "2871:12:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12375, + "name": "anchor", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2511 + ], + "referencedDeclaration": 2511, + "src": "2899:6:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + ], + "id": 12374, + "name": "ISmartToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20295, + "src": "2887:11:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ISmartToken_$20295_$", + "typeString": "type(contract ISmartToken)" + } + }, + "id": 12376, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2887:19:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISmartToken_$20295", + "typeString": "contract ISmartToken" + } + }, + "src": "2871:35:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 12378, + "name": "reserves", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2520, + "src": "2910:8:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Reserve_$2506_storage_$", + "typeString": "mapping(address => struct ConverterBase.Reserve storage ref)" + } + }, + "id": 12380, + "indexExpression": { + "argumentTypes": null, + "id": 12379, + "name": "_sourceToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12362, + "src": "2919:12:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2910:22:21", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Reserve_$2506_storage", + "typeString": "struct ConverterBase.Reserve storage ref" + } + }, + "id": 12381, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "isSet", + "nodeType": "MemberAccess", + "referencedDeclaration": 2505, + "src": "2910:28:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "2871:67:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 12387, + "nodeType": "IfStatement", + "src": "2867:122:21", + "trueBody": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12384, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12366, + "src": "2981:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 12383, + "name": "purchaseTargetAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12589, + "src": "2960:20:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$_t_uint256_$", + "typeString": "function (uint256) view returns (uint256,uint256)" + } + }, + "id": 12385, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2960:29:21", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "functionReturnParameters": 12372, + "id": 12386, + "nodeType": "Return", + "src": "2953:36:21" + } + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 12397, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + "id": 12392, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 12388, + "name": "_sourceToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12362, + "src": "3004:12:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12390, + "name": "anchor", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2511 + ], + "referencedDeclaration": 2511, + "src": "3032:6:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + ], + "id": 12389, + "name": "ISmartToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20295, + "src": "3020:11:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ISmartToken_$20295_$", + "typeString": "type(contract ISmartToken)" + } + }, + "id": 12391, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3020:19:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISmartToken_$20295", + "typeString": "contract ISmartToken" + } + }, + "src": "3004:35:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 12393, + "name": "reserves", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2520, + "src": "3043:8:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Reserve_$2506_storage_$", + "typeString": "mapping(address => struct ConverterBase.Reserve storage ref)" + } + }, + "id": 12395, + "indexExpression": { + "argumentTypes": null, + "id": 12394, + "name": "_targetToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12364, + "src": "3052:12:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3043:22:21", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Reserve_$2506_storage", + "typeString": "struct ConverterBase.Reserve storage ref" + } + }, + "id": 12396, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "isSet", + "nodeType": "MemberAccess", + "referencedDeclaration": 2505, + "src": "3043:28:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "3004:67:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 12402, + "nodeType": "IfStatement", + "src": "3000:118:21", + "trueBody": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12399, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12366, + "src": "3110:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 12398, + "name": "saleTargetAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12656, + "src": "3093:16:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$_t_uint256_$", + "typeString": "function (uint256) view returns (uint256,uint256)" + } + }, + "id": 12400, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3093:25:21", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "functionReturnParameters": 12372, + "id": 12401, + "nodeType": "Return", + "src": "3086:32:21" + } + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "4552525f494e56414c49445f544f4b454e", + "id": 12404, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3164:19:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_ebb7677ef55bf004ceacedca2d0ee2121b64fc0fddbb89e9252a1965146107fb", + "typeString": "literal_string \"ERR_INVALID_TOKEN\"" + }, + "value": "ERR_INVALID_TOKEN" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_ebb7677ef55bf004ceacedca2d0ee2121b64fc0fddbb89e9252a1965146107fb", + "typeString": "literal_string \"ERR_INVALID_TOKEN\"" + } + ], + "id": 12403, + "name": "revert", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 22343, + 22344 + ], + "referencedDeclaration": 22344, + "src": "3157:6:21", + "typeDescriptions": { + "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", + "typeString": "function (string memory) pure" + } + }, + "id": 12405, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3157:27:21", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12406, + "nodeType": "ExpressionStatement", + "src": "3157:27:21" + } + ] + }, + "documentation": "@dev returns the expected target amount of converting the source token to the\r\ntarget token along with the fee\r\n\n * @param _sourceToken contract address of the source token\r\n@param _targetToken contract address of the target token\r\n@param _amount amount of tokens received from the user\r\n\n * @return expected target amount\r\n@return expected fee\r", + "id": 12408, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "targetAmountAndFee", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12367, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12362, + "name": "_sourceToken", + "nodeType": "VariableDeclaration", + "scope": 12408, + "src": "2748:24:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + "typeName": { + "contractScope": null, + "id": 12361, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "2748:11:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 12364, + "name": "_targetToken", + "nodeType": "VariableDeclaration", + "scope": 12408, + "src": "2774:24:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + "typeName": { + "contractScope": null, + "id": 12363, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "2774:11:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 12366, + "name": "_amount", + "nodeType": "VariableDeclaration", + "scope": 12408, + "src": "2800:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12365, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2800:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2747:69:21" + }, + "payable": false, + "returnParameters": { + "id": 12372, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12369, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 12408, + "src": "2838:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12368, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2838:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 12371, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 12408, + "src": "2847:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12370, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2847:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2837:18:21" + }, + "scope": 12871, + "src": "2720:472:21", + "stateMutability": "view", + "superFunction": 11681, + "visibility": "public" + }, + { + "body": { + "id": 12514, + "nodeType": "Block", + "src": "3945:940:21", + "statements": [ + { + "assignments": [], + "declarations": [ + { + "constant": false, + "id": 12424, + "name": "targetAmount", + "nodeType": "VariableDeclaration", + "scope": 12515, + "src": "3956:20:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12423, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3956:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 12425, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "3956:20:21" + }, + { + "assignments": [], + "declarations": [ + { + "constant": false, + "id": 12427, + "name": "reserveToken", + "nodeType": "VariableDeclaration", + "scope": 12515, + "src": "3987:24:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + "typeName": { + "contractScope": null, + "id": 12426, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "3987:11:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 12428, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "3987:24:21" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 12438, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + "id": 12433, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 12429, + "name": "_targetToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12412, + "src": "4028:12:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12431, + "name": "anchor", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2511 + ], + "referencedDeclaration": 2511, + "src": "4056:6:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + ], + "id": 12430, + "name": "ISmartToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20295, + "src": "4044:11:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ISmartToken_$20295_$", + "typeString": "type(contract ISmartToken)" + } + }, + "id": 12432, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4044:19:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISmartToken_$20295", + "typeString": "contract ISmartToken" + } + }, + "src": "4028:35:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 12434, + "name": "reserves", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2520, + "src": "4067:8:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Reserve_$2506_storage_$", + "typeString": "mapping(address => struct ConverterBase.Reserve storage ref)" + } + }, + "id": 12436, + "indexExpression": { + "argumentTypes": null, + "id": 12435, + "name": "_sourceToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12410, + "src": "4076:12:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4067:22:21", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Reserve_$2506_storage", + "typeString": "struct ConverterBase.Reserve storage ref" + } + }, + "id": 12437, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "isSet", + "nodeType": "MemberAccess", + "referencedDeclaration": 2505, + "src": "4067:28:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "4028:67:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 12461, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + "id": 12456, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 12452, + "name": "_sourceToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12410, + "src": "4235:12:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12454, + "name": "anchor", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2511 + ], + "referencedDeclaration": 2511, + "src": "4263:6:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + ], + "id": 12453, + "name": "ISmartToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20295, + "src": "4251:11:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ISmartToken_$20295_$", + "typeString": "type(contract ISmartToken)" + } + }, + "id": 12455, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4251:19:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISmartToken_$20295", + "typeString": "contract ISmartToken" + } + }, + "src": "4235:35:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 12457, + "name": "reserves", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2520, + "src": "4274:8:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Reserve_$2506_storage_$", + "typeString": "mapping(address => struct ConverterBase.Reserve storage ref)" + } + }, + "id": 12459, + "indexExpression": { + "argumentTypes": null, + "id": 12458, + "name": "_targetToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12412, + "src": "4283:12:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4274:22:21", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Reserve_$2506_storage", + "typeString": "struct ConverterBase.Reserve storage ref" + } + }, + "id": 12460, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "isSet", + "nodeType": "MemberAccess", + "referencedDeclaration": 2505, + "src": "4274:28:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "4235:67:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 12479, + "nodeType": "Block", + "src": "4439:84:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "4552525f494e56414c49445f544f4b454e", + "id": 12476, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4491:19:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_ebb7677ef55bf004ceacedca2d0ee2121b64fc0fddbb89e9252a1965146107fb", + "typeString": "literal_string \"ERR_INVALID_TOKEN\"" + }, + "value": "ERR_INVALID_TOKEN" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_ebb7677ef55bf004ceacedca2d0ee2121b64fc0fddbb89e9252a1965146107fb", + "typeString": "literal_string \"ERR_INVALID_TOKEN\"" + } + ], + "id": 12475, + "name": "revert", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 22343, + 22344 + ], + "referencedDeclaration": 22344, + "src": "4484:6:21", + "typeDescriptions": { + "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", + "typeString": "function (string memory) pure" + } + }, + "id": 12477, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4484:27:21", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12478, + "nodeType": "ExpressionStatement", + "src": "4484:27:21" + } + ] + }, + "id": 12480, + "nodeType": "IfStatement", + "src": "4231:292:21", + "trueBody": { + "id": 12474, + "nodeType": "Block", + "src": "4304:120:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 12464, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 12462, + "name": "reserveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12427, + "src": "4319:12:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 12463, + "name": "_targetToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12412, + "src": "4334:12:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "src": "4319:27:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "id": 12465, + "nodeType": "ExpressionStatement", + "src": "4319:27:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 12472, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 12466, + "name": "targetAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12424, + "src": "4361:12:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12468, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12414, + "src": "4381:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 12469, + "name": "_trader", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12416, + "src": "4390:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 12470, + "name": "_beneficiary", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12418, + "src": "4399:12:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 12467, + "name": "sell", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12870, + "src": "4376:4:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_address_$_t_address_$returns$_t_uint256_$", + "typeString": "function (uint256,address,address) returns (uint256)" + } + }, + "id": 12471, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4376:36:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4361:51:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12473, + "nodeType": "ExpressionStatement", + "src": "4361:51:21" + } + ] + } + }, + "id": 12481, + "nodeType": "IfStatement", + "src": "4024:499:21", + "trueBody": { + "id": 12451, + "nodeType": "Block", + "src": "4097:119:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 12441, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 12439, + "name": "reserveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12427, + "src": "4112:12:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 12440, + "name": "_sourceToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12410, + "src": "4127:12:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "src": "4112:27:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "id": 12442, + "nodeType": "ExpressionStatement", + "src": "4112:27:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 12449, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 12443, + "name": "targetAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12424, + "src": "4154:12:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12445, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12414, + "src": "4173:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 12446, + "name": "_trader", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12416, + "src": "4182:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 12447, + "name": "_beneficiary", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12418, + "src": "4191:12:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 12444, + "name": "buy", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12746, + "src": "4169:3:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_address_$_t_address_$returns$_t_uint256_$", + "typeString": "function (uint256,address,address) returns (uint256)" + } + }, + "id": 12448, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4169:35:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4154:50:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12450, + "nodeType": "ExpressionStatement", + "src": "4154:50:21" + } + ] + } + }, + { + "assignments": [ + 12483 + ], + "declarations": [ + { + "constant": false, + "id": 12483, + "name": "totalSupply", + "nodeType": "VariableDeclaration", + "scope": 12515, + "src": "4589:19:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12482, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4589:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 12489, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12485, + "name": "anchor", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2511 + ], + "referencedDeclaration": 2511, + "src": "4623:6:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + ], + "id": 12484, + "name": "ISmartToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20295, + "src": "4611:11:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ISmartToken_$20295_$", + "typeString": "type(contract ISmartToken)" + } + }, + "id": 12486, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4611:19:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISmartToken_$20295", + "typeString": "contract ISmartToken" + } + }, + "id": 12487, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "totalSupply", + "nodeType": "MemberAccess", + "referencedDeclaration": 20182, + "src": "4611:31:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", + "typeString": "function () view external returns (uint256)" + } + }, + "id": 12488, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4611:33:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4589:55:21" + }, + { + "assignments": [ + 12491 + ], + "declarations": [ + { + "constant": false, + "id": 12491, + "name": "reserveWeight", + "nodeType": "VariableDeclaration", + "scope": 12515, + "src": "4655:20:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 12490, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "4655:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 12496, + "initialValue": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 12492, + "name": "reserves", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2520, + "src": "4678:8:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Reserve_$2506_storage_$", + "typeString": "mapping(address => struct ConverterBase.Reserve storage ref)" + } + }, + "id": 12494, + "indexExpression": { + "argumentTypes": null, + "id": 12493, + "name": "reserveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12427, + "src": "4687:12:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4678:22:21", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Reserve_$2506_storage", + "typeString": "struct ConverterBase.Reserve storage ref" + } + }, + "id": 12495, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "weight", + "nodeType": "MemberAccess", + "referencedDeclaration": 2499, + "src": "4678:29:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4655:52:21" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12498, + "name": "anchor", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2511 + ], + "referencedDeclaration": 2511, + "src": "4739:6:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + }, + { + "argumentTypes": null, + "id": 12499, + "name": "reserveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12427, + "src": "4747:12:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12504, + "name": "WEIGHT_RESOLUTION", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2489, + "src": "4794:17:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12501, + "name": "reserveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12427, + "src": "4776:12:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + ], + "id": 12500, + "name": "reserveBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3106 + ], + "referencedDeclaration": 3106, + "src": "4761:14:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_contract$_IERC20Token_$20240_$returns$_t_uint256_$", + "typeString": "function (contract IERC20Token) view returns (uint256)" + } + }, + "id": 12502, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4761:28:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12503, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 21791, + "src": "4761:32:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 12505, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4761:51:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12508, + "name": "reserveWeight", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12491, + "src": "4830:13:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + ], + "expression": { + "argumentTypes": null, + "id": 12506, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12483, + "src": "4814:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12507, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 21791, + "src": "4814:15:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 12509, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4814:30:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + }, + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 12497, + "name": "TokenRateUpdate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2564, + "src": "4723:15:21", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256,uint256)" + } + }, + "id": 12510, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4723:122:21", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12511, + "nodeType": "EmitStatement", + "src": "4718:127:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 12512, + "name": "targetAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12424, + "src": "4865:12:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 12422, + "id": 12513, + "nodeType": "Return", + "src": "4858:19:21" + } + ] + }, + "documentation": "@dev converts between the liquid token and its reserve\r\ncan only be called by the SovrynSwap network contract\r\n\n * @param _sourceToken source ERC20 token\r\n@param _targetToken target ERC20 token\r\n@param _amount amount of tokens to convert (in units of the source token)\r\n@param _trader address of the caller who executed the conversion\r\n@param _beneficiary wallet to receive the conversion result\r\n\n * @return amount of tokens received (in units of the target token)\r", + "id": 12515, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "doConvert", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12419, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12410, + "name": "_sourceToken", + "nodeType": "VariableDeclaration", + "scope": 12515, + "src": "3787:24:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + "typeName": { + "contractScope": null, + "id": 12409, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "3787:11:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 12412, + "name": "_targetToken", + "nodeType": "VariableDeclaration", + "scope": 12515, + "src": "3813:24:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + "typeName": { + "contractScope": null, + "id": 12411, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "3813:11:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 12414, + "name": "_amount", + "nodeType": "VariableDeclaration", + "scope": 12515, + "src": "3839:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12413, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3839:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 12416, + "name": "_trader", + "nodeType": "VariableDeclaration", + "scope": 12515, + "src": "3856:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12415, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3856:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 12418, + "name": "_beneficiary", + "nodeType": "VariableDeclaration", + "scope": 12515, + "src": "3873:20:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12417, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3873:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3786:108:21" + }, + "payable": false, + "returnParameters": { + "id": 12422, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12421, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 12515, + "src": "3931:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12420, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3931:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3930:9:21" + }, + "scope": 12871, + "src": "3768:1117:21", + "stateMutability": "nonpayable", + "superFunction": 3188, + "visibility": "internal" + }, + { + "body": { + "id": 12588, + "nodeType": "Block", + "src": "5371:774:21", + "statements": [ + { + "assignments": [ + 12527 + ], + "declarations": [ + { + "constant": false, + "id": 12527, + "name": "totalSupply", + "nodeType": "VariableDeclaration", + "scope": 12589, + "src": "5382:19:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12526, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5382:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 12533, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12529, + "name": "anchor", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2511 + ], + "referencedDeclaration": 2511, + "src": "5416:6:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + ], + "id": 12528, + "name": "ISmartToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20295, + "src": "5404:11:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ISmartToken_$20295_$", + "typeString": "type(contract ISmartToken)" + } + }, + "id": 12530, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5404:19:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISmartToken_$20295", + "typeString": "contract ISmartToken" + } + }, + "id": 12531, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "totalSupply", + "nodeType": "MemberAccess", + "referencedDeclaration": 20182, + "src": "5404:31:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", + "typeString": "function () view external returns (uint256)" + } + }, + "id": 12532, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5404:33:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5382:55:21" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 12536, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 12534, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12527, + "src": "5567:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 12535, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5582:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "5567:16:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 12550, + "nodeType": "IfStatement", + "src": "5563:112:21", + "trueBody": { + "expression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 12542, + "name": "reserves", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2520, + "src": "5641:8:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Reserve_$2506_storage_$", + "typeString": "mapping(address => struct ConverterBase.Reserve storage ref)" + } + }, + "id": 12544, + "indexExpression": { + "argumentTypes": null, + "id": 12543, + "name": "reserveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12552, + "src": "5650:12:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5641:22:21", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Reserve_$2506_storage", + "typeString": "struct ConverterBase.Reserve storage ref" + } + }, + "id": 12545, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "weight", + "nodeType": "MemberAccess", + "referencedDeclaration": 2499, + "src": "5641:29:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12539, + "name": "WEIGHT_RESOLUTION", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2489, + "src": "5618:17:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + ], + "expression": { + "argumentTypes": null, + "id": 12537, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12517, + "src": "5606:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12538, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 21791, + "src": "5606:11:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 12540, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5606:30:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12541, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "div", + "nodeType": "MemberAccess", + "referencedDeclaration": 21816, + "src": "5606:34:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 12546, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5606:65:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "hexValue": "30", + "id": 12547, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5673:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 12548, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "5605:70:21", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_rational_0_by_1_$", + "typeString": "tuple(uint256,int_const 0)" + } + }, + "functionReturnParameters": 12525, + "id": 12549, + "nodeType": "Return", + "src": "5598:77:21" + } + }, + { + "assignments": [ + 12552 + ], + "declarations": [ + { + "constant": false, + "id": 12552, + "name": "reserveToken", + "nodeType": "VariableDeclaration", + "scope": 12589, + "src": "5688:24:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + "typeName": { + "contractScope": null, + "id": 12551, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "5688:11:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 12556, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 12553, + "name": "reserveTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2516, + "src": "5715:13:21", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_storage", + "typeString": "contract IERC20Token[] storage ref" + } + }, + "id": 12555, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 12554, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5729:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5715:16:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5688:43:21" + }, + { + "assignments": [ + 12558 + ], + "declarations": [ + { + "constant": false, + "id": 12558, + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 12589, + "src": "5742:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12557, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5742:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 12575, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12565, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12527, + "src": "5844:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12567, + "name": "reserveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12552, + "src": "5885:12:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + ], + "id": 12566, + "name": "reserveBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3106 + ], + "referencedDeclaration": 3106, + "src": "5870:14:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_contract$_IERC20Token_$20240_$returns$_t_uint256_$", + "typeString": "function (contract IERC20Token) view returns (uint256)" + } + }, + "id": 12568, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5870:28:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 12569, + "name": "reserves", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2520, + "src": "5913:8:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Reserve_$2506_storage_$", + "typeString": "mapping(address => struct ConverterBase.Reserve storage ref)" + } + }, + "id": 12571, + "indexExpression": { + "argumentTypes": null, + "id": 12570, + "name": "reserveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12552, + "src": "5922:12:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5913:22:21", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Reserve_$2506_storage", + "typeString": "struct ConverterBase.Reserve storage ref" + } + }, + "id": 12572, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "weight", + "nodeType": "MemberAccess", + "referencedDeclaration": 2499, + "src": "5913:29:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + { + "argumentTypes": null, + "id": 12573, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12517, + "src": "5957:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12561, + "name": "SOVRYNSWAP_FORMULA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20758, + "src": "5788:18:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 12560, + "name": "addressOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20931, + "src": "5778:9:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$", + "typeString": "function (bytes32) view returns (address)" + } + }, + "id": 12562, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5778:29:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 12559, + "name": "ISovrynSwapFormula", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12240, + "src": "5759:18:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ISovrynSwapFormula_$12240_$", + "typeString": "type(contract ISovrynSwapFormula)" + } + }, + "id": 12563, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5759:49:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISovrynSwapFormula_$12240", + "typeString": "contract ISovrynSwapFormula" + } + }, + "id": 12564, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "purchaseTargetAmount", + "nodeType": "MemberAccess", + "referencedDeclaration": 12155, + "src": "5759:70:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_uint256_$_t_uint256_$_t_uint32_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint32,uint256) view external returns (uint256)" + } + }, + "id": 12574, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5759:216:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5742:233:21" + }, + { + "assignments": [ + 12577 + ], + "declarations": [ + { + "constant": false, + "id": 12577, + "name": "fee", + "nodeType": "VariableDeclaration", + "scope": 12589, + "src": "6066:11:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12576, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6066:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 12581, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12579, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12558, + "src": "6093:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 12578, + "name": "calculateFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3204, + "src": "6080:12:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) view returns (uint256)" + } + }, + "id": 12580, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6080:20:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6066:34:21" + }, + { + "expression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 12584, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 12582, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12558, + "src": "6119:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 12583, + "name": "fee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12577, + "src": "6128:3:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6119:12:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 12585, + "name": "fee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12577, + "src": "6133:3:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 12586, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "6118:19:21", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "functionReturnParameters": 12525, + "id": 12587, + "nodeType": "Return", + "src": "6111:26:21" + } + ] + }, + "documentation": "@dev returns the expected target amount of buying with a given amount of tokens\r\n\n * @param _amount amount of reserve tokens to get the target amount for\r\n\n * @return amount of liquid tokens that the user will receive\r\n@return amount of liquid tokens that the user will pay as fee\r", + "id": 12589, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [ + { + "arguments": null, + "id": 12520, + "modifierName": { + "argumentTypes": null, + "id": 12519, + "name": "active", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2604, + "src": "5323:6:21", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "5323:6:21" + } + ], + "name": "purchaseTargetAmount", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12518, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12517, + "name": "_amount", + "nodeType": "VariableDeclaration", + "scope": 12589, + "src": "5265:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12516, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5265:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5264:17:21" + }, + "payable": false, + "returnParameters": { + "id": 12525, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12522, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 12589, + "src": "5348:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12521, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5348:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 12524, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 12589, + "src": "5357:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12523, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5357:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5347:18:21" + }, + "scope": 12871, + "src": "5235:910:21", + "stateMutability": "view", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 12655, + "nodeType": "Block", + "src": "6554:711:21", + "statements": [ + { + "assignments": [ + 12601 + ], + "declarations": [ + { + "constant": false, + "id": 12601, + "name": "totalSupply", + "nodeType": "VariableDeclaration", + "scope": 12656, + "src": "6565:19:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12600, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6565:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 12607, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12603, + "name": "anchor", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2511 + ], + "referencedDeclaration": 2511, + "src": "6599:6:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + ], + "id": 12602, + "name": "ISmartToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20295, + "src": "6587:11:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ISmartToken_$20295_$", + "typeString": "type(contract ISmartToken)" + } + }, + "id": 12604, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6587:19:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISmartToken_$20295", + "typeString": "contract ISmartToken" + } + }, + "id": 12605, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "totalSupply", + "nodeType": "MemberAccess", + "referencedDeclaration": 20182, + "src": "6587:31:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", + "typeString": "function () view external returns (uint256)" + } + }, + "id": 12606, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6587:33:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6565:55:21" + }, + { + "assignments": [ + 12609 + ], + "declarations": [ + { + "constant": false, + "id": 12609, + "name": "reserveToken", + "nodeType": "VariableDeclaration", + "scope": 12656, + "src": "6633:24:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + "typeName": { + "contractScope": null, + "id": 12608, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "6633:11:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 12613, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 12610, + "name": "reserveTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2516, + "src": "6660:13:21", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_storage", + "typeString": "contract IERC20Token[] storage ref" + } + }, + "id": 12612, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 12611, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6674:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6660:16:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6633:43:21" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 12616, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 12614, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12601, + "src": "6776:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 12615, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12591, + "src": "6791:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6776:22:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 12623, + "nodeType": "IfStatement", + "src": "6772:81:21", + "trueBody": { + "expression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12618, + "name": "reserveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12609, + "src": "6836:12:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + ], + "id": 12617, + "name": "reserveBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3106 + ], + "referencedDeclaration": 3106, + "src": "6821:14:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_contract$_IERC20Token_$20240_$returns$_t_uint256_$", + "typeString": "function (contract IERC20Token) view returns (uint256)" + } + }, + "id": 12619, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6821:28:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "hexValue": "30", + "id": 12620, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6851:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 12621, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "6820:33:21", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_rational_0_by_1_$", + "typeString": "tuple(uint256,int_const 0)" + } + }, + "functionReturnParameters": 12599, + "id": 12622, + "nodeType": "Return", + "src": "6813:40:21" + } + }, + { + "assignments": [ + 12625 + ], + "declarations": [ + { + "constant": false, + "id": 12625, + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 12656, + "src": "6866:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12624, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6866:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 12642, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12632, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12601, + "src": "6964:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12634, + "name": "reserveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12609, + "src": "7005:12:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + ], + "id": 12633, + "name": "reserveBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3106 + ], + "referencedDeclaration": 3106, + "src": "6990:14:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_contract$_IERC20Token_$20240_$returns$_t_uint256_$", + "typeString": "function (contract IERC20Token) view returns (uint256)" + } + }, + "id": 12635, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6990:28:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 12636, + "name": "reserves", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2520, + "src": "7033:8:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Reserve_$2506_storage_$", + "typeString": "mapping(address => struct ConverterBase.Reserve storage ref)" + } + }, + "id": 12638, + "indexExpression": { + "argumentTypes": null, + "id": 12637, + "name": "reserveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12609, + "src": "7042:12:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7033:22:21", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Reserve_$2506_storage", + "typeString": "struct ConverterBase.Reserve storage ref" + } + }, + "id": 12639, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "weight", + "nodeType": "MemberAccess", + "referencedDeclaration": 2499, + "src": "7033:29:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + { + "argumentTypes": null, + "id": 12640, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12591, + "src": "7077:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12628, + "name": "SOVRYNSWAP_FORMULA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20758, + "src": "6912:18:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 12627, + "name": "addressOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20931, + "src": "6902:9:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$", + "typeString": "function (bytes32) view returns (address)" + } + }, + "id": 12629, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6902:29:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 12626, + "name": "ISovrynSwapFormula", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12240, + "src": "6883:18:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ISovrynSwapFormula_$12240_$", + "typeString": "type(contract ISovrynSwapFormula)" + } + }, + "id": 12630, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6883:49:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISovrynSwapFormula_$12240", + "typeString": "contract ISovrynSwapFormula" + } + }, + "id": 12631, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "saleTargetAmount", + "nodeType": "MemberAccess", + "referencedDeclaration": 12168, + "src": "6883:66:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_uint256_$_t_uint256_$_t_uint32_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint32,uint256) view external returns (uint256)" + } + }, + "id": 12641, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6883:212:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6866:229:21" + }, + { + "assignments": [ + 12644 + ], + "declarations": [ + { + "constant": false, + "id": 12644, + "name": "fee", + "nodeType": "VariableDeclaration", + "scope": 12656, + "src": "7186:11:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12643, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7186:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 12648, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12646, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12625, + "src": "7213:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 12645, + "name": "calculateFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3204, + "src": "7200:12:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) view returns (uint256)" + } + }, + "id": 12647, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7200:20:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7186:34:21" + }, + { + "expression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 12651, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 12649, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12625, + "src": "7239:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 12650, + "name": "fee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12644, + "src": "7248:3:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7239:12:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 12652, + "name": "fee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12644, + "src": "7253:3:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 12653, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "7238:19:21", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "functionReturnParameters": 12599, + "id": 12654, + "nodeType": "Return", + "src": "7231:26:21" + } + ] + }, + "documentation": "@dev returns the expected target amount of selling a given amount of tokens\r\n\n * @param _amount amount of liquid tokens to get the target amount for\r\n\n * @return expected reserve tokens\r\n@return expected fee\r", + "id": 12656, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [ + { + "arguments": null, + "id": 12594, + "modifierName": { + "argumentTypes": null, + "id": 12593, + "name": "active", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2604, + "src": "6506:6:21", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "6506:6:21" + } + ], + "name": "saleTargetAmount", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12592, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12591, + "name": "_amount", + "nodeType": "VariableDeclaration", + "scope": 12656, + "src": "6448:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12590, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6448:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6447:17:21" + }, + "payable": false, + "returnParameters": { + "id": 12599, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12596, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 12656, + "src": "6531:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12595, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6531:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 12598, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 12656, + "src": "6540:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12597, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6540:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6530:18:21" + }, + "scope": 12871, + "src": "6422:843:21", + "stateMutability": "view", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 12745, + "nodeType": "Block", + "src": "7741:1013:21", + "statements": [ + { + "assignments": [ + 12668, + 12670 + ], + "declarations": [ + { + "constant": false, + "id": 12668, + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 12746, + "src": "7800:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12667, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7800:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 12670, + "name": "fee", + "nodeType": "VariableDeclaration", + "scope": 12746, + "src": "7816:11:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12669, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7816:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 12674, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12672, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12658, + "src": "7852:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 12671, + "name": "purchaseTargetAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12589, + "src": "7831:20:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$_t_uint256_$", + "typeString": "function (uint256) view returns (uint256,uint256)" + } + }, + "id": 12673, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7831:29:21", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7799:61:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 12678, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 12676, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12668, + "src": "7936:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 12677, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7946:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "7936:11:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4552525f5a45524f5f5441524745545f414d4f554e54", + "id": 12679, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7949:24:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_29cb0846c2d5a859f661a5b4c4a8be47a80ca27c24af6f007bda101871b53e03", + "typeString": "literal_string \"ERR_ZERO_TARGET_AMOUNT\"" + }, + "value": "ERR_ZERO_TARGET_AMOUNT" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_29cb0846c2d5a859f661a5b4c4a8be47a80ca27c24af6f007bda101871b53e03", + "typeString": "literal_string \"ERR_ZERO_TARGET_AMOUNT\"" + } + ], + "id": 12675, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 22341, + 22342 + ], + "referencedDeclaration": 22342, + "src": "7928:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 12680, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7928:46:21", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12681, + "nodeType": "ExpressionStatement", + "src": "7928:46:21" + }, + { + "assignments": [ + 12683 + ], + "declarations": [ + { + "constant": false, + "id": 12683, + "name": "reserveToken", + "nodeType": "VariableDeclaration", + "scope": 12746, + "src": "7987:24:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + "typeName": { + "contractScope": null, + "id": 12682, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "7987:11:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 12687, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 12684, + "name": "reserveTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2516, + "src": "8014:13:21", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_storage", + "typeString": "contract IERC20Token[] storage ref" + } + }, + "id": 12686, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 12685, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8028:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8014:16:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7987:43:21" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 12690, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 12688, + "name": "reserveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12683, + "src": "8110:12:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 12689, + "name": "ETH_RESERVE_ADDRESS", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2495, + "src": "8126:19:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "8110:35:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 12715, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 12703, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12700, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22338, + "src": "8253:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 12701, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8253:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 12702, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8266:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "8253:14:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 12714, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12710, + "name": "reserveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12683, + "src": "8319:12:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + ], + "id": 12709, + "name": "reserveBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3106 + ], + "referencedDeclaration": 3106, + "src": "8304:14:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_contract$_IERC20Token_$20240_$returns$_t_uint256_$", + "typeString": "function (contract IERC20Token) view returns (uint256)" + } + }, + "id": 12711, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8304:28:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12706, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22435, + "src": "8294:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_LiquidTokenConverter_$12871", + "typeString": "contract LiquidTokenConverter" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_LiquidTokenConverter_$12871", + "typeString": "contract LiquidTokenConverter" + } + ], + "expression": { + "argumentTypes": null, + "id": 12704, + "name": "reserveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12683, + "src": "8271:12:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "id": 12705, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 20194, + "src": "8271:22:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 12707, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8271:28:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12708, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 21758, + "src": "8271:32:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 12712, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8271:62:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 12713, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12658, + "src": "8337:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8271:73:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "8253:91:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4552525f494e56414c49445f414d4f554e54", + "id": 12716, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8346:20:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c44007bfe4e704be0ed1393660a827b4f88825f4b6fe1bc10cd38fc3fcb7d839", + "typeString": "literal_string \"ERR_INVALID_AMOUNT\"" + }, + "value": "ERR_INVALID_AMOUNT" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c44007bfe4e704be0ed1393660a827b4f88825f4b6fe1bc10cd38fc3fcb7d839", + "typeString": "literal_string \"ERR_INVALID_AMOUNT\"" + } + ], + "id": 12699, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 22341, + 22342 + ], + "referencedDeclaration": 22342, + "src": "8245:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 12717, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8245:122:21", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12718, + "nodeType": "ExpressionStatement", + "src": "8245:122:21" + }, + "id": 12719, + "nodeType": "IfStatement", + "src": "8106:261:21", + "trueBody": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 12695, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12692, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22338, + "src": "8168:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 12693, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8168:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 12694, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12658, + "src": "8181:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8168:20:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4552525f4554485f414d4f554e545f4d49534d41544348", + "id": 12696, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8190:25:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_b27c160ac497b67c4fef6b5554e0b1a41f3c9b44e4bd8482662df760b76c093b", + "typeString": "literal_string \"ERR_ETH_AMOUNT_MISMATCH\"" + }, + "value": "ERR_ETH_AMOUNT_MISMATCH" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_b27c160ac497b67c4fef6b5554e0b1a41f3c9b44e4bd8482662df760b76c093b", + "typeString": "literal_string \"ERR_ETH_AMOUNT_MISMATCH\"" + } + ], + "id": 12691, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 22341, + 22342 + ], + "referencedDeclaration": 22342, + "src": "8160:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 12697, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8160:56:21", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12698, + "nodeType": "ExpressionStatement", + "src": "8160:56:21" + } + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12721, + "name": "reserveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12683, + "src": "8436:12:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + ], + "id": 12720, + "name": "syncReserveBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3237, + "src": "8417:18:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20Token_$20240_$returns$__$", + "typeString": "function (contract IERC20Token)" + } + }, + "id": 12722, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8417:32:21", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12723, + "nodeType": "ExpressionStatement", + "src": "8417:32:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12728, + "name": "_beneficiary", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12662, + "src": "8555:12:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 12729, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12668, + "src": "8569:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12725, + "name": "anchor", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2511 + ], + "referencedDeclaration": 2511, + "src": "8541:6:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + ], + "id": 12724, + "name": "ISmartToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20295, + "src": "8529:11:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ISmartToken_$20295_$", + "typeString": "type(contract ISmartToken)" + } + }, + "id": 12726, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8529:19:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISmartToken_$20295", + "typeString": "contract ISmartToken" + } + }, + "id": 12727, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "issue", + "nodeType": "MemberAccess", + "referencedDeclaration": 20287, + "src": "8529:25:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256) external" + } + }, + "id": 12730, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8529:47:21", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12731, + "nodeType": "ExpressionStatement", + "src": "8529:47:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12733, + "name": "reserveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12683, + "src": "8655:12:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12735, + "name": "anchor", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2511 + ], + "referencedDeclaration": 2511, + "src": "8681:6:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + ], + "id": 12734, + "name": "ISmartToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20295, + "src": "8669:11:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ISmartToken_$20295_$", + "typeString": "type(contract ISmartToken)" + } + }, + "id": 12736, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8669:19:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISmartToken_$20295", + "typeString": "contract ISmartToken" + } + }, + { + "argumentTypes": null, + "id": 12737, + "name": "_trader", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12660, + "src": "8690:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 12738, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12658, + "src": "8699:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 12739, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12668, + "src": "8708:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 12740, + "name": "fee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12670, + "src": "8716:3:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + { + "typeIdentifier": "t_contract$_ISmartToken_$20295", + "typeString": "contract ISmartToken" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 12732, + "name": "dispatchConversionEvent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3298, + "src": "8631:23:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20Token_$20240_$_t_contract$_IERC20Token_$20240_$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (contract IERC20Token,contract IERC20Token,address,uint256,uint256,uint256)" + } + }, + "id": 12741, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8631:89:21", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12742, + "nodeType": "ExpressionStatement", + "src": "8631:89:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 12743, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12668, + "src": "8740:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 12666, + "id": 12744, + "nodeType": "Return", + "src": "8733:13:21" + } + ] + }, + "documentation": "@dev buys the liquid token by depositing in its reserve\r\n\n * @param _amount amount of reserve token to buy the token for\r\n@param _trader address of the caller who executed the conversion\r\n@param _beneficiary wallet to receive the conversion result\r\n\n * @return amount of liquid tokens received\r", + "id": 12746, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "buy", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12663, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12658, + "name": "_amount", + "nodeType": "VariableDeclaration", + "scope": 12746, + "src": "7658:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12657, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7658:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 12660, + "name": "_trader", + "nodeType": "VariableDeclaration", + "scope": 12746, + "src": "7675:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12659, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7675:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 12662, + "name": "_beneficiary", + "nodeType": "VariableDeclaration", + "scope": 12746, + "src": "7692:20:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12661, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7692:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "7657:56:21" + }, + "payable": false, + "returnParameters": { + "id": 12666, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12665, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 12746, + "src": "7732:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12664, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7732:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "7731:9:21" + }, + "scope": 12871, + "src": "7645:1109:21", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 12869, + "nodeType": "Block", + "src": "9223:1446:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 12765, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 12758, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12748, + "src": "9305:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12763, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22435, + "src": "9346:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_LiquidTokenConverter_$12871", + "typeString": "contract LiquidTokenConverter" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_LiquidTokenConverter_$12871", + "typeString": "contract LiquidTokenConverter" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12760, + "name": "anchor", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2511 + ], + "referencedDeclaration": 2511, + "src": "9328:6:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + ], + "id": 12759, + "name": "ISmartToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20295, + "src": "9316:11:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ISmartToken_$20295_$", + "typeString": "type(contract ISmartToken)" + } + }, + "id": 12761, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9316:19:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISmartToken_$20295", + "typeString": "contract ISmartToken" + } + }, + "id": 12762, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 20194, + "src": "9316:29:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 12764, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9316:35:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9305:46:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4552525f494e56414c49445f414d4f554e54", + "id": 12766, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9353:20:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c44007bfe4e704be0ed1393660a827b4f88825f4b6fe1bc10cd38fc3fcb7d839", + "typeString": "literal_string \"ERR_INVALID_AMOUNT\"" + }, + "value": "ERR_INVALID_AMOUNT" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c44007bfe4e704be0ed1393660a827b4f88825f4b6fe1bc10cd38fc3fcb7d839", + "typeString": "literal_string \"ERR_INVALID_AMOUNT\"" + } + ], + "id": 12757, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 22341, + 22342 + ], + "referencedDeclaration": 22342, + "src": "9297:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 12767, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9297:77:21", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12768, + "nodeType": "ExpressionStatement", + "src": "9297:77:21" + }, + { + "assignments": [ + 12770, + 12772 + ], + "declarations": [ + { + "constant": false, + "id": 12770, + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 12870, + "src": "9435:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12769, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9435:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 12772, + "name": "fee", + "nodeType": "VariableDeclaration", + "scope": 12870, + "src": "9451:11:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12771, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9451:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 12776, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12774, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12748, + "src": "9483:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 12773, + "name": "saleTargetAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12656, + "src": "9466:16:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$_t_uint256_$", + "typeString": "function (uint256) view returns (uint256,uint256)" + } + }, + "id": 12775, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9466:25:21", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9434:57:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 12780, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 12778, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12770, + "src": "9567:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 12779, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9577:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "9567:11:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4552525f5a45524f5f5441524745545f414d4f554e54", + "id": 12781, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9580:24:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_29cb0846c2d5a859f661a5b4c4a8be47a80ca27c24af6f007bda101871b53e03", + "typeString": "literal_string \"ERR_ZERO_TARGET_AMOUNT\"" + }, + "value": "ERR_ZERO_TARGET_AMOUNT" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_29cb0846c2d5a859f661a5b4c4a8be47a80ca27c24af6f007bda101871b53e03", + "typeString": "literal_string \"ERR_ZERO_TARGET_AMOUNT\"" + } + ], + "id": 12777, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 22341, + 22342 + ], + "referencedDeclaration": 22342, + "src": "9559:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 12782, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9559:46:21", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12783, + "nodeType": "ExpressionStatement", + "src": "9559:46:21" + }, + { + "assignments": [ + 12785 + ], + "declarations": [ + { + "constant": false, + "id": 12785, + "name": "reserveToken", + "nodeType": "VariableDeclaration", + "scope": 12870, + "src": "9618:24:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + "typeName": { + "contractScope": null, + "id": 12784, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "9618:11:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 12789, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 12786, + "name": "reserveTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2516, + "src": "9645:13:21", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_storage", + "typeString": "contract IERC20Token[] storage ref" + } + }, + "id": 12788, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 12787, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9659:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9645:16:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9618:43:21" + }, + { + "assignments": [ + 12791 + ], + "declarations": [ + { + "constant": false, + "id": 12791, + "name": "tokenSupply", + "nodeType": "VariableDeclaration", + "scope": 12870, + "src": "9786:19:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12790, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9786:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 12797, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12793, + "name": "anchor", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2511 + ], + "referencedDeclaration": 2511, + "src": "9820:6:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + ], + "id": 12792, + "name": "ISmartToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20295, + "src": "9808:11:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ISmartToken_$20295_$", + "typeString": "type(contract ISmartToken)" + } + }, + "id": 12794, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9808:19:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISmartToken_$20295", + "typeString": "contract ISmartToken" + } + }, + "id": 12795, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "totalSupply", + "nodeType": "MemberAccess", + "referencedDeclaration": 20182, + "src": "9808:31:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", + "typeString": "function () view external returns (uint256)" + } + }, + "id": 12796, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9808:33:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9786:55:21" + }, + { + "assignments": [ + 12799 + ], + "declarations": [ + { + "constant": false, + "id": 12799, + "name": "rsvBalance", + "nodeType": "VariableDeclaration", + "scope": 12870, + "src": "9852:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12798, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9852:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 12803, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12801, + "name": "reserveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12785, + "src": "9888:12:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + ], + "id": 12800, + "name": "reserveBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3106 + ], + "referencedDeclaration": 3106, + "src": "9873:14:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_contract$_IERC20Token_$20240_$returns$_t_uint256_$", + "typeString": "function (contract IERC20Token) view returns (uint256)" + } + }, + "id": 12802, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9873:28:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9852:49:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 12816, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 12807, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 12805, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12770, + "src": "9919:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 12806, + "name": "rsvBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12799, + "src": "9928:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9919:19:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 12814, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 12810, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 12808, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12770, + "src": "9943:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 12809, + "name": "rsvBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12799, + "src": "9953:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9943:20:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 12813, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 12811, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12748, + "src": "9967:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 12812, + "name": "tokenSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12791, + "src": "9978:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9967:22:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "9943:46:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 12815, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "9942:48:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "9919:71:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 12804, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22327, + "src": "9912:6:21", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 12817, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9912:79:21", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12818, + "nodeType": "ExpressionStatement", + "src": "9912:79:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12823, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22435, + "src": "10110:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_LiquidTokenConverter_$12871", + "typeString": "contract LiquidTokenConverter" + } + }, + { + "argumentTypes": null, + "id": 12824, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12748, + "src": "10116:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_LiquidTokenConverter_$12871", + "typeString": "contract LiquidTokenConverter" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12820, + "name": "anchor", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2511 + ], + "referencedDeclaration": 2511, + "src": "10094:6:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + ], + "id": 12819, + "name": "ISmartToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20295, + "src": "10082:11:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ISmartToken_$20295_$", + "typeString": "type(contract ISmartToken)" + } + }, + "id": 12821, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10082:19:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISmartToken_$20295", + "typeString": "contract ISmartToken" + } + }, + "id": 12822, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "destroy", + "nodeType": "MemberAccess", + "referencedDeclaration": 20294, + "src": "10082:27:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256) external" + } + }, + "id": 12825, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10082:42:21", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12826, + "nodeType": "ExpressionStatement", + "src": "10082:42:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 12838, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 12827, + "name": "reserves", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2520, + "src": "10176:8:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Reserve_$2506_storage_$", + "typeString": "mapping(address => struct ConverterBase.Reserve storage ref)" + } + }, + "id": 12829, + "indexExpression": { + "argumentTypes": null, + "id": 12828, + "name": "reserveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12785, + "src": "10185:12:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10176:22:21", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Reserve_$2506_storage", + "typeString": "struct ConverterBase.Reserve storage ref" + } + }, + "id": 12830, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "balance", + "nodeType": "MemberAccess", + "referencedDeclaration": 2497, + "src": "10176:30:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12836, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12770, + "src": "10244:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 12831, + "name": "reserves", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2520, + "src": "10209:8:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Reserve_$2506_storage_$", + "typeString": "mapping(address => struct ConverterBase.Reserve storage ref)" + } + }, + "id": 12833, + "indexExpression": { + "argumentTypes": null, + "id": 12832, + "name": "reserveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12785, + "src": "10218:12:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10209:22:21", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Reserve_$2506_storage", + "typeString": "struct ConverterBase.Reserve storage ref" + } + }, + "id": 12834, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "balance", + "nodeType": "MemberAccess", + "referencedDeclaration": 2497, + "src": "10209:30:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12835, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 21758, + "src": "10209:34:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 12837, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10209:42:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10176:75:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12839, + "nodeType": "ExpressionStatement", + "src": "10176:75:21" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 12842, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 12840, + "name": "reserveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12785, + "src": "10335:12:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 12841, + "name": "ETH_RESERVE_ADDRESS", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2495, + "src": "10351:19:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "10335:35:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12850, + "name": "reserveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12785, + "src": "10456:12:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + { + "argumentTypes": null, + "id": 12851, + "name": "_beneficiary", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12752, + "src": "10470:12:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 12852, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12770, + "src": "10484:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 12849, + "name": "safeTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21881, + "src": "10443:12:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20Token_$20240_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (contract IERC20Token,address,uint256)" + } + }, + "id": 12853, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10443:48:21", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12854, + "nodeType": "ExpressionStatement", + "src": "10443:48:21" + }, + "id": 12855, + "nodeType": "IfStatement", + "src": "10331:160:21", + "trueBody": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12846, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12770, + "src": "10407:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 12843, + "name": "_beneficiary", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12752, + "src": "10385:12:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 12845, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "10385:21:21", + "typeDescriptions": { + "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 12847, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10385:29:21", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12848, + "nodeType": "ExpressionStatement", + "src": "10385:29:21" + } + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12858, + "name": "anchor", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2511 + ], + "referencedDeclaration": 2511, + "src": "10582:6:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + ], + "id": 12857, + "name": "ISmartToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20295, + "src": "10570:11:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ISmartToken_$20295_$", + "typeString": "type(contract ISmartToken)" + } + }, + "id": 12859, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10570:19:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISmartToken_$20295", + "typeString": "contract ISmartToken" + } + }, + { + "argumentTypes": null, + "id": 12860, + "name": "reserveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12785, + "src": "10591:12:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + { + "argumentTypes": null, + "id": 12861, + "name": "_trader", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12750, + "src": "10605:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 12862, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12748, + "src": "10614:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 12863, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12770, + "src": "10623:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 12864, + "name": "fee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12772, + "src": "10631:3:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_ISmartToken_$20295", + "typeString": "contract ISmartToken" + }, + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 12856, + "name": "dispatchConversionEvent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3298, + "src": "10546:23:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20Token_$20240_$_t_contract$_IERC20Token_$20240_$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (contract IERC20Token,contract IERC20Token,address,uint256,uint256,uint256)" + } + }, + "id": 12865, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10546:89:21", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12866, + "nodeType": "ExpressionStatement", + "src": "10546:89:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 12867, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12770, + "src": "10655:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 12756, + "id": 12868, + "nodeType": "Return", + "src": "10648:13:21" + } + ] + }, + "documentation": "@dev sells the liquid token by withdrawing from its reserve\r\n\n * @param _amount amount of liquid tokens to sell\r\n@param _trader address of the caller who executed the conversion\r\n@param _beneficiary wallet to receive the conversion result\r\n\n * @return amount of reserve tokens received\r", + "id": 12870, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "sell", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12753, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12748, + "name": "_amount", + "nodeType": "VariableDeclaration", + "scope": 12870, + "src": "9140:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12747, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9140:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 12750, + "name": "_trader", + "nodeType": "VariableDeclaration", + "scope": 12870, + "src": "9157:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12749, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9157:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 12752, + "name": "_beneficiary", + "nodeType": "VariableDeclaration", + "scope": 12870, + "src": "9174:20:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12751, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9174:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9139:56:21" + }, + "payable": false, + "returnParameters": { + "id": 12756, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12755, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 12870, + "src": "9214:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12754, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9214:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9213:9:21" + }, + "scope": 12871, + "src": "9126:1543:21", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + } + ], + "scope": 12872, + "src": "449:10223:21" + } + ], + "src": "0:10674:21" + }, + "id": 21 + }, + "solidity/contracts/converter/types/liquid-token/LiquidTokenConverterFactory.sol": { + "ast": { + "absolutePath": "solidity/contracts/converter/types/liquid-token/LiquidTokenConverterFactory.sol", + "exportedSymbols": { + "LiquidTokenConverterFactory": [ + 12920 + ] + }, + "id": 12921, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 12873, + "literals": [ + "solidity", + "0.4", + ".26" + ], + "nodeType": "PragmaDirective", + "src": "0:23:22" + }, + { + "absolutePath": "solidity/contracts/converter/types/liquid-token/LiquidTokenConverter.sol", + "file": "./LiquidTokenConverter.sol", + "id": 12874, + "nodeType": "ImportDirective", + "scope": 12921, + "sourceUnit": 12872, + "src": "25:36:22", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "solidity/contracts/converter/interfaces/IConverter.sol", + "file": "../../interfaces/IConverter.sol", + "id": 12875, + "nodeType": "ImportDirective", + "scope": 12921, + "sourceUnit": 11818, + "src": "63:41:22", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "solidity/contracts/converter/interfaces/ITypedConverterFactory.sol", + "file": "../../interfaces/ITypedConverterFactory.sol", + "id": 12876, + "nodeType": "ImportDirective", + "scope": 12921, + "sourceUnit": 12291, + "src": "106:53:22", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "solidity/contracts/token/interfaces/ISmartToken.sol", + "file": "../../../token/interfaces/ISmartToken.sol", + "id": 12877, + "nodeType": "ImportDirective", + "scope": 12921, + "sourceUnit": 20296, + "src": "161:51:22", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 12878, + "name": "ITypedConverterFactory", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 12290, + "src": "298:22:22", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ITypedConverterFactory_$12290", + "typeString": "contract ITypedConverterFactory" + } + }, + "id": 12879, + "nodeType": "InheritanceSpecifier", + "src": "298:22:22" + } + ], + "contractDependencies": [ + 12290, + 12871 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 12920, + "linearizedBaseContracts": [ + 12920, + 12290 + ], + "name": "LiquidTokenConverterFactory", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 12886, + "nodeType": "Block", + "src": "512:27:22", + "statements": [ + { + "expression": { + "argumentTypes": null, + "hexValue": "30", + "id": 12884, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "530:1:22", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "functionReturnParameters": 12883, + "id": 12885, + "nodeType": "Return", + "src": "523:8:22" + } + ] + }, + "documentation": "@dev returns the converter type the factory is associated with\r\n\n * @return converter type\r", + "id": 12887, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "converterType", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12880, + "nodeType": "ParameterList", + "parameters": [], + "src": "480:2:22" + }, + "payable": false, + "returnParameters": { + "id": 12883, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12882, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 12887, + "src": "504:6:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 12881, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "504:6:22", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "503:8:22" + }, + "scope": 12920, + "src": "458:81:22", + "stateMutability": "pure", + "superFunction": 12278, + "visibility": "public" + }, + { + "body": { + "id": 12918, + "nodeType": "Block", + "src": "1084:195:22", + "statements": [ + { + "assignments": [ + 12899 + ], + "declarations": [ + { + "constant": false, + "id": 12899, + "name": "converter", + "nodeType": "VariableDeclaration", + "scope": 12919, + "src": "1095:20:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + }, + "typeName": { + "contractScope": null, + "id": 12898, + "name": "IConverter", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11817, + "src": "1095:10:22", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 12908, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12903, + "name": "_anchor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12889, + "src": "1155:7:22", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + ], + "id": 12902, + "name": "ISmartToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20295, + "src": "1143:11:22", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ISmartToken_$20295_$", + "typeString": "type(contract ISmartToken)" + } + }, + "id": 12904, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1143:20:22", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISmartToken_$20295", + "typeString": "contract ISmartToken" + } + }, + { + "argumentTypes": null, + "id": 12905, + "name": "_registry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12891, + "src": "1165:9:22", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IContractRegistry_$22220", + "typeString": "contract IContractRegistry" + } + }, + { + "argumentTypes": null, + "id": 12906, + "name": "_maxConversionFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12893, + "src": "1176:17:22", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_ISmartToken_$20295", + "typeString": "contract ISmartToken" + }, + { + "typeIdentifier": "t_contract$_IContractRegistry_$22220", + "typeString": "contract IContractRegistry" + }, + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + ], + "id": 12901, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "1118:24:22", + "typeDescriptions": { + "typeIdentifier": "t_function_creation_nonpayable$_t_contract$_ISmartToken_$20295_$_t_contract$_IContractRegistry_$22220_$_t_uint32_$returns$_t_contract$_LiquidTokenConverter_$12871_$", + "typeString": "function (contract ISmartToken,contract IContractRegistry,uint32) returns (contract LiquidTokenConverter)" + }, + "typeName": { + "contractScope": null, + "id": 12900, + "name": "LiquidTokenConverter", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 12871, + "src": "1122:20:22", + "typeDescriptions": { + "typeIdentifier": "t_contract$_LiquidTokenConverter_$12871", + "typeString": "contract LiquidTokenConverter" + } + } + }, + "id": 12907, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1118:76:22", + "typeDescriptions": { + "typeIdentifier": "t_contract$_LiquidTokenConverter_$12871", + "typeString": "contract LiquidTokenConverter" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1095:99:22" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12912, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22338, + "src": "1233:3:22", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 12913, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1233:10:22", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 12909, + "name": "converter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12899, + "src": "1205:9:22", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + "id": 12911, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transferOwnership", + "nodeType": "MemberAccess", + "referencedDeclaration": 22243, + "src": "1205:27:22", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$", + "typeString": "function (address) external" + } + }, + "id": 12914, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1205:39:22", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12915, + "nodeType": "ExpressionStatement", + "src": "1205:39:22" + }, + { + "expression": { + "argumentTypes": null, + "id": 12916, + "name": "converter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12899, + "src": "1262:9:22", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + "functionReturnParameters": 12897, + "id": 12917, + "nodeType": "Return", + "src": "1255:16:22" + } + ] + }, + "documentation": "@dev creates a new converter with the given arguments and transfers\r\nthe ownership to the caller\r\n\n * @param _anchor anchor governed by the converter\r\n@param _registry address of a contract registry contract\r\n@param _maxConversionFee maximum conversion fee, represented in ppm\r\n\n * @return a new converter\r", + "id": 12919, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "createConverter", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12894, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12889, + "name": "_anchor", + "nodeType": "VariableDeclaration", + "scope": 12919, + "src": "975:24:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + }, + "typeName": { + "contractScope": null, + "id": 12888, + "name": "IConverterAnchor", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11826, + "src": "975:16:22", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 12891, + "name": "_registry", + "nodeType": "VariableDeclaration", + "scope": 12919, + "src": "1001:27:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IContractRegistry_$22220", + "typeString": "contract IContractRegistry" + }, + "typeName": { + "contractScope": null, + "id": 12890, + "name": "IContractRegistry", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 22220, + "src": "1001:17:22", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IContractRegistry_$22220", + "typeString": "contract IContractRegistry" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 12893, + "name": "_maxConversionFee", + "nodeType": "VariableDeclaration", + "scope": 12919, + "src": "1030:24:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 12892, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "1030:6:22", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "974:81:22" + }, + "payable": false, + "returnParameters": { + "id": 12897, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12896, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 12919, + "src": "1072:10:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + }, + "typeName": { + "contractScope": null, + "id": 12895, + "name": "IConverter", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11817, + "src": "1072:10:22", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1071:12:22" + }, + "scope": 12920, + "src": "950:329:22", + "stateMutability": "nonpayable", + "superFunction": 12289, + "visibility": "public" + } + ], + "scope": 12921, + "src": "258:1024:22" + } + ], + "src": "0:1284:22" + }, + "id": 22 + }, + "solidity/contracts/converter/types/liquidity-pool-v1/LiquidityPoolV1Converter.sol": { + "ast": { + "absolutePath": "solidity/contracts/converter/types/liquidity-pool-v1/LiquidityPoolV1Converter.sol", + "exportedSymbols": { + "LiquidityPoolV1Converter": [ + 14409 + ] + }, + "id": 14410, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 12922, + "literals": [ + "solidity", + "0.4", + ".26" + ], + "nodeType": "PragmaDirective", + "src": "0:23:23" + }, + { + "absolutePath": "solidity/contracts/converter/LiquidityPoolConverter.sol", + "file": "../../LiquidityPoolConverter.sol", + "id": 12923, + "nodeType": "ImportDirective", + "scope": 14410, + "sourceUnit": 6211, + "src": "25:42:23", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "solidity/contracts/token/interfaces/ISmartToken.sol", + "file": "../../../token/interfaces/ISmartToken.sol", + "id": 12924, + "nodeType": "ImportDirective", + "scope": 14410, + "sourceUnit": 20296, + "src": "69:51:23", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 12925, + "name": "LiquidityPoolConverter", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 6210, + "src": "489:22:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_LiquidityPoolConverter_$6210", + "typeString": "contract LiquidityPoolConverter" + } + }, + "id": 12926, + "nodeType": "InheritanceSpecifier", + "src": "489:22:23" + } + ], + "contractDependencies": [ + 3414, + 6210, + 11817, + 20932, + 21324, + 21710, + 21933, + 21976, + 22052, + 22247, + 22313 + ], + "contractKind": "contract", + "documentation": "@dev Liquidity Pool v1 Converter\r\n\n * The liquidity pool v1 converter is a specialized version of a converter that manages\r\na classic SovrynSwap liquidity pool.\r\n\n * Even though classic pools can have many reserves, the most common configuration of\r\nthe pool has 2 reserves with 50%/50% weights.\r", + "fullyImplemented": true, + "id": 14409, + "linearizedBaseContracts": [ + 14409, + 6210, + 3414, + 21710, + 20932, + 21976, + 22052, + 21324, + 21933, + 22313, + 11817, + 22247 + ], + "name": "LiquidityPoolV1Converter", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 12931, + "name": "etherToken", + "nodeType": "VariableDeclaration", + "scope": 14409, + "src": "519:89:23", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IEtherToken_$20266", + "typeString": "contract IEtherToken" + }, + "typeName": { + "contractScope": null, + "id": 12927, + "name": "IEtherToken", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20266, + "src": "519:11:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IEtherToken_$20266", + "typeString": "contract IEtherToken" + } + }, + "value": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "307863303832393432314331643236304244336342334530463036636645324435326462326345333135", + "id": 12929, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "565:42:23", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "value": "0xc0829421C1d260BD3cB3E0F06cfE2D52db2cE315" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 12928, + "name": "IEtherToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20266, + "src": "553:11:23", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IEtherToken_$20266_$", + "typeString": "type(contract IEtherToken)" + } + }, + "id": 12930, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "553:55:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IEtherToken_$20266", + "typeString": "contract IEtherToken" + } + }, + "visibility": "internal" + }, + { + "anonymous": false, + "documentation": "@dev triggered after a conversion with new price data\r\ndeprecated, use `TokenRateUpdate` from version 28 and up\r\n\n * @param _connectorToken reserve token\r\n@param _tokenSupply smart token supply\r\n@param _connectorBalance reserve balance\r\n@param _connectorWeight reserve weight\r", + "id": 12941, + "name": "PriceDataUpdate", + "nodeType": "EventDefinition", + "parameters": { + "id": 12940, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12933, + "indexed": true, + "name": "_connectorToken", + "nodeType": "VariableDeclaration", + "scope": 12941, + "src": "1016:31:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12932, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1016:7:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 12935, + "indexed": false, + "name": "_tokenSupply", + "nodeType": "VariableDeclaration", + "scope": 12941, + "src": "1058:20:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12934, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1058:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 12937, + "indexed": false, + "name": "_connectorBalance", + "nodeType": "VariableDeclaration", + "scope": 12941, + "src": "1089:25:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12936, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1089:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 12939, + "indexed": false, + "name": "_connectorWeight", + "nodeType": "VariableDeclaration", + "scope": 12941, + "src": "1125:23:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 12938, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "1125:6:23", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1005:150:23" + }, + "src": "984:172:23" + }, + { + "body": { + "id": 12955, + "nodeType": "Block", + "src": "1699:8:23", + "statements": [] + }, + "documentation": "@dev initializes a new LiquidityPoolV1Converter instance\r\n\n * @param _token pool token governed by the converter\r\n@param _registry address of a contract registry contract\r\n@param _maxConversionFee maximum conversion fee, represented in ppm\r", + "id": 12956, + "implemented": true, + "isConstructor": true, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 12950, + "name": "_token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12943, + "src": "1640:6:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISmartToken_$20295", + "typeString": "contract ISmartToken" + } + }, + { + "argumentTypes": null, + "id": 12951, + "name": "_registry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12945, + "src": "1648:9:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IContractRegistry_$22220", + "typeString": "contract IContractRegistry" + } + }, + { + "argumentTypes": null, + "id": 12952, + "name": "_maxConversionFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12947, + "src": "1659:17:23", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + } + ], + "id": 12953, + "modifierName": { + "argumentTypes": null, + "id": 12949, + "name": "LiquidityPoolConverter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6210, + "src": "1617:22:23", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_LiquidityPoolConverter_$6210_$", + "typeString": "type(contract LiquidityPoolConverter)" + } + }, + "nodeType": "ModifierInvocation", + "src": "1617:60:23" + } + ], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12948, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12943, + "name": "_token", + "nodeType": "VariableDeclaration", + "scope": 12956, + "src": "1509:18:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISmartToken_$20295", + "typeString": "contract ISmartToken" + }, + "typeName": { + "contractScope": null, + "id": 12942, + "name": "ISmartToken", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20295, + "src": "1509:11:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISmartToken_$20295", + "typeString": "contract ISmartToken" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 12945, + "name": "_registry", + "nodeType": "VariableDeclaration", + "scope": 12956, + "src": "1538:27:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IContractRegistry_$22220", + "typeString": "contract IContractRegistry" + }, + "typeName": { + "contractScope": null, + "id": 12944, + "name": "IContractRegistry", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 22220, + "src": "1538:17:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IContractRegistry_$22220", + "typeString": "contract IContractRegistry" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 12947, + "name": "_maxConversionFee", + "nodeType": "VariableDeclaration", + "scope": 12956, + "src": "1576:24:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 12946, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "1576:6:23", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1498:109:23" + }, + "payable": false, + "returnParameters": { + "id": 12954, + "nodeType": "ParameterList", + "parameters": [], + "src": "1699:0:23" + }, + "scope": 14409, + "src": "1487:220:23", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 12963, + "nodeType": "Block", + "src": "1906:27:23", + "statements": [ + { + "expression": { + "argumentTypes": null, + "hexValue": "31", + "id": 12961, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1924:1:23", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "functionReturnParameters": 12960, + "id": 12962, + "nodeType": "Return", + "src": "1917:8:23" + } + ] + }, + "documentation": "@dev returns the converter type\r\n\n * @return see the converter types in the the main contract doc\r", + "id": 12964, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "converterType", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12957, + "nodeType": "ParameterList", + "parameters": [], + "src": "1874:2:23" + }, + "payable": false, + "returnParameters": { + "id": 12960, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12959, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 12964, + "src": "1898:6:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 12958, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "1898:6:23", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1897:8:23" + }, + "scope": 14409, + "src": "1852:81:23", + "stateMutability": "pure", + "superFunction": 11655, + "visibility": "public" + }, + { + "body": { + "id": 12981, + "nodeType": "Block", + "src": "2256:107:23", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 12969, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22440, + "src": "2267:5:23", + "typeDescriptions": { + "typeIdentifier": "t_super$_LiquidityPoolV1Converter_$14409", + "typeString": "contract super LiquidityPoolV1Converter" + } + }, + "id": 12971, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "acceptAnchorOwnership", + "nodeType": "MemberAccess", + "referencedDeclaration": 6209, + "src": "2267:27:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", + "typeString": "function ()" + } + }, + "id": 12972, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2267:29:23", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12973, + "nodeType": "ExpressionStatement", + "src": "2267:29:23" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 12975, + "name": "converterType", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 12964 + ], + "referencedDeclaration": 12964, + "src": "2325:13:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_uint16_$", + "typeString": "function () pure returns (uint16)" + } + }, + "id": 12976, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2325:15:23", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + { + "argumentTypes": null, + "id": 12977, + "name": "anchor", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2511 + ], + "referencedDeclaration": 2511, + "src": "2342:6:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + }, + { + "argumentTypes": null, + "hexValue": "74727565", + "id": 12978, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2350:4:23", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 12974, + "name": "Activation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2540, + "src": "2314:10:23", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint16_$_t_contract$_IConverterAnchor_$11826_$_t_bool_$returns$__$", + "typeString": "function (uint16,contract IConverterAnchor,bool)" + } + }, + "id": 12979, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2314:41:23", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12980, + "nodeType": "EmitStatement", + "src": "2309:46:23" + } + ] + }, + "documentation": "@dev accepts ownership of the anchor after an ownership transfer\r\nalso activates the converter\r\ncan only be called by the contract owner\r\nnote that prior to version 28, you should use 'acceptTokenOwnership' instead\r", + "id": 12982, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 12967, + "modifierName": { + "argumentTypes": null, + "id": 12966, + "name": "ownerOnly", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21265, + "src": "2246:9:23", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "2246:9:23" + } + ], + "name": "acceptAnchorOwnership", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12965, + "nodeType": "ParameterList", + "parameters": [], + "src": "2236:2:23" + }, + "payable": false, + "returnParameters": { + "id": 12968, + "nodeType": "ParameterList", + "parameters": [], + "src": "2256:0:23" + }, + "scope": 14409, + "src": "2206:157:23", + "stateMutability": "nonpayable", + "superFunction": 6209, + "visibility": "public" + }, + { + "body": { + "id": 13047, + "nodeType": "Block", + "src": "3054:582:23", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + "id": 13006, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 13004, + "name": "_sourceToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12984, + "src": "3100:12:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "id": 13005, + "name": "_targetToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12986, + "src": "3116:12:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "src": "3100:28:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4552525f53414d455f534f555243455f544152474554", + "id": 13007, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3130:24:23", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_238302f57e4481fe6a4c903e930919efa155f2aabe0b5da37da1448cea5fd634", + "typeString": "literal_string \"ERR_SAME_SOURCE_TARGET\"" + }, + "value": "ERR_SAME_SOURCE_TARGET" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_238302f57e4481fe6a4c903e930919efa155f2aabe0b5da37da1448cea5fd634", + "typeString": "literal_string \"ERR_SAME_SOURCE_TARGET\"" + } + ], + "id": 13003, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 22341, + 22342 + ], + "referencedDeclaration": 22342, + "src": "3092:7:23", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 13008, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3092:63:23", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 13009, + "nodeType": "ExpressionStatement", + "src": "3092:63:23" + }, + { + "assignments": [ + 13011 + ], + "declarations": [ + { + "constant": false, + "id": 13011, + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 13048, + "src": "3168:14:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13010, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3168:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 13034, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 13019, + "name": "_sourceToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12984, + "src": "3289:12:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + ], + "id": 13018, + "name": "reserveBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3106 + ], + "referencedDeclaration": 3106, + "src": "3274:14:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_contract$_IERC20Token_$20240_$returns$_t_uint256_$", + "typeString": "function (contract IERC20Token) view returns (uint256)" + } + }, + "id": 13020, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3274:28:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 13021, + "name": "reserves", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2520, + "src": "3317:8:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Reserve_$2506_storage_$", + "typeString": "mapping(address => struct ConverterBase.Reserve storage ref)" + } + }, + "id": 13023, + "indexExpression": { + "argumentTypes": null, + "id": 13022, + "name": "_sourceToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12984, + "src": "3326:12:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3317:22:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Reserve_$2506_storage", + "typeString": "struct ConverterBase.Reserve storage ref" + } + }, + "id": 13024, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "weight", + "nodeType": "MemberAccess", + "referencedDeclaration": 2499, + "src": "3317:29:23", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 13026, + "name": "_targetToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12986, + "src": "3376:12:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + ], + "id": 13025, + "name": "reserveBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3106 + ], + "referencedDeclaration": 3106, + "src": "3361:14:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_contract$_IERC20Token_$20240_$returns$_t_uint256_$", + "typeString": "function (contract IERC20Token) view returns (uint256)" + } + }, + "id": 13027, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3361:28:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 13028, + "name": "reserves", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2520, + "src": "3404:8:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Reserve_$2506_storage_$", + "typeString": "mapping(address => struct ConverterBase.Reserve storage ref)" + } + }, + "id": 13030, + "indexExpression": { + "argumentTypes": null, + "id": 13029, + "name": "_targetToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12986, + "src": "3413:12:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3404:22:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Reserve_$2506_storage", + "typeString": "struct ConverterBase.Reserve storage ref" + } + }, + "id": 13031, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "weight", + "nodeType": "MemberAccess", + "referencedDeclaration": 2499, + "src": "3404:29:23", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + { + "argumentTypes": null, + "id": 13032, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12988, + "src": "3448:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 13014, + "name": "SOVRYNSWAP_FORMULA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20758, + "src": "3214:18:23", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 13013, + "name": "addressOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20931, + "src": "3204:9:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$", + "typeString": "function (bytes32) view returns (address)" + } + }, + "id": 13015, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3204:29:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 13012, + "name": "ISovrynSwapFormula", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12240, + "src": "3185:18:23", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ISovrynSwapFormula_$12240_$", + "typeString": "type(contract ISovrynSwapFormula)" + } + }, + "id": 13016, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3185:49:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISovrynSwapFormula_$12240", + "typeString": "contract ISovrynSwapFormula" + } + }, + "id": 13017, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "crossReserveTargetAmount", + "nodeType": "MemberAccess", + "referencedDeclaration": 12183, + "src": "3185:74:23", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_uint256_$_t_uint32_$_t_uint256_$_t_uint32_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint32,uint256,uint32,uint256) view external returns (uint256)" + } + }, + "id": 13033, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3185:281:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3168:298:23" + }, + { + "assignments": [ + 13036 + ], + "declarations": [ + { + "constant": false, + "id": 13036, + "name": "fee", + "nodeType": "VariableDeclaration", + "scope": 13048, + "src": "3557:11:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13035, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3557:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 13040, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 13038, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13011, + "src": "3584:6:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 13037, + "name": "calculateFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3204, + "src": "3571:12:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) view returns (uint256)" + } + }, + "id": 13039, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3571:20:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3557:34:23" + }, + { + "expression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 13043, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 13041, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13011, + "src": "3610:6:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 13042, + "name": "fee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13036, + "src": "3619:3:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3610:12:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 13044, + "name": "fee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13036, + "src": "3624:3:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 13045, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "3609:19:23", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "functionReturnParameters": 13002, + "id": 13046, + "nodeType": "Return", + "src": "3602:26:23" + } + ] + }, + "documentation": "@dev returns the expected target amount of converting one reserve to another along with the fee\r\n\n * @param _sourceToken contract address of the source reserve token\r\n@param _targetToken contract address of the target reserve token\r\n@param _amount amount of tokens received from the user\r\n\n * @return expected target amount\r\n@return expected fee\r", + "id": 13048, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [ + { + "arguments": null, + "id": 12991, + "modifierName": { + "argumentTypes": null, + "id": 12990, + "name": "active", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2604, + "src": "2934:6:23", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "2934:6:23" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 12993, + "name": "_sourceToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12984, + "src": "2963:12:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + } + ], + "id": 12994, + "modifierName": { + "argumentTypes": null, + "id": 12992, + "name": "validReserve", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2642, + "src": "2950:12:23", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_contract$_IERC20Token_$20240_$", + "typeString": "modifier (contract IERC20Token)" + } + }, + "nodeType": "ModifierInvocation", + "src": "2950:26:23" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 12996, + "name": "_targetToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12986, + "src": "2999:12:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + } + ], + "id": 12997, + "modifierName": { + "argumentTypes": null, + "id": 12995, + "name": "validReserve", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2642, + "src": "2986:12:23", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_contract$_IERC20Token_$20240_$", + "typeString": "modifier (contract IERC20Token)" + } + }, + "nodeType": "ModifierInvocation", + "src": "2986:26:23" + } + ], + "name": "targetAmountAndFee", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12989, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12984, + "name": "_sourceToken", + "nodeType": "VariableDeclaration", + "scope": 13048, + "src": "2826:24:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + "typeName": { + "contractScope": null, + "id": 12983, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "2826:11:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 12986, + "name": "_targetToken", + "nodeType": "VariableDeclaration", + "scope": 13048, + "src": "2852:24:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + "typeName": { + "contractScope": null, + "id": 12985, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "2852:11:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 12988, + "name": "_amount", + "nodeType": "VariableDeclaration", + "scope": 13048, + "src": "2878:15:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12987, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2878:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2825:69:23" + }, + "payable": false, + "returnParameters": { + "id": 13002, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12999, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 13048, + "src": "3031:7:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12998, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3031:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 13001, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 13048, + "src": "3040:7:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13000, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3040:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3030:18:23" + }, + "scope": 14409, + "src": "2798:838:23", + "stateMutability": "view", + "superFunction": 11681, + "visibility": "public" + }, + { + "body": { + "id": 13173, + "nodeType": "Block", + "src": "4400:1465:23", + "statements": [ + { + "assignments": [ + 13064, + 13066 + ], + "declarations": [ + { + "constant": false, + "id": 13064, + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 13174, + "src": "4459:14:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13063, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4459:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 13066, + "name": "fee", + "nodeType": "VariableDeclaration", + "scope": 13174, + "src": "4475:11:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13065, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4475:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 13072, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 13068, + "name": "_sourceToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13050, + "src": "4509:12:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + { + "argumentTypes": null, + "id": 13069, + "name": "_targetToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13052, + "src": "4523:12:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + { + "argumentTypes": null, + "id": 13070, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13054, + "src": "4537:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 13067, + "name": "targetAmountAndFee", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 13048 + ], + "referencedDeclaration": 13048, + "src": "4490:18:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_contract$_IERC20Token_$20240_$_t_contract$_IERC20Token_$20240_$_t_uint256_$returns$_t_uint256_$_t_uint256_$", + "typeString": "function (contract IERC20Token,contract IERC20Token,uint256) view returns (uint256,uint256)" + } + }, + "id": 13071, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4490:55:23", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4458:87:23" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 13076, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 13074, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13064, + "src": "4626:6:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 13075, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4636:1:23", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "4626:11:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4552525f5a45524f5f5441524745545f414d4f554e54", + "id": 13077, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4639:24:23", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_29cb0846c2d5a859f661a5b4c4a8be47a80ca27c24af6f007bda101871b53e03", + "typeString": "literal_string \"ERR_ZERO_TARGET_AMOUNT\"" + }, + "value": "ERR_ZERO_TARGET_AMOUNT" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_29cb0846c2d5a859f661a5b4c4a8be47a80ca27c24af6f007bda101871b53e03", + "typeString": "literal_string \"ERR_ZERO_TARGET_AMOUNT\"" + } + ], + "id": 13073, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 22341, + 22342 + ], + "referencedDeclaration": 22342, + "src": "4618:7:23", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 13078, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4618:46:23", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 13079, + "nodeType": "ExpressionStatement", + "src": "4618:46:23" + }, + { + "assignments": [ + 13081 + ], + "declarations": [ + { + "constant": false, + "id": 13081, + "name": "targetReserveBalance", + "nodeType": "VariableDeclaration", + "scope": 13174, + "src": "4745:28:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13080, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4745:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 13085, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 13083, + "name": "_targetToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13052, + "src": "4791:12:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + ], + "id": 13082, + "name": "reserveBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3106 + ], + "referencedDeclaration": 3106, + "src": "4776:14:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_contract$_IERC20Token_$20240_$returns$_t_uint256_$", + "typeString": "function (contract IERC20Token) view returns (uint256)" + } + }, + "id": 13084, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4776:28:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4745:59:23" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 13089, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 13087, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13064, + "src": "4822:6:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 13088, + "name": "targetReserveBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13081, + "src": "4831:20:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4822:29:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 13086, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22327, + "src": "4815:6:23", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 13090, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4815:37:23", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 13091, + "nodeType": "ExpressionStatement", + "src": "4815:37:23" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 13094, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 13092, + "name": "_sourceToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13050, + "src": "4932:12:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 13093, + "name": "ETH_RESERVE_ADDRESS", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2495, + "src": "4948:19:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "4932:35:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 13119, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 13107, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 13104, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22338, + "src": "5075:3:23", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 13105, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5075:9:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 13106, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5088:1:23", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "5075:14:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 13118, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 13114, + "name": "_sourceToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13050, + "src": "5141:12:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + ], + "id": 13113, + "name": "reserveBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3106 + ], + "referencedDeclaration": 3106, + "src": "5126:14:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_contract$_IERC20Token_$20240_$returns$_t_uint256_$", + "typeString": "function (contract IERC20Token) view returns (uint256)" + } + }, + "id": 13115, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5126:28:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 13110, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22439, + "src": "5116:4:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_LiquidityPoolV1Converter_$14409", + "typeString": "contract LiquidityPoolV1Converter" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_LiquidityPoolV1Converter_$14409", + "typeString": "contract LiquidityPoolV1Converter" + } + ], + "expression": { + "argumentTypes": null, + "id": 13108, + "name": "_sourceToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13050, + "src": "5093:12:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "id": 13109, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 20194, + "src": "5093:22:23", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 13111, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5093:28:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13112, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 21758, + "src": "5093:32:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 13116, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5093:62:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 13117, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13054, + "src": "5159:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5093:73:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "5075:91:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4552525f494e56414c49445f414d4f554e54", + "id": 13120, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5168:20:23", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c44007bfe4e704be0ed1393660a827b4f88825f4b6fe1bc10cd38fc3fcb7d839", + "typeString": "literal_string \"ERR_INVALID_AMOUNT\"" + }, + "value": "ERR_INVALID_AMOUNT" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c44007bfe4e704be0ed1393660a827b4f88825f4b6fe1bc10cd38fc3fcb7d839", + "typeString": "literal_string \"ERR_INVALID_AMOUNT\"" + } + ], + "id": 13103, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 22341, + 22342 + ], + "referencedDeclaration": 22342, + "src": "5067:7:23", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 13121, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5067:122:23", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 13122, + "nodeType": "ExpressionStatement", + "src": "5067:122:23" + }, + "id": 13123, + "nodeType": "IfStatement", + "src": "4928:261:23", + "trueBody": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 13099, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 13096, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22338, + "src": "4990:3:23", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 13097, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4990:9:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 13098, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13054, + "src": "5003:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4990:20:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4552525f4554485f414d4f554e545f4d49534d41544348", + "id": 13100, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5012:25:23", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_b27c160ac497b67c4fef6b5554e0b1a41f3c9b44e4bd8482662df760b76c093b", + "typeString": "literal_string \"ERR_ETH_AMOUNT_MISMATCH\"" + }, + "value": "ERR_ETH_AMOUNT_MISMATCH" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_b27c160ac497b67c4fef6b5554e0b1a41f3c9b44e4bd8482662df760b76c093b", + "typeString": "literal_string \"ERR_ETH_AMOUNT_MISMATCH\"" + } + ], + "id": 13095, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 22341, + 22342 + ], + "referencedDeclaration": 22342, + "src": "4982:7:23", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 13101, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4982:56:23", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 13102, + "nodeType": "ExpressionStatement", + "src": "4982:56:23" + } + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 13125, + "name": "_sourceToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13050, + "src": "5259:12:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + ], + "id": 13124, + "name": "syncReserveBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3237, + "src": "5240:18:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20Token_$20240_$returns$__$", + "typeString": "function (contract IERC20Token)" + } + }, + "id": 13126, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5240:32:23", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 13127, + "nodeType": "ExpressionStatement", + "src": "5240:32:23" + }, + { + "expression": { + "argumentTypes": null, + "id": 13139, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 13128, + "name": "reserves", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2520, + "src": "5283:8:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Reserve_$2506_storage_$", + "typeString": "mapping(address => struct ConverterBase.Reserve storage ref)" + } + }, + "id": 13130, + "indexExpression": { + "argumentTypes": null, + "id": 13129, + "name": "_targetToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13052, + "src": "5292:12:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5283:22:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Reserve_$2506_storage", + "typeString": "struct ConverterBase.Reserve storage ref" + } + }, + "id": 13131, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "balance", + "nodeType": "MemberAccess", + "referencedDeclaration": 2497, + "src": "5283:30:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 13137, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13064, + "src": "5351:6:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 13132, + "name": "reserves", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2520, + "src": "5316:8:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Reserve_$2506_storage_$", + "typeString": "mapping(address => struct ConverterBase.Reserve storage ref)" + } + }, + "id": 13134, + "indexExpression": { + "argumentTypes": null, + "id": 13133, + "name": "_targetToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13052, + "src": "5325:12:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5316:22:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Reserve_$2506_storage", + "typeString": "struct ConverterBase.Reserve storage ref" + } + }, + "id": 13135, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "balance", + "nodeType": "MemberAccess", + "referencedDeclaration": 2497, + "src": "5316:30:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13136, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 21758, + "src": "5316:34:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 13138, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5316:42:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5283:75:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13140, + "nodeType": "ExpressionStatement", + "src": "5283:75:23" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 13143, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 13141, + "name": "_targetToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13052, + "src": "5445:12:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 13142, + "name": "ETH_RESERVE_ADDRESS", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2495, + "src": "5461:19:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "5445:35:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 13151, + "name": "_targetToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13052, + "src": "5566:12:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + { + "argumentTypes": null, + "id": 13152, + "name": "_beneficiary", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13058, + "src": "5580:12:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 13153, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13064, + "src": "5594:6:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 13150, + "name": "safeTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21881, + "src": "5553:12:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20Token_$20240_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (contract IERC20Token,address,uint256)" + } + }, + "id": 13154, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5553:48:23", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 13155, + "nodeType": "ExpressionStatement", + "src": "5553:48:23" + }, + "id": 13156, + "nodeType": "IfStatement", + "src": "5441:160:23", + "trueBody": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 13147, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13064, + "src": "5517:6:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 13144, + "name": "_beneficiary", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13058, + "src": "5495:12:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 13146, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5495:21:23", + "typeDescriptions": { + "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 13148, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5495:29:23", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 13149, + "nodeType": "ExpressionStatement", + "src": "5495:29:23" + } + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 13158, + "name": "_sourceToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13050, + "src": "5680:12:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + { + "argumentTypes": null, + "id": 13159, + "name": "_targetToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13052, + "src": "5694:12:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + { + "argumentTypes": null, + "id": 13160, + "name": "_trader", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13056, + "src": "5708:7:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 13161, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13054, + "src": "5717:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 13162, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13064, + "src": "5726:6:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 13163, + "name": "fee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13066, + "src": "5734:3:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 13157, + "name": "dispatchConversionEvent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3298, + "src": "5656:23:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20Token_$20240_$_t_contract$_IERC20Token_$20240_$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (contract IERC20Token,contract IERC20Token,address,uint256,uint256,uint256)" + } + }, + "id": 13164, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5656:82:23", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 13165, + "nodeType": "ExpressionStatement", + "src": "5656:82:23" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 13167, + "name": "_sourceToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13050, + "src": "5804:12:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + { + "argumentTypes": null, + "id": 13168, + "name": "_targetToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13052, + "src": "5818:12:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + ], + "id": 13166, + "name": "dispatchRateEvents", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14383, + "src": "5785:18:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20Token_$20240_$_t_contract$_IERC20Token_$20240_$returns$__$", + "typeString": "function (contract IERC20Token,contract IERC20Token)" + } + }, + "id": 13169, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5785:46:23", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 13170, + "nodeType": "ExpressionStatement", + "src": "5785:46:23" + }, + { + "expression": { + "argumentTypes": null, + "id": 13171, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13064, + "src": "5851:6:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 13062, + "id": 13172, + "nodeType": "Return", + "src": "5844:13:23" + } + ] + }, + "documentation": "@dev converts a specific amount of source tokens to target tokens\r\ncan only be called by the SovrynSwap network contract\r\n\n * @param _sourceToken source ERC20 token\r\n@param _targetToken target ERC20 token\r\n@param _amount amount of tokens to convert (in units of the source token)\r\n@param _trader address of the caller who executed the conversion\r\n@param _beneficiary wallet to receive the conversion result\r\n\n * @return amount of tokens received (in units of the target token)\r", + "id": 13174, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "doConvert", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 13059, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13050, + "name": "_sourceToken", + "nodeType": "VariableDeclaration", + "scope": 13174, + "src": "4242:24:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + "typeName": { + "contractScope": null, + "id": 13049, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "4242:11:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 13052, + "name": "_targetToken", + "nodeType": "VariableDeclaration", + "scope": 13174, + "src": "4268:24:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + "typeName": { + "contractScope": null, + "id": 13051, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "4268:11:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 13054, + "name": "_amount", + "nodeType": "VariableDeclaration", + "scope": 13174, + "src": "4294:15:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13053, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4294:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 13056, + "name": "_trader", + "nodeType": "VariableDeclaration", + "scope": 13174, + "src": "4311:15:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 13055, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4311:7:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 13058, + "name": "_beneficiary", + "nodeType": "VariableDeclaration", + "scope": 13174, + "src": "4328:20:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 13057, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4328:7:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4241:108:23" + }, + "payable": false, + "returnParameters": { + "id": 13062, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13061, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 13174, + "src": "4386:7:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13060, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4386:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4385:9:23" + }, + "scope": 14409, + "src": "4223:1642:23", + "stateMutability": "nonpayable", + "superFunction": 3188, + "visibility": "internal" + }, + { + "body": { + "id": 13268, + "nodeType": "Block", + "src": "6433:1216:23", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 13190, + "name": "_reserveTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13177, + "src": "6499:14:23", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", + "typeString": "contract IERC20Token[] memory" + } + }, + { + "argumentTypes": null, + "id": 13191, + "name": "_reserveAmounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13180, + "src": "6515:15:23", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + { + "argumentTypes": null, + "id": 13192, + "name": "_minReturn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13182, + "src": "6532:10:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", + "typeString": "contract IERC20Token[] memory" + }, + { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 13189, + "name": "verifyLiquidityInput", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13681, + "src": "6478:20:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_uint256_$returns$__$", + "typeString": "function (contract IERC20Token[] memory,uint256[] memory,uint256) view" + } + }, + "id": 13193, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6478:65:23", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 13194, + "nodeType": "ExpressionStatement", + "src": "6478:65:23" + }, + { + "body": { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 13210, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 13206, + "name": "_reserveTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13177, + "src": "6744:14:23", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", + "typeString": "contract IERC20Token[] memory" + } + }, + "id": 13208, + "indexExpression": { + "argumentTypes": null, + "id": 13207, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13196, + "src": "6759:1:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6744:17:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 13209, + "name": "ETH_RESERVE_ADDRESS", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2495, + "src": "6765:19:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "6744:40:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 13221, + "nodeType": "IfStatement", + "src": "6740:130:23", + "trueBody": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 13217, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 13212, + "name": "_reserveAmounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13180, + "src": "6811:15:23", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 13214, + "indexExpression": { + "argumentTypes": null, + "id": 13213, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13196, + "src": "6827:1:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6811:18:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 13215, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22338, + "src": "6833:3:23", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 13216, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6833:9:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6811:31:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4552525f4554485f414d4f554e545f4d49534d41544348", + "id": 13218, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6844:25:23", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_b27c160ac497b67c4fef6b5554e0b1a41f3c9b44e4bd8482662df760b76c093b", + "typeString": "literal_string \"ERR_ETH_AMOUNT_MISMATCH\"" + }, + "value": "ERR_ETH_AMOUNT_MISMATCH" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_b27c160ac497b67c4fef6b5554e0b1a41f3c9b44e4bd8482662df760b76c093b", + "typeString": "literal_string \"ERR_ETH_AMOUNT_MISMATCH\"" + } + ], + "id": 13211, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 22341, + 22342 + ], + "referencedDeclaration": 22342, + "src": "6803:7:23", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 13219, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6803:67:23", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 13220, + "nodeType": "ExpressionStatement", + "src": "6803:67:23" + } + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 13202, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 13199, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13196, + "src": "6695:1:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 13200, + "name": "_reserveTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13177, + "src": "6699:14:23", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", + "typeString": "contract IERC20Token[] memory" + } + }, + "id": 13201, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6699:21:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6695:25:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 13222, + "initializationExpression": { + "assignments": [ + 13196 + ], + "declarations": [ + { + "constant": false, + "id": 13196, + "name": "i", + "nodeType": "VariableDeclaration", + "scope": 13269, + "src": "6680:9:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13195, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6680:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 13198, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 13197, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6692:1:23", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "6680:13:23" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 13204, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "6722:3:23", + "subExpression": { + "argumentTypes": null, + "id": 13203, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13196, + "src": "6722:1:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13205, + "nodeType": "ExpressionStatement", + "src": "6722:3:23" + }, + "nodeType": "ForStatement", + "src": "6675:195:23" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 13226, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 13223, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22338, + "src": "6990:3:23", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 13224, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6990:9:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 13225, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7002:1:23", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "6990:13:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 13235, + "nodeType": "IfStatement", + "src": "6986:98:23", + "trueBody": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 13228, + "name": "reserves", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2520, + "src": "7026:8:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Reserve_$2506_storage_$", + "typeString": "mapping(address => struct ConverterBase.Reserve storage ref)" + } + }, + "id": 13230, + "indexExpression": { + "argumentTypes": null, + "id": 13229, + "name": "ETH_RESERVE_ADDRESS", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2495, + "src": "7035:19:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7026:29:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Reserve_$2506_storage", + "typeString": "struct ConverterBase.Reserve storage ref" + } + }, + "id": 13231, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "isSet", + "nodeType": "MemberAccess", + "referencedDeclaration": 2505, + "src": "7026:35:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4552525f4e4f5f4554485f52455345525645", + "id": 13232, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7063:20:23", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_467f328539cc1e1b7e8c0e459b4245a158bd2d844c358525ec924cd65d4df604", + "typeString": "literal_string \"ERR_NO_ETH_RESERVE\"" + }, + "value": "ERR_NO_ETH_RESERVE" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_467f328539cc1e1b7e8c0e459b4245a158bd2d844c358525ec924cd65d4df604", + "typeString": "literal_string \"ERR_NO_ETH_RESERVE\"" + } + ], + "id": 13227, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 22341, + 22342 + ], + "referencedDeclaration": 22342, + "src": "7018:7:23", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 13233, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7018:66:23", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 13234, + "nodeType": "ExpressionStatement", + "src": "7018:66:23" + } + }, + { + "assignments": [ + 13237 + ], + "declarations": [ + { + "constant": false, + "id": 13237, + "name": "totalSupply", + "nodeType": "VariableDeclaration", + "scope": 13269, + "src": "7130:19:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13236, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7130:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 13243, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 13239, + "name": "anchor", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2511 + ], + "referencedDeclaration": 2511, + "src": "7164:6:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + ], + "id": 13238, + "name": "ISmartToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20295, + "src": "7152:11:23", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ISmartToken_$20295_$", + "typeString": "type(contract ISmartToken)" + } + }, + "id": 13240, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7152:19:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISmartToken_$20295", + "typeString": "contract ISmartToken" + } + }, + "id": 13241, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "totalSupply", + "nodeType": "MemberAccess", + "referencedDeclaration": 20182, + "src": "7152:31:23", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", + "typeString": "function () view external returns (uint256)" + } + }, + "id": 13242, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7152:33:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7130:55:23" + }, + { + "assignments": [ + 13245 + ], + "declarations": [ + { + "constant": false, + "id": 13245, + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 13269, + "src": "7291:14:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13244, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7291:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 13251, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 13247, + "name": "_reserveTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13177, + "src": "7327:14:23", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", + "typeString": "contract IERC20Token[] memory" + } + }, + { + "argumentTypes": null, + "id": 13248, + "name": "_reserveAmounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13180, + "src": "7343:15:23", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + { + "argumentTypes": null, + "id": 13249, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13237, + "src": "7360:11:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", + "typeString": "contract IERC20Token[] memory" + }, + { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 13246, + "name": "addLiquidityToPool", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13710, + "src": "7308:18:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (contract IERC20Token[] memory,uint256[] memory,uint256) returns (uint256)" + } + }, + "id": 13250, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7308:64:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7291:81:23" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 13255, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 13253, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13245, + "src": "7499:6:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 13254, + "name": "_minReturn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13182, + "src": "7509:10:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7499:20:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4552525f52455455524e5f544f4f5f4c4f57", + "id": 13256, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7521:20:23", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c3237cc40443cfd1e0e9492ef35b7447eab6349fb6eac5eb1ec626edd3c555aa", + "typeString": "literal_string \"ERR_RETURN_TOO_LOW\"" + }, + "value": "ERR_RETURN_TOO_LOW" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c3237cc40443cfd1e0e9492ef35b7447eab6349fb6eac5eb1ec626edd3c555aa", + "typeString": "literal_string \"ERR_RETURN_TOO_LOW\"" + } + ], + "id": 13252, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 22341, + 22342 + ], + "referencedDeclaration": 22342, + "src": "7491:7:23", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 13257, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7491:51:23", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 13258, + "nodeType": "ExpressionStatement", + "src": "7491:51:23" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 13263, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22338, + "src": "7622:3:23", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 13264, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7622:10:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 13265, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13245, + "src": "7634:6:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 13260, + "name": "anchor", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2511 + ], + "referencedDeclaration": 2511, + "src": "7608:6:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + ], + "id": 13259, + "name": "ISmartToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20295, + "src": "7596:11:23", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ISmartToken_$20295_$", + "typeString": "type(contract ISmartToken)" + } + }, + "id": 13261, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7596:19:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISmartToken_$20295", + "typeString": "contract ISmartToken" + } + }, + "id": 13262, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "issue", + "nodeType": "MemberAccess", + "referencedDeclaration": 20287, + "src": "7596:25:23", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256) external" + } + }, + "id": 13266, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7596:45:23", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 13267, + "nodeType": "ExpressionStatement", + "src": "7596:45:23" + } + ] + }, + "documentation": "@dev increases the pool's liquidity and mints new shares in the pool to the caller\r\nnote that prior to version 28, you should use 'fund' instead\r\n\n * @param _reserveTokens address of each reserve token\r\n@param _reserveAmounts amount of each reserve token\r\n@param _minReturn token minimum return-amount\r", + "id": 13269, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 13185, + "modifierName": { + "argumentTypes": null, + "id": 13184, + "name": "protected", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21698, + "src": "6402:9:23", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "6402:9:23" + }, + { + "arguments": null, + "id": 13187, + "modifierName": { + "argumentTypes": null, + "id": 13186, + "name": "active", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2604, + "src": "6421:6:23", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "6421:6:23" + } + ], + "name": "addLiquidity", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 13183, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13177, + "name": "_reserveTokens", + "nodeType": "VariableDeclaration", + "scope": 13269, + "src": "6269:35:23", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", + "typeString": "contract IERC20Token[]" + }, + "typeName": { + "baseType": { + "contractScope": null, + "id": 13175, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "6269:11:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "id": 13176, + "length": null, + "nodeType": "ArrayTypeName", + "src": "6269:13:23", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_storage_ptr", + "typeString": "contract IERC20Token[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 13180, + "name": "_reserveAmounts", + "nodeType": "VariableDeclaration", + "scope": 13269, + "src": "6306:32:23", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 13178, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6306:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13179, + "length": null, + "nodeType": "ArrayTypeName", + "src": "6306:9:23", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 13182, + "name": "_minReturn", + "nodeType": "VariableDeclaration", + "scope": 13269, + "src": "6340:18:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13181, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6340:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6268:91:23" + }, + "payable": true, + "returnParameters": { + "id": 13188, + "nodeType": "ParameterList", + "parameters": [], + "src": "6433:0:23" + }, + "scope": 14409, + "src": "6247:1402:23", + "stateMutability": "payable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 13314, + "nodeType": "Block", + "src": "8233:544:23", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 13285, + "name": "_reserveTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13274, + "src": "8299:14:23", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", + "typeString": "contract IERC20Token[] memory" + } + }, + { + "argumentTypes": null, + "id": 13286, + "name": "_reserveMinReturnAmounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13277, + "src": "8315:24:23", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + { + "argumentTypes": null, + "id": 13287, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13271, + "src": "8341:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", + "typeString": "contract IERC20Token[] memory" + }, + { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 13284, + "name": "verifyLiquidityInput", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13681, + "src": "8278:20:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_uint256_$returns$__$", + "typeString": "function (contract IERC20Token[] memory,uint256[] memory,uint256) view" + } + }, + "id": 13288, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8278:71:23", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 13289, + "nodeType": "ExpressionStatement", + "src": "8278:71:23" + }, + { + "assignments": [ + 13291 + ], + "declarations": [ + { + "constant": false, + "id": 13291, + "name": "totalSupply", + "nodeType": "VariableDeclaration", + "scope": 13315, + "src": "8429:19:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13290, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8429:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 13297, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 13293, + "name": "anchor", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2511 + ], + "referencedDeclaration": 2511, + "src": "8463:6:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + ], + "id": 13292, + "name": "ISmartToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20295, + "src": "8451:11:23", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ISmartToken_$20295_$", + "typeString": "type(contract ISmartToken)" + } + }, + "id": 13294, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8451:19:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISmartToken_$20295", + "typeString": "contract ISmartToken" + } + }, + "id": 13295, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "totalSupply", + "nodeType": "MemberAccess", + "referencedDeclaration": 20182, + "src": "8451:31:23", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", + "typeString": "function () view external returns (uint256)" + } + }, + "id": 13296, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8451:33:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8429:55:23" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 13302, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22338, + "src": "8561:3:23", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 13303, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8561:10:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 13304, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13271, + "src": "8573:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 13299, + "name": "anchor", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2511 + ], + "referencedDeclaration": 2511, + "src": "8545:6:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + ], + "id": 13298, + "name": "ISmartToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20295, + "src": "8533:11:23", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ISmartToken_$20295_$", + "typeString": "type(contract ISmartToken)" + } + }, + "id": 13300, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8533:19:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISmartToken_$20295", + "typeString": "contract ISmartToken" + } + }, + "id": 13301, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "destroy", + "nodeType": "MemberAccess", + "referencedDeclaration": 20294, + "src": "8533:27:23", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256) external" + } + }, + "id": 13305, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8533:48:23", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 13306, + "nodeType": "ExpressionStatement", + "src": "8533:48:23" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 13308, + "name": "_reserveTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13274, + "src": "8706:14:23", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", + "typeString": "contract IERC20Token[] memory" + } + }, + { + "argumentTypes": null, + "id": 13309, + "name": "_reserveMinReturnAmounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13277, + "src": "8722:24:23", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + { + "argumentTypes": null, + "id": 13310, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13291, + "src": "8748:11:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 13311, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13271, + "src": "8761:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", + "typeString": "contract IERC20Token[] memory" + }, + { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 13307, + "name": "removeLiquidityFromPool", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14119, + "src": "8682:23:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (contract IERC20Token[] memory,uint256[] memory,uint256,uint256)" + } + }, + "id": 13312, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8682:87:23", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 13313, + "nodeType": "ExpressionStatement", + "src": "8682:87:23" + } + ] + }, + "documentation": "@dev decreases the pool's liquidity and burns the caller's shares in the pool\r\nnote that prior to version 28, you should use 'liquidate' instead\r\n\n * @param _amount token amount\r\n@param _reserveTokens address of each reserve token\r\n@param _reserveMinReturnAmounts minimum return-amount of each reserve token\r", + "id": 13315, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 13280, + "modifierName": { + "argumentTypes": null, + "id": 13279, + "name": "protected", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21698, + "src": "8202:9:23", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "8202:9:23" + }, + { + "arguments": null, + "id": 13282, + "modifierName": { + "argumentTypes": null, + "id": 13281, + "name": "active", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2604, + "src": "8221:6:23", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "8221:6:23" + } + ], + "name": "removeLiquidity", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 13278, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13271, + "name": "_amount", + "nodeType": "VariableDeclaration", + "scope": 13315, + "src": "8080:15:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13270, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8080:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 13274, + "name": "_reserveTokens", + "nodeType": "VariableDeclaration", + "scope": 13315, + "src": "8097:35:23", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", + "typeString": "contract IERC20Token[]" + }, + "typeName": { + "baseType": { + "contractScope": null, + "id": 13272, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "8097:11:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "id": 13273, + "length": null, + "nodeType": "ArrayTypeName", + "src": "8097:13:23", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_storage_ptr", + "typeString": "contract IERC20Token[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 13277, + "name": "_reserveMinReturnAmounts", + "nodeType": "VariableDeclaration", + "scope": 13315, + "src": "8134:41:23", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 13275, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8134:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13276, + "length": null, + "nodeType": "ArrayTypeName", + "src": "8134:9:23", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8079:97:23" + }, + "payable": false, + "returnParameters": { + "id": 13283, + "nodeType": "ParameterList", + "parameters": [], + "src": "8233:0:23" + }, + "scope": 14409, + "src": "8055:722:23", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 13507, + "nodeType": "Block", + "src": "9265:2310:23", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 13322, + "name": "syncReserveBalances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3263, + "src": "9276:19:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", + "typeString": "function ()" + } + }, + "id": 13323, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9276:21:23", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 13324, + "nodeType": "ExpressionStatement", + "src": "9276:21:23" + }, + { + "expression": { + "argumentTypes": null, + "id": 13337, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 13325, + "name": "reserves", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2520, + "src": "9308:8:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Reserve_$2506_storage_$", + "typeString": "mapping(address => struct ConverterBase.Reserve storage ref)" + } + }, + "id": 13327, + "indexExpression": { + "argumentTypes": null, + "id": 13326, + "name": "ETH_RESERVE_ADDRESS", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2495, + "src": "9317:19:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9308:29:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Reserve_$2506_storage", + "typeString": "struct ConverterBase.Reserve storage ref" + } + }, + "id": 13328, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "balance", + "nodeType": "MemberAccess", + "referencedDeclaration": 2497, + "src": "9308:37:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 13334, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22338, + "src": "9390:3:23", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 13335, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "9390:9:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 13329, + "name": "reserves", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2520, + "src": "9348:8:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Reserve_$2506_storage_$", + "typeString": "mapping(address => struct ConverterBase.Reserve storage ref)" + } + }, + "id": 13331, + "indexExpression": { + "argumentTypes": null, + "id": 13330, + "name": "ETH_RESERVE_ADDRESS", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2495, + "src": "9357:19:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9348:29:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Reserve_$2506_storage", + "typeString": "struct ConverterBase.Reserve storage ref" + } + }, + "id": 13332, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "balance", + "nodeType": "MemberAccess", + "referencedDeclaration": 2497, + "src": "9348:37:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13333, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 21758, + "src": "9348:41:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 13336, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9348:52:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9308:92:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13338, + "nodeType": "ExpressionStatement", + "src": "9308:92:23" + }, + { + "assignments": [ + 13340 + ], + "declarations": [ + { + "constant": false, + "id": 13340, + "name": "supply", + "nodeType": "VariableDeclaration", + "scope": 13508, + "src": "9413:14:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13339, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9413:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 13346, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 13342, + "name": "anchor", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2511 + ], + "referencedDeclaration": 2511, + "src": "9442:6:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + ], + "id": 13341, + "name": "ISmartToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20295, + "src": "9430:11:23", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ISmartToken_$20295_$", + "typeString": "type(contract ISmartToken)" + } + }, + "id": 13343, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9430:19:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISmartToken_$20295", + "typeString": "contract ISmartToken" + } + }, + "id": 13344, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "totalSupply", + "nodeType": "MemberAccess", + "referencedDeclaration": 20182, + "src": "9430:31:23", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", + "typeString": "function () view external returns (uint256)" + } + }, + "id": 13345, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9430:33:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9413:50:23" + }, + { + "assignments": [ + 13348 + ], + "declarations": [ + { + "constant": false, + "id": 13348, + "name": "formula", + "nodeType": "VariableDeclaration", + "scope": 13508, + "src": "9474:26:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISovrynSwapFormula_$12240", + "typeString": "contract ISovrynSwapFormula" + }, + "typeName": { + "contractScope": null, + "id": 13347, + "name": "ISovrynSwapFormula", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 12240, + "src": "9474:18:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISovrynSwapFormula_$12240", + "typeString": "contract ISovrynSwapFormula" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 13354, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 13351, + "name": "SOVRYNSWAP_FORMULA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20758, + "src": "9532:18:23", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 13350, + "name": "addressOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20931, + "src": "9522:9:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$", + "typeString": "function (bytes32) view returns (address)" + } + }, + "id": 13352, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9522:29:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 13349, + "name": "ISovrynSwapFormula", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12240, + "src": "9503:18:23", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ISovrynSwapFormula_$12240_$", + "typeString": "type(contract ISovrynSwapFormula)" + } + }, + "id": 13353, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9503:49:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISovrynSwapFormula_$12240", + "typeString": "contract ISovrynSwapFormula" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9474:78:23" + }, + { + "assignments": [ + 13356 + ], + "declarations": [ + { + "constant": false, + "id": 13356, + "name": "reserveCount", + "nodeType": "VariableDeclaration", + "scope": 13508, + "src": "9756:20:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13355, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9756:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 13359, + "initialValue": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 13357, + "name": "reserveTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2516, + "src": "9779:13:23", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_storage", + "typeString": "contract IERC20Token[] storage ref" + } + }, + "id": 13358, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "9779:20:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9756:43:23" + }, + { + "body": { + "id": 13496, + "nodeType": "Block", + "src": "9853:1596:23", + "statements": [ + { + "assignments": [ + 13371 + ], + "declarations": [ + { + "constant": false, + "id": 13371, + "name": "reserveToken", + "nodeType": "VariableDeclaration", + "scope": 13508, + "src": "9868:24:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + "typeName": { + "contractScope": null, + "id": 13370, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "9868:11:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 13375, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 13372, + "name": "reserveTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2516, + "src": "9895:13:23", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_storage", + "typeString": "contract IERC20Token[] storage ref" + } + }, + "id": 13374, + "indexExpression": { + "argumentTypes": null, + "id": 13373, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13361, + "src": "9909:1:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9895:16:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9868:43:23" + }, + { + "assignments": [ + 13377 + ], + "declarations": [ + { + "constant": false, + "id": 13377, + "name": "rsvBalance", + "nodeType": "VariableDeclaration", + "scope": 13508, + "src": "9926:18:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13376, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9926:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 13382, + "initialValue": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 13378, + "name": "reserves", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2520, + "src": "9947:8:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Reserve_$2506_storage_$", + "typeString": "mapping(address => struct ConverterBase.Reserve storage ref)" + } + }, + "id": 13380, + "indexExpression": { + "argumentTypes": null, + "id": 13379, + "name": "reserveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13371, + "src": "9956:12:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9947:22:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Reserve_$2506_storage", + "typeString": "struct ConverterBase.Reserve storage ref" + } + }, + "id": 13381, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "balance", + "nodeType": "MemberAccess", + "referencedDeclaration": 2497, + "src": "9947:30:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9926:51:23" + }, + { + "assignments": [ + 13384 + ], + "declarations": [ + { + "constant": false, + "id": 13384, + "name": "reserveAmount", + "nodeType": "VariableDeclaration", + "scope": 13508, + "src": "9992:21:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13383, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9992:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 13392, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 13387, + "name": "supply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13340, + "src": "10033:6:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 13388, + "name": "rsvBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13377, + "src": "10041:10:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 13389, + "name": "reserveRatio", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2523, + "src": "10053:12:23", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + { + "argumentTypes": null, + "id": 13390, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13317, + "src": "10067:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 13385, + "name": "formula", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13348, + "src": "10016:7:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISovrynSwapFormula_$12240", + "typeString": "contract ISovrynSwapFormula" + } + }, + "id": 13386, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "fundCost", + "nodeType": "MemberAccess", + "referencedDeclaration": 12196, + "src": "10016:16:23", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_uint256_$_t_uint256_$_t_uint32_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint32,uint256) view external returns (uint256)" + } + }, + "id": 13391, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10016:59:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9992:83:23" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 13395, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 13393, + "name": "reserveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13371, + "src": "10164:12:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 13394, + "name": "ETH_RESERVE_ADDRESS", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2495, + "src": "10180:19:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "10164:35:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 13450, + "nodeType": "Block", + "src": "10660:98:23", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 13443, + "name": "reserveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13371, + "src": "10696:12:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 13444, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22338, + "src": "10710:3:23", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 13445, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "10710:10:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 13446, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22439, + "src": "10722:4:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_LiquidityPoolV1Converter_$14409", + "typeString": "contract LiquidityPoolV1Converter" + } + }, + { + "argumentTypes": null, + "id": 13447, + "name": "reserveAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13384, + "src": "10728:13:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_contract$_LiquidityPoolV1Converter_$14409", + "typeString": "contract LiquidityPoolV1Converter" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 13442, + "name": "safeTransferFrom", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21904, + "src": "10679:16:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20Token_$20240_$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (contract IERC20Token,address,address,uint256)" + } + }, + "id": 13448, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10679:63:23", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 13449, + "nodeType": "ExpressionStatement", + "src": "10679:63:23" + } + ] + }, + "id": 13451, + "nodeType": "IfStatement", + "src": "10160:598:23", + "trueBody": { + "id": 13441, + "nodeType": "Block", + "src": "10201:440:23", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 13399, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 13396, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22338, + "src": "10224:3:23", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 13397, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "10224:9:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "id": 13398, + "name": "reserveAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13384, + "src": "10236:13:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10224:25:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 13415, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 13412, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22338, + "src": "10367:3:23", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 13413, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "10367:9:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 13414, + "name": "reserveAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13384, + "src": "10379:13:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10367:25:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 13439, + "nodeType": "IfStatement", + "src": "10363:263:23", + "trueBody": { + "id": 13438, + "nodeType": "Block", + "src": "10394:232:23", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 13420, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 13417, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22338, + "src": "10425:3:23", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 13418, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "10425:9:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 13419, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10438:1:23", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "10425:14:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4552525f494e56414c49445f4554485f56414c5545", + "id": 13421, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10441:23:23", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_e220b3a28f19681b7484bf734e3fcd080dc85319844b89942d75a3bc56505e89", + "typeString": "literal_string \"ERR_INVALID_ETH_VALUE\"" + }, + "value": "ERR_INVALID_ETH_VALUE" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_e220b3a28f19681b7484bf734e3fcd080dc85319844b89942d75a3bc56505e89", + "typeString": "literal_string \"ERR_INVALID_ETH_VALUE\"" + } + ], + "id": 13416, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 22341, + 22342 + ], + "referencedDeclaration": 22342, + "src": "10417:7:23", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 13422, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10417:48:23", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 13423, + "nodeType": "ExpressionStatement", + "src": "10417:48:23" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 13425, + "name": "etherToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12931, + "src": "10505:10:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IEtherToken_$20266", + "typeString": "contract IEtherToken" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 13426, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22338, + "src": "10517:3:23", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 13427, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "10517:10:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 13428, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22439, + "src": "10529:4:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_LiquidityPoolV1Converter_$14409", + "typeString": "contract LiquidityPoolV1Converter" + } + }, + { + "argumentTypes": null, + "id": 13429, + "name": "reserveAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13384, + "src": "10535:13:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IEtherToken_$20266", + "typeString": "contract IEtherToken" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_contract$_LiquidityPoolV1Converter_$14409", + "typeString": "contract LiquidityPoolV1Converter" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 13424, + "name": "safeTransferFrom", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21904, + "src": "10488:16:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20Token_$20240_$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (contract IERC20Token,address,address,uint256)" + } + }, + "id": 13430, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10488:61:23", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 13431, + "nodeType": "ExpressionStatement", + "src": "10488:61:23" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 13435, + "name": "reserveAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13384, + "src": "10592:13:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 13432, + "name": "etherToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12931, + "src": "10572:10:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IEtherToken_$20266", + "typeString": "contract IEtherToken" + } + }, + "id": 13434, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "withdraw", + "nodeType": "MemberAccess", + "referencedDeclaration": 20253, + "src": "10572:19:23", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256) external" + } + }, + "id": 13436, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10572:34:23", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 13437, + "nodeType": "ExpressionStatement", + "src": "10572:34:23" + } + ] + } + }, + "id": 13440, + "nodeType": "IfStatement", + "src": "10220:406:23", + "trueBody": { + "id": 13411, + "nodeType": "Block", + "src": "10251:89:23", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 13408, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 13405, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22338, + "src": "10294:3:23", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 13406, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "10294:9:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 13407, + "name": "reserveAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13384, + "src": "10306:13:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10294:25:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 13400, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22338, + "src": "10274:3:23", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 13403, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "10274:10:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 13404, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "10274:19:23", + "typeDescriptions": { + "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 13409, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10274:46:23", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 13410, + "nodeType": "ExpressionStatement", + "src": "10274:46:23" + } + ] + } + } + ] + } + }, + { + "assignments": [ + 13453 + ], + "declarations": [ + { + "constant": false, + "id": 13453, + "name": "newReserveBalance", + "nodeType": "VariableDeclaration", + "scope": 13508, + "src": "10815:25:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13452, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10815:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 13458, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 13456, + "name": "reserveAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13384, + "src": "10858:13:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 13454, + "name": "rsvBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13377, + "src": "10843:10:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13455, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 21737, + "src": "10843:14:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 13457, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10843:29:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10815:57:23" + }, + { + "expression": { + "argumentTypes": null, + "id": 13464, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 13459, + "name": "reserves", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2520, + "src": "10887:8:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Reserve_$2506_storage_$", + "typeString": "mapping(address => struct ConverterBase.Reserve storage ref)" + } + }, + "id": 13461, + "indexExpression": { + "argumentTypes": null, + "id": 13460, + "name": "reserveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13371, + "src": "10896:12:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10887:22:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Reserve_$2506_storage", + "typeString": "struct ConverterBase.Reserve storage ref" + } + }, + "id": 13462, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "balance", + "nodeType": "MemberAccess", + "referencedDeclaration": 2497, + "src": "10887:30:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 13463, + "name": "newReserveBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13453, + "src": "10920:17:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10887:50:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13465, + "nodeType": "ExpressionStatement", + "src": "10887:50:23" + }, + { + "assignments": [ + 13467 + ], + "declarations": [ + { + "constant": false, + "id": 13467, + "name": "newPoolTokenSupply", + "nodeType": "VariableDeclaration", + "scope": 13508, + "src": "10954:26:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13466, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10954:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 13472, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 13470, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13317, + "src": "10994:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 13468, + "name": "supply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13340, + "src": "10983:6:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13469, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 21737, + "src": "10983:10:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 13471, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10983:19:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10954:48:23" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 13474, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22338, + "src": "11108:3:23", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 13475, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "11108:10:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 13476, + "name": "reserveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13371, + "src": "11120:12:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + { + "argumentTypes": null, + "id": 13477, + "name": "reserveAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13384, + "src": "11134:13:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 13478, + "name": "newReserveBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13453, + "src": "11149:17:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 13479, + "name": "newPoolTokenSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13467, + "src": "11168:18:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 13473, + "name": "LiquidityAdded", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6165, + "src": "11093:14:23", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256,uint256,uint256)" + } + }, + "id": 13480, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11093:94:23", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 13481, + "nodeType": "EmitStatement", + "src": "11088:99:23" + }, + { + "assignments": [ + 13483 + ], + "declarations": [ + { + "constant": false, + "id": 13483, + "name": "reserveWeight", + "nodeType": "VariableDeclaration", + "scope": 13508, + "src": "11276:20:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 13482, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "11276:6:23", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 13488, + "initialValue": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 13484, + "name": "reserves", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2520, + "src": "11299:8:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Reserve_$2506_storage_$", + "typeString": "mapping(address => struct ConverterBase.Reserve storage ref)" + } + }, + "id": 13486, + "indexExpression": { + "argumentTypes": null, + "id": 13485, + "name": "reserveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13371, + "src": "11308:12:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "11299:22:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Reserve_$2506_storage", + "typeString": "struct ConverterBase.Reserve storage ref" + } + }, + "id": 13487, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "weight", + "nodeType": "MemberAccess", + "referencedDeclaration": 2499, + "src": "11299:29:23", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "11276:52:23" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 13490, + "name": "newPoolTokenSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13467, + "src": "11370:18:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 13491, + "name": "reserveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13371, + "src": "11390:12:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + { + "argumentTypes": null, + "id": 13492, + "name": "newReserveBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13453, + "src": "11404:17:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 13493, + "name": "reserveWeight", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13483, + "src": "11423:13:23", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + ], + "id": 13489, + "name": "dispatchPoolTokenRateEvent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14408, + "src": "11343:26:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_contract$_IERC20Token_$20240_$_t_uint256_$_t_uint32_$returns$__$", + "typeString": "function (uint256,contract IERC20Token,uint256,uint32)" + } + }, + "id": 13494, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11343:94:23", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 13495, + "nodeType": "ExpressionStatement", + "src": "11343:94:23" + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 13366, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 13364, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13361, + "src": "9830:1:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 13365, + "name": "reserveCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13356, + "src": "9834:12:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9830:16:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 13497, + "initializationExpression": { + "assignments": [ + 13361 + ], + "declarations": [ + { + "constant": false, + "id": 13361, + "name": "i", + "nodeType": "VariableDeclaration", + "scope": 13508, + "src": "9815:9:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13360, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9815:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 13363, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 13362, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9827:1:23", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "9815:13:23" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 13368, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "9848:3:23", + "subExpression": { + "argumentTypes": null, + "id": 13367, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13361, + "src": "9848:1:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13369, + "nodeType": "ExpressionStatement", + "src": "9848:3:23" + }, + "nodeType": "ForStatement", + "src": "9810:1639:23" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 13502, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22338, + "src": "11547:3:23", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 13503, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "11547:10:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 13504, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13317, + "src": "11559:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 13499, + "name": "anchor", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2511 + ], + "referencedDeclaration": 2511, + "src": "11533:6:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + ], + "id": 13498, + "name": "ISmartToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20295, + "src": "11521:11:23", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ISmartToken_$20295_$", + "typeString": "type(contract ISmartToken)" + } + }, + "id": 13500, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11521:19:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISmartToken_$20295", + "typeString": "contract ISmartToken" + } + }, + "id": 13501, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "issue", + "nodeType": "MemberAccess", + "referencedDeclaration": 20287, + "src": "11521:25:23", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256) external" + } + }, + "id": 13505, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11521:46:23", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 13506, + "nodeType": "ExpressionStatement", + "src": "11521:46:23" + } + ] + }, + "documentation": "@dev increases the pool's liquidity and mints new shares in the pool to the caller\r\nfor example, if the caller increases the supply by 10%,\r\nthen it will cost an amount equal to 10% of each reserve token balance\r\nnote that starting from version 28, you should use 'addLiquidity' instead\r\n\n * @param _amount amount to increase the supply by (in the pool token)\r", + "id": 13508, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 13320, + "modifierName": { + "argumentTypes": null, + "id": 13319, + "name": "protected", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21698, + "src": "9255:9:23", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "9255:9:23" + } + ], + "name": "fund", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 13318, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13317, + "name": "_amount", + "nodeType": "VariableDeclaration", + "scope": 13508, + "src": "9223:15:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13316, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9223:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9222:17:23" + }, + "payable": true, + "returnParameters": { + "id": 13321, + "nodeType": "ParameterList", + "parameters": [], + "src": "9265:0:23" + }, + "scope": 14409, + "src": "9209:2366:23", + "stateMutability": "payable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 13575, + "nodeType": "Block", + "src": "12037:489:23", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 13518, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 13516, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13510, + "src": "12056:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 13517, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12066:1:23", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "12056:11:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4552525f5a45524f5f414d4f554e54", + "id": 13519, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12069:17:23", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_7361098e42735bca910fe31e755673f84106720004757c7a37e5f52f92430b9e", + "typeString": "literal_string \"ERR_ZERO_AMOUNT\"" + }, + "value": "ERR_ZERO_AMOUNT" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_7361098e42735bca910fe31e755673f84106720004757c7a37e5f52f92430b9e", + "typeString": "literal_string \"ERR_ZERO_AMOUNT\"" + } + ], + "id": 13515, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 22341, + 22342 + ], + "referencedDeclaration": 22342, + "src": "12048:7:23", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 13520, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12048:39:23", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 13521, + "nodeType": "ExpressionStatement", + "src": "12048:39:23" + }, + { + "assignments": [ + 13523 + ], + "declarations": [ + { + "constant": false, + "id": 13523, + "name": "totalSupply", + "nodeType": "VariableDeclaration", + "scope": 13576, + "src": "12100:19:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13522, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12100:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 13529, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 13525, + "name": "anchor", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2511 + ], + "referencedDeclaration": 2511, + "src": "12134:6:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + ], + "id": 13524, + "name": "ISmartToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20295, + "src": "12122:11:23", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ISmartToken_$20295_$", + "typeString": "type(contract ISmartToken)" + } + }, + "id": 13526, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12122:19:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISmartToken_$20295", + "typeString": "contract ISmartToken" + } + }, + "id": 13527, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "totalSupply", + "nodeType": "MemberAccess", + "referencedDeclaration": 20182, + "src": "12122:31:23", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", + "typeString": "function () view external returns (uint256)" + } + }, + "id": 13528, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12122:33:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "12100:55:23" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 13534, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22338, + "src": "12194:3:23", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 13535, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "12194:10:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 13536, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13510, + "src": "12206:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 13531, + "name": "anchor", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2511 + ], + "referencedDeclaration": 2511, + "src": "12178:6:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + ], + "id": 13530, + "name": "ISmartToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20295, + "src": "12166:11:23", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ISmartToken_$20295_$", + "typeString": "type(contract ISmartToken)" + } + }, + "id": 13532, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12166:19:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISmartToken_$20295", + "typeString": "contract ISmartToken" + } + }, + "id": 13533, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "destroy", + "nodeType": "MemberAccess", + "referencedDeclaration": 20294, + "src": "12166:27:23", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256) external" + } + }, + "id": 13537, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12166:48:23", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 13538, + "nodeType": "ExpressionStatement", + "src": "12166:48:23" + }, + { + "assignments": [ + 13542 + ], + "declarations": [ + { + "constant": false, + "id": 13542, + "name": "reserveMinReturnAmounts", + "nodeType": "VariableDeclaration", + "scope": 13576, + "src": "12227:40:23", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 13540, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12227:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13541, + "length": null, + "nodeType": "ArrayTypeName", + "src": "12227:9:23", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 13549, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 13546, + "name": "reserveTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2516, + "src": "12284:13:23", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_storage", + "typeString": "contract IERC20Token[] storage ref" + } + }, + "id": 13547, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "12284:20:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 13545, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "12270:13:23", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_$", + "typeString": "function (uint256) pure returns (uint256[] memory)" + }, + "typeName": { + "baseType": { + "id": 13543, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12274:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13544, + "length": null, + "nodeType": "ArrayTypeName", + "src": "12274:9:23", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + } + }, + "id": 13548, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12270:35:23", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory", + "typeString": "uint256[] memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "12227:78:23" + }, + { + "body": { + "expression": { + "argumentTypes": null, + "id": 13565, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 13561, + "name": "reserveMinReturnAmounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13542, + "src": "12390:23:23", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 13563, + "indexExpression": { + "argumentTypes": null, + "id": 13562, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13551, + "src": "12414:1:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "12390:26:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "31", + "id": 13564, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12419:1:23", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "12390:30:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13566, + "nodeType": "ExpressionStatement", + "src": "12390:30:23" + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 13557, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 13554, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13551, + "src": "12336:1:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 13555, + "name": "reserveMinReturnAmounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13542, + "src": "12340:23:23", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 13556, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "12340:30:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12336:34:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 13567, + "initializationExpression": { + "assignments": [ + 13551 + ], + "declarations": [ + { + "constant": false, + "id": 13551, + "name": "i", + "nodeType": "VariableDeclaration", + "scope": 13576, + "src": "12321:9:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13550, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12321:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 13553, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 13552, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12333:1:23", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "12321:13:23" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 13559, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "12372:3:23", + "subExpression": { + "argumentTypes": null, + "id": 13558, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13551, + "src": "12372:1:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13560, + "nodeType": "ExpressionStatement", + "src": "12372:3:23" + }, + "nodeType": "ForStatement", + "src": "12316:104:23" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 13569, + "name": "reserveTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2516, + "src": "12457:13:23", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_storage", + "typeString": "contract IERC20Token[] storage ref" + } + }, + { + "argumentTypes": null, + "id": 13570, + "name": "reserveMinReturnAmounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13542, + "src": "12472:23:23", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + { + "argumentTypes": null, + "id": 13571, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13523, + "src": "12497:11:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 13572, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13510, + "src": "12510:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_storage", + "typeString": "contract IERC20Token[] storage ref" + }, + { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 13568, + "name": "removeLiquidityFromPool", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14119, + "src": "12433:23:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (contract IERC20Token[] memory,uint256[] memory,uint256,uint256)" + } + }, + "id": 13573, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12433:85:23", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 13574, + "nodeType": "ExpressionStatement", + "src": "12433:85:23" + } + ] + }, + "documentation": "@dev decreases the pool's liquidity and burns the caller's shares in the pool\r\nfor example, if the holder sells 10% of the supply,\r\nthen they will receive 10% of each reserve token balance in return\r\nnote that starting from version 28, you should use 'removeLiquidity' instead\r\n\n * @param _amount amount to liquidate (in the pool token)\r", + "id": 13576, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 13513, + "modifierName": { + "argumentTypes": null, + "id": 13512, + "name": "protected", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21698, + "src": "12027:9:23", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "12027:9:23" + } + ], + "name": "liquidate", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 13511, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13510, + "name": "_amount", + "nodeType": "VariableDeclaration", + "scope": 13576, + "src": "12003:15:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13509, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12003:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "12002:17:23" + }, + "payable": false, + "returnParameters": { + "id": 13514, + "nodeType": "ParameterList", + "parameters": [], + "src": "12037:0:23" + }, + "scope": 14409, + "src": "11984:542:23", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 13680, + "nodeType": "Block", + "src": "13064:1027:23", + "statements": [ + { + "assignments": [], + "declarations": [ + { + "constant": false, + "id": 13588, + "name": "i", + "nodeType": "VariableDeclaration", + "scope": 13681, + "src": "13075:9:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13587, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13075:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 13589, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "13075:9:23" + }, + { + "assignments": [], + "declarations": [ + { + "constant": false, + "id": 13591, + "name": "j", + "nodeType": "VariableDeclaration", + "scope": 13681, + "src": "13095:9:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13590, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13095:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 13592, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "13095:9:23" + }, + { + "assignments": [ + 13594 + ], + "declarations": [ + { + "constant": false, + "id": 13594, + "name": "length", + "nodeType": "VariableDeclaration", + "scope": 13681, + "src": "13117:14:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13593, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13117:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 13597, + "initialValue": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 13595, + "name": "reserveTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2516, + "src": "13134:13:23", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_storage", + "typeString": "contract IERC20Token[] storage ref" + } + }, + "id": 13596, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "13134:20:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "13117:37:23" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 13602, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 13599, + "name": "length", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13594, + "src": "13173:6:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 13600, + "name": "_reserveTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13579, + "src": "13183:14:23", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", + "typeString": "contract IERC20Token[] memory" + } + }, + "id": 13601, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "13183:21:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13173:31:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4552525f494e56414c49445f52455345525645", + "id": 13603, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13206:21:23", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_2f153897d46b1410527faf37dfe95496d4a79980282840ba17da0adc4406792c", + "typeString": "literal_string \"ERR_INVALID_RESERVE\"" + }, + "value": "ERR_INVALID_RESERVE" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_2f153897d46b1410527faf37dfe95496d4a79980282840ba17da0adc4406792c", + "typeString": "literal_string \"ERR_INVALID_RESERVE\"" + } + ], + "id": 13598, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 22341, + 22342 + ], + "referencedDeclaration": 22342, + "src": "13165:7:23", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 13604, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13165:63:23", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 13605, + "nodeType": "ExpressionStatement", + "src": "13165:63:23" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 13610, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 13607, + "name": "length", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13594, + "src": "13247:6:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 13608, + "name": "_reserveAmounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13582, + "src": "13257:15:23", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 13609, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "13257:22:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13247:32:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4552525f494e56414c49445f414d4f554e54", + "id": 13611, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13281:20:23", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c44007bfe4e704be0ed1393660a827b4f88825f4b6fe1bc10cd38fc3fcb7d839", + "typeString": "literal_string \"ERR_INVALID_AMOUNT\"" + }, + "value": "ERR_INVALID_AMOUNT" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c44007bfe4e704be0ed1393660a827b4f88825f4b6fe1bc10cd38fc3fcb7d839", + "typeString": "literal_string \"ERR_INVALID_AMOUNT\"" + } + ], + "id": 13606, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 22341, + 22342 + ], + "referencedDeclaration": 22342, + "src": "13239:7:23", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 13612, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13239:63:23", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 13613, + "nodeType": "ExpressionStatement", + "src": "13239:63:23" + }, + { + "body": { + "id": 13671, + "nodeType": "Block", + "src": "13344:621:23", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 13625, + "name": "reserves", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2520, + "src": "13455:8:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Reserve_$2506_storage_$", + "typeString": "mapping(address => struct ConverterBase.Reserve storage ref)" + } + }, + "id": 13629, + "indexExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 13626, + "name": "_reserveTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13579, + "src": "13464:14:23", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", + "typeString": "contract IERC20Token[] memory" + } + }, + "id": 13628, + "indexExpression": { + "argumentTypes": null, + "id": 13627, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13588, + "src": "13479:1:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "13464:17:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "13455:27:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Reserve_$2506_storage", + "typeString": "struct ConverterBase.Reserve storage ref" + } + }, + "id": 13630, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "isSet", + "nodeType": "MemberAccess", + "referencedDeclaration": 2505, + "src": "13455:33:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4552525f494e56414c49445f52455345525645", + "id": 13631, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13490:21:23", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_2f153897d46b1410527faf37dfe95496d4a79980282840ba17da0adc4406792c", + "typeString": "literal_string \"ERR_INVALID_RESERVE\"" + }, + "value": "ERR_INVALID_RESERVE" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_2f153897d46b1410527faf37dfe95496d4a79980282840ba17da0adc4406792c", + "typeString": "literal_string \"ERR_INVALID_RESERVE\"" + } + ], + "id": 13624, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 22341, + 22342 + ], + "referencedDeclaration": 22342, + "src": "13447:7:23", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 13632, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13447:65:23", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 13633, + "nodeType": "ExpressionStatement", + "src": "13447:65:23" + }, + { + "body": { + "id": 13653, + "nodeType": "Block", + "src": "13556:104:23", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + "id": 13650, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 13644, + "name": "reserveTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2516, + "src": "13579:13:23", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_storage", + "typeString": "contract IERC20Token[] storage ref" + } + }, + "id": 13646, + "indexExpression": { + "argumentTypes": null, + "id": 13645, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13588, + "src": "13593:1:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "13579:16:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 13647, + "name": "_reserveTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13579, + "src": "13599:14:23", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", + "typeString": "contract IERC20Token[] memory" + } + }, + "id": 13649, + "indexExpression": { + "argumentTypes": null, + "id": 13648, + "name": "j", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13591, + "src": "13614:1:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "13599:17:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "src": "13579:37:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 13652, + "nodeType": "IfStatement", + "src": "13575:69:23", + "trueBody": { + "id": 13651, + "nodeType": "Break", + "src": "13639:5:23" + } + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 13640, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 13638, + "name": "j", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13591, + "src": "13539:1:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 13639, + "name": "length", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13594, + "src": "13543:6:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13539:10:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 13654, + "initializationExpression": { + "expression": { + "argumentTypes": null, + "id": 13636, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 13634, + "name": "j", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13591, + "src": "13532:1:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30", + "id": 13635, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13536:1:23", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "13532:5:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13637, + "nodeType": "ExpressionStatement", + "src": "13532:5:23" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 13642, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "13551:3:23", + "subExpression": { + "argumentTypes": null, + "id": 13641, + "name": "j", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13591, + "src": "13551:1:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13643, + "nodeType": "ExpressionStatement", + "src": "13551:3:23" + }, + "nodeType": "ForStatement", + "src": "13527:133:23" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 13658, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 13656, + "name": "j", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13591, + "src": "13770:1:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 13657, + "name": "length", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13594, + "src": "13774:6:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13770:10:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4552525f494e56414c49445f52455345525645", + "id": 13659, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13782:21:23", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_2f153897d46b1410527faf37dfe95496d4a79980282840ba17da0adc4406792c", + "typeString": "literal_string \"ERR_INVALID_RESERVE\"" + }, + "value": "ERR_INVALID_RESERVE" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_2f153897d46b1410527faf37dfe95496d4a79980282840ba17da0adc4406792c", + "typeString": "literal_string \"ERR_INVALID_RESERVE\"" + } + ], + "id": 13655, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 22341, + 22342 + ], + "referencedDeclaration": 22342, + "src": "13762:7:23", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 13660, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13762:42:23", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 13661, + "nodeType": "ExpressionStatement", + "src": "13762:42:23" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 13667, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 13663, + "name": "_reserveAmounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13582, + "src": "13908:15:23", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 13665, + "indexExpression": { + "argumentTypes": null, + "id": 13664, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13588, + "src": "13924:1:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "13908:18:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 13666, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13929:1:23", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "13908:22:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4552525f494e56414c49445f414d4f554e54", + "id": 13668, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13932:20:23", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c44007bfe4e704be0ed1393660a827b4f88825f4b6fe1bc10cd38fc3fcb7d839", + "typeString": "literal_string \"ERR_INVALID_AMOUNT\"" + }, + "value": "ERR_INVALID_AMOUNT" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c44007bfe4e704be0ed1393660a827b4f88825f4b6fe1bc10cd38fc3fcb7d839", + "typeString": "literal_string \"ERR_INVALID_AMOUNT\"" + } + ], + "id": 13662, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 22341, + 22342 + ], + "referencedDeclaration": 22342, + "src": "13900:7:23", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 13669, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13900:53:23", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 13670, + "nodeType": "ExpressionStatement", + "src": "13900:53:23" + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 13620, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 13618, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13588, + "src": "13327:1:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 13619, + "name": "length", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13594, + "src": "13331:6:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13327:10:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 13672, + "initializationExpression": { + "expression": { + "argumentTypes": null, + "id": 13616, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 13614, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13588, + "src": "13320:1:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30", + "id": 13615, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13324:1:23", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "13320:5:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13617, + "nodeType": "ExpressionStatement", + "src": "13320:5:23" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 13622, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "13339:3:23", + "subExpression": { + "argumentTypes": null, + "id": 13621, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13588, + "src": "13339:1:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13623, + "nodeType": "ExpressionStatement", + "src": "13339:3:23" + }, + "nodeType": "ForStatement", + "src": "13315:650:23" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 13676, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 13674, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13584, + "src": "14052:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 13675, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14062:1:23", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "14052:11:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4552525f5a45524f5f414d4f554e54", + "id": 13677, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14065:17:23", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_7361098e42735bca910fe31e755673f84106720004757c7a37e5f52f92430b9e", + "typeString": "literal_string \"ERR_ZERO_AMOUNT\"" + }, + "value": "ERR_ZERO_AMOUNT" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_7361098e42735bca910fe31e755673f84106720004757c7a37e5f52f92430b9e", + "typeString": "literal_string \"ERR_ZERO_AMOUNT\"" + } + ], + "id": 13673, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 22341, + 22342 + ], + "referencedDeclaration": 22342, + "src": "14044:7:23", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 13678, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14044:39:23", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 13679, + "nodeType": "ExpressionStatement", + "src": "14044:39:23" + } + ] + }, + "documentation": "@dev verifies that a given array of tokens is identical to the converter's array of reserve tokens\r\nwe take this input in order to allow specifying the corresponding reserve amounts in any order\r\n\n * @param _reserveTokens array of reserve tokens\r\n@param _reserveAmounts array of reserve amounts\r\n@param _amount token amount\r", + "id": 13681, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "verifyLiquidityInput", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 13585, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13579, + "name": "_reserveTokens", + "nodeType": "VariableDeclaration", + "scope": 13681, + "src": "12963:35:23", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", + "typeString": "contract IERC20Token[]" + }, + "typeName": { + "baseType": { + "contractScope": null, + "id": 13577, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "12963:11:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "id": 13578, + "length": null, + "nodeType": "ArrayTypeName", + "src": "12963:13:23", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_storage_ptr", + "typeString": "contract IERC20Token[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 13582, + "name": "_reserveAmounts", + "nodeType": "VariableDeclaration", + "scope": 13681, + "src": "13000:32:23", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 13580, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13000:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13581, + "length": null, + "nodeType": "ArrayTypeName", + "src": "13000:9:23", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 13584, + "name": "_amount", + "nodeType": "VariableDeclaration", + "scope": 13681, + "src": "13034:15:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13583, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13034:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "12962:88:23" + }, + "payable": false, + "returnParameters": { + "id": 13586, + "nodeType": "ParameterList", + "parameters": [], + "src": "13064:0:23" + }, + "scope": 14409, + "src": "12933:1158:23", + "stateMutability": "view", + "superFunction": null, + "visibility": "private" + }, + { + "body": { + "id": 13709, + "nodeType": "Block", + "src": "14523:209:23", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 13696, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 13694, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13689, + "src": "14538:12:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 13695, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14554:1:23", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "14538:17:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 13702, + "nodeType": "IfStatement", + "src": "14534:99:23", + "trueBody": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 13698, + "name": "_reserveTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13684, + "src": "14601:14:23", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", + "typeString": "contract IERC20Token[] memory" + } + }, + { + "argumentTypes": null, + "id": 13699, + "name": "_reserveAmounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13687, + "src": "14617:15:23", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", + "typeString": "contract IERC20Token[] memory" + }, + { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + ], + "id": 13697, + "name": "addLiquidityToEmptyPool", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13807, + "src": "14577:23:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$_t_uint256_$", + "typeString": "function (contract IERC20Token[] memory,uint256[] memory) returns (uint256)" + } + }, + "id": 13700, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14577:56:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 13693, + "id": 13701, + "nodeType": "Return", + "src": "14570:63:23" + } + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 13704, + "name": "_reserveTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13684, + "src": "14678:14:23", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", + "typeString": "contract IERC20Token[] memory" + } + }, + { + "argumentTypes": null, + "id": 13705, + "name": "_reserveAmounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13687, + "src": "14694:15:23", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + { + "argumentTypes": null, + "id": 13706, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13689, + "src": "14711:12:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", + "typeString": "contract IERC20Token[] memory" + }, + { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 13703, + "name": "addLiquidityToNonEmptyPool", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13986, + "src": "14651:26:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (contract IERC20Token[] memory,uint256[] memory,uint256) returns (uint256)" + } + }, + "id": 13707, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14651:73:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 13693, + "id": 13708, + "nodeType": "Return", + "src": "14644:80:23" + } + ] + }, + "documentation": "@dev adds liquidity (reserve) to the pool\r\n\n * @param _reserveTokens address of each reserve token\r\n@param _reserveAmounts amount of each reserve token\r\n@param _totalSupply token total supply\r", + "id": 13710, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "addLiquidityToPool", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 13690, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13684, + "name": "_reserveTokens", + "nodeType": "VariableDeclaration", + "scope": 13710, + "src": "14381:35:23", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", + "typeString": "contract IERC20Token[]" + }, + "typeName": { + "baseType": { + "contractScope": null, + "id": 13682, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "14381:11:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "id": 13683, + "length": null, + "nodeType": "ArrayTypeName", + "src": "14381:13:23", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_storage_ptr", + "typeString": "contract IERC20Token[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 13687, + "name": "_reserveAmounts", + "nodeType": "VariableDeclaration", + "scope": 13710, + "src": "14418:32:23", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 13685, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14418:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13686, + "length": null, + "nodeType": "ArrayTypeName", + "src": "14418:9:23", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 13689, + "name": "_totalSupply", + "nodeType": "VariableDeclaration", + "scope": 13710, + "src": "14452:20:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13688, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14452:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "14380:93:23" + }, + "payable": false, + "returnParameters": { + "id": 13693, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13692, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 13710, + "src": "14509:7:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13691, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14509:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "14508:9:23" + }, + "scope": 14409, + "src": "14353:379:23", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "private" + }, + { + "body": { + "id": 13806, + "nodeType": "Block", + "src": "15111:983:23", + "statements": [ + { + "assignments": [ + 13722 + ], + "declarations": [ + { + "constant": false, + "id": 13722, + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 13807, + "src": "15207:14:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13721, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15207:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 13726, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 13724, + "name": "_reserveAmounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13716, + "src": "15238:15:23", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + ], + "id": 13723, + "name": "geometricMean", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14292, + "src": "15224:13:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_array$_t_uint256_$dyn_memory_ptr_$returns$_t_uint256_$", + "typeString": "function (uint256[] memory) pure returns (uint256)" + } + }, + "id": 13725, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15224:30:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15207:47:23" + }, + { + "body": { + "id": 13802, + "nodeType": "Block", + "src": "15398:663:23", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 13742, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 13738, + "name": "_reserveTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13713, + "src": "15417:14:23", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", + "typeString": "contract IERC20Token[] memory" + } + }, + "id": 13740, + "indexExpression": { + "argumentTypes": null, + "id": 13739, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13728, + "src": "15432:1:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "15417:17:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "id": 13741, + "name": "ETH_RESERVE_ADDRESS", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2495, + "src": "15438:19:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "15417:40:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 13755, + "nodeType": "IfStatement", + "src": "15413:199:23", + "trueBody": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 13744, + "name": "_reserveTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13713, + "src": "15556:14:23", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", + "typeString": "contract IERC20Token[] memory" + } + }, + "id": 13746, + "indexExpression": { + "argumentTypes": null, + "id": 13745, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13728, + "src": "15571:1:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "15556:17:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 13747, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22338, + "src": "15575:3:23", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 13748, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "15575:10:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 13749, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22439, + "src": "15587:4:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_LiquidityPoolV1Converter_$14409", + "typeString": "contract LiquidityPoolV1Converter" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 13750, + "name": "_reserveAmounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13716, + "src": "15593:15:23", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 13752, + "indexExpression": { + "argumentTypes": null, + "id": 13751, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13728, + "src": "15609:1:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "15593:18:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_contract$_LiquidityPoolV1Converter_$14409", + "typeString": "contract LiquidityPoolV1Converter" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 13743, + "name": "safeTransferFrom", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21904, + "src": "15539:16:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20Token_$20240_$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (contract IERC20Token,address,address,uint256)" + } + }, + "id": 13753, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15539:73:23", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 13754, + "nodeType": "ExpressionStatement", + "src": "15539:73:23" + } + }, + { + "expression": { + "argumentTypes": null, + "id": 13765, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 13756, + "name": "reserves", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2520, + "src": "15629:8:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Reserve_$2506_storage_$", + "typeString": "mapping(address => struct ConverterBase.Reserve storage ref)" + } + }, + "id": 13760, + "indexExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 13757, + "name": "_reserveTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13713, + "src": "15638:14:23", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", + "typeString": "contract IERC20Token[] memory" + } + }, + "id": 13759, + "indexExpression": { + "argumentTypes": null, + "id": 13758, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13728, + "src": "15653:1:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "15638:17:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "15629:27:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Reserve_$2506_storage", + "typeString": "struct ConverterBase.Reserve storage ref" + } + }, + "id": 13761, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "balance", + "nodeType": "MemberAccess", + "referencedDeclaration": 2497, + "src": "15629:35:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 13762, + "name": "_reserveAmounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13716, + "src": "15667:15:23", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 13764, + "indexExpression": { + "argumentTypes": null, + "id": 13763, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13728, + "src": "15683:1:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "15667:18:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "15629:56:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13766, + "nodeType": "ExpressionStatement", + "src": "15629:56:23" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 13768, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22338, + "src": "15722:3:23", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 13769, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "15722:10:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 13770, + "name": "_reserveTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13713, + "src": "15734:14:23", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", + "typeString": "contract IERC20Token[] memory" + } + }, + "id": 13772, + "indexExpression": { + "argumentTypes": null, + "id": 13771, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13728, + "src": "15749:1:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "15734:17:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 13773, + "name": "_reserveAmounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13716, + "src": "15753:15:23", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 13775, + "indexExpression": { + "argumentTypes": null, + "id": 13774, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13728, + "src": "15769:1:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "15753:18:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 13776, + "name": "_reserveAmounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13716, + "src": "15773:15:23", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 13778, + "indexExpression": { + "argumentTypes": null, + "id": 13777, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13728, + "src": "15789:1:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "15773:18:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 13779, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13722, + "src": "15793:6:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 13767, + "name": "LiquidityAdded", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6165, + "src": "15707:14:23", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256,uint256,uint256)" + } + }, + "id": 13780, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15707:93:23", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 13781, + "nodeType": "EmitStatement", + "src": "15702:98:23" + }, + { + "assignments": [ + 13783 + ], + "declarations": [ + { + "constant": false, + "id": 13783, + "name": "reserveWeight", + "nodeType": "VariableDeclaration", + "scope": 13807, + "src": "15889:20:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 13782, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "15889:6:23", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 13790, + "initialValue": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 13784, + "name": "reserves", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2520, + "src": "15912:8:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Reserve_$2506_storage_$", + "typeString": "mapping(address => struct ConverterBase.Reserve storage ref)" + } + }, + "id": 13788, + "indexExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 13785, + "name": "_reserveTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13713, + "src": "15921:14:23", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", + "typeString": "contract IERC20Token[] memory" + } + }, + "id": 13787, + "indexExpression": { + "argumentTypes": null, + "id": 13786, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13728, + "src": "15936:1:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "15921:17:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "15912:27:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Reserve_$2506_storage", + "typeString": "struct ConverterBase.Reserve storage ref" + } + }, + "id": 13789, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "weight", + "nodeType": "MemberAccess", + "referencedDeclaration": 2499, + "src": "15912:34:23", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15889:57:23" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 13792, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13722, + "src": "15988:6:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 13793, + "name": "_reserveTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13713, + "src": "15996:14:23", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", + "typeString": "contract IERC20Token[] memory" + } + }, + "id": 13795, + "indexExpression": { + "argumentTypes": null, + "id": 13794, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13728, + "src": "16011:1:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "15996:17:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 13796, + "name": "_reserveAmounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13716, + "src": "16015:15:23", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 13798, + "indexExpression": { + "argumentTypes": null, + "id": 13797, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13728, + "src": "16031:1:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "16015:18:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 13799, + "name": "reserveWeight", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13783, + "src": "16035:13:23", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + ], + "id": 13791, + "name": "dispatchPoolTokenRateEvent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14408, + "src": "15961:26:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_contract$_IERC20Token_$20240_$_t_uint256_$_t_uint32_$returns$__$", + "typeString": "function (uint256,contract IERC20Token,uint256,uint32)" + } + }, + "id": 13800, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15961:88:23", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 13801, + "nodeType": "ExpressionStatement", + "src": "15961:88:23" + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 13734, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 13731, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13728, + "src": "15366:1:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 13732, + "name": "_reserveTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13713, + "src": "15370:14:23", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", + "typeString": "contract IERC20Token[] memory" + } + }, + "id": 13733, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "15370:21:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "15366:25:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 13803, + "initializationExpression": { + "assignments": [ + 13728 + ], + "declarations": [ + { + "constant": false, + "id": 13728, + "name": "i", + "nodeType": "VariableDeclaration", + "scope": 13807, + "src": "15351:9:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13727, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15351:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 13730, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 13729, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15363:1:23", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "15351:13:23" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 13736, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "15393:3:23", + "subExpression": { + "argumentTypes": null, + "id": 13735, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13728, + "src": "15393:1:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13737, + "nodeType": "ExpressionStatement", + "src": "15393:3:23" + }, + "nodeType": "ForStatement", + "src": "15346:715:23" + }, + { + "expression": { + "argumentTypes": null, + "id": 13804, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13722, + "src": "16080:6:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 13720, + "id": 13805, + "nodeType": "Return", + "src": "16073:13:23" + } + ] + }, + "documentation": "@dev adds liquidity (reserve) to the pool when it's empty\r\n\n * @param _reserveTokens address of each reserve token\r\n@param _reserveAmounts amount of each reserve token\r", + "id": 13807, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "addLiquidityToEmptyPool", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 13717, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13713, + "name": "_reserveTokens", + "nodeType": "VariableDeclaration", + "scope": 13807, + "src": "14991:35:23", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", + "typeString": "contract IERC20Token[]" + }, + "typeName": { + "baseType": { + "contractScope": null, + "id": 13711, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "14991:11:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "id": 13712, + "length": null, + "nodeType": "ArrayTypeName", + "src": "14991:13:23", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_storage_ptr", + "typeString": "contract IERC20Token[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 13716, + "name": "_reserveAmounts", + "nodeType": "VariableDeclaration", + "scope": 13807, + "src": "15028:32:23", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 13714, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15028:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13715, + "length": null, + "nodeType": "ArrayTypeName", + "src": "15028:9:23", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "14990:71:23" + }, + "payable": false, + "returnParameters": { + "id": 13720, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13719, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 13807, + "src": "15097:7:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13718, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15097:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "15096:9:23" + }, + "scope": 14409, + "src": "14958:1136:23", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "private" + }, + { + "body": { + "id": 13985, + "nodeType": "Block", + "src": "16554:1832:23", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 13820, + "name": "syncReserveBalances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3263, + "src": "16565:19:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", + "typeString": "function ()" + } + }, + "id": 13821, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16565:21:23", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 13822, + "nodeType": "ExpressionStatement", + "src": "16565:21:23" + }, + { + "expression": { + "argumentTypes": null, + "id": 13835, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 13823, + "name": "reserves", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2520, + "src": "16597:8:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Reserve_$2506_storage_$", + "typeString": "mapping(address => struct ConverterBase.Reserve storage ref)" + } + }, + "id": 13825, + "indexExpression": { + "argumentTypes": null, + "id": 13824, + "name": "ETH_RESERVE_ADDRESS", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2495, + "src": "16606:19:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "16597:29:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Reserve_$2506_storage", + "typeString": "struct ConverterBase.Reserve storage ref" + } + }, + "id": 13826, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "balance", + "nodeType": "MemberAccess", + "referencedDeclaration": 2497, + "src": "16597:37:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 13832, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22338, + "src": "16679:3:23", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 13833, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "16679:9:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 13827, + "name": "reserves", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2520, + "src": "16637:8:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Reserve_$2506_storage_$", + "typeString": "mapping(address => struct ConverterBase.Reserve storage ref)" + } + }, + "id": 13829, + "indexExpression": { + "argumentTypes": null, + "id": 13828, + "name": "ETH_RESERVE_ADDRESS", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2495, + "src": "16646:19:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "16637:29:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Reserve_$2506_storage", + "typeString": "struct ConverterBase.Reserve storage ref" + } + }, + "id": 13830, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "balance", + "nodeType": "MemberAccess", + "referencedDeclaration": 2497, + "src": "16637:37:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13831, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 21758, + "src": "16637:41:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 13834, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16637:52:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "16597:92:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13836, + "nodeType": "ExpressionStatement", + "src": "16597:92:23" + }, + { + "assignments": [ + 13838 + ], + "declarations": [ + { + "constant": false, + "id": 13838, + "name": "formula", + "nodeType": "VariableDeclaration", + "scope": 13986, + "src": "16702:26:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISovrynSwapFormula_$12240", + "typeString": "contract ISovrynSwapFormula" + }, + "typeName": { + "contractScope": null, + "id": 13837, + "name": "ISovrynSwapFormula", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 12240, + "src": "16702:18:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISovrynSwapFormula_$12240", + "typeString": "contract ISovrynSwapFormula" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 13844, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 13841, + "name": "SOVRYNSWAP_FORMULA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20758, + "src": "16760:18:23", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 13840, + "name": "addressOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20931, + "src": "16750:9:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$", + "typeString": "function (bytes32) view returns (address)" + } + }, + "id": 13842, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16750:29:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 13839, + "name": "ISovrynSwapFormula", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12240, + "src": "16731:18:23", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ISovrynSwapFormula_$12240_$", + "typeString": "type(contract ISovrynSwapFormula)" + } + }, + "id": 13843, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16731:49:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISovrynSwapFormula_$12240", + "typeString": "contract ISovrynSwapFormula" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "16702:78:23" + }, + { + "assignments": [ + 13846 + ], + "declarations": [ + { + "constant": false, + "id": 13846, + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 13986, + "src": "16791:14:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13845, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16791:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 13853, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 13848, + "name": "formula", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13838, + "src": "16820:7:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISovrynSwapFormula_$12240", + "typeString": "contract ISovrynSwapFormula" + } + }, + { + "argumentTypes": null, + "id": 13849, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13815, + "src": "16829:12:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 13850, + "name": "_reserveTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13810, + "src": "16843:14:23", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", + "typeString": "contract IERC20Token[] memory" + } + }, + { + "argumentTypes": null, + "id": 13851, + "name": "_reserveAmounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13813, + "src": "16859:15:23", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_ISovrynSwapFormula_$12240", + "typeString": "contract ISovrynSwapFormula" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", + "typeString": "contract IERC20Token[] memory" + }, + { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + ], + "id": 13847, + "name": "getMinShare", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14195, + "src": "16808:11:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_contract$_ISovrynSwapFormula_$12240_$_t_uint256_$_t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$_t_uint256_$", + "typeString": "function (contract ISovrynSwapFormula,uint256,contract IERC20Token[] memory,uint256[] memory) view returns (uint256)" + } + }, + "id": 13852, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16808:67:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "16791:84:23" + }, + { + "assignments": [ + 13855 + ], + "declarations": [ + { + "constant": false, + "id": 13855, + "name": "newPoolTokenSupply", + "nodeType": "VariableDeclaration", + "scope": 13986, + "src": "16886:26:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13854, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16886:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 13860, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 13858, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13846, + "src": "16932:6:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 13856, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13815, + "src": "16915:12:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13857, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 21737, + "src": "16915:16:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 13859, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16915:24:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "16886:53:23" + }, + { + "body": { + "id": 13981, + "nodeType": "Block", + "src": "17004:1349:23", + "statements": [ + { + "assignments": [ + 13873 + ], + "declarations": [ + { + "constant": false, + "id": 13873, + "name": "reserveToken", + "nodeType": "VariableDeclaration", + "scope": 13986, + "src": "17019:24:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + "typeName": { + "contractScope": null, + "id": 13872, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "17019:11:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 13877, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 13874, + "name": "_reserveTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13810, + "src": "17046:14:23", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", + "typeString": "contract IERC20Token[] memory" + } + }, + "id": 13876, + "indexExpression": { + "argumentTypes": null, + "id": 13875, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13862, + "src": "17061:1:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "17046:17:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17019:44:23" + }, + { + "assignments": [ + 13879 + ], + "declarations": [ + { + "constant": false, + "id": 13879, + "name": "rsvBalance", + "nodeType": "VariableDeclaration", + "scope": 13986, + "src": "17078:18:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13878, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17078:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 13884, + "initialValue": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 13880, + "name": "reserves", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2520, + "src": "17099:8:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Reserve_$2506_storage_$", + "typeString": "mapping(address => struct ConverterBase.Reserve storage ref)" + } + }, + "id": 13882, + "indexExpression": { + "argumentTypes": null, + "id": 13881, + "name": "reserveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13873, + "src": "17108:12:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "17099:22:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Reserve_$2506_storage", + "typeString": "struct ConverterBase.Reserve storage ref" + } + }, + "id": 13883, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "balance", + "nodeType": "MemberAccess", + "referencedDeclaration": 2497, + "src": "17099:30:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17078:51:23" + }, + { + "assignments": [ + 13886 + ], + "declarations": [ + { + "constant": false, + "id": 13886, + "name": "reserveAmount", + "nodeType": "VariableDeclaration", + "scope": 13986, + "src": "17144:21:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13885, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17144:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 13894, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 13889, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13815, + "src": "17185:12:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 13890, + "name": "rsvBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13879, + "src": "17199:10:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 13891, + "name": "reserveRatio", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2523, + "src": "17211:12:23", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + { + "argumentTypes": null, + "id": 13892, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13846, + "src": "17225:6:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 13887, + "name": "formula", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13838, + "src": "17168:7:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISovrynSwapFormula_$12240", + "typeString": "contract ISovrynSwapFormula" + } + }, + "id": 13888, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "fundCost", + "nodeType": "MemberAccess", + "referencedDeclaration": 12196, + "src": "17168:16:23", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_uint256_$_t_uint256_$_t_uint32_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint32,uint256) view external returns (uint256)" + } + }, + "id": 13893, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17168:64:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17144:88:23" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 13898, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 13896, + "name": "reserveAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13886, + "src": "17255:13:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 13897, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17271:1:23", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "17255:17:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4552525f5a45524f5f5441524745545f414d4f554e54", + "id": 13899, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17274:24:23", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_29cb0846c2d5a859f661a5b4c4a8be47a80ca27c24af6f007bda101871b53e03", + "typeString": "literal_string \"ERR_ZERO_TARGET_AMOUNT\"" + }, + "value": "ERR_ZERO_TARGET_AMOUNT" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_29cb0846c2d5a859f661a5b4c4a8be47a80ca27c24af6f007bda101871b53e03", + "typeString": "literal_string \"ERR_ZERO_TARGET_AMOUNT\"" + } + ], + "id": 13895, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 22341, + 22342 + ], + "referencedDeclaration": 22342, + "src": "17247:7:23", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 13900, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17247:52:23", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 13901, + "nodeType": "ExpressionStatement", + "src": "17247:52:23" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 13907, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 13903, + "name": "reserveAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13886, + "src": "17321:13:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 13904, + "name": "_reserveAmounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13813, + "src": "17338:15:23", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 13906, + "indexExpression": { + "argumentTypes": null, + "id": 13905, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13862, + "src": "17354:1:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "17338:18:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17321:35:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 13902, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22327, + "src": "17314:6:23", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 13908, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17314:43:23", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 13909, + "nodeType": "ExpressionStatement", + "src": "17314:43:23" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 13912, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 13910, + "name": "reserveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13873, + "src": "17461:12:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "id": 13911, + "name": "ETH_RESERVE_ADDRESS", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2495, + "src": "17477:19:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "17461:35:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 13925, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 13921, + "name": "_reserveAmounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13813, + "src": "17665:15:23", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 13923, + "indexExpression": { + "argumentTypes": null, + "id": 13922, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13862, + "src": "17681:1:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "17665:18:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "id": 13924, + "name": "reserveAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13886, + "src": "17686:13:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17665:34:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 13938, + "nodeType": "IfStatement", + "src": "17661:165:23", + "trueBody": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 13935, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 13931, + "name": "_reserveAmounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13813, + "src": "17791:15:23", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 13933, + "indexExpression": { + "argumentTypes": null, + "id": 13932, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13862, + "src": "17807:1:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "17791:18:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 13934, + "name": "reserveAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13886, + "src": "17812:13:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17791:34:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 13926, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22338, + "src": "17771:3:23", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 13929, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "17771:10:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 13930, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "17771:19:23", + "typeDescriptions": { + "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 13936, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17771:55:23", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 13937, + "nodeType": "ExpressionStatement", + "src": "17771:55:23" + } + }, + "id": 13939, + "nodeType": "IfStatement", + "src": "17457:369:23", + "trueBody": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 13914, + "name": "reserveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13873, + "src": "17595:12:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 13915, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22338, + "src": "17609:3:23", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 13916, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "17609:10:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 13917, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22439, + "src": "17621:4:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_LiquidityPoolV1Converter_$14409", + "typeString": "contract LiquidityPoolV1Converter" + } + }, + { + "argumentTypes": null, + "id": 13918, + "name": "reserveAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13886, + "src": "17627:13:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_contract$_LiquidityPoolV1Converter_$14409", + "typeString": "contract LiquidityPoolV1Converter" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 13913, + "name": "safeTransferFrom", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21904, + "src": "17578:16:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20Token_$20240_$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (contract IERC20Token,address,address,uint256)" + } + }, + "id": 13919, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17578:63:23", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 13920, + "nodeType": "ExpressionStatement", + "src": "17578:63:23" + } + }, + { + "assignments": [ + 13941 + ], + "declarations": [ + { + "constant": false, + "id": 13941, + "name": "newReserveBalance", + "nodeType": "VariableDeclaration", + "scope": 13986, + "src": "17843:25:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13940, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17843:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 13946, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 13944, + "name": "reserveAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13886, + "src": "17886:13:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 13942, + "name": "rsvBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13879, + "src": "17871:10:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13943, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 21737, + "src": "17871:14:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 13945, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17871:29:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17843:57:23" + }, + { + "expression": { + "argumentTypes": null, + "id": 13952, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 13947, + "name": "reserves", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2520, + "src": "17915:8:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Reserve_$2506_storage_$", + "typeString": "mapping(address => struct ConverterBase.Reserve storage ref)" + } + }, + "id": 13949, + "indexExpression": { + "argumentTypes": null, + "id": 13948, + "name": "reserveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13873, + "src": "17924:12:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "17915:22:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Reserve_$2506_storage", + "typeString": "struct ConverterBase.Reserve storage ref" + } + }, + "id": 13950, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "balance", + "nodeType": "MemberAccess", + "referencedDeclaration": 2497, + "src": "17915:30:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 13951, + "name": "newReserveBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13941, + "src": "17948:17:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17915:50:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13953, + "nodeType": "ExpressionStatement", + "src": "17915:50:23" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 13955, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22338, + "src": "18002:3:23", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 13956, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "18002:10:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 13957, + "name": "reserveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13873, + "src": "18014:12:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + { + "argumentTypes": null, + "id": 13958, + "name": "reserveAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13886, + "src": "18028:13:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 13959, + "name": "newReserveBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13941, + "src": "18043:17:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 13960, + "name": "newPoolTokenSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13855, + "src": "18062:18:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 13954, + "name": "LiquidityAdded", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6165, + "src": "17987:14:23", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256,uint256,uint256)" + } + }, + "id": 13961, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17987:94:23", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 13962, + "nodeType": "EmitStatement", + "src": "17982:99:23" + }, + { + "assignments": [ + 13964 + ], + "declarations": [ + { + "constant": false, + "id": 13964, + "name": "reserveWeight", + "nodeType": "VariableDeclaration", + "scope": 13986, + "src": "18170:20:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 13963, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "18170:6:23", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 13971, + "initialValue": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 13965, + "name": "reserves", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2520, + "src": "18193:8:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Reserve_$2506_storage_$", + "typeString": "mapping(address => struct ConverterBase.Reserve storage ref)" + } + }, + "id": 13969, + "indexExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 13966, + "name": "_reserveTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13810, + "src": "18202:14:23", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", + "typeString": "contract IERC20Token[] memory" + } + }, + "id": 13968, + "indexExpression": { + "argumentTypes": null, + "id": 13967, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13862, + "src": "18217:1:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "18202:17:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "18193:27:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Reserve_$2506_storage", + "typeString": "struct ConverterBase.Reserve storage ref" + } + }, + "id": 13970, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "weight", + "nodeType": "MemberAccess", + "referencedDeclaration": 2499, + "src": "18193:34:23", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "18170:57:23" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 13973, + "name": "newPoolTokenSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13855, + "src": "18269:18:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 13974, + "name": "_reserveTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13810, + "src": "18289:14:23", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", + "typeString": "contract IERC20Token[] memory" + } + }, + "id": 13976, + "indexExpression": { + "argumentTypes": null, + "id": 13975, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13862, + "src": "18304:1:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "18289:17:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + { + "argumentTypes": null, + "id": 13977, + "name": "newReserveBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13941, + "src": "18308:17:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 13978, + "name": "reserveWeight", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13964, + "src": "18327:13:23", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + ], + "id": 13972, + "name": "dispatchPoolTokenRateEvent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14408, + "src": "18242:26:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_contract$_IERC20Token_$20240_$_t_uint256_$_t_uint32_$returns$__$", + "typeString": "function (uint256,contract IERC20Token,uint256,uint32)" + } + }, + "id": 13979, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18242:99:23", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 13980, + "nodeType": "ExpressionStatement", + "src": "18242:99:23" + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 13868, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 13865, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13862, + "src": "16972:1:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 13866, + "name": "_reserveTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13810, + "src": "16976:14:23", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", + "typeString": "contract IERC20Token[] memory" + } + }, + "id": 13867, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "16976:21:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "16972:25:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 13982, + "initializationExpression": { + "assignments": [ + 13862 + ], + "declarations": [ + { + "constant": false, + "id": 13862, + "name": "i", + "nodeType": "VariableDeclaration", + "scope": 13986, + "src": "16957:9:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13861, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16957:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 13864, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 13863, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16969:1:23", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "16957:13:23" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 13870, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "16999:3:23", + "subExpression": { + "argumentTypes": null, + "id": 13869, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13862, + "src": "16999:1:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13871, + "nodeType": "ExpressionStatement", + "src": "16999:3:23" + }, + "nodeType": "ForStatement", + "src": "16952:1401:23" + }, + { + "expression": { + "argumentTypes": null, + "id": 13983, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13846, + "src": "18372:6:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 13819, + "id": 13984, + "nodeType": "Return", + "src": "18365:13:23" + } + ] + }, + "documentation": "@dev adds liquidity (reserve) to the pool when it's not empty\r\n\n * @param _reserveTokens address of each reserve token\r\n@param _reserveAmounts amount of each reserve token\r\n@param _totalSupply token total supply\r", + "id": 13986, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "addLiquidityToNonEmptyPool", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 13816, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13810, + "name": "_reserveTokens", + "nodeType": "VariableDeclaration", + "scope": 13986, + "src": "16412:35:23", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", + "typeString": "contract IERC20Token[]" + }, + "typeName": { + "baseType": { + "contractScope": null, + "id": 13808, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "16412:11:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "id": 13809, + "length": null, + "nodeType": "ArrayTypeName", + "src": "16412:13:23", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_storage_ptr", + "typeString": "contract IERC20Token[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 13813, + "name": "_reserveAmounts", + "nodeType": "VariableDeclaration", + "scope": 13986, + "src": "16449:32:23", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 13811, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16449:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13812, + "length": null, + "nodeType": "ArrayTypeName", + "src": "16449:9:23", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 13815, + "name": "_totalSupply", + "nodeType": "VariableDeclaration", + "scope": 13986, + "src": "16483:20:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13814, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16483:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "16411:93:23" + }, + "payable": false, + "returnParameters": { + "id": 13819, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13818, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 13986, + "src": "16540:7:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13817, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16540:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "16539:9:23" + }, + "scope": 14409, + "src": "16376:2010:23", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "private" + }, + { + "body": { + "id": 14118, + "nodeType": "Block", + "src": "18920:1398:23", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 13999, + "name": "syncReserveBalances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3263, + "src": "18931:19:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", + "typeString": "function ()" + } + }, + "id": 14000, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18931:21:23", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 14001, + "nodeType": "ExpressionStatement", + "src": "18931:21:23" + }, + { + "assignments": [ + 14003 + ], + "declarations": [ + { + "constant": false, + "id": 14003, + "name": "formula", + "nodeType": "VariableDeclaration", + "scope": 14119, + "src": "18965:26:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISovrynSwapFormula_$12240", + "typeString": "contract ISovrynSwapFormula" + }, + "typeName": { + "contractScope": null, + "id": 14002, + "name": "ISovrynSwapFormula", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 12240, + "src": "18965:18:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISovrynSwapFormula_$12240", + "typeString": "contract ISovrynSwapFormula" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 14009, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 14006, + "name": "SOVRYNSWAP_FORMULA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20758, + "src": "19023:18:23", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 14005, + "name": "addressOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20931, + "src": "19013:9:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$", + "typeString": "function (bytes32) view returns (address)" + } + }, + "id": 14007, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19013:29:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 14004, + "name": "ISovrynSwapFormula", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12240, + "src": "18994:18:23", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ISovrynSwapFormula_$12240_$", + "typeString": "type(contract ISovrynSwapFormula)" + } + }, + "id": 14008, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18994:49:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISovrynSwapFormula_$12240", + "typeString": "contract ISovrynSwapFormula" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "18965:78:23" + }, + { + "assignments": [ + 14011 + ], + "declarations": [ + { + "constant": false, + "id": 14011, + "name": "newPoolTokenSupply", + "nodeType": "VariableDeclaration", + "scope": 14119, + "src": "19054:26:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14010, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "19054:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 14016, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 14014, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13996, + "src": "19100:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 14012, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13994, + "src": "19083:12:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 14013, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 21758, + "src": "19083:16:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 14015, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19083:25:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "19054:54:23" + }, + { + "body": { + "id": 14116, + "nodeType": "Block", + "src": "19173:1138:23", + "statements": [ + { + "assignments": [ + 14029 + ], + "declarations": [ + { + "constant": false, + "id": 14029, + "name": "reserveToken", + "nodeType": "VariableDeclaration", + "scope": 14119, + "src": "19188:24:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + "typeName": { + "contractScope": null, + "id": 14028, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "19188:11:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 14033, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 14030, + "name": "_reserveTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13989, + "src": "19215:14:23", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", + "typeString": "contract IERC20Token[] memory" + } + }, + "id": 14032, + "indexExpression": { + "argumentTypes": null, + "id": 14031, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14018, + "src": "19230:1:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "19215:17:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "19188:44:23" + }, + { + "assignments": [ + 14035 + ], + "declarations": [ + { + "constant": false, + "id": 14035, + "name": "rsvBalance", + "nodeType": "VariableDeclaration", + "scope": 14119, + "src": "19247:18:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14034, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "19247:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 14040, + "initialValue": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 14036, + "name": "reserves", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2520, + "src": "19268:8:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Reserve_$2506_storage_$", + "typeString": "mapping(address => struct ConverterBase.Reserve storage ref)" + } + }, + "id": 14038, + "indexExpression": { + "argumentTypes": null, + "id": 14037, + "name": "reserveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14029, + "src": "19277:12:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "19268:22:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Reserve_$2506_storage", + "typeString": "struct ConverterBase.Reserve storage ref" + } + }, + "id": 14039, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "balance", + "nodeType": "MemberAccess", + "referencedDeclaration": 2497, + "src": "19268:30:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "19247:51:23" + }, + { + "assignments": [ + 14042 + ], + "declarations": [ + { + "constant": false, + "id": 14042, + "name": "reserveAmount", + "nodeType": "VariableDeclaration", + "scope": 14119, + "src": "19313:21:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14041, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "19313:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 14050, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 14045, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13994, + "src": "19368:12:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 14046, + "name": "rsvBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14035, + "src": "19382:10:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 14047, + "name": "reserveRatio", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2523, + "src": "19394:12:23", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + { + "argumentTypes": null, + "id": 14048, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13996, + "src": "19408:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 14043, + "name": "formula", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14003, + "src": "19337:7:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISovrynSwapFormula_$12240", + "typeString": "contract ISovrynSwapFormula" + } + }, + "id": 14044, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "liquidateReserveAmount", + "nodeType": "MemberAccess", + "referencedDeclaration": 12222, + "src": "19337:30:23", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_uint256_$_t_uint256_$_t_uint32_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint32,uint256) view external returns (uint256)" + } + }, + "id": 14049, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19337:79:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "19313:103:23" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 14056, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 14052, + "name": "reserveAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14042, + "src": "19439:13:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 14053, + "name": "_reserveMinReturnAmounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13992, + "src": "19456:24:23", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 14055, + "indexExpression": { + "argumentTypes": null, + "id": 14054, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14018, + "src": "19481:1:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "19456:27:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19439:44:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4552525f5a45524f5f5441524745545f414d4f554e54", + "id": 14057, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19485:24:23", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_29cb0846c2d5a859f661a5b4c4a8be47a80ca27c24af6f007bda101871b53e03", + "typeString": "literal_string \"ERR_ZERO_TARGET_AMOUNT\"" + }, + "value": "ERR_ZERO_TARGET_AMOUNT" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_29cb0846c2d5a859f661a5b4c4a8be47a80ca27c24af6f007bda101871b53e03", + "typeString": "literal_string \"ERR_ZERO_TARGET_AMOUNT\"" + } + ], + "id": 14051, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 22341, + 22342 + ], + "referencedDeclaration": 22342, + "src": "19431:7:23", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 14058, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19431:79:23", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 14059, + "nodeType": "ExpressionStatement", + "src": "19431:79:23" + }, + { + "assignments": [ + 14061 + ], + "declarations": [ + { + "constant": false, + "id": 14061, + "name": "newReserveBalance", + "nodeType": "VariableDeclaration", + "scope": 14119, + "src": "19527:25:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14060, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "19527:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 14066, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 14064, + "name": "reserveAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14042, + "src": "19570:13:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 14062, + "name": "rsvBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14035, + "src": "19555:10:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 14063, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 21758, + "src": "19555:14:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 14065, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19555:29:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "19527:57:23" + }, + { + "expression": { + "argumentTypes": null, + "id": 14072, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 14067, + "name": "reserves", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2520, + "src": "19599:8:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Reserve_$2506_storage_$", + "typeString": "mapping(address => struct ConverterBase.Reserve storage ref)" + } + }, + "id": 14069, + "indexExpression": { + "argumentTypes": null, + "id": 14068, + "name": "reserveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14029, + "src": "19608:12:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "19599:22:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Reserve_$2506_storage", + "typeString": "struct ConverterBase.Reserve storage ref" + } + }, + "id": 14070, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "balance", + "nodeType": "MemberAccess", + "referencedDeclaration": 2497, + "src": "19599:30:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 14071, + "name": "newReserveBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14061, + "src": "19632:17:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19599:50:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 14073, + "nodeType": "ExpressionStatement", + "src": "19599:50:23" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 14076, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 14074, + "name": "reserveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14029, + "src": "19753:12:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 14075, + "name": "ETH_RESERVE_ADDRESS", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2495, + "src": "19769:19:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "19753:35:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 14086, + "name": "reserveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14029, + "src": "19891:12:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 14087, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22338, + "src": "19905:3:23", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 14088, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "19905:10:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 14089, + "name": "reserveAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14042, + "src": "19917:13:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 14085, + "name": "safeTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21881, + "src": "19878:12:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20Token_$20240_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (contract IERC20Token,address,uint256)" + } + }, + "id": 14090, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19878:53:23", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 14091, + "nodeType": "ExpressionStatement", + "src": "19878:53:23" + }, + "id": 14092, + "nodeType": "IfStatement", + "src": "19749:182:23", + "trueBody": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 14082, + "name": "reserveAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14042, + "src": "19827:13:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 14077, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22338, + "src": "19807:3:23", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 14080, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "19807:10:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 14081, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "19807:19:23", + "typeDescriptions": { + "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 14083, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19807:34:23", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 14084, + "nodeType": "ExpressionStatement", + "src": "19807:34:23" + } + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 14094, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22338, + "src": "19970:3:23", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 14095, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "19970:10:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 14096, + "name": "reserveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14029, + "src": "19982:12:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + { + "argumentTypes": null, + "id": 14097, + "name": "reserveAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14042, + "src": "19996:13:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 14098, + "name": "newReserveBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14061, + "src": "20011:17:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 14099, + "name": "newPoolTokenSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14011, + "src": "20030:18:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 14093, + "name": "LiquidityRemoved", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6177, + "src": "19953:16:23", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256,uint256,uint256)" + } + }, + "id": 14100, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19953:96:23", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 14101, + "nodeType": "EmitStatement", + "src": "19948:101:23" + }, + { + "assignments": [ + 14103 + ], + "declarations": [ + { + "constant": false, + "id": 14103, + "name": "reserveWeight", + "nodeType": "VariableDeclaration", + "scope": 14119, + "src": "20138:20:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 14102, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "20138:6:23", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 14108, + "initialValue": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 14104, + "name": "reserves", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2520, + "src": "20161:8:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Reserve_$2506_storage_$", + "typeString": "mapping(address => struct ConverterBase.Reserve storage ref)" + } + }, + "id": 14106, + "indexExpression": { + "argumentTypes": null, + "id": 14105, + "name": "reserveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14029, + "src": "20170:12:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "20161:22:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Reserve_$2506_storage", + "typeString": "struct ConverterBase.Reserve storage ref" + } + }, + "id": 14107, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "weight", + "nodeType": "MemberAccess", + "referencedDeclaration": 2499, + "src": "20161:29:23", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "20138:52:23" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 14110, + "name": "newPoolTokenSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14011, + "src": "20232:18:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 14111, + "name": "reserveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14029, + "src": "20252:12:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + { + "argumentTypes": null, + "id": 14112, + "name": "newReserveBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14061, + "src": "20266:17:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 14113, + "name": "reserveWeight", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14103, + "src": "20285:13:23", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + ], + "id": 14109, + "name": "dispatchPoolTokenRateEvent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14408, + "src": "20205:26:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_contract$_IERC20Token_$20240_$_t_uint256_$_t_uint32_$returns$__$", + "typeString": "function (uint256,contract IERC20Token,uint256,uint32)" + } + }, + "id": 14114, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20205:94:23", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 14115, + "nodeType": "ExpressionStatement", + "src": "20205:94:23" + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 14024, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 14021, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14018, + "src": "19141:1:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 14022, + "name": "_reserveTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13989, + "src": "19145:14:23", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", + "typeString": "contract IERC20Token[] memory" + } + }, + "id": 14023, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "19145:21:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19141:25:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 14117, + "initializationExpression": { + "assignments": [ + 14018 + ], + "declarations": [ + { + "constant": false, + "id": 14018, + "name": "i", + "nodeType": "VariableDeclaration", + "scope": 14119, + "src": "19126:9:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14017, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "19126:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 14020, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 14019, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19138:1:23", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "19126:13:23" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 14026, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "19168:3:23", + "subExpression": { + "argumentTypes": null, + "id": 14025, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14018, + "src": "19168:1:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 14027, + "nodeType": "ExpressionStatement", + "src": "19168:3:23" + }, + "nodeType": "ForStatement", + "src": "19121:1190:23" + } + ] + }, + "documentation": "@dev removes liquidity (reserve) from the pool\r\n\n * @param _reserveTokens address of each reserve token\r\n@param _reserveMinReturnAmounts minimum return-amount of each reserve token\r\n@param _totalSupply token total supply\r\n@param _amount token amount\r", + "id": 14119, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "removeLiquidityFromPool", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 13997, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13989, + "name": "_reserveTokens", + "nodeType": "VariableDeclaration", + "scope": 14119, + "src": "18779:35:23", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", + "typeString": "contract IERC20Token[]" + }, + "typeName": { + "baseType": { + "contractScope": null, + "id": 13987, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "18779:11:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "id": 13988, + "length": null, + "nodeType": "ArrayTypeName", + "src": "18779:13:23", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_storage_ptr", + "typeString": "contract IERC20Token[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 13992, + "name": "_reserveMinReturnAmounts", + "nodeType": "VariableDeclaration", + "scope": 14119, + "src": "18816:41:23", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 13990, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "18816:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13991, + "length": null, + "nodeType": "ArrayTypeName", + "src": "18816:9:23", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 13994, + "name": "_totalSupply", + "nodeType": "VariableDeclaration", + "scope": 14119, + "src": "18859:20:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13993, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "18859:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 13996, + "name": "_amount", + "nodeType": "VariableDeclaration", + "scope": 14119, + "src": "18881:15:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13995, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "18881:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "18778:119:23" + }, + "payable": false, + "returnParameters": { + "id": 13998, + "nodeType": "ParameterList", + "parameters": [], + "src": "18920:0:23" + }, + "scope": 14409, + "src": "18746:1572:23", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "private" + }, + { + "body": { + "id": 14194, + "nodeType": "Block", + "src": "20499:439:23", + "statements": [ + { + "assignments": [ + 14135 + ], + "declarations": [ + { + "constant": false, + "id": 14135, + "name": "minIndex", + "nodeType": "VariableDeclaration", + "scope": 14195, + "src": "20510:16:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14134, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "20510:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 14137, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 14136, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20529:1:23", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "20510:20:23" + }, + { + "body": { + "id": 14177, + "nodeType": "Block", + "src": "20593:197:23", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 14171, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 14153, + "name": "reserves", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2520, + "src": "20635:8:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Reserve_$2506_storage_$", + "typeString": "mapping(address => struct ConverterBase.Reserve storage ref)" + } + }, + "id": 14157, + "indexExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 14154, + "name": "_reserveTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14126, + "src": "20644:14:23", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", + "typeString": "contract IERC20Token[] memory" + } + }, + "id": 14156, + "indexExpression": { + "argumentTypes": null, + "id": 14155, + "name": "minIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14135, + "src": "20659:8:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "20644:24:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "20635:34:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Reserve_$2506_storage", + "typeString": "struct ConverterBase.Reserve storage ref" + } + }, + "id": 14158, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "balance", + "nodeType": "MemberAccess", + "referencedDeclaration": 2497, + "src": "20635:42:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 14149, + "name": "_reserveAmounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14129, + "src": "20612:15:23", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 14151, + "indexExpression": { + "argumentTypes": null, + "id": 14150, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14139, + "src": "20628:1:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "20612:18:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 14152, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 21791, + "src": "20612:22:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 14159, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20612:66:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 14164, + "name": "reserves", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2520, + "src": "20711:8:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Reserve_$2506_storage_$", + "typeString": "mapping(address => struct ConverterBase.Reserve storage ref)" + } + }, + "id": 14168, + "indexExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 14165, + "name": "_reserveTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14126, + "src": "20720:14:23", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", + "typeString": "contract IERC20Token[] memory" + } + }, + "id": 14167, + "indexExpression": { + "argumentTypes": null, + "id": 14166, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14139, + "src": "20735:1:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "20720:17:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "20711:27:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Reserve_$2506_storage", + "typeString": "struct ConverterBase.Reserve storage ref" + } + }, + "id": 14169, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "balance", + "nodeType": "MemberAccess", + "referencedDeclaration": 2497, + "src": "20711:35:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 14160, + "name": "_reserveAmounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14129, + "src": "20681:15:23", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 14162, + "indexExpression": { + "argumentTypes": null, + "id": 14161, + "name": "minIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14135, + "src": "20697:8:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "20681:25:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 14163, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 21791, + "src": "20681:29:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 14170, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20681:66:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "20612:135:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 14176, + "nodeType": "IfStatement", + "src": "20608:170:23", + "trueBody": { + "expression": { + "argumentTypes": null, + "id": 14174, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 14172, + "name": "minIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14135, + "src": "20766:8:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 14173, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14139, + "src": "20777:1:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "20766:12:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 14175, + "nodeType": "ExpressionStatement", + "src": "20766:12:23" + } + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 14145, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 14142, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14139, + "src": "20561:1:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 14143, + "name": "_reserveTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14126, + "src": "20565:14:23", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", + "typeString": "contract IERC20Token[] memory" + } + }, + "id": 14144, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "20565:21:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "20561:25:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 14178, + "initializationExpression": { + "assignments": [ + 14139 + ], + "declarations": [ + { + "constant": false, + "id": 14139, + "name": "i", + "nodeType": "VariableDeclaration", + "scope": 14195, + "src": "20546:9:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14138, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "20546:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 14141, + "initialValue": { + "argumentTypes": null, + "hexValue": "31", + "id": 14140, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20558:1:23", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "nodeType": "VariableDeclarationStatement", + "src": "20546:13:23" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 14147, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "20588:3:23", + "subExpression": { + "argumentTypes": null, + "id": 14146, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14139, + "src": "20588:1:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 14148, + "nodeType": "ExpressionStatement", + "src": "20588:3:23" + }, + "nodeType": "ForStatement", + "src": "20541:249:23" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 14181, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14123, + "src": "20832:12:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 14182, + "name": "reserves", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2520, + "src": "20846:8:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Reserve_$2506_storage_$", + "typeString": "mapping(address => struct ConverterBase.Reserve storage ref)" + } + }, + "id": 14186, + "indexExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 14183, + "name": "_reserveTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14126, + "src": "20855:14:23", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", + "typeString": "contract IERC20Token[] memory" + } + }, + "id": 14185, + "indexExpression": { + "argumentTypes": null, + "id": 14184, + "name": "minIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14135, + "src": "20870:8:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "20855:24:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "20846:34:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Reserve_$2506_storage", + "typeString": "struct ConverterBase.Reserve storage ref" + } + }, + "id": 14187, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "balance", + "nodeType": "MemberAccess", + "referencedDeclaration": 2497, + "src": "20846:42:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 14188, + "name": "reserveRatio", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2523, + "src": "20890:12:23", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 14189, + "name": "_reserveAmounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14129, + "src": "20904:15:23", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 14191, + "indexExpression": { + "argumentTypes": null, + "id": 14190, + "name": "minIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14135, + "src": "20920:8:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "20904:25:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 14179, + "name": "formula", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14121, + "src": "20807:7:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISovrynSwapFormula_$12240", + "typeString": "contract ISovrynSwapFormula" + } + }, + "id": 14180, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "fundSupplyAmount", + "nodeType": "MemberAccess", + "referencedDeclaration": 12209, + "src": "20807:24:23", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_uint256_$_t_uint256_$_t_uint32_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint32,uint256) view external returns (uint256)" + } + }, + "id": 14192, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20807:123:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 14133, + "id": 14193, + "nodeType": "Return", + "src": "20800:130:23" + } + ] + }, + "documentation": null, + "id": 14195, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getMinShare", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 14130, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 14121, + "name": "formula", + "nodeType": "VariableDeclaration", + "scope": 14195, + "src": "20347:26:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISovrynSwapFormula_$12240", + "typeString": "contract ISovrynSwapFormula" + }, + "typeName": { + "contractScope": null, + "id": 14120, + "name": "ISovrynSwapFormula", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 12240, + "src": "20347:18:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISovrynSwapFormula_$12240", + "typeString": "contract ISovrynSwapFormula" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 14123, + "name": "_totalSupply", + "nodeType": "VariableDeclaration", + "scope": 14195, + "src": "20375:20:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14122, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "20375:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 14126, + "name": "_reserveTokens", + "nodeType": "VariableDeclaration", + "scope": 14195, + "src": "20397:35:23", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", + "typeString": "contract IERC20Token[]" + }, + "typeName": { + "baseType": { + "contractScope": null, + "id": 14124, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "20397:11:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "id": 14125, + "length": null, + "nodeType": "ArrayTypeName", + "src": "20397:13:23", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_storage_ptr", + "typeString": "contract IERC20Token[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 14129, + "name": "_reserveAmounts", + "nodeType": "VariableDeclaration", + "scope": 14195, + "src": "20434:32:23", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 14127, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "20434:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 14128, + "length": null, + "nodeType": "ArrayTypeName", + "src": "20434:9:23", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "20346:121:23" + }, + "payable": false, + "returnParameters": { + "id": 14133, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 14132, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 14195, + "src": "20490:7:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14131, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "20490:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "20489:9:23" + }, + "scope": 14409, + "src": "20326:612:23", + "stateMutability": "view", + "superFunction": null, + "visibility": "private" + }, + { + "body": { + "id": 14223, + "nodeType": "Block", + "src": "21219:115:23", + "statements": [ + { + "assignments": [ + 14203 + ], + "declarations": [ + { + "constant": false, + "id": 14203, + "name": "y", + "nodeType": "VariableDeclaration", + "scope": 14224, + "src": "21230:9:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14202, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "21230:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 14205, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 14204, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "21242:1:23", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "21230:13:23" + }, + { + "body": { + "expression": { + "argumentTypes": null, + "id": 14218, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "21304:3:23", + "subExpression": { + "argumentTypes": null, + "id": 14217, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14203, + "src": "21304:1:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 14219, + "nodeType": "ExpressionStatement", + "src": "21304:3:23" + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 14212, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 14210, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14207, + "src": "21275:1:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 14211, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "21279:1:23", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "21275:5:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 14220, + "initializationExpression": { + "assignments": [ + 14207 + ], + "declarations": [ + { + "constant": false, + "id": 14207, + "name": "x", + "nodeType": "VariableDeclaration", + "scope": 14224, + "src": "21259:9:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14206, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "21259:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 14209, + "initialValue": { + "argumentTypes": null, + "id": 14208, + "name": "_x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14197, + "src": "21271:2:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "21259:14:23" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 14215, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 14213, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14207, + "src": "21282:1:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "/=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "3130", + "id": 14214, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "21287:2:23", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "src": "21282:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 14216, + "nodeType": "ExpressionStatement", + "src": "21282:7:23" + }, + "nodeType": "ForStatement", + "src": "21254:53:23" + }, + { + "expression": { + "argumentTypes": null, + "id": 14221, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14203, + "src": "21325:1:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 14201, + "id": 14222, + "nodeType": "Return", + "src": "21318:8:23" + } + ] + }, + "documentation": "@dev calculates the number of decimal digits in a given value\r\n\n * @param _x value (assumed positive)\r\n@return the number of decimal digits in the given value\r", + "id": 14224, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "decimalLength", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 14198, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 14197, + "name": "_x", + "nodeType": "VariableDeclaration", + "scope": 14224, + "src": "21177:10:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14196, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "21177:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "21176:12:23" + }, + "payable": false, + "returnParameters": { + "id": 14201, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 14200, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 14224, + "src": "21210:7:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14199, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "21210:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "21209:9:23" + }, + "scope": 14409, + "src": "21154:180:23", + "stateMutability": "pure", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 14242, + "nodeType": "Block", + "src": "21646:44:23", + "statements": [ + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 14240, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 14237, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 14233, + "name": "_n", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14226, + "src": "21665:2:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 14236, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 14234, + "name": "_d", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14228, + "src": "21670:2:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 14235, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "21675:1:23", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "21670:6:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "21665:11:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 14238, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "21664:13:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 14239, + "name": "_d", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14228, + "src": "21680:2:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "21664:18:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 14232, + "id": 14241, + "nodeType": "Return", + "src": "21657:25:23" + } + ] + }, + "documentation": "@dev calculates the nearest integer to a given quotient\r\n\n * @param _n quotient numerator\r\n@param _d quotient denominator\r\n@return the nearest integer to the given quotient\r", + "id": 14243, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "roundDiv", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 14229, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 14226, + "name": "_n", + "nodeType": "VariableDeclaration", + "scope": 14243, + "src": "21592:10:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14225, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "21592:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 14228, + "name": "_d", + "nodeType": "VariableDeclaration", + "scope": 14243, + "src": "21604:10:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14227, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "21604:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "21591:24:23" + }, + "payable": false, + "returnParameters": { + "id": 14232, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 14231, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 14243, + "src": "21637:7:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14230, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "21637:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "21636:9:23" + }, + "scope": 14409, + "src": "21574:116:23", + "stateMutability": "pure", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 14291, + "nodeType": "Block", + "src": "22046:253:23", + "statements": [ + { + "assignments": [ + 14252 + ], + "declarations": [ + { + "constant": false, + "id": 14252, + "name": "numOfDigits", + "nodeType": "VariableDeclaration", + "scope": 14292, + "src": "22057:19:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14251, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "22057:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 14254, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 14253, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22079:1:23", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "22057:23:23" + }, + { + "assignments": [ + 14256 + ], + "declarations": [ + { + "constant": false, + "id": 14256, + "name": "length", + "nodeType": "VariableDeclaration", + "scope": 14292, + "src": "22091:14:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14255, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "22091:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 14259, + "initialValue": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 14257, + "name": "_values", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14246, + "src": "22108:7:23", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 14258, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "22108:14:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "22091:31:23" + }, + { + "body": { + "expression": { + "argumentTypes": null, + "id": 14276, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 14270, + "name": "numOfDigits", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14252, + "src": "22183:11:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 14272, + "name": "_values", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14246, + "src": "22212:7:23", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 14274, + "indexExpression": { + "argumentTypes": null, + "id": 14273, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14261, + "src": "22220:1:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "22212:10:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 14271, + "name": "decimalLength", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14224, + "src": "22198:13:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 14275, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "22198:25:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "22183:40:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 14277, + "nodeType": "ExpressionStatement", + "src": "22183:40:23" + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 14266, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 14264, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14261, + "src": "22153:1:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 14265, + "name": "length", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14256, + "src": "22157:6:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "22153:10:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 14278, + "initializationExpression": { + "assignments": [ + 14261 + ], + "declarations": [ + { + "constant": false, + "id": 14261, + "name": "i", + "nodeType": "VariableDeclaration", + "scope": 14292, + "src": "22138:9:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14260, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "22138:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 14263, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 14262, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22150:1:23", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "22138:13:23" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 14268, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "22165:3:23", + "subExpression": { + "argumentTypes": null, + "id": 14267, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14261, + "src": "22165:1:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 14269, + "nodeType": "ExpressionStatement", + "src": "22165:3:23" + }, + "nodeType": "ForStatement", + "src": "22133:90:23" + }, + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 14289, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "3130", + "id": 14280, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22249:2:23", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + } + ], + "id": 14279, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "22241:7:23", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": "uint256" + }, + "id": 14281, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "22241:11:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 14287, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 14283, + "name": "numOfDigits", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14252, + "src": "22266:11:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 14284, + "name": "length", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14256, + "src": "22279:6:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 14282, + "name": "roundDiv", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14243, + "src": "22257:8:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 14285, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "22257:29:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 14286, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22289:1:23", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "22257:33:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 14288, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "22256:35:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "22241:50:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 14250, + "id": 14290, + "nodeType": "Return", + "src": "22234:57:23" + } + ] + }, + "documentation": "@dev calculates the average number of decimal digits in a given list of values\r\n\n * @param _values list of values (each of which assumed positive)\r\n@return the average number of decimal digits in the given list of values\r", + "id": 14292, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "geometricMean", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 14247, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 14246, + "name": "_values", + "nodeType": "VariableDeclaration", + "scope": 14292, + "src": "21990:24:23", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 14244, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "21990:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 14245, + "length": null, + "nodeType": "ArrayTypeName", + "src": "21990:9:23", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "21989:26:23" + }, + "payable": false, + "returnParameters": { + "id": 14250, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 14249, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 14292, + "src": "22037:7:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14248, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "22037:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "22036:9:23" + }, + "scope": 14409, + "src": "21967:332:23", + "stateMutability": "pure", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 14382, + "nodeType": "Block", + "src": "22690:1190:23", + "statements": [ + { + "assignments": [ + 14300 + ], + "declarations": [ + { + "constant": false, + "id": 14300, + "name": "poolTokenSupply", + "nodeType": "VariableDeclaration", + "scope": 14383, + "src": "22701:23:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14299, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "22701:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 14306, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 14302, + "name": "anchor", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2511 + ], + "referencedDeclaration": 2511, + "src": "22739:6:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + ], + "id": 14301, + "name": "ISmartToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20295, + "src": "22727:11:23", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ISmartToken_$20295_$", + "typeString": "type(contract ISmartToken)" + } + }, + "id": 14303, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "22727:19:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISmartToken_$20295", + "typeString": "contract ISmartToken" + } + }, + "id": 14304, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "totalSupply", + "nodeType": "MemberAccess", + "referencedDeclaration": 20182, + "src": "22727:31:23", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", + "typeString": "function () view external returns (uint256)" + } + }, + "id": 14305, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "22727:33:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "22701:59:23" + }, + { + "assignments": [ + 14308 + ], + "declarations": [ + { + "constant": false, + "id": 14308, + "name": "sourceReserveBalance", + "nodeType": "VariableDeclaration", + "scope": 14383, + "src": "22771:28:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14307, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "22771:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 14312, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 14310, + "name": "_sourceToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14294, + "src": "22817:12:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + ], + "id": 14309, + "name": "reserveBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3106 + ], + "referencedDeclaration": 3106, + "src": "22802:14:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_contract$_IERC20Token_$20240_$returns$_t_uint256_$", + "typeString": "function (contract IERC20Token) view returns (uint256)" + } + }, + "id": 14311, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "22802:28:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "22771:59:23" + }, + { + "assignments": [ + 14314 + ], + "declarations": [ + { + "constant": false, + "id": 14314, + "name": "targetReserveBalance", + "nodeType": "VariableDeclaration", + "scope": 14383, + "src": "22841:28:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14313, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "22841:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 14318, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 14316, + "name": "_targetToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14296, + "src": "22887:12:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + ], + "id": 14315, + "name": "reserveBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3106 + ], + "referencedDeclaration": 3106, + "src": "22872:14:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_contract$_IERC20Token_$20240_$returns$_t_uint256_$", + "typeString": "function (contract IERC20Token) view returns (uint256)" + } + }, + "id": 14317, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "22872:28:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "22841:59:23" + }, + { + "assignments": [ + 14320 + ], + "declarations": [ + { + "constant": false, + "id": 14320, + "name": "sourceReserveWeight", + "nodeType": "VariableDeclaration", + "scope": 14383, + "src": "22911:26:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 14319, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "22911:6:23", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 14325, + "initialValue": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 14321, + "name": "reserves", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2520, + "src": "22940:8:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Reserve_$2506_storage_$", + "typeString": "mapping(address => struct ConverterBase.Reserve storage ref)" + } + }, + "id": 14323, + "indexExpression": { + "argumentTypes": null, + "id": 14322, + "name": "_sourceToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14294, + "src": "22949:12:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "22940:22:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Reserve_$2506_storage", + "typeString": "struct ConverterBase.Reserve storage ref" + } + }, + "id": 14324, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "weight", + "nodeType": "MemberAccess", + "referencedDeclaration": 2499, + "src": "22940:29:23", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "22911:58:23" + }, + { + "assignments": [ + 14327 + ], + "declarations": [ + { + "constant": false, + "id": 14327, + "name": "targetReserveWeight", + "nodeType": "VariableDeclaration", + "scope": 14383, + "src": "22980:26:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 14326, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "22980:6:23", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 14332, + "initialValue": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 14328, + "name": "reserves", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2520, + "src": "23009:8:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Reserve_$2506_storage_$", + "typeString": "mapping(address => struct ConverterBase.Reserve storage ref)" + } + }, + "id": 14330, + "indexExpression": { + "argumentTypes": null, + "id": 14329, + "name": "_targetToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14296, + "src": "23018:12:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "23009:22:23", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Reserve_$2506_storage", + "typeString": "struct ConverterBase.Reserve storage ref" + } + }, + "id": 14331, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "weight", + "nodeType": "MemberAccess", + "referencedDeclaration": 2499, + "src": "23009:29:23", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "22980:58:23" + }, + { + "assignments": [ + 14334 + ], + "declarations": [ + { + "constant": false, + "id": 14334, + "name": "rateN", + "nodeType": "VariableDeclaration", + "scope": 14383, + "src": "23096:13:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14333, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "23096:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 14339, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 14337, + "name": "sourceReserveWeight", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14320, + "src": "23137:19:23", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + ], + "expression": { + "argumentTypes": null, + "id": 14335, + "name": "targetReserveBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14314, + "src": "23112:20:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 14336, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 21791, + "src": "23112:24:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 14338, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "23112:45:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "23096:61:23" + }, + { + "assignments": [ + 14341 + ], + "declarations": [ + { + "constant": false, + "id": 14341, + "name": "rateD", + "nodeType": "VariableDeclaration", + "scope": 14383, + "src": "23168:13:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14340, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "23168:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 14346, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 14344, + "name": "targetReserveWeight", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14327, + "src": "23209:19:23", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + ], + "expression": { + "argumentTypes": null, + "id": 14342, + "name": "sourceReserveBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14308, + "src": "23184:20:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 14343, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 21791, + "src": "23184:24:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 14345, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "23184:45:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "23168:61:23" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 14348, + "name": "_sourceToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14294, + "src": "23261:12:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + { + "argumentTypes": null, + "id": 14349, + "name": "_targetToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14296, + "src": "23275:12:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + { + "argumentTypes": null, + "id": 14350, + "name": "rateN", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14334, + "src": "23289:5:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 14351, + "name": "rateD", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14341, + "src": "23296:5:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 14347, + "name": "TokenRateUpdate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2564, + "src": "23245:15:23", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256,uint256)" + } + }, + "id": 14352, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "23245:57:23", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 14353, + "nodeType": "EmitStatement", + "src": "23240:62:23" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 14355, + "name": "poolTokenSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14300, + "src": "23410:15:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 14356, + "name": "_sourceToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14294, + "src": "23427:12:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + { + "argumentTypes": null, + "id": 14357, + "name": "sourceReserveBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14308, + "src": "23441:20:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 14358, + "name": "sourceReserveWeight", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14320, + "src": "23463:19:23", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + ], + "id": 14354, + "name": "dispatchPoolTokenRateEvent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14408, + "src": "23383:26:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_contract$_IERC20Token_$20240_$_t_uint256_$_t_uint32_$returns$__$", + "typeString": "function (uint256,contract IERC20Token,uint256,uint32)" + } + }, + "id": 14359, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "23383:100:23", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 14360, + "nodeType": "ExpressionStatement", + "src": "23383:100:23" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 14362, + "name": "poolTokenSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14300, + "src": "23521:15:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 14363, + "name": "_targetToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14296, + "src": "23538:12:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + { + "argumentTypes": null, + "id": 14364, + "name": "targetReserveBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14314, + "src": "23552:20:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 14365, + "name": "targetReserveWeight", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14327, + "src": "23574:19:23", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + ], + "id": 14361, + "name": "dispatchPoolTokenRateEvent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14408, + "src": "23494:26:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_contract$_IERC20Token_$20240_$_t_uint256_$_t_uint32_$returns$__$", + "typeString": "function (uint256,contract IERC20Token,uint256,uint32)" + } + }, + "id": 14366, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "23494:100:23", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 14367, + "nodeType": "ExpressionStatement", + "src": "23494:100:23" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 14369, + "name": "_sourceToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14294, + "src": "23694:12:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + { + "argumentTypes": null, + "id": 14370, + "name": "poolTokenSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14300, + "src": "23708:15:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 14371, + "name": "sourceReserveBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14308, + "src": "23725:20:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 14372, + "name": "sourceReserveWeight", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14320, + "src": "23747:19:23", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + ], + "id": 14368, + "name": "PriceDataUpdate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12941, + "src": "23678:15:23", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_uint32_$returns$__$", + "typeString": "function (address,uint256,uint256,uint32)" + } + }, + "id": 14373, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "23678:89:23", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 14374, + "nodeType": "EmitStatement", + "src": "23673:94:23" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 14376, + "name": "_targetToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14296, + "src": "23799:12:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + { + "argumentTypes": null, + "id": 14377, + "name": "poolTokenSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14300, + "src": "23813:15:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 14378, + "name": "targetReserveBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14314, + "src": "23830:20:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 14379, + "name": "targetReserveWeight", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14327, + "src": "23852:19:23", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + ], + "id": 14375, + "name": "PriceDataUpdate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12941, + "src": "23783:15:23", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_uint32_$returns$__$", + "typeString": "function (address,uint256,uint256,uint32)" + } + }, + "id": 14380, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "23783:89:23", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 14381, + "nodeType": "EmitStatement", + "src": "23778:94:23" + } + ] + }, + "documentation": "@dev dispatches rate events for both reserves / pool tokens\r\nonly used to circumvent the `stack too deep` compiler error\r\n\n * @param _sourceToken address of the source reserve token\r\n@param _targetToken address of the target reserve token\r", + "id": 14383, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "dispatchRateEvents", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 14297, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 14294, + "name": "_sourceToken", + "nodeType": "VariableDeclaration", + "scope": 14383, + "src": "22630:24:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + "typeName": { + "contractScope": null, + "id": 14293, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "22630:11:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 14296, + "name": "_targetToken", + "nodeType": "VariableDeclaration", + "scope": 14383, + "src": "22656:24:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + "typeName": { + "contractScope": null, + "id": 14295, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "22656:11:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "22629:52:23" + }, + "payable": false, + "returnParameters": { + "id": 14298, + "nodeType": "ParameterList", + "parameters": [], + "src": "22690:0:23" + }, + "scope": 14409, + "src": "22602:1278:23", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "private" + }, + { + "body": { + "id": 14407, + "nodeType": "Block", + "src": "24410:140:23", + "statements": [ + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 14395, + "name": "anchor", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2511 + ], + "referencedDeclaration": 2511, + "src": "24442:6:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + }, + { + "argumentTypes": null, + "id": 14396, + "name": "_reserveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14387, + "src": "24450:13:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 14399, + "name": "WEIGHT_RESOLUTION", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2489, + "src": "24485:17:23", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + ], + "expression": { + "argumentTypes": null, + "id": 14397, + "name": "_reserveBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14389, + "src": "24465:15:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 14398, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 21791, + "src": "24465:19:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 14400, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "24465:38:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 14403, + "name": "_reserveWeight", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14391, + "src": "24526:14:23", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + ], + "expression": { + "argumentTypes": null, + "id": 14401, + "name": "_poolTokenSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14385, + "src": "24505:16:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 14402, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 21791, + "src": "24505:20:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 14404, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "24505:36:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + }, + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 14394, + "name": "TokenRateUpdate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2564, + "src": "24426:15:23", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256,uint256)" + } + }, + "id": 14405, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "24426:116:23", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 14406, + "nodeType": "EmitStatement", + "src": "24421:121:23" + } + ] + }, + "documentation": "@dev dispatches the `TokenRateUpdate` for the pool token\r\nonly used to circumvent the `stack too deep` compiler error\r\n\n * @param _poolTokenSupply total pool token supply\r\n@param _reserveToken address of the reserve token\r\n@param _reserveBalance reserve balance\r\n@param _reserveWeight reserve weight\r", + "id": 14408, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "dispatchPoolTokenRateEvent", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 14392, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 14385, + "name": "_poolTokenSupply", + "nodeType": "VariableDeclaration", + "scope": 14408, + "src": "24301:24:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14384, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "24301:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 14387, + "name": "_reserveToken", + "nodeType": "VariableDeclaration", + "scope": 14408, + "src": "24327:25:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + "typeName": { + "contractScope": null, + "id": 14386, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "24327:11:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 14389, + "name": "_reserveBalance", + "nodeType": "VariableDeclaration", + "scope": 14408, + "src": "24354:23:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14388, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "24354:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 14391, + "name": "_reserveWeight", + "nodeType": "VariableDeclaration", + "scope": 14408, + "src": "24379:21:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 14390, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "24379:6:23", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "24300:101:23" + }, + "payable": false, + "returnParameters": { + "id": 14393, + "nodeType": "ParameterList", + "parameters": [], + "src": "24410:0:23" + }, + "scope": 14409, + "src": "24265:285:23", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "private" + } + ], + "scope": 14410, + "src": "452:24101:23" + } + ], + "src": "0:24555:23" + }, + "id": 23 + }, + "solidity/contracts/converter/types/liquidity-pool-v1/LiquidityPoolV1ConverterFactory.sol": { + "ast": { + "absolutePath": "solidity/contracts/converter/types/liquidity-pool-v1/LiquidityPoolV1ConverterFactory.sol", + "exportedSymbols": { + "LiquidityPoolV1ConverterFactory": [ + 14458 + ] + }, + "id": 14459, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 14411, + "literals": [ + "solidity", + "0.4", + ".26" + ], + "nodeType": "PragmaDirective", + "src": "0:23:24" + }, + { + "absolutePath": "solidity/contracts/converter/types/liquidity-pool-v1/LiquidityPoolV1Converter.sol", + "file": "./LiquidityPoolV1Converter.sol", + "id": 14412, + "nodeType": "ImportDirective", + "scope": 14459, + "sourceUnit": 14410, + "src": "25:40:24", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "solidity/contracts/converter/interfaces/IConverter.sol", + "file": "../../interfaces/IConverter.sol", + "id": 14413, + "nodeType": "ImportDirective", + "scope": 14459, + "sourceUnit": 11818, + "src": "67:41:24", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "solidity/contracts/converter/interfaces/ITypedConverterFactory.sol", + "file": "../../interfaces/ITypedConverterFactory.sol", + "id": 14414, + "nodeType": "ImportDirective", + "scope": 14459, + "sourceUnit": 12291, + "src": "110:53:24", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "solidity/contracts/token/interfaces/ISmartToken.sol", + "file": "../../../token/interfaces/ISmartToken.sol", + "id": 14415, + "nodeType": "ImportDirective", + "scope": 14459, + "sourceUnit": 20296, + "src": "165:51:24", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 14416, + "name": "ITypedConverterFactory", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 12290, + "src": "310:22:24", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ITypedConverterFactory_$12290", + "typeString": "contract ITypedConverterFactory" + } + }, + "id": 14417, + "nodeType": "InheritanceSpecifier", + "src": "310:22:24" + } + ], + "contractDependencies": [ + 12290, + 14409 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 14458, + "linearizedBaseContracts": [ + 14458, + 12290 + ], + "name": "LiquidityPoolV1ConverterFactory", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 14424, + "nodeType": "Block", + "src": "524:27:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "hexValue": "31", + "id": 14422, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "542:1:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "functionReturnParameters": 14421, + "id": 14423, + "nodeType": "Return", + "src": "535:8:24" + } + ] + }, + "documentation": "@dev returns the converter type the factory is associated with\r\n\n * @return converter type\r", + "id": 14425, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "converterType", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 14418, + "nodeType": "ParameterList", + "parameters": [], + "src": "492:2:24" + }, + "payable": false, + "returnParameters": { + "id": 14421, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 14420, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 14425, + "src": "516:6:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 14419, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "516:6:24", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "515:8:24" + }, + "scope": 14458, + "src": "470:81:24", + "stateMutability": "pure", + "superFunction": 12278, + "visibility": "public" + }, + { + "body": { + "id": 14456, + "nodeType": "Block", + "src": "1096:199:24", + "statements": [ + { + "assignments": [ + 14437 + ], + "declarations": [ + { + "constant": false, + "id": 14437, + "name": "converter", + "nodeType": "VariableDeclaration", + "scope": 14457, + "src": "1107:20:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + }, + "typeName": { + "contractScope": null, + "id": 14436, + "name": "IConverter", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11817, + "src": "1107:10:24", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 14446, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 14441, + "name": "_anchor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14427, + "src": "1171:7:24", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + ], + "id": 14440, + "name": "ISmartToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20295, + "src": "1159:11:24", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ISmartToken_$20295_$", + "typeString": "type(contract ISmartToken)" + } + }, + "id": 14442, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1159:20:24", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISmartToken_$20295", + "typeString": "contract ISmartToken" + } + }, + { + "argumentTypes": null, + "id": 14443, + "name": "_registry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14429, + "src": "1181:9:24", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IContractRegistry_$22220", + "typeString": "contract IContractRegistry" + } + }, + { + "argumentTypes": null, + "id": 14444, + "name": "_maxConversionFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14431, + "src": "1192:17:24", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_ISmartToken_$20295", + "typeString": "contract ISmartToken" + }, + { + "typeIdentifier": "t_contract$_IContractRegistry_$22220", + "typeString": "contract IContractRegistry" + }, + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + ], + "id": 14439, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "1130:28:24", + "typeDescriptions": { + "typeIdentifier": "t_function_creation_nonpayable$_t_contract$_ISmartToken_$20295_$_t_contract$_IContractRegistry_$22220_$_t_uint32_$returns$_t_contract$_LiquidityPoolV1Converter_$14409_$", + "typeString": "function (contract ISmartToken,contract IContractRegistry,uint32) returns (contract LiquidityPoolV1Converter)" + }, + "typeName": { + "contractScope": null, + "id": 14438, + "name": "LiquidityPoolV1Converter", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 14409, + "src": "1134:24:24", + "typeDescriptions": { + "typeIdentifier": "t_contract$_LiquidityPoolV1Converter_$14409", + "typeString": "contract LiquidityPoolV1Converter" + } + } + }, + "id": 14445, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1130:80:24", + "typeDescriptions": { + "typeIdentifier": "t_contract$_LiquidityPoolV1Converter_$14409", + "typeString": "contract LiquidityPoolV1Converter" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1107:103:24" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 14450, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22338, + "src": "1249:3:24", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 14451, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1249:10:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 14447, + "name": "converter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14437, + "src": "1221:9:24", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + "id": 14449, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transferOwnership", + "nodeType": "MemberAccess", + "referencedDeclaration": 22243, + "src": "1221:27:24", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$", + "typeString": "function (address) external" + } + }, + "id": 14452, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1221:39:24", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 14453, + "nodeType": "ExpressionStatement", + "src": "1221:39:24" + }, + { + "expression": { + "argumentTypes": null, + "id": 14454, + "name": "converter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14437, + "src": "1278:9:24", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + "functionReturnParameters": 14435, + "id": 14455, + "nodeType": "Return", + "src": "1271:16:24" + } + ] + }, + "documentation": "@dev creates a new converter with the given arguments and transfers\r\nthe ownership to the caller\r\n\n * @param _anchor anchor governed by the converter\r\n@param _registry address of a contract registry contract\r\n@param _maxConversionFee maximum conversion fee, represented in ppm\r\n\n * @return a new converter\r", + "id": 14457, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "createConverter", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 14432, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 14427, + "name": "_anchor", + "nodeType": "VariableDeclaration", + "scope": 14457, + "src": "987:24:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + }, + "typeName": { + "contractScope": null, + "id": 14426, + "name": "IConverterAnchor", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11826, + "src": "987:16:24", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 14429, + "name": "_registry", + "nodeType": "VariableDeclaration", + "scope": 14457, + "src": "1013:27:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IContractRegistry_$22220", + "typeString": "contract IContractRegistry" + }, + "typeName": { + "contractScope": null, + "id": 14428, + "name": "IContractRegistry", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 22220, + "src": "1013:17:24", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IContractRegistry_$22220", + "typeString": "contract IContractRegistry" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 14431, + "name": "_maxConversionFee", + "nodeType": "VariableDeclaration", + "scope": 14457, + "src": "1042:24:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 14430, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "1042:6:24", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "986:81:24" + }, + "payable": false, + "returnParameters": { + "id": 14435, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 14434, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 14457, + "src": "1084:10:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + }, + "typeName": { + "contractScope": null, + "id": 14433, + "name": "IConverter", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11817, + "src": "1084:10:24", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1083:12:24" + }, + "scope": 14458, + "src": "962:333:24", + "stateMutability": "nonpayable", + "superFunction": 12289, + "visibility": "public" + } + ], + "scope": 14459, + "src": "266:1032:24" + } + ], + "src": "0:1300:24" + }, + "id": 24 + }, + "solidity/contracts/converter/types/liquidity-pool-v2/LiquidityPoolV2Converter.sol": { + "ast": { + "absolutePath": "solidity/contracts/converter/types/liquidity-pool-v2/LiquidityPoolV2Converter.sol", + "exportedSymbols": { + "LiquidityPoolV2Converter": [ + 16610 + ] + }, + "id": 16611, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 14460, + "literals": [ + "solidity", + "0.4", + ".26" + ], + "nodeType": "PragmaDirective", + "src": "0:23:25" + }, + { + "absolutePath": "solidity/contracts/converter/types/liquidity-pool-v2/PoolTokensContainer.sol", + "file": "./PoolTokensContainer.sol", + "id": 14461, + "nodeType": "ImportDirective", + "scope": 16611, + "sourceUnit": 16936, + "src": "25:35:25", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "solidity/contracts/converter/types/liquidity-pool-v2/LiquidityPoolV2ConverterCustomFactory.sol", + "file": "./LiquidityPoolV2ConverterCustomFactory.sol", + "id": 14462, + "nodeType": "ImportDirective", + "scope": 16611, + "sourceUnit": 16693, + "src": "62:53:25", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "solidity/contracts/converter/LiquidityPoolConverter.sol", + "file": "../../LiquidityPoolConverter.sol", + "id": 14463, + "nodeType": "ImportDirective", + "scope": 16611, + "sourceUnit": 6211, + "src": "117:42:25", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "solidity/contracts/converter/interfaces/IConverterFactory.sol", + "file": "../../interfaces/IConverterFactory.sol", + "id": 14464, + "nodeType": "ImportDirective", + "scope": 16611, + "sourceUnit": 11872, + "src": "161:48:25", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "solidity/contracts/utility/interfaces/IPriceOracle.sol", + "file": "../../../utility/interfaces/IPriceOracle.sol", + "id": 14465, + "nodeType": "ImportDirective", + "scope": 16611, + "sourceUnit": 22298, + "src": "211:54:25", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 14466, + "name": "LiquidityPoolConverter", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 6210, + "src": "688:22:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_LiquidityPoolConverter_$6210", + "typeString": "contract LiquidityPoolConverter" + } + }, + "id": 14467, + "nodeType": "InheritanceSpecifier", + "src": "688:22:25" + } + ], + "contractDependencies": [ + 3414, + 6210, + 11817, + 20932, + 21324, + 21710, + 21933, + 21976, + 22052, + 22247, + 22313 + ], + "contractKind": "contract", + "documentation": "@dev Liquidity Pool v2 Converter\r\n\n * The liquidity pool v2 converter is a specialized version of a converter that uses\r\nprice oracles to rebalance the reserve weights in such a way that the primary token\r\nbalance always strives to match the staked balance.\r\n\n * This type of liquidity pool always has 2 reserves and the reserve weights are dynamic.\r", + "fullyImplemented": true, + "id": 16610, + "linearizedBaseContracts": [ + 16610, + 6210, + 3414, + 21710, + 20932, + 21976, + 22052, + 21324, + 21933, + 22313, + 11817, + 22247 + ], + "name": "LiquidityPoolV2Converter", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "id": 14470, + "name": "AMPLIFICATION_FACTOR", + "nodeType": "VariableDeclaration", + "scope": 16610, + "src": "718:49:25", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 14468, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "718:5:25", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "3230", + "id": 14469, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "765:2:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_20_by_1", + "typeString": "int_const 20" + }, + "value": "20" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 14473, + "name": "MAX_DYNAMIC_FEE_FACTOR", + "nodeType": "VariableDeclaration", + "scope": 16610, + "src": "839:56:25", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 14471, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "839:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "313030303030", + "id": 14472, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "889:6:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_100000_by_1", + "typeString": "int_const 100000" + }, + "value": "100000" + }, + "visibility": "internal" + }, + { + "canonicalName": "LiquidityPoolV2Converter.Fraction", + "id": 14478, + "members": [ + { + "constant": false, + "id": 14475, + "name": "n", + "nodeType": "VariableDeclaration", + "scope": 14478, + "src": "999:9:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14474, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "999:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 14477, + "name": "d", + "nodeType": "VariableDeclaration", + "scope": 14478, + "src": "1033:9:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14476, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1033:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "name": "Fraction", + "nodeType": "StructDefinition", + "scope": 16610, + "src": "972:94:25", + "visibility": "public" + }, + { + "constant": false, + "id": 14480, + "name": "priceOracle", + "nodeType": "VariableDeclaration", + "scope": 16610, + "src": "1074:31:25", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IPriceOracle_$22297", + "typeString": "contract IPriceOracle" + }, + "typeName": { + "contractScope": null, + "id": 14479, + "name": "IPriceOracle", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 22297, + "src": "1074:12:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IPriceOracle_$22297", + "typeString": "contract IPriceOracle" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 14482, + "name": "primaryReserveToken", + "nodeType": "VariableDeclaration", + "scope": 16610, + "src": "1168:38:25", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + "typeName": { + "contractScope": null, + "id": 14481, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "1168:11:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 14484, + "name": "secondaryReserveToken", + "nodeType": "VariableDeclaration", + "scope": 16610, + "src": "1268:40:25", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + "typeName": { + "contractScope": null, + "id": 14483, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "1268:11:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 14488, + "name": "stakedBalances", + "nodeType": "VariableDeclaration", + "scope": 16610, + "src": "1378:51:25", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 14487, + "keyType": { + "id": 14485, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1387:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1378:28:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 14486, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1398:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "value": null, + "visibility": "private" + }, + { + "constant": false, + "id": 14492, + "name": "reservesToPoolTokens", + "nodeType": "VariableDeclaration", + "scope": 16610, + "src": "1504:61:25", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_contract$_ISmartToken_$20295_$", + "typeString": "mapping(address => contract ISmartToken)" + }, + "typeName": { + "id": 14491, + "keyType": { + "id": 14489, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1513:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1504:32:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_contract$_ISmartToken_$20295_$", + "typeString": "mapping(address => contract ISmartToken)" + }, + "valueType": { + "contractScope": null, + "id": 14490, + "name": "ISmartToken", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20295, + "src": "1524:11:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISmartToken_$20295", + "typeString": "contract ISmartToken" + } + } + }, + "value": null, + "visibility": "private" + }, + { + "constant": false, + "id": 14496, + "name": "poolTokensToReserves", + "nodeType": "VariableDeclaration", + "scope": 16610, + "src": "1612:61:25", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_contract$_IERC20Token_$20240_$", + "typeString": "mapping(address => contract IERC20Token)" + }, + "typeName": { + "id": 14495, + "keyType": { + "id": 14493, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1621:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1612:32:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_contract$_IERC20Token_$20240_$", + "typeString": "mapping(address => contract IERC20Token)" + }, + "valueType": { + "contractScope": null, + "id": 14494, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "1632:11:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + } + }, + "value": null, + "visibility": "private" + }, + { + "constant": true, + "id": 14499, + "name": "RATE_PROPAGATION_PERIOD", + "nodeType": "VariableDeclaration", + "scope": 16610, + "src": "1796:61:25", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14497, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1796:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "3130", + "id": 14498, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1847:10:25", + "subdenomination": "minutes", + "typeDescriptions": { + "typeIdentifier": "t_rational_600_by_1", + "typeString": "int_const 600" + }, + "value": "10" + }, + "visibility": "private" + }, + { + "constant": false, + "id": 14501, + "name": "referenceRate", + "nodeType": "VariableDeclaration", + "scope": 16610, + "src": "1866:29:25", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Fraction_$14478_storage", + "typeString": "struct LiquidityPoolV2Converter.Fraction" + }, + "typeName": { + "contractScope": null, + "id": 14500, + "name": "Fraction", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 14478, + "src": "1866:8:25", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Fraction_$14478_storage_ptr", + "typeString": "struct LiquidityPoolV2Converter.Fraction" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 14503, + "name": "referenceRateUpdateTime", + "nodeType": "VariableDeclaration", + "scope": 16610, + "src": "1999:38:25", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14502, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1999:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 14505, + "name": "lastConversionRate", + "nodeType": "VariableDeclaration", + "scope": 16610, + "src": "2112:34:25", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Fraction_$14478_storage", + "typeString": "struct LiquidityPoolV2Converter.Fraction" + }, + "typeName": { + "contractScope": null, + "id": 14504, + "name": "Fraction", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 14478, + "src": "2112:8:25", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Fraction_$14478_storage_ptr", + "typeString": "struct LiquidityPoolV2Converter.Fraction" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 14509, + "name": "maxStakedBalances", + "nodeType": "VariableDeclaration", + "scope": 16610, + "src": "2294:53:25", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 14508, + "keyType": { + "id": 14506, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2303:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "2294:28:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 14507, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2314:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 14512, + "name": "maxStakedBalanceEnabled", + "nodeType": "VariableDeclaration", + "scope": 16610, + "src": "2354:42:25", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 14510, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2354:4:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 14511, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2392:4:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "visibility": "public" + }, + { + "constant": false, + "id": 14515, + "name": "dynamicFeeFactor", + "nodeType": "VariableDeclaration", + "scope": 16610, + "src": "2405:39:25", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14513, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2405:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "3730303030", + "id": 14514, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2439:5:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_70000_by_1", + "typeString": "int_const 70000" + }, + "value": "70000" + }, + "visibility": "public" + }, + { + "anonymous": false, + "documentation": "@dev triggered when the dynamic fee factor is updated\r\n\n * @param _prevFactor previous factor percentage, represented in ppm\r\n@param _newFactor new factor percentage, represented in ppm\r", + "id": 14521, + "name": "DynamicFeeFactorUpdate", + "nodeType": "EventDefinition", + "parameters": { + "id": 14520, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 14517, + "indexed": false, + "name": "_prevFactor", + "nodeType": "VariableDeclaration", + "scope": 14521, + "src": "2780:19:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14516, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2780:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 14519, + "indexed": false, + "name": "_newFactor", + "nodeType": "VariableDeclaration", + "scope": 14521, + "src": "2801:18:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14518, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2801:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2779:41:25" + }, + "src": "2751:70:25" + }, + { + "body": { + "id": 14535, + "nodeType": "Block", + "src": "3381:8:25", + "statements": [] + }, + "documentation": "@dev initializes a new LiquidityPoolV2Converter instance\r\n\n * @param _poolTokensContainer pool tokens container governed by the converter\r\n@param _registry address of a contract registry contract\r\n@param _maxConversionFee maximum conversion fee, represented in ppm\r", + "id": 14536, + "implemented": true, + "isConstructor": true, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 14530, + "name": "_poolTokensContainer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14523, + "src": "3324:20:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IPoolTokensContainer_$17009", + "typeString": "contract IPoolTokensContainer" + } + }, + { + "argumentTypes": null, + "id": 14531, + "name": "_registry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14525, + "src": "3346:9:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IContractRegistry_$22220", + "typeString": "contract IContractRegistry" + } + }, + { + "argumentTypes": null, + "id": 14532, + "name": "_maxConversionFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14527, + "src": "3357:17:25", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + } + ], + "id": 14533, + "modifierName": { + "argumentTypes": null, + "id": 14529, + "name": "LiquidityPoolConverter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6210, + "src": "3301:22:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_LiquidityPoolConverter_$6210_$", + "typeString": "type(contract LiquidityPoolConverter)" + } + }, + "nodeType": "ModifierInvocation", + "src": "3301:74:25" + } + ], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 14528, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 14523, + "name": "_poolTokensContainer", + "nodeType": "VariableDeclaration", + "scope": 14536, + "src": "3187:41:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IPoolTokensContainer_$17009", + "typeString": "contract IPoolTokensContainer" + }, + "typeName": { + "contractScope": null, + "id": 14522, + "name": "IPoolTokensContainer", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 17009, + "src": "3187:20:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IPoolTokensContainer_$17009", + "typeString": "contract IPoolTokensContainer" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 14525, + "name": "_registry", + "nodeType": "VariableDeclaration", + "scope": 14536, + "src": "3230:27:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IContractRegistry_$22220", + "typeString": "contract IContractRegistry" + }, + "typeName": { + "contractScope": null, + "id": 14524, + "name": "IContractRegistry", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 22220, + "src": "3230:17:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IContractRegistry_$22220", + "typeString": "contract IContractRegistry" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 14527, + "name": "_maxConversionFee", + "nodeType": "VariableDeclaration", + "scope": 14536, + "src": "3259:24:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 14526, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "3259:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3186:98:25" + }, + "payable": false, + "returnParameters": { + "id": 14534, + "nodeType": "ParameterList", + "parameters": [], + "src": "3381:0:25" + }, + "scope": 16610, + "src": "3175:214:25", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 14545, + "nodeType": "Block", + "src": "3487:56:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 14541, + "name": "_address", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14538, + "src": "3514:8:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISmartToken_$20295", + "typeString": "contract ISmartToken" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_ISmartToken_$20295", + "typeString": "contract ISmartToken" + } + ], + "id": 14540, + "name": "_validPoolToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14563, + "src": "3498:15:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_contract$_ISmartToken_$20295_$returns$__$", + "typeString": "function (contract ISmartToken) view" + } + }, + "id": 14542, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3498:25:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 14543, + "nodeType": "ExpressionStatement", + "src": "3498:25:25" + }, + { + "id": 14544, + "nodeType": "PlaceholderStatement", + "src": "3534:1:25" + } + ] + }, + "documentation": null, + "id": 14546, + "name": "validPoolToken", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 14539, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 14538, + "name": "_address", + "nodeType": "VariableDeclaration", + "scope": 14546, + "src": "3465:20:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISmartToken_$20295", + "typeString": "contract ISmartToken" + }, + "typeName": { + "contractScope": null, + "id": 14537, + "name": "ISmartToken", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20295, + "src": "3465:11:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISmartToken_$20295", + "typeString": "contract ISmartToken" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3464:22:25" + }, + "src": "3441:102:25", + "visibility": "internal" + }, + { + "body": { + "id": 14562, + "nodeType": "Block", + "src": "3659:98:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 14558, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 14552, + "name": "poolTokensToReserves", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14496, + "src": "3678:20:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_contract$_IERC20Token_$20240_$", + "typeString": "mapping(address => contract IERC20Token)" + } + }, + "id": 14554, + "indexExpression": { + "argumentTypes": null, + "id": 14553, + "name": "_address", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14548, + "src": "3699:8:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISmartToken_$20295", + "typeString": "contract ISmartToken" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3678:30:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 14556, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3720:1:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 14555, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3712:7:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 14557, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3712:10:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "3678:44:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4552525f494e56414c49445f504f4f4c5f544f4b454e", + "id": 14559, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3724:24:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_eed1b5de9a98cde04e371329406f26607f5671e3e7b23ea150ebcb6d35102f1f", + "typeString": "literal_string \"ERR_INVALID_POOL_TOKEN\"" + }, + "value": "ERR_INVALID_POOL_TOKEN" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_eed1b5de9a98cde04e371329406f26607f5671e3e7b23ea150ebcb6d35102f1f", + "typeString": "literal_string \"ERR_INVALID_POOL_TOKEN\"" + } + ], + "id": 14551, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 22341, + 22342 + ], + "referencedDeclaration": 22342, + "src": "3670:7:25", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 14560, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3670:79:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 14561, + "nodeType": "ExpressionStatement", + "src": "3670:79:25" + } + ] + }, + "documentation": null, + "id": 14563, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "_validPoolToken", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 14549, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 14548, + "name": "_address", + "nodeType": "VariableDeclaration", + "scope": 14563, + "src": "3623:20:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISmartToken_$20295", + "typeString": "contract ISmartToken" + }, + "typeName": { + "contractScope": null, + "id": 14547, + "name": "ISmartToken", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20295, + "src": "3623:11:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISmartToken_$20295", + "typeString": "contract ISmartToken" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3622:22:25" + }, + "payable": false, + "returnParameters": { + "id": 14550, + "nodeType": "ParameterList", + "parameters": [], + "src": "3659:0:25" + }, + "scope": 16610, + "src": "3598:159:25", + "stateMutability": "view", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 14570, + "nodeType": "Block", + "src": "3956:27:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "hexValue": "32", + "id": 14568, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3974:1:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "functionReturnParameters": 14567, + "id": 14569, + "nodeType": "Return", + "src": "3967:8:25" + } + ] + }, + "documentation": "@dev returns the converter type\r\n\n * @return see the converter types in the the main contract doc\r", + "id": 14571, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "converterType", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 14564, + "nodeType": "ParameterList", + "parameters": [], + "src": "3924:2:25" + }, + "payable": false, + "returnParameters": { + "id": 14567, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 14566, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 14571, + "src": "3948:6:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 14565, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "3948:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3947:8:25" + }, + "scope": 16610, + "src": "3902:81:25", + "stateMutability": "pure", + "superFunction": 11655, + "visibility": "public" + }, + { + "body": { + "id": 14586, + "nodeType": "Block", + "src": "4201:71:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 14584, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 14576, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22452, + "src": "4219:5:25", + "typeDescriptions": { + "typeIdentifier": "t_super$_LiquidityPoolV2Converter_$16610", + "typeString": "contract super LiquidityPoolV2Converter" + } + }, + "id": 14577, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "isActive", + "nodeType": "MemberAccess", + "referencedDeclaration": 2802, + "src": "4219:14:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$", + "typeString": "function () view returns (bool)" + } + }, + "id": 14578, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4219:16:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 14583, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 14579, + "name": "priceOracle", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14480, + "src": "4239:11:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IPriceOracle_$22297", + "typeString": "contract IPriceOracle" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 14581, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4262:1:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 14580, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4254:7:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 14582, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4254:10:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "4239:25:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "4219:45:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 14575, + "id": 14585, + "nodeType": "Return", + "src": "4212:52:25" + } + ] + }, + "documentation": "@dev returns true if the converter is active, false otherwise\r\n\n * @return true if the converter is active, false otherwise\r", + "id": 14587, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "isActive", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 14572, + "nodeType": "ParameterList", + "parameters": [], + "src": "4171:2:25" + }, + "payable": false, + "returnParameters": { + "id": 14575, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 14574, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 14587, + "src": "4195:4:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 14573, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4195:4:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4194:6:25" + }, + "scope": 16610, + "src": "4154:118:25", + "stateMutability": "view", + "superFunction": 2802, + "visibility": "public" + }, + { + "body": { + "id": 14594, + "nodeType": "Block", + "src": "4482:46:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 14592, + "name": "AMPLIFICATION_FACTOR", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14470, + "src": "4500:20:25", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "functionReturnParameters": 14591, + "id": 14593, + "nodeType": "Return", + "src": "4493:27:25" + } + ] + }, + "documentation": "@dev returns the liquidity amplification factor in the pool\r\n\n * @return liquidity amplification factor\r", + "id": 14595, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "amplificationFactor", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 14588, + "nodeType": "ParameterList", + "parameters": [], + "src": "4451:2:25" + }, + "payable": false, + "returnParameters": { + "id": 14591, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 14590, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 14595, + "src": "4475:5:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 14589, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "4475:5:25", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4474:7:25" + }, + "scope": 16610, + "src": "4423:105:25", + "stateMutability": "pure", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 14787, + "nodeType": "Block", + "src": "5585:2242:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 14630, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 14624, + "name": "anchor", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2511 + ], + "referencedDeclaration": 2511, + "src": "5642:6:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + }, + "id": 14625, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "owner", + "nodeType": "MemberAccess", + "referencedDeclaration": 22238, + "src": "5642:12:25", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", + "typeString": "function () view external returns (address)" + } + }, + "id": 14626, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5642:14:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 14628, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22451, + "src": "5668:4:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_LiquidityPoolV2Converter_$16610", + "typeString": "contract LiquidityPoolV2Converter" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_LiquidityPoolV2Converter_$16610", + "typeString": "contract LiquidityPoolV2Converter" + } + ], + "id": 14627, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5660:7:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 14629, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5660:13:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "5642:31:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4552525f414e43484f525f4e4f545f4f574e4544", + "id": 14631, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5675:22:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_177ebf4a5417e29571b85651bfed4f759bbb0c457a65f31f55950233ecfaf584", + "typeString": "literal_string \"ERR_ANCHOR_NOT_OWNED\"" + }, + "value": "ERR_ANCHOR_NOT_OWNED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_177ebf4a5417e29571b85651bfed4f759bbb0c457a65f31f55950233ecfaf584", + "typeString": "literal_string \"ERR_ANCHOR_NOT_OWNED\"" + } + ], + "id": 14623, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 22341, + 22342 + ], + "referencedDeclaration": 22342, + "src": "5634:7:25", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 14632, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5634:64:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 14633, + "nodeType": "ExpressionStatement", + "src": "5634:64:25" + }, + { + "assignments": [ + 14635 + ], + "declarations": [ + { + "constant": false, + "id": 14635, + "name": "oracleWhitelist", + "nodeType": "VariableDeclaration", + "scope": 14788, + "src": "5740:26:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWhitelist_$22323", + "typeString": "contract IWhitelist" + }, + "typeName": { + "contractScope": null, + "id": 14634, + "name": "IWhitelist", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 22323, + "src": "5740:10:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWhitelist_$22323", + "typeString": "contract IWhitelist" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 14641, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 14638, + "name": "CHAINLINK_ORACLE_WHITELIST", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20785, + "src": "5790:26:25", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 14637, + "name": "addressOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20931, + "src": "5780:9:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$", + "typeString": "function (bytes32) view returns (address)" + } + }, + "id": 14639, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5780:37:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 14636, + "name": "IWhitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22323, + "src": "5769:10:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IWhitelist_$22323_$", + "typeString": "type(contract IWhitelist)" + } + }, + "id": 14640, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5769:49:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWhitelist_$22323", + "typeString": "contract IWhitelist" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5740:78:25" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 14645, + "name": "_primaryReserveOracle", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14599, + "src": "5867:21:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", + "typeString": "contract IConsumerPriceOracle" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", + "typeString": "contract IConsumerPriceOracle" + } + ], + "expression": { + "argumentTypes": null, + "id": 14643, + "name": "oracleWhitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14635, + "src": "5837:15:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWhitelist_$22323", + "typeString": "contract IWhitelist" + } + }, + "id": 14644, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "isWhitelisted", + "nodeType": "MemberAccess", + "referencedDeclaration": 22322, + "src": "5837:29:25", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bool_$", + "typeString": "function (address) view external returns (bool)" + } + }, + "id": 14646, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5837:52:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4552525f494e56414c49445f4f5241434c45", + "id": 14647, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5891:20:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_838cc927fcaf7c7c6b40a2418c9d314e4eaed53a6395fa4bccbb5e6a4666df25", + "typeString": "literal_string \"ERR_INVALID_ORACLE\"" + }, + "value": "ERR_INVALID_ORACLE" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_838cc927fcaf7c7c6b40a2418c9d314e4eaed53a6395fa4bccbb5e6a4666df25", + "typeString": "literal_string \"ERR_INVALID_ORACLE\"" + } + ], + "id": 14642, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 22341, + 22342 + ], + "referencedDeclaration": 22342, + "src": "5829:7:25", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 14648, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5829:83:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 14649, + "nodeType": "ExpressionStatement", + "src": "5829:83:25" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 14653, + "name": "_secondaryReserveOracle", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14601, + "src": "5961:23:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", + "typeString": "contract IConsumerPriceOracle" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", + "typeString": "contract IConsumerPriceOracle" + } + ], + "expression": { + "argumentTypes": null, + "id": 14651, + "name": "oracleWhitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14635, + "src": "5931:15:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWhitelist_$22323", + "typeString": "contract IWhitelist" + } + }, + "id": 14652, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "isWhitelisted", + "nodeType": "MemberAccess", + "referencedDeclaration": 22322, + "src": "5931:29:25", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bool_$", + "typeString": "function (address) view external returns (bool)" + } + }, + "id": 14654, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5931:54:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4552525f494e56414c49445f4f5241434c45", + "id": 14655, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5987:20:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_838cc927fcaf7c7c6b40a2418c9d314e4eaed53a6395fa4bccbb5e6a4666df25", + "typeString": "literal_string \"ERR_INVALID_ORACLE\"" + }, + "value": "ERR_INVALID_ORACLE" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_838cc927fcaf7c7c6b40a2418c9d314e4eaed53a6395fa4bccbb5e6a4666df25", + "typeString": "literal_string \"ERR_INVALID_ORACLE\"" + } + ], + "id": 14650, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 22341, + 22342 + ], + "referencedDeclaration": 22342, + "src": "5923:7:25", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 14656, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5923:85:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 14657, + "nodeType": "ExpressionStatement", + "src": "5923:85:25" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 14658, + "name": "createPoolTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16123, + "src": "6096:16:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", + "typeString": "function ()" + } + }, + "id": 14659, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6096:18:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 14660, + "nodeType": "ExpressionStatement", + "src": "6096:18:25" + }, + { + "expression": { + "argumentTypes": null, + "id": 14663, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 14661, + "name": "primaryReserveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14482, + "src": "6183:19:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 14662, + "name": "_primaryReserveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14597, + "src": "6205:20:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "src": "6183:42:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "id": 14664, + "nodeType": "ExpressionStatement", + "src": "6183:42:25" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + "id": 14669, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 14665, + "name": "_primaryReserveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14597, + "src": "6240:20:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 14666, + "name": "reserveTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2516, + "src": "6264:13:25", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_storage", + "typeString": "contract IERC20Token[] storage ref" + } + }, + "id": 14668, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 14667, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6278:1:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6264:16:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "src": "6240:40:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "expression": { + "argumentTypes": null, + "id": 14680, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 14676, + "name": "secondaryReserveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14484, + "src": "6364:21:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 14677, + "name": "reserveTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2516, + "src": "6388:13:25", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_storage", + "typeString": "contract IERC20Token[] storage ref" + } + }, + "id": 14679, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 14678, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6402:1:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6388:16:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "src": "6364:40:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "id": 14681, + "nodeType": "ExpressionStatement", + "src": "6364:40:25" + }, + "id": 14682, + "nodeType": "IfStatement", + "src": "6236:168:25", + "trueBody": { + "expression": { + "argumentTypes": null, + "id": 14674, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 14670, + "name": "secondaryReserveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14484, + "src": "6295:21:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 14671, + "name": "reserveTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2516, + "src": "6319:13:25", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_storage", + "typeString": "contract IERC20Token[] storage ref" + } + }, + "id": 14673, + "indexExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 14672, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6333:1:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6319:16:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "src": "6295:40:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "id": 14675, + "nodeType": "ExpressionStatement", + "src": "6295:40:25" + } + }, + { + "assignments": [ + 14684 + ], + "declarations": [ + { + "constant": false, + "id": 14684, + "name": "customFactory", + "nodeType": "VariableDeclaration", + "scope": 14788, + "src": "6492:51:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_LiquidityPoolV2ConverterCustomFactory_$16692", + "typeString": "contract LiquidityPoolV2ConverterCustomFactory" + }, + "typeName": { + "contractScope": null, + "id": 14683, + "name": "LiquidityPoolV2ConverterCustomFactory", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 16692, + "src": "6492:37:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_LiquidityPoolV2ConverterCustomFactory_$16692", + "typeString": "contract LiquidityPoolV2ConverterCustomFactory" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 14696, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 14692, + "name": "converterType", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 14571 + ], + "referencedDeclaration": 14571, + "src": "6661:13:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_uint16_$", + "typeString": "function () pure returns (uint16)" + } + }, + "id": 14693, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6661:15:25", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 14688, + "name": "CONVERTER_FACTORY", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20761, + "src": "6625:17:25", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 14687, + "name": "addressOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20931, + "src": "6615:9:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$", + "typeString": "function (bytes32) view returns (address)" + } + }, + "id": 14689, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6615:28:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 14686, + "name": "IConverterFactory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11871, + "src": "6597:17:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IConverterFactory_$11871_$", + "typeString": "type(contract IConverterFactory)" + } + }, + "id": 14690, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6597:47:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterFactory_$11871", + "typeString": "contract IConverterFactory" + } + }, + "id": 14691, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "customFactories", + "nodeType": "MemberAccess", + "referencedDeclaration": 11870, + "src": "6597:63:25", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_uint16_$returns$_t_contract$_ITypedConverterCustomFactory_$12268_$", + "typeString": "function (uint16) view external returns (contract ITypedConverterCustomFactory)" + } + }, + "id": 14694, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6597:80:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ITypedConverterCustomFactory_$12268", + "typeString": "contract ITypedConverterCustomFactory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_ITypedConverterCustomFactory_$12268", + "typeString": "contract ITypedConverterCustomFactory" + } + ], + "id": 14685, + "name": "LiquidityPoolV2ConverterCustomFactory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16692, + "src": "6559:37:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_LiquidityPoolV2ConverterCustomFactory_$16692_$", + "typeString": "type(contract LiquidityPoolV2ConverterCustomFactory)" + } + }, + "id": 14695, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6559:119:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_LiquidityPoolV2ConverterCustomFactory_$16692", + "typeString": "contract LiquidityPoolV2ConverterCustomFactory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6492:186:25" + }, + { + "expression": { + "argumentTypes": null, + "id": 14705, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 14697, + "name": "priceOracle", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14480, + "src": "6689:11:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IPriceOracle_$22297", + "typeString": "contract IPriceOracle" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 14700, + "name": "_primaryReserveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14597, + "src": "6735:20:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + { + "argumentTypes": null, + "id": 14701, + "name": "secondaryReserveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14484, + "src": "6757:21:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + { + "argumentTypes": null, + "id": 14702, + "name": "_primaryReserveOracle", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14599, + "src": "6780:21:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", + "typeString": "contract IConsumerPriceOracle" + } + }, + { + "argumentTypes": null, + "id": 14703, + "name": "_secondaryReserveOracle", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14601, + "src": "6803:23:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", + "typeString": "contract IConsumerPriceOracle" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + { + "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", + "typeString": "contract IConsumerPriceOracle" + }, + { + "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", + "typeString": "contract IConsumerPriceOracle" + } + ], + "expression": { + "argumentTypes": null, + "id": 14698, + "name": "customFactory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14684, + "src": "6703:13:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_LiquidityPoolV2ConverterCustomFactory_$16692", + "typeString": "contract LiquidityPoolV2ConverterCustomFactory" + } + }, + "id": 14699, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "createPriceOracle", + "nodeType": "MemberAccess", + "referencedDeclaration": 16691, + "src": "6703:31:25", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_contract$_IERC20Token_$20240_$_t_contract$_IERC20Token_$20240_$_t_contract$_IConsumerPriceOracle_$22203_$_t_contract$_IConsumerPriceOracle_$22203_$returns$_t_contract$_IPriceOracle_$22297_$", + "typeString": "function (contract IERC20Token,contract IERC20Token,contract IConsumerPriceOracle,contract IConsumerPriceOracle) external returns (contract IPriceOracle)" + } + }, + "id": 14704, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6703:124:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IPriceOracle_$22297", + "typeString": "contract IPriceOracle" + } + }, + "src": "6689:138:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IPriceOracle_$22297", + "typeString": "contract IPriceOracle" + } + }, + "id": 14706, + "nodeType": "ExpressionStatement", + "src": "6689:138:25" + }, + { + "expression": { + "argumentTypes": null, + "id": 14718, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 14707, + "name": "referenceRate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14501, + "src": "6841:13:25", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Fraction_$14478_storage", + "typeString": "struct LiquidityPoolV2Converter.Fraction storage ref" + } + }, + "id": 14709, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "n", + "nodeType": "MemberAccess", + "referencedDeclaration": 14475, + "src": "6841:15:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 14710, + "name": "referenceRate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14501, + "src": "6858:13:25", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Fraction_$14478_storage", + "typeString": "struct LiquidityPoolV2Converter.Fraction storage ref" + } + }, + "id": 14711, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "d", + "nodeType": "MemberAccess", + "referencedDeclaration": 14477, + "src": "6858:15:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 14712, + "isConstant": false, + "isInlineArray": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "TupleExpression", + "src": "6840:34:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 14715, + "name": "primaryReserveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14482, + "src": "6900:19:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + { + "argumentTypes": null, + "id": 14716, + "name": "secondaryReserveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14484, + "src": "6921:21:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + ], + "expression": { + "argumentTypes": null, + "id": 14713, + "name": "priceOracle", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14480, + "src": "6877:11:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IPriceOracle_$22297", + "typeString": "contract IPriceOracle" + } + }, + "id": 14714, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "latestRate", + "nodeType": "MemberAccess", + "referencedDeclaration": 22262, + "src": "6877:22:25", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_contract$_IERC20Token_$20240_$_t_contract$_IERC20Token_$20240_$returns$_t_uint256_$_t_uint256_$", + "typeString": "function (contract IERC20Token,contract IERC20Token) view external returns (uint256,uint256)" + } + }, + "id": 14717, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6877:66:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "src": "6840:103:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 14719, + "nodeType": "ExpressionStatement", + "src": "6840:103:25" + }, + { + "expression": { + "argumentTypes": null, + "id": 14722, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 14720, + "name": "lastConversionRate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14505, + "src": "6954:18:25", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Fraction_$14478_storage", + "typeString": "struct LiquidityPoolV2Converter.Fraction storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 14721, + "name": "referenceRate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14501, + "src": "6975:13:25", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Fraction_$14478_storage", + "typeString": "struct LiquidityPoolV2Converter.Fraction storage ref" + } + }, + "src": "6954:34:25", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Fraction_$14478_storage", + "typeString": "struct LiquidityPoolV2Converter.Fraction storage ref" + } + }, + "id": 14723, + "nodeType": "ExpressionStatement", + "src": "6954:34:25" + }, + { + "expression": { + "argumentTypes": null, + "id": 14727, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 14724, + "name": "referenceRateUpdateTime", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14503, + "src": "7001:23:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 14725, + "name": "time", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16520, + "src": "7027:4:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 14726, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7027:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7001:32:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 14728, + "nodeType": "ExpressionStatement", + "src": "7001:32:25" + }, + { + "assignments": [ + 14730 + ], + "declarations": [ + { + "constant": false, + "id": 14730, + "name": "primaryReserveStakedBalance", + "nodeType": "VariableDeclaration", + "scope": 14788, + "src": "7161:35:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14729, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7161:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 14734, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 14732, + "name": "primaryReserveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14482, + "src": "7220:19:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + ], + "id": 14731, + "name": "reserveStakedBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14827, + "src": "7199:20:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_contract$_IERC20Token_$20240_$returns$_t_uint256_$", + "typeString": "function (contract IERC20Token) view returns (uint256)" + } + }, + "id": 14733, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7199:41:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7161:79:25" + }, + { + "assignments": [ + 14736 + ], + "declarations": [ + { + "constant": false, + "id": 14736, + "name": "primaryReserveBalance", + "nodeType": "VariableDeclaration", + "scope": 14788, + "src": "7251:29:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14735, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7251:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 14740, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 14738, + "name": "primaryReserveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14482, + "src": "7298:19:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + ], + "id": 14737, + "name": "reserveBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3106 + ], + "referencedDeclaration": 3106, + "src": "7283:14:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_contract$_IERC20Token_$20240_$returns$_t_uint256_$", + "typeString": "function (contract IERC20Token) view returns (uint256)" + } + }, + "id": 14739, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7283:35:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7251:67:25" + }, + { + "assignments": [ + 14742 + ], + "declarations": [ + { + "constant": false, + "id": 14742, + "name": "secondaryReserveBalance", + "nodeType": "VariableDeclaration", + "scope": 14788, + "src": "7329:31:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14741, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7329:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 14746, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 14744, + "name": "secondaryReserveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14484, + "src": "7378:21:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + ], + "id": 14743, + "name": "reserveBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3106 + ], + "referencedDeclaration": 3106, + "src": "7363:14:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_contract$_IERC20Token_$20240_$returns$_t_uint256_$", + "typeString": "function (contract IERC20Token) view returns (uint256)" + } + }, + "id": 14745, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7363:37:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7329:71:25" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 14749, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 14747, + "name": "primaryReserveStakedBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14730, + "src": "7417:27:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 14748, + "name": "primaryReserveBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14736, + "src": "7448:21:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7417:52:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 14773, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 14769, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 14765, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 14763, + "name": "primaryReserveStakedBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14730, + "src": "7630:27:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 14764, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7660:1:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "7630:31:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 14768, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 14766, + "name": "primaryReserveBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14736, + "src": "7665:21:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 14767, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7689:1:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "7665:25:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "7630:60:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 14772, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 14770, + "name": "secondaryReserveBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14742, + "src": "7694:23:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 14771, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7720:1:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "7694:27:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "7630:91:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 14778, + "nodeType": "IfStatement", + "src": "7626:135:25", + "trueBody": { + "id": 14777, + "nodeType": "Block", + "src": "7723:38:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 14774, + "name": "rebalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16319, + "src": "7738:9:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", + "typeString": "function ()" + } + }, + "id": 14775, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7738:11:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 14776, + "nodeType": "ExpressionStatement", + "src": "7738:11:25" + } + ] + } + }, + "id": 14779, + "nodeType": "IfStatement", + "src": "7413:348:25", + "trueBody": { + "id": 14762, + "nodeType": "Block", + "src": "7471:140:25", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 14756, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 14752, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 14750, + "name": "primaryReserveStakedBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14730, + "src": "7490:27:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 14751, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7520:1:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "7490:31:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 14755, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 14753, + "name": "secondaryReserveBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14742, + "src": "7525:23:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 14754, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7551:1:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "7525:27:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "7490:62:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 14761, + "nodeType": "IfStatement", + "src": "7486:114:25", + "trueBody": { + "id": 14760, + "nodeType": "Block", + "src": "7554:46:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 14757, + "name": "rebalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16319, + "src": "7573:9:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", + "typeString": "function ()" + } + }, + "id": 14758, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7573:11:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 14759, + "nodeType": "ExpressionStatement", + "src": "7573:11:25" + } + ] + } + } + ] + } + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 14781, + "name": "converterType", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 14571 + ], + "referencedDeclaration": 14571, + "src": "7789:13:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_uint16_$", + "typeString": "function () pure returns (uint16)" + } + }, + "id": 14782, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7789:15:25", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + { + "argumentTypes": null, + "id": 14783, + "name": "anchor", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2511 + ], + "referencedDeclaration": 2511, + "src": "7806:6:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + }, + { + "argumentTypes": null, + "hexValue": "74727565", + "id": 14784, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7814:4:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 14780, + "name": "Activation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2540, + "src": "7778:10:25", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint16_$_t_contract$_IConverterAnchor_$11826_$_t_bool_$returns$__$", + "typeString": "function (uint16,contract IConverterAnchor,bool)" + } + }, + "id": 14785, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7778:41:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 14786, + "nodeType": "EmitStatement", + "src": "7773:46:25" + } + ] + }, + "documentation": "@dev sets the pool's primary reserve token / price oracles and activates the pool\r\neach oracle must be able to provide the rate for each reserve token\r\nnote that the oracle must be whitelisted prior to the call\r\ncan only be called by the owner while the pool is inactive\r\n\n * @param _primaryReserveToken address of the pool's primary reserve token\r\n@param _primaryReserveOracle address of a chainlink price oracle for the primary reserve token\r\n@param _secondaryReserveOracle address of a chainlink price oracle for the secondary reserve token\r", + "id": 14788, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 14604, + "modifierName": { + "argumentTypes": null, + "id": 14603, + "name": "inactive", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2621, + "src": "5334:8:25", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "5334:8:25" + }, + { + "arguments": null, + "id": 14606, + "modifierName": { + "argumentTypes": null, + "id": 14605, + "name": "ownerOnly", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21265, + "src": "5352:9:25", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "5352:9:25" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 14608, + "name": "_primaryReserveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14597, + "src": "5384:20:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + } + ], + "id": 14609, + "modifierName": { + "argumentTypes": null, + "id": 14607, + "name": "validReserve", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2642, + "src": "5371:12:25", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_contract$_IERC20Token_$20240_$", + "typeString": "modifier (contract IERC20Token)" + } + }, + "nodeType": "ModifierInvocation", + "src": "5371:34:25" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 14611, + "name": "_primaryReserveOracle", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14599, + "src": "5423:21:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", + "typeString": "contract IConsumerPriceOracle" + } + } + ], + "id": 14612, + "modifierName": { + "argumentTypes": null, + "id": 14610, + "name": "notThis", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22036, + "src": "5415:7:25", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_address_$", + "typeString": "modifier (address)" + } + }, + "nodeType": "ModifierInvocation", + "src": "5415:30:25" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 14614, + "name": "_secondaryReserveOracle", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14601, + "src": "5463:23:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", + "typeString": "contract IConsumerPriceOracle" + } + } + ], + "id": 14615, + "modifierName": { + "argumentTypes": null, + "id": 14613, + "name": "notThis", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22036, + "src": "5455:7:25", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_address_$", + "typeString": "modifier (address)" + } + }, + "nodeType": "ModifierInvocation", + "src": "5455:32:25" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 14617, + "name": "_primaryReserveOracle", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14599, + "src": "5510:21:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", + "typeString": "contract IConsumerPriceOracle" + } + } + ], + "id": 14618, + "modifierName": { + "argumentTypes": null, + "id": 14616, + "name": "validAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22011, + "src": "5497:12:25", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_address_$", + "typeString": "modifier (address)" + } + }, + "nodeType": "ModifierInvocation", + "src": "5497:35:25" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 14620, + "name": "_secondaryReserveOracle", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14601, + "src": "5555:23:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", + "typeString": "contract IConsumerPriceOracle" + } + } + ], + "id": 14621, + "modifierName": { + "argumentTypes": null, + "id": 14619, + "name": "validAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22011, + "src": "5542:12:25", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_address_$", + "typeString": "modifier (address)" + } + }, + "nodeType": "ModifierInvocation", + "src": "5542:37:25" + } + ], + "name": "activate", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 14602, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 14597, + "name": "_primaryReserveToken", + "nodeType": "VariableDeclaration", + "scope": 14788, + "src": "5185:32:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + "typeName": { + "contractScope": null, + "id": 14596, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "5185:11:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 14599, + "name": "_primaryReserveOracle", + "nodeType": "VariableDeclaration", + "scope": 14788, + "src": "5219:42:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", + "typeString": "contract IConsumerPriceOracle" + }, + "typeName": { + "contractScope": null, + "id": 14598, + "name": "IConsumerPriceOracle", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 22203, + "src": "5219:20:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", + "typeString": "contract IConsumerPriceOracle" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 14601, + "name": "_secondaryReserveOracle", + "nodeType": "VariableDeclaration", + "scope": 14788, + "src": "5263:44:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", + "typeString": "contract IConsumerPriceOracle" + }, + "typeName": { + "contractScope": null, + "id": 14600, + "name": "IConsumerPriceOracle", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 22203, + "src": "5263:20:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", + "typeString": "contract IConsumerPriceOracle" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5184:124:25" + }, + "payable": false, + "returnParameters": { + "id": 14622, + "nodeType": "ParameterList", + "parameters": [], + "src": "5585:0:25" + }, + "scope": 16610, + "src": "5167:2660:25", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 14811, + "nodeType": "Block", + "src": "8114:227:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 14798, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 14796, + "name": "_dynamicFeeFactor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14790, + "src": "8133:17:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "id": 14797, + "name": "MAX_DYNAMIC_FEE_FACTOR", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14473, + "src": "8154:22:25", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "8133:43:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4552525f494e56414c49445f44594e414d49435f4645455f464143544f52", + "id": 14799, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8178:32:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_bfbeafcc230428463508fd5aed9a7d20792bf8f54e2a5ce8c99f30d8e8a7812d", + "typeString": "literal_string \"ERR_INVALID_DYNAMIC_FEE_FACTOR\"" + }, + "value": "ERR_INVALID_DYNAMIC_FEE_FACTOR" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_bfbeafcc230428463508fd5aed9a7d20792bf8f54e2a5ce8c99f30d8e8a7812d", + "typeString": "literal_string \"ERR_INVALID_DYNAMIC_FEE_FACTOR\"" + } + ], + "id": 14795, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 22341, + 22342 + ], + "referencedDeclaration": 22342, + "src": "8125:7:25", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 14800, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8125:86:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 14801, + "nodeType": "ExpressionStatement", + "src": "8125:86:25" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 14803, + "name": "dynamicFeeFactor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14515, + "src": "8250:16:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 14804, + "name": "_dynamicFeeFactor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14790, + "src": "8268:17:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 14802, + "name": "DynamicFeeFactorUpdate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14521, + "src": "8227:22:25", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (uint256,uint256)" + } + }, + "id": 14805, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8227:59:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 14806, + "nodeType": "EmitStatement", + "src": "8222:64:25" + }, + { + "expression": { + "argumentTypes": null, + "id": 14809, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 14807, + "name": "dynamicFeeFactor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14515, + "src": "8297:16:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 14808, + "name": "_dynamicFeeFactor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14790, + "src": "8316:17:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8297:36:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 14810, + "nodeType": "ExpressionStatement", + "src": "8297:36:25" + } + ] + }, + "documentation": "@dev updates the current dynamic fee factor\r\ncan only be called by the contract owner\r\n\n * @param _dynamicFeeFactor new dynamic fee factor, represented in ppm\r", + "id": 14812, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 14793, + "modifierName": { + "argumentTypes": null, + "id": 14792, + "name": "ownerOnly", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21265, + "src": "8104:9:25", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "8104:9:25" + } + ], + "name": "setDynamicFeeFactor", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 14791, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 14790, + "name": "_dynamicFeeFactor", + "nodeType": "VariableDeclaration", + "scope": 14812, + "src": "8070:25:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14789, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8070:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8069:27:25" + }, + "payable": false, + "returnParameters": { + "id": 14794, + "nodeType": "ParameterList", + "parameters": [], + "src": "8114:0:25" + }, + "scope": 16610, + "src": "8041:300:25", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 14826, + "nodeType": "Block", + "src": "8693:55:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 14822, + "name": "stakedBalances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14488, + "src": "8711:14:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 14824, + "indexExpression": { + "argumentTypes": null, + "id": 14823, + "name": "_reserveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14814, + "src": "8726:13:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8711:29:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 14821, + "id": 14825, + "nodeType": "Return", + "src": "8704:36:25" + } + ] + }, + "documentation": "@dev returns the staked balance of a given reserve token\r\n\n * @param _reserveToken reserve token address\r\n\n * @return staked balance\r", + "id": 14827, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 14817, + "name": "_reserveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14814, + "src": "8646:13:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + } + ], + "id": 14818, + "modifierName": { + "argumentTypes": null, + "id": 14816, + "name": "validReserve", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2642, + "src": "8633:12:25", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_contract$_IERC20Token_$20240_$", + "typeString": "modifier (contract IERC20Token)" + } + }, + "nodeType": "ModifierInvocation", + "src": "8633:27:25" + } + ], + "name": "reserveStakedBalance", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 14815, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 14814, + "name": "_reserveToken", + "nodeType": "VariableDeclaration", + "scope": 14827, + "src": "8567:25:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + "typeName": { + "contractScope": null, + "id": 14813, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "8567:11:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8566:27:25" + }, + "payable": false, + "returnParameters": { + "id": 14821, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 14820, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 14827, + "src": "8679:7:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14819, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8679:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8678:9:25" + }, + "scope": 16610, + "src": "8537:211:25", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 14851, + "nodeType": "Block", + "src": "9108:120:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 14847, + "name": "_reserveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14829, + "src": "9205:13:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + ], + "id": 14846, + "name": "reserveBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3106 + ], + "referencedDeclaration": 3106, + "src": "9190:14:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_contract$_IERC20Token_$20240_$returns$_t_uint256_$", + "typeString": "function (contract IERC20Token) view returns (uint256)" + } + }, + "id": 14848, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9190:29:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 14843, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 14841, + "name": "AMPLIFICATION_FACTOR", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14470, + "src": "9160:20:25", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 14842, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9183:1:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "9160:24:25", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 14837, + "name": "stakedBalances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14488, + "src": "9126:14:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 14839, + "indexExpression": { + "argumentTypes": null, + "id": 14838, + "name": "_reserveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14829, + "src": "9141:13:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9126:29:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 14840, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 21791, + "src": "9126:33:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 14844, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9126:59:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 14845, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 21737, + "src": "9126:63:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 14849, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9126:94:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 14836, + "id": 14850, + "nodeType": "Return", + "src": "9119:101:25" + } + ] + }, + "documentation": "@dev returns the amplified balance of a given reserve token\r\n\n * @param _reserveToken reserve token address\r\n\n * @return amplified balance\r", + "id": 14852, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 14832, + "name": "_reserveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14829, + "src": "9061:13:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + } + ], + "id": 14833, + "modifierName": { + "argumentTypes": null, + "id": 14831, + "name": "validReserve", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2642, + "src": "9048:12:25", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_contract$_IERC20Token_$20240_$", + "typeString": "modifier (contract IERC20Token)" + } + }, + "nodeType": "ModifierInvocation", + "src": "9048:27:25" + } + ], + "name": "reserveAmplifiedBalance", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 14830, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 14829, + "name": "_reserveToken", + "nodeType": "VariableDeclaration", + "scope": 14852, + "src": "8982:25:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + "typeName": { + "contractScope": null, + "id": 14828, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "8982:11:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8981:27:25" + }, + "payable": false, + "returnParameters": { + "id": 14836, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 14835, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 14852, + "src": "9094:7:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14834, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9094:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9093:9:25" + }, + "scope": 16610, + "src": "8949:279:25", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 14873, + "nodeType": "Block", + "src": "9699:59:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 14871, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 14867, + "name": "stakedBalances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14488, + "src": "9710:14:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 14869, + "indexExpression": { + "argumentTypes": null, + "id": 14868, + "name": "_reserveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14854, + "src": "9725:13:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "9710:29:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 14870, + "name": "_balance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14856, + "src": "9742:8:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9710:40:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 14872, + "nodeType": "ExpressionStatement", + "src": "9710:40:25" + } + ] + }, + "documentation": "@dev sets the reserve's staked balance\r\ncan only be called by the upgrader contract while the upgrader is the owner\r\n\n * @param _reserveToken reserve token address\r\n@param _balance new reserve staked balance\r", + "id": 14874, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 14859, + "modifierName": { + "argumentTypes": null, + "id": 14858, + "name": "ownerOnly", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21265, + "src": "9613:9:25", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "9613:9:25" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 14861, + "name": "CONVERTER_UPGRADER", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20767, + "src": "9637:18:25", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "id": 14862, + "modifierName": { + "argumentTypes": null, + "id": 14860, + "name": "only", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20801, + "src": "9632:4:25", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_bytes32_$", + "typeString": "modifier (bytes32)" + } + }, + "nodeType": "ModifierInvocation", + "src": "9632:24:25" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 14864, + "name": "_reserveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14854, + "src": "9679:13:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + } + ], + "id": 14865, + "modifierName": { + "argumentTypes": null, + "id": 14863, + "name": "validReserve", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2642, + "src": "9666:12:25", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_contract$_IERC20Token_$20240_$", + "typeString": "modifier (contract IERC20Token)" + } + }, + "nodeType": "ModifierInvocation", + "src": "9666:27:25" + } + ], + "name": "setReserveStakedBalance", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 14857, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 14854, + "name": "_reserveToken", + "nodeType": "VariableDeclaration", + "scope": 14874, + "src": "9543:25:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + "typeName": { + "contractScope": null, + "id": 14853, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "9543:11:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 14856, + "name": "_balance", + "nodeType": "VariableDeclaration", + "scope": 14874, + "src": "9570:16:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14855, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9570:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9542:45:25" + }, + "payable": false, + "returnParameters": { + "id": 14866, + "nodeType": "ParameterList", + "parameters": [], + "src": "9699:0:25" + }, + "scope": 16610, + "src": "9510:248:25", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 14899, + "nodeType": "Block", + "src": "10227:156:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 14889, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 14883, + "name": "maxStakedBalances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14509, + "src": "10238:17:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 14887, + "indexExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 14884, + "name": "reserveTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2516, + "src": "10256:13:25", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_storage", + "typeString": "contract IERC20Token[] storage ref" + } + }, + "id": 14886, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 14885, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10270:1:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10256:16:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "10238:35:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 14888, + "name": "_reserve1MaxStakedBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14876, + "src": "10276:25:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10238:63:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 14890, + "nodeType": "ExpressionStatement", + "src": "10238:63:25" + }, + { + "expression": { + "argumentTypes": null, + "id": 14897, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 14891, + "name": "maxStakedBalances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14509, + "src": "10312:17:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 14895, + "indexExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 14892, + "name": "reserveTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2516, + "src": "10330:13:25", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_storage", + "typeString": "contract IERC20Token[] storage ref" + } + }, + "id": 14894, + "indexExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 14893, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10344:1:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10330:16:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "10312:35:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 14896, + "name": "_reserve2MaxStakedBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14878, + "src": "10350:25:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10312:63:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 14898, + "nodeType": "ExpressionStatement", + "src": "10312:63:25" + } + ] + }, + "documentation": "@dev sets the max staked balance for both reserves\r\navailable as a temporary mechanism during the pilot\r\ncan only be called by the owner\r\n\n * @param _reserve1MaxStakedBalance max staked balance for reserve 1\r\n@param _reserve2MaxStakedBalance max staked balance for reserve 2\r", + "id": 14900, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 14881, + "modifierName": { + "argumentTypes": null, + "id": 14880, + "name": "ownerOnly", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21265, + "src": "10217:9:25", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "10217:9:25" + } + ], + "name": "setMaxStakedBalances", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 14879, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 14876, + "name": "_reserve1MaxStakedBalance", + "nodeType": "VariableDeclaration", + "scope": 14900, + "src": "10140:33:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14875, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10140:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 14878, + "name": "_reserve2MaxStakedBalance", + "nodeType": "VariableDeclaration", + "scope": 14900, + "src": "10175:33:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14877, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10175:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10139:70:25" + }, + "payable": false, + "returnParameters": { + "id": 14882, + "nodeType": "ParameterList", + "parameters": [], + "src": "10227:0:25" + }, + "scope": 16610, + "src": "10110:273:25", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 14909, + "nodeType": "Block", + "src": "10667:50:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 14907, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 14905, + "name": "maxStakedBalanceEnabled", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14512, + "src": "10678:23:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 14906, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10704:5:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "src": "10678:31:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 14908, + "nodeType": "ExpressionStatement", + "src": "10678:31:25" + } + ] + }, + "documentation": "@dev disables the max staked balance mechanism\r\navailable as a temporary mechanism during the pilot\r\nonce disabled, it cannot be re-enabled\r\ncan only be called by the owner\r", + "id": 14910, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 14903, + "modifierName": { + "argumentTypes": null, + "id": 14902, + "name": "ownerOnly", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21265, + "src": "10657:9:25", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "10657:9:25" + } + ], + "name": "disableMaxStakedBalances", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 14901, + "nodeType": "ParameterList", + "parameters": [], + "src": "10647:2:25" + }, + "payable": false, + "returnParameters": { + "id": 14904, + "nodeType": "ParameterList", + "parameters": [], + "src": "10667:0:25" + }, + "scope": 16610, + "src": "10614:103:25", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 14921, + "nodeType": "Block", + "src": "11005:61:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 14917, + "name": "reservesToPoolTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14492, + "src": "11023:20:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_contract$_ISmartToken_$20295_$", + "typeString": "mapping(address => contract ISmartToken)" + } + }, + "id": 14919, + "indexExpression": { + "argumentTypes": null, + "id": 14918, + "name": "_reserveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14912, + "src": "11044:13:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "11023:35:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISmartToken_$20295", + "typeString": "contract ISmartToken" + } + }, + "functionReturnParameters": 14916, + "id": 14920, + "nodeType": "Return", + "src": "11016:42:25" + } + ] + }, + "documentation": "@dev returns the pool token address by the reserve token address\r\n\n * @param _reserveToken reserve token address\r\n\n * @return pool token address\r", + "id": 14922, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "poolToken", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 14913, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 14912, + "name": "_reserveToken", + "nodeType": "VariableDeclaration", + "scope": 14922, + "src": "10944:25:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + "typeName": { + "contractScope": null, + "id": 14911, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "10944:11:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10943:27:25" + }, + "payable": false, + "returnParameters": { + "id": 14916, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 14915, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 14922, + "src": "10992:11:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISmartToken_$20295", + "typeString": "contract ISmartToken" + }, + "typeName": { + "contractScope": null, + "id": 14914, + "name": "ISmartToken", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20295, + "src": "10992:11:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISmartToken_$20295", + "typeString": "contract ISmartToken" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10991:13:25" + }, + "scope": 16610, + "src": "10925:141:25", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 14961, + "nodeType": "Block", + "src": "11368:530:25", + "statements": [ + { + "assignments": [ + 14930 + ], + "declarations": [ + { + "constant": false, + "id": 14930, + "name": "poolTokenSupply", + "nodeType": "VariableDeclaration", + "scope": 14962, + "src": "11417:23:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14929, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11417:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 14934, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 14931, + "name": "_poolToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14924, + "src": "11443:10:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISmartToken_$20295", + "typeString": "contract ISmartToken" + } + }, + "id": 14932, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "totalSupply", + "nodeType": "MemberAccess", + "referencedDeclaration": 20182, + "src": "11443:22:25", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", + "typeString": "function () view external returns (uint256)" + } + }, + "id": 14933, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11443:24:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "11417:50:25" + }, + { + "assignments": [ + 14936 + ], + "declarations": [ + { + "constant": false, + "id": 14936, + "name": "reserveToken", + "nodeType": "VariableDeclaration", + "scope": 14962, + "src": "11578:24:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + "typeName": { + "contractScope": null, + "id": 14935, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "11578:11:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 14940, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 14937, + "name": "poolTokensToReserves", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14496, + "src": "11605:20:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_contract$_IERC20Token_$20240_$", + "typeString": "mapping(address => contract IERC20Token)" + } + }, + "id": 14939, + "indexExpression": { + "argumentTypes": null, + "id": 14938, + "name": "_poolToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14924, + "src": "11626:10:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISmartToken_$20295", + "typeString": "contract ISmartToken" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "11605:32:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "11578:59:25" + }, + { + "assignments": [ + 14942 + ], + "declarations": [ + { + "constant": false, + "id": 14942, + "name": "balance", + "nodeType": "VariableDeclaration", + "scope": 14962, + "src": "11648:15:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14941, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11648:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 14946, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 14944, + "name": "reserveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14936, + "src": "11681:12:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + ], + "id": 14943, + "name": "reserveBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3106 + ], + "referencedDeclaration": 3106, + "src": "11666:14:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_contract$_IERC20Token_$20240_$returns$_t_uint256_$", + "typeString": "function (contract IERC20Token) view returns (uint256)" + } + }, + "id": 14945, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11666:28:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "11648:46:25" + }, + { + "assignments": [ + 14948 + ], + "declarations": [ + { + "constant": false, + "id": 14948, + "name": "stakedBalance", + "nodeType": "VariableDeclaration", + "scope": 14962, + "src": "11705:21:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14947, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11705:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 14952, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 14949, + "name": "stakedBalances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14488, + "src": "11729:14:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 14951, + "indexExpression": { + "argumentTypes": null, + "id": 14950, + "name": "reserveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14936, + "src": "11744:12:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "11729:28:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "11705:52:25" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 14958, + "name": "stakedBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14948, + "src": "11876:13:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 14955, + "name": "poolTokenSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14930, + "src": "11855:15:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 14953, + "name": "balance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14942, + "src": "11843:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 14954, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 21791, + "src": "11843:11:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 14956, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11843:28:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 14957, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "div", + "nodeType": "MemberAccess", + "referencedDeclaration": 21816, + "src": "11843:32:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 14959, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11843:47:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 14928, + "id": 14960, + "nodeType": "Return", + "src": "11836:54:25" + } + ] + }, + "documentation": "@dev returns the maximum number of pool tokens that can currently be liquidated\r\n\n * @param _poolToken address of the pool token\r\n\n * @return liquidation limit\r", + "id": 14962, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "liquidationLimit", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 14925, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 14924, + "name": "_poolToken", + "nodeType": "VariableDeclaration", + "scope": 14962, + "src": "11314:22:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISmartToken_$20295", + "typeString": "contract ISmartToken" + }, + "typeName": { + "contractScope": null, + "id": 14923, + "name": "ISmartToken", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20295, + "src": "11314:11:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISmartToken_$20295", + "typeString": "contract ISmartToken" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "11313:24:25" + }, + "payable": false, + "returnParameters": { + "id": 14928, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 14927, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 14962, + "src": "11359:7:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14926, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11359:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "11358:9:25" + }, + "scope": 16610, + "src": "11288:610:25", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 14984, + "nodeType": "Block", + "src": "12296:190:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "id": 14973, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 14970, + "name": "reserveTokenCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2984, + "src": "12381:17:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint16_$", + "typeString": "function () view returns (uint16)" + } + }, + "id": 14971, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12381:19:25", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 14972, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12403:1:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "12381:23:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4552525f494e56414c49445f524553455256455f434f554e54", + "id": 14974, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12406:27:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_ed94f14d8dcbb423a259b4072978fc0c494c6af1fea066a19023afb1a76ac87f", + "typeString": "literal_string \"ERR_INVALID_RESERVE_COUNT\"" + }, + "value": "ERR_INVALID_RESERVE_COUNT" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_ed94f14d8dcbb423a259b4072978fc0c494c6af1fea066a19023afb1a76ac87f", + "typeString": "literal_string \"ERR_INVALID_RESERVE_COUNT\"" + } + ], + "id": 14969, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 22341, + 22342 + ], + "referencedDeclaration": 22342, + "src": "12373:7:25", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 14975, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12373:61:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 14976, + "nodeType": "ExpressionStatement", + "src": "12373:61:25" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 14980, + "name": "_token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14964, + "src": "12462:6:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + { + "argumentTypes": null, + "id": 14981, + "name": "_weight", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14966, + "src": "12470:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + ], + "expression": { + "argumentTypes": null, + "id": 14977, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22452, + "src": "12445:5:25", + "typeDescriptions": { + "typeIdentifier": "t_super$_LiquidityPoolV2Converter_$16610", + "typeString": "contract super LiquidityPoolV2Converter" + } + }, + "id": 14979, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "addReserve", + "nodeType": "MemberAccess", + "referencedDeclaration": 3074, + "src": "12445:16:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20Token_$20240_$_t_uint32_$returns$__$", + "typeString": "function (contract IERC20Token,uint32)" + } + }, + "id": 14982, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12445:33:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 14983, + "nodeType": "ExpressionStatement", + "src": "12445:33:25" + } + ] + }, + "documentation": "@dev defines a new reserve token for the converter\r\ncan only be called by the owner while the converter is inactive and\r\n2 reserves aren't defined yet\r\n\n * @param _token address of the reserve token\r\n@param _weight reserve weight, represented in ppm, 1-1000000\r", + "id": 14985, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "addReserve", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 14967, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 14964, + "name": "_token", + "nodeType": "VariableDeclaration", + "scope": 14985, + "src": "12253:18:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + "typeName": { + "contractScope": null, + "id": 14963, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "12253:11:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 14966, + "name": "_weight", + "nodeType": "VariableDeclaration", + "scope": 14985, + "src": "12273:14:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 14965, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "12273:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "12252:36:25" + }, + "payable": false, + "returnParameters": { + "id": 14968, + "nodeType": "ParameterList", + "parameters": [], + "src": "12296:0:25" + }, + "scope": 16610, + "src": "12233:253:25", + "stateMutability": "nonpayable", + "superFunction": 3074, + "visibility": "public" + }, + { + "body": { + "id": 15003, + "nodeType": "Block", + "src": "12818:98:25", + "statements": [ + { + "assignments": [ + 14993 + ], + "declarations": [ + { + "constant": false, + "id": 14993, + "name": "rate", + "nodeType": "VariableDeclaration", + "scope": 15004, + "src": "12829:20:25", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Fraction_$14478_memory_ptr", + "typeString": "struct LiquidityPoolV2Converter.Fraction" + }, + "typeName": { + "contractScope": null, + "id": 14992, + "name": "Fraction", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 14478, + "src": "12829:8:25", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Fraction_$14478_storage_ptr", + "typeString": "struct LiquidityPoolV2Converter.Fraction" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 14996, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 14994, + "name": "_effectiveTokensRate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16230, + "src": "12852:20:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_struct$_Fraction_$14478_memory_ptr_$", + "typeString": "function () view returns (struct LiquidityPoolV2Converter.Fraction memory)" + } + }, + "id": 14995, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12852:22:25", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Fraction_$14478_memory_ptr", + "typeString": "struct LiquidityPoolV2Converter.Fraction memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "12829:45:25" + }, + { + "expression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 14997, + "name": "rate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14993, + "src": "12893:4:25", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Fraction_$14478_memory_ptr", + "typeString": "struct LiquidityPoolV2Converter.Fraction memory" + } + }, + "id": 14998, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "n", + "nodeType": "MemberAccess", + "referencedDeclaration": 14475, + "src": "12893:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 14999, + "name": "rate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14993, + "src": "12901:4:25", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Fraction_$14478_memory_ptr", + "typeString": "struct LiquidityPoolV2Converter.Fraction memory" + } + }, + "id": 15000, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "d", + "nodeType": "MemberAccess", + "referencedDeclaration": 14477, + "src": "12901:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 15001, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "12892:16:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "functionReturnParameters": 14991, + "id": 15002, + "nodeType": "Return", + "src": "12885:23:25" + } + ] + }, + "documentation": "@dev returns the effective rate of 1 primary token in secondary tokens\r\n\n * @return rate of 1 primary token in secondary tokens (numerator)\r\n@return rate of 1 primary token in secondary tokens (denominator)\r", + "id": 15004, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "effectiveTokensRate", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 14986, + "nodeType": "ParameterList", + "parameters": [], + "src": "12776:2:25" + }, + "payable": false, + "returnParameters": { + "id": 14991, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 14988, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 15004, + "src": "12800:7:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14987, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12800:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 14990, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 15004, + "src": "12809:7:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14989, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12809:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "12799:18:25" + }, + "scope": 16610, + "src": "12748:168:25", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 15039, + "nodeType": "Block", + "src": "13149:370:25", + "statements": [ + { + "assignments": [ + 15012 + ], + "declarations": [ + { + "constant": false, + "id": 15012, + "name": "rate", + "nodeType": "VariableDeclaration", + "scope": 15040, + "src": "13160:20:25", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Fraction_$14478_memory_ptr", + "typeString": "struct LiquidityPoolV2Converter.Fraction" + }, + "typeName": { + "contractScope": null, + "id": 15011, + "name": "Fraction", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 14478, + "src": "13160:8:25", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Fraction_$14478_storage_ptr", + "typeString": "struct LiquidityPoolV2Converter.Fraction" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 15015, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 15013, + "name": "_effectiveTokensRate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16230, + "src": "13183:20:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_struct$_Fraction_$14478_memory_ptr_$", + "typeString": "function () view returns (struct LiquidityPoolV2Converter.Fraction memory)" + } + }, + "id": 15014, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13183:22:25", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Fraction_$14478_memory_ptr", + "typeString": "struct LiquidityPoolV2Converter.Fraction memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "13160:45:25" + }, + { + "assignments": [ + 15017, + 15019 + ], + "declarations": [ + { + "constant": false, + "id": 15017, + "name": "primaryReserveWeight", + "nodeType": "VariableDeclaration", + "scope": 15040, + "src": "13217:27:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 15016, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "13217:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 15019, + "name": "secondaryReserveWeight", + "nodeType": "VariableDeclaration", + "scope": 15040, + "src": "13246:29:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 15018, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "13246:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 15023, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 15021, + "name": "rate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15012, + "src": "13303:4:25", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Fraction_$14478_memory_ptr", + "typeString": "struct LiquidityPoolV2Converter.Fraction memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Fraction_$14478_memory_ptr", + "typeString": "struct LiquidityPoolV2Converter.Fraction memory" + } + ], + "id": 15020, + "name": "effectiveReserveWeights", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 15040, + 16365 + ], + "referencedDeclaration": 16365, + "src": "13279:23:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Fraction_$14478_memory_ptr_$returns$_t_uint32_$_t_uint32_$", + "typeString": "function (struct LiquidityPoolV2Converter.Fraction memory) view returns (uint32,uint32)" + } + }, + "id": 15022, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13279:29:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint32_$_t_uint32_$", + "typeString": "tuple(uint32,uint32)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "13216:92:25" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + "id": 15028, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 15024, + "name": "primaryReserveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14482, + "src": "13325:19:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 15025, + "name": "reserveTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2516, + "src": "13348:13:25", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_storage", + "typeString": "contract IERC20Token[] storage ref" + } + }, + "id": 15027, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 15026, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13362:1:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "13348:16:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "src": "13325:39:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 15034, + "nodeType": "IfStatement", + "src": "13321:125:25", + "trueBody": { + "id": 15033, + "nodeType": "Block", + "src": "13366:80:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "id": 15029, + "name": "primaryReserveWeight", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15017, + "src": "13389:20:25", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + { + "argumentTypes": null, + "id": 15030, + "name": "secondaryReserveWeight", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15019, + "src": "13411:22:25", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + } + ], + "id": 15031, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "13388:46:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint32_$_t_uint32_$", + "typeString": "tuple(uint32,uint32)" + } + }, + "functionReturnParameters": 15010, + "id": 15032, + "nodeType": "Return", + "src": "13381:53:25" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "id": 15035, + "name": "secondaryReserveWeight", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15019, + "src": "13466:22:25", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + { + "argumentTypes": null, + "id": 15036, + "name": "primaryReserveWeight", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15017, + "src": "13490:20:25", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + } + ], + "id": 15037, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "13465:46:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint32_$_t_uint32_$", + "typeString": "tuple(uint32,uint32)" + } + }, + "functionReturnParameters": 15010, + "id": 15038, + "nodeType": "Return", + "src": "13458:53:25" + } + ] + }, + "documentation": "@dev returns the effective reserve tokens weights\r\n\n * @return reserve1 weight\r\n@return reserve2 weight\r", + "id": 15040, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "effectiveReserveWeights", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 15005, + "nodeType": "ParameterList", + "parameters": [], + "src": "13107:2:25" + }, + "payable": false, + "returnParameters": { + "id": 15010, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15007, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 15040, + "src": "13131:7:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 15006, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13131:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 15009, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 15040, + "src": "13140:7:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 15008, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13140:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "13130:18:25" + }, + "scope": 16610, + "src": "13075:444:25", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 15156, + "nodeType": "Block", + "src": "14138:1696:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 15056, + "name": "_sourceToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15042, + "src": "14286:12:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + ], + "id": 15055, + "name": "_validReserve", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2656, + "src": "14272:13:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_contract$_IERC20Token_$20240_$returns$__$", + "typeString": "function (contract IERC20Token) view" + } + }, + "id": 15057, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14272:27:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 15058, + "nodeType": "ExpressionStatement", + "src": "14272:27:25" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 15060, + "name": "_targetToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15044, + "src": "14324:12:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + ], + "id": 15059, + "name": "_validReserve", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2656, + "src": "14310:13:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_contract$_IERC20Token_$20240_$returns$__$", + "typeString": "function (contract IERC20Token) view" + } + }, + "id": 15061, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14310:27:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 15062, + "nodeType": "ExpressionStatement", + "src": "14310:27:25" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + "id": 15066, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 15064, + "name": "_sourceToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15042, + "src": "14356:12:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "id": 15065, + "name": "_targetToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15044, + "src": "14372:12:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "src": "14356:28:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4552525f53414d455f534f555243455f544152474554", + "id": 15067, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14386:24:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_238302f57e4481fe6a4c903e930919efa155f2aabe0b5da37da1448cea5fd634", + "typeString": "literal_string \"ERR_SAME_SOURCE_TARGET\"" + }, + "value": "ERR_SAME_SOURCE_TARGET" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_238302f57e4481fe6a4c903e930919efa155f2aabe0b5da37da1448cea5fd634", + "typeString": "literal_string \"ERR_SAME_SOURCE_TARGET\"" + } + ], + "id": 15063, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 22341, + 22342 + ], + "referencedDeclaration": 22342, + "src": "14348:7:25", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 15068, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14348:63:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 15069, + "nodeType": "ExpressionStatement", + "src": "14348:63:25" + }, + { + "assignments": [], + "declarations": [ + { + "constant": false, + "id": 15071, + "name": "sourceTokenWeight", + "nodeType": "VariableDeclaration", + "scope": 15157, + "src": "14522:24:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 15070, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "14522:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 15072, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "14522:24:25" + }, + { + "assignments": [], + "declarations": [ + { + "constant": false, + "id": 15074, + "name": "targetTokenWeight", + "nodeType": "VariableDeclaration", + "scope": 15157, + "src": "14557:24:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 15073, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "14557:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 15075, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "14557:24:25" + }, + { + "assignments": [], + "declarations": [ + { + "constant": false, + "id": 15077, + "name": "rate", + "nodeType": "VariableDeclaration", + "scope": 15157, + "src": "14721:20:25", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Fraction_$14478_memory_ptr", + "typeString": "struct LiquidityPoolV2Converter.Fraction" + }, + "typeName": { + "contractScope": null, + "id": 15076, + "name": "Fraction", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 14478, + "src": "14721:8:25", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Fraction_$14478_storage_ptr", + "typeString": "struct LiquidityPoolV2Converter.Fraction" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 15078, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "14721:20:25" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 15082, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 15079, + "name": "referenceRateUpdateTime", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14503, + "src": "14756:23:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 15080, + "name": "time", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16520, + "src": "14783:4:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 15081, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14783:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "14756:33:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 15137, + "nodeType": "Block", + "src": "14981:562:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 15105, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 15102, + "name": "rate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15077, + "src": "15047:4:25", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Fraction_$14478_memory_ptr", + "typeString": "struct LiquidityPoolV2Converter.Fraction memory" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 15103, + "name": "_effectiveTokensRate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16230, + "src": "15054:20:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_struct$_Fraction_$14478_memory_ptr_$", + "typeString": "function () view returns (struct LiquidityPoolV2Converter.Fraction memory)" + } + }, + "id": 15104, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15054:22:25", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Fraction_$14478_memory_ptr", + "typeString": "struct LiquidityPoolV2Converter.Fraction memory" + } + }, + "src": "15047:29:25", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Fraction_$14478_memory_ptr", + "typeString": "struct LiquidityPoolV2Converter.Fraction memory" + } + }, + "id": 15106, + "nodeType": "ExpressionStatement", + "src": "15047:29:25" + }, + { + "assignments": [ + 15108, + 15110 + ], + "declarations": [ + { + "constant": false, + "id": 15108, + "name": "primaryReserveWeight", + "nodeType": "VariableDeclaration", + "scope": 15157, + "src": "15092:27:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 15107, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "15092:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 15110, + "name": "secondaryReserveWeight", + "nodeType": "VariableDeclaration", + "scope": 15157, + "src": "15121:29:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 15109, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "15121:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 15114, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 15112, + "name": "rate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15077, + "src": "15178:4:25", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Fraction_$14478_memory_ptr", + "typeString": "struct LiquidityPoolV2Converter.Fraction memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Fraction_$14478_memory_ptr", + "typeString": "struct LiquidityPoolV2Converter.Fraction memory" + } + ], + "id": 15111, + "name": "effectiveReserveWeights", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 15040, + 16365 + ], + "referencedDeclaration": 16365, + "src": "15154:23:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Fraction_$14478_memory_ptr_$returns$_t_uint32_$_t_uint32_$", + "typeString": "function (struct LiquidityPoolV2Converter.Fraction memory) view returns (uint32,uint32)" + } + }, + "id": 15113, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15154:29:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint32_$_t_uint32_$", + "typeString": "tuple(uint32,uint32)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15091:92:25" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + "id": 15117, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 15115, + "name": "_sourceToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15042, + "src": "15204:12:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 15116, + "name": "primaryReserveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14482, + "src": "15220:19:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "src": "15204:35:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 15135, + "nodeType": "Block", + "src": "15396:136:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 15129, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 15127, + "name": "sourceTokenWeight", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15071, + "src": "15415:17:25", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 15128, + "name": "secondaryReserveWeight", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15110, + "src": "15435:22:25", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "15415:42:25", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "id": 15130, + "nodeType": "ExpressionStatement", + "src": "15415:42:25" + }, + { + "expression": { + "argumentTypes": null, + "id": 15133, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 15131, + "name": "targetTokenWeight", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15074, + "src": "15476:17:25", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 15132, + "name": "primaryReserveWeight", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15108, + "src": "15496:20:25", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "15476:40:25", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "id": 15134, + "nodeType": "ExpressionStatement", + "src": "15476:40:25" + } + ] + }, + "id": 15136, + "nodeType": "IfStatement", + "src": "15200:332:25", + "trueBody": { + "id": 15126, + "nodeType": "Block", + "src": "15241:136:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 15120, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 15118, + "name": "sourceTokenWeight", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15071, + "src": "15260:17:25", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 15119, + "name": "primaryReserveWeight", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15108, + "src": "15280:20:25", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "15260:40:25", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "id": 15121, + "nodeType": "ExpressionStatement", + "src": "15260:40:25" + }, + { + "expression": { + "argumentTypes": null, + "id": 15124, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 15122, + "name": "targetTokenWeight", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15074, + "src": "15319:17:25", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 15123, + "name": "secondaryReserveWeight", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15110, + "src": "15339:22:25", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "15319:42:25", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "id": 15125, + "nodeType": "ExpressionStatement", + "src": "15319:42:25" + } + ] + } + } + ] + }, + "id": 15138, + "nodeType": "IfStatement", + "src": "14752:791:25", + "trueBody": { + "id": 15101, + "nodeType": "Block", + "src": "14791:175:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 15085, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 15083, + "name": "rate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15077, + "src": "14806:4:25", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Fraction_$14478_memory_ptr", + "typeString": "struct LiquidityPoolV2Converter.Fraction memory" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 15084, + "name": "referenceRate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14501, + "src": "14813:13:25", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Fraction_$14478_storage", + "typeString": "struct LiquidityPoolV2Converter.Fraction storage ref" + } + }, + "src": "14806:20:25", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Fraction_$14478_memory_ptr", + "typeString": "struct LiquidityPoolV2Converter.Fraction memory" + } + }, + "id": 15086, + "nodeType": "ExpressionStatement", + "src": "14806:20:25" + }, + { + "expression": { + "argumentTypes": null, + "id": 15092, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 15087, + "name": "sourceTokenWeight", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15071, + "src": "14841:17:25", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 15088, + "name": "reserves", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2520, + "src": "14861:8:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Reserve_$2506_storage_$", + "typeString": "mapping(address => struct ConverterBase.Reserve storage ref)" + } + }, + "id": 15090, + "indexExpression": { + "argumentTypes": null, + "id": 15089, + "name": "_sourceToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15042, + "src": "14870:12:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "14861:22:25", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Reserve_$2506_storage", + "typeString": "struct ConverterBase.Reserve storage ref" + } + }, + "id": 15091, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "weight", + "nodeType": "MemberAccess", + "referencedDeclaration": 2499, + "src": "14861:29:25", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "14841:49:25", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "id": 15093, + "nodeType": "ExpressionStatement", + "src": "14841:49:25" + }, + { + "expression": { + "argumentTypes": null, + "id": 15099, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 15094, + "name": "targetTokenWeight", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15074, + "src": "14905:17:25", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 15095, + "name": "reserves", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2520, + "src": "14925:8:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Reserve_$2506_storage_$", + "typeString": "mapping(address => struct ConverterBase.Reserve storage ref)" + } + }, + "id": 15097, + "indexExpression": { + "argumentTypes": null, + "id": 15096, + "name": "_targetToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15044, + "src": "14934:12:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "14925:22:25", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Reserve_$2506_storage", + "typeString": "struct ConverterBase.Reserve storage ref" + } + }, + "id": 15098, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "weight", + "nodeType": "MemberAccess", + "referencedDeclaration": 2499, + "src": "14925:29:25", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "14905:49:25", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "id": 15100, + "nodeType": "ExpressionStatement", + "src": "14905:49:25" + } + ] + } + }, + { + "assignments": [ + 15140, + null, + 15142 + ], + "declarations": [ + { + "constant": false, + "id": 15140, + "name": "targetAmount", + "nodeType": "VariableDeclaration", + "scope": 15157, + "src": "15650:20:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 15139, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15650:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + null, + { + "constant": false, + "id": 15142, + "name": "fee", + "nodeType": "VariableDeclaration", + "scope": 15157, + "src": "15674:11:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 15141, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15674:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 15151, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 15144, + "name": "_sourceToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15042, + "src": "15709:12:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + { + "argumentTypes": null, + "id": 15145, + "name": "_targetToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15044, + "src": "15723:12:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + { + "argumentTypes": null, + "id": 15146, + "name": "sourceTokenWeight", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15071, + "src": "15737:17:25", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + { + "argumentTypes": null, + "id": 15147, + "name": "targetTokenWeight", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15074, + "src": "15756:17:25", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + { + "argumentTypes": null, + "id": 15148, + "name": "rate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15077, + "src": "15775:4:25", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Fraction_$14478_memory_ptr", + "typeString": "struct LiquidityPoolV2Converter.Fraction memory" + } + }, + { + "argumentTypes": null, + "id": 15149, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15046, + "src": "15781:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + { + "typeIdentifier": "t_struct$_Fraction_$14478_memory_ptr", + "typeString": "struct LiquidityPoolV2Converter.Fraction memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 15143, + "name": "targetAmountAndFees", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15917, + "src": "15689:19:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_contract$_IERC20Token_$20240_$_t_contract$_IERC20Token_$20240_$_t_uint32_$_t_uint32_$_t_struct$_Fraction_$14478_memory_ptr_$_t_uint256_$returns$_t_uint256_$_t_uint256_$_t_uint256_$", + "typeString": "function (contract IERC20Token,contract IERC20Token,uint32,uint32,struct LiquidityPoolV2Converter.Fraction memory,uint256) view returns (uint256,uint256,uint256)" + } + }, + "id": 15150, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15689:100:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256,uint256)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15649:140:25" + }, + { + "expression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "id": 15152, + "name": "targetAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15140, + "src": "15808:12:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 15153, + "name": "fee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15142, + "src": "15822:3:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 15154, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "15807:19:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "functionReturnParameters": 15054, + "id": 15155, + "nodeType": "Return", + "src": "15800:26:25" + } + ] + }, + "documentation": "@dev returns the expected target amount of converting one reserve to another along with the fee\r\n\n * @param _sourceToken contract address of the source reserve token\r\n@param _targetToken contract address of the target reserve token\r\n@param _amount amount of tokens received from the user\r\n\n * @return expected target amount\r\n@return expected fee\r", + "id": 15157, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [ + { + "arguments": null, + "id": 15049, + "modifierName": { + "argumentTypes": null, + "id": 15048, + "name": "active", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2604, + "src": "14090:6:25", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "14090:6:25" + } + ], + "name": "targetAmountAndFee", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 15047, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15042, + "name": "_sourceToken", + "nodeType": "VariableDeclaration", + "scope": 15157, + "src": "13982:24:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + "typeName": { + "contractScope": null, + "id": 15041, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "13982:11:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 15044, + "name": "_targetToken", + "nodeType": "VariableDeclaration", + "scope": 15157, + "src": "14008:24:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + "typeName": { + "contractScope": null, + "id": 15043, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "14008:11:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 15046, + "name": "_amount", + "nodeType": "VariableDeclaration", + "scope": 15157, + "src": "14034:15:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 15045, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14034:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "13981:69:25" + }, + "payable": false, + "returnParameters": { + "id": 15054, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15051, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 15157, + "src": "14115:7:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 15050, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14115:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 15053, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 15157, + "src": "14124:7:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 15052, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14124:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "14114:18:25" + }, + "scope": 16610, + "src": "13954:1880:25", + "stateMutability": "view", + "superFunction": 11681, + "visibility": "public" + }, + { + "body": { + "id": 15232, + "nodeType": "Block", + "src": "16686:832:25", + "statements": [ + { + "assignments": [ + 15181, + 15183 + ], + "declarations": [ + { + "constant": false, + "id": 15181, + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 15233, + "src": "16768:14:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 15180, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16768:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 15183, + "name": "fee", + "nodeType": "VariableDeclaration", + "scope": 15233, + "src": "16784:11:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 15182, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16784:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 15189, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 15185, + "name": "_sourceToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15159, + "src": "16809:12:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + { + "argumentTypes": null, + "id": 15186, + "name": "_targetToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15161, + "src": "16823:12:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + { + "argumentTypes": null, + "id": 15187, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15163, + "src": "16837:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 15184, + "name": "doConvert", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 15233, + 15362 + ], + "referencedDeclaration": 15362, + "src": "16799:9:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20Token_$20240_$_t_contract$_IERC20Token_$20240_$_t_uint256_$returns$_t_uint256_$_t_uint256_$", + "typeString": "function (contract IERC20Token,contract IERC20Token,uint256) returns (uint256,uint256)" + } + }, + "id": 15188, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16799:46:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "16767:78:25" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 15192, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 15190, + "name": "_targetToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15161, + "src": "16932:12:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 15191, + "name": "ETH_RESERVE_ADDRESS", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2495, + "src": "16948:19:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "16932:35:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 15206, + "nodeType": "Block", + "src": "17040:75:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 15201, + "name": "_targetToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15161, + "src": "17068:12:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + { + "argumentTypes": null, + "id": 15202, + "name": "_beneficiary", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15167, + "src": "17082:12:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 15203, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15181, + "src": "17096:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 15200, + "name": "safeTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21881, + "src": "17055:12:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20Token_$20240_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (contract IERC20Token,address,uint256)" + } + }, + "id": 15204, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17055:48:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 15205, + "nodeType": "ExpressionStatement", + "src": "17055:48:25" + } + ] + }, + "id": 15207, + "nodeType": "IfStatement", + "src": "16928:187:25", + "trueBody": { + "id": 15199, + "nodeType": "Block", + "src": "16969:56:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 15196, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15181, + "src": "17006:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 15193, + "name": "_beneficiary", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15167, + "src": "16984:12:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 15195, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "16984:21:25", + "typeDescriptions": { + "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 15197, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16984:29:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 15198, + "nodeType": "ExpressionStatement", + "src": "16984:29:25" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 15209, + "name": "_sourceToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15159, + "src": "17193:12:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + { + "argumentTypes": null, + "id": 15210, + "name": "_targetToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15161, + "src": "17207:12:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + { + "argumentTypes": null, + "id": 15211, + "name": "_trader", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15165, + "src": "17221:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 15212, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15163, + "src": "17230:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 15213, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15181, + "src": "17239:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 15214, + "name": "fee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15183, + "src": "17247:3:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 15208, + "name": "dispatchConversionEvent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3298, + "src": "17169:23:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20Token_$20240_$_t_contract$_IERC20Token_$20240_$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (contract IERC20Token,contract IERC20Token,address,uint256,uint256,uint256)" + } + }, + "id": 15215, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17169:82:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 15216, + "nodeType": "ExpressionStatement", + "src": "17169:82:25" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 15218, + "name": "_sourceToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15159, + "src": "17347:12:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + { + "argumentTypes": null, + "id": 15219, + "name": "_targetToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15161, + "src": "17361:12:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 15220, + "name": "reserves", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2520, + "src": "17375:8:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Reserve_$2506_storage_$", + "typeString": "mapping(address => struct ConverterBase.Reserve storage ref)" + } + }, + "id": 15222, + "indexExpression": { + "argumentTypes": null, + "id": 15221, + "name": "_sourceToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15159, + "src": "17384:12:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "17375:22:25", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Reserve_$2506_storage", + "typeString": "struct ConverterBase.Reserve storage ref" + } + }, + "id": 15223, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "weight", + "nodeType": "MemberAccess", + "referencedDeclaration": 2499, + "src": "17375:29:25", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 15224, + "name": "reserves", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2520, + "src": "17406:8:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Reserve_$2506_storage_$", + "typeString": "mapping(address => struct ConverterBase.Reserve storage ref)" + } + }, + "id": 15226, + "indexExpression": { + "argumentTypes": null, + "id": 15225, + "name": "_targetToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15161, + "src": "17415:12:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "17406:22:25", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Reserve_$2506_storage", + "typeString": "struct ConverterBase.Reserve storage ref" + } + }, + "id": 15227, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "weight", + "nodeType": "MemberAccess", + "referencedDeclaration": 2499, + "src": "17406:29:25", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + ], + "id": 15217, + "name": "dispatchRateEvents", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16463, + "src": "17328:18:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20Token_$20240_$_t_contract$_IERC20Token_$20240_$_t_uint32_$_t_uint32_$returns$__$", + "typeString": "function (contract IERC20Token,contract IERC20Token,uint32,uint32)" + } + }, + "id": 15228, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17328:108:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 15229, + "nodeType": "ExpressionStatement", + "src": "17328:108:25" + }, + { + "expression": { + "argumentTypes": null, + "id": 15230, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15181, + "src": "17504:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 15179, + "id": 15231, + "nodeType": "Return", + "src": "17497:13:25" + } + ] + }, + "documentation": "@dev converts a specific amount of source tokens to target tokens\r\ncan only be called by the SovrynSwap network contract\r\n\n * @param _sourceToken source ERC20 token\r\n@param _targetToken target ERC20 token\r\n@param _amount amount of tokens to convert (in units of the source token)\r\n@param _trader address of the caller who executed the conversion\r\n@param _beneficiary wallet to receive the conversion result\r\n\n * @return amount of tokens received (in units of the target token)\r", + "id": 15233, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 15170, + "modifierName": { + "argumentTypes": null, + "id": 15169, + "name": "active", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2604, + "src": "16575:6:25", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "16575:6:25" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 15172, + "name": "_sourceToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15159, + "src": "16604:12:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + } + ], + "id": 15173, + "modifierName": { + "argumentTypes": null, + "id": 15171, + "name": "validReserve", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2642, + "src": "16591:12:25", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_contract$_IERC20Token_$20240_$", + "typeString": "modifier (contract IERC20Token)" + } + }, + "nodeType": "ModifierInvocation", + "src": "16591:26:25" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 15175, + "name": "_targetToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15161, + "src": "16640:12:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + } + ], + "id": 15176, + "modifierName": { + "argumentTypes": null, + "id": 15174, + "name": "validReserve", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2642, + "src": "16627:12:25", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_contract$_IERC20Token_$20240_$", + "typeString": "modifier (contract IERC20Token)" + } + }, + "nodeType": "ModifierInvocation", + "src": "16627:26:25" + } + ], + "name": "doConvert", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 15168, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15159, + "name": "_sourceToken", + "nodeType": "VariableDeclaration", + "scope": 15233, + "src": "16440:24:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + "typeName": { + "contractScope": null, + "id": 15158, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "16440:11:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 15161, + "name": "_targetToken", + "nodeType": "VariableDeclaration", + "scope": 15233, + "src": "16466:24:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + "typeName": { + "contractScope": null, + "id": 15160, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "16466:11:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 15163, + "name": "_amount", + "nodeType": "VariableDeclaration", + "scope": 15233, + "src": "16492:15:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 15162, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16492:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 15165, + "name": "_trader", + "nodeType": "VariableDeclaration", + "scope": 15233, + "src": "16509:15:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 15164, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "16509:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 15167, + "name": "_beneficiary", + "nodeType": "VariableDeclaration", + "scope": 15233, + "src": "16526:20:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 15166, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "16526:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "16439:108:25" + }, + "payable": false, + "returnParameters": { + "id": 15179, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15178, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 15233, + "src": "16672:7:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 15177, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16672:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "16671:9:25" + }, + "scope": 16610, + "src": "16421:1097:25", + "stateMutability": "nonpayable", + "superFunction": 3188, + "visibility": "internal" + }, + { + "body": { + "id": 15361, + "nodeType": "Block", + "src": "18110:1564:25", + "statements": [ + { + "assignments": [ + 15247, + 15249 + ], + "declarations": [ + { + "constant": false, + "id": 15247, + "name": "rateUpdated", + "nodeType": "VariableDeclaration", + "scope": 15362, + "src": "18215:16:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 15246, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "18215:4:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 15249, + "name": "rate", + "nodeType": "VariableDeclaration", + "scope": 15362, + "src": "18233:20:25", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Fraction_$14478_memory_ptr", + "typeString": "struct LiquidityPoolV2Converter.Fraction" + }, + "typeName": { + "contractScope": null, + "id": 15248, + "name": "Fraction", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 14478, + "src": "18233:8:25", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Fraction_$14478_storage_ptr", + "typeString": "struct LiquidityPoolV2Converter.Fraction" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 15252, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 15250, + "name": "handleRateChange", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16293, + "src": "18257:16:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$__$returns$_t_bool_$_t_struct$_Fraction_$14478_memory_ptr_$", + "typeString": "function () returns (bool,struct LiquidityPoolV2Converter.Fraction memory)" + } + }, + "id": 15251, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18257:18:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_struct$_Fraction_$14478_memory_ptr_$", + "typeString": "tuple(bool,struct LiquidityPoolV2Converter.Fraction memory)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "18214:61:25" + }, + { + "assignments": [ + 15254, + 15256, + 15258 + ], + "declarations": [ + { + "constant": false, + "id": 15254, + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 15362, + "src": "18337:14:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 15253, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "18337:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 15256, + "name": "standardFee", + "nodeType": "VariableDeclaration", + "scope": 15362, + "src": "18353:19:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 15255, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "18353:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 15258, + "name": "dynamicFee", + "nodeType": "VariableDeclaration", + "scope": 15362, + "src": "18374:18:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 15257, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "18374:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 15267, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 15260, + "name": "_sourceToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15235, + "src": "18416:12:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + { + "argumentTypes": null, + "id": 15261, + "name": "_targetToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15237, + "src": "18430:12:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + { + "argumentTypes": null, + "hexValue": "30", + "id": 15262, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18444:1:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "argumentTypes": null, + "hexValue": "30", + "id": 15263, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18447:1:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "argumentTypes": null, + "id": 15264, + "name": "rate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15249, + "src": "18450:4:25", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Fraction_$14478_memory_ptr", + "typeString": "struct LiquidityPoolV2Converter.Fraction memory" + } + }, + { + "argumentTypes": null, + "id": 15265, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15239, + "src": "18456:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + { + "typeIdentifier": "t_struct$_Fraction_$14478_memory_ptr", + "typeString": "struct LiquidityPoolV2Converter.Fraction memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 15259, + "name": "targetAmountAndFees", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15917, + "src": "18396:19:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_contract$_IERC20Token_$20240_$_t_contract$_IERC20Token_$20240_$_t_uint32_$_t_uint32_$_t_struct$_Fraction_$14478_memory_ptr_$_t_uint256_$returns$_t_uint256_$_t_uint256_$_t_uint256_$", + "typeString": "function (contract IERC20Token,contract IERC20Token,uint32,uint32,struct LiquidityPoolV2Converter.Fraction memory,uint256) view returns (uint256,uint256,uint256)" + } + }, + "id": 15266, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18396:68:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256,uint256)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "18336:128:25" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 15271, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 15269, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15254, + "src": "18545:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 15270, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18555:1:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "18545:11:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4552525f5a45524f5f5441524745545f414d4f554e54", + "id": 15272, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18558:24:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_29cb0846c2d5a859f661a5b4c4a8be47a80ca27c24af6f007bda101871b53e03", + "typeString": "literal_string \"ERR_ZERO_TARGET_AMOUNT\"" + }, + "value": "ERR_ZERO_TARGET_AMOUNT" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_29cb0846c2d5a859f661a5b4c4a8be47a80ca27c24af6f007bda101871b53e03", + "typeString": "literal_string \"ERR_ZERO_TARGET_AMOUNT\"" + } + ], + "id": 15268, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 22341, + 22342 + ], + "referencedDeclaration": 22342, + "src": "18537:7:25", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 15273, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18537:46:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 15274, + "nodeType": "ExpressionStatement", + "src": "18537:46:25" + }, + { + "assignments": [ + 15276 + ], + "declarations": [ + { + "constant": false, + "id": 15276, + "name": "targetReserveBalance", + "nodeType": "VariableDeclaration", + "scope": 15362, + "src": "18664:28:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 15275, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "18664:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 15280, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 15278, + "name": "_targetToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15237, + "src": "18710:12:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + ], + "id": 15277, + "name": "reserveBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3106 + ], + "referencedDeclaration": 3106, + "src": "18695:14:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_contract$_IERC20Token_$20240_$returns$_t_uint256_$", + "typeString": "function (contract IERC20Token) view returns (uint256)" + } + }, + "id": 15279, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18695:28:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "18664:59:25" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 15284, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 15282, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15254, + "src": "18742:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 15283, + "name": "targetReserveBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15276, + "src": "18751:20:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "18742:29:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4552525f5441524745545f414d4f554e545f544f4f5f48494748", + "id": 15285, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18773:28:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_fdc80d750d844401c1a232f04c3112deb2cc8ccc9669c5f3a5374f1631159f12", + "typeString": "literal_string \"ERR_TARGET_AMOUNT_TOO_HIGH\"" + }, + "value": "ERR_TARGET_AMOUNT_TOO_HIGH" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_fdc80d750d844401c1a232f04c3112deb2cc8ccc9669c5f3a5374f1631159f12", + "typeString": "literal_string \"ERR_TARGET_AMOUNT_TOO_HIGH\"" + } + ], + "id": 15281, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 22341, + 22342 + ], + "referencedDeclaration": 22342, + "src": "18734:7:25", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 15286, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18734:68:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 15287, + "nodeType": "ExpressionStatement", + "src": "18734:68:25" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 15290, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 15288, + "name": "_sourceToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15235, + "src": "18882:12:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 15289, + "name": "ETH_RESERVE_ADDRESS", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2495, + "src": "18898:19:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "18882:35:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 15315, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 15303, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 15300, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22338, + "src": "19025:3:25", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 15301, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "19025:9:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 15302, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19038:1:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "19025:14:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 15314, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 15310, + "name": "_sourceToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15235, + "src": "19091:12:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + ], + "id": 15309, + "name": "reserveBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3106 + ], + "referencedDeclaration": 3106, + "src": "19076:14:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_contract$_IERC20Token_$20240_$returns$_t_uint256_$", + "typeString": "function (contract IERC20Token) view returns (uint256)" + } + }, + "id": 15311, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19076:28:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 15306, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22451, + "src": "19066:4:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_LiquidityPoolV2Converter_$16610", + "typeString": "contract LiquidityPoolV2Converter" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_LiquidityPoolV2Converter_$16610", + "typeString": "contract LiquidityPoolV2Converter" + } + ], + "expression": { + "argumentTypes": null, + "id": 15304, + "name": "_sourceToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15235, + "src": "19043:12:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "id": 15305, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 20194, + "src": "19043:22:25", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 15307, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19043:28:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 15308, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 21758, + "src": "19043:32:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 15312, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19043:62:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 15313, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15239, + "src": "19109:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19043:73:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "19025:91:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4552525f494e56414c49445f414d4f554e54", + "id": 15316, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19118:20:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c44007bfe4e704be0ed1393660a827b4f88825f4b6fe1bc10cd38fc3fcb7d839", + "typeString": "literal_string \"ERR_INVALID_AMOUNT\"" + }, + "value": "ERR_INVALID_AMOUNT" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c44007bfe4e704be0ed1393660a827b4f88825f4b6fe1bc10cd38fc3fcb7d839", + "typeString": "literal_string \"ERR_INVALID_AMOUNT\"" + } + ], + "id": 15299, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 22341, + 22342 + ], + "referencedDeclaration": 22342, + "src": "19017:7:25", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 15317, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19017:122:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 15318, + "nodeType": "ExpressionStatement", + "src": "19017:122:25" + }, + "id": 15319, + "nodeType": "IfStatement", + "src": "18878:261:25", + "trueBody": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 15295, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 15292, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22338, + "src": "18940:3:25", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 15293, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "18940:9:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 15294, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15239, + "src": "18953:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "18940:20:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4552525f4554485f414d4f554e545f4d49534d41544348", + "id": 15296, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18962:25:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_b27c160ac497b67c4fef6b5554e0b1a41f3c9b44e4bd8482662df760b76c093b", + "typeString": "literal_string \"ERR_ETH_AMOUNT_MISMATCH\"" + }, + "value": "ERR_ETH_AMOUNT_MISMATCH" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_b27c160ac497b67c4fef6b5554e0b1a41f3c9b44e4bd8482662df760b76c093b", + "typeString": "literal_string \"ERR_ETH_AMOUNT_MISMATCH\"" + } + ], + "id": 15291, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 22341, + 22342 + ], + "referencedDeclaration": 22342, + "src": "18932:7:25", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 15297, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18932:56:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 15298, + "nodeType": "ExpressionStatement", + "src": "18932:56:25" + } + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 15321, + "name": "_sourceToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15235, + "src": "19209:12:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + ], + "id": 15320, + "name": "syncReserveBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3237, + "src": "19190:18:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20Token_$20240_$returns$__$", + "typeString": "function (contract IERC20Token)" + } + }, + "id": 15322, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19190:32:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 15323, + "nodeType": "ExpressionStatement", + "src": "19190:32:25" + }, + { + "expression": { + "argumentTypes": null, + "id": 15332, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 15324, + "name": "reserves", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2520, + "src": "19233:8:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Reserve_$2506_storage_$", + "typeString": "mapping(address => struct ConverterBase.Reserve storage ref)" + } + }, + "id": 15326, + "indexExpression": { + "argumentTypes": null, + "id": 15325, + "name": "_targetToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15237, + "src": "19242:12:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "19233:22:25", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Reserve_$2506_storage", + "typeString": "struct ConverterBase.Reserve storage ref" + } + }, + "id": 15327, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "balance", + "nodeType": "MemberAccess", + "referencedDeclaration": 2497, + "src": "19233:30:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 15330, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15254, + "src": "19291:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 15328, + "name": "targetReserveBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15276, + "src": "19266:20:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 15329, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 21758, + "src": "19266:24:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 15331, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19266:32:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19233:65:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 15333, + "nodeType": "ExpressionStatement", + "src": "19233:65:25" + }, + { + "expression": { + "argumentTypes": null, + "id": 15343, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 15334, + "name": "stakedBalances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14488, + "src": "19369:14:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 15336, + "indexExpression": { + "argumentTypes": null, + "id": 15335, + "name": "_targetToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15237, + "src": "19384:12:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "19369:28:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 15341, + "name": "standardFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15256, + "src": "19433:11:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 15337, + "name": "stakedBalances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14488, + "src": "19400:14:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 15339, + "indexExpression": { + "argumentTypes": null, + "id": 15338, + "name": "_targetToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15237, + "src": "19415:12:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "19400:28:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 15340, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 21737, + "src": "19400:32:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 15342, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19400:45:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19369:76:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 15344, + "nodeType": "ExpressionStatement", + "src": "19369:76:25" + }, + { + "condition": { + "argumentTypes": null, + "id": 15345, + "name": "rateUpdated", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15247, + "src": "19506:11:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 15356, + "nodeType": "IfStatement", + "src": "19502:125:25", + "trueBody": { + "id": 15355, + "nodeType": "Block", + "src": "19519:108:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 15353, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 15346, + "name": "lastConversionRate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14505, + "src": "19534:18:25", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Fraction_$14478_storage", + "typeString": "struct LiquidityPoolV2Converter.Fraction storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 15348, + "name": "primaryReserveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14482, + "src": "19566:19:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + { + "argumentTypes": null, + "id": 15349, + "name": "secondaryReserveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14484, + "src": "19587:21:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + { + "argumentTypes": null, + "hexValue": "30", + "id": 15350, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19610:1:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "argumentTypes": null, + "hexValue": "30", + "id": 15351, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19613:1:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 15347, + "name": "tokensRate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16426, + "src": "19555:10:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_contract$_IERC20Token_$20240_$_t_contract$_IERC20Token_$20240_$_t_uint32_$_t_uint32_$returns$_t_struct$_Fraction_$14478_memory_ptr_$", + "typeString": "function (contract IERC20Token,contract IERC20Token,uint32,uint32) view returns (struct LiquidityPoolV2Converter.Fraction memory)" + } + }, + "id": 15352, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19555:60:25", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Fraction_$14478_memory_ptr", + "typeString": "struct LiquidityPoolV2Converter.Fraction memory" + } + }, + "src": "19534:81:25", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Fraction_$14478_storage", + "typeString": "struct LiquidityPoolV2Converter.Fraction storage ref" + } + }, + "id": 15354, + "nodeType": "ExpressionStatement", + "src": "19534:81:25" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "id": 15357, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15254, + "src": "19647:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 15358, + "name": "dynamicFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15258, + "src": "19655:10:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 15359, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "19646:20:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "functionReturnParameters": 15245, + "id": 15360, + "nodeType": "Return", + "src": "19639:27:25" + } + ] + }, + "documentation": "@dev converts a specific amount of source tokens to target tokens\r\ncan only be called by the SovrynSwap network contract\r\n\n * @param _sourceToken source ERC20 token\r\n@param _targetToken target ERC20 token\r\n@param _amount amount of tokens to convert (in units of the source token)\r\n\n * @return amount of tokens received (in units of the target token)\r\n@return expected fee\r", + "id": 15362, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "doConvert", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 15240, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15235, + "name": "_sourceToken", + "nodeType": "VariableDeclaration", + "scope": 15362, + "src": "18006:24:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + "typeName": { + "contractScope": null, + "id": 15234, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "18006:11:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 15237, + "name": "_targetToken", + "nodeType": "VariableDeclaration", + "scope": 15362, + "src": "18032:24:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + "typeName": { + "contractScope": null, + "id": 15236, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "18032:11:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 15239, + "name": "_amount", + "nodeType": "VariableDeclaration", + "scope": 15362, + "src": "18058:15:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 15238, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "18058:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "18005:69:25" + }, + "payable": false, + "returnParameters": { + "id": 15245, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15242, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 15362, + "src": "18092:7:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 15241, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "18092:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 15244, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 15362, + "src": "18101:7:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 15243, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "18101:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "18091:18:25" + }, + "scope": 16610, + "src": "17987:1687:25", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "private" + }, + { + "body": { + "id": 15579, + "nodeType": "Block", + "src": "20361:3047:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 15389, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 15387, + "name": "_reserveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15364, + "src": "20482:13:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 15388, + "name": "ETH_RESERVE_ADDRESS", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2495, + "src": "20499:19:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "20482:36:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 15397, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 15394, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22338, + "src": "20544:3:25", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 15395, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "20544:9:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 15396, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20557:1:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "20544:14:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 15398, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "20482:76:25", + "trueExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 15393, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 15390, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22338, + "src": "20521:3:25", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 15391, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "20521:9:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 15392, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15366, + "src": "20534:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "20521:20:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4552525f4554485f414d4f554e545f4d49534d41544348", + "id": 15399, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20560:25:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_b27c160ac497b67c4fef6b5554e0b1a41f3c9b44e4bd8482662df760b76c093b", + "typeString": "literal_string \"ERR_ETH_AMOUNT_MISMATCH\"" + }, + "value": "ERR_ETH_AMOUNT_MISMATCH" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_b27c160ac497b67c4fef6b5554e0b1a41f3c9b44e4bd8482662df760b76c093b", + "typeString": "literal_string \"ERR_ETH_AMOUNT_MISMATCH\"" + } + ], + "id": 15386, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 22341, + 22342 + ], + "referencedDeclaration": 22342, + "src": "20474:7:25", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 15400, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20474:112:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 15401, + "nodeType": "ExpressionStatement", + "src": "20474:112:25" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 15402, + "name": "syncReserveBalances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3263, + "src": "20650:19:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", + "typeString": "function ()" + } + }, + "id": 15403, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20650:21:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 15404, + "nodeType": "ExpressionStatement", + "src": "20650:21:25" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 15407, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 15405, + "name": "_reserveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15364, + "src": "20794:13:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 15406, + "name": "ETH_RESERVE_ADDRESS", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2495, + "src": "20811:19:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "20794:36:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 15422, + "nodeType": "IfStatement", + "src": "20790:147:25", + "trueBody": { + "expression": { + "argumentTypes": null, + "id": 15420, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 15408, + "name": "reserves", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2520, + "src": "20845:8:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Reserve_$2506_storage_$", + "typeString": "mapping(address => struct ConverterBase.Reserve storage ref)" + } + }, + "id": 15410, + "indexExpression": { + "argumentTypes": null, + "id": 15409, + "name": "ETH_RESERVE_ADDRESS", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2495, + "src": "20854:19:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "20845:29:25", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Reserve_$2506_storage", + "typeString": "struct ConverterBase.Reserve storage ref" + } + }, + "id": 15411, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "balance", + "nodeType": "MemberAccess", + "referencedDeclaration": 2497, + "src": "20845:37:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 15417, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22338, + "src": "20927:3:25", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 15418, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "20927:9:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 15412, + "name": "reserves", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2520, + "src": "20885:8:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Reserve_$2506_storage_$", + "typeString": "mapping(address => struct ConverterBase.Reserve storage ref)" + } + }, + "id": 15414, + "indexExpression": { + "argumentTypes": null, + "id": 15413, + "name": "ETH_RESERVE_ADDRESS", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2495, + "src": "20894:19:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "20885:29:25", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Reserve_$2506_storage", + "typeString": "struct ConverterBase.Reserve storage ref" + } + }, + "id": 15415, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "balance", + "nodeType": "MemberAccess", + "referencedDeclaration": 2497, + "src": "20885:37:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 15416, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 21758, + "src": "20885:41:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 15419, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20885:52:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "20845:92:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 15421, + "nodeType": "ExpressionStatement", + "src": "20845:92:25" + } + }, + { + "assignments": [ + 15424 + ], + "declarations": [ + { + "constant": false, + "id": 15424, + "name": "initialStakedBalance", + "nodeType": "VariableDeclaration", + "scope": 15580, + "src": "21027:28:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 15423, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "21027:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 15428, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 15425, + "name": "stakedBalances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14488, + "src": "21058:14:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 15427, + "indexExpression": { + "argumentTypes": null, + "id": 15426, + "name": "_reserveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15364, + "src": "21073:13:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "21058:29:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "21027:60:25" + }, + { + "condition": { + "argumentTypes": null, + "id": 15429, + "name": "maxStakedBalanceEnabled", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14512, + "src": "21202:23:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 15449, + "nodeType": "IfStatement", + "src": "21198:209:25", + "trueBody": { + "id": 15448, + "nodeType": "Block", + "src": "21227:180:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 15444, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 15435, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 15431, + "name": "maxStakedBalances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14509, + "src": "21250:17:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 15433, + "indexExpression": { + "argumentTypes": null, + "id": 15432, + "name": "_reserveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15364, + "src": "21268:13:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "21250:32:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 15434, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "21286:1:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "21250:37:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 15443, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 15438, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15366, + "src": "21316:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 15436, + "name": "initialStakedBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15424, + "src": "21291:20:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 15437, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 21737, + "src": "21291:24:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 15439, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21291:33:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 15440, + "name": "maxStakedBalances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14509, + "src": "21328:17:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 15442, + "indexExpression": { + "argumentTypes": null, + "id": 15441, + "name": "_reserveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15364, + "src": "21346:13:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "21328:32:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "21291:69:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "21250:110:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4552525f4d41585f5354414b45445f42414c414e43455f52454143484544", + "id": 15445, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "21362:32:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_e71abaa0836b516acb5bcc1418977bbb31101745086dfce64d3b60d38c4171f5", + "typeString": "literal_string \"ERR_MAX_STAKED_BALANCE_REACHED\"" + }, + "value": "ERR_MAX_STAKED_BALANCE_REACHED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_e71abaa0836b516acb5bcc1418977bbb31101745086dfce64d3b60d38c4171f5", + "typeString": "literal_string \"ERR_MAX_STAKED_BALANCE_REACHED\"" + } + ], + "id": 15430, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 22341, + 22342 + ], + "referencedDeclaration": 22342, + "src": "21242:7:25", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 15446, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21242:153:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 15447, + "nodeType": "ExpressionStatement", + "src": "21242:153:25" + } + ] + } + }, + { + "assignments": [ + 15451 + ], + "declarations": [ + { + "constant": false, + "id": 15451, + "name": "reservePoolToken", + "nodeType": "VariableDeclaration", + "scope": 15580, + "src": "21493:28:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISmartToken_$20295", + "typeString": "contract ISmartToken" + }, + "typeName": { + "contractScope": null, + "id": 15450, + "name": "ISmartToken", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20295, + "src": "21493:11:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISmartToken_$20295", + "typeString": "contract ISmartToken" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 15455, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 15452, + "name": "reservesToPoolTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14492, + "src": "21524:20:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_contract$_ISmartToken_$20295_$", + "typeString": "mapping(address => contract ISmartToken)" + } + }, + "id": 15454, + "indexExpression": { + "argumentTypes": null, + "id": 15453, + "name": "_reserveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15364, + "src": "21545:13:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "21524:35:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISmartToken_$20295", + "typeString": "contract ISmartToken" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "21493:66:25" + }, + { + "assignments": [ + 15457 + ], + "declarations": [ + { + "constant": false, + "id": 15457, + "name": "poolTokenSupply", + "nodeType": "VariableDeclaration", + "scope": 15580, + "src": "21570:23:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 15456, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "21570:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 15461, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 15458, + "name": "reservePoolToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15451, + "src": "21596:16:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISmartToken_$20295", + "typeString": "contract ISmartToken" + } + }, + "id": 15459, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "totalSupply", + "nodeType": "MemberAccess", + "referencedDeclaration": 20182, + "src": "21596:28:25", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", + "typeString": "function () view external returns (uint256)" + } + }, + "id": 15460, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21596:30:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "21570:56:25" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 15464, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 15462, + "name": "_reserveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15364, + "src": "21721:13:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "id": 15463, + "name": "ETH_RESERVE_ADDRESS", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2495, + "src": "21738:19:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "21721:36:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 15473, + "nodeType": "IfStatement", + "src": "21717:113:25", + "trueBody": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 15466, + "name": "_reserveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15364, + "src": "21789:13:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 15467, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22338, + "src": "21804:3:25", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 15468, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "21804:10:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 15469, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22451, + "src": "21816:4:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_LiquidityPoolV2Converter_$16610", + "typeString": "contract LiquidityPoolV2Converter" + } + }, + { + "argumentTypes": null, + "id": 15470, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15366, + "src": "21822:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_contract$_LiquidityPoolV2Converter_$16610", + "typeString": "contract LiquidityPoolV2Converter" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 15465, + "name": "safeTransferFrom", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21904, + "src": "21772:16:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20Token_$20240_$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (contract IERC20Token,address,address,uint256)" + } + }, + "id": 15471, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21772:58:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 15472, + "nodeType": "ExpressionStatement", + "src": "21772:58:25" + } + }, + { + "expression": { + "argumentTypes": null, + "id": 15485, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 15474, + "name": "reserves", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2520, + "src": "21897:8:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Reserve_$2506_storage_$", + "typeString": "mapping(address => struct ConverterBase.Reserve storage ref)" + } + }, + "id": 15476, + "indexExpression": { + "argumentTypes": null, + "id": 15475, + "name": "_reserveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15364, + "src": "21906:13:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "21897:23:25", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Reserve_$2506_storage", + "typeString": "struct ConverterBase.Reserve storage ref" + } + }, + "id": 15477, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "balance", + "nodeType": "MemberAccess", + "referencedDeclaration": 2497, + "src": "21897:31:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 15483, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15366, + "src": "21967:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 15478, + "name": "reserves", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2520, + "src": "21931:8:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Reserve_$2506_storage_$", + "typeString": "mapping(address => struct ConverterBase.Reserve storage ref)" + } + }, + "id": 15480, + "indexExpression": { + "argumentTypes": null, + "id": 15479, + "name": "_reserveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15364, + "src": "21940:13:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "21931:23:25", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Reserve_$2506_storage", + "typeString": "struct ConverterBase.Reserve storage ref" + } + }, + "id": 15481, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "balance", + "nodeType": "MemberAccess", + "referencedDeclaration": 2497, + "src": "21931:31:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 15482, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 21737, + "src": "21931:35:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 15484, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21931:44:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "21897:78:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 15486, + "nodeType": "ExpressionStatement", + "src": "21897:78:25" + }, + { + "expression": { + "argumentTypes": null, + "id": 15494, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 15487, + "name": "stakedBalances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14488, + "src": "21986:14:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 15489, + "indexExpression": { + "argumentTypes": null, + "id": 15488, + "name": "_reserveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15364, + "src": "22001:13:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "21986:29:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 15492, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15366, + "src": "22043:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 15490, + "name": "initialStakedBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15424, + "src": "22018:20:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 15491, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 21737, + "src": "22018:24:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 15493, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "22018:33:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "21986:65:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 15495, + "nodeType": "ExpressionStatement", + "src": "21986:65:25" + }, + { + "assignments": [ + 15497 + ], + "declarations": [ + { + "constant": false, + "id": 15497, + "name": "poolTokenAmount", + "nodeType": "VariableDeclaration", + "scope": 15580, + "src": "22271:23:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 15496, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "22271:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 15499, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 15498, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22297:1:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "22271:27:25" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 15506, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 15502, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 15500, + "name": "initialStakedBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15424, + "src": "22313:20:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 15501, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22337:1:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "22313:25:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 15505, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 15503, + "name": "poolTokenSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15457, + "src": "22342:15:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 15504, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22361:1:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "22342:20:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "22313:49:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "expression": { + "argumentTypes": null, + "id": 15519, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 15511, + "name": "poolTokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15497, + "src": "22431:15:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 15517, + "name": "initialStakedBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15424, + "src": "22482:20:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 15514, + "name": "poolTokenSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15457, + "src": "22461:15:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 15512, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15366, + "src": "22449:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 15513, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 21791, + "src": "22449:11:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 15515, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "22449:28:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 15516, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "div", + "nodeType": "MemberAccess", + "referencedDeclaration": 21816, + "src": "22449:32:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 15518, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "22449:54:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "22431:72:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 15520, + "nodeType": "ExpressionStatement", + "src": "22431:72:25" + }, + "id": 15521, + "nodeType": "IfStatement", + "src": "22309:194:25", + "trueBody": { + "expression": { + "argumentTypes": null, + "id": 15509, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 15507, + "name": "poolTokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15497, + "src": "22377:15:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 15508, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15366, + "src": "22395:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "22377:25:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 15510, + "nodeType": "ExpressionStatement", + "src": "22377:25:25" + } + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 15525, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 15523, + "name": "poolTokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15497, + "src": "22522:15:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 15524, + "name": "_minReturn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15368, + "src": "22541:10:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "22522:29:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4552525f52455455524e5f544f4f5f4c4f57", + "id": 15526, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22553:20:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c3237cc40443cfd1e0e9492ef35b7447eab6349fb6eac5eb1ec626edd3c555aa", + "typeString": "literal_string \"ERR_RETURN_TOO_LOW\"" + }, + "value": "ERR_RETURN_TOO_LOW" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c3237cc40443cfd1e0e9492ef35b7447eab6349fb6eac5eb1ec626edd3c555aa", + "typeString": "literal_string \"ERR_RETURN_TOO_LOW\"" + } + ], + "id": 15522, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 22341, + 22342 + ], + "referencedDeclaration": 22342, + "src": "22514:7:25", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 15527, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "22514:60:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 15528, + "nodeType": "ExpressionStatement", + "src": "22514:60:25" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 15533, + "name": "reservePoolToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15451, + "src": "22668:16:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISmartToken_$20295", + "typeString": "contract ISmartToken" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 15534, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22338, + "src": "22686:3:25", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 15535, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "22686:10:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 15536, + "name": "poolTokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15497, + "src": "22698:15:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_ISmartToken_$20295", + "typeString": "contract ISmartToken" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 15530, + "name": "anchor", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2511 + ], + "referencedDeclaration": 2511, + "src": "22655:6:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + ], + "id": 15529, + "name": "IPoolTokensContainer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17009, + "src": "22634:20:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IPoolTokensContainer_$17009_$", + "typeString": "type(contract IPoolTokensContainer)" + } + }, + "id": 15531, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "22634:28:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IPoolTokensContainer_$17009", + "typeString": "contract IPoolTokensContainer" + } + }, + "id": 15532, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mint", + "nodeType": "MemberAccess", + "referencedDeclaration": 16999, + "src": "22634:33:25", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_contract$_ISmartToken_$20295_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (contract ISmartToken,address,uint256) external" + } + }, + "id": 15537, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "22634:80:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 15538, + "nodeType": "ExpressionStatement", + "src": "22634:80:25" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 15539, + "name": "rebalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16319, + "src": "22776:9:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", + "typeString": "function ()" + } + }, + "id": 15540, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "22776:11:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 15541, + "nodeType": "ExpressionStatement", + "src": "22776:11:25" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 15543, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22338, + "src": "22866:3:25", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 15544, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "22866:10:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 15545, + "name": "_reserveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15364, + "src": "22878:13:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + { + "argumentTypes": null, + "id": 15546, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15366, + "src": "22893:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 15549, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15366, + "src": "22927:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 15547, + "name": "initialStakedBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15424, + "src": "22902:20:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 15548, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 21737, + "src": "22902:24:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 15550, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "22902:33:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 15553, + "name": "poolTokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15497, + "src": "22957:15:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 15551, + "name": "poolTokenSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15457, + "src": "22937:15:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 15552, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 21737, + "src": "22937:19:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 15554, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "22937:36:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 15542, + "name": "LiquidityAdded", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6165, + "src": "22851:14:25", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256,uint256,uint256)" + } + }, + "id": 15555, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "22851:123:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 15556, + "nodeType": "EmitStatement", + "src": "22846:128:25" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 15558, + "name": "reservePoolToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15451, + "src": "23088:16:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISmartToken_$20295", + "typeString": "contract ISmartToken" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 15561, + "name": "poolTokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15497, + "src": "23126:15:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 15559, + "name": "poolTokenSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15457, + "src": "23106:15:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 15560, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 21737, + "src": "23106:19:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 15562, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "23106:36:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 15563, + "name": "_reserveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15364, + "src": "23144:13:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_ISmartToken_$20295", + "typeString": "contract ISmartToken" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + ], + "id": 15557, + "name": "dispatchPoolTokenRateUpdateEvent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16512, + "src": "23055:32:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_ISmartToken_$20295_$_t_uint256_$_t_contract$_IERC20Token_$20240_$returns$__$", + "typeString": "function (contract ISmartToken,uint256,contract IERC20Token)" + } + }, + "id": 15564, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "23055:103:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 15565, + "nodeType": "ExpressionStatement", + "src": "23055:103:25" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 15567, + "name": "reserveTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2516, + "src": "23272:13:25", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_storage", + "typeString": "contract IERC20Token[] storage ref" + } + }, + "id": 15569, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 15568, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "23286:1:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "23272:16:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 15570, + "name": "reserveTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2516, + "src": "23290:13:25", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_storage", + "typeString": "contract IERC20Token[] storage ref" + } + }, + "id": 15572, + "indexExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 15571, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "23304:1:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "23290:16:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + { + "argumentTypes": null, + "hexValue": "30", + "id": 15573, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "23308:1:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "argumentTypes": null, + "hexValue": "30", + "id": 15574, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "23311:1:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 15566, + "name": "dispatchTokenRateUpdateEvent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16493, + "src": "23243:28:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20Token_$20240_$_t_contract$_IERC20Token_$20240_$_t_uint32_$_t_uint32_$returns$__$", + "typeString": "function (contract IERC20Token,contract IERC20Token,uint32,uint32)" + } + }, + "id": 15575, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "23243:70:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 15576, + "nodeType": "ExpressionStatement", + "src": "23243:70:25" + }, + { + "expression": { + "argumentTypes": null, + "id": 15577, + "name": "poolTokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15497, + "src": "23385:15:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 15385, + "id": 15578, + "nodeType": "Return", + "src": "23378:22:25" + } + ] + }, + "documentation": "@dev increases the pool's liquidity and mints new shares in the pool to the caller\r\n\n * @param _reserveToken address of the reserve token to add liquidity to\r\n@param _amount amount of liquidity to add\r\n@param _minReturn minimum return-amount of pool tokens\r\n\n * @return amount of pool tokens minted\r", + "id": 15580, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 15371, + "modifierName": { + "argumentTypes": null, + "id": 15370, + "name": "protected", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21698, + "src": "20195:9:25", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "20195:9:25" + }, + { + "arguments": null, + "id": 15373, + "modifierName": { + "argumentTypes": null, + "id": 15372, + "name": "active", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2604, + "src": "20214:6:25", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "20214:6:25" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 15375, + "name": "_reserveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15364, + "src": "20243:13:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + } + ], + "id": 15376, + "modifierName": { + "argumentTypes": null, + "id": 15374, + "name": "validReserve", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2642, + "src": "20230:12:25", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_contract$_IERC20Token_$20240_$", + "typeString": "modifier (contract IERC20Token)" + } + }, + "nodeType": "ModifierInvocation", + "src": "20230:27:25" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 15378, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15366, + "src": "20283:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 15379, + "modifierName": { + "argumentTypes": null, + "id": 15377, + "name": "greaterThanZero", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21988, + "src": "20267:15:25", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$", + "typeString": "modifier (uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "20267:24:25" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 15381, + "name": "_minReturn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15368, + "src": "20317:10:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 15382, + "modifierName": { + "argumentTypes": null, + "id": 15380, + "name": "greaterThanZero", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21988, + "src": "20301:15:25", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$", + "typeString": "modifier (uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "20301:27:25" + } + ], + "name": "addLiquidity", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 15369, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15364, + "name": "_reserveToken", + "nodeType": "VariableDeclaration", + "scope": 15580, + "src": "20089:25:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + "typeName": { + "contractScope": null, + "id": 15363, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "20089:11:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 15366, + "name": "_amount", + "nodeType": "VariableDeclaration", + "scope": 15580, + "src": "20116:15:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 15365, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "20116:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 15368, + "name": "_minReturn", + "nodeType": "VariableDeclaration", + "scope": 15580, + "src": "20133:18:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 15367, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "20133:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "20088:64:25" + }, + "payable": true, + "returnParameters": { + "id": 15385, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15384, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 15580, + "src": "20347:7:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 15383, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "20347:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "20346:9:25" + }, + "scope": 16610, + "src": "20067:3341:25", + "stateMutability": "payable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 15728, + "nodeType": "Block", + "src": "24042:1954:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 15604, + "name": "syncReserveBalances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3263, + "src": "24104:19:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", + "typeString": "function ()" + } + }, + "id": 15605, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "24104:21:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 15606, + "nodeType": "ExpressionStatement", + "src": "24104:21:25" + }, + { + "assignments": [ + 15608 + ], + "declarations": [ + { + "constant": false, + "id": 15608, + "name": "initialPoolSupply", + "nodeType": "VariableDeclaration", + "scope": 15729, + "src": "24211:25:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 15607, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "24211:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 15612, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 15609, + "name": "_poolToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15582, + "src": "24239:10:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISmartToken_$20295", + "typeString": "contract ISmartToken" + } + }, + "id": 15610, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "totalSupply", + "nodeType": "MemberAccess", + "referencedDeclaration": 20182, + "src": "24239:22:25", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", + "typeString": "function () view external returns (uint256)" + } + }, + "id": 15611, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "24239:24:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "24211:52:25" + }, + { + "assignments": [ + 15614, + null + ], + "declarations": [ + { + "constant": false, + "id": 15614, + "name": "reserveAmount", + "nodeType": "VariableDeclaration", + "scope": 15729, + "src": "24353:21:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 15613, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "24353:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + null + ], + "id": 15619, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 15616, + "name": "_poolToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15582, + "src": "24408:10:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISmartToken_$20295", + "typeString": "contract ISmartToken" + } + }, + { + "argumentTypes": null, + "id": 15617, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15584, + "src": "24420:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_ISmartToken_$20295", + "typeString": "contract ISmartToken" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 15615, + "name": "removeLiquidityReturnAndFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15820, + "src": "24380:27:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_contract$_ISmartToken_$20295_$_t_uint256_$returns$_t_uint256_$_t_uint256_$", + "typeString": "function (contract ISmartToken,uint256) view returns (uint256,uint256)" + } + }, + "id": 15618, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "24380:48:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "24352:76:25" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 15623, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 15621, + "name": "reserveAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15614, + "src": "24447:13:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 15622, + "name": "_minReturn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15586, + "src": "24464:10:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "24447:27:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4552525f52455455524e5f544f4f5f4c4f57", + "id": 15624, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "24476:20:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c3237cc40443cfd1e0e9492ef35b7447eab6349fb6eac5eb1ec626edd3c555aa", + "typeString": "literal_string \"ERR_RETURN_TOO_LOW\"" + }, + "value": "ERR_RETURN_TOO_LOW" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c3237cc40443cfd1e0e9492ef35b7447eab6349fb6eac5eb1ec626edd3c555aa", + "typeString": "literal_string \"ERR_RETURN_TOO_LOW\"" + } + ], + "id": 15620, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 22341, + 22342 + ], + "referencedDeclaration": 22342, + "src": "24439:7:25", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 15625, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "24439:58:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 15626, + "nodeType": "ExpressionStatement", + "src": "24439:58:25" + }, + { + "assignments": [ + 15628 + ], + "declarations": [ + { + "constant": false, + "id": 15628, + "name": "reserveToken", + "nodeType": "VariableDeclaration", + "scope": 15729, + "src": "24575:24:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + "typeName": { + "contractScope": null, + "id": 15627, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "24575:11:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 15632, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 15629, + "name": "poolTokensToReserves", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14496, + "src": "24602:20:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_contract$_IERC20Token_$20240_$", + "typeString": "mapping(address => contract IERC20Token)" + } + }, + "id": 15631, + "indexExpression": { + "argumentTypes": null, + "id": 15630, + "name": "_poolToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15582, + "src": "24623:10:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISmartToken_$20295", + "typeString": "contract ISmartToken" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "24602:32:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "24575:59:25" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 15637, + "name": "_poolToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15582, + "src": "24723:10:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISmartToken_$20295", + "typeString": "contract ISmartToken" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 15638, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22338, + "src": "24735:3:25", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 15639, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "24735:10:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 15640, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15584, + "src": "24747:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_ISmartToken_$20295", + "typeString": "contract ISmartToken" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 15634, + "name": "anchor", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2511 + ], + "referencedDeclaration": 2511, + "src": "24710:6:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + ], + "id": 15633, + "name": "IPoolTokensContainer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17009, + "src": "24689:20:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IPoolTokensContainer_$17009_$", + "typeString": "type(contract IPoolTokensContainer)" + } + }, + "id": 15635, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "24689:28:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IPoolTokensContainer_$17009", + "typeString": "contract IPoolTokensContainer" + } + }, + "id": 15636, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "burn", + "nodeType": "MemberAccess", + "referencedDeclaration": 17008, + "src": "24689:33:25", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_contract$_ISmartToken_$20295_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (contract ISmartToken,address,uint256) external" + } + }, + "id": 15641, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "24689:66:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 15642, + "nodeType": "ExpressionStatement", + "src": "24689:66:25" + }, + { + "expression": { + "argumentTypes": null, + "id": 15654, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 15643, + "name": "reserves", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2520, + "src": "24822:8:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Reserve_$2506_storage_$", + "typeString": "mapping(address => struct ConverterBase.Reserve storage ref)" + } + }, + "id": 15645, + "indexExpression": { + "argumentTypes": null, + "id": 15644, + "name": "reserveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15628, + "src": "24831:12:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "24822:22:25", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Reserve_$2506_storage", + "typeString": "struct ConverterBase.Reserve storage ref" + } + }, + "id": 15646, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "balance", + "nodeType": "MemberAccess", + "referencedDeclaration": 2497, + "src": "24822:30:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 15652, + "name": "reserveAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15614, + "src": "24890:13:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 15647, + "name": "reserves", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2520, + "src": "24855:8:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Reserve_$2506_storage_$", + "typeString": "mapping(address => struct ConverterBase.Reserve storage ref)" + } + }, + "id": 15649, + "indexExpression": { + "argumentTypes": null, + "id": 15648, + "name": "reserveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15628, + "src": "24864:12:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "24855:22:25", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Reserve_$2506_storage", + "typeString": "struct ConverterBase.Reserve storage ref" + } + }, + "id": 15650, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "balance", + "nodeType": "MemberAccess", + "referencedDeclaration": 2497, + "src": "24855:30:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 15651, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 21758, + "src": "24855:34:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 15653, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "24855:49:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "24822:82:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 15655, + "nodeType": "ExpressionStatement", + "src": "24822:82:25" + }, + { + "assignments": [ + 15657 + ], + "declarations": [ + { + "constant": false, + "id": 15657, + "name": "newStakedBalance", + "nodeType": "VariableDeclaration", + "scope": 15729, + "src": "24915:24:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 15656, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "24915:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 15664, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 15662, + "name": "reserveAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15614, + "src": "24975:13:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 15658, + "name": "stakedBalances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14488, + "src": "24942:14:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 15660, + "indexExpression": { + "argumentTypes": null, + "id": 15659, + "name": "reserveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15628, + "src": "24957:12:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "24942:28:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 15661, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 21758, + "src": "24942:32:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 15663, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "24942:47:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "24915:74:25" + }, + { + "expression": { + "argumentTypes": null, + "id": 15669, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 15665, + "name": "stakedBalances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14488, + "src": "25000:14:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 15667, + "indexExpression": { + "argumentTypes": null, + "id": 15666, + "name": "reserveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15628, + "src": "25015:12:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "25000:28:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 15668, + "name": "newStakedBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15657, + "src": "25031:16:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "25000:47:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 15670, + "nodeType": "ExpressionStatement", + "src": "25000:47:25" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 15673, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 15671, + "name": "reserveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15628, + "src": "25118:12:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 15672, + "name": "ETH_RESERVE_ADDRESS", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2495, + "src": "25134:19:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "25118:35:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 15683, + "name": "reserveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15628, + "src": "25244:12:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 15684, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22338, + "src": "25258:3:25", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 15685, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "25258:10:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 15686, + "name": "reserveAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15614, + "src": "25270:13:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 15682, + "name": "safeTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21881, + "src": "25231:12:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20Token_$20240_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (contract IERC20Token,address,uint256)" + } + }, + "id": 15687, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "25231:53:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 15688, + "nodeType": "ExpressionStatement", + "src": "25231:53:25" + }, + "id": 15689, + "nodeType": "IfStatement", + "src": "25114:170:25", + "trueBody": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 15679, + "name": "reserveAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15614, + "src": "25188:13:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 15674, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22338, + "src": "25168:3:25", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 15677, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "25168:10:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 15678, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "25168:19:25", + "typeDescriptions": { + "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 15680, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "25168:34:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 15681, + "nodeType": "ExpressionStatement", + "src": "25168:34:25" + } + }, + { + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 15690, + "name": "rebalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16319, + "src": "25346:9:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", + "typeString": "function ()" + } + }, + "id": 15691, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "25346:11:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 15692, + "nodeType": "ExpressionStatement", + "src": "25346:11:25" + }, + { + "assignments": [ + 15694 + ], + "declarations": [ + { + "constant": false, + "id": 15694, + "name": "newPoolTokenSupply", + "nodeType": "VariableDeclaration", + "scope": 15729, + "src": "25370:26:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 15693, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "25370:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 15699, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 15697, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15584, + "src": "25421:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 15695, + "name": "initialPoolSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15608, + "src": "25399:17:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 15696, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 21758, + "src": "25399:21:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 15698, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "25399:30:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "25370:59:25" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 15701, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22338, + "src": "25512:3:25", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 15702, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "25512:10:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 15703, + "name": "reserveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15628, + "src": "25524:12:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + { + "argumentTypes": null, + "id": 15704, + "name": "reserveAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15614, + "src": "25538:13:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 15705, + "name": "newStakedBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15657, + "src": "25553:16:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 15706, + "name": "newPoolTokenSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15694, + "src": "25571:18:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 15700, + "name": "LiquidityRemoved", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6177, + "src": "25495:16:25", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256,uint256,uint256)" + } + }, + "id": 15707, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "25495:95:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 15708, + "nodeType": "EmitStatement", + "src": "25490:100:25" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 15710, + "name": "_poolToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15582, + "src": "25704:10:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISmartToken_$20295", + "typeString": "contract ISmartToken" + } + }, + { + "argumentTypes": null, + "id": 15711, + "name": "newPoolTokenSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15694, + "src": "25716:18:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 15712, + "name": "reserveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15628, + "src": "25736:12:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_ISmartToken_$20295", + "typeString": "contract ISmartToken" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + ], + "id": 15709, + "name": "dispatchPoolTokenRateUpdateEvent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16512, + "src": "25671:32:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_ISmartToken_$20295_$_t_uint256_$_t_contract$_IERC20Token_$20240_$returns$__$", + "typeString": "function (contract ISmartToken,uint256,contract IERC20Token)" + } + }, + "id": 15713, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "25671:78:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 15714, + "nodeType": "ExpressionStatement", + "src": "25671:78:25" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 15716, + "name": "reserveTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2516, + "src": "25863:13:25", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_storage", + "typeString": "contract IERC20Token[] storage ref" + } + }, + "id": 15718, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 15717, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "25877:1:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "25863:16:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 15719, + "name": "reserveTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2516, + "src": "25881:13:25", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_storage", + "typeString": "contract IERC20Token[] storage ref" + } + }, + "id": 15721, + "indexExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 15720, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "25895:1:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "25881:16:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + { + "argumentTypes": null, + "hexValue": "30", + "id": 15722, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "25899:1:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "argumentTypes": null, + "hexValue": "30", + "id": 15723, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "25902:1:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 15715, + "name": "dispatchTokenRateUpdateEvent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16493, + "src": "25834:28:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20Token_$20240_$_t_contract$_IERC20Token_$20240_$_t_uint32_$_t_uint32_$returns$__$", + "typeString": "function (contract IERC20Token,contract IERC20Token,uint32,uint32)" + } + }, + "id": 15724, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "25834:70:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 15725, + "nodeType": "ExpressionStatement", + "src": "25834:70:25" + }, + { + "expression": { + "argumentTypes": null, + "id": 15726, + "name": "reserveAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15614, + "src": "25975:13:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 15603, + "id": 15727, + "nodeType": "Return", + "src": "25968:20:25" + } + ] + }, + "documentation": "@dev decreases the pool's liquidity and burns the caller's shares in the pool\r\n\n * @param _poolToken address of the pool token\r\n@param _amount amount of pool tokens to burn\r\n@param _minReturn minimum return-amount of reserve tokens\r\n\n * @return amount of liquidity removed\r", + "id": 15729, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 15589, + "modifierName": { + "argumentTypes": null, + "id": 15588, + "name": "protected", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21698, + "src": "23877:9:25", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "23877:9:25" + }, + { + "arguments": null, + "id": 15591, + "modifierName": { + "argumentTypes": null, + "id": 15590, + "name": "active", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2604, + "src": "23896:6:25", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "23896:6:25" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 15593, + "name": "_poolToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15582, + "src": "23927:10:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISmartToken_$20295", + "typeString": "contract ISmartToken" + } + } + ], + "id": 15594, + "modifierName": { + "argumentTypes": null, + "id": 15592, + "name": "validPoolToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14546, + "src": "23912:14:25", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_contract$_ISmartToken_$20295_$", + "typeString": "modifier (contract ISmartToken)" + } + }, + "nodeType": "ModifierInvocation", + "src": "23912:26:25" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 15596, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15584, + "src": "23964:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 15597, + "modifierName": { + "argumentTypes": null, + "id": 15595, + "name": "greaterThanZero", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21988, + "src": "23948:15:25", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$", + "typeString": "modifier (uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "23948:24:25" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 15599, + "name": "_minReturn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15586, + "src": "23998:10:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 15600, + "modifierName": { + "argumentTypes": null, + "id": 15598, + "name": "greaterThanZero", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21988, + "src": "23982:15:25", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$", + "typeString": "modifier (uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "23982:27:25" + } + ], + "name": "removeLiquidity", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 15587, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15582, + "name": "_poolToken", + "nodeType": "VariableDeclaration", + "scope": 15729, + "src": "23791:22:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISmartToken_$20295", + "typeString": "contract ISmartToken" + }, + "typeName": { + "contractScope": null, + "id": 15581, + "name": "ISmartToken", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20295, + "src": "23791:11:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISmartToken_$20295", + "typeString": "contract ISmartToken" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 15584, + "name": "_amount", + "nodeType": "VariableDeclaration", + "scope": 15729, + "src": "23815:15:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 15583, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "23815:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 15586, + "name": "_minReturn", + "nodeType": "VariableDeclaration", + "scope": 15729, + "src": "23832:18:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 15585, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "23832:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "23790:61:25" + }, + "payable": false, + "returnParameters": { + "id": 15603, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15602, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 15729, + "src": "24028:7:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 15601, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "24028:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "24027:9:25" + }, + "scope": 16610, + "src": "23766:2230:25", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 15819, + "nodeType": "Block", + "src": "26557:690:25", + "statements": [ + { + "assignments": [ + 15741 + ], + "declarations": [ + { + "constant": false, + "id": 15741, + "name": "totalSupply", + "nodeType": "VariableDeclaration", + "scope": 15820, + "src": "26568:19:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 15740, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "26568:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 15745, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 15742, + "name": "_poolToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15731, + "src": "26590:10:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISmartToken_$20295", + "typeString": "contract ISmartToken" + } + }, + "id": 15743, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "totalSupply", + "nodeType": "MemberAccess", + "referencedDeclaration": 20182, + "src": "26590:22:25", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", + "typeString": "function () view external returns (uint256)" + } + }, + "id": 15744, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "26590:24:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "26568:46:25" + }, + { + "assignments": [ + 15747 + ], + "declarations": [ + { + "constant": false, + "id": 15747, + "name": "stakedBalance", + "nodeType": "VariableDeclaration", + "scope": 15820, + "src": "26625:21:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 15746, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "26625:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 15753, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 15748, + "name": "stakedBalances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14488, + "src": "26649:14:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 15752, + "indexExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 15749, + "name": "poolTokensToReserves", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14496, + "src": "26664:20:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_contract$_IERC20Token_$20240_$", + "typeString": "mapping(address => contract IERC20Token)" + } + }, + "id": 15751, + "indexExpression": { + "argumentTypes": null, + "id": 15750, + "name": "_poolToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15731, + "src": "26685:10:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISmartToken_$20295", + "typeString": "contract ISmartToken" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "26664:32:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "26649:48:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "26625:72:25" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 15756, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 15754, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15733, + "src": "26714:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 15755, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15741, + "src": "26724:11:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "26714:21:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 15814, + "nodeType": "IfStatement", + "src": "26710:494:25", + "trueBody": { + "id": 15813, + "nodeType": "Block", + "src": "26737:467:25", + "statements": [ + { + "assignments": [ + 15758 + ], + "declarations": [ + { + "constant": false, + "id": 15758, + "name": "x", + "nodeType": "VariableDeclaration", + "scope": 15820, + "src": "26752:9:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 15757, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "26752:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 15765, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 15763, + "name": "AMPLIFICATION_FACTOR", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14470, + "src": "26804:20:25", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 15759, + "name": "stakedBalances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14488, + "src": "26764:14:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 15761, + "indexExpression": { + "argumentTypes": null, + "id": 15760, + "name": "primaryReserveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14482, + "src": "26779:19:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "26764:35:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 15762, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 21791, + "src": "26764:39:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 15764, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "26764:61:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "26752:73:25" + }, + { + "assignments": [ + 15767 + ], + "declarations": [ + { + "constant": false, + "id": 15767, + "name": "y", + "nodeType": "VariableDeclaration", + "scope": 15820, + "src": "26840:9:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 15766, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "26840:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 15771, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 15769, + "name": "primaryReserveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14482, + "src": "26876:19:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + ], + "id": 15768, + "name": "reserveAmplifiedBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14852, + "src": "26852:23:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_contract$_IERC20Token_$20240_$returns$_t_uint256_$", + "typeString": "function (contract IERC20Token) view returns (uint256)" + } + }, + "id": 15770, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "26852:44:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "26840:56:25" + }, + { + "assignments": [ + 15773, + 15775 + ], + "declarations": [ + { + "constant": false, + "id": 15773, + "name": "min", + "nodeType": "VariableDeclaration", + "scope": 15820, + "src": "26912:11:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 15772, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "26912:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 15775, + "name": "max", + "nodeType": "VariableDeclaration", + "scope": 15820, + "src": "26925:11:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 15774, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "26925:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 15786, + "initialValue": { + "argumentTypes": null, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 15778, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 15776, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15758, + "src": "26940:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 15777, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15767, + "src": "26944:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "26940:5:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "id": 15782, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15767, + "src": "26958:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 15783, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15758, + "src": "26961:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 15784, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "26957:6:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "id": 15785, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "26940:23:25", + "trueExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "id": 15779, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15758, + "src": "26949:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 15780, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15767, + "src": "26952:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 15781, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "26948:6:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "26911:52:25" + }, + { + "assignments": [ + 15788 + ], + "declarations": [ + { + "constant": false, + "id": 15788, + "name": "amountBeforeFee", + "nodeType": "VariableDeclaration", + "scope": 15820, + "src": "26978:23:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 15787, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "26978:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 15796, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 15794, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15741, + "src": "27035:11:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 15791, + "name": "stakedBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15747, + "src": "27016:13:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 15789, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15733, + "src": "27004:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 15790, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 21791, + "src": "27004:11:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 15792, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "27004:26:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 15793, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "div", + "nodeType": "MemberAccess", + "referencedDeclaration": 21816, + "src": "27004:30:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 15795, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "27004:43:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "26978:69:25" + }, + { + "assignments": [ + 15798 + ], + "declarations": [ + { + "constant": false, + "id": 15798, + "name": "amountAfterFee", + "nodeType": "VariableDeclaration", + "scope": 15820, + "src": "27062:22:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 15797, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "27062:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 15806, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 15804, + "name": "max", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15775, + "src": "27116:3:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 15801, + "name": "min", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15773, + "src": "27107:3:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 15799, + "name": "amountBeforeFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15788, + "src": "27087:15:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 15800, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 21791, + "src": "27087:19:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 15802, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "27087:24:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 15803, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "div", + "nodeType": "MemberAccess", + "referencedDeclaration": 21816, + "src": "27087:28:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 15805, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "27087:33:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "27062:58:25" + }, + { + "expression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "id": 15807, + "name": "amountAfterFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15798, + "src": "27143:14:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 15810, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 15808, + "name": "amountBeforeFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15788, + "src": "27159:15:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 15809, + "name": "amountAfterFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15798, + "src": "27177:14:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "27159:32:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 15811, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "27142:50:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "functionReturnParameters": 15739, + "id": 15812, + "nodeType": "Return", + "src": "27135:57:25" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "id": 15815, + "name": "stakedBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15747, + "src": "27222:13:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "hexValue": "30", + "id": 15816, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "27237:1:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 15817, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "27221:18:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_rational_0_by_1_$", + "typeString": "tuple(uint256,int_const 0)" + } + }, + "functionReturnParameters": 15739, + "id": 15818, + "nodeType": "Return", + "src": "27214:25:25" + } + ] + }, + "documentation": "@dev calculates the amount of reserve tokens entitled for a given amount of pool tokens\r\nnote that a fee is applied according to the equilibrium level of the primary reserve token\r\n\n * @param _poolToken address of the pool token\r\n@param _amount amount of pool tokens\r\n\n * @return amount after fee and fee, in reserve token units\r", + "id": 15820, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "removeLiquidityReturnAndFee", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 15734, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15731, + "name": "_poolToken", + "nodeType": "VariableDeclaration", + "scope": 15820, + "src": "26445:22:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISmartToken_$20295", + "typeString": "contract ISmartToken" + }, + "typeName": { + "contractScope": null, + "id": 15730, + "name": "ISmartToken", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20295, + "src": "26445:11:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISmartToken_$20295", + "typeString": "contract ISmartToken" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 15733, + "name": "_amount", + "nodeType": "VariableDeclaration", + "scope": 15820, + "src": "26469:15:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 15732, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "26469:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "26444:41:25" + }, + "payable": false, + "returnParameters": { + "id": 15739, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15736, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 15820, + "src": "26534:7:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 15735, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "26534:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 15738, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 15820, + "src": "26543:7:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 15737, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "26543:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "26533:18:25" + }, + "scope": 16610, + "src": "26408:839:25", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 15916, + "nodeType": "Block", + "src": "28443:1023:25", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 15843, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 15841, + "name": "_sourceWeight", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15826, + "src": "28458:13:25", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 15842, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "28475:1:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "28458:18:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 15851, + "nodeType": "IfStatement", + "src": "28454:82:25", + "trueBody": { + "expression": { + "argumentTypes": null, + "id": 15849, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 15844, + "name": "_sourceWeight", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15826, + "src": "28491:13:25", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 15845, + "name": "reserves", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2520, + "src": "28507:8:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Reserve_$2506_storage_$", + "typeString": "mapping(address => struct ConverterBase.Reserve storage ref)" + } + }, + "id": 15847, + "indexExpression": { + "argumentTypes": null, + "id": 15846, + "name": "_sourceToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15822, + "src": "28516:12:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "28507:22:25", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Reserve_$2506_storage", + "typeString": "struct ConverterBase.Reserve storage ref" + } + }, + "id": 15848, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "weight", + "nodeType": "MemberAccess", + "referencedDeclaration": 2499, + "src": "28507:29:25", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "28491:45:25", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "id": 15850, + "nodeType": "ExpressionStatement", + "src": "28491:45:25" + } + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 15854, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 15852, + "name": "_targetWeight", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15828, + "src": "28551:13:25", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 15853, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "28568:1:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "28551:18:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 15862, + "nodeType": "IfStatement", + "src": "28547:82:25", + "trueBody": { + "expression": { + "argumentTypes": null, + "id": 15860, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 15855, + "name": "_targetWeight", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15828, + "src": "28584:13:25", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 15856, + "name": "reserves", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2520, + "src": "28600:8:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Reserve_$2506_storage_$", + "typeString": "mapping(address => struct ConverterBase.Reserve storage ref)" + } + }, + "id": 15858, + "indexExpression": { + "argumentTypes": null, + "id": 15857, + "name": "_targetToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15824, + "src": "28609:12:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "28600:22:25", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Reserve_$2506_storage", + "typeString": "struct ConverterBase.Reserve storage ref" + } + }, + "id": 15859, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "weight", + "nodeType": "MemberAccess", + "referencedDeclaration": 2499, + "src": "28600:29:25", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "28584:45:25", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "id": 15861, + "nodeType": "ExpressionStatement", + "src": "28584:45:25" + } + }, + { + "assignments": [ + 15864 + ], + "declarations": [ + { + "constant": false, + "id": 15864, + "name": "sourceBalance", + "nodeType": "VariableDeclaration", + "scope": 15917, + "src": "28688:21:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 15863, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "28688:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 15868, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 15866, + "name": "_sourceToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15822, + "src": "28736:12:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + ], + "id": 15865, + "name": "reserveAmplifiedBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14852, + "src": "28712:23:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_contract$_IERC20Token_$20240_$returns$_t_uint256_$", + "typeString": "function (contract IERC20Token) view returns (uint256)" + } + }, + "id": 15867, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "28712:37:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "28688:61:25" + }, + { + "assignments": [ + 15870 + ], + "declarations": [ + { + "constant": false, + "id": 15870, + "name": "targetBalance", + "nodeType": "VariableDeclaration", + "scope": 15917, + "src": "28760:21:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 15869, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "28760:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 15874, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 15872, + "name": "_targetToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15824, + "src": "28808:12:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + ], + "id": 15871, + "name": "reserveAmplifiedBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14852, + "src": "28784:23:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_contract$_IERC20Token_$20240_$returns$_t_uint256_$", + "typeString": "function (contract IERC20Token) view returns (uint256)" + } + }, + "id": 15873, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "28784:37:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "28760:61:25" + }, + { + "expression": { + "argumentTypes": null, + "id": 15888, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 15875, + "name": "targetAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15835, + "src": "28868:12:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 15882, + "name": "sourceBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15864, + "src": "28972:13:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 15883, + "name": "_sourceWeight", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15826, + "src": "29000:13:25", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + { + "argumentTypes": null, + "id": 15884, + "name": "targetBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15870, + "src": "29028:13:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 15885, + "name": "_targetWeight", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15828, + "src": "29056:13:25", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + { + "argumentTypes": null, + "id": 15886, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15832, + "src": "29084:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 15878, + "name": "SOVRYNSWAP_FORMULA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20758, + "src": "28912:18:25", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 15877, + "name": "addressOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20931, + "src": "28902:9:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$", + "typeString": "function (bytes32) view returns (address)" + } + }, + "id": 15879, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "28902:29:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 15876, + "name": "ISovrynSwapFormula", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12240, + "src": "28883:18:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ISovrynSwapFormula_$12240_$", + "typeString": "type(contract ISovrynSwapFormula)" + } + }, + "id": 15880, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "28883:49:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISovrynSwapFormula_$12240", + "typeString": "contract ISovrynSwapFormula" + } + }, + "id": 15881, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "crossReserveTargetAmount", + "nodeType": "MemberAccess", + "referencedDeclaration": 12183, + "src": "28883:74:25", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_uint256_$_t_uint32_$_t_uint256_$_t_uint32_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint32,uint256,uint32,uint256) view external returns (uint256)" + } + }, + "id": 15887, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "28883:219:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "28868:234:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 15889, + "nodeType": "ExpressionStatement", + "src": "28868:234:25" + }, + { + "expression": { + "argumentTypes": null, + "id": 15894, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 15890, + "name": "standardFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15837, + "src": "29239:11:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 15892, + "name": "targetAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15835, + "src": "29266:12:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 15891, + "name": "calculateFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3204, + "src": "29253:12:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) view returns (uint256)" + } + }, + "id": 15893, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "29253:26:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "29239:40:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 15895, + "nodeType": "ExpressionStatement", + "src": "29239:40:25" + }, + { + "expression": { + "argumentTypes": null, + "id": 15907, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 15896, + "name": "dynamicFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15839, + "src": "29290:10:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 15905, + "name": "standardFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15837, + "src": "29392:11:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 15898, + "name": "_targetToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15824, + "src": "29323:12:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + { + "argumentTypes": null, + "id": 15899, + "name": "_sourceWeight", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15826, + "src": "29337:13:25", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + { + "argumentTypes": null, + "id": 15900, + "name": "_targetWeight", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15828, + "src": "29352:13:25", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + { + "argumentTypes": null, + "id": 15901, + "name": "_rate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15830, + "src": "29367:5:25", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Fraction_$14478_memory_ptr", + "typeString": "struct LiquidityPoolV2Converter.Fraction memory" + } + }, + { + "argumentTypes": null, + "id": 15902, + "name": "targetAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15835, + "src": "29374:12:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + { + "typeIdentifier": "t_struct$_Fraction_$14478_memory_ptr", + "typeString": "struct LiquidityPoolV2Converter.Fraction memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 15897, + "name": "calculateDynamicFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15986, + "src": "29303:19:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_contract$_IERC20Token_$20240_$_t_uint32_$_t_uint32_$_t_struct$_Fraction_$14478_memory_ptr_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (contract IERC20Token,uint32,uint32,struct LiquidityPoolV2Converter.Fraction memory,uint256) view returns (uint256)" + } + }, + "id": 15903, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "29303:84:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 15904, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 21737, + "src": "29303:88:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 15906, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "29303:101:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "29290:114:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 15908, + "nodeType": "ExpressionStatement", + "src": "29290:114:25" + }, + { + "expression": { + "argumentTypes": null, + "id": 15914, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 15909, + "name": "targetAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15835, + "src": "29415:12:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 15912, + "name": "dynamicFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15839, + "src": "29447:10:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 15910, + "name": "targetAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15835, + "src": "29430:12:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 15911, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 21758, + "src": "29430:16:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 15913, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "29430:28:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "29415:43:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 15915, + "nodeType": "ExpressionStatement", + "src": "29415:43:25" + } + ] + }, + "documentation": "@dev returns the expected target amount of converting one reserve to another along with the fees\r\nthis version of the function expects the reserve weights as an input (gas optimization)\r\n\n * @param _sourceToken contract address of the source reserve token\r\n@param _targetToken contract address of the target reserve token\r\n@param _sourceWeight source reserve token weight or 0 to read it from storage\r\n@param _targetWeight target reserve token weight or 0 to read it from storage\r\n@param _rate rate between the reserve tokens\r\n@param _amount amount of tokens received from the user\r\n\n * @return expected target amount\r\n@return expected standard conversion fee\r\n@return expected dynamic conversion fee\r", + "id": 15917, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "targetAmountAndFees", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 15833, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15822, + "name": "_sourceToken", + "nodeType": "VariableDeclaration", + "scope": 15917, + "src": "28145:24:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + "typeName": { + "contractScope": null, + "id": 15821, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "28145:11:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 15824, + "name": "_targetToken", + "nodeType": "VariableDeclaration", + "scope": 15917, + "src": "28180:24:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + "typeName": { + "contractScope": null, + "id": 15823, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "28180:11:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 15826, + "name": "_sourceWeight", + "nodeType": "VariableDeclaration", + "scope": 15917, + "src": "28215:20:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 15825, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "28215:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 15828, + "name": "_targetWeight", + "nodeType": "VariableDeclaration", + "scope": 15917, + "src": "28246:20:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 15827, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "28246:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 15830, + "name": "_rate", + "nodeType": "VariableDeclaration", + "scope": 15917, + "src": "28277:21:25", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Fraction_$14478_memory_ptr", + "typeString": "struct LiquidityPoolV2Converter.Fraction" + }, + "typeName": { + "contractScope": null, + "id": 15829, + "name": "Fraction", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 14478, + "src": "28277:8:25", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Fraction_$14478_storage_ptr", + "typeString": "struct LiquidityPoolV2Converter.Fraction" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 15832, + "name": "_amount", + "nodeType": "VariableDeclaration", + "scope": 15917, + "src": "28309:15:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 15831, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "28309:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "28134:191:25" + }, + "payable": false, + "returnParameters": { + "id": 15840, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15835, + "name": "targetAmount", + "nodeType": "VariableDeclaration", + "scope": 15917, + "src": "28375:20:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 15834, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "28375:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 15837, + "name": "standardFee", + "nodeType": "VariableDeclaration", + "scope": 15917, + "src": "28397:19:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 15836, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "28397:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 15839, + "name": "dynamicFee", + "nodeType": "VariableDeclaration", + "scope": 15917, + "src": "28418:18:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 15838, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "28418:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "28374:63:25" + }, + "scope": 16610, + "src": "28106:1360:25", + "stateMutability": "view", + "superFunction": null, + "visibility": "private" + }, + { + "body": { + "id": 15985, + "nodeType": "Block", + "src": "30163:813:25", + "statements": [ + { + "assignments": [], + "declarations": [ + { + "constant": false, + "id": 15933, + "name": "fee", + "nodeType": "VariableDeclaration", + "scope": 15986, + "src": "30174:11:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 15932, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "30174:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 15934, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "30174:11:25" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + "id": 15937, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 15935, + "name": "_targetToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15919, + "src": "30202:12:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 15936, + "name": "secondaryReserveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14484, + "src": "30218:21:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "src": "30202:37:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 15975, + "nodeType": "Block", + "src": "30576:320:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 15973, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 15957, + "name": "fee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15933, + "src": "30591:3:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 15959, + "name": "stakedBalances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14488, + "src": "30641:14:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 15961, + "indexExpression": { + "argumentTypes": null, + "id": 15960, + "name": "primaryReserveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14482, + "src": "30656:19:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "30641:35:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 15962, + "name": "stakedBalances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14488, + "src": "30695:14:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 15964, + "indexExpression": { + "argumentTypes": null, + "id": 15963, + "name": "secondaryReserveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14484, + "src": "30710:21:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "30695:37:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 15965, + "name": "_targetWeight", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15923, + "src": "30751:13:25", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + { + "argumentTypes": null, + "id": 15966, + "name": "_sourceWeight", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15921, + "src": "30783:13:25", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 15967, + "name": "_rate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15925, + "src": "30815:5:25", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Fraction_$14478_memory_ptr", + "typeString": "struct LiquidityPoolV2Converter.Fraction memory" + } + }, + "id": 15968, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "n", + "nodeType": "MemberAccess", + "referencedDeclaration": 14475, + "src": "30815:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 15969, + "name": "_rate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15925, + "src": "30841:5:25", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Fraction_$14478_memory_ptr", + "typeString": "struct LiquidityPoolV2Converter.Fraction memory" + } + }, + "id": 15970, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "d", + "nodeType": "MemberAccess", + "referencedDeclaration": 14477, + "src": "30841:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 15971, + "name": "dynamicFeeFactor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14515, + "src": "30867:16:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 15958, + "name": "calculateFeeToEquilibrium", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16046, + "src": "30597:25:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256,uint256,uint256,uint256,uint256) pure returns (uint256)" + } + }, + "id": 15972, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "30597:287:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "30591:293:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 15974, + "nodeType": "ExpressionStatement", + "src": "30591:293:25" + } + ] + }, + "id": 15976, + "nodeType": "IfStatement", + "src": "30198:698:25", + "trueBody": { + "id": 15956, + "nodeType": "Block", + "src": "30241:320:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 15954, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 15938, + "name": "fee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15933, + "src": "30256:3:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 15940, + "name": "stakedBalances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14488, + "src": "30306:14:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 15942, + "indexExpression": { + "argumentTypes": null, + "id": 15941, + "name": "primaryReserveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14482, + "src": "30321:19:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "30306:35:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 15943, + "name": "stakedBalances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14488, + "src": "30360:14:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 15945, + "indexExpression": { + "argumentTypes": null, + "id": 15944, + "name": "secondaryReserveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14484, + "src": "30375:21:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "30360:37:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 15946, + "name": "_sourceWeight", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15921, + "src": "30416:13:25", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + { + "argumentTypes": null, + "id": 15947, + "name": "_targetWeight", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15923, + "src": "30448:13:25", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 15948, + "name": "_rate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15925, + "src": "30480:5:25", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Fraction_$14478_memory_ptr", + "typeString": "struct LiquidityPoolV2Converter.Fraction memory" + } + }, + "id": 15949, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "n", + "nodeType": "MemberAccess", + "referencedDeclaration": 14475, + "src": "30480:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 15950, + "name": "_rate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15925, + "src": "30506:5:25", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Fraction_$14478_memory_ptr", + "typeString": "struct LiquidityPoolV2Converter.Fraction memory" + } + }, + "id": 15951, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "d", + "nodeType": "MemberAccess", + "referencedDeclaration": 14477, + "src": "30506:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 15952, + "name": "dynamicFeeFactor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14515, + "src": "30532:16:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 15939, + "name": "calculateFeeToEquilibrium", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16046, + "src": "30262:25:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256,uint256,uint256,uint256,uint256) pure returns (uint256)" + } + }, + "id": 15953, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "30262:287:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "30256:293:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 15955, + "nodeType": "ExpressionStatement", + "src": "30256:293:25" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 15982, + "name": "CONVERSION_FEE_RESOLUTION", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2492, + "src": "30942:25:25", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 15979, + "name": "fee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15933, + "src": "30933:3:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 15977, + "name": "_targetAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15927, + "src": "30915:13:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 15978, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 21791, + "src": "30915:17:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 15980, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "30915:22:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 15981, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "div", + "nodeType": "MemberAccess", + "referencedDeclaration": 21816, + "src": "30915:26:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 15983, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "30915:53:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 15931, + "id": 15984, + "nodeType": "Return", + "src": "30908:60:25" + } + ] + }, + "documentation": "@dev returns the dynamic fee for a given target amount\r\n\n * @param _targetToken contract address of the target reserve token\r\n@param _sourceWeight source reserve token weight\r\n@param _targetWeight target reserve token weight\r\n@param _rate rate of 1 primary token in secondary tokens\r\n@param _targetAmount target amount\r\n\n * @return dynamic fee\r", + "id": 15986, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "calculateDynamicFee", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 15928, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15919, + "name": "_targetToken", + "nodeType": "VariableDeclaration", + "scope": 15986, + "src": "29965:24:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + "typeName": { + "contractScope": null, + "id": 15918, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "29965:11:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 15921, + "name": "_sourceWeight", + "nodeType": "VariableDeclaration", + "scope": 15986, + "src": "30000:20:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 15920, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "30000:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 15923, + "name": "_targetWeight", + "nodeType": "VariableDeclaration", + "scope": 15986, + "src": "30031:20:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 15922, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "30031:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 15925, + "name": "_rate", + "nodeType": "VariableDeclaration", + "scope": 15986, + "src": "30062:21:25", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Fraction_$14478_memory_ptr", + "typeString": "struct LiquidityPoolV2Converter.Fraction" + }, + "typeName": { + "contractScope": null, + "id": 15924, + "name": "Fraction", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 14478, + "src": "30062:8:25", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Fraction_$14478_storage_ptr", + "typeString": "struct LiquidityPoolV2Converter.Fraction" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 15927, + "name": "_targetAmount", + "nodeType": "VariableDeclaration", + "scope": 15986, + "src": "30094:21:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 15926, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "30094:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "29954:162:25" + }, + "payable": false, + "returnParameters": { + "id": 15931, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15930, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 15986, + "src": "30149:7:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 15929, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "30149:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "30148:9:25" + }, + "scope": 16610, + "src": "29926:1050:25", + "stateMutability": "view", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 16045, + "nodeType": "Block", + "src": "32020:330:25", + "statements": [ + { + "assignments": [ + 16006 + ], + "declarations": [ + { + "constant": false, + "id": 16006, + "name": "x", + "nodeType": "VariableDeclaration", + "scope": 16046, + "src": "32031:9:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 16005, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "32031:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 16014, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 16012, + "name": "_secondaryReserveWeight", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15994, + "src": "32094:23:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 16009, + "name": "_primaryReserveRate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15996, + "src": "32069:19:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 16007, + "name": "_primaryReserveStaked", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15988, + "src": "32043:21:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 16008, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 21791, + "src": "32043:25:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 16010, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32043:46:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 16011, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 21791, + "src": "32043:50:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 16013, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32043:75:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "32031:87:25" + }, + { + "assignments": [ + 16016 + ], + "declarations": [ + { + "constant": false, + "id": 16016, + "name": "y", + "nodeType": "VariableDeclaration", + "scope": 16046, + "src": "32129:9:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 16015, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "32129:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 16024, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 16022, + "name": "_primaryReserveWeight", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15992, + "src": "32196:21:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 16019, + "name": "_secondaryReserveRate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15998, + "src": "32169:21:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 16017, + "name": "_secondaryReserveStaked", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15990, + "src": "32141:23:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 16018, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 21791, + "src": "32141:27:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 16020, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32141:50:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 16021, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 21791, + "src": "32141:54:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 16023, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32141:77:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "32129:89:25" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 16027, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 16025, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16016, + "src": "32233:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "id": 16026, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16006, + "src": "32237:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "32233:5:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 16042, + "nodeType": "IfStatement", + "src": "32229:94:25", + "trueBody": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 16039, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16016, + "src": "32321:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 16036, + "name": "AMPLIFICATION_FACTOR", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14470, + "src": "32295:20:25", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 16033, + "name": "_dynamicFeeFactor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16000, + "src": "32272:17:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 16030, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 16028, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16016, + "src": "32261:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 16029, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16006, + "src": "32265:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "32261:5:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 16031, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "32260:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 16032, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 21791, + "src": "32260:11:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 16034, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32260:30:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 16035, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 21791, + "src": "32260:34:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 16037, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32260:56:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 16038, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "div", + "nodeType": "MemberAccess", + "referencedDeclaration": 21816, + "src": "32260:60:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 16040, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32260:63:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 16004, + "id": 16041, + "nodeType": "Return", + "src": "32253:70:25" + } + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "30", + "id": 16043, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "32341:1:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "functionReturnParameters": 16004, + "id": 16044, + "nodeType": "Return", + "src": "32334:8:25" + } + ] + }, + "documentation": "@dev returns the relative fee required for mitigating the secondary reserve distance from equilibrium\r\n\n * @param _primaryReserveStaked primary reserve staked balance\r\n@param _secondaryReserveStaked secondary reserve staked balance\r\n@param _primaryReserveWeight primary reserve weight\r\n@param _secondaryReserveWeight secondary reserve weight\r\n@param _primaryReserveRate primary reserve rate\r\n@param _secondaryReserveRate secondary reserve rate\r\n@param _dynamicFeeFactor dynamic fee factor\r\n\n * @return relative fee, represented in ppm\r", + "id": 16046, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "calculateFeeToEquilibrium", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 16001, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15988, + "name": "_primaryReserveStaked", + "nodeType": "VariableDeclaration", + "scope": 16046, + "src": "31687:29:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 15987, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "31687:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 15990, + "name": "_secondaryReserveStaked", + "nodeType": "VariableDeclaration", + "scope": 16046, + "src": "31727:31:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 15989, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "31727:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 15992, + "name": "_primaryReserveWeight", + "nodeType": "VariableDeclaration", + "scope": 16046, + "src": "31769:29:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 15991, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "31769:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 15994, + "name": "_secondaryReserveWeight", + "nodeType": "VariableDeclaration", + "scope": 16046, + "src": "31809:31:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 15993, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "31809:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 15996, + "name": "_primaryReserveRate", + "nodeType": "VariableDeclaration", + "scope": 16046, + "src": "31851:27:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 15995, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "31851:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 15998, + "name": "_secondaryReserveRate", + "nodeType": "VariableDeclaration", + "scope": 16046, + "src": "31889:29:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 15997, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "31889:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 16000, + "name": "_dynamicFeeFactor", + "nodeType": "VariableDeclaration", + "scope": 16046, + "src": "31929:25:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 15999, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "31929:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "31676:279:25" + }, + "payable": false, + "returnParameters": { + "id": 16004, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 16003, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 16046, + "src": "32006:7:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 16002, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "32006:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "32005:9:25" + }, + "scope": 16610, + "src": "31642:708:25", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 16122, + "nodeType": "Block", + "src": "32635:769:25", + "statements": [ + { + "assignments": [ + 16050 + ], + "declarations": [ + { + "constant": false, + "id": 16050, + "name": "container", + "nodeType": "VariableDeclaration", + "scope": 16123, + "src": "32646:30:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IPoolTokensContainer_$17009", + "typeString": "contract IPoolTokensContainer" + }, + "typeName": { + "contractScope": null, + "id": 16049, + "name": "IPoolTokensContainer", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 17009, + "src": "32646:20:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IPoolTokensContainer_$17009", + "typeString": "contract IPoolTokensContainer" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 16054, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 16052, + "name": "anchor", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2511 + ], + "referencedDeclaration": 2511, + "src": "32700:6:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + ], + "id": 16051, + "name": "IPoolTokensContainer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17009, + "src": "32679:20:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IPoolTokensContainer_$17009_$", + "typeString": "type(contract IPoolTokensContainer)" + } + }, + "id": 16053, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32679:28:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IPoolTokensContainer_$17009", + "typeString": "contract IPoolTokensContainer" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "32646:61:25" + }, + { + "assignments": [ + 16058 + ], + "declarations": [ + { + "constant": false, + "id": 16058, + "name": "poolTokens", + "nodeType": "VariableDeclaration", + "scope": 16123, + "src": "32718:31:25", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_ISmartToken_$20295_$dyn_memory_ptr", + "typeString": "contract ISmartToken[]" + }, + "typeName": { + "baseType": { + "contractScope": null, + "id": 16056, + "name": "ISmartToken", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20295, + "src": "32718:11:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISmartToken_$20295", + "typeString": "contract ISmartToken" + } + }, + "id": 16057, + "length": null, + "nodeType": "ArrayTypeName", + "src": "32718:13:25", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_ISmartToken_$20295_$dyn_storage_ptr", + "typeString": "contract ISmartToken[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 16062, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 16059, + "name": "container", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16050, + "src": "32752:9:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IPoolTokensContainer_$17009", + "typeString": "contract IPoolTokensContainer" + } + }, + "id": 16060, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "poolTokens", + "nodeType": "MemberAccess", + "referencedDeclaration": 16985, + "src": "32752:20:25", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_array$_t_contract$_ISmartToken_$20295_$dyn_memory_ptr_$", + "typeString": "function () view external returns (contract ISmartToken[] memory)" + } + }, + "id": 16061, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32752:22:25", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_ISmartToken_$20295_$dyn_memory_ptr", + "typeString": "contract ISmartToken[] memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "32718:56:25" + }, + { + "assignments": [ + 16064 + ], + "declarations": [ + { + "constant": false, + "id": 16064, + "name": "initialSetup", + "nodeType": "VariableDeclaration", + "scope": 16123, + "src": "32785:17:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 16063, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "32785:4:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 16069, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 16068, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 16065, + "name": "poolTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16058, + "src": "32805:10:25", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_ISmartToken_$20295_$dyn_memory_ptr", + "typeString": "contract ISmartToken[] memory" + } + }, + "id": 16066, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "32805:17:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 16067, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "32826:1:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "32805:22:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "32785:42:25" + }, + { + "assignments": [ + 16071 + ], + "declarations": [ + { + "constant": false, + "id": 16071, + "name": "reserveCount", + "nodeType": "VariableDeclaration", + "scope": 16123, + "src": "32840:20:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 16070, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "32840:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 16074, + "initialValue": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 16072, + "name": "reserveTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2516, + "src": "32863:13:25", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_storage", + "typeString": "contract IERC20Token[] storage ref" + } + }, + "id": 16073, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "32863:20:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "32840:43:25" + }, + { + "body": { + "id": 16120, + "nodeType": "Block", + "src": "32937:460:25", + "statements": [ + { + "assignments": [], + "declarations": [ + { + "constant": false, + "id": 16086, + "name": "reservePoolToken", + "nodeType": "VariableDeclaration", + "scope": 16123, + "src": "32952:28:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISmartToken_$20295", + "typeString": "contract ISmartToken" + }, + "typeName": { + "contractScope": null, + "id": 16085, + "name": "ISmartToken", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20295, + "src": "32952:11:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISmartToken_$20295", + "typeString": "contract ISmartToken" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 16087, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "32952:28:25" + }, + { + "condition": { + "argumentTypes": null, + "id": 16088, + "name": "initialSetup", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16064, + "src": "32999:12:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 16102, + "nodeType": "Block", + "src": "33109:67:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 16100, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 16096, + "name": "reservePoolToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16086, + "src": "33128:16:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISmartToken_$20295", + "typeString": "contract ISmartToken" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 16097, + "name": "poolTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16058, + "src": "33147:10:25", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_ISmartToken_$20295_$dyn_memory_ptr", + "typeString": "contract ISmartToken[] memory" + } + }, + "id": 16099, + "indexExpression": { + "argumentTypes": null, + "id": 16098, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16076, + "src": "33158:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "33147:13:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISmartToken_$20295", + "typeString": "contract ISmartToken" + } + }, + "src": "33128:32:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISmartToken_$20295", + "typeString": "contract ISmartToken" + } + }, + "id": 16101, + "nodeType": "ExpressionStatement", + "src": "33128:32:25" + } + ] + }, + "id": 16103, + "nodeType": "IfStatement", + "src": "32995:181:25", + "trueBody": { + "id": 16095, + "nodeType": "Block", + "src": "33013:77:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 16093, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 16089, + "name": "reservePoolToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16086, + "src": "33032:16:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISmartToken_$20295", + "typeString": "contract ISmartToken" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 16090, + "name": "container", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16050, + "src": "33051:9:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IPoolTokensContainer_$17009", + "typeString": "contract IPoolTokensContainer" + } + }, + "id": 16091, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "createToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 16990, + "src": "33051:21:25", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$__$returns$_t_contract$_ISmartToken_$20295_$", + "typeString": "function () external returns (contract ISmartToken)" + } + }, + "id": 16092, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "33051:23:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISmartToken_$20295", + "typeString": "contract ISmartToken" + } + }, + "src": "33032:42:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISmartToken_$20295", + "typeString": "contract ISmartToken" + } + }, + "id": 16094, + "nodeType": "ExpressionStatement", + "src": "33032:42:25" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "id": 16110, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 16104, + "name": "reservesToPoolTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14492, + "src": "33256:20:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_contract$_ISmartToken_$20295_$", + "typeString": "mapping(address => contract ISmartToken)" + } + }, + "id": 16108, + "indexExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 16105, + "name": "reserveTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2516, + "src": "33277:13:25", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_storage", + "typeString": "contract IERC20Token[] storage ref" + } + }, + "id": 16107, + "indexExpression": { + "argumentTypes": null, + "id": 16106, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16076, + "src": "33291:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "33277:16:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "33256:38:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISmartToken_$20295", + "typeString": "contract ISmartToken" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 16109, + "name": "reservePoolToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16086, + "src": "33297:16:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISmartToken_$20295", + "typeString": "contract ISmartToken" + } + }, + "src": "33256:57:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISmartToken_$20295", + "typeString": "contract ISmartToken" + } + }, + "id": 16111, + "nodeType": "ExpressionStatement", + "src": "33256:57:25" + }, + { + "expression": { + "argumentTypes": null, + "id": 16118, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 16112, + "name": "poolTokensToReserves", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14496, + "src": "33328:20:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_contract$_IERC20Token_$20240_$", + "typeString": "mapping(address => contract IERC20Token)" + } + }, + "id": 16114, + "indexExpression": { + "argumentTypes": null, + "id": 16113, + "name": "reservePoolToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16086, + "src": "33349:16:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISmartToken_$20295", + "typeString": "contract ISmartToken" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "33328:38:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 16115, + "name": "reserveTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2516, + "src": "33369:13:25", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_storage", + "typeString": "contract IERC20Token[] storage ref" + } + }, + "id": 16117, + "indexExpression": { + "argumentTypes": null, + "id": 16116, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16076, + "src": "33383:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "33369:16:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "src": "33328:57:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "id": 16119, + "nodeType": "ExpressionStatement", + "src": "33328:57:25" + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 16081, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 16079, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16076, + "src": "32914:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 16080, + "name": "reserveCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16071, + "src": "32918:12:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "32914:16:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 16121, + "initializationExpression": { + "assignments": [ + 16076 + ], + "declarations": [ + { + "constant": false, + "id": 16076, + "name": "i", + "nodeType": "VariableDeclaration", + "scope": 16123, + "src": "32899:9:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 16075, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "32899:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 16078, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 16077, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "32911:1:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "32899:13:25" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 16083, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "32932:3:25", + "subExpression": { + "argumentTypes": null, + "id": 16082, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16076, + "src": "32932:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 16084, + "nodeType": "ExpressionStatement", + "src": "32932:3:25" + }, + "nodeType": "ForStatement", + "src": "32894:503:25" + } + ] + }, + "documentation": "@dev creates the converter's pool tokens\r\nnote that technically pool tokens can be created on deployment but gas limit\r\nmight get too high for a block, so creating them on first activation\r\n\n ", + "id": 16123, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "createPoolTokens", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 16047, + "nodeType": "ParameterList", + "parameters": [], + "src": "32623:2:25" + }, + "payable": false, + "returnParameters": { + "id": 16048, + "nodeType": "ParameterList", + "parameters": [], + "src": "32635:0:25" + }, + "scope": 16610, + "src": "32598:806:25", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 16229, + "nodeType": "Block", + "src": "33603:1771:25", + "statements": [ + { + "assignments": [ + 16129, + 16131, + 16133 + ], + "declarations": [ + { + "constant": false, + "id": 16129, + "name": "externalRateN", + "nodeType": "VariableDeclaration", + "scope": 16230, + "src": "33670:21:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 16128, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "33670:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 16131, + "name": "externalRateD", + "nodeType": "VariableDeclaration", + "scope": 16230, + "src": "33693:21:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 16130, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "33693:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 16133, + "name": "updateTime", + "nodeType": "VariableDeclaration", + "scope": 16230, + "src": "33716:18:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 16132, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "33716:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 16139, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 16136, + "name": "primaryReserveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14482, + "src": "33774:19:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + { + "argumentTypes": null, + "id": 16137, + "name": "secondaryReserveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14484, + "src": "33795:21:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + ], + "expression": { + "argumentTypes": null, + "id": 16134, + "name": "priceOracle", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14480, + "src": "33738:11:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IPriceOracle_$22297", + "typeString": "contract IPriceOracle" + } + }, + "id": 16135, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "latestRateAndUpdateTime", + "nodeType": "MemberAccess", + "referencedDeclaration": 22280, + "src": "33738:35:25", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_contract$_IERC20Token_$20240_$_t_contract$_IERC20Token_$20240_$returns$_t_uint256_$_t_uint256_$_t_uint256_$", + "typeString": "function (contract IERC20Token,contract IERC20Token) view external returns (uint256,uint256,uint256)" + } + }, + "id": 16138, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "33738:79:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256,uint256)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "33669:148:25" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 16142, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 16140, + "name": "updateTime", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16133, + "src": "33923:10:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "id": 16141, + "name": "referenceRateUpdateTime", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14503, + "src": "33936:23:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "33923:36:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 16149, + "nodeType": "IfStatement", + "src": "33919:124:25", + "trueBody": { + "id": 16148, + "nodeType": "Block", + "src": "33961:82:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 16144, + "name": "externalRateN", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16129, + "src": "33997:13:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 16145, + "name": "externalRateD", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16131, + "src": "34015:13:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": null, + "id": 16143, + "name": "Fraction", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14478, + "src": "33983:8:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_Fraction_$14478_storage_ptr_$", + "typeString": "type(struct LiquidityPoolV2Converter.Fraction storage pointer)" + } + }, + "id": 16146, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "names": [ + "n", + "d" + ], + "nodeType": "FunctionCall", + "src": "33983:48:25", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Fraction_$14478_memory", + "typeString": "struct LiquidityPoolV2Converter.Fraction memory" + } + }, + "functionReturnParameters": 16127, + "id": 16147, + "nodeType": "Return", + "src": "33976:55:25" + } + ] + } + }, + { + "assignments": [ + 16151 + ], + "declarations": [ + { + "constant": false, + "id": 16151, + "name": "timeElapsed", + "nodeType": "VariableDeclaration", + "scope": 16230, + "src": "34132:19:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 16150, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "34132:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 16156, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 16155, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 16152, + "name": "time", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16520, + "src": "34154:4:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 16153, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "34154:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 16154, + "name": "referenceRateUpdateTime", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14503, + "src": "34163:23:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "34154:32:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "34132:54:25" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 16159, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 16157, + "name": "timeElapsed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16151, + "src": "34289:11:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 16158, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "34304:1:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "34289:16:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 16163, + "nodeType": "IfStatement", + "src": "34285:69:25", + "trueBody": { + "id": 16162, + "nodeType": "Block", + "src": "34307:47:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 16160, + "name": "referenceRate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14501, + "src": "34329:13:25", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Fraction_$14478_storage", + "typeString": "struct LiquidityPoolV2Converter.Fraction storage ref" + } + }, + "functionReturnParameters": 16127, + "id": 16161, + "nodeType": "Return", + "src": "34322:20:25" + } + ] + } + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 16166, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 16164, + "name": "timeElapsed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16151, + "src": "34696:11:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 16165, + "name": "RATE_PROPAGATION_PERIOD", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14499, + "src": "34711:23:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "34696:38:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 16170, + "nodeType": "IfStatement", + "src": "34692:96:25", + "trueBody": { + "id": 16169, + "nodeType": "Block", + "src": "34736:52:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 16167, + "name": "lastConversionRate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14505, + "src": "34758:18:25", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Fraction_$14478_storage", + "typeString": "struct LiquidityPoolV2Converter.Fraction storage ref" + } + }, + "functionReturnParameters": 16127, + "id": 16168, + "nodeType": "Return", + "src": "34751:25:25" + } + ] + } + }, + { + "assignments": [ + 16172 + ], + "declarations": [ + { + "constant": false, + "id": 16172, + "name": "ref", + "nodeType": "VariableDeclaration", + "scope": 16230, + "src": "34872:19:25", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Fraction_$14478_memory_ptr", + "typeString": "struct LiquidityPoolV2Converter.Fraction" + }, + "typeName": { + "contractScope": null, + "id": 16171, + "name": "Fraction", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 14478, + "src": "34872:8:25", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Fraction_$14478_storage_ptr", + "typeString": "struct LiquidityPoolV2Converter.Fraction" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 16174, + "initialValue": { + "argumentTypes": null, + "id": 16173, + "name": "referenceRate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14501, + "src": "34894:13:25", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Fraction_$14478_storage", + "typeString": "struct LiquidityPoolV2Converter.Fraction storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "34872:35:25" + }, + { + "assignments": [ + 16176 + ], + "declarations": [ + { + "constant": false, + "id": 16176, + "name": "last", + "nodeType": "VariableDeclaration", + "scope": 16230, + "src": "34918:20:25", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Fraction_$14478_memory_ptr", + "typeString": "struct LiquidityPoolV2Converter.Fraction" + }, + "typeName": { + "contractScope": null, + "id": 16175, + "name": "Fraction", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 14478, + "src": "34918:8:25", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Fraction_$14478_storage_ptr", + "typeString": "struct LiquidityPoolV2Converter.Fraction" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 16178, + "initialValue": { + "argumentTypes": null, + "id": 16177, + "name": "lastConversionRate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14505, + "src": "34941:18:25", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Fraction_$14478_storage", + "typeString": "struct LiquidityPoolV2Converter.Fraction storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "34918:41:25" + }, + { + "assignments": [ + 16180 + ], + "declarations": [ + { + "constant": false, + "id": 16180, + "name": "x", + "nodeType": "VariableDeclaration", + "scope": 16230, + "src": "34972:9:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 16179, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "34972:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 16187, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 16184, + "name": "last", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16176, + "src": "34994:4:25", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Fraction_$14478_memory_ptr", + "typeString": "struct LiquidityPoolV2Converter.Fraction memory" + } + }, + "id": 16185, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "n", + "nodeType": "MemberAccess", + "referencedDeclaration": 14475, + "src": "34994:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 16181, + "name": "ref", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16172, + "src": "34984:3:25", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Fraction_$14478_memory_ptr", + "typeString": "struct LiquidityPoolV2Converter.Fraction memory" + } + }, + "id": 16182, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "d", + "nodeType": "MemberAccess", + "referencedDeclaration": 14477, + "src": "34984:5:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 16183, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 21791, + "src": "34984:9:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 16186, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "34984:17:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "34972:29:25" + }, + { + "assignments": [ + 16189 + ], + "declarations": [ + { + "constant": false, + "id": 16189, + "name": "y", + "nodeType": "VariableDeclaration", + "scope": 16230, + "src": "35012:9:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 16188, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "35012:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 16196, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 16193, + "name": "last", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16176, + "src": "35034:4:25", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Fraction_$14478_memory_ptr", + "typeString": "struct LiquidityPoolV2Converter.Fraction memory" + } + }, + "id": 16194, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "d", + "nodeType": "MemberAccess", + "referencedDeclaration": 14477, + "src": "35034:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 16190, + "name": "ref", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16172, + "src": "35024:3:25", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Fraction_$14478_memory_ptr", + "typeString": "struct LiquidityPoolV2Converter.Fraction memory" + } + }, + "id": 16191, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "n", + "nodeType": "MemberAccess", + "referencedDeclaration": 14475, + "src": "35024:5:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 16192, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 21791, + "src": "35024:9:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 16195, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "35024:17:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "35012:29:25" + }, + { + "assignments": [ + 16198 + ], + "declarations": [ + { + "constant": false, + "id": 16198, + "name": "newRateN", + "nodeType": "VariableDeclaration", + "scope": 16230, + "src": "35153:16:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 16197, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "35153:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 16211, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 16208, + "name": "timeElapsed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16151, + "src": "35227:11:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 16206, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16180, + "src": "35221:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 16207, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 21791, + "src": "35221:5:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 16209, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "35221:18:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 16203, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 16201, + "name": "RATE_PROPAGATION_PERIOD", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14499, + "src": "35178:23:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 16202, + "name": "timeElapsed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16151, + "src": "35204:11:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "35178:37:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 16199, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16189, + "src": "35172:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 16200, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 21791, + "src": "35172:5:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 16204, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "35172:44:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 16205, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 21737, + "src": "35172:48:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 16210, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "35172:68:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "35153:87:25" + }, + { + "assignments": [ + 16213 + ], + "declarations": [ + { + "constant": false, + "id": 16213, + "name": "newRateD", + "nodeType": "VariableDeclaration", + "scope": 16230, + "src": "35251:16:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 16212, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "35251:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 16223, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 16221, + "name": "RATE_PROPAGATION_PERIOD", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14499, + "src": "35292:23:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 16217, + "name": "last", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16176, + "src": "35280:4:25", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Fraction_$14478_memory_ptr", + "typeString": "struct LiquidityPoolV2Converter.Fraction memory" + } + }, + "id": 16218, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "d", + "nodeType": "MemberAccess", + "referencedDeclaration": 14477, + "src": "35280:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 16214, + "name": "ref", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16172, + "src": "35270:3:25", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Fraction_$14478_memory_ptr", + "typeString": "struct LiquidityPoolV2Converter.Fraction memory" + } + }, + "id": 16215, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "d", + "nodeType": "MemberAccess", + "referencedDeclaration": 14477, + "src": "35270:5:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 16216, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 21791, + "src": "35270:9:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 16219, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "35270:17:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 16220, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 21791, + "src": "35270:21:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 16222, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "35270:46:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "35251:65:25" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 16225, + "name": "newRateN", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16198, + "src": "35347:8:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 16226, + "name": "newRateD", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16213, + "src": "35357:8:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 16224, + "name": "reduceRate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16565, + "src": "35336:10:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_struct$_Fraction_$14478_memory_ptr_$", + "typeString": "function (uint256,uint256) pure returns (struct LiquidityPoolV2Converter.Fraction memory)" + } + }, + "id": 16227, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "35336:30:25", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Fraction_$14478_memory_ptr", + "typeString": "struct LiquidityPoolV2Converter.Fraction memory" + } + }, + "functionReturnParameters": 16127, + "id": 16228, + "nodeType": "Return", + "src": "35329:37:25" + } + ] + }, + "documentation": "@dev returns the effective rate between the two reserve tokens\r\n\n * @return rate\r", + "id": 16230, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "_effectiveTokensRate", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 16124, + "nodeType": "ParameterList", + "parameters": [], + "src": "33561:2:25" + }, + "payable": false, + "returnParameters": { + "id": 16127, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 16126, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 16230, + "src": "33586:8:25", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Fraction_$14478_memory_ptr", + "typeString": "struct LiquidityPoolV2Converter.Fraction" + }, + "typeName": { + "contractScope": null, + "id": 16125, + "name": "Fraction", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 14478, + "src": "33586:8:25", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Fraction_$14478_storage_ptr", + "typeString": "struct LiquidityPoolV2Converter.Fraction" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "33585:17:25" + }, + "scope": 16610, + "src": "33532:1842:25", + "stateMutability": "view", + "superFunction": null, + "visibility": "private" + }, + { + "body": { + "id": 16292, + "nodeType": "Block", + "src": "35730:714:25", + "statements": [ + { + "assignments": [ + 16238 + ], + "declarations": [ + { + "constant": false, + "id": 16238, + "name": "currentTime", + "nodeType": "VariableDeclaration", + "scope": 16293, + "src": "35741:19:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 16237, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "35741:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 16241, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 16239, + "name": "time", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16520, + "src": "35763:4:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 16240, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "35763:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "35741:28:25" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 16244, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 16242, + "name": "referenceRateUpdateTime", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14503, + "src": "35847:23:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 16243, + "name": "currentTime", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16238, + "src": "35874:11:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "35847:38:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 16250, + "nodeType": "IfStatement", + "src": "35843:100:25", + "trueBody": { + "id": 16249, + "nodeType": "Block", + "src": "35887:56:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 16245, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "35910:5:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "argumentTypes": null, + "id": 16246, + "name": "referenceRate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14501, + "src": "35917:13:25", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Fraction_$14478_storage", + "typeString": "struct LiquidityPoolV2Converter.Fraction storage ref" + } + } + ], + "id": 16247, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "35909:22:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_struct$_Fraction_$14478_storage_$", + "typeString": "tuple(bool,struct LiquidityPoolV2Converter.Fraction storage ref)" + } + }, + "functionReturnParameters": 16236, + "id": 16248, + "nodeType": "Return", + "src": "35902:29:25" + } + ] + } + }, + { + "assignments": [ + 16252 + ], + "declarations": [ + { + "constant": false, + "id": 16252, + "name": "newRate", + "nodeType": "VariableDeclaration", + "scope": 16293, + "src": "36021:23:25", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Fraction_$14478_memory_ptr", + "typeString": "struct LiquidityPoolV2Converter.Fraction" + }, + "typeName": { + "contractScope": null, + "id": 16251, + "name": "Fraction", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 14478, + "src": "36021:8:25", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Fraction_$14478_storage_ptr", + "typeString": "struct LiquidityPoolV2Converter.Fraction" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 16255, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 16253, + "name": "_effectiveTokensRate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16230, + "src": "36047:20:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_struct$_Fraction_$14478_memory_ptr_$", + "typeString": "function () view returns (struct LiquidityPoolV2Converter.Fraction memory)" + } + }, + "id": 16254, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "36047:22:25", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Fraction_$14478_memory_ptr", + "typeString": "struct LiquidityPoolV2Converter.Fraction memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "36021:48:25" + }, + { + "assignments": [ + 16257 + ], + "declarations": [ + { + "constant": false, + "id": 16257, + "name": "ref", + "nodeType": "VariableDeclaration", + "scope": 16293, + "src": "36152:19:25", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Fraction_$14478_memory_ptr", + "typeString": "struct LiquidityPoolV2Converter.Fraction" + }, + "typeName": { + "contractScope": null, + "id": 16256, + "name": "Fraction", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 14478, + "src": "36152:8:25", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Fraction_$14478_storage_ptr", + "typeString": "struct LiquidityPoolV2Converter.Fraction" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 16259, + "initialValue": { + "argumentTypes": null, + "id": 16258, + "name": "referenceRate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14501, + "src": "36174:13:25", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Fraction_$14478_storage", + "typeString": "struct LiquidityPoolV2Converter.Fraction storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "36152:35:25" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 16270, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 16264, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 16260, + "name": "newRate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16252, + "src": "36202:7:25", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Fraction_$14478_memory_ptr", + "typeString": "struct LiquidityPoolV2Converter.Fraction memory" + } + }, + "id": 16261, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "n", + "nodeType": "MemberAccess", + "referencedDeclaration": 14475, + "src": "36202:9:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 16262, + "name": "ref", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16257, + "src": "36215:3:25", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Fraction_$14478_memory_ptr", + "typeString": "struct LiquidityPoolV2Converter.Fraction memory" + } + }, + "id": 16263, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "n", + "nodeType": "MemberAccess", + "referencedDeclaration": 14475, + "src": "36215:5:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "36202:18:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 16269, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 16265, + "name": "newRate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16252, + "src": "36224:7:25", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Fraction_$14478_memory_ptr", + "typeString": "struct LiquidityPoolV2Converter.Fraction memory" + } + }, + "id": 16266, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "d", + "nodeType": "MemberAccess", + "referencedDeclaration": 14477, + "src": "36224:9:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 16267, + "name": "ref", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16257, + "src": "36237:3:25", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Fraction_$14478_memory_ptr", + "typeString": "struct LiquidityPoolV2Converter.Fraction memory" + } + }, + "id": 16268, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "d", + "nodeType": "MemberAccess", + "referencedDeclaration": 14477, + "src": "36237:5:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "36224:18:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "36202:40:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 16276, + "nodeType": "IfStatement", + "src": "36198:96:25", + "trueBody": { + "id": 16275, + "nodeType": "Block", + "src": "36244:50:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 16271, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "36267:5:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "argumentTypes": null, + "id": 16272, + "name": "newRate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16252, + "src": "36274:7:25", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Fraction_$14478_memory_ptr", + "typeString": "struct LiquidityPoolV2Converter.Fraction memory" + } + } + ], + "id": 16273, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "36266:16:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_struct$_Fraction_$14478_memory_ptr_$", + "typeString": "tuple(bool,struct LiquidityPoolV2Converter.Fraction memory)" + } + }, + "functionReturnParameters": 16236, + "id": 16274, + "nodeType": "Return", + "src": "36259:23:25" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "id": 16279, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 16277, + "name": "referenceRate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14501, + "src": "36306:13:25", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Fraction_$14478_storage", + "typeString": "struct LiquidityPoolV2Converter.Fraction storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 16278, + "name": "newRate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16252, + "src": "36322:7:25", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Fraction_$14478_memory_ptr", + "typeString": "struct LiquidityPoolV2Converter.Fraction memory" + } + }, + "src": "36306:23:25", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Fraction_$14478_storage", + "typeString": "struct LiquidityPoolV2Converter.Fraction storage ref" + } + }, + "id": 16280, + "nodeType": "ExpressionStatement", + "src": "36306:23:25" + }, + { + "expression": { + "argumentTypes": null, + "id": 16283, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 16281, + "name": "referenceRateUpdateTime", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14503, + "src": "36340:23:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 16282, + "name": "currentTime", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16238, + "src": "36366:11:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "36340:37:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 16284, + "nodeType": "ExpressionStatement", + "src": "36340:37:25" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 16285, + "name": "rebalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16319, + "src": "36390:9:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", + "typeString": "function ()" + } + }, + "id": 16286, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "36390:11:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 16287, + "nodeType": "ExpressionStatement", + "src": "36390:11:25" + }, + { + "expression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "hexValue": "74727565", + "id": 16288, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "36422:4:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "argumentTypes": null, + "id": 16289, + "name": "newRate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16252, + "src": "36428:7:25", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Fraction_$14478_memory_ptr", + "typeString": "struct LiquidityPoolV2Converter.Fraction memory" + } + } + ], + "id": 16290, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "36421:15:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_struct$_Fraction_$14478_memory_ptr_$", + "typeString": "tuple(bool,struct LiquidityPoolV2Converter.Fraction memory)" + } + }, + "functionReturnParameters": 16236, + "id": 16291, + "nodeType": "Return", + "src": "36414:22:25" + } + ] + }, + "documentation": "@dev checks if the rate has changed and if so, rebalances the weights\r\nnote that rebalancing based on rate change only happens once per block\r\n\n * @return whether the rate was updated\r\n@return rate between the reserve tokens\r", + "id": 16293, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "handleRateChange", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 16231, + "nodeType": "ParameterList", + "parameters": [], + "src": "35687:2:25" + }, + "payable": false, + "returnParameters": { + "id": 16236, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 16233, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 16293, + "src": "35707:4:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 16232, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "35707:4:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 16235, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 16293, + "src": "35713:8:25", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Fraction_$14478_memory_ptr", + "typeString": "struct LiquidityPoolV2Converter.Fraction" + }, + "typeName": { + "contractScope": null, + "id": 16234, + "name": "Fraction", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 14478, + "src": "35713:8:25", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Fraction_$14478_storage_ptr", + "typeString": "struct LiquidityPoolV2Converter.Fraction" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "35706:23:25" + }, + "scope": 16610, + "src": "35662:782:25", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "private" + }, + { + "body": { + "id": 16318, + "nodeType": "Block", + "src": "36653:365:25", + "statements": [ + { + "assignments": [ + 16297, + 16299 + ], + "declarations": [ + { + "constant": false, + "id": 16297, + "name": "primaryReserveWeight", + "nodeType": "VariableDeclaration", + "scope": 16319, + "src": "36705:27:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 16296, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "36705:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 16299, + "name": "secondaryReserveWeight", + "nodeType": "VariableDeclaration", + "scope": 16319, + "src": "36734:29:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 16298, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "36734:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 16303, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 16301, + "name": "referenceRate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14501, + "src": "36791:13:25", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Fraction_$14478_storage", + "typeString": "struct LiquidityPoolV2Converter.Fraction storage ref" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Fraction_$14478_storage", + "typeString": "struct LiquidityPoolV2Converter.Fraction storage ref" + } + ], + "id": 16300, + "name": "effectiveReserveWeights", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 15040, + 16365 + ], + "referencedDeclaration": 16365, + "src": "36767:23:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Fraction_$14478_memory_ptr_$returns$_t_uint32_$_t_uint32_$", + "typeString": "function (struct LiquidityPoolV2Converter.Fraction memory) view returns (uint32,uint32)" + } + }, + "id": 16302, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "36767:38:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint32_$_t_uint32_$", + "typeString": "tuple(uint32,uint32)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "36704:101:25" + }, + { + "expression": { + "argumentTypes": null, + "id": 16309, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 16304, + "name": "reserves", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2520, + "src": "36877:8:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Reserve_$2506_storage_$", + "typeString": "mapping(address => struct ConverterBase.Reserve storage ref)" + } + }, + "id": 16306, + "indexExpression": { + "argumentTypes": null, + "id": 16305, + "name": "primaryReserveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14482, + "src": "36886:19:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "36877:29:25", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Reserve_$2506_storage", + "typeString": "struct ConverterBase.Reserve storage ref" + } + }, + "id": 16307, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "weight", + "nodeType": "MemberAccess", + "referencedDeclaration": 2499, + "src": "36877:36:25", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 16308, + "name": "primaryReserveWeight", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16297, + "src": "36916:20:25", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "36877:59:25", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "id": 16310, + "nodeType": "ExpressionStatement", + "src": "36877:59:25" + }, + { + "expression": { + "argumentTypes": null, + "id": 16316, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 16311, + "name": "reserves", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2520, + "src": "36947:8:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Reserve_$2506_storage_$", + "typeString": "mapping(address => struct ConverterBase.Reserve storage ref)" + } + }, + "id": 16313, + "indexExpression": { + "argumentTypes": null, + "id": 16312, + "name": "secondaryReserveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14484, + "src": "36956:21:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "36947:31:25", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Reserve_$2506_storage", + "typeString": "struct ConverterBase.Reserve storage ref" + } + }, + "id": 16314, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "weight", + "nodeType": "MemberAccess", + "referencedDeclaration": 2499, + "src": "36947:38:25", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 16315, + "name": "secondaryReserveWeight", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16299, + "src": "36988:22:25", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "36947:63:25", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "id": 16317, + "nodeType": "ExpressionStatement", + "src": "36947:63:25" + } + ] + }, + "documentation": "@dev updates the pool's reserve weights with new values in order to push the current primary\r\nreserve token balance to its staked balance\r", + "id": 16319, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "rebalance", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 16294, + "nodeType": "ParameterList", + "parameters": [], + "src": "36642:2:25" + }, + "payable": false, + "returnParameters": { + "id": 16295, + "nodeType": "ParameterList", + "parameters": [], + "src": "36653:0:25" + }, + "scope": 16610, + "src": "36624:394:25", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "private" + }, + { + "body": { + "id": 16364, + "nodeType": "Block", + "src": "37416:631:25", + "statements": [ + { + "assignments": [ + 16329 + ], + "declarations": [ + { + "constant": false, + "id": 16329, + "name": "primaryStakedBalance", + "nodeType": "VariableDeclaration", + "scope": 16365, + "src": "37478:28:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 16328, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "37478:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 16333, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 16330, + "name": "stakedBalances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14488, + "src": "37509:14:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 16332, + "indexExpression": { + "argumentTypes": null, + "id": 16331, + "name": "primaryReserveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14482, + "src": "37524:19:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "37509:35:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "37478:66:25" + }, + { + "assignments": [ + 16335 + ], + "declarations": [ + { + "constant": false, + "id": 16335, + "name": "primaryBalance", + "nodeType": "VariableDeclaration", + "scope": 16365, + "src": "37603:22:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 16334, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "37603:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 16339, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 16337, + "name": "primaryReserveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14482, + "src": "37652:19:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + ], + "id": 16336, + "name": "reserveAmplifiedBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14852, + "src": "37628:23:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_contract$_IERC20Token_$20240_$returns$_t_uint256_$", + "typeString": "function (contract IERC20Token) view returns (uint256)" + } + }, + "id": 16338, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "37628:44:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "37603:69:25" + }, + { + "assignments": [ + 16341 + ], + "declarations": [ + { + "constant": false, + "id": 16341, + "name": "secondaryBalance", + "nodeType": "VariableDeclaration", + "scope": 16365, + "src": "37683:24:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 16340, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "37683:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 16345, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 16343, + "name": "secondaryReserveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14484, + "src": "37734:21:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + ], + "id": 16342, + "name": "reserveAmplifiedBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14852, + "src": "37710:23:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_contract$_IERC20Token_$20240_$returns$_t_uint256_$", + "typeString": "function (contract IERC20Token) view returns (uint256)" + } + }, + "id": 16344, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "37710:46:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "37683:73:25" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 16354, + "name": "AMPLIFICATION_FACTOR", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14470, + "src": "37913:20:25", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + ], + "expression": { + "argumentTypes": null, + "id": 16352, + "name": "primaryStakedBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16329, + "src": "37888:20:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 16353, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 21791, + "src": "37888:24:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 16355, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "37888:46:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 16356, + "name": "primaryBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16335, + "src": "37949:14:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 16357, + "name": "secondaryBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16341, + "src": "37978:16:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 16358, + "name": "_rate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16321, + "src": "38009:5:25", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Fraction_$14478_memory_ptr", + "typeString": "struct LiquidityPoolV2Converter.Fraction memory" + } + }, + "id": 16359, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "n", + "nodeType": "MemberAccess", + "referencedDeclaration": 14475, + "src": "38009:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 16360, + "name": "_rate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16321, + "src": "38031:5:25", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Fraction_$14478_memory_ptr", + "typeString": "struct LiquidityPoolV2Converter.Fraction memory" + } + }, + "id": 16361, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "d", + "nodeType": "MemberAccess", + "referencedDeclaration": 14477, + "src": "38031:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 16348, + "name": "SOVRYNSWAP_FORMULA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20758, + "src": "37837:18:25", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 16347, + "name": "addressOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20931, + "src": "37827:9:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$", + "typeString": "function (bytes32) view returns (address)" + } + }, + "id": 16349, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "37827:29:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 16346, + "name": "ISovrynSwapFormula", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12240, + "src": "37808:18:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ISovrynSwapFormula_$12240_$", + "typeString": "type(contract ISovrynSwapFormula)" + } + }, + "id": 16350, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "37808:49:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISovrynSwapFormula_$12240", + "typeString": "contract ISovrynSwapFormula" + } + }, + "id": 16351, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balancedWeights", + "nodeType": "MemberAccess", + "referencedDeclaration": 12239, + "src": "37808:65:25", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint32_$_t_uint32_$", + "typeString": "function (uint256,uint256,uint256,uint256,uint256) view external returns (uint32,uint32)" + } + }, + "id": 16362, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "37808:231:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint32_$_t_uint32_$", + "typeString": "tuple(uint32,uint32)" + } + }, + "functionReturnParameters": 16327, + "id": 16363, + "nodeType": "Return", + "src": "37801:238:25" + } + ] + }, + "documentation": "@dev returns the effective reserve weights based on the staked balance, current balance and oracle price\r\n\n * @param _rate rate between the reserve tokens\r\n\n * @return new primary reserve weight\r\n@return new secondary reserve weight\r", + "id": 16365, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "effectiveReserveWeights", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 16322, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 16321, + "name": "_rate", + "nodeType": "VariableDeclaration", + "scope": 16365, + "src": "37355:21:25", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Fraction_$14478_memory_ptr", + "typeString": "struct LiquidityPoolV2Converter.Fraction" + }, + "typeName": { + "contractScope": null, + "id": 16320, + "name": "Fraction", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 14478, + "src": "37355:8:25", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Fraction_$14478_storage_ptr", + "typeString": "struct LiquidityPoolV2Converter.Fraction" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "37354:23:25" + }, + "payable": false, + "returnParameters": { + "id": 16327, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 16324, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 16365, + "src": "37400:6:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 16323, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "37400:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 16326, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 16365, + "src": "37408:6:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 16325, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "37408:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "37399:16:25" + }, + "scope": 16610, + "src": "37322:725:25", + "stateMutability": "view", + "superFunction": null, + "visibility": "private" + }, + { + "body": { + "id": 16425, + "nodeType": "Block", + "src": "38656:529:25", + "statements": [ + { + "assignments": [ + 16379 + ], + "declarations": [ + { + "constant": false, + "id": 16379, + "name": "token1Balance", + "nodeType": "VariableDeclaration", + "scope": 16426, + "src": "38710:21:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 16378, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "38710:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 16383, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 16381, + "name": "_token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16367, + "src": "38758:7:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + ], + "id": 16380, + "name": "reserveAmplifiedBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14852, + "src": "38734:23:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_contract$_IERC20Token_$20240_$returns$_t_uint256_$", + "typeString": "function (contract IERC20Token) view returns (uint256)" + } + }, + "id": 16382, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "38734:32:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "38710:56:25" + }, + { + "assignments": [ + 16385 + ], + "declarations": [ + { + "constant": false, + "id": 16385, + "name": "token2Balance", + "nodeType": "VariableDeclaration", + "scope": 16426, + "src": "38777:21:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 16384, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "38777:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 16389, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 16387, + "name": "_token2", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16369, + "src": "38825:7:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + ], + "id": 16386, + "name": "reserveAmplifiedBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14852, + "src": "38801:23:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_contract$_IERC20Token_$20240_$returns$_t_uint256_$", + "typeString": "function (contract IERC20Token) view returns (uint256)" + } + }, + "id": 16388, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "38801:32:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "38777:56:25" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 16392, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 16390, + "name": "_token1Weight", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16371, + "src": "38882:13:25", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 16391, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "38899:1:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "38882:18:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 16401, + "nodeType": "IfStatement", + "src": "38878:91:25", + "trueBody": { + "id": 16400, + "nodeType": "Block", + "src": "38902:67:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 16398, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 16393, + "name": "_token1Weight", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16371, + "src": "38917:13:25", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 16394, + "name": "reserves", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2520, + "src": "38933:8:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Reserve_$2506_storage_$", + "typeString": "mapping(address => struct ConverterBase.Reserve storage ref)" + } + }, + "id": 16396, + "indexExpression": { + "argumentTypes": null, + "id": 16395, + "name": "_token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16367, + "src": "38942:7:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "38933:17:25", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Reserve_$2506_storage", + "typeString": "struct ConverterBase.Reserve storage ref" + } + }, + "id": 16397, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "weight", + "nodeType": "MemberAccess", + "referencedDeclaration": 2499, + "src": "38933:24:25", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "38917:40:25", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "id": 16399, + "nodeType": "ExpressionStatement", + "src": "38917:40:25" + } + ] + } + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 16404, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 16402, + "name": "_token2Weight", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16373, + "src": "38985:13:25", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 16403, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "39002:1:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "38985:18:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 16413, + "nodeType": "IfStatement", + "src": "38981:91:25", + "trueBody": { + "id": 16412, + "nodeType": "Block", + "src": "39005:67:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 16410, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 16405, + "name": "_token2Weight", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16373, + "src": "39020:13:25", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 16406, + "name": "reserves", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2520, + "src": "39036:8:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Reserve_$2506_storage_$", + "typeString": "mapping(address => struct ConverterBase.Reserve storage ref)" + } + }, + "id": 16408, + "indexExpression": { + "argumentTypes": null, + "id": 16407, + "name": "_token2", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16369, + "src": "39045:7:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "39036:17:25", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Reserve_$2506_storage", + "typeString": "struct ConverterBase.Reserve storage ref" + } + }, + "id": 16409, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "weight", + "nodeType": "MemberAccess", + "referencedDeclaration": 2499, + "src": "39036:24:25", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "39020:40:25", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "id": 16411, + "nodeType": "ExpressionStatement", + "src": "39020:40:25" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 16417, + "name": "_token1Weight", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16371, + "src": "39123:13:25", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + ], + "expression": { + "argumentTypes": null, + "id": 16415, + "name": "token2Balance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16385, + "src": "39105:13:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 16416, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 21791, + "src": "39105:17:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 16418, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "39105:32:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 16421, + "name": "_token2Weight", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16373, + "src": "39160:13:25", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + ], + "expression": { + "argumentTypes": null, + "id": 16419, + "name": "token1Balance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16379, + "src": "39142:13:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 16420, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 21791, + "src": "39142:17:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 16422, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "39142:32:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": null, + "id": 16414, + "name": "Fraction", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14478, + "src": "39091:8:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_Fraction_$14478_storage_ptr_$", + "typeString": "type(struct LiquidityPoolV2Converter.Fraction storage pointer)" + } + }, + "id": 16423, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "names": [ + "n", + "d" + ], + "nodeType": "FunctionCall", + "src": "39091:86:25", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Fraction_$14478_memory", + "typeString": "struct LiquidityPoolV2Converter.Fraction memory" + } + }, + "functionReturnParameters": 16377, + "id": 16424, + "nodeType": "Return", + "src": "39084:93:25" + } + ] + }, + "documentation": "@dev calculates and returns the rate between two reserve tokens\r\n\n * @param _token1 contract address of the token to calculate the rate of one unit of\r\n@param _token2 contract address of the token to calculate the rate of one `_token1` unit in\r\n@param _token1Weight reserve weight of token1\r\n@param _token2Weight reserve weight of token2\r\n\n * @return rate\r", + "id": 16426, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "tokensRate", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 16374, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 16367, + "name": "_token1", + "nodeType": "VariableDeclaration", + "scope": 16426, + "src": "38531:19:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + "typeName": { + "contractScope": null, + "id": 16366, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "38531:11:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 16369, + "name": "_token2", + "nodeType": "VariableDeclaration", + "scope": 16426, + "src": "38552:19:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + "typeName": { + "contractScope": null, + "id": 16368, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "38552:11:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 16371, + "name": "_token1Weight", + "nodeType": "VariableDeclaration", + "scope": 16426, + "src": "38573:20:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 16370, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "38573:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 16373, + "name": "_token2Weight", + "nodeType": "VariableDeclaration", + "scope": 16426, + "src": "38595:20:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 16372, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "38595:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "38530:86:25" + }, + "payable": false, + "returnParameters": { + "id": 16377, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 16376, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 16426, + "src": "38639:8:25", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Fraction_$14478_memory_ptr", + "typeString": "struct LiquidityPoolV2Converter.Fraction" + }, + "typeName": { + "contractScope": null, + "id": 16375, + "name": "Fraction", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 14478, + "src": "38639:8:25", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Fraction_$14478_storage_ptr", + "typeString": "struct LiquidityPoolV2Converter.Fraction" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "38638:17:25" + }, + "scope": 16610, + "src": "38511:674:25", + "stateMutability": "view", + "superFunction": null, + "visibility": "private" + }, + { + "body": { + "id": 16462, + "nodeType": "Block", + "src": "39789:570:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 16438, + "name": "_sourceToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16428, + "src": "39829:12:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + { + "argumentTypes": null, + "id": 16439, + "name": "_targetToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16430, + "src": "39843:12:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + { + "argumentTypes": null, + "id": 16440, + "name": "_sourceWeight", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16432, + "src": "39857:13:25", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + { + "argumentTypes": null, + "id": 16441, + "name": "_targetWeight", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16434, + "src": "39872:13:25", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + ], + "id": 16437, + "name": "dispatchTokenRateUpdateEvent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16493, + "src": "39800:28:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20Token_$20240_$_t_contract$_IERC20Token_$20240_$_t_uint32_$_t_uint32_$returns$__$", + "typeString": "function (contract IERC20Token,contract IERC20Token,uint32,uint32)" + } + }, + "id": 16442, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "39800:86:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 16443, + "nodeType": "ExpressionStatement", + "src": "39800:86:25" + }, + { + "assignments": [ + 16445 + ], + "declarations": [ + { + "constant": false, + "id": 16445, + "name": "targetPoolToken", + "nodeType": "VariableDeclaration", + "scope": 16463, + "src": "40129:27:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISmartToken_$20295", + "typeString": "contract ISmartToken" + }, + "typeName": { + "contractScope": null, + "id": 16444, + "name": "ISmartToken", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20295, + "src": "40129:11:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISmartToken_$20295", + "typeString": "contract ISmartToken" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 16449, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 16447, + "name": "_targetToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16430, + "src": "40169:12:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + ], + "id": 16446, + "name": "poolToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14922, + "src": "40159:9:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_contract$_IERC20Token_$20240_$returns$_t_contract$_ISmartToken_$20295_$", + "typeString": "function (contract IERC20Token) view returns (contract ISmartToken)" + } + }, + "id": 16448, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "40159:23:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISmartToken_$20295", + "typeString": "contract ISmartToken" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "40129:53:25" + }, + { + "assignments": [ + 16451 + ], + "declarations": [ + { + "constant": false, + "id": 16451, + "name": "targetPoolTokenSupply", + "nodeType": "VariableDeclaration", + "scope": 16463, + "src": "40193:29:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 16450, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "40193:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 16455, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 16452, + "name": "targetPoolToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16445, + "src": "40225:15:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISmartToken_$20295", + "typeString": "contract ISmartToken" + } + }, + "id": 16453, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "totalSupply", + "nodeType": "MemberAccess", + "referencedDeclaration": 20182, + "src": "40225:27:25", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", + "typeString": "function () view external returns (uint256)" + } + }, + "id": 16454, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "40225:29:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "40193:61:25" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 16457, + "name": "targetPoolToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16445, + "src": "40298:15:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISmartToken_$20295", + "typeString": "contract ISmartToken" + } + }, + { + "argumentTypes": null, + "id": 16458, + "name": "targetPoolTokenSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16451, + "src": "40315:21:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 16459, + "name": "_targetToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16430, + "src": "40338:12:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_ISmartToken_$20295", + "typeString": "contract ISmartToken" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + ], + "id": 16456, + "name": "dispatchPoolTokenRateUpdateEvent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16512, + "src": "40265:32:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_ISmartToken_$20295_$_t_uint256_$_t_contract$_IERC20Token_$20240_$returns$__$", + "typeString": "function (contract ISmartToken,uint256,contract IERC20Token)" + } + }, + "id": 16460, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "40265:86:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 16461, + "nodeType": "ExpressionStatement", + "src": "40265:86:25" + } + ] + }, + "documentation": "@dev dispatches rate events for both reserve tokens and for the target pool token\r\nonly used to circumvent the `stack too deep` compiler error\r\n\n * @param _sourceToken contract address of the source reserve token\r\n@param _targetToken contract address of the target reserve token\r\n@param _sourceWeight source reserve token weight\r\n@param _targetWeight target reserve token weight\r", + "id": 16463, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "dispatchRateEvents", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 16435, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 16428, + "name": "_sourceToken", + "nodeType": "VariableDeclaration", + "scope": 16463, + "src": "39685:24:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + "typeName": { + "contractScope": null, + "id": 16427, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "39685:11:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 16430, + "name": "_targetToken", + "nodeType": "VariableDeclaration", + "scope": 16463, + "src": "39711:24:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + "typeName": { + "contractScope": null, + "id": 16429, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "39711:11:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 16432, + "name": "_sourceWeight", + "nodeType": "VariableDeclaration", + "scope": 16463, + "src": "39737:20:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 16431, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "39737:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 16434, + "name": "_targetWeight", + "nodeType": "VariableDeclaration", + "scope": 16463, + "src": "39759:20:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 16433, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "39759:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "39684:96:25" + }, + "payable": false, + "returnParameters": { + "id": 16436, + "nodeType": "ParameterList", + "parameters": [], + "src": "39789:0:25" + }, + "scope": 16610, + "src": "39657:702:25", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "private" + }, + { + "body": { + "id": 16492, + "nodeType": "Block", + "src": "40969:212:25", + "statements": [ + { + "assignments": [ + 16475 + ], + "declarations": [ + { + "constant": false, + "id": 16475, + "name": "rate", + "nodeType": "VariableDeclaration", + "scope": 16493, + "src": "41025:20:25", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Fraction_$14478_memory_ptr", + "typeString": "struct LiquidityPoolV2Converter.Fraction" + }, + "typeName": { + "contractScope": null, + "id": 16474, + "name": "Fraction", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 14478, + "src": "41025:8:25", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Fraction_$14478_storage_ptr", + "typeString": "struct LiquidityPoolV2Converter.Fraction" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 16482, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 16477, + "name": "_token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16465, + "src": "41059:7:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + { + "argumentTypes": null, + "id": 16478, + "name": "_token2", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16467, + "src": "41068:7:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + { + "argumentTypes": null, + "id": 16479, + "name": "_token1Weight", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16469, + "src": "41077:13:25", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + { + "argumentTypes": null, + "id": 16480, + "name": "_token2Weight", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16471, + "src": "41092:13:25", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + ], + "id": 16476, + "name": "tokensRate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16426, + "src": "41048:10:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_contract$_IERC20Token_$20240_$_t_contract$_IERC20Token_$20240_$_t_uint32_$_t_uint32_$returns$_t_struct$_Fraction_$14478_memory_ptr_$", + "typeString": "function (contract IERC20Token,contract IERC20Token,uint32,uint32) view returns (struct LiquidityPoolV2Converter.Fraction memory)" + } + }, + "id": 16481, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "41048:58:25", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Fraction_$14478_memory_ptr", + "typeString": "struct LiquidityPoolV2Converter.Fraction memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "41025:81:25" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 16484, + "name": "_token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16465, + "src": "41140:7:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + { + "argumentTypes": null, + "id": 16485, + "name": "_token2", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16467, + "src": "41149:7:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 16486, + "name": "rate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16475, + "src": "41158:4:25", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Fraction_$14478_memory_ptr", + "typeString": "struct LiquidityPoolV2Converter.Fraction memory" + } + }, + "id": 16487, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "n", + "nodeType": "MemberAccess", + "referencedDeclaration": 14475, + "src": "41158:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 16488, + "name": "rate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16475, + "src": "41166:4:25", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Fraction_$14478_memory_ptr", + "typeString": "struct LiquidityPoolV2Converter.Fraction memory" + } + }, + "id": 16489, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "d", + "nodeType": "MemberAccess", + "referencedDeclaration": 14477, + "src": "41166:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 16483, + "name": "TokenRateUpdate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2564, + "src": "41124:15:25", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256,uint256)" + } + }, + "id": 16490, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "41124:49:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 16491, + "nodeType": "EmitStatement", + "src": "41119:54:25" + } + ] + }, + "documentation": "@dev dispatches token rate update event\r\nonly used to circumvent the `stack too deep` compiler error\r\n\n * @param _token1 contract address of the token to calculate the rate of one unit of\r\n@param _token2 contract address of the token to calculate the rate of one `_token1` unit in\r\n@param _token1Weight reserve weight of token1\r\n@param _token2Weight reserve weight of token2\r", + "id": 16493, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "dispatchTokenRateUpdateEvent", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 16472, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 16465, + "name": "_token1", + "nodeType": "VariableDeclaration", + "scope": 16493, + "src": "40875:19:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + "typeName": { + "contractScope": null, + "id": 16464, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "40875:11:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 16467, + "name": "_token2", + "nodeType": "VariableDeclaration", + "scope": 16493, + "src": "40896:19:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + "typeName": { + "contractScope": null, + "id": 16466, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "40896:11:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 16469, + "name": "_token1Weight", + "nodeType": "VariableDeclaration", + "scope": 16493, + "src": "40917:20:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 16468, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "40917:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 16471, + "name": "_token2Weight", + "nodeType": "VariableDeclaration", + "scope": 16493, + "src": "40939:20:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 16470, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "40939:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "40874:86:25" + }, + "payable": false, + "returnParameters": { + "id": 16473, + "nodeType": "ParameterList", + "parameters": [], + "src": "40969:0:25" + }, + "scope": 16610, + "src": "40837:344:25", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "private" + }, + { + "body": { + "id": 16511, + "nodeType": "Block", + "src": "41655:115:25", + "statements": [ + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 16503, + "name": "_poolToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16495, + "src": "41687:10:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISmartToken_$20295", + "typeString": "contract ISmartToken" + } + }, + { + "argumentTypes": null, + "id": 16504, + "name": "_reserveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16499, + "src": "41699:13:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 16505, + "name": "stakedBalances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14488, + "src": "41714:14:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 16507, + "indexExpression": { + "argumentTypes": null, + "id": 16506, + "name": "_reserveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16499, + "src": "41729:13:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "41714:29:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 16508, + "name": "_poolTokenSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16497, + "src": "41745:16:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_ISmartToken_$20295", + "typeString": "contract ISmartToken" + }, + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 16502, + "name": "TokenRateUpdate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2564, + "src": "41671:15:25", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256,uint256)" + } + }, + "id": 16509, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "41671:91:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 16510, + "nodeType": "EmitStatement", + "src": "41666:96:25" + } + ] + }, + "documentation": "@dev dispatches the `TokenRateUpdate` for the pool token\r\nonly used to circumvent the `stack too deep` compiler error\r\n\n * @param _poolToken address of the pool token\r\n@param _poolTokenSupply total pool token supply\r\n@param _reserveToken address of the reserve token\r", + "id": 16512, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "dispatchPoolTokenRateUpdateEvent", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 16500, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 16495, + "name": "_poolToken", + "nodeType": "VariableDeclaration", + "scope": 16512, + "src": "41570:22:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISmartToken_$20295", + "typeString": "contract ISmartToken" + }, + "typeName": { + "contractScope": null, + "id": 16494, + "name": "ISmartToken", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20295, + "src": "41570:11:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISmartToken_$20295", + "typeString": "contract ISmartToken" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 16497, + "name": "_poolTokenSupply", + "nodeType": "VariableDeclaration", + "scope": 16512, + "src": "41594:24:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 16496, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "41594:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 16499, + "name": "_reserveToken", + "nodeType": "VariableDeclaration", + "scope": 16512, + "src": "41620:25:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + "typeName": { + "contractScope": null, + "id": 16498, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "41620:11:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "41569:77:25" + }, + "payable": false, + "returnParameters": { + "id": 16501, + "nodeType": "ParameterList", + "parameters": [], + "src": "41655:0:25" + }, + "scope": 16610, + "src": "41528:242:25", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "private" + }, + { + "body": { + "id": 16519, + "nodeType": "Block", + "src": "41882:29:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 16517, + "name": "now", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22340, + "src": "41900:3:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 16516, + "id": 16518, + "nodeType": "Return", + "src": "41893:10:25" + } + ] + }, + "documentation": "@dev returns the current time\r", + "id": 16520, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "time", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 16513, + "nodeType": "ParameterList", + "parameters": [], + "src": "41847:2:25" + }, + "payable": false, + "returnParameters": { + "id": 16516, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 16515, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 16520, + "src": "41873:7:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 16514, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "41873:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "41872:9:25" + }, + "scope": 16610, + "src": "41834:77:25", + "stateMutability": "view", + "superFunction": null, + "visibility": "internal" + }, + { + "constant": true, + "id": 16523, + "name": "MAX_RATE_FACTOR_LOWER_BOUND", + "nodeType": "VariableDeclaration", + "scope": 16610, + "src": "41919:59:25", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 16521, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "41919:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "31653330", + "id": 16522, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "41974:4:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000000000000000000000000000_by_1", + "typeString": "int_const 1000000000000000000000000000000" + }, + "value": "1e30" + }, + "visibility": "private" + }, + { + "constant": true, + "id": 16531, + "name": "MAX_RATE_FACTOR_UPPER_BOUND", + "nodeType": "VariableDeclaration", + "scope": 16610, + "src": "41985:96:25", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 16524, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "41985:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 16530, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 16527, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "-", + "prefix": true, + "src": "42048:2:25", + "subExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 16526, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "42049:1:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "typeDescriptions": { + "typeIdentifier": "t_rational_-1_by_1", + "typeString": "int_const -1" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_-1_by_1", + "typeString": "int_const -1" + } + ], + "id": 16525, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "42040:7:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": "uint256" + }, + "id": 16528, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "42040:11:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 16529, + "name": "MAX_RATE_FACTOR_LOWER_BOUND", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16523, + "src": "42054:27:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "42040:41:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "private" + }, + { + "body": { + "id": 16564, + "nodeType": "Block", + "src": "42310:196:25", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 16542, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 16540, + "name": "_n", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16533, + "src": "42325:2:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 16541, + "name": "_d", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16535, + "src": "42331:2:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "42325:8:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 16549, + "nodeType": "IfStatement", + "src": "42321:69:25", + "trueBody": { + "id": 16548, + "nodeType": "Block", + "src": "42335:55:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 16544, + "name": "_n", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16533, + "src": "42371:2:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 16545, + "name": "_d", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16535, + "src": "42375:2:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 16543, + "name": "reduceFactors", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16609, + "src": "42357:13:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_struct$_Fraction_$14478_memory_ptr_$", + "typeString": "function (uint256,uint256) pure returns (struct LiquidityPoolV2Converter.Fraction memory)" + } + }, + "id": 16546, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "42357:21:25", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Fraction_$14478_memory_ptr", + "typeString": "struct LiquidityPoolV2Converter.Fraction memory" + } + }, + "functionReturnParameters": 16539, + "id": 16547, + "nodeType": "Return", + "src": "42350:28:25" + } + ] + } + }, + { + "assignments": [ + 16551 + ], + "declarations": [ + { + "constant": false, + "id": 16551, + "name": "rate", + "nodeType": "VariableDeclaration", + "scope": 16565, + "src": "42402:20:25", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Fraction_$14478_memory_ptr", + "typeString": "struct LiquidityPoolV2Converter.Fraction" + }, + "typeName": { + "contractScope": null, + "id": 16550, + "name": "Fraction", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 14478, + "src": "42402:8:25", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Fraction_$14478_storage_ptr", + "typeString": "struct LiquidityPoolV2Converter.Fraction" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 16556, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 16553, + "name": "_d", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16535, + "src": "42439:2:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 16554, + "name": "_n", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16533, + "src": "42443:2:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 16552, + "name": "reduceFactors", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16609, + "src": "42425:13:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_struct$_Fraction_$14478_memory_ptr_$", + "typeString": "function (uint256,uint256) pure returns (struct LiquidityPoolV2Converter.Fraction memory)" + } + }, + "id": 16555, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "42425:21:25", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Fraction_$14478_memory_ptr", + "typeString": "struct LiquidityPoolV2Converter.Fraction memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "42402:44:25" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 16558, + "name": "rate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16551, + "src": "42478:4:25", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Fraction_$14478_memory_ptr", + "typeString": "struct LiquidityPoolV2Converter.Fraction memory" + } + }, + "id": 16559, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "d", + "nodeType": "MemberAccess", + "referencedDeclaration": 14477, + "src": "42478:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 16560, + "name": "rate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16551, + "src": "42489:4:25", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Fraction_$14478_memory_ptr", + "typeString": "struct LiquidityPoolV2Converter.Fraction memory" + } + }, + "id": 16561, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "n", + "nodeType": "MemberAccess", + "referencedDeclaration": 14475, + "src": "42489:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": null, + "id": 16557, + "name": "Fraction", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14478, + "src": "42464:8:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_Fraction_$14478_storage_ptr_$", + "typeString": "type(struct LiquidityPoolV2Converter.Fraction storage pointer)" + } + }, + "id": 16562, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "names": [ + "n", + "d" + ], + "nodeType": "FunctionCall", + "src": "42464:34:25", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Fraction_$14478_memory", + "typeString": "struct LiquidityPoolV2Converter.Fraction memory" + } + }, + "functionReturnParameters": 16539, + "id": 16563, + "nodeType": "Return", + "src": "42457:41:25" + } + ] + }, + "documentation": "@dev reduces the numerator and denominator while maintaining the ratio between them as accurately as possible\r", + "id": 16565, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "reduceRate", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 16536, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 16533, + "name": "_n", + "nodeType": "VariableDeclaration", + "scope": 16565, + "src": "42246:10:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 16532, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "42246:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 16535, + "name": "_d", + "nodeType": "VariableDeclaration", + "scope": 16565, + "src": "42258:10:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 16534, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "42258:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "42245:24:25" + }, + "payable": false, + "returnParameters": { + "id": 16539, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 16538, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 16565, + "src": "42293:8:25", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Fraction_$14478_memory_ptr", + "typeString": "struct LiquidityPoolV2Converter.Fraction" + }, + "typeName": { + "contractScope": null, + "id": 16537, + "name": "Fraction", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 14478, + "src": "42293:8:25", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Fraction_$14478_storage_ptr", + "typeString": "struct LiquidityPoolV2Converter.Fraction" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "42292:17:25" + }, + "scope": 16610, + "src": "42226:280:25", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 16608, + "nodeType": "Block", + "src": "42723:504:25", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 16576, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 16574, + "name": "_min", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16569, + "src": "42738:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "id": 16575, + "name": "MAX_RATE_FACTOR_UPPER_BOUND", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16531, + "src": "42745:27:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "42738:34:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 16588, + "nodeType": "IfStatement", + "src": "42734:213:25", + "trueBody": { + "id": 16587, + "nodeType": "Block", + "src": "42774:173:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 16578, + "name": "MAX_RATE_FACTOR_LOWER_BOUND", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16523, + "src": "42827:27:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 16584, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 16579, + "name": "_min", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16569, + "src": "42876:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 16582, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 16580, + "name": "_max", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16567, + "src": "42884:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 16581, + "name": "MAX_RATE_FACTOR_LOWER_BOUND", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16523, + "src": "42891:27:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "42884:34:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 16583, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "42883:36:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "42876:43:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": null, + "id": 16577, + "name": "Fraction", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14478, + "src": "42796:8:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_Fraction_$14478_storage_ptr_$", + "typeString": "type(struct LiquidityPoolV2Converter.Fraction storage pointer)" + } + }, + "id": 16585, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "names": [ + "n", + "d" + ], + "nodeType": "FunctionCall", + "src": "42796:139:25", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Fraction_$14478_memory", + "typeString": "struct LiquidityPoolV2Converter.Fraction memory" + } + }, + "functionReturnParameters": 16573, + "id": 16586, + "nodeType": "Return", + "src": "42789:146:25" + } + ] + } + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 16591, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 16589, + "name": "_max", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16567, + "src": "42963:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "id": 16590, + "name": "MAX_RATE_FACTOR_LOWER_BOUND", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16523, + "src": "42970:27:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "42963:34:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 16602, + "nodeType": "IfStatement", + "src": "42959:211:25", + "trueBody": { + "id": 16601, + "nodeType": "Block", + "src": "42999:171:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 16593, + "name": "MAX_RATE_FACTOR_LOWER_BOUND", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16523, + "src": "43052:27:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 16598, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 16596, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 16594, + "name": "_min", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16569, + "src": "43101:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 16595, + "name": "MAX_RATE_FACTOR_LOWER_BOUND", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16523, + "src": "43108:27:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "43101:34:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 16597, + "name": "_max", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16567, + "src": "43138:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "43101:41:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": null, + "id": 16592, + "name": "Fraction", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14478, + "src": "43021:8:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_Fraction_$14478_storage_ptr_$", + "typeString": "type(struct LiquidityPoolV2Converter.Fraction storage pointer)" + } + }, + "id": 16599, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "names": [ + "n", + "d" + ], + "nodeType": "FunctionCall", + "src": "43021:137:25", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Fraction_$14478_memory", + "typeString": "struct LiquidityPoolV2Converter.Fraction memory" + } + }, + "functionReturnParameters": 16573, + "id": 16600, + "nodeType": "Return", + "src": "43014:144:25" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 16604, + "name": "_max", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16567, + "src": "43203:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 16605, + "name": "_min", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16569, + "src": "43212:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": null, + "id": 16603, + "name": "Fraction", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14478, + "src": "43189:8:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_Fraction_$14478_storage_ptr_$", + "typeString": "type(struct LiquidityPoolV2Converter.Fraction storage pointer)" + } + }, + "id": 16606, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "names": [ + "n", + "d" + ], + "nodeType": "FunctionCall", + "src": "43189:30:25", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Fraction_$14478_memory", + "typeString": "struct LiquidityPoolV2Converter.Fraction memory" + } + }, + "functionReturnParameters": 16573, + "id": 16607, + "nodeType": "Return", + "src": "43182:37:25" + } + ] + }, + "documentation": "@dev reduces the factors while maintaining the ratio between them as accurately as possible\r", + "id": 16609, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "reduceFactors", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 16570, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 16567, + "name": "_max", + "nodeType": "VariableDeclaration", + "scope": 16609, + "src": "42655:12:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 16566, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "42655:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 16569, + "name": "_min", + "nodeType": "VariableDeclaration", + "scope": 16609, + "src": "42669:12:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 16568, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "42669:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "42654:28:25" + }, + "payable": false, + "returnParameters": { + "id": 16573, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 16572, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 16609, + "src": "42706:8:25", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Fraction_$14478_memory_ptr", + "typeString": "struct LiquidityPoolV2Converter.Fraction" + }, + "typeName": { + "contractScope": null, + "id": 16571, + "name": "Fraction", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 14478, + "src": "42706:8:25", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Fraction_$14478_storage_ptr", + "typeString": "struct LiquidityPoolV2Converter.Fraction" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "42705:17:25" + }, + "scope": 16610, + "src": "42632:595:25", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + } + ], + "scope": 16611, + "src": "651:42579:25" + } + ], + "src": "0:43232:25" + }, + "id": 25 + }, + "solidity/contracts/converter/types/liquidity-pool-v2/LiquidityPoolV2ConverterAnchorFactory.sol": { + "ast": { + "absolutePath": "solidity/contracts/converter/types/liquidity-pool-v2/LiquidityPoolV2ConverterAnchorFactory.sol", + "exportedSymbols": { + "LiquidityPoolV2ConverterAnchorFactory": [ + 16655 + ] + }, + "id": 16656, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 16612, + "literals": [ + "solidity", + "0.4", + ".26" + ], + "nodeType": "PragmaDirective", + "src": "0:23:26" + }, + { + "absolutePath": "solidity/contracts/converter/types/liquidity-pool-v2/PoolTokensContainer.sol", + "file": "./PoolTokensContainer.sol", + "id": 16613, + "nodeType": "ImportDirective", + "scope": 16656, + "sourceUnit": 16936, + "src": "25:35:26", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "solidity/contracts/converter/interfaces/ITypedConverterAnchorFactory.sol", + "file": "../../interfaces/ITypedConverterAnchorFactory.sol", + "id": 16614, + "nodeType": "ImportDirective", + "scope": 16656, + "sourceUnit": 12261, + "src": "62:59:26", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 16615, + "name": "ITypedConverterAnchorFactory", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 12260, + "src": "234:28:26", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ITypedConverterAnchorFactory_$12260", + "typeString": "contract ITypedConverterAnchorFactory" + } + }, + "id": 16616, + "nodeType": "InheritanceSpecifier", + "src": "234:28:26" + } + ], + "contractDependencies": [ + 12260, + 16935 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 16655, + "linearizedBaseContracts": [ + 16655, + 12260 + ], + "name": "LiquidityPoolV2ConverterAnchorFactory", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 16623, + "nodeType": "Block", + "src": "454:27:26", + "statements": [ + { + "expression": { + "argumentTypes": null, + "hexValue": "32", + "id": 16621, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "472:1:26", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "functionReturnParameters": 16620, + "id": 16622, + "nodeType": "Return", + "src": "465:8:26" + } + ] + }, + "documentation": "@dev returns the converter type the factory is associated with\r\n\n * @return converter type\r", + "id": 16624, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "converterType", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 16617, + "nodeType": "ParameterList", + "parameters": [], + "src": "422:2:26" + }, + "payable": false, + "returnParameters": { + "id": 16620, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 16619, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 16624, + "src": "446:6:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 16618, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "446:6:26", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "445:8:26" + }, + "scope": 16655, + "src": "400:81:26", + "stateMutability": "pure", + "superFunction": 12248, + "visibility": "public" + }, + { + "body": { + "id": 16653, + "nodeType": "Block", + "src": "899:179:26", + "statements": [ + { + "assignments": [ + 16636 + ], + "declarations": [ + { + "constant": false, + "id": 16636, + "name": "container", + "nodeType": "VariableDeclaration", + "scope": 16654, + "src": "910:30:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IPoolTokensContainer_$17009", + "typeString": "contract IPoolTokensContainer" + }, + "typeName": { + "contractScope": null, + "id": 16635, + "name": "IPoolTokensContainer", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 17009, + "src": "910:20:26", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IPoolTokensContainer_$17009", + "typeString": "contract IPoolTokensContainer" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 16643, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 16639, + "name": "_name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16626, + "src": "967:5:26", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "argumentTypes": null, + "id": 16640, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16628, + "src": "974:7:26", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "argumentTypes": null, + "id": 16641, + "name": "_decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16630, + "src": "983:9:26", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + ], + "id": 16638, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "943:23:26", + "typeDescriptions": { + "typeIdentifier": "t_function_creation_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_uint8_$returns$_t_contract$_PoolTokensContainer_$16935_$", + "typeString": "function (string memory,string memory,uint8) returns (contract PoolTokensContainer)" + }, + "typeName": { + "contractScope": null, + "id": 16637, + "name": "PoolTokensContainer", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 16935, + "src": "947:19:26", + "typeDescriptions": { + "typeIdentifier": "t_contract$_PoolTokensContainer_$16935", + "typeString": "contract PoolTokensContainer" + } + } + }, + "id": 16642, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "943:50:26", + "typeDescriptions": { + "typeIdentifier": "t_contract$_PoolTokensContainer_$16935", + "typeString": "contract PoolTokensContainer" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "910:83:26" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 16647, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22338, + "src": "1032:3:26", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 16648, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1032:10:26", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 16644, + "name": "container", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16636, + "src": "1004:9:26", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IPoolTokensContainer_$17009", + "typeString": "contract IPoolTokensContainer" + } + }, + "id": 16646, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transferOwnership", + "nodeType": "MemberAccess", + "referencedDeclaration": 22243, + "src": "1004:27:26", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$", + "typeString": "function (address) external" + } + }, + "id": 16649, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1004:39:26", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 16650, + "nodeType": "ExpressionStatement", + "src": "1004:39:26" + }, + { + "expression": { + "argumentTypes": null, + "id": 16651, + "name": "container", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16636, + "src": "1061:9:26", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IPoolTokensContainer_$17009", + "typeString": "contract IPoolTokensContainer" + } + }, + "functionReturnParameters": 16634, + "id": 16652, + "nodeType": "Return", + "src": "1054:16:26" + } + ] + }, + "documentation": "@dev creates a new converter anchor with the given arguments and transfers\r\nthe ownership to the caller\r\n\n * @param _name pool name\r\n@param _symbol pool symbol\r\n@param _decimals pool decimals\r\n\n * @return new anchor\r", + "id": 16654, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "createAnchor", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 16631, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 16626, + "name": "_name", + "nodeType": "VariableDeclaration", + "scope": 16654, + "src": "818:12:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 16625, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "818:6:26", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 16628, + "name": "_symbol", + "nodeType": "VariableDeclaration", + "scope": 16654, + "src": "832:14:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 16627, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "832:6:26", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 16630, + "name": "_decimals", + "nodeType": "VariableDeclaration", + "scope": 16654, + "src": "848:15:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 16629, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "848:5:26", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "817:47:26" + }, + "payable": false, + "returnParameters": { + "id": 16634, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 16633, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 16654, + "src": "881:16:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + }, + "typeName": { + "contractScope": null, + "id": 16632, + "name": "IConverterAnchor", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11826, + "src": "881:16:26", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "880:18:26" + }, + "scope": 16655, + "src": "796:282:26", + "stateMutability": "nonpayable", + "superFunction": 12259, + "visibility": "public" + } + ], + "scope": 16656, + "src": "184:897:26" + } + ], + "src": "0:1083:26" + }, + "id": 26 + }, + "solidity/contracts/converter/types/liquidity-pool-v2/LiquidityPoolV2ConverterCustomFactory.sol": { + "ast": { + "absolutePath": "solidity/contracts/converter/types/liquidity-pool-v2/LiquidityPoolV2ConverterCustomFactory.sol", + "exportedSymbols": { + "LiquidityPoolV2ConverterCustomFactory": [ + 16692 + ] + }, + "id": 16693, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 16657, + "literals": [ + "solidity", + "0.4", + ".26" + ], + "nodeType": "PragmaDirective", + "src": "0:23:27" + }, + { + "absolutePath": "solidity/contracts/converter/interfaces/ITypedConverterCustomFactory.sol", + "file": "../../interfaces/ITypedConverterCustomFactory.sol", + "id": 16658, + "nodeType": "ImportDirective", + "scope": 16693, + "sourceUnit": 12269, + "src": "25:59:27", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "solidity/contracts/utility/PriceOracle.sol", + "file": "../../../utility/PriceOracle.sol", + "id": 16659, + "nodeType": "ImportDirective", + "scope": 16693, + "sourceUnit": 21669, + "src": "86:42:27", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 16660, + "name": "ITypedConverterCustomFactory", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 12268, + "src": "241:28:27", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ITypedConverterCustomFactory_$12268", + "typeString": "contract ITypedConverterCustomFactory" + } + }, + "id": 16661, + "nodeType": "InheritanceSpecifier", + "src": "241:28:27" + } + ], + "contractDependencies": [ + 12268, + 21668 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 16692, + "linearizedBaseContracts": [ + 16692, + 12268 + ], + "name": "LiquidityPoolV2ConverterCustomFactory", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 16668, + "nodeType": "Block", + "src": "461:27:27", + "statements": [ + { + "expression": { + "argumentTypes": null, + "hexValue": "32", + "id": 16666, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "479:1:27", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "functionReturnParameters": 16665, + "id": 16667, + "nodeType": "Return", + "src": "472:8:27" + } + ] + }, + "documentation": "@dev returns the converter type the factory is associated with\r\n\n * @return converter type\r", + "id": 16669, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "converterType", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 16662, + "nodeType": "ParameterList", + "parameters": [], + "src": "429:2:27" + }, + "payable": false, + "returnParameters": { + "id": 16665, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 16664, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 16669, + "src": "453:6:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 16663, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "453:6:27", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "452:8:27" + }, + "scope": 16692, + "src": "407:81:27", + "stateMutability": "pure", + "superFunction": 12267, + "visibility": "public" + }, + { + "body": { + "id": 16690, + "nodeType": "Block", + "src": "1215:135:27", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 16684, + "name": "_primaryReserveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16671, + "src": "1249:20:27", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + { + "argumentTypes": null, + "id": 16685, + "name": "_secondaryReserveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16673, + "src": "1271:22:27", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + { + "argumentTypes": null, + "id": 16686, + "name": "_primaryReserveOracle", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16675, + "src": "1295:21:27", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", + "typeString": "contract IConsumerPriceOracle" + } + }, + { + "argumentTypes": null, + "id": 16687, + "name": "_secondaryReserveOracle", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16677, + "src": "1318:23:27", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", + "typeString": "contract IConsumerPriceOracle" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + { + "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", + "typeString": "contract IConsumerPriceOracle" + }, + { + "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", + "typeString": "contract IConsumerPriceOracle" + } + ], + "id": 16683, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "1233:15:27", + "typeDescriptions": { + "typeIdentifier": "t_function_creation_nonpayable$_t_contract$_IERC20Token_$20240_$_t_contract$_IERC20Token_$20240_$_t_contract$_IConsumerPriceOracle_$22203_$_t_contract$_IConsumerPriceOracle_$22203_$returns$_t_contract$_PriceOracle_$21668_$", + "typeString": "function (contract IERC20Token,contract IERC20Token,contract IConsumerPriceOracle,contract IConsumerPriceOracle) returns (contract PriceOracle)" + }, + "typeName": { + "contractScope": null, + "id": 16682, + "name": "PriceOracle", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 21668, + "src": "1237:11:27", + "typeDescriptions": { + "typeIdentifier": "t_contract$_PriceOracle_$21668", + "typeString": "contract PriceOracle" + } + } + }, + "id": 16688, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1233:109:27", + "typeDescriptions": { + "typeIdentifier": "t_contract$_PriceOracle_$21668", + "typeString": "contract PriceOracle" + } + }, + "functionReturnParameters": 16681, + "id": 16689, + "nodeType": "Return", + "src": "1226:116:27" + } + ] + }, + "documentation": "@dev creates a new price oracle\r\nnote that the oracles must have the same common denominator (USD, ETH etc.)\r\n\n * @param _primaryReserveToken primary reserve token address\r\n@param _secondaryReserveToken secondary reserve token address\r\n@param _primaryReserveOracle primary reserve oracle address\r\n@param _secondaryReserveOracle secondary reserve oracle address\r", + "id": 16691, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "createPriceOracle", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 16678, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 16671, + "name": "_primaryReserveToken", + "nodeType": "VariableDeclaration", + "scope": 16691, + "src": "975:32:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + "typeName": { + "contractScope": null, + "id": 16670, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "975:11:27", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 16673, + "name": "_secondaryReserveToken", + "nodeType": "VariableDeclaration", + "scope": 16691, + "src": "1018:34:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + "typeName": { + "contractScope": null, + "id": 16672, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "1018:11:27", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 16675, + "name": "_primaryReserveOracle", + "nodeType": "VariableDeclaration", + "scope": 16691, + "src": "1063:42:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", + "typeString": "contract IConsumerPriceOracle" + }, + "typeName": { + "contractScope": null, + "id": 16674, + "name": "IConsumerPriceOracle", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 22203, + "src": "1063:20:27", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", + "typeString": "contract IConsumerPriceOracle" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 16677, + "name": "_secondaryReserveOracle", + "nodeType": "VariableDeclaration", + "scope": 16691, + "src": "1116:44:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", + "typeString": "contract IConsumerPriceOracle" + }, + "typeName": { + "contractScope": null, + "id": 16676, + "name": "IConsumerPriceOracle", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 22203, + "src": "1116:20:27", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", + "typeString": "contract IConsumerPriceOracle" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "964:197:27" + }, + "payable": false, + "returnParameters": { + "id": 16681, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 16680, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 16691, + "src": "1196:12:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IPriceOracle_$22297", + "typeString": "contract IPriceOracle" + }, + "typeName": { + "contractScope": null, + "id": 16679, + "name": "IPriceOracle", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 22297, + "src": "1196:12:27", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IPriceOracle_$22297", + "typeString": "contract IPriceOracle" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1195:14:27" + }, + "scope": 16692, + "src": "938:412:27", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 16693, + "src": "191:1162:27" + } + ], + "src": "0:1355:27" + }, + "id": 27 + }, + "solidity/contracts/converter/types/liquidity-pool-v2/LiquidityPoolV2ConverterFactory.sol": { + "ast": { + "absolutePath": "solidity/contracts/converter/types/liquidity-pool-v2/LiquidityPoolV2ConverterFactory.sol", + "exportedSymbols": { + "LiquidityPoolV2ConverterFactory": [ + 16740 + ] + }, + "id": 16741, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 16694, + "literals": [ + "solidity", + "0.4", + ".26" + ], + "nodeType": "PragmaDirective", + "src": "0:23:28" + }, + { + "absolutePath": "solidity/contracts/converter/types/liquidity-pool-v2/LiquidityPoolV2Converter.sol", + "file": "./LiquidityPoolV2Converter.sol", + "id": 16695, + "nodeType": "ImportDirective", + "scope": 16741, + "sourceUnit": 16611, + "src": "25:40:28", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "solidity/contracts/converter/types/liquidity-pool-v2/interfaces/IPoolTokensContainer.sol", + "file": "./interfaces/IPoolTokensContainer.sol", + "id": 16696, + "nodeType": "ImportDirective", + "scope": 16741, + "sourceUnit": 17010, + "src": "67:47:28", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "solidity/contracts/converter/interfaces/ITypedConverterFactory.sol", + "file": "../../interfaces/ITypedConverterFactory.sol", + "id": 16697, + "nodeType": "ImportDirective", + "scope": 16741, + "sourceUnit": 12291, + "src": "116:53:28", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 16698, + "name": "ITypedConverterFactory", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 12290, + "src": "263:22:28", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ITypedConverterFactory_$12290", + "typeString": "contract ITypedConverterFactory" + } + }, + "id": 16699, + "nodeType": "InheritanceSpecifier", + "src": "263:22:28" + } + ], + "contractDependencies": [ + 12290, + 16610 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 16740, + "linearizedBaseContracts": [ + 16740, + 12290 + ], + "name": "LiquidityPoolV2ConverterFactory", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 16706, + "nodeType": "Block", + "src": "477:27:28", + "statements": [ + { + "expression": { + "argumentTypes": null, + "hexValue": "32", + "id": 16704, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "495:1:28", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "functionReturnParameters": 16703, + "id": 16705, + "nodeType": "Return", + "src": "488:8:28" + } + ] + }, + "documentation": "@dev returns the converter type the factory is associated with\r\n\n * @return converter type\r", + "id": 16707, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "converterType", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 16700, + "nodeType": "ParameterList", + "parameters": [], + "src": "445:2:28" + }, + "payable": false, + "returnParameters": { + "id": 16703, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 16702, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 16707, + "src": "469:6:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 16701, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "469:6:28", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "468:8:28" + }, + "scope": 16740, + "src": "423:81:28", + "stateMutability": "pure", + "superFunction": 12278, + "visibility": "public" + }, + { + "body": { + "id": 16738, + "nodeType": "Block", + "src": "1047:211:28", + "statements": [ + { + "assignments": [ + 16719 + ], + "declarations": [ + { + "constant": false, + "id": 16719, + "name": "converter", + "nodeType": "VariableDeclaration", + "scope": 16739, + "src": "1058:23:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ConverterBase_$3414", + "typeString": "contract ConverterBase" + }, + "typeName": { + "contractScope": null, + "id": 16718, + "name": "ConverterBase", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 3414, + "src": "1058:13:28", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ConverterBase_$3414", + "typeString": "contract ConverterBase" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 16728, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 16723, + "name": "_anchor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16709, + "src": "1134:7:28", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + ], + "id": 16722, + "name": "IPoolTokensContainer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17009, + "src": "1113:20:28", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IPoolTokensContainer_$17009_$", + "typeString": "type(contract IPoolTokensContainer)" + } + }, + "id": 16724, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1113:29:28", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IPoolTokensContainer_$17009", + "typeString": "contract IPoolTokensContainer" + } + }, + { + "argumentTypes": null, + "id": 16725, + "name": "_registry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16711, + "src": "1144:9:28", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IContractRegistry_$22220", + "typeString": "contract IContractRegistry" + } + }, + { + "argumentTypes": null, + "id": 16726, + "name": "_maxConversionFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16713, + "src": "1155:17:28", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IPoolTokensContainer_$17009", + "typeString": "contract IPoolTokensContainer" + }, + { + "typeIdentifier": "t_contract$_IContractRegistry_$22220", + "typeString": "contract IContractRegistry" + }, + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + ], + "id": 16721, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "1084:28:28", + "typeDescriptions": { + "typeIdentifier": "t_function_creation_nonpayable$_t_contract$_IPoolTokensContainer_$17009_$_t_contract$_IContractRegistry_$22220_$_t_uint32_$returns$_t_contract$_LiquidityPoolV2Converter_$16610_$", + "typeString": "function (contract IPoolTokensContainer,contract IContractRegistry,uint32) returns (contract LiquidityPoolV2Converter)" + }, + "typeName": { + "contractScope": null, + "id": 16720, + "name": "LiquidityPoolV2Converter", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 16610, + "src": "1088:24:28", + "typeDescriptions": { + "typeIdentifier": "t_contract$_LiquidityPoolV2Converter_$16610", + "typeString": "contract LiquidityPoolV2Converter" + } + } + }, + "id": 16727, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1084:89:28", + "typeDescriptions": { + "typeIdentifier": "t_contract$_LiquidityPoolV2Converter_$16610", + "typeString": "contract LiquidityPoolV2Converter" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1058:115:28" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 16732, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22338, + "src": "1212:3:28", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 16733, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1212:10:28", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 16729, + "name": "converter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16719, + "src": "1184:9:28", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ConverterBase_$3414", + "typeString": "contract ConverterBase" + } + }, + "id": 16731, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transferOwnership", + "nodeType": "MemberAccess", + "referencedDeclaration": 21296, + "src": "1184:27:28", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$", + "typeString": "function (address) external" + } + }, + "id": 16734, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1184:39:28", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 16735, + "nodeType": "ExpressionStatement", + "src": "1184:39:28" + }, + { + "expression": { + "argumentTypes": null, + "id": 16736, + "name": "converter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16719, + "src": "1241:9:28", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ConverterBase_$3414", + "typeString": "contract ConverterBase" + } + }, + "functionReturnParameters": 16717, + "id": 16737, + "nodeType": "Return", + "src": "1234:16:28" + } + ] + }, + "documentation": "@dev creates a new converter with the given arguments and transfers\r\nthe ownership to the caller\r\n\n * @param _anchor anchor governed by the converter\r\n@param _registry address of a contract registry contract\r\n@param _maxConversionFee maximum conversion fee, represented in ppm\r\n\n * @return new converter\r", + "id": 16739, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "createConverter", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 16714, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 16709, + "name": "_anchor", + "nodeType": "VariableDeclaration", + "scope": 16739, + "src": "938:24:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + }, + "typeName": { + "contractScope": null, + "id": 16708, + "name": "IConverterAnchor", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11826, + "src": "938:16:28", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 16711, + "name": "_registry", + "nodeType": "VariableDeclaration", + "scope": 16739, + "src": "964:27:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IContractRegistry_$22220", + "typeString": "contract IContractRegistry" + }, + "typeName": { + "contractScope": null, + "id": 16710, + "name": "IContractRegistry", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 22220, + "src": "964:17:28", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IContractRegistry_$22220", + "typeString": "contract IContractRegistry" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 16713, + "name": "_maxConversionFee", + "nodeType": "VariableDeclaration", + "scope": 16739, + "src": "993:24:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 16712, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "993:6:28", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "937:81:28" + }, + "payable": false, + "returnParameters": { + "id": 16717, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 16716, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 16739, + "src": "1035:10:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + }, + "typeName": { + "contractScope": null, + "id": 16715, + "name": "IConverter", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11817, + "src": "1035:10:28", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1034:12:28" + }, + "scope": 16740, + "src": "913:345:28", + "stateMutability": "nonpayable", + "superFunction": 12289, + "visibility": "public" + } + ], + "scope": 16741, + "src": "219:1042:28" + } + ], + "src": "0:1263:28" + }, + "id": 28 + }, + "solidity/contracts/converter/types/liquidity-pool-v2/PoolTokensContainer.sol": { + "ast": { + "absolutePath": "solidity/contracts/converter/types/liquidity-pool-v2/PoolTokensContainer.sol", + "exportedSymbols": { + "PoolTokensContainer": [ + 16935 + ] + }, + "id": 16936, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 16742, + "literals": [ + "solidity", + "0.4", + ".26" + ], + "nodeType": "PragmaDirective", + "src": "0:23:29" + }, + { + "absolutePath": "solidity/contracts/converter/types/liquidity-pool-v2/interfaces/IPoolTokensContainer.sol", + "file": "./interfaces/IPoolTokensContainer.sol", + "id": 16743, + "nodeType": "ImportDirective", + "scope": 16936, + "sourceUnit": 17010, + "src": "25:47:29", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "solidity/contracts/utility/Owned.sol", + "file": "../../../utility/Owned.sol", + "id": 16744, + "nodeType": "ImportDirective", + "scope": 16936, + "sourceUnit": 21325, + "src": "74:36:29", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "solidity/contracts/utility/TokenHolder.sol", + "file": "../../../utility/TokenHolder.sol", + "id": 16745, + "nodeType": "ImportDirective", + "scope": 16936, + "sourceUnit": 21977, + "src": "112:42:29", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "solidity/contracts/token/SmartToken.sol", + "file": "../../../token/SmartToken.sol", + "id": 16746, + "nodeType": "ImportDirective", + "scope": 16936, + "sourceUnit": 20149, + "src": "156:39:29", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 16747, + "name": "IPoolTokensContainer", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 17009, + "src": "572:20:29", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IPoolTokensContainer_$17009", + "typeString": "contract IPoolTokensContainer" + } + }, + "id": 16748, + "nodeType": "InheritanceSpecifier", + "src": "572:20:29" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 16749, + "name": "Owned", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 21324, + "src": "594:5:29", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Owned_$21324", + "typeString": "contract Owned" + } + }, + "id": 16750, + "nodeType": "InheritanceSpecifier", + "src": "594:5:29" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 16751, + "name": "TokenHolder", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 21976, + "src": "601:11:29", + "typeDescriptions": { + "typeIdentifier": "t_contract$_TokenHolder_$21976", + "typeString": "contract TokenHolder" + } + }, + "id": 16752, + "nodeType": "InheritanceSpecifier", + "src": "601:11:29" + } + ], + "contractDependencies": [ + 11826, + 17009, + 20148, + 21324, + 21933, + 21976, + 22052, + 22247, + 22313 + ], + "contractKind": "contract", + "documentation": "@dev The PoolTokensContainer contract serves as a container for multiple pool tokens.\r\nIt is used by specific liquidity pool types that require more than a single pool token,\r\nwhile still maintaining the single converter / anchor relationship.\r\n\n * It maintains and provides a list of the underlying pool tokens.\r", + "fullyImplemented": true, + "id": 16935, + "linearizedBaseContracts": [ + 16935, + 21976, + 22052, + 21324, + 21933, + 17009, + 11826, + 22313, + 22247 + ], + "name": "PoolTokensContainer", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "id": 16755, + "name": "MAX_POOL_TOKENS", + "nodeType": "VariableDeclaration", + "scope": 16935, + "src": "620:43:29", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 16753, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "620:5:29", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "35", + "id": 16754, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "662:1:29", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_5_by_1", + "typeString": "int_const 5" + }, + "value": "5" + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 16757, + "name": "name", + "nodeType": "VariableDeclaration", + "scope": 16935, + "src": "715:18:29", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 16756, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "715:6:29", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 16759, + "name": "symbol", + "nodeType": "VariableDeclaration", + "scope": 16935, + "src": "769:20:29", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 16758, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "769:6:29", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 16761, + "name": "decimals", + "nodeType": "VariableDeclaration", + "scope": 16935, + "src": "825:21:29", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 16760, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "825:5:29", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 16764, + "name": "_poolTokens", + "nodeType": "VariableDeclaration", + "scope": 16935, + "src": "901:33:29", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_ISmartToken_$20295_$dyn_storage", + "typeString": "contract ISmartToken[]" + }, + "typeName": { + "baseType": { + "contractScope": null, + "id": 16762, + "name": "ISmartToken", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20295, + "src": "901:11:29", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISmartToken_$20295", + "typeString": "contract ISmartToken" + } + }, + "id": 16763, + "length": null, + "nodeType": "ArrayTypeName", + "src": "901:13:29", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_ISmartToken_$20295_$dyn_storage_ptr", + "typeString": "contract ISmartToken[]" + } + }, + "value": null, + "visibility": "private" + }, + { + "body": { + "id": 16805, + "nodeType": "Block", + "src": "1396:249:29", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 16779, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 16775, + "name": "_name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16766, + "src": "1449:5:29", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 16774, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1443:5:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": "bytes" + }, + "id": 16776, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1443:12:29", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory", + "typeString": "bytes memory" + } + }, + "id": 16777, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1443:19:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 16778, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1465:1:29", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1443:23:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4552525f494e56414c49445f4e414d45", + "id": 16780, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1468:18:29", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_8c31b897cf1b4c41d9a3a2c9019700f5d8d0c36c906997985403c8f4610f8246", + "typeString": "literal_string \"ERR_INVALID_NAME\"" + }, + "value": "ERR_INVALID_NAME" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_8c31b897cf1b4c41d9a3a2c9019700f5d8d0c36c906997985403c8f4610f8246", + "typeString": "literal_string \"ERR_INVALID_NAME\"" + } + ], + "id": 16773, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 22341, + 22342 + ], + "referencedDeclaration": 22342, + "src": "1435:7:29", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 16781, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1435:52:29", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 16782, + "nodeType": "ExpressionStatement", + "src": "1435:52:29" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 16789, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 16785, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16768, + "src": "1512:7:29", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 16784, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1506:5:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": "bytes" + }, + "id": 16786, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1506:14:29", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory", + "typeString": "bytes memory" + } + }, + "id": 16787, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1506:21:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 16788, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1530:1:29", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1506:25:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4552525f494e56414c49445f53594d424f4c", + "id": 16790, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1533:20:29", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_8cbe13dffb618f268f4d803a75787a665744c462e7a6ba0f32e015df7f7a2fda", + "typeString": "literal_string \"ERR_INVALID_SYMBOL\"" + }, + "value": "ERR_INVALID_SYMBOL" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_8cbe13dffb618f268f4d803a75787a665744c462e7a6ba0f32e015df7f7a2fda", + "typeString": "literal_string \"ERR_INVALID_SYMBOL\"" + } + ], + "id": 16783, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 22341, + 22342 + ], + "referencedDeclaration": 22342, + "src": "1498:7:29", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 16791, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1498:56:29", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 16792, + "nodeType": "ExpressionStatement", + "src": "1498:56:29" + }, + { + "expression": { + "argumentTypes": null, + "id": 16795, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 16793, + "name": "name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16757, + "src": "1567:4:29", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 16794, + "name": "_name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16766, + "src": "1574:5:29", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "1567:12:29", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 16796, + "nodeType": "ExpressionStatement", + "src": "1567:12:29" + }, + { + "expression": { + "argumentTypes": null, + "id": 16799, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 16797, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16759, + "src": "1590:6:29", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 16798, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16768, + "src": "1599:7:29", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "1590:16:29", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 16800, + "nodeType": "ExpressionStatement", + "src": "1590:16:29" + }, + { + "expression": { + "argumentTypes": null, + "id": 16803, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 16801, + "name": "decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16761, + "src": "1617:8:29", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 16802, + "name": "_decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16770, + "src": "1628:9:29", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "1617:20:29", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "id": 16804, + "nodeType": "ExpressionStatement", + "src": "1617:20:29" + } + ] + }, + "documentation": "@dev initializes a new PoolTokensContainer instance\r\n\n * @param _name pool name, also used as a prefix for the underlying pool token names\r\n@param _symbol pool symbol, also used as a prefix for the underlying pool token symbols\r\n@param _decimals used for the underlying pool token decimals\r", + "id": 16806, + "implemented": true, + "isConstructor": true, + "isDeclaredConst": false, + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 16771, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 16766, + "name": "_name", + "nodeType": "VariableDeclaration", + "scope": 16806, + "src": "1342:12:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 16765, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1342:6:29", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 16768, + "name": "_symbol", + "nodeType": "VariableDeclaration", + "scope": 16806, + "src": "1356:14:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 16767, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1356:6:29", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 16770, + "name": "_decimals", + "nodeType": "VariableDeclaration", + "scope": 16806, + "src": "1372:15:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 16769, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "1372:5:29", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1341:47:29" + }, + "payable": false, + "returnParameters": { + "id": 16772, + "nodeType": "ParameterList", + "parameters": [], + "src": "1396:0:29" + }, + "scope": 16935, + "src": "1330:315:29", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 16814, + "nodeType": "Block", + "src": "1827:37:29", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 16812, + "name": "_poolTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16764, + "src": "1845:11:29", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_ISmartToken_$20295_$dyn_storage", + "typeString": "contract ISmartToken[] storage ref" + } + }, + "functionReturnParameters": 16811, + "id": 16813, + "nodeType": "Return", + "src": "1838:18:29" + } + ] + }, + "documentation": "@dev returns the list of pool tokens\r\n\n * @return list of pool tokens\r", + "id": 16815, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "poolTokens", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 16807, + "nodeType": "ParameterList", + "parameters": [], + "src": "1781:2:29" + }, + "payable": false, + "returnParameters": { + "id": 16811, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 16810, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 16815, + "src": "1805:13:29", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_ISmartToken_$20295_$dyn_memory_ptr", + "typeString": "contract ISmartToken[]" + }, + "typeName": { + "baseType": { + "contractScope": null, + "id": 16808, + "name": "ISmartToken", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20295, + "src": "1805:11:29", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISmartToken_$20295", + "typeString": "contract ISmartToken" + } + }, + "id": 16809, + "length": null, + "nodeType": "ArrayTypeName", + "src": "1805:13:29", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_ISmartToken_$20295_$dyn_storage_ptr", + "typeString": "contract ISmartToken[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1804:22:29" + }, + "scope": 16935, + "src": "1762:102:29", + "stateMutability": "view", + "superFunction": 16985, + "visibility": "public" + }, + { + "body": { + "id": 16871, + "nodeType": "Block", + "src": "2063:457:29", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 16826, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 16823, + "name": "_poolTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16764, + "src": "2135:11:29", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_ISmartToken_$20295_$dyn_storage", + "typeString": "contract ISmartToken[] storage ref" + } + }, + "id": 16824, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2135:18:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 16825, + "name": "MAX_POOL_TOKENS", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16755, + "src": "2156:15:29", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "2135:36:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4552525f4d41585f4c494d49545f52454143484544", + "id": 16827, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2173:23:29", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_65600c00f67ab34f2203e92774a46e26e7dd32d8502d3f07241456a23d1290f8", + "typeString": "literal_string \"ERR_MAX_LIMIT_REACHED\"" + }, + "value": "ERR_MAX_LIMIT_REACHED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_65600c00f67ab34f2203e92774a46e26e7dd32d8502d3f07241456a23d1290f8", + "typeString": "literal_string \"ERR_MAX_LIMIT_REACHED\"" + } + ], + "id": 16822, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 22341, + 22342 + ], + "referencedDeclaration": 22342, + "src": "2127:7:29", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 16828, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2127:70:29", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 16829, + "nodeType": "ExpressionStatement", + "src": "2127:70:29" + }, + { + "assignments": [ + 16831 + ], + "declarations": [ + { + "constant": false, + "id": 16831, + "name": "poolName", + "nodeType": "VariableDeclaration", + "scope": 16872, + "src": "2210:22:29", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 16830, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2210:6:29", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 16841, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 16833, + "name": "name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16757, + "src": "2250:4:29", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 16838, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 16835, + "name": "_poolTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16764, + "src": "2262:11:29", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_ISmartToken_$20295_$dyn_storage", + "typeString": "contract ISmartToken[] storage ref" + } + }, + "id": 16836, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2262:18:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 16837, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2283:1:29", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "2262:22:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 16834, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2256:5:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint8_$", + "typeString": "type(uint8)" + }, + "typeName": "uint8" + }, + "id": 16839, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2256:29:29", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + ], + "id": 16832, + "name": "concatStrDigit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16934, + "src": "2235:14:29", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$_t_uint8_$returns$_t_string_memory_ptr_$", + "typeString": "function (string memory,uint8) pure returns (string memory)" + } + }, + "id": 16840, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2235:51:29", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2210:76:29" + }, + { + "assignments": [ + 16843 + ], + "declarations": [ + { + "constant": false, + "id": 16843, + "name": "poolSymbol", + "nodeType": "VariableDeclaration", + "scope": 16872, + "src": "2297:24:29", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 16842, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2297:6:29", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 16853, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 16845, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16759, + "src": "2339:6:29", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 16850, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 16847, + "name": "_poolTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16764, + "src": "2353:11:29", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_ISmartToken_$20295_$dyn_storage", + "typeString": "contract ISmartToken[] storage ref" + } + }, + "id": 16848, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2353:18:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 16849, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2374:1:29", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "2353:22:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 16846, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2347:5:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint8_$", + "typeString": "type(uint8)" + }, + "typeName": "uint8" + }, + "id": 16851, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2347:29:29", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + ], + "id": 16844, + "name": "concatStrDigit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16934, + "src": "2324:14:29", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$_t_uint8_$returns$_t_string_memory_ptr_$", + "typeString": "function (string memory,uint8) pure returns (string memory)" + } + }, + "id": 16852, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2324:53:29", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2297:80:29" + }, + { + "assignments": [ + 16855 + ], + "declarations": [ + { + "constant": false, + "id": 16855, + "name": "token", + "nodeType": "VariableDeclaration", + "scope": 16872, + "src": "2390:16:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SmartToken_$20148", + "typeString": "contract SmartToken" + }, + "typeName": { + "contractScope": null, + "id": 16854, + "name": "SmartToken", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20148, + "src": "2390:10:29", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SmartToken_$20148", + "typeString": "contract SmartToken" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 16862, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 16858, + "name": "poolName", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16831, + "src": "2424:8:29", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "argumentTypes": null, + "id": 16859, + "name": "poolSymbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16843, + "src": "2434:10:29", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "argumentTypes": null, + "id": 16860, + "name": "decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16761, + "src": "2446:8:29", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + ], + "id": 16857, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "2409:14:29", + "typeDescriptions": { + "typeIdentifier": "t_function_creation_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_uint8_$returns$_t_contract$_SmartToken_$20148_$", + "typeString": "function (string memory,string memory,uint8) returns (contract SmartToken)" + }, + "typeName": { + "contractScope": null, + "id": 16856, + "name": "SmartToken", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20148, + "src": "2413:10:29", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SmartToken_$20148", + "typeString": "contract SmartToken" + } + } + }, + "id": 16861, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2409:46:29", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SmartToken_$20148", + "typeString": "contract SmartToken" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2390:65:29" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 16866, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16855, + "src": "2483:5:29", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SmartToken_$20148", + "typeString": "contract SmartToken" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_SmartToken_$20148", + "typeString": "contract SmartToken" + } + ], + "expression": { + "argumentTypes": null, + "id": 16863, + "name": "_poolTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16764, + "src": "2466:11:29", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_ISmartToken_$20295_$dyn_storage", + "typeString": "contract ISmartToken[] storage ref" + } + }, + "id": 16865, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "push", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2466:16:29", + "typeDescriptions": { + "typeIdentifier": "t_function_arraypush_nonpayable$_t_contract$_ISmartToken_$20295_$returns$_t_uint256_$", + "typeString": "function (contract ISmartToken) returns (uint256)" + } + }, + "id": 16867, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2466:23:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 16868, + "nodeType": "ExpressionStatement", + "src": "2466:23:29" + }, + { + "expression": { + "argumentTypes": null, + "id": 16869, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16855, + "src": "2507:5:29", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SmartToken_$20148", + "typeString": "contract SmartToken" + } + }, + "functionReturnParameters": 16821, + "id": 16870, + "nodeType": "Return", + "src": "2500:12:29" + } + ] + }, + "documentation": "@dev creates a new pool token and adds it to the list\r\n\n * @return new pool token address\r", + "id": 16872, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 16818, + "modifierName": { + "argumentTypes": null, + "id": 16817, + "name": "ownerOnly", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21265, + "src": "2031:9:29", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "2031:9:29" + } + ], + "name": "createToken", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 16816, + "nodeType": "ParameterList", + "parameters": [], + "src": "2021:2:29" + }, + "payable": false, + "returnParameters": { + "id": 16821, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 16820, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 16872, + "src": "2050:11:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISmartToken_$20295", + "typeString": "contract ISmartToken" + }, + "typeName": { + "contractScope": null, + "id": 16819, + "name": "ISmartToken", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20295, + "src": "2050:11:29", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISmartToken_$20295", + "typeString": "contract ISmartToken" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2049:13:29" + }, + "scope": 16935, + "src": "2001:519:29", + "stateMutability": "nonpayable", + "superFunction": 16990, + "visibility": "public" + }, + { + "body": { + "id": 16890, + "nodeType": "Block", + "src": "2929:45:29", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 16886, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16876, + "src": "2953:3:29", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 16887, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16878, + "src": "2958:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 16883, + "name": "_token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16874, + "src": "2940:6:29", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISmartToken_$20295", + "typeString": "contract ISmartToken" + } + }, + "id": 16885, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "issue", + "nodeType": "MemberAccess", + "referencedDeclaration": 20287, + "src": "2940:12:29", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256) external" + } + }, + "id": 16888, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2940:26:29", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 16889, + "nodeType": "ExpressionStatement", + "src": "2940:26:29" + } + ] + }, + "documentation": "@dev increases the pool token supply and sends the new tokens to the given account\r\ncan only be called by the contract owner\r\n\n * @param _token pool token address\r\n@param _to account to receive the newly minted tokens\r\n@param _amount amount to mint\r", + "id": 16891, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 16881, + "modifierName": { + "argumentTypes": null, + "id": 16880, + "name": "ownerOnly", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21265, + "src": "2919:9:29", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "2919:9:29" + } + ], + "name": "mint", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 16879, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 16874, + "name": "_token", + "nodeType": "VariableDeclaration", + "scope": 16891, + "src": "2862:18:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISmartToken_$20295", + "typeString": "contract ISmartToken" + }, + "typeName": { + "contractScope": null, + "id": 16873, + "name": "ISmartToken", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20295, + "src": "2862:11:29", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISmartToken_$20295", + "typeString": "contract ISmartToken" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 16876, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 16891, + "src": "2882:11:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 16875, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2882:7:29", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 16878, + "name": "_amount", + "nodeType": "VariableDeclaration", + "scope": 16891, + "src": "2895:15:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 16877, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2895:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2861:50:29" + }, + "payable": false, + "returnParameters": { + "id": 16882, + "nodeType": "ParameterList", + "parameters": [], + "src": "2929:0:29" + }, + "scope": 16935, + "src": "2848:126:29", + "stateMutability": "nonpayable", + "superFunction": 16999, + "visibility": "public" + }, + { + "body": { + "id": 16909, + "nodeType": "Block", + "src": "3372:49:29", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 16905, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16895, + "src": "3398:5:29", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 16906, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16897, + "src": "3405:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 16902, + "name": "_token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16893, + "src": "3383:6:29", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISmartToken_$20295", + "typeString": "contract ISmartToken" + } + }, + "id": 16904, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "destroy", + "nodeType": "MemberAccess", + "referencedDeclaration": 20294, + "src": "3383:14:29", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256) external" + } + }, + "id": 16907, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3383:30:29", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 16908, + "nodeType": "ExpressionStatement", + "src": "3383:30:29" + } + ] + }, + "documentation": "@dev removes tokens from the given account and decreases the pool token supply\r\ncan only be called by the contract owner\r\n\n * @param _token pool token address\r\n@param _from account to remove the tokens from\r\n@param _amount amount to burn\r", + "id": 16910, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 16900, + "modifierName": { + "argumentTypes": null, + "id": 16899, + "name": "ownerOnly", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21265, + "src": "3362:9:29", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "3362:9:29" + } + ], + "name": "burn", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 16898, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 16893, + "name": "_token", + "nodeType": "VariableDeclaration", + "scope": 16910, + "src": "3303:18:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISmartToken_$20295", + "typeString": "contract ISmartToken" + }, + "typeName": { + "contractScope": null, + "id": 16892, + "name": "ISmartToken", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20295, + "src": "3303:11:29", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISmartToken_$20295", + "typeString": "contract ISmartToken" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 16895, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 16910, + "src": "3323:13:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 16894, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3323:7:29", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 16897, + "name": "_amount", + "nodeType": "VariableDeclaration", + "scope": 16910, + "src": "3338:15:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 16896, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3338:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3302:52:29" + }, + "payable": false, + "returnParameters": { + "id": 16901, + "nodeType": "ParameterList", + "parameters": [], + "src": "3372:0:29" + }, + "scope": 16935, + "src": "3289:132:29", + "stateMutability": "nonpayable", + "superFunction": 17008, + "visibility": "public" + }, + { + "body": { + "id": 16933, + "nodeType": "Block", + "src": "3728:85:29", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 16922, + "name": "_str", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16912, + "src": "3770:4:29", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 16929, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 16925, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3789:3:29", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d", + "typeString": "literal_string \"0\"" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d", + "typeString": "literal_string \"0\"" + } + ], + "id": 16924, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3782:6:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes1_$", + "typeString": "type(bytes1)" + }, + "typeName": "bytes1" + }, + "id": 16926, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3782:11:29", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + ], + "id": 16923, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3776:5:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint8_$", + "typeString": "type(uint8)" + }, + "typeName": "uint8" + }, + "id": 16927, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3776:18:29", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "id": 16928, + "name": "_digit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16914, + "src": "3797:6:29", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "3776:27:29", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + ], + "expression": { + "argumentTypes": null, + "id": 16920, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22325, + "src": "3753:3:29", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 16921, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encodePacked", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3753:16:29", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 16930, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3753:51:29", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 16919, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3746:6:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_string_storage_ptr_$", + "typeString": "type(string storage pointer)" + }, + "typeName": "string" + }, + "id": 16931, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3746:59:29", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + }, + "functionReturnParameters": 16918, + "id": 16932, + "nodeType": "Return", + "src": "3739:66:29" + } + ] + }, + "documentation": "@dev concatenates a string and a digit (single only) and returns the result string\r\n\n * @param _str string\r\n@param _digit digit\r\n@return concatenated string\r", + "id": 16934, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "concatStrDigit", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 16915, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 16912, + "name": "_str", + "nodeType": "VariableDeclaration", + "scope": 16934, + "src": "3671:11:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 16911, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3671:6:29", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 16914, + "name": "_digit", + "nodeType": "VariableDeclaration", + "scope": 16934, + "src": "3684:12:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 16913, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "3684:5:29", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3670:27:29" + }, + "payable": false, + "returnParameters": { + "id": 16918, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 16917, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 16934, + "src": "3720:6:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 16916, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3720:6:29", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3719:8:29" + }, + "scope": 16935, + "src": "3647:166:29", + "stateMutability": "pure", + "superFunction": null, + "visibility": "private" + } + ], + "scope": 16936, + "src": "540:3276:29" + } + ], + "src": "0:3818:29" + }, + "id": 29 + }, + "solidity/contracts/converter/types/liquidity-pool-v2/interfaces/ILiquidityPoolV2Converter.sol": { + "ast": { + "absolutePath": "solidity/contracts/converter/types/liquidity-pool-v2/interfaces/ILiquidityPoolV2Converter.sol", + "exportedSymbols": { + "ILiquidityPoolV2Converter": [ + 16973 + ] + }, + "id": 16974, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 16937, + "literals": [ + "solidity", + "0.4", + ".26" + ], + "nodeType": "PragmaDirective", + "src": "0:23:30" + }, + { + "absolutePath": "solidity/contracts/token/interfaces/IERC20Token.sol", + "file": "../../../../token/interfaces/IERC20Token.sol", + "id": 16938, + "nodeType": "ImportDirective", + "scope": 16974, + "sourceUnit": 20241, + "src": "24:54:30", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "solidity/contracts/utility/interfaces/IPriceOracle.sol", + "file": "../../../../utility/interfaces/IPriceOracle.sol", + "id": 16939, + "nodeType": "ImportDirective", + "scope": 16974, + "sourceUnit": 22298, + "src": "79:57:30", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": false, + "id": 16973, + "linearizedBaseContracts": [ + 16973 + ], + "name": "ILiquidityPoolV2Converter", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": null, + "id": 16946, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "reserveStakedBalance", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 16942, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 16941, + "name": "_reserveToken", + "nodeType": "VariableDeclaration", + "scope": 16946, + "src": "257:25:30", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + "typeName": { + "contractScope": null, + "id": 16940, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "257:11:30", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "256:27:30" + }, + "payable": false, + "returnParameters": { + "id": 16945, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 16944, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 16946, + "src": "305:7:30", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 16943, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "305:7:30", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "304:9:30" + }, + "scope": 16973, + "src": "227:87:30", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 16953, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "setReserveStakedBalance", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 16951, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 16948, + "name": "_reserveToken", + "nodeType": "VariableDeclaration", + "scope": 16953, + "src": "352:25:30", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + "typeName": { + "contractScope": null, + "id": 16947, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "352:11:30", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 16950, + "name": "_balance", + "nodeType": "VariableDeclaration", + "scope": 16953, + "src": "379:16:30", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 16949, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "379:7:30", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "351:45:30" + }, + "payable": false, + "returnParameters": { + "id": 16952, + "nodeType": "ParameterList", + "parameters": [], + "src": "403:0:30" + }, + "scope": 16973, + "src": "319:85:30", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 16958, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "primaryReserveToken", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 16954, + "nodeType": "ParameterList", + "parameters": [], + "src": "438:2:30" + }, + "payable": false, + "returnParameters": { + "id": 16957, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 16956, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 16958, + "src": "462:11:30", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + "typeName": { + "contractScope": null, + "id": 16955, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "462:11:30", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "461:13:30" + }, + "scope": 16973, + "src": "410:65:30", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 16963, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "priceOracle", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 16959, + "nodeType": "ParameterList", + "parameters": [], + "src": "501:2:30" + }, + "payable": false, + "returnParameters": { + "id": 16962, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 16961, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 16963, + "src": "525:12:30", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IPriceOracle_$22297", + "typeString": "contract IPriceOracle" + }, + "typeName": { + "contractScope": null, + "id": 16960, + "name": "IPriceOracle", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 22297, + "src": "525:12:30", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IPriceOracle_$22297", + "typeString": "contract IPriceOracle" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "524:14:30" + }, + "scope": 16973, + "src": "481:58:30", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 16972, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "activate", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 16970, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 16965, + "name": "_primaryReserveToken", + "nodeType": "VariableDeclaration", + "scope": 16972, + "src": "563:32:30", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + "typeName": { + "contractScope": null, + "id": 16964, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "563:11:30", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 16967, + "name": "_primaryReserveOracle", + "nodeType": "VariableDeclaration", + "scope": 16972, + "src": "597:42:30", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", + "typeString": "contract IConsumerPriceOracle" + }, + "typeName": { + "contractScope": null, + "id": 16966, + "name": "IConsumerPriceOracle", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 22203, + "src": "597:20:30", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", + "typeString": "contract IConsumerPriceOracle" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 16969, + "name": "_secondaryReserveOracle", + "nodeType": "VariableDeclaration", + "scope": 16972, + "src": "641:44:30", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", + "typeString": "contract IConsumerPriceOracle" + }, + "typeName": { + "contractScope": null, + "id": 16968, + "name": "IConsumerPriceOracle", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 22203, + "src": "641:20:30", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", + "typeString": "contract IConsumerPriceOracle" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "562:124:30" + }, + "payable": false, + "returnParameters": { + "id": 16971, + "nodeType": "ParameterList", + "parameters": [], + "src": "693:0:30" + }, + "scope": 16973, + "src": "545:149:30", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 16974, + "src": "186:510:30" + } + ], + "src": "0:697:30" + }, + "id": 30 + }, + "solidity/contracts/converter/types/liquidity-pool-v2/interfaces/IPoolTokensContainer.sol": { + "ast": { + "absolutePath": "solidity/contracts/converter/types/liquidity-pool-v2/interfaces/IPoolTokensContainer.sol", + "exportedSymbols": { + "IPoolTokensContainer": [ + 17009 + ] + }, + "id": 17010, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 16975, + "literals": [ + "solidity", + "0.4", + ".26" + ], + "nodeType": "PragmaDirective", + "src": "0:23:31" + }, + { + "absolutePath": "solidity/contracts/converter/interfaces/IConverterAnchor.sol", + "file": "../../../interfaces/IConverterAnchor.sol", + "id": 16976, + "nodeType": "ImportDirective", + "scope": 17010, + "sourceUnit": 11827, + "src": "24:50:31", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "solidity/contracts/token/interfaces/ISmartToken.sol", + "file": "../../../../token/interfaces/ISmartToken.sol", + "id": 16977, + "nodeType": "ImportDirective", + "scope": 17010, + "sourceUnit": 20296, + "src": "75:54:31", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 16978, + "name": "IConverterAnchor", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11826, + "src": "206:16:31", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + }, + "id": 16979, + "nodeType": "InheritanceSpecifier", + "src": "206:16:31" + } + ], + "contractDependencies": [ + 11826, + 22247, + 22313 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": false, + "id": 17009, + "linearizedBaseContracts": [ + 17009, + 11826, + 22313, + 22247 + ], + "name": "IPoolTokensContainer", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": null, + "id": 16985, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "poolTokens", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 16980, + "nodeType": "ParameterList", + "parameters": [], + "src": "248:2:31" + }, + "payable": false, + "returnParameters": { + "id": 16984, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 16983, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 16985, + "src": "272:13:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_ISmartToken_$20295_$dyn_memory_ptr", + "typeString": "contract ISmartToken[]" + }, + "typeName": { + "baseType": { + "contractScope": null, + "id": 16981, + "name": "ISmartToken", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20295, + "src": "272:11:31", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISmartToken_$20295", + "typeString": "contract ISmartToken" + } + }, + "id": 16982, + "length": null, + "nodeType": "ArrayTypeName", + "src": "272:13:31", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_ISmartToken_$20295_$dyn_storage_ptr", + "typeString": "contract ISmartToken[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "271:15:31" + }, + "scope": 17009, + "src": "229:58:31", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 16990, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "createToken", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 16986, + "nodeType": "ParameterList", + "parameters": [], + "src": "312:2:31" + }, + "payable": false, + "returnParameters": { + "id": 16989, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 16988, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 16990, + "src": "331:11:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISmartToken_$20295", + "typeString": "contract ISmartToken" + }, + "typeName": { + "contractScope": null, + "id": 16987, + "name": "ISmartToken", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20295, + "src": "331:11:31", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISmartToken_$20295", + "typeString": "contract ISmartToken" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "330:13:31" + }, + "scope": 17009, + "src": "292:52:31", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 16999, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "mint", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 16997, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 16992, + "name": "_token", + "nodeType": "VariableDeclaration", + "scope": 16999, + "src": "363:18:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISmartToken_$20295", + "typeString": "contract ISmartToken" + }, + "typeName": { + "contractScope": null, + "id": 16991, + "name": "ISmartToken", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20295, + "src": "363:11:31", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISmartToken_$20295", + "typeString": "contract ISmartToken" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 16994, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 16999, + "src": "383:11:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 16993, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "383:7:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 16996, + "name": "_amount", + "nodeType": "VariableDeclaration", + "scope": 16999, + "src": "396:15:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 16995, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "396:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "362:50:31" + }, + "payable": false, + "returnParameters": { + "id": 16998, + "nodeType": "ParameterList", + "parameters": [], + "src": "419:0:31" + }, + "scope": 17009, + "src": "349:71:31", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 17008, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "burn", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 17006, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 17001, + "name": "_token", + "nodeType": "VariableDeclaration", + "scope": 17008, + "src": "439:18:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISmartToken_$20295", + "typeString": "contract ISmartToken" + }, + "typeName": { + "contractScope": null, + "id": 17000, + "name": "ISmartToken", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20295, + "src": "439:11:31", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISmartToken_$20295", + "typeString": "contract ISmartToken" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 17003, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 17008, + "src": "459:13:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 17002, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "459:7:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 17005, + "name": "_amount", + "nodeType": "VariableDeclaration", + "scope": 17008, + "src": "474:15:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17004, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "474:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "438:52:31" + }, + "payable": false, + "returnParameters": { + "id": 17007, + "nodeType": "ParameterList", + "parameters": [], + "src": "497:0:31" + }, + "scope": 17009, + "src": "425:73:31", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 17010, + "src": "173:327:31" + } + ], + "src": "0:501:31" + }, + "id": 31 + }, + "solidity/contracts/helpers/TestChainlinkPriceOracle.sol": { + "ast": { + "absolutePath": "solidity/contracts/helpers/TestChainlinkPriceOracle.sol", + "exportedSymbols": { + "TestChainlinkPriceOracle": [ + 17055 + ] + }, + "id": 17056, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 17011, + "literals": [ + "solidity", + "0.4", + ".26" + ], + "nodeType": "PragmaDirective", + "src": "0:23:32" + }, + { + "absolutePath": "solidity/contracts/utility/interfaces/IConsumerPriceOracle.sol", + "file": "../utility/interfaces/IConsumerPriceOracle.sol", + "id": 17012, + "nodeType": "ImportDirective", + "scope": 17056, + "sourceUnit": 22204, + "src": "24:56:32", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 17013, + "name": "IConsumerPriceOracle", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 22203, + "src": "157:20:32", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", + "typeString": "contract IConsumerPriceOracle" + } + }, + "id": 17014, + "nodeType": "InheritanceSpecifier", + "src": "157:20:32" + } + ], + "contractDependencies": [ + 22203 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 17055, + "linearizedBaseContracts": [ + 17055, + 22203 + ], + "name": "TestChainlinkPriceOracle", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 17016, + "name": "answer", + "nodeType": "VariableDeclaration", + "scope": 17055, + "src": "181:21:32", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 17015, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "181:6:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "value": null, + "visibility": "private" + }, + { + "constant": false, + "id": 17018, + "name": "timestamp", + "nodeType": "VariableDeclaration", + "scope": 17055, + "src": "205:25:32", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17017, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "205:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "private" + }, + { + "body": { + "id": 17027, + "nodeType": "Block", + "src": "276:24:32", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 17025, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 17023, + "name": "answer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17016, + "src": "280:6:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 17024, + "name": "_answer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17020, + "src": "289:7:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "280:16:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "id": 17026, + "nodeType": "ExpressionStatement", + "src": "280:16:32" + } + ] + }, + "documentation": null, + "id": 17028, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "setAnswer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 17021, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 17020, + "name": "_answer", + "nodeType": "VariableDeclaration", + "scope": 17028, + "src": "253:14:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 17019, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "253:6:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "252:16:32" + }, + "payable": false, + "returnParameters": { + "id": 17022, + "nodeType": "ParameterList", + "parameters": [], + "src": "276:0:32" + }, + "scope": 17055, + "src": "234:66:32", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 17037, + "nodeType": "Block", + "src": "352:30:32", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 17035, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 17033, + "name": "timestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17018, + "src": "356:9:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 17034, + "name": "_timestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17030, + "src": "368:10:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "356:22:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 17036, + "nodeType": "ExpressionStatement", + "src": "356:22:32" + } + ] + }, + "documentation": null, + "id": 17038, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "setTimestamp", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 17031, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 17030, + "name": "_timestamp", + "nodeType": "VariableDeclaration", + "scope": 17038, + "src": "325:18:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17029, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "325:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "324:20:32" + }, + "payable": false, + "returnParameters": { + "id": 17032, + "nodeType": "ParameterList", + "parameters": [], + "src": "352:0:32" + }, + "scope": 17055, + "src": "303:79:32", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 17045, + "nodeType": "Block", + "src": "440:21:32", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 17043, + "name": "answer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17016, + "src": "451:6:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "functionReturnParameters": 17042, + "id": 17044, + "nodeType": "Return", + "src": "444:13:32" + } + ] + }, + "documentation": null, + "id": 17046, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "latestAnswer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 17039, + "nodeType": "ParameterList", + "parameters": [], + "src": "406:2:32" + }, + "payable": false, + "returnParameters": { + "id": 17042, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 17041, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 17046, + "src": "432:6:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 17040, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "432:6:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "431:8:32" + }, + "scope": 17055, + "src": "385:76:32", + "stateMutability": "view", + "superFunction": 22197, + "visibility": "external" + }, + { + "body": { + "id": 17053, + "nodeType": "Block", + "src": "523:24:32", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 17051, + "name": "timestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17018, + "src": "534:9:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 17050, + "id": 17052, + "nodeType": "Return", + "src": "527:16:32" + } + ] + }, + "documentation": null, + "id": 17054, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "latestTimestamp", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 17047, + "nodeType": "ParameterList", + "parameters": [], + "src": "488:2:32" + }, + "payable": false, + "returnParameters": { + "id": 17050, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 17049, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 17054, + "src": "514:7:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17048, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "514:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "513:9:32" + }, + "scope": 17055, + "src": "464:83:32", + "stateMutability": "view", + "superFunction": 22202, + "visibility": "external" + } + ], + "scope": 17056, + "src": "120:429:32" + } + ], + "src": "0:550:32" + }, + "id": 32 + }, + "solidity/contracts/helpers/TestContractRegistryClient.sol": { + "ast": { + "absolutePath": "solidity/contracts/helpers/TestContractRegistryClient.sol", + "exportedSymbols": { + "TestContractRegistryClient": [ + 17070 + ] + }, + "id": 17071, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 17057, + "literals": [ + "solidity", + "0.4", + ".26" + ], + "nodeType": "PragmaDirective", + "src": "0:23:33" + }, + { + "absolutePath": "solidity/contracts/utility/ContractRegistryClient.sol", + "file": "../utility/ContractRegistryClient.sol", + "id": 17058, + "nodeType": "ImportDirective", + "scope": 17071, + "sourceUnit": 20933, + "src": "24:47:33", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 17059, + "name": "ContractRegistryClient", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20932, + "src": "192:22:33", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ContractRegistryClient_$20932", + "typeString": "contract ContractRegistryClient" + } + }, + "id": 17060, + "nodeType": "InheritanceSpecifier", + "src": "192:22:33" + } + ], + "contractDependencies": [ + 20932, + 21324, + 22052, + 22247 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 17070, + "linearizedBaseContracts": [ + 17070, + 20932, + 22052, + 21324, + 22247 + ], + "name": "TestContractRegistryClient", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 17068, + "nodeType": "Block", + "src": "300:2:33", + "statements": [] + }, + "documentation": null, + "id": 17069, + "implemented": true, + "isConstructor": true, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 17065, + "name": "_registry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17062, + "src": "289:9:33", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IContractRegistry_$22220", + "typeString": "contract IContractRegistry" + } + } + ], + "id": 17066, + "modifierName": { + "argumentTypes": null, + "id": 17064, + "name": "ContractRegistryClient", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20932, + "src": "266:22:33", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ContractRegistryClient_$20932_$", + "typeString": "type(contract ContractRegistryClient)" + } + }, + "nodeType": "ModifierInvocation", + "src": "266:33:33" + } + ], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 17063, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 17062, + "name": "_registry", + "nodeType": "VariableDeclaration", + "scope": 17069, + "src": "230:27:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IContractRegistry_$22220", + "typeString": "contract IContractRegistry" + }, + "typeName": { + "contractScope": null, + "id": 17061, + "name": "IContractRegistry", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 22220, + "src": "230:17:33", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IContractRegistry_$22220", + "typeString": "contract IContractRegistry" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "229:29:33" + }, + "payable": false, + "returnParameters": { + "id": 17067, + "nodeType": "ParameterList", + "parameters": [], + "src": "300:0:33" + }, + "scope": 17070, + "src": "218:84:33", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 17071, + "src": "153:151:33" + } + ], + "src": "0:305:33" + }, + "id": 33 + }, + "solidity/contracts/helpers/TestConverterFactory.sol": { + "ast": { + "absolutePath": "solidity/contracts/helpers/TestConverterFactory.sol", + "exportedSymbols": { + "TestConverterFactory": [ + 17132 + ] + }, + "id": 17133, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 17072, + "literals": [ + "solidity", + "0.4", + ".26" + ], + "nodeType": "PragmaDirective", + "src": "0:23:34" + }, + { + "absolutePath": "solidity/contracts/converter/ConverterFactory.sol", + "file": "../converter/ConverterFactory.sol", + "id": 17073, + "nodeType": "ImportDirective", + "scope": 17133, + "sourceUnit": 3607, + "src": "24:43:34", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 17074, + "name": "ConverterFactory", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 3606, + "src": "175:16:34", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ConverterFactory_$3606", + "typeString": "contract ConverterFactory" + } + }, + "id": 17075, + "nodeType": "InheritanceSpecifier", + "src": "175:16:34" + } + ], + "contractDependencies": [ + 3606, + 11871, + 21324, + 22247 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 17132, + "linearizedBaseContracts": [ + 17132, + 3606, + 21324, + 22247, + 11871 + ], + "name": "TestConverterFactory", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 17077, + "name": "createdConverter", + "nodeType": "VariableDeclaration", + "scope": 17132, + "src": "195:34:34", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + }, + "typeName": { + "contractScope": null, + "id": 17076, + "name": "IConverter", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11817, + "src": "195:10:34", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 17079, + "name": "createdAnchor", + "nodeType": "VariableDeclaration", + "scope": 17132, + "src": "232:37:34", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + }, + "typeName": { + "contractScope": null, + "id": 17078, + "name": "IConverterAnchor", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11826, + "src": "232:16:34", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + }, + "value": null, + "visibility": "public" + }, + { + "body": { + "id": 17104, + "nodeType": "Block", + "src": "410:110:34", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 17100, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 17092, + "name": "createdAnchor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17079, + "src": "414:13:34", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 17095, + "name": "_converterType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17081, + "src": "449:14:34", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + { + "argumentTypes": null, + "id": 17096, + "name": "_name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17083, + "src": "465:5:34", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "argumentTypes": null, + "id": 17097, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17085, + "src": "472:7:34", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "argumentTypes": null, + "id": 17098, + "name": "_decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17087, + "src": "481:9:34", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + ], + "expression": { + "argumentTypes": null, + "id": 17093, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22462, + "src": "430:5:34", + "typeDescriptions": { + "typeIdentifier": "t_super$_TestConverterFactory_$17132", + "typeString": "contract super TestConverterFactory" + } + }, + "id": 17094, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "createAnchor", + "nodeType": "MemberAccess", + "referencedDeclaration": 3559, + "src": "430:18:34", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint16_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_uint8_$returns$_t_contract$_IConverterAnchor_$11826_$", + "typeString": "function (uint16,string memory,string memory,uint8) returns (contract IConverterAnchor)" + } + }, + "id": 17099, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "430:61:34", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + }, + "src": "414:77:34", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + }, + "id": 17101, + "nodeType": "ExpressionStatement", + "src": "414:77:34" + }, + { + "expression": { + "argumentTypes": null, + "id": 17102, + "name": "createdAnchor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17079, + "src": "503:13:34", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + }, + "functionReturnParameters": 17091, + "id": 17103, + "nodeType": "Return", + "src": "496:20:34" + } + ] + }, + "documentation": null, + "id": 17105, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "createAnchor", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 17088, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 17081, + "name": "_converterType", + "nodeType": "VariableDeclaration", + "scope": 17105, + "src": "298:21:34", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 17080, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "298:6:34", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 17083, + "name": "_name", + "nodeType": "VariableDeclaration", + "scope": 17105, + "src": "323:12:34", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 17082, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "323:6:34", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 17085, + "name": "_symbol", + "nodeType": "VariableDeclaration", + "scope": 17105, + "src": "339:14:34", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 17084, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "339:6:34", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 17087, + "name": "_decimals", + "nodeType": "VariableDeclaration", + "scope": 17105, + "src": "357:15:34", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 17086, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "357:5:34", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "294:81:34" + }, + "payable": false, + "returnParameters": { + "id": 17091, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 17090, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 17105, + "src": "392:16:34", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + }, + "typeName": { + "contractScope": null, + "id": 17089, + "name": "IConverterAnchor", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11826, + "src": "392:16:34", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "391:18:34" + }, + "scope": 17132, + "src": "273:247:34", + "stateMutability": "nonpayable", + "superFunction": 3559, + "visibility": "public" + }, + { + "body": { + "id": 17130, + "nodeType": "Block", + "src": "682:122:34", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 17126, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 17118, + "name": "createdConverter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17077, + "src": "686:16:34", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 17121, + "name": "_type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17107, + "src": "727:5:34", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + { + "argumentTypes": null, + "id": 17122, + "name": "_anchor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17109, + "src": "734:7:34", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + }, + { + "argumentTypes": null, + "id": 17123, + "name": "_registry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17111, + "src": "743:9:34", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IContractRegistry_$22220", + "typeString": "contract IContractRegistry" + } + }, + { + "argumentTypes": null, + "id": 17124, + "name": "_maxConversionFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17113, + "src": "754:17:34", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + }, + { + "typeIdentifier": "t_contract$_IContractRegistry_$22220", + "typeString": "contract IContractRegistry" + }, + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + ], + "expression": { + "argumentTypes": null, + "id": 17119, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22462, + "src": "705:5:34", + "typeDescriptions": { + "typeIdentifier": "t_super$_TestConverterFactory_$17132", + "typeString": "contract super TestConverterFactory" + } + }, + "id": 17120, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "createConverter", + "nodeType": "MemberAccess", + "referencedDeclaration": 3605, + "src": "705:21:34", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint16_$_t_contract$_IConverterAnchor_$11826_$_t_contract$_IContractRegistry_$22220_$_t_uint32_$returns$_t_contract$_IConverter_$11817_$", + "typeString": "function (uint16,contract IConverterAnchor,contract IContractRegistry,uint32) returns (contract IConverter)" + } + }, + "id": 17125, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "705:67:34", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + "src": "686:86:34", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + "id": 17127, + "nodeType": "ExpressionStatement", + "src": "686:86:34" + }, + { + "expression": { + "argumentTypes": null, + "id": 17128, + "name": "createdConverter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17077, + "src": "784:16:34", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + "functionReturnParameters": 17117, + "id": 17129, + "nodeType": "Return", + "src": "777:23:34" + } + ] + }, + "documentation": null, + "id": 17131, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "createConverter", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 17114, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 17107, + "name": "_type", + "nodeType": "VariableDeclaration", + "scope": 17131, + "src": "551:12:34", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 17106, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "551:6:34", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 17109, + "name": "_anchor", + "nodeType": "VariableDeclaration", + "scope": 17131, + "src": "567:24:34", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + }, + "typeName": { + "contractScope": null, + "id": 17108, + "name": "IConverterAnchor", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11826, + "src": "567:16:34", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 17111, + "name": "_registry", + "nodeType": "VariableDeclaration", + "scope": 17131, + "src": "595:27:34", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IContractRegistry_$22220", + "typeString": "contract IContractRegistry" + }, + "typeName": { + "contractScope": null, + "id": 17110, + "name": "IContractRegistry", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 22220, + "src": "595:17:34", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IContractRegistry_$22220", + "typeString": "contract IContractRegistry" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 17113, + "name": "_maxConversionFee", + "nodeType": "VariableDeclaration", + "scope": 17131, + "src": "626:24:34", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 17112, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "626:6:34", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "547:106:34" + }, + "payable": false, + "returnParameters": { + "id": 17117, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 17116, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 17131, + "src": "670:10:34", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + }, + "typeName": { + "contractScope": null, + "id": 17115, + "name": "IConverter", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11817, + "src": "670:10:34", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "669:12:34" + }, + "scope": 17132, + "src": "523:281:34", + "stateMutability": "nonpayable", + "superFunction": 3605, + "visibility": "public" + } + ], + "scope": 17133, + "src": "142:664:34" + } + ], + "src": "0:807:34" + }, + "id": 34 + }, + "solidity/contracts/helpers/TestConverterRegistry.sol": { + "ast": { + "absolutePath": "solidity/contracts/helpers/TestConverterRegistry.sol", + "exportedSymbols": { + "TestConverterRegistry": [ + 17186 + ] + }, + "id": 17187, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 17134, + "literals": [ + "solidity", + "0.4", + ".26" + ], + "nodeType": "PragmaDirective", + "src": "0:23:35" + }, + { + "absolutePath": "solidity/contracts/converter/ConverterRegistry.sol", + "file": "../converter/ConverterRegistry.sol", + "id": 17135, + "nodeType": "ImportDirective", + "scope": 17187, + "sourceUnit": 4966, + "src": "24:44:35", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 17136, + "name": "ConverterRegistry", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4965, + "src": "178:17:35", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ConverterRegistry_$4965", + "typeString": "contract ConverterRegistry" + } + }, + "id": 17137, + "nodeType": "InheritanceSpecifier", + "src": "178:17:35" + } + ], + "contractDependencies": [ + 4965, + 11982, + 20932, + 21324, + 21933, + 22052, + 22247 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 17186, + "linearizedBaseContracts": [ + 17186, + 4965, + 21933, + 20932, + 22052, + 21324, + 22247, + 11982 + ], + "name": "TestConverterRegistry", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 17139, + "name": "createdConverter", + "nodeType": "VariableDeclaration", + "scope": 17186, + "src": "199:34:35", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + }, + "typeName": { + "contractScope": null, + "id": 17138, + "name": "IConverter", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11817, + "src": "199:10:35", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + "value": null, + "visibility": "public" + }, + { + "body": { + "id": 17147, + "nodeType": "Block", + "src": "314:2:35", + "statements": [] + }, + "documentation": null, + "id": 17148, + "implemented": true, + "isConstructor": true, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 17144, + "name": "_registry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17141, + "src": "303:9:35", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IContractRegistry_$22220", + "typeString": "contract IContractRegistry" + } + } + ], + "id": 17145, + "modifierName": { + "argumentTypes": null, + "id": 17143, + "name": "ConverterRegistry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4965, + "src": "285:17:35", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ConverterRegistry_$4965_$", + "typeString": "type(contract ConverterRegistry)" + } + }, + "nodeType": "ModifierInvocation", + "src": "285:28:35" + } + ], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 17142, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 17141, + "name": "_registry", + "nodeType": "VariableDeclaration", + "scope": 17148, + "src": "249:27:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IContractRegistry_$22220", + "typeString": "contract IContractRegistry" + }, + "typeName": { + "contractScope": null, + "id": 17140, + "name": "IContractRegistry", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 22220, + "src": "249:17:35", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IContractRegistry_$22220", + "typeString": "contract IContractRegistry" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "248:29:35" + }, + "payable": false, + "returnParameters": { + "id": 17146, + "nodeType": "ParameterList", + "parameters": [], + "src": "314:0:35" + }, + "scope": 17186, + "src": "237:79:35", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 17184, + "nodeType": "Block", + "src": "543:159:35", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 17180, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 17169, + "name": "createdConverter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17139, + "src": "547:16:35", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 17172, + "name": "_type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17150, + "src": "585:5:35", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + { + "argumentTypes": null, + "id": 17173, + "name": "_name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17152, + "src": "592:5:35", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "argumentTypes": null, + "id": 17174, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17154, + "src": "599:7:35", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "argumentTypes": null, + "id": 17175, + "name": "_decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17156, + "src": "608:9:35", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + { + "argumentTypes": null, + "id": 17176, + "name": "_maxConversionFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17158, + "src": "619:17:35", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + { + "argumentTypes": null, + "id": 17177, + "name": "_reserveTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17161, + "src": "638:14:35", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", + "typeString": "contract IERC20Token[] memory" + } + }, + { + "argumentTypes": null, + "id": 17178, + "name": "_reserveWeights", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17164, + "src": "654:15:35", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint32_$dyn_memory_ptr", + "typeString": "uint32[] memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", + "typeString": "contract IERC20Token[] memory" + }, + { + "typeIdentifier": "t_array$_t_uint32_$dyn_memory_ptr", + "typeString": "uint32[] memory" + } + ], + "expression": { + "argumentTypes": null, + "id": 17170, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22464, + "src": "566:5:35", + "typeDescriptions": { + "typeIdentifier": "t_super$_TestConverterRegistry_$17186", + "typeString": "contract super TestConverterRegistry" + } + }, + "id": 17171, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "newConverter", + "nodeType": "MemberAccess", + "referencedDeclaration": 3761, + "src": "566:18:35", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint16_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_uint8_$_t_uint32_$_t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr_$_t_array$_t_uint32_$dyn_memory_ptr_$returns$_t_contract$_IConverter_$11817_$", + "typeString": "function (uint16,string memory,string memory,uint8,uint32,contract IERC20Token[] memory,uint32[] memory) returns (contract IConverter)" + } + }, + "id": 17179, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "566:104:35", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + "src": "547:123:35", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + "id": 17181, + "nodeType": "ExpressionStatement", + "src": "547:123:35" + }, + { + "expression": { + "argumentTypes": null, + "id": 17182, + "name": "createdConverter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17139, + "src": "682:16:35", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + "functionReturnParameters": 17168, + "id": 17183, + "nodeType": "Return", + "src": "675:23:35" + } + ] + }, + "documentation": null, + "id": 17185, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "newConverter", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 17165, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 17150, + "name": "_type", + "nodeType": "VariableDeclaration", + "scope": 17185, + "src": "344:12:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 17149, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "344:6:35", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 17152, + "name": "_name", + "nodeType": "VariableDeclaration", + "scope": 17185, + "src": "360:12:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 17151, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "360:6:35", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 17154, + "name": "_symbol", + "nodeType": "VariableDeclaration", + "scope": 17185, + "src": "376:14:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 17153, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "376:6:35", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 17156, + "name": "_decimals", + "nodeType": "VariableDeclaration", + "scope": 17185, + "src": "394:15:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 17155, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "394:5:35", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 17158, + "name": "_maxConversionFee", + "nodeType": "VariableDeclaration", + "scope": 17185, + "src": "413:24:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 17157, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "413:6:35", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 17161, + "name": "_reserveTokens", + "nodeType": "VariableDeclaration", + "scope": 17185, + "src": "441:35:35", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", + "typeString": "contract IERC20Token[]" + }, + "typeName": { + "baseType": { + "contractScope": null, + "id": 17159, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "441:11:35", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "id": 17160, + "length": null, + "nodeType": "ArrayTypeName", + "src": "441:13:35", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_storage_ptr", + "typeString": "contract IERC20Token[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 17164, + "name": "_reserveWeights", + "nodeType": "VariableDeclaration", + "scope": 17185, + "src": "480:31:35", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint32_$dyn_memory_ptr", + "typeString": "uint32[]" + }, + "typeName": { + "baseType": { + "id": 17162, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "480:6:35", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "id": 17163, + "length": null, + "nodeType": "ArrayTypeName", + "src": "480:8:35", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint32_$dyn_storage_ptr", + "typeString": "uint32[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "340:174:35" + }, + "payable": false, + "returnParameters": { + "id": 17168, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 17167, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 17185, + "src": "531:10:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + }, + "typeName": { + "contractScope": null, + "id": 17166, + "name": "IConverter", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11817, + "src": "531:10:35", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "530:12:35" + }, + "scope": 17186, + "src": "319:383:35", + "stateMutability": "nonpayable", + "superFunction": 3761, + "visibility": "public" + } + ], + "scope": 17187, + "src": "144:560:35" + } + ], + "src": "0:705:35" + }, + "id": 35 + }, + "solidity/contracts/helpers/TestLiquidityPoolConverter.sol": { + "ast": { + "absolutePath": "solidity/contracts/helpers/TestLiquidityPoolConverter.sol", + "exportedSymbols": { + "TestLiquidityPoolConverter": [ + 17217 + ] + }, + "id": 17218, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 17188, + "literals": [ + "solidity", + "0.4", + ".26" + ], + "nodeType": "PragmaDirective", + "src": "0:23:36" + }, + { + "absolutePath": "solidity/contracts/converter/types/liquidity-pool-v1/LiquidityPoolV1Converter.sol", + "file": "../converter/types/liquidity-pool-v1/LiquidityPoolV1Converter.sol", + "id": 17189, + "nodeType": "ImportDirective", + "scope": 17218, + "sourceUnit": 14410, + "src": "24:75:36", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 17190, + "name": "LiquidityPoolV1Converter", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 14409, + "src": "140:24:36", + "typeDescriptions": { + "typeIdentifier": "t_contract$_LiquidityPoolV1Converter_$14409", + "typeString": "contract LiquidityPoolV1Converter" + } + }, + "id": 17191, + "nodeType": "InheritanceSpecifier", + "src": "140:24:36" + } + ], + "contractDependencies": [ + 3414, + 6210, + 11817, + 14409, + 20932, + 21324, + 21710, + 21933, + 21976, + 22052, + 22247, + 22313 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 17217, + "linearizedBaseContracts": [ + 17217, + 14409, + 6210, + 3414, + 21710, + 20932, + 21976, + 22052, + 21324, + 21933, + 22313, + 11817, + 22247 + ], + "name": "TestLiquidityPoolConverter", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 17205, + "nodeType": "Block", + "src": "334:2:36", + "statements": [] + }, + "documentation": null, + "id": 17206, + "implemented": true, + "isConstructor": true, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 17200, + "name": "_token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17193, + "src": "296:6:36", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISmartToken_$20295", + "typeString": "contract ISmartToken" + } + }, + { + "argumentTypes": null, + "id": 17201, + "name": "_registry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17195, + "src": "304:9:36", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IContractRegistry_$22220", + "typeString": "contract IContractRegistry" + } + }, + { + "argumentTypes": null, + "id": 17202, + "name": "_maxConversionFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17197, + "src": "315:17:36", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + } + ], + "id": 17203, + "modifierName": { + "argumentTypes": null, + "id": 17199, + "name": "LiquidityPoolV1Converter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14409, + "src": "271:24:36", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_LiquidityPoolV1Converter_$14409_$", + "typeString": "type(contract LiquidityPoolV1Converter)" + } + }, + "nodeType": "ModifierInvocation", + "src": "271:62:36" + } + ], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 17198, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 17193, + "name": "_token", + "nodeType": "VariableDeclaration", + "scope": 17206, + "src": "183:18:36", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISmartToken_$20295", + "typeString": "contract ISmartToken" + }, + "typeName": { + "contractScope": null, + "id": 17192, + "name": "ISmartToken", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20295, + "src": "183:11:36", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISmartToken_$20295", + "typeString": "contract ISmartToken" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 17195, + "name": "_registry", + "nodeType": "VariableDeclaration", + "scope": 17206, + "src": "205:27:36", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IContractRegistry_$22220", + "typeString": "contract IContractRegistry" + }, + "typeName": { + "contractScope": null, + "id": 17194, + "name": "IContractRegistry", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 22220, + "src": "205:17:36", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IContractRegistry_$22220", + "typeString": "contract IContractRegistry" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 17197, + "name": "_maxConversionFee", + "nodeType": "VariableDeclaration", + "scope": 17206, + "src": "236:24:36", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 17196, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "236:6:36", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "179:84:36" + }, + "payable": false, + "returnParameters": { + "id": 17204, + "nodeType": "ParameterList", + "parameters": [], + "src": "334:0:36" + }, + "scope": 17217, + "src": "168:168:36", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 17215, + "nodeType": "Block", + "src": "394:32:36", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 17213, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 17211, + "name": "etherToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12931, + "src": "398:10:36", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IEtherToken_$20266", + "typeString": "contract IEtherToken" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 17212, + "name": "_etherToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17208, + "src": "411:11:36", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IEtherToken_$20266", + "typeString": "contract IEtherToken" + } + }, + "src": "398:24:36", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IEtherToken_$20266", + "typeString": "contract IEtherToken" + } + }, + "id": 17214, + "nodeType": "ExpressionStatement", + "src": "398:24:36" + } + ] + }, + "documentation": null, + "id": 17216, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "setEtherToken", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 17209, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 17208, + "name": "_etherToken", + "nodeType": "VariableDeclaration", + "scope": 17216, + "src": "362:23:36", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IEtherToken_$20266", + "typeString": "contract IEtherToken" + }, + "typeName": { + "contractScope": null, + "id": 17207, + "name": "IEtherToken", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20266, + "src": "362:11:36", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IEtherToken_$20266", + "typeString": "contract IEtherToken" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "361:25:36" + }, + "payable": false, + "returnParameters": { + "id": 17210, + "nodeType": "ParameterList", + "parameters": [], + "src": "394:0:36" + }, + "scope": 17217, + "src": "339:87:36", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 17218, + "src": "101:327:36" + } + ], + "src": "0:429:36" + }, + "id": 36 + }, + "solidity/contracts/helpers/TestLiquidityPoolV2Converter.sol": { + "ast": { + "absolutePath": "solidity/contracts/helpers/TestLiquidityPoolV2Converter.sol", + "exportedSymbols": { + "TestLiquidityPoolV2Converter": [ + 17321 + ] + }, + "id": 17322, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 17219, + "literals": [ + "solidity", + "0.4", + ".26" + ], + "nodeType": "PragmaDirective", + "src": "0:23:37" + }, + { + "absolutePath": "solidity/contracts/converter/types/liquidity-pool-v2/LiquidityPoolV2Converter.sol", + "file": "../converter/types/liquidity-pool-v2/LiquidityPoolV2Converter.sol", + "id": 17220, + "nodeType": "ImportDirective", + "scope": 17322, + "sourceUnit": 16611, + "src": "24:75:37", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 17221, + "name": "LiquidityPoolV2Converter", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 16610, + "src": "142:24:37", + "typeDescriptions": { + "typeIdentifier": "t_contract$_LiquidityPoolV2Converter_$16610", + "typeString": "contract LiquidityPoolV2Converter" + } + }, + "id": 17222, + "nodeType": "InheritanceSpecifier", + "src": "142:24:37" + } + ], + "contractDependencies": [ + 3414, + 6210, + 11817, + 16610, + 20932, + 21324, + 21710, + 21933, + 21976, + 22052, + 22247, + 22313 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 17321, + "linearizedBaseContracts": [ + 17321, + 16610, + 6210, + 3414, + 21710, + 20932, + 21976, + 22052, + 21324, + 21933, + 22313, + 11817, + 22247 + ], + "name": "TestLiquidityPoolV2Converter", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 17224, + "name": "currentTime", + "nodeType": "VariableDeclaration", + "scope": 17321, + "src": "170:26:37", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17223, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "170:7:37", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "body": { + "id": 17238, + "nodeType": "Block", + "src": "375:2:37", + "statements": [] + }, + "documentation": null, + "id": 17239, + "implemented": true, + "isConstructor": true, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 17233, + "name": "_token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17226, + "src": "337:6:37", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IPoolTokensContainer_$17009", + "typeString": "contract IPoolTokensContainer" + } + }, + { + "argumentTypes": null, + "id": 17234, + "name": "_registry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17228, + "src": "345:9:37", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IContractRegistry_$22220", + "typeString": "contract IContractRegistry" + } + }, + { + "argumentTypes": null, + "id": 17235, + "name": "_maxConversionFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17230, + "src": "356:17:37", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + } + ], + "id": 17236, + "modifierName": { + "argumentTypes": null, + "id": 17232, + "name": "LiquidityPoolV2Converter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16610, + "src": "312:24:37", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_LiquidityPoolV2Converter_$16610_$", + "typeString": "type(contract LiquidityPoolV2Converter)" + } + }, + "nodeType": "ModifierInvocation", + "src": "312:62:37" + } + ], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 17231, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 17226, + "name": "_token", + "nodeType": "VariableDeclaration", + "scope": 17239, + "src": "215:27:37", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IPoolTokensContainer_$17009", + "typeString": "contract IPoolTokensContainer" + }, + "typeName": { + "contractScope": null, + "id": 17225, + "name": "IPoolTokensContainer", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 17009, + "src": "215:20:37", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IPoolTokensContainer_$17009", + "typeString": "contract IPoolTokensContainer" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 17228, + "name": "_registry", + "nodeType": "VariableDeclaration", + "scope": 17239, + "src": "246:27:37", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IContractRegistry_$22220", + "typeString": "contract IContractRegistry" + }, + "typeName": { + "contractScope": null, + "id": 17227, + "name": "IContractRegistry", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 22220, + "src": "246:17:37", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IContractRegistry_$22220", + "typeString": "contract IContractRegistry" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 17230, + "name": "_maxConversionFee", + "nodeType": "VariableDeclaration", + "scope": 17239, + "src": "277:24:37", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 17229, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "277:6:37", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "211:93:37" + }, + "payable": false, + "returnParameters": { + "id": 17237, + "nodeType": "ParameterList", + "parameters": [], + "src": "375:0:37" + }, + "scope": 17321, + "src": "200:177:37", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 17248, + "nodeType": "Block", + "src": "457:58:37", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 17246, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 17244, + "name": "referenceRateUpdateTime", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14503, + "src": "461:23:37", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 17245, + "name": "_referenceRateUpdateTime", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17241, + "src": "487:24:37", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "461:50:37", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 17247, + "nodeType": "ExpressionStatement", + "src": "461:50:37" + } + ] + }, + "documentation": null, + "id": 17249, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "setReferenceRateUpdateTime", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 17242, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 17241, + "name": "_referenceRateUpdateTime", + "nodeType": "VariableDeclaration", + "scope": 17249, + "src": "416:32:37", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17240, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "416:7:37", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "415:34:37" + }, + "payable": false, + "returnParameters": { + "id": 17243, + "nodeType": "ParameterList", + "parameters": [], + "src": "457:0:37" + }, + "scope": 17321, + "src": "380:135:37", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 17261, + "nodeType": "Block", + "src": "566:51:37", + "statements": [ + { + "expression": { + "argumentTypes": null, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 17256, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 17254, + "name": "currentTime", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17224, + "src": "577:11:37", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 17255, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "592:1:37", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "577:16:37", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "argumentTypes": null, + "id": 17258, + "name": "now", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22340, + "src": "610:3:37", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 17259, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "577:36:37", + "trueExpression": { + "argumentTypes": null, + "id": 17257, + "name": "currentTime", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17224, + "src": "596:11:37", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 17253, + "id": 17260, + "nodeType": "Return", + "src": "570:43:37" + } + ] + }, + "documentation": null, + "id": 17262, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "time", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 17250, + "nodeType": "ParameterList", + "parameters": [], + "src": "531:2:37" + }, + "payable": false, + "returnParameters": { + "id": 17253, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 17252, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 17262, + "src": "557:7:37", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17251, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "557:7:37", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "556:9:37" + }, + "scope": 17321, + "src": "518:99:37", + "stateMutability": "view", + "superFunction": 16520, + "visibility": "internal" + }, + { + "body": { + "id": 17271, + "nodeType": "Block", + "src": "666:34:37", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 17269, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 17267, + "name": "currentTime", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17224, + "src": "670:11:37", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 17268, + "name": "_currentTime", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17264, + "src": "684:12:37", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "670:26:37", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 17270, + "nodeType": "ExpressionStatement", + "src": "670:26:37" + } + ] + }, + "documentation": null, + "id": 17272, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "setTime", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 17265, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 17264, + "name": "_currentTime", + "nodeType": "VariableDeclaration", + "scope": 17272, + "src": "637:20:37", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17263, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "637:7:37", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "636:22:37" + }, + "payable": false, + "returnParameters": { + "id": 17266, + "nodeType": "ParameterList", + "parameters": [], + "src": "666:0:37" + }, + "scope": 17321, + "src": "620:80:37", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 17301, + "nodeType": "Block", + "src": "1006:235:37", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 17292, + "name": "_primaryReserveStaked", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17274, + "src": "1051:21:37", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 17293, + "name": "_secondaryReserveStaked", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17276, + "src": "1078:23:37", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 17294, + "name": "_primaryReserveWeight", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17278, + "src": "1107:21:37", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 17295, + "name": "_secondaryReserveWeight", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17280, + "src": "1134:23:37", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 17296, + "name": "_primaryReserveRate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17282, + "src": "1163:19:37", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 17297, + "name": "_secondaryReserveRate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17284, + "src": "1188:21:37", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 17298, + "name": "_dynamicFeeFactor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17286, + "src": "1215:17:37", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 17291, + "name": "calculateFeeToEquilibrium", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16046, + "src": "1020:25:37", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256,uint256,uint256,uint256,uint256) pure returns (uint256)" + } + }, + "id": 17299, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1020:217:37", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 17290, + "id": 17300, + "nodeType": "Return", + "src": "1010:227:37" + } + ] + }, + "documentation": null, + "id": 17302, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "calculateFeeToEquilibriumTest", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 17287, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 17274, + "name": "_primaryReserveStaked", + "nodeType": "VariableDeclaration", + "scope": 17302, + "src": "745:29:37", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17273, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "745:7:37", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 17276, + "name": "_secondaryReserveStaked", + "nodeType": "VariableDeclaration", + "scope": 17302, + "src": "778:31:37", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17275, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "778:7:37", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 17278, + "name": "_primaryReserveWeight", + "nodeType": "VariableDeclaration", + "scope": 17302, + "src": "813:29:37", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17277, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "813:7:37", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 17280, + "name": "_secondaryReserveWeight", + "nodeType": "VariableDeclaration", + "scope": 17302, + "src": "846:31:37", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17279, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "846:7:37", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 17282, + "name": "_primaryReserveRate", + "nodeType": "VariableDeclaration", + "scope": 17302, + "src": "881:27:37", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17281, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "881:7:37", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 17284, + "name": "_secondaryReserveRate", + "nodeType": "VariableDeclaration", + "scope": 17302, + "src": "912:29:37", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17283, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "912:7:37", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 17286, + "name": "_dynamicFeeFactor", + "nodeType": "VariableDeclaration", + "scope": 17302, + "src": "945:25:37", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17285, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "945:7:37", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "741:232:37" + }, + "payable": false, + "returnParameters": { + "id": 17290, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 17289, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 17302, + "src": "997:7:37", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17288, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "997:7:37", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "996:9:37" + }, + "scope": 17321, + "src": "703:538:37", + "stateMutability": "pure", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 17319, + "nodeType": "Block", + "src": "1348:48:37", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 17317, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 17312, + "name": "reserves", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2520, + "src": "1352:8:37", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Reserve_$2506_storage_$", + "typeString": "mapping(address => struct ConverterBase.Reserve storage ref)" + } + }, + "id": 17314, + "indexExpression": { + "argumentTypes": null, + "id": 17313, + "name": "_reserveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17304, + "src": "1361:13:37", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1352:23:37", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Reserve_$2506_storage", + "typeString": "struct ConverterBase.Reserve storage ref" + } + }, + "id": 17315, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "weight", + "nodeType": "MemberAccess", + "referencedDeclaration": 2499, + "src": "1352:30:37", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 17316, + "name": "_weight", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17306, + "src": "1385:7:37", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "1352:40:37", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "id": 17318, + "nodeType": "ExpressionStatement", + "src": "1352:40:37" + } + ] + }, + "documentation": null, + "id": 17320, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 17309, + "name": "_reserveToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17304, + "src": "1333:13:37", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + } + ], + "id": 17310, + "modifierName": { + "argumentTypes": null, + "id": 17308, + "name": "validReserve", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2642, + "src": "1320:12:37", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_contract$_IERC20Token_$20240_$", + "typeString": "modifier (contract IERC20Token)" + } + }, + "nodeType": "ModifierInvocation", + "src": "1320:27:37" + } + ], + "name": "setReserveWeight", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 17307, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 17304, + "name": "_reserveToken", + "nodeType": "VariableDeclaration", + "scope": 17320, + "src": "1270:25:37", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + "typeName": { + "contractScope": null, + "id": 17303, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "1270:11:37", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 17306, + "name": "_weight", + "nodeType": "VariableDeclaration", + "scope": 17320, + "src": "1297:14:37", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 17305, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "1297:6:37", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1269:43:37" + }, + "payable": false, + "returnParameters": { + "id": 17311, + "nodeType": "ParameterList", + "parameters": [], + "src": "1348:0:37" + }, + "scope": 17321, + "src": "1244:152:37", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 17322, + "src": "101:1297:37" + } + ], + "src": "0:1399:37" + }, + "id": 37 + }, + "solidity/contracts/helpers/TestReentrancyGuard.sol": { + "ast": { + "absolutePath": "solidity/contracts/helpers/TestReentrancyGuard.sol", + "exportedSymbols": { + "TestReentrancyGuard": [ + 17435 + ], + "TestReentrancyGuardAttacker": [ + 17400 + ] + }, + "id": 17436, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 17323, + "literals": [ + "solidity", + "0.4", + ".26" + ], + "nodeType": "PragmaDirective", + "src": "0:23:38" + }, + { + "absolutePath": "solidity/contracts/utility/ReentrancyGuard.sol", + "file": "../utility/ReentrancyGuard.sol", + "id": 17324, + "nodeType": "ImportDirective", + "scope": 17436, + "sourceUnit": 21711, + "src": "24:40:38", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 17400, + "linearizedBaseContracts": [ + 17400 + ], + "name": "TestReentrancyGuardAttacker", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 17326, + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 17400, + "src": "106:33:38", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_TestReentrancyGuard_$17435", + "typeString": "contract TestReentrancyGuard" + }, + "typeName": { + "contractScope": null, + "id": 17325, + "name": "TestReentrancyGuard", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 17435, + "src": "106:19:38", + "typeDescriptions": { + "typeIdentifier": "t_contract$_TestReentrancyGuard_$17435", + "typeString": "contract TestReentrancyGuard" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 17328, + "name": "reentrancy", + "nodeType": "VariableDeclaration", + "scope": 17400, + "src": "142:22:38", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 17327, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "142:4:38", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 17330, + "name": "callProtectedMethod", + "nodeType": "VariableDeclaration", + "scope": 17400, + "src": "167:31:38", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 17329, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "167:4:38", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 17332, + "name": "attacking", + "nodeType": "VariableDeclaration", + "scope": 17400, + "src": "201:21:38", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 17331, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "201:4:38", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "public" + }, + { + "body": { + "id": 17341, + "nodeType": "Block", + "src": "274:24:38", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 17339, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 17337, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17326, + "src": "278:6:38", + "typeDescriptions": { + "typeIdentifier": "t_contract$_TestReentrancyGuard_$17435", + "typeString": "contract TestReentrancyGuard" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 17338, + "name": "_target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17334, + "src": "287:7:38", + "typeDescriptions": { + "typeIdentifier": "t_contract$_TestReentrancyGuard_$17435", + "typeString": "contract TestReentrancyGuard" + } + }, + "src": "278:16:38", + "typeDescriptions": { + "typeIdentifier": "t_contract$_TestReentrancyGuard_$17435", + "typeString": "contract TestReentrancyGuard" + } + }, + "id": 17340, + "nodeType": "ExpressionStatement", + "src": "278:16:38" + } + ] + }, + "documentation": null, + "id": 17342, + "implemented": true, + "isConstructor": true, + "isDeclaredConst": false, + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 17335, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 17334, + "name": "_target", + "nodeType": "VariableDeclaration", + "scope": 17342, + "src": "238:27:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_TestReentrancyGuard_$17435", + "typeString": "contract TestReentrancyGuard" + }, + "typeName": { + "contractScope": null, + "id": 17333, + "name": "TestReentrancyGuard", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 17435, + "src": "238:19:38", + "typeDescriptions": { + "typeIdentifier": "t_contract$_TestReentrancyGuard_$17435", + "typeString": "contract TestReentrancyGuard" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "237:29:38" + }, + "payable": false, + "returnParameters": { + "id": 17336, + "nodeType": "ParameterList", + "parameters": [], + "src": "274:0:38" + }, + "scope": 17400, + "src": "226:72:38", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 17351, + "nodeType": "Block", + "src": "351:32:38", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 17349, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 17347, + "name": "reentrancy", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17328, + "src": "355:10:38", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 17348, + "name": "_reentrancy", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17344, + "src": "368:11:38", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "355:24:38", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 17350, + "nodeType": "ExpressionStatement", + "src": "355:24:38" + } + ] + }, + "documentation": null, + "id": 17352, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "setReentrancy", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 17345, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 17344, + "name": "_reentrancy", + "nodeType": "VariableDeclaration", + "scope": 17352, + "src": "324:16:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 17343, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "324:4:38", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "323:18:38" + }, + "payable": false, + "returnParameters": { + "id": 17346, + "nodeType": "ParameterList", + "parameters": [], + "src": "351:0:38" + }, + "scope": 17400, + "src": "301:82:38", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 17361, + "nodeType": "Block", + "src": "454:50:38", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 17359, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 17357, + "name": "callProtectedMethod", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17330, + "src": "458:19:38", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 17358, + "name": "_callProtectedMethod", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17354, + "src": "480:20:38", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "458:42:38", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 17360, + "nodeType": "ExpressionStatement", + "src": "458:42:38" + } + ] + }, + "documentation": null, + "id": 17362, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "setCallProtectedMethod", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 17355, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 17354, + "name": "_callProtectedMethod", + "nodeType": "VariableDeclaration", + "scope": 17362, + "src": "418:25:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 17353, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "418:4:38", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "417:27:38" + }, + "payable": false, + "returnParameters": { + "id": 17356, + "nodeType": "ParameterList", + "parameters": [], + "src": "454:0:38" + }, + "scope": 17400, + "src": "386:118:38", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 17374, + "nodeType": "Block", + "src": "529:83:38", + "statements": [ + { + "expression": { + "argumentTypes": null, + "condition": { + "argumentTypes": null, + "id": 17365, + "name": "callProtectedMethod", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17330, + "src": "533:19:38", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 17369, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17326, + "src": "582:6:38", + "typeDescriptions": { + "typeIdentifier": "t_contract$_TestReentrancyGuard_$17435", + "typeString": "contract TestReentrancyGuard" + } + }, + "id": 17370, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "unprotectedMethod", + "nodeType": "MemberAccess", + "referencedDeclaration": 17420, + "src": "582:24:38", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$__$returns$__$", + "typeString": "function () external" + } + }, + "id": 17371, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "582:26:38", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 17372, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "533:75:38", + "trueExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 17366, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17326, + "src": "555:6:38", + "typeDescriptions": { + "typeIdentifier": "t_contract$_TestReentrancyGuard_$17435", + "typeString": "contract TestReentrancyGuard" + } + }, + "id": 17367, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "protectedMethod", + "nodeType": "MemberAccess", + "referencedDeclaration": 17413, + "src": "555:22:38", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$__$returns$__$", + "typeString": "function () external" + } + }, + "id": 17368, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "555:24:38", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 17373, + "nodeType": "ExpressionStatement", + "src": "533:75:38" + } + ] + }, + "documentation": null, + "id": 17375, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "run", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 17363, + "nodeType": "ParameterList", + "parameters": [], + "src": "519:2:38" + }, + "payable": false, + "returnParameters": { + "id": 17364, + "nodeType": "ParameterList", + "parameters": [], + "src": "529:0:38" + }, + "scope": 17400, + "src": "507:105:38", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 17398, + "nodeType": "Block", + "src": "644:119:38", + "statements": [ + { + "condition": { + "argumentTypes": null, + "id": 17379, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "652:11:38", + "subExpression": { + "argumentTypes": null, + "id": 17378, + "name": "reentrancy", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17328, + "src": "653:10:38", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 17382, + "nodeType": "IfStatement", + "src": "648:33:38", + "trueBody": { + "id": 17381, + "nodeType": "Block", + "src": "665:16:38", + "statements": [ + { + "expression": null, + "functionReturnParameters": 17377, + "id": 17380, + "nodeType": "Return", + "src": "670:7:38" + } + ] + } + }, + { + "condition": { + "argumentTypes": null, + "id": 17384, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "689:10:38", + "subExpression": { + "argumentTypes": null, + "id": 17383, + "name": "attacking", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17332, + "src": "690:9:38", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 17393, + "nodeType": "IfStatement", + "src": "685:53:38", + "trueBody": { + "id": 17392, + "nodeType": "Block", + "src": "701:37:38", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 17387, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 17385, + "name": "attacking", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17332, + "src": "706:9:38", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 17386, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "718:4:38", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "706:16:38", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 17388, + "nodeType": "ExpressionStatement", + "src": "706:16:38" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 17389, + "name": "run", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17375, + "src": "728:3:38", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", + "typeString": "function ()" + } + }, + "id": 17390, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "728:5:38", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 17391, + "nodeType": "ExpressionStatement", + "src": "728:5:38" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "id": 17396, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 17394, + "name": "attacking", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17332, + "src": "742:9:38", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 17395, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "754:5:38", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "src": "742:17:38", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 17397, + "nodeType": "ExpressionStatement", + "src": "742:17:38" + } + ] + }, + "documentation": null, + "id": 17399, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "callback", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 17376, + "nodeType": "ParameterList", + "parameters": [], + "src": "632:2:38" + }, + "payable": false, + "returnParameters": { + "id": 17377, + "nodeType": "ParameterList", + "parameters": [], + "src": "644:0:38" + }, + "scope": 17400, + "src": "615:148:38", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + } + ], + "scope": 17436, + "src": "66:699:38" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 17401, + "name": "ReentrancyGuard", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 21710, + "src": "799:15:38", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ReentrancyGuard_$21710", + "typeString": "contract ReentrancyGuard" + } + }, + "id": 17402, + "nodeType": "InheritanceSpecifier", + "src": "799:15:38" + } + ], + "contractDependencies": [ + 21710 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 17435, + "linearizedBaseContracts": [ + 17435, + 21710 + ], + "name": "TestReentrancyGuard", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 17404, + "name": "calls", + "nodeType": "VariableDeclaration", + "scope": 17435, + "src": "818:20:38", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17403, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "818:7:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "body": { + "id": 17412, + "nodeType": "Block", + "src": "888:13:38", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 17409, + "name": "run", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17434, + "src": "892:3:38", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", + "typeString": "function ()" + } + }, + "id": 17410, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "892:5:38", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 17411, + "nodeType": "ExpressionStatement", + "src": "892:5:38" + } + ] + }, + "documentation": null, + "id": 17413, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 17407, + "modifierName": { + "argumentTypes": null, + "id": 17406, + "name": "protected", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21698, + "src": "878:9:38", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "878:9:38" + } + ], + "name": "protectedMethod", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 17405, + "nodeType": "ParameterList", + "parameters": [], + "src": "866:2:38" + }, + "payable": false, + "returnParameters": { + "id": 17408, + "nodeType": "ParameterList", + "parameters": [], + "src": "888:0:38" + }, + "scope": 17435, + "src": "842:59:38", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 17419, + "nodeType": "Block", + "src": "942:13:38", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 17416, + "name": "run", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17434, + "src": "946:3:38", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", + "typeString": "function ()" + } + }, + "id": 17417, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "946:5:38", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 17418, + "nodeType": "ExpressionStatement", + "src": "946:5:38" + } + ] + }, + "documentation": null, + "id": 17420, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "unprotectedMethod", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 17414, + "nodeType": "ParameterList", + "parameters": [], + "src": "930:2:38" + }, + "payable": false, + "returnParameters": { + "id": 17415, + "nodeType": "ParameterList", + "parameters": [], + "src": "942:0:38" + }, + "scope": 17435, + "src": "904:51:38", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 17433, + "nodeType": "Block", + "src": "981:70:38", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 17424, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "985:7:38", + "subExpression": { + "argumentTypes": null, + "id": 17423, + "name": "calls", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17404, + "src": "985:5:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 17425, + "nodeType": "ExpressionStatement", + "src": "985:7:38" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 17427, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22338, + "src": "1025:3:38", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 17428, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1025:10:38", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 17426, + "name": "TestReentrancyGuardAttacker", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17400, + "src": "997:27:38", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_TestReentrancyGuardAttacker_$17400_$", + "typeString": "type(contract TestReentrancyGuardAttacker)" + } + }, + "id": 17429, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "997:39:38", + "typeDescriptions": { + "typeIdentifier": "t_contract$_TestReentrancyGuardAttacker_$17400", + "typeString": "contract TestReentrancyGuardAttacker" + } + }, + "id": 17430, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "callback", + "nodeType": "MemberAccess", + "referencedDeclaration": 17399, + "src": "997:48:38", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$__$returns$__$", + "typeString": "function () external" + } + }, + "id": 17431, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "997:50:38", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 17432, + "nodeType": "ExpressionStatement", + "src": "997:50:38" + } + ] + }, + "documentation": null, + "id": 17434, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "run", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 17421, + "nodeType": "ParameterList", + "parameters": [], + "src": "970:2:38" + }, + "payable": false, + "returnParameters": { + "id": 17422, + "nodeType": "ParameterList", + "parameters": [], + "src": "981:0:38" + }, + "scope": 17435, + "src": "958:93:38", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "private" + } + ], + "scope": 17436, + "src": "767:286:38" + } + ], + "src": "0:1054:38" + }, + "id": 38 + }, + "solidity/contracts/helpers/TestSafeMath.sol": { + "ast": { + "absolutePath": "solidity/contracts/helpers/TestSafeMath.sol", + "exportedSymbols": { + "TestSafeMath": [ + 17502 + ] + }, + "id": 17503, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 17437, + "literals": [ + "solidity", + "0.4", + ".26" + ], + "nodeType": "PragmaDirective", + "src": "0:23:39" + }, + { + "absolutePath": "solidity/contracts/utility/SafeMath.sol", + "file": "../utility/SafeMath.sol", + "id": 17438, + "nodeType": "ImportDirective", + "scope": 17503, + "sourceUnit": 21818, + "src": "24:33:39", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 17502, + "linearizedBaseContracts": [ + 17502 + ], + "name": "TestSafeMath", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 17441, + "libraryName": { + "contractScope": null, + "id": 17439, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 21817, + "src": "155:8:39", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$21817", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "149:27:39", + "typeName": { + "id": 17440, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "168:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "body": { + "id": 17455, + "nodeType": "Block", + "src": "254:25:39", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 17452, + "name": "_y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17445, + "src": "272:2:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 17450, + "name": "_x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17443, + "src": "265:2:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 17451, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 21737, + "src": "265:6:39", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 17453, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "265:10:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 17449, + "id": 17454, + "nodeType": "Return", + "src": "258:17:39" + } + ] + }, + "documentation": null, + "id": 17456, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "testSafeAdd", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 17446, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 17443, + "name": "_x", + "nodeType": "VariableDeclaration", + "scope": 17456, + "src": "200:10:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17442, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "200:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 17445, + "name": "_y", + "nodeType": "VariableDeclaration", + "scope": 17456, + "src": "212:10:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17444, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "212:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "199:24:39" + }, + "payable": false, + "returnParameters": { + "id": 17449, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 17448, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 17456, + "src": "245:7:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17447, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "245:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "244:9:39" + }, + "scope": 17502, + "src": "179:100:39", + "stateMutability": "pure", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 17470, + "nodeType": "Block", + "src": "357:25:39", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 17467, + "name": "_y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17460, + "src": "375:2:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 17465, + "name": "_x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17458, + "src": "368:2:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 17466, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 21758, + "src": "368:6:39", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 17468, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "368:10:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 17464, + "id": 17469, + "nodeType": "Return", + "src": "361:17:39" + } + ] + }, + "documentation": null, + "id": 17471, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "testSafeSub", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 17461, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 17458, + "name": "_x", + "nodeType": "VariableDeclaration", + "scope": 17471, + "src": "303:10:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17457, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "303:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 17460, + "name": "_y", + "nodeType": "VariableDeclaration", + "scope": 17471, + "src": "315:10:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17459, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "315:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "302:24:39" + }, + "payable": false, + "returnParameters": { + "id": 17464, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 17463, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 17471, + "src": "348:7:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17462, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "348:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "347:9:39" + }, + "scope": 17502, + "src": "282:100:39", + "stateMutability": "pure", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 17485, + "nodeType": "Block", + "src": "460:25:39", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 17482, + "name": "_y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17475, + "src": "478:2:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 17480, + "name": "_x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17473, + "src": "471:2:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 17481, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 21791, + "src": "471:6:39", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 17483, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "471:10:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 17479, + "id": 17484, + "nodeType": "Return", + "src": "464:17:39" + } + ] + }, + "documentation": null, + "id": 17486, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "testSafeMul", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 17476, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 17473, + "name": "_x", + "nodeType": "VariableDeclaration", + "scope": 17486, + "src": "406:10:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17472, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "406:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 17475, + "name": "_y", + "nodeType": "VariableDeclaration", + "scope": 17486, + "src": "418:10:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17474, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "418:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "405:24:39" + }, + "payable": false, + "returnParameters": { + "id": 17479, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 17478, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 17486, + "src": "451:7:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17477, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "451:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "450:9:39" + }, + "scope": 17502, + "src": "385:100:39", + "stateMutability": "pure", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 17500, + "nodeType": "Block", + "src": "563:25:39", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 17497, + "name": "_y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17490, + "src": "581:2:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 17495, + "name": "_x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17488, + "src": "574:2:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 17496, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "div", + "nodeType": "MemberAccess", + "referencedDeclaration": 21816, + "src": "574:6:39", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 17498, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "574:10:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 17494, + "id": 17499, + "nodeType": "Return", + "src": "567:17:39" + } + ] + }, + "documentation": null, + "id": 17501, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "testSafeDiv", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 17491, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 17488, + "name": "_x", + "nodeType": "VariableDeclaration", + "scope": 17501, + "src": "509:10:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17487, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "509:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 17490, + "name": "_y", + "nodeType": "VariableDeclaration", + "scope": 17501, + "src": "521:10:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17489, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "521:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "508:24:39" + }, + "payable": false, + "returnParameters": { + "id": 17494, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 17493, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 17501, + "src": "554:7:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17492, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "554:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "553:9:39" + }, + "scope": 17502, + "src": "488:100:39", + "stateMutability": "pure", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 17503, + "src": "124:466:39" + } + ], + "src": "0:591:39" + }, + "id": 39 + }, + "solidity/contracts/helpers/TestSovrynSwapFormula.sol": { + "ast": { + "absolutePath": "solidity/contracts/helpers/TestSovrynSwapFormula.sol", + "exportedSymbols": { + "TestSovrynSwapFormula": [ + 17665 + ] + }, + "id": 17666, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 17504, + "literals": [ + "solidity", + "0.4", + ".26" + ], + "nodeType": "PragmaDirective", + "src": "0:23:40" + }, + { + "absolutePath": "solidity/contracts/converter/SovrynSwapFormula.sol", + "file": "../converter/SovrynSwapFormula.sol", + "id": 17505, + "nodeType": "ImportDirective", + "scope": 17666, + "sourceUnit": 11643, + "src": "24:44:40", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 17506, + "name": "SovrynSwapFormula", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11642, + "src": "190:17:40", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SovrynSwapFormula_$11642", + "typeString": "contract SovrynSwapFormula" + } + }, + "id": 17507, + "nodeType": "InheritanceSpecifier", + "src": "190:17:40" + } + ], + "contractDependencies": [ + 11642, + 12240 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 17665, + "linearizedBaseContracts": [ + 17665, + 11642, + 12240 + ], + "name": "TestSovrynSwapFormula", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 17530, + "nodeType": "Block", + "src": "340:56:40", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 17524, + "name": "_baseN", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17509, + "src": "363:6:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 17525, + "name": "_baseD", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17511, + "src": "371:6:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 17526, + "name": "_expN", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17513, + "src": "379:5:40", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + { + "argumentTypes": null, + "id": 17527, + "name": "_expD", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17515, + "src": "386:5:40", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + ], + "expression": { + "argumentTypes": null, + "id": 17522, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22476, + "src": "351:5:40", + "typeDescriptions": { + "typeIdentifier": "t_super$_TestSovrynSwapFormula_$17665", + "typeString": "contract super TestSovrynSwapFormula" + } + }, + "id": 17523, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "power", + "nodeType": "MemberAccess", + "referencedDeclaration": 8457, + "src": "351:11:40", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint256_$_t_uint32_$_t_uint32_$returns$_t_uint256_$_t_uint8_$", + "typeString": "function (uint256,uint256,uint32,uint32) view returns (uint256,uint8)" + } + }, + "id": 17528, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "351:41:40", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint8_$", + "typeString": "tuple(uint256,uint8)" + } + }, + "functionReturnParameters": 17521, + "id": 17529, + "nodeType": "Return", + "src": "344:48:40" + } + ] + }, + "documentation": null, + "id": 17531, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "powerTest", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 17516, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 17509, + "name": "_baseN", + "nodeType": "VariableDeclaration", + "scope": 17531, + "src": "233:14:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17508, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "233:7:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 17511, + "name": "_baseD", + "nodeType": "VariableDeclaration", + "scope": 17531, + "src": "251:14:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17510, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "251:7:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 17513, + "name": "_expN", + "nodeType": "VariableDeclaration", + "scope": 17531, + "src": "269:12:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 17512, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "269:6:40", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 17515, + "name": "_expD", + "nodeType": "VariableDeclaration", + "scope": 17531, + "src": "285:12:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 17514, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "285:6:40", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "229:71:40" + }, + "payable": false, + "returnParameters": { + "id": 17521, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 17518, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 17531, + "src": "324:7:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17517, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "324:7:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 17520, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 17531, + "src": "333:5:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 17519, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "333:5:40", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "323:16:40" + }, + "scope": 17665, + "src": "211:185:40", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 17543, + "nodeType": "Block", + "src": "466:34:40", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 17540, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17533, + "src": "494:1:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 17538, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22476, + "src": "477:5:40", + "typeDescriptions": { + "typeIdentifier": "t_super$_TestSovrynSwapFormula_$17665", + "typeString": "contract super TestSovrynSwapFormula" + } + }, + "id": 17539, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "generalLog", + "nodeType": "MemberAccess", + "referencedDeclaration": 8543, + "src": "477:16:40", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 17541, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "477:19:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 17537, + "id": 17542, + "nodeType": "Return", + "src": "470:26:40" + } + ] + }, + "documentation": null, + "id": 17544, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "generalLogTest", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 17534, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 17533, + "name": "x", + "nodeType": "VariableDeclaration", + "scope": 17544, + "src": "423:9:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17532, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "423:7:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "422:11:40" + }, + "payable": false, + "returnParameters": { + "id": 17537, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 17536, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 17544, + "src": "457:7:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17535, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "457:7:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "456:9:40" + }, + "scope": 17665, + "src": "399:101:40", + "stateMutability": "pure", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 17556, + "nodeType": "Block", + "src": "568:34:40", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 17553, + "name": "_n", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17546, + "src": "595:2:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 17551, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22476, + "src": "579:5:40", + "typeDescriptions": { + "typeIdentifier": "t_super$_TestSovrynSwapFormula_$17665", + "typeString": "contract super TestSovrynSwapFormula" + } + }, + "id": 17552, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "floorLog2", + "nodeType": "MemberAccess", + "referencedDeclaration": 8605, + "src": "579:15:40", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint8_$", + "typeString": "function (uint256) pure returns (uint8)" + } + }, + "id": 17554, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "579:19:40", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "functionReturnParameters": 17550, + "id": 17555, + "nodeType": "Return", + "src": "572:26:40" + } + ] + }, + "documentation": null, + "id": 17557, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "floorLog2Test", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 17547, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 17546, + "name": "_n", + "nodeType": "VariableDeclaration", + "scope": 17557, + "src": "526:10:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17545, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "526:7:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "525:12:40" + }, + "payable": false, + "returnParameters": { + "id": 17550, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 17549, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 17557, + "src": "561:5:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 17548, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "561:5:40", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "560:7:40" + }, + "scope": 17665, + "src": "503:99:40", + "stateMutability": "pure", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 17569, + "nodeType": "Block", + "src": "686:50:40", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 17566, + "name": "_x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17559, + "src": "729:2:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 17564, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22476, + "src": "697:5:40", + "typeDescriptions": { + "typeIdentifier": "t_super$_TestSovrynSwapFormula_$17665", + "typeString": "contract super TestSovrynSwapFormula" + } + }, + "id": 17565, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "findPositionInMaxExpArray", + "nodeType": "MemberAccess", + "referencedDeclaration": 8671, + "src": "697:31:40", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint8_$", + "typeString": "function (uint256) view returns (uint8)" + } + }, + "id": 17567, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "697:35:40", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "functionReturnParameters": 17563, + "id": 17568, + "nodeType": "Return", + "src": "690:42:40" + } + ] + }, + "documentation": null, + "id": 17570, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "findPositionInMaxExpArrayTest", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 17560, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 17559, + "name": "_x", + "nodeType": "VariableDeclaration", + "scope": 17570, + "src": "644:10:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17558, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "644:7:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "643:12:40" + }, + "payable": false, + "returnParameters": { + "id": 17563, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 17562, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 17570, + "src": "679:5:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 17561, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "679:5:40", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "678:7:40" + }, + "scope": 17665, + "src": "605:131:40", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 17585, + "nodeType": "Block", + "src": "825:47:40", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 17581, + "name": "_x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17572, + "src": "853:2:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 17582, + "name": "_precision", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17574, + "src": "857:10:40", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + ], + "expression": { + "argumentTypes": null, + "id": 17579, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22476, + "src": "836:5:40", + "typeDescriptions": { + "typeIdentifier": "t_super$_TestSovrynSwapFormula_$17665", + "typeString": "contract super TestSovrynSwapFormula" + } + }, + "id": 17580, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "generalExp", + "nodeType": "MemberAccess", + "referencedDeclaration": 9180, + "src": "836:16:40", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint8_$returns$_t_uint256_$", + "typeString": "function (uint256,uint8) pure returns (uint256)" + } + }, + "id": 17583, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "836:32:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 17578, + "id": 17584, + "nodeType": "Return", + "src": "829:39:40" + } + ] + }, + "documentation": null, + "id": 17586, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "generalExpTest", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 17575, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 17572, + "name": "_x", + "nodeType": "VariableDeclaration", + "scope": 17586, + "src": "763:10:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17571, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "763:7:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 17574, + "name": "_precision", + "nodeType": "VariableDeclaration", + "scope": 17586, + "src": "775:16:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 17573, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "775:5:40", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "762:30:40" + }, + "payable": false, + "returnParameters": { + "id": 17578, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 17577, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 17586, + "src": "816:7:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17576, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "816:7:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "815:9:40" + }, + "scope": 17665, + "src": "739:133:40", + "stateMutability": "pure", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 17598, + "nodeType": "Block", + "src": "942:34:40", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 17595, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17588, + "src": "970:1:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 17593, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22476, + "src": "953:5:40", + "typeDescriptions": { + "typeIdentifier": "t_super$_TestSovrynSwapFormula_$17665", + "typeString": "contract super TestSovrynSwapFormula" + } + }, + "id": 17594, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "optimalLog", + "nodeType": "MemberAccess", + "referencedDeclaration": 9523, + "src": "953:16:40", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 17596, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "953:19:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 17592, + "id": 17597, + "nodeType": "Return", + "src": "946:26:40" + } + ] + }, + "documentation": null, + "id": 17599, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "optimalLogTest", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 17589, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 17588, + "name": "x", + "nodeType": "VariableDeclaration", + "scope": 17599, + "src": "899:9:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17587, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "899:7:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "898:11:40" + }, + "payable": false, + "returnParameters": { + "id": 17592, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 17591, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 17599, + "src": "933:7:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17590, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "933:7:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "932:9:40" + }, + "scope": 17665, + "src": "875:101:40", + "stateMutability": "pure", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 17611, + "nodeType": "Block", + "src": "1046:34:40", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 17608, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17601, + "src": "1074:1:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 17606, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22476, + "src": "1057:5:40", + "typeDescriptions": { + "typeIdentifier": "t_super$_TestSovrynSwapFormula_$17665", + "typeString": "contract super TestSovrynSwapFormula" + } + }, + "id": 17607, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "optimalExp", + "nodeType": "MemberAccess", + "referencedDeclaration": 9958, + "src": "1057:16:40", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 17609, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1057:19:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 17605, + "id": 17610, + "nodeType": "Return", + "src": "1050:26:40" + } + ] + }, + "documentation": null, + "id": 17612, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "optimalExpTest", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 17602, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 17601, + "name": "x", + "nodeType": "VariableDeclaration", + "scope": 17612, + "src": "1003:9:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17600, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1003:7:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1002:11:40" + }, + "payable": false, + "returnParameters": { + "id": 17605, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 17604, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 17612, + "src": "1037:7:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17603, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1037:7:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1036:9:40" + }, + "scope": 17665, + "src": "979:101:40", + "stateMutability": "pure", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 17629, + "nodeType": "Block", + "src": "1177:46:40", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 17625, + "name": "_a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17614, + "src": "1212:2:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 17626, + "name": "_b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17616, + "src": "1216:2:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 17623, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22476, + "src": "1188:5:40", + "typeDescriptions": { + "typeIdentifier": "t_super$_TestSovrynSwapFormula_$17665", + "typeString": "contract super TestSovrynSwapFormula" + } + }, + "id": 17624, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "normalizedWeights", + "nodeType": "MemberAccess", + "referencedDeclaration": 11334, + "src": "1188:23:40", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint32_$_t_uint32_$", + "typeString": "function (uint256,uint256) pure returns (uint32,uint32)" + } + }, + "id": 17627, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1188:31:40", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint32_$_t_uint32_$", + "typeString": "tuple(uint32,uint32)" + } + }, + "functionReturnParameters": 17622, + "id": 17628, + "nodeType": "Return", + "src": "1181:38:40" + } + ] + }, + "documentation": null, + "id": 17630, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "normalizedWeightsTest", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 17617, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 17614, + "name": "_a", + "nodeType": "VariableDeclaration", + "scope": 17630, + "src": "1114:10:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17613, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1114:7:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 17616, + "name": "_b", + "nodeType": "VariableDeclaration", + "scope": 17630, + "src": "1126:10:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17615, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1126:7:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1113:24:40" + }, + "payable": false, + "returnParameters": { + "id": 17622, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 17619, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 17630, + "src": "1161:6:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 17618, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "1161:6:40", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 17621, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 17630, + "src": "1169:6:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 17620, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "1169:6:40", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1160:16:40" + }, + "scope": 17665, + "src": "1083:140:40", + "stateMutability": "pure", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 17647, + "nodeType": "Block", + "src": "1318:44:40", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 17643, + "name": "_a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17632, + "src": "1351:2:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 17644, + "name": "_b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17634, + "src": "1355:2:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 17641, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22476, + "src": "1329:5:40", + "typeDescriptions": { + "typeIdentifier": "t_super$_TestSovrynSwapFormula_$17665", + "typeString": "contract super TestSovrynSwapFormula" + } + }, + "id": 17642, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "accurateWeights", + "nodeType": "MemberAccess", + "referencedDeclaration": 11396, + "src": "1329:21:40", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint32_$_t_uint32_$", + "typeString": "function (uint256,uint256) pure returns (uint32,uint32)" + } + }, + "id": 17645, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1329:29:40", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint32_$_t_uint32_$", + "typeString": "tuple(uint32,uint32)" + } + }, + "functionReturnParameters": 17640, + "id": 17646, + "nodeType": "Return", + "src": "1322:36:40" + } + ] + }, + "documentation": null, + "id": 17648, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "accurateWeightsTest", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 17635, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 17632, + "name": "_a", + "nodeType": "VariableDeclaration", + "scope": 17648, + "src": "1255:10:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17631, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1255:7:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 17634, + "name": "_b", + "nodeType": "VariableDeclaration", + "scope": 17648, + "src": "1267:10:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17633, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1267:7:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1254:24:40" + }, + "payable": false, + "returnParameters": { + "id": 17640, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 17637, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 17648, + "src": "1302:6:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 17636, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "1302:6:40", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 17639, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 17648, + "src": "1310:6:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 17638, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "1310:6:40", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1301:16:40" + }, + "scope": 17665, + "src": "1226:136:40", + "stateMutability": "pure", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 17663, + "nodeType": "Block", + "src": "1443:37:40", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 17659, + "name": "_n", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17650, + "src": "1469:2:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 17660, + "name": "_d", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17652, + "src": "1473:2:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 17657, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22476, + "src": "1454:5:40", + "typeDescriptions": { + "typeIdentifier": "t_super$_TestSovrynSwapFormula_$17665", + "typeString": "contract super TestSovrynSwapFormula" + } + }, + "id": 17658, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "roundDiv", + "nodeType": "MemberAccess", + "referencedDeclaration": 11422, + "src": "1454:14:40", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 17661, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1454:22:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 17656, + "id": 17662, + "nodeType": "Return", + "src": "1447:29:40" + } + ] + }, + "documentation": null, + "id": 17664, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "roundDivTest", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 17653, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 17650, + "name": "_n", + "nodeType": "VariableDeclaration", + "scope": 17664, + "src": "1387:10:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17649, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1387:7:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 17652, + "name": "_d", + "nodeType": "VariableDeclaration", + "scope": 17664, + "src": "1399:10:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17651, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1399:7:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1386:24:40" + }, + "payable": false, + "returnParameters": { + "id": 17656, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 17655, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 17664, + "src": "1434:7:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17654, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1434:7:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1433:9:40" + }, + "scope": 17665, + "src": "1365:115:40", + "stateMutability": "pure", + "superFunction": null, + "visibility": "external" + } + ], + "scope": 17666, + "src": "156:1326:40" + } + ], + "src": "0:1483:40" + }, + "id": 40 + }, + "solidity/contracts/helpers/TestSovrynSwapNetwork.sol": { + "ast": { + "absolutePath": "solidity/contracts/helpers/TestSovrynSwapNetwork.sol", + "exportedSymbols": { + "ConverterV27OrLowerWithFallback": [ + 17753 + ], + "ConverterV27OrLowerWithoutFallback": [ + 17748 + ], + "ConverterV28OrHigherWithFallback": [ + 17778 + ], + "ConverterV28OrHigherWithoutFallback": [ + 17762 + ], + "NewConverter": [ + 17747 + ], + "OldConverter": [ + 17702 + ], + "TestSovrynSwapNetwork": [ + 17874 + ] + }, + "id": 17875, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 17667, + "literals": [ + "solidity", + "0.4", + ".26" + ], + "nodeType": "PragmaDirective", + "src": "0:23:41" + }, + { + "absolutePath": "solidity/contracts/SovrynSwapNetwork.sol", + "file": "../SovrynSwapNetwork.sol", + "id": 17668, + "nodeType": "ImportDirective", + "scope": 17875, + "sourceUnit": 2460, + "src": "24:34:41", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 17702, + "linearizedBaseContracts": [ + 17702 + ], + "name": "OldConverter", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 17670, + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 17702, + "src": "85:22:41", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17669, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "85:7:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "private" + }, + { + "body": { + "id": 17679, + "nodeType": "Block", + "src": "147:24:41", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 17677, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 17675, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17670, + "src": "151:6:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 17676, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17672, + "src": "160:7:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "151:16:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 17678, + "nodeType": "ExpressionStatement", + "src": "151:16:41" + } + ] + }, + "documentation": null, + "id": 17680, + "implemented": true, + "isConstructor": true, + "isDeclaredConst": false, + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 17673, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 17672, + "name": "_amount", + "nodeType": "VariableDeclaration", + "scope": 17680, + "src": "123:15:41", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17671, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "123:7:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "122:17:41" + }, + "payable": false, + "returnParameters": { + "id": 17674, + "nodeType": "ParameterList", + "parameters": [], + "src": "147:0:41" + }, + "scope": 17702, + "src": "111:60:41", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 17700, + "nodeType": "Block", + "src": "303:66:41", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 17691, + "name": "_sourceToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17682, + "src": "307:12:41", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "id": 17692, + "nodeType": "ExpressionStatement", + "src": "307:12:41" + }, + { + "expression": { + "argumentTypes": null, + "id": 17693, + "name": "_targetToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17684, + "src": "323:12:41", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "id": 17694, + "nodeType": "ExpressionStatement", + "src": "323:12:41" + }, + { + "expression": { + "argumentTypes": null, + "id": 17695, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17686, + "src": "339:7:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 17696, + "nodeType": "ExpressionStatement", + "src": "339:7:41" + }, + { + "expression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "id": 17697, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17670, + "src": "358:6:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 17698, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "357:8:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 17690, + "id": 17699, + "nodeType": "Return", + "src": "350:15:41" + } + ] + }, + "documentation": null, + "id": 17701, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getReturn", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 17687, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 17682, + "name": "_sourceToken", + "nodeType": "VariableDeclaration", + "scope": 17701, + "src": "196:24:41", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + "typeName": { + "contractScope": null, + "id": 17681, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "196:11:41", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 17684, + "name": "_targetToken", + "nodeType": "VariableDeclaration", + "scope": 17701, + "src": "224:24:41", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + "typeName": { + "contractScope": null, + "id": 17683, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "224:11:41", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 17686, + "name": "_amount", + "nodeType": "VariableDeclaration", + "scope": 17701, + "src": "252:15:41", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17685, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "252:7:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "192:78:41" + }, + "payable": false, + "returnParameters": { + "id": 17690, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 17689, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 17701, + "src": "294:7:41", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17688, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "294:7:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "293:9:41" + }, + "scope": 17702, + "src": "174:195:41", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + } + ], + "scope": 17875, + "src": "60:311:41" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 17747, + "linearizedBaseContracts": [ + 17747 + ], + "name": "NewConverter", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 17704, + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 17747, + "src": "398:22:41", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17703, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "398:7:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "private" + }, + { + "constant": false, + "id": 17706, + "name": "fee", + "nodeType": "VariableDeclaration", + "scope": 17747, + "src": "423:19:41", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17705, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "423:7:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "private" + }, + { + "body": { + "id": 17721, + "nodeType": "Block", + "src": "496:38:41", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 17715, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 17713, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17704, + "src": "500:6:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 17714, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17708, + "src": "509:7:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "500:16:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 17716, + "nodeType": "ExpressionStatement", + "src": "500:16:41" + }, + { + "expression": { + "argumentTypes": null, + "id": 17719, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 17717, + "name": "fee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17706, + "src": "520:3:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 17718, + "name": "_fee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17710, + "src": "526:4:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "520:10:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 17720, + "nodeType": "ExpressionStatement", + "src": "520:10:41" + } + ] + }, + "documentation": null, + "id": 17722, + "implemented": true, + "isConstructor": true, + "isDeclaredConst": false, + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 17711, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 17708, + "name": "_amount", + "nodeType": "VariableDeclaration", + "scope": 17722, + "src": "458:15:41", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17707, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "458:7:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 17710, + "name": "_fee", + "nodeType": "VariableDeclaration", + "scope": 17722, + "src": "475:12:41", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17709, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "475:7:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "457:31:41" + }, + "payable": false, + "returnParameters": { + "id": 17712, + "nodeType": "ParameterList", + "parameters": [], + "src": "496:0:41" + }, + "scope": 17747, + "src": "446:88:41", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 17745, + "nodeType": "Block", + "src": "675:71:41", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 17735, + "name": "_sourceToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17724, + "src": "679:12:41", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "id": 17736, + "nodeType": "ExpressionStatement", + "src": "679:12:41" + }, + { + "expression": { + "argumentTypes": null, + "id": 17737, + "name": "_targetToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17726, + "src": "695:12:41", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "id": 17738, + "nodeType": "ExpressionStatement", + "src": "695:12:41" + }, + { + "expression": { + "argumentTypes": null, + "id": 17739, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17728, + "src": "711:7:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 17740, + "nodeType": "ExpressionStatement", + "src": "711:7:41" + }, + { + "expression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "id": 17741, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17704, + "src": "730:6:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 17742, + "name": "fee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17706, + "src": "738:3:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 17743, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "729:13:41", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "functionReturnParameters": 17734, + "id": 17744, + "nodeType": "Return", + "src": "722:20:41" + } + ] + }, + "documentation": null, + "id": 17746, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getReturn", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 17729, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 17724, + "name": "_sourceToken", + "nodeType": "VariableDeclaration", + "scope": 17746, + "src": "559:24:41", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + "typeName": { + "contractScope": null, + "id": 17723, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "559:11:41", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 17726, + "name": "_targetToken", + "nodeType": "VariableDeclaration", + "scope": 17746, + "src": "587:24:41", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + "typeName": { + "contractScope": null, + "id": 17725, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "587:11:41", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 17728, + "name": "_amount", + "nodeType": "VariableDeclaration", + "scope": 17746, + "src": "615:15:41", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17727, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "615:7:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "555:78:41" + }, + "payable": false, + "returnParameters": { + "id": 17734, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 17731, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 17746, + "src": "657:7:41", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17730, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "657:7:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 17733, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 17746, + "src": "666:7:41", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17732, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "666:7:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "656:18:41" + }, + "scope": 17747, + "src": "537:209:41", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + } + ], + "scope": 17875, + "src": "373:375:41" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 17748, + "linearizedBaseContracts": [ + 17748 + ], + "name": "ConverterV27OrLowerWithoutFallback", + "nodeType": "ContractDefinition", + "nodes": [], + "scope": 17875, + "src": "750:46:41" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 17753, + "linearizedBaseContracts": [ + 17753 + ], + "name": "ConverterV27OrLowerWithFallback", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 17751, + "nodeType": "Block", + "src": "870:2:41", + "statements": [] + }, + "documentation": null, + "id": 17752, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 17749, + "nodeType": "ParameterList", + "parameters": [], + "src": "850:2:41" + }, + "payable": true, + "returnParameters": { + "id": 17750, + "nodeType": "ParameterList", + "parameters": [], + "src": "870:0:41" + }, + "scope": 17753, + "src": "842:30:41", + "stateMutability": "payable", + "superFunction": null, + "visibility": "external" + } + ], + "scope": 17875, + "src": "798:76:41" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 17762, + "linearizedBaseContracts": [ + 17762 + ], + "name": "ConverterV28OrHigherWithoutFallback", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 17760, + "nodeType": "Block", + "src": "976:19:41", + "statements": [ + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 17758, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "987:4:41", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 17757, + "id": 17759, + "nodeType": "Return", + "src": "980:11:41" + } + ] + }, + "documentation": null, + "id": 17761, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "isV28OrHigher", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 17754, + "nodeType": "ParameterList", + "parameters": [], + "src": "946:2:41" + }, + "payable": false, + "returnParameters": { + "id": 17757, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 17756, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 17761, + "src": "970:4:41", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 17755, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "970:4:41", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "969:6:41" + }, + "scope": 17762, + "src": "924:71:41", + "stateMutability": "pure", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 17875, + "src": "876:121:41" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 17778, + "linearizedBaseContracts": [ + 17778 + ], + "name": "ConverterV28OrHigherWithFallback", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 17769, + "nodeType": "Block", + "src": "1096:19:41", + "statements": [ + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 17767, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1107:4:41", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 17766, + "id": 17768, + "nodeType": "Return", + "src": "1100:11:41" + } + ] + }, + "documentation": null, + "id": 17770, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "isV28OrHigher", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 17763, + "nodeType": "ParameterList", + "parameters": [], + "src": "1066:2:41" + }, + "payable": false, + "returnParameters": { + "id": 17766, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 17765, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 17770, + "src": "1090:4:41", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 17764, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1090:4:41", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1089:6:41" + }, + "scope": 17778, + "src": "1044:71:41", + "stateMutability": "pure", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 17776, + "nodeType": "Block", + "src": "1146:16:41", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 17773, + "name": "revert", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 22343, + 22344 + ], + "referencedDeclaration": 22343, + "src": "1150:6:41", + "typeDescriptions": { + "typeIdentifier": "t_function_revert_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 17774, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1150:8:41", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 17775, + "nodeType": "ExpressionStatement", + "src": "1150:8:41" + } + ] + }, + "documentation": null, + "id": 17777, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 17771, + "nodeType": "ParameterList", + "parameters": [], + "src": "1126:2:41" + }, + "payable": true, + "returnParameters": { + "id": 17772, + "nodeType": "ParameterList", + "parameters": [], + "src": "1146:0:41" + }, + "scope": 17778, + "src": "1118:44:41", + "stateMutability": "payable", + "superFunction": null, + "visibility": "external" + } + ], + "scope": 17875, + "src": "999:165:41" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 17779, + "name": "SovrynSwapNetwork", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2459, + "src": "1200:17:41", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SovrynSwapNetwork_$2459", + "typeString": "contract SovrynSwapNetwork" + } + }, + "id": 17780, + "nodeType": "InheritanceSpecifier", + "src": "1200:17:41" + } + ], + "contractDependencies": [ + 661, + 2459, + 17702, + 17747, + 20932, + 21324, + 21710, + 21933, + 21976, + 22052, + 22247, + 22313 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 17874, + "linearizedBaseContracts": [ + 17874, + 2459, + 21710, + 20932, + 21976, + 22052, + 21324, + 21933, + 22313, + 22247, + 661 + ], + "name": "TestSovrynSwapNetwork", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 17782, + "name": "oldConverter", + "nodeType": "VariableDeclaration", + "scope": 17874, + "src": "1221:33:41", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_OldConverter_$17702", + "typeString": "contract OldConverter" + }, + "typeName": { + "contractScope": null, + "id": 17781, + "name": "OldConverter", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 17702, + "src": "1221:12:41", + "typeDescriptions": { + "typeIdentifier": "t_contract$_OldConverter_$17702", + "typeString": "contract OldConverter" + } + }, + "value": null, + "visibility": "private" + }, + { + "constant": false, + "id": 17784, + "name": "newConverter", + "nodeType": "VariableDeclaration", + "scope": 17874, + "src": "1257:33:41", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_NewConverter_$17747", + "typeString": "contract NewConverter" + }, + "typeName": { + "contractScope": null, + "id": 17783, + "name": "NewConverter", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 17747, + "src": "1257:12:41", + "typeDescriptions": { + "typeIdentifier": "t_contract$_NewConverter_$17747", + "typeString": "contract NewConverter" + } + }, + "value": null, + "visibility": "private" + }, + { + "body": { + "id": 17813, + "nodeType": "Block", + "src": "1393:98:41", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 17803, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 17798, + "name": "oldConverter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17782, + "src": "1397:12:41", + "typeDescriptions": { + "typeIdentifier": "t_contract$_OldConverter_$17702", + "typeString": "contract OldConverter" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 17801, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17786, + "src": "1429:7:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 17800, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "1412:16:41", + "typeDescriptions": { + "typeIdentifier": "t_function_creation_nonpayable$_t_uint256_$returns$_t_contract$_OldConverter_$17702_$", + "typeString": "function (uint256) returns (contract OldConverter)" + }, + "typeName": { + "contractScope": null, + "id": 17799, + "name": "OldConverter", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 17702, + "src": "1416:12:41", + "typeDescriptions": { + "typeIdentifier": "t_contract$_OldConverter_$17702", + "typeString": "contract OldConverter" + } + } + }, + "id": 17802, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1412:25:41", + "typeDescriptions": { + "typeIdentifier": "t_contract$_OldConverter_$17702", + "typeString": "contract OldConverter" + } + }, + "src": "1397:40:41", + "typeDescriptions": { + "typeIdentifier": "t_contract$_OldConverter_$17702", + "typeString": "contract OldConverter" + } + }, + "id": 17804, + "nodeType": "ExpressionStatement", + "src": "1397:40:41" + }, + { + "expression": { + "argumentTypes": null, + "id": 17811, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 17805, + "name": "newConverter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17784, + "src": "1441:12:41", + "typeDescriptions": { + "typeIdentifier": "t_contract$_NewConverter_$17747", + "typeString": "contract NewConverter" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 17808, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17786, + "src": "1473:7:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 17809, + "name": "_fee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17788, + "src": "1482:4:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 17807, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "1456:16:41", + "typeDescriptions": { + "typeIdentifier": "t_function_creation_nonpayable$_t_uint256_$_t_uint256_$returns$_t_contract$_NewConverter_$17747_$", + "typeString": "function (uint256,uint256) returns (contract NewConverter)" + }, + "typeName": { + "contractScope": null, + "id": 17806, + "name": "NewConverter", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 17747, + "src": "1460:12:41", + "typeDescriptions": { + "typeIdentifier": "t_contract$_NewConverter_$17747", + "typeString": "contract NewConverter" + } + } + }, + "id": 17810, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1456:31:41", + "typeDescriptions": { + "typeIdentifier": "t_contract$_NewConverter_$17747", + "typeString": "contract NewConverter" + } + }, + "src": "1441:46:41", + "typeDescriptions": { + "typeIdentifier": "t_contract$_NewConverter_$17747", + "typeString": "contract NewConverter" + } + }, + "id": 17812, + "nodeType": "ExpressionStatement", + "src": "1441:46:41" + } + ] + }, + "documentation": null, + "id": 17814, + "implemented": true, + "isConstructor": true, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "31", + "id": 17793, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1388:1:41", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + } + ], + "id": 17792, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1380:7:41", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 17794, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1380:10:41", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 17791, + "name": "IContractRegistry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22220, + "src": "1362:17:41", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IContractRegistry_$22220_$", + "typeString": "type(contract IContractRegistry)" + } + }, + "id": 17795, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1362:29:41", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IContractRegistry_$22220", + "typeString": "contract IContractRegistry" + } + } + ], + "id": 17796, + "modifierName": { + "argumentTypes": null, + "id": 17790, + "name": "SovrynSwapNetwork", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2459, + "src": "1344:17:41", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_SovrynSwapNetwork_$2459_$", + "typeString": "type(contract SovrynSwapNetwork)" + } + }, + "nodeType": "ModifierInvocation", + "src": "1344:48:41" + } + ], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 17789, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 17786, + "name": "_amount", + "nodeType": "VariableDeclaration", + "scope": 17814, + "src": "1306:15:41", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17785, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1306:7:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 17788, + "name": "_fee", + "nodeType": "VariableDeclaration", + "scope": 17814, + "src": "1323:12:41", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17787, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1323:7:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1305:31:41" + }, + "payable": false, + "returnParameters": { + "id": 17797, + "nodeType": "ParameterList", + "parameters": [], + "src": "1393:0:41" + }, + "scope": 17874, + "src": "1294:197:41", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 17826, + "nodeType": "Block", + "src": "1586:55:41", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 17823, + "name": "_converter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17816, + "src": "1626:10:41", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + ], + "expression": { + "argumentTypes": null, + "id": 17821, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22490, + "src": "1597:5:41", + "typeDescriptions": { + "typeIdentifier": "t_super$_TestSovrynSwapNetwork_$17874", + "typeString": "contract super TestSovrynSwapNetwork" + } + }, + "id": 17822, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "isV28OrHigherConverter", + "nodeType": "MemberAccess", + "referencedDeclaration": 2219, + "src": "1597:28:41", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_contract$_IConverter_$11817_$returns$_t_bool_$", + "typeString": "function (contract IConverter) view returns (bool)" + } + }, + "id": 17824, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1597:40:41", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 17820, + "id": 17825, + "nodeType": "Return", + "src": "1590:47:41" + } + ] + }, + "documentation": null, + "id": 17827, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "isV28OrHigherConverterExternal", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 17817, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 17816, + "name": "_converter", + "nodeType": "VariableDeclaration", + "scope": 17827, + "src": "1534:21:41", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + }, + "typeName": { + "contractScope": null, + "id": 17815, + "name": "IConverter", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11817, + "src": "1534:10:41", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverter_$11817", + "typeString": "contract IConverter" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1533:23:41" + }, + "payable": false, + "returnParameters": { + "id": 17820, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 17819, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 17827, + "src": "1580:4:41", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 17818, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1580:4:41", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1579:6:41" + }, + "scope": 17874, + "src": "1494:147:41", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 17849, + "nodeType": "Block", + "src": "1709:91:41", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 17836, + "name": "oldConverter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17782, + "src": "1738:12:41", + "typeDescriptions": { + "typeIdentifier": "t_contract$_OldConverter_$17702", + "typeString": "contract OldConverter" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_OldConverter_$17702", + "typeString": "contract OldConverter" + } + ], + "id": 17835, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1730:7:41", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 17837, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1730:21:41", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 17839, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1765:1:41", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 17838, + "name": "IERC20Token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20240, + "src": "1753:11:41", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20Token_$20240_$", + "typeString": "type(contract IERC20Token)" + } + }, + "id": 17840, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1753:14:41", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 17842, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1781:1:41", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 17841, + "name": "IERC20Token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20240, + "src": "1769:11:41", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20Token_$20240_$", + "typeString": "type(contract IERC20Token)" + } + }, + "id": 17843, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1769:14:41", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 17845, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1793:1:41", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 17844, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1785:7:41", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": "uint256" + }, + "id": 17846, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1785:10:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 17834, + "name": "getReturn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2179, + "src": "1720:9:41", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$_t_address_$_t_uint256_$returns$_t_uint256_$_t_uint256_$", + "typeString": "function (address,address,address,uint256) view returns (uint256,uint256)" + } + }, + "id": 17847, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1720:76:41", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "functionReturnParameters": 17833, + "id": 17848, + "nodeType": "Return", + "src": "1713:83:41" + } + ] + }, + "documentation": null, + "id": 17850, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getReturnOld", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 17828, + "nodeType": "ParameterList", + "parameters": [], + "src": "1665:2:41" + }, + "payable": false, + "returnParameters": { + "id": 17833, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 17830, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 17850, + "src": "1691:7:41", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17829, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1691:7:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 17832, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 17850, + "src": "1700:7:41", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17831, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1700:7:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1690:18:41" + }, + "scope": 17874, + "src": "1644:156:41", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 17872, + "nodeType": "Block", + "src": "1868:91:41", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 17859, + "name": "newConverter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17784, + "src": "1897:12:41", + "typeDescriptions": { + "typeIdentifier": "t_contract$_NewConverter_$17747", + "typeString": "contract NewConverter" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_NewConverter_$17747", + "typeString": "contract NewConverter" + } + ], + "id": 17858, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1889:7:41", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 17860, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1889:21:41", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 17862, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1924:1:41", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 17861, + "name": "IERC20Token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20240, + "src": "1912:11:41", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20Token_$20240_$", + "typeString": "type(contract IERC20Token)" + } + }, + "id": 17863, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1912:14:41", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 17865, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1940:1:41", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 17864, + "name": "IERC20Token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20240, + "src": "1928:11:41", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20Token_$20240_$", + "typeString": "type(contract IERC20Token)" + } + }, + "id": 17866, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1928:14:41", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 17868, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1952:1:41", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 17867, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1944:7:41", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": "uint256" + }, + "id": 17869, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1944:10:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 17857, + "name": "getReturn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2179, + "src": "1879:9:41", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$_t_address_$_t_uint256_$returns$_t_uint256_$_t_uint256_$", + "typeString": "function (address,address,address,uint256) view returns (uint256,uint256)" + } + }, + "id": 17870, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1879:76:41", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "functionReturnParameters": 17856, + "id": 17871, + "nodeType": "Return", + "src": "1872:83:41" + } + ] + }, + "documentation": null, + "id": 17873, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getReturnNew", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 17851, + "nodeType": "ParameterList", + "parameters": [], + "src": "1824:2:41" + }, + "payable": false, + "returnParameters": { + "id": 17856, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 17853, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 17873, + "src": "1850:7:41", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17852, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1850:7:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 17855, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 17873, + "src": "1859:7:41", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17854, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1859:7:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1849:18:41" + }, + "scope": 17874, + "src": "1803:156:41", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + } + ], + "scope": 17875, + "src": "1166:795:41" + } + ], + "src": "0:1962:41" + }, + "id": 41 + }, + "solidity/contracts/helpers/TestTokenHandler.sol": { + "ast": { + "absolutePath": "solidity/contracts/helpers/TestTokenHandler.sol", + "exportedSymbols": { + "TestTokenHandler": [ + 17931 + ] + }, + "id": 17932, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 17876, + "literals": [ + "solidity", + "0.4", + ".26" + ], + "nodeType": "PragmaDirective", + "src": "0:23:42" + }, + { + "absolutePath": "solidity/contracts/utility/TokenHandler.sol", + "file": "../utility/TokenHandler.sol", + "id": 17877, + "nodeType": "ImportDirective", + "scope": 17932, + "sourceUnit": 21934, + "src": "24:37:42", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 17878, + "name": "TokenHandler", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 21933, + "src": "161:12:42", + "typeDescriptions": { + "typeIdentifier": "t_contract$_TokenHandler_$21933", + "typeString": "contract TokenHandler" + } + }, + "id": 17879, + "nodeType": "InheritanceSpecifier", + "src": "161:12:42" + } + ], + "contractDependencies": [ + 21933 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 17931, + "linearizedBaseContracts": [ + 17931, + 21933 + ], + "name": "TestTokenHandler", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 17894, + "nodeType": "Block", + "src": "272:45:42", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 17889, + "name": "_token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17881, + "src": "288:6:42", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + { + "argumentTypes": null, + "id": 17890, + "name": "_spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17883, + "src": "296:8:42", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 17891, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17885, + "src": "306:6:42", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 17888, + "name": "safeApprove", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21861, + "src": "276:11:42", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20Token_$20240_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (contract IERC20Token,address,uint256)" + } + }, + "id": 17892, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "276:37:42", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 17893, + "nodeType": "ExpressionStatement", + "src": "276:37:42" + } + ] + }, + "documentation": null, + "id": 17895, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "testSafeApprove", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 17886, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 17881, + "name": "_token", + "nodeType": "VariableDeclaration", + "scope": 17895, + "src": "205:18:42", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + "typeName": { + "contractScope": null, + "id": 17880, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "205:11:42", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 17883, + "name": "_spender", + "nodeType": "VariableDeclaration", + "scope": 17895, + "src": "227:16:42", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 17882, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "227:7:42", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 17885, + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 17895, + "src": "247:14:42", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17884, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "247:7:42", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "201:63:42" + }, + "payable": false, + "returnParameters": { + "id": 17887, + "nodeType": "ParameterList", + "parameters": [], + "src": "272:0:42" + }, + "scope": 17931, + "src": "177:140:42", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 17910, + "nodeType": "Block", + "src": "411:41:42", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 17905, + "name": "_token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17897, + "src": "428:6:42", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + { + "argumentTypes": null, + "id": 17906, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17899, + "src": "436:3:42", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 17907, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17901, + "src": "441:6:42", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 17904, + "name": "safeTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21881, + "src": "415:12:42", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20Token_$20240_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (contract IERC20Token,address,uint256)" + } + }, + "id": 17908, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "415:33:42", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 17909, + "nodeType": "ExpressionStatement", + "src": "415:33:42" + } + ] + }, + "documentation": null, + "id": 17911, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "testSafeTransfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 17902, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 17897, + "name": "_token", + "nodeType": "VariableDeclaration", + "scope": 17911, + "src": "349:18:42", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + "typeName": { + "contractScope": null, + "id": 17896, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "349:11:42", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 17899, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 17911, + "src": "371:11:42", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 17898, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "371:7:42", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 17901, + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 17911, + "src": "386:14:42", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17900, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "386:7:42", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "345:58:42" + }, + "payable": false, + "returnParameters": { + "id": 17903, + "nodeType": "ParameterList", + "parameters": [], + "src": "411:0:42" + }, + "scope": 17931, + "src": "320:132:42", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 17929, + "nodeType": "Block", + "src": "567:52:42", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 17923, + "name": "_token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17913, + "src": "588:6:42", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + { + "argumentTypes": null, + "id": 17924, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17915, + "src": "596:5:42", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 17925, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17917, + "src": "603:3:42", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 17926, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17919, + "src": "608:6:42", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 17922, + "name": "safeTransferFrom", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21904, + "src": "571:16:42", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20Token_$20240_$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (contract IERC20Token,address,address,uint256)" + } + }, + "id": 17927, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "571:44:42", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 17928, + "nodeType": "ExpressionStatement", + "src": "571:44:42" + } + ] + }, + "documentation": null, + "id": 17930, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "testSafeTransferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 17920, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 17913, + "name": "_token", + "nodeType": "VariableDeclaration", + "scope": 17930, + "src": "488:18:42", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + "typeName": { + "contractScope": null, + "id": 17912, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "488:11:42", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 17915, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 17930, + "src": "510:13:42", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 17914, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "510:7:42", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 17917, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 17930, + "src": "527:11:42", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 17916, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "527:7:42", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 17919, + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 17930, + "src": "542:14:42", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17918, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "542:7:42", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "484:75:42" + }, + "payable": false, + "returnParameters": { + "id": 17921, + "nodeType": "ParameterList", + "parameters": [], + "src": "567:0:42" + }, + "scope": 17931, + "src": "455:164:42", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 17932, + "src": "132:489:42" + } + ], + "src": "0:622:42" + }, + "id": 42 + }, + "solidity/contracts/helpers/TestTokens.sol": { + "ast": { + "absolutePath": "solidity/contracts/helpers/TestTokens.sol", + "exportedSymbols": { + "NonStandardToken": [ + 18131 + ], + "NonStandardTokenDetailed": [ + 18167 + ], + "TestNonStandardToken": [ + 18258 + ], + "TestNonStandardTokenWithoutDecimals": [ + 18328 + ], + "TestStandardToken": [ + 18440 + ] + }, + "id": 18441, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 17933, + "literals": [ + "solidity", + "0.4", + ".26" + ], + "nodeType": "PragmaDirective", + "src": "0:23:43" + }, + { + "absolutePath": "solidity/contracts/utility/Utils.sol", + "file": "../utility/Utils.sol", + "id": 17934, + "nodeType": "ImportDirective", + "scope": 18441, + "sourceUnit": 22053, + "src": "24:30:43", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "solidity/contracts/utility/SafeMath.sol", + "file": "../utility/SafeMath.sol", + "id": 17935, + "nodeType": "ImportDirective", + "scope": 18441, + "sourceUnit": 21818, + "src": "55:33:43", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 17936, + "name": "Utils", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 22052, + "src": "170:5:43", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Utils_$22052", + "typeString": "contract Utils" + } + }, + "id": 17937, + "nodeType": "InheritanceSpecifier", + "src": "170:5:43" + } + ], + "contractDependencies": [ + 22052 + ], + "contractKind": "contract", + "documentation": "ERC20 Non-Standard Token implementation", + "fullyImplemented": true, + "id": 18131, + "linearizedBaseContracts": [ + 18131, + 22052 + ], + "name": "NonStandardToken", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 17940, + "libraryName": { + "contractScope": null, + "id": 17938, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 21817, + "src": "185:8:43", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$21817", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "179:27:43", + "typeName": { + "id": 17939, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "198:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "constant": false, + "id": 17942, + "name": "totalSupply", + "nodeType": "VariableDeclaration", + "scope": 18131, + "src": "209:26:43", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17941, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "209:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 17946, + "name": "balanceOf", + "nodeType": "VariableDeclaration", + "scope": 18131, + "src": "238:44:43", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 17945, + "keyType": { + "id": 17943, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "246:7:43", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "238:27:43", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 17944, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "257:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 17952, + "name": "allowance", + "nodeType": "VariableDeclaration", + "scope": 18131, + "src": "285:64:43", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "typeName": { + "id": 17951, + "keyType": { + "id": 17947, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "293:7:43", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "285:47:43", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "valueType": { + "id": 17950, + "keyType": { + "id": 17948, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "312:7:43", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "304:27:43", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 17949, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "323:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + } + }, + "value": null, + "visibility": "public" + }, + { + "anonymous": false, + "documentation": null, + "id": 17960, + "name": "Transfer", + "nodeType": "EventDefinition", + "parameters": { + "id": 17959, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 17954, + "indexed": true, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 17960, + "src": "368:21:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 17953, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "368:7:43", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 17956, + "indexed": true, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 17960, + "src": "391:19:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 17955, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "391:7:43", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 17958, + "indexed": false, + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 17960, + "src": "412:14:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17957, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "412:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "367:60:43" + }, + "src": "353:75:43" + }, + { + "anonymous": false, + "documentation": null, + "id": 17968, + "name": "Approval", + "nodeType": "EventDefinition", + "parameters": { + "id": 17967, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 17962, + "indexed": true, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 17968, + "src": "445:22:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 17961, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "445:7:43", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 17964, + "indexed": true, + "name": "_spender", + "nodeType": "VariableDeclaration", + "scope": 17968, + "src": "469:24:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 17963, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "469:7:43", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 17966, + "indexed": false, + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 17968, + "src": "495:14:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17965, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "495:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "444:66:43" + }, + "src": "430:81:43" + }, + { + "body": { + "id": 17984, + "nodeType": "Block", + "src": "658:64:43", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 17975, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 17973, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17942, + "src": "662:11:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 17974, + "name": "_supply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17970, + "src": "676:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "662:21:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 17976, + "nodeType": "ExpressionStatement", + "src": "662:21:43" + }, + { + "expression": { + "argumentTypes": null, + "id": 17982, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 17977, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17946, + "src": "687:9:43", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 17980, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 17978, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22338, + "src": "697:3:43", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 17979, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "697:10:43", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "687:21:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 17981, + "name": "_supply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17970, + "src": "711:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "687:31:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 17983, + "nodeType": "ExpressionStatement", + "src": "687:31:43" + } + ] + }, + "documentation": "@dev initializes a new NonStandardToken instance\n\t * @param _supply initial supply", + "id": 17985, + "implemented": true, + "isConstructor": true, + "isDeclaredConst": false, + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 17971, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 17970, + "name": "_supply", + "nodeType": "VariableDeclaration", + "scope": 17985, + "src": "632:15:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17969, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "632:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "631:17:43" + }, + "payable": false, + "returnParameters": { + "id": 17972, + "nodeType": "ParameterList", + "parameters": [], + "src": "658:0:43" + }, + "scope": 18131, + "src": "620:102:43", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 18026, + "nodeType": "Block", + "src": "1057:154:43", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 18006, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 17995, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17946, + "src": "1061:9:43", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 17998, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 17996, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22338, + "src": "1071:3:43", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 17997, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1071:10:43", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1061:21:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 18004, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17989, + "src": "1111:6:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 17999, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17946, + "src": "1085:9:43", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 18002, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 18000, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22338, + "src": "1095:3:43", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 18001, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1095:10:43", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1085:21:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 18003, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 21758, + "src": "1085:25:43", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 18005, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1085:33:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1061:57:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 18007, + "nodeType": "ExpressionStatement", + "src": "1061:57:43" + }, + { + "expression": { + "argumentTypes": null, + "id": 18017, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 18008, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17946, + "src": "1122:9:43", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 18010, + "indexExpression": { + "argumentTypes": null, + "id": 18009, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17987, + "src": "1132:3:43", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1122:14:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 18015, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17989, + "src": "1158:6:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 18011, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17946, + "src": "1139:9:43", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 18013, + "indexExpression": { + "argumentTypes": null, + "id": 18012, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17987, + "src": "1149:3:43", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1139:14:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 18014, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 21737, + "src": "1139:18:43", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 18016, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1139:26:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1122:43:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 18018, + "nodeType": "ExpressionStatement", + "src": "1122:43:43" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 18020, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22338, + "src": "1183:3:43", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 18021, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1183:10:43", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 18022, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17987, + "src": "1195:3:43", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 18023, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17989, + "src": "1200:6:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 18019, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17960, + "src": "1174:8:43", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 18024, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1174:33:43", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 18025, + "nodeType": "EmitStatement", + "src": "1169:38:43" + } + ] + }, + "documentation": "@dev send coins\nthrows on any error rather then return a false flag to minimize user errors\n\t * @param _to target address\n@param _value transfer amount\n\t * @return true if the transfer was successful, false if it wasn't", + "id": 18027, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 17992, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17987, + "src": "1052:3:43", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 17993, + "modifierName": { + "argumentTypes": null, + "id": 17991, + "name": "validAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22011, + "src": "1039:12:43", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_address_$", + "typeString": "modifier (address)" + } + }, + "nodeType": "ModifierInvocation", + "src": "1039:17:43" + } + ], + "name": "_transfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 17990, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 17987, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 18027, + "src": "1001:11:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 17986, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1001:7:43", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 17989, + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 18027, + "src": "1014:14:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17988, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1014:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1000:29:43" + }, + "payable": false, + "returnParameters": { + "id": 17994, + "nodeType": "ParameterList", + "parameters": [], + "src": "1057:0:43" + }, + "scope": 18131, + "src": "982:229:43", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 18087, + "nodeType": "Block", + "src": "1664:214:43", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 18057, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 18042, + "name": "allowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17952, + "src": "1668:9:43", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 18046, + "indexExpression": { + "argumentTypes": null, + "id": 18043, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18029, + "src": "1678:5:43", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1668:16:43", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 18047, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 18044, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22338, + "src": "1685:3:43", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 18045, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1685:10:43", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1668:28:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 18055, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18033, + "src": "1732:6:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 18048, + "name": "allowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17952, + "src": "1699:9:43", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 18050, + "indexExpression": { + "argumentTypes": null, + "id": 18049, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18029, + "src": "1709:5:43", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1699:16:43", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 18053, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 18051, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22338, + "src": "1716:3:43", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 18052, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1716:10:43", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1699:28:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 18054, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 21758, + "src": "1699:32:43", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 18056, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1699:40:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1668:71:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 18058, + "nodeType": "ExpressionStatement", + "src": "1668:71:43" + }, + { + "expression": { + "argumentTypes": null, + "id": 18068, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 18059, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17946, + "src": "1743:9:43", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 18061, + "indexExpression": { + "argumentTypes": null, + "id": 18060, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18029, + "src": "1753:5:43", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1743:16:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 18066, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18033, + "src": "1783:6:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 18062, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17946, + "src": "1762:9:43", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 18064, + "indexExpression": { + "argumentTypes": null, + "id": 18063, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18029, + "src": "1772:5:43", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1762:16:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 18065, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 21758, + "src": "1762:20:43", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 18067, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1762:28:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1743:47:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 18069, + "nodeType": "ExpressionStatement", + "src": "1743:47:43" + }, + { + "expression": { + "argumentTypes": null, + "id": 18079, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 18070, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17946, + "src": "1794:9:43", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 18072, + "indexExpression": { + "argumentTypes": null, + "id": 18071, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18031, + "src": "1804:3:43", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1794:14:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 18077, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18033, + "src": "1830:6:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 18073, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17946, + "src": "1811:9:43", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 18075, + "indexExpression": { + "argumentTypes": null, + "id": 18074, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18031, + "src": "1821:3:43", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1811:14:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 18076, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 21737, + "src": "1811:18:43", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 18078, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1811:26:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1794:43:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 18080, + "nodeType": "ExpressionStatement", + "src": "1794:43:43" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 18082, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18029, + "src": "1855:5:43", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 18083, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18031, + "src": "1862:3:43", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 18084, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18033, + "src": "1867:6:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 18081, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17960, + "src": "1846:8:43", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 18085, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1846:28:43", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 18086, + "nodeType": "EmitStatement", + "src": "1841:33:43" + } + ] + }, + "documentation": "@dev an account/contract attempts to get the coins\nthrows on any error rather then return a false flag to minimize user errors\n\t * @param _from source address\n@param _to target address\n@param _value transfer amount\n\t * @return true if the transfer was successful, false if it wasn't", + "id": 18088, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 18036, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18029, + "src": "1639:5:43", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 18037, + "modifierName": { + "argumentTypes": null, + "id": 18035, + "name": "validAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22011, + "src": "1626:12:43", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_address_$", + "typeString": "modifier (address)" + } + }, + "nodeType": "ModifierInvocation", + "src": "1626:19:43" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 18039, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18031, + "src": "1659:3:43", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 18040, + "modifierName": { + "argumentTypes": null, + "id": 18038, + "name": "validAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22011, + "src": "1646:12:43", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_address_$", + "typeString": "modifier (address)" + } + }, + "nodeType": "ModifierInvocation", + "src": "1646:17:43" + } + ], + "name": "_transferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 18034, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 18029, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 18088, + "src": "1567:13:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 18028, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1567:7:43", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 18031, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 18088, + "src": "1584:11:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 18030, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1584:7:43", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 18033, + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 18088, + "src": "1599:14:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 18032, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1599:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1563:53:43" + }, + "payable": false, + "returnParameters": { + "id": 18041, + "nodeType": "ParameterList", + "parameters": [], + "src": "1664:0:43" + }, + "scope": 18131, + "src": "1541:337:43", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 18129, + "nodeType": "Block", + "src": "2601:279:43", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 18110, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 18101, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 18099, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18092, + "src": "2732:6:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 18100, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2742:1:43", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "2732:11:43", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 18109, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 18102, + "name": "allowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17952, + "src": "2747:9:43", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 18105, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 18103, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22338, + "src": "2757:3:43", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 18104, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2757:10:43", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2747:21:43", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 18107, + "indexExpression": { + "argumentTypes": null, + "id": 18106, + "name": "_spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18090, + "src": "2769:8:43", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2747:31:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 18108, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2782:1:43", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "2747:36:43", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "2732:51:43", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 18098, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 22341, + 22342 + ], + "referencedDeclaration": 22341, + "src": "2724:7:43", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 18111, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2724:60:43", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 18112, + "nodeType": "ExpressionStatement", + "src": "2724:60:43" + }, + { + "expression": { + "argumentTypes": null, + "id": 18120, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 18113, + "name": "allowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17952, + "src": "2789:9:43", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 18117, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 18114, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22338, + "src": "2799:3:43", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 18115, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2799:10:43", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2789:21:43", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 18118, + "indexExpression": { + "argumentTypes": null, + "id": 18116, + "name": "_spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18090, + "src": "2811:8:43", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2789:31:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 18119, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18092, + "src": "2823:6:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2789:40:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 18121, + "nodeType": "ExpressionStatement", + "src": "2789:40:43" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 18123, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22338, + "src": "2847:3:43", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 18124, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2847:10:43", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 18125, + "name": "_spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18090, + "src": "2859:8:43", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 18126, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18092, + "src": "2869:6:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 18122, + "name": "Approval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17968, + "src": "2838:8:43", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 18127, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2838:38:43", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 18128, + "nodeType": "EmitStatement", + "src": "2833:43:43" + } + ] + }, + "documentation": "@dev allow another account/contract to spend some tokens on your behalf\nthrows on any error rather then return a false flag to minimize user errors\n\t * also, to minimize the risk of the approve/transferFrom attack vector\n(see https://docs.google.com/document/d/1YLPtQxZu1UAvO9cZ1O2RPXBbT0mooh4DYKjA_jp-RLM/), approve has to be called twice\nin 2 separate transactions - once to change the allowance to 0 and secondly to change it to the new allowance value\n\t * @param _spender approved address\n@param _value allowance amount\n\t * @return true if the approval was successful, false if it wasn't", + "id": 18130, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 18095, + "name": "_spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18090, + "src": "2591:8:43", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 18096, + "modifierName": { + "argumentTypes": null, + "id": 18094, + "name": "validAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22011, + "src": "2578:12:43", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_address_$", + "typeString": "modifier (address)" + } + }, + "nodeType": "ModifierInvocation", + "src": "2578:22:43" + } + ], + "name": "_approve", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 18093, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 18090, + "name": "_spender", + "nodeType": "VariableDeclaration", + "scope": 18130, + "src": "2535:16:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 18089, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2535:7:43", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 18092, + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 18130, + "src": "2553:14:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 18091, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2553:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2534:34:43" + }, + "payable": false, + "returnParameters": { + "id": 18097, + "nodeType": "ParameterList", + "parameters": [], + "src": "2601:0:43" + }, + "scope": 18131, + "src": "2517:363:43", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + } + ], + "scope": 18441, + "src": "141:2741:43" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 18132, + "name": "NonStandardToken", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 18131, + "src": "2921:16:43", + "typeDescriptions": { + "typeIdentifier": "t_contract$_NonStandardToken_$18131", + "typeString": "contract NonStandardToken" + } + }, + "id": 18133, + "nodeType": "InheritanceSpecifier", + "src": "2921:16:43" + } + ], + "contractDependencies": [ + 18131, + 22052 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 18167, + "linearizedBaseContracts": [ + 18167, + 18131, + 22052 + ], + "name": "NonStandardTokenDetailed", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 18135, + "name": "name", + "nodeType": "VariableDeclaration", + "scope": 18167, + "src": "2941:18:43", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 18134, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2941:6:43", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 18137, + "name": "symbol", + "nodeType": "VariableDeclaration", + "scope": 18167, + "src": "2962:20:43", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 18136, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2962:6:43", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 18139, + "name": "decimals", + "nodeType": "VariableDeclaration", + "scope": 18167, + "src": "2985:21:43", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 18138, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "2985:5:43", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "public" + }, + { + "body": { + "id": 18165, + "nodeType": "Block", + "src": "3349:64:43", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 18155, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 18153, + "name": "name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18135, + "src": "3353:4:43", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 18154, + "name": "_name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18141, + "src": "3360:5:43", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "3353:12:43", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 18156, + "nodeType": "ExpressionStatement", + "src": "3353:12:43" + }, + { + "expression": { + "argumentTypes": null, + "id": 18159, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 18157, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18137, + "src": "3369:6:43", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 18158, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18143, + "src": "3378:7:43", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "3369:16:43", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 18160, + "nodeType": "ExpressionStatement", + "src": "3369:16:43" + }, + { + "expression": { + "argumentTypes": null, + "id": 18163, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 18161, + "name": "decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18139, + "src": "3389:8:43", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 18162, + "name": "_decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18145, + "src": "3400:9:43", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "3389:20:43", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "id": 18164, + "nodeType": "ExpressionStatement", + "src": "3389:20:43" + } + ] + }, + "documentation": "@dev initializes a new NonStandardToken instance\n\t * @param _name token name\n@param _symbol token symbol\n@param _decimals decimal points\n@param _supply initial supply", + "id": 18166, + "implemented": true, + "isConstructor": true, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 18150, + "name": "_supply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18147, + "src": "3340:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 18151, + "modifierName": { + "argumentTypes": null, + "id": 18149, + "name": "NonStandardToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18131, + "src": "3323:16:43", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_NonStandardToken_$18131_$", + "typeString": "type(contract NonStandardToken)" + } + }, + "nodeType": "ModifierInvocation", + "src": "3323:25:43" + } + ], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 18148, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 18141, + "name": "_name", + "nodeType": "VariableDeclaration", + "scope": 18166, + "src": "3242:12:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 18140, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3242:6:43", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 18143, + "name": "_symbol", + "nodeType": "VariableDeclaration", + "scope": 18166, + "src": "3258:14:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 18142, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3258:6:43", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 18145, + "name": "_decimals", + "nodeType": "VariableDeclaration", + "scope": 18166, + "src": "3276:15:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 18144, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "3276:5:43", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 18147, + "name": "_supply", + "nodeType": "VariableDeclaration", + "scope": 18166, + "src": "3295:15:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 18146, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3295:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3238:75:43" + }, + "payable": false, + "returnParameters": { + "id": 18152, + "nodeType": "ParameterList", + "parameters": [], + "src": "3349:0:43" + }, + "scope": 18167, + "src": "3227:186:43", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + } + ], + "scope": 18441, + "src": "2884:531:43" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 18168, + "name": "NonStandardTokenDetailed", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 18167, + "src": "3450:24:43", + "typeDescriptions": { + "typeIdentifier": "t_contract$_NonStandardTokenDetailed_$18167", + "typeString": "contract NonStandardTokenDetailed" + } + }, + "id": 18169, + "nodeType": "InheritanceSpecifier", + "src": "3450:24:43" + } + ], + "contractDependencies": [ + 18131, + 18167, + 22052 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 18258, + "linearizedBaseContracts": [ + 18258, + 18167, + 18131, + 22052 + ], + "name": "TestNonStandardToken", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 18171, + "name": "ok", + "nodeType": "VariableDeclaration", + "scope": 18258, + "src": "3478:14:43", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 18170, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3478:4:43", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "public" + }, + { + "body": { + "id": 18192, + "nodeType": "Block", + "src": "3651:17:43", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "74727565", + "id": 18189, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3659:4:43", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 18188, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18203, + "src": "3655:3:43", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bool_$returns$__$", + "typeString": "function (bool)" + } + }, + "id": 18190, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3655:9:43", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 18191, + "nodeType": "ExpressionStatement", + "src": "3655:9:43" + } + ] + }, + "documentation": null, + "id": 18193, + "implemented": true, + "isConstructor": true, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 18182, + "name": "_name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18173, + "src": "3615:5:43", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "argumentTypes": null, + "id": 18183, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18175, + "src": "3622:7:43", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "argumentTypes": null, + "id": 18184, + "name": "_decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18177, + "src": "3631:9:43", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + { + "argumentTypes": null, + "id": 18185, + "name": "_supply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18179, + "src": "3642:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 18186, + "modifierName": { + "argumentTypes": null, + "id": 18181, + "name": "NonStandardTokenDetailed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18167, + "src": "3590:24:43", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_NonStandardTokenDetailed_$18167_$", + "typeString": "type(contract NonStandardTokenDetailed)" + } + }, + "nodeType": "ModifierInvocation", + "src": "3590:60:43" + } + ], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 18180, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 18173, + "name": "_name", + "nodeType": "VariableDeclaration", + "scope": 18193, + "src": "3511:12:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 18172, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3511:6:43", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 18175, + "name": "_symbol", + "nodeType": "VariableDeclaration", + "scope": 18193, + "src": "3527:14:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 18174, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3527:6:43", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 18177, + "name": "_decimals", + "nodeType": "VariableDeclaration", + "scope": 18193, + "src": "3545:15:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 18176, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "3545:5:43", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 18179, + "name": "_supply", + "nodeType": "VariableDeclaration", + "scope": 18193, + "src": "3564:15:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 18178, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3564:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3507:75:43" + }, + "payable": false, + "returnParameters": { + "id": 18187, + "nodeType": "ParameterList", + "parameters": [], + "src": "3651:0:43" + }, + "scope": 18258, + "src": "3496:172:43", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 18202, + "nodeType": "Block", + "src": "3701:16:43", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 18200, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 18198, + "name": "ok", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18171, + "src": "3705:2:43", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 18199, + "name": "_ok", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18195, + "src": "3710:3:43", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "3705:8:43", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 18201, + "nodeType": "ExpressionStatement", + "src": "3705:8:43" + } + ] + }, + "documentation": null, + "id": 18203, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "set", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 18196, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 18195, + "name": "_ok", + "nodeType": "VariableDeclaration", + "scope": 18203, + "src": "3684:8:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 18194, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3684:4:43", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3683:10:43" + }, + "payable": false, + "returnParameters": { + "id": 18197, + "nodeType": "ParameterList", + "parameters": [], + "src": "3701:0:43" + }, + "scope": 18258, + "src": "3671:46:43", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 18219, + "nodeType": "Block", + "src": "3778:49:43", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 18211, + "name": "_spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18205, + "src": "3791:8:43", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 18212, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18207, + "src": "3801:6:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 18210, + "name": "_approve", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18130, + "src": "3782:8:43", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 18213, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3782:26:43", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 18214, + "nodeType": "ExpressionStatement", + "src": "3782:26:43" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 18216, + "name": "ok", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18171, + "src": "3820:2:43", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 18215, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 22341, + 22342 + ], + "referencedDeclaration": 22341, + "src": "3812:7:43", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 18217, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3812:11:43", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 18218, + "nodeType": "ExpressionStatement", + "src": "3812:11:43" + } + ] + }, + "documentation": null, + "id": 18220, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 18208, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 18205, + "name": "_spender", + "nodeType": "VariableDeclaration", + "scope": 18220, + "src": "3737:16:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 18204, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3737:7:43", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 18207, + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 18220, + "src": "3755:14:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 18206, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3755:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3736:34:43" + }, + "payable": false, + "returnParameters": { + "id": 18209, + "nodeType": "ParameterList", + "parameters": [], + "src": "3778:0:43" + }, + "scope": 18258, + "src": "3720:107:43", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 18236, + "nodeType": "Block", + "src": "3884:45:43", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 18228, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18222, + "src": "3898:3:43", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 18229, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18224, + "src": "3903:6:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 18227, + "name": "_transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18027, + "src": "3888:9:43", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 18230, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3888:22:43", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 18231, + "nodeType": "ExpressionStatement", + "src": "3888:22:43" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 18233, + "name": "ok", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18171, + "src": "3922:2:43", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 18232, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 22341, + 22342 + ], + "referencedDeclaration": 22341, + "src": "3914:7:43", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 18234, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3914:11:43", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 18235, + "nodeType": "ExpressionStatement", + "src": "3914:11:43" + } + ] + }, + "documentation": null, + "id": 18237, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 18225, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 18222, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 18237, + "src": "3848:11:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 18221, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3848:7:43", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 18224, + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 18237, + "src": "3861:14:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 18223, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3861:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3847:29:43" + }, + "payable": false, + "returnParameters": { + "id": 18226, + "nodeType": "ParameterList", + "parameters": [], + "src": "3884:0:43" + }, + "scope": 18258, + "src": "3830:99:43", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 18256, + "nodeType": "Block", + "src": "4014:56:43", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 18247, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18239, + "src": "4032:5:43", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 18248, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18241, + "src": "4039:3:43", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 18249, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18243, + "src": "4044:6:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 18246, + "name": "_transferFrom", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18088, + "src": "4018:13:43", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 18250, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4018:33:43", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 18251, + "nodeType": "ExpressionStatement", + "src": "4018:33:43" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 18253, + "name": "ok", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18171, + "src": "4063:2:43", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 18252, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 22341, + 22342 + ], + "referencedDeclaration": 22341, + "src": "4055:7:43", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 18254, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4055:11:43", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 18255, + "nodeType": "ExpressionStatement", + "src": "4055:11:43" + } + ] + }, + "documentation": null, + "id": 18257, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 18244, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 18239, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 18257, + "src": "3957:13:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 18238, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3957:7:43", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 18241, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 18257, + "src": "3974:11:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 18240, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3974:7:43", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 18243, + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 18257, + "src": "3989:14:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 18242, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3989:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3953:53:43" + }, + "payable": false, + "returnParameters": { + "id": 18245, + "nodeType": "ParameterList", + "parameters": [], + "src": "4014:0:43" + }, + "scope": 18258, + "src": "3932:138:43", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 18441, + "src": "3417:655:43" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 18259, + "name": "NonStandardToken", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 18131, + "src": "4122:16:43", + "typeDescriptions": { + "typeIdentifier": "t_contract$_NonStandardToken_$18131", + "typeString": "contract NonStandardToken" + } + }, + "id": 18260, + "nodeType": "InheritanceSpecifier", + "src": "4122:16:43" + } + ], + "contractDependencies": [ + 18131, + 22052 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 18328, + "linearizedBaseContracts": [ + 18328, + 18131, + 22052 + ], + "name": "TestNonStandardTokenWithoutDecimals", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 18262, + "name": "name", + "nodeType": "VariableDeclaration", + "scope": 18328, + "src": "4142:18:43", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 18261, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "4142:6:43", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 18264, + "name": "symbol", + "nodeType": "VariableDeclaration", + "scope": 18328, + "src": "4163:20:43", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 18263, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "4163:6:43", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "public" + }, + { + "body": { + "id": 18284, + "nodeType": "Block", + "src": "4288:40:43", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 18278, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 18276, + "name": "name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18262, + "src": "4292:4:43", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 18277, + "name": "_name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18266, + "src": "4299:5:43", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "4292:12:43", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 18279, + "nodeType": "ExpressionStatement", + "src": "4292:12:43" + }, + { + "expression": { + "argumentTypes": null, + "id": 18282, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 18280, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18264, + "src": "4308:6:43", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 18281, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18268, + "src": "4317:7:43", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "4308:16:43", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 18283, + "nodeType": "ExpressionStatement", + "src": "4308:16:43" + } + ] + }, + "documentation": null, + "id": 18285, + "implemented": true, + "isConstructor": true, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 18273, + "name": "_supply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18270, + "src": "4279:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 18274, + "modifierName": { + "argumentTypes": null, + "id": 18272, + "name": "NonStandardToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18131, + "src": "4262:16:43", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_NonStandardToken_$18131_$", + "typeString": "type(contract NonStandardToken)" + } + }, + "nodeType": "ModifierInvocation", + "src": "4262:25:43" + } + ], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 18271, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 18266, + "name": "_name", + "nodeType": "VariableDeclaration", + "scope": 18285, + "src": "4202:12:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 18265, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "4202:6:43", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 18268, + "name": "_symbol", + "nodeType": "VariableDeclaration", + "scope": 18285, + "src": "4218:14:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 18267, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "4218:6:43", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 18270, + "name": "_supply", + "nodeType": "VariableDeclaration", + "scope": 18285, + "src": "4236:15:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 18269, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4236:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4198:56:43" + }, + "payable": false, + "returnParameters": { + "id": 18275, + "nodeType": "ParameterList", + "parameters": [], + "src": "4288:0:43" + }, + "scope": 18328, + "src": "4187:141:43", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 18297, + "nodeType": "Block", + "src": "4389:34:43", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 18293, + "name": "_spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18287, + "src": "4402:8:43", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 18294, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18289, + "src": "4412:6:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 18292, + "name": "_approve", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18130, + "src": "4393:8:43", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 18295, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4393:26:43", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 18296, + "nodeType": "ExpressionStatement", + "src": "4393:26:43" + } + ] + }, + "documentation": null, + "id": 18298, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 18290, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 18287, + "name": "_spender", + "nodeType": "VariableDeclaration", + "scope": 18298, + "src": "4348:16:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 18286, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4348:7:43", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 18289, + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 18298, + "src": "4366:14:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 18288, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4366:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4347:34:43" + }, + "payable": false, + "returnParameters": { + "id": 18291, + "nodeType": "ParameterList", + "parameters": [], + "src": "4389:0:43" + }, + "scope": 18328, + "src": "4331:92:43", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 18310, + "nodeType": "Block", + "src": "4480:30:43", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 18306, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18300, + "src": "4494:3:43", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 18307, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18302, + "src": "4499:6:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 18305, + "name": "_transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18027, + "src": "4484:9:43", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 18308, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4484:22:43", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 18309, + "nodeType": "ExpressionStatement", + "src": "4484:22:43" + } + ] + }, + "documentation": null, + "id": 18311, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 18303, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 18300, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 18311, + "src": "4444:11:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 18299, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4444:7:43", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 18302, + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 18311, + "src": "4457:14:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 18301, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4457:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4443:29:43" + }, + "payable": false, + "returnParameters": { + "id": 18304, + "nodeType": "ParameterList", + "parameters": [], + "src": "4480:0:43" + }, + "scope": 18328, + "src": "4426:84:43", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 18326, + "nodeType": "Block", + "src": "4595:41:43", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 18321, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18313, + "src": "4613:5:43", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 18322, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18315, + "src": "4620:3:43", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 18323, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18317, + "src": "4625:6:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 18320, + "name": "_transferFrom", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18088, + "src": "4599:13:43", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 18324, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4599:33:43", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 18325, + "nodeType": "ExpressionStatement", + "src": "4599:33:43" + } + ] + }, + "documentation": null, + "id": 18327, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 18318, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 18313, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 18327, + "src": "4538:13:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 18312, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4538:7:43", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 18315, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 18327, + "src": "4555:11:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 18314, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4555:7:43", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 18317, + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 18327, + "src": "4570:14:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 18316, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4570:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4534:53:43" + }, + "payable": false, + "returnParameters": { + "id": 18319, + "nodeType": "ParameterList", + "parameters": [], + "src": "4595:0:43" + }, + "scope": 18328, + "src": "4513:123:43", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 18441, + "src": "4074:564:43" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 18329, + "name": "NonStandardTokenDetailed", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 18167, + "src": "4670:24:43", + "typeDescriptions": { + "typeIdentifier": "t_contract$_NonStandardTokenDetailed_$18167", + "typeString": "contract NonStandardTokenDetailed" + } + }, + "id": 18330, + "nodeType": "InheritanceSpecifier", + "src": "4670:24:43" + } + ], + "contractDependencies": [ + 18131, + 18167, + 22052 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 18440, + "linearizedBaseContracts": [ + 18440, + 18167, + 18131, + 22052 + ], + "name": "TestStandardToken", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 18332, + "name": "ok", + "nodeType": "VariableDeclaration", + "scope": 18440, + "src": "4698:14:43", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 18331, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4698:4:43", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 18334, + "name": "ret", + "nodeType": "VariableDeclaration", + "scope": 18440, + "src": "4715:15:43", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 18333, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4715:4:43", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "public" + }, + { + "body": { + "id": 18356, + "nodeType": "Block", + "src": "4889:23:43", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "74727565", + "id": 18352, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4897:4:43", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "argumentTypes": null, + "hexValue": "74727565", + "id": 18353, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4903:4:43", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 18351, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18373, + "src": "4893:3:43", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bool_$_t_bool_$returns$__$", + "typeString": "function (bool,bool)" + } + }, + "id": 18354, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4893:15:43", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 18355, + "nodeType": "ExpressionStatement", + "src": "4893:15:43" + } + ] + }, + "documentation": null, + "id": 18357, + "implemented": true, + "isConstructor": true, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 18345, + "name": "_name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18336, + "src": "4853:5:43", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "argumentTypes": null, + "id": 18346, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18338, + "src": "4860:7:43", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "argumentTypes": null, + "id": 18347, + "name": "_decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18340, + "src": "4869:9:43", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + { + "argumentTypes": null, + "id": 18348, + "name": "_supply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18342, + "src": "4880:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 18349, + "modifierName": { + "argumentTypes": null, + "id": 18344, + "name": "NonStandardTokenDetailed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18167, + "src": "4828:24:43", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_NonStandardTokenDetailed_$18167_$", + "typeString": "type(contract NonStandardTokenDetailed)" + } + }, + "nodeType": "ModifierInvocation", + "src": "4828:60:43" + } + ], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 18343, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 18336, + "name": "_name", + "nodeType": "VariableDeclaration", + "scope": 18357, + "src": "4749:12:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 18335, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "4749:6:43", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 18338, + "name": "_symbol", + "nodeType": "VariableDeclaration", + "scope": 18357, + "src": "4765:14:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 18337, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "4765:6:43", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 18340, + "name": "_decimals", + "nodeType": "VariableDeclaration", + "scope": 18357, + "src": "4783:15:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 18339, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "4783:5:43", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 18342, + "name": "_supply", + "nodeType": "VariableDeclaration", + "scope": 18357, + "src": "4802:15:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 18341, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4802:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4745:75:43" + }, + "payable": false, + "returnParameters": { + "id": 18350, + "nodeType": "ParameterList", + "parameters": [], + "src": "4889:0:43" + }, + "scope": 18440, + "src": "4734:178:43", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 18372, + "nodeType": "Block", + "src": "4956:30:43", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 18366, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 18364, + "name": "ok", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18332, + "src": "4960:2:43", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 18365, + "name": "_ok", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18359, + "src": "4965:3:43", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "4960:8:43", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 18367, + "nodeType": "ExpressionStatement", + "src": "4960:8:43" + }, + { + "expression": { + "argumentTypes": null, + "id": 18370, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 18368, + "name": "ret", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18334, + "src": "4972:3:43", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 18369, + "name": "_ret", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18361, + "src": "4978:4:43", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "4972:10:43", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 18371, + "nodeType": "ExpressionStatement", + "src": "4972:10:43" + } + ] + }, + "documentation": null, + "id": 18373, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "set", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 18362, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 18359, + "name": "_ok", + "nodeType": "VariableDeclaration", + "scope": 18373, + "src": "4928:8:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 18358, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4928:4:43", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 18361, + "name": "_ret", + "nodeType": "VariableDeclaration", + "scope": 18373, + "src": "4938:9:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 18360, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4938:4:43", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4927:21:43" + }, + "payable": false, + "returnParameters": { + "id": 18363, + "nodeType": "ParameterList", + "parameters": [], + "src": "4956:0:43" + }, + "scope": 18440, + "src": "4915:71:43", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 18393, + "nodeType": "Block", + "src": "5062:63:43", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 18383, + "name": "_spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18375, + "src": "5075:8:43", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 18384, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18377, + "src": "5085:6:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 18382, + "name": "_approve", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18130, + "src": "5066:8:43", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 18385, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5066:26:43", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 18386, + "nodeType": "ExpressionStatement", + "src": "5066:26:43" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 18388, + "name": "ok", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18332, + "src": "5104:2:43", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 18387, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 22341, + 22342 + ], + "referencedDeclaration": 22341, + "src": "5096:7:43", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 18389, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5096:11:43", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 18390, + "nodeType": "ExpressionStatement", + "src": "5096:11:43" + }, + { + "expression": { + "argumentTypes": null, + "id": 18391, + "name": "ret", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18334, + "src": "5118:3:43", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 18381, + "id": 18392, + "nodeType": "Return", + "src": "5111:10:43" + } + ] + }, + "documentation": null, + "id": 18394, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 18378, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 18375, + "name": "_spender", + "nodeType": "VariableDeclaration", + "scope": 18394, + "src": "5006:16:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 18374, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5006:7:43", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 18377, + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 18394, + "src": "5024:14:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 18376, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5024:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5005:34:43" + }, + "payable": false, + "returnParameters": { + "id": 18381, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 18380, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 18394, + "src": "5056:4:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 18379, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "5056:4:43", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5055:6:43" + }, + "scope": 18440, + "src": "4989:136:43", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 18414, + "nodeType": "Block", + "src": "5197:59:43", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 18404, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18396, + "src": "5211:3:43", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 18405, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18398, + "src": "5216:6:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 18403, + "name": "_transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18027, + "src": "5201:9:43", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 18406, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5201:22:43", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 18407, + "nodeType": "ExpressionStatement", + "src": "5201:22:43" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 18409, + "name": "ok", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18332, + "src": "5235:2:43", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 18408, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 22341, + 22342 + ], + "referencedDeclaration": 22341, + "src": "5227:7:43", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 18410, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5227:11:43", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 18411, + "nodeType": "ExpressionStatement", + "src": "5227:11:43" + }, + { + "expression": { + "argumentTypes": null, + "id": 18412, + "name": "ret", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18334, + "src": "5249:3:43", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 18402, + "id": 18413, + "nodeType": "Return", + "src": "5242:10:43" + } + ] + }, + "documentation": null, + "id": 18415, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 18399, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 18396, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 18415, + "src": "5146:11:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 18395, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5146:7:43", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 18398, + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 18415, + "src": "5159:14:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 18397, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5159:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5145:29:43" + }, + "payable": false, + "returnParameters": { + "id": 18402, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 18401, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 18415, + "src": "5191:4:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 18400, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "5191:4:43", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5190:6:43" + }, + "scope": 18440, + "src": "5128:128:43", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 18438, + "nodeType": "Block", + "src": "5356:70:43", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 18427, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18417, + "src": "5374:5:43", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 18428, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18419, + "src": "5381:3:43", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 18429, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18421, + "src": "5386:6:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 18426, + "name": "_transferFrom", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18088, + "src": "5360:13:43", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 18430, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5360:33:43", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 18431, + "nodeType": "ExpressionStatement", + "src": "5360:33:43" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 18433, + "name": "ok", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18332, + "src": "5405:2:43", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 18432, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 22341, + 22342 + ], + "referencedDeclaration": 22341, + "src": "5397:7:43", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 18434, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5397:11:43", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 18435, + "nodeType": "ExpressionStatement", + "src": "5397:11:43" + }, + { + "expression": { + "argumentTypes": null, + "id": 18436, + "name": "ret", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18334, + "src": "5419:3:43", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 18425, + "id": 18437, + "nodeType": "Return", + "src": "5412:10:43" + } + ] + }, + "documentation": null, + "id": 18439, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 18422, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 18417, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 18439, + "src": "5284:13:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 18416, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5284:7:43", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 18419, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 18439, + "src": "5301:11:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 18418, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5301:7:43", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 18421, + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 18439, + "src": "5316:14:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 18420, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5316:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5280:53:43" + }, + "payable": false, + "returnParameters": { + "id": 18425, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 18424, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 18439, + "src": "5350:4:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 18423, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "5350:4:43", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5349:6:43" + }, + "scope": 18440, + "src": "5259:167:43", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 18441, + "src": "4640:788:43" + } + ], + "src": "0:5429:43" + }, + "id": 43 + }, + "solidity/contracts/helpers/TestTypedConverterAnchorFactory.sol": { + "ast": { + "absolutePath": "solidity/contracts/helpers/TestTypedConverterAnchorFactory.sol", + "exportedSymbols": { + "TestTypedConverterAnchorFactory": [ + 18498 + ] + }, + "id": 18499, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 18442, + "literals": [ + "solidity", + "0.4", + ".26" + ], + "nodeType": "PragmaDirective", + "src": "0:23:44" + }, + { + "absolutePath": "solidity/contracts/converter/interfaces/IConverterAnchor.sol", + "file": "../converter/interfaces/IConverterAnchor.sol", + "id": 18443, + "nodeType": "ImportDirective", + "scope": 18499, + "sourceUnit": 11827, + "src": "24:54:44", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "solidity/contracts/converter/interfaces/ITypedConverterAnchorFactory.sol", + "file": "../converter/interfaces/ITypedConverterAnchorFactory.sol", + "id": 18444, + "nodeType": "ImportDirective", + "scope": 18499, + "sourceUnit": 12261, + "src": "79:66:44", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "solidity/contracts/token/SmartToken.sol", + "file": "../token/SmartToken.sol", + "id": 18445, + "nodeType": "ImportDirective", + "scope": 18499, + "sourceUnit": 20149, + "src": "146:33:44", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 18446, + "name": "ITypedConverterAnchorFactory", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 12260, + "src": "225:28:44", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ITypedConverterAnchorFactory_$12260", + "typeString": "contract ITypedConverterAnchorFactory" + } + }, + "id": 18447, + "nodeType": "InheritanceSpecifier", + "src": "225:28:44" + } + ], + "contractDependencies": [ + 12260, + 20148 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 18498, + "linearizedBaseContracts": [ + 18498, + 12260 + ], + "name": "TestTypedConverterAnchorFactory", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 18449, + "name": "name", + "nodeType": "VariableDeclaration", + "scope": 18498, + "src": "257:18:44", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 18448, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "257:6:44", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "public" + }, + { + "body": { + "id": 18458, + "nodeType": "Block", + "src": "312:20:44", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 18456, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 18454, + "name": "name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18449, + "src": "316:4:44", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 18455, + "name": "_name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18451, + "src": "323:5:44", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "316:12:44", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 18457, + "nodeType": "ExpressionStatement", + "src": "316:12:44" + } + ] + }, + "documentation": null, + "id": 18459, + "implemented": true, + "isConstructor": true, + "isDeclaredConst": false, + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 18452, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 18451, + "name": "_name", + "nodeType": "VariableDeclaration", + "scope": 18459, + "src": "291:12:44", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 18450, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "291:6:44", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "290:14:44" + }, + "payable": false, + "returnParameters": { + "id": 18453, + "nodeType": "ParameterList", + "parameters": [], + "src": "312:0:44" + }, + "scope": 18498, + "src": "279:53:44", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 18466, + "nodeType": "Block", + "src": "389:16:44", + "statements": [ + { + "expression": { + "argumentTypes": null, + "hexValue": "38", + "id": 18464, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "400:1:44", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_8_by_1", + "typeString": "int_const 8" + }, + "value": "8" + }, + "functionReturnParameters": 18463, + "id": 18465, + "nodeType": "Return", + "src": "393:8:44" + } + ] + }, + "documentation": null, + "id": 18467, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "converterType", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 18460, + "nodeType": "ParameterList", + "parameters": [], + "src": "357:2:44" + }, + "payable": false, + "returnParameters": { + "id": 18463, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 18462, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 18467, + "src": "381:6:44", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 18461, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "381:6:44", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "380:8:44" + }, + "scope": 18498, + "src": "335:70:44", + "stateMutability": "pure", + "superFunction": 12248, + "visibility": "public" + }, + { + "body": { + "id": 18496, + "nodeType": "Block", + "src": "525:133:44", + "statements": [ + { + "assignments": [ + 18479 + ], + "declarations": [ + { + "constant": false, + "id": 18479, + "name": "anchor", + "nodeType": "VariableDeclaration", + "scope": 18497, + "src": "529:23:44", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + }, + "typeName": { + "contractScope": null, + "id": 18478, + "name": "IConverterAnchor", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11826, + "src": "529:16:44", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 18486, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 18482, + "name": "name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18449, + "src": "570:4:44", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + { + "argumentTypes": null, + "id": 18483, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18471, + "src": "576:7:44", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "argumentTypes": null, + "id": 18484, + "name": "_decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18473, + "src": "585:9:44", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + ], + "id": 18481, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "555:14:44", + "typeDescriptions": { + "typeIdentifier": "t_function_creation_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_uint8_$returns$_t_contract$_SmartToken_$20148_$", + "typeString": "function (string memory,string memory,uint8) returns (contract SmartToken)" + }, + "typeName": { + "contractScope": null, + "id": 18480, + "name": "SmartToken", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20148, + "src": "559:10:44", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SmartToken_$20148", + "typeString": "contract SmartToken" + } + } + }, + "id": 18485, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "555:40:44", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SmartToken_$20148", + "typeString": "contract SmartToken" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "529:66:44" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 18490, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22338, + "src": "625:3:44", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 18491, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "625:10:44", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 18487, + "name": "anchor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18479, + "src": "600:6:44", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + }, + "id": 18489, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transferOwnership", + "nodeType": "MemberAccess", + "referencedDeclaration": 22243, + "src": "600:24:44", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$", + "typeString": "function (address) external" + } + }, + "id": 18492, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "600:36:44", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 18493, + "nodeType": "ExpressionStatement", + "src": "600:36:44" + }, + { + "expression": { + "argumentTypes": null, + "id": 18494, + "name": "anchor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18479, + "src": "648:6:44", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + }, + "functionReturnParameters": 18477, + "id": 18495, + "nodeType": "Return", + "src": "641:13:44" + } + ] + }, + "documentation": null, + "id": 18497, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "createAnchor", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 18474, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 18469, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 18497, + "src": "433:6:44", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 18468, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "433:6:44", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 18471, + "name": "_symbol", + "nodeType": "VariableDeclaration", + "scope": 18497, + "src": "454:14:44", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 18470, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "454:6:44", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 18473, + "name": "_decimals", + "nodeType": "VariableDeclaration", + "scope": 18497, + "src": "472:15:44", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 18472, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "472:5:44", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "429:61:44" + }, + "payable": false, + "returnParameters": { + "id": 18477, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 18476, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 18497, + "src": "507:16:44", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + }, + "typeName": { + "contractScope": null, + "id": 18475, + "name": "IConverterAnchor", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11826, + "src": "507:16:44", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "506:18:44" + }, + "scope": 18498, + "src": "408:250:44", + "stateMutability": "nonpayable", + "superFunction": 12259, + "visibility": "public" + } + ], + "scope": 18499, + "src": "181:479:44" + } + ], + "src": "0:661:44" + }, + "id": 44 + }, + "solidity/contracts/sovrynswapx/SovrynSwapX.sol": { + "ast": { + "absolutePath": "solidity/contracts/sovrynswapx/SovrynSwapX.sol", + "exportedSymbols": { + "SovrynSwapX": [ + 19362 + ] + }, + "id": 19363, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 18500, + "literals": [ + "solidity", + "0.4", + ".26" + ], + "nodeType": "PragmaDirective", + "src": "0:23:45" + }, + { + "absolutePath": "solidity/contracts/sovrynswapx/interfaces/ISovrynSwapXUpgrader.sol", + "file": "./interfaces/ISovrynSwapXUpgrader.sol", + "id": 18501, + "nodeType": "ImportDirective", + "scope": 19363, + "sourceUnit": 19478, + "src": "24:47:45", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "solidity/contracts/sovrynswapx/interfaces/ISovrynSwapX.sol", + "file": "./interfaces/ISovrynSwapX.sol", + "id": 18502, + "nodeType": "ImportDirective", + "scope": 19363, + "sourceUnit": 19467, + "src": "72:39:45", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "solidity/contracts/utility/ContractRegistryClient.sol", + "file": "../utility/ContractRegistryClient.sol", + "id": 18503, + "nodeType": "ImportDirective", + "scope": 19363, + "sourceUnit": 20933, + "src": "112:47:45", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "solidity/contracts/utility/SafeMath.sol", + "file": "../utility/SafeMath.sol", + "id": 18504, + "nodeType": "ImportDirective", + "scope": 19363, + "sourceUnit": 21818, + "src": "160:33:45", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "solidity/contracts/utility/TokenHandler.sol", + "file": "../utility/TokenHandler.sol", + "id": 18505, + "nodeType": "ImportDirective", + "scope": 19363, + "sourceUnit": 21934, + "src": "194:37:45", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "solidity/contracts/utility/TokenHolder.sol", + "file": "../utility/TokenHolder.sol", + "id": 18506, + "nodeType": "ImportDirective", + "scope": 19363, + "sourceUnit": 21977, + "src": "232:36:45", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 18507, + "name": "ISovrynSwapX", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 19466, + "src": "859:12:45", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISovrynSwapX_$19466", + "typeString": "contract ISovrynSwapX" + } + }, + "id": 18508, + "nodeType": "InheritanceSpecifier", + "src": "859:12:45" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 18509, + "name": "TokenHandler", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 21933, + "src": "873:12:45", + "typeDescriptions": { + "typeIdentifier": "t_contract$_TokenHandler_$21933", + "typeString": "contract TokenHandler" + } + }, + "id": 18510, + "nodeType": "InheritanceSpecifier", + "src": "873:12:45" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 18511, + "name": "TokenHolder", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 21976, + "src": "887:11:45", + "typeDescriptions": { + "typeIdentifier": "t_contract$_TokenHolder_$21976", + "typeString": "contract TokenHolder" + } + }, + "id": 18512, + "nodeType": "InheritanceSpecifier", + "src": "887:11:45" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 18513, + "name": "ContractRegistryClient", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20932, + "src": "900:22:45", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ContractRegistryClient_$20932", + "typeString": "contract ContractRegistryClient" + } + }, + "id": 18514, + "nodeType": "InheritanceSpecifier", + "src": "900:22:45" + } + ], + "contractDependencies": [ + 19466, + 20932, + 21324, + 21933, + 21976, + 22052, + 22247, + 22313 + ], + "contractKind": "contract", + "documentation": "@dev The SovrynSwapX contract allows cross chain token transfers.\n * There are two processes that take place in the contract -\n- Initiate a cross chain transfer to a target blockchain (locks tokens from the caller account on Ethereum)\n- Report a cross chain transfer initiated on a source blockchain (releases tokens to an account on Ethereum)\n * Reporting cross chain transfers works similar to standard multisig contracts, meaning that multiple\ncallers are required to report a transfer before tokens are released to the target account.", + "fullyImplemented": true, + "id": 19362, + "linearizedBaseContracts": [ + 19362, + 20932, + 21976, + 22052, + 21324, + 21933, + 22313, + 22247, + 19466 + ], + "name": "SovrynSwapX", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 18517, + "libraryName": { + "contractScope": null, + "id": 18515, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 21817, + "src": "932:8:45", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$21817", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "926:27:45", + "typeName": { + "id": 18516, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "945:7:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "canonicalName": "SovrynSwapX.Transaction", + "id": 18528, + "members": [ + { + "constant": false, + "id": 18519, + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 18528, + "src": "1065:14:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 18518, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1065:7:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 18521, + "name": "fromBlockchain", + "nodeType": "VariableDeclaration", + "scope": 18528, + "src": "1083:22:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 18520, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1083:7:45", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 18523, + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 18528, + "src": "1109:10:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 18522, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1109:7:45", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 18525, + "name": "numOfReports", + "nodeType": "VariableDeclaration", + "scope": 18528, + "src": "1123:18:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 18524, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "1123:5:45", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 18527, + "name": "completed", + "nodeType": "VariableDeclaration", + "scope": 18528, + "src": "1145:14:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 18526, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1145:4:45", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "name": "Transaction", + "nodeType": "StructDefinition", + "scope": 19362, + "src": "1042:121:45", + "visibility": "public" + }, + { + "constant": true, + "id": 18531, + "name": "version", + "nodeType": "VariableDeclaration", + "scope": 19362, + "src": "1166:34:45", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 18529, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "1166:6:45", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "34", + "id": 18530, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1199:1:45", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "visibility": "public" + }, + { + "constant": false, + "id": 18533, + "name": "maxLockLimit", + "nodeType": "VariableDeclaration", + "scope": 19362, + "src": "1204:27:45", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 18532, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1204:7:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 18535, + "name": "maxReleaseLimit", + "nodeType": "VariableDeclaration", + "scope": 19362, + "src": "1304:30:45", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 18534, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1304:7:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 18537, + "name": "minLimit", + "nodeType": "VariableDeclaration", + "scope": 19362, + "src": "1409:23:45", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 18536, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1409:7:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 18539, + "name": "prevLockLimit", + "nodeType": "VariableDeclaration", + "scope": 19362, + "src": "1510:28:45", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 18538, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1510:7:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 18541, + "name": "prevReleaseLimit", + "nodeType": "VariableDeclaration", + "scope": 19362, + "src": "1588:31:45", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 18540, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1588:7:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 18543, + "name": "limitIncPerBlock", + "nodeType": "VariableDeclaration", + "scope": 19362, + "src": "1672:31:45", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 18542, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1672:7:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 18545, + "name": "prevLockBlockNumber", + "nodeType": "VariableDeclaration", + "scope": 19362, + "src": "1748:34:45", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 18544, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1748:7:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 18547, + "name": "prevReleaseBlockNumber", + "nodeType": "VariableDeclaration", + "scope": 19362, + "src": "1834:37:45", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 18546, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1834:7:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 18549, + "name": "minRequiredReports", + "nodeType": "VariableDeclaration", + "scope": 19362, + "src": "1926:31:45", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 18548, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "1926:5:45", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 18551, + "name": "token", + "nodeType": "VariableDeclaration", + "scope": 19362, + "src": "2017:24:45", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + "typeName": { + "contractScope": null, + "id": 18550, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "2017:11:45", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 18554, + "name": "xTransfersEnabled", + "nodeType": "VariableDeclaration", + "scope": 19362, + "src": "2060:36:45", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 18552, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2060:4:45", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 18553, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2092:4:45", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "visibility": "public" + }, + { + "constant": false, + "id": 18557, + "name": "reportingEnabled", + "nodeType": "VariableDeclaration", + "scope": 19362, + "src": "2148:35:45", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 18555, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2148:4:45", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 18556, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2179:4:45", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "visibility": "public" + }, + { + "constant": false, + "id": 18561, + "name": "transactions", + "nodeType": "VariableDeclaration", + "scope": 19362, + "src": "2257:51:45", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Transaction_$18528_storage_$", + "typeString": "mapping(uint256 => struct SovrynSwapX.Transaction)" + }, + "typeName": { + "id": 18560, + "keyType": { + "id": 18558, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2265:7:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "2257:31:45", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Transaction_$18528_storage_$", + "typeString": "mapping(uint256 => struct SovrynSwapX.Transaction)" + }, + "valueType": { + "contractScope": null, + "id": 18559, + "name": "Transaction", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 18528, + "src": "2276:11:45", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Transaction_$18528_storage_ptr", + "typeString": "struct SovrynSwapX.Transaction" + } + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 18565, + "name": "transactionIds", + "nodeType": "VariableDeclaration", + "scope": 19362, + "src": "2336:49:45", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", + "typeString": "mapping(uint256 => uint256)" + }, + "typeName": { + "id": 18564, + "keyType": { + "id": 18562, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2344:7:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "2336:27:45", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", + "typeString": "mapping(uint256 => uint256)" + }, + "valueType": { + "id": 18563, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2355:7:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 18571, + "name": "reportedTxs", + "nodeType": "VariableDeclaration", + "scope": 19362, + "src": "2452:63:45", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(uint256 => mapping(address => bool))" + }, + "typeName": { + "id": 18570, + "keyType": { + "id": 18566, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2460:7:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "2452:44:45", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(uint256 => mapping(address => bool))" + }, + "valueType": { + "id": 18569, + "keyType": { + "id": 18567, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2479:7:45", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "2471:24:45", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + }, + "valueType": { + "id": 18568, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2490:4:45", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 18575, + "name": "reporters", + "nodeType": "VariableDeclaration", + "scope": 19362, + "src": "2562:41:45", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + }, + "typeName": { + "id": 18574, + "keyType": { + "id": 18572, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2570:7:45", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "2562:24:45", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + }, + "valueType": { + "id": 18573, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2581:4:45", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + }, + "value": null, + "visibility": "public" + }, + { + "anonymous": false, + "documentation": "@dev triggered when tokens are locked in smart contract\n\t * @param _from wallet address that the tokens are locked from\n@param _amount amount locked", + "id": 18581, + "name": "TokensLock", + "nodeType": "EventDefinition", + "parameters": { + "id": 18580, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 18577, + "indexed": true, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 18581, + "src": "2799:21:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 18576, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2799:7:45", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 18579, + "indexed": false, + "name": "_amount", + "nodeType": "VariableDeclaration", + "scope": 18581, + "src": "2822:15:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 18578, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2822:7:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2798:40:45" + }, + "src": "2782:57:45" + }, + { + "anonymous": false, + "documentation": "@dev triggered when tokens are released by the smart contract\n\t * @param _to wallet address that the tokens are released to\n@param _amount amount released", + "id": 18587, + "name": "TokensRelease", + "nodeType": "EventDefinition", + "parameters": { + "id": 18586, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 18583, + "indexed": true, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 18587, + "src": "3045:19:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 18582, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3045:7:45", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 18585, + "indexed": false, + "name": "_amount", + "nodeType": "VariableDeclaration", + "scope": 18587, + "src": "3066:15:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 18584, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3066:7:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3044:38:45" + }, + "src": "3025:58:45" + }, + { + "anonymous": false, + "documentation": "@dev triggered when xTransfer is successfully called\n\t * @param _from wallet address that initiated the xtransfer\n@param _toBlockchain target blockchain\n@param _to target wallet\n@param _amount transfer amount\n@param _id xtransfer id", + "id": 18599, + "name": "XTransfer", + "nodeType": "EventDefinition", + "parameters": { + "id": 18598, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 18589, + "indexed": true, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 18599, + "src": "3418:21:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 18588, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3418:7:45", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 18591, + "indexed": false, + "name": "_toBlockchain", + "nodeType": "VariableDeclaration", + "scope": 18599, + "src": "3441:21:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 18590, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3441:7:45", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 18593, + "indexed": true, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 18599, + "src": "3464:19:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 18592, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3464:7:45", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 18595, + "indexed": false, + "name": "_amount", + "nodeType": "VariableDeclaration", + "scope": 18599, + "src": "3485:15:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 18594, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3485:7:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 18597, + "indexed": false, + "name": "_id", + "nodeType": "VariableDeclaration", + "scope": 18599, + "src": "3502:11:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 18596, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3502:7:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3417:97:45" + }, + "src": "3402:113:45" + }, + { + "anonymous": false, + "documentation": "@dev triggered when report is successfully submitted\n\t * @param _reporter reporter wallet\n@param _fromBlockchain source blockchain\n@param _txId tx id on the source blockchain\n@param _to target wallet\n@param _amount transfer amount\n@param _xTransferId xtransfer id", + "id": 18613, + "name": "TxReport", + "nodeType": "EventDefinition", + "parameters": { + "id": 18612, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 18601, + "indexed": true, + "name": "_reporter", + "nodeType": "VariableDeclaration", + "scope": 18613, + "src": "3880:25:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 18600, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3880:7:45", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 18603, + "indexed": false, + "name": "_fromBlockchain", + "nodeType": "VariableDeclaration", + "scope": 18613, + "src": "3907:23:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 18602, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3907:7:45", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 18605, + "indexed": false, + "name": "_txId", + "nodeType": "VariableDeclaration", + "scope": 18613, + "src": "3932:13:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 18604, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3932:7:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 18607, + "indexed": false, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 18613, + "src": "3947:11:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 18606, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3947:7:45", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 18609, + "indexed": false, + "name": "_amount", + "nodeType": "VariableDeclaration", + "scope": 18613, + "src": "3960:15:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 18608, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3960:7:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 18611, + "indexed": false, + "name": "_xTransferId", + "nodeType": "VariableDeclaration", + "scope": 18613, + "src": "3977:20:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 18610, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3977:7:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3879:119:45" + }, + "src": "3865:134:45" + }, + { + "anonymous": false, + "documentation": "@dev triggered when final report is successfully submitted\n\t * @param _to target wallet\n@param _id xtransfer id", + "id": 18619, + "name": "XTransferComplete", + "nodeType": "EventDefinition", + "parameters": { + "id": 18618, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 18615, + "indexed": false, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 18619, + "src": "4162:11:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 18614, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4162:7:45", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 18617, + "indexed": false, + "name": "_id", + "nodeType": "VariableDeclaration", + "scope": 18619, + "src": "4175:11:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 18616, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4175:7:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4161:26:45" + }, + "src": "4138:50:45" + }, + { + "body": { + "id": 18713, + "nodeType": "Block", + "src": "5308:624:45", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 18667, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 18663, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 18661, + "name": "_minLimit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18625, + "src": "5340:9:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "id": 18662, + "name": "_maxLockLimit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18621, + "src": "5353:13:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5340:26:45", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 18666, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 18664, + "name": "_minLimit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18625, + "src": "5370:9:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "id": 18665, + "name": "_maxReleaseLimit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18623, + "src": "5383:16:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5370:29:45", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "5340:59:45", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4552525f494e56414c49445f4d494e5f4c494d4954", + "id": 18668, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5401:23:45", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_e8863683e853f5e973d186a95524b4cc24f1541517387abe8d8f6488ce1e0dc9", + "typeString": "literal_string \"ERR_INVALID_MIN_LIMIT\"" + }, + "value": "ERR_INVALID_MIN_LIMIT" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_e8863683e853f5e973d186a95524b4cc24f1541517387abe8d8f6488ce1e0dc9", + "typeString": "literal_string \"ERR_INVALID_MIN_LIMIT\"" + } + ], + "id": 18660, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 22341, + 22342 + ], + "referencedDeclaration": 22342, + "src": "5332:7:45", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 18669, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5332:93:45", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 18670, + "nodeType": "ExpressionStatement", + "src": "5332:93:45" + }, + { + "expression": { + "argumentTypes": null, + "id": 18673, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 18671, + "name": "maxLockLimit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18533, + "src": "5499:12:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 18672, + "name": "_maxLockLimit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18621, + "src": "5514:13:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5499:28:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 18674, + "nodeType": "ExpressionStatement", + "src": "5499:28:45" + }, + { + "expression": { + "argumentTypes": null, + "id": 18677, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 18675, + "name": "maxReleaseLimit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18535, + "src": "5531:15:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 18676, + "name": "_maxReleaseLimit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18623, + "src": "5549:16:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5531:34:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 18678, + "nodeType": "ExpressionStatement", + "src": "5531:34:45" + }, + { + "expression": { + "argumentTypes": null, + "id": 18681, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 18679, + "name": "minLimit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18537, + "src": "5569:8:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 18680, + "name": "_minLimit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18625, + "src": "5580:9:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5569:20:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 18682, + "nodeType": "ExpressionStatement", + "src": "5569:20:45" + }, + { + "expression": { + "argumentTypes": null, + "id": 18685, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 18683, + "name": "limitIncPerBlock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18543, + "src": "5593:16:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 18684, + "name": "_limitIncPerBlock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18627, + "src": "5612:17:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5593:36:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 18686, + "nodeType": "ExpressionStatement", + "src": "5593:36:45" + }, + { + "expression": { + "argumentTypes": null, + "id": 18689, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 18687, + "name": "minRequiredReports", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18549, + "src": "5633:18:45", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 18688, + "name": "_minRequiredReports", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18629, + "src": "5654:19:45", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "5633:40:45", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "id": 18690, + "nodeType": "ExpressionStatement", + "src": "5633:40:45" + }, + { + "expression": { + "argumentTypes": null, + "id": 18693, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 18691, + "name": "prevLockLimit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18539, + "src": "5762:13:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 18692, + "name": "_maxLockLimit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18621, + "src": "5778:13:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5762:29:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 18694, + "nodeType": "ExpressionStatement", + "src": "5762:29:45" + }, + { + "expression": { + "argumentTypes": null, + "id": 18697, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 18695, + "name": "prevReleaseLimit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18541, + "src": "5795:16:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 18696, + "name": "_maxReleaseLimit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18623, + "src": "5814:16:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5795:35:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 18698, + "nodeType": "ExpressionStatement", + "src": "5795:35:45" + }, + { + "expression": { + "argumentTypes": null, + "id": 18702, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 18699, + "name": "prevLockBlockNumber", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18545, + "src": "5834:19:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 18700, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22328, + "src": "5856:5:45", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 18701, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "number", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5856:12:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5834:34:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 18703, + "nodeType": "ExpressionStatement", + "src": "5834:34:45" + }, + { + "expression": { + "argumentTypes": null, + "id": 18707, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 18704, + "name": "prevReleaseBlockNumber", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18547, + "src": "5872:22:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 18705, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22328, + "src": "5897:5:45", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 18706, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "number", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5897:12:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5872:37:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 18708, + "nodeType": "ExpressionStatement", + "src": "5872:37:45" + }, + { + "expression": { + "argumentTypes": null, + "id": 18711, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 18709, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 18551 + ], + "referencedDeclaration": 18551, + "src": "5914:5:45", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 18710, + "name": "_token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18633, + "src": "5922:6:45", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "src": "5914:14:45", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "id": 18712, + "nodeType": "ExpressionStatement", + "src": "5914:14:45" + } + ] + }, + "documentation": "@dev initializes a new SovrynSwapX instance\n\t * @param _maxLockLimit maximum amount of tokens that can be locked in one transaction\n@param _maxReleaseLimit maximum amount of tokens that can be released in one transaction\n@param _minLimit minimum amount of tokens that can be transferred in one transaction\n@param _limitIncPerBlock how much the limit increases per block\n@param _minRequiredReports minimum number of reporters to report transaction before tokens can be released\n@param _registry address of contract registry\n@param _token erc20 token", + "id": 18714, + "implemented": true, + "isConstructor": true, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 18636, + "name": "_registry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18631, + "src": "5081:9:45", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IContractRegistry_$22220", + "typeString": "contract IContractRegistry" + } + } + ], + "id": 18637, + "modifierName": { + "argumentTypes": null, + "id": 18635, + "name": "ContractRegistryClient", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20932, + "src": "5058:22:45", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ContractRegistryClient_$20932_$", + "typeString": "type(contract ContractRegistryClient)" + } + }, + "nodeType": "ModifierInvocation", + "src": "5058:33:45" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 18639, + "name": "_maxLockLimit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18621, + "src": "5110:13:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 18640, + "modifierName": { + "argumentTypes": null, + "id": 18638, + "name": "greaterThanZero", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21988, + "src": "5094:15:45", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$", + "typeString": "modifier (uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "5094:30:45" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 18642, + "name": "_maxReleaseLimit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18623, + "src": "5143:16:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 18643, + "modifierName": { + "argumentTypes": null, + "id": 18641, + "name": "greaterThanZero", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21988, + "src": "5127:15:45", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$", + "typeString": "modifier (uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "5127:33:45" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 18645, + "name": "_minLimit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18625, + "src": "5179:9:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 18646, + "modifierName": { + "argumentTypes": null, + "id": 18644, + "name": "greaterThanZero", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21988, + "src": "5163:15:45", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$", + "typeString": "modifier (uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "5163:26:45" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 18648, + "name": "_limitIncPerBlock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18627, + "src": "5208:17:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 18649, + "modifierName": { + "argumentTypes": null, + "id": 18647, + "name": "greaterThanZero", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21988, + "src": "5192:15:45", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$", + "typeString": "modifier (uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "5192:34:45" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 18651, + "name": "_minRequiredReports", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18629, + "src": "5245:19:45", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "id": 18652, + "modifierName": { + "argumentTypes": null, + "id": 18650, + "name": "greaterThanZero", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21988, + "src": "5229:15:45", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$", + "typeString": "modifier (uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "5229:36:45" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 18654, + "name": "_token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18633, + "src": "5281:6:45", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + } + ], + "id": 18655, + "modifierName": { + "argumentTypes": null, + "id": 18653, + "name": "validAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22011, + "src": "5268:12:45", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_address_$", + "typeString": "modifier (address)" + } + }, + "nodeType": "ModifierInvocation", + "src": "5268:20:45" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 18657, + "name": "_token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18633, + "src": "5299:6:45", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + } + ], + "id": 18658, + "modifierName": { + "argumentTypes": null, + "id": 18656, + "name": "notThis", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22036, + "src": "5291:7:45", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_address_$", + "typeString": "modifier (address)" + } + }, + "nodeType": "ModifierInvocation", + "src": "5291:15:45" + } + ], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 18634, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 18621, + "name": "_maxLockLimit", + "nodeType": "VariableDeclaration", + "scope": 18714, + "src": "4862:21:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 18620, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4862:7:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 18623, + "name": "_maxReleaseLimit", + "nodeType": "VariableDeclaration", + "scope": 18714, + "src": "4887:24:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 18622, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4887:7:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 18625, + "name": "_minLimit", + "nodeType": "VariableDeclaration", + "scope": 18714, + "src": "4915:17:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 18624, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4915:7:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 18627, + "name": "_limitIncPerBlock", + "nodeType": "VariableDeclaration", + "scope": 18714, + "src": "4936:25:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 18626, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4936:7:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 18629, + "name": "_minRequiredReports", + "nodeType": "VariableDeclaration", + "scope": 18714, + "src": "4965:25:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 18628, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "4965:5:45", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 18631, + "name": "_registry", + "nodeType": "VariableDeclaration", + "scope": 18714, + "src": "4994:27:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IContractRegistry_$22220", + "typeString": "contract IContractRegistry" + }, + "typeName": { + "contractScope": null, + "id": 18630, + "name": "IContractRegistry", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 22220, + "src": "4994:17:45", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IContractRegistry_$22220", + "typeString": "contract IContractRegistry" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 18633, + "name": "_token", + "nodeType": "VariableDeclaration", + "scope": 18714, + "src": "5025:18:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + "typeName": { + "contractScope": null, + "id": 18632, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "5025:11:45", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4858:188:45" + }, + "payable": false, + "returnParameters": { + "id": 18659, + "nodeType": "ParameterList", + "parameters": [], + "src": "5308:0:45" + }, + "scope": 19362, + "src": "4847:1085:45", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 18720, + "nodeType": "Block", + "src": "6001:28:45", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 18716, + "name": "_reporterOnly", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18733, + "src": "6005:13:45", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$__$", + "typeString": "function () view" + } + }, + "id": 18717, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6005:15:45", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 18718, + "nodeType": "ExpressionStatement", + "src": "6005:15:45" + }, + { + "id": 18719, + "nodeType": "PlaceholderStatement", + "src": "6024:1:45" + } + ] + }, + "documentation": null, + "id": 18721, + "name": "reporterOnly", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 18715, + "nodeType": "ParameterList", + "parameters": [], + "src": "6001:0:45" + }, + "src": "5979:50:45", + "visibility": "internal" + }, + { + "body": { + "id": 18732, + "nodeType": "Block", + "src": "6114:59:45", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 18725, + "name": "reporters", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18575, + "src": "6126:9:45", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 18728, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 18726, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22338, + "src": "6136:3:45", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 18727, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6136:10:45", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6126:21:45", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4552525f4143434553535f44454e494544", + "id": 18729, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6149:19:45", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_f5894269650d3e1726ed81a4f48c5b62c7dd6fa025b89d639952a7012960d666", + "typeString": "literal_string \"ERR_ACCESS_DENIED\"" + }, + "value": "ERR_ACCESS_DENIED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_f5894269650d3e1726ed81a4f48c5b62c7dd6fa025b89d639952a7012960d666", + "typeString": "literal_string \"ERR_ACCESS_DENIED\"" + } + ], + "id": 18724, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 22341, + 22342 + ], + "referencedDeclaration": 22342, + "src": "6118:7:45", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 18730, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6118:51:45", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 18731, + "nodeType": "ExpressionStatement", + "src": "6118:51:45" + } + ] + }, + "documentation": null, + "id": 18733, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "_reporterOnly", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 18722, + "nodeType": "ParameterList", + "parameters": [], + "src": "6097:2:45" + }, + "payable": false, + "returnParameters": { + "id": 18723, + "nodeType": "ParameterList", + "parameters": [], + "src": "6114:0:45" + }, + "scope": 19362, + "src": "6075:98:45", + "stateMutability": "view", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 18739, + "nodeType": "Block", + "src": "6258:33:45", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 18735, + "name": "_xTransfersAllowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18749, + "src": "6262:18:45", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$__$", + "typeString": "function () view" + } + }, + "id": 18736, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6262:20:45", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 18737, + "nodeType": "ExpressionStatement", + "src": "6262:20:45" + }, + { + "id": 18738, + "nodeType": "PlaceholderStatement", + "src": "6286:1:45" + } + ] + }, + "documentation": null, + "id": 18740, + "name": "xTransfersAllowed", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 18734, + "nodeType": "ParameterList", + "parameters": [], + "src": "6258:0:45" + }, + "src": "6231:60:45", + "visibility": "internal" + }, + { + "body": { + "id": 18748, + "nodeType": "Block", + "src": "6381:50:45", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 18744, + "name": "xTransfersEnabled", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18554, + "src": "6393:17:45", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4552525f44495341424c4544", + "id": 18745, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6412:14:45", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_9d3ff080c987bf451b6124b46a2d27535e787d6af81fbc565831013f54fd3a71", + "typeString": "literal_string \"ERR_DISABLED\"" + }, + "value": "ERR_DISABLED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_9d3ff080c987bf451b6124b46a2d27535e787d6af81fbc565831013f54fd3a71", + "typeString": "literal_string \"ERR_DISABLED\"" + } + ], + "id": 18743, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 22341, + 22342 + ], + "referencedDeclaration": 22342, + "src": "6385:7:45", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 18746, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6385:42:45", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 18747, + "nodeType": "ExpressionStatement", + "src": "6385:42:45" + } + ] + }, + "documentation": null, + "id": 18749, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "_xTransfersAllowed", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 18741, + "nodeType": "ParameterList", + "parameters": [], + "src": "6364:2:45" + }, + "payable": false, + "returnParameters": { + "id": 18742, + "nodeType": "ParameterList", + "parameters": [], + "src": "6381:0:45" + }, + "scope": 19362, + "src": "6337:94:45", + "stateMutability": "view", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 18755, + "nodeType": "Block", + "src": "6512:32:45", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 18751, + "name": "_reportingAllowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18765, + "src": "6516:17:45", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$__$", + "typeString": "function () view" + } + }, + "id": 18752, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6516:19:45", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 18753, + "nodeType": "ExpressionStatement", + "src": "6516:19:45" + }, + { + "id": 18754, + "nodeType": "PlaceholderStatement", + "src": "6539:1:45" + } + ] + }, + "documentation": null, + "id": 18756, + "name": "reportingAllowed", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 18750, + "nodeType": "ParameterList", + "parameters": [], + "src": "6512:0:45" + }, + "src": "6486:58:45", + "visibility": "internal" + }, + { + "body": { + "id": 18764, + "nodeType": "Block", + "src": "6633:49:45", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 18760, + "name": "reportingEnabled", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18557, + "src": "6645:16:45", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4552525f44495341424c4544", + "id": 18761, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6663:14:45", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_9d3ff080c987bf451b6124b46a2d27535e787d6af81fbc565831013f54fd3a71", + "typeString": "literal_string \"ERR_DISABLED\"" + }, + "value": "ERR_DISABLED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_9d3ff080c987bf451b6124b46a2d27535e787d6af81fbc565831013f54fd3a71", + "typeString": "literal_string \"ERR_DISABLED\"" + } + ], + "id": 18759, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 22341, + 22342 + ], + "referencedDeclaration": 22342, + "src": "6637:7:45", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 18762, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6637:41:45", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 18763, + "nodeType": "ExpressionStatement", + "src": "6637:41:45" + } + ] + }, + "documentation": null, + "id": 18765, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "_reportingAllowed", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 18757, + "nodeType": "ParameterList", + "parameters": [], + "src": "6616:2:45" + }, + "payable": false, + "returnParameters": { + "id": 18758, + "nodeType": "ParameterList", + "parameters": [], + "src": "6633:0:45" + }, + "scope": 19362, + "src": "6590:92:45", + "stateMutability": "view", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 18779, + "nodeType": "Block", + "src": "6856:36:45", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 18777, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 18775, + "name": "maxLockLimit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18533, + "src": "6860:12:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 18776, + "name": "_maxLockLimit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18767, + "src": "6875:13:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6860:28:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 18778, + "nodeType": "ExpressionStatement", + "src": "6860:28:45" + } + ] + }, + "documentation": "@dev setter\n\t * @param _maxLockLimit new maxLockLimit", + "id": 18780, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 18770, + "modifierName": { + "argumentTypes": null, + "id": 18769, + "name": "ownerOnly", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21265, + "src": "6815:9:45", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "6815:9:45" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 18772, + "name": "_maxLockLimit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18767, + "src": "6841:13:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 18773, + "modifierName": { + "argumentTypes": null, + "id": 18771, + "name": "greaterThanZero", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21988, + "src": "6825:15:45", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$", + "typeString": "modifier (uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "6825:30:45" + } + ], + "name": "setMaxLockLimit", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 18768, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 18767, + "name": "_maxLockLimit", + "nodeType": "VariableDeclaration", + "scope": 18780, + "src": "6785:21:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 18766, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6785:7:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6784:23:45" + }, + "payable": false, + "returnParameters": { + "id": 18774, + "nodeType": "ParameterList", + "parameters": [], + "src": "6856:0:45" + }, + "scope": 19362, + "src": "6760:132:45", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 18794, + "nodeType": "Block", + "src": "7081:42:45", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 18792, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 18790, + "name": "maxReleaseLimit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18535, + "src": "7085:15:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 18791, + "name": "_maxReleaseLimit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18782, + "src": "7103:16:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7085:34:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 18793, + "nodeType": "ExpressionStatement", + "src": "7085:34:45" + } + ] + }, + "documentation": "@dev setter\n\t * @param _maxReleaseLimit new maxReleaseLimit", + "id": 18795, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 18785, + "modifierName": { + "argumentTypes": null, + "id": 18784, + "name": "ownerOnly", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21265, + "src": "7037:9:45", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "7037:9:45" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 18787, + "name": "_maxReleaseLimit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18782, + "src": "7063:16:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 18788, + "modifierName": { + "argumentTypes": null, + "id": 18786, + "name": "greaterThanZero", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21988, + "src": "7047:15:45", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$", + "typeString": "modifier (uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "7047:33:45" + } + ], + "name": "setMaxReleaseLimit", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 18783, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 18782, + "name": "_maxReleaseLimit", + "nodeType": "VariableDeclaration", + "scope": 18795, + "src": "7004:24:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 18781, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7004:7:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "7003:26:45" + }, + "payable": false, + "returnParameters": { + "id": 18789, + "nodeType": "ParameterList", + "parameters": [], + "src": "7081:0:45" + }, + "scope": 19362, + "src": "6976:147:45", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 18820, + "nodeType": "Block", + "src": "7277:144:45", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 18812, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 18808, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 18806, + "name": "_minLimit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18797, + "src": "7309:9:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "id": 18807, + "name": "maxLockLimit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18533, + "src": "7322:12:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7309:25:45", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 18811, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 18809, + "name": "_minLimit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18797, + "src": "7338:9:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "id": 18810, + "name": "maxReleaseLimit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18535, + "src": "7351:15:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7338:28:45", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "7309:57:45", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4552525f494e56414c49445f4d494e5f4c494d4954", + "id": 18813, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7368:23:45", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_e8863683e853f5e973d186a95524b4cc24f1541517387abe8d8f6488ce1e0dc9", + "typeString": "literal_string \"ERR_INVALID_MIN_LIMIT\"" + }, + "value": "ERR_INVALID_MIN_LIMIT" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_e8863683e853f5e973d186a95524b4cc24f1541517387abe8d8f6488ce1e0dc9", + "typeString": "literal_string \"ERR_INVALID_MIN_LIMIT\"" + } + ], + "id": 18805, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 22341, + 22342 + ], + "referencedDeclaration": 22342, + "src": "7301:7:45", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 18814, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7301:91:45", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 18815, + "nodeType": "ExpressionStatement", + "src": "7301:91:45" + }, + { + "expression": { + "argumentTypes": null, + "id": 18818, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 18816, + "name": "minLimit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18537, + "src": "7397:8:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 18817, + "name": "_minLimit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18797, + "src": "7408:9:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7397:20:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 18819, + "nodeType": "ExpressionStatement", + "src": "7397:20:45" + } + ] + }, + "documentation": "@dev setter\n\t * @param _minLimit new minLimit", + "id": 18821, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 18800, + "modifierName": { + "argumentTypes": null, + "id": 18799, + "name": "ownerOnly", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21265, + "src": "7240:9:45", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "7240:9:45" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 18802, + "name": "_minLimit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18797, + "src": "7266:9:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 18803, + "modifierName": { + "argumentTypes": null, + "id": 18801, + "name": "greaterThanZero", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21988, + "src": "7250:15:45", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$", + "typeString": "modifier (uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "7250:26:45" + } + ], + "name": "setMinLimit", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 18798, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 18797, + "name": "_minLimit", + "nodeType": "VariableDeclaration", + "scope": 18821, + "src": "7214:17:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 18796, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7214:7:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "7213:19:45" + }, + "payable": false, + "returnParameters": { + "id": 18804, + "nodeType": "ParameterList", + "parameters": [], + "src": "7277:0:45" + }, + "scope": 19362, + "src": "7193:228:45", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 18835, + "nodeType": "Block", + "src": "7615:44:45", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 18833, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 18831, + "name": "limitIncPerBlock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18543, + "src": "7619:16:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 18832, + "name": "_limitIncPerBlock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18823, + "src": "7638:17:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7619:36:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 18834, + "nodeType": "ExpressionStatement", + "src": "7619:36:45" + } + ] + }, + "documentation": "@dev setter\n\t * @param _limitIncPerBlock new limitIncPerBlock", + "id": 18836, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 18826, + "modifierName": { + "argumentTypes": null, + "id": 18825, + "name": "ownerOnly", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21265, + "src": "7570:9:45", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "7570:9:45" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 18828, + "name": "_limitIncPerBlock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18823, + "src": "7596:17:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 18829, + "modifierName": { + "argumentTypes": null, + "id": 18827, + "name": "greaterThanZero", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21988, + "src": "7580:15:45", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$", + "typeString": "modifier (uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "7580:34:45" + } + ], + "name": "setLimitIncPerBlock", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 18824, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 18823, + "name": "_limitIncPerBlock", + "nodeType": "VariableDeclaration", + "scope": 18836, + "src": "7536:25:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 18822, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7536:7:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "7535:27:45" + }, + "payable": false, + "returnParameters": { + "id": 18830, + "nodeType": "ParameterList", + "parameters": [], + "src": "7615:0:45" + }, + "scope": 19362, + "src": "7507:152:45", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 18850, + "nodeType": "Block", + "src": "7861:48:45", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 18848, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 18846, + "name": "minRequiredReports", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18549, + "src": "7865:18:45", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 18847, + "name": "_minRequiredReports", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18838, + "src": "7886:19:45", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "7865:40:45", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "id": 18849, + "nodeType": "ExpressionStatement", + "src": "7865:40:45" + } + ] + }, + "documentation": "@dev setter\n\t * @param _minRequiredReports new minRequiredReports", + "id": 18851, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 18841, + "modifierName": { + "argumentTypes": null, + "id": 18840, + "name": "ownerOnly", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21265, + "src": "7814:9:45", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "7814:9:45" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 18843, + "name": "_minRequiredReports", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18838, + "src": "7840:19:45", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "id": 18844, + "modifierName": { + "argumentTypes": null, + "id": 18842, + "name": "greaterThanZero", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21988, + "src": "7824:15:45", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$", + "typeString": "modifier (uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "7824:36:45" + } + ], + "name": "setMinRequiredReports", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 18839, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 18838, + "name": "_minRequiredReports", + "nodeType": "VariableDeclaration", + "scope": 18851, + "src": "7780:25:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 18837, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "7780:5:45", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "7779:27:45" + }, + "payable": false, + "returnParameters": { + "id": 18845, + "nodeType": "ParameterList", + "parameters": [], + "src": "7861:0:45" + }, + "scope": 19362, + "src": "7749:160:45", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 18866, + "nodeType": "Block", + "src": "8179:38:45", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 18864, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 18860, + "name": "reporters", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18575, + "src": "8183:9:45", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 18862, + "indexExpression": { + "argumentTypes": null, + "id": 18861, + "name": "_reporter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18853, + "src": "8193:9:45", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "8183:20:45", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 18863, + "name": "_active", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18855, + "src": "8206:7:45", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "8183:30:45", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 18865, + "nodeType": "ExpressionStatement", + "src": "8183:30:45" + } + ] + }, + "documentation": "@dev allows the owner to set/remove reporters\n\t * @param _reporter reporter whos status is to be set\n@param _active true if the reporter is approved, false otherwise", + "id": 18867, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 18858, + "modifierName": { + "argumentTypes": null, + "id": 18857, + "name": "ownerOnly", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21265, + "src": "8169:9:45", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "8169:9:45" + } + ], + "name": "setReporter", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 18856, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 18853, + "name": "_reporter", + "nodeType": "VariableDeclaration", + "scope": 18867, + "src": "8129:17:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 18852, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8129:7:45", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 18855, + "name": "_active", + "nodeType": "VariableDeclaration", + "scope": 18867, + "src": "8148:12:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 18854, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "8148:4:45", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8128:33:45" + }, + "payable": false, + "returnParameters": { + "id": 18859, + "nodeType": "ParameterList", + "parameters": [], + "src": "8179:0:45" + }, + "scope": 19362, + "src": "8108:109:45", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 18878, + "nodeType": "Block", + "src": "8409:35:45", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 18876, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 18874, + "name": "xTransfersEnabled", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18554, + "src": "8413:17:45", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 18875, + "name": "_enable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18869, + "src": "8433:7:45", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "8413:27:45", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 18877, + "nodeType": "ExpressionStatement", + "src": "8413:27:45" + } + ] + }, + "documentation": "@dev allows the owner enable/disable the xTransfer method\n\t * @param _enable true to enable, false to disable", + "id": 18879, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 18872, + "modifierName": { + "argumentTypes": null, + "id": 18871, + "name": "ownerOnly", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21265, + "src": "8399:9:45", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "8399:9:45" + } + ], + "name": "enableXTransfers", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 18870, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 18869, + "name": "_enable", + "nodeType": "VariableDeclaration", + "scope": 18879, + "src": "8378:12:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 18868, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "8378:4:45", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8377:14:45" + }, + "payable": false, + "returnParameters": { + "id": 18873, + "nodeType": "ParameterList", + "parameters": [], + "src": "8409:0:45" + }, + "scope": 19362, + "src": "8352:92:45", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 18890, + "nodeType": "Block", + "src": "8643:34:45", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 18888, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 18886, + "name": "reportingEnabled", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18557, + "src": "8647:16:45", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 18887, + "name": "_enable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18881, + "src": "8666:7:45", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "8647:26:45", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 18889, + "nodeType": "ExpressionStatement", + "src": "8647:26:45" + } + ] + }, + "documentation": "@dev allows the owner enable/disable the reportTransaction method\n\t * @param _enable true to enable, false to disable", + "id": 18891, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 18884, + "modifierName": { + "argumentTypes": null, + "id": 18883, + "name": "ownerOnly", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21265, + "src": "8633:9:45", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "8633:9:45" + } + ], + "name": "enableReporting", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 18882, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 18881, + "name": "_enable", + "nodeType": "VariableDeclaration", + "scope": 18891, + "src": "8612:12:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 18880, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "8612:4:45", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8611:14:45" + }, + "payable": false, + "returnParameters": { + "id": 18885, + "nodeType": "ParameterList", + "parameters": [], + "src": "8643:0:45" + }, + "scope": 19362, + "src": "8587:90:45", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 18921, + "nodeType": "Block", + "src": "8978:221:45", + "statements": [ + { + "assignments": [ + 18900 + ], + "declarations": [ + { + "constant": false, + "id": 18900, + "name": "sovrynSwapXUpgrader", + "nodeType": "VariableDeclaration", + "scope": 18922, + "src": "8982:40:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISovrynSwapXUpgrader_$19477", + "typeString": "contract ISovrynSwapXUpgrader" + }, + "typeName": { + "contractScope": null, + "id": 18899, + "name": "ISovrynSwapXUpgrader", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 19477, + "src": "8982:20:45", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISovrynSwapXUpgrader_$19477", + "typeString": "contract ISovrynSwapXUpgrader" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 18906, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 18903, + "name": "SOVRYNSWAP_X_UPGRADER", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20782, + "src": "9056:21:45", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 18902, + "name": "addressOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20931, + "src": "9046:9:45", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$", + "typeString": "function (bytes32) view returns (address)" + } + }, + "id": 18904, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9046:32:45", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 18901, + "name": "ISovrynSwapXUpgrader", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19477, + "src": "9025:20:45", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ISovrynSwapXUpgrader_$19477_$", + "typeString": "type(contract ISovrynSwapXUpgrader)" + } + }, + "id": 18905, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9025:54:45", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISovrynSwapXUpgrader_$19477", + "typeString": "contract ISovrynSwapXUpgrader" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8982:97:45" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 18908, + "name": "sovrynSwapXUpgrader", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18900, + "src": "9102:19:45", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISovrynSwapXUpgrader_$19477", + "typeString": "contract ISovrynSwapXUpgrader" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_ISovrynSwapXUpgrader_$19477", + "typeString": "contract ISovrynSwapXUpgrader" + } + ], + "id": 18907, + "name": "transferOwnership", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 21296 + ], + "referencedDeclaration": 21296, + "src": "9084:17:45", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 18909, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9084:38:45", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 18910, + "nodeType": "ExpressionStatement", + "src": "9084:38:45" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 18914, + "name": "version", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18531, + "src": "9154:7:45", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + { + "argumentTypes": null, + "id": 18915, + "name": "_reporters", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18894, + "src": "9163:10:45", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + ], + "expression": { + "argumentTypes": null, + "id": 18911, + "name": "sovrynSwapXUpgrader", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18900, + "src": "9126:19:45", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISovrynSwapXUpgrader_$19477", + "typeString": "contract ISovrynSwapXUpgrader" + } + }, + "id": 18913, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "upgrade", + "nodeType": "MemberAccess", + "referencedDeclaration": 19476, + "src": "9126:27:45", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_uint16_$_t_array$_t_address_$dyn_memory_ptr_$returns$__$", + "typeString": "function (uint16,address[] memory) external" + } + }, + "id": 18916, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9126:48:45", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 18917, + "nodeType": "ExpressionStatement", + "src": "9126:48:45" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 18918, + "name": "acceptOwnership", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 21323 + ], + "referencedDeclaration": 21323, + "src": "9178:15:45", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", + "typeString": "function ()" + } + }, + "id": 18919, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9178:17:45", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 18920, + "nodeType": "ExpressionStatement", + "src": "9178:17:45" + } + ] + }, + "documentation": "@dev upgrades the contract to the latest version\ncan only be called by the owner\nnote that the owner needs to call acceptOwnership on the new contract after the upgrade\n\t * @param _reporters new list of reporters", + "id": 18922, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 18897, + "modifierName": { + "argumentTypes": null, + "id": 18896, + "name": "ownerOnly", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21265, + "src": "8968:9:45", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "8968:9:45" + } + ], + "name": "upgrade", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 18895, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 18894, + "name": "_reporters", + "nodeType": "VariableDeclaration", + "scope": 18922, + "src": "8939:20:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 18892, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8939:7:45", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 18893, + "length": null, + "nodeType": "ArrayTypeName", + "src": "8939:9:45", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8938:22:45" + }, + "payable": false, + "returnParameters": { + "id": 18898, + "nodeType": "ParameterList", + "parameters": [], + "src": "8978:0:45" + }, + "scope": 19362, + "src": "8922:277:45", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 18974, + "nodeType": "Block", + "src": "9598:462:45", + "statements": [ + { + "assignments": [ + 18934 + ], + "declarations": [ + { + "constant": false, + "id": 18934, + "name": "currentLockLimit", + "nodeType": "VariableDeclaration", + "scope": 18975, + "src": "9634:24:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 18933, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9634:7:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 18937, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 18935, + "name": "getCurrentLockLimit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19262, + "src": "9661:19:45", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 18936, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9661:21:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9634:48:45" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 18945, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 18941, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 18939, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18928, + "src": "9718:7:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 18940, + "name": "minLimit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18537, + "src": "9729:8:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9718:19:45", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 18944, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 18942, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18928, + "src": "9741:7:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "id": 18943, + "name": "currentLockLimit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18934, + "src": "9752:16:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9741:27:45", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "9718:50:45", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4552525f414d4f554e545f544f4f5f48494748", + "id": 18946, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9770:21:45", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_ea546d9a31e2cdf5ff54bd756b604340a9be1b0f1b5565f1667d358efb53a459", + "typeString": "literal_string \"ERR_AMOUNT_TOO_HIGH\"" + }, + "value": "ERR_AMOUNT_TOO_HIGH" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_ea546d9a31e2cdf5ff54bd756b604340a9be1b0f1b5565f1667d358efb53a459", + "typeString": "literal_string \"ERR_AMOUNT_TOO_HIGH\"" + } + ], + "id": 18938, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 22341, + 22342 + ], + "referencedDeclaration": 22342, + "src": "9710:7:45", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 18947, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9710:82:45", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 18948, + "nodeType": "ExpressionStatement", + "src": "9710:82:45" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 18950, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18928, + "src": "9808:7:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 18949, + "name": "lockTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19314, + "src": "9797:10:45", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 18951, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9797:19:45", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 18952, + "nodeType": "ExpressionStatement", + "src": "9797:19:45" + }, + { + "expression": { + "argumentTypes": null, + "id": 18958, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 18953, + "name": "prevLockLimit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18539, + "src": "9871:13:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 18956, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18928, + "src": "9908:7:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 18954, + "name": "currentLockLimit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18934, + "src": "9887:16:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 18955, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 21758, + "src": "9887:20:45", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 18957, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9887:29:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9871:45:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 18959, + "nodeType": "ExpressionStatement", + "src": "9871:45:45" + }, + { + "expression": { + "argumentTypes": null, + "id": 18963, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 18960, + "name": "prevLockBlockNumber", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18545, + "src": "9920:19:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 18961, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22328, + "src": "9942:5:45", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 18962, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "number", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "9942:12:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9920:34:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 18964, + "nodeType": "ExpressionStatement", + "src": "9920:34:45" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 18966, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22338, + "src": "10013:3:45", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 18967, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "10013:10:45", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 18968, + "name": "_toBlockchain", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18924, + "src": "10025:13:45", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 18969, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18926, + "src": "10040:3:45", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 18970, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18928, + "src": "10045:7:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "hexValue": "30", + "id": 18971, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10054:1:45", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 18965, + "name": "XTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18599, + "src": "10003:9:45", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_bytes32_$_t_bytes32_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,bytes32,bytes32,uint256,uint256)" + } + }, + "id": 18972, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10003:53:45", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 18973, + "nodeType": "EmitStatement", + "src": "9998:58:45" + } + ] + }, + "documentation": "@dev claims tokens from msg.sender to be converted to tokens on another blockchain\n\t * @param _toBlockchain blockchain on which tokens will be issued\n@param _to address to send the tokens to\n@param _amount the amount of tokens to transfer", + "id": 18975, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 18931, + "modifierName": { + "argumentTypes": null, + "id": 18930, + "name": "xTransfersAllowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18740, + "src": "9580:17:45", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "9580:17:45" + } + ], + "name": "xTransfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 18929, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 18924, + "name": "_toBlockchain", + "nodeType": "VariableDeclaration", + "scope": 18975, + "src": "9514:21:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 18923, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "9514:7:45", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 18926, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 18975, + "src": "9539:11:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 18925, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "9539:7:45", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 18928, + "name": "_amount", + "nodeType": "VariableDeclaration", + "scope": 18975, + "src": "9554:15:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 18927, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9554:7:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9510:62:45" + }, + "payable": false, + "returnParameters": { + "id": 18932, + "nodeType": "ParameterList", + "parameters": [], + "src": "9598:0:45" + }, + "scope": 19362, + "src": "9492:568:45", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 19029, + "nodeType": "Block", + "src": "10574:487:45", + "statements": [ + { + "assignments": [ + 18989 + ], + "declarations": [ + { + "constant": false, + "id": 18989, + "name": "currentLockLimit", + "nodeType": "VariableDeclaration", + "scope": 19030, + "src": "10610:24:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 18988, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10610:7:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 18992, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 18990, + "name": "getCurrentLockLimit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19262, + "src": "10637:19:45", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 18991, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10637:21:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10610:48:45" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 19000, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 18996, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 18994, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18981, + "src": "10730:7:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 18995, + "name": "minLimit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18537, + "src": "10741:8:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10730:19:45", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 18999, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 18997, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18981, + "src": "10753:7:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "id": 18998, + "name": "currentLockLimit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18989, + "src": "10764:16:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10753:27:45", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "10730:50:45", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4552525f414d4f554e545f544f4f5f48494748", + "id": 19001, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10782:21:45", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_ea546d9a31e2cdf5ff54bd756b604340a9be1b0f1b5565f1667d358efb53a459", + "typeString": "literal_string \"ERR_AMOUNT_TOO_HIGH\"" + }, + "value": "ERR_AMOUNT_TOO_HIGH" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_ea546d9a31e2cdf5ff54bd756b604340a9be1b0f1b5565f1667d358efb53a459", + "typeString": "literal_string \"ERR_AMOUNT_TOO_HIGH\"" + } + ], + "id": 18993, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 22341, + 22342 + ], + "referencedDeclaration": 22342, + "src": "10722:7:45", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 19002, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10722:82:45", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 19003, + "nodeType": "ExpressionStatement", + "src": "10722:82:45" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 19005, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18981, + "src": "10820:7:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 19004, + "name": "lockTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19314, + "src": "10809:10:45", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 19006, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10809:19:45", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 19007, + "nodeType": "ExpressionStatement", + "src": "10809:19:45" + }, + { + "expression": { + "argumentTypes": null, + "id": 19013, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 19008, + "name": "prevLockLimit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18539, + "src": "10883:13:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 19011, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18981, + "src": "10920:7:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 19009, + "name": "currentLockLimit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18989, + "src": "10899:16:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 19010, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 21758, + "src": "10899:20:45", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 19012, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10899:29:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10883:45:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 19014, + "nodeType": "ExpressionStatement", + "src": "10883:45:45" + }, + { + "expression": { + "argumentTypes": null, + "id": 19018, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 19015, + "name": "prevLockBlockNumber", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18545, + "src": "10932:19:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 19016, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22328, + "src": "10954:5:45", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 19017, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "number", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "10954:12:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10932:34:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 19019, + "nodeType": "ExpressionStatement", + "src": "10932:34:45" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 19021, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22338, + "src": "11012:3:45", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 19022, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "11012:10:45", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 19023, + "name": "_toBlockchain", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18977, + "src": "11024:13:45", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 19024, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18979, + "src": "11039:3:45", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 19025, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18981, + "src": "11044:7:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 19026, + "name": "_id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18983, + "src": "11053:3:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 19020, + "name": "XTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18599, + "src": "11002:9:45", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_bytes32_$_t_bytes32_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,bytes32,bytes32,uint256,uint256)" + } + }, + "id": 19027, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11002:55:45", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 19028, + "nodeType": "EmitStatement", + "src": "10997:60:45" + } + ] + }, + "documentation": "@dev claims tokens from msg.sender to be converted to tokens on another blockchain\n\t * @param _toBlockchain blockchain on which tokens will be issued\n@param _to address to send the tokens to\n@param _amount the amount of tokens to transfer\n@param _id pre-determined unique (if non zero) id which refers to this transaction", + "id": 19030, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 18986, + "modifierName": { + "argumentTypes": null, + "id": 18985, + "name": "xTransfersAllowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18740, + "src": "10556:17:45", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "10556:17:45" + } + ], + "name": "xTransfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 18984, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 18977, + "name": "_toBlockchain", + "nodeType": "VariableDeclaration", + "scope": 19030, + "src": "10475:21:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 18976, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "10475:7:45", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 18979, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 19030, + "src": "10500:11:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 18978, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "10500:7:45", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 18981, + "name": "_amount", + "nodeType": "VariableDeclaration", + "scope": 19030, + "src": "10515:15:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 18980, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10515:7:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 18983, + "name": "_id", + "nodeType": "VariableDeclaration", + "scope": 19030, + "src": "10534:11:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 18982, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10534:7:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10471:77:45" + }, + "payable": false, + "returnParameters": { + "id": 18987, + "nodeType": "ParameterList", + "parameters": [], + "src": "10574:0:45" + }, + "scope": 19362, + "src": "10453:608:45", + "stateMutability": "nonpayable", + "superFunction": 19456, + "visibility": "public" + }, + { + "body": { + "id": 19202, + "nodeType": "Block", + "src": "11779:1416:45", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 19060, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "11867:31:45", + "subExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 19054, + "name": "reportedTxs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18571, + "src": "11868:11:45", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(uint256 => mapping(address => bool))" + } + }, + "id": 19056, + "indexExpression": { + "argumentTypes": null, + "id": 19055, + "name": "_txId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19034, + "src": "11880:5:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "11868:18:45", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 19059, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 19057, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22338, + "src": "11887:3:45", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 19058, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "11887:10:45", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "11868:30:45", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4552525f414c52454144595f5245504f52544544", + "id": 19061, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11900:22:45", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_eacdf1b09650a9214fcd03c8cca153c1ef5430f33502fe3fc1e6f73a52233e56", + "typeString": "literal_string \"ERR_ALREADY_REPORTED\"" + }, + "value": "ERR_ALREADY_REPORTED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_eacdf1b09650a9214fcd03c8cca153c1ef5430f33502fe3fc1e6f73a52233e56", + "typeString": "literal_string \"ERR_ALREADY_REPORTED\"" + } + ], + "id": 19053, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 22341, + 22342 + ], + "referencedDeclaration": 22342, + "src": "11859:7:45", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 19062, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11859:64:45", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 19063, + "nodeType": "ExpressionStatement", + "src": "11859:64:45" + }, + { + "expression": { + "argumentTypes": null, + "id": 19071, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 19064, + "name": "reportedTxs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18571, + "src": "11954:11:45", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(uint256 => mapping(address => bool))" + } + }, + "id": 19068, + "indexExpression": { + "argumentTypes": null, + "id": 19065, + "name": "_txId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19034, + "src": "11966:5:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "11954:18:45", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 19069, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 19066, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22338, + "src": "11973:3:45", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 19067, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "11973:10:45", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "11954:30:45", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 19070, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11987:4:45", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "11954:37:45", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 19072, + "nodeType": "ExpressionStatement", + "src": "11954:37:45" + }, + { + "assignments": [ + 19074 + ], + "declarations": [ + { + "constant": false, + "id": 19074, + "name": "txn", + "nodeType": "VariableDeclaration", + "scope": 19203, + "src": "11996:23:45", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Transaction_$18528_storage_ptr", + "typeString": "struct SovrynSwapX.Transaction" + }, + "typeName": { + "contractScope": null, + "id": 19073, + "name": "Transaction", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 18528, + "src": "11996:11:45", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Transaction_$18528_storage_ptr", + "typeString": "struct SovrynSwapX.Transaction" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 19078, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 19075, + "name": "transactions", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18561, + "src": "12022:12:45", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Transaction_$18528_storage_$", + "typeString": "mapping(uint256 => struct SovrynSwapX.Transaction storage ref)" + } + }, + "id": 19077, + "indexExpression": { + "argumentTypes": null, + "id": 19076, + "name": "_txId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19034, + "src": "12035:5:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "12022:19:45", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Transaction_$18528_storage", + "typeString": "struct SovrynSwapX.Transaction storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "11996:45:45" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 19082, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 19079, + "name": "txn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19074, + "src": "12120:3:45", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Transaction_$18528_storage_ptr", + "typeString": "struct SovrynSwapX.Transaction storage pointer" + } + }, + "id": 19080, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "numOfReports", + "nodeType": "MemberAccess", + "referencedDeclaration": 18525, + "src": "12120:16:45", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 19081, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12140:1:45", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "12120:21:45", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 19153, + "nodeType": "Block", + "src": "12450:261:45", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 19136, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 19131, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 19126, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 19123, + "name": "txn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19074, + "src": "12507:3:45", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Transaction_$18528_storage_ptr", + "typeString": "struct SovrynSwapX.Transaction storage pointer" + } + }, + "id": 19124, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "to", + "nodeType": "MemberAccess", + "referencedDeclaration": 18523, + "src": "12507:6:45", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 19125, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19036, + "src": "12517:3:45", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "12507:13:45", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 19130, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 19127, + "name": "txn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19074, + "src": "12524:3:45", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Transaction_$18528_storage_ptr", + "typeString": "struct SovrynSwapX.Transaction storage pointer" + } + }, + "id": 19128, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "amount", + "nodeType": "MemberAccess", + "referencedDeclaration": 18519, + "src": "12524:10:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 19129, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19038, + "src": "12538:7:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12524:21:45", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "12507:38:45", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "id": 19135, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 19132, + "name": "txn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19074, + "src": "12549:3:45", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Transaction_$18528_storage_ptr", + "typeString": "struct SovrynSwapX.Transaction storage pointer" + } + }, + "id": 19133, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "fromBlockchain", + "nodeType": "MemberAccess", + "referencedDeclaration": 18521, + "src": "12549:18:45", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 19134, + "name": "_fromBlockchain", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19032, + "src": "12571:15:45", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "src": "12549:37:45", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "12507:79:45", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4552525f54585f4d49534d41544348", + "id": 19137, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12588:17:45", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_39731edd6d4c0fd2309c14f2b1a935ba30b8a0693da1b0353a3c6694ebcdb4a7", + "typeString": "literal_string \"ERR_TX_MISMATCH\"" + }, + "value": "ERR_TX_MISMATCH" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_39731edd6d4c0fd2309c14f2b1a935ba30b8a0693da1b0353a3c6694ebcdb4a7", + "typeString": "literal_string \"ERR_TX_MISMATCH\"" + } + ], + "id": 19122, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 22341, + 22342 + ], + "referencedDeclaration": 22342, + "src": "12499:7:45", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 19138, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12499:107:45", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 19139, + "nodeType": "ExpressionStatement", + "src": "12499:107:45" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 19142, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 19140, + "name": "_xTransferId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19040, + "src": "12616:12:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 19141, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12632:1:45", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "12616:17:45", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 19152, + "nodeType": "IfStatement", + "src": "12612:94:45", + "trueBody": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 19148, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 19144, + "name": "transactionIds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18565, + "src": "12643:14:45", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", + "typeString": "mapping(uint256 => uint256)" + } + }, + "id": 19146, + "indexExpression": { + "argumentTypes": null, + "id": 19145, + "name": "_xTransferId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19040, + "src": "12658:12:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "12643:28:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 19147, + "name": "_txId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19034, + "src": "12675:5:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12643:37:45", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4552525f54585f414c52454144595f455849535453", + "id": 19149, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12682:23:45", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_6957b87c54e7d0624ff8a3f0dab58c7c7ceeac939294153268df0f24ee23a0a9", + "typeString": "literal_string \"ERR_TX_ALREADY_EXISTS\"" + }, + "value": "ERR_TX_ALREADY_EXISTS" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_6957b87c54e7d0624ff8a3f0dab58c7c7ceeac939294153268df0f24ee23a0a9", + "typeString": "literal_string \"ERR_TX_ALREADY_EXISTS\"" + } + ], + "id": 19143, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 22341, + 22342 + ], + "referencedDeclaration": 22342, + "src": "12635:7:45", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 19150, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12635:71:45", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 19151, + "nodeType": "ExpressionStatement", + "src": "12635:71:45" + } + } + ] + }, + "id": 19154, + "nodeType": "IfStatement", + "src": "12116:595:45", + "trueBody": { + "id": 19121, + "nodeType": "Block", + "src": "12143:301:45", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 19087, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 19083, + "name": "txn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19074, + "src": "12148:3:45", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Transaction_$18528_storage_ptr", + "typeString": "struct SovrynSwapX.Transaction storage pointer" + } + }, + "id": 19085, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "to", + "nodeType": "MemberAccess", + "referencedDeclaration": 18523, + "src": "12148:6:45", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 19086, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19036, + "src": "12157:3:45", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "12148:12:45", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 19088, + "nodeType": "ExpressionStatement", + "src": "12148:12:45" + }, + { + "expression": { + "argumentTypes": null, + "id": 19093, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 19089, + "name": "txn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19074, + "src": "12165:3:45", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Transaction_$18528_storage_ptr", + "typeString": "struct SovrynSwapX.Transaction storage pointer" + } + }, + "id": 19091, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "amount", + "nodeType": "MemberAccess", + "referencedDeclaration": 18519, + "src": "12165:10:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 19092, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19038, + "src": "12178:7:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12165:20:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 19094, + "nodeType": "ExpressionStatement", + "src": "12165:20:45" + }, + { + "expression": { + "argumentTypes": null, + "id": 19099, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 19095, + "name": "txn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19074, + "src": "12190:3:45", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Transaction_$18528_storage_ptr", + "typeString": "struct SovrynSwapX.Transaction storage pointer" + } + }, + "id": 19097, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "fromBlockchain", + "nodeType": "MemberAccess", + "referencedDeclaration": 18521, + "src": "12190:18:45", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 19098, + "name": "_fromBlockchain", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19032, + "src": "12211:15:45", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "src": "12190:36:45", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 19100, + "nodeType": "ExpressionStatement", + "src": "12190:36:45" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 19103, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 19101, + "name": "_xTransferId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19040, + "src": "12236:12:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 19102, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12252:1:45", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "12236:17:45", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 19120, + "nodeType": "IfStatement", + "src": "12232:208:45", + "trueBody": { + "id": 19119, + "nodeType": "Block", + "src": "12255:185:45", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 19109, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 19105, + "name": "transactionIds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18565, + "src": "12333:14:45", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", + "typeString": "mapping(uint256 => uint256)" + } + }, + "id": 19107, + "indexExpression": { + "argumentTypes": null, + "id": 19106, + "name": "_xTransferId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19040, + "src": "12348:12:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "12333:28:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 19108, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12365:1:45", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "12333:33:45", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4552525f54585f414c52454144595f455849535453", + "id": 19110, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12368:23:45", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_6957b87c54e7d0624ff8a3f0dab58c7c7ceeac939294153268df0f24ee23a0a9", + "typeString": "literal_string \"ERR_TX_ALREADY_EXISTS\"" + }, + "value": "ERR_TX_ALREADY_EXISTS" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_6957b87c54e7d0624ff8a3f0dab58c7c7ceeac939294153268df0f24ee23a0a9", + "typeString": "literal_string \"ERR_TX_ALREADY_EXISTS\"" + } + ], + "id": 19104, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 22341, + 22342 + ], + "referencedDeclaration": 22342, + "src": "12325:7:45", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 19111, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12325:67:45", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 19112, + "nodeType": "ExpressionStatement", + "src": "12325:67:45" + }, + { + "expression": { + "argumentTypes": null, + "id": 19117, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 19113, + "name": "transactionIds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18565, + "src": "12398:14:45", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", + "typeString": "mapping(uint256 => uint256)" + } + }, + "id": 19115, + "indexExpression": { + "argumentTypes": null, + "id": 19114, + "name": "_xTransferId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19040, + "src": "12413:12:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "12398:28:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 19116, + "name": "_txId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19034, + "src": "12429:5:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12398:36:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 19118, + "nodeType": "ExpressionStatement", + "src": "12398:36:45" + } + ] + } + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "id": 19158, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "12752:18:45", + "subExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 19155, + "name": "txn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19074, + "src": "12752:3:45", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Transaction_$18528_storage_ptr", + "typeString": "struct SovrynSwapX.Transaction storage pointer" + } + }, + "id": 19157, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "numOfReports", + "nodeType": "MemberAccess", + "referencedDeclaration": 18525, + "src": "12752:16:45", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "id": 19159, + "nodeType": "ExpressionStatement", + "src": "12752:18:45" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 19161, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22338, + "src": "12789:3:45", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 19162, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "12789:10:45", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 19163, + "name": "_fromBlockchain", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19032, + "src": "12801:15:45", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 19164, + "name": "_txId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19034, + "src": "12818:5:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 19165, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19036, + "src": "12825:3:45", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 19166, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19038, + "src": "12830:7:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 19167, + "name": "_xTransferId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19040, + "src": "12839:12:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 19160, + "name": "TxReport", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18613, + "src": "12780:8:45", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_bytes32_$_t_uint256_$_t_address_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,bytes32,uint256,address,uint256,uint256)" + } + }, + "id": 19168, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12780:72:45", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 19169, + "nodeType": "EmitStatement", + "src": "12775:77:45" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 19173, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 19170, + "name": "txn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19074, + "src": "12914:3:45", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Transaction_$18528_storage_ptr", + "typeString": "struct SovrynSwapX.Transaction storage pointer" + } + }, + "id": 19171, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "numOfReports", + "nodeType": "MemberAccess", + "referencedDeclaration": 18525, + "src": "12914:16:45", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 19172, + "name": "minRequiredReports", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18549, + "src": "12934:18:45", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "12914:38:45", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 19201, + "nodeType": "IfStatement", + "src": "12910:282:45", + "trueBody": { + "id": 19200, + "nodeType": "Block", + "src": "12954:238:45", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 19179, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "12967:30:45", + "subExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 19175, + "name": "transactions", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18561, + "src": "12968:12:45", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Transaction_$18528_storage_$", + "typeString": "mapping(uint256 => struct SovrynSwapX.Transaction storage ref)" + } + }, + "id": 19177, + "indexExpression": { + "argumentTypes": null, + "id": 19176, + "name": "_txId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19034, + "src": "12981:5:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "12968:19:45", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Transaction_$18528_storage", + "typeString": "struct SovrynSwapX.Transaction storage ref" + } + }, + "id": 19178, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "completed", + "nodeType": "MemberAccess", + "referencedDeclaration": 18527, + "src": "12968:29:45", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4552525f54585f414c52454144595f434f4d504c45544544", + "id": 19180, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12999:26:45", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_8458c6336176452534d737fe1d081580bd6710b63bb64c5c00fe229feb3ce8c8", + "typeString": "literal_string \"ERR_TX_ALREADY_COMPLETED\"" + }, + "value": "ERR_TX_ALREADY_COMPLETED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_8458c6336176452534d737fe1d081580bd6710b63bb64c5c00fe229feb3ce8c8", + "typeString": "literal_string \"ERR_TX_ALREADY_COMPLETED\"" + } + ], + "id": 19174, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 22341, + 22342 + ], + "referencedDeclaration": 22342, + "src": "12959:7:45", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 19181, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12959:67:45", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 19182, + "nodeType": "ExpressionStatement", + "src": "12959:67:45" + }, + { + "expression": { + "argumentTypes": null, + "id": 19188, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 19183, + "name": "transactions", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18561, + "src": "13071:12:45", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Transaction_$18528_storage_$", + "typeString": "mapping(uint256 => struct SovrynSwapX.Transaction storage ref)" + } + }, + "id": 19185, + "indexExpression": { + "argumentTypes": null, + "id": 19184, + "name": "_txId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19034, + "src": "13084:5:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "13071:19:45", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Transaction_$18528_storage", + "typeString": "struct SovrynSwapX.Transaction storage ref" + } + }, + "id": 19186, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "completed", + "nodeType": "MemberAccess", + "referencedDeclaration": 18527, + "src": "13071:29:45", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 19187, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13103:4:45", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "13071:36:45", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 19189, + "nodeType": "ExpressionStatement", + "src": "13071:36:45" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 19191, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19036, + "src": "13136:3:45", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 19192, + "name": "_xTransferId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19040, + "src": "13141:12:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 19190, + "name": "XTransferComplete", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18619, + "src": "13118:17:45", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 19193, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13118:36:45", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 19194, + "nodeType": "EmitStatement", + "src": "13113:41:45" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 19196, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19036, + "src": "13174:3:45", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 19197, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19038, + "src": "13179:7:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 19195, + "name": "releaseTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19361, + "src": "13160:13:45", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 19198, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13160:27:45", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 19199, + "nodeType": "ExpressionStatement", + "src": "13160:27:45" + } + ] + } + } + ] + }, + "documentation": "@dev allows reporter to report transaction which occured on another blockchain\n\t * @param _fromBlockchain blockchain in which tokens were destroyed\n@param _txId transactionId of transaction thats being reported\n@param _to address to receive tokens\n@param _amount amount of tokens destroyed on another blockchain\n@param _xTransferId unique (if non zero) pre-determined id (unlike _txId which is determined after the transactions been mined)", + "id": 19203, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 19043, + "modifierName": { + "argumentTypes": null, + "id": 19042, + "name": "reporterOnly", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18721, + "src": "11706:12:45", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "11706:12:45" + }, + { + "arguments": null, + "id": 19045, + "modifierName": { + "argumentTypes": null, + "id": 19044, + "name": "reportingAllowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18756, + "src": "11719:16:45", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "11719:16:45" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 19047, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19036, + "src": "11749:3:45", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 19048, + "modifierName": { + "argumentTypes": null, + "id": 19046, + "name": "validAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22011, + "src": "11736:12:45", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_address_$", + "typeString": "modifier (address)" + } + }, + "nodeType": "ModifierInvocation", + "src": "11736:17:45" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 19050, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19038, + "src": "11770:7:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 19051, + "modifierName": { + "argumentTypes": null, + "id": 19049, + "name": "greaterThanZero", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21988, + "src": "11754:15:45", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$", + "typeString": "modifier (uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "11754:24:45" + } + ], + "name": "reportTx", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 19041, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 19032, + "name": "_fromBlockchain", + "nodeType": "VariableDeclaration", + "scope": 19203, + "src": "11597:23:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 19031, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "11597:7:45", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 19034, + "name": "_txId", + "nodeType": "VariableDeclaration", + "scope": 19203, + "src": "11624:13:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 19033, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11624:7:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 19036, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 19203, + "src": "11641:11:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 19035, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11641:7:45", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 19038, + "name": "_amount", + "nodeType": "VariableDeclaration", + "scope": 19203, + "src": "11656:15:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 19037, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11656:7:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 19040, + "name": "_xTransferId", + "nodeType": "VariableDeclaration", + "scope": 19203, + "src": "11675:20:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 19039, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11675:7:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "11593:105:45" + }, + "payable": false, + "returnParameters": { + "id": 19052, + "nodeType": "ParameterList", + "parameters": [], + "src": "11779:0:45" + }, + "scope": 19362, + "src": "11576:1619:45", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 19231, + "nodeType": "Block", + "src": "13649:253:45", + "statements": [ + { + "assignments": [ + 19213 + ], + "declarations": [ + { + "constant": false, + "id": 19213, + "name": "transaction", + "nodeType": "VariableDeclaration", + "scope": 19232, + "src": "13693:30:45", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Transaction_$18528_memory_ptr", + "typeString": "struct SovrynSwapX.Transaction" + }, + "typeName": { + "contractScope": null, + "id": 19212, + "name": "Transaction", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 18528, + "src": "13693:11:45", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Transaction_$18528_storage_ptr", + "typeString": "struct SovrynSwapX.Transaction" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 19219, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 19214, + "name": "transactions", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18561, + "src": "13726:12:45", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Transaction_$18528_storage_$", + "typeString": "mapping(uint256 => struct SovrynSwapX.Transaction storage ref)" + } + }, + "id": 19218, + "indexExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 19215, + "name": "transactionIds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18565, + "src": "13739:14:45", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", + "typeString": "mapping(uint256 => uint256)" + } + }, + "id": 19217, + "indexExpression": { + "argumentTypes": null, + "id": 19216, + "name": "_xTransferId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19205, + "src": "13754:12:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "13739:28:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "13726:42:45", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Transaction_$18528_storage", + "typeString": "struct SovrynSwapX.Transaction storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "13693:75:45" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 19224, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 19221, + "name": "transaction", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19213, + "src": "13826:11:45", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Transaction_$18528_memory_ptr", + "typeString": "struct SovrynSwapX.Transaction memory" + } + }, + "id": 19222, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "to", + "nodeType": "MemberAccess", + "referencedDeclaration": 18523, + "src": "13826:14:45", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 19223, + "name": "_for", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19207, + "src": "13844:4:45", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "13826:22:45", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4552525f54585f4d49534d41544348", + "id": 19225, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13850:17:45", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_39731edd6d4c0fd2309c14f2b1a935ba30b8a0693da1b0353a3c6694ebcdb4a7", + "typeString": "literal_string \"ERR_TX_MISMATCH\"" + }, + "value": "ERR_TX_MISMATCH" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_39731edd6d4c0fd2309c14f2b1a935ba30b8a0693da1b0353a3c6694ebcdb4a7", + "typeString": "literal_string \"ERR_TX_MISMATCH\"" + } + ], + "id": 19220, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 22341, + 22342 + ], + "referencedDeclaration": 22342, + "src": "13818:7:45", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 19226, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13818:50:45", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 19227, + "nodeType": "ExpressionStatement", + "src": "13818:50:45" + }, + { + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 19228, + "name": "transaction", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19213, + "src": "13880:11:45", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Transaction_$18528_memory_ptr", + "typeString": "struct SovrynSwapX.Transaction memory" + } + }, + "id": 19229, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "amount", + "nodeType": "MemberAccess", + "referencedDeclaration": 18519, + "src": "13880:18:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 19211, + "id": 19230, + "nodeType": "Return", + "src": "13873:25:45" + } + ] + }, + "documentation": "@dev gets x transfer amount by xTransferId (not txId)\n\t * @param _xTransferId unique (if non zero) pre-determined id (unlike _txId which is determined after the transactions been broadcasted)\n@param _for address corresponding to xTransferId\n\t * @return amount that was sent in xTransfer corresponding to _xTransferId", + "id": 19232, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getXTransferAmount", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 19208, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 19205, + "name": "_xTransferId", + "nodeType": "VariableDeclaration", + "scope": 19232, + "src": "13583:20:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 19204, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13583:7:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 19207, + "name": "_for", + "nodeType": "VariableDeclaration", + "scope": 19232, + "src": "13605:12:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 19206, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13605:7:45", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "13582:36:45" + }, + "payable": false, + "returnParameters": { + "id": 19211, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 19210, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 19232, + "src": "13640:7:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 19209, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13640:7:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "13639:9:45" + }, + "scope": 19362, + "src": "13555:347:45", + "stateMutability": "view", + "superFunction": 19465, + "visibility": "public" + }, + { + "body": { + "id": 19261, + "nodeType": "Block", + "src": "14098:286:45", + "statements": [ + { + "assignments": [ + 19238 + ], + "declarations": [ + { + "constant": false, + "id": 19238, + "name": "currentLockLimit", + "nodeType": "VariableDeclaration", + "scope": 19262, + "src": "14184:24:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 19237, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14184:7:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 19252, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 19249, + "name": "limitIncPerBlock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18543, + "src": "14275:16:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 19245, + "name": "prevLockBlockNumber", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18545, + "src": "14249:19:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 19241, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22328, + "src": "14231:5:45", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 19242, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "number", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "14231:12:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 19243, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "14230:14:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 19244, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 21758, + "src": "14230:18:45", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 19246, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14230:39:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 19247, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "14229:41:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 19248, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 21791, + "src": "14229:45:45", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 19250, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14229:63:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 19239, + "name": "prevLockLimit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18539, + "src": "14211:13:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 19240, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 21737, + "src": "14211:17:45", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 19251, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14211:82:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "14184:109:45" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 19255, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 19253, + "name": "currentLockLimit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19238, + "src": "14301:16:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "id": 19254, + "name": "maxLockLimit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18533, + "src": "14320:12:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "14301:31:45", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 19258, + "nodeType": "IfStatement", + "src": "14297:56:45", + "trueBody": { + "expression": { + "argumentTypes": null, + "id": 19256, + "name": "maxLockLimit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18533, + "src": "14341:12:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 19236, + "id": 19257, + "nodeType": "Return", + "src": "14334:19:45" + } + }, + { + "expression": { + "argumentTypes": null, + "id": 19259, + "name": "currentLockLimit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19238, + "src": "14364:16:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 19236, + "id": 19260, + "nodeType": "Return", + "src": "14357:23:45" + } + ] + }, + "documentation": "@dev method for calculating current lock limit\n\t * @return the current maximum limit of tokens that can be locked", + "id": 19262, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getCurrentLockLimit", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 19233, + "nodeType": "ParameterList", + "parameters": [], + "src": "14065:2:45" + }, + "payable": false, + "returnParameters": { + "id": 19236, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 19235, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 19262, + "src": "14089:7:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 19234, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14089:7:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "14088:9:45" + }, + "scope": 19362, + "src": "14037:347:45", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 19291, + "nodeType": "Block", + "src": "14588:313:45", + "statements": [ + { + "assignments": [ + 19268 + ], + "declarations": [ + { + "constant": false, + "id": 19268, + "name": "currentReleaseLimit", + "nodeType": "VariableDeclaration", + "scope": 19292, + "src": "14680:27:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 19267, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14680:7:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 19282, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 19279, + "name": "limitIncPerBlock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18543, + "src": "14780:16:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 19275, + "name": "prevReleaseBlockNumber", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18547, + "src": "14751:22:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 19271, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22328, + "src": "14733:5:45", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 19272, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "number", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "14733:12:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 19273, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "14732:14:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 19274, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 21758, + "src": "14732:18:45", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 19276, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14732:42:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 19277, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "14731:44:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 19278, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 21791, + "src": "14731:48:45", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 19280, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14731:66:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 19269, + "name": "prevReleaseLimit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18541, + "src": "14710:16:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 19270, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 21737, + "src": "14710:20:45", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 19281, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14710:88:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "14680:118:45" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 19285, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 19283, + "name": "currentReleaseLimit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19268, + "src": "14806:19:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "id": 19284, + "name": "maxReleaseLimit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18535, + "src": "14828:15:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "14806:37:45", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 19288, + "nodeType": "IfStatement", + "src": "14802:65:45", + "trueBody": { + "expression": { + "argumentTypes": null, + "id": 19286, + "name": "maxReleaseLimit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18535, + "src": "14852:15:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 19266, + "id": 19287, + "nodeType": "Return", + "src": "14845:22:45" + } + }, + { + "expression": { + "argumentTypes": null, + "id": 19289, + "name": "currentReleaseLimit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19268, + "src": "14878:19:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 19266, + "id": 19290, + "nodeType": "Return", + "src": "14871:26:45" + } + ] + }, + "documentation": "@dev method for calculating current release limit\n\t * @return the current maximum limit of tokens that can be released", + "id": 19292, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getCurrentReleaseLimit", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 19263, + "nodeType": "ParameterList", + "parameters": [], + "src": "14555:2:45" + }, + "payable": false, + "returnParameters": { + "id": 19266, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 19265, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 19292, + "src": "14579:7:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 19264, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14579:7:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "14578:9:45" + }, + "scope": 19362, + "src": "14524:377:45", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 19313, + "nodeType": "Block", + "src": "15109:107:45", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 19298, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 18551 + ], + "referencedDeclaration": 18551, + "src": "15130:5:45", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 19299, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22338, + "src": "15137:3:45", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 19300, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "15137:10:45", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 19302, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22507, + "src": "15157:4:45", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SovrynSwapX_$19362", + "typeString": "contract SovrynSwapX" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_SovrynSwapX_$19362", + "typeString": "contract SovrynSwapX" + } + ], + "id": 19301, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "15149:7:45", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 19303, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15149:13:45", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 19304, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19294, + "src": "15164:7:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 19297, + "name": "safeTransferFrom", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21904, + "src": "15113:16:45", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20Token_$20240_$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (contract IERC20Token,address,address,uint256)" + } + }, + "id": 19305, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15113:59:45", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 19306, + "nodeType": "ExpressionStatement", + "src": "15113:59:45" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 19308, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22338, + "src": "15192:3:45", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 19309, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "15192:10:45", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 19310, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19294, + "src": "15204:7:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 19307, + "name": "TokensLock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18581, + "src": "15181:10:45", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 19311, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15181:31:45", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 19312, + "nodeType": "EmitStatement", + "src": "15176:36:45" + } + ] + }, + "documentation": "@dev claims and locks tokens from msg.sender to be converted to tokens on another blockchain\n\t * @param _amount the amount of tokens to lock", + "id": 19314, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "lockTokens", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 19295, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 19294, + "name": "_amount", + "nodeType": "VariableDeclaration", + "scope": 19314, + "src": "15084:15:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 19293, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15084:7:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "15083:17:45" + }, + "payable": false, + "returnParameters": { + "id": 19296, + "nodeType": "ParameterList", + "parameters": [], + "src": "15109:0:45" + }, + "scope": 19362, + "src": "15064:152:45", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "private" + }, + { + "body": { + "id": 19360, + "nodeType": "Block", + "src": "15462:459:45", + "statements": [ + { + "assignments": [ + 19322 + ], + "declarations": [ + { + "constant": false, + "id": 19322, + "name": "currentReleaseLimit", + "nodeType": "VariableDeclaration", + "scope": 19361, + "src": "15501:27:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 19321, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15501:7:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 19325, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 19323, + "name": "getCurrentReleaseLimit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19292, + "src": "15531:22:45", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 19324, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15531:24:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15501:54:45" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 19333, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 19329, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 19327, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19318, + "src": "15568:7:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 19328, + "name": "minLimit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18537, + "src": "15579:8:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "15568:19:45", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 19332, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 19330, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19318, + "src": "15591:7:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "id": 19331, + "name": "currentReleaseLimit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19322, + "src": "15602:19:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "15591:30:45", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "15568:53:45", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4552525f414d4f554e545f544f4f5f48494748", + "id": 19334, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15623:21:45", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_ea546d9a31e2cdf5ff54bd756b604340a9be1b0f1b5565f1667d358efb53a459", + "typeString": "literal_string \"ERR_AMOUNT_TOO_HIGH\"" + }, + "value": "ERR_AMOUNT_TOO_HIGH" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_ea546d9a31e2cdf5ff54bd756b604340a9be1b0f1b5565f1667d358efb53a459", + "typeString": "literal_string \"ERR_AMOUNT_TOO_HIGH\"" + } + ], + "id": 19326, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 22341, + 22342 + ], + "referencedDeclaration": 22342, + "src": "15560:7:45", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 19335, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15560:85:45", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 19336, + "nodeType": "ExpressionStatement", + "src": "15560:85:45" + }, + { + "expression": { + "argumentTypes": null, + "id": 19342, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 19337, + "name": "prevReleaseLimit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18541, + "src": "15706:16:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 19340, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19318, + "src": "15749:7:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 19338, + "name": "currentReleaseLimit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19322, + "src": "15725:19:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 19339, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 21758, + "src": "15725:23:45", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 19341, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15725:32:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "15706:51:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 19343, + "nodeType": "ExpressionStatement", + "src": "15706:51:45" + }, + { + "expression": { + "argumentTypes": null, + "id": 19347, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 19344, + "name": "prevReleaseBlockNumber", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18547, + "src": "15761:22:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 19345, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22328, + "src": "15786:5:45", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 19346, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "number", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "15786:12:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "15761:37:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 19348, + "nodeType": "ExpressionStatement", + "src": "15761:37:45" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 19350, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 18551 + ], + "referencedDeclaration": 18551, + "src": "15860:5:45", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + { + "argumentTypes": null, + "id": 19351, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19316, + "src": "15867:3:45", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 19352, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19318, + "src": "15872:7:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 19349, + "name": "safeTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21881, + "src": "15847:12:45", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20Token_$20240_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (contract IERC20Token,address,uint256)" + } + }, + "id": 19353, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15847:33:45", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 19354, + "nodeType": "ExpressionStatement", + "src": "15847:33:45" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 19356, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19316, + "src": "15904:3:45", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 19357, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19318, + "src": "15909:7:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 19355, + "name": "TokensRelease", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18587, + "src": "15890:13:45", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 19358, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15890:27:45", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 19359, + "nodeType": "EmitStatement", + "src": "15885:32:45" + } + ] + }, + "documentation": "@dev private method to release tokens held by the contract\n\t * @param _to the address to release tokens to\n@param _amount the amount of tokens to release", + "id": 19361, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "releaseTokens", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 19319, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 19316, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 19361, + "src": "15424:11:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 19315, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15424:7:45", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 19318, + "name": "_amount", + "nodeType": "VariableDeclaration", + "scope": 19361, + "src": "15437:15:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 19317, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15437:7:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "15423:30:45" + }, + "payable": false, + "returnParameters": { + "id": 19320, + "nodeType": "ParameterList", + "parameters": [], + "src": "15462:0:45" + }, + "scope": 19362, + "src": "15401:520:45", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "private" + } + ], + "scope": 19363, + "src": "835:15088:45" + } + ], + "src": "0:15924:45" + }, + "id": 45 + }, + "solidity/contracts/sovrynswapx/XTransferRerouter.sol": { + "ast": { + "absolutePath": "solidity/contracts/sovrynswapx/XTransferRerouter.sol", + "exportedSymbols": { + "XTransferRerouter": [ + 19434 + ] + }, + "id": 19435, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 19364, + "literals": [ + "solidity", + "0.4", + ".26" + ], + "nodeType": "PragmaDirective", + "src": "0:23:46" + }, + { + "absolutePath": "solidity/contracts/utility/Owned.sol", + "file": "../utility/Owned.sol", + "id": 19365, + "nodeType": "ImportDirective", + "scope": 19435, + "sourceUnit": 21325, + "src": "24:30:46", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 19366, + "name": "Owned", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 21324, + "src": "86:5:46", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Owned_$21324", + "typeString": "contract Owned" + } + }, + "id": 19367, + "nodeType": "InheritanceSpecifier", + "src": "86:5:46" + } + ], + "contractDependencies": [ + 21324, + 22247 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 19434, + "linearizedBaseContracts": [ + 19434, + 21324, + 22247 + ], + "name": "XTransferRerouter", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 19369, + "name": "reroutingEnabled", + "nodeType": "VariableDeclaration", + "scope": 19434, + "src": "95:28:46", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 19368, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "95:4:46", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "public" + }, + { + "anonymous": false, + "documentation": null, + "id": 19377, + "name": "TxReroute", + "nodeType": "EventDefinition", + "parameters": { + "id": 19376, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 19371, + "indexed": true, + "name": "_txId", + "nodeType": "VariableDeclaration", + "scope": 19377, + "src": "184:21:46", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 19370, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "184:7:46", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 19373, + "indexed": false, + "name": "_toBlockchain", + "nodeType": "VariableDeclaration", + "scope": 19377, + "src": "207:21:46", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 19372, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "207:7:46", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 19375, + "indexed": false, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 19377, + "src": "230:11:46", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 19374, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "230:7:46", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "183:59:46" + }, + "src": "168:75:46" + }, + { + "body": { + "id": 19386, + "nodeType": "Block", + "src": "441:44:46", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 19384, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 19382, + "name": "reroutingEnabled", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19369, + "src": "445:16:46", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 19383, + "name": "_reroutingEnabled", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19379, + "src": "464:17:46", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "445:36:46", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 19385, + "nodeType": "ExpressionStatement", + "src": "445:36:46" + } + ] + }, + "documentation": "@dev initializes a new XTransferRerouter instance\n\t * @param _reroutingEnabled intializes transactions routing to enabled/disabled", + "id": 19387, + "implemented": true, + "isConstructor": true, + "isDeclaredConst": false, + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 19380, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 19379, + "name": "_reroutingEnabled", + "nodeType": "VariableDeclaration", + "scope": 19387, + "src": "410:22:46", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 19378, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "410:4:46", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "409:24:46" + }, + "payable": false, + "returnParameters": { + "id": 19381, + "nodeType": "ParameterList", + "parameters": [], + "src": "441:0:46" + }, + "scope": 19434, + "src": "398:87:46", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 19398, + "nodeType": "Block", + "src": "668:34:46", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 19396, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 19394, + "name": "reroutingEnabled", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19369, + "src": "672:16:46", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 19395, + "name": "_enable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19389, + "src": "691:7:46", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "672:26:46", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 19397, + "nodeType": "ExpressionStatement", + "src": "672:26:46" + } + ] + }, + "documentation": "@dev allows the owner to disable/enable rerouting\n\t * @param _enable true to enable, false to disable", + "id": 19399, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 19392, + "modifierName": { + "argumentTypes": null, + "id": 19391, + "name": "ownerOnly", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21265, + "src": "658:9:46", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "658:9:46" + } + ], + "name": "enableRerouting", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 19390, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 19389, + "name": "_enable", + "nodeType": "VariableDeclaration", + "scope": 19399, + "src": "637:12:46", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 19388, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "637:4:46", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "636:14:46" + }, + "payable": false, + "returnParameters": { + "id": 19393, + "nodeType": "ParameterList", + "parameters": [], + "src": "668:0:46" + }, + "scope": 19434, + "src": "612:90:46", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 19405, + "nodeType": "Block", + "src": "780:32:46", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 19401, + "name": "_reroutingAllowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19415, + "src": "784:17:46", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$__$", + "typeString": "function () view" + } + }, + "id": 19402, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "784:19:46", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 19403, + "nodeType": "ExpressionStatement", + "src": "784:19:46" + }, + { + "id": 19404, + "nodeType": "PlaceholderStatement", + "src": "807:1:46" + } + ] + }, + "documentation": null, + "id": 19406, + "name": "reroutingAllowed", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 19400, + "nodeType": "ParameterList", + "parameters": [], + "src": "780:0:46" + }, + "src": "754:58:46", + "visibility": "internal" + }, + { + "body": { + "id": 19414, + "nodeType": "Block", + "src": "901:49:46", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 19410, + "name": "reroutingEnabled", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19369, + "src": "913:16:46", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4552525f44495341424c4544", + "id": 19411, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "931:14:46", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_9d3ff080c987bf451b6124b46a2d27535e787d6af81fbc565831013f54fd3a71", + "typeString": "literal_string \"ERR_DISABLED\"" + }, + "value": "ERR_DISABLED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_9d3ff080c987bf451b6124b46a2d27535e787d6af81fbc565831013f54fd3a71", + "typeString": "literal_string \"ERR_DISABLED\"" + } + ], + "id": 19409, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 22341, + 22342 + ], + "referencedDeclaration": 22342, + "src": "905:7:46", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 19412, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "905:41:46", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 19413, + "nodeType": "ExpressionStatement", + "src": "905:41:46" + } + ] + }, + "documentation": null, + "id": 19415, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "_reroutingAllowed", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 19407, + "nodeType": "ParameterList", + "parameters": [], + "src": "884:2:46" + }, + "payable": false, + "returnParameters": { + "id": 19408, + "nodeType": "ParameterList", + "parameters": [], + "src": "901:0:46" + }, + "scope": 19434, + "src": "858:92:46", + "stateMutability": "view", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 19432, + "nodeType": "Block", + "src": "1309:47:46", + "statements": [ + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 19427, + "name": "_txId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19417, + "src": "1328:5:46", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 19428, + "name": "_blockchain", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19419, + "src": "1335:11:46", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 19429, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19421, + "src": "1348:3:46", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 19426, + "name": "TxReroute", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19377, + "src": "1318:9:46", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_bytes32_$_t_bytes32_$returns$__$", + "typeString": "function (uint256,bytes32,bytes32)" + } + }, + "id": 19430, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1318:34:46", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 19431, + "nodeType": "EmitStatement", + "src": "1313:39:46" + } + ] + }, + "documentation": "@dev allows a user to reroute a transaction to a new blockchain/target address\n\t * @param _txId the original transaction id\n@param _blockchain the new blockchain name\n@param _to the new target address/account", + "id": 19433, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 19424, + "modifierName": { + "argumentTypes": null, + "id": 19423, + "name": "reroutingAllowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19406, + "src": "1292:16:46", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "1292:16:46" + } + ], + "name": "rerouteTx", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 19422, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 19417, + "name": "_txId", + "nodeType": "VariableDeclaration", + "scope": 19433, + "src": "1230:13:46", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 19416, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1230:7:46", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 19419, + "name": "_blockchain", + "nodeType": "VariableDeclaration", + "scope": 19433, + "src": "1247:19:46", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 19418, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1247:7:46", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 19421, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 19433, + "src": "1270:11:46", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 19420, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1270:7:46", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1226:58:46" + }, + "payable": false, + "returnParameters": { + "id": 19425, + "nodeType": "ParameterList", + "parameters": [], + "src": "1309:0:46" + }, + "scope": 19434, + "src": "1208:148:46", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 19435, + "src": "56:1302:46" + } + ], + "src": "0:1359:46" + }, + "id": 46 + }, + "solidity/contracts/sovrynswapx/interfaces/ISovrynSwapX.sol": { + "ast": { + "absolutePath": "solidity/contracts/sovrynswapx/interfaces/ISovrynSwapX.sol", + "exportedSymbols": { + "ISovrynSwapX": [ + 19466 + ] + }, + "id": 19467, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 19436, + "literals": [ + "solidity", + "0.4", + ".26" + ], + "nodeType": "PragmaDirective", + "src": "0:23:47" + }, + { + "absolutePath": "solidity/contracts/token/interfaces/IERC20Token.sol", + "file": "../../token/interfaces/IERC20Token.sol", + "id": 19437, + "nodeType": "ImportDirective", + "scope": 19467, + "sourceUnit": 20241, + "src": "24:48:47", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": false, + "id": 19466, + "linearizedBaseContracts": [ + 19466 + ], + "name": "ISovrynSwapX", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 19444, + "nodeType": "Block", + "src": "150:12:47", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 19442, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22393, + "src": "154:4:47", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISovrynSwapX_$19466", + "typeString": "contract ISovrynSwapX" + } + }, + "id": 19443, + "nodeType": "ExpressionStatement", + "src": "154:4:47" + } + ] + }, + "documentation": null, + "id": 19445, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "token", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 19438, + "nodeType": "ParameterList", + "parameters": [], + "src": "113:2:47" + }, + "payable": false, + "returnParameters": { + "id": 19441, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 19440, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 19445, + "src": "137:11:47", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + "typeName": { + "contractScope": null, + "id": 19439, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "137:11:47", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "136:13:47" + }, + "scope": 19466, + "src": "99:63:47", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 19456, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "xTransfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 19454, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 19447, + "name": "_toBlockchain", + "nodeType": "VariableDeclaration", + "scope": 19456, + "src": "187:21:47", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 19446, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "187:7:47", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 19449, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 19456, + "src": "212:11:47", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 19448, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "212:7:47", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 19451, + "name": "_amount", + "nodeType": "VariableDeclaration", + "scope": 19456, + "src": "227:15:47", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 19450, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "227:7:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 19453, + "name": "_id", + "nodeType": "VariableDeclaration", + "scope": 19456, + "src": "246:11:47", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 19452, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "246:7:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "183:77:47" + }, + "payable": false, + "returnParameters": { + "id": 19455, + "nodeType": "ParameterList", + "parameters": [], + "src": "267:0:47" + }, + "scope": 19466, + "src": "165:103:47", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 19465, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getXTransferAmount", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 19461, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 19458, + "name": "_xTransferId", + "nodeType": "VariableDeclaration", + "scope": 19465, + "src": "299:20:47", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 19457, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "299:7:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 19460, + "name": "_for", + "nodeType": "VariableDeclaration", + "scope": 19465, + "src": "321:12:47", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 19459, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "321:7:47", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "298:36:47" + }, + "payable": false, + "returnParameters": { + "id": 19464, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 19463, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 19465, + "src": "356:7:47", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 19462, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "356:7:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "355:9:47" + }, + "scope": 19466, + "src": "271:94:47", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 19467, + "src": "74:293:47" + } + ], + "src": "0:368:47" + }, + "id": 47 + }, + "solidity/contracts/sovrynswapx/interfaces/ISovrynSwapXUpgrader.sol": { + "ast": { + "absolutePath": "solidity/contracts/sovrynswapx/interfaces/ISovrynSwapXUpgrader.sol", + "exportedSymbols": { + "ISovrynSwapXUpgrader": [ + 19477 + ] + }, + "id": 19478, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 19468, + "literals": [ + "solidity", + "0.4", + ".26" + ], + "nodeType": "PragmaDirective", + "src": "0:23:48" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": false, + "id": 19477, + "linearizedBaseContracts": [ + 19477 + ], + "name": "ISovrynSwapXUpgrader", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": null, + "id": 19476, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "upgrade", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 19474, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 19470, + "name": "_version", + "nodeType": "VariableDeclaration", + "scope": 19476, + "src": "117:15:48", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 19469, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "117:6:48", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 19473, + "name": "_reporters", + "nodeType": "VariableDeclaration", + "scope": 19476, + "src": "134:20:48", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 19471, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "134:7:48", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 19472, + "length": null, + "nodeType": "ArrayTypeName", + "src": "134:9:48", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "116:39:48" + }, + "payable": false, + "returnParameters": { + "id": 19475, + "nodeType": "ParameterList", + "parameters": [], + "src": "162:0:48" + }, + "scope": 19477, + "src": "100:63:48", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 19478, + "src": "67:98:48" + } + ], + "src": "0:166:48" + }, + "id": 48 + }, + "solidity/contracts/token/ERC20Token.sol": { + "ast": { + "absolutePath": "solidity/contracts/token/ERC20Token.sol", + "exportedSymbols": { + "ERC20Token": [ + 19737 + ] + }, + "id": 19738, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 19479, + "literals": [ + "solidity", + "0.4", + ".26" + ], + "nodeType": "PragmaDirective", + "src": "0:23:49" + }, + { + "absolutePath": "solidity/contracts/token/interfaces/IERC20Token.sol", + "file": "./interfaces/IERC20Token.sol", + "id": 19480, + "nodeType": "ImportDirective", + "scope": 19738, + "sourceUnit": 20241, + "src": "24:38:49", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "solidity/contracts/utility/Utils.sol", + "file": "../utility/Utils.sol", + "id": 19481, + "nodeType": "ImportDirective", + "scope": 19738, + "sourceUnit": 22053, + "src": "63:30:49", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "solidity/contracts/utility/SafeMath.sol", + "file": "../utility/SafeMath.sol", + "id": 19482, + "nodeType": "ImportDirective", + "scope": 19738, + "sourceUnit": 21818, + "src": "94:33:49", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 19483, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "204:11:49", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "id": 19484, + "nodeType": "InheritanceSpecifier", + "src": "204:11:49" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 19485, + "name": "Utils", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 22052, + "src": "217:5:49", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Utils_$22052", + "typeString": "contract Utils" + } + }, + "id": 19486, + "nodeType": "InheritanceSpecifier", + "src": "217:5:49" + } + ], + "contractDependencies": [ + 20240, + 22052 + ], + "contractKind": "contract", + "documentation": "@dev ERC20 Standard Token implementation", + "fullyImplemented": true, + "id": 19737, + "linearizedBaseContracts": [ + 19737, + 22052, + 20240 + ], + "name": "ERC20Token", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 19489, + "libraryName": { + "contractScope": null, + "id": 19487, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 21817, + "src": "232:8:49", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$21817", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "226:27:49", + "typeName": { + "id": 19488, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "245:7:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "constant": false, + "id": 19491, + "name": "name", + "nodeType": "VariableDeclaration", + "scope": 19737, + "src": "256:18:49", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 19490, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "256:6:49", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 19493, + "name": "symbol", + "nodeType": "VariableDeclaration", + "scope": 19737, + "src": "277:20:49", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 19492, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "277:6:49", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 19495, + "name": "decimals", + "nodeType": "VariableDeclaration", + "scope": 19737, + "src": "300:21:49", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 19494, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "300:5:49", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 19497, + "name": "totalSupply", + "nodeType": "VariableDeclaration", + "scope": 19737, + "src": "324:26:49", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 19496, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "324:7:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 19501, + "name": "balanceOf", + "nodeType": "VariableDeclaration", + "scope": 19737, + "src": "353:44:49", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 19500, + "keyType": { + "id": 19498, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "361:7:49", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "353:27:49", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 19499, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "372:7:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 19507, + "name": "allowance", + "nodeType": "VariableDeclaration", + "scope": 19737, + "src": "400:64:49", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "typeName": { + "id": 19506, + "keyType": { + "id": 19502, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "408:7:49", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "400:47:49", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "valueType": { + "id": 19505, + "keyType": { + "id": 19503, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "427:7:49", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "419:27:49", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 19504, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "438:7:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + } + }, + "value": null, + "visibility": "public" + }, + { + "anonymous": false, + "documentation": "@dev triggered when tokens are transferred between wallets\n\t * @param _from source address\n@param _to target address\n@param _value transfer amount", + "id": 19515, + "name": "Transfer", + "nodeType": "EventDefinition", + "parameters": { + "id": 19514, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 19509, + "indexed": true, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 19515, + "src": "666:21:49", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 19508, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "666:7:49", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 19511, + "indexed": true, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 19515, + "src": "689:19:49", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 19510, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "689:7:49", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 19513, + "indexed": false, + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 19515, + "src": "710:14:49", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 19512, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "710:7:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "665:60:49" + }, + "src": "651:75:49" + }, + { + "anonymous": false, + "documentation": "@dev triggered when a wallet allows another wallet to transfer tokens from on its behalf\n\t * @param _owner wallet that approves the allowance\n@param _spender wallet that receives the allowance\n@param _value allowance amount", + "id": 19523, + "name": "Approval", + "nodeType": "EventDefinition", + "parameters": { + "id": 19522, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 19517, + "indexed": true, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 19523, + "src": "998:22:49", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 19516, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "998:7:49", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 19519, + "indexed": true, + "name": "_spender", + "nodeType": "VariableDeclaration", + "scope": 19523, + "src": "1022:24:49", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 19518, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1022:7:49", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 19521, + "indexed": false, + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 19523, + "src": "1048:14:49", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 19520, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1048:7:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "997:66:49" + }, + "src": "983:81:49" + }, + { + "body": { + "id": 19577, + "nodeType": "Block", + "src": "1412:271:49", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 19540, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 19536, + "name": "_name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19525, + "src": "1450:5:49", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 19535, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1444:5:49", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": "bytes" + }, + "id": 19537, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1444:12:49", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory", + "typeString": "bytes memory" + } + }, + "id": 19538, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1444:19:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 19539, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1466:1:49", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1444:23:49", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4552525f494e56414c49445f4e414d45", + "id": 19541, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1469:18:49", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_8c31b897cf1b4c41d9a3a2c9019700f5d8d0c36c906997985403c8f4610f8246", + "typeString": "literal_string \"ERR_INVALID_NAME\"" + }, + "value": "ERR_INVALID_NAME" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_8c31b897cf1b4c41d9a3a2c9019700f5d8d0c36c906997985403c8f4610f8246", + "typeString": "literal_string \"ERR_INVALID_NAME\"" + } + ], + "id": 19534, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 22341, + 22342 + ], + "referencedDeclaration": 22342, + "src": "1436:7:49", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 19542, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1436:52:49", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 19543, + "nodeType": "ExpressionStatement", + "src": "1436:52:49" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 19550, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 19546, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19527, + "src": "1506:7:49", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 19545, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1500:5:49", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": "bytes" + }, + "id": 19547, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1500:14:49", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory", + "typeString": "bytes memory" + } + }, + "id": 19548, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1500:21:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 19549, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1524:1:49", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1500:25:49", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4552525f494e56414c49445f53594d424f4c", + "id": 19551, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1527:20:49", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_8cbe13dffb618f268f4d803a75787a665744c462e7a6ba0f32e015df7f7a2fda", + "typeString": "literal_string \"ERR_INVALID_SYMBOL\"" + }, + "value": "ERR_INVALID_SYMBOL" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_8cbe13dffb618f268f4d803a75787a665744c462e7a6ba0f32e015df7f7a2fda", + "typeString": "literal_string \"ERR_INVALID_SYMBOL\"" + } + ], + "id": 19544, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 22341, + 22342 + ], + "referencedDeclaration": 22342, + "src": "1492:7:49", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 19552, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1492:56:49", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 19553, + "nodeType": "ExpressionStatement", + "src": "1492:56:49" + }, + { + "expression": { + "argumentTypes": null, + "id": 19556, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 19554, + "name": "name", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 19491 + ], + "referencedDeclaration": 19491, + "src": "1553:4:49", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 19555, + "name": "_name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19525, + "src": "1560:5:49", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "1553:12:49", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 19557, + "nodeType": "ExpressionStatement", + "src": "1553:12:49" + }, + { + "expression": { + "argumentTypes": null, + "id": 19560, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 19558, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 19493 + ], + "referencedDeclaration": 19493, + "src": "1569:6:49", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 19559, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19527, + "src": "1578:7:49", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "1569:16:49", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 19561, + "nodeType": "ExpressionStatement", + "src": "1569:16:49" + }, + { + "expression": { + "argumentTypes": null, + "id": 19564, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 19562, + "name": "decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 19495 + ], + "referencedDeclaration": 19495, + "src": "1589:8:49", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 19563, + "name": "_decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19529, + "src": "1600:9:49", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "1589:20:49", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "id": 19565, + "nodeType": "ExpressionStatement", + "src": "1589:20:49" + }, + { + "expression": { + "argumentTypes": null, + "id": 19568, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 19566, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 19497 + ], + "referencedDeclaration": 19497, + "src": "1613:11:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 19567, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19531, + "src": "1627:12:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1613:26:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 19569, + "nodeType": "ExpressionStatement", + "src": "1613:26:49" + }, + { + "expression": { + "argumentTypes": null, + "id": 19575, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 19570, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 19501 + ], + "referencedDeclaration": 19501, + "src": "1643:9:49", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 19573, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 19571, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22338, + "src": "1653:3:49", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 19572, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1653:10:49", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1643:21:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 19574, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19531, + "src": "1667:12:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1643:36:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 19576, + "nodeType": "ExpressionStatement", + "src": "1643:36:49" + } + ] + }, + "documentation": "@dev initializes a new ERC20Token instance\n\t * @param _name token name\n@param _symbol token symbol\n@param _decimals decimal points, for display purposes\n@param _totalSupply total supply of token units", + "id": 19578, + "implemented": true, + "isConstructor": true, + "isDeclaredConst": false, + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 19532, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 19525, + "name": "_name", + "nodeType": "VariableDeclaration", + "scope": 19578, + "src": "1328:12:49", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 19524, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1328:6:49", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 19527, + "name": "_symbol", + "nodeType": "VariableDeclaration", + "scope": 19578, + "src": "1344:14:49", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 19526, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1344:6:49", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 19529, + "name": "_decimals", + "nodeType": "VariableDeclaration", + "scope": 19578, + "src": "1362:15:49", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 19528, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "1362:5:49", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 19531, + "name": "_totalSupply", + "nodeType": "VariableDeclaration", + "scope": 19578, + "src": "1381:20:49", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 19530, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1381:7:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1324:80:49" + }, + "payable": false, + "returnParameters": { + "id": 19533, + "nodeType": "ParameterList", + "parameters": [], + "src": "1412:0:49" + }, + "scope": 19737, + "src": "1313:370:49", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 19623, + "nodeType": "Block", + "src": "2063:169:49", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 19601, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 19590, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 19501 + ], + "referencedDeclaration": 19501, + "src": "2067:9:49", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 19593, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 19591, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22338, + "src": "2077:3:49", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 19592, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2077:10:49", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2067:21:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 19599, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19582, + "src": "2117:6:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 19594, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 19501 + ], + "referencedDeclaration": 19501, + "src": "2091:9:49", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 19597, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 19595, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22338, + "src": "2101:3:49", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 19596, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2101:10:49", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2091:21:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 19598, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 21758, + "src": "2091:25:49", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 19600, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2091:33:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2067:57:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 19602, + "nodeType": "ExpressionStatement", + "src": "2067:57:49" + }, + { + "expression": { + "argumentTypes": null, + "id": 19612, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 19603, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 19501 + ], + "referencedDeclaration": 19501, + "src": "2128:9:49", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 19605, + "indexExpression": { + "argumentTypes": null, + "id": 19604, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19580, + "src": "2138:3:49", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2128:14:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 19610, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19582, + "src": "2164:6:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 19606, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 19501 + ], + "referencedDeclaration": 19501, + "src": "2145:9:49", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 19608, + "indexExpression": { + "argumentTypes": null, + "id": 19607, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19580, + "src": "2155:3:49", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2145:14:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 19609, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 21737, + "src": "2145:18:49", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 19611, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2145:26:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2128:43:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 19613, + "nodeType": "ExpressionStatement", + "src": "2128:43:49" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 19615, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22338, + "src": "2189:3:49", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 19616, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2189:10:49", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 19617, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19580, + "src": "2201:3:49", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 19618, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19582, + "src": "2206:6:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 19614, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19515, + "src": "2180:8:49", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 19619, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2180:33:49", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 19620, + "nodeType": "EmitStatement", + "src": "2175:38:49" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 19621, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2224:4:49", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 19589, + "id": 19622, + "nodeType": "Return", + "src": "2217:11:49" + } + ] + }, + "documentation": "@dev transfers tokens to a given address\nthrows on any error rather then return a false flag to minimize user errors\n\t * @param _to target address\n@param _value transfer amount\n\t * @return true if the transfer was successful, false if it wasn't", + "id": 19624, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 19585, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19580, + "src": "2035:3:49", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 19586, + "modifierName": { + "argumentTypes": null, + "id": 19584, + "name": "validAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22011, + "src": "2022:12:49", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_address_$", + "typeString": "modifier (address)" + } + }, + "nodeType": "ModifierInvocation", + "src": "2022:17:49" + } + ], + "name": "transfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 19583, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 19580, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 19624, + "src": "1986:11:49", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 19579, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1986:7:49", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 19582, + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 19624, + "src": "1999:14:49", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 19581, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1999:7:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1985:29:49" + }, + "payable": false, + "returnParameters": { + "id": 19589, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 19588, + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 19624, + "src": "2049:12:49", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 19587, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2049:4:49", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2048:14:49" + }, + "scope": 19737, + "src": "1968:264:49", + "stateMutability": "nonpayable", + "superFunction": 20219, + "visibility": "public" + }, + { + "body": { + "id": 19688, + "nodeType": "Block", + "src": "2724:229:49", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 19656, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 19641, + "name": "allowance", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 19507 + ], + "referencedDeclaration": 19507, + "src": "2728:9:49", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 19645, + "indexExpression": { + "argumentTypes": null, + "id": 19642, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19626, + "src": "2738:5:49", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2728:16:49", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 19646, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 19643, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22338, + "src": "2745:3:49", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 19644, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2745:10:49", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2728:28:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 19654, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19630, + "src": "2792:6:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 19647, + "name": "allowance", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 19507 + ], + "referencedDeclaration": 19507, + "src": "2759:9:49", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 19649, + "indexExpression": { + "argumentTypes": null, + "id": 19648, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19626, + "src": "2769:5:49", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2759:16:49", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 19652, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 19650, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22338, + "src": "2776:3:49", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 19651, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2776:10:49", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2759:28:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 19653, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 21758, + "src": "2759:32:49", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 19655, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2759:40:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2728:71:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 19657, + "nodeType": "ExpressionStatement", + "src": "2728:71:49" + }, + { + "expression": { + "argumentTypes": null, + "id": 19667, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 19658, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 19501 + ], + "referencedDeclaration": 19501, + "src": "2803:9:49", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 19660, + "indexExpression": { + "argumentTypes": null, + "id": 19659, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19626, + "src": "2813:5:49", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2803:16:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 19665, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19630, + "src": "2843:6:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 19661, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 19501 + ], + "referencedDeclaration": 19501, + "src": "2822:9:49", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 19663, + "indexExpression": { + "argumentTypes": null, + "id": 19662, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19626, + "src": "2832:5:49", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2822:16:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 19664, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 21758, + "src": "2822:20:49", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 19666, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2822:28:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2803:47:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 19668, + "nodeType": "ExpressionStatement", + "src": "2803:47:49" + }, + { + "expression": { + "argumentTypes": null, + "id": 19678, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 19669, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 19501 + ], + "referencedDeclaration": 19501, + "src": "2854:9:49", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 19671, + "indexExpression": { + "argumentTypes": null, + "id": 19670, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19628, + "src": "2864:3:49", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2854:14:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 19676, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19630, + "src": "2890:6:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 19672, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 19501 + ], + "referencedDeclaration": 19501, + "src": "2871:9:49", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 19674, + "indexExpression": { + "argumentTypes": null, + "id": 19673, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19628, + "src": "2881:3:49", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2871:14:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 19675, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 21737, + "src": "2871:18:49", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 19677, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2871:26:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2854:43:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 19679, + "nodeType": "ExpressionStatement", + "src": "2854:43:49" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 19681, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19626, + "src": "2915:5:49", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 19682, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19628, + "src": "2922:3:49", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 19683, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19630, + "src": "2927:6:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 19680, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19515, + "src": "2906:8:49", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 19684, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2906:28:49", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 19685, + "nodeType": "EmitStatement", + "src": "2901:33:49" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 19686, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2945:4:49", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 19640, + "id": 19687, + "nodeType": "Return", + "src": "2938:11:49" + } + ] + }, + "documentation": "@dev transfers tokens to a given address on behalf of another address\nthrows on any error rather then return a false flag to minimize user errors\n\t * @param _from source address\n@param _to target address\n@param _value transfer amount\n\t * @return true if the transfer was successful, false if it wasn't", + "id": 19689, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 19633, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19626, + "src": "2676:5:49", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 19634, + "modifierName": { + "argumentTypes": null, + "id": 19632, + "name": "validAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22011, + "src": "2663:12:49", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_address_$", + "typeString": "modifier (address)" + } + }, + "nodeType": "ModifierInvocation", + "src": "2663:19:49" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 19636, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19628, + "src": "2696:3:49", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 19637, + "modifierName": { + "argumentTypes": null, + "id": 19635, + "name": "validAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22011, + "src": "2683:12:49", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_address_$", + "typeString": "modifier (address)" + } + }, + "nodeType": "ModifierInvocation", + "src": "2683:17:49" + } + ], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 19631, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 19626, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 19689, + "src": "2606:13:49", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 19625, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2606:7:49", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 19628, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 19689, + "src": "2623:11:49", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 19627, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2623:7:49", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 19630, + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 19689, + "src": "2638:14:49", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 19629, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2638:7:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2602:53:49" + }, + "payable": false, + "returnParameters": { + "id": 19640, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 19639, + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 19689, + "src": "2710:12:49", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 19638, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2710:4:49", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2709:14:49" + }, + "scope": 19737, + "src": "2581:372:49", + "stateMutability": "nonpayable", + "superFunction": 20230, + "visibility": "public" + }, + { + "body": { + "id": 19735, + "nodeType": "Block", + "src": "3705:316:49", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 19713, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 19704, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 19702, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19693, + "src": "3836:6:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 19703, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3846:1:49", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3836:11:49", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 19712, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 19705, + "name": "allowance", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 19507 + ], + "referencedDeclaration": 19507, + "src": "3851:9:49", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 19708, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 19706, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22338, + "src": "3861:3:49", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 19707, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3861:10:49", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3851:21:49", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 19710, + "indexExpression": { + "argumentTypes": null, + "id": 19709, + "name": "_spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19691, + "src": "3873:8:49", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3851:31:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 19711, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3886:1:49", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3851:36:49", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "3836:51:49", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4552525f494e56414c49445f414d4f554e54", + "id": 19714, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3889:20:49", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c44007bfe4e704be0ed1393660a827b4f88825f4b6fe1bc10cd38fc3fcb7d839", + "typeString": "literal_string \"ERR_INVALID_AMOUNT\"" + }, + "value": "ERR_INVALID_AMOUNT" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c44007bfe4e704be0ed1393660a827b4f88825f4b6fe1bc10cd38fc3fcb7d839", + "typeString": "literal_string \"ERR_INVALID_AMOUNT\"" + } + ], + "id": 19701, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 22341, + 22342 + ], + "referencedDeclaration": 22342, + "src": "3828:7:49", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 19715, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3828:82:49", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 19716, + "nodeType": "ExpressionStatement", + "src": "3828:82:49" + }, + { + "expression": { + "argumentTypes": null, + "id": 19724, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 19717, + "name": "allowance", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 19507 + ], + "referencedDeclaration": 19507, + "src": "3915:9:49", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 19721, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 19718, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22338, + "src": "3925:3:49", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 19719, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3925:10:49", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3915:21:49", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 19722, + "indexExpression": { + "argumentTypes": null, + "id": 19720, + "name": "_spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19691, + "src": "3937:8:49", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "3915:31:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 19723, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19693, + "src": "3949:6:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3915:40:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 19725, + "nodeType": "ExpressionStatement", + "src": "3915:40:49" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 19727, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22338, + "src": "3973:3:49", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 19728, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3973:10:49", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 19729, + "name": "_spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19691, + "src": "3985:8:49", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 19730, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19693, + "src": "3995:6:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 19726, + "name": "Approval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19523, + "src": "3964:8:49", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 19731, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3964:38:49", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 19732, + "nodeType": "EmitStatement", + "src": "3959:43:49" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 19733, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4013:4:49", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 19700, + "id": 19734, + "nodeType": "Return", + "src": "4006:11:49" + } + ] + }, + "documentation": "@dev allows another account/contract to transfers tokens on behalf of the caller\nthrows on any error rather then return a false flag to minimize user errors\n\t * also, to minimize the risk of the approve/transferFrom attack vector\n(see https://docs.google.com/document/d/1YLPtQxZu1UAvO9cZ1O2RPXBbT0mooh4DYKjA_jp-RLM/), approve has to be called twice\nin 2 separate transactions - once to change the allowance to 0 and secondly to change it to the new allowance value\n\t * @param _spender approved address\n@param _value allowance amount\n\t * @return true if the approval was successful, false if it wasn't", + "id": 19736, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 19696, + "name": "_spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19691, + "src": "3672:8:49", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 19697, + "modifierName": { + "argumentTypes": null, + "id": 19695, + "name": "validAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22011, + "src": "3659:12:49", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_address_$", + "typeString": "modifier (address)" + } + }, + "nodeType": "ModifierInvocation", + "src": "3659:22:49" + } + ], + "name": "approve", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 19694, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 19691, + "name": "_spender", + "nodeType": "VariableDeclaration", + "scope": 19736, + "src": "3618:16:49", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 19690, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3618:7:49", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 19693, + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 19736, + "src": "3636:14:49", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 19692, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3636:7:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3617:34:49" + }, + "payable": false, + "returnParameters": { + "id": 19700, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 19699, + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 19736, + "src": "3691:12:49", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 19698, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3691:4:49", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3690:14:49" + }, + "scope": 19737, + "src": "3601:420:49", + "stateMutability": "nonpayable", + "superFunction": 20239, + "visibility": "public" + } + ], + "scope": 19738, + "src": "181:3842:49" + } + ], + "src": "0:4024:49" + }, + "id": 49 + }, + "solidity/contracts/token/EtherToken.sol": { + "ast": { + "absolutePath": "solidity/contracts/token/EtherToken.sol", + "exportedSymbols": { + "EtherToken": [ + 19938 + ] + }, + "id": 19939, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 19739, + "literals": [ + "solidity", + "0.4", + ".26" + ], + "nodeType": "PragmaDirective", + "src": "0:23:50" + }, + { + "absolutePath": "solidity/contracts/token/ERC20Token.sol", + "file": "./ERC20Token.sol", + "id": 19740, + "nodeType": "ImportDirective", + "scope": 19939, + "sourceUnit": 19738, + "src": "24:26:50", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "solidity/contracts/token/interfaces/IEtherToken.sol", + "file": "./interfaces/IEtherToken.sol", + "id": 19741, + "nodeType": "ImportDirective", + "scope": 19939, + "sourceUnit": 20267, + "src": "51:38:50", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "solidity/contracts/utility/SafeMath.sol", + "file": "../utility/SafeMath.sol", + "id": 19742, + "nodeType": "ImportDirective", + "scope": 19939, + "sourceUnit": 21818, + "src": "90:33:50", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 19743, + "name": "IEtherToken", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20266, + "src": "248:11:50", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IEtherToken_$20266", + "typeString": "contract IEtherToken" + } + }, + "id": 19744, + "nodeType": "InheritanceSpecifier", + "src": "248:11:50" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 19745, + "name": "ERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 19737, + "src": "261:10:50", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20Token_$19737", + "typeString": "contract ERC20Token" + } + }, + "id": 19746, + "nodeType": "InheritanceSpecifier", + "src": "261:10:50" + } + ], + "contractDependencies": [ + 19737, + 20240, + 20266, + 22052 + ], + "contractKind": "contract", + "documentation": "@dev Ether tokenization contract\n * 'Owned' is specified here for readability reasons", + "fullyImplemented": true, + "id": 19938, + "linearizedBaseContracts": [ + 19938, + 19737, + 22052, + 20266, + 20240 + ], + "name": "EtherToken", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 19749, + "libraryName": { + "contractScope": null, + "id": 19747, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 21817, + "src": "281:8:50", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$21817", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "275:27:50", + "typeName": { + "id": 19748, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "294:7:50", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "anonymous": false, + "documentation": "@dev triggered when the total supply is increased\n\t * @param _amount amount that gets added to the supply", + "id": 19753, + "name": "Issuance", + "nodeType": "EventDefinition", + "parameters": { + "id": 19752, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 19751, + "indexed": false, + "name": "_amount", + "nodeType": "VariableDeclaration", + "scope": 19753, + "src": "445:15:50", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 19750, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "445:7:50", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "444:17:50" + }, + "src": "430:32:50" + }, + { + "anonymous": false, + "documentation": "@dev triggered when the total supply is decreased\n\t * @param _amount amount that gets removed from the supply", + "id": 19757, + "name": "Destruction", + "nodeType": "EventDefinition", + "parameters": { + "id": 19756, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 19755, + "indexed": false, + "name": "_amount", + "nodeType": "VariableDeclaration", + "scope": 19757, + "src": "612:15:50", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 19754, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "612:7:50", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "611:17:50" + }, + "src": "594:35:50" + }, + { + "body": { + "id": 19770, + "nodeType": "Block", + "src": "848:2:50", + "statements": [] + }, + "documentation": "@dev initializes a new EtherToken instance\n\t * @param _name token name\n@param _symbol token symbol", + "id": 19771, + "implemented": true, + "isConstructor": true, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 19764, + "name": "_name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19759, + "src": "825:5:50", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "argumentTypes": null, + "id": 19765, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19761, + "src": "832:7:50", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "argumentTypes": null, + "hexValue": "3138", + "id": 19766, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "841:2:50", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_18_by_1", + "typeString": "int_const 18" + }, + "value": "18" + }, + { + "argumentTypes": null, + "hexValue": "30", + "id": 19767, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "845:1:50", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 19768, + "modifierName": { + "argumentTypes": null, + "id": 19763, + "name": "ERC20Token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19737, + "src": "814:10:50", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC20Token_$19737_$", + "typeString": "type(contract ERC20Token)" + } + }, + "nodeType": "ModifierInvocation", + "src": "814:33:50" + } + ], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 19762, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 19759, + "name": "_name", + "nodeType": "VariableDeclaration", + "scope": 19771, + "src": "777:12:50", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 19758, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "777:6:50", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 19761, + "name": "_symbol", + "nodeType": "VariableDeclaration", + "scope": 19771, + "src": "791:14:50", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 19760, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "791:6:50", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "776:30:50" + }, + "payable": false, + "returnParameters": { + "id": 19769, + "nodeType": "ParameterList", + "parameters": [], + "src": "848:0:50" + }, + "scope": 19938, + "src": "765:85:50", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 19779, + "nodeType": "Block", + "src": "944:29:50", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 19775, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22338, + "src": "958:3:50", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 19776, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "958:10:50", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 19774, + "name": "depositTo", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 19833 + ], + "referencedDeclaration": 19833, + "src": "948:9:50", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 19777, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "948:21:50", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 19778, + "nodeType": "ExpressionStatement", + "src": "948:21:50" + } + ] + }, + "documentation": "@dev deposit ether on behalf of the sender", + "id": 19780, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "deposit", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 19772, + "nodeType": "ParameterList", + "parameters": [], + "src": "926:2:50" + }, + "payable": true, + "returnParameters": { + "id": 19773, + "nodeType": "ParameterList", + "parameters": [], + "src": "944:0:50" + }, + "scope": 19938, + "src": "910:63:50", + "stateMutability": "payable", + "superFunction": 20248, + "visibility": "public" + }, + { + "body": { + "id": 19791, + "nodeType": "Block", + "src": "1128:39:50", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 19786, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22338, + "src": "1143:3:50", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 19787, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1143:10:50", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 19788, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19782, + "src": "1155:7:50", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 19785, + "name": "withdrawTo", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 19881 + ], + "referencedDeclaration": 19881, + "src": "1132:10:50", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 19789, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1132:31:50", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 19790, + "nodeType": "ExpressionStatement", + "src": "1132:31:50" + } + ] + }, + "documentation": "@dev withdraw ether to the sender's account\n\t * @param _amount amount of ether to withdraw", + "id": 19792, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "withdraw", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 19783, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 19782, + "name": "_amount", + "nodeType": "VariableDeclaration", + "scope": 19792, + "src": "1104:15:50", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 19781, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1104:7:50", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1103:17:50" + }, + "payable": false, + "returnParameters": { + "id": 19784, + "nodeType": "ParameterList", + "parameters": [], + "src": "1128:0:50" + }, + "scope": 19938, + "src": "1086:81:50", + "stateMutability": "nonpayable", + "superFunction": 20253, + "visibility": "public" + }, + { + "body": { + "id": 19832, + "nodeType": "Block", + "src": "1359:235:50", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 19810, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 19800, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 19501 + ], + "referencedDeclaration": 19501, + "src": "1363:9:50", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 19802, + "indexExpression": { + "argumentTypes": null, + "id": 19801, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19794, + "src": "1373:3:50", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1363:14:50", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 19807, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22338, + "src": "1399:3:50", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 19808, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1399:9:50", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 19803, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 19501 + ], + "referencedDeclaration": 19501, + "src": "1380:9:50", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 19805, + "indexExpression": { + "argumentTypes": null, + "id": 19804, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19794, + "src": "1390:3:50", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1380:14:50", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 19806, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 21737, + "src": "1380:18:50", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 19809, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1380:29:50", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1363:46:50", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 19811, + "nodeType": "ExpressionStatement", + "src": "1363:46:50" + }, + { + "expression": { + "argumentTypes": null, + "id": 19818, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 19812, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 19497 + ], + "referencedDeclaration": 19497, + "src": "1453:11:50", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 19815, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22338, + "src": "1483:3:50", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 19816, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1483:9:50", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 19813, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 19497 + ], + "referencedDeclaration": 19497, + "src": "1467:11:50", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 19814, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 21737, + "src": "1467:15:50", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 19817, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1467:26:50", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1453:40:50", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 19819, + "nodeType": "ExpressionStatement", + "src": "1453:40:50" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 19821, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22338, + "src": "1541:3:50", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 19822, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1541:9:50", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 19820, + "name": "Issuance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19753, + "src": "1532:8:50", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 19823, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1532:19:50", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 19824, + "nodeType": "EmitStatement", + "src": "1527:24:50" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 19826, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22511, + "src": "1569:4:50", + "typeDescriptions": { + "typeIdentifier": "t_contract$_EtherToken_$19938", + "typeString": "contract EtherToken" + } + }, + { + "argumentTypes": null, + "id": 19827, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19794, + "src": "1575:3:50", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 19828, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22338, + "src": "1580:3:50", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 19829, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1580:9:50", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_EtherToken_$19938", + "typeString": "contract EtherToken" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 19825, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19515, + "src": "1560:8:50", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 19830, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1560:30:50", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 19831, + "nodeType": "EmitStatement", + "src": "1555:35:50" + } + ] + }, + "documentation": "@dev deposit ether to be entitled for a given account\n\t * @param _to account to be entitled for the ether", + "id": 19833, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 19797, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19794, + "src": "1354:3:50", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 19798, + "modifierName": { + "argumentTypes": null, + "id": 19796, + "name": "notThis", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22036, + "src": "1346:7:50", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_address_$", + "typeString": "modifier (address)" + } + }, + "nodeType": "ModifierInvocation", + "src": "1346:12:50" + } + ], + "name": "depositTo", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 19795, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 19794, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 19833, + "src": "1318:11:50", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 19793, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1318:7:50", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1317:13:50" + }, + "payable": true, + "returnParameters": { + "id": 19799, + "nodeType": "ParameterList", + "parameters": [], + "src": "1359:0:50" + }, + "scope": 19938, + "src": "1299:295:50", + "stateMutability": "payable", + "superFunction": 20258, + "visibility": "public" + }, + { + "body": { + "id": 19880, + "nodeType": "Block", + "src": "1844:323:50", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 19854, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 19843, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 19501 + ], + "referencedDeclaration": 19501, + "src": "1848:9:50", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 19846, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 19844, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22338, + "src": "1858:3:50", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 19845, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1858:10:50", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1848:21:50", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 19852, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19837, + "src": "1898:7:50", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 19847, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 19501 + ], + "referencedDeclaration": 19501, + "src": "1872:9:50", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 19850, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 19848, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22338, + "src": "1882:3:50", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 19849, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1882:10:50", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1872:21:50", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 19851, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 21758, + "src": "1872:25:50", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 19853, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1872:34:50", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1848:58:50", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 19855, + "nodeType": "ExpressionStatement", + "src": "1848:58:50" + }, + { + "expression": { + "argumentTypes": null, + "id": 19861, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 19856, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 19497 + ], + "referencedDeclaration": 19497, + "src": "1956:11:50", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 19859, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19837, + "src": "1986:7:50", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 19857, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 19497 + ], + "referencedDeclaration": 19497, + "src": "1970:11:50", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 19858, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 21758, + "src": "1970:15:50", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 19860, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1970:24:50", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1956:38:50", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 19862, + "nodeType": "ExpressionStatement", + "src": "1956:38:50" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 19866, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19837, + "src": "2040:7:50", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 19863, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19835, + "src": "2027:3:50", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 19865, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2027:12:50", + "typeDescriptions": { + "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 19867, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2027:21:50", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 19868, + "nodeType": "ExpressionStatement", + "src": "2027:21:50" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 19870, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22338, + "src": "2108:3:50", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 19871, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2108:10:50", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 19872, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22511, + "src": "2120:4:50", + "typeDescriptions": { + "typeIdentifier": "t_contract$_EtherToken_$19938", + "typeString": "contract EtherToken" + } + }, + { + "argumentTypes": null, + "id": 19873, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19837, + "src": "2126:7:50", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_contract$_EtherToken_$19938", + "typeString": "contract EtherToken" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 19869, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19515, + "src": "2099:8:50", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 19874, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2099:35:50", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 19875, + "nodeType": "EmitStatement", + "src": "2094:40:50" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 19877, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19837, + "src": "2155:7:50", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 19876, + "name": "Destruction", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19757, + "src": "2143:11:50", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 19878, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2143:20:50", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 19879, + "nodeType": "EmitStatement", + "src": "2138:25:50" + } + ] + }, + "documentation": "@dev withdraw ether entitled by the sender to a given account\n\t * @param _to account to receive the ether\n@param _amount amount of ether to withdraw", + "id": 19881, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 19840, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19835, + "src": "1839:3:50", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 19841, + "modifierName": { + "argumentTypes": null, + "id": 19839, + "name": "notThis", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22036, + "src": "1831:7:50", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_address_$", + "typeString": "modifier (address)" + } + }, + "nodeType": "ModifierInvocation", + "src": "1831:12:50" + } + ], + "name": "withdrawTo", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 19838, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 19835, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 19881, + "src": "1794:11:50", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 19834, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1794:7:50", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 19837, + "name": "_amount", + "nodeType": "VariableDeclaration", + "scope": 19881, + "src": "1807:15:50", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 19836, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1807:7:50", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1793:30:50" + }, + "payable": false, + "returnParameters": { + "id": 19842, + "nodeType": "ParameterList", + "parameters": [], + "src": "1844:0:50" + }, + "scope": 19938, + "src": "1774:393:50", + "stateMutability": "nonpayable", + "superFunction": 20265, + "visibility": "public" + }, + { + "body": { + "id": 19903, + "nodeType": "Block", + "src": "2581:58:50", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 19896, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19883, + "src": "2607:3:50", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 19897, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19885, + "src": "2612:6:50", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 19894, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22512, + "src": "2592:5:50", + "typeDescriptions": { + "typeIdentifier": "t_super$_EtherToken_$19938", + "typeString": "contract super EtherToken" + } + }, + "id": 19895, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 19624, + "src": "2592:14:50", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) returns (bool)" + } + }, + "id": 19898, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2592:27:50", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 19893, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22327, + "src": "2585:6:50", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 19899, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2585:35:50", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 19900, + "nodeType": "ExpressionStatement", + "src": "2585:35:50" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 19901, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2631:4:50", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 19892, + "id": 19902, + "nodeType": "Return", + "src": "2624:11:50" + } + ] + }, + "documentation": "@dev send coins\nthrows on any error rather then return a false flag to minimize user errors\n\t * @param _to target address\n@param _value transfer amount\n\t * @return true if the transfer was successful, false if it wasn't", + "id": 19904, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 19888, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19883, + "src": "2553:3:50", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 19889, + "modifierName": { + "argumentTypes": null, + "id": 19887, + "name": "notThis", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22036, + "src": "2545:7:50", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_address_$", + "typeString": "modifier (address)" + } + }, + "nodeType": "ModifierInvocation", + "src": "2545:12:50" + } + ], + "name": "transfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 19886, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 19883, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 19904, + "src": "2509:11:50", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 19882, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2509:7:50", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 19885, + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 19904, + "src": "2522:14:50", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 19884, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2522:7:50", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2508:29:50" + }, + "payable": false, + "returnParameters": { + "id": 19892, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 19891, + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 19904, + "src": "2567:12:50", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 19890, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2567:4:50", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2566:14:50" + }, + "scope": 19938, + "src": "2491:148:50", + "stateMutability": "nonpayable", + "superFunction": 19624, + "visibility": "public" + }, + { + "body": { + "id": 19929, + "nodeType": "Block", + "src": "3087:69:50", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 19921, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19906, + "src": "3117:5:50", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 19922, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19908, + "src": "3124:3:50", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 19923, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19910, + "src": "3129:6:50", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 19919, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22512, + "src": "3098:5:50", + "typeDescriptions": { + "typeIdentifier": "t_super$_EtherToken_$19938", + "typeString": "contract super EtherToken" + } + }, + "id": 19920, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transferFrom", + "nodeType": "MemberAccess", + "referencedDeclaration": 19689, + "src": "3098:18:50", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,address,uint256) returns (bool)" + } + }, + "id": 19924, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3098:38:50", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 19918, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22327, + "src": "3091:6:50", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 19925, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3091:46:50", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 19926, + "nodeType": "ExpressionStatement", + "src": "3091:46:50" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 19927, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3148:4:50", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 19917, + "id": 19928, + "nodeType": "Return", + "src": "3141:11:50" + } + ] + }, + "documentation": "@dev an account/contract attempts to get the coins\nthrows on any error rather then return a false flag to minimize user errors\n\t * @param _from source address\n@param _to target address\n@param _value transfer amount\n\t * @return true if the transfer was successful, false if it wasn't", + "id": 19930, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 19913, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19908, + "src": "3059:3:50", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 19914, + "modifierName": { + "argumentTypes": null, + "id": 19912, + "name": "notThis", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22036, + "src": "3051:7:50", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_address_$", + "typeString": "modifier (address)" + } + }, + "nodeType": "ModifierInvocation", + "src": "3051:12:50" + } + ], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 19911, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 19906, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 19930, + "src": "2994:13:50", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 19905, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2994:7:50", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 19908, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 19930, + "src": "3011:11:50", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 19907, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3011:7:50", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 19910, + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 19930, + "src": "3026:14:50", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 19909, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3026:7:50", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2990:53:50" + }, + "payable": false, + "returnParameters": { + "id": 19917, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 19916, + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 19930, + "src": "3073:12:50", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 19915, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3073:4:50", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3072:14:50" + }, + "scope": 19938, + "src": "2969:187:50", + "stateMutability": "nonpayable", + "superFunction": 19689, + "visibility": "public" + }, + { + "body": { + "id": 19936, + "nodeType": "Block", + "src": "3235:17:50", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 19933, + "name": "deposit", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 19780 + ], + "referencedDeclaration": 19780, + "src": "3239:7:50", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", + "typeString": "function ()" + } + }, + "id": 19934, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3239:9:50", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 19935, + "nodeType": "ExpressionStatement", + "src": "3239:9:50" + } + ] + }, + "documentation": "@dev deposit ether in the account", + "id": 19937, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 19931, + "nodeType": "ParameterList", + "parameters": [], + "src": "3215:2:50" + }, + "payable": true, + "returnParameters": { + "id": 19932, + "nodeType": "ParameterList", + "parameters": [], + "src": "3235:0:50" + }, + "scope": 19938, + "src": "3207:45:50", + "stateMutability": "payable", + "superFunction": null, + "visibility": "external" + } + ], + "scope": 19939, + "src": "225:3029:50" + } + ], + "src": "0:3255:50" + }, + "id": 50 + }, + "solidity/contracts/token/SmartToken.sol": { + "ast": { + "absolutePath": "solidity/contracts/token/SmartToken.sol", + "exportedSymbols": { + "SmartToken": [ + 20148 + ] + }, + "id": 20149, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 19940, + "literals": [ + "solidity", + "0.4", + ".26" + ], + "nodeType": "PragmaDirective", + "src": "0:23:51" + }, + { + "absolutePath": "solidity/contracts/token/ERC20Token.sol", + "file": "./ERC20Token.sol", + "id": 19941, + "nodeType": "ImportDirective", + "scope": 20149, + "sourceUnit": 19738, + "src": "24:26:51", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "solidity/contracts/token/interfaces/ISmartToken.sol", + "file": "./interfaces/ISmartToken.sol", + "id": 19942, + "nodeType": "ImportDirective", + "scope": 20149, + "sourceUnit": 20296, + "src": "51:38:51", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "solidity/contracts/utility/Owned.sol", + "file": "../utility/Owned.sol", + "id": 19943, + "nodeType": "ImportDirective", + "scope": 20149, + "sourceUnit": 21325, + "src": "90:30:51", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "solidity/contracts/utility/TokenHolder.sol", + "file": "../utility/TokenHolder.sol", + "id": 19944, + "nodeType": "ImportDirective", + "scope": 20149, + "sourceUnit": 21977, + "src": "121:36:51", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 19945, + "name": "ISmartToken", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20295, + "src": "266:11:51", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISmartToken_$20295", + "typeString": "contract ISmartToken" + } + }, + "id": 19946, + "nodeType": "InheritanceSpecifier", + "src": "266:11:51" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 19947, + "name": "Owned", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 21324, + "src": "279:5:51", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Owned_$21324", + "typeString": "contract Owned" + } + }, + "id": 19948, + "nodeType": "InheritanceSpecifier", + "src": "279:5:51" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 19949, + "name": "ERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 19737, + "src": "286:10:51", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20Token_$19737", + "typeString": "contract ERC20Token" + } + }, + "id": 19950, + "nodeType": "InheritanceSpecifier", + "src": "286:10:51" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 19951, + "name": "TokenHolder", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 21976, + "src": "298:11:51", + "typeDescriptions": { + "typeIdentifier": "t_contract$_TokenHolder_$21976", + "typeString": "contract TokenHolder" + } + }, + "id": 19952, + "nodeType": "InheritanceSpecifier", + "src": "298:11:51" + } + ], + "contractDependencies": [ + 11826, + 19737, + 20240, + 20295, + 21324, + 21933, + 21976, + 22052, + 22247, + 22313 + ], + "contractKind": "contract", + "documentation": "@dev Smart Token\n * 'Owned' is specified here for readability reasons", + "fullyImplemented": true, + "id": 20148, + "linearizedBaseContracts": [ + 20148, + 21976, + 19737, + 22052, + 21324, + 21933, + 20295, + 20240, + 11826, + 22313, + 22247 + ], + "name": "SmartToken", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 19955, + "libraryName": { + "contractScope": null, + "id": 19953, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 21817, + "src": "319:8:51", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$21817", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "313:27:51", + "typeName": { + "id": 19954, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "332:7:51", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "constant": true, + "id": 19958, + "name": "version", + "nodeType": "VariableDeclaration", + "scope": 20148, + "src": "343:34:51", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 19956, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "343:6:51", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "34", + "id": 19957, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "376:1:51", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "visibility": "public" + }, + { + "constant": false, + "id": 19961, + "name": "transfersEnabled", + "nodeType": "VariableDeclaration", + "scope": 20148, + "src": "381:35:51", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 19959, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "381:4:51", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 19960, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "412:4:51", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "visibility": "public" + }, + { + "anonymous": false, + "documentation": "@dev triggered when the total supply is increased\n\t * @param _amount amount that gets added to the supply", + "id": 19965, + "name": "Issuance", + "nodeType": "EventDefinition", + "parameters": { + "id": 19964, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 19963, + "indexed": false, + "name": "_amount", + "nodeType": "VariableDeclaration", + "scope": 19965, + "src": "622:15:51", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 19962, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "622:7:51", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "621:17:51" + }, + "src": "607:32:51" + }, + { + "anonymous": false, + "documentation": "@dev triggered when the total supply is decreased\n\t * @param _amount amount that gets removed from the supply", + "id": 19969, + "name": "Destruction", + "nodeType": "EventDefinition", + "parameters": { + "id": 19968, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 19967, + "indexed": false, + "name": "_amount", + "nodeType": "VariableDeclaration", + "scope": 19969, + "src": "789:15:51", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 19966, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "789:7:51", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "788:17:51" + }, + "src": "771:35:51" + }, + { + "body": { + "id": 19984, + "nodeType": "Block", + "src": "1132:2:51", + "statements": [] + }, + "documentation": "@dev initializes a new SmartToken instance\n\t * @param _name token name\n@param _symbol token short symbol, minimum 1 character\n@param _decimals for display purposes only", + "id": 19985, + "implemented": true, + "isConstructor": true, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 19978, + "name": "_name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19971, + "src": "1102:5:51", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "argumentTypes": null, + "id": 19979, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19973, + "src": "1109:7:51", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "argumentTypes": null, + "id": 19980, + "name": "_decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19975, + "src": "1118:9:51", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + { + "argumentTypes": null, + "hexValue": "30", + "id": 19981, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1129:1:51", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 19982, + "modifierName": { + "argumentTypes": null, + "id": 19977, + "name": "ERC20Token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19737, + "src": "1091:10:51", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC20Token_$19737_$", + "typeString": "type(contract ERC20Token)" + } + }, + "nodeType": "ModifierInvocation", + "src": "1091:40:51" + } + ], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 19976, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 19971, + "name": "_name", + "nodeType": "VariableDeclaration", + "scope": 19985, + "src": "1031:12:51", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 19970, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1031:6:51", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 19973, + "name": "_symbol", + "nodeType": "VariableDeclaration", + "scope": 19985, + "src": "1047:14:51", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 19972, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1047:6:51", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 19975, + "name": "_decimals", + "nodeType": "VariableDeclaration", + "scope": 19985, + "src": "1065:15:51", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 19974, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "1065:5:51", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1027:56:51" + }, + "payable": false, + "returnParameters": { + "id": 19983, + "nodeType": "ParameterList", + "parameters": [], + "src": "1132:0:51" + }, + "scope": 20148, + "src": "1016:118:51", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 19991, + "nodeType": "Block", + "src": "1216:32:51", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 19987, + "name": "_transfersAllowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20001, + "src": "1220:17:51", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$__$", + "typeString": "function () view" + } + }, + "id": 19988, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1220:19:51", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 19989, + "nodeType": "ExpressionStatement", + "src": "1220:19:51" + }, + { + "id": 19990, + "nodeType": "PlaceholderStatement", + "src": "1243:1:51" + } + ] + }, + "documentation": null, + "id": 19992, + "name": "transfersAllowed", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 19986, + "nodeType": "ParameterList", + "parameters": [], + "src": "1216:0:51" + }, + "src": "1190:58:51", + "visibility": "internal" + }, + { + "body": { + "id": 20000, + "nodeType": "Block", + "src": "1337:59:51", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 19996, + "name": "transfersEnabled", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19961, + "src": "1349:16:51", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4552525f5452414e53464552535f44495341424c4544", + "id": 19997, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1367:24:51", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_da0eea8408576dc7745752d8573d65c520f2ae4c7522ecd9096dbc953230a52a", + "typeString": "literal_string \"ERR_TRANSFERS_DISABLED\"" + }, + "value": "ERR_TRANSFERS_DISABLED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_da0eea8408576dc7745752d8573d65c520f2ae4c7522ecd9096dbc953230a52a", + "typeString": "literal_string \"ERR_TRANSFERS_DISABLED\"" + } + ], + "id": 19995, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 22341, + 22342 + ], + "referencedDeclaration": 22342, + "src": "1341:7:51", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 19998, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1341:51:51", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 19999, + "nodeType": "ExpressionStatement", + "src": "1341:51:51" + } + ] + }, + "documentation": null, + "id": 20001, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "_transfersAllowed", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 19993, + "nodeType": "ParameterList", + "parameters": [], + "src": "1320:2:51" + }, + "payable": false, + "returnParameters": { + "id": 19994, + "nodeType": "ParameterList", + "parameters": [], + "src": "1337:0:51" + }, + "scope": 20148, + "src": "1294:102:51", + "stateMutability": "view", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 20013, + "nodeType": "Block", + "src": "1623:36:51", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 20011, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 20008, + "name": "transfersEnabled", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19961, + "src": "1627:16:51", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 20010, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "1646:9:51", + "subExpression": { + "argumentTypes": null, + "id": 20009, + "name": "_disable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20003, + "src": "1647:8:51", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "1627:28:51", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 20012, + "nodeType": "ExpressionStatement", + "src": "1627:28:51" + } + ] + }, + "documentation": "@dev disables/enables transfers\ncan only be called by the contract owner\n\t * @param _disable true to disable transfers, false to enable them", + "id": 20014, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 20006, + "modifierName": { + "argumentTypes": null, + "id": 20005, + "name": "ownerOnly", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21265, + "src": "1613:9:51", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "1613:9:51" + } + ], + "name": "disableTransfers", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 20004, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 20003, + "name": "_disable", + "nodeType": "VariableDeclaration", + "scope": 20014, + "src": "1591:13:51", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 20002, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1591:4:51", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1590:15:51" + }, + "payable": false, + "returnParameters": { + "id": 20007, + "nodeType": "ParameterList", + "parameters": [], + "src": "1623:0:51" + }, + "scope": 20148, + "src": "1565:94:51", + "stateMutability": "nonpayable", + "superFunction": 20280, + "visibility": "public" + }, + { + "body": { + "id": 20059, + "nodeType": "Block", + "src": "2003:164:51", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 20034, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 20029, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 19497 + ], + "referencedDeclaration": 19497, + "src": "2007:11:51", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 20032, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20018, + "src": "2037:7:51", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 20030, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 19497 + ], + "referencedDeclaration": 19497, + "src": "2021:11:51", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 20031, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 21737, + "src": "2021:15:51", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 20033, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2021:24:51", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2007:38:51", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 20035, + "nodeType": "ExpressionStatement", + "src": "2007:38:51" + }, + { + "expression": { + "argumentTypes": null, + "id": 20045, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 20036, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 19501 + ], + "referencedDeclaration": 19501, + "src": "2049:9:51", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 20038, + "indexExpression": { + "argumentTypes": null, + "id": 20037, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20016, + "src": "2059:3:51", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2049:14:51", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 20043, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20018, + "src": "2085:7:51", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 20039, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 19501 + ], + "referencedDeclaration": 19501, + "src": "2066:9:51", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 20041, + "indexExpression": { + "argumentTypes": null, + "id": 20040, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20016, + "src": "2076:3:51", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2066:14:51", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 20042, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 21737, + "src": "2066:18:51", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 20044, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2066:27:51", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2049:44:51", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 20046, + "nodeType": "ExpressionStatement", + "src": "2049:44:51" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 20048, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20018, + "src": "2112:7:51", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 20047, + "name": "Issuance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19965, + "src": "2103:8:51", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 20049, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2103:17:51", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 20050, + "nodeType": "EmitStatement", + "src": "2098:22:51" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 20053, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2146:1:51", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 20052, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2138:7:51", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 20054, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2138:10:51", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 20055, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20016, + "src": "2150:3:51", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 20056, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20018, + "src": "2155:7:51", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 20051, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19515, + "src": "2129:8:51", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 20057, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2129:34:51", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 20058, + "nodeType": "EmitStatement", + "src": "2124:39:51" + } + ] + }, + "documentation": "@dev increases the token supply and sends the new tokens to the given account\ncan only be called by the contract owner\n\t * @param _to account to receive the new amount\n@param _amount amount to increase the supply by", + "id": 20060, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 20021, + "modifierName": { + "argumentTypes": null, + "id": 20020, + "name": "ownerOnly", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21265, + "src": "1962:9:51", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "1962:9:51" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 20023, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20016, + "src": "1985:3:51", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 20024, + "modifierName": { + "argumentTypes": null, + "id": 20022, + "name": "validAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22011, + "src": "1972:12:51", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_address_$", + "typeString": "modifier (address)" + } + }, + "nodeType": "ModifierInvocation", + "src": "1972:17:51" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 20026, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20016, + "src": "1998:3:51", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 20027, + "modifierName": { + "argumentTypes": null, + "id": 20025, + "name": "notThis", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22036, + "src": "1990:7:51", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_address_$", + "typeString": "modifier (address)" + } + }, + "nodeType": "ModifierInvocation", + "src": "1990:12:51" + } + ], + "name": "issue", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 20019, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 20016, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 20060, + "src": "1925:11:51", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 20015, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1925:7:51", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 20018, + "name": "_amount", + "nodeType": "VariableDeclaration", + "scope": 20060, + "src": "1938:15:51", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 20017, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1938:7:51", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1924:30:51" + }, + "payable": false, + "returnParameters": { + "id": 20028, + "nodeType": "ParameterList", + "parameters": [], + "src": "2003:0:51" + }, + "scope": 20148, + "src": "1910:257:51", + "stateMutability": "nonpayable", + "superFunction": 20287, + "visibility": "public" + }, + { + "body": { + "id": 20099, + "nodeType": "Block", + "src": "2480:173:51", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 20078, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 20069, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 19501 + ], + "referencedDeclaration": 19501, + "src": "2484:9:51", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 20071, + "indexExpression": { + "argumentTypes": null, + "id": 20070, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20062, + "src": "2494:5:51", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2484:16:51", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 20076, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20064, + "src": "2524:7:51", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 20072, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 19501 + ], + "referencedDeclaration": 19501, + "src": "2503:9:51", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 20074, + "indexExpression": { + "argumentTypes": null, + "id": 20073, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20062, + "src": "2513:5:51", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2503:16:51", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 20075, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 21758, + "src": "2503:20:51", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 20077, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2503:29:51", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2484:48:51", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 20079, + "nodeType": "ExpressionStatement", + "src": "2484:48:51" + }, + { + "expression": { + "argumentTypes": null, + "id": 20085, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 20080, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 19497 + ], + "referencedDeclaration": 19497, + "src": "2536:11:51", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 20083, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20064, + "src": "2566:7:51", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 20081, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 19497 + ], + "referencedDeclaration": 19497, + "src": "2550:11:51", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 20082, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 21758, + "src": "2550:15:51", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 20084, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2550:24:51", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2536:38:51", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 20086, + "nodeType": "ExpressionStatement", + "src": "2536:38:51" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 20088, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20062, + "src": "2593:5:51", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 20090, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2608:1:51", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 20089, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2600:7:51", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 20091, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2600:10:51", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 20092, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20064, + "src": "2612:7:51", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 20087, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19515, + "src": "2584:8:51", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 20093, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2584:36:51", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 20094, + "nodeType": "EmitStatement", + "src": "2579:41:51" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 20096, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20064, + "src": "2641:7:51", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 20095, + "name": "Destruction", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19969, + "src": "2629:11:51", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 20097, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2629:20:51", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 20098, + "nodeType": "EmitStatement", + "src": "2624:25:51" + } + ] + }, + "documentation": "@dev removes tokens from the given account and decreases the token supply\ncan only be called by the contract owner\n\t * @param _from account to remove the amount from\n@param _amount amount to decrease the supply by", + "id": 20100, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 20067, + "modifierName": { + "argumentTypes": null, + "id": 20066, + "name": "ownerOnly", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21265, + "src": "2470:9:51", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "2470:9:51" + } + ], + "name": "destroy", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 20065, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 20062, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 20100, + "src": "2431:13:51", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 20061, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2431:7:51", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 20064, + "name": "_amount", + "nodeType": "VariableDeclaration", + "scope": 20100, + "src": "2446:15:51", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 20063, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2446:7:51", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2430:32:51" + }, + "payable": false, + "returnParameters": { + "id": 20068, + "nodeType": "ParameterList", + "parameters": [], + "src": "2480:0:51" + }, + "scope": 20148, + "src": "2414:239:51", + "stateMutability": "nonpayable", + "superFunction": 20294, + "visibility": "public" + }, + { + "body": { + "id": 20121, + "nodeType": "Block", + "src": "3160:58:51", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 20114, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20102, + "src": "3186:3:51", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 20115, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20104, + "src": "3191:6:51", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 20112, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22414, + "src": "3171:5:51", + "typeDescriptions": { + "typeIdentifier": "t_super$_SmartToken_$20148", + "typeString": "contract super SmartToken" + } + }, + "id": 20113, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 19624, + "src": "3171:14:51", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) returns (bool)" + } + }, + "id": 20116, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3171:27:51", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 20111, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22327, + "src": "3164:6:51", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 20117, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3164:35:51", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 20118, + "nodeType": "ExpressionStatement", + "src": "3164:35:51" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 20119, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3210:4:51", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 20110, + "id": 20120, + "nodeType": "Return", + "src": "3203:11:51" + } + ] + }, + "documentation": "@dev send coins\nthrows on any error rather then return a false flag to minimize user errors\nin addition to the standard checks, the function throws if transfers are disabled\n\t * @param _to target address\n@param _value transfer amount\n\t * @return true if the transfer was successful, false if it wasn't", + "id": 20122, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 20107, + "modifierName": { + "argumentTypes": null, + "id": 20106, + "name": "transfersAllowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19992, + "src": "3120:16:51", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "3120:16:51" + } + ], + "name": "transfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 20105, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 20102, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 20122, + "src": "3084:11:51", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 20101, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3084:7:51", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 20104, + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 20122, + "src": "3097:14:51", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 20103, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3097:7:51", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3083:29:51" + }, + "payable": false, + "returnParameters": { + "id": 20110, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 20109, + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 20122, + "src": "3146:12:51", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 20108, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3146:4:51", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3145:14:51" + }, + "scope": 20148, + "src": "3066:152:51", + "stateMutability": "nonpayable", + "superFunction": 19624, + "visibility": "public" + }, + { + "body": { + "id": 20146, + "nodeType": "Block", + "src": "3756:69:51", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 20138, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20124, + "src": "3786:5:51", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 20139, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20126, + "src": "3793:3:51", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 20140, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20128, + "src": "3798:6:51", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 20136, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22414, + "src": "3767:5:51", + "typeDescriptions": { + "typeIdentifier": "t_super$_SmartToken_$20148", + "typeString": "contract super SmartToken" + } + }, + "id": 20137, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transferFrom", + "nodeType": "MemberAccess", + "referencedDeclaration": 19689, + "src": "3767:18:51", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,address,uint256) returns (bool)" + } + }, + "id": 20141, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3767:38:51", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 20135, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22327, + "src": "3760:6:51", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 20142, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3760:46:51", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 20143, + "nodeType": "ExpressionStatement", + "src": "3760:46:51" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 20144, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3817:4:51", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 20134, + "id": 20145, + "nodeType": "Return", + "src": "3810:11:51" + } + ] + }, + "documentation": "@dev an account/contract attempts to get the coins\nthrows on any error rather then return a false flag to minimize user errors\nin addition to the standard checks, the function throws if transfers are disabled\n\t * @param _from source address\n@param _to target address\n@param _value transfer amount\n\t * @return true if the transfer was successful, false if it wasn't", + "id": 20147, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 20131, + "modifierName": { + "argumentTypes": null, + "id": 20130, + "name": "transfersAllowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19992, + "src": "3716:16:51", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "3716:16:51" + } + ], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 20129, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 20124, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 20147, + "src": "3659:13:51", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 20123, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3659:7:51", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 20126, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 20147, + "src": "3676:11:51", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 20125, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3676:7:51", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 20128, + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 20147, + "src": "3691:14:51", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 20127, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3691:7:51", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3655:53:51" + }, + "payable": false, + "returnParameters": { + "id": 20134, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 20133, + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 20147, + "src": "3742:12:51", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 20132, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3742:4:51", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3741:14:51" + }, + "scope": 20148, + "src": "3634:191:51", + "stateMutability": "nonpayable", + "superFunction": 19689, + "visibility": "public" + } + ], + "scope": 20149, + "src": "243:3584:51" + } + ], + "src": "0:3828:51" + }, + "id": 51 + }, + "solidity/contracts/token/interfaces/IERC20Token.sol": { + "ast": { + "absolutePath": "solidity/contracts/token/interfaces/IERC20Token.sol", + "exportedSymbols": { + "IERC20Token": [ + 20240 + ] + }, + "id": 20241, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 20150, + "literals": [ + "solidity", + "0.4", + ".26" + ], + "nodeType": "PragmaDirective", + "src": "0:23:52" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": false, + "id": 20240, + "linearizedBaseContracts": [ + 20240 + ], + "name": "IERC20Token", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 20157, + "nodeType": "Block", + "src": "249:12:52", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 20155, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22351, + "src": "253:4:52", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "id": 20156, + "nodeType": "ExpressionStatement", + "src": "253:4:52" + } + ] + }, + "documentation": null, + "id": 20158, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "name", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 20151, + "nodeType": "ParameterList", + "parameters": [], + "src": "217:2:52" + }, + "payable": false, + "returnParameters": { + "id": 20154, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 20153, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 20158, + "src": "241:6:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 20152, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "241:6:52", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "240:8:52" + }, + "scope": 20240, + "src": "204:57:52", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 20165, + "nodeType": "Block", + "src": "311:12:52", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 20163, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22351, + "src": "315:4:52", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "id": 20164, + "nodeType": "ExpressionStatement", + "src": "315:4:52" + } + ] + }, + "documentation": null, + "id": 20166, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "symbol", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 20159, + "nodeType": "ParameterList", + "parameters": [], + "src": "279:2:52" + }, + "payable": false, + "returnParameters": { + "id": 20162, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 20161, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 20166, + "src": "303:6:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 20160, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "303:6:52", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "302:8:52" + }, + "scope": 20240, + "src": "264:59:52", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 20173, + "nodeType": "Block", + "src": "374:12:52", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 20171, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22351, + "src": "378:4:52", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "id": 20172, + "nodeType": "ExpressionStatement", + "src": "378:4:52" + } + ] + }, + "documentation": null, + "id": 20174, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "decimals", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 20167, + "nodeType": "ParameterList", + "parameters": [], + "src": "343:2:52" + }, + "payable": false, + "returnParameters": { + "id": 20170, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 20169, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 20174, + "src": "367:5:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 20168, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "367:5:52", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "366:7:52" + }, + "scope": 20240, + "src": "326:60:52", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 20181, + "nodeType": "Block", + "src": "442:12:52", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 20179, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22351, + "src": "446:4:52", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "id": 20180, + "nodeType": "ExpressionStatement", + "src": "446:4:52" + } + ] + }, + "documentation": null, + "id": 20182, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "totalSupply", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 20175, + "nodeType": "ParameterList", + "parameters": [], + "src": "409:2:52" + }, + "payable": false, + "returnParameters": { + "id": 20178, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 20177, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 20182, + "src": "433:7:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 20176, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "433:7:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "432:9:52" + }, + "scope": 20240, + "src": "389:65:52", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 20193, + "nodeType": "Block", + "src": "522:22:52", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 20189, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20184, + "src": "526:6:52", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 20190, + "nodeType": "ExpressionStatement", + "src": "526:6:52" + }, + { + "expression": { + "argumentTypes": null, + "id": 20191, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22351, + "src": "536:4:52", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "id": 20192, + "nodeType": "ExpressionStatement", + "src": "536:4:52" + } + ] + }, + "documentation": null, + "id": 20194, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 20185, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 20184, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 20194, + "src": "476:14:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 20183, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "476:7:52", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "475:16:52" + }, + "payable": false, + "returnParameters": { + "id": 20188, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 20187, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 20194, + "src": "513:7:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 20186, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "513:7:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "512:9:52" + }, + "scope": 20240, + "src": "457:87:52", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 20209, + "nodeType": "Block", + "src": "630:34:52", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 20203, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20196, + "src": "634:6:52", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 20204, + "nodeType": "ExpressionStatement", + "src": "634:6:52" + }, + { + "expression": { + "argumentTypes": null, + "id": 20205, + "name": "_spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20198, + "src": "644:8:52", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 20206, + "nodeType": "ExpressionStatement", + "src": "644:8:52" + }, + { + "expression": { + "argumentTypes": null, + "id": 20207, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22351, + "src": "656:4:52", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "id": 20208, + "nodeType": "ExpressionStatement", + "src": "656:4:52" + } + ] + }, + "documentation": null, + "id": 20210, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "allowance", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 20199, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 20196, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 20210, + "src": "566:14:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 20195, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "566:7:52", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 20198, + "name": "_spender", + "nodeType": "VariableDeclaration", + "scope": 20210, + "src": "582:16:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 20197, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "582:7:52", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "565:34:52" + }, + "payable": false, + "returnParameters": { + "id": 20202, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 20201, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 20210, + "src": "621:7:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 20200, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "621:7:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "620:9:52" + }, + "scope": 20240, + "src": "547:117:52", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 20219, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 20215, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 20212, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 20219, + "src": "685:11:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 20211, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "685:7:52", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 20214, + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 20219, + "src": "698:14:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 20213, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "698:7:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "684:29:52" + }, + "payable": false, + "returnParameters": { + "id": 20218, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 20217, + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 20219, + "src": "730:12:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 20216, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "730:4:52", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "729:14:52" + }, + "scope": 20240, + "src": "667:77:52", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 20230, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 20226, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 20221, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 20230, + "src": "772:13:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 20220, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "772:7:52", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 20223, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 20230, + "src": "789:11:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 20222, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "789:7:52", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 20225, + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 20230, + "src": "804:14:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 20224, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "804:7:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "768:53:52" + }, + "payable": false, + "returnParameters": { + "id": 20229, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 20228, + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 20230, + "src": "838:12:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 20227, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "838:4:52", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "837:14:52" + }, + "scope": 20240, + "src": "747:105:52", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 20239, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 20235, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 20232, + "name": "_spender", + "nodeType": "VariableDeclaration", + "scope": 20239, + "src": "872:16:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 20231, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "872:7:52", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 20234, + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 20239, + "src": "890:14:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 20233, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "890:7:52", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "871:34:52" + }, + "payable": false, + "returnParameters": { + "id": 20238, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 20237, + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 20239, + "src": "922:12:52", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 20236, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "922:4:52", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "921:14:52" + }, + "scope": 20240, + "src": "855:81:52", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 20241, + "src": "66:872:52" + } + ], + "src": "0:939:52" + }, + "id": 52 + }, + "solidity/contracts/token/interfaces/IEtherToken.sol": { + "ast": { + "absolutePath": "solidity/contracts/token/interfaces/IEtherToken.sol", + "exportedSymbols": { + "IEtherToken": [ + 20266 + ] + }, + "id": 20267, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 20242, + "literals": [ + "solidity", + "0.4", + ".26" + ], + "nodeType": "PragmaDirective", + "src": "0:23:53" + }, + { + "absolutePath": "solidity/contracts/token/interfaces/IERC20Token.sol", + "file": "./IERC20Token.sol", + "id": 20243, + "nodeType": "ImportDirective", + "scope": 20267, + "sourceUnit": 20241, + "src": "24:27:53", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 20244, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "109:11:53", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "id": 20245, + "nodeType": "InheritanceSpecifier", + "src": "109:11:53" + } + ], + "contractDependencies": [ + 20240 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": false, + "id": 20266, + "linearizedBaseContracts": [ + 20266, + 20240 + ], + "name": "IEtherToken", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": null, + "id": 20248, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "deposit", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 20246, + "nodeType": "ParameterList", + "parameters": [], + "src": "140:2:53" + }, + "payable": true, + "returnParameters": { + "id": 20247, + "nodeType": "ParameterList", + "parameters": [], + "src": "157:0:53" + }, + "scope": 20266, + "src": "124:34:53", + "stateMutability": "payable", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 20253, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "withdraw", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 20251, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 20250, + "name": "_amount", + "nodeType": "VariableDeclaration", + "scope": 20253, + "src": "179:15:53", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 20249, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "179:7:53", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "178:17:53" + }, + "payable": false, + "returnParameters": { + "id": 20252, + "nodeType": "ParameterList", + "parameters": [], + "src": "202:0:53" + }, + "scope": 20266, + "src": "161:42:53", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 20258, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "depositTo", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 20256, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 20255, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 20258, + "src": "225:11:53", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 20254, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "225:7:53", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "224:13:53" + }, + "payable": true, + "returnParameters": { + "id": 20257, + "nodeType": "ParameterList", + "parameters": [], + "src": "252:0:53" + }, + "scope": 20266, + "src": "206:47:53", + "stateMutability": "payable", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 20265, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "withdrawTo", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 20263, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 20260, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 20265, + "src": "276:11:53", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 20259, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "276:7:53", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 20262, + "name": "_amount", + "nodeType": "VariableDeclaration", + "scope": 20265, + "src": "289:15:53", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 20261, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "289:7:53", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "275:30:53" + }, + "payable": false, + "returnParameters": { + "id": 20264, + "nodeType": "ParameterList", + "parameters": [], + "src": "312:0:53" + }, + "scope": 20266, + "src": "256:57:53", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 20267, + "src": "85:230:53" + } + ], + "src": "0:316:53" + }, + "id": 53 + }, + "solidity/contracts/token/interfaces/ISmartToken.sol": { + "ast": { + "absolutePath": "solidity/contracts/token/interfaces/ISmartToken.sol", + "exportedSymbols": { + "ISmartToken": [ + 20295 + ] + }, + "id": 20296, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 20268, + "literals": [ + "solidity", + "0.4", + ".26" + ], + "nodeType": "PragmaDirective", + "src": "0:23:54" + }, + { + "absolutePath": "solidity/contracts/token/interfaces/IERC20Token.sol", + "file": "./IERC20Token.sol", + "id": 20269, + "nodeType": "ImportDirective", + "scope": 20296, + "sourceUnit": 20241, + "src": "24:27:54", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "solidity/contracts/converter/interfaces/IConverterAnchor.sol", + "file": "../../converter/interfaces/IConverterAnchor.sol", + "id": 20270, + "nodeType": "ImportDirective", + "scope": 20296, + "sourceUnit": 11827, + "src": "52:57:54", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "solidity/contracts/utility/interfaces/IOwned.sol", + "file": "../../utility/interfaces/IOwned.sol", + "id": 20271, + "nodeType": "ImportDirective", + "scope": 20296, + "sourceUnit": 22248, + "src": "110:45:54", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 20272, + "name": "IConverterAnchor", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11826, + "src": "213:16:54", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConverterAnchor_$11826", + "typeString": "contract IConverterAnchor" + } + }, + "id": 20273, + "nodeType": "InheritanceSpecifier", + "src": "213:16:54" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 20274, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "231:11:54", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "id": 20275, + "nodeType": "InheritanceSpecifier", + "src": "231:11:54" + } + ], + "contractDependencies": [ + 11826, + 20240, + 22247, + 22313 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": false, + "id": 20295, + "linearizedBaseContracts": [ + 20295, + 20240, + 11826, + 22313, + 22247 + ], + "name": "ISmartToken", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": null, + "id": 20280, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "disableTransfers", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 20278, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 20277, + "name": "_disable", + "nodeType": "VariableDeclaration", + "scope": 20280, + "src": "272:13:54", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 20276, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "272:4:54", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "271:15:54" + }, + "payable": false, + "returnParameters": { + "id": 20279, + "nodeType": "ParameterList", + "parameters": [], + "src": "293:0:54" + }, + "scope": 20295, + "src": "246:48:54", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 20287, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "issue", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 20285, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 20282, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 20287, + "src": "312:11:54", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 20281, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "312:7:54", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 20284, + "name": "_amount", + "nodeType": "VariableDeclaration", + "scope": 20287, + "src": "325:15:54", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 20283, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "325:7:54", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "311:30:54" + }, + "payable": false, + "returnParameters": { + "id": 20286, + "nodeType": "ParameterList", + "parameters": [], + "src": "348:0:54" + }, + "scope": 20295, + "src": "297:52:54", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 20294, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "destroy", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 20292, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 20289, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 20294, + "src": "369:13:54", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 20288, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "369:7:54", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 20291, + "name": "_amount", + "nodeType": "VariableDeclaration", + "scope": 20294, + "src": "384:15:54", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 20290, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "384:7:54", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "368:32:54" + }, + "payable": false, + "returnParameters": { + "id": 20293, + "nodeType": "ParameterList", + "parameters": [], + "src": "407:0:54" + }, + "scope": 20295, + "src": "352:56:54", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 20296, + "src": "189:221:54" + } + ], + "src": "0:411:54" + }, + "id": 54 + }, + "solidity/contracts/utility/BProOracle.sol": { + "ast": { + "absolutePath": "solidity/contracts/utility/BProOracle.sol", + "exportedSymbols": { + "BProOracle": [ + 20376 + ] + }, + "id": 20377, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 20297, + "literals": [ + "solidity", + "0.4", + ".26" + ], + "nodeType": "PragmaDirective", + "src": "0:23:55" + }, + { + "absolutePath": "solidity/contracts/utility/interfaces/IMoCState.sol", + "file": "./interfaces/IMoCState.sol", + "id": 20298, + "nodeType": "ImportDirective", + "scope": 20377, + "sourceUnit": 22229, + "src": "25:36:55", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "solidity/contracts/utility/interfaces/IConsumerPriceOracle.sol", + "file": "./interfaces/IConsumerPriceOracle.sol", + "id": 20299, + "nodeType": "ImportDirective", + "scope": 20377, + "sourceUnit": 22204, + "src": "62:47:55", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "solidity/contracts/utility/Owned.sol", + "file": "./Owned.sol", + "id": 20300, + "nodeType": "ImportDirective", + "scope": 20377, + "sourceUnit": 21325, + "src": "110:21:55", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 20301, + "name": "IConsumerPriceOracle", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 22203, + "src": "156:20:55", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", + "typeString": "contract IConsumerPriceOracle" + } + }, + "id": 20302, + "nodeType": "InheritanceSpecifier", + "src": "156:20:55" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 20303, + "name": "Owned", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 21324, + "src": "178:5:55", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Owned_$21324", + "typeString": "contract Owned" + } + }, + "id": 20304, + "nodeType": "InheritanceSpecifier", + "src": "178:5:55" + } + ], + "contractDependencies": [ + 21324, + 22203, + 22247 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 20376, + "linearizedBaseContracts": [ + 20376, + 21324, + 22247, + 22203 + ], + "name": "BProOracle", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 20306, + "name": "mocStateAddress", + "nodeType": "VariableDeclaration", + "scope": 20376, + "src": "187:30:55", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 20305, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "187:7:55", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "anonymous": false, + "documentation": null, + "id": 20312, + "name": "SetMoCStateAddress", + "nodeType": "EventDefinition", + "parameters": { + "id": 20311, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 20308, + "indexed": true, + "name": "mocStateAddress", + "nodeType": "VariableDeclaration", + "scope": 20312, + "src": "246:31:55", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 20307, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "246:7:55", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 20310, + "indexed": false, + "name": "changerAddress", + "nodeType": "VariableDeclaration", + "scope": 20312, + "src": "279:22:55", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 20309, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "279:7:55", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "245:57:55" + }, + "src": "221:82:55" + }, + { + "body": { + "id": 20321, + "nodeType": "Block", + "src": "448:44:55", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 20318, + "name": "_mocStateAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20314, + "src": "471:16:55", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 20317, + "name": "setMoCStateAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20375, + "src": "452:18:55", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 20319, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "452:36:55", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 20320, + "nodeType": "ExpressionStatement", + "src": "452:36:55" + } + ] + }, + "documentation": "@dev initializes a new MoC state\n\t * @param _mocStateAddress MoC state address", + "id": 20322, + "implemented": true, + "isConstructor": true, + "isDeclaredConst": false, + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 20315, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 20314, + "name": "_mocStateAddress", + "nodeType": "VariableDeclaration", + "scope": 20322, + "src": "415:24:55", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 20313, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "415:7:55", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "414:26:55" + }, + "payable": false, + "returnParameters": { + "id": 20316, + "nodeType": "ParameterList", + "parameters": [], + "src": "448:0:55" + }, + "scope": 20376, + "src": "403:89:55", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 20339, + "nodeType": "Block", + "src": "636:99:55", + "statements": [ + { + "assignments": [ + 20328 + ], + "declarations": [ + { + "constant": false, + "id": 20328, + "name": "_mocState", + "nodeType": "VariableDeclaration", + "scope": 20340, + "src": "640:19:55", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IMoCState_$22228", + "typeString": "contract IMoCState" + }, + "typeName": { + "contractScope": null, + "id": 20327, + "name": "IMoCState", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 22228, + "src": "640:9:55", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IMoCState_$22228", + "typeString": "contract IMoCState" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 20332, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 20330, + "name": "mocStateAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20306, + "src": "672:15:55", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 20329, + "name": "IMoCState", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22228, + "src": "662:9:55", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IMoCState_$22228_$", + "typeString": "type(contract IMoCState)" + } + }, + "id": 20331, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "662:26:55", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IMoCState_$22228", + "typeString": "contract IMoCState" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "640:48:55" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 20334, + "name": "_mocState", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20328, + "src": "706:9:55", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IMoCState_$22228", + "typeString": "contract IMoCState" + } + }, + "id": 20335, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "bproUsdPrice", + "nodeType": "MemberAccess", + "referencedDeclaration": 22227, + "src": "706:22:55", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", + "typeString": "function () view external returns (uint256)" + } + }, + "id": 20336, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "706:24:55", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 20333, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "699:6:55", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int256_$", + "typeString": "type(int256)" + }, + "typeName": "int256" + }, + "id": 20337, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "699:32:55", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "functionReturnParameters": 20326, + "id": 20338, + "nodeType": "Return", + "src": "692:39:55" + } + ] + }, + "documentation": "@dev BPro USD PRICE\n@return the BPro USD Price [using mocPrecision]", + "id": 20340, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "latestAnswer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 20323, + "nodeType": "ParameterList", + "parameters": [], + "src": "602:2:55" + }, + "payable": false, + "returnParameters": { + "id": 20326, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 20325, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 20340, + "src": "628:6:55", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 20324, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "628:6:55", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "627:8:55" + }, + "scope": 20376, + "src": "581:154:55", + "stateMutability": "view", + "superFunction": 22197, + "visibility": "external" + }, + { + "body": { + "id": 20347, + "nodeType": "Block", + "src": "898:63:55", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 20345, + "name": "now", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22340, + "src": "909:3:55", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 20344, + "id": 20346, + "nodeType": "Return", + "src": "902:10:55" + } + ] + }, + "documentation": "@dev returns the update time.\n\t * @return always returns current block's timestamp", + "id": 20348, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "latestTimestamp", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 20341, + "nodeType": "ParameterList", + "parameters": [], + "src": "863:2:55" + }, + "payable": false, + "returnParameters": { + "id": 20344, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 20343, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 20348, + "src": "889:7:55", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 20342, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "889:7:55", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "888:9:55" + }, + "scope": 20376, + "src": "839:122:55", + "stateMutability": "view", + "superFunction": 22202, + "visibility": "external" + }, + { + "body": { + "id": 20374, + "nodeType": "Block", + "src": "1126:187:55", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 20360, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 20356, + "name": "_mocStateAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20350, + "src": "1138:16:55", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 20358, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1166:1:55", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 20357, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1158:7:55", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 20359, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1158:10:55", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1138:30:55", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "5f6d6f63537461746541646472657373207368616c6c206e6f74206265207a65726f2061646472657373", + "id": 20361, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1170:44:55", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_f37a5125e8d8baf4c4f95298ce2dd02fcb404ca8eb4aa1a721f96d9fcaef160b", + "typeString": "literal_string \"_mocStateAddress shall not be zero address\"" + }, + "value": "_mocStateAddress shall not be zero address" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_f37a5125e8d8baf4c4f95298ce2dd02fcb404ca8eb4aa1a721f96d9fcaef160b", + "typeString": "literal_string \"_mocStateAddress shall not be zero address\"" + } + ], + "id": 20355, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 22341, + 22342 + ], + "referencedDeclaration": 22342, + "src": "1130:7:55", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 20362, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1130:85:55", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 20363, + "nodeType": "ExpressionStatement", + "src": "1130:85:55" + }, + { + "expression": { + "argumentTypes": null, + "id": 20366, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 20364, + "name": "mocStateAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20306, + "src": "1219:15:55", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 20365, + "name": "_mocStateAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20350, + "src": "1237:16:55", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1219:34:55", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 20367, + "nodeType": "ExpressionStatement", + "src": "1219:34:55" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 20369, + "name": "mocStateAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20306, + "src": "1281:15:55", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 20370, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22338, + "src": "1298:3:55", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 20371, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1298:10:55", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 20368, + "name": "SetMoCStateAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20312, + "src": "1262:18:55", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", + "typeString": "function (address,address)" + } + }, + "id": 20372, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1262:47:55", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 20373, + "nodeType": "EmitStatement", + "src": "1257:52:55" + } + ] + }, + "documentation": "@dev set MoC state address\n\t * @param _mocStateAddress MoC state address", + "id": 20375, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 20353, + "modifierName": { + "argumentTypes": null, + "id": 20352, + "name": "ownerOnly", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21265, + "src": "1116:9:55", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "1116:9:55" + } + ], + "name": "setMoCStateAddress", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 20351, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 20350, + "name": "_mocStateAddress", + "nodeType": "VariableDeclaration", + "scope": 20375, + "src": "1083:24:55", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 20349, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1083:7:55", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1082:26:55" + }, + "payable": false, + "returnParameters": { + "id": 20354, + "nodeType": "ParameterList", + "parameters": [], + "src": "1126:0:55" + }, + "scope": 20376, + "src": "1055:258:55", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 20377, + "src": "133:1182:55" + } + ], + "src": "0:1316:55" + }, + "id": 55 + }, + "solidity/contracts/utility/ChainlinkBTCToUSDOracle.sol": { + "ast": { + "absolutePath": "solidity/contracts/utility/ChainlinkBTCToUSDOracle.sol", + "exportedSymbols": { + "ChainlinkBTCToUSDOracle": [ + 20401 + ] + }, + "id": 20402, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 20378, + "literals": [ + "solidity", + "0.4", + ".26" + ], + "nodeType": "PragmaDirective", + "src": "0:23:56" + }, + { + "absolutePath": "solidity/contracts/utility/interfaces/IConsumerPriceOracle.sol", + "file": "./interfaces/IConsumerPriceOracle.sol", + "id": 20379, + "nodeType": "ImportDirective", + "scope": 20402, + "sourceUnit": 22204, + "src": "25:47:56", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 20380, + "name": "IConsumerPriceOracle", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 22203, + "src": "152:20:56", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", + "typeString": "contract IConsumerPriceOracle" + } + }, + "id": 20381, + "nodeType": "InheritanceSpecifier", + "src": "152:20:56" + } + ], + "contractDependencies": [ + 22203 + ], + "contractKind": "contract", + "documentation": "@dev Provides the BTC/USD rate", + "fullyImplemented": true, + "id": 20401, + "linearizedBaseContracts": [ + 20401, + 22203 + ], + "name": "ChainlinkBTCToUSDOracle", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "id": 20384, + "name": "BTC_RATE", + "nodeType": "VariableDeclaration", + "scope": 20401, + "src": "176:40:56", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 20382, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "176:6:56", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "3130303030", + "id": 20383, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "211:5:56", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_10000_by_1", + "typeString": "int_const 10000" + }, + "value": "10000" + }, + "visibility": "private" + }, + { + "body": { + "id": 20391, + "nodeType": "Block", + "src": "365:23:56", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 20389, + "name": "BTC_RATE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20384, + "src": "376:8:56", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "functionReturnParameters": 20388, + "id": 20390, + "nodeType": "Return", + "src": "369:15:56" + } + ] + }, + "documentation": "@dev returns the BTC/USD rate.\n\t * @return always returns the rate of 1", + "id": 20392, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "latestAnswer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 20385, + "nodeType": "ParameterList", + "parameters": [], + "src": "331:2:56" + }, + "payable": false, + "returnParameters": { + "id": 20388, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 20387, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 20392, + "src": "357:6:56", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 20386, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "357:6:56", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "356:8:56" + }, + "scope": 20401, + "src": "310:78:56", + "stateMutability": "view", + "superFunction": 22197, + "visibility": "external" + }, + { + "body": { + "id": 20399, + "nodeType": "Block", + "src": "559:18:56", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 20397, + "name": "now", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22340, + "src": "570:3:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 20396, + "id": 20398, + "nodeType": "Return", + "src": "563:10:56" + } + ] + }, + "documentation": "@dev returns the BTC/USD update time.\n\t * @return always returns current block's timestamp", + "id": 20400, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "latestTimestamp", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 20393, + "nodeType": "ParameterList", + "parameters": [], + "src": "524:2:56" + }, + "payable": false, + "returnParameters": { + "id": 20396, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 20395, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 20400, + "src": "550:7:56", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 20394, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "550:7:56", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "549:9:56" + }, + "scope": 20401, + "src": "500:77:56", + "stateMutability": "view", + "superFunction": 22202, + "visibility": "external" + } + ], + "scope": 20402, + "src": "116:463:56" + } + ], + "src": "0:580:56" + }, + "id": 56 + }, + "solidity/contracts/utility/ChainlinkETHToETHOracle.sol": { + "ast": { + "absolutePath": "solidity/contracts/utility/ChainlinkETHToETHOracle.sol", + "exportedSymbols": { + "ChainlinkETHToETHOracle": [ + 20426 + ] + }, + "id": 20427, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 20403, + "literals": [ + "solidity", + "0.4", + ".26" + ], + "nodeType": "PragmaDirective", + "src": "0:23:57" + }, + { + "absolutePath": "solidity/contracts/utility/interfaces/IConsumerPriceOracle.sol", + "file": "./interfaces/IConsumerPriceOracle.sol", + "id": 20404, + "nodeType": "ImportDirective", + "scope": 20427, + "sourceUnit": 22204, + "src": "25:47:57", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 20405, + "name": "IConsumerPriceOracle", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 22203, + "src": "196:20:57", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", + "typeString": "contract IConsumerPriceOracle" + } + }, + "id": 20406, + "nodeType": "InheritanceSpecifier", + "src": "196:20:57" + } + ], + "contractDependencies": [ + 22203 + ], + "contractKind": "contract", + "documentation": "@dev Provides the trivial ETH/ETH rate to be used with other TKN/ETH rates", + "fullyImplemented": true, + "id": 20426, + "linearizedBaseContracts": [ + 20426, + 22203 + ], + "name": "ChainlinkETHToETHOracle", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "id": 20409, + "name": "ETH_RATE", + "nodeType": "VariableDeclaration", + "scope": 20426, + "src": "220:36:57", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 20407, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "220:6:57", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "31", + "id": 20408, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "255:1:57", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "visibility": "private" + }, + { + "body": { + "id": 20416, + "nodeType": "Block", + "src": "421:23:57", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 20414, + "name": "ETH_RATE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20409, + "src": "432:8:57", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "functionReturnParameters": 20413, + "id": 20415, + "nodeType": "Return", + "src": "425:15:57" + } + ] + }, + "documentation": "@dev returns the trivial ETH/ETH rate.\n\t * @return always returns the trivial rate of 1", + "id": 20417, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "latestAnswer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 20410, + "nodeType": "ParameterList", + "parameters": [], + "src": "387:2:57" + }, + "payable": false, + "returnParameters": { + "id": 20413, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 20412, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 20417, + "src": "413:6:57", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 20411, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "413:6:57", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "412:8:57" + }, + "scope": 20426, + "src": "366:78:57", + "stateMutability": "view", + "superFunction": 22197, + "visibility": "external" + }, + { + "body": { + "id": 20424, + "nodeType": "Block", + "src": "623:18:57", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 20422, + "name": "now", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22340, + "src": "634:3:57", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 20421, + "id": 20423, + "nodeType": "Return", + "src": "627:10:57" + } + ] + }, + "documentation": "@dev returns the trivial ETH/ETH update time.\n\t * @return always returns current block's timestamp", + "id": 20425, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "latestTimestamp", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 20418, + "nodeType": "ParameterList", + "parameters": [], + "src": "588:2:57" + }, + "payable": false, + "returnParameters": { + "id": 20421, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 20420, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 20425, + "src": "614:7:57", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 20419, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "614:7:57", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "613:9:57" + }, + "scope": 20426, + "src": "564:77:57", + "stateMutability": "view", + "superFunction": 22202, + "visibility": "external" + } + ], + "scope": 20427, + "src": "160:483:57" + } + ], + "src": "0:644:57" + }, + "id": 57 + }, + "solidity/contracts/utility/ChainlinkUSDToBTCOracle.sol": { + "ast": { + "absolutePath": "solidity/contracts/utility/ChainlinkUSDToBTCOracle.sol", + "exportedSymbols": { + "ChainlinkUSDToBTCOracle": [ + 20451 + ] + }, + "id": 20452, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 20428, + "literals": [ + "solidity", + "0.4", + ".26" + ], + "nodeType": "PragmaDirective", + "src": "0:23:58" + }, + { + "absolutePath": "solidity/contracts/utility/interfaces/IConsumerPriceOracle.sol", + "file": "./interfaces/IConsumerPriceOracle.sol", + "id": 20429, + "nodeType": "ImportDirective", + "scope": 20452, + "sourceUnit": 22204, + "src": "25:47:58", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 20430, + "name": "IConsumerPriceOracle", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 22203, + "src": "152:20:58", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", + "typeString": "contract IConsumerPriceOracle" + } + }, + "id": 20431, + "nodeType": "InheritanceSpecifier", + "src": "152:20:58" + } + ], + "contractDependencies": [ + 22203 + ], + "contractKind": "contract", + "documentation": "@dev Provides the USD/BTC rate", + "fullyImplemented": true, + "id": 20451, + "linearizedBaseContracts": [ + 20451, + 22203 + ], + "name": "ChainlinkUSDToBTCOracle", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "id": 20434, + "name": "USD_RATE", + "nodeType": "VariableDeclaration", + "scope": 20451, + "src": "176:40:58", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 20432, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "176:6:58", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "3130303030", + "id": 20433, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "211:5:58", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_10000_by_1", + "typeString": "int_const 10000" + }, + "value": "10000" + }, + "visibility": "private" + }, + { + "body": { + "id": 20441, + "nodeType": "Block", + "src": "369:23:58", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 20439, + "name": "USD_RATE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20434, + "src": "380:8:58", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "functionReturnParameters": 20438, + "id": 20440, + "nodeType": "Return", + "src": "373:15:58" + } + ] + }, + "documentation": "@dev returns the USD/BTC rate.\n\t * @return always returns the rate of 10000", + "id": 20442, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "latestAnswer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 20435, + "nodeType": "ParameterList", + "parameters": [], + "src": "335:2:58" + }, + "payable": false, + "returnParameters": { + "id": 20438, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 20437, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 20442, + "src": "361:6:58", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 20436, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "361:6:58", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "360:8:58" + }, + "scope": 20451, + "src": "314:78:58", + "stateMutability": "view", + "superFunction": 22197, + "visibility": "external" + }, + { + "body": { + "id": 20449, + "nodeType": "Block", + "src": "563:18:58", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 20447, + "name": "now", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22340, + "src": "574:3:58", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 20446, + "id": 20448, + "nodeType": "Return", + "src": "567:10:58" + } + ] + }, + "documentation": "@dev returns the USD/BTC update time.\n\t * @return always returns current block's timestamp", + "id": 20450, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "latestTimestamp", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 20443, + "nodeType": "ParameterList", + "parameters": [], + "src": "528:2:58" + }, + "payable": false, + "returnParameters": { + "id": 20446, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 20445, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 20450, + "src": "554:7:58", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 20444, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "554:7:58", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "553:9:58" + }, + "scope": 20451, + "src": "504:77:58", + "stateMutability": "view", + "superFunction": 22202, + "visibility": "external" + } + ], + "scope": 20452, + "src": "116:467:58" + } + ], + "src": "0:584:58" + }, + "id": 58 + }, + "solidity/contracts/utility/ContractRegistry.sol": { + "ast": { + "absolutePath": "solidity/contracts/utility/ContractRegistry.sol", + "exportedSymbols": { + "ContractRegistry": [ + 20740 + ] + }, + "id": 20741, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 20453, + "literals": [ + "solidity", + "0.4", + ".26" + ], + "nodeType": "PragmaDirective", + "src": "0:23:59" + }, + { + "absolutePath": "solidity/contracts/utility/Owned.sol", + "file": "./Owned.sol", + "id": 20454, + "nodeType": "ImportDirective", + "scope": 20741, + "sourceUnit": 21325, + "src": "24:21:59", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "solidity/contracts/utility/Utils.sol", + "file": "./Utils.sol", + "id": 20455, + "nodeType": "ImportDirective", + "scope": 20741, + "sourceUnit": 22053, + "src": "46:21:59", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "solidity/contracts/utility/interfaces/IContractRegistry.sol", + "file": "./interfaces/IContractRegistry.sol", + "id": 20456, + "nodeType": "ImportDirective", + "scope": 20741, + "sourceUnit": 22221, + "src": "68:44:59", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 20457, + "name": "IContractRegistry", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 22220, + "src": "586:17:59", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IContractRegistry_$22220", + "typeString": "contract IContractRegistry" + } + }, + "id": 20458, + "nodeType": "InheritanceSpecifier", + "src": "586:17:59" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 20459, + "name": "Owned", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 21324, + "src": "605:5:59", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Owned_$21324", + "typeString": "contract Owned" + } + }, + "id": 20460, + "nodeType": "InheritanceSpecifier", + "src": "605:5:59" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 20461, + "name": "Utils", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 22052, + "src": "612:5:59", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Utils_$22052", + "typeString": "contract Utils" + } + }, + "id": 20462, + "nodeType": "InheritanceSpecifier", + "src": "612:5:59" + } + ], + "contractDependencies": [ + 21324, + 22052, + 22220, + 22247 + ], + "contractKind": "contract", + "documentation": "@dev Contract Registry\n * The contract registry keeps contract addresses by name.\nThe owner can update contract addresses so that a contract name always points to the latest version\nof the given contract.\nOther contracts can query the registry to get updated addresses instead of depending on specific\naddresses.\n * Note that contract names are limited to 32 bytes UTF8 encoded ASCII strings to optimize gas costs", + "fullyImplemented": true, + "id": 20740, + "linearizedBaseContracts": [ + 20740, + 22052, + 21324, + 22247, + 22220 + ], + "name": "ContractRegistry", + "nodeType": "ContractDefinition", + "nodes": [ + { + "canonicalName": "ContractRegistry.RegistryItem", + "id": 20467, + "members": [ + { + "constant": false, + "id": 20464, + "name": "contractAddress", + "nodeType": "VariableDeclaration", + "scope": 20467, + "src": "645:23:59", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 20463, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "645:7:59", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 20466, + "name": "nameIndex", + "nodeType": "VariableDeclaration", + "scope": 20467, + "src": "692:17:59", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 20465, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "692:7:59", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "name": "RegistryItem", + "nodeType": "StructDefinition", + "scope": 20740, + "src": "621:143:59", + "visibility": "public" + }, + { + "constant": false, + "id": 20471, + "name": "items", + "nodeType": "VariableDeclaration", + "scope": 20740, + "src": "767:46:59", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RegistryItem_$20467_storage_$", + "typeString": "mapping(bytes32 => struct ContractRegistry.RegistryItem)" + }, + "typeName": { + "id": 20470, + "keyType": { + "id": 20468, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "775:7:59", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "Mapping", + "src": "767:32:59", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RegistryItem_$20467_storage_$", + "typeString": "mapping(bytes32 => struct ContractRegistry.RegistryItem)" + }, + "valueType": { + "contractScope": null, + "id": 20469, + "name": "RegistryItem", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20467, + "src": "786:12:59", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RegistryItem_$20467_storage_ptr", + "typeString": "struct ContractRegistry.RegistryItem" + } + } + }, + "value": null, + "visibility": "private" + }, + { + "constant": false, + "id": 20474, + "name": "contractNames", + "nodeType": "VariableDeclaration", + "scope": 20740, + "src": "848:29:59", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_storage_$dyn_storage", + "typeString": "string[]" + }, + "typeName": { + "baseType": { + "id": 20472, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "848:6:59", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "id": 20473, + "length": null, + "nodeType": "ArrayTypeName", + "src": "848:8:59", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr", + "typeString": "string[]" + } + }, + "value": null, + "visibility": "public" + }, + { + "anonymous": false, + "documentation": "@dev triggered when an address pointed to by a contract name is modified\n\t * @param _contractName contract name\n@param _contractAddress new contract address", + "id": 20480, + "name": "AddressUpdate", + "nodeType": "EventDefinition", + "parameters": { + "id": 20479, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 20476, + "indexed": true, + "name": "_contractName", + "nodeType": "VariableDeclaration", + "scope": 20480, + "src": "1124:29:59", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 20475, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1124:7:59", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 20478, + "indexed": false, + "name": "_contractAddress", + "nodeType": "VariableDeclaration", + "scope": 20480, + "src": "1155:24:59", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 20477, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1155:7:59", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1123:57:59" + }, + "src": "1104:77:59" + }, + { + "body": { + "id": 20488, + "nodeType": "Block", + "src": "1330:35:59", + "statements": [ + { + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 20485, + "name": "contractNames", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20474, + "src": "1341:13:59", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_storage_$dyn_storage", + "typeString": "string storage ref[] storage ref" + } + }, + "id": 20486, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1341:20:59", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 20484, + "id": 20487, + "nodeType": "Return", + "src": "1334:27:59" + } + ] + }, + "documentation": "@dev returns the number of items in the registry\n\t * @return number of items", + "id": 20489, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "itemCount", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 20481, + "nodeType": "ParameterList", + "parameters": [], + "src": "1297:2:59" + }, + "payable": false, + "returnParameters": { + "id": 20484, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 20483, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 20489, + "src": "1321:7:59", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 20482, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1321:7:59", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1320:9:59" + }, + "scope": 20740, + "src": "1279:86:59", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 20501, + "nodeType": "Block", + "src": "1598:51:59", + "statements": [ + { + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 20496, + "name": "items", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20471, + "src": "1609:5:59", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RegistryItem_$20467_storage_$", + "typeString": "mapping(bytes32 => struct ContractRegistry.RegistryItem storage ref)" + } + }, + "id": 20498, + "indexExpression": { + "argumentTypes": null, + "id": 20497, + "name": "_contractName", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20491, + "src": "1615:13:59", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1609:20:59", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RegistryItem_$20467_storage", + "typeString": "struct ContractRegistry.RegistryItem storage ref" + } + }, + "id": 20499, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "contractAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 20464, + "src": "1609:36:59", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 20495, + "id": 20500, + "nodeType": "Return", + "src": "1602:43:59" + } + ] + }, + "documentation": "@dev returns the address associated with the given contract name\n\t * @param _contractName contract name\n\t * @return contract address", + "id": 20502, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "addressOf", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 20492, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 20491, + "name": "_contractName", + "nodeType": "VariableDeclaration", + "scope": 20502, + "src": "1545:21:59", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 20490, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1545:7:59", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1544:23:59" + }, + "payable": false, + "returnParameters": { + "id": 20495, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 20494, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 20502, + "src": "1589:7:59", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 20493, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1589:7:59", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1588:9:59" + }, + "scope": 20740, + "src": "1526:123:59", + "stateMutability": "view", + "superFunction": 22212, + "visibility": "public" + }, + { + "body": { + "id": 20571, + "nodeType": "Block", + "src": "1948:667:59", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 20518, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 20515, + "name": "_contractName", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20504, + "src": "1980:13:59", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 20516, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1980:20:59", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 20517, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2003:1:59", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1980:24:59", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4552525f494e56414c49445f4e414d45", + "id": 20519, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2006:18:59", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_8c31b897cf1b4c41d9a3a2c9019700f5d8d0c36c906997985403c8f4610f8246", + "typeString": "literal_string \"ERR_INVALID_NAME\"" + }, + "value": "ERR_INVALID_NAME" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_8c31b897cf1b4c41d9a3a2c9019700f5d8d0c36c906997985403c8f4610f8246", + "typeString": "literal_string \"ERR_INVALID_NAME\"" + } + ], + "id": 20514, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 22341, + 22342 + ], + "referencedDeclaration": 22342, + "src": "1972:7:59", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 20520, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1972:53:59", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 20521, + "nodeType": "ExpressionStatement", + "src": "1972:53:59" + }, + { + "assignments": [ + 20523 + ], + "declarations": [ + { + "constant": false, + "id": 20523, + "name": "currentAddress", + "nodeType": "VariableDeclaration", + "scope": 20572, + "src": "2065:22:59", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 20522, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2065:7:59", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 20528, + "initialValue": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 20524, + "name": "items", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20471, + "src": "2090:5:59", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RegistryItem_$20467_storage_$", + "typeString": "mapping(bytes32 => struct ContractRegistry.RegistryItem storage ref)" + } + }, + "id": 20526, + "indexExpression": { + "argumentTypes": null, + "id": 20525, + "name": "_contractName", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20504, + "src": "2096:13:59", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2090:20:59", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RegistryItem_$20467_storage", + "typeString": "struct ContractRegistry.RegistryItem storage ref" + } + }, + "id": 20527, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "contractAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 20464, + "src": "2090:36:59", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2065:61:59" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 20531, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 20529, + "name": "_contractAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20506, + "src": "2134:16:59", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 20530, + "name": "currentAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20523, + "src": "2154:14:59", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "2134:34:59", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 20533, + "nodeType": "IfStatement", + "src": "2130:47:59", + "trueBody": { + "expression": null, + "functionReturnParameters": 20513, + "id": 20532, + "nodeType": "Return", + "src": "2170:7:59" + } + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 20538, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 20534, + "name": "currentAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20523, + "src": "2185:14:59", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 20536, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2211:1:59", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 20535, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2203:7:59", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 20537, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2203:10:59", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "2185:28:59", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 20558, + "nodeType": "IfStatement", + "src": "2181:236:59", + "trueBody": { + "id": 20557, + "nodeType": "Block", + "src": "2215:202:59", + "statements": [ + { + "assignments": [ + 20540 + ], + "declarations": [ + { + "constant": false, + "id": 20540, + "name": "i", + "nodeType": "VariableDeclaration", + "scope": 20572, + "src": "2265:9:59", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 20539, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2265:7:59", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 20547, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 20544, + "name": "_contractName", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20504, + "src": "2312:13:59", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 20543, + "name": "bytes32ToString", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20713, + "src": "2296:15:59", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$_t_string_memory_ptr_$", + "typeString": "function (bytes32) pure returns (string memory)" + } + }, + "id": 20545, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2296:30:59", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "expression": { + "argumentTypes": null, + "id": 20541, + "name": "contractNames", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20474, + "src": "2277:13:59", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_storage_$dyn_storage", + "typeString": "string storage ref[] storage ref" + } + }, + "id": 20542, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "push", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2277:18:59", + "typeDescriptions": { + "typeIdentifier": "t_function_arraypush_nonpayable$_t_string_storage_$returns$_t_uint256_$", + "typeString": "function (string storage ref) returns (uint256)" + } + }, + "id": 20546, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2277:50:59", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2265:62:59" + }, + { + "expression": { + "argumentTypes": null, + "id": 20555, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 20548, + "name": "items", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20471, + "src": "2374:5:59", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RegistryItem_$20467_storage_$", + "typeString": "mapping(bytes32 => struct ContractRegistry.RegistryItem storage ref)" + } + }, + "id": 20550, + "indexExpression": { + "argumentTypes": null, + "id": 20549, + "name": "_contractName", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20504, + "src": "2380:13:59", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2374:20:59", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RegistryItem_$20467_storage", + "typeString": "struct ContractRegistry.RegistryItem storage ref" + } + }, + "id": 20551, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "nameIndex", + "nodeType": "MemberAccess", + "referencedDeclaration": 20466, + "src": "2374:30:59", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 20554, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 20552, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20540, + "src": "2407:1:59", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 20553, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2411:1:59", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "2407:5:59", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2374:38:59", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 20556, + "nodeType": "ExpressionStatement", + "src": "2374:38:59" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "id": 20564, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 20559, + "name": "items", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20471, + "src": "2461:5:59", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RegistryItem_$20467_storage_$", + "typeString": "mapping(bytes32 => struct ContractRegistry.RegistryItem storage ref)" + } + }, + "id": 20561, + "indexExpression": { + "argumentTypes": null, + "id": 20560, + "name": "_contractName", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20504, + "src": "2467:13:59", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2461:20:59", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RegistryItem_$20467_storage", + "typeString": "struct ContractRegistry.RegistryItem storage ref" + } + }, + "id": 20562, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "contractAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 20464, + "src": "2461:36:59", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 20563, + "name": "_contractAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20506, + "src": "2500:16:59", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "2461:55:59", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 20565, + "nodeType": "ExpressionStatement", + "src": "2461:55:59" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 20567, + "name": "_contractName", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20504, + "src": "2579:13:59", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 20568, + "name": "_contractAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20506, + "src": "2594:16:59", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 20566, + "name": "AddressUpdate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20480, + "src": "2565:13:59", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$returns$__$", + "typeString": "function (bytes32,address)" + } + }, + "id": 20569, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2565:46:59", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 20570, + "nodeType": "EmitStatement", + "src": "2560:51:59" + } + ] + }, + "documentation": "@dev registers a new address for the contract name in the registry\n\t * @param _contractName contract name\n@param _contractAddress contract address", + "id": 20572, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 20509, + "modifierName": { + "argumentTypes": null, + "id": 20508, + "name": "ownerOnly", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21265, + "src": "1907:9:59", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "1907:9:59" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 20511, + "name": "_contractAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20506, + "src": "1930:16:59", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 20512, + "modifierName": { + "argumentTypes": null, + "id": 20510, + "name": "validAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22011, + "src": "1917:12:59", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_address_$", + "typeString": "modifier (address)" + } + }, + "nodeType": "ModifierInvocation", + "src": "1917:30:59" + } + ], + "name": "registerAddress", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 20507, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 20504, + "name": "_contractName", + "nodeType": "VariableDeclaration", + "scope": 20572, + "src": "1851:21:59", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 20503, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1851:7:59", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 20506, + "name": "_contractAddress", + "nodeType": "VariableDeclaration", + "scope": 20572, + "src": "1874:24:59", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 20505, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1874:7:59", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1850:49:59" + }, + "payable": false, + "returnParameters": { + "id": 20513, + "nodeType": "ParameterList", + "parameters": [], + "src": "1948:0:59" + }, + "scope": 20740, + "src": "1826:789:59", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 20673, + "nodeType": "Block", + "src": "2802:1156:59", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 20583, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 20580, + "name": "_contractName", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20574, + "src": "2834:13:59", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 20581, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2834:20:59", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 20582, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2857:1:59", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "2834:24:59", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4552525f494e56414c49445f4e414d45", + "id": 20584, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2860:18:59", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_8c31b897cf1b4c41d9a3a2c9019700f5d8d0c36c906997985403c8f4610f8246", + "typeString": "literal_string \"ERR_INVALID_NAME\"" + }, + "value": "ERR_INVALID_NAME" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_8c31b897cf1b4c41d9a3a2c9019700f5d8d0c36c906997985403c8f4610f8246", + "typeString": "literal_string \"ERR_INVALID_NAME\"" + } + ], + "id": 20579, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 22341, + 22342 + ], + "referencedDeclaration": 22342, + "src": "2826:7:59", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 20585, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2826:53:59", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 20586, + "nodeType": "ExpressionStatement", + "src": "2826:53:59" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 20595, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 20588, + "name": "items", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20471, + "src": "2891:5:59", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RegistryItem_$20467_storage_$", + "typeString": "mapping(bytes32 => struct ContractRegistry.RegistryItem storage ref)" + } + }, + "id": 20590, + "indexExpression": { + "argumentTypes": null, + "id": 20589, + "name": "_contractName", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20574, + "src": "2897:13:59", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2891:20:59", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RegistryItem_$20467_storage", + "typeString": "struct ContractRegistry.RegistryItem storage ref" + } + }, + "id": 20591, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "contractAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 20464, + "src": "2891:36:59", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 20593, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2939:1:59", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 20592, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2931:7:59", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 20594, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2931:10:59", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "2891:50:59", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4552525f494e56414c49445f4e414d45", + "id": 20596, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2943:18:59", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_8c31b897cf1b4c41d9a3a2c9019700f5d8d0c36c906997985403c8f4610f8246", + "typeString": "literal_string \"ERR_INVALID_NAME\"" + }, + "value": "ERR_INVALID_NAME" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_8c31b897cf1b4c41d9a3a2c9019700f5d8d0c36c906997985403c8f4610f8246", + "typeString": "literal_string \"ERR_INVALID_NAME\"" + } + ], + "id": 20587, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 22341, + 22342 + ], + "referencedDeclaration": 22342, + "src": "2883:7:59", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 20597, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2883:79:59", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 20598, + "nodeType": "ExpressionStatement", + "src": "2883:79:59" + }, + { + "expression": { + "argumentTypes": null, + "id": 20606, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 20599, + "name": "items", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20471, + "src": "3009:5:59", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RegistryItem_$20467_storage_$", + "typeString": "mapping(bytes32 => struct ContractRegistry.RegistryItem storage ref)" + } + }, + "id": 20601, + "indexExpression": { + "argumentTypes": null, + "id": 20600, + "name": "_contractName", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20574, + "src": "3015:13:59", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3009:20:59", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RegistryItem_$20467_storage", + "typeString": "struct ContractRegistry.RegistryItem storage ref" + } + }, + "id": 20602, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "contractAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 20464, + "src": "3009:36:59", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 20604, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3056:1:59", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 20603, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3048:7:59", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 20605, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3048:10:59", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "3009:49:59", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 20607, + "nodeType": "ExpressionStatement", + "src": "3009:49:59" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 20611, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 20608, + "name": "contractNames", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20474, + "src": "3299:13:59", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_storage_$dyn_storage", + "typeString": "string storage ref[] storage ref" + } + }, + "id": 20609, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3299:20:59", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 20610, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3322:1:59", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "3299:24:59", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 20653, + "nodeType": "IfStatement", + "src": "3295:420:59", + "trueBody": { + "id": 20652, + "nodeType": "Block", + "src": "3325:390:59", + "statements": [ + { + "assignments": [ + 20613 + ], + "declarations": [ + { + "constant": false, + "id": 20613, + "name": "lastContractNameString", + "nodeType": "VariableDeclaration", + "scope": 20674, + "src": "3330:36:59", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 20612, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3330:6:59", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 20620, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 20614, + "name": "contractNames", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20474, + "src": "3369:13:59", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_storage_$dyn_storage", + "typeString": "string storage ref[] storage ref" + } + }, + "id": 20619, + "indexExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 20618, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 20615, + "name": "contractNames", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20474, + "src": "3383:13:59", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_storage_$dyn_storage", + "typeString": "string storage ref[] storage ref" + } + }, + "id": 20616, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3383:20:59", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 20617, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3406:1:59", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "3383:24:59", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3369:39:59", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3330:78:59" + }, + { + "assignments": [ + 20622 + ], + "declarations": [ + { + "constant": false, + "id": 20622, + "name": "unregisterIndex", + "nodeType": "VariableDeclaration", + "scope": 20674, + "src": "3413:23:59", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 20621, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3413:7:59", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 20627, + "initialValue": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 20623, + "name": "items", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20471, + "src": "3439:5:59", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RegistryItem_$20467_storage_$", + "typeString": "mapping(bytes32 => struct ContractRegistry.RegistryItem storage ref)" + } + }, + "id": 20625, + "indexExpression": { + "argumentTypes": null, + "id": 20624, + "name": "_contractName", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20574, + "src": "3445:13:59", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3439:20:59", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RegistryItem_$20467_storage", + "typeString": "struct ContractRegistry.RegistryItem storage ref" + } + }, + "id": 20626, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "nameIndex", + "nodeType": "MemberAccess", + "referencedDeclaration": 20466, + "src": "3439:30:59", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3413:56:59" + }, + { + "expression": { + "argumentTypes": null, + "id": 20632, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 20628, + "name": "contractNames", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20474, + "src": "3475:13:59", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_storage_$dyn_storage", + "typeString": "string storage ref[] storage ref" + } + }, + "id": 20630, + "indexExpression": { + "argumentTypes": null, + "id": 20629, + "name": "unregisterIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20622, + "src": "3489:15:59", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "3475:30:59", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 20631, + "name": "lastContractNameString", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20613, + "src": "3508:22:59", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "3475:55:59", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 20633, + "nodeType": "ExpressionStatement", + "src": "3475:55:59" + }, + { + "assignments": [ + 20635 + ], + "declarations": [ + { + "constant": false, + "id": 20635, + "name": "lastContractName", + "nodeType": "VariableDeclaration", + "scope": 20674, + "src": "3535:24:59", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 20634, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3535:7:59", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 20639, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 20637, + "name": "lastContractNameString", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20613, + "src": "3578:22:59", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 20636, + "name": "stringToBytes32", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20727, + "src": "3562:15:59", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (string memory) pure returns (bytes32)" + } + }, + "id": 20638, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3562:39:59", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3535:66:59" + }, + { + "assignments": [ + 20641 + ], + "declarations": [ + { + "constant": false, + "id": 20641, + "name": "registryItem", + "nodeType": "VariableDeclaration", + "scope": 20674, + "src": "3606:33:59", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RegistryItem_$20467_storage_ptr", + "typeString": "struct ContractRegistry.RegistryItem" + }, + "typeName": { + "contractScope": null, + "id": 20640, + "name": "RegistryItem", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20467, + "src": "3606:12:59", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RegistryItem_$20467_storage_ptr", + "typeString": "struct ContractRegistry.RegistryItem" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 20645, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 20642, + "name": "items", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20471, + "src": "3642:5:59", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RegistryItem_$20467_storage_$", + "typeString": "mapping(bytes32 => struct ContractRegistry.RegistryItem storage ref)" + } + }, + "id": 20644, + "indexExpression": { + "argumentTypes": null, + "id": 20643, + "name": "lastContractName", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20635, + "src": "3648:16:59", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3642:23:59", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RegistryItem_$20467_storage", + "typeString": "struct ContractRegistry.RegistryItem storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3606:59:59" + }, + { + "expression": { + "argumentTypes": null, + "id": 20650, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 20646, + "name": "registryItem", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20641, + "src": "3670:12:59", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RegistryItem_$20467_storage_ptr", + "typeString": "struct ContractRegistry.RegistryItem storage pointer" + } + }, + "id": 20648, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "nameIndex", + "nodeType": "MemberAccess", + "referencedDeclaration": 20466, + "src": "3670:22:59", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 20649, + "name": "unregisterIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20622, + "src": "3695:15:59", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3670:40:59", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 20651, + "nodeType": "ExpressionStatement", + "src": "3670:40:59" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "id": 20657, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "--", + "prefix": false, + "src": "3767:22:59", + "subExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 20654, + "name": "contractNames", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20474, + "src": "3767:13:59", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_storage_$dyn_storage", + "typeString": "string storage ref[] storage ref" + } + }, + "id": 20656, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3767:20:59", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 20658, + "nodeType": "ExpressionStatement", + "src": "3767:22:59" + }, + { + "expression": { + "argumentTypes": null, + "id": 20664, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 20659, + "name": "items", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20471, + "src": "3831:5:59", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RegistryItem_$20467_storage_$", + "typeString": "mapping(bytes32 => struct ContractRegistry.RegistryItem storage ref)" + } + }, + "id": 20661, + "indexExpression": { + "argumentTypes": null, + "id": 20660, + "name": "_contractName", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20574, + "src": "3837:13:59", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3831:20:59", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RegistryItem_$20467_storage", + "typeString": "struct ContractRegistry.RegistryItem storage ref" + } + }, + "id": 20662, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "nameIndex", + "nodeType": "MemberAccess", + "referencedDeclaration": 20466, + "src": "3831:30:59", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30", + "id": 20663, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3864:1:59", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3831:34:59", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 20665, + "nodeType": "ExpressionStatement", + "src": "3831:34:59" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 20667, + "name": "_contractName", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20574, + "src": "3928:13:59", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 20669, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3951:1:59", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 20668, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3943:7:59", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 20670, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3943:10:59", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 20666, + "name": "AddressUpdate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20480, + "src": "3914:13:59", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$returns$__$", + "typeString": "function (bytes32,address)" + } + }, + "id": 20671, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3914:40:59", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 20672, + "nodeType": "EmitStatement", + "src": "3909:45:59" + } + ] + }, + "documentation": "@dev removes an existing contract address from the registry\n\t * @param _contractName contract name", + "id": 20674, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 20577, + "modifierName": { + "argumentTypes": null, + "id": 20576, + "name": "ownerOnly", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21265, + "src": "2792:9:59", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "2792:9:59" + } + ], + "name": "unregisterAddress", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 20575, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 20574, + "name": "_contractName", + "nodeType": "VariableDeclaration", + "scope": 20674, + "src": "2762:21:59", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 20573, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2762:7:59", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2761:23:59" + }, + "payable": false, + "returnParameters": { + "id": 20578, + "nodeType": "ParameterList", + "parameters": [], + "src": "2802:0:59" + }, + "scope": 20740, + "src": "2735:1223:59", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 20712, + "nodeType": "Block", + "src": "4235:145:59", + "statements": [ + { + "assignments": [ + 20682 + ], + "declarations": [ + { + "constant": false, + "id": 20682, + "name": "byteArray", + "nodeType": "VariableDeclaration", + "scope": 20713, + "src": "4239:22:59", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 20681, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "4239:5:59", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 20687, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "3332", + "id": 20685, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4274:2:59", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + "value": "32" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + } + ], + "id": 20684, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "4264:9:59", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_$", + "typeString": "function (uint256) pure returns (bytes memory)" + }, + "typeName": { + "id": 20683, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "4268:5:59", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + } + }, + "id": 20686, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4264:13:59", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory", + "typeString": "bytes memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4239:38:59" + }, + { + "body": { + "id": 20706, + "nodeType": "Block", + "src": "4314:34:59", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 20704, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 20698, + "name": "byteArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20682, + "src": "4319:9:59", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 20700, + "indexExpression": { + "argumentTypes": null, + "id": 20699, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20689, + "src": "4329:1:59", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "4319:12:59", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 20701, + "name": "_bytes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20676, + "src": "4334:6:59", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 20703, + "indexExpression": { + "argumentTypes": null, + "id": 20702, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20689, + "src": "4341:1:59", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4334:9:59", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "src": "4319:24:59", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "id": 20705, + "nodeType": "ExpressionStatement", + "src": "4319:24:59" + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 20694, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 20692, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20689, + "src": "4301:1:59", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3332", + "id": 20693, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4305:2:59", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + "value": "32" + }, + "src": "4301:6:59", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 20707, + "initializationExpression": { + "assignments": [ + 20689 + ], + "declarations": [ + { + "constant": false, + "id": 20689, + "name": "i", + "nodeType": "VariableDeclaration", + "scope": 20713, + "src": "4286:9:59", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 20688, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4286:7:59", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 20691, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 20690, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4298:1:59", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "4286:13:59" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 20696, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "4309:3:59", + "subExpression": { + "argumentTypes": null, + "id": 20695, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20689, + "src": "4309:1:59", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 20697, + "nodeType": "ExpressionStatement", + "src": "4309:3:59" + }, + "nodeType": "ForStatement", + "src": "4281:67:59" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 20709, + "name": "byteArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20682, + "src": "4366:9:59", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 20708, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4359:6:59", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_string_storage_ptr_$", + "typeString": "type(string storage pointer)" + }, + "typeName": "string" + }, + "id": 20710, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4359:17:59", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + }, + "functionReturnParameters": 20680, + "id": 20711, + "nodeType": "Return", + "src": "4352:24:59" + } + ] + }, + "documentation": "@dev utility, converts bytes32 to a string\nnote that the bytes32 argument is assumed to be UTF8 encoded ASCII string\n\t * @return string representation of the given bytes32 argument", + "id": 20713, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "bytes32ToString", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 20677, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 20676, + "name": "_bytes", + "nodeType": "VariableDeclaration", + "scope": 20713, + "src": "4189:14:59", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 20675, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4189:7:59", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4188:16:59" + }, + "payable": false, + "returnParameters": { + "id": 20680, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 20679, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 20713, + "src": "4227:6:59", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 20678, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "4227:6:59", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4226:8:59" + }, + "scope": 20740, + "src": "4164:216:59", + "stateMutability": "pure", + "superFunction": null, + "visibility": "private" + }, + { + "body": { + "id": 20726, + "nodeType": "Block", + "src": "4663:93:59", + "statements": [ + { + "assignments": [], + "declarations": [ + { + "constant": false, + "id": 20721, + "name": "result", + "nodeType": "VariableDeclaration", + "scope": 20727, + "src": "4667:14:59", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 20720, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4667:7:59", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 20722, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "4667:14:59" + }, + { + "externalReferences": [ + { + "result": { + "declaration": 20721, + "isOffset": false, + "isSlot": false, + "src": "4699:6:59", + "valueSize": 1 + } + }, + { + "_string": { + "declaration": 20715, + "isOffset": false, + "isSlot": false, + "src": "4719:7:59", + "valueSize": 1 + } + } + ], + "id": 20723, + "nodeType": "InlineAssembly", + "operations": "{\n result := mload(add(_string, 32))\n}", + "src": "4685:60:59" + }, + { + "expression": { + "argumentTypes": null, + "id": 20724, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20721, + "src": "4746:6:59", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "functionReturnParameters": 20719, + "id": 20725, + "nodeType": "Return", + "src": "4739:13:59" + } + ] + }, + "documentation": "@dev utility, converts string to bytes32\nnote that the bytes32 argument is assumed to be UTF8 encoded ASCII string\n\t * @return string representation of the given bytes32 argument", + "id": 20727, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "stringToBytes32", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 20716, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 20715, + "name": "_string", + "nodeType": "VariableDeclaration", + "scope": 20727, + "src": "4609:21:59", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 20714, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "4609:6:59", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4608:23:59" + }, + "payable": false, + "returnParameters": { + "id": 20719, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 20718, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 20727, + "src": "4654:7:59", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 20717, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4654:7:59", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4653:9:59" + }, + "scope": 20740, + "src": "4584:172:59", + "stateMutability": "pure", + "superFunction": null, + "visibility": "private" + }, + { + "body": { + "id": 20738, + "nodeType": "Block", + "src": "4886:39:59", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 20735, + "name": "_contractName", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20729, + "src": "4907:13:59", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 20734, + "name": "addressOf", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 20502 + ], + "referencedDeclaration": 20502, + "src": "4897:9:59", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$", + "typeString": "function (bytes32) view returns (address)" + } + }, + "id": 20736, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4897:24:59", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 20733, + "id": 20737, + "nodeType": "Return", + "src": "4890:31:59" + } + ] + }, + "documentation": "@dev deprecated, backward compatibility", + "id": 20739, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getAddress", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 20730, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 20729, + "name": "_contractName", + "nodeType": "VariableDeclaration", + "scope": 20739, + "src": "4833:21:59", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 20728, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4833:7:59", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4832:23:59" + }, + "payable": false, + "returnParameters": { + "id": 20733, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 20732, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 20739, + "src": "4877:7:59", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 20731, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4877:7:59", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4876:9:59" + }, + "scope": 20740, + "src": "4813:112:59", + "stateMutability": "view", + "superFunction": 22219, + "visibility": "public" + } + ], + "scope": 20741, + "src": "557:4370:59" + } + ], + "src": "0:4928:59" + }, + "id": 59 + }, + "solidity/contracts/utility/ContractRegistryClient.sol": { + "ast": { + "absolutePath": "solidity/contracts/utility/ContractRegistryClient.sol", + "exportedSymbols": { + "ContractRegistryClient": [ + 20932 + ] + }, + "id": 20933, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 20742, + "literals": [ + "solidity", + "0.4", + ".26" + ], + "nodeType": "PragmaDirective", + "src": "0:23:60" + }, + { + "absolutePath": "solidity/contracts/utility/Owned.sol", + "file": "./Owned.sol", + "id": 20743, + "nodeType": "ImportDirective", + "scope": 20933, + "sourceUnit": 21325, + "src": "24:21:60", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "solidity/contracts/utility/Utils.sol", + "file": "./Utils.sol", + "id": 20744, + "nodeType": "ImportDirective", + "scope": 20933, + "sourceUnit": 22053, + "src": "46:21:60", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "solidity/contracts/utility/interfaces/IContractRegistry.sol", + "file": "./interfaces/IContractRegistry.sol", + "id": 20745, + "nodeType": "ImportDirective", + "scope": 20933, + "sourceUnit": 22221, + "src": "68:44:60", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 20746, + "name": "Owned", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 21324, + "src": "208:5:60", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Owned_$21324", + "typeString": "contract Owned" + } + }, + "id": 20747, + "nodeType": "InheritanceSpecifier", + "src": "208:5:60" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 20748, + "name": "Utils", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 22052, + "src": "215:5:60", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Utils_$22052", + "typeString": "contract Utils" + } + }, + "id": 20749, + "nodeType": "InheritanceSpecifier", + "src": "215:5:60" + } + ], + "contractDependencies": [ + 21324, + 22052, + 22247 + ], + "contractKind": "contract", + "documentation": "@dev Base contract for ContractRegistry clients", + "fullyImplemented": true, + "id": 20932, + "linearizedBaseContracts": [ + 20932, + 22052, + 21324, + 22247 + ], + "name": "ContractRegistryClient", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "id": 20752, + "name": "CONTRACT_REGISTRY", + "nodeType": "VariableDeclaration", + "scope": 20932, + "src": "224:64:60", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 20750, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "224:7:60", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "436f6e74726163745265676973747279", + "id": 20751, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "270:18:60", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_014cc675742635098f3843c56f86f2875ab1c0e8ccd166d07159a5036b798b15", + "typeString": "literal_string \"ContractRegistry\"" + }, + "value": "ContractRegistry" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 20755, + "name": "SOVRYNSWAP_NETWORK", + "nodeType": "VariableDeclaration", + "scope": 20932, + "src": "291:66:60", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 20753, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "291:7:60", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "536f7672796e537761704e6574776f726b", + "id": 20754, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "338:19:60", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_4ff705ab0486892b54b4d7575a1b01ac0f081cbcc8efcb5919c2f54e2bbfb03c", + "typeString": "literal_string \"SovrynSwapNetwork\"" + }, + "value": "SovrynSwapNetwork" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 20758, + "name": "SOVRYNSWAP_FORMULA", + "nodeType": "VariableDeclaration", + "scope": 20932, + "src": "360:66:60", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 20756, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "360:7:60", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "536f7672796e53776170466f726d756c61", + "id": 20757, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "407:19:60", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_b7dbce58728d586c7cc6290b77cccdd70aca0aa7d0b1ece5974d59bfab779e66", + "typeString": "literal_string \"SovrynSwapFormula\"" + }, + "value": "SovrynSwapFormula" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 20761, + "name": "CONVERTER_FACTORY", + "nodeType": "VariableDeclaration", + "scope": 20932, + "src": "429:64:60", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 20759, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "429:7:60", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "436f6e766572746572466163746f7279", + "id": 20760, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "475:18:60", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_01f892de917bf09cf6fd04f57ff78c6ca006205a8809769abbeb39a039d3d768", + "typeString": "literal_string \"ConverterFactory\"" + }, + "value": "ConverterFactory" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 20764, + "name": "CONVERSION_PATH_FINDER", + "nodeType": "VariableDeclaration", + "scope": 20932, + "src": "496:73:60", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 20762, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "496:7:60", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "436f6e76657273696f6e5061746846696e646572", + "id": 20763, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "547:22:60", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_d55bb14cf5551b26acee2cc099a4125a85ce113cb3306082cd15a1b4785376f1", + "typeString": "literal_string \"ConversionPathFinder\"" + }, + "value": "ConversionPathFinder" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 20767, + "name": "CONVERTER_UPGRADER", + "nodeType": "VariableDeclaration", + "scope": 20932, + "src": "572:76:60", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 20765, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "572:7:60", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "536f7672796e53776170436f6e7665727465725570677261646572", + "id": 20766, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "619:29:60", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_52f7fb877417cc5310ba2c15764c676b04b3fe649e42fa69fec5ec034d33d844", + "typeString": "literal_string \"SovrynSwapConverterUpgrader\"" + }, + "value": "SovrynSwapConverterUpgrader" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 20770, + "name": "CONVERTER_REGISTRY", + "nodeType": "VariableDeclaration", + "scope": 20932, + "src": "651:76:60", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 20768, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "651:7:60", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "536f7672796e53776170436f6e7665727465725265676973747279", + "id": 20769, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "698:29:60", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_64aa0f5440b142a734c07dc74562a5d23b8bb6666acc05ce9d3816edc6eae8ed", + "typeString": "literal_string \"SovrynSwapConverterRegistry\"" + }, + "value": "SovrynSwapConverterRegistry" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 20773, + "name": "CONVERTER_REGISTRY_DATA", + "nodeType": "VariableDeclaration", + "scope": 20932, + "src": "730:85:60", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 20771, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "730:7:60", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "536f7672796e53776170436f6e766572746572526567697374727944617461", + "id": 20772, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "782:33:60", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_a0b4a26eff28196fb34bd04432b43a40b907747b18544d5de2c6084c479ed477", + "typeString": "literal_string \"SovrynSwapConverterRegistryData\"" + }, + "value": "SovrynSwapConverterRegistryData" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 20776, + "name": "BNT_TOKEN", + "nodeType": "VariableDeclaration", + "scope": 20932, + "src": "818:48:60", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 20774, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "818:7:60", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "424e54546f6b656e", + "id": 20775, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "856:10:60", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_4686149f7058d2454e334cfa4ea1a3482469c64fd3d4f50dfc69716086aee66f", + "typeString": "literal_string \"BNTToken\"" + }, + "value": "BNTToken" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 20779, + "name": "SOVRYNSWAP_X", + "nodeType": "VariableDeclaration", + "scope": 20932, + "src": "869:54:60", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 20777, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "869:7:60", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "536f7672796e5377617058", + "id": 20778, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "910:13:60", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_5191283208d220bd6051723ef33ec466d027e8855d4591756b47f4821ff7fc0d", + "typeString": "literal_string \"SovrynSwapX\"" + }, + "value": "SovrynSwapX" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 20782, + "name": "SOVRYNSWAP_X_UPGRADER", + "nodeType": "VariableDeclaration", + "scope": 20932, + "src": "926:71:60", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 20780, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "926:7:60", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "536f7672796e53776170585570677261646572", + "id": 20781, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "976:21:60", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_eb9a81e97f32a3d41499b3e148e6fa13c83a16ad5d4d69eb8e6315f83d8cc15d", + "typeString": "literal_string \"SovrynSwapXUpgrader\"" + }, + "value": "SovrynSwapXUpgrader" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 20785, + "name": "CHAINLINK_ORACLE_WHITELIST", + "nodeType": "VariableDeclaration", + "scope": 20932, + "src": "1000:81:60", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 20783, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1000:7:60", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "436861696e6c696e6b4f7261636c6557686974656c697374", + "id": 20784, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1055:26:60", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_f1d302dc7d7d6451424d658039558f1ea7e3cbf7255a10240557f430d300feb3", + "typeString": "literal_string \"ChainlinkOracleWhitelist\"" + }, + "value": "ChainlinkOracleWhitelist" + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 20787, + "name": "registry", + "nodeType": "VariableDeclaration", + "scope": 20932, + "src": "1085:33:60", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IContractRegistry_$22220", + "typeString": "contract IContractRegistry" + }, + "typeName": { + "contractScope": null, + "id": 20786, + "name": "IContractRegistry", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 22220, + "src": "1085:17:60", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IContractRegistry_$22220", + "typeString": "contract IContractRegistry" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 20789, + "name": "prevRegistry", + "nodeType": "VariableDeclaration", + "scope": 20932, + "src": "1165:37:60", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IContractRegistry_$22220", + "typeString": "contract IContractRegistry" + }, + "typeName": { + "contractScope": null, + "id": 20788, + "name": "IContractRegistry", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 22220, + "src": "1165:17:60", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IContractRegistry_$22220", + "typeString": "contract IContractRegistry" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 20791, + "name": "onlyOwnerCanUpdateRegistry", + "nodeType": "VariableDeclaration", + "scope": 20932, + "src": "1250:38:60", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 20790, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1250:4:60", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "public" + }, + { + "body": { + "id": 20800, + "nodeType": "Block", + "src": "1506:33:60", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 20796, + "name": "_contractName", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20793, + "src": "1516:13:60", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 20795, + "name": "_only", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20817, + "src": "1510:5:60", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$__$", + "typeString": "function (bytes32) view" + } + }, + "id": 20797, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1510:20:60", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 20798, + "nodeType": "ExpressionStatement", + "src": "1510:20:60" + }, + { + "id": 20799, + "nodeType": "PlaceholderStatement", + "src": "1534:1:60" + } + ] + }, + "documentation": "@dev verifies that the caller is mapped to the given contract name\n\t * @param _contractName contract name", + "id": 20801, + "name": "only", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 20794, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 20793, + "name": "_contractName", + "nodeType": "VariableDeclaration", + "scope": 20801, + "src": "1483:21:60", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 20792, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1483:7:60", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1482:23:60" + }, + "src": "1469:70:60", + "visibility": "internal" + }, + { + "body": { + "id": 20816, + "nodeType": "Block", + "src": "1637:76:60", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 20812, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 20807, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22338, + "src": "1649:3:60", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 20808, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1649:10:60", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 20810, + "name": "_contractName", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20803, + "src": "1673:13:60", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 20809, + "name": "addressOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20931, + "src": "1663:9:60", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$", + "typeString": "function (bytes32) view returns (address)" + } + }, + "id": 20811, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1663:24:60", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1649:38:60", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4552525f4143434553535f44454e494544", + "id": 20813, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1689:19:60", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_f5894269650d3e1726ed81a4f48c5b62c7dd6fa025b89d639952a7012960d666", + "typeString": "literal_string \"ERR_ACCESS_DENIED\"" + }, + "value": "ERR_ACCESS_DENIED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_f5894269650d3e1726ed81a4f48c5b62c7dd6fa025b89d639952a7012960d666", + "typeString": "literal_string \"ERR_ACCESS_DENIED\"" + } + ], + "id": 20806, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 22341, + 22342 + ], + "referencedDeclaration": 22342, + "src": "1641:7:60", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 20814, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1641:68:60", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 20815, + "nodeType": "ExpressionStatement", + "src": "1641:68:60" + } + ] + }, + "documentation": null, + "id": 20817, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "_only", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 20804, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 20803, + "name": "_contractName", + "nodeType": "VariableDeclaration", + "scope": 20817, + "src": "1600:21:60", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 20802, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1600:7:60", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1599:23:60" + }, + "payable": false, + "returnParameters": { + "id": 20805, + "nodeType": "ParameterList", + "parameters": [], + "src": "1637:0:60" + }, + "scope": 20932, + "src": "1585:128:60", + "stateMutability": "view", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 20837, + "nodeType": "Block", + "src": "1927:94:60", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 20829, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 20825, + "name": "registry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20787, + "src": "1931:8:60", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IContractRegistry_$22220", + "typeString": "contract IContractRegistry" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 20827, + "name": "_registry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20819, + "src": "1960:9:60", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IContractRegistry_$22220", + "typeString": "contract IContractRegistry" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IContractRegistry_$22220", + "typeString": "contract IContractRegistry" + } + ], + "id": 20826, + "name": "IContractRegistry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22220, + "src": "1942:17:60", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IContractRegistry_$22220_$", + "typeString": "type(contract IContractRegistry)" + } + }, + "id": 20828, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1942:28:60", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IContractRegistry_$22220", + "typeString": "contract IContractRegistry" + } + }, + "src": "1931:39:60", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IContractRegistry_$22220", + "typeString": "contract IContractRegistry" + } + }, + "id": 20830, + "nodeType": "ExpressionStatement", + "src": "1931:39:60" + }, + { + "expression": { + "argumentTypes": null, + "id": 20835, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 20831, + "name": "prevRegistry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20789, + "src": "1974:12:60", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IContractRegistry_$22220", + "typeString": "contract IContractRegistry" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 20833, + "name": "_registry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20819, + "src": "2007:9:60", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IContractRegistry_$22220", + "typeString": "contract IContractRegistry" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IContractRegistry_$22220", + "typeString": "contract IContractRegistry" + } + ], + "id": 20832, + "name": "IContractRegistry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22220, + "src": "1989:17:60", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IContractRegistry_$22220_$", + "typeString": "type(contract IContractRegistry)" + } + }, + "id": 20834, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1989:28:60", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IContractRegistry_$22220", + "typeString": "contract IContractRegistry" + } + }, + "src": "1974:43:60", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IContractRegistry_$22220", + "typeString": "contract IContractRegistry" + } + }, + "id": 20836, + "nodeType": "ExpressionStatement", + "src": "1974:43:60" + } + ] + }, + "documentation": "@dev initializes a new ContractRegistryClient instance\n\t * @param _registry address of a contract-registry contract", + "id": 20838, + "implemented": true, + "isConstructor": true, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 20822, + "name": "_registry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20819, + "src": "1916:9:60", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IContractRegistry_$22220", + "typeString": "contract IContractRegistry" + } + } + ], + "id": 20823, + "modifierName": { + "argumentTypes": null, + "id": 20821, + "name": "validAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22011, + "src": "1903:12:60", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_address_$", + "typeString": "modifier (address)" + } + }, + "nodeType": "ModifierInvocation", + "src": "1903:23:60" + } + ], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 20820, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 20819, + "name": "_registry", + "nodeType": "VariableDeclaration", + "scope": 20838, + "src": "1865:27:60", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IContractRegistry_$22220", + "typeString": "contract IContractRegistry" + }, + "typeName": { + "contractScope": null, + "id": 20818, + "name": "IContractRegistry", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 22220, + "src": "1865:17:60", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IContractRegistry_$22220", + "typeString": "contract IContractRegistry" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1864:29:60" + }, + "payable": false, + "returnParameters": { + "id": 20824, + "nodeType": "ParameterList", + "parameters": [], + "src": "1927:0:60" + }, + "scope": 20932, + "src": "1853:168:60", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 20895, + "nodeType": "Block", + "src": "2113:799:60", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 20848, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 20845, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 20842, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22338, + "src": "2169:3:60", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 20843, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2169:10:60", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 20844, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 21241 + ], + "referencedDeclaration": 21241, + "src": "2183:5:60", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "2169:19:60", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "id": 20847, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "2192:27:60", + "subExpression": { + "argumentTypes": null, + "id": 20846, + "name": "onlyOwnerCanUpdateRegistry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20791, + "src": "2193:26:60", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "2169:50:60", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4552525f4143434553535f44454e494544", + "id": 20849, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2221:19:60", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_f5894269650d3e1726ed81a4f48c5b62c7dd6fa025b89d639952a7012960d666", + "typeString": "literal_string \"ERR_ACCESS_DENIED\"" + }, + "value": "ERR_ACCESS_DENIED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_f5894269650d3e1726ed81a4f48c5b62c7dd6fa025b89d639952a7012960d666", + "typeString": "literal_string \"ERR_ACCESS_DENIED\"" + } + ], + "id": 20841, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 22341, + 22342 + ], + "referencedDeclaration": 22342, + "src": "2161:7:60", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 20850, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2161:80:60", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 20851, + "nodeType": "ExpressionStatement", + "src": "2161:80:60" + }, + { + "assignments": [ + 20853 + ], + "declarations": [ + { + "constant": false, + "id": 20853, + "name": "newRegistry", + "nodeType": "VariableDeclaration", + "scope": 20896, + "src": "2281:29:60", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IContractRegistry_$22220", + "typeString": "contract IContractRegistry" + }, + "typeName": { + "contractScope": null, + "id": 20852, + "name": "IContractRegistry", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 22220, + "src": "2281:17:60", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IContractRegistry_$22220", + "typeString": "contract IContractRegistry" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 20859, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 20856, + "name": "CONTRACT_REGISTRY", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20752, + "src": "2341:17:60", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 20855, + "name": "addressOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20931, + "src": "2331:9:60", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$", + "typeString": "function (bytes32) view returns (address)" + } + }, + "id": 20857, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2331:28:60", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 20854, + "name": "IContractRegistry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22220, + "src": "2313:17:60", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IContractRegistry_$22220_$", + "typeString": "type(contract IContractRegistry)" + } + }, + "id": 20858, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2313:47:60", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IContractRegistry_$22220", + "typeString": "contract IContractRegistry" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2281:79:60" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 20871, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 20865, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 20861, + "name": "newRegistry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20853, + "src": "2442:11:60", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IContractRegistry_$22220", + "typeString": "contract IContractRegistry" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 20863, + "name": "registry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20787, + "src": "2465:8:60", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IContractRegistry_$22220", + "typeString": "contract IContractRegistry" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IContractRegistry_$22220", + "typeString": "contract IContractRegistry" + } + ], + "id": 20862, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2457:7:60", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 20864, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2457:17:60", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "2442:32:60", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 20870, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 20866, + "name": "newRegistry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20853, + "src": "2478:11:60", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IContractRegistry_$22220", + "typeString": "contract IContractRegistry" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 20868, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2501:1:60", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 20867, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2493:7:60", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 20869, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2493:10:60", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "2478:25:60", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "2442:61:60", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4552525f494e56414c49445f5245474953545259", + "id": 20872, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2505:22:60", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_75b9212739e68843904752f41fb54f1609594bc4b84683da2a4384aeff5c191d", + "typeString": "literal_string \"ERR_INVALID_REGISTRY\"" + }, + "value": "ERR_INVALID_REGISTRY" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_75b9212739e68843904752f41fb54f1609594bc4b84683da2a4384aeff5c191d", + "typeString": "literal_string \"ERR_INVALID_REGISTRY\"" + } + ], + "id": 20860, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 22341, + 22342 + ], + "referencedDeclaration": 22342, + "src": "2434:7:60", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 20873, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2434:94:60", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 20874, + "nodeType": "ExpressionStatement", + "src": "2434:94:60" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 20883, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 20878, + "name": "CONTRACT_REGISTRY", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20752, + "src": "2650:17:60", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "id": 20876, + "name": "newRegistry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20853, + "src": "2628:11:60", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IContractRegistry_$22220", + "typeString": "contract IContractRegistry" + } + }, + "id": 20877, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "addressOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 22212, + "src": "2628:21:60", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$", + "typeString": "function (bytes32) view external returns (address)" + } + }, + "id": 20879, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2628:40:60", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 20881, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2680:1:60", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 20880, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2672:7:60", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 20882, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2672:10:60", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "2628:54:60", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4552525f494e56414c49445f5245474953545259", + "id": 20884, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2684:22:60", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_75b9212739e68843904752f41fb54f1609594bc4b84683da2a4384aeff5c191d", + "typeString": "literal_string \"ERR_INVALID_REGISTRY\"" + }, + "value": "ERR_INVALID_REGISTRY" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_75b9212739e68843904752f41fb54f1609594bc4b84683da2a4384aeff5c191d", + "typeString": "literal_string \"ERR_INVALID_REGISTRY\"" + } + ], + "id": 20875, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 22341, + 22342 + ], + "referencedDeclaration": 22342, + "src": "2620:7:60", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 20885, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2620:87:60", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 20886, + "nodeType": "ExpressionStatement", + "src": "2620:87:60" + }, + { + "expression": { + "argumentTypes": null, + "id": 20889, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 20887, + "name": "prevRegistry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20789, + "src": "2784:12:60", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IContractRegistry_$22220", + "typeString": "contract IContractRegistry" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 20888, + "name": "registry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20787, + "src": "2799:8:60", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IContractRegistry_$22220", + "typeString": "contract IContractRegistry" + } + }, + "src": "2784:23:60", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IContractRegistry_$22220", + "typeString": "contract IContractRegistry" + } + }, + "id": 20890, + "nodeType": "ExpressionStatement", + "src": "2784:23:60" + }, + { + "expression": { + "argumentTypes": null, + "id": 20893, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 20891, + "name": "registry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20787, + "src": "2886:8:60", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IContractRegistry_$22220", + "typeString": "contract IContractRegistry" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 20892, + "name": "newRegistry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20853, + "src": "2897:11:60", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IContractRegistry_$22220", + "typeString": "contract IContractRegistry" + } + }, + "src": "2886:22:60", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IContractRegistry_$22220", + "typeString": "contract IContractRegistry" + } + }, + "id": 20894, + "nodeType": "ExpressionStatement", + "src": "2886:22:60" + } + ] + }, + "documentation": "@dev updates to the new contract-registry", + "id": 20896, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "updateRegistry", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 20839, + "nodeType": "ParameterList", + "parameters": [], + "src": "2103:2:60" + }, + "payable": false, + "returnParameters": { + "id": 20840, + "nodeType": "ParameterList", + "parameters": [], + "src": "2113:0:60" + }, + "scope": 20932, + "src": "2080:832:60", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 20905, + "nodeType": "Block", + "src": "3018:75:60", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 20903, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 20901, + "name": "registry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20787, + "src": "3066:8:60", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IContractRegistry_$22220", + "typeString": "contract IContractRegistry" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 20902, + "name": "prevRegistry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20789, + "src": "3077:12:60", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IContractRegistry_$22220", + "typeString": "contract IContractRegistry" + } + }, + "src": "3066:23:60", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IContractRegistry_$22220", + "typeString": "contract IContractRegistry" + } + }, + "id": 20904, + "nodeType": "ExpressionStatement", + "src": "3066:23:60" + } + ] + }, + "documentation": "@dev restores the previous contract-registry", + "id": 20906, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 20899, + "modifierName": { + "argumentTypes": null, + "id": 20898, + "name": "ownerOnly", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21265, + "src": "3008:9:60", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "3008:9:60" + } + ], + "name": "restoreRegistry", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 20897, + "nodeType": "ParameterList", + "parameters": [], + "src": "2998:2:60" + }, + "payable": false, + "returnParameters": { + "id": 20900, + "nodeType": "ParameterList", + "parameters": [], + "src": "3018:0:60" + }, + "scope": 20932, + "src": "2974:119:60", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 20917, + "nodeType": "Block", + "src": "3363:123:60", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 20915, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 20913, + "name": "onlyOwnerCanUpdateRegistry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20791, + "src": "3426:26:60", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 20914, + "name": "_onlyOwnerCanUpdateRegistry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20908, + "src": "3455:27:60", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "3426:56:60", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 20916, + "nodeType": "ExpressionStatement", + "src": "3426:56:60" + } + ] + }, + "documentation": "@dev restricts the permission to update the contract-registry\n\t * @param _onlyOwnerCanUpdateRegistry indicates whether or not permission is restricted to owner only", + "id": 20918, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 20911, + "modifierName": { + "argumentTypes": null, + "id": 20910, + "name": "ownerOnly", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21265, + "src": "3353:9:60", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "3353:9:60" + } + ], + "name": "restrictRegistryUpdate", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 20909, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 20908, + "name": "_onlyOwnerCanUpdateRegistry", + "nodeType": "VariableDeclaration", + "scope": 20918, + "src": "3312:32:60", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 20907, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3312:4:60", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3311:34:60" + }, + "payable": false, + "returnParameters": { + "id": 20912, + "nodeType": "ParameterList", + "parameters": [], + "src": "3363:0:60" + }, + "scope": 20932, + "src": "3280:206:60", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 20930, + "nodeType": "Block", + "src": "3721:48:60", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 20927, + "name": "_contractName", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20920, + "src": "3751:13:60", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "id": 20925, + "name": "registry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20787, + "src": "3732:8:60", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IContractRegistry_$22220", + "typeString": "contract IContractRegistry" + } + }, + "id": 20926, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "addressOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 22212, + "src": "3732:18:60", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$", + "typeString": "function (bytes32) view external returns (address)" + } + }, + "id": 20928, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3732:33:60", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 20924, + "id": 20929, + "nodeType": "Return", + "src": "3725:40:60" + } + ] + }, + "documentation": "@dev returns the address associated with the given contract name\n\t * @param _contractName contract name\n\t * @return contract address", + "id": 20931, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "addressOf", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 20921, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 20920, + "name": "_contractName", + "nodeType": "VariableDeclaration", + "scope": 20931, + "src": "3666:21:60", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 20919, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3666:7:60", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3665:23:60" + }, + "payable": false, + "returnParameters": { + "id": 20924, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 20923, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 20931, + "src": "3712:7:60", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 20922, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3712:7:60", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3711:9:60" + }, + "scope": 20932, + "src": "3647:122:60", + "stateMutability": "view", + "superFunction": null, + "visibility": "internal" + } + ], + "scope": 20933, + "src": "173:3598:60" + } + ], + "src": "0:3772:60" + }, + "id": 60 + }, + "solidity/contracts/utility/MoCMedianizerMock.sol": { + "ast": { + "absolutePath": "solidity/contracts/utility/MoCMedianizerMock.sol", + "exportedSymbols": { + "MoCMedianizerMock": [ + 20976 + ] + }, + "id": 20977, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 20934, + "literals": [ + "solidity", + "0.4", + ".26" + ], + "nodeType": "PragmaDirective", + "src": "0:23:61" + }, + { + "absolutePath": "solidity/contracts/utility/MocBTCToUSDOracle.sol", + "file": "./MocBTCToUSDOracle.sol", + "id": 20935, + "nodeType": "ImportDirective", + "scope": 20977, + "sourceUnit": 21123, + "src": "24:33:61", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 20936, + "name": "Medianizer", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 21039, + "src": "234:10:61", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Medianizer_$21039", + "typeString": "contract Medianizer" + } + }, + "id": 20937, + "nodeType": "InheritanceSpecifier", + "src": "234:10:61" + } + ], + "contractDependencies": [ + 21039 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 20976, + "linearizedBaseContracts": [ + 20976, + 21039 + ], + "name": "MoCMedianizerMock", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 20939, + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 20976, + "src": "248:20:61", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 20938, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "248:7:61", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 20941, + "name": "has", + "nodeType": "VariableDeclaration", + "scope": 20976, + "src": "271:15:61", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 20940, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "271:4:61", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "public" + }, + { + "body": { + "id": 20954, + "nodeType": "Block", + "src": "344:36:61", + "statements": [ + { + "expression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 20949, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20939, + "src": "364:5:61", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 20948, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "356:7:61", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": "bytes32" + }, + "id": 20950, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "356:14:61", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 20951, + "name": "has", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20941, + "src": "372:3:61", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 20952, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "355:21:61", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bytes32_$_t_bool_$", + "typeString": "tuple(bytes32,bool)" + } + }, + "functionReturnParameters": 20947, + "id": 20953, + "nodeType": "Return", + "src": "348:28:61" + } + ] + }, + "documentation": null, + "id": 20955, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "peek", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 20942, + "nodeType": "ParameterList", + "parameters": [], + "src": "303:2:61" + }, + "payable": false, + "returnParameters": { + "id": 20947, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 20944, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 20955, + "src": "329:7:61", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 20943, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "329:7:61", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 20946, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 20955, + "src": "338:4:61", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 20945, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "338:4:61", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "328:15:61" + }, + "scope": 20976, + "src": "290:90:61", + "stateMutability": "view", + "superFunction": 21038, + "visibility": "external" + }, + { + "body": { + "id": 20964, + "nodeType": "Block", + "src": "424:22:61", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 20962, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 20960, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20939, + "src": "428:5:61", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 20961, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20957, + "src": "436:6:61", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "428:14:61", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 20963, + "nodeType": "ExpressionStatement", + "src": "428:14:61" + } + ] + }, + "documentation": null, + "id": 20965, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "setValue", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 20958, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 20957, + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 20965, + "src": "401:14:61", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 20956, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "401:7:61", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "400:16:61" + }, + "payable": false, + "returnParameters": { + "id": 20959, + "nodeType": "ParameterList", + "parameters": [], + "src": "424:0:61" + }, + "scope": 20976, + "src": "383:63:61", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 20974, + "nodeType": "Block", + "src": "483:18:61", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 20972, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 20970, + "name": "has", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20941, + "src": "487:3:61", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 20971, + "name": "_has", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20967, + "src": "493:4:61", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "487:10:61", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 20973, + "nodeType": "ExpressionStatement", + "src": "487:10:61" + } + ] + }, + "documentation": null, + "id": 20975, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "setHas", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 20968, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 20967, + "name": "_has", + "nodeType": "VariableDeclaration", + "scope": 20975, + "src": "465:9:61", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 20966, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "465:4:61", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "464:11:61" + }, + "payable": false, + "returnParameters": { + "id": 20969, + "nodeType": "ParameterList", + "parameters": [], + "src": "483:0:61" + }, + "scope": 20976, + "src": "449:52:61", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 20977, + "src": "204:299:61" + } + ], + "src": "0:504:61" + }, + "id": 61 + }, + "solidity/contracts/utility/MoCStateMock.sol": { + "ast": { + "absolutePath": "solidity/contracts/utility/MoCStateMock.sol", + "exportedSymbols": { + "MoCStateMock": [ + 21002 + ] + }, + "id": 21003, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 20978, + "literals": [ + "solidity", + "0.4", + ".26" + ], + "nodeType": "PragmaDirective", + "src": "0:23:62" + }, + { + "absolutePath": "solidity/contracts/utility/interfaces/IMoCState.sol", + "file": "./interfaces/IMoCState.sol", + "id": 20979, + "nodeType": "ImportDirective", + "scope": 21003, + "sourceUnit": 22229, + "src": "25:36:62", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 20980, + "name": "IMoCState", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 22228, + "src": "88:9:62", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IMoCState_$22228", + "typeString": "contract IMoCState" + } + }, + "id": 20981, + "nodeType": "InheritanceSpecifier", + "src": "88:9:62" + } + ], + "contractDependencies": [ + 22228 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 21002, + "linearizedBaseContracts": [ + 21002, + 22228 + ], + "name": "MoCStateMock", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 20983, + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 21002, + "src": "101:20:62", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 20982, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "101:7:62", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "body": { + "id": 20990, + "nodeType": "Block", + "src": "179:20:62", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 20988, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20983, + "src": "190:5:62", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 20987, + "id": 20989, + "nodeType": "Return", + "src": "183:12:62" + } + ] + }, + "documentation": null, + "id": 20991, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "bproUsdPrice", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 20984, + "nodeType": "ParameterList", + "parameters": [], + "src": "146:2:62" + }, + "payable": false, + "returnParameters": { + "id": 20987, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 20986, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 20991, + "src": "170:7:62", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 20985, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "170:7:62", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "169:9:62" + }, + "scope": 21002, + "src": "125:74:62", + "stateMutability": "view", + "superFunction": 22227, + "visibility": "public" + }, + { + "body": { + "id": 21000, + "nodeType": "Block", + "src": "243:22:62", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 20998, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 20996, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20983, + "src": "247:5:62", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 20997, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20993, + "src": "255:6:62", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "247:14:62", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 20999, + "nodeType": "ExpressionStatement", + "src": "247:14:62" + } + ] + }, + "documentation": null, + "id": 21001, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "setValue", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 20994, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 20993, + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 21001, + "src": "220:14:62", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 20992, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "220:7:62", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "219:16:62" + }, + "payable": false, + "returnParameters": { + "id": 20995, + "nodeType": "ParameterList", + "parameters": [], + "src": "243:0:62" + }, + "scope": 21002, + "src": "202:63:62", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 21003, + "src": "63:204:62" + } + ], + "src": "0:268:62" + }, + "id": 62 + }, + "solidity/contracts/utility/MocBTCToBTCOracle.sol": { + "ast": { + "absolutePath": "solidity/contracts/utility/MocBTCToBTCOracle.sol", + "exportedSymbols": { + "MocBTCToBTCOracle": [ + 21027 + ] + }, + "id": 21028, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 21004, + "literals": [ + "solidity", + "0.4", + ".26" + ], + "nodeType": "PragmaDirective", + "src": "0:23:63" + }, + { + "absolutePath": "solidity/contracts/utility/interfaces/IConsumerPriceOracle.sol", + "file": "./interfaces/IConsumerPriceOracle.sol", + "id": 21005, + "nodeType": "ImportDirective", + "scope": 21028, + "sourceUnit": 22204, + "src": "25:47:63", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 21006, + "name": "IConsumerPriceOracle", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 22203, + "src": "190:20:63", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", + "typeString": "contract IConsumerPriceOracle" + } + }, + "id": 21007, + "nodeType": "InheritanceSpecifier", + "src": "190:20:63" + } + ], + "contractDependencies": [ + 22203 + ], + "contractKind": "contract", + "documentation": "@dev Provides the trivial ETH/ETH rate to be used with other TKN/ETH rates", + "fullyImplemented": true, + "id": 21027, + "linearizedBaseContracts": [ + 21027, + 22203 + ], + "name": "MocBTCToBTCOracle", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "id": 21010, + "name": "BTC_RATE", + "nodeType": "VariableDeclaration", + "scope": 21027, + "src": "214:36:63", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 21008, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "214:6:63", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "31", + "id": 21009, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "249:1:63", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "visibility": "private" + }, + { + "body": { + "id": 21017, + "nodeType": "Block", + "src": "415:23:63", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 21015, + "name": "BTC_RATE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21010, + "src": "426:8:63", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "functionReturnParameters": 21014, + "id": 21016, + "nodeType": "Return", + "src": "419:15:63" + } + ] + }, + "documentation": "@dev returns the trivial ETH/ETH rate.\n\t * @return always returns the trivial rate of 1", + "id": 21018, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "latestAnswer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 21011, + "nodeType": "ParameterList", + "parameters": [], + "src": "381:2:63" + }, + "payable": false, + "returnParameters": { + "id": 21014, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 21013, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 21018, + "src": "407:6:63", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 21012, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "407:6:63", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "406:8:63" + }, + "scope": 21027, + "src": "360:78:63", + "stateMutability": "view", + "superFunction": 22197, + "visibility": "external" + }, + { + "body": { + "id": 21025, + "nodeType": "Block", + "src": "617:18:63", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 21023, + "name": "now", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22340, + "src": "628:3:63", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 21022, + "id": 21024, + "nodeType": "Return", + "src": "621:10:63" + } + ] + }, + "documentation": "@dev returns the trivial ETH/ETH update time.\n\t * @return always returns current block's timestamp", + "id": 21026, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "latestTimestamp", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 21019, + "nodeType": "ParameterList", + "parameters": [], + "src": "582:2:63" + }, + "payable": false, + "returnParameters": { + "id": 21022, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 21021, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 21026, + "src": "608:7:63", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 21020, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "608:7:63", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "607:9:63" + }, + "scope": 21027, + "src": "558:77:63", + "stateMutability": "view", + "superFunction": 22202, + "visibility": "external" + } + ], + "scope": 21028, + "src": "160:477:63" + } + ], + "src": "0:638:63" + }, + "id": 63 + }, + "solidity/contracts/utility/MocBTCToUSDOracle.sol": { + "ast": { + "absolutePath": "solidity/contracts/utility/MocBTCToUSDOracle.sol", + "exportedSymbols": { + "Medianizer": [ + 21039 + ], + "MocBTCToUSDOracle": [ + 21122 + ] + }, + "id": 21123, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 21029, + "literals": [ + "solidity", + "0.4", + ".26" + ], + "nodeType": "PragmaDirective", + "src": "0:23:64" + }, + { + "absolutePath": "solidity/contracts/utility/interfaces/IConsumerPriceOracle.sol", + "file": "./interfaces/IConsumerPriceOracle.sol", + "id": 21030, + "nodeType": "ImportDirective", + "scope": 21123, + "sourceUnit": 22204, + "src": "25:47:64", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "solidity/contracts/utility/Owned.sol", + "file": "./Owned.sol", + "id": 21031, + "nodeType": "ImportDirective", + "scope": 21123, + "sourceUnit": 21325, + "src": "73:21:64", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 21039, + "linearizedBaseContracts": [ + 21039 + ], + "name": "Medianizer", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": null, + "id": 21038, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "peek", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 21032, + "nodeType": "ParameterList", + "parameters": [], + "src": "133:2:64" + }, + "payable": false, + "returnParameters": { + "id": 21037, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 21034, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 21038, + "src": "159:7:64", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 21033, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "159:7:64", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 21036, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 21038, + "src": "168:4:64", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 21035, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "168:4:64", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "158:15:64" + }, + "scope": 21039, + "src": "120:54:64", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + } + ], + "scope": 21123, + "src": "96:80:64" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 21040, + "name": "IConsumerPriceOracle", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 22203, + "src": "208:20:64", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", + "typeString": "contract IConsumerPriceOracle" + } + }, + "id": 21041, + "nodeType": "InheritanceSpecifier", + "src": "208:20:64" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 21042, + "name": "Owned", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 21324, + "src": "230:5:64", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Owned_$21324", + "typeString": "contract Owned" + } + }, + "id": 21043, + "nodeType": "InheritanceSpecifier", + "src": "230:5:64" + } + ], + "contractDependencies": [ + 21324, + 22203, + 22247 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 21122, + "linearizedBaseContracts": [ + 21122, + 21324, + 22247, + 22203 + ], + "name": "MocBTCToUSDOracle", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 21045, + "name": "mocOracleAddress", + "nodeType": "VariableDeclaration", + "scope": 21122, + "src": "239:31:64", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 21044, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "239:7:64", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "anonymous": false, + "documentation": null, + "id": 21051, + "name": "SetMoCOracleAddress", + "nodeType": "EventDefinition", + "parameters": { + "id": 21050, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 21047, + "indexed": true, + "name": "mocOracleAddress", + "nodeType": "VariableDeclaration", + "scope": 21051, + "src": "300:32:64", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 21046, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "300:7:64", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 21049, + "indexed": false, + "name": "changerAddress", + "nodeType": "VariableDeclaration", + "scope": 21051, + "src": "334:22:64", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 21048, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "334:7:64", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "299:58:64" + }, + "src": "274:84:64" + }, + { + "body": { + "id": 21060, + "nodeType": "Block", + "src": "506:46:64", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 21057, + "name": "_mocOracleAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21053, + "src": "530:17:64", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 21056, + "name": "setMoCOracleAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21121, + "src": "510:19:64", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 21058, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "510:38:64", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 21059, + "nodeType": "ExpressionStatement", + "src": "510:38:64" + } + ] + }, + "documentation": "@dev initializes a ne MoC oracle\n\t * @param _mocOracleAddress MoC oracle address", + "id": 21061, + "implemented": true, + "isConstructor": true, + "isDeclaredConst": false, + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 21054, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 21053, + "name": "_mocOracleAddress", + "nodeType": "VariableDeclaration", + "scope": 21061, + "src": "472:25:64", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 21052, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "472:7:64", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "471:27:64" + }, + "payable": false, + "returnParameters": { + "id": 21055, + "nodeType": "ParameterList", + "parameters": [], + "src": "506:0:64" + }, + "scope": 21122, + "src": "460:92:64", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 21085, + "nodeType": "Block", + "src": "691:142:64", + "statements": [ + { + "assignments": [ + 21067, + 21069 + ], + "declarations": [ + { + "constant": false, + "id": 21067, + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 21086, + "src": "696:13:64", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 21066, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "696:7:64", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 21069, + "name": "hasValue", + "nodeType": "VariableDeclaration", + "scope": 21086, + "src": "711:13:64", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 21068, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "711:4:64", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 21075, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 21071, + "name": "mocOracleAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21045, + "src": "739:16:64", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 21070, + "name": "Medianizer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21039, + "src": "728:10:64", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Medianizer_$21039_$", + "typeString": "type(contract Medianizer)" + } + }, + "id": 21072, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "728:28:64", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Medianizer_$21039", + "typeString": "contract Medianizer" + } + }, + "id": 21073, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "peek", + "nodeType": "MemberAccess", + "referencedDeclaration": 21038, + "src": "728:33:64", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_bytes32_$_t_bool_$", + "typeString": "function () view external returns (bytes32,bool)" + } + }, + "id": 21074, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "728:35:64", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bytes32_$_t_bool_$", + "typeString": "tuple(bytes32,bool)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "695:68:64" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 21077, + "name": "hasValue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21069, + "src": "775:8:64", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "446f65736e2774206861732076616c7565", + "id": 21078, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "785:19:64", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_6aeeaa77c7052b63789ef869d7bd36d10b5590c69f05d4dcaa0a9e7f6ef2a1cb", + "typeString": "literal_string \"Doesn't has value\"" + }, + "value": "Doesn't has value" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_6aeeaa77c7052b63789ef869d7bd36d10b5590c69f05d4dcaa0a9e7f6ef2a1cb", + "typeString": "literal_string \"Doesn't has value\"" + } + ], + "id": 21076, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 22341, + 22342 + ], + "referencedDeclaration": 22342, + "src": "767:7:64", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 21079, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "767:38:64", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 21080, + "nodeType": "ExpressionStatement", + "src": "767:38:64" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 21082, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21067, + "src": "823:5:64", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 21081, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "816:6:64", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int256_$", + "typeString": "type(int256)" + }, + "typeName": "int256" + }, + "id": 21083, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "816:13:64", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "functionReturnParameters": 21065, + "id": 21084, + "nodeType": "Return", + "src": "809:20:64" + } + ] + }, + "documentation": "@dev returns the USD/BTC rate.\n\t * @return MoC medianizer rate", + "id": 21086, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "latestAnswer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 21062, + "nodeType": "ParameterList", + "parameters": [], + "src": "657:2:64" + }, + "payable": false, + "returnParameters": { + "id": 21065, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 21064, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 21086, + "src": "683:6:64", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 21063, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "683:6:64", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "682:8:64" + }, + "scope": 21122, + "src": "636:197:64", + "stateMutability": "view", + "superFunction": 22197, + "visibility": "external" + }, + { + "body": { + "id": 21093, + "nodeType": "Block", + "src": "1004:64:64", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 21091, + "name": "now", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22340, + "src": "1015:3:64", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 21090, + "id": 21092, + "nodeType": "Return", + "src": "1008:10:64" + } + ] + }, + "documentation": "@dev returns the USD/BTC update time.\n\t * @return always returns current block's timestamp", + "id": 21094, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "latestTimestamp", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 21087, + "nodeType": "ParameterList", + "parameters": [], + "src": "969:2:64" + }, + "payable": false, + "returnParameters": { + "id": 21090, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 21089, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 21094, + "src": "995:7:64", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 21088, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "995:7:64", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "994:9:64" + }, + "scope": 21122, + "src": "945:123:64", + "stateMutability": "view", + "superFunction": 22202, + "visibility": "external" + }, + { + "body": { + "id": 21120, + "nodeType": "Block", + "src": "1238:193:64", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 21106, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 21102, + "name": "_mocOracleAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21096, + "src": "1250:17:64", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 21104, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1279:1:64", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 21103, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1271:7:64", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 21105, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1271:10:64", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1250:31:64", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "5f6d6f634f7261636c6541646472657373207368616c6c206e6f74206265207a65726f2061646472657373", + "id": 21107, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1283:45:64", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_8881b7310d0b350b9f057d0c80baa681dae8fbf3029db7243e9a5053a685e784", + "typeString": "literal_string \"_mocOracleAddress shall not be zero address\"" + }, + "value": "_mocOracleAddress shall not be zero address" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_8881b7310d0b350b9f057d0c80baa681dae8fbf3029db7243e9a5053a685e784", + "typeString": "literal_string \"_mocOracleAddress shall not be zero address\"" + } + ], + "id": 21101, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 22341, + 22342 + ], + "referencedDeclaration": 22342, + "src": "1242:7:64", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 21108, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1242:87:64", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 21109, + "nodeType": "ExpressionStatement", + "src": "1242:87:64" + }, + { + "expression": { + "argumentTypes": null, + "id": 21112, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 21110, + "name": "mocOracleAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21045, + "src": "1333:16:64", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 21111, + "name": "_mocOracleAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21096, + "src": "1352:17:64", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1333:36:64", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 21113, + "nodeType": "ExpressionStatement", + "src": "1333:36:64" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 21115, + "name": "mocOracleAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21045, + "src": "1398:16:64", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 21116, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22338, + "src": "1416:3:64", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 21117, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1416:10:64", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 21114, + "name": "SetMoCOracleAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21051, + "src": "1378:19:64", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", + "typeString": "function (address,address)" + } + }, + "id": 21118, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1378:49:64", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 21119, + "nodeType": "EmitStatement", + "src": "1373:54:64" + } + ] + }, + "documentation": "@dev set MoC oracle address\n\t * @param _mocOracleAddress MoC oracle address", + "id": 21121, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 21099, + "modifierName": { + "argumentTypes": null, + "id": 21098, + "name": "ownerOnly", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21265, + "src": "1228:9:64", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "1228:9:64" + } + ], + "name": "setMoCOracleAddress", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 21097, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 21096, + "name": "_mocOracleAddress", + "nodeType": "VariableDeclaration", + "scope": 21121, + "src": "1194:25:64", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 21095, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1194:7:64", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1193:27:64" + }, + "payable": false, + "returnParameters": { + "id": 21100, + "nodeType": "ParameterList", + "parameters": [], + "src": "1238:0:64" + }, + "scope": 21122, + "src": "1165:266:64", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 21123, + "src": "178:1255:64" + } + ], + "src": "0:1434:64" + }, + "id": 64 + }, + "solidity/contracts/utility/MocUSDToBTCOracle.sol": { + "ast": { + "absolutePath": "solidity/contracts/utility/MocUSDToBTCOracle.sol", + "exportedSymbols": { + "Medianizer": [ + 21135 + ], + "MocUSDToBTCOracle": [ + 21234 + ] + }, + "id": 21235, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 21124, + "literals": [ + "solidity", + "0.4", + ".26" + ], + "nodeType": "PragmaDirective", + "src": "0:23:65" + }, + { + "absolutePath": "solidity/contracts/utility/interfaces/IConsumerPriceOracle.sol", + "file": "./interfaces/IConsumerPriceOracle.sol", + "id": 21125, + "nodeType": "ImportDirective", + "scope": 21235, + "sourceUnit": 22204, + "src": "25:47:65", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "solidity/contracts/utility/Owned.sol", + "file": "./Owned.sol", + "id": 21126, + "nodeType": "ImportDirective", + "scope": 21235, + "sourceUnit": 21325, + "src": "73:21:65", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "solidity/contracts/utility/SafeMath.sol", + "file": "./SafeMath.sol", + "id": 21127, + "nodeType": "ImportDirective", + "scope": 21235, + "sourceUnit": 21818, + "src": "95:24:65", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 21135, + "linearizedBaseContracts": [ + 21135 + ], + "name": "Medianizer", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": null, + "id": 21134, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "peek", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 21128, + "nodeType": "ParameterList", + "parameters": [], + "src": "158:2:65" + }, + "payable": false, + "returnParameters": { + "id": 21133, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 21130, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 21134, + "src": "184:7:65", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 21129, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "184:7:65", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 21132, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 21134, + "src": "193:4:65", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 21131, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "193:4:65", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "183:15:65" + }, + "scope": 21135, + "src": "145:54:65", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + } + ], + "scope": 21235, + "src": "121:80:65" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 21136, + "name": "IConsumerPriceOracle", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 22203, + "src": "233:20:65", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", + "typeString": "contract IConsumerPriceOracle" + } + }, + "id": 21137, + "nodeType": "InheritanceSpecifier", + "src": "233:20:65" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 21138, + "name": "Owned", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 21324, + "src": "255:5:65", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Owned_$21324", + "typeString": "contract Owned" + } + }, + "id": 21139, + "nodeType": "InheritanceSpecifier", + "src": "255:5:65" + } + ], + "contractDependencies": [ + 21324, + 22203, + 22247 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 21234, + "linearizedBaseContracts": [ + 21234, + 21324, + 22247, + 22203 + ], + "name": "MocUSDToBTCOracle", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 21142, + "libraryName": { + "contractScope": null, + "id": 21140, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 21817, + "src": "270:8:65", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$21817", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "264:27:65", + "typeName": { + "id": 21141, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "283:7:65", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "constant": true, + "id": 21147, + "name": "DECIMALS", + "nodeType": "VariableDeclaration", + "scope": 21234, + "src": "294:41:65", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 21143, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "294:7:65", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_rational_1000000000000000000_by_1", + "typeString": "int_const 1000000000000000000" + }, + "id": 21146, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "3130", + "id": 21144, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "329:2:65", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3138", + "id": 21145, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "333:2:65", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_18_by_1", + "typeString": "int_const 18" + }, + "value": "18" + }, + "src": "329:6:65", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000000000000000_by_1", + "typeString": "int_const 1000000000000000000" + } + }, + "visibility": "public" + }, + { + "constant": false, + "id": 21149, + "name": "mocOracleAddress", + "nodeType": "VariableDeclaration", + "scope": 21234, + "src": "339:31:65", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 21148, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "339:7:65", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "anonymous": false, + "documentation": null, + "id": 21155, + "name": "SetMoCOracleAddress", + "nodeType": "EventDefinition", + "parameters": { + "id": 21154, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 21151, + "indexed": true, + "name": "mocOracleAddress", + "nodeType": "VariableDeclaration", + "scope": 21155, + "src": "400:32:65", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 21150, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "400:7:65", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 21153, + "indexed": false, + "name": "changerAddress", + "nodeType": "VariableDeclaration", + "scope": 21155, + "src": "434:22:65", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 21152, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "434:7:65", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "399:58:65" + }, + "src": "374:84:65" + }, + { + "body": { + "id": 21164, + "nodeType": "Block", + "src": "606:46:65", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 21161, + "name": "_mocOracleAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21157, + "src": "630:17:65", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 21160, + "name": "setMoCOracleAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21233, + "src": "610:19:65", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 21162, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "610:38:65", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 21163, + "nodeType": "ExpressionStatement", + "src": "610:38:65" + } + ] + }, + "documentation": "@dev initializes a ne MoC oracle\n\t * @param _mocOracleAddress MoC oracle address", + "id": 21165, + "implemented": true, + "isConstructor": true, + "isDeclaredConst": false, + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 21158, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 21157, + "name": "_mocOracleAddress", + "nodeType": "VariableDeclaration", + "scope": 21165, + "src": "572:25:65", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 21156, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "572:7:65", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "571:27:65" + }, + "payable": false, + "returnParameters": { + "id": 21159, + "nodeType": "ParameterList", + "parameters": [], + "src": "606:0:65" + }, + "scope": 21234, + "src": "560:92:65", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 21197, + "nodeType": "Block", + "src": "804:180:65", + "statements": [ + { + "assignments": [ + 21171, + 21173 + ], + "declarations": [ + { + "constant": false, + "id": 21171, + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 21198, + "src": "809:13:65", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 21170, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "809:7:65", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 21173, + "name": "hasValue", + "nodeType": "VariableDeclaration", + "scope": 21198, + "src": "824:13:65", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 21172, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "824:4:65", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 21179, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 21175, + "name": "mocOracleAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21149, + "src": "852:16:65", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 21174, + "name": "Medianizer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21135, + "src": "841:10:65", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Medianizer_$21135_$", + "typeString": "type(contract Medianizer)" + } + }, + "id": 21176, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "841:28:65", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Medianizer_$21135", + "typeString": "contract Medianizer" + } + }, + "id": 21177, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "peek", + "nodeType": "MemberAccess", + "referencedDeclaration": 21134, + "src": "841:33:65", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_bytes32_$_t_bool_$", + "typeString": "function () view external returns (bytes32,bool)" + } + }, + "id": 21178, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "841:35:65", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bytes32_$_t_bool_$", + "typeString": "tuple(bytes32,bool)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "808:68:65" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 21181, + "name": "hasValue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21173, + "src": "888:8:65", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "446f65736e2774206861732076616c7565", + "id": 21182, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "898:19:65", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_6aeeaa77c7052b63789ef869d7bd36d10b5590c69f05d4dcaa0a9e7f6ef2a1cb", + "typeString": "literal_string \"Doesn't has value\"" + }, + "value": "Doesn't has value" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_6aeeaa77c7052b63789ef869d7bd36d10b5590c69f05d4dcaa0a9e7f6ef2a1cb", + "typeString": "literal_string \"Doesn't has value\"" + } + ], + "id": 21180, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 22341, + 22342 + ], + "referencedDeclaration": 22342, + "src": "880:7:65", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 21183, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "880:38:65", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 21184, + "nodeType": "ExpressionStatement", + "src": "880:38:65" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 21193, + "name": "DECIMALS", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21147, + "src": "970:8:65", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 21189, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21171, + "src": "958:5:65", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 21188, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "950:7:65", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": "uint256" + }, + "id": 21190, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "950:14:65", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 21186, + "name": "DECIMALS", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21147, + "src": "937:8:65", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 21187, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "div", + "nodeType": "MemberAccess", + "referencedDeclaration": 21816, + "src": "937:12:65", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 21191, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "937:28:65", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 21192, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 21791, + "src": "937:32:65", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 21194, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "937:42:65", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 21185, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "930:6:65", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int256_$", + "typeString": "type(int256)" + }, + "typeName": "int256" + }, + "id": 21195, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "930:50:65", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "functionReturnParameters": 21169, + "id": 21196, + "nodeType": "Return", + "src": "923:57:65" + } + ] + }, + "documentation": "@dev returns the USD/BTC rate.\n\t * @return always returns the rate of 10000", + "id": 21198, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "latestAnswer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 21166, + "nodeType": "ParameterList", + "parameters": [], + "src": "770:2:65" + }, + "payable": false, + "returnParameters": { + "id": 21169, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 21168, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 21198, + "src": "796:6:65", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 21167, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "796:6:65", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "795:8:65" + }, + "scope": 21234, + "src": "749:235:65", + "stateMutability": "view", + "superFunction": 22197, + "visibility": "external" + }, + { + "body": { + "id": 21205, + "nodeType": "Block", + "src": "1155:64:65", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 21203, + "name": "now", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22340, + "src": "1166:3:65", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 21202, + "id": 21204, + "nodeType": "Return", + "src": "1159:10:65" + } + ] + }, + "documentation": "@dev returns the USD/BTC update time.\n\t * @return always returns current block's timestamp", + "id": 21206, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "latestTimestamp", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 21199, + "nodeType": "ParameterList", + "parameters": [], + "src": "1120:2:65" + }, + "payable": false, + "returnParameters": { + "id": 21202, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 21201, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 21206, + "src": "1146:7:65", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 21200, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1146:7:65", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1145:9:65" + }, + "scope": 21234, + "src": "1096:123:65", + "stateMutability": "view", + "superFunction": 22202, + "visibility": "external" + }, + { + "body": { + "id": 21232, + "nodeType": "Block", + "src": "1389:193:65", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 21218, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 21214, + "name": "_mocOracleAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21208, + "src": "1401:17:65", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 21216, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1430:1:65", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 21215, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1422:7:65", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 21217, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1422:10:65", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1401:31:65", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "5f6d6f634f7261636c6541646472657373207368616c6c206e6f74206265207a65726f2061646472657373", + "id": 21219, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1434:45:65", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_8881b7310d0b350b9f057d0c80baa681dae8fbf3029db7243e9a5053a685e784", + "typeString": "literal_string \"_mocOracleAddress shall not be zero address\"" + }, + "value": "_mocOracleAddress shall not be zero address" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_8881b7310d0b350b9f057d0c80baa681dae8fbf3029db7243e9a5053a685e784", + "typeString": "literal_string \"_mocOracleAddress shall not be zero address\"" + } + ], + "id": 21213, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 22341, + 22342 + ], + "referencedDeclaration": 22342, + "src": "1393:7:65", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 21220, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1393:87:65", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 21221, + "nodeType": "ExpressionStatement", + "src": "1393:87:65" + }, + { + "expression": { + "argumentTypes": null, + "id": 21224, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 21222, + "name": "mocOracleAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21149, + "src": "1484:16:65", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 21223, + "name": "_mocOracleAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21208, + "src": "1503:17:65", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1484:36:65", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 21225, + "nodeType": "ExpressionStatement", + "src": "1484:36:65" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 21227, + "name": "mocOracleAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21149, + "src": "1549:16:65", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 21228, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22338, + "src": "1567:3:65", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 21229, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1567:10:65", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 21226, + "name": "SetMoCOracleAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21155, + "src": "1529:19:65", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", + "typeString": "function (address,address)" + } + }, + "id": 21230, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1529:49:65", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 21231, + "nodeType": "EmitStatement", + "src": "1524:54:65" + } + ] + }, + "documentation": "@dev set MoC oracle address\n\t * @param _mocOracleAddress MoC oracle address", + "id": 21233, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 21211, + "modifierName": { + "argumentTypes": null, + "id": 21210, + "name": "ownerOnly", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21265, + "src": "1379:9:65", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "1379:9:65" + } + ], + "name": "setMoCOracleAddress", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 21209, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 21208, + "name": "_mocOracleAddress", + "nodeType": "VariableDeclaration", + "scope": 21233, + "src": "1345:25:65", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 21207, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1345:7:65", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1344:27:65" + }, + "payable": false, + "returnParameters": { + "id": 21212, + "nodeType": "ParameterList", + "parameters": [], + "src": "1389:0:65" + }, + "scope": 21234, + "src": "1316:266:65", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 21235, + "src": "203:1381:65" + } + ], + "src": "0:1585:65" + }, + "id": 65 + }, + "solidity/contracts/utility/Owned.sol": { + "ast": { + "absolutePath": "solidity/contracts/utility/Owned.sol", + "exportedSymbols": { + "Owned": [ + 21324 + ] + }, + "id": 21325, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 21236, + "literals": [ + "solidity", + "0.4", + ".26" + ], + "nodeType": "PragmaDirective", + "src": "0:23:66" + }, + { + "absolutePath": "solidity/contracts/utility/interfaces/IOwned.sol", + "file": "./interfaces/IOwned.sol", + "id": 21237, + "nodeType": "ImportDirective", + "scope": 21325, + "sourceUnit": 22248, + "src": "24:33:66", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 21238, + "name": "IOwned", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 22247, + "src": "147:6:66", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IOwned_$22247", + "typeString": "contract IOwned" + } + }, + "id": 21239, + "nodeType": "InheritanceSpecifier", + "src": "147:6:66" + } + ], + "contractDependencies": [ + 22247 + ], + "contractKind": "contract", + "documentation": "@dev Provides support and utilities for contract ownership", + "fullyImplemented": true, + "id": 21324, + "linearizedBaseContracts": [ + 21324, + 22247 + ], + "name": "Owned", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 21241, + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 21324, + "src": "157:20:66", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 21240, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "157:7:66", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 21243, + "name": "newOwner", + "nodeType": "VariableDeclaration", + "scope": 21324, + "src": "180:23:66", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 21242, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "180:7:66", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "anonymous": false, + "documentation": "@dev triggered when the owner is updated\n\t * @param _prevOwner previous owner\n@param _newOwner new owner", + "id": 21249, + "name": "OwnerUpdate", + "nodeType": "EventDefinition", + "parameters": { + "id": 21248, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 21245, + "indexed": true, + "name": "_prevOwner", + "nodeType": "VariableDeclaration", + "scope": 21249, + "src": "353:26:66", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 21244, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "353:7:66", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 21247, + "indexed": true, + "name": "_newOwner", + "nodeType": "VariableDeclaration", + "scope": 21249, + "src": "381:25:66", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 21246, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "381:7:66", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "352:55:66" + }, + "src": "335:73:66" + }, + { + "body": { + "id": 21257, + "nodeType": "Block", + "src": "484:26:66", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 21255, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 21252, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 21241 + ], + "referencedDeclaration": 21241, + "src": "488:5:66", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 21253, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22338, + "src": "496:3:66", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 21254, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "496:10:66", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "488:18:66", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 21256, + "nodeType": "ExpressionStatement", + "src": "488:18:66" + } + ] + }, + "documentation": "@dev initializes a new Owned instance", + "id": 21258, + "implemented": true, + "isConstructor": true, + "isDeclaredConst": false, + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 21250, + "nodeType": "ParameterList", + "parameters": [], + "src": "474:2:66" + }, + "payable": false, + "returnParameters": { + "id": 21251, + "nodeType": "ParameterList", + "parameters": [], + "src": "484:0:66" + }, + "scope": 21324, + "src": "463:47:66", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 21264, + "nodeType": "Block", + "src": "571:25:66", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 21260, + "name": "_ownerOnly", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21277, + "src": "575:10:66", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$__$", + "typeString": "function () view" + } + }, + "id": 21261, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "575:12:66", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 21262, + "nodeType": "ExpressionStatement", + "src": "575:12:66" + }, + { + "id": 21263, + "nodeType": "PlaceholderStatement", + "src": "591:1:66" + } + ] + }, + "documentation": null, + "id": 21265, + "name": "ownerOnly", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 21259, + "nodeType": "ParameterList", + "parameters": [], + "src": "571:0:66" + }, + "src": "552:44:66", + "visibility": "internal" + }, + { + "body": { + "id": 21276, + "nodeType": "Block", + "src": "678:57:66", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 21272, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 21269, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22338, + "src": "690:3:66", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 21270, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "690:10:66", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 21271, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 21241 + ], + "referencedDeclaration": 21241, + "src": "704:5:66", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "690:19:66", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4552525f4143434553535f44454e494544", + "id": 21273, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "711:19:66", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_f5894269650d3e1726ed81a4f48c5b62c7dd6fa025b89d639952a7012960d666", + "typeString": "literal_string \"ERR_ACCESS_DENIED\"" + }, + "value": "ERR_ACCESS_DENIED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_f5894269650d3e1726ed81a4f48c5b62c7dd6fa025b89d639952a7012960d666", + "typeString": "literal_string \"ERR_ACCESS_DENIED\"" + } + ], + "id": 21268, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 22341, + 22342 + ], + "referencedDeclaration": 22342, + "src": "682:7:66", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 21274, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "682:49:66", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 21275, + "nodeType": "ExpressionStatement", + "src": "682:49:66" + } + ] + }, + "documentation": null, + "id": 21277, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "_ownerOnly", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 21266, + "nodeType": "ParameterList", + "parameters": [], + "src": "661:2:66" + }, + "payable": false, + "returnParameters": { + "id": 21267, + "nodeType": "ParameterList", + "parameters": [], + "src": "678:0:66" + }, + "scope": 21324, + "src": "642:93:66", + "stateMutability": "view", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 21295, + "nodeType": "Block", + "src": "1008:77:66", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 21287, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 21285, + "name": "_newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21279, + "src": "1020:9:66", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "id": 21286, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 21241 + ], + "referencedDeclaration": 21241, + "src": "1033:5:66", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1020:18:66", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4552525f53414d455f4f574e4552", + "id": 21288, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1040:16:66", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_3fd4538e1d572c08b9fe188370db4ccb2fa173c576dfdb888a76c86a53b83133", + "typeString": "literal_string \"ERR_SAME_OWNER\"" + }, + "value": "ERR_SAME_OWNER" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_3fd4538e1d572c08b9fe188370db4ccb2fa173c576dfdb888a76c86a53b83133", + "typeString": "literal_string \"ERR_SAME_OWNER\"" + } + ], + "id": 21284, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 22341, + 22342 + ], + "referencedDeclaration": 22342, + "src": "1012:7:66", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 21289, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1012:45:66", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 21290, + "nodeType": "ExpressionStatement", + "src": "1012:45:66" + }, + { + "expression": { + "argumentTypes": null, + "id": 21293, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 21291, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21243, + "src": "1061:8:66", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 21292, + "name": "_newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21279, + "src": "1072:9:66", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1061:20:66", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 21294, + "nodeType": "ExpressionStatement", + "src": "1061:20:66" + } + ] + }, + "documentation": "@dev allows transferring the contract ownership\nthe new owner still needs to accept the transfer\ncan only be called by the contract owner\n\t * @param _newOwner new contract owner", + "id": 21296, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 21282, + "modifierName": { + "argumentTypes": null, + "id": 21281, + "name": "ownerOnly", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21265, + "src": "998:9:66", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "998:9:66" + } + ], + "name": "transferOwnership", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 21280, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 21279, + "name": "_newOwner", + "nodeType": "VariableDeclaration", + "scope": 21296, + "src": "972:17:66", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 21278, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "972:7:66", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "971:19:66" + }, + "payable": false, + "returnParameters": { + "id": 21283, + "nodeType": "ParameterList", + "parameters": [], + "src": "1008:0:66" + }, + "scope": 21324, + "src": "945:140:66", + "stateMutability": "nonpayable", + "superFunction": 22243, + "visibility": "public" + }, + { + "body": { + "id": 21322, + "nodeType": "Block", + "src": "1193:142:66", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 21303, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 21300, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22338, + "src": "1205:3:66", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 21301, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1205:10:66", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 21302, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21243, + "src": "1219:8:66", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1205:22:66", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4552525f4143434553535f44454e494544", + "id": 21304, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1229:19:66", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_f5894269650d3e1726ed81a4f48c5b62c7dd6fa025b89d639952a7012960d666", + "typeString": "literal_string \"ERR_ACCESS_DENIED\"" + }, + "value": "ERR_ACCESS_DENIED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_f5894269650d3e1726ed81a4f48c5b62c7dd6fa025b89d639952a7012960d666", + "typeString": "literal_string \"ERR_ACCESS_DENIED\"" + } + ], + "id": 21299, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 22341, + 22342 + ], + "referencedDeclaration": 22342, + "src": "1197:7:66", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 21305, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1197:52:66", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 21306, + "nodeType": "ExpressionStatement", + "src": "1197:52:66" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 21308, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 21241 + ], + "referencedDeclaration": 21241, + "src": "1270:5:66", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 21309, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21243, + "src": "1277:8:66", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 21307, + "name": "OwnerUpdate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21249, + "src": "1258:11:66", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", + "typeString": "function (address,address)" + } + }, + "id": 21310, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1258:28:66", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 21311, + "nodeType": "EmitStatement", + "src": "1253:33:66" + }, + { + "expression": { + "argumentTypes": null, + "id": 21314, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 21312, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 21241 + ], + "referencedDeclaration": 21241, + "src": "1290:5:66", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 21313, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21243, + "src": "1298:8:66", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1290:16:66", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 21315, + "nodeType": "ExpressionStatement", + "src": "1290:16:66" + }, + { + "expression": { + "argumentTypes": null, + "id": 21320, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 21316, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21243, + "src": "1310:8:66", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 21318, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1329:1:66", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 21317, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1321:7:66", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 21319, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1321:10:66", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1310:21:66", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 21321, + "nodeType": "ExpressionStatement", + "src": "1310:21:66" + } + ] + }, + "documentation": "@dev used by a new owner to accept an ownership transfer", + "id": 21323, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "acceptOwnership", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 21297, + "nodeType": "ParameterList", + "parameters": [], + "src": "1183:2:66" + }, + "payable": false, + "returnParameters": { + "id": 21298, + "nodeType": "ParameterList", + "parameters": [], + "src": "1193:0:66" + }, + "scope": 21324, + "src": "1159:176:66", + "stateMutability": "nonpayable", + "superFunction": 22246, + "visibility": "public" + } + ], + "scope": 21325, + "src": "129:1208:66" + } + ], + "src": "0:1338:66" + }, + "id": 66 + }, + "solidity/contracts/utility/PriceOracle.sol": { + "ast": { + "absolutePath": "solidity/contracts/utility/PriceOracle.sol", + "exportedSymbols": { + "PriceOracle": [ + 21668 + ] + }, + "id": 21669, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 21326, + "literals": [ + "solidity", + "0.4", + ".26" + ], + "nodeType": "PragmaDirective", + "src": "0:23:67" + }, + { + "absolutePath": "solidity/contracts/utility/Utils.sol", + "file": "./Utils.sol", + "id": 21327, + "nodeType": "ImportDirective", + "scope": 21669, + "sourceUnit": 22053, + "src": "24:21:67", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "solidity/contracts/utility/SafeMath.sol", + "file": "./SafeMath.sol", + "id": 21328, + "nodeType": "ImportDirective", + "scope": 21669, + "sourceUnit": 21818, + "src": "46:24:67", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "solidity/contracts/utility/interfaces/IPriceOracle.sol", + "file": "./interfaces/IPriceOracle.sol", + "id": 21329, + "nodeType": "ImportDirective", + "scope": 21669, + "sourceUnit": 22298, + "src": "71:39:67", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "solidity/contracts/utility/interfaces/IConsumerPriceOracle.sol", + "file": "./interfaces/IConsumerPriceOracle.sol", + "id": 21330, + "nodeType": "ImportDirective", + "scope": 21669, + "sourceUnit": 22204, + "src": "111:47:67", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 21331, + "name": "IPriceOracle", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 22297, + "src": "474:12:67", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IPriceOracle_$22297", + "typeString": "contract IPriceOracle" + } + }, + "id": 21332, + "nodeType": "InheritanceSpecifier", + "src": "474:12:67" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 21333, + "name": "Utils", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 22052, + "src": "488:5:67", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Utils_$22052", + "typeString": "contract Utils" + } + }, + "id": 21334, + "nodeType": "InheritanceSpecifier", + "src": "488:5:67" + } + ], + "contractDependencies": [ + 22052, + 22297 + ], + "contractKind": "contract", + "documentation": "@dev Provides the off-chain rate between two tokens\n * The price oracle uses chainlink oracles internally to get the rates of the two tokens\nwith respect to a common denominator, and then returns the rate between them, which\nis equivalent to the rate of TokenA / TokenB", + "fullyImplemented": true, + "id": 21668, + "linearizedBaseContracts": [ + 21668, + 22052, + 22297 + ], + "name": "PriceOracle", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 21337, + "libraryName": { + "contractScope": null, + "id": 21335, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 21817, + "src": "503:8:67", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$21817", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "497:27:67", + "typeName": { + "id": 21336, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "516:7:67", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "constant": true, + "id": 21340, + "name": "ETH_ADDRESS", + "nodeType": "VariableDeclaration", + "scope": 21668, + "src": "527:81:67", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 21338, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "527:7:67", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "307845656565654565656545654565654565456545656545454565656565456565656565656545456545", + "id": 21339, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "566:42:67", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "value": "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE" + }, + "visibility": "private" + }, + { + "constant": true, + "id": 21343, + "name": "ETH_DECIMALS", + "nodeType": "VariableDeclaration", + "scope": 21668, + "src": "611:40:67", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 21341, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "611:5:67", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "3138", + "id": 21342, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "649:2:67", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_18_by_1", + "typeString": "int_const 18" + }, + "value": "18" + }, + "visibility": "private" + }, + { + "constant": false, + "id": 21345, + "name": "tokenA", + "nodeType": "VariableDeclaration", + "scope": 21668, + "src": "655:25:67", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + "typeName": { + "contractScope": null, + "id": 21344, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "655:11:67", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 21347, + "name": "tokenB", + "nodeType": "VariableDeclaration", + "scope": 21668, + "src": "714:25:67", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + "typeName": { + "contractScope": null, + "id": 21346, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "714:11:67", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 21351, + "name": "tokenDecimals", + "nodeType": "VariableDeclaration", + "scope": 21668, + "src": "773:46:67", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint8_$", + "typeString": "mapping(address => uint8)" + }, + "typeName": { + "id": 21350, + "keyType": { + "id": 21348, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "781:7:67", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "773:25:67", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint8_$", + "typeString": "mapping(address => uint8)" + }, + "valueType": { + "id": 21349, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "792:5:67", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 21353, + "name": "tokenAOracle", + "nodeType": "VariableDeclaration", + "scope": 21668, + "src": "850:40:67", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", + "typeString": "contract IConsumerPriceOracle" + }, + "typeName": { + "contractScope": null, + "id": 21352, + "name": "IConsumerPriceOracle", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 22203, + "src": "850:20:67", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", + "typeString": "contract IConsumerPriceOracle" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 21355, + "name": "tokenBOracle", + "nodeType": "VariableDeclaration", + "scope": 21668, + "src": "927:40:67", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", + "typeString": "contract IConsumerPriceOracle" + }, + "typeName": { + "contractScope": null, + "id": 21354, + "name": "IConsumerPriceOracle", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 22203, + "src": "927:20:67", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", + "typeString": "contract IConsumerPriceOracle" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 21359, + "name": "tokensToOracles", + "nodeType": "VariableDeclaration", + "scope": 21668, + "src": "1004:63:67", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_contract$_IConsumerPriceOracle_$22203_$", + "typeString": "mapping(address => contract IConsumerPriceOracle)" + }, + "typeName": { + "id": 21358, + "keyType": { + "id": 21356, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1012:7:67", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1004:40:67", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_contract$_IConsumerPriceOracle_$22203_$", + "typeString": "mapping(address => contract IConsumerPriceOracle)" + }, + "valueType": { + "contractScope": null, + "id": 21357, + "name": "IConsumerPriceOracle", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 22203, + "src": "1023:20:67", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", + "typeString": "contract IConsumerPriceOracle" + } + } + }, + "value": null, + "visibility": "public" + }, + { + "body": { + "id": 21422, + "nodeType": "Block", + "src": "1700:289:67", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 21380, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 21378, + "name": "tokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21345, + "src": "1704:6:67", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 21379, + "name": "_tokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21361, + "src": "1713:7:67", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "src": "1704:16:67", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "id": 21381, + "nodeType": "ExpressionStatement", + "src": "1704:16:67" + }, + { + "expression": { + "argumentTypes": null, + "id": 21384, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 21382, + "name": "tokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21347, + "src": "1724:6:67", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 21383, + "name": "_tokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21363, + "src": "1733:7:67", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "src": "1724:16:67", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "id": 21385, + "nodeType": "ExpressionStatement", + "src": "1724:16:67" + }, + { + "expression": { + "argumentTypes": null, + "id": 21392, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 21386, + "name": "tokenDecimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21351, + "src": "1744:13:67", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint8_$", + "typeString": "mapping(address => uint8)" + } + }, + "id": 21388, + "indexExpression": { + "argumentTypes": null, + "id": 21387, + "name": "_tokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21361, + "src": "1758:7:67", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1744:22:67", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 21390, + "name": "_tokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21361, + "src": "1778:7:67", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + ], + "id": 21389, + "name": "decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21667, + "src": "1769:8:67", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_contract$_IERC20Token_$20240_$returns$_t_uint8_$", + "typeString": "function (contract IERC20Token) view returns (uint8)" + } + }, + "id": 21391, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1769:17:67", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "1744:42:67", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "id": 21393, + "nodeType": "ExpressionStatement", + "src": "1744:42:67" + }, + { + "expression": { + "argumentTypes": null, + "id": 21400, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 21394, + "name": "tokenDecimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21351, + "src": "1790:13:67", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint8_$", + "typeString": "mapping(address => uint8)" + } + }, + "id": 21396, + "indexExpression": { + "argumentTypes": null, + "id": 21395, + "name": "_tokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21363, + "src": "1804:7:67", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1790:22:67", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 21398, + "name": "_tokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21363, + "src": "1824:7:67", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + ], + "id": 21397, + "name": "decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21667, + "src": "1815:8:67", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_contract$_IERC20Token_$20240_$returns$_t_uint8_$", + "typeString": "function (contract IERC20Token) view returns (uint8)" + } + }, + "id": 21399, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1815:17:67", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "1790:42:67", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "id": 21401, + "nodeType": "ExpressionStatement", + "src": "1790:42:67" + }, + { + "expression": { + "argumentTypes": null, + "id": 21404, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 21402, + "name": "tokenAOracle", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 21353 + ], + "referencedDeclaration": 21353, + "src": "1837:12:67", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", + "typeString": "contract IConsumerPriceOracle" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 21403, + "name": "_tokenAOracle", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21365, + "src": "1852:13:67", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", + "typeString": "contract IConsumerPriceOracle" + } + }, + "src": "1837:28:67", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", + "typeString": "contract IConsumerPriceOracle" + } + }, + "id": 21405, + "nodeType": "ExpressionStatement", + "src": "1837:28:67" + }, + { + "expression": { + "argumentTypes": null, + "id": 21408, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 21406, + "name": "tokenBOracle", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 21355 + ], + "referencedDeclaration": 21355, + "src": "1869:12:67", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", + "typeString": "contract IConsumerPriceOracle" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 21407, + "name": "_tokenBOracle", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21367, + "src": "1884:13:67", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", + "typeString": "contract IConsumerPriceOracle" + } + }, + "src": "1869:28:67", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", + "typeString": "contract IConsumerPriceOracle" + } + }, + "id": 21409, + "nodeType": "ExpressionStatement", + "src": "1869:28:67" + }, + { + "expression": { + "argumentTypes": null, + "id": 21414, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 21410, + "name": "tokensToOracles", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21359, + "src": "1901:15:67", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_contract$_IConsumerPriceOracle_$22203_$", + "typeString": "mapping(address => contract IConsumerPriceOracle)" + } + }, + "id": 21412, + "indexExpression": { + "argumentTypes": null, + "id": 21411, + "name": "_tokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21361, + "src": "1917:7:67", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1901:24:67", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", + "typeString": "contract IConsumerPriceOracle" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 21413, + "name": "_tokenAOracle", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21365, + "src": "1928:13:67", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", + "typeString": "contract IConsumerPriceOracle" + } + }, + "src": "1901:40:67", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", + "typeString": "contract IConsumerPriceOracle" + } + }, + "id": 21415, + "nodeType": "ExpressionStatement", + "src": "1901:40:67" + }, + { + "expression": { + "argumentTypes": null, + "id": 21420, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 21416, + "name": "tokensToOracles", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21359, + "src": "1945:15:67", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_contract$_IConsumerPriceOracle_$22203_$", + "typeString": "mapping(address => contract IConsumerPriceOracle)" + } + }, + "id": 21418, + "indexExpression": { + "argumentTypes": null, + "id": 21417, + "name": "_tokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21363, + "src": "1961:7:67", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1945:24:67", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", + "typeString": "contract IConsumerPriceOracle" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 21419, + "name": "_tokenBOracle", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21367, + "src": "1972:13:67", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", + "typeString": "contract IConsumerPriceOracle" + } + }, + "src": "1945:40:67", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", + "typeString": "contract IConsumerPriceOracle" + } + }, + "id": 21421, + "nodeType": "ExpressionStatement", + "src": "1945:40:67" + } + ] + }, + "documentation": "@dev initializes a new PriceOracle instance\nnote that the oracles must have the same common denominator (USD, ETH etc.)\n\t * @param _tokenA first token to support\n@param _tokenB second token to support\n@param _tokenAOracle first token price oracle\n@param _tokenBOracle second token price oracle", + "id": 21423, + "implemented": true, + "isConstructor": true, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 21370, + "name": "_tokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21361, + "src": "1631:7:67", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + { + "argumentTypes": null, + "id": 21371, + "name": "_tokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21363, + "src": "1640:7:67", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + } + ], + "id": 21372, + "modifierName": { + "argumentTypes": null, + "id": 21369, + "name": "validUniqueAddresses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21436, + "src": "1610:20:67", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_address_$_t_address_$", + "typeString": "modifier (address,address)" + } + }, + "nodeType": "ModifierInvocation", + "src": "1610:38:67" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 21374, + "name": "_tokenAOracle", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21365, + "src": "1670:13:67", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", + "typeString": "contract IConsumerPriceOracle" + } + }, + { + "argumentTypes": null, + "id": 21375, + "name": "_tokenBOracle", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21367, + "src": "1685:13:67", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", + "typeString": "contract IConsumerPriceOracle" + } + } + ], + "id": 21376, + "modifierName": { + "argumentTypes": null, + "id": 21373, + "name": "validUniqueAddresses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21436, + "src": "1649:20:67", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_address_$_t_address_$", + "typeString": "modifier (address,address)" + } + }, + "nodeType": "ModifierInvocation", + "src": "1649:50:67" + } + ], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 21368, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 21361, + "name": "_tokenA", + "nodeType": "VariableDeclaration", + "scope": 21423, + "src": "1481:19:67", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + "typeName": { + "contractScope": null, + "id": 21360, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "1481:11:67", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 21363, + "name": "_tokenB", + "nodeType": "VariableDeclaration", + "scope": 21423, + "src": "1504:19:67", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + "typeName": { + "contractScope": null, + "id": 21362, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "1504:11:67", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 21365, + "name": "_tokenAOracle", + "nodeType": "VariableDeclaration", + "scope": 21423, + "src": "1527:34:67", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", + "typeString": "contract IConsumerPriceOracle" + }, + "typeName": { + "contractScope": null, + "id": 21364, + "name": "IConsumerPriceOracle", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 22203, + "src": "1527:20:67", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", + "typeString": "contract IConsumerPriceOracle" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 21367, + "name": "_tokenBOracle", + "nodeType": "VariableDeclaration", + "scope": 21423, + "src": "1565:34:67", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", + "typeString": "contract IConsumerPriceOracle" + }, + "typeName": { + "contractScope": null, + "id": 21366, + "name": "IConsumerPriceOracle", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 22203, + "src": "1565:20:67", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", + "typeString": "contract IConsumerPriceOracle" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1477:125:67" + }, + "payable": false, + "returnParameters": { + "id": 21377, + "nodeType": "ParameterList", + "parameters": [], + "src": "1700:0:67" + }, + "scope": 21668, + "src": "1466:523:67", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 21435, + "nodeType": "Block", + "src": "2117:56:67", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 21430, + "name": "_address1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21425, + "src": "2143:9:67", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 21431, + "name": "_address2", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21427, + "src": "2154:9:67", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 21429, + "name": "_validUniqueAddresses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21459, + "src": "2121:21:67", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_address_$_t_address_$returns$__$", + "typeString": "function (address,address) pure" + } + }, + "id": 21432, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2121:43:67", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 21433, + "nodeType": "ExpressionStatement", + "src": "2121:43:67" + }, + { + "id": 21434, + "nodeType": "PlaceholderStatement", + "src": "2168:1:67" + } + ] + }, + "documentation": null, + "id": 21436, + "name": "validUniqueAddresses", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 21428, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 21425, + "name": "_address1", + "nodeType": "VariableDeclaration", + "scope": 21436, + "src": "2079:17:67", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 21424, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2079:7:67", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 21427, + "name": "_address2", + "nodeType": "VariableDeclaration", + "scope": 21436, + "src": "2098:17:67", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 21426, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2098:7:67", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2078:38:67" + }, + "src": "2049:124:67", + "visibility": "internal" + }, + { + "body": { + "id": 21458, + "nodeType": "Block", + "src": "2302:115:67", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 21444, + "name": "_address1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21438, + "src": "2320:9:67", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 21443, + "name": "_validAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22026, + "src": "2306:13:67", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_address_$returns$__$", + "typeString": "function (address) pure" + } + }, + "id": 21445, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2306:24:67", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 21446, + "nodeType": "ExpressionStatement", + "src": "2306:24:67" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 21448, + "name": "_address2", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21440, + "src": "2348:9:67", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 21447, + "name": "_validAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22026, + "src": "2334:13:67", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_address_$returns$__$", + "typeString": "function (address) pure" + } + }, + "id": 21449, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2334:24:67", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 21450, + "nodeType": "ExpressionStatement", + "src": "2334:24:67" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 21454, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 21452, + "name": "_address1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21438, + "src": "2370:9:67", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "id": 21453, + "name": "_address2", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21440, + "src": "2383:9:67", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "2370:22:67", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4552525f53414d455f41444452455353", + "id": 21455, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2394:18:67", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_f8a367a12797014b9e2f1d71cd920760e1c54a6511a9a16d5ab22fb4d28800b6", + "typeString": "literal_string \"ERR_SAME_ADDRESS\"" + }, + "value": "ERR_SAME_ADDRESS" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_f8a367a12797014b9e2f1d71cd920760e1c54a6511a9a16d5ab22fb4d28800b6", + "typeString": "literal_string \"ERR_SAME_ADDRESS\"" + } + ], + "id": 21451, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 22341, + 22342 + ], + "referencedDeclaration": 22342, + "src": "2362:7:67", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 21456, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2362:51:67", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 21457, + "nodeType": "ExpressionStatement", + "src": "2362:51:67" + } + ] + }, + "documentation": null, + "id": 21459, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "_validUniqueAddresses", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 21441, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 21438, + "name": "_address1", + "nodeType": "VariableDeclaration", + "scope": 21459, + "src": "2250:17:67", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 21437, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2250:7:67", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 21440, + "name": "_address2", + "nodeType": "VariableDeclaration", + "scope": 21459, + "src": "2269:17:67", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 21439, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2269:7:67", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2249:38:67" + }, + "payable": false, + "returnParameters": { + "id": 21442, + "nodeType": "ParameterList", + "parameters": [], + "src": "2302:0:67" + }, + "scope": 21668, + "src": "2219:198:67", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 21471, + "nodeType": "Block", + "src": "2552:47:67", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 21466, + "name": "_tokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21461, + "src": "2573:7:67", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + { + "argumentTypes": null, + "id": 21467, + "name": "_tokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21463, + "src": "2582:7:67", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + ], + "id": 21465, + "name": "_supportedTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21504, + "src": "2556:16:67", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_contract$_IERC20Token_$20240_$_t_contract$_IERC20Token_$20240_$returns$__$", + "typeString": "function (contract IERC20Token,contract IERC20Token) view" + } + }, + "id": 21468, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2556:34:67", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 21469, + "nodeType": "ExpressionStatement", + "src": "2556:34:67" + }, + { + "id": 21470, + "nodeType": "PlaceholderStatement", + "src": "2594:1:67" + } + ] + }, + "documentation": null, + "id": 21472, + "name": "supportedTokens", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 21464, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 21461, + "name": "_tokenA", + "nodeType": "VariableDeclaration", + "scope": 21472, + "src": "2510:19:67", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + "typeName": { + "contractScope": null, + "id": 21460, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "2510:11:67", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 21463, + "name": "_tokenB", + "nodeType": "VariableDeclaration", + "scope": 21472, + "src": "2531:19:67", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + "typeName": { + "contractScope": null, + "id": 21462, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "2531:11:67", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2509:42:67" + }, + "src": "2485:114:67", + "visibility": "internal" + }, + { + "body": { + "id": 21503, + "nodeType": "Block", + "src": "2727:165:67", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 21480, + "name": "_tokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21474, + "src": "2753:7:67", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + { + "argumentTypes": null, + "id": 21481, + "name": "_tokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21476, + "src": "2762:7:67", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + ], + "id": 21479, + "name": "_validUniqueAddresses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21459, + "src": "2731:21:67", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_address_$_t_address_$returns$__$", + "typeString": "function (address,address) pure" + } + }, + "id": 21482, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2731:39:67", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 21483, + "nodeType": "ExpressionStatement", + "src": "2731:39:67" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 21499, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 21491, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 21485, + "name": "tokensToOracles", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21359, + "src": "2782:15:67", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_contract$_IConsumerPriceOracle_$22203_$", + "typeString": "mapping(address => contract IConsumerPriceOracle)" + } + }, + "id": 21487, + "indexExpression": { + "argumentTypes": null, + "id": 21486, + "name": "_tokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21474, + "src": "2798:7:67", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2782:24:67", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", + "typeString": "contract IConsumerPriceOracle" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 21489, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2818:1:67", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 21488, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2810:7:67", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 21490, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2810:10:67", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "2782:38:67", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 21498, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 21492, + "name": "tokensToOracles", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21359, + "src": "2824:15:67", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_contract$_IConsumerPriceOracle_$22203_$", + "typeString": "mapping(address => contract IConsumerPriceOracle)" + } + }, + "id": 21494, + "indexExpression": { + "argumentTypes": null, + "id": 21493, + "name": "_tokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21476, + "src": "2840:7:67", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2824:24:67", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", + "typeString": "contract IConsumerPriceOracle" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 21496, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2860:1:67", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 21495, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2852:7:67", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 21497, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2852:10:67", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "2824:38:67", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "2782:80:67", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4552525f554e535550504f525445445f544f4b454e", + "id": 21500, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2864:23:67", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_fe5e253e0ad9d51f460b73c35652983a29904d3e214ecea083c7dec391c7b884", + "typeString": "literal_string \"ERR_UNSUPPORTED_TOKEN\"" + }, + "value": "ERR_UNSUPPORTED_TOKEN" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_fe5e253e0ad9d51f460b73c35652983a29904d3e214ecea083c7dec391c7b884", + "typeString": "literal_string \"ERR_UNSUPPORTED_TOKEN\"" + } + ], + "id": 21484, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 22341, + 22342 + ], + "referencedDeclaration": 22342, + "src": "2774:7:67", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 21501, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2774:114:67", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 21502, + "nodeType": "ExpressionStatement", + "src": "2774:114:67" + } + ] + }, + "documentation": null, + "id": 21504, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "_supportedTokens", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 21477, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 21474, + "name": "_tokenA", + "nodeType": "VariableDeclaration", + "scope": 21504, + "src": "2671:19:67", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + "typeName": { + "contractScope": null, + "id": 21473, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "2671:11:67", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 21476, + "name": "_tokenB", + "nodeType": "VariableDeclaration", + "scope": 21504, + "src": "2692:19:67", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + "typeName": { + "contractScope": null, + "id": 21475, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "2692:11:67", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2670:42:67" + }, + "payable": false, + "returnParameters": { + "id": 21478, + "nodeType": "ParameterList", + "parameters": [], + "src": "2727:0:67" + }, + "scope": 21668, + "src": "2645:247:67", + "stateMutability": "view", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 21593, + "nodeType": "Block", + "src": "3484:1259:67", + "statements": [ + { + "assignments": [ + 21520 + ], + "declarations": [ + { + "constant": false, + "id": 21520, + "name": "rateTokenA", + "nodeType": "VariableDeclaration", + "scope": 21594, + "src": "3488:18:67", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 21519, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3488:7:67", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 21528, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 21522, + "name": "tokensToOracles", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21359, + "src": "3517:15:67", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_contract$_IConsumerPriceOracle_$22203_$", + "typeString": "mapping(address => contract IConsumerPriceOracle)" + } + }, + "id": 21524, + "indexExpression": { + "argumentTypes": null, + "id": 21523, + "name": "_tokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21506, + "src": "3533:7:67", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3517:24:67", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", + "typeString": "contract IConsumerPriceOracle" + } + }, + "id": 21525, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "latestAnswer", + "nodeType": "MemberAccess", + "referencedDeclaration": 22197, + "src": "3517:37:67", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_int256_$", + "typeString": "function () view external returns (int256)" + } + }, + "id": 21526, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3517:39:67", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 21521, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3509:7:67", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": "uint256" + }, + "id": 21527, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3509:48:67", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3488:69:67" + }, + { + "assignments": [ + 21530 + ], + "declarations": [ + { + "constant": false, + "id": 21530, + "name": "rateTokenB", + "nodeType": "VariableDeclaration", + "scope": 21594, + "src": "3561:18:67", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 21529, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3561:7:67", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 21538, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 21532, + "name": "tokensToOracles", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21359, + "src": "3590:15:67", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_contract$_IConsumerPriceOracle_$22203_$", + "typeString": "mapping(address => contract IConsumerPriceOracle)" + } + }, + "id": 21534, + "indexExpression": { + "argumentTypes": null, + "id": 21533, + "name": "_tokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21508, + "src": "3606:7:67", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3590:24:67", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", + "typeString": "contract IConsumerPriceOracle" + } + }, + "id": 21535, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "latestAnswer", + "nodeType": "MemberAccess", + "referencedDeclaration": 22197, + "src": "3590:37:67", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_int256_$", + "typeString": "function () view external returns (int256)" + } + }, + "id": 21536, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3590:39:67", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 21531, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3582:7:67", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": "uint256" + }, + "id": 21537, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3582:48:67", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3561:69:67" + }, + { + "assignments": [ + 21540 + ], + "declarations": [ + { + "constant": false, + "id": 21540, + "name": "decimalsTokenA", + "nodeType": "VariableDeclaration", + "scope": 21594, + "src": "3634:20:67", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 21539, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "3634:5:67", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 21544, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 21541, + "name": "tokenDecimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21351, + "src": "3657:13:67", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint8_$", + "typeString": "mapping(address => uint8)" + } + }, + "id": 21543, + "indexExpression": { + "argumentTypes": null, + "id": 21542, + "name": "_tokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21506, + "src": "3671:7:67", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3657:22:67", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3634:45:67" + }, + { + "assignments": [ + 21546 + ], + "declarations": [ + { + "constant": false, + "id": 21546, + "name": "decimalsTokenB", + "nodeType": "VariableDeclaration", + "scope": 21594, + "src": "3683:20:67", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 21545, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "3683:5:67", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 21550, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 21547, + "name": "tokenDecimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21351, + "src": "3706:13:67", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint8_$", + "typeString": "mapping(address => uint8)" + } + }, + "id": 21549, + "indexExpression": { + "argumentTypes": null, + "id": 21548, + "name": "_tokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21508, + "src": "3720:7:67", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3706:22:67", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3683:45:67" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 21553, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 21551, + "name": "decimalsTokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21540, + "src": "4458:14:67", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "id": 21552, + "name": "decimalsTokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21546, + "src": "4475:14:67", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "4458:31:67", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 21571, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 21569, + "name": "decimalsTokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21540, + "src": "4586:14:67", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 21570, + "name": "decimalsTokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21546, + "src": "4603:14:67", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "4586:31:67", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 21587, + "nodeType": "IfStatement", + "src": "4582:122:67", + "trueBody": { + "id": 21586, + "nodeType": "Block", + "src": "4619:85:67", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 21584, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 21572, + "name": "rateTokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21520, + "src": "4624:10:67", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 21582, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "3130", + "id": 21576, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4660:2:67", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + } + ], + "id": 21575, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4652:7:67", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": "uint256" + }, + "id": 21577, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4652:11:67", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 21580, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 21578, + "name": "decimalsTokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21546, + "src": "4666:14:67", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 21579, + "name": "decimalsTokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21540, + "src": "4683:14:67", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "4666:31:67", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "id": 21581, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "4665:33:67", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "4652:46:67", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 21573, + "name": "rateTokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21520, + "src": "4637:10:67", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 21574, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 21791, + "src": "4637:14:67", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 21583, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4637:62:67", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4624:75:67", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 21585, + "nodeType": "ExpressionStatement", + "src": "4624:75:67" + } + ] + } + }, + "id": 21588, + "nodeType": "IfStatement", + "src": "4454:250:67", + "trueBody": { + "id": 21568, + "nodeType": "Block", + "src": "4491:85:67", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 21566, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 21554, + "name": "rateTokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21530, + "src": "4496:10:67", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 21564, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "3130", + "id": 21558, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4532:2:67", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + } + ], + "id": 21557, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4524:7:67", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": "uint256" + }, + "id": 21559, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4524:11:67", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 21562, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 21560, + "name": "decimalsTokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21540, + "src": "4538:14:67", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 21561, + "name": "decimalsTokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21546, + "src": "4555:14:67", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "4538:31:67", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "id": 21563, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "4537:33:67", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "4524:46:67", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 21555, + "name": "rateTokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21530, + "src": "4509:10:67", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 21556, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 21791, + "src": "4509:14:67", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 21565, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4509:62:67", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4496:75:67", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 21567, + "nodeType": "ExpressionStatement", + "src": "4496:75:67" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "id": 21589, + "name": "rateTokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21520, + "src": "4716:10:67", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 21590, + "name": "rateTokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21530, + "src": "4728:10:67", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 21591, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "4715:24:67", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "functionReturnParameters": 21518, + "id": 21592, + "nodeType": "Return", + "src": "4708:31:67" + } + ] + }, + "documentation": "@dev returns the latest known rate between the two given tokens\nfor a given pair of tokens A and B, returns the rate of A / B\n(the number of B units equivalent to a single A unit)\nthe rate is returned as a fraction (numerator / denominator) for accuracy\n\t * @param _tokenA token to get the rate of 1 unit of\n@param _tokenB token to get the rate of 1 `_tokenA` against\n\t * @return numerator\n@return denominator", + "id": 21594, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 21511, + "name": "_tokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21506, + "src": "3439:7:67", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + { + "argumentTypes": null, + "id": 21512, + "name": "_tokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21508, + "src": "3448:7:67", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + } + ], + "id": 21513, + "modifierName": { + "argumentTypes": null, + "id": 21510, + "name": "supportedTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21472, + "src": "3423:15:67", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_contract$_IERC20Token_$20240_$_t_contract$_IERC20Token_$20240_$", + "typeString": "modifier (contract IERC20Token,contract IERC20Token)" + } + }, + "nodeType": "ModifierInvocation", + "src": "3423:33:67" + } + ], + "name": "latestRate", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 21509, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 21506, + "name": "_tokenA", + "nodeType": "VariableDeclaration", + "scope": 21594, + "src": "3369:19:67", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + "typeName": { + "contractScope": null, + "id": 21505, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "3369:11:67", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 21508, + "name": "_tokenB", + "nodeType": "VariableDeclaration", + "scope": 21594, + "src": "3390:19:67", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + "typeName": { + "contractScope": null, + "id": 21507, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "3390:11:67", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3368:42:67" + }, + "payable": false, + "returnParameters": { + "id": 21518, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 21515, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 21594, + "src": "3466:7:67", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 21514, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3466:7:67", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 21517, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 21594, + "src": "3475:7:67", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 21516, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3475:7:67", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3465:18:67" + }, + "scope": 21668, + "src": "3349:1394:67", + "stateMutability": "view", + "superFunction": 22262, + "visibility": "public" + }, + { + "body": { + "id": 21618, + "nodeType": "Block", + "src": "4894:225:67", + "statements": [ + { + "assignments": [ + 21600 + ], + "declarations": [ + { + "constant": false, + "id": 21600, + "name": "timestampA", + "nodeType": "VariableDeclaration", + "scope": 21619, + "src": "4948:18:67", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 21599, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4948:7:67", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 21604, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 21601, + "name": "tokenAOracle", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 21353 + ], + "referencedDeclaration": 21353, + "src": "4969:12:67", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", + "typeString": "contract IConsumerPriceOracle" + } + }, + "id": 21602, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "latestTimestamp", + "nodeType": "MemberAccess", + "referencedDeclaration": 22202, + "src": "4969:28:67", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", + "typeString": "function () view external returns (uint256)" + } + }, + "id": 21603, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4969:30:67", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4948:51:67" + }, + { + "assignments": [ + 21606 + ], + "declarations": [ + { + "constant": false, + "id": 21606, + "name": "timestampB", + "nodeType": "VariableDeclaration", + "scope": 21619, + "src": "5003:18:67", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 21605, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5003:7:67", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 21610, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 21607, + "name": "tokenBOracle", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 21355 + ], + "referencedDeclaration": 21355, + "src": "5024:12:67", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", + "typeString": "contract IConsumerPriceOracle" + } + }, + "id": 21608, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "latestTimestamp", + "nodeType": "MemberAccess", + "referencedDeclaration": 22202, + "src": "5024:28:67", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", + "typeString": "function () view external returns (uint256)" + } + }, + "id": 21609, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5024:30:67", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5003:51:67" + }, + { + "expression": { + "argumentTypes": null, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 21613, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 21611, + "name": "timestampA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21600, + "src": "5066:10:67", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "id": 21612, + "name": "timestampB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21606, + "src": "5079:10:67", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5066:23:67", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "argumentTypes": null, + "id": 21615, + "name": "timestampB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21606, + "src": "5105:10:67", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 21616, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "5066:49:67", + "trueExpression": { + "argumentTypes": null, + "id": 21614, + "name": "timestampA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21600, + "src": "5092:10:67", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 21598, + "id": 21617, + "nodeType": "Return", + "src": "5059:56:67" + } + ] + }, + "documentation": "@dev returns the timestamp of the last price update\n\t * @return timestamp", + "id": 21619, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "lastUpdateTime", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 21595, + "nodeType": "ParameterList", + "parameters": [], + "src": "4861:2:67" + }, + "payable": false, + "returnParameters": { + "id": 21598, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 21597, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 21619, + "src": "4885:7:67", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 21596, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4885:7:67", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4884:9:67" + }, + "scope": 21668, + "src": "4838:281:67", + "stateMutability": "view", + "superFunction": 22267, + "visibility": "public" + }, + { + "body": { + "id": 21647, + "nodeType": "Block", + "src": "5594:133:67", + "statements": [ + { + "assignments": [ + 21633, + 21635 + ], + "declarations": [ + { + "constant": false, + "id": 21633, + "name": "numerator", + "nodeType": "VariableDeclaration", + "scope": 21648, + "src": "5599:17:67", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 21632, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5599:7:67", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 21635, + "name": "denominator", + "nodeType": "VariableDeclaration", + "scope": 21648, + "src": "5618:19:67", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 21634, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5618:7:67", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 21640, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 21637, + "name": "_tokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21621, + "src": "5652:7:67", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + { + "argumentTypes": null, + "id": 21638, + "name": "_tokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21623, + "src": "5661:7:67", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + ], + "id": 21636, + "name": "latestRate", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 21594 + ], + "referencedDeclaration": 21594, + "src": "5641:10:67", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_contract$_IERC20Token_$20240_$_t_contract$_IERC20Token_$20240_$returns$_t_uint256_$_t_uint256_$", + "typeString": "function (contract IERC20Token,contract IERC20Token) view returns (uint256,uint256)" + } + }, + "id": 21639, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5641:28:67", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5598:71:67" + }, + { + "expression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "id": 21641, + "name": "numerator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21633, + "src": "5682:9:67", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 21642, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21635, + "src": "5693:11:67", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 21643, + "name": "lastUpdateTime", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 21619 + ], + "referencedDeclaration": 21619, + "src": "5706:14:67", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 21644, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5706:16:67", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 21645, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "5681:42:67", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256,uint256)" + } + }, + "functionReturnParameters": 21631, + "id": 21646, + "nodeType": "Return", + "src": "5674:49:67" + } + ] + }, + "documentation": "@dev returns both the rate and the timestamp of the last update in a single call (gas optimization)\n\t * @param _tokenA token to get the rate of 1 unit of\n@param _tokenB token to get the rate of 1 `_tokenA` against\n\t * @return numerator\n@return denominator\n@return timestamp of the last update", + "id": 21648, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "latestRateAndUpdateTime", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 21624, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 21621, + "name": "_tokenA", + "nodeType": "VariableDeclaration", + "scope": 21648, + "src": "5484:19:67", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + "typeName": { + "contractScope": null, + "id": 21620, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "5484:11:67", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 21623, + "name": "_tokenB", + "nodeType": "VariableDeclaration", + "scope": 21648, + "src": "5505:19:67", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + "typeName": { + "contractScope": null, + "id": 21622, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "5505:11:67", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5483:42:67" + }, + "payable": false, + "returnParameters": { + "id": 21631, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 21626, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 21648, + "src": "5557:7:67", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 21625, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5557:7:67", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 21628, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 21648, + "src": "5569:7:67", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 21627, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5569:7:67", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 21630, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 21648, + "src": "5581:7:67", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 21629, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5581:7:67", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5552:40:67" + }, + "scope": 21668, + "src": "5451:276:67", + "stateMutability": "view", + "superFunction": 22280, + "visibility": "public" + }, + { + "body": { + "id": 21666, + "nodeType": "Block", + "src": "5848:92:67", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 21657, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 21655, + "name": "_token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21650, + "src": "5856:6:67", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 21656, + "name": "ETH_ADDRESS", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21340, + "src": "5866:11:67", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "5856:21:67", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 21661, + "nodeType": "IfStatement", + "src": "5852:56:67", + "trueBody": { + "id": 21660, + "nodeType": "Block", + "src": "5879:29:67", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 21658, + "name": "ETH_DECIMALS", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21343, + "src": "5891:12:67", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "functionReturnParameters": 21654, + "id": 21659, + "nodeType": "Return", + "src": "5884:19:67" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 21662, + "name": "_token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21650, + "src": "5919:6:67", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "id": 21663, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "decimals", + "nodeType": "MemberAccess", + "referencedDeclaration": 20174, + "src": "5919:15:67", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint8_$", + "typeString": "function () view external returns (uint8)" + } + }, + "id": 21664, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5919:17:67", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "functionReturnParameters": 21654, + "id": 21665, + "nodeType": "Return", + "src": "5912:24:67" + } + ] + }, + "documentation": "@dev returns the decimals of a given token ", + "id": 21667, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "decimals", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 21651, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 21650, + "name": "_token", + "nodeType": "VariableDeclaration", + "scope": 21667, + "src": "5799:18:67", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + "typeName": { + "contractScope": null, + "id": 21649, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "5799:11:67", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5798:20:67" + }, + "payable": false, + "returnParameters": { + "id": 21654, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 21653, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 21667, + "src": "5841:5:67", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 21652, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "5841:5:67", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5840:7:67" + }, + "scope": 21668, + "src": "5781:159:67", + "stateMutability": "view", + "superFunction": null, + "visibility": "private" + } + ], + "scope": 21669, + "src": "450:5492:67" + } + ], + "src": "0:5943:67" + }, + "id": 67 + }, + "solidity/contracts/utility/ReentrancyGuard.sol": { + "ast": { + "absolutePath": "solidity/contracts/utility/ReentrancyGuard.sol", + "exportedSymbols": { + "ReentrancyGuard": [ + 21710 + ] + }, + "id": 21711, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 21670, + "literals": [ + "solidity", + "0.4", + ".26" + ], + "nodeType": "PragmaDirective", + "src": "0:23:68" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": "@dev ReentrancyGuard\n * The contract provides protection against re-entrancy - calling a function (directly or\nindirectly) from within itself.", + "fullyImplemented": true, + "id": 21710, + "linearizedBaseContracts": [ + 21710 + ], + "name": "ReentrancyGuard", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "id": 21673, + "name": "UNLOCKED", + "nodeType": "VariableDeclaration", + "scope": 21710, + "src": "213:37:68", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 21671, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "213:7:68", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "31", + "id": 21672, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "249:1:68", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "visibility": "private" + }, + { + "constant": true, + "id": 21676, + "name": "LOCKED", + "nodeType": "VariableDeclaration", + "scope": 21710, + "src": "253:35:68", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 21674, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "253:7:68", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "32", + "id": 21675, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "287:1:68", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "visibility": "private" + }, + { + "constant": false, + "id": 21679, + "name": "state", + "nodeType": "VariableDeclaration", + "scope": 21710, + "src": "362:32:68", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 21677, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "362:7:68", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "argumentTypes": null, + "id": 21678, + "name": "UNLOCKED", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21673, + "src": "386:8:68", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "private" + }, + { + "body": { + "id": 21682, + "nodeType": "Block", + "src": "484:2:68", + "statements": [] + }, + "documentation": "@dev ensures instantiation only by sub-contracts", + "id": 21683, + "implemented": true, + "isConstructor": true, + "isDeclaredConst": false, + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 21680, + "nodeType": "ParameterList", + "parameters": [], + "src": "472:2:68" + }, + "payable": false, + "returnParameters": { + "id": 21681, + "nodeType": "ParameterList", + "parameters": [], + "src": "484:0:68" + }, + "scope": 21710, + "src": "461:25:68", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 21697, + "nodeType": "Block", + "src": "561:63:68", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 21685, + "name": "_protected", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21709, + "src": "565:10:68", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$__$", + "typeString": "function () view" + } + }, + "id": 21686, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "565:12:68", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 21687, + "nodeType": "ExpressionStatement", + "src": "565:12:68" + }, + { + "expression": { + "argumentTypes": null, + "id": 21690, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 21688, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21679, + "src": "581:5:68", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 21689, + "name": "LOCKED", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21676, + "src": "589:6:68", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "581:14:68", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 21691, + "nodeType": "ExpressionStatement", + "src": "581:14:68" + }, + { + "id": 21692, + "nodeType": "PlaceholderStatement", + "src": "599:1:68" + }, + { + "expression": { + "argumentTypes": null, + "id": 21695, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 21693, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21679, + "src": "604:5:68", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 21694, + "name": "UNLOCKED", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21673, + "src": "612:8:68", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "604:16:68", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 21696, + "nodeType": "ExpressionStatement", + "src": "604:16:68" + } + ] + }, + "documentation": null, + "id": 21698, + "name": "protected", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 21684, + "nodeType": "ParameterList", + "parameters": [], + "src": "558:2:68" + }, + "src": "540:84:68", + "visibility": "internal" + }, + { + "body": { + "id": 21708, + "nodeType": "Block", + "src": "706:52:68", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 21704, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 21702, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21679, + "src": "718:5:68", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 21703, + "name": "UNLOCKED", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21673, + "src": "727:8:68", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "718:17:68", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4552525f5245454e5452414e4359", + "id": 21705, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "737:16:68", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_6e0eaf77891cd79d274f1446031427d8091629657fef0bd3d01a673469e9b08c", + "typeString": "literal_string \"ERR_REENTRANCY\"" + }, + "value": "ERR_REENTRANCY" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_6e0eaf77891cd79d274f1446031427d8091629657fef0bd3d01a673469e9b08c", + "typeString": "literal_string \"ERR_REENTRANCY\"" + } + ], + "id": 21701, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 22341, + 22342 + ], + "referencedDeclaration": 22342, + "src": "710:7:68", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 21706, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "710:44:68", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 21707, + "nodeType": "ExpressionStatement", + "src": "710:44:68" + } + ] + }, + "documentation": null, + "id": 21709, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "_protected", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 21699, + "nodeType": "ParameterList", + "parameters": [], + "src": "689:2:68" + }, + "payable": false, + "returnParameters": { + "id": 21700, + "nodeType": "ParameterList", + "parameters": [], + "src": "706:0:68" + }, + "scope": 21710, + "src": "670:88:68", + "stateMutability": "view", + "superFunction": null, + "visibility": "internal" + } + ], + "scope": 21711, + "src": "185:575:68" + } + ], + "src": "0:761:68" + }, + "id": 68 + }, + "solidity/contracts/utility/SafeMath.sol": { + "ast": { + "absolutePath": "solidity/contracts/utility/SafeMath.sol", + "exportedSymbols": { + "SafeMath": [ + 21817 + ] + }, + "id": 21818, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 21712, + "literals": [ + "solidity", + "0.4", + ".26" + ], + "nodeType": "PragmaDirective", + "src": "0:23:69" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": "@dev Library for basic math operations with overflow/underflow protection", + "fullyImplemented": true, + "id": 21817, + "linearizedBaseContracts": [ + 21817 + ], + "name": "SafeMath", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 21736, + "nodeType": "Block", + "src": "357:75:69", + "statements": [ + { + "assignments": [ + 21722 + ], + "declarations": [ + { + "constant": false, + "id": 21722, + "name": "z", + "nodeType": "VariableDeclaration", + "scope": 21737, + "src": "361:9:69", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 21721, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "361:7:69", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 21726, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 21725, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 21723, + "name": "_x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21714, + "src": "373:2:69", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "id": 21724, + "name": "_y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21716, + "src": "378:2:69", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "373:7:69", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "361:19:69" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 21730, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 21728, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21722, + "src": "392:1:69", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 21729, + "name": "_x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21714, + "src": "397:2:69", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "392:7:69", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4552525f4f564552464c4f57", + "id": 21731, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "401:14:69", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_5857855e77a7ad10ccf8b5bcb17297771c10c957a1c88a434eb5a16fc4dad486", + "typeString": "literal_string \"ERR_OVERFLOW\"" + }, + "value": "ERR_OVERFLOW" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_5857855e77a7ad10ccf8b5bcb17297771c10c957a1c88a434eb5a16fc4dad486", + "typeString": "literal_string \"ERR_OVERFLOW\"" + } + ], + "id": 21727, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 22341, + 22342 + ], + "referencedDeclaration": 22342, + "src": "384:7:69", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 21732, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "384:32:69", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 21733, + "nodeType": "ExpressionStatement", + "src": "384:32:69" + }, + { + "expression": { + "argumentTypes": null, + "id": 21734, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21722, + "src": "427:1:69", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 21720, + "id": 21735, + "nodeType": "Return", + "src": "420:8:69" + } + ] + }, + "documentation": "@dev returns the sum of _x and _y, reverts if the calculation overflows\n\t * @param _x value 1\n@param _y value 2\n\t * @return sum", + "id": 21737, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "add", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 21717, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 21714, + "name": "_x", + "nodeType": "VariableDeclaration", + "scope": 21737, + "src": "301:10:69", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 21713, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "301:7:69", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 21716, + "name": "_y", + "nodeType": "VariableDeclaration", + "scope": 21737, + "src": "313:10:69", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 21715, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "313:7:69", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "300:24:69" + }, + "payable": false, + "returnParameters": { + "id": 21720, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 21719, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 21737, + "src": "348:7:69", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 21718, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "348:7:69", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "347:9:69" + }, + "scope": 21817, + "src": "288:144:69", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 21757, + "nodeType": "Block", + "src": "682:60:69", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 21749, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 21747, + "name": "_x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21739, + "src": "694:2:69", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 21748, + "name": "_y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21741, + "src": "700:2:69", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "694:8:69", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4552525f554e444552464c4f57", + "id": 21750, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "704:15:69", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_ddfa1b728b94871fcaf7b3731a21cfe44f7a2b4b84261190a1aa6f6b13e2a1f4", + "typeString": "literal_string \"ERR_UNDERFLOW\"" + }, + "value": "ERR_UNDERFLOW" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_ddfa1b728b94871fcaf7b3731a21cfe44f7a2b4b84261190a1aa6f6b13e2a1f4", + "typeString": "literal_string \"ERR_UNDERFLOW\"" + } + ], + "id": 21746, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 22341, + 22342 + ], + "referencedDeclaration": 22342, + "src": "686:7:69", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 21751, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "686:34:69", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 21752, + "nodeType": "ExpressionStatement", + "src": "686:34:69" + }, + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 21755, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 21753, + "name": "_x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21739, + "src": "731:2:69", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 21754, + "name": "_y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21741, + "src": "736:2:69", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "731:7:69", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 21745, + "id": 21756, + "nodeType": "Return", + "src": "724:14:69" + } + ] + }, + "documentation": "@dev returns the difference of _x minus _y, reverts if the calculation underflows\n\t * @param _x minuend\n@param _y subtrahend\n\t * @return difference", + "id": 21758, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "sub", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 21742, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 21739, + "name": "_x", + "nodeType": "VariableDeclaration", + "scope": 21758, + "src": "626:10:69", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 21738, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "626:7:69", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 21741, + "name": "_y", + "nodeType": "VariableDeclaration", + "scope": 21758, + "src": "638:10:69", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 21740, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "638:7:69", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "625:24:69" + }, + "payable": false, + "returnParameters": { + "id": 21745, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 21744, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 21758, + "src": "673:7:69", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 21743, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "673:7:69", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "672:9:69" + }, + "scope": 21817, + "src": "613:129:69", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 21790, + "nodeType": "Block", + "src": "993:128:69", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 21769, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 21767, + "name": "_x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21760, + "src": "1023:2:69", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 21768, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1029:1:69", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1023:7:69", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 21772, + "nodeType": "IfStatement", + "src": "1019:21:69", + "trueBody": { + "expression": { + "argumentTypes": null, + "hexValue": "30", + "id": 21770, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1039:1:69", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "functionReturnParameters": 21766, + "id": 21771, + "nodeType": "Return", + "src": "1032:8:69" + } + }, + { + "assignments": [ + 21774 + ], + "declarations": [ + { + "constant": false, + "id": 21774, + "name": "z", + "nodeType": "VariableDeclaration", + "scope": 21791, + "src": "1045:9:69", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 21773, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1045:7:69", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 21778, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 21777, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 21775, + "name": "_x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21760, + "src": "1057:2:69", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 21776, + "name": "_y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21762, + "src": "1062:2:69", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1057:7:69", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1045:19:69" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 21784, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 21782, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 21780, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21774, + "src": "1076:1:69", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 21781, + "name": "_x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21760, + "src": "1080:2:69", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1076:6:69", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 21783, + "name": "_y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21762, + "src": "1086:2:69", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1076:12:69", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4552525f4f564552464c4f57", + "id": 21785, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1090:14:69", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_5857855e77a7ad10ccf8b5bcb17297771c10c957a1c88a434eb5a16fc4dad486", + "typeString": "literal_string \"ERR_OVERFLOW\"" + }, + "value": "ERR_OVERFLOW" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_5857855e77a7ad10ccf8b5bcb17297771c10c957a1c88a434eb5a16fc4dad486", + "typeString": "literal_string \"ERR_OVERFLOW\"" + } + ], + "id": 21779, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 22341, + 22342 + ], + "referencedDeclaration": 22342, + "src": "1068:7:69", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 21786, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1068:37:69", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 21787, + "nodeType": "ExpressionStatement", + "src": "1068:37:69" + }, + { + "expression": { + "argumentTypes": null, + "id": 21788, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21774, + "src": "1116:1:69", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 21766, + "id": 21789, + "nodeType": "Return", + "src": "1109:8:69" + } + ] + }, + "documentation": "@dev returns the product of multiplying _x by _y, reverts if the calculation overflows\n\t * @param _x factor 1\n@param _y factor 2\n\t * @return product", + "id": 21791, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "mul", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 21763, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 21760, + "name": "_x", + "nodeType": "VariableDeclaration", + "scope": 21791, + "src": "937:10:69", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 21759, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "937:7:69", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 21762, + "name": "_y", + "nodeType": "VariableDeclaration", + "scope": 21791, + "src": "949:10:69", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 21761, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "949:7:69", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "936:24:69" + }, + "payable": false, + "returnParameters": { + "id": 21766, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 21765, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 21791, + "src": "984:7:69", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 21764, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "984:7:69", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "983:9:69" + }, + "scope": 21817, + "src": "924:197:69", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 21815, + "nodeType": "Block", + "src": "1376:80:69", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 21803, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 21801, + "name": "_y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21795, + "src": "1388:2:69", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 21802, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1393:1:69", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1388:6:69", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4552525f4449564944455f42595f5a45524f", + "id": 21804, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1396:20:69", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_80c66eaebdd007de3c36bb5849ffa95e14b2130dc26a35fe1154627fc9dd838e", + "typeString": "literal_string \"ERR_DIVIDE_BY_ZERO\"" + }, + "value": "ERR_DIVIDE_BY_ZERO" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_80c66eaebdd007de3c36bb5849ffa95e14b2130dc26a35fe1154627fc9dd838e", + "typeString": "literal_string \"ERR_DIVIDE_BY_ZERO\"" + } + ], + "id": 21800, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 22341, + 22342 + ], + "referencedDeclaration": 22342, + "src": "1380:7:69", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 21805, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1380:37:69", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 21806, + "nodeType": "ExpressionStatement", + "src": "1380:37:69" + }, + { + "assignments": [ + 21808 + ], + "declarations": [ + { + "constant": false, + "id": 21808, + "name": "c", + "nodeType": "VariableDeclaration", + "scope": 21816, + "src": "1421:9:69", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 21807, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1421:7:69", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 21812, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 21811, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 21809, + "name": "_x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21793, + "src": "1433:2:69", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 21810, + "name": "_y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21795, + "src": "1438:2:69", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1433:7:69", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1421:19:69" + }, + { + "expression": { + "argumentTypes": null, + "id": 21813, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21808, + "src": "1451:1:69", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 21799, + "id": 21814, + "nodeType": "Return", + "src": "1444:8:69" + } + ] + }, + "documentation": "@dev Integer division of two numbers truncating the quotient, reverts on division by zero.\n\t * @param _x dividend\n@param _y divisor\n\t * @return quotient", + "id": 21816, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "div", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 21796, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 21793, + "name": "_x", + "nodeType": "VariableDeclaration", + "scope": 21816, + "src": "1320:10:69", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 21792, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1320:7:69", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 21795, + "name": "_y", + "nodeType": "VariableDeclaration", + "scope": 21816, + "src": "1332:10:69", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 21794, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1332:7:69", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1319:24:69" + }, + "payable": false, + "returnParameters": { + "id": 21799, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 21798, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 21816, + "src": "1367:7:69", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 21797, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1367:7:69", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1366:9:69" + }, + "scope": 21817, + "src": "1307:149:69", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + } + ], + "scope": 21818, + "src": "110:1348:69" + } + ], + "src": "0:1459:69" + }, + "id": 69 + }, + "solidity/contracts/utility/TokenHandler.sol": { + "ast": { + "absolutePath": "solidity/contracts/utility/TokenHandler.sol", + "exportedSymbols": { + "TokenHandler": [ + 21933 + ] + }, + "id": 21934, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 21819, + "literals": [ + "solidity", + "0.4", + ".26" + ], + "nodeType": "PragmaDirective", + "src": "0:23:70" + }, + { + "absolutePath": "solidity/contracts/token/interfaces/IERC20Token.sol", + "file": "../token/interfaces/IERC20Token.sol", + "id": 21820, + "nodeType": "ImportDirective", + "scope": 21934, + "sourceUnit": 20241, + "src": "24:45:70", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 21933, + "linearizedBaseContracts": [ + 21933 + ], + "name": "TokenHandler", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "id": 21827, + "name": "APPROVE_FUNC_SELECTOR", + "nodeType": "VariableDeclaration", + "scope": 21933, + "src": "96:93:70", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 21821, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "96:6:70", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "617070726f766528616464726573732c75696e7432353629", + "id": 21824, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "161:26:70", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_095ea7b334ae44009aa867bfb386f5c3b4b443ac6f0ee573fa91c4608fbadfba", + "typeString": "literal_string \"approve(address,uint256)\"" + }, + "value": "approve(address,uint256)" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_095ea7b334ae44009aa867bfb386f5c3b4b443ac6f0ee573fa91c4608fbadfba", + "typeString": "literal_string \"approve(address,uint256)\"" + } + ], + "id": 21823, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22332, + "src": "151:9:70", + "typeDescriptions": { + "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", + "typeString": "function () pure returns (bytes32)" + } + }, + "id": 21825, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "151:37:70", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 21822, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "144:6:70", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes4_$", + "typeString": "type(bytes4)" + }, + "typeName": "bytes4" + }, + "id": 21826, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "144:45:70", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "private" + }, + { + "constant": true, + "id": 21834, + "name": "TRANSFER_FUNC_SELECTOR", + "nodeType": "VariableDeclaration", + "scope": 21933, + "src": "192:95:70", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 21828, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "192:6:70", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "7472616e7366657228616464726573732c75696e7432353629", + "id": 21831, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "258:27:70", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_a9059cbb2ab09eb219583f4a59a5d0623ade346d962bcd4e46b11da047c9049b", + "typeString": "literal_string \"transfer(address,uint256)\"" + }, + "value": "transfer(address,uint256)" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_a9059cbb2ab09eb219583f4a59a5d0623ade346d962bcd4e46b11da047c9049b", + "typeString": "literal_string \"transfer(address,uint256)\"" + } + ], + "id": 21830, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22332, + "src": "248:9:70", + "typeDescriptions": { + "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", + "typeString": "function () pure returns (bytes32)" + } + }, + "id": 21832, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "248:38:70", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 21829, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "241:6:70", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes4_$", + "typeString": "type(bytes4)" + }, + "typeName": "bytes4" + }, + "id": 21833, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "241:46:70", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "private" + }, + { + "constant": true, + "id": 21841, + "name": "TRANSFER_FROM_FUNC_SELECTOR", + "nodeType": "VariableDeclaration", + "scope": 21933, + "src": "290:112:70", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 21835, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "290:6:70", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "7472616e7366657246726f6d28616464726573732c616464726573732c75696e7432353629", + "id": 21838, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "361:39:70", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_23b872dd7302113369cda2901243429419bec145408fa8b352b3dd92b66c680b", + "typeString": "literal_string \"transferFrom(address,address,uint256)\"" + }, + "value": "transferFrom(address,address,uint256)" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_23b872dd7302113369cda2901243429419bec145408fa8b352b3dd92b66c680b", + "typeString": "literal_string \"transferFrom(address,address,uint256)\"" + } + ], + "id": 21837, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22332, + "src": "351:9:70", + "typeDescriptions": { + "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", + "typeString": "function () pure returns (bytes32)" + } + }, + "id": 21839, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "351:50:70", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 21836, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "344:6:70", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes4_$", + "typeString": "type(bytes4)" + }, + "typeName": "bytes4" + }, + "id": 21840, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "344:58:70", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "private" + }, + { + "body": { + "id": 21860, + "nodeType": "Block", + "src": "812:88:70", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 21851, + "name": "_token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21843, + "src": "824:6:70", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 21854, + "name": "APPROVE_FUNC_SELECTOR", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21827, + "src": "855:21:70", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + { + "argumentTypes": null, + "id": 21855, + "name": "_spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21845, + "src": "878:8:70", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 21856, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21847, + "src": "888:6:70", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 21852, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22325, + "src": "832:3:70", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 21853, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encodeWithSelector", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "832:22:70", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (bytes4) pure returns (bytes memory)" + } + }, + "id": 21857, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "832:63:70", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 21850, + "name": "execute", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21932, + "src": "816:7:70", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20Token_$20240_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (contract IERC20Token,bytes memory)" + } + }, + "id": 21858, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "816:80:70", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 21859, + "nodeType": "ExpressionStatement", + "src": "816:80:70" + } + ] + }, + "documentation": "@dev executes the ERC20 token's `approve` function and reverts upon failure\nthe main purpose of this function is to prevent a non standard ERC20 token\nfrom failing silently\n\t * @param _token ERC20 token address\n@param _spender approved address\n@param _value allowance amount", + "id": 21861, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "safeApprove", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 21848, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 21843, + "name": "_token", + "nodeType": "VariableDeclaration", + "scope": 21861, + "src": "743:18:70", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + "typeName": { + "contractScope": null, + "id": 21842, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "743:11:70", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 21845, + "name": "_spender", + "nodeType": "VariableDeclaration", + "scope": 21861, + "src": "765:16:70", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 21844, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "765:7:70", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 21847, + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 21861, + "src": "785:14:70", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 21846, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "785:7:70", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "739:63:70" + }, + "payable": false, + "returnParameters": { + "id": 21849, + "nodeType": "ParameterList", + "parameters": [], + "src": "812:0:70" + }, + "scope": 21933, + "src": "719:181:70", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 21880, + "nodeType": "Block", + "src": "1303:84:70", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 21871, + "name": "_token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21863, + "src": "1315:6:70", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 21874, + "name": "TRANSFER_FUNC_SELECTOR", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21834, + "src": "1346:22:70", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + { + "argumentTypes": null, + "id": 21875, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21865, + "src": "1370:3:70", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 21876, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21867, + "src": "1375:6:70", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 21872, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22325, + "src": "1323:3:70", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 21873, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encodeWithSelector", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1323:22:70", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (bytes4) pure returns (bytes memory)" + } + }, + "id": 21877, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1323:59:70", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 21870, + "name": "execute", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21932, + "src": "1307:7:70", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20Token_$20240_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (contract IERC20Token,bytes memory)" + } + }, + "id": 21878, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1307:76:70", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 21879, + "nodeType": "ExpressionStatement", + "src": "1307:76:70" + } + ] + }, + "documentation": "@dev executes the ERC20 token's `transfer` function and reverts upon failure\nthe main purpose of this function is to prevent a non standard ERC20 token\nfrom failing silently\n\t * @param _token ERC20 token address\n@param _to target address\n@param _value transfer amount", + "id": 21881, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "safeTransfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 21868, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 21863, + "name": "_token", + "nodeType": "VariableDeclaration", + "scope": 21881, + "src": "1239:18:70", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + "typeName": { + "contractScope": null, + "id": 21862, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "1239:11:70", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 21865, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 21881, + "src": "1261:11:70", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 21864, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1261:7:70", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 21867, + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 21881, + "src": "1276:14:70", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 21866, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1276:7:70", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1235:58:70" + }, + "payable": false, + "returnParameters": { + "id": 21869, + "nodeType": "ParameterList", + "parameters": [], + "src": "1303:0:70" + }, + "scope": 21933, + "src": "1214:173:70", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 21903, + "nodeType": "Block", + "src": "1850:96:70", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 21893, + "name": "_token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21883, + "src": "1862:6:70", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 21896, + "name": "TRANSFER_FROM_FUNC_SELECTOR", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21841, + "src": "1893:27:70", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + { + "argumentTypes": null, + "id": 21897, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21885, + "src": "1922:5:70", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 21898, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21887, + "src": "1929:3:70", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 21899, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21889, + "src": "1934:6:70", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 21894, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22325, + "src": "1870:3:70", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 21895, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encodeWithSelector", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1870:22:70", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (bytes4) pure returns (bytes memory)" + } + }, + "id": 21900, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1870:71:70", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 21892, + "name": "execute", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21932, + "src": "1854:7:70", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20Token_$20240_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (contract IERC20Token,bytes memory)" + } + }, + "id": 21901, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1854:88:70", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 21902, + "nodeType": "ExpressionStatement", + "src": "1854:88:70" + } + ] + }, + "documentation": "@dev executes the ERC20 token's `transferFrom` function and reverts upon failure\nthe main purpose of this function is to prevent a non standard ERC20 token\nfrom failing silently\n\t * @param _token ERC20 token address\n@param _from source address\n@param _to target address\n@param _value transfer amount", + "id": 21904, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "safeTransferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 21890, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 21883, + "name": "_token", + "nodeType": "VariableDeclaration", + "scope": 21904, + "src": "1769:18:70", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + "typeName": { + "contractScope": null, + "id": 21882, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "1769:11:70", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 21885, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 21904, + "src": "1791:13:70", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 21884, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1791:7:70", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 21887, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 21904, + "src": "1808:11:70", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 21886, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1808:7:70", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 21889, + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 21904, + "src": "1823:14:70", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 21888, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1823:7:70", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1765:75:70" + }, + "payable": false, + "returnParameters": { + "id": 21891, + "nodeType": "ParameterList", + "parameters": [], + "src": "1850:0:70" + }, + "scope": 21933, + "src": "1740:206:70", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 21931, + "nodeType": "Block", + "src": "2320:492:70", + "statements": [ + { + "assignments": [ + 21915 + ], + "declarations": [ + { + "constant": false, + "id": 21915, + "name": "ret", + "nodeType": "VariableDeclaration", + "scope": 21932, + "src": "2324:21:70", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$1_memory_ptr", + "typeString": "uint256[1]" + }, + "typeName": { + "baseType": { + "id": 21913, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2324:7:70", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 21914, + "length": { + "argumentTypes": null, + "hexValue": "31", + "id": 21912, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2332:1:70", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + }, + "value": "1" + }, + "nodeType": "ArrayTypeName", + "src": "2324:10:70", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$1_storage_ptr", + "typeString": "uint256[1]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 21920, + "initialValue": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "31", + "id": 21917, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2357:1:70", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + } + ], + "id": 21916, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2349:7:70", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": "uint256" + }, + "id": 21918, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2349:10:70", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 21919, + "isConstant": false, + "isInlineArray": true, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "2348:12:70", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$1_memory_ptr", + "typeString": "uint256[1] memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2324:36:70" + }, + { + "externalReferences": [ + { + "_data": { + "declaration": 21908, + "isOffset": false, + "isSlot": false, + "src": "2580:5:70", + "valueSize": 1 + } + }, + { + "_data": { + "declaration": 21908, + "isOffset": false, + "isSlot": false, + "src": "2488:5:70", + "valueSize": 1 + } + }, + { + "_token": { + "declaration": 21906, + "isOffset": false, + "isSlot": false, + "src": "2430:6:70", + "valueSize": 1 + } + }, + { + "ret": { + "declaration": 21915, + "isOffset": false, + "isSlot": false, + "src": "2661:3:70", + "valueSize": 1 + } + } + ], + "id": 21921, + "nodeType": "InlineAssembly", + "operations": "{\n let success := call(gas(), _token, 0, add(_data, 32), mload(_data), ret, 32)\n if iszero(success)\n {\n revert(0, 0)\n }\n}", + "src": "2365:407:70" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 21927, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 21923, + "name": "ret", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21915, + "src": "2773:3:70", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$1_memory_ptr", + "typeString": "uint256[1] memory" + } + }, + "id": 21925, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 21924, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2777:1:70", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2773:6:70", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 21926, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2783:1:70", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "2773:11:70", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4552525f5452414e534645525f4641494c4544", + "id": 21928, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2786:21:70", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c9252e500ac7052178e0516284a4bfdb9c18736079c4cc7803b8d1294a8fb98c", + "typeString": "literal_string \"ERR_TRANSFER_FAILED\"" + }, + "value": "ERR_TRANSFER_FAILED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c9252e500ac7052178e0516284a4bfdb9c18736079c4cc7803b8d1294a8fb98c", + "typeString": "literal_string \"ERR_TRANSFER_FAILED\"" + } + ], + "id": 21922, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 22341, + 22342 + ], + "referencedDeclaration": 22342, + "src": "2765:7:70", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 21929, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2765:43:70", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 21930, + "nodeType": "ExpressionStatement", + "src": "2765:43:70" + } + ] + }, + "documentation": "@dev executes a function on the ERC20 token and reverts upon failure\nthe main purpose of this function is to prevent a non standard ERC20 token\nfrom failing silently\n\t * @param _token ERC20 token address\n@param _data data to pass in to the token's contract for execution", + "id": 21932, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "execute", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 21909, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 21906, + "name": "_token", + "nodeType": "VariableDeclaration", + "scope": 21932, + "src": "2272:18:70", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + "typeName": { + "contractScope": null, + "id": 21905, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "2272:11:70", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 21908, + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 21932, + "src": "2292:18:70", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 21907, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "2292:5:70", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2271:40:70" + }, + "payable": false, + "returnParameters": { + "id": 21910, + "nodeType": "ParameterList", + "parameters": [], + "src": "2320:0:70" + }, + "scope": 21933, + "src": "2255:557:70", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "private" + } + ], + "scope": 21934, + "src": "71:2743:70" + } + ], + "src": "0:2815:70" + }, + "id": 70 + }, + "solidity/contracts/utility/TokenHolder.sol": { + "ast": { + "absolutePath": "solidity/contracts/utility/TokenHolder.sol", + "exportedSymbols": { + "TokenHolder": [ + 21976 + ] + }, + "id": 21977, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 21935, + "literals": [ + "solidity", + "0.4", + ".26" + ], + "nodeType": "PragmaDirective", + "src": "0:23:71" + }, + { + "absolutePath": "solidity/contracts/utility/Owned.sol", + "file": "./Owned.sol", + "id": 21936, + "nodeType": "ImportDirective", + "scope": 21977, + "sourceUnit": 21325, + "src": "24:21:71", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "solidity/contracts/utility/Utils.sol", + "file": "./Utils.sol", + "id": 21937, + "nodeType": "ImportDirective", + "scope": 21977, + "sourceUnit": 22053, + "src": "46:21:71", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "solidity/contracts/utility/TokenHandler.sol", + "file": "./TokenHandler.sol", + "id": 21938, + "nodeType": "ImportDirective", + "scope": 21977, + "sourceUnit": 21934, + "src": "68:28:71", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "solidity/contracts/utility/interfaces/ITokenHolder.sol", + "file": "./interfaces/ITokenHolder.sol", + "id": 21939, + "nodeType": "ImportDirective", + "scope": 21977, + "sourceUnit": 22314, + "src": "97:39:71", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "solidity/contracts/token/interfaces/IERC20Token.sol", + "file": "../token/interfaces/IERC20Token.sol", + "id": 21940, + "nodeType": "ImportDirective", + "scope": 21977, + "sourceUnit": 20241, + "src": "137:45:71", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 21941, + "name": "ITokenHolder", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 22313, + "src": "765:12:71", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ITokenHolder_$22313", + "typeString": "contract ITokenHolder" + } + }, + "id": 21942, + "nodeType": "InheritanceSpecifier", + "src": "765:12:71" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 21943, + "name": "TokenHandler", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 21933, + "src": "779:12:71", + "typeDescriptions": { + "typeIdentifier": "t_contract$_TokenHandler_$21933", + "typeString": "contract TokenHandler" + } + }, + "id": 21944, + "nodeType": "InheritanceSpecifier", + "src": "779:12:71" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 21945, + "name": "Owned", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 21324, + "src": "793:5:71", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Owned_$21324", + "typeString": "contract Owned" + } + }, + "id": 21946, + "nodeType": "InheritanceSpecifier", + "src": "793:5:71" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 21947, + "name": "Utils", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 22052, + "src": "800:5:71", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Utils_$22052", + "typeString": "contract Utils" + } + }, + "id": 21948, + "nodeType": "InheritanceSpecifier", + "src": "800:5:71" + } + ], + "contractDependencies": [ + 21324, + 21933, + 22052, + 22247, + 22313 + ], + "contractKind": "contract", + "documentation": "@dev We consider every contract to be a 'token holder' since it's currently not possible\nfor a contract to deny receiving tokens.\n * The TokenHolder's contract sole purpose is to provide a safety mechanism that allows\nthe owner to send tokens that were sent to the contract by mistake back to their sender.\n * Note that we use the non standard ERC-20 interface which has no return value for transfer\nin order to support both non standard as well as standard token contracts.\nsee https://github.com/ethereum/solidity/issues/4116", + "fullyImplemented": true, + "id": 21976, + "linearizedBaseContracts": [ + 21976, + 22052, + 21324, + 21933, + 22313, + 22247 + ], + "name": "TokenHolder", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 21974, + "nodeType": "Block", + "src": "1229:42:71", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 21969, + "name": "_token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21950, + "src": "1246:6:71", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + { + "argumentTypes": null, + "id": 21970, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21952, + "src": "1254:3:71", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 21971, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21954, + "src": "1259:7:71", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 21968, + "name": "safeTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21881, + "src": "1233:12:71", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20Token_$20240_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (contract IERC20Token,address,uint256)" + } + }, + "id": 21972, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1233:34:71", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 21973, + "nodeType": "ExpressionStatement", + "src": "1233:34:71" + } + ] + }, + "documentation": "@dev withdraws tokens held by the contract and sends them to an account\ncan only be called by the owner\n\t * @param _token ERC20 token contract address\n@param _to account to receive the new amount\n@param _amount amount to withdraw", + "id": 21975, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 21957, + "modifierName": { + "argumentTypes": null, + "id": 21956, + "name": "ownerOnly", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21265, + "src": "1167:9:71", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "1167:9:71" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 21959, + "name": "_token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21950, + "src": "1190:6:71", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + } + ], + "id": 21960, + "modifierName": { + "argumentTypes": null, + "id": 21958, + "name": "validAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22011, + "src": "1177:12:71", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_address_$", + "typeString": "modifier (address)" + } + }, + "nodeType": "ModifierInvocation", + "src": "1177:20:71" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 21962, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21952, + "src": "1211:3:71", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 21963, + "modifierName": { + "argumentTypes": null, + "id": 21961, + "name": "validAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22011, + "src": "1198:12:71", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_address_$", + "typeString": "modifier (address)" + } + }, + "nodeType": "ModifierInvocation", + "src": "1198:17:71" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 21965, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21952, + "src": "1224:3:71", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 21966, + "modifierName": { + "argumentTypes": null, + "id": 21964, + "name": "notThis", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22036, + "src": "1216:7:71", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_address_$", + "typeString": "modifier (address)" + } + }, + "nodeType": "ModifierInvocation", + "src": "1216:12:71" + } + ], + "name": "withdrawTokens", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 21955, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 21950, + "name": "_token", + "nodeType": "VariableDeclaration", + "scope": 21975, + "src": "1104:18:71", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + "typeName": { + "contractScope": null, + "id": 21949, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "1104:11:71", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 21952, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 21975, + "src": "1126:11:71", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 21951, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1126:7:71", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 21954, + "name": "_amount", + "nodeType": "VariableDeclaration", + "scope": 21975, + "src": "1141:15:71", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 21953, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1141:7:71", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1100:59:71" + }, + "payable": false, + "returnParameters": { + "id": 21967, + "nodeType": "ParameterList", + "parameters": [], + "src": "1229:0:71" + }, + "scope": 21976, + "src": "1077:194:71", + "stateMutability": "nonpayable", + "superFunction": 22312, + "visibility": "public" + } + ], + "scope": 21977, + "src": "741:532:71" + } + ], + "src": "0:1274:71" + }, + "id": 71 + }, + "solidity/contracts/utility/Utils.sol": { + "ast": { + "absolutePath": "solidity/contracts/utility/Utils.sol", + "exportedSymbols": { + "Utils": [ + 22052 + ] + }, + "id": 22053, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 21978, + "literals": [ + "solidity", + "0.4", + ".26" + ], + "nodeType": "PragmaDirective", + "src": "0:23:72" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": "@dev Utilities & Common Modifiers", + "fullyImplemented": true, + "id": 22052, + "linearizedBaseContracts": [ + 22052 + ], + "name": "Utils", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 21987, + "nodeType": "Block", + "src": "176:37:72", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 21983, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21980, + "src": "197:6:72", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 21982, + "name": "_greaterThanZero", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22001, + "src": "180:16:72", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$__$", + "typeString": "function (uint256) pure" + } + }, + "id": 21984, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "180:24:72", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 21985, + "nodeType": "ExpressionStatement", + "src": "180:24:72" + }, + { + "id": 21986, + "nodeType": "PlaceholderStatement", + "src": "208:1:72" + } + ] + }, + "documentation": null, + "id": 21988, + "name": "greaterThanZero", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 21981, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 21980, + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 21988, + "src": "160:14:72", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 21979, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "160:7:72", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "159:16:72" + }, + "src": "135:78:72", + "visibility": "internal" + }, + { + "body": { + "id": 22000, + "nodeType": "Block", + "src": "315:45:72", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 21996, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 21994, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21990, + "src": "327:6:72", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 21995, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "336:1:72", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "327:10:72", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4552525f5a45524f5f56414c5545", + "id": 21997, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "339:16:72", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_6d867a5fb86a4ba31dbc28b32cea703c5633c272ff1c7db7eff591a6c9397723", + "typeString": "literal_string \"ERR_ZERO_VALUE\"" + }, + "value": "ERR_ZERO_VALUE" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_6d867a5fb86a4ba31dbc28b32cea703c5633c272ff1c7db7eff591a6c9397723", + "typeString": "literal_string \"ERR_ZERO_VALUE\"" + } + ], + "id": 21993, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 22341, + 22342 + ], + "referencedDeclaration": 22342, + "src": "319:7:72", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 21998, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "319:37:72", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 21999, + "nodeType": "ExpressionStatement", + "src": "319:37:72" + } + ] + }, + "documentation": null, + "id": 22001, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "_greaterThanZero", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 21991, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 21990, + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 22001, + "src": "285:14:72", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 21989, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "285:7:72", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "284:16:72" + }, + "payable": false, + "returnParameters": { + "id": 21992, + "nodeType": "ParameterList", + "parameters": [], + "src": "315:0:72" + }, + "scope": 22052, + "src": "259:101:72", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 22010, + "nodeType": "Block", + "src": "471:36:72", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 22006, + "name": "_address", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22003, + "src": "489:8:72", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 22005, + "name": "_validAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22026, + "src": "475:13:72", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_address_$returns$__$", + "typeString": "function (address) pure" + } + }, + "id": 22007, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "475:23:72", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 22008, + "nodeType": "ExpressionStatement", + "src": "475:23:72" + }, + { + "id": 22009, + "nodeType": "PlaceholderStatement", + "src": "502:1:72" + } + ] + }, + "documentation": null, + "id": 22011, + "name": "validAddress", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 22004, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 22003, + "name": "_address", + "nodeType": "VariableDeclaration", + "scope": 22011, + "src": "453:16:72", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 22002, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "453:7:72", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "452:18:72" + }, + "src": "431:76:72", + "visibility": "internal" + }, + { + "body": { + "id": 22025, + "nodeType": "Block", + "src": "608:62:72", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 22021, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 22017, + "name": "_address", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22013, + "src": "620:8:72", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 22019, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "640:1:72", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 22018, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "632:7:72", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 22020, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "632:10:72", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "620:22:72", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4552525f494e56414c49445f41444452455353", + "id": 22022, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "644:21:72", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_a7d3f5b8fcfdb9260fb71cc6af515e9b07a68a1202d1cb2f5a3f8f30449ddc07", + "typeString": "literal_string \"ERR_INVALID_ADDRESS\"" + }, + "value": "ERR_INVALID_ADDRESS" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_a7d3f5b8fcfdb9260fb71cc6af515e9b07a68a1202d1cb2f5a3f8f30449ddc07", + "typeString": "literal_string \"ERR_INVALID_ADDRESS\"" + } + ], + "id": 22016, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 22341, + 22342 + ], + "referencedDeclaration": 22342, + "src": "612:7:72", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 22023, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "612:54:72", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 22024, + "nodeType": "ExpressionStatement", + "src": "612:54:72" + } + ] + }, + "documentation": null, + "id": 22026, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "_validAddress", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 22014, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 22013, + "name": "_address", + "nodeType": "VariableDeclaration", + "scope": 22026, + "src": "576:16:72", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 22012, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "576:7:72", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "575:18:72" + }, + "payable": false, + "returnParameters": { + "id": 22015, + "nodeType": "ParameterList", + "parameters": [], + "src": "608:0:72" + }, + "scope": 22052, + "src": "553:117:72", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 22035, + "nodeType": "Block", + "src": "778:31:72", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 22031, + "name": "_address", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22028, + "src": "791:8:72", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 22030, + "name": "_notThis", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22051, + "src": "782:8:72", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$__$", + "typeString": "function (address) view" + } + }, + "id": 22032, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "782:18:72", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 22033, + "nodeType": "ExpressionStatement", + "src": "782:18:72" + }, + { + "id": 22034, + "nodeType": "PlaceholderStatement", + "src": "804:1:72" + } + ] + }, + "documentation": null, + "id": 22036, + "name": "notThis", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 22029, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 22028, + "name": "_address", + "nodeType": "VariableDeclaration", + "scope": 22036, + "src": "760:16:72", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 22027, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "760:7:72", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "759:18:72" + }, + "src": "743:66:72", + "visibility": "internal" + }, + { + "body": { + "id": 22050, + "nodeType": "Block", + "src": "905:65:72", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 22046, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 22042, + "name": "_address", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22038, + "src": "917:8:72", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 22044, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22359, + "src": "937:4:72", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Utils_$22052", + "typeString": "contract Utils" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Utils_$22052", + "typeString": "contract Utils" + } + ], + "id": 22043, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "929:7:72", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 22045, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "929:13:72", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "917:25:72", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4552525f414444524553535f49535f53454c46", + "id": 22047, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "944:21:72", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_d6038575e9704a3ea491558fda267e4bebfff2c5aa46f54a3ab71ebfebd80861", + "typeString": "literal_string \"ERR_ADDRESS_IS_SELF\"" + }, + "value": "ERR_ADDRESS_IS_SELF" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_d6038575e9704a3ea491558fda267e4bebfff2c5aa46f54a3ab71ebfebd80861", + "typeString": "literal_string \"ERR_ADDRESS_IS_SELF\"" + } + ], + "id": 22041, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 22341, + 22342 + ], + "referencedDeclaration": 22342, + "src": "909:7:72", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 22048, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "909:57:72", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 22049, + "nodeType": "ExpressionStatement", + "src": "909:57:72" + } + ] + }, + "documentation": null, + "id": 22051, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "_notThis", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 22039, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 22038, + "name": "_address", + "nodeType": "VariableDeclaration", + "scope": 22051, + "src": "873:16:72", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 22037, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "873:7:72", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "872:18:72" + }, + "payable": false, + "returnParameters": { + "id": 22040, + "nodeType": "ParameterList", + "parameters": [], + "src": "905:0:72" + }, + "scope": 22052, + "src": "855:115:72", + "stateMutability": "view", + "superFunction": null, + "visibility": "internal" + } + ], + "scope": 22053, + "src": "70:902:72" + } + ], + "src": "0:973:72" + }, + "id": 72 + }, + "solidity/contracts/utility/Whitelist.sol": { + "ast": { + "absolutePath": "solidity/contracts/utility/Whitelist.sol", + "exportedSymbols": { + "Whitelist": [ + 22190 + ] + }, + "id": 22191, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 22054, + "literals": [ + "solidity", + "0.4", + ".26" + ], + "nodeType": "PragmaDirective", + "src": "0:23:73" + }, + { + "absolutePath": "solidity/contracts/utility/Owned.sol", + "file": "./Owned.sol", + "id": 22055, + "nodeType": "ImportDirective", + "scope": 22191, + "sourceUnit": 21325, + "src": "24:21:73", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "solidity/contracts/utility/Utils.sol", + "file": "./Utils.sol", + "id": 22056, + "nodeType": "ImportDirective", + "scope": 22191, + "sourceUnit": 22053, + "src": "46:21:73", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "solidity/contracts/utility/interfaces/IWhitelist.sol", + "file": "./interfaces/IWhitelist.sol", + "id": 22057, + "nodeType": "ImportDirective", + "scope": 22191, + "sourceUnit": 22324, + "src": "68:37:73", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 22058, + "name": "IWhitelist", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 22323, + "src": "198:10:73", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWhitelist_$22323", + "typeString": "contract IWhitelist" + } + }, + "id": 22059, + "nodeType": "InheritanceSpecifier", + "src": "198:10:73" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 22060, + "name": "Owned", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 21324, + "src": "210:5:73", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Owned_$21324", + "typeString": "contract Owned" + } + }, + "id": 22061, + "nodeType": "InheritanceSpecifier", + "src": "210:5:73" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 22062, + "name": "Utils", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 22052, + "src": "217:5:73", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Utils_$22052", + "typeString": "contract Utils" + } + }, + "id": 22063, + "nodeType": "InheritanceSpecifier", + "src": "217:5:73" + } + ], + "contractDependencies": [ + 21324, + 22052, + 22247, + 22323 + ], + "contractKind": "contract", + "documentation": "@dev The contract manages a list of whitelisted addresses", + "fullyImplemented": true, + "id": 22190, + "linearizedBaseContracts": [ + 22190, + 22052, + 21324, + 22247, + 22323 + ], + "name": "Whitelist", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 22067, + "name": "whitelist", + "nodeType": "VariableDeclaration", + "scope": 22190, + "src": "226:42:73", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + }, + "typeName": { + "id": 22066, + "keyType": { + "id": 22064, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "234:7:73", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "226:24:73", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + }, + "valueType": { + "id": 22065, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "245:4:73", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + }, + "value": null, + "visibility": "private" + }, + { + "anonymous": false, + "documentation": "@dev triggered when an address is added to the whitelist\n\t * @param _address address that's added from the whitelist", + "id": 22071, + "name": "AddressAddition", + "nodeType": "EventDefinition", + "parameters": { + "id": 22070, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 22069, + "indexed": true, + "name": "_address", + "nodeType": "VariableDeclaration", + "scope": 22071, + "src": "429:24:73", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 22068, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "429:7:73", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "428:26:73" + }, + "src": "407:48:73" + }, + { + "anonymous": false, + "documentation": "@dev triggered when an address is removed from the whitelist\n\t * @param _address address that's removed from the whitelist", + "id": 22075, + "name": "AddressRemoval", + "nodeType": "EventDefinition", + "parameters": { + "id": 22074, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 22073, + "indexed": true, + "name": "_address", + "nodeType": "VariableDeclaration", + "scope": 22075, + "src": "620:24:73", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 22072, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "620:7:73", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "619:26:73" + }, + "src": "599:47:73" + }, + { + "body": { + "id": 22086, + "nodeType": "Block", + "src": "903:34:73", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 22082, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22067, + "src": "914:9:73", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 22084, + "indexExpression": { + "argumentTypes": null, + "id": 22083, + "name": "_address", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22077, + "src": "924:8:73", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "914:19:73", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 22081, + "id": 22085, + "nodeType": "Return", + "src": "907:26:73" + } + ] + }, + "documentation": "@dev returns true if a given address is whitelisted, false if not\n\t * @param _address address to check\n\t * @return true if the address is whitelisted, false if not", + "id": 22087, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "isWhitelisted", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 22078, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 22077, + "name": "_address", + "nodeType": "VariableDeclaration", + "scope": 22087, + "src": "858:16:73", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 22076, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "858:7:73", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "857:18:73" + }, + "payable": false, + "returnParameters": { + "id": 22081, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 22080, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 22087, + "src": "897:4:73", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 22079, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "897:4:73", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "896:6:73" + }, + "scope": 22190, + "src": "835:102:73", + "stateMutability": "view", + "superFunction": 22322, + "visibility": "public" + }, + { + "body": { + "id": 22112, + "nodeType": "Block", + "src": "1114:158:73", + "statements": [ + { + "condition": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 22097, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22067, + "src": "1122:9:73", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 22099, + "indexExpression": { + "argumentTypes": null, + "id": 22098, + "name": "_address", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22089, + "src": "1132:8:73", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1122:19:73", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 22101, + "nodeType": "IfStatement", + "src": "1118:86:73", + "trueBody": { + "expression": null, + "functionReturnParameters": 22096, + "id": 22100, + "nodeType": "Return", + "src": "1197:7:73" + } + }, + { + "expression": { + "argumentTypes": null, + "id": 22106, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 22102, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22067, + "src": "1208:9:73", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 22104, + "indexExpression": { + "argumentTypes": null, + "id": 22103, + "name": "_address", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22089, + "src": "1218:8:73", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1208:19:73", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 22105, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1230:4:73", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "1208:26:73", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 22107, + "nodeType": "ExpressionStatement", + "src": "1208:26:73" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 22109, + "name": "_address", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22089, + "src": "1259:8:73", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 22108, + "name": "AddressAddition", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22071, + "src": "1243:15:73", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 22110, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1243:25:73", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 22111, + "nodeType": "EmitStatement", + "src": "1238:30:73" + } + ] + }, + "documentation": "@dev adds a given address to the whitelist\n\t * @param _address address to add", + "id": 22113, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 22092, + "modifierName": { + "argumentTypes": null, + "id": 22091, + "name": "ownerOnly", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21265, + "src": "1081:9:73", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "1081:9:73" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 22094, + "name": "_address", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22089, + "src": "1104:8:73", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 22095, + "modifierName": { + "argumentTypes": null, + "id": 22093, + "name": "validAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22011, + "src": "1091:12:73", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_address_$", + "typeString": "modifier (address)" + } + }, + "nodeType": "ModifierInvocation", + "src": "1091:22:73" + } + ], + "name": "addAddress", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 22090, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 22089, + "name": "_address", + "nodeType": "VariableDeclaration", + "scope": 22113, + "src": "1056:16:73", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 22088, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1056:7:73", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1055:18:73" + }, + "payable": false, + "returnParameters": { + "id": 22096, + "nodeType": "ParameterList", + "parameters": [], + "src": "1114:0:73" + }, + "scope": 22190, + "src": "1036:236:73", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 22138, + "nodeType": "Block", + "src": "1430:90:73", + "statements": [ + { + "body": { + "id": 22136, + "nodeType": "Block", + "src": "1482:35:73", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 22131, + "name": "_addresses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22116, + "src": "1498:10:73", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 22133, + "indexExpression": { + "argumentTypes": null, + "id": 22132, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22120, + "src": "1509:1:73", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1498:13:73", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 22130, + "name": "addAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22113, + "src": "1487:10:73", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 22134, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1487:25:73", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 22135, + "nodeType": "ExpressionStatement", + "src": "1487:25:73" + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 22126, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 22123, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22120, + "src": "1454:1:73", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 22124, + "name": "_addresses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22116, + "src": "1458:10:73", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 22125, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1458:17:73", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1454:21:73", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 22137, + "initializationExpression": { + "assignments": [ + 22120 + ], + "declarations": [ + { + "constant": false, + "id": 22120, + "name": "i", + "nodeType": "VariableDeclaration", + "scope": 22139, + "src": "1439:9:73", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 22119, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1439:7:73", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 22122, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 22121, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1451:1:73", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "1439:13:73" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 22128, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "1477:3:73", + "subExpression": { + "argumentTypes": null, + "id": 22127, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22120, + "src": "1477:1:73", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 22129, + "nodeType": "ExpressionStatement", + "src": "1477:3:73" + }, + "nodeType": "ForStatement", + "src": "1434:83:73" + } + ] + }, + "documentation": "@dev adds a list of addresses to the whitelist\n\t * @param _addresses addresses to add", + "id": 22139, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "addAddresses", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 22117, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 22116, + "name": "_addresses", + "nodeType": "VariableDeclaration", + "scope": 22139, + "src": "1401:20:73", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 22114, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1401:7:73", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 22115, + "length": null, + "nodeType": "ArrayTypeName", + "src": "1401:9:73", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1400:22:73" + }, + "payable": false, + "returnParameters": { + "id": 22118, + "nodeType": "ParameterList", + "parameters": [], + "src": "1430:0:73" + }, + "scope": 22190, + "src": "1379:141:73", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 22162, + "nodeType": "Block", + "src": "1685:160:73", + "statements": [ + { + "condition": { + "argumentTypes": null, + "id": 22149, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "1693:20:73", + "subExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 22146, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22067, + "src": "1694:9:73", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 22148, + "indexExpression": { + "argumentTypes": null, + "id": 22147, + "name": "_address", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22141, + "src": "1704:8:73", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1694:19:73", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 22151, + "nodeType": "IfStatement", + "src": "1689:88:73", + "trueBody": { + "expression": null, + "functionReturnParameters": 22145, + "id": 22150, + "nodeType": "Return", + "src": "1770:7:73" + } + }, + { + "expression": { + "argumentTypes": null, + "id": 22156, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 22152, + "name": "whitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22067, + "src": "1781:9:73", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 22154, + "indexExpression": { + "argumentTypes": null, + "id": 22153, + "name": "_address", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22141, + "src": "1791:8:73", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1781:19:73", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 22155, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1803:5:73", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "src": "1781:27:73", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 22157, + "nodeType": "ExpressionStatement", + "src": "1781:27:73" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 22159, + "name": "_address", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22141, + "src": "1832:8:73", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 22158, + "name": "AddressRemoval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22075, + "src": "1817:14:73", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 22160, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1817:24:73", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 22161, + "nodeType": "EmitStatement", + "src": "1812:29:73" + } + ] + }, + "documentation": "@dev removes a given address from the whitelist\n\t * @param _address address to remove", + "id": 22163, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 22144, + "modifierName": { + "argumentTypes": null, + "id": 22143, + "name": "ownerOnly", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21265, + "src": "1675:9:73", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "1675:9:73" + } + ], + "name": "removeAddress", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 22142, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 22141, + "name": "_address", + "nodeType": "VariableDeclaration", + "scope": 22163, + "src": "1650:16:73", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 22140, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1650:7:73", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1649:18:73" + }, + "payable": false, + "returnParameters": { + "id": 22145, + "nodeType": "ParameterList", + "parameters": [], + "src": "1685:0:73" + }, + "scope": 22190, + "src": "1627:218:73", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 22188, + "nodeType": "Block", + "src": "2014:93:73", + "statements": [ + { + "body": { + "id": 22186, + "nodeType": "Block", + "src": "2066:38:73", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 22181, + "name": "_addresses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22166, + "src": "2085:10:73", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 22183, + "indexExpression": { + "argumentTypes": null, + "id": 22182, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22170, + "src": "2096:1:73", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2085:13:73", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 22180, + "name": "removeAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22163, + "src": "2071:13:73", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 22184, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2071:28:73", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 22185, + "nodeType": "ExpressionStatement", + "src": "2071:28:73" + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 22176, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 22173, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22170, + "src": "2038:1:73", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 22174, + "name": "_addresses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22166, + "src": "2042:10:73", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 22175, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2042:17:73", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2038:21:73", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 22187, + "initializationExpression": { + "assignments": [ + 22170 + ], + "declarations": [ + { + "constant": false, + "id": 22170, + "name": "i", + "nodeType": "VariableDeclaration", + "scope": 22189, + "src": "2023:9:73", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 22169, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2023:7:73", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 22172, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 22171, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2035:1:73", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "2023:13:73" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 22178, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "2061:3:73", + "subExpression": { + "argumentTypes": null, + "id": 22177, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22170, + "src": "2061:1:73", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 22179, + "nodeType": "ExpressionStatement", + "src": "2061:3:73" + }, + "nodeType": "ForStatement", + "src": "2018:86:73" + } + ] + }, + "documentation": "@dev removes a list of addresses from the whitelist\n\t * @param _addresses addresses to remove", + "id": 22189, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "removeAddresses", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 22167, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 22166, + "name": "_addresses", + "nodeType": "VariableDeclaration", + "scope": 22189, + "src": "1985:20:73", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 22164, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1985:7:73", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 22165, + "length": null, + "nodeType": "ArrayTypeName", + "src": "1985:9:73", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1984:22:73" + }, + "payable": false, + "returnParameters": { + "id": 22168, + "nodeType": "ParameterList", + "parameters": [], + "src": "2014:0:73" + }, + "scope": 22190, + "src": "1960:147:73", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 22191, + "src": "176:1933:73" + } + ], + "src": "0:2110:73" + }, + "id": 73 + }, + "solidity/contracts/utility/interfaces/IConsumerPriceOracle.sol": { + "ast": { + "absolutePath": "solidity/contracts/utility/interfaces/IConsumerPriceOracle.sol", + "exportedSymbols": { + "IConsumerPriceOracle": [ + 22203 + ] + }, + "id": 22204, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 22192, + "literals": [ + "solidity", + "0.4", + ".26" + ], + "nodeType": "PragmaDirective", + "src": "0:23:74" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 22203, + "linearizedBaseContracts": [ + 22203 + ], + "name": "IConsumerPriceOracle", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": null, + "id": 22197, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "latestAnswer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 22193, + "nodeType": "ParameterList", + "parameters": [], + "src": "123:2:74" + }, + "payable": false, + "returnParameters": { + "id": 22196, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 22195, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 22197, + "src": "149:6:74", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 22194, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "149:6:74", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "148:8:74" + }, + "scope": 22203, + "src": "102:55:74", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 22202, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "latestTimestamp", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 22198, + "nodeType": "ParameterList", + "parameters": [], + "src": "184:2:74" + }, + "payable": false, + "returnParameters": { + "id": 22201, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 22200, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 22202, + "src": "210:7:74", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 22199, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "210:7:74", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "209:9:74" + }, + "scope": 22203, + "src": "160:59:74", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + } + ], + "scope": 22204, + "src": "68:153:74" + } + ], + "src": "0:222:74" + }, + "id": 74 + }, + "solidity/contracts/utility/interfaces/IContractRegistry.sol": { + "ast": { + "absolutePath": "solidity/contracts/utility/interfaces/IContractRegistry.sol", + "exportedSymbols": { + "IContractRegistry": [ + 22220 + ] + }, + "id": 22221, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 22205, + "literals": [ + "solidity", + "0.4", + ".26" + ], + "nodeType": "PragmaDirective", + "src": "0:23:75" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": false, + "id": 22220, + "linearizedBaseContracts": [ + 22220 + ], + "name": "IContractRegistry", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": null, + "id": 22212, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "addressOf", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 22208, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 22207, + "name": "_contractName", + "nodeType": "VariableDeclaration", + "scope": 22212, + "src": "112:21:75", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 22206, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "112:7:75", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "111:23:75" + }, + "payable": false, + "returnParameters": { + "id": 22211, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 22210, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 22212, + "src": "156:7:75", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 22209, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "156:7:75", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "155:9:75" + }, + "scope": 22220, + "src": "93:72:75", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 22219, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getAddress", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 22215, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 22214, + "name": "_contractName", + "nodeType": "VariableDeclaration", + "scope": 22219, + "src": "227:21:75", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 22213, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "227:7:75", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "226:23:75" + }, + "payable": false, + "returnParameters": { + "id": 22218, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 22217, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 22219, + "src": "271:7:75", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 22216, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "271:7:75", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "270:9:75" + }, + "scope": 22220, + "src": "207:73:75", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 22221, + "src": "63:219:75" + } + ], + "src": "0:283:75" + }, + "id": 75 + }, + "solidity/contracts/utility/interfaces/IMoCState.sol": { + "ast": { + "absolutePath": "solidity/contracts/utility/interfaces/IMoCState.sol", + "exportedSymbols": { + "IMoCState": [ + 22228 + ] + }, + "id": 22229, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 22222, + "literals": [ + "solidity", + "0.4", + ".26" + ], + "nodeType": "PragmaDirective", + "src": "0:23:76" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 22228, + "linearizedBaseContracts": [ + 22228 + ], + "name": "IMoCState", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": null, + "id": 22227, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "bproUsdPrice", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 22223, + "nodeType": "ParameterList", + "parameters": [], + "src": "69:2:76" + }, + "payable": false, + "returnParameters": { + "id": 22226, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 22225, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 22227, + "src": "95:7:76", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 22224, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "95:7:76", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "94:9:76" + }, + "scope": 22228, + "src": "48:56:76", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + } + ], + "scope": 22229, + "src": "25:81:76" + } + ], + "src": "0:107:76" + }, + "id": 76 + }, + "solidity/contracts/utility/interfaces/IOwned.sol": { + "ast": { + "absolutePath": "solidity/contracts/utility/interfaces/IOwned.sol", + "exportedSymbols": { + "IOwned": [ + 22247 + ] + }, + "id": 22248, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 22230, + "literals": [ + "solidity", + "0.4", + ".26" + ], + "nodeType": "PragmaDirective", + "src": "0:23:77" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": false, + "id": 22247, + "linearizedBaseContracts": [ + 22247 + ], + "name": "IOwned", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 22237, + "nodeType": "Block", + "src": "237:12:77", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 22235, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22355, + "src": "241:4:77", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IOwned_$22247", + "typeString": "contract IOwned" + } + }, + "id": 22236, + "nodeType": "ExpressionStatement", + "src": "241:4:77" + } + ] + }, + "documentation": null, + "id": 22238, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "owner", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 22231, + "nodeType": "ParameterList", + "parameters": [], + "src": "204:2:77" + }, + "payable": false, + "returnParameters": { + "id": 22234, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 22233, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 22238, + "src": "228:7:77", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 22232, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "228:7:77", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "227:9:77" + }, + "scope": 22247, + "src": "190:59:77", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 22243, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "transferOwnership", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 22241, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 22240, + "name": "_newOwner", + "nodeType": "VariableDeclaration", + "scope": 22243, + "src": "279:17:77", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 22239, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "279:7:77", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "278:19:77" + }, + "payable": false, + "returnParameters": { + "id": 22242, + "nodeType": "ParameterList", + "parameters": [], + "src": "304:0:77" + }, + "scope": 22247, + "src": "252:53:77", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 22246, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "acceptOwnership", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 22244, + "nodeType": "ParameterList", + "parameters": [], + "src": "332:2:77" + }, + "payable": false, + "returnParameters": { + "id": 22245, + "nodeType": "ParameterList", + "parameters": [], + "src": "341:0:77" + }, + "scope": 22247, + "src": "308:34:77", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 22248, + "src": "60:284:77" + } + ], + "src": "0:345:77" + }, + "id": 77 + }, + "solidity/contracts/utility/interfaces/IPriceOracle.sol": { + "ast": { + "absolutePath": "solidity/contracts/utility/interfaces/IPriceOracle.sol", + "exportedSymbols": { + "IPriceOracle": [ + 22297 + ] + }, + "id": 22298, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 22249, + "literals": [ + "solidity", + "0.4", + ".26" + ], + "nodeType": "PragmaDirective", + "src": "0:23:78" + }, + { + "absolutePath": "solidity/contracts/utility/interfaces/IConsumerPriceOracle.sol", + "file": "./IConsumerPriceOracle.sol", + "id": 22250, + "nodeType": "ImportDirective", + "scope": 22298, + "sourceUnit": 22204, + "src": "24:36:78", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "solidity/contracts/token/interfaces/IERC20Token.sol", + "file": "../../token/interfaces/IERC20Token.sol", + "id": 22251, + "nodeType": "ImportDirective", + "scope": 22298, + "sourceUnit": 20241, + "src": "61:48:78", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": false, + "id": 22297, + "linearizedBaseContracts": [ + 22297 + ], + "name": "IPriceOracle", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": null, + "id": 22262, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "latestRate", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 22256, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 22253, + "name": "_tokenA", + "nodeType": "VariableDeclaration", + "scope": 22262, + "src": "189:19:78", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + "typeName": { + "contractScope": null, + "id": 22252, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "189:11:78", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 22255, + "name": "_tokenB", + "nodeType": "VariableDeclaration", + "scope": 22262, + "src": "210:19:78", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + "typeName": { + "contractScope": null, + "id": 22254, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "210:11:78", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "188:42:78" + }, + "payable": false, + "returnParameters": { + "id": 22261, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 22258, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 22262, + "src": "252:7:78", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 22257, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "252:7:78", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 22260, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 22262, + "src": "261:7:78", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 22259, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "261:7:78", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "251:18:78" + }, + "scope": 22297, + "src": "169:101:78", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 22267, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "lastUpdateTime", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 22263, + "nodeType": "ParameterList", + "parameters": [], + "src": "296:2:78" + }, + "payable": false, + "returnParameters": { + "id": 22266, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 22265, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 22267, + "src": "320:7:78", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 22264, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "320:7:78", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "319:9:78" + }, + "scope": 22297, + "src": "273:56:78", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 22280, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "latestRateAndUpdateTime", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 22272, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 22269, + "name": "_tokenA", + "nodeType": "VariableDeclaration", + "scope": 22280, + "src": "365:19:78", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + "typeName": { + "contractScope": null, + "id": 22268, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "365:11:78", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 22271, + "name": "_tokenB", + "nodeType": "VariableDeclaration", + "scope": 22280, + "src": "386:19:78", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + "typeName": { + "contractScope": null, + "id": 22270, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "386:11:78", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "364:42:78" + }, + "payable": false, + "returnParameters": { + "id": 22279, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 22274, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 22280, + "src": "438:7:78", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 22273, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "438:7:78", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 22276, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 22280, + "src": "450:7:78", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 22275, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "450:7:78", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 22278, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 22280, + "src": "462:7:78", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 22277, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "462:7:78", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "433:40:78" + }, + "scope": 22297, + "src": "332:142:78", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 22287, + "nodeType": "Block", + "src": "544:12:78", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 22285, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22425, + "src": "548:4:78", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IPriceOracle_$22297", + "typeString": "contract IPriceOracle" + } + }, + "id": 22286, + "nodeType": "ExpressionStatement", + "src": "548:4:78" + } + ] + }, + "documentation": null, + "id": 22288, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "tokenAOracle", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 22281, + "nodeType": "ParameterList", + "parameters": [], + "src": "498:2:78" + }, + "payable": false, + "returnParameters": { + "id": 22284, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 22283, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 22288, + "src": "522:20:78", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", + "typeString": "contract IConsumerPriceOracle" + }, + "typeName": { + "contractScope": null, + "id": 22282, + "name": "IConsumerPriceOracle", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 22203, + "src": "522:20:78", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", + "typeString": "contract IConsumerPriceOracle" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "521:22:78" + }, + "scope": 22297, + "src": "477:79:78", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 22295, + "nodeType": "Block", + "src": "626:12:78", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 22293, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22425, + "src": "630:4:78", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IPriceOracle_$22297", + "typeString": "contract IPriceOracle" + } + }, + "id": 22294, + "nodeType": "ExpressionStatement", + "src": "630:4:78" + } + ] + }, + "documentation": null, + "id": 22296, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "tokenBOracle", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 22289, + "nodeType": "ParameterList", + "parameters": [], + "src": "580:2:78" + }, + "payable": false, + "returnParameters": { + "id": 22292, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 22291, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 22296, + "src": "604:20:78", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", + "typeString": "contract IConsumerPriceOracle" + }, + "typeName": { + "contractScope": null, + "id": 22290, + "name": "IConsumerPriceOracle", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 22203, + "src": "604:20:78", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", + "typeString": "contract IConsumerPriceOracle" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "603:22:78" + }, + "scope": 22297, + "src": "559:79:78", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 22298, + "src": "144:496:78" + } + ], + "src": "0:641:78" + }, + "id": 78 + }, + "solidity/contracts/utility/interfaces/ITokenHolder.sol": { + "ast": { + "absolutePath": "solidity/contracts/utility/interfaces/ITokenHolder.sol", + "exportedSymbols": { + "ITokenHolder": [ + 22313 + ] + }, + "id": 22314, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 22299, + "literals": [ + "solidity", + "0.4", + ".26" + ], + "nodeType": "PragmaDirective", + "src": "0:23:79" + }, + { + "absolutePath": "solidity/contracts/utility/interfaces/IOwned.sol", + "file": "./IOwned.sol", + "id": 22300, + "nodeType": "ImportDirective", + "scope": 22314, + "sourceUnit": 22248, + "src": "24:22:79", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "solidity/contracts/token/interfaces/IERC20Token.sol", + "file": "../../token/interfaces/IERC20Token.sol", + "id": 22301, + "nodeType": "ImportDirective", + "scope": 22314, + "sourceUnit": 20241, + "src": "47:48:79", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 22302, + "name": "IOwned", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 22247, + "src": "155:6:79", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IOwned_$22247", + "typeString": "contract IOwned" + } + }, + "id": 22303, + "nodeType": "InheritanceSpecifier", + "src": "155:6:79" + } + ], + "contractDependencies": [ + 22247 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": false, + "id": 22313, + "linearizedBaseContracts": [ + 22313, + 22247 + ], + "name": "ITokenHolder", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": null, + "id": 22312, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "withdrawTokens", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 22310, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 22305, + "name": "_token", + "nodeType": "VariableDeclaration", + "scope": 22312, + "src": "192:18:79", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + }, + "typeName": { + "contractScope": null, + "id": 22304, + "name": "IERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20240, + "src": "192:11:79", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Token_$20240", + "typeString": "contract IERC20Token" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 22307, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 22312, + "src": "214:11:79", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 22306, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "214:7:79", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 22309, + "name": "_amount", + "nodeType": "VariableDeclaration", + "scope": 22312, + "src": "229:15:79", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 22308, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "229:7:79", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "188:59:79" + }, + "payable": false, + "returnParameters": { + "id": 22311, + "nodeType": "ParameterList", + "parameters": [], + "src": "254:0:79" + }, + "scope": 22313, + "src": "165:90:79", + "stateMutability": "nonpayable", + "superFunction": 11757, + "visibility": "public" + } + ], + "scope": 22314, + "src": "130:127:79" + } + ], + "src": "0:258:79" + }, + "id": 79 + }, + "solidity/contracts/utility/interfaces/IWhitelist.sol": { + "ast": { + "absolutePath": "solidity/contracts/utility/interfaces/IWhitelist.sol", + "exportedSymbols": { + "IWhitelist": [ + 22323 + ] + }, + "id": 22324, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 22315, + "literals": [ + "solidity", + "0.4", + ".26" + ], + "nodeType": "PragmaDirective", + "src": "0:23:80" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": false, + "id": 22323, + "linearizedBaseContracts": [ + 22323 + ], + "name": "IWhitelist", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": null, + "id": 22322, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "isWhitelisted", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 22318, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 22317, + "name": "_address", + "nodeType": "VariableDeclaration", + "scope": 22322, + "src": "101:16:80", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 22316, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "101:7:80", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "100:18:80" + }, + "payable": false, + "returnParameters": { + "id": 22321, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 22320, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 22322, + "src": "140:4:80", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 22319, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "140:4:80", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "139:6:80" + }, + "scope": 22323, + "src": "78:68:80", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 22324, + "src": "55:93:80" + } + ], + "src": "0:149:80" + }, + "id": 80 + } + } + } +} diff --git a/hardhat.config.js b/hardhat.config.js new file mode 100644 index 0000000..cf715f5 --- /dev/null +++ b/hardhat.config.js @@ -0,0 +1,84 @@ +const { task } = require("hardhat/config"); + +require("@nomiclabs/hardhat-ganache"); +require("@nomiclabs/hardhat-truffle5"); +require("@nomiclabs/hardhat-ethers"); +require("@nomiclabs/hardhat-web3"); +require("hardhat-contract-sizer"); //yarn run hardhat size-contracts +require("solidity-coverage"); // $ npx hardhat coverage +require("hardhat-log-remover"); +require('hardhat-docgen'); + +// This is a sample Hardhat task. To learn how to create your own go to +// https://hardhat.org/guides/create-task.html +/// this is for use with ethers.js +task("accounts", "Prints the list of accounts", async () => { + const accounts = await ethers.getSigners(); + + for (const account of accounts.address) { + const wallet = ethers.Wallet.fromMnemonic("test test test test test test test test test test test junk", "m/44'/60'/0'/0"); + + console.log(account); + } +}); + +/*task("accounts", "Prints accounts", async (_, { web3 }) => { + console.log(); + console.log(await web3.eth.getAccounts()); +});*/ + +// You need to export an object to set up your config +// Go to https://hardhat.org/config/ to learn more + +/** + * @type import('hardhat/config').HardhatUserConfig + */ +/**/ + +module.exports = { + solidity: { + version: "0.4.26", + settings: { + optimizer: { + enabled: true, + runs: 200, + }, + }, + }, + networks: { + hardhat: {}, + rskPublicTestnet: { + url: "https://public-node.testnet.rsk.co/", + accounts: { mnemonic: "brownie", count: 10 }, + network_id: 31, + confirmations: 4, + gasMultiplier: 1.25, + //timeout: 20000, // increase if needed; 20000 is the default value + //allowUnlimitedContractSize, //EIP170 contrtact size restriction temporal testnet workaround + }, + rskPublicMainnet: { + url: "https://public-node.rsk.co/", + network_id: 30, + //timeout: 20000, // increase if needed; 20000 is the default value + }, + rskSovrynTestnet: { + url: "https://testnet.sovryn.app/rpc", + accounts: { mnemonic: "brownie", count: 10 }, + network_id: 31, + confirmations: 4, + gasMultiplier: 1.25, + //timeout: 20000, // increase if needed; 20000 is the default value + //allowUnlimitedContractSize, //EIP170 contrtact size restriction temporal testnet workaround + }, + rskSovrynMainnet: { + url: "https://mainnet.sovryn.app/rpc", + network_id: 30, + //timeout: 20000, // increase if needed; 20000 is the default value + }, + }, + paths: { + sources: "./solidity/contracts", + tests: "./tests-js", + }, +}; + diff --git a/package-lock.json b/package-lock.json index 92b96eb..d776004 100644 --- a/package-lock.json +++ b/package-lock.json @@ -289,1067 +289,1559 @@ } } }, - "@ethersproject/abi": { - "version": "5.0.0-beta.153", - "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.0.0-beta.153.tgz", - "integrity": "sha512-aXweZ1Z7vMNzJdLpR1CZUAIgnwjrZeUSvN9syCwlBaEBUFJmFY+HHnfuTI5vIhVs/mRkfJVrbEyl51JZQqyjAg==", - "dev": true, - "requires": { - "@ethersproject/address": ">=5.0.0-beta.128", - "@ethersproject/bignumber": ">=5.0.0-beta.130", - "@ethersproject/bytes": ">=5.0.0-beta.129", - "@ethersproject/constants": ">=5.0.0-beta.128", - "@ethersproject/hash": ">=5.0.0-beta.128", - "@ethersproject/keccak256": ">=5.0.0-beta.127", - "@ethersproject/logger": ">=5.0.0-beta.129", - "@ethersproject/properties": ">=5.0.0-beta.131", - "@ethersproject/strings": ">=5.0.0-beta.130" - } - }, - "@ethersproject/address": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.0.2.tgz", - "integrity": "sha512-+rz26RKj7ujGfQynys4V9VJRbR+wpC6eL8F22q3raWMH3152Ha31GwJPWzxE/bEA+43M/zTNVwY0R53gn53L2Q==", + "@ethereumjs/block": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@ethereumjs/block/-/block-3.3.0.tgz", + "integrity": "sha512-WoefY9Rs4W8vZTxG9qwntAlV61xsSv0NPoXmHO7x3SH16dwJQtU15YvahPCz4HEEXbu7GgGgNgu0pv8JY7VauA==", "dev": true, "requires": { - "@ethersproject/bignumber": "^5.0.0", - "@ethersproject/bytes": "^5.0.0", - "@ethersproject/keccak256": "^5.0.0", - "@ethersproject/logger": "^5.0.0", - "@ethersproject/rlp": "^5.0.0", - "bn.js": "^4.4.0" + "@ethereumjs/common": "^2.3.0", + "@ethereumjs/tx": "^3.2.0", + "ethereumjs-util": "^7.0.10", + "merkle-patricia-tree": "^4.2.0" }, "dependencies": { - "bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", - "dev": true + "@types/bn.js": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.0.tgz", + "integrity": "sha512-QSSVYj7pYFN49kW77o2s9xTCwZ8F2xLbjLLSEVh8D2F4JUhZtPAGOFLTD+ffqksBx/u4cE/KImFjyhqCjn/LIA==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "ethereumjs-util": { + "version": "7.0.10", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.0.10.tgz", + "integrity": "sha512-c/xThw6A+EAnej5Xk5kOzFzyoSnw0WX0tSlZ6pAsfGVvQj3TItaDg9b1+Fz1RJXA+y2YksKwQnuzgt1eY6LKzw==", + "dev": true, + "requires": { + "@types/bn.js": "^5.1.0", + "bn.js": "^5.1.2", + "create-hash": "^1.1.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "0.1.6", + "rlp": "^2.2.4" + } + }, + "level-ws": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/level-ws/-/level-ws-2.0.0.tgz", + "integrity": "sha512-1iv7VXx0G9ec1isqQZ7y5LmoZo/ewAsyDHNA8EFDW5hqH2Kqovm33nSFkSdnLLAK+I5FlT+lo5Cw9itGe+CpQA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "readable-stream": "^3.1.0", + "xtend": "^4.0.1" + } + }, + "merkle-patricia-tree": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/merkle-patricia-tree/-/merkle-patricia-tree-4.2.0.tgz", + "integrity": "sha512-0sBVXs7z1Q1/kxzWZ3nPnxSPiaHKF/f497UQzt9O7isRcS10tel9jM/4TivF6Jv7V1yFq4bWyoATxbDUOen5vQ==", + "dev": true, + "requires": { + "@types/levelup": "^4.3.0", + "ethereumjs-util": "^7.0.10", + "level-mem": "^5.0.1", + "level-ws": "^2.0.0", + "readable-stream": "^3.6.0", + "rlp": "^2.2.4", + "semaphore-async-await": "^1.5.1" + } + }, + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } } } }, - "@ethersproject/bignumber": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.0.5.tgz", - "integrity": "sha512-24ln7PV0g8ZzjcVZiLW9Wod0i+XCmK6zKkAaxw5enraTIT1p7gVOcSXFSzNQ9WYAwtiFQPvvA+TIO2oEITZNJA==", + "@ethereumjs/blockchain": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethereumjs/blockchain/-/blockchain-5.3.0.tgz", + "integrity": "sha512-B0Y5QDZcRDQISPilv3m8nzk97QmC98DnSE9WxzGpCxfef22Mw7xhwGipci5Iy0dVC2Np2Cr5d3F6bHAR7+yVmQ==", "dev": true, "requires": { - "@ethersproject/bytes": "^5.0.0", - "@ethersproject/logger": "^5.0.0", - "bn.js": "^4.4.0" + "@ethereumjs/block": "^3.3.0", + "@ethereumjs/common": "^2.3.0", + "@ethereumjs/ethash": "^1.0.0", + "debug": "^2.2.0", + "ethereumjs-util": "^7.0.10", + "level-mem": "^5.0.1", + "lru-cache": "^5.1.1", + "rlp": "^2.2.4", + "semaphore-async-await": "^1.5.1" }, "dependencies": { - "bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", - "dev": true + "@types/bn.js": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.0.tgz", + "integrity": "sha512-QSSVYj7pYFN49kW77o2s9xTCwZ8F2xLbjLLSEVh8D2F4JUhZtPAGOFLTD+ffqksBx/u4cE/KImFjyhqCjn/LIA==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ethereumjs-util": { + "version": "7.0.10", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.0.10.tgz", + "integrity": "sha512-c/xThw6A+EAnej5Xk5kOzFzyoSnw0WX0tSlZ6pAsfGVvQj3TItaDg9b1+Fz1RJXA+y2YksKwQnuzgt1eY6LKzw==", + "dev": true, + "requires": { + "@types/bn.js": "^5.1.0", + "bn.js": "^5.1.2", + "create-hash": "^1.1.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "0.1.6", + "rlp": "^2.2.4" + } } } }, - "@ethersproject/bytes": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.0.3.tgz", - "integrity": "sha512-AyPMAlY+Amaw4Zfp8OAivm1xYPI8mqiUYmEnSUk1CnS2NrQGHEMmFJFiOJdS3gDDpgSOFhWIjZwxKq2VZpqNTA==", - "dev": true, - "requires": { - "@ethersproject/logger": "^5.0.0" - } - }, - "@ethersproject/constants": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.0.2.tgz", - "integrity": "sha512-nNoVlNP6bgpog7pQ2EyD1xjlaXcy1Cl4kK5v1KoskHj58EtB6TK8M8AFGi3GgHTdMldfT4eN3OsoQ/CdOTVNFA==", + "@ethereumjs/common": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/@ethereumjs/common/-/common-2.3.1.tgz", + "integrity": "sha512-V8hrULExoq0H4HFs3cCmdRGbgmipmlNzak6Xg34nHYfQyqkSdrCuflvYjyWmsNpI8GtrcZhzifAbgX/1C1Cjwg==", "dev": true, "requires": { - "@ethersproject/bignumber": "^5.0.0" + "crc-32": "^1.2.0", + "ethereumjs-util": "^7.0.10" + }, + "dependencies": { + "@types/bn.js": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.0.tgz", + "integrity": "sha512-QSSVYj7pYFN49kW77o2s9xTCwZ8F2xLbjLLSEVh8D2F4JUhZtPAGOFLTD+ffqksBx/u4cE/KImFjyhqCjn/LIA==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "ethereumjs-util": { + "version": "7.0.10", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.0.10.tgz", + "integrity": "sha512-c/xThw6A+EAnej5Xk5kOzFzyoSnw0WX0tSlZ6pAsfGVvQj3TItaDg9b1+Fz1RJXA+y2YksKwQnuzgt1eY6LKzw==", + "dev": true, + "requires": { + "@types/bn.js": "^5.1.0", + "bn.js": "^5.1.2", + "create-hash": "^1.1.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "0.1.6", + "rlp": "^2.2.4" + } + } } }, - "@ethersproject/hash": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.0.2.tgz", - "integrity": "sha512-dWGvNwmVRX2bxoQQ3ciMw46Vzl1nqfL+5R8+2ZxsRXD3Cjgw1dL2mdjJF7xMMWPvPdrlhKXWSK0gb8VLwHZ8Cw==", + "@ethereumjs/ethash": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@ethereumjs/ethash/-/ethash-1.0.0.tgz", + "integrity": "sha512-iIqnGG6NMKesyOxv2YctB2guOVX18qMAWlj3QlZyrc+GqfzLqoihti+cVNQnyNxr7eYuPdqwLQOFuPe6g/uKjw==", "dev": true, "requires": { - "@ethersproject/bytes": "^5.0.0", - "@ethersproject/keccak256": "^5.0.0", - "@ethersproject/logger": "^5.0.0", - "@ethersproject/strings": "^5.0.0" + "@types/levelup": "^4.3.0", + "buffer-xor": "^2.0.1", + "ethereumjs-util": "^7.0.7", + "miller-rabin": "^4.0.0" + }, + "dependencies": { + "@types/bn.js": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.0.tgz", + "integrity": "sha512-QSSVYj7pYFN49kW77o2s9xTCwZ8F2xLbjLLSEVh8D2F4JUhZtPAGOFLTD+ffqksBx/u4cE/KImFjyhqCjn/LIA==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "buffer-xor": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-2.0.2.tgz", + "integrity": "sha512-eHslX0bin3GB+Lx2p7lEYRShRewuNZL3fUl4qlVJGGiwoPGftmt8JQgk2Y9Ji5/01TnVDo33E5b5O3vUB1HdqQ==", + "dev": true, + "requires": { + "safe-buffer": "^5.1.1" + } + }, + "ethereumjs-util": { + "version": "7.0.10", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.0.10.tgz", + "integrity": "sha512-c/xThw6A+EAnej5Xk5kOzFzyoSnw0WX0tSlZ6pAsfGVvQj3TItaDg9b1+Fz1RJXA+y2YksKwQnuzgt1eY6LKzw==", + "dev": true, + "requires": { + "@types/bn.js": "^5.1.0", + "bn.js": "^5.1.2", + "create-hash": "^1.1.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "0.1.6", + "rlp": "^2.2.4" + } + } } }, - "@ethersproject/keccak256": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.0.2.tgz", - "integrity": "sha512-MbroXutc0gPNYIrUjS4Aw0lDuXabdzI7+l7elRWr1G6G+W0v00e/3gbikWkCReGtt2Jnt4lQSgnflhDwQGcIhA==", + "@ethereumjs/tx": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/@ethereumjs/tx/-/tx-3.2.1.tgz", + "integrity": "sha512-i9V39OtKvwWos1uVNZxdVhd7zFOyzFLjgt69CoiOY0EmXugS0HjO3uxpLBSglDKFMRriuGqw6ddKEv+RP1UNEw==", "dev": true, "requires": { - "@ethersproject/bytes": "^5.0.0", - "js-sha3": "0.5.7" + "@ethereumjs/common": "^2.3.1", + "ethereumjs-util": "^7.0.10" }, "dependencies": { - "js-sha3": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.7.tgz", - "integrity": "sha1-DU/9gALVMzqrr0oj7tL2N0yfKOc=", - "dev": true + "@types/bn.js": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.0.tgz", + "integrity": "sha512-QSSVYj7pYFN49kW77o2s9xTCwZ8F2xLbjLLSEVh8D2F4JUhZtPAGOFLTD+ffqksBx/u4cE/KImFjyhqCjn/LIA==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "ethereumjs-util": { + "version": "7.0.10", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.0.10.tgz", + "integrity": "sha512-c/xThw6A+EAnej5Xk5kOzFzyoSnw0WX0tSlZ6pAsfGVvQj3TItaDg9b1+Fz1RJXA+y2YksKwQnuzgt1eY6LKzw==", + "dev": true, + "requires": { + "@types/bn.js": "^5.1.0", + "bn.js": "^5.1.2", + "create-hash": "^1.1.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "0.1.6", + "rlp": "^2.2.4" + } } } }, - "@ethersproject/logger": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.0.4.tgz", - "integrity": "sha512-alA2LiAy1LdQ/L1SA9ajUC7MvGAEQLsICEfKK4erX5qhkXE1LwLSPIzobtOWFsMHf2yrXGKBLnnpuVHprI3sAw==", - "dev": true - }, - "@ethersproject/properties": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.0.2.tgz", - "integrity": "sha512-FxAisPGAOACQjMJzewl9OJG6lsGCPTm5vpUMtfeoxzAlAb2lv+kHzQPUh9h4jfAILzE8AR1jgXMzRmlhwyra1Q==", + "@ethereumjs/vm": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/@ethereumjs/vm/-/vm-5.4.1.tgz", + "integrity": "sha512-cpQcg5CtjzXJBn8QNiobaiWckeN/ZQwsDHLYa9df2wBEUvzuEZgFWK48YEXSpx3CnUY9fNT/lgA9CzKdq8HTzQ==", "dev": true, "requires": { - "@ethersproject/logger": "^5.0.0" - } - }, - "@ethersproject/rlp": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.0.2.tgz", - "integrity": "sha512-oE0M5jqQ67fi2SuMcrpoewOpEuoXaD8M9JeR9md1bXRMvDYgKXUtDHs22oevpEOdnO2DPIRabp6MVHa4aDuWmw==", - "dev": true, - "requires": { - "@ethersproject/bytes": "^5.0.0", - "@ethersproject/logger": "^5.0.0" + "@ethereumjs/block": "^3.3.0", + "@ethereumjs/blockchain": "^5.3.0", + "@ethereumjs/common": "^2.3.1", + "@ethereumjs/tx": "^3.2.1", + "async-eventemitter": "^0.2.4", + "core-js-pure": "^3.0.1", + "debug": "^2.2.0", + "ethereumjs-util": "^7.0.10", + "functional-red-black-tree": "^1.0.1", + "mcl-wasm": "^0.7.1", + "merkle-patricia-tree": "^4.2.0", + "rustbn.js": "~0.2.0", + "util.promisify": "^1.0.1" + }, + "dependencies": { + "@types/bn.js": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.0.tgz", + "integrity": "sha512-QSSVYj7pYFN49kW77o2s9xTCwZ8F2xLbjLLSEVh8D2F4JUhZtPAGOFLTD+ffqksBx/u4cE/KImFjyhqCjn/LIA==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ethereumjs-util": { + "version": "7.0.10", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.0.10.tgz", + "integrity": "sha512-c/xThw6A+EAnej5Xk5kOzFzyoSnw0WX0tSlZ6pAsfGVvQj3TItaDg9b1+Fz1RJXA+y2YksKwQnuzgt1eY6LKzw==", + "dev": true, + "requires": { + "@types/bn.js": "^5.1.0", + "bn.js": "^5.1.2", + "create-hash": "^1.1.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "0.1.6", + "rlp": "^2.2.4" + } + }, + "level-ws": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/level-ws/-/level-ws-2.0.0.tgz", + "integrity": "sha512-1iv7VXx0G9ec1isqQZ7y5LmoZo/ewAsyDHNA8EFDW5hqH2Kqovm33nSFkSdnLLAK+I5FlT+lo5Cw9itGe+CpQA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "readable-stream": "^3.1.0", + "xtend": "^4.0.1" + } + }, + "merkle-patricia-tree": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/merkle-patricia-tree/-/merkle-patricia-tree-4.2.0.tgz", + "integrity": "sha512-0sBVXs7z1Q1/kxzWZ3nPnxSPiaHKF/f497UQzt9O7isRcS10tel9jM/4TivF6Jv7V1yFq4bWyoATxbDUOen5vQ==", + "dev": true, + "requires": { + "@types/levelup": "^4.3.0", + "ethereumjs-util": "^7.0.10", + "level-mem": "^5.0.1", + "level-ws": "^2.0.0", + "readable-stream": "^3.6.0", + "rlp": "^2.2.4", + "semaphore-async-await": "^1.5.1" + } + }, + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } } }, - "@ethersproject/signing-key": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.0.3.tgz", - "integrity": "sha512-5QPZaBRGCLzfVMbFb3LcVjNR0UbTXnwDHASnQYfbzwUOnFYHKxHsrcbl/5ONGoppgi8yXgOocKqlPCFycJJVWQ==", + "@ethersproject/abi": { + "version": "5.0.0-beta.153", + "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.0.0-beta.153.tgz", + "integrity": "sha512-aXweZ1Z7vMNzJdLpR1CZUAIgnwjrZeUSvN9syCwlBaEBUFJmFY+HHnfuTI5vIhVs/mRkfJVrbEyl51JZQqyjAg==", "dev": true, "requires": { - "@ethersproject/bytes": "^5.0.0", - "@ethersproject/logger": "^5.0.0", - "@ethersproject/properties": "^5.0.0", - "elliptic": "6.5.3" + "@ethersproject/address": ">=5.0.0-beta.128", + "@ethersproject/bignumber": ">=5.0.0-beta.130", + "@ethersproject/bytes": ">=5.0.0-beta.129", + "@ethersproject/constants": ">=5.0.0-beta.128", + "@ethersproject/hash": ">=5.0.0-beta.128", + "@ethersproject/keccak256": ">=5.0.0-beta.127", + "@ethersproject/logger": ">=5.0.0-beta.129", + "@ethersproject/properties": ">=5.0.0-beta.131", + "@ethersproject/strings": ">=5.0.0-beta.130" + } + }, + "@ethersproject/abstract-provider": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.3.0.tgz", + "integrity": "sha512-1+MLhGP1GwxBDBNwMWVmhCsvKwh4gK7oIfOrmlmePNeskg1NhIrYssraJBieaFNHUYfKEd/1DjiVZMw8Qu5Cxw==", + "requires": { + "@ethersproject/bignumber": "^5.3.0", + "@ethersproject/bytes": "^5.3.0", + "@ethersproject/logger": "^5.3.0", + "@ethersproject/networks": "^5.3.0", + "@ethersproject/properties": "^5.3.0", + "@ethersproject/transactions": "^5.3.0", + "@ethersproject/web": "^5.3.0" }, "dependencies": { + "@ethersproject/address": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.3.0.tgz", + "integrity": "sha512-29TgjzEBK+gUEUAOfWCG7s9IxLNLCqvr+oDSk6L9TXD0VLvZJKhJV479tKQqheVA81OeGxfpdxYtUVH8hqlCvA==", + "requires": { + "@ethersproject/bignumber": "^5.3.0", + "@ethersproject/bytes": "^5.3.0", + "@ethersproject/keccak256": "^5.3.0", + "@ethersproject/logger": "^5.3.0", + "@ethersproject/rlp": "^5.3.0" + } + }, + "@ethersproject/bignumber": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.3.0.tgz", + "integrity": "sha512-5xguJ+Q1/zRMgHgDCaqAexx/8DwDVLRemw2i6uR8KyGjwGdXI8f32QZZ1cKGucBN6ekJvpUpHy6XAuQnTv0mPA==", + "requires": { + "@ethersproject/bytes": "^5.3.0", + "@ethersproject/logger": "^5.3.0", + "bn.js": "^4.11.9" + } + }, + "@ethersproject/bytes": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.3.0.tgz", + "integrity": "sha512-rqLJjdVqCcn7glPer7Fxh87PRqlnRScVAoxcIP3PmOUNApMWJ6yRdOFfo2KvPAdO7Le3yEI1o0YW+Yvr7XCYvw==", + "requires": { + "@ethersproject/logger": "^5.3.0" + } + }, + "@ethersproject/constants": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.3.0.tgz", + "integrity": "sha512-4y1feNOwEpgjAfiCFWOHznvv6qUF/H6uI0UKp8xdhftb+H+FbKflXg1pOgH5qs4Sr7EYBL+zPyPb+YD5g1aEyw==", + "requires": { + "@ethersproject/bignumber": "^5.3.0" + } + }, + "@ethersproject/keccak256": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.3.0.tgz", + "integrity": "sha512-Gv2YqgIUmRbYVNIibafT0qGaeGYLIA/EdWHJ7JcVxVSs2vyxafGxOJ5VpSBHWeOIsE6OOaCelYowhuuTicgdFQ==", + "requires": { + "@ethersproject/bytes": "^5.3.0", + "js-sha3": "0.5.7" + } + }, + "@ethersproject/logger": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.3.0.tgz", + "integrity": "sha512-8bwJ2gxJGkZZnpQSq5uSiZSJjyVTWmlGft4oH8vxHdvO1Asy4TwVepAhPgxIQIMxXZFUNMych1YjIV4oQ4I7dA==" + }, + "@ethersproject/properties": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.3.0.tgz", + "integrity": "sha512-PaHxJyM5/bfusk6vr3yP//JMnm4UEojpzuWGTmtL5X4uNhNnFNvlYilZLyDr4I9cTkIbipCMsAuIcXWsmdRnEw==", + "requires": { + "@ethersproject/logger": "^5.3.0" + } + }, + "@ethersproject/rlp": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.3.0.tgz", + "integrity": "sha512-oI0joYpsRanl9guDubaW+1NbcpK0vJ3F/6Wpcanzcnqq+oaW9O5E98liwkEDPcb16BUTLIJ+ZF8GPIHYxJ/5Pw==", + "requires": { + "@ethersproject/bytes": "^5.3.0", + "@ethersproject/logger": "^5.3.0" + } + }, + "@ethersproject/signing-key": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.3.0.tgz", + "integrity": "sha512-+DX/GwHAd0ok1bgedV1cKO0zfK7P/9aEyNoaYiRsGHpCecN7mhLqcdoUiUzE7Uz86LBsxm5ssK0qA1kBB47fbQ==", + "requires": { + "@ethersproject/bytes": "^5.3.0", + "@ethersproject/logger": "^5.3.0", + "@ethersproject/properties": "^5.3.0", + "bn.js": "^4.11.9", + "elliptic": "6.5.4", + "hash.js": "1.1.7" + } + }, + "@ethersproject/transactions": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.3.0.tgz", + "integrity": "sha512-cdfK8VVyW2oEBCXhURG0WQ6AICL/r6Gmjh0e4Bvbv6MCn/GBd8FeBH3rtl7ho+AW50csMKeGv3m3K1HSHB2jMQ==", + "requires": { + "@ethersproject/address": "^5.3.0", + "@ethersproject/bignumber": "^5.3.0", + "@ethersproject/bytes": "^5.3.0", + "@ethersproject/constants": "^5.3.0", + "@ethersproject/keccak256": "^5.3.0", + "@ethersproject/logger": "^5.3.0", + "@ethersproject/properties": "^5.3.0", + "@ethersproject/rlp": "^5.3.0", + "@ethersproject/signing-key": "^5.3.0" + } + }, "bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", - "dev": true + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" }, "elliptic": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.3.tgz", - "integrity": "sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw==", - "dev": true, + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", + "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", "requires": { - "bn.js": "^4.4.0", - "brorand": "^1.0.1", + "bn.js": "^4.11.9", + "brorand": "^1.1.0", "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.0" + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "js-sha3": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.7.tgz", + "integrity": "sha1-DU/9gALVMzqrr0oj7tL2N0yfKOc=" } } }, - "@ethersproject/strings": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.0.2.tgz", - "integrity": "sha512-oNa+xvSqsFU96ndzog0IBTtsRFGOqGpzrXJ7shXLBT7juVeSEyZA/sYs0DMZB5mJ9FEjHdZKxR/rTyBY91vuXg==", - "dev": true, - "requires": { - "@ethersproject/bytes": "^5.0.0", - "@ethersproject/constants": "^5.0.0", - "@ethersproject/logger": "^5.0.0" + "@ethersproject/abstract-signer": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.3.0.tgz", + "integrity": "sha512-w8IFwOYqiPrtvosPuArZ3+QPR2nmdVTRrVY8uJYL3NNfMmQfTy3V3l2wbzX47UUlNbPJY+gKvzJAyvK1onZxJg==", + "requires": { + "@ethersproject/abstract-provider": "^5.3.0", + "@ethersproject/bignumber": "^5.3.0", + "@ethersproject/bytes": "^5.3.0", + "@ethersproject/logger": "^5.3.0", + "@ethersproject/properties": "^5.3.0" + }, + "dependencies": { + "@ethersproject/bignumber": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.3.0.tgz", + "integrity": "sha512-5xguJ+Q1/zRMgHgDCaqAexx/8DwDVLRemw2i6uR8KyGjwGdXI8f32QZZ1cKGucBN6ekJvpUpHy6XAuQnTv0mPA==", + "requires": { + "@ethersproject/bytes": "^5.3.0", + "@ethersproject/logger": "^5.3.0", + "bn.js": "^4.11.9" + } + }, + "@ethersproject/bytes": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.3.0.tgz", + "integrity": "sha512-rqLJjdVqCcn7glPer7Fxh87PRqlnRScVAoxcIP3PmOUNApMWJ6yRdOFfo2KvPAdO7Le3yEI1o0YW+Yvr7XCYvw==", + "requires": { + "@ethersproject/logger": "^5.3.0" + } + }, + "@ethersproject/logger": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.3.0.tgz", + "integrity": "sha512-8bwJ2gxJGkZZnpQSq5uSiZSJjyVTWmlGft4oH8vxHdvO1Asy4TwVepAhPgxIQIMxXZFUNMych1YjIV4oQ4I7dA==" + }, + "@ethersproject/properties": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.3.0.tgz", + "integrity": "sha512-PaHxJyM5/bfusk6vr3yP//JMnm4UEojpzuWGTmtL5X4uNhNnFNvlYilZLyDr4I9cTkIbipCMsAuIcXWsmdRnEw==", + "requires": { + "@ethersproject/logger": "^5.3.0" + } + }, + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + } } }, - "@ethersproject/transactions": { + "@ethersproject/address": { "version": "5.0.2", - "resolved": "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.0.2.tgz", - "integrity": "sha512-jZp0ZbbJlq4JLZY6qoMzNtp2HQsX6USQposi3ns0MPUdn3OdZJBDtrcO15r/2VS5t/K1e1GE5MI1HmMKlcTbbQ==", - "dev": true, + "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.0.2.tgz", + "integrity": "sha512-+rz26RKj7ujGfQynys4V9VJRbR+wpC6eL8F22q3raWMH3152Ha31GwJPWzxE/bEA+43M/zTNVwY0R53gn53L2Q==", "requires": { - "@ethersproject/address": "^5.0.0", "@ethersproject/bignumber": "^5.0.0", "@ethersproject/bytes": "^5.0.0", - "@ethersproject/constants": "^5.0.0", "@ethersproject/keccak256": "^5.0.0", "@ethersproject/logger": "^5.0.0", - "@ethersproject/properties": "^5.0.0", "@ethersproject/rlp": "^5.0.0", - "@ethersproject/signing-key": "^5.0.0" - } - }, - "@nodelib/fs.scandir": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz", - "integrity": "sha512-eGmwYQn3gxo4r7jdQnkrrN6bY478C3P+a/y72IJukF8LjB6ZHeB3c+Ehacj3sYeSmUXGlnA67/PmbM9CVwL7Dw==", - "dev": true, - "requires": { - "@nodelib/fs.stat": "2.0.3", - "run-parallel": "^1.1.9" + "bn.js": "^4.4.0" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==" + } } }, - "@nodelib/fs.stat": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz", - "integrity": "sha512-bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA==", - "dev": true - }, - "@nodelib/fs.walk": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.4.tgz", - "integrity": "sha512-1V9XOY4rDW0rehzbrcqAmHnz8e7SKvX27gh8Gt2WgB0+pdzdiLV83p72kZPU+jvMbS1qU5mauP2iOvO8rhmurQ==", - "dev": true, + "@ethersproject/base64": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.3.0.tgz", + "integrity": "sha512-JIqgtOmgKcbc2sjGWTXyXktqUhvFUDte8fPVsAaOrcPiJf6YotNF+nsrOYGC9pbHBEGSuSBp3QR0varkO8JHEw==", "requires": { - "@nodelib/fs.scandir": "2.1.3", - "fastq": "^1.6.0" + "@ethersproject/bytes": "^5.3.0" + }, + "dependencies": { + "@ethersproject/bytes": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.3.0.tgz", + "integrity": "sha512-rqLJjdVqCcn7glPer7Fxh87PRqlnRScVAoxcIP3PmOUNApMWJ6yRdOFfo2KvPAdO7Le3yEI1o0YW+Yvr7XCYvw==", + "requires": { + "@ethersproject/logger": "^5.3.0" + } + }, + "@ethersproject/logger": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.3.0.tgz", + "integrity": "sha512-8bwJ2gxJGkZZnpQSq5uSiZSJjyVTWmlGft4oH8vxHdvO1Asy4TwVepAhPgxIQIMxXZFUNMych1YjIV4oQ4I7dA==" + } } }, - "@openzeppelin/contract-loader": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/@openzeppelin/contract-loader/-/contract-loader-0.4.0.tgz", - "integrity": "sha512-K+Pl4tn0FbxMSP0H9sgi61ayCbecpqhQmuBshelC7A3q2MlpcqWRJan0xijpwdtv6TORNd5oZNe/+f3l+GD6tw==", + "@ethersproject/basex": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/basex/-/basex-5.3.0.tgz", + "integrity": "sha512-8J4nS6t/SOnoCgr3DF5WCSRLC5YwTKYpZWJqeyYQLX+86TwPhtzvHXacODzcDII9tWKhVg6g0Bka8JCBWXsCiQ==", "dev": true, "requires": { - "find-up": "^4.1.0", - "fs-extra": "^8.1.0", - "try-require": "^1.2.1" + "@ethersproject/bytes": "^5.3.0", + "@ethersproject/properties": "^5.3.0" }, "dependencies": { - "fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "@ethersproject/bytes": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.3.0.tgz", + "integrity": "sha512-rqLJjdVqCcn7glPer7Fxh87PRqlnRScVAoxcIP3PmOUNApMWJ6yRdOFfo2KvPAdO7Le3yEI1o0YW+Yvr7XCYvw==", "dev": true, "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" + "@ethersproject/logger": "^5.3.0" } }, - "graceful-fs": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", - "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", + "@ethersproject/logger": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.3.0.tgz", + "integrity": "sha512-8bwJ2gxJGkZZnpQSq5uSiZSJjyVTWmlGft4oH8vxHdvO1Asy4TwVepAhPgxIQIMxXZFUNMych1YjIV4oQ4I7dA==", "dev": true + }, + "@ethersproject/properties": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.3.0.tgz", + "integrity": "sha512-PaHxJyM5/bfusk6vr3yP//JMnm4UEojpzuWGTmtL5X4uNhNnFNvlYilZLyDr4I9cTkIbipCMsAuIcXWsmdRnEw==", + "dev": true, + "requires": { + "@ethersproject/logger": "^5.3.0" + } + } + } + }, + "@ethersproject/bignumber": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.0.5.tgz", + "integrity": "sha512-24ln7PV0g8ZzjcVZiLW9Wod0i+XCmK6zKkAaxw5enraTIT1p7gVOcSXFSzNQ9WYAwtiFQPvvA+TIO2oEITZNJA==", + "requires": { + "@ethersproject/bytes": "^5.0.0", + "@ethersproject/logger": "^5.0.0", + "bn.js": "^4.4.0" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==" } } }, - "@openzeppelin/test-helpers": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/@openzeppelin/test-helpers/-/test-helpers-0.5.6.tgz", - "integrity": "sha512-8U4sR4ed4cFmc6UKj7akUxZzQJKU9P3p/3RbF+urQuRLLhBaB8zSya1m9VB7/anYEZnBmTDk8LuVgAmYaCPs9A==", + "@ethersproject/bytes": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.0.3.tgz", + "integrity": "sha512-AyPMAlY+Amaw4Zfp8OAivm1xYPI8mqiUYmEnSUk1CnS2NrQGHEMmFJFiOJdS3gDDpgSOFhWIjZwxKq2VZpqNTA==", + "requires": { + "@ethersproject/logger": "^5.0.0" + } + }, + "@ethersproject/constants": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.0.2.tgz", + "integrity": "sha512-nNoVlNP6bgpog7pQ2EyD1xjlaXcy1Cl4kK5v1KoskHj58EtB6TK8M8AFGi3GgHTdMldfT4eN3OsoQ/CdOTVNFA==", "dev": true, "requires": { - "@openzeppelin/contract-loader": "^0.4.0", - "@truffle/contract": "^4.0.35 <4.2.2", - "ansi-colors": "^3.2.3", - "chai": "^4.2.0", - "chai-bn": "^0.2.1", - "ethjs-abi": "^0.2.1", - "lodash.flatten": "^4.4.0", - "semver": "^5.6.0", - "web3": "^1.2.1", - "web3-utils": "^1.2.1" + "@ethersproject/bignumber": "^5.0.0" + } + }, + "@ethersproject/contracts": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/contracts/-/contracts-5.3.0.tgz", + "integrity": "sha512-eDyQ8ltykvyQqnGZxb/c1e0OnEtzqXhNNC4BX8nhYBCaoBrYYuK/1fLmyEvc5+XUMoxNhwpYkoSSwvPLci7/Zg==", + "dev": true, + "requires": { + "@ethersproject/abi": "^5.3.0", + "@ethersproject/abstract-provider": "^5.3.0", + "@ethersproject/abstract-signer": "^5.3.0", + "@ethersproject/address": "^5.3.0", + "@ethersproject/bignumber": "^5.3.0", + "@ethersproject/bytes": "^5.3.0", + "@ethersproject/constants": "^5.3.0", + "@ethersproject/logger": "^5.3.0", + "@ethersproject/properties": "^5.3.0", + "@ethersproject/transactions": "^5.3.0" }, "dependencies": { - "@truffle/blockchain-utils": { - "version": "0.0.18", - "resolved": "https://registry.npmjs.org/@truffle/blockchain-utils/-/blockchain-utils-0.0.18.tgz", - "integrity": "sha512-XnRu5p1QO9krJizOeBY5WfzPDvEOmCnOT5u6qF8uN3Kkq9vcH3ZqW4XTuzz9ERZNpZfWb3UJx4PUosgeHLs5vw==", + "@ethersproject/abi": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.3.1.tgz", + "integrity": "sha512-F98FWTJG7nWWAQ4DcV6R0cSlrj67MWK3ylahuFbzkumem5cLWg1p7fZ3vIdRoS1c7TEf55Lvyx0w7ICR47IImw==", "dev": true, "requires": { - "source-map-support": "^0.5.16" + "@ethersproject/address": "^5.3.0", + "@ethersproject/bignumber": "^5.3.0", + "@ethersproject/bytes": "^5.3.0", + "@ethersproject/constants": "^5.3.0", + "@ethersproject/hash": "^5.3.0", + "@ethersproject/keccak256": "^5.3.0", + "@ethersproject/logger": "^5.3.0", + "@ethersproject/properties": "^5.3.0", + "@ethersproject/strings": "^5.3.0" } }, - "@truffle/contract": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@truffle/contract/-/contract-4.2.1.tgz", - "integrity": "sha512-af1rUyU/W75GYHt/i7r+NwHozwaCma7V/q/+SRZ3Cw2MFaGOQ0dA/ZGhH8P1F0fmDiUe1DBEIbKxXWai0PWFYg==", - "dev": true, - "requires": { - "@truffle/blockchain-utils": "^0.0.18", - "@truffle/contract-schema": "^3.1.0", - "@truffle/error": "^0.0.8", - "@truffle/interface-adapter": "^0.4.6", - "bignumber.js": "^7.2.1", - "ethereum-ens": "^0.8.0", - "ethers": "^4.0.0-beta.1", - "exorcist": "^1.0.1", - "source-map-support": "^0.5.16", - "web3": "1.2.1", - "web3-core-promievent": "1.2.1", - "web3-eth-abi": "1.2.1", - "web3-utils": "1.2.1" - }, - "dependencies": { - "web3": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3/-/web3-1.2.1.tgz", - "integrity": "sha512-nNMzeCK0agb5i/oTWNdQ1aGtwYfXzHottFP2Dz0oGIzavPMGSKyVlr8ibVb1yK5sJBjrWVnTdGaOC2zKDFuFRw==", - "dev": true, - "requires": { - "web3-bzz": "1.2.1", - "web3-core": "1.2.1", - "web3-eth": "1.2.1", - "web3-eth-personal": "1.2.1", - "web3-net": "1.2.1", - "web3-shh": "1.2.1", - "web3-utils": "1.2.1" - } - } + "@ethersproject/address": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.3.0.tgz", + "integrity": "sha512-29TgjzEBK+gUEUAOfWCG7s9IxLNLCqvr+oDSk6L9TXD0VLvZJKhJV479tKQqheVA81OeGxfpdxYtUVH8hqlCvA==", + "dev": true, + "requires": { + "@ethersproject/bignumber": "^5.3.0", + "@ethersproject/bytes": "^5.3.0", + "@ethersproject/keccak256": "^5.3.0", + "@ethersproject/logger": "^5.3.0", + "@ethersproject/rlp": "^5.3.0" } }, - "bignumber.js": { - "version": "7.2.1", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-7.2.1.tgz", - "integrity": "sha512-S4XzBk5sMB+Rcb/LNcpzXr57VRTxgAvaAEDAl1AwRx27j00hT84O6OkteE7u8UB3NuaaygCRrEpqox4uDOrbdQ==", - "dev": true - }, - "bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", - "dev": true - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "@ethersproject/bignumber": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.3.0.tgz", + "integrity": "sha512-5xguJ+Q1/zRMgHgDCaqAexx/8DwDVLRemw2i6uR8KyGjwGdXI8f32QZZ1cKGucBN6ekJvpUpHy6XAuQnTv0mPA==", "dev": true, "requires": { - "ms": "2.0.0" + "@ethersproject/bytes": "^5.3.0", + "@ethersproject/logger": "^5.3.0", + "bn.js": "^4.11.9" } }, - "p-cancelable": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.3.0.tgz", - "integrity": "sha512-RVbZPLso8+jFeq1MfNvgXtCRED2raz/dKpacfTNxsx6pLEpEomM7gah6VeHSYV3+vo0OAi4MkArtQcWWXuQoyw==", - "dev": true - }, - "prepend-http": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", - "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=", - "dev": true - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - }, - "swarm-js": { - "version": "0.1.39", - "resolved": "https://registry.npmjs.org/swarm-js/-/swarm-js-0.1.39.tgz", - "integrity": "sha512-QLMqL2rzF6n5s50BptyD6Oi0R1aWlJC5Y17SRIVXRj6OR1DRIPM7nepvrxxkjA1zNzFz6mUOMjfeqeDaWB7OOg==", + "@ethersproject/bytes": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.3.0.tgz", + "integrity": "sha512-rqLJjdVqCcn7glPer7Fxh87PRqlnRScVAoxcIP3PmOUNApMWJ6yRdOFfo2KvPAdO7Le3yEI1o0YW+Yvr7XCYvw==", "dev": true, "requires": { - "bluebird": "^3.5.0", - "buffer": "^5.0.5", - "decompress": "^4.0.0", - "eth-lib": "^0.1.26", - "fs-extra": "^4.0.2", - "got": "^7.1.0", - "mime-types": "^2.1.16", - "mkdirp-promise": "^5.0.1", - "mock-fs": "^4.1.0", - "setimmediate": "^1.0.5", - "tar": "^4.0.2", - "xhr-request-promise": "^0.1.2" - }, - "dependencies": { - "got": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/got/-/got-7.1.0.tgz", - "integrity": "sha512-Y5WMo7xKKq1muPsxD+KmrR8DH5auG7fBdDVueZwETwV6VytKyU9OX/ddpq2/1hp1vIPvVb4T81dKQz3BivkNLw==", - "dev": true, - "requires": { - "decompress-response": "^3.2.0", - "duplexer3": "^0.1.4", - "get-stream": "^3.0.0", - "is-plain-obj": "^1.1.0", - "is-retry-allowed": "^1.0.0", - "is-stream": "^1.0.0", - "isurl": "^1.0.0-alpha5", - "lowercase-keys": "^1.0.0", - "p-cancelable": "^0.3.0", - "p-timeout": "^1.1.1", - "safe-buffer": "^5.0.1", - "timed-out": "^4.0.0", - "url-parse-lax": "^1.0.0", - "url-to-options": "^1.0.1" - } - } + "@ethersproject/logger": "^5.3.0" } }, - "underscore": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.9.1.tgz", - "integrity": "sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg==", - "dev": true + "@ethersproject/constants": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.3.0.tgz", + "integrity": "sha512-4y1feNOwEpgjAfiCFWOHznvv6qUF/H6uI0UKp8xdhftb+H+FbKflXg1pOgH5qs4Sr7EYBL+zPyPb+YD5g1aEyw==", + "dev": true, + "requires": { + "@ethersproject/bignumber": "^5.3.0" + } }, - "url-parse-lax": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", - "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", + "@ethersproject/hash": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.3.0.tgz", + "integrity": "sha512-gAFZSjUPQ32CIfoKSMtMEQ+IO0kQxqhwz9fCIFt2DtAq2u4pWt8mL9Z5P0r6KkLcQU8LE9FmuPPyd+JvBzmr1w==", "dev": true, "requires": { - "prepend-http": "^1.0.1" + "@ethersproject/abstract-signer": "^5.3.0", + "@ethersproject/address": "^5.3.0", + "@ethersproject/bignumber": "^5.3.0", + "@ethersproject/bytes": "^5.3.0", + "@ethersproject/keccak256": "^5.3.0", + "@ethersproject/logger": "^5.3.0", + "@ethersproject/properties": "^5.3.0", + "@ethersproject/strings": "^5.3.0" } }, - "web3-bzz": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-bzz/-/web3-bzz-1.2.1.tgz", - "integrity": "sha512-LdOO44TuYbGIPfL4ilkuS89GQovxUpmLz6C1UC7VYVVRILeZS740FVB3j9V4P4FHUk1RenaDfKhcntqgVCHtjw==", + "@ethersproject/keccak256": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.3.0.tgz", + "integrity": "sha512-Gv2YqgIUmRbYVNIibafT0qGaeGYLIA/EdWHJ7JcVxVSs2vyxafGxOJ5VpSBHWeOIsE6OOaCelYowhuuTicgdFQ==", "dev": true, "requires": { - "got": "9.6.0", - "swarm-js": "0.1.39", - "underscore": "1.9.1" + "@ethersproject/bytes": "^5.3.0", + "js-sha3": "0.5.7" } }, - "web3-core": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-1.2.1.tgz", - "integrity": "sha512-5ODwIqgl8oIg/0+Ai4jsLxkKFWJYE0uLuE1yUKHNVCL4zL6n3rFjRMpKPokd6id6nJCNgeA64KdWQ4XfpnjdMg==", + "@ethersproject/logger": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.3.0.tgz", + "integrity": "sha512-8bwJ2gxJGkZZnpQSq5uSiZSJjyVTWmlGft4oH8vxHdvO1Asy4TwVepAhPgxIQIMxXZFUNMych1YjIV4oQ4I7dA==", + "dev": true + }, + "@ethersproject/properties": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.3.0.tgz", + "integrity": "sha512-PaHxJyM5/bfusk6vr3yP//JMnm4UEojpzuWGTmtL5X4uNhNnFNvlYilZLyDr4I9cTkIbipCMsAuIcXWsmdRnEw==", "dev": true, "requires": { - "web3-core-helpers": "1.2.1", - "web3-core-method": "1.2.1", - "web3-core-requestmanager": "1.2.1", - "web3-utils": "1.2.1" + "@ethersproject/logger": "^5.3.0" } }, - "web3-core-method": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.2.1.tgz", - "integrity": "sha512-Ghg2WS23qi6Xj8Od3VCzaImLHseEA7/usvnOItluiIc5cKs00WYWsNy2YRStzU9a2+z8lwQywPYp0nTzR/QXdQ==", + "@ethersproject/rlp": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.3.0.tgz", + "integrity": "sha512-oI0joYpsRanl9guDubaW+1NbcpK0vJ3F/6Wpcanzcnqq+oaW9O5E98liwkEDPcb16BUTLIJ+ZF8GPIHYxJ/5Pw==", "dev": true, "requires": { - "underscore": "1.9.1", - "web3-core-helpers": "1.2.1", - "web3-core-promievent": "1.2.1", - "web3-core-subscriptions": "1.2.1", - "web3-utils": "1.2.1" + "@ethersproject/bytes": "^5.3.0", + "@ethersproject/logger": "^5.3.0" } }, - "web3-core-requestmanager": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.2.1.tgz", - "integrity": "sha512-xfknTC69RfYmLKC+83Jz73IC3/sS2ZLhGtX33D4Q5nQ8yc39ElyAolxr9sJQS8kihOcM6u4J+8gyGMqsLcpIBg==", + "@ethersproject/signing-key": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.3.0.tgz", + "integrity": "sha512-+DX/GwHAd0ok1bgedV1cKO0zfK7P/9aEyNoaYiRsGHpCecN7mhLqcdoUiUzE7Uz86LBsxm5ssK0qA1kBB47fbQ==", "dev": true, "requires": { - "underscore": "1.9.1", - "web3-core-helpers": "1.2.1", - "web3-providers-http": "1.2.1", - "web3-providers-ipc": "1.2.1", - "web3-providers-ws": "1.2.1" + "@ethersproject/bytes": "^5.3.0", + "@ethersproject/logger": "^5.3.0", + "@ethersproject/properties": "^5.3.0", + "bn.js": "^4.11.9", + "elliptic": "6.5.4", + "hash.js": "1.1.7" } }, - "web3-core-subscriptions": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.2.1.tgz", - "integrity": "sha512-nmOwe3NsB8V8UFsY1r+sW6KjdOS68h8nuh7NzlWxBQT/19QSUGiERRTaZXWu5BYvo1EoZRMxCKyCQpSSXLc08g==", + "@ethersproject/strings": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.3.0.tgz", + "integrity": "sha512-j/AzIGZ503cvhuF2ldRSjB0BrKzpsBMtCieDtn4TYMMZMQ9zScJn9wLzTQl/bRNvJbBE6TOspK0r8/Ngae/f2Q==", "dev": true, "requires": { - "eventemitter3": "3.1.2", - "underscore": "1.9.1", - "web3-core-helpers": "1.2.1" + "@ethersproject/bytes": "^5.3.0", + "@ethersproject/constants": "^5.3.0", + "@ethersproject/logger": "^5.3.0" } }, - "web3-eth": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-eth/-/web3-eth-1.2.1.tgz", - "integrity": "sha512-/2xly4Yry5FW1i+uygPjhfvgUP/MS/Dk+PDqmzp5M88tS86A+j8BzKc23GrlA8sgGs0645cpZK/999LpEF5UdA==", + "@ethersproject/transactions": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.3.0.tgz", + "integrity": "sha512-cdfK8VVyW2oEBCXhURG0WQ6AICL/r6Gmjh0e4Bvbv6MCn/GBd8FeBH3rtl7ho+AW50csMKeGv3m3K1HSHB2jMQ==", "dev": true, "requires": { - "underscore": "1.9.1", - "web3-core": "1.2.1", - "web3-core-helpers": "1.2.1", - "web3-core-method": "1.2.1", - "web3-core-subscriptions": "1.2.1", - "web3-eth-abi": "1.2.1", - "web3-eth-accounts": "1.2.1", - "web3-eth-contract": "1.2.1", - "web3-eth-ens": "1.2.1", - "web3-eth-iban": "1.2.1", - "web3-eth-personal": "1.2.1", - "web3-net": "1.2.1", - "web3-utils": "1.2.1" + "@ethersproject/address": "^5.3.0", + "@ethersproject/bignumber": "^5.3.0", + "@ethersproject/bytes": "^5.3.0", + "@ethersproject/constants": "^5.3.0", + "@ethersproject/keccak256": "^5.3.0", + "@ethersproject/logger": "^5.3.0", + "@ethersproject/properties": "^5.3.0", + "@ethersproject/rlp": "^5.3.0", + "@ethersproject/signing-key": "^5.3.0" } }, - "web3-eth-accounts": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.2.1.tgz", - "integrity": "sha512-26I4qq42STQ8IeKUyur3MdQ1NzrzCqPsmzqpux0j6X/XBD7EjZ+Cs0lhGNkSKH5dI3V8CJasnQ5T1mNKeWB7nQ==", + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + }, + "elliptic": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", + "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", "dev": true, "requires": { - "any-promise": "1.3.0", - "crypto-browserify": "3.12.0", - "eth-lib": "0.2.7", - "scryptsy": "2.1.0", - "semver": "6.2.0", - "underscore": "1.9.1", - "uuid": "3.3.2", - "web3-core": "1.2.1", - "web3-core-helpers": "1.2.1", - "web3-core-method": "1.2.1", - "web3-utils": "1.2.1" - }, - "dependencies": { - "eth-lib": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.7.tgz", - "integrity": "sha1-L5Pxex4jrsN1nNSj/iDBKGo/wco=", - "dev": true, - "requires": { - "bn.js": "^4.11.6", - "elliptic": "^6.4.0", - "xhr-request-promise": "^0.1.2" - } - }, - "semver": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.2.0.tgz", - "integrity": "sha512-jdFC1VdUGT/2Scgbimf7FSx9iJLXoqfglSF+gJeuNWVpiE37OIbc1jywR/GJyFdz3mnkz2/id0L0J/cr0izR5A==", - "dev": true - } + "bn.js": "^4.11.9", + "brorand": "^1.1.0", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" } }, - "web3-eth-contract": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.2.1.tgz", - "integrity": "sha512-kYFESbQ3boC9bl2rYVghj7O8UKMiuKaiMkxvRH5cEDHil8V7MGEGZNH0slSdoyeftZVlaWSMqkRP/chfnKND0g==", + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + } + } + }, + "@ethersproject/hash": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.0.2.tgz", + "integrity": "sha512-dWGvNwmVRX2bxoQQ3ciMw46Vzl1nqfL+5R8+2ZxsRXD3Cjgw1dL2mdjJF7xMMWPvPdrlhKXWSK0gb8VLwHZ8Cw==", + "dev": true, + "requires": { + "@ethersproject/bytes": "^5.0.0", + "@ethersproject/keccak256": "^5.0.0", + "@ethersproject/logger": "^5.0.0", + "@ethersproject/strings": "^5.0.0" + } + }, + "@ethersproject/hdnode": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/hdnode/-/hdnode-5.3.0.tgz", + "integrity": "sha512-zLmmtLNoDMGoYRdjOab01Zqkvp+TmZyCGDAMQF1Bs3yZyBs/kzTNi1qJjR1jVUcPP5CWGtjFwY8iNG8oNV9J8g==", + "dev": true, + "requires": { + "@ethersproject/abstract-signer": "^5.3.0", + "@ethersproject/basex": "^5.3.0", + "@ethersproject/bignumber": "^5.3.0", + "@ethersproject/bytes": "^5.3.0", + "@ethersproject/logger": "^5.3.0", + "@ethersproject/pbkdf2": "^5.3.0", + "@ethersproject/properties": "^5.3.0", + "@ethersproject/sha2": "^5.3.0", + "@ethersproject/signing-key": "^5.3.0", + "@ethersproject/strings": "^5.3.0", + "@ethersproject/transactions": "^5.3.0", + "@ethersproject/wordlists": "^5.3.0" + }, + "dependencies": { + "@ethersproject/address": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.3.0.tgz", + "integrity": "sha512-29TgjzEBK+gUEUAOfWCG7s9IxLNLCqvr+oDSk6L9TXD0VLvZJKhJV479tKQqheVA81OeGxfpdxYtUVH8hqlCvA==", "dev": true, "requires": { - "underscore": "1.9.1", - "web3-core": "1.2.1", - "web3-core-helpers": "1.2.1", - "web3-core-method": "1.2.1", - "web3-core-promievent": "1.2.1", - "web3-core-subscriptions": "1.2.1", - "web3-eth-abi": "1.2.1", - "web3-utils": "1.2.1" + "@ethersproject/bignumber": "^5.3.0", + "@ethersproject/bytes": "^5.3.0", + "@ethersproject/keccak256": "^5.3.0", + "@ethersproject/logger": "^5.3.0", + "@ethersproject/rlp": "^5.3.0" } }, - "web3-eth-ens": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-eth-ens/-/web3-eth-ens-1.2.1.tgz", - "integrity": "sha512-lhP1kFhqZr2nnbu3CGIFFrAnNxk2veXpOXBY48Tub37RtobDyHijHgrj+xTh+mFiPokyrapVjpFsbGa+Xzye4Q==", + "@ethersproject/bignumber": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.3.0.tgz", + "integrity": "sha512-5xguJ+Q1/zRMgHgDCaqAexx/8DwDVLRemw2i6uR8KyGjwGdXI8f32QZZ1cKGucBN6ekJvpUpHy6XAuQnTv0mPA==", "dev": true, "requires": { - "eth-ens-namehash": "2.0.8", - "underscore": "1.9.1", - "web3-core": "1.2.1", - "web3-core-helpers": "1.2.1", - "web3-core-promievent": "1.2.1", - "web3-eth-abi": "1.2.1", - "web3-eth-contract": "1.2.1", - "web3-utils": "1.2.1" + "@ethersproject/bytes": "^5.3.0", + "@ethersproject/logger": "^5.3.0", + "bn.js": "^4.11.9" } }, - "web3-eth-personal": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.2.1.tgz", - "integrity": "sha512-RNDVSiaSoY4aIp8+Hc7z+X72H7lMb3fmAChuSBADoEc7DsJrY/d0R5qQDK9g9t2BO8oxgLrLNyBP/9ub2Hc6Bg==", + "@ethersproject/bytes": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.3.0.tgz", + "integrity": "sha512-rqLJjdVqCcn7glPer7Fxh87PRqlnRScVAoxcIP3PmOUNApMWJ6yRdOFfo2KvPAdO7Le3yEI1o0YW+Yvr7XCYvw==", "dev": true, "requires": { - "web3-core": "1.2.1", - "web3-core-helpers": "1.2.1", - "web3-core-method": "1.2.1", - "web3-net": "1.2.1", - "web3-utils": "1.2.1" + "@ethersproject/logger": "^5.3.0" } }, - "web3-net": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-net/-/web3-net-1.2.1.tgz", - "integrity": "sha512-Yt1Bs7WgnLESPe0rri/ZoPWzSy55ovioaP35w1KZydrNtQ5Yq4WcrAdhBzcOW7vAkIwrsLQsvA+hrOCy7mNauw==", + "@ethersproject/constants": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.3.0.tgz", + "integrity": "sha512-4y1feNOwEpgjAfiCFWOHznvv6qUF/H6uI0UKp8xdhftb+H+FbKflXg1pOgH5qs4Sr7EYBL+zPyPb+YD5g1aEyw==", "dev": true, "requires": { - "web3-core": "1.2.1", - "web3-core-method": "1.2.1", - "web3-utils": "1.2.1" + "@ethersproject/bignumber": "^5.3.0" } }, - "web3-providers-http": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.2.1.tgz", - "integrity": "sha512-BDtVUVolT9b3CAzeGVA/np1hhn7RPUZ6YYGB/sYky+GjeO311Yoq8SRDUSezU92x8yImSC2B+SMReGhd1zL+bQ==", + "@ethersproject/keccak256": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.3.0.tgz", + "integrity": "sha512-Gv2YqgIUmRbYVNIibafT0qGaeGYLIA/EdWHJ7JcVxVSs2vyxafGxOJ5VpSBHWeOIsE6OOaCelYowhuuTicgdFQ==", "dev": true, "requires": { - "web3-core-helpers": "1.2.1", - "xhr2-cookies": "1.1.0" + "@ethersproject/bytes": "^5.3.0", + "js-sha3": "0.5.7" } }, - "web3-providers-ipc": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.2.1.tgz", - "integrity": "sha512-oPEuOCwxVx8L4CPD0TUdnlOUZwGBSRKScCz/Ws2YHdr9Ium+whm+0NLmOZjkjQp5wovQbyBzNa6zJz1noFRvFA==", + "@ethersproject/logger": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.3.0.tgz", + "integrity": "sha512-8bwJ2gxJGkZZnpQSq5uSiZSJjyVTWmlGft4oH8vxHdvO1Asy4TwVepAhPgxIQIMxXZFUNMych1YjIV4oQ4I7dA==", + "dev": true + }, + "@ethersproject/properties": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.3.0.tgz", + "integrity": "sha512-PaHxJyM5/bfusk6vr3yP//JMnm4UEojpzuWGTmtL5X4uNhNnFNvlYilZLyDr4I9cTkIbipCMsAuIcXWsmdRnEw==", "dev": true, "requires": { - "oboe": "2.1.4", - "underscore": "1.9.1", - "web3-core-helpers": "1.2.1" + "@ethersproject/logger": "^5.3.0" } }, - "web3-providers-ws": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.2.1.tgz", - "integrity": "sha512-oqsQXzu+ejJACVHy864WwIyw+oB21nw/pI65/sD95Zi98+/HQzFfNcIFneF1NC4bVF3VNX4YHTNq2I2o97LAiA==", + "@ethersproject/rlp": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.3.0.tgz", + "integrity": "sha512-oI0joYpsRanl9guDubaW+1NbcpK0vJ3F/6Wpcanzcnqq+oaW9O5E98liwkEDPcb16BUTLIJ+ZF8GPIHYxJ/5Pw==", "dev": true, "requires": { - "underscore": "1.9.1", - "web3-core-helpers": "1.2.1", - "websocket": "github:web3-js/WebSocket-Node#polyfill/globalThis" + "@ethersproject/bytes": "^5.3.0", + "@ethersproject/logger": "^5.3.0" } }, - "web3-shh": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-shh/-/web3-shh-1.2.1.tgz", - "integrity": "sha512-/3Cl04nza5kuFn25bV3FJWa0s3Vafr5BlT933h26xovQ6HIIz61LmvNQlvX1AhFL+SNJOTcQmK1SM59vcyC8bA==", + "@ethersproject/signing-key": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.3.0.tgz", + "integrity": "sha512-+DX/GwHAd0ok1bgedV1cKO0zfK7P/9aEyNoaYiRsGHpCecN7mhLqcdoUiUzE7Uz86LBsxm5ssK0qA1kBB47fbQ==", "dev": true, "requires": { - "web3-core": "1.2.1", - "web3-core-method": "1.2.1", - "web3-core-subscriptions": "1.2.1", - "web3-net": "1.2.1" + "@ethersproject/bytes": "^5.3.0", + "@ethersproject/logger": "^5.3.0", + "@ethersproject/properties": "^5.3.0", + "bn.js": "^4.11.9", + "elliptic": "6.5.4", + "hash.js": "1.1.7" } }, - "websocket": { - "version": "github:web3-js/WebSocket-Node#ef5ea2f41daf4a2113b80c9223df884b4d56c400", - "from": "github:web3-js/WebSocket-Node#polyfill/globalThis", + "@ethersproject/strings": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.3.0.tgz", + "integrity": "sha512-j/AzIGZ503cvhuF2ldRSjB0BrKzpsBMtCieDtn4TYMMZMQ9zScJn9wLzTQl/bRNvJbBE6TOspK0r8/Ngae/f2Q==", "dev": true, "requires": { - "debug": "^2.2.0", - "es5-ext": "^0.10.50", - "nan": "^2.14.0", - "typedarray-to-buffer": "^3.1.5", - "yaeti": "^0.0.6" + "@ethersproject/bytes": "^5.3.0", + "@ethersproject/constants": "^5.3.0", + "@ethersproject/logger": "^5.3.0" + } + }, + "@ethersproject/transactions": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.3.0.tgz", + "integrity": "sha512-cdfK8VVyW2oEBCXhURG0WQ6AICL/r6Gmjh0e4Bvbv6MCn/GBd8FeBH3rtl7ho+AW50csMKeGv3m3K1HSHB2jMQ==", + "dev": true, + "requires": { + "@ethersproject/address": "^5.3.0", + "@ethersproject/bignumber": "^5.3.0", + "@ethersproject/bytes": "^5.3.0", + "@ethersproject/constants": "^5.3.0", + "@ethersproject/keccak256": "^5.3.0", + "@ethersproject/logger": "^5.3.0", + "@ethersproject/properties": "^5.3.0", + "@ethersproject/rlp": "^5.3.0", + "@ethersproject/signing-key": "^5.3.0" + } + }, + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + }, + "elliptic": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", + "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", + "dev": true, + "requires": { + "bn.js": "^4.11.9", + "brorand": "^1.1.0", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true } } }, - "@resolver-engine/core": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/@resolver-engine/core/-/core-0.2.1.tgz", - "integrity": "sha512-nsLQHmPJ77QuifqsIvqjaF5B9aHnDzJjp73Q1z6apY3e9nqYrx4Dtowhpsf7Jwftg/XzVDEMQC+OzUBNTS+S1A==", - "dev": true, - "requires": { - "debug": "^3.1.0", - "request": "^2.85.0" - } - }, - "@resolver-engine/fs": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/@resolver-engine/fs/-/fs-0.2.1.tgz", - "integrity": "sha512-7kJInM1Qo2LJcKyDhuYzh9ZWd+mal/fynfL9BNjWOiTcOpX+jNfqb/UmGUqros5pceBITlWGqS4lU709yHFUbg==", - "dev": true, - "requires": { - "@resolver-engine/core": "^0.2.1", - "debug": "^3.1.0" - } - }, - "@resolver-engine/imports": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/@resolver-engine/imports/-/imports-0.2.2.tgz", - "integrity": "sha512-u5/HUkvo8q34AA+hnxxqqXGfby5swnH0Myw91o3Sm2TETJlNKXibFGSKBavAH+wvWdBi4Z5gS2Odu0PowgVOUg==", - "dev": true, - "requires": { - "@resolver-engine/core": "^0.2.1", - "debug": "^3.1.0", - "hosted-git-info": "^2.6.0" - } - }, - "@resolver-engine/imports-fs": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/@resolver-engine/imports-fs/-/imports-fs-0.2.2.tgz", - "integrity": "sha512-gFCgMvCwyppjwq0UzIjde/WI+yDs3oatJhozG9xdjJdewwtd7LiF0T5i9lrHAUtqrQbqoFE4E+ZMRVHWpWHpKQ==", - "dev": true, - "requires": { - "@resolver-engine/fs": "^0.2.1", - "@resolver-engine/imports": "^0.2.2", - "debug": "^3.1.0" - } - }, - "@sindresorhus/is": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", - "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", - "dev": true - }, - "@snyk/cli-interface": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/@snyk/cli-interface/-/cli-interface-2.8.1.tgz", - "integrity": "sha512-pALcfgoY0hAavy/pBlDIqEu+FFC5m+D4bMnCwlQ26mObL/zzxp2+Ohx+HykCIom62u2J94SzAtRLFdm/2TgoOw==", - "dev": true, - "requires": { - "@snyk/dep-graph": "1.19.0", - "@snyk/graphlib": "2.1.9-patch", - "tslib": "^1.9.3" + "@ethersproject/json-wallets": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/json-wallets/-/json-wallets-5.3.0.tgz", + "integrity": "sha512-/xwbqaIb5grUIGNmeEaz8GdcpmDr++X8WT4Jqcclnxow8PXCUHFeDxjf3O+nSuoqOYG/Ds0+BI5xuQKbva6Xkw==", + "dev": true, + "requires": { + "@ethersproject/abstract-signer": "^5.3.0", + "@ethersproject/address": "^5.3.0", + "@ethersproject/bytes": "^5.3.0", + "@ethersproject/hdnode": "^5.3.0", + "@ethersproject/keccak256": "^5.3.0", + "@ethersproject/logger": "^5.3.0", + "@ethersproject/pbkdf2": "^5.3.0", + "@ethersproject/properties": "^5.3.0", + "@ethersproject/random": "^5.3.0", + "@ethersproject/strings": "^5.3.0", + "@ethersproject/transactions": "^5.3.0", + "aes-js": "3.0.0", + "scrypt-js": "3.0.1" }, "dependencies": { - "@snyk/dep-graph": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/@snyk/dep-graph/-/dep-graph-1.19.0.tgz", - "integrity": "sha512-/0phOICMk4hkX2KtZgi+4KNd5G9oYDIlxQDQk+ui2xl4gonPvK6Q5MFzHP7Xet1YY/XoU33ox41i+IO48qZ+zQ==", + "@ethersproject/address": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.3.0.tgz", + "integrity": "sha512-29TgjzEBK+gUEUAOfWCG7s9IxLNLCqvr+oDSk6L9TXD0VLvZJKhJV479tKQqheVA81OeGxfpdxYtUVH8hqlCvA==", "dev": true, "requires": { - "@snyk/graphlib": "2.1.9-patch", - "lodash.isequal": "^4.5.0", - "object-hash": "^2.0.3", - "semver": "^6.0.0", - "source-map-support": "^0.5.19", - "tslib": "^2.0.0" - }, - "dependencies": { - "tslib": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.0.tgz", - "integrity": "sha512-lTqkx847PI7xEDYJntxZH89L2/aXInsyF2luSafe/+0fHOMjlBNXdH6th7f70qxLDhul7KZK0zC8V5ZIyHl0/g==", - "dev": true - } + "@ethersproject/bignumber": "^5.3.0", + "@ethersproject/bytes": "^5.3.0", + "@ethersproject/keccak256": "^5.3.0", + "@ethersproject/logger": "^5.3.0", + "@ethersproject/rlp": "^5.3.0" } - } - } - }, - "@snyk/cocoapods-lockfile-parser": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/@snyk/cocoapods-lockfile-parser/-/cocoapods-lockfile-parser-3.4.0.tgz", - "integrity": "sha512-mAWgKIHFv0QEGpRvocVMxLAdJx7BmXtVOyQN/VtsGBoGFKqhO0jbtKUUVJC4b0jyKfVmEF2puo94i+1Uqz5q6A==", - "dev": true, - "requires": { - "@snyk/dep-graph": "1.18.4", - "@snyk/ruby-semver": "^2.0.4", - "@types/js-yaml": "^3.12.1", - "js-yaml": "^3.13.1", - "source-map-support": "^0.5.7", - "tslib": "^1.10.0" - }, - "dependencies": { - "@snyk/dep-graph": { - "version": "1.18.4", - "resolved": "https://registry.npmjs.org/@snyk/dep-graph/-/dep-graph-1.18.4.tgz", - "integrity": "sha512-SePWsDyD7qrLxFifIieEl4GqyOODfOnP0hmUweTG5YcMroAV5nARGAUcjxREGzbXMcUpPfZhAaqFjYgzUDH8dQ==", + }, + "@ethersproject/bignumber": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.3.0.tgz", + "integrity": "sha512-5xguJ+Q1/zRMgHgDCaqAexx/8DwDVLRemw2i6uR8KyGjwGdXI8f32QZZ1cKGucBN6ekJvpUpHy6XAuQnTv0mPA==", "dev": true, "requires": { - "@snyk/graphlib": "2.1.9-patch", - "@snyk/lodash": "4.17.15-patch", - "object-hash": "^2.0.3", - "semver": "^7.3.2", - "source-map-support": "^0.5.19", - "tslib": "^1.11.1" + "@ethersproject/bytes": "^5.3.0", + "@ethersproject/logger": "^5.3.0", + "bn.js": "^4.11.9" } }, - "semver": { - "version": "7.3.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", - "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", + "@ethersproject/bytes": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.3.0.tgz", + "integrity": "sha512-rqLJjdVqCcn7glPer7Fxh87PRqlnRScVAoxcIP3PmOUNApMWJ6yRdOFfo2KvPAdO7Le3yEI1o0YW+Yvr7XCYvw==", + "dev": true, + "requires": { + "@ethersproject/logger": "^5.3.0" + } + }, + "@ethersproject/constants": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.3.0.tgz", + "integrity": "sha512-4y1feNOwEpgjAfiCFWOHznvv6qUF/H6uI0UKp8xdhftb+H+FbKflXg1pOgH5qs4Sr7EYBL+zPyPb+YD5g1aEyw==", + "dev": true, + "requires": { + "@ethersproject/bignumber": "^5.3.0" + } + }, + "@ethersproject/keccak256": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.3.0.tgz", + "integrity": "sha512-Gv2YqgIUmRbYVNIibafT0qGaeGYLIA/EdWHJ7JcVxVSs2vyxafGxOJ5VpSBHWeOIsE6OOaCelYowhuuTicgdFQ==", + "dev": true, + "requires": { + "@ethersproject/bytes": "^5.3.0", + "js-sha3": "0.5.7" + } + }, + "@ethersproject/logger": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.3.0.tgz", + "integrity": "sha512-8bwJ2gxJGkZZnpQSq5uSiZSJjyVTWmlGft4oH8vxHdvO1Asy4TwVepAhPgxIQIMxXZFUNMych1YjIV4oQ4I7dA==", + "dev": true + }, + "@ethersproject/properties": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.3.0.tgz", + "integrity": "sha512-PaHxJyM5/bfusk6vr3yP//JMnm4UEojpzuWGTmtL5X4uNhNnFNvlYilZLyDr4I9cTkIbipCMsAuIcXWsmdRnEw==", + "dev": true, + "requires": { + "@ethersproject/logger": "^5.3.0" + } + }, + "@ethersproject/rlp": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.3.0.tgz", + "integrity": "sha512-oI0joYpsRanl9guDubaW+1NbcpK0vJ3F/6Wpcanzcnqq+oaW9O5E98liwkEDPcb16BUTLIJ+ZF8GPIHYxJ/5Pw==", + "dev": true, + "requires": { + "@ethersproject/bytes": "^5.3.0", + "@ethersproject/logger": "^5.3.0" + } + }, + "@ethersproject/signing-key": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.3.0.tgz", + "integrity": "sha512-+DX/GwHAd0ok1bgedV1cKO0zfK7P/9aEyNoaYiRsGHpCecN7mhLqcdoUiUzE7Uz86LBsxm5ssK0qA1kBB47fbQ==", + "dev": true, + "requires": { + "@ethersproject/bytes": "^5.3.0", + "@ethersproject/logger": "^5.3.0", + "@ethersproject/properties": "^5.3.0", + "bn.js": "^4.11.9", + "elliptic": "6.5.4", + "hash.js": "1.1.7" + } + }, + "@ethersproject/strings": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.3.0.tgz", + "integrity": "sha512-j/AzIGZ503cvhuF2ldRSjB0BrKzpsBMtCieDtn4TYMMZMQ9zScJn9wLzTQl/bRNvJbBE6TOspK0r8/Ngae/f2Q==", + "dev": true, + "requires": { + "@ethersproject/bytes": "^5.3.0", + "@ethersproject/constants": "^5.3.0", + "@ethersproject/logger": "^5.3.0" + } + }, + "@ethersproject/transactions": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.3.0.tgz", + "integrity": "sha512-cdfK8VVyW2oEBCXhURG0WQ6AICL/r6Gmjh0e4Bvbv6MCn/GBd8FeBH3rtl7ho+AW50csMKeGv3m3K1HSHB2jMQ==", + "dev": true, + "requires": { + "@ethersproject/address": "^5.3.0", + "@ethersproject/bignumber": "^5.3.0", + "@ethersproject/bytes": "^5.3.0", + "@ethersproject/constants": "^5.3.0", + "@ethersproject/keccak256": "^5.3.0", + "@ethersproject/logger": "^5.3.0", + "@ethersproject/properties": "^5.3.0", + "@ethersproject/rlp": "^5.3.0", + "@ethersproject/signing-key": "^5.3.0" + } + }, + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + }, + "elliptic": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", + "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", + "dev": true, + "requires": { + "bn.js": "^4.11.9", + "brorand": "^1.1.0", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "scrypt-js": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz", + "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==", "dev": true } } }, - "@snyk/composer-lockfile-parser": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@snyk/composer-lockfile-parser/-/composer-lockfile-parser-1.4.0.tgz", - "integrity": "sha512-ga4YTRjJUuP0Ufr+t1IucwVjEFAv66JSBB/zVHP2zy/jmfA3l3ZjlGQSjsRC6Me9P2Z0esQ83AYNZvmIf9pq2w==", - "dev": true, - "requires": { - "@snyk/lodash": "^4.17.15-patch" - } - }, - "@snyk/dep-graph": { - "version": "1.18.3", - "resolved": "https://registry.npmjs.org/@snyk/dep-graph/-/dep-graph-1.18.3.tgz", - "integrity": "sha512-7qWRTIJdZuc5VzDjdV2+03AHElyAZmhq7eV9BRu+jqrYjo9ohWBGEZgYslrTdvfqfJ8rkdrG3j0/0Aa25IxJcg==", - "dev": true, + "@ethersproject/keccak256": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.0.2.tgz", + "integrity": "sha512-MbroXutc0gPNYIrUjS4Aw0lDuXabdzI7+l7elRWr1G6G+W0v00e/3gbikWkCReGtt2Jnt4lQSgnflhDwQGcIhA==", "requires": { - "@snyk/graphlib": "2.1.9-patch", - "@snyk/lodash": "4.17.15-patch", - "object-hash": "^2.0.3", - "semver": "^7.3.2", - "source-map-support": "^0.5.19", - "tslib": "^1.11.1" + "@ethersproject/bytes": "^5.0.0", + "js-sha3": "0.5.7" }, "dependencies": { - "semver": { - "version": "7.3.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", - "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", - "dev": true + "js-sha3": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.7.tgz", + "integrity": "sha1-DU/9gALVMzqrr0oj7tL2N0yfKOc=" } } }, - "@snyk/docker-registry-v2-client": { - "version": "1.13.5", - "resolved": "https://registry.npmjs.org/@snyk/docker-registry-v2-client/-/docker-registry-v2-client-1.13.5.tgz", - "integrity": "sha512-lgJiC071abCpFVLp47OnykU8MMrhdQe386Wt6QaDmjI0s2DQn/S58NfdLrPU7s6l4zoGT7UwRW9+7paozRgFTA==", - "dev": true, - "requires": { - "needle": "^2.5.0", - "parse-link-header": "^1.0.1", - "tslib": "^1.10.0" - } - }, - "@snyk/gemfile": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@snyk/gemfile/-/gemfile-1.2.0.tgz", - "integrity": "sha512-nI7ELxukf7pT4/VraL4iabtNNMz8mUo7EXlqCFld8O5z6mIMLX9llps24iPpaIZOwArkY3FWA+4t+ixyvtTSIA==", - "dev": true - }, - "@snyk/graphlib": { - "version": "2.1.9-patch", - "resolved": "https://registry.npmjs.org/@snyk/graphlib/-/graphlib-2.1.9-patch.tgz", - "integrity": "sha512-uFO/pNMm3pN15QB+hVMU7uaQXhsBNwEA8lOET/VDcdOzLptODhXzkJqSHqt0tZlpdAz6/6Uaj8jY00UvPFgFMA==", - "dev": true, - "requires": { - "@snyk/lodash": "4.17.15-patch" - } + "@ethersproject/logger": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.0.4.tgz", + "integrity": "sha512-alA2LiAy1LdQ/L1SA9ajUC7MvGAEQLsICEfKK4erX5qhkXE1LwLSPIzobtOWFsMHf2yrXGKBLnnpuVHprI3sAw==" }, - "@snyk/inquirer": { - "version": "6.2.2-patch", - "resolved": "https://registry.npmjs.org/@snyk/inquirer/-/inquirer-6.2.2-patch.tgz", - "integrity": "sha512-IUq5bHRL0vtVKtfvd4GOccAIaLYHbcertug2UVZzk5+yY6R/CxfYsnFUTho1h4BdkfNdin2tPjE/5jRF4SKSrw==", - "dev": true, + "@ethersproject/networks": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.3.1.tgz", + "integrity": "sha512-6uQKHkYChlsfeiZhQ8IHIqGE/sQsf25o9ZxAYpMxi15dLPzz3IxOEF5KiSD32aHwsjXVBKBSlo+teAXLlYJybw==", "requires": { - "@snyk/lodash": "4.17.15-patch", - "ansi-escapes": "^3.2.0", - "chalk": "^2.4.2", - "cli-cursor": "^2.1.0", - "cli-width": "^2.0.0", - "external-editor": "^3.0.3", - "figures": "^2.0.0", - "mute-stream": "0.0.7", - "run-async": "^2.2.0", - "rxjs": "^6.4.0", - "string-width": "^2.1.0", - "strip-ansi": "^5.0.0", - "through": "^2.3.6" + "@ethersproject/logger": "^5.3.0" }, "dependencies": { - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } + "@ethersproject/logger": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.3.0.tgz", + "integrity": "sha512-8bwJ2gxJGkZZnpQSq5uSiZSJjyVTWmlGft4oH8vxHdvO1Asy4TwVepAhPgxIQIMxXZFUNMych1YjIV4oQ4I7dA==" } } }, - "@snyk/java-call-graph-builder": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@snyk/java-call-graph-builder/-/java-call-graph-builder-1.12.1.tgz", - "integrity": "sha512-thaLaqwXYkvVKs1gqmCAB5aFvwp2cz84rFlODr93smG6E8s7U+KNMiiiWq1KjSvbRe3AN8YUENYGyUoGRu9m1w==", + "@ethersproject/pbkdf2": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/pbkdf2/-/pbkdf2-5.3.0.tgz", + "integrity": "sha512-Q9ChVU6gBFiex0FSdtzo4b0SAKz3ZYcYVFLrEWHL0FnHvNk3J3WgAtRNtBQGQYn/T5wkoTdZttMbfBkFlaiWcA==", "dev": true, "requires": { - "@snyk/graphlib": "2.1.9-patch", - "ci-info": "^2.0.0", - "debug": "^4.1.1", - "glob": "^7.1.6", - "jszip": "^3.2.2", - "needle": "^2.3.3", - "progress": "^2.0.3", - "snyk-config": "^3.0.0", - "source-map-support": "^0.5.7", - "temp-dir": "^2.0.0", - "tslib": "^1.9.3" + "@ethersproject/bytes": "^5.3.0", + "@ethersproject/sha2": "^5.3.0" }, "dependencies": { - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "@ethersproject/bytes": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.3.0.tgz", + "integrity": "sha512-rqLJjdVqCcn7glPer7Fxh87PRqlnRScVAoxcIP3PmOUNApMWJ6yRdOFfo2KvPAdO7Le3yEI1o0YW+Yvr7XCYvw==", "dev": true, "requires": { - "ms": "^2.1.1" + "@ethersproject/logger": "^5.3.0" } }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "@ethersproject/logger": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.3.0.tgz", + "integrity": "sha512-8bwJ2gxJGkZZnpQSq5uSiZSJjyVTWmlGft4oH8vxHdvO1Asy4TwVepAhPgxIQIMxXZFUNMych1YjIV4oQ4I7dA==", "dev": true } } }, - "@snyk/lodash": { - "version": "4.17.15-patch", - "resolved": "https://registry.npmjs.org/@snyk/lodash/-/lodash-4.17.15-patch.tgz", - "integrity": "sha512-e4+t34bGyjjRnwXwI14hqye9J/nRbG9iwaqTgXWHskm5qC+iK0UrjgYdWXiHJCf3Plbpr+1rpW+4LPzZnCGMhQ==", - "dev": true - }, - "@snyk/rpm-parser": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@snyk/rpm-parser/-/rpm-parser-2.0.0.tgz", - "integrity": "sha512-bWjQY5Xk3TcfVpeo8M5BhhSUEdPr2P19AWW13CHPu6sFZkckLWEcjQycnBsVD6RBmxGXecJ1YNui8dq6soHoYQ==", - "dev": true, - "requires": { - "event-loop-spinner": "^2.0.0" - } - }, - "@snyk/ruby-semver": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@snyk/ruby-semver/-/ruby-semver-2.2.0.tgz", - "integrity": "sha512-FqUayoVjcyCsQFYPm3DcaCKdFR4xmapUkCGY+bcNBs3jqCUw687PoP9CPQ1Jvtaw5YpfBNl/62jyntsWCeciuA==", + "@ethersproject/properties": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.0.2.tgz", + "integrity": "sha512-FxAisPGAOACQjMJzewl9OJG6lsGCPTm5vpUMtfeoxzAlAb2lv+kHzQPUh9h4jfAILzE8AR1jgXMzRmlhwyra1Q==", "dev": true, "requires": { - "@snyk/lodash": "4.17.15-patch" + "@ethersproject/logger": "^5.0.0" } }, - "@snyk/snyk-cocoapods-plugin": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@snyk/snyk-cocoapods-plugin/-/snyk-cocoapods-plugin-2.3.0.tgz", - "integrity": "sha512-4V1xJMqsK6J3jHu9UufKySorzA8O1vNLRIK1JgJf5KcXQCP44SJI5dk9Xr9iFGXXtGo8iI9gmokQcHlGpkPSJg==", - "dev": true, - "requires": { - "@snyk/cli-interface": "1.5.0", - "@snyk/cocoapods-lockfile-parser": "3.4.0", - "@snyk/dep-graph": "^1.18.2", - "source-map-support": "^0.5.7", - "tslib": "^2.0.0" + "@ethersproject/providers": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/@ethersproject/providers/-/providers-5.3.1.tgz", + "integrity": "sha512-HC63vENTrur6/JKEhcQbA8PRDj1FAesdpX98IW+xAAo3EAkf70ou5fMIA3KCGzJDLNTeYA4C2Bonz849tVLekg==", + "dev": true, + "requires": { + "@ethersproject/abstract-provider": "^5.3.0", + "@ethersproject/abstract-signer": "^5.3.0", + "@ethersproject/address": "^5.3.0", + "@ethersproject/basex": "^5.3.0", + "@ethersproject/bignumber": "^5.3.0", + "@ethersproject/bytes": "^5.3.0", + "@ethersproject/constants": "^5.3.0", + "@ethersproject/hash": "^5.3.0", + "@ethersproject/logger": "^5.3.0", + "@ethersproject/networks": "^5.3.0", + "@ethersproject/properties": "^5.3.0", + "@ethersproject/random": "^5.3.0", + "@ethersproject/rlp": "^5.3.0", + "@ethersproject/sha2": "^5.3.0", + "@ethersproject/strings": "^5.3.0", + "@ethersproject/transactions": "^5.3.0", + "@ethersproject/web": "^5.3.0", + "bech32": "1.1.4", + "ws": "7.4.6" }, "dependencies": { - "@snyk/cli-interface": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@snyk/cli-interface/-/cli-interface-1.5.0.tgz", - "integrity": "sha512-+Qo+IO3YOXWgazlo+CKxOuWFLQQdaNCJ9cSfhFQd687/FuesaIxWdInaAdfpsLScq0c6M1ieZslXgiZELSzxbg==", + "@ethersproject/address": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.3.0.tgz", + "integrity": "sha512-29TgjzEBK+gUEUAOfWCG7s9IxLNLCqvr+oDSk6L9TXD0VLvZJKhJV479tKQqheVA81OeGxfpdxYtUVH8hqlCvA==", "dev": true, "requires": { - "tslib": "^1.9.3" - }, - "dependencies": { - "tslib": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz", - "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==", - "dev": true - } + "@ethersproject/bignumber": "^5.3.0", + "@ethersproject/bytes": "^5.3.0", + "@ethersproject/keccak256": "^5.3.0", + "@ethersproject/logger": "^5.3.0", + "@ethersproject/rlp": "^5.3.0" } }, - "tslib": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.0.tgz", - "integrity": "sha512-lTqkx847PI7xEDYJntxZH89L2/aXInsyF2luSafe/+0fHOMjlBNXdH6th7f70qxLDhul7KZK0zC8V5ZIyHl0/g==", + "@ethersproject/bignumber": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.3.0.tgz", + "integrity": "sha512-5xguJ+Q1/zRMgHgDCaqAexx/8DwDVLRemw2i6uR8KyGjwGdXI8f32QZZ1cKGucBN6ekJvpUpHy6XAuQnTv0mPA==", + "dev": true, + "requires": { + "@ethersproject/bytes": "^5.3.0", + "@ethersproject/logger": "^5.3.0", + "bn.js": "^4.11.9" + } + }, + "@ethersproject/bytes": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.3.0.tgz", + "integrity": "sha512-rqLJjdVqCcn7glPer7Fxh87PRqlnRScVAoxcIP3PmOUNApMWJ6yRdOFfo2KvPAdO7Le3yEI1o0YW+Yvr7XCYvw==", + "dev": true, + "requires": { + "@ethersproject/logger": "^5.3.0" + } + }, + "@ethersproject/constants": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.3.0.tgz", + "integrity": "sha512-4y1feNOwEpgjAfiCFWOHznvv6qUF/H6uI0UKp8xdhftb+H+FbKflXg1pOgH5qs4Sr7EYBL+zPyPb+YD5g1aEyw==", + "dev": true, + "requires": { + "@ethersproject/bignumber": "^5.3.0" + } + }, + "@ethersproject/hash": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.3.0.tgz", + "integrity": "sha512-gAFZSjUPQ32CIfoKSMtMEQ+IO0kQxqhwz9fCIFt2DtAq2u4pWt8mL9Z5P0r6KkLcQU8LE9FmuPPyd+JvBzmr1w==", + "dev": true, + "requires": { + "@ethersproject/abstract-signer": "^5.3.0", + "@ethersproject/address": "^5.3.0", + "@ethersproject/bignumber": "^5.3.0", + "@ethersproject/bytes": "^5.3.0", + "@ethersproject/keccak256": "^5.3.0", + "@ethersproject/logger": "^5.3.0", + "@ethersproject/properties": "^5.3.0", + "@ethersproject/strings": "^5.3.0" + } + }, + "@ethersproject/keccak256": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.3.0.tgz", + "integrity": "sha512-Gv2YqgIUmRbYVNIibafT0qGaeGYLIA/EdWHJ7JcVxVSs2vyxafGxOJ5VpSBHWeOIsE6OOaCelYowhuuTicgdFQ==", + "dev": true, + "requires": { + "@ethersproject/bytes": "^5.3.0", + "js-sha3": "0.5.7" + } + }, + "@ethersproject/logger": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.3.0.tgz", + "integrity": "sha512-8bwJ2gxJGkZZnpQSq5uSiZSJjyVTWmlGft4oH8vxHdvO1Asy4TwVepAhPgxIQIMxXZFUNMych1YjIV4oQ4I7dA==", "dev": true - } - } - }, - "@snyk/snyk-docker-pull": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/@snyk/snyk-docker-pull/-/snyk-docker-pull-3.2.0.tgz", - "integrity": "sha512-uWKtjh29I/d0mfmfBN7w6RwwNBQxQVKrauF5ND/gqb0PVsKV22GIpkI+viWjI7KNKso6/B0tMmsv7TX2tsNcLQ==", - "dev": true, - "requires": { - "@snyk/docker-registry-v2-client": "^1.13.5", - "child-process": "^1.0.2", - "tar-stream": "^2.1.2", - "tmp": "^0.1.0" - }, - "dependencies": { - "bl": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/bl/-/bl-4.0.2.tgz", - "integrity": "sha512-j4OH8f6Qg2bGuWfRiltT2HYGx0e1QcBTrK9KAHNMwMZdQnDZFk0ZSYIpADjYCB3U12nicC5tVJwSIhwOWjb4RQ==", + }, + "@ethersproject/properties": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.3.0.tgz", + "integrity": "sha512-PaHxJyM5/bfusk6vr3yP//JMnm4UEojpzuWGTmtL5X4uNhNnFNvlYilZLyDr4I9cTkIbipCMsAuIcXWsmdRnEw==", "dev": true, "requires": { - "buffer": "^5.5.0", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - }, - "dependencies": { - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - } + "@ethersproject/logger": "^5.3.0" } }, - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "@ethersproject/rlp": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.3.0.tgz", + "integrity": "sha512-oI0joYpsRanl9guDubaW+1NbcpK0vJ3F/6Wpcanzcnqq+oaW9O5E98liwkEDPcb16BUTLIJ+ZF8GPIHYxJ/5Pw==", "dev": true, "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" + "@ethersproject/bytes": "^5.3.0", + "@ethersproject/logger": "^5.3.0" } }, - "tar-stream": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.1.3.tgz", - "integrity": "sha512-Z9yri56Dih8IaK8gncVPx4Wqt86NDmQTSh49XLZgjWpGZL9GK9HKParS2scqHCC4w6X9Gh2jwaU45V47XTKwVA==", + "@ethersproject/signing-key": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.3.0.tgz", + "integrity": "sha512-+DX/GwHAd0ok1bgedV1cKO0zfK7P/9aEyNoaYiRsGHpCecN7mhLqcdoUiUzE7Uz86LBsxm5ssK0qA1kBB47fbQ==", "dev": true, "requires": { - "bl": "^4.0.1", - "end-of-stream": "^1.4.1", - "fs-constants": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^3.1.1" + "@ethersproject/bytes": "^5.3.0", + "@ethersproject/logger": "^5.3.0", + "@ethersproject/properties": "^5.3.0", + "bn.js": "^4.11.9", + "elliptic": "6.5.4", + "hash.js": "1.1.7" } }, - "tmp": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.1.0.tgz", - "integrity": "sha512-J7Z2K08jbGcdA1kkQpJSqLF6T0tdQqpR2pnSUXsIchbPdTI9v3e85cLW0d6WDhwuAleOV71j2xWs8qMPfK7nKw==", + "@ethersproject/strings": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.3.0.tgz", + "integrity": "sha512-j/AzIGZ503cvhuF2ldRSjB0BrKzpsBMtCieDtn4TYMMZMQ9zScJn9wLzTQl/bRNvJbBE6TOspK0r8/Ngae/f2Q==", "dev": true, "requires": { - "rimraf": "^2.6.3" + "@ethersproject/bytes": "^5.3.0", + "@ethersproject/constants": "^5.3.0", + "@ethersproject/logger": "^5.3.0" + } + }, + "@ethersproject/transactions": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.3.0.tgz", + "integrity": "sha512-cdfK8VVyW2oEBCXhURG0WQ6AICL/r6Gmjh0e4Bvbv6MCn/GBd8FeBH3rtl7ho+AW50csMKeGv3m3K1HSHB2jMQ==", + "dev": true, + "requires": { + "@ethersproject/address": "^5.3.0", + "@ethersproject/bignumber": "^5.3.0", + "@ethersproject/bytes": "^5.3.0", + "@ethersproject/constants": "^5.3.0", + "@ethersproject/keccak256": "^5.3.0", + "@ethersproject/logger": "^5.3.0", + "@ethersproject/properties": "^5.3.0", + "@ethersproject/rlp": "^5.3.0", + "@ethersproject/signing-key": "^5.3.0" + } + }, + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + }, + "elliptic": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", + "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", + "dev": true, + "requires": { + "bn.js": "^4.11.9", + "brorand": "^1.1.0", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "ws": { + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", + "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==", + "dev": true } } }, - "@solidity-parser/parser": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/@solidity-parser/parser/-/parser-0.6.2.tgz", - "integrity": "sha512-kUVUvrqttndeprLoXjI5arWHeiP3uh4XODAKbG+ZaWHCVQeelxCbnXBeWxZ2BPHdXgH0xR9dU1b916JhDhbgAA==", - "dev": true - }, - "@szmarczak/http-timer": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", - "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", + "@ethersproject/random": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/random/-/random-5.3.0.tgz", + "integrity": "sha512-A5SL/4inutSwt3Fh2OD0x2gz+x6GHmuUnIPkR7zAiTidMD2N8F6tZdMF1hlQKWVCcVMWhEQg8mWijhEzm6BBYw==", "dev": true, "requires": { - "defer-to-connect": "^1.0.1" + "@ethersproject/bytes": "^5.3.0", + "@ethersproject/logger": "^5.3.0" + }, + "dependencies": { + "@ethersproject/bytes": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.3.0.tgz", + "integrity": "sha512-rqLJjdVqCcn7glPer7Fxh87PRqlnRScVAoxcIP3PmOUNApMWJ6yRdOFfo2KvPAdO7Le3yEI1o0YW+Yvr7XCYvw==", + "dev": true, + "requires": { + "@ethersproject/logger": "^5.3.0" + } + }, + "@ethersproject/logger": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.3.0.tgz", + "integrity": "sha512-8bwJ2gxJGkZZnpQSq5uSiZSJjyVTWmlGft4oH8vxHdvO1Asy4TwVepAhPgxIQIMxXZFUNMych1YjIV4oQ4I7dA==", + "dev": true + } } }, - "@truffle/blockchain-utils": { - "version": "0.0.22", - "resolved": "https://registry.npmjs.org/@truffle/blockchain-utils/-/blockchain-utils-0.0.22.tgz", - "integrity": "sha512-YyIQPMjFn/Ch8gARX+m8NJAlQecPkFRjHv0oHpZi1LlNGZ52vEt21z0ZelAu5ti6nQJ2Us6mE4BNyywfrqgiAA==", + "@ethersproject/rlp": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.0.2.tgz", + "integrity": "sha512-oE0M5jqQ67fi2SuMcrpoewOpEuoXaD8M9JeR9md1bXRMvDYgKXUtDHs22oevpEOdnO2DPIRabp6MVHa4aDuWmw==", + "requires": { + "@ethersproject/bytes": "^5.0.0", + "@ethersproject/logger": "^5.0.0" + } + }, + "@ethersproject/sha2": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/sha2/-/sha2-5.3.0.tgz", + "integrity": "sha512-r5ftlwKcocYEuFz2JbeKOT5SAsCV4m1RJDsTOEfQ5L67ZC7NFDK5i7maPdn1bx4nPhylF9VAwxSrQ1esmwzylg==", "dev": true, "requires": { - "source-map-support": "^0.5.19" + "@ethersproject/bytes": "^5.3.0", + "@ethersproject/logger": "^5.3.0", + "hash.js": "1.1.7" + }, + "dependencies": { + "@ethersproject/bytes": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.3.0.tgz", + "integrity": "sha512-rqLJjdVqCcn7glPer7Fxh87PRqlnRScVAoxcIP3PmOUNApMWJ6yRdOFfo2KvPAdO7Le3yEI1o0YW+Yvr7XCYvw==", + "dev": true, + "requires": { + "@ethersproject/logger": "^5.3.0" + } + }, + "@ethersproject/logger": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.3.0.tgz", + "integrity": "sha512-8bwJ2gxJGkZZnpQSq5uSiZSJjyVTWmlGft4oH8vxHdvO1Asy4TwVepAhPgxIQIMxXZFUNMych1YjIV4oQ4I7dA==", + "dev": true + } } }, - "@truffle/codec": { - "version": "0.5.9", - "resolved": "https://registry.npmjs.org/@truffle/codec/-/codec-0.5.9.tgz", - "integrity": "sha512-W9YTUYttpiL9w770Mu+viOK7dgUE1ClX6iFo5YdJMwBQg2jkX+pjXLcYLJtD6657GHlhVQEnZCHztFIzG9FiHw==", + "@ethersproject/signing-key": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.0.3.tgz", + "integrity": "sha512-5QPZaBRGCLzfVMbFb3LcVjNR0UbTXnwDHASnQYfbzwUOnFYHKxHsrcbl/5ONGoppgi8yXgOocKqlPCFycJJVWQ==", "dev": true, "requires": { - "big.js": "^5.2.2", - "bn.js": "^4.11.8", - "debug": "^4.1.0", - "lodash.clonedeep": "^4.5.0", - "lodash.escaperegexp": "^4.1.2", - "lodash.partition": "^4.6.0", - "lodash.sum": "^4.0.2", - "semver": "^6.3.0", - "source-map-support": "^0.5.19", - "utf8": "^3.0.0", - "web3-utils": "1.2.1" + "@ethersproject/bytes": "^5.0.0", + "@ethersproject/logger": "^5.0.0", + "@ethersproject/properties": "^5.0.0", + "elliptic": "6.5.3" }, "dependencies": { "bn.js": { @@ -1358,568 +1850,682 @@ "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", "dev": true }, - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "elliptic": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.3.tgz", + "integrity": "sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw==", "dev": true, "requires": { - "ms": "^2.1.1" + "bn.js": "^4.4.0", + "brorand": "^1.0.1", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.0" } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true } } }, - "@truffle/contract": { - "version": "4.2.14", - "resolved": "https://registry.npmjs.org/@truffle/contract/-/contract-4.2.14.tgz", - "integrity": "sha512-LGkfFXIjTNUZuf59Kh1V8bYR7nIQXPTDqzv3ew3bkP15mQWbL0xp9fSjLE1ZrC8MXzmXYXPDGSzlHAv8Fjkaxg==", + "@ethersproject/solidity": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/solidity/-/solidity-5.3.0.tgz", + "integrity": "sha512-uLRBaNUiISHbut94XKewJgQh6UmydWTBp71I7I21pkjVXfZO2dJ5EOo3jCnumJc01M4LOm79dlNNmF3oGIvweQ==", "dev": true, "requires": { - "@truffle/blockchain-utils": "^0.0.22", - "@truffle/contract-schema": "^3.2.3", - "@truffle/debug-utils": "^4.2.1", - "@truffle/error": "^0.0.8", - "@truffle/interface-adapter": "^0.4.13", - "bignumber.js": "^7.2.1", - "ethereum-ens": "^0.8.0", - "ethers": "^4.0.0-beta.1", - "source-map-support": "^0.5.19", - "web3": "1.2.1", - "web3-core-helpers": "1.2.1", - "web3-core-promievent": "1.2.1", - "web3-eth-abi": "1.2.1", - "web3-utils": "1.2.1" + "@ethersproject/bignumber": "^5.3.0", + "@ethersproject/bytes": "^5.3.0", + "@ethersproject/keccak256": "^5.3.0", + "@ethersproject/sha2": "^5.3.0", + "@ethersproject/strings": "^5.3.0" }, "dependencies": { - "@truffle/contract-schema": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/@truffle/contract-schema/-/contract-schema-3.2.3.tgz", - "integrity": "sha512-dnR5wtqCBKVfJDX5g+sCUiDF1WDucpxoWsr6ZOwq9JqgyS4Gz7iJi1wMegMmcDctOykoKjsju6iAOi+HObrkfg==", + "@ethersproject/bignumber": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.3.0.tgz", + "integrity": "sha512-5xguJ+Q1/zRMgHgDCaqAexx/8DwDVLRemw2i6uR8KyGjwGdXI8f32QZZ1cKGucBN6ekJvpUpHy6XAuQnTv0mPA==", "dev": true, "requires": { - "ajv": "^6.10.0", - "crypto-js": "^3.1.9-1", - "debug": "^4.1.0" + "@ethersproject/bytes": "^5.3.0", + "@ethersproject/logger": "^5.3.0", + "bn.js": "^4.11.9" } }, - "@truffle/interface-adapter": { - "version": "0.4.13", - "resolved": "https://registry.npmjs.org/@truffle/interface-adapter/-/interface-adapter-0.4.13.tgz", - "integrity": "sha512-N4TDtTvDan8Zo1csU2Otk2t0O7nOi7UP4dCfpDB5WVnD/7B07iT2getU3iRmLm4ZgwUY8VxHgDptdP55ACWCRg==", + "@ethersproject/bytes": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.3.0.tgz", + "integrity": "sha512-rqLJjdVqCcn7glPer7Fxh87PRqlnRScVAoxcIP3PmOUNApMWJ6yRdOFfo2KvPAdO7Le3yEI1o0YW+Yvr7XCYvw==", "dev": true, "requires": { - "bn.js": "^4.11.8", - "ethers": "^4.0.32", - "source-map-support": "^0.5.19", - "web3": "1.2.1" + "@ethersproject/logger": "^5.3.0" } }, - "ajv": { - "version": "6.12.3", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.3.tgz", - "integrity": "sha512-4K0cK3L1hsqk9xIb2z9vs/XU+PGJZ9PNpJRDS9YLzmNdX6jmVPfamLvTJr0aDAusnHyCHO6MjzlkAsgtqp9teA==", + "@ethersproject/constants": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.3.0.tgz", + "integrity": "sha512-4y1feNOwEpgjAfiCFWOHznvv6qUF/H6uI0UKp8xdhftb+H+FbKflXg1pOgH5qs4Sr7EYBL+zPyPb+YD5g1aEyw==", "dev": true, "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" + "@ethersproject/bignumber": "^5.3.0" } }, - "bignumber.js": { - "version": "7.2.1", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-7.2.1.tgz", - "integrity": "sha512-S4XzBk5sMB+Rcb/LNcpzXr57VRTxgAvaAEDAl1AwRx27j00hT84O6OkteE7u8UB3NuaaygCRrEpqox4uDOrbdQ==", - "dev": true - }, - "bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", - "dev": true - }, - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "@ethersproject/keccak256": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.3.0.tgz", + "integrity": "sha512-Gv2YqgIUmRbYVNIibafT0qGaeGYLIA/EdWHJ7JcVxVSs2vyxafGxOJ5VpSBHWeOIsE6OOaCelYowhuuTicgdFQ==", "dev": true, "requires": { - "ms": "^2.1.1" + "@ethersproject/bytes": "^5.3.0", + "js-sha3": "0.5.7" } }, - "fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "p-cancelable": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.3.0.tgz", - "integrity": "sha512-RVbZPLso8+jFeq1MfNvgXtCRED2raz/dKpacfTNxsx6pLEpEomM7gah6VeHSYV3+vo0OAi4MkArtQcWWXuQoyw==", + "@ethersproject/logger": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.3.0.tgz", + "integrity": "sha512-8bwJ2gxJGkZZnpQSq5uSiZSJjyVTWmlGft4oH8vxHdvO1Asy4TwVepAhPgxIQIMxXZFUNMych1YjIV4oQ4I7dA==", "dev": true }, - "prepend-http": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", - "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=", - "dev": true + "@ethersproject/strings": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.3.0.tgz", + "integrity": "sha512-j/AzIGZ503cvhuF2ldRSjB0BrKzpsBMtCieDtn4TYMMZMQ9zScJn9wLzTQl/bRNvJbBE6TOspK0r8/Ngae/f2Q==", + "dev": true, + "requires": { + "@ethersproject/bytes": "^5.3.0", + "@ethersproject/constants": "^5.3.0", + "@ethersproject/logger": "^5.3.0" + } }, - "semver": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.2.0.tgz", - "integrity": "sha512-jdFC1VdUGT/2Scgbimf7FSx9iJLXoqfglSF+gJeuNWVpiE37OIbc1jywR/GJyFdz3mnkz2/id0L0J/cr0izR5A==", + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", "dev": true + } + } + }, + "@ethersproject/strings": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.0.2.tgz", + "integrity": "sha512-oNa+xvSqsFU96ndzog0IBTtsRFGOqGpzrXJ7shXLBT7juVeSEyZA/sYs0DMZB5mJ9FEjHdZKxR/rTyBY91vuXg==", + "dev": true, + "requires": { + "@ethersproject/bytes": "^5.0.0", + "@ethersproject/constants": "^5.0.0", + "@ethersproject/logger": "^5.0.0" + } + }, + "@ethersproject/transactions": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.0.2.tgz", + "integrity": "sha512-jZp0ZbbJlq4JLZY6qoMzNtp2HQsX6USQposi3ns0MPUdn3OdZJBDtrcO15r/2VS5t/K1e1GE5MI1HmMKlcTbbQ==", + "dev": true, + "requires": { + "@ethersproject/address": "^5.0.0", + "@ethersproject/bignumber": "^5.0.0", + "@ethersproject/bytes": "^5.0.0", + "@ethersproject/constants": "^5.0.0", + "@ethersproject/keccak256": "^5.0.0", + "@ethersproject/logger": "^5.0.0", + "@ethersproject/properties": "^5.0.0", + "@ethersproject/rlp": "^5.0.0", + "@ethersproject/signing-key": "^5.0.0" + } + }, + "@ethersproject/wallet": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/wallet/-/wallet-5.3.0.tgz", + "integrity": "sha512-boYBLydG6671p9QoG6EinNnNzbm7DNOjVT20eV8J6HQEq4aUaGiA2CytF2vK+2rOEWbzhZqoNDt6AlkE1LlsTg==", + "dev": true, + "requires": { + "@ethersproject/abstract-provider": "^5.3.0", + "@ethersproject/abstract-signer": "^5.3.0", + "@ethersproject/address": "^5.3.0", + "@ethersproject/bignumber": "^5.3.0", + "@ethersproject/bytes": "^5.3.0", + "@ethersproject/hash": "^5.3.0", + "@ethersproject/hdnode": "^5.3.0", + "@ethersproject/json-wallets": "^5.3.0", + "@ethersproject/keccak256": "^5.3.0", + "@ethersproject/logger": "^5.3.0", + "@ethersproject/properties": "^5.3.0", + "@ethersproject/random": "^5.3.0", + "@ethersproject/signing-key": "^5.3.0", + "@ethersproject/transactions": "^5.3.0", + "@ethersproject/wordlists": "^5.3.0" + }, + "dependencies": { + "@ethersproject/address": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.3.0.tgz", + "integrity": "sha512-29TgjzEBK+gUEUAOfWCG7s9IxLNLCqvr+oDSk6L9TXD0VLvZJKhJV479tKQqheVA81OeGxfpdxYtUVH8hqlCvA==", + "dev": true, + "requires": { + "@ethersproject/bignumber": "^5.3.0", + "@ethersproject/bytes": "^5.3.0", + "@ethersproject/keccak256": "^5.3.0", + "@ethersproject/logger": "^5.3.0", + "@ethersproject/rlp": "^5.3.0" + } }, - "swarm-js": { - "version": "0.1.39", - "resolved": "https://registry.npmjs.org/swarm-js/-/swarm-js-0.1.39.tgz", - "integrity": "sha512-QLMqL2rzF6n5s50BptyD6Oi0R1aWlJC5Y17SRIVXRj6OR1DRIPM7nepvrxxkjA1zNzFz6mUOMjfeqeDaWB7OOg==", + "@ethersproject/bignumber": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.3.0.tgz", + "integrity": "sha512-5xguJ+Q1/zRMgHgDCaqAexx/8DwDVLRemw2i6uR8KyGjwGdXI8f32QZZ1cKGucBN6ekJvpUpHy6XAuQnTv0mPA==", "dev": true, "requires": { - "bluebird": "^3.5.0", - "buffer": "^5.0.5", - "decompress": "^4.0.0", - "eth-lib": "^0.1.26", - "fs-extra": "^4.0.2", - "got": "^7.1.0", - "mime-types": "^2.1.16", - "mkdirp-promise": "^5.0.1", - "mock-fs": "^4.1.0", - "setimmediate": "^1.0.5", - "tar": "^4.0.2", - "xhr-request-promise": "^0.1.2" - }, - "dependencies": { - "got": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/got/-/got-7.1.0.tgz", - "integrity": "sha512-Y5WMo7xKKq1muPsxD+KmrR8DH5auG7fBdDVueZwETwV6VytKyU9OX/ddpq2/1hp1vIPvVb4T81dKQz3BivkNLw==", - "dev": true, - "requires": { - "decompress-response": "^3.2.0", - "duplexer3": "^0.1.4", - "get-stream": "^3.0.0", - "is-plain-obj": "^1.1.0", - "is-retry-allowed": "^1.0.0", - "is-stream": "^1.0.0", - "isurl": "^1.0.0-alpha5", - "lowercase-keys": "^1.0.0", - "p-cancelable": "^0.3.0", - "p-timeout": "^1.1.1", - "safe-buffer": "^5.0.1", - "timed-out": "^4.0.0", - "url-parse-lax": "^1.0.0", - "url-to-options": "^1.0.1" - } - } + "@ethersproject/bytes": "^5.3.0", + "@ethersproject/logger": "^5.3.0", + "bn.js": "^4.11.9" } }, - "underscore": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.9.1.tgz", - "integrity": "sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg==", - "dev": true + "@ethersproject/bytes": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.3.0.tgz", + "integrity": "sha512-rqLJjdVqCcn7glPer7Fxh87PRqlnRScVAoxcIP3PmOUNApMWJ6yRdOFfo2KvPAdO7Le3yEI1o0YW+Yvr7XCYvw==", + "dev": true, + "requires": { + "@ethersproject/logger": "^5.3.0" + } }, - "url-parse-lax": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", - "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", + "@ethersproject/constants": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.3.0.tgz", + "integrity": "sha512-4y1feNOwEpgjAfiCFWOHznvv6qUF/H6uI0UKp8xdhftb+H+FbKflXg1pOgH5qs4Sr7EYBL+zPyPb+YD5g1aEyw==", "dev": true, "requires": { - "prepend-http": "^1.0.1" + "@ethersproject/bignumber": "^5.3.0" } }, - "web3": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3/-/web3-1.2.1.tgz", - "integrity": "sha512-nNMzeCK0agb5i/oTWNdQ1aGtwYfXzHottFP2Dz0oGIzavPMGSKyVlr8ibVb1yK5sJBjrWVnTdGaOC2zKDFuFRw==", + "@ethersproject/hash": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.3.0.tgz", + "integrity": "sha512-gAFZSjUPQ32CIfoKSMtMEQ+IO0kQxqhwz9fCIFt2DtAq2u4pWt8mL9Z5P0r6KkLcQU8LE9FmuPPyd+JvBzmr1w==", "dev": true, "requires": { - "web3-bzz": "1.2.1", - "web3-core": "1.2.1", - "web3-eth": "1.2.1", - "web3-eth-personal": "1.2.1", - "web3-net": "1.2.1", - "web3-shh": "1.2.1", - "web3-utils": "1.2.1" + "@ethersproject/abstract-signer": "^5.3.0", + "@ethersproject/address": "^5.3.0", + "@ethersproject/bignumber": "^5.3.0", + "@ethersproject/bytes": "^5.3.0", + "@ethersproject/keccak256": "^5.3.0", + "@ethersproject/logger": "^5.3.0", + "@ethersproject/properties": "^5.3.0", + "@ethersproject/strings": "^5.3.0" } }, - "web3-bzz": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-bzz/-/web3-bzz-1.2.1.tgz", - "integrity": "sha512-LdOO44TuYbGIPfL4ilkuS89GQovxUpmLz6C1UC7VYVVRILeZS740FVB3j9V4P4FHUk1RenaDfKhcntqgVCHtjw==", + "@ethersproject/keccak256": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.3.0.tgz", + "integrity": "sha512-Gv2YqgIUmRbYVNIibafT0qGaeGYLIA/EdWHJ7JcVxVSs2vyxafGxOJ5VpSBHWeOIsE6OOaCelYowhuuTicgdFQ==", "dev": true, "requires": { - "got": "9.6.0", - "swarm-js": "0.1.39", - "underscore": "1.9.1" + "@ethersproject/bytes": "^5.3.0", + "js-sha3": "0.5.7" } }, - "web3-core": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-1.2.1.tgz", - "integrity": "sha512-5ODwIqgl8oIg/0+Ai4jsLxkKFWJYE0uLuE1yUKHNVCL4zL6n3rFjRMpKPokd6id6nJCNgeA64KdWQ4XfpnjdMg==", + "@ethersproject/logger": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.3.0.tgz", + "integrity": "sha512-8bwJ2gxJGkZZnpQSq5uSiZSJjyVTWmlGft4oH8vxHdvO1Asy4TwVepAhPgxIQIMxXZFUNMych1YjIV4oQ4I7dA==", + "dev": true + }, + "@ethersproject/properties": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.3.0.tgz", + "integrity": "sha512-PaHxJyM5/bfusk6vr3yP//JMnm4UEojpzuWGTmtL5X4uNhNnFNvlYilZLyDr4I9cTkIbipCMsAuIcXWsmdRnEw==", "dev": true, "requires": { - "web3-core-helpers": "1.2.1", - "web3-core-method": "1.2.1", - "web3-core-requestmanager": "1.2.1", - "web3-utils": "1.2.1" + "@ethersproject/logger": "^5.3.0" } }, - "web3-core-method": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.2.1.tgz", - "integrity": "sha512-Ghg2WS23qi6Xj8Od3VCzaImLHseEA7/usvnOItluiIc5cKs00WYWsNy2YRStzU9a2+z8lwQywPYp0nTzR/QXdQ==", + "@ethersproject/rlp": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.3.0.tgz", + "integrity": "sha512-oI0joYpsRanl9guDubaW+1NbcpK0vJ3F/6Wpcanzcnqq+oaW9O5E98liwkEDPcb16BUTLIJ+ZF8GPIHYxJ/5Pw==", "dev": true, "requires": { - "underscore": "1.9.1", - "web3-core-helpers": "1.2.1", - "web3-core-promievent": "1.2.1", - "web3-core-subscriptions": "1.2.1", - "web3-utils": "1.2.1" + "@ethersproject/bytes": "^5.3.0", + "@ethersproject/logger": "^5.3.0" } }, - "web3-core-requestmanager": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.2.1.tgz", - "integrity": "sha512-xfknTC69RfYmLKC+83Jz73IC3/sS2ZLhGtX33D4Q5nQ8yc39ElyAolxr9sJQS8kihOcM6u4J+8gyGMqsLcpIBg==", + "@ethersproject/signing-key": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.3.0.tgz", + "integrity": "sha512-+DX/GwHAd0ok1bgedV1cKO0zfK7P/9aEyNoaYiRsGHpCecN7mhLqcdoUiUzE7Uz86LBsxm5ssK0qA1kBB47fbQ==", "dev": true, "requires": { - "underscore": "1.9.1", - "web3-core-helpers": "1.2.1", - "web3-providers-http": "1.2.1", - "web3-providers-ipc": "1.2.1", - "web3-providers-ws": "1.2.1" + "@ethersproject/bytes": "^5.3.0", + "@ethersproject/logger": "^5.3.0", + "@ethersproject/properties": "^5.3.0", + "bn.js": "^4.11.9", + "elliptic": "6.5.4", + "hash.js": "1.1.7" } }, - "web3-core-subscriptions": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.2.1.tgz", - "integrity": "sha512-nmOwe3NsB8V8UFsY1r+sW6KjdOS68h8nuh7NzlWxBQT/19QSUGiERRTaZXWu5BYvo1EoZRMxCKyCQpSSXLc08g==", + "@ethersproject/strings": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.3.0.tgz", + "integrity": "sha512-j/AzIGZ503cvhuF2ldRSjB0BrKzpsBMtCieDtn4TYMMZMQ9zScJn9wLzTQl/bRNvJbBE6TOspK0r8/Ngae/f2Q==", "dev": true, "requires": { - "eventemitter3": "3.1.2", - "underscore": "1.9.1", - "web3-core-helpers": "1.2.1" + "@ethersproject/bytes": "^5.3.0", + "@ethersproject/constants": "^5.3.0", + "@ethersproject/logger": "^5.3.0" } }, - "web3-eth": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-eth/-/web3-eth-1.2.1.tgz", - "integrity": "sha512-/2xly4Yry5FW1i+uygPjhfvgUP/MS/Dk+PDqmzp5M88tS86A+j8BzKc23GrlA8sgGs0645cpZK/999LpEF5UdA==", + "@ethersproject/transactions": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.3.0.tgz", + "integrity": "sha512-cdfK8VVyW2oEBCXhURG0WQ6AICL/r6Gmjh0e4Bvbv6MCn/GBd8FeBH3rtl7ho+AW50csMKeGv3m3K1HSHB2jMQ==", "dev": true, "requires": { - "underscore": "1.9.1", - "web3-core": "1.2.1", - "web3-core-helpers": "1.2.1", - "web3-core-method": "1.2.1", - "web3-core-subscriptions": "1.2.1", - "web3-eth-abi": "1.2.1", - "web3-eth-accounts": "1.2.1", - "web3-eth-contract": "1.2.1", - "web3-eth-ens": "1.2.1", - "web3-eth-iban": "1.2.1", - "web3-eth-personal": "1.2.1", - "web3-net": "1.2.1", - "web3-utils": "1.2.1" + "@ethersproject/address": "^5.3.0", + "@ethersproject/bignumber": "^5.3.0", + "@ethersproject/bytes": "^5.3.0", + "@ethersproject/constants": "^5.3.0", + "@ethersproject/keccak256": "^5.3.0", + "@ethersproject/logger": "^5.3.0", + "@ethersproject/properties": "^5.3.0", + "@ethersproject/rlp": "^5.3.0", + "@ethersproject/signing-key": "^5.3.0" } }, - "web3-eth-accounts": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.2.1.tgz", - "integrity": "sha512-26I4qq42STQ8IeKUyur3MdQ1NzrzCqPsmzqpux0j6X/XBD7EjZ+Cs0lhGNkSKH5dI3V8CJasnQ5T1mNKeWB7nQ==", + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + }, + "elliptic": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", + "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", "dev": true, "requires": { - "any-promise": "1.3.0", - "crypto-browserify": "3.12.0", - "eth-lib": "0.2.7", - "scryptsy": "2.1.0", - "semver": "6.2.0", - "underscore": "1.9.1", - "uuid": "3.3.2", - "web3-core": "1.2.1", - "web3-core-helpers": "1.2.1", - "web3-core-method": "1.2.1", - "web3-utils": "1.2.1" - }, - "dependencies": { - "eth-lib": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.7.tgz", - "integrity": "sha1-L5Pxex4jrsN1nNSj/iDBKGo/wco=", - "dev": true, - "requires": { - "bn.js": "^4.11.6", - "elliptic": "^6.4.0", - "xhr-request-promise": "^0.1.2" - } - } + "bn.js": "^4.11.9", + "brorand": "^1.1.0", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" } }, - "web3-eth-contract": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.2.1.tgz", - "integrity": "sha512-kYFESbQ3boC9bl2rYVghj7O8UKMiuKaiMkxvRH5cEDHil8V7MGEGZNH0slSdoyeftZVlaWSMqkRP/chfnKND0g==", - "dev": true, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + } + } + }, + "@ethersproject/web": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/web/-/web-5.3.0.tgz", + "integrity": "sha512-Ni6/DHnY6k/TD41LEkv0RQDx4jqWz5e/RZvrSecsxGYycF+MFy2z++T/yGc2peRunLOTIFwEksgEGGlbwfYmhQ==", + "requires": { + "@ethersproject/base64": "^5.3.0", + "@ethersproject/bytes": "^5.3.0", + "@ethersproject/logger": "^5.3.0", + "@ethersproject/properties": "^5.3.0", + "@ethersproject/strings": "^5.3.0" + }, + "dependencies": { + "@ethersproject/bignumber": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.3.0.tgz", + "integrity": "sha512-5xguJ+Q1/zRMgHgDCaqAexx/8DwDVLRemw2i6uR8KyGjwGdXI8f32QZZ1cKGucBN6ekJvpUpHy6XAuQnTv0mPA==", "requires": { - "underscore": "1.9.1", - "web3-core": "1.2.1", - "web3-core-helpers": "1.2.1", - "web3-core-method": "1.2.1", - "web3-core-promievent": "1.2.1", - "web3-core-subscriptions": "1.2.1", - "web3-eth-abi": "1.2.1", - "web3-utils": "1.2.1" + "@ethersproject/bytes": "^5.3.0", + "@ethersproject/logger": "^5.3.0", + "bn.js": "^4.11.9" } }, - "web3-eth-ens": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-eth-ens/-/web3-eth-ens-1.2.1.tgz", - "integrity": "sha512-lhP1kFhqZr2nnbu3CGIFFrAnNxk2veXpOXBY48Tub37RtobDyHijHgrj+xTh+mFiPokyrapVjpFsbGa+Xzye4Q==", - "dev": true, + "@ethersproject/bytes": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.3.0.tgz", + "integrity": "sha512-rqLJjdVqCcn7glPer7Fxh87PRqlnRScVAoxcIP3PmOUNApMWJ6yRdOFfo2KvPAdO7Le3yEI1o0YW+Yvr7XCYvw==", "requires": { - "eth-ens-namehash": "2.0.8", - "underscore": "1.9.1", - "web3-core": "1.2.1", - "web3-core-helpers": "1.2.1", - "web3-core-promievent": "1.2.1", - "web3-eth-abi": "1.2.1", - "web3-eth-contract": "1.2.1", - "web3-utils": "1.2.1" + "@ethersproject/logger": "^5.3.0" } }, - "web3-eth-personal": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.2.1.tgz", - "integrity": "sha512-RNDVSiaSoY4aIp8+Hc7z+X72H7lMb3fmAChuSBADoEc7DsJrY/d0R5qQDK9g9t2BO8oxgLrLNyBP/9ub2Hc6Bg==", - "dev": true, + "@ethersproject/constants": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.3.0.tgz", + "integrity": "sha512-4y1feNOwEpgjAfiCFWOHznvv6qUF/H6uI0UKp8xdhftb+H+FbKflXg1pOgH5qs4Sr7EYBL+zPyPb+YD5g1aEyw==", "requires": { - "web3-core": "1.2.1", - "web3-core-helpers": "1.2.1", - "web3-core-method": "1.2.1", - "web3-net": "1.2.1", - "web3-utils": "1.2.1" + "@ethersproject/bignumber": "^5.3.0" } }, - "web3-net": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-net/-/web3-net-1.2.1.tgz", - "integrity": "sha512-Yt1Bs7WgnLESPe0rri/ZoPWzSy55ovioaP35w1KZydrNtQ5Yq4WcrAdhBzcOW7vAkIwrsLQsvA+hrOCy7mNauw==", - "dev": true, + "@ethersproject/logger": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.3.0.tgz", + "integrity": "sha512-8bwJ2gxJGkZZnpQSq5uSiZSJjyVTWmlGft4oH8vxHdvO1Asy4TwVepAhPgxIQIMxXZFUNMych1YjIV4oQ4I7dA==" + }, + "@ethersproject/properties": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.3.0.tgz", + "integrity": "sha512-PaHxJyM5/bfusk6vr3yP//JMnm4UEojpzuWGTmtL5X4uNhNnFNvlYilZLyDr4I9cTkIbipCMsAuIcXWsmdRnEw==", "requires": { - "web3-core": "1.2.1", - "web3-core-method": "1.2.1", - "web3-utils": "1.2.1" + "@ethersproject/logger": "^5.3.0" } }, - "web3-providers-http": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.2.1.tgz", - "integrity": "sha512-BDtVUVolT9b3CAzeGVA/np1hhn7RPUZ6YYGB/sYky+GjeO311Yoq8SRDUSezU92x8yImSC2B+SMReGhd1zL+bQ==", - "dev": true, + "@ethersproject/strings": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.3.0.tgz", + "integrity": "sha512-j/AzIGZ503cvhuF2ldRSjB0BrKzpsBMtCieDtn4TYMMZMQ9zScJn9wLzTQl/bRNvJbBE6TOspK0r8/Ngae/f2Q==", "requires": { - "web3-core-helpers": "1.2.1", - "xhr2-cookies": "1.1.0" + "@ethersproject/bytes": "^5.3.0", + "@ethersproject/constants": "^5.3.0", + "@ethersproject/logger": "^5.3.0" } }, - "web3-providers-ipc": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.2.1.tgz", - "integrity": "sha512-oPEuOCwxVx8L4CPD0TUdnlOUZwGBSRKScCz/Ws2YHdr9Ium+whm+0NLmOZjkjQp5wovQbyBzNa6zJz1noFRvFA==", + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + } + } + }, + "@ethersproject/wordlists": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/wordlists/-/wordlists-5.3.0.tgz", + "integrity": "sha512-JcwumCZcsUxgWpiFU/BRy6b4KlTRdOmYvOKZcAw/3sdF93/pZyPW5Od2hFkHS8oWp4xS06YQ+qHqQhdcxdHafQ==", + "dev": true, + "requires": { + "@ethersproject/bytes": "^5.3.0", + "@ethersproject/hash": "^5.3.0", + "@ethersproject/logger": "^5.3.0", + "@ethersproject/properties": "^5.3.0", + "@ethersproject/strings": "^5.3.0" + }, + "dependencies": { + "@ethersproject/address": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.3.0.tgz", + "integrity": "sha512-29TgjzEBK+gUEUAOfWCG7s9IxLNLCqvr+oDSk6L9TXD0VLvZJKhJV479tKQqheVA81OeGxfpdxYtUVH8hqlCvA==", "dev": true, "requires": { - "oboe": "2.1.4", - "underscore": "1.9.1", - "web3-core-helpers": "1.2.1" + "@ethersproject/bignumber": "^5.3.0", + "@ethersproject/bytes": "^5.3.0", + "@ethersproject/keccak256": "^5.3.0", + "@ethersproject/logger": "^5.3.0", + "@ethersproject/rlp": "^5.3.0" } }, - "web3-providers-ws": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.2.1.tgz", - "integrity": "sha512-oqsQXzu+ejJACVHy864WwIyw+oB21nw/pI65/sD95Zi98+/HQzFfNcIFneF1NC4bVF3VNX4YHTNq2I2o97LAiA==", + "@ethersproject/bignumber": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.3.0.tgz", + "integrity": "sha512-5xguJ+Q1/zRMgHgDCaqAexx/8DwDVLRemw2i6uR8KyGjwGdXI8f32QZZ1cKGucBN6ekJvpUpHy6XAuQnTv0mPA==", "dev": true, "requires": { - "underscore": "1.9.1", - "web3-core-helpers": "1.2.1", - "websocket": "github:web3-js/WebSocket-Node#polyfill/globalThis" + "@ethersproject/bytes": "^5.3.0", + "@ethersproject/logger": "^5.3.0", + "bn.js": "^4.11.9" } }, - "web3-shh": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-shh/-/web3-shh-1.2.1.tgz", - "integrity": "sha512-/3Cl04nza5kuFn25bV3FJWa0s3Vafr5BlT933h26xovQ6HIIz61LmvNQlvX1AhFL+SNJOTcQmK1SM59vcyC8bA==", + "@ethersproject/bytes": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.3.0.tgz", + "integrity": "sha512-rqLJjdVqCcn7glPer7Fxh87PRqlnRScVAoxcIP3PmOUNApMWJ6yRdOFfo2KvPAdO7Le3yEI1o0YW+Yvr7XCYvw==", "dev": true, "requires": { - "web3-core": "1.2.1", - "web3-core-method": "1.2.1", - "web3-core-subscriptions": "1.2.1", - "web3-net": "1.2.1" + "@ethersproject/logger": "^5.3.0" } }, - "websocket": { - "version": "github:web3-js/WebSocket-Node#ef5ea2f41daf4a2113b80c9223df884b4d56c400", - "from": "github:web3-js/WebSocket-Node#polyfill/globalThis", + "@ethersproject/constants": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.3.0.tgz", + "integrity": "sha512-4y1feNOwEpgjAfiCFWOHznvv6qUF/H6uI0UKp8xdhftb+H+FbKflXg1pOgH5qs4Sr7EYBL+zPyPb+YD5g1aEyw==", "dev": true, "requires": { - "debug": "^2.2.0", - "es5-ext": "^0.10.50", - "nan": "^2.14.0", - "typedarray-to-buffer": "^3.1.5", - "yaeti": "^0.0.6" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } + "@ethersproject/bignumber": "^5.3.0" } - } - } - }, - "@truffle/contract-schema": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/@truffle/contract-schema/-/contract-schema-3.2.0.tgz", - "integrity": "sha512-yeb4UoK9cbrT5/Nuz0I0p2XKbf0K1wEmyyBQmo3Q4JOrLidxf59LtDupo9Uq74RtlTAxZC0cy9DnsfWeWVma4A==", - "dev": true, - "requires": { - "ajv": "^6.10.0", - "crypto-js": "^3.1.9-1", - "debug": "^4.1.0" - }, - "dependencies": { - "ajv": { - "version": "6.12.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.2.tgz", - "integrity": "sha512-k+V+hzjm5q/Mr8ef/1Y9goCmlsK4I6Sm74teeyGvFk1XrOsbsKLjEdrvny42CZ+a8sXbk8KWpY/bDwS+FLL2UQ==", + }, + "@ethersproject/hash": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.3.0.tgz", + "integrity": "sha512-gAFZSjUPQ32CIfoKSMtMEQ+IO0kQxqhwz9fCIFt2DtAq2u4pWt8mL9Z5P0r6KkLcQU8LE9FmuPPyd+JvBzmr1w==", "dev": true, "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" + "@ethersproject/abstract-signer": "^5.3.0", + "@ethersproject/address": "^5.3.0", + "@ethersproject/bignumber": "^5.3.0", + "@ethersproject/bytes": "^5.3.0", + "@ethersproject/keccak256": "^5.3.0", + "@ethersproject/logger": "^5.3.0", + "@ethersproject/properties": "^5.3.0", + "@ethersproject/strings": "^5.3.0" } }, - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "@ethersproject/keccak256": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.3.0.tgz", + "integrity": "sha512-Gv2YqgIUmRbYVNIibafT0qGaeGYLIA/EdWHJ7JcVxVSs2vyxafGxOJ5VpSBHWeOIsE6OOaCelYowhuuTicgdFQ==", "dev": true, "requires": { - "ms": "^2.1.1" + "@ethersproject/bytes": "^5.3.0", + "js-sha3": "0.5.7" } }, - "fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "@ethersproject/logger": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.3.0.tgz", + "integrity": "sha512-8bwJ2gxJGkZZnpQSq5uSiZSJjyVTWmlGft4oH8vxHdvO1Asy4TwVepAhPgxIQIMxXZFUNMych1YjIV4oQ4I7dA==", "dev": true }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - } - } - }, - "@truffle/debug-utils": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@truffle/debug-utils/-/debug-utils-4.2.1.tgz", - "integrity": "sha512-OKy9dzCbbx0G1t7xfYyi2VvP+kM6gnJRPt8cjphio2vdZGuy3sB3PjL+8ILsHWyOeFluNJp+rFdAQWjjspEb9A==", - "dev": true, - "requires": { - "@truffle/codec": "^0.5.9", - "@trufflesuite/chromafi": "^2.1.2", - "chalk": "^2.4.2", - "debug": "^4.1.0", - "highlight.js": "^9.15.8", - "highlightjs-solidity": "^1.0.17", - "node-dir": "0.1.17" - }, - "dependencies": { - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "@ethersproject/properties": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.3.0.tgz", + "integrity": "sha512-PaHxJyM5/bfusk6vr3yP//JMnm4UEojpzuWGTmtL5X4uNhNnFNvlYilZLyDr4I9cTkIbipCMsAuIcXWsmdRnEw==", "dev": true, "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "@ethersproject/logger": "^5.3.0" } }, - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "@ethersproject/rlp": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.3.0.tgz", + "integrity": "sha512-oI0joYpsRanl9guDubaW+1NbcpK0vJ3F/6Wpcanzcnqq+oaW9O5E98liwkEDPcb16BUTLIJ+ZF8GPIHYxJ/5Pw==", "dev": true, "requires": { - "ms": "^2.1.1" + "@ethersproject/bytes": "^5.3.0", + "@ethersproject/logger": "^5.3.0" } }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "@ethersproject/strings": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.3.0.tgz", + "integrity": "sha512-j/AzIGZ503cvhuF2ldRSjB0BrKzpsBMtCieDtn4TYMMZMQ9zScJn9wLzTQl/bRNvJbBE6TOspK0r8/Ngae/f2Q==", + "dev": true, + "requires": { + "@ethersproject/bytes": "^5.3.0", + "@ethersproject/constants": "^5.3.0", + "@ethersproject/logger": "^5.3.0" + } + }, + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", "dev": true } } }, - "@truffle/error": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/@truffle/error/-/error-0.0.8.tgz", - "integrity": "sha512-x55rtRuNfRO1azmZ30iR0pf0OJ6flQqbax1hJz+Avk1K5fdmOv5cr22s9qFnwTWnS6Bw0jvJEoR0ITsM7cPKtQ==", - "dev": true - }, - "@truffle/hdwallet-provider": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@truffle/hdwallet-provider/-/hdwallet-provider-1.2.6.tgz", - "integrity": "sha512-g4n1ETH2y7KlqQYq0PMjuHaLxggU96RSj1p3i6dGCAgONyPyA+TD1wyot8M2dXp+RG/VVzZoVTuyFGyBs5EhXw==", + "@nodelib/fs.scandir": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz", + "integrity": "sha512-eGmwYQn3gxo4r7jdQnkrrN6bY478C3P+a/y72IJukF8LjB6ZHeB3c+Ehacj3sYeSmUXGlnA67/PmbM9CVwL7Dw==", + "dev": true, "requires": { - "@trufflesuite/web3-provider-engine": "15.0.13-1", - "any-promise": "^1.3.0", - "bindings": "^1.5.0", - "ethereum-cryptography": "^0.1.3", - "ethereum-protocol": "^1.0.1", - "ethereumjs-tx": "^1.0.0", + "@nodelib/fs.stat": "2.0.3", + "run-parallel": "^1.1.9" + } + }, + "@nodelib/fs.stat": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz", + "integrity": "sha512-bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA==", + "dev": true + }, + "@nodelib/fs.walk": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.4.tgz", + "integrity": "sha512-1V9XOY4rDW0rehzbrcqAmHnz8e7SKvX27gh8Gt2WgB0+pdzdiLV83p72kZPU+jvMbS1qU5mauP2iOvO8rhmurQ==", + "dev": true, + "requires": { + "@nodelib/fs.scandir": "2.1.3", + "fastq": "^1.6.0" + } + }, + "@nomiclabs/buidler": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/@nomiclabs/buidler/-/buidler-1.4.8.tgz", + "integrity": "sha512-OUnNWx+WXOJzueJCfyuEXu3qNMq1j9eGDDpgflpRwjPeiQQnvVzfbwrPjs0PlxOC3Xtmaxabtgek5wGxS1C7Ew==", + "dev": true, + "requires": { + "@nomiclabs/ethereumjs-vm": "^4.1.1", + "@sentry/node": "^5.18.1", + "@solidity-parser/parser": "^0.5.2", + "@types/bn.js": "^4.11.5", + "@types/lru-cache": "^5.1.0", + "abort-controller": "^3.0.0", + "ansi-escapes": "^4.3.0", + "chalk": "^2.4.2", + "chokidar": "^3.4.0", + "ci-info": "^2.0.0", + "debug": "^4.1.1", + "deepmerge": "^2.1.0", + "download": "^7.1.0", + "enquirer": "^2.3.0", + "env-paths": "^2.2.0", + "eth-sig-util": "^2.5.2", + "ethereum-cryptography": "^0.1.2", + "ethereumjs-abi": "^0.6.8", + "ethereumjs-account": "^3.0.0", + "ethereumjs-block": "^2.2.0", + "ethereumjs-common": "^1.3.2", + "ethereumjs-tx": "^2.1.1", "ethereumjs-util": "^6.1.0", - "ethereumjs-wallet": "^1.0.1" + "find-up": "^2.1.0", + "fp-ts": "1.19.3", + "fs-extra": "^7.0.1", + "glob": "^7.1.3", + "io-ts": "1.10.4", + "is-installed-globally": "^0.2.0", + "lodash": "^4.17.11", + "merkle-patricia-tree": "^3.0.0", + "mocha": "^7.1.2", + "node-fetch": "^2.6.0", + "qs": "^6.7.0", + "raw-body": "^2.4.1", + "semver": "^6.3.0", + "slash": "^3.0.0", + "solc": "0.6.8", + "source-map-support": "^0.5.13", + "ts-essentials": "^2.0.7", + "tsort": "0.0.1", + "uuid": "^3.3.2", + "ws": "^7.2.1" }, "dependencies": { + "@solidity-parser/parser": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/@solidity-parser/parser/-/parser-0.5.2.tgz", + "integrity": "sha512-uRyvnvVYmgNmTBpWDbBsH/0kPESQhQpEc4KsvMRLVzFJ1o1s0uIv0Y6Y9IB5vI1Dwz2CbS4X/y4Wyw/75cTFnQ==", + "dev": true + }, + "abstract-leveldown": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-5.0.0.tgz", + "integrity": "sha512-5mU5P1gXtsMIXg65/rsYGsi93+MlogXZ9FA8JnwKurHQg64bfXwGYVdVdijNTVNOlAsuIiOwHdvFFD5JqCJQ7A==", + "dev": true, + "requires": { + "xtend": "~4.0.0" + } + }, + "ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, + "requires": { + "type-fest": "^0.21.3" + } + }, + "async": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", + "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", + "dev": true, + "requires": { + "lodash": "^4.17.14" + } + }, "bn.js": { "version": "4.12.0", "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "cliui": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", + "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", + "dev": true, + "requires": { + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" + } + }, + "commander": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/commander/-/commander-3.0.2.tgz", + "integrity": "sha512-Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow==", + "dev": true + }, + "debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "deferred-leveldown": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/deferred-leveldown/-/deferred-leveldown-4.0.2.tgz", + "integrity": "sha512-5fMC8ek8alH16QiV0lTCis610D1Zt1+LA4MS4d63JgS32lrCjTFDUFz2ao09/j2I4Bqb5jL4FZYwu7Jz0XO1ww==", + "dev": true, + "requires": { + "abstract-leveldown": "~5.0.0", + "inherits": "^2.0.3" + } + }, + "diff": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", + "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", + "dev": true }, "elliptic": { "version": "6.5.4", "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", + "dev": true, "requires": { "bn.js": "^4.11.9", "brorand": "^1.1.0", @@ -1930,24 +2536,48 @@ "minimalistic-crypto-utils": "^1.0.1" } }, - "ethereum-common": { - "version": "0.0.18", - "resolved": "https://registry.npmjs.org/ethereum-common/-/ethereum-common-0.0.18.tgz", - "integrity": "sha1-L9w1dvIykDNYl26znaeDIT/5Uj8=" + "encoding-down": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/encoding-down/-/encoding-down-5.0.4.tgz", + "integrity": "sha512-8CIZLDcSKxgzT+zX8ZVfgNbu8Md2wq/iqa1Y7zyVR18QBEAc0Nmzuvj/N5ykSKpfGzjM8qxbaFntLPwnVoUhZw==", + "dev": true, + "requires": { + "abstract-leveldown": "^5.0.0", + "inherits": "^2.0.3", + "level-codec": "^9.0.0", + "level-errors": "^2.0.0", + "xtend": "^4.0.1" + } }, - "ethereumjs-tx": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-1.3.7.tgz", - "integrity": "sha512-wvLMxzt1RPhAQ9Yi3/HKZTn0FZYpnsmQdbKYfUUpi4j1SEIcbkd9tndVjcPrufY3V7j2IebOpC00Zp2P/Ay2kA==", + "ethereumjs-account": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ethereumjs-account/-/ethereumjs-account-3.0.0.tgz", + "integrity": "sha512-WP6BdscjiiPkQfF9PVfMcwx/rDvfZTjFKY0Uwc09zSQr9JfIVH87dYIJu0gNhBhpmovV4yq295fdllS925fnBA==", + "dev": true, "requires": { - "ethereum-common": "^0.0.18", - "ethereumjs-util": "^5.0.0" + "ethereumjs-util": "^6.0.0", + "rlp": "^2.2.1", + "safe-buffer": "^5.1.1" + } + }, + "ethereumjs-block": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/ethereumjs-block/-/ethereumjs-block-2.2.2.tgz", + "integrity": "sha512-2p49ifhek3h2zeg/+da6XpdFR3GlqY3BIEiqxGF8j9aSRIgkb7M1Ky+yULBKJOu8PAZxfhsYA+HxUk2aCQp3vg==", + "dev": true, + "requires": { + "async": "^2.0.1", + "ethereumjs-common": "^1.5.0", + "ethereumjs-tx": "^2.1.1", + "ethereumjs-util": "^5.0.0", + "merkle-patricia-tree": "^2.1.2" }, "dependencies": { "ethereumjs-util": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", + "dev": true, "requires": { "bn.js": "^4.11.0", "create-hash": "^1.1.2", @@ -1957,1584 +2587,4620 @@ "rlp": "^2.0.0", "safe-buffer": "^5.1.1" } + }, + "merkle-patricia-tree": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/merkle-patricia-tree/-/merkle-patricia-tree-2.3.2.tgz", + "integrity": "sha512-81PW5m8oz/pz3GvsAwbauj7Y00rqm81Tzad77tHBwU7pIAtN+TJnMSOJhxBKflSVYhptMMb9RskhqHqrSm1V+g==", + "dev": true, + "requires": { + "async": "^1.4.2", + "ethereumjs-util": "^5.0.0", + "level-ws": "0.0.0", + "levelup": "^1.2.1", + "memdown": "^1.0.0", + "readable-stream": "^2.0.0", + "rlp": "^2.0.0", + "semaphore": ">=1.0.1" + }, + "dependencies": { + "async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", + "dev": true + } + } } } }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - } - } - }, - "@truffle/interface-adapter": { - "version": "0.4.9", - "resolved": "https://registry.npmjs.org/@truffle/interface-adapter/-/interface-adapter-0.4.9.tgz", - "integrity": "sha512-2dYccf7lAwx90NVYmn89QABpd3dx7BxvDAaHgzVa2YVOUkTUpkZiaIsD2YlsVQ1rew17wMNi5WXH2RFnmzQ82A==", - "dev": true, - "requires": { - "bn.js": "^4.11.8", - "ethers": "^4.0.32", - "source-map-support": "^0.5.19", - "web3": "1.2.1" - }, - "dependencies": { - "bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", - "dev": true - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", "dev": true, "requires": { - "ms": "2.0.0" + "locate-path": "^2.0.0" } }, - "nan": { - "version": "2.14.1", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.1.tgz", - "integrity": "sha512-isWHgVjnFjh2x2yuJ/tj3JbwoHu3UC2dX5G/88Cm24yB6YopVgxvBObDY7n5xW6ExmFhJpSEQqFPvq9zaXc8Jw==", - "dev": true + "fs-extra": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", + "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } }, - "p-cancelable": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.3.0.tgz", - "integrity": "sha512-RVbZPLso8+jFeq1MfNvgXtCRED2raz/dKpacfTNxsx6pLEpEomM7gah6VeHSYV3+vo0OAi4MkArtQcWWXuQoyw==", - "dev": true + "global-dirs": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz", + "integrity": "sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=", + "dev": true, + "requires": { + "ini": "^1.3.4" + } }, - "prepend-http": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", - "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=", + "immediate": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.2.3.tgz", + "integrity": "sha1-0UD6j2FGWb1lQSMwl92qwlzdmRw=", "dev": true }, - "semver": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.2.0.tgz", - "integrity": "sha512-jdFC1VdUGT/2Scgbimf7FSx9iJLXoqfglSF+gJeuNWVpiE37OIbc1jywR/GJyFdz3mnkz2/id0L0J/cr0izR5A==", + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", "dev": true }, - "swarm-js": { - "version": "0.1.39", - "resolved": "https://registry.npmjs.org/swarm-js/-/swarm-js-0.1.39.tgz", - "integrity": "sha512-QLMqL2rzF6n5s50BptyD6Oi0R1aWlJC5Y17SRIVXRj6OR1DRIPM7nepvrxxkjA1zNzFz6mUOMjfeqeDaWB7OOg==", + "is-installed-globally": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.2.0.tgz", + "integrity": "sha512-g3TzWCnR/eO4Q3abCwgFjOFw7uVOfxG4m8hMr/39Jcf2YvE5mHrFKqpyuraWV4zwx9XhjnVO4nY0ZI4llzl0Pg==", "dev": true, "requires": { - "bluebird": "^3.5.0", - "buffer": "^5.0.5", - "decompress": "^4.0.0", - "eth-lib": "^0.1.26", - "fs-extra": "^4.0.2", - "got": "^7.1.0", - "mime-types": "^2.1.16", - "mkdirp-promise": "^5.0.1", - "mock-fs": "^4.1.0", - "setimmediate": "^1.0.5", - "tar": "^4.0.2", - "xhr-request-promise": "^0.1.2" - }, - "dependencies": { - "got": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/got/-/got-7.1.0.tgz", - "integrity": "sha512-Y5WMo7xKKq1muPsxD+KmrR8DH5auG7fBdDVueZwETwV6VytKyU9OX/ddpq2/1hp1vIPvVb4T81dKQz3BivkNLw==", - "dev": true, - "requires": { - "decompress-response": "^3.2.0", - "duplexer3": "^0.1.4", - "get-stream": "^3.0.0", - "is-plain-obj": "^1.1.0", - "is-retry-allowed": "^1.0.0", - "is-stream": "^1.0.0", - "isurl": "^1.0.0-alpha5", - "lowercase-keys": "^1.0.0", - "p-cancelable": "^0.3.0", - "p-timeout": "^1.1.1", - "safe-buffer": "^5.0.1", - "timed-out": "^4.0.0", - "url-parse-lax": "^1.0.0", - "url-to-options": "^1.0.1" - } - } + "global-dirs": "^0.1.1", + "is-path-inside": "^2.1.0" } }, - "underscore": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.9.1.tgz", - "integrity": "sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg==", - "dev": true - }, - "url-parse-lax": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", - "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", + "is-path-inside": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-2.1.0.tgz", + "integrity": "sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg==", "dev": true, "requires": { - "prepend-http": "^1.0.1" + "path-is-inside": "^1.0.2" } }, - "web3": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3/-/web3-1.2.1.tgz", - "integrity": "sha512-nNMzeCK0agb5i/oTWNdQ1aGtwYfXzHottFP2Dz0oGIzavPMGSKyVlr8ibVb1yK5sJBjrWVnTdGaOC2zKDFuFRw==", + "js-sha3": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz", + "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==", + "dev": true + }, + "js-yaml": { + "version": "3.13.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", + "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", "dev": true, "requires": { - "web3-bzz": "1.2.1", - "web3-core": "1.2.1", - "web3-eth": "1.2.1", - "web3-eth-personal": "1.2.1", - "web3-net": "1.2.1", - "web3-shh": "1.2.1", - "web3-utils": "1.2.1" + "argparse": "^1.0.7", + "esprima": "^4.0.0" } }, - "web3-bzz": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-bzz/-/web3-bzz-1.2.1.tgz", - "integrity": "sha512-LdOO44TuYbGIPfL4ilkuS89GQovxUpmLz6C1UC7VYVVRILeZS740FVB3j9V4P4FHUk1RenaDfKhcntqgVCHtjw==", + "level-codec": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/level-codec/-/level-codec-9.0.2.tgz", + "integrity": "sha512-UyIwNb1lJBChJnGfjmO0OR+ezh2iVu1Kas3nvBS/BzGnx79dv6g7unpKIDNPMhfdTEGoc7mC8uAu51XEtX+FHQ==", "dev": true, "requires": { - "got": "9.6.0", - "swarm-js": "0.1.39", - "underscore": "1.9.1" + "buffer": "^5.6.0" } }, - "web3-core": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-1.2.1.tgz", - "integrity": "sha512-5ODwIqgl8oIg/0+Ai4jsLxkKFWJYE0uLuE1yUKHNVCL4zL6n3rFjRMpKPokd6id6nJCNgeA64KdWQ4XfpnjdMg==", + "level-errors": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/level-errors/-/level-errors-2.0.1.tgz", + "integrity": "sha512-UVprBJXite4gPS+3VznfgDSU8PTRuVX0NXwoWW50KLxd2yw4Y1t2JUR5In1itQnudZqRMT9DlAM3Q//9NCjCFw==", "dev": true, "requires": { - "web3-core-helpers": "1.2.1", - "web3-core-method": "1.2.1", - "web3-core-requestmanager": "1.2.1", - "web3-utils": "1.2.1" + "errno": "~0.1.1" } }, - "web3-core-method": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.2.1.tgz", - "integrity": "sha512-Ghg2WS23qi6Xj8Od3VCzaImLHseEA7/usvnOItluiIc5cKs00WYWsNy2YRStzU9a2+z8lwQywPYp0nTzR/QXdQ==", + "level-iterator-stream": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/level-iterator-stream/-/level-iterator-stream-3.0.1.tgz", + "integrity": "sha512-nEIQvxEED9yRThxvOrq8Aqziy4EGzrxSZK+QzEFAVuJvQ8glfyZ96GB6BoI4sBbLfjMXm2w4vu3Tkcm9obcY0g==", "dev": true, "requires": { - "underscore": "1.9.1", - "web3-core-helpers": "1.2.1", - "web3-core-promievent": "1.2.1", - "web3-core-subscriptions": "1.2.1", - "web3-utils": "1.2.1" + "inherits": "^2.0.1", + "readable-stream": "^2.3.6", + "xtend": "^4.0.0" } }, - "web3-core-requestmanager": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.2.1.tgz", - "integrity": "sha512-xfknTC69RfYmLKC+83Jz73IC3/sS2ZLhGtX33D4Q5nQ8yc39ElyAolxr9sJQS8kihOcM6u4J+8gyGMqsLcpIBg==", + "level-mem": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/level-mem/-/level-mem-3.0.1.tgz", + "integrity": "sha512-LbtfK9+3Ug1UmvvhR2DqLqXiPW1OJ5jEh0a3m9ZgAipiwpSxGj/qaVVy54RG5vAQN1nCuXqjvprCuKSCxcJHBg==", "dev": true, "requires": { - "underscore": "1.9.1", - "web3-core-helpers": "1.2.1", - "web3-providers-http": "1.2.1", - "web3-providers-ipc": "1.2.1", - "web3-providers-ws": "1.2.1" + "level-packager": "~4.0.0", + "memdown": "~3.0.0" + }, + "dependencies": { + "memdown": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/memdown/-/memdown-3.0.0.tgz", + "integrity": "sha512-tbV02LfZMWLcHcq4tw++NuqMO+FZX8tNJEiD2aNRm48ZZusVg5N8NART+dmBkepJVye986oixErf7jfXboMGMA==", + "dev": true, + "requires": { + "abstract-leveldown": "~5.0.0", + "functional-red-black-tree": "~1.0.1", + "immediate": "~3.2.3", + "inherits": "~2.0.1", + "ltgt": "~2.2.0", + "safe-buffer": "~5.1.1" + } + } } }, - "web3-core-subscriptions": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.2.1.tgz", - "integrity": "sha512-nmOwe3NsB8V8UFsY1r+sW6KjdOS68h8nuh7NzlWxBQT/19QSUGiERRTaZXWu5BYvo1EoZRMxCKyCQpSSXLc08g==", + "level-packager": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/level-packager/-/level-packager-4.0.1.tgz", + "integrity": "sha512-svCRKfYLn9/4CoFfi+d8krOtrp6RoX8+xm0Na5cgXMqSyRru0AnDYdLl+YI8u1FyS6gGZ94ILLZDE5dh2but3Q==", "dev": true, "requires": { - "eventemitter3": "3.1.2", - "underscore": "1.9.1", - "web3-core-helpers": "1.2.1" + "encoding-down": "~5.0.0", + "levelup": "^3.0.0" + }, + "dependencies": { + "levelup": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/levelup/-/levelup-3.1.1.tgz", + "integrity": "sha512-9N10xRkUU4dShSRRFTBdNaBxofz+PGaIZO962ckboJZiNmLuhVT6FZ6ZKAsICKfUBO76ySaYU6fJWX/jnj3Lcg==", + "dev": true, + "requires": { + "deferred-leveldown": "~4.0.0", + "level-errors": "~2.0.0", + "level-iterator-stream": "~3.0.0", + "xtend": "~4.0.0" + } + } } }, - "web3-eth": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-eth/-/web3-eth-1.2.1.tgz", - "integrity": "sha512-/2xly4Yry5FW1i+uygPjhfvgUP/MS/Dk+PDqmzp5M88tS86A+j8BzKc23GrlA8sgGs0645cpZK/999LpEF5UdA==", + "log-symbols": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-3.0.0.tgz", + "integrity": "sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ==", "dev": true, "requires": { - "underscore": "1.9.1", - "web3-core": "1.2.1", - "web3-core-helpers": "1.2.1", - "web3-core-method": "1.2.1", - "web3-core-subscriptions": "1.2.1", - "web3-eth-abi": "1.2.1", - "web3-eth-accounts": "1.2.1", - "web3-eth-contract": "1.2.1", - "web3-eth-ens": "1.2.1", - "web3-eth-iban": "1.2.1", - "web3-eth-personal": "1.2.1", - "web3-net": "1.2.1", - "web3-utils": "1.2.1" + "chalk": "^2.4.2" } }, - "web3-eth-accounts": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.2.1.tgz", - "integrity": "sha512-26I4qq42STQ8IeKUyur3MdQ1NzrzCqPsmzqpux0j6X/XBD7EjZ+Cs0lhGNkSKH5dI3V8CJasnQ5T1mNKeWB7nQ==", + "merkle-patricia-tree": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/merkle-patricia-tree/-/merkle-patricia-tree-3.0.0.tgz", + "integrity": "sha512-soRaMuNf/ILmw3KWbybaCjhx86EYeBbD8ph0edQCTed0JN/rxDt1EBN52Ajre3VyGo+91f8+/rfPIRQnnGMqmQ==", "dev": true, "requires": { - "any-promise": "1.3.0", - "crypto-browserify": "3.12.0", - "eth-lib": "0.2.7", - "scryptsy": "2.1.0", - "semver": "6.2.0", - "underscore": "1.9.1", - "uuid": "3.3.2", - "web3-core": "1.2.1", - "web3-core-helpers": "1.2.1", - "web3-core-method": "1.2.1", - "web3-utils": "1.2.1" + "async": "^2.6.1", + "ethereumjs-util": "^5.2.0", + "level-mem": "^3.0.1", + "level-ws": "^1.0.0", + "readable-stream": "^3.0.6", + "rlp": "^2.0.0", + "semaphore": ">=1.0.1" }, "dependencies": { - "eth-lib": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.7.tgz", - "integrity": "sha1-L5Pxex4jrsN1nNSj/iDBKGo/wco=", + "ethereumjs-util": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", + "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", "dev": true, "requires": { - "bn.js": "^4.11.6", - "elliptic": "^6.4.0", - "xhr-request-promise": "^0.1.2" + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "^0.1.3", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1" + } + }, + "level-ws": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/level-ws/-/level-ws-1.0.0.tgz", + "integrity": "sha512-RXEfCmkd6WWFlArh3X8ONvQPm8jNpfA0s/36M4QzLqrLEIt1iJE9WBHLZ5vZJK6haMjJPJGJCQWfjMNnRcq/9Q==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "readable-stream": "^2.2.8", + "xtend": "^4.0.1" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + } + } + }, + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" } } } }, - "web3-eth-contract": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.2.1.tgz", - "integrity": "sha512-kYFESbQ3boC9bl2rYVghj7O8UKMiuKaiMkxvRH5cEDHil8V7MGEGZNH0slSdoyeftZVlaWSMqkRP/chfnKND0g==", - "dev": true, - "requires": { - "underscore": "1.9.1", - "web3-core": "1.2.1", - "web3-core-helpers": "1.2.1", - "web3-core-method": "1.2.1", - "web3-core-promievent": "1.2.1", - "web3-core-subscriptions": "1.2.1", - "web3-eth-abi": "1.2.1", - "web3-utils": "1.2.1" + "mocha": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-7.2.0.tgz", + "integrity": "sha512-O9CIypScywTVpNaRrCAgoUnJgozpIofjKUYmJhiCIJMiuYnLI6otcb1/kpW9/n/tJODHGZ7i8aLQoDVsMtOKQQ==", + "dev": true, + "requires": { + "ansi-colors": "3.2.3", + "browser-stdout": "1.3.1", + "chokidar": "3.3.0", + "debug": "3.2.6", + "diff": "3.5.0", + "escape-string-regexp": "1.0.5", + "find-up": "3.0.0", + "glob": "7.1.3", + "growl": "1.10.5", + "he": "1.2.0", + "js-yaml": "3.13.1", + "log-symbols": "3.0.0", + "minimatch": "3.0.4", + "mkdirp": "0.5.5", + "ms": "2.1.1", + "node-environment-flags": "1.0.6", + "object.assign": "4.1.0", + "strip-json-comments": "2.0.1", + "supports-color": "6.0.0", + "which": "1.3.1", + "wide-align": "1.1.3", + "yargs": "13.3.2", + "yargs-parser": "13.1.2", + "yargs-unparser": "1.6.0" + }, + "dependencies": { + "chokidar": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.3.0.tgz", + "integrity": "sha512-dGmKLDdT3Gdl7fBUe8XK+gAtGmzy5Fn0XkkWQuYxGIgWVPPse2CxFA5mtrlD0TOHaHjEUqkWNyP1XdHoJES/4A==", + "dev": true, + "requires": { + "anymatch": "~3.1.1", + "braces": "~3.0.2", + "fsevents": "~2.1.1", + "glob-parent": "~5.1.0", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.2.0" + } + }, + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "glob": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", + "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "dev": true + }, + "supports-color": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.0.0.tgz", + "integrity": "sha512-on9Kwidc1IUQo+bQdhi8+Tijpo0e1SS6RoGo2guUwn5vdaxw8RXOF9Vb2ws+ihWOmh4JnCJOvaziZWP1VABaLg==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } } }, - "web3-eth-ens": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-eth-ens/-/web3-eth-ens-1.2.1.tgz", - "integrity": "sha512-lhP1kFhqZr2nnbu3CGIFFrAnNxk2veXpOXBY48Tub37RtobDyHijHgrj+xTh+mFiPokyrapVjpFsbGa+Xzye4Q==", + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node-fetch": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", + "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==", + "dev": true + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, "requires": { - "eth-ens-namehash": "2.0.8", - "underscore": "1.9.1", - "web3-core": "1.2.1", - "web3-core-helpers": "1.2.1", - "web3-core-promievent": "1.2.1", - "web3-eth-abi": "1.2.1", - "web3-eth-contract": "1.2.1", - "web3-utils": "1.2.1" + "p-try": "^2.0.0" } }, - "web3-eth-personal": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.2.1.tgz", - "integrity": "sha512-RNDVSiaSoY4aIp8+Hc7z+X72H7lMb3fmAChuSBADoEc7DsJrY/d0R5qQDK9g9t2BO8oxgLrLNyBP/9ub2Hc6Bg==", + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", "dev": true, "requires": { - "web3-core": "1.2.1", - "web3-core-helpers": "1.2.1", - "web3-core-method": "1.2.1", - "web3-net": "1.2.1", - "web3-utils": "1.2.1" + "p-limit": "^2.0.0" } }, - "web3-net": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-net/-/web3-net-1.2.1.tgz", - "integrity": "sha512-Yt1Bs7WgnLESPe0rri/ZoPWzSy55ovioaP35w1KZydrNtQ5Yq4WcrAdhBzcOW7vAkIwrsLQsvA+hrOCy7mNauw==", + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true + }, + "qs": { + "version": "6.10.1", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.1.tgz", + "integrity": "sha512-M528Hph6wsSVOBiYUnGf+K/7w0hNshs/duGsNXPUCLH5XAqjEtiPGwNONLV0tBH8NoGb0mvD5JubnUTrujKDTg==", "dev": true, "requires": { - "web3-core": "1.2.1", - "web3-core-method": "1.2.1", - "web3-utils": "1.2.1" + "side-channel": "^1.0.4" } }, - "web3-providers-http": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.2.1.tgz", - "integrity": "sha512-BDtVUVolT9b3CAzeGVA/np1hhn7RPUZ6YYGB/sYky+GjeO311Yoq8SRDUSezU92x8yImSC2B+SMReGhd1zL+bQ==", + "readdirp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.2.0.tgz", + "integrity": "sha512-crk4Qu3pmXwgxdSgGhgA/eXiJAPQiX4GMOZZMXnqKxHX7TaoL+3gQVo/WeuAiogr07DpnfjIMpXXa+PAIvwPGQ==", "dev": true, "requires": { - "web3-core-helpers": "1.2.1", - "xhr2-cookies": "1.1.0" + "picomatch": "^2.0.4" } }, - "web3-providers-ipc": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.2.1.tgz", - "integrity": "sha512-oPEuOCwxVx8L4CPD0TUdnlOUZwGBSRKScCz/Ws2YHdr9Ium+whm+0NLmOZjkjQp5wovQbyBzNa6zJz1noFRvFA==", + "solc": { + "version": "0.6.8", + "resolved": "https://registry.npmjs.org/solc/-/solc-0.6.8.tgz", + "integrity": "sha512-7URBAisWVjO7dwWNpEkQ5dpRSpSF4Wm0aD5EB82D5BQKh+q7jhOxhgkG4K5gax/geM0kPZUAxnaLcgl2ZXBgMQ==", "dev": true, "requires": { - "oboe": "2.1.4", - "underscore": "1.9.1", - "web3-core-helpers": "1.2.1" + "command-exists": "^1.2.8", + "commander": "3.0.2", + "fs-extra": "^0.30.0", + "js-sha3": "0.8.0", + "memorystream": "^0.3.1", + "require-from-string": "^2.0.0", + "semver": "^5.5.0", + "tmp": "0.0.33" + }, + "dependencies": { + "fs-extra": { + "version": "0.30.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.30.0.tgz", + "integrity": "sha1-8jP/zAjU2n1DLapEl3aYnbHfk/A=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^2.1.0", + "klaw": "^1.0.0", + "path-is-absolute": "^1.0.0", + "rimraf": "^2.2.8" + } + }, + "jsonfile": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", + "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } } }, - "web3-providers-ws": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.2.1.tgz", - "integrity": "sha512-oqsQXzu+ejJACVHy864WwIyw+oB21nw/pI65/sD95Zi98+/HQzFfNcIFneF1NC4bVF3VNX4YHTNq2I2o97LAiA==", + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", "dev": true, "requires": { - "underscore": "1.9.1", - "web3-core-helpers": "1.2.1", - "websocket": "github:web3-js/WebSocket-Node#polyfill/globalThis" + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" } }, - "web3-shh": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-shh/-/web3-shh-1.2.1.tgz", - "integrity": "sha512-/3Cl04nza5kuFn25bV3FJWa0s3Vafr5BlT933h26xovQ6HIIz61LmvNQlvX1AhFL+SNJOTcQmK1SM59vcyC8bA==", + "type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true + }, + "ws": { + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.0.tgz", + "integrity": "sha512-6ezXvzOZupqKj4jUqbQ9tXuJNo+BR2gU8fFRk3XCP3e0G6WT414u5ELe6Y0vtp7kmSJ3F7YWObSNr1ESsgi4vw==", + "dev": true + }, + "y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "dev": true + }, + "yargs": { + "version": "13.3.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", + "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", "dev": true, "requires": { - "web3-core": "1.2.1", - "web3-core-method": "1.2.1", - "web3-core-subscriptions": "1.2.1", - "web3-net": "1.2.1" + "cliui": "^5.0.0", + "find-up": "^3.0.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^3.0.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^13.1.2" + }, + "dependencies": { + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + } } }, - "websocket": { - "version": "github:web3-js/WebSocket-Node#ef5ea2f41daf4a2113b80c9223df884b4d56c400", - "from": "github:web3-js/WebSocket-Node#polyfill/globalThis", + "yargs-unparser": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-1.6.0.tgz", + "integrity": "sha512-W9tKgmSn0DpSatfri0nx52Joq5hVXgeLiqR/5G0sZNDoLZFOr/xjBUDcShCOGNsBnEMNo1KAMBkTej1Hm62HTw==", "dev": true, "requires": { - "debug": "^2.2.0", - "es5-ext": "^0.10.50", - "nan": "^2.14.0", - "typedarray-to-buffer": "^3.1.5", - "yaeti": "^0.0.6" + "flat": "^4.1.0", + "lodash": "^4.17.15", + "yargs": "^13.3.0" } } } }, - "@truffle/provider": { - "version": "0.1.19", - "resolved": "https://registry.npmjs.org/@truffle/provider/-/provider-0.1.19.tgz", - "integrity": "sha512-ke8iQmzW4Y99+8iff8xQcc+mCNU4AkwtaZ/iSpmVD8qpLytw8/DSNCm0RiEz9/+I93Q1zqI4Jnij/rXnkS2Njw==", + "@nomiclabs/ethereumjs-vm": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@nomiclabs/ethereumjs-vm/-/ethereumjs-vm-4.2.2.tgz", + "integrity": "sha512-8WmX94mMcJaZ7/m7yBbyuS6B+wuOul+eF+RY9fBpGhNaUpyMR/vFIcDojqcWQ4Yafe1tMKY5LDu2yfT4NZgV4Q==", "dev": true, "requires": { - "@truffle/error": "^0.0.7", - "@truffle/interface-adapter": "^0.3.0", - "web3": "1.2.1" + "async": "^2.1.2", + "async-eventemitter": "^0.2.2", + "core-js-pure": "^3.0.1", + "ethereumjs-account": "^3.0.0", + "ethereumjs-block": "^2.2.2", + "ethereumjs-blockchain": "^4.0.3", + "ethereumjs-common": "^1.5.0", + "ethereumjs-tx": "^2.1.2", + "ethereumjs-util": "^6.2.0", + "fake-merkle-patricia-tree": "^1.0.1", + "functional-red-black-tree": "^1.0.1", + "merkle-patricia-tree": "3.0.0", + "rustbn.js": "~0.2.0", + "safe-buffer": "^5.1.1", + "util.promisify": "^1.0.0" }, "dependencies": { - "@truffle/error": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/@truffle/error/-/error-0.0.7.tgz", - "integrity": "sha512-UIfVKsXSXocKnn5+RNklUXNoGd/JVj7V8KmC48TQzmjU33HQI86PX0JDS7SpHMHasI3w9X//1q7Lu7nZtj3Zzg==", - "dev": true - }, - "@truffle/interface-adapter": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@truffle/interface-adapter/-/interface-adapter-0.3.3.tgz", - "integrity": "sha512-l3I4WFTfnBSIfG96IOBRtAIE6AHDAxcOUJE7W5zh9hocQwzQlGWc2yEyyTcLa0656TTM8RxaZZ2S/KdHHMvCaw==", + "abstract-leveldown": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-5.0.0.tgz", + "integrity": "sha512-5mU5P1gXtsMIXg65/rsYGsi93+MlogXZ9FA8JnwKurHQg64bfXwGYVdVdijNTVNOlAsuIiOwHdvFFD5JqCJQ7A==", "dev": true, "requires": { - "bn.js": "^4.11.8", - "ethers": "^4.0.32", - "lodash": "^4.17.13", - "web3": "1.2.2" - }, - "dependencies": { - "web3": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/web3/-/web3-1.2.2.tgz", - "integrity": "sha512-/ChbmB6qZpfGx6eNpczt5YSUBHEA5V2+iUCbn85EVb3Zv6FVxrOo5Tv7Lw0gE2tW7EEjASbCyp3mZeiZaCCngg==", - "dev": true, - "requires": { - "@types/node": "^12.6.1", - "web3-bzz": "1.2.2", - "web3-core": "1.2.2", - "web3-eth": "1.2.2", - "web3-eth-personal": "1.2.2", - "web3-net": "1.2.2", - "web3-shh": "1.2.2", - "web3-utils": "1.2.2" - } - } + "xtend": "~4.0.0" } }, - "@types/node": { - "version": "12.12.47", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.47.tgz", - "integrity": "sha512-yzBInQFhdY8kaZmqoL2+3U5dSTMrKaYcb561VU+lDzAYvqt+2lojvBEy+hmpSNuXnPTx7m9+04CzWYOUqWME2A==", - "dev": true + "async": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", + "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", + "dev": true, + "requires": { + "lodash": "^4.17.14" + } }, "bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", "dev": true }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "deferred-leveldown": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/deferred-leveldown/-/deferred-leveldown-4.0.2.tgz", + "integrity": "sha512-5fMC8ek8alH16QiV0lTCis610D1Zt1+LA4MS4d63JgS32lrCjTFDUFz2ao09/j2I4Bqb5jL4FZYwu7Jz0XO1ww==", "dev": true, "requires": { - "ms": "2.0.0" + "abstract-leveldown": "~5.0.0", + "inherits": "^2.0.3" } }, - "hash.js": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz", - "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==", + "elliptic": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", + "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", "dev": true, "requires": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.0" + "bn.js": "^4.11.9", + "brorand": "^1.1.0", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" } }, - "js-sha3": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.7.tgz", - "integrity": "sha1-DU/9gALVMzqrr0oj7tL2N0yfKOc=", - "dev": true - }, - "lodash": { - "version": "4.17.19", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz", - "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==", - "dev": true - }, - "p-cancelable": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.3.0.tgz", - "integrity": "sha512-RVbZPLso8+jFeq1MfNvgXtCRED2raz/dKpacfTNxsx6pLEpEomM7gah6VeHSYV3+vo0OAi4MkArtQcWWXuQoyw==", - "dev": true - }, - "prepend-http": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", - "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=", - "dev": true + "encoding-down": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/encoding-down/-/encoding-down-5.0.4.tgz", + "integrity": "sha512-8CIZLDcSKxgzT+zX8ZVfgNbu8Md2wq/iqa1Y7zyVR18QBEAc0Nmzuvj/N5ykSKpfGzjM8qxbaFntLPwnVoUhZw==", + "dev": true, + "requires": { + "abstract-leveldown": "^5.0.0", + "inherits": "^2.0.3", + "level-codec": "^9.0.0", + "level-errors": "^2.0.0", + "xtend": "^4.0.1" + } }, - "semver": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.2.0.tgz", - "integrity": "sha512-jdFC1VdUGT/2Scgbimf7FSx9iJLXoqfglSF+gJeuNWVpiE37OIbc1jywR/GJyFdz3mnkz2/id0L0J/cr0izR5A==", - "dev": true + "ethereumjs-account": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ethereumjs-account/-/ethereumjs-account-3.0.0.tgz", + "integrity": "sha512-WP6BdscjiiPkQfF9PVfMcwx/rDvfZTjFKY0Uwc09zSQr9JfIVH87dYIJu0gNhBhpmovV4yq295fdllS925fnBA==", + "dev": true, + "requires": { + "ethereumjs-util": "^6.0.0", + "rlp": "^2.2.1", + "safe-buffer": "^5.1.1" + } }, - "swarm-js": { - "version": "0.1.39", - "resolved": "https://registry.npmjs.org/swarm-js/-/swarm-js-0.1.39.tgz", - "integrity": "sha512-QLMqL2rzF6n5s50BptyD6Oi0R1aWlJC5Y17SRIVXRj6OR1DRIPM7nepvrxxkjA1zNzFz6mUOMjfeqeDaWB7OOg==", + "ethereumjs-block": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/ethereumjs-block/-/ethereumjs-block-2.2.2.tgz", + "integrity": "sha512-2p49ifhek3h2zeg/+da6XpdFR3GlqY3BIEiqxGF8j9aSRIgkb7M1Ky+yULBKJOu8PAZxfhsYA+HxUk2aCQp3vg==", "dev": true, "requires": { - "bluebird": "^3.5.0", - "buffer": "^5.0.5", - "decompress": "^4.0.0", - "eth-lib": "^0.1.26", - "fs-extra": "^4.0.2", - "got": "^7.1.0", - "mime-types": "^2.1.16", - "mkdirp-promise": "^5.0.1", - "mock-fs": "^4.1.0", - "setimmediate": "^1.0.5", - "tar": "^4.0.2", - "xhr-request-promise": "^0.1.2" + "async": "^2.0.1", + "ethereumjs-common": "^1.5.0", + "ethereumjs-tx": "^2.1.1", + "ethereumjs-util": "^5.0.0", + "merkle-patricia-tree": "^2.1.2" }, "dependencies": { - "got": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/got/-/got-7.1.0.tgz", - "integrity": "sha512-Y5WMo7xKKq1muPsxD+KmrR8DH5auG7fBdDVueZwETwV6VytKyU9OX/ddpq2/1hp1vIPvVb4T81dKQz3BivkNLw==", + "ethereumjs-util": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", + "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", "dev": true, "requires": { - "decompress-response": "^3.2.0", - "duplexer3": "^0.1.4", - "get-stream": "^3.0.0", - "is-plain-obj": "^1.1.0", - "is-retry-allowed": "^1.0.0", - "is-stream": "^1.0.0", - "isurl": "^1.0.0-alpha5", - "lowercase-keys": "^1.0.0", - "p-cancelable": "^0.3.0", - "p-timeout": "^1.1.1", - "safe-buffer": "^5.0.1", - "timed-out": "^4.0.0", - "url-parse-lax": "^1.0.0", - "url-to-options": "^1.0.1" + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "^0.1.3", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1" + } + }, + "merkle-patricia-tree": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/merkle-patricia-tree/-/merkle-patricia-tree-2.3.2.tgz", + "integrity": "sha512-81PW5m8oz/pz3GvsAwbauj7Y00rqm81Tzad77tHBwU7pIAtN+TJnMSOJhxBKflSVYhptMMb9RskhqHqrSm1V+g==", + "dev": true, + "requires": { + "async": "^1.4.2", + "ethereumjs-util": "^5.0.0", + "level-ws": "0.0.0", + "levelup": "^1.2.1", + "memdown": "^1.0.0", + "readable-stream": "^2.0.0", + "rlp": "^2.0.0", + "semaphore": ">=1.0.1" + }, + "dependencies": { + "async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", + "dev": true + } } } } }, - "underscore": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.9.1.tgz", - "integrity": "sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg==", + "immediate": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.2.3.tgz", + "integrity": "sha1-0UD6j2FGWb1lQSMwl92qwlzdmRw=", "dev": true }, - "url-parse-lax": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", - "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "level-codec": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/level-codec/-/level-codec-9.0.2.tgz", + "integrity": "sha512-UyIwNb1lJBChJnGfjmO0OR+ezh2iVu1Kas3nvBS/BzGnx79dv6g7unpKIDNPMhfdTEGoc7mC8uAu51XEtX+FHQ==", "dev": true, "requires": { - "prepend-http": "^1.0.1" + "buffer": "^5.6.0" } }, - "uuid": { + "level-errors": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.1.tgz", - "integrity": "sha1-wqMN7bPlNdcsz4LjQ5QaULqFM6w=", - "dev": true + "resolved": "https://registry.npmjs.org/level-errors/-/level-errors-2.0.1.tgz", + "integrity": "sha512-UVprBJXite4gPS+3VznfgDSU8PTRuVX0NXwoWW50KLxd2yw4Y1t2JUR5In1itQnudZqRMT9DlAM3Q//9NCjCFw==", + "dev": true, + "requires": { + "errno": "~0.1.1" + } }, - "web3": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3/-/web3-1.2.1.tgz", - "integrity": "sha512-nNMzeCK0agb5i/oTWNdQ1aGtwYfXzHottFP2Dz0oGIzavPMGSKyVlr8ibVb1yK5sJBjrWVnTdGaOC2zKDFuFRw==", + "level-iterator-stream": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/level-iterator-stream/-/level-iterator-stream-3.0.1.tgz", + "integrity": "sha512-nEIQvxEED9yRThxvOrq8Aqziy4EGzrxSZK+QzEFAVuJvQ8glfyZ96GB6BoI4sBbLfjMXm2w4vu3Tkcm9obcY0g==", "dev": true, "requires": { - "web3-bzz": "1.2.1", - "web3-core": "1.2.1", - "web3-eth": "1.2.1", - "web3-eth-personal": "1.2.1", - "web3-net": "1.2.1", - "web3-shh": "1.2.1", - "web3-utils": "1.2.1" - }, - "dependencies": { - "@types/node": { - "version": "10.17.26", - "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.26.tgz", - "integrity": "sha512-myMwkO2Cr82kirHY8uknNRHEVtn0wV3DTQfkrjx17jmkstDRZ24gNUdl8AHXVyVclTYI/bNjgTPTAWvWLqXqkw==", - "dev": true - }, - "bn.js": { - "version": "4.11.8", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", - "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==", - "dev": true - }, - "eth-lib": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.7.tgz", - "integrity": "sha1-L5Pxex4jrsN1nNSj/iDBKGo/wco=", - "dev": true, - "requires": { - "bn.js": "^4.11.6", - "elliptic": "^6.4.0", - "xhr-request-promise": "^0.1.2" - } - }, - "ethers": { - "version": "4.0.0-beta.3", - "resolved": "https://registry.npmjs.org/ethers/-/ethers-4.0.0-beta.3.tgz", - "integrity": "sha512-YYPogooSknTwvHg3+Mv71gM/3Wcrx+ZpCzarBj3mqs9njjRkrOo2/eufzhHloOCo3JSoNI4TQJJ6yU5ABm3Uog==", - "dev": true, - "requires": { - "@types/node": "^10.3.2", - "aes-js": "3.0.0", - "bn.js": "^4.4.0", - "elliptic": "6.3.3", - "hash.js": "1.1.3", - "js-sha3": "0.5.7", - "scrypt-js": "2.0.3", - "setimmediate": "1.0.4", - "uuid": "2.0.1", - "xmlhttprequest": "1.8.0" - }, - "dependencies": { - "elliptic": { - "version": "6.3.3", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.3.3.tgz", - "integrity": "sha1-VILZZG1UvLif19mU/J4ulWiHbj8=", - "dev": true, - "requires": { - "bn.js": "^4.4.0", - "brorand": "^1.0.1", - "hash.js": "^1.0.0", - "inherits": "^2.0.1" - } - } - } - }, - "setimmediate": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.4.tgz", - "integrity": "sha1-IOgd5iLUoCWIzgyNqJc8vPHTE48=", - "dev": true - }, - "web3-bzz": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-bzz/-/web3-bzz-1.2.1.tgz", - "integrity": "sha512-LdOO44TuYbGIPfL4ilkuS89GQovxUpmLz6C1UC7VYVVRILeZS740FVB3j9V4P4FHUk1RenaDfKhcntqgVCHtjw==", + "inherits": "^2.0.1", + "readable-stream": "^2.3.6", + "xtend": "^4.0.0" + } + }, + "level-mem": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/level-mem/-/level-mem-3.0.1.tgz", + "integrity": "sha512-LbtfK9+3Ug1UmvvhR2DqLqXiPW1OJ5jEh0a3m9ZgAipiwpSxGj/qaVVy54RG5vAQN1nCuXqjvprCuKSCxcJHBg==", + "dev": true, + "requires": { + "level-packager": "~4.0.0", + "memdown": "~3.0.0" + }, + "dependencies": { + "memdown": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/memdown/-/memdown-3.0.0.tgz", + "integrity": "sha512-tbV02LfZMWLcHcq4tw++NuqMO+FZX8tNJEiD2aNRm48ZZusVg5N8NART+dmBkepJVye986oixErf7jfXboMGMA==", "dev": true, "requires": { - "got": "9.6.0", - "swarm-js": "0.1.39", - "underscore": "1.9.1" + "abstract-leveldown": "~5.0.0", + "functional-red-black-tree": "~1.0.1", + "immediate": "~3.2.3", + "inherits": "~2.0.1", + "ltgt": "~2.2.0", + "safe-buffer": "~5.1.1" } - }, - "web3-core": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-1.2.1.tgz", - "integrity": "sha512-5ODwIqgl8oIg/0+Ai4jsLxkKFWJYE0uLuE1yUKHNVCL4zL6n3rFjRMpKPokd6id6nJCNgeA64KdWQ4XfpnjdMg==", + } + } + }, + "level-packager": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/level-packager/-/level-packager-4.0.1.tgz", + "integrity": "sha512-svCRKfYLn9/4CoFfi+d8krOtrp6RoX8+xm0Na5cgXMqSyRru0AnDYdLl+YI8u1FyS6gGZ94ILLZDE5dh2but3Q==", + "dev": true, + "requires": { + "encoding-down": "~5.0.0", + "levelup": "^3.0.0" + }, + "dependencies": { + "levelup": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/levelup/-/levelup-3.1.1.tgz", + "integrity": "sha512-9N10xRkUU4dShSRRFTBdNaBxofz+PGaIZO962ckboJZiNmLuhVT6FZ6ZKAsICKfUBO76ySaYU6fJWX/jnj3Lcg==", "dev": true, "requires": { - "web3-core-helpers": "1.2.1", - "web3-core-method": "1.2.1", - "web3-core-requestmanager": "1.2.1", - "web3-utils": "1.2.1" + "deferred-leveldown": "~4.0.0", + "level-errors": "~2.0.0", + "level-iterator-stream": "~3.0.0", + "xtend": "~4.0.0" } - }, - "web3-core-helpers": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.2.1.tgz", - "integrity": "sha512-Gx3sTEajD5r96bJgfuW377PZVFmXIH4TdqDhgGwd2lZQCcMi+DA4TgxJNJGxn0R3aUVzyyE76j4LBrh412mXrw==", + } + } + }, + "merkle-patricia-tree": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/merkle-patricia-tree/-/merkle-patricia-tree-3.0.0.tgz", + "integrity": "sha512-soRaMuNf/ILmw3KWbybaCjhx86EYeBbD8ph0edQCTed0JN/rxDt1EBN52Ajre3VyGo+91f8+/rfPIRQnnGMqmQ==", + "dev": true, + "requires": { + "async": "^2.6.1", + "ethereumjs-util": "^5.2.0", + "level-mem": "^3.0.1", + "level-ws": "^1.0.0", + "readable-stream": "^3.0.6", + "rlp": "^2.0.0", + "semaphore": ">=1.0.1" + }, + "dependencies": { + "ethereumjs-util": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", + "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", "dev": true, "requires": { - "underscore": "1.9.1", - "web3-eth-iban": "1.2.1", - "web3-utils": "1.2.1" + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "^0.1.3", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1" } }, - "web3-core-method": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.2.1.tgz", - "integrity": "sha512-Ghg2WS23qi6Xj8Od3VCzaImLHseEA7/usvnOItluiIc5cKs00WYWsNy2YRStzU9a2+z8lwQywPYp0nTzR/QXdQ==", + "level-ws": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/level-ws/-/level-ws-1.0.0.tgz", + "integrity": "sha512-RXEfCmkd6WWFlArh3X8ONvQPm8jNpfA0s/36M4QzLqrLEIt1iJE9WBHLZ5vZJK6haMjJPJGJCQWfjMNnRcq/9Q==", "dev": true, "requires": { - "underscore": "1.9.1", - "web3-core-helpers": "1.2.1", - "web3-core-promievent": "1.2.1", - "web3-core-subscriptions": "1.2.1", - "web3-utils": "1.2.1" + "inherits": "^2.0.3", + "readable-stream": "^2.2.8", + "xtend": "^4.0.1" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + } } }, - "web3-core-promievent": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.2.1.tgz", - "integrity": "sha512-IVUqgpIKoeOYblwpex4Hye6npM0aMR+kU49VP06secPeN0rHMyhGF0ZGveWBrGvf8WDPI7jhqPBFIC6Jf3Q3zw==", + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", "dev": true, "requires": { - "any-promise": "1.3.0", - "eventemitter3": "3.1.2" + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" } - }, - "web3-core-requestmanager": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.2.1.tgz", - "integrity": "sha512-xfknTC69RfYmLKC+83Jz73IC3/sS2ZLhGtX33D4Q5nQ8yc39ElyAolxr9sJQS8kihOcM6u4J+8gyGMqsLcpIBg==", - "dev": true, + } + } + } + } + }, + "@nomiclabs/hardhat-ethers": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@nomiclabs/hardhat-ethers/-/hardhat-ethers-2.0.2.tgz", + "integrity": "sha512-6quxWe8wwS4X5v3Au8q1jOvXYEPkS1Fh+cME5u6AwNdnI4uERvPlVjlgRWzpnb+Rrt1l/cEqiNRH9GlsBMSDQg==", + "dev": true + }, + "@nomiclabs/hardhat-etherscan": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@nomiclabs/hardhat-etherscan/-/hardhat-etherscan-2.1.3.tgz", + "integrity": "sha512-0Ic5dLBWASeX3e8tR5cdfoSQw8fTp2Bw49RGUN1pSJuxKIQAOWq5MI9qC1Bd51xK/AsdRSnHDxoVYK1+FC1s1w==", + "requires": { + "@ethersproject/abi": "^5.0.2", + "@ethersproject/address": "^5.0.2", + "cbor": "^5.0.2", + "debug": "^4.1.1", + "fs-extra": "^7.0.1", + "node-fetch": "^2.6.0", + "semver": "^6.3.0" + }, + "dependencies": { + "@ethersproject/abi": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.3.1.tgz", + "integrity": "sha512-F98FWTJG7nWWAQ4DcV6R0cSlrj67MWK3ylahuFbzkumem5cLWg1p7fZ3vIdRoS1c7TEf55Lvyx0w7ICR47IImw==", + "requires": { + "@ethersproject/address": "^5.3.0", + "@ethersproject/bignumber": "^5.3.0", + "@ethersproject/bytes": "^5.3.0", + "@ethersproject/constants": "^5.3.0", + "@ethersproject/hash": "^5.3.0", + "@ethersproject/keccak256": "^5.3.0", + "@ethersproject/logger": "^5.3.0", + "@ethersproject/properties": "^5.3.0", + "@ethersproject/strings": "^5.3.0" + }, + "dependencies": { + "@ethersproject/address": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.3.0.tgz", + "integrity": "sha512-29TgjzEBK+gUEUAOfWCG7s9IxLNLCqvr+oDSk6L9TXD0VLvZJKhJV479tKQqheVA81OeGxfpdxYtUVH8hqlCvA==", "requires": { - "underscore": "1.9.1", - "web3-core-helpers": "1.2.1", - "web3-providers-http": "1.2.1", - "web3-providers-ipc": "1.2.1", - "web3-providers-ws": "1.2.1" + "@ethersproject/bignumber": "^5.3.0", + "@ethersproject/bytes": "^5.3.0", + "@ethersproject/keccak256": "^5.3.0", + "@ethersproject/logger": "^5.3.0", + "@ethersproject/rlp": "^5.3.0" } - }, - "web3-core-subscriptions": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.2.1.tgz", - "integrity": "sha512-nmOwe3NsB8V8UFsY1r+sW6KjdOS68h8nuh7NzlWxBQT/19QSUGiERRTaZXWu5BYvo1EoZRMxCKyCQpSSXLc08g==", - "dev": true, + } + } + }, + "@ethersproject/bignumber": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.3.0.tgz", + "integrity": "sha512-5xguJ+Q1/zRMgHgDCaqAexx/8DwDVLRemw2i6uR8KyGjwGdXI8f32QZZ1cKGucBN6ekJvpUpHy6XAuQnTv0mPA==", + "requires": { + "@ethersproject/bytes": "^5.3.0", + "@ethersproject/logger": "^5.3.0", + "bn.js": "^4.11.9" + } + }, + "@ethersproject/bytes": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.3.0.tgz", + "integrity": "sha512-rqLJjdVqCcn7glPer7Fxh87PRqlnRScVAoxcIP3PmOUNApMWJ6yRdOFfo2KvPAdO7Le3yEI1o0YW+Yvr7XCYvw==", + "requires": { + "@ethersproject/logger": "^5.3.0" + } + }, + "@ethersproject/constants": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.3.0.tgz", + "integrity": "sha512-4y1feNOwEpgjAfiCFWOHznvv6qUF/H6uI0UKp8xdhftb+H+FbKflXg1pOgH5qs4Sr7EYBL+zPyPb+YD5g1aEyw==", + "requires": { + "@ethersproject/bignumber": "^5.3.0" + } + }, + "@ethersproject/hash": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.3.0.tgz", + "integrity": "sha512-gAFZSjUPQ32CIfoKSMtMEQ+IO0kQxqhwz9fCIFt2DtAq2u4pWt8mL9Z5P0r6KkLcQU8LE9FmuPPyd+JvBzmr1w==", + "requires": { + "@ethersproject/abstract-signer": "^5.3.0", + "@ethersproject/address": "^5.3.0", + "@ethersproject/bignumber": "^5.3.0", + "@ethersproject/bytes": "^5.3.0", + "@ethersproject/keccak256": "^5.3.0", + "@ethersproject/logger": "^5.3.0", + "@ethersproject/properties": "^5.3.0", + "@ethersproject/strings": "^5.3.0" + }, + "dependencies": { + "@ethersproject/address": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.3.0.tgz", + "integrity": "sha512-29TgjzEBK+gUEUAOfWCG7s9IxLNLCqvr+oDSk6L9TXD0VLvZJKhJV479tKQqheVA81OeGxfpdxYtUVH8hqlCvA==", "requires": { - "eventemitter3": "3.1.2", - "underscore": "1.9.1", - "web3-core-helpers": "1.2.1" - } - }, - "web3-eth": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-eth/-/web3-eth-1.2.1.tgz", - "integrity": "sha512-/2xly4Yry5FW1i+uygPjhfvgUP/MS/Dk+PDqmzp5M88tS86A+j8BzKc23GrlA8sgGs0645cpZK/999LpEF5UdA==", - "dev": true, - "requires": { - "underscore": "1.9.1", - "web3-core": "1.2.1", - "web3-core-helpers": "1.2.1", - "web3-core-method": "1.2.1", - "web3-core-subscriptions": "1.2.1", - "web3-eth-abi": "1.2.1", - "web3-eth-accounts": "1.2.1", - "web3-eth-contract": "1.2.1", - "web3-eth-ens": "1.2.1", - "web3-eth-iban": "1.2.1", - "web3-eth-personal": "1.2.1", - "web3-net": "1.2.1", - "web3-utils": "1.2.1" - } - }, - "web3-eth-abi": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.2.1.tgz", - "integrity": "sha512-jI/KhU2a/DQPZXHjo2GW0myEljzfiKOn+h1qxK1+Y9OQfTcBMxrQJyH5AP89O6l6NZ1QvNdq99ThAxBFoy5L+g==", - "dev": true, - "requires": { - "ethers": "4.0.0-beta.3", - "underscore": "1.9.1", - "web3-utils": "1.2.1" - } - }, - "web3-eth-accounts": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.2.1.tgz", - "integrity": "sha512-26I4qq42STQ8IeKUyur3MdQ1NzrzCqPsmzqpux0j6X/XBD7EjZ+Cs0lhGNkSKH5dI3V8CJasnQ5T1mNKeWB7nQ==", - "dev": true, - "requires": { - "any-promise": "1.3.0", - "crypto-browserify": "3.12.0", - "eth-lib": "0.2.7", - "scryptsy": "2.1.0", - "semver": "6.2.0", - "underscore": "1.9.1", - "uuid": "3.3.2", - "web3-core": "1.2.1", - "web3-core-helpers": "1.2.1", - "web3-core-method": "1.2.1", - "web3-utils": "1.2.1" - }, - "dependencies": { - "uuid": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", - "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", - "dev": true - } - } - }, - "web3-eth-contract": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.2.1.tgz", - "integrity": "sha512-kYFESbQ3boC9bl2rYVghj7O8UKMiuKaiMkxvRH5cEDHil8V7MGEGZNH0slSdoyeftZVlaWSMqkRP/chfnKND0g==", - "dev": true, - "requires": { - "underscore": "1.9.1", - "web3-core": "1.2.1", - "web3-core-helpers": "1.2.1", - "web3-core-method": "1.2.1", - "web3-core-promievent": "1.2.1", - "web3-core-subscriptions": "1.2.1", - "web3-eth-abi": "1.2.1", - "web3-utils": "1.2.1" - } - }, - "web3-eth-ens": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-eth-ens/-/web3-eth-ens-1.2.1.tgz", - "integrity": "sha512-lhP1kFhqZr2nnbu3CGIFFrAnNxk2veXpOXBY48Tub37RtobDyHijHgrj+xTh+mFiPokyrapVjpFsbGa+Xzye4Q==", - "dev": true, - "requires": { - "eth-ens-namehash": "2.0.8", - "underscore": "1.9.1", - "web3-core": "1.2.1", - "web3-core-helpers": "1.2.1", - "web3-core-promievent": "1.2.1", - "web3-eth-abi": "1.2.1", - "web3-eth-contract": "1.2.1", - "web3-utils": "1.2.1" - } - }, - "web3-eth-iban": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.2.1.tgz", - "integrity": "sha512-9gkr4QPl1jCU+wkgmZ8EwODVO3ovVj6d6JKMos52ggdT2YCmlfvFVF6wlGLwi0VvNa/p+0BjJzaqxnnG/JewjQ==", - "dev": true, - "requires": { - "bn.js": "4.11.8", - "web3-utils": "1.2.1" - } - }, - "web3-eth-personal": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.2.1.tgz", - "integrity": "sha512-RNDVSiaSoY4aIp8+Hc7z+X72H7lMb3fmAChuSBADoEc7DsJrY/d0R5qQDK9g9t2BO8oxgLrLNyBP/9ub2Hc6Bg==", - "dev": true, - "requires": { - "web3-core": "1.2.1", - "web3-core-helpers": "1.2.1", - "web3-core-method": "1.2.1", - "web3-net": "1.2.1", - "web3-utils": "1.2.1" - } - }, - "web3-net": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-net/-/web3-net-1.2.1.tgz", - "integrity": "sha512-Yt1Bs7WgnLESPe0rri/ZoPWzSy55ovioaP35w1KZydrNtQ5Yq4WcrAdhBzcOW7vAkIwrsLQsvA+hrOCy7mNauw==", - "dev": true, - "requires": { - "web3-core": "1.2.1", - "web3-core-method": "1.2.1", - "web3-utils": "1.2.1" - } - }, - "web3-providers-http": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.2.1.tgz", - "integrity": "sha512-BDtVUVolT9b3CAzeGVA/np1hhn7RPUZ6YYGB/sYky+GjeO311Yoq8SRDUSezU92x8yImSC2B+SMReGhd1zL+bQ==", - "dev": true, - "requires": { - "web3-core-helpers": "1.2.1", - "xhr2-cookies": "1.1.0" - } - }, - "web3-providers-ipc": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.2.1.tgz", - "integrity": "sha512-oPEuOCwxVx8L4CPD0TUdnlOUZwGBSRKScCz/Ws2YHdr9Ium+whm+0NLmOZjkjQp5wovQbyBzNa6zJz1noFRvFA==", - "dev": true, - "requires": { - "oboe": "2.1.4", - "underscore": "1.9.1", - "web3-core-helpers": "1.2.1" - } - }, - "web3-providers-ws": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.2.1.tgz", - "integrity": "sha512-oqsQXzu+ejJACVHy864WwIyw+oB21nw/pI65/sD95Zi98+/HQzFfNcIFneF1NC4bVF3VNX4YHTNq2I2o97LAiA==", - "dev": true, - "requires": { - "underscore": "1.9.1", - "web3-core-helpers": "1.2.1", - "websocket": "github:web3-js/WebSocket-Node#polyfill/globalThis" - } - }, - "web3-shh": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-shh/-/web3-shh-1.2.1.tgz", - "integrity": "sha512-/3Cl04nza5kuFn25bV3FJWa0s3Vafr5BlT933h26xovQ6HIIz61LmvNQlvX1AhFL+SNJOTcQmK1SM59vcyC8bA==", - "dev": true, - "requires": { - "web3-core": "1.2.1", - "web3-core-method": "1.2.1", - "web3-core-subscriptions": "1.2.1", - "web3-net": "1.2.1" - } - }, - "web3-utils": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.2.1.tgz", - "integrity": "sha512-Mrcn3l58L+yCKz3zBryM6JZpNruWuT0OCbag8w+reeNROSGVlXzUQkU+gtAwc9JCZ7tKUyg67+2YUGqUjVcyBA==", - "dev": true, - "requires": { - "bn.js": "4.11.8", - "eth-lib": "0.2.7", - "ethjs-unit": "0.1.6", - "number-to-bn": "1.7.0", - "randomhex": "0.1.5", - "underscore": "1.9.1", - "utf8": "3.0.0" + "@ethersproject/bignumber": "^5.3.0", + "@ethersproject/bytes": "^5.3.0", + "@ethersproject/keccak256": "^5.3.0", + "@ethersproject/logger": "^5.3.0", + "@ethersproject/rlp": "^5.3.0" } } } }, - "web3-bzz": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/web3-bzz/-/web3-bzz-1.2.2.tgz", - "integrity": "sha512-b1O2ObsqUN1lJxmFSjvnEC4TsaCbmh7Owj3IAIWTKqL9qhVgx7Qsu5O9cD13pBiSPNZJ68uJPaKq380QB4NWeA==", - "dev": true, + "@ethersproject/keccak256": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.3.0.tgz", + "integrity": "sha512-Gv2YqgIUmRbYVNIibafT0qGaeGYLIA/EdWHJ7JcVxVSs2vyxafGxOJ5VpSBHWeOIsE6OOaCelYowhuuTicgdFQ==", "requires": { - "@types/node": "^10.12.18", - "got": "9.6.0", - "swarm-js": "0.1.39", - "underscore": "1.9.1" - }, - "dependencies": { - "@types/node": { - "version": "10.17.26", - "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.26.tgz", - "integrity": "sha512-myMwkO2Cr82kirHY8uknNRHEVtn0wV3DTQfkrjx17jmkstDRZ24gNUdl8AHXVyVclTYI/bNjgTPTAWvWLqXqkw==", - "dev": true - } + "@ethersproject/bytes": "^5.3.0", + "js-sha3": "0.5.7" } }, - "web3-core": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-1.2.2.tgz", - "integrity": "sha512-miHAX3qUgxV+KYfaOY93Hlc3kLW2j5fH8FJy6kSxAv+d4d5aH0wwrU2IIoJylQdT+FeenQ38sgsCnFu9iZ1hCQ==", - "dev": true, + "@ethersproject/logger": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.3.0.tgz", + "integrity": "sha512-8bwJ2gxJGkZZnpQSq5uSiZSJjyVTWmlGft4oH8vxHdvO1Asy4TwVepAhPgxIQIMxXZFUNMych1YjIV4oQ4I7dA==" + }, + "@ethersproject/properties": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.3.0.tgz", + "integrity": "sha512-PaHxJyM5/bfusk6vr3yP//JMnm4UEojpzuWGTmtL5X4uNhNnFNvlYilZLyDr4I9cTkIbipCMsAuIcXWsmdRnEw==", "requires": { - "@types/bn.js": "^4.11.4", - "@types/node": "^12.6.1", - "web3-core-helpers": "1.2.2", - "web3-core-method": "1.2.2", - "web3-core-requestmanager": "1.2.2", - "web3-utils": "1.2.2" + "@ethersproject/logger": "^5.3.0" } }, - "web3-core-helpers": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.2.2.tgz", - "integrity": "sha512-HJrRsIGgZa1jGUIhvGz4S5Yh6wtOIo/TMIsSLe+Xay+KVnbseJpPprDI5W3s7H2ODhMQTbogmmUFquZweW2ImQ==", - "dev": true, + "@ethersproject/rlp": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.3.0.tgz", + "integrity": "sha512-oI0joYpsRanl9guDubaW+1NbcpK0vJ3F/6Wpcanzcnqq+oaW9O5E98liwkEDPcb16BUTLIJ+ZF8GPIHYxJ/5Pw==", "requires": { - "underscore": "1.9.1", - "web3-eth-iban": "1.2.2", - "web3-utils": "1.2.2" + "@ethersproject/bytes": "^5.3.0", + "@ethersproject/logger": "^5.3.0" } }, - "web3-core-method": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.2.2.tgz", - "integrity": "sha512-szR4fDSBxNHaF1DFqE+j6sFR/afv9Aa36OW93saHZnrh+iXSrYeUUDfugeNcRlugEKeUCkd4CZylfgbK2SKYJA==", - "dev": true, + "@ethersproject/strings": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.3.0.tgz", + "integrity": "sha512-j/AzIGZ503cvhuF2ldRSjB0BrKzpsBMtCieDtn4TYMMZMQ9zScJn9wLzTQl/bRNvJbBE6TOspK0r8/Ngae/f2Q==", "requires": { - "underscore": "1.9.1", - "web3-core-helpers": "1.2.2", - "web3-core-promievent": "1.2.2", - "web3-core-subscriptions": "1.2.2", - "web3-utils": "1.2.2" + "@ethersproject/bytes": "^5.3.0", + "@ethersproject/constants": "^5.3.0", + "@ethersproject/logger": "^5.3.0" } }, - "web3-core-promievent": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.2.2.tgz", - "integrity": "sha512-tKvYeT8bkUfKABcQswK6/X79blKTKYGk949urZKcLvLDEaWrM3uuzDwdQT3BNKzQ3vIvTggFPX9BwYh0F1WwqQ==", - "dev": true, + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + }, + "debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", "requires": { - "any-promise": "1.3.0", - "eventemitter3": "3.1.2" + "ms": "2.1.2" } }, - "web3-core-requestmanager": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.2.2.tgz", - "integrity": "sha512-a+gSbiBRHtHvkp78U2bsntMGYGF2eCb6219aMufuZWeAZGXJ63Wc2321PCbA8hF9cQrZI4EoZ4kVLRI4OF15Hw==", - "dev": true, + "fs-extra": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", + "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", "requires": { - "underscore": "1.9.1", - "web3-core-helpers": "1.2.2", - "web3-providers-http": "1.2.2", - "web3-providers-ipc": "1.2.2", - "web3-providers-ws": "1.2.2" + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" } }, - "web3-core-subscriptions": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.2.2.tgz", - "integrity": "sha512-QbTgigNuT4eicAWWr7ahVpJyM8GbICsR1Ys9mJqzBEwpqS+RXTRVSkwZ2IsxO+iqv6liMNwGregbJLq4urMFcQ==", - "dev": true, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node-fetch": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", + "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==" + } + } + }, + "@nomiclabs/hardhat-ganache": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@nomiclabs/hardhat-ganache/-/hardhat-ganache-2.0.0.tgz", + "integrity": "sha512-JJI4+5bHZUoeuIZL42usxp+0i/krYnoApzzA2Xii1P7DwrZHwFBa2OCtR1sUq5z3VTSTvQKrJ1d2/Y6CoQGTKQ==", + "requires": { + "debug": "^4.1.1", + "ganache-core": "^2.7.0", + "ts-interface-checker": "^0.1.9" + }, + "dependencies": { + "debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", "requires": { - "eventemitter3": "3.1.2", - "underscore": "1.9.1", - "web3-core-helpers": "1.2.2" + "ms": "2.1.2" } }, - "web3-eth": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/web3-eth/-/web3-eth-1.2.2.tgz", - "integrity": "sha512-UXpC74mBQvZzd4b+baD4Ocp7g+BlwxhBHumy9seyE/LMIcMlePXwCKzxve9yReNpjaU16Mmyya6ZYlyiKKV8UA==", + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, + "@nomiclabs/hardhat-truffle5": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@nomiclabs/hardhat-truffle5/-/hardhat-truffle5-2.0.0.tgz", + "integrity": "sha512-JLjyfeXTiSqa0oLHcN3i8kD4coJa4Gx6uAXybGv3aBiliEbHddLSzmBWx0EU69a1/Ad5YDdGSqVnjB8mkUCr/g==", + "dev": true, + "requires": { + "@nomiclabs/truffle-contract": "^4.2.23", + "@types/chai": "^4.2.0", + "chai": "^4.2.0", + "ethereumjs-util": "^6.1.0", + "fs-extra": "^7.0.1" + }, + "dependencies": { + "fs-extra": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", + "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", "dev": true, "requires": { - "underscore": "1.9.1", - "web3-core": "1.2.2", - "web3-core-helpers": "1.2.2", - "web3-core-method": "1.2.2", - "web3-core-subscriptions": "1.2.2", - "web3-eth-abi": "1.2.2", - "web3-eth-accounts": "1.2.2", - "web3-eth-contract": "1.2.2", - "web3-eth-ens": "1.2.2", - "web3-eth-iban": "1.2.2", - "web3-eth-personal": "1.2.2", - "web3-net": "1.2.2", - "web3-utils": "1.2.2" + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" } - }, - "web3-eth-abi": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.2.2.tgz", - "integrity": "sha512-Yn/ZMgoOLxhTVxIYtPJ0eS6pnAnkTAaJgUJh1JhZS4ekzgswMfEYXOwpMaD5eiqPJLpuxmZFnXnBZlnQ1JMXsw==", + } + } + }, + "@nomiclabs/hardhat-web3": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@nomiclabs/hardhat-web3/-/hardhat-web3-2.0.0.tgz", + "integrity": "sha512-zt4xN+D+fKl3wW2YlTX3k9APR3XZgPkxJYf36AcliJn3oujnKEVRZaHu0PhgLjO+gR+F/kiYayo9fgd2L8970Q==", + "dev": true, + "requires": { + "@types/bignumber.js": "^5.0.0" + } + }, + "@nomiclabs/truffle-contract": { + "version": "4.2.23", + "resolved": "https://registry.npmjs.org/@nomiclabs/truffle-contract/-/truffle-contract-4.2.23.tgz", + "integrity": "sha512-Khj/Ts9r0LqEpGYhISbc+8WTOd6qJ4aFnDR+Ew+neqcjGnhwrIvuihNwPFWU6hDepW3Xod6Y+rTo90N8sLRDjw==", + "dev": true, + "requires": { + "@truffle/blockchain-utils": "^0.0.25", + "@truffle/contract-schema": "^3.2.5", + "@truffle/debug-utils": "^4.2.9", + "@truffle/error": "^0.0.11", + "@truffle/interface-adapter": "^0.4.16", + "bignumber.js": "^7.2.1", + "ethereum-ens": "^0.8.0", + "ethers": "^4.0.0-beta.1", + "source-map-support": "^0.5.19" + }, + "dependencies": { + "@ethersproject/abi": { + "version": "5.0.7", + "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.0.7.tgz", + "integrity": "sha512-Cqktk+hSIckwP/W8O47Eef60VwmoSC/L3lY0+dIBhQPCNn9E4V7rwmm2aFrNRRDJfFlGuZ1khkQUOc3oBX+niw==", "dev": true, "requires": { - "ethers": "4.0.0-beta.3", - "underscore": "1.9.1", - "web3-utils": "1.2.2" - }, - "dependencies": { - "@types/node": { - "version": "10.17.26", - "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.26.tgz", - "integrity": "sha512-myMwkO2Cr82kirHY8uknNRHEVtn0wV3DTQfkrjx17jmkstDRZ24gNUdl8AHXVyVclTYI/bNjgTPTAWvWLqXqkw==", - "dev": true - }, - "elliptic": { - "version": "6.3.3", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.3.3.tgz", - "integrity": "sha1-VILZZG1UvLif19mU/J4ulWiHbj8=", - "dev": true, - "requires": { - "bn.js": "^4.4.0", - "brorand": "^1.0.1", - "hash.js": "^1.0.0", - "inherits": "^2.0.1" - } - }, - "ethers": { - "version": "4.0.0-beta.3", - "resolved": "https://registry.npmjs.org/ethers/-/ethers-4.0.0-beta.3.tgz", - "integrity": "sha512-YYPogooSknTwvHg3+Mv71gM/3Wcrx+ZpCzarBj3mqs9njjRkrOo2/eufzhHloOCo3JSoNI4TQJJ6yU5ABm3Uog==", - "dev": true, - "requires": { - "@types/node": "^10.3.2", - "aes-js": "3.0.0", - "bn.js": "^4.4.0", - "elliptic": "6.3.3", - "hash.js": "1.1.3", - "js-sha3": "0.5.7", - "scrypt-js": "2.0.3", - "setimmediate": "1.0.4", - "uuid": "2.0.1", - "xmlhttprequest": "1.8.0" - } - }, - "setimmediate": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.4.tgz", - "integrity": "sha1-IOgd5iLUoCWIzgyNqJc8vPHTE48=", - "dev": true - } + "@ethersproject/address": "^5.0.4", + "@ethersproject/bignumber": "^5.0.7", + "@ethersproject/bytes": "^5.0.4", + "@ethersproject/constants": "^5.0.4", + "@ethersproject/hash": "^5.0.4", + "@ethersproject/keccak256": "^5.0.3", + "@ethersproject/logger": "^5.0.5", + "@ethersproject/properties": "^5.0.3", + "@ethersproject/strings": "^5.0.4" } }, - "web3-eth-accounts": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.2.2.tgz", - "integrity": "sha512-KzHOEyXOEZ13ZOkWN3skZKqSo5f4Z1ogPFNn9uZbKCz+kSp+gCAEKxyfbOsB/JMAp5h7o7pb6eYsPCUBJmFFiA==", + "@ethersproject/address": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.3.0.tgz", + "integrity": "sha512-29TgjzEBK+gUEUAOfWCG7s9IxLNLCqvr+oDSk6L9TXD0VLvZJKhJV479tKQqheVA81OeGxfpdxYtUVH8hqlCvA==", "dev": true, "requires": { - "any-promise": "1.3.0", - "crypto-browserify": "3.12.0", - "eth-lib": "0.2.7", - "ethereumjs-common": "^1.3.2", - "ethereumjs-tx": "^2.1.1", - "scrypt-shim": "github:web3-js/scrypt-shim", - "underscore": "1.9.1", - "uuid": "3.3.2", - "web3-core": "1.2.2", - "web3-core-helpers": "1.2.2", - "web3-core-method": "1.2.2", - "web3-utils": "1.2.2" - }, - "dependencies": { - "eth-lib": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.7.tgz", - "integrity": "sha1-L5Pxex4jrsN1nNSj/iDBKGo/wco=", - "dev": true, - "requires": { - "bn.js": "^4.11.6", - "elliptic": "^6.4.0", - "xhr-request-promise": "^0.1.2" - } - }, - "uuid": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", - "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", - "dev": true - } + "@ethersproject/bignumber": "^5.3.0", + "@ethersproject/bytes": "^5.3.0", + "@ethersproject/keccak256": "^5.3.0", + "@ethersproject/logger": "^5.3.0", + "@ethersproject/rlp": "^5.3.0" } }, - "web3-eth-contract": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.2.2.tgz", - "integrity": "sha512-EKT2yVFws3FEdotDQoNsXTYL798+ogJqR2//CaGwx3p0/RvQIgfzEwp8nbgA6dMxCsn9KOQi7OtklzpnJMkjtA==", + "@ethersproject/bignumber": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.3.0.tgz", + "integrity": "sha512-5xguJ+Q1/zRMgHgDCaqAexx/8DwDVLRemw2i6uR8KyGjwGdXI8f32QZZ1cKGucBN6ekJvpUpHy6XAuQnTv0mPA==", "dev": true, "requires": { - "@types/bn.js": "^4.11.4", - "underscore": "1.9.1", - "web3-core": "1.2.2", - "web3-core-helpers": "1.2.2", - "web3-core-method": "1.2.2", - "web3-core-promievent": "1.2.2", - "web3-core-subscriptions": "1.2.2", - "web3-eth-abi": "1.2.2", - "web3-utils": "1.2.2" + "@ethersproject/bytes": "^5.3.0", + "@ethersproject/logger": "^5.3.0", + "bn.js": "^4.11.9" } }, - "web3-eth-ens": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/web3-eth-ens/-/web3-eth-ens-1.2.2.tgz", - "integrity": "sha512-CFjkr2HnuyMoMFBoNUWojyguD4Ef+NkyovcnUc/iAb9GP4LHohKrODG4pl76R5u61TkJGobC2ij6TyibtsyVYg==", + "@ethersproject/bytes": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.3.0.tgz", + "integrity": "sha512-rqLJjdVqCcn7glPer7Fxh87PRqlnRScVAoxcIP3PmOUNApMWJ6yRdOFfo2KvPAdO7Le3yEI1o0YW+Yvr7XCYvw==", "dev": true, "requires": { - "eth-ens-namehash": "2.0.8", - "underscore": "1.9.1", - "web3-core": "1.2.2", - "web3-core-helpers": "1.2.2", - "web3-core-promievent": "1.2.2", - "web3-eth-abi": "1.2.2", - "web3-eth-contract": "1.2.2", - "web3-utils": "1.2.2" + "@ethersproject/logger": "^5.3.0" } }, - "web3-eth-iban": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.2.2.tgz", - "integrity": "sha512-gxKXBoUhaTFHr0vJB/5sd4i8ejF/7gIsbM/VvemHT3tF5smnmY6hcwSMmn7sl5Gs+83XVb/BngnnGkf+I/rsrQ==", + "@ethersproject/constants": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.3.0.tgz", + "integrity": "sha512-4y1feNOwEpgjAfiCFWOHznvv6qUF/H6uI0UKp8xdhftb+H+FbKflXg1pOgH5qs4Sr7EYBL+zPyPb+YD5g1aEyw==", "dev": true, "requires": { - "bn.js": "4.11.8", - "web3-utils": "1.2.2" - }, - "dependencies": { - "bn.js": { - "version": "4.11.8", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", - "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==", - "dev": true - } + "@ethersproject/bignumber": "^5.3.0" } }, - "web3-eth-personal": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.2.2.tgz", - "integrity": "sha512-4w+GLvTlFqW3+q4xDUXvCEMU7kRZ+xm/iJC8gm1Li1nXxwwFbs+Y+KBK6ZYtoN1qqAnHR+plYpIoVo27ixI5Rg==", + "@ethersproject/hash": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.3.0.tgz", + "integrity": "sha512-gAFZSjUPQ32CIfoKSMtMEQ+IO0kQxqhwz9fCIFt2DtAq2u4pWt8mL9Z5P0r6KkLcQU8LE9FmuPPyd+JvBzmr1w==", "dev": true, "requires": { - "@types/node": "^12.6.1", - "web3-core": "1.2.2", - "web3-core-helpers": "1.2.2", - "web3-core-method": "1.2.2", - "web3-net": "1.2.2", - "web3-utils": "1.2.2" + "@ethersproject/abstract-signer": "^5.3.0", + "@ethersproject/address": "^5.3.0", + "@ethersproject/bignumber": "^5.3.0", + "@ethersproject/bytes": "^5.3.0", + "@ethersproject/keccak256": "^5.3.0", + "@ethersproject/logger": "^5.3.0", + "@ethersproject/properties": "^5.3.0", + "@ethersproject/strings": "^5.3.0" } }, - "web3-net": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/web3-net/-/web3-net-1.2.2.tgz", - "integrity": "sha512-K07j2DXq0x4UOJgae65rWZKraOznhk8v5EGSTdFqASTx7vWE/m+NqBijBYGEsQY1lSMlVaAY9UEQlcXK5HzXTw==", + "@ethersproject/keccak256": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.3.0.tgz", + "integrity": "sha512-Gv2YqgIUmRbYVNIibafT0qGaeGYLIA/EdWHJ7JcVxVSs2vyxafGxOJ5VpSBHWeOIsE6OOaCelYowhuuTicgdFQ==", "dev": true, "requires": { - "web3-core": "1.2.2", - "web3-core-method": "1.2.2", - "web3-utils": "1.2.2" + "@ethersproject/bytes": "^5.3.0", + "js-sha3": "0.5.7" } }, - "web3-providers-http": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.2.2.tgz", - "integrity": "sha512-BNZ7Hguy3eBszsarH5gqr9SIZNvqk9eKwqwmGH1LQS1FL3NdoOn7tgPPdddrXec4fL94CwgNk4rCU+OjjZRNDg==", + "@ethersproject/logger": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.3.0.tgz", + "integrity": "sha512-8bwJ2gxJGkZZnpQSq5uSiZSJjyVTWmlGft4oH8vxHdvO1Asy4TwVepAhPgxIQIMxXZFUNMych1YjIV4oQ4I7dA==", + "dev": true + }, + "@ethersproject/properties": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.3.0.tgz", + "integrity": "sha512-PaHxJyM5/bfusk6vr3yP//JMnm4UEojpzuWGTmtL5X4uNhNnFNvlYilZLyDr4I9cTkIbipCMsAuIcXWsmdRnEw==", "dev": true, "requires": { - "web3-core-helpers": "1.2.2", - "xhr2-cookies": "1.1.0" + "@ethersproject/logger": "^5.3.0" } }, - "web3-providers-ipc": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.2.2.tgz", - "integrity": "sha512-t97w3zi5Kn/LEWGA6D9qxoO0LBOG+lK2FjlEdCwDQatffB/+vYrzZ/CLYVQSoyFZAlsDoBasVoYSWZK1n39aHA==", + "@ethersproject/rlp": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.3.0.tgz", + "integrity": "sha512-oI0joYpsRanl9guDubaW+1NbcpK0vJ3F/6Wpcanzcnqq+oaW9O5E98liwkEDPcb16BUTLIJ+ZF8GPIHYxJ/5Pw==", "dev": true, "requires": { - "oboe": "2.1.4", - "underscore": "1.9.1", - "web3-core-helpers": "1.2.2" + "@ethersproject/bytes": "^5.3.0", + "@ethersproject/logger": "^5.3.0" } }, - "web3-providers-ws": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.2.2.tgz", - "integrity": "sha512-Wb1mrWTGMTXOpJkL0yGvL/WYLt8fUIXx8k/l52QB2IiKzvyd42dTWn4+j8IKXGSYYzOm7NMqv6nhA5VDk12VfA==", + "@ethersproject/strings": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.3.0.tgz", + "integrity": "sha512-j/AzIGZ503cvhuF2ldRSjB0BrKzpsBMtCieDtn4TYMMZMQ9zScJn9wLzTQl/bRNvJbBE6TOspK0r8/Ngae/f2Q==", "dev": true, "requires": { - "underscore": "1.9.1", - "web3-core-helpers": "1.2.2", - "websocket": "github:web3-js/WebSocket-Node#polyfill/globalThis" + "@ethersproject/bytes": "^5.3.0", + "@ethersproject/constants": "^5.3.0", + "@ethersproject/logger": "^5.3.0" } }, - "web3-shh": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/web3-shh/-/web3-shh-1.2.2.tgz", - "integrity": "sha512-og258NPhlBn8yYrDWjoWBBb6zo1OlBgoWGT+LL5/LPqRbjPe09hlOYHgscAAr9zZGtohTOty7RrxYw6Z6oDWCg==", + "@truffle/blockchain-utils": { + "version": "0.0.25", + "resolved": "https://registry.npmjs.org/@truffle/blockchain-utils/-/blockchain-utils-0.0.25.tgz", + "integrity": "sha512-XA5m0BfAWtysy5ChHyiAf1fXbJxJXphKk+eZ9Rb9Twi6fn3Jg4gnHNwYXJacYFEydqT5vr2s4Ou812JHlautpw==", "dev": true, "requires": { - "web3-core": "1.2.2", - "web3-core-method": "1.2.2", - "web3-core-subscriptions": "1.2.2", - "web3-net": "1.2.2" + "source-map-support": "^0.5.19" } }, - "web3-utils": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.2.2.tgz", - "integrity": "sha512-joF+s3243TY5cL7Z7y4h1JsJpUCf/kmFmj+eJar7Y2yNIGVcW961VyrAms75tjUysSuHaUQ3eQXjBEUJueT52A==", + "@truffle/codec": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/@truffle/codec/-/codec-0.7.1.tgz", + "integrity": "sha512-mNd6KnW6J0UB1zafGBXDlTEbCMvWpmPAJmzv7aF/nAIaN/F8UePSCiQ1OTQP39Rprj6GFiCCaWVnBAwum6UGSg==", "dev": true, "requires": { - "bn.js": "4.11.8", - "eth-lib": "0.2.7", - "ethereum-bloom-filters": "^1.0.6", - "ethjs-unit": "0.1.6", - "number-to-bn": "1.7.0", - "randombytes": "^2.1.0", - "underscore": "1.9.1", - "utf8": "3.0.0" - }, - "dependencies": { - "bn.js": { - "version": "4.11.8", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", - "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==", - "dev": true - }, - "eth-lib": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.7.tgz", - "integrity": "sha1-L5Pxex4jrsN1nNSj/iDBKGo/wco=", - "dev": true, - "requires": { - "bn.js": "^4.11.6", - "elliptic": "^6.4.0", - "xhr-request-promise": "^0.1.2" - } - } + "big.js": "^5.2.2", + "bn.js": "^4.11.8", + "borc": "^2.1.2", + "debug": "^4.1.0", + "lodash.clonedeep": "^4.5.0", + "lodash.escaperegexp": "^4.1.2", + "lodash.partition": "^4.6.0", + "lodash.sum": "^4.0.2", + "semver": "^6.3.0", + "source-map-support": "^0.5.19", + "utf8": "^3.0.0", + "web3-utils": "1.2.9" } }, - "websocket": { - "version": "github:web3-js/WebSocket-Node#ef5ea2f41daf4a2113b80c9223df884b4d56c400", - "from": "github:web3-js/WebSocket-Node#polyfill/globalThis", + "@truffle/contract-schema": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/@truffle/contract-schema/-/contract-schema-3.4.1.tgz", + "integrity": "sha512-2gvu6gxJtbbI67H2Bwh2rBuej+1uCV3z4zKFzQZP00hjNoL+QfybrmBcOVB88PflBeEB+oUXuwQfDoKX3TXlnQ==", "dev": true, "requires": { - "debug": "^2.2.0", - "es5-ext": "^0.10.50", - "nan": "^2.14.0", - "typedarray-to-buffer": "^3.1.5", - "yaeti": "^0.0.6" + "ajv": "^6.10.0", + "crypto-js": "^3.1.9-1", + "debug": "^4.3.1" } - } - } - }, - "@trufflesuite/chromafi": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@trufflesuite/chromafi/-/chromafi-2.1.2.tgz", - "integrity": "sha512-KcfjcH3B8+lHfSTfugFPBpMZmppLNCnM6/PP8ByrQLSACyjh9UOMUWHAW3FDHKEt1cOCzIFXrx2f4AFFrQFxSg==", - "dev": true, - "requires": { - "ansi-mark": "^1.0.0", - "ansi-regex": "^3.0.0", - "array-uniq": "^1.0.3", - "camelcase": "^4.1.0", - "chalk": "^2.3.2", - "cheerio": "^1.0.0-rc.2", - "detect-indent": "^5.0.0", - "he": "^1.1.1", - "highlight.js": "^9.12.0", - "husky": "^0.14.3", - "lodash.merge": "^4.6.2", - "min-indent": "^1.0.0", - "strip-ansi": "^4.0.0", - "strip-indent": "^2.0.0", - "super-split": "^1.1.0" - }, - "dependencies": { - "husky": { - "version": "0.14.3", - "resolved": "https://registry.npmjs.org/husky/-/husky-0.14.3.tgz", - "integrity": "sha512-e21wivqHpstpoiWA/Yi8eFti8E+sQDSS53cpJsPptPs295QTOQR0ZwnHo2TXy1XOpZFD9rPOd3NpmqTK6uMLJA==", + }, + "@truffle/debug-utils": { + "version": "4.2.14", + "resolved": "https://registry.npmjs.org/@truffle/debug-utils/-/debug-utils-4.2.14.tgz", + "integrity": "sha512-g5UTX2DPTzrjRjBJkviGI2IrQRTTSvqjmNWCNZNXP+vgQKNxL9maLZhQ6oA3BuuByVW/kusgYeXt8+W1zynC8g==", "dev": true, "requires": { - "is-ci": "^1.0.10", - "normalize-path": "^1.0.0", - "strip-indent": "^2.0.0" + "@truffle/codec": "^0.7.1", + "@trufflesuite/chromafi": "^2.2.1", + "chalk": "^2.4.2", + "debug": "^4.1.0", + "highlight.js": "^9.15.8", + "highlightjs-solidity": "^1.0.18" } }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "@truffle/error": { + "version": "0.0.11", + "resolved": "https://registry.npmjs.org/@truffle/error/-/error-0.0.11.tgz", + "integrity": "sha512-ju6TucjlJkfYMmdraYY/IBJaFb+Sa+huhYtOoyOJ+G29KcgytUVnDzKGwC7Kgk6IsxQMm62Mc1E0GZzFbGGipw==", + "dev": true + }, + "@truffle/interface-adapter": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/@truffle/interface-adapter/-/interface-adapter-0.4.24.tgz", + "integrity": "sha512-2Zho4dJbm/XGwNleY7FdxcjXiAR3SzdGklgrAW4N/YVmltaJv6bT56ACIbPNN6AdzkTSTO65OlsB/63sfSa/VA==", "dev": true, "requires": { - "ansi-regex": "^3.0.0" + "bn.js": "^5.1.3", + "ethers": "^4.0.32", + "web3": "1.3.6" + }, + "dependencies": { + "bn.js": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz", + "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==", + "dev": true + } } - } - } - }, - "@trufflesuite/eth-json-rpc-filters": { - "version": "4.1.2-1", - "resolved": "https://registry.npmjs.org/@trufflesuite/eth-json-rpc-filters/-/eth-json-rpc-filters-4.1.2-1.tgz", - "integrity": "sha512-/MChvC5dw2ck9NU1cZmdovCz2VKbOeIyR4tcxDvA5sT+NaL0rA2/R5U0yI7zsbo1zD+pgqav77rQHTzpUdDNJQ==", - "requires": { - "@trufflesuite/eth-json-rpc-middleware": "^4.4.2-0", - "await-semaphore": "^0.1.3", - "eth-query": "^2.1.2", - "json-rpc-engine": "^5.1.3", - "lodash.flatmap": "^4.5.0", - "safe-event-emitter": "^1.0.1" - } - }, - "@trufflesuite/eth-json-rpc-infura": { - "version": "4.0.3-0", - "resolved": "https://registry.npmjs.org/@trufflesuite/eth-json-rpc-infura/-/eth-json-rpc-infura-4.0.3-0.tgz", - "integrity": "sha512-xaUanOmo0YLqRsL0SfXpFienhdw5bpQ1WEXxMTRi57az4lwpZBv4tFUDvcerdwJrxX9wQqNmgUgd1BrR01dumw==", - "requires": { - "@trufflesuite/eth-json-rpc-middleware": "^4.4.2-1", - "cross-fetch": "^2.1.1", - "eth-json-rpc-errors": "^1.0.1", - "json-rpc-engine": "^5.1.3" - }, - "dependencies": { - "eth-json-rpc-errors": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/eth-json-rpc-errors/-/eth-json-rpc-errors-1.1.1.tgz", - "integrity": "sha512-WT5shJ5KfNqHi9jOZD+ID8I1kuYWNrigtZat7GOQkvwo99f8SzAVaEcWhJUv656WiZOAg3P1RiJQANtUmDmbIg==", + }, + "@trufflesuite/chromafi": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@trufflesuite/chromafi/-/chromafi-2.2.2.tgz", + "integrity": "sha512-mItQwVBsb8qP/vaYHQ1kDt2vJLhjoEXJptT6y6fJGvFophMFhOI/NsTVUa0nJL1nyMeFiS6hSYuNVdpQZzB1gA==", + "dev": true, + "requires": { + "ansi-mark": "^1.0.0", + "ansi-regex": "^3.0.0", + "array-uniq": "^1.0.3", + "camelcase": "^4.1.0", + "chalk": "^2.3.2", + "cheerio": "^1.0.0-rc.2", + "detect-indent": "^5.0.0", + "he": "^1.1.1", + "highlight.js": "^10.4.1", + "lodash.merge": "^4.6.2", + "min-indent": "^1.0.0", + "strip-ansi": "^4.0.0", + "strip-indent": "^2.0.0", + "super-split": "^1.1.0" + }, + "dependencies": { + "highlight.js": { + "version": "10.7.3", + "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-10.7.3.tgz", + "integrity": "sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==", + "dev": true + } + } + }, + "@types/node": { + "version": "12.20.15", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.15.tgz", + "integrity": "sha512-F6S4Chv4JicJmyrwlDkxUdGNSplsQdGwp1A0AJloEVDirWdZOAiRHhovDlsFkKUrquUXhz1imJhXHsf59auyAg==", + "dev": true + }, + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, "requires": { - "fast-safe-stringify": "^2.0.6" + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" } - } - } - }, - "@trufflesuite/eth-json-rpc-middleware": { - "version": "4.4.2-1", - "resolved": "https://registry.npmjs.org/@trufflesuite/eth-json-rpc-middleware/-/eth-json-rpc-middleware-4.4.2-1.tgz", - "integrity": "sha512-iEy9H8ja7/8aYES5HfrepGBKU9n/Y4OabBJEklVd/zIBlhCCBAWBqkIZgXt11nBXO/rYAeKwYuE3puH3ByYnLA==", - "requires": { - "@trufflesuite/eth-sig-util": "^1.4.2", - "btoa": "^1.2.1", - "clone": "^2.1.1", - "eth-json-rpc-errors": "^1.0.1", - "eth-query": "^2.1.2", - "ethereumjs-block": "^1.6.0", - "ethereumjs-tx": "^1.3.7", - "ethereumjs-util": "^5.1.2", - "ethereumjs-vm": "^2.6.0", - "fetch-ponyfill": "^4.0.0", - "json-rpc-engine": "^5.1.3", - "json-stable-stringify": "^1.0.1", - "pify": "^3.0.0", - "safe-event-emitter": "^1.0.1" - }, - "dependencies": { + }, + "bignumber.js": { + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-7.2.1.tgz", + "integrity": "sha512-S4XzBk5sMB+Rcb/LNcpzXr57VRTxgAvaAEDAl1AwRx27j00hT84O6OkteE7u8UB3NuaaygCRrEpqox4uDOrbdQ==", + "dev": true + }, "bn.js": { "version": "4.12.0", "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true }, - "elliptic": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", - "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, "requires": { - "bn.js": "^4.11.9", - "brorand": "^1.1.0", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.1", - "inherits": "^2.0.4", - "minimalistic-assert": "^1.0.1", - "minimalistic-crypto-utils": "^1.0.1" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" } }, - "eth-json-rpc-errors": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/eth-json-rpc-errors/-/eth-json-rpc-errors-1.1.1.tgz", - "integrity": "sha512-WT5shJ5KfNqHi9jOZD+ID8I1kuYWNrigtZat7GOQkvwo99f8SzAVaEcWhJUv656WiZOAg3P1RiJQANtUmDmbIg==", + "debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "dev": true, "requires": { - "fast-safe-stringify": "^2.0.6" + "ms": "2.1.2" } }, - "ethereum-common": { - "version": "0.0.18", - "resolved": "https://registry.npmjs.org/ethereum-common/-/ethereum-common-0.0.18.tgz", - "integrity": "sha1-L9w1dvIykDNYl26znaeDIT/5Uj8=" - }, - "ethereumjs-tx": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-1.3.7.tgz", - "integrity": "sha512-wvLMxzt1RPhAQ9Yi3/HKZTn0FZYpnsmQdbKYfUUpi4j1SEIcbkd9tndVjcPrufY3V7j2IebOpC00Zp2P/Ay2kA==", + "eth-lib": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.7.tgz", + "integrity": "sha1-L5Pxex4jrsN1nNSj/iDBKGo/wco=", + "dev": true, "requires": { - "ethereum-common": "^0.0.18", - "ethereumjs-util": "^5.0.0" + "bn.js": "^4.11.6", + "elliptic": "^6.4.0", + "xhr-request-promise": "^0.1.2" } }, - "ethereumjs-util": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", - "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", - "requires": { - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "^0.1.3", - "rlp": "^2.0.0", - "safe-buffer": "^5.1.1" - } + "eventemitter3": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.4.tgz", + "integrity": "sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ==", + "dev": true }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true }, - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" - } - } - }, - "@trufflesuite/eth-sig-util": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/@trufflesuite/eth-sig-util/-/eth-sig-util-1.4.2.tgz", - "integrity": "sha512-+GyfN6b0LNW77hbQlH3ufZ/1eCON7mMrGym6tdYf7xiNw9Vv3jBO72bmmos1EId2NgBvPMhmYYm6DSLQFTmzrA==", - "requires": { - "ethereumjs-abi": "^0.6.8", - "ethereumjs-util": "^5.1.1" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + "highlightjs-solidity": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/highlightjs-solidity/-/highlightjs-solidity-1.1.1.tgz", + "integrity": "sha512-NNcuj6GC0OP8qIrXVaqUA33d/nQoGvwRPS3FR2juIT+I1LAcNkebLbEp1AxzH0TiQ9InPxG62P/FnON8Ns15sQ==", + "dev": true }, - "elliptic": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", - "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", - "requires": { - "bn.js": "^4.11.9", - "brorand": "^1.1.0", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.1", - "inherits": "^2.0.4", - "minimalistic-assert": "^1.0.1", - "minimalistic-crypto-utils": "^1.0.1" - } + "js-sha3": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.7.tgz", + "integrity": "sha1-DU/9gALVMzqrr0oj7tL2N0yfKOc=", + "dev": true }, - "ethereumjs-util": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", - "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", - "requires": { - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "^0.1.3", - "rlp": "^2.0.0", - "safe-buffer": "^5.1.1" - } + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - } - } - }, - "@trufflesuite/web3-provider-engine": { - "version": "15.0.13-1", - "resolved": "https://registry.npmjs.org/@trufflesuite/web3-provider-engine/-/web3-provider-engine-15.0.13-1.tgz", - "integrity": "sha512-6u3x/iIN5fyj8pib5QTUDmIOUiwAGhaqdSTXdqCu6v9zo2BEwdCqgEJd1uXDh3DBmPRDfiZ/ge8oUPy7LerpHg==", - "requires": { - "@trufflesuite/eth-json-rpc-filters": "^4.1.2-1", - "@trufflesuite/eth-json-rpc-infura": "^4.0.3-0", - "@trufflesuite/eth-json-rpc-middleware": "^4.4.2-1", - "@trufflesuite/eth-sig-util": "^1.4.2", - "async": "^2.5.0", - "backoff": "^2.5.0", - "clone": "^2.0.0", - "cross-fetch": "^2.1.0", - "eth-block-tracker": "^4.4.2", - "eth-json-rpc-errors": "^2.0.2", - "ethereumjs-block": "^1.2.2", - "ethereumjs-tx": "^1.2.0", - "ethereumjs-util": "^5.1.5", - "ethereumjs-vm": "^2.3.4", - "json-stable-stringify": "^1.0.1", - "promise-to-callback": "^1.0.0", - "readable-stream": "^2.2.9", - "request": "^2.85.0", - "semaphore": "^1.0.3", - "ws": "^5.1.1", - "xhr": "^2.2.0", - "xtend": "^4.0.1" - }, - "dependencies": { - "async": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", - "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", + "oboe": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/oboe/-/oboe-2.1.5.tgz", + "integrity": "sha1-VVQoTFQ6ImbXo48X4HOCH73jk80=", + "dev": true, "requires": { - "lodash": "^4.17.14" + "http-https": "^1.0.0" } }, - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + "scrypt-js": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz", + "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==", + "dev": true }, - "elliptic": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", - "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, "requires": { - "bn.js": "^4.11.9", - "brorand": "^1.1.0", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.1", - "inherits": "^2.0.4", - "minimalistic-assert": "^1.0.1", - "minimalistic-crypto-utils": "^1.0.1" + "ansi-regex": "^3.0.0" } }, - "ethereum-common": { - "version": "0.0.18", - "resolved": "https://registry.npmjs.org/ethereum-common/-/ethereum-common-0.0.18.tgz", - "integrity": "sha1-L9w1dvIykDNYl26znaeDIT/5Uj8=" + "underscore": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.9.1.tgz", + "integrity": "sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg==", + "dev": true }, - "ethereumjs-tx": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-1.3.7.tgz", - "integrity": "sha512-wvLMxzt1RPhAQ9Yi3/HKZTn0FZYpnsmQdbKYfUUpi4j1SEIcbkd9tndVjcPrufY3V7j2IebOpC00Zp2P/Ay2kA==", - "requires": { - "ethereum-common": "^0.0.18", - "ethereumjs-util": "^5.0.0" + "web3": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/web3/-/web3-1.3.6.tgz", + "integrity": "sha512-jEpPhnL6GDteifdVh7ulzlPrtVQeA30V9vnki9liYlUvLV82ZM7BNOQJiuzlDePuE+jZETZSP/0G/JlUVt6pOA==", + "dev": true, + "requires": { + "web3-bzz": "1.3.6", + "web3-core": "1.3.6", + "web3-eth": "1.3.6", + "web3-eth-personal": "1.3.6", + "web3-net": "1.3.6", + "web3-shh": "1.3.6", + "web3-utils": "1.3.6" + }, + "dependencies": { + "eth-lib": { + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz", + "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==", + "dev": true, + "requires": { + "bn.js": "^4.11.6", + "elliptic": "^6.4.0", + "xhr-request-promise": "^0.1.2" + } + }, + "underscore": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.12.1.tgz", + "integrity": "sha512-hEQt0+ZLDVUMhebKxL4x1BTtDY7bavVofhZ9KZ4aI26X9SRaE+Y3m83XUL1UP2jn8ynjndwCCpEHdUG+9pP1Tw==", + "dev": true + }, + "web3-utils": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.3.6.tgz", + "integrity": "sha512-hHatFaQpkQgjGVER17gNx8u1qMyaXFZtM0y0XLGH1bzsjMPlkMPLRcYOrZ00rOPfTEuYFOdrpGOqZXVmGrMZRg==", + "dev": true, + "requires": { + "bn.js": "^4.11.9", + "eth-lib": "0.2.8", + "ethereum-bloom-filters": "^1.0.6", + "ethjs-unit": "0.1.6", + "number-to-bn": "1.7.0", + "randombytes": "^2.1.0", + "underscore": "1.12.1", + "utf8": "3.0.0" + } + } } }, - "ethereumjs-util": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", - "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", + "web3-bzz": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/web3-bzz/-/web3-bzz-1.3.6.tgz", + "integrity": "sha512-ibHdx1wkseujFejrtY7ZyC0QxQ4ATXjzcNUpaLrvM6AEae8prUiyT/OloG9FWDgFD2CPLwzKwfSQezYQlANNlw==", + "dev": true, "requires": { - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "^0.1.3", - "rlp": "^2.0.0", - "safe-buffer": "^5.1.1" + "@types/node": "^12.12.6", + "got": "9.6.0", + "swarm-js": "^0.1.40", + "underscore": "1.12.1" + }, + "dependencies": { + "underscore": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.12.1.tgz", + "integrity": "sha512-hEQt0+ZLDVUMhebKxL4x1BTtDY7bavVofhZ9KZ4aI26X9SRaE+Y3m83XUL1UP2jn8ynjndwCCpEHdUG+9pP1Tw==", + "dev": true + } } }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "ws": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/ws/-/ws-5.2.2.tgz", - "integrity": "sha512-jaHFD6PFv6UgoIVda6qZllptQsMlDEJkTQcybzzXDYM1XO9Y8em691FGMPmM46WGyLU4z9KMgQN+qrux/nhlHA==", + "web3-core": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-1.3.6.tgz", + "integrity": "sha512-gkLDM4T1Sc0T+HZIwxrNrwPg0IfWI0oABSglP2X5ZbBAYVUeEATA0o92LWV8BeF+okvKXLK1Fek/p6axwM/h3Q==", + "dev": true, "requires": { - "async-limiter": "~1.0.0" + "@types/bn.js": "^4.11.5", + "@types/node": "^12.12.6", + "bignumber.js": "^9.0.0", + "web3-core-helpers": "1.3.6", + "web3-core-method": "1.3.6", + "web3-core-requestmanager": "1.3.6", + "web3-utils": "1.3.6" + }, + "dependencies": { + "bignumber.js": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.1.tgz", + "integrity": "sha512-IdZR9mh6ahOBv/hYGiXyVuyCetmGJhtYkqLBpTStdhEGjegpPlUawydyaF3pbIOFynJTpllEs+NP+CS9jKFLjA==", + "dev": true + }, + "eth-lib": { + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz", + "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==", + "dev": true, + "requires": { + "bn.js": "^4.11.6", + "elliptic": "^6.4.0", + "xhr-request-promise": "^0.1.2" + } + }, + "underscore": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.12.1.tgz", + "integrity": "sha512-hEQt0+ZLDVUMhebKxL4x1BTtDY7bavVofhZ9KZ4aI26X9SRaE+Y3m83XUL1UP2jn8ynjndwCCpEHdUG+9pP1Tw==", + "dev": true + }, + "web3-utils": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.3.6.tgz", + "integrity": "sha512-hHatFaQpkQgjGVER17gNx8u1qMyaXFZtM0y0XLGH1bzsjMPlkMPLRcYOrZ00rOPfTEuYFOdrpGOqZXVmGrMZRg==", + "dev": true, + "requires": { + "bn.js": "^4.11.9", + "eth-lib": "0.2.8", + "ethereum-bloom-filters": "^1.0.6", + "ethjs-unit": "0.1.6", + "number-to-bn": "1.7.0", + "randombytes": "^2.1.0", + "underscore": "1.12.1", + "utf8": "3.0.0" + } + } } - } - } - }, - "@types/bn.js": { - "version": "4.11.5", - "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.5.tgz", - "integrity": "sha512-AEAZcIZga0JgVMHNtl1CprA/hXX7/wPt79AgR4XqaDt7jyj3QWYw6LPoOiznPtugDmlubUnAahMs2PFxGcQrng==", - "requires": { - "@types/node": "*" - } - }, - "@types/cacheable-request": { + }, + "web3-core-helpers": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.3.6.tgz", + "integrity": "sha512-nhtjA2ZbkppjlxTSwG0Ttu6FcPkVu1rCN5IFAOVpF/L0SEt+jy+O5l90+cjDq0jAYvlBwUwnbh2mR9hwDEJCNA==", + "dev": true, + "requires": { + "underscore": "1.12.1", + "web3-eth-iban": "1.3.6", + "web3-utils": "1.3.6" + }, + "dependencies": { + "eth-lib": { + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz", + "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==", + "dev": true, + "requires": { + "bn.js": "^4.11.6", + "elliptic": "^6.4.0", + "xhr-request-promise": "^0.1.2" + } + }, + "underscore": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.12.1.tgz", + "integrity": "sha512-hEQt0+ZLDVUMhebKxL4x1BTtDY7bavVofhZ9KZ4aI26X9SRaE+Y3m83XUL1UP2jn8ynjndwCCpEHdUG+9pP1Tw==", + "dev": true + }, + "web3-utils": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.3.6.tgz", + "integrity": "sha512-hHatFaQpkQgjGVER17gNx8u1qMyaXFZtM0y0XLGH1bzsjMPlkMPLRcYOrZ00rOPfTEuYFOdrpGOqZXVmGrMZRg==", + "dev": true, + "requires": { + "bn.js": "^4.11.9", + "eth-lib": "0.2.8", + "ethereum-bloom-filters": "^1.0.6", + "ethjs-unit": "0.1.6", + "number-to-bn": "1.7.0", + "randombytes": "^2.1.0", + "underscore": "1.12.1", + "utf8": "3.0.0" + } + } + } + }, + "web3-core-method": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.3.6.tgz", + "integrity": "sha512-RyegqVGxn0cyYW5yzAwkPlsSEynkdPiegd7RxgB4ak1eKk2Cv1q2x4C7D2sZjeeCEF+q6fOkVmo2OZNqS2iQxg==", + "dev": true, + "requires": { + "@ethersproject/transactions": "^5.0.0-beta.135", + "underscore": "1.12.1", + "web3-core-helpers": "1.3.6", + "web3-core-promievent": "1.3.6", + "web3-core-subscriptions": "1.3.6", + "web3-utils": "1.3.6" + }, + "dependencies": { + "eth-lib": { + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz", + "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==", + "dev": true, + "requires": { + "bn.js": "^4.11.6", + "elliptic": "^6.4.0", + "xhr-request-promise": "^0.1.2" + } + }, + "underscore": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.12.1.tgz", + "integrity": "sha512-hEQt0+ZLDVUMhebKxL4x1BTtDY7bavVofhZ9KZ4aI26X9SRaE+Y3m83XUL1UP2jn8ynjndwCCpEHdUG+9pP1Tw==", + "dev": true + }, + "web3-utils": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.3.6.tgz", + "integrity": "sha512-hHatFaQpkQgjGVER17gNx8u1qMyaXFZtM0y0XLGH1bzsjMPlkMPLRcYOrZ00rOPfTEuYFOdrpGOqZXVmGrMZRg==", + "dev": true, + "requires": { + "bn.js": "^4.11.9", + "eth-lib": "0.2.8", + "ethereum-bloom-filters": "^1.0.6", + "ethjs-unit": "0.1.6", + "number-to-bn": "1.7.0", + "randombytes": "^2.1.0", + "underscore": "1.12.1", + "utf8": "3.0.0" + } + } + } + }, + "web3-core-promievent": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.3.6.tgz", + "integrity": "sha512-Z+QzfyYDTXD5wJmZO5wwnRO8bAAHEItT1XNSPVb4J1CToV/I/SbF7CuF8Uzh2jns0Cm1109o666H7StFFvzVKw==", + "dev": true, + "requires": { + "eventemitter3": "4.0.4" + } + }, + "web3-core-requestmanager": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.3.6.tgz", + "integrity": "sha512-2rIaeuqeo7QN1Eex7aXP0ZqeteJEPWXYFS/M3r3LXMiV8R4STQBKE+//dnHJXoo2ctzEB5cgd+7NaJM8S3gPyA==", + "dev": true, + "requires": { + "underscore": "1.12.1", + "util": "^0.12.0", + "web3-core-helpers": "1.3.6", + "web3-providers-http": "1.3.6", + "web3-providers-ipc": "1.3.6", + "web3-providers-ws": "1.3.6" + }, + "dependencies": { + "underscore": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.12.1.tgz", + "integrity": "sha512-hEQt0+ZLDVUMhebKxL4x1BTtDY7bavVofhZ9KZ4aI26X9SRaE+Y3m83XUL1UP2jn8ynjndwCCpEHdUG+9pP1Tw==", + "dev": true + } + } + }, + "web3-core-subscriptions": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.3.6.tgz", + "integrity": "sha512-wi9Z9X5X75OKvxAg42GGIf81ttbNR2TxzkAsp1g+nnp5K8mBwgZvXrIsDuj7Z7gx72Y45mWJADCWjk/2vqNu8g==", + "dev": true, + "requires": { + "eventemitter3": "4.0.4", + "underscore": "1.12.1", + "web3-core-helpers": "1.3.6" + }, + "dependencies": { + "underscore": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.12.1.tgz", + "integrity": "sha512-hEQt0+ZLDVUMhebKxL4x1BTtDY7bavVofhZ9KZ4aI26X9SRaE+Y3m83XUL1UP2jn8ynjndwCCpEHdUG+9pP1Tw==", + "dev": true + } + } + }, + "web3-eth": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/web3-eth/-/web3-eth-1.3.6.tgz", + "integrity": "sha512-9+rnywRRpyX3C4hfsAQXPQh6vHh9XzQkgLxo3gyeXfbhbShUoq2gFVuy42vsRs//6JlsKdyZS7Z3hHPHz2wreA==", + "dev": true, + "requires": { + "underscore": "1.12.1", + "web3-core": "1.3.6", + "web3-core-helpers": "1.3.6", + "web3-core-method": "1.3.6", + "web3-core-subscriptions": "1.3.6", + "web3-eth-abi": "1.3.6", + "web3-eth-accounts": "1.3.6", + "web3-eth-contract": "1.3.6", + "web3-eth-ens": "1.3.6", + "web3-eth-iban": "1.3.6", + "web3-eth-personal": "1.3.6", + "web3-net": "1.3.6", + "web3-utils": "1.3.6" + }, + "dependencies": { + "eth-lib": { + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz", + "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==", + "dev": true, + "requires": { + "bn.js": "^4.11.6", + "elliptic": "^6.4.0", + "xhr-request-promise": "^0.1.2" + } + }, + "underscore": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.12.1.tgz", + "integrity": "sha512-hEQt0+ZLDVUMhebKxL4x1BTtDY7bavVofhZ9KZ4aI26X9SRaE+Y3m83XUL1UP2jn8ynjndwCCpEHdUG+9pP1Tw==", + "dev": true + }, + "web3-utils": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.3.6.tgz", + "integrity": "sha512-hHatFaQpkQgjGVER17gNx8u1qMyaXFZtM0y0XLGH1bzsjMPlkMPLRcYOrZ00rOPfTEuYFOdrpGOqZXVmGrMZRg==", + "dev": true, + "requires": { + "bn.js": "^4.11.9", + "eth-lib": "0.2.8", + "ethereum-bloom-filters": "^1.0.6", + "ethjs-unit": "0.1.6", + "number-to-bn": "1.7.0", + "randombytes": "^2.1.0", + "underscore": "1.12.1", + "utf8": "3.0.0" + } + } + } + }, + "web3-eth-abi": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.3.6.tgz", + "integrity": "sha512-Or5cRnZu6WzgScpmbkvC6bfNxR26hqiKK4i8sMPFeTUABQcb/FU3pBj7huBLYbp9dH+P5W79D2MqwbWwjj9DoQ==", + "dev": true, + "requires": { + "@ethersproject/abi": "5.0.7", + "underscore": "1.12.1", + "web3-utils": "1.3.6" + }, + "dependencies": { + "eth-lib": { + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz", + "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==", + "dev": true, + "requires": { + "bn.js": "^4.11.6", + "elliptic": "^6.4.0", + "xhr-request-promise": "^0.1.2" + } + }, + "underscore": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.12.1.tgz", + "integrity": "sha512-hEQt0+ZLDVUMhebKxL4x1BTtDY7bavVofhZ9KZ4aI26X9SRaE+Y3m83XUL1UP2jn8ynjndwCCpEHdUG+9pP1Tw==", + "dev": true + }, + "web3-utils": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.3.6.tgz", + "integrity": "sha512-hHatFaQpkQgjGVER17gNx8u1qMyaXFZtM0y0XLGH1bzsjMPlkMPLRcYOrZ00rOPfTEuYFOdrpGOqZXVmGrMZRg==", + "dev": true, + "requires": { + "bn.js": "^4.11.9", + "eth-lib": "0.2.8", + "ethereum-bloom-filters": "^1.0.6", + "ethjs-unit": "0.1.6", + "number-to-bn": "1.7.0", + "randombytes": "^2.1.0", + "underscore": "1.12.1", + "utf8": "3.0.0" + } + } + } + }, + "web3-eth-accounts": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.3.6.tgz", + "integrity": "sha512-Ilr0hG6ONbCdSlVKffasCmNwftD5HsNpwyQASevocIQwHdTlvlwO0tb3oGYuajbKOaDzNTwXfz25bttAEoFCGA==", + "dev": true, + "requires": { + "crypto-browserify": "3.12.0", + "eth-lib": "0.2.8", + "ethereumjs-common": "^1.3.2", + "ethereumjs-tx": "^2.1.1", + "scrypt-js": "^3.0.1", + "underscore": "1.12.1", + "uuid": "3.3.2", + "web3-core": "1.3.6", + "web3-core-helpers": "1.3.6", + "web3-core-method": "1.3.6", + "web3-utils": "1.3.6" + }, + "dependencies": { + "eth-lib": { + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz", + "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==", + "dev": true, + "requires": { + "bn.js": "^4.11.6", + "elliptic": "^6.4.0", + "xhr-request-promise": "^0.1.2" + } + }, + "underscore": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.12.1.tgz", + "integrity": "sha512-hEQt0+ZLDVUMhebKxL4x1BTtDY7bavVofhZ9KZ4aI26X9SRaE+Y3m83XUL1UP2jn8ynjndwCCpEHdUG+9pP1Tw==", + "dev": true + }, + "web3-utils": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.3.6.tgz", + "integrity": "sha512-hHatFaQpkQgjGVER17gNx8u1qMyaXFZtM0y0XLGH1bzsjMPlkMPLRcYOrZ00rOPfTEuYFOdrpGOqZXVmGrMZRg==", + "dev": true, + "requires": { + "bn.js": "^4.11.9", + "eth-lib": "0.2.8", + "ethereum-bloom-filters": "^1.0.6", + "ethjs-unit": "0.1.6", + "number-to-bn": "1.7.0", + "randombytes": "^2.1.0", + "underscore": "1.12.1", + "utf8": "3.0.0" + } + } + } + }, + "web3-eth-contract": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.3.6.tgz", + "integrity": "sha512-8gDaRrLF2HCg+YEZN1ov0zN35vmtPnGf3h1DxmJQK5Wm2lRMLomz9rsWsuvig3UJMHqZAQKD7tOl3ocJocQsmA==", + "dev": true, + "requires": { + "@types/bn.js": "^4.11.5", + "underscore": "1.12.1", + "web3-core": "1.3.6", + "web3-core-helpers": "1.3.6", + "web3-core-method": "1.3.6", + "web3-core-promievent": "1.3.6", + "web3-core-subscriptions": "1.3.6", + "web3-eth-abi": "1.3.6", + "web3-utils": "1.3.6" + }, + "dependencies": { + "eth-lib": { + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz", + "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==", + "dev": true, + "requires": { + "bn.js": "^4.11.6", + "elliptic": "^6.4.0", + "xhr-request-promise": "^0.1.2" + } + }, + "underscore": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.12.1.tgz", + "integrity": "sha512-hEQt0+ZLDVUMhebKxL4x1BTtDY7bavVofhZ9KZ4aI26X9SRaE+Y3m83XUL1UP2jn8ynjndwCCpEHdUG+9pP1Tw==", + "dev": true + }, + "web3-utils": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.3.6.tgz", + "integrity": "sha512-hHatFaQpkQgjGVER17gNx8u1qMyaXFZtM0y0XLGH1bzsjMPlkMPLRcYOrZ00rOPfTEuYFOdrpGOqZXVmGrMZRg==", + "dev": true, + "requires": { + "bn.js": "^4.11.9", + "eth-lib": "0.2.8", + "ethereum-bloom-filters": "^1.0.6", + "ethjs-unit": "0.1.6", + "number-to-bn": "1.7.0", + "randombytes": "^2.1.0", + "underscore": "1.12.1", + "utf8": "3.0.0" + } + } + } + }, + "web3-eth-ens": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/web3-eth-ens/-/web3-eth-ens-1.3.6.tgz", + "integrity": "sha512-n27HNj7lpSkRxTgSx+Zo7cmKAgyg2ElFilaFlUu/X2CNH23lXfcPm2bWssivH9z0ndhg0OyR4AYFZqPaqDHkJA==", + "dev": true, + "requires": { + "content-hash": "^2.5.2", + "eth-ens-namehash": "2.0.8", + "underscore": "1.12.1", + "web3-core": "1.3.6", + "web3-core-helpers": "1.3.6", + "web3-core-promievent": "1.3.6", + "web3-eth-abi": "1.3.6", + "web3-eth-contract": "1.3.6", + "web3-utils": "1.3.6" + }, + "dependencies": { + "eth-lib": { + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz", + "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==", + "dev": true, + "requires": { + "bn.js": "^4.11.6", + "elliptic": "^6.4.0", + "xhr-request-promise": "^0.1.2" + } + }, + "underscore": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.12.1.tgz", + "integrity": "sha512-hEQt0+ZLDVUMhebKxL4x1BTtDY7bavVofhZ9KZ4aI26X9SRaE+Y3m83XUL1UP2jn8ynjndwCCpEHdUG+9pP1Tw==", + "dev": true + }, + "web3-utils": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.3.6.tgz", + "integrity": "sha512-hHatFaQpkQgjGVER17gNx8u1qMyaXFZtM0y0XLGH1bzsjMPlkMPLRcYOrZ00rOPfTEuYFOdrpGOqZXVmGrMZRg==", + "dev": true, + "requires": { + "bn.js": "^4.11.9", + "eth-lib": "0.2.8", + "ethereum-bloom-filters": "^1.0.6", + "ethjs-unit": "0.1.6", + "number-to-bn": "1.7.0", + "randombytes": "^2.1.0", + "underscore": "1.12.1", + "utf8": "3.0.0" + } + } + } + }, + "web3-eth-iban": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.3.6.tgz", + "integrity": "sha512-nfMQaaLA/zsg5W4Oy/EJQbs8rSs1vBAX6b/35xzjYoutXlpHMQadujDx2RerTKhSHqFXSJeQAfE+2f6mdhYkRQ==", + "dev": true, + "requires": { + "bn.js": "^4.11.9", + "web3-utils": "1.3.6" + }, + "dependencies": { + "eth-lib": { + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz", + "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==", + "dev": true, + "requires": { + "bn.js": "^4.11.6", + "elliptic": "^6.4.0", + "xhr-request-promise": "^0.1.2" + } + }, + "underscore": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.12.1.tgz", + "integrity": "sha512-hEQt0+ZLDVUMhebKxL4x1BTtDY7bavVofhZ9KZ4aI26X9SRaE+Y3m83XUL1UP2jn8ynjndwCCpEHdUG+9pP1Tw==", + "dev": true + }, + "web3-utils": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.3.6.tgz", + "integrity": "sha512-hHatFaQpkQgjGVER17gNx8u1qMyaXFZtM0y0XLGH1bzsjMPlkMPLRcYOrZ00rOPfTEuYFOdrpGOqZXVmGrMZRg==", + "dev": true, + "requires": { + "bn.js": "^4.11.9", + "eth-lib": "0.2.8", + "ethereum-bloom-filters": "^1.0.6", + "ethjs-unit": "0.1.6", + "number-to-bn": "1.7.0", + "randombytes": "^2.1.0", + "underscore": "1.12.1", + "utf8": "3.0.0" + } + } + } + }, + "web3-eth-personal": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.3.6.tgz", + "integrity": "sha512-pOHU0+/h1RFRYoh1ehYBehRbcKWP4OSzd4F7mDljhHngv6W8ewMHrAN8O1ol9uysN2MuCdRE19qkRg5eNgvzFQ==", + "dev": true, + "requires": { + "@types/node": "^12.12.6", + "web3-core": "1.3.6", + "web3-core-helpers": "1.3.6", + "web3-core-method": "1.3.6", + "web3-net": "1.3.6", + "web3-utils": "1.3.6" + }, + "dependencies": { + "eth-lib": { + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz", + "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==", + "dev": true, + "requires": { + "bn.js": "^4.11.6", + "elliptic": "^6.4.0", + "xhr-request-promise": "^0.1.2" + } + }, + "underscore": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.12.1.tgz", + "integrity": "sha512-hEQt0+ZLDVUMhebKxL4x1BTtDY7bavVofhZ9KZ4aI26X9SRaE+Y3m83XUL1UP2jn8ynjndwCCpEHdUG+9pP1Tw==", + "dev": true + }, + "web3-utils": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.3.6.tgz", + "integrity": "sha512-hHatFaQpkQgjGVER17gNx8u1qMyaXFZtM0y0XLGH1bzsjMPlkMPLRcYOrZ00rOPfTEuYFOdrpGOqZXVmGrMZRg==", + "dev": true, + "requires": { + "bn.js": "^4.11.9", + "eth-lib": "0.2.8", + "ethereum-bloom-filters": "^1.0.6", + "ethjs-unit": "0.1.6", + "number-to-bn": "1.7.0", + "randombytes": "^2.1.0", + "underscore": "1.12.1", + "utf8": "3.0.0" + } + } + } + }, + "web3-net": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/web3-net/-/web3-net-1.3.6.tgz", + "integrity": "sha512-KhzU3wMQY/YYjyMiQzbaLPt2kut88Ncx2iqjy3nw28vRux3gVX0WOCk9EL/KVJBiAA/fK7VklTXvgy9dZnnipw==", + "dev": true, + "requires": { + "web3-core": "1.3.6", + "web3-core-method": "1.3.6", + "web3-utils": "1.3.6" + }, + "dependencies": { + "eth-lib": { + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz", + "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==", + "dev": true, + "requires": { + "bn.js": "^4.11.6", + "elliptic": "^6.4.0", + "xhr-request-promise": "^0.1.2" + } + }, + "underscore": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.12.1.tgz", + "integrity": "sha512-hEQt0+ZLDVUMhebKxL4x1BTtDY7bavVofhZ9KZ4aI26X9SRaE+Y3m83XUL1UP2jn8ynjndwCCpEHdUG+9pP1Tw==", + "dev": true + }, + "web3-utils": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.3.6.tgz", + "integrity": "sha512-hHatFaQpkQgjGVER17gNx8u1qMyaXFZtM0y0XLGH1bzsjMPlkMPLRcYOrZ00rOPfTEuYFOdrpGOqZXVmGrMZRg==", + "dev": true, + "requires": { + "bn.js": "^4.11.9", + "eth-lib": "0.2.8", + "ethereum-bloom-filters": "^1.0.6", + "ethjs-unit": "0.1.6", + "number-to-bn": "1.7.0", + "randombytes": "^2.1.0", + "underscore": "1.12.1", + "utf8": "3.0.0" + } + } + } + }, + "web3-providers-http": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.3.6.tgz", + "integrity": "sha512-OQkT32O1A06dISIdazpGLveZcOXhEo5cEX6QyiSQkiPk/cjzDrXMw4SKZOGQbbS1+0Vjizm1Hrp7O8Vp2D1M5Q==", + "dev": true, + "requires": { + "web3-core-helpers": "1.3.6", + "xhr2-cookies": "1.1.0" + } + }, + "web3-providers-ipc": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.3.6.tgz", + "integrity": "sha512-+TVsSd2sSVvVgHG4s6FXwwYPPT91boKKcRuEFXqEfAbUC5t52XOgmyc2LNiD9LzPhed65FbV4LqICpeYGUvSwA==", + "dev": true, + "requires": { + "oboe": "2.1.5", + "underscore": "1.12.1", + "web3-core-helpers": "1.3.6" + }, + "dependencies": { + "underscore": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.12.1.tgz", + "integrity": "sha512-hEQt0+ZLDVUMhebKxL4x1BTtDY7bavVofhZ9KZ4aI26X9SRaE+Y3m83XUL1UP2jn8ynjndwCCpEHdUG+9pP1Tw==", + "dev": true + } + } + }, + "web3-providers-ws": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.3.6.tgz", + "integrity": "sha512-bk7MnJf5or0Re2zKyhR3L3CjGululLCHXx4vlbc/drnaTARUVvi559OI5uLytc/1k5HKUUyENAxLvetz2G1dnQ==", + "dev": true, + "requires": { + "eventemitter3": "4.0.4", + "underscore": "1.12.1", + "web3-core-helpers": "1.3.6", + "websocket": "^1.0.32" + }, + "dependencies": { + "underscore": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.12.1.tgz", + "integrity": "sha512-hEQt0+ZLDVUMhebKxL4x1BTtDY7bavVofhZ9KZ4aI26X9SRaE+Y3m83XUL1UP2jn8ynjndwCCpEHdUG+9pP1Tw==", + "dev": true + } + } + }, + "web3-shh": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/web3-shh/-/web3-shh-1.3.6.tgz", + "integrity": "sha512-9zRo415O0iBslxBnmu9OzYjNErzLnzOsy+IOvSpIreLYbbAw0XkDWxv3SfcpKnTIWIACBR4AYMIxmmyi5iB3jw==", + "dev": true, + "requires": { + "web3-core": "1.3.6", + "web3-core-method": "1.3.6", + "web3-core-subscriptions": "1.3.6", + "web3-net": "1.3.6" + } + }, + "web3-utils": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.2.9.tgz", + "integrity": "sha512-9hcpuis3n/LxFzEVjwnVgvJzTirS2S9/MiNAa7l4WOEoywY+BSNwnRX4MuHnjkh9NY25B6QOjuNG6FNnSjTw1w==", + "dev": true, + "requires": { + "bn.js": "4.11.8", + "eth-lib": "0.2.7", + "ethereum-bloom-filters": "^1.0.6", + "ethjs-unit": "0.1.6", + "number-to-bn": "1.7.0", + "randombytes": "^2.1.0", + "underscore": "1.9.1", + "utf8": "3.0.0" + }, + "dependencies": { + "bn.js": { + "version": "4.11.8", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", + "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==", + "dev": true + } + } + }, + "websocket": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/websocket/-/websocket-1.0.34.tgz", + "integrity": "sha512-PRDso2sGwF6kM75QykIesBijKSVceR6jL2G8NGYyq2XrItNC2P5/qL5XeR056GhA+Ly7JMFvJb9I312mJfmqnQ==", + "dev": true, + "requires": { + "bufferutil": "^4.0.1", + "debug": "^2.2.0", + "es5-ext": "^0.10.50", + "typedarray-to-buffer": "^3.1.5", + "utf-8-validate": "^5.0.2", + "yaeti": "^0.0.6" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + } + } + }, + "@resolver-engine/core": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/@resolver-engine/core/-/core-0.2.1.tgz", + "integrity": "sha512-nsLQHmPJ77QuifqsIvqjaF5B9aHnDzJjp73Q1z6apY3e9nqYrx4Dtowhpsf7Jwftg/XzVDEMQC+OzUBNTS+S1A==", + "dev": true, + "requires": { + "debug": "^3.1.0", + "request": "^2.85.0" + } + }, + "@resolver-engine/fs": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/@resolver-engine/fs/-/fs-0.2.1.tgz", + "integrity": "sha512-7kJInM1Qo2LJcKyDhuYzh9ZWd+mal/fynfL9BNjWOiTcOpX+jNfqb/UmGUqros5pceBITlWGqS4lU709yHFUbg==", + "dev": true, + "requires": { + "@resolver-engine/core": "^0.2.1", + "debug": "^3.1.0" + } + }, + "@resolver-engine/imports": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/@resolver-engine/imports/-/imports-0.2.2.tgz", + "integrity": "sha512-u5/HUkvo8q34AA+hnxxqqXGfby5swnH0Myw91o3Sm2TETJlNKXibFGSKBavAH+wvWdBi4Z5gS2Odu0PowgVOUg==", + "dev": true, + "requires": { + "@resolver-engine/core": "^0.2.1", + "debug": "^3.1.0", + "hosted-git-info": "^2.6.0" + } + }, + "@resolver-engine/imports-fs": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/@resolver-engine/imports-fs/-/imports-fs-0.2.2.tgz", + "integrity": "sha512-gFCgMvCwyppjwq0UzIjde/WI+yDs3oatJhozG9xdjJdewwtd7LiF0T5i9lrHAUtqrQbqoFE4E+ZMRVHWpWHpKQ==", + "dev": true, + "requires": { + "@resolver-engine/fs": "^0.2.1", + "@resolver-engine/imports": "^0.2.2", + "debug": "^3.1.0" + } + }, + "@sentry/core": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@sentry/core/-/core-5.30.0.tgz", + "integrity": "sha512-TmfrII8w1PQZSZgPpUESqjB+jC6MvZJZdLtE/0hZ+SrnKhW3x5WlYLvTXZpcWePYBku7rl2wn1RZu6uT0qCTeg==", + "dev": true, + "requires": { + "@sentry/hub": "5.30.0", + "@sentry/minimal": "5.30.0", + "@sentry/types": "5.30.0", + "@sentry/utils": "5.30.0", + "tslib": "^1.9.3" + } + }, + "@sentry/hub": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@sentry/hub/-/hub-5.30.0.tgz", + "integrity": "sha512-2tYrGnzb1gKz2EkMDQcfLrDTvmGcQPuWxLnJKXJvYTQDGLlEvi2tWz1VIHjunmOvJrB5aIQLhm+dcMRwFZDCqQ==", + "dev": true, + "requires": { + "@sentry/types": "5.30.0", + "@sentry/utils": "5.30.0", + "tslib": "^1.9.3" + } + }, + "@sentry/minimal": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@sentry/minimal/-/minimal-5.30.0.tgz", + "integrity": "sha512-BwWb/owZKtkDX+Sc4zCSTNcvZUq7YcH3uAVlmh/gtR9rmUvbzAA3ewLuB3myi4wWRAMEtny6+J/FN/x+2wn9Xw==", + "dev": true, + "requires": { + "@sentry/hub": "5.30.0", + "@sentry/types": "5.30.0", + "tslib": "^1.9.3" + } + }, + "@sentry/node": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@sentry/node/-/node-5.30.0.tgz", + "integrity": "sha512-Br5oyVBF0fZo6ZS9bxbJZG4ApAjRqAnqFFurMVJJdunNb80brh7a5Qva2kjhm+U6r9NJAB5OmDyPkA1Qnt+QVg==", + "dev": true, + "requires": { + "@sentry/core": "5.30.0", + "@sentry/hub": "5.30.0", + "@sentry/tracing": "5.30.0", + "@sentry/types": "5.30.0", + "@sentry/utils": "5.30.0", + "cookie": "^0.4.1", + "https-proxy-agent": "^5.0.0", + "lru_map": "^0.3.3", + "tslib": "^1.9.3" + }, + "dependencies": { + "agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dev": true, + "requires": { + "debug": "4" + } + }, + "cookie": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz", + "integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==", + "dev": true + }, + "debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "https-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", + "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", + "dev": true, + "requires": { + "agent-base": "6", + "debug": "4" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, + "@sentry/tracing": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@sentry/tracing/-/tracing-5.30.0.tgz", + "integrity": "sha512-dUFowCr0AIMwiLD7Fs314Mdzcug+gBVo/+NCMyDw8tFxJkwWAKl7Qa2OZxLQ0ZHjakcj1hNKfCQJ9rhyfOl4Aw==", + "dev": true, + "requires": { + "@sentry/hub": "5.30.0", + "@sentry/minimal": "5.30.0", + "@sentry/types": "5.30.0", + "@sentry/utils": "5.30.0", + "tslib": "^1.9.3" + } + }, + "@sentry/types": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@sentry/types/-/types-5.30.0.tgz", + "integrity": "sha512-R8xOqlSTZ+htqrfteCWU5Nk0CDN5ApUTvrlvBuiH1DyP6czDZ4ktbZB0hAgBlVcK0U+qpD3ag3Tqqpa5Q67rPw==", + "dev": true + }, + "@sentry/utils": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-5.30.0.tgz", + "integrity": "sha512-zaYmoH0NWWtvnJjC9/CBseXMtKHm/tm40sz3YfJRxeQjyzRqNQPgivpd9R/oDJCYj999mzdW382p/qi2ypjLww==", + "dev": true, + "requires": { + "@sentry/types": "5.30.0", + "tslib": "^1.9.3" + } + }, + "@sindresorhus/is": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", + "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", + "dev": true + }, + "@snyk/cli-interface": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/@snyk/cli-interface/-/cli-interface-2.8.1.tgz", + "integrity": "sha512-pALcfgoY0hAavy/pBlDIqEu+FFC5m+D4bMnCwlQ26mObL/zzxp2+Ohx+HykCIom62u2J94SzAtRLFdm/2TgoOw==", + "dev": true, + "requires": { + "@snyk/dep-graph": "1.19.0", + "@snyk/graphlib": "2.1.9-patch", + "tslib": "^1.9.3" + }, + "dependencies": { + "@snyk/dep-graph": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/@snyk/dep-graph/-/dep-graph-1.19.0.tgz", + "integrity": "sha512-/0phOICMk4hkX2KtZgi+4KNd5G9oYDIlxQDQk+ui2xl4gonPvK6Q5MFzHP7Xet1YY/XoU33ox41i+IO48qZ+zQ==", + "dev": true, + "requires": { + "@snyk/graphlib": "2.1.9-patch", + "lodash.isequal": "^4.5.0", + "object-hash": "^2.0.3", + "semver": "^6.0.0", + "source-map-support": "^0.5.19", + "tslib": "^2.0.0" + }, + "dependencies": { + "tslib": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.0.tgz", + "integrity": "sha512-lTqkx847PI7xEDYJntxZH89L2/aXInsyF2luSafe/+0fHOMjlBNXdH6th7f70qxLDhul7KZK0zC8V5ZIyHl0/g==", + "dev": true + } + } + } + } + }, + "@snyk/cocoapods-lockfile-parser": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/@snyk/cocoapods-lockfile-parser/-/cocoapods-lockfile-parser-3.4.0.tgz", + "integrity": "sha512-mAWgKIHFv0QEGpRvocVMxLAdJx7BmXtVOyQN/VtsGBoGFKqhO0jbtKUUVJC4b0jyKfVmEF2puo94i+1Uqz5q6A==", + "dev": true, + "requires": { + "@snyk/dep-graph": "1.18.4", + "@snyk/ruby-semver": "^2.0.4", + "@types/js-yaml": "^3.12.1", + "js-yaml": "^3.13.1", + "source-map-support": "^0.5.7", + "tslib": "^1.10.0" + }, + "dependencies": { + "@snyk/dep-graph": { + "version": "1.18.4", + "resolved": "https://registry.npmjs.org/@snyk/dep-graph/-/dep-graph-1.18.4.tgz", + "integrity": "sha512-SePWsDyD7qrLxFifIieEl4GqyOODfOnP0hmUweTG5YcMroAV5nARGAUcjxREGzbXMcUpPfZhAaqFjYgzUDH8dQ==", + "dev": true, + "requires": { + "@snyk/graphlib": "2.1.9-patch", + "@snyk/lodash": "4.17.15-patch", + "object-hash": "^2.0.3", + "semver": "^7.3.2", + "source-map-support": "^0.5.19", + "tslib": "^1.11.1" + } + }, + "semver": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", + "dev": true + } + } + }, + "@snyk/composer-lockfile-parser": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@snyk/composer-lockfile-parser/-/composer-lockfile-parser-1.4.0.tgz", + "integrity": "sha512-ga4YTRjJUuP0Ufr+t1IucwVjEFAv66JSBB/zVHP2zy/jmfA3l3ZjlGQSjsRC6Me9P2Z0esQ83AYNZvmIf9pq2w==", + "dev": true, + "requires": { + "@snyk/lodash": "^4.17.15-patch" + } + }, + "@snyk/dep-graph": { + "version": "1.18.3", + "resolved": "https://registry.npmjs.org/@snyk/dep-graph/-/dep-graph-1.18.3.tgz", + "integrity": "sha512-7qWRTIJdZuc5VzDjdV2+03AHElyAZmhq7eV9BRu+jqrYjo9ohWBGEZgYslrTdvfqfJ8rkdrG3j0/0Aa25IxJcg==", + "dev": true, + "requires": { + "@snyk/graphlib": "2.1.9-patch", + "@snyk/lodash": "4.17.15-patch", + "object-hash": "^2.0.3", + "semver": "^7.3.2", + "source-map-support": "^0.5.19", + "tslib": "^1.11.1" + }, + "dependencies": { + "semver": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", + "dev": true + } + } + }, + "@snyk/docker-registry-v2-client": { + "version": "1.13.5", + "resolved": "https://registry.npmjs.org/@snyk/docker-registry-v2-client/-/docker-registry-v2-client-1.13.5.tgz", + "integrity": "sha512-lgJiC071abCpFVLp47OnykU8MMrhdQe386Wt6QaDmjI0s2DQn/S58NfdLrPU7s6l4zoGT7UwRW9+7paozRgFTA==", + "dev": true, + "requires": { + "needle": "^2.5.0", + "parse-link-header": "^1.0.1", + "tslib": "^1.10.0" + } + }, + "@snyk/gemfile": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@snyk/gemfile/-/gemfile-1.2.0.tgz", + "integrity": "sha512-nI7ELxukf7pT4/VraL4iabtNNMz8mUo7EXlqCFld8O5z6mIMLX9llps24iPpaIZOwArkY3FWA+4t+ixyvtTSIA==", + "dev": true + }, + "@snyk/graphlib": { + "version": "2.1.9-patch", + "resolved": "https://registry.npmjs.org/@snyk/graphlib/-/graphlib-2.1.9-patch.tgz", + "integrity": "sha512-uFO/pNMm3pN15QB+hVMU7uaQXhsBNwEA8lOET/VDcdOzLptODhXzkJqSHqt0tZlpdAz6/6Uaj8jY00UvPFgFMA==", + "dev": true, + "requires": { + "@snyk/lodash": "4.17.15-patch" + } + }, + "@snyk/inquirer": { + "version": "6.2.2-patch", + "resolved": "https://registry.npmjs.org/@snyk/inquirer/-/inquirer-6.2.2-patch.tgz", + "integrity": "sha512-IUq5bHRL0vtVKtfvd4GOccAIaLYHbcertug2UVZzk5+yY6R/CxfYsnFUTho1h4BdkfNdin2tPjE/5jRF4SKSrw==", + "dev": true, + "requires": { + "@snyk/lodash": "4.17.15-patch", + "ansi-escapes": "^3.2.0", + "chalk": "^2.4.2", + "cli-cursor": "^2.1.0", + "cli-width": "^2.0.0", + "external-editor": "^3.0.3", + "figures": "^2.0.0", + "mute-stream": "0.0.7", + "run-async": "^2.2.0", + "rxjs": "^6.4.0", + "string-width": "^2.1.0", + "strip-ansi": "^5.0.0", + "through": "^2.3.6" + }, + "dependencies": { + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + } + } + }, + "@snyk/java-call-graph-builder": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@snyk/java-call-graph-builder/-/java-call-graph-builder-1.12.1.tgz", + "integrity": "sha512-thaLaqwXYkvVKs1gqmCAB5aFvwp2cz84rFlODr93smG6E8s7U+KNMiiiWq1KjSvbRe3AN8YUENYGyUoGRu9m1w==", + "dev": true, + "requires": { + "@snyk/graphlib": "2.1.9-patch", + "ci-info": "^2.0.0", + "debug": "^4.1.1", + "glob": "^7.1.6", + "jszip": "^3.2.2", + "needle": "^2.3.3", + "progress": "^2.0.3", + "snyk-config": "^3.0.0", + "source-map-support": "^0.5.7", + "temp-dir": "^2.0.0", + "tslib": "^1.9.3" + }, + "dependencies": { + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, + "@snyk/lodash": { + "version": "4.17.15-patch", + "resolved": "https://registry.npmjs.org/@snyk/lodash/-/lodash-4.17.15-patch.tgz", + "integrity": "sha512-e4+t34bGyjjRnwXwI14hqye9J/nRbG9iwaqTgXWHskm5qC+iK0UrjgYdWXiHJCf3Plbpr+1rpW+4LPzZnCGMhQ==", + "dev": true + }, + "@snyk/rpm-parser": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@snyk/rpm-parser/-/rpm-parser-2.0.0.tgz", + "integrity": "sha512-bWjQY5Xk3TcfVpeo8M5BhhSUEdPr2P19AWW13CHPu6sFZkckLWEcjQycnBsVD6RBmxGXecJ1YNui8dq6soHoYQ==", + "dev": true, + "requires": { + "event-loop-spinner": "^2.0.0" + } + }, + "@snyk/ruby-semver": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@snyk/ruby-semver/-/ruby-semver-2.2.0.tgz", + "integrity": "sha512-FqUayoVjcyCsQFYPm3DcaCKdFR4xmapUkCGY+bcNBs3jqCUw687PoP9CPQ1Jvtaw5YpfBNl/62jyntsWCeciuA==", + "dev": true, + "requires": { + "@snyk/lodash": "4.17.15-patch" + } + }, + "@snyk/snyk-cocoapods-plugin": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@snyk/snyk-cocoapods-plugin/-/snyk-cocoapods-plugin-2.3.0.tgz", + "integrity": "sha512-4V1xJMqsK6J3jHu9UufKySorzA8O1vNLRIK1JgJf5KcXQCP44SJI5dk9Xr9iFGXXtGo8iI9gmokQcHlGpkPSJg==", + "dev": true, + "requires": { + "@snyk/cli-interface": "1.5.0", + "@snyk/cocoapods-lockfile-parser": "3.4.0", + "@snyk/dep-graph": "^1.18.2", + "source-map-support": "^0.5.7", + "tslib": "^2.0.0" + }, + "dependencies": { + "@snyk/cli-interface": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@snyk/cli-interface/-/cli-interface-1.5.0.tgz", + "integrity": "sha512-+Qo+IO3YOXWgazlo+CKxOuWFLQQdaNCJ9cSfhFQd687/FuesaIxWdInaAdfpsLScq0c6M1ieZslXgiZELSzxbg==", + "dev": true, + "requires": { + "tslib": "^1.9.3" + }, + "dependencies": { + "tslib": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz", + "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==", + "dev": true + } + } + }, + "tslib": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.0.tgz", + "integrity": "sha512-lTqkx847PI7xEDYJntxZH89L2/aXInsyF2luSafe/+0fHOMjlBNXdH6th7f70qxLDhul7KZK0zC8V5ZIyHl0/g==", + "dev": true + } + } + }, + "@snyk/snyk-docker-pull": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@snyk/snyk-docker-pull/-/snyk-docker-pull-3.2.0.tgz", + "integrity": "sha512-uWKtjh29I/d0mfmfBN7w6RwwNBQxQVKrauF5ND/gqb0PVsKV22GIpkI+viWjI7KNKso6/B0tMmsv7TX2tsNcLQ==", + "dev": true, + "requires": { + "@snyk/docker-registry-v2-client": "^1.13.5", + "child-process": "^1.0.2", + "tar-stream": "^2.1.2", + "tmp": "^0.1.0" + }, + "dependencies": { + "bl": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.0.2.tgz", + "integrity": "sha512-j4OH8f6Qg2bGuWfRiltT2HYGx0e1QcBTrK9KAHNMwMZdQnDZFk0ZSYIpADjYCB3U12nicC5tVJwSIhwOWjb4RQ==", + "dev": true, + "requires": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + }, + "dependencies": { + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + } + } + }, + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "tar-stream": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.1.3.tgz", + "integrity": "sha512-Z9yri56Dih8IaK8gncVPx4Wqt86NDmQTSh49XLZgjWpGZL9GK9HKParS2scqHCC4w6X9Gh2jwaU45V47XTKwVA==", + "dev": true, + "requires": { + "bl": "^4.0.1", + "end-of-stream": "^1.4.1", + "fs-constants": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.1.1" + } + }, + "tmp": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.1.0.tgz", + "integrity": "sha512-J7Z2K08jbGcdA1kkQpJSqLF6T0tdQqpR2pnSUXsIchbPdTI9v3e85cLW0d6WDhwuAleOV71j2xWs8qMPfK7nKw==", + "dev": true, + "requires": { + "rimraf": "^2.6.3" + } + } + } + }, + "@solidity-parser/parser": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/@solidity-parser/parser/-/parser-0.6.2.tgz", + "integrity": "sha512-kUVUvrqttndeprLoXjI5arWHeiP3uh4XODAKbG+ZaWHCVQeelxCbnXBeWxZ2BPHdXgH0xR9dU1b916JhDhbgAA==", + "dev": true + }, + "@szmarczak/http-timer": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", + "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", + "dev": true, + "requires": { + "defer-to-connect": "^1.0.1" + } + }, + "@truffle/blockchain-utils": { + "version": "0.0.22", + "resolved": "https://registry.npmjs.org/@truffle/blockchain-utils/-/blockchain-utils-0.0.22.tgz", + "integrity": "sha512-YyIQPMjFn/Ch8gARX+m8NJAlQecPkFRjHv0oHpZi1LlNGZ52vEt21z0ZelAu5ti6nQJ2Us6mE4BNyywfrqgiAA==", + "dev": true, + "requires": { + "source-map-support": "^0.5.19" + } + }, + "@truffle/codec": { + "version": "0.5.9", + "resolved": "https://registry.npmjs.org/@truffle/codec/-/codec-0.5.9.tgz", + "integrity": "sha512-W9YTUYttpiL9w770Mu+viOK7dgUE1ClX6iFo5YdJMwBQg2jkX+pjXLcYLJtD6657GHlhVQEnZCHztFIzG9FiHw==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "bn.js": "^4.11.8", + "debug": "^4.1.0", + "lodash.clonedeep": "^4.5.0", + "lodash.escaperegexp": "^4.1.2", + "lodash.partition": "^4.6.0", + "lodash.sum": "^4.0.2", + "semver": "^6.3.0", + "source-map-support": "^0.5.19", + "utf8": "^3.0.0", + "web3-utils": "1.2.1" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "dev": true + }, + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, + "@truffle/contract": { + "version": "4.2.14", + "resolved": "https://registry.npmjs.org/@truffle/contract/-/contract-4.2.14.tgz", + "integrity": "sha512-LGkfFXIjTNUZuf59Kh1V8bYR7nIQXPTDqzv3ew3bkP15mQWbL0xp9fSjLE1ZrC8MXzmXYXPDGSzlHAv8Fjkaxg==", + "dev": true, + "requires": { + "@truffle/blockchain-utils": "^0.0.22", + "@truffle/contract-schema": "^3.2.3", + "@truffle/debug-utils": "^4.2.1", + "@truffle/error": "^0.0.8", + "@truffle/interface-adapter": "^0.4.13", + "bignumber.js": "^7.2.1", + "ethereum-ens": "^0.8.0", + "ethers": "^4.0.0-beta.1", + "source-map-support": "^0.5.19", + "web3": "1.2.1", + "web3-core-helpers": "1.2.1", + "web3-core-promievent": "1.2.1", + "web3-eth-abi": "1.2.1", + "web3-utils": "1.2.1" + }, + "dependencies": { + "@truffle/contract-schema": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/@truffle/contract-schema/-/contract-schema-3.2.3.tgz", + "integrity": "sha512-dnR5wtqCBKVfJDX5g+sCUiDF1WDucpxoWsr6ZOwq9JqgyS4Gz7iJi1wMegMmcDctOykoKjsju6iAOi+HObrkfg==", + "dev": true, + "requires": { + "ajv": "^6.10.0", + "crypto-js": "^3.1.9-1", + "debug": "^4.1.0" + } + }, + "@truffle/interface-adapter": { + "version": "0.4.13", + "resolved": "https://registry.npmjs.org/@truffle/interface-adapter/-/interface-adapter-0.4.13.tgz", + "integrity": "sha512-N4TDtTvDan8Zo1csU2Otk2t0O7nOi7UP4dCfpDB5WVnD/7B07iT2getU3iRmLm4ZgwUY8VxHgDptdP55ACWCRg==", + "dev": true, + "requires": { + "bn.js": "^4.11.8", + "ethers": "^4.0.32", + "source-map-support": "^0.5.19", + "web3": "1.2.1" + } + }, + "ajv": { + "version": "6.12.3", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.3.tgz", + "integrity": "sha512-4K0cK3L1hsqk9xIb2z9vs/XU+PGJZ9PNpJRDS9YLzmNdX6jmVPfamLvTJr0aDAusnHyCHO6MjzlkAsgtqp9teA==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "bignumber.js": { + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-7.2.1.tgz", + "integrity": "sha512-S4XzBk5sMB+Rcb/LNcpzXr57VRTxgAvaAEDAl1AwRx27j00hT84O6OkteE7u8UB3NuaaygCRrEpqox4uDOrbdQ==", + "dev": true + }, + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "dev": true + }, + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "p-cancelable": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.3.0.tgz", + "integrity": "sha512-RVbZPLso8+jFeq1MfNvgXtCRED2raz/dKpacfTNxsx6pLEpEomM7gah6VeHSYV3+vo0OAi4MkArtQcWWXuQoyw==", + "dev": true + }, + "prepend-http": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", + "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=", + "dev": true + }, + "semver": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.2.0.tgz", + "integrity": "sha512-jdFC1VdUGT/2Scgbimf7FSx9iJLXoqfglSF+gJeuNWVpiE37OIbc1jywR/GJyFdz3mnkz2/id0L0J/cr0izR5A==", + "dev": true + }, + "swarm-js": { + "version": "0.1.39", + "resolved": "https://registry.npmjs.org/swarm-js/-/swarm-js-0.1.39.tgz", + "integrity": "sha512-QLMqL2rzF6n5s50BptyD6Oi0R1aWlJC5Y17SRIVXRj6OR1DRIPM7nepvrxxkjA1zNzFz6mUOMjfeqeDaWB7OOg==", + "dev": true, + "requires": { + "bluebird": "^3.5.0", + "buffer": "^5.0.5", + "decompress": "^4.0.0", + "eth-lib": "^0.1.26", + "fs-extra": "^4.0.2", + "got": "^7.1.0", + "mime-types": "^2.1.16", + "mkdirp-promise": "^5.0.1", + "mock-fs": "^4.1.0", + "setimmediate": "^1.0.5", + "tar": "^4.0.2", + "xhr-request-promise": "^0.1.2" + }, + "dependencies": { + "got": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/got/-/got-7.1.0.tgz", + "integrity": "sha512-Y5WMo7xKKq1muPsxD+KmrR8DH5auG7fBdDVueZwETwV6VytKyU9OX/ddpq2/1hp1vIPvVb4T81dKQz3BivkNLw==", + "dev": true, + "requires": { + "decompress-response": "^3.2.0", + "duplexer3": "^0.1.4", + "get-stream": "^3.0.0", + "is-plain-obj": "^1.1.0", + "is-retry-allowed": "^1.0.0", + "is-stream": "^1.0.0", + "isurl": "^1.0.0-alpha5", + "lowercase-keys": "^1.0.0", + "p-cancelable": "^0.3.0", + "p-timeout": "^1.1.1", + "safe-buffer": "^5.0.1", + "timed-out": "^4.0.0", + "url-parse-lax": "^1.0.0", + "url-to-options": "^1.0.1" + } + } + } + }, + "underscore": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.9.1.tgz", + "integrity": "sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg==", + "dev": true + }, + "url-parse-lax": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", + "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", + "dev": true, + "requires": { + "prepend-http": "^1.0.1" + } + }, + "web3": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/web3/-/web3-1.2.1.tgz", + "integrity": "sha512-nNMzeCK0agb5i/oTWNdQ1aGtwYfXzHottFP2Dz0oGIzavPMGSKyVlr8ibVb1yK5sJBjrWVnTdGaOC2zKDFuFRw==", + "dev": true, + "requires": { + "web3-bzz": "1.2.1", + "web3-core": "1.2.1", + "web3-eth": "1.2.1", + "web3-eth-personal": "1.2.1", + "web3-net": "1.2.1", + "web3-shh": "1.2.1", + "web3-utils": "1.2.1" + } + }, + "web3-bzz": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/web3-bzz/-/web3-bzz-1.2.1.tgz", + "integrity": "sha512-LdOO44TuYbGIPfL4ilkuS89GQovxUpmLz6C1UC7VYVVRILeZS740FVB3j9V4P4FHUk1RenaDfKhcntqgVCHtjw==", + "dev": true, + "requires": { + "got": "9.6.0", + "swarm-js": "0.1.39", + "underscore": "1.9.1" + } + }, + "web3-core": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-1.2.1.tgz", + "integrity": "sha512-5ODwIqgl8oIg/0+Ai4jsLxkKFWJYE0uLuE1yUKHNVCL4zL6n3rFjRMpKPokd6id6nJCNgeA64KdWQ4XfpnjdMg==", + "dev": true, + "requires": { + "web3-core-helpers": "1.2.1", + "web3-core-method": "1.2.1", + "web3-core-requestmanager": "1.2.1", + "web3-utils": "1.2.1" + } + }, + "web3-core-method": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.2.1.tgz", + "integrity": "sha512-Ghg2WS23qi6Xj8Od3VCzaImLHseEA7/usvnOItluiIc5cKs00WYWsNy2YRStzU9a2+z8lwQywPYp0nTzR/QXdQ==", + "dev": true, + "requires": { + "underscore": "1.9.1", + "web3-core-helpers": "1.2.1", + "web3-core-promievent": "1.2.1", + "web3-core-subscriptions": "1.2.1", + "web3-utils": "1.2.1" + } + }, + "web3-core-requestmanager": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.2.1.tgz", + "integrity": "sha512-xfknTC69RfYmLKC+83Jz73IC3/sS2ZLhGtX33D4Q5nQ8yc39ElyAolxr9sJQS8kihOcM6u4J+8gyGMqsLcpIBg==", + "dev": true, + "requires": { + "underscore": "1.9.1", + "web3-core-helpers": "1.2.1", + "web3-providers-http": "1.2.1", + "web3-providers-ipc": "1.2.1", + "web3-providers-ws": "1.2.1" + } + }, + "web3-core-subscriptions": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.2.1.tgz", + "integrity": "sha512-nmOwe3NsB8V8UFsY1r+sW6KjdOS68h8nuh7NzlWxBQT/19QSUGiERRTaZXWu5BYvo1EoZRMxCKyCQpSSXLc08g==", + "dev": true, + "requires": { + "eventemitter3": "3.1.2", + "underscore": "1.9.1", + "web3-core-helpers": "1.2.1" + } + }, + "web3-eth": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/web3-eth/-/web3-eth-1.2.1.tgz", + "integrity": "sha512-/2xly4Yry5FW1i+uygPjhfvgUP/MS/Dk+PDqmzp5M88tS86A+j8BzKc23GrlA8sgGs0645cpZK/999LpEF5UdA==", + "dev": true, + "requires": { + "underscore": "1.9.1", + "web3-core": "1.2.1", + "web3-core-helpers": "1.2.1", + "web3-core-method": "1.2.1", + "web3-core-subscriptions": "1.2.1", + "web3-eth-abi": "1.2.1", + "web3-eth-accounts": "1.2.1", + "web3-eth-contract": "1.2.1", + "web3-eth-ens": "1.2.1", + "web3-eth-iban": "1.2.1", + "web3-eth-personal": "1.2.1", + "web3-net": "1.2.1", + "web3-utils": "1.2.1" + } + }, + "web3-eth-accounts": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.2.1.tgz", + "integrity": "sha512-26I4qq42STQ8IeKUyur3MdQ1NzrzCqPsmzqpux0j6X/XBD7EjZ+Cs0lhGNkSKH5dI3V8CJasnQ5T1mNKeWB7nQ==", + "dev": true, + "requires": { + "any-promise": "1.3.0", + "crypto-browserify": "3.12.0", + "eth-lib": "0.2.7", + "scryptsy": "2.1.0", + "semver": "6.2.0", + "underscore": "1.9.1", + "uuid": "3.3.2", + "web3-core": "1.2.1", + "web3-core-helpers": "1.2.1", + "web3-core-method": "1.2.1", + "web3-utils": "1.2.1" + }, + "dependencies": { + "eth-lib": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.7.tgz", + "integrity": "sha1-L5Pxex4jrsN1nNSj/iDBKGo/wco=", + "dev": true, + "requires": { + "bn.js": "^4.11.6", + "elliptic": "^6.4.0", + "xhr-request-promise": "^0.1.2" + } + } + } + }, + "web3-eth-contract": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.2.1.tgz", + "integrity": "sha512-kYFESbQ3boC9bl2rYVghj7O8UKMiuKaiMkxvRH5cEDHil8V7MGEGZNH0slSdoyeftZVlaWSMqkRP/chfnKND0g==", + "dev": true, + "requires": { + "underscore": "1.9.1", + "web3-core": "1.2.1", + "web3-core-helpers": "1.2.1", + "web3-core-method": "1.2.1", + "web3-core-promievent": "1.2.1", + "web3-core-subscriptions": "1.2.1", + "web3-eth-abi": "1.2.1", + "web3-utils": "1.2.1" + } + }, + "web3-eth-ens": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/web3-eth-ens/-/web3-eth-ens-1.2.1.tgz", + "integrity": "sha512-lhP1kFhqZr2nnbu3CGIFFrAnNxk2veXpOXBY48Tub37RtobDyHijHgrj+xTh+mFiPokyrapVjpFsbGa+Xzye4Q==", + "dev": true, + "requires": { + "eth-ens-namehash": "2.0.8", + "underscore": "1.9.1", + "web3-core": "1.2.1", + "web3-core-helpers": "1.2.1", + "web3-core-promievent": "1.2.1", + "web3-eth-abi": "1.2.1", + "web3-eth-contract": "1.2.1", + "web3-utils": "1.2.1" + } + }, + "web3-eth-personal": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.2.1.tgz", + "integrity": "sha512-RNDVSiaSoY4aIp8+Hc7z+X72H7lMb3fmAChuSBADoEc7DsJrY/d0R5qQDK9g9t2BO8oxgLrLNyBP/9ub2Hc6Bg==", + "dev": true, + "requires": { + "web3-core": "1.2.1", + "web3-core-helpers": "1.2.1", + "web3-core-method": "1.2.1", + "web3-net": "1.2.1", + "web3-utils": "1.2.1" + } + }, + "web3-net": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/web3-net/-/web3-net-1.2.1.tgz", + "integrity": "sha512-Yt1Bs7WgnLESPe0rri/ZoPWzSy55ovioaP35w1KZydrNtQ5Yq4WcrAdhBzcOW7vAkIwrsLQsvA+hrOCy7mNauw==", + "dev": true, + "requires": { + "web3-core": "1.2.1", + "web3-core-method": "1.2.1", + "web3-utils": "1.2.1" + } + }, + "web3-providers-http": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.2.1.tgz", + "integrity": "sha512-BDtVUVolT9b3CAzeGVA/np1hhn7RPUZ6YYGB/sYky+GjeO311Yoq8SRDUSezU92x8yImSC2B+SMReGhd1zL+bQ==", + "dev": true, + "requires": { + "web3-core-helpers": "1.2.1", + "xhr2-cookies": "1.1.0" + } + }, + "web3-providers-ipc": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.2.1.tgz", + "integrity": "sha512-oPEuOCwxVx8L4CPD0TUdnlOUZwGBSRKScCz/Ws2YHdr9Ium+whm+0NLmOZjkjQp5wovQbyBzNa6zJz1noFRvFA==", + "dev": true, + "requires": { + "oboe": "2.1.4", + "underscore": "1.9.1", + "web3-core-helpers": "1.2.1" + } + }, + "web3-providers-ws": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.2.1.tgz", + "integrity": "sha512-oqsQXzu+ejJACVHy864WwIyw+oB21nw/pI65/sD95Zi98+/HQzFfNcIFneF1NC4bVF3VNX4YHTNq2I2o97LAiA==", + "dev": true, + "requires": { + "underscore": "1.9.1", + "web3-core-helpers": "1.2.1", + "websocket": "github:web3-js/WebSocket-Node#polyfill/globalThis" + } + }, + "web3-shh": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/web3-shh/-/web3-shh-1.2.1.tgz", + "integrity": "sha512-/3Cl04nza5kuFn25bV3FJWa0s3Vafr5BlT933h26xovQ6HIIz61LmvNQlvX1AhFL+SNJOTcQmK1SM59vcyC8bA==", + "dev": true, + "requires": { + "web3-core": "1.2.1", + "web3-core-method": "1.2.1", + "web3-core-subscriptions": "1.2.1", + "web3-net": "1.2.1" + } + }, + "websocket": { + "version": "github:web3-js/WebSocket-Node#ef5ea2f41daf4a2113b80c9223df884b4d56c400", + "from": "github:web3-js/WebSocket-Node#polyfill/globalThis", + "dev": true, + "requires": { + "debug": "^2.2.0", + "es5-ext": "^0.10.50", + "nan": "^2.14.0", + "typedarray-to-buffer": "^3.1.5", + "yaeti": "^0.0.6" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + } + } + }, + "@truffle/debug-utils": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@truffle/debug-utils/-/debug-utils-4.2.1.tgz", + "integrity": "sha512-OKy9dzCbbx0G1t7xfYyi2VvP+kM6gnJRPt8cjphio2vdZGuy3sB3PjL+8ILsHWyOeFluNJp+rFdAQWjjspEb9A==", + "dev": true, + "requires": { + "@truffle/codec": "^0.5.9", + "@trufflesuite/chromafi": "^2.1.2", + "chalk": "^2.4.2", + "debug": "^4.1.0", + "highlight.js": "^9.15.8", + "highlightjs-solidity": "^1.0.17", + "node-dir": "0.1.17" + }, + "dependencies": { + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, + "@truffle/error": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/@truffle/error/-/error-0.0.8.tgz", + "integrity": "sha512-x55rtRuNfRO1azmZ30iR0pf0OJ6flQqbax1hJz+Avk1K5fdmOv5cr22s9qFnwTWnS6Bw0jvJEoR0ITsM7cPKtQ==", + "dev": true + }, + "@truffle/hdwallet-provider": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@truffle/hdwallet-provider/-/hdwallet-provider-1.2.6.tgz", + "integrity": "sha512-g4n1ETH2y7KlqQYq0PMjuHaLxggU96RSj1p3i6dGCAgONyPyA+TD1wyot8M2dXp+RG/VVzZoVTuyFGyBs5EhXw==", + "requires": { + "@trufflesuite/web3-provider-engine": "15.0.13-1", + "any-promise": "^1.3.0", + "bindings": "^1.5.0", + "ethereum-cryptography": "^0.1.3", + "ethereum-protocol": "^1.0.1", + "ethereumjs-tx": "^1.0.0", + "ethereumjs-util": "^6.1.0", + "ethereumjs-wallet": "^1.0.1" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + }, + "elliptic": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", + "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", + "requires": { + "bn.js": "^4.11.9", + "brorand": "^1.1.0", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "ethereum-common": { + "version": "0.0.18", + "resolved": "https://registry.npmjs.org/ethereum-common/-/ethereum-common-0.0.18.tgz", + "integrity": "sha1-L9w1dvIykDNYl26znaeDIT/5Uj8=" + }, + "ethereumjs-tx": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-1.3.7.tgz", + "integrity": "sha512-wvLMxzt1RPhAQ9Yi3/HKZTn0FZYpnsmQdbKYfUUpi4j1SEIcbkd9tndVjcPrufY3V7j2IebOpC00Zp2P/Ay2kA==", + "requires": { + "ethereum-common": "^0.0.18", + "ethereumjs-util": "^5.0.0" + }, + "dependencies": { + "ethereumjs-util": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", + "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", + "requires": { + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "^0.1.3", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1" + } + } + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + } + } + }, + "@truffle/provider": { + "version": "0.1.19", + "resolved": "https://registry.npmjs.org/@truffle/provider/-/provider-0.1.19.tgz", + "integrity": "sha512-ke8iQmzW4Y99+8iff8xQcc+mCNU4AkwtaZ/iSpmVD8qpLytw8/DSNCm0RiEz9/+I93Q1zqI4Jnij/rXnkS2Njw==", + "dev": true, + "requires": { + "@truffle/error": "^0.0.7", + "@truffle/interface-adapter": "^0.3.0", + "web3": "1.2.1" + }, + "dependencies": { + "@truffle/error": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/@truffle/error/-/error-0.0.7.tgz", + "integrity": "sha512-UIfVKsXSXocKnn5+RNklUXNoGd/JVj7V8KmC48TQzmjU33HQI86PX0JDS7SpHMHasI3w9X//1q7Lu7nZtj3Zzg==", + "dev": true + }, + "@truffle/interface-adapter": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@truffle/interface-adapter/-/interface-adapter-0.3.3.tgz", + "integrity": "sha512-l3I4WFTfnBSIfG96IOBRtAIE6AHDAxcOUJE7W5zh9hocQwzQlGWc2yEyyTcLa0656TTM8RxaZZ2S/KdHHMvCaw==", + "dev": true, + "requires": { + "bn.js": "^4.11.8", + "ethers": "^4.0.32", + "lodash": "^4.17.13", + "web3": "1.2.2" + }, + "dependencies": { + "web3": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/web3/-/web3-1.2.2.tgz", + "integrity": "sha512-/ChbmB6qZpfGx6eNpczt5YSUBHEA5V2+iUCbn85EVb3Zv6FVxrOo5Tv7Lw0gE2tW7EEjASbCyp3mZeiZaCCngg==", + "dev": true, + "requires": { + "@types/node": "^12.6.1", + "web3-bzz": "1.2.2", + "web3-core": "1.2.2", + "web3-eth": "1.2.2", + "web3-eth-personal": "1.2.2", + "web3-net": "1.2.2", + "web3-shh": "1.2.2", + "web3-utils": "1.2.2" + } + } + } + }, + "@types/node": { + "version": "12.12.47", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.47.tgz", + "integrity": "sha512-yzBInQFhdY8kaZmqoL2+3U5dSTMrKaYcb561VU+lDzAYvqt+2lojvBEy+hmpSNuXnPTx7m9+04CzWYOUqWME2A==", + "dev": true + }, + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "dev": true + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "hash.js": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz", + "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.0" + } + }, + "js-sha3": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.7.tgz", + "integrity": "sha1-DU/9gALVMzqrr0oj7tL2N0yfKOc=", + "dev": true + }, + "lodash": { + "version": "4.17.19", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz", + "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==", + "dev": true + }, + "p-cancelable": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.3.0.tgz", + "integrity": "sha512-RVbZPLso8+jFeq1MfNvgXtCRED2raz/dKpacfTNxsx6pLEpEomM7gah6VeHSYV3+vo0OAi4MkArtQcWWXuQoyw==", + "dev": true + }, + "prepend-http": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", + "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=", + "dev": true + }, + "semver": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.2.0.tgz", + "integrity": "sha512-jdFC1VdUGT/2Scgbimf7FSx9iJLXoqfglSF+gJeuNWVpiE37OIbc1jywR/GJyFdz3mnkz2/id0L0J/cr0izR5A==", + "dev": true + }, + "swarm-js": { + "version": "0.1.39", + "resolved": "https://registry.npmjs.org/swarm-js/-/swarm-js-0.1.39.tgz", + "integrity": "sha512-QLMqL2rzF6n5s50BptyD6Oi0R1aWlJC5Y17SRIVXRj6OR1DRIPM7nepvrxxkjA1zNzFz6mUOMjfeqeDaWB7OOg==", + "dev": true, + "requires": { + "bluebird": "^3.5.0", + "buffer": "^5.0.5", + "decompress": "^4.0.0", + "eth-lib": "^0.1.26", + "fs-extra": "^4.0.2", + "got": "^7.1.0", + "mime-types": "^2.1.16", + "mkdirp-promise": "^5.0.1", + "mock-fs": "^4.1.0", + "setimmediate": "^1.0.5", + "tar": "^4.0.2", + "xhr-request-promise": "^0.1.2" + }, + "dependencies": { + "got": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/got/-/got-7.1.0.tgz", + "integrity": "sha512-Y5WMo7xKKq1muPsxD+KmrR8DH5auG7fBdDVueZwETwV6VytKyU9OX/ddpq2/1hp1vIPvVb4T81dKQz3BivkNLw==", + "dev": true, + "requires": { + "decompress-response": "^3.2.0", + "duplexer3": "^0.1.4", + "get-stream": "^3.0.0", + "is-plain-obj": "^1.1.0", + "is-retry-allowed": "^1.0.0", + "is-stream": "^1.0.0", + "isurl": "^1.0.0-alpha5", + "lowercase-keys": "^1.0.0", + "p-cancelable": "^0.3.0", + "p-timeout": "^1.1.1", + "safe-buffer": "^5.0.1", + "timed-out": "^4.0.0", + "url-parse-lax": "^1.0.0", + "url-to-options": "^1.0.1" + } + } + } + }, + "underscore": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.9.1.tgz", + "integrity": "sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg==", + "dev": true + }, + "url-parse-lax": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", + "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", + "dev": true, + "requires": { + "prepend-http": "^1.0.1" + } + }, + "uuid": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.1.tgz", + "integrity": "sha1-wqMN7bPlNdcsz4LjQ5QaULqFM6w=", + "dev": true + }, + "web3": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/web3/-/web3-1.2.1.tgz", + "integrity": "sha512-nNMzeCK0agb5i/oTWNdQ1aGtwYfXzHottFP2Dz0oGIzavPMGSKyVlr8ibVb1yK5sJBjrWVnTdGaOC2zKDFuFRw==", + "dev": true, + "requires": { + "web3-bzz": "1.2.1", + "web3-core": "1.2.1", + "web3-eth": "1.2.1", + "web3-eth-personal": "1.2.1", + "web3-net": "1.2.1", + "web3-shh": "1.2.1", + "web3-utils": "1.2.1" + }, + "dependencies": { + "@types/node": { + "version": "10.17.26", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.26.tgz", + "integrity": "sha512-myMwkO2Cr82kirHY8uknNRHEVtn0wV3DTQfkrjx17jmkstDRZ24gNUdl8AHXVyVclTYI/bNjgTPTAWvWLqXqkw==", + "dev": true + }, + "bn.js": { + "version": "4.11.8", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", + "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==", + "dev": true + }, + "eth-lib": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.7.tgz", + "integrity": "sha1-L5Pxex4jrsN1nNSj/iDBKGo/wco=", + "dev": true, + "requires": { + "bn.js": "^4.11.6", + "elliptic": "^6.4.0", + "xhr-request-promise": "^0.1.2" + } + }, + "ethers": { + "version": "4.0.0-beta.3", + "resolved": "https://registry.npmjs.org/ethers/-/ethers-4.0.0-beta.3.tgz", + "integrity": "sha512-YYPogooSknTwvHg3+Mv71gM/3Wcrx+ZpCzarBj3mqs9njjRkrOo2/eufzhHloOCo3JSoNI4TQJJ6yU5ABm3Uog==", + "dev": true, + "requires": { + "@types/node": "^10.3.2", + "aes-js": "3.0.0", + "bn.js": "^4.4.0", + "elliptic": "6.3.3", + "hash.js": "1.1.3", + "js-sha3": "0.5.7", + "scrypt-js": "2.0.3", + "setimmediate": "1.0.4", + "uuid": "2.0.1", + "xmlhttprequest": "1.8.0" + }, + "dependencies": { + "elliptic": { + "version": "6.3.3", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.3.3.tgz", + "integrity": "sha1-VILZZG1UvLif19mU/J4ulWiHbj8=", + "dev": true, + "requires": { + "bn.js": "^4.4.0", + "brorand": "^1.0.1", + "hash.js": "^1.0.0", + "inherits": "^2.0.1" + } + } + } + }, + "setimmediate": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.4.tgz", + "integrity": "sha1-IOgd5iLUoCWIzgyNqJc8vPHTE48=", + "dev": true + }, + "web3-bzz": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/web3-bzz/-/web3-bzz-1.2.1.tgz", + "integrity": "sha512-LdOO44TuYbGIPfL4ilkuS89GQovxUpmLz6C1UC7VYVVRILeZS740FVB3j9V4P4FHUk1RenaDfKhcntqgVCHtjw==", + "dev": true, + "requires": { + "got": "9.6.0", + "swarm-js": "0.1.39", + "underscore": "1.9.1" + } + }, + "web3-core": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-1.2.1.tgz", + "integrity": "sha512-5ODwIqgl8oIg/0+Ai4jsLxkKFWJYE0uLuE1yUKHNVCL4zL6n3rFjRMpKPokd6id6nJCNgeA64KdWQ4XfpnjdMg==", + "dev": true, + "requires": { + "web3-core-helpers": "1.2.1", + "web3-core-method": "1.2.1", + "web3-core-requestmanager": "1.2.1", + "web3-utils": "1.2.1" + } + }, + "web3-core-helpers": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.2.1.tgz", + "integrity": "sha512-Gx3sTEajD5r96bJgfuW377PZVFmXIH4TdqDhgGwd2lZQCcMi+DA4TgxJNJGxn0R3aUVzyyE76j4LBrh412mXrw==", + "dev": true, + "requires": { + "underscore": "1.9.1", + "web3-eth-iban": "1.2.1", + "web3-utils": "1.2.1" + } + }, + "web3-core-method": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.2.1.tgz", + "integrity": "sha512-Ghg2WS23qi6Xj8Od3VCzaImLHseEA7/usvnOItluiIc5cKs00WYWsNy2YRStzU9a2+z8lwQywPYp0nTzR/QXdQ==", + "dev": true, + "requires": { + "underscore": "1.9.1", + "web3-core-helpers": "1.2.1", + "web3-core-promievent": "1.2.1", + "web3-core-subscriptions": "1.2.1", + "web3-utils": "1.2.1" + } + }, + "web3-core-promievent": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.2.1.tgz", + "integrity": "sha512-IVUqgpIKoeOYblwpex4Hye6npM0aMR+kU49VP06secPeN0rHMyhGF0ZGveWBrGvf8WDPI7jhqPBFIC6Jf3Q3zw==", + "dev": true, + "requires": { + "any-promise": "1.3.0", + "eventemitter3": "3.1.2" + } + }, + "web3-core-requestmanager": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.2.1.tgz", + "integrity": "sha512-xfknTC69RfYmLKC+83Jz73IC3/sS2ZLhGtX33D4Q5nQ8yc39ElyAolxr9sJQS8kihOcM6u4J+8gyGMqsLcpIBg==", + "dev": true, + "requires": { + "underscore": "1.9.1", + "web3-core-helpers": "1.2.1", + "web3-providers-http": "1.2.1", + "web3-providers-ipc": "1.2.1", + "web3-providers-ws": "1.2.1" + } + }, + "web3-core-subscriptions": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.2.1.tgz", + "integrity": "sha512-nmOwe3NsB8V8UFsY1r+sW6KjdOS68h8nuh7NzlWxBQT/19QSUGiERRTaZXWu5BYvo1EoZRMxCKyCQpSSXLc08g==", + "dev": true, + "requires": { + "eventemitter3": "3.1.2", + "underscore": "1.9.1", + "web3-core-helpers": "1.2.1" + } + }, + "web3-eth": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/web3-eth/-/web3-eth-1.2.1.tgz", + "integrity": "sha512-/2xly4Yry5FW1i+uygPjhfvgUP/MS/Dk+PDqmzp5M88tS86A+j8BzKc23GrlA8sgGs0645cpZK/999LpEF5UdA==", + "dev": true, + "requires": { + "underscore": "1.9.1", + "web3-core": "1.2.1", + "web3-core-helpers": "1.2.1", + "web3-core-method": "1.2.1", + "web3-core-subscriptions": "1.2.1", + "web3-eth-abi": "1.2.1", + "web3-eth-accounts": "1.2.1", + "web3-eth-contract": "1.2.1", + "web3-eth-ens": "1.2.1", + "web3-eth-iban": "1.2.1", + "web3-eth-personal": "1.2.1", + "web3-net": "1.2.1", + "web3-utils": "1.2.1" + } + }, + "web3-eth-abi": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.2.1.tgz", + "integrity": "sha512-jI/KhU2a/DQPZXHjo2GW0myEljzfiKOn+h1qxK1+Y9OQfTcBMxrQJyH5AP89O6l6NZ1QvNdq99ThAxBFoy5L+g==", + "dev": true, + "requires": { + "ethers": "4.0.0-beta.3", + "underscore": "1.9.1", + "web3-utils": "1.2.1" + } + }, + "web3-eth-accounts": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.2.1.tgz", + "integrity": "sha512-26I4qq42STQ8IeKUyur3MdQ1NzrzCqPsmzqpux0j6X/XBD7EjZ+Cs0lhGNkSKH5dI3V8CJasnQ5T1mNKeWB7nQ==", + "dev": true, + "requires": { + "any-promise": "1.3.0", + "crypto-browserify": "3.12.0", + "eth-lib": "0.2.7", + "scryptsy": "2.1.0", + "semver": "6.2.0", + "underscore": "1.9.1", + "uuid": "3.3.2", + "web3-core": "1.2.1", + "web3-core-helpers": "1.2.1", + "web3-core-method": "1.2.1", + "web3-utils": "1.2.1" + }, + "dependencies": { + "uuid": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", + "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", + "dev": true + } + } + }, + "web3-eth-contract": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.2.1.tgz", + "integrity": "sha512-kYFESbQ3boC9bl2rYVghj7O8UKMiuKaiMkxvRH5cEDHil8V7MGEGZNH0slSdoyeftZVlaWSMqkRP/chfnKND0g==", + "dev": true, + "requires": { + "underscore": "1.9.1", + "web3-core": "1.2.1", + "web3-core-helpers": "1.2.1", + "web3-core-method": "1.2.1", + "web3-core-promievent": "1.2.1", + "web3-core-subscriptions": "1.2.1", + "web3-eth-abi": "1.2.1", + "web3-utils": "1.2.1" + } + }, + "web3-eth-ens": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/web3-eth-ens/-/web3-eth-ens-1.2.1.tgz", + "integrity": "sha512-lhP1kFhqZr2nnbu3CGIFFrAnNxk2veXpOXBY48Tub37RtobDyHijHgrj+xTh+mFiPokyrapVjpFsbGa+Xzye4Q==", + "dev": true, + "requires": { + "eth-ens-namehash": "2.0.8", + "underscore": "1.9.1", + "web3-core": "1.2.1", + "web3-core-helpers": "1.2.1", + "web3-core-promievent": "1.2.1", + "web3-eth-abi": "1.2.1", + "web3-eth-contract": "1.2.1", + "web3-utils": "1.2.1" + } + }, + "web3-eth-iban": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.2.1.tgz", + "integrity": "sha512-9gkr4QPl1jCU+wkgmZ8EwODVO3ovVj6d6JKMos52ggdT2YCmlfvFVF6wlGLwi0VvNa/p+0BjJzaqxnnG/JewjQ==", + "dev": true, + "requires": { + "bn.js": "4.11.8", + "web3-utils": "1.2.1" + } + }, + "web3-eth-personal": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.2.1.tgz", + "integrity": "sha512-RNDVSiaSoY4aIp8+Hc7z+X72H7lMb3fmAChuSBADoEc7DsJrY/d0R5qQDK9g9t2BO8oxgLrLNyBP/9ub2Hc6Bg==", + "dev": true, + "requires": { + "web3-core": "1.2.1", + "web3-core-helpers": "1.2.1", + "web3-core-method": "1.2.1", + "web3-net": "1.2.1", + "web3-utils": "1.2.1" + } + }, + "web3-net": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/web3-net/-/web3-net-1.2.1.tgz", + "integrity": "sha512-Yt1Bs7WgnLESPe0rri/ZoPWzSy55ovioaP35w1KZydrNtQ5Yq4WcrAdhBzcOW7vAkIwrsLQsvA+hrOCy7mNauw==", + "dev": true, + "requires": { + "web3-core": "1.2.1", + "web3-core-method": "1.2.1", + "web3-utils": "1.2.1" + } + }, + "web3-providers-http": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.2.1.tgz", + "integrity": "sha512-BDtVUVolT9b3CAzeGVA/np1hhn7RPUZ6YYGB/sYky+GjeO311Yoq8SRDUSezU92x8yImSC2B+SMReGhd1zL+bQ==", + "dev": true, + "requires": { + "web3-core-helpers": "1.2.1", + "xhr2-cookies": "1.1.0" + } + }, + "web3-providers-ipc": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.2.1.tgz", + "integrity": "sha512-oPEuOCwxVx8L4CPD0TUdnlOUZwGBSRKScCz/Ws2YHdr9Ium+whm+0NLmOZjkjQp5wovQbyBzNa6zJz1noFRvFA==", + "dev": true, + "requires": { + "oboe": "2.1.4", + "underscore": "1.9.1", + "web3-core-helpers": "1.2.1" + } + }, + "web3-providers-ws": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.2.1.tgz", + "integrity": "sha512-oqsQXzu+ejJACVHy864WwIyw+oB21nw/pI65/sD95Zi98+/HQzFfNcIFneF1NC4bVF3VNX4YHTNq2I2o97LAiA==", + "dev": true, + "requires": { + "underscore": "1.9.1", + "web3-core-helpers": "1.2.1", + "websocket": "github:web3-js/WebSocket-Node#polyfill/globalThis" + } + }, + "web3-shh": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/web3-shh/-/web3-shh-1.2.1.tgz", + "integrity": "sha512-/3Cl04nza5kuFn25bV3FJWa0s3Vafr5BlT933h26xovQ6HIIz61LmvNQlvX1AhFL+SNJOTcQmK1SM59vcyC8bA==", + "dev": true, + "requires": { + "web3-core": "1.2.1", + "web3-core-method": "1.2.1", + "web3-core-subscriptions": "1.2.1", + "web3-net": "1.2.1" + } + }, + "web3-utils": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.2.1.tgz", + "integrity": "sha512-Mrcn3l58L+yCKz3zBryM6JZpNruWuT0OCbag8w+reeNROSGVlXzUQkU+gtAwc9JCZ7tKUyg67+2YUGqUjVcyBA==", + "dev": true, + "requires": { + "bn.js": "4.11.8", + "eth-lib": "0.2.7", + "ethjs-unit": "0.1.6", + "number-to-bn": "1.7.0", + "randomhex": "0.1.5", + "underscore": "1.9.1", + "utf8": "3.0.0" + } + } + } + }, + "web3-bzz": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/web3-bzz/-/web3-bzz-1.2.2.tgz", + "integrity": "sha512-b1O2ObsqUN1lJxmFSjvnEC4TsaCbmh7Owj3IAIWTKqL9qhVgx7Qsu5O9cD13pBiSPNZJ68uJPaKq380QB4NWeA==", + "dev": true, + "requires": { + "@types/node": "^10.12.18", + "got": "9.6.0", + "swarm-js": "0.1.39", + "underscore": "1.9.1" + }, + "dependencies": { + "@types/node": { + "version": "10.17.26", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.26.tgz", + "integrity": "sha512-myMwkO2Cr82kirHY8uknNRHEVtn0wV3DTQfkrjx17jmkstDRZ24gNUdl8AHXVyVclTYI/bNjgTPTAWvWLqXqkw==", + "dev": true + } + } + }, + "web3-core": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-1.2.2.tgz", + "integrity": "sha512-miHAX3qUgxV+KYfaOY93Hlc3kLW2j5fH8FJy6kSxAv+d4d5aH0wwrU2IIoJylQdT+FeenQ38sgsCnFu9iZ1hCQ==", + "dev": true, + "requires": { + "@types/bn.js": "^4.11.4", + "@types/node": "^12.6.1", + "web3-core-helpers": "1.2.2", + "web3-core-method": "1.2.2", + "web3-core-requestmanager": "1.2.2", + "web3-utils": "1.2.2" + } + }, + "web3-core-helpers": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.2.2.tgz", + "integrity": "sha512-HJrRsIGgZa1jGUIhvGz4S5Yh6wtOIo/TMIsSLe+Xay+KVnbseJpPprDI5W3s7H2ODhMQTbogmmUFquZweW2ImQ==", + "dev": true, + "requires": { + "underscore": "1.9.1", + "web3-eth-iban": "1.2.2", + "web3-utils": "1.2.2" + } + }, + "web3-core-method": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.2.2.tgz", + "integrity": "sha512-szR4fDSBxNHaF1DFqE+j6sFR/afv9Aa36OW93saHZnrh+iXSrYeUUDfugeNcRlugEKeUCkd4CZylfgbK2SKYJA==", + "dev": true, + "requires": { + "underscore": "1.9.1", + "web3-core-helpers": "1.2.2", + "web3-core-promievent": "1.2.2", + "web3-core-subscriptions": "1.2.2", + "web3-utils": "1.2.2" + } + }, + "web3-core-promievent": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.2.2.tgz", + "integrity": "sha512-tKvYeT8bkUfKABcQswK6/X79blKTKYGk949urZKcLvLDEaWrM3uuzDwdQT3BNKzQ3vIvTggFPX9BwYh0F1WwqQ==", + "dev": true, + "requires": { + "any-promise": "1.3.0", + "eventemitter3": "3.1.2" + } + }, + "web3-core-requestmanager": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.2.2.tgz", + "integrity": "sha512-a+gSbiBRHtHvkp78U2bsntMGYGF2eCb6219aMufuZWeAZGXJ63Wc2321PCbA8hF9cQrZI4EoZ4kVLRI4OF15Hw==", + "dev": true, + "requires": { + "underscore": "1.9.1", + "web3-core-helpers": "1.2.2", + "web3-providers-http": "1.2.2", + "web3-providers-ipc": "1.2.2", + "web3-providers-ws": "1.2.2" + } + }, + "web3-core-subscriptions": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.2.2.tgz", + "integrity": "sha512-QbTgigNuT4eicAWWr7ahVpJyM8GbICsR1Ys9mJqzBEwpqS+RXTRVSkwZ2IsxO+iqv6liMNwGregbJLq4urMFcQ==", + "dev": true, + "requires": { + "eventemitter3": "3.1.2", + "underscore": "1.9.1", + "web3-core-helpers": "1.2.2" + } + }, + "web3-eth": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/web3-eth/-/web3-eth-1.2.2.tgz", + "integrity": "sha512-UXpC74mBQvZzd4b+baD4Ocp7g+BlwxhBHumy9seyE/LMIcMlePXwCKzxve9yReNpjaU16Mmyya6ZYlyiKKV8UA==", + "dev": true, + "requires": { + "underscore": "1.9.1", + "web3-core": "1.2.2", + "web3-core-helpers": "1.2.2", + "web3-core-method": "1.2.2", + "web3-core-subscriptions": "1.2.2", + "web3-eth-abi": "1.2.2", + "web3-eth-accounts": "1.2.2", + "web3-eth-contract": "1.2.2", + "web3-eth-ens": "1.2.2", + "web3-eth-iban": "1.2.2", + "web3-eth-personal": "1.2.2", + "web3-net": "1.2.2", + "web3-utils": "1.2.2" + } + }, + "web3-eth-abi": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.2.2.tgz", + "integrity": "sha512-Yn/ZMgoOLxhTVxIYtPJ0eS6pnAnkTAaJgUJh1JhZS4ekzgswMfEYXOwpMaD5eiqPJLpuxmZFnXnBZlnQ1JMXsw==", + "dev": true, + "requires": { + "ethers": "4.0.0-beta.3", + "underscore": "1.9.1", + "web3-utils": "1.2.2" + }, + "dependencies": { + "@types/node": { + "version": "10.17.26", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.26.tgz", + "integrity": "sha512-myMwkO2Cr82kirHY8uknNRHEVtn0wV3DTQfkrjx17jmkstDRZ24gNUdl8AHXVyVclTYI/bNjgTPTAWvWLqXqkw==", + "dev": true + }, + "elliptic": { + "version": "6.3.3", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.3.3.tgz", + "integrity": "sha1-VILZZG1UvLif19mU/J4ulWiHbj8=", + "dev": true, + "requires": { + "bn.js": "^4.4.0", + "brorand": "^1.0.1", + "hash.js": "^1.0.0", + "inherits": "^2.0.1" + } + }, + "ethers": { + "version": "4.0.0-beta.3", + "resolved": "https://registry.npmjs.org/ethers/-/ethers-4.0.0-beta.3.tgz", + "integrity": "sha512-YYPogooSknTwvHg3+Mv71gM/3Wcrx+ZpCzarBj3mqs9njjRkrOo2/eufzhHloOCo3JSoNI4TQJJ6yU5ABm3Uog==", + "dev": true, + "requires": { + "@types/node": "^10.3.2", + "aes-js": "3.0.0", + "bn.js": "^4.4.0", + "elliptic": "6.3.3", + "hash.js": "1.1.3", + "js-sha3": "0.5.7", + "scrypt-js": "2.0.3", + "setimmediate": "1.0.4", + "uuid": "2.0.1", + "xmlhttprequest": "1.8.0" + } + }, + "setimmediate": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.4.tgz", + "integrity": "sha1-IOgd5iLUoCWIzgyNqJc8vPHTE48=", + "dev": true + } + } + }, + "web3-eth-accounts": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.2.2.tgz", + "integrity": "sha512-KzHOEyXOEZ13ZOkWN3skZKqSo5f4Z1ogPFNn9uZbKCz+kSp+gCAEKxyfbOsB/JMAp5h7o7pb6eYsPCUBJmFFiA==", + "dev": true, + "requires": { + "any-promise": "1.3.0", + "crypto-browserify": "3.12.0", + "eth-lib": "0.2.7", + "ethereumjs-common": "^1.3.2", + "ethereumjs-tx": "^2.1.1", + "scrypt-shim": "github:web3-js/scrypt-shim", + "underscore": "1.9.1", + "uuid": "3.3.2", + "web3-core": "1.2.2", + "web3-core-helpers": "1.2.2", + "web3-core-method": "1.2.2", + "web3-utils": "1.2.2" + }, + "dependencies": { + "eth-lib": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.7.tgz", + "integrity": "sha1-L5Pxex4jrsN1nNSj/iDBKGo/wco=", + "dev": true, + "requires": { + "bn.js": "^4.11.6", + "elliptic": "^6.4.0", + "xhr-request-promise": "^0.1.2" + } + }, + "uuid": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", + "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", + "dev": true + } + } + }, + "web3-eth-contract": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.2.2.tgz", + "integrity": "sha512-EKT2yVFws3FEdotDQoNsXTYL798+ogJqR2//CaGwx3p0/RvQIgfzEwp8nbgA6dMxCsn9KOQi7OtklzpnJMkjtA==", + "dev": true, + "requires": { + "@types/bn.js": "^4.11.4", + "underscore": "1.9.1", + "web3-core": "1.2.2", + "web3-core-helpers": "1.2.2", + "web3-core-method": "1.2.2", + "web3-core-promievent": "1.2.2", + "web3-core-subscriptions": "1.2.2", + "web3-eth-abi": "1.2.2", + "web3-utils": "1.2.2" + } + }, + "web3-eth-ens": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/web3-eth-ens/-/web3-eth-ens-1.2.2.tgz", + "integrity": "sha512-CFjkr2HnuyMoMFBoNUWojyguD4Ef+NkyovcnUc/iAb9GP4LHohKrODG4pl76R5u61TkJGobC2ij6TyibtsyVYg==", + "dev": true, + "requires": { + "eth-ens-namehash": "2.0.8", + "underscore": "1.9.1", + "web3-core": "1.2.2", + "web3-core-helpers": "1.2.2", + "web3-core-promievent": "1.2.2", + "web3-eth-abi": "1.2.2", + "web3-eth-contract": "1.2.2", + "web3-utils": "1.2.2" + } + }, + "web3-eth-iban": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.2.2.tgz", + "integrity": "sha512-gxKXBoUhaTFHr0vJB/5sd4i8ejF/7gIsbM/VvemHT3tF5smnmY6hcwSMmn7sl5Gs+83XVb/BngnnGkf+I/rsrQ==", + "dev": true, + "requires": { + "bn.js": "4.11.8", + "web3-utils": "1.2.2" + }, + "dependencies": { + "bn.js": { + "version": "4.11.8", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", + "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==", + "dev": true + } + } + }, + "web3-eth-personal": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.2.2.tgz", + "integrity": "sha512-4w+GLvTlFqW3+q4xDUXvCEMU7kRZ+xm/iJC8gm1Li1nXxwwFbs+Y+KBK6ZYtoN1qqAnHR+plYpIoVo27ixI5Rg==", + "dev": true, + "requires": { + "@types/node": "^12.6.1", + "web3-core": "1.2.2", + "web3-core-helpers": "1.2.2", + "web3-core-method": "1.2.2", + "web3-net": "1.2.2", + "web3-utils": "1.2.2" + } + }, + "web3-net": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/web3-net/-/web3-net-1.2.2.tgz", + "integrity": "sha512-K07j2DXq0x4UOJgae65rWZKraOznhk8v5EGSTdFqASTx7vWE/m+NqBijBYGEsQY1lSMlVaAY9UEQlcXK5HzXTw==", + "dev": true, + "requires": { + "web3-core": "1.2.2", + "web3-core-method": "1.2.2", + "web3-utils": "1.2.2" + } + }, + "web3-providers-http": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.2.2.tgz", + "integrity": "sha512-BNZ7Hguy3eBszsarH5gqr9SIZNvqk9eKwqwmGH1LQS1FL3NdoOn7tgPPdddrXec4fL94CwgNk4rCU+OjjZRNDg==", + "dev": true, + "requires": { + "web3-core-helpers": "1.2.2", + "xhr2-cookies": "1.1.0" + } + }, + "web3-providers-ipc": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.2.2.tgz", + "integrity": "sha512-t97w3zi5Kn/LEWGA6D9qxoO0LBOG+lK2FjlEdCwDQatffB/+vYrzZ/CLYVQSoyFZAlsDoBasVoYSWZK1n39aHA==", + "dev": true, + "requires": { + "oboe": "2.1.4", + "underscore": "1.9.1", + "web3-core-helpers": "1.2.2" + } + }, + "web3-providers-ws": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.2.2.tgz", + "integrity": "sha512-Wb1mrWTGMTXOpJkL0yGvL/WYLt8fUIXx8k/l52QB2IiKzvyd42dTWn4+j8IKXGSYYzOm7NMqv6nhA5VDk12VfA==", + "dev": true, + "requires": { + "underscore": "1.9.1", + "web3-core-helpers": "1.2.2", + "websocket": "github:web3-js/WebSocket-Node#polyfill/globalThis" + } + }, + "web3-shh": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/web3-shh/-/web3-shh-1.2.2.tgz", + "integrity": "sha512-og258NPhlBn8yYrDWjoWBBb6zo1OlBgoWGT+LL5/LPqRbjPe09hlOYHgscAAr9zZGtohTOty7RrxYw6Z6oDWCg==", + "dev": true, + "requires": { + "web3-core": "1.2.2", + "web3-core-method": "1.2.2", + "web3-core-subscriptions": "1.2.2", + "web3-net": "1.2.2" + } + }, + "web3-utils": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.2.2.tgz", + "integrity": "sha512-joF+s3243TY5cL7Z7y4h1JsJpUCf/kmFmj+eJar7Y2yNIGVcW961VyrAms75tjUysSuHaUQ3eQXjBEUJueT52A==", + "dev": true, + "requires": { + "bn.js": "4.11.8", + "eth-lib": "0.2.7", + "ethereum-bloom-filters": "^1.0.6", + "ethjs-unit": "0.1.6", + "number-to-bn": "1.7.0", + "randombytes": "^2.1.0", + "underscore": "1.9.1", + "utf8": "3.0.0" + }, + "dependencies": { + "bn.js": { + "version": "4.11.8", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", + "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==", + "dev": true + }, + "eth-lib": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.7.tgz", + "integrity": "sha1-L5Pxex4jrsN1nNSj/iDBKGo/wco=", + "dev": true, + "requires": { + "bn.js": "^4.11.6", + "elliptic": "^6.4.0", + "xhr-request-promise": "^0.1.2" + } + } + } + }, + "websocket": { + "version": "github:web3-js/WebSocket-Node#ef5ea2f41daf4a2113b80c9223df884b4d56c400", + "from": "github:web3-js/WebSocket-Node#polyfill/globalThis", + "dev": true, + "requires": { + "debug": "^2.2.0", + "es5-ext": "^0.10.50", + "nan": "^2.14.0", + "typedarray-to-buffer": "^3.1.5", + "yaeti": "^0.0.6" + } + } + } + }, + "@trufflesuite/chromafi": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@trufflesuite/chromafi/-/chromafi-2.1.2.tgz", + "integrity": "sha512-KcfjcH3B8+lHfSTfugFPBpMZmppLNCnM6/PP8ByrQLSACyjh9UOMUWHAW3FDHKEt1cOCzIFXrx2f4AFFrQFxSg==", + "dev": true, + "requires": { + "ansi-mark": "^1.0.0", + "ansi-regex": "^3.0.0", + "array-uniq": "^1.0.3", + "camelcase": "^4.1.0", + "chalk": "^2.3.2", + "cheerio": "^1.0.0-rc.2", + "detect-indent": "^5.0.0", + "he": "^1.1.1", + "highlight.js": "^9.12.0", + "husky": "^0.14.3", + "lodash.merge": "^4.6.2", + "min-indent": "^1.0.0", + "strip-ansi": "^4.0.0", + "strip-indent": "^2.0.0", + "super-split": "^1.1.0" + }, + "dependencies": { + "husky": { + "version": "0.14.3", + "resolved": "https://registry.npmjs.org/husky/-/husky-0.14.3.tgz", + "integrity": "sha512-e21wivqHpstpoiWA/Yi8eFti8E+sQDSS53cpJsPptPs295QTOQR0ZwnHo2TXy1XOpZFD9rPOd3NpmqTK6uMLJA==", + "dev": true, + "requires": { + "is-ci": "^1.0.10", + "normalize-path": "^1.0.0", + "strip-indent": "^2.0.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + } + } + }, + "@trufflesuite/eth-json-rpc-filters": { + "version": "4.1.2-1", + "resolved": "https://registry.npmjs.org/@trufflesuite/eth-json-rpc-filters/-/eth-json-rpc-filters-4.1.2-1.tgz", + "integrity": "sha512-/MChvC5dw2ck9NU1cZmdovCz2VKbOeIyR4tcxDvA5sT+NaL0rA2/R5U0yI7zsbo1zD+pgqav77rQHTzpUdDNJQ==", + "requires": { + "@trufflesuite/eth-json-rpc-middleware": "^4.4.2-0", + "await-semaphore": "^0.1.3", + "eth-query": "^2.1.2", + "json-rpc-engine": "^5.1.3", + "lodash.flatmap": "^4.5.0", + "safe-event-emitter": "^1.0.1" + } + }, + "@trufflesuite/eth-json-rpc-infura": { + "version": "4.0.3-0", + "resolved": "https://registry.npmjs.org/@trufflesuite/eth-json-rpc-infura/-/eth-json-rpc-infura-4.0.3-0.tgz", + "integrity": "sha512-xaUanOmo0YLqRsL0SfXpFienhdw5bpQ1WEXxMTRi57az4lwpZBv4tFUDvcerdwJrxX9wQqNmgUgd1BrR01dumw==", + "requires": { + "@trufflesuite/eth-json-rpc-middleware": "^4.4.2-1", + "cross-fetch": "^2.1.1", + "eth-json-rpc-errors": "^1.0.1", + "json-rpc-engine": "^5.1.3" + }, + "dependencies": { + "eth-json-rpc-errors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/eth-json-rpc-errors/-/eth-json-rpc-errors-1.1.1.tgz", + "integrity": "sha512-WT5shJ5KfNqHi9jOZD+ID8I1kuYWNrigtZat7GOQkvwo99f8SzAVaEcWhJUv656WiZOAg3P1RiJQANtUmDmbIg==", + "requires": { + "fast-safe-stringify": "^2.0.6" + } + } + } + }, + "@trufflesuite/eth-json-rpc-middleware": { + "version": "4.4.2-1", + "resolved": "https://registry.npmjs.org/@trufflesuite/eth-json-rpc-middleware/-/eth-json-rpc-middleware-4.4.2-1.tgz", + "integrity": "sha512-iEy9H8ja7/8aYES5HfrepGBKU9n/Y4OabBJEklVd/zIBlhCCBAWBqkIZgXt11nBXO/rYAeKwYuE3puH3ByYnLA==", + "requires": { + "@trufflesuite/eth-sig-util": "^1.4.2", + "btoa": "^1.2.1", + "clone": "^2.1.1", + "eth-json-rpc-errors": "^1.0.1", + "eth-query": "^2.1.2", + "ethereumjs-block": "^1.6.0", + "ethereumjs-tx": "^1.3.7", + "ethereumjs-util": "^5.1.2", + "ethereumjs-vm": "^2.6.0", + "fetch-ponyfill": "^4.0.0", + "json-rpc-engine": "^5.1.3", + "json-stable-stringify": "^1.0.1", + "pify": "^3.0.0", + "safe-event-emitter": "^1.0.1" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + }, + "elliptic": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", + "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", + "requires": { + "bn.js": "^4.11.9", + "brorand": "^1.1.0", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "eth-json-rpc-errors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/eth-json-rpc-errors/-/eth-json-rpc-errors-1.1.1.tgz", + "integrity": "sha512-WT5shJ5KfNqHi9jOZD+ID8I1kuYWNrigtZat7GOQkvwo99f8SzAVaEcWhJUv656WiZOAg3P1RiJQANtUmDmbIg==", + "requires": { + "fast-safe-stringify": "^2.0.6" + } + }, + "ethereum-common": { + "version": "0.0.18", + "resolved": "https://registry.npmjs.org/ethereum-common/-/ethereum-common-0.0.18.tgz", + "integrity": "sha1-L9w1dvIykDNYl26znaeDIT/5Uj8=" + }, + "ethereumjs-tx": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-1.3.7.tgz", + "integrity": "sha512-wvLMxzt1RPhAQ9Yi3/HKZTn0FZYpnsmQdbKYfUUpi4j1SEIcbkd9tndVjcPrufY3V7j2IebOpC00Zp2P/Ay2kA==", + "requires": { + "ethereum-common": "^0.0.18", + "ethereumjs-util": "^5.0.0" + } + }, + "ethereumjs-util": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", + "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", + "requires": { + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "^0.1.3", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" + } + } + }, + "@trufflesuite/eth-sig-util": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/@trufflesuite/eth-sig-util/-/eth-sig-util-1.4.2.tgz", + "integrity": "sha512-+GyfN6b0LNW77hbQlH3ufZ/1eCON7mMrGym6tdYf7xiNw9Vv3jBO72bmmos1EId2NgBvPMhmYYm6DSLQFTmzrA==", + "requires": { + "ethereumjs-abi": "^0.6.8", + "ethereumjs-util": "^5.1.1" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + }, + "elliptic": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", + "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", + "requires": { + "bn.js": "^4.11.9", + "brorand": "^1.1.0", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "ethereumjs-util": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", + "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", + "requires": { + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "^0.1.3", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + } + } + }, + "@trufflesuite/web3-provider-engine": { + "version": "15.0.13-1", + "resolved": "https://registry.npmjs.org/@trufflesuite/web3-provider-engine/-/web3-provider-engine-15.0.13-1.tgz", + "integrity": "sha512-6u3x/iIN5fyj8pib5QTUDmIOUiwAGhaqdSTXdqCu6v9zo2BEwdCqgEJd1uXDh3DBmPRDfiZ/ge8oUPy7LerpHg==", + "requires": { + "@trufflesuite/eth-json-rpc-filters": "^4.1.2-1", + "@trufflesuite/eth-json-rpc-infura": "^4.0.3-0", + "@trufflesuite/eth-json-rpc-middleware": "^4.4.2-1", + "@trufflesuite/eth-sig-util": "^1.4.2", + "async": "^2.5.0", + "backoff": "^2.5.0", + "clone": "^2.0.0", + "cross-fetch": "^2.1.0", + "eth-block-tracker": "^4.4.2", + "eth-json-rpc-errors": "^2.0.2", + "ethereumjs-block": "^1.2.2", + "ethereumjs-tx": "^1.2.0", + "ethereumjs-util": "^5.1.5", + "ethereumjs-vm": "^2.3.4", + "json-stable-stringify": "^1.0.1", + "promise-to-callback": "^1.0.0", + "readable-stream": "^2.2.9", + "request": "^2.85.0", + "semaphore": "^1.0.3", + "ws": "^5.1.1", + "xhr": "^2.2.0", + "xtend": "^4.0.1" + }, + "dependencies": { + "async": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", + "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", + "requires": { + "lodash": "^4.17.14" + } + }, + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + }, + "elliptic": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", + "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", + "requires": { + "bn.js": "^4.11.9", + "brorand": "^1.1.0", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "ethereum-common": { + "version": "0.0.18", + "resolved": "https://registry.npmjs.org/ethereum-common/-/ethereum-common-0.0.18.tgz", + "integrity": "sha1-L9w1dvIykDNYl26znaeDIT/5Uj8=" + }, + "ethereumjs-tx": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-1.3.7.tgz", + "integrity": "sha512-wvLMxzt1RPhAQ9Yi3/HKZTn0FZYpnsmQdbKYfUUpi4j1SEIcbkd9tndVjcPrufY3V7j2IebOpC00Zp2P/Ay2kA==", + "requires": { + "ethereum-common": "^0.0.18", + "ethereumjs-util": "^5.0.0" + } + }, + "ethereumjs-util": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", + "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", + "requires": { + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "^0.1.3", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "ws": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/ws/-/ws-5.2.2.tgz", + "integrity": "sha512-jaHFD6PFv6UgoIVda6qZllptQsMlDEJkTQcybzzXDYM1XO9Y8em691FGMPmM46WGyLU4z9KMgQN+qrux/nhlHA==", + "requires": { + "async-limiter": "~1.0.0" + } + } + } + }, + "@types/abstract-leveldown": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@types/abstract-leveldown/-/abstract-leveldown-5.0.1.tgz", + "integrity": "sha512-wYxU3kp5zItbxKmeRYCEplS2MW7DzyBnxPGj+GJVHZEUZiK/nn5Ei1sUFgURDh+X051+zsGe28iud3oHjrYWQQ==", + "dev": true + }, + "@types/bignumber.js": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@types/bignumber.js/-/bignumber.js-5.0.0.tgz", + "integrity": "sha512-0DH7aPGCClywOFaxxjE6UwpN2kQYe9LwuDQMv+zYA97j5GkOMo8e66LYT+a8JYU7jfmUFRZLa9KycxHDsKXJCA==", + "dev": true, + "requires": { + "bignumber.js": "*" + } + }, + "@types/bn.js": { + "version": "4.11.5", + "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.5.tgz", + "integrity": "sha512-AEAZcIZga0JgVMHNtl1CprA/hXX7/wPt79AgR4XqaDt7jyj3QWYw6LPoOiznPtugDmlubUnAahMs2PFxGcQrng==", + "requires": { + "@types/node": "*" + } + }, + "@types/cacheable-request": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.1.tgz", "integrity": "sha512-ykFq2zmBGOCbpIXtoVbz4SKY5QriWPh3AjyU4G74RYbtt5yOc5OfaY75ftjg7mikMOla1CTGpX3lLbuJh8DTrQ==", @@ -3546,6 +7212,12 @@ "@types/responselike": "*" } }, + "@types/chai": { + "version": "4.2.19", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.2.19.tgz", + "integrity": "sha512-jRJgpRBuY+7izT7/WNXP/LsMO9YonsstuL+xuvycDyESpoDoIAsMd7suwpB4h9oEWB+ZlPTqJJ8EHomzNhwTPQ==", + "dev": true + }, "@types/color-name": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", @@ -3607,6 +7279,22 @@ "@types/node": "*" } }, + "@types/levelup": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/@types/levelup/-/levelup-4.3.1.tgz", + "integrity": "sha512-n//PeTpbHLjMLTIgW5B/g06W/6iuTBHuvUka2nFL9APMSVMNe2r4enADfu3CIE9IyV9E+uquf9OEQQqrDeg24A==", + "dev": true, + "requires": { + "@types/abstract-leveldown": "*", + "@types/node": "*" + } + }, + "@types/lru-cache": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@types/lru-cache/-/lru-cache-5.1.0.tgz", + "integrity": "sha512-RaE0B+14ToE4l6UqdarKPnXwVDuigfFv+5j9Dze/Nqr23yyuqdNvzcZi3xB+3Agvi5R4EOgAksfv3lXX4vBt9w==", + "dev": true + }, "@types/minimatch": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", @@ -3632,6 +7320,12 @@ "@types/node": "*" } }, + "@types/qs": { + "version": "6.9.6", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.6.tgz", + "integrity": "sha512-0/HnwIfW4ki2D8L8c9GVcG5I72s9jP5GSLVF0VIXDW00kmIpA6O33G7a8n59Tmh7Nz0WUC3rSb7PTY/sdW2JzA==", + "dev": true + }, "@types/responselike": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.0.tgz", @@ -3664,6 +7358,48 @@ "@types/node": "*" } }, + "@vue/component-compiler-utils": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/@vue/component-compiler-utils/-/component-compiler-utils-3.2.2.tgz", + "integrity": "sha512-rAYMLmgMuqJFWAOb3Awjqqv5X3Q3hVr4jH/kgrFJpiU0j3a90tnNBplqbj+snzrgZhC9W128z+dtgMifOiMfJg==", + "dev": true, + "requires": { + "consolidate": "^0.15.1", + "hash-sum": "^1.0.2", + "lru-cache": "^4.1.2", + "merge-source-map": "^1.1.0", + "postcss": "^7.0.36", + "postcss-selector-parser": "^6.0.2", + "prettier": "^1.18.2", + "source-map": "~0.6.1", + "vue-template-es2015-compiler": "^1.9.0" + }, + "dependencies": { + "lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "dev": true, + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "prettier": { + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.19.1.tgz", + "integrity": "sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew==", + "dev": true, + "optional": true + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "dev": true + } + } + }, "@web3-js/scrypt-shim": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/@web3-js/scrypt-shim/-/scrypt-shim-0.1.0.tgz", @@ -3698,6 +7434,193 @@ } } }, + "@webassemblyjs/ast": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz", + "integrity": "sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==", + "dev": true, + "requires": { + "@webassemblyjs/helper-module-context": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/wast-parser": "1.9.0" + } + }, + "@webassemblyjs/floating-point-hex-parser": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz", + "integrity": "sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA==", + "dev": true + }, + "@webassemblyjs/helper-api-error": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz", + "integrity": "sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw==", + "dev": true + }, + "@webassemblyjs/helper-buffer": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz", + "integrity": "sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA==", + "dev": true + }, + "@webassemblyjs/helper-code-frame": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz", + "integrity": "sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA==", + "dev": true, + "requires": { + "@webassemblyjs/wast-printer": "1.9.0" + } + }, + "@webassemblyjs/helper-fsm": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz", + "integrity": "sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw==", + "dev": true + }, + "@webassemblyjs/helper-module-context": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz", + "integrity": "sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0" + } + }, + "@webassemblyjs/helper-wasm-bytecode": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz", + "integrity": "sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw==", + "dev": true + }, + "@webassemblyjs/helper-wasm-section": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz", + "integrity": "sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0" + } + }, + "@webassemblyjs/ieee754": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz", + "integrity": "sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg==", + "dev": true, + "requires": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "@webassemblyjs/leb128": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.9.0.tgz", + "integrity": "sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw==", + "dev": true, + "requires": { + "@xtuc/long": "4.2.2" + } + }, + "@webassemblyjs/utf8": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.9.0.tgz", + "integrity": "sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w==", + "dev": true + }, + "@webassemblyjs/wasm-edit": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz", + "integrity": "sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/helper-wasm-section": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0", + "@webassemblyjs/wasm-opt": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0", + "@webassemblyjs/wast-printer": "1.9.0" + } + }, + "@webassemblyjs/wasm-gen": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz", + "integrity": "sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/ieee754": "1.9.0", + "@webassemblyjs/leb128": "1.9.0", + "@webassemblyjs/utf8": "1.9.0" + } + }, + "@webassemblyjs/wasm-opt": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz", + "integrity": "sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0" + } + }, + "@webassemblyjs/wasm-parser": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz", + "integrity": "sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-api-error": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/ieee754": "1.9.0", + "@webassemblyjs/leb128": "1.9.0", + "@webassemblyjs/utf8": "1.9.0" + } + }, + "@webassemblyjs/wast-parser": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz", + "integrity": "sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/floating-point-hex-parser": "1.9.0", + "@webassemblyjs/helper-api-error": "1.9.0", + "@webassemblyjs/helper-code-frame": "1.9.0", + "@webassemblyjs/helper-fsm": "1.9.0", + "@xtuc/long": "4.2.2" + } + }, + "@webassemblyjs/wast-printer": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz", + "integrity": "sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/wast-parser": "1.9.0", + "@xtuc/long": "4.2.2" + } + }, + "@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "dev": true + }, + "@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "dev": true + }, "@yarnpkg/core": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/@yarnpkg/core/-/core-2.1.1.tgz", @@ -4097,6 +8020,15 @@ "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", "dev": true }, + "abort-controller": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", + "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", + "dev": true, + "requires": { + "event-target-shim": "^5.0.0" + } + }, "abstract-leveldown": { "version": "2.6.3", "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-2.6.3.tgz", @@ -4150,6 +8082,12 @@ "integrity": "sha512-aT6camzM4xEA54YVJYSqxz1kv4IHnQZRtThJJHhUMRExaU5spC7jX5ugSwTaTgJliIgs4VhZOk7htClvQ/LmRA==", "dev": true }, + "adm-zip": { + "version": "0.4.16", + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.16.tgz", + "integrity": "sha512-TFi4HBKSGfIKsK5YCkKaaFG2m4PEDyViZmEwof3MTIgzimHLto6muaHVpbrljdIvIrFZzEq/p4nafOeLcYegrg==", + "dev": true + }, "aes-js": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.0.0.tgz", @@ -4176,6 +8114,18 @@ "uri-js": "^4.2.2" } }, + "ajv-errors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz", + "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==", + "dev": true + }, + "ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true + }, "amdefine": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", @@ -4206,9 +8156,9 @@ } }, "ansi-colors": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz", - "integrity": "sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA==", + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.3.tgz", + "integrity": "sha512-LEHHyuhlPY3TmuUYMh2oz89lTShfvgbmzaBcxve9t/9Wuy7Dwf4yoAKcND7KFT1HAQfqZ12qtc+DUrBMeKF9nw==", "dev": true }, "ansi-escapes": { @@ -4296,6 +8246,29 @@ "integrity": "sha1-ZBqlXft9am8KgUHEucCqULbCTdU=", "dev": true }, + "aproba": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", + "dev": true + }, + "archive-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/archive-type/-/archive-type-4.0.0.tgz", + "integrity": "sha1-+S5yIzBW38aWlHJ0nCZ72wRrHXA=", + "dev": true, + "requires": { + "file-type": "^4.2.0" + }, + "dependencies": { + "file-type": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-4.4.0.tgz", + "integrity": "sha1-G2AOX8ofvcboDApwxxyNul95BsU=", + "dev": true + } + } + }, "archy": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", @@ -4311,6 +8284,24 @@ "sprintf-js": "~1.0.2" } }, + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true + }, + "arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "dev": true + }, + "arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", + "dev": true + }, "array-flatten": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", @@ -4340,6 +8331,12 @@ "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", "dev": true }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true + }, "array.prototype.flat": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.3.tgz", @@ -4490,6 +8487,33 @@ } } }, + "assert": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz", + "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==", + "dev": true, + "requires": { + "object-assign": "^4.1.1", + "util": "0.10.3" + }, + "dependencies": { + "inherits": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", + "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", + "dev": true + }, + "util": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", + "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", + "dev": true, + "requires": { + "inherits": "2.0.1" + } + } + } + }, "assert-plus": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", @@ -4501,6 +8525,12 @@ "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", "dev": true }, + "assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", + "dev": true + }, "ast-parents": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/ast-parents/-/ast-parents-0.0.1.tgz", @@ -4524,6 +8554,13 @@ "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=" }, + "async-each": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", + "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==", + "dev": true, + "optional": true + }, "async-eventemitter": { "version": "0.2.4", "resolved": "https://registry.npmjs.org/async-eventemitter/-/async-eventemitter-0.2.4.tgz", @@ -4552,6 +8589,24 @@ "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" }, + "at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "dev": true + }, + "atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", + "dev": true + }, + "available-typed-arrays": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.4.tgz", + "integrity": "sha512-SA5mXJWrId1TaQjfxUYghbqQ/hYioKmLJvPJyDuYRtXXenFNMjj4hSSt1Cf1xsuXSXrtxrVC5Ot4eU6cOtBDdA==", + "dev": true + }, "await-semaphore": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/await-semaphore/-/await-semaphore-0.1.3.tgz", @@ -4567,6 +8622,15 @@ "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz", "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==" }, + "axios": { + "version": "0.21.1", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.1.tgz", + "integrity": "sha512-dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA==", + "dev": true, + "requires": { + "follow-redirects": "^1.10.0" + } + }, "babel-plugin-polyfill-corejs2": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.2.0.tgz", @@ -4608,6 +8672,61 @@ "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", "dev": true }, + "base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "dev": true, + "requires": { + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, "base-x": { "version": "3.0.8", "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.8.tgz", @@ -4630,6 +8749,12 @@ "tweetnacl": "^0.14.3" } }, + "bech32": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz", + "integrity": "sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==", + "dev": true + }, "big.js": { "version": "5.2.2", "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", @@ -4762,21 +8887,55 @@ "iconv-lite": "0.4.24", "unpipe": "1.0.0" } - }, - "setprototypeof": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", - "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==", - "dev": true + }, + "setprototypeof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", + "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==", + "dev": true + } + } + }, + "boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=", + "dev": true + }, + "borc": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/borc/-/borc-2.1.2.tgz", + "integrity": "sha512-Sy9eoUi4OiKzq7VovMn246iTo17kzuyHJKomCfpWMlI6RpfN1gk95w7d7gH264nApVLg0HZfcpz62/g4VH1Y4w==", + "dev": true, + "requires": { + "bignumber.js": "^9.0.0", + "buffer": "^5.5.0", + "commander": "^2.15.0", + "ieee754": "^1.1.13", + "iso-url": "~0.4.7", + "json-text-sequence": "~0.1.0", + "readable-stream": "^3.6.0" + }, + "dependencies": { + "ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true + }, + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } } } }, - "boolbase": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=", - "dev": true - }, "boxen": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/boxen/-/boxen-4.2.0.tgz", @@ -5143,12 +9302,81 @@ "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=" }, + "bufferutil": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.3.tgz", + "integrity": "sha512-yEYTwGndELGvfXsImMBLop58eaGW+YdONi1fNjTINSY98tmMmFijBG6WXgdkfuLNt4imzQNtIE+eBp1PVpMCSw==", + "dev": true, + "requires": { + "node-gyp-build": "^4.2.0" + } + }, + "builtin-status-codes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", + "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", + "dev": true + }, "bytes": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", "dev": true }, + "cacache": { + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz", + "integrity": "sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==", + "dev": true, + "requires": { + "bluebird": "^3.5.5", + "chownr": "^1.1.1", + "figgy-pudding": "^3.5.1", + "glob": "^7.1.4", + "graceful-fs": "^4.1.15", + "infer-owner": "^1.0.3", + "lru-cache": "^5.1.1", + "mississippi": "^3.0.0", + "mkdirp": "^0.5.1", + "move-concurrently": "^1.0.1", + "promise-inflight": "^1.0.1", + "rimraf": "^2.6.3", + "ssri": "^6.0.1", + "unique-filename": "^1.1.1", + "y18n": "^4.0.0" + }, + "dependencies": { + "bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", + "dev": true + }, + "y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "dev": true + } + } + }, + "cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "dev": true, + "requires": { + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" + } + }, "cacheable-lookup": { "version": "5.0.3", "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.3.tgz", @@ -5197,7 +9425,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "dev": true, "requires": { "function-bind": "^1.1.1", "get-intrinsic": "^1.0.2" @@ -5235,6 +9462,16 @@ "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", "dev": true }, + "camel-case": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz", + "integrity": "sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M=", + "dev": true, + "requires": { + "no-case": "^2.2.0", + "upper-case": "^1.1.1" + } + }, "camelcase": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", @@ -5251,6 +9488,34 @@ "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" }, + "caw": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/caw/-/caw-2.0.1.tgz", + "integrity": "sha512-Cg8/ZSBEa8ZVY9HspcGUYaK63d/bN7rqS3CYCzEGUxuYv6UlmcjzDUz2fCFFHyTvUW5Pk0I+3hkA3iXlIj6guA==", + "dev": true, + "requires": { + "get-proxy": "^2.0.0", + "isurl": "^1.0.0-alpha5", + "tunnel-agent": "^0.6.0", + "url-to-options": "^1.0.1" + } + }, + "cbor": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/cbor/-/cbor-5.2.0.tgz", + "integrity": "sha512-5IMhi9e1QU76ppa5/ajP1BmMWZ2FHkhAhjeVKQ/EFCgYSEaeVaoGtL7cxJskf9oCCk+XjzaIdc3IuU/dbA/o2A==", + "requires": { + "bignumber.js": "^9.0.1", + "nofilter": "^1.0.4" + }, + "dependencies": { + "bignumber.js": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.1.tgz", + "integrity": "sha512-IdZR9mh6ahOBv/hYGiXyVuyCetmGJhtYkqLBpTStdhEGjegpPlUawydyaF3pbIOFynJTpllEs+NP+CS9jKFLjA==" + } + } + }, "chai": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/chai/-/chai-4.2.0.tgz", @@ -5381,6 +9646,12 @@ "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", "dev": true }, + "chrome-trace-event": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", + "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", + "dev": true + }, "ci-info": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", @@ -5427,6 +9698,38 @@ "integrity": "sha512-rhjH9AG1fvabIDoGRVH587413LPjTZgmDF9fOFCbFJQV4yuocX1mHxxvXI4g3cGwbVY9wAYIoKlg1N79frJKQw==", "dev": true }, + "class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "dev": true, + "requires": { + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, + "clean-css": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.3.tgz", + "integrity": "sha512-VcMWDN54ZN/DS+g58HYL5/n4Zrqe8vHJpGA8KdgUXFU4fuP/aHNw8eld9SyEIyabIMJX/0RaY/fplOo5hYLSFA==", + "dev": true, + "requires": { + "source-map": "~0.6.0" + } + }, "cli-boxes": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.0.tgz", @@ -5448,6 +9751,57 @@ "integrity": "sha512-U0sSQ+JJvSLi1pAYuJykwiA8Dsr15uHEy85iCJ6A+0DjVxivr3d+N2Wjvodeg89uP5K6TswFkKBfAD7B3YSn/Q==", "dev": true }, + "cli-table3": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.0.tgz", + "integrity": "sha512-gnB85c3MGC7Nm9I/FkiasNBOKjOiO1RNuXXarQms37q4QMpWdlbBgD/VnOStA2faG1dpXMv31RFApjX1/QdgWQ==", + "dev": true, + "requires": { + "colors": "^1.1.2", + "object-assign": "^4.1.0", + "string-width": "^4.2.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "string-width": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", + "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + } + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } + } + } + }, "cli-width": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz", @@ -5544,6 +9898,16 @@ "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", "dev": true }, + "collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "dev": true, + "requires": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + } + }, "color-convert": { "version": "1.9.3", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", @@ -5562,6 +9926,12 @@ "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.2.tgz", "integrity": "sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w==" }, + "colors": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", + "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", + "dev": true + }, "combined-stream": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.7.tgz", @@ -5570,24 +9940,64 @@ "delayed-stream": "~1.0.0" } }, + "command-exists": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/command-exists/-/command-exists-1.2.9.tgz", + "integrity": "sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w==", + "dev": true + }, "commander": { "version": "2.18.0", "resolved": "https://registry.npmjs.org/commander/-/commander-2.18.0.tgz", "integrity": "sha512-6CYPa+JP2ftfRU2qkDK+UTVeQYosOg/2GbcjIcKPHfinyOLPVGXu/ovN86RP49Re5ndJK1N0kuiidFFuepc4ZQ==", "dev": true }, + "commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", + "dev": true + }, "compare-versions": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-3.6.0.tgz", "integrity": "sha512-W6Af2Iw1z4CB7q4uU4hv646dW9GQuBM+YpC0UvUCWSD8w90SJjp+ujJuXaEMtAXBtSqGfMPuFOVn4/+FlaqfBA==", "dev": true }, + "component-emitter": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", + "dev": true + }, "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", "dev": true }, + "concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "config-chain": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz", + "integrity": "sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==", + "dev": true, + "requires": { + "ini": "^1.3.4", + "proto-list": "~1.2.1" + } + }, "configstore": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz", @@ -5613,6 +10023,27 @@ } } }, + "console-browserify": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", + "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==", + "dev": true + }, + "consolidate": { + "version": "0.15.1", + "resolved": "https://registry.npmjs.org/consolidate/-/consolidate-0.15.1.tgz", + "integrity": "sha512-DW46nrsMJgy9kqAbPt5rKaCr7uFtpo4mSUvLHIUbJEjm0vo+aY5QLwBUq3FK4tRnJr/X0Psc0C4jf/h+HtXSMw==", + "dev": true, + "requires": { + "bluebird": "^3.1.1" + } + }, + "constants-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", + "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", + "dev": true + }, "contains-path": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/contains-path/-/contains-path-0.1.0.tgz", @@ -5645,15 +10076,6 @@ "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", "dev": true }, - "convert-source-map": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", - "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.1" - } - }, "cookie": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", @@ -5672,6 +10094,26 @@ "integrity": "sha512-Mw+adcfzPxcPeI+0WlvRrr/3lGVO0bD75SxX6811cxSh1Wbxx7xZBGK1eVtDf6si8rg2lhnUjsVLMFMfbRIuwA==", "dev": true }, + "copy-concurrently": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", + "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", + "dev": true, + "requires": { + "aproba": "^1.1.1", + "fs-write-stream-atomic": "^1.0.8", + "iferr": "^0.1.5", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.0" + } + }, + "copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", + "dev": true + }, "core-js-compat": { "version": "3.10.2", "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.10.2.tgz", @@ -5688,6 +10130,12 @@ } } }, + "core-js-pure": { + "version": "3.15.1", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.15.1.tgz", + "integrity": "sha512-OZuWHDlYcIda8sJLY4Ec6nWq2hRjlyCqCZ+jCflyleMkVt3tPedDVErvHslyS2nbO+SlBFMSBJYvtLMwxnrzjA==", + "dev": true + }, "core-util-is": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", @@ -5796,6 +10244,16 @@ } } }, + "crc-32": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.0.tgz", + "integrity": "sha512-1uBwHxF+Y/4yF5G48fwnKq6QsIXheor3ZLPT80yGBV1oEUwpPojlEhQbWKVw1VwcTQyMGHK1/XMmTjmlsmTTGA==", + "dev": true, + "requires": { + "exit-on-epipe": "~1.0.1", + "printj": "~1.1.0" + } + }, "create-ecdh": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.3.tgz", @@ -5907,6 +10365,39 @@ "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", "dev": true }, + "css-loader": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-2.1.1.tgz", + "integrity": "sha512-OcKJU/lt232vl1P9EEDamhoO9iKY3tIjY5GU+XDLblAykTdgs6Ux9P1hTHve8nFKy5KPpOXOsVI/hIwi3841+w==", + "dev": true, + "requires": { + "camelcase": "^5.2.0", + "icss-utils": "^4.1.0", + "loader-utils": "^1.2.3", + "normalize-path": "^3.0.0", + "postcss": "^7.0.14", + "postcss-modules-extract-imports": "^2.0.0", + "postcss-modules-local-by-default": "^2.0.6", + "postcss-modules-scope": "^2.1.0", + "postcss-modules-values": "^2.0.0", + "postcss-value-parser": "^3.3.0", + "schema-utils": "^1.0.0" + }, + "dependencies": { + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true + } + } + }, "css-select": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz", @@ -5925,6 +10416,18 @@ "integrity": "sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg==", "dev": true }, + "cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true + }, + "cyclist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz", + "integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=", + "dev": true + }, "d": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", @@ -5949,6 +10452,12 @@ "integrity": "sha512-vKQ9DTQPN1FLYiiEEOQ6IBGFqvjCa5rSK3cWMy/Nespm5d/x3dGFT9UBZnkLxCwua/IXBi2TYnwTEpsOvhC4UQ==", "dev": true }, + "de-indent": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz", + "integrity": "sha1-sgOOhG3DO6pXlhKNCAS0VbjB4h0=", + "dev": true + }, "death": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/death/-/death-1.1.0.tgz", @@ -6101,6 +10610,12 @@ "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", "dev": true }, + "deepmerge": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-2.2.1.tgz", + "integrity": "sha512-R9hc1Xa/NOBi9WRVUWg19rl1UB7Tt4kuPd+thNJgFZoxXsTz7ncaPaeIm+40oSGuP33DfMb4sZt1QIGiJzC4EA==", + "dev": true + }, "defer-to-connect": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.0.2.tgz", @@ -6124,6 +10639,47 @@ "object-keys": "^1.0.12" } }, + "define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dev": true, + "requires": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "dependencies": { + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, "degenerator": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/degenerator/-/degenerator-1.0.4.tgz", @@ -6148,6 +10704,12 @@ "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" }, + "delimit-stream": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/delimit-stream/-/delimit-stream-0.1.0.tgz", + "integrity": "sha1-m4MZR3wOX4rrPONXrjBfwl6hzSs=", + "dev": true + }, "depd": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", @@ -6309,6 +10871,15 @@ "esutils": "^2.0.2" } }, + "dom-converter": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", + "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==", + "dev": true, + "requires": { + "utila": "~0.4" + } + }, "dom-serializer": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.1.tgz", @@ -6324,6 +10895,12 @@ "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.1.tgz", "integrity": "sha1-ZyIm3HTI95mtNTB9+TaroRrNYBg=" }, + "domain-browser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", + "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", + "dev": true + }, "domelementtype": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", @@ -6371,6 +10948,144 @@ "xml2js": "0.4.23" } }, + "download": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/download/-/download-7.1.0.tgz", + "integrity": "sha512-xqnBTVd/E+GxJVrX5/eUJiLYjCGPwMpdL+jGhGU57BvtcA7wwhtHVbXBeUk51kOpW3S7Jn3BQbN9Q1R1Km2qDQ==", + "dev": true, + "requires": { + "archive-type": "^4.0.0", + "caw": "^2.0.1", + "content-disposition": "^0.5.2", + "decompress": "^4.2.0", + "ext-name": "^5.0.0", + "file-type": "^8.1.0", + "filenamify": "^2.0.0", + "get-stream": "^3.0.0", + "got": "^8.3.1", + "make-dir": "^1.2.0", + "p-event": "^2.1.0", + "pify": "^3.0.0" + }, + "dependencies": { + "@sindresorhus/is": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.7.0.tgz", + "integrity": "sha512-ONhaKPIufzzrlNbqtWFFd+jlnemX6lJAgq9ZeiZtS7I1PIf/la7CW4m83rTXRnVnsMbW2k56pGYu7AUFJD9Pow==", + "dev": true + }, + "cacheable-request": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-2.1.4.tgz", + "integrity": "sha1-DYCIAbY0KtM8kd+dC0TcCbkeXD0=", + "dev": true, + "requires": { + "clone-response": "1.0.2", + "get-stream": "3.0.0", + "http-cache-semantics": "3.8.1", + "keyv": "3.0.0", + "lowercase-keys": "1.0.0", + "normalize-url": "2.0.1", + "responselike": "1.0.2" + }, + "dependencies": { + "lowercase-keys": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.0.tgz", + "integrity": "sha1-TjNms55/VFfjXxMkvfb4jQv8cwY=", + "dev": true + } + } + }, + "file-type": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-8.1.0.tgz", + "integrity": "sha512-qyQ0pzAy78gVoJsmYeNgl8uH8yKhr1lVhW7JbzJmnlRi0I4R2eEDEJZVKG8agpDnLpacwNbDhLNG/LMdxHD2YQ==", + "dev": true + }, + "got": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/got/-/got-8.3.2.tgz", + "integrity": "sha512-qjUJ5U/hawxosMryILofZCkm3C84PLJS/0grRIpjAwu+Lkxxj5cxeCU25BG0/3mDSpXKTyZr8oh8wIgLaH0QCw==", + "dev": true, + "requires": { + "@sindresorhus/is": "^0.7.0", + "cacheable-request": "^2.1.1", + "decompress-response": "^3.3.0", + "duplexer3": "^0.1.4", + "get-stream": "^3.0.0", + "into-stream": "^3.1.0", + "is-retry-allowed": "^1.1.0", + "isurl": "^1.0.0-alpha5", + "lowercase-keys": "^1.0.0", + "mimic-response": "^1.0.0", + "p-cancelable": "^0.4.0", + "p-timeout": "^2.0.1", + "pify": "^3.0.0", + "safe-buffer": "^5.1.1", + "timed-out": "^4.0.1", + "url-parse-lax": "^3.0.0", + "url-to-options": "^1.0.1" + } + }, + "http-cache-semantics": { + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz", + "integrity": "sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w==", + "dev": true + }, + "keyv": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.0.0.tgz", + "integrity": "sha512-eguHnq22OE3uVoSYG0LVWNP+4ppamWr9+zWBe1bsNcovIMy6huUJFPgy4mGwCd/rnl3vOLGW1MTlu4c57CT1xA==", + "dev": true, + "requires": { + "json-buffer": "3.0.0" + } + }, + "normalize-url": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-2.0.1.tgz", + "integrity": "sha512-D6MUW4K/VzoJ4rJ01JFKxDrtY1v9wrgzCX5f2qj/lzH1m/lW6MhUZFKerVsnyjOhOsYzI9Kqqak+10l4LvLpMw==", + "dev": true, + "requires": { + "prepend-http": "^2.0.0", + "query-string": "^5.0.1", + "sort-keys": "^2.0.0" + } + }, + "p-cancelable": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.4.1.tgz", + "integrity": "sha512-HNa1A8LvB1kie7cERyy21VNeHb2CWJJYqyyC2o3klWFfMGlFmWv2Z7sFgZH8ZiaYL95ydToKTFVXgMV/Os0bBQ==", + "dev": true + }, + "p-timeout": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-2.0.1.tgz", + "integrity": "sha512-88em58dDVB/KzPEx1X0N3LwFfYZPyDc4B6eF38M1rk9VTZMbxXXgjugz8mmwpS9Ox4BDZ+t6t3QP5+/gazweIA==", + "dev": true, + "requires": { + "p-finally": "^1.0.0" + } + }, + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true + }, + "sort-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-2.0.0.tgz", + "integrity": "sha1-ZYU1WEhh7JfXMNbPQYIuH1ZoQSg=", + "dev": true, + "requires": { + "is-plain-obj": "^1.0.0" + } + } + } + }, "drbg.js": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/drbg.js/-/drbg.js-1.0.1.tgz", @@ -6454,6 +11169,18 @@ "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", "dev": true }, + "emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "dev": true + }, + "encode-utf8": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/encode-utf8/-/encode-utf8-1.0.3.tgz", + "integrity": "sha512-ucAnuBEhUK4boH2HjVYG5Q2mQyPorvv0u/ocS+zhdw0S8AlHYY+GOFhP1Gio5z4icpP2ivFSvhtFjQi8+T9ppw==", + "dev": true + }, "encodeurl": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", @@ -6478,6 +11205,57 @@ } } }, + "encoding-down": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/encoding-down/-/encoding-down-6.3.0.tgz", + "integrity": "sha512-QKrV0iKR6MZVJV08QY0wp1e7vF6QbhnbQhb07bwpEyuz4uZiZgPlEGdkCROuFkUwdxlFaiPIhjyarH1ee/3vhw==", + "dev": true, + "requires": { + "abstract-leveldown": "^6.2.1", + "inherits": "^2.0.3", + "level-codec": "^9.0.0", + "level-errors": "^2.0.0" + }, + "dependencies": { + "abstract-leveldown": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-6.3.0.tgz", + "integrity": "sha512-TU5nlYgta8YrBMNpc9FwQzRbiXsj49gsALsXadbGHt9CROPzX5fB0rWDR5mtdpOOKa5XqRFpbj1QroPAoPzVjQ==", + "dev": true, + "requires": { + "buffer": "^5.5.0", + "immediate": "^3.2.3", + "level-concat-iterator": "~2.0.0", + "level-supports": "~1.0.0", + "xtend": "~4.0.0" + } + }, + "immediate": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.3.0.tgz", + "integrity": "sha512-HR7EVodfFUdQCTIeySw+WDRFJlPcLOJbXfwwZ7Oom6tjsvZ3bOkCDJHehQC3nxJrv7+f9XecwazynjU8e4Vw3Q==", + "dev": true + }, + "level-codec": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/level-codec/-/level-codec-9.0.2.tgz", + "integrity": "sha512-UyIwNb1lJBChJnGfjmO0OR+ezh2iVu1Kas3nvBS/BzGnx79dv6g7unpKIDNPMhfdTEGoc7mC8uAu51XEtX+FHQ==", + "dev": true, + "requires": { + "buffer": "^5.6.0" + } + }, + "level-errors": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/level-errors/-/level-errors-2.0.1.tgz", + "integrity": "sha512-UVprBJXite4gPS+3VznfgDSU8PTRuVX0NXwoWW50KLxd2yw4Y1t2JUR5In1itQnudZqRMT9DlAM3Q//9NCjCFw==", + "dev": true, + "requires": { + "errno": "~0.1.1" + } + } + } + }, "end-of-stream": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", @@ -6487,6 +11265,29 @@ "once": "^1.4.0" } }, + "enhanced-resolve": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz", + "integrity": "sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "memory-fs": "^0.5.0", + "tapable": "^1.0.0" + }, + "dependencies": { + "memory-fs": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz", + "integrity": "sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==", + "dev": true, + "requires": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + } + } + } + }, "enquirer": { "version": "2.3.6", "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", @@ -6510,6 +11311,12 @@ "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==", "dev": true }, + "env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", + "dev": true + }, "errno": { "version": "0.1.8", "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", @@ -7207,23 +12014,140 @@ } } }, - "eth-query": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/eth-query/-/eth-query-2.1.2.tgz", - "integrity": "sha1-1nQdkAAQa1FRDHLbktY2VFam2l4=", - "requires": { - "json-rpc-random-id": "^1.0.0", - "xtend": "^4.0.1" - } - }, - "eth-rpc-errors": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/eth-rpc-errors/-/eth-rpc-errors-3.0.0.tgz", - "integrity": "sha512-iPPNHPrLwUlR9xCSYm7HHQjWBasor3+KZfRvwEWxMz3ca0yqnlBeJrnyphkGIXZ4J7AMAaOLmwy4AWhnxOiLxg==", - "requires": { - "fast-safe-stringify": "^2.0.6" - } - }, + "eth-query": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/eth-query/-/eth-query-2.1.2.tgz", + "integrity": "sha1-1nQdkAAQa1FRDHLbktY2VFam2l4=", + "requires": { + "json-rpc-random-id": "^1.0.0", + "xtend": "^4.0.1" + } + }, + "eth-rpc-errors": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eth-rpc-errors/-/eth-rpc-errors-3.0.0.tgz", + "integrity": "sha512-iPPNHPrLwUlR9xCSYm7HHQjWBasor3+KZfRvwEWxMz3ca0yqnlBeJrnyphkGIXZ4J7AMAaOLmwy4AWhnxOiLxg==", + "requires": { + "fast-safe-stringify": "^2.0.6" + } + }, + "eth-sig-util": { + "version": "2.5.4", + "resolved": "https://registry.npmjs.org/eth-sig-util/-/eth-sig-util-2.5.4.tgz", + "integrity": "sha512-aCMBwp8q/4wrW4QLsF/HYBOSA7TpLKmkVwP3pYQNkEEseW2Rr8Z5Uxc9/h6HX+OG3tuHo+2bINVSihIeBfym6A==", + "dev": true, + "requires": { + "ethereumjs-abi": "0.6.8", + "ethereumjs-util": "^5.1.1", + "tweetnacl": "^1.0.3", + "tweetnacl-util": "^0.15.0" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + }, + "elliptic": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", + "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", + "dev": true, + "requires": { + "bn.js": "^4.11.9", + "brorand": "^1.1.0", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "ethereumjs-util": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", + "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", + "dev": true, + "requires": { + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "^0.1.3", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "tweetnacl": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz", + "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==", + "dev": true + } + } + }, + "ethashjs": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/ethashjs/-/ethashjs-0.0.8.tgz", + "integrity": "sha512-/MSbf/r2/Ld8o0l15AymjOTlPqpN8Cr4ByUEA9GtR4x0yAh3TdtDzEg29zMjXCNPI7u6E5fOQdj/Cf9Tc7oVNw==", + "dev": true, + "requires": { + "async": "^2.1.2", + "buffer-xor": "^2.0.1", + "ethereumjs-util": "^7.0.2", + "miller-rabin": "^4.0.0" + }, + "dependencies": { + "@types/bn.js": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.0.tgz", + "integrity": "sha512-QSSVYj7pYFN49kW77o2s9xTCwZ8F2xLbjLLSEVh8D2F4JUhZtPAGOFLTD+ffqksBx/u4cE/KImFjyhqCjn/LIA==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "async": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", + "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", + "dev": true, + "requires": { + "lodash": "^4.17.14" + } + }, + "buffer-xor": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-2.0.2.tgz", + "integrity": "sha512-eHslX0bin3GB+Lx2p7lEYRShRewuNZL3fUl4qlVJGGiwoPGftmt8JQgk2Y9Ji5/01TnVDo33E5b5O3vUB1HdqQ==", + "dev": true, + "requires": { + "safe-buffer": "^5.1.1" + } + }, + "ethereumjs-util": { + "version": "7.0.10", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.0.10.tgz", + "integrity": "sha512-c/xThw6A+EAnej5Xk5kOzFzyoSnw0WX0tSlZ6pAsfGVvQj3TItaDg9b1+Fz1RJXA+y2YksKwQnuzgt1eY6LKzw==", + "dev": true, + "requires": { + "@types/bn.js": "^5.1.0", + "bn.js": "^5.1.2", + "create-hash": "^1.1.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "0.1.6", + "rlp": "^2.2.4" + } + } + } + }, "ethereum-bloom-filters": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/ethereum-bloom-filters/-/ethereum-bloom-filters-1.0.7.tgz", @@ -7493,6 +12417,205 @@ } } }, + "ethereumjs-blockchain": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/ethereumjs-blockchain/-/ethereumjs-blockchain-4.0.4.tgz", + "integrity": "sha512-zCxaRMUOzzjvX78DTGiKjA+4h2/sF0OYL1QuPux0DHpyq8XiNoF5GYHtb++GUxVlMsMfZV7AVyzbtgcRdIcEPQ==", + "dev": true, + "requires": { + "async": "^2.6.1", + "ethashjs": "~0.0.7", + "ethereumjs-block": "~2.2.2", + "ethereumjs-common": "^1.5.0", + "ethereumjs-util": "^6.1.0", + "flow-stoplight": "^1.0.0", + "level-mem": "^3.0.1", + "lru-cache": "^5.1.1", + "rlp": "^2.2.2", + "semaphore": "^1.1.0" + }, + "dependencies": { + "abstract-leveldown": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-5.0.0.tgz", + "integrity": "sha512-5mU5P1gXtsMIXg65/rsYGsi93+MlogXZ9FA8JnwKurHQg64bfXwGYVdVdijNTVNOlAsuIiOwHdvFFD5JqCJQ7A==", + "dev": true, + "requires": { + "xtend": "~4.0.0" + } + }, + "async": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", + "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", + "dev": true, + "requires": { + "lodash": "^4.17.14" + } + }, + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + }, + "deferred-leveldown": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/deferred-leveldown/-/deferred-leveldown-4.0.2.tgz", + "integrity": "sha512-5fMC8ek8alH16QiV0lTCis610D1Zt1+LA4MS4d63JgS32lrCjTFDUFz2ao09/j2I4Bqb5jL4FZYwu7Jz0XO1ww==", + "dev": true, + "requires": { + "abstract-leveldown": "~5.0.0", + "inherits": "^2.0.3" + } + }, + "elliptic": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", + "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", + "dev": true, + "requires": { + "bn.js": "^4.11.9", + "brorand": "^1.1.0", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "encoding-down": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/encoding-down/-/encoding-down-5.0.4.tgz", + "integrity": "sha512-8CIZLDcSKxgzT+zX8ZVfgNbu8Md2wq/iqa1Y7zyVR18QBEAc0Nmzuvj/N5ykSKpfGzjM8qxbaFntLPwnVoUhZw==", + "dev": true, + "requires": { + "abstract-leveldown": "^5.0.0", + "inherits": "^2.0.3", + "level-codec": "^9.0.0", + "level-errors": "^2.0.0", + "xtend": "^4.0.1" + } + }, + "ethereumjs-block": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/ethereumjs-block/-/ethereumjs-block-2.2.2.tgz", + "integrity": "sha512-2p49ifhek3h2zeg/+da6XpdFR3GlqY3BIEiqxGF8j9aSRIgkb7M1Ky+yULBKJOu8PAZxfhsYA+HxUk2aCQp3vg==", + "dev": true, + "requires": { + "async": "^2.0.1", + "ethereumjs-common": "^1.5.0", + "ethereumjs-tx": "^2.1.1", + "ethereumjs-util": "^5.0.0", + "merkle-patricia-tree": "^2.1.2" + }, + "dependencies": { + "ethereumjs-util": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", + "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", + "dev": true, + "requires": { + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "^0.1.3", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1" + } + } + } + }, + "immediate": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.2.3.tgz", + "integrity": "sha1-0UD6j2FGWb1lQSMwl92qwlzdmRw=", + "dev": true + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "level-codec": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/level-codec/-/level-codec-9.0.2.tgz", + "integrity": "sha512-UyIwNb1lJBChJnGfjmO0OR+ezh2iVu1Kas3nvBS/BzGnx79dv6g7unpKIDNPMhfdTEGoc7mC8uAu51XEtX+FHQ==", + "dev": true, + "requires": { + "buffer": "^5.6.0" + } + }, + "level-errors": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/level-errors/-/level-errors-2.0.1.tgz", + "integrity": "sha512-UVprBJXite4gPS+3VznfgDSU8PTRuVX0NXwoWW50KLxd2yw4Y1t2JUR5In1itQnudZqRMT9DlAM3Q//9NCjCFw==", + "dev": true, + "requires": { + "errno": "~0.1.1" + } + }, + "level-iterator-stream": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/level-iterator-stream/-/level-iterator-stream-3.0.1.tgz", + "integrity": "sha512-nEIQvxEED9yRThxvOrq8Aqziy4EGzrxSZK+QzEFAVuJvQ8glfyZ96GB6BoI4sBbLfjMXm2w4vu3Tkcm9obcY0g==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "readable-stream": "^2.3.6", + "xtend": "^4.0.0" + } + }, + "level-mem": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/level-mem/-/level-mem-3.0.1.tgz", + "integrity": "sha512-LbtfK9+3Ug1UmvvhR2DqLqXiPW1OJ5jEh0a3m9ZgAipiwpSxGj/qaVVy54RG5vAQN1nCuXqjvprCuKSCxcJHBg==", + "dev": true, + "requires": { + "level-packager": "~4.0.0", + "memdown": "~3.0.0" + } + }, + "level-packager": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/level-packager/-/level-packager-4.0.1.tgz", + "integrity": "sha512-svCRKfYLn9/4CoFfi+d8krOtrp6RoX8+xm0Na5cgXMqSyRru0AnDYdLl+YI8u1FyS6gGZ94ILLZDE5dh2but3Q==", + "dev": true, + "requires": { + "encoding-down": "~5.0.0", + "levelup": "^3.0.0" + } + }, + "levelup": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/levelup/-/levelup-3.1.1.tgz", + "integrity": "sha512-9N10xRkUU4dShSRRFTBdNaBxofz+PGaIZO962ckboJZiNmLuhVT6FZ6ZKAsICKfUBO76ySaYU6fJWX/jnj3Lcg==", + "dev": true, + "requires": { + "deferred-leveldown": "~4.0.0", + "level-errors": "~2.0.0", + "level-iterator-stream": "~3.0.0", + "xtend": "~4.0.0" + } + }, + "memdown": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/memdown/-/memdown-3.0.0.tgz", + "integrity": "sha512-tbV02LfZMWLcHcq4tw++NuqMO+FZX8tNJEiD2aNRm48ZZusVg5N8NART+dmBkepJVye986oixErf7jfXboMGMA==", + "dev": true, + "requires": { + "abstract-leveldown": "~5.0.0", + "functional-red-black-tree": "~1.0.1", + "immediate": "~3.2.3", + "inherits": "~2.0.1", + "ltgt": "~2.2.0", + "safe-buffer": "~5.1.1" + } + } + } + }, "ethereumjs-common": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/ethereumjs-common/-/ethereumjs-common-1.5.1.tgz", @@ -7730,25 +12853,6 @@ } } }, - "ethjs-abi": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/ethjs-abi/-/ethjs-abi-0.2.1.tgz", - "integrity": "sha1-4KepOn6BFjqUR3utVu3lJKtt5TM=", - "dev": true, - "requires": { - "bn.js": "4.11.6", - "js-sha3": "0.5.5", - "number-to-bn": "1.7.0" - }, - "dependencies": { - "bn.js": { - "version": "4.11.6", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", - "integrity": "sha1-UzRK2xRhehP26N0s4okF0cC6MhU=", - "dev": true - } - } - }, "ethjs-unit": { "version": "0.1.6", "resolved": "https://registry.npmjs.org/ethjs-unit/-/ethjs-unit-0.1.6.tgz", @@ -7785,6 +12889,12 @@ "tslib": "^1.10.0" } }, + "event-target-shim": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", + "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", + "dev": true + }, "eventemitter3": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.2.tgz", @@ -7831,23 +12941,53 @@ } } }, - "exorcist": { + "exit-on-epipe": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/exorcist/-/exorcist-1.0.1.tgz", - "integrity": "sha1-eTFuPEiFhFSQ97tAXA5bXbEWfFI=", + "resolved": "https://registry.npmjs.org/exit-on-epipe/-/exit-on-epipe-1.0.1.tgz", + "integrity": "sha512-h2z5mrROTxce56S+pnvAV890uu7ls7f1kEvVGJbw1OlFH3/mlJ5bkXu0KRyW94v37zzHPiUd55iLn3DA7TjWpw==", + "dev": true + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", "dev": true, "requires": { - "is-stream": "~1.1.0", - "minimist": "0.0.5", - "mkdirp": "~0.5.1", - "mold-source-map": "~0.4.0" + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" }, "dependencies": { - "minimist": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.5.tgz", - "integrity": "sha1-16oye87PUY+RBqxrjwA/o7zqhWY=", - "dev": true + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } } } }, @@ -7929,11 +13069,51 @@ } } }, + "ext-list": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/ext-list/-/ext-list-2.2.2.tgz", + "integrity": "sha512-u+SQgsubraE6zItfVA0tBuCBhfU9ogSRnsvygI7wht9TS510oLkBRXBsqopeUG/GBOIQyKZO9wjTqIu/sf5zFA==", + "dev": true, + "requires": { + "mime-db": "^1.28.0" + } + }, + "ext-name": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ext-name/-/ext-name-5.0.0.tgz", + "integrity": "sha512-yblEwXAbGv1VQDmow7s38W77hzAgJAO50ztBLMcUyUBfxv1HC+LGwtiEN+Co6LtlqT/5uwVOxsD4TNIilWhwdQ==", + "dev": true, + "requires": { + "ext-list": "^2.0.0", + "sort-keys-length": "^1.0.0" + } + }, "extend": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" }, + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, "external-editor": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", @@ -7945,6 +13125,71 @@ "tmp": "^0.0.33" } }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, + "requires": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, "extsprintf": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", @@ -8025,6 +13270,12 @@ "node-fetch": "~1.7.1" } }, + "figgy-pudding": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.2.tgz", + "integrity": "sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==", + "dev": true + }, "figures": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", @@ -8054,6 +13305,23 @@ "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==" }, + "filename-reserved-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/filename-reserved-regex/-/filename-reserved-regex-2.0.0.tgz", + "integrity": "sha1-q/c9+rc10EVECr/qLZHzieu/oik=", + "dev": true + }, + "filenamify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/filenamify/-/filenamify-2.1.0.tgz", + "integrity": "sha512-ICw7NTT6RsDp2rnYKVd8Fu4cr6ITzGy3+u4vUujPkabyaz+03F24NWEX7fs5fp+kBonlaqPH8fAO2NM+SXt/JA==", + "dev": true, + "requires": { + "filename-reserved-regex": "^2.0.0", + "strip-outer": "^1.0.0", + "trim-repeated": "^1.0.0" + } + }, "fill-range": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", @@ -8089,6 +13357,99 @@ } } }, + "find-cache-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", + "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^2.0.0", + "pkg-dir": "^3.0.0" + }, + "dependencies": { + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dev": true, + "requires": { + "pify": "^4.0.1", + "semver": "^5.6.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true + }, + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true + }, + "pkg-dir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", + "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", + "dev": true, + "requires": { + "find-up": "^3.0.0" + } + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } + } + }, "find-up": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", @@ -8180,6 +13541,37 @@ "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==", "dev": true }, + "flow-stoplight": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/flow-stoplight/-/flow-stoplight-1.0.0.tgz", + "integrity": "sha1-SiksW8/4s5+mzAyxqFPYbyfu/3s=", + "dev": true + }, + "flush-write-stream": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", + "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "readable-stream": "^2.3.6" + } + }, + "fmix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/fmix/-/fmix-0.1.0.tgz", + "integrity": "sha1-x7vxJN7ELJ0ZHPuUfQqXeN2YbAw=", + "dev": true, + "requires": { + "imul": "^1.0.0" + } + }, + "follow-redirects": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.1.tgz", + "integrity": "sha512-HWqDgT7ZEkqRzBvc2s64vSZ/hfOceEol3ac/7tKwzuvEyWx3/4UegXh5oBOIotkGsObyk3xznnSRVADBgWSQVg==", + "dev": true + }, "for-each": { "version": "0.3.3", "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", @@ -8188,6 +13580,18 @@ "is-callable": "^1.1.3" } }, + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "dev": true + }, + "foreach": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", + "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=", + "dev": true + }, "forever-agent": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", @@ -8209,12 +13613,37 @@ "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=", "dev": true }, + "fp-ts": { + "version": "1.19.3", + "resolved": "https://registry.npmjs.org/fp-ts/-/fp-ts-1.19.3.tgz", + "integrity": "sha512-H5KQDspykdHuztLTg+ajGN0Z2qUjcEf3Ybxc6hLt0k7/zPkn29XnKnxlBPyW2XIddWrGaJBzBl4VLYOtk39yZg==", + "dev": true + }, + "fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "dev": true, + "requires": { + "map-cache": "^0.2.2" + } + }, "fresh": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", "dev": true }, + "from2": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", + "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.0" + } + }, "fs-constants": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", @@ -8241,6 +13670,18 @@ "minipass": "^2.6.0" } }, + "fs-write-stream-atomic": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", + "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "iferr": "^0.1.5", + "imurmurhash": "^0.1.4", + "readable-stream": "1 || 2" + } + }, "fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", @@ -8293,8 +13734,7 @@ "function-bind": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" }, "functional-red-black-tree": { "version": "1.0.1", @@ -9059,7 +14499,6 @@ "version": "2.13.2", "resolved": "https://registry.npmjs.org/ganache-core/-/ganache-core-2.13.2.tgz", "integrity": "sha512-tIF5cR+ANQz0+3pHWxHjIwHqFXcVo0Mb+kcsNhglNFALcYo49aQpnS9dqHartqPfMFjiHh/qFoD3mYK0d/qGgw==", - "dev": true, "requires": { "abstract-leveldown": "3.0.0", "async": "2.6.2", @@ -9097,7 +14536,6 @@ "version": "5.0.0-beta.153", "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.0.0-beta.153.tgz", "integrity": "sha512-aXweZ1Z7vMNzJdLpR1CZUAIgnwjrZeUSvN9syCwlBaEBUFJmFY+HHnfuTI5vIhVs/mRkfJVrbEyl51JZQqyjAg==", - "dev": true, "optional": true, "requires": { "@ethersproject/address": ">=5.0.0-beta.128", @@ -9115,7 +14553,6 @@ "version": "5.0.8", "resolved": "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.0.8.tgz", "integrity": "sha512-fqJXkewcGdi8LogKMgRyzc/Ls2js07yor7+g9KfPs09uPOcQLg7cc34JN+lk34HH9gg2HU0DIA5797ZR8znkfw==", - "dev": true, "optional": true, "requires": { "@ethersproject/bignumber": "^5.0.13", @@ -9131,7 +14568,6 @@ "version": "5.0.10", "resolved": "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.0.10.tgz", "integrity": "sha512-irx7kH7FDAeW7QChDPW19WsxqeB1d3XLyOLSXm0bfPqL1SS07LXWltBJUBUxqC03ORpAOcM3JQj57DU8JnVY2g==", - "dev": true, "optional": true, "requires": { "@ethersproject/abstract-provider": "^5.0.8", @@ -9145,7 +14581,6 @@ "version": "5.0.9", "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.0.9.tgz", "integrity": "sha512-gKkmbZDMyGbVjr8nA5P0md1GgESqSGH7ILIrDidPdNXBl4adqbuA3OAuZx/O2oGpL6PtJ9BDa0kHheZ1ToHU3w==", - "dev": true, "optional": true, "requires": { "@ethersproject/bignumber": "^5.0.13", @@ -9159,7 +14594,6 @@ "version": "5.0.7", "resolved": "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.0.7.tgz", "integrity": "sha512-S5oh5DVfCo06xwJXT8fQC68mvJfgScTl2AXvbYMsHNfIBTDb084Wx4iA9MNlEReOv6HulkS+gyrUM/j3514rSw==", - "dev": true, "optional": true, "requires": { "@ethersproject/bytes": "^5.0.9" @@ -9169,7 +14603,6 @@ "version": "5.0.13", "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.0.13.tgz", "integrity": "sha512-b89bX5li6aK492yuPP5mPgRVgIxxBP7ksaBtKX5QQBsrZTpNOjf/MR4CjcUrAw8g+RQuD6kap9lPjFgY4U1/5A==", - "dev": true, "optional": true, "requires": { "@ethersproject/bytes": "^5.0.9", @@ -9181,7 +14614,6 @@ "version": "5.0.9", "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.0.9.tgz", "integrity": "sha512-k+17ZViDtAugC0s7HM6rdsTWEdIYII4RPCDkPEuxKc6i40Bs+m6tjRAtCECX06wKZnrEoR9pjOJRXHJ/VLoOcA==", - "dev": true, "optional": true, "requires": { "@ethersproject/logger": "^5.0.8" @@ -9191,7 +14623,6 @@ "version": "5.0.8", "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.0.8.tgz", "integrity": "sha512-sCc73pFBsl59eDfoQR5OCEZCRv5b0iywadunti6MQIr5lt3XpwxK1Iuzd8XSFO02N9jUifvuZRrt0cY0+NBgTg==", - "dev": true, "optional": true, "requires": { "@ethersproject/bignumber": "^5.0.13" @@ -9201,7 +14632,6 @@ "version": "5.0.10", "resolved": "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.0.10.tgz", "integrity": "sha512-Tf0bvs6YFhw28LuHnhlDWyr0xfcDxSXdwM4TcskeBbmXVSKLv3bJQEEEBFUcRX0fJuslR3gCVySEaSh7vuMx5w==", - "dev": true, "optional": true, "requires": { "@ethersproject/abstract-signer": "^5.0.10", @@ -9218,7 +14648,6 @@ "version": "5.0.7", "resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.0.7.tgz", "integrity": "sha512-zpUBmofWvx9PGfc7IICobgFQSgNmTOGTGLUxSYqZzY/T+b4y/2o5eqf/GGmD7qnTGzKQ42YlLNo+LeDP2qe55g==", - "dev": true, "optional": true, "requires": { "@ethersproject/bytes": "^5.0.9", @@ -9229,14 +14658,12 @@ "version": "5.0.8", "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.0.8.tgz", "integrity": "sha512-SkJCTaVTnaZ3/ieLF5pVftxGEFX56pTH+f2Slrpv7cU0TNpUZNib84QQdukd++sWUp/S7j5t5NW+WegbXd4U/A==", - "dev": true, "optional": true }, "@ethersproject/networks": { "version": "5.0.7", "resolved": "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.0.7.tgz", "integrity": "sha512-dI14QATndIcUgcCBL1c5vUr/YsI5cCHLN81rF7PU+yS7Xgp2/Rzbr9+YqpC6NBXHFUASjh6GpKqsVMpufAL0BQ==", - "dev": true, "optional": true, "requires": { "@ethersproject/logger": "^5.0.8" @@ -9246,7 +14673,6 @@ "version": "5.0.7", "resolved": "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.0.7.tgz", "integrity": "sha512-812H1Rus2vjw0zbasfDI1GLNPDsoyX1pYqiCgaR1BuyKxUTbwcH1B+214l6VGe1v+F6iEVb7WjIwMjKhb4EUsg==", - "dev": true, "optional": true, "requires": { "@ethersproject/logger": "^5.0.8" @@ -9256,7 +14682,6 @@ "version": "5.0.7", "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.0.7.tgz", "integrity": "sha512-ulUTVEuV7PT4jJTPpfhRHK57tkLEDEY9XSYJtrSNHOqdwMvH0z7BM2AKIMq4LVDlnu4YZASdKrkFGEIO712V9w==", - "dev": true, "optional": true, "requires": { "@ethersproject/bytes": "^5.0.9", @@ -9267,7 +14692,6 @@ "version": "5.0.8", "resolved": "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.0.8.tgz", "integrity": "sha512-YKxQM45eDa6WAD+s3QZPdm1uW1MutzVuyoepdRRVmMJ8qkk7iOiIhUkZwqKLNxKzEJijt/82ycuOREc9WBNAKg==", - "dev": true, "optional": true, "requires": { "@ethersproject/bytes": "^5.0.9", @@ -9280,7 +14704,6 @@ "version": "5.0.8", "resolved": "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.0.8.tgz", "integrity": "sha512-5IsdXf8tMY8QuHl8vTLnk9ehXDDm6x9FB9S9Og5IA1GYhLe5ZewydXSjlJlsqU2t9HRbfv97OJZV/pX8DVA/Hw==", - "dev": true, "optional": true, "requires": { "@ethersproject/bytes": "^5.0.9", @@ -9292,7 +14715,6 @@ "version": "5.0.9", "resolved": "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.0.9.tgz", "integrity": "sha512-0Fu1yhdFBkrbMjenEr+39tmDxuHmaw0pe9Jb18XuKoItj7Z3p7+UzdHLr2S/okvHDHYPbZE5gtANDdQ3ZL1nBA==", - "dev": true, "optional": true, "requires": { "@ethersproject/address": "^5.0.9", @@ -9310,7 +14732,6 @@ "version": "5.0.12", "resolved": "https://registry.npmjs.org/@ethersproject/web/-/web-5.0.12.tgz", "integrity": "sha512-gVxS5iW0bgidZ76kr7LsTxj4uzN5XpCLzvZrLp8TP+4YgxHfCeetFyQkRPgBEAJdNrexdSBayvyJvzGvOq0O8g==", - "dev": true, "optional": true, "requires": { "@ethersproject/base64": "^5.0.7", @@ -9324,14 +14745,12 @@ "version": "0.14.0", "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", - "dev": true, "optional": true }, "@szmarczak/http-timer": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", - "dev": true, "optional": true, "requires": { "defer-to-connect": "^1.0.1" @@ -9341,7 +14760,6 @@ "version": "4.11.6", "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz", "integrity": "sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==", - "dev": true, "requires": { "@types/node": "*" } @@ -9349,14 +14767,12 @@ "@types/node": { "version": "14.14.20", "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.20.tgz", - "integrity": "sha512-Y93R97Ouif9JEOWPIUyU+eyIdyRqQR0I8Ez1dzku4hDx34NWh4HbtIc3WNzwB1Y9ULvNGeu5B8h8bVL5cAk4/A==", - "dev": true + "integrity": "sha512-Y93R97Ouif9JEOWPIUyU+eyIdyRqQR0I8Ez1dzku4hDx34NWh4HbtIc3WNzwB1Y9ULvNGeu5B8h8bVL5cAk4/A==" }, "@types/pbkdf2": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/@types/pbkdf2/-/pbkdf2-3.1.0.tgz", "integrity": "sha512-Cf63Rv7jCQ0LaL8tNXmEyqTHuIJxRdlS5vMh1mj5voN4+QFhVZnlZruezqpWYDiJ8UTzhP0VmeLXCmBk66YrMQ==", - "dev": true, "requires": { "@types/node": "*" } @@ -9365,7 +14781,6 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/@types/secp256k1/-/secp256k1-4.0.1.tgz", "integrity": "sha512-+ZjSA8ELlOp8SlKi0YLB2tz9d5iPNEmOBd+8Rz21wTMdaXQIa9b6TEnD6l5qKOCypE7FSyPyck12qZJxSDNoog==", - "dev": true, "requires": { "@types/node": "*" } @@ -9373,14 +14788,12 @@ "@yarnpkg/lockfile": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz", - "integrity": "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==", - "dev": true + "integrity": "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==" }, "abstract-leveldown": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-3.0.0.tgz", "integrity": "sha512-KUWx9UWGQD12zsmLNj64/pndaz4iJh/Pj7nopgkfDG6RlCcbMZvT6+9l7dchK4idog2Is8VdC/PvNbFuFmalIQ==", - "dev": true, "requires": { "xtend": "~4.0.0" } @@ -9389,7 +14802,6 @@ "version": "1.3.7", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", - "dev": true, "optional": true, "requires": { "mime-types": "~2.1.24", @@ -9400,14 +14812,12 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.1.2.tgz", "integrity": "sha512-e5pEa2kBnBOgR4Y/p20pskXI74UEz7de8ZGVo58asOtvSVG5YAbJeELPZxOmt+Bnz3rX753YKhfIn4X4l1PPRQ==", - "dev": true, "optional": true }, "ajv": { "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, "requires": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -9419,7 +14829,6 @@ "version": "3.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, "requires": { "color-convert": "^1.9.0" } @@ -9427,39 +14836,33 @@ "arr-diff": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", - "dev": true + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" }, "arr-flatten": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", - "dev": true + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==" }, "arr-union": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", - "dev": true + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=" }, "array-flatten": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=", - "dev": true, "optional": true }, "array-unique": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", - "dev": true + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" }, "asn1": { "version": "0.2.4", "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", - "dev": true, "requires": { "safer-buffer": "~2.1.0" } @@ -9468,7 +14871,6 @@ "version": "5.4.1", "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", - "dev": true, "optional": true, "requires": { "bn.js": "^4.0.0", @@ -9480,20 +14882,17 @@ "assert-plus": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" }, "assign-symbols": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", - "dev": true + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=" }, "async": { "version": "2.6.2", "resolved": "https://registry.npmjs.org/async/-/async-2.6.2.tgz", "integrity": "sha512-H1qVYh1MYhEEFLsP97cVKqCGo7KfCyTt6uEWqsTBr9SO84oK9Uwbyd/yCW+6rKJLHksBNUVWZDAjfS+Ccx0Bbg==", - "dev": true, "requires": { "lodash": "^4.17.11" } @@ -9502,7 +14901,6 @@ "version": "0.2.4", "resolved": "https://registry.npmjs.org/async-eventemitter/-/async-eventemitter-0.2.4.tgz", "integrity": "sha512-pd20BwL7Yt1zwDFy+8MX8F1+WCT8aQeKj0kQnTrH9WaeRETlRamVhD0JtRPmrV4GfOJ2F9CvdQkZeZhnh2TuHw==", - "dev": true, "requires": { "async": "^2.4.0" } @@ -9510,38 +14908,32 @@ "async-limiter": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", - "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==", - "dev": true + "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==" }, "asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", - "dev": true + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" }, "atob": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", - "dev": true + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==" }, "aws-sign2": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", - "dev": true + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=" }, "aws4": { "version": "1.11.0", "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", - "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==", - "dev": true + "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==" }, "babel-code-frame": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", - "dev": true, "requires": { "chalk": "^1.1.3", "esutils": "^2.0.2", @@ -9551,20 +14943,17 @@ "ansi-regex": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" }, "ansi-styles": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" }, "chalk": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, "requires": { "ansi-styles": "^2.2.1", "escape-string-regexp": "^1.0.2", @@ -9576,14 +14965,12 @@ "js-tokens": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", - "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", - "dev": true + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=" }, "strip-ansi": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, "requires": { "ansi-regex": "^2.0.0" } @@ -9591,8 +14978,7 @@ "supports-color": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" } } }, @@ -9600,7 +14986,6 @@ "version": "6.26.3", "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.3.tgz", "integrity": "sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==", - "dev": true, "requires": { "babel-code-frame": "^6.26.0", "babel-generator": "^6.26.0", @@ -9627,7 +15012,6 @@ "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, "requires": { "ms": "2.0.0" } @@ -9635,20 +15019,17 @@ "json5": { "version": "0.5.1", "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", - "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", - "dev": true + "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=" }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" }, "slash": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", - "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", - "dev": true + "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=" } } }, @@ -9656,7 +15037,6 @@ "version": "6.26.1", "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", - "dev": true, "requires": { "babel-messages": "^6.23.0", "babel-runtime": "^6.26.0", @@ -9671,8 +15051,7 @@ "jsesc": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", - "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", - "dev": true + "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=" } } }, @@ -9680,7 +15059,6 @@ "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz", "integrity": "sha1-zORReto1b0IgvK6KAsKzRvmlZmQ=", - "dev": true, "requires": { "babel-helper-explode-assignable-expression": "^6.24.1", "babel-runtime": "^6.22.0", @@ -9691,7 +15069,6 @@ "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz", "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=", - "dev": true, "requires": { "babel-helper-hoist-variables": "^6.24.1", "babel-runtime": "^6.22.0", @@ -9703,7 +15080,6 @@ "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz", "integrity": "sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8=", - "dev": true, "requires": { "babel-helper-function-name": "^6.24.1", "babel-runtime": "^6.26.0", @@ -9715,7 +15091,6 @@ "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz", "integrity": "sha1-8luCz33BBDPFX3BZLVdGQArCLKo=", - "dev": true, "requires": { "babel-runtime": "^6.22.0", "babel-traverse": "^6.24.1", @@ -9726,7 +15101,6 @@ "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz", "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=", - "dev": true, "requires": { "babel-helper-get-function-arity": "^6.24.1", "babel-runtime": "^6.22.0", @@ -9739,7 +15113,6 @@ "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz", "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=", - "dev": true, "requires": { "babel-runtime": "^6.22.0", "babel-types": "^6.24.1" @@ -9749,7 +15122,6 @@ "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz", "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=", - "dev": true, "requires": { "babel-runtime": "^6.22.0", "babel-types": "^6.24.1" @@ -9759,7 +15131,6 @@ "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz", "integrity": "sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=", - "dev": true, "requires": { "babel-runtime": "^6.22.0", "babel-types": "^6.24.1" @@ -9769,7 +15140,6 @@ "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz", "integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=", - "dev": true, "requires": { "babel-runtime": "^6.26.0", "babel-types": "^6.26.0", @@ -9780,7 +15150,6 @@ "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz", "integrity": "sha1-XsWBgnrXI/7N04HxySg5BnbkVRs=", - "dev": true, "requires": { "babel-helper-function-name": "^6.24.1", "babel-runtime": "^6.22.0", @@ -9793,7 +15162,6 @@ "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz", "integrity": "sha1-v22/5Dk40XNpohPKiov3S2qQqxo=", - "dev": true, "requires": { "babel-helper-optimise-call-expression": "^6.24.1", "babel-messages": "^6.23.0", @@ -9807,7 +15175,6 @@ "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz", "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=", - "dev": true, "requires": { "babel-runtime": "^6.22.0", "babel-template": "^6.24.1" @@ -9817,7 +15184,6 @@ "version": "6.23.0", "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", - "dev": true, "requires": { "babel-runtime": "^6.22.0" } @@ -9826,7 +15192,6 @@ "version": "6.22.0", "resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz", "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=", - "dev": true, "requires": { "babel-runtime": "^6.22.0" } @@ -9834,26 +15199,22 @@ "babel-plugin-syntax-async-functions": { "version": "6.13.0", "resolved": "https://registry.npmjs.org/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz", - "integrity": "sha1-ytnK0RkbWtY0vzCuCHI5HgZHvpU=", - "dev": true + "integrity": "sha1-ytnK0RkbWtY0vzCuCHI5HgZHvpU=" }, "babel-plugin-syntax-exponentiation-operator": { "version": "6.13.0", "resolved": "https://registry.npmjs.org/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz", - "integrity": "sha1-nufoM3KQ2pUoggGmpX9BcDF4MN4=", - "dev": true + "integrity": "sha1-nufoM3KQ2pUoggGmpX9BcDF4MN4=" }, "babel-plugin-syntax-trailing-function-commas": { "version": "6.22.0", "resolved": "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz", - "integrity": "sha1-ugNgk3+NBuQBgKQ/4NVhb/9TLPM=", - "dev": true + "integrity": "sha1-ugNgk3+NBuQBgKQ/4NVhb/9TLPM=" }, "babel-plugin-transform-async-to-generator": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz", "integrity": "sha1-ZTbjeK/2yx1VF6wOQOs+n8jQh2E=", - "dev": true, "requires": { "babel-helper-remap-async-to-generator": "^6.24.1", "babel-plugin-syntax-async-functions": "^6.8.0", @@ -9864,7 +15225,6 @@ "version": "6.22.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz", "integrity": "sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=", - "dev": true, "requires": { "babel-runtime": "^6.22.0" } @@ -9873,7 +15233,6 @@ "version": "6.22.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz", "integrity": "sha1-u8UbSflk1wy42OC5ToICRs46YUE=", - "dev": true, "requires": { "babel-runtime": "^6.22.0" } @@ -9882,7 +15241,6 @@ "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz", "integrity": "sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8=", - "dev": true, "requires": { "babel-runtime": "^6.26.0", "babel-template": "^6.26.0", @@ -9895,7 +15253,6 @@ "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz", "integrity": "sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=", - "dev": true, "requires": { "babel-helper-define-map": "^6.24.1", "babel-helper-function-name": "^6.24.1", @@ -9912,7 +15269,6 @@ "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz", "integrity": "sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=", - "dev": true, "requires": { "babel-runtime": "^6.22.0", "babel-template": "^6.24.1" @@ -9922,7 +15278,6 @@ "version": "6.23.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz", "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=", - "dev": true, "requires": { "babel-runtime": "^6.22.0" } @@ -9931,7 +15286,6 @@ "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz", "integrity": "sha1-c+s9MQypaePvnskcU3QabxV2Qj4=", - "dev": true, "requires": { "babel-runtime": "^6.22.0", "babel-types": "^6.24.1" @@ -9941,7 +15295,6 @@ "version": "6.23.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz", "integrity": "sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=", - "dev": true, "requires": { "babel-runtime": "^6.22.0" } @@ -9950,7 +15303,6 @@ "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz", "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=", - "dev": true, "requires": { "babel-helper-function-name": "^6.24.1", "babel-runtime": "^6.22.0", @@ -9961,7 +15313,6 @@ "version": "6.22.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz", "integrity": "sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=", - "dev": true, "requires": { "babel-runtime": "^6.22.0" } @@ -9970,7 +15321,6 @@ "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz", "integrity": "sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ=", - "dev": true, "requires": { "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1", "babel-runtime": "^6.22.0", @@ -9981,7 +15331,6 @@ "version": "6.26.2", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz", "integrity": "sha512-CV9ROOHEdrjcwhIaJNBGMBCodN+1cfkwtM1SbUHmvyy35KGT7fohbpOxkE2uLz1o6odKK2Ck/tz47z+VqQfi9Q==", - "dev": true, "requires": { "babel-plugin-transform-strict-mode": "^6.24.1", "babel-runtime": "^6.26.0", @@ -9993,7 +15342,6 @@ "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz", "integrity": "sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM=", - "dev": true, "requires": { "babel-helper-hoist-variables": "^6.24.1", "babel-runtime": "^6.22.0", @@ -10004,7 +15352,6 @@ "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz", "integrity": "sha1-rJl+YoXNGO1hdq22B9YCNErThGg=", - "dev": true, "requires": { "babel-plugin-transform-es2015-modules-amd": "^6.24.1", "babel-runtime": "^6.22.0", @@ -10015,7 +15362,6 @@ "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz", "integrity": "sha1-JM72muIcuDp/hgPa0CH1cusnj40=", - "dev": true, "requires": { "babel-helper-replace-supers": "^6.24.1", "babel-runtime": "^6.22.0" @@ -10025,7 +15371,6 @@ "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz", "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=", - "dev": true, "requires": { "babel-helper-call-delegate": "^6.24.1", "babel-helper-get-function-arity": "^6.24.1", @@ -10039,7 +15384,6 @@ "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz", "integrity": "sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=", - "dev": true, "requires": { "babel-runtime": "^6.22.0", "babel-types": "^6.24.1" @@ -10049,7 +15393,6 @@ "version": "6.22.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz", "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=", - "dev": true, "requires": { "babel-runtime": "^6.22.0" } @@ -10058,7 +15401,6 @@ "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz", "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=", - "dev": true, "requires": { "babel-helper-regex": "^6.24.1", "babel-runtime": "^6.22.0", @@ -10069,7 +15411,6 @@ "version": "6.22.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz", "integrity": "sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=", - "dev": true, "requires": { "babel-runtime": "^6.22.0" } @@ -10078,7 +15419,6 @@ "version": "6.23.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz", "integrity": "sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I=", - "dev": true, "requires": { "babel-runtime": "^6.22.0" } @@ -10087,7 +15427,6 @@ "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz", "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=", - "dev": true, "requires": { "babel-helper-regex": "^6.24.1", "babel-runtime": "^6.22.0", @@ -10098,7 +15437,6 @@ "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz", "integrity": "sha1-KrDJx/MJj6SJB3cruBP+QejeOg4=", - "dev": true, "requires": { "babel-helper-builder-binary-assignment-operator-visitor": "^6.24.1", "babel-plugin-syntax-exponentiation-operator": "^6.8.0", @@ -10109,7 +15447,6 @@ "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz", "integrity": "sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8=", - "dev": true, "requires": { "regenerator-transform": "^0.10.0" } @@ -10118,7 +15455,6 @@ "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz", "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=", - "dev": true, "requires": { "babel-runtime": "^6.22.0", "babel-types": "^6.24.1" @@ -10128,7 +15464,6 @@ "version": "1.7.0", "resolved": "https://registry.npmjs.org/babel-preset-env/-/babel-preset-env-1.7.0.tgz", "integrity": "sha512-9OR2afuKDneX2/q2EurSftUYM0xGu4O2D9adAhVfADDhrYDaxXV0rBbevVYoY9n6nyX1PmQW/0jtpJvUNr9CHg==", - "dev": true, "requires": { "babel-plugin-check-es2015-constants": "^6.22.0", "babel-plugin-syntax-trailing-function-commas": "^6.22.0", @@ -10165,8 +15500,7 @@ "semver": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" } } }, @@ -10174,7 +15508,6 @@ "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz", "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=", - "dev": true, "requires": { "babel-core": "^6.26.0", "babel-runtime": "^6.26.0", @@ -10189,7 +15522,6 @@ "version": "0.4.18", "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", - "dev": true, "requires": { "source-map": "^0.5.6" } @@ -10200,7 +15532,6 @@ "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", - "dev": true, "requires": { "core-js": "^2.4.0", "regenerator-runtime": "^0.11.0" @@ -10210,7 +15541,6 @@ "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", - "dev": true, "requires": { "babel-runtime": "^6.26.0", "babel-traverse": "^6.26.0", @@ -10223,7 +15553,6 @@ "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", - "dev": true, "requires": { "babel-code-frame": "^6.26.0", "babel-messages": "^6.23.0", @@ -10240,7 +15569,6 @@ "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, "requires": { "ms": "2.0.0" } @@ -10248,14 +15576,12 @@ "globals": { "version": "9.18.0", "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", - "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", - "dev": true + "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==" }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" } } }, @@ -10263,7 +15589,6 @@ "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", - "dev": true, "requires": { "babel-runtime": "^6.26.0", "esutils": "^2.0.2", @@ -10274,8 +15599,7 @@ "to-fast-properties": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", - "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", - "dev": true + "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=" } } }, @@ -10283,7 +15607,6 @@ "version": "7.3.0", "resolved": "https://registry.npmjs.org/babelify/-/babelify-7.3.0.tgz", "integrity": "sha1-qlau3nBn/XvVSWZu4W3ChQh+iOU=", - "dev": true, "requires": { "babel-core": "^6.0.14", "object-assign": "^4.0.0" @@ -10292,14 +15615,12 @@ "babylon": { "version": "6.18.0", "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", - "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", - "dev": true + "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==" }, "backoff": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/backoff/-/backoff-2.5.0.tgz", "integrity": "sha1-9hbtqdPktmuMp/ynn2lXIsX44m8=", - "dev": true, "requires": { "precond": "0.2" } @@ -10307,14 +15628,12 @@ "balanced-match": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", - "dev": true + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" }, "base": { "version": "0.11.2", "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", - "dev": true, "requires": { "cache-base": "^1.0.1", "class-utils": "^0.3.5", @@ -10329,7 +15648,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, "requires": { "is-descriptor": "^1.0.0" } @@ -10340,7 +15658,6 @@ "version": "3.0.8", "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.8.tgz", "integrity": "sha512-Rl/1AWP4J/zRrk54hhlxH4drNxPJXYUaKffODVI53/dAsV4t9fBxyxYKAVPU1XBHxYwOWP9h9H0hM2MVw4YfJA==", - "dev": true, "requires": { "safe-buffer": "^5.0.1" } @@ -10348,14 +15665,12 @@ "base64-js": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "dev": true + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" }, "bcrypt-pbkdf": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", - "dev": true, "requires": { "tweetnacl": "^0.14.3" }, @@ -10363,8 +15678,7 @@ "tweetnacl": { "version": "0.14.5", "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", - "dev": true + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" } } }, @@ -10372,14 +15686,12 @@ "version": "9.0.1", "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.1.tgz", "integrity": "sha512-IdZR9mh6ahOBv/hYGiXyVuyCetmGJhtYkqLBpTStdhEGjegpPlUawydyaF3pbIOFynJTpllEs+NP+CS9jKFLjA==", - "dev": true, "optional": true }, "bip39": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/bip39/-/bip39-2.5.0.tgz", "integrity": "sha512-xwIx/8JKoT2+IPJpFEfXoWdYwP7UVAoUxxLNfGCfVowaJE7yg1Y5B1BVPqlUNsBq5/nGwmFkwRJ8xDW4sX8OdA==", - "dev": true, "requires": { "create-hash": "^1.1.0", "pbkdf2": "^3.0.9", @@ -10391,27 +15703,23 @@ "blakejs": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/blakejs/-/blakejs-1.1.0.tgz", - "integrity": "sha1-ad+S75U6qIylGjLfarHFShVfx6U=", - "dev": true + "integrity": "sha1-ad+S75U6qIylGjLfarHFShVfx6U=" }, "bluebird": { "version": "3.7.2", "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", - "dev": true, "optional": true }, "bn.js": { "version": "4.11.9", "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", - "dev": true + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==" }, "body-parser": { "version": "1.19.0", "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", - "dev": true, "optional": true, "requires": { "bytes": "3.1.0", @@ -10430,7 +15738,6 @@ "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, "optional": true, "requires": { "ms": "2.0.0" @@ -10440,14 +15747,12 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true, "optional": true }, "qs": { "version": "6.7.0", "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", - "dev": true, "optional": true } } @@ -10456,7 +15761,6 @@ "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -10465,14 +15769,12 @@ "brorand": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", - "dev": true + "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=" }, "browserify-aes": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", - "dev": true, "requires": { "buffer-xor": "^1.0.3", "cipher-base": "^1.0.0", @@ -10486,7 +15788,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", - "dev": true, "optional": true, "requires": { "browserify-aes": "^1.0.4", @@ -10498,7 +15799,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", - "dev": true, "optional": true, "requires": { "cipher-base": "^1.0.1", @@ -10511,7 +15811,6 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz", "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", - "dev": true, "optional": true, "requires": { "bn.js": "^5.0.0", @@ -10522,7 +15821,6 @@ "version": "5.2.0", "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz", "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==", - "dev": true, "optional": true } } @@ -10531,7 +15829,6 @@ "version": "4.2.1", "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz", "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==", - "dev": true, "optional": true, "requires": { "bn.js": "^5.1.1", @@ -10549,14 +15846,12 @@ "version": "5.2.0", "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz", "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==", - "dev": true, "optional": true }, "readable-stream": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, "optional": true, "requires": { "inherits": "^2.0.3", @@ -10570,7 +15865,6 @@ "version": "3.2.8", "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-3.2.8.tgz", "integrity": "sha512-WHVocJYavUwVgVViC0ORikPHQquXwVh939TaelZ4WDqpWgTX/FsGhl/+P4qBUAGcRvtOgDgC+xftNWWp2RUTAQ==", - "dev": true, "requires": { "caniuse-lite": "^1.0.30000844", "electron-to-chromium": "^1.3.47" @@ -10580,7 +15874,6 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", "integrity": "sha1-vhYedsNU9veIrkBx9j806MTwpCo=", - "dev": true, "requires": { "base-x": "^3.0.2" } @@ -10589,7 +15882,6 @@ "version": "2.1.2", "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz", "integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==", - "dev": true, "requires": { "bs58": "^4.0.0", "create-hash": "^1.1.0", @@ -10600,7 +15892,6 @@ "version": "5.7.1", "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "dev": true, "requires": { "base64-js": "^1.3.1", "ieee754": "^1.1.13" @@ -10609,27 +15900,23 @@ "buffer-from": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", - "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", - "dev": true + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" }, "buffer-to-arraybuffer": { "version": "0.0.5", "resolved": "https://registry.npmjs.org/buffer-to-arraybuffer/-/buffer-to-arraybuffer-0.0.5.tgz", "integrity": "sha1-YGSkD6dutDxyOrqe+PbhIW0QURo=", - "dev": true, "optional": true }, "buffer-xor": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", - "dev": true + "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=" }, "bufferutil": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.3.tgz", "integrity": "sha512-yEYTwGndELGvfXsImMBLop58eaGW+YdONi1fNjTINSY98tmMmFijBG6WXgdkfuLNt4imzQNtIE+eBp1PVpMCSw==", - "dev": true, "requires": { "node-gyp-build": "^4.2.0" } @@ -10638,14 +15925,12 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", - "dev": true, "optional": true }, "bytewise": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/bytewise/-/bytewise-1.1.0.tgz", "integrity": "sha1-HRPL/3F65xWAlKqIGzXQgbOHJT4=", - "dev": true, "requires": { "bytewise-core": "^1.2.2", "typewise": "^1.0.3" @@ -10655,7 +15940,6 @@ "version": "1.2.3", "resolved": "https://registry.npmjs.org/bytewise-core/-/bytewise-core-1.2.3.tgz", "integrity": "sha1-P7QQx+kVWOsasiqCg0V3qmvWHUI=", - "dev": true, "requires": { "typewise-core": "^1.2" } @@ -10664,7 +15948,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", - "dev": true, "requires": { "collection-visit": "^1.0.0", "component-emitter": "^1.2.1", @@ -10681,7 +15964,6 @@ "version": "6.1.0", "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", - "dev": true, "optional": true, "requires": { "clone-response": "^1.0.2", @@ -10697,7 +15979,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", - "dev": true, "optional": true } } @@ -10706,7 +15987,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/cachedown/-/cachedown-1.0.0.tgz", "integrity": "sha1-1D8DbkUQaWsxJG19sx6/D3rDLRU=", - "dev": true, "requires": { "abstract-leveldown": "^2.4.1", "lru-cache": "^3.2.0" @@ -10716,7 +15996,6 @@ "version": "2.7.2", "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-2.7.2.tgz", "integrity": "sha512-+OVvxH2rHVEhWLdbudP6p0+dNMXu8JA1CbhP19T8paTYAcX7oJ4OVjT+ZUVpv7mITxXHqDMej+GdqXBmXkw09w==", - "dev": true, "requires": { "xtend": "~4.0.0" } @@ -10725,7 +16004,6 @@ "version": "3.2.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-3.2.0.tgz", "integrity": "sha1-cXibO39Tmb7IVl3aOKow0qCX7+4=", - "dev": true, "requires": { "pseudomap": "^1.0.1" } @@ -10736,7 +16014,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "dev": true, "requires": { "function-bind": "^1.1.1", "get-intrinsic": "^1.0.2" @@ -10745,20 +16022,17 @@ "caniuse-lite": { "version": "1.0.30001174", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001174.tgz", - "integrity": "sha512-tqClL/4ThQq6cfFXH3oJL4rifFBeM6gTkphjao5kgwMaW9yn0tKgQLAEfKzDwj6HQWCB/aWo8kTFlSvIN8geEA==", - "dev": true + "integrity": "sha512-tqClL/4ThQq6cfFXH3oJL4rifFBeM6gTkphjao5kgwMaW9yn0tKgQLAEfKzDwj6HQWCB/aWo8kTFlSvIN8geEA==" }, "caseless": { "version": "0.12.0", "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", - "dev": true + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" }, "chalk": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, "requires": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", @@ -10769,7 +16043,6 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/checkpoint-store/-/checkpoint-store-1.1.0.tgz", "integrity": "sha1-BOTLUWuRQziTWB5tRgGnjpVS6gY=", - "dev": true, "requires": { "functional-red-black-tree": "^1.0.1" } @@ -10778,20 +16051,17 @@ "version": "1.1.4", "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", - "dev": true, "optional": true }, "ci-info": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", - "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", - "dev": true + "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==" }, "cids": { "version": "0.7.5", "resolved": "https://registry.npmjs.org/cids/-/cids-0.7.5.tgz", "integrity": "sha512-zT7mPeghoWAu+ppn8+BS1tQ5qGmbMfB4AregnQjA/qHY3GC1m1ptI9GkWNlgeu38r7CuRdXB47uY2XgAYt6QVA==", - "dev": true, "optional": true, "requires": { "buffer": "^5.5.0", @@ -10805,7 +16075,6 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-1.0.4.tgz", "integrity": "sha512-NDd7FeS3QamVtbgfvu5h7fd1IlbaC4EQ0/pgU4zqE2vdHCmBGsUa0TiM8/TdSeG6BMPC92OOCf8F1ocE/Wkrrg==", - "dev": true, "optional": true, "requires": { "buffer": "^5.6.0", @@ -10818,7 +16087,6 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", - "dev": true, "requires": { "inherits": "^2.0.1", "safe-buffer": "^5.0.1" @@ -10828,14 +16096,12 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/class-is/-/class-is-1.1.0.tgz", "integrity": "sha512-rhjH9AG1fvabIDoGRVH587413LPjTZgmDF9fOFCbFJQV4yuocX1mHxxvXI4g3cGwbVY9wAYIoKlg1N79frJKQw==", - "dev": true, "optional": true }, "class-utils": { "version": "0.3.6", "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", - "dev": true, "requires": { "arr-union": "^3.1.0", "define-property": "^0.2.5", @@ -10847,7 +16113,6 @@ "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, "requires": { "is-descriptor": "^0.1.0" } @@ -10856,7 +16121,6 @@ "version": "0.1.6", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, "requires": { "kind-of": "^3.0.2" }, @@ -10865,7 +16129,6 @@ "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, "requires": { "is-buffer": "^1.1.5" } @@ -10875,14 +16138,12 @@ "is-buffer": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" }, "is-data-descriptor": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, "requires": { "kind-of": "^3.0.2" }, @@ -10891,7 +16152,6 @@ "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, "requires": { "is-buffer": "^1.1.5" } @@ -10902,7 +16162,6 @@ "version": "0.1.6", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, "requires": { "is-accessor-descriptor": "^0.1.6", "is-data-descriptor": "^0.1.4", @@ -10912,22 +16171,19 @@ "kind-of": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" } } }, "clone": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", - "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", - "dev": true + "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=" }, "clone-response": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", - "dev": true, "optional": true, "requires": { "mimic-response": "^1.0.0" @@ -10937,7 +16193,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", - "dev": true, "requires": { "map-visit": "^1.0.0", "object-visit": "^1.0.0" @@ -10947,7 +16202,6 @@ "version": "1.9.3", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, "requires": { "color-name": "1.1.3" } @@ -10955,14 +16209,12 @@ "color-name": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" }, "combined-stream": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dev": true, "requires": { "delayed-stream": "~1.0.0" } @@ -10970,20 +16222,17 @@ "component-emitter": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", - "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", - "dev": true + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==" }, "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" }, "concat-stream": { "version": "1.6.2", "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "dev": true, "requires": { "buffer-from": "^1.0.0", "inherits": "^2.0.3", @@ -10995,7 +16244,6 @@ "version": "0.5.3", "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", - "dev": true, "optional": true, "requires": { "safe-buffer": "5.1.2" @@ -11005,7 +16253,6 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true, "optional": true } } @@ -11014,7 +16261,6 @@ "version": "2.5.2", "resolved": "https://registry.npmjs.org/content-hash/-/content-hash-2.5.2.tgz", "integrity": "sha512-FvIQKy0S1JaWV10sMsA7TRx8bpU+pqPkhbsfvOJAdjRXvYxEckAwQWGwtRjiaJfh+E0DvcWUGqcdjwMGFjsSdw==", - "dev": true, "optional": true, "requires": { "cids": "^0.7.1", @@ -11026,14 +16272,12 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", - "dev": true, "optional": true }, "convert-source-map": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", - "dev": true, "requires": { "safe-buffer": "~5.1.1" }, @@ -11041,8 +16285,7 @@ "safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" } } }, @@ -11050,52 +16293,44 @@ "version": "0.4.0", "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==", - "dev": true, "optional": true }, "cookie-signature": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=", - "dev": true, "optional": true }, "cookiejar": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.2.tgz", "integrity": "sha512-Mw+adcfzPxcPeI+0WlvRrr/3lGVO0bD75SxX6811cxSh1Wbxx7xZBGK1eVtDf6si8rg2lhnUjsVLMFMfbRIuwA==", - "dev": true, "optional": true }, "copy-descriptor": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", - "dev": true + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=" }, "core-js": { "version": "2.6.12", "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz", - "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==", - "dev": true + "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==" }, "core-js-pure": { "version": "3.8.2", "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.8.2.tgz", - "integrity": "sha512-v6zfIQqL/pzTVAbZvYUozsxNfxcFb6Ks3ZfEbuneJl3FW9Jb8F6vLWB6f+qTmAu72msUdyb84V8d/yBFf7FNnw==", - "dev": true + "integrity": "sha512-v6zfIQqL/pzTVAbZvYUozsxNfxcFb6Ks3ZfEbuneJl3FW9Jb8F6vLWB6f+qTmAu72msUdyb84V8d/yBFf7FNnw==" }, "core-util-is": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", - "dev": true + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" }, "cors": { "version": "2.8.5", "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", - "dev": true, "optional": true, "requires": { "object-assign": "^4", @@ -11106,7 +16341,6 @@ "version": "4.0.4", "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", - "dev": true, "optional": true, "requires": { "bn.js": "^4.1.0", @@ -11117,7 +16351,6 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", - "dev": true, "requires": { "cipher-base": "^1.0.1", "inherits": "^2.0.1", @@ -11130,7 +16363,6 @@ "version": "1.1.7", "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", - "dev": true, "requires": { "cipher-base": "^1.0.3", "create-hash": "^1.1.0", @@ -11144,7 +16376,6 @@ "version": "2.2.3", "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-2.2.3.tgz", "integrity": "sha512-PrWWNH3yL2NYIb/7WF/5vFG3DCQiXDOVf8k3ijatbrtnwNuhMWLC7YF7uqf53tbTFDzHIUD8oITw4Bxt8ST3Nw==", - "dev": true, "requires": { "node-fetch": "2.1.2", "whatwg-fetch": "2.0.4" @@ -11154,7 +16385,6 @@ "version": "3.12.0", "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", - "dev": true, "optional": true, "requires": { "browserify-cipher": "^1.0.0", @@ -11174,7 +16404,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", - "dev": true, "requires": { "es5-ext": "^0.10.50", "type": "^1.0.1" @@ -11184,7 +16413,6 @@ "version": "1.14.1", "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "dev": true, "requires": { "assert-plus": "^1.0.0" } @@ -11193,7 +16421,6 @@ "version": "3.2.6", "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", - "dev": true, "requires": { "ms": "^2.1.1" } @@ -11201,14 +16428,12 @@ "decode-uri-component": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", - "dev": true + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=" }, "decompress-response": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", - "dev": true, "optional": true, "requires": { "mimic-response": "^1.0.0" @@ -11218,7 +16443,6 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz", "integrity": "sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==", - "dev": true, "requires": { "is-arguments": "^1.0.4", "is-date-object": "^1.0.1", @@ -11232,14 +16456,12 @@ "version": "1.1.3", "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==", - "dev": true, "optional": true }, "deferred-leveldown": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/deferred-leveldown/-/deferred-leveldown-4.0.2.tgz", "integrity": "sha512-5fMC8ek8alH16QiV0lTCis610D1Zt1+LA4MS4d63JgS32lrCjTFDUFz2ao09/j2I4Bqb5jL4FZYwu7Jz0XO1ww==", - "dev": true, "requires": { "abstract-leveldown": "~5.0.0", "inherits": "^2.0.3" @@ -11249,7 +16471,6 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-5.0.0.tgz", "integrity": "sha512-5mU5P1gXtsMIXg65/rsYGsi93+MlogXZ9FA8JnwKurHQg64bfXwGYVdVdijNTVNOlAsuIiOwHdvFFD5JqCJQ7A==", - "dev": true, "requires": { "xtend": "~4.0.0" } @@ -11260,7 +16481,6 @@ "version": "1.1.3", "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", - "dev": true, "requires": { "object-keys": "^1.0.12" } @@ -11269,7 +16489,6 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", - "dev": true, "requires": { "is-descriptor": "^1.0.2", "isobject": "^3.0.1" @@ -11278,27 +16497,23 @@ "defined": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", - "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=", - "dev": true + "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=" }, "delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", - "dev": true + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" }, "depd": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", - "dev": true, "optional": true }, "des.js": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", - "dev": true, "optional": true, "requires": { "inherits": "^2.0.1", @@ -11309,14 +16524,12 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", - "dev": true, "optional": true }, "detect-indent": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", - "dev": true, "requires": { "repeating": "^2.0.0" } @@ -11325,7 +16538,6 @@ "version": "5.0.3", "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", - "dev": true, "optional": true, "requires": { "bn.js": "^4.1.0", @@ -11336,14 +16548,12 @@ "dom-walk": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.2.tgz", - "integrity": "sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==", - "dev": true + "integrity": "sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==" }, "dotignore": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/dotignore/-/dotignore-0.1.2.tgz", "integrity": "sha512-UGGGWfSauusaVJC+8fgV+NVvBXkCTmVv7sk6nojDZZvuOUNGUy0Zk4UpHQD6EDjS0jpBwcACvH4eofvyzBcRDw==", - "dev": true, "requires": { "minimatch": "^3.0.4" } @@ -11352,14 +16562,12 @@ "version": "0.1.4", "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", - "dev": true, "optional": true }, "ecc-jsbn": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", - "dev": true, "requires": { "jsbn": "~0.1.0", "safer-buffer": "^2.1.0" @@ -11369,20 +16577,17 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", - "dev": true, "optional": true }, "electron-to-chromium": { "version": "1.3.636", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.636.tgz", - "integrity": "sha512-Adcvng33sd3gTjNIDNXGD1G4H6qCImIy2euUJAQHtLNplEKU5WEz5KRJxupRNIIT8sD5oFZLTKBWAf12Bsz24A==", - "dev": true + "integrity": "sha512-Adcvng33sd3gTjNIDNXGD1G4H6qCImIy2euUJAQHtLNplEKU5WEz5KRJxupRNIIT8sD5oFZLTKBWAf12Bsz24A==" }, "elliptic": { "version": "6.5.3", "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.3.tgz", "integrity": "sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw==", - "dev": true, "requires": { "bn.js": "^4.4.0", "brorand": "^1.0.1", @@ -11397,14 +16602,12 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", - "dev": true, "optional": true }, "encoding": { "version": "0.1.13", "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", - "dev": true, "requires": { "iconv-lite": "^0.6.2" }, @@ -11413,7 +16616,6 @@ "version": "0.6.2", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.2.tgz", "integrity": "sha512-2y91h5OpQlolefMPmUlivelittSWy0rP+oYVpn6A7GwVHNE8AWzoYOBNmlwks3LobaJxgHCYZAnyNo2GgpNRNQ==", - "dev": true, "requires": { "safer-buffer": ">= 2.1.2 < 3.0.0" } @@ -11424,7 +16626,6 @@ "version": "5.0.4", "resolved": "https://registry.npmjs.org/encoding-down/-/encoding-down-5.0.4.tgz", "integrity": "sha512-8CIZLDcSKxgzT+zX8ZVfgNbu8Md2wq/iqa1Y7zyVR18QBEAc0Nmzuvj/N5ykSKpfGzjM8qxbaFntLPwnVoUhZw==", - "dev": true, "requires": { "abstract-leveldown": "^5.0.0", "inherits": "^2.0.3", @@ -11437,7 +16638,6 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-5.0.0.tgz", "integrity": "sha512-5mU5P1gXtsMIXg65/rsYGsi93+MlogXZ9FA8JnwKurHQg64bfXwGYVdVdijNTVNOlAsuIiOwHdvFFD5JqCJQ7A==", - "dev": true, "requires": { "xtend": "~4.0.0" } @@ -11448,7 +16648,6 @@ "version": "1.4.4", "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dev": true, "requires": { "once": "^1.4.0" } @@ -11457,7 +16656,6 @@ "version": "0.1.8", "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", - "dev": true, "requires": { "prr": "~1.0.1" } @@ -11466,7 +16664,6 @@ "version": "1.18.0-next.1", "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0-next.1.tgz", "integrity": "sha512-I4UGspA0wpZXWENrdA0uHbnhte683t3qT/1VFH9aX2dA5PPSf6QW5HHXf5HImaqPmjXaVeVk4RGWnaylmV7uAA==", - "dev": true, "requires": { "es-to-primitive": "^1.2.1", "function-bind": "^1.1.1", @@ -11486,7 +16683,6 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "dev": true, "requires": { "is-callable": "^1.1.4", "is-date-object": "^1.0.1", @@ -11497,7 +16693,6 @@ "version": "0.10.53", "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.53.tgz", "integrity": "sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q==", - "dev": true, "requires": { "es6-iterator": "~2.0.3", "es6-symbol": "~3.1.3", @@ -11508,7 +16703,6 @@ "version": "2.0.3", "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", - "dev": true, "requires": { "d": "1", "es5-ext": "^0.10.35", @@ -11519,7 +16713,6 @@ "version": "3.1.3", "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", - "dev": true, "requires": { "d": "^1.0.1", "ext": "^1.1.2" @@ -11529,33 +16722,28 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", - "dev": true, "optional": true }, "escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" }, "esutils": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==" }, "etag": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", - "dev": true, "optional": true }, "eth-block-tracker": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/eth-block-tracker/-/eth-block-tracker-3.0.1.tgz", "integrity": "sha512-WUVxWLuhMmsfenfZvFO5sbl1qFY2IqUlw/FPVmjjdElpqLsZtSG+wPe9Dz7W/sB6e80HgFKknOmKk2eNlznHug==", - "dev": true, "requires": { "eth-query": "^2.1.0", "ethereumjs-tx": "^1.3.3", @@ -11570,7 +16758,6 @@ "version": "1.3.7", "resolved": "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-1.3.7.tgz", "integrity": "sha512-wvLMxzt1RPhAQ9Yi3/HKZTn0FZYpnsmQdbKYfUUpi4j1SEIcbkd9tndVjcPrufY3V7j2IebOpC00Zp2P/Ay2kA==", - "dev": true, "requires": { "ethereum-common": "^0.0.18", "ethereumjs-util": "^5.0.0" @@ -11580,7 +16767,6 @@ "version": "5.2.1", "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", - "dev": true, "requires": { "bn.js": "^4.11.0", "create-hash": "^1.1.2", @@ -11594,8 +16780,7 @@ "pify": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" } } }, @@ -11603,7 +16788,6 @@ "version": "2.0.8", "resolved": "https://registry.npmjs.org/eth-ens-namehash/-/eth-ens-namehash-2.0.8.tgz", "integrity": "sha1-IprEbsqG1S4MmR58sq74P/D2i88=", - "dev": true, "optional": true, "requires": { "idna-uts46-hx": "^2.3.1", @@ -11614,7 +16798,6 @@ "version": "3.2.1", "resolved": "https://registry.npmjs.org/eth-json-rpc-infura/-/eth-json-rpc-infura-3.2.1.tgz", "integrity": "sha512-W7zR4DZvyTn23Bxc0EWsq4XGDdD63+XPUCEhV2zQvQGavDVC4ZpFDK4k99qN7bd7/fjj37+rxmuBOBeIqCA5Mw==", - "dev": true, "requires": { "cross-fetch": "^2.1.1", "eth-json-rpc-middleware": "^1.5.0", @@ -11626,7 +16809,6 @@ "version": "1.6.0", "resolved": "https://registry.npmjs.org/eth-json-rpc-middleware/-/eth-json-rpc-middleware-1.6.0.tgz", "integrity": "sha512-tDVCTlrUvdqHKqivYMjtFZsdD7TtpNLBCfKAcOpaVs7orBMS/A8HWro6dIzNtTZIR05FAbJ3bioFOnZpuCew9Q==", - "dev": true, "requires": { "async": "^2.5.0", "eth-query": "^2.1.2", @@ -11647,7 +16829,6 @@ "version": "2.6.3", "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-2.6.3.tgz", "integrity": "sha512-2++wDf/DYqkPR3o5tbfdhF96EfMApo1GpPfzOsR/ZYXdkSmELlvOOEAl9iKkRsktMPHdGjO4rtkBpf2I7TiTeA==", - "dev": true, "requires": { "xtend": "~4.0.0" } @@ -11656,7 +16837,6 @@ "version": "1.2.2", "resolved": "https://registry.npmjs.org/deferred-leveldown/-/deferred-leveldown-1.2.2.tgz", "integrity": "sha512-uukrWD2bguRtXilKt6cAWKyoXrTSMo5m7crUdLfWQmu8kIm88w3QZoUL+6nhpfKVmhHANER6Re3sKoNoZ3IKMA==", - "dev": true, "requires": { "abstract-leveldown": "~2.6.0" } @@ -11665,7 +16845,6 @@ "version": "2.0.5", "resolved": "https://registry.npmjs.org/ethereumjs-account/-/ethereumjs-account-2.0.5.tgz", "integrity": "sha512-bgDojnXGjhMwo6eXQC0bY6UK2liSFUSMwwylOmQvZbSl/D7NXQ3+vrGO46ZeOgjGfxXmgIeVNDIiHw7fNZM4VA==", - "dev": true, "requires": { "ethereumjs-util": "^5.0.0", "rlp": "^2.0.0", @@ -11676,7 +16855,6 @@ "version": "1.7.1", "resolved": "https://registry.npmjs.org/ethereumjs-block/-/ethereumjs-block-1.7.1.tgz", "integrity": "sha512-B+sSdtqm78fmKkBq78/QLKJbu/4Ts4P2KFISdgcuZUPDm9x+N7qgBPIIFUGbaakQh8bzuquiRVbdmvPKqbILRg==", - "dev": true, "requires": { "async": "^2.0.1", "ethereum-common": "0.2.0", @@ -11688,8 +16866,7 @@ "ethereum-common": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/ethereum-common/-/ethereum-common-0.2.0.tgz", - "integrity": "sha512-XOnAR/3rntJgbCdGhqdaLIxDLWKLmsZOGhHdBKadEr6gEnJLH52k93Ou+TUdFaPN3hJc3isBZBal3U/XZ15abA==", - "dev": true + "integrity": "sha512-XOnAR/3rntJgbCdGhqdaLIxDLWKLmsZOGhHdBKadEr6gEnJLH52k93Ou+TUdFaPN3hJc3isBZBal3U/XZ15abA==" } } }, @@ -11697,7 +16874,6 @@ "version": "1.3.7", "resolved": "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-1.3.7.tgz", "integrity": "sha512-wvLMxzt1RPhAQ9Yi3/HKZTn0FZYpnsmQdbKYfUUpi4j1SEIcbkd9tndVjcPrufY3V7j2IebOpC00Zp2P/Ay2kA==", - "dev": true, "requires": { "ethereum-common": "^0.0.18", "ethereumjs-util": "^5.0.0" @@ -11707,7 +16883,6 @@ "version": "5.2.1", "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", - "dev": true, "requires": { "bn.js": "^4.11.0", "create-hash": "^1.1.2", @@ -11722,7 +16897,6 @@ "version": "2.6.0", "resolved": "https://registry.npmjs.org/ethereumjs-vm/-/ethereumjs-vm-2.6.0.tgz", "integrity": "sha512-r/XIUik/ynGbxS3y+mvGnbOKnuLo40V5Mj1J25+HEO63aWYREIqvWeRO/hnROlMBE5WoniQmPmhiaN0ctiHaXw==", - "dev": true, "requires": { "async": "^2.1.2", "async-eventemitter": "^0.2.2", @@ -11741,7 +16915,6 @@ "version": "2.2.2", "resolved": "https://registry.npmjs.org/ethereumjs-block/-/ethereumjs-block-2.2.2.tgz", "integrity": "sha512-2p49ifhek3h2zeg/+da6XpdFR3GlqY3BIEiqxGF8j9aSRIgkb7M1Ky+yULBKJOu8PAZxfhsYA+HxUk2aCQp3vg==", - "dev": true, "requires": { "async": "^2.0.1", "ethereumjs-common": "^1.5.0", @@ -11754,7 +16927,6 @@ "version": "5.2.1", "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", - "dev": true, "requires": { "bn.js": "^4.11.0", "create-hash": "^1.1.2", @@ -11771,7 +16943,6 @@ "version": "2.1.2", "resolved": "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-2.1.2.tgz", "integrity": "sha512-zZEK1onCeiORb0wyCXUvg94Ve5It/K6GD1K+26KfFKodiBiS6d9lfCXlUKGBBdQ+bv7Day+JK0tj1K+BeNFRAw==", - "dev": true, "requires": { "ethereumjs-common": "^1.5.0", "ethereumjs-util": "^6.0.0" @@ -11781,7 +16952,6 @@ "version": "6.2.1", "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz", "integrity": "sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==", - "dev": true, "requires": { "@types/bn.js": "^4.11.3", "bn.js": "^4.11.0", @@ -11797,20 +16967,17 @@ "isarray": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "dev": true + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" }, "level-codec": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/level-codec/-/level-codec-7.0.1.tgz", - "integrity": "sha512-Ua/R9B9r3RasXdRmOtd+t9TCOEIIlts+TN/7XTT2unhDaL6sJn83S3rUyljbr6lVtw49N3/yA0HHjpV6Kzb2aQ==", - "dev": true + "integrity": "sha512-Ua/R9B9r3RasXdRmOtd+t9TCOEIIlts+TN/7XTT2unhDaL6sJn83S3rUyljbr6lVtw49N3/yA0HHjpV6Kzb2aQ==" }, "level-errors": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/level-errors/-/level-errors-1.0.5.tgz", "integrity": "sha512-/cLUpQduF6bNrWuAC4pwtUKA5t669pCsCi2XbmojG2tFeOr9j6ShtdDCtFFQO1DRt+EVZhx9gPzP9G2bUaG4ig==", - "dev": true, "requires": { "errno": "~0.1.1" } @@ -11819,7 +16986,6 @@ "version": "1.3.1", "resolved": "https://registry.npmjs.org/level-iterator-stream/-/level-iterator-stream-1.3.1.tgz", "integrity": "sha1-5Dt4sagUPm+pek9IXrjqUwNS8u0=", - "dev": true, "requires": { "inherits": "^2.0.1", "level-errors": "^1.0.3", @@ -11831,7 +16997,6 @@ "version": "1.1.14", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", - "dev": true, "requires": { "core-util-is": "~1.0.0", "inherits": "~2.0.1", @@ -11845,7 +17010,6 @@ "version": "0.0.0", "resolved": "https://registry.npmjs.org/level-ws/-/level-ws-0.0.0.tgz", "integrity": "sha1-Ny5RIXeSSgBCSwtDrvK7QkltIos=", - "dev": true, "requires": { "readable-stream": "~1.0.15", "xtend": "~2.1.1" @@ -11855,7 +17019,6 @@ "version": "1.0.34", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", - "dev": true, "requires": { "core-util-is": "~1.0.0", "inherits": "~2.0.1", @@ -11867,7 +17030,6 @@ "version": "2.1.2", "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.1.2.tgz", "integrity": "sha1-bv7MKk2tjmlixJAbM3znuoe10os=", - "dev": true, "requires": { "object-keys": "~0.4.0" } @@ -11878,7 +17040,6 @@ "version": "1.3.9", "resolved": "https://registry.npmjs.org/levelup/-/levelup-1.3.9.tgz", "integrity": "sha512-VVGHfKIlmw8w1XqpGOAGwq6sZm2WwWLmlDcULkKWQXEA5EopA8OBNJ2Ck2v6bdk8HeEZSbCSEgzXadyQFm76sQ==", - "dev": true, "requires": { "deferred-leveldown": "~1.2.1", "level-codec": "~7.0.0", @@ -11892,14 +17053,12 @@ "ltgt": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/ltgt/-/ltgt-2.2.1.tgz", - "integrity": "sha1-81ypHEk/e3PaDgdJUwTxezH4fuU=", - "dev": true + "integrity": "sha1-81ypHEk/e3PaDgdJUwTxezH4fuU=" }, "memdown": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/memdown/-/memdown-1.4.1.tgz", "integrity": "sha1-tOThkhdGZP+65BNhqlAPMRnv4hU=", - "dev": true, "requires": { "abstract-leveldown": "~2.7.1", "functional-red-black-tree": "^1.0.1", @@ -11913,7 +17072,6 @@ "version": "2.7.2", "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-2.7.2.tgz", "integrity": "sha512-+OVvxH2rHVEhWLdbudP6p0+dNMXu8JA1CbhP19T8paTYAcX7oJ4OVjT+ZUVpv7mITxXHqDMej+GdqXBmXkw09w==", - "dev": true, "requires": { "xtend": "~4.0.0" } @@ -11924,7 +17082,6 @@ "version": "2.3.2", "resolved": "https://registry.npmjs.org/merkle-patricia-tree/-/merkle-patricia-tree-2.3.2.tgz", "integrity": "sha512-81PW5m8oz/pz3GvsAwbauj7Y00rqm81Tzad77tHBwU7pIAtN+TJnMSOJhxBKflSVYhptMMb9RskhqHqrSm1V+g==", - "dev": true, "requires": { "async": "^1.4.2", "ethereumjs-util": "^5.0.0", @@ -11939,34 +17096,29 @@ "async": { "version": "1.5.2", "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", - "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", - "dev": true + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=" } } }, "object-keys": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-0.4.0.tgz", - "integrity": "sha1-KKaq50KN0sOpLz2V8hM13SBOAzY=", - "dev": true + "integrity": "sha1-KKaq50KN0sOpLz2V8hM13SBOAzY=" }, "safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" }, "semver": { "version": "5.4.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz", - "integrity": "sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg==", - "dev": true + "integrity": "sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg==" }, "string_decoder": { "version": "0.10.31", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", - "dev": true + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" } } }, @@ -11974,7 +17126,6 @@ "version": "0.1.29", "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.1.29.tgz", "integrity": "sha512-bfttrr3/7gG4E02HoWTDUcDDslN003OlOoBxk9virpAZQ1ja/jDgwkWB8QfJF7ojuEowrqy+lzp9VcJG7/k5bQ==", - "dev": true, "optional": true, "requires": { "bn.js": "^4.11.6", @@ -11989,7 +17140,6 @@ "version": "2.1.2", "resolved": "https://registry.npmjs.org/eth-query/-/eth-query-2.1.2.tgz", "integrity": "sha1-1nQdkAAQa1FRDHLbktY2VFam2l4=", - "dev": true, "requires": { "json-rpc-random-id": "^1.0.0", "xtend": "^4.0.1" @@ -11999,7 +17149,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/eth-sig-util/-/eth-sig-util-3.0.0.tgz", "integrity": "sha512-4eFkMOhpGbTxBQ3AMzVf0haUX2uTur7DpWiHzWyTURa28BVJJtOkcb9Ok5TV0YvEPG61DODPW7ZUATbJTslioQ==", - "dev": true, "requires": { "buffer": "^5.2.1", "elliptic": "^6.4.0", @@ -12013,7 +17162,6 @@ "version": "0.6.5", "resolved": "https://registry.npmjs.org/ethereumjs-abi/-/ethereumjs-abi-0.6.5.tgz", "integrity": "sha1-WmN+8Wq0NHP6cqKa2QhxQFs/UkE=", - "dev": true, "requires": { "bn.js": "^4.10.0", "ethereumjs-util": "^4.3.0" @@ -12023,7 +17171,6 @@ "version": "4.5.1", "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-4.5.1.tgz", "integrity": "sha512-WrckOZ7uBnei4+AKimpuF1B3Fv25OmoRgmYCpGsP7u8PFxXAmAgiJSYT2kRWnt6fVIlKaQlZvuwXp7PIrmn3/w==", - "dev": true, "requires": { "bn.js": "^4.8.0", "create-hash": "^1.1.2", @@ -12038,7 +17185,6 @@ "version": "5.2.1", "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", - "dev": true, "requires": { "bn.js": "^4.11.0", "create-hash": "^1.1.2", @@ -12055,7 +17201,6 @@ "version": "3.2.4", "resolved": "https://registry.npmjs.org/eth-tx-summary/-/eth-tx-summary-3.2.4.tgz", "integrity": "sha512-NtlDnaVZah146Rm8HMRUNMgIwG/ED4jiqk0TME9zFheMl1jOp6jL1m0NKGjJwehXQ6ZKCPr16MTr+qspKpEXNg==", - "dev": true, "requires": { "async": "^2.1.2", "clone": "^2.0.0", @@ -12073,7 +17218,6 @@ "version": "2.6.3", "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-2.6.3.tgz", "integrity": "sha512-2++wDf/DYqkPR3o5tbfdhF96EfMApo1GpPfzOsR/ZYXdkSmELlvOOEAl9iKkRsktMPHdGjO4rtkBpf2I7TiTeA==", - "dev": true, "requires": { "xtend": "~4.0.0" } @@ -12082,7 +17226,6 @@ "version": "1.2.2", "resolved": "https://registry.npmjs.org/deferred-leveldown/-/deferred-leveldown-1.2.2.tgz", "integrity": "sha512-uukrWD2bguRtXilKt6cAWKyoXrTSMo5m7crUdLfWQmu8kIm88w3QZoUL+6nhpfKVmhHANER6Re3sKoNoZ3IKMA==", - "dev": true, "requires": { "abstract-leveldown": "~2.6.0" } @@ -12091,7 +17234,6 @@ "version": "2.0.5", "resolved": "https://registry.npmjs.org/ethereumjs-account/-/ethereumjs-account-2.0.5.tgz", "integrity": "sha512-bgDojnXGjhMwo6eXQC0bY6UK2liSFUSMwwylOmQvZbSl/D7NXQ3+vrGO46ZeOgjGfxXmgIeVNDIiHw7fNZM4VA==", - "dev": true, "requires": { "ethereumjs-util": "^5.0.0", "rlp": "^2.0.0", @@ -12102,7 +17244,6 @@ "version": "1.7.1", "resolved": "https://registry.npmjs.org/ethereumjs-block/-/ethereumjs-block-1.7.1.tgz", "integrity": "sha512-B+sSdtqm78fmKkBq78/QLKJbu/4Ts4P2KFISdgcuZUPDm9x+N7qgBPIIFUGbaakQh8bzuquiRVbdmvPKqbILRg==", - "dev": true, "requires": { "async": "^2.0.1", "ethereum-common": "0.2.0", @@ -12114,8 +17255,7 @@ "ethereum-common": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/ethereum-common/-/ethereum-common-0.2.0.tgz", - "integrity": "sha512-XOnAR/3rntJgbCdGhqdaLIxDLWKLmsZOGhHdBKadEr6gEnJLH52k93Ou+TUdFaPN3hJc3isBZBal3U/XZ15abA==", - "dev": true + "integrity": "sha512-XOnAR/3rntJgbCdGhqdaLIxDLWKLmsZOGhHdBKadEr6gEnJLH52k93Ou+TUdFaPN3hJc3isBZBal3U/XZ15abA==" } } }, @@ -12123,7 +17263,6 @@ "version": "1.3.7", "resolved": "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-1.3.7.tgz", "integrity": "sha512-wvLMxzt1RPhAQ9Yi3/HKZTn0FZYpnsmQdbKYfUUpi4j1SEIcbkd9tndVjcPrufY3V7j2IebOpC00Zp2P/Ay2kA==", - "dev": true, "requires": { "ethereum-common": "^0.0.18", "ethereumjs-util": "^5.0.0" @@ -12133,7 +17272,6 @@ "version": "5.2.1", "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", - "dev": true, "requires": { "bn.js": "^4.11.0", "create-hash": "^1.1.2", @@ -12148,7 +17286,6 @@ "version": "2.6.0", "resolved": "https://registry.npmjs.org/ethereumjs-vm/-/ethereumjs-vm-2.6.0.tgz", "integrity": "sha512-r/XIUik/ynGbxS3y+mvGnbOKnuLo40V5Mj1J25+HEO63aWYREIqvWeRO/hnROlMBE5WoniQmPmhiaN0ctiHaXw==", - "dev": true, "requires": { "async": "^2.1.2", "async-eventemitter": "^0.2.2", @@ -12167,7 +17304,6 @@ "version": "2.2.2", "resolved": "https://registry.npmjs.org/ethereumjs-block/-/ethereumjs-block-2.2.2.tgz", "integrity": "sha512-2p49ifhek3h2zeg/+da6XpdFR3GlqY3BIEiqxGF8j9aSRIgkb7M1Ky+yULBKJOu8PAZxfhsYA+HxUk2aCQp3vg==", - "dev": true, "requires": { "async": "^2.0.1", "ethereumjs-common": "^1.5.0", @@ -12180,7 +17316,6 @@ "version": "5.2.1", "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", - "dev": true, "requires": { "bn.js": "^4.11.0", "create-hash": "^1.1.2", @@ -12197,7 +17332,6 @@ "version": "2.1.2", "resolved": "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-2.1.2.tgz", "integrity": "sha512-zZEK1onCeiORb0wyCXUvg94Ve5It/K6GD1K+26KfFKodiBiS6d9lfCXlUKGBBdQ+bv7Day+JK0tj1K+BeNFRAw==", - "dev": true, "requires": { "ethereumjs-common": "^1.5.0", "ethereumjs-util": "^6.0.0" @@ -12207,7 +17341,6 @@ "version": "6.2.1", "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz", "integrity": "sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==", - "dev": true, "requires": { "@types/bn.js": "^4.11.3", "bn.js": "^4.11.0", @@ -12223,20 +17356,17 @@ "isarray": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "dev": true + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" }, "level-codec": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/level-codec/-/level-codec-7.0.1.tgz", - "integrity": "sha512-Ua/R9B9r3RasXdRmOtd+t9TCOEIIlts+TN/7XTT2unhDaL6sJn83S3rUyljbr6lVtw49N3/yA0HHjpV6Kzb2aQ==", - "dev": true + "integrity": "sha512-Ua/R9B9r3RasXdRmOtd+t9TCOEIIlts+TN/7XTT2unhDaL6sJn83S3rUyljbr6lVtw49N3/yA0HHjpV6Kzb2aQ==" }, "level-errors": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/level-errors/-/level-errors-1.0.5.tgz", "integrity": "sha512-/cLUpQduF6bNrWuAC4pwtUKA5t669pCsCi2XbmojG2tFeOr9j6ShtdDCtFFQO1DRt+EVZhx9gPzP9G2bUaG4ig==", - "dev": true, "requires": { "errno": "~0.1.1" } @@ -12245,7 +17375,6 @@ "version": "1.3.1", "resolved": "https://registry.npmjs.org/level-iterator-stream/-/level-iterator-stream-1.3.1.tgz", "integrity": "sha1-5Dt4sagUPm+pek9IXrjqUwNS8u0=", - "dev": true, "requires": { "inherits": "^2.0.1", "level-errors": "^1.0.3", @@ -12257,7 +17386,6 @@ "version": "1.1.14", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", - "dev": true, "requires": { "core-util-is": "~1.0.0", "inherits": "~2.0.1", @@ -12271,7 +17399,6 @@ "version": "0.0.0", "resolved": "https://registry.npmjs.org/level-ws/-/level-ws-0.0.0.tgz", "integrity": "sha1-Ny5RIXeSSgBCSwtDrvK7QkltIos=", - "dev": true, "requires": { "readable-stream": "~1.0.15", "xtend": "~2.1.1" @@ -12281,7 +17408,6 @@ "version": "1.0.34", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", - "dev": true, "requires": { "core-util-is": "~1.0.0", "inherits": "~2.0.1", @@ -12293,7 +17419,6 @@ "version": "2.1.2", "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.1.2.tgz", "integrity": "sha1-bv7MKk2tjmlixJAbM3znuoe10os=", - "dev": true, "requires": { "object-keys": "~0.4.0" } @@ -12304,7 +17429,6 @@ "version": "1.3.9", "resolved": "https://registry.npmjs.org/levelup/-/levelup-1.3.9.tgz", "integrity": "sha512-VVGHfKIlmw8w1XqpGOAGwq6sZm2WwWLmlDcULkKWQXEA5EopA8OBNJ2Ck2v6bdk8HeEZSbCSEgzXadyQFm76sQ==", - "dev": true, "requires": { "deferred-leveldown": "~1.2.1", "level-codec": "~7.0.0", @@ -12318,14 +17442,12 @@ "ltgt": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/ltgt/-/ltgt-2.2.1.tgz", - "integrity": "sha1-81ypHEk/e3PaDgdJUwTxezH4fuU=", - "dev": true + "integrity": "sha1-81ypHEk/e3PaDgdJUwTxezH4fuU=" }, "memdown": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/memdown/-/memdown-1.4.1.tgz", "integrity": "sha1-tOThkhdGZP+65BNhqlAPMRnv4hU=", - "dev": true, "requires": { "abstract-leveldown": "~2.7.1", "functional-red-black-tree": "^1.0.1", @@ -12339,7 +17461,6 @@ "version": "2.7.2", "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-2.7.2.tgz", "integrity": "sha512-+OVvxH2rHVEhWLdbudP6p0+dNMXu8JA1CbhP19T8paTYAcX7oJ4OVjT+ZUVpv7mITxXHqDMej+GdqXBmXkw09w==", - "dev": true, "requires": { "xtend": "~4.0.0" } @@ -12350,7 +17471,6 @@ "version": "2.3.2", "resolved": "https://registry.npmjs.org/merkle-patricia-tree/-/merkle-patricia-tree-2.3.2.tgz", "integrity": "sha512-81PW5m8oz/pz3GvsAwbauj7Y00rqm81Tzad77tHBwU7pIAtN+TJnMSOJhxBKflSVYhptMMb9RskhqHqrSm1V+g==", - "dev": true, "requires": { "async": "^1.4.2", "ethereumjs-util": "^5.0.0", @@ -12365,34 +17485,29 @@ "async": { "version": "1.5.2", "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", - "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", - "dev": true + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=" } } }, "object-keys": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-0.4.0.tgz", - "integrity": "sha1-KKaq50KN0sOpLz2V8hM13SBOAzY=", - "dev": true + "integrity": "sha1-KKaq50KN0sOpLz2V8hM13SBOAzY=" }, "safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" }, "semver": { "version": "5.4.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz", - "integrity": "sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg==", - "dev": true + "integrity": "sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg==" }, "string_decoder": { "version": "0.10.31", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", - "dev": true + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" } } }, @@ -12400,7 +17515,6 @@ "version": "0.0.8", "resolved": "https://registry.npmjs.org/ethashjs/-/ethashjs-0.0.8.tgz", "integrity": "sha512-/MSbf/r2/Ld8o0l15AymjOTlPqpN8Cr4ByUEA9GtR4x0yAh3TdtDzEg29zMjXCNPI7u6E5fOQdj/Cf9Tc7oVNw==", - "dev": true, "requires": { "async": "^2.1.2", "buffer-xor": "^2.0.1", @@ -12411,14 +17525,12 @@ "bn.js": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz", - "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==", - "dev": true + "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==" }, "buffer-xor": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-2.0.2.tgz", "integrity": "sha512-eHslX0bin3GB+Lx2p7lEYRShRewuNZL3fUl4qlVJGGiwoPGftmt8JQgk2Y9Ji5/01TnVDo33E5b5O3vUB1HdqQ==", - "dev": true, "requires": { "safe-buffer": "^5.1.1" } @@ -12427,7 +17539,6 @@ "version": "7.0.7", "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.0.7.tgz", "integrity": "sha512-vU5rtZBlZsgkTw3o6PDKyB8li2EgLavnAbsKcfsH2YhHH1Le+PP8vEiMnAnvgc1B6uMoaM5GDCrVztBw0Q5K9g==", - "dev": true, "requires": { "@types/bn.js": "^4.11.3", "bn.js": "^5.1.2", @@ -12443,7 +17554,6 @@ "version": "1.0.7", "resolved": "https://registry.npmjs.org/ethereum-bloom-filters/-/ethereum-bloom-filters-1.0.7.tgz", "integrity": "sha512-cDcJJSJ9GMAcURiAWO3DxIEhTL/uWqlQnvgKpuYQzYPrt/izuGU+1ntQmHt0IRq6ADoSYHFnB+aCEFIldjhkMQ==", - "dev": true, "optional": true, "requires": { "js-sha3": "^0.8.0" @@ -12453,7 +17563,6 @@ "version": "0.8.0", "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz", "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==", - "dev": true, "optional": true } } @@ -12461,14 +17570,12 @@ "ethereum-common": { "version": "0.0.18", "resolved": "https://registry.npmjs.org/ethereum-common/-/ethereum-common-0.0.18.tgz", - "integrity": "sha1-L9w1dvIykDNYl26znaeDIT/5Uj8=", - "dev": true + "integrity": "sha1-L9w1dvIykDNYl26znaeDIT/5Uj8=" }, "ethereum-cryptography": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", - "dev": true, "requires": { "@types/pbkdf2": "^3.0.0", "@types/secp256k1": "^4.0.1", @@ -12491,7 +17598,6 @@ "version": "0.6.8", "resolved": "https://registry.npmjs.org/ethereumjs-abi/-/ethereumjs-abi-0.6.8.tgz", "integrity": "sha512-Tx0r/iXI6r+lRsdvkFDlut0N08jWMnKRZ6Gkq+Nmw75lZe4e6o3EkSnkaBP5NF6+m5PTGAr9JP43N3LyeoglsA==", - "dev": true, "requires": { "bn.js": "^4.11.8", "ethereumjs-util": "^6.0.0" @@ -12501,7 +17607,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/ethereumjs-account/-/ethereumjs-account-3.0.0.tgz", "integrity": "sha512-WP6BdscjiiPkQfF9PVfMcwx/rDvfZTjFKY0Uwc09zSQr9JfIVH87dYIJu0gNhBhpmovV4yq295fdllS925fnBA==", - "dev": true, "requires": { "ethereumjs-util": "^6.0.0", "rlp": "^2.2.1", @@ -12512,7 +17617,6 @@ "version": "2.2.2", "resolved": "https://registry.npmjs.org/ethereumjs-block/-/ethereumjs-block-2.2.2.tgz", "integrity": "sha512-2p49ifhek3h2zeg/+da6XpdFR3GlqY3BIEiqxGF8j9aSRIgkb7M1Ky+yULBKJOu8PAZxfhsYA+HxUk2aCQp3vg==", - "dev": true, "requires": { "async": "^2.0.1", "ethereumjs-common": "^1.5.0", @@ -12525,7 +17629,6 @@ "version": "2.6.3", "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-2.6.3.tgz", "integrity": "sha512-2++wDf/DYqkPR3o5tbfdhF96EfMApo1GpPfzOsR/ZYXdkSmELlvOOEAl9iKkRsktMPHdGjO4rtkBpf2I7TiTeA==", - "dev": true, "requires": { "xtend": "~4.0.0" } @@ -12534,7 +17637,6 @@ "version": "1.2.2", "resolved": "https://registry.npmjs.org/deferred-leveldown/-/deferred-leveldown-1.2.2.tgz", "integrity": "sha512-uukrWD2bguRtXilKt6cAWKyoXrTSMo5m7crUdLfWQmu8kIm88w3QZoUL+6nhpfKVmhHANER6Re3sKoNoZ3IKMA==", - "dev": true, "requires": { "abstract-leveldown": "~2.6.0" } @@ -12543,7 +17645,6 @@ "version": "5.2.1", "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", - "dev": true, "requires": { "bn.js": "^4.11.0", "create-hash": "^1.1.2", @@ -12557,20 +17658,17 @@ "isarray": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "dev": true + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" }, "level-codec": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/level-codec/-/level-codec-7.0.1.tgz", - "integrity": "sha512-Ua/R9B9r3RasXdRmOtd+t9TCOEIIlts+TN/7XTT2unhDaL6sJn83S3rUyljbr6lVtw49N3/yA0HHjpV6Kzb2aQ==", - "dev": true + "integrity": "sha512-Ua/R9B9r3RasXdRmOtd+t9TCOEIIlts+TN/7XTT2unhDaL6sJn83S3rUyljbr6lVtw49N3/yA0HHjpV6Kzb2aQ==" }, "level-errors": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/level-errors/-/level-errors-1.0.5.tgz", "integrity": "sha512-/cLUpQduF6bNrWuAC4pwtUKA5t669pCsCi2XbmojG2tFeOr9j6ShtdDCtFFQO1DRt+EVZhx9gPzP9G2bUaG4ig==", - "dev": true, "requires": { "errno": "~0.1.1" } @@ -12579,7 +17677,6 @@ "version": "1.3.1", "resolved": "https://registry.npmjs.org/level-iterator-stream/-/level-iterator-stream-1.3.1.tgz", "integrity": "sha1-5Dt4sagUPm+pek9IXrjqUwNS8u0=", - "dev": true, "requires": { "inherits": "^2.0.1", "level-errors": "^1.0.3", @@ -12591,7 +17688,6 @@ "version": "1.1.14", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", - "dev": true, "requires": { "core-util-is": "~1.0.0", "inherits": "~2.0.1", @@ -12605,7 +17701,6 @@ "version": "0.0.0", "resolved": "https://registry.npmjs.org/level-ws/-/level-ws-0.0.0.tgz", "integrity": "sha1-Ny5RIXeSSgBCSwtDrvK7QkltIos=", - "dev": true, "requires": { "readable-stream": "~1.0.15", "xtend": "~2.1.1" @@ -12615,7 +17710,6 @@ "version": "1.0.34", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", - "dev": true, "requires": { "core-util-is": "~1.0.0", "inherits": "~2.0.1", @@ -12627,7 +17721,6 @@ "version": "2.1.2", "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.1.2.tgz", "integrity": "sha1-bv7MKk2tjmlixJAbM3znuoe10os=", - "dev": true, "requires": { "object-keys": "~0.4.0" } @@ -12638,7 +17731,6 @@ "version": "1.3.9", "resolved": "https://registry.npmjs.org/levelup/-/levelup-1.3.9.tgz", "integrity": "sha512-VVGHfKIlmw8w1XqpGOAGwq6sZm2WwWLmlDcULkKWQXEA5EopA8OBNJ2Ck2v6bdk8HeEZSbCSEgzXadyQFm76sQ==", - "dev": true, "requires": { "deferred-leveldown": "~1.2.1", "level-codec": "~7.0.0", @@ -12652,14 +17744,12 @@ "ltgt": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/ltgt/-/ltgt-2.2.1.tgz", - "integrity": "sha1-81ypHEk/e3PaDgdJUwTxezH4fuU=", - "dev": true + "integrity": "sha1-81ypHEk/e3PaDgdJUwTxezH4fuU=" }, "memdown": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/memdown/-/memdown-1.4.1.tgz", "integrity": "sha1-tOThkhdGZP+65BNhqlAPMRnv4hU=", - "dev": true, "requires": { "abstract-leveldown": "~2.7.1", "functional-red-black-tree": "^1.0.1", @@ -12673,7 +17763,6 @@ "version": "2.7.2", "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-2.7.2.tgz", "integrity": "sha512-+OVvxH2rHVEhWLdbudP6p0+dNMXu8JA1CbhP19T8paTYAcX7oJ4OVjT+ZUVpv7mITxXHqDMej+GdqXBmXkw09w==", - "dev": true, "requires": { "xtend": "~4.0.0" } @@ -12684,7 +17773,6 @@ "version": "2.3.2", "resolved": "https://registry.npmjs.org/merkle-patricia-tree/-/merkle-patricia-tree-2.3.2.tgz", "integrity": "sha512-81PW5m8oz/pz3GvsAwbauj7Y00rqm81Tzad77tHBwU7pIAtN+TJnMSOJhxBKflSVYhptMMb9RskhqHqrSm1V+g==", - "dev": true, "requires": { "async": "^1.4.2", "ethereumjs-util": "^5.0.0", @@ -12699,34 +17787,29 @@ "async": { "version": "1.5.2", "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", - "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", - "dev": true + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=" } } }, "object-keys": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-0.4.0.tgz", - "integrity": "sha1-KKaq50KN0sOpLz2V8hM13SBOAzY=", - "dev": true + "integrity": "sha1-KKaq50KN0sOpLz2V8hM13SBOAzY=" }, "safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" }, "semver": { "version": "5.4.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz", - "integrity": "sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg==", - "dev": true + "integrity": "sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg==" }, "string_decoder": { "version": "0.10.31", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", - "dev": true + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" } } }, @@ -12734,7 +17817,6 @@ "version": "4.0.4", "resolved": "https://registry.npmjs.org/ethereumjs-blockchain/-/ethereumjs-blockchain-4.0.4.tgz", "integrity": "sha512-zCxaRMUOzzjvX78DTGiKjA+4h2/sF0OYL1QuPux0DHpyq8XiNoF5GYHtb++GUxVlMsMfZV7AVyzbtgcRdIcEPQ==", - "dev": true, "requires": { "async": "^2.6.1", "ethashjs": "~0.0.7", @@ -12751,14 +17833,12 @@ "ethereumjs-common": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/ethereumjs-common/-/ethereumjs-common-1.5.0.tgz", - "integrity": "sha512-SZOjgK1356hIY7MRj3/ma5qtfr/4B5BL+G4rP/XSMYr2z1H5el4RX5GReYCKmQmYI/nSBmRnwrZ17IfHuG0viQ==", - "dev": true + "integrity": "sha512-SZOjgK1356hIY7MRj3/ma5qtfr/4B5BL+G4rP/XSMYr2z1H5el4RX5GReYCKmQmYI/nSBmRnwrZ17IfHuG0viQ==" }, "ethereumjs-tx": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-2.1.2.tgz", "integrity": "sha512-zZEK1onCeiORb0wyCXUvg94Ve5It/K6GD1K+26KfFKodiBiS6d9lfCXlUKGBBdQ+bv7Day+JK0tj1K+BeNFRAw==", - "dev": true, "requires": { "ethereumjs-common": "^1.5.0", "ethereumjs-util": "^6.0.0" @@ -12768,7 +17848,6 @@ "version": "6.2.1", "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz", "integrity": "sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==", - "dev": true, "requires": { "@types/bn.js": "^4.11.3", "bn.js": "^4.11.0", @@ -12783,7 +17862,6 @@ "version": "4.2.0", "resolved": "https://registry.npmjs.org/ethereumjs-vm/-/ethereumjs-vm-4.2.0.tgz", "integrity": "sha512-X6qqZbsY33p5FTuZqCnQ4+lo957iUJMM6Mpa6bL4UW0dxM6WmDSHuI4j/zOp1E2TDKImBGCJA9QPfc08PaNubA==", - "dev": true, "requires": { "async": "^2.1.2", "async-eventemitter": "^0.2.2", @@ -12806,7 +17884,6 @@ "version": "2.6.3", "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-2.6.3.tgz", "integrity": "sha512-2++wDf/DYqkPR3o5tbfdhF96EfMApo1GpPfzOsR/ZYXdkSmELlvOOEAl9iKkRsktMPHdGjO4rtkBpf2I7TiTeA==", - "dev": true, "requires": { "xtend": "~4.0.0" } @@ -12815,7 +17892,6 @@ "version": "1.2.2", "resolved": "https://registry.npmjs.org/deferred-leveldown/-/deferred-leveldown-1.2.2.tgz", "integrity": "sha512-uukrWD2bguRtXilKt6cAWKyoXrTSMo5m7crUdLfWQmu8kIm88w3QZoUL+6nhpfKVmhHANER6Re3sKoNoZ3IKMA==", - "dev": true, "requires": { "abstract-leveldown": "~2.6.0" } @@ -12823,20 +17899,17 @@ "isarray": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "dev": true + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" }, "level-codec": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/level-codec/-/level-codec-7.0.1.tgz", - "integrity": "sha512-Ua/R9B9r3RasXdRmOtd+t9TCOEIIlts+TN/7XTT2unhDaL6sJn83S3rUyljbr6lVtw49N3/yA0HHjpV6Kzb2aQ==", - "dev": true + "integrity": "sha512-Ua/R9B9r3RasXdRmOtd+t9TCOEIIlts+TN/7XTT2unhDaL6sJn83S3rUyljbr6lVtw49N3/yA0HHjpV6Kzb2aQ==" }, "level-errors": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/level-errors/-/level-errors-1.0.5.tgz", "integrity": "sha512-/cLUpQduF6bNrWuAC4pwtUKA5t669pCsCi2XbmojG2tFeOr9j6ShtdDCtFFQO1DRt+EVZhx9gPzP9G2bUaG4ig==", - "dev": true, "requires": { "errno": "~0.1.1" } @@ -12845,7 +17918,6 @@ "version": "1.3.1", "resolved": "https://registry.npmjs.org/level-iterator-stream/-/level-iterator-stream-1.3.1.tgz", "integrity": "sha1-5Dt4sagUPm+pek9IXrjqUwNS8u0=", - "dev": true, "requires": { "inherits": "^2.0.1", "level-errors": "^1.0.3", @@ -12857,7 +17929,6 @@ "version": "1.1.14", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", - "dev": true, "requires": { "core-util-is": "~1.0.0", "inherits": "~2.0.1", @@ -12871,7 +17942,6 @@ "version": "0.0.0", "resolved": "https://registry.npmjs.org/level-ws/-/level-ws-0.0.0.tgz", "integrity": "sha1-Ny5RIXeSSgBCSwtDrvK7QkltIos=", - "dev": true, "requires": { "readable-stream": "~1.0.15", "xtend": "~2.1.1" @@ -12881,7 +17951,6 @@ "version": "1.0.34", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", - "dev": true, "requires": { "core-util-is": "~1.0.0", "inherits": "~2.0.1", @@ -12893,7 +17962,6 @@ "version": "2.1.2", "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.1.2.tgz", "integrity": "sha1-bv7MKk2tjmlixJAbM3znuoe10os=", - "dev": true, "requires": { "object-keys": "~0.4.0" } @@ -12904,7 +17972,6 @@ "version": "1.3.9", "resolved": "https://registry.npmjs.org/levelup/-/levelup-1.3.9.tgz", "integrity": "sha512-VVGHfKIlmw8w1XqpGOAGwq6sZm2WwWLmlDcULkKWQXEA5EopA8OBNJ2Ck2v6bdk8HeEZSbCSEgzXadyQFm76sQ==", - "dev": true, "requires": { "deferred-leveldown": "~1.2.1", "level-codec": "~7.0.0", @@ -12918,14 +17985,12 @@ "ltgt": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/ltgt/-/ltgt-2.2.1.tgz", - "integrity": "sha1-81ypHEk/e3PaDgdJUwTxezH4fuU=", - "dev": true + "integrity": "sha1-81ypHEk/e3PaDgdJUwTxezH4fuU=" }, "memdown": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/memdown/-/memdown-1.4.1.tgz", "integrity": "sha1-tOThkhdGZP+65BNhqlAPMRnv4hU=", - "dev": true, "requires": { "abstract-leveldown": "~2.7.1", "functional-red-black-tree": "^1.0.1", @@ -12939,7 +18004,6 @@ "version": "2.7.2", "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-2.7.2.tgz", "integrity": "sha512-+OVvxH2rHVEhWLdbudP6p0+dNMXu8JA1CbhP19T8paTYAcX7oJ4OVjT+ZUVpv7mITxXHqDMej+GdqXBmXkw09w==", - "dev": true, "requires": { "xtend": "~4.0.0" } @@ -12950,7 +18014,6 @@ "version": "2.3.2", "resolved": "https://registry.npmjs.org/merkle-patricia-tree/-/merkle-patricia-tree-2.3.2.tgz", "integrity": "sha512-81PW5m8oz/pz3GvsAwbauj7Y00rqm81Tzad77tHBwU7pIAtN+TJnMSOJhxBKflSVYhptMMb9RskhqHqrSm1V+g==", - "dev": true, "requires": { "async": "^1.4.2", "ethereumjs-util": "^5.0.0", @@ -12962,199 +18025,513 @@ "semaphore": ">=1.0.1" }, "dependencies": { - "async": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", - "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", - "dev": true - }, - "ethereumjs-util": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", - "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", - "dev": true, + "async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=" + }, + "ethereumjs-util": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", + "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", + "requires": { + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "^0.1.3", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1" + } + } + } + }, + "object-keys": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-0.4.0.tgz", + "integrity": "sha1-KKaq50KN0sOpLz2V8hM13SBOAzY=" + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "semver": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz", + "integrity": "sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg==" + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" + } + } + }, + "ethereumjs-wallet": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/ethereumjs-wallet/-/ethereumjs-wallet-0.6.5.tgz", + "integrity": "sha512-MDwjwB9VQVnpp/Dc1XzA6J1a3wgHQ4hSvA1uWNatdpOrtCbPVuQSKSyRnjLvS0a+KKMw2pvQ9Ybqpb3+eW8oNA==", + "optional": true, + "requires": { + "aes-js": "^3.1.1", + "bs58check": "^2.1.2", + "ethereum-cryptography": "^0.1.3", + "ethereumjs-util": "^6.0.0", + "randombytes": "^2.0.6", + "safe-buffer": "^5.1.2", + "scryptsy": "^1.2.1", + "utf8": "^3.0.0", + "uuid": "^3.3.2" + } + }, + "ethjs-unit": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/ethjs-unit/-/ethjs-unit-0.1.6.tgz", + "integrity": "sha1-xmWSHkduh7ziqdWIpv4EBbLEFpk=", + "optional": true, + "requires": { + "bn.js": "4.11.6", + "number-to-bn": "1.7.0" + }, + "dependencies": { + "bn.js": { + "version": "4.11.6", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", + "integrity": "sha1-UzRK2xRhehP26N0s4okF0cC6MhU=", + "optional": true + } + } + }, + "ethjs-util": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/ethjs-util/-/ethjs-util-0.1.6.tgz", + "integrity": "sha512-CUnVOQq7gSpDHZVVrQW8ExxUETWrnrvXYvYz55wOU8Uj4VCgw56XC2B/fVqQN+f7gmrnRHSLVnFAwsCuNwji8w==", + "requires": { + "is-hex-prefixed": "1.0.0", + "strip-hex-prefix": "1.0.0" + } + }, + "eventemitter3": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.4.tgz", + "integrity": "sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ==", + "optional": true + }, + "events": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.2.0.tgz", + "integrity": "sha512-/46HWwbfCX2xTawVfkKLGxMifJYQBWMwY1mjywRtb4c9x8l5NP3KoJtnIOiL1hfdRkIuYhETxQlo62IF8tcnlg==" + }, + "evp_bytestokey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", + "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "requires": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "requires": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "^0.1.3", - "rlp": "^2.0.0", - "safe-buffer": "^5.1.1" + "is-buffer": "^1.1.5" } } } }, - "object-keys": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-0.4.0.tgz", - "integrity": "sha1-KKaq50KN0sOpLz2V8hM13SBOAzY=", - "dev": true + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + } + } + }, + "express": { + "version": "4.17.1", + "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", + "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", + "optional": true, + "requires": { + "accepts": "~1.3.7", + "array-flatten": "1.1.1", + "body-parser": "1.19.0", + "content-disposition": "0.5.3", + "content-type": "~1.0.4", + "cookie": "0.4.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "~1.1.2", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "~1.1.2", + "fresh": "0.5.2", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.5", + "qs": "6.7.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.1.2", + "send": "0.17.1", + "serve-static": "1.14.1", + "setprototypeof": "1.1.1", + "statuses": "~1.5.0", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "optional": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "optional": true + }, + "qs": { + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", + "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", + "optional": true }, "safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "semver": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz", - "integrity": "sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg==", - "dev": true - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", - "dev": true + "optional": true } } }, - "ethereumjs-wallet": { - "version": "0.6.5", - "resolved": "https://registry.npmjs.org/ethereumjs-wallet/-/ethereumjs-wallet-0.6.5.tgz", - "integrity": "sha512-MDwjwB9VQVnpp/Dc1XzA6J1a3wgHQ4hSvA1uWNatdpOrtCbPVuQSKSyRnjLvS0a+KKMw2pvQ9Ybqpb3+eW8oNA==", - "dev": true, - "optional": true, + "ext": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/ext/-/ext-1.4.0.tgz", + "integrity": "sha512-Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A==", "requires": { - "aes-js": "^3.1.1", - "bs58check": "^2.1.2", - "ethereum-cryptography": "^0.1.3", - "ethereumjs-util": "^6.0.0", - "randombytes": "^2.0.6", - "safe-buffer": "^5.1.2", - "scryptsy": "^1.2.1", - "utf8": "^3.0.0", - "uuid": "^3.3.2" + "type": "^2.0.0" + }, + "dependencies": { + "type": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/type/-/type-2.1.0.tgz", + "integrity": "sha512-G9absDWvhAWCV2gmF1zKud3OyC61nZDwWvBL2DApaVFogI07CprggiQAOOjvp2NRjYWFzPyu7vwtDrQFq8jeSA==" + } } }, - "ethjs-unit": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/ethjs-unit/-/ethjs-unit-0.1.6.tgz", - "integrity": "sha1-xmWSHkduh7ziqdWIpv4EBbLEFpk=", - "dev": true, - "optional": true, + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" + }, + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", "requires": { - "bn.js": "4.11.6", - "number-to-bn": "1.7.0" + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "requires": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" }, "dependencies": { - "bn.js": { - "version": "4.11.6", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", - "integrity": "sha1-UzRK2xRhehP26N0s4okF0cC6MhU=", - "dev": true, - "optional": true + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" } } }, - "ethjs-util": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/ethjs-util/-/ethjs-util-0.1.6.tgz", - "integrity": "sha512-CUnVOQq7gSpDHZVVrQW8ExxUETWrnrvXYvYz55wOU8Uj4VCgw56XC2B/fVqQN+f7gmrnRHSLVnFAwsCuNwji8w==", - "dev": true, + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" + }, + "fake-merkle-patricia-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/fake-merkle-patricia-tree/-/fake-merkle-patricia-tree-1.0.1.tgz", + "integrity": "sha1-S4w6z7Ugr635hgsfFM2M40As3dM=", "requires": { - "is-hex-prefixed": "1.0.0", - "strip-hex-prefix": "1.0.0" + "checkpoint-store": "^1.1.0" } }, - "eventemitter3": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.4.tgz", - "integrity": "sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ==", - "dev": true, - "optional": true + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" }, - "events": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.2.0.tgz", - "integrity": "sha512-/46HWwbfCX2xTawVfkKLGxMifJYQBWMwY1mjywRtb4c9x8l5NP3KoJtnIOiL1hfdRkIuYhETxQlo62IF8tcnlg==", - "dev": true + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" }, - "evp_bytestokey": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", - "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", - "dev": true, + "fetch-ponyfill": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/fetch-ponyfill/-/fetch-ponyfill-4.1.0.tgz", + "integrity": "sha1-rjzl9zLGReq4fkroeTQUcJsjmJM=", "requires": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" + "node-fetch": "~1.7.1" + }, + "dependencies": { + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" + }, + "node-fetch": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz", + "integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==", + "requires": { + "encoding": "^0.1.11", + "is-stream": "^1.0.1" + } + } } }, - "expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "dev": true, + "finalhandler": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", + "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "optional": true, "requires": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "statuses": "~1.5.0", + "unpipe": "~1.0.0" }, "dependencies": { "debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, + "optional": true, "requires": { "ms": "2.0.0" } }, - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "optional": true + } + } + }, + "find-yarn-workspace-root": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/find-yarn-workspace-root/-/find-yarn-workspace-root-1.2.1.tgz", + "integrity": "sha512-dVtfb0WuQG+8Ag2uWkbG79hOUzEsRrhBzgfn86g2sJPkzmcpGdghbNTfUKGTxymFrY/tLIodDzLoW9nOJ4FY8Q==", + "requires": { + "fs-extra": "^4.0.3", + "micromatch": "^3.1.4" + }, + "dependencies": { + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", "requires": { - "is-extendable": "^0.1.0" + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + } } }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", "requires": { - "kind-of": "^3.0.2" + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" }, "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-buffer": "^1.1.5" + "is-extendable": "^0.1.0" } } } }, + "fs-extra": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.3.tgz", + "integrity": "sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg==", + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, "is-buffer": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "requires": { "kind-of": "^3.0.2" }, @@ -13163,370 +18540,300 @@ "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, "requires": { "is-buffer": "^1.1.5" } } } }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } - } - }, - "express": { - "version": "4.17.1", - "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", - "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", - "dev": true, - "optional": true, - "requires": { - "accepts": "~1.3.7", - "array-flatten": "1.1.1", - "body-parser": "1.19.0", - "content-disposition": "0.5.3", - "content-type": "~1.0.4", - "cookie": "0.4.0", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "~1.1.2", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "~1.1.2", - "fresh": "0.5.2", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.5", - "qs": "6.7.0", - "range-parser": "~1.2.1", - "safe-buffer": "5.1.2", - "send": "0.17.1", - "serve-static": "1.14.1", - "setprototypeof": "1.1.1", - "statuses": "~1.5.0", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "optional": true, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", "requires": { - "ms": "2.0.0" + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" } }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true, - "optional": true - }, - "qs": { - "version": "6.7.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", - "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", - "dev": true, - "optional": true - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true, - "optional": true + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } } } }, - "ext": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/ext/-/ext-1.4.0.tgz", - "integrity": "sha512-Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A==", - "dev": true, + "flow-stoplight": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/flow-stoplight/-/flow-stoplight-1.0.0.tgz", + "integrity": "sha1-SiksW8/4s5+mzAyxqFPYbyfu/3s=" + }, + "for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", "requires": { - "type": "^2.0.0" - }, - "dependencies": { - "type": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/type/-/type-2.1.0.tgz", - "integrity": "sha512-G9absDWvhAWCV2gmF1zKud3OyC61nZDwWvBL2DApaVFogI07CprggiQAOOjvp2NRjYWFzPyu7vwtDrQFq8jeSA==", - "dev": true - } + "is-callable": "^1.1.3" } }, - "extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", - "dev": true + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=" }, - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "dev": true, + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" + }, + "form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" } }, - "extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "dev": true, + "forwarded": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", + "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=", + "optional": true + }, + "fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", "requires": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true - } + "map-cache": "^0.2.2" } }, - "extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", - "dev": true + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", + "optional": true }, - "fake-merkle-patricia-tree": { + "fs-extra": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", + "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "functional-red-black-tree": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/fake-merkle-patricia-tree/-/fake-merkle-patricia-tree-1.0.1.tgz", - "integrity": "sha1-S4w6z7Ugr635hgsfFM2M40As3dM=", - "dev": true, + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=" + }, + "get-intrinsic": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.0.2.tgz", + "integrity": "sha512-aeX0vrFm21ILl3+JpFFRNe9aUvp6VFZb2/CTbgLb8j75kOhvoNYjt9d8KA/tJG4gSo8nzEDedRl0h7vDmBYRVg==", "requires": { - "checkpoint-store": "^1.1.0" + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" } }, - "fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true + "get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "optional": true, + "requires": { + "pump": "^3.0.0" + } }, - "fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true + "get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=" }, - "fetch-ponyfill": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/fetch-ponyfill/-/fetch-ponyfill-4.1.0.tgz", - "integrity": "sha1-rjzl9zLGReq4fkroeTQUcJsjmJM=", - "dev": true, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", "requires": { - "node-fetch": "~1.7.1" + "assert-plus": "^1.0.0" + } + }, + "glob": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", + "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "global": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/global/-/global-4.4.0.tgz", + "integrity": "sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==", + "requires": { + "min-document": "^2.19.0", + "process": "^0.11.10" + } + }, + "got": { + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", + "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", + "optional": true, + "requires": { + "@sindresorhus/is": "^0.14.0", + "@szmarczak/http-timer": "^1.1.2", + "cacheable-request": "^6.0.0", + "decompress-response": "^3.3.0", + "duplexer3": "^0.1.4", + "get-stream": "^4.1.0", + "lowercase-keys": "^1.0.1", + "mimic-response": "^1.0.1", + "p-cancelable": "^1.0.0", + "to-readable-stream": "^1.0.0", + "url-parse-lax": "^3.0.0" }, "dependencies": { - "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", - "dev": true - }, - "node-fetch": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz", - "integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==", - "dev": true, + "get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "optional": true, "requires": { - "encoding": "^0.1.11", - "is-stream": "^1.0.1" + "pump": "^3.0.0" } } } }, - "finalhandler": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", - "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", - "dev": true, - "optional": true, + "graceful-fs": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", + "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==" + }, + "har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" + }, + "har-validator": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", + "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", + "requires": { + "ajv": "^6.12.3", + "har-schema": "^2.0.0" + } + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", "requires": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "statuses": "~1.5.0", - "unpipe": "~1.0.0" + "ansi-regex": "^2.0.0" }, "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "optional": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true, - "optional": true + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" } } }, - "find-yarn-workspace-root": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/find-yarn-workspace-root/-/find-yarn-workspace-root-1.2.1.tgz", - "integrity": "sha512-dVtfb0WuQG+8Ag2uWkbG79hOUzEsRrhBzgfn86g2sJPkzmcpGdghbNTfUKGTxymFrY/tLIodDzLoW9nOJ4FY8Q==", - "dev": true, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + }, + "has-symbol-support-x": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz", + "integrity": "sha512-3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw==", + "optional": true + }, + "has-symbols": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", + "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==" + }, + "has-to-string-tag-x": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz", + "integrity": "sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw==", + "optional": true, "requires": { - "fs-extra": "^4.0.3", - "micromatch": "^3.1.4" + "has-symbol-support-x": "^1.4.1" + } + }, + "has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "requires": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + } + }, + "has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "requires": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" }, "dependencies": { - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "fs-extra": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.3.tgz", - "integrity": "sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, "is-buffer": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" }, "is-number": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, "requires": { "kind-of": "^3.0.2" }, @@ -13535,4705 +18842,4965 @@ "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, "requires": { "is-buffer": "^1.1.5" } } } }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" + "is-buffer": "^1.1.5" } - }, - "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "dev": true, + } + } + }, + "hash-base": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", + "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", + "requires": { + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" } } } }, - "flow-stoplight": { + "hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "requires": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "heap": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/heap/-/heap-0.2.6.tgz", + "integrity": "sha1-CH4fELBGky/IWU3Z5tN4r8nR5aw=" + }, + "hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", + "requires": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "home-or-tmp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", + "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=", + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.1" + } + }, + "http-cache-semantics": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", + "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==", + "optional": true + }, + "http-errors": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", + "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", + "optional": true, + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.1", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.0" + }, + "dependencies": { + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "optional": true + } + } + }, + "http-https": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/flow-stoplight/-/flow-stoplight-1.0.0.tgz", - "integrity": "sha1-SiksW8/4s5+mzAyxqFPYbyfu/3s=", - "dev": true + "resolved": "https://registry.npmjs.org/http-https/-/http-https-1.0.0.tgz", + "integrity": "sha1-L5CN1fHbQGjAWM1ubUzjkskTOJs=", + "optional": true }, - "for-each": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", - "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", - "dev": true, + "http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", "requires": { - "is-callable": "^1.1.3" + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" } }, - "for-in": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", - "dev": true - }, - "forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", - "dev": true - }, - "form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", - "dev": true, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "optional": true, "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" + "safer-buffer": ">= 2.1.2 < 3" } }, - "forwarded": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", - "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=", - "dev": true, - "optional": true - }, - "fragment-cache": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", - "dev": true, + "idna-uts46-hx": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/idna-uts46-hx/-/idna-uts46-hx-2.3.1.tgz", + "integrity": "sha512-PWoF9Keq6laYdIRwwCdhTPl60xRqAloYNMQLiyUnG42VjT53oW07BXIRM+NK7eQjzXjAk2gUvX9caRxlnF9TAA==", + "optional": true, "requires": { - "map-cache": "^0.2.2" + "punycode": "2.1.0" + }, + "dependencies": { + "punycode": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.0.tgz", + "integrity": "sha1-X4Y+3Im5bbCQdLrXlHvwkFbKTn0=", + "optional": true + } } }, - "fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", - "dev": true, - "optional": true + "ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" }, - "fs-extra": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", - "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", - "dev": true, + "immediate": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.2.3.tgz", + "integrity": "sha1-0UD6j2FGWb1lQSMwl92qwlzdmRw=" + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" + "once": "^1.3.0", + "wrappy": "1" } }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true + "invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "requires": { + "loose-envify": "^1.0.0" + } }, - "functional-red-black-tree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", - "dev": true + "ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "optional": true }, - "get-intrinsic": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.0.2.tgz", - "integrity": "sha512-aeX0vrFm21ILl3+JpFFRNe9aUvp6VFZb2/CTbgLb8j75kOhvoNYjt9d8KA/tJG4gSo8nzEDedRl0h7vDmBYRVg==", - "dev": true, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "requires": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" + "kind-of": "^6.0.0" } }, - "get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dev": true, - "optional": true, + "is-arguments": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.0.tgz", + "integrity": "sha512-1Ij4lOMPl/xB5kBDn7I+b2ttPMKa8szhEIrXDuXQD/oe3HJLTLhqhgGspwgyGd6MOywBUqVvYicF72lkgDnIHg==", "requires": { - "pump": "^3.0.0" + "call-bind": "^1.0.0" } }, - "get-value": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", - "dev": true + "is-callable": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.2.tgz", + "integrity": "sha512-dnMqspv5nU3LoewK2N/y7KLtxtakvTuaCsU9FU50/QDmdbHNy/4/JuRtMHqRU22o3q+W89YQndQEeCVwK+3qrA==" }, - "getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "dev": true, + "is-ci": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", + "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", "requires": { - "assert-plus": "^1.0.0" + "ci-info": "^2.0.0" } }, - "glob": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", - "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", - "dev": true, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "kind-of": "^6.0.0" } }, - "global": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/global/-/global-4.4.0.tgz", - "integrity": "sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==", - "dev": true, + "is-date-object": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", + "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==" + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "requires": { - "min-document": "^2.19.0", - "process": "^0.11.10" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, - "got": { - "version": "9.6.0", - "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", - "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", - "dev": true, - "optional": true, + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", "requires": { - "@sindresorhus/is": "^0.14.0", - "@szmarczak/http-timer": "^1.1.2", - "cacheable-request": "^6.0.0", - "decompress-response": "^3.3.0", - "duplexer3": "^0.1.4", - "get-stream": "^4.1.0", - "lowercase-keys": "^1.0.1", - "mimic-response": "^1.0.1", - "p-cancelable": "^1.0.0", - "to-readable-stream": "^1.0.0", - "url-parse-lax": "^3.0.0" - }, - "dependencies": { - "get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "dev": true, - "optional": true, - "requires": { - "pump": "^3.0.0" - } - } + "is-plain-object": "^2.0.4" } }, - "graceful-fs": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", - "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", - "dev": true + "is-finite": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.1.0.tgz", + "integrity": "sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==" + }, + "is-fn": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fn/-/is-fn-1.0.0.tgz", + "integrity": "sha1-lUPV3nvPWwiiLsiiC65uKG1RDYw=" + }, + "is-function": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-function/-/is-function-1.0.2.tgz", + "integrity": "sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==" }, - "har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", - "dev": true + "is-hex-prefixed": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz", + "integrity": "sha1-fY035q135dEnFIkTxXPggtd39VQ=" }, - "har-validator": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", - "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", - "dev": true, + "is-negative-zero": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", + "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==" + }, + "is-object": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-object/-/is-object-1.0.2.tgz", + "integrity": "sha512-2rRIahhZr2UWb45fIOuvZGpFtz0TyOZLf32KxBbSoUCeZR495zCKlWUKKUByk3geS2eAs7ZAABt0Y/Rx0GiQGA==", + "optional": true + }, + "is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", + "optional": true + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", "requires": { - "ajv": "^6.12.3", - "har-schema": "^2.0.0" + "isobject": "^3.0.1" } }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, + "is-regex": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz", + "integrity": "sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==", "requires": { - "function-bind": "^1.1.1" + "has-symbols": "^1.0.1" } }, - "has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", - "dev": true, + "is-retry-allowed": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz", + "integrity": "sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg==", + "optional": true + }, + "is-symbol": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", + "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", "requires": { - "ansi-regex": "^2.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true - } + "has-symbols": "^1.0.1" } }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" }, - "has-symbol-support-x": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz", - "integrity": "sha512-3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw==", - "dev": true, - "optional": true + "is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==" }, - "has-symbols": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", - "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", - "dev": true + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" }, - "has-to-string-tag-x": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz", - "integrity": "sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw==", - "dev": true, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" + }, + "isurl": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isurl/-/isurl-1.0.0.tgz", + "integrity": "sha512-1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w==", "optional": true, "requires": { - "has-symbol-support-x": "^1.4.1" + "has-to-string-tag-x": "^1.2.0", + "is-object": "^1.0.1" } }, - "has-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", - "dev": true, + "js-sha3": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.7.tgz", + "integrity": "sha1-DU/9gALVMzqrr0oj7tL2N0yfKOc=", + "optional": true + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" + }, + "json-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", + "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=", + "optional": true + }, + "json-rpc-engine": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/json-rpc-engine/-/json-rpc-engine-3.8.0.tgz", + "integrity": "sha512-6QNcvm2gFuuK4TKU1uwfH0Qd/cOSb9c1lls0gbnIhciktIUQJwz6NQNAW4B1KiGPenv7IKu97V222Yo1bNhGuA==", "requires": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" + "async": "^2.0.1", + "babel-preset-env": "^1.7.0", + "babelify": "^7.3.0", + "json-rpc-error": "^2.0.0", + "promise-to-callback": "^1.0.0", + "safe-event-emitter": "^1.0.1" } }, - "has-values": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", - "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", - "dev": true, + "json-rpc-error": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/json-rpc-error/-/json-rpc-error-2.0.0.tgz", + "integrity": "sha1-p6+cICg4tekFxyUOVH8a/3cligI=", "requires": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" - }, - "dependencies": { - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } + "inherits": "^2.0.1" } }, - "hash-base": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", - "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", - "dev": true, + "json-rpc-random-id": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-rpc-random-id/-/json-rpc-random-id-1.0.1.tgz", + "integrity": "sha1-uknZat7RRE27jaPSA3SKy7zeyMg=" + }, + "json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + }, + "json-stable-stringify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", + "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", "requires": { - "inherits": "^2.0.4", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } + "jsonify": "~0.0.0" } }, - "hash.js": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", - "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", - "dev": true, + "json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", "requires": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" + "graceful-fs": "^4.1.6" } }, - "heap": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/heap/-/heap-0.2.6.tgz", - "integrity": "sha1-CH4fELBGky/IWU3Z5tN4r8nR5aw=", - "dev": true + "jsonify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", + "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=" }, - "hmac-drbg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", - "dev": true, + "jsprim": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", "requires": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" } }, - "home-or-tmp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", - "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=", - "dev": true, + "keccak": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/keccak/-/keccak-3.0.1.tgz", + "integrity": "sha512-epq90L9jlFWCW7+pQa6JOnKn2Xgl2mtI664seYR6MHskvI9agt7AnDqmAlp9TqU4/caMYbA08Hi5DMZAl5zdkA==", "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.1" + "node-addon-api": "^2.0.0", + "node-gyp-build": "^4.2.0" } }, - "http-cache-semantics": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", - "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==", - "dev": true, - "optional": true - }, - "http-errors": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", - "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", - "dev": true, + "keyv": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", + "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", "optional": true, "requires": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.1", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.0" - }, - "dependencies": { - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true, - "optional": true - } + "json-buffer": "3.0.0" } }, - "http-https": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/http-https/-/http-https-1.0.0.tgz", - "integrity": "sha1-L5CN1fHbQGjAWM1ubUzjkskTOJs=", - "dev": true, - "optional": true + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==" }, - "http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "dev": true, + "klaw-sync": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/klaw-sync/-/klaw-sync-6.0.0.tgz", + "integrity": "sha512-nIeuVSzdCCs6TDPTqI8w1Yre34sSq7AkZ4B3sfOBbI2CgVSB4Du4aLQijFU2+lhAFCwt9+42Hel6lQNIv6AntQ==", "requires": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" + "graceful-fs": "^4.1.11" } }, - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dev": true, - "optional": true, + "level-codec": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/level-codec/-/level-codec-9.0.2.tgz", + "integrity": "sha512-UyIwNb1lJBChJnGfjmO0OR+ezh2iVu1Kas3nvBS/BzGnx79dv6g7unpKIDNPMhfdTEGoc7mC8uAu51XEtX+FHQ==", "requires": { - "safer-buffer": ">= 2.1.2 < 3" + "buffer": "^5.6.0" } }, - "idna-uts46-hx": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/idna-uts46-hx/-/idna-uts46-hx-2.3.1.tgz", - "integrity": "sha512-PWoF9Keq6laYdIRwwCdhTPl60xRqAloYNMQLiyUnG42VjT53oW07BXIRM+NK7eQjzXjAk2gUvX9caRxlnF9TAA==", - "dev": true, - "optional": true, + "level-errors": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/level-errors/-/level-errors-2.0.1.tgz", + "integrity": "sha512-UVprBJXite4gPS+3VznfgDSU8PTRuVX0NXwoWW50KLxd2yw4Y1t2JUR5In1itQnudZqRMT9DlAM3Q//9NCjCFw==", "requires": { - "punycode": "2.1.0" - }, - "dependencies": { - "punycode": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.0.tgz", - "integrity": "sha1-X4Y+3Im5bbCQdLrXlHvwkFbKTn0=", - "dev": true, - "optional": true - } + "errno": "~0.1.1" } }, - "ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "dev": true - }, - "immediate": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.2.3.tgz", - "integrity": "sha1-0UD6j2FGWb1lQSMwl92qwlzdmRw=", - "dev": true - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, + "level-iterator-stream": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/level-iterator-stream/-/level-iterator-stream-2.0.3.tgz", + "integrity": "sha512-I6Heg70nfF+e5Y3/qfthJFexhRw/Gi3bIymCoXAlijZdAcLaPuWSJs3KXyTYf23ID6g0o2QF62Yh+grOXY3Rig==", "requires": { - "once": "^1.3.0", - "wrappy": "1" + "inherits": "^2.0.1", + "readable-stream": "^2.0.5", + "xtend": "^4.0.0" } }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "invariant": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", - "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", - "dev": true, + "level-mem": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/level-mem/-/level-mem-3.0.1.tgz", + "integrity": "sha512-LbtfK9+3Ug1UmvvhR2DqLqXiPW1OJ5jEh0a3m9ZgAipiwpSxGj/qaVVy54RG5vAQN1nCuXqjvprCuKSCxcJHBg==", "requires": { - "loose-envify": "^1.0.0" + "level-packager": "~4.0.0", + "memdown": "~3.0.0" + }, + "dependencies": { + "abstract-leveldown": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-5.0.0.tgz", + "integrity": "sha512-5mU5P1gXtsMIXg65/rsYGsi93+MlogXZ9FA8JnwKurHQg64bfXwGYVdVdijNTVNOlAsuIiOwHdvFFD5JqCJQ7A==", + "requires": { + "xtend": "~4.0.0" + } + }, + "ltgt": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ltgt/-/ltgt-2.2.1.tgz", + "integrity": "sha1-81ypHEk/e3PaDgdJUwTxezH4fuU=" + }, + "memdown": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/memdown/-/memdown-3.0.0.tgz", + "integrity": "sha512-tbV02LfZMWLcHcq4tw++NuqMO+FZX8tNJEiD2aNRm48ZZusVg5N8NART+dmBkepJVye986oixErf7jfXboMGMA==", + "requires": { + "abstract-leveldown": "~5.0.0", + "functional-red-black-tree": "~1.0.1", + "immediate": "~3.2.3", + "inherits": "~2.0.1", + "ltgt": "~2.2.0", + "safe-buffer": "~5.1.1" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + } } }, - "ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", - "dev": true, - "optional": true - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, + "level-packager": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/level-packager/-/level-packager-4.0.1.tgz", + "integrity": "sha512-svCRKfYLn9/4CoFfi+d8krOtrp6RoX8+xm0Na5cgXMqSyRru0AnDYdLl+YI8u1FyS6gGZ94ILLZDE5dh2but3Q==", "requires": { - "kind-of": "^6.0.0" + "encoding-down": "~5.0.0", + "levelup": "^3.0.0" } }, - "is-arguments": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.0.tgz", - "integrity": "sha512-1Ij4lOMPl/xB5kBDn7I+b2ttPMKa8szhEIrXDuXQD/oe3HJLTLhqhgGspwgyGd6MOywBUqVvYicF72lkgDnIHg==", - "dev": true, + "level-post": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/level-post/-/level-post-1.0.7.tgz", + "integrity": "sha512-PWYqG4Q00asOrLhX7BejSajByB4EmG2GaKHfj3h5UmmZ2duciXLPGYWIjBzLECFWUGOZWlm5B20h/n3Gs3HKew==", "requires": { - "call-bind": "^1.0.0" + "ltgt": "^2.1.2" } }, - "is-callable": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.2.tgz", - "integrity": "sha512-dnMqspv5nU3LoewK2N/y7KLtxtakvTuaCsU9FU50/QDmdbHNy/4/JuRtMHqRU22o3q+W89YQndQEeCVwK+3qrA==", - "dev": true + "level-sublevel": { + "version": "6.6.4", + "resolved": "https://registry.npmjs.org/level-sublevel/-/level-sublevel-6.6.4.tgz", + "integrity": "sha512-pcCrTUOiO48+Kp6F1+UAzF/OtWqLcQVTVF39HLdZ3RO8XBoXt+XVPKZO1vVr1aUoxHZA9OtD2e1v7G+3S5KFDA==", + "requires": { + "bytewise": "~1.1.0", + "level-codec": "^9.0.0", + "level-errors": "^2.0.0", + "level-iterator-stream": "^2.0.3", + "ltgt": "~2.1.1", + "pull-defer": "^0.2.2", + "pull-level": "^2.0.3", + "pull-stream": "^3.6.8", + "typewiselite": "~1.0.0", + "xtend": "~4.0.0" + } }, - "is-ci": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", - "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", - "dev": true, + "level-ws": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/level-ws/-/level-ws-1.0.0.tgz", + "integrity": "sha512-RXEfCmkd6WWFlArh3X8ONvQPm8jNpfA0s/36M4QzLqrLEIt1iJE9WBHLZ5vZJK6haMjJPJGJCQWfjMNnRcq/9Q==", "requires": { - "ci-info": "^2.0.0" + "inherits": "^2.0.3", + "readable-stream": "^2.2.8", + "xtend": "^4.0.1" } }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, + "levelup": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/levelup/-/levelup-3.1.1.tgz", + "integrity": "sha512-9N10xRkUU4dShSRRFTBdNaBxofz+PGaIZO962ckboJZiNmLuhVT6FZ6ZKAsICKfUBO76ySaYU6fJWX/jnj3Lcg==", "requires": { - "kind-of": "^6.0.0" + "deferred-leveldown": "~4.0.0", + "level-errors": "~2.0.0", + "level-iterator-stream": "~3.0.0", + "xtend": "~4.0.0" + }, + "dependencies": { + "level-iterator-stream": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/level-iterator-stream/-/level-iterator-stream-3.0.1.tgz", + "integrity": "sha512-nEIQvxEED9yRThxvOrq8Aqziy4EGzrxSZK+QzEFAVuJvQ8glfyZ96GB6BoI4sBbLfjMXm2w4vu3Tkcm9obcY0g==", + "requires": { + "inherits": "^2.0.1", + "readable-stream": "^2.3.6", + "xtend": "^4.0.0" + } + } } }, - "is-date-object": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", - "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==", - "dev": true + "lodash": { + "version": "4.17.20", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", + "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==" }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, + "looper": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/looper/-/looper-2.0.0.tgz", + "integrity": "sha1-Zs0Md0rz1P7axTeU90LbVtqPCew=" + }, + "loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "js-tokens": "^3.0.0 || ^4.0.0" } }, - "is-extendable": { + "lowercase-keys": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", + "optional": true + }, + "lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", "requires": { - "is-plain-object": "^2.0.4" + "yallist": "^3.0.2" } }, - "is-finite": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.1.0.tgz", - "integrity": "sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==", - "dev": true - }, - "is-fn": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fn/-/is-fn-1.0.0.tgz", - "integrity": "sha1-lUPV3nvPWwiiLsiiC65uKG1RDYw=", - "dev": true + "ltgt": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ltgt/-/ltgt-2.1.3.tgz", + "integrity": "sha1-EIUaBtmWS5cReEQcI8nlJpjuzjQ=" }, - "is-function": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-function/-/is-function-1.0.2.tgz", - "integrity": "sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==", - "dev": true + "map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=" }, - "is-hex-prefixed": { + "map-visit": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz", - "integrity": "sha1-fY035q135dEnFIkTxXPggtd39VQ=", - "dev": true - }, - "is-negative-zero": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", - "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==", - "dev": true - }, - "is-object": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-object/-/is-object-1.0.2.tgz", - "integrity": "sha512-2rRIahhZr2UWb45fIOuvZGpFtz0TyOZLf32KxBbSoUCeZR495zCKlWUKKUByk3geS2eAs7ZAABt0Y/Rx0GiQGA==", - "dev": true, - "optional": true - }, - "is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", - "dev": true, - "optional": true - }, - "is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", "requires": { - "isobject": "^3.0.1" + "object-visit": "^1.0.0" } }, - "is-regex": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz", - "integrity": "sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==", - "dev": true, + "md5.js": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", + "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", "requires": { - "has-symbols": "^1.0.1" + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" } }, - "is-retry-allowed": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz", - "integrity": "sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg==", - "dev": true, + "media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", "optional": true }, - "is-symbol": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", - "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", - "dev": true, + "merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=", + "optional": true + }, + "merkle-patricia-tree": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/merkle-patricia-tree/-/merkle-patricia-tree-3.0.0.tgz", + "integrity": "sha512-soRaMuNf/ILmw3KWbybaCjhx86EYeBbD8ph0edQCTed0JN/rxDt1EBN52Ajre3VyGo+91f8+/rfPIRQnnGMqmQ==", "requires": { - "has-symbols": "^1.0.1" + "async": "^2.6.1", + "ethereumjs-util": "^5.2.0", + "level-mem": "^3.0.1", + "level-ws": "^1.0.0", + "readable-stream": "^3.0.6", + "rlp": "^2.0.0", + "semaphore": ">=1.0.1" + }, + "dependencies": { + "ethereumjs-util": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", + "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", + "requires": { + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "^0.1.3", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1" + } + }, + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } } }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", - "dev": true - }, - "is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", - "dev": true - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "dev": true - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - }, - "isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", - "dev": true + "methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", + "optional": true }, - "isurl": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isurl/-/isurl-1.0.0.tgz", - "integrity": "sha512-1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w==", - "dev": true, - "optional": true, + "miller-rabin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", + "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", "requires": { - "has-to-string-tag-x": "^1.2.0", - "is-object": "^1.0.1" + "bn.js": "^4.0.0", + "brorand": "^1.0.1" } }, - "js-sha3": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.7.tgz", - "integrity": "sha1-DU/9gALVMzqrr0oj7tL2N0yfKOc=", - "dev": true, + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", "optional": true }, - "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true + "mime-db": { + "version": "1.45.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.45.0.tgz", + "integrity": "sha512-CkqLUxUk15hofLoLyljJSrukZi8mAtgd+yE5uO4tqRZsdsAJKv0O+rFMhVDRJgozy+yG6md5KwuXhD4ocIoP+w==" }, - "jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", - "dev": true + "mime-types": { + "version": "2.1.28", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.28.tgz", + "integrity": "sha512-0TO2yJ5YHYr7M2zzT7gDU1tbwHxEUWBCLt0lscSNpcdAfFyJOVEpRYNS7EXVcTLNj/25QO8gulHC5JtTzSE2UQ==", + "requires": { + "mime-db": "1.45.0" + } }, - "json-buffer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", - "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=", - "dev": true, + "mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", "optional": true }, - "json-rpc-engine": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/json-rpc-engine/-/json-rpc-engine-3.8.0.tgz", - "integrity": "sha512-6QNcvm2gFuuK4TKU1uwfH0Qd/cOSb9c1lls0gbnIhciktIUQJwz6NQNAW4B1KiGPenv7IKu97V222Yo1bNhGuA==", - "dev": true, + "min-document": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz", + "integrity": "sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU=", "requires": { - "async": "^2.0.1", - "babel-preset-env": "^1.7.0", - "babelify": "^7.3.0", - "json-rpc-error": "^2.0.0", - "promise-to-callback": "^1.0.0", - "safe-event-emitter": "^1.0.1" + "dom-walk": "^0.1.0" } }, - "json-rpc-error": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/json-rpc-error/-/json-rpc-error-2.0.0.tgz", - "integrity": "sha1-p6+cICg4tekFxyUOVH8a/3cligI=", - "dev": true, + "minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" + }, + "minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=" + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "requires": { - "inherits": "^2.0.1" + "brace-expansion": "^1.1.7" } }, - "json-rpc-random-id": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-rpc-random-id/-/json-rpc-random-id-1.0.1.tgz", - "integrity": "sha1-uknZat7RRE27jaPSA3SKy7zeyMg=", - "dev": true + "minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" }, - "json-schema": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", - "dev": true + "minizlib": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz", + "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==", + "optional": true, + "requires": { + "minipass": "^2.9.0" + }, + "dependencies": { + "minipass": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz", + "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==", + "optional": true, + "requires": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + } + } + } }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true + "mixin-deep": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", + "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", + "requires": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + } }, - "json-stable-stringify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", - "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", - "dev": true, + "mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", "requires": { - "jsonify": "~0.0.0" + "minimist": "^1.2.5" } }, - "json-stringify-safe": { + "mkdirp-promise": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", - "dev": true - }, - "jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "dev": true, + "resolved": "https://registry.npmjs.org/mkdirp-promise/-/mkdirp-promise-5.0.1.tgz", + "integrity": "sha1-6bj2jlUsaKnBcTuEiD96HdA5uKE=", + "optional": true, "requires": { - "graceful-fs": "^4.1.6" + "mkdirp": "*" } }, - "jsonify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", - "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", - "dev": true + "mock-fs": { + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/mock-fs/-/mock-fs-4.13.0.tgz", + "integrity": "sha512-DD0vOdofJdoaRNtnWcrXe6RQbpHkPPmtqGq14uRX0F8ZKJ5nv89CVTYl/BZdppDxBDaV0hl75htg3abpEWlPZA==", + "optional": true }, - "jsprim": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", - "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", - "dev": true, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "multibase": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/multibase/-/multibase-0.6.1.tgz", + "integrity": "sha512-pFfAwyTjbbQgNc3G7D48JkJxWtoJoBMaR4xQUOuB8RnCgRqaYmWNFeJTTvrJ2w51bjLq2zTby6Rqj9TQ9elSUw==", + "optional": true, "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.2.3", - "verror": "1.10.0" + "base-x": "^3.0.8", + "buffer": "^5.5.0" } }, - "keccak": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/keccak/-/keccak-3.0.1.tgz", - "integrity": "sha512-epq90L9jlFWCW7+pQa6JOnKn2Xgl2mtI664seYR6MHskvI9agt7AnDqmAlp9TqU4/caMYbA08Hi5DMZAl5zdkA==", - "dev": true, + "multicodec": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-0.5.7.tgz", + "integrity": "sha512-PscoRxm3f+88fAtELwUnZxGDkduE2HD9Q6GHUOywQLjOGT/HAdhjLDYNZ1e7VR0s0TP0EwZ16LNUTFpoBGivOA==", + "optional": true, "requires": { - "node-addon-api": "^2.0.0", - "node-gyp-build": "^4.2.0" + "varint": "^5.0.0" } }, - "keyv": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", - "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", - "dev": true, + "multihashes": { + "version": "0.4.21", + "resolved": "https://registry.npmjs.org/multihashes/-/multihashes-0.4.21.tgz", + "integrity": "sha512-uVSvmeCWf36pU2nB4/1kzYZjsXD9vofZKpgudqkceYY5g2aZZXJ5r9lxuzoRLl1OAp28XljXsEJ/X/85ZsKmKw==", "optional": true, "requires": { - "json-buffer": "3.0.0" + "buffer": "^5.5.0", + "multibase": "^0.7.0", + "varint": "^5.0.0" + }, + "dependencies": { + "multibase": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/multibase/-/multibase-0.7.0.tgz", + "integrity": "sha512-TW8q03O0f6PNFTQDvh3xxH03c8CjGaaYrjkl9UQPG6rz53TQzzxJVCIWVjzcbN/Q5Y53Zd0IBQBMVktVgNx4Fg==", + "optional": true, + "requires": { + "base-x": "^3.0.8", + "buffer": "^5.5.0" + } + } } }, - "kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true + "nano-json-stream-parser": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/nano-json-stream-parser/-/nano-json-stream-parser-0.1.2.tgz", + "integrity": "sha1-DMj20OK2IrR5xA1JnEbWS3Vcb18=", + "optional": true + }, + "nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + } + }, + "negotiator": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", + "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==", + "optional": true + }, + "next-tick": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", + "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=" + }, + "nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==" + }, + "node-addon-api": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz", + "integrity": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==" + }, + "node-fetch": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.1.2.tgz", + "integrity": "sha1-q4hOjn5X44qUR1POxwb3iNF2i7U=" + }, + "node-gyp-build": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.2.3.tgz", + "integrity": "sha512-MN6ZpzmfNCRM+3t57PTJHgHyw/h4OWnZ6mR8P5j/uZtqQr46RRuDE/P+g3n0YR/AiYXeWixZZzaip77gdICfRg==" }, - "klaw-sync": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/klaw-sync/-/klaw-sync-6.0.0.tgz", - "integrity": "sha512-nIeuVSzdCCs6TDPTqI8w1Yre34sSq7AkZ4B3sfOBbI2CgVSB4Du4aLQijFU2+lhAFCwt9+42Hel6lQNIv6AntQ==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.11" - } + "normalize-url": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz", + "integrity": "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==", + "optional": true }, - "level-codec": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/level-codec/-/level-codec-9.0.2.tgz", - "integrity": "sha512-UyIwNb1lJBChJnGfjmO0OR+ezh2iVu1Kas3nvBS/BzGnx79dv6g7unpKIDNPMhfdTEGoc7mC8uAu51XEtX+FHQ==", - "dev": true, + "number-to-bn": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/number-to-bn/-/number-to-bn-1.7.0.tgz", + "integrity": "sha1-uzYjWS9+X54AMLGXe9QaDFP+HqA=", + "optional": true, "requires": { - "buffer": "^5.6.0" + "bn.js": "4.11.6", + "strip-hex-prefix": "1.0.0" + }, + "dependencies": { + "bn.js": { + "version": "4.11.6", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", + "integrity": "sha1-UzRK2xRhehP26N0s4okF0cC6MhU=", + "optional": true + } } }, - "level-errors": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/level-errors/-/level-errors-2.0.1.tgz", - "integrity": "sha512-UVprBJXite4gPS+3VznfgDSU8PTRuVX0NXwoWW50KLxd2yw4Y1t2JUR5In1itQnudZqRMT9DlAM3Q//9NCjCFw==", - "dev": true, - "requires": { - "errno": "~0.1.1" - } + "oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==" }, - "level-iterator-stream": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/level-iterator-stream/-/level-iterator-stream-2.0.3.tgz", - "integrity": "sha512-I6Heg70nfF+e5Y3/qfthJFexhRw/Gi3bIymCoXAlijZdAcLaPuWSJs3KXyTYf23ID6g0o2QF62Yh+grOXY3Rig==", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "readable-stream": "^2.0.5", - "xtend": "^4.0.0" - } + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" }, - "level-mem": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/level-mem/-/level-mem-3.0.1.tgz", - "integrity": "sha512-LbtfK9+3Ug1UmvvhR2DqLqXiPW1OJ5jEh0a3m9ZgAipiwpSxGj/qaVVy54RG5vAQN1nCuXqjvprCuKSCxcJHBg==", - "dev": true, + "object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", "requires": { - "level-packager": "~4.0.0", - "memdown": "~3.0.0" + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" }, "dependencies": { - "abstract-leveldown": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-5.0.0.tgz", - "integrity": "sha512-5mU5P1gXtsMIXg65/rsYGsi93+MlogXZ9FA8JnwKurHQg64bfXwGYVdVdijNTVNOlAsuIiOwHdvFFD5JqCJQ7A==", - "dev": true, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { - "xtend": "~4.0.0" + "is-descriptor": "^0.1.0" } }, - "ltgt": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ltgt/-/ltgt-2.2.1.tgz", - "integrity": "sha1-81ypHEk/e3PaDgdJUwTxezH4fuU=", - "dev": true + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "requires": { + "kind-of": "^3.0.2" + } }, - "memdown": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/memdown/-/memdown-3.0.0.tgz", - "integrity": "sha512-tbV02LfZMWLcHcq4tw++NuqMO+FZX8tNJEiD2aNRm48ZZusVg5N8NART+dmBkepJVye986oixErf7jfXboMGMA==", - "dev": true, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "requires": { - "abstract-leveldown": "~5.0.0", - "functional-red-black-tree": "~1.0.1", - "immediate": "~3.2.3", - "inherits": "~2.0.1", - "ltgt": "~2.2.0", - "safe-buffer": "~5.1.1" + "kind-of": "^3.0.2" } }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" + } + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } } } }, - "level-packager": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/level-packager/-/level-packager-4.0.1.tgz", - "integrity": "sha512-svCRKfYLn9/4CoFfi+d8krOtrp6RoX8+xm0Na5cgXMqSyRru0AnDYdLl+YI8u1FyS6gGZ94ILLZDE5dh2but3Q==", - "dev": true, - "requires": { - "encoding-down": "~5.0.0", - "levelup": "^3.0.0" - } + "object-inspect": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.9.0.tgz", + "integrity": "sha512-i3Bp9iTqwhaLZBxGkRfo5ZbE07BQRT7MGu8+nNgwW9ItGp1TzCTw2DLEoWwjClxBjOFI/hWljTAmYGCEwmtnOw==" }, - "level-post": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/level-post/-/level-post-1.0.7.tgz", - "integrity": "sha512-PWYqG4Q00asOrLhX7BejSajByB4EmG2GaKHfj3h5UmmZ2duciXLPGYWIjBzLECFWUGOZWlm5B20h/n3Gs3HKew==", - "dev": true, + "object-is": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.4.tgz", + "integrity": "sha512-1ZvAZ4wlF7IyPVOcE1Omikt7UpaFlOQq0HlSti+ZvDH3UiD2brwGMwDbyV43jao2bKJ+4+WdPJHSd7kgzKYVqg==", "requires": { - "ltgt": "^2.1.2" + "call-bind": "^1.0.0", + "define-properties": "^1.1.3" } }, - "level-sublevel": { - "version": "6.6.4", - "resolved": "https://registry.npmjs.org/level-sublevel/-/level-sublevel-6.6.4.tgz", - "integrity": "sha512-pcCrTUOiO48+Kp6F1+UAzF/OtWqLcQVTVF39HLdZ3RO8XBoXt+XVPKZO1vVr1aUoxHZA9OtD2e1v7G+3S5KFDA==", - "dev": true, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" + }, + "object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", "requires": { - "bytewise": "~1.1.0", - "level-codec": "^9.0.0", - "level-errors": "^2.0.0", - "level-iterator-stream": "^2.0.3", - "ltgt": "~2.1.1", - "pull-defer": "^0.2.2", - "pull-level": "^2.0.3", - "pull-stream": "^3.6.8", - "typewiselite": "~1.0.0", - "xtend": "~4.0.0" + "isobject": "^3.0.0" } }, - "level-ws": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/level-ws/-/level-ws-1.0.0.tgz", - "integrity": "sha512-RXEfCmkd6WWFlArh3X8ONvQPm8jNpfA0s/36M4QzLqrLEIt1iJE9WBHLZ5vZJK6haMjJPJGJCQWfjMNnRcq/9Q==", - "dev": true, + "object.assign": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", + "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", "requires": { - "inherits": "^2.0.3", - "readable-stream": "^2.2.8", - "xtend": "^4.0.1" + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" } }, - "levelup": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/levelup/-/levelup-3.1.1.tgz", - "integrity": "sha512-9N10xRkUU4dShSRRFTBdNaBxofz+PGaIZO962ckboJZiNmLuhVT6FZ6ZKAsICKfUBO76ySaYU6fJWX/jnj3Lcg==", - "dev": true, + "object.getownpropertydescriptors": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.1.tgz", + "integrity": "sha512-6DtXgZ/lIZ9hqx4GtZETobXLR/ZLaa0aqV0kzbn80Rf8Z2e/XFnhA0I7p07N2wH8bBBltr2xQPi6sbKWAY2Eng==", "requires": { - "deferred-leveldown": "~4.0.0", - "level-errors": "~2.0.0", - "level-iterator-stream": "~3.0.0", - "xtend": "~4.0.0" - }, - "dependencies": { - "level-iterator-stream": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/level-iterator-stream/-/level-iterator-stream-3.0.1.tgz", - "integrity": "sha512-nEIQvxEED9yRThxvOrq8Aqziy4EGzrxSZK+QzEFAVuJvQ8glfyZ96GB6BoI4sBbLfjMXm2w4vu3Tkcm9obcY0g==", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "readable-stream": "^2.3.6", - "xtend": "^4.0.0" - } - } + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.1" } }, - "lodash": { - "version": "4.17.20", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", - "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", - "dev": true - }, - "looper": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/looper/-/looper-2.0.0.tgz", - "integrity": "sha1-Zs0Md0rz1P7axTeU90LbVtqPCew=", - "dev": true - }, - "loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "dev": true, + "object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "requires": { + "isobject": "^3.0.1" + } + }, + "oboe": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/oboe/-/oboe-2.1.4.tgz", + "integrity": "sha1-IMiM2wwVNxuwQRklfU/dNLCqSfY=", + "optional": true, "requires": { - "js-tokens": "^3.0.0 || ^4.0.0" + "http-https": "^1.0.0" } }, - "lowercase-keys": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", - "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", - "dev": true, - "optional": true + "on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "optional": true, + "requires": { + "ee-first": "1.1.1" + } }, - "lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dev": true, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "requires": { - "yallist": "^3.0.2" + "wrappy": "1" } }, - "ltgt": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ltgt/-/ltgt-2.1.3.tgz", - "integrity": "sha1-EIUaBtmWS5cReEQcI8nlJpjuzjQ=", - "dev": true + "os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=" }, - "map-cache": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", - "dev": true + "os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" }, - "map-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", - "dev": true, + "p-cancelable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", + "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", + "optional": true + }, + "p-timeout": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-1.2.1.tgz", + "integrity": "sha1-XrOzU7f86Z8QGhA4iAuwVOu+o4Y=", + "optional": true, "requires": { - "object-visit": "^1.0.0" + "p-finally": "^1.0.0" + }, + "dependencies": { + "p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", + "optional": true + } } }, - "md5.js": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", - "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", - "dev": true, + "parse-asn1": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", + "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", + "optional": true, "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" + "asn1.js": "^5.2.0", + "browserify-aes": "^1.0.0", + "evp_bytestokey": "^1.0.0", + "pbkdf2": "^3.0.3", + "safe-buffer": "^5.1.1" } }, - "media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", - "dev": true, - "optional": true + "parse-headers": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.3.tgz", + "integrity": "sha512-QhhZ+DCCit2Coi2vmAKbq5RGTRcQUOE2+REgv8vdyu7MnYx2eZztegqtTx99TZ86GTIwqiy3+4nQTWZ2tgmdCA==" }, - "merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=", - "dev": true, + "parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", "optional": true }, - "merkle-patricia-tree": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/merkle-patricia-tree/-/merkle-patricia-tree-3.0.0.tgz", - "integrity": "sha512-soRaMuNf/ILmw3KWbybaCjhx86EYeBbD8ph0edQCTed0JN/rxDt1EBN52Ajre3VyGo+91f8+/rfPIRQnnGMqmQ==", - "dev": true, + "pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=" + }, + "patch-package": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/patch-package/-/patch-package-6.2.2.tgz", + "integrity": "sha512-YqScVYkVcClUY0v8fF0kWOjDYopzIM8e3bj/RU1DPeEF14+dCGm6UeOYm4jvCyxqIEQ5/eJzmbWfDWnUleFNMg==", "requires": { - "async": "^2.6.1", - "ethereumjs-util": "^5.2.0", - "level-mem": "^3.0.1", - "level-ws": "^1.0.0", - "readable-stream": "^3.0.6", - "rlp": "^2.0.0", - "semaphore": ">=1.0.1" + "@yarnpkg/lockfile": "^1.1.0", + "chalk": "^2.4.2", + "cross-spawn": "^6.0.5", + "find-yarn-workspace-root": "^1.2.1", + "fs-extra": "^7.0.1", + "is-ci": "^2.0.0", + "klaw-sync": "^6.0.0", + "minimist": "^1.2.0", + "rimraf": "^2.6.3", + "semver": "^5.6.0", + "slash": "^2.0.0", + "tmp": "^0.0.33" }, "dependencies": { - "ethereumjs-util": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", - "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", - "dev": true, + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", "requires": { - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "^0.1.3", - "rlp": "^2.0.0", - "safe-buffer": "^5.1.1" + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" } }, - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=" + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=" + }, + "slash": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", + "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==" + }, + "tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "requires": { + "os-tmpdir": "~1.0.2" + } + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "requires": { + "isexe": "^2.0.0" } } } }, - "methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", - "dev": true, - "optional": true - }, - "miller-rabin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", - "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", - "dev": true, - "requires": { - "bn.js": "^4.0.0", - "brorand": "^1.0.1" - } - }, - "mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "dev": true, - "optional": true - }, - "mime-db": { - "version": "1.45.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.45.0.tgz", - "integrity": "sha512-CkqLUxUk15hofLoLyljJSrukZi8mAtgd+yE5uO4tqRZsdsAJKv0O+rFMhVDRJgozy+yG6md5KwuXhD4ocIoP+w==", - "dev": true + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" }, - "mime-types": { - "version": "2.1.28", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.28.tgz", - "integrity": "sha512-0TO2yJ5YHYr7M2zzT7gDU1tbwHxEUWBCLt0lscSNpcdAfFyJOVEpRYNS7EXVcTLNj/25QO8gulHC5JtTzSE2UQ==", - "dev": true, - "requires": { - "mime-db": "1.45.0" - } + "path-parse": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", + "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==" }, - "mimic-response": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", - "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", - "dev": true, + "path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=", "optional": true }, - "min-document": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz", - "integrity": "sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU=", - "dev": true, + "pbkdf2": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.1.tgz", + "integrity": "sha512-4Ejy1OPxi9f2tt1rRV7Go7zmfDQ+ZectEQz3VGUQhgq62HtIRPDyG/JtnwIxs6x3uNMwo2V7q1fMvKjb+Tnpqg==", "requires": { - "dom-walk": "^0.1.0" + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" } }, - "minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", - "dev": true + "performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" }, - "minimalistic-crypto-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", - "dev": true + "posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=" }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } + "precond": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/precond/-/precond-0.2.3.tgz", + "integrity": "sha1-qpWRvKokkj8eD0hJ0kD0fvwQdaw=" }, - "minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", - "dev": true + "prepend-http": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", + "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", + "optional": true }, - "minizlib": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz", - "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==", - "dev": true, - "optional": true, - "requires": { - "minipass": "^2.9.0" - }, - "dependencies": { - "minipass": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz", - "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==", - "dev": true, - "optional": true, - "requires": { - "safe-buffer": "^5.1.2", - "yallist": "^3.0.0" - } - } - } + "private": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", + "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==" }, - "mixin-deep": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", - "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", - "dev": true, - "requires": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" - } + "process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=" }, - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, + "promise-to-callback": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/promise-to-callback/-/promise-to-callback-1.0.0.tgz", + "integrity": "sha1-XSp0kBC/tn2WNZj805YHRqaP7vc=", "requires": { - "minimist": "^1.2.5" + "is-fn": "^1.0.0", + "set-immediate-shim": "^1.0.1" } }, - "mkdirp-promise": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/mkdirp-promise/-/mkdirp-promise-5.0.1.tgz", - "integrity": "sha1-6bj2jlUsaKnBcTuEiD96HdA5uKE=", - "dev": true, + "proxy-addr": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz", + "integrity": "sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==", "optional": true, "requires": { - "mkdirp": "*" + "forwarded": "~0.1.2", + "ipaddr.js": "1.9.1" } }, - "mock-fs": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/mock-fs/-/mock-fs-4.13.0.tgz", - "integrity": "sha512-DD0vOdofJdoaRNtnWcrXe6RQbpHkPPmtqGq14uRX0F8ZKJ5nv89CVTYl/BZdppDxBDaV0hl75htg3abpEWlPZA==", - "dev": true, - "optional": true + "prr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", + "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=" }, - "ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true + "pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=" }, - "multibase": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/multibase/-/multibase-0.6.1.tgz", - "integrity": "sha512-pFfAwyTjbbQgNc3G7D48JkJxWtoJoBMaR4xQUOuB8RnCgRqaYmWNFeJTTvrJ2w51bjLq2zTby6Rqj9TQ9elSUw==", - "dev": true, - "optional": true, - "requires": { - "base-x": "^3.0.8", - "buffer": "^5.5.0" - } + "psl": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", + "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==" }, - "multicodec": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-0.5.7.tgz", - "integrity": "sha512-PscoRxm3f+88fAtELwUnZxGDkduE2HD9Q6GHUOywQLjOGT/HAdhjLDYNZ1e7VR0s0TP0EwZ16LNUTFpoBGivOA==", - "dev": true, + "public-encrypt": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", + "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", "optional": true, "requires": { - "varint": "^5.0.0" + "bn.js": "^4.1.0", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "parse-asn1": "^5.0.0", + "randombytes": "^2.0.1", + "safe-buffer": "^5.1.2" } }, - "multihashes": { - "version": "0.4.21", - "resolved": "https://registry.npmjs.org/multihashes/-/multihashes-0.4.21.tgz", - "integrity": "sha512-uVSvmeCWf36pU2nB4/1kzYZjsXD9vofZKpgudqkceYY5g2aZZXJ5r9lxuzoRLl1OAp28XljXsEJ/X/85ZsKmKw==", - "dev": true, - "optional": true, - "requires": { - "buffer": "^5.5.0", - "multibase": "^0.7.0", - "varint": "^5.0.0" - }, - "dependencies": { - "multibase": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/multibase/-/multibase-0.7.0.tgz", - "integrity": "sha512-TW8q03O0f6PNFTQDvh3xxH03c8CjGaaYrjkl9UQPG6rz53TQzzxJVCIWVjzcbN/Q5Y53Zd0IBQBMVktVgNx4Fg==", - "dev": true, - "optional": true, - "requires": { - "base-x": "^3.0.8", - "buffer": "^5.5.0" - } - } - } + "pull-cat": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/pull-cat/-/pull-cat-1.1.11.tgz", + "integrity": "sha1-tkLdElXaN2pwa220+pYvX9t0wxs=" }, - "nano-json-stream-parser": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/nano-json-stream-parser/-/nano-json-stream-parser-0.1.2.tgz", - "integrity": "sha1-DMj20OK2IrR5xA1JnEbWS3Vcb18=", - "dev": true, - "optional": true + "pull-defer": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/pull-defer/-/pull-defer-0.2.3.tgz", + "integrity": "sha512-/An3KE7mVjZCqNhZsr22k1Tx8MACnUnHZZNPSJ0S62td8JtYr/AiRG42Vz7Syu31SoTLUzVIe61jtT/pNdjVYA==" }, - "nanomatch": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", - "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", - "dev": true, + "pull-level": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pull-level/-/pull-level-2.0.4.tgz", + "integrity": "sha512-fW6pljDeUThpq5KXwKbRG3X7Ogk3vc75d5OQU/TvXXui65ykm+Bn+fiktg+MOx2jJ85cd+sheufPL+rw9QSVZg==", "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "fragment-cache": "^0.2.1", - "is-windows": "^1.0.2", - "kind-of": "^6.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" + "level-post": "^1.0.7", + "pull-cat": "^1.1.9", + "pull-live": "^1.0.1", + "pull-pushable": "^2.0.0", + "pull-stream": "^3.4.0", + "pull-window": "^2.1.4", + "stream-to-pull-stream": "^1.7.1" } }, - "negotiator": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", - "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==", - "dev": true, - "optional": true - }, - "next-tick": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", - "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=", - "dev": true - }, - "nice-try": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", - "dev": true - }, - "node-addon-api": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz", - "integrity": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==", - "dev": true + "pull-live": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/pull-live/-/pull-live-1.0.1.tgz", + "integrity": "sha1-pOzuAeMwFV6RJLu89HYfIbOPUfU=", + "requires": { + "pull-cat": "^1.1.9", + "pull-stream": "^3.4.0" + } }, - "node-fetch": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.1.2.tgz", - "integrity": "sha1-q4hOjn5X44qUR1POxwb3iNF2i7U=", - "dev": true + "pull-pushable": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/pull-pushable/-/pull-pushable-2.2.0.tgz", + "integrity": "sha1-Xy867UethpGfAbEqLpnW8b13ZYE=" }, - "node-gyp-build": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.2.3.tgz", - "integrity": "sha512-MN6ZpzmfNCRM+3t57PTJHgHyw/h4OWnZ6mR8P5j/uZtqQr46RRuDE/P+g3n0YR/AiYXeWixZZzaip77gdICfRg==", - "dev": true + "pull-stream": { + "version": "3.6.14", + "resolved": "https://registry.npmjs.org/pull-stream/-/pull-stream-3.6.14.tgz", + "integrity": "sha512-KIqdvpqHHaTUA2mCYcLG1ibEbu/LCKoJZsBWyv9lSYtPkJPBq8m3Hxa103xHi6D2thj5YXa0TqK3L3GUkwgnew==" }, - "normalize-url": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz", - "integrity": "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==", - "dev": true, - "optional": true + "pull-window": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/pull-window/-/pull-window-2.1.4.tgz", + "integrity": "sha1-/DuG/uvRkgx64pdpHiP3BfiFUvA=", + "requires": { + "looper": "^2.0.0" + } }, - "number-to-bn": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/number-to-bn/-/number-to-bn-1.7.0.tgz", - "integrity": "sha1-uzYjWS9+X54AMLGXe9QaDFP+HqA=", - "dev": true, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", "optional": true, "requires": { - "bn.js": "4.11.6", - "strip-hex-prefix": "1.0.0" - }, - "dependencies": { - "bn.js": { - "version": "4.11.6", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", - "integrity": "sha1-UzRK2xRhehP26N0s4okF0cC6MhU=", - "dev": true, - "optional": true - } + "end-of-stream": "^1.1.0", + "once": "^1.3.1" } }, - "oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", - "dev": true + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true + "qs": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" }, - "object-copy": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", - "dev": true, + "query-string": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz", + "integrity": "sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==", + "optional": true, "requires": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - } - }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - } - } - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } + "decode-uri-component": "^0.2.0", + "object-assign": "^4.1.0", + "strict-uri-encode": "^1.0.0" } }, - "object-inspect": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.9.0.tgz", - "integrity": "sha512-i3Bp9iTqwhaLZBxGkRfo5ZbE07BQRT7MGu8+nNgwW9ItGp1TzCTw2DLEoWwjClxBjOFI/hWljTAmYGCEwmtnOw==", - "dev": true - }, - "object-is": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.4.tgz", - "integrity": "sha512-1ZvAZ4wlF7IyPVOcE1Omikt7UpaFlOQq0HlSti+ZvDH3UiD2brwGMwDbyV43jao2bKJ+4+WdPJHSd7kgzKYVqg==", - "dev": true, + "randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3" + "safe-buffer": "^5.1.0" } }, - "object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true - }, - "object-visit": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", - "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", - "dev": true, + "randomfill": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", + "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", + "optional": true, "requires": { - "isobject": "^3.0.0" + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" } }, - "object.assign": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", - "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", - "object-keys": "^1.1.1" - } + "range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "optional": true }, - "object.getownpropertydescriptors": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.1.tgz", - "integrity": "sha512-6DtXgZ/lIZ9hqx4GtZETobXLR/ZLaa0aqV0kzbn80Rf8Z2e/XFnhA0I7p07N2wH8bBBltr2xQPi6sbKWAY2Eng==", - "dev": true, + "raw-body": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", + "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", + "optional": true, "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.1" + "bytes": "3.1.0", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" } }, - "object.pick": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", - "dev": true, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", "requires": { - "isobject": "^3.0.1" + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + } } }, - "oboe": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/oboe/-/oboe-2.1.4.tgz", - "integrity": "sha1-IMiM2wwVNxuwQRklfU/dNLCqSfY=", - "dev": true, - "optional": true, + "regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==" + }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==" + }, + "regenerator-transform": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.10.1.tgz", + "integrity": "sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q==", "requires": { - "http-https": "^1.0.0" + "babel-runtime": "^6.18.0", + "babel-types": "^6.19.0", + "private": "^0.1.6" } }, - "on-finished": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", - "dev": true, - "optional": true, + "regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", "requires": { - "ee-first": "1.1.1" + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" } }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, + "regexp.prototype.flags": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.0.tgz", + "integrity": "sha512-2+Q0C5g951OlYlJz6yu5/M33IcsESLlLfsyIaLJaG4FA2r4yP8MvVMJUUP/fVBkSpbbbZlS5gynbEWLipiiXiQ==", "requires": { - "wrappy": "1" + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1" + }, + "dependencies": { + "es-abstract": { + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0.tgz", + "integrity": "sha512-LJzK7MrQa8TS0ja2w3YNLzUgJCGPdPOV1yVvezjNnS89D+VR08+Szt2mz3YB2Dck/+w5tfIq/RoUAFqJJGM2yw==", + "requires": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "get-intrinsic": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.2", + "is-callable": "^1.2.3", + "is-negative-zero": "^2.0.1", + "is-regex": "^1.1.2", + "is-string": "^1.0.5", + "object-inspect": "^1.9.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "string.prototype.trimend": "^1.0.4", + "string.prototype.trimstart": "^1.0.4", + "unbox-primitive": "^1.0.0" + } + }, + "get-intrinsic": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + } + } } }, - "os-homedir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", - "dev": true - }, - "os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", - "dev": true + "regexpu-core": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz", + "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=", + "requires": { + "regenerate": "^1.2.1", + "regjsgen": "^0.2.0", + "regjsparser": "^0.1.4" + } }, - "p-cancelable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", - "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", - "dev": true, - "optional": true + "regjsgen": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz", + "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=" }, - "p-timeout": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-1.2.1.tgz", - "integrity": "sha1-XrOzU7f86Z8QGhA4iAuwVOu+o4Y=", - "dev": true, - "optional": true, + "regjsparser": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", + "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", "requires": { - "p-finally": "^1.0.0" + "jsesc": "~0.5.0" }, "dependencies": { - "p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", - "dev": true, - "optional": true + "jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=" } } }, - "parse-asn1": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", - "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", - "dev": true, - "optional": true, + "repeat-element": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", + "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==" + }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" + }, + "repeating": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", "requires": { - "asn1.js": "^5.2.0", - "browserify-aes": "^1.0.0", - "evp_bytestokey": "^1.0.0", - "pbkdf2": "^3.0.3", - "safe-buffer": "^5.1.1" + "is-finite": "^1.0.0" } }, - "parse-headers": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.3.tgz", - "integrity": "sha512-QhhZ+DCCit2Coi2vmAKbq5RGTRcQUOE2+REgv8vdyu7MnYx2eZztegqtTx99TZ86GTIwqiy3+4nQTWZ2tgmdCA==", - "dev": true - }, - "parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "dev": true, - "optional": true + "request": { + "version": "2.88.2", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", + "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", + "requires": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.3", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.5.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + } }, - "pascalcase": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", - "dev": true + "resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=" }, - "patch-package": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/patch-package/-/patch-package-6.2.2.tgz", - "integrity": "sha512-YqScVYkVcClUY0v8fF0kWOjDYopzIM8e3bj/RU1DPeEF14+dCGm6UeOYm4jvCyxqIEQ5/eJzmbWfDWnUleFNMg==", - "dev": true, - "requires": { - "@yarnpkg/lockfile": "^1.1.0", - "chalk": "^2.4.2", - "cross-spawn": "^6.0.5", - "find-yarn-workspace-root": "^1.2.1", - "fs-extra": "^7.0.1", - "is-ci": "^2.0.0", - "klaw-sync": "^6.0.0", - "minimist": "^1.2.0", - "rimraf": "^2.6.3", - "semver": "^5.6.0", - "slash": "^2.0.0", - "tmp": "^0.0.33" - }, - "dependencies": { - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "dev": true, - "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", - "dev": true - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - }, - "shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "dev": true, - "requires": { - "shebang-regex": "^1.0.0" - } - }, - "shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", - "dev": true - }, - "slash": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", - "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", - "dev": true - }, - "tmp": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", - "dev": true, - "requires": { - "os-tmpdir": "~1.0.2" - } - }, - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - } + "responselike": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", + "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", + "optional": true, + "requires": { + "lowercase-keys": "^1.0.0" } }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true + "resumer": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/resumer/-/resumer-0.0.0.tgz", + "integrity": "sha1-8ej0YeQGS6Oegq883CqMiT0HZ1k=", + "requires": { + "through": "~2.3.4" + } }, - "path-parse": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", - "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", - "dev": true + "ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==" }, - "path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=", - "dev": true, - "optional": true + "rimraf": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", + "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", + "requires": { + "glob": "^7.1.3" + } }, - "pbkdf2": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.1.tgz", - "integrity": "sha512-4Ejy1OPxi9f2tt1rRV7Go7zmfDQ+ZectEQz3VGUQhgq62HtIRPDyG/JtnwIxs6x3uNMwo2V7q1fMvKjb+Tnpqg==", - "dev": true, + "ripemd160": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", + "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", "requires": { - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4", - "ripemd160": "^2.0.1", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" + "hash-base": "^3.0.0", + "inherits": "^2.0.1" } }, - "performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", - "dev": true + "rlp": { + "version": "2.2.6", + "resolved": "https://registry.npmjs.org/rlp/-/rlp-2.2.6.tgz", + "integrity": "sha512-HAfAmL6SDYNWPUOJNrM500x4Thn4PZsEy5pijPh40U9WfNk0z15hUYzO9xVIMAdIHdFtD8CBDHd75Td1g36Mjg==", + "requires": { + "bn.js": "^4.11.1" + } }, - "posix-character-classes": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", - "dev": true + "rustbn.js": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/rustbn.js/-/rustbn.js-0.2.0.tgz", + "integrity": "sha512-4VlvkRUuCJvr2J6Y0ImW7NvTCriMi7ErOAqWk1y69vAdoNIzCF3yPmgeNzx+RQTLEDFq5sHfscn1MwHxP9hNfA==" }, - "precond": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/precond/-/precond-0.2.3.tgz", - "integrity": "sha1-qpWRvKokkj8eD0hJ0kD0fvwQdaw=", - "dev": true + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" }, - "prepend-http": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", - "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", - "dev": true, - "optional": true + "safe-event-emitter": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/safe-event-emitter/-/safe-event-emitter-1.0.1.tgz", + "integrity": "sha512-e1wFe99A91XYYxoQbcq2ZJUWurxEyP8vfz7A7vuUe1s95q8r5ebraVaA1BukYJcpM6V16ugWoD9vngi8Ccu5fg==", + "requires": { + "events": "^3.0.0" + } }, - "private": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", - "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==", - "dev": true + "safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "requires": { + "ret": "~0.1.10" + } }, - "process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", - "dev": true + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, - "process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "dev": true + "scrypt-js": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz", + "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==" }, - "promise-to-callback": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/promise-to-callback/-/promise-to-callback-1.0.0.tgz", - "integrity": "sha1-XSp0kBC/tn2WNZj805YHRqaP7vc=", - "dev": true, + "scryptsy": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/scryptsy/-/scryptsy-1.2.1.tgz", + "integrity": "sha1-oyJfpLJST4AnAHYeKFW987LZIWM=", + "optional": true, "requires": { - "is-fn": "^1.0.0", - "set-immediate-shim": "^1.0.1" + "pbkdf2": "^3.0.3" } }, - "proxy-addr": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz", - "integrity": "sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==", - "dev": true, - "optional": true, + "secp256k1": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.2.tgz", + "integrity": "sha512-UDar4sKvWAksIlfX3xIaQReADn+WFnHvbVujpcbr+9Sf/69odMwy2MUsz5CKLQgX9nsIyrjuxL2imVyoNHa3fg==", "requires": { - "forwarded": "~0.1.2", - "ipaddr.js": "1.9.1" + "elliptic": "^6.5.2", + "node-addon-api": "^2.0.0", + "node-gyp-build": "^4.2.0" } }, - "prr": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", - "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", - "dev": true - }, - "pseudomap": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", - "dev": true + "seedrandom": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/seedrandom/-/seedrandom-3.0.1.tgz", + "integrity": "sha512-1/02Y/rUeU1CJBAGLebiC5Lbo5FnB22gQbIFFYTLkwvp1xdABZJH1sn4ZT1MzXmPpzv+Rf/Lu2NcsLJiK4rcDg==" }, - "psl": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", - "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==", - "dev": true + "semaphore": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/semaphore/-/semaphore-1.1.0.tgz", + "integrity": "sha512-O4OZEaNtkMd/K0i6js9SL+gqy0ZCBMgUvlSqHKi4IBdjhe7wB8pwztUk1BbZ1fmrvpwFrPbHzqd2w5pTcJH6LA==" }, - "public-encrypt": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", - "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", - "dev": true, + "send": { + "version": "0.17.1", + "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", + "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", "optional": true, "requires": { - "bn.js": "^4.1.0", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "parse-asn1": "^5.0.0", - "randombytes": "^2.0.1", - "safe-buffer": "^5.1.2" + "debug": "2.6.9", + "depd": "~1.1.2", + "destroy": "~1.0.4", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "~1.7.2", + "mime": "1.6.0", + "ms": "2.1.1", + "on-finished": "~2.3.0", + "range-parser": "~1.2.1", + "statuses": "~1.5.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "optional": true, + "requires": { + "ms": "2.0.0" + }, + "dependencies": { + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "optional": true + } + } + }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "optional": true + } } }, - "pull-cat": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/pull-cat/-/pull-cat-1.1.11.tgz", - "integrity": "sha1-tkLdElXaN2pwa220+pYvX9t0wxs=", - "dev": true - }, - "pull-defer": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/pull-defer/-/pull-defer-0.2.3.tgz", - "integrity": "sha512-/An3KE7mVjZCqNhZsr22k1Tx8MACnUnHZZNPSJ0S62td8JtYr/AiRG42Vz7Syu31SoTLUzVIe61jtT/pNdjVYA==", - "dev": true + "serve-static": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", + "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", + "optional": true, + "requires": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.17.1" + } }, - "pull-level": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pull-level/-/pull-level-2.0.4.tgz", - "integrity": "sha512-fW6pljDeUThpq5KXwKbRG3X7Ogk3vc75d5OQU/TvXXui65ykm+Bn+fiktg+MOx2jJ85cd+sheufPL+rw9QSVZg==", - "dev": true, + "servify": { + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/servify/-/servify-0.1.12.tgz", + "integrity": "sha512-/xE6GvsKKqyo1BAY+KxOWXcLpPsUUyji7Qg3bVD7hh1eRze5bR1uYiuDA/k3Gof1s9BTzQZEJK8sNcNGFIzeWw==", + "optional": true, "requires": { - "level-post": "^1.0.7", - "pull-cat": "^1.1.9", - "pull-live": "^1.0.1", - "pull-pushable": "^2.0.0", - "pull-stream": "^3.4.0", - "pull-window": "^2.1.4", - "stream-to-pull-stream": "^1.7.1" + "body-parser": "^1.16.0", + "cors": "^2.8.1", + "express": "^4.14.0", + "request": "^2.79.0", + "xhr": "^2.3.3" } }, - "pull-live": { + "set-immediate-shim": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/pull-live/-/pull-live-1.0.1.tgz", - "integrity": "sha1-pOzuAeMwFV6RJLu89HYfIbOPUfU=", - "dev": true, + "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", + "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=" + }, + "set-value": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", + "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", "requires": { - "pull-cat": "^1.1.9", - "pull-stream": "^3.4.0" + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" + } } }, - "pull-pushable": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/pull-pushable/-/pull-pushable-2.2.0.tgz", - "integrity": "sha1-Xy867UethpGfAbEqLpnW8b13ZYE=", - "dev": true + "setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" }, - "pull-stream": { - "version": "3.6.14", - "resolved": "https://registry.npmjs.org/pull-stream/-/pull-stream-3.6.14.tgz", - "integrity": "sha512-KIqdvpqHHaTUA2mCYcLG1ibEbu/LCKoJZsBWyv9lSYtPkJPBq8m3Hxa103xHi6D2thj5YXa0TqK3L3GUkwgnew==", - "dev": true + "setprototypeof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", + "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==", + "optional": true }, - "pull-window": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/pull-window/-/pull-window-2.1.4.tgz", - "integrity": "sha1-/DuG/uvRkgx64pdpHiP3BfiFUvA=", - "dev": true, + "sha.js": { + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", "requires": { - "looper": "^2.0.0" + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" } }, - "pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dev": true, + "simple-concat": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", + "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==", + "optional": true + }, + "simple-get": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-2.8.1.tgz", + "integrity": "sha512-lSSHRSw3mQNUGPAYRqo7xy9dhKmxFXIjLjp4KHpf99GEH2VH7C3AM+Qfx6du6jhfUi6Vm7XnbEVEf7Wb6N8jRw==", "optional": true, "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" + "decompress-response": "^3.3.0", + "once": "^1.3.1", + "simple-concat": "^1.0.0" } }, - "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "dev": true - }, - "qs": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", - "dev": true - }, - "query-string": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz", - "integrity": "sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==", - "dev": true, - "optional": true, + "snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", "requires": { - "decode-uri-component": "^0.2.0", - "object-assign": "^4.1.0", - "strict-uri-encode": "^1.0.0" + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + } } }, - "randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dev": true, + "snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", "requires": { - "safe-buffer": "^5.1.0" + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "requires": { + "is-descriptor": "^1.0.0" + } + } } }, - "randomfill": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", - "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", - "dev": true, - "optional": true, + "snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", "requires": { - "randombytes": "^2.0.5", - "safe-buffer": "^5.1.0" + "kind-of": "^3.2.0" + }, + "dependencies": { + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } } }, - "range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", - "dev": true, - "optional": true + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" }, - "raw-body": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", - "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", - "dev": true, - "optional": true, + "source-map-resolve": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", + "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", "requires": { - "bytes": "3.1.0", - "http-errors": "1.7.2", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" } }, - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, + "source-map-support": { + "version": "0.5.12", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.12.tgz", + "integrity": "sha512-4h2Pbvyy15EE02G+JOZpUCmqWJuqrs+sEkzewTm++BPi7Hvn/HwcqLAcNxYAyI0x13CpPPn+kMjl+hplXMHITQ==", "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" }, "dependencies": { - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" } } }, - "regenerate": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", - "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", - "dev": true - }, - "regenerator-runtime": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", - "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", - "dev": true + "source-map-url": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", + "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=" }, - "regenerator-transform": { - "version": "0.10.1", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.10.1.tgz", - "integrity": "sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q==", - "dev": true, + "split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", "requires": { - "babel-runtime": "^6.18.0", - "babel-types": "^6.19.0", - "private": "^0.1.6" + "extend-shallow": "^3.0.0" } }, - "regex-not": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", - "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", - "dev": true, + "sshpk": { + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", + "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", "requires": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + }, + "dependencies": { + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" + } } }, - "regexp.prototype.flags": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.0.tgz", - "integrity": "sha512-2+Q0C5g951OlYlJz6yu5/M33IcsESLlLfsyIaLJaG4FA2r4yP8MvVMJUUP/fVBkSpbbbZlS5gynbEWLipiiXiQ==", - "dev": true, + "static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.0-next.1" + "define-property": "^0.2.5", + "object-copy": "^0.1.0" }, "dependencies": { - "es-abstract": { - "version": "1.18.0", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0.tgz", - "integrity": "sha512-LJzK7MrQa8TS0ja2w3YNLzUgJCGPdPOV1yVvezjNnS89D+VR08+Szt2mz3YB2Dck/+w5tfIq/RoUAFqJJGM2yw==", - "dev": true, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { - "call-bind": "^1.0.2", - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "get-intrinsic": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.2", - "is-callable": "^1.2.3", - "is-negative-zero": "^2.0.1", - "is-regex": "^1.1.2", - "is-string": "^1.0.5", - "object-inspect": "^1.9.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.2", - "string.prototype.trimend": "^1.0.4", - "string.prototype.trimstart": "^1.0.4", - "unbox-primitive": "^1.0.0" + "is-descriptor": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "requires": { + "kind-of": "^3.0.2" }, "dependencies": { - "get-intrinsic": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", - "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", - "dev": true, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" + "is-buffer": "^1.1.5" } } } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + } + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" } } }, - "regexpu-core": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz", - "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=", - "dev": true, + "statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", + "optional": true + }, + "stream-to-pull-stream": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/stream-to-pull-stream/-/stream-to-pull-stream-1.7.3.tgz", + "integrity": "sha512-6sNyqJpr5dIOQdgNy/xcDWwDuzAsAwVzhzrWlAPAQ7Lkjx/rv0wgvxEyKwTq6FmNd5rjTrELt/CLmaSw7crMGg==", "requires": { - "regenerate": "^1.2.1", - "regjsgen": "^0.2.0", - "regjsparser": "^0.1.4" + "looper": "^3.0.0", + "pull-stream": "^3.2.3" + }, + "dependencies": { + "looper": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/looper/-/looper-3.0.0.tgz", + "integrity": "sha1-LvpUw7HLq6m5Su4uWRSwvlf7t0k=" + } } }, - "regjsgen": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz", - "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=", - "dev": true + "strict-uri-encode": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", + "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=", + "optional": true }, - "regjsparser": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", - "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", - "dev": true, + "string.prototype.trim": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.3.tgz", + "integrity": "sha512-16IL9pIBA5asNOSukPfxX2W68BaBvxyiRK16H3RA/lWW9BDosh+w7f+LhomPHpXJ82QEe7w7/rY/S1CV97raLg==", + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.1" + } + }, + "string.prototype.trimend": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.3.tgz", + "integrity": "sha512-ayH0pB+uf0U28CtjlLvL7NaohvR1amUvVZk+y3DYb0Ey2PUV5zPkkKy9+U1ndVEIXO8hNg18eIv9Jntbii+dKw==", + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3" + } + }, + "string.prototype.trimstart": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.3.tgz", + "integrity": "sha512-oBIBUy5lea5tt0ovtOFiEQaBkoBBkyJhZXzJYrSmDo5IUUqbOPvVezuRs/agBIdZ2p2Eo1FD6bD9USyBLfl3xg==", + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "requires": { - "jsesc": "~0.5.0" + "safe-buffer": "~5.1.0" }, "dependencies": { - "jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", - "dev": true + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" } } }, - "repeat-element": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", - "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==", - "dev": true - }, - "repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", - "dev": true - }, - "repeating": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", - "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", - "dev": true, + "strip-hex-prefix": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz", + "integrity": "sha1-DF8VX+8RUTczd96du1iNoFUA428=", "requires": { - "is-finite": "^1.0.0" + "is-hex-prefixed": "1.0.0" } }, - "request": { - "version": "2.88.2", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", - "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", - "dev": true, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "requires": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.3", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.5.0", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" + "has-flag": "^3.0.0" } }, - "resolve-url": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", - "dev": true - }, - "responselike": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", - "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", - "dev": true, + "swarm-js": { + "version": "0.1.40", + "resolved": "https://registry.npmjs.org/swarm-js/-/swarm-js-0.1.40.tgz", + "integrity": "sha512-yqiOCEoA4/IShXkY3WKwP5PvZhmoOOD8clsKA7EEcRILMkTEYHCQ21HDCAcVpmIxZq4LyZvWeRJ6quIyHk1caA==", "optional": true, "requires": { - "lowercase-keys": "^1.0.0" + "bluebird": "^3.5.0", + "buffer": "^5.0.5", + "eth-lib": "^0.1.26", + "fs-extra": "^4.0.2", + "got": "^7.1.0", + "mime-types": "^2.1.16", + "mkdirp-promise": "^5.0.1", + "mock-fs": "^4.1.0", + "setimmediate": "^1.0.5", + "tar": "^4.0.2", + "xhr-request": "^1.0.1" + }, + "dependencies": { + "fs-extra": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.3.tgz", + "integrity": "sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg==", + "optional": true, + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "get-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", + "optional": true + }, + "got": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/got/-/got-7.1.0.tgz", + "integrity": "sha512-Y5WMo7xKKq1muPsxD+KmrR8DH5auG7fBdDVueZwETwV6VytKyU9OX/ddpq2/1hp1vIPvVb4T81dKQz3BivkNLw==", + "optional": true, + "requires": { + "decompress-response": "^3.2.0", + "duplexer3": "^0.1.4", + "get-stream": "^3.0.0", + "is-plain-obj": "^1.1.0", + "is-retry-allowed": "^1.0.0", + "is-stream": "^1.0.0", + "isurl": "^1.0.0-alpha5", + "lowercase-keys": "^1.0.0", + "p-cancelable": "^0.3.0", + "p-timeout": "^1.1.1", + "safe-buffer": "^5.0.1", + "timed-out": "^4.0.0", + "url-parse-lax": "^1.0.0", + "url-to-options": "^1.0.1" + } + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", + "optional": true + }, + "p-cancelable": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.3.0.tgz", + "integrity": "sha512-RVbZPLso8+jFeq1MfNvgXtCRED2raz/dKpacfTNxsx6pLEpEomM7gah6VeHSYV3+vo0OAi4MkArtQcWWXuQoyw==", + "optional": true + }, + "prepend-http": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", + "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=", + "optional": true + }, + "url-parse-lax": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", + "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", + "optional": true, + "requires": { + "prepend-http": "^1.0.1" + } + } } }, - "resumer": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/resumer/-/resumer-0.0.0.tgz", - "integrity": "sha1-8ej0YeQGS6Oegq883CqMiT0HZ1k=", - "dev": true, + "tape": { + "version": "4.13.3", + "resolved": "https://registry.npmjs.org/tape/-/tape-4.13.3.tgz", + "integrity": "sha512-0/Y20PwRIUkQcTCSi4AASs+OANZZwqPKaipGCEwp10dQMipVvSZwUUCi01Y/OklIGyHKFhIcjock+DKnBfLAFw==", "requires": { - "through": "~2.3.4" + "deep-equal": "~1.1.1", + "defined": "~1.0.0", + "dotignore": "~0.1.2", + "for-each": "~0.3.3", + "function-bind": "~1.1.1", + "glob": "~7.1.6", + "has": "~1.0.3", + "inherits": "~2.0.4", + "is-regex": "~1.0.5", + "minimist": "~1.2.5", + "object-inspect": "~1.7.0", + "resolve": "~1.17.0", + "resumer": "~0.0.0", + "string.prototype.trim": "~1.2.1", + "through": "~2.3.8" + }, + "dependencies": { + "glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "is-regex": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz", + "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==", + "requires": { + "has": "^1.0.3" + } + }, + "object-inspect": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz", + "integrity": "sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==" + }, + "resolve": { + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz", + "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==", + "requires": { + "path-parse": "^1.0.6" + } + } } }, - "ret": { - "version": "0.1.15", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", - "dev": true + "tar": { + "version": "4.4.13", + "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.13.tgz", + "integrity": "sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA==", + "optional": true, + "requires": { + "chownr": "^1.1.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.8.6", + "minizlib": "^1.2.1", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.2", + "yallist": "^3.0.3" + }, + "dependencies": { + "fs-minipass": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz", + "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==", + "optional": true, + "requires": { + "minipass": "^2.6.0" + } + }, + "minipass": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz", + "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==", + "optional": true, + "requires": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + } + } + } }, - "rimraf": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", - "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", - "dev": true, + "through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" + }, + "through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", "requires": { - "glob": "^7.1.3" + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" } }, - "ripemd160": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", - "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", - "dev": true, + "timed-out": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", + "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=", + "optional": true + }, + "tmp": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.1.0.tgz", + "integrity": "sha512-J7Z2K08jbGcdA1kkQpJSqLF6T0tdQqpR2pnSUXsIchbPdTI9v3e85cLW0d6WDhwuAleOV71j2xWs8qMPfK7nKw==", "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" + "rimraf": "^2.6.3" } }, - "rlp": { - "version": "2.2.6", - "resolved": "https://registry.npmjs.org/rlp/-/rlp-2.2.6.tgz", - "integrity": "sha512-HAfAmL6SDYNWPUOJNrM500x4Thn4PZsEy5pijPh40U9WfNk0z15hUYzO9xVIMAdIHdFtD8CBDHd75Td1g36Mjg==", - "dev": true, + "to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", "requires": { - "bn.js": "^4.11.1" + "kind-of": "^3.0.2" + }, + "dependencies": { + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } } }, - "rustbn.js": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/rustbn.js/-/rustbn.js-0.2.0.tgz", - "integrity": "sha512-4VlvkRUuCJvr2J6Y0ImW7NvTCriMi7ErOAqWk1y69vAdoNIzCF3yPmgeNzx+RQTLEDFq5sHfscn1MwHxP9hNfA==", - "dev": true - }, - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true + "to-readable-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", + "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", + "optional": true }, - "safe-event-emitter": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/safe-event-emitter/-/safe-event-emitter-1.0.1.tgz", - "integrity": "sha512-e1wFe99A91XYYxoQbcq2ZJUWurxEyP8vfz7A7vuUe1s95q8r5ebraVaA1BukYJcpM6V16ugWoD9vngi8Ccu5fg==", - "dev": true, + "to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", "requires": { - "events": "^3.0.0" + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" } }, - "safe-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", - "dev": true, + "toidentifier": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", + "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==", + "optional": true + }, + "tough-cookie": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", "requires": { - "ret": "~0.1.10" + "psl": "^1.1.28", + "punycode": "^2.1.1" } }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true - }, - "scrypt-js": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz", - "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==", - "dev": true + "trim-right": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", + "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=" }, - "scryptsy": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/scryptsy/-/scryptsy-1.2.1.tgz", - "integrity": "sha1-oyJfpLJST4AnAHYeKFW987LZIWM=", - "dev": true, - "optional": true, + "tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", "requires": { - "pbkdf2": "^3.0.3" + "safe-buffer": "^5.0.1" } }, - "secp256k1": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.2.tgz", - "integrity": "sha512-UDar4sKvWAksIlfX3xIaQReADn+WFnHvbVujpcbr+9Sf/69odMwy2MUsz5CKLQgX9nsIyrjuxL2imVyoNHa3fg==", - "dev": true, - "requires": { - "elliptic": "^6.5.2", - "node-addon-api": "^2.0.0", - "node-gyp-build": "^4.2.0" - } + "tweetnacl": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz", + "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==" }, - "seedrandom": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/seedrandom/-/seedrandom-3.0.1.tgz", - "integrity": "sha512-1/02Y/rUeU1CJBAGLebiC5Lbo5FnB22gQbIFFYTLkwvp1xdABZJH1sn4ZT1MzXmPpzv+Rf/Lu2NcsLJiK4rcDg==", - "dev": true + "tweetnacl-util": { + "version": "0.15.1", + "resolved": "https://registry.npmjs.org/tweetnacl-util/-/tweetnacl-util-0.15.1.tgz", + "integrity": "sha512-RKJBIj8lySrShN4w6i/BonWp2Z/uxwC3h4y7xsRrpP59ZboCd0GpEVsOnMDYLMmKBpYhb5TgHzZXy7wTfYFBRw==" }, - "semaphore": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/semaphore/-/semaphore-1.1.0.tgz", - "integrity": "sha512-O4OZEaNtkMd/K0i6js9SL+gqy0ZCBMgUvlSqHKi4IBdjhe7wB8pwztUk1BbZ1fmrvpwFrPbHzqd2w5pTcJH6LA==", - "dev": true + "type": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", + "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==" }, - "send": { - "version": "0.17.1", - "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", - "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", - "dev": true, + "type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", "optional": true, "requires": { - "debug": "2.6.9", - "depd": "~1.1.2", - "destroy": "~1.0.4", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "~1.7.2", - "mime": "1.6.0", - "ms": "2.1.1", - "on-finished": "~2.3.0", - "range-parser": "~1.2.1", - "statuses": "~1.5.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "optional": true, - "requires": { - "ms": "2.0.0" - }, - "dependencies": { - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true, - "optional": true - } - } - }, - "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", - "dev": true, - "optional": true - } + "media-typer": "0.3.0", + "mime-types": "~2.1.24" } }, - "serve-static": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", - "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", - "dev": true, - "optional": true, + "typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" + }, + "typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", "requires": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.17.1" + "is-typedarray": "^1.0.0" } }, - "servify": { - "version": "0.1.12", - "resolved": "https://registry.npmjs.org/servify/-/servify-0.1.12.tgz", - "integrity": "sha512-/xE6GvsKKqyo1BAY+KxOWXcLpPsUUyji7Qg3bVD7hh1eRze5bR1uYiuDA/k3Gof1s9BTzQZEJK8sNcNGFIzeWw==", - "dev": true, - "optional": true, + "typewise": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typewise/-/typewise-1.0.3.tgz", + "integrity": "sha1-EGeTZUCvl5N8xdz5kiSG6fooRlE=", "requires": { - "body-parser": "^1.16.0", - "cors": "^2.8.1", - "express": "^4.14.0", - "request": "^2.79.0", - "xhr": "^2.3.3" + "typewise-core": "^1.2.0" } }, - "set-immediate-shim": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", - "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=", - "dev": true + "typewise-core": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/typewise-core/-/typewise-core-1.2.0.tgz", + "integrity": "sha1-l+uRgFx/VdL5QXSPpQ0xXZke8ZU=" + }, + "typewiselite": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typewiselite/-/typewiselite-1.0.0.tgz", + "integrity": "sha1-yIgvobsQksBgBal/NO9chQjjZk4=" + }, + "ultron": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz", + "integrity": "sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==", + "optional": true + }, + "underscore": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.9.1.tgz", + "integrity": "sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg==", + "optional": true }, - "set-value": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", - "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", - "dev": true, + "union-value": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", + "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", "requires": { - "extend-shallow": "^2.0.1", + "arr-union": "^3.1.0", + "get-value": "^2.0.6", "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" + "set-value": "^2.0.1" }, "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, "is-extendable": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" } } }, - "setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", - "dev": true - }, - "setprototypeof": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", - "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==", - "dev": true, - "optional": true + "universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" }, - "sha.js": { - "version": "2.4.11", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", - "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } + "unorm": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/unorm/-/unorm-1.6.0.tgz", + "integrity": "sha512-b2/KCUlYZUeA7JFUuRJZPUtr4gZvBh7tavtv4fvk4+KV9pfGiR6CQAQAWl49ZpR3ts2dk4FYkP7EIgDJoiOLDA==" }, - "simple-concat": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", - "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==", - "dev": true, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", "optional": true }, - "simple-get": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-2.8.1.tgz", - "integrity": "sha512-lSSHRSw3mQNUGPAYRqo7xy9dhKmxFXIjLjp4KHpf99GEH2VH7C3AM+Qfx6du6jhfUi6Vm7XnbEVEf7Wb6N8jRw==", - "dev": true, - "optional": true, - "requires": { - "decompress-response": "^3.3.0", - "once": "^1.3.1", - "simple-concat": "^1.0.0" - } - }, - "snapdragon": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", - "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", - "dev": true, + "unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", "requires": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.0" + "has-value": "^0.3.1", + "isobject": "^3.0.0" }, "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, + "has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", "requires": { - "kind-of": "^3.0.2" + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" }, "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", "requires": { - "is-buffer": "^1.1.5" + "isarray": "1.0.0" } } } }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true - }, - "is-data-descriptor": { + "has-values": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } - } - }, - "snapdragon-node": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", - "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", - "dev": true, - "requires": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=" } } }, - "snapdragon-util": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", - "dev": true, - "requires": { - "kind-of": "^3.2.0" - }, - "dependencies": { - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } + "uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "requires": { + "punycode": "^2.1.0" } }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true + "urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=" }, - "source-map-resolve": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", - "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", - "dev": true, + "url-parse-lax": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", + "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", + "optional": true, "requires": { - "atob": "^2.1.2", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" + "prepend-http": "^2.0.0" } }, - "source-map-support": { - "version": "0.5.12", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.12.tgz", - "integrity": "sha512-4h2Pbvyy15EE02G+JOZpUCmqWJuqrs+sEkzewTm++BPi7Hvn/HwcqLAcNxYAyI0x13CpPPn+kMjl+hplXMHITQ==", - "dev": true, + "url-set-query": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/url-set-query/-/url-set-query-1.0.0.tgz", + "integrity": "sha1-AW6M/Xwg7gXK/neV6JK9BwL6ozk=", + "optional": true + }, + "url-to-options": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/url-to-options/-/url-to-options-1.0.1.tgz", + "integrity": "sha1-FQWgOiiaSMvXpDTvuu7FBV9WM6k=", + "optional": true + }, + "use": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==" + }, + "utf-8-validate": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.4.tgz", + "integrity": "sha512-MEF05cPSq3AwJ2C7B7sHAA6i53vONoZbMGX8My5auEVm6W+dJ2Jd/TZPyGJ5CH42V2XtbI5FD28HeHeqlPzZ3Q==", "requires": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } + "node-gyp-build": "^4.2.0" } }, - "source-map-url": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", - "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", - "dev": true + "utf8": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/utf8/-/utf8-3.0.0.tgz", + "integrity": "sha512-E8VjFIQ/TyQgp+TZfS6l8yp/xWppSAHzidGiRrqe4bK4XP9pTRyKFgGJpO3SN7zdX4DeomTrwaseCHovfpFcqQ==", + "optional": true }, - "split-string": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", - "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", - "dev": true, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, + "util.promisify": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.1.1.tgz", + "integrity": "sha512-/s3UsZUrIfa6xDhr7zZhnE9SLQ5RIXyYfiVnMMyMDzOc8WhWN4Nbh36H842OyurKbCDAesZOJaVyvmSl6fhGQw==", "requires": { - "extend-shallow": "^3.0.0" + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "for-each": "^0.3.3", + "has-symbols": "^1.0.1", + "object.getownpropertydescriptors": "^2.1.1" } }, - "sshpk": { - "version": "1.16.1", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", - "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", - "dev": true, + "utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", + "optional": true + }, + "uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==" + }, + "varint": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/varint/-/varint-5.0.2.tgz", + "integrity": "sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow==", + "optional": true + }, + "vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", + "optional": true + }, + "verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", "requires": { - "asn1": "~0.2.3", "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "web3": { + "version": "1.2.11", + "resolved": "https://registry.npmjs.org/web3/-/web3-1.2.11.tgz", + "integrity": "sha512-mjQ8HeU41G6hgOYm1pmeH0mRAeNKJGnJEUzDMoerkpw7QUQT4exVREgF1MYPvL/z6vAshOXei25LE/t/Bxl8yQ==", + "optional": true, + "requires": { + "web3-bzz": "1.2.11", + "web3-core": "1.2.11", + "web3-eth": "1.2.11", + "web3-eth-personal": "1.2.11", + "web3-net": "1.2.11", + "web3-shh": "1.2.11", + "web3-utils": "1.2.11" + } + }, + "web3-bzz": { + "version": "1.2.11", + "resolved": "https://registry.npmjs.org/web3-bzz/-/web3-bzz-1.2.11.tgz", + "integrity": "sha512-XGpWUEElGypBjeFyUhTkiPXFbDVD6Nr/S5jznE3t8cWUA0FxRf1n3n/NuIZeb0H9RkN2Ctd/jNma/k8XGa3YKg==", + "optional": true, + "requires": { + "@types/node": "^12.12.6", + "got": "9.6.0", + "swarm-js": "^0.1.40", + "underscore": "1.9.1" }, "dependencies": { - "tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", - "dev": true + "@types/node": { + "version": "12.19.12", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.19.12.tgz", + "integrity": "sha512-UwfL2uIU9arX/+/PRcIkT08/iBadGN2z6ExOROA2Dh5mAuWTBj6iJbQX4nekiV5H8cTrEG569LeX+HRco9Cbxw==", + "optional": true } } }, - "static-extend": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", - "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", - "dev": true, + "web3-core": { + "version": "1.2.11", + "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-1.2.11.tgz", + "integrity": "sha512-CN7MEYOY5ryo5iVleIWRE3a3cZqVaLlIbIzDPsvQRUfzYnvzZQRZBm9Mq+ttDi2STOOzc1MKylspz/o3yq/LjQ==", + "optional": true, "requires": { - "define-property": "^0.2.5", - "object-copy": "^0.1.0" + "@types/bn.js": "^4.11.5", + "@types/node": "^12.12.6", + "bignumber.js": "^9.0.0", + "web3-core-helpers": "1.2.11", + "web3-core-method": "1.2.11", + "web3-core-requestmanager": "1.2.11", + "web3-utils": "1.2.11" }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true + "dependencies": { + "@types/node": { + "version": "12.19.12", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.19.12.tgz", + "integrity": "sha512-UwfL2uIU9arX/+/PRcIkT08/iBadGN2z6ExOROA2Dh5mAuWTBj6iJbQX4nekiV5H8cTrEG569LeX+HRco9Cbxw==", + "optional": true } } }, - "statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", - "dev": true, - "optional": true + "web3-core-helpers": { + "version": "1.2.11", + "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.2.11.tgz", + "integrity": "sha512-PEPoAoZd5ME7UfbnCZBdzIerpe74GEvlwT4AjOmHeCVZoIFk7EqvOZDejJHt+feJA6kMVTdd0xzRNN295UhC1A==", + "optional": true, + "requires": { + "underscore": "1.9.1", + "web3-eth-iban": "1.2.11", + "web3-utils": "1.2.11" + } }, - "stream-to-pull-stream": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/stream-to-pull-stream/-/stream-to-pull-stream-1.7.3.tgz", - "integrity": "sha512-6sNyqJpr5dIOQdgNy/xcDWwDuzAsAwVzhzrWlAPAQ7Lkjx/rv0wgvxEyKwTq6FmNd5rjTrELt/CLmaSw7crMGg==", - "dev": true, + "web3-core-method": { + "version": "1.2.11", + "resolved": "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.2.11.tgz", + "integrity": "sha512-ff0q76Cde94HAxLDZ6DbdmKniYCQVtvuaYh+rtOUMB6kssa5FX0q3vPmixi7NPooFnbKmmZCM6NvXg4IreTPIw==", + "optional": true, "requires": { - "looper": "^3.0.0", - "pull-stream": "^3.2.3" - }, - "dependencies": { - "looper": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/looper/-/looper-3.0.0.tgz", - "integrity": "sha1-LvpUw7HLq6m5Su4uWRSwvlf7t0k=", - "dev": true - } + "@ethersproject/transactions": "^5.0.0-beta.135", + "underscore": "1.9.1", + "web3-core-helpers": "1.2.11", + "web3-core-promievent": "1.2.11", + "web3-core-subscriptions": "1.2.11", + "web3-utils": "1.2.11" } }, - "strict-uri-encode": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", - "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=", - "dev": true, - "optional": true + "web3-core-promievent": { + "version": "1.2.11", + "resolved": "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.2.11.tgz", + "integrity": "sha512-il4McoDa/Ox9Agh4kyfQ8Ak/9ABYpnF8poBLL33R/EnxLsJOGQG2nZhkJa3I067hocrPSjEdlPt/0bHXsln4qA==", + "optional": true, + "requires": { + "eventemitter3": "4.0.4" + } }, - "string.prototype.trim": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.3.tgz", - "integrity": "sha512-16IL9pIBA5asNOSukPfxX2W68BaBvxyiRK16H3RA/lWW9BDosh+w7f+LhomPHpXJ82QEe7w7/rY/S1CV97raLg==", - "dev": true, + "web3-core-requestmanager": { + "version": "1.2.11", + "resolved": "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.2.11.tgz", + "integrity": "sha512-oFhBtLfOiIbmfl6T6gYjjj9igOvtyxJ+fjS+byRxiwFJyJ5BQOz4/9/17gWR1Cq74paTlI7vDGxYfuvfE/mKvA==", + "optional": true, "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.1" + "underscore": "1.9.1", + "web3-core-helpers": "1.2.11", + "web3-providers-http": "1.2.11", + "web3-providers-ipc": "1.2.11", + "web3-providers-ws": "1.2.11" } }, - "string.prototype.trimend": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.3.tgz", - "integrity": "sha512-ayH0pB+uf0U28CtjlLvL7NaohvR1amUvVZk+y3DYb0Ey2PUV5zPkkKy9+U1ndVEIXO8hNg18eIv9Jntbii+dKw==", - "dev": true, + "web3-core-subscriptions": { + "version": "1.2.11", + "resolved": "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.2.11.tgz", + "integrity": "sha512-qEF/OVqkCvQ7MPs1JylIZCZkin0aKK9lDxpAtQ1F8niEDGFqn7DT8E/vzbIa0GsOjL2fZjDhWJsaW+BSoAW1gg==", + "optional": true, "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3" + "eventemitter3": "4.0.4", + "underscore": "1.9.1", + "web3-core-helpers": "1.2.11" } }, - "string.prototype.trimstart": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.3.tgz", - "integrity": "sha512-oBIBUy5lea5tt0ovtOFiEQaBkoBBkyJhZXzJYrSmDo5IUUqbOPvVezuRs/agBIdZ2p2Eo1FD6bD9USyBLfl3xg==", - "dev": true, + "web3-eth": { + "version": "1.2.11", + "resolved": "https://registry.npmjs.org/web3-eth/-/web3-eth-1.2.11.tgz", + "integrity": "sha512-REvxW1wJ58AgHPcXPJOL49d1K/dPmuw4LjPLBPStOVkQjzDTVmJEIsiLwn2YeuNDd4pfakBwT8L3bz1G1/wVsQ==", + "optional": true, "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3" + "underscore": "1.9.1", + "web3-core": "1.2.11", + "web3-core-helpers": "1.2.11", + "web3-core-method": "1.2.11", + "web3-core-subscriptions": "1.2.11", + "web3-eth-abi": "1.2.11", + "web3-eth-accounts": "1.2.11", + "web3-eth-contract": "1.2.11", + "web3-eth-ens": "1.2.11", + "web3-eth-iban": "1.2.11", + "web3-eth-personal": "1.2.11", + "web3-net": "1.2.11", + "web3-utils": "1.2.11" } }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, + "web3-eth-abi": { + "version": "1.2.11", + "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.2.11.tgz", + "integrity": "sha512-PkRYc0+MjuLSgg03QVWqWlQivJqRwKItKtEpRUaxUAeLE7i/uU39gmzm2keHGcQXo3POXAbOnMqkDvOep89Crg==", + "optional": true, "requires": { - "safe-buffer": "~5.1.0" + "@ethersproject/abi": "5.0.0-beta.153", + "underscore": "1.9.1", + "web3-utils": "1.2.11" + } + }, + "web3-eth-accounts": { + "version": "1.2.11", + "resolved": "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.2.11.tgz", + "integrity": "sha512-6FwPqEpCfKIh3nSSGeo3uBm2iFSnFJDfwL3oS9pyegRBXNsGRVpgiW63yhNzL0796StsvjHWwQnQHsZNxWAkGw==", + "optional": true, + "requires": { + "crypto-browserify": "3.12.0", + "eth-lib": "0.2.8", + "ethereumjs-common": "^1.3.2", + "ethereumjs-tx": "^2.1.1", + "scrypt-js": "^3.0.1", + "underscore": "1.9.1", + "uuid": "3.3.2", + "web3-core": "1.2.11", + "web3-core-helpers": "1.2.11", + "web3-core-method": "1.2.11", + "web3-utils": "1.2.11" }, "dependencies": { - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true + "eth-lib": { + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz", + "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==", + "optional": true, + "requires": { + "bn.js": "^4.11.6", + "elliptic": "^6.4.0", + "xhr-request-promise": "^0.1.2" + } + }, + "uuid": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", + "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", + "optional": true } } }, - "strip-hex-prefix": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz", - "integrity": "sha1-DF8VX+8RUTczd96du1iNoFUA428=", - "dev": true, + "web3-eth-contract": { + "version": "1.2.11", + "resolved": "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.2.11.tgz", + "integrity": "sha512-MzYuI/Rq2o6gn7vCGcnQgco63isPNK5lMAan2E51AJLknjSLnOxwNY3gM8BcKoy4Z+v5Dv00a03Xuk78JowFow==", + "optional": true, "requires": { - "is-hex-prefixed": "1.0.0" + "@types/bn.js": "^4.11.5", + "underscore": "1.9.1", + "web3-core": "1.2.11", + "web3-core-helpers": "1.2.11", + "web3-core-method": "1.2.11", + "web3-core-promievent": "1.2.11", + "web3-core-subscriptions": "1.2.11", + "web3-eth-abi": "1.2.11", + "web3-utils": "1.2.11" } }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, + "web3-eth-ens": { + "version": "1.2.11", + "resolved": "https://registry.npmjs.org/web3-eth-ens/-/web3-eth-ens-1.2.11.tgz", + "integrity": "sha512-dbW7dXP6HqT1EAPvnniZVnmw6TmQEKF6/1KgAxbo8iBBYrVTMDGFQUUnZ+C4VETGrwwaqtX4L9d/FrQhZ6SUiA==", + "optional": true, "requires": { - "has-flag": "^3.0.0" + "content-hash": "^2.5.2", + "eth-ens-namehash": "2.0.8", + "underscore": "1.9.1", + "web3-core": "1.2.11", + "web3-core-helpers": "1.2.11", + "web3-core-promievent": "1.2.11", + "web3-eth-abi": "1.2.11", + "web3-eth-contract": "1.2.11", + "web3-utils": "1.2.11" } }, - "swarm-js": { - "version": "0.1.40", - "resolved": "https://registry.npmjs.org/swarm-js/-/swarm-js-0.1.40.tgz", - "integrity": "sha512-yqiOCEoA4/IShXkY3WKwP5PvZhmoOOD8clsKA7EEcRILMkTEYHCQ21HDCAcVpmIxZq4LyZvWeRJ6quIyHk1caA==", - "dev": true, + "web3-eth-iban": { + "version": "1.2.11", + "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.2.11.tgz", + "integrity": "sha512-ozuVlZ5jwFC2hJY4+fH9pIcuH1xP0HEFhtWsR69u9uDIANHLPQQtWYmdj7xQ3p2YT4bQLq/axKhZi7EZVetmxQ==", + "optional": true, + "requires": { + "bn.js": "^4.11.9", + "web3-utils": "1.2.11" + } + }, + "web3-eth-personal": { + "version": "1.2.11", + "resolved": "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.2.11.tgz", + "integrity": "sha512-42IzUtKq9iHZ8K9VN0vAI50iSU9tOA1V7XU2BhF/tb7We2iKBVdkley2fg26TxlOcKNEHm7o6HRtiiFsVK4Ifw==", + "optional": true, + "requires": { + "@types/node": "^12.12.6", + "web3-core": "1.2.11", + "web3-core-helpers": "1.2.11", + "web3-core-method": "1.2.11", + "web3-net": "1.2.11", + "web3-utils": "1.2.11" + }, + "dependencies": { + "@types/node": { + "version": "12.19.12", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.19.12.tgz", + "integrity": "sha512-UwfL2uIU9arX/+/PRcIkT08/iBadGN2z6ExOROA2Dh5mAuWTBj6iJbQX4nekiV5H8cTrEG569LeX+HRco9Cbxw==", + "optional": true + } + } + }, + "web3-net": { + "version": "1.2.11", + "resolved": "https://registry.npmjs.org/web3-net/-/web3-net-1.2.11.tgz", + "integrity": "sha512-sjrSDj0pTfZouR5BSTItCuZ5K/oZPVdVciPQ6981PPPIwJJkCMeVjD7I4zO3qDPCnBjBSbWvVnLdwqUBPtHxyg==", "optional": true, "requires": { - "bluebird": "^3.5.0", - "buffer": "^5.0.5", - "eth-lib": "^0.1.26", - "fs-extra": "^4.0.2", - "got": "^7.1.0", - "mime-types": "^2.1.16", - "mkdirp-promise": "^5.0.1", - "mock-fs": "^4.1.0", - "setimmediate": "^1.0.5", - "tar": "^4.0.2", - "xhr-request": "^1.0.1" + "web3-core": "1.2.11", + "web3-core-method": "1.2.11", + "web3-utils": "1.2.11" + } + }, + "web3-provider-engine": { + "version": "14.2.1", + "resolved": "https://registry.npmjs.org/web3-provider-engine/-/web3-provider-engine-14.2.1.tgz", + "integrity": "sha512-iSv31h2qXkr9vrL6UZDm4leZMc32SjWJFGOp/D92JXfcEboCqraZyuExDkpxKw8ziTufXieNM7LSXNHzszYdJw==", + "requires": { + "async": "^2.5.0", + "backoff": "^2.5.0", + "clone": "^2.0.0", + "cross-fetch": "^2.1.0", + "eth-block-tracker": "^3.0.0", + "eth-json-rpc-infura": "^3.1.0", + "eth-sig-util": "^1.4.2", + "ethereumjs-block": "^1.2.2", + "ethereumjs-tx": "^1.2.0", + "ethereumjs-util": "^5.1.5", + "ethereumjs-vm": "^2.3.4", + "json-rpc-error": "^2.0.0", + "json-stable-stringify": "^1.0.1", + "promise-to-callback": "^1.0.0", + "readable-stream": "^2.2.9", + "request": "^2.85.0", + "semaphore": "^1.0.3", + "ws": "^5.1.1", + "xhr": "^2.2.0", + "xtend": "^4.0.1" }, "dependencies": { - "fs-extra": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.3.tgz", - "integrity": "sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg==", - "dev": true, - "optional": true, + "abstract-leveldown": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-2.6.3.tgz", + "integrity": "sha512-2++wDf/DYqkPR3o5tbfdhF96EfMApo1GpPfzOsR/ZYXdkSmELlvOOEAl9iKkRsktMPHdGjO4rtkBpf2I7TiTeA==", "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" + "xtend": "~4.0.0" } }, - "get-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", - "dev": true, - "optional": true + "deferred-leveldown": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/deferred-leveldown/-/deferred-leveldown-1.2.2.tgz", + "integrity": "sha512-uukrWD2bguRtXilKt6cAWKyoXrTSMo5m7crUdLfWQmu8kIm88w3QZoUL+6nhpfKVmhHANER6Re3sKoNoZ3IKMA==", + "requires": { + "abstract-leveldown": "~2.6.0" + } }, - "got": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/got/-/got-7.1.0.tgz", - "integrity": "sha512-Y5WMo7xKKq1muPsxD+KmrR8DH5auG7fBdDVueZwETwV6VytKyU9OX/ddpq2/1hp1vIPvVb4T81dKQz3BivkNLw==", - "dev": true, - "optional": true, + "eth-sig-util": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/eth-sig-util/-/eth-sig-util-1.4.2.tgz", + "integrity": "sha1-jZWCAsftuq6Dlwf7pvCf8ydgYhA=", "requires": { - "decompress-response": "^3.2.0", - "duplexer3": "^0.1.4", - "get-stream": "^3.0.0", - "is-plain-obj": "^1.1.0", - "is-retry-allowed": "^1.0.0", - "is-stream": "^1.0.0", - "isurl": "^1.0.0-alpha5", - "lowercase-keys": "^1.0.0", - "p-cancelable": "^0.3.0", - "p-timeout": "^1.1.1", - "safe-buffer": "^5.0.1", - "timed-out": "^4.0.0", - "url-parse-lax": "^1.0.0", - "url-to-options": "^1.0.1" + "ethereumjs-abi": "git+https://github.com/ethereumjs/ethereumjs-abi.git", + "ethereumjs-util": "^5.1.1" } }, - "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", - "dev": true, - "optional": true + "ethereumjs-abi": { + "version": "git+https://github.com/ethereumjs/ethereumjs-abi.git#ee3994657fa7a427238e6ba92a84d0b529bbcde0", + "from": "git+https://github.com/ethereumjs/ethereumjs-abi.git", + "requires": { + "bn.js": "^4.11.8", + "ethereumjs-util": "^6.0.0" + }, + "dependencies": { + "ethereumjs-util": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz", + "integrity": "sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==", + "requires": { + "@types/bn.js": "^4.11.3", + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "0.1.6", + "rlp": "^2.2.3" + } + } + } }, - "p-cancelable": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.3.0.tgz", - "integrity": "sha512-RVbZPLso8+jFeq1MfNvgXtCRED2raz/dKpacfTNxsx6pLEpEomM7gah6VeHSYV3+vo0OAi4MkArtQcWWXuQoyw==", - "dev": true, - "optional": true + "ethereumjs-account": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/ethereumjs-account/-/ethereumjs-account-2.0.5.tgz", + "integrity": "sha512-bgDojnXGjhMwo6eXQC0bY6UK2liSFUSMwwylOmQvZbSl/D7NXQ3+vrGO46ZeOgjGfxXmgIeVNDIiHw7fNZM4VA==", + "requires": { + "ethereumjs-util": "^5.0.0", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1" + } }, - "prepend-http": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", - "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=", - "dev": true, - "optional": true + "ethereumjs-block": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/ethereumjs-block/-/ethereumjs-block-1.7.1.tgz", + "integrity": "sha512-B+sSdtqm78fmKkBq78/QLKJbu/4Ts4P2KFISdgcuZUPDm9x+N7qgBPIIFUGbaakQh8bzuquiRVbdmvPKqbILRg==", + "requires": { + "async": "^2.0.1", + "ethereum-common": "0.2.0", + "ethereumjs-tx": "^1.2.2", + "ethereumjs-util": "^5.0.0", + "merkle-patricia-tree": "^2.1.2" + }, + "dependencies": { + "ethereum-common": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/ethereum-common/-/ethereum-common-0.2.0.tgz", + "integrity": "sha512-XOnAR/3rntJgbCdGhqdaLIxDLWKLmsZOGhHdBKadEr6gEnJLH52k93Ou+TUdFaPN3hJc3isBZBal3U/XZ15abA==" + } + } + }, + "ethereumjs-tx": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-1.3.7.tgz", + "integrity": "sha512-wvLMxzt1RPhAQ9Yi3/HKZTn0FZYpnsmQdbKYfUUpi4j1SEIcbkd9tndVjcPrufY3V7j2IebOpC00Zp2P/Ay2kA==", + "requires": { + "ethereum-common": "^0.0.18", + "ethereumjs-util": "^5.0.0" + } + }, + "ethereumjs-util": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", + "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", + "requires": { + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "^0.1.3", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1" + } + }, + "ethereumjs-vm": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/ethereumjs-vm/-/ethereumjs-vm-2.6.0.tgz", + "integrity": "sha512-r/XIUik/ynGbxS3y+mvGnbOKnuLo40V5Mj1J25+HEO63aWYREIqvWeRO/hnROlMBE5WoniQmPmhiaN0ctiHaXw==", + "requires": { + "async": "^2.1.2", + "async-eventemitter": "^0.2.2", + "ethereumjs-account": "^2.0.3", + "ethereumjs-block": "~2.2.0", + "ethereumjs-common": "^1.1.0", + "ethereumjs-util": "^6.0.0", + "fake-merkle-patricia-tree": "^1.0.1", + "functional-red-black-tree": "^1.0.1", + "merkle-patricia-tree": "^2.3.2", + "rustbn.js": "~0.2.0", + "safe-buffer": "^5.1.1" + }, + "dependencies": { + "ethereumjs-block": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/ethereumjs-block/-/ethereumjs-block-2.2.2.tgz", + "integrity": "sha512-2p49ifhek3h2zeg/+da6XpdFR3GlqY3BIEiqxGF8j9aSRIgkb7M1Ky+yULBKJOu8PAZxfhsYA+HxUk2aCQp3vg==", + "requires": { + "async": "^2.0.1", + "ethereumjs-common": "^1.5.0", + "ethereumjs-tx": "^2.1.1", + "ethereumjs-util": "^5.0.0", + "merkle-patricia-tree": "^2.1.2" + }, + "dependencies": { + "ethereumjs-util": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", + "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", + "requires": { + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "^0.1.3", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1" + } + } + } + }, + "ethereumjs-tx": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-2.1.2.tgz", + "integrity": "sha512-zZEK1onCeiORb0wyCXUvg94Ve5It/K6GD1K+26KfFKodiBiS6d9lfCXlUKGBBdQ+bv7Day+JK0tj1K+BeNFRAw==", + "requires": { + "ethereumjs-common": "^1.5.0", + "ethereumjs-util": "^6.0.0" + } + }, + "ethereumjs-util": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz", + "integrity": "sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==", + "requires": { + "@types/bn.js": "^4.11.3", + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "0.1.6", + "rlp": "^2.2.3" + } + } + } + }, + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" }, - "url-parse-lax": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", - "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", - "dev": true, - "optional": true, + "level-codec": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/level-codec/-/level-codec-7.0.1.tgz", + "integrity": "sha512-Ua/R9B9r3RasXdRmOtd+t9TCOEIIlts+TN/7XTT2unhDaL6sJn83S3rUyljbr6lVtw49N3/yA0HHjpV6Kzb2aQ==" + }, + "level-errors": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/level-errors/-/level-errors-1.0.5.tgz", + "integrity": "sha512-/cLUpQduF6bNrWuAC4pwtUKA5t669pCsCi2XbmojG2tFeOr9j6ShtdDCtFFQO1DRt+EVZhx9gPzP9G2bUaG4ig==", "requires": { - "prepend-http": "^1.0.1" + "errno": "~0.1.1" } - } - } - }, - "tape": { - "version": "4.13.3", - "resolved": "https://registry.npmjs.org/tape/-/tape-4.13.3.tgz", - "integrity": "sha512-0/Y20PwRIUkQcTCSi4AASs+OANZZwqPKaipGCEwp10dQMipVvSZwUUCi01Y/OklIGyHKFhIcjock+DKnBfLAFw==", - "dev": true, - "requires": { - "deep-equal": "~1.1.1", - "defined": "~1.0.0", - "dotignore": "~0.1.2", - "for-each": "~0.3.3", - "function-bind": "~1.1.1", - "glob": "~7.1.6", - "has": "~1.0.3", - "inherits": "~2.0.4", - "is-regex": "~1.0.5", - "minimist": "~1.2.5", - "object-inspect": "~1.7.0", - "resolve": "~1.17.0", - "resumer": "~0.0.0", - "string.prototype.trim": "~1.2.1", - "through": "~2.3.8" - }, - "dependencies": { - "glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "dev": true, + }, + "level-iterator-stream": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/level-iterator-stream/-/level-iterator-stream-1.3.1.tgz", + "integrity": "sha1-5Dt4sagUPm+pek9IXrjqUwNS8u0=", "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "inherits": "^2.0.1", + "level-errors": "^1.0.3", + "readable-stream": "^1.0.33", + "xtend": "^4.0.0" + }, + "dependencies": { + "readable-stream": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + } } }, - "is-regex": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz", - "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==", - "dev": true, + "level-ws": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/level-ws/-/level-ws-0.0.0.tgz", + "integrity": "sha1-Ny5RIXeSSgBCSwtDrvK7QkltIos=", "requires": { - "has": "^1.0.3" + "readable-stream": "~1.0.15", + "xtend": "~2.1.1" + }, + "dependencies": { + "readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "xtend": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.1.2.tgz", + "integrity": "sha1-bv7MKk2tjmlixJAbM3znuoe10os=", + "requires": { + "object-keys": "~0.4.0" + } + } } }, - "object-inspect": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz", - "integrity": "sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==", - "dev": true - }, - "resolve": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz", - "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==", - "dev": true, + "levelup": { + "version": "1.3.9", + "resolved": "https://registry.npmjs.org/levelup/-/levelup-1.3.9.tgz", + "integrity": "sha512-VVGHfKIlmw8w1XqpGOAGwq6sZm2WwWLmlDcULkKWQXEA5EopA8OBNJ2Ck2v6bdk8HeEZSbCSEgzXadyQFm76sQ==", "requires": { - "path-parse": "^1.0.6" + "deferred-leveldown": "~1.2.1", + "level-codec": "~7.0.0", + "level-errors": "~1.0.3", + "level-iterator-stream": "~1.3.0", + "prr": "~1.0.1", + "semver": "~5.4.1", + "xtend": "~4.0.0" } - } - } - }, - "tar": { - "version": "4.4.13", - "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.13.tgz", - "integrity": "sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA==", - "dev": true, - "optional": true, - "requires": { - "chownr": "^1.1.1", - "fs-minipass": "^1.2.5", - "minipass": "^2.8.6", - "minizlib": "^1.2.1", - "mkdirp": "^0.5.0", - "safe-buffer": "^5.1.2", - "yallist": "^3.0.3" - }, - "dependencies": { - "fs-minipass": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz", - "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==", - "dev": true, - "optional": true, + }, + "ltgt": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ltgt/-/ltgt-2.2.1.tgz", + "integrity": "sha1-81ypHEk/e3PaDgdJUwTxezH4fuU=" + }, + "memdown": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/memdown/-/memdown-1.4.1.tgz", + "integrity": "sha1-tOThkhdGZP+65BNhqlAPMRnv4hU=", "requires": { - "minipass": "^2.6.0" + "abstract-leveldown": "~2.7.1", + "functional-red-black-tree": "^1.0.1", + "immediate": "^3.2.3", + "inherits": "~2.0.1", + "ltgt": "~2.2.0", + "safe-buffer": "~5.1.1" + }, + "dependencies": { + "abstract-leveldown": { + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-2.7.2.tgz", + "integrity": "sha512-+OVvxH2rHVEhWLdbudP6p0+dNMXu8JA1CbhP19T8paTYAcX7oJ4OVjT+ZUVpv7mITxXHqDMej+GdqXBmXkw09w==", + "requires": { + "xtend": "~4.0.0" + } + } } }, - "minipass": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz", - "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==", - "dev": true, - "optional": true, + "merkle-patricia-tree": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/merkle-patricia-tree/-/merkle-patricia-tree-2.3.2.tgz", + "integrity": "sha512-81PW5m8oz/pz3GvsAwbauj7Y00rqm81Tzad77tHBwU7pIAtN+TJnMSOJhxBKflSVYhptMMb9RskhqHqrSm1V+g==", "requires": { - "safe-buffer": "^5.1.2", - "yallist": "^3.0.0" - } - } - } - }, - "through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", - "dev": true - }, - "through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dev": true, - "requires": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - }, - "timed-out": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", - "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=", - "dev": true, - "optional": true - }, - "tmp": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.1.0.tgz", - "integrity": "sha512-J7Z2K08jbGcdA1kkQpJSqLF6T0tdQqpR2pnSUXsIchbPdTI9v3e85cLW0d6WDhwuAleOV71j2xWs8qMPfK7nKw==", - "dev": true, - "requires": { - "rimraf": "^2.6.3" - } - }, - "to-object-path": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", - "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true + "async": "^1.4.2", + "ethereumjs-util": "^5.0.0", + "level-ws": "0.0.0", + "levelup": "^1.2.1", + "memdown": "^1.0.0", + "readable-stream": "^2.0.0", + "rlp": "^2.0.0", + "semaphore": ">=1.0.1" + }, + "dependencies": { + "async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=" + } + } }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, + "object-keys": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-0.4.0.tgz", + "integrity": "sha1-KKaq50KN0sOpLz2V8hM13SBOAzY=" + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "semver": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz", + "integrity": "sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg==" + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" + }, + "ws": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/ws/-/ws-5.2.2.tgz", + "integrity": "sha512-jaHFD6PFv6UgoIVda6qZllptQsMlDEJkTQcybzzXDYM1XO9Y8em691FGMPmM46WGyLU4z9KMgQN+qrux/nhlHA==", "requires": { - "is-buffer": "^1.1.5" + "async-limiter": "~1.0.0" } } } }, - "to-readable-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", - "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", - "dev": true, - "optional": true - }, - "to-regex": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", - "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", - "dev": true, - "requires": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" - } - }, - "toidentifier": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", - "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==", - "dev": true, - "optional": true - }, - "tough-cookie": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", - "dev": true, + "web3-providers-http": { + "version": "1.2.11", + "resolved": "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.2.11.tgz", + "integrity": "sha512-psh4hYGb1+ijWywfwpB2cvvOIMISlR44F/rJtYkRmQ5jMvG4FOCPlQJPiHQZo+2cc3HbktvvSJzIhkWQJdmvrA==", + "optional": true, "requires": { - "psl": "^1.1.28", - "punycode": "^2.1.1" + "web3-core-helpers": "1.2.11", + "xhr2-cookies": "1.1.0" } }, - "trim-right": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", - "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", - "dev": true - }, - "tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "dev": true, + "web3-providers-ipc": { + "version": "1.2.11", + "resolved": "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.2.11.tgz", + "integrity": "sha512-yhc7Y/k8hBV/KlELxynWjJDzmgDEDjIjBzXK+e0rHBsYEhdCNdIH5Psa456c+l0qTEU2YzycF8VAjYpWfPnBpQ==", + "optional": true, "requires": { - "safe-buffer": "^5.0.1" + "oboe": "2.1.4", + "underscore": "1.9.1", + "web3-core-helpers": "1.2.11" } }, - "tweetnacl": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz", - "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==", - "dev": true - }, - "tweetnacl-util": { - "version": "0.15.1", - "resolved": "https://registry.npmjs.org/tweetnacl-util/-/tweetnacl-util-0.15.1.tgz", - "integrity": "sha512-RKJBIj8lySrShN4w6i/BonWp2Z/uxwC3h4y7xsRrpP59ZboCd0GpEVsOnMDYLMmKBpYhb5TgHzZXy7wTfYFBRw==", - "dev": true - }, - "type": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", - "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==", - "dev": true - }, - "type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "dev": true, + "web3-providers-ws": { + "version": "1.2.11", + "resolved": "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.2.11.tgz", + "integrity": "sha512-ZxnjIY1Er8Ty+cE4migzr43zA/+72AF1myzsLaU5eVgdsfV7Jqx7Dix1hbevNZDKFlSoEyq/3j/jYalh3So1Zg==", "optional": true, "requires": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" + "eventemitter3": "4.0.4", + "underscore": "1.9.1", + "web3-core-helpers": "1.2.11", + "websocket": "^1.0.31" } }, - "typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", - "dev": true - }, - "typedarray-to-buffer": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", - "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", - "dev": true, + "web3-shh": { + "version": "1.2.11", + "resolved": "https://registry.npmjs.org/web3-shh/-/web3-shh-1.2.11.tgz", + "integrity": "sha512-B3OrO3oG1L+bv3E1sTwCx66injW1A8hhwpknDUbV+sw3fehFazA06z9SGXUefuFI1kVs4q2vRi0n4oCcI4dZDg==", + "optional": true, "requires": { - "is-typedarray": "^1.0.0" + "web3-core": "1.2.11", + "web3-core-method": "1.2.11", + "web3-core-subscriptions": "1.2.11", + "web3-net": "1.2.11" } }, - "typewise": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/typewise/-/typewise-1.0.3.tgz", - "integrity": "sha1-EGeTZUCvl5N8xdz5kiSG6fooRlE=", - "dev": true, + "web3-utils": { + "version": "1.2.11", + "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.2.11.tgz", + "integrity": "sha512-3Tq09izhD+ThqHEaWYX4VOT7dNPdZiO+c/1QMA0s5X2lDFKK/xHJb7cyTRRVzN2LvlHbR7baS1tmQhSua51TcQ==", + "optional": true, "requires": { - "typewise-core": "^1.2.0" + "bn.js": "^4.11.9", + "eth-lib": "0.2.8", + "ethereum-bloom-filters": "^1.0.6", + "ethjs-unit": "0.1.6", + "number-to-bn": "1.7.0", + "randombytes": "^2.1.0", + "underscore": "1.9.1", + "utf8": "3.0.0" + }, + "dependencies": { + "eth-lib": { + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz", + "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==", + "optional": true, + "requires": { + "bn.js": "^4.11.6", + "elliptic": "^6.4.0", + "xhr-request-promise": "^0.1.2" + } + } } }, - "typewise-core": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/typewise-core/-/typewise-core-1.2.0.tgz", - "integrity": "sha1-l+uRgFx/VdL5QXSPpQ0xXZke8ZU=", - "dev": true - }, - "typewiselite": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/typewiselite/-/typewiselite-1.0.0.tgz", - "integrity": "sha1-yIgvobsQksBgBal/NO9chQjjZk4=", - "dev": true - }, - "ultron": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz", - "integrity": "sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==", - "dev": true, - "optional": true - }, - "underscore": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.9.1.tgz", - "integrity": "sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg==", - "dev": true, - "optional": true - }, - "union-value": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", - "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", - "dev": true, + "websocket": { + "version": "1.0.32", + "resolved": "https://registry.npmjs.org/websocket/-/websocket-1.0.32.tgz", + "integrity": "sha512-i4yhcllSP4wrpoPMU2N0TQ/q0O94LRG/eUQjEAamRltjQ1oT1PFFKOG4i877OlJgCG8rw6LrrowJp+TYCEWF7Q==", "requires": { - "arr-union": "^3.1.0", - "get-value": "^2.0.6", - "is-extendable": "^0.1.1", - "set-value": "^2.0.1" + "bufferutil": "^4.0.1", + "debug": "^2.2.0", + "es5-ext": "^0.10.50", + "typedarray-to-buffer": "^3.1.5", + "utf-8-validate": "^5.0.2", + "yaeti": "^0.0.6" }, "dependencies": { - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" } } }, - "universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "dev": true - }, - "unorm": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/unorm/-/unorm-1.6.0.tgz", - "integrity": "sha512-b2/KCUlYZUeA7JFUuRJZPUtr4gZvBh7tavtv4fvk4+KV9pfGiR6CQAQAWl49ZpR3ts2dk4FYkP7EIgDJoiOLDA==", - "dev": true + "whatwg-fetch": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-2.0.4.tgz", + "integrity": "sha512-dcQ1GWpOD/eEQ97k66aiEVpNnapVj90/+R+SXTPYGHpYBBypfKJEQjLrvMZ7YXbKm21gXd4NcuxUTjiv1YtLng==" }, - "unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", - "dev": true, - "optional": true + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, - "unset-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", - "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", - "dev": true, + "ws": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz", + "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==", + "optional": true, "requires": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" + "async-limiter": "~1.0.0", + "safe-buffer": "~5.1.0", + "ultron": "~1.1.0" }, "dependencies": { - "has-value": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", - "dev": true, - "requires": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" - }, - "dependencies": { - "isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "dev": true, - "requires": { - "isarray": "1.0.0" - } - } - } - }, - "has-values": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", - "dev": true + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "optional": true } } }, - "uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, + "xhr": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/xhr/-/xhr-2.6.0.tgz", + "integrity": "sha512-/eCGLb5rxjx5e3mF1A7s+pLlR6CGyqWN91fv1JgER5mVWg1MZmlhBvy9kjcsOdRk8RrIujotWyJamfyrp+WIcA==", "requires": { - "punycode": "^2.1.0" + "global": "~4.4.0", + "is-function": "^1.0.1", + "parse-headers": "^2.0.0", + "xtend": "^4.0.0" } }, - "urix": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", - "dev": true + "xhr-request": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/xhr-request/-/xhr-request-1.1.0.tgz", + "integrity": "sha512-Y7qzEaR3FDtL3fP30k9wO/e+FBnBByZeybKOhASsGP30NIkRAAkKD/sCnLvgEfAIEC1rcmK7YG8f4oEnIrrWzA==", + "optional": true, + "requires": { + "buffer-to-arraybuffer": "^0.0.5", + "object-assign": "^4.1.1", + "query-string": "^5.0.1", + "simple-get": "^2.7.0", + "timed-out": "^4.0.1", + "url-set-query": "^1.0.0", + "xhr": "^2.0.4" + } }, - "url-parse-lax": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", - "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", - "dev": true, + "xhr-request-promise": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/xhr-request-promise/-/xhr-request-promise-0.1.3.tgz", + "integrity": "sha512-YUBytBsuwgitWtdRzXDDkWAXzhdGB8bYm0sSzMPZT7Z2MBjMSTHFsyCT1yCRATY+XC69DUrQraRAEgcoCRaIPg==", "optional": true, "requires": { - "prepend-http": "^2.0.0" + "xhr-request": "^1.1.0" } }, - "url-set-query": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/url-set-query/-/url-set-query-1.0.0.tgz", - "integrity": "sha1-AW6M/Xwg7gXK/neV6JK9BwL6ozk=", - "dev": true, - "optional": true + "xhr2-cookies": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/xhr2-cookies/-/xhr2-cookies-1.1.0.tgz", + "integrity": "sha1-fXdEnQmZGX8VXLc7I99yUF7YnUg=", + "optional": true, + "requires": { + "cookiejar": "^2.1.1" + } }, - "url-to-options": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/url-to-options/-/url-to-options-1.0.1.tgz", - "integrity": "sha1-FQWgOiiaSMvXpDTvuu7FBV9WM6k=", - "dev": true, - "optional": true + "xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" }, - "use": { + "yaeti": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/yaeti/-/yaeti-0.0.6.tgz", + "integrity": "sha1-8m9ITXJoTPQr7ft2lwqhYI+/lXc=" + }, + "yallist": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", - "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" + } + } + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true + }, + "get-func-name": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", + "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=", + "dev": true + }, + "get-intrinsic": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + } + }, + "get-proxy": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/get-proxy/-/get-proxy-2.1.0.tgz", + "integrity": "sha512-zmZIaQTWnNQb4R4fJUEp/FC51eZsc6EkErspy3xtIYStaq8EB/hDIWipxsal+E8rz0qD7f2sL/NA9Xee4RInJw==", + "dev": true, + "requires": { + "npm-conf": "^1.1.0" + } + }, + "get-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", + "dev": true + }, + "get-uri": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/get-uri/-/get-uri-2.0.4.tgz", + "integrity": "sha512-v7LT/s8kVjs+Tx0ykk1I+H/rbpzkHvuIq87LmeXptcf5sNWm9uQiwjNAt94SJPA1zOlCntmnOlJvVWKmzsxG8Q==", + "dev": true, + "requires": { + "data-uri-to-buffer": "1", + "debug": "2", + "extend": "~3.0.2", + "file-uri-to-path": "1", + "ftp": "~0.3.10", + "readable-stream": "2" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + } + } + }, + "get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", + "dev": true + }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "requires": { + "assert-plus": "^1.0.0" + } + }, + "ghost-testrpc": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/ghost-testrpc/-/ghost-testrpc-0.0.2.tgz", + "integrity": "sha512-i08dAEgJ2g8z5buJIrCTduwPIhih3DP+hOCTyyryikfV8T0bNvHnGXO67i0DD1H4GBDETTclPy9njZbfluQYrQ==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "node-emoji": "^1.10.0" + }, + "dependencies": { + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + } + } + }, + "glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-parent": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", + "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + }, + "global": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/global/-/global-4.3.2.tgz", + "integrity": "sha1-52mJJopsdMOJCLEwWxD8DjlOnQ8=", + "requires": { + "min-document": "^2.19.0", + "process": "~0.5.1" + } + }, + "global-dirs": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-2.0.1.tgz", + "integrity": "sha512-5HqUqdhkEovj2Of/ms3IeS/EekcO54ytHRLV4PEY2rhRwrHXLQjeVEES0Lhka0xwNDtGYn58wyC4s5+MHsOO6A==", + "dev": true, + "requires": { + "ini": "^1.3.5" + } + }, + "global-modules": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", + "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", + "dev": true, + "requires": { + "global-prefix": "^3.0.0" + } + }, + "global-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", + "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", + "dev": true, + "requires": { + "ini": "^1.3.5", + "kind-of": "^6.0.2", + "which": "^1.3.1" + } + }, + "globals": { + "version": "12.4.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz", + "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==", + "dev": true, + "requires": { + "type-fest": "^0.8.1" + } + }, + "globby": { + "version": "10.0.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-10.0.2.tgz", + "integrity": "sha512-7dUi7RvCoT/xast/o/dLN53oqND4yk0nsHkhRgn9w65C4PofCLOoJ39iSOg+qVDdWQPIEj+eszMHQ+aLVwwQSg==", + "dev": true, + "requires": { + "@types/glob": "^7.1.1", + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.0.3", + "glob": "^7.1.3", + "ignore": "^5.1.1", + "merge2": "^1.2.3", + "slash": "^3.0.0" + }, + "dependencies": { + "ignore": { + "version": "5.1.8", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", + "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==", "dev": true - }, - "utf-8-validate": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.4.tgz", - "integrity": "sha512-MEF05cPSq3AwJ2C7B7sHAA6i53vONoZbMGX8My5auEVm6W+dJ2Jd/TZPyGJ5CH42V2XtbI5FD28HeHeqlPzZ3Q==", + } + } + }, + "got": { + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", + "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", + "dev": true, + "requires": { + "@sindresorhus/is": "^0.14.0", + "@szmarczak/http-timer": "^1.1.2", + "cacheable-request": "^6.0.0", + "decompress-response": "^3.3.0", + "duplexer3": "^0.1.4", + "get-stream": "^4.1.0", + "lowercase-keys": "^1.0.1", + "mimic-response": "^1.0.1", + "p-cancelable": "^1.0.0", + "to-readable-stream": "^1.0.0", + "url-parse-lax": "^3.0.0" + }, + "dependencies": { + "get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", "dev": true, "requires": { - "node-gyp-build": "^4.2.0" + "pump": "^3.0.0" } - }, - "utf8": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/utf8/-/utf8-3.0.0.tgz", - "integrity": "sha512-E8VjFIQ/TyQgp+TZfS6l8yp/xWppSAHzidGiRrqe4bK4XP9pTRyKFgGJpO3SN7zdX4DeomTrwaseCHovfpFcqQ==", - "dev": true, - "optional": true - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + } + } + }, + "graceful-fs": { + "version": "4.1.15", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz", + "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==" + }, + "graceful-readlink": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz", + "integrity": "sha1-TK+tdrxi8C+gObL5Tpo906ORpyU=", + "dev": true + }, + "grapheme-splitter": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", + "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", + "dev": true + }, + "growl": { + "version": "1.10.5", + "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", + "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", + "dev": true + }, + "gunzip-maybe": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/gunzip-maybe/-/gunzip-maybe-1.4.2.tgz", + "integrity": "sha512-4haO1M4mLO91PW57BMsDFf75UmwoRX0GkdD+Faw+Lr+r/OZrOCS0pIBwOL1xCKQqnQzbNFGgK2V2CpBUPeFNTw==", + "dev": true, + "requires": { + "browserify-zlib": "^0.1.4", + "is-deflate": "^1.0.0", + "is-gzip": "^1.0.0", + "peek-stream": "^1.1.0", + "pumpify": "^1.3.3", + "through2": "^2.0.3" + } + }, + "handlebars": { + "version": "4.7.6", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.6.tgz", + "integrity": "sha512-1f2BACcBfiwAfStCKZNrUCgqNZkGsAT7UM3kkYtXuLo0KnaVfjKOyf7PRzB6++aK9STyT1Pd2ZCPe3EGOXleXA==", + "dev": true, + "requires": { + "minimist": "^1.2.5", + "neo-async": "^2.6.0", + "source-map": "^0.6.1", + "uglify-js": "^3.1.4", + "wordwrap": "^1.0.0" + }, + "dependencies": { + "minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", "dev": true - }, - "util.promisify": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.1.1.tgz", - "integrity": "sha512-/s3UsZUrIfa6xDhr7zZhnE9SLQ5RIXyYfiVnMMyMDzOc8WhWN4Nbh36H842OyurKbCDAesZOJaVyvmSl6fhGQw==", + } + } + }, + "har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" + }, + "har-validator": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz", + "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==", + "requires": { + "ajv": "^6.5.5", + "har-schema": "^2.0.0" + } + }, + "hardhat": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/hardhat/-/hardhat-2.4.1.tgz", + "integrity": "sha512-vwllrFypukeE/Q+4ZfWj7j7nUo4ncUhRpsAYUM0Ruuuk6pQlKmRa0A6c0kxRSvvVgQsMud6j+/weYhbMX1wPmQ==", + "dev": true, + "requires": { + "@ethereumjs/block": "^3.3.0", + "@ethereumjs/blockchain": "^5.3.0", + "@ethereumjs/common": "^2.3.1", + "@ethereumjs/tx": "^3.2.1", + "@ethereumjs/vm": "^5.3.2", + "@ethersproject/abi": "^5.1.2", + "@sentry/node": "^5.18.1", + "@solidity-parser/parser": "^0.11.0", + "@types/bn.js": "^5.1.0", + "@types/lru-cache": "^5.1.0", + "abort-controller": "^3.0.0", + "adm-zip": "^0.4.16", + "ansi-escapes": "^4.3.0", + "chalk": "^2.4.2", + "chokidar": "^3.4.0", + "ci-info": "^2.0.0", + "debug": "^4.1.1", + "enquirer": "^2.3.0", + "env-paths": "^2.2.0", + "eth-sig-util": "^2.5.2", + "ethereum-cryptography": "^0.1.2", + "ethereumjs-abi": "^0.6.8", + "ethereumjs-util": "^7.0.10", + "find-up": "^2.1.0", + "fp-ts": "1.19.3", + "fs-extra": "^7.0.1", + "glob": "^7.1.3", + "https-proxy-agent": "^5.0.0", + "immutable": "^4.0.0-rc.12", + "io-ts": "1.10.4", + "lodash": "^4.17.11", + "merkle-patricia-tree": "^4.2.0", + "mnemonist": "^0.38.0", + "mocha": "^7.1.2", + "node-fetch": "^2.6.0", + "qs": "^6.7.0", + "raw-body": "^2.4.1", + "resolve": "1.17.0", + "semver": "^6.3.0", + "slash": "^3.0.0", + "solc": "0.7.3", + "source-map-support": "^0.5.13", + "stacktrace-parser": "^0.1.10", + "true-case-path": "^2.2.1", + "tsort": "0.0.1", + "uuid": "^3.3.2", + "ws": "^7.4.6" + }, + "dependencies": { + "@ethersproject/abi": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.3.1.tgz", + "integrity": "sha512-F98FWTJG7nWWAQ4DcV6R0cSlrj67MWK3ylahuFbzkumem5cLWg1p7fZ3vIdRoS1c7TEf55Lvyx0w7ICR47IImw==", "dev": true, "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "for-each": "^0.3.3", - "has-symbols": "^1.0.1", - "object.getownpropertydescriptors": "^2.1.1" + "@ethersproject/address": "^5.3.0", + "@ethersproject/bignumber": "^5.3.0", + "@ethersproject/bytes": "^5.3.0", + "@ethersproject/constants": "^5.3.0", + "@ethersproject/hash": "^5.3.0", + "@ethersproject/keccak256": "^5.3.0", + "@ethersproject/logger": "^5.3.0", + "@ethersproject/properties": "^5.3.0", + "@ethersproject/strings": "^5.3.0" } }, - "utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", - "dev": true, - "optional": true - }, - "uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "dev": true - }, - "varint": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/varint/-/varint-5.0.2.tgz", - "integrity": "sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow==", - "dev": true, - "optional": true - }, - "vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", - "dev": true, - "optional": true - }, - "verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "@ethersproject/address": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.3.0.tgz", + "integrity": "sha512-29TgjzEBK+gUEUAOfWCG7s9IxLNLCqvr+oDSk6L9TXD0VLvZJKhJV479tKQqheVA81OeGxfpdxYtUVH8hqlCvA==", "dev": true, "requires": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" + "@ethersproject/bignumber": "^5.3.0", + "@ethersproject/bytes": "^5.3.0", + "@ethersproject/keccak256": "^5.3.0", + "@ethersproject/logger": "^5.3.0", + "@ethersproject/rlp": "^5.3.0" } }, - "web3": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/web3/-/web3-1.2.11.tgz", - "integrity": "sha512-mjQ8HeU41G6hgOYm1pmeH0mRAeNKJGnJEUzDMoerkpw7QUQT4exVREgF1MYPvL/z6vAshOXei25LE/t/Bxl8yQ==", + "@ethersproject/bignumber": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.3.0.tgz", + "integrity": "sha512-5xguJ+Q1/zRMgHgDCaqAexx/8DwDVLRemw2i6uR8KyGjwGdXI8f32QZZ1cKGucBN6ekJvpUpHy6XAuQnTv0mPA==", "dev": true, - "optional": true, "requires": { - "web3-bzz": "1.2.11", - "web3-core": "1.2.11", - "web3-eth": "1.2.11", - "web3-eth-personal": "1.2.11", - "web3-net": "1.2.11", - "web3-shh": "1.2.11", - "web3-utils": "1.2.11" + "@ethersproject/bytes": "^5.3.0", + "@ethersproject/logger": "^5.3.0", + "bn.js": "^4.11.9" } }, - "web3-bzz": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/web3-bzz/-/web3-bzz-1.2.11.tgz", - "integrity": "sha512-XGpWUEElGypBjeFyUhTkiPXFbDVD6Nr/S5jznE3t8cWUA0FxRf1n3n/NuIZeb0H9RkN2Ctd/jNma/k8XGa3YKg==", + "@ethersproject/bytes": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.3.0.tgz", + "integrity": "sha512-rqLJjdVqCcn7glPer7Fxh87PRqlnRScVAoxcIP3PmOUNApMWJ6yRdOFfo2KvPAdO7Le3yEI1o0YW+Yvr7XCYvw==", "dev": true, - "optional": true, "requires": { - "@types/node": "^12.12.6", - "got": "9.6.0", - "swarm-js": "^0.1.40", - "underscore": "1.9.1" - }, - "dependencies": { - "@types/node": { - "version": "12.19.12", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.19.12.tgz", - "integrity": "sha512-UwfL2uIU9arX/+/PRcIkT08/iBadGN2z6ExOROA2Dh5mAuWTBj6iJbQX4nekiV5H8cTrEG569LeX+HRco9Cbxw==", - "dev": true, - "optional": true - } - } - }, - "web3-core": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-1.2.11.tgz", - "integrity": "sha512-CN7MEYOY5ryo5iVleIWRE3a3cZqVaLlIbIzDPsvQRUfzYnvzZQRZBm9Mq+ttDi2STOOzc1MKylspz/o3yq/LjQ==", + "@ethersproject/logger": "^5.3.0" + } + }, + "@ethersproject/constants": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.3.0.tgz", + "integrity": "sha512-4y1feNOwEpgjAfiCFWOHznvv6qUF/H6uI0UKp8xdhftb+H+FbKflXg1pOgH5qs4Sr7EYBL+zPyPb+YD5g1aEyw==", "dev": true, - "optional": true, "requires": { - "@types/bn.js": "^4.11.5", - "@types/node": "^12.12.6", - "bignumber.js": "^9.0.0", - "web3-core-helpers": "1.2.11", - "web3-core-method": "1.2.11", - "web3-core-requestmanager": "1.2.11", - "web3-utils": "1.2.11" - }, - "dependencies": { - "@types/node": { - "version": "12.19.12", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.19.12.tgz", - "integrity": "sha512-UwfL2uIU9arX/+/PRcIkT08/iBadGN2z6ExOROA2Dh5mAuWTBj6iJbQX4nekiV5H8cTrEG569LeX+HRco9Cbxw==", - "dev": true, - "optional": true - } + "@ethersproject/bignumber": "^5.3.0" } }, - "web3-core-helpers": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.2.11.tgz", - "integrity": "sha512-PEPoAoZd5ME7UfbnCZBdzIerpe74GEvlwT4AjOmHeCVZoIFk7EqvOZDejJHt+feJA6kMVTdd0xzRNN295UhC1A==", + "@ethersproject/hash": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.3.0.tgz", + "integrity": "sha512-gAFZSjUPQ32CIfoKSMtMEQ+IO0kQxqhwz9fCIFt2DtAq2u4pWt8mL9Z5P0r6KkLcQU8LE9FmuPPyd+JvBzmr1w==", "dev": true, - "optional": true, "requires": { - "underscore": "1.9.1", - "web3-eth-iban": "1.2.11", - "web3-utils": "1.2.11" + "@ethersproject/abstract-signer": "^5.3.0", + "@ethersproject/address": "^5.3.0", + "@ethersproject/bignumber": "^5.3.0", + "@ethersproject/bytes": "^5.3.0", + "@ethersproject/keccak256": "^5.3.0", + "@ethersproject/logger": "^5.3.0", + "@ethersproject/properties": "^5.3.0", + "@ethersproject/strings": "^5.3.0" } }, - "web3-core-method": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.2.11.tgz", - "integrity": "sha512-ff0q76Cde94HAxLDZ6DbdmKniYCQVtvuaYh+rtOUMB6kssa5FX0q3vPmixi7NPooFnbKmmZCM6NvXg4IreTPIw==", + "@ethersproject/keccak256": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.3.0.tgz", + "integrity": "sha512-Gv2YqgIUmRbYVNIibafT0qGaeGYLIA/EdWHJ7JcVxVSs2vyxafGxOJ5VpSBHWeOIsE6OOaCelYowhuuTicgdFQ==", "dev": true, - "optional": true, "requires": { - "@ethersproject/transactions": "^5.0.0-beta.135", - "underscore": "1.9.1", - "web3-core-helpers": "1.2.11", - "web3-core-promievent": "1.2.11", - "web3-core-subscriptions": "1.2.11", - "web3-utils": "1.2.11" + "@ethersproject/bytes": "^5.3.0", + "js-sha3": "0.5.7" } }, - "web3-core-promievent": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.2.11.tgz", - "integrity": "sha512-il4McoDa/Ox9Agh4kyfQ8Ak/9ABYpnF8poBLL33R/EnxLsJOGQG2nZhkJa3I067hocrPSjEdlPt/0bHXsln4qA==", + "@ethersproject/logger": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.3.0.tgz", + "integrity": "sha512-8bwJ2gxJGkZZnpQSq5uSiZSJjyVTWmlGft4oH8vxHdvO1Asy4TwVepAhPgxIQIMxXZFUNMych1YjIV4oQ4I7dA==", + "dev": true + }, + "@ethersproject/properties": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.3.0.tgz", + "integrity": "sha512-PaHxJyM5/bfusk6vr3yP//JMnm4UEojpzuWGTmtL5X4uNhNnFNvlYilZLyDr4I9cTkIbipCMsAuIcXWsmdRnEw==", "dev": true, - "optional": true, "requires": { - "eventemitter3": "4.0.4" + "@ethersproject/logger": "^5.3.0" } }, - "web3-core-requestmanager": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.2.11.tgz", - "integrity": "sha512-oFhBtLfOiIbmfl6T6gYjjj9igOvtyxJ+fjS+byRxiwFJyJ5BQOz4/9/17gWR1Cq74paTlI7vDGxYfuvfE/mKvA==", + "@ethersproject/rlp": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.3.0.tgz", + "integrity": "sha512-oI0joYpsRanl9guDubaW+1NbcpK0vJ3F/6Wpcanzcnqq+oaW9O5E98liwkEDPcb16BUTLIJ+ZF8GPIHYxJ/5Pw==", "dev": true, - "optional": true, "requires": { - "underscore": "1.9.1", - "web3-core-helpers": "1.2.11", - "web3-providers-http": "1.2.11", - "web3-providers-ipc": "1.2.11", - "web3-providers-ws": "1.2.11" + "@ethersproject/bytes": "^5.3.0", + "@ethersproject/logger": "^5.3.0" } }, - "web3-core-subscriptions": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.2.11.tgz", - "integrity": "sha512-qEF/OVqkCvQ7MPs1JylIZCZkin0aKK9lDxpAtQ1F8niEDGFqn7DT8E/vzbIa0GsOjL2fZjDhWJsaW+BSoAW1gg==", + "@ethersproject/strings": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.3.0.tgz", + "integrity": "sha512-j/AzIGZ503cvhuF2ldRSjB0BrKzpsBMtCieDtn4TYMMZMQ9zScJn9wLzTQl/bRNvJbBE6TOspK0r8/Ngae/f2Q==", "dev": true, - "optional": true, "requires": { - "eventemitter3": "4.0.4", - "underscore": "1.9.1", - "web3-core-helpers": "1.2.11" + "@ethersproject/bytes": "^5.3.0", + "@ethersproject/constants": "^5.3.0", + "@ethersproject/logger": "^5.3.0" } }, - "web3-eth": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/web3-eth/-/web3-eth-1.2.11.tgz", - "integrity": "sha512-REvxW1wJ58AgHPcXPJOL49d1K/dPmuw4LjPLBPStOVkQjzDTVmJEIsiLwn2YeuNDd4pfakBwT8L3bz1G1/wVsQ==", + "@solidity-parser/parser": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/@solidity-parser/parser/-/parser-0.11.1.tgz", + "integrity": "sha512-H8BSBoKE8EubJa0ONqecA2TviT3TnHeC4NpgnAHSUiuhZoQBfPB4L2P9bs8R6AoTW10Endvh3vc+fomVMIDIYQ==", + "dev": true + }, + "@types/bn.js": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.0.tgz", + "integrity": "sha512-QSSVYj7pYFN49kW77o2s9xTCwZ8F2xLbjLLSEVh8D2F4JUhZtPAGOFLTD+ffqksBx/u4cE/KImFjyhqCjn/LIA==", "dev": true, - "optional": true, "requires": { - "underscore": "1.9.1", - "web3-core": "1.2.11", - "web3-core-helpers": "1.2.11", - "web3-core-method": "1.2.11", - "web3-core-subscriptions": "1.2.11", - "web3-eth-abi": "1.2.11", - "web3-eth-accounts": "1.2.11", - "web3-eth-contract": "1.2.11", - "web3-eth-ens": "1.2.11", - "web3-eth-iban": "1.2.11", - "web3-eth-personal": "1.2.11", - "web3-net": "1.2.11", - "web3-utils": "1.2.11" + "@types/node": "*" } }, - "web3-eth-abi": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.2.11.tgz", - "integrity": "sha512-PkRYc0+MjuLSgg03QVWqWlQivJqRwKItKtEpRUaxUAeLE7i/uU39gmzm2keHGcQXo3POXAbOnMqkDvOep89Crg==", + "agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", "dev": true, - "optional": true, "requires": { - "@ethersproject/abi": "5.0.0-beta.153", - "underscore": "1.9.1", - "web3-utils": "1.2.11" + "debug": "4" } }, - "web3-eth-accounts": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.2.11.tgz", - "integrity": "sha512-6FwPqEpCfKIh3nSSGeo3uBm2iFSnFJDfwL3oS9pyegRBXNsGRVpgiW63yhNzL0796StsvjHWwQnQHsZNxWAkGw==", + "ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", "dev": true, - "optional": true, "requires": { - "crypto-browserify": "3.12.0", - "eth-lib": "0.2.8", - "ethereumjs-common": "^1.3.2", - "ethereumjs-tx": "^2.1.1", - "scrypt-js": "^3.0.1", - "underscore": "1.9.1", - "uuid": "3.3.2", - "web3-core": "1.2.11", - "web3-core-helpers": "1.2.11", - "web3-core-method": "1.2.11", - "web3-utils": "1.2.11" - }, - "dependencies": { - "eth-lib": { - "version": "0.2.8", - "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz", - "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==", - "dev": true, - "optional": true, - "requires": { - "bn.js": "^4.11.6", - "elliptic": "^6.4.0", - "xhr-request-promise": "^0.1.2" - } - }, - "uuid": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", - "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", - "dev": true, - "optional": true - } + "type-fest": "^0.21.3" } }, - "web3-eth-contract": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.2.11.tgz", - "integrity": "sha512-MzYuI/Rq2o6gn7vCGcnQgco63isPNK5lMAan2E51AJLknjSLnOxwNY3gM8BcKoy4Z+v5Dv00a03Xuk78JowFow==", + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, - "optional": true, "requires": { - "@types/bn.js": "^4.11.5", - "underscore": "1.9.1", - "web3-core": "1.2.11", - "web3-core-helpers": "1.2.11", - "web3-core-method": "1.2.11", - "web3-core-promievent": "1.2.11", - "web3-core-subscriptions": "1.2.11", - "web3-eth-abi": "1.2.11", - "web3-utils": "1.2.11" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" } }, - "web3-eth-ens": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/web3-eth-ens/-/web3-eth-ens-1.2.11.tgz", - "integrity": "sha512-dbW7dXP6HqT1EAPvnniZVnmw6TmQEKF6/1KgAxbo8iBBYrVTMDGFQUUnZ+C4VETGrwwaqtX4L9d/FrQhZ6SUiA==", + "cliui": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", + "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", "dev": true, - "optional": true, "requires": { - "content-hash": "^2.5.2", - "eth-ens-namehash": "2.0.8", - "underscore": "1.9.1", - "web3-core": "1.2.11", - "web3-core-helpers": "1.2.11", - "web3-core-promievent": "1.2.11", - "web3-eth-abi": "1.2.11", - "web3-eth-contract": "1.2.11", - "web3-utils": "1.2.11" + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" } }, - "web3-eth-iban": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.2.11.tgz", - "integrity": "sha512-ozuVlZ5jwFC2hJY4+fH9pIcuH1xP0HEFhtWsR69u9uDIANHLPQQtWYmdj7xQ3p2YT4bQLq/axKhZi7EZVetmxQ==", + "debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", "dev": true, - "optional": true, "requires": { - "bn.js": "^4.11.9", - "web3-utils": "1.2.11" + "ms": "2.1.2" } }, - "web3-eth-personal": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.2.11.tgz", - "integrity": "sha512-42IzUtKq9iHZ8K9VN0vAI50iSU9tOA1V7XU2BhF/tb7We2iKBVdkley2fg26TxlOcKNEHm7o6HRtiiFsVK4Ifw==", + "diff": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", + "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", + "dev": true + }, + "ethereumjs-util": { + "version": "7.0.10", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.0.10.tgz", + "integrity": "sha512-c/xThw6A+EAnej5Xk5kOzFzyoSnw0WX0tSlZ6pAsfGVvQj3TItaDg9b1+Fz1RJXA+y2YksKwQnuzgt1eY6LKzw==", "dev": true, - "optional": true, "requires": { - "@types/node": "^12.12.6", - "web3-core": "1.2.11", - "web3-core-helpers": "1.2.11", - "web3-core-method": "1.2.11", - "web3-net": "1.2.11", - "web3-utils": "1.2.11" + "@types/bn.js": "^5.1.0", + "bn.js": "^5.1.2", + "create-hash": "^1.1.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "0.1.6", + "rlp": "^2.2.4" }, "dependencies": { - "@types/node": { - "version": "12.19.12", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.19.12.tgz", - "integrity": "sha512-UwfL2uIU9arX/+/PRcIkT08/iBadGN2z6ExOROA2Dh5mAuWTBj6iJbQX4nekiV5H8cTrEG569LeX+HRco9Cbxw==", - "dev": true, - "optional": true + "bn.js": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz", + "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==", + "dev": true } } }, - "web3-net": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/web3-net/-/web3-net-1.2.11.tgz", - "integrity": "sha512-sjrSDj0pTfZouR5BSTItCuZ5K/oZPVdVciPQ6981PPPIwJJkCMeVjD7I4zO3qDPCnBjBSbWvVnLdwqUBPtHxyg==", + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "requires": { + "locate-path": "^2.0.0" + } + }, + "fs-extra": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", + "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "https-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", + "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", "dev": true, - "optional": true, "requires": { - "web3-core": "1.2.11", - "web3-core-method": "1.2.11", - "web3-utils": "1.2.11" + "agent-base": "6", + "debug": "4" } }, - "web3-provider-engine": { - "version": "14.2.1", - "resolved": "https://registry.npmjs.org/web3-provider-engine/-/web3-provider-engine-14.2.1.tgz", - "integrity": "sha512-iSv31h2qXkr9vrL6UZDm4leZMc32SjWJFGOp/D92JXfcEboCqraZyuExDkpxKw8ziTufXieNM7LSXNHzszYdJw==", + "js-yaml": { + "version": "3.13.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", + "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", "dev": true, "requires": { - "async": "^2.5.0", - "backoff": "^2.5.0", - "clone": "^2.0.0", - "cross-fetch": "^2.1.0", - "eth-block-tracker": "^3.0.0", - "eth-json-rpc-infura": "^3.1.0", - "eth-sig-util": "^1.4.2", - "ethereumjs-block": "^1.2.2", - "ethereumjs-tx": "^1.2.0", - "ethereumjs-util": "^5.1.5", - "ethereumjs-vm": "^2.3.4", - "json-rpc-error": "^2.0.0", - "json-stable-stringify": "^1.0.1", - "promise-to-callback": "^1.0.0", - "readable-stream": "^2.2.9", - "request": "^2.85.0", - "semaphore": "^1.0.3", - "ws": "^5.1.1", - "xhr": "^2.2.0", + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "level-ws": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/level-ws/-/level-ws-2.0.0.tgz", + "integrity": "sha512-1iv7VXx0G9ec1isqQZ7y5LmoZo/ewAsyDHNA8EFDW5hqH2Kqovm33nSFkSdnLLAK+I5FlT+lo5Cw9itGe+CpQA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "readable-stream": "^3.1.0", "xtend": "^4.0.1" + } + }, + "log-symbols": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-3.0.0.tgz", + "integrity": "sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ==", + "dev": true, + "requires": { + "chalk": "^2.4.2" + } + }, + "merkle-patricia-tree": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/merkle-patricia-tree/-/merkle-patricia-tree-4.2.0.tgz", + "integrity": "sha512-0sBVXs7z1Q1/kxzWZ3nPnxSPiaHKF/f497UQzt9O7isRcS10tel9jM/4TivF6Jv7V1yFq4bWyoATxbDUOen5vQ==", + "dev": true, + "requires": { + "@types/levelup": "^4.3.0", + "ethereumjs-util": "^7.0.10", + "level-mem": "^5.0.1", + "level-ws": "^2.0.0", + "readable-stream": "^3.6.0", + "rlp": "^2.2.4", + "semaphore-async-await": "^1.5.1" + } + }, + "mocha": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-7.2.0.tgz", + "integrity": "sha512-O9CIypScywTVpNaRrCAgoUnJgozpIofjKUYmJhiCIJMiuYnLI6otcb1/kpW9/n/tJODHGZ7i8aLQoDVsMtOKQQ==", + "dev": true, + "requires": { + "ansi-colors": "3.2.3", + "browser-stdout": "1.3.1", + "chokidar": "3.3.0", + "debug": "3.2.6", + "diff": "3.5.0", + "escape-string-regexp": "1.0.5", + "find-up": "3.0.0", + "glob": "7.1.3", + "growl": "1.10.5", + "he": "1.2.0", + "js-yaml": "3.13.1", + "log-symbols": "3.0.0", + "minimatch": "3.0.4", + "mkdirp": "0.5.5", + "ms": "2.1.1", + "node-environment-flags": "1.0.6", + "object.assign": "4.1.0", + "strip-json-comments": "2.0.1", + "supports-color": "6.0.0", + "which": "1.3.1", + "wide-align": "1.1.3", + "yargs": "13.3.2", + "yargs-parser": "13.1.2", + "yargs-unparser": "1.6.0" }, "dependencies": { - "abstract-leveldown": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-2.6.3.tgz", - "integrity": "sha512-2++wDf/DYqkPR3o5tbfdhF96EfMApo1GpPfzOsR/ZYXdkSmELlvOOEAl9iKkRsktMPHdGjO4rtkBpf2I7TiTeA==", - "dev": true, - "requires": { - "xtend": "~4.0.0" - } - }, - "deferred-leveldown": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/deferred-leveldown/-/deferred-leveldown-1.2.2.tgz", - "integrity": "sha512-uukrWD2bguRtXilKt6cAWKyoXrTSMo5m7crUdLfWQmu8kIm88w3QZoUL+6nhpfKVmhHANER6Re3sKoNoZ3IKMA==", - "dev": true, - "requires": { - "abstract-leveldown": "~2.6.0" - } - }, - "eth-sig-util": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/eth-sig-util/-/eth-sig-util-1.4.2.tgz", - "integrity": "sha1-jZWCAsftuq6Dlwf7pvCf8ydgYhA=", - "dev": true, - "requires": { - "ethereumjs-abi": "git+https://github.com/ethereumjs/ethereumjs-abi.git", - "ethereumjs-util": "^5.1.1" - } - }, - "ethereumjs-abi": { - "version": "git+https://github.com/ethereumjs/ethereumjs-abi.git#ee3994657fa7a427238e6ba92a84d0b529bbcde0", - "from": "git+https://github.com/ethereumjs/ethereumjs-abi.git", - "dev": true, - "requires": { - "bn.js": "^4.11.8", - "ethereumjs-util": "^6.0.0" - }, - "dependencies": { - "ethereumjs-util": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz", - "integrity": "sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==", - "dev": true, - "requires": { - "@types/bn.js": "^4.11.3", - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "0.1.6", - "rlp": "^2.2.3" - } - } - } - }, - "ethereumjs-account": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/ethereumjs-account/-/ethereumjs-account-2.0.5.tgz", - "integrity": "sha512-bgDojnXGjhMwo6eXQC0bY6UK2liSFUSMwwylOmQvZbSl/D7NXQ3+vrGO46ZeOgjGfxXmgIeVNDIiHw7fNZM4VA==", - "dev": true, - "requires": { - "ethereumjs-util": "^5.0.0", - "rlp": "^2.0.0", - "safe-buffer": "^5.1.1" - } - }, - "ethereumjs-block": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/ethereumjs-block/-/ethereumjs-block-1.7.1.tgz", - "integrity": "sha512-B+sSdtqm78fmKkBq78/QLKJbu/4Ts4P2KFISdgcuZUPDm9x+N7qgBPIIFUGbaakQh8bzuquiRVbdmvPKqbILRg==", - "dev": true, - "requires": { - "async": "^2.0.1", - "ethereum-common": "0.2.0", - "ethereumjs-tx": "^1.2.2", - "ethereumjs-util": "^5.0.0", - "merkle-patricia-tree": "^2.1.2" - }, - "dependencies": { - "ethereum-common": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/ethereum-common/-/ethereum-common-0.2.0.tgz", - "integrity": "sha512-XOnAR/3rntJgbCdGhqdaLIxDLWKLmsZOGhHdBKadEr6gEnJLH52k93Ou+TUdFaPN3hJc3isBZBal3U/XZ15abA==", - "dev": true - } - } - }, - "ethereumjs-tx": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-1.3.7.tgz", - "integrity": "sha512-wvLMxzt1RPhAQ9Yi3/HKZTn0FZYpnsmQdbKYfUUpi4j1SEIcbkd9tndVjcPrufY3V7j2IebOpC00Zp2P/Ay2kA==", - "dev": true, - "requires": { - "ethereum-common": "^0.0.18", - "ethereumjs-util": "^5.0.0" - } - }, - "ethereumjs-util": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", - "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", + "chokidar": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.3.0.tgz", + "integrity": "sha512-dGmKLDdT3Gdl7fBUe8XK+gAtGmzy5Fn0XkkWQuYxGIgWVPPse2CxFA5mtrlD0TOHaHjEUqkWNyP1XdHoJES/4A==", "dev": true, "requires": { - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "^0.1.3", - "rlp": "^2.0.0", - "safe-buffer": "^5.1.1" + "anymatch": "~3.1.1", + "braces": "~3.0.2", + "fsevents": "~2.1.1", + "glob-parent": "~5.1.0", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.2.0" } }, - "ethereumjs-vm": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/ethereumjs-vm/-/ethereumjs-vm-2.6.0.tgz", - "integrity": "sha512-r/XIUik/ynGbxS3y+mvGnbOKnuLo40V5Mj1J25+HEO63aWYREIqvWeRO/hnROlMBE5WoniQmPmhiaN0ctiHaXw==", + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", "dev": true, "requires": { - "async": "^2.1.2", - "async-eventemitter": "^0.2.2", - "ethereumjs-account": "^2.0.3", - "ethereumjs-block": "~2.2.0", - "ethereumjs-common": "^1.1.0", - "ethereumjs-util": "^6.0.0", - "fake-merkle-patricia-tree": "^1.0.1", - "functional-red-black-tree": "^1.0.1", - "merkle-patricia-tree": "^2.3.2", - "rustbn.js": "~0.2.0", - "safe-buffer": "^5.1.1" - }, - "dependencies": { - "ethereumjs-block": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/ethereumjs-block/-/ethereumjs-block-2.2.2.tgz", - "integrity": "sha512-2p49ifhek3h2zeg/+da6XpdFR3GlqY3BIEiqxGF8j9aSRIgkb7M1Ky+yULBKJOu8PAZxfhsYA+HxUk2aCQp3vg==", - "dev": true, - "requires": { - "async": "^2.0.1", - "ethereumjs-common": "^1.5.0", - "ethereumjs-tx": "^2.1.1", - "ethereumjs-util": "^5.0.0", - "merkle-patricia-tree": "^2.1.2" - }, - "dependencies": { - "ethereumjs-util": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", - "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", - "dev": true, - "requires": { - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "^0.1.3", - "rlp": "^2.0.0", - "safe-buffer": "^5.1.1" - } - } - } - }, - "ethereumjs-tx": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-2.1.2.tgz", - "integrity": "sha512-zZEK1onCeiORb0wyCXUvg94Ve5It/K6GD1K+26KfFKodiBiS6d9lfCXlUKGBBdQ+bv7Day+JK0tj1K+BeNFRAw==", - "dev": true, - "requires": { - "ethereumjs-common": "^1.5.0", - "ethereumjs-util": "^6.0.0" - } - }, - "ethereumjs-util": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz", - "integrity": "sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==", - "dev": true, - "requires": { - "@types/bn.js": "^4.11.3", - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "0.1.6", - "rlp": "^2.2.3" - } - } + "ms": "^2.1.1" } }, - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "dev": true - }, - "level-codec": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/level-codec/-/level-codec-7.0.1.tgz", - "integrity": "sha512-Ua/R9B9r3RasXdRmOtd+t9TCOEIIlts+TN/7XTT2unhDaL6sJn83S3rUyljbr6lVtw49N3/yA0HHjpV6Kzb2aQ==", - "dev": true - }, - "level-errors": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/level-errors/-/level-errors-1.0.5.tgz", - "integrity": "sha512-/cLUpQduF6bNrWuAC4pwtUKA5t669pCsCi2XbmojG2tFeOr9j6ShtdDCtFFQO1DRt+EVZhx9gPzP9G2bUaG4ig==", + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", "dev": true, "requires": { - "errno": "~0.1.1" + "locate-path": "^3.0.0" } }, - "level-iterator-stream": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/level-iterator-stream/-/level-iterator-stream-1.3.1.tgz", - "integrity": "sha1-5Dt4sagUPm+pek9IXrjqUwNS8u0=", + "glob": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", + "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", "dev": true, "requires": { - "inherits": "^2.0.1", - "level-errors": "^1.0.3", - "readable-stream": "^1.0.33", - "xtend": "^4.0.0" - }, - "dependencies": { - "readable-stream": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - } + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" } }, - "level-ws": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/level-ws/-/level-ws-0.0.0.tgz", - "integrity": "sha1-Ny5RIXeSSgBCSwtDrvK7QkltIos=", + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", "dev": true, "requires": { - "readable-stream": "~1.0.15", - "xtend": "~2.1.1" - }, - "dependencies": { - "readable-stream": { - "version": "1.0.34", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", - "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "xtend": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.1.2.tgz", - "integrity": "sha1-bv7MKk2tjmlixJAbM3znuoe10os=", - "dev": true, - "requires": { - "object-keys": "~0.4.0" - } - } + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" } }, - "levelup": { - "version": "1.3.9", - "resolved": "https://registry.npmjs.org/levelup/-/levelup-1.3.9.tgz", - "integrity": "sha512-VVGHfKIlmw8w1XqpGOAGwq6sZm2WwWLmlDcULkKWQXEA5EopA8OBNJ2Ck2v6bdk8HeEZSbCSEgzXadyQFm76sQ==", + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "dev": true + }, + "supports-color": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.0.0.tgz", + "integrity": "sha512-on9Kwidc1IUQo+bQdhi8+Tijpo0e1SS6RoGo2guUwn5vdaxw8RXOF9Vb2ws+ihWOmh4JnCJOvaziZWP1VABaLg==", "dev": true, "requires": { - "deferred-leveldown": "~1.2.1", - "level-codec": "~7.0.0", - "level-errors": "~1.0.3", - "level-iterator-stream": "~1.3.0", - "prr": "~1.0.1", - "semver": "~5.4.1", - "xtend": "~4.0.0" + "has-flag": "^3.0.0" + } + } + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node-fetch": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", + "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==", + "dev": true + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true + }, + "qs": { + "version": "6.10.1", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.1.tgz", + "integrity": "sha512-M528Hph6wsSVOBiYUnGf+K/7w0hNshs/duGsNXPUCLH5XAqjEtiPGwNONLV0tBH8NoGb0mvD5JubnUTrujKDTg==", + "dev": true, + "requires": { + "side-channel": "^1.0.4" + } + }, + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "readdirp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.2.0.tgz", + "integrity": "sha512-crk4Qu3pmXwgxdSgGhgA/eXiJAPQiX4GMOZZMXnqKxHX7TaoL+3gQVo/WeuAiogr07DpnfjIMpXXa+PAIvwPGQ==", + "dev": true, + "requires": { + "picomatch": "^2.0.4" + } + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true + }, + "ws": { + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.0.tgz", + "integrity": "sha512-6ezXvzOZupqKj4jUqbQ9tXuJNo+BR2gU8fFRk3XCP3e0G6WT414u5ELe6Y0vtp7kmSJ3F7YWObSNr1ESsgi4vw==", + "dev": true + }, + "y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "dev": true + }, + "yargs": { + "version": "13.3.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", + "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", + "dev": true, + "requires": { + "cliui": "^5.0.0", + "find-up": "^3.0.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^3.0.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^13.1.2" + }, + "dependencies": { + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" } }, - "ltgt": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ltgt/-/ltgt-2.2.1.tgz", - "integrity": "sha1-81ypHEk/e3PaDgdJUwTxezH4fuU=", - "dev": true - }, - "memdown": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/memdown/-/memdown-1.4.1.tgz", - "integrity": "sha1-tOThkhdGZP+65BNhqlAPMRnv4hU=", + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", "dev": true, "requires": { - "abstract-leveldown": "~2.7.1", - "functional-red-black-tree": "^1.0.1", - "immediate": "^3.2.3", - "inherits": "~2.0.1", - "ltgt": "~2.2.0", - "safe-buffer": "~5.1.1" - }, - "dependencies": { - "abstract-leveldown": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-2.7.2.tgz", - "integrity": "sha512-+OVvxH2rHVEhWLdbudP6p0+dNMXu8JA1CbhP19T8paTYAcX7oJ4OVjT+ZUVpv7mITxXHqDMej+GdqXBmXkw09w==", - "dev": true, - "requires": { - "xtend": "~4.0.0" - } - } + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + } + } + }, + "yargs-unparser": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-1.6.0.tgz", + "integrity": "sha512-W9tKgmSn0DpSatfri0nx52Joq5hVXgeLiqR/5G0sZNDoLZFOr/xjBUDcShCOGNsBnEMNo1KAMBkTej1Hm62HTw==", + "dev": true, + "requires": { + "flat": "^4.1.0", + "lodash": "^4.17.15", + "yargs": "^13.3.0" + } + } + } + }, + "hardhat-contract-sizer": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/hardhat-contract-sizer/-/hardhat-contract-sizer-2.0.3.tgz", + "integrity": "sha512-iaixOzWxwOSIIE76cl2uk4m9VXI1hKU3bFt+gl7jDhyb2/JB2xOp5wECkfWqAoc4V5lD4JtjldZlpSTbzX+nPQ==", + "dev": true, + "requires": { + "cli-table3": "^0.6.0", + "colors": "^1.4.0" + } + }, + "hardhat-deploy": { + "version": "0.7.11", + "resolved": "https://registry.npmjs.org/hardhat-deploy/-/hardhat-deploy-0.7.11.tgz", + "integrity": "sha512-ONLH3NH8Biuhky44KRFyaINVHM8JI4Ihy1TpntIRZUpIFHlz9h3gieq46H7iwdp6z3CqMsOCChF0riUF3CFpmQ==", + "dev": true, + "requires": { + "@ethersproject/abi": "^5.0.0", + "@ethersproject/abstract-signer": "^5.0.0", + "@ethersproject/address": "^5.0.0", + "@ethersproject/bignumber": "^5.0.0", + "@ethersproject/bytes": "^5.0.0", + "@ethersproject/contracts": "^5.0.0", + "@ethersproject/providers": "^5.0.0", + "@ethersproject/solidity": "^5.0.0", + "@ethersproject/transactions": "^5.0.0", + "@ethersproject/wallet": "^5.0.0", + "@types/qs": "^6.9.4", + "axios": "^0.21.1", + "chalk": "^4.1.0", + "chokidar": "^3.4.0", + "debug": "^4.1.1", + "form-data": "^3.0.0", + "fs-extra": "^9.0.0", + "match-all": "^1.2.6", + "murmur-128": "^0.2.1", + "qs": "^6.9.4" + }, + "dependencies": { + "@ethersproject/abi": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.3.1.tgz", + "integrity": "sha512-F98FWTJG7nWWAQ4DcV6R0cSlrj67MWK3ylahuFbzkumem5cLWg1p7fZ3vIdRoS1c7TEf55Lvyx0w7ICR47IImw==", + "dev": true, + "requires": { + "@ethersproject/address": "^5.3.0", + "@ethersproject/bignumber": "^5.3.0", + "@ethersproject/bytes": "^5.3.0", + "@ethersproject/constants": "^5.3.0", + "@ethersproject/hash": "^5.3.0", + "@ethersproject/keccak256": "^5.3.0", + "@ethersproject/logger": "^5.3.0", + "@ethersproject/properties": "^5.3.0", + "@ethersproject/strings": "^5.3.0" + }, + "dependencies": { + "@ethersproject/address": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.3.0.tgz", + "integrity": "sha512-29TgjzEBK+gUEUAOfWCG7s9IxLNLCqvr+oDSk6L9TXD0VLvZJKhJV479tKQqheVA81OeGxfpdxYtUVH8hqlCvA==", + "dev": true, + "requires": { + "@ethersproject/bignumber": "^5.3.0", + "@ethersproject/bytes": "^5.3.0", + "@ethersproject/keccak256": "^5.3.0", + "@ethersproject/logger": "^5.3.0", + "@ethersproject/rlp": "^5.3.0" } }, - "merkle-patricia-tree": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/merkle-patricia-tree/-/merkle-patricia-tree-2.3.2.tgz", - "integrity": "sha512-81PW5m8oz/pz3GvsAwbauj7Y00rqm81Tzad77tHBwU7pIAtN+TJnMSOJhxBKflSVYhptMMb9RskhqHqrSm1V+g==", + "@ethersproject/bignumber": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.3.0.tgz", + "integrity": "sha512-5xguJ+Q1/zRMgHgDCaqAexx/8DwDVLRemw2i6uR8KyGjwGdXI8f32QZZ1cKGucBN6ekJvpUpHy6XAuQnTv0mPA==", "dev": true, "requires": { - "async": "^1.4.2", - "ethereumjs-util": "^5.0.0", - "level-ws": "0.0.0", - "levelup": "^1.2.1", - "memdown": "^1.0.0", - "readable-stream": "^2.0.0", - "rlp": "^2.0.0", - "semaphore": ">=1.0.1" - }, - "dependencies": { - "async": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", - "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", - "dev": true - } + "@ethersproject/bytes": "^5.3.0", + "@ethersproject/logger": "^5.3.0", + "bn.js": "^4.11.9" } }, - "object-keys": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-0.4.0.tgz", - "integrity": "sha1-KKaq50KN0sOpLz2V8hM13SBOAzY=", - "dev": true - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "semver": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz", - "integrity": "sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg==", - "dev": true - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", - "dev": true - }, - "ws": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/ws/-/ws-5.2.2.tgz", - "integrity": "sha512-jaHFD6PFv6UgoIVda6qZllptQsMlDEJkTQcybzzXDYM1XO9Y8em691FGMPmM46WGyLU4z9KMgQN+qrux/nhlHA==", + "@ethersproject/bytes": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.3.0.tgz", + "integrity": "sha512-rqLJjdVqCcn7glPer7Fxh87PRqlnRScVAoxcIP3PmOUNApMWJ6yRdOFfo2KvPAdO7Le3yEI1o0YW+Yvr7XCYvw==", "dev": true, "requires": { - "async-limiter": "~1.0.0" + "@ethersproject/logger": "^5.3.0" } } } }, - "web3-providers-http": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.2.11.tgz", - "integrity": "sha512-psh4hYGb1+ijWywfwpB2cvvOIMISlR44F/rJtYkRmQ5jMvG4FOCPlQJPiHQZo+2cc3HbktvvSJzIhkWQJdmvrA==", + "@ethersproject/constants": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.3.0.tgz", + "integrity": "sha512-4y1feNOwEpgjAfiCFWOHznvv6qUF/H6uI0UKp8xdhftb+H+FbKflXg1pOgH5qs4Sr7EYBL+zPyPb+YD5g1aEyw==", "dev": true, - "optional": true, "requires": { - "web3-core-helpers": "1.2.11", - "xhr2-cookies": "1.1.0" + "@ethersproject/bignumber": "^5.3.0" + }, + "dependencies": { + "@ethersproject/bignumber": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.3.0.tgz", + "integrity": "sha512-5xguJ+Q1/zRMgHgDCaqAexx/8DwDVLRemw2i6uR8KyGjwGdXI8f32QZZ1cKGucBN6ekJvpUpHy6XAuQnTv0mPA==", + "dev": true, + "requires": { + "@ethersproject/bytes": "^5.3.0", + "@ethersproject/logger": "^5.3.0", + "bn.js": "^4.11.9" + } + }, + "@ethersproject/bytes": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.3.0.tgz", + "integrity": "sha512-rqLJjdVqCcn7glPer7Fxh87PRqlnRScVAoxcIP3PmOUNApMWJ6yRdOFfo2KvPAdO7Le3yEI1o0YW+Yvr7XCYvw==", + "dev": true, + "requires": { + "@ethersproject/logger": "^5.3.0" + } + } } }, - "web3-providers-ipc": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.2.11.tgz", - "integrity": "sha512-yhc7Y/k8hBV/KlELxynWjJDzmgDEDjIjBzXK+e0rHBsYEhdCNdIH5Psa456c+l0qTEU2YzycF8VAjYpWfPnBpQ==", - "dev": true, - "optional": true, - "requires": { - "oboe": "2.1.4", - "underscore": "1.9.1", - "web3-core-helpers": "1.2.11" + "@ethersproject/hash": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.3.0.tgz", + "integrity": "sha512-gAFZSjUPQ32CIfoKSMtMEQ+IO0kQxqhwz9fCIFt2DtAq2u4pWt8mL9Z5P0r6KkLcQU8LE9FmuPPyd+JvBzmr1w==", + "dev": true, + "requires": { + "@ethersproject/abstract-signer": "^5.3.0", + "@ethersproject/address": "^5.3.0", + "@ethersproject/bignumber": "^5.3.0", + "@ethersproject/bytes": "^5.3.0", + "@ethersproject/keccak256": "^5.3.0", + "@ethersproject/logger": "^5.3.0", + "@ethersproject/properties": "^5.3.0", + "@ethersproject/strings": "^5.3.0" + }, + "dependencies": { + "@ethersproject/address": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.3.0.tgz", + "integrity": "sha512-29TgjzEBK+gUEUAOfWCG7s9IxLNLCqvr+oDSk6L9TXD0VLvZJKhJV479tKQqheVA81OeGxfpdxYtUVH8hqlCvA==", + "dev": true, + "requires": { + "@ethersproject/bignumber": "^5.3.0", + "@ethersproject/bytes": "^5.3.0", + "@ethersproject/keccak256": "^5.3.0", + "@ethersproject/logger": "^5.3.0", + "@ethersproject/rlp": "^5.3.0" + } + }, + "@ethersproject/bignumber": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.3.0.tgz", + "integrity": "sha512-5xguJ+Q1/zRMgHgDCaqAexx/8DwDVLRemw2i6uR8KyGjwGdXI8f32QZZ1cKGucBN6ekJvpUpHy6XAuQnTv0mPA==", + "dev": true, + "requires": { + "@ethersproject/bytes": "^5.3.0", + "@ethersproject/logger": "^5.3.0", + "bn.js": "^4.11.9" + } + }, + "@ethersproject/bytes": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.3.0.tgz", + "integrity": "sha512-rqLJjdVqCcn7glPer7Fxh87PRqlnRScVAoxcIP3PmOUNApMWJ6yRdOFfo2KvPAdO7Le3yEI1o0YW+Yvr7XCYvw==", + "dev": true, + "requires": { + "@ethersproject/logger": "^5.3.0" + } + } } }, - "web3-providers-ws": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.2.11.tgz", - "integrity": "sha512-ZxnjIY1Er8Ty+cE4migzr43zA/+72AF1myzsLaU5eVgdsfV7Jqx7Dix1hbevNZDKFlSoEyq/3j/jYalh3So1Zg==", + "@ethersproject/keccak256": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.3.0.tgz", + "integrity": "sha512-Gv2YqgIUmRbYVNIibafT0qGaeGYLIA/EdWHJ7JcVxVSs2vyxafGxOJ5VpSBHWeOIsE6OOaCelYowhuuTicgdFQ==", "dev": true, - "optional": true, "requires": { - "eventemitter3": "4.0.4", - "underscore": "1.9.1", - "web3-core-helpers": "1.2.11", - "websocket": "^1.0.31" + "@ethersproject/bytes": "^5.3.0", + "js-sha3": "0.5.7" + }, + "dependencies": { + "@ethersproject/bytes": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.3.0.tgz", + "integrity": "sha512-rqLJjdVqCcn7glPer7Fxh87PRqlnRScVAoxcIP3PmOUNApMWJ6yRdOFfo2KvPAdO7Le3yEI1o0YW+Yvr7XCYvw==", + "dev": true, + "requires": { + "@ethersproject/logger": "^5.3.0" + } + } } }, - "web3-shh": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/web3-shh/-/web3-shh-1.2.11.tgz", - "integrity": "sha512-B3OrO3oG1L+bv3E1sTwCx66injW1A8hhwpknDUbV+sw3fehFazA06z9SGXUefuFI1kVs4q2vRi0n4oCcI4dZDg==", + "@ethersproject/logger": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.3.0.tgz", + "integrity": "sha512-8bwJ2gxJGkZZnpQSq5uSiZSJjyVTWmlGft4oH8vxHdvO1Asy4TwVepAhPgxIQIMxXZFUNMych1YjIV4oQ4I7dA==", + "dev": true + }, + "@ethersproject/properties": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.3.0.tgz", + "integrity": "sha512-PaHxJyM5/bfusk6vr3yP//JMnm4UEojpzuWGTmtL5X4uNhNnFNvlYilZLyDr4I9cTkIbipCMsAuIcXWsmdRnEw==", "dev": true, - "optional": true, "requires": { - "web3-core": "1.2.11", - "web3-core-method": "1.2.11", - "web3-core-subscriptions": "1.2.11", - "web3-net": "1.2.11" + "@ethersproject/logger": "^5.3.0" } }, - "web3-utils": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.2.11.tgz", - "integrity": "sha512-3Tq09izhD+ThqHEaWYX4VOT7dNPdZiO+c/1QMA0s5X2lDFKK/xHJb7cyTRRVzN2LvlHbR7baS1tmQhSua51TcQ==", + "@ethersproject/rlp": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.3.0.tgz", + "integrity": "sha512-oI0joYpsRanl9guDubaW+1NbcpK0vJ3F/6Wpcanzcnqq+oaW9O5E98liwkEDPcb16BUTLIJ+ZF8GPIHYxJ/5Pw==", "dev": true, - "optional": true, "requires": { - "bn.js": "^4.11.9", - "eth-lib": "0.2.8", - "ethereum-bloom-filters": "^1.0.6", - "ethjs-unit": "0.1.6", - "number-to-bn": "1.7.0", - "randombytes": "^2.1.0", - "underscore": "1.9.1", - "utf8": "3.0.0" + "@ethersproject/bytes": "^5.3.0", + "@ethersproject/logger": "^5.3.0" }, "dependencies": { - "eth-lib": { - "version": "0.2.8", - "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz", - "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==", + "@ethersproject/bytes": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.3.0.tgz", + "integrity": "sha512-rqLJjdVqCcn7glPer7Fxh87PRqlnRScVAoxcIP3PmOUNApMWJ6yRdOFfo2KvPAdO7Le3yEI1o0YW+Yvr7XCYvw==", "dev": true, - "optional": true, "requires": { - "bn.js": "^4.11.6", - "elliptic": "^6.4.0", - "xhr-request-promise": "^0.1.2" + "@ethersproject/logger": "^5.3.0" } } } }, - "websocket": { - "version": "1.0.32", - "resolved": "https://registry.npmjs.org/websocket/-/websocket-1.0.32.tgz", - "integrity": "sha512-i4yhcllSP4wrpoPMU2N0TQ/q0O94LRG/eUQjEAamRltjQ1oT1PFFKOG4i877OlJgCG8rw6LrrowJp+TYCEWF7Q==", + "@ethersproject/strings": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.3.0.tgz", + "integrity": "sha512-j/AzIGZ503cvhuF2ldRSjB0BrKzpsBMtCieDtn4TYMMZMQ9zScJn9wLzTQl/bRNvJbBE6TOspK0r8/Ngae/f2Q==", "dev": true, "requires": { - "bufferutil": "^4.0.1", - "debug": "^2.2.0", - "es5-ext": "^0.10.50", - "typedarray-to-buffer": "^3.1.5", - "utf-8-validate": "^5.0.2", - "yaeti": "^0.0.6" + "@ethersproject/bytes": "^5.3.0", + "@ethersproject/constants": "^5.3.0", + "@ethersproject/logger": "^5.3.0" }, "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "@ethersproject/bytes": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.3.0.tgz", + "integrity": "sha512-rqLJjdVqCcn7glPer7Fxh87PRqlnRScVAoxcIP3PmOUNApMWJ6yRdOFfo2KvPAdO7Le3yEI1o0YW+Yvr7XCYvw==", "dev": true, "requires": { - "ms": "2.0.0" + "@ethersproject/logger": "^5.3.0" } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true } } }, - "whatwg-fetch": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-2.0.4.tgz", - "integrity": "sha512-dcQ1GWpOD/eEQ97k66aiEVpNnapVj90/+R+SXTPYGHpYBBypfKJEQjLrvMZ7YXbKm21gXd4NcuxUTjiv1YtLng==", - "dev": true + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", "dev": true }, - "ws": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz", - "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==", + "chalk": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", "dev": true, - "optional": true, "requires": { - "async-limiter": "~1.0.0", - "safe-buffer": "~5.1.0", - "ultron": "~1.1.0" - }, - "dependencies": { - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true, - "optional": true - } + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" } }, - "xhr": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/xhr/-/xhr-2.6.0.tgz", - "integrity": "sha512-/eCGLb5rxjx5e3mF1A7s+pLlR6CGyqWN91fv1JgER5mVWg1MZmlhBvy9kjcsOdRk8RrIujotWyJamfyrp+WIcA==", + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "requires": { - "global": "~4.4.0", - "is-function": "^1.0.1", - "parse-headers": "^2.0.0", - "xtend": "^4.0.0" + "color-name": "~1.1.4" } }, - "xhr-request": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/xhr-request/-/xhr-request-1.1.0.tgz", - "integrity": "sha512-Y7qzEaR3FDtL3fP30k9wO/e+FBnBByZeybKOhASsGP30NIkRAAkKD/sCnLvgEfAIEC1rcmK7YG8f4oEnIrrWzA==", + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", "dev": true, - "optional": true, "requires": { - "buffer-to-arraybuffer": "^0.0.5", - "object-assign": "^4.1.1", - "query-string": "^5.0.1", - "simple-get": "^2.7.0", - "timed-out": "^4.0.1", - "url-set-query": "^1.0.0", - "xhr": "^2.0.4" + "delayed-stream": "~1.0.0" + } + }, + "debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "dev": true, + "requires": { + "ms": "2.1.2" } }, - "xhr-request-promise": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/xhr-request-promise/-/xhr-request-promise-0.1.3.tgz", - "integrity": "sha512-YUBytBsuwgitWtdRzXDDkWAXzhdGB8bYm0sSzMPZT7Z2MBjMSTHFsyCT1yCRATY+XC69DUrQraRAEgcoCRaIPg==", + "form-data": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", + "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", "dev": true, - "optional": true, "requires": { - "xhr-request": "^1.1.0" + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" } }, - "xhr2-cookies": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/xhr2-cookies/-/xhr2-cookies-1.1.0.tgz", - "integrity": "sha1-fXdEnQmZGX8VXLc7I99yUF7YnUg=", + "fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", "dev": true, - "optional": true, "requires": { - "cookiejar": "^2.1.1" + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" } }, - "xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "graceful-fs": { + "version": "4.2.6", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", + "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==", "dev": true }, - "yaeti": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/yaeti/-/yaeti-0.0.6.tgz", - "integrity": "sha1-8m9ITXJoTPQr7ft2lwqhYI+/lXc=", + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, - "yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true - } - } - }, - "get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true - }, - "get-func-name": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", - "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=", - "dev": true - }, - "get-intrinsic": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", - "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", - "dev": true, - "requires": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" - } - }, - "get-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", - "dev": true - }, - "get-uri": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/get-uri/-/get-uri-2.0.4.tgz", - "integrity": "sha512-v7LT/s8kVjs+Tx0ykk1I+H/rbpzkHvuIq87LmeXptcf5sNWm9uQiwjNAt94SJPA1zOlCntmnOlJvVWKmzsxG8Q==", - "dev": true, - "requires": { - "data-uri-to-buffer": "1", - "debug": "2", - "extend": "~3.0.2", - "file-uri-to-path": "1", - "ftp": "~0.3.10", - "readable-stream": "2" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", "dev": true, "requires": { - "ms": "2.0.0" + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" } - } - } - }, - "getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "requires": { - "assert-plus": "^1.0.0" - } - }, - "ghost-testrpc": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/ghost-testrpc/-/ghost-testrpc-0.0.2.tgz", - "integrity": "sha512-i08dAEgJ2g8z5buJIrCTduwPIhih3DP+hOCTyyryikfV8T0bNvHnGXO67i0DD1H4GBDETTclPy9njZbfluQYrQ==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "node-emoji": "^1.10.0" - }, - "dependencies": { - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "qs": { + "version": "6.10.1", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.1.tgz", + "integrity": "sha512-M528Hph6wsSVOBiYUnGf+K/7w0hNshs/duGsNXPUCLH5XAqjEtiPGwNONLV0tBH8NoGb0mvD5JubnUTrujKDTg==", "dev": true, "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "side-channel": "^1.0.4" } - } - } - }, - "glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "glob-parent": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", - "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", - "dev": true, - "requires": { - "is-glob": "^4.0.1" - } - }, - "global": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/global/-/global-4.3.2.tgz", - "integrity": "sha1-52mJJopsdMOJCLEwWxD8DjlOnQ8=", - "requires": { - "min-document": "^2.19.0", - "process": "~0.5.1" - } - }, - "global-dirs": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-2.0.1.tgz", - "integrity": "sha512-5HqUqdhkEovj2Of/ms3IeS/EekcO54ytHRLV4PEY2rhRwrHXLQjeVEES0Lhka0xwNDtGYn58wyC4s5+MHsOO6A==", - "dev": true, - "requires": { - "ini": "^1.3.5" - } - }, - "global-modules": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", - "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", - "dev": true, - "requires": { - "global-prefix": "^3.0.0" - } - }, - "global-prefix": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", - "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", - "dev": true, - "requires": { - "ini": "^1.3.5", - "kind-of": "^6.0.2", - "which": "^1.3.1" - } - }, - "globals": { - "version": "12.4.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz", - "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==", - "dev": true, - "requires": { - "type-fest": "^0.8.1" - } - }, - "globby": { - "version": "10.0.2", - "resolved": "https://registry.npmjs.org/globby/-/globby-10.0.2.tgz", - "integrity": "sha512-7dUi7RvCoT/xast/o/dLN53oqND4yk0nsHkhRgn9w65C4PofCLOoJ39iSOg+qVDdWQPIEj+eszMHQ+aLVwwQSg==", - "dev": true, - "requires": { - "@types/glob": "^7.1.1", - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.0.3", - "glob": "^7.1.3", - "ignore": "^5.1.1", - "merge2": "^1.2.3", - "slash": "^3.0.0" - }, - "dependencies": { - "ignore": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", - "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==", - "dev": true - } - } - }, - "got": { - "version": "9.6.0", - "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", - "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", - "dev": true, - "requires": { - "@sindresorhus/is": "^0.14.0", - "@szmarczak/http-timer": "^1.1.2", - "cacheable-request": "^6.0.0", - "decompress-response": "^3.3.0", - "duplexer3": "^0.1.4", - "get-stream": "^4.1.0", - "lowercase-keys": "^1.0.1", - "mimic-response": "^1.0.1", - "p-cancelable": "^1.0.0", - "to-readable-stream": "^1.0.0", - "url-parse-lax": "^3.0.0" - }, - "dependencies": { - "get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "requires": { - "pump": "^3.0.0" + "has-flag": "^4.0.0" } + }, + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true } } }, - "graceful-fs": { - "version": "4.1.15", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz", - "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==", - "dev": true - }, - "graceful-readlink": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz", - "integrity": "sha1-TK+tdrxi8C+gObL5Tpo906ORpyU=", - "dev": true - }, - "grapheme-splitter": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", - "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", - "dev": true - }, - "growl": { - "version": "1.10.5", - "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", - "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", - "dev": true - }, - "gunzip-maybe": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/gunzip-maybe/-/gunzip-maybe-1.4.2.tgz", - "integrity": "sha512-4haO1M4mLO91PW57BMsDFf75UmwoRX0GkdD+Faw+Lr+r/OZrOCS0pIBwOL1xCKQqnQzbNFGgK2V2CpBUPeFNTw==", - "dev": true, - "requires": { - "browserify-zlib": "^0.1.4", - "is-deflate": "^1.0.0", - "is-gzip": "^1.0.0", - "peek-stream": "^1.1.0", - "pumpify": "^1.3.3", - "through2": "^2.0.3" - } - }, - "handlebars": { - "version": "4.7.6", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.6.tgz", - "integrity": "sha512-1f2BACcBfiwAfStCKZNrUCgqNZkGsAT7UM3kkYtXuLo0KnaVfjKOyf7PRzB6++aK9STyT1Pd2ZCPe3EGOXleXA==", + "hardhat-docgen": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/hardhat-docgen/-/hardhat-docgen-1.1.1.tgz", + "integrity": "sha512-vMZqT2go9JmIAtTfK4QZLsL2hzGVccqkfDvSIvqC6wvH2FX9vmp4H5mTHoYqimanqZcU74QZ8Vi81G13m0WZ2w==", "dev": true, "requires": { - "minimist": "^1.2.5", - "neo-async": "^2.6.0", - "source-map": "^0.6.1", - "uglify-js": "^3.1.4", - "wordwrap": "^1.0.0" - }, - "dependencies": { - "minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", - "dev": true - } + "css-loader": "^2.1.0", + "html-webpack-plugin": "^3.2.0", + "vue": "^2.6.12", + "vue-loader": "^15.6.4", + "vue-router": "^3.4.9", + "vue-template-compiler": "^2.6.7", + "webpack": "^4.29.5" } }, - "har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" - }, - "har-validator": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz", - "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==", - "requires": { - "ajv": "^6.5.5", - "har-schema": "^2.0.0" - } + "hardhat-log-remover": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hardhat-log-remover/-/hardhat-log-remover-2.0.2.tgz", + "integrity": "sha512-TvEWOisQmZUZ7Mlb7s4XYS/MxgZzjFJSjDI8v3uTcrD6aaXy1QtomW6D6WNsISEWtwwRlSntOGpHQwFjrz2MCw==", + "dev": true }, "has": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, "requires": { "function-bind": "^1.1.1" } @@ -18241,8 +23808,7 @@ "has-bigints": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", - "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==", - "dev": true + "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==" }, "has-flag": { "version": "3.0.0", @@ -18259,8 +23825,7 @@ "has-symbols": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", - "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", - "dev": true + "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==" }, "has-to-string-tag-x": { "version": "1.4.1", @@ -18271,6 +23836,64 @@ "has-symbol-support-x": "^1.4.1" } }, + "has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "dev": true, + "requires": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + } + }, + "has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "dependencies": { + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, "has-yarn": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz", @@ -18309,6 +23932,12 @@ } } }, + "hash-sum": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/hash-sum/-/hash-sum-1.0.2.tgz", + "integrity": "sha1-M7QHd3VMZDJXPBIMw4CLvRDUfwQ=", + "dev": true + }, "hash.js": { "version": "1.1.7", "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", @@ -18352,6 +23981,104 @@ "integrity": "sha512-pzXIvANXEFrc5oFFXRMkbLPQ2rXRoDERwDLyrcUxGhaZhgP54BBSl9Oheh7Vv0T090cszWBxPjkQQ5Sq1PbBRQ==", "dev": true }, + "html-minifier": { + "version": "3.5.21", + "resolved": "https://registry.npmjs.org/html-minifier/-/html-minifier-3.5.21.tgz", + "integrity": "sha512-LKUKwuJDhxNa3uf/LPR/KVjm/l3rBqtYeCOAekvG8F1vItxMUpueGd94i/asDDr8/1u7InxzFA5EeGjhhG5mMA==", + "dev": true, + "requires": { + "camel-case": "3.0.x", + "clean-css": "4.2.x", + "commander": "2.17.x", + "he": "1.2.x", + "param-case": "2.1.x", + "relateurl": "0.2.x", + "uglify-js": "3.4.x" + }, + "dependencies": { + "commander": { + "version": "2.17.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz", + "integrity": "sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==", + "dev": true + }, + "uglify-js": { + "version": "3.4.10", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.4.10.tgz", + "integrity": "sha512-Y2VsbPVs0FIshJztycsO2SfPk7/KAF/T72qzv9u5EpQ4kB2hQoHlhNQTsNyy6ul7lQtqJN/AoWeS23OzEiEFxw==", + "dev": true, + "requires": { + "commander": "~2.19.0", + "source-map": "~0.6.1" + }, + "dependencies": { + "commander": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.19.0.tgz", + "integrity": "sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg==", + "dev": true + } + } + } + } + }, + "html-webpack-plugin": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-3.2.0.tgz", + "integrity": "sha1-sBq71yOsqqeze2r0SS69oD2d03s=", + "dev": true, + "requires": { + "html-minifier": "^3.2.3", + "loader-utils": "^0.2.16", + "lodash": "^4.17.3", + "pretty-error": "^2.0.2", + "tapable": "^1.0.0", + "toposort": "^1.0.0", + "util.promisify": "1.0.0" + }, + "dependencies": { + "big.js": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz", + "integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==", + "dev": true + }, + "emojis-list": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", + "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=", + "dev": true + }, + "json5": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", + "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", + "dev": true + }, + "loader-utils": { + "version": "0.2.17", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.17.tgz", + "integrity": "sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g=", + "dev": true, + "requires": { + "big.js": "^3.1.3", + "emojis-list": "^2.0.0", + "json5": "^0.5.0", + "object-assign": "^4.0.1" + } + }, + "util.promisify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.0.tgz", + "integrity": "sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA==", + "dev": true, + "requires": { + "define-properties": "^1.1.2", + "object.getownpropertydescriptors": "^2.0.3" + } + } + } + }, "htmlparser2": { "version": "3.10.1", "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz", @@ -18442,6 +24169,12 @@ "resolve-alpn": "^1.0.0" } }, + "https-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", + "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", + "dev": true + }, "https-proxy-agent": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-3.0.1.tgz", @@ -18571,6 +24304,21 @@ "safer-buffer": ">= 2.1.2 < 3" } }, + "icss-replace-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz", + "integrity": "sha1-Bupvg2ead0njhs/h/oEq5dsiPe0=", + "dev": true + }, + "icss-utils": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-4.1.1.tgz", + "integrity": "sha512-4aFq7wvWyMHKgxsH8QQtGpvbASCf+eM3wPRLI6R+MgAnTCZ6STYsRvttLvRWK0Nfif5piF394St3HeJDaljGPA==", + "dev": true, + "requires": { + "postcss": "^7.0.14" + } + }, "idna-uts46-hx": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/idna-uts46-hx/-/idna-uts46-hx-2.3.1.tgz", @@ -18594,6 +24342,12 @@ "integrity": "sha512-GguP+DRY+pJ3soyIiGPTvdiVXjZ+DbXOxGpXn3eMvNW4x4irjqXm4wHKscC+TfxSJ0yw/S1F24tqdMNsMZTiLA==", "dev": true }, + "iferr": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", + "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=", + "dev": true + }, "ignore": { "version": "4.0.6", "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", @@ -18606,6 +24360,12 @@ "integrity": "sha1-nbHb0Pr43m++D13V5Wu2BigN5ps=", "dev": true }, + "immutable": { + "version": "4.0.0-rc.12", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.0.0-rc.12.tgz", + "integrity": "sha512-0M2XxkZLx/mi3t8NVwIm1g8nHoEmM9p9UBl/G9k4+hm0kBgOVdMV/B3CY5dQ8qG8qc80NN4gDV4HQv6FTJ5q7A==", + "dev": true + }, "import-fresh": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.1.tgz", @@ -18622,12 +24382,24 @@ "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=", "dev": true }, + "imul": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/imul/-/imul-1.0.1.tgz", + "integrity": "sha1-nVhnFh6LPelsLDjV3HyxAvNeKsk=", + "dev": true + }, "imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", "dev": true }, + "infer-owner": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", + "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", + "dev": true + }, "inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", @@ -18689,12 +24461,31 @@ "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", "dev": true }, + "into-stream": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/into-stream/-/into-stream-3.1.0.tgz", + "integrity": "sha1-lvsKk2wSur1v8XUqF9BWFqvQlMY=", + "dev": true, + "requires": { + "from2": "^2.1.1", + "p-is-promise": "^1.1.0" + } + }, "invert-kv": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", "dev": true }, + "io-ts": { + "version": "1.10.4", + "resolved": "https://registry.npmjs.org/io-ts/-/io-ts-1.10.4.tgz", + "integrity": "sha512-b23PteSnYXSONJ6JQXRAlvJhuw8KOtkqa87W4wDtvMrud/DTJd5X+NpOOI+O/zZwVq6v0VLAaJ+1EDViKEuN9g==", + "dev": true, + "requires": { + "fp-ts": "^1.0.0" + } + }, "ip": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", @@ -18713,6 +24504,32 @@ "integrity": "sha512-nW24QBoPcFGGHJGUwnfpI7Yc5CdqWNdsyHQszVE/z2pKHXzh7FZ5GWhJqSyaQ9wMkQnsTx+kAI8bHlCX4tKdbg==", "dev": true }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, "is-arguments": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.0.tgz", @@ -18731,8 +24548,7 @@ "is-bigint": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.1.tgz", - "integrity": "sha512-J0ELF4yHFxHy0cmSxZuheDOz2luOdVvqjwmEcj8H/L1JHeuEDSDbeRP+Dk9kFVk5RTFzbucJ2Kb9F7ixY2QaCg==", - "dev": true + "integrity": "sha512-J0ELF4yHFxHy0cmSxZuheDOz2luOdVvqjwmEcj8H/L1JHeuEDSDbeRP+Dk9kFVk5RTFzbucJ2Kb9F7ixY2QaCg==" }, "is-binary-path": { "version": "2.1.0", @@ -18747,7 +24563,6 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.0.tgz", "integrity": "sha512-a7Uprx8UtD+HWdyYwnD1+ExtTgqQtD2k/1yJgtXP6wnMm8byhkoTZRl+95LLThpzNZJ5aEvi46cdH+ayMFRwmA==", - "dev": true, "requires": { "call-bind": "^1.0.0" } @@ -18780,6 +24595,32 @@ } } }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, "is-date-object": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", @@ -18792,6 +24633,25 @@ "integrity": "sha1-yGKQHDwWH7CdrHzcfnhPgOmPLxQ=", "dev": true }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, "is-directory": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz", @@ -18804,6 +24664,12 @@ "integrity": "sha512-pJEdRugimx4fBMra5z2/5iRdZ63OhYV0vr0Dwm5+xtW4D1FvRkB8hamMIhnWfyJeDdyr/aa7BDyNbtG38VxgoQ==", "dev": true }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true + }, "is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", @@ -18826,6 +24692,12 @@ "resolved": "https://registry.npmjs.org/is-function/-/is-function-1.0.1.tgz", "integrity": "sha1-Es+5i2W1fdPRk6MSH19uL0N2ArU=" }, + "is-generator-function": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.9.tgz", + "integrity": "sha512-ZJ34p1uvIfptHCN7sFTjGibB9/oBg17sHqzDLfuwhvmN/qLVvIQXRQ8licZQ35WJ8KuEQt/etnnzQFI9C9Ue/A==", + "dev": true + }, "is-glob": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", @@ -18889,8 +24761,7 @@ "is-number-object": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.4.tgz", - "integrity": "sha512-zohwelOAur+5uXtk8O3GPQ1eAcu4ZX3UwxQhUlfFFMNpUd83gXgjbhJh6HmB6LUNV/ieOLQuDwJO3dWJosUeMw==", - "dev": true + "integrity": "sha512-zohwelOAur+5uXtk8O3GPQ1eAcu4ZX3UwxQhUlfFFMNpUd83gXgjbhJh6HmB6LUNV/ieOLQuDwJO3dWJosUeMw==" }, "is-obj": { "version": "2.0.0", @@ -18916,6 +24787,15 @@ "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", "dev": true }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, "is-regex": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.0.tgz", @@ -18945,16 +24825,129 @@ "is-string": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.5.tgz", - "integrity": "sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ==", - "dev": true + "integrity": "sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ==" }, "is-symbol": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", + "requires": { + "has-symbols": "^1.0.1" + } + }, + "is-typed-array": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.5.tgz", + "integrity": "sha512-S+GRDgJlR3PyEbsX/Fobd9cqpZBuvUS+8asRqYDMLCb2qMzt1oz5m5oxQCxOgUDxiWsOVNi4yaF+/uvdlHlYug==", "dev": true, "requires": { + "available-typed-arrays": "^1.0.2", + "call-bind": "^1.0.2", + "es-abstract": "^1.18.0-next.2", + "foreach": "^2.0.5", "has-symbols": "^1.0.1" + }, + "dependencies": { + "es-abstract": { + "version": "1.18.3", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.3.tgz", + "integrity": "sha512-nQIr12dxV7SSxE6r6f1l3DtAeEYdsGpps13dR0TwJg1S8gyp4ZPgy3FZcHBgbiQqnoqSTb+oC+kO4UQ0C/J8vw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "get-intrinsic": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.2", + "is-callable": "^1.2.3", + "is-negative-zero": "^2.0.1", + "is-regex": "^1.1.3", + "is-string": "^1.0.6", + "object-inspect": "^1.10.3", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "string.prototype.trimend": "^1.0.4", + "string.prototype.trimstart": "^1.0.4", + "unbox-primitive": "^1.0.1" + }, + "dependencies": { + "has-symbols": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", + "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", + "dev": true + } + } + }, + "is-callable": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.3.tgz", + "integrity": "sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ==", + "dev": true + }, + "is-regex": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.3.tgz", + "integrity": "sha512-qSVXFz28HM7y+IWX6vLCsexdlvzT1PJNFSBuaQLQ5o0IEw8UDYW6/2+eCMVyIsbM8CNLX2a/QWmSpyxYEHY7CQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-symbols": "^1.0.2" + }, + "dependencies": { + "has-symbols": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", + "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", + "dev": true + } + } + }, + "is-string": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.6.tgz", + "integrity": "sha512-2gdzbKUuqtQ3lYNrUTQYoClPhm7oQu4UdpSZMp1/DGgkHBT8E2Z1l0yMdb6D4zNAxwDiMv8MdulKROJGNl0Q0w==", + "dev": true + }, + "object-inspect": { + "version": "1.10.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.10.3.tgz", + "integrity": "sha512-e5mCJlSH7poANfC8z8S9s9S2IN5/4Zb3aZ33f5s8YqoazCFzNLloLU8r5VCG+G7WoqLvAAZoVMcy3tp/3X0Plw==", + "dev": true + }, + "object.assign": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", + "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" + } + }, + "string.prototype.trimend": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", + "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + } + }, + "string.prototype.trimstart": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", + "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + } + } } }, "is-typedarray": { @@ -18962,6 +24955,12 @@ "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" }, + "is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true + }, "is-wsl": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", @@ -18988,6 +24987,18 @@ "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", "dev": true }, + "iso-url": { + "version": "0.4.7", + "resolved": "https://registry.npmjs.org/iso-url/-/iso-url-0.4.7.tgz", + "integrity": "sha512-27fFRDnPAMnHGLq36bWTpKET+eiXct3ENlCcdcMdk+mjXrb2kw3mhBUg1B7ewAC0kVzlOPhADzQgz1SE6Tglog==", + "dev": true + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, "isstream": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", @@ -19020,10 +25031,9 @@ } }, "js-sha3": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.5.tgz", - "integrity": "sha1-uvDA6MVK1ZA0R9+Wreekobynmko=", - "dev": true + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.7.tgz", + "integrity": "sha1-DU/9gALVMzqrr0oj7tL2N0yfKOc=" }, "js-tokens": { "version": "4.0.0", @@ -19118,6 +25128,15 @@ "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" }, + "json-text-sequence": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/json-text-sequence/-/json-text-sequence-0.1.1.tgz", + "integrity": "sha1-py8hfcSvxGKf/1/rME3BvVGi89I=", + "dev": true, + "requires": { + "delimit-stream": "0.1.0" + } + }, "json5": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", @@ -19139,7 +25158,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "dev": true, "requires": { "graceful-fs": "^4.1.6" } @@ -19229,6 +25247,15 @@ "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", "dev": true }, + "klaw": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz", + "integrity": "sha1-QIhDO0azsbolnXh4XY6W9zugJDk=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.9" + } + }, "latest-version": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz", @@ -19238,65 +25265,238 @@ "package-json": "^6.3.0" } }, - "lcid": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", - "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", + "lcid": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", + "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", + "dev": true, + "requires": { + "invert-kv": "^1.0.0" + } + }, + "lcov-parse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lcov-parse/-/lcov-parse-1.0.0.tgz", + "integrity": "sha1-6w1GtUER68VhrLTECO+TY73I9+A=", + "dev": true + }, + "level-codec": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/level-codec/-/level-codec-7.0.1.tgz", + "integrity": "sha512-Ua/R9B9r3RasXdRmOtd+t9TCOEIIlts+TN/7XTT2unhDaL6sJn83S3rUyljbr6lVtw49N3/yA0HHjpV6Kzb2aQ==" + }, + "level-concat-iterator": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/level-concat-iterator/-/level-concat-iterator-2.0.1.tgz", + "integrity": "sha512-OTKKOqeav2QWcERMJR7IS9CUo1sHnke2C0gkSmcR7QuEtFNLLzHQAvnMw8ykvEcv0Qtkg0p7FOwP1v9e5Smdcw==", + "dev": true + }, + "level-errors": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/level-errors/-/level-errors-1.0.5.tgz", + "integrity": "sha512-/cLUpQduF6bNrWuAC4pwtUKA5t669pCsCi2XbmojG2tFeOr9j6ShtdDCtFFQO1DRt+EVZhx9gPzP9G2bUaG4ig==", + "requires": { + "errno": "~0.1.1" + } + }, + "level-iterator-stream": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/level-iterator-stream/-/level-iterator-stream-1.3.1.tgz", + "integrity": "sha1-5Dt4sagUPm+pek9IXrjqUwNS8u0=", + "requires": { + "inherits": "^2.0.1", + "level-errors": "^1.0.3", + "readable-stream": "^1.0.33", + "xtend": "^4.0.0" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" + }, + "readable-stream": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" + } + } + }, + "level-mem": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/level-mem/-/level-mem-5.0.1.tgz", + "integrity": "sha512-qd+qUJHXsGSFoHTziptAKXoLX87QjR7v2KMbqncDXPxQuCdsQlzmyX+gwrEHhlzn08vkf8TyipYyMmiC6Gobzg==", + "dev": true, + "requires": { + "level-packager": "^5.0.3", + "memdown": "^5.0.0" + }, + "dependencies": { + "abstract-leveldown": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-6.2.3.tgz", + "integrity": "sha512-BsLm5vFMRUrrLeCcRc+G0t2qOaTzpoJQLOubq2XM72eNpjF5UdU5o/5NvlNhx95XHcAvcl8OMXr4mlg/fRgUXQ==", + "dev": true, + "requires": { + "buffer": "^5.5.0", + "immediate": "^3.2.3", + "level-concat-iterator": "~2.0.0", + "level-supports": "~1.0.0", + "xtend": "~4.0.0" + } + }, + "immediate": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.2.3.tgz", + "integrity": "sha1-0UD6j2FGWb1lQSMwl92qwlzdmRw=", + "dev": true + }, + "memdown": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/memdown/-/memdown-5.1.0.tgz", + "integrity": "sha512-B3J+UizMRAlEArDjWHTMmadet+UKwHd3UjMgGBkZcKAxAYVPS9o0Yeiha4qvz7iGiL2Sb3igUft6p7nbFWctpw==", + "dev": true, + "requires": { + "abstract-leveldown": "~6.2.1", + "functional-red-black-tree": "~1.0.1", + "immediate": "~3.2.3", + "inherits": "~2.0.1", + "ltgt": "~2.2.0", + "safe-buffer": "~5.2.0" + } + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + } + } + }, + "level-packager": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/level-packager/-/level-packager-5.1.1.tgz", + "integrity": "sha512-HMwMaQPlTC1IlcwT3+swhqf/NUO+ZhXVz6TY1zZIIZlIR0YSn8GtAAWmIvKjNY16ZkEg/JcpAuQskxsXqC0yOQ==", + "dev": true, + "requires": { + "encoding-down": "^6.3.0", + "levelup": "^4.3.2" + }, + "dependencies": { + "abstract-leveldown": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-6.2.3.tgz", + "integrity": "sha512-BsLm5vFMRUrrLeCcRc+G0t2qOaTzpoJQLOubq2XM72eNpjF5UdU5o/5NvlNhx95XHcAvcl8OMXr4mlg/fRgUXQ==", + "dev": true, + "requires": { + "buffer": "^5.5.0", + "immediate": "^3.2.3", + "level-concat-iterator": "~2.0.0", + "level-supports": "~1.0.0", + "xtend": "~4.0.0" + } + }, + "deferred-leveldown": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/deferred-leveldown/-/deferred-leveldown-5.3.0.tgz", + "integrity": "sha512-a59VOT+oDy7vtAbLRCZwWgxu2BaCfd5Hk7wxJd48ei7I+nsg8Orlb9CLG0PMZienk9BSUKgeAqkO2+Lw+1+Ukw==", + "dev": true, + "requires": { + "abstract-leveldown": "~6.2.1", + "inherits": "^2.0.3" + } + }, + "immediate": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.3.0.tgz", + "integrity": "sha512-HR7EVodfFUdQCTIeySw+WDRFJlPcLOJbXfwwZ7Oom6tjsvZ3bOkCDJHehQC3nxJrv7+f9XecwazynjU8e4Vw3Q==", + "dev": true + }, + "level-errors": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/level-errors/-/level-errors-2.0.1.tgz", + "integrity": "sha512-UVprBJXite4gPS+3VznfgDSU8PTRuVX0NXwoWW50KLxd2yw4Y1t2JUR5In1itQnudZqRMT9DlAM3Q//9NCjCFw==", + "dev": true, + "requires": { + "errno": "~0.1.1" + } + }, + "level-iterator-stream": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/level-iterator-stream/-/level-iterator-stream-4.0.2.tgz", + "integrity": "sha512-ZSthfEqzGSOMWoUGhTXdX9jv26d32XJuHz/5YnuHZzH6wldfWMOVwI9TBtKcya4BKTyTt3XVA0A3cF3q5CY30Q==", + "dev": true, + "requires": { + "inherits": "^2.0.4", + "readable-stream": "^3.4.0", + "xtend": "^4.0.2" + }, + "dependencies": { + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "dev": true + } + } + }, + "levelup": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/levelup/-/levelup-4.4.0.tgz", + "integrity": "sha512-94++VFO3qN95cM/d6eBXvd894oJE0w3cInq9USsyQzzoJxmiYzPAocNcuGCPGGjoXqDVJcr3C1jzt1TSjyaiLQ==", + "dev": true, + "requires": { + "deferred-leveldown": "~5.3.0", + "level-errors": "~2.0.0", + "level-iterator-stream": "~4.0.0", + "level-supports": "~1.0.0", + "xtend": "~4.0.0" + } + }, + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } + } + }, + "level-supports": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/level-supports/-/level-supports-1.0.1.tgz", + "integrity": "sha512-rXM7GYnW8gsl1vedTJIbzOrRv85c/2uCMpiiCzO2fndd06U/kUXEEU9evYn4zFggBOg36IsBW8LzqIpETwwQzg==", "dev": true, "requires": { - "invert-kv": "^1.0.0" - } - }, - "lcov-parse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lcov-parse/-/lcov-parse-1.0.0.tgz", - "integrity": "sha1-6w1GtUER68VhrLTECO+TY73I9+A=", - "dev": true - }, - "level-codec": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/level-codec/-/level-codec-7.0.1.tgz", - "integrity": "sha512-Ua/R9B9r3RasXdRmOtd+t9TCOEIIlts+TN/7XTT2unhDaL6sJn83S3rUyljbr6lVtw49N3/yA0HHjpV6Kzb2aQ==" - }, - "level-errors": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/level-errors/-/level-errors-1.0.5.tgz", - "integrity": "sha512-/cLUpQduF6bNrWuAC4pwtUKA5t669pCsCi2XbmojG2tFeOr9j6ShtdDCtFFQO1DRt+EVZhx9gPzP9G2bUaG4ig==", - "requires": { - "errno": "~0.1.1" - } - }, - "level-iterator-stream": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/level-iterator-stream/-/level-iterator-stream-1.3.1.tgz", - "integrity": "sha1-5Dt4sagUPm+pek9IXrjqUwNS8u0=", - "requires": { - "inherits": "^2.0.1", - "level-errors": "^1.0.3", - "readable-stream": "^1.0.33", - "xtend": "^4.0.0" + "xtend": "^4.0.2" }, "dependencies": { - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" - }, - "readable-stream": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" + "xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "dev": true } } }, @@ -19403,6 +25603,23 @@ "strip-bom": "^3.0.0" } }, + "loader-runner": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz", + "integrity": "sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==", + "dev": true + }, + "loader-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + } + }, "locate-path": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", @@ -19685,6 +25902,12 @@ "underscore": "^1.7.0" } }, + "lower-case": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz", + "integrity": "sha1-miyr0bno4K6ZOkv31YdcOcQujqw=", + "dev": true + }, "lowercase-keys": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", @@ -19700,6 +25923,12 @@ "yallist": "^3.0.2" } }, + "lru_map": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/lru_map/-/lru_map-0.3.3.tgz", + "integrity": "sha1-tcg1G5Rky9dQM1p5ZQoOwOVhGN0=", + "dev": true + }, "ltgt": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/ltgt/-/ltgt-2.2.1.tgz", @@ -19728,6 +25957,36 @@ } } }, + "map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", + "dev": true + }, + "map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "dev": true, + "requires": { + "object-visit": "^1.0.0" + } + }, + "match-all": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/match-all/-/match-all-1.2.6.tgz", + "integrity": "sha512-0EESkXiTkWzrQQntBu2uzKvLu6vVkUGz40nGPbSZuegcfE5UuSzNjLaIu76zJWuaT/2I3Z/8M06OlUOZLGwLlQ==", + "dev": true + }, + "mcl-wasm": { + "version": "0.7.8", + "resolved": "https://registry.npmjs.org/mcl-wasm/-/mcl-wasm-0.7.8.tgz", + "integrity": "sha512-qNHlYO6wuEtSoH5A8TcZfCEHtw8gGPqF6hLZpQn2SVd/Mck0ELIKOkmj072D98S9B9CI/jZybTUC96q1P2/ZDw==", + "dev": true, + "requires": { + "typescript": "^4.3.4" + } + }, "md5.js": { "version": "1.3.5", "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", @@ -19772,12 +26031,37 @@ } } }, + "memory-fs": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", + "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", + "dev": true, + "requires": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + } + }, + "memorystream": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", + "integrity": "sha1-htcJCzDORV1j+64S3aUaR93K+bI=", + "dev": true + }, "merge-descriptors": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=", "dev": true }, + "merge-source-map": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.1.0.tgz", + "integrity": "sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw==", + "dev": true, + "requires": { + "source-map": "^0.6.1" + } + }, "merge2": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", @@ -19962,6 +26246,45 @@ "minipass": "^2.9.0" } }, + "mississippi": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", + "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", + "dev": true, + "requires": { + "concat-stream": "^1.5.0", + "duplexify": "^3.4.2", + "end-of-stream": "^1.1.0", + "flush-write-stream": "^1.0.0", + "from2": "^2.1.0", + "parallel-transform": "^1.1.0", + "pump": "^3.0.0", + "pumpify": "^1.3.3", + "stream-each": "^1.1.0", + "through2": "^2.0.0" + } + }, + "mixin-deep": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", + "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", + "dev": true, + "requires": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, "mkdirp": { "version": "0.5.5", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", @@ -19980,6 +26303,15 @@ "mkdirp": "*" } }, + "mnemonist": { + "version": "0.38.3", + "resolved": "https://registry.npmjs.org/mnemonist/-/mnemonist-0.38.3.tgz", + "integrity": "sha512-2K9QYubXx/NAjv4VLq1d1Ly8pWNC5L3BrixtdkyTegXWJIqY+zLNDhhX/A+ZwWt70tB1S8H4BE8FLYEFyNoOBw==", + "dev": true, + "requires": { + "obliterator": "^1.6.1" + } + }, "mocha": { "version": "8.1.2", "resolved": "https://registry.npmjs.org/mocha/-/mocha-8.1.2.tgz", @@ -20212,22 +26544,18 @@ "integrity": "sha512-/P/HtrlvBxY4o/PzXY9cCNBrdylDNxg7gnrv2sMNxj+UJ2m8jSpl0/A6fuJeNAWr99ZvGWH8XCbE0vmnM5KupQ==", "dev": true }, - "mold-source-map": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/mold-source-map/-/mold-source-map-0.4.0.tgz", - "integrity": "sha1-z2fgsxxHq5uttcnCVlGGISe7gxc=", + "move-concurrently": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", + "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", "dev": true, "requires": { - "convert-source-map": "^1.1.0", - "through": "~2.2.7" - }, - "dependencies": { - "through": { - "version": "2.2.7", - "resolved": "https://registry.npmjs.org/through/-/through-2.2.7.tgz", - "integrity": "sha1-bo4hIAGR1OtqmfbwEN9Gqhxusr0=", - "dev": true - } + "aproba": "^1.1.1", + "copy-concurrently": "^1.0.0", + "fs-write-stream-atomic": "^1.0.8", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.3" } }, "ms": { @@ -20278,6 +26606,17 @@ } } }, + "murmur-128": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/murmur-128/-/murmur-128-0.2.1.tgz", + "integrity": "sha512-WseEgiRkI6aMFBbj8Cg9yBj/y+OdipwVC7zUo3W2W1JAJITwouUOtpqsmGSg67EQmwwSyod7hsVsWY5LsrfQVg==", + "dev": true, + "requires": { + "encode-utf8": "^1.0.2", + "fmix": "^0.1.0", + "imul": "^1.0.0" + } + }, "mute-stream": { "version": "0.0.7", "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", @@ -20296,6 +26635,25 @@ "integrity": "sha1-DMj20OK2IrR5xA1JnEbWS3Vcb18=", "dev": true }, + "nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + } + }, "natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", @@ -20372,6 +26730,15 @@ "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", "dev": true }, + "no-case": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz", + "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==", + "dev": true, + "requires": { + "lower-case": "^1.1.1" + } + }, "node-addon-api": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz", @@ -20395,6 +26762,24 @@ "lodash.toarray": "^4.4.0" } }, + "node-environment-flags": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/node-environment-flags/-/node-environment-flags-1.0.6.tgz", + "integrity": "sha512-5Evy2epuL+6TM0lCQGpFIj6KwiEsGh1SrHUhTbNX+sLbBtjidPZFAnVK9y5yU1+h//RitLbRHTIMyxQPtxMdHw==", + "dev": true, + "requires": { + "object.getownpropertydescriptors": "^2.0.3", + "semver": "^5.7.0" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } + } + }, "node-fetch": { "version": "1.7.3", "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz", @@ -20409,6 +26794,86 @@ "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.2.3.tgz", "integrity": "sha512-MN6ZpzmfNCRM+3t57PTJHgHyw/h4OWnZ6mR8P5j/uZtqQr46RRuDE/P+g3n0YR/AiYXeWixZZzaip77gdICfRg==" }, + "node-libs-browser": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz", + "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==", + "dev": true, + "requires": { + "assert": "^1.1.1", + "browserify-zlib": "^0.2.0", + "buffer": "^4.3.0", + "console-browserify": "^1.1.0", + "constants-browserify": "^1.0.0", + "crypto-browserify": "^3.11.0", + "domain-browser": "^1.1.1", + "events": "^3.0.0", + "https-browserify": "^1.0.0", + "os-browserify": "^0.3.0", + "path-browserify": "0.0.1", + "process": "^0.11.10", + "punycode": "^1.2.4", + "querystring-es3": "^0.2.0", + "readable-stream": "^2.3.3", + "stream-browserify": "^2.0.1", + "stream-http": "^2.7.2", + "string_decoder": "^1.0.0", + "timers-browserify": "^2.0.4", + "tty-browserify": "0.0.0", + "url": "^0.11.0", + "util": "^0.11.0", + "vm-browserify": "^1.0.1" + }, + "dependencies": { + "browserify-zlib": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", + "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", + "dev": true, + "requires": { + "pako": "~1.0.5" + } + }, + "buffer": { + "version": "4.9.2", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", + "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", + "dev": true, + "requires": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4", + "isarray": "^1.0.0" + } + }, + "pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", + "dev": true + }, + "process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", + "dev": true + }, + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "dev": true + }, + "util": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", + "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", + "dev": true, + "requires": { + "inherits": "2.0.3" + } + } + } + }, "node-releases": { "version": "1.1.71", "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.71.tgz", @@ -20424,6 +26889,11 @@ "is": "^3.2.1" } }, + "nofilter": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/nofilter/-/nofilter-1.0.4.tgz", + "integrity": "sha512-N8lidFp+fCz+TD51+haYdbDGrcBWwuHX40F5+z0qkUjMJ5Tp+rdSuAkMJ9N9eoolDlEVTf6u5icM+cNKkKW2mA==" + }, "nopt": { "version": "3.0.6", "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", @@ -20465,6 +26935,24 @@ "integrity": "sha512-0NLtR71o4k6GLP+mr6Ty34c5GA6CMoEsncKJxvQd8NzPxaHRJNnb5gZE8R1XF4CPIS7QPHLJ74IFszwtNVAHVQ==", "dev": true }, + "npm-conf": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/npm-conf/-/npm-conf-1.1.3.tgz", + "integrity": "sha512-Yic4bZHJOt9RCFbRP3GgpqhScOY4HH3V2P8yBj6CeYq118Qr+BLXqT2JvpJ00mryLESpgOxf5XlFv4ZjXxLScw==", + "dev": true, + "requires": { + "config-chain": "^1.1.11", + "pify": "^3.0.0" + }, + "dependencies": { + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true + } + } + }, "npm-run-path": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", @@ -20507,17 +26995,54 @@ } } }, - "oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==" - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true - }, + "oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==" + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true + }, + "object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "dev": true, + "requires": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, "object-hash": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-2.0.3.tgz", @@ -20536,6 +27061,15 @@ "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", "dev": true }, + "object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "dev": true, + "requires": { + "isobject": "^3.0.0" + } + }, "object.assign": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", @@ -20548,6 +27082,118 @@ "object-keys": "^1.0.11" } }, + "object.getownpropertydescriptors": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.2.tgz", + "integrity": "sha512-WtxeKSzfBjlzL+F9b7M7hewDzMwy+C8NRssHd1YrNlzHzIDrXcXiNOMrezdAEM4UXixgV+vvnyBeN7Rygl2ttQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.2" + }, + "dependencies": { + "es-abstract": { + "version": "1.18.3", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.3.tgz", + "integrity": "sha512-nQIr12dxV7SSxE6r6f1l3DtAeEYdsGpps13dR0TwJg1S8gyp4ZPgy3FZcHBgbiQqnoqSTb+oC+kO4UQ0C/J8vw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "get-intrinsic": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.2", + "is-callable": "^1.2.3", + "is-negative-zero": "^2.0.1", + "is-regex": "^1.1.3", + "is-string": "^1.0.6", + "object-inspect": "^1.10.3", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "string.prototype.trimend": "^1.0.4", + "string.prototype.trimstart": "^1.0.4", + "unbox-primitive": "^1.0.1" + } + }, + "has-symbols": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", + "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", + "dev": true + }, + "is-callable": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.3.tgz", + "integrity": "sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ==", + "dev": true + }, + "is-regex": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.3.tgz", + "integrity": "sha512-qSVXFz28HM7y+IWX6vLCsexdlvzT1PJNFSBuaQLQ5o0IEw8UDYW6/2+eCMVyIsbM8CNLX2a/QWmSpyxYEHY7CQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-symbols": "^1.0.2" + } + }, + "is-string": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.6.tgz", + "integrity": "sha512-2gdzbKUuqtQ3lYNrUTQYoClPhm7oQu4UdpSZMp1/DGgkHBT8E2Z1l0yMdb6D4zNAxwDiMv8MdulKROJGNl0Q0w==", + "dev": true + }, + "object-inspect": { + "version": "1.10.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.10.3.tgz", + "integrity": "sha512-e5mCJlSH7poANfC8z8S9s9S2IN5/4Zb3aZ33f5s8YqoazCFzNLloLU8r5VCG+G7WoqLvAAZoVMcy3tp/3X0Plw==", + "dev": true + }, + "object.assign": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", + "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" + } + }, + "string.prototype.trimend": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", + "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + } + }, + "string.prototype.trimstart": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", + "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + } + } + } + }, + "object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, "object.values": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.1.tgz", @@ -20560,6 +27206,12 @@ "has": "^1.0.3" } }, + "obliterator": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/obliterator/-/obliterator-1.6.1.tgz", + "integrity": "sha512-9WXswnqINnnhOG/5SLimUlzuU1hFJUc8zkwyD59Sd+dPOMf05PmnYG/d6Q7HZ+KmgkZJa1PxRso6QdM3sTNHig==", + "dev": true + }, "oboe": { "version": "2.1.4", "resolved": "https://registry.npmjs.org/oboe/-/oboe-2.1.4.tgz", @@ -20632,6 +27284,12 @@ "integrity": "sha1-DxMEcVhM0zURxew4yNWSE/msXiA=", "dev": true }, + "os-browserify": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", + "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=", + "dev": true + }, "os-locale": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", @@ -20663,12 +27321,38 @@ "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", "dev": true }, + "p-event": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/p-event/-/p-event-2.3.1.tgz", + "integrity": "sha512-NQCqOFhbpVTMX4qMe8PF8lbGtzZ+LCiN7pcNrb/413Na7+TRoe1xkKUzuWa/YEJdGQ0FvKtj35EEbDoVPO2kbA==", + "dev": true, + "requires": { + "p-timeout": "^2.0.1" + }, + "dependencies": { + "p-timeout": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-2.0.1.tgz", + "integrity": "sha512-88em58dDVB/KzPEx1X0N3LwFfYZPyDc4B6eF38M1rk9VTZMbxXXgjugz8mmwpS9Ox4BDZ+t6t3QP5+/gazweIA==", + "dev": true, + "requires": { + "p-finally": "^1.0.0" + } + } + } + }, "p-finally": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", "dev": true }, + "p-is-promise": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-1.1.0.tgz", + "integrity": "sha1-nJRWmJ6fZYgBewQ01WCXZ1w9oF4=", + "dev": true + }, "p-limit": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", @@ -20772,6 +27456,26 @@ "integrity": "sha1-8/dSL073gjSNqBYbrZ7P1Rv4OnU=", "dev": true }, + "parallel-transform": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.2.0.tgz", + "integrity": "sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==", + "dev": true, + "requires": { + "cyclist": "^1.0.1", + "inherits": "^2.0.3", + "readable-stream": "^2.1.5" + } + }, + "param-case": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz", + "integrity": "sha1-35T9jPZTHs915r75oIWPvHK+Ikc=", + "dev": true, + "requires": { + "no-case": "^2.2.0" + } + }, "parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", @@ -20837,6 +27541,25 @@ "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", "dev": true }, + "pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", + "dev": true + }, + "path-browserify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", + "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==", + "dev": true + }, + "path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", + "dev": true, + "optional": true + }, "path-exists": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", @@ -20939,48 +27662,154 @@ "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", "dev": true }, - "pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "dev": true, + "requires": { + "pinkie": "^2.0.0" + } + }, + "pkg-dir": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", + "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", + "dev": true, + "requires": { + "find-up": "^2.1.0" + }, + "dependencies": { + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "requires": { + "locate-path": "^2.0.0" + } + } + } + }, + "please-upgrade-node": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz", + "integrity": "sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg==", + "dev": true, + "requires": { + "semver-compare": "^1.0.0" + } + }, + "pluralize": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-7.0.0.tgz", + "integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==", + "dev": true + }, + "posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", + "dev": true + }, + "postcss": { + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, + "dependencies": { + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-modules-extract-imports": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-2.0.0.tgz", + "integrity": "sha512-LaYLDNS4SG8Q5WAWqIJgdHPJrDDr/Lv775rMBFUbgjTz6j34lUznACHcdRWroPvXANP2Vj7yNK57vp9eFqzLWQ==", + "dev": true, + "requires": { + "postcss": "^7.0.5" + } + }, + "postcss-modules-local-by-default": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-2.0.6.tgz", + "integrity": "sha512-oLUV5YNkeIBa0yQl7EYnxMgy4N6noxmiwZStaEJUSe2xPMcdNc8WmBQuQCx18H5psYbVxz8zoHk0RAAYZXP9gA==", + "dev": true, + "requires": { + "postcss": "^7.0.6", + "postcss-selector-parser": "^6.0.0", + "postcss-value-parser": "^3.3.1" + } + }, + "postcss-modules-scope": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-2.2.0.tgz", + "integrity": "sha512-YyEgsTMRpNd+HmyC7H/mh3y+MeFWevy7V1evVhJWewmMbjDHIbZbOXICC2y+m1xI1UVfIT1HMW/O04Hxyu9oXQ==", "dev": true, "requires": { - "pinkie": "^2.0.0" + "postcss": "^7.0.6", + "postcss-selector-parser": "^6.0.0" } }, - "pkg-dir": { + "postcss-modules-values": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", - "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", + "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-2.0.0.tgz", + "integrity": "sha512-Ki7JZa7ff1N3EIMlPnGTZfUMe69FFwiQPnVSXC9mnn3jozCRBYIxiZd44yJOV2AmabOo4qFf8s0dC/+lweG7+w==", "dev": true, "requires": { - "find-up": "^2.1.0" - }, - "dependencies": { - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, - "requires": { - "locate-path": "^2.0.0" - } - } + "icss-replace-symbols": "^1.1.0", + "postcss": "^7.0.6" } }, - "please-upgrade-node": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz", - "integrity": "sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg==", + "postcss-selector-parser": { + "version": "6.0.6", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.6.tgz", + "integrity": "sha512-9LXrvaaX3+mcv5xkg5kFwqSzSH1JIObIx51PrndZwlmznwXRfxMddDvo9gve3gVR8ZTKgoFDdWkbRFmEhT4PMg==", "dev": true, "requires": { - "semver-compare": "^1.0.0" + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" } }, - "pluralize": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-7.0.0.tgz", - "integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==", + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", "dev": true }, "precond": { @@ -21112,6 +27941,30 @@ "integrity": "sha512-hjGrh+P926p4R4WbaB6OckyRtO0F0/lQBiT+0gnxjV+5kjPBrfVBFCsCLbMqVQeydvIoouYTCmmEURiH3R1Bdg==", "dev": true }, + "pretty-error": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-2.1.2.tgz", + "integrity": "sha512-EY5oDzmsX5wvuynAByrmY0P0hcp+QpnAKbJng2A2MPjVKXCxrDSUkzghVJ4ZGPIv+JC4gX8fPUWscC0RtjsWGw==", + "dev": true, + "requires": { + "lodash": "^4.17.20", + "renderkid": "^2.0.4" + }, + "dependencies": { + "lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + } + } + }, + "printj": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/printj/-/printj-1.1.2.tgz", + "integrity": "sha512-zA2SmoLaxZyArQTOPj5LXecR+RagfPSU5Kw1qP+jkWeNlrq+eJZyY2oS68SU1Z/7/myXM4lo9716laOFAVStCQ==", + "dev": true + }, "process": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/process/-/process-0.5.2.tgz", @@ -21146,6 +27999,12 @@ "promise": "^7.3.1" } }, + "promise-inflight": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", + "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", + "dev": true + }, "promise-to-callback": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/promise-to-callback/-/promise-to-callback-1.0.0.tgz", @@ -21186,6 +28045,12 @@ } } }, + "proto-list": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", + "integrity": "sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk=", + "dev": true + }, "proxy-addr": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz", @@ -21336,6 +28201,18 @@ "strict-uri-encode": "^1.0.0" } }, + "querystring": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", + "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", + "dev": true + }, + "querystring-es3": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", + "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", + "dev": true + }, "quick-lru": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", @@ -21474,6 +28351,16 @@ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz", "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==" }, + "regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "dev": true, + "requires": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + } + }, "regexpp": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.1.0.tgz", @@ -21498,6 +28385,150 @@ "rc": "^1.2.8" } }, + "relateurl": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", + "integrity": "sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=", + "dev": true + }, + "remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", + "dev": true, + "optional": true + }, + "renderkid": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-2.0.7.tgz", + "integrity": "sha512-oCcFyxaMrKsKcTY59qnCAtmDVSLfPbrv6A3tVbPdFMMrv5jaK10V6m40cKsoPNhAqN6rmHW9sswW4o3ruSrwUQ==", + "dev": true, + "requires": { + "css-select": "^4.1.3", + "dom-converter": "^0.2.0", + "htmlparser2": "^6.1.0", + "lodash": "^4.17.21", + "strip-ansi": "^3.0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "css-select": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.1.3.tgz", + "integrity": "sha512-gT3wBNd9Nj49rAbmtFHj1cljIAOLYSX1nZ8CB7TBO3INYckygm5B7LISU/szY//YmdiSLbJvDLOx9VnMVpMBxA==", + "dev": true, + "requires": { + "boolbase": "^1.0.0", + "css-what": "^5.0.0", + "domhandler": "^4.2.0", + "domutils": "^2.6.0", + "nth-check": "^2.0.0" + } + }, + "css-what": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-5.0.1.tgz", + "integrity": "sha512-FYDTSHb/7KXsWICVsxdmiExPjCfRC4qRFBdVwv7Ax9hMnvMmEjP9RfxTEZ3qPZGmADDn2vAKSo9UcN1jKVYscg==", + "dev": true + }, + "dom-serializer": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.3.2.tgz", + "integrity": "sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig==", + "dev": true, + "requires": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + } + }, + "domelementtype": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz", + "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==", + "dev": true + }, + "domhandler": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.2.0.tgz", + "integrity": "sha512-zk7sgt970kzPks2Bf+dwT/PLzghLnsivb9CcxkvR8Mzr66Olr0Ofd8neSbglHJHaHa2MadfoSdNlKYAaafmWfA==", + "dev": true, + "requires": { + "domelementtype": "^2.2.0" + } + }, + "domutils": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.7.0.tgz", + "integrity": "sha512-8eaHa17IwJUPAiB+SoTYBo5mCdeMgdcAoXJ59m6DT1vw+5iLS3gNoqYaRowaBKtGVrOF1Jz4yDTgYKLK2kvfJg==", + "dev": true, + "requires": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + } + }, + "entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "dev": true + }, + "htmlparser2": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz", + "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==", + "dev": true, + "requires": { + "domelementtype": "^2.0.1", + "domhandler": "^4.0.0", + "domutils": "^2.5.2", + "entities": "^2.0.0" + } + }, + "lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "nth-check": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.0.0.tgz", + "integrity": "sha512-i4sc/Kj8htBrAiH1viZ0TgU8Y5XqCaV/FziYK6TBczxmeKm3AEFWqqF3195yKudrarqy7Zu80Ra5dobFjn9X/Q==", + "dev": true, + "requires": { + "boolbase": "^1.0.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + } + } + }, + "repeat-element": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz", + "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==", + "dev": true + }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "dev": true + }, "request": { "version": "2.88.0", "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", @@ -21531,6 +28562,12 @@ "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", "dev": true }, + "require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true + }, "require-main-filename": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", @@ -21557,6 +28594,12 @@ "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", "dev": true }, + "resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", + "dev": true + }, "responselike": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", @@ -21576,6 +28619,12 @@ "signal-exit": "^3.0.2" } }, + "ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "dev": true + }, "reusify": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", @@ -21627,6 +28676,15 @@ "integrity": "sha512-DEqnSRTDw/Tc3FXf49zedI638Z9onwUotBMiUFKmrO2sdFKIbXamXGQ3Axd4qgphxKB4kw/qP1w5kTxnfU1B9Q==", "dev": true }, + "run-queue": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", + "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", + "dev": true, + "requires": { + "aproba": "^1.1.1" + } + }, "rustbn.js": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/rustbn.js/-/rustbn.js-0.2.0.tgz", @@ -21654,6 +28712,15 @@ "events": "^3.0.0" } }, + "safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "dev": true, + "requires": { + "ret": "~0.1.10" + } + }, "safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", @@ -21764,6 +28831,17 @@ } } }, + "schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "dev": true, + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + } + }, "scrypt-js": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-2.0.3.tgz", @@ -21857,6 +28935,12 @@ "resolved": "https://registry.npmjs.org/semaphore/-/semaphore-1.1.0.tgz", "integrity": "sha512-O4OZEaNtkMd/K0i6js9SL+gqy0ZCBMgUvlSqHKi4IBdjhe7wB8pwztUk1BbZ1fmrvpwFrPbHzqd2w5pTcJH6LA==" }, + "semaphore-async-await": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/semaphore-async-await/-/semaphore-async-await-1.5.1.tgz", + "integrity": "sha1-hXvvXjZEYBykuVcLh+nfXKEpdPo=", + "dev": true + }, "semver": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", @@ -21999,6 +29083,29 @@ "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=" }, + "set-value": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", + "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, "setimmediate": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", @@ -22045,6 +29152,25 @@ "rechoir": "^0.6.2" } }, + "side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + }, + "dependencies": { + "object-inspect": { + "version": "1.10.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.10.3.tgz", + "integrity": "sha512-e5mCJlSH7poANfC8z8S9s9S2IN5/4Zb3aZ33f5s8YqoazCFzNLloLU8r5VCG+G7WoqLvAAZoVMcy3tp/3X0Plw==", + "dev": true + } + } + }, "signal-exit": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", @@ -22057,40 +29183,168 @@ "integrity": "sha1-c0TLuLbib7J9ZrL8hvn21Zl1IcY=", "dev": true }, - "simple-get": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-2.8.1.tgz", - "integrity": "sha512-lSSHRSw3mQNUGPAYRqo7xy9dhKmxFXIjLjp4KHpf99GEH2VH7C3AM+Qfx6du6jhfUi6Vm7XnbEVEf7Wb6N8jRw==", + "simple-get": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-2.8.1.tgz", + "integrity": "sha512-lSSHRSw3mQNUGPAYRqo7xy9dhKmxFXIjLjp4KHpf99GEH2VH7C3AM+Qfx6du6jhfUi6Vm7XnbEVEf7Wb6N8jRw==", + "dev": true, + "requires": { + "decompress-response": "^3.3.0", + "once": "^1.3.1", + "simple-concat": "^1.0.0" + } + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + }, + "slice-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", + "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.0", + "astral-regex": "^1.0.0", + "is-fullwidth-code-point": "^2.0.0" + } + }, + "smart-buffer": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.1.0.tgz", + "integrity": "sha512-iVICrxOzCynf/SNaBQCw34eM9jROU/s5rzIhpOvzhzuYHfJR/DhZfDkXiZSgKXfgv26HT3Yni3AV/DGw0cGnnw==", + "dev": true + }, + "snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "dev": true, + "requires": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } + } + }, + "snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", "dev": true, "requires": { - "decompress-response": "^3.3.0", - "once": "^1.3.1", - "simple-concat": "^1.0.0" + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } } }, - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true - }, - "slice-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", - "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", + "snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", "dev": true, "requires": { - "ansi-styles": "^3.2.0", - "astral-regex": "^1.0.0", - "is-fullwidth-code-point": "^2.0.0" + "kind-of": "^3.2.0" + }, + "dependencies": { + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } } }, - "smart-buffer": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.1.0.tgz", - "integrity": "sha512-iVICrxOzCynf/SNaBQCw34eM9jROU/s5rzIhpOvzhzuYHfJR/DhZfDkXiZSgKXfgv26HT3Yni3AV/DGw0cGnnw==", - "dev": true - }, "snyk": { "version": "1.369.0", "resolved": "https://registry.npmjs.org/snyk/-/snyk-1.369.0.tgz", @@ -23070,6 +30324,65 @@ } } }, + "solc": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/solc/-/solc-0.7.3.tgz", + "integrity": "sha512-GAsWNAjGzIDg7VxzP6mPjdurby3IkGCjQcM8GFYZT6RyaoUZKmMU6Y7YwG+tFGhv7dwZ8rmR4iwFDrrD99JwqA==", + "dev": true, + "requires": { + "command-exists": "^1.2.8", + "commander": "3.0.2", + "follow-redirects": "^1.12.1", + "fs-extra": "^0.30.0", + "js-sha3": "0.8.0", + "memorystream": "^0.3.1", + "require-from-string": "^2.0.0", + "semver": "^5.5.0", + "tmp": "0.0.33" + }, + "dependencies": { + "commander": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/commander/-/commander-3.0.2.tgz", + "integrity": "sha512-Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow==", + "dev": true + }, + "fs-extra": { + "version": "0.30.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.30.0.tgz", + "integrity": "sha1-8jP/zAjU2n1DLapEl3aYnbHfk/A=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^2.1.0", + "klaw": "^1.0.0", + "path-is-absolute": "^1.0.0", + "rimraf": "^2.2.8" + } + }, + "js-sha3": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz", + "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==", + "dev": true + }, + "jsonfile": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", + "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } + } + }, "solhint": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/solhint/-/solhint-3.1.0.tgz", @@ -23809,12 +31122,49 @@ } } }, + "sort-keys": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz", + "integrity": "sha1-RBttTTRnmPG05J6JIK37oOVD+a0=", + "dev": true, + "requires": { + "is-plain-obj": "^1.0.0" + } + }, + "sort-keys-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/sort-keys-length/-/sort-keys-length-1.0.1.tgz", + "integrity": "sha1-nLb09OnkgVWmqgZx7dM2/xR5oYg=", + "dev": true, + "requires": { + "sort-keys": "^1.0.0" + } + }, + "source-list-map": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", + "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==", + "dev": true + }, "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true }, + "source-map-resolve": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", + "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", + "dev": true, + "requires": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + }, "source-map-support": { "version": "0.5.19", "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", @@ -23833,6 +31183,12 @@ } } }, + "source-map-url": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", + "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==", + "dev": true + }, "spdx-correct": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", @@ -23871,6 +31227,15 @@ "integrity": "sha1-bIOv82kvphJW4M0ZfgXp3hV2kaY=", "dev": true }, + "split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "dev": true, + "requires": { + "extend-shallow": "^3.0.0" + } + }, "sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", @@ -23913,18 +31278,98 @@ "tweetnacl": "~0.14.0" } }, + "ssri": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.2.tgz", + "integrity": "sha512-cepbSq/neFK7xB6A50KHN0xHDotYzq58wWCa5LeWqnPrHG8GzfEjO/4O8kpmcGW+oaxkvhEJCWgbgNk4/ZV93Q==", + "dev": true, + "requires": { + "figgy-pudding": "^3.5.1" + } + }, + "stacktrace-parser": { + "version": "0.1.10", + "resolved": "https://registry.npmjs.org/stacktrace-parser/-/stacktrace-parser-0.1.10.tgz", + "integrity": "sha512-KJP1OCML99+8fhOHxwwzyWrlUuVX5GQ0ZpJTd1DFXhdkrvg1szxfHhawXUZ3g9TkXORQd4/WG68jMlQZ2p8wlg==", + "dev": true, + "requires": { + "type-fest": "^0.7.1" + }, + "dependencies": { + "type-fest": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.7.1.tgz", + "integrity": "sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg==", + "dev": true + } + } + }, + "static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "dev": true, + "requires": { + "define-property": "^0.2.5", + "object-copy": "^0.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, "statuses": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", "dev": true }, + "stream-browserify": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", + "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", + "dev": true, + "requires": { + "inherits": "~2.0.1", + "readable-stream": "^2.0.2" + } + }, "stream-buffers": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/stream-buffers/-/stream-buffers-3.0.2.tgz", "integrity": "sha512-DQi1h8VEBA/lURbSwFtEHnSTb9s2/pwLEaFuNhXwy1Dx3Sa0lOuYT2yNUr4/j2fs8oCAMANtrZ5OrPZtyVs3MQ==", "dev": true }, + "stream-each": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz", + "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "stream-shift": "^1.0.0" + } + }, + "stream-http": { + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", + "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", + "dev": true, + "requires": { + "builtin-status-codes": "^3.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.3.6", + "to-arraybuffer": "^1.0.0", + "xtend": "^4.0.0" + } + }, "stream-shift": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", @@ -24090,6 +31535,15 @@ "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", "dev": true }, + "strip-outer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/strip-outer/-/strip-outer-1.0.1.tgz", + "integrity": "sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg==", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.2" + } + }, "super-split": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/super-split/-/super-split-1.1.0.tgz", @@ -24218,6 +31672,12 @@ } } }, + "tapable": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", + "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", + "dev": true + }, "tar": { "version": "4.4.13", "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.13.tgz", @@ -24278,6 +31738,50 @@ "integrity": "sha512-a6sumDlzyHVJWb8+YofY4TW112G6p2FCPEAFk+59gIYHv3XHRhm9ltVQ9kli4hNWeQBwSpe8cRN25x0ROunMOw==", "dev": true }, + "terser": { + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.0.tgz", + "integrity": "sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw==", + "dev": true, + "requires": { + "commander": "^2.20.0", + "source-map": "~0.6.1", + "source-map-support": "~0.5.12" + }, + "dependencies": { + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + } + } + }, + "terser-webpack-plugin": { + "version": "1.4.5", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.5.tgz", + "integrity": "sha512-04Rfe496lN8EYruwi6oPQkG0vo8C+HT49X687FZnpPF0qMAIHONI6HEXYPKDOE8e5HjXTyKfqRd/agHtH0kOtw==", + "dev": true, + "requires": { + "cacache": "^12.0.2", + "find-cache-dir": "^2.1.0", + "is-wsl": "^1.1.0", + "schema-utils": "^1.0.0", + "serialize-javascript": "^4.0.0", + "source-map": "^0.6.1", + "terser": "^4.1.2", + "webpack-sources": "^1.4.0", + "worker-farm": "^1.7.0" + }, + "dependencies": { + "is-wsl": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", + "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", + "dev": true + } + } + }, "text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", @@ -24321,6 +31825,15 @@ "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=", "dev": true }, + "timers-browserify": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.12.tgz", + "integrity": "sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==", + "dev": true, + "requires": { + "setimmediate": "^1.0.4" + } + }, "tmp": { "version": "0.0.33", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", @@ -24330,6 +31843,12 @@ "os-tmpdir": "~1.0.2" } }, + "to-arraybuffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", + "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=", + "dev": true + }, "to-buffer": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/to-buffer/-/to-buffer-1.1.1.tgz", @@ -24341,12 +31860,50 @@ "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=" }, + "to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, "to-readable-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", "dev": true }, + "to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "dev": true, + "requires": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" + } + }, "to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", @@ -24368,6 +31925,12 @@ "integrity": "sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w==", "dev": true }, + "toposort": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/toposort/-/toposort-1.0.7.tgz", + "integrity": "sha1-LmhELZ9k7HILjMieZEOsbKqVACk=", + "dev": true + }, "tough-cookie": { "version": "2.4.3", "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", @@ -24395,6 +31958,21 @@ "resolved": "https://registry.npmjs.org/trim/-/trim-0.0.1.tgz", "integrity": "sha1-WFhUf2spB1fulczMZm+1AITEYN0=" }, + "trim-repeated": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/trim-repeated/-/trim-repeated-1.0.0.tgz", + "integrity": "sha1-42RqLqTokTEr9+rObPsFOAvAHCE=", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.2" + } + }, + "true-case-path": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/true-case-path/-/true-case-path-2.2.1.tgz", + "integrity": "sha512-0z3j8R7MCjy10kc/g+qg7Ln3alJTodw9aDuVWZa3uiWqfuBMKeAeP2ocWcxoyM3D73yz3Jt/Pu4qPr4wHSdB/Q==", + "dev": true + }, "truffle": { "version": "5.1.49", "resolved": "https://registry.npmjs.org/truffle/-/truffle-5.1.49.tgz", @@ -24436,12 +32014,17 @@ } } }, - "try-require": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/try-require/-/try-require-1.2.1.tgz", - "integrity": "sha1-NEiaLKwMCcHMEO2RugEVlNQzO+I=", + "ts-essentials": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/ts-essentials/-/ts-essentials-2.0.12.tgz", + "integrity": "sha512-3IVX4nI6B5cc31/GFFE+i8ey/N2eA0CZDbo6n0yrz0zDX8ZJ8djmU1p+XRz7G3is0F3bB3pu2pAroFdAWQKU3w==", "dev": true }, + "ts-interface-checker": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", + "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==" + }, "tsconfig-paths": { "version": "3.9.0", "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.9.0.tgz", @@ -24474,6 +32057,12 @@ "integrity": "sha1-4igPXoF/i/QnVlf9D5rr1E9aJ4Y=", "dev": true }, + "tty-browserify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", + "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=", + "dev": true + }, "tunnel": { "version": "0.0.6", "resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz", @@ -24493,6 +32082,12 @@ "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" }, + "tweetnacl-util": { + "version": "0.15.1", + "resolved": "https://registry.npmjs.org/tweetnacl-util/-/tweetnacl-util-0.15.1.tgz", + "integrity": "sha512-RKJBIj8lySrShN4w6i/BonWp2Z/uxwC3h4y7xsRrpP59ZboCd0GpEVsOnMDYLMmKBpYhb5TgHzZXy7wTfYFBRw==", + "dev": true + }, "type": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", @@ -24547,6 +32142,12 @@ } } }, + "typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", + "dev": true + }, "typedarray-to-buffer": { "version": "3.1.5", "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", @@ -24556,6 +32157,12 @@ "is-typedarray": "^1.0.0" } }, + "typescript": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.3.4.tgz", + "integrity": "sha512-uauPG7XZn9F/mo+7MrsRjyvbxFpzemRjKEZXS4AK83oP2KKOJPvb+9cO/gmnv8arWZvhnjVOXz7B49m1l0e9Ew==", + "dev": true + }, "uglify-js": { "version": "3.10.0", "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.10.0.tgz", @@ -24573,7 +32180,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==", - "dev": true, "requires": { "function-bind": "^1.1.1", "has-bigints": "^1.0.1", @@ -24584,8 +32190,7 @@ "has-symbols": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", - "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", - "dev": true + "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==" } } }, @@ -24605,6 +32210,36 @@ "integrity": "sha512-N4P+Q/BuyuEKFJ43B9gYuOj4TQUHXX+j2FqguVOpjkssLUUrnJofCcBccJSCoeturDoZU6GorDTHSvUDlSQbTg==", "dev": true }, + "union-value": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", + "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", + "dev": true, + "requires": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^2.0.1" + } + }, + "unique-filename": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", + "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", + "dev": true, + "requires": { + "unique-slug": "^2.0.0" + } + }, + "unique-slug": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", + "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", + "dev": true, + "requires": { + "imurmurhash": "^0.1.4" + } + }, "unique-string": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", @@ -24617,8 +32252,7 @@ "universalify": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "dev": true + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" }, "unpipe": { "version": "1.0.0", @@ -24626,6 +32260,53 @@ "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", "dev": true }, + "unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "dev": true, + "requires": { + "has-value": "^0.3.1", + "isobject": "^3.0.0" + }, + "dependencies": { + "has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "dev": true, + "requires": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "dependencies": { + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dev": true, + "requires": { + "isarray": "1.0.0" + } + } + } + }, + "has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", + "dev": true + } + } + }, + "upath": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", + "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", + "dev": true, + "optional": true + }, "update-notifier": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-4.1.0.tgz", @@ -24708,6 +32389,12 @@ } } }, + "upper-case": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz", + "integrity": "sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg=", + "dev": true + }, "uri-js": { "version": "4.2.2", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", @@ -24716,6 +32403,30 @@ "punycode": "^2.1.0" } }, + "urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", + "dev": true + }, + "url": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", + "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", + "dev": true, + "requires": { + "punycode": "1.3.2", + "querystring": "0.2.0" + }, + "dependencies": { + "punycode": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", + "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", + "dev": true + } + } + }, "url-parse-lax": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", @@ -24737,16 +32448,64 @@ "integrity": "sha1-FQWgOiiaSMvXpDTvuu7FBV9WM6k=", "dev": true }, + "use": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", + "dev": true + }, + "utf-8-validate": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.5.tgz", + "integrity": "sha512-+pnxRYsS/axEpkrrEpzYfNZGXp0IjC/9RIxwM5gntY4Koi8SHmUGSfxfWqxZdRxrtaoVstuOzUp/rbs3JSPELQ==", + "dev": true, + "requires": { + "node-gyp-build": "^4.2.0" + } + }, "utf8": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/utf8/-/utf8-3.0.0.tgz", "integrity": "sha512-E8VjFIQ/TyQgp+TZfS6l8yp/xWppSAHzidGiRrqe4bK4XP9pTRyKFgGJpO3SN7zdX4DeomTrwaseCHovfpFcqQ==" }, + "util": { + "version": "0.12.4", + "resolved": "https://registry.npmjs.org/util/-/util-0.12.4.tgz", + "integrity": "sha512-bxZ9qtSlGUWSOy9Qa9Xgk11kSslpuZwaxCg4sNIDj6FLucDab2JxnHwyNTCpHMtK1MjoQiWQ6DiUMZYbSrO+Sw==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "is-arguments": "^1.0.4", + "is-generator-function": "^1.0.7", + "is-typed-array": "^1.1.3", + "safe-buffer": "^5.1.2", + "which-typed-array": "^1.1.2" + } + }, "util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" }, + "util.promisify": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.1.1.tgz", + "integrity": "sha512-/s3UsZUrIfa6xDhr7zZhnE9SLQ5RIXyYfiVnMMyMDzOc8WhWN4Nbh36H842OyurKbCDAesZOJaVyvmSl6fhGQw==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "for-each": "^0.3.3", + "has-symbols": "^1.0.1", + "object.getownpropertydescriptors": "^2.1.1" + } + }, + "utila": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz", + "integrity": "sha1-ihagXURWV6Oupe7MWxKk+lN5dyw=", + "dev": true + }, "utils-merge": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", @@ -24796,12 +32555,331 @@ "extsprintf": "^1.2.0" } }, - "vscode-languageserver-types": { - "version": "3.15.1", - "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.15.1.tgz", - "integrity": "sha512-+a9MPUQrNGRrGU630OGbYVQ+11iOIovjCkqxajPa9w57Sd5ruK8WQNsslzpa0x/QJqC8kRc2DUxWjIFwoNm4ZQ==", - "dev": true - }, + "vm-browserify": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", + "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", + "dev": true + }, + "vscode-languageserver-types": { + "version": "3.15.1", + "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.15.1.tgz", + "integrity": "sha512-+a9MPUQrNGRrGU630OGbYVQ+11iOIovjCkqxajPa9w57Sd5ruK8WQNsslzpa0x/QJqC8kRc2DUxWjIFwoNm4ZQ==", + "dev": true + }, + "vue": { + "version": "2.6.14", + "resolved": "https://registry.npmjs.org/vue/-/vue-2.6.14.tgz", + "integrity": "sha512-x2284lgYvjOMj3Za7kqzRcUSxBboHqtgRE2zlos1qWaOye5yUmHn42LB1250NJBLRwEcdrB0JRwyPTEPhfQjiQ==", + "dev": true + }, + "vue-hot-reload-api": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/vue-hot-reload-api/-/vue-hot-reload-api-2.3.4.tgz", + "integrity": "sha512-BXq3jwIagosjgNVae6tkHzzIk6a8MHFtzAdwhnV5VlvPTFxDCvIttgSiHWjdGoTJvXtmRu5HacExfdarRcFhog==", + "dev": true + }, + "vue-loader": { + "version": "15.9.7", + "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-15.9.7.tgz", + "integrity": "sha512-qzlsbLV1HKEMf19IqCJqdNvFJRCI58WNbS6XbPqK13MrLz65es75w392MSQ5TsARAfIjUw+ATm3vlCXUJSOH9Q==", + "dev": true, + "requires": { + "@vue/component-compiler-utils": "^3.1.0", + "hash-sum": "^1.0.2", + "loader-utils": "^1.1.0", + "vue-hot-reload-api": "^2.3.0", + "vue-style-loader": "^4.1.0" + } + }, + "vue-router": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-3.5.2.tgz", + "integrity": "sha512-807gn82hTnjCYGrnF3eNmIw/dk7/GE4B5h69BlyCK9KHASwSloD1Sjcn06zg9fVG4fYH2DrsNBZkpLtb25WtaQ==", + "dev": true + }, + "vue-style-loader": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/vue-style-loader/-/vue-style-loader-4.1.3.tgz", + "integrity": "sha512-sFuh0xfbtpRlKfm39ss/ikqs9AbKCoXZBpHeVZ8Tx650o0k0q/YCM7FRvigtxpACezfq6af+a7JeqVTWvncqDg==", + "dev": true, + "requires": { + "hash-sum": "^1.0.2", + "loader-utils": "^1.0.2" + } + }, + "vue-template-compiler": { + "version": "2.6.14", + "resolved": "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.6.14.tgz", + "integrity": "sha512-ODQS1SyMbjKoO1JBJZojSw6FE4qnh9rIpUZn2EUT86FKizx9uH5z6uXiIrm4/Nb/gwxTi/o17ZDEGWAXHvtC7g==", + "dev": true, + "requires": { + "de-indent": "^1.0.2", + "he": "^1.1.0" + } + }, + "vue-template-es2015-compiler": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/vue-template-es2015-compiler/-/vue-template-es2015-compiler-1.9.1.tgz", + "integrity": "sha512-4gDntzrifFnCEvyoO8PqyJDmguXgVPxKiIxrBKjIowvL9l+N66196+72XVYR8BBf1Uv1Fgt3bGevJ+sEmxfZzw==", + "dev": true + }, + "watchpack": { + "version": "1.7.5", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.7.5.tgz", + "integrity": "sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ==", + "dev": true, + "requires": { + "chokidar": "^3.4.1", + "graceful-fs": "^4.1.2", + "neo-async": "^2.5.0", + "watchpack-chokidar2": "^2.0.1" + } + }, + "watchpack-chokidar2": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz", + "integrity": "sha512-nCFfBIPKr5Sh61s4LPpy1Wtfi0HE8isJ3d2Yb5/Ppw2P2B/3eVSEBjKfN0fmHJSK14+31KwMKmcrzs2GM4P0Ww==", + "dev": true, + "optional": true, + "requires": { + "chokidar": "^2.1.8" + }, + "dependencies": { + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "dev": true, + "optional": true, + "requires": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + }, + "dependencies": { + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "optional": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + } + } + }, + "binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", + "dev": true, + "optional": true + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "optional": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "optional": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "chokidar": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", + "dev": true, + "optional": true, + "requires": { + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "fsevents": "^1.2.7", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "optional": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "optional": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "fsevents": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", + "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", + "dev": true, + "optional": true, + "requires": { + "bindings": "^1.5.0", + "nan": "^2.12.1" + } + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "optional": true, + "requires": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "optional": true, + "requires": { + "is-extglob": "^2.1.0" + } + } + } + }, + "is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "dev": true, + "optional": true, + "requires": { + "binary-extensions": "^1.0.0" + } + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true, + "optional": true + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "optional": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "optional": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "optional": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "optional": true + }, + "readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "dev": true, + "optional": true, + "requires": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "optional": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + } + } + }, "web3": { "version": "1.2.11", "resolved": "https://registry.npmjs.org/web3/-/web3-1.2.11.tgz", @@ -26160,6 +34238,192 @@ } } }, + "webpack": { + "version": "4.46.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.46.0.tgz", + "integrity": "sha512-6jJuJjg8znb/xRItk7bkT0+Q7AHCYjjFnvKIWQPkNIOyRqoCGvkOs0ipeQzrqz4l5FtN5ZI/ukEHroeX/o1/5Q==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-module-context": "1.9.0", + "@webassemblyjs/wasm-edit": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0", + "acorn": "^6.4.1", + "ajv": "^6.10.2", + "ajv-keywords": "^3.4.1", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^4.5.0", + "eslint-scope": "^4.0.3", + "json-parse-better-errors": "^1.0.2", + "loader-runner": "^2.4.0", + "loader-utils": "^1.2.3", + "memory-fs": "^0.4.1", + "micromatch": "^3.1.10", + "mkdirp": "^0.5.3", + "neo-async": "^2.6.1", + "node-libs-browser": "^2.2.1", + "schema-utils": "^1.0.0", + "tapable": "^1.1.3", + "terser-webpack-plugin": "^1.4.3", + "watchpack": "^1.7.4", + "webpack-sources": "^1.4.1" + }, + "dependencies": { + "acorn": { + "version": "6.4.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz", + "integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==", + "dev": true + }, + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "eslint-scope": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", + "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", + "dev": true, + "requires": { + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + } + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + } + } + }, + "webpack-sources": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", + "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", + "dev": true, + "requires": { + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" + } + }, "websocket": { "version": "1.0.31", "resolved": "https://registry.npmjs.org/websocket/-/websocket-1.0.31.tgz", @@ -26202,7 +34466,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", - "dev": true, "requires": { "is-bigint": "^1.0.1", "is-boolean-object": "^1.1.0", @@ -26223,6 +34486,123 @@ "integrity": "sha1-Zws6+8VS4LVd9rd4DKdGFfI60cs=", "dev": true }, + "which-typed-array": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.4.tgz", + "integrity": "sha512-49E0SpUe90cjpoc7BOJwyPHRqSAd12c10Qm2amdEZrJPCY2NDxaW01zHITrem+rnETY3dwrbH3UUrUwagfCYDA==", + "dev": true, + "requires": { + "available-typed-arrays": "^1.0.2", + "call-bind": "^1.0.0", + "es-abstract": "^1.18.0-next.1", + "foreach": "^2.0.5", + "function-bind": "^1.1.1", + "has-symbols": "^1.0.1", + "is-typed-array": "^1.1.3" + }, + "dependencies": { + "es-abstract": { + "version": "1.18.3", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.3.tgz", + "integrity": "sha512-nQIr12dxV7SSxE6r6f1l3DtAeEYdsGpps13dR0TwJg1S8gyp4ZPgy3FZcHBgbiQqnoqSTb+oC+kO4UQ0C/J8vw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "get-intrinsic": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.2", + "is-callable": "^1.2.3", + "is-negative-zero": "^2.0.1", + "is-regex": "^1.1.3", + "is-string": "^1.0.6", + "object-inspect": "^1.10.3", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "string.prototype.trimend": "^1.0.4", + "string.prototype.trimstart": "^1.0.4", + "unbox-primitive": "^1.0.1" + }, + "dependencies": { + "has-symbols": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", + "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", + "dev": true + } + } + }, + "is-callable": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.3.tgz", + "integrity": "sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ==", + "dev": true + }, + "is-regex": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.3.tgz", + "integrity": "sha512-qSVXFz28HM7y+IWX6vLCsexdlvzT1PJNFSBuaQLQ5o0IEw8UDYW6/2+eCMVyIsbM8CNLX2a/QWmSpyxYEHY7CQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-symbols": "^1.0.2" + }, + "dependencies": { + "has-symbols": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", + "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", + "dev": true + } + } + }, + "is-string": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.6.tgz", + "integrity": "sha512-2gdzbKUuqtQ3lYNrUTQYoClPhm7oQu4UdpSZMp1/DGgkHBT8E2Z1l0yMdb6D4zNAxwDiMv8MdulKROJGNl0Q0w==", + "dev": true + }, + "object-inspect": { + "version": "1.10.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.10.3.tgz", + "integrity": "sha512-e5mCJlSH7poANfC8z8S9s9S2IN5/4Zb3aZ33f5s8YqoazCFzNLloLU8r5VCG+G7WoqLvAAZoVMcy3tp/3X0Plw==", + "dev": true + }, + "object.assign": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", + "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" + } + }, + "string.prototype.trimend": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", + "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + } + }, + "string.prototype.trimstart": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", + "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + } + } + } + }, "wide-align": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", @@ -26308,6 +34688,15 @@ "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", "dev": true }, + "worker-farm": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.7.0.tgz", + "integrity": "sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw==", + "dev": true, + "requires": { + "errno": "~0.1.7" + } + }, "workerpool": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.0.0.tgz", diff --git a/package.json b/package.json index 842f38e..5a19f2d 100644 --- a/package.json +++ b/package.json @@ -31,7 +31,11 @@ "prettier": "prettier --write {*/**/,*/**/**/,*/**/**/**/}*.{js,sol}" }, "devDependencies": { - "@openzeppelin/test-helpers": "^0.5.6", + "@nomiclabs/buidler": "^1.4.8", + "@nomiclabs/hardhat-ethers": "^2.0.1", + "@nomiclabs/hardhat-ganache": "^2.0.0", + "@nomiclabs/hardhat-truffle5": "^2.0.0", + "@nomiclabs/hardhat-web3": "^2.0.0", "@truffle/contract": "^4.2.14", "bignumber.js": "^9.0.0", "bn.js": "^5.1.2", @@ -50,6 +54,11 @@ "eslint-plugin-promise": "^4.2.1", "eslint-plugin-standard": "^4.0.1", "ganache-core": "^2.13.2", + "hardhat": "^2.4.1", + "hardhat-contract-sizer": "^2.0.2", + "hardhat-deploy": "^0.7.0-beta.46", + "hardhat-docgen": "^1.1.1", + "hardhat-log-remover": "^2.0.0", "husky": "^4.2.5", "prettier": "^2.2.1", "prettier-plugin-solidity": "^1.0.0-beta.2", @@ -62,6 +71,8 @@ }, "snyk": true, "dependencies": { + "@nomiclabs/hardhat-etherscan": "^2.1.3", + "@nomiclabs/hardhat-ganache": "^2.0.0", "@truffle/hdwallet-provider": "^1.2.6" } } diff --git a/scripts/count_opcodes_zkSync.py b/scripts/count_opcodes_zkSync.py new file mode 100644 index 0000000..363feae --- /dev/null +++ b/scripts/count_opcodes_zkSync.py @@ -0,0 +1,117 @@ +#!/usr/bin/env python3 + +# Script to create report on bytecodes not supported by zkSync +# https://github.com/DistributedCollective/Sovryn-smart-contracts/issues/285 + +import json +import re +import csv + +# Hardhat json packs opcodes in 1 line. Better visual on multiline. +def opcode1linerToMultiline(oneLiner): + oneLiner = re.sub(r' ', r' ___NEWLINE ', oneLiner) + oneLiner = re.sub(r' ___NEWLINE (0x[^ ]+)', r' \1', oneLiner) + oneLiner = re.sub(r' ___NEWLINE ', r'\n', oneLiner) + return oneLiner + +# Get the frequency of a given code +def countCode(code, opcode): + return opcode.count(code) + +# The sourcemap format is compressed, so a decoder is needed. +# Specification of the format is in the solidity documentation: +# https://docs.soliditylang.org/en/v0.7.5/internals/source_mappings.html +# This function maps instruction indexes to source offsets. +# Deprecated: even though decoding were performed, there is not a +# one-to-one matching of sourcemap references to opcodes. For example, +# a simple contract has 21 references in the sourceMap (20 semicolons) +# for an opcode set of near 100 instructions. So it is useless to follow +# this route in order to trace opcodes to the source with code line accuracy. +# def decodeSourceMap(srcmap): +# print ("decodeSourceMap:") +# print ("\nsrcmap: " + srcmap) +# s = srcmap.split(";") +# print ("\nsplitted: " + ' '.join(s)) +# exit() + +# Opening the JSON output from the last hardhat compilation +# f = open('artifacts/build-info/eaaf433b5af1a78be582155342f51ab5.json',) +f = open('artifacts/build-info/0202910f40424d4ba1f4d5c762daecf5.json',) + +# Return JSON object as a dictionary +hardhatOutput = json.load(f) + +# Init mapping to store global frequency +opcodeFreqTotal = {} +opcodeFreqTotal["EXP"] = 0 +opcodeFreqTotal["ADDMOD"] = 0 +opcodeFreqTotal["SMOD"] = 0 +opcodeFreqTotal["MULMOD"] = 0 +opcodeFreqTotal["CREATE2"] = 0 +opcodeFreqTotal["SELFDESTRUCT"] = 0 + +# Init CSV list +csv_list = [] +csv_list.append(["contractFilename", "EXP", "ADDMOD", "SMOD", "MULMOD", "CREATE2", "SELFDESTRUCT"]) + +# Iterate through the json list +for contractFilename in hardhatOutput['output']['contracts'].keys(): + print (contractFilename) + contractName = list(hardhatOutput['output']['contracts'][contractFilename].keys())[0] + opcodes = hardhatOutput['output']['contracts'][contractFilename][contractName]['evm']['bytecode']['opcodes'] + # Deprecated + # srcmap = hardhatOutput['output']['contracts'][contractFilename][contractName]['evm']['bytecode']['sourceMap'] + # srcmapDecoded = decodeSourceMap(srcmap) + if len(opcodes) == 0: + print ("No opcodes for this contract\n") + else: + print (opcode1linerToMultiline(opcodes[0:120]) + " ...\n") + + # Mapping to store per contract frequency + opcodeFreq = {} + + opcodeFreq["EXP"] = countCode("EXP", opcodes) + opcodeFreq["ADDMOD"] = countCode("ADDMOD", opcodes) + opcodeFreq["SMOD"] = countCode("SMOD", opcodes) + opcodeFreq["MULMOD"] = countCode("MULMOD", opcodes) + opcodeFreq["CREATE2"] = countCode("CREATE2", opcodes) + opcodeFreq["SELFDESTRUCT"] = countCode("SELFDESTRUCT", opcodes) + + print ("EXP: " + str(opcodeFreq["EXP"])) + print ("ADDMOD: " + str(opcodeFreq["ADDMOD"])) + print ("SMOD: " + str(opcodeFreq["SMOD"])) + print ("MULMOD: " + str(opcodeFreq["MULMOD"])) + print ("CREATE2: " + str(opcodeFreq["CREATE2"])) + print ("SELFDESTRUCT: " + str(opcodeFreq["SELFDESTRUCT"])) + print ("") + print ("--\n") + + # Update global frequencies + opcodeFreqTotal["EXP"] += opcodeFreq["EXP"] + opcodeFreqTotal["ADDMOD"] += opcodeFreq["ADDMOD"] + opcodeFreqTotal["SMOD"] += opcodeFreq["SMOD"] + opcodeFreqTotal["MULMOD"] += opcodeFreq["MULMOD"] + opcodeFreqTotal["CREATE2"] += opcodeFreq["CREATE2"] + opcodeFreqTotal["SELFDESTRUCT"] += opcodeFreq["SELFDESTRUCT"] + + # Update CSV data + csv_list.append([contractFilename, opcodeFreq["EXP"], opcodeFreq["ADDMOD"], opcodeFreq["SMOD"], opcodeFreq["MULMOD"], opcodeFreq["CREATE2"], opcodeFreq["SELFDESTRUCT"]]) + +# Show global frequencies +print ("===========================================================") +print ("TOTAL FREQUENCIES:") +print ("EXP: " + str(opcodeFreqTotal["EXP"])) +print ("ADDMOD: " + str(opcodeFreqTotal["ADDMOD"])) +print ("SMOD: " + str(opcodeFreqTotal["SMOD"])) +print ("MULMOD: " + str(opcodeFreqTotal["MULMOD"])) +print ("CREATE2: " + str(opcodeFreqTotal["CREATE2"])) +print ("SELFDESTRUCT: " + str(opcodeFreqTotal["SELFDESTRUCT"])) + +# Export CSV +with open('opcodes_zkSync.csv', 'w', newline='') as file: + writer = csv.writer(file) + writer.writerows(csv_list) + +# Closing file +f.close() + From 58c356aed672700efc58a18faeb56bc1e4ffa1f9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juan=20Ignacio=20P=C3=A9rez=20Sacrist=C3=A1n?= Date: Mon, 23 Aug 2021 12:19:16 +0200 Subject: [PATCH 2/2] Using parameters, instead of hardcode filenames --- .../0202910f40424d4ba1f4d5c762daecf5.json | 326490 --------------- scripts/count_opcodes_zkSync.py | 10 +- 2 files changed, 7 insertions(+), 326493 deletions(-) delete mode 100644 artifacts/build-info/0202910f40424d4ba1f4d5c762daecf5.json diff --git a/artifacts/build-info/0202910f40424d4ba1f4d5c762daecf5.json b/artifacts/build-info/0202910f40424d4ba1f4d5c762daecf5.json deleted file mode 100644 index 93db730..0000000 --- a/artifacts/build-info/0202910f40424d4ba1f4d5c762daecf5.json +++ /dev/null @@ -1,326490 +0,0 @@ -{ - "id": "0202910f40424d4ba1f4d5c762daecf5", - "_format": "hh-sol-build-info-1", - "solcVersion": "0.4.26", - "solcLongVersion": "0.4.26+commit.4563c3fc", - "input": { - "language": "Solidity", - "sources": { - "solidity/contracts/ConversionPathFinder.sol": { - "content": "pragma solidity 0.4.26;\nimport \"./IConversionPathFinder.sol\";\nimport \"./utility/ContractRegistryClient.sol\";\nimport \"./converter/interfaces/IConverter.sol\";\nimport \"./converter/interfaces/IConverterAnchor.sol\";\nimport \"./converter/interfaces/IConverterRegistry.sol\";\n\n/**\n * @dev The ConversionPathFinder contract allows generating a conversion path between any token pair in the SovrynSwap Network.\n * The path can then be used in various functions in the SovrynSwapNetwork contract.\n *\n * See the SovrynSwapNetwork contract for conversion path format.\n */\ncontract ConversionPathFinder is IConversionPathFinder, ContractRegistryClient {\n\taddress public anchorToken;\n\n\t/**\n\t * @dev initializes a new ConversionPathFinder instance\n\t *\n\t * @param _registry address of a contract registry contract\n\t */\n\tconstructor(IContractRegistry _registry) public ContractRegistryClient(_registry) {}\n\n\t/**\n\t * @dev updates the anchor token\n\t *\n\t * @param _anchorToken address of the anchor token\n\t */\n\tfunction setAnchorToken(address _anchorToken) public ownerOnly {\n\t\tanchorToken = _anchorToken;\n\t}\n\n\t/**\n\t * @dev generates a conversion path between a given pair of tokens in the SovrynSwap Network\n\t *\n\t * @param _sourceToken address of the source token\n\t * @param _targetToken address of the target token\n\t *\n\t * @return a path from the source token to the target token\n\t */\n\tfunction findPath(address _sourceToken, address _targetToken) public view returns (address[] memory) {\n\t\tIConverterRegistry converterRegistry = IConverterRegistry(addressOf(CONVERTER_REGISTRY));\n\t\taddress[] memory sourcePath = getPath(_sourceToken, converterRegistry);\n\t\taddress[] memory targetPath = getPath(_targetToken, converterRegistry);\n\t\treturn getShortestPath(sourcePath, targetPath);\n\t}\n\n\t/**\n\t * @dev generates a conversion path between a given token and the anchor token\n\t *\n\t * @param _token address of the token\n\t * @param _converterRegistry address of the converter registry\n\t *\n\t * @return a path from the input token to the anchor token\n\t */\n\tfunction getPath(address _token, IConverterRegistry _converterRegistry) private view returns (address[] memory) {\n\t\tif (_token == anchorToken) return getInitialArray(_token);\n\n\t\taddress[] memory anchors;\n\t\tif (_converterRegistry.isAnchor(_token)) anchors = getInitialArray(_token);\n\t\telse anchors = _converterRegistry.getConvertibleTokenAnchors(_token);\n\n\t\tfor (uint256 n = 0; n < anchors.length; n++) {\n\t\t\tIConverter converter = IConverter(IConverterAnchor(anchors[n]).owner());\n\t\t\tuint256 connectorTokenCount = converter.connectorTokenCount();\n\t\t\tfor (uint256 i = 0; i < connectorTokenCount; i++) {\n\t\t\t\taddress connectorToken = converter.connectorTokens(i);\n\t\t\t\tif (connectorToken != _token) {\n\t\t\t\t\taddress[] memory path = getPath(connectorToken, _converterRegistry);\n\t\t\t\t\tif (path.length > 0) return getExtendedArray(_token, anchors[n], path);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn new address[](0);\n\t}\n\n\t/**\n\t * @dev merges two paths with a common suffix into one\n\t *\n\t * @param _sourcePath address of the source path\n\t * @param _targetPath address of the target path\n\t *\n\t * @return merged path\n\t */\n\tfunction getShortestPath(address[] memory _sourcePath, address[] memory _targetPath) private pure returns (address[] memory) {\n\t\tif (_sourcePath.length > 0 && _targetPath.length > 0) {\n\t\t\tuint256 i = _sourcePath.length;\n\t\t\tuint256 j = _targetPath.length;\n\t\t\twhile (i > 0 && j > 0 && _sourcePath[i - 1] == _targetPath[j - 1]) {\n\t\t\t\ti--;\n\t\t\t\tj--;\n\t\t\t}\n\n\t\t\taddress[] memory path = new address[](i + j + 1);\n\t\t\tfor (uint256 m = 0; m <= i; m++) path[m] = _sourcePath[m];\n\t\t\tfor (uint256 n = j; n > 0; n--) path[path.length - n] = _targetPath[n - 1];\n\n\t\t\tuint256 length = 0;\n\t\t\tfor (uint256 p = 0; p < path.length; p += 1) {\n\t\t\t\tfor (uint256 q = p + 2; q < path.length - (p % 2); q += 2) {\n\t\t\t\t\tif (path[p] == path[q]) p = q;\n\t\t\t\t}\n\t\t\t\tpath[length++] = path[p];\n\t\t\t}\n\n\t\t\treturn getPartialArray(path, length);\n\t\t}\n\n\t\treturn new address[](0);\n\t}\n\n\t/**\n\t * @dev creates a new array containing a single item\n\t *\n\t * @param _item item\n\t *\n\t * @return initial array\n\t */\n\tfunction getInitialArray(address _item) private pure returns (address[] memory) {\n\t\taddress[] memory array = new address[](1);\n\t\tarray[0] = _item;\n\t\treturn array;\n\t}\n\n\t/**\n\t * @dev prepends two items to the beginning of an array\n\t *\n\t * @param _item0 first item\n\t * @param _item1 second item\n\t * @param _array initial array\n\t *\n\t * @return extended array\n\t */\n\tfunction getExtendedArray(\n\t\taddress _item0,\n\t\taddress _item1,\n\t\taddress[] memory _array\n\t) private pure returns (address[] memory) {\n\t\taddress[] memory array = new address[](2 + _array.length);\n\t\tarray[0] = _item0;\n\t\tarray[1] = _item1;\n\t\tfor (uint256 i = 0; i < _array.length; i++) array[2 + i] = _array[i];\n\t\treturn array;\n\t}\n\n\t/**\n\t * @dev extracts the prefix of a given array\n\t *\n\t * @param _array given array\n\t * @param _length prefix length\n\t *\n\t * @return partial array\n\t */\n\tfunction getPartialArray(address[] memory _array, uint256 _length) private pure returns (address[] memory) {\n\t\taddress[] memory array = new address[](_length);\n\t\tfor (uint256 i = 0; i < _length; i++) array[i] = _array[i];\n\t\treturn array;\n\t}\n}\n" - }, - "solidity/contracts/IConversionPathFinder.sol": { - "content": "pragma solidity 0.4.26;\nimport \"./token/interfaces/IERC20Token.sol\";\n\n/*\n Conversion Path Finder interface\n*/\ncontract IConversionPathFinder {\n\tfunction findPath(address _sourceToken, address _targetToken) public view returns (address[] memory);\n}\n" - }, - "solidity/contracts/utility/ContractRegistryClient.sol": { - "content": "pragma solidity 0.4.26;\nimport \"./Owned.sol\";\nimport \"./Utils.sol\";\nimport \"./interfaces/IContractRegistry.sol\";\n\n/**\n * @dev Base contract for ContractRegistry clients\n */\ncontract ContractRegistryClient is Owned, Utils {\n\tbytes32 internal constant CONTRACT_REGISTRY = \"ContractRegistry\";\n\tbytes32 internal constant SOVRYNSWAP_NETWORK = \"SovrynSwapNetwork\";\n\tbytes32 internal constant SOVRYNSWAP_FORMULA = \"SovrynSwapFormula\";\n\tbytes32 internal constant CONVERTER_FACTORY = \"ConverterFactory\";\n\tbytes32 internal constant CONVERSION_PATH_FINDER = \"ConversionPathFinder\";\n\tbytes32 internal constant CONVERTER_UPGRADER = \"SovrynSwapConverterUpgrader\";\n\tbytes32 internal constant CONVERTER_REGISTRY = \"SovrynSwapConverterRegistry\";\n\tbytes32 internal constant CONVERTER_REGISTRY_DATA = \"SovrynSwapConverterRegistryData\";\n\tbytes32 internal constant BNT_TOKEN = \"BNTToken\";\n\tbytes32 internal constant SOVRYNSWAP_X = \"SovrynSwapX\";\n\tbytes32 internal constant SOVRYNSWAP_X_UPGRADER = \"SovrynSwapXUpgrader\";\n\tbytes32 internal constant CHAINLINK_ORACLE_WHITELIST = \"ChainlinkOracleWhitelist\";\n\n\tIContractRegistry public registry; // address of the current contract-registry\n\tIContractRegistry public prevRegistry; // address of the previous contract-registry\n\tbool public onlyOwnerCanUpdateRegistry; // only an owner can update the contract-registry\n\n\t/**\n\t * @dev verifies that the caller is mapped to the given contract name\n\t *\n\t * @param _contractName contract name\n\t */\n\tmodifier only(bytes32 _contractName) {\n\t\t_only(_contractName);\n\t\t_;\n\t}\n\n\t// error message binary size optimization\n\tfunction _only(bytes32 _contractName) internal view {\n\t\trequire(msg.sender == addressOf(_contractName), \"ERR_ACCESS_DENIED\");\n\t}\n\n\t/**\n\t * @dev initializes a new ContractRegistryClient instance\n\t *\n\t * @param _registry address of a contract-registry contract\n\t */\n\tconstructor(IContractRegistry _registry) internal validAddress(_registry) {\n\t\tregistry = IContractRegistry(_registry);\n\t\tprevRegistry = IContractRegistry(_registry);\n\t}\n\n\t/**\n\t * @dev updates to the new contract-registry\n\t */\n\tfunction updateRegistry() public {\n\t\t// verify that this function is permitted\n\t\trequire(msg.sender == owner || !onlyOwnerCanUpdateRegistry, \"ERR_ACCESS_DENIED\");\n\n\t\t// get the new contract-registry\n\t\tIContractRegistry newRegistry = IContractRegistry(addressOf(CONTRACT_REGISTRY));\n\n\t\t// verify that the new contract-registry is different and not zero\n\t\trequire(newRegistry != address(registry) && newRegistry != address(0), \"ERR_INVALID_REGISTRY\");\n\n\t\t// verify that the new contract-registry is pointing to a non-zero contract-registry\n\t\trequire(newRegistry.addressOf(CONTRACT_REGISTRY) != address(0), \"ERR_INVALID_REGISTRY\");\n\n\t\t// save a backup of the current contract-registry before replacing it\n\t\tprevRegistry = registry;\n\n\t\t// replace the current contract-registry with the new contract-registry\n\t\tregistry = newRegistry;\n\t}\n\n\t/**\n\t * @dev restores the previous contract-registry\n\t */\n\tfunction restoreRegistry() public ownerOnly {\n\t\t// restore the previous contract-registry\n\t\tregistry = prevRegistry;\n\t}\n\n\t/**\n\t * @dev restricts the permission to update the contract-registry\n\t *\n\t * @param _onlyOwnerCanUpdateRegistry indicates whether or not permission is restricted to owner only\n\t */\n\tfunction restrictRegistryUpdate(bool _onlyOwnerCanUpdateRegistry) public ownerOnly {\n\t\t// change the permission to update the contract-registry\n\t\tonlyOwnerCanUpdateRegistry = _onlyOwnerCanUpdateRegistry;\n\t}\n\n\t/**\n\t * @dev returns the address associated with the given contract name\n\t *\n\t * @param _contractName contract name\n\t *\n\t * @return contract address\n\t */\n\tfunction addressOf(bytes32 _contractName) internal view returns (address) {\n\t\treturn registry.addressOf(_contractName);\n\t}\n}\n" - }, - "solidity/contracts/converter/interfaces/IConverter.sol": { - "content": "pragma solidity 0.4.26;\nimport \"./IConverterAnchor.sol\";\nimport \"../../token/interfaces/IERC20Token.sol\";\nimport \"../../utility/interfaces/IOwned.sol\";\nimport \"../../utility/interfaces/IWhitelist.sol\";\n\n/*\n Converter interface\n*/\ncontract IConverter is IOwned {\n\tfunction converterType() public pure returns (uint16);\n\n\tfunction anchor() public view returns (IConverterAnchor) {\n\t\tthis;\n\t}\n\n\tfunction isActive() public view returns (bool);\n\n\tfunction targetAmountAndFee(\n\t\tIERC20Token _sourceToken,\n\t\tIERC20Token _targetToken,\n\t\tuint256 _amount\n\t) public view returns (uint256, uint256);\n\n\tfunction convert(\n\t\tIERC20Token _sourceToken,\n\t\tIERC20Token _targetToken,\n\t\tuint256 _amount,\n\t\taddress _trader,\n\t\taddress _beneficiary\n\t) public payable returns (uint256);\n\n\tfunction conversionWhitelist() public view returns (IWhitelist) {\n\t\tthis;\n\t}\n\n\tfunction conversionFee() public view returns (uint32) {\n\t\tthis;\n\t}\n\n\tfunction maxConversionFee() public view returns (uint32) {\n\t\tthis;\n\t}\n\n\tfunction reserveBalance(IERC20Token _reserveToken) public view returns (uint256);\n\n\tfunction() external payable;\n\n\tfunction transferAnchorOwnership(address _newOwner) public;\n\n\tfunction acceptAnchorOwnership() public;\n\n\tfunction setConversionFee(uint32 _conversionFee) public;\n\n\tfunction setConversionWhitelist(IWhitelist _whitelist) public;\n\n\tfunction withdrawTokens(\n\t\tIERC20Token _token,\n\t\taddress _to,\n\t\tuint256 _amount\n\t) public;\n\n\tfunction withdrawETH(address _to) public;\n\n\tfunction addReserve(IERC20Token _token, uint32 _ratio) public;\n\n\t// deprecated, backward compatibility\n\tfunction token() public view returns (IConverterAnchor);\n\n\tfunction transferTokenOwnership(address _newOwner) public;\n\n\tfunction acceptTokenOwnership() public;\n\n\tfunction connectors(address _address)\n\t\tpublic\n\t\tview\n\t\treturns (\n\t\t\tuint256,\n\t\t\tuint32,\n\t\t\tbool,\n\t\t\tbool,\n\t\t\tbool\n\t\t);\n\n\tfunction getConnectorBalance(IERC20Token _connectorToken) public view returns (uint256);\n\n\tfunction connectorTokens(uint256 _index) public view returns (IERC20Token);\n\n\tfunction connectorTokenCount() public view returns (uint16);\n}\n" - }, - "solidity/contracts/converter/interfaces/IConverterAnchor.sol": { - "content": "pragma solidity 0.4.26;\nimport \"../../utility/interfaces/IOwned.sol\";\nimport \"../../utility/interfaces/ITokenHolder.sol\";\n\n/*\n Converter Anchor interface\n*/\ncontract IConverterAnchor is IOwned, ITokenHolder {\n\n}\n" - }, - "solidity/contracts/converter/interfaces/IConverterRegistry.sol": { - "content": "pragma solidity 0.4.26;\n\ncontract IConverterRegistry {\n\tfunction getAnchorCount() public view returns (uint256);\n\n\tfunction getAnchors() public view returns (address[]);\n\n\tfunction getAnchor(uint256 _index) public view returns (address);\n\n\tfunction isAnchor(address _value) public view returns (bool);\n\n\tfunction getLiquidityPoolCount() public view returns (uint256);\n\n\tfunction getLiquidityPools() public view returns (address[]);\n\n\tfunction getLiquidityPool(uint256 _index) public view returns (address);\n\n\tfunction isLiquidityPool(address _value) public view returns (bool);\n\n\tfunction getConvertibleTokenCount() public view returns (uint256);\n\n\tfunction getConvertibleTokens() public view returns (address[]);\n\n\tfunction getConvertibleToken(uint256 _index) public view returns (address);\n\n\tfunction isConvertibleToken(address _value) public view returns (bool);\n\n\tfunction getConvertibleTokenAnchorCount(address _convertibleToken) public view returns (uint256);\n\n\tfunction getConvertibleTokenAnchors(address _convertibleToken) public view returns (address[]);\n\n\tfunction getConvertibleTokenAnchor(address _convertibleToken, uint256 _index) public view returns (address);\n\n\tfunction isConvertibleTokenAnchor(address _convertibleToken, address _value) public view returns (bool);\n}\n" - }, - "solidity/contracts/token/interfaces/IERC20Token.sol": { - "content": "pragma solidity 0.4.26;\n\n/*\n ERC20 Standard Token interface\n*/\ncontract IERC20Token {\n\t// these functions aren't abstract since the compiler emits automatically generated getter functions as external\n\tfunction name() public view returns (string) {\n\t\tthis;\n\t}\n\n\tfunction symbol() public view returns (string) {\n\t\tthis;\n\t}\n\n\tfunction decimals() public view returns (uint8) {\n\t\tthis;\n\t}\n\n\tfunction totalSupply() public view returns (uint256) {\n\t\tthis;\n\t}\n\n\tfunction balanceOf(address _owner) public view returns (uint256) {\n\t\t_owner;\n\t\tthis;\n\t}\n\n\tfunction allowance(address _owner, address _spender) public view returns (uint256) {\n\t\t_owner;\n\t\t_spender;\n\t\tthis;\n\t}\n\n\tfunction transfer(address _to, uint256 _value) public returns (bool success);\n\n\tfunction transferFrom(\n\t\taddress _from,\n\t\taddress _to,\n\t\tuint256 _value\n\t) public returns (bool success);\n\n\tfunction approve(address _spender, uint256 _value) public returns (bool success);\n}\n" - }, - "solidity/contracts/utility/Owned.sol": { - "content": "pragma solidity 0.4.26;\nimport \"./interfaces/IOwned.sol\";\n\n/**\n * @dev Provides support and utilities for contract ownership\n */\ncontract Owned is IOwned {\n\taddress public owner;\n\taddress public newOwner;\n\n\t/**\n\t * @dev triggered when the owner is updated\n\t *\n\t * @param _prevOwner previous owner\n\t * @param _newOwner new owner\n\t */\n\tevent OwnerUpdate(address indexed _prevOwner, address indexed _newOwner);\n\n\t/**\n\t * @dev initializes a new Owned instance\n\t */\n\tconstructor() public {\n\t\towner = msg.sender;\n\t}\n\n\t// allows execution by the owner only\n\tmodifier ownerOnly {\n\t\t_ownerOnly();\n\t\t_;\n\t}\n\n\t// error message binary size optimization\n\tfunction _ownerOnly() internal view {\n\t\trequire(msg.sender == owner, \"ERR_ACCESS_DENIED\");\n\t}\n\n\t/**\n\t * @dev allows transferring the contract ownership\n\t * the new owner still needs to accept the transfer\n\t * can only be called by the contract owner\n\t *\n\t * @param _newOwner new contract owner\n\t */\n\tfunction transferOwnership(address _newOwner) public ownerOnly {\n\t\trequire(_newOwner != owner, \"ERR_SAME_OWNER\");\n\t\tnewOwner = _newOwner;\n\t}\n\n\t/**\n\t * @dev used by a new owner to accept an ownership transfer\n\t */\n\tfunction acceptOwnership() public {\n\t\trequire(msg.sender == newOwner, \"ERR_ACCESS_DENIED\");\n\t\temit OwnerUpdate(owner, newOwner);\n\t\towner = newOwner;\n\t\tnewOwner = address(0);\n\t}\n}\n" - }, - "solidity/contracts/utility/Utils.sol": { - "content": "pragma solidity 0.4.26;\n\n/**\n * @dev Utilities & Common Modifiers\n */\ncontract Utils {\n\t// verifies that a value is greater than zero\n\tmodifier greaterThanZero(uint256 _value) {\n\t\t_greaterThanZero(_value);\n\t\t_;\n\t}\n\n\t// error message binary size optimization\n\tfunction _greaterThanZero(uint256 _value) internal pure {\n\t\trequire(_value > 0, \"ERR_ZERO_VALUE\");\n\t}\n\n\t// validates an address - currently only checks that it isn't null\n\tmodifier validAddress(address _address) {\n\t\t_validAddress(_address);\n\t\t_;\n\t}\n\n\t// error message binary size optimization\n\tfunction _validAddress(address _address) internal pure {\n\t\trequire(_address != address(0), \"ERR_INVALID_ADDRESS\");\n\t}\n\n\t// verifies that the address is different than this contract address\n\tmodifier notThis(address _address) {\n\t\t_notThis(_address);\n\t\t_;\n\t}\n\n\t// error message binary size optimization\n\tfunction _notThis(address _address) internal view {\n\t\trequire(_address != address(this), \"ERR_ADDRESS_IS_SELF\");\n\t}\n}\n" - }, - "solidity/contracts/utility/interfaces/IContractRegistry.sol": { - "content": "pragma solidity 0.4.26;\n\n/*\n Contract Registry interface\n*/\ncontract IContractRegistry {\n\tfunction addressOf(bytes32 _contractName) public view returns (address);\n\n\t// deprecated, backward compatibility\n\tfunction getAddress(bytes32 _contractName) public view returns (address);\n}\n" - }, - "solidity/contracts/utility/interfaces/IOwned.sol": { - "content": "pragma solidity 0.4.26;\n\n/*\n Owned contract interface\n*/\ncontract IOwned {\n\t// this function isn't abstract since the compiler emits automatically generated getter functions as external\n\tfunction owner() public view returns (address) {\n\t\tthis;\n\t}\n\n\tfunction transferOwnership(address _newOwner) public;\n\n\tfunction acceptOwnership() public;\n}\n" - }, - "solidity/contracts/utility/interfaces/IWhitelist.sol": { - "content": "pragma solidity 0.4.26;\n\n/*\n Whitelist interface\n*/\ncontract IWhitelist {\n\tfunction isWhitelisted(address _address) public view returns (bool);\n}\n" - }, - "solidity/contracts/utility/interfaces/ITokenHolder.sol": { - "content": "pragma solidity 0.4.26;\nimport \"./IOwned.sol\";\nimport \"../../token/interfaces/IERC20Token.sol\";\n\n/*\n Token Holder interface\n*/\ncontract ITokenHolder is IOwned {\n\tfunction withdrawTokens(\n\t\tIERC20Token _token,\n\t\taddress _to,\n\t\tuint256 _amount\n\t) public;\n}\n" - }, - "solidity/contracts/converter/ConverterRegistry.sol": { - "content": "pragma solidity 0.4.26;\nimport \"../utility/TokenHandler.sol\";\nimport \"../utility/ContractRegistryClient.sol\";\nimport \"./interfaces/IConverter.sol\";\nimport \"./interfaces/IConverterFactory.sol\";\nimport \"./interfaces/IConverterRegistry.sol\";\nimport \"./interfaces/IConverterRegistryData.sol\";\n\n/**\n * @dev The ConverterRegistry maintains a list of all active converters in the SovrynSwap Network.\n *\n * Since converters can be upgraded and thus their address can change, the registry actually keeps\n * converter anchors internally and not the converters themselves.\n * The active converter for each anchor can be easily accessed by querying the anchor's owner.\n *\n * The registry exposes 3 differnet lists that can be accessed and iterated, based on the use-case of the caller:\n * - Anchors - can be used to get all the latest / historical data in the network\n * - Liquidity pools - can be used to get all liquidity pools for funding, liquidation etc.\n * - Convertible tokens - can be used to get all tokens that can be converted in the network (excluding pool\n * tokens), and for each one - all anchors that hold it in their reserves\n *\n *\n * The contract fires events whenever one of the primitives is added to or removed from the registry\n *\n * The contract is upgradable.\n */\ncontract ConverterRegistry is IConverterRegistry, ContractRegistryClient, TokenHandler {\n\taddress private constant ETH_RESERVE_ADDRESS = 0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE;\n\tmapping(address => address) private deployer;\n\n\t/**\n\t * @dev triggered when a converter anchor is added to the registry\n\t *\n\t * @param _anchor smart token\n\t */\n\tevent ConverterAnchorAdded(address indexed _anchor);\n\n\t/**\n\t * @dev triggered when a converter anchor is removed from the registry\n\t *\n\t * @param _anchor smart token\n\t */\n\tevent ConverterAnchorRemoved(address indexed _anchor);\n\n\t/**\n\t * @dev triggered when a liquidity pool is added to the registry\n\t *\n\t * @param _liquidityPool liquidity pool\n\t */\n\tevent LiquidityPoolAdded(address indexed _liquidityPool);\n\n\t/**\n\t * @dev triggered when a liquidity pool is removed from the registry\n\t *\n\t * @param _liquidityPool liquidity pool\n\t */\n\tevent LiquidityPoolRemoved(address indexed _liquidityPool);\n\n\t/**\n\t * @dev triggered when a convertible token is added to the registry\n\t *\n\t * @param _convertibleToken convertible token\n\t * @param _smartToken associated smart token\n\t */\n\tevent ConvertibleTokenAdded(address indexed _convertibleToken, address indexed _smartToken);\n\n\t/**\n\t * @dev triggered when a convertible token is removed from the registry\n\t *\n\t * @param _convertibleToken convertible token\n\t * @param _smartToken associated smart token\n\t */\n\tevent ConvertibleTokenRemoved(address indexed _convertibleToken, address indexed _smartToken);\n\n\t/**\n\t * @dev deprecated, backward compatibility, use `ConverterAnchorAdded`\n\t */\n\tevent SmartTokenAdded(address indexed _smartToken);\n\n\t/**\n\t * @dev deprecated, backward compatibility, use `ConverterAnchorRemoved`\n\t */\n\tevent SmartTokenRemoved(address indexed _smartToken);\n\n\t/**\n\t * @dev initializes a new ConverterRegistry instance\n\t *\n\t * @param _registry address of a contract registry contract\n\t */\n\tconstructor(IContractRegistry _registry) public ContractRegistryClient(_registry) {}\n\n\t/**\n\t * @dev creates a zero supply liquid token / empty liquidity pool and adds its converter to the registry\n\t *\n\t * @param _type converter type, see ConverterBase contract main doc\n\t * @param _name token / pool name\n\t * @param _symbol token / pool symbol\n\t * @param _decimals token / pool decimals\n\t * @param _maxConversionFee maximum conversion-fee\n\t * @param _reserveTokens reserve tokens\n\t * @param _reserveWeights reserve weights\n\t *\n\t * @return new converter\n\t */\n\tfunction newConverter(\n\t\tuint16 _type,\n\t\tstring _name,\n\t\tstring _symbol,\n\t\tuint8 _decimals,\n\t\tuint32 _maxConversionFee,\n\t\tIERC20Token[] memory _reserveTokens,\n\t\tuint32[] memory _reserveWeights\n\t) public returns (IConverter) {\n\t\tuint256 length = _reserveTokens.length;\n\t\trequire(length == _reserveWeights.length, \"ERR_INVALID_RESERVES\");\n\t\trequire(getLiquidityPoolByConfig(_type, _reserveTokens, _reserveWeights) == IConverterAnchor(0), \"ERR_ALREADY_EXISTS\");\n\n\t\tIConverterFactory factory = IConverterFactory(addressOf(CONVERTER_FACTORY));\n\t\tIConverterAnchor anchor = IConverterAnchor(factory.createAnchor(_type, _name, _symbol, _decimals));\n\t\tIConverter converter = IConverter(factory.createConverter(_type, anchor, registry, _maxConversionFee));\n\n\t\t//remember the deployer to make sure only the deployer may finish the setup of the converter\n\t\tdeployer[converter] = msg.sender;\n\n\t\treturn converter;\n\t}\n\n\t/**\n\t * @dev completes the configuration for a converter\n\t *\n\t * @param _type converter type, see ConverterBase contract main doc\n\t * @param _reserveTokens reserve tokens\n\t * @param _reserveWeights reserve weights\n\t * @param _converter the converter previously created through newConverter method\n\t *\n\t * @return converter\n\t */\n\tfunction setupConverter(\n\t\tuint16 _type,\n\t\tIERC20Token[] memory _reserveTokens,\n\t\tuint32[] memory _reserveWeights,\n\t\tIConverter _converter\n\t) public returns (IConverter) {\n\t\trequire(deployer[_converter] == msg.sender, \"only the deployer may finish the converter setup\");\n\n\t\tuint256 length = _reserveTokens.length;\n\t\trequire(length == _reserveWeights.length, \"ERR_INVALID_RESERVES\");\n\t\trequire(getLiquidityPoolByConfig(_type, _reserveTokens, _reserveWeights) == IConverterAnchor(0), \"ERR_ALREADY_EXISTS\");\n\n\t\tIConverterAnchor anchor = _converter.anchor();\n\n\t\tanchor.acceptOwnership();\n\t\t_converter.acceptOwnership();\n\n\t\tfor (uint256 i = 0; i < length; i++) _converter.addReserve(_reserveTokens[i], _reserveWeights[i]);\n\n\t\tanchor.transferOwnership(_converter);\n\t\t_converter.acceptAnchorOwnership();\n\t\t_converter.transferOwnership(msg.sender);\n\n\t\taddConverterInternal(_converter);\n\t\treturn _converter;\n\t}\n\n\t/**\n\t * @dev adds an existing converter to the registry\n\t * can only be called by the owner\n\t *\n\t * @param _converter converter\n\t */\n\tfunction addConverter(IConverter _converter) public ownerOnly {\n\t\trequire(isConverterValid(_converter), \"ERR_INVALID_CONVERTER\");\n\t\taddConverterInternal(_converter);\n\t}\n\n\t/**\n\t * @dev removes a converter from the registry\n\t * anyone can remove an existing converter from the registry, as long as the converter is invalid\n\t * note that the owner can also remove valid converters\n\t *\n\t * @param _converter converter\n\t */\n\tfunction removeConverter(IConverter _converter) public {\n\t\trequire(msg.sender == owner || !isConverterValid(_converter), \"ERR_ACCESS_DENIED\");\n\t\tremoveConverterInternal(_converter);\n\t}\n\n\t/**\n\t * @dev returns the number of converter anchors in the registry\n\t *\n\t * @return number of anchors\n\t */\n\tfunction getAnchorCount() public view returns (uint256) {\n\t\treturn IConverterRegistryData(addressOf(CONVERTER_REGISTRY_DATA)).getSmartTokenCount();\n\t}\n\n\t/**\n\t * @dev returns the list of converter anchors in the registry\n\t *\n\t * @return list of anchors\n\t */\n\tfunction getAnchors() public view returns (address[]) {\n\t\treturn IConverterRegistryData(addressOf(CONVERTER_REGISTRY_DATA)).getSmartTokens();\n\t}\n\n\t/**\n\t * @dev returns the converter anchor at a given index\n\t *\n\t * @param _index index\n\t * @return anchor at the given index\n\t */\n\tfunction getAnchor(uint256 _index) public view returns (address) {\n\t\treturn IConverterRegistryData(addressOf(CONVERTER_REGISTRY_DATA)).getSmartToken(_index);\n\t}\n\n\t/**\n\t * @dev checks whether or not a given value is a converter anchor\n\t *\n\t * @param _value value\n\t * @return true if the given value is an anchor, false if not\n\t */\n\tfunction isAnchor(address _value) public view returns (bool) {\n\t\treturn IConverterRegistryData(addressOf(CONVERTER_REGISTRY_DATA)).isSmartToken(_value);\n\t}\n\n\t/**\n\t * @dev returns the number of liquidity pools in the registry\n\t *\n\t * @return number of liquidity pools\n\t */\n\tfunction getLiquidityPoolCount() public view returns (uint256) {\n\t\treturn IConverterRegistryData(addressOf(CONVERTER_REGISTRY_DATA)).getLiquidityPoolCount();\n\t}\n\n\t/**\n\t * @dev returns the list of liquidity pools in the registry\n\t *\n\t * @return list of liquidity pools\n\t */\n\tfunction getLiquidityPools() public view returns (address[]) {\n\t\treturn IConverterRegistryData(addressOf(CONVERTER_REGISTRY_DATA)).getLiquidityPools();\n\t}\n\n\t/**\n\t * @dev returns the liquidity pool at a given index\n\t *\n\t * @param _index index\n\t * @return liquidity pool at the given index\n\t */\n\tfunction getLiquidityPool(uint256 _index) public view returns (address) {\n\t\treturn IConverterRegistryData(addressOf(CONVERTER_REGISTRY_DATA)).getLiquidityPool(_index);\n\t}\n\n\t/**\n\t * @dev checks whether or not a given value is a liquidity pool\n\t *\n\t * @param _value value\n\t * @return true if the given value is a liquidity pool, false if not\n\t */\n\tfunction isLiquidityPool(address _value) public view returns (bool) {\n\t\treturn IConverterRegistryData(addressOf(CONVERTER_REGISTRY_DATA)).isLiquidityPool(_value);\n\t}\n\n\t/**\n\t * @dev returns the number of convertible tokens in the registry\n\t *\n\t * @return number of convertible tokens\n\t */\n\tfunction getConvertibleTokenCount() public view returns (uint256) {\n\t\treturn IConverterRegistryData(addressOf(CONVERTER_REGISTRY_DATA)).getConvertibleTokenCount();\n\t}\n\n\t/**\n\t * @dev returns the list of convertible tokens in the registry\n\t *\n\t * @return list of convertible tokens\n\t */\n\tfunction getConvertibleTokens() public view returns (address[]) {\n\t\treturn IConverterRegistryData(addressOf(CONVERTER_REGISTRY_DATA)).getConvertibleTokens();\n\t}\n\n\t/**\n\t * @dev returns the convertible token at a given index\n\t *\n\t * @param _index index\n\t * @return convertible token at the given index\n\t */\n\tfunction getConvertibleToken(uint256 _index) public view returns (address) {\n\t\treturn IConverterRegistryData(addressOf(CONVERTER_REGISTRY_DATA)).getConvertibleToken(_index);\n\t}\n\n\t/**\n\t * @dev checks whether or not a given value is a convertible token\n\t *\n\t * @param _value value\n\t * @return true if the given value is a convertible token, false if not\n\t */\n\tfunction isConvertibleToken(address _value) public view returns (bool) {\n\t\treturn IConverterRegistryData(addressOf(CONVERTER_REGISTRY_DATA)).isConvertibleToken(_value);\n\t}\n\n\t/**\n\t * @dev returns the number of converter anchors associated with a given convertible token\n\t *\n\t * @param _convertibleToken convertible token\n\t * @return number of anchors associated with the given convertible token\n\t */\n\tfunction getConvertibleTokenAnchorCount(address _convertibleToken) public view returns (uint256) {\n\t\treturn IConverterRegistryData(addressOf(CONVERTER_REGISTRY_DATA)).getConvertibleTokenSmartTokenCount(_convertibleToken);\n\t}\n\n\t/**\n\t * @dev returns the list of converter anchors associated with a given convertible token\n\t *\n\t * @param _convertibleToken convertible token\n\t * @return list of anchors associated with the given convertible token\n\t */\n\tfunction getConvertibleTokenAnchors(address _convertibleToken) public view returns (address[]) {\n\t\treturn IConverterRegistryData(addressOf(CONVERTER_REGISTRY_DATA)).getConvertibleTokenSmartTokens(_convertibleToken);\n\t}\n\n\t/**\n\t * @dev returns the converter anchor associated with a given convertible token at a given index\n\t *\n\t * @param _convertibleToken convertible token\n\t * @param _index index\n\t * @return anchor associated with the given convertible token at the given index\n\t */\n\tfunction getConvertibleTokenAnchor(address _convertibleToken, uint256 _index) public view returns (address) {\n\t\treturn IConverterRegistryData(addressOf(CONVERTER_REGISTRY_DATA)).getConvertibleTokenSmartToken(_convertibleToken, _index);\n\t}\n\n\t/**\n\t * @dev checks whether or not a given value is a converter anchor of a given convertible token\n\t *\n\t * @param _convertibleToken convertible token\n\t * @param _value value\n\t * @return true if the given value is an anchor of the given convertible token, false if not\n\t */\n\tfunction isConvertibleTokenAnchor(address _convertibleToken, address _value) public view returns (bool) {\n\t\treturn IConverterRegistryData(addressOf(CONVERTER_REGISTRY_DATA)).isConvertibleTokenSmartToken(_convertibleToken, _value);\n\t}\n\n\t/**\n\t * @dev returns a list of converters for a given list of anchors\n\t * this is a utility function that can be used to reduce the number of calls to the contract\n\t *\n\t * @param _anchors list of converter anchors\n\t * @return list of converters\n\t */\n\tfunction getConvertersByAnchors(address[] _anchors) public view returns (address[]) {\n\t\taddress[] memory converters = new address[](_anchors.length);\n\n\t\tfor (uint256 i = 0; i < _anchors.length; i++) converters[i] = IConverterAnchor(_anchors[i]).owner();\n\n\t\treturn converters;\n\t}\n\n\t/**\n\t * @dev checks whether or not a given converter is valid\n\t *\n\t * @param _converter converter\n\t * @return true if the given converter is valid, false if not\n\t */\n\tfunction isConverterValid(IConverter _converter) public view returns (bool) {\n\t\t// verify that the converter is active\n\t\treturn _converter.token().owner() == address(_converter);\n\t}\n\n\t/**\n\t * @dev checks if a liquidity pool with given configuration is already registered\n\t *\n\t * @param _converter converter with specific configuration\n\t * @return if a liquidity pool with the same configuration is already registered\n\t */\n\tfunction isSimilarLiquidityPoolRegistered(IConverter _converter) public view returns (bool) {\n\t\tuint256 reserveTokenCount = _converter.connectorTokenCount();\n\t\tIERC20Token[] memory reserveTokens = new IERC20Token[](reserveTokenCount);\n\t\tuint32[] memory reserveWeights = new uint32[](reserveTokenCount);\n\n\t\t// get the reserve-configuration of the converter\n\t\tfor (uint256 i = 0; i < reserveTokenCount; i++) {\n\t\t\tIERC20Token reserveToken = _converter.connectorTokens(i);\n\t\t\treserveTokens[i] = reserveToken;\n\t\t\treserveWeights[i] = getReserveWeight(_converter, reserveToken);\n\t\t}\n\n\t\t// return if a liquidity pool with the same configuration is already registered\n\t\treturn getLiquidityPoolByConfig(_converter.converterType(), reserveTokens, reserveWeights) != IConverterAnchor(0);\n\t}\n\n\t/**\n\t * @dev searches for a liquidity pool with specific configuration\n\t *\n\t * @param _type converter type, see ConverterBase contract main doc\n\t * @param _reserveTokens reserve tokens\n\t * @param _reserveWeights reserve weights\n\t * @return the liquidity pool, or zero if no such liquidity pool exists\n\t */\n\tfunction getLiquidityPoolByConfig(\n\t\tuint16 _type,\n\t\tIERC20Token[] memory _reserveTokens,\n\t\tuint32[] memory _reserveWeights\n\t) public view returns (IConverterAnchor) {\n\t\t// verify that the input parameters represent a valid liquidity pool\n\t\tif (_reserveTokens.length == _reserveWeights.length && _reserveTokens.length > 1) {\n\t\t\t// get the anchors of the least frequent token (optimization)\n\t\t\taddress[] memory convertibleTokenAnchors = getLeastFrequentTokenAnchors(_reserveTokens);\n\t\t\t// search for a converter with the same configuration\n\t\t\tfor (uint256 i = 0; i < convertibleTokenAnchors.length; i++) {\n\t\t\t\tIConverterAnchor anchor = IConverterAnchor(convertibleTokenAnchors[i]);\n\t\t\t\tIConverter converter = IConverter(anchor.owner());\n\t\t\t\tif (isConverterReserveConfigEqual(converter, _type, _reserveTokens, _reserveWeights)) return anchor;\n\t\t\t}\n\t\t}\n\n\t\treturn IConverterAnchor(0);\n\t}\n\n\t/**\n\t * @dev adds a converter anchor to the registry\n\t *\n\t * @param _converterRegistryData Converter Registry Data Address\n\t * @param _anchor converter anchor\n\t */\n\tfunction addAnchor(IConverterRegistryData _converterRegistryData, address _anchor) internal {\n\t\t_converterRegistryData.addSmartToken(_anchor);\n\t\temit ConverterAnchorAdded(_anchor);\n\t\temit SmartTokenAdded(_anchor);\n\t}\n\n\t/**\n\t * @dev removes a converter anchor from the registry\n\t *\n\t * @param _converterRegistryData Converter Registry Data Address\n\t * @param _anchor converter anchor\n\t */\n\tfunction removeAnchor(IConverterRegistryData _converterRegistryData, address _anchor) internal {\n\t\t_converterRegistryData.removeSmartToken(_anchor);\n\t\temit ConverterAnchorRemoved(_anchor);\n\t\temit SmartTokenRemoved(_anchor);\n\t}\n\n\t/**\n\t * @dev adds a liquidity pool to the registry\n\t *\n\t * @param _converterRegistryData Converter Registry Data Address\n\t * @param _liquidityPool liquidity pool\n\t */\n\tfunction addLiquidityPool(IConverterRegistryData _converterRegistryData, address _liquidityPool) internal {\n\t\t_converterRegistryData.addLiquidityPool(_liquidityPool);\n\t\temit LiquidityPoolAdded(_liquidityPool);\n\t}\n\n\t/**\n\t * @dev removes a liquidity pool from the registry\n\t *\n\t * @param _converterRegistryData Converter Registry Data Address\n\t * @param _liquidityPool liquidity pool\n\t */\n\tfunction removeLiquidityPool(IConverterRegistryData _converterRegistryData, address _liquidityPool) internal {\n\t\t_converterRegistryData.removeLiquidityPool(_liquidityPool);\n\t\temit LiquidityPoolRemoved(_liquidityPool);\n\t}\n\n\t/**\n\t * @dev adds a convertible token to the registry\n\t *\n\t * @param _converterRegistryData Converter Registry Data Address\n\t * @param _convertibleToken convertible token\n\t * @param _anchor associated converter anchor\n\t */\n\tfunction addConvertibleToken(\n\t\tIConverterRegistryData _converterRegistryData,\n\t\taddress _convertibleToken,\n\t\taddress _anchor\n\t) internal {\n\t\t_converterRegistryData.addConvertibleToken(_convertibleToken, _anchor);\n\t\temit ConvertibleTokenAdded(_convertibleToken, _anchor);\n\t}\n\n\t/**\n\t * @dev removes a convertible token from the registry\n\t *\n\t * @param _converterRegistryData Converter Registry Data Address\n\t * @param _convertibleToken convertible token\n\t * @param _anchor associated converter anchor\n\t */\n\tfunction removeConvertibleToken(\n\t\tIConverterRegistryData _converterRegistryData,\n\t\taddress _convertibleToken,\n\t\taddress _anchor\n\t) internal {\n\t\t_converterRegistryData.removeConvertibleToken(_convertibleToken, _anchor);\n\t\temit ConvertibleTokenRemoved(_convertibleToken, _anchor);\n\t}\n\n\tfunction addConverterInternal(IConverter _converter) private {\n\t\tIConverterRegistryData converterRegistryData = IConverterRegistryData(addressOf(CONVERTER_REGISTRY_DATA));\n\t\tIConverterAnchor anchor = IConverter(_converter).token();\n\t\tuint256 reserveTokenCount = _converter.connectorTokenCount();\n\n\t\t// add the converter anchor\n\t\taddAnchor(converterRegistryData, anchor);\n\t\tif (reserveTokenCount > 1) addLiquidityPool(converterRegistryData, anchor);\n\t\telse addConvertibleToken(converterRegistryData, anchor, anchor);\n\n\t\t// add all reserve tokens\n\t\tfor (uint256 i = 0; i < reserveTokenCount; i++) addConvertibleToken(converterRegistryData, _converter.connectorTokens(i), anchor);\n\t}\n\n\tfunction removeConverterInternal(IConverter _converter) private {\n\t\tIConverterRegistryData converterRegistryData = IConverterRegistryData(addressOf(CONVERTER_REGISTRY_DATA));\n\t\tIConverterAnchor anchor = IConverter(_converter).token();\n\t\tuint256 reserveTokenCount = _converter.connectorTokenCount();\n\n\t\t// remove the converter anchor\n\t\tremoveAnchor(converterRegistryData, anchor);\n\t\tif (reserveTokenCount > 1) removeLiquidityPool(converterRegistryData, anchor);\n\t\telse removeConvertibleToken(converterRegistryData, anchor, anchor);\n\n\t\t// remove all reserve tokens\n\t\tfor (uint256 i = 0; i < reserveTokenCount; i++) removeConvertibleToken(converterRegistryData, _converter.connectorTokens(i), anchor);\n\t}\n\n\tfunction getLeastFrequentTokenAnchors(IERC20Token[] memory _reserveTokens) private view returns (address[] memory) {\n\t\tIConverterRegistryData converterRegistryData = IConverterRegistryData(addressOf(CONVERTER_REGISTRY_DATA));\n\t\tuint256 minAnchorCount = converterRegistryData.getConvertibleTokenSmartTokenCount(_reserveTokens[0]);\n\t\tuint256 index = 0;\n\n\t\t// find the reserve token which has the smallest number of converter anchors\n\t\tfor (uint256 i = 1; i < _reserveTokens.length; i++) {\n\t\t\tuint256 convertibleTokenAnchorCount = converterRegistryData.getConvertibleTokenSmartTokenCount(_reserveTokens[i]);\n\t\t\tif (minAnchorCount > convertibleTokenAnchorCount) {\n\t\t\t\tminAnchorCount = convertibleTokenAnchorCount;\n\t\t\t\tindex = i;\n\t\t\t}\n\t\t}\n\n\t\treturn converterRegistryData.getConvertibleTokenSmartTokens(_reserveTokens[index]);\n\t}\n\n\tfunction isConverterReserveConfigEqual(\n\t\tIConverter _converter,\n\t\tuint16 _type,\n\t\tIERC20Token[] memory _reserveTokens,\n\t\tuint32[] memory _reserveWeights\n\t) private view returns (bool) {\n\t\tif (_type != _converter.converterType()) return false;\n\n\t\tif (_reserveTokens.length != _converter.connectorTokenCount()) return false;\n\n\t\tfor (uint256 i = 0; i < _reserveTokens.length; i++) {\n\t\t\tif (_reserveWeights[i] != getReserveWeight(_converter, _reserveTokens[i])) return false;\n\t\t}\n\n\t\treturn true;\n\t}\n\n\tbytes4 private constant CONNECTORS_FUNC_SELECTOR = bytes4(keccak256(\"connectors(address)\"));\n\n\t// assembly is used since older converters didn't have the `getReserveWeight` function, so getting the weight\n\t// requires calling the `connectors` property function, however that results in the `stack too deep` compiler\n\t// error so using assembly to circumvent that issue\n\tfunction getReserveWeight(address _converter, address _reserveToken) private view returns (uint32) {\n\t\tuint256[2] memory ret;\n\t\tbytes memory data = abi.encodeWithSelector(CONNECTORS_FUNC_SELECTOR, _reserveToken);\n\n\t\tassembly {\n\t\t\tlet success := staticcall(\n\t\t\t\tgas, // gas remaining\n\t\t\t\t_converter, // destination address\n\t\t\t\tadd(data, 32), // input buffer (starts after the first 32 bytes in the `data` array)\n\t\t\t\tmload(data), // input length (loaded from the first 32 bytes in the `data` array)\n\t\t\t\tret, // output buffer\n\t\t\t\t64 // output length\n\t\t\t)\n\t\t\tif iszero(success) {\n\t\t\t\trevert(0, 0)\n\t\t\t}\n\t\t}\n\n\t\treturn uint32(ret[1]);\n\t}\n\n\t/**\n\t * @dev deprecated, backward compatibility, use `getAnchorCount`\n\t */\n\tfunction getSmartTokenCount() public view returns (uint256) {\n\t\treturn getAnchorCount();\n\t}\n\n\t/**\n\t * @dev deprecated, backward compatibility, use `getAnchors`\n\t */\n\tfunction getSmartTokens() public view returns (address[]) {\n\t\treturn getAnchors();\n\t}\n\n\t/**\n\t * @dev deprecated, backward compatibility, use `getAnchor`\n\t */\n\tfunction getSmartToken(uint256 _index) public view returns (address) {\n\t\treturn getAnchor(_index);\n\t}\n\n\t/**\n\t * @dev deprecated, backward compatibility, use `isAnchor`\n\t */\n\tfunction isSmartToken(address _value) public view returns (bool) {\n\t\treturn isAnchor(_value);\n\t}\n\n\t/**\n\t * @dev deprecated, backward compatibility, use `getConvertibleTokenAnchorCount`\n\t */\n\tfunction getConvertibleTokenSmartTokenCount(address _convertibleToken) public view returns (uint256) {\n\t\treturn getConvertibleTokenAnchorCount(_convertibleToken);\n\t}\n\n\t/**\n\t * @dev deprecated, backward compatibility, use `getConvertibleTokenAnchors`\n\t */\n\tfunction getConvertibleTokenSmartTokens(address _convertibleToken) public view returns (address[]) {\n\t\treturn getConvertibleTokenAnchors(_convertibleToken);\n\t}\n\n\t/**\n\t * @dev deprecated, backward compatibility, use `getConvertibleTokenAnchor`\n\t */\n\tfunction getConvertibleTokenSmartToken(address _convertibleToken, uint256 _index) public view returns (address) {\n\t\treturn getConvertibleTokenAnchor(_convertibleToken, _index);\n\t}\n\n\t/**\n\t * @dev deprecated, backward compatibility, use `isConvertibleTokenAnchor`\n\t */\n\tfunction isConvertibleTokenSmartToken(address _convertibleToken, address _value) public view returns (bool) {\n\t\treturn isConvertibleTokenAnchor(_convertibleToken, _value);\n\t}\n\n\t/**\n\t * @dev deprecated, backward compatibility, use `getConvertersByAnchors`\n\t */\n\tfunction getConvertersBySmartTokens(address[] _smartTokens) public view returns (address[]) {\n\t\treturn getConvertersByAnchors(_smartTokens);\n\t}\n\n\t/**\n\t * @dev deprecated, backward compatibility, use `getLiquidityPoolByConfig`\n\t */\n\tfunction getLiquidityPoolByReserveConfig(IERC20Token[] memory _reserveTokens, uint32[] memory _reserveWeights)\n\t\tpublic\n\t\tview\n\t\treturns (IConverterAnchor)\n\t{\n\t\treturn getLiquidityPoolByConfig(1, _reserveTokens, _reserveWeights);\n\t}\n}\n" - }, - "solidity/contracts/utility/TokenHandler.sol": { - "content": "pragma solidity 0.4.26;\nimport \"../token/interfaces/IERC20Token.sol\";\n\ncontract TokenHandler {\n\tbytes4 private constant APPROVE_FUNC_SELECTOR = bytes4(keccak256(\"approve(address,uint256)\"));\n\tbytes4 private constant TRANSFER_FUNC_SELECTOR = bytes4(keccak256(\"transfer(address,uint256)\"));\n\tbytes4 private constant TRANSFER_FROM_FUNC_SELECTOR = bytes4(keccak256(\"transferFrom(address,address,uint256)\"));\n\n\t/**\n\t * @dev executes the ERC20 token's `approve` function and reverts upon failure\n\t * the main purpose of this function is to prevent a non standard ERC20 token\n\t * from failing silently\n\t *\n\t * @param _token ERC20 token address\n\t * @param _spender approved address\n\t * @param _value allowance amount\n\t */\n\tfunction safeApprove(\n\t\tIERC20Token _token,\n\t\taddress _spender,\n\t\tuint256 _value\n\t) internal {\n\t\texecute(_token, abi.encodeWithSelector(APPROVE_FUNC_SELECTOR, _spender, _value));\n\t}\n\n\t/**\n\t * @dev executes the ERC20 token's `transfer` function and reverts upon failure\n\t * the main purpose of this function is to prevent a non standard ERC20 token\n\t * from failing silently\n\t *\n\t * @param _token ERC20 token address\n\t * @param _to target address\n\t * @param _value transfer amount\n\t */\n\tfunction safeTransfer(\n\t\tIERC20Token _token,\n\t\taddress _to,\n\t\tuint256 _value\n\t) internal {\n\t\texecute(_token, abi.encodeWithSelector(TRANSFER_FUNC_SELECTOR, _to, _value));\n\t}\n\n\t/**\n\t * @dev executes the ERC20 token's `transferFrom` function and reverts upon failure\n\t * the main purpose of this function is to prevent a non standard ERC20 token\n\t * from failing silently\n\t *\n\t * @param _token ERC20 token address\n\t * @param _from source address\n\t * @param _to target address\n\t * @param _value transfer amount\n\t */\n\tfunction safeTransferFrom(\n\t\tIERC20Token _token,\n\t\taddress _from,\n\t\taddress _to,\n\t\tuint256 _value\n\t) internal {\n\t\texecute(_token, abi.encodeWithSelector(TRANSFER_FROM_FUNC_SELECTOR, _from, _to, _value));\n\t}\n\n\t/**\n\t * @dev executes a function on the ERC20 token and reverts upon failure\n\t * the main purpose of this function is to prevent a non standard ERC20 token\n\t * from failing silently\n\t *\n\t * @param _token ERC20 token address\n\t * @param _data data to pass in to the token's contract for execution\n\t */\n\tfunction execute(IERC20Token _token, bytes memory _data) private {\n\t\tuint256[1] memory ret = [uint256(1)];\n\n\t\tassembly {\n\t\t\tlet success := call(\n\t\t\t\tgas, // gas remaining\n\t\t\t\t_token, // destination address\n\t\t\t\t0, // no ether\n\t\t\t\tadd(_data, 32), // input buffer (starts after the first 32 bytes in the `data` array)\n\t\t\t\tmload(_data), // input length (loaded from the first 32 bytes in the `data` array)\n\t\t\t\tret, // output buffer\n\t\t\t\t32 // output length\n\t\t\t)\n\t\t\tif iszero(success) {\n\t\t\t\trevert(0, 0)\n\t\t\t}\n\t\t}\n\n\t\trequire(ret[0] != 0, \"ERR_TRANSFER_FAILED\");\n\t}\n}\n" - }, - "solidity/contracts/converter/interfaces/IConverterFactory.sol": { - "content": "pragma solidity 0.4.26;\nimport \"./IConverter.sol\";\nimport \"./IConverterAnchor.sol\";\nimport \"./ITypedConverterCustomFactory.sol\";\nimport \"../../utility/interfaces/IContractRegistry.sol\";\n\n/*\n Converter Factory interface\n*/\ncontract IConverterFactory {\n\tfunction createAnchor(\n\t\tuint16 _type,\n\t\tstring _name,\n\t\tstring _symbol,\n\t\tuint8 _decimals\n\t) public returns (IConverterAnchor);\n\n\tfunction createConverter(\n\t\tuint16 _type,\n\t\tIConverterAnchor _anchor,\n\t\tIContractRegistry _registry,\n\t\tuint32 _maxConversionFee\n\t) public returns (IConverter);\n\n\tfunction customFactories(uint16 _type) public view returns (ITypedConverterCustomFactory) {\n\t\t_type;\n\t\tthis;\n\t}\n}\n" - }, - "solidity/contracts/converter/interfaces/IConverterRegistryData.sol": { - "content": "pragma solidity 0.4.26;\n\ninterface IConverterRegistryData {\n\tfunction addSmartToken(address _smartToken) external;\n\n\tfunction removeSmartToken(address _smartToken) external;\n\n\tfunction addLiquidityPool(address _liquidityPool) external;\n\n\tfunction removeLiquidityPool(address _liquidityPool) external;\n\n\tfunction addConvertibleToken(address _convertibleToken, address _smartToken) external;\n\n\tfunction removeConvertibleToken(address _convertibleToken, address _smartToken) external;\n\n\tfunction getSmartTokenCount() external view returns (uint256);\n\n\tfunction getSmartTokens() external view returns (address[]);\n\n\tfunction getSmartToken(uint256 _index) external view returns (address);\n\n\tfunction isSmartToken(address _value) external view returns (bool);\n\n\tfunction getLiquidityPoolCount() external view returns (uint256);\n\n\tfunction getLiquidityPools() external view returns (address[]);\n\n\tfunction getLiquidityPool(uint256 _index) external view returns (address);\n\n\tfunction isLiquidityPool(address _value) external view returns (bool);\n\n\tfunction getConvertibleTokenCount() external view returns (uint256);\n\n\tfunction getConvertibleTokens() external view returns (address[]);\n\n\tfunction getConvertibleToken(uint256 _index) external view returns (address);\n\n\tfunction isConvertibleToken(address _value) external view returns (bool);\n\n\tfunction getConvertibleTokenSmartTokenCount(address _convertibleToken) external view returns (uint256);\n\n\tfunction getConvertibleTokenSmartTokens(address _convertibleToken) external view returns (address[]);\n\n\tfunction getConvertibleTokenSmartToken(address _convertibleToken, uint256 _index) external view returns (address);\n\n\tfunction isConvertibleTokenSmartToken(address _convertibleToken, address _value) external view returns (bool);\n}\n" - }, - "solidity/contracts/converter/interfaces/ITypedConverterCustomFactory.sol": { - "content": "pragma solidity 0.4.26;\n\n/*\n Typed Converter Custom Factory interface\n*/\ncontract ITypedConverterCustomFactory {\n\tfunction converterType() public pure returns (uint16);\n}\n" - }, - "solidity/contracts/helpers/TestConverterRegistry.sol": { - "content": "pragma solidity 0.4.26;\nimport \"../converter/ConverterRegistry.sol\";\n\n/*\n Utils test helper that exposes the converter registry functions\n*/\ncontract TestConverterRegistry is ConverterRegistry {\n\tIConverter public createdConverter;\n\n\tconstructor(IContractRegistry _registry) public ConverterRegistry(_registry) {}\n\n\tfunction newConverter(\n\t\tuint16 _type,\n\t\tstring _name,\n\t\tstring _symbol,\n\t\tuint8 _decimals,\n\t\tuint32 _maxConversionFee,\n\t\tIERC20Token[] memory _reserveTokens,\n\t\tuint32[] memory _reserveWeights\n\t) public returns (IConverter) {\n\t\tcreatedConverter = super.newConverter(_type, _name, _symbol, _decimals, _maxConversionFee, _reserveTokens, _reserveWeights);\n\n\t\treturn createdConverter;\n\t}\n}\n" - }, - "solidity/contracts/converter/ConverterRegistryData.sol": { - "content": "pragma solidity 0.4.26;\nimport \"../utility/ContractRegistryClient.sol\";\nimport \"./interfaces/IConverterRegistryData.sol\";\n\n/**\n * @dev The ConverterRegistryData contract is an integral part of the converter registry\n * as it serves as the database contract that holds all registry data.\n *\n * The registry is separated into two different contracts for upgradability - the data contract\n * is harder to upgrade as it requires migrating all registry data into a new contract, while\n * the registry contract itself can be easily upgraded.\n *\n * For that same reason, the data contract is simple and contains no logic beyond the basic data\n * access utilities that it exposes.\n */\ncontract ConverterRegistryData is IConverterRegistryData, ContractRegistryClient {\n\tstruct Item {\n\t\tbool valid;\n\t\tuint256 index;\n\t}\n\n\tstruct Items {\n\t\taddress[] array;\n\t\tmapping(address => Item) table;\n\t}\n\n\tstruct List {\n\t\tuint256 index;\n\t\tItems items;\n\t}\n\n\tstruct Lists {\n\t\taddress[] array;\n\t\tmapping(address => List) table;\n\t}\n\n\tItems private smartTokens;\n\tItems private liquidityPools;\n\tLists private convertibleTokens;\n\n\t/**\n\t * @dev initializes a new ConverterRegistryData instance\n\t *\n\t * @param _registry address of a contract registry contract\n\t */\n\tconstructor(IContractRegistry _registry) public ContractRegistryClient(_registry) {}\n\n\t/**\n\t * @dev adds a smart token\n\t *\n\t * @param _smartToken smart token\n\t */\n\tfunction addSmartToken(address _smartToken) external only(CONVERTER_REGISTRY) {\n\t\taddItem(smartTokens, _smartToken);\n\t}\n\n\t/**\n\t * @dev removes a smart token\n\t *\n\t * @param _smartToken smart token\n\t */\n\tfunction removeSmartToken(address _smartToken) external only(CONVERTER_REGISTRY) {\n\t\tremoveItem(smartTokens, _smartToken);\n\t}\n\n\t/**\n\t * @dev adds a liquidity pool\n\t *\n\t * @param _liquidityPool liquidity pool\n\t */\n\tfunction addLiquidityPool(address _liquidityPool) external only(CONVERTER_REGISTRY) {\n\t\taddItem(liquidityPools, _liquidityPool);\n\t}\n\n\t/**\n\t * @dev removes a liquidity pool\n\t *\n\t * @param _liquidityPool liquidity pool\n\t */\n\tfunction removeLiquidityPool(address _liquidityPool) external only(CONVERTER_REGISTRY) {\n\t\tremoveItem(liquidityPools, _liquidityPool);\n\t}\n\n\t/**\n\t * @dev adds a convertible token\n\t *\n\t * @param _convertibleToken convertible token\n\t * @param _smartToken associated smart token\n\t */\n\tfunction addConvertibleToken(address _convertibleToken, address _smartToken) external only(CONVERTER_REGISTRY) {\n\t\tList storage list = convertibleTokens.table[_convertibleToken];\n\t\tif (list.items.array.length == 0) {\n\t\t\tlist.index = convertibleTokens.array.push(_convertibleToken) - 1;\n\t\t}\n\t\taddItem(list.items, _smartToken);\n\t}\n\n\t/**\n\t * @dev removes a convertible token\n\t *\n\t * @param _convertibleToken convertible token\n\t * @param _smartToken associated smart token\n\t */\n\tfunction removeConvertibleToken(address _convertibleToken, address _smartToken) external only(CONVERTER_REGISTRY) {\n\t\tList storage list = convertibleTokens.table[_convertibleToken];\n\t\tremoveItem(list.items, _smartToken);\n\t\tif (list.items.array.length == 0) {\n\t\t\taddress lastConvertibleToken = convertibleTokens.array[convertibleTokens.array.length - 1];\n\t\t\tconvertibleTokens.table[lastConvertibleToken].index = list.index;\n\t\t\tconvertibleTokens.array[list.index] = lastConvertibleToken;\n\t\t\tconvertibleTokens.array.length--;\n\t\t\tdelete convertibleTokens.table[_convertibleToken];\n\t\t}\n\t}\n\n\t/**\n\t * @dev returns the number of smart tokens\n\t *\n\t * @return number of smart tokens\n\t */\n\tfunction getSmartTokenCount() external view returns (uint256) {\n\t\treturn smartTokens.array.length;\n\t}\n\n\t/**\n\t * @dev returns the list of smart tokens\n\t *\n\t * @return list of smart tokens\n\t */\n\tfunction getSmartTokens() external view returns (address[]) {\n\t\treturn smartTokens.array;\n\t}\n\n\t/**\n\t * @dev returns the smart token at a given index\n\t *\n\t * @param _index index\n\t * @return smart token at the given index\n\t */\n\tfunction getSmartToken(uint256 _index) external view returns (address) {\n\t\treturn smartTokens.array[_index];\n\t}\n\n\t/**\n\t * @dev checks whether or not a given value is a smart token\n\t *\n\t * @param _value value\n\t * @return true if the given value is a smart token, false if not\n\t */\n\tfunction isSmartToken(address _value) external view returns (bool) {\n\t\treturn smartTokens.table[_value].valid;\n\t}\n\n\t/**\n\t * @dev returns the number of liquidity pools\n\t *\n\t * @return number of liquidity pools\n\t */\n\tfunction getLiquidityPoolCount() external view returns (uint256) {\n\t\treturn liquidityPools.array.length;\n\t}\n\n\t/**\n\t * @dev returns the list of liquidity pools\n\t *\n\t * @return list of liquidity pools\n\t */\n\tfunction getLiquidityPools() external view returns (address[]) {\n\t\treturn liquidityPools.array;\n\t}\n\n\t/**\n\t * @dev returns the liquidity pool at a given index\n\t *\n\t * @param _index index\n\t * @return liquidity pool at the given index\n\t */\n\tfunction getLiquidityPool(uint256 _index) external view returns (address) {\n\t\treturn liquidityPools.array[_index];\n\t}\n\n\t/**\n\t * @dev checks whether or not a given value is a liquidity pool\n\t *\n\t * @param _value value\n\t * @return true if the given value is a liquidity pool, false if not\n\t */\n\tfunction isLiquidityPool(address _value) external view returns (bool) {\n\t\treturn liquidityPools.table[_value].valid;\n\t}\n\n\t/**\n\t * @dev returns the number of convertible tokens\n\t *\n\t * @return number of convertible tokens\n\t */\n\tfunction getConvertibleTokenCount() external view returns (uint256) {\n\t\treturn convertibleTokens.array.length;\n\t}\n\n\t/**\n\t * @dev returns the list of convertible tokens\n\t *\n\t * @return list of convertible tokens\n\t */\n\tfunction getConvertibleTokens() external view returns (address[]) {\n\t\treturn convertibleTokens.array;\n\t}\n\n\t/**\n\t * @dev returns the convertible token at a given index\n\t *\n\t * @param _index index\n\t * @return convertible token at the given index\n\t */\n\tfunction getConvertibleToken(uint256 _index) external view returns (address) {\n\t\treturn convertibleTokens.array[_index];\n\t}\n\n\t/**\n\t * @dev checks whether or not a given value is a convertible token\n\t *\n\t * @param _value value\n\t * @return true if the given value is a convertible token, false if not\n\t */\n\tfunction isConvertibleToken(address _value) external view returns (bool) {\n\t\treturn convertibleTokens.table[_value].items.array.length > 0;\n\t}\n\n\t/**\n\t * @dev returns the number of smart tokens associated with a given convertible token\n\t *\n\t * @param _convertibleToken convertible token\n\t * @return number of smart tokens associated with the given convertible token\n\t */\n\tfunction getConvertibleTokenSmartTokenCount(address _convertibleToken) external view returns (uint256) {\n\t\treturn convertibleTokens.table[_convertibleToken].items.array.length;\n\t}\n\n\t/**\n\t * @dev returns the list of smart tokens associated with a given convertible token\n\t *\n\t * @param _convertibleToken convertible token\n\t * @return list of smart tokens associated with the given convertible token\n\t */\n\tfunction getConvertibleTokenSmartTokens(address _convertibleToken) external view returns (address[]) {\n\t\treturn convertibleTokens.table[_convertibleToken].items.array;\n\t}\n\n\t/**\n\t * @dev returns the smart token associated with a given convertible token at a given index\n\t *\n\t * @param _index index\n\t * @return smart token associated with the given convertible token at the given index\n\t */\n\tfunction getConvertibleTokenSmartToken(address _convertibleToken, uint256 _index) external view returns (address) {\n\t\treturn convertibleTokens.table[_convertibleToken].items.array[_index];\n\t}\n\n\t/**\n\t * @dev checks whether or not a given value is a smart token of a given convertible token\n\t *\n\t * @param _convertibleToken convertible token\n\t * @param _value value\n\t * @return true if the given value is a smart token of the given convertible token, false it not\n\t */\n\tfunction isConvertibleTokenSmartToken(address _convertibleToken, address _value) external view returns (bool) {\n\t\treturn convertibleTokens.table[_convertibleToken].items.table[_value].valid;\n\t}\n\n\t/**\n\t * @dev adds an item to a list of items\n\t *\n\t * @param _items list of items\n\t * @param _value item's value\n\t */\n\tfunction addItem(Items storage _items, address _value) internal validAddress(_value) {\n\t\tItem storage item = _items.table[_value];\n\t\trequire(!item.valid, \"ERR_INVALID_ITEM\");\n\n\t\titem.index = _items.array.push(_value) - 1;\n\t\titem.valid = true;\n\t}\n\n\t/**\n\t * @dev removes an item from a list of items\n\t *\n\t * @param _items list of items\n\t * @param _value item's value\n\t */\n\tfunction removeItem(Items storage _items, address _value) internal validAddress(_value) {\n\t\tItem storage item = _items.table[_value];\n\t\trequire(item.valid, \"ERR_INVALID_ITEM\");\n\n\t\taddress lastValue = _items.array[_items.array.length - 1];\n\t\t_items.table[lastValue].index = item.index;\n\t\t_items.array[item.index] = lastValue;\n\t\t_items.array.length--;\n\t\tdelete _items.table[_value];\n\t}\n}\n" - }, - "solidity/contracts/sovrynswapx/SovrynSwapX.sol": { - "content": "pragma solidity 0.4.26;\nimport \"./interfaces/ISovrynSwapXUpgrader.sol\";\nimport \"./interfaces/ISovrynSwapX.sol\";\nimport \"../utility/ContractRegistryClient.sol\";\nimport \"../utility/SafeMath.sol\";\nimport \"../utility/TokenHandler.sol\";\nimport \"../utility/TokenHolder.sol\";\n\n/**\n * @dev The SovrynSwapX contract allows cross chain token transfers.\n *\n * There are two processes that take place in the contract -\n * - Initiate a cross chain transfer to a target blockchain (locks tokens from the caller account on Ethereum)\n * - Report a cross chain transfer initiated on a source blockchain (releases tokens to an account on Ethereum)\n *\n * Reporting cross chain transfers works similar to standard multisig contracts, meaning that multiple\n * callers are required to report a transfer before tokens are released to the target account.\n */\ncontract SovrynSwapX is ISovrynSwapX, TokenHandler, TokenHolder, ContractRegistryClient {\n\tusing SafeMath for uint256;\n\n\t// represents a transaction on another blockchain where tokens were destroyed/locked\n\tstruct Transaction {\n\t\tuint256 amount;\n\t\tbytes32 fromBlockchain;\n\t\taddress to;\n\t\tuint8 numOfReports;\n\t\tbool completed;\n\t}\n\n\tuint16 public constant version = 4;\n\n\tuint256 public maxLockLimit; // the maximum amount of tokens that can be locked in one transaction\n\tuint256 public maxReleaseLimit; // the maximum amount of tokens that can be released in one transaction\n\tuint256 public minLimit; // the minimum amount of tokens that can be transferred in one transaction\n\tuint256 public prevLockLimit; // the lock limit *after* the last transaction\n\tuint256 public prevReleaseLimit; // the release limit *after* the last transaction\n\tuint256 public limitIncPerBlock; // how much the limit increases per block\n\tuint256 public prevLockBlockNumber; // the block number of the last lock transaction\n\tuint256 public prevReleaseBlockNumber; // the block number of the last release transaction\n\tuint8 public minRequiredReports; // minimum number of required reports to release tokens\n\n\tIERC20Token public token; // erc20 token\n\n\tbool public xTransfersEnabled = true; // true if x transfers are enabled, false if not\n\tbool public reportingEnabled = true; // true if reporting is enabled, false if not\n\n\t// txId -> Transaction\n\tmapping(uint256 => Transaction) public transactions;\n\n\t// xTransferId -> txId\n\tmapping(uint256 => uint256) public transactionIds;\n\n\t// txId -> reporter -> true if reporter already reported txId\n\tmapping(uint256 => mapping(address => bool)) public reportedTxs;\n\n\t// address -> true if address is reporter\n\tmapping(address => bool) public reporters;\n\n\t/**\n\t * @dev triggered when tokens are locked in smart contract\n\t *\n\t * @param _from wallet address that the tokens are locked from\n\t * @param _amount amount locked\n\t */\n\tevent TokensLock(address indexed _from, uint256 _amount);\n\n\t/**\n\t * @dev triggered when tokens are released by the smart contract\n\t *\n\t * @param _to wallet address that the tokens are released to\n\t * @param _amount amount released\n\t */\n\tevent TokensRelease(address indexed _to, uint256 _amount);\n\n\t/**\n\t * @dev triggered when xTransfer is successfully called\n\t *\n\t * @param _from wallet address that initiated the xtransfer\n\t * @param _toBlockchain target blockchain\n\t * @param _to target wallet\n\t * @param _amount transfer amount\n\t * @param _id xtransfer id\n\t */\n\tevent XTransfer(address indexed _from, bytes32 _toBlockchain, bytes32 indexed _to, uint256 _amount, uint256 _id);\n\n\t/**\n\t * @dev triggered when report is successfully submitted\n\t *\n\t * @param _reporter reporter wallet\n\t * @param _fromBlockchain source blockchain\n\t * @param _txId tx id on the source blockchain\n\t * @param _to target wallet\n\t * @param _amount transfer amount\n\t * @param _xTransferId xtransfer id\n\t */\n\tevent TxReport(address indexed _reporter, bytes32 _fromBlockchain, uint256 _txId, address _to, uint256 _amount, uint256 _xTransferId);\n\n\t/**\n\t * @dev triggered when final report is successfully submitted\n\t *\n\t * @param _to target wallet\n\t * @param _id xtransfer id\n\t */\n\tevent XTransferComplete(address _to, uint256 _id);\n\n\t/**\n\t * @dev initializes a new SovrynSwapX instance\n\t *\n\t * @param _maxLockLimit maximum amount of tokens that can be locked in one transaction\n\t * @param _maxReleaseLimit maximum amount of tokens that can be released in one transaction\n\t * @param _minLimit minimum amount of tokens that can be transferred in one transaction\n\t * @param _limitIncPerBlock how much the limit increases per block\n\t * @param _minRequiredReports minimum number of reporters to report transaction before tokens can be released\n\t * @param _registry address of contract registry\n\t * @param _token erc20 token\n\t */\n\tconstructor(\n\t\tuint256 _maxLockLimit,\n\t\tuint256 _maxReleaseLimit,\n\t\tuint256 _minLimit,\n\t\tuint256 _limitIncPerBlock,\n\t\tuint8 _minRequiredReports,\n\t\tIContractRegistry _registry,\n\t\tIERC20Token _token\n\t)\n\t\tpublic\n\t\tContractRegistryClient(_registry)\n\t\tgreaterThanZero(_maxLockLimit)\n\t\tgreaterThanZero(_maxReleaseLimit)\n\t\tgreaterThanZero(_minLimit)\n\t\tgreaterThanZero(_limitIncPerBlock)\n\t\tgreaterThanZero(_minRequiredReports)\n\t\tvalidAddress(_token)\n\t\tnotThis(_token)\n\t{\n\t\t// validate input\n\t\trequire(_minLimit <= _maxLockLimit && _minLimit <= _maxReleaseLimit, \"ERR_INVALID_MIN_LIMIT\");\n\n\t\t// the maximum limits, minimum limit, and limit increase per block\n\t\tmaxLockLimit = _maxLockLimit;\n\t\tmaxReleaseLimit = _maxReleaseLimit;\n\t\tminLimit = _minLimit;\n\t\tlimitIncPerBlock = _limitIncPerBlock;\n\t\tminRequiredReports = _minRequiredReports;\n\n\t\t// previous limit is _maxLimit, and previous block number is current block number\n\t\tprevLockLimit = _maxLockLimit;\n\t\tprevReleaseLimit = _maxReleaseLimit;\n\t\tprevLockBlockNumber = block.number;\n\t\tprevReleaseBlockNumber = block.number;\n\n\t\ttoken = _token;\n\t}\n\n\t// validates that the caller is a reporter\n\tmodifier reporterOnly {\n\t\t_reporterOnly();\n\t\t_;\n\t}\n\n\t// error message binary size optimization\n\tfunction _reporterOnly() internal view {\n\t\trequire(reporters[msg.sender], \"ERR_ACCESS_DENIED\");\n\t}\n\n\t// allows execution only when x transfers are enabled\n\tmodifier xTransfersAllowed {\n\t\t_xTransfersAllowed();\n\t\t_;\n\t}\n\n\t// error message binary size optimization\n\tfunction _xTransfersAllowed() internal view {\n\t\trequire(xTransfersEnabled, \"ERR_DISABLED\");\n\t}\n\n\t// allows execution only when reporting is enabled\n\tmodifier reportingAllowed {\n\t\t_reportingAllowed();\n\t\t_;\n\t}\n\n\t// error message binary size optimization\n\tfunction _reportingAllowed() internal view {\n\t\trequire(reportingEnabled, \"ERR_DISABLED\");\n\t}\n\n\t/**\n\t * @dev setter\n\t *\n\t * @param _maxLockLimit new maxLockLimit\n\t */\n\tfunction setMaxLockLimit(uint256 _maxLockLimit) public ownerOnly greaterThanZero(_maxLockLimit) {\n\t\tmaxLockLimit = _maxLockLimit;\n\t}\n\n\t/**\n\t * @dev setter\n\t *\n\t * @param _maxReleaseLimit new maxReleaseLimit\n\t */\n\tfunction setMaxReleaseLimit(uint256 _maxReleaseLimit) public ownerOnly greaterThanZero(_maxReleaseLimit) {\n\t\tmaxReleaseLimit = _maxReleaseLimit;\n\t}\n\n\t/**\n\t * @dev setter\n\t *\n\t * @param _minLimit new minLimit\n\t */\n\tfunction setMinLimit(uint256 _minLimit) public ownerOnly greaterThanZero(_minLimit) {\n\t\t// validate input\n\t\trequire(_minLimit <= maxLockLimit && _minLimit <= maxReleaseLimit, \"ERR_INVALID_MIN_LIMIT\");\n\n\t\tminLimit = _minLimit;\n\t}\n\n\t/**\n\t * @dev setter\n\t *\n\t * @param _limitIncPerBlock new limitIncPerBlock\n\t */\n\tfunction setLimitIncPerBlock(uint256 _limitIncPerBlock) public ownerOnly greaterThanZero(_limitIncPerBlock) {\n\t\tlimitIncPerBlock = _limitIncPerBlock;\n\t}\n\n\t/**\n\t * @dev setter\n\t *\n\t * @param _minRequiredReports new minRequiredReports\n\t */\n\tfunction setMinRequiredReports(uint8 _minRequiredReports) public ownerOnly greaterThanZero(_minRequiredReports) {\n\t\tminRequiredReports = _minRequiredReports;\n\t}\n\n\t/**\n\t * @dev allows the owner to set/remove reporters\n\t *\n\t * @param _reporter reporter whos status is to be set\n\t * @param _active true if the reporter is approved, false otherwise\n\t */\n\tfunction setReporter(address _reporter, bool _active) public ownerOnly {\n\t\treporters[_reporter] = _active;\n\t}\n\n\t/**\n\t * @dev allows the owner enable/disable the xTransfer method\n\t *\n\t * @param _enable true to enable, false to disable\n\t */\n\tfunction enableXTransfers(bool _enable) public ownerOnly {\n\t\txTransfersEnabled = _enable;\n\t}\n\n\t/**\n\t * @dev allows the owner enable/disable the reportTransaction method\n\t *\n\t * @param _enable true to enable, false to disable\n\t */\n\tfunction enableReporting(bool _enable) public ownerOnly {\n\t\treportingEnabled = _enable;\n\t}\n\n\t/**\n\t * @dev upgrades the contract to the latest version\n\t * can only be called by the owner\n\t * note that the owner needs to call acceptOwnership on the new contract after the upgrade\n\t *\n\t * @param _reporters new list of reporters\n\t */\n\tfunction upgrade(address[] _reporters) public ownerOnly {\n\t\tISovrynSwapXUpgrader sovrynSwapXUpgrader = ISovrynSwapXUpgrader(addressOf(SOVRYNSWAP_X_UPGRADER));\n\n\t\ttransferOwnership(sovrynSwapXUpgrader);\n\t\tsovrynSwapXUpgrader.upgrade(version, _reporters);\n\t\tacceptOwnership();\n\t}\n\n\t/**\n\t * @dev claims tokens from msg.sender to be converted to tokens on another blockchain\n\t *\n\t * @param _toBlockchain blockchain on which tokens will be issued\n\t * @param _to address to send the tokens to\n\t * @param _amount the amount of tokens to transfer\n\t */\n\tfunction xTransfer(\n\t\tbytes32 _toBlockchain,\n\t\tbytes32 _to,\n\t\tuint256 _amount\n\t) public xTransfersAllowed {\n\t\t// get the current lock limit\n\t\tuint256 currentLockLimit = getCurrentLockLimit();\n\n\t\t// verify lock limit\n\t\trequire(_amount >= minLimit && _amount <= currentLockLimit, \"ERR_AMOUNT_TOO_HIGH\");\n\n\t\tlockTokens(_amount);\n\n\t\t// set the previous lock limit and block number\n\t\tprevLockLimit = currentLockLimit.sub(_amount);\n\t\tprevLockBlockNumber = block.number;\n\n\t\t// emit XTransfer event with id of 0\n\t\temit XTransfer(msg.sender, _toBlockchain, _to, _amount, 0);\n\t}\n\n\t/**\n\t * @dev claims tokens from msg.sender to be converted to tokens on another blockchain\n\t *\n\t * @param _toBlockchain blockchain on which tokens will be issued\n\t * @param _to address to send the tokens to\n\t * @param _amount the amount of tokens to transfer\n\t * @param _id pre-determined unique (if non zero) id which refers to this transaction\n\t */\n\tfunction xTransfer(\n\t\tbytes32 _toBlockchain,\n\t\tbytes32 _to,\n\t\tuint256 _amount,\n\t\tuint256 _id\n\t) public xTransfersAllowed {\n\t\t// get the current lock limit\n\t\tuint256 currentLockLimit = getCurrentLockLimit();\n\n\t\t// require that; minLimit <= _amount <= currentLockLimit\n\t\trequire(_amount >= minLimit && _amount <= currentLockLimit, \"ERR_AMOUNT_TOO_HIGH\");\n\n\t\tlockTokens(_amount);\n\n\t\t// set the previous lock limit and block number\n\t\tprevLockLimit = currentLockLimit.sub(_amount);\n\t\tprevLockBlockNumber = block.number;\n\n\t\t// emit XTransfer event\n\t\temit XTransfer(msg.sender, _toBlockchain, _to, _amount, _id);\n\t}\n\n\t/**\n\t * @dev allows reporter to report transaction which occured on another blockchain\n\t *\n\t * @param _fromBlockchain blockchain in which tokens were destroyed\n\t * @param _txId transactionId of transaction thats being reported\n\t * @param _to address to receive tokens\n\t * @param _amount amount of tokens destroyed on another blockchain\n\t * @param _xTransferId unique (if non zero) pre-determined id (unlike _txId which is determined after the transactions been mined)\n\t */\n\tfunction reportTx(\n\t\tbytes32 _fromBlockchain,\n\t\tuint256 _txId,\n\t\taddress _to,\n\t\tuint256 _amount,\n\t\tuint256 _xTransferId\n\t) public reporterOnly reportingAllowed validAddress(_to) greaterThanZero(_amount) {\n\t\t// require that the transaction has not been reported yet by the reporter\n\t\trequire(!reportedTxs[_txId][msg.sender], \"ERR_ALREADY_REPORTED\");\n\n\t\t// set reported as true\n\t\treportedTxs[_txId][msg.sender] = true;\n\n\t\tTransaction storage txn = transactions[_txId];\n\n\t\t// If the caller is the first reporter, set the transaction details\n\t\tif (txn.numOfReports == 0) {\n\t\t\ttxn.to = _to;\n\t\t\ttxn.amount = _amount;\n\t\t\ttxn.fromBlockchain = _fromBlockchain;\n\n\t\t\tif (_xTransferId != 0) {\n\t\t\t\t// verify uniqueness of xTransfer id to prevent overwriting\n\t\t\t\trequire(transactionIds[_xTransferId] == 0, \"ERR_TX_ALREADY_EXISTS\");\n\t\t\t\ttransactionIds[_xTransferId] = _txId;\n\t\t\t}\n\t\t} else {\n\t\t\t// otherwise, verify transaction details\n\t\t\trequire(txn.to == _to && txn.amount == _amount && txn.fromBlockchain == _fromBlockchain, \"ERR_TX_MISMATCH\");\n\n\t\t\tif (_xTransferId != 0) require(transactionIds[_xTransferId] == _txId, \"ERR_TX_ALREADY_EXISTS\");\n\t\t}\n\n\t\t// increment the number of reports\n\t\ttxn.numOfReports++;\n\n\t\temit TxReport(msg.sender, _fromBlockchain, _txId, _to, _amount, _xTransferId);\n\n\t\t// if theres enough reports, try to release tokens\n\t\tif (txn.numOfReports >= minRequiredReports) {\n\t\t\trequire(!transactions[_txId].completed, \"ERR_TX_ALREADY_COMPLETED\");\n\n\t\t\t// set the transaction as completed\n\t\t\ttransactions[_txId].completed = true;\n\n\t\t\temit XTransferComplete(_to, _xTransferId);\n\n\t\t\treleaseTokens(_to, _amount);\n\t\t}\n\t}\n\n\t/**\n\t * @dev gets x transfer amount by xTransferId (not txId)\n\t *\n\t * @param _xTransferId unique (if non zero) pre-determined id (unlike _txId which is determined after the transactions been broadcasted)\n\t * @param _for address corresponding to xTransferId\n\t *\n\t * @return amount that was sent in xTransfer corresponding to _xTransferId\n\t */\n\tfunction getXTransferAmount(uint256 _xTransferId, address _for) public view returns (uint256) {\n\t\t// xTransferId -> txId -> Transaction\n\t\tTransaction memory transaction = transactions[transactionIds[_xTransferId]];\n\n\t\t// verify that the xTransferId is for _for\n\t\trequire(transaction.to == _for, \"ERR_TX_MISMATCH\");\n\n\t\treturn transaction.amount;\n\t}\n\n\t/**\n\t * @dev method for calculating current lock limit\n\t *\n\t * @return the current maximum limit of tokens that can be locked\n\t */\n\tfunction getCurrentLockLimit() public view returns (uint256) {\n\t\t// prevLockLimit + ((currBlockNumber - prevLockBlockNumber) * limitIncPerBlock)\n\t\tuint256 currentLockLimit = prevLockLimit.add(((block.number).sub(prevLockBlockNumber)).mul(limitIncPerBlock));\n\t\tif (currentLockLimit > maxLockLimit) return maxLockLimit;\n\t\treturn currentLockLimit;\n\t}\n\n\t/**\n\t * @dev method for calculating current release limit\n\t *\n\t * @return the current maximum limit of tokens that can be released\n\t */\n\tfunction getCurrentReleaseLimit() public view returns (uint256) {\n\t\t// prevReleaseLimit + ((currBlockNumber - prevReleaseBlockNumber) * limitIncPerBlock)\n\t\tuint256 currentReleaseLimit = prevReleaseLimit.add(((block.number).sub(prevReleaseBlockNumber)).mul(limitIncPerBlock));\n\t\tif (currentReleaseLimit > maxReleaseLimit) return maxReleaseLimit;\n\t\treturn currentReleaseLimit;\n\t}\n\n\t/**\n\t * @dev claims and locks tokens from msg.sender to be converted to tokens on another blockchain\n\t *\n\t * @param _amount the amount of tokens to lock\n\t */\n\tfunction lockTokens(uint256 _amount) private {\n\t\tsafeTransferFrom(token, msg.sender, address(this), _amount);\n\t\temit TokensLock(msg.sender, _amount);\n\t}\n\n\t/**\n\t * @dev private method to release tokens held by the contract\n\t *\n\t * @param _to the address to release tokens to\n\t * @param _amount the amount of tokens to release\n\t */\n\tfunction releaseTokens(address _to, uint256 _amount) private {\n\t\t// get the current release limit\n\t\tuint256 currentReleaseLimit = getCurrentReleaseLimit();\n\n\t\trequire(_amount >= minLimit && _amount <= currentReleaseLimit, \"ERR_AMOUNT_TOO_HIGH\");\n\n\t\t// update the previous release limit and block number\n\t\tprevReleaseLimit = currentReleaseLimit.sub(_amount);\n\t\tprevReleaseBlockNumber = block.number;\n\n\t\t// no need to require, reverts on failure\n\t\tsafeTransfer(token, _to, _amount);\n\n\t\temit TokensRelease(_to, _amount);\n\t}\n}\n" - }, - "solidity/contracts/sovrynswapx/interfaces/ISovrynSwapXUpgrader.sol": { - "content": "pragma solidity 0.4.26;\n\n/*\n SovrynSwap X Upgrader interface\n*/\ncontract ISovrynSwapXUpgrader {\n\tfunction upgrade(uint16 _version, address[] _reporters) public;\n}\n" - }, - "solidity/contracts/sovrynswapx/interfaces/ISovrynSwapX.sol": { - "content": "pragma solidity 0.4.26;\nimport \"../../token/interfaces/IERC20Token.sol\";\n\ncontract ISovrynSwapX {\n\tfunction token() public view returns (IERC20Token) {\n\t\tthis;\n\t}\n\n\tfunction xTransfer(\n\t\tbytes32 _toBlockchain,\n\t\tbytes32 _to,\n\t\tuint256 _amount,\n\t\tuint256 _id\n\t) public;\n\n\tfunction getXTransferAmount(uint256 _xTransferId, address _for) public view returns (uint256);\n}\n" - }, - "solidity/contracts/utility/SafeMath.sol": { - "content": "pragma solidity 0.4.26;\n\n/**\n * @dev Library for basic math operations with overflow/underflow protection\n */\nlibrary SafeMath {\n\t/**\n\t * @dev returns the sum of _x and _y, reverts if the calculation overflows\n\t *\n\t * @param _x value 1\n\t * @param _y value 2\n\t *\n\t * @return sum\n\t */\n\tfunction add(uint256 _x, uint256 _y) internal pure returns (uint256) {\n\t\tuint256 z = _x + _y;\n\t\trequire(z >= _x, \"ERR_OVERFLOW\");\n\t\treturn z;\n\t}\n\n\t/**\n\t * @dev returns the difference of _x minus _y, reverts if the calculation underflows\n\t *\n\t * @param _x minuend\n\t * @param _y subtrahend\n\t *\n\t * @return difference\n\t */\n\tfunction sub(uint256 _x, uint256 _y) internal pure returns (uint256) {\n\t\trequire(_x >= _y, \"ERR_UNDERFLOW\");\n\t\treturn _x - _y;\n\t}\n\n\t/**\n\t * @dev returns the product of multiplying _x by _y, reverts if the calculation overflows\n\t *\n\t * @param _x factor 1\n\t * @param _y factor 2\n\t *\n\t * @return product\n\t */\n\tfunction mul(uint256 _x, uint256 _y) internal pure returns (uint256) {\n\t\t// gas optimization\n\t\tif (_x == 0) return 0;\n\n\t\tuint256 z = _x * _y;\n\t\trequire(z / _x == _y, \"ERR_OVERFLOW\");\n\t\treturn z;\n\t}\n\n\t/**\n\t * @dev Integer division of two numbers truncating the quotient, reverts on division by zero.\n\t *\n\t * @param _x dividend\n\t * @param _y divisor\n\t *\n\t * @return quotient\n\t */\n\tfunction div(uint256 _x, uint256 _y) internal pure returns (uint256) {\n\t\trequire(_y > 0, \"ERR_DIVIDE_BY_ZERO\");\n\t\tuint256 c = _x / _y;\n\t\treturn c;\n\t}\n}\n" - }, - "solidity/contracts/utility/TokenHolder.sol": { - "content": "pragma solidity 0.4.26;\nimport \"./Owned.sol\";\nimport \"./Utils.sol\";\nimport \"./TokenHandler.sol\";\nimport \"./interfaces/ITokenHolder.sol\";\nimport \"../token/interfaces/IERC20Token.sol\";\n\n/**\n * @dev We consider every contract to be a 'token holder' since it's currently not possible\n * for a contract to deny receiving tokens.\n *\n * The TokenHolder's contract sole purpose is to provide a safety mechanism that allows\n * the owner to send tokens that were sent to the contract by mistake back to their sender.\n *\n * Note that we use the non standard ERC-20 interface which has no return value for transfer\n * in order to support both non standard as well as standard token contracts.\n * see https://github.com/ethereum/solidity/issues/4116\n */\ncontract TokenHolder is ITokenHolder, TokenHandler, Owned, Utils {\n\t/**\n\t * @dev withdraws tokens held by the contract and sends them to an account\n\t * can only be called by the owner\n\t *\n\t * @param _token ERC20 token contract address\n\t * @param _to account to receive the new amount\n\t * @param _amount amount to withdraw\n\t */\n\tfunction withdrawTokens(\n\t\tIERC20Token _token,\n\t\taddress _to,\n\t\tuint256 _amount\n\t) public ownerOnly validAddress(_token) validAddress(_to) notThis(_to) {\n\t\tsafeTransfer(_token, _to, _amount);\n\t}\n}\n" - }, - "solidity/contracts/SovrynSwapNetwork.sol": { - "content": "pragma solidity 0.4.26;\nimport \"./ISovrynSwapNetwork.sol\";\nimport \"./IConversionPathFinder.sol\";\nimport \"./converter/interfaces/IConverter.sol\";\nimport \"./converter/interfaces/IConverterAnchor.sol\";\nimport \"./converter/interfaces/ISovrynSwapFormula.sol\";\nimport \"./utility/ContractRegistryClient.sol\";\nimport \"./utility/ReentrancyGuard.sol\";\nimport \"./utility/TokenHolder.sol\";\nimport \"./utility/SafeMath.sol\";\nimport \"./token/interfaces/IEtherToken.sol\";\nimport \"./token/interfaces/ISmartToken.sol\";\nimport \"./sovrynswapx/interfaces/ISovrynSwapX.sol\";\n\n// interface of older converters for backward compatibility\ncontract ILegacyConverter {\n\tfunction change(\n\t\tIERC20Token _sourceToken,\n\t\tIERC20Token _targetToken,\n\t\tuint256 _amount,\n\t\tuint256 _minReturn\n\t) public returns (uint256);\n}\n\n/**\n * @dev The SovrynSwapNetwork contract is the main entry point for SovrynSwap token conversions.\n * It also allows for the conversion of any token in the SovrynSwap Network to any other token in a single\n * transaction by providing a conversion path.\n *\n * A note on Conversion Path: Conversion path is a data structure that is used when converting a token\n * to another token in the SovrynSwap Network, when the conversion cannot necessarily be done by a single\n * converter and might require multiple 'hops'.\n * The path defines which converters should be used and what kind of conversion should be done in each step.\n *\n * The path format doesn't include complex structure; instead, it is represented by a single array\n * in which each 'hop' is represented by a 2-tuple - converter anchor & target token.\n * In addition, the first element is always the source token.\n * The converter anchor is only used as a pointer to a converter (since converter addresses are more\n * likely to change as opposed to anchor addresses).\n *\n * Format:\n * [source token, converter anchor, target token, converter anchor, target token...]\n */\ncontract SovrynSwapNetwork is ISovrynSwapNetwork, TokenHolder, ContractRegistryClient, ReentrancyGuard {\n\tusing SafeMath for uint256;\n\n\tuint256 private constant CONVERSION_FEE_RESOLUTION = 1000000;\n\tuint256 private constant AFFILIATE_FEE_RESOLUTION = 1000000;\n\taddress private constant ETH_RESERVE_ADDRESS = 0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE;\n\n\tstruct ConversionStep {\n\t\tIConverter converter;\n\t\tIConverterAnchor anchor;\n\t\tIERC20Token sourceToken;\n\t\tIERC20Token targetToken;\n\t\taddress beneficiary;\n\t\tbool isV28OrHigherConverter;\n\t\tbool processAffiliateFee;\n\t}\n\n\tuint256 public maxAffiliateFee = 30000; // maximum affiliate-fee\n\n\tmapping(address => bool) public etherTokens; // list of all supported ether tokens\n\n\t/**\n\t * @dev triggered when a conversion between two tokens occurs\n\t *\n\t * @param _smartToken anchor governed by the converter\n\t * @param _fromToken source ERC20 token\n\t * @param _toToken target ERC20 token\n\t * @param _fromAmount amount converted, in the source token\n\t * @param _toAmount amount returned, minus conversion fee\n\t * @param _trader wallet that initiated the trade\n\t */\n\tevent Conversion(\n\t\taddress indexed _smartToken,\n\t\taddress indexed _fromToken,\n\t\taddress indexed _toToken,\n\t\tuint256 _fromAmount,\n\t\tuint256 _toAmount,\n\t\taddress _trader\n\t);\n\n\t/**\n\t * @dev initializes a new SovrynSwapNetwork instance\n\t *\n\t * @param _registry address of a contract registry contract\n\t */\n\tconstructor(IContractRegistry _registry) public ContractRegistryClient(_registry) {\n\t\tetherTokens[ETH_RESERVE_ADDRESS] = true;\n\t}\n\n\t/**\n\t * @dev allows the owner to update the maximum affiliate-fee\n\t *\n\t * @param _maxAffiliateFee maximum affiliate-fee\n\t */\n\tfunction setMaxAffiliateFee(uint256 _maxAffiliateFee) public ownerOnly {\n\t\trequire(_maxAffiliateFee <= AFFILIATE_FEE_RESOLUTION, \"ERR_INVALID_AFFILIATE_FEE\");\n\t\tmaxAffiliateFee = _maxAffiliateFee;\n\t}\n\n\t/**\n\t * @dev allows the owner to register/unregister ether tokens\n\t *\n\t * @param _token ether token contract address\n\t * @param _register true to register, false to unregister\n\t */\n\tfunction registerEtherToken(IEtherToken _token, bool _register) public ownerOnly validAddress(_token) notThis(_token) {\n\t\tetherTokens[_token] = _register;\n\t}\n\n\t/**\n\t * @dev returns the conversion path between two tokens in the network\n\t * note that this method is quite expensive in terms of gas and should generally be called off-chain\n\t *\n\t * @param _sourceToken source token address\n\t * @param _targetToken target token address\n\t *\n\t * @return conversion path between the two tokens\n\t */\n\tfunction conversionPath(IERC20Token _sourceToken, IERC20Token _targetToken) public view returns (address[]) {\n\t\tIConversionPathFinder pathFinder = IConversionPathFinder(addressOf(CONVERSION_PATH_FINDER));\n\t\treturn pathFinder.findPath(_sourceToken, _targetToken);\n\t}\n\n\t/**\n\t * @dev returns the expected target amount of converting a given amount on a given path\n\t * note that there is no support for circular paths\n\t *\n\t * @param _path conversion path (see conversion path format above)\n\t * @param _amount amount of _path[0] tokens received from the sender\n\t *\n\t * @return expected target amount\n\t */\n\tfunction rateByPath(IERC20Token[] _path, uint256 _amount) public view returns (uint256) {\n\t\tuint256 amount;\n\t\tuint256 fee;\n\t\tuint256 supply;\n\t\tuint256 balance;\n\t\tuint32 weight;\n\t\tIConverter converter;\n\t\tISovrynSwapFormula formula = ISovrynSwapFormula(addressOf(SOVRYNSWAP_FORMULA));\n\n\t\tamount = _amount;\n\n\t\t// verify that the number of elements is larger than 2 and odd\n\t\trequire(_path.length > 2 && _path.length % 2 == 1, \"ERR_INVALID_PATH\");\n\n\t\t// iterate over the conversion path\n\t\tfor (uint256 i = 2; i < _path.length; i += 2) {\n\t\t\tIERC20Token sourceToken = _path[i - 2];\n\t\t\tIERC20Token anchor = _path[i - 1];\n\t\t\tIERC20Token targetToken = _path[i];\n\n\t\t\tconverter = IConverter(IConverterAnchor(anchor).owner());\n\n\t\t\t// backward compatibility\n\t\t\tsourceToken = getConverterTokenAddress(converter, sourceToken);\n\t\t\ttargetToken = getConverterTokenAddress(converter, targetToken);\n\n\t\t\tif (targetToken == anchor) {\n\t\t\t\t// buy the smart token\n\t\t\t\t// check if the current smart token has changed\n\t\t\t\tif (i < 3 || anchor != _path[i - 3]) supply = ISmartToken(anchor).totalSupply();\n\n\t\t\t\t// get the amount & the conversion fee\n\t\t\t\tbalance = converter.getConnectorBalance(sourceToken);\n\t\t\t\t(, weight, , , ) = converter.connectors(sourceToken);\n\t\t\t\tamount = formula.purchaseTargetAmount(supply, balance, weight, amount);\n\t\t\t\tfee = amount.mul(converter.conversionFee()).div(CONVERSION_FEE_RESOLUTION);\n\t\t\t\tamount -= fee;\n\n\t\t\t\t// update the smart token supply for the next iteration\n\t\t\t\tsupply = supply.add(amount);\n\t\t\t} else if (sourceToken == anchor) {\n\t\t\t\t// sell the smart token\n\t\t\t\t// check if the current smart token has changed\n\t\t\t\tif (i < 3 || anchor != _path[i - 3]) supply = ISmartToken(anchor).totalSupply();\n\n\t\t\t\t// get the amount & the conversion fee\n\t\t\t\tbalance = converter.getConnectorBalance(targetToken);\n\t\t\t\t(, weight, , , ) = converter.connectors(targetToken);\n\t\t\t\tamount = formula.saleTargetAmount(supply, balance, weight, amount);\n\t\t\t\tfee = amount.mul(converter.conversionFee()).div(CONVERSION_FEE_RESOLUTION);\n\t\t\t\tamount -= fee;\n\n\t\t\t\t// update the smart token supply for the next iteration\n\t\t\t\tsupply = supply.sub(amount);\n\t\t\t} else {\n\t\t\t\t// cross reserve conversion\n\t\t\t\t(amount, fee) = getReturn(converter, sourceToken, targetToken, amount);\n\t\t\t}\n\t\t}\n\n\t\treturn amount;\n\t}\n\n\t/**\n\t * @dev converts the token to any other token in the sovrynSwap network by following\n\t * a predefined conversion path and transfers the result tokens to a target account\n\t * affiliate account/fee can also be passed in to receive a conversion fee (on top of the liquidity provider fees)\n\t * note that the network should already have been given allowance of the source token (if not ETH)\n\t *\n\t * @param _path conversion path, see conversion path format above\n\t * @param _amount amount to convert from, in the source token\n\t * @param _minReturn if the conversion results in an amount smaller than the minimum return - it is cancelled, must be greater than zero\n\t * @param _beneficiary account that will receive the conversion result or 0x0 to send the result to the sender account\n\t * @param _affiliateAccount wallet address to receive the affiliate fee or 0x0 to disable affiliate fee\n\t * @param _affiliateFee affiliate fee in PPM or 0 to disable affiliate fee\n\t *\n\t * @return amount of tokens received from the conversion\n\t */\n\tfunction convertByPath(\n\t\tIERC20Token[] _path,\n\t\tuint256 _amount,\n\t\tuint256 _minReturn,\n\t\taddress _beneficiary,\n\t\taddress _affiliateAccount,\n\t\tuint256 _affiliateFee\n\t) public payable protected greaterThanZero(_minReturn) returns (uint256) {\n\t\t// verify that the path contrains at least a single 'hop' and that the number of elements is odd\n\t\trequire(_path.length > 2 && _path.length % 2 == 1, \"ERR_INVALID_PATH\");\n\n\t\t// validate msg.value and prepare the source token for the conversion\n\t\thandleSourceToken(_path[0], IConverterAnchor(_path[1]), _amount);\n\n\t\t// check if affiliate fee is enabled\n\t\tbool affiliateFeeEnabled = false;\n\t\tif (address(_affiliateAccount) == 0) {\n\t\t\trequire(_affiliateFee == 0, \"ERR_INVALID_AFFILIATE_FEE\");\n\t\t} else {\n\t\t\trequire(0 < _affiliateFee && _affiliateFee <= maxAffiliateFee, \"ERR_INVALID_AFFILIATE_FEE\");\n\t\t\taffiliateFeeEnabled = true;\n\t\t}\n\n\t\t// check if beneficiary is set\n\t\taddress beneficiary = msg.sender;\n\t\tif (_beneficiary != address(0)) beneficiary = _beneficiary;\n\n\t\t// convert and get the resulting amount\n\t\tConversionStep[] memory data = createConversionData(_path, beneficiary, affiliateFeeEnabled);\n\t\tuint256 amount = doConversion(data, _amount, _minReturn, _affiliateAccount, _affiliateFee);\n\n\t\t// handle the conversion target tokens\n\t\thandleTargetToken(data, amount, beneficiary);\n\n\t\treturn amount;\n\t}\n\n\t/**\n * @dev converts any other token to BNT in the sovrynSwap network by following\n a predefined conversion path and transfers the result to an account on a different blockchain\n * note that the network should already have been given allowance of the source token (if not ETH)\n *\n * @param _path conversion path, see conversion path format above\n * @param _amount amount to convert from, in the source token\n * @param _minReturn if the conversion results in an amount smaller than the minimum return - it is cancelled, must be greater than zero\n * @param _targetBlockchain blockchain BNT will be issued on\n * @param _targetAccount address/account on the target blockchain to send the BNT to\n * @param _conversionId pre-determined unique (if non zero) id which refers to this transaction\n *\n * @return the amount of BNT received from this conversion\n */\n\tfunction xConvert(\n\t\tIERC20Token[] _path,\n\t\tuint256 _amount,\n\t\tuint256 _minReturn,\n\t\tbytes32 _targetBlockchain,\n\t\tbytes32 _targetAccount,\n\t\tuint256 _conversionId\n\t) public payable returns (uint256) {\n\t\treturn xConvert2(_path, _amount, _minReturn, _targetBlockchain, _targetAccount, _conversionId, address(0), 0);\n\t}\n\n\t/**\n * @dev converts any other token to BNT in the sovrynSwap network by following\n a predefined conversion path and transfers the result to an account on a different blockchain\n * note that the network should already have been given allowance of the source token (if not ETH)\n *\n * @param _path conversion path, see conversion path format above\n * @param _amount amount to convert from, in the source token\n * @param _minReturn if the conversion results in an amount smaller than the minimum return - it is cancelled, must be greater than zero\n * @param _targetBlockchain blockchain BNT will be issued on\n * @param _targetAccount address/account on the target blockchain to send the BNT to\n * @param _conversionId pre-determined unique (if non zero) id which refers to this transaction\n * @param _affiliateAccount affiliate account\n * @param _affiliateFee affiliate fee in PPM\n *\n * @return the amount of BNT received from this conversion\n */\n\tfunction xConvert2(\n\t\tIERC20Token[] _path,\n\t\tuint256 _amount,\n\t\tuint256 _minReturn,\n\t\tbytes32 _targetBlockchain,\n\t\tbytes32 _targetAccount,\n\t\tuint256 _conversionId,\n\t\taddress _affiliateAccount,\n\t\tuint256 _affiliateFee\n\t) public payable greaterThanZero(_minReturn) returns (uint256) {\n\t\tIERC20Token targetToken = _path[_path.length - 1];\n\t\tISovrynSwapX sovrynSwapX = ISovrynSwapX(addressOf(SOVRYNSWAP_X));\n\n\t\t// verify that the destination token is BNT\n\t\trequire(targetToken == addressOf(BNT_TOKEN), \"ERR_INVALID_TARGET_TOKEN\");\n\n\t\t// convert and get the resulting amount\n\t\tuint256 amount = convertByPath(_path, _amount, _minReturn, this, _affiliateAccount, _affiliateFee);\n\n\t\t// grant SovrynSwapX allowance\n\t\tensureAllowance(targetToken, sovrynSwapX, amount);\n\n\t\t// transfer the resulting amount to SovrynSwapX\n\t\tsovrynSwapX.xTransfer(_targetBlockchain, _targetAccount, amount, _conversionId);\n\n\t\treturn amount;\n\t}\n\n\t/**\n\t * @dev allows a user to convert a token that was sent from another blockchain into any other\n\t * token on the SovrynSwapNetwork\n\t * ideally this transaction is created before the previous conversion is even complete, so\n\t * so the input amount isn't known at that point - the amount is actually take from the\n\t * SovrynSwapX contract directly by specifying the conversion id\n\t *\n\t * @param _path conversion path\n\t * @param _sovrynSwapX address of the SovrynSwapX contract for the source token\n\t * @param _conversionId pre-determined unique (if non zero) id which refers to this conversion\n\t * @param _minReturn if the conversion results in an amount smaller than the minimum return - it is cancelled, must be nonzero\n\t * @param _beneficiary wallet to receive the conversion result\n\t *\n\t * @return amount of tokens received from the conversion\n\t */\n\tfunction completeXConversion(\n\t\tIERC20Token[] _path,\n\t\tISovrynSwapX _sovrynSwapX,\n\t\tuint256 _conversionId,\n\t\tuint256 _minReturn,\n\t\taddress _beneficiary\n\t) public returns (uint256) {\n\t\t// verify that the source token is the SovrynSwapX token\n\t\trequire(_path[0] == _sovrynSwapX.token(), \"ERR_INVALID_SOURCE_TOKEN\");\n\n\t\t// get conversion amount from SovrynSwapX contract\n\t\tuint256 amount = _sovrynSwapX.getXTransferAmount(_conversionId, msg.sender);\n\n\t\t// perform the conversion\n\t\treturn convertByPath(_path, amount, _minReturn, _beneficiary, address(0), 0);\n\t}\n\n\t/**\n\t * @dev executes the actual conversion by following the conversion path\n\t *\n\t * @param _data conversion data, see ConversionStep struct above\n\t * @param _amount amount to convert from, in the source token\n\t * @param _minReturn if the conversion results in an amount smaller than the minimum return - it is cancelled, must be greater than zero\n\t * @param _affiliateAccount affiliate account\n\t * @param _affiliateFee affiliate fee in PPM\n\t *\n\t * @return amount of tokens received from the conversion\n\t */\n\tfunction doConversion(\n\t\tConversionStep[] _data,\n\t\tuint256 _amount,\n\t\tuint256 _minReturn,\n\t\taddress _affiliateAccount,\n\t\tuint256 _affiliateFee\n\t) private returns (uint256) {\n\t\tuint256 toAmount;\n\t\tuint256 fromAmount = _amount;\n\n\t\t// iterate over the conversion data\n\t\tfor (uint256 i = 0; i < _data.length; i++) {\n\t\t\tConversionStep memory stepData = _data[i];\n\n\t\t\t// newer converter\n\t\t\tif (stepData.isV28OrHigherConverter) {\n\t\t\t\t// transfer the tokens to the converter only if the network contract currently holds the tokens\n\t\t\t\t// not needed with ETH or if it's the first conversion step\n\t\t\t\tif (i != 0 && _data[i - 1].beneficiary == address(this) && !etherTokens[stepData.sourceToken])\n\t\t\t\t\tsafeTransfer(stepData.sourceToken, stepData.converter, fromAmount);\n\t\t\t}\n\t\t\t// older converter\n\t\t\t// if the source token is the smart token, no need to do any transfers as the converter controls it\n\t\t\telse if (stepData.sourceToken != ISmartToken(stepData.anchor)) {\n\t\t\t\t// grant allowance for it to transfer the tokens from the network contract\n\t\t\t\tensureAllowance(stepData.sourceToken, stepData.converter, fromAmount);\n\t\t\t}\n\n\t\t\t// do the conversion\n\t\t\tif (!stepData.isV28OrHigherConverter)\n\t\t\t\ttoAmount = ILegacyConverter(stepData.converter).change(stepData.sourceToken, stepData.targetToken, fromAmount, 1);\n\t\t\telse if (etherTokens[stepData.sourceToken])\n\t\t\t\ttoAmount = stepData.converter.convert.value(msg.value)(\n\t\t\t\t\tstepData.sourceToken,\n\t\t\t\t\tstepData.targetToken,\n\t\t\t\t\tfromAmount,\n\t\t\t\t\tmsg.sender,\n\t\t\t\t\tstepData.beneficiary\n\t\t\t\t);\n\t\t\telse toAmount = stepData.converter.convert(stepData.sourceToken, stepData.targetToken, fromAmount, msg.sender, stepData.beneficiary);\n\n\t\t\t// pay affiliate-fee if needed\n\t\t\tif (stepData.processAffiliateFee) {\n\t\t\t\tuint256 affiliateAmount = toAmount.mul(_affiliateFee).div(AFFILIATE_FEE_RESOLUTION);\n\t\t\t\trequire(stepData.targetToken.transfer(_affiliateAccount, affiliateAmount), \"ERR_FEE_TRANSFER_FAILED\");\n\t\t\t\ttoAmount -= affiliateAmount;\n\t\t\t}\n\n\t\t\temit Conversion(stepData.anchor, stepData.sourceToken, stepData.targetToken, fromAmount, toAmount, msg.sender);\n\t\t\tfromAmount = toAmount;\n\t\t}\n\n\t\t// ensure the trade meets the minimum requested amount\n\t\trequire(toAmount >= _minReturn, \"ERR_RETURN_TOO_LOW\");\n\n\t\treturn toAmount;\n\t}\n\n\t/**\n\t * @dev validates msg.value and prepares the conversion source token for the conversion\n\t *\n\t * @param _sourceToken source token of the first conversion step\n\t * @param _anchor converter anchor of the first conversion step\n\t * @param _amount amount to convert from, in the source token\n\t */\n\tfunction handleSourceToken(\n\t\tIERC20Token _sourceToken,\n\t\tIConverterAnchor _anchor,\n\t\tuint256 _amount\n\t) private {\n\t\tIConverter firstConverter = IConverter(_anchor.owner());\n\t\tbool isNewerConverter = isV28OrHigherConverter(firstConverter);\n\n\t\t// ETH\n\t\tif (msg.value > 0) {\n\t\t\t// validate msg.value\n\t\t\trequire(msg.value == _amount, \"ERR_ETH_AMOUNT_MISMATCH\");\n\n\t\t\t// EtherToken converter - deposit the ETH into the EtherToken\n\t\t\t// note that it can still be a non ETH converter if the path is wrong\n\t\t\t// but such conversion will simply revert\n\t\t\tif (!isNewerConverter) IEtherToken(getConverterEtherTokenAddress(firstConverter)).deposit.value(msg.value)();\n\t\t}\n\t\t// EtherToken\n\t\telse if (etherTokens[_sourceToken]) {\n\t\t\t// claim the tokens - if the source token is ETH reserve, this call will fail\n\t\t\t// since in that case the transaction must be sent with msg.value\n\t\t\tsafeTransferFrom(_sourceToken, msg.sender, this, _amount);\n\n\t\t\t// ETH converter - withdraw the ETH\n\t\t\tif (isNewerConverter) IEtherToken(_sourceToken).withdraw(_amount);\n\t\t}\n\t\t// other ERC20 token\n\t\telse {\n\t\t\t// newer converter - transfer the tokens from the sender directly to the converter\n\t\t\t// otherwise claim the tokens\n\t\t\tif (isNewerConverter) safeTransferFrom(_sourceToken, msg.sender, firstConverter, _amount);\n\t\t\telse safeTransferFrom(_sourceToken, msg.sender, this, _amount);\n\t\t}\n\t}\n\n\t/**\n\t * @dev handles the conversion target token if the network still holds it at the end of the conversion\n\t *\n\t * @param _data conversion data, see ConversionStep struct above\n\t * @param _amount conversion target amount\n\t * @param _beneficiary wallet to receive the conversion result\n\t */\n\tfunction handleTargetToken(\n\t\tConversionStep[] _data,\n\t\tuint256 _amount,\n\t\taddress _beneficiary\n\t) private {\n\t\tConversionStep memory stepData = _data[_data.length - 1];\n\n\t\t// network contract doesn't hold the tokens, do nothing\n\t\tif (stepData.beneficiary != address(this)) return;\n\n\t\tIERC20Token targetToken = stepData.targetToken;\n\n\t\t// ETH / EtherToken\n\t\tif (etherTokens[targetToken]) {\n\t\t\t// newer converter should send ETH directly to the beneficiary\n\t\t\tassert(!stepData.isV28OrHigherConverter);\n\n\t\t\t// EtherToken converter - withdraw the ETH and transfer to the beneficiary\n\t\t\tIEtherToken(targetToken).withdrawTo(_beneficiary, _amount);\n\t\t}\n\t\t// other ERC20 token\n\t\telse {\n\t\t\tsafeTransfer(targetToken, _beneficiary, _amount);\n\t\t}\n\t}\n\n\t/**\n\t * @dev creates a memory cache of all conversion steps data to minimize logic and external calls during conversions\n\t *\n\t * @param _conversionPath conversion path, see conversion path format above\n\t * @param _beneficiary wallet to receive the conversion result\n\t * @param _affiliateFeeEnabled true if affiliate fee was requested by the sender, false if not\n\t *\n\t * @return cached conversion data to be ingested later on by the conversion flow\n\t */\n\tfunction createConversionData(\n\t\tIERC20Token[] _conversionPath,\n\t\taddress _beneficiary,\n\t\tbool _affiliateFeeEnabled\n\t) private view returns (ConversionStep[]) {\n\t\tConversionStep[] memory data = new ConversionStep[](_conversionPath.length / 2);\n\n\t\tbool affiliateFeeProcessed = false;\n\t\taddress bntToken = addressOf(BNT_TOKEN);\n\t\t// iterate the conversion path and create the conversion data for each step\n\t\tuint256 i;\n\t\tfor (i = 0; i < _conversionPath.length - 1; i += 2) {\n\t\t\tIConverterAnchor anchor = IConverterAnchor(_conversionPath[i + 1]);\n\t\t\tIConverter converter = IConverter(anchor.owner());\n\t\t\tIERC20Token targetToken = _conversionPath[i + 2];\n\n\t\t\t// check if the affiliate fee should be processed in this step\n\t\t\tbool processAffiliateFee = _affiliateFeeEnabled && !affiliateFeeProcessed && targetToken == bntToken;\n\t\t\tif (processAffiliateFee) affiliateFeeProcessed = true;\n\n\t\t\tdata[i / 2] = ConversionStep({\n\t\t\t\tanchor: // set the converter anchor\n\t\t\t\tanchor,\n\t\t\t\tconverter: // set the converter\n\t\t\t\tconverter,\n\t\t\t\tsourceToken: // set the source/target tokens\n\t\t\t\t_conversionPath[i],\n\t\t\t\ttargetToken: targetToken,\n\t\t\t\tbeneficiary: // requires knowledge about the next step, so initialize in the next phase\n\t\t\t\taddress(0),\n\t\t\t\tisV28OrHigherConverter: // set flags\n\t\t\t\tisV28OrHigherConverter(converter),\n\t\t\t\tprocessAffiliateFee: processAffiliateFee\n\t\t\t});\n\t\t}\n\n\t\t// ETH support\n\t\t// source is ETH\n\t\tConversionStep memory stepData = data[0];\n\t\tif (etherTokens[stepData.sourceToken]) {\n\t\t\t// newer converter - replace the source token address with ETH reserve address\n\t\t\tif (stepData.isV28OrHigherConverter)\n\t\t\t\tstepData.sourceToken = IERC20Token(ETH_RESERVE_ADDRESS);\n\t\t\t\t// older converter - replace the source token with the EtherToken address used by the converter\n\t\t\telse stepData.sourceToken = IERC20Token(getConverterEtherTokenAddress(stepData.converter));\n\t\t}\n\n\t\t// target is ETH\n\t\tstepData = data[data.length - 1];\n\t\tif (etherTokens[stepData.targetToken]) {\n\t\t\t// newer converter - replace the target token address with ETH reserve address\n\t\t\tif (stepData.isV28OrHigherConverter)\n\t\t\t\tstepData.targetToken = IERC20Token(ETH_RESERVE_ADDRESS);\n\t\t\t\t// older converter - replace the target token with the EtherToken address used by the converter\n\t\t\telse stepData.targetToken = IERC20Token(getConverterEtherTokenAddress(stepData.converter));\n\t\t}\n\n\t\t// set the beneficiary for each step\n\t\tfor (i = 0; i < data.length; i++) {\n\t\t\tstepData = data[i];\n\n\t\t\t// first check if the converter in this step is newer as older converters don't even support the beneficiary argument\n\t\t\tif (stepData.isV28OrHigherConverter) {\n\t\t\t\t// if affiliate fee is processed in this step, beneficiary is the network contract\n\t\t\t\tif (stepData.processAffiliateFee)\n\t\t\t\t\tstepData.beneficiary = this;\n\t\t\t\t\t// if it's the last step, beneficiary is the final beneficiary\n\t\t\t\telse if (i == data.length - 1)\n\t\t\t\t\tstepData.beneficiary = _beneficiary;\n\t\t\t\t\t// if the converter in the next step is newer, beneficiary is the next converter\n\t\t\t\telse if (data[i + 1].isV28OrHigherConverter)\n\t\t\t\t\tstepData.beneficiary = data[i + 1].converter;\n\t\t\t\t\t// the converter in the next step is older, beneficiary is the network contract\n\t\t\t\telse stepData.beneficiary = this;\n\t\t\t} else {\n\t\t\t\t// converter in this step is older, beneficiary is the network contract\n\t\t\t\tstepData.beneficiary = this;\n\t\t\t}\n\t\t}\n\n\t\treturn data;\n\t}\n\n\t/**\n\t * @dev utility, checks whether allowance for the given spender exists and approves one if it doesn't.\n\t * Note that we use the non standard erc-20 interface in which `approve` has no return value so that\n\t * this function will work for both standard and non standard tokens\n\t *\n\t * @param _token token to check the allowance in\n\t * @param _spender approved address\n\t * @param _value allowance amount\n\t */\n\tfunction ensureAllowance(\n\t\tIERC20Token _token,\n\t\taddress _spender,\n\t\tuint256 _value\n\t) private {\n\t\tuint256 allowance = _token.allowance(this, _spender);\n\t\tif (allowance < _value) {\n\t\t\tif (allowance > 0) safeApprove(_token, _spender, 0);\n\t\t\tsafeApprove(_token, _spender, _value);\n\t\t}\n\t}\n\n\t// legacy - returns the address of an EtherToken used by the converter\n\tfunction getConverterEtherTokenAddress(IConverter _converter) private view returns (address) {\n\t\tuint256 reserveCount = _converter.connectorTokenCount();\n\t\tfor (uint256 i = 0; i < reserveCount; i++) {\n\t\t\taddress reserveTokenAddress = _converter.connectorTokens(i);\n\t\t\tif (etherTokens[reserveTokenAddress]) return reserveTokenAddress;\n\t\t}\n\n\t\treturn ETH_RESERVE_ADDRESS;\n\t}\n\n\t// legacy - if the token is an ether token, returns the ETH reserve address\n\t// used by the converter, otherwise returns the input token address\n\tfunction getConverterTokenAddress(IConverter _converter, IERC20Token _token) private view returns (IERC20Token) {\n\t\tif (!etherTokens[_token]) return _token;\n\n\t\tif (isV28OrHigherConverter(_converter)) return IERC20Token(ETH_RESERVE_ADDRESS);\n\n\t\treturn IERC20Token(getConverterEtherTokenAddress(_converter));\n\t}\n\n\tbytes4 private constant GET_RETURN_FUNC_SELECTOR = bytes4(keccak256(\"getReturn(address,address,uint256)\"));\n\n\t// using assembly code since older converter versions have different return values\n\tfunction getReturn(\n\t\taddress _dest,\n\t\taddress _sourceToken,\n\t\taddress _targetToken,\n\t\tuint256 _amount\n\t) internal view returns (uint256, uint256) {\n\t\tuint256[2] memory ret;\n\t\tbytes memory data = abi.encodeWithSelector(GET_RETURN_FUNC_SELECTOR, _sourceToken, _targetToken, _amount);\n\n\t\tassembly {\n\t\t\tlet success := staticcall(\n\t\t\t\tgas, // gas remaining\n\t\t\t\t_dest, // destination address\n\t\t\t\tadd(data, 32), // input buffer (starts after the first 32 bytes in the `data` array)\n\t\t\t\tmload(data), // input length (loaded from the first 32 bytes in the `data` array)\n\t\t\t\tret, // output buffer\n\t\t\t\t64 // output length\n\t\t\t)\n\t\t\tif iszero(success) {\n\t\t\t\trevert(0, 0)\n\t\t\t}\n\t\t}\n\n\t\treturn (ret[0], ret[1]);\n\t}\n\n\tbytes4 private constant IS_V28_OR_HIGHER_FUNC_SELECTOR = bytes4(keccak256(\"isV28OrHigher()\"));\n\n\t// using assembly code to identify converter version\n\t// can't rely on the version number since the function had a different signature in older converters\n\tfunction isV28OrHigherConverter(IConverter _converter) internal view returns (bool) {\n\t\tbool success;\n\t\tuint256[1] memory ret;\n\t\tbytes memory data = abi.encodeWithSelector(IS_V28_OR_HIGHER_FUNC_SELECTOR);\n\n\t\tassembly {\n\t\t\tsuccess := staticcall(\n\t\t\t\t5000, // isV28OrHigher consumes 190 gas, but just for extra safety\n\t\t\t\t_converter, // destination address\n\t\t\t\tadd(data, 32), // input buffer (starts after the first 32 bytes in the `data` array)\n\t\t\t\tmload(data), // input length (loaded from the first 32 bytes in the `data` array)\n\t\t\t\tret, // output buffer\n\t\t\t\t32 // output length\n\t\t\t)\n\t\t}\n\n\t\treturn success && ret[0] != 0;\n\t}\n\n\t/**\n\t * @dev deprecated, backward compatibility\n\t */\n\tfunction getReturnByPath(IERC20Token[] _path, uint256 _amount) public view returns (uint256, uint256) {\n\t\treturn (rateByPath(_path, _amount), 0);\n\t}\n\n\t/**\n\t * @dev deprecated, backward compatibility\n\t */\n\tfunction convert(\n\t\tIERC20Token[] _path,\n\t\tuint256 _amount,\n\t\tuint256 _minReturn\n\t) public payable returns (uint256) {\n\t\treturn convertByPath(_path, _amount, _minReturn, address(0), address(0), 0);\n\t}\n\n\t/**\n\t * @dev deprecated, backward compatibility\n\t */\n\tfunction convert2(\n\t\tIERC20Token[] _path,\n\t\tuint256 _amount,\n\t\tuint256 _minReturn,\n\t\taddress _affiliateAccount,\n\t\tuint256 _affiliateFee\n\t) public payable returns (uint256) {\n\t\treturn convertByPath(_path, _amount, _minReturn, address(0), _affiliateAccount, _affiliateFee);\n\t}\n\n\t/**\n\t * @dev deprecated, backward compatibility\n\t */\n\tfunction convertFor(\n\t\tIERC20Token[] _path,\n\t\tuint256 _amount,\n\t\tuint256 _minReturn,\n\t\taddress _beneficiary\n\t) public payable returns (uint256) {\n\t\treturn convertByPath(_path, _amount, _minReturn, _beneficiary, address(0), 0);\n\t}\n\n\t/**\n\t * @dev deprecated, backward compatibility\n\t */\n\tfunction convertFor2(\n\t\tIERC20Token[] _path,\n\t\tuint256 _amount,\n\t\tuint256 _minReturn,\n\t\taddress _beneficiary,\n\t\taddress _affiliateAccount,\n\t\tuint256 _affiliateFee\n\t) public payable greaterThanZero(_minReturn) returns (uint256) {\n\t\treturn convertByPath(_path, _amount, _minReturn, _beneficiary, _affiliateAccount, _affiliateFee);\n\t}\n\n\t/**\n\t * @dev deprecated, backward compatibility\n\t */\n\tfunction claimAndConvert(\n\t\tIERC20Token[] _path,\n\t\tuint256 _amount,\n\t\tuint256 _minReturn\n\t) public returns (uint256) {\n\t\treturn convertByPath(_path, _amount, _minReturn, address(0), address(0), 0);\n\t}\n\n\t/**\n\t * @dev deprecated, backward compatibility\n\t */\n\tfunction claimAndConvert2(\n\t\tIERC20Token[] _path,\n\t\tuint256 _amount,\n\t\tuint256 _minReturn,\n\t\taddress _affiliateAccount,\n\t\tuint256 _affiliateFee\n\t) public returns (uint256) {\n\t\treturn convertByPath(_path, _amount, _minReturn, address(0), _affiliateAccount, _affiliateFee);\n\t}\n\n\t/**\n\t * @dev deprecated, backward compatibility\n\t */\n\tfunction claimAndConvertFor(\n\t\tIERC20Token[] _path,\n\t\tuint256 _amount,\n\t\tuint256 _minReturn,\n\t\taddress _beneficiary\n\t) public returns (uint256) {\n\t\treturn convertByPath(_path, _amount, _minReturn, _beneficiary, address(0), 0);\n\t}\n\n\t/**\n\t * @dev deprecated, backward compatibility\n\t */\n\tfunction claimAndConvertFor2(\n\t\tIERC20Token[] _path,\n\t\tuint256 _amount,\n\t\tuint256 _minReturn,\n\t\taddress _beneficiary,\n\t\taddress _affiliateAccount,\n\t\tuint256 _affiliateFee\n\t) public returns (uint256) {\n\t\treturn convertByPath(_path, _amount, _minReturn, _beneficiary, _affiliateAccount, _affiliateFee);\n\t}\n}\n" - }, - "solidity/contracts/ISovrynSwapNetwork.sol": { - "content": "pragma solidity 0.4.26;\nimport \"./token/interfaces/IERC20Token.sol\";\n\n/*\n SovrynSwap Network interface\n*/\ncontract ISovrynSwapNetwork {\n\tfunction convert2(\n\t\tIERC20Token[] _path,\n\t\tuint256 _amount,\n\t\tuint256 _minReturn,\n\t\taddress _affiliateAccount,\n\t\tuint256 _affiliateFee\n\t) public payable returns (uint256);\n\n\tfunction claimAndConvert2(\n\t\tIERC20Token[] _path,\n\t\tuint256 _amount,\n\t\tuint256 _minReturn,\n\t\taddress _affiliateAccount,\n\t\tuint256 _affiliateFee\n\t) public returns (uint256);\n\n\tfunction convertFor2(\n\t\tIERC20Token[] _path,\n\t\tuint256 _amount,\n\t\tuint256 _minReturn,\n\t\taddress _for,\n\t\taddress _affiliateAccount,\n\t\tuint256 _affiliateFee\n\t) public payable returns (uint256);\n\n\tfunction claimAndConvertFor2(\n\t\tIERC20Token[] _path,\n\t\tuint256 _amount,\n\t\tuint256 _minReturn,\n\t\taddress _for,\n\t\taddress _affiliateAccount,\n\t\tuint256 _affiliateFee\n\t) public returns (uint256);\n\n\t// deprecated, backward compatibility\n\tfunction convert(\n\t\tIERC20Token[] _path,\n\t\tuint256 _amount,\n\t\tuint256 _minReturn\n\t) public payable returns (uint256);\n\n\t// deprecated, backward compatibility\n\tfunction claimAndConvert(\n\t\tIERC20Token[] _path,\n\t\tuint256 _amount,\n\t\tuint256 _minReturn\n\t) public returns (uint256);\n\n\t// deprecated, backward compatibility\n\tfunction convertFor(\n\t\tIERC20Token[] _path,\n\t\tuint256 _amount,\n\t\tuint256 _minReturn,\n\t\taddress _for\n\t) public payable returns (uint256);\n\n\t// deprecated, backward compatibility\n\tfunction claimAndConvertFor(\n\t\tIERC20Token[] _path,\n\t\tuint256 _amount,\n\t\tuint256 _minReturn,\n\t\taddress _for\n\t) public returns (uint256);\n}\n" - }, - "solidity/contracts/converter/interfaces/ISovrynSwapFormula.sol": { - "content": "pragma solidity 0.4.26;\n\n/*\n SovrynSwap Formula interface\n*/\ncontract ISovrynSwapFormula {\n\tfunction purchaseTargetAmount(\n\t\tuint256 _supply,\n\t\tuint256 _reserveBalance,\n\t\tuint32 _reserveWeight,\n\t\tuint256 _amount\n\t) public view returns (uint256);\n\n\tfunction saleTargetAmount(\n\t\tuint256 _supply,\n\t\tuint256 _reserveBalance,\n\t\tuint32 _reserveWeight,\n\t\tuint256 _amount\n\t) public view returns (uint256);\n\n\tfunction crossReserveTargetAmount(\n\t\tuint256 _sourceReserveBalance,\n\t\tuint32 _sourceReserveWeight,\n\t\tuint256 _targetReserveBalance,\n\t\tuint32 _targetReserveWeight,\n\t\tuint256 _amount\n\t) public view returns (uint256);\n\n\tfunction fundCost(\n\t\tuint256 _supply,\n\t\tuint256 _reserveBalance,\n\t\tuint32 _reserveRatio,\n\t\tuint256 _amount\n\t) public view returns (uint256);\n\n\tfunction fundSupplyAmount(\n\t\tuint256 _supply,\n\t\tuint256 _reserveBalance,\n\t\tuint32 _reserveRatio,\n\t\tuint256 _amount\n\t) public view returns (uint256);\n\n\tfunction liquidateReserveAmount(\n\t\tuint256 _supply,\n\t\tuint256 _reserveBalance,\n\t\tuint32 _reserveRatio,\n\t\tuint256 _amount\n\t) public view returns (uint256);\n\n\tfunction balancedWeights(\n\t\tuint256 _primaryReserveStakedBalance,\n\t\tuint256 _primaryReserveBalance,\n\t\tuint256 _secondaryReserveBalance,\n\t\tuint256 _reserveRateNumerator,\n\t\tuint256 _reserveRateDenominator\n\t) public view returns (uint32, uint32);\n}\n" - }, - "solidity/contracts/utility/ReentrancyGuard.sol": { - "content": "pragma solidity 0.4.26;\n\n/**\n * @dev ReentrancyGuard\n *\n * The contract provides protection against re-entrancy - calling a function (directly or\n * indirectly) from within itself.\n */\ncontract ReentrancyGuard {\n\tuint256 private constant UNLOCKED = 1;\n\tuint256 private constant LOCKED = 2;\n\n\t// LOCKED while protected code is being executed, UNLOCKED otherwise\n\tuint256 private state = UNLOCKED;\n\n\t/**\n\t * @dev ensures instantiation only by sub-contracts\n\t */\n\tconstructor() internal {}\n\n\t// protects a function against reentrancy attacks\n\tmodifier protected() {\n\t\t_protected();\n\t\tstate = LOCKED;\n\t\t_;\n\t\tstate = UNLOCKED;\n\t}\n\n\t// error message binary size optimization\n\tfunction _protected() internal view {\n\t\trequire(state == UNLOCKED, \"ERR_REENTRANCY\");\n\t}\n}\n" - }, - "solidity/contracts/token/interfaces/IEtherToken.sol": { - "content": "pragma solidity 0.4.26;\nimport \"./IERC20Token.sol\";\n\n/*\n Ether Token interface\n*/\ncontract IEtherToken is IERC20Token {\n\tfunction deposit() public payable;\n\n\tfunction withdraw(uint256 _amount) public;\n\n\tfunction depositTo(address _to) public payable;\n\n\tfunction withdrawTo(address _to, uint256 _amount) public;\n}\n" - }, - "solidity/contracts/token/interfaces/ISmartToken.sol": { - "content": "pragma solidity 0.4.26;\nimport \"./IERC20Token.sol\";\nimport \"../../converter/interfaces/IConverterAnchor.sol\";\nimport \"../../utility/interfaces/IOwned.sol\";\n\n/*\n Smart Token interface\n*/\ncontract ISmartToken is IConverterAnchor, IERC20Token {\n\tfunction disableTransfers(bool _disable) public;\n\n\tfunction issue(address _to, uint256 _amount) public;\n\n\tfunction destroy(address _from, uint256 _amount) public;\n}\n" - }, - "solidity/contracts/utility/interfaces/IPriceOracle.sol": { - "content": "pragma solidity 0.4.26;\nimport \"./IConsumerPriceOracle.sol\";\nimport \"../../token/interfaces/IERC20Token.sol\";\n\n/*\n Price Oracle interface\n*/\ncontract IPriceOracle {\n\tfunction latestRate(IERC20Token _tokenA, IERC20Token _tokenB) public view returns (uint256, uint256);\n\n\tfunction lastUpdateTime() public view returns (uint256);\n\n\tfunction latestRateAndUpdateTime(IERC20Token _tokenA, IERC20Token _tokenB)\n\t\tpublic\n\t\tview\n\t\treturns (\n\t\t\tuint256,\n\t\t\tuint256,\n\t\t\tuint256\n\t\t);\n\n\tfunction tokenAOracle() public view returns (IConsumerPriceOracle) {\n\t\tthis;\n\t}\n\n\tfunction tokenBOracle() public view returns (IConsumerPriceOracle) {\n\t\tthis;\n\t}\n}\n" - }, - "solidity/contracts/utility/interfaces/IConsumerPriceOracle.sol": { - "content": "pragma solidity 0.4.26;\n\n/*\n Chainlink Price Oracle interface\n*/\ninterface IConsumerPriceOracle {\n\tfunction latestAnswer() external view returns (int256);\n\n\tfunction latestTimestamp() external view returns (uint256);\n}\n" - }, - "solidity/contracts/utility/PriceOracle.sol": { - "content": "pragma solidity 0.4.26;\nimport \"./Utils.sol\";\nimport \"./SafeMath.sol\";\nimport \"./interfaces/IPriceOracle.sol\";\nimport \"./interfaces/IConsumerPriceOracle.sol\";\n\n/**\n * @dev Provides the off-chain rate between two tokens\n *\n * The price oracle uses chainlink oracles internally to get the rates of the two tokens\n * with respect to a common denominator, and then returns the rate between them, which\n * is equivalent to the rate of TokenA / TokenB\n */\ncontract PriceOracle is IPriceOracle, Utils {\n\tusing SafeMath for uint256;\n\n\taddress private constant ETH_ADDRESS = 0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE;\n\tuint8 private constant ETH_DECIMALS = 18;\n\n\tIERC20Token public tokenA; // token A the oracle supports\n\tIERC20Token public tokenB; // token B the oracle supports\n\tmapping(address => uint8) public tokenDecimals; // token -> token decimals\n\n\tIConsumerPriceOracle public tokenAOracle; // token A chainlink price oracle\n\tIConsumerPriceOracle public tokenBOracle; // token B chainlink price oracle\n\tmapping(address => IConsumerPriceOracle) public tokensToOracles; // token -> price oracle for easier access\n\n\t/**\n\t * @dev initializes a new PriceOracle instance\n\t * note that the oracles must have the same common denominator (USD, ETH etc.)\n\t *\n\t * @param _tokenA first token to support\n\t * @param _tokenB second token to support\n\t * @param _tokenAOracle first token price oracle\n\t * @param _tokenBOracle second token price oracle\n\t */\n\tconstructor(\n\t\tIERC20Token _tokenA,\n\t\tIERC20Token _tokenB,\n\t\tIConsumerPriceOracle _tokenAOracle,\n\t\tIConsumerPriceOracle _tokenBOracle\n\t) public validUniqueAddresses(_tokenA, _tokenB) validUniqueAddresses(_tokenAOracle, _tokenBOracle) {\n\t\ttokenA = _tokenA;\n\t\ttokenB = _tokenB;\n\t\ttokenDecimals[_tokenA] = decimals(_tokenA);\n\t\ttokenDecimals[_tokenB] = decimals(_tokenB);\n\n\t\ttokenAOracle = _tokenAOracle;\n\t\ttokenBOracle = _tokenBOracle;\n\t\ttokensToOracles[_tokenA] = _tokenAOracle;\n\t\ttokensToOracles[_tokenB] = _tokenBOracle;\n\t}\n\n\t// ensures that the provided addresses are unique valid\n\tmodifier validUniqueAddresses(address _address1, address _address2) {\n\t\t_validUniqueAddresses(_address1, _address2);\n\t\t_;\n\t}\n\n\t// error message binary size optimization\n\tfunction _validUniqueAddresses(address _address1, address _address2) internal pure {\n\t\t_validAddress(_address1);\n\t\t_validAddress(_address2);\n\t\trequire(_address1 != _address2, \"ERR_SAME_ADDRESS\");\n\t}\n\n\t// ensures that the provides tokens are supported by the oracle\n\tmodifier supportedTokens(IERC20Token _tokenA, IERC20Token _tokenB) {\n\t\t_supportedTokens(_tokenA, _tokenB);\n\t\t_;\n\t}\n\n\t// error message binary size optimization\n\tfunction _supportedTokens(IERC20Token _tokenA, IERC20Token _tokenB) internal view {\n\t\t_validUniqueAddresses(_tokenA, _tokenB);\n\t\trequire(tokensToOracles[_tokenA] != address(0) && tokensToOracles[_tokenB] != address(0), \"ERR_UNSUPPORTED_TOKEN\");\n\t}\n\n\t/**\n\t * @dev returns the latest known rate between the two given tokens\n\t * for a given pair of tokens A and B, returns the rate of A / B\n\t * (the number of B units equivalent to a single A unit)\n\t * the rate is returned as a fraction (numerator / denominator) for accuracy\n\t *\n\t * @param _tokenA token to get the rate of 1 unit of\n\t * @param _tokenB token to get the rate of 1 `_tokenA` against\n\t *\n\t * @return numerator\n\t * @return denominator\n\t */\n\tfunction latestRate(IERC20Token _tokenA, IERC20Token _tokenB) public view supportedTokens(_tokenA, _tokenB) returns (uint256, uint256) {\n\t\tuint256 rateTokenA = uint256(tokensToOracles[_tokenA].latestAnswer());\n\t\tuint256 rateTokenB = uint256(tokensToOracles[_tokenB].latestAnswer());\n\t\tuint8 decimalsTokenA = tokenDecimals[_tokenA];\n\t\tuint8 decimalsTokenB = tokenDecimals[_tokenB];\n\n\t\t// the normalization works as follows:\n\t\t// - token A with decimals of dA and price of rateA per one token (e.g., for 10^dA weiA)\n\t\t// - token B with decimals of dB < dA and price of rateB per one token (e.g., for 10^dB weiB)\n\t\t// then the normalized rate, representing the rate between 1 weiA and 1 weiB is rateA / (rateB * 10^(dA - dB)).\n\t\t//\n\t\t// for example:\n\t\t// - token A with decimals of 5 and price of $10 per one token (e.g., for 100,000 weiA)\n\t\t// - token B with decimals of 2 and price of $2 per one token (e.g., for 100 weiB)\n\t\t// then the normalized rate would be: 5 / (2 * 10^3) = 0.0025, which is the correct rate since\n\t\t// 1 weiA costs $0.00005, 1 weiB costs $0.02, and weiA / weiB is 0.0025.\n\n\t\tif (decimalsTokenA > decimalsTokenB) {\n\t\t\trateTokenB = rateTokenB.mul(uint256(10)**(decimalsTokenA - decimalsTokenB));\n\t\t} else if (decimalsTokenA < decimalsTokenB) {\n\t\t\trateTokenA = rateTokenA.mul(uint256(10)**(decimalsTokenB - decimalsTokenA));\n\t\t}\n\n\t\treturn (rateTokenA, rateTokenB);\n\t}\n\n\t/**\n\t * @dev returns the timestamp of the last price update\n\t *\n\t * @return timestamp\n\t */\n\tfunction lastUpdateTime() public view returns (uint256) {\n\t\t// returns the oldest timestamp between the two\n\t\tuint256 timestampA = tokenAOracle.latestTimestamp();\n\t\tuint256 timestampB = tokenBOracle.latestTimestamp();\n\n\t\treturn timestampA > timestampB ? timestampA : timestampB;\n\t}\n\n\t/**\n\t * @dev returns both the rate and the timestamp of the last update in a single call (gas optimization)\n\t *\n\t * @param _tokenA token to get the rate of 1 unit of\n\t * @param _tokenB token to get the rate of 1 `_tokenA` against\n\t *\n\t * @return numerator\n\t * @return denominator\n\t * @return timestamp of the last update\n\t */\n\tfunction latestRateAndUpdateTime(IERC20Token _tokenA, IERC20Token _tokenB)\n\t\tpublic\n\t\tview\n\t\treturns (\n\t\t\tuint256,\n\t\t\tuint256,\n\t\t\tuint256\n\t\t)\n\t{\n\t\t(uint256 numerator, uint256 denominator) = latestRate(_tokenA, _tokenB);\n\n\t\treturn (numerator, denominator, lastUpdateTime());\n\t}\n\n\t/** @dev returns the decimals of a given token */\n\tfunction decimals(IERC20Token _token) private view returns (uint8) {\n\t\tif (_token == ETH_ADDRESS) {\n\t\t\treturn ETH_DECIMALS;\n\t\t}\n\n\t\treturn _token.decimals();\n\t}\n}\n" - }, - "solidity/contracts/utility/MocUSDToBTCOracle.sol": { - "content": "pragma solidity 0.4.26;\n\nimport \"./interfaces/IConsumerPriceOracle.sol\";\nimport \"./Owned.sol\";\nimport \"./SafeMath.sol\";\n\ninterface Medianizer {\n\tfunction peek() external view returns (bytes32, bool);\n}\n\ncontract MocUSDToBTCOracle is IConsumerPriceOracle, Owned {\n\tusing SafeMath for uint256;\n\n\tuint256 public constant DECIMALS = 10**18;\n\n\taddress public mocOracleAddress;\n\n\tevent SetMoCOracleAddress(address indexed mocOracleAddress, address changerAddress);\n\n\t/**\n\t * @dev initializes a ne MoC oracle\n\t *\n\t * @param _mocOracleAddress MoC oracle address\n\t */\n\tconstructor(address _mocOracleAddress) public {\n\t\tsetMoCOracleAddress(_mocOracleAddress);\n\t}\n\n\t/**\n\t * @dev returns the USD/BTC rate.\n\t *\n\t * @return always returns the rate of 10000\n\t */\n\tfunction latestAnswer() external view returns (int256) {\n\t\t(bytes32 value, bool hasValue) = Medianizer(mocOracleAddress).peek();\n\t\trequire(hasValue, \"Doesn't has value\");\n\n\t\treturn int256(DECIMALS.div(uint256(value)).mul(DECIMALS));\n\t}\n\n\t/**\n\t * @dev returns the USD/BTC update time.\n\t *\n\t * @return always returns current block's timestamp\n\t */\n\tfunction latestTimestamp() external view returns (uint256) {\n\t\treturn now; // MoC oracle doesn't return update timestamp\n\t}\n\n\t/**\n\t * @dev set MoC oracle address\n\t *\n\t * @param _mocOracleAddress MoC oracle address\n\t */\n\tfunction setMoCOracleAddress(address _mocOracleAddress) public ownerOnly {\n\t\trequire(_mocOracleAddress != address(0), \"_mocOracleAddress shall not be zero address\");\n\t\tmocOracleAddress = _mocOracleAddress;\n\t\temit SetMoCOracleAddress(mocOracleAddress, msg.sender);\n\t}\n}\n" - }, - "solidity/contracts/token/EtherToken.sol": { - "content": "pragma solidity 0.4.26;\nimport \"./ERC20Token.sol\";\nimport \"./interfaces/IEtherToken.sol\";\nimport \"../utility/SafeMath.sol\";\n\n/**\n * @dev Ether tokenization contract\n *\n * 'Owned' is specified here for readability reasons\n */\ncontract EtherToken is IEtherToken, ERC20Token {\n\tusing SafeMath for uint256;\n\n\t/**\n\t * @dev triggered when the total supply is increased\n\t *\n\t * @param _amount amount that gets added to the supply\n\t */\n\tevent Issuance(uint256 _amount);\n\n\t/**\n\t * @dev triggered when the total supply is decreased\n\t *\n\t * @param _amount amount that gets removed from the supply\n\t */\n\tevent Destruction(uint256 _amount);\n\n\t/**\n\t * @dev initializes a new EtherToken instance\n\t *\n\t * @param _name token name\n\t * @param _symbol token symbol\n\t */\n\tconstructor(string _name, string _symbol) public ERC20Token(_name, _symbol, 18, 0) {}\n\n\t/**\n\t * @dev deposit ether on behalf of the sender\n\t */\n\tfunction deposit() public payable {\n\t\tdepositTo(msg.sender);\n\t}\n\n\t/**\n\t * @dev withdraw ether to the sender's account\n\t *\n\t * @param _amount amount of ether to withdraw\n\t */\n\tfunction withdraw(uint256 _amount) public {\n\t\twithdrawTo(msg.sender, _amount);\n\t}\n\n\t/**\n\t * @dev deposit ether to be entitled for a given account\n\t *\n\t * @param _to account to be entitled for the ether\n\t */\n\tfunction depositTo(address _to) public payable notThis(_to) {\n\t\tbalanceOf[_to] = balanceOf[_to].add(msg.value); // add the value to the account balance\n\t\ttotalSupply = totalSupply.add(msg.value); // increase the total supply\n\n\t\temit Issuance(msg.value);\n\t\temit Transfer(this, _to, msg.value);\n\t}\n\n\t/**\n\t * @dev withdraw ether entitled by the sender to a given account\n\t *\n\t * @param _to account to receive the ether\n\t * @param _amount amount of ether to withdraw\n\t */\n\tfunction withdrawTo(address _to, uint256 _amount) public notThis(_to) {\n\t\tbalanceOf[msg.sender] = balanceOf[msg.sender].sub(_amount); // deduct the amount from the account balance\n\t\ttotalSupply = totalSupply.sub(_amount); // decrease the total supply\n\t\t_to.transfer(_amount); // send the amount to the target account\n\n\t\temit Transfer(msg.sender, this, _amount);\n\t\temit Destruction(_amount);\n\t}\n\n\t// ERC20 standard method overrides with some extra protection\n\n\t/**\n\t * @dev send coins\n\t * throws on any error rather then return a false flag to minimize user errors\n\t *\n\t * @param _to target address\n\t * @param _value transfer amount\n\t *\n\t * @return true if the transfer was successful, false if it wasn't\n\t */\n\tfunction transfer(address _to, uint256 _value) public notThis(_to) returns (bool success) {\n\t\tassert(super.transfer(_to, _value));\n\t\treturn true;\n\t}\n\n\t/**\n\t * @dev an account/contract attempts to get the coins\n\t * throws on any error rather then return a false flag to minimize user errors\n\t *\n\t * @param _from source address\n\t * @param _to target address\n\t * @param _value transfer amount\n\t *\n\t * @return true if the transfer was successful, false if it wasn't\n\t */\n\tfunction transferFrom(\n\t\taddress _from,\n\t\taddress _to,\n\t\tuint256 _value\n\t) public notThis(_to) returns (bool success) {\n\t\tassert(super.transferFrom(_from, _to, _value));\n\t\treturn true;\n\t}\n\n\t/**\n\t * @dev deposit ether in the account\n\t */\n\tfunction() external payable {\n\t\tdeposit();\n\t}\n}\n" - }, - "solidity/contracts/token/ERC20Token.sol": { - "content": "pragma solidity 0.4.26;\nimport \"./interfaces/IERC20Token.sol\";\nimport \"../utility/Utils.sol\";\nimport \"../utility/SafeMath.sol\";\n\n/**\n * @dev ERC20 Standard Token implementation\n */\ncontract ERC20Token is IERC20Token, Utils {\n\tusing SafeMath for uint256;\n\n\tstring public name;\n\tstring public symbol;\n\tuint8 public decimals;\n\tuint256 public totalSupply;\n\tmapping(address => uint256) public balanceOf;\n\tmapping(address => mapping(address => uint256)) public allowance;\n\n\t/**\n\t * @dev triggered when tokens are transferred between wallets\n\t *\n\t * @param _from source address\n\t * @param _to target address\n\t * @param _value transfer amount\n\t */\n\tevent Transfer(address indexed _from, address indexed _to, uint256 _value);\n\n\t/**\n\t * @dev triggered when a wallet allows another wallet to transfer tokens from on its behalf\n\t *\n\t * @param _owner wallet that approves the allowance\n\t * @param _spender wallet that receives the allowance\n\t * @param _value allowance amount\n\t */\n\tevent Approval(address indexed _owner, address indexed _spender, uint256 _value);\n\n\t/**\n\t * @dev initializes a new ERC20Token instance\n\t *\n\t * @param _name token name\n\t * @param _symbol token symbol\n\t * @param _decimals decimal points, for display purposes\n\t * @param _totalSupply total supply of token units\n\t */\n\tconstructor(\n\t\tstring _name,\n\t\tstring _symbol,\n\t\tuint8 _decimals,\n\t\tuint256 _totalSupply\n\t) public {\n\t\t// validate input\n\t\trequire(bytes(_name).length > 0, \"ERR_INVALID_NAME\");\n\t\trequire(bytes(_symbol).length > 0, \"ERR_INVALID_SYMBOL\");\n\n\t\tname = _name;\n\t\tsymbol = _symbol;\n\t\tdecimals = _decimals;\n\t\ttotalSupply = _totalSupply;\n\t\tbalanceOf[msg.sender] = _totalSupply;\n\t}\n\n\t/**\n\t * @dev transfers tokens to a given address\n\t * throws on any error rather then return a false flag to minimize user errors\n\t *\n\t * @param _to target address\n\t * @param _value transfer amount\n\t *\n\t * @return true if the transfer was successful, false if it wasn't\n\t */\n\tfunction transfer(address _to, uint256 _value) public validAddress(_to) returns (bool success) {\n\t\tbalanceOf[msg.sender] = balanceOf[msg.sender].sub(_value);\n\t\tbalanceOf[_to] = balanceOf[_to].add(_value);\n\t\temit Transfer(msg.sender, _to, _value);\n\t\treturn true;\n\t}\n\n\t/**\n\t * @dev transfers tokens to a given address on behalf of another address\n\t * throws on any error rather then return a false flag to minimize user errors\n\t *\n\t * @param _from source address\n\t * @param _to target address\n\t * @param _value transfer amount\n\t *\n\t * @return true if the transfer was successful, false if it wasn't\n\t */\n\tfunction transferFrom(\n\t\taddress _from,\n\t\taddress _to,\n\t\tuint256 _value\n\t) public validAddress(_from) validAddress(_to) returns (bool success) {\n\t\tallowance[_from][msg.sender] = allowance[_from][msg.sender].sub(_value);\n\t\tbalanceOf[_from] = balanceOf[_from].sub(_value);\n\t\tbalanceOf[_to] = balanceOf[_to].add(_value);\n\t\temit Transfer(_from, _to, _value);\n\t\treturn true;\n\t}\n\n\t/**\n\t * @dev allows another account/contract to transfers tokens on behalf of the caller\n\t * throws on any error rather then return a false flag to minimize user errors\n\t *\n\t * also, to minimize the risk of the approve/transferFrom attack vector\n\t * (see https://docs.google.com/document/d/1YLPtQxZu1UAvO9cZ1O2RPXBbT0mooh4DYKjA_jp-RLM/), approve has to be called twice\n\t * in 2 separate transactions - once to change the allowance to 0 and secondly to change it to the new allowance value\n\t *\n\t * @param _spender approved address\n\t * @param _value allowance amount\n\t *\n\t * @return true if the approval was successful, false if it wasn't\n\t */\n\tfunction approve(address _spender, uint256 _value) public validAddress(_spender) returns (bool success) {\n\t\t// if the allowance isn't 0, it can only be updated to 0 to prevent an allowance change immediately after withdrawal\n\t\trequire(_value == 0 || allowance[msg.sender][_spender] == 0, \"ERR_INVALID_AMOUNT\");\n\n\t\tallowance[msg.sender][_spender] = _value;\n\t\temit Approval(msg.sender, _spender, _value);\n\t\treturn true;\n\t}\n}\n" - }, - "solidity/contracts/converter/ConverterUpgrader.sol": { - "content": "pragma solidity 0.4.26;\nimport \"./interfaces/IConverter.sol\";\nimport \"./interfaces/IConverterUpgrader.sol\";\nimport \"./interfaces/IConverterFactory.sol\";\nimport \"../utility/ContractRegistryClient.sol\";\nimport \"../utility/interfaces/IWhitelist.sol\";\nimport \"../token/interfaces/IEtherToken.sol\";\nimport \"./types/liquidity-pool-v2/interfaces/ILiquidityPoolV2Converter.sol\";\n\n/**\n * @dev Converter Upgrader\n *\n * The converter upgrader contract allows upgrading an older converter contract (0.4 and up)\n * to the latest version.\n * To begin the upgrade process, simply execute the 'upgrade' function.\n * At the end of the process, the ownership of the newly upgraded converter will be transferred\n * back to the original owner and the original owner will need to execute the 'acceptOwnership' function.\n *\n * The address of the new converter is available in the ConverterUpgrade event.\n *\n * Note that for older converters that don't yet have the 'upgrade' function, ownership should first\n * be transferred manually to the ConverterUpgrader contract using the 'transferOwnership' function\n * and then the upgrader 'upgrade' function should be executed directly.\n */\ncontract ConverterUpgrader is IConverterUpgrader, ContractRegistryClient {\n\taddress private constant ETH_RESERVE_ADDRESS = 0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE;\n\tIEtherToken public etherToken;\n\n\t/**\n\t * @dev triggered when the contract accept a converter ownership\n\t *\n\t * @param _converter converter address\n\t * @param _owner new owner - local upgrader address\n\t */\n\tevent ConverterOwned(address indexed _converter, address indexed _owner);\n\n\t/**\n\t * @dev triggered when the upgrading process is done\n\t *\n\t * @param _oldConverter old converter address\n\t * @param _newConverter new converter address\n\t */\n\tevent ConverterUpgrade(address indexed _oldConverter, address indexed _newConverter);\n\n\t/**\n\t * @dev initializes a new ConverterUpgrader instance\n\t *\n\t * @param _registry address of a contract registry contract\n\t */\n\tconstructor(IContractRegistry _registry, IEtherToken _etherToken) public ContractRegistryClient(_registry) {\n\t\tetherToken = _etherToken;\n\t}\n\n\t/**\n\t * @dev upgrades an old converter to the latest version\n\t * will throw if ownership wasn't transferred to the upgrader before calling this function.\n\t * ownership of the new converter will be transferred back to the original owner.\n\t * fires the ConverterUpgrade event upon success.\n\t * can only be called by a converter\n\t *\n\t * @param _version old converter version\n\t */\n\tfunction upgrade(bytes32 _version) public {\n\t\tupgradeOld(IConverter(msg.sender), _version);\n\t}\n\n\t/**\n\t * @dev upgrades an old converter to the latest version\n\t * will throw if ownership wasn't transferred to the upgrader before calling this function.\n\t * ownership of the new converter will be transferred back to the original owner.\n\t * fires the ConverterUpgrade event upon success.\n\t * can only be called by a converter\n\t *\n\t * @param _version old converter version\n\t */\n\tfunction upgrade(uint16 _version) public {\n\t\tupgradeOld(IConverter(msg.sender), bytes32(_version));\n\t}\n\n\t/**\n\t * @dev upgrades an old converter to the latest version\n\t * will throw if ownership wasn't transferred to the upgrader before calling this function.\n\t * ownership of the new converter will be transferred back to the original owner.\n\t * fires the ConverterUpgrade event upon success.\n\t *\n\t * @param _converter old converter contract address\n\t * @param _version old converter version\n\t */\n\tfunction upgradeOld(IConverter _converter, bytes32 _version) public {\n\t\t_version;\n\t\tIConverter converter = IConverter(_converter);\n\t\taddress prevOwner = converter.owner();\n\t\tacceptConverterOwnership(converter);\n\t\tIConverter newConverter = createConverter(converter);\n\t\tcopyReserves(converter, newConverter);\n\t\tcopyConversionFee(converter, newConverter);\n\t\ttransferReserveBalances(converter, newConverter);\n\t\tIConverterAnchor anchor = converter.token();\n\n\t\t// get the activation status before it's being invalidated\n\t\tbool activate = isV28OrHigherConverter(converter) && converter.isActive();\n\n\t\tif (anchor.owner() == address(converter)) {\n\t\t\tconverter.transferTokenOwnership(newConverter);\n\t\t\tnewConverter.acceptAnchorOwnership();\n\t\t}\n\n\t\thandleTypeSpecificData(converter, newConverter, activate);\n\n\t\tconverter.transferOwnership(prevOwner);\n\t\tnewConverter.transferOwnership(prevOwner);\n\n\t\temit ConverterUpgrade(address(converter), address(newConverter));\n\t}\n\n\t/**\n\t * @dev the first step when upgrading a converter is to transfer the ownership to the local contract.\n\t * the upgrader contract then needs to accept the ownership transfer before initiating\n\t * the upgrade process.\n\t * fires the ConverterOwned event upon success\n\t *\n\t * @param _oldConverter converter to accept ownership of\n\t */\n\tfunction acceptConverterOwnership(IConverter _oldConverter) private {\n\t\t_oldConverter.acceptOwnership();\n\t\temit ConverterOwned(_oldConverter, this);\n\t}\n\n\t/**\n\t * @dev creates a new converter with same basic data as the original old converter\n\t * the newly created converter will have no reserves at this step.\n\t *\n\t * @param _oldConverter old converter contract address\n\t *\n\t * @return the new converter new converter contract address\n\t */\n\tfunction createConverter(IConverter _oldConverter) private returns (IConverter) {\n\t\tIConverterAnchor anchor = _oldConverter.token();\n\t\tuint32 maxConversionFee = _oldConverter.maxConversionFee();\n\t\tuint16 reserveTokenCount = _oldConverter.connectorTokenCount();\n\n\t\t// determine new converter type\n\t\tuint16 newType = 0;\n\t\t// new converter - get the type from the converter itself\n\t\tif (isV28OrHigherConverter(_oldConverter))\n\t\t\tnewType = _oldConverter.converterType();\n\t\t\t// old converter - if it has 1 reserve token, the type is a liquid token, otherwise the type liquidity pool\n\t\telse if (reserveTokenCount > 1) newType = 1;\n\n\t\tIConverterFactory converterFactory = IConverterFactory(addressOf(CONVERTER_FACTORY));\n\t\tIConverter converter = converterFactory.createConverter(newType, anchor, registry, maxConversionFee);\n\n\t\tconverter.acceptOwnership();\n\t\treturn converter;\n\t}\n\n\t/**\n\t * @dev copies the reserves from the old converter to the new one.\n\t * note that this will not work for an unlimited number of reserves due to block gas limit constraints.\n\t *\n\t * @param _oldConverter old converter contract address\n\t * @param _newConverter new converter contract address\n\t */\n\tfunction copyReserves(IConverter _oldConverter, IConverter _newConverter) private {\n\t\tuint16 reserveTokenCount = _oldConverter.connectorTokenCount();\n\n\t\tfor (uint16 i = 0; i < reserveTokenCount; i++) {\n\t\t\taddress reserveAddress = _oldConverter.connectorTokens(i);\n\t\t\t(, uint32 weight, , , ) = _oldConverter.connectors(reserveAddress);\n\n\t\t\t// Ether reserve\n\t\t\tif (reserveAddress == ETH_RESERVE_ADDRESS) {\n\t\t\t\t_newConverter.addReserve(IERC20Token(ETH_RESERVE_ADDRESS), weight);\n\t\t\t}\n\t\t\t// Ether reserve token\n\t\t\telse if (reserveAddress == address(etherToken)) {\n\t\t\t\t_newConverter.addReserve(IERC20Token(ETH_RESERVE_ADDRESS), weight);\n\t\t\t}\n\t\t\t// ERC20 reserve token\n\t\t\telse {\n\t\t\t\t_newConverter.addReserve(IERC20Token(reserveAddress), weight);\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * @dev copies the conversion fee from the old converter to the new one\n\t *\n\t * @param _oldConverter old converter contract address\n\t * @param _newConverter new converter contract address\n\t */\n\tfunction copyConversionFee(IConverter _oldConverter, IConverter _newConverter) private {\n\t\tuint32 conversionFee = _oldConverter.conversionFee();\n\t\t_newConverter.setConversionFee(conversionFee);\n\t}\n\n\t/**\n\t * @dev transfers the balance of each reserve in the old converter to the new one.\n\t * note that the function assumes that the new converter already has the exact same number of\n\t * also, this will not work for an unlimited number of reserves due to block gas limit constraints.\n\t *\n\t * @param _oldConverter old converter contract address\n\t * @param _newConverter new converter contract address\n\t */\n\tfunction transferReserveBalances(IConverter _oldConverter, IConverter _newConverter) private {\n\t\tuint256 reserveBalance;\n\t\tuint16 reserveTokenCount = _oldConverter.connectorTokenCount();\n\n\t\tfor (uint16 i = 0; i < reserveTokenCount; i++) {\n\t\t\taddress reserveAddress = _oldConverter.connectorTokens(i);\n\t\t\t// Ether reserve\n\t\t\tif (reserveAddress == ETH_RESERVE_ADDRESS) {\n\t\t\t\t_oldConverter.withdrawETH(address(_newConverter));\n\t\t\t}\n\t\t\t// Ether reserve token\n\t\t\telse if (reserveAddress == address(etherToken)) {\n\t\t\t\treserveBalance = etherToken.balanceOf(_oldConverter);\n\t\t\t\t_oldConverter.withdrawTokens(etherToken, address(this), reserveBalance);\n\t\t\t\tetherToken.withdrawTo(address(_newConverter), reserveBalance);\n\t\t\t}\n\t\t\t// ERC20 reserve token\n\t\t\telse {\n\t\t\t\tIERC20Token connector = IERC20Token(reserveAddress);\n\t\t\t\treserveBalance = connector.balanceOf(_oldConverter);\n\t\t\t\t_oldConverter.withdrawTokens(connector, address(_newConverter), reserveBalance);\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * @dev handles upgrading custom (type specific) data from the old converter to the new one\n\t *\n\t * @param _oldConverter old converter contract address\n\t * @param _newConverter new converter contract address\n\t * @param _activate activate the new converter\n\t */\n\tfunction handleTypeSpecificData(\n\t\tIConverter _oldConverter,\n\t\tIConverter _newConverter,\n\t\tbool _activate\n\t) private {\n\t\tif (!isV28OrHigherConverter(_oldConverter)) return;\n\n\t\tuint16 converterType = _oldConverter.converterType();\n\t\tif (converterType == 2) {\n\t\t\tuint16 reserveTokenCount = _oldConverter.connectorTokenCount();\n\t\t\tfor (uint16 i = 0; i < reserveTokenCount; i++) {\n\t\t\t\t// copy reserve staked balance\n\t\t\t\tIERC20Token reserveTokenAddress = _oldConverter.connectorTokens(i);\n\t\t\t\tuint256 balance = ILiquidityPoolV2Converter(_oldConverter).reserveStakedBalance(reserveTokenAddress);\n\t\t\t\tILiquidityPoolV2Converter(_newConverter).setReserveStakedBalance(reserveTokenAddress, balance);\n\t\t\t}\n\n\t\t\tif (!_activate) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// get the primary reserve token\n\t\t\tIERC20Token primaryReserveToken = ILiquidityPoolV2Converter(_oldConverter).primaryReserveToken();\n\n\t\t\t// get the chainlink price oracles\n\t\t\tIPriceOracle priceOracle = ILiquidityPoolV2Converter(_oldConverter).priceOracle();\n\t\t\tIConsumerPriceOracle oracleA = priceOracle.tokenAOracle();\n\t\t\tIConsumerPriceOracle oracleB = priceOracle.tokenBOracle();\n\n\t\t\t// activate the new converter\n\t\t\tILiquidityPoolV2Converter(_newConverter).activate(primaryReserveToken, oracleA, oracleB);\n\t\t}\n\t}\n\n\tbytes4 private constant IS_V28_OR_HIGHER_FUNC_SELECTOR = bytes4(keccak256(\"isV28OrHigher()\"));\n\n\t// using assembly code to identify converter version\n\t// can't rely on the version number since the function had a different signature in older converters\n\tfunction isV28OrHigherConverter(IConverter _converter) internal view returns (bool) {\n\t\tbool success;\n\t\tuint256[1] memory ret;\n\t\tbytes memory data = abi.encodeWithSelector(IS_V28_OR_HIGHER_FUNC_SELECTOR);\n\n\t\tassembly {\n\t\t\tsuccess := staticcall(\n\t\t\t\t5000, // isV28OrHigher consumes 190 gas, but just for extra safety\n\t\t\t\t_converter, // destination address\n\t\t\t\tadd(data, 32), // input buffer (starts after the first 32 bytes in the `data` array)\n\t\t\t\tmload(data), // input length (loaded from the first 32 bytes in the `data` array)\n\t\t\t\tret, // output buffer\n\t\t\t\t32 // output length\n\t\t\t)\n\t\t}\n\n\t\treturn success && ret[0] != 0;\n\t}\n}\n" - }, - "solidity/contracts/converter/interfaces/IConverterUpgrader.sol": { - "content": "pragma solidity 0.4.26;\n\n/*\n Converter Upgrader interface\n*/\ncontract IConverterUpgrader {\n\tfunction upgrade(bytes32 _version) public;\n\n\tfunction upgrade(uint16 _version) public;\n}\n" - }, - "solidity/contracts/converter/types/liquidity-pool-v2/interfaces/ILiquidityPoolV2Converter.sol": { - "content": "pragma solidity 0.4.26;\nimport \"../../../../token/interfaces/IERC20Token.sol\";\nimport \"../../../../utility/interfaces/IPriceOracle.sol\";\n\n/*\n Liquidity Pool V2 Converter interface\n*/\ncontract ILiquidityPoolV2Converter {\n function reserveStakedBalance(IERC20Token _reserveToken) public view returns (uint256);\n function setReserveStakedBalance(IERC20Token _reserveToken, uint256 _balance) public;\n\n function primaryReserveToken() public view returns (IERC20Token);\n\n function priceOracle() public view returns (IPriceOracle);\n\n function activate(IERC20Token _primaryReserveToken, IConsumerPriceOracle _primaryReserveOracle, IConsumerPriceOracle _secondaryReserveOracle) public;\n}\n" - }, - "solidity/contracts/utility/Whitelist.sol": { - "content": "pragma solidity 0.4.26;\nimport \"./Owned.sol\";\nimport \"./Utils.sol\";\nimport \"./interfaces/IWhitelist.sol\";\n\n/**\n * @dev The contract manages a list of whitelisted addresses\n */\ncontract Whitelist is IWhitelist, Owned, Utils {\n\tmapping(address => bool) private whitelist;\n\n\t/**\n\t * @dev triggered when an address is added to the whitelist\n\t *\n\t * @param _address address that's added from the whitelist\n\t */\n\tevent AddressAddition(address indexed _address);\n\n\t/**\n\t * @dev triggered when an address is removed from the whitelist\n\t *\n\t * @param _address address that's removed from the whitelist\n\t */\n\tevent AddressRemoval(address indexed _address);\n\n\t/**\n\t * @dev returns true if a given address is whitelisted, false if not\n\t *\n\t * @param _address address to check\n\t *\n\t * @return true if the address is whitelisted, false if not\n\t */\n\tfunction isWhitelisted(address _address) public view returns (bool) {\n\t\treturn whitelist[_address];\n\t}\n\n\t/**\n\t * @dev adds a given address to the whitelist\n\t *\n\t * @param _address address to add\n\t */\n\tfunction addAddress(address _address) public ownerOnly validAddress(_address) {\n\t\tif (whitelist[_address])\n\t\t\t// checks if the address is already whitelisted\n\t\t\treturn;\n\n\t\twhitelist[_address] = true;\n\t\temit AddressAddition(_address);\n\t}\n\n\t/**\n\t * @dev adds a list of addresses to the whitelist\n\t *\n\t * @param _addresses addresses to add\n\t */\n\tfunction addAddresses(address[] _addresses) public {\n\t\tfor (uint256 i = 0; i < _addresses.length; i++) {\n\t\t\taddAddress(_addresses[i]);\n\t\t}\n\t}\n\n\t/**\n\t * @dev removes a given address from the whitelist\n\t *\n\t * @param _address address to remove\n\t */\n\tfunction removeAddress(address _address) public ownerOnly {\n\t\tif (!whitelist[_address])\n\t\t\t// checks if the address is actually whitelisted\n\t\t\treturn;\n\n\t\twhitelist[_address] = false;\n\t\temit AddressRemoval(_address);\n\t}\n\n\t/**\n\t * @dev removes a list of addresses from the whitelist\n\t *\n\t * @param _addresses addresses to remove\n\t */\n\tfunction removeAddresses(address[] _addresses) public {\n\t\tfor (uint256 i = 0; i < _addresses.length; i++) {\n\t\t\tremoveAddress(_addresses[i]);\n\t\t}\n\t}\n}\n" - }, - "solidity/contracts/utility/ContractRegistry.sol": { - "content": "pragma solidity 0.4.26;\nimport \"./Owned.sol\";\nimport \"./Utils.sol\";\nimport \"./interfaces/IContractRegistry.sol\";\n\n/**\n * @dev Contract Registry\n *\n * The contract registry keeps contract addresses by name.\n * The owner can update contract addresses so that a contract name always points to the latest version\n * of the given contract.\n * Other contracts can query the registry to get updated addresses instead of depending on specific\n * addresses.\n *\n * Note that contract names are limited to 32 bytes UTF8 encoded ASCII strings to optimize gas costs\n */\ncontract ContractRegistry is IContractRegistry, Owned, Utils {\n\tstruct RegistryItem {\n\t\taddress contractAddress; // contract address\n\t\tuint256 nameIndex; // index of the item in the list of contract names\n\t}\n\n\tmapping(bytes32 => RegistryItem) private items; // name -> RegistryItem mapping\n\tstring[] public contractNames; // list of all registered contract names\n\n\t/**\n\t * @dev triggered when an address pointed to by a contract name is modified\n\t *\n\t * @param _contractName contract name\n\t * @param _contractAddress new contract address\n\t */\n\tevent AddressUpdate(bytes32 indexed _contractName, address _contractAddress);\n\n\t/**\n\t * @dev returns the number of items in the registry\n\t *\n\t * @return number of items\n\t */\n\tfunction itemCount() public view returns (uint256) {\n\t\treturn contractNames.length;\n\t}\n\n\t/**\n\t * @dev returns the address associated with the given contract name\n\t *\n\t * @param _contractName contract name\n\t *\n\t * @return contract address\n\t */\n\tfunction addressOf(bytes32 _contractName) public view returns (address) {\n\t\treturn items[_contractName].contractAddress;\n\t}\n\n\t/**\n\t * @dev registers a new address for the contract name in the registry\n\t *\n\t * @param _contractName contract name\n\t * @param _contractAddress contract address\n\t */\n\tfunction registerAddress(bytes32 _contractName, address _contractAddress) public ownerOnly validAddress(_contractAddress) {\n\t\t// validate input\n\t\trequire(_contractName.length > 0, \"ERR_INVALID_NAME\");\n\n\t\t// check if any change is needed\n\t\taddress currentAddress = items[_contractName].contractAddress;\n\t\tif (_contractAddress == currentAddress) return;\n\n\t\tif (currentAddress == address(0)) {\n\t\t\t// add the contract name to the name list\n\t\t\tuint256 i = contractNames.push(bytes32ToString(_contractName));\n\t\t\t// update the item's index in the list\n\t\t\titems[_contractName].nameIndex = i - 1;\n\t\t}\n\n\t\t// update the address in the registry\n\t\titems[_contractName].contractAddress = _contractAddress;\n\n\t\t// dispatch the address update event\n\t\temit AddressUpdate(_contractName, _contractAddress);\n\t}\n\n\t/**\n\t * @dev removes an existing contract address from the registry\n\t *\n\t * @param _contractName contract name\n\t */\n\tfunction unregisterAddress(bytes32 _contractName) public ownerOnly {\n\t\t// validate input\n\t\trequire(_contractName.length > 0, \"ERR_INVALID_NAME\");\n\t\trequire(items[_contractName].contractAddress != address(0), \"ERR_INVALID_NAME\");\n\n\t\t// remove the address from the registry\n\t\titems[_contractName].contractAddress = address(0);\n\n\t\t// if there are multiple items in the registry, move the last element to the deleted element's position\n\t\t// and modify last element's registryItem.nameIndex in the items collection to point to the right position in contractNames\n\t\tif (contractNames.length > 1) {\n\t\t\tstring memory lastContractNameString = contractNames[contractNames.length - 1];\n\t\t\tuint256 unregisterIndex = items[_contractName].nameIndex;\n\n\t\t\tcontractNames[unregisterIndex] = lastContractNameString;\n\t\t\tbytes32 lastContractName = stringToBytes32(lastContractNameString);\n\t\t\tRegistryItem storage registryItem = items[lastContractName];\n\t\t\tregistryItem.nameIndex = unregisterIndex;\n\t\t}\n\n\t\t// remove the last element from the name list\n\t\tcontractNames.length--;\n\t\t// zero the deleted element's index\n\t\titems[_contractName].nameIndex = 0;\n\n\t\t// dispatch the address update event\n\t\temit AddressUpdate(_contractName, address(0));\n\t}\n\n\t/**\n\t * @dev utility, converts bytes32 to a string\n\t * note that the bytes32 argument is assumed to be UTF8 encoded ASCII string\n\t *\n\t * @return string representation of the given bytes32 argument\n\t */\n\tfunction bytes32ToString(bytes32 _bytes) private pure returns (string) {\n\t\tbytes memory byteArray = new bytes(32);\n\t\tfor (uint256 i = 0; i < 32; i++) {\n\t\t\tbyteArray[i] = _bytes[i];\n\t\t}\n\n\t\treturn string(byteArray);\n\t}\n\n\t/**\n\t * @dev utility, converts string to bytes32\n\t * note that the bytes32 argument is assumed to be UTF8 encoded ASCII string\n\t *\n\t * @return string representation of the given bytes32 argument\n\t */\n\tfunction stringToBytes32(string memory _string) private pure returns (bytes32) {\n\t\tbytes32 result;\n\t\tassembly {\n\t\t\tresult := mload(add(_string, 32))\n\t\t}\n\t\treturn result;\n\t}\n\n\t/**\n\t * @dev deprecated, backward compatibility\n\t */\n\tfunction getAddress(bytes32 _contractName) public view returns (address) {\n\t\treturn addressOf(_contractName);\n\t}\n}\n" - }, - "solidity/contracts/converter/interfaces/ITypedConverterFactory.sol": { - "content": "pragma solidity 0.4.26;\nimport \"./IConverter.sol\";\nimport \"./IConverterAnchor.sol\";\nimport \"../../utility/interfaces/IContractRegistry.sol\";\n\n/*\n Typed Converter Factory interface\n*/\ncontract ITypedConverterFactory {\n\tfunction converterType() public pure returns (uint16);\n\n\tfunction createConverter(\n\t\tIConverterAnchor _anchor,\n\t\tIContractRegistry _registry,\n\t\tuint32 _maxConversionFee\n\t) public returns (IConverter);\n}\n" - }, - "solidity/contracts/converter/types/liquidity-pool-v2/LiquidityPoolV2ConverterFactory.sol": { - "content": "pragma solidity 0.4.26;\r\nimport \"./LiquidityPoolV2Converter.sol\";\r\nimport \"./interfaces/IPoolTokensContainer.sol\";\r\nimport \"../../interfaces/ITypedConverterFactory.sol\";\r\n\r\n/*\r\n LiquidityPoolV2Converter Factory\r\n*/\r\ncontract LiquidityPoolV2ConverterFactory is ITypedConverterFactory {\r\n /**\r\n * @dev returns the converter type the factory is associated with\r\n *\r\n * @return converter type\r\n */\r\n function converterType() public pure returns (uint16) {\r\n return 2;\r\n }\r\n\r\n /**\r\n * @dev creates a new converter with the given arguments and transfers\r\n * the ownership to the caller\r\n *\r\n * @param _anchor anchor governed by the converter\r\n * @param _registry address of a contract registry contract\r\n * @param _maxConversionFee maximum conversion fee, represented in ppm\r\n *\r\n * @return new converter\r\n */\r\n function createConverter(IConverterAnchor _anchor, IContractRegistry _registry, uint32 _maxConversionFee) public returns (IConverter) {\r\n ConverterBase converter = new LiquidityPoolV2Converter(IPoolTokensContainer(_anchor), _registry, _maxConversionFee);\r\n converter.transferOwnership(msg.sender);\r\n return converter;\r\n }\r\n}\r\n" - }, - "solidity/contracts/converter/types/liquidity-pool-v2/LiquidityPoolV2Converter.sol": { - "content": "pragma solidity 0.4.26;\r\nimport \"./PoolTokensContainer.sol\";\r\nimport \"./LiquidityPoolV2ConverterCustomFactory.sol\";\r\nimport \"../../LiquidityPoolConverter.sol\";\r\nimport \"../../interfaces/IConverterFactory.sol\";\r\nimport \"../../../utility/interfaces/IPriceOracle.sol\";\r\n\r\n/**\r\n * @dev Liquidity Pool v2 Converter\r\n *\r\n * The liquidity pool v2 converter is a specialized version of a converter that uses\r\n * price oracles to rebalance the reserve weights in such a way that the primary token\r\n * balance always strives to match the staked balance.\r\n *\r\n * This type of liquidity pool always has 2 reserves and the reserve weights are dynamic.\r\n*/\r\ncontract LiquidityPoolV2Converter is LiquidityPoolConverter {\r\n uint8 internal constant AMPLIFICATION_FACTOR = 20; // factor to use for conversion calculations (reduces slippage)\r\n uint32 internal constant MAX_DYNAMIC_FEE_FACTOR = 100000; // maximum dynamic-fee factor; must be <= CONVERSION_FEE_RESOLUTION\r\n\r\n struct Fraction {\r\n uint256 n; // numerator\r\n uint256 d; // denominator\r\n }\r\n\r\n IPriceOracle public priceOracle; // external price oracle\r\n IERC20Token public primaryReserveToken; // primary reserve in the pool\r\n IERC20Token public secondaryReserveToken; // secondary reserve in the pool (cache)\r\n mapping (address => uint256) private stakedBalances; // tracks the staked liquidity in the pool plus the fees\r\n mapping (address => ISmartToken) private reservesToPoolTokens; // maps each reserve to its pool token\r\n mapping (address => IERC20Token) private poolTokensToReserves; // maps each pool token to its reserve\r\n\r\n // the period of time it takes to the last rate to fully take effect\r\n uint256 private constant RATE_PROPAGATION_PERIOD = 10 minutes;\r\n\r\n Fraction public referenceRate; // reference rate from the previous block(s) of 1 primary token in secondary tokens\r\n uint256 public referenceRateUpdateTime; // last time when the reference rate was updated (in seconds)\r\n\r\n Fraction public lastConversionRate; // last conversion rate of 1 primary token in secondary tokens\r\n\r\n // used by the temp liquidity limit mechanism during the pilot\r\n mapping (address => uint256) public maxStakedBalances;\r\n bool public maxStakedBalanceEnabled = true;\r\n\r\n uint256 public dynamicFeeFactor = 70000; // initial dynamic fee factor is 7%, represented in ppm\r\n\r\n /**\r\n * @dev triggered when the dynamic fee factor is updated\r\n *\r\n * @param _prevFactor previous factor percentage, represented in ppm\r\n * @param _newFactor new factor percentage, represented in ppm\r\n */\r\n event DynamicFeeFactorUpdate(uint256 _prevFactor, uint256 _newFactor);\r\n\r\n /**\r\n * @dev initializes a new LiquidityPoolV2Converter instance\r\n *\r\n * @param _poolTokensContainer pool tokens container governed by the converter\r\n * @param _registry address of a contract registry contract\r\n * @param _maxConversionFee maximum conversion fee, represented in ppm\r\n */\r\n constructor(IPoolTokensContainer _poolTokensContainer, IContractRegistry _registry, uint32 _maxConversionFee)\r\n public LiquidityPoolConverter(_poolTokensContainer, _registry, _maxConversionFee)\r\n {\r\n }\r\n\r\n // ensures the address is a pool token\r\n modifier validPoolToken(ISmartToken _address) {\r\n _validPoolToken(_address);\r\n _;\r\n }\r\n\r\n // error message binary size optimization\r\n function _validPoolToken(ISmartToken _address) internal view {\r\n require(poolTokensToReserves[_address] != address(0), \"ERR_INVALID_POOL_TOKEN\");\r\n }\r\n\r\n /**\r\n * @dev returns the converter type\r\n *\r\n * @return see the converter types in the the main contract doc\r\n */\r\n function converterType() public pure returns (uint16) {\r\n return 2;\r\n }\r\n\r\n /**\r\n * @dev returns true if the converter is active, false otherwise\r\n *\r\n * @return true if the converter is active, false otherwise\r\n */\r\n function isActive() public view returns (bool) {\r\n return super.isActive() && priceOracle != address(0);\r\n }\r\n\r\n /**\r\n * @dev returns the liquidity amplification factor in the pool\r\n *\r\n * @return liquidity amplification factor\r\n */\r\n function amplificationFactor() public pure returns (uint8) {\r\n return AMPLIFICATION_FACTOR;\r\n }\r\n\r\n /**\r\n * @dev sets the pool's primary reserve token / price oracles and activates the pool\r\n * each oracle must be able to provide the rate for each reserve token\r\n * note that the oracle must be whitelisted prior to the call\r\n * can only be called by the owner while the pool is inactive\r\n *\r\n * @param _primaryReserveToken address of the pool's primary reserve token\r\n * @param _primaryReserveOracle address of a chainlink price oracle for the primary reserve token\r\n * @param _secondaryReserveOracle address of a chainlink price oracle for the secondary reserve token\r\n */\r\n function activate(IERC20Token _primaryReserveToken, IConsumerPriceOracle _primaryReserveOracle, IConsumerPriceOracle _secondaryReserveOracle)\r\n public\r\n inactive\r\n ownerOnly\r\n validReserve(_primaryReserveToken)\r\n notThis(_primaryReserveOracle)\r\n notThis(_secondaryReserveOracle)\r\n validAddress(_primaryReserveOracle)\r\n validAddress(_secondaryReserveOracle)\r\n {\r\n // validate anchor ownership\r\n require(anchor.owner() == address(this), \"ERR_ANCHOR_NOT_OWNED\");\r\n\r\n // validate oracles\r\n IWhitelist oracleWhitelist = IWhitelist(addressOf(CHAINLINK_ORACLE_WHITELIST));\r\n require(oracleWhitelist.isWhitelisted(_primaryReserveOracle), \"ERR_INVALID_ORACLE\");\r\n require(oracleWhitelist.isWhitelisted(_secondaryReserveOracle), \"ERR_INVALID_ORACLE\");\r\n\r\n // create the converter's pool tokens if they don't already exist\r\n createPoolTokens();\r\n\r\n // sets the primary & secondary reserve tokens\r\n primaryReserveToken = _primaryReserveToken;\r\n if (_primaryReserveToken == reserveTokens[0])\r\n secondaryReserveToken = reserveTokens[1];\r\n else\r\n secondaryReserveToken = reserveTokens[0];\r\n\r\n // creates and initalizes the price oracle and sets initial rates\r\n LiquidityPoolV2ConverterCustomFactory customFactory =\r\n LiquidityPoolV2ConverterCustomFactory(IConverterFactory(addressOf(CONVERTER_FACTORY)).customFactories(converterType()));\r\n priceOracle = customFactory.createPriceOracle(_primaryReserveToken, secondaryReserveToken, _primaryReserveOracle, _secondaryReserveOracle);\r\n\r\n (referenceRate.n, referenceRate.d) = priceOracle.latestRate(primaryReserveToken, secondaryReserveToken);\r\n lastConversionRate = referenceRate;\r\n\r\n referenceRateUpdateTime = time();\r\n\r\n // if we are upgrading from an older converter, make sure that reserve balances are in-sync and rebalance\r\n uint256 primaryReserveStakedBalance = reserveStakedBalance(primaryReserveToken);\r\n uint256 primaryReserveBalance = reserveBalance(primaryReserveToken);\r\n uint256 secondaryReserveBalance = reserveBalance(secondaryReserveToken);\r\n\r\n if (primaryReserveStakedBalance == primaryReserveBalance) {\r\n if (primaryReserveStakedBalance > 0 || secondaryReserveBalance > 0) {\r\n rebalance();\r\n }\r\n }\r\n else if (primaryReserveStakedBalance > 0 && primaryReserveBalance > 0 && secondaryReserveBalance > 0) {\r\n rebalance();\r\n }\r\n\r\n emit Activation(converterType(), anchor, true);\r\n }\r\n\r\n /**\r\n * @dev updates the current dynamic fee factor\r\n * can only be called by the contract owner\r\n *\r\n * @param _dynamicFeeFactor new dynamic fee factor, represented in ppm\r\n */\r\n function setDynamicFeeFactor(uint256 _dynamicFeeFactor) public ownerOnly {\r\n require(_dynamicFeeFactor <= MAX_DYNAMIC_FEE_FACTOR, \"ERR_INVALID_DYNAMIC_FEE_FACTOR\");\r\n emit DynamicFeeFactorUpdate(dynamicFeeFactor, _dynamicFeeFactor);\r\n dynamicFeeFactor = _dynamicFeeFactor;\r\n }\r\n\r\n /**\r\n * @dev returns the staked balance of a given reserve token\r\n *\r\n * @param _reserveToken reserve token address\r\n *\r\n * @return staked balance\r\n */\r\n function reserveStakedBalance(IERC20Token _reserveToken)\r\n public\r\n view\r\n validReserve(_reserveToken)\r\n returns (uint256)\r\n {\r\n return stakedBalances[_reserveToken];\r\n }\r\n\r\n /**\r\n * @dev returns the amplified balance of a given reserve token\r\n *\r\n * @param _reserveToken reserve token address\r\n *\r\n * @return amplified balance\r\n */\r\n function reserveAmplifiedBalance(IERC20Token _reserveToken)\r\n public\r\n view\r\n validReserve(_reserveToken)\r\n returns (uint256)\r\n {\r\n return stakedBalances[_reserveToken].mul(AMPLIFICATION_FACTOR - 1).add(reserveBalance(_reserveToken));\r\n }\r\n\r\n /**\r\n * @dev sets the reserve's staked balance\r\n * can only be called by the upgrader contract while the upgrader is the owner\r\n *\r\n * @param _reserveToken reserve token address\r\n * @param _balance new reserve staked balance\r\n */\r\n function setReserveStakedBalance(IERC20Token _reserveToken, uint256 _balance)\r\n public\r\n ownerOnly\r\n only(CONVERTER_UPGRADER)\r\n validReserve(_reserveToken)\r\n {\r\n stakedBalances[_reserveToken] = _balance;\r\n }\r\n\r\n /**\r\n * @dev sets the max staked balance for both reserves\r\n * available as a temporary mechanism during the pilot\r\n * can only be called by the owner\r\n *\r\n * @param _reserve1MaxStakedBalance max staked balance for reserve 1\r\n * @param _reserve2MaxStakedBalance max staked balance for reserve 2\r\n */\r\n function setMaxStakedBalances(uint256 _reserve1MaxStakedBalance, uint256 _reserve2MaxStakedBalance) public ownerOnly {\r\n maxStakedBalances[reserveTokens[0]] = _reserve1MaxStakedBalance;\r\n maxStakedBalances[reserveTokens[1]] = _reserve2MaxStakedBalance;\r\n }\r\n\r\n /**\r\n * @dev disables the max staked balance mechanism\r\n * available as a temporary mechanism during the pilot\r\n * once disabled, it cannot be re-enabled\r\n * can only be called by the owner\r\n */\r\n function disableMaxStakedBalances() public ownerOnly {\r\n maxStakedBalanceEnabled = false;\r\n }\r\n\r\n /**\r\n * @dev returns the pool token address by the reserve token address\r\n *\r\n * @param _reserveToken reserve token address\r\n *\r\n * @return pool token address\r\n */\r\n function poolToken(IERC20Token _reserveToken) public view returns (ISmartToken) {\r\n return reservesToPoolTokens[_reserveToken];\r\n }\r\n\r\n /**\r\n * @dev returns the maximum number of pool tokens that can currently be liquidated\r\n *\r\n * @param _poolToken address of the pool token\r\n *\r\n * @return liquidation limit\r\n */\r\n function liquidationLimit(ISmartToken _poolToken) public view returns (uint256) {\r\n // get the pool token supply\r\n uint256 poolTokenSupply = _poolToken.totalSupply();\r\n\r\n // get the reserve token associated with the pool token and its balance / staked balance\r\n IERC20Token reserveToken = poolTokensToReserves[_poolToken];\r\n uint256 balance = reserveBalance(reserveToken);\r\n uint256 stakedBalance = stakedBalances[reserveToken];\r\n\r\n // calculate the amount that's available for liquidation\r\n return balance.mul(poolTokenSupply).div(stakedBalance);\r\n }\r\n\r\n /**\r\n * @dev defines a new reserve token for the converter\r\n * can only be called by the owner while the converter is inactive and\r\n * 2 reserves aren't defined yet\r\n *\r\n * @param _token address of the reserve token\r\n * @param _weight reserve weight, represented in ppm, 1-1000000\r\n */\r\n function addReserve(IERC20Token _token, uint32 _weight) public {\r\n // verify that the converter doesn't have 2 reserves yet\r\n require(reserveTokenCount() < 2, \"ERR_INVALID_RESERVE_COUNT\");\r\n super.addReserve(_token, _weight);\r\n }\r\n\r\n /**\r\n * @dev returns the effective rate of 1 primary token in secondary tokens\r\n *\r\n * @return rate of 1 primary token in secondary tokens (numerator)\r\n * @return rate of 1 primary token in secondary tokens (denominator)\r\n */\r\n function effectiveTokensRate() public view returns (uint256, uint256) {\r\n Fraction memory rate = _effectiveTokensRate();\r\n return (rate.n, rate.d);\r\n }\r\n\r\n /**\r\n * @dev returns the effective reserve tokens weights\r\n *\r\n * @return reserve1 weight\r\n * @return reserve2 weight\r\n */\r\n function effectiveReserveWeights() public view returns (uint256, uint256) {\r\n Fraction memory rate = _effectiveTokensRate();\r\n (uint32 primaryReserveWeight, uint32 secondaryReserveWeight) = effectiveReserveWeights(rate);\r\n\r\n if (primaryReserveToken == reserveTokens[0]) {\r\n return (primaryReserveWeight, secondaryReserveWeight);\r\n }\r\n\r\n return (secondaryReserveWeight, primaryReserveWeight);\r\n }\r\n\r\n /**\r\n * @dev returns the expected target amount of converting one reserve to another along with the fee\r\n *\r\n * @param _sourceToken contract address of the source reserve token\r\n * @param _targetToken contract address of the target reserve token\r\n * @param _amount amount of tokens received from the user\r\n *\r\n * @return expected target amount\r\n * @return expected fee\r\n */\r\n function targetAmountAndFee(IERC20Token _sourceToken, IERC20Token _targetToken, uint256 _amount)\r\n public\r\n view\r\n active\r\n returns (uint256, uint256)\r\n {\r\n // validate input\r\n // not using the `validReserve` modifier to circumvent `stack too deep` compiler error\r\n _validReserve(_sourceToken);\r\n _validReserve(_targetToken);\r\n require(_sourceToken != _targetToken, \"ERR_SAME_SOURCE_TARGET\");\r\n\r\n // check if rebalance is required (some of this code is duplicated for gas optimization)\r\n uint32 sourceTokenWeight;\r\n uint32 targetTokenWeight;\r\n\r\n // if the rate was already checked in this block, use the current weights.\r\n // otherwise, get the new weights\r\n Fraction memory rate;\r\n if (referenceRateUpdateTime == time()) {\r\n rate = referenceRate;\r\n sourceTokenWeight = reserves[_sourceToken].weight;\r\n targetTokenWeight = reserves[_targetToken].weight;\r\n }\r\n else {\r\n // get the new rate / reserve weights\r\n rate = _effectiveTokensRate();\r\n (uint32 primaryReserveWeight, uint32 secondaryReserveWeight) = effectiveReserveWeights(rate);\r\n\r\n if (_sourceToken == primaryReserveToken) {\r\n sourceTokenWeight = primaryReserveWeight;\r\n targetTokenWeight = secondaryReserveWeight;\r\n }\r\n else {\r\n sourceTokenWeight = secondaryReserveWeight;\r\n targetTokenWeight = primaryReserveWeight;\r\n }\r\n }\r\n\r\n // return the target amount and the conversion fee using the updated reserve weights\r\n (uint256 targetAmount, , uint256 fee) = targetAmountAndFees(_sourceToken, _targetToken, sourceTokenWeight, targetTokenWeight, rate, _amount);\r\n return (targetAmount, fee);\r\n }\r\n\r\n /**\r\n * @dev converts a specific amount of source tokens to target tokens\r\n * can only be called by the SovrynSwap network contract\r\n *\r\n * @param _sourceToken source ERC20 token\r\n * @param _targetToken target ERC20 token\r\n * @param _amount amount of tokens to convert (in units of the source token)\r\n * @param _trader address of the caller who executed the conversion\r\n * @param _beneficiary wallet to receive the conversion result\r\n *\r\n * @return amount of tokens received (in units of the target token)\r\n */\r\n function doConvert(IERC20Token _sourceToken, IERC20Token _targetToken, uint256 _amount, address _trader, address _beneficiary)\r\n internal\r\n active\r\n validReserve(_sourceToken)\r\n validReserve(_targetToken)\r\n returns (uint256)\r\n {\r\n // convert the amount and return the resulted amount and fee\r\n (uint256 amount, uint256 fee) = doConvert(_sourceToken, _targetToken, _amount);\r\n\r\n // transfer funds to the beneficiary in the to reserve token\r\n if (_targetToken == ETH_RESERVE_ADDRESS) {\r\n _beneficiary.transfer(amount);\r\n }\r\n else {\r\n safeTransfer(_targetToken, _beneficiary, amount);\r\n }\r\n\r\n // dispatch the conversion event\r\n dispatchConversionEvent(_sourceToken, _targetToken, _trader, _amount, amount, fee);\r\n\r\n // dispatch rate updates for the pool / reserve tokens\r\n dispatchRateEvents(_sourceToken, _targetToken, reserves[_sourceToken].weight, reserves[_targetToken].weight);\r\n\r\n // return the conversion result amount\r\n return amount;\r\n }\r\n\r\n /**\r\n * @dev converts a specific amount of source tokens to target tokens\r\n * can only be called by the SovrynSwap network contract\r\n *\r\n * @param _sourceToken source ERC20 token\r\n * @param _targetToken target ERC20 token\r\n * @param _amount amount of tokens to convert (in units of the source token)\r\n *\r\n * @return amount of tokens received (in units of the target token)\r\n * @return expected fee\r\n */\r\n function doConvert(IERC20Token _sourceToken, IERC20Token _targetToken, uint256 _amount) private returns (uint256, uint256) {\r\n // check if the rate has changed and rebalance the pool if needed (once in a block)\r\n (bool rateUpdated, Fraction memory rate) = handleRateChange();\r\n\r\n // get expected target amount and fees\r\n (uint256 amount, uint256 standardFee, uint256 dynamicFee) = targetAmountAndFees(_sourceToken, _targetToken, 0, 0, rate, _amount);\r\n\r\n // ensure that the trade gives something in return\r\n require(amount != 0, \"ERR_ZERO_TARGET_AMOUNT\");\r\n\r\n // ensure that the trade won't deplete the reserve balance\r\n uint256 targetReserveBalance = reserveBalance(_targetToken);\r\n require(amount < targetReserveBalance, \"ERR_TARGET_AMOUNT_TOO_HIGH\");\r\n\r\n // ensure that the input amount was already deposited\r\n if (_sourceToken == ETH_RESERVE_ADDRESS)\r\n require(msg.value == _amount, \"ERR_ETH_AMOUNT_MISMATCH\");\r\n else\r\n require(msg.value == 0 && _sourceToken.balanceOf(this).sub(reserveBalance(_sourceToken)) >= _amount, \"ERR_INVALID_AMOUNT\");\r\n\r\n // sync the reserve balances\r\n syncReserveBalance(_sourceToken);\r\n reserves[_targetToken].balance = targetReserveBalance.sub(amount);\r\n\r\n // update the target staked balance with the fee\r\n stakedBalances[_targetToken] = stakedBalances[_targetToken].add(standardFee);\r\n\r\n // update the last conversion rate\r\n if (rateUpdated) {\r\n lastConversionRate = tokensRate(primaryReserveToken, secondaryReserveToken, 0, 0);\r\n }\r\n\r\n return (amount, dynamicFee);\r\n }\r\n\r\n /**\r\n * @dev increases the pool's liquidity and mints new shares in the pool to the caller\r\n *\r\n * @param _reserveToken address of the reserve token to add liquidity to\r\n * @param _amount amount of liquidity to add\r\n * @param _minReturn minimum return-amount of pool tokens\r\n *\r\n * @return amount of pool tokens minted\r\n */\r\n function addLiquidity(IERC20Token _reserveToken, uint256 _amount, uint256 _minReturn)\r\n public\r\n payable\r\n protected\r\n active\r\n validReserve(_reserveToken)\r\n greaterThanZero(_amount)\r\n greaterThanZero(_minReturn)\r\n returns (uint256)\r\n {\r\n // verify that msg.value is identical to the provided amount for ETH reserve, or 0 otherwise\r\n require(_reserveToken == ETH_RESERVE_ADDRESS ? msg.value == _amount : msg.value == 0, \"ERR_ETH_AMOUNT_MISMATCH\");\r\n\r\n // sync the reserve balances just in case\r\n syncReserveBalances();\r\n\r\n // for ETH reserve, deduct the amount that was just synced (since it's already in the converter)\r\n if (_reserveToken == ETH_RESERVE_ADDRESS)\r\n reserves[ETH_RESERVE_ADDRESS].balance = reserves[ETH_RESERVE_ADDRESS].balance.sub(msg.value);\r\n\r\n // get the reserve staked balance before adding the liquidity to it\r\n uint256 initialStakedBalance = stakedBalances[_reserveToken];\r\n\r\n // during the pilot, ensure that the new staked balance isn't greater than the max limit\r\n if (maxStakedBalanceEnabled) {\r\n require(maxStakedBalances[_reserveToken] == 0 || initialStakedBalance.add(_amount) <= maxStakedBalances[_reserveToken], \"ERR_MAX_STAKED_BALANCE_REACHED\");\r\n }\r\n\r\n // get the pool token associated with the reserve and its supply\r\n ISmartToken reservePoolToken = reservesToPoolTokens[_reserveToken];\r\n uint256 poolTokenSupply = reservePoolToken.totalSupply();\r\n\r\n // for non ETH reserve, transfer the funds from the user to the pool\r\n if (_reserveToken != ETH_RESERVE_ADDRESS)\r\n safeTransferFrom(_reserveToken, msg.sender, this, _amount);\r\n\r\n // sync the reserve balance / staked balance\r\n reserves[_reserveToken].balance = reserves[_reserveToken].balance.add(_amount);\r\n stakedBalances[_reserveToken] = initialStakedBalance.add(_amount);\r\n\r\n // calculate how many pool tokens to mint\r\n // for an empty pool, the price is 1:1, otherwise the price is based on the ratio\r\n // between the pool token supply and the staked balance\r\n uint256 poolTokenAmount = 0;\r\n if (initialStakedBalance == 0 || poolTokenSupply == 0)\r\n poolTokenAmount = _amount;\r\n else\r\n poolTokenAmount = _amount.mul(poolTokenSupply).div(initialStakedBalance);\r\n require(poolTokenAmount >= _minReturn, \"ERR_RETURN_TOO_LOW\");\r\n\r\n // mint new pool tokens to the caller\r\n IPoolTokensContainer(anchor).mint(reservePoolToken, msg.sender, poolTokenAmount);\r\n\r\n // rebalance the pool's reserve weights\r\n rebalance();\r\n\r\n // dispatch the LiquidityAdded event\r\n emit LiquidityAdded(msg.sender, _reserveToken, _amount, initialStakedBalance.add(_amount), poolTokenSupply.add(poolTokenAmount));\r\n\r\n // dispatch the `TokenRateUpdate` event for the pool token\r\n dispatchPoolTokenRateUpdateEvent(reservePoolToken, poolTokenSupply.add(poolTokenAmount), _reserveToken);\r\n\r\n // dispatch the `TokenRateUpdate` event for the reserve tokens\r\n dispatchTokenRateUpdateEvent(reserveTokens[0], reserveTokens[1], 0, 0);\r\n\r\n // return the amount of pool tokens minted\r\n return poolTokenAmount;\r\n }\r\n\r\n /**\r\n * @dev decreases the pool's liquidity and burns the caller's shares in the pool\r\n *\r\n * @param _poolToken address of the pool token\r\n * @param _amount amount of pool tokens to burn\r\n * @param _minReturn minimum return-amount of reserve tokens\r\n *\r\n * @return amount of liquidity removed\r\n */\r\n function removeLiquidity(ISmartToken _poolToken, uint256 _amount, uint256 _minReturn)\r\n public\r\n protected\r\n active\r\n validPoolToken(_poolToken)\r\n greaterThanZero(_amount)\r\n greaterThanZero(_minReturn)\r\n returns (uint256)\r\n {\r\n // sync the reserve balances just in case\r\n syncReserveBalances();\r\n\r\n // get the pool token supply before burning the caller's shares\r\n uint256 initialPoolSupply = _poolToken.totalSupply();\r\n\r\n // get the reserve token return before burning the caller's shares\r\n (uint256 reserveAmount, ) = removeLiquidityReturnAndFee(_poolToken, _amount);\r\n require(reserveAmount >= _minReturn, \"ERR_RETURN_TOO_LOW\");\r\n\r\n // get the reserve token associated with the pool token\r\n IERC20Token reserveToken = poolTokensToReserves[_poolToken];\r\n\r\n // burn the caller's pool tokens\r\n IPoolTokensContainer(anchor).burn(_poolToken, msg.sender, _amount);\r\n\r\n // sync the reserve balance / staked balance\r\n reserves[reserveToken].balance = reserves[reserveToken].balance.sub(reserveAmount);\r\n uint256 newStakedBalance = stakedBalances[reserveToken].sub(reserveAmount);\r\n stakedBalances[reserveToken] = newStakedBalance;\r\n\r\n // transfer the reserve amount to the caller\r\n if (reserveToken == ETH_RESERVE_ADDRESS)\r\n msg.sender.transfer(reserveAmount);\r\n else\r\n safeTransfer(reserveToken, msg.sender, reserveAmount);\r\n\r\n // rebalance the pool's reserve weights\r\n rebalance();\r\n\r\n uint256 newPoolTokenSupply = initialPoolSupply.sub(_amount);\r\n\r\n // dispatch the LiquidityRemoved event\r\n emit LiquidityRemoved(msg.sender, reserveToken, reserveAmount, newStakedBalance, newPoolTokenSupply);\r\n\r\n // dispatch the `TokenRateUpdate` event for the pool token\r\n dispatchPoolTokenRateUpdateEvent(_poolToken, newPoolTokenSupply, reserveToken);\r\n\r\n // dispatch the `TokenRateUpdate` event for the reserve tokens\r\n dispatchTokenRateUpdateEvent(reserveTokens[0], reserveTokens[1], 0, 0);\r\n\r\n // return the amount of liquidity removed\r\n return reserveAmount;\r\n }\r\n\r\n /**\r\n * @dev calculates the amount of reserve tokens entitled for a given amount of pool tokens\r\n * note that a fee is applied according to the equilibrium level of the primary reserve token\r\n *\r\n * @param _poolToken address of the pool token\r\n * @param _amount amount of pool tokens\r\n *\r\n * @return amount after fee and fee, in reserve token units\r\n */\r\n function removeLiquidityReturnAndFee(ISmartToken _poolToken, uint256 _amount)\r\n public\r\n view\r\n returns (uint256, uint256)\r\n {\r\n uint256 totalSupply = _poolToken.totalSupply();\r\n uint256 stakedBalance = stakedBalances[poolTokensToReserves[_poolToken]];\r\n\r\n if (_amount < totalSupply) {\r\n uint256 x = stakedBalances[primaryReserveToken].mul(AMPLIFICATION_FACTOR);\r\n uint256 y = reserveAmplifiedBalance(primaryReserveToken);\r\n (uint256 min, uint256 max) = x < y ? (x, y) : (y, x);\r\n uint256 amountBeforeFee = _amount.mul(stakedBalance).div(totalSupply);\r\n uint256 amountAfterFee = amountBeforeFee.mul(min).div(max);\r\n return (amountAfterFee, amountBeforeFee - amountAfterFee);\r\n }\r\n return (stakedBalance, 0);\r\n }\r\n\r\n /**\r\n * @dev returns the expected target amount of converting one reserve to another along with the fees\r\n * this version of the function expects the reserve weights as an input (gas optimization)\r\n *\r\n * @param _sourceToken contract address of the source reserve token\r\n * @param _targetToken contract address of the target reserve token\r\n * @param _sourceWeight source reserve token weight or 0 to read it from storage\r\n * @param _targetWeight target reserve token weight or 0 to read it from storage\r\n * @param _rate rate between the reserve tokens\r\n * @param _amount amount of tokens received from the user\r\n *\r\n * @return expected target amount\r\n * @return expected standard conversion fee\r\n * @return expected dynamic conversion fee\r\n */\r\n function targetAmountAndFees(\r\n IERC20Token _sourceToken,\r\n IERC20Token _targetToken,\r\n uint32 _sourceWeight,\r\n uint32 _targetWeight,\r\n Fraction memory _rate,\r\n uint256 _amount)\r\n private\r\n view\r\n returns (uint256 targetAmount, uint256 standardFee, uint256 dynamicFee)\r\n {\r\n if (_sourceWeight == 0)\r\n _sourceWeight = reserves[_sourceToken].weight;\r\n if (_targetWeight == 0)\r\n _targetWeight = reserves[_targetToken].weight;\r\n\r\n // get the tokens amplified balances\r\n uint256 sourceBalance = reserveAmplifiedBalance(_sourceToken);\r\n uint256 targetBalance = reserveAmplifiedBalance(_targetToken);\r\n\r\n // get the target amount\r\n targetAmount = ISovrynSwapFormula(addressOf(SOVRYNSWAP_FORMULA)).crossReserveTargetAmount(\r\n sourceBalance,\r\n _sourceWeight,\r\n targetBalance,\r\n _targetWeight,\r\n _amount\r\n );\r\n\r\n // return a tuple of [target amount minus dynamic conversion fee, standard conversion fee, dynamic conversion fee]\r\n standardFee = calculateFee(targetAmount);\r\n dynamicFee = calculateDynamicFee(_targetToken, _sourceWeight, _targetWeight, _rate, targetAmount).add(standardFee);\r\n targetAmount = targetAmount.sub(dynamicFee);\r\n }\r\n\r\n /**\r\n * @dev returns the dynamic fee for a given target amount\r\n *\r\n * @param _targetToken contract address of the target reserve token\r\n * @param _sourceWeight source reserve token weight\r\n * @param _targetWeight target reserve token weight\r\n * @param _rate rate of 1 primary token in secondary tokens\r\n * @param _targetAmount target amount\r\n *\r\n * @return dynamic fee\r\n */\r\n function calculateDynamicFee(\r\n IERC20Token _targetToken,\r\n uint32 _sourceWeight,\r\n uint32 _targetWeight,\r\n Fraction memory _rate,\r\n uint256 _targetAmount)\r\n internal view returns (uint256)\r\n {\r\n uint256 fee;\r\n\r\n if (_targetToken == secondaryReserveToken) {\r\n fee = calculateFeeToEquilibrium(\r\n stakedBalances[primaryReserveToken],\r\n stakedBalances[secondaryReserveToken],\r\n _sourceWeight,\r\n _targetWeight,\r\n _rate.n,\r\n _rate.d,\r\n dynamicFeeFactor);\r\n }\r\n else {\r\n fee = calculateFeeToEquilibrium(\r\n stakedBalances[primaryReserveToken],\r\n stakedBalances[secondaryReserveToken],\r\n _targetWeight,\r\n _sourceWeight,\r\n _rate.n,\r\n _rate.d,\r\n dynamicFeeFactor);\r\n }\r\n\r\n return _targetAmount.mul(fee).div(CONVERSION_FEE_RESOLUTION);\r\n }\r\n\r\n /**\r\n * @dev returns the relative fee required for mitigating the secondary reserve distance from equilibrium\r\n *\r\n * @param _primaryReserveStaked primary reserve staked balance\r\n * @param _secondaryReserveStaked secondary reserve staked balance\r\n * @param _primaryReserveWeight primary reserve weight\r\n * @param _secondaryReserveWeight secondary reserve weight\r\n * @param _primaryReserveRate primary reserve rate\r\n * @param _secondaryReserveRate secondary reserve rate\r\n * @param _dynamicFeeFactor dynamic fee factor\r\n *\r\n * @return relative fee, represented in ppm\r\n */\r\n function calculateFeeToEquilibrium(\r\n uint256 _primaryReserveStaked,\r\n uint256 _secondaryReserveStaked,\r\n uint256 _primaryReserveWeight,\r\n uint256 _secondaryReserveWeight,\r\n uint256 _primaryReserveRate,\r\n uint256 _secondaryReserveRate,\r\n uint256 _dynamicFeeFactor)\r\n internal\r\n pure\r\n returns (uint256)\r\n {\r\n uint256 x = _primaryReserveStaked.mul(_primaryReserveRate).mul(_secondaryReserveWeight);\r\n uint256 y = _secondaryReserveStaked.mul(_secondaryReserveRate).mul(_primaryReserveWeight);\r\n if (y > x)\r\n return (y - x).mul(_dynamicFeeFactor).mul(AMPLIFICATION_FACTOR).div(y);\r\n return 0;\r\n }\r\n\r\n /**\r\n * @dev creates the converter's pool tokens\r\n * note that technically pool tokens can be created on deployment but gas limit\r\n * might get too high for a block, so creating them on first activation\r\n *\r\n */\r\n function createPoolTokens() internal {\r\n IPoolTokensContainer container = IPoolTokensContainer(anchor);\r\n ISmartToken[] memory poolTokens = container.poolTokens();\r\n bool initialSetup = poolTokens.length == 0;\r\n\r\n uint256 reserveCount = reserveTokens.length;\r\n for (uint256 i = 0; i < reserveCount; i++) {\r\n ISmartToken reservePoolToken;\r\n if (initialSetup) {\r\n reservePoolToken = container.createToken();\r\n }\r\n else {\r\n reservePoolToken = poolTokens[i];\r\n }\r\n\r\n // cache the pool token address (gas optimization)\r\n reservesToPoolTokens[reserveTokens[i]] = reservePoolToken;\r\n poolTokensToReserves[reservePoolToken] = reserveTokens[i];\r\n }\r\n }\r\n\r\n /**\r\n * @dev returns the effective rate between the two reserve tokens\r\n *\r\n * @return rate\r\n */\r\n function _effectiveTokensRate() private view returns (Fraction memory) {\r\n // get the external rate between the reserves\r\n (uint256 externalRateN, uint256 externalRateD, uint256 updateTime) = priceOracle.latestRateAndUpdateTime(primaryReserveToken, secondaryReserveToken);\r\n\r\n // if the external rate was recently updated - prefer it over the internal rate\r\n if (updateTime > referenceRateUpdateTime) {\r\n return Fraction({ n: externalRateN, d: externalRateD });\r\n }\r\n\r\n // get the elapsed time between the current and the last conversion\r\n uint256 timeElapsed = time() - referenceRateUpdateTime;\r\n\r\n // if both of the conversions are in the same block - use the reference rate\r\n if (timeElapsed == 0) {\r\n return referenceRate;\r\n }\r\n\r\n // given N as the sampling window, the new internal rate is calculated according to the following formula:\r\n // newRate = referenceRate + timeElapsed * [lastConversionRate - referenceRate] / N\r\n\r\n // if a long period of time, since the last update, has passed - the last rate should fully take effect\r\n if (timeElapsed >= RATE_PROPAGATION_PERIOD) {\r\n return lastConversionRate;\r\n }\r\n\r\n // calculate the numerator and the denumerator of the new rate\r\n Fraction memory ref = referenceRate;\r\n Fraction memory last = lastConversionRate;\r\n\r\n uint256 x = ref.d.mul(last.n);\r\n uint256 y = ref.n.mul(last.d);\r\n\r\n // since we know that timeElapsed < RATE_PROPAGATION_PERIOD, we can avoid using SafeMath:\r\n uint256 newRateN = y.mul(RATE_PROPAGATION_PERIOD - timeElapsed).add(x.mul(timeElapsed));\r\n uint256 newRateD = ref.d.mul(last.d).mul(RATE_PROPAGATION_PERIOD);\r\n\r\n return reduceRate(newRateN, newRateD);\r\n }\r\n\r\n /**\r\n * @dev checks if the rate has changed and if so, rebalances the weights\r\n * note that rebalancing based on rate change only happens once per block\r\n *\r\n * @return whether the rate was updated\r\n * @return rate between the reserve tokens\r\n */\r\n function handleRateChange() private returns (bool, Fraction memory) {\r\n uint256 currentTime = time();\r\n\r\n // avoid updating the rate more than once per block\r\n if (referenceRateUpdateTime == currentTime) {\r\n return (false, referenceRate);\r\n }\r\n\r\n // get and store the effective rate between the reserves\r\n Fraction memory newRate = _effectiveTokensRate();\r\n\r\n // if the rate has changed, update it and rebalance the pool\r\n Fraction memory ref = referenceRate;\r\n if (newRate.n == ref.n && newRate.d == ref.d) {\r\n return (false, newRate);\r\n }\r\n\r\n referenceRate = newRate;\r\n referenceRateUpdateTime = currentTime;\r\n\r\n rebalance();\r\n\r\n return (true, newRate);\r\n }\r\n\r\n /**\r\n * @dev updates the pool's reserve weights with new values in order to push the current primary\r\n * reserve token balance to its staked balance\r\n */\r\n function rebalance() private {\r\n // get the new reserve weights\r\n (uint32 primaryReserveWeight, uint32 secondaryReserveWeight) = effectiveReserveWeights(referenceRate);\r\n\r\n // update the reserve weights with the new values\r\n reserves[primaryReserveToken].weight = primaryReserveWeight;\r\n reserves[secondaryReserveToken].weight = secondaryReserveWeight;\r\n }\r\n\r\n /**\r\n * @dev returns the effective reserve weights based on the staked balance, current balance and oracle price\r\n *\r\n * @param _rate rate between the reserve tokens\r\n *\r\n * @return new primary reserve weight\r\n * @return new secondary reserve weight\r\n */\r\n function effectiveReserveWeights(Fraction memory _rate) private view returns (uint32, uint32) {\r\n // get the primary reserve staked balance\r\n uint256 primaryStakedBalance = stakedBalances[primaryReserveToken];\r\n\r\n // get the tokens amplified balances\r\n uint256 primaryBalance = reserveAmplifiedBalance(primaryReserveToken);\r\n uint256 secondaryBalance = reserveAmplifiedBalance(secondaryReserveToken);\r\n\r\n // get the new weights\r\n return ISovrynSwapFormula(addressOf(SOVRYNSWAP_FORMULA)).balancedWeights(\r\n primaryStakedBalance.mul(AMPLIFICATION_FACTOR),\r\n primaryBalance,\r\n secondaryBalance,\r\n _rate.n,\r\n _rate.d);\r\n }\r\n\r\n /**\r\n * @dev calculates and returns the rate between two reserve tokens\r\n *\r\n * @param _token1 contract address of the token to calculate the rate of one unit of\r\n * @param _token2 contract address of the token to calculate the rate of one `_token1` unit in\r\n * @param _token1Weight reserve weight of token1\r\n * @param _token2Weight reserve weight of token2\r\n *\r\n * @return rate\r\n */\r\n function tokensRate(IERC20Token _token1, IERC20Token _token2, uint32 _token1Weight, uint32 _token2Weight) private view returns (Fraction memory) {\r\n // apply the amplification factor\r\n uint256 token1Balance = reserveAmplifiedBalance(_token1);\r\n uint256 token2Balance = reserveAmplifiedBalance(_token2);\r\n\r\n // get reserve weights\r\n if (_token1Weight == 0) {\r\n _token1Weight = reserves[_token1].weight;\r\n }\r\n\r\n if (_token2Weight == 0) {\r\n _token2Weight = reserves[_token2].weight;\r\n }\r\n\r\n return Fraction({ n: token2Balance.mul(_token1Weight), d: token1Balance.mul(_token2Weight) });\r\n }\r\n\r\n /**\r\n * @dev dispatches rate events for both reserve tokens and for the target pool token\r\n * only used to circumvent the `stack too deep` compiler error\r\n *\r\n * @param _sourceToken contract address of the source reserve token\r\n * @param _targetToken contract address of the target reserve token\r\n * @param _sourceWeight source reserve token weight\r\n * @param _targetWeight target reserve token weight\r\n */\r\n function dispatchRateEvents(IERC20Token _sourceToken, IERC20Token _targetToken, uint32 _sourceWeight, uint32 _targetWeight) private {\r\n dispatchTokenRateUpdateEvent(_sourceToken, _targetToken, _sourceWeight, _targetWeight);\r\n\r\n // dispatch the `TokenRateUpdate` event for the pool token\r\n // the target reserve pool token rate is the only one that's affected\r\n // by conversions since conversion fees are applied to the target reserve\r\n ISmartToken targetPoolToken = poolToken(_targetToken);\r\n uint256 targetPoolTokenSupply = targetPoolToken.totalSupply();\r\n dispatchPoolTokenRateUpdateEvent(targetPoolToken, targetPoolTokenSupply, _targetToken);\r\n }\r\n\r\n /**\r\n * @dev dispatches token rate update event\r\n * only used to circumvent the `stack too deep` compiler error\r\n *\r\n * @param _token1 contract address of the token to calculate the rate of one unit of\r\n * @param _token2 contract address of the token to calculate the rate of one `_token1` unit in\r\n * @param _token1Weight reserve weight of token1\r\n * @param _token2Weight reserve weight of token2\r\n */\r\n function dispatchTokenRateUpdateEvent(IERC20Token _token1, IERC20Token _token2, uint32 _token1Weight, uint32 _token2Weight) private {\r\n // dispatch token rate update event\r\n Fraction memory rate = tokensRate(_token1, _token2, _token1Weight, _token2Weight);\r\n\r\n emit TokenRateUpdate(_token1, _token2, rate.n, rate.d);\r\n }\r\n\r\n /**\r\n * @dev dispatches the `TokenRateUpdate` for the pool token\r\n * only used to circumvent the `stack too deep` compiler error\r\n *\r\n * @param _poolToken address of the pool token\r\n * @param _poolTokenSupply total pool token supply\r\n * @param _reserveToken address of the reserve token\r\n */\r\n function dispatchPoolTokenRateUpdateEvent(ISmartToken _poolToken, uint256 _poolTokenSupply, IERC20Token _reserveToken) private {\r\n emit TokenRateUpdate(_poolToken, _reserveToken, stakedBalances[_reserveToken], _poolTokenSupply);\r\n }\r\n\r\n /**\r\n * @dev returns the current time\r\n */\r\n function time() internal view returns (uint256) {\r\n return now;\r\n }\r\n\r\n uint256 private constant MAX_RATE_FACTOR_LOWER_BOUND = 1e30;\r\n uint256 private constant MAX_RATE_FACTOR_UPPER_BOUND = uint256(-1) / MAX_RATE_FACTOR_LOWER_BOUND;\r\n\r\n /**\r\n * @dev reduces the numerator and denominator while maintaining the ratio between them as accurately as possible\r\n */\r\n function reduceRate(uint256 _n, uint256 _d) internal pure returns (Fraction memory) {\r\n if (_n >= _d) {\r\n return reduceFactors(_n, _d);\r\n }\r\n\r\n Fraction memory rate = reduceFactors(_d, _n);\r\n return Fraction({ n: rate.d, d: rate.n });\r\n }\r\n\r\n /**\r\n * @dev reduces the factors while maintaining the ratio between them as accurately as possible\r\n */\r\n function reduceFactors(uint256 _max, uint256 _min) internal pure returns (Fraction memory) {\r\n if (_min > MAX_RATE_FACTOR_UPPER_BOUND) {\r\n return Fraction({\r\n n: MAX_RATE_FACTOR_LOWER_BOUND,\r\n d: _min / (_max / MAX_RATE_FACTOR_LOWER_BOUND)\r\n });\r\n }\r\n\r\n if (_max > MAX_RATE_FACTOR_LOWER_BOUND) {\r\n return Fraction({\r\n n: MAX_RATE_FACTOR_LOWER_BOUND,\r\n d: _min * MAX_RATE_FACTOR_LOWER_BOUND / _max\r\n });\r\n }\r\n\r\n return Fraction({ n: _max, d: _min });\r\n }\r\n}\r\n" - }, - "solidity/contracts/converter/types/liquidity-pool-v2/interfaces/IPoolTokensContainer.sol": { - "content": "pragma solidity 0.4.26;\nimport \"../../../interfaces/IConverterAnchor.sol\";\nimport \"../../../../token/interfaces/ISmartToken.sol\";\n\n/*\n Pool Tokens Container interface\n*/\ncontract IPoolTokensContainer is IConverterAnchor {\n function poolTokens() public view returns (ISmartToken[]);\n function createToken() public returns (ISmartToken);\n function mint(ISmartToken _token, address _to, uint256 _amount) public;\n function burn(ISmartToken _token, address _from, uint256 _amount) public;\n}\n" - }, - "solidity/contracts/converter/types/liquidity-pool-v2/PoolTokensContainer.sol": { - "content": "pragma solidity 0.4.26;\r\nimport \"./interfaces/IPoolTokensContainer.sol\";\r\nimport \"../../../utility/Owned.sol\";\r\nimport \"../../../utility/TokenHolder.sol\";\r\nimport \"../../../token/SmartToken.sol\";\r\n\r\n/**\r\n * @dev The PoolTokensContainer contract serves as a container for multiple pool tokens.\r\n * It is used by specific liquidity pool types that require more than a single pool token,\r\n * while still maintaining the single converter / anchor relationship.\r\n *\r\n * It maintains and provides a list of the underlying pool tokens.\r\n */\r\ncontract PoolTokensContainer is IPoolTokensContainer, Owned, TokenHolder {\r\n uint8 internal constant MAX_POOL_TOKENS = 5; // maximum pool tokens in the container\r\n\r\n string public name; // pool name\r\n string public symbol; // pool symbol\r\n uint8 public decimals; // underlying pool tokens decimals\r\n ISmartToken[] private _poolTokens; // underlying pool tokens\r\n\r\n /**\r\n * @dev initializes a new PoolTokensContainer instance\r\n *\r\n * @param _name pool name, also used as a prefix for the underlying pool token names\r\n * @param _symbol pool symbol, also used as a prefix for the underlying pool token symbols\r\n * @param _decimals used for the underlying pool token decimals\r\n */\r\n constructor(string _name, string _symbol, uint8 _decimals) public {\r\n // validate input\r\n require(bytes(_name).length > 0, \"ERR_INVALID_NAME\");\r\n require(bytes(_symbol).length > 0, \"ERR_INVALID_SYMBOL\");\r\n\r\n name = _name;\r\n symbol = _symbol;\r\n decimals = _decimals;\r\n }\r\n\r\n /**\r\n * @dev returns the list of pool tokens\r\n *\r\n * @return list of pool tokens\r\n */\r\n function poolTokens() public view returns (ISmartToken[] memory) {\r\n return _poolTokens;\r\n }\r\n\r\n /**\r\n * @dev creates a new pool token and adds it to the list\r\n *\r\n * @return new pool token address\r\n */\r\n function createToken() public ownerOnly returns (ISmartToken) {\r\n // verify that the max limit wasn't reached\r\n require(_poolTokens.length < MAX_POOL_TOKENS, \"ERR_MAX_LIMIT_REACHED\");\r\n\r\n string memory poolName = concatStrDigit(name, uint8(_poolTokens.length + 1));\r\n string memory poolSymbol = concatStrDigit(symbol, uint8(_poolTokens.length + 1));\r\n\r\n SmartToken token = new SmartToken(poolName, poolSymbol, decimals);\r\n _poolTokens.push(token);\r\n return token;\r\n }\r\n\r\n /**\r\n * @dev increases the pool token supply and sends the new tokens to the given account\r\n * can only be called by the contract owner\r\n *\r\n * @param _token pool token address\r\n * @param _to account to receive the newly minted tokens\r\n * @param _amount amount to mint\r\n */\r\n function mint(ISmartToken _token, address _to, uint256 _amount) public ownerOnly {\r\n _token.issue(_to, _amount);\r\n }\r\n\r\n /**\r\n * @dev removes tokens from the given account and decreases the pool token supply\r\n * can only be called by the contract owner\r\n *\r\n * @param _token pool token address\r\n * @param _from account to remove the tokens from\r\n * @param _amount amount to burn\r\n */\r\n function burn(ISmartToken _token, address _from, uint256 _amount) public ownerOnly {\r\n _token.destroy(_from, _amount);\r\n }\r\n\r\n /**\r\n * @dev concatenates a string and a digit (single only) and returns the result string\r\n *\r\n * @param _str string\r\n * @param _digit digit\r\n * @return concatenated string\r\n */\r\n function concatStrDigit(string _str, uint8 _digit) private pure returns (string) {\r\n return string(abi.encodePacked(_str, uint8(bytes1(\"0\")) + _digit));\r\n }\r\n}\r\n" - }, - "solidity/contracts/converter/types/liquidity-pool-v2/LiquidityPoolV2ConverterCustomFactory.sol": { - "content": "pragma solidity 0.4.26;\r\nimport \"../../interfaces/ITypedConverterCustomFactory.sol\";\r\nimport \"../../../utility/PriceOracle.sol\";\r\n\r\n/*\r\n LiquidityPoolV2ConverterCustomFactory Factory\r\n*/\r\ncontract LiquidityPoolV2ConverterCustomFactory is ITypedConverterCustomFactory {\r\n /**\r\n * @dev returns the converter type the factory is associated with\r\n *\r\n * @return converter type\r\n */\r\n function converterType() public pure returns (uint16) {\r\n return 2;\r\n }\r\n\r\n /**\r\n * @dev creates a new price oracle\r\n * note that the oracles must have the same common denominator (USD, ETH etc.)\r\n *\r\n * @param _primaryReserveToken primary reserve token address\r\n * @param _secondaryReserveToken secondary reserve token address\r\n * @param _primaryReserveOracle primary reserve oracle address\r\n * @param _secondaryReserveOracle secondary reserve oracle address\r\n */\r\n function createPriceOracle(\r\n IERC20Token _primaryReserveToken,\r\n IERC20Token _secondaryReserveToken,\r\n IConsumerPriceOracle _primaryReserveOracle,\r\n IConsumerPriceOracle _secondaryReserveOracle)\r\n public\r\n returns (IPriceOracle)\r\n {\r\n return new PriceOracle(_primaryReserveToken, _secondaryReserveToken, _primaryReserveOracle, _secondaryReserveOracle);\r\n }\r\n}\r\n" - }, - "solidity/contracts/converter/LiquidityPoolConverter.sol": { - "content": "pragma solidity 0.4.26;\nimport \"./ConverterBase.sol\";\n\n/**\n * @dev Liquidity Pool Converter\n *\n * The liquidity pool converter is the base contract for specific types of converters that\n * manage liquidity pools.\n *\n * Liquidity pools have 2 reserves or more and they allow converting between them.\n *\n * Note that TokenRateUpdate events are dispatched for pool tokens as well.\n * The pool token is the first token in the event in that case.\n */\ncontract LiquidityPoolConverter is ConverterBase {\n\t/**\n\t * @dev triggered after liquidity is added\n\t *\n\t * @param _provider liquidity provider\n\t * @param _reserveToken reserve token address\n\t * @param _amount reserve token amount\n\t * @param _newBalance reserve token new balance\n\t * @param _newSupply pool token new supply\n\t */\n\tevent LiquidityAdded(address indexed _provider, address indexed _reserveToken, uint256 _amount, uint256 _newBalance, uint256 _newSupply);\n\n\t/**\n\t * @dev triggered after liquidity is removed\n\t *\n\t * @param _provider liquidity provider\n\t * @param _reserveToken reserve token address\n\t * @param _amount reserve token amount\n\t * @param _newBalance reserve token new balance\n\t * @param _newSupply pool token new supply\n\t */\n\tevent LiquidityRemoved(address indexed _provider, address indexed _reserveToken, uint256 _amount, uint256 _newBalance, uint256 _newSupply);\n\n\t/**\n\t * @dev initializes a new LiquidityPoolConverter instance\n\t *\n\t * @param _anchor anchor governed by the converter\n\t * @param _registry address of a contract registry contract\n\t * @param _maxConversionFee maximum conversion fee, represented in ppm\n\t */\n\tconstructor(\n\t\tIConverterAnchor _anchor,\n\t\tIContractRegistry _registry,\n\t\tuint32 _maxConversionFee\n\t) internal ConverterBase(_anchor, _registry, _maxConversionFee) {}\n\n\t/**\n\t * @dev accepts ownership of the anchor after an ownership transfer\n\t * also activates the converter\n\t * can only be called by the contract owner\n\t * note that prior to version 28, you should use 'acceptTokenOwnership' instead\n\t */\n\tfunction acceptAnchorOwnership() public {\n\t\t// verify that the converter has at least 2 reserves\n\t\trequire(reserveTokenCount() > 1, \"ERR_INVALID_RESERVE_COUNT\");\n\t\tsuper.acceptAnchorOwnership();\n\t}\n}\n" - }, - "solidity/contracts/token/SmartToken.sol": { - "content": "pragma solidity 0.4.26;\nimport \"./ERC20Token.sol\";\nimport \"./interfaces/ISmartToken.sol\";\nimport \"../utility/Owned.sol\";\nimport \"../utility/TokenHolder.sol\";\n\n/**\n * @dev Smart Token\n *\n * 'Owned' is specified here for readability reasons\n */\ncontract SmartToken is ISmartToken, Owned, ERC20Token, TokenHolder {\n\tusing SafeMath for uint256;\n\n\tuint16 public constant version = 4;\n\n\tbool public transfersEnabled = true; // true if transfer/transferFrom are enabled, false otherwise\n\n\t/**\n\t * @dev triggered when the total supply is increased\n\t *\n\t * @param _amount amount that gets added to the supply\n\t */\n\tevent Issuance(uint256 _amount);\n\n\t/**\n\t * @dev triggered when the total supply is decreased\n\t *\n\t * @param _amount amount that gets removed from the supply\n\t */\n\tevent Destruction(uint256 _amount);\n\n\t/**\n\t * @dev initializes a new SmartToken instance\n\t *\n\t * @param _name token name\n\t * @param _symbol token short symbol, minimum 1 character\n\t * @param _decimals for display purposes only\n\t */\n\tconstructor(\n\t\tstring _name,\n\t\tstring _symbol,\n\t\tuint8 _decimals\n\t) public ERC20Token(_name, _symbol, _decimals, 0) {}\n\n\t// allows execution only when transfers are enabled\n\tmodifier transfersAllowed {\n\t\t_transfersAllowed();\n\t\t_;\n\t}\n\n\t// error message binary size optimization\n\tfunction _transfersAllowed() internal view {\n\t\trequire(transfersEnabled, \"ERR_TRANSFERS_DISABLED\");\n\t}\n\n\t/**\n\t * @dev disables/enables transfers\n\t * can only be called by the contract owner\n\t *\n\t * @param _disable true to disable transfers, false to enable them\n\t */\n\tfunction disableTransfers(bool _disable) public ownerOnly {\n\t\ttransfersEnabled = !_disable;\n\t}\n\n\t/**\n\t * @dev increases the token supply and sends the new tokens to the given account\n\t * can only be called by the contract owner\n\t *\n\t * @param _to account to receive the new amount\n\t * @param _amount amount to increase the supply by\n\t */\n\tfunction issue(address _to, uint256 _amount) public ownerOnly validAddress(_to) notThis(_to) {\n\t\ttotalSupply = totalSupply.add(_amount);\n\t\tbalanceOf[_to] = balanceOf[_to].add(_amount);\n\n\t\temit Issuance(_amount);\n\t\temit Transfer(address(0), _to, _amount);\n\t}\n\n\t/**\n\t * @dev removes tokens from the given account and decreases the token supply\n\t * can only be called by the contract owner\n\t *\n\t * @param _from account to remove the amount from\n\t * @param _amount amount to decrease the supply by\n\t */\n\tfunction destroy(address _from, uint256 _amount) public ownerOnly {\n\t\tbalanceOf[_from] = balanceOf[_from].sub(_amount);\n\t\ttotalSupply = totalSupply.sub(_amount);\n\n\t\temit Transfer(_from, address(0), _amount);\n\t\temit Destruction(_amount);\n\t}\n\n\t// ERC20 standard method overrides with some extra functionality\n\n\t/**\n\t * @dev send coins\n\t * throws on any error rather then return a false flag to minimize user errors\n\t * in addition to the standard checks, the function throws if transfers are disabled\n\t *\n\t * @param _to target address\n\t * @param _value transfer amount\n\t *\n\t * @return true if the transfer was successful, false if it wasn't\n\t */\n\tfunction transfer(address _to, uint256 _value) public transfersAllowed returns (bool success) {\n\t\tassert(super.transfer(_to, _value));\n\t\treturn true;\n\t}\n\n\t/**\n\t * @dev an account/contract attempts to get the coins\n\t * throws on any error rather then return a false flag to minimize user errors\n\t * in addition to the standard checks, the function throws if transfers are disabled\n\t *\n\t * @param _from source address\n\t * @param _to target address\n\t * @param _value transfer amount\n\t *\n\t * @return true if the transfer was successful, false if it wasn't\n\t */\n\tfunction transferFrom(\n\t\taddress _from,\n\t\taddress _to,\n\t\tuint256 _value\n\t) public transfersAllowed returns (bool success) {\n\t\tassert(super.transferFrom(_from, _to, _value));\n\t\treturn true;\n\t}\n}\n" - }, - "solidity/contracts/converter/ConverterBase.sol": { - "content": "pragma solidity 0.4.26;\nimport \"./interfaces/IConverter.sol\";\nimport \"./interfaces/IConverterAnchor.sol\";\nimport \"./interfaces/IConverterUpgrader.sol\";\nimport \"./interfaces/ISovrynSwapFormula.sol\";\nimport \"../ISovrynSwapNetwork.sol\";\nimport \"../utility/ContractRegistryClient.sol\";\nimport \"../utility/ReentrancyGuard.sol\";\nimport \"../utility/SafeMath.sol\";\nimport \"../utility/TokenHandler.sol\";\nimport \"../utility/TokenHolder.sol\";\nimport \"../token/interfaces/IEtherToken.sol\";\nimport \"../sovrynswapx/interfaces/ISovrynSwapX.sol\";\n\n/**\n * @dev ConverterBase\n *\n * The converter contains the main logic for conversions between different ERC20 tokens.\n *\n * It is also the upgradable part of the mechanism (note that upgrades are opt-in).\n *\n * The anchor must be set on construction and cannot be changed afterwards.\n * Wrappers are provided for some of the anchor's functions, for easier access.\n *\n * Once the converter accepts ownership of the anchor, it becomes the anchor's sole controller\n * and can execute any of its functions.\n *\n * To upgrade the converter, anchor ownership must be transferred to a new converter, along with\n * any relevant data.\n *\n * Note that the converter can transfer anchor ownership to a new converter that\n * doesn't allow upgrades anymore, for finalizing the relationship between the converter\n * and the anchor.\n *\n * Converter types (defined as uint16 type) -\n * 0 = liquid token converter\n * 1 = liquidity pool v1 converter\n * 2 = liquidity pool v2 converter\n *\n * Note that converters don't currently support tokens with transfer fees.\n */\ncontract ConverterBase is IConverter, TokenHandler, TokenHolder, ContractRegistryClient, ReentrancyGuard {\n\tusing SafeMath for uint256;\n\n\tuint32 internal constant WEIGHT_RESOLUTION = 1000000;\n\tuint32 internal constant CONVERSION_FEE_RESOLUTION = 1000000;\n\taddress internal constant ETH_RESERVE_ADDRESS = 0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE;\n\n\tstruct Reserve {\n\t\tuint256 balance; // reserve balance\n\t\tuint32 weight; // reserve weight, represented in ppm, 1-1000000\n\t\tbool deprecated1; // deprecated\n\t\tbool deprecated2; // deprecated\n\t\tbool isSet; // true if the reserve is valid, false otherwise\n\t}\n\n\t/**\n\t * @dev version number\n\t */\n\tuint16 public constant version = 32;\n\n\tIConverterAnchor public anchor; // converter anchor contract\n\tIWhitelist public conversionWhitelist; // whitelist contract with list of addresses that are allowed to use the converter\n\tIERC20Token[] public reserveTokens; // ERC20 standard token addresses (prior version 17, use 'connectorTokens' instead)\n\tmapping(address => Reserve) public reserves; // reserve token addresses -> reserve data (prior version 17, use 'connectors' instead)\n\tuint32 public reserveRatio = 0; // ratio between the reserves and the market cap, equal to the total reserve weights\n\tuint32 public maxConversionFee = 0; // maximum conversion fee for the lifetime of the contract,\n\t// represented in ppm, 0...1000000 (0 = no fee, 100 = 0.01%, 1000000 = 100%)\n\tuint32 public conversionFee = 0; // current conversion fee, represented in ppm, 0...maxConversionFee\n\tbool public constant conversionsEnabled = true; // deprecated, backward compatibility\n\n\t/**\n\t * @dev triggered when the converter is activated\n\t *\n\t * @param _type converter type\n\t * @param _anchor converter anchor\n\t * @param _activated true if the converter was activated, false if it was deactivated\n\t */\n\tevent Activation(uint16 indexed _type, IConverterAnchor indexed _anchor, bool indexed _activated);\n\n\t/**\n\t * @dev triggered when a conversion between two tokens occurs\n\t *\n\t * @param _fromToken source ERC20 token\n\t * @param _toToken target ERC20 token\n\t * @param _trader wallet that initiated the trade\n\t * @param _amount amount converted, in the source token\n\t * @param _return amount returned, minus conversion fee\n\t * @param _conversionFee conversion fee\n\t */\n\tevent Conversion(\n\t\taddress indexed _fromToken,\n\t\taddress indexed _toToken,\n\t\taddress indexed _trader,\n\t\tuint256 _amount,\n\t\tuint256 _return,\n\t\tint256 _conversionFee\n\t);\n\n\t/**\n\t * @dev triggered when the rate between two tokens in the converter changes\n\t * note that the event might be dispatched for rate updates between any two tokens in the converter\n\t * note that prior to version 28, you should use the 'PriceDataUpdate' event instead\n\t *\n\t * @param _token1 address of the first token\n\t * @param _token2 address of the second token\n\t * @param _rateN rate of 1 unit of `_token1` in `_token2` (numerator)\n\t * @param _rateD rate of 1 unit of `_token1` in `_token2` (denominator)\n\t */\n\tevent TokenRateUpdate(address indexed _token1, address indexed _token2, uint256 _rateN, uint256 _rateD);\n\n\t/**\n\t * @dev triggered when the conversion fee is updated\n\t *\n\t * @param _prevFee previous fee percentage, represented in ppm\n\t * @param _newFee new fee percentage, represented in ppm\n\t */\n\tevent ConversionFeeUpdate(uint32 _prevFee, uint32 _newFee);\n\n\t/**\n\t * @dev used by sub-contracts to initialize a new converter\n\t *\n\t * @param _anchor anchor governed by the converter\n\t * @param _registry address of a contract registry contract\n\t * @param _maxConversionFee maximum conversion fee, represented in ppm\n\t */\n\tconstructor(\n\t\tIConverterAnchor _anchor,\n\t\tIContractRegistry _registry,\n\t\tuint32 _maxConversionFee\n\t) internal validAddress(_anchor) ContractRegistryClient(_registry) validConversionFee(_maxConversionFee) {\n\t\tanchor = _anchor;\n\t\tmaxConversionFee = _maxConversionFee;\n\t}\n\n\t// ensures that the converter is active\n\tmodifier active() {\n\t\t_active();\n\t\t_;\n\t}\n\n\t// error message binary size optimization\n\tfunction _active() internal view {\n\t\trequire(isActive(), \"ERR_INACTIVE\");\n\t}\n\n\t// ensures that the converter is not active\n\tmodifier inactive() {\n\t\t_inactive();\n\t\t_;\n\t}\n\n\t// error message binary size optimization\n\tfunction _inactive() internal view {\n\t\trequire(!isActive(), \"ERR_ACTIVE\");\n\t}\n\n\t// validates a reserve token address - verifies that the address belongs to one of the reserve tokens\n\tmodifier validReserve(IERC20Token _address) {\n\t\t_validReserve(_address);\n\t\t_;\n\t}\n\n\t// error message binary size optimization\n\tfunction _validReserve(IERC20Token _address) internal view {\n\t\trequire(reserves[_address].isSet, \"ERR_INVALID_RESERVE\");\n\t}\n\n\t// validates conversion fee\n\tmodifier validConversionFee(uint32 _conversionFee) {\n\t\t_validConversionFee(_conversionFee);\n\t\t_;\n\t}\n\n\t// error message binary size optimization\n\tfunction _validConversionFee(uint32 _conversionFee) internal pure {\n\t\trequire(_conversionFee <= CONVERSION_FEE_RESOLUTION, \"ERR_INVALID_CONVERSION_FEE\");\n\t}\n\n\t// validates reserve weight\n\tmodifier validReserveWeight(uint32 _weight) {\n\t\t_validReserveWeight(_weight);\n\t\t_;\n\t}\n\n\t// error message binary size optimization\n\tfunction _validReserveWeight(uint32 _weight) internal pure {\n\t\trequire(_weight > 0 && _weight <= WEIGHT_RESOLUTION, \"ERR_INVALID_RESERVE_WEIGHT\");\n\t}\n\n\t/**\n\t * @dev deposits ether\n\t * can only be called if the converter has an ETH reserve\n\t */\n\tfunction() external payable {\n\t\trequire(reserves[ETH_RESERVE_ADDRESS].isSet, \"ERR_INVALID_RESERVE\"); // require(hasETHReserve(), \"ERR_INVALID_RESERVE\");\n\t\t// a workaround for a problem when running solidity-coverage\n\t\t// see https://github.com/sc-forks/solidity-coverage/issues/487\n\t}\n\n\t/**\n\t * @dev withdraws ether\n\t * can only be called by the owner if the converter is inactive or by upgrader contract\n\t * can only be called after the upgrader contract has accepted the ownership of this contract\n\t * can only be called if the converter has an ETH reserve\n\t *\n\t * @param _to address to send the ETH to\n\t */\n\tfunction withdrawETH(address _to) public protected ownerOnly validReserve(IERC20Token(ETH_RESERVE_ADDRESS)) {\n\t\taddress converterUpgrader = addressOf(CONVERTER_UPGRADER);\n\n\t\t// verify that the converter is inactive or that the owner is the upgrader contract\n\t\trequire(!isActive() || owner == converterUpgrader, \"ERR_ACCESS_DENIED\");\n\t\t_to.transfer(address(this).balance);\n\n\t\t// sync the ETH reserve balance\n\t\tsyncReserveBalance(IERC20Token(ETH_RESERVE_ADDRESS));\n\t}\n\n\t/**\n\t * @dev checks whether or not the converter version is 28 or higher\n\t *\n\t * @return true, since the converter version is 28 or higher\n\t */\n\tfunction isV28OrHigher() public pure returns (bool) {\n\t\treturn true;\n\t}\n\n\t/**\n\t * @dev allows the owner to update & enable the conversion whitelist contract address\n\t * when set, only addresses that are whitelisted are actually allowed to use the converter\n\t * note that the whitelist check is actually done by the SovrynSwapNetwork contract\n\t *\n\t * @param _whitelist address of a whitelist contract\n\t */\n\tfunction setConversionWhitelist(IWhitelist _whitelist) public ownerOnly notThis(_whitelist) {\n\t\tconversionWhitelist = _whitelist;\n\t}\n\n\t/**\n\t * @dev returns true if the converter is active, false otherwise\n\t *\n\t * @return true if the converter is active, false otherwise\n\t */\n\tfunction isActive() public view returns (bool) {\n\t\treturn anchor.owner() == address(this);\n\t}\n\n\t/**\n\t * @dev transfers the anchor ownership\n\t * the new owner needs to accept the transfer\n\t * can only be called by the converter upgrder while the upgrader is the owner\n\t * note that prior to version 28, you should use 'transferAnchorOwnership' instead\n\t *\n\t * @param _newOwner new token owner\n\t */\n\tfunction transferAnchorOwnership(address _newOwner) public ownerOnly only(CONVERTER_UPGRADER) {\n\t\tanchor.transferOwnership(_newOwner);\n\t}\n\n\t/**\n\t * @dev accepts ownership of the anchor after an ownership transfer\n\t * most converters are also activated as soon as they accept the anchor ownership\n\t * can only be called by the contract owner\n\t * note that prior to version 28, you should use 'acceptTokenOwnership' instead\n\t */\n\tfunction acceptAnchorOwnership() public ownerOnly {\n\t\t// verify the the converter has at least one reserve\n\t\trequire(reserveTokenCount() > 0, \"ERR_INVALID_RESERVE_COUNT\");\n\t\tanchor.acceptOwnership();\n\t\tsyncReserveBalances();\n\t}\n\n\t/**\n\t * @dev withdraws tokens held by the anchor and sends them to an account\n\t * can only be called by the owner\n\t *\n\t * @param _token ERC20 token contract address\n\t * @param _to account to receive the new amount\n\t * @param _amount amount to withdraw\n\t */\n\tfunction withdrawFromAnchor(\n\t\tIERC20Token _token,\n\t\taddress _to,\n\t\tuint256 _amount\n\t) public ownerOnly {\n\t\tanchor.withdrawTokens(_token, _to, _amount);\n\t}\n\n\t/**\n\t * @dev updates the current conversion fee\n\t * can only be called by the contract owner\n\t *\n\t * @param _conversionFee new conversion fee, represented in ppm\n\t */\n\tfunction setConversionFee(uint32 _conversionFee) public ownerOnly {\n\t\trequire(_conversionFee <= maxConversionFee, \"ERR_INVALID_CONVERSION_FEE\");\n\t\temit ConversionFeeUpdate(conversionFee, _conversionFee);\n\t\tconversionFee = _conversionFee;\n\t}\n\n\t/**\n\t * @dev withdraws tokens held by the converter and sends them to an account\n\t * can only be called by the owner\n\t * note that reserve tokens can only be withdrawn by the owner while the converter is inactive\n\t * unless the owner is the converter upgrader contract\n\t *\n\t * @param _token ERC20 token contract address\n\t * @param _to account to receive the new amount\n\t * @param _amount amount to withdraw\n\t */\n\tfunction withdrawTokens(\n\t\tIERC20Token _token,\n\t\taddress _to,\n\t\tuint256 _amount\n\t) public protected ownerOnly {\n\t\taddress converterUpgrader = addressOf(CONVERTER_UPGRADER);\n\n\t\t// if the token is not a reserve token, allow withdrawal\n\t\t// otherwise verify that the converter is inactive or that the owner is the upgrader contract\n\t\trequire(!reserves[_token].isSet || !isActive() || owner == converterUpgrader, \"ERR_ACCESS_DENIED\");\n\t\tsuper.withdrawTokens(_token, _to, _amount);\n\n\t\t// if the token is a reserve token, sync the reserve balance\n\t\tif (reserves[_token].isSet) syncReserveBalance(_token);\n\t}\n\n\t/**\n\t * @dev upgrades the converter to the latest version\n\t * can only be called by the owner\n\t * note that the owner needs to call acceptOwnership on the new converter after the upgrade\n\t */\n\tfunction upgrade() public ownerOnly {\n\t\tIConverterUpgrader converterUpgrader = IConverterUpgrader(addressOf(CONVERTER_UPGRADER));\n\n\t\t// trigger de-activation event\n\t\temit Activation(converterType(), anchor, false);\n\n\t\ttransferOwnership(converterUpgrader);\n\t\tconverterUpgrader.upgrade(version);\n\t\tacceptOwnership();\n\t}\n\n\t/**\n\t * @dev returns the number of reserve tokens defined\n\t * note that prior to version 17, you should use 'connectorTokenCount' instead\n\t *\n\t * @return number of reserve tokens\n\t */\n\tfunction reserveTokenCount() public view returns (uint16) {\n\t\treturn uint16(reserveTokens.length);\n\t}\n\n\t/**\n\t * @dev defines a new reserve token for the converter\n\t * can only be called by the owner while the converter is inactive\n\t *\n\t * @param _token address of the reserve token\n\t * @param _weight reserve weight, represented in ppm, 1-1000000\n\t */\n\tfunction addReserve(IERC20Token _token, uint32 _weight)\n\t\tpublic\n\t\townerOnly\n\t\tinactive\n\t\tvalidAddress(_token)\n\t\tnotThis(_token)\n\t\tvalidReserveWeight(_weight)\n\t{\n\t\t// validate input\n\t\trequire(_token != address(anchor) && !reserves[_token].isSet, \"ERR_INVALID_RESERVE\");\n\t\trequire(_weight <= WEIGHT_RESOLUTION - reserveRatio, \"ERR_INVALID_RESERVE_WEIGHT\");\n\t\trequire(reserveTokenCount() < uint16(-1), \"ERR_INVALID_RESERVE_COUNT\");\n\n\t\tReserve storage newReserve = reserves[_token];\n\t\tnewReserve.balance = 0;\n\t\tnewReserve.weight = _weight;\n\t\tnewReserve.isSet = true;\n\t\treserveTokens.push(_token);\n\t\treserveRatio += _weight;\n\t}\n\n\t/**\n\t * @dev returns the reserve's weight\n\t * added in version 28\n\t *\n\t * @param _reserveToken reserve token contract address\n\t *\n\t * @return reserve weight\n\t */\n\tfunction reserveWeight(IERC20Token _reserveToken) public view validReserve(_reserveToken) returns (uint32) {\n\t\treturn reserves[_reserveToken].weight;\n\t}\n\n\t/**\n\t * @dev returns the reserve's balance\n\t * note that prior to version 17, you should use 'getConnectorBalance' instead\n\t *\n\t * @param _reserveToken reserve token contract address\n\t *\n\t * @return reserve balance\n\t */\n\tfunction reserveBalance(IERC20Token _reserveToken) public view validReserve(_reserveToken) returns (uint256) {\n\t\treturn reserves[_reserveToken].balance;\n\t}\n\n\t/**\n\t * @dev checks whether or not the converter has an ETH reserve\n\t *\n\t * @return true if the converter has an ETH reserve, false otherwise\n\t */\n\tfunction hasETHReserve() public view returns (bool) {\n\t\treturn reserves[ETH_RESERVE_ADDRESS].isSet;\n\t}\n\n\t/**\n\t * @dev converts a specific amount of source tokens to target tokens\n\t * can only be called by the SovrynSwap network contract\n\t *\n\t * @param _sourceToken source ERC20 token\n\t * @param _targetToken target ERC20 token\n\t * @param _amount amount of tokens to convert (in units of the source token)\n\t * @param _trader address of the caller who executed the conversion\n\t * @param _beneficiary wallet to receive the conversion result\n\t *\n\t * @return amount of tokens received (in units of the target token)\n\t */\n\tfunction convert(\n\t\tIERC20Token _sourceToken,\n\t\tIERC20Token _targetToken,\n\t\tuint256 _amount,\n\t\taddress _trader,\n\t\taddress _beneficiary\n\t) public payable protected only(SOVRYNSWAP_NETWORK) returns (uint256) {\n\t\t// validate input\n\t\trequire(_sourceToken != _targetToken, \"ERR_SAME_SOURCE_TARGET\");\n\n\t\t// if a whitelist is set, verify that both and trader and the beneficiary are whitelisted\n\t\trequire(\n\t\t\tconversionWhitelist == address(0) || (conversionWhitelist.isWhitelisted(_trader) && conversionWhitelist.isWhitelisted(_beneficiary)),\n\t\t\t\"ERR_NOT_WHITELISTED\"\n\t\t);\n\n\t\treturn doConvert(_sourceToken, _targetToken, _amount, _trader, _beneficiary);\n\t}\n\n\t/**\n\t * @dev converts a specific amount of source tokens to target tokens\n\t * called by ConverterBase and allows the inherited contracts to implement custom conversion logic\n\t *\n\t * @param _sourceToken source ERC20 token\n\t * @param _targetToken target ERC20 token\n\t * @param _amount amount of tokens to convert (in units of the source token)\n\t * @param _trader address of the caller who executed the conversion\n\t * @param _beneficiary wallet to receive the conversion result\n\t *\n\t * @return amount of tokens received (in units of the target token)\n\t */\n\tfunction doConvert(\n\t\tIERC20Token _sourceToken,\n\t\tIERC20Token _targetToken,\n\t\tuint256 _amount,\n\t\taddress _trader,\n\t\taddress _beneficiary\n\t) internal returns (uint256);\n\n\t/**\n\t * @dev returns the conversion fee for a given target amount\n\t *\n\t * @param _targetAmount target amount\n\t *\n\t * @return conversion fee\n\t */\n\tfunction calculateFee(uint256 _targetAmount) internal view returns (uint256) {\n\t\treturn _targetAmount.mul(conversionFee).div(CONVERSION_FEE_RESOLUTION);\n\t}\n\n\t/**\n\t * @dev syncs the stored reserve balance for a given reserve with the real reserve balance\n\t *\n\t * @param _reserveToken address of the reserve token\n\t */\n\tfunction syncReserveBalance(IERC20Token _reserveToken) internal validReserve(_reserveToken) {\n\t\tif (_reserveToken == ETH_RESERVE_ADDRESS) reserves[_reserveToken].balance = address(this).balance;\n\t\telse reserves[_reserveToken].balance = _reserveToken.balanceOf(this);\n\t}\n\n\t/**\n\t * @dev syncs all stored reserve balances\n\t */\n\tfunction syncReserveBalances() internal {\n\t\tuint256 reserveCount = reserveTokens.length;\n\t\tfor (uint256 i = 0; i < reserveCount; i++) syncReserveBalance(reserveTokens[i]);\n\t}\n\n\t/**\n\t * @dev helper, dispatches the Conversion event\n\t *\n\t * @param _sourceToken source ERC20 token\n\t * @param _targetToken target ERC20 token\n\t * @param _trader address of the caller who executed the conversion\n\t * @param _amount amount purchased/sold (in the source token)\n\t * @param _returnAmount amount returned (in the target token)\n\t */\n\tfunction dispatchConversionEvent(\n\t\tIERC20Token _sourceToken,\n\t\tIERC20Token _targetToken,\n\t\taddress _trader,\n\t\tuint256 _amount,\n\t\tuint256 _returnAmount,\n\t\tuint256 _feeAmount\n\t) internal {\n\t\t// fee amount is converted to 255 bits -\n\t\t// negative amount means the fee is taken from the source token, positive amount means its taken from the target token\n\t\t// currently the fee is always taken from the target token\n\t\t// since we convert it to a signed number, we first ensure that it's capped at 255 bits to prevent overflow\n\t\tassert(_feeAmount < 2**255);\n\t\temit Conversion(_sourceToken, _targetToken, _trader, _amount, _returnAmount, int256(_feeAmount));\n\t}\n\n\t/**\n\t * @dev deprecated since version 28, backward compatibility - use only for earlier versions\n\t */\n\tfunction token() public view returns (IConverterAnchor) {\n\t\treturn anchor;\n\t}\n\n\t/**\n\t * @dev deprecated, backward compatibility\n\t */\n\tfunction transferTokenOwnership(address _newOwner) public ownerOnly {\n\t\ttransferAnchorOwnership(_newOwner);\n\t}\n\n\t/**\n\t * @dev deprecated, backward compatibility\n\t */\n\tfunction acceptTokenOwnership() public ownerOnly {\n\t\tacceptAnchorOwnership();\n\t}\n\n\t/**\n\t * @dev deprecated, backward compatibility\n\t */\n\tfunction connectors(address _address)\n\t\tpublic\n\t\tview\n\t\treturns (\n\t\t\tuint256,\n\t\t\tuint32,\n\t\t\tbool,\n\t\t\tbool,\n\t\t\tbool\n\t\t)\n\t{\n\t\tReserve memory reserve = reserves[_address];\n\t\treturn (reserve.balance, reserve.weight, false, false, reserve.isSet);\n\t}\n\n\t/**\n\t * @dev deprecated, backward compatibility\n\t */\n\tfunction connectorTokens(uint256 _index) public view returns (IERC20Token) {\n\t\treturn ConverterBase.reserveTokens[_index];\n\t}\n\n\t/**\n\t * @dev deprecated, backward compatibility\n\t */\n\tfunction connectorTokenCount() public view returns (uint16) {\n\t\treturn reserveTokenCount();\n\t}\n\n\t/**\n\t * @dev deprecated, backward compatibility\n\t */\n\tfunction getConnectorBalance(IERC20Token _connectorToken) public view returns (uint256) {\n\t\treturn reserveBalance(_connectorToken);\n\t}\n\n\t/**\n\t * @dev deprecated, backward compatibility\n\t */\n\tfunction getReturn(\n\t\tIERC20Token _sourceToken,\n\t\tIERC20Token _targetToken,\n\t\tuint256 _amount\n\t) public view returns (uint256, uint256) {\n\t\treturn targetAmountAndFee(_sourceToken, _targetToken, _amount);\n\t}\n}\n" - }, - "solidity/contracts/converter/types/liquidity-pool-v2/LiquidityPoolV2ConverterAnchorFactory.sol": { - "content": "pragma solidity 0.4.26;\r\nimport \"./PoolTokensContainer.sol\";\r\nimport \"../../interfaces/ITypedConverterAnchorFactory.sol\";\r\n\r\n/*\r\n LiquidityPoolV2ConverterAnchorFactory Factory\r\n*/\r\ncontract LiquidityPoolV2ConverterAnchorFactory is ITypedConverterAnchorFactory {\r\n /**\r\n * @dev returns the converter type the factory is associated with\r\n *\r\n * @return converter type\r\n */\r\n function converterType() public pure returns (uint16) {\r\n return 2;\r\n }\r\n\r\n /**\r\n * @dev creates a new converter anchor with the given arguments and transfers\r\n * the ownership to the caller\r\n *\r\n * @param _name pool name\r\n * @param _symbol pool symbol\r\n * @param _decimals pool decimals\r\n *\r\n * @return new anchor\r\n */\r\n function createAnchor(string _name, string _symbol, uint8 _decimals) public returns (IConverterAnchor) {\r\n IPoolTokensContainer container = new PoolTokensContainer(_name, _symbol, _decimals);\r\n container.transferOwnership(msg.sender);\r\n return container;\r\n }\r\n}\r\n" - }, - "solidity/contracts/converter/interfaces/ITypedConverterAnchorFactory.sol": { - "content": "pragma solidity 0.4.26;\nimport \"./IConverterAnchor.sol\";\n\n/*\n Typed Converter Anchor Factory interface\n*/\ncontract ITypedConverterAnchorFactory {\n\tfunction converterType() public pure returns (uint16);\n\n\tfunction createAnchor(\n\t\tstring _name,\n\t\tstring _symbol,\n\t\tuint8 _decimals\n\t) public returns (IConverterAnchor);\n}\n" - }, - "solidity/contracts/helpers/TestTypedConverterAnchorFactory.sol": { - "content": "pragma solidity 0.4.26;\nimport \"../converter/interfaces/IConverterAnchor.sol\";\nimport \"../converter/interfaces/ITypedConverterAnchorFactory.sol\";\nimport \"../token/SmartToken.sol\";\n\ncontract TestTypedConverterAnchorFactory is ITypedConverterAnchorFactory {\n\tstring public name;\n\n\tconstructor(string _name) public {\n\t\tname = _name;\n\t}\n\n\tfunction converterType() public pure returns (uint16) {\n\t\treturn 8;\n\t}\n\n\tfunction createAnchor(\n\t\tstring, /*_name */\n\t\tstring _symbol,\n\t\tuint8 _decimals\n\t) public returns (IConverterAnchor) {\n\t\tIConverterAnchor anchor = new SmartToken(name, _symbol, _decimals);\n\n\t\tanchor.transferOwnership(msg.sender);\n\n\t\treturn anchor;\n\t}\n}\n" - }, - "solidity/contracts/utility/MocBTCToUSDOracle.sol": { - "content": "pragma solidity 0.4.26;\n\nimport \"./interfaces/IConsumerPriceOracle.sol\";\nimport \"./Owned.sol\";\n\ninterface Medianizer {\n\tfunction peek() external view returns (bytes32, bool);\n}\n\ncontract MocBTCToUSDOracle is IConsumerPriceOracle, Owned {\n\taddress public mocOracleAddress;\n\n\tevent SetMoCOracleAddress(address indexed mocOracleAddress, address changerAddress);\n\n\t/**\n\t * @dev initializes a ne MoC oracle\n\t *\n\t * @param _mocOracleAddress MoC oracle address\n\t */\n\tconstructor(address _mocOracleAddress) public {\n\t\tsetMoCOracleAddress(_mocOracleAddress);\n\t}\n\n\t/**\n\t * @dev returns the USD/BTC rate.\n\t *\n\t * @return MoC medianizer rate\n\t */\n\tfunction latestAnswer() external view returns (int256) {\n\t\t(bytes32 value, bool hasValue) = Medianizer(mocOracleAddress).peek();\n\t\trequire(hasValue, \"Doesn't has value\");\n\t\treturn int256(value);\n\t}\n\n\t/**\n\t * @dev returns the USD/BTC update time.\n\t *\n\t * @return always returns current block's timestamp\n\t */\n\tfunction latestTimestamp() external view returns (uint256) {\n\t\treturn now; // MoC oracle doesn't return update timestamp\n\t}\n\n\t/**\n\t * @dev set MoC oracle address\n\t *\n\t * @param _mocOracleAddress MoC oracle address\n\t */\n\tfunction setMoCOracleAddress(address _mocOracleAddress) public ownerOnly {\n\t\trequire(_mocOracleAddress != address(0), \"_mocOracleAddress shall not be zero address\");\n\t\tmocOracleAddress = _mocOracleAddress;\n\t\temit SetMoCOracleAddress(mocOracleAddress, msg.sender);\n\t}\n}\n" - }, - "solidity/contracts/utility/MoCMedianizerMock.sol": { - "content": "pragma solidity 0.4.26;\nimport \"./MocBTCToUSDOracle.sol\";\n\n// This contract is only for test purposes\n// https://github.com/money-on-chain/Amphiraos-Oracle/blob/master/contracts/medianizer/medianizer.sol\ncontract MoCMedianizerMock is Medianizer {\n\tuint256 public value;\n\tbool public has;\n\n\tfunction peek() external view returns (bytes32, bool) {\n\t\treturn (bytes32(value), has);\n\t}\n\n\tfunction setValue(uint256 _value) public {\n\t\tvalue = _value;\n\t}\n\n\tfunction setHas(bool _has) public {\n\t\thas = _has;\n\t}\n}\n" - }, - "solidity/contracts/utility/BProOracle.sol": { - "content": "pragma solidity 0.4.26;\n\nimport \"./interfaces/IMoCState.sol\";\nimport \"./interfaces/IConsumerPriceOracle.sol\";\nimport \"./Owned.sol\";\n\ncontract BProOracle is IConsumerPriceOracle, Owned {\n\taddress public mocStateAddress;\n\n\tevent SetMoCStateAddress(address indexed mocStateAddress, address changerAddress);\n\n\t/**\n\t * @dev initializes a new MoC state\n\t *\n\t * @param _mocStateAddress MoC state address\n\t */\n\tconstructor(address _mocStateAddress) public {\n\t\tsetMoCStateAddress(_mocStateAddress);\n\t}\n\n\t/**\n\t * @dev BPro USD PRICE\n\t * @return the BPro USD Price [using mocPrecision]\n\t */\n\tfunction latestAnswer() external view returns (int256) {\n\t\tIMoCState _mocState = IMoCState(mocStateAddress);\n\t\treturn int256(_mocState.bproUsdPrice());\n\t}\n\n\t/**\n\t * @dev returns the update time.\n\t *\n\t * @return always returns current block's timestamp\n\t */\n\tfunction latestTimestamp() external view returns (uint256) {\n\t\treturn now; // MoC state doesn't return update timestamp\n\t}\n\n\t/**\n\t * @dev set MoC state address\n\t *\n\t * @param _mocStateAddress MoC state address\n\t */\n\tfunction setMoCStateAddress(address _mocStateAddress) public ownerOnly {\n\t\trequire(_mocStateAddress != address(0), \"_mocStateAddress shall not be zero address\");\n\t\tmocStateAddress = _mocStateAddress;\n\t\temit SetMoCStateAddress(mocStateAddress, msg.sender);\n\t}\n}\n" - }, - "solidity/contracts/utility/interfaces/IMoCState.sol": { - "content": "pragma solidity 0.4.26;\n\ninterface IMoCState {\n\tfunction bproUsdPrice() external view returns (uint256);\n}\n" - }, - "solidity/contracts/utility/MoCStateMock.sol": { - "content": "pragma solidity 0.4.26;\n\nimport \"./interfaces/IMoCState.sol\";\n\ncontract MoCStateMock is IMoCState {\n\tuint256 public value;\n\n\tfunction bproUsdPrice() public view returns (uint256) {\n\t\treturn value;\n\t}\n\n\tfunction setValue(uint256 _value) public {\n\t\tvalue = _value;\n\t}\n}\n" - }, - "solidity/contracts/sovrynswapx/XTransferRerouter.sol": { - "content": "pragma solidity 0.4.26;\nimport \"../utility/Owned.sol\";\n\ncontract XTransferRerouter is Owned {\n\tbool public reroutingEnabled;\n\n\t// triggered when a rerouteTx is called\n\tevent TxReroute(uint256 indexed _txId, bytes32 _toBlockchain, bytes32 _to);\n\n\t/**\n\t * @dev initializes a new XTransferRerouter instance\n\t *\n\t * @param _reroutingEnabled intializes transactions routing to enabled/disabled\n\t */\n\tconstructor(bool _reroutingEnabled) public {\n\t\treroutingEnabled = _reroutingEnabled;\n\t}\n\n\t/**\n\t * @dev allows the owner to disable/enable rerouting\n\t *\n\t * @param _enable true to enable, false to disable\n\t */\n\tfunction enableRerouting(bool _enable) public ownerOnly {\n\t\treroutingEnabled = _enable;\n\t}\n\n\t// allows execution only when rerouting enabled\n\tmodifier reroutingAllowed {\n\t\t_reroutingAllowed();\n\t\t_;\n\t}\n\n\t// error message binary size optimization\n\tfunction _reroutingAllowed() internal view {\n\t\trequire(reroutingEnabled, \"ERR_DISABLED\");\n\t}\n\n\t/**\n\t * @dev allows a user to reroute a transaction to a new blockchain/target address\n\t *\n\t * @param _txId the original transaction id\n\t * @param _blockchain the new blockchain name\n\t * @param _to the new target address/account\n\t */\n\tfunction rerouteTx(\n\t\tuint256 _txId,\n\t\tbytes32 _blockchain,\n\t\tbytes32 _to\n\t) public reroutingAllowed {\n\t\temit TxReroute(_txId, _blockchain, _to);\n\t}\n}\n" - }, - "solidity/contracts/converter/ConverterFactory.sol": { - "content": "pragma solidity 0.4.26;\nimport \"./interfaces/IConverter.sol\";\nimport \"./interfaces/IConverterFactory.sol\";\nimport \"./interfaces/ITypedConverterFactory.sol\";\nimport \"./interfaces/ITypedConverterAnchorFactory.sol\";\nimport \"./interfaces/ITypedConverterCustomFactory.sol\";\nimport \"../utility/Owned.sol\";\nimport \"../utility/interfaces/IContractRegistry.sol\";\nimport \"../token/SmartToken.sol\";\n\n/*\n Converter Factory\n*/\ncontract ConverterFactory is IConverterFactory, Owned {\n\t/**\n\t * @dev triggered when a new converter is created\n\t *\n\t * @param _type converter type, see ConverterBase contract main doc\n\t * @param _converter new converter address\n\t * @param _owner converter owner address\n\t */\n\tevent NewConverter(uint16 indexed _type, address indexed _converter, address indexed _owner);\n\n\tmapping(uint16 => ITypedConverterFactory) public converterFactories;\n\tmapping(uint16 => ITypedConverterAnchorFactory) public anchorFactories;\n\tmapping(uint16 => ITypedConverterCustomFactory) public customFactories;\n\n\t/**\n\t * @dev initializes the factory with a specific typed converter factory\n\t * can only be called by the owner\n\t *\n\t * @param _factory typed converter factory\n\t */\n\tfunction registerTypedConverterFactory(ITypedConverterFactory _factory) public ownerOnly {\n\t\tconverterFactories[_factory.converterType()] = _factory;\n\t}\n\n\t/**\n\t * @dev initializes the factory with a specific typed converter anchor factory\n\t * can only be called by the owner\n\t *\n\t * @param _factory typed converter anchor factory\n\t */\n\tfunction registerTypedConverterAnchorFactory(ITypedConverterAnchorFactory _factory) public ownerOnly {\n\t\tanchorFactories[_factory.converterType()] = _factory;\n\t}\n\n\t/**\n\t * @dev initializes the factory with a specific typed converter custom factory\n\t * can only be called by the owner\n\t *\n\t * @param _factory typed converter custom factory\n\t */\n\tfunction registerTypedConverterCustomFactory(ITypedConverterCustomFactory _factory) public ownerOnly {\n\t\tcustomFactories[_factory.converterType()] = _factory;\n\t}\n\n\t/**\n\t * @dev creates a new converter anchor with the given arguments and transfers\n\t * the ownership to the caller\n\t *\n\t * @param _converterType converter type, see ConverterBase contract main doc\n\t * @param _name name\n\t * @param _symbol symbol\n\t * @param _decimals decimals\n\t *\n\t * @return new converter anchor\n\t */\n\tfunction createAnchor(\n\t\tuint16 _converterType,\n\t\tstring _name,\n\t\tstring _symbol,\n\t\tuint8 _decimals\n\t) public returns (IConverterAnchor) {\n\t\tIConverterAnchor anchor;\n\t\tITypedConverterAnchorFactory factory = anchorFactories[_converterType];\n\n\t\tif (factory == address(0)) {\n\t\t\t// create default anchor (SmartToken)\n\t\t\tanchor = new SmartToken(_name, _symbol, _decimals);\n\t\t} else {\n\t\t\t// create custom anchor\n\t\t\tanchor = factory.createAnchor(_name, _symbol, _decimals);\n\t\t\tanchor.acceptOwnership();\n\t\t}\n\n\t\tanchor.transferOwnership(msg.sender);\n\t\treturn anchor;\n\t}\n\n\t/**\n\t * @dev creates a new converter with the given arguments and transfers\n\t * the ownership to the caller\n\t *\n\t * @param _type converter type, see ConverterBase contract main doc\n\t * @param _anchor anchor governed by the converter\n\t * @param _registry address of a contract registry contract\n\t * @param _maxConversionFee maximum conversion fee, represented in ppm\n\t *\n\t * @return new converter\n\t */\n\tfunction createConverter(\n\t\tuint16 _type,\n\t\tIConverterAnchor _anchor,\n\t\tIContractRegistry _registry,\n\t\tuint32 _maxConversionFee\n\t) public returns (IConverter) {\n\t\tIConverter converter = converterFactories[_type].createConverter(_anchor, _registry, _maxConversionFee);\n\t\tconverter.acceptOwnership();\n\t\tconverter.transferOwnership(msg.sender);\n\n\t\temit NewConverter(_type, converter, msg.sender);\n\t\treturn converter;\n\t}\n}\n" - }, - "solidity/contracts/helpers/TestConverterFactory.sol": { - "content": "pragma solidity 0.4.26;\nimport \"../converter/ConverterFactory.sol\";\n\n/*\n Utils test helper that exposes the converter factory functions\n*/\ncontract TestConverterFactory is ConverterFactory {\n\tIConverter public createdConverter;\n\tIConverterAnchor public createdAnchor;\n\n\tfunction createAnchor(\n\t\tuint16 _converterType,\n\t\tstring _name,\n\t\tstring _symbol,\n\t\tuint8 _decimals\n\t) public returns (IConverterAnchor) {\n\t\tcreatedAnchor = super.createAnchor(_converterType, _name, _symbol, _decimals);\n\n\t\treturn createdAnchor;\n\t}\n\n\tfunction createConverter(\n\t\tuint16 _type,\n\t\tIConverterAnchor _anchor,\n\t\tIContractRegistry _registry,\n\t\tuint32 _maxConversionFee\n\t) public returns (IConverter) {\n\t\tcreatedConverter = super.createConverter(_type, _anchor, _registry, _maxConversionFee);\n\n\t\treturn createdConverter;\n\t}\n}\n" - }, - "solidity/contracts/helpers/TestLiquidityPoolV2Converter.sol": { - "content": "pragma solidity 0.4.26;\nimport \"../converter/types/liquidity-pool-v2/LiquidityPoolV2Converter.sol\";\n\ncontract TestLiquidityPoolV2Converter is LiquidityPoolV2Converter {\n\tuint256 public currentTime;\n\n\tconstructor(\n\t\tIPoolTokensContainer _token,\n\t\tIContractRegistry _registry,\n\t\tuint32 _maxConversionFee\n\t) public LiquidityPoolV2Converter(_token, _registry, _maxConversionFee) {}\n\n\tfunction setReferenceRateUpdateTime(uint256 _referenceRateUpdateTime) public {\n\t\treferenceRateUpdateTime = _referenceRateUpdateTime;\n\t}\n\n\tfunction time() internal view returns (uint256) {\n\t\treturn currentTime != 0 ? currentTime : now;\n\t}\n\n\tfunction setTime(uint256 _currentTime) public {\n\t\tcurrentTime = _currentTime;\n\t}\n\n\tfunction calculateFeeToEquilibriumTest(\n\t\tuint256 _primaryReserveStaked,\n\t\tuint256 _secondaryReserveStaked,\n\t\tuint256 _primaryReserveWeight,\n\t\tuint256 _secondaryReserveWeight,\n\t\tuint256 _primaryReserveRate,\n\t\tuint256 _secondaryReserveRate,\n\t\tuint256 _dynamicFeeFactor\n\t) external pure returns (uint256) {\n\t\treturn\n\t\t\tcalculateFeeToEquilibrium(\n\t\t\t\t_primaryReserveStaked,\n\t\t\t\t_secondaryReserveStaked,\n\t\t\t\t_primaryReserveWeight,\n\t\t\t\t_secondaryReserveWeight,\n\t\t\t\t_primaryReserveRate,\n\t\t\t\t_secondaryReserveRate,\n\t\t\t\t_dynamicFeeFactor\n\t\t\t);\n\t}\n\n\tfunction setReserveWeight(IERC20Token _reserveToken, uint32 _weight) public validReserve(_reserveToken) {\n\t\treserves[_reserveToken].weight = _weight;\n\t}\n}\n" - }, - "solidity/contracts/converter/types/liquidity-pool-v1/LiquidityPoolV1ConverterFactory.sol": { - "content": "pragma solidity 0.4.26;\r\nimport \"./LiquidityPoolV1Converter.sol\";\r\nimport \"../../interfaces/IConverter.sol\";\r\nimport \"../../interfaces/ITypedConverterFactory.sol\";\r\nimport \"../../../token/interfaces/ISmartToken.sol\";\r\n\r\n/*\r\n LiquidityPoolV1Converter Factory\r\n*/\r\ncontract LiquidityPoolV1ConverterFactory is ITypedConverterFactory {\r\n /**\r\n * @dev returns the converter type the factory is associated with\r\n *\r\n * @return converter type\r\n */\r\n function converterType() public pure returns (uint16) {\r\n return 1;\r\n }\r\n\r\n /**\r\n * @dev creates a new converter with the given arguments and transfers\r\n * the ownership to the caller\r\n *\r\n * @param _anchor anchor governed by the converter\r\n * @param _registry address of a contract registry contract\r\n * @param _maxConversionFee maximum conversion fee, represented in ppm\r\n *\r\n * @return a new converter\r\n */\r\n function createConverter(IConverterAnchor _anchor, IContractRegistry _registry, uint32 _maxConversionFee) public returns (IConverter) {\r\n IConverter converter = new LiquidityPoolV1Converter(ISmartToken(_anchor), _registry, _maxConversionFee);\r\n converter.transferOwnership(msg.sender);\r\n return converter;\r\n }\r\n}\r\n" - }, - "solidity/contracts/converter/types/liquidity-pool-v1/LiquidityPoolV1Converter.sol": { - "content": "pragma solidity 0.4.26;\r\nimport \"../../LiquidityPoolConverter.sol\";\r\nimport \"../../../token/interfaces/ISmartToken.sol\";\r\n\r\n/**\r\n * @dev Liquidity Pool v1 Converter\r\n *\r\n * The liquidity pool v1 converter is a specialized version of a converter that manages\r\n * a classic SovrynSwap liquidity pool.\r\n *\r\n * Even though classic pools can have many reserves, the most common configuration of\r\n * the pool has 2 reserves with 50%/50% weights.\r\n*/\r\ncontract LiquidityPoolV1Converter is LiquidityPoolConverter {\r\n IEtherToken internal etherToken = IEtherToken(0xc0829421C1d260BD3cB3E0F06cfE2D52db2cE315);\r\n\r\n /**\r\n * @dev triggered after a conversion with new price data\r\n * deprecated, use `TokenRateUpdate` from version 28 and up\r\n *\r\n * @param _connectorToken reserve token\r\n * @param _tokenSupply smart token supply\r\n * @param _connectorBalance reserve balance\r\n * @param _connectorWeight reserve weight\r\n */\r\n event PriceDataUpdate(\r\n address indexed _connectorToken,\r\n uint256 _tokenSupply,\r\n uint256 _connectorBalance,\r\n uint32 _connectorWeight\r\n );\r\n\r\n /**\r\n * @dev initializes a new LiquidityPoolV1Converter instance\r\n *\r\n * @param _token pool token governed by the converter\r\n * @param _registry address of a contract registry contract\r\n * @param _maxConversionFee maximum conversion fee, represented in ppm\r\n */\r\n constructor(\r\n ISmartToken _token,\r\n IContractRegistry _registry,\r\n uint32 _maxConversionFee\r\n )\r\n LiquidityPoolConverter(_token, _registry, _maxConversionFee)\r\n public\r\n {\r\n }\r\n\r\n /**\r\n * @dev returns the converter type\r\n *\r\n * @return see the converter types in the the main contract doc\r\n */\r\n function converterType() public pure returns (uint16) {\r\n return 1;\r\n }\r\n\r\n /**\r\n * @dev accepts ownership of the anchor after an ownership transfer\r\n * also activates the converter\r\n * can only be called by the contract owner\r\n * note that prior to version 28, you should use 'acceptTokenOwnership' instead\r\n */\r\n function acceptAnchorOwnership() public ownerOnly {\r\n super.acceptAnchorOwnership();\r\n\r\n emit Activation(converterType(), anchor, true);\r\n }\r\n\r\n /**\r\n * @dev returns the expected target amount of converting one reserve to another along with the fee\r\n *\r\n * @param _sourceToken contract address of the source reserve token\r\n * @param _targetToken contract address of the target reserve token\r\n * @param _amount amount of tokens received from the user\r\n *\r\n * @return expected target amount\r\n * @return expected fee\r\n */\r\n function targetAmountAndFee(IERC20Token _sourceToken, IERC20Token _targetToken, uint256 _amount)\r\n public\r\n view\r\n active\r\n validReserve(_sourceToken)\r\n validReserve(_targetToken)\r\n returns (uint256, uint256)\r\n {\r\n // validate input\r\n require(_sourceToken != _targetToken, \"ERR_SAME_SOURCE_TARGET\");\r\n\r\n uint256 amount = ISovrynSwapFormula(addressOf(SOVRYNSWAP_FORMULA)).crossReserveTargetAmount(\r\n reserveBalance(_sourceToken),\r\n reserves[_sourceToken].weight,\r\n reserveBalance(_targetToken),\r\n reserves[_targetToken].weight,\r\n _amount\r\n );\r\n\r\n // return the amount minus the conversion fee and the conversion fee\r\n uint256 fee = calculateFee(amount);\r\n return (amount - fee, fee);\r\n }\r\n\r\n /**\r\n * @dev converts a specific amount of source tokens to target tokens\r\n * can only be called by the SovrynSwap network contract\r\n *\r\n * @param _sourceToken source ERC20 token\r\n * @param _targetToken target ERC20 token\r\n * @param _amount amount of tokens to convert (in units of the source token)\r\n * @param _trader address of the caller who executed the conversion\r\n * @param _beneficiary wallet to receive the conversion result\r\n *\r\n * @return amount of tokens received (in units of the target token)\r\n */\r\n function doConvert(IERC20Token _sourceToken, IERC20Token _targetToken, uint256 _amount, address _trader, address _beneficiary)\r\n internal\r\n returns (uint256)\r\n {\r\n // get expected target amount and fee\r\n (uint256 amount, uint256 fee) = targetAmountAndFee(_sourceToken, _targetToken, _amount);\r\n\r\n // ensure that the trade gives something in return\r\n require(amount != 0, \"ERR_ZERO_TARGET_AMOUNT\");\r\n\r\n // ensure that the trade won't deplete the reserve balance\r\n uint256 targetReserveBalance = reserveBalance(_targetToken);\r\n assert(amount < targetReserveBalance);\r\n\r\n // ensure that the input amount was already deposited\r\n if (_sourceToken == ETH_RESERVE_ADDRESS)\r\n require(msg.value == _amount, \"ERR_ETH_AMOUNT_MISMATCH\");\r\n else\r\n require(msg.value == 0 && _sourceToken.balanceOf(this).sub(reserveBalance(_sourceToken)) >= _amount, \"ERR_INVALID_AMOUNT\");\r\n\r\n // sync the reserve balances\r\n syncReserveBalance(_sourceToken);\r\n reserves[_targetToken].balance = reserves[_targetToken].balance.sub(amount);\r\n\r\n // transfer funds to the beneficiary in the to reserve token\r\n if (_targetToken == ETH_RESERVE_ADDRESS)\r\n _beneficiary.transfer(amount);\r\n else\r\n safeTransfer(_targetToken, _beneficiary, amount);\r\n\r\n // dispatch the conversion event\r\n dispatchConversionEvent(_sourceToken, _targetToken, _trader, _amount, amount, fee);\r\n\r\n // dispatch rate updates\r\n dispatchRateEvents(_sourceToken, _targetToken);\r\n\r\n return amount;\r\n }\r\n\r\n /**\r\n * @dev increases the pool's liquidity and mints new shares in the pool to the caller\r\n * note that prior to version 28, you should use 'fund' instead\r\n *\r\n * @param _reserveTokens address of each reserve token\r\n * @param _reserveAmounts amount of each reserve token\r\n * @param _minReturn token minimum return-amount\r\n */\r\n function addLiquidity(IERC20Token[] memory _reserveTokens, uint256[] memory _reserveAmounts, uint256 _minReturn)\r\n public\r\n payable\r\n protected\r\n active\r\n {\r\n // verify the user input\r\n verifyLiquidityInput(_reserveTokens, _reserveAmounts, _minReturn);\r\n\r\n // if one of the reserves is ETH, then verify that the input amount of ETH is equal to the input value of ETH\r\n for (uint256 i = 0; i < _reserveTokens.length; i++)\r\n if (_reserveTokens[i] == ETH_RESERVE_ADDRESS)\r\n require(_reserveAmounts[i] == msg.value, \"ERR_ETH_AMOUNT_MISMATCH\");\r\n\r\n // if the input value of ETH is larger than zero, then verify that one of the reserves is ETH\r\n if (msg.value > 0)\r\n require(reserves[ETH_RESERVE_ADDRESS].isSet, \"ERR_NO_ETH_RESERVE\");\r\n\r\n // get the total supply\r\n uint256 totalSupply = ISmartToken(anchor).totalSupply();\r\n\r\n // transfer from the user an equally-worth amount of each one of the reserve tokens\r\n uint256 amount = addLiquidityToPool(_reserveTokens, _reserveAmounts, totalSupply);\r\n\r\n // verify that the equivalent amount of tokens is equal to or larger than the user's expectation\r\n require(amount >= _minReturn, \"ERR_RETURN_TOO_LOW\");\r\n\r\n // issue the tokens to the user\r\n ISmartToken(anchor).issue(msg.sender, amount);\r\n }\r\n\r\n /**\r\n * @dev decreases the pool's liquidity and burns the caller's shares in the pool\r\n * note that prior to version 28, you should use 'liquidate' instead\r\n *\r\n * @param _amount token amount\r\n * @param _reserveTokens address of each reserve token\r\n * @param _reserveMinReturnAmounts minimum return-amount of each reserve token\r\n */\r\n function removeLiquidity(uint256 _amount, IERC20Token[] memory _reserveTokens, uint256[] memory _reserveMinReturnAmounts)\r\n public\r\n protected\r\n active\r\n {\r\n // verify the user input\r\n verifyLiquidityInput(_reserveTokens, _reserveMinReturnAmounts, _amount);\r\n\r\n // get the total supply BEFORE destroying the user tokens\r\n uint256 totalSupply = ISmartToken(anchor).totalSupply();\r\n\r\n // destroy the user tokens\r\n ISmartToken(anchor).destroy(msg.sender, _amount);\r\n\r\n // transfer to the user an equivalent amount of each one of the reserve tokens\r\n removeLiquidityFromPool(_reserveTokens, _reserveMinReturnAmounts, totalSupply, _amount);\r\n }\r\n\r\n /**\r\n * @dev increases the pool's liquidity and mints new shares in the pool to the caller\r\n * for example, if the caller increases the supply by 10%,\r\n * then it will cost an amount equal to 10% of each reserve token balance\r\n * note that starting from version 28, you should use 'addLiquidity' instead\r\n *\r\n * @param _amount amount to increase the supply by (in the pool token)\r\n */\r\n function fund(uint256 _amount) public payable protected {\r\n syncReserveBalances();\r\n reserves[ETH_RESERVE_ADDRESS].balance = reserves[ETH_RESERVE_ADDRESS].balance.sub(msg.value);\r\n\r\n uint256 supply = ISmartToken(anchor).totalSupply();\r\n ISovrynSwapFormula formula = ISovrynSwapFormula(addressOf(SOVRYNSWAP_FORMULA));\r\n\r\n // iterate through the reserve tokens and transfer a percentage equal to the weight between\r\n // _amount and the total supply in each reserve from the caller to the converter\r\n uint256 reserveCount = reserveTokens.length;\r\n for (uint256 i = 0; i < reserveCount; i++) {\r\n IERC20Token reserveToken = reserveTokens[i];\r\n uint256 rsvBalance = reserves[reserveToken].balance;\r\n uint256 reserveAmount = formula.fundCost(supply, rsvBalance, reserveRatio, _amount);\r\n\r\n // transfer funds from the caller in the reserve token\r\n if (reserveToken == ETH_RESERVE_ADDRESS) {\r\n if (msg.value > reserveAmount) {\r\n msg.sender.transfer(msg.value - reserveAmount);\r\n }\r\n else if (msg.value < reserveAmount) {\r\n require(msg.value == 0, \"ERR_INVALID_ETH_VALUE\");\r\n safeTransferFrom(etherToken, msg.sender, this, reserveAmount);\r\n etherToken.withdraw(reserveAmount);\r\n }\r\n }\r\n else {\r\n safeTransferFrom(reserveToken, msg.sender, this, reserveAmount);\r\n }\r\n\r\n // sync the reserve balance\r\n uint256 newReserveBalance = rsvBalance.add(reserveAmount);\r\n reserves[reserveToken].balance = newReserveBalance;\r\n\r\n uint256 newPoolTokenSupply = supply.add(_amount);\r\n\r\n // dispatch liquidity update for the pool token/reserve\r\n emit LiquidityAdded(msg.sender, reserveToken, reserveAmount, newReserveBalance, newPoolTokenSupply);\r\n\r\n // dispatch the `TokenRateUpdate` event for the pool token\r\n uint32 reserveWeight = reserves[reserveToken].weight;\r\n dispatchPoolTokenRateEvent(newPoolTokenSupply, reserveToken, newReserveBalance, reserveWeight);\r\n }\r\n\r\n // issue new funds to the caller in the pool token\r\n ISmartToken(anchor).issue(msg.sender, _amount);\r\n }\r\n\r\n /**\r\n * @dev decreases the pool's liquidity and burns the caller's shares in the pool\r\n * for example, if the holder sells 10% of the supply,\r\n * then they will receive 10% of each reserve token balance in return\r\n * note that starting from version 28, you should use 'removeLiquidity' instead\r\n *\r\n * @param _amount amount to liquidate (in the pool token)\r\n */\r\n function liquidate(uint256 _amount) public protected {\r\n require(_amount > 0, \"ERR_ZERO_AMOUNT\");\r\n\r\n uint256 totalSupply = ISmartToken(anchor).totalSupply();\r\n ISmartToken(anchor).destroy(msg.sender, _amount);\r\n\r\n uint256[] memory reserveMinReturnAmounts = new uint256[](reserveTokens.length);\r\n for (uint256 i = 0; i < reserveMinReturnAmounts.length; i++)\r\n reserveMinReturnAmounts[i] = 1;\r\n\r\n removeLiquidityFromPool(reserveTokens, reserveMinReturnAmounts, totalSupply, _amount);\r\n }\r\n\r\n /**\r\n * @dev verifies that a given array of tokens is identical to the converter's array of reserve tokens\r\n * we take this input in order to allow specifying the corresponding reserve amounts in any order\r\n *\r\n * @param _reserveTokens array of reserve tokens\r\n * @param _reserveAmounts array of reserve amounts\r\n * @param _amount token amount\r\n */\r\n function verifyLiquidityInput(IERC20Token[] memory _reserveTokens, uint256[] memory _reserveAmounts, uint256 _amount) private view {\r\n uint256 i;\r\n uint256 j;\r\n\r\n uint256 length = reserveTokens.length;\r\n require(length == _reserveTokens.length, \"ERR_INVALID_RESERVE\");\r\n require(length == _reserveAmounts.length, \"ERR_INVALID_AMOUNT\");\r\n\r\n for (i = 0; i < length; i++) {\r\n // verify that every input reserve token is included in the reserve tokens\r\n require(reserves[_reserveTokens[i]].isSet, \"ERR_INVALID_RESERVE\");\r\n for (j = 0; j < length; j++) {\r\n if (reserveTokens[i] == _reserveTokens[j])\r\n break;\r\n }\r\n // verify that every reserve token is included in the input reserve tokens\r\n require(j < length, \"ERR_INVALID_RESERVE\");\r\n // verify that every input reserve token amount is larger than zero\r\n require(_reserveAmounts[i] > 0, \"ERR_INVALID_AMOUNT\");\r\n }\r\n\r\n // verify that the input token amount is larger than zero\r\n require(_amount > 0, \"ERR_ZERO_AMOUNT\");\r\n }\r\n\r\n /**\r\n * @dev adds liquidity (reserve) to the pool\r\n *\r\n * @param _reserveTokens address of each reserve token\r\n * @param _reserveAmounts amount of each reserve token\r\n * @param _totalSupply token total supply\r\n */\r\n function addLiquidityToPool(IERC20Token[] memory _reserveTokens, uint256[] memory _reserveAmounts, uint256 _totalSupply)\r\n private\r\n returns (uint256)\r\n {\r\n if (_totalSupply == 0)\r\n return addLiquidityToEmptyPool(_reserveTokens, _reserveAmounts);\r\n return addLiquidityToNonEmptyPool(_reserveTokens, _reserveAmounts, _totalSupply);\r\n }\r\n\r\n /**\r\n * @dev adds liquidity (reserve) to the pool when it's empty\r\n *\r\n * @param _reserveTokens address of each reserve token\r\n * @param _reserveAmounts amount of each reserve token\r\n */\r\n function addLiquidityToEmptyPool(IERC20Token[] memory _reserveTokens, uint256[] memory _reserveAmounts)\r\n private\r\n returns (uint256)\r\n {\r\n // calculate the geometric-mean of the reserve amounts approved by the user\r\n uint256 amount = geometricMean(_reserveAmounts);\r\n\r\n // transfer each one of the reserve amounts from the user to the pool\r\n for (uint256 i = 0; i < _reserveTokens.length; i++) {\r\n if (_reserveTokens[i] != ETH_RESERVE_ADDRESS) // ETH has already been transferred as part of the transaction\r\n safeTransferFrom(_reserveTokens[i], msg.sender, this, _reserveAmounts[i]);\r\n\r\n reserves[_reserveTokens[i]].balance = _reserveAmounts[i];\r\n\r\n emit LiquidityAdded(msg.sender, _reserveTokens[i], _reserveAmounts[i], _reserveAmounts[i], amount);\r\n\r\n // dispatch the `TokenRateUpdate` event for the pool token\r\n uint32 reserveWeight = reserves[_reserveTokens[i]].weight;\r\n dispatchPoolTokenRateEvent(amount, _reserveTokens[i], _reserveAmounts[i], reserveWeight);\r\n }\r\n\r\n return amount;\r\n }\r\n\r\n /**\r\n * @dev adds liquidity (reserve) to the pool when it's not empty\r\n *\r\n * @param _reserveTokens address of each reserve token\r\n * @param _reserveAmounts amount of each reserve token\r\n * @param _totalSupply token total supply\r\n */\r\n function addLiquidityToNonEmptyPool(IERC20Token[] memory _reserveTokens, uint256[] memory _reserveAmounts, uint256 _totalSupply)\r\n private\r\n returns (uint256)\r\n {\r\n syncReserveBalances();\r\n reserves[ETH_RESERVE_ADDRESS].balance = reserves[ETH_RESERVE_ADDRESS].balance.sub(msg.value);\r\n\r\n ISovrynSwapFormula formula = ISovrynSwapFormula(addressOf(SOVRYNSWAP_FORMULA));\r\n uint256 amount = getMinShare(formula, _totalSupply, _reserveTokens, _reserveAmounts);\r\n uint256 newPoolTokenSupply = _totalSupply.add(amount);\r\n\r\n for (uint256 i = 0; i < _reserveTokens.length; i++) {\r\n IERC20Token reserveToken = _reserveTokens[i];\r\n uint256 rsvBalance = reserves[reserveToken].balance;\r\n uint256 reserveAmount = formula.fundCost(_totalSupply, rsvBalance, reserveRatio, amount);\r\n require(reserveAmount > 0, \"ERR_ZERO_TARGET_AMOUNT\");\r\n assert(reserveAmount <= _reserveAmounts[i]);\r\n\r\n // transfer each one of the reserve amounts from the user to the pool\r\n if (reserveToken != ETH_RESERVE_ADDRESS) // ETH has already been transferred as part of the transaction\r\n safeTransferFrom(reserveToken, msg.sender, this, reserveAmount);\r\n else if (_reserveAmounts[i] > reserveAmount) // transfer the extra amount of ETH back to the user\r\n msg.sender.transfer(_reserveAmounts[i] - reserveAmount);\r\n\r\n uint256 newReserveBalance = rsvBalance.add(reserveAmount);\r\n reserves[reserveToken].balance = newReserveBalance;\r\n\r\n emit LiquidityAdded(msg.sender, reserveToken, reserveAmount, newReserveBalance, newPoolTokenSupply);\r\n\r\n // dispatch the `TokenRateUpdate` event for the pool token\r\n uint32 reserveWeight = reserves[_reserveTokens[i]].weight;\r\n dispatchPoolTokenRateEvent(newPoolTokenSupply, _reserveTokens[i], newReserveBalance, reserveWeight);\r\n }\r\n\r\n return amount;\r\n }\r\n\r\n /**\r\n * @dev removes liquidity (reserve) from the pool\r\n *\r\n * @param _reserveTokens address of each reserve token\r\n * @param _reserveMinReturnAmounts minimum return-amount of each reserve token\r\n * @param _totalSupply token total supply\r\n * @param _amount token amount\r\n */\r\n function removeLiquidityFromPool(IERC20Token[] memory _reserveTokens, uint256[] memory _reserveMinReturnAmounts, uint256 _totalSupply, uint256 _amount)\r\n private\r\n {\r\n syncReserveBalances();\r\n\r\n ISovrynSwapFormula formula = ISovrynSwapFormula(addressOf(SOVRYNSWAP_FORMULA));\r\n uint256 newPoolTokenSupply = _totalSupply.sub(_amount);\r\n\r\n for (uint256 i = 0; i < _reserveTokens.length; i++) {\r\n IERC20Token reserveToken = _reserveTokens[i];\r\n uint256 rsvBalance = reserves[reserveToken].balance;\r\n uint256 reserveAmount = formula.liquidateReserveAmount(_totalSupply, rsvBalance, reserveRatio, _amount);\r\n require(reserveAmount >= _reserveMinReturnAmounts[i], \"ERR_ZERO_TARGET_AMOUNT\");\r\n\r\n uint256 newReserveBalance = rsvBalance.sub(reserveAmount);\r\n reserves[reserveToken].balance = newReserveBalance;\r\n\r\n // transfer each one of the reserve amounts from the pool to the user\r\n if (reserveToken == ETH_RESERVE_ADDRESS)\r\n msg.sender.transfer(reserveAmount);\r\n else\r\n safeTransfer(reserveToken, msg.sender, reserveAmount);\r\n\r\n emit LiquidityRemoved(msg.sender, reserveToken, reserveAmount, newReserveBalance, newPoolTokenSupply);\r\n\r\n // dispatch the `TokenRateUpdate` event for the pool token\r\n uint32 reserveWeight = reserves[reserveToken].weight;\r\n dispatchPoolTokenRateEvent(newPoolTokenSupply, reserveToken, newReserveBalance, reserveWeight);\r\n }\r\n }\r\n\r\n function getMinShare(ISovrynSwapFormula formula, uint256 _totalSupply, IERC20Token[] memory _reserveTokens, uint256[] memory _reserveAmounts) private view returns (uint256) {\r\n uint256 minIndex = 0;\r\n for (uint256 i = 1; i < _reserveTokens.length; i++) {\r\n if (_reserveAmounts[i].mul(reserves[_reserveTokens[minIndex]].balance) < _reserveAmounts[minIndex].mul(reserves[_reserveTokens[i]].balance))\r\n minIndex = i;\r\n }\r\n return formula.fundSupplyAmount(_totalSupply, reserves[_reserveTokens[minIndex]].balance, reserveRatio, _reserveAmounts[minIndex]);\r\n }\r\n\r\n /**\r\n * @dev calculates the number of decimal digits in a given value\r\n *\r\n * @param _x value (assumed positive)\r\n * @return the number of decimal digits in the given value\r\n */\r\n function decimalLength(uint256 _x) public pure returns (uint256) {\r\n uint256 y = 0;\r\n for (uint256 x = _x; x > 0; x /= 10)\r\n y++;\r\n return y;\r\n }\r\n\r\n /**\r\n * @dev calculates the nearest integer to a given quotient\r\n *\r\n * @param _n quotient numerator\r\n * @param _d quotient denominator\r\n * @return the nearest integer to the given quotient\r\n */\r\n function roundDiv(uint256 _n, uint256 _d) public pure returns (uint256) {\r\n return (_n + _d / 2) / _d;\r\n }\r\n\r\n /**\r\n * @dev calculates the average number of decimal digits in a given list of values\r\n *\r\n * @param _values list of values (each of which assumed positive)\r\n * @return the average number of decimal digits in the given list of values\r\n */\r\n function geometricMean(uint256[] memory _values) public pure returns (uint256) {\r\n uint256 numOfDigits = 0;\r\n uint256 length = _values.length;\r\n for (uint256 i = 0; i < length; i++)\r\n numOfDigits += decimalLength(_values[i]);\r\n return uint256(10) ** (roundDiv(numOfDigits, length) - 1);\r\n }\r\n\r\n /**\r\n * @dev dispatches rate events for both reserves / pool tokens\r\n * only used to circumvent the `stack too deep` compiler error\r\n *\r\n * @param _sourceToken address of the source reserve token\r\n * @param _targetToken address of the target reserve token\r\n */\r\n function dispatchRateEvents(IERC20Token _sourceToken, IERC20Token _targetToken) private {\r\n uint256 poolTokenSupply = ISmartToken(anchor).totalSupply();\r\n uint256 sourceReserveBalance = reserveBalance(_sourceToken);\r\n uint256 targetReserveBalance = reserveBalance(_targetToken);\r\n uint32 sourceReserveWeight = reserves[_sourceToken].weight;\r\n uint32 targetReserveWeight = reserves[_targetToken].weight;\r\n\r\n // dispatch token rate update event\r\n uint256 rateN = targetReserveBalance.mul(sourceReserveWeight);\r\n uint256 rateD = sourceReserveBalance.mul(targetReserveWeight);\r\n emit TokenRateUpdate(_sourceToken, _targetToken, rateN, rateD);\r\n\r\n // dispatch the `TokenRateUpdate` event for the pool token\r\n dispatchPoolTokenRateEvent(poolTokenSupply, _sourceToken, sourceReserveBalance, sourceReserveWeight);\r\n dispatchPoolTokenRateEvent(poolTokenSupply, _targetToken, targetReserveBalance, targetReserveWeight);\r\n\r\n // dispatch price data update events (deprecated events)\r\n emit PriceDataUpdate(_sourceToken, poolTokenSupply, sourceReserveBalance, sourceReserveWeight);\r\n emit PriceDataUpdate(_targetToken, poolTokenSupply, targetReserveBalance, targetReserveWeight);\r\n }\r\n\r\n /**\r\n * @dev dispatches the `TokenRateUpdate` for the pool token\r\n * only used to circumvent the `stack too deep` compiler error\r\n *\r\n * @param _poolTokenSupply total pool token supply\r\n * @param _reserveToken address of the reserve token\r\n * @param _reserveBalance reserve balance\r\n * @param _reserveWeight reserve weight\r\n */\r\n function dispatchPoolTokenRateEvent(uint256 _poolTokenSupply, IERC20Token _reserveToken, uint256 _reserveBalance, uint32 _reserveWeight) private {\r\n emit TokenRateUpdate(anchor, _reserveToken, _reserveBalance.mul(WEIGHT_RESOLUTION), _poolTokenSupply.mul(_reserveWeight));\r\n }\r\n}\r\n" - }, - "solidity/contracts/converter/types/liquid-token/LiquidTokenConverterFactory.sol": { - "content": "pragma solidity 0.4.26;\r\nimport \"./LiquidTokenConverter.sol\";\r\nimport \"../../interfaces/IConverter.sol\";\r\nimport \"../../interfaces/ITypedConverterFactory.sol\";\r\nimport \"../../../token/interfaces/ISmartToken.sol\";\r\n\r\n/*\r\n LiquidTokenConverter Factory\r\n*/\r\ncontract LiquidTokenConverterFactory is ITypedConverterFactory {\r\n /**\r\n * @dev returns the converter type the factory is associated with\r\n *\r\n * @return converter type\r\n */\r\n function converterType() public pure returns (uint16) {\r\n return 0;\r\n }\r\n\r\n /**\r\n * @dev creates a new converter with the given arguments and transfers\r\n * the ownership to the caller\r\n *\r\n * @param _anchor anchor governed by the converter\r\n * @param _registry address of a contract registry contract\r\n * @param _maxConversionFee maximum conversion fee, represented in ppm\r\n *\r\n * @return a new converter\r\n */\r\n function createConverter(IConverterAnchor _anchor, IContractRegistry _registry, uint32 _maxConversionFee) public returns (IConverter) {\r\n IConverter converter = new LiquidTokenConverter(ISmartToken(_anchor), _registry, _maxConversionFee);\r\n converter.transferOwnership(msg.sender);\r\n return converter;\r\n }\r\n}\r\n" - }, - "solidity/contracts/converter/types/liquid-token/LiquidTokenConverter.sol": { - "content": "pragma solidity 0.4.26;\r\nimport \"../../ConverterBase.sol\";\r\nimport \"../../../token/interfaces/ISmartToken.sol\";\r\n\r\n/**\r\n * @dev Liquid Token Converter\r\n *\r\n * The liquid token converter is a specialized version of a converter that manages a liquid token.\r\n *\r\n * The converters govern a token with a single reserve and allow converting between the two.\r\n * Liquid tokens usually have fractional reserve (reserve ratio smaller than 100%).\r\n*/\r\ncontract LiquidTokenConverter is ConverterBase {\r\n /**\r\n * @dev initializes a new LiquidTokenConverter instance\r\n *\r\n * @param _token liquid token governed by the converter\r\n * @param _registry address of a contract registry contract\r\n * @param _maxConversionFee maximum conversion fee, represented in ppm\r\n */\r\n constructor(\r\n ISmartToken _token,\r\n IContractRegistry _registry,\r\n uint32 _maxConversionFee\r\n )\r\n ConverterBase(_token, _registry, _maxConversionFee)\r\n public\r\n {\r\n }\r\n\r\n /**\r\n * @dev returns the converter type\r\n *\r\n * @return see the converter types in the the main contract doc\r\n */\r\n function converterType() public pure returns (uint16) {\r\n return 0;\r\n }\r\n\r\n /**\r\n * @dev accepts ownership of the anchor after an ownership transfer\r\n * also activates the converter\r\n * can only be called by the contract owner\r\n * note that prior to version 28, you should use 'acceptTokenOwnership' instead\r\n */\r\n function acceptAnchorOwnership() public ownerOnly {\r\n super.acceptAnchorOwnership();\r\n\r\n emit Activation(converterType(), anchor, true);\r\n }\r\n\r\n /**\r\n * @dev defines the reserve token for the converter\r\n * can only be called by the owner while the converter is inactive and the\r\n * reserve wasn't defined yet\r\n *\r\n * @param _token address of the reserve token\r\n * @param _weight reserve weight, represented in ppm, 1-1000000\r\n */\r\n function addReserve(IERC20Token _token, uint32 _weight) public {\r\n // verify that the converter doesn't have a reserve yet\r\n require(reserveTokenCount() == 0, \"ERR_INVALID_RESERVE_COUNT\");\r\n super.addReserve(_token, _weight);\r\n }\r\n\r\n /**\r\n * @dev returns the expected target amount of converting the source token to the\r\n * target token along with the fee\r\n *\r\n * @param _sourceToken contract address of the source token\r\n * @param _targetToken contract address of the target token\r\n * @param _amount amount of tokens received from the user\r\n *\r\n * @return expected target amount\r\n * @return expected fee\r\n */\r\n function targetAmountAndFee(IERC20Token _sourceToken, IERC20Token _targetToken, uint256 _amount) public view returns (uint256, uint256) {\r\n if (_targetToken == ISmartToken(anchor) && reserves[_sourceToken].isSet)\r\n return purchaseTargetAmount(_amount);\r\n if (_sourceToken == ISmartToken(anchor) && reserves[_targetToken].isSet)\r\n return saleTargetAmount(_amount);\r\n\r\n // invalid input\r\n revert(\"ERR_INVALID_TOKEN\");\r\n }\r\n\r\n /**\r\n * @dev converts between the liquid token and its reserve\r\n * can only be called by the SovrynSwap network contract\r\n *\r\n * @param _sourceToken source ERC20 token\r\n * @param _targetToken target ERC20 token\r\n * @param _amount amount of tokens to convert (in units of the source token)\r\n * @param _trader address of the caller who executed the conversion\r\n * @param _beneficiary wallet to receive the conversion result\r\n *\r\n * @return amount of tokens received (in units of the target token)\r\n */\r\n function doConvert(IERC20Token _sourceToken, IERC20Token _targetToken, uint256 _amount, address _trader, address _beneficiary)\r\n internal\r\n returns (uint256)\r\n {\r\n uint256 targetAmount;\r\n IERC20Token reserveToken;\r\n\r\n if (_targetToken == ISmartToken(anchor) && reserves[_sourceToken].isSet) {\r\n reserveToken = _sourceToken;\r\n targetAmount = buy(_amount, _trader, _beneficiary);\r\n }\r\n else if (_sourceToken == ISmartToken(anchor) && reserves[_targetToken].isSet) {\r\n reserveToken = _targetToken;\r\n targetAmount = sell(_amount, _trader, _beneficiary);\r\n }\r\n else {\r\n // invalid input\r\n revert(\"ERR_INVALID_TOKEN\");\r\n }\r\n\r\n // dispatch rate update for the liquid token\r\n uint256 totalSupply = ISmartToken(anchor).totalSupply();\r\n uint32 reserveWeight = reserves[reserveToken].weight;\r\n emit TokenRateUpdate(anchor, reserveToken, reserveBalance(reserveToken).mul(WEIGHT_RESOLUTION), totalSupply.mul(reserveWeight));\r\n\r\n return targetAmount;\r\n }\r\n\r\n /**\r\n * @dev returns the expected target amount of buying with a given amount of tokens\r\n *\r\n * @param _amount amount of reserve tokens to get the target amount for\r\n *\r\n * @return amount of liquid tokens that the user will receive\r\n * @return amount of liquid tokens that the user will pay as fee\r\n */\r\n function purchaseTargetAmount(uint256 _amount)\r\n internal\r\n view\r\n active\r\n returns (uint256, uint256)\r\n {\r\n uint256 totalSupply = ISmartToken(anchor).totalSupply();\r\n\r\n // if the current supply is zero, then return the input amount divided by the normalized reserve-weight\r\n if (totalSupply == 0)\r\n return (_amount.mul(WEIGHT_RESOLUTION).div(reserves[reserveToken].weight), 0);\r\n\r\n IERC20Token reserveToken = reserveTokens[0];\r\n uint256 amount = ISovrynSwapFormula(addressOf(SOVRYNSWAP_FORMULA)).purchaseTargetAmount(\r\n totalSupply,\r\n reserveBalance(reserveToken),\r\n reserves[reserveToken].weight,\r\n _amount\r\n );\r\n\r\n // return the amount minus the conversion fee and the conversion fee\r\n uint256 fee = calculateFee(amount);\r\n return (amount - fee, fee);\r\n }\r\n\r\n /**\r\n * @dev returns the expected target amount of selling a given amount of tokens\r\n *\r\n * @param _amount amount of liquid tokens to get the target amount for\r\n *\r\n * @return expected reserve tokens\r\n * @return expected fee\r\n */\r\n function saleTargetAmount(uint256 _amount)\r\n internal\r\n view\r\n active\r\n returns (uint256, uint256)\r\n {\r\n uint256 totalSupply = ISmartToken(anchor).totalSupply();\r\n\r\n IERC20Token reserveToken = reserveTokens[0];\r\n\r\n // special case for selling the entire supply - return the entire reserve\r\n if (totalSupply == _amount)\r\n return (reserveBalance(reserveToken), 0);\r\n\r\n uint256 amount = ISovrynSwapFormula(addressOf(SOVRYNSWAP_FORMULA)).saleTargetAmount(\r\n totalSupply,\r\n reserveBalance(reserveToken),\r\n reserves[reserveToken].weight,\r\n _amount\r\n );\r\n\r\n // return the amount minus the conversion fee and the conversion fee\r\n uint256 fee = calculateFee(amount);\r\n return (amount - fee, fee);\r\n }\r\n\r\n /**\r\n * @dev buys the liquid token by depositing in its reserve\r\n *\r\n * @param _amount amount of reserve token to buy the token for\r\n * @param _trader address of the caller who executed the conversion\r\n * @param _beneficiary wallet to receive the conversion result\r\n *\r\n * @return amount of liquid tokens received\r\n */\r\n function buy(uint256 _amount, address _trader, address _beneficiary) internal returns (uint256) {\r\n // get expected target amount and fee\r\n (uint256 amount, uint256 fee) = purchaseTargetAmount(_amount);\r\n\r\n // ensure the trade gives something in return\r\n require(amount != 0, \"ERR_ZERO_TARGET_AMOUNT\");\r\n\r\n IERC20Token reserveToken = reserveTokens[0];\r\n\r\n // ensure that the input amount was already deposited\r\n if (reserveToken == ETH_RESERVE_ADDRESS)\r\n require(msg.value == _amount, \"ERR_ETH_AMOUNT_MISMATCH\");\r\n else\r\n require(msg.value == 0 && reserveToken.balanceOf(this).sub(reserveBalance(reserveToken)) >= _amount, \"ERR_INVALID_AMOUNT\");\r\n\r\n // sync the reserve balance\r\n syncReserveBalance(reserveToken);\r\n\r\n // issue new funds to the beneficiary in the liquid token\r\n ISmartToken(anchor).issue(_beneficiary, amount);\r\n\r\n // dispatch the conversion event\r\n dispatchConversionEvent(reserveToken, ISmartToken(anchor), _trader, _amount, amount, fee);\r\n\r\n return amount;\r\n }\r\n\r\n /**\r\n * @dev sells the liquid token by withdrawing from its reserve\r\n *\r\n * @param _amount amount of liquid tokens to sell\r\n * @param _trader address of the caller who executed the conversion\r\n * @param _beneficiary wallet to receive the conversion result\r\n *\r\n * @return amount of reserve tokens received\r\n */\r\n function sell(uint256 _amount, address _trader, address _beneficiary) internal returns (uint256) {\r\n // ensure that the input amount was already deposited\r\n require(_amount <= ISmartToken(anchor).balanceOf(this), \"ERR_INVALID_AMOUNT\");\r\n\r\n // get expected target amount and fee\r\n (uint256 amount, uint256 fee) = saleTargetAmount(_amount);\r\n\r\n // ensure the trade gives something in return\r\n require(amount != 0, \"ERR_ZERO_TARGET_AMOUNT\");\r\n\r\n IERC20Token reserveToken = reserveTokens[0];\r\n\r\n // ensure that the trade will only deplete the reserve balance if the total supply is depleted as well\r\n uint256 tokenSupply = ISmartToken(anchor).totalSupply();\r\n uint256 rsvBalance = reserveBalance(reserveToken);\r\n assert(amount < rsvBalance || (amount == rsvBalance && _amount == tokenSupply));\r\n\r\n // destroy the tokens from the converter balance in the liquid token\r\n ISmartToken(anchor).destroy(this, _amount);\r\n\r\n // update the reserve balance\r\n reserves[reserveToken].balance = reserves[reserveToken].balance.sub(amount);\r\n\r\n // transfer funds to the beneficiary in the reserve token\r\n if (reserveToken == ETH_RESERVE_ADDRESS)\r\n _beneficiary.transfer(amount);\r\n else\r\n safeTransfer(reserveToken, _beneficiary, amount);\r\n\r\n // dispatch the conversion event\r\n dispatchConversionEvent(ISmartToken(anchor), reserveToken, _trader, _amount, amount, fee);\r\n\r\n return amount;\r\n }\r\n}\r\n" - }, - "solidity/contracts/helpers/TestLiquidityPoolConverter.sol": { - "content": "pragma solidity 0.4.26;\nimport \"../converter/types/liquidity-pool-v1/LiquidityPoolV1Converter.sol\";\n\ncontract TestLiquidityPoolConverter is LiquidityPoolV1Converter {\n\tconstructor(\n\t\tISmartToken _token,\n\t\tIContractRegistry _registry,\n\t\tuint32 _maxConversionFee\n\t) public LiquidityPoolV1Converter(_token, _registry, _maxConversionFee) {}\n\n\tfunction setEtherToken(IEtherToken _etherToken) public {\n\t\tetherToken = _etherToken;\n\t}\n}\n" - }, - "solidity/contracts/helpers/TestTokenHandler.sol": { - "content": "pragma solidity 0.4.26;\nimport \"../utility/TokenHandler.sol\";\n\n/*\n Utils test helper that exposes the token handler functions\n*/\ncontract TestTokenHandler is TokenHandler {\n\tfunction testSafeApprove(\n\t\tIERC20Token _token,\n\t\taddress _spender,\n\t\tuint256 _value\n\t) public {\n\t\tsafeApprove(_token, _spender, _value);\n\t}\n\n\tfunction testSafeTransfer(\n\t\tIERC20Token _token,\n\t\taddress _to,\n\t\tuint256 _value\n\t) public {\n\t\tsafeTransfer(_token, _to, _value);\n\t}\n\n\tfunction testSafeTransferFrom(\n\t\tIERC20Token _token,\n\t\taddress _from,\n\t\taddress _to,\n\t\tuint256 _value\n\t) public {\n\t\tsafeTransferFrom(_token, _from, _to, _value);\n\t}\n}\n" - }, - "solidity/contracts/helpers/TestReentrancyGuard.sol": { - "content": "pragma solidity 0.4.26;\nimport \"../utility/ReentrancyGuard.sol\";\n\ncontract TestReentrancyGuardAttacker {\n\tTestReentrancyGuard public target;\n\tbool public reentrancy;\n\tbool public callProtectedMethod;\n\tbool public attacking;\n\n\tconstructor(TestReentrancyGuard _target) public {\n\t\ttarget = _target;\n\t}\n\n\tfunction setReentrancy(bool _reentrancy) external {\n\t\treentrancy = _reentrancy;\n\t}\n\n\tfunction setCallProtectedMethod(bool _callProtectedMethod) external {\n\t\tcallProtectedMethod = _callProtectedMethod;\n\t}\n\n\tfunction run() public {\n\t\tcallProtectedMethod ? target.protectedMethod() : target.unprotectedMethod();\n\t}\n\n\tfunction callback() external {\n\t\tif (!reentrancy) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (!attacking) {\n\t\t\tattacking = true;\n\n\t\t\trun();\n\t\t}\n\n\t\tattacking = false;\n\t}\n}\n\ncontract TestReentrancyGuard is ReentrancyGuard {\n\tuint256 public calls;\n\n\tfunction protectedMethod() external protected {\n\t\trun();\n\t}\n\n\tfunction unprotectedMethod() external {\n\t\trun();\n\t}\n\n\tfunction run() private {\n\t\tcalls++;\n\n\t\tTestReentrancyGuardAttacker(msg.sender).callback();\n\t}\n}\n" - }, - "solidity/contracts/converter/SovrynSwapFormula.sol": { - "content": "pragma solidity 0.4.26;\nimport \"./interfaces/ISovrynSwapFormula.sol\";\nimport \"../utility/SafeMath.sol\";\n\ncontract SovrynSwapFormula is ISovrynSwapFormula {\n\tusing SafeMath for uint256;\n\n\tuint16 public constant version = 8;\n\n\tuint256 private constant ONE = 1;\n\tuint32 private constant MAX_WEIGHT = 1000000;\n\tuint8 private constant MIN_PRECISION = 32;\n\tuint8 private constant MAX_PRECISION = 127;\n\n\t/**\n\t * Auto-generated via 'PrintIntScalingFactors.py'\n\t */\n\tuint256 private constant FIXED_1 = 0x080000000000000000000000000000000;\n\tuint256 private constant FIXED_2 = 0x100000000000000000000000000000000;\n\tuint256 private constant MAX_NUM = 0x200000000000000000000000000000000;\n\n\t/**\n\t * Auto-generated via 'PrintLn2ScalingFactors.py'\n\t */\n\tuint256 private constant LN2_NUMERATOR = 0x3f80fe03f80fe03f80fe03f80fe03f8;\n\tuint256 private constant LN2_DENOMINATOR = 0x5b9de1d10bf4103d647b0955897ba80;\n\n\t/**\n\t * Auto-generated via 'PrintFunctionOptimalLog.py' and 'PrintFunctionOptimalExp.py'\n\t */\n\tuint256 private constant OPT_LOG_MAX_VAL = 0x15bf0a8b1457695355fb8ac404e7a79e3;\n\tuint256 private constant OPT_EXP_MAX_VAL = 0x800000000000000000000000000000000;\n\n\t/**\n\t * Auto-generated via 'PrintLambertFactors.py'\n\t */\n\tuint256 private constant LAMBERT_CONV_RADIUS = 0x002f16ac6c59de6f8d5d6f63c1482a7c86;\n\tuint256 private constant LAMBERT_POS2_SAMPLE = 0x0003060c183060c183060c183060c18306;\n\tuint256 private constant LAMBERT_POS2_MAXVAL = 0x01af16ac6c59de6f8d5d6f63c1482a7c80;\n\tuint256 private constant LAMBERT_POS3_MAXVAL = 0x6b22d43e72c326539cceeef8bb48f255ff;\n\n\t/**\n\t * Auto-generated via 'PrintWeightFactors.py'\n\t */\n\tuint256 private constant MAX_UNF_WEIGHT = 0x10c6f7a0b5ed8d36b4c7f34938583621fafc8b0079a2834d26fa3fcc9ea9;\n\n\t/**\n\t * Auto-generated via 'PrintMaxExpArray.py'\n\t */\n\tuint256[128] private maxExpArray;\n\n\tfunction initMaxExpArray() private {\n\t\t// maxExpArray[ 0] = 0x6bffffffffffffffffffffffffffffffff;\n\t\t// maxExpArray[ 1] = 0x67ffffffffffffffffffffffffffffffff;\n\t\t// maxExpArray[ 2] = 0x637fffffffffffffffffffffffffffffff;\n\t\t// maxExpArray[ 3] = 0x5f6fffffffffffffffffffffffffffffff;\n\t\t// maxExpArray[ 4] = 0x5b77ffffffffffffffffffffffffffffff;\n\t\t// maxExpArray[ 5] = 0x57b3ffffffffffffffffffffffffffffff;\n\t\t// maxExpArray[ 6] = 0x5419ffffffffffffffffffffffffffffff;\n\t\t// maxExpArray[ 7] = 0x50a2ffffffffffffffffffffffffffffff;\n\t\t// maxExpArray[ 8] = 0x4d517fffffffffffffffffffffffffffff;\n\t\t// maxExpArray[ 9] = 0x4a233fffffffffffffffffffffffffffff;\n\t\t// maxExpArray[ 10] = 0x47165fffffffffffffffffffffffffffff;\n\t\t// maxExpArray[ 11] = 0x4429afffffffffffffffffffffffffffff;\n\t\t// maxExpArray[ 12] = 0x415bc7ffffffffffffffffffffffffffff;\n\t\t// maxExpArray[ 13] = 0x3eab73ffffffffffffffffffffffffffff;\n\t\t// maxExpArray[ 14] = 0x3c1771ffffffffffffffffffffffffffff;\n\t\t// maxExpArray[ 15] = 0x399e96ffffffffffffffffffffffffffff;\n\t\t// maxExpArray[ 16] = 0x373fc47fffffffffffffffffffffffffff;\n\t\t// maxExpArray[ 17] = 0x34f9e8ffffffffffffffffffffffffffff;\n\t\t// maxExpArray[ 18] = 0x32cbfd5fffffffffffffffffffffffffff;\n\t\t// maxExpArray[ 19] = 0x30b5057fffffffffffffffffffffffffff;\n\t\t// maxExpArray[ 20] = 0x2eb40f9fffffffffffffffffffffffffff;\n\t\t// maxExpArray[ 21] = 0x2cc8340fffffffffffffffffffffffffff;\n\t\t// maxExpArray[ 22] = 0x2af09481ffffffffffffffffffffffffff;\n\t\t// maxExpArray[ 23] = 0x292c5bddffffffffffffffffffffffffff;\n\t\t// maxExpArray[ 24] = 0x277abdcdffffffffffffffffffffffffff;\n\t\t// maxExpArray[ 25] = 0x25daf6657fffffffffffffffffffffffff;\n\t\t// maxExpArray[ 26] = 0x244c49c65fffffffffffffffffffffffff;\n\t\t// maxExpArray[ 27] = 0x22ce03cd5fffffffffffffffffffffffff;\n\t\t// maxExpArray[ 28] = 0x215f77c047ffffffffffffffffffffffff;\n\t\t// maxExpArray[ 29] = 0x1fffffffffffffffffffffffffffffffff;\n\t\t// maxExpArray[ 30] = 0x1eaefdbdabffffffffffffffffffffffff;\n\t\t// maxExpArray[ 31] = 0x1d6bd8b2ebffffffffffffffffffffffff;\n\t\tmaxExpArray[32] = 0x1c35fedd14ffffffffffffffffffffffff;\n\t\tmaxExpArray[33] = 0x1b0ce43b323fffffffffffffffffffffff;\n\t\tmaxExpArray[34] = 0x19f0028ec1ffffffffffffffffffffffff;\n\t\tmaxExpArray[35] = 0x18ded91f0e7fffffffffffffffffffffff;\n\t\tmaxExpArray[36] = 0x17d8ec7f0417ffffffffffffffffffffff;\n\t\tmaxExpArray[37] = 0x16ddc6556cdbffffffffffffffffffffff;\n\t\tmaxExpArray[38] = 0x15ecf52776a1ffffffffffffffffffffff;\n\t\tmaxExpArray[39] = 0x15060c256cb2ffffffffffffffffffffff;\n\t\tmaxExpArray[40] = 0x1428a2f98d72ffffffffffffffffffffff;\n\t\tmaxExpArray[41] = 0x13545598e5c23fffffffffffffffffffff;\n\t\tmaxExpArray[42] = 0x1288c4161ce1dfffffffffffffffffffff;\n\t\tmaxExpArray[43] = 0x11c592761c666fffffffffffffffffffff;\n\t\tmaxExpArray[44] = 0x110a688680a757ffffffffffffffffffff;\n\t\tmaxExpArray[45] = 0x1056f1b5bedf77ffffffffffffffffffff;\n\t\tmaxExpArray[46] = 0x0faadceceeff8bffffffffffffffffffff;\n\t\tmaxExpArray[47] = 0x0f05dc6b27edadffffffffffffffffffff;\n\t\tmaxExpArray[48] = 0x0e67a5a25da4107fffffffffffffffffff;\n\t\tmaxExpArray[49] = 0x0dcff115b14eedffffffffffffffffffff;\n\t\tmaxExpArray[50] = 0x0d3e7a392431239fffffffffffffffffff;\n\t\tmaxExpArray[51] = 0x0cb2ff529eb71e4fffffffffffffffffff;\n\t\tmaxExpArray[52] = 0x0c2d415c3db974afffffffffffffffffff;\n\t\tmaxExpArray[53] = 0x0bad03e7d883f69bffffffffffffffffff;\n\t\tmaxExpArray[54] = 0x0b320d03b2c343d5ffffffffffffffffff;\n\t\tmaxExpArray[55] = 0x0abc25204e02828dffffffffffffffffff;\n\t\tmaxExpArray[56] = 0x0a4b16f74ee4bb207fffffffffffffffff;\n\t\tmaxExpArray[57] = 0x09deaf736ac1f569ffffffffffffffffff;\n\t\tmaxExpArray[58] = 0x0976bd9952c7aa957fffffffffffffffff;\n\t\tmaxExpArray[59] = 0x09131271922eaa606fffffffffffffffff;\n\t\tmaxExpArray[60] = 0x08b380f3558668c46fffffffffffffffff;\n\t\tmaxExpArray[61] = 0x0857ddf0117efa215bffffffffffffffff;\n\t\tmaxExpArray[62] = 0x07ffffffffffffffffffffffffffffffff;\n\t\tmaxExpArray[63] = 0x07abbf6f6abb9d087fffffffffffffffff;\n\t\tmaxExpArray[64] = 0x075af62cbac95f7dfa7fffffffffffffff;\n\t\tmaxExpArray[65] = 0x070d7fb7452e187ac13fffffffffffffff;\n\t\tmaxExpArray[66] = 0x06c3390ecc8af379295fffffffffffffff;\n\t\tmaxExpArray[67] = 0x067c00a3b07ffc01fd6fffffffffffffff;\n\t\tmaxExpArray[68] = 0x0637b647c39cbb9d3d27ffffffffffffff;\n\t\tmaxExpArray[69] = 0x05f63b1fc104dbd39587ffffffffffffff;\n\t\tmaxExpArray[70] = 0x05b771955b36e12f7235ffffffffffffff;\n\t\tmaxExpArray[71] = 0x057b3d49dda84556d6f6ffffffffffffff;\n\t\tmaxExpArray[72] = 0x054183095b2c8ececf30ffffffffffffff;\n\t\tmaxExpArray[73] = 0x050a28be635ca2b888f77fffffffffffff;\n\t\tmaxExpArray[74] = 0x04d5156639708c9db33c3fffffffffffff;\n\t\tmaxExpArray[75] = 0x04a23105873875bd52dfdfffffffffffff;\n\t\tmaxExpArray[76] = 0x0471649d87199aa990756fffffffffffff;\n\t\tmaxExpArray[77] = 0x04429a21a029d4c1457cfbffffffffffff;\n\t\tmaxExpArray[78] = 0x0415bc6d6fb7dd71af2cb3ffffffffffff;\n\t\tmaxExpArray[79] = 0x03eab73b3bbfe282243ce1ffffffffffff;\n\t\tmaxExpArray[80] = 0x03c1771ac9fb6b4c18e229ffffffffffff;\n\t\tmaxExpArray[81] = 0x0399e96897690418f785257fffffffffff;\n\t\tmaxExpArray[82] = 0x0373fc456c53bb779bf0ea9fffffffffff;\n\t\tmaxExpArray[83] = 0x034f9e8e490c48e67e6ab8bfffffffffff;\n\t\tmaxExpArray[84] = 0x032cbfd4a7adc790560b3337ffffffffff;\n\t\tmaxExpArray[85] = 0x030b50570f6e5d2acca94613ffffffffff;\n\t\tmaxExpArray[86] = 0x02eb40f9f620fda6b56c2861ffffffffff;\n\t\tmaxExpArray[87] = 0x02cc8340ecb0d0f520a6af58ffffffffff;\n\t\tmaxExpArray[88] = 0x02af09481380a0a35cf1ba02ffffffffff;\n\t\tmaxExpArray[89] = 0x0292c5bdd3b92ec810287b1b3fffffffff;\n\t\tmaxExpArray[90] = 0x0277abdcdab07d5a77ac6d6b9fffffffff;\n\t\tmaxExpArray[91] = 0x025daf6654b1eaa55fd64df5efffffffff;\n\t\tmaxExpArray[92] = 0x0244c49c648baa98192dce88b7ffffffff;\n\t\tmaxExpArray[93] = 0x022ce03cd5619a311b2471268bffffffff;\n\t\tmaxExpArray[94] = 0x0215f77c045fbe885654a44a0fffffffff;\n\t\tmaxExpArray[95] = 0x01ffffffffffffffffffffffffffffffff;\n\t\tmaxExpArray[96] = 0x01eaefdbdaaee7421fc4d3ede5ffffffff;\n\t\tmaxExpArray[97] = 0x01d6bd8b2eb257df7e8ca57b09bfffffff;\n\t\tmaxExpArray[98] = 0x01c35fedd14b861eb0443f7f133fffffff;\n\t\tmaxExpArray[99] = 0x01b0ce43b322bcde4a56e8ada5afffffff;\n\t\tmaxExpArray[100] = 0x019f0028ec1fff007f5a195a39dfffffff;\n\t\tmaxExpArray[101] = 0x018ded91f0e72ee74f49b15ba527ffffff;\n\t\tmaxExpArray[102] = 0x017d8ec7f04136f4e5615fd41a63ffffff;\n\t\tmaxExpArray[103] = 0x016ddc6556cdb84bdc8d12d22e6fffffff;\n\t\tmaxExpArray[104] = 0x015ecf52776a1155b5bd8395814f7fffff;\n\t\tmaxExpArray[105] = 0x015060c256cb23b3b3cc3754cf40ffffff;\n\t\tmaxExpArray[106] = 0x01428a2f98d728ae223ddab715be3fffff;\n\t\tmaxExpArray[107] = 0x013545598e5c23276ccf0ede68034fffff;\n\t\tmaxExpArray[108] = 0x01288c4161ce1d6f54b7f61081194fffff;\n\t\tmaxExpArray[109] = 0x011c592761c666aa641d5a01a40f17ffff;\n\t\tmaxExpArray[110] = 0x0110a688680a7530515f3e6e6cfdcdffff;\n\t\tmaxExpArray[111] = 0x01056f1b5bedf75c6bcb2ce8aed428ffff;\n\t\tmaxExpArray[112] = 0x00faadceceeff8a0890f3875f008277fff;\n\t\tmaxExpArray[113] = 0x00f05dc6b27edad306388a600f6ba0bfff;\n\t\tmaxExpArray[114] = 0x00e67a5a25da41063de1495d5b18cdbfff;\n\t\tmaxExpArray[115] = 0x00dcff115b14eedde6fc3aa5353f2e4fff;\n\t\tmaxExpArray[116] = 0x00d3e7a3924312399f9aae2e0f868f8fff;\n\t\tmaxExpArray[117] = 0x00cb2ff529eb71e41582cccd5a1ee26fff;\n\t\tmaxExpArray[118] = 0x00c2d415c3db974ab32a51840c0b67edff;\n\t\tmaxExpArray[119] = 0x00bad03e7d883f69ad5b0a186184e06bff;\n\t\tmaxExpArray[120] = 0x00b320d03b2c343d4829abd6075f0cc5ff;\n\t\tmaxExpArray[121] = 0x00abc25204e02828d73c6e80bcdb1a95bf;\n\t\tmaxExpArray[122] = 0x00a4b16f74ee4bb2040a1ec6c15fbbf2df;\n\t\tmaxExpArray[123] = 0x009deaf736ac1f569deb1b5ae3f36c130f;\n\t\tmaxExpArray[124] = 0x00976bd9952c7aa957f5937d790ef65037;\n\t\tmaxExpArray[125] = 0x009131271922eaa6064b73a22d0bd4f2bf;\n\t\tmaxExpArray[126] = 0x008b380f3558668c46c91c49a2f8e967b9;\n\t\tmaxExpArray[127] = 0x00857ddf0117efa215952912839f6473e6;\n\t}\n\n\t/**\n\t * Auto-generated via 'PrintLambertArray.py'\n\t */\n\tuint256[128] private lambertArray;\n\n\tfunction initLambertArray() private {\n\t\tlambertArray[0] = 0x60e393c68d20b1bd09deaabc0373b9c5;\n\t\tlambertArray[1] = 0x5f8f46e4854120989ed94719fb4c2011;\n\t\tlambertArray[2] = 0x5e479ebb9129fb1b7e72a648f992b606;\n\t\tlambertArray[3] = 0x5d0bd23fe42dfedde2e9586be12b85fe;\n\t\tlambertArray[4] = 0x5bdb29ddee979308ddfca81aeeb8095a;\n\t\tlambertArray[5] = 0x5ab4fd8a260d2c7e2c0d2afcf0009dad;\n\t\tlambertArray[6] = 0x5998b31359a55d48724c65cf09001221;\n\t\tlambertArray[7] = 0x5885bcad2b322dfc43e8860f9c018cf5;\n\t\tlambertArray[8] = 0x577b97aa1fe222bb452fdf111b1f0be2;\n\t\tlambertArray[9] = 0x5679cb5e3575632e5baa27e2b949f704;\n\t\tlambertArray[10] = 0x557fe8241b3a31c83c732f1cdff4a1c5;\n\t\tlambertArray[11] = 0x548d868026504875d6e59bbe95fc2a6b;\n\t\tlambertArray[12] = 0x53a2465ce347cf34d05a867c17dd3088;\n\t\tlambertArray[13] = 0x52bdce5dcd4faed59c7f5511cf8f8acc;\n\t\tlambertArray[14] = 0x51dfcb453c07f8da817606e7885f7c3e;\n\t\tlambertArray[15] = 0x5107ef6b0a5a2be8f8ff15590daa3cce;\n\t\tlambertArray[16] = 0x5035f241d6eae0cd7bacba119993de7b;\n\t\tlambertArray[17] = 0x4f698fe90d5b53d532171e1210164c66;\n\t\tlambertArray[18] = 0x4ea288ca297a0e6a09a0eee240e16c85;\n\t\tlambertArray[19] = 0x4de0a13fdcf5d4213fc398ba6e3becde;\n\t\tlambertArray[20] = 0x4d23a145eef91fec06b06140804c4808;\n\t\tlambertArray[21] = 0x4c6b5430d4c1ee5526473db4ae0f11de;\n\t\tlambertArray[22] = 0x4bb7886c240562eba11f4963a53b4240;\n\t\tlambertArray[23] = 0x4b080f3f1cb491d2d521e0ea4583521e;\n\t\tlambertArray[24] = 0x4a5cbc96a05589cb4d86be1db3168364;\n\t\tlambertArray[25] = 0x49b566d40243517658d78c33162d6ece;\n\t\tlambertArray[26] = 0x4911e6a02e5507a30f947383fd9a3276;\n\t\tlambertArray[27] = 0x487216c2b31be4adc41db8a8d5cc0c88;\n\t\tlambertArray[28] = 0x47d5d3fc4a7a1b188cd3d788b5c5e9fc;\n\t\tlambertArray[29] = 0x473cfce4871a2c40bc4f9e1c32b955d0;\n\t\tlambertArray[30] = 0x46a771ca578ab878485810e285e31c67;\n\t\tlambertArray[31] = 0x4615149718aed4c258c373dc676aa72d;\n\t\tlambertArray[32] = 0x4585c8b3f8fe489c6e1833ca47871384;\n\t\tlambertArray[33] = 0x44f972f174e41e5efb7e9d63c29ce735;\n\t\tlambertArray[34] = 0x446ff970ba86d8b00beb05ecebf3c4dc;\n\t\tlambertArray[35] = 0x43e9438ec88971812d6f198b5ccaad96;\n\t\tlambertArray[36] = 0x436539d11ff7bea657aeddb394e809ef;\n\t\tlambertArray[37] = 0x42e3c5d3e5a913401d86f66db5d81c2c;\n\t\tlambertArray[38] = 0x4264d2395303070ea726cbe98df62174;\n\t\tlambertArray[39] = 0x41e84a9a593bb7194c3a6349ecae4eea;\n\t\tlambertArray[40] = 0x416e1b785d13eba07a08f3f18876a5ab;\n\t\tlambertArray[41] = 0x40f6322ff389d423ba9dd7e7e7b7e809;\n\t\tlambertArray[42] = 0x40807cec8a466880ecf4184545d240a4;\n\t\tlambertArray[43] = 0x400cea9ce88a8d3ae668e8ea0d9bf07f;\n\t\tlambertArray[44] = 0x3f9b6ae8772d4c55091e0ed7dfea0ac1;\n\t\tlambertArray[45] = 0x3f2bee253fd84594f54bcaafac383a13;\n\t\tlambertArray[46] = 0x3ebe654e95208bb9210c575c081c5958;\n\t\tlambertArray[47] = 0x3e52c1fc5665635b78ce1f05ad53c086;\n\t\tlambertArray[48] = 0x3de8f65ac388101ddf718a6f5c1eff65;\n\t\tlambertArray[49] = 0x3d80f522d59bd0b328ca012df4cd2d49;\n\t\tlambertArray[50] = 0x3d1ab193129ea72b23648a161163a85a;\n\t\tlambertArray[51] = 0x3cb61f68d32576c135b95cfb53f76d75;\n\t\tlambertArray[52] = 0x3c5332d9f1aae851a3619e77e4cc8473;\n\t\tlambertArray[53] = 0x3bf1e08edbe2aa109e1525f65759ef73;\n\t\tlambertArray[54] = 0x3b921d9cff13fa2c197746a3dfc4918f;\n\t\tlambertArray[55] = 0x3b33df818910bfc1a5aefb8f63ae2ac4;\n\t\tlambertArray[56] = 0x3ad71c1c77e34fa32a9f184967eccbf6;\n\t\tlambertArray[57] = 0x3a7bc9abf2c5bb53e2f7384a8a16521a;\n\t\tlambertArray[58] = 0x3a21dec7e76369783a68a0c6385a1c57;\n\t\tlambertArray[59] = 0x39c9525de6c9cdf7c1c157ca4a7a6ee3;\n\t\tlambertArray[60] = 0x39721bad3dc85d1240ff0190e0adaac3;\n\t\tlambertArray[61] = 0x391c324344d3248f0469eb28dd3d77e0;\n\t\tlambertArray[62] = 0x38c78df7e3c796279fb4ff84394ab3da;\n\t\tlambertArray[63] = 0x387426ea4638ae9aae08049d3554c20a;\n\t\tlambertArray[64] = 0x3821f57dbd2763256c1a99bbd2051378;\n\t\tlambertArray[65] = 0x37d0f256cb46a8c92ff62fbbef289698;\n\t\tlambertArray[66] = 0x37811658591ffc7abdd1feaf3cef9b73;\n\t\tlambertArray[67] = 0x37325aa10e9e82f7df0f380f7997154b;\n\t\tlambertArray[68] = 0x36e4b888cfb408d873b9a80d439311c6;\n\t\tlambertArray[69] = 0x3698299e59f4bb9de645fc9b08c64cca;\n\t\tlambertArray[70] = 0x364ca7a5012cb603023b57dd3ebfd50d;\n\t\tlambertArray[71] = 0x36022c928915b778ab1b06aaee7e61d4;\n\t\tlambertArray[72] = 0x35b8b28d1a73dc27500ffe35559cc028;\n\t\tlambertArray[73] = 0x357033e951fe250ec5eb4e60955132d7;\n\t\tlambertArray[74] = 0x3528ab2867934e3a21b5412e4c4f8881;\n\t\tlambertArray[75] = 0x34e212f66c55057f9676c80094a61d59;\n\t\tlambertArray[76] = 0x349c66289e5b3c4b540c24f42fa4b9bb;\n\t\tlambertArray[77] = 0x34579fbbd0c733a9c8d6af6b0f7d00f7;\n\t\tlambertArray[78] = 0x3413bad2e712288b924b5882b5b369bf;\n\t\tlambertArray[79] = 0x33d0b2b56286510ef730e213f71f12e9;\n\t\tlambertArray[80] = 0x338e82ce00e2496262c64457535ba1a1;\n\t\tlambertArray[81] = 0x334d26a96b373bb7c2f8ea1827f27a92;\n\t\tlambertArray[82] = 0x330c99f4f4211469e00b3e18c31475ea;\n\t\tlambertArray[83] = 0x32ccd87d6486094999c7d5e6f33237d8;\n\t\tlambertArray[84] = 0x328dde2dd617b6665a2e8556f250c1af;\n\t\tlambertArray[85] = 0x324fa70e9adc270f8262755af5a99af9;\n\t\tlambertArray[86] = 0x32122f443110611ca51040f41fa6e1e3;\n\t\tlambertArray[87] = 0x31d5730e42c0831482f0f1485c4263d8;\n\t\tlambertArray[88] = 0x31996ec6b07b4a83421b5ebc4ab4e1f1;\n\t\tlambertArray[89] = 0x315e1ee0a68ff46bb43ec2b85032e876;\n\t\tlambertArray[90] = 0x31237fe7bc4deacf6775b9efa1a145f8;\n\t\tlambertArray[91] = 0x30e98e7f1cc5a356e44627a6972ea2ff;\n\t\tlambertArray[92] = 0x30b04760b8917ec74205a3002650ec05;\n\t\tlambertArray[93] = 0x3077a75c803468e9132ce0cf3224241d;\n\t\tlambertArray[94] = 0x303fab57a6a275c36f19cda9bace667a;\n\t\tlambertArray[95] = 0x3008504beb8dcbd2cf3bc1f6d5a064f0;\n\t\tlambertArray[96] = 0x2fd19346ed17dac61219ce0c2c5ac4b0;\n\t\tlambertArray[97] = 0x2f9b7169808c324b5852fd3d54ba9714;\n\t\tlambertArray[98] = 0x2f65e7e711cf4b064eea9c08cbdad574;\n\t\tlambertArray[99] = 0x2f30f405093042ddff8a251b6bf6d103;\n\t\tlambertArray[100] = 0x2efc931a3750f2e8bfe323edfe037574;\n\t\tlambertArray[101] = 0x2ec8c28e46dbe56d98685278339400cb;\n\t\tlambertArray[102] = 0x2e957fd933c3926d8a599b602379b851;\n\t\tlambertArray[103] = 0x2e62c882c7c9ed4473412702f08ba0e5;\n\t\tlambertArray[104] = 0x2e309a221c12ba361e3ed695167feee2;\n\t\tlambertArray[105] = 0x2dfef25d1f865ae18dd07cfea4bcea10;\n\t\tlambertArray[106] = 0x2dcdcee821cdc80decc02c44344aeb31;\n\t\tlambertArray[107] = 0x2d9d2d8562b34944d0b201bb87260c83;\n\t\tlambertArray[108] = 0x2d6d0c04a5b62a2c42636308669b729a;\n\t\tlambertArray[109] = 0x2d3d6842c9a235517fc5a0332691528f;\n\t\tlambertArray[110] = 0x2d0e402963fe1ea2834abc408c437c10;\n\t\tlambertArray[111] = 0x2cdf91ae602647908aff975e4d6a2a8c;\n\t\tlambertArray[112] = 0x2cb15ad3a1eb65f6d74a75da09a1b6c5;\n\t\tlambertArray[113] = 0x2c8399a6ab8e9774d6fcff373d210727;\n\t\tlambertArray[114] = 0x2c564c4046f64edba6883ca06bbc4535;\n\t\tlambertArray[115] = 0x2c2970c431f952641e05cb493e23eed3;\n\t\tlambertArray[116] = 0x2bfd0560cd9eb14563bc7c0732856c18;\n\t\tlambertArray[117] = 0x2bd1084ed0332f7ff4150f9d0ef41a2c;\n\t\tlambertArray[118] = 0x2ba577d0fa1628b76d040b12a82492fb;\n\t\tlambertArray[119] = 0x2b7a5233cd21581e855e89dc2f1e8a92;\n\t\tlambertArray[120] = 0x2b4f95cd46904d05d72bdcde337d9cc7;\n\t\tlambertArray[121] = 0x2b2540fc9b4d9abba3faca6691914675;\n\t\tlambertArray[122] = 0x2afb5229f68d0830d8be8adb0a0db70f;\n\t\tlambertArray[123] = 0x2ad1c7c63a9b294c5bc73a3ba3ab7a2b;\n\t\tlambertArray[124] = 0x2aa8a04ac3cbe1ee1c9c86361465dbb8;\n\t\tlambertArray[125] = 0x2a7fda392d725a44a2c8aeb9ab35430d;\n\t\tlambertArray[126] = 0x2a57741b18cde618717792b4faa216db;\n\t\tlambertArray[127] = 0x2a2f6c81f5d84dd950a35626d6d5503a;\n\t}\n\n\t/**\n\t * @dev should be executed after construction (too large for the constructor)\n\t */\n\tfunction init() public {\n\t\tinitMaxExpArray();\n\t\tinitLambertArray();\n\t}\n\n\t/**\n\t * @dev given a token supply, reserve balance, weight and a deposit amount (in the reserve token),\n\t * calculates the target amount for a given conversion (in the main token)\n\t *\n\t * Formula:\n\t * return = _supply * ((1 + _amount / _reserveBalance) ^ (_reserveWeight / 1000000) - 1)\n\t *\n\t * @param _supply smart token supply\n\t * @param _reserveBalance reserve balance\n\t * @param _reserveWeight reserve weight, represented in ppm (1-1000000)\n\t * @param _amount amount of reserve tokens to get the target amount for\n\t *\n\t * @return smart token amount\n\t */\n\tfunction purchaseTargetAmount(\n\t\tuint256 _supply,\n\t\tuint256 _reserveBalance,\n\t\tuint32 _reserveWeight,\n\t\tuint256 _amount\n\t) public view returns (uint256) {\n\t\t// validate input\n\t\trequire(_supply > 0, \"ERR_INVALID_SUPPLY\");\n\t\trequire(_reserveBalance > 0, \"ERR_INVALID_RESERVE_BALANCE\");\n\t\trequire(_reserveWeight > 0 && _reserveWeight <= MAX_WEIGHT, \"ERR_INVALID_RESERVE_WEIGHT\");\n\n\t\t// special case for 0 deposit amount\n\t\tif (_amount == 0) return 0;\n\n\t\t// special case if the weight = 100%\n\t\tif (_reserveWeight == MAX_WEIGHT) return _supply.mul(_amount) / _reserveBalance;\n\n\t\tuint256 result;\n\t\tuint8 precision;\n\t\tuint256 baseN = _amount.add(_reserveBalance);\n\t\t(result, precision) = power(baseN, _reserveBalance, _reserveWeight, MAX_WEIGHT);\n\t\tuint256 temp = _supply.mul(result) >> precision;\n\t\treturn temp - _supply;\n\t}\n\n\t/**\n\t * @dev given a token supply, reserve balance, weight and a sell amount (in the main token),\n\t * calculates the target amount for a given conversion (in the reserve token)\n\t *\n\t * Formula:\n\t * return = _reserveBalance * (1 - (1 - _amount / _supply) ^ (1000000 / _reserveWeight))\n\t *\n\t * @param _supply smart token supply\n\t * @param _reserveBalance reserve balance\n\t * @param _reserveWeight reserve weight, represented in ppm (1-1000000)\n\t * @param _amount amount of smart tokens to get the target amount for\n\t *\n\t * @return reserve token amount\n\t */\n\tfunction saleTargetAmount(\n\t\tuint256 _supply,\n\t\tuint256 _reserveBalance,\n\t\tuint32 _reserveWeight,\n\t\tuint256 _amount\n\t) public view returns (uint256) {\n\t\t// validate input\n\t\trequire(_supply > 0, \"ERR_INVALID_SUPPLY\");\n\t\trequire(_reserveBalance > 0, \"ERR_INVALID_RESERVE_BALANCE\");\n\t\trequire(_reserveWeight > 0 && _reserveWeight <= MAX_WEIGHT, \"ERR_INVALID_RESERVE_WEIGHT\");\n\t\trequire(_amount <= _supply, \"ERR_INVALID_AMOUNT\");\n\n\t\t// special case for 0 sell amount\n\t\tif (_amount == 0) return 0;\n\n\t\t// special case for selling the entire supply\n\t\tif (_amount == _supply) return _reserveBalance;\n\n\t\t// special case if the weight = 100%\n\t\tif (_reserveWeight == MAX_WEIGHT) return _reserveBalance.mul(_amount) / _supply;\n\n\t\tuint256 result;\n\t\tuint8 precision;\n\t\tuint256 baseD = _supply - _amount;\n\t\t(result, precision) = power(_supply, baseD, MAX_WEIGHT, _reserveWeight);\n\t\tuint256 temp1 = _reserveBalance.mul(result);\n\t\tuint256 temp2 = _reserveBalance << precision;\n\t\treturn (temp1 - temp2) / result;\n\t}\n\n\t/**\n\t * @dev given two reserve balances/weights and a sell amount (in the first reserve token),\n\t * calculates the target amount for a conversion from the source reserve token to the target reserve token\n\t *\n\t * Formula:\n\t * return = _targetReserveBalance * (1 - (_sourceReserveBalance / (_sourceReserveBalance + _amount)) ^ (_sourceReserveWeight / _targetReserveWeight))\n\t *\n\t * @param _sourceReserveBalance source reserve balance\n\t * @param _sourceReserveWeight source reserve weight, represented in ppm (1-1000000)\n\t * @param _targetReserveBalance target reserve balance\n\t * @param _targetReserveWeight target reserve weight, represented in ppm (1-1000000)\n\t * @param _amount source reserve amount\n\t *\n\t * @return target reserve amount\n\t */\n\tfunction crossReserveTargetAmount(\n\t\tuint256 _sourceReserveBalance,\n\t\tuint32 _sourceReserveWeight,\n\t\tuint256 _targetReserveBalance,\n\t\tuint32 _targetReserveWeight,\n\t\tuint256 _amount\n\t) public view returns (uint256) {\n\t\t// validate input\n\t\trequire(_sourceReserveBalance > 0 && _targetReserveBalance > 0, \"ERR_INVALID_RESERVE_BALANCE\");\n\t\trequire(\n\t\t\t_sourceReserveWeight > 0 && _sourceReserveWeight <= MAX_WEIGHT && _targetReserveWeight > 0 && _targetReserveWeight <= MAX_WEIGHT,\n\t\t\t\"ERR_INVALID_RESERVE_WEIGHT\"\n\t\t);\n\n\t\t// special case for equal weights\n\t\tif (_sourceReserveWeight == _targetReserveWeight) return _targetReserveBalance.mul(_amount) / _sourceReserveBalance.add(_amount);\n\n\t\tuint256 result;\n\t\tuint8 precision;\n\t\tuint256 baseN = _sourceReserveBalance.add(_amount);\n\t\t(result, precision) = power(baseN, _sourceReserveBalance, _sourceReserveWeight, _targetReserveWeight);\n\t\tuint256 temp1 = _targetReserveBalance.mul(result);\n\t\tuint256 temp2 = _targetReserveBalance << precision;\n\t\treturn (temp1 - temp2) / result;\n\t}\n\n\t/**\n\t * @dev given a smart token supply, reserve balance, reserve ratio and an amount of requested smart tokens,\n\t * calculates the amount of reserve tokens required for purchasing the given amount of smart tokens\n\t *\n\t * Formula:\n\t * return = _reserveBalance * (((_supply + _amount) / _supply) ^ (MAX_WEIGHT / _reserveRatio) - 1)\n\t *\n\t * @param _supply smart token supply\n\t * @param _reserveBalance reserve balance\n\t * @param _reserveRatio reserve ratio, represented in ppm (2-2000000)\n\t * @param _amount requested amount of smart tokens\n\t *\n\t * @return reserve token amount\n\t */\n\tfunction fundCost(\n\t\tuint256 _supply,\n\t\tuint256 _reserveBalance,\n\t\tuint32 _reserveRatio,\n\t\tuint256 _amount\n\t) public view returns (uint256) {\n\t\t// validate input\n\t\trequire(_supply > 0, \"ERR_INVALID_SUPPLY\");\n\t\trequire(_reserveBalance > 0, \"ERR_INVALID_RESERVE_BALANCE\");\n\t\trequire(_reserveRatio > 1 && _reserveRatio <= MAX_WEIGHT * 2, \"ERR_INVALID_RESERVE_RATIO\");\n\n\t\t// special case for 0 amount\n\t\tif (_amount == 0) return 0;\n\n\t\t// special case if the reserve ratio = 100%\n\t\tif (_reserveRatio == MAX_WEIGHT) return (_amount.mul(_reserveBalance) - 1) / _supply + 1;\n\n\t\tuint256 result;\n\t\tuint8 precision;\n\t\tuint256 baseN = _supply.add(_amount);\n\t\t(result, precision) = power(baseN, _supply, MAX_WEIGHT, _reserveRatio);\n\t\tuint256 temp = ((_reserveBalance.mul(result) - 1) >> precision) + 1;\n\t\treturn temp - _reserveBalance;\n\t}\n\n\t/**\n\t * @dev given a smart token supply, reserve balance, reserve ratio and an amount of reserve tokens to fund with,\n\t * calculates the amount of smart tokens received for purchasing with the given amount of reserve tokens\n\t *\n\t * Formula:\n\t * return = _supply * ((_amount / _reserveBalance + 1) ^ (_reserveRatio / MAX_WEIGHT) - 1)\n\t *\n\t * @param _supply smart token supply\n\t * @param _reserveBalance reserve balance\n\t * @param _reserveRatio reserve ratio, represented in ppm (2-2000000)\n\t * @param _amount amount of reserve tokens to fund with\n\t *\n\t * @return smart token amount\n\t */\n\tfunction fundSupplyAmount(\n\t\tuint256 _supply,\n\t\tuint256 _reserveBalance,\n\t\tuint32 _reserveRatio,\n\t\tuint256 _amount\n\t) public view returns (uint256) {\n\t\t// validate input\n\t\trequire(_supply > 0, \"ERR_INVALID_SUPPLY\");\n\t\trequire(_reserveBalance > 0, \"ERR_INVALID_RESERVE_BALANCE\");\n\t\trequire(_reserveRatio > 1 && _reserveRatio <= MAX_WEIGHT * 2, \"ERR_INVALID_RESERVE_RATIO\");\n\n\t\t// special case for 0 amount\n\t\tif (_amount == 0) return 0;\n\n\t\t// special case if the reserve ratio = 100%\n\t\tif (_reserveRatio == MAX_WEIGHT) return _amount.mul(_supply) / _reserveBalance;\n\n\t\tuint256 result;\n\t\tuint8 precision;\n\t\tuint256 baseN = _reserveBalance.add(_amount);\n\t\t(result, precision) = power(baseN, _reserveBalance, _reserveRatio, MAX_WEIGHT);\n\t\tuint256 temp = _supply.mul(result) >> precision;\n\t\treturn temp - _supply;\n\t}\n\n\t/**\n\t * @dev given a smart token supply, reserve balance, reserve ratio and an amount of smart tokens to liquidate,\n\t * calculates the amount of reserve tokens received for selling the given amount of smart tokens\n\t *\n\t * Formula:\n\t * return = _reserveBalance * (1 - ((_supply - _amount) / _supply) ^ (MAX_WEIGHT / _reserveRatio))\n\t *\n\t * @param _supply smart token supply\n\t * @param _reserveBalance reserve balance\n\t * @param _reserveRatio reserve ratio, represented in ppm (2-2000000)\n\t * @param _amount amount of smart tokens to liquidate\n\t *\n\t * @return reserve token amount\n\t */\n\tfunction liquidateReserveAmount(\n\t\tuint256 _supply,\n\t\tuint256 _reserveBalance,\n\t\tuint32 _reserveRatio,\n\t\tuint256 _amount\n\t) public view returns (uint256) {\n\t\t// validate input\n\t\trequire(_supply > 0, \"ERR_INVALID_SUPPLY\");\n\t\trequire(_reserveBalance > 0, \"ERR_INVALID_RESERVE_BALANCE\");\n\t\trequire(_reserveRatio > 1 && _reserveRatio <= MAX_WEIGHT * 2, \"ERR_INVALID_RESERVE_RATIO\");\n\t\trequire(_amount <= _supply, \"ERR_INVALID_AMOUNT\");\n\n\t\t// special case for 0 amount\n\t\tif (_amount == 0) return 0;\n\n\t\t// special case for liquidating the entire supply\n\t\tif (_amount == _supply) return _reserveBalance;\n\n\t\t// special case if the reserve ratio = 100%\n\t\tif (_reserveRatio == MAX_WEIGHT) return _amount.mul(_reserveBalance) / _supply;\n\n\t\tuint256 result;\n\t\tuint8 precision;\n\t\tuint256 baseD = _supply - _amount;\n\t\t(result, precision) = power(_supply, baseD, MAX_WEIGHT, _reserveRatio);\n\t\tuint256 temp1 = _reserveBalance.mul(result);\n\t\tuint256 temp2 = _reserveBalance << precision;\n\t\treturn (temp1 - temp2) / result;\n\t}\n\n\t/**\n\t * @dev The arbitrage incentive is to convert to the point where the on-chain price is equal to the off-chain price.\n\t * We want this operation to also impact the primary reserve balance becoming equal to the primary reserve staked balance.\n\t * In other words, we want the arbitrager to convert the difference between the reserve balance and the reserve staked balance.\n\t *\n\t * Formula input:\n\t * - let t denote the primary reserve token staked balance\n\t * - let s denote the primary reserve token balance\n\t * - let r denote the secondary reserve token balance\n\t * - let q denote the numerator of the rate between the tokens\n\t * - let p denote the denominator of the rate between the tokens\n\t * Where p primary tokens are equal to q secondary tokens\n\t *\n\t * Formula output:\n\t * - compute x = W(t / r * q / p * log(s / t)) / log(s / t)\n\t * - return x / (1 + x) as the weight of the primary reserve token\n\t * - return 1 / (1 + x) as the weight of the secondary reserve token\n\t * Where W is the Lambert W Function\n\t *\n\t * If the rate-provider provides the rates for a common unit, for example:\n\t * - P = 2 ==> 2 primary reserve tokens = 1 ether\n\t * - Q = 3 ==> 3 secondary reserve tokens = 1 ether\n\t * Then you can simply use p = P and q = Q\n\t *\n\t * If the rate-provider provides the rates for a single unit, for example:\n\t * - P = 2 ==> 1 primary reserve token = 2 ethers\n\t * - Q = 3 ==> 1 secondary reserve token = 3 ethers\n\t * Then you can simply use p = Q and q = P\n\t *\n\t * @param _primaryReserveStakedBalance the primary reserve token staked balance\n\t * @param _primaryReserveBalance the primary reserve token balance\n\t * @param _secondaryReserveBalance the secondary reserve token balance\n\t * @param _reserveRateNumerator the numerator of the rate between the tokens\n\t * @param _reserveRateDenominator the denominator of the rate between the tokens\n\t *\n\t * Note that `numerator / denominator` should represent the amount of secondary tokens equal to one primary token\n\t *\n\t * @return the weight of the primary reserve token and the weight of the secondary reserve token, both in ppm (0-1000000)\n\t */\n\tfunction balancedWeights(\n\t\tuint256 _primaryReserveStakedBalance,\n\t\tuint256 _primaryReserveBalance,\n\t\tuint256 _secondaryReserveBalance,\n\t\tuint256 _reserveRateNumerator,\n\t\tuint256 _reserveRateDenominator\n\t) public view returns (uint32, uint32) {\n\t\tif (_primaryReserveStakedBalance == _primaryReserveBalance)\n\t\t\trequire(_primaryReserveStakedBalance > 0 || _secondaryReserveBalance > 0, \"ERR_INVALID_RESERVE_BALANCE\");\n\t\telse require(_primaryReserveStakedBalance > 0 && _primaryReserveBalance > 0 && _secondaryReserveBalance > 0, \"ERR_INVALID_RESERVE_BALANCE\");\n\t\trequire(_reserveRateNumerator > 0 && _reserveRateDenominator > 0, \"ERR_INVALID_RESERVE_RATE\");\n\n\t\tuint256 tq = _primaryReserveStakedBalance.mul(_reserveRateNumerator);\n\t\tuint256 rp = _secondaryReserveBalance.mul(_reserveRateDenominator);\n\n\t\tif (_primaryReserveStakedBalance < _primaryReserveBalance)\n\t\t\treturn balancedWeightsByStake(_primaryReserveBalance, _primaryReserveStakedBalance, tq, rp, true);\n\n\t\tif (_primaryReserveStakedBalance > _primaryReserveBalance)\n\t\t\treturn balancedWeightsByStake(_primaryReserveStakedBalance, _primaryReserveBalance, tq, rp, false);\n\n\t\treturn normalizedWeights(tq, rp);\n\t}\n\n\t/**\n\t * @dev General Description:\n\t * Determine a value of precision.\n\t * Calculate an integer approximation of (_baseN / _baseD) ^ (_expN / _expD) * 2 ^ precision.\n\t * Return the result along with the precision used.\n\t *\n\t * Detailed Description:\n\t * Instead of calculating \"base ^ exp\", we calculate \"e ^ (log(base) * exp)\".\n\t * The value of \"log(base)\" is represented with an integer slightly smaller than \"log(base) * 2 ^ precision\".\n\t * The larger \"precision\" is, the more accurately this value represents the real value.\n\t * However, the larger \"precision\" is, the more bits are required in order to store this value.\n\t * And the exponentiation function, which takes \"x\" and calculates \"e ^ x\", is limited to a maximum exponent (maximum value of \"x\").\n\t * This maximum exponent depends on the \"precision\" used, and it is given by \"maxExpArray[precision] >> (MAX_PRECISION - precision)\".\n\t * Hence we need to determine the highest precision which can be used for the given input, before calling the exponentiation function.\n\t * This allows us to compute \"base ^ exp\" with maximum accuracy and without exceeding 256 bits in any of the intermediate computations.\n\t * This functions assumes that \"_expN < 2 ^ 256 / log(MAX_NUM - 1)\", otherwise the multiplication should be replaced with a \"safeMul\".\n\t * Since we rely on unsigned-integer arithmetic and \"base < 1\" ==> \"log(base) < 0\", this function does not support \"_baseN < _baseD\".\n\t */\n\tfunction power(\n\t\tuint256 _baseN,\n\t\tuint256 _baseD,\n\t\tuint32 _expN,\n\t\tuint32 _expD\n\t) internal view returns (uint256, uint8) {\n\t\trequire(_baseN < MAX_NUM);\n\n\t\tuint256 baseLog;\n\t\tuint256 base = (_baseN * FIXED_1) / _baseD;\n\t\tif (base < OPT_LOG_MAX_VAL) {\n\t\t\tbaseLog = optimalLog(base);\n\t\t} else {\n\t\t\tbaseLog = generalLog(base);\n\t\t}\n\n\t\tuint256 baseLogTimesExp = (baseLog * _expN) / _expD;\n\t\tif (baseLogTimesExp < OPT_EXP_MAX_VAL) {\n\t\t\treturn (optimalExp(baseLogTimesExp), MAX_PRECISION);\n\t\t} else {\n\t\t\tuint8 precision = findPositionInMaxExpArray(baseLogTimesExp);\n\t\t\treturn (generalExp(baseLogTimesExp >> (MAX_PRECISION - precision), precision), precision);\n\t\t}\n\t}\n\n\t/**\n\t * @dev computes log(x / FIXED_1) * FIXED_1.\n\t * This functions assumes that \"x >= FIXED_1\", because the output would be negative otherwise.\n\t */\n\tfunction generalLog(uint256 x) internal pure returns (uint256) {\n\t\tuint256 res = 0;\n\n\t\t// If x >= 2, then we compute the integer part of log2(x), which is larger than 0.\n\t\tif (x >= FIXED_2) {\n\t\t\tuint8 count = floorLog2(x / FIXED_1);\n\t\t\tx >>= count; // now x < 2\n\t\t\tres = count * FIXED_1;\n\t\t}\n\n\t\t// If x > 1, then we compute the fraction part of log2(x), which is larger than 0.\n\t\tif (x > FIXED_1) {\n\t\t\tfor (uint8 i = MAX_PRECISION; i > 0; --i) {\n\t\t\t\tx = (x * x) / FIXED_1; // now 1 < x < 4\n\t\t\t\tif (x >= FIXED_2) {\n\t\t\t\t\tx >>= 1; // now 1 < x < 2\n\t\t\t\t\tres += ONE << (i - 1);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn (res * LN2_NUMERATOR) / LN2_DENOMINATOR;\n\t}\n\n\t/**\n\t * @dev computes the largest integer smaller than or equal to the binary logarithm of the input.\n\t */\n\tfunction floorLog2(uint256 _n) internal pure returns (uint8) {\n\t\tuint8 res = 0;\n\n\t\tif (_n < 256) {\n\t\t\t// At most 8 iterations\n\t\t\twhile (_n > 1) {\n\t\t\t\t_n >>= 1;\n\t\t\t\tres += 1;\n\t\t\t}\n\t\t} else {\n\t\t\t// Exactly 8 iterations\n\t\t\tfor (uint8 s = 128; s > 0; s >>= 1) {\n\t\t\t\tif (_n >= (ONE << s)) {\n\t\t\t\t\t_n >>= s;\n\t\t\t\t\tres |= s;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn res;\n\t}\n\n\t/**\n\t * @dev the global \"maxExpArray\" is sorted in descending order, and therefore the following statements are equivalent:\n\t * - This function finds the position of [the smallest value in \"maxExpArray\" larger than or equal to \"x\"]\n\t * - This function finds the highest position of [a value in \"maxExpArray\" larger than or equal to \"x\"]\n\t */\n\tfunction findPositionInMaxExpArray(uint256 _x) internal view returns (uint8) {\n\t\tuint8 lo = MIN_PRECISION;\n\t\tuint8 hi = MAX_PRECISION;\n\n\t\twhile (lo + 1 < hi) {\n\t\t\tuint8 mid = (lo + hi) / 2;\n\t\t\tif (maxExpArray[mid] >= _x) lo = mid;\n\t\t\telse hi = mid;\n\t\t}\n\n\t\tif (maxExpArray[hi] >= _x) return hi;\n\t\tif (maxExpArray[lo] >= _x) return lo;\n\n\t\trequire(false);\n\t}\n\n\t/**\n\t * @dev this function can be auto-generated by the script 'PrintFunctionGeneralExp.py'.\n\t * it approximates \"e ^ x\" via maclaurin summation: \"(x^0)/0! + (x^1)/1! + ... + (x^n)/n!\".\n\t * it returns \"e ^ (x / 2 ^ precision) * 2 ^ precision\", that is, the result is upshifted for accuracy.\n\t * the global \"maxExpArray\" maps each \"precision\" to \"((maximumExponent + 1) << (MAX_PRECISION - precision)) - 1\".\n\t * the maximum permitted value for \"x\" is therefore given by \"maxExpArray[precision] >> (MAX_PRECISION - precision)\".\n\t */\n\tfunction generalExp(uint256 _x, uint8 _precision) internal pure returns (uint256) {\n\t\tuint256 xi = _x;\n\t\tuint256 res = 0;\n\n\t\txi = (xi * _x) >> _precision;\n\t\tres += xi * 0x3442c4e6074a82f1797f72ac0000000; // add x^02 * (33! / 02!)\n\t\txi = (xi * _x) >> _precision;\n\t\tres += xi * 0x116b96f757c380fb287fd0e40000000; // add x^03 * (33! / 03!)\n\t\txi = (xi * _x) >> _precision;\n\t\tres += xi * 0x045ae5bdd5f0e03eca1ff4390000000; // add x^04 * (33! / 04!)\n\t\txi = (xi * _x) >> _precision;\n\t\tres += xi * 0x00defabf91302cd95b9ffda50000000; // add x^05 * (33! / 05!)\n\t\txi = (xi * _x) >> _precision;\n\t\tres += xi * 0x002529ca9832b22439efff9b8000000; // add x^06 * (33! / 06!)\n\t\txi = (xi * _x) >> _precision;\n\t\tres += xi * 0x00054f1cf12bd04e516b6da88000000; // add x^07 * (33! / 07!)\n\t\txi = (xi * _x) >> _precision;\n\t\tres += xi * 0x0000a9e39e257a09ca2d6db51000000; // add x^08 * (33! / 08!)\n\t\txi = (xi * _x) >> _precision;\n\t\tres += xi * 0x000012e066e7b839fa050c309000000; // add x^09 * (33! / 09!)\n\t\txi = (xi * _x) >> _precision;\n\t\tres += xi * 0x000001e33d7d926c329a1ad1a800000; // add x^10 * (33! / 10!)\n\t\txi = (xi * _x) >> _precision;\n\t\tres += xi * 0x0000002bee513bdb4a6b19b5f800000; // add x^11 * (33! / 11!)\n\t\txi = (xi * _x) >> _precision;\n\t\tres += xi * 0x00000003a9316fa79b88eccf2a00000; // add x^12 * (33! / 12!)\n\t\txi = (xi * _x) >> _precision;\n\t\tres += xi * 0x0000000048177ebe1fa812375200000; // add x^13 * (33! / 13!)\n\t\txi = (xi * _x) >> _precision;\n\t\tres += xi * 0x0000000005263fe90242dcbacf00000; // add x^14 * (33! / 14!)\n\t\txi = (xi * _x) >> _precision;\n\t\tres += xi * 0x000000000057e22099c030d94100000; // add x^15 * (33! / 15!)\n\t\txi = (xi * _x) >> _precision;\n\t\tres += xi * 0x0000000000057e22099c030d9410000; // add x^16 * (33! / 16!)\n\t\txi = (xi * _x) >> _precision;\n\t\tres += xi * 0x00000000000052b6b54569976310000; // add x^17 * (33! / 17!)\n\t\txi = (xi * _x) >> _precision;\n\t\tres += xi * 0x00000000000004985f67696bf748000; // add x^18 * (33! / 18!)\n\t\txi = (xi * _x) >> _precision;\n\t\tres += xi * 0x000000000000003dea12ea99e498000; // add x^19 * (33! / 19!)\n\t\txi = (xi * _x) >> _precision;\n\t\tres += xi * 0x00000000000000031880f2214b6e000; // add x^20 * (33! / 20!)\n\t\txi = (xi * _x) >> _precision;\n\t\tres += xi * 0x000000000000000025bcff56eb36000; // add x^21 * (33! / 21!)\n\t\txi = (xi * _x) >> _precision;\n\t\tres += xi * 0x000000000000000001b722e10ab1000; // add x^22 * (33! / 22!)\n\t\txi = (xi * _x) >> _precision;\n\t\tres += xi * 0x0000000000000000001317c70077000; // add x^23 * (33! / 23!)\n\t\txi = (xi * _x) >> _precision;\n\t\tres += xi * 0x00000000000000000000cba84aafa00; // add x^24 * (33! / 24!)\n\t\txi = (xi * _x) >> _precision;\n\t\tres += xi * 0x00000000000000000000082573a0a00; // add x^25 * (33! / 25!)\n\t\txi = (xi * _x) >> _precision;\n\t\tres += xi * 0x00000000000000000000005035ad900; // add x^26 * (33! / 26!)\n\t\txi = (xi * _x) >> _precision;\n\t\tres += xi * 0x000000000000000000000002f881b00; // add x^27 * (33! / 27!)\n\t\txi = (xi * _x) >> _precision;\n\t\tres += xi * 0x0000000000000000000000001b29340; // add x^28 * (33! / 28!)\n\t\txi = (xi * _x) >> _precision;\n\t\tres += xi * 0x00000000000000000000000000efc40; // add x^29 * (33! / 29!)\n\t\txi = (xi * _x) >> _precision;\n\t\tres += xi * 0x0000000000000000000000000007fe0; // add x^30 * (33! / 30!)\n\t\txi = (xi * _x) >> _precision;\n\t\tres += xi * 0x0000000000000000000000000000420; // add x^31 * (33! / 31!)\n\t\txi = (xi * _x) >> _precision;\n\t\tres += xi * 0x0000000000000000000000000000021; // add x^32 * (33! / 32!)\n\t\txi = (xi * _x) >> _precision;\n\t\tres += xi * 0x0000000000000000000000000000001; // add x^33 * (33! / 33!)\n\n\t\treturn res / 0x688589cc0e9505e2f2fee5580000000 + _x + (ONE << _precision); // divide by 33! and then add x^1 / 1! + x^0 / 0!\n\t}\n\n\t/**\n\t * @dev computes log(x / FIXED_1) * FIXED_1\n\t * Input range: FIXED_1 <= x <= OPT_LOG_MAX_VAL - 1\n\t * Auto-generated via 'PrintFunctionOptimalLog.py'\n\t * Detailed description:\n\t * - Rewrite the input as a product of natural exponents and a single residual r, such that 1 < r < 2\n\t * - The natural logarithm of each (pre-calculated) exponent is the degree of the exponent\n\t * - The natural logarithm of r is calculated via Taylor series for log(1 + x), where x = r - 1\n\t * - The natural logarithm of the input is calculated by summing up the intermediate results above\n\t * - For example: log(250) = log(e^4 * e^1 * e^0.5 * 1.021692859) = 4 + 1 + 0.5 + log(1 + 0.021692859)\n\t */\n\tfunction optimalLog(uint256 x) internal pure returns (uint256) {\n\t\tuint256 res = 0;\n\n\t\tuint256 y;\n\t\tuint256 z;\n\t\tuint256 w;\n\n\t\tif (x >= 0xd3094c70f034de4b96ff7d5b6f99fcd8) {\n\t\t\tres += 0x40000000000000000000000000000000;\n\t\t\tx = (x * FIXED_1) / 0xd3094c70f034de4b96ff7d5b6f99fcd8;\n\t\t} // add 1 / 2^1\n\t\tif (x >= 0xa45af1e1f40c333b3de1db4dd55f29a7) {\n\t\t\tres += 0x20000000000000000000000000000000;\n\t\t\tx = (x * FIXED_1) / 0xa45af1e1f40c333b3de1db4dd55f29a7;\n\t\t} // add 1 / 2^2\n\t\tif (x >= 0x910b022db7ae67ce76b441c27035c6a1) {\n\t\t\tres += 0x10000000000000000000000000000000;\n\t\t\tx = (x * FIXED_1) / 0x910b022db7ae67ce76b441c27035c6a1;\n\t\t} // add 1 / 2^3\n\t\tif (x >= 0x88415abbe9a76bead8d00cf112e4d4a8) {\n\t\t\tres += 0x08000000000000000000000000000000;\n\t\t\tx = (x * FIXED_1) / 0x88415abbe9a76bead8d00cf112e4d4a8;\n\t\t} // add 1 / 2^4\n\t\tif (x >= 0x84102b00893f64c705e841d5d4064bd3) {\n\t\t\tres += 0x04000000000000000000000000000000;\n\t\t\tx = (x * FIXED_1) / 0x84102b00893f64c705e841d5d4064bd3;\n\t\t} // add 1 / 2^5\n\t\tif (x >= 0x8204055aaef1c8bd5c3259f4822735a2) {\n\t\t\tres += 0x02000000000000000000000000000000;\n\t\t\tx = (x * FIXED_1) / 0x8204055aaef1c8bd5c3259f4822735a2;\n\t\t} // add 1 / 2^6\n\t\tif (x >= 0x810100ab00222d861931c15e39b44e99) {\n\t\t\tres += 0x01000000000000000000000000000000;\n\t\t\tx = (x * FIXED_1) / 0x810100ab00222d861931c15e39b44e99;\n\t\t} // add 1 / 2^7\n\t\tif (x >= 0x808040155aabbbe9451521693554f733) {\n\t\t\tres += 0x00800000000000000000000000000000;\n\t\t\tx = (x * FIXED_1) / 0x808040155aabbbe9451521693554f733;\n\t\t} // add 1 / 2^8\n\n\t\tz = y = x - FIXED_1;\n\t\tw = (y * y) / FIXED_1;\n\t\tres += (z * (0x100000000000000000000000000000000 - y)) / 0x100000000000000000000000000000000;\n\t\tz = (z * w) / FIXED_1; // add y^01 / 01 - y^02 / 02\n\t\tres += (z * (0x0aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa - y)) / 0x200000000000000000000000000000000;\n\t\tz = (z * w) / FIXED_1; // add y^03 / 03 - y^04 / 04\n\t\tres += (z * (0x099999999999999999999999999999999 - y)) / 0x300000000000000000000000000000000;\n\t\tz = (z * w) / FIXED_1; // add y^05 / 05 - y^06 / 06\n\t\tres += (z * (0x092492492492492492492492492492492 - y)) / 0x400000000000000000000000000000000;\n\t\tz = (z * w) / FIXED_1; // add y^07 / 07 - y^08 / 08\n\t\tres += (z * (0x08e38e38e38e38e38e38e38e38e38e38e - y)) / 0x500000000000000000000000000000000;\n\t\tz = (z * w) / FIXED_1; // add y^09 / 09 - y^10 / 10\n\t\tres += (z * (0x08ba2e8ba2e8ba2e8ba2e8ba2e8ba2e8b - y)) / 0x600000000000000000000000000000000;\n\t\tz = (z * w) / FIXED_1; // add y^11 / 11 - y^12 / 12\n\t\tres += (z * (0x089d89d89d89d89d89d89d89d89d89d89 - y)) / 0x700000000000000000000000000000000;\n\t\tz = (z * w) / FIXED_1; // add y^13 / 13 - y^14 / 14\n\t\tres += (z * (0x088888888888888888888888888888888 - y)) / 0x800000000000000000000000000000000; // add y^15 / 15 - y^16 / 16\n\n\t\treturn res;\n\t}\n\n\t/**\n\t * @dev computes e ^ (x / FIXED_1) * FIXED_1\n\t * input range: 0 <= x <= OPT_EXP_MAX_VAL - 1\n\t * auto-generated via 'PrintFunctionOptimalExp.py'\n\t * Detailed description:\n\t * - Rewrite the input as a sum of binary exponents and a single residual r, as small as possible\n\t * - The exponentiation of each binary exponent is given (pre-calculated)\n\t * - The exponentiation of r is calculated via Taylor series for e^x, where x = r\n\t * - The exponentiation of the input is calculated by multiplying the intermediate results above\n\t * - For example: e^5.521692859 = e^(4 + 1 + 0.5 + 0.021692859) = e^4 * e^1 * e^0.5 * e^0.021692859\n\t */\n\tfunction optimalExp(uint256 x) internal pure returns (uint256) {\n\t\tuint256 res = 0;\n\n\t\tuint256 y;\n\t\tuint256 z;\n\n\t\tz = y = x % 0x10000000000000000000000000000000; // get the input modulo 2^(-3)\n\t\tz = (z * y) / FIXED_1;\n\t\tres += z * 0x10e1b3be415a0000; // add y^02 * (20! / 02!)\n\t\tz = (z * y) / FIXED_1;\n\t\tres += z * 0x05a0913f6b1e0000; // add y^03 * (20! / 03!)\n\t\tz = (z * y) / FIXED_1;\n\t\tres += z * 0x0168244fdac78000; // add y^04 * (20! / 04!)\n\t\tz = (z * y) / FIXED_1;\n\t\tres += z * 0x004807432bc18000; // add y^05 * (20! / 05!)\n\t\tz = (z * y) / FIXED_1;\n\t\tres += z * 0x000c0135dca04000; // add y^06 * (20! / 06!)\n\t\tz = (z * y) / FIXED_1;\n\t\tres += z * 0x0001b707b1cdc000; // add y^07 * (20! / 07!)\n\t\tz = (z * y) / FIXED_1;\n\t\tres += z * 0x000036e0f639b800; // add y^08 * (20! / 08!)\n\t\tz = (z * y) / FIXED_1;\n\t\tres += z * 0x00000618fee9f800; // add y^09 * (20! / 09!)\n\t\tz = (z * y) / FIXED_1;\n\t\tres += z * 0x0000009c197dcc00; // add y^10 * (20! / 10!)\n\t\tz = (z * y) / FIXED_1;\n\t\tres += z * 0x0000000e30dce400; // add y^11 * (20! / 11!)\n\t\tz = (z * y) / FIXED_1;\n\t\tres += z * 0x000000012ebd1300; // add y^12 * (20! / 12!)\n\t\tz = (z * y) / FIXED_1;\n\t\tres += z * 0x0000000017499f00; // add y^13 * (20! / 13!)\n\t\tz = (z * y) / FIXED_1;\n\t\tres += z * 0x0000000001a9d480; // add y^14 * (20! / 14!)\n\t\tz = (z * y) / FIXED_1;\n\t\tres += z * 0x00000000001c6380; // add y^15 * (20! / 15!)\n\t\tz = (z * y) / FIXED_1;\n\t\tres += z * 0x000000000001c638; // add y^16 * (20! / 16!)\n\t\tz = (z * y) / FIXED_1;\n\t\tres += z * 0x0000000000001ab8; // add y^17 * (20! / 17!)\n\t\tz = (z * y) / FIXED_1;\n\t\tres += z * 0x000000000000017c; // add y^18 * (20! / 18!)\n\t\tz = (z * y) / FIXED_1;\n\t\tres += z * 0x0000000000000014; // add y^19 * (20! / 19!)\n\t\tz = (z * y) / FIXED_1;\n\t\tres += z * 0x0000000000000001; // add y^20 * (20! / 20!)\n\t\tres = res / 0x21c3677c82b40000 + y + FIXED_1; // divide by 20! and then add y^1 / 1! + y^0 / 0!\n\n\t\tif ((x & 0x010000000000000000000000000000000) != 0) res = (res * 0x1c3d6a24ed82218787d624d3e5eba95f9) / 0x18ebef9eac820ae8682b9793ac6d1e776; // multiply by e^2^(-3)\n\t\tif ((x & 0x020000000000000000000000000000000) != 0) res = (res * 0x18ebef9eac820ae8682b9793ac6d1e778) / 0x1368b2fc6f9609fe7aceb46aa619baed4; // multiply by e^2^(-2)\n\t\tif ((x & 0x040000000000000000000000000000000) != 0) res = (res * 0x1368b2fc6f9609fe7aceb46aa619baed5) / 0x0bc5ab1b16779be3575bd8f0520a9f21f; // multiply by e^2^(-1)\n\t\tif ((x & 0x080000000000000000000000000000000) != 0) res = (res * 0x0bc5ab1b16779be3575bd8f0520a9f21e) / 0x0454aaa8efe072e7f6ddbab84b40a55c9; // multiply by e^2^(+0)\n\t\tif ((x & 0x100000000000000000000000000000000) != 0) res = (res * 0x0454aaa8efe072e7f6ddbab84b40a55c5) / 0x00960aadc109e7a3bf4578099615711ea; // multiply by e^2^(+1)\n\t\tif ((x & 0x200000000000000000000000000000000) != 0) res = (res * 0x00960aadc109e7a3bf4578099615711d7) / 0x0002bf84208204f5977f9a8cf01fdce3d; // multiply by e^2^(+2)\n\t\tif ((x & 0x400000000000000000000000000000000) != 0) res = (res * 0x0002bf84208204f5977f9a8cf01fdc307) / 0x0000003c6ab775dd0b95b4cbee7e65d11; // multiply by e^2^(+3)\n\n\t\treturn res;\n\t}\n\n\t/**\n\t * @dev computes W(x / FIXED_1) / (x / FIXED_1) * FIXED_1\n\t */\n\tfunction lowerStake(uint256 _x) internal view returns (uint256) {\n\t\tif (_x <= LAMBERT_CONV_RADIUS) return lambertPos1(_x);\n\t\tif (_x <= LAMBERT_POS2_MAXVAL) return lambertPos2(_x);\n\t\tif (_x <= LAMBERT_POS3_MAXVAL) return lambertPos3(_x);\n\t\trequire(false);\n\t}\n\n\t/**\n\t * @dev computes W(-x / FIXED_1) / (-x / FIXED_1) * FIXED_1\n\t */\n\tfunction higherStake(uint256 _x) internal pure returns (uint256) {\n\t\tif (_x <= LAMBERT_CONV_RADIUS) return lambertNeg1(_x);\n\t\treturn (FIXED_1 * FIXED_1) / _x;\n\t}\n\n\t/**\n\t * @dev computes W(x / FIXED_1) / (x / FIXED_1) * FIXED_1\n\t * input range: 1 <= x <= 1 / e * FIXED_1\n\t * auto-generated via 'PrintFunctionLambertPos1.py'\n\t */\n\tfunction lambertPos1(uint256 _x) internal pure returns (uint256) {\n\t\tuint256 xi = _x;\n\t\tuint256 res = (FIXED_1 - _x) * 0xde1bc4d19efcac82445da75b00000000; // x^(1-1) * (34! * 1^(1-1) / 1!) - x^(2-1) * (34! * 2^(2-1) / 2!)\n\n\t\txi = (xi * _x) / FIXED_1;\n\t\tres += xi * 0x00000000014d29a73a6e7b02c3668c7b0880000000; // add x^(03-1) * (34! * 03^(03-1) / 03!)\n\t\txi = (xi * _x) / FIXED_1;\n\t\tres -= xi * 0x0000000002504a0cd9a7f7215b60f9be4800000000; // sub x^(04-1) * (34! * 04^(04-1) / 04!)\n\t\txi = (xi * _x) / FIXED_1;\n\t\tres += xi * 0x000000000484d0a1191c0ead267967c7a4a0000000; // add x^(05-1) * (34! * 05^(05-1) / 05!)\n\t\txi = (xi * _x) / FIXED_1;\n\t\tres -= xi * 0x00000000095ec580d7e8427a4baf26a90a00000000; // sub x^(06-1) * (34! * 06^(06-1) / 06!)\n\t\txi = (xi * _x) / FIXED_1;\n\t\tres += xi * 0x000000001440b0be1615a47dba6e5b3b1f10000000; // add x^(07-1) * (34! * 07^(07-1) / 07!)\n\t\txi = (xi * _x) / FIXED_1;\n\t\tres -= xi * 0x000000002d207601f46a99b4112418400000000000; // sub x^(08-1) * (34! * 08^(08-1) / 08!)\n\t\txi = (xi * _x) / FIXED_1;\n\t\tres += xi * 0x0000000066ebaac4c37c622dd8288a7eb1b2000000; // add x^(09-1) * (34! * 09^(09-1) / 09!)\n\t\txi = (xi * _x) / FIXED_1;\n\t\tres -= xi * 0x00000000ef17240135f7dbd43a1ba10cf200000000; // sub x^(10-1) * (34! * 10^(10-1) / 10!)\n\t\txi = (xi * _x) / FIXED_1;\n\t\tres += xi * 0x0000000233c33c676a5eb2416094a87b3657000000; // add x^(11-1) * (34! * 11^(11-1) / 11!)\n\t\txi = (xi * _x) / FIXED_1;\n\t\tres -= xi * 0x0000000541cde48bc0254bed49a9f8700000000000; // sub x^(12-1) * (34! * 12^(12-1) / 12!)\n\t\txi = (xi * _x) / FIXED_1;\n\t\tres += xi * 0x0000000cae1fad2cdd4d4cb8d73abca0d19a400000; // add x^(13-1) * (34! * 13^(13-1) / 13!)\n\t\txi = (xi * _x) / FIXED_1;\n\t\tres -= xi * 0x0000001edb2aa2f760d15c41ceedba956400000000; // sub x^(14-1) * (34! * 14^(14-1) / 14!)\n\t\txi = (xi * _x) / FIXED_1;\n\t\tres += xi * 0x0000004ba8d20d2dabd386c9529659841a2e200000; // add x^(15-1) * (34! * 15^(15-1) / 15!)\n\t\txi = (xi * _x) / FIXED_1;\n\t\tres -= xi * 0x000000bac08546b867cdaa20000000000000000000; // sub x^(16-1) * (34! * 16^(16-1) / 16!)\n\t\txi = (xi * _x) / FIXED_1;\n\t\tres += xi * 0x000001cfa8e70c03625b9db76c8ebf5bbf24820000; // add x^(17-1) * (34! * 17^(17-1) / 17!)\n\t\txi = (xi * _x) / FIXED_1;\n\t\tres -= xi * 0x000004851d99f82060df265f3309b26f8200000000; // sub x^(18-1) * (34! * 18^(18-1) / 18!)\n\t\txi = (xi * _x) / FIXED_1;\n\t\tres += xi * 0x00000b550d19b129d270c44f6f55f027723cbb0000; // add x^(19-1) * (34! * 19^(19-1) / 19!)\n\t\txi = (xi * _x) / FIXED_1;\n\t\tres -= xi * 0x00001c877dadc761dc272deb65d4b0000000000000; // sub x^(20-1) * (34! * 20^(20-1) / 20!)\n\t\txi = (xi * _x) / FIXED_1;\n\t\tres += xi * 0x000048178ece97479f33a77f2ad22a81b64406c000; // add x^(21-1) * (34! * 21^(21-1) / 21!)\n\t\txi = (xi * _x) / FIXED_1;\n\t\tres -= xi * 0x0000b6ca8268b9d810fedf6695ef2f8a6c00000000; // sub x^(22-1) * (34! * 22^(22-1) / 22!)\n\t\txi = (xi * _x) / FIXED_1;\n\t\tres += xi * 0x0001d0e76631a5b05d007b8cb72a7c7f11ec36e000; // add x^(23-1) * (34! * 23^(23-1) / 23!)\n\t\txi = (xi * _x) / FIXED_1;\n\t\tres -= xi * 0x0004a1c37bd9f85fd9c6c780000000000000000000; // sub x^(24-1) * (34! * 24^(24-1) / 24!)\n\t\txi = (xi * _x) / FIXED_1;\n\t\tres += xi * 0x000bd8369f1b702bf491e2ebfcee08250313b65400; // add x^(25-1) * (34! * 25^(25-1) / 25!)\n\t\txi = (xi * _x) / FIXED_1;\n\t\tres -= xi * 0x001e5c7c32a9f6c70ab2cb59d9225764d400000000; // sub x^(26-1) * (34! * 26^(26-1) / 26!)\n\t\txi = (xi * _x) / FIXED_1;\n\t\tres += xi * 0x004dff5820e165e910f95120a708e742496221e600; // add x^(27-1) * (34! * 27^(27-1) / 27!)\n\t\txi = (xi * _x) / FIXED_1;\n\t\tres -= xi * 0x00c8c8f66db1fced378ee50e536000000000000000; // sub x^(28-1) * (34! * 28^(28-1) / 28!)\n\t\txi = (xi * _x) / FIXED_1;\n\t\tres += xi * 0x0205db8dffff45bfa2938f128f599dbf16eb11d880; // add x^(29-1) * (34! * 29^(29-1) / 29!)\n\t\txi = (xi * _x) / FIXED_1;\n\t\tres -= xi * 0x053a044ebd984351493e1786af38d39a0800000000; // sub x^(30-1) * (34! * 30^(30-1) / 30!)\n\t\txi = (xi * _x) / FIXED_1;\n\t\tres += xi * 0x0d86dae2a4cc0f47633a544479735869b487b59c40; // add x^(31-1) * (34! * 31^(31-1) / 31!)\n\t\txi = (xi * _x) / FIXED_1;\n\t\tres -= xi * 0x231000000000000000000000000000000000000000; // sub x^(32-1) * (34! * 32^(32-1) / 32!)\n\t\txi = (xi * _x) / FIXED_1;\n\t\tres += xi * 0x5b0485a76f6646c2039db1507cdd51b08649680822; // add x^(33-1) * (34! * 33^(33-1) / 33!)\n\t\txi = (xi * _x) / FIXED_1;\n\t\tres -= xi * 0xec983c46c49545bc17efa6b5b0055e242200000000; // sub x^(34-1) * (34! * 34^(34-1) / 34!)\n\n\t\treturn res / 0xde1bc4d19efcac82445da75b00000000; // divide by 34!\n\t}\n\n\t/**\n\t * @dev computes W(x / FIXED_1) / (x / FIXED_1) * FIXED_1\n\t * input range: LAMBERT_CONV_RADIUS + 1 <= x <= LAMBERT_POS2_MAXVAL\n\t */\n\tfunction lambertPos2(uint256 _x) internal view returns (uint256) {\n\t\tuint256 x = _x - LAMBERT_CONV_RADIUS - 1;\n\t\tuint256 i = x / LAMBERT_POS2_SAMPLE;\n\t\tuint256 a = LAMBERT_POS2_SAMPLE * i;\n\t\tuint256 b = LAMBERT_POS2_SAMPLE * (i + 1);\n\t\tuint256 c = lambertArray[i];\n\t\tuint256 d = lambertArray[i + 1];\n\t\treturn (c * (b - x) + d * (x - a)) / LAMBERT_POS2_SAMPLE;\n\t}\n\n\t/**\n\t * @dev computes W(x / FIXED_1) / (x / FIXED_1) * FIXED_1\n\t * input range: LAMBERT_POS2_MAXVAL + 1 <= x <= LAMBERT_POS3_MAXVAL\n\t */\n\tfunction lambertPos3(uint256 _x) internal pure returns (uint256) {\n\t\tuint256 l1 = _x < OPT_LOG_MAX_VAL ? optimalLog(_x) : generalLog(_x);\n\t\tuint256 l2 = l1 < OPT_LOG_MAX_VAL ? optimalLog(l1) : generalLog(l1);\n\t\treturn ((l1 - l2 + (l2 * FIXED_1) / l1) * FIXED_1) / _x;\n\t}\n\n\t/**\n\t * @dev computes W(-x / FIXED_1) / (-x / FIXED_1) * FIXED_1\n\t * input range: 1 <= x <= 1 / e * FIXED_1\n\t * auto-generated via 'PrintFunctionLambertNeg1.py'\n\t */\n\tfunction lambertNeg1(uint256 _x) internal pure returns (uint256) {\n\t\tuint256 xi = _x;\n\t\tuint256 res = 0;\n\n\t\txi = (xi * _x) / FIXED_1;\n\t\tres += xi * 0x00000000014d29a73a6e7b02c3668c7b0880000000; // add x^(03-1) * (34! * 03^(03-1) / 03!)\n\t\txi = (xi * _x) / FIXED_1;\n\t\tres += xi * 0x0000000002504a0cd9a7f7215b60f9be4800000000; // add x^(04-1) * (34! * 04^(04-1) / 04!)\n\t\txi = (xi * _x) / FIXED_1;\n\t\tres += xi * 0x000000000484d0a1191c0ead267967c7a4a0000000; // add x^(05-1) * (34! * 05^(05-1) / 05!)\n\t\txi = (xi * _x) / FIXED_1;\n\t\tres += xi * 0x00000000095ec580d7e8427a4baf26a90a00000000; // add x^(06-1) * (34! * 06^(06-1) / 06!)\n\t\txi = (xi * _x) / FIXED_1;\n\t\tres += xi * 0x000000001440b0be1615a47dba6e5b3b1f10000000; // add x^(07-1) * (34! * 07^(07-1) / 07!)\n\t\txi = (xi * _x) / FIXED_1;\n\t\tres += xi * 0x000000002d207601f46a99b4112418400000000000; // add x^(08-1) * (34! * 08^(08-1) / 08!)\n\t\txi = (xi * _x) / FIXED_1;\n\t\tres += xi * 0x0000000066ebaac4c37c622dd8288a7eb1b2000000; // add x^(09-1) * (34! * 09^(09-1) / 09!)\n\t\txi = (xi * _x) / FIXED_1;\n\t\tres += xi * 0x00000000ef17240135f7dbd43a1ba10cf200000000; // add x^(10-1) * (34! * 10^(10-1) / 10!)\n\t\txi = (xi * _x) / FIXED_1;\n\t\tres += xi * 0x0000000233c33c676a5eb2416094a87b3657000000; // add x^(11-1) * (34! * 11^(11-1) / 11!)\n\t\txi = (xi * _x) / FIXED_1;\n\t\tres += xi * 0x0000000541cde48bc0254bed49a9f8700000000000; // add x^(12-1) * (34! * 12^(12-1) / 12!)\n\t\txi = (xi * _x) / FIXED_1;\n\t\tres += xi * 0x0000000cae1fad2cdd4d4cb8d73abca0d19a400000; // add x^(13-1) * (34! * 13^(13-1) / 13!)\n\t\txi = (xi * _x) / FIXED_1;\n\t\tres += xi * 0x0000001edb2aa2f760d15c41ceedba956400000000; // add x^(14-1) * (34! * 14^(14-1) / 14!)\n\t\txi = (xi * _x) / FIXED_1;\n\t\tres += xi * 0x0000004ba8d20d2dabd386c9529659841a2e200000; // add x^(15-1) * (34! * 15^(15-1) / 15!)\n\t\txi = (xi * _x) / FIXED_1;\n\t\tres += xi * 0x000000bac08546b867cdaa20000000000000000000; // add x^(16-1) * (34! * 16^(16-1) / 16!)\n\t\txi = (xi * _x) / FIXED_1;\n\t\tres += xi * 0x000001cfa8e70c03625b9db76c8ebf5bbf24820000; // add x^(17-1) * (34! * 17^(17-1) / 17!)\n\t\txi = (xi * _x) / FIXED_1;\n\t\tres += xi * 0x000004851d99f82060df265f3309b26f8200000000; // add x^(18-1) * (34! * 18^(18-1) / 18!)\n\t\txi = (xi * _x) / FIXED_1;\n\t\tres += xi * 0x00000b550d19b129d270c44f6f55f027723cbb0000; // add x^(19-1) * (34! * 19^(19-1) / 19!)\n\t\txi = (xi * _x) / FIXED_1;\n\t\tres += xi * 0x00001c877dadc761dc272deb65d4b0000000000000; // add x^(20-1) * (34! * 20^(20-1) / 20!)\n\t\txi = (xi * _x) / FIXED_1;\n\t\tres += xi * 0x000048178ece97479f33a77f2ad22a81b64406c000; // add x^(21-1) * (34! * 21^(21-1) / 21!)\n\t\txi = (xi * _x) / FIXED_1;\n\t\tres += xi * 0x0000b6ca8268b9d810fedf6695ef2f8a6c00000000; // add x^(22-1) * (34! * 22^(22-1) / 22!)\n\t\txi = (xi * _x) / FIXED_1;\n\t\tres += xi * 0x0001d0e76631a5b05d007b8cb72a7c7f11ec36e000; // add x^(23-1) * (34! * 23^(23-1) / 23!)\n\t\txi = (xi * _x) / FIXED_1;\n\t\tres += xi * 0x0004a1c37bd9f85fd9c6c780000000000000000000; // add x^(24-1) * (34! * 24^(24-1) / 24!)\n\t\txi = (xi * _x) / FIXED_1;\n\t\tres += xi * 0x000bd8369f1b702bf491e2ebfcee08250313b65400; // add x^(25-1) * (34! * 25^(25-1) / 25!)\n\t\txi = (xi * _x) / FIXED_1;\n\t\tres += xi * 0x001e5c7c32a9f6c70ab2cb59d9225764d400000000; // add x^(26-1) * (34! * 26^(26-1) / 26!)\n\t\txi = (xi * _x) / FIXED_1;\n\t\tres += xi * 0x004dff5820e165e910f95120a708e742496221e600; // add x^(27-1) * (34! * 27^(27-1) / 27!)\n\t\txi = (xi * _x) / FIXED_1;\n\t\tres += xi * 0x00c8c8f66db1fced378ee50e536000000000000000; // add x^(28-1) * (34! * 28^(28-1) / 28!)\n\t\txi = (xi * _x) / FIXED_1;\n\t\tres += xi * 0x0205db8dffff45bfa2938f128f599dbf16eb11d880; // add x^(29-1) * (34! * 29^(29-1) / 29!)\n\t\txi = (xi * _x) / FIXED_1;\n\t\tres += xi * 0x053a044ebd984351493e1786af38d39a0800000000; // add x^(30-1) * (34! * 30^(30-1) / 30!)\n\t\txi = (xi * _x) / FIXED_1;\n\t\tres += xi * 0x0d86dae2a4cc0f47633a544479735869b487b59c40; // add x^(31-1) * (34! * 31^(31-1) / 31!)\n\t\txi = (xi * _x) / FIXED_1;\n\t\tres += xi * 0x231000000000000000000000000000000000000000; // add x^(32-1) * (34! * 32^(32-1) / 32!)\n\t\txi = (xi * _x) / FIXED_1;\n\t\tres += xi * 0x5b0485a76f6646c2039db1507cdd51b08649680822; // add x^(33-1) * (34! * 33^(33-1) / 33!)\n\t\txi = (xi * _x) / FIXED_1;\n\t\tres += xi * 0xec983c46c49545bc17efa6b5b0055e242200000000; // add x^(34-1) * (34! * 34^(34-1) / 34!)\n\n\t\treturn res / 0xde1bc4d19efcac82445da75b00000000 + _x + FIXED_1; // divide by 34! and then add x^(2-1) * (34! * 2^(2-1) / 2!) + x^(1-1) * (34! * 1^(1-1) / 1!)\n\t}\n\n\t/**\n\t * @dev computes the weights based on \"W(log(hi / lo) * tq / rp) * tq / rp\", where \"W\" is a variation of the Lambert W function.\n\t */\n\tfunction balancedWeightsByStake(\n\t\tuint256 _hi,\n\t\tuint256 _lo,\n\t\tuint256 _tq,\n\t\tuint256 _rp,\n\t\tbool _lowerStake\n\t) internal view returns (uint32, uint32) {\n\t\t(_tq, _rp) = safeFactors(_tq, _rp);\n\t\tuint256 f = _hi.mul(FIXED_1) / _lo;\n\t\tuint256 g = f < OPT_LOG_MAX_VAL ? optimalLog(f) : generalLog(f);\n\t\tuint256 x = g.mul(_tq) / _rp;\n\t\tuint256 y = _lowerStake ? lowerStake(x) : higherStake(x);\n\t\treturn normalizedWeights(y.mul(_tq), _rp.mul(FIXED_1));\n\t}\n\n\t/**\n\t * @dev reduces \"a\" and \"b\" while maintaining their ratio.\n\t */\n\tfunction safeFactors(uint256 _a, uint256 _b) internal pure returns (uint256, uint256) {\n\t\tif (_a <= FIXED_2 && _b <= FIXED_2) return (_a, _b);\n\t\tif (_a < FIXED_2) return ((_a * FIXED_2) / _b, FIXED_2);\n\t\tif (_b < FIXED_2) return (FIXED_2, (_b * FIXED_2) / _a);\n\t\tuint256 c = _a > _b ? _a : _b;\n\t\tuint256 n = floorLog2(c / FIXED_1);\n\t\treturn (_a >> n, _b >> n);\n\t}\n\n\t/**\n\t * @dev computes \"MAX_WEIGHT * a / (a + b)\" and \"MAX_WEIGHT * b / (a + b)\".\n\t */\n\tfunction normalizedWeights(uint256 _a, uint256 _b) internal pure returns (uint32, uint32) {\n\t\tif (_a <= _b) return accurateWeights(_a, _b);\n\t\t(uint32 y, uint32 x) = accurateWeights(_b, _a);\n\t\treturn (x, y);\n\t}\n\n\t/**\n\t * @dev computes \"MAX_WEIGHT * a / (a + b)\" and \"MAX_WEIGHT * b / (a + b)\", assuming that \"a <= b\".\n\t */\n\tfunction accurateWeights(uint256 _a, uint256 _b) internal pure returns (uint32, uint32) {\n\t\tif (_a > MAX_UNF_WEIGHT) {\n\t\t\tuint256 c = _a / (MAX_UNF_WEIGHT + 1) + 1;\n\t\t\t_a /= c;\n\t\t\t_b /= c;\n\t\t}\n\t\tuint256 x = roundDiv(_a * MAX_WEIGHT, _a.add(_b));\n\t\tuint256 y = MAX_WEIGHT - x;\n\t\treturn (uint32(x), uint32(y));\n\t}\n\n\t/**\n\t * @dev computes the nearest integer to a given quotient without overflowing or underflowing.\n\t */\n\tfunction roundDiv(uint256 _n, uint256 _d) internal pure returns (uint256) {\n\t\treturn _n / _d + (_n % _d) / (_d - _d / 2);\n\t}\n\n\t/**\n\t * @dev deprecated, backward compatibility\n\t */\n\tfunction calculatePurchaseReturn(\n\t\tuint256 _supply,\n\t\tuint256 _reserveBalance,\n\t\tuint32 _reserveWeight,\n\t\tuint256 _amount\n\t) public view returns (uint256) {\n\t\treturn purchaseTargetAmount(_supply, _reserveBalance, _reserveWeight, _amount);\n\t}\n\n\t/**\n\t * @dev deprecated, backward compatibility\n\t */\n\tfunction calculateSaleReturn(\n\t\tuint256 _supply,\n\t\tuint256 _reserveBalance,\n\t\tuint32 _reserveWeight,\n\t\tuint256 _amount\n\t) public view returns (uint256) {\n\t\treturn saleTargetAmount(_supply, _reserveBalance, _reserveWeight, _amount);\n\t}\n\n\t/**\n\t * @dev deprecated, backward compatibility\n\t */\n\tfunction calculateCrossReserveReturn(\n\t\tuint256 _sourceReserveBalance,\n\t\tuint32 _sourceReserveWeight,\n\t\tuint256 _targetReserveBalance,\n\t\tuint32 _targetReserveWeight,\n\t\tuint256 _amount\n\t) public view returns (uint256) {\n\t\treturn crossReserveTargetAmount(_sourceReserveBalance, _sourceReserveWeight, _targetReserveBalance, _targetReserveWeight, _amount);\n\t}\n\n\t/**\n\t * @dev deprecated, backward compatibility\n\t */\n\tfunction calculateCrossConnectorReturn(\n\t\tuint256 _sourceReserveBalance,\n\t\tuint32 _sourceReserveWeight,\n\t\tuint256 _targetReserveBalance,\n\t\tuint32 _targetReserveWeight,\n\t\tuint256 _amount\n\t) public view returns (uint256) {\n\t\treturn crossReserveTargetAmount(_sourceReserveBalance, _sourceReserveWeight, _targetReserveBalance, _targetReserveWeight, _amount);\n\t}\n\n\t/**\n\t * @dev deprecated, backward compatibility\n\t */\n\tfunction calculateFundCost(\n\t\tuint256 _supply,\n\t\tuint256 _reserveBalance,\n\t\tuint32 _reserveRatio,\n\t\tuint256 _amount\n\t) public view returns (uint256) {\n\t\treturn fundCost(_supply, _reserveBalance, _reserveRatio, _amount);\n\t}\n\n\t/**\n\t * @dev deprecated, backward compatibility\n\t */\n\tfunction calculateLiquidateReturn(\n\t\tuint256 _supply,\n\t\tuint256 _reserveBalance,\n\t\tuint32 _reserveRatio,\n\t\tuint256 _amount\n\t) public view returns (uint256) {\n\t\treturn liquidateReserveAmount(_supply, _reserveBalance, _reserveRatio, _amount);\n\t}\n\n\t/**\n\t * @dev deprecated, backward compatibility\n\t */\n\tfunction purchaseRate(\n\t\tuint256 _supply,\n\t\tuint256 _reserveBalance,\n\t\tuint32 _reserveWeight,\n\t\tuint256 _amount\n\t) public view returns (uint256) {\n\t\treturn purchaseTargetAmount(_supply, _reserveBalance, _reserveWeight, _amount);\n\t}\n\n\t/**\n\t * @dev deprecated, backward compatibility\n\t */\n\tfunction saleRate(\n\t\tuint256 _supply,\n\t\tuint256 _reserveBalance,\n\t\tuint32 _reserveWeight,\n\t\tuint256 _amount\n\t) public view returns (uint256) {\n\t\treturn saleTargetAmount(_supply, _reserveBalance, _reserveWeight, _amount);\n\t}\n\n\t/**\n\t * @dev deprecated, backward compatibility\n\t */\n\tfunction crossReserveRate(\n\t\tuint256 _sourceReserveBalance,\n\t\tuint32 _sourceReserveWeight,\n\t\tuint256 _targetReserveBalance,\n\t\tuint32 _targetReserveWeight,\n\t\tuint256 _amount\n\t) public view returns (uint256) {\n\t\treturn crossReserveTargetAmount(_sourceReserveBalance, _sourceReserveWeight, _targetReserveBalance, _targetReserveWeight, _amount);\n\t}\n\n\t/**\n\t * @dev deprecated, backward compatibility\n\t */\n\tfunction liquidateRate(\n\t\tuint256 _supply,\n\t\tuint256 _reserveBalance,\n\t\tuint32 _reserveRatio,\n\t\tuint256 _amount\n\t) public view returns (uint256) {\n\t\treturn liquidateReserveAmount(_supply, _reserveBalance, _reserveRatio, _amount);\n\t}\n}\n" - }, - "solidity/contracts/helpers/TestSovrynSwapFormula.sol": { - "content": "pragma solidity 0.4.26;\nimport \"../converter/SovrynSwapFormula.sol\";\n\n/*\n SovrynSwapFormula test helper that exposes some SovrynSwapFormula functions\n*/\ncontract TestSovrynSwapFormula is SovrynSwapFormula {\n\tfunction powerTest(\n\t\tuint256 _baseN,\n\t\tuint256 _baseD,\n\t\tuint32 _expN,\n\t\tuint32 _expD\n\t) external view returns (uint256, uint8) {\n\t\treturn super.power(_baseN, _baseD, _expN, _expD);\n\t}\n\n\tfunction generalLogTest(uint256 x) external pure returns (uint256) {\n\t\treturn super.generalLog(x);\n\t}\n\n\tfunction floorLog2Test(uint256 _n) external pure returns (uint8) {\n\t\treturn super.floorLog2(_n);\n\t}\n\n\tfunction findPositionInMaxExpArrayTest(uint256 _x) external view returns (uint8) {\n\t\treturn super.findPositionInMaxExpArray(_x);\n\t}\n\n\tfunction generalExpTest(uint256 _x, uint8 _precision) external pure returns (uint256) {\n\t\treturn super.generalExp(_x, _precision);\n\t}\n\n\tfunction optimalLogTest(uint256 x) external pure returns (uint256) {\n\t\treturn super.optimalLog(x);\n\t}\n\n\tfunction optimalExpTest(uint256 x) external pure returns (uint256) {\n\t\treturn super.optimalExp(x);\n\t}\n\n\tfunction normalizedWeightsTest(uint256 _a, uint256 _b) external pure returns (uint32, uint32) {\n\t\treturn super.normalizedWeights(_a, _b);\n\t}\n\n\tfunction accurateWeightsTest(uint256 _a, uint256 _b) external pure returns (uint32, uint32) {\n\t\treturn super.accurateWeights(_a, _b);\n\t}\n\n\tfunction roundDivTest(uint256 _n, uint256 _d) external pure returns (uint256) {\n\t\treturn super.roundDiv(_n, _d);\n\t}\n}\n" - }, - "solidity/contracts/helpers/TestTokens.sol": { - "content": "pragma solidity 0.4.26;\nimport \"../utility/Utils.sol\";\nimport \"../utility/SafeMath.sol\";\n\n/**\n * ERC20 Non-Standard Token implementation\n */\ncontract NonStandardToken is Utils {\n\tusing SafeMath for uint256;\n\n\tuint256 public totalSupply;\n\tmapping(address => uint256) public balanceOf;\n\tmapping(address => mapping(address => uint256)) public allowance;\n\n\tevent Transfer(address indexed _from, address indexed _to, uint256 _value);\n\tevent Approval(address indexed _owner, address indexed _spender, uint256 _value);\n\n\t/**\n\t * @dev initializes a new NonStandardToken instance\n\t *\n\t * @param _supply initial supply\n\t */\n\tconstructor(uint256 _supply) internal {\n\t\ttotalSupply = _supply;\n\t\tbalanceOf[msg.sender] = _supply;\n\t}\n\n\t/**\n\t * @dev send coins\n\t * throws on any error rather then return a false flag to minimize user errors\n\t *\n\t * @param _to target address\n\t * @param _value transfer amount\n\t *\n\t * @return true if the transfer was successful, false if it wasn't\n\t */\n\tfunction _transfer(address _to, uint256 _value) internal validAddress(_to) {\n\t\tbalanceOf[msg.sender] = balanceOf[msg.sender].sub(_value);\n\t\tbalanceOf[_to] = balanceOf[_to].add(_value);\n\t\temit Transfer(msg.sender, _to, _value);\n\t}\n\n\t/**\n\t * @dev an account/contract attempts to get the coins\n\t * throws on any error rather then return a false flag to minimize user errors\n\t *\n\t * @param _from source address\n\t * @param _to target address\n\t * @param _value transfer amount\n\t *\n\t * @return true if the transfer was successful, false if it wasn't\n\t */\n\tfunction _transferFrom(\n\t\taddress _from,\n\t\taddress _to,\n\t\tuint256 _value\n\t) internal validAddress(_from) validAddress(_to) {\n\t\tallowance[_from][msg.sender] = allowance[_from][msg.sender].sub(_value);\n\t\tbalanceOf[_from] = balanceOf[_from].sub(_value);\n\t\tbalanceOf[_to] = balanceOf[_to].add(_value);\n\t\temit Transfer(_from, _to, _value);\n\t}\n\n\t/**\n\t * @dev allow another account/contract to spend some tokens on your behalf\n\t * throws on any error rather then return a false flag to minimize user errors\n\t *\n\t * also, to minimize the risk of the approve/transferFrom attack vector\n\t * (see https://docs.google.com/document/d/1YLPtQxZu1UAvO9cZ1O2RPXBbT0mooh4DYKjA_jp-RLM/), approve has to be called twice\n\t * in 2 separate transactions - once to change the allowance to 0 and secondly to change it to the new allowance value\n\t *\n\t * @param _spender approved address\n\t * @param _value allowance amount\n\t *\n\t * @return true if the approval was successful, false if it wasn't\n\t */\n\tfunction _approve(address _spender, uint256 _value) internal validAddress(_spender) {\n\t\t// if the allowance isn't 0, it can only be updated to 0 to prevent an allowance change immediately after withdrawal\n\t\trequire(_value == 0 || allowance[msg.sender][_spender] == 0);\n\n\t\tallowance[msg.sender][_spender] = _value;\n\t\temit Approval(msg.sender, _spender, _value);\n\t}\n}\n\ncontract NonStandardTokenDetailed is NonStandardToken {\n\tstring public name;\n\tstring public symbol;\n\tuint8 public decimals;\n\n\t/**\n\t * @dev initializes a new NonStandardToken instance\n\t *\n\t * @param _name token name\n\t * @param _symbol token symbol\n\t * @param _decimals decimal points\n\t * @param _supply initial supply\n\t */\n\tconstructor(\n\t\tstring _name,\n\t\tstring _symbol,\n\t\tuint8 _decimals,\n\t\tuint256 _supply\n\t) internal NonStandardToken(_supply) {\n\t\tname = _name;\n\t\tsymbol = _symbol;\n\t\tdecimals = _decimals;\n\t}\n}\n\ncontract TestNonStandardToken is NonStandardTokenDetailed {\n\tbool public ok;\n\n\tconstructor(\n\t\tstring _name,\n\t\tstring _symbol,\n\t\tuint8 _decimals,\n\t\tuint256 _supply\n\t) public NonStandardTokenDetailed(_name, _symbol, _decimals, _supply) {\n\t\tset(true);\n\t}\n\n\tfunction set(bool _ok) public {\n\t\tok = _ok;\n\t}\n\n\tfunction approve(address _spender, uint256 _value) public {\n\t\t_approve(_spender, _value);\n\t\trequire(ok);\n\t}\n\n\tfunction transfer(address _to, uint256 _value) public {\n\t\t_transfer(_to, _value);\n\t\trequire(ok);\n\t}\n\n\tfunction transferFrom(\n\t\taddress _from,\n\t\taddress _to,\n\t\tuint256 _value\n\t) public {\n\t\t_transferFrom(_from, _to, _value);\n\t\trequire(ok);\n\t}\n}\n\ncontract TestNonStandardTokenWithoutDecimals is NonStandardToken {\n\tstring public name;\n\tstring public symbol;\n\n\tconstructor(\n\t\tstring _name,\n\t\tstring _symbol,\n\t\tuint256 _supply\n\t) public NonStandardToken(_supply) {\n\t\tname = _name;\n\t\tsymbol = _symbol;\n\t}\n\n\tfunction approve(address _spender, uint256 _value) public {\n\t\t_approve(_spender, _value);\n\t}\n\n\tfunction transfer(address _to, uint256 _value) public {\n\t\t_transfer(_to, _value);\n\t}\n\n\tfunction transferFrom(\n\t\taddress _from,\n\t\taddress _to,\n\t\tuint256 _value\n\t) public {\n\t\t_transferFrom(_from, _to, _value);\n\t}\n}\n\ncontract TestStandardToken is NonStandardTokenDetailed {\n\tbool public ok;\n\tbool public ret;\n\n\tconstructor(\n\t\tstring _name,\n\t\tstring _symbol,\n\t\tuint8 _decimals,\n\t\tuint256 _supply\n\t) public NonStandardTokenDetailed(_name, _symbol, _decimals, _supply) {\n\t\tset(true, true);\n\t}\n\n\tfunction set(bool _ok, bool _ret) public {\n\t\tok = _ok;\n\t\tret = _ret;\n\t}\n\n\tfunction approve(address _spender, uint256 _value) public returns (bool) {\n\t\t_approve(_spender, _value);\n\t\trequire(ok);\n\t\treturn ret;\n\t}\n\n\tfunction transfer(address _to, uint256 _value) public returns (bool) {\n\t\t_transfer(_to, _value);\n\t\trequire(ok);\n\t\treturn ret;\n\t}\n\n\tfunction transferFrom(\n\t\taddress _from,\n\t\taddress _to,\n\t\tuint256 _value\n\t) public returns (bool) {\n\t\t_transferFrom(_from, _to, _value);\n\t\trequire(ok);\n\t\treturn ret;\n\t}\n}\n" - }, - "solidity/contracts/helpers/TestSafeMath.sol": { - "content": "pragma solidity 0.4.26;\nimport \"../utility/SafeMath.sol\";\n\n/*\n Utils test helper that exposes the safe math functions\n*/\ncontract TestSafeMath {\n\tusing SafeMath for uint256;\n\n\tfunction testSafeAdd(uint256 _x, uint256 _y) public pure returns (uint256) {\n\t\treturn _x.add(_y);\n\t}\n\n\tfunction testSafeSub(uint256 _x, uint256 _y) public pure returns (uint256) {\n\t\treturn _x.sub(_y);\n\t}\n\n\tfunction testSafeMul(uint256 _x, uint256 _y) public pure returns (uint256) {\n\t\treturn _x.mul(_y);\n\t}\n\n\tfunction testSafeDiv(uint256 _x, uint256 _y) public pure returns (uint256) {\n\t\treturn _x.div(_y);\n\t}\n}\n" - }, - "solidity/contracts/utility/MocBTCToBTCOracle.sol": { - "content": "pragma solidity 0.4.26;\n\nimport \"./interfaces/IConsumerPriceOracle.sol\";\n\n/**\n * @dev Provides the trivial ETH/ETH rate to be used with other TKN/ETH rates\n */\ncontract MocBTCToBTCOracle is IConsumerPriceOracle {\n\tint256 private constant BTC_RATE = 1;\n\n\t/**\n\t * @dev returns the trivial ETH/ETH rate.\n\t *\n\t * @return always returns the trivial rate of 1\n\t */\n\tfunction latestAnswer() external view returns (int256) {\n\t\treturn BTC_RATE;\n\t}\n\n\t/**\n\t * @dev returns the trivial ETH/ETH update time.\n\t *\n\t * @return always returns current block's timestamp\n\t */\n\tfunction latestTimestamp() external view returns (uint256) {\n\t\treturn now;\n\t}\n}\n" - }, - "solidity/contracts/utility/ChainlinkUSDToBTCOracle.sol": { - "content": "pragma solidity 0.4.26;\n\nimport \"./interfaces/IConsumerPriceOracle.sol\";\n\n/**\n * @dev Provides the USD/BTC rate\n */\ncontract ChainlinkUSDToBTCOracle is IConsumerPriceOracle {\n\tint256 private constant USD_RATE = 10000;\n\n\t/**\n\t * @dev returns the USD/BTC rate.\n\t *\n\t * @return always returns the rate of 10000\n\t */\n\tfunction latestAnswer() external view returns (int256) {\n\t\treturn USD_RATE;\n\t}\n\n\t/**\n\t * @dev returns the USD/BTC update time.\n\t *\n\t * @return always returns current block's timestamp\n\t */\n\tfunction latestTimestamp() external view returns (uint256) {\n\t\treturn now;\n\t}\n}\n" - }, - "solidity/contracts/utility/ChainlinkETHToETHOracle.sol": { - "content": "pragma solidity 0.4.26;\n\nimport \"./interfaces/IConsumerPriceOracle.sol\";\n\n/**\n * @dev Provides the trivial ETH/ETH rate to be used with other TKN/ETH rates\n */\ncontract ChainlinkETHToETHOracle is IConsumerPriceOracle {\n\tint256 private constant ETH_RATE = 1;\n\n\t/**\n\t * @dev returns the trivial ETH/ETH rate.\n\t *\n\t * @return always returns the trivial rate of 1\n\t */\n\tfunction latestAnswer() external view returns (int256) {\n\t\treturn ETH_RATE;\n\t}\n\n\t/**\n\t * @dev returns the trivial ETH/ETH update time.\n\t *\n\t * @return always returns current block's timestamp\n\t */\n\tfunction latestTimestamp() external view returns (uint256) {\n\t\treturn now;\n\t}\n}\n" - }, - "solidity/contracts/utility/ChainlinkBTCToUSDOracle.sol": { - "content": "pragma solidity 0.4.26;\n\nimport \"./interfaces/IConsumerPriceOracle.sol\";\n\n/**\n * @dev Provides the BTC/USD rate\n */\ncontract ChainlinkBTCToUSDOracle is IConsumerPriceOracle {\n\tint256 private constant BTC_RATE = 10000;\n\n\t/**\n\t * @dev returns the BTC/USD rate.\n\t *\n\t * @return always returns the rate of 1\n\t */\n\tfunction latestAnswer() external view returns (int256) {\n\t\treturn BTC_RATE;\n\t}\n\n\t/**\n\t * @dev returns the BTC/USD update time.\n\t *\n\t * @return always returns current block's timestamp\n\t */\n\tfunction latestTimestamp() external view returns (uint256) {\n\t\treturn now;\n\t}\n}\n" - }, - "solidity/contracts/helpers/TestChainlinkPriceOracle.sol": { - "content": "pragma solidity 0.4.26;\nimport \"../utility/interfaces/IConsumerPriceOracle.sol\";\n\n/*\n Chainlink price oracle mock\n*/\ncontract TestChainlinkPriceOracle is IConsumerPriceOracle {\n\tint256 private answer;\n\tuint256 private timestamp;\n\n\tfunction setAnswer(int256 _answer) public {\n\t\tanswer = _answer;\n\t}\n\n\tfunction setTimestamp(uint256 _timestamp) public {\n\t\ttimestamp = _timestamp;\n\t}\n\n\tfunction latestAnswer() external view returns (int256) {\n\t\treturn answer;\n\t}\n\n\tfunction latestTimestamp() external view returns (uint256) {\n\t\treturn timestamp;\n\t}\n}\n" - }, - "solidity/contracts/helpers/TestSovrynSwapNetwork.sol": { - "content": "pragma solidity 0.4.26;\nimport \"../SovrynSwapNetwork.sol\";\n\ncontract OldConverter {\n\tuint256 private amount;\n\n\tconstructor(uint256 _amount) public {\n\t\tamount = _amount;\n\t}\n\n\tfunction getReturn(\n\t\tIERC20Token _sourceToken,\n\t\tIERC20Token _targetToken,\n\t\tuint256 _amount\n\t) external view returns (uint256) {\n\t\t_sourceToken;\n\t\t_targetToken;\n\t\t_amount;\n\t\treturn (amount);\n\t}\n}\n\ncontract NewConverter {\n\tuint256 private amount;\n\tuint256 private fee;\n\n\tconstructor(uint256 _amount, uint256 _fee) public {\n\t\tamount = _amount;\n\t\tfee = _fee;\n\t}\n\n\tfunction getReturn(\n\t\tIERC20Token _sourceToken,\n\t\tIERC20Token _targetToken,\n\t\tuint256 _amount\n\t) external view returns (uint256, uint256) {\n\t\t_sourceToken;\n\t\t_targetToken;\n\t\t_amount;\n\t\treturn (amount, fee);\n\t}\n}\n\ncontract ConverterV27OrLowerWithoutFallback {}\n\ncontract ConverterV27OrLowerWithFallback {\n\tfunction() external payable {}\n}\n\ncontract ConverterV28OrHigherWithoutFallback {\n\tfunction isV28OrHigher() public pure returns (bool) {\n\t\treturn true;\n\t}\n}\n\ncontract ConverterV28OrHigherWithFallback {\n\tfunction isV28OrHigher() public pure returns (bool) {\n\t\treturn true;\n\t}\n\n\tfunction() external payable {\n\t\trevert();\n\t}\n}\n\ncontract TestSovrynSwapNetwork is SovrynSwapNetwork {\n\tOldConverter private oldConverter;\n\tNewConverter private newConverter;\n\n\tconstructor(uint256 _amount, uint256 _fee) public SovrynSwapNetwork(IContractRegistry(address(1))) {\n\t\toldConverter = new OldConverter(_amount);\n\t\tnewConverter = new NewConverter(_amount, _fee);\n\t}\n\n\tfunction isV28OrHigherConverterExternal(IConverter _converter) external view returns (bool) {\n\t\treturn super.isV28OrHigherConverter(_converter);\n\t}\n\n\tfunction getReturnOld() external view returns (uint256, uint256) {\n\t\treturn getReturn(address(oldConverter), IERC20Token(0), IERC20Token(0), uint256(0));\n\t}\n\n\tfunction getReturnNew() external view returns (uint256, uint256) {\n\t\treturn getReturn(address(newConverter), IERC20Token(0), IERC20Token(0), uint256(0));\n\t}\n}\n" - }, - "solidity/contracts/helpers/TestContractRegistryClient.sol": { - "content": "pragma solidity 0.4.26;\nimport \"../utility/ContractRegistryClient.sol\";\n\n/*\n Utils test helper that exposes the contract registry client functions\n*/\ncontract TestContractRegistryClient is ContractRegistryClient {\n\tconstructor(IContractRegistry _registry) public ContractRegistryClient(_registry) {}\n}\n" - } - }, - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "devdoc", - "userdoc" - ], - "": [ - "ast" - ] - } - } - } - }, - "output": { - "contracts": { - "solidity/contracts/ConversionPathFinder.sol": { - "ConversionPathFinder": { - "abi": [ - { - "constant": false, - "inputs": [ - { - "name": "_onlyOwnerCanUpdateRegistry", - "type": "bool" - } - ], - "name": "restrictRegistryUpdate", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_anchorToken", - "type": "address" - } - ], - "name": "setAnchorToken", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "onlyOwnerCanUpdateRegistry", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "updateRegistry", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "prevRegistry", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "acceptOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "registry", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "owner", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_sourceToken", - "type": "address" - }, - { - "name": "_targetToken", - "type": "address" - } - ], - "name": "findPath", - "outputs": [ - { - "name": "", - "type": "address[]" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "restoreRegistry", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "newOwner", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "anchorToken", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "name": "_registry", - "type": "address" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "_prevOwner", - "type": "address" - }, - { - "indexed": true, - "name": "_newOwner", - "type": "address" - } - ], - "name": "OwnerUpdate", - "type": "event" - } - ], - "devdoc": { - "methods": { - "acceptOwnership()": { - "details": "used by a new owner to accept an ownership transfer" - }, - "findPath(address,address)": { - "details": "generates a conversion path between a given pair of tokens in the SovrynSwap Network", - "params": { - "_sourceToken": "address of the source token", - "_targetToken": "address of the target token" - }, - "return": "a path from the source token to the target token" - }, - "restoreRegistry()": { - "details": "restores the previous contract-registry" - }, - "restrictRegistryUpdate(bool)": { - "details": "restricts the permission to update the contract-registry", - "params": { - "_onlyOwnerCanUpdateRegistry": "indicates whether or not permission is restricted to owner only" - } - }, - "setAnchorToken(address)": { - "details": "updates the anchor token", - "params": { - "_anchorToken": "address of the anchor token" - } - }, - "transferOwnership(address)": { - "details": "allows transferring the contract ownership the new owner still needs to accept the transfer can only be called by the contract owner", - "params": { - "_newOwner": "new contract owner" - } - }, - "updateRegistry()": { - "details": "updates to the new contract-registry" - } - } - }, - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "608060405234801561001057600080fd5b50604051602080611242833981016040525160008054600160a060020a03191633179055808061004881640100000000610079810204565b5060028054600160a060020a03909216600160a060020a0319928316811790915560038054909216179055506100f3565b600160a060020a03811615156100f057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b50565b611140806101026000396000f3006080604052600436106100ab5763ffffffff60e060020a600035041663024c7ec781146100b05780632f167f05146100cc5780632fe8a6ad146100ed57806349d10b641461011657806361cd756e1461012b57806379ba50971461015c5780637b103999146101715780638da5cb5b14610186578063a1c421cd1461019b578063b4a176d314610212578063d4ee1d9014610227578063e1c4c9661461023c578063f2fde38b14610251575b600080fd5b3480156100bc57600080fd5b506100ca6004351515610272565b005b3480156100d857600080fd5b506100ca600160a060020a03600435166102ba565b3480156100f957600080fd5b506101026102f1565b604080519115158252519081900360200190f35b34801561012257600080fd5b506100ca610312565b34801561013757600080fd5b50610140610591565b60408051600160a060020a039092168252519081900360200190f35b34801561016857600080fd5b506100ca6105a0565b34801561017d57600080fd5b50610140610673565b34801561019257600080fd5b50610140610682565b3480156101a757600080fd5b506101c2600160a060020a0360043581169060243516610691565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156101fe5781810151838201526020016101e6565b505050509050019250505060405180910390f35b34801561021e57600080fd5b506100ca6106ef565b34801561023357600080fd5b50610140610728565b34801561024857600080fd5b50610140610737565b34801561025d57600080fd5b506100ca600160a060020a0360043516610746565b61027a6107e3565b60038054911515740100000000000000000000000000000000000000000274ff000000000000000000000000000000000000000019909216919091179055565b6102c26107e3565b6004805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60035474010000000000000000000000000000000000000000900460ff1681565b60008054600160a060020a0316331480610347575060035474010000000000000000000000000000000000000000900460ff16155b151561039d576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b6103c67f436f6e7472616374526567697374727900000000000000000000000000000000610847565b600254909150600160a060020a038083169116148015906103ef5750600160a060020a03811615155b1515610445576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e56414c49445f5245474953545259000000000000000000000000604482015290519081900360640190fd5b604080517fbb34534c0000000000000000000000000000000000000000000000000000000081527f436f6e747261637452656769737472790000000000000000000000000000000060048201529051600091600160a060020a0384169163bb34534c9160248082019260209290919082900301818787803b1580156104c957600080fd5b505af11580156104dd573d6000803e3d6000fd5b505050506040513d60208110156104f357600080fd5b5051600160a060020a03161415610554576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e56414c49445f5245474953545259000000000000000000000000604482015290519081900360640190fd5b6002805460038054600160a060020a0380841673ffffffffffffffffffffffffffffffffffffffff19928316179092559091169216919091179055565b600354600160a060020a031681565b600154600160a060020a03163314610602576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b60015460008054604051600160a060020a0393841693909116917f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91a3600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b600254600160a060020a031681565b600054600160a060020a031681565b606060006060806106c17f536f7672796e53776170436f6e76657274657252656769737472790000000000610847565b92506106cd86846108df565b91506106d985846108df565b90506106e58282610cd4565b9695505050505050565b6106f76107e3565b6003546002805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055565b600154600160a060020a031681565b600454600160a060020a031681565b61074e6107e3565b600054600160a060020a03828116911614156107b4576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f53414d455f4f574e4552000000000000000000000000000000000000604482015290519081900360640190fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600054600160a060020a03163314610845576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b565b600254604080517fbb34534c000000000000000000000000000000000000000000000000000000008152600481018490529051600092600160a060020a03169163bb34534c91602480830192602092919082900301818787803b1580156108ad57600080fd5b505af11580156108c1573d6000803e3d6000fd5b505050506040513d60208110156108d757600080fd5b505192915050565b60608060008060008060006060600460009054906101000a9004600160a060020a0316600160a060020a03168a600160a060020a0316141561092b576109248a610f52565b9750610cc7565b88600160a060020a031663d8cced2a8b6040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b15801561098657600080fd5b505af115801561099a573d6000803e3d6000fd5b505050506040513d60208110156109b057600080fd5b5051156109c7576109c08a610f52565b9650610ab0565b88600160a060020a031663118390648b6040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b158015610a2257600080fd5b505af1158015610a36573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526020811015610a5f57600080fd5b810190808051640100000000811115610a7757600080fd5b82016020810184811115610a8a57600080fd5b8151856020820283011164010000000082111715610aa757600080fd5b50909a50505050505b600095505b8651861015610cb5578686815181101515610acc57fe5b90602001906020020151600160a060020a0316638da5cb5b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610b1357600080fd5b505af1158015610b27573d6000803e3d6000fd5b505050506040513d6020811015610b3d57600080fd5b5051604080517f71f52bf30000000000000000000000000000000000000000000000000000000081529051919650600160a060020a038716916371f52bf3916004808201926020929091908290030181600087803b158015610b9e57600080fd5b505af1158015610bb2573d6000803e3d6000fd5b505050506040513d6020811015610bc857600080fd5b505161ffff169350600092505b83831015610caa5784600160a060020a03166319b64015846040518263ffffffff1660e060020a02815260040180828152602001915050602060405180830381600087803b158015610c2657600080fd5b505af1158015610c3a573d6000803e3d6000fd5b505050506040513d6020811015610c5057600080fd5b50519150600160a060020a03808316908b1614610c9f57610c71828a6108df565b9050600081511115610c9f576109248a8888815181101515610c8f57fe5b9060200190602002015183610fa5565b600190920191610bd5565b600190950194610ab5565b60408051600081526020810190915297505b5050505050505092915050565b606060008060606000806000806000808b51118015610cf4575060008a51115b15610f32578a519750895196505b600088118015610d125750600087115b8015610d6357508960018803815181101515610d2a57fe5b90602001906020020151600160a060020a03168b60018a03815181101515610d4e57fe5b90602001906020020151600160a060020a0316145b15610d7957600019978801979690960195610d02565b868801600101604051908082528060200260200182016040528015610da8578160200160208202803883390190505b509550600094505b878511610dff578a85815181101515610dc557fe5b906020019060200201518686815181101515610ddd57fe5b600160a060020a03909216602092830290910190910152600190940193610db0565b8693505b6000841115610e5b578960018503815181101515610e1d57fe5b906020019060200201518685885103815181101515610e3857fe5b600160a060020a0390921660209283029091019091015260001990930192610e03565b60009250600091505b8551821015610f215750600281015b60028206865103811015610ed5578581815181101515610e8f57fe5b90602001906020020151600160a060020a03168683815181101515610eb057fe5b90602001906020020151600160a060020a03161415610ecd578091505b600201610e73565b8582815181101515610ee357fe5b602090810290910101518651600185019488918110610efe57fe5b600160a060020a0390921660209283029091019091015260019190910190610e64565b610f2b8684611088565b9850610f44565b60408051600081526020810190915298505b505050505050505092915050565b6040805160018082528183019092526060918291906020808301908038833901905050905082816000815181101515610f8757fe5b600160a060020a039092166020928302909101909101529050919050565b60608060008351600201604051908082528060200260200182016040528015610fd8578160200160208202803883390190505b50915085826000815181101515610feb57fe5b600160a060020a03909216602092830290910190910152815185908390600190811061101357fe5b600160a060020a039092166020928302909101909101525060005b835181101561107f57838181518110151561104557fe5b90602001906020020151828260020181518110151561106057fe5b600160a060020a0390921660209283029091019091015260010161102e565b50949350505050565b6060806000836040519080825280602002602001820160405280156110b7578160200160208202803883390190505b509150600090505b8381101561110c5784818151811015156110d557fe5b9060200190602002015182828151811015156110ed57fe5b600160a060020a039092166020928302909101909101526001016110bf565b5093925050505600a165627a7a72305820bb2651228bd7a268c6ce61ca6c89f88ab31c6c8539741871f830b67819d0b6350029", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP1 PUSH2 0x1242 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 MSTORE MLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND CALLER OR SWAP1 SSTORE DUP1 DUP1 PUSH2 0x48 DUP2 PUSH5 0x100000000 PUSH2 0x79 DUP2 MUL DIV JUMP JUMPDEST POP PUSH1 0x2 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT SWAP3 DUP4 AND DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x3 DUP1 SLOAD SWAP1 SWAP3 AND OR SWAP1 SSTORE POP PUSH2 0xF3 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0xF0 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x1140 DUP1 PUSH2 0x102 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0xAB JUMPI PUSH4 0xFFFFFFFF PUSH1 0xE0 PUSH1 0x2 EXP PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x24C7EC7 DUP2 EQ PUSH2 0xB0 JUMPI DUP1 PUSH4 0x2F167F05 EQ PUSH2 0xCC JUMPI DUP1 PUSH4 0x2FE8A6AD EQ PUSH2 0xED JUMPI DUP1 PUSH4 0x49D10B64 EQ PUSH2 0x116 JUMPI DUP1 PUSH4 0x61CD756E EQ PUSH2 0x12B JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x15C JUMPI DUP1 PUSH4 0x7B103999 EQ PUSH2 0x171 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x186 JUMPI DUP1 PUSH4 0xA1C421CD EQ PUSH2 0x19B JUMPI DUP1 PUSH4 0xB4A176D3 EQ PUSH2 0x212 JUMPI DUP1 PUSH4 0xD4EE1D90 EQ PUSH2 0x227 JUMPI DUP1 PUSH4 0xE1C4C966 EQ PUSH2 0x23C JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x251 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xBC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xCA PUSH1 0x4 CALLDATALOAD ISZERO ISZERO PUSH2 0x272 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xD8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xCA PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x2BA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xF9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x102 PUSH2 0x2F1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x122 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xCA PUSH2 0x312 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x137 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x140 PUSH2 0x591 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x168 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xCA PUSH2 0x5A0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x17D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x140 PUSH2 0x673 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x192 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x140 PUSH2 0x682 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1A7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1C2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH2 0x691 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP4 MLOAD DUP2 DUP4 ADD MSTORE DUP4 MLOAD SWAP2 SWAP3 DUP4 SWAP3 SWAP1 DUP4 ADD SWAP2 DUP6 DUP2 ADD SWAP2 MUL DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1FE JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x1E6 JUMP JUMPDEST POP POP POP POP SWAP1 POP ADD SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x21E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xCA PUSH2 0x6EF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x233 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x140 PUSH2 0x728 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x248 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x140 PUSH2 0x737 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x25D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xCA PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x746 JUMP JUMPDEST PUSH2 0x27A PUSH2 0x7E3 JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD SWAP2 ISZERO ISZERO PUSH21 0x10000000000000000000000000000000000000000 MUL PUSH21 0xFF0000000000000000000000000000000000000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x2C2 PUSH2 0x7E3 JUMP JUMPDEST PUSH1 0x4 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ DUP1 PUSH2 0x347 JUMPI POP PUSH1 0x3 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x39D JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x3C6 PUSH32 0x436F6E7472616374526567697374727900000000000000000000000000000000 PUSH2 0x847 JUMP JUMPDEST PUSH1 0x2 SLOAD SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP4 AND SWAP2 AND EQ DUP1 ISZERO SWAP1 PUSH2 0x3EF JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x445 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245474953545259000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0xBB34534C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH32 0x436F6E7472616374526567697374727900000000000000000000000000000000 PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP2 PUSH4 0xBB34534C SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x4C9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x4DD JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x4F3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ ISZERO PUSH2 0x554 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245474953545259000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP5 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP3 DUP4 AND OR SWAP1 SWAP3 SSTORE SWAP1 SWAP2 AND SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x602 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND SWAP4 SWAP1 SWAP2 AND SWAP2 PUSH32 0x343765429AEA5A34B3FF6A3785A98A5ABB2597ACA87BFBB58632C173D585373A SWAP2 LOG3 PUSH1 0x1 DUP1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND OR SWAP1 SWAP2 SSTORE AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH1 0x60 DUP1 PUSH2 0x6C1 PUSH32 0x536F7672796E53776170436F6E76657274657252656769737472790000000000 PUSH2 0x847 JUMP JUMPDEST SWAP3 POP PUSH2 0x6CD DUP7 DUP5 PUSH2 0x8DF JUMP JUMPDEST SWAP2 POP PUSH2 0x6D9 DUP6 DUP5 PUSH2 0x8DF JUMP JUMPDEST SWAP1 POP PUSH2 0x6E5 DUP3 DUP3 PUSH2 0xCD4 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x6F7 PUSH2 0x7E3 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x2 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH2 0x74E PUSH2 0x7E3 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x7B4 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F4F574E4552000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x845 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xBB34534C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP2 PUSH4 0xBB34534C SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x8AD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x8C1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x8D7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x60 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 PUSH1 0x4 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP11 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ ISZERO PUSH2 0x92B JUMPI PUSH2 0x924 DUP11 PUSH2 0xF52 JUMP JUMPDEST SWAP8 POP PUSH2 0xCC7 JUMP JUMPDEST DUP9 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xD8CCED2A DUP12 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x986 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x99A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x9B0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD ISZERO PUSH2 0x9C7 JUMPI PUSH2 0x9C0 DUP11 PUSH2 0xF52 JUMP JUMPDEST SWAP7 POP PUSH2 0xAB0 JUMP JUMPDEST DUP9 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x11839064 DUP12 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xA22 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xA36 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xA5F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 MLOAD PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0xA77 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD PUSH1 0x20 DUP2 ADD DUP5 DUP2 GT ISZERO PUSH2 0xA8A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP6 PUSH1 0x20 DUP3 MUL DUP4 ADD GT PUSH5 0x100000000 DUP3 GT OR ISZERO PUSH2 0xAA7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP SWAP1 SWAP11 POP POP POP POP POP JUMPDEST PUSH1 0x0 SWAP6 POP JUMPDEST DUP7 MLOAD DUP7 LT ISZERO PUSH2 0xCB5 JUMPI DUP7 DUP7 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xACC JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x8DA5CB5B PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xB13 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xB27 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xB3D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x71F52BF300000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP7 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND SWAP2 PUSH4 0x71F52BF3 SWAP2 PUSH1 0x4 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xB9E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xBB2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xBC8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH2 0xFFFF AND SWAP4 POP PUSH1 0x0 SWAP3 POP JUMPDEST DUP4 DUP4 LT ISZERO PUSH2 0xCAA JUMPI DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x19B64015 DUP5 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC26 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xC3A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xC50 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP4 AND SWAP1 DUP12 AND EQ PUSH2 0xC9F JUMPI PUSH2 0xC71 DUP3 DUP11 PUSH2 0x8DF JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 MLOAD GT ISZERO PUSH2 0xC9F JUMPI PUSH2 0x924 DUP11 DUP9 DUP9 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xC8F JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD DUP4 PUSH2 0xFA5 JUMP JUMPDEST PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 PUSH2 0xBD5 JUMP JUMPDEST PUSH1 0x1 SWAP1 SWAP6 ADD SWAP5 PUSH2 0xAB5 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE SWAP8 POP JUMPDEST POP POP POP POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 PUSH1 0x60 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 DUP12 MLOAD GT DUP1 ISZERO PUSH2 0xCF4 JUMPI POP PUSH1 0x0 DUP11 MLOAD GT JUMPDEST ISZERO PUSH2 0xF32 JUMPI DUP11 MLOAD SWAP8 POP DUP10 MLOAD SWAP7 POP JUMPDEST PUSH1 0x0 DUP9 GT DUP1 ISZERO PUSH2 0xD12 JUMPI POP PUSH1 0x0 DUP8 GT JUMPDEST DUP1 ISZERO PUSH2 0xD63 JUMPI POP DUP10 PUSH1 0x1 DUP9 SUB DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xD2A JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP12 PUSH1 0x1 DUP11 SUB DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xD4E JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ JUMPDEST ISZERO PUSH2 0xD79 JUMPI PUSH1 0x0 NOT SWAP8 DUP9 ADD SWAP8 SWAP7 SWAP1 SWAP7 ADD SWAP6 PUSH2 0xD02 JUMP JUMPDEST DUP7 DUP9 ADD PUSH1 0x1 ADD PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0xDA8 JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CODESIZE DUP4 CODECOPY ADD SWAP1 POP JUMPDEST POP SWAP6 POP PUSH1 0x0 SWAP5 POP JUMPDEST DUP8 DUP6 GT PUSH2 0xDFF JUMPI DUP11 DUP6 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xDC5 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD DUP7 DUP7 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xDDD JUMPI INVALID JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND PUSH1 0x20 SWAP3 DUP4 MUL SWAP1 SWAP2 ADD SWAP1 SWAP2 ADD MSTORE PUSH1 0x1 SWAP1 SWAP5 ADD SWAP4 PUSH2 0xDB0 JUMP JUMPDEST DUP7 SWAP4 POP JUMPDEST PUSH1 0x0 DUP5 GT ISZERO PUSH2 0xE5B JUMPI DUP10 PUSH1 0x1 DUP6 SUB DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xE1D JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD DUP7 DUP6 DUP9 MLOAD SUB DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xE38 JUMPI INVALID JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND PUSH1 0x20 SWAP3 DUP4 MUL SWAP1 SWAP2 ADD SWAP1 SWAP2 ADD MSTORE PUSH1 0x0 NOT SWAP1 SWAP4 ADD SWAP3 PUSH2 0xE03 JUMP JUMPDEST PUSH1 0x0 SWAP3 POP PUSH1 0x0 SWAP2 POP JUMPDEST DUP6 MLOAD DUP3 LT ISZERO PUSH2 0xF21 JUMPI POP PUSH1 0x2 DUP2 ADD JUMPDEST PUSH1 0x2 DUP3 MOD DUP7 MLOAD SUB DUP2 LT ISZERO PUSH2 0xED5 JUMPI DUP6 DUP2 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xE8F JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP7 DUP4 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xEB0 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ ISZERO PUSH2 0xECD JUMPI DUP1 SWAP2 POP JUMPDEST PUSH1 0x2 ADD PUSH2 0xE73 JUMP JUMPDEST DUP6 DUP3 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xEE3 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MLOAD DUP7 MLOAD PUSH1 0x1 DUP6 ADD SWAP5 DUP9 SWAP2 DUP2 LT PUSH2 0xEFE JUMPI INVALID JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND PUSH1 0x20 SWAP3 DUP4 MUL SWAP1 SWAP2 ADD SWAP1 SWAP2 ADD MSTORE PUSH1 0x1 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH2 0xE64 JUMP JUMPDEST PUSH2 0xF2B DUP7 DUP5 PUSH2 0x1088 JUMP JUMPDEST SWAP9 POP PUSH2 0xF44 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE SWAP9 POP JUMPDEST POP POP POP POP POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 DUP1 DUP3 MSTORE DUP2 DUP4 ADD SWAP1 SWAP3 MSTORE PUSH1 0x60 SWAP2 DUP3 SWAP2 SWAP1 PUSH1 0x20 DUP1 DUP4 ADD SWAP1 DUP1 CODESIZE DUP4 CODECOPY ADD SWAP1 POP POP SWAP1 POP DUP3 DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xF87 JUMPI INVALID JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND PUSH1 0x20 SWAP3 DUP4 MUL SWAP1 SWAP2 ADD SWAP1 SWAP2 ADD MSTORE SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 DUP1 PUSH1 0x0 DUP4 MLOAD PUSH1 0x2 ADD PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0xFD8 JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CODESIZE DUP4 CODECOPY ADD SWAP1 POP JUMPDEST POP SWAP2 POP DUP6 DUP3 PUSH1 0x0 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xFEB JUMPI INVALID JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND PUSH1 0x20 SWAP3 DUP4 MUL SWAP1 SWAP2 ADD SWAP1 SWAP2 ADD MSTORE DUP2 MLOAD DUP6 SWAP1 DUP4 SWAP1 PUSH1 0x1 SWAP1 DUP2 LT PUSH2 0x1013 JUMPI INVALID JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND PUSH1 0x20 SWAP3 DUP4 MUL SWAP1 SWAP2 ADD SWAP1 SWAP2 ADD MSTORE POP PUSH1 0x0 JUMPDEST DUP4 MLOAD DUP2 LT ISZERO PUSH2 0x107F JUMPI DUP4 DUP2 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x1045 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD DUP3 DUP3 PUSH1 0x2 ADD DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x1060 JUMPI INVALID JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND PUSH1 0x20 SWAP3 DUP4 MUL SWAP1 SWAP2 ADD SWAP1 SWAP2 ADD MSTORE PUSH1 0x1 ADD PUSH2 0x102E JUMP JUMPDEST POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP1 PUSH1 0x0 DUP4 PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x10B7 JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CODESIZE DUP4 CODECOPY ADD SWAP1 POP JUMPDEST POP SWAP2 POP PUSH1 0x0 SWAP1 POP JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x110C JUMPI DUP5 DUP2 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x10D5 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD DUP3 DUP3 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x10ED JUMPI INVALID JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND PUSH1 0x20 SWAP3 DUP4 MUL SWAP1 SWAP2 ADD SWAP1 SWAP2 ADD MSTORE PUSH1 0x1 ADD PUSH2 0x10BF JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 0xbb 0x26 MLOAD 0x22 DUP12 0xd7 LOG2 PUSH9 0xC6CE61CA6C89F88AB3 SHR PUSH13 0x8539741871F830B67819D0B635 STOP 0x29 ", - "sourceMap": "558:4622:0:-;;;802:84;8:9:-1;5:2;;;30:1;27;20:12;5:2;802:84:0;;;;;;;;;;;;;488:5:66;:18;;-1:-1:-1;;;;;;488:18:66;496:10;488:18;;;802:84:0;;475:23:72;802:84:0;475:13:72;;;;:23;:::i;:::-;-1:-1:-1;1931:8:60;:39;;-1:-1:-1;;;;;1931:39:60;;;-1:-1:-1;;;;;;1931:39:60;;;;;;;;1974:12;:43;;;;;;;;-1:-1:-1;558:4622:0;;553:117:72;-1:-1:-1;;;;;620:22:72;;;;612:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;553:117;:::o;558:4622:0:-;;;;;;;" - }, - "deployedBytecode": { - "linkReferences": {}, - "object": "6080604052600436106100ab5763ffffffff60e060020a600035041663024c7ec781146100b05780632f167f05146100cc5780632fe8a6ad146100ed57806349d10b641461011657806361cd756e1461012b57806379ba50971461015c5780637b103999146101715780638da5cb5b14610186578063a1c421cd1461019b578063b4a176d314610212578063d4ee1d9014610227578063e1c4c9661461023c578063f2fde38b14610251575b600080fd5b3480156100bc57600080fd5b506100ca6004351515610272565b005b3480156100d857600080fd5b506100ca600160a060020a03600435166102ba565b3480156100f957600080fd5b506101026102f1565b604080519115158252519081900360200190f35b34801561012257600080fd5b506100ca610312565b34801561013757600080fd5b50610140610591565b60408051600160a060020a039092168252519081900360200190f35b34801561016857600080fd5b506100ca6105a0565b34801561017d57600080fd5b50610140610673565b34801561019257600080fd5b50610140610682565b3480156101a757600080fd5b506101c2600160a060020a0360043581169060243516610691565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156101fe5781810151838201526020016101e6565b505050509050019250505060405180910390f35b34801561021e57600080fd5b506100ca6106ef565b34801561023357600080fd5b50610140610728565b34801561024857600080fd5b50610140610737565b34801561025d57600080fd5b506100ca600160a060020a0360043516610746565b61027a6107e3565b60038054911515740100000000000000000000000000000000000000000274ff000000000000000000000000000000000000000019909216919091179055565b6102c26107e3565b6004805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60035474010000000000000000000000000000000000000000900460ff1681565b60008054600160a060020a0316331480610347575060035474010000000000000000000000000000000000000000900460ff16155b151561039d576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b6103c67f436f6e7472616374526567697374727900000000000000000000000000000000610847565b600254909150600160a060020a038083169116148015906103ef5750600160a060020a03811615155b1515610445576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e56414c49445f5245474953545259000000000000000000000000604482015290519081900360640190fd5b604080517fbb34534c0000000000000000000000000000000000000000000000000000000081527f436f6e747261637452656769737472790000000000000000000000000000000060048201529051600091600160a060020a0384169163bb34534c9160248082019260209290919082900301818787803b1580156104c957600080fd5b505af11580156104dd573d6000803e3d6000fd5b505050506040513d60208110156104f357600080fd5b5051600160a060020a03161415610554576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e56414c49445f5245474953545259000000000000000000000000604482015290519081900360640190fd5b6002805460038054600160a060020a0380841673ffffffffffffffffffffffffffffffffffffffff19928316179092559091169216919091179055565b600354600160a060020a031681565b600154600160a060020a03163314610602576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b60015460008054604051600160a060020a0393841693909116917f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91a3600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b600254600160a060020a031681565b600054600160a060020a031681565b606060006060806106c17f536f7672796e53776170436f6e76657274657252656769737472790000000000610847565b92506106cd86846108df565b91506106d985846108df565b90506106e58282610cd4565b9695505050505050565b6106f76107e3565b6003546002805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055565b600154600160a060020a031681565b600454600160a060020a031681565b61074e6107e3565b600054600160a060020a03828116911614156107b4576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f53414d455f4f574e4552000000000000000000000000000000000000604482015290519081900360640190fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600054600160a060020a03163314610845576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b565b600254604080517fbb34534c000000000000000000000000000000000000000000000000000000008152600481018490529051600092600160a060020a03169163bb34534c91602480830192602092919082900301818787803b1580156108ad57600080fd5b505af11580156108c1573d6000803e3d6000fd5b505050506040513d60208110156108d757600080fd5b505192915050565b60608060008060008060006060600460009054906101000a9004600160a060020a0316600160a060020a03168a600160a060020a0316141561092b576109248a610f52565b9750610cc7565b88600160a060020a031663d8cced2a8b6040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b15801561098657600080fd5b505af115801561099a573d6000803e3d6000fd5b505050506040513d60208110156109b057600080fd5b5051156109c7576109c08a610f52565b9650610ab0565b88600160a060020a031663118390648b6040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b158015610a2257600080fd5b505af1158015610a36573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526020811015610a5f57600080fd5b810190808051640100000000811115610a7757600080fd5b82016020810184811115610a8a57600080fd5b8151856020820283011164010000000082111715610aa757600080fd5b50909a50505050505b600095505b8651861015610cb5578686815181101515610acc57fe5b90602001906020020151600160a060020a0316638da5cb5b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610b1357600080fd5b505af1158015610b27573d6000803e3d6000fd5b505050506040513d6020811015610b3d57600080fd5b5051604080517f71f52bf30000000000000000000000000000000000000000000000000000000081529051919650600160a060020a038716916371f52bf3916004808201926020929091908290030181600087803b158015610b9e57600080fd5b505af1158015610bb2573d6000803e3d6000fd5b505050506040513d6020811015610bc857600080fd5b505161ffff169350600092505b83831015610caa5784600160a060020a03166319b64015846040518263ffffffff1660e060020a02815260040180828152602001915050602060405180830381600087803b158015610c2657600080fd5b505af1158015610c3a573d6000803e3d6000fd5b505050506040513d6020811015610c5057600080fd5b50519150600160a060020a03808316908b1614610c9f57610c71828a6108df565b9050600081511115610c9f576109248a8888815181101515610c8f57fe5b9060200190602002015183610fa5565b600190920191610bd5565b600190950194610ab5565b60408051600081526020810190915297505b5050505050505092915050565b606060008060606000806000806000808b51118015610cf4575060008a51115b15610f32578a519750895196505b600088118015610d125750600087115b8015610d6357508960018803815181101515610d2a57fe5b90602001906020020151600160a060020a03168b60018a03815181101515610d4e57fe5b90602001906020020151600160a060020a0316145b15610d7957600019978801979690960195610d02565b868801600101604051908082528060200260200182016040528015610da8578160200160208202803883390190505b509550600094505b878511610dff578a85815181101515610dc557fe5b906020019060200201518686815181101515610ddd57fe5b600160a060020a03909216602092830290910190910152600190940193610db0565b8693505b6000841115610e5b578960018503815181101515610e1d57fe5b906020019060200201518685885103815181101515610e3857fe5b600160a060020a0390921660209283029091019091015260001990930192610e03565b60009250600091505b8551821015610f215750600281015b60028206865103811015610ed5578581815181101515610e8f57fe5b90602001906020020151600160a060020a03168683815181101515610eb057fe5b90602001906020020151600160a060020a03161415610ecd578091505b600201610e73565b8582815181101515610ee357fe5b602090810290910101518651600185019488918110610efe57fe5b600160a060020a0390921660209283029091019091015260019190910190610e64565b610f2b8684611088565b9850610f44565b60408051600081526020810190915298505b505050505050505092915050565b6040805160018082528183019092526060918291906020808301908038833901905050905082816000815181101515610f8757fe5b600160a060020a039092166020928302909101909101529050919050565b60608060008351600201604051908082528060200260200182016040528015610fd8578160200160208202803883390190505b50915085826000815181101515610feb57fe5b600160a060020a03909216602092830290910190910152815185908390600190811061101357fe5b600160a060020a039092166020928302909101909101525060005b835181101561107f57838181518110151561104557fe5b90602001906020020151828260020181518110151561106057fe5b600160a060020a0390921660209283029091019091015260010161102e565b50949350505050565b6060806000836040519080825280602002602001820160405280156110b7578160200160208202803883390190505b509150600090505b8381101561110c5784818151811015156110d557fe5b9060200190602002015182828151811015156110ed57fe5b600160a060020a039092166020928302909101909101526001016110bf565b5093925050505600a165627a7a72305820bb2651228bd7a268c6ce61ca6c89f88ab31c6c8539741871f830b67819d0b6350029", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0xAB JUMPI PUSH4 0xFFFFFFFF PUSH1 0xE0 PUSH1 0x2 EXP PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x24C7EC7 DUP2 EQ PUSH2 0xB0 JUMPI DUP1 PUSH4 0x2F167F05 EQ PUSH2 0xCC JUMPI DUP1 PUSH4 0x2FE8A6AD EQ PUSH2 0xED JUMPI DUP1 PUSH4 0x49D10B64 EQ PUSH2 0x116 JUMPI DUP1 PUSH4 0x61CD756E EQ PUSH2 0x12B JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x15C JUMPI DUP1 PUSH4 0x7B103999 EQ PUSH2 0x171 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x186 JUMPI DUP1 PUSH4 0xA1C421CD EQ PUSH2 0x19B JUMPI DUP1 PUSH4 0xB4A176D3 EQ PUSH2 0x212 JUMPI DUP1 PUSH4 0xD4EE1D90 EQ PUSH2 0x227 JUMPI DUP1 PUSH4 0xE1C4C966 EQ PUSH2 0x23C JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x251 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xBC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xCA PUSH1 0x4 CALLDATALOAD ISZERO ISZERO PUSH2 0x272 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xD8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xCA PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x2BA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xF9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x102 PUSH2 0x2F1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x122 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xCA PUSH2 0x312 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x137 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x140 PUSH2 0x591 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x168 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xCA PUSH2 0x5A0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x17D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x140 PUSH2 0x673 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x192 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x140 PUSH2 0x682 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1A7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1C2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH2 0x691 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP4 MLOAD DUP2 DUP4 ADD MSTORE DUP4 MLOAD SWAP2 SWAP3 DUP4 SWAP3 SWAP1 DUP4 ADD SWAP2 DUP6 DUP2 ADD SWAP2 MUL DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1FE JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x1E6 JUMP JUMPDEST POP POP POP POP SWAP1 POP ADD SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x21E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xCA PUSH2 0x6EF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x233 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x140 PUSH2 0x728 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x248 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x140 PUSH2 0x737 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x25D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xCA PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x746 JUMP JUMPDEST PUSH2 0x27A PUSH2 0x7E3 JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD SWAP2 ISZERO ISZERO PUSH21 0x10000000000000000000000000000000000000000 MUL PUSH21 0xFF0000000000000000000000000000000000000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x2C2 PUSH2 0x7E3 JUMP JUMPDEST PUSH1 0x4 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ DUP1 PUSH2 0x347 JUMPI POP PUSH1 0x3 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x39D JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x3C6 PUSH32 0x436F6E7472616374526567697374727900000000000000000000000000000000 PUSH2 0x847 JUMP JUMPDEST PUSH1 0x2 SLOAD SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP4 AND SWAP2 AND EQ DUP1 ISZERO SWAP1 PUSH2 0x3EF JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x445 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245474953545259000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0xBB34534C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH32 0x436F6E7472616374526567697374727900000000000000000000000000000000 PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP2 PUSH4 0xBB34534C SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x4C9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x4DD JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x4F3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ ISZERO PUSH2 0x554 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245474953545259000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP5 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP3 DUP4 AND OR SWAP1 SWAP3 SSTORE SWAP1 SWAP2 AND SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x602 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND SWAP4 SWAP1 SWAP2 AND SWAP2 PUSH32 0x343765429AEA5A34B3FF6A3785A98A5ABB2597ACA87BFBB58632C173D585373A SWAP2 LOG3 PUSH1 0x1 DUP1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND OR SWAP1 SWAP2 SSTORE AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH1 0x60 DUP1 PUSH2 0x6C1 PUSH32 0x536F7672796E53776170436F6E76657274657252656769737472790000000000 PUSH2 0x847 JUMP JUMPDEST SWAP3 POP PUSH2 0x6CD DUP7 DUP5 PUSH2 0x8DF JUMP JUMPDEST SWAP2 POP PUSH2 0x6D9 DUP6 DUP5 PUSH2 0x8DF JUMP JUMPDEST SWAP1 POP PUSH2 0x6E5 DUP3 DUP3 PUSH2 0xCD4 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x6F7 PUSH2 0x7E3 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x2 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH2 0x74E PUSH2 0x7E3 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x7B4 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F4F574E4552000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x845 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xBB34534C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP2 PUSH4 0xBB34534C SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x8AD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x8C1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x8D7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x60 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 PUSH1 0x4 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP11 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ ISZERO PUSH2 0x92B JUMPI PUSH2 0x924 DUP11 PUSH2 0xF52 JUMP JUMPDEST SWAP8 POP PUSH2 0xCC7 JUMP JUMPDEST DUP9 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xD8CCED2A DUP12 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x986 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x99A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x9B0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD ISZERO PUSH2 0x9C7 JUMPI PUSH2 0x9C0 DUP11 PUSH2 0xF52 JUMP JUMPDEST SWAP7 POP PUSH2 0xAB0 JUMP JUMPDEST DUP9 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x11839064 DUP12 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xA22 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xA36 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xA5F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 MLOAD PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0xA77 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD PUSH1 0x20 DUP2 ADD DUP5 DUP2 GT ISZERO PUSH2 0xA8A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP6 PUSH1 0x20 DUP3 MUL DUP4 ADD GT PUSH5 0x100000000 DUP3 GT OR ISZERO PUSH2 0xAA7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP SWAP1 SWAP11 POP POP POP POP POP JUMPDEST PUSH1 0x0 SWAP6 POP JUMPDEST DUP7 MLOAD DUP7 LT ISZERO PUSH2 0xCB5 JUMPI DUP7 DUP7 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xACC JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x8DA5CB5B PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xB13 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xB27 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xB3D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x71F52BF300000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP7 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND SWAP2 PUSH4 0x71F52BF3 SWAP2 PUSH1 0x4 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xB9E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xBB2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xBC8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH2 0xFFFF AND SWAP4 POP PUSH1 0x0 SWAP3 POP JUMPDEST DUP4 DUP4 LT ISZERO PUSH2 0xCAA JUMPI DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x19B64015 DUP5 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC26 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xC3A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xC50 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP4 AND SWAP1 DUP12 AND EQ PUSH2 0xC9F JUMPI PUSH2 0xC71 DUP3 DUP11 PUSH2 0x8DF JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 MLOAD GT ISZERO PUSH2 0xC9F JUMPI PUSH2 0x924 DUP11 DUP9 DUP9 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xC8F JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD DUP4 PUSH2 0xFA5 JUMP JUMPDEST PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 PUSH2 0xBD5 JUMP JUMPDEST PUSH1 0x1 SWAP1 SWAP6 ADD SWAP5 PUSH2 0xAB5 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE SWAP8 POP JUMPDEST POP POP POP POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 PUSH1 0x60 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 DUP12 MLOAD GT DUP1 ISZERO PUSH2 0xCF4 JUMPI POP PUSH1 0x0 DUP11 MLOAD GT JUMPDEST ISZERO PUSH2 0xF32 JUMPI DUP11 MLOAD SWAP8 POP DUP10 MLOAD SWAP7 POP JUMPDEST PUSH1 0x0 DUP9 GT DUP1 ISZERO PUSH2 0xD12 JUMPI POP PUSH1 0x0 DUP8 GT JUMPDEST DUP1 ISZERO PUSH2 0xD63 JUMPI POP DUP10 PUSH1 0x1 DUP9 SUB DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xD2A JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP12 PUSH1 0x1 DUP11 SUB DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xD4E JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ JUMPDEST ISZERO PUSH2 0xD79 JUMPI PUSH1 0x0 NOT SWAP8 DUP9 ADD SWAP8 SWAP7 SWAP1 SWAP7 ADD SWAP6 PUSH2 0xD02 JUMP JUMPDEST DUP7 DUP9 ADD PUSH1 0x1 ADD PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0xDA8 JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CODESIZE DUP4 CODECOPY ADD SWAP1 POP JUMPDEST POP SWAP6 POP PUSH1 0x0 SWAP5 POP JUMPDEST DUP8 DUP6 GT PUSH2 0xDFF JUMPI DUP11 DUP6 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xDC5 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD DUP7 DUP7 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xDDD JUMPI INVALID JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND PUSH1 0x20 SWAP3 DUP4 MUL SWAP1 SWAP2 ADD SWAP1 SWAP2 ADD MSTORE PUSH1 0x1 SWAP1 SWAP5 ADD SWAP4 PUSH2 0xDB0 JUMP JUMPDEST DUP7 SWAP4 POP JUMPDEST PUSH1 0x0 DUP5 GT ISZERO PUSH2 0xE5B JUMPI DUP10 PUSH1 0x1 DUP6 SUB DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xE1D JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD DUP7 DUP6 DUP9 MLOAD SUB DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xE38 JUMPI INVALID JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND PUSH1 0x20 SWAP3 DUP4 MUL SWAP1 SWAP2 ADD SWAP1 SWAP2 ADD MSTORE PUSH1 0x0 NOT SWAP1 SWAP4 ADD SWAP3 PUSH2 0xE03 JUMP JUMPDEST PUSH1 0x0 SWAP3 POP PUSH1 0x0 SWAP2 POP JUMPDEST DUP6 MLOAD DUP3 LT ISZERO PUSH2 0xF21 JUMPI POP PUSH1 0x2 DUP2 ADD JUMPDEST PUSH1 0x2 DUP3 MOD DUP7 MLOAD SUB DUP2 LT ISZERO PUSH2 0xED5 JUMPI DUP6 DUP2 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xE8F JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP7 DUP4 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xEB0 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ ISZERO PUSH2 0xECD JUMPI DUP1 SWAP2 POP JUMPDEST PUSH1 0x2 ADD PUSH2 0xE73 JUMP JUMPDEST DUP6 DUP3 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xEE3 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MLOAD DUP7 MLOAD PUSH1 0x1 DUP6 ADD SWAP5 DUP9 SWAP2 DUP2 LT PUSH2 0xEFE JUMPI INVALID JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND PUSH1 0x20 SWAP3 DUP4 MUL SWAP1 SWAP2 ADD SWAP1 SWAP2 ADD MSTORE PUSH1 0x1 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH2 0xE64 JUMP JUMPDEST PUSH2 0xF2B DUP7 DUP5 PUSH2 0x1088 JUMP JUMPDEST SWAP9 POP PUSH2 0xF44 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE SWAP9 POP JUMPDEST POP POP POP POP POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 DUP1 DUP3 MSTORE DUP2 DUP4 ADD SWAP1 SWAP3 MSTORE PUSH1 0x60 SWAP2 DUP3 SWAP2 SWAP1 PUSH1 0x20 DUP1 DUP4 ADD SWAP1 DUP1 CODESIZE DUP4 CODECOPY ADD SWAP1 POP POP SWAP1 POP DUP3 DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xF87 JUMPI INVALID JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND PUSH1 0x20 SWAP3 DUP4 MUL SWAP1 SWAP2 ADD SWAP1 SWAP2 ADD MSTORE SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 DUP1 PUSH1 0x0 DUP4 MLOAD PUSH1 0x2 ADD PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0xFD8 JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CODESIZE DUP4 CODECOPY ADD SWAP1 POP JUMPDEST POP SWAP2 POP DUP6 DUP3 PUSH1 0x0 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xFEB JUMPI INVALID JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND PUSH1 0x20 SWAP3 DUP4 MUL SWAP1 SWAP2 ADD SWAP1 SWAP2 ADD MSTORE DUP2 MLOAD DUP6 SWAP1 DUP4 SWAP1 PUSH1 0x1 SWAP1 DUP2 LT PUSH2 0x1013 JUMPI INVALID JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND PUSH1 0x20 SWAP3 DUP4 MUL SWAP1 SWAP2 ADD SWAP1 SWAP2 ADD MSTORE POP PUSH1 0x0 JUMPDEST DUP4 MLOAD DUP2 LT ISZERO PUSH2 0x107F JUMPI DUP4 DUP2 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x1045 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD DUP3 DUP3 PUSH1 0x2 ADD DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x1060 JUMPI INVALID JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND PUSH1 0x20 SWAP3 DUP4 MUL SWAP1 SWAP2 ADD SWAP1 SWAP2 ADD MSTORE PUSH1 0x1 ADD PUSH2 0x102E JUMP JUMPDEST POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP1 PUSH1 0x0 DUP4 PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x10B7 JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CODESIZE DUP4 CODECOPY ADD SWAP1 POP JUMPDEST POP SWAP2 POP PUSH1 0x0 SWAP1 POP JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x110C JUMPI DUP5 DUP2 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x10D5 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD DUP3 DUP3 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x10ED JUMPI INVALID JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND PUSH1 0x20 SWAP3 DUP4 MUL SWAP1 SWAP2 ADD SWAP1 SWAP2 ADD MSTORE PUSH1 0x1 ADD PUSH2 0x10BF JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 0xbb 0x26 MLOAD 0x22 DUP12 0xd7 LOG2 PUSH9 0xC6CE61CA6C89F88AB3 SHR PUSH13 0x8539741871F830B67819D0B635 STOP 0x29 ", - "sourceMap": "558:4622:0:-;;;;;;;;;-1:-1:-1;;;558:4622:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3280:206:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3280:206:60;;;;;;;;;989:97:0;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;989:97:0;-1:-1:-1;;;;;989:97:0;;;;;1250:38:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1250:38:60;;;;;;;;;;;;;;;;;;;;;;2080:832;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2080:832:60;;;;1165:37;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1165:37:60;;;;;;;;-1:-1:-1;;;;;1165:37:60;;;;;;;;;;;;;;1159:176:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1159:176:66;;;;1085:33:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1085:33:60;;;;157:20:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;157:20:66;;;;1366:395:0;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1366:395:0;-1:-1:-1;;;;;1366:395:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;1366:395:0;;;;;;;;;;;;;;;;;2974:119:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2974:119:60;;;;180:23:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;180:23:66;;;;640:26:0;;8:9:-1;5:2;;;30:1;27;20:12;5:2;640:26:0;;;;945:140:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;945:140:66;-1:-1:-1;;;;;945:140:66;;;;;3280:206:60;575:12:66;:10;:12::i;:::-;3426:26:60;:56;;;;;;;-1:-1:-1;;3426:56:60;;;;;;;;;3280:206::o;989:97:0:-;575:12:66;:10;:12::i;:::-;1056:11:0;:26;;-1:-1:-1;;1056:26:0;-1:-1:-1;;;;;1056:26:0;;;;;;;;;;989:97::o;1250:38:60:-;;;;;;;;;:::o;2080:832::-;2281:29;2183:5;;-1:-1:-1;;;;;2183:5:60;2169:10;:19;;:50;;-1:-1:-1;2193:26:60;;;;;;;2192:27;2169:50;2161:80;;;;;;;-1:-1:-1;;;;;2161:80:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;2331:28;2341:17;2331:9;:28::i;:::-;2465:8;;2281:79;;-1:-1:-1;;;;;;2442:32:60;;;2465:8;;2442:32;;;;:61;;-1:-1:-1;;;;;;2478:25:60;;;;2442:61;2434:94;;;;;;;-1:-1:-1;;;;;2434:94:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;2628:40;;;;;;2650:17;2628:40;;;;;;2680:1;;-1:-1:-1;;;;;2628:21:60;;;;;:40;;;;;;;;;;;;;;;2680:1;2628:21;:40;;;5:2:-1;;;;30:1;27;20:12;5:2;2628:40:60;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2628:40:60;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2628:40:60;-1:-1:-1;;;;;2628:54:60;;;2620:87;;;;;-1:-1:-1;;;;;2620:87:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;2799:8;;;2784:12;:23;;-1:-1:-1;;;;;2799:8:60;;;-1:-1:-1;;2784:23:60;;;;;;;2886:22;;;;;;;;;;;2080:832::o;1165:37::-;;;-1:-1:-1;;;;;1165:37:60;;:::o;1159:176:66:-;1219:8;;-1:-1:-1;;;;;1219:8:66;1205:10;:22;1197:52;;;;;-1:-1:-1;;;;;1197:52:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;1277:8;;;1270:5;;1258:28;;-1:-1:-1;;;;;1277:8:66;;;;1270:5;;;;1258:28;;;1298:8;;;;1290:16;;-1:-1:-1;;1290:16:66;;;-1:-1:-1;;;;;1298:8:66;;1290:16;;;;1310:21;;;1159:176::o;1085:33:60:-;;;-1:-1:-1;;;;;1085:33:60;;:::o;157:20:66:-;;;-1:-1:-1;;;;;157:20:66;;:::o;1366:395:0:-;1449:9;1471:36;1563:27;1637;1529:29;1539:18;1529:9;:29::i;:::-;1471:88;;1593:40;1601:12;1615:17;1593:7;:40::i;:::-;1563:70;;1667:40;1675:12;1689:17;1667:7;:40::i;:::-;1637:70;;1718:39;1734:10;1746;1718:15;:39::i;:::-;1711:46;1366:395;-1:-1:-1;;;;;;1366:395:0:o;2974:119:60:-;575:12:66;:10;:12::i;:::-;3077::60;;3066:8;:23;;-1:-1:-1;;3066:23:60;-1:-1:-1;;;;;3077:12:60;;;3066:23;;;;;;2974:119::o;180:23:66:-;;;-1:-1:-1;;;;;180:23:66;;:::o;640:26:0:-;;;-1:-1:-1;;;;;640:26:0;;:::o;945:140:66:-;575:12;:10;:12::i;:::-;1033:5;;-1:-1:-1;;;;;1020:18:66;;;1033:5;;1020:18;;1012:45;;;;;-1:-1:-1;;;;;1012:45:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;1061:8;:20;;-1:-1:-1;;1061:20:66;-1:-1:-1;;;;;1061:20:66;;;;;;;;;;945:140::o;642:93::-;704:5;;-1:-1:-1;;;;;704:5:66;690:10;:19;682:49;;;;;-1:-1:-1;;;;;682:49:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;642:93::o;3647:122:60:-;3732:8;;:33;;;;;;;;;;;;;;3712:7;;-1:-1:-1;;;;;3732:8:60;;:18;;:33;;;;;;;;;;;;;;3712:7;3732:8;:33;;;5:2:-1;;;;30:1;27;20:12;5:2;3732:33:60;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3732:33:60;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3732:33:60;;3647:122;-1:-1:-1;;3647:122:60:o;2041:892:0:-;2135:9;2219:24;2403:9;2448:20;2524:27;2595:9;2646:22;2742:21;2171:11;;;;;;;;;-1:-1:-1;;;;;2171:11:0;-1:-1:-1;;;;;2161:21:0;:6;-1:-1:-1;;;;;2161:21:0;;2157:57;;;2191:23;2207:6;2191:15;:23::i;:::-;2184:30;;;;2157:57;2251:18;-1:-1:-1;;;;;2251:27:0;;2279:6;2251:35;;;;;-1:-1:-1;;;2251:35:0;;;;;;;-1:-1:-1;;;;;2251:35:0;-1:-1:-1;;;;;2251:35:0;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2251:35:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2251:35:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2251:35:0;2247:146;;;2298:23;2314:6;2298:15;:23::i;:::-;2288:33;;2247:146;;;2340:18;-1:-1:-1;;;;;2340:45:0;;2386:6;2340:53;;;;;-1:-1:-1;;;2340:53:0;;;;;;;-1:-1:-1;;;;;2340:53:0;-1:-1:-1;;;;;2340:53:0;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2340:53:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2340:53:0;;;;;;39:16:-1;36:1;17:17;2:54;101:4;2340:53:0;80:15:-1;;;-1:-1;;76:31;65:43;;120:4;113:20;13:2;5:11;;2:2;;;29:1;26;19:12;2:2;2340:53:0;;;;;;20:11:-1;15:3;12:20;9:2;;;45:1;42;35:12;9:2;64:21;;126:4;117:14;;142:31;;;139:2;;;186:1;183;176:12;139:2;224:3;218:10;339:9;333:2;319:12;315:21;297:16;293:44;290:59;268:11;254:12;251:29;239:119;236:2;;;371:1;368;361:12;236:2;-1:-1;2340:53:0;;-1:-1:-1;;;;;2247:146:0;2415:1;2403:13;;2398:504;2422:7;:14;2418:1;:18;2398:504;;;2499:7;2507:1;2499:10;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2482:34:0;;:36;;;;;-1:-1:-1;;;2482:36:0;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2482:36:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2482:36:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2482:36:0;2554:31;;;;;;;;2482:36;;-1:-1:-1;;;;;;2554:29:0;;;;;:31;;;;;2482:36;;2554:31;;;;;;;;;:29;:31;;;5:2:-1;;;;30:1;27;20:12;5:2;2554:31:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2554:31:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2554:31:0;2524:61;;;-1:-1:-1;2607:1:0;;-1:-1:-1;2590:308:0;2614:19;2610:1;:23;2590:308;;;2671:9;-1:-1:-1;;;;;2671:25:0;;2697:1;2671:28;;;;;-1:-1:-1;;;2671:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2671:28:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2671:28:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2671:28:0;;-1:-1:-1;;;;;;2709:24:0;;;;;;;2705:188;;2766:43;2774:14;2790:18;2766:7;:43::i;:::-;2742:67;;2834:1;2820:4;:11;:15;2816:70;;;2844:42;2861:6;2869:7;2877:1;2869:10;;;;;;;;;;;;;;;;;;2881:4;2844:16;:42::i;2816:70::-;2635:3;;;;;2590:308;;;2438:3;;;;;2398:504;;;2913:16;;;2927:1;2913:16;;;;;;;;;-1:-1:-1;2041:892:0;;;;;;;;;;;;:::o;3134:837::-;3241:9;3322;3357;3488:21;3546:9;3608;3683:14;3711:9;3762;3288:1;3267:11;:18;:22;:48;;;;;3314:1;3293:11;:18;:22;3267:48;3263:677;;;3334:11;:18;3322:30;;3369:11;:18;3357:30;;3392:91;3403:1;3399;:5;:14;;;;;3412:1;3408;:5;3399:14;:58;;;;;3439:11;3455:1;3451;:5;3439:18;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3417:40:0;:11;3433:1;3429;:5;3417:18;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3417:40:0;;3399:58;3392:91;;;-1:-1:-1;;3465:3:0;;;;3474;;;;;3392:91;;;3530:1;3526;:5;3534:1;3526:9;3512:24;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;136:17;;-1:-1;3512:24:0;;3488:48;;3558:1;3546:13;;3541:57;3561:6;;;3541:57;;3584:11;3596:1;3584:14;;;;;;;;;;;;;;;;;;3574:4;3579:1;3574:7;;;;;;;;;;-1:-1:-1;;;;;3574:24:0;;;:7;;;;;;;;;;:24;3569:3;;;;;3541:57;;;3620:1;3608:13;;3603:74;3627:1;3623;:5;3603:74;;;3659:11;3675:1;3671;:5;3659:18;;;;;;;;;;;;;;;;;;3635:4;3654:1;3640:4;:11;:15;3635:21;;;;;;;;;;-1:-1:-1;;;;;3635:42:0;;;:21;;;;;;;;;;:42;-1:-1:-1;;3630:3:0;;;;3603:74;;;3700:1;3683:18;;3723:1;3711:13;;3706:188;3730:4;:11;3726:1;:15;3706:188;;;-1:-1:-1;3778:1:0;3774:5;;3757:102;3804:1;3800;:5;3785:4;:11;:21;3781:1;:25;3757:102;;;3838:4;3843:1;3838:7;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3827:18:0;:4;3832:1;3827:7;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3827:18:0;;3823:29;;;3851:1;3847:5;;3823:29;3813:1;3808:6;3757:102;;;3881:4;3886:1;3881:7;;;;;;;;;;;;;;;;;;;3864:14;;3869:8;;;;3864:4;;:14;;;;;;-1:-1:-1;;;;;3864:24:0;;;:14;;;;;;;;;;:24;3748:1;3743:6;;;;;3706:188;;;3906:29;3922:4;3928:6;3906:15;:29::i;:::-;3899:36;;;;3263:677;3951:16;;;3965:1;3951:16;;;;;;;;;-1:-1:-1;3134:837:0;;;;;;;;;;;;;:::o;4094:165::-;4203:16;;;4217:1;4203:16;;;;;;;;;4156:9;;;;4203:16;;;;;;;105:10:-1;4203:16:0;88:34:-1;136:17;;-1:-1;4203:16:0;4178:41;;4234:5;4223;4229:1;4223:8;;;;;;;;;;-1:-1:-1;;;;;4223:16:0;;;:8;;;;;;;;;;:16;4250:5;-1:-1:-1;4094:165:0;;;:::o;4455:327::-;4569:9;4591:22;4699:9;4634:6;:13;4630:1;:17;4616:32;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;136:17;;-1:-1;4616:32:0;;4591:57;;4663:6;4652:5;4658:1;4652:8;;;;;;;;;;-1:-1:-1;;;;;4652:17:0;;;:8;;;;;;;;;;:17;4673:8;;4684:6;;4673:5;;4679:1;;4673:8;;;;;;-1:-1:-1;;;;;4673:17:0;;;:8;;;;;;;;;;:17;-1:-1:-1;4711:1:0;4694:68;4718:6;:13;4714:1;:17;4694:68;;;4753:6;4760:1;4753:9;;;;;;;;;;;;;;;;;;4738:5;4748:1;4744;:5;4738:12;;;;;;;;;;-1:-1:-1;;;;;4738:24:0;;;:12;;;;;;;;;;:24;4733:3;;4694:68;;;-1:-1:-1;4773:5:0;4455:327;-1:-1:-1;;;;4455:327:0:o;4938:240::-;5027:9;5049:22;5105:9;5088:7;5074:22;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;136:17;;-1:-1;5074:22:0;;5049:47;;5117:1;5105:13;;5100:58;5124:7;5120:1;:11;5100:58;;;5149:6;5156:1;5149:9;;;;;;;;;;;;;;;;;;5138:5;5144:1;5138:8;;;;;;;;;;-1:-1:-1;;;;;5138:20:0;;;:8;;;;;;;;;;:20;5133:3;;5100:58;;;-1:-1:-1;5169:5:0;4938:240;-1:-1:-1;;;4938:240:0:o" - }, - "methodIdentifiers": { - "acceptOwnership()": "79ba5097", - "anchorToken()": "e1c4c966", - "findPath(address,address)": "a1c421cd", - "newOwner()": "d4ee1d90", - "onlyOwnerCanUpdateRegistry()": "2fe8a6ad", - "owner()": "8da5cb5b", - "prevRegistry()": "61cd756e", - "registry()": "7b103999", - "restoreRegistry()": "b4a176d3", - "restrictRegistryUpdate(bool)": "024c7ec7", - "setAnchorToken(address)": "2f167f05", - "transferOwnership(address)": "f2fde38b", - "updateRegistry()": "49d10b64" - } - }, - "userdoc": { - "methods": {} - } - } - }, - "solidity/contracts/IConversionPathFinder.sol": { - "IConversionPathFinder": { - "abi": [ - { - "constant": true, - "inputs": [ - { - "name": "_sourceToken", - "type": "address" - }, - { - "name": "_targetToken", - "type": "address" - } - ], - "name": "findPath", - "outputs": [ - { - "name": "", - "type": "address[]" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - } - ], - "devdoc": { - "methods": {} - }, - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "deployedBytecode": { - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "methodIdentifiers": { - "findPath(address,address)": "a1c421cd" - } - }, - "userdoc": { - "methods": {} - } - } - }, - "solidity/contracts/ISovrynSwapNetwork.sol": { - "ISovrynSwapNetwork": { - "abi": [ - { - "constant": false, - "inputs": [ - { - "name": "_path", - "type": "address[]" - }, - { - "name": "_amount", - "type": "uint256" - }, - { - "name": "_minReturn", - "type": "uint256" - }, - { - "name": "_for", - "type": "address" - }, - { - "name": "_affiliateAccount", - "type": "address" - }, - { - "name": "_affiliateFee", - "type": "uint256" - } - ], - "name": "claimAndConvertFor2", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_path", - "type": "address[]" - }, - { - "name": "_amount", - "type": "uint256" - }, - { - "name": "_minReturn", - "type": "uint256" - }, - { - "name": "_affiliateAccount", - "type": "address" - }, - { - "name": "_affiliateFee", - "type": "uint256" - } - ], - "name": "convert2", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": true, - "stateMutability": "payable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_path", - "type": "address[]" - }, - { - "name": "_amount", - "type": "uint256" - }, - { - "name": "_minReturn", - "type": "uint256" - }, - { - "name": "_for", - "type": "address" - }, - { - "name": "_affiliateAccount", - "type": "address" - }, - { - "name": "_affiliateFee", - "type": "uint256" - } - ], - "name": "convertFor2", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": true, - "stateMutability": "payable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_path", - "type": "address[]" - }, - { - "name": "_amount", - "type": "uint256" - }, - { - "name": "_minReturn", - "type": "uint256" - }, - { - "name": "_for", - "type": "address" - } - ], - "name": "claimAndConvertFor", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_path", - "type": "address[]" - }, - { - "name": "_amount", - "type": "uint256" - }, - { - "name": "_minReturn", - "type": "uint256" - } - ], - "name": "claimAndConvert", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_path", - "type": "address[]" - }, - { - "name": "_amount", - "type": "uint256" - }, - { - "name": "_minReturn", - "type": "uint256" - }, - { - "name": "_for", - "type": "address" - } - ], - "name": "convertFor", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": true, - "stateMutability": "payable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_path", - "type": "address[]" - }, - { - "name": "_amount", - "type": "uint256" - }, - { - "name": "_minReturn", - "type": "uint256" - }, - { - "name": "_affiliateAccount", - "type": "address" - }, - { - "name": "_affiliateFee", - "type": "uint256" - } - ], - "name": "claimAndConvert2", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_path", - "type": "address[]" - }, - { - "name": "_amount", - "type": "uint256" - }, - { - "name": "_minReturn", - "type": "uint256" - } - ], - "name": "convert", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": true, - "stateMutability": "payable", - "type": "function" - } - ], - "devdoc": { - "methods": {} - }, - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "deployedBytecode": { - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "methodIdentifiers": { - "claimAndConvert(address[],uint256,uint256)": "c7ba24bc", - "claimAndConvert2(address[],uint256,uint256,address,uint256)": "e57738e5", - "claimAndConvertFor(address[],uint256,uint256,address)": "b1e9932b", - "claimAndConvertFor2(address[],uint256,uint256,address,address,uint256)": "2978c10e", - "convert(address[],uint256,uint256)": "f3898a97", - "convert2(address[],uint256,uint256,address,uint256)": "569706eb", - "convertFor(address[],uint256,uint256,address)": "c98fefed", - "convertFor2(address[],uint256,uint256,address,address,uint256)": "ab6214ce" - } - }, - "userdoc": { - "methods": {} - } - } - }, - "solidity/contracts/SovrynSwapNetwork.sol": { - "ILegacyConverter": { - "abi": [ - { - "constant": false, - "inputs": [ - { - "name": "_sourceToken", - "type": "address" - }, - { - "name": "_targetToken", - "type": "address" - }, - { - "name": "_amount", - "type": "uint256" - }, - { - "name": "_minReturn", - "type": "uint256" - } - ], - "name": "change", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - } - ], - "devdoc": { - "methods": {} - }, - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "deployedBytecode": { - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "methodIdentifiers": { - "change(address,address,uint256,uint256)": "5e5144eb" - } - }, - "userdoc": { - "methods": {} - } - }, - "SovrynSwapNetwork": { - "abi": [ - { - "constant": false, - "inputs": [ - { - "name": "_onlyOwnerCanUpdateRegistry", - "type": "bool" - } - ], - "name": "restrictRegistryUpdate", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_token", - "type": "address" - }, - { - "name": "_register", - "type": "bool" - } - ], - "name": "registerEtherToken", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_path", - "type": "address[]" - }, - { - "name": "_amount", - "type": "uint256" - } - ], - "name": "getReturnByPath", - "outputs": [ - { - "name": "", - "type": "uint256" - }, - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_path", - "type": "address[]" - }, - { - "name": "_amount", - "type": "uint256" - }, - { - "name": "_minReturn", - "type": "uint256" - }, - { - "name": "_beneficiary", - "type": "address" - }, - { - "name": "_affiliateAccount", - "type": "address" - }, - { - "name": "_affiliateFee", - "type": "uint256" - } - ], - "name": "claimAndConvertFor2", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "onlyOwnerCanUpdateRegistry", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "updateRegistry", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_path", - "type": "address[]" - }, - { - "name": "_amount", - "type": "uint256" - }, - { - "name": "_minReturn", - "type": "uint256" - }, - { - "name": "_affiliateAccount", - "type": "address" - }, - { - "name": "_affiliateFee", - "type": "uint256" - } - ], - "name": "convert2", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": true, - "stateMutability": "payable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "maxAffiliateFee", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_token", - "type": "address" - }, - { - "name": "_to", - "type": "address" - }, - { - "name": "_amount", - "type": "uint256" - } - ], - "name": "withdrawTokens", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "prevRegistry", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "acceptOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "registry", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_path", - "type": "address[]" - }, - { - "name": "_amount", - "type": "uint256" - } - ], - "name": "rateByPath", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "", - "type": "address" - } - ], - "name": "etherTokens", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_path", - "type": "address[]" - }, - { - "name": "_sovrynSwapX", - "type": "address" - }, - { - "name": "_conversionId", - "type": "uint256" - }, - { - "name": "_minReturn", - "type": "uint256" - }, - { - "name": "_beneficiary", - "type": "address" - } - ], - "name": "completeXConversion", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "owner", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_path", - "type": "address[]" - }, - { - "name": "_amount", - "type": "uint256" - }, - { - "name": "_minReturn", - "type": "uint256" - }, - { - "name": "_beneficiary", - "type": "address" - }, - { - "name": "_affiliateAccount", - "type": "address" - }, - { - "name": "_affiliateFee", - "type": "uint256" - } - ], - "name": "convertFor2", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": true, - "stateMutability": "payable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_path", - "type": "address[]" - }, - { - "name": "_amount", - "type": "uint256" - }, - { - "name": "_minReturn", - "type": "uint256" - }, - { - "name": "_beneficiary", - "type": "address" - } - ], - "name": "claimAndConvertFor", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "restoreRegistry", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_path", - "type": "address[]" - }, - { - "name": "_amount", - "type": "uint256" - }, - { - "name": "_minReturn", - "type": "uint256" - }, - { - "name": "_beneficiary", - "type": "address" - }, - { - "name": "_affiliateAccount", - "type": "address" - }, - { - "name": "_affiliateFee", - "type": "uint256" - } - ], - "name": "convertByPath", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": true, - "stateMutability": "payable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_path", - "type": "address[]" - }, - { - "name": "_amount", - "type": "uint256" - }, - { - "name": "_minReturn", - "type": "uint256" - }, - { - "name": "_targetBlockchain", - "type": "bytes32" - }, - { - "name": "_targetAccount", - "type": "bytes32" - }, - { - "name": "_conversionId", - "type": "uint256" - } - ], - "name": "xConvert", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": true, - "stateMutability": "payable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_path", - "type": "address[]" - }, - { - "name": "_amount", - "type": "uint256" - }, - { - "name": "_minReturn", - "type": "uint256" - } - ], - "name": "claimAndConvert", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_path", - "type": "address[]" - }, - { - "name": "_amount", - "type": "uint256" - }, - { - "name": "_minReturn", - "type": "uint256" - }, - { - "name": "_beneficiary", - "type": "address" - } - ], - "name": "convertFor", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": true, - "stateMutability": "payable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_path", - "type": "address[]" - }, - { - "name": "_amount", - "type": "uint256" - }, - { - "name": "_minReturn", - "type": "uint256" - }, - { - "name": "_targetBlockchain", - "type": "bytes32" - }, - { - "name": "_targetAccount", - "type": "bytes32" - }, - { - "name": "_conversionId", - "type": "uint256" - }, - { - "name": "_affiliateAccount", - "type": "address" - }, - { - "name": "_affiliateFee", - "type": "uint256" - } - ], - "name": "xConvert2", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": true, - "stateMutability": "payable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "newOwner", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_sourceToken", - "type": "address" - }, - { - "name": "_targetToken", - "type": "address" - } - ], - "name": "conversionPath", - "outputs": [ - { - "name": "", - "type": "address[]" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_path", - "type": "address[]" - }, - { - "name": "_amount", - "type": "uint256" - }, - { - "name": "_minReturn", - "type": "uint256" - }, - { - "name": "_affiliateAccount", - "type": "address" - }, - { - "name": "_affiliateFee", - "type": "uint256" - } - ], - "name": "claimAndConvert2", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_path", - "type": "address[]" - }, - { - "name": "_amount", - "type": "uint256" - }, - { - "name": "_minReturn", - "type": "uint256" - } - ], - "name": "convert", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": true, - "stateMutability": "payable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_maxAffiliateFee", - "type": "uint256" - } - ], - "name": "setMaxAffiliateFee", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "name": "_registry", - "type": "address" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "_smartToken", - "type": "address" - }, - { - "indexed": true, - "name": "_fromToken", - "type": "address" - }, - { - "indexed": true, - "name": "_toToken", - "type": "address" - }, - { - "indexed": false, - "name": "_fromAmount", - "type": "uint256" - }, - { - "indexed": false, - "name": "_toAmount", - "type": "uint256" - }, - { - "indexed": false, - "name": "_trader", - "type": "address" - } - ], - "name": "Conversion", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "_prevOwner", - "type": "address" - }, - { - "indexed": true, - "name": "_newOwner", - "type": "address" - } - ], - "name": "OwnerUpdate", - "type": "event" - } - ], - "devdoc": { - "methods": { - "acceptOwnership()": { - "details": "used by a new owner to accept an ownership transfer" - }, - "claimAndConvert(address[],uint256,uint256)": { - "details": "deprecated, backward compatibility" - }, - "claimAndConvert2(address[],uint256,uint256,address,uint256)": { - "details": "deprecated, backward compatibility" - }, - "claimAndConvertFor(address[],uint256,uint256,address)": { - "details": "deprecated, backward compatibility" - }, - "claimAndConvertFor2(address[],uint256,uint256,address,address,uint256)": { - "details": "deprecated, backward compatibility" - }, - "completeXConversion(address[],address,uint256,uint256,address)": { - "details": "allows a user to convert a token that was sent from another blockchain into any other token on the SovrynSwapNetwork ideally this transaction is created before the previous conversion is even complete, so so the input amount isn't known at that point - the amount is actually take from the SovrynSwapX contract directly by specifying the conversion id", - "params": { - "_beneficiary": "wallet to receive the conversion result", - "_conversionId": "pre-determined unique (if non zero) id which refers to this conversion", - "_minReturn": "if the conversion results in an amount smaller than the minimum return - it is cancelled, must be nonzero", - "_path": "conversion path", - "_sovrynSwapX": "address of the SovrynSwapX contract for the source token" - }, - "return": "amount of tokens received from the conversion" - }, - "conversionPath(address,address)": { - "details": "returns the conversion path between two tokens in the network note that this method is quite expensive in terms of gas and should generally be called off-chain", - "params": { - "_sourceToken": "source token address", - "_targetToken": "target token address" - }, - "return": "conversion path between the two tokens" - }, - "convert(address[],uint256,uint256)": { - "details": "deprecated, backward compatibility" - }, - "convert2(address[],uint256,uint256,address,uint256)": { - "details": "deprecated, backward compatibility" - }, - "convertByPath(address[],uint256,uint256,address,address,uint256)": { - "details": "converts the token to any other token in the sovrynSwap network by following a predefined conversion path and transfers the result tokens to a target account affiliate account/fee can also be passed in to receive a conversion fee (on top of the liquidity provider fees) note that the network should already have been given allowance of the source token (if not ETH)", - "params": { - "_affiliateAccount": "wallet address to receive the affiliate fee or 0x0 to disable affiliate fee", - "_affiliateFee": "affiliate fee in PPM or 0 to disable affiliate fee", - "_amount": "amount to convert from, in the source token", - "_beneficiary": "account that will receive the conversion result or 0x0 to send the result to the sender account", - "_minReturn": "if the conversion results in an amount smaller than the minimum return - it is cancelled, must be greater than zero", - "_path": "conversion path, see conversion path format above" - }, - "return": "amount of tokens received from the conversion" - }, - "convertFor(address[],uint256,uint256,address)": { - "details": "deprecated, backward compatibility" - }, - "convertFor2(address[],uint256,uint256,address,address,uint256)": { - "details": "deprecated, backward compatibility" - }, - "getReturnByPath(address[],uint256)": { - "details": "deprecated, backward compatibility" - }, - "rateByPath(address[],uint256)": { - "details": "returns the expected target amount of converting a given amount on a given path note that there is no support for circular paths", - "params": { - "_amount": "amount of _path[0] tokens received from the sender", - "_path": "conversion path (see conversion path format above)" - }, - "return": "expected target amount" - }, - "registerEtherToken(address,bool)": { - "details": "allows the owner to register/unregister ether tokens", - "params": { - "_register": "true to register, false to unregister", - "_token": "ether token contract address" - } - }, - "restoreRegistry()": { - "details": "restores the previous contract-registry" - }, - "restrictRegistryUpdate(bool)": { - "details": "restricts the permission to update the contract-registry", - "params": { - "_onlyOwnerCanUpdateRegistry": "indicates whether or not permission is restricted to owner only" - } - }, - "setMaxAffiliateFee(uint256)": { - "details": "allows the owner to update the maximum affiliate-fee", - "params": { - "_maxAffiliateFee": "maximum affiliate-fee" - } - }, - "transferOwnership(address)": { - "details": "allows transferring the contract ownership the new owner still needs to accept the transfer can only be called by the contract owner", - "params": { - "_newOwner": "new contract owner" - } - }, - "updateRegistry()": { - "details": "updates to the new contract-registry" - }, - "withdrawTokens(address,address,uint256)": { - "details": "withdraws tokens held by the contract and sends them to an account can only be called by the owner", - "params": { - "_amount": "amount to withdraw", - "_to": "account to receive the new amount", - "_token": "ERC20 token contract address" - } - }, - "xConvert(address[],uint256,uint256,bytes32,bytes32,uint256)": { - "details": "converts any other token to BNT in the sovrynSwap network by following a predefined conversion path and transfers the result to an account on a different blockchain note that the network should already have been given allowance of the source token (if not ETH)", - "params": { - "_amount": "amount to convert from, in the source token", - "_conversionId": "pre-determined unique (if non zero) id which refers to this transaction", - "_minReturn": "if the conversion results in an amount smaller than the minimum return - it is cancelled, must be greater than zero", - "_path": "conversion path, see conversion path format above", - "_targetAccount": "address/account on the target blockchain to send the BNT to", - "_targetBlockchain": "blockchain BNT will be issued on" - }, - "return": "the amount of BNT received from this conversion" - }, - "xConvert2(address[],uint256,uint256,bytes32,bytes32,uint256,address,uint256)": { - "details": "converts any other token to BNT in the sovrynSwap network by following a predefined conversion path and transfers the result to an account on a different blockchain note that the network should already have been given allowance of the source token (if not ETH)", - "params": { - "_affiliateAccount": "affiliate account", - "_affiliateFee": "affiliate fee in PPM", - "_amount": "amount to convert from, in the source token", - "_conversionId": "pre-determined unique (if non zero) id which refers to this transaction", - "_minReturn": "if the conversion results in an amount smaller than the minimum return - it is cancelled, must be greater than zero", - "_path": "conversion path, see conversion path format above", - "_targetAccount": "address/account on the target blockchain to send the BNT to", - "_targetBlockchain": "blockchain BNT will be issued on" - }, - "return": "the amount of BNT received from this conversion" - } - } - }, - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "608060405260016004556175306005553480156200001c57600080fd5b5060405160208062003720833981016040525160008054600160a060020a0319163317905580806200005781640100000000620000d2810204565b5060028054600160a060020a03909216600160a060020a03199283168117909155600380549092161790555073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee60005260066020527fa2e5aefc6e2cbe2917a296f0fd89c5f915c487c803db1d98eccb43f14012d711805460ff191660011790556200014d565b600160a060020a03811615156200014a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b50565b6135c3806200015d6000396000f3006080604052600436106101665763ffffffff60e060020a600035041663024c7ec7811461016b57806302ef521e146101875780630c8496cc146101ad5780632978c10e1461021d5780632fe8a6ad146102a657806349d10b64146102cf578063569706eb146102e45780635d732ff2146103475780635e35359e1461035c57806361cd756e1461038657806379ba5097146103b75780637b103999146103cc5780637f9c0ecd146103e15780638077ccf71461043857806389f9cc61146104595780638da5cb5b146104cc578063ab6214ce146104e1578063b1e9932b1461054b578063b4a176d3146105b6578063b77d239b146105cb578063c52173de14610635578063c7ba24bc14610694578063c98fefed146106f2578063cb32564e14610750578063d4ee1d90146107c4578063d734fa19146107d9578063e57738e514610850578063f2fde38b146108c0578063f3898a97146108e1578063f3bc7d2a14610932575b600080fd5b34801561017757600080fd5b50610185600435151561094a565b005b34801561019357600080fd5b50610185600160a060020a03600435166024351515610992565b3480156101b957600080fd5b50604080516020600480358082013583810280860185019096528085526102049536959394602494938501929182918501908490808284375094975050933594506109db9350505050565b6040805192835260208301919091528051918290030190f35b34801561022957600080fd5b50604080516020600480358082013583810280860185019096528085526102949536959394602494938501929182918501908490808284375094975050843595505050602083013592600160a060020a036040820135811693506060820135169150608001356109f3565b60408051918252519081900360200190f35b3480156102b257600080fd5b506102bb610a0e565b604080519115158252519081900360200190f35b3480156102db57600080fd5b50610185610a2f565b604080516020600480358082013583810280860185019096528085526102949536959394602494938501929182918501908490808284375094975050843595505050602083013592600160a060020a036040820135169250606001359050610cae565b34801561035357600080fd5b50610294610cc9565b34801561036857600080fd5b50610185600160a060020a0360043581169060243516604435610ccf565b34801561039257600080fd5b5061039b610d08565b60408051600160a060020a039092168252519081900360200190f35b3480156103c357600080fd5b50610185610d17565b3480156103d857600080fd5b5061039b610dea565b3480156103ed57600080fd5b5060408051602060048035808201358381028086018501909652808552610294953695939460249493850192918291850190849080828437509497505093359450610df99350505050565b34801561044457600080fd5b506102bb600160a060020a0360043516611628565b34801561046557600080fd5b50604080516020600480358082013583810280860185019096528085526102949536959394602494938501929182918501908490808284375094975050600160a060020a03853581169650602086013595604081013595506060013516925061163d915050565b3480156104d857600080fd5b5061039b6117d2565b604080516020600480358082013583810280860185019096528085526102949536959394602494938501929182918501908490808284375094975050843595505050602083013592600160a060020a036040820135811693506060820135169150608001356117e1565b34801561055757600080fd5b5060408051602060048035808201358381028086018501909652808552610294953695939460249493850192918291850190849080828437509497505084359550505060208301359260400135600160a060020a031691506118079050565b3480156105c257600080fd5b50610185611821565b604080516020600480358082013583810280860185019096528085526102949536959394602494938501929182918501908490808284375094975050843595505050602083013592600160a060020a0360408201358116935060608201351691506080013561185a565b604080516020600480358082013583810280860185019096528085526102949536959394602494938501929182918501908490808284375094975050843595505050602083013592604081013592506060810135915060800135611a4e565b3480156106a057600080fd5b506040805160206004803580820135838102808601850190965280855261029495369593946024949385019291829185019084908082843750949750508435955050506020909201359150611a619050565b60408051602060048035808201358381028086018501909652808552610294953695939460249493850192918291850190849080828437509497505084359550505060208301359260400135600160a060020a031691506118079050565b6040805160206004803580820135838102808601850190965280855261029495369593946024949385019291829185019084908082843750949750508435955050506020830135926040810135925060608101359150608081013590600160a060020a0360a0820135169060c00135611a7b565b3480156107d057600080fd5b5061039b611c19565b3480156107e557600080fd5b50610800600160a060020a0360043581169060243516611c28565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561083c578181015183820152602001610824565b505050509050019250505060405180910390f35b34801561085c57600080fd5b50604080516020600480358082013583810280860185019096528085526102949536959394602494938501929182918501908490808284375094975050843595505050602083013592600160a060020a036040820135169250606001359050610cae565b3480156108cc57600080fd5b50610185600160a060020a0360043516611d59565b6040805160206004803580820135838102808601850190965280855261029495369593946024949385019291829185019084908082843750949750508435955050506020909201359150611a619050565b34801561093e57600080fd5b50610185600435611df6565b610952611e5e565b60038054911515740100000000000000000000000000000000000000000274ff000000000000000000000000000000000000000019909216919091179055565b61099a611e5e565b816109a481611ec2565b826109ae81611f25565b5050600160a060020a03919091166000908152600660205260409020805460ff1916911515919091179055565b6000806109e88484610df9565b946000945092505050565b6000610a0387878787878761185a565b979650505050505050565b60035474010000000000000000000000000000000000000000900460ff1681565b60008054600160a060020a0316331480610a64575060035474010000000000000000000000000000000000000000900460ff16155b1515610aba576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b610ae37f436f6e7472616374526567697374727900000000000000000000000000000000611f86565b600254909150600160a060020a03808316911614801590610b0c5750600160a060020a03811615155b1515610b62576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e56414c49445f5245474953545259000000000000000000000000604482015290519081900360640190fd5b604080517fbb34534c0000000000000000000000000000000000000000000000000000000081527f436f6e747261637452656769737472790000000000000000000000000000000060048201529051600091600160a060020a0384169163bb34534c9160248082019260209290919082900301818787803b158015610be657600080fd5b505af1158015610bfa573d6000803e3d6000fd5b505050506040513d6020811015610c1057600080fd5b5051600160a060020a03161415610c71576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e56414c49445f5245474953545259000000000000000000000000604482015290519081900360640190fd5b6002805460038054600160a060020a0380841673ffffffffffffffffffffffffffffffffffffffff19928316179092559091169216919091179055565b6000610cbf8686866000878761185a565b9695505050505050565b60055481565b610cd7611e5e565b82610ce181611ec2565b82610ceb81611ec2565b83610cf581611f25565b610d0086868661201e565b505050505050565b600354600160a060020a031681565b600154600160a060020a03163314610d79576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b60015460008054604051600160a060020a0393841693909116917f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91a3600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b600254600160a060020a031681565b600080600080600080600080600080600080610e347f536f7672796e53776170466f726d756c61000000000000000000000000000000611f86565b94508c9a5060028e51118015610e4f57508d51600290066001145b1515610ea5576040805160e560020a62461bcd02815260206004820152601060248201527f4552525f494e56414c49445f5041544800000000000000000000000000000000604482015290519081900360640190fd5b600293505b8d51841015611616578d60028503815181101515610ec457fe5b9060200190602002015192508d60018503815181101515610ee157fe5b9060200190602002015191508d84815181101515610efb57fe5b90602001906020020151905081600160a060020a0316638da5cb5b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610f4557600080fd5b505af1158015610f59573d6000803e3d6000fd5b505050506040513d6020811015610f6f57600080fd5b50519550610f7d86846120ab565b9250610f8986826120ab565b905081600160a060020a031681600160a060020a031614156112ea576003841080610fe057508d60038503815181101515610fc057fe5b90602001906020020151600160a060020a031682600160a060020a031614155b156110525781600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561102357600080fd5b505af1158015611037573d6000803e3d6000fd5b505050506040513d602081101561104d57600080fd5b505198505b85600160a060020a031663d8959512846040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b1580156110ad57600080fd5b505af11580156110c1573d6000803e3d6000fd5b505050506040513d60208110156110d757600080fd5b5051604080517f0e53aae9000000000000000000000000000000000000000000000000000000008152600160a060020a0386811660048301529151929a5090881691630e53aae99160248082019260a0929091908290030181600087803b15801561114157600080fd5b505af1158015611155573d6000803e3d6000fd5b505050506040513d60a081101561116b57600080fd5b50602090810151604080517ff3250fe2000000000000000000000000000000000000000000000000000000008152600481018d9052602481018c905263ffffffff83166044820152606481018f90529051919950600160a060020a0388169263f3250fe2926084808401938290030181600087803b1580156111ec57600080fd5b505af1158015611200573d6000803e3d6000fd5b505050506040513d602081101561121657600080fd5b5051604080517f579cd3ca0000000000000000000000000000000000000000000000000000000081529051919c506112cc91620f4240916112c091600160a060020a038b169163579cd3ca9160048083019260209291908290030181600087803b15801561128357600080fd5b505af1158015611297573d6000803e3d6000fd5b505050506040513d60208110156112ad57600080fd5b50518e9063ffffffff9081169061210f16565b9063ffffffff61218f16565b9a8b90039a99506112e3898c63ffffffff6121fd16565b985061160b565b81600160a060020a031683600160a060020a031614156115f957600384108061133f57508d6003850381518110151561131f57fe5b90602001906020020151600160a060020a031682600160a060020a031614155b156113b15781600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561138257600080fd5b505af1158015611396573d6000803e3d6000fd5b505050506040513d60208110156113ac57600080fd5b505198505b85600160a060020a031663d8959512826040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b15801561140c57600080fd5b505af1158015611420573d6000803e3d6000fd5b505050506040513d602081101561143657600080fd5b5051604080517f0e53aae9000000000000000000000000000000000000000000000000000000008152600160a060020a0384811660048301529151929a5090881691630e53aae99160248082019260a0929091908290030181600087803b1580156114a057600080fd5b505af11580156114b4573d6000803e3d6000fd5b505050506040513d60a08110156114ca57600080fd5b50602090810151604080517f76cf0b56000000000000000000000000000000000000000000000000000000008152600481018d9052602481018c905263ffffffff83166044820152606481018f90529051919950600160a060020a038816926376cf0b56926084808401938290030181600087803b15801561154b57600080fd5b505af115801561155f573d6000803e3d6000fd5b505050506040513d602081101561157557600080fd5b5051604080517f579cd3ca0000000000000000000000000000000000000000000000000000000081529051919c506115e291620f4240916112c091600160a060020a038b169163579cd3ca9160048083019260209291908290030181600087803b15801561128357600080fd5b9a8b90039a99506112e3898c63ffffffff61225a16565b6116058684838e6122ba565b909b5099505b600284019350610eaa565b50989c9b505050505050505050505050565b60066020526000908152604090205460ff1681565b60008085600160a060020a031663fc0c546a6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561167e57600080fd5b505af1158015611692573d6000803e3d6000fd5b505050506040513d60208110156116a857600080fd5b50518751600160a060020a0390911690889060009081106116c557fe5b60209081029091010151600160a060020a03161461172d576040805160e560020a62461bcd02815260206004820152601860248201527f4552525f494e56414c49445f534f555243455f544f4b454e0000000000000000604482015290519081900360640190fd5b604080517faafd6b76000000000000000000000000000000000000000000000000000000008152600481018790523360248201529051600160a060020a0388169163aafd6b769160448083019260209291908290030181600087803b15801561179557600080fd5b505af11580156117a9573d6000803e3d6000fd5b505050506040513d60208110156117bf57600080fd5b50519050610a038782868660008061185a565b600054600160a060020a031681565b6000846117ed8161239e565b6117fb88888888888861185a565b98975050505050505050565b60006118188585858560008061185a565b95945050505050565b611829611e5e565b6003546002805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055565b60008060006060600061186b6123f6565b60026004558861187a8161239e565b60028c5111801561189057508b51600290066001145b15156118e6576040805160e560020a62461bcd02815260206004820152601060248201527f4552525f494e56414c49445f5041544800000000000000000000000000000000604482015290519081900360640190fd5b6119218c60008151811015156118f857fe5b906020019060200201518d600181518110151561191157fe5b906020019060200201518d612450565b60009450600160a060020a038816151561199057861561198b576040805160e560020a62461bcd02815260206004820152601960248201527f4552525f494e56414c49445f414646494c494154455f46454500000000000000604482015290519081900360640190fd5b6119fd565b8660001080156119a257506005548711155b15156119f8576040805160e560020a62461bcd02815260206004820152601960248201527f4552525f494e56414c49445f414646494c494154455f46454500000000000000604482015290519081900360640190fd5b600194505b339350600160a060020a03891615611a13578893505b611a1e8c8587612654565b9250611a2d838c8c8b8b612a6b565b9150611a3a838386612fcb565b5060016004559a9950505050505050505050565b6000610a03878787878787600080611a7b565b6000611a73848484600080600061185a565b949350505050565b60008060008089611a8b8161239e565b8c518d906000198101908110611a9d57fe5b906020019060200201519350611ad27f536f7672796e5377617058000000000000000000000000000000000000000000611f86565b9250611afd7f424e54546f6b656e000000000000000000000000000000000000000000000000611f86565b600160a060020a03858116911614611b5f576040805160e560020a62461bcd02815260206004820152601860248201527f4552525f494e56414c49445f5441524745545f544f4b454e0000000000000000604482015290519081900360640190fd5b611b6d8d8d8d308b8b61185a565b9150611b7a8484846130ae565b604080517f427c0374000000000000000000000000000000000000000000000000000000008152600481018c9052602481018b905260448101849052606481018a90529051600160a060020a0385169163427c037491608480830192600092919082900301818387803b158015611bf057600080fd5b505af1158015611c04573d6000803e3d6000fd5b50939f9e505050505050505050505050505050565b600154600160a060020a031681565b60606000611c557f436f6e76657273696f6e5061746846696e646572000000000000000000000000611f86565b604080517fa1c421cd000000000000000000000000000000000000000000000000000000008152600160a060020a038781166004830152868116602483015291519293509083169163a1c421cd9160448082019260009290919082900301818387803b158015611cc457600080fd5b505af1158015611cd8573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526020811015611d0157600080fd5b810190808051640100000000811115611d1957600080fd5b82016020810184811115611d2c57600080fd5b8151856020820283011164010000000082111715611d4957600080fd5b50909550505050505b5092915050565b611d61611e5e565b600054600160a060020a0382811691161415611dc7576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f53414d455f4f574e4552000000000000000000000000000000000000604482015290519081900360640190fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b611dfe611e5e565b620f4240811115611e59576040805160e560020a62461bcd02815260206004820152601960248201527f4552525f494e56414c49445f414646494c494154455f46454500000000000000604482015290519081900360640190fd5b600555565b600054600160a060020a03163314611ec0576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b565b600160a060020a0381161515611f22576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b50565b600160a060020a038116301415611f22576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f414444524553535f49535f53454c4600000000000000000000000000604482015290519081900360640190fd5b600254604080517fbb34534c000000000000000000000000000000000000000000000000000000008152600481018490529051600092600160a060020a03169163bb34534c91602480830192602092919082900301818787803b158015611fec57600080fd5b505af1158015612000573d6000803e3d6000fd5b505050506040513d602081101561201657600080fd5b505192915050565b604080517f7472616e7366657228616464726573732c75696e74323536290000000000000081528151908190036019018120600160a060020a03851660248301526044808301859052835180840390910181526064909201909252602081018051600160e060020a0316600160e060020a0319909316929092179091526120a6908490613175565b505050565b600160a060020a03811660009081526006602052604081205460ff1615156120d4575080612109565b6120dd83613203565b156120fd575073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee612109565b61210683613294565b90505b92915050565b6000808315156121225760009150611d52565b5082820282848281151561213257fe5b0414612188576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b9392505050565b6000808083116121e9576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f4449564944455f42595f5a45524f0000000000000000000000000000604482015290519081900360640190fd5b82848115156121f457fe5b04949350505050565b600082820183811015612188576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b6000818310156122b4576040805160e560020a62461bcd02815260206004820152600d60248201527f4552525f554e444552464c4f5700000000000000000000000000000000000000604482015290519081900360640190fd5b50900390565b6000806122c5613521565b604080517f67657452657475726e28616464726573732c616464726573732c75696e74323581527f36290000000000000000000000000000000000000000000000000000000000006020808301919091528251918290036022018220600160a060020a03808b16602485015289166044840152606480840189905284518085039091018152608490930184529082018051600160e060020a0316600160e060020a0319909216919091178152815191929184918b5afa80151561238757600080fd5b505080516020909101519097909650945050505050565b60008111611f22576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f5a45524f5f56414c5545000000000000000000000000000000000000604482015290519081900360640190fd5b600454600114611ec0576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f5245454e5452414e4359000000000000000000000000000000000000604482015290519081900360640190fd5b60008083600160a060020a0316638da5cb5b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561249157600080fd5b505af11580156124a5573d6000803e3d6000fd5b505050506040513d60208110156124bb57600080fd5b505191506124c882613203565b905060003411156125965734831461252a576040805160e560020a62461bcd02815260206004820152601760248201527f4552525f4554485f414d4f554e545f4d49534d41544348000000000000000000604482015290519081900360640190fd5b8015156125915761253a82613294565b600160a060020a031663d0e30db0346040518263ffffffff1660e060020a0281526004016000604051808303818588803b15801561257757600080fd5b505af115801561258b573d6000803e3d6000fd5b50505050505b61264d565b600160a060020a03851660009081526006602052604090205460ff161561262f576125c3853330866133e1565b80156125915784600160a060020a0316632e1a7d4d846040518263ffffffff1660e060020a02815260040180828152602001915050600060405180830381600087803b15801561261257600080fd5b505af1158015612626573d6000803e3d6000fd5b5050505061264d565b801561264157612591853384866133e1565b61264d853330866133e1565b5050505050565b606080600080600080600080600061266a61353c565b8c51600290046040519080825280602002602001820160405280156126a957816020015b61269661353c565b81526020019060019003908161268e5790505b509850600097506126d97f424e54546f6b656e000000000000000000000000000000000000000000000000611f86565b9650600095505b60018d5103861015612874578c866001018151811015156126fd57fe5b90602001906020020151945084600160a060020a0316638da5cb5b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561274757600080fd5b505af115801561275b573d6000803e3d6000fd5b505050506040513d602081101561277157600080fd5b50518d519094508d906002880190811061278757fe5b9060200190602002015192508a801561279e575087155b80156127bb575086600160a060020a031683600160a060020a0316145b915081156127c857600197505b60e06040519081016040528085600160a060020a0316815260200186600160a060020a031681526020018e8881518110151561280057fe5b90602001906020020151600160a060020a0316815260200184600160a060020a031681526020016000600160a060020a0316815260200161284086613203565b15158152831515602090910152896002880481518110151561285e57fe5b60209081029091010152600295909501946126e0565b88600081518110151561288357fe5b6020908102909101810151604080820151600160a060020a0316600090815260069093529091205490915060ff16156128f9578060a00151156128df5773eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee60408201526128f9565b80516128ea90613294565b600160a060020a031660408201525b88518990600019810190811061290b57fe5b60209081029091018101516060810151600160a060020a03166000908152600690925260409091205490915060ff1615612982578060a00151156129685773eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6060820152612982565b805161297390613294565b600160a060020a031660608201525b600095505b8851861015612a5a57888681518110151561299e57fe5b9060200190602002015190508060a0015115612a48578060c00151156129c957306080820152612a43565b60018951038614156129e957600160a060020a038c166080820152612a43565b88866001018151811015156129fa57fe5b9060200190602002015160a0015115612a3c578886600101815181101515612a1e57fe5b6020908102909101015151600160a060020a03166080820152612a43565b3060808201525b612a4f565b3060808201525b600190950194612987565b50969b9a5050505050505050505050565b600080600080612a7961353c565b6000899350600092505b8a51831015612f64578a83815181101515612a9a57fe5b9060200190602002015191508160a0015115612b2b578215801590612ae757508a5130908c906000198601908110612ace57fe5b9060200190602002015160800151600160a060020a0316145b8015612b0e5750604080830151600160a060020a031660009081526006602052205460ff16155b15612b2657612b26826040015183600001518661201e565b612b61565b8160200151600160a060020a03168260400151600160a060020a0316141515612b6157612b6182604001518360000151866130ae565b8160a001511515612c24578151604080840151606085015182517f5e5144eb000000000000000000000000000000000000000000000000000000008152600160a060020a039283166004820152908216602482015260448101889052600160648201529151921691635e5144eb916084808201926020929091908290030181600087803b158015612bf157600080fd5b505af1158015612c05573d6000803e3d6000fd5b505050506040513d6020811015612c1b57600080fd5b50519450612dc1565b604080830151600160a060020a031660009081526006602052205460ff1615612d025781516040808401516060850151608086015183517fe8dc12ff000000000000000000000000000000000000000000000000000000008152600160a060020a03938416600482015291831660248301526044820189905233606483015282166084820152915192169163e8dc12ff91349160a480830192602092919082900301818588803b158015612cd757600080fd5b505af1158015612ceb573d6000803e3d6000fd5b50505050506040513d6020811015612c1b57600080fd5b81516040808401516060850151608086015183517fe8dc12ff000000000000000000000000000000000000000000000000000000008152600160a060020a03938416600482015291831660248301526044820189905233606483015282166084820152915192169163e8dc12ff9160a4808201926020929091908290030181600087803b158015612d9257600080fd5b505af1158015612da6573d6000803e3d6000fd5b505050506040513d6020811015612dbc57600080fd5b505194505b8160c0015115612ed357612de2620f42406112c0878a63ffffffff61210f16565b90508160600151600160a060020a031663a9059cbb89836040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b158015612e4b57600080fd5b505af1158015612e5f573d6000803e3d6000fd5b505050506040513d6020811015612e7557600080fd5b50511515612ecd576040805160e560020a62461bcd02815260206004820152601760248201527f4552525f4645455f5452414e534645525f4641494c4544000000000000000000604482015290519081900360640190fd5b80850394505b8160600151600160a060020a03168260400151600160a060020a03168360200151600160a060020a03167f7154b38b5dd31bb3122436a96d4e09aba5b323ae1fd580025fab55074334c0958789336040518084815260200183815260200182600160a060020a0316600160a060020a03168152602001935050505060405180910390a4849350600190920191612a83565b88851015612fbc576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f52455455524e5f544f4f5f4c4f570000000000000000000000000000604482015290519081900360640190fd5b50929998505050505050505050565b612fd361353c565b6000846001865103815181101515612fe757fe5b602090810290910101516080810151909250600160a060020a0316301461300d5761264d565b506060810151600160a060020a03811660009081526006602052604090205460ff16156130a35760a08201511561304057fe5b80600160a060020a031663205c287884866040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050600060405180830381600087803b15801561261257600080fd5b61264d81848661201e565b604080517fdd62ed3e000000000000000000000000000000000000000000000000000000008152306004820152600160a060020a038481166024830152915160009286169163dd62ed3e91604480830192602092919082900301818787803b15801561311957600080fd5b505af115801561312d573d6000803e3d6000fd5b505050506040513d602081101561314357600080fd5b505190508181101561316f5760008111156131645761316484846000613499565b61316f848484613499565b50505050565b61317d613578565b602060405190810160405280600181525090506020818351602085016000875af18015156131aa57600080fd5b50805115156120a6576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f5452414e534645525f4641494c454400000000000000000000000000604482015290519081900360640190fd5b60008061320e613578565b604080517f69735632384f72486967686572282900000000000000000000000000000000008152815190819003600f018120600482526024820190925260208082018051600160e060020a0316600160e060020a0319909416939093178352815191929091849188611388fa92508280156132895750815115155b93505b505050919050565b60008060008084600160a060020a03166371f52bf36040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156132d857600080fd5b505af11580156132ec573d6000803e3d6000fd5b505050506040513d602081101561330257600080fd5b505161ffff169250600091505b828210156133c35784600160a060020a03166319b64015836040518263ffffffff1660e060020a02815260040180828152602001915050602060405180830381600087803b15801561336057600080fd5b505af1158015613374573d6000803e3d6000fd5b505050506040513d602081101561338a57600080fd5b5051600160a060020a03811660009081526006602052604090205490915060ff16156133b85780935061328c565b60019091019061330f565b5073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee949350505050565b604080517f7472616e7366657246726f6d28616464726573732c616464726573732c75696e81527f74323536290000000000000000000000000000000000000000000000000000006020808301919091528251918290036025018220600160a060020a03808816602485015286166044840152606480840186905284518085039091018152608490930190935281018051600160e060020a0316600160e060020a03199093169290921790915261316f908590613175565b604080517f617070726f766528616464726573732c75696e7432353629000000000000000081528151908190036018018120600160a060020a03851660248301526044808301859052835180840390910181526064909201909252602081018051600160e060020a0316600160e060020a0319909316929092179091526120a6908490613175565b60408051808201825290600290829080388339509192915050565b6040805160e081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c081019190915290565b60206040519081016040528060019060208202803883395091929150505600a165627a7a72305820fc6355c3c67ed050697b7fd7b2bc3393a8cce9829aabb55cbd0c2e454e58c1f40029", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x1 PUSH1 0x4 SSTORE PUSH2 0x7530 PUSH1 0x5 SSTORE CALLVALUE DUP1 ISZERO PUSH3 0x1C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP1 PUSH3 0x3720 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 MSTORE MLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND CALLER OR SWAP1 SSTORE DUP1 DUP1 PUSH3 0x57 DUP2 PUSH5 0x100000000 PUSH3 0xD2 DUP2 MUL DIV JUMP JUMPDEST POP PUSH1 0x2 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT SWAP3 DUP4 AND DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x3 DUP1 SLOAD SWAP1 SWAP3 AND OR SWAP1 SSTORE POP PUSH20 0xEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE PUSH1 0x0 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH32 0xA2E5AEFC6E2CBE2917A296F0FD89C5F915C487C803DB1D98ECCB43F14012D711 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE PUSH3 0x14D JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH3 0x14A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x35C3 DUP1 PUSH3 0x15D PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x166 JUMPI PUSH4 0xFFFFFFFF PUSH1 0xE0 PUSH1 0x2 EXP PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x24C7EC7 DUP2 EQ PUSH2 0x16B JUMPI DUP1 PUSH4 0x2EF521E EQ PUSH2 0x187 JUMPI DUP1 PUSH4 0xC8496CC EQ PUSH2 0x1AD JUMPI DUP1 PUSH4 0x2978C10E EQ PUSH2 0x21D JUMPI DUP1 PUSH4 0x2FE8A6AD EQ PUSH2 0x2A6 JUMPI DUP1 PUSH4 0x49D10B64 EQ PUSH2 0x2CF JUMPI DUP1 PUSH4 0x569706EB EQ PUSH2 0x2E4 JUMPI DUP1 PUSH4 0x5D732FF2 EQ PUSH2 0x347 JUMPI DUP1 PUSH4 0x5E35359E EQ PUSH2 0x35C JUMPI DUP1 PUSH4 0x61CD756E EQ PUSH2 0x386 JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x3B7 JUMPI DUP1 PUSH4 0x7B103999 EQ PUSH2 0x3CC JUMPI DUP1 PUSH4 0x7F9C0ECD EQ PUSH2 0x3E1 JUMPI DUP1 PUSH4 0x8077CCF7 EQ PUSH2 0x438 JUMPI DUP1 PUSH4 0x89F9CC61 EQ PUSH2 0x459 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x4CC JUMPI DUP1 PUSH4 0xAB6214CE EQ PUSH2 0x4E1 JUMPI DUP1 PUSH4 0xB1E9932B EQ PUSH2 0x54B JUMPI DUP1 PUSH4 0xB4A176D3 EQ PUSH2 0x5B6 JUMPI DUP1 PUSH4 0xB77D239B EQ PUSH2 0x5CB JUMPI DUP1 PUSH4 0xC52173DE EQ PUSH2 0x635 JUMPI DUP1 PUSH4 0xC7BA24BC EQ PUSH2 0x694 JUMPI DUP1 PUSH4 0xC98FEFED EQ PUSH2 0x6F2 JUMPI DUP1 PUSH4 0xCB32564E EQ PUSH2 0x750 JUMPI DUP1 PUSH4 0xD4EE1D90 EQ PUSH2 0x7C4 JUMPI DUP1 PUSH4 0xD734FA19 EQ PUSH2 0x7D9 JUMPI DUP1 PUSH4 0xE57738E5 EQ PUSH2 0x850 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x8C0 JUMPI DUP1 PUSH4 0xF3898A97 EQ PUSH2 0x8E1 JUMPI DUP1 PUSH4 0xF3BC7D2A EQ PUSH2 0x932 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x177 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x185 PUSH1 0x4 CALLDATALOAD ISZERO ISZERO PUSH2 0x94A JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x193 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x185 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD ISZERO ISZERO PUSH2 0x992 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1B9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x204 SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP POP SWAP4 CALLDATALOAD SWAP5 POP PUSH2 0x9DB SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x229 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x294 SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP POP DUP5 CALLDATALOAD SWAP6 POP POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD SWAP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x40 DUP3 ADD CALLDATALOAD DUP2 AND SWAP4 POP PUSH1 0x60 DUP3 ADD CALLDATALOAD AND SWAP2 POP PUSH1 0x80 ADD CALLDATALOAD PUSH2 0x9F3 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2B2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2BB PUSH2 0xA0E JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2DB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x185 PUSH2 0xA2F JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x294 SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP POP DUP5 CALLDATALOAD SWAP6 POP POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD SWAP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x40 DUP3 ADD CALLDATALOAD AND SWAP3 POP PUSH1 0x60 ADD CALLDATALOAD SWAP1 POP PUSH2 0xCAE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x353 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x294 PUSH2 0xCC9 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x368 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x185 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0xCCF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x392 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x39B PUSH2 0xD08 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3C3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x185 PUSH2 0xD17 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3D8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x39B PUSH2 0xDEA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3ED JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x294 SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP POP SWAP4 CALLDATALOAD SWAP5 POP PUSH2 0xDF9 SWAP4 POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x444 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2BB PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x1628 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x465 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x294 SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 CALLDATALOAD DUP2 AND SWAP7 POP PUSH1 0x20 DUP7 ADD CALLDATALOAD SWAP6 PUSH1 0x40 DUP2 ADD CALLDATALOAD SWAP6 POP PUSH1 0x60 ADD CALLDATALOAD AND SWAP3 POP PUSH2 0x163D SWAP2 POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4D8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x39B PUSH2 0x17D2 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x294 SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP POP DUP5 CALLDATALOAD SWAP6 POP POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD SWAP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x40 DUP3 ADD CALLDATALOAD DUP2 AND SWAP4 POP PUSH1 0x60 DUP3 ADD CALLDATALOAD AND SWAP2 POP PUSH1 0x80 ADD CALLDATALOAD PUSH2 0x17E1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x557 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x294 SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP POP DUP5 CALLDATALOAD SWAP6 POP POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD SWAP3 PUSH1 0x40 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP2 POP PUSH2 0x1807 SWAP1 POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5C2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x185 PUSH2 0x1821 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x294 SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP POP DUP5 CALLDATALOAD SWAP6 POP POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD SWAP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x40 DUP3 ADD CALLDATALOAD DUP2 AND SWAP4 POP PUSH1 0x60 DUP3 ADD CALLDATALOAD AND SWAP2 POP PUSH1 0x80 ADD CALLDATALOAD PUSH2 0x185A JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x294 SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP POP DUP5 CALLDATALOAD SWAP6 POP POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD SWAP3 PUSH1 0x40 DUP2 ADD CALLDATALOAD SWAP3 POP PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP2 POP PUSH1 0x80 ADD CALLDATALOAD PUSH2 0x1A4E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6A0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x294 SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP POP DUP5 CALLDATALOAD SWAP6 POP POP POP PUSH1 0x20 SWAP1 SWAP3 ADD CALLDATALOAD SWAP2 POP PUSH2 0x1A61 SWAP1 POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x294 SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP POP DUP5 CALLDATALOAD SWAP6 POP POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD SWAP3 PUSH1 0x40 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP2 POP PUSH2 0x1807 SWAP1 POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x294 SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP POP DUP5 CALLDATALOAD SWAP6 POP POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD SWAP3 PUSH1 0x40 DUP2 ADD CALLDATALOAD SWAP3 POP PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP2 POP PUSH1 0x80 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0xA0 DUP3 ADD CALLDATALOAD AND SWAP1 PUSH1 0xC0 ADD CALLDATALOAD PUSH2 0x1A7B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7D0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x39B PUSH2 0x1C19 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7E5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x800 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH2 0x1C28 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP4 MLOAD DUP2 DUP4 ADD MSTORE DUP4 MLOAD SWAP2 SWAP3 DUP4 SWAP3 SWAP1 DUP4 ADD SWAP2 DUP6 DUP2 ADD SWAP2 MUL DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x83C JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x824 JUMP JUMPDEST POP POP POP POP SWAP1 POP ADD SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x85C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x294 SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP POP DUP5 CALLDATALOAD SWAP6 POP POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD SWAP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x40 DUP3 ADD CALLDATALOAD AND SWAP3 POP PUSH1 0x60 ADD CALLDATALOAD SWAP1 POP PUSH2 0xCAE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8CC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x185 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x1D59 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x294 SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP POP DUP5 CALLDATALOAD SWAP6 POP POP POP PUSH1 0x20 SWAP1 SWAP3 ADD CALLDATALOAD SWAP2 POP PUSH2 0x1A61 SWAP1 POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x93E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x185 PUSH1 0x4 CALLDATALOAD PUSH2 0x1DF6 JUMP JUMPDEST PUSH2 0x952 PUSH2 0x1E5E JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD SWAP2 ISZERO ISZERO PUSH21 0x10000000000000000000000000000000000000000 MUL PUSH21 0xFF0000000000000000000000000000000000000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x99A PUSH2 0x1E5E JUMP JUMPDEST DUP2 PUSH2 0x9A4 DUP2 PUSH2 0x1EC2 JUMP JUMPDEST DUP3 PUSH2 0x9AE DUP2 PUSH2 0x1F25 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP2 SWAP1 SWAP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP2 ISZERO ISZERO SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x9E8 DUP5 DUP5 PUSH2 0xDF9 JUMP JUMPDEST SWAP5 PUSH1 0x0 SWAP5 POP SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA03 DUP8 DUP8 DUP8 DUP8 DUP8 DUP8 PUSH2 0x185A JUMP JUMPDEST SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ DUP1 PUSH2 0xA64 JUMPI POP PUSH1 0x3 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST ISZERO ISZERO PUSH2 0xABA JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0xAE3 PUSH32 0x436F6E7472616374526567697374727900000000000000000000000000000000 PUSH2 0x1F86 JUMP JUMPDEST PUSH1 0x2 SLOAD SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP4 AND SWAP2 AND EQ DUP1 ISZERO SWAP1 PUSH2 0xB0C JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO JUMPDEST ISZERO ISZERO PUSH2 0xB62 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245474953545259000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0xBB34534C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH32 0x436F6E7472616374526567697374727900000000000000000000000000000000 PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP2 PUSH4 0xBB34534C SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xBE6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xBFA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xC10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ ISZERO PUSH2 0xC71 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245474953545259000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP5 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP3 DUP4 AND OR SWAP1 SWAP3 SSTORE SWAP1 SWAP2 AND SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH2 0xCBF DUP7 DUP7 DUP7 PUSH1 0x0 DUP8 DUP8 PUSH2 0x185A JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x5 SLOAD DUP2 JUMP JUMPDEST PUSH2 0xCD7 PUSH2 0x1E5E JUMP JUMPDEST DUP3 PUSH2 0xCE1 DUP2 PUSH2 0x1EC2 JUMP JUMPDEST DUP3 PUSH2 0xCEB DUP2 PUSH2 0x1EC2 JUMP JUMPDEST DUP4 PUSH2 0xCF5 DUP2 PUSH2 0x1F25 JUMP JUMPDEST PUSH2 0xD00 DUP7 DUP7 DUP7 PUSH2 0x201E JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0xD79 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND SWAP4 SWAP1 SWAP2 AND SWAP2 PUSH32 0x343765429AEA5A34B3FF6A3785A98A5ABB2597ACA87BFBB58632C173D585373A SWAP2 LOG3 PUSH1 0x1 DUP1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND OR SWAP1 SWAP2 SSTORE AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0xE34 PUSH32 0x536F7672796E53776170466F726D756C61000000000000000000000000000000 PUSH2 0x1F86 JUMP JUMPDEST SWAP5 POP DUP13 SWAP11 POP PUSH1 0x2 DUP15 MLOAD GT DUP1 ISZERO PUSH2 0xE4F JUMPI POP DUP14 MLOAD PUSH1 0x2 SWAP1 MOD PUSH1 0x1 EQ JUMPDEST ISZERO ISZERO PUSH2 0xEA5 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5041544800000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x2 SWAP4 POP JUMPDEST DUP14 MLOAD DUP5 LT ISZERO PUSH2 0x1616 JUMPI DUP14 PUSH1 0x2 DUP6 SUB DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xEC4 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD SWAP3 POP DUP14 PUSH1 0x1 DUP6 SUB DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xEE1 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD SWAP2 POP DUP14 DUP5 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xEFB JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD SWAP1 POP DUP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x8DA5CB5B PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xF45 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xF59 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xF6F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP6 POP PUSH2 0xF7D DUP7 DUP5 PUSH2 0x20AB JUMP JUMPDEST SWAP3 POP PUSH2 0xF89 DUP7 DUP3 PUSH2 0x20AB JUMP JUMPDEST SWAP1 POP DUP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ ISZERO PUSH2 0x12EA JUMPI PUSH1 0x3 DUP5 LT DUP1 PUSH2 0xFE0 JUMPI POP DUP14 PUSH1 0x3 DUP6 SUB DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xFC0 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ ISZERO JUMPDEST ISZERO PUSH2 0x1052 JUMPI DUP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x18160DDD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1023 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1037 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x104D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP9 POP JUMPDEST DUP6 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xD8959512 DUP5 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x10AD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x10C1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x10D7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xE53AAE900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 MLOAD SWAP3 SWAP11 POP SWAP1 DUP9 AND SWAP2 PUSH4 0xE53AAE9 SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0xA0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1141 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1155 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0xA0 DUP2 LT ISZERO PUSH2 0x116B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x20 SWAP1 DUP2 ADD MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xF3250FE200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP14 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP13 SWAP1 MSTORE PUSH4 0xFFFFFFFF DUP4 AND PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 DUP2 ADD DUP16 SWAP1 MSTORE SWAP1 MLOAD SWAP2 SWAP10 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 AND SWAP3 PUSH4 0xF3250FE2 SWAP3 PUSH1 0x84 DUP1 DUP5 ADD SWAP4 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x11EC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1200 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1216 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x579CD3CA00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP13 POP PUSH2 0x12CC SWAP2 PUSH3 0xF4240 SWAP2 PUSH2 0x12C0 SWAP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND SWAP2 PUSH4 0x579CD3CA SWAP2 PUSH1 0x4 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1283 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1297 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x12AD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD DUP15 SWAP1 PUSH4 0xFFFFFFFF SWAP1 DUP2 AND SWAP1 PUSH2 0x210F AND JUMP JUMPDEST SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x218F AND JUMP JUMPDEST SWAP11 DUP12 SWAP1 SUB SWAP11 SWAP10 POP PUSH2 0x12E3 DUP10 DUP13 PUSH4 0xFFFFFFFF PUSH2 0x21FD AND JUMP JUMPDEST SWAP9 POP PUSH2 0x160B JUMP JUMPDEST DUP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ ISZERO PUSH2 0x15F9 JUMPI PUSH1 0x3 DUP5 LT DUP1 PUSH2 0x133F JUMPI POP DUP14 PUSH1 0x3 DUP6 SUB DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x131F JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ ISZERO JUMPDEST ISZERO PUSH2 0x13B1 JUMPI DUP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x18160DDD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1382 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1396 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x13AC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP9 POP JUMPDEST DUP6 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xD8959512 DUP3 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x140C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1420 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1436 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xE53AAE900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 MLOAD SWAP3 SWAP11 POP SWAP1 DUP9 AND SWAP2 PUSH4 0xE53AAE9 SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0xA0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x14A0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x14B4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0xA0 DUP2 LT ISZERO PUSH2 0x14CA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x20 SWAP1 DUP2 ADD MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x76CF0B5600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP14 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP13 SWAP1 MSTORE PUSH4 0xFFFFFFFF DUP4 AND PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 DUP2 ADD DUP16 SWAP1 MSTORE SWAP1 MLOAD SWAP2 SWAP10 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 AND SWAP3 PUSH4 0x76CF0B56 SWAP3 PUSH1 0x84 DUP1 DUP5 ADD SWAP4 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x154B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x155F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1575 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x579CD3CA00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP13 POP PUSH2 0x15E2 SWAP2 PUSH3 0xF4240 SWAP2 PUSH2 0x12C0 SWAP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND SWAP2 PUSH4 0x579CD3CA SWAP2 PUSH1 0x4 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1283 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP11 DUP12 SWAP1 SUB SWAP11 SWAP10 POP PUSH2 0x12E3 DUP10 DUP13 PUSH4 0xFFFFFFFF PUSH2 0x225A AND JUMP JUMPDEST PUSH2 0x1605 DUP7 DUP5 DUP4 DUP15 PUSH2 0x22BA JUMP JUMPDEST SWAP1 SWAP12 POP SWAP10 POP JUMPDEST PUSH1 0x2 DUP5 ADD SWAP4 POP PUSH2 0xEAA JUMP JUMPDEST POP SWAP9 SWAP13 SWAP12 POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP6 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xFC0C546A PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x167E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1692 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x16A8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD DUP8 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP2 AND SWAP1 DUP9 SWAP1 PUSH1 0x0 SWAP1 DUP2 LT PUSH2 0x16C5 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ PUSH2 0x172D JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F534F555243455F544F4B454E0000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0xAAFD6B7600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP8 SWAP1 MSTORE CALLER PUSH1 0x24 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 AND SWAP2 PUSH4 0xAAFD6B76 SWAP2 PUSH1 0x44 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1795 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x17A9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x17BF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 POP PUSH2 0xA03 DUP8 DUP3 DUP7 DUP7 PUSH1 0x0 DUP1 PUSH2 0x185A JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH2 0x17ED DUP2 PUSH2 0x239E JUMP JUMPDEST PUSH2 0x17FB DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 PUSH2 0x185A JUMP JUMPDEST SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1818 DUP6 DUP6 DUP6 DUP6 PUSH1 0x0 DUP1 PUSH2 0x185A JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH2 0x1829 PUSH2 0x1E5E JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x2 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 PUSH1 0x0 PUSH2 0x186B PUSH2 0x23F6 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE DUP9 PUSH2 0x187A DUP2 PUSH2 0x239E JUMP JUMPDEST PUSH1 0x2 DUP13 MLOAD GT DUP1 ISZERO PUSH2 0x1890 JUMPI POP DUP12 MLOAD PUSH1 0x2 SWAP1 MOD PUSH1 0x1 EQ JUMPDEST ISZERO ISZERO PUSH2 0x18E6 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5041544800000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x1921 DUP13 PUSH1 0x0 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x18F8 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD DUP14 PUSH1 0x1 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x1911 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD DUP14 PUSH2 0x2450 JUMP JUMPDEST PUSH1 0x0 SWAP5 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 AND ISZERO ISZERO PUSH2 0x1990 JUMPI DUP7 ISZERO PUSH2 0x198B JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F414646494C494154455F46454500000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x19FD JUMP JUMPDEST DUP7 PUSH1 0x0 LT DUP1 ISZERO PUSH2 0x19A2 JUMPI POP PUSH1 0x5 SLOAD DUP8 GT ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x19F8 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F414646494C494154455F46454500000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SWAP5 POP JUMPDEST CALLER SWAP4 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP10 AND ISZERO PUSH2 0x1A13 JUMPI DUP9 SWAP4 POP JUMPDEST PUSH2 0x1A1E DUP13 DUP6 DUP8 PUSH2 0x2654 JUMP JUMPDEST SWAP3 POP PUSH2 0x1A2D DUP4 DUP13 DUP13 DUP12 DUP12 PUSH2 0x2A6B JUMP JUMPDEST SWAP2 POP PUSH2 0x1A3A DUP4 DUP4 DUP7 PUSH2 0x2FCB JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x4 SSTORE SWAP11 SWAP10 POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA03 DUP8 DUP8 DUP8 DUP8 DUP8 DUP8 PUSH1 0x0 DUP1 PUSH2 0x1A7B JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1A73 DUP5 DUP5 DUP5 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x185A JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 DUP10 PUSH2 0x1A8B DUP2 PUSH2 0x239E JUMP JUMPDEST DUP13 MLOAD DUP14 SWAP1 PUSH1 0x0 NOT DUP2 ADD SWAP1 DUP2 LT PUSH2 0x1A9D JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD SWAP4 POP PUSH2 0x1AD2 PUSH32 0x536F7672796E5377617058000000000000000000000000000000000000000000 PUSH2 0x1F86 JUMP JUMPDEST SWAP3 POP PUSH2 0x1AFD PUSH32 0x424E54546F6B656E000000000000000000000000000000000000000000000000 PUSH2 0x1F86 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 DUP2 AND SWAP2 AND EQ PUSH2 0x1B5F JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5441524745545F544F4B454E0000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x1B6D DUP14 DUP14 DUP14 ADDRESS DUP12 DUP12 PUSH2 0x185A JUMP JUMPDEST SWAP2 POP PUSH2 0x1B7A DUP5 DUP5 DUP5 PUSH2 0x30AE JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x427C037400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP13 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP12 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x64 DUP2 ADD DUP11 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND SWAP2 PUSH4 0x427C0374 SWAP2 PUSH1 0x84 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1BF0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1C04 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP SWAP4 SWAP16 SWAP15 POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0x1C55 PUSH32 0x436F6E76657273696F6E5061746846696E646572000000000000000000000000 PUSH2 0x1F86 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0xA1C421CD00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP7 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE SWAP2 MLOAD SWAP3 SWAP4 POP SWAP1 DUP4 AND SWAP2 PUSH4 0xA1C421CD SWAP2 PUSH1 0x44 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1CC4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1CD8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1D01 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 MLOAD PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x1D19 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD PUSH1 0x20 DUP2 ADD DUP5 DUP2 GT ISZERO PUSH2 0x1D2C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP6 PUSH1 0x20 DUP3 MUL DUP4 ADD GT PUSH5 0x100000000 DUP3 GT OR ISZERO PUSH2 0x1D49 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP SWAP1 SWAP6 POP POP POP POP POP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1D61 PUSH2 0x1E5E JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x1DC7 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F4F574E4552000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x1DFE PUSH2 0x1E5E JUMP JUMPDEST PUSH3 0xF4240 DUP2 GT ISZERO PUSH2 0x1E59 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F414646494C494154455F46454500000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x5 SSTORE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x1EC0 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0x1F22 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ADDRESS EQ ISZERO PUSH2 0x1F22 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F414444524553535F49535F53454C4600000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xBB34534C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP2 PUSH4 0xBB34534C SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1FEC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2000 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2016 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x7472616E7366657228616464726573732C75696E743235362900000000000000 DUP2 MSTORE DUP2 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x19 ADD DUP2 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x64 SWAP1 SWAP3 ADD SWAP1 SWAP3 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0xE0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xE0 PUSH1 0x2 EXP SUB NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE PUSH2 0x20A6 SWAP1 DUP5 SWAP1 PUSH2 0x3175 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO ISZERO PUSH2 0x20D4 JUMPI POP DUP1 PUSH2 0x2109 JUMP JUMPDEST PUSH2 0x20DD DUP4 PUSH2 0x3203 JUMP JUMPDEST ISZERO PUSH2 0x20FD JUMPI POP PUSH20 0xEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE PUSH2 0x2109 JUMP JUMPDEST PUSH2 0x2106 DUP4 PUSH2 0x3294 JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 ISZERO ISZERO PUSH2 0x2122 JUMPI PUSH1 0x0 SWAP2 POP PUSH2 0x1D52 JUMP JUMPDEST POP DUP3 DUP3 MUL DUP3 DUP5 DUP3 DUP2 ISZERO ISZERO PUSH2 0x2132 JUMPI INVALID JUMPDEST DIV EQ PUSH2 0x2188 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP4 GT PUSH2 0x21E9 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4449564944455F42595F5A45524F0000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP3 DUP5 DUP2 ISZERO ISZERO PUSH2 0x21F4 JUMPI INVALID JUMPDEST DIV SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 ADD DUP4 DUP2 LT ISZERO PUSH2 0x2188 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 DUP4 LT ISZERO PUSH2 0x22B4 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F554E444552464C4F5700000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP SWAP1 SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x22C5 PUSH2 0x3521 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x67657452657475726E28616464726573732C616464726573732C75696E743235 DUP2 MSTORE PUSH32 0x3629000000000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP3 MLOAD SWAP2 DUP3 SWAP1 SUB PUSH1 0x22 ADD DUP3 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP12 AND PUSH1 0x24 DUP6 ADD MSTORE DUP10 AND PUSH1 0x44 DUP5 ADD MSTORE PUSH1 0x64 DUP1 DUP5 ADD DUP10 SWAP1 MSTORE DUP5 MLOAD DUP1 DUP6 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x84 SWAP1 SWAP4 ADD DUP5 MSTORE SWAP1 DUP3 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0xE0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xE0 PUSH1 0x2 EXP SUB NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR DUP2 MSTORE DUP2 MLOAD SWAP2 SWAP3 SWAP2 DUP5 SWAP2 DUP12 GAS STATICCALL DUP1 ISZERO ISZERO PUSH2 0x2387 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD MLOAD SWAP1 SWAP8 SWAP1 SWAP7 POP SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 GT PUSH2 0x1F22 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5A45524F5F56414C5545000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x4 SLOAD PUSH1 0x1 EQ PUSH2 0x1EC0 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5245454E5452414E4359000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x8DA5CB5B PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2491 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x24A5 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x24BB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 POP PUSH2 0x24C8 DUP3 PUSH2 0x3203 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 CALLVALUE GT ISZERO PUSH2 0x2596 JUMPI CALLVALUE DUP4 EQ PUSH2 0x252A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4554485F414D4F554E545F4D49534D41544348000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP1 ISZERO ISZERO PUSH2 0x2591 JUMPI PUSH2 0x253A DUP3 PUSH2 0x3294 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xD0E30DB0 CALLVALUE PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2577 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x258B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP JUMPDEST PUSH2 0x264D JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x262F JUMPI PUSH2 0x25C3 DUP6 CALLER ADDRESS DUP7 PUSH2 0x33E1 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2591 JUMPI DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x2E1A7D4D DUP5 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2612 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2626 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x264D JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2641 JUMPI PUSH2 0x2591 DUP6 CALLER DUP5 DUP7 PUSH2 0x33E1 JUMP JUMPDEST PUSH2 0x264D DUP6 CALLER ADDRESS DUP7 PUSH2 0x33E1 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x266A PUSH2 0x353C JUMP JUMPDEST DUP13 MLOAD PUSH1 0x2 SWAP1 DIV PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x26A9 JUMPI DUP2 PUSH1 0x20 ADD JUMPDEST PUSH2 0x2696 PUSH2 0x353C JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 SWAP1 SUB SWAP1 DUP2 PUSH2 0x268E JUMPI SWAP1 POP JUMPDEST POP SWAP9 POP PUSH1 0x0 SWAP8 POP PUSH2 0x26D9 PUSH32 0x424E54546F6B656E000000000000000000000000000000000000000000000000 PUSH2 0x1F86 JUMP JUMPDEST SWAP7 POP PUSH1 0x0 SWAP6 POP JUMPDEST PUSH1 0x1 DUP14 MLOAD SUB DUP7 LT ISZERO PUSH2 0x2874 JUMPI DUP13 DUP7 PUSH1 0x1 ADD DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x26FD JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD SWAP5 POP DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x8DA5CB5B PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2747 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x275B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2771 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD DUP14 MLOAD SWAP1 SWAP5 POP DUP14 SWAP1 PUSH1 0x2 DUP9 ADD SWAP1 DUP2 LT PUSH2 0x2787 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD SWAP3 POP DUP11 DUP1 ISZERO PUSH2 0x279E JUMPI POP DUP8 ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x27BB JUMPI POP DUP7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ JUMPDEST SWAP2 POP DUP2 ISZERO PUSH2 0x27C8 JUMPI PUSH1 0x1 SWAP8 POP JUMPDEST PUSH1 0xE0 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 DUP6 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP15 DUP9 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x2800 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x2840 DUP7 PUSH2 0x3203 JUMP JUMPDEST ISZERO ISZERO DUP2 MSTORE DUP4 ISZERO ISZERO PUSH1 0x20 SWAP1 SWAP2 ADD MSTORE DUP10 PUSH1 0x2 DUP9 DIV DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x285E JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MSTORE PUSH1 0x2 SWAP6 SWAP1 SWAP6 ADD SWAP5 PUSH2 0x26E0 JUMP JUMPDEST DUP9 PUSH1 0x0 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x2883 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x40 DUP1 DUP3 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 SWAP1 SWAP4 MSTORE SWAP1 SWAP2 KECCAK256 SLOAD SWAP1 SWAP2 POP PUSH1 0xFF AND ISZERO PUSH2 0x28F9 JUMPI DUP1 PUSH1 0xA0 ADD MLOAD ISZERO PUSH2 0x28DF JUMPI PUSH20 0xEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE PUSH1 0x40 DUP3 ADD MSTORE PUSH2 0x28F9 JUMP JUMPDEST DUP1 MLOAD PUSH2 0x28EA SWAP1 PUSH2 0x3294 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x40 DUP3 ADD MSTORE JUMPDEST DUP9 MLOAD DUP10 SWAP1 PUSH1 0x0 NOT DUP2 ADD SWAP1 DUP2 LT PUSH2 0x290B JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x60 DUP2 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 SWAP1 SWAP3 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 SLOAD SWAP1 SWAP2 POP PUSH1 0xFF AND ISZERO PUSH2 0x2982 JUMPI DUP1 PUSH1 0xA0 ADD MLOAD ISZERO PUSH2 0x2968 JUMPI PUSH20 0xEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE PUSH1 0x60 DUP3 ADD MSTORE PUSH2 0x2982 JUMP JUMPDEST DUP1 MLOAD PUSH2 0x2973 SWAP1 PUSH2 0x3294 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x60 DUP3 ADD MSTORE JUMPDEST PUSH1 0x0 SWAP6 POP JUMPDEST DUP9 MLOAD DUP7 LT ISZERO PUSH2 0x2A5A JUMPI DUP9 DUP7 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x299E JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD SWAP1 POP DUP1 PUSH1 0xA0 ADD MLOAD ISZERO PUSH2 0x2A48 JUMPI DUP1 PUSH1 0xC0 ADD MLOAD ISZERO PUSH2 0x29C9 JUMPI ADDRESS PUSH1 0x80 DUP3 ADD MSTORE PUSH2 0x2A43 JUMP JUMPDEST PUSH1 0x1 DUP10 MLOAD SUB DUP7 EQ ISZERO PUSH2 0x29E9 JUMPI PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP13 AND PUSH1 0x80 DUP3 ADD MSTORE PUSH2 0x2A43 JUMP JUMPDEST DUP9 DUP7 PUSH1 0x1 ADD DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x29FA JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0xA0 ADD MLOAD ISZERO PUSH2 0x2A3C JUMPI DUP9 DUP7 PUSH1 0x1 ADD DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x2A1E JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MLOAD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x80 DUP3 ADD MSTORE PUSH2 0x2A43 JUMP JUMPDEST ADDRESS PUSH1 0x80 DUP3 ADD MSTORE JUMPDEST PUSH2 0x2A4F JUMP JUMPDEST ADDRESS PUSH1 0x80 DUP3 ADD MSTORE JUMPDEST PUSH1 0x1 SWAP1 SWAP6 ADD SWAP5 PUSH2 0x2987 JUMP JUMPDEST POP SWAP7 SWAP12 SWAP11 POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x2A79 PUSH2 0x353C JUMP JUMPDEST PUSH1 0x0 DUP10 SWAP4 POP PUSH1 0x0 SWAP3 POP JUMPDEST DUP11 MLOAD DUP4 LT ISZERO PUSH2 0x2F64 JUMPI DUP11 DUP4 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x2A9A JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD SWAP2 POP DUP2 PUSH1 0xA0 ADD MLOAD ISZERO PUSH2 0x2B2B JUMPI DUP3 ISZERO DUP1 ISZERO SWAP1 PUSH2 0x2AE7 JUMPI POP DUP11 MLOAD ADDRESS SWAP1 DUP13 SWAP1 PUSH1 0x0 NOT DUP7 ADD SWAP1 DUP2 LT PUSH2 0x2ACE JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x80 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ JUMPDEST DUP1 ISZERO PUSH2 0x2B0E JUMPI POP PUSH1 0x40 DUP1 DUP4 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE KECCAK256 SLOAD PUSH1 0xFF AND ISZERO JUMPDEST ISZERO PUSH2 0x2B26 JUMPI PUSH2 0x2B26 DUP3 PUSH1 0x40 ADD MLOAD DUP4 PUSH1 0x0 ADD MLOAD DUP7 PUSH2 0x201E JUMP JUMPDEST PUSH2 0x2B61 JUMP JUMPDEST DUP2 PUSH1 0x20 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP3 PUSH1 0x40 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ ISZERO ISZERO PUSH2 0x2B61 JUMPI PUSH2 0x2B61 DUP3 PUSH1 0x40 ADD MLOAD DUP4 PUSH1 0x0 ADD MLOAD DUP7 PUSH2 0x30AE JUMP JUMPDEST DUP2 PUSH1 0xA0 ADD MLOAD ISZERO ISZERO PUSH2 0x2C24 JUMPI DUP2 MLOAD PUSH1 0x40 DUP1 DUP5 ADD MLOAD PUSH1 0x60 DUP6 ADD MLOAD DUP3 MLOAD PUSH32 0x5E5144EB00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 DUP4 AND PUSH1 0x4 DUP3 ADD MSTORE SWAP1 DUP3 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 DUP2 ADD DUP9 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x64 DUP3 ADD MSTORE SWAP2 MLOAD SWAP3 AND SWAP2 PUSH4 0x5E5144EB SWAP2 PUSH1 0x84 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2BF1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2C05 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2C1B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP5 POP PUSH2 0x2DC1 JUMP JUMPDEST PUSH1 0x40 DUP1 DUP4 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x2D02 JUMPI DUP2 MLOAD PUSH1 0x40 DUP1 DUP5 ADD MLOAD PUSH1 0x60 DUP6 ADD MLOAD PUSH1 0x80 DUP7 ADD MLOAD DUP4 MLOAD PUSH32 0xE8DC12FF00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND PUSH1 0x4 DUP3 ADD MSTORE SWAP2 DUP4 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP3 ADD DUP10 SWAP1 MSTORE CALLER PUSH1 0x64 DUP4 ADD MSTORE DUP3 AND PUSH1 0x84 DUP3 ADD MSTORE SWAP2 MLOAD SWAP3 AND SWAP2 PUSH4 0xE8DC12FF SWAP2 CALLVALUE SWAP2 PUSH1 0xA4 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP6 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2CD7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2CEB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2C1B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x40 DUP1 DUP5 ADD MLOAD PUSH1 0x60 DUP6 ADD MLOAD PUSH1 0x80 DUP7 ADD MLOAD DUP4 MLOAD PUSH32 0xE8DC12FF00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND PUSH1 0x4 DUP3 ADD MSTORE SWAP2 DUP4 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP3 ADD DUP10 SWAP1 MSTORE CALLER PUSH1 0x64 DUP4 ADD MSTORE DUP3 AND PUSH1 0x84 DUP3 ADD MSTORE SWAP2 MLOAD SWAP3 AND SWAP2 PUSH4 0xE8DC12FF SWAP2 PUSH1 0xA4 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2D92 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2DA6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2DBC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP5 POP JUMPDEST DUP2 PUSH1 0xC0 ADD MLOAD ISZERO PUSH2 0x2ED3 JUMPI PUSH2 0x2DE2 PUSH3 0xF4240 PUSH2 0x12C0 DUP8 DUP11 PUSH4 0xFFFFFFFF PUSH2 0x210F AND JUMP JUMPDEST SWAP1 POP DUP2 PUSH1 0x60 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xA9059CBB DUP10 DUP4 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2E4B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2E5F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2E75 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD ISZERO ISZERO PUSH2 0x2ECD JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4645455F5452414E534645525F4641494C4544000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP1 DUP6 SUB SWAP5 POP JUMPDEST DUP2 PUSH1 0x60 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP3 PUSH1 0x40 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP4 PUSH1 0x20 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH32 0x7154B38B5DD31BB3122436A96D4E09ABA5B323AE1FD580025FAB55074334C095 DUP8 DUP10 CALLER PUSH1 0x40 MLOAD DUP1 DUP5 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP4 POP POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 DUP5 SWAP4 POP PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 PUSH2 0x2A83 JUMP JUMPDEST DUP9 DUP6 LT ISZERO PUSH2 0x2FBC JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F52455455524E5F544F4F5F4C4F570000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP SWAP3 SWAP10 SWAP9 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x2FD3 PUSH2 0x353C JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH1 0x1 DUP7 MLOAD SUB DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x2FE7 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MLOAD PUSH1 0x80 DUP2 ADD MLOAD SWAP1 SWAP3 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND ADDRESS EQ PUSH2 0x300D JUMPI PUSH2 0x264D JUMP JUMPDEST POP PUSH1 0x60 DUP2 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x30A3 JUMPI PUSH1 0xA0 DUP3 ADD MLOAD ISZERO PUSH2 0x3040 JUMPI INVALID JUMPDEST DUP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x205C2878 DUP5 DUP7 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2612 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x264D DUP2 DUP5 DUP7 PUSH2 0x201E JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0xDD62ED3E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE SWAP2 MLOAD PUSH1 0x0 SWAP3 DUP7 AND SWAP2 PUSH4 0xDD62ED3E SWAP2 PUSH1 0x44 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3119 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x312D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x3143 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 POP DUP2 DUP2 LT ISZERO PUSH2 0x316F JUMPI PUSH1 0x0 DUP2 GT ISZERO PUSH2 0x3164 JUMPI PUSH2 0x3164 DUP5 DUP5 PUSH1 0x0 PUSH2 0x3499 JUMP JUMPDEST PUSH2 0x316F DUP5 DUP5 DUP5 PUSH2 0x3499 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0x317D PUSH2 0x3578 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE POP SWAP1 POP PUSH1 0x20 DUP2 DUP4 MLOAD PUSH1 0x20 DUP6 ADD PUSH1 0x0 DUP8 GAS CALL DUP1 ISZERO ISZERO PUSH2 0x31AA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD ISZERO ISZERO PUSH2 0x20A6 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5452414E534645525F4641494C454400000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x320E PUSH2 0x3578 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x69735632384F7248696768657228290000000000000000000000000000000000 DUP2 MSTORE DUP2 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0xF ADD DUP2 KECCAK256 PUSH1 0x4 DUP3 MSTORE PUSH1 0x24 DUP3 ADD SWAP1 SWAP3 MSTORE PUSH1 0x20 DUP1 DUP3 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0xE0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xE0 PUSH1 0x2 EXP SUB NOT SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 OR DUP4 MSTORE DUP2 MLOAD SWAP2 SWAP3 SWAP1 SWAP2 DUP5 SWAP2 DUP9 PUSH2 0x1388 STATICCALL SWAP3 POP DUP3 DUP1 ISZERO PUSH2 0x3289 JUMPI POP DUP2 MLOAD ISZERO ISZERO JUMPDEST SWAP4 POP JUMPDEST POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x71F52BF3 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x32D8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x32EC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x3302 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH2 0xFFFF AND SWAP3 POP PUSH1 0x0 SWAP2 POP JUMPDEST DUP3 DUP3 LT ISZERO PUSH2 0x33C3 JUMPI DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x19B64015 DUP4 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3360 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3374 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x338A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 SWAP2 POP PUSH1 0xFF AND ISZERO PUSH2 0x33B8 JUMPI DUP1 SWAP4 POP PUSH2 0x328C JUMP JUMPDEST PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x330F JUMP JUMPDEST POP PUSH20 0xEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x7472616E7366657246726F6D28616464726573732C616464726573732C75696E DUP2 MSTORE PUSH32 0x7432353629000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP3 MLOAD SWAP2 DUP3 SWAP1 SUB PUSH1 0x25 ADD DUP3 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP9 AND PUSH1 0x24 DUP6 ADD MSTORE DUP7 AND PUSH1 0x44 DUP5 ADD MSTORE PUSH1 0x64 DUP1 DUP5 ADD DUP7 SWAP1 MSTORE DUP5 MLOAD DUP1 DUP6 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x84 SWAP1 SWAP4 ADD SWAP1 SWAP4 MSTORE DUP2 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0xE0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xE0 PUSH1 0x2 EXP SUB NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE PUSH2 0x316F SWAP1 DUP6 SWAP1 PUSH2 0x3175 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x617070726F766528616464726573732C75696E74323536290000000000000000 DUP2 MSTORE DUP2 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x18 ADD DUP2 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x64 SWAP1 SWAP3 ADD SWAP1 SWAP3 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0xE0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xE0 PUSH1 0x2 EXP SUB NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE PUSH2 0x20A6 SWAP1 DUP5 SWAP1 PUSH2 0x3175 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD DUP3 MSTORE SWAP1 PUSH1 0x2 SWAP1 DUP3 SWAP1 DUP1 CODESIZE DUP4 CODECOPY POP SWAP2 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xE0 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE SWAP2 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x60 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0xA0 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0xC0 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 SWAP1 PUSH1 0x20 DUP3 MUL DUP1 CODESIZE DUP4 CODECOPY POP SWAP2 SWAP3 SWAP2 POP POP JUMP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 0xfc PUSH4 0x55C3C67E 0xd0 POP PUSH10 0x7B7FD7B2BC3393A8CCE9 DUP3 SWAP11 0xab 0xb5 0x5c 0xbd 0xc 0x2e GASLIMIT 0x4e PC 0xc1 DELEGATECALL STOP 0x29 ", - "sourceMap": "1919:28113:3:-;;;249:1:68;362:32;;2522:5:3;2489:38;;3348:129;8:9:-1;5:2;;;30:1;27;20:12;5:2;3348:129:3;;;;;;;;;;;;;488:5:66;:18;;-1:-1:-1;;;;;;488:18:66;496:10;488:18;;;3348:129:3;;475:23:72;3348:129:3;475:13:72;;;;:23;:::i;:::-;-1:-1:-1;1931:8:60;:39;;-1:-1:-1;;;;;1931:39:60;;;-1:-1:-1;;;;;;1931:39:60;;;;;;;;1974:12;:43;;;;;;;;-1:-1:-1;2227:42:3;1931:8:60;3434:32:3;:11;:32;;;:39;;-1:-1:-1;;3434:39:3;1931::60;3434::3;;;1919:28113;;553:117:72;-1:-1:-1;;;;;620:22:72;;;;612:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;553:117;:::o;1919:28113:3:-;;;;;;;" - }, - "deployedBytecode": { - "linkReferences": {}, - "object": "6080604052600436106101665763ffffffff60e060020a600035041663024c7ec7811461016b57806302ef521e146101875780630c8496cc146101ad5780632978c10e1461021d5780632fe8a6ad146102a657806349d10b64146102cf578063569706eb146102e45780635d732ff2146103475780635e35359e1461035c57806361cd756e1461038657806379ba5097146103b75780637b103999146103cc5780637f9c0ecd146103e15780638077ccf71461043857806389f9cc61146104595780638da5cb5b146104cc578063ab6214ce146104e1578063b1e9932b1461054b578063b4a176d3146105b6578063b77d239b146105cb578063c52173de14610635578063c7ba24bc14610694578063c98fefed146106f2578063cb32564e14610750578063d4ee1d90146107c4578063d734fa19146107d9578063e57738e514610850578063f2fde38b146108c0578063f3898a97146108e1578063f3bc7d2a14610932575b600080fd5b34801561017757600080fd5b50610185600435151561094a565b005b34801561019357600080fd5b50610185600160a060020a03600435166024351515610992565b3480156101b957600080fd5b50604080516020600480358082013583810280860185019096528085526102049536959394602494938501929182918501908490808284375094975050933594506109db9350505050565b6040805192835260208301919091528051918290030190f35b34801561022957600080fd5b50604080516020600480358082013583810280860185019096528085526102949536959394602494938501929182918501908490808284375094975050843595505050602083013592600160a060020a036040820135811693506060820135169150608001356109f3565b60408051918252519081900360200190f35b3480156102b257600080fd5b506102bb610a0e565b604080519115158252519081900360200190f35b3480156102db57600080fd5b50610185610a2f565b604080516020600480358082013583810280860185019096528085526102949536959394602494938501929182918501908490808284375094975050843595505050602083013592600160a060020a036040820135169250606001359050610cae565b34801561035357600080fd5b50610294610cc9565b34801561036857600080fd5b50610185600160a060020a0360043581169060243516604435610ccf565b34801561039257600080fd5b5061039b610d08565b60408051600160a060020a039092168252519081900360200190f35b3480156103c357600080fd5b50610185610d17565b3480156103d857600080fd5b5061039b610dea565b3480156103ed57600080fd5b5060408051602060048035808201358381028086018501909652808552610294953695939460249493850192918291850190849080828437509497505093359450610df99350505050565b34801561044457600080fd5b506102bb600160a060020a0360043516611628565b34801561046557600080fd5b50604080516020600480358082013583810280860185019096528085526102949536959394602494938501929182918501908490808284375094975050600160a060020a03853581169650602086013595604081013595506060013516925061163d915050565b3480156104d857600080fd5b5061039b6117d2565b604080516020600480358082013583810280860185019096528085526102949536959394602494938501929182918501908490808284375094975050843595505050602083013592600160a060020a036040820135811693506060820135169150608001356117e1565b34801561055757600080fd5b5060408051602060048035808201358381028086018501909652808552610294953695939460249493850192918291850190849080828437509497505084359550505060208301359260400135600160a060020a031691506118079050565b3480156105c257600080fd5b50610185611821565b604080516020600480358082013583810280860185019096528085526102949536959394602494938501929182918501908490808284375094975050843595505050602083013592600160a060020a0360408201358116935060608201351691506080013561185a565b604080516020600480358082013583810280860185019096528085526102949536959394602494938501929182918501908490808284375094975050843595505050602083013592604081013592506060810135915060800135611a4e565b3480156106a057600080fd5b506040805160206004803580820135838102808601850190965280855261029495369593946024949385019291829185019084908082843750949750508435955050506020909201359150611a619050565b60408051602060048035808201358381028086018501909652808552610294953695939460249493850192918291850190849080828437509497505084359550505060208301359260400135600160a060020a031691506118079050565b6040805160206004803580820135838102808601850190965280855261029495369593946024949385019291829185019084908082843750949750508435955050506020830135926040810135925060608101359150608081013590600160a060020a0360a0820135169060c00135611a7b565b3480156107d057600080fd5b5061039b611c19565b3480156107e557600080fd5b50610800600160a060020a0360043581169060243516611c28565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561083c578181015183820152602001610824565b505050509050019250505060405180910390f35b34801561085c57600080fd5b50604080516020600480358082013583810280860185019096528085526102949536959394602494938501929182918501908490808284375094975050843595505050602083013592600160a060020a036040820135169250606001359050610cae565b3480156108cc57600080fd5b50610185600160a060020a0360043516611d59565b6040805160206004803580820135838102808601850190965280855261029495369593946024949385019291829185019084908082843750949750508435955050506020909201359150611a619050565b34801561093e57600080fd5b50610185600435611df6565b610952611e5e565b60038054911515740100000000000000000000000000000000000000000274ff000000000000000000000000000000000000000019909216919091179055565b61099a611e5e565b816109a481611ec2565b826109ae81611f25565b5050600160a060020a03919091166000908152600660205260409020805460ff1916911515919091179055565b6000806109e88484610df9565b946000945092505050565b6000610a0387878787878761185a565b979650505050505050565b60035474010000000000000000000000000000000000000000900460ff1681565b60008054600160a060020a0316331480610a64575060035474010000000000000000000000000000000000000000900460ff16155b1515610aba576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b610ae37f436f6e7472616374526567697374727900000000000000000000000000000000611f86565b600254909150600160a060020a03808316911614801590610b0c5750600160a060020a03811615155b1515610b62576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e56414c49445f5245474953545259000000000000000000000000604482015290519081900360640190fd5b604080517fbb34534c0000000000000000000000000000000000000000000000000000000081527f436f6e747261637452656769737472790000000000000000000000000000000060048201529051600091600160a060020a0384169163bb34534c9160248082019260209290919082900301818787803b158015610be657600080fd5b505af1158015610bfa573d6000803e3d6000fd5b505050506040513d6020811015610c1057600080fd5b5051600160a060020a03161415610c71576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e56414c49445f5245474953545259000000000000000000000000604482015290519081900360640190fd5b6002805460038054600160a060020a0380841673ffffffffffffffffffffffffffffffffffffffff19928316179092559091169216919091179055565b6000610cbf8686866000878761185a565b9695505050505050565b60055481565b610cd7611e5e565b82610ce181611ec2565b82610ceb81611ec2565b83610cf581611f25565b610d0086868661201e565b505050505050565b600354600160a060020a031681565b600154600160a060020a03163314610d79576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b60015460008054604051600160a060020a0393841693909116917f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91a3600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b600254600160a060020a031681565b600080600080600080600080600080600080610e347f536f7672796e53776170466f726d756c61000000000000000000000000000000611f86565b94508c9a5060028e51118015610e4f57508d51600290066001145b1515610ea5576040805160e560020a62461bcd02815260206004820152601060248201527f4552525f494e56414c49445f5041544800000000000000000000000000000000604482015290519081900360640190fd5b600293505b8d51841015611616578d60028503815181101515610ec457fe5b9060200190602002015192508d60018503815181101515610ee157fe5b9060200190602002015191508d84815181101515610efb57fe5b90602001906020020151905081600160a060020a0316638da5cb5b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610f4557600080fd5b505af1158015610f59573d6000803e3d6000fd5b505050506040513d6020811015610f6f57600080fd5b50519550610f7d86846120ab565b9250610f8986826120ab565b905081600160a060020a031681600160a060020a031614156112ea576003841080610fe057508d60038503815181101515610fc057fe5b90602001906020020151600160a060020a031682600160a060020a031614155b156110525781600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561102357600080fd5b505af1158015611037573d6000803e3d6000fd5b505050506040513d602081101561104d57600080fd5b505198505b85600160a060020a031663d8959512846040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b1580156110ad57600080fd5b505af11580156110c1573d6000803e3d6000fd5b505050506040513d60208110156110d757600080fd5b5051604080517f0e53aae9000000000000000000000000000000000000000000000000000000008152600160a060020a0386811660048301529151929a5090881691630e53aae99160248082019260a0929091908290030181600087803b15801561114157600080fd5b505af1158015611155573d6000803e3d6000fd5b505050506040513d60a081101561116b57600080fd5b50602090810151604080517ff3250fe2000000000000000000000000000000000000000000000000000000008152600481018d9052602481018c905263ffffffff83166044820152606481018f90529051919950600160a060020a0388169263f3250fe2926084808401938290030181600087803b1580156111ec57600080fd5b505af1158015611200573d6000803e3d6000fd5b505050506040513d602081101561121657600080fd5b5051604080517f579cd3ca0000000000000000000000000000000000000000000000000000000081529051919c506112cc91620f4240916112c091600160a060020a038b169163579cd3ca9160048083019260209291908290030181600087803b15801561128357600080fd5b505af1158015611297573d6000803e3d6000fd5b505050506040513d60208110156112ad57600080fd5b50518e9063ffffffff9081169061210f16565b9063ffffffff61218f16565b9a8b90039a99506112e3898c63ffffffff6121fd16565b985061160b565b81600160a060020a031683600160a060020a031614156115f957600384108061133f57508d6003850381518110151561131f57fe5b90602001906020020151600160a060020a031682600160a060020a031614155b156113b15781600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561138257600080fd5b505af1158015611396573d6000803e3d6000fd5b505050506040513d60208110156113ac57600080fd5b505198505b85600160a060020a031663d8959512826040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b15801561140c57600080fd5b505af1158015611420573d6000803e3d6000fd5b505050506040513d602081101561143657600080fd5b5051604080517f0e53aae9000000000000000000000000000000000000000000000000000000008152600160a060020a0384811660048301529151929a5090881691630e53aae99160248082019260a0929091908290030181600087803b1580156114a057600080fd5b505af11580156114b4573d6000803e3d6000fd5b505050506040513d60a08110156114ca57600080fd5b50602090810151604080517f76cf0b56000000000000000000000000000000000000000000000000000000008152600481018d9052602481018c905263ffffffff83166044820152606481018f90529051919950600160a060020a038816926376cf0b56926084808401938290030181600087803b15801561154b57600080fd5b505af115801561155f573d6000803e3d6000fd5b505050506040513d602081101561157557600080fd5b5051604080517f579cd3ca0000000000000000000000000000000000000000000000000000000081529051919c506115e291620f4240916112c091600160a060020a038b169163579cd3ca9160048083019260209291908290030181600087803b15801561128357600080fd5b9a8b90039a99506112e3898c63ffffffff61225a16565b6116058684838e6122ba565b909b5099505b600284019350610eaa565b50989c9b505050505050505050505050565b60066020526000908152604090205460ff1681565b60008085600160a060020a031663fc0c546a6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561167e57600080fd5b505af1158015611692573d6000803e3d6000fd5b505050506040513d60208110156116a857600080fd5b50518751600160a060020a0390911690889060009081106116c557fe5b60209081029091010151600160a060020a03161461172d576040805160e560020a62461bcd02815260206004820152601860248201527f4552525f494e56414c49445f534f555243455f544f4b454e0000000000000000604482015290519081900360640190fd5b604080517faafd6b76000000000000000000000000000000000000000000000000000000008152600481018790523360248201529051600160a060020a0388169163aafd6b769160448083019260209291908290030181600087803b15801561179557600080fd5b505af11580156117a9573d6000803e3d6000fd5b505050506040513d60208110156117bf57600080fd5b50519050610a038782868660008061185a565b600054600160a060020a031681565b6000846117ed8161239e565b6117fb88888888888861185a565b98975050505050505050565b60006118188585858560008061185a565b95945050505050565b611829611e5e565b6003546002805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055565b60008060006060600061186b6123f6565b60026004558861187a8161239e565b60028c5111801561189057508b51600290066001145b15156118e6576040805160e560020a62461bcd02815260206004820152601060248201527f4552525f494e56414c49445f5041544800000000000000000000000000000000604482015290519081900360640190fd5b6119218c60008151811015156118f857fe5b906020019060200201518d600181518110151561191157fe5b906020019060200201518d612450565b60009450600160a060020a038816151561199057861561198b576040805160e560020a62461bcd02815260206004820152601960248201527f4552525f494e56414c49445f414646494c494154455f46454500000000000000604482015290519081900360640190fd5b6119fd565b8660001080156119a257506005548711155b15156119f8576040805160e560020a62461bcd02815260206004820152601960248201527f4552525f494e56414c49445f414646494c494154455f46454500000000000000604482015290519081900360640190fd5b600194505b339350600160a060020a03891615611a13578893505b611a1e8c8587612654565b9250611a2d838c8c8b8b612a6b565b9150611a3a838386612fcb565b5060016004559a9950505050505050505050565b6000610a03878787878787600080611a7b565b6000611a73848484600080600061185a565b949350505050565b60008060008089611a8b8161239e565b8c518d906000198101908110611a9d57fe5b906020019060200201519350611ad27f536f7672796e5377617058000000000000000000000000000000000000000000611f86565b9250611afd7f424e54546f6b656e000000000000000000000000000000000000000000000000611f86565b600160a060020a03858116911614611b5f576040805160e560020a62461bcd02815260206004820152601860248201527f4552525f494e56414c49445f5441524745545f544f4b454e0000000000000000604482015290519081900360640190fd5b611b6d8d8d8d308b8b61185a565b9150611b7a8484846130ae565b604080517f427c0374000000000000000000000000000000000000000000000000000000008152600481018c9052602481018b905260448101849052606481018a90529051600160a060020a0385169163427c037491608480830192600092919082900301818387803b158015611bf057600080fd5b505af1158015611c04573d6000803e3d6000fd5b50939f9e505050505050505050505050505050565b600154600160a060020a031681565b60606000611c557f436f6e76657273696f6e5061746846696e646572000000000000000000000000611f86565b604080517fa1c421cd000000000000000000000000000000000000000000000000000000008152600160a060020a038781166004830152868116602483015291519293509083169163a1c421cd9160448082019260009290919082900301818387803b158015611cc457600080fd5b505af1158015611cd8573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526020811015611d0157600080fd5b810190808051640100000000811115611d1957600080fd5b82016020810184811115611d2c57600080fd5b8151856020820283011164010000000082111715611d4957600080fd5b50909550505050505b5092915050565b611d61611e5e565b600054600160a060020a0382811691161415611dc7576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f53414d455f4f574e4552000000000000000000000000000000000000604482015290519081900360640190fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b611dfe611e5e565b620f4240811115611e59576040805160e560020a62461bcd02815260206004820152601960248201527f4552525f494e56414c49445f414646494c494154455f46454500000000000000604482015290519081900360640190fd5b600555565b600054600160a060020a03163314611ec0576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b565b600160a060020a0381161515611f22576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b50565b600160a060020a038116301415611f22576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f414444524553535f49535f53454c4600000000000000000000000000604482015290519081900360640190fd5b600254604080517fbb34534c000000000000000000000000000000000000000000000000000000008152600481018490529051600092600160a060020a03169163bb34534c91602480830192602092919082900301818787803b158015611fec57600080fd5b505af1158015612000573d6000803e3d6000fd5b505050506040513d602081101561201657600080fd5b505192915050565b604080517f7472616e7366657228616464726573732c75696e74323536290000000000000081528151908190036019018120600160a060020a03851660248301526044808301859052835180840390910181526064909201909252602081018051600160e060020a0316600160e060020a0319909316929092179091526120a6908490613175565b505050565b600160a060020a03811660009081526006602052604081205460ff1615156120d4575080612109565b6120dd83613203565b156120fd575073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee612109565b61210683613294565b90505b92915050565b6000808315156121225760009150611d52565b5082820282848281151561213257fe5b0414612188576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b9392505050565b6000808083116121e9576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f4449564944455f42595f5a45524f0000000000000000000000000000604482015290519081900360640190fd5b82848115156121f457fe5b04949350505050565b600082820183811015612188576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b6000818310156122b4576040805160e560020a62461bcd02815260206004820152600d60248201527f4552525f554e444552464c4f5700000000000000000000000000000000000000604482015290519081900360640190fd5b50900390565b6000806122c5613521565b604080517f67657452657475726e28616464726573732c616464726573732c75696e74323581527f36290000000000000000000000000000000000000000000000000000000000006020808301919091528251918290036022018220600160a060020a03808b16602485015289166044840152606480840189905284518085039091018152608490930184529082018051600160e060020a0316600160e060020a0319909216919091178152815191929184918b5afa80151561238757600080fd5b505080516020909101519097909650945050505050565b60008111611f22576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f5a45524f5f56414c5545000000000000000000000000000000000000604482015290519081900360640190fd5b600454600114611ec0576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f5245454e5452414e4359000000000000000000000000000000000000604482015290519081900360640190fd5b60008083600160a060020a0316638da5cb5b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561249157600080fd5b505af11580156124a5573d6000803e3d6000fd5b505050506040513d60208110156124bb57600080fd5b505191506124c882613203565b905060003411156125965734831461252a576040805160e560020a62461bcd02815260206004820152601760248201527f4552525f4554485f414d4f554e545f4d49534d41544348000000000000000000604482015290519081900360640190fd5b8015156125915761253a82613294565b600160a060020a031663d0e30db0346040518263ffffffff1660e060020a0281526004016000604051808303818588803b15801561257757600080fd5b505af115801561258b573d6000803e3d6000fd5b50505050505b61264d565b600160a060020a03851660009081526006602052604090205460ff161561262f576125c3853330866133e1565b80156125915784600160a060020a0316632e1a7d4d846040518263ffffffff1660e060020a02815260040180828152602001915050600060405180830381600087803b15801561261257600080fd5b505af1158015612626573d6000803e3d6000fd5b5050505061264d565b801561264157612591853384866133e1565b61264d853330866133e1565b5050505050565b606080600080600080600080600061266a61353c565b8c51600290046040519080825280602002602001820160405280156126a957816020015b61269661353c565b81526020019060019003908161268e5790505b509850600097506126d97f424e54546f6b656e000000000000000000000000000000000000000000000000611f86565b9650600095505b60018d5103861015612874578c866001018151811015156126fd57fe5b90602001906020020151945084600160a060020a0316638da5cb5b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561274757600080fd5b505af115801561275b573d6000803e3d6000fd5b505050506040513d602081101561277157600080fd5b50518d519094508d906002880190811061278757fe5b9060200190602002015192508a801561279e575087155b80156127bb575086600160a060020a031683600160a060020a0316145b915081156127c857600197505b60e06040519081016040528085600160a060020a0316815260200186600160a060020a031681526020018e8881518110151561280057fe5b90602001906020020151600160a060020a0316815260200184600160a060020a031681526020016000600160a060020a0316815260200161284086613203565b15158152831515602090910152896002880481518110151561285e57fe5b60209081029091010152600295909501946126e0565b88600081518110151561288357fe5b6020908102909101810151604080820151600160a060020a0316600090815260069093529091205490915060ff16156128f9578060a00151156128df5773eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee60408201526128f9565b80516128ea90613294565b600160a060020a031660408201525b88518990600019810190811061290b57fe5b60209081029091018101516060810151600160a060020a03166000908152600690925260409091205490915060ff1615612982578060a00151156129685773eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6060820152612982565b805161297390613294565b600160a060020a031660608201525b600095505b8851861015612a5a57888681518110151561299e57fe5b9060200190602002015190508060a0015115612a48578060c00151156129c957306080820152612a43565b60018951038614156129e957600160a060020a038c166080820152612a43565b88866001018151811015156129fa57fe5b9060200190602002015160a0015115612a3c578886600101815181101515612a1e57fe5b6020908102909101015151600160a060020a03166080820152612a43565b3060808201525b612a4f565b3060808201525b600190950194612987565b50969b9a5050505050505050505050565b600080600080612a7961353c565b6000899350600092505b8a51831015612f64578a83815181101515612a9a57fe5b9060200190602002015191508160a0015115612b2b578215801590612ae757508a5130908c906000198601908110612ace57fe5b9060200190602002015160800151600160a060020a0316145b8015612b0e5750604080830151600160a060020a031660009081526006602052205460ff16155b15612b2657612b26826040015183600001518661201e565b612b61565b8160200151600160a060020a03168260400151600160a060020a0316141515612b6157612b6182604001518360000151866130ae565b8160a001511515612c24578151604080840151606085015182517f5e5144eb000000000000000000000000000000000000000000000000000000008152600160a060020a039283166004820152908216602482015260448101889052600160648201529151921691635e5144eb916084808201926020929091908290030181600087803b158015612bf157600080fd5b505af1158015612c05573d6000803e3d6000fd5b505050506040513d6020811015612c1b57600080fd5b50519450612dc1565b604080830151600160a060020a031660009081526006602052205460ff1615612d025781516040808401516060850151608086015183517fe8dc12ff000000000000000000000000000000000000000000000000000000008152600160a060020a03938416600482015291831660248301526044820189905233606483015282166084820152915192169163e8dc12ff91349160a480830192602092919082900301818588803b158015612cd757600080fd5b505af1158015612ceb573d6000803e3d6000fd5b50505050506040513d6020811015612c1b57600080fd5b81516040808401516060850151608086015183517fe8dc12ff000000000000000000000000000000000000000000000000000000008152600160a060020a03938416600482015291831660248301526044820189905233606483015282166084820152915192169163e8dc12ff9160a4808201926020929091908290030181600087803b158015612d9257600080fd5b505af1158015612da6573d6000803e3d6000fd5b505050506040513d6020811015612dbc57600080fd5b505194505b8160c0015115612ed357612de2620f42406112c0878a63ffffffff61210f16565b90508160600151600160a060020a031663a9059cbb89836040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b158015612e4b57600080fd5b505af1158015612e5f573d6000803e3d6000fd5b505050506040513d6020811015612e7557600080fd5b50511515612ecd576040805160e560020a62461bcd02815260206004820152601760248201527f4552525f4645455f5452414e534645525f4641494c4544000000000000000000604482015290519081900360640190fd5b80850394505b8160600151600160a060020a03168260400151600160a060020a03168360200151600160a060020a03167f7154b38b5dd31bb3122436a96d4e09aba5b323ae1fd580025fab55074334c0958789336040518084815260200183815260200182600160a060020a0316600160a060020a03168152602001935050505060405180910390a4849350600190920191612a83565b88851015612fbc576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f52455455524e5f544f4f5f4c4f570000000000000000000000000000604482015290519081900360640190fd5b50929998505050505050505050565b612fd361353c565b6000846001865103815181101515612fe757fe5b602090810290910101516080810151909250600160a060020a0316301461300d5761264d565b506060810151600160a060020a03811660009081526006602052604090205460ff16156130a35760a08201511561304057fe5b80600160a060020a031663205c287884866040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050600060405180830381600087803b15801561261257600080fd5b61264d81848661201e565b604080517fdd62ed3e000000000000000000000000000000000000000000000000000000008152306004820152600160a060020a038481166024830152915160009286169163dd62ed3e91604480830192602092919082900301818787803b15801561311957600080fd5b505af115801561312d573d6000803e3d6000fd5b505050506040513d602081101561314357600080fd5b505190508181101561316f5760008111156131645761316484846000613499565b61316f848484613499565b50505050565b61317d613578565b602060405190810160405280600181525090506020818351602085016000875af18015156131aa57600080fd5b50805115156120a6576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f5452414e534645525f4641494c454400000000000000000000000000604482015290519081900360640190fd5b60008061320e613578565b604080517f69735632384f72486967686572282900000000000000000000000000000000008152815190819003600f018120600482526024820190925260208082018051600160e060020a0316600160e060020a0319909416939093178352815191929091849188611388fa92508280156132895750815115155b93505b505050919050565b60008060008084600160a060020a03166371f52bf36040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156132d857600080fd5b505af11580156132ec573d6000803e3d6000fd5b505050506040513d602081101561330257600080fd5b505161ffff169250600091505b828210156133c35784600160a060020a03166319b64015836040518263ffffffff1660e060020a02815260040180828152602001915050602060405180830381600087803b15801561336057600080fd5b505af1158015613374573d6000803e3d6000fd5b505050506040513d602081101561338a57600080fd5b5051600160a060020a03811660009081526006602052604090205490915060ff16156133b85780935061328c565b60019091019061330f565b5073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee949350505050565b604080517f7472616e7366657246726f6d28616464726573732c616464726573732c75696e81527f74323536290000000000000000000000000000000000000000000000000000006020808301919091528251918290036025018220600160a060020a03808816602485015286166044840152606480840186905284518085039091018152608490930190935281018051600160e060020a0316600160e060020a03199093169290921790915261316f908590613175565b604080517f617070726f766528616464726573732c75696e7432353629000000000000000081528151908190036018018120600160a060020a03851660248301526044808301859052835180840390910181526064909201909252602081018051600160e060020a0316600160e060020a0319909316929092179091526120a6908490613175565b60408051808201825290600290829080388339509192915050565b6040805160e081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c081019190915290565b60206040519081016040528060019060208202803883395091929150505600a165627a7a72305820fc6355c3c67ed050697b7fd7b2bc3393a8cce9829aabb55cbd0c2e454e58c1f40029", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x166 JUMPI PUSH4 0xFFFFFFFF PUSH1 0xE0 PUSH1 0x2 EXP PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x24C7EC7 DUP2 EQ PUSH2 0x16B JUMPI DUP1 PUSH4 0x2EF521E EQ PUSH2 0x187 JUMPI DUP1 PUSH4 0xC8496CC EQ PUSH2 0x1AD JUMPI DUP1 PUSH4 0x2978C10E EQ PUSH2 0x21D JUMPI DUP1 PUSH4 0x2FE8A6AD EQ PUSH2 0x2A6 JUMPI DUP1 PUSH4 0x49D10B64 EQ PUSH2 0x2CF JUMPI DUP1 PUSH4 0x569706EB EQ PUSH2 0x2E4 JUMPI DUP1 PUSH4 0x5D732FF2 EQ PUSH2 0x347 JUMPI DUP1 PUSH4 0x5E35359E EQ PUSH2 0x35C JUMPI DUP1 PUSH4 0x61CD756E EQ PUSH2 0x386 JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x3B7 JUMPI DUP1 PUSH4 0x7B103999 EQ PUSH2 0x3CC JUMPI DUP1 PUSH4 0x7F9C0ECD EQ PUSH2 0x3E1 JUMPI DUP1 PUSH4 0x8077CCF7 EQ PUSH2 0x438 JUMPI DUP1 PUSH4 0x89F9CC61 EQ PUSH2 0x459 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x4CC JUMPI DUP1 PUSH4 0xAB6214CE EQ PUSH2 0x4E1 JUMPI DUP1 PUSH4 0xB1E9932B EQ PUSH2 0x54B JUMPI DUP1 PUSH4 0xB4A176D3 EQ PUSH2 0x5B6 JUMPI DUP1 PUSH4 0xB77D239B EQ PUSH2 0x5CB JUMPI DUP1 PUSH4 0xC52173DE EQ PUSH2 0x635 JUMPI DUP1 PUSH4 0xC7BA24BC EQ PUSH2 0x694 JUMPI DUP1 PUSH4 0xC98FEFED EQ PUSH2 0x6F2 JUMPI DUP1 PUSH4 0xCB32564E EQ PUSH2 0x750 JUMPI DUP1 PUSH4 0xD4EE1D90 EQ PUSH2 0x7C4 JUMPI DUP1 PUSH4 0xD734FA19 EQ PUSH2 0x7D9 JUMPI DUP1 PUSH4 0xE57738E5 EQ PUSH2 0x850 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x8C0 JUMPI DUP1 PUSH4 0xF3898A97 EQ PUSH2 0x8E1 JUMPI DUP1 PUSH4 0xF3BC7D2A EQ PUSH2 0x932 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x177 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x185 PUSH1 0x4 CALLDATALOAD ISZERO ISZERO PUSH2 0x94A JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x193 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x185 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD ISZERO ISZERO PUSH2 0x992 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1B9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x204 SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP POP SWAP4 CALLDATALOAD SWAP5 POP PUSH2 0x9DB SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x229 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x294 SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP POP DUP5 CALLDATALOAD SWAP6 POP POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD SWAP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x40 DUP3 ADD CALLDATALOAD DUP2 AND SWAP4 POP PUSH1 0x60 DUP3 ADD CALLDATALOAD AND SWAP2 POP PUSH1 0x80 ADD CALLDATALOAD PUSH2 0x9F3 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2B2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2BB PUSH2 0xA0E JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2DB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x185 PUSH2 0xA2F JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x294 SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP POP DUP5 CALLDATALOAD SWAP6 POP POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD SWAP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x40 DUP3 ADD CALLDATALOAD AND SWAP3 POP PUSH1 0x60 ADD CALLDATALOAD SWAP1 POP PUSH2 0xCAE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x353 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x294 PUSH2 0xCC9 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x368 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x185 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0xCCF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x392 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x39B PUSH2 0xD08 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3C3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x185 PUSH2 0xD17 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3D8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x39B PUSH2 0xDEA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3ED JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x294 SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP POP SWAP4 CALLDATALOAD SWAP5 POP PUSH2 0xDF9 SWAP4 POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x444 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2BB PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x1628 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x465 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x294 SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 CALLDATALOAD DUP2 AND SWAP7 POP PUSH1 0x20 DUP7 ADD CALLDATALOAD SWAP6 PUSH1 0x40 DUP2 ADD CALLDATALOAD SWAP6 POP PUSH1 0x60 ADD CALLDATALOAD AND SWAP3 POP PUSH2 0x163D SWAP2 POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4D8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x39B PUSH2 0x17D2 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x294 SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP POP DUP5 CALLDATALOAD SWAP6 POP POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD SWAP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x40 DUP3 ADD CALLDATALOAD DUP2 AND SWAP4 POP PUSH1 0x60 DUP3 ADD CALLDATALOAD AND SWAP2 POP PUSH1 0x80 ADD CALLDATALOAD PUSH2 0x17E1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x557 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x294 SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP POP DUP5 CALLDATALOAD SWAP6 POP POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD SWAP3 PUSH1 0x40 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP2 POP PUSH2 0x1807 SWAP1 POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5C2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x185 PUSH2 0x1821 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x294 SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP POP DUP5 CALLDATALOAD SWAP6 POP POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD SWAP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x40 DUP3 ADD CALLDATALOAD DUP2 AND SWAP4 POP PUSH1 0x60 DUP3 ADD CALLDATALOAD AND SWAP2 POP PUSH1 0x80 ADD CALLDATALOAD PUSH2 0x185A JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x294 SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP POP DUP5 CALLDATALOAD SWAP6 POP POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD SWAP3 PUSH1 0x40 DUP2 ADD CALLDATALOAD SWAP3 POP PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP2 POP PUSH1 0x80 ADD CALLDATALOAD PUSH2 0x1A4E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6A0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x294 SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP POP DUP5 CALLDATALOAD SWAP6 POP POP POP PUSH1 0x20 SWAP1 SWAP3 ADD CALLDATALOAD SWAP2 POP PUSH2 0x1A61 SWAP1 POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x294 SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP POP DUP5 CALLDATALOAD SWAP6 POP POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD SWAP3 PUSH1 0x40 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP2 POP PUSH2 0x1807 SWAP1 POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x294 SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP POP DUP5 CALLDATALOAD SWAP6 POP POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD SWAP3 PUSH1 0x40 DUP2 ADD CALLDATALOAD SWAP3 POP PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP2 POP PUSH1 0x80 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0xA0 DUP3 ADD CALLDATALOAD AND SWAP1 PUSH1 0xC0 ADD CALLDATALOAD PUSH2 0x1A7B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7D0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x39B PUSH2 0x1C19 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7E5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x800 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH2 0x1C28 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP4 MLOAD DUP2 DUP4 ADD MSTORE DUP4 MLOAD SWAP2 SWAP3 DUP4 SWAP3 SWAP1 DUP4 ADD SWAP2 DUP6 DUP2 ADD SWAP2 MUL DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x83C JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x824 JUMP JUMPDEST POP POP POP POP SWAP1 POP ADD SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x85C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x294 SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP POP DUP5 CALLDATALOAD SWAP6 POP POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD SWAP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x40 DUP3 ADD CALLDATALOAD AND SWAP3 POP PUSH1 0x60 ADD CALLDATALOAD SWAP1 POP PUSH2 0xCAE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8CC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x185 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x1D59 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x294 SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP POP DUP5 CALLDATALOAD SWAP6 POP POP POP PUSH1 0x20 SWAP1 SWAP3 ADD CALLDATALOAD SWAP2 POP PUSH2 0x1A61 SWAP1 POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x93E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x185 PUSH1 0x4 CALLDATALOAD PUSH2 0x1DF6 JUMP JUMPDEST PUSH2 0x952 PUSH2 0x1E5E JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD SWAP2 ISZERO ISZERO PUSH21 0x10000000000000000000000000000000000000000 MUL PUSH21 0xFF0000000000000000000000000000000000000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x99A PUSH2 0x1E5E JUMP JUMPDEST DUP2 PUSH2 0x9A4 DUP2 PUSH2 0x1EC2 JUMP JUMPDEST DUP3 PUSH2 0x9AE DUP2 PUSH2 0x1F25 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP2 SWAP1 SWAP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP2 ISZERO ISZERO SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x9E8 DUP5 DUP5 PUSH2 0xDF9 JUMP JUMPDEST SWAP5 PUSH1 0x0 SWAP5 POP SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA03 DUP8 DUP8 DUP8 DUP8 DUP8 DUP8 PUSH2 0x185A JUMP JUMPDEST SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ DUP1 PUSH2 0xA64 JUMPI POP PUSH1 0x3 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST ISZERO ISZERO PUSH2 0xABA JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0xAE3 PUSH32 0x436F6E7472616374526567697374727900000000000000000000000000000000 PUSH2 0x1F86 JUMP JUMPDEST PUSH1 0x2 SLOAD SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP4 AND SWAP2 AND EQ DUP1 ISZERO SWAP1 PUSH2 0xB0C JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO JUMPDEST ISZERO ISZERO PUSH2 0xB62 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245474953545259000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0xBB34534C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH32 0x436F6E7472616374526567697374727900000000000000000000000000000000 PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP2 PUSH4 0xBB34534C SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xBE6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xBFA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xC10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ ISZERO PUSH2 0xC71 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245474953545259000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP5 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP3 DUP4 AND OR SWAP1 SWAP3 SSTORE SWAP1 SWAP2 AND SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH2 0xCBF DUP7 DUP7 DUP7 PUSH1 0x0 DUP8 DUP8 PUSH2 0x185A JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x5 SLOAD DUP2 JUMP JUMPDEST PUSH2 0xCD7 PUSH2 0x1E5E JUMP JUMPDEST DUP3 PUSH2 0xCE1 DUP2 PUSH2 0x1EC2 JUMP JUMPDEST DUP3 PUSH2 0xCEB DUP2 PUSH2 0x1EC2 JUMP JUMPDEST DUP4 PUSH2 0xCF5 DUP2 PUSH2 0x1F25 JUMP JUMPDEST PUSH2 0xD00 DUP7 DUP7 DUP7 PUSH2 0x201E JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0xD79 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND SWAP4 SWAP1 SWAP2 AND SWAP2 PUSH32 0x343765429AEA5A34B3FF6A3785A98A5ABB2597ACA87BFBB58632C173D585373A SWAP2 LOG3 PUSH1 0x1 DUP1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND OR SWAP1 SWAP2 SSTORE AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0xE34 PUSH32 0x536F7672796E53776170466F726D756C61000000000000000000000000000000 PUSH2 0x1F86 JUMP JUMPDEST SWAP5 POP DUP13 SWAP11 POP PUSH1 0x2 DUP15 MLOAD GT DUP1 ISZERO PUSH2 0xE4F JUMPI POP DUP14 MLOAD PUSH1 0x2 SWAP1 MOD PUSH1 0x1 EQ JUMPDEST ISZERO ISZERO PUSH2 0xEA5 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5041544800000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x2 SWAP4 POP JUMPDEST DUP14 MLOAD DUP5 LT ISZERO PUSH2 0x1616 JUMPI DUP14 PUSH1 0x2 DUP6 SUB DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xEC4 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD SWAP3 POP DUP14 PUSH1 0x1 DUP6 SUB DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xEE1 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD SWAP2 POP DUP14 DUP5 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xEFB JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD SWAP1 POP DUP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x8DA5CB5B PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xF45 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xF59 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xF6F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP6 POP PUSH2 0xF7D DUP7 DUP5 PUSH2 0x20AB JUMP JUMPDEST SWAP3 POP PUSH2 0xF89 DUP7 DUP3 PUSH2 0x20AB JUMP JUMPDEST SWAP1 POP DUP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ ISZERO PUSH2 0x12EA JUMPI PUSH1 0x3 DUP5 LT DUP1 PUSH2 0xFE0 JUMPI POP DUP14 PUSH1 0x3 DUP6 SUB DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xFC0 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ ISZERO JUMPDEST ISZERO PUSH2 0x1052 JUMPI DUP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x18160DDD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1023 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1037 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x104D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP9 POP JUMPDEST DUP6 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xD8959512 DUP5 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x10AD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x10C1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x10D7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xE53AAE900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 MLOAD SWAP3 SWAP11 POP SWAP1 DUP9 AND SWAP2 PUSH4 0xE53AAE9 SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0xA0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1141 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1155 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0xA0 DUP2 LT ISZERO PUSH2 0x116B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x20 SWAP1 DUP2 ADD MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xF3250FE200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP14 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP13 SWAP1 MSTORE PUSH4 0xFFFFFFFF DUP4 AND PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 DUP2 ADD DUP16 SWAP1 MSTORE SWAP1 MLOAD SWAP2 SWAP10 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 AND SWAP3 PUSH4 0xF3250FE2 SWAP3 PUSH1 0x84 DUP1 DUP5 ADD SWAP4 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x11EC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1200 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1216 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x579CD3CA00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP13 POP PUSH2 0x12CC SWAP2 PUSH3 0xF4240 SWAP2 PUSH2 0x12C0 SWAP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND SWAP2 PUSH4 0x579CD3CA SWAP2 PUSH1 0x4 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1283 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1297 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x12AD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD DUP15 SWAP1 PUSH4 0xFFFFFFFF SWAP1 DUP2 AND SWAP1 PUSH2 0x210F AND JUMP JUMPDEST SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x218F AND JUMP JUMPDEST SWAP11 DUP12 SWAP1 SUB SWAP11 SWAP10 POP PUSH2 0x12E3 DUP10 DUP13 PUSH4 0xFFFFFFFF PUSH2 0x21FD AND JUMP JUMPDEST SWAP9 POP PUSH2 0x160B JUMP JUMPDEST DUP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ ISZERO PUSH2 0x15F9 JUMPI PUSH1 0x3 DUP5 LT DUP1 PUSH2 0x133F JUMPI POP DUP14 PUSH1 0x3 DUP6 SUB DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x131F JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ ISZERO JUMPDEST ISZERO PUSH2 0x13B1 JUMPI DUP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x18160DDD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1382 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1396 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x13AC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP9 POP JUMPDEST DUP6 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xD8959512 DUP3 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x140C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1420 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1436 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xE53AAE900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 MLOAD SWAP3 SWAP11 POP SWAP1 DUP9 AND SWAP2 PUSH4 0xE53AAE9 SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0xA0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x14A0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x14B4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0xA0 DUP2 LT ISZERO PUSH2 0x14CA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x20 SWAP1 DUP2 ADD MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x76CF0B5600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP14 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP13 SWAP1 MSTORE PUSH4 0xFFFFFFFF DUP4 AND PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 DUP2 ADD DUP16 SWAP1 MSTORE SWAP1 MLOAD SWAP2 SWAP10 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 AND SWAP3 PUSH4 0x76CF0B56 SWAP3 PUSH1 0x84 DUP1 DUP5 ADD SWAP4 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x154B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x155F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1575 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x579CD3CA00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP13 POP PUSH2 0x15E2 SWAP2 PUSH3 0xF4240 SWAP2 PUSH2 0x12C0 SWAP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND SWAP2 PUSH4 0x579CD3CA SWAP2 PUSH1 0x4 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1283 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP11 DUP12 SWAP1 SUB SWAP11 SWAP10 POP PUSH2 0x12E3 DUP10 DUP13 PUSH4 0xFFFFFFFF PUSH2 0x225A AND JUMP JUMPDEST PUSH2 0x1605 DUP7 DUP5 DUP4 DUP15 PUSH2 0x22BA JUMP JUMPDEST SWAP1 SWAP12 POP SWAP10 POP JUMPDEST PUSH1 0x2 DUP5 ADD SWAP4 POP PUSH2 0xEAA JUMP JUMPDEST POP SWAP9 SWAP13 SWAP12 POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP6 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xFC0C546A PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x167E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1692 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x16A8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD DUP8 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP2 AND SWAP1 DUP9 SWAP1 PUSH1 0x0 SWAP1 DUP2 LT PUSH2 0x16C5 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ PUSH2 0x172D JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F534F555243455F544F4B454E0000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0xAAFD6B7600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP8 SWAP1 MSTORE CALLER PUSH1 0x24 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 AND SWAP2 PUSH4 0xAAFD6B76 SWAP2 PUSH1 0x44 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1795 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x17A9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x17BF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 POP PUSH2 0xA03 DUP8 DUP3 DUP7 DUP7 PUSH1 0x0 DUP1 PUSH2 0x185A JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH2 0x17ED DUP2 PUSH2 0x239E JUMP JUMPDEST PUSH2 0x17FB DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 PUSH2 0x185A JUMP JUMPDEST SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1818 DUP6 DUP6 DUP6 DUP6 PUSH1 0x0 DUP1 PUSH2 0x185A JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH2 0x1829 PUSH2 0x1E5E JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x2 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 PUSH1 0x0 PUSH2 0x186B PUSH2 0x23F6 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE DUP9 PUSH2 0x187A DUP2 PUSH2 0x239E JUMP JUMPDEST PUSH1 0x2 DUP13 MLOAD GT DUP1 ISZERO PUSH2 0x1890 JUMPI POP DUP12 MLOAD PUSH1 0x2 SWAP1 MOD PUSH1 0x1 EQ JUMPDEST ISZERO ISZERO PUSH2 0x18E6 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5041544800000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x1921 DUP13 PUSH1 0x0 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x18F8 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD DUP14 PUSH1 0x1 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x1911 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD DUP14 PUSH2 0x2450 JUMP JUMPDEST PUSH1 0x0 SWAP5 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 AND ISZERO ISZERO PUSH2 0x1990 JUMPI DUP7 ISZERO PUSH2 0x198B JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F414646494C494154455F46454500000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x19FD JUMP JUMPDEST DUP7 PUSH1 0x0 LT DUP1 ISZERO PUSH2 0x19A2 JUMPI POP PUSH1 0x5 SLOAD DUP8 GT ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x19F8 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F414646494C494154455F46454500000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SWAP5 POP JUMPDEST CALLER SWAP4 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP10 AND ISZERO PUSH2 0x1A13 JUMPI DUP9 SWAP4 POP JUMPDEST PUSH2 0x1A1E DUP13 DUP6 DUP8 PUSH2 0x2654 JUMP JUMPDEST SWAP3 POP PUSH2 0x1A2D DUP4 DUP13 DUP13 DUP12 DUP12 PUSH2 0x2A6B JUMP JUMPDEST SWAP2 POP PUSH2 0x1A3A DUP4 DUP4 DUP7 PUSH2 0x2FCB JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x4 SSTORE SWAP11 SWAP10 POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA03 DUP8 DUP8 DUP8 DUP8 DUP8 DUP8 PUSH1 0x0 DUP1 PUSH2 0x1A7B JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1A73 DUP5 DUP5 DUP5 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x185A JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 DUP10 PUSH2 0x1A8B DUP2 PUSH2 0x239E JUMP JUMPDEST DUP13 MLOAD DUP14 SWAP1 PUSH1 0x0 NOT DUP2 ADD SWAP1 DUP2 LT PUSH2 0x1A9D JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD SWAP4 POP PUSH2 0x1AD2 PUSH32 0x536F7672796E5377617058000000000000000000000000000000000000000000 PUSH2 0x1F86 JUMP JUMPDEST SWAP3 POP PUSH2 0x1AFD PUSH32 0x424E54546F6B656E000000000000000000000000000000000000000000000000 PUSH2 0x1F86 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 DUP2 AND SWAP2 AND EQ PUSH2 0x1B5F JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5441524745545F544F4B454E0000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x1B6D DUP14 DUP14 DUP14 ADDRESS DUP12 DUP12 PUSH2 0x185A JUMP JUMPDEST SWAP2 POP PUSH2 0x1B7A DUP5 DUP5 DUP5 PUSH2 0x30AE JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x427C037400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP13 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP12 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x64 DUP2 ADD DUP11 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND SWAP2 PUSH4 0x427C0374 SWAP2 PUSH1 0x84 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1BF0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1C04 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP SWAP4 SWAP16 SWAP15 POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0x1C55 PUSH32 0x436F6E76657273696F6E5061746846696E646572000000000000000000000000 PUSH2 0x1F86 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0xA1C421CD00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP7 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE SWAP2 MLOAD SWAP3 SWAP4 POP SWAP1 DUP4 AND SWAP2 PUSH4 0xA1C421CD SWAP2 PUSH1 0x44 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1CC4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1CD8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1D01 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 MLOAD PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x1D19 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD PUSH1 0x20 DUP2 ADD DUP5 DUP2 GT ISZERO PUSH2 0x1D2C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP6 PUSH1 0x20 DUP3 MUL DUP4 ADD GT PUSH5 0x100000000 DUP3 GT OR ISZERO PUSH2 0x1D49 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP SWAP1 SWAP6 POP POP POP POP POP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1D61 PUSH2 0x1E5E JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x1DC7 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F4F574E4552000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x1DFE PUSH2 0x1E5E JUMP JUMPDEST PUSH3 0xF4240 DUP2 GT ISZERO PUSH2 0x1E59 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F414646494C494154455F46454500000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x5 SSTORE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x1EC0 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0x1F22 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ADDRESS EQ ISZERO PUSH2 0x1F22 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F414444524553535F49535F53454C4600000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xBB34534C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP2 PUSH4 0xBB34534C SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1FEC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2000 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2016 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x7472616E7366657228616464726573732C75696E743235362900000000000000 DUP2 MSTORE DUP2 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x19 ADD DUP2 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x64 SWAP1 SWAP3 ADD SWAP1 SWAP3 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0xE0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xE0 PUSH1 0x2 EXP SUB NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE PUSH2 0x20A6 SWAP1 DUP5 SWAP1 PUSH2 0x3175 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO ISZERO PUSH2 0x20D4 JUMPI POP DUP1 PUSH2 0x2109 JUMP JUMPDEST PUSH2 0x20DD DUP4 PUSH2 0x3203 JUMP JUMPDEST ISZERO PUSH2 0x20FD JUMPI POP PUSH20 0xEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE PUSH2 0x2109 JUMP JUMPDEST PUSH2 0x2106 DUP4 PUSH2 0x3294 JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 ISZERO ISZERO PUSH2 0x2122 JUMPI PUSH1 0x0 SWAP2 POP PUSH2 0x1D52 JUMP JUMPDEST POP DUP3 DUP3 MUL DUP3 DUP5 DUP3 DUP2 ISZERO ISZERO PUSH2 0x2132 JUMPI INVALID JUMPDEST DIV EQ PUSH2 0x2188 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP4 GT PUSH2 0x21E9 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4449564944455F42595F5A45524F0000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP3 DUP5 DUP2 ISZERO ISZERO PUSH2 0x21F4 JUMPI INVALID JUMPDEST DIV SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 ADD DUP4 DUP2 LT ISZERO PUSH2 0x2188 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 DUP4 LT ISZERO PUSH2 0x22B4 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F554E444552464C4F5700000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP SWAP1 SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x22C5 PUSH2 0x3521 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x67657452657475726E28616464726573732C616464726573732C75696E743235 DUP2 MSTORE PUSH32 0x3629000000000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP3 MLOAD SWAP2 DUP3 SWAP1 SUB PUSH1 0x22 ADD DUP3 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP12 AND PUSH1 0x24 DUP6 ADD MSTORE DUP10 AND PUSH1 0x44 DUP5 ADD MSTORE PUSH1 0x64 DUP1 DUP5 ADD DUP10 SWAP1 MSTORE DUP5 MLOAD DUP1 DUP6 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x84 SWAP1 SWAP4 ADD DUP5 MSTORE SWAP1 DUP3 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0xE0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xE0 PUSH1 0x2 EXP SUB NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR DUP2 MSTORE DUP2 MLOAD SWAP2 SWAP3 SWAP2 DUP5 SWAP2 DUP12 GAS STATICCALL DUP1 ISZERO ISZERO PUSH2 0x2387 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD MLOAD SWAP1 SWAP8 SWAP1 SWAP7 POP SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 GT PUSH2 0x1F22 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5A45524F5F56414C5545000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x4 SLOAD PUSH1 0x1 EQ PUSH2 0x1EC0 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5245454E5452414E4359000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x8DA5CB5B PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2491 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x24A5 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x24BB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 POP PUSH2 0x24C8 DUP3 PUSH2 0x3203 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 CALLVALUE GT ISZERO PUSH2 0x2596 JUMPI CALLVALUE DUP4 EQ PUSH2 0x252A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4554485F414D4F554E545F4D49534D41544348000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP1 ISZERO ISZERO PUSH2 0x2591 JUMPI PUSH2 0x253A DUP3 PUSH2 0x3294 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xD0E30DB0 CALLVALUE PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2577 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x258B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP JUMPDEST PUSH2 0x264D JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x262F JUMPI PUSH2 0x25C3 DUP6 CALLER ADDRESS DUP7 PUSH2 0x33E1 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2591 JUMPI DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x2E1A7D4D DUP5 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2612 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2626 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x264D JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2641 JUMPI PUSH2 0x2591 DUP6 CALLER DUP5 DUP7 PUSH2 0x33E1 JUMP JUMPDEST PUSH2 0x264D DUP6 CALLER ADDRESS DUP7 PUSH2 0x33E1 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x266A PUSH2 0x353C JUMP JUMPDEST DUP13 MLOAD PUSH1 0x2 SWAP1 DIV PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x26A9 JUMPI DUP2 PUSH1 0x20 ADD JUMPDEST PUSH2 0x2696 PUSH2 0x353C JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 SWAP1 SUB SWAP1 DUP2 PUSH2 0x268E JUMPI SWAP1 POP JUMPDEST POP SWAP9 POP PUSH1 0x0 SWAP8 POP PUSH2 0x26D9 PUSH32 0x424E54546F6B656E000000000000000000000000000000000000000000000000 PUSH2 0x1F86 JUMP JUMPDEST SWAP7 POP PUSH1 0x0 SWAP6 POP JUMPDEST PUSH1 0x1 DUP14 MLOAD SUB DUP7 LT ISZERO PUSH2 0x2874 JUMPI DUP13 DUP7 PUSH1 0x1 ADD DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x26FD JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD SWAP5 POP DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x8DA5CB5B PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2747 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x275B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2771 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD DUP14 MLOAD SWAP1 SWAP5 POP DUP14 SWAP1 PUSH1 0x2 DUP9 ADD SWAP1 DUP2 LT PUSH2 0x2787 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD SWAP3 POP DUP11 DUP1 ISZERO PUSH2 0x279E JUMPI POP DUP8 ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x27BB JUMPI POP DUP7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ JUMPDEST SWAP2 POP DUP2 ISZERO PUSH2 0x27C8 JUMPI PUSH1 0x1 SWAP8 POP JUMPDEST PUSH1 0xE0 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 DUP6 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP15 DUP9 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x2800 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x2840 DUP7 PUSH2 0x3203 JUMP JUMPDEST ISZERO ISZERO DUP2 MSTORE DUP4 ISZERO ISZERO PUSH1 0x20 SWAP1 SWAP2 ADD MSTORE DUP10 PUSH1 0x2 DUP9 DIV DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x285E JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MSTORE PUSH1 0x2 SWAP6 SWAP1 SWAP6 ADD SWAP5 PUSH2 0x26E0 JUMP JUMPDEST DUP9 PUSH1 0x0 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x2883 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x40 DUP1 DUP3 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 SWAP1 SWAP4 MSTORE SWAP1 SWAP2 KECCAK256 SLOAD SWAP1 SWAP2 POP PUSH1 0xFF AND ISZERO PUSH2 0x28F9 JUMPI DUP1 PUSH1 0xA0 ADD MLOAD ISZERO PUSH2 0x28DF JUMPI PUSH20 0xEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE PUSH1 0x40 DUP3 ADD MSTORE PUSH2 0x28F9 JUMP JUMPDEST DUP1 MLOAD PUSH2 0x28EA SWAP1 PUSH2 0x3294 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x40 DUP3 ADD MSTORE JUMPDEST DUP9 MLOAD DUP10 SWAP1 PUSH1 0x0 NOT DUP2 ADD SWAP1 DUP2 LT PUSH2 0x290B JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x60 DUP2 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 SWAP1 SWAP3 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 SLOAD SWAP1 SWAP2 POP PUSH1 0xFF AND ISZERO PUSH2 0x2982 JUMPI DUP1 PUSH1 0xA0 ADD MLOAD ISZERO PUSH2 0x2968 JUMPI PUSH20 0xEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE PUSH1 0x60 DUP3 ADD MSTORE PUSH2 0x2982 JUMP JUMPDEST DUP1 MLOAD PUSH2 0x2973 SWAP1 PUSH2 0x3294 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x60 DUP3 ADD MSTORE JUMPDEST PUSH1 0x0 SWAP6 POP JUMPDEST DUP9 MLOAD DUP7 LT ISZERO PUSH2 0x2A5A JUMPI DUP9 DUP7 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x299E JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD SWAP1 POP DUP1 PUSH1 0xA0 ADD MLOAD ISZERO PUSH2 0x2A48 JUMPI DUP1 PUSH1 0xC0 ADD MLOAD ISZERO PUSH2 0x29C9 JUMPI ADDRESS PUSH1 0x80 DUP3 ADD MSTORE PUSH2 0x2A43 JUMP JUMPDEST PUSH1 0x1 DUP10 MLOAD SUB DUP7 EQ ISZERO PUSH2 0x29E9 JUMPI PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP13 AND PUSH1 0x80 DUP3 ADD MSTORE PUSH2 0x2A43 JUMP JUMPDEST DUP9 DUP7 PUSH1 0x1 ADD DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x29FA JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0xA0 ADD MLOAD ISZERO PUSH2 0x2A3C JUMPI DUP9 DUP7 PUSH1 0x1 ADD DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x2A1E JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MLOAD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x80 DUP3 ADD MSTORE PUSH2 0x2A43 JUMP JUMPDEST ADDRESS PUSH1 0x80 DUP3 ADD MSTORE JUMPDEST PUSH2 0x2A4F JUMP JUMPDEST ADDRESS PUSH1 0x80 DUP3 ADD MSTORE JUMPDEST PUSH1 0x1 SWAP1 SWAP6 ADD SWAP5 PUSH2 0x2987 JUMP JUMPDEST POP SWAP7 SWAP12 SWAP11 POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x2A79 PUSH2 0x353C JUMP JUMPDEST PUSH1 0x0 DUP10 SWAP4 POP PUSH1 0x0 SWAP3 POP JUMPDEST DUP11 MLOAD DUP4 LT ISZERO PUSH2 0x2F64 JUMPI DUP11 DUP4 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x2A9A JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD SWAP2 POP DUP2 PUSH1 0xA0 ADD MLOAD ISZERO PUSH2 0x2B2B JUMPI DUP3 ISZERO DUP1 ISZERO SWAP1 PUSH2 0x2AE7 JUMPI POP DUP11 MLOAD ADDRESS SWAP1 DUP13 SWAP1 PUSH1 0x0 NOT DUP7 ADD SWAP1 DUP2 LT PUSH2 0x2ACE JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x80 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ JUMPDEST DUP1 ISZERO PUSH2 0x2B0E JUMPI POP PUSH1 0x40 DUP1 DUP4 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE KECCAK256 SLOAD PUSH1 0xFF AND ISZERO JUMPDEST ISZERO PUSH2 0x2B26 JUMPI PUSH2 0x2B26 DUP3 PUSH1 0x40 ADD MLOAD DUP4 PUSH1 0x0 ADD MLOAD DUP7 PUSH2 0x201E JUMP JUMPDEST PUSH2 0x2B61 JUMP JUMPDEST DUP2 PUSH1 0x20 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP3 PUSH1 0x40 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ ISZERO ISZERO PUSH2 0x2B61 JUMPI PUSH2 0x2B61 DUP3 PUSH1 0x40 ADD MLOAD DUP4 PUSH1 0x0 ADD MLOAD DUP7 PUSH2 0x30AE JUMP JUMPDEST DUP2 PUSH1 0xA0 ADD MLOAD ISZERO ISZERO PUSH2 0x2C24 JUMPI DUP2 MLOAD PUSH1 0x40 DUP1 DUP5 ADD MLOAD PUSH1 0x60 DUP6 ADD MLOAD DUP3 MLOAD PUSH32 0x5E5144EB00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 DUP4 AND PUSH1 0x4 DUP3 ADD MSTORE SWAP1 DUP3 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 DUP2 ADD DUP9 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x64 DUP3 ADD MSTORE SWAP2 MLOAD SWAP3 AND SWAP2 PUSH4 0x5E5144EB SWAP2 PUSH1 0x84 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2BF1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2C05 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2C1B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP5 POP PUSH2 0x2DC1 JUMP JUMPDEST PUSH1 0x40 DUP1 DUP4 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x2D02 JUMPI DUP2 MLOAD PUSH1 0x40 DUP1 DUP5 ADD MLOAD PUSH1 0x60 DUP6 ADD MLOAD PUSH1 0x80 DUP7 ADD MLOAD DUP4 MLOAD PUSH32 0xE8DC12FF00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND PUSH1 0x4 DUP3 ADD MSTORE SWAP2 DUP4 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP3 ADD DUP10 SWAP1 MSTORE CALLER PUSH1 0x64 DUP4 ADD MSTORE DUP3 AND PUSH1 0x84 DUP3 ADD MSTORE SWAP2 MLOAD SWAP3 AND SWAP2 PUSH4 0xE8DC12FF SWAP2 CALLVALUE SWAP2 PUSH1 0xA4 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP6 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2CD7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2CEB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2C1B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x40 DUP1 DUP5 ADD MLOAD PUSH1 0x60 DUP6 ADD MLOAD PUSH1 0x80 DUP7 ADD MLOAD DUP4 MLOAD PUSH32 0xE8DC12FF00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND PUSH1 0x4 DUP3 ADD MSTORE SWAP2 DUP4 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP3 ADD DUP10 SWAP1 MSTORE CALLER PUSH1 0x64 DUP4 ADD MSTORE DUP3 AND PUSH1 0x84 DUP3 ADD MSTORE SWAP2 MLOAD SWAP3 AND SWAP2 PUSH4 0xE8DC12FF SWAP2 PUSH1 0xA4 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2D92 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2DA6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2DBC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP5 POP JUMPDEST DUP2 PUSH1 0xC0 ADD MLOAD ISZERO PUSH2 0x2ED3 JUMPI PUSH2 0x2DE2 PUSH3 0xF4240 PUSH2 0x12C0 DUP8 DUP11 PUSH4 0xFFFFFFFF PUSH2 0x210F AND JUMP JUMPDEST SWAP1 POP DUP2 PUSH1 0x60 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xA9059CBB DUP10 DUP4 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2E4B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2E5F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2E75 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD ISZERO ISZERO PUSH2 0x2ECD JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4645455F5452414E534645525F4641494C4544000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP1 DUP6 SUB SWAP5 POP JUMPDEST DUP2 PUSH1 0x60 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP3 PUSH1 0x40 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP4 PUSH1 0x20 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH32 0x7154B38B5DD31BB3122436A96D4E09ABA5B323AE1FD580025FAB55074334C095 DUP8 DUP10 CALLER PUSH1 0x40 MLOAD DUP1 DUP5 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP4 POP POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 DUP5 SWAP4 POP PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 PUSH2 0x2A83 JUMP JUMPDEST DUP9 DUP6 LT ISZERO PUSH2 0x2FBC JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F52455455524E5F544F4F5F4C4F570000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP SWAP3 SWAP10 SWAP9 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x2FD3 PUSH2 0x353C JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH1 0x1 DUP7 MLOAD SUB DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x2FE7 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MLOAD PUSH1 0x80 DUP2 ADD MLOAD SWAP1 SWAP3 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND ADDRESS EQ PUSH2 0x300D JUMPI PUSH2 0x264D JUMP JUMPDEST POP PUSH1 0x60 DUP2 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x30A3 JUMPI PUSH1 0xA0 DUP3 ADD MLOAD ISZERO PUSH2 0x3040 JUMPI INVALID JUMPDEST DUP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x205C2878 DUP5 DUP7 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2612 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x264D DUP2 DUP5 DUP7 PUSH2 0x201E JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0xDD62ED3E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE SWAP2 MLOAD PUSH1 0x0 SWAP3 DUP7 AND SWAP2 PUSH4 0xDD62ED3E SWAP2 PUSH1 0x44 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3119 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x312D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x3143 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 POP DUP2 DUP2 LT ISZERO PUSH2 0x316F JUMPI PUSH1 0x0 DUP2 GT ISZERO PUSH2 0x3164 JUMPI PUSH2 0x3164 DUP5 DUP5 PUSH1 0x0 PUSH2 0x3499 JUMP JUMPDEST PUSH2 0x316F DUP5 DUP5 DUP5 PUSH2 0x3499 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0x317D PUSH2 0x3578 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE POP SWAP1 POP PUSH1 0x20 DUP2 DUP4 MLOAD PUSH1 0x20 DUP6 ADD PUSH1 0x0 DUP8 GAS CALL DUP1 ISZERO ISZERO PUSH2 0x31AA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD ISZERO ISZERO PUSH2 0x20A6 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5452414E534645525F4641494C454400000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x320E PUSH2 0x3578 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x69735632384F7248696768657228290000000000000000000000000000000000 DUP2 MSTORE DUP2 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0xF ADD DUP2 KECCAK256 PUSH1 0x4 DUP3 MSTORE PUSH1 0x24 DUP3 ADD SWAP1 SWAP3 MSTORE PUSH1 0x20 DUP1 DUP3 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0xE0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xE0 PUSH1 0x2 EXP SUB NOT SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 OR DUP4 MSTORE DUP2 MLOAD SWAP2 SWAP3 SWAP1 SWAP2 DUP5 SWAP2 DUP9 PUSH2 0x1388 STATICCALL SWAP3 POP DUP3 DUP1 ISZERO PUSH2 0x3289 JUMPI POP DUP2 MLOAD ISZERO ISZERO JUMPDEST SWAP4 POP JUMPDEST POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x71F52BF3 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x32D8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x32EC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x3302 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH2 0xFFFF AND SWAP3 POP PUSH1 0x0 SWAP2 POP JUMPDEST DUP3 DUP3 LT ISZERO PUSH2 0x33C3 JUMPI DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x19B64015 DUP4 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3360 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3374 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x338A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 SWAP2 POP PUSH1 0xFF AND ISZERO PUSH2 0x33B8 JUMPI DUP1 SWAP4 POP PUSH2 0x328C JUMP JUMPDEST PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x330F JUMP JUMPDEST POP PUSH20 0xEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x7472616E7366657246726F6D28616464726573732C616464726573732C75696E DUP2 MSTORE PUSH32 0x7432353629000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP3 MLOAD SWAP2 DUP3 SWAP1 SUB PUSH1 0x25 ADD DUP3 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP9 AND PUSH1 0x24 DUP6 ADD MSTORE DUP7 AND PUSH1 0x44 DUP5 ADD MSTORE PUSH1 0x64 DUP1 DUP5 ADD DUP7 SWAP1 MSTORE DUP5 MLOAD DUP1 DUP6 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x84 SWAP1 SWAP4 ADD SWAP1 SWAP4 MSTORE DUP2 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0xE0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xE0 PUSH1 0x2 EXP SUB NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE PUSH2 0x316F SWAP1 DUP6 SWAP1 PUSH2 0x3175 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x617070726F766528616464726573732C75696E74323536290000000000000000 DUP2 MSTORE DUP2 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x18 ADD DUP2 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x64 SWAP1 SWAP3 ADD SWAP1 SWAP3 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0xE0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xE0 PUSH1 0x2 EXP SUB NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE PUSH2 0x20A6 SWAP1 DUP5 SWAP1 PUSH2 0x3175 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD DUP3 MSTORE SWAP1 PUSH1 0x2 SWAP1 DUP3 SWAP1 DUP1 CODESIZE DUP4 CODECOPY POP SWAP2 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xE0 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE SWAP2 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x60 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0xA0 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0xC0 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 SWAP1 PUSH1 0x20 DUP3 MUL DUP1 CODESIZE DUP4 CODECOPY POP SWAP2 SWAP3 SWAP2 POP POP JUMP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 0xfc PUSH4 0x55C3C67E 0xd0 POP PUSH10 0x7B7FD7B2BC3393A8CCE9 DUP3 SWAP11 0xab 0xb5 0x5c 0xbd 0xc 0x2e GASLIMIT 0x4e PC 0xc1 DELEGATECALL STOP 0x29 ", - "sourceMap": "1919:28113:3:-;;;;;;;;;-1:-1:-1;;;1919:28113:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3280:206:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3280:206:60;;;;;;;;;4001:157:3;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4001:157:3;-1:-1:-1;;;;;4001:157:3;;;;;;;;;27386:148;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;27386:148:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;27386:148:3;;-1:-1:-1;;27386:148:3;;;-1:-1:-1;27386:148:3;;-1:-1:-1;;;;27386:148:3;;;;;;;;;;;;;;;;;;;;;;;;29727:303;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;29727:303:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;29727:303:3;;-1:-1:-1;;29727:303:3;;;-1:-1:-1;;;29727:303:3;;;;;-1:-1:-1;;;;;29727:303:3;;;;;;;-1:-1:-1;29727:303:3;;;;;;-1:-1:-1;29727:303:3;;;;;;;;;;;;;;;;;;;;;1250:38:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1250:38:60;;;;;;;;;;;;;;;;;;;;;;2080:832;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2080:832:60;;;;27848:274:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;27848:274:3;;-1:-1:-1;;27848:274:3;;;-1:-1:-1;;;27848:274:3;;;;;-1:-1:-1;;;;;27848:274:3;;;;;;-1:-1:-1;27848:274:3;;;;-1:-1:-1;27848:274:3;;2489:38;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2489:38:3;;;;1077:194:71;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1077:194:71;-1:-1:-1;;;;;1077:194:71;;;;;;;;;;;;1165:37:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1165:37:60;;;;;;;;-1:-1:-1;;;;;1165:37:60;;;;;;;;;;;;;;1159:176:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1159:176:66;;;;1085:33:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1085:33:60;;;;5106:2283:3;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;5106:2283:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5106:2283:3;;-1:-1:-1;;5106:2283:3;;;-1:-1:-1;5106:2283:3;;-1:-1:-1;;;;5106:2283:3;2556:43;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2556:43:3;-1:-1:-1;;;;;2556:43:3;;;;;14007:558;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;14007:558:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;14007:558:3;;-1:-1:-1;;;;;;;14007:558:3;;;;;-1:-1:-1;14007:558:3;;;;;;;;;;-1:-1:-1;14007:558:3;;;;;-1:-1:-1;14007:558:3;;-1:-1:-1;;14007:558:3;157:20:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;157:20:66;;;;28465:331:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;28465:331:3;;-1:-1:-1;;28465:331:3;;;-1:-1:-1;;;28465:331:3;;;;;-1:-1:-1;;;;;28465:331:3;;;;;;;-1:-1:-1;28465:331:3;;;;;;-1:-1:-1;28465:331:3;;;;;29441:229;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;29441:229:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;29441:229:3;;-1:-1:-1;;29441:229:3;;;-1:-1:-1;;;29441:229:3;;;;;;;;-1:-1:-1;;;;;29441:229:3;;-1:-1:-1;29441:229:3;;-1:-1:-1;29441:229:3;2974:119:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2974:119:60;;;;8480:1350:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8480:1350:3;;-1:-1:-1;;8480:1350:3;;;-1:-1:-1;;;8480:1350:3;;;;;-1:-1:-1;;;;;8480:1350:3;;;;;;;-1:-1:-1;8480:1350:3;;;;;;-1:-1:-1;8480:1350:3;;;;;10804:315;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;10804:315:3;;-1:-1:-1;;10804:315:3;;;-1:-1:-1;;;10804:315:3;;;;;;;;;;-1:-1:-1;10804:315:3;;;;;-1:-1:-1;10804:315:3;;;;;28853:200;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;28853:200:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;28853:200:3;;-1:-1:-1;;28853:200:3;;;-1:-1:-1;;;28853:200:3;;;;;;-1:-1:-1;28853:200:3;;-1:-1:-1;28853:200:3;28179:229;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;28179:229:3;;-1:-1:-1;;28179:229:3;;;-1:-1:-1;;;28179:229:3;;;;;;;;-1:-1:-1;;;;;28179:229:3;;-1:-1:-1;28179:229:3;;-1:-1:-1;28179:229:3;12204:913;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12204:913:3;;-1:-1:-1;;12204:913:3;;;-1:-1:-1;;;12204:913:3;;;;;;;;;;-1:-1:-1;12204:913:3;;;;;-1:-1:-1;12204:913:3;;;;;-1:-1:-1;;;;;12204:913:3;;;;;;;;;;;180:23:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;180:23:66;;;;4493:265:3;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4493:265:3;-1:-1:-1;;;;;4493:265:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;4493:265:3;;;;;;;;;;;;;;;;;29110:274;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;29110:274:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;29110:274:3;;-1:-1:-1;;29110:274:3;;;-1:-1:-1;;;29110:274:3;;;;;-1:-1:-1;;;;;29110:274:3;;;;;;-1:-1:-1;29110:274:3;;;;-1:-1:-1;29110:274:3;;945:140:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;945:140:66;-1:-1:-1;;;;;945:140:66;;;;;27591:200:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;27591:200:3;;-1:-1:-1;;27591:200:3;;;-1:-1:-1;;;27591:200:3;;;;;;-1:-1:-1;27591:200:3;;-1:-1:-1;27591:200:3;3608:199;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3608:199:3;;;;;3280:206:60;575:12:66;:10;:12::i;:::-;3426:26:60;:56;;;;;;;-1:-1:-1;;3426:56:60;;;;;;;;;3280:206::o;4001:157:3:-;575:12:66;:10;:12::i;:::-;4095:6:3;475:23:72;489:8;475:13;:23::i;:::-;4111:6:3;782:18:72;791:8;782;:18::i;:::-;-1:-1:-1;;;;;;;4123:19:3;;;;;;;;:11;:19;;;;;:31;;-1:-1:-1;;4123:31:3;;;;;;;;;;4001:157::o;27386:148::-;27470:7;27479;27500:26;27511:5;27518:7;27500:10;:26::i;:::-;27492:38;27528:1;;-1:-1:-1;27386:148:3;-1:-1:-1;;;27386:148:3:o;29727:303::-;29917:7;29937:89;29951:5;29958:7;29967:10;29979:12;29993:17;30012:13;29937;:89::i;:::-;29930:96;29727:303;-1:-1:-1;;;;;;;29727:303:3:o;1250:38:60:-;;;;;;;;;:::o;2080:832::-;2281:29;2183:5;;-1:-1:-1;;;;;2183:5:60;2169:10;:19;;:50;;-1:-1:-1;2193:26:60;;;;;;;2192:27;2169:50;2161:80;;;;;;;-1:-1:-1;;;;;2161:80:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;2331:28;2341:17;2331:9;:28::i;:::-;2465:8;;2281:79;;-1:-1:-1;;;;;;2442:32:60;;;2465:8;;2442:32;;;;:61;;-1:-1:-1;;;;;;2478:25:60;;;;2442:61;2434:94;;;;;;;-1:-1:-1;;;;;2434:94:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;2628:40;;;;;;2650:17;2628:40;;;;;;2680:1;;-1:-1:-1;;;;;2628:21:60;;;;;:40;;;;;;;;;;;;;;;2680:1;2628:21;:40;;;5:2:-1;;;;30:1;27;20:12;5:2;2628:40:60;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2628:40:60;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2628:40:60;-1:-1:-1;;;;;2628:54:60;;;2620:87;;;;;-1:-1:-1;;;;;2620:87:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;2799:8;;;2784:12;:23;;-1:-1:-1;;;;;2799:8:60;;;-1:-1:-1;;2784:23:60;;;;;;;2886:22;;;;;;;;;;;2080:832::o;27848:274:3:-;28011:7;28031:87;28045:5;28052:7;28061:10;28081:1;28085:17;28104:13;28031;:87::i;:::-;28024:94;27848:274;-1:-1:-1;;;;;;27848:274:3:o;2489:38::-;;;;:::o;1077:194:71:-;575:12:66;:10;:12::i;:::-;1190:6:71;475:23:72;489:8;475:13;:23::i;:::-;1211:3:71;475:23:72;489:8;475:13;:23::i;:::-;1224:3:71;782:18:72;791:8;782;:18::i;:::-;1233:34:71;1246:6;1254:3;1259:7;1233:12;:34::i;:::-;502:1:72;;591::66;1077:194:71;;;:::o;1165:37:60:-;;;-1:-1:-1;;;;;1165:37:60;;:::o;1159:176:66:-;1219:8;;-1:-1:-1;;;;;1219:8:66;1205:10;:22;1197:52;;;;;-1:-1:-1;;;;;1197:52:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;1277:8;;;1270:5;;1258:28;;-1:-1:-1;;;;;1277:8:66;;;;1270:5;;;;1258:28;;;1298:8;;;;1290:16;;-1:-1:-1;;1290:16:66;;;-1:-1:-1;;;;;1298:8:66;;1290:16;;;;1310:21;;;1159:176::o;1085:33:60:-;;;-1:-1:-1;;;;;1085:33:60;;:::o;5106:2283:3:-;5185:7;5198:14;5216:11;5231:14;5249:15;5268:13;5285:20;5309:26;5596:9;5642:23;5685:18;5723:23;5357:29;5367:18;5357:9;:29::i;:::-;5309:78;;5401:7;5392:16;;5501:1;5486:5;:12;:16;:41;;;;-1:-1:-1;5506:12:3;;5521:1;;5506:16;5526:1;5506:21;5486:41;5478:70;;;;;;;-1:-1:-1;;;;;5478:70:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;5608:1;5596:13;;5591:1777;5615:5;:12;5611:1;:16;5591:1777;;;5668:5;5678:1;5674;:5;5668:12;;;;;;;;;;;;;;;;;;5642:38;;5706:5;5716:1;5712;:5;5706:12;;;;;;;;;;;;;;;;;;5685:33;;5749:5;5755:1;5749:8;;;;;;;;;;;;;;;;;;5723:34;;5803:6;-1:-1:-1;;;;;5786:30:3;;:32;;;;;-1:-1:-1;;;5786:32:3;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5786:32:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5786:32:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5786:32:3;;-1:-1:-1;5868:48:3;5786:32;5904:11;5868:24;:48::i;:::-;5854:62;;5935:48;5960:9;5971:11;5935:24;:48::i;:::-;5921:62;;6008:6;-1:-1:-1;;;;;5993:21:3;:11;-1:-1:-1;;;;;5993:21:3;;5989:1375;;;6109:1;6105;:5;:31;;;;6124:5;6134:1;6130;:5;6124:12;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6114:22:3;:6;-1:-1:-1;;;;;6114:22:3;;;6105:31;6101:79;;;6159:6;-1:-1:-1;;;;;6147:31:3;;:33;;;;;-1:-1:-1;;;6147:33:3;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6147:33:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6147:33:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6147:33:3;;-1:-1:-1;6101:79:3;6240:9;-1:-1:-1;;;;;6240:29:3;;6270:11;6240:42;;;;;-1:-1:-1;;;6240:42:3;;;;;;;-1:-1:-1;;;;;6240:42:3;-1:-1:-1;;;;;6240:42:3;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6240:42:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6240:42:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6240:42:3;6307:33;;;;;;-1:-1:-1;;;;;6307:33:3;;;;;;;;;6240:42;;-1:-1:-1;6307:20:3;;;;;;:33;;;;;;;;;;;;;;;-1:-1:-1;6307:20:3;:33;;;5:2:-1;;;;30:1;27;20:12;5:2;6307:33:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6307:33:3;;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;6307:33:3;;;;;;6355:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6307:33;;-1:-1:-1;;;;;;6355:28:3;;;;;:61;;;;;;;;;;-1:-1:-1;6355:28:3;:61;;;5:2:-1;;;;30:1;27;20:12;5:2;6355:61:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6355:61:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6355:61:3;6439:25;;;;;;;;6355:61;;-1:-1:-1;6428:68:3;;2108:7;;6428:37;;-1:-1:-1;;;;;6439:23:3;;;;;:25;;;;;6355:61;;6439:25;;;;;;;;:23;:25;;;5:2:-1;;;;30:1;27;20:12;5:2;6439:25:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6439:25:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6439:25:3;6428:6;;:37;;;;;:10;:37;:::i;:::-;:41;:68;:41;:68;:::i;:::-;6502:13;;;;;6422:74;-1:-1:-1;6591:18:3;:6;6502:13;6591:18;:10;:18;:::i;:::-;6582:27;;5989:1375;;;6640:6;-1:-1:-1;;;;;6625:21:3;:11;-1:-1:-1;;;;;6625:21:3;;6621:743;;;6742:1;6738;:5;:31;;;;6757:5;6767:1;6763;:5;6757:12;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6747:22:3;:6;-1:-1:-1;;;;;6747:22:3;;;6738:31;6734:79;;;6792:6;-1:-1:-1;;;;;6780:31:3;;:33;;;;;-1:-1:-1;;;6780:33:3;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6780:33:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6780:33:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6780:33:3;;-1:-1:-1;6734:79:3;6873:9;-1:-1:-1;;;;;6873:29:3;;6903:11;6873:42;;;;;-1:-1:-1;;;6873:42:3;;;;;;;-1:-1:-1;;;;;6873:42:3;-1:-1:-1;;;;;6873:42:3;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6873:42:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6873:42:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6873:42:3;6940:33;;;;;;-1:-1:-1;;;;;6940:33:3;;;;;;;;;6873:42;;-1:-1:-1;6940:20:3;;;;;;:33;;;;;;;;;;;;;;;-1:-1:-1;6940:20:3;:33;;;5:2:-1;;;;30:1;27;20:12;5:2;6940:33:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6940:33:3;;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;6940:33:3;;;;;;6988:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6940:33;;-1:-1:-1;;;;;;6988:24:3;;;;;:57;;;;;;;;;;-1:-1:-1;6988:24:3;:57;;;5:2:-1;;;;30:1;27;20:12;5:2;6988:57:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6988:57:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6988:57:3;7068:25;;;;;;;;6988:57;;-1:-1:-1;7057:68:3;;2108:7;;7057:37;;-1:-1:-1;;;;;7068:23:3;;;;;:25;;;;;6988:57;;7068:25;;;;;;;;:23;:25;;;5:2:-1;;;;30:1;27;20:12;7057:68:3;7131:13;;;;;7051:74;-1:-1:-1;7220:18:3;:6;7131:13;7220:18;:10;:18;:::i;6621:743::-;7304:54;7314:9;7325:11;7338;7351:6;7304:9;:54::i;:::-;7288:70;;-1:-1:-1;7288:70:3;-1:-1:-1;6621:743:3;5634:1;5629:6;;;;5591:1777;;;-1:-1:-1;7379:6:3;;5106:2283;-1:-1:-1;;;;;;;;;;;;5106:2283:3:o;2556:43::-;;;;;;;;;;;;;;;:::o;14007:558::-;14178:7;14377:14;14270:12;-1:-1:-1;;;;;14270:18:3;;:20;;;;;-1:-1:-1;;;14270:20:3;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14270:20:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14270:20:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;14270:20:3;14258:8;;-1:-1:-1;;;;;14258:32:3;;;;:5;;14264:1;;14258:8;;;;;;;;;;;;;;;-1:-1:-1;;;;;14258:32:3;;14250:69;;;;;-1:-1:-1;;;;;14250:69:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;14394:58;;;;;;;;;;;;14441:10;14394:58;;;;;;-1:-1:-1;;;;;14394:31:3;;;;;:58;;;;;;;;;;;;;;-1:-1:-1;14394:31:3;:58;;;5:2:-1;;;;30:1;27;20:12;5:2;14394:58:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14394:58:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;14394:58:3;;-1:-1:-1;14492:69:3;14506:5;14394:58;14521:10;14533:12;14555:1;;14492:13;:69::i;157:20:66:-;;;-1:-1:-1;;;;;157:20:66;;:::o;28465:331:3:-;28683:7;28662:10;180:24:72;197:6;180:16;:24::i;:::-;28703:89:3;28717:5;28724:7;28733:10;28745:12;28759:17;28778:13;28703;:89::i;:::-;28696:96;28465:331;-1:-1:-1;;;;;;;;28465:331:3:o;29441:229::-;29576:7;29596:70;29610:5;29617:7;29626:10;29638:12;29660:1;29664;29596:13;:70::i;:::-;29589:77;29441:229;-1:-1:-1;;;;;29441:229:3:o;2974:119:60:-;575:12:66;:10;:12::i;:::-;3077::60;;3066:8;:23;;-1:-1:-1;;3066:23:60;-1:-1:-1;;;;;3077:12:60;;;3066:23;;;;;;2974:119::o;8480:1350:3:-;8710:7;9077:24;9391:19;9532:28;9628:14;565:12:68;:10;:12::i;:::-;287:1;581:5;:14;8689:10:3;180:24:72;8689:10:3;180:16:72;:24::i;:::-;8845:1:3;8830:5;:12;:16;:41;;;;-1:-1:-1;8850:12:3;;8865:1;;8850:16;8870:1;8850:21;8830:41;8822:70;;;;;;;-1:-1:-1;;;;;8822:70:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;8969:64;8987:5;8993:1;8987:8;;;;;;;;;;;;;;;;;;9014:5;9020:1;9014:8;;;;;;;;;;;;;;;;;;9025:7;8969:17;:64::i;:::-;9104:5;;-1:-1:-1;;;;;;9117:31:3;;;9113:241;;;9163:18;;9155:56;;;;;-1:-1:-1;;;;;9155:56:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;9113:241;;;9239:13;9235:1;:17;:53;;;;;9273:15;;9256:13;:32;;9235:53;9227:91;;;;;;;-1:-1:-1;;;;;9227:91:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;9345:4;9323:26;;9113:241;9413:10;;-1:-1:-1;;;;;;9431:26:3;;;9427:58;;9473:12;9459:26;;9427:58;9563:61;9584:5;9591:11;9604:19;9563:20;:61::i;:::-;9532:92;;9645:73;9658:4;9664:7;9673:10;9685:17;9704:13;9645:12;:73::i;:::-;9628:90;;9764:44;9782:4;9788:6;9796:11;9764:17;:44::i;:::-;-1:-1:-1;249:1:68;604:5;:16;9820:6:3;8480:1350;-1:-1:-1;;;;;;;;;;8480:1350:3:o;10804:315::-;10993:7;11013:102;11023:5;11030:7;11039:10;11051:17;11070:14;11086:13;11109:1;11113;11013:9;:102::i;28853:200::-;28961:7;28981:68;28995:5;29002:7;29011:10;29031:1;29043;29047;28981:13;:68::i;:::-;28974:75;28853:200;-1:-1:-1;;;;28853:200:3:o;12204:913::-;12476:7;12489:23;12542:24;12776:14;12455:10;180:24:72;197:6;180:16;:24::i;:::-;12521:12:3;;12515:5;;-1:-1:-1;;12521:16:3;;;12515:23;;;;;;;;;;;;;;12489:49;;12582:23;12592:12;12582:9;:23::i;:::-;12542:64;;12680:20;12690:9;12680;:20::i;:::-;-1:-1:-1;;;;;12665:35:3;;;;;;12657:72;;;;;-1:-1:-1;;;;;12657:72:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;12793:81;12807:5;12814:7;12823:10;12835:4;12841:17;12860:13;12793;:81::i;:::-;12776:98;;12912:49;12928:11;12941;12954:6;12912:15;:49::i;:::-;13016:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13016:21:3;;;;;:79;;;;;;;;;;;;;;;:21;:79;;;5:2:-1;;;;30:1;27;20:12;5:2;13016:79:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;13107:6:3;;12204:913;-1:-1:-1;;;;;;;;;;;;;;;12204:913:3:o;180:23:66:-;;;-1:-1:-1;;;;;180:23:66;;:::o;4493:265:3:-;4590:9;4605:32;4662:33;4672:22;4662:9;:33::i;:::-;4707:47;;;;;;-1:-1:-1;;;;;4707:47:3;;;;;;;;;;;;;;;;4605:91;;-1:-1:-1;4707:19:3;;;;;;:47;;;;;-1:-1:-1;;4707:47:3;;;;;;;;-1:-1:-1;4707:19:3;:47;;;5:2:-1;;;;30:1;27;20:12;5:2;4707:47:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4707:47:3;;;;;;39:16:-1;36:1;17:17;2:54;101:4;4707:47:3;80:15:-1;;;-1:-1;;76:31;65:43;;120:4;113:20;13:2;5:11;;2:2;;;29:1;26;19:12;2:2;4707:47:3;;;;;;20:11:-1;15:3;12:20;9:2;;;45:1;42;35:12;9:2;64:21;;126:4;117:14;;142:31;;;139:2;;;186:1;183;176:12;139:2;224:3;218:10;339:9;333:2;319:12;315:21;297:16;293:44;290:59;268:11;254:12;251:29;239:119;236:2;;;371:1;368;361:12;236:2;-1:-1;4707:47:3;;-1:-1:-1;;;;;4493:265:3;;;;;;:::o;945:140:66:-;575:12;:10;:12::i;:::-;1033:5;;-1:-1:-1;;;;;1020:18:66;;;1033:5;;1020:18;;1012:45;;;;;-1:-1:-1;;;;;1012:45:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;1061:8;:20;;-1:-1:-1;;1061:20:66;-1:-1:-1;;;;;1061:20:66;;;;;;;;;;945:140::o;3608:199:3:-;575:12:66;:10;:12::i;:::-;2170:7:3;3691:44;;;3683:82;;;;;-1:-1:-1;;;;;3683:82:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;3769:15;:34;3608:199::o;642:93:66:-;704:5;;-1:-1:-1;;;;;704:5:66;690:10;:19;682:49;;;;;-1:-1:-1;;;;;682:49:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;642:93::o;553:117:72:-;-1:-1:-1;;;;;620:22:72;;;;612:54;;;;;-1:-1:-1;;;;;612:54:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;553:117;:::o;855:115::-;-1:-1:-1;;;;;917:25:72;;937:4;917:25;;909:57;;;;;-1:-1:-1;;;;;909:57:72;;;;;;;;;;;;;;;;;;;;;;;;;;;3647:122:60;3732:8;;:33;;;;;;;;;;;;;;3712:7;;-1:-1:-1;;;;;3732:8:60;;:18;;:33;;;;;;;;;;;;;;3712:7;3732:8;:33;;;5:2:-1;;;;30:1;27;20:12;5:2;3732:33:60;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3732:33:60;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3732:33:60;;3647:122;-1:-1:-1;;3647:122:60:o;1214:173:70:-;248:38;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1323:59:70;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;1323:59:70;;;;;;;;25:18:-1;;61:17;;-1:-1;;;;;182:15;-1:-1;;;;;;1323:59:70;;;179:29:-1;;;;160:49;;;1307:76:70;;1315:6;;1307:7;:76::i;:::-;1214:173;;;:::o;25245:309:3:-;-1:-1:-1;;;;;25366:19:3;;25344:11;25366:19;;;:11;:19;;;;;;;;25365:20;25361:39;;;-1:-1:-1;25394:6:3;25387:13;;25361:39;25409:34;25432:10;25409:22;:34::i;:::-;25405:79;;;-1:-1:-1;2227:42:3;25445:39;;25405:79;25508:41;25538:10;25508:29;:41::i;:::-;25489:61;;25245:309;;;;;:::o;924:197:69:-;984:7;;1023;;1019:21;;;1039:1;1032:8;;;;1019:21;-1:-1:-1;1057:7:69;;;1062:2;1057;:7;1076:6;;;;;;;;:12;1068:37;;;;;-1:-1:-1;;;;;1068:37:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;1116:1;924:197;-1:-1:-1;;;924:197:69:o;1307:149::-;1367:7;;1388:6;;;1380:37;;;;;-1:-1:-1;;;;;1380:37:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;1438:2;1433;:7;;;;;;;;;1307:149;-1:-1:-1;;;;1307:149:69:o;288:144::-;348:7;373;;;392;;;;384:32;;;;;-1:-1:-1;;;;;384:32:69;;;;;;;;;;;;;;;;;;;;;;;;;;;613:129;673:7;694:8;;;;686:34;;;;;-1:-1:-1;;;;;686:34:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;731:7:69;;;613:129::o;25751:697:3:-;25880:7;25889;25902:21;;:::i;:::-;25615:47;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;25947:85:3;;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;25947:85:3;;;;;;25:18:-1;;;61:17;;-1:-1;;;;;182:15;-1:-1;;;;;;25947:85:3;;;179:29:-1;;;;160:49;;26231:11:3;;25947:85;;25615:47;26317:3;;26108:5;26082:3;26066:301;26381:7;26374:15;26371:2;;;26406:1;26403;26396:12;26371:2;-1:-1:-1;;26429:6:3;;;26437;;;;26429;;26437;;-1:-1:-1;25751:697:3;-1:-1:-1;;;;;25751:697:3:o;259:101:72:-;336:1;327:10;;319:37;;;;;-1:-1:-1;;;;;319:37:72;;;;;;;;;;;;;;;;;;;;;;;;;;;670:88:68;718:5;;249:1;718:17;710:44;;;;;-1:-1:-1;;;;;710:44:68;;;;;;;;;;;;;;;;;;;;;;;;;;;17692:1360:3;17809:25;17868:21;17848:7;-1:-1:-1;;;;;17848:13:3;;:15;;;;;-1:-1:-1;;;17848:15:3;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17848:15:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17848:15:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;17848:15:3;;-1:-1:-1;17892:38:3;17848:15;17892:22;:38::i;:::-;17868:62;;17960:1;17948:9;:13;17944:1105;;;18001:9;:20;;17993:56;;;;;-1:-1:-1;;;;;17993:56:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;18243:16;18242:17;18238:108;;;18273:45;18303:14;18273:29;:45::i;:::-;-1:-1:-1;;;;;18261:66:3;;18334:9;18261:85;;;;;-1:-1:-1;;;18261:85:3;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18261:85:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;18261:85:3;;;;;18238:108;17944:1105;;;-1:-1:-1;;;;;18379:25:3;;;;;;:11;:25;;;;;;;;18375:674;;;18561:57;18578:12;18592:10;18604:4;18610:7;18561:16;:57::i;:::-;18667:16;18663:65;;;18697:12;-1:-1:-1;;;;;18685:34:3;;18720:7;18685:43;;;;;-1:-1:-1;;;18685:43:3;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18685:43:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;18685:43:3;;;;18375:674;;;18892:16;18888:156;;;18910:67;18927:12;18941:10;18953:14;18969:7;18910:16;:67::i;18888:156::-;18987:57;19004:12;19018:10;19030:4;19036:7;18987:16;:57::i;:::-;17692:1360;;;;;:::o;20566:3379::-;20707:16;20729:28;20813:26;20851:16;20972:9;21042:23;21113:20;21167:23;21287:24;21971:30;;:::i;:::-;20781:22;;20806:1;;20781:26;20760:48;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;20729:79;;20842:5;20813:34;;20870:20;20880:9;20870;:20::i;:::-;20851:39;;20994:1;20990:5;;20985:946;21026:1;21001:15;:22;:26;20997:1;:30;20985:946;;;21085:15;21101:1;21105;21101:5;21085:22;;;;;;;;;;;;;;;;;;21042:66;;21147:6;-1:-1:-1;;;;;21147:12:3;;:14;;;;;-1:-1:-1;;;21147:14:3;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;21147:14:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;21147:14:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;21147:14:3;21193:22;;21147:14;;-1:-1:-1;21193:15:3;;21213:1;21209:5;;;21193:22;;;;;;;;;;;;;;21167:48;;21314:20;:46;;;;;21339:21;21338:22;21314:46;:73;;;;;21379:8;-1:-1:-1;;;;;21364:23:3;:11;-1:-1:-1;;;;;21364:23:3;;21314:73;21287:100;;21396:19;21392:53;;;21441:4;21417:28;;21392:53;21465:461;;;;;;;;;21574:9;-1:-1:-1;;;;;21465:461:3;;;;;21526:6;-1:-1:-1;;;;;21465:461:3;;;;;21638:15;21654:1;21638:18;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;21465:461:3;;;;;21675:11;-1:-1:-1;;;;;21465:461:3;;;;;21792:1;-1:-1:-1;;;;;21465:461:3;;;;;21841:33;21864:9;21841:22;:33::i;:::-;21465:461;;;;;;;;;;;;21451:4;21460:1;21456;:5;21451:11;;;;;;;;;;;;;;;;;;:475;21034:1;21029:6;;;;;20985:946;;;22004:4;22009:1;22004:7;;;;;;;;;;;;;;;;;;;;22031:20;;;;;-1:-1:-1;;;;;22019:33:3;;;;;:11;:33;;;;;;;22004:7;;-1:-1:-1;22019:33:3;;22015:422;;;22145:8;:31;;;22141:291;;;2227:42;22182:20;;;:55;22141:291;;;22412:18;;22382:49;;:29;:49::i;:::-;-1:-1:-1;;;;;22347:85:3;:20;;;:85;22141:291;22476:11;;22471:4;;-1:-1:-1;;22476:15:3;;;22471:21;;;;;;;;;;;;;;;;22512:20;;;;-1:-1:-1;;;;;22500:33:3;;;;;:11;:33;;;;;;;;22471:21;;-1:-1:-1;22500:33:3;;22496:422;;;22626:8;:31;;;22622:291;;;2227:42;22663:20;;;:55;22622:291;;;22893:18;;22863:49;;:29;:49::i;:::-;-1:-1:-1;;;;;22828:85:3;:20;;;:85;22622:291;22970:1;22966:5;;22961:965;22977:4;:11;22973:1;:15;22961:965;;;23011:4;23016:1;23011:7;;;;;;;;;;;;;;;;;;23000:18;;23149:8;:31;;;23145:777;;;23279:8;:28;;;23275:520;;;23337:4;23314:20;;;:27;23275:520;;;23443:1;23429:4;:11;:15;23424:1;:20;23420:375;;;-1:-1:-1;;;;;23451:35:3;;:20;;;:35;23420:375;;;23587:4;23592:1;23596;23592:5;23587:11;;;;;;;;;;;;;;;;;;:34;;;23583:212;;;23651:4;23656:1;23660;23656:5;23651:11;;;;;;;;;;;;;;;;;;;:21;-1:-1:-1;;;;;23628:44:3;:20;;;:44;23583:212;;;23791:4;23768:20;;;:27;23583:212;23145:777;;;23912:4;23889:20;;;:27;23145:777;22990:3;;;;;22961:965;;;-1:-1:-1;23937:4:3;;20566:3379;-1:-1:-1;;;;;;;;;;;20566:3379:3:o;15125:2257::-;15288:7;15301:16;15321:18;15397:9;15440:30;;:::i;:::-;16869:23;15342:7;15321:28;;15409:1;15397:13;;15392:1852;15416:5;:12;15412:1;:16;15392:1852;;;15473:5;15479:1;15473:8;;;;;;;;;;;;;;;;;;15440:41;;15513:8;:31;;;15509:731;;;15720:6;;;;;:51;;-1:-1:-1;15730:12:3;;15766:4;;15730:5;;-1:-1:-1;;15736:5:3;;;15730:12;;;;;;;;;;;;;;:24;;;-1:-1:-1;;;;;15730:41:3;;15720:51;:89;;;;-1:-1:-1;15788:20:3;;;;;-1:-1:-1;;;;;15776:33:3;;;;;:11;:33;;;;;;15775:34;15720:89;15716:166;;;15816:66;15829:8;:20;;;15851:8;:18;;;15871:10;15816:12;:66::i;:::-;15509:731;;;16062:8;:15;;;-1:-1:-1;;;;;16026:52:3;:8;:20;;;-1:-1:-1;;;;;16026:52:3;;;16022:218;;;16165:69;16181:8;:20;;;16203:8;:18;;;16223:10;16165:15;:69::i;:::-;16274:8;:31;;;16273:32;16269:520;;;16339:18;;16366:20;;;;;16388;;;;16322:102;;;;;-1:-1:-1;;;;;16322:102:3;;;;;;;;;;;;;;;;;;;;16422:1;16322:102;;;;;;:43;;;;;:102;;;;;;;;;;;;;;;16339:18;16322:43;:102;;;5:2:-1;;;;30:1;27;20:12;5:2;16322:102:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16322:102:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;16322:102:3;;-1:-1:-1;16269:520:3;;;16450:20;;;;;-1:-1:-1;;;;;16438:33:3;;;;;:11;:33;;;;;;16434:355;;;16488:18;;16538:20;;;;;16565;;;;16626;;;;16488:164;;;;;-1:-1:-1;;;;;16488:164:3;;;;;;;;;;;;;;;;;;;;16609:10;16488:164;;;;;;;;;;;;:26;;;;;16521:9;;16488:164;;;;;;;;;;;;;;16521:9;16488:26;:164;;;5:2:-1;;;;30:1;27;20:12;5:2;16488:164:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16488:164:3;;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;16434:355:3;16673:18;;16700:20;;;;;16722;;;;16768;;;;16673:116;;;;;-1:-1:-1;;;;;16673:116:3;;;;;;;;;;;;;;;;;;;;16756:10;16673:116;;;;;;;;;;;;:26;;;;;:116;;;;;;;;;;;;;;;:18;:26;:116;;;5:2:-1;;;;30:1;27;20:12;5:2;16673:116:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16673:116:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;16673:116:3;;-1:-1:-1;16434:355:3;16833:8;:28;;;16829:269;;;16895:57;2170:7;16895:27;:8;16908:13;16895:27;:12;:27;:::i;:57::-;16869:83;;16966:8;:20;;;-1:-1:-1;;;;;16966:29:3;;16996:17;17015:15;16966:65;;;;;-1:-1:-1;;;16966:65:3;;;;;;;-1:-1:-1;;;;;16966:65:3;-1:-1:-1;;;;;16966:65:3;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16966:65:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16966:65:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;16966:65:3;16958:101;;;;;;;-1:-1:-1;;;;;16958:101:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;17077:15;17065:27;;;;16829:269;17158:8;:20;;;-1:-1:-1;;;;;17108:105:3;17136:8;:20;;;-1:-1:-1;;;;;17108:105:3;17119:8;:15;;;-1:-1:-1;;;;;17108:105:3;;17180:10;17192:8;17202:10;17108:105;;;;;;;;;;;;;;-1:-1:-1;;;;;17108:105:3;-1:-1:-1;;;;;17108:105:3;;;;;;;;;;;;;;;;;17231:8;;-1:-1:-1;15430:3:3;;;;;15392:1852;;;17313:22;;;;17305:53;;;;;-1:-1:-1;;;;;17305:53:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;17370:8:3;;15125:2257;-1:-1:-1;;;;;;;;;15125:2257:3:o;19359:737::-;19470:30;;:::i;:::-;19643:23;19503:5;19524:1;19509:5;:12;:16;19503:23;;;;;;;;;;;;;;;;;;;19593:20;;;;19503:23;;-1:-1:-1;;;;;;19593:37:3;19625:4;19593:37;19589:50;;19632:7;;19589:50;-1:-1:-1;19669:20:3;;;;-1:-1:-1;;;;;19720:24:3;;;;;;:11;:24;;;;;;;;19716:377;;;19825:31;;;;19824:32;19817:40;;;;19953:11;-1:-1:-1;;;;;19941:35:3;;19977:12;19991:7;19941:58;;;;;-1:-1:-1;;;19941:58:3;;;;;;;-1:-1:-1;;;;;19941:58:3;-1:-1:-1;;;;;19941:58:3;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;19716:377:3;20040:48;20053:11;20066:12;20080:7;20040:12;:48::i;24364:286::-;24484:32;;;;;;24501:4;24484:32;;;;-1:-1:-1;;;;;24484:32:3;;;;;;;;;24464:17;;24484:16;;;;;:32;;;;;;;;;;;;;;24464:17;24484:16;:32;;;5:2:-1;;;;30:1;27;20:12;5:2;24484:32:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;24484:32:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;24484:32:3;;-1:-1:-1;24524:18:3;;;24520:127;;;24565:1;24553:9;:13;24549:51;;;24568:32;24580:6;24588:8;24598:1;24568:11;:32::i;:::-;24605:37;24617:6;24625:8;24635:6;24605:11;:37::i;:::-;24364:286;;;;:::o;2255:557:70:-;2324:21;;:::i;:::-;:36;;;;;;;;;2357:1;2324:36;;;;;2687:2;2661:3;2580:5;2574:12;2495:2;2488:5;2484:14;2465:1;2430:6;2404:3;2394:317;2725:7;2718:15;2715:2;;;2750:1;2747;2740:12;2715:2;-1:-1:-1;2773:6:70;;:11;;2765:43;;;;;-1:-1:-1;;;;;2765:43:70;;;;;;;;;;;;;;;;;;;;;;;;;;;26704:625:3;26782:4;26792:12;26808:21;;:::i;:::-;26515:28;;;;;;;;;;;;;;;;22:32:-1;6:49;;26853:54:3;;;;;;49:4:-1;25:18;;;61:17;;-1:-1;;;;;182:15;-1:-1;;;;;;26853:54:3;;;179:29:-1;;;;160:49;;27152:11:3;;26515:28;;49:4:-1;;27238:3:3;;27024:10;26953:4;26937:351;26926:362;;27303:7;:22;;;;-1:-1:-1;27314:6:3;;:11;;27303:22;27296:29;;26704:625;;;;;;;:::o;24725:371::-;24809:7;24822:20;24886:9;24929:27;24845:10;-1:-1:-1;;;;;24845:30:3;;:32;;;;;-1:-1:-1;;;24845:32:3;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;24845:32:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;24845:32:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;24845:32:3;24822:55;;;-1:-1:-1;24898:1:3;;-1:-1:-1;24881:181:3;24905:12;24901:1;:16;24881:181;;;24959:10;-1:-1:-1;;;;;24959:26:3;;24986:1;24959:29;;;;;-1:-1:-1;;;24959:29:3;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;24959:29:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;24959:29:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;24959:29:3;-1:-1:-1;;;;;24997:32:3;;;;;;:11;24959:29;24997:32;;;;;24959:29;;-1:-1:-1;24997:32:3;;24993:64;;;25038:19;25031:26;;;;24993:64;24919:3;;;;;24881:181;;;-1:-1:-1;2227:42:3;;24725:371;-1:-1:-1;;;;24725:371:3:o;1740:206:70:-;351:50;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1870:71:70;;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;1870:71:70;;;;;;;25:18:-1;;61:17;;-1:-1;;;;;182:15;-1:-1;;;;;;1870:71:70;;;179:29:-1;;;;160:49;;;1854:88:70;;1862:6;;1854:7;:88::i;719:181::-;151:37;;;;;;;;;;;;;;;;-1:-1:-1;;;;;832:63:70;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;832:63:70;;;;;;;;25:18:-1;;61:17;;-1:-1;;;;;182:15;-1:-1;;;;;;832:63:70;;;179:29:-1;;;;160:49;;;816:80:70;;824:6;;816:7;:80::i;1919:28113:3:-;;;;;;;;;;;;;;;105:10:-1;1919:28113:3;88:34:-1;-1:-1;1919:28113:3;;;-1:-1:-1;;1919:28113:3:o;:::-;;;;;;;;;-1:-1:-1;1919:28113:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;-1:-1;1919:28113:3;;;-1:-1:-1;;1919:28113:3:o" - }, - "methodIdentifiers": { - "acceptOwnership()": "79ba5097", - "claimAndConvert(address[],uint256,uint256)": "c7ba24bc", - "claimAndConvert2(address[],uint256,uint256,address,uint256)": "e57738e5", - "claimAndConvertFor(address[],uint256,uint256,address)": "b1e9932b", - "claimAndConvertFor2(address[],uint256,uint256,address,address,uint256)": "2978c10e", - "completeXConversion(address[],address,uint256,uint256,address)": "89f9cc61", - "conversionPath(address,address)": "d734fa19", - "convert(address[],uint256,uint256)": "f3898a97", - "convert2(address[],uint256,uint256,address,uint256)": "569706eb", - "convertByPath(address[],uint256,uint256,address,address,uint256)": "b77d239b", - "convertFor(address[],uint256,uint256,address)": "c98fefed", - "convertFor2(address[],uint256,uint256,address,address,uint256)": "ab6214ce", - "etherTokens(address)": "8077ccf7", - "getReturnByPath(address[],uint256)": "0c8496cc", - "maxAffiliateFee()": "5d732ff2", - "newOwner()": "d4ee1d90", - "onlyOwnerCanUpdateRegistry()": "2fe8a6ad", - "owner()": "8da5cb5b", - "prevRegistry()": "61cd756e", - "rateByPath(address[],uint256)": "7f9c0ecd", - "registerEtherToken(address,bool)": "02ef521e", - "registry()": "7b103999", - "restoreRegistry()": "b4a176d3", - "restrictRegistryUpdate(bool)": "024c7ec7", - "setMaxAffiliateFee(uint256)": "f3bc7d2a", - "transferOwnership(address)": "f2fde38b", - "updateRegistry()": "49d10b64", - "withdrawTokens(address,address,uint256)": "5e35359e", - "xConvert(address[],uint256,uint256,bytes32,bytes32,uint256)": "c52173de", - "xConvert2(address[],uint256,uint256,bytes32,bytes32,uint256,address,uint256)": "cb32564e" - } - }, - "userdoc": { - "methods": {} - } - } - }, - "solidity/contracts/converter/ConverterBase.sol": { - "ConverterBase": { - "abi": [ - { - "constant": false, - "inputs": [ - { - "name": "_onlyOwnerCanUpdateRegistry", - "type": "bool" - } - ], - "name": "restrictRegistryUpdate", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "reserveRatio", - "outputs": [ - { - "name": "", - "type": "uint32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_address", - "type": "address" - } - ], - "name": "connectors", - "outputs": [ - { - "name": "", - "type": "uint256" - }, - { - "name": "", - "type": "uint32" - }, - { - "name": "", - "type": "bool" - }, - { - "name": "", - "type": "bool" - }, - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "hasETHReserve", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_index", - "type": "uint256" - } - ], - "name": "connectorTokens", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_reserveToken", - "type": "address" - } - ], - "name": "reserveWeight", - "outputs": [ - { - "name": "", - "type": "uint32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_sourceToken", - "type": "address" - }, - { - "name": "_targetToken", - "type": "address" - }, - { - "name": "_amount", - "type": "uint256" - } - ], - "name": "getReturn", - "outputs": [ - { - "name": "", - "type": "uint256" - }, - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_newOwner", - "type": "address" - } - ], - "name": "transferTokenOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "isActive", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "onlyOwnerCanUpdateRegistry", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "acceptTokenOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_token", - "type": "address" - }, - { - "name": "_to", - "type": "address" - }, - { - "name": "_amount", - "type": "uint256" - } - ], - "name": "withdrawFromAnchor", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "converterType", - "outputs": [ - { - "name": "", - "type": "uint16" - } - ], - "payable": false, - "stateMutability": "pure", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "updateRegistry", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_whitelist", - "type": "address" - } - ], - "name": "setConversionWhitelist", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "version", - "outputs": [ - { - "name": "", - "type": "uint16" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "conversionFee", - "outputs": [ - { - "name": "", - "type": "uint32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_token", - "type": "address" - }, - { - "name": "_to", - "type": "address" - }, - { - "name": "_amount", - "type": "uint256" - } - ], - "name": "withdrawTokens", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "prevRegistry", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_newOwner", - "type": "address" - } - ], - "name": "transferAnchorOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_to", - "type": "address" - } - ], - "name": "withdrawETH", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_token", - "type": "address" - }, - { - "name": "_weight", - "type": "uint32" - } - ], - "name": "addReserve", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "connectorTokenCount", - "outputs": [ - { - "name": "", - "type": "uint16" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "acceptOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "registry", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "owner", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "maxConversionFee", - "outputs": [ - { - "name": "", - "type": "uint32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "reserveTokenCount", - "outputs": [ - { - "name": "", - "type": "uint16" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_sourceToken", - "type": "address" - }, - { - "name": "_targetToken", - "type": "address" - }, - { - "name": "_amount", - "type": "uint256" - } - ], - "name": "targetAmountAndFee", - "outputs": [ - { - "name": "", - "type": "uint256" - }, - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "restoreRegistry", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "conversionsEnabled", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "conversionWhitelist", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "acceptAnchorOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "", - "type": "uint256" - } - ], - "name": "reserveTokens", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "isV28OrHigher", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "pure", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "anchor", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "newOwner", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "upgrade", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "", - "type": "address" - } - ], - "name": "reserves", - "outputs": [ - { - "name": "balance", - "type": "uint256" - }, - { - "name": "weight", - "type": "uint32" - }, - { - "name": "deprecated1", - "type": "bool" - }, - { - "name": "deprecated2", - "type": "bool" - }, - { - "name": "isSet", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_connectorToken", - "type": "address" - } - ], - "name": "getConnectorBalance", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_reserveToken", - "type": "address" - } - ], - "name": "reserveBalance", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_sourceToken", - "type": "address" - }, - { - "name": "_targetToken", - "type": "address" - }, - { - "name": "_amount", - "type": "uint256" - }, - { - "name": "_trader", - "type": "address" - }, - { - "name": "_beneficiary", - "type": "address" - } - ], - "name": "convert", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": true, - "stateMutability": "payable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_conversionFee", - "type": "uint32" - } - ], - "name": "setConversionFee", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "token", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "name": "_anchor", - "type": "address" - }, - { - "name": "_registry", - "type": "address" - }, - { - "name": "_maxConversionFee", - "type": "uint32" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "payable": true, - "stateMutability": "payable", - "type": "fallback" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "_type", - "type": "uint16" - }, - { - "indexed": true, - "name": "_anchor", - "type": "address" - }, - { - "indexed": true, - "name": "_activated", - "type": "bool" - } - ], - "name": "Activation", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "_fromToken", - "type": "address" - }, - { - "indexed": true, - "name": "_toToken", - "type": "address" - }, - { - "indexed": true, - "name": "_trader", - "type": "address" - }, - { - "indexed": false, - "name": "_amount", - "type": "uint256" - }, - { - "indexed": false, - "name": "_return", - "type": "uint256" - }, - { - "indexed": false, - "name": "_conversionFee", - "type": "int256" - } - ], - "name": "Conversion", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "_token1", - "type": "address" - }, - { - "indexed": true, - "name": "_token2", - "type": "address" - }, - { - "indexed": false, - "name": "_rateN", - "type": "uint256" - }, - { - "indexed": false, - "name": "_rateD", - "type": "uint256" - } - ], - "name": "TokenRateUpdate", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "_prevFee", - "type": "uint32" - }, - { - "indexed": false, - "name": "_newFee", - "type": "uint32" - } - ], - "name": "ConversionFeeUpdate", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "_prevOwner", - "type": "address" - }, - { - "indexed": true, - "name": "_newOwner", - "type": "address" - } - ], - "name": "OwnerUpdate", - "type": "event" - } - ], - "devdoc": { - "methods": { - "acceptAnchorOwnership()": { - "details": "accepts ownership of the anchor after an ownership transfer most converters are also activated as soon as they accept the anchor ownership can only be called by the contract owner note that prior to version 28, you should use 'acceptTokenOwnership' instead" - }, - "acceptOwnership()": { - "details": "used by a new owner to accept an ownership transfer" - }, - "acceptTokenOwnership()": { - "details": "deprecated, backward compatibility" - }, - "addReserve(address,uint32)": { - "details": "defines a new reserve token for the converter can only be called by the owner while the converter is inactive", - "params": { - "_token": "address of the reserve token", - "_weight": "reserve weight, represented in ppm, 1-1000000" - } - }, - "connectorTokenCount()": { - "details": "deprecated, backward compatibility" - }, - "connectorTokens(uint256)": { - "details": "deprecated, backward compatibility" - }, - "connectors(address)": { - "details": "deprecated, backward compatibility" - }, - "convert(address,address,uint256,address,address)": { - "details": "converts a specific amount of source tokens to target tokens can only be called by the SovrynSwap network contract", - "params": { - "_amount": "amount of tokens to convert (in units of the source token)", - "_beneficiary": "wallet to receive the conversion result", - "_sourceToken": "source ERC20 token", - "_targetToken": "target ERC20 token", - "_trader": "address of the caller who executed the conversion" - }, - "return": "amount of tokens received (in units of the target token)" - }, - "getConnectorBalance(address)": { - "details": "deprecated, backward compatibility" - }, - "getReturn(address,address,uint256)": { - "details": "deprecated, backward compatibility" - }, - "hasETHReserve()": { - "details": "checks whether or not the converter has an ETH reserve", - "return": "true if the converter has an ETH reserve, false otherwise" - }, - "isActive()": { - "details": "returns true if the converter is active, false otherwise", - "return": "true if the converter is active, false otherwise" - }, - "isV28OrHigher()": { - "details": "checks whether or not the converter version is 28 or higher", - "return": "true, since the converter version is 28 or higher" - }, - "reserveBalance(address)": { - "details": "returns the reserve's balance note that prior to version 17, you should use 'getConnectorBalance' instead", - "params": { - "_reserveToken": "reserve token contract address" - }, - "return": "reserve balance" - }, - "reserveTokenCount()": { - "details": "returns the number of reserve tokens defined note that prior to version 17, you should use 'connectorTokenCount' instead", - "return": "number of reserve tokens" - }, - "reserveWeight(address)": { - "details": "returns the reserve's weight added in version 28", - "params": { - "_reserveToken": "reserve token contract address" - }, - "return": "reserve weight" - }, - "restoreRegistry()": { - "details": "restores the previous contract-registry" - }, - "restrictRegistryUpdate(bool)": { - "details": "restricts the permission to update the contract-registry", - "params": { - "_onlyOwnerCanUpdateRegistry": "indicates whether or not permission is restricted to owner only" - } - }, - "setConversionFee(uint32)": { - "details": "updates the current conversion fee can only be called by the contract owner", - "params": { - "_conversionFee": "new conversion fee, represented in ppm" - } - }, - "setConversionWhitelist(address)": { - "details": "allows the owner to update & enable the conversion whitelist contract address when set, only addresses that are whitelisted are actually allowed to use the converter note that the whitelist check is actually done by the SovrynSwapNetwork contract", - "params": { - "_whitelist": "address of a whitelist contract" - } - }, - "token()": { - "details": "deprecated since version 28, backward compatibility - use only for earlier versions" - }, - "transferAnchorOwnership(address)": { - "details": "transfers the anchor ownership the new owner needs to accept the transfer can only be called by the converter upgrder while the upgrader is the owner note that prior to version 28, you should use 'transferAnchorOwnership' instead", - "params": { - "_newOwner": "new token owner" - } - }, - "transferOwnership(address)": { - "details": "allows transferring the contract ownership the new owner still needs to accept the transfer can only be called by the contract owner", - "params": { - "_newOwner": "new contract owner" - } - }, - "transferTokenOwnership(address)": { - "details": "deprecated, backward compatibility" - }, - "updateRegistry()": { - "details": "updates to the new contract-registry" - }, - "upgrade()": { - "details": "upgrades the converter to the latest version can only be called by the owner note that the owner needs to call acceptOwnership on the new converter after the upgrade" - }, - "withdrawETH(address)": { - "details": "withdraws ether can only be called by the owner if the converter is inactive or by upgrader contract can only be called after the upgrader contract has accepted the ownership of this contract can only be called if the converter has an ETH reserve", - "params": { - "_to": "address to send the ETH to" - } - }, - "withdrawFromAnchor(address,address,uint256)": { - "details": "withdraws tokens held by the anchor and sends them to an account can only be called by the owner", - "params": { - "_amount": "amount to withdraw", - "_to": "account to receive the new amount", - "_token": "ERC20 token contract address" - } - }, - "withdrawTokens(address,address,uint256)": { - "details": "withdraws tokens held by the converter and sends them to an account can only be called by the owner note that reserve tokens can only be withdrawn by the owner while the converter is inactive unless the owner is the converter upgrader contract", - "params": { - "_amount": "amount to withdraw", - "_to": "account to receive the new amount", - "_token": "ERC20 token contract address" - } - } - } - }, - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "deployedBytecode": { - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "methodIdentifiers": { - "acceptAnchorOwnership()": "cdc91c69", - "acceptOwnership()": "79ba5097", - "acceptTokenOwnership()": "38a5e016", - "addReserve(address,uint32)": "6a49d2c4", - "anchor()": "d3fb73b4", - "connectorTokenCount()": "71f52bf3", - "connectorTokens(uint256)": "19b64015", - "connectors(address)": "0e53aae9", - "conversionFee()": "579cd3ca", - "conversionWhitelist()": "c45d3d92", - "conversionsEnabled()": "bf754558", - "convert(address,address,uint256,address,address)": "e8dc12ff", - "converterType()": "3e8ff43f", - "getConnectorBalance(address)": "d8959512", - "getReturn(address,address,uint256)": "1e1401f8", - "hasETHReserve()": "12c2aca4", - "isActive()": "22f3e2d4", - "isV28OrHigher()": "d260529c", - "maxConversionFee()": "94c275ad", - "newOwner()": "d4ee1d90", - "onlyOwnerCanUpdateRegistry()": "2fe8a6ad", - "owner()": "8da5cb5b", - "prevRegistry()": "61cd756e", - "registry()": "7b103999", - "reserveBalance(address)": "dc8de379", - "reserveRatio()": "0c7d5cd8", - "reserveTokenCount()": "9b99a8e2", - "reserveTokens(uint256)": "d031370b", - "reserveWeight(address)": "1cfab290", - "reserves(address)": "d66bd524", - "restoreRegistry()": "b4a176d3", - "restrictRegistryUpdate(bool)": "024c7ec7", - "setConversionFee(uint32)": "ecbca55d", - "setConversionWhitelist(address)": "4af80f0e", - "targetAmountAndFee(address,address,uint256)": "af94b8d8", - "token()": "fc0c546a", - "transferAnchorOwnership(address)": "67b6d57c", - "transferOwnership(address)": "f2fde38b", - "transferTokenOwnership(address)": "21e6b53d", - "updateRegistry()": "49d10b64", - "upgrade()": "d55ec697", - "version()": "54fd4d50", - "withdrawETH(address)": "690d8320", - "withdrawFromAnchor(address,address,uint256)": "395900d4", - "withdrawTokens(address,address,uint256)": "5e35359e" - } - }, - "userdoc": { - "methods": {} - } - } - }, - "solidity/contracts/converter/ConverterFactory.sol": { - "ConverterFactory": { - "abi": [ - { - "constant": false, - "inputs": [ - { - "name": "_factory", - "type": "address" - } - ], - "name": "registerTypedConverterFactory", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_type", - "type": "uint16" - }, - { - "name": "_anchor", - "type": "address" - }, - { - "name": "_registry", - "type": "address" - }, - { - "name": "_maxConversionFee", - "type": "uint32" - } - ], - "name": "createConverter", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_converterType", - "type": "uint16" - }, - { - "name": "_name", - "type": "string" - }, - { - "name": "_symbol", - "type": "string" - }, - { - "name": "_decimals", - "type": "uint8" - } - ], - "name": "createAnchor", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "", - "type": "uint16" - } - ], - "name": "converterFactories", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "", - "type": "uint16" - } - ], - "name": "anchorFactories", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "acceptOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_factory", - "type": "address" - } - ], - "name": "registerTypedConverterCustomFactory", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "owner", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "", - "type": "uint16" - } - ], - "name": "customFactories", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "newOwner", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_factory", - "type": "address" - } - ], - "name": "registerTypedConverterAnchorFactory", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "_type", - "type": "uint16" - }, - { - "indexed": true, - "name": "_converter", - "type": "address" - }, - { - "indexed": true, - "name": "_owner", - "type": "address" - } - ], - "name": "NewConverter", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "_prevOwner", - "type": "address" - }, - { - "indexed": true, - "name": "_newOwner", - "type": "address" - } - ], - "name": "OwnerUpdate", - "type": "event" - } - ], - "devdoc": { - "methods": { - "acceptOwnership()": { - "details": "used by a new owner to accept an ownership transfer" - }, - "createAnchor(uint16,string,string,uint8)": { - "details": "creates a new converter anchor with the given arguments and transfers the ownership to the caller", - "params": { - "_converterType": "converter type, see ConverterBase contract main doc", - "_decimals": "decimals", - "_name": "name", - "_symbol": "symbol" - }, - "return": "new converter anchor" - }, - "createConverter(uint16,address,address,uint32)": { - "details": "creates a new converter with the given arguments and transfers the ownership to the caller", - "params": { - "_anchor": "anchor governed by the converter", - "_maxConversionFee": "maximum conversion fee, represented in ppm", - "_registry": "address of a contract registry contract", - "_type": "converter type, see ConverterBase contract main doc" - }, - "return": "new converter" - }, - "registerTypedConverterAnchorFactory(address)": { - "details": "initializes the factory with a specific typed converter anchor factory can only be called by the owner", - "params": { - "_factory": "typed converter anchor factory" - } - }, - "registerTypedConverterCustomFactory(address)": { - "details": "initializes the factory with a specific typed converter custom factory can only be called by the owner", - "params": { - "_factory": "typed converter custom factory" - } - }, - "registerTypedConverterFactory(address)": { - "details": "initializes the factory with a specific typed converter factory can only be called by the owner", - "params": { - "_factory": "typed converter factory" - } - }, - "transferOwnership(address)": { - "details": "allows transferring the contract ownership the new owner still needs to accept the transfer can only be called by the contract owner", - "params": { - "_newOwner": "new contract owner" - } - } - } - }, - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "608060405260008054600160a060020a03191633179055611e4e806100256000396000f3006080604052600436106100a05763ffffffff60e060020a60003504166312b4c6c181146100a557806315f64b6a146100c85780632e9ab7b31461011b578063327779a7146101c05780633a8fc520146101dc57806379ba5097146101f85780638cac5e291461020d5780638da5cb5b1461022e578063c977aed214610243578063d4ee1d901461025f578063e54b93ef14610274578063f2fde38b14610295575b600080fd5b3480156100b157600080fd5b506100c6600160a060020a03600435166102b6565b005b3480156100d457600080fd5b506100ff61ffff60043516600160a060020a036024358116906044351663ffffffff6064351661036f565b60408051600160a060020a039092168252519081900360200190f35b34801561012757600080fd5b5060408051602060046024803582810135601f81018590048502860185019096528585526100ff95833561ffff1695369560449491939091019190819084018382808284375050604080516020601f89358b018035918201839004830284018301909452808352979a9998810197919650918201945092508291508401838280828437509497505050923560ff16935061055892505050565b3480156101cc57600080fd5b506100ff61ffff600435166108cc565b3480156101e857600080fd5b506100ff61ffff600435166108e7565b34801561020457600080fd5b506100c6610902565b34801561021957600080fd5b506100c6600160a060020a03600435166109ec565b34801561023a57600080fd5b506100ff610a37565b34801561024f57600080fd5b506100ff61ffff60043516610a46565b34801561026b57600080fd5b506100ff610a61565b34801561028057600080fd5b506100c6600160a060020a0360043516610a70565b3480156102a157600080fd5b506100c6600160a060020a0360043516610abb565b6102be610b6f565b806002600083600160a060020a0316633e8ff43f6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561030157600080fd5b505af1158015610315573d6000803e3d6000fd5b505050506040513d602081101561032b57600080fd5b505161ffff1681526020810191909152604001600020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905550565b61ffff841660009081526002602090815260408083205481517f11413958000000000000000000000000000000000000000000000000000000008152600160a060020a038881166004830152878116602483015263ffffffff8716604483015292518594939092169263114139589260648084019382900301818787803b1580156103f957600080fd5b505af115801561040d573d6000803e3d6000fd5b505050506040513d602081101561042357600080fd5b5051604080517f79ba50970000000000000000000000000000000000000000000000000000000081529051919250600160a060020a038316916379ba50979160048082019260009290919082900301818387803b15801561048357600080fd5b505af1158015610497573d6000803e3d6000fd5b5050604080517ff2fde38b0000000000000000000000000000000000000000000000000000000081523360048201529051600160a060020a038516935063f2fde38b9250602480830192600092919082900301818387803b1580156104fb57600080fd5b505af115801561050f573d6000803e3d6000fd5b5050604051339250600160a060020a038416915061ffff8916907fbb340bcea68d239ac719bc5cf8c9a1716df04ad3babb8d1e562aa44d19fea3a390600090a495945050505050565b61ffff84166000908152600360205260408120548190600160a060020a031680151561068657858585610589610bea565b60ff82166040820152606080825284519082015283518190602080830191608084019188019080838360005b838110156105cd5781810151838201526020016105b5565b50505050905090810190601f1680156105fa5780820380516001836020036101000a031916815260200191505b50838103825285518152855160209182019187019080838360005b8381101561062d578181015183820152602001610615565b50505050905090810190601f16801561065a5780820380516001836020036101000a031916815260200191505b5095505050505050604051809103906000f08015801561067e573d6000803e3d6000fd5b509150610849565b80600160a060020a031663a9fd4a2a8787876040518463ffffffff1660e060020a0281526004018080602001806020018460ff1660ff168152602001838103835286818151815260200191508051906020019080838360005b838110156106f75781810151838201526020016106df565b50505050905090810190601f1680156107245780820380516001836020036101000a031916815260200191505b50838103825285518152855160209182019187019080838360005b8381101561075757818101518382015260200161073f565b50505050905090810190601f1680156107845780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1580156107a657600080fd5b505af11580156107ba573d6000803e3d6000fd5b505050506040513d60208110156107d057600080fd5b5051604080517f79ba50970000000000000000000000000000000000000000000000000000000081529051919350600160a060020a038416916379ba50979160048082019260009290919082900301818387803b15801561083057600080fd5b505af1158015610844573d6000803e3d6000fd5b505050505b604080517ff2fde38b0000000000000000000000000000000000000000000000000000000081523360048201529051600160a060020a0384169163f2fde38b91602480830192600092919082900301818387803b1580156108a957600080fd5b505af11580156108bd573d6000803e3d6000fd5b50939998505050505050505050565b600260205260009081526040902054600160a060020a031681565b600360205260009081526040902054600160a060020a031681565b600154600160a060020a0316331461097b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b60015460008054604051600160a060020a0393841693909116917f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91a3600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b6109f4610b6f565b806004600083600160a060020a0316633e8ff43f6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561030157600080fd5b600054600160a060020a031681565b600460205260009081526040902054600160a060020a031681565b600154600160a060020a031681565b610a78610b6f565b806003600083600160a060020a0316633e8ff43f6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561030157600080fd5b610ac3610b6f565b600054600160a060020a0382811691161415610b4057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f4552525f53414d455f4f574e4552000000000000000000000000000000000000604482015290519081900360640190fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600054600160a060020a03163314610be857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b565b60405161122880610bfb83390190560060806040526008805460ff191660011790553480156200001e57600080fd5b506040516200122838038062001228833981016040908152815160208301519183015160008054600160a060020a0319163317815591840180519094939093019290918491849184918110620000d557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f4552525f494e56414c49445f4e414d4500000000000000000000000000000000604482015290519081900360640190fd5b82516000106200014657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f4552525f494e56414c49445f53594d424f4c0000000000000000000000000000604482015290519081900360640190fd5b83516200015b906002906020870190620001a8565b50825162000171906003906020860190620001a8565b506004805460ff191660ff9390931692909217909155600581905533600090815260066020526040902055506200024d9350505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620001eb57805160ff19168380011785556200021b565b828001600101855582156200021b579182015b828111156200021b578251825591602001919060010190620001fe565b50620002299291506200022d565b5090565b6200024a91905b8082111562000229576000815560010162000234565b90565b610fcb806200025d6000396000f3006080604052600436106101065763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde03811461010b578063095ea7b3146101955780631608f18f146101cd57806318160ddd146101e957806323b872dd14610210578063313ce5671461023a57806354fd4d50146102655780635e35359e1461029157806370a08231146102bb57806379ba5097146102dc578063867904b4146102f15780638da5cb5b1461031557806395d89b4114610346578063a24835d11461035b578063a9059cbb1461037f578063bef97c87146103a3578063d4ee1d90146103b8578063dd62ed3e146103cd578063f2fde38b146103f4575b600080fd5b34801561011757600080fd5b50610120610415565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561015a578181015183820152602001610142565b50505050905090810190601f1680156101875780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101a157600080fd5b506101b9600160a060020a03600435166024356104a0565b604080519115158252519081900360200190f35b3480156101d957600080fd5b506101e76004351515610598565b005b3480156101f557600080fd5b506101fe6105b2565b60408051918252519081900360200190f35b34801561021c57600080fd5b506101b9600160a060020a03600435811690602435166044356105b8565b34801561024657600080fd5b5061024f6105df565b6040805160ff9092168252519081900360200190f35b34801561027157600080fd5b5061027a6105e8565b6040805161ffff9092168252519081900360200190f35b34801561029d57600080fd5b506101e7600160a060020a03600435811690602435166044356105ed565b3480156102c757600080fd5b506101fe600160a060020a0360043516610626565b3480156102e857600080fd5b506101e7610638565b3480156102fd57600080fd5b506101e7600160a060020a036004351660243561070b565b34801561032157600080fd5b5061032a6107ed565b60408051600160a060020a039092168252519081900360200190f35b34801561035257600080fd5b506101206107fc565b34801561036757600080fd5b506101e7600160a060020a0360043516602435610857565b34801561038b57600080fd5b506101b9600160a060020a036004351660243561091d565b3480156103af57600080fd5b506101b9610942565b3480156103c457600080fd5b5061032a61094b565b3480156103d957600080fd5b506101fe600160a060020a036004358116906024351661095a565b34801561040057600080fd5b506101e7600160a060020a0360043516610977565b6002805460408051602060018416156101000260001901909316849004601f810184900484028201840190925281815292918301828280156104985780601f1061046d57610100808354040283529160200191610498565b820191906000526020600020905b81548152906001019060200180831161047b57829003601f168201915b505050505081565b6000826104ac81610a14565b8215806104da5750336000908152600760209081526040808320600160a060020a0388168452909152902054155b1515610530576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f494e56414c49445f414d4f554e540000000000000000000000000000604482015290519081900360640190fd5b336000818152600760209081526040808320600160a060020a03891680855290835292819020879055805187815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060019392505050565b6105a0610a77565b6008805460ff19169115919091179055565b60055481565b60006105c2610adb565b6105cd848484610b37565b15156105d557fe5b5060019392505050565b60045460ff1681565b600481565b6105f5610a77565b826105ff81610a14565b8261060981610a14565b8361061381610c48565b61061e868686610ca9565b505050505050565b60066020526000908152604090205481565b600154600160a060020a0316331461069a576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b60015460008054604051600160a060020a0393841693909116917f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91a3600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b610713610a77565b8161071d81610a14565b8261072781610c48565b60055461073a908463ffffffff610d6316565b600555600160a060020a038416600090815260066020526040902054610766908463ffffffff610d6316565b600160a060020a03851660009081526006602090815260409182902092909255805185815290517f9386c90217c323f58030f9dadcbc938f807a940f4ff41cd4cead9562f5da7dc3929181900390910190a1604080518481529051600160a060020a03861691600091600080516020610f808339815191529181900360200190a350505050565b600054600160a060020a031681565b6003805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156104985780601f1061046d57610100808354040283529160200191610498565b61085f610a77565b600160a060020a038216600090815260066020526040902054610888908263ffffffff610dc716565b600160a060020a0383166000908152600660205260409020556005546108b4908263ffffffff610dc716565b600555604080518281529051600091600160a060020a03851691600080516020610f808339815191529181900360200190a36040805182815290517f9a1b418bc061a5d80270261562e6986a35d995f8051145f277be16103abd34539181900360200190a15050565b6000610927610adb565b6109318383610e27565b151561093957fe5b50600192915050565b60085460ff1681565b600154600160a060020a031681565b600760209081526000928352604080842090915290825290205481565b61097f610a77565b600054600160a060020a03828116911614156109e5576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f53414d455f4f574e4552000000000000000000000000000000000000604482015290519081900360640190fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600160a060020a0381161515610a74576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b50565b600054600160a060020a03163314610ad9576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b565b60085460ff161515610ad9576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f5452414e53464552535f44495341424c454400000000000000000000604482015290519081900360640190fd5b600083610b4381610a14565b83610b4d81610a14565b600160a060020a0386166000908152600760209081526040808320338452909152902054610b81908563ffffffff610dc716565b600160a060020a038716600081815260076020908152604080832033845282528083209490945591815260069091522054610bc2908563ffffffff610dc716565b600160a060020a038088166000908152600660205260408082209390935590871681522054610bf7908563ffffffff610d6316565b600160a060020a0380871660008181526006602090815260409182902094909455805188815290519193928a1692600080516020610f8083398151915292918290030190a350600195945050505050565b600160a060020a038116301415610a74576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f414444524553535f49535f53454c4600000000000000000000000000604482015290519081900360640190fd5b604080517f7472616e7366657228616464726573732c75696e74323536290000000000000081528151908190036019018120600160a060020a038516602483015260448083018590528351808403909101815260649092019092526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152610d5e908490610ed2565b505050565b600082820183811015610dc0576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b9392505050565b600081831015610e21576040805160e560020a62461bcd02815260206004820152600d60248201527f4552525f554e444552464c4f5700000000000000000000000000000000000000604482015290519081900360640190fd5b50900390565b600082610e3381610a14565b33600090815260066020526040902054610e53908463ffffffff610dc716565b3360009081526006602052604080822092909255600160a060020a03861681522054610e85908463ffffffff610d6316565b600160a060020a038516600081815260066020908152604091829020939093558051868152905191923392600080516020610f808339815191529281900390910190a35060019392505050565b610eda610f60565b602060405190810160405280600181525090506020818351602085016000875af1801515610f0757600080fd5b5080511515610d5e576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f5452414e534645525f4641494c454400000000000000000000000000604482015290519081900360640190fd5b60206040519081016040528060019060208202803883395091929150505600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a7230582031b56aebc8336b547b3e1346f50c2f44f70def554ed4cba4c81bcf2e092d047f0029a165627a7a723058203710122813a32201062c951a034f0a6bfe956eb08161537652742c2c17086a9a0029", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND CALLER OR SWAP1 SSTORE PUSH2 0x1E4E DUP1 PUSH2 0x25 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0xA0 JUMPI PUSH4 0xFFFFFFFF PUSH1 0xE0 PUSH1 0x2 EXP PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x12B4C6C1 DUP2 EQ PUSH2 0xA5 JUMPI DUP1 PUSH4 0x15F64B6A EQ PUSH2 0xC8 JUMPI DUP1 PUSH4 0x2E9AB7B3 EQ PUSH2 0x11B JUMPI DUP1 PUSH4 0x327779A7 EQ PUSH2 0x1C0 JUMPI DUP1 PUSH4 0x3A8FC520 EQ PUSH2 0x1DC JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x1F8 JUMPI DUP1 PUSH4 0x8CAC5E29 EQ PUSH2 0x20D JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x22E JUMPI DUP1 PUSH4 0xC977AED2 EQ PUSH2 0x243 JUMPI DUP1 PUSH4 0xD4EE1D90 EQ PUSH2 0x25F JUMPI DUP1 PUSH4 0xE54B93EF EQ PUSH2 0x274 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x295 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xB1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xC6 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x2B6 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xD4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xFF PUSH2 0xFFFF PUSH1 0x4 CALLDATALOAD AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x24 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x44 CALLDATALOAD AND PUSH4 0xFFFFFFFF PUSH1 0x64 CALLDATALOAD AND PUSH2 0x36F JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x127 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 PUSH1 0x24 DUP1 CALLDATALOAD DUP3 DUP2 ADD CALLDATALOAD PUSH1 0x1F DUP2 ADD DUP6 SWAP1 DIV DUP6 MUL DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP6 DUP6 MSTORE PUSH2 0xFF SWAP6 DUP4 CALLDATALOAD PUSH2 0xFFFF AND SWAP6 CALLDATASIZE SWAP6 PUSH1 0x44 SWAP5 SWAP2 SWAP4 SWAP1 SWAP2 ADD SWAP2 SWAP1 DUP2 SWAP1 DUP5 ADD DUP4 DUP3 DUP1 DUP3 DUP5 CALLDATACOPY POP POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x1F DUP10 CALLDATALOAD DUP12 ADD DUP1 CALLDATALOAD SWAP2 DUP3 ADD DUP4 SWAP1 DIV DUP4 MUL DUP5 ADD DUP4 ADD SWAP1 SWAP5 MSTORE DUP1 DUP4 MSTORE SWAP8 SWAP11 SWAP10 SWAP9 DUP2 ADD SWAP8 SWAP2 SWAP7 POP SWAP2 DUP3 ADD SWAP5 POP SWAP3 POP DUP3 SWAP2 POP DUP5 ADD DUP4 DUP3 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP POP POP SWAP3 CALLDATALOAD PUSH1 0xFF AND SWAP4 POP PUSH2 0x558 SWAP3 POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1CC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xFF PUSH2 0xFFFF PUSH1 0x4 CALLDATALOAD AND PUSH2 0x8CC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1E8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xFF PUSH2 0xFFFF PUSH1 0x4 CALLDATALOAD AND PUSH2 0x8E7 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x204 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xC6 PUSH2 0x902 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x219 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xC6 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x9EC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x23A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xFF PUSH2 0xA37 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x24F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xFF PUSH2 0xFFFF PUSH1 0x4 CALLDATALOAD AND PUSH2 0xA46 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x26B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xFF PUSH2 0xA61 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x280 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xC6 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0xA70 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2A1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xC6 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0xABB JUMP JUMPDEST PUSH2 0x2BE PUSH2 0xB6F JUMP JUMPDEST DUP1 PUSH1 0x2 PUSH1 0x0 DUP4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x3E8FF43F PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x301 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x315 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x32B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE POP JUMP JUMPDEST PUSH2 0xFFFF DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD DUP2 MLOAD PUSH32 0x1141395800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP8 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH4 0xFFFFFFFF DUP8 AND PUSH1 0x44 DUP4 ADD MSTORE SWAP3 MLOAD DUP6 SWAP5 SWAP4 SWAP1 SWAP3 AND SWAP3 PUSH4 0x11413958 SWAP3 PUSH1 0x64 DUP1 DUP5 ADD SWAP4 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3F9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x40D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x423 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x79BA509700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 AND SWAP2 PUSH4 0x79BA5097 SWAP2 PUSH1 0x4 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x483 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x497 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 DUP1 MLOAD PUSH32 0xF2FDE38B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND SWAP4 POP PUSH4 0xF2FDE38B SWAP3 POP PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x4FB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x50F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD CALLER SWAP3 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP2 POP PUSH2 0xFFFF DUP10 AND SWAP1 PUSH32 0xBB340BCEA68D239AC719BC5CF8C9A1716DF04AD3BABB8D1E562AA44D19FEA3A3 SWAP1 PUSH1 0x0 SWAP1 LOG4 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP2 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP1 ISZERO ISZERO PUSH2 0x686 JUMPI DUP6 DUP6 DUP6 PUSH2 0x589 PUSH2 0xBEA JUMP JUMPDEST PUSH1 0xFF DUP3 AND PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP1 DUP3 MSTORE DUP5 MLOAD SWAP1 DUP3 ADD MSTORE DUP4 MLOAD DUP2 SWAP1 PUSH1 0x20 DUP1 DUP4 ADD SWAP2 PUSH1 0x80 DUP5 ADD SWAP2 DUP9 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x5CD JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x5B5 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x5FA JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP DUP4 DUP2 SUB DUP3 MSTORE DUP6 MLOAD DUP2 MSTORE DUP6 MLOAD PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 DUP8 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x62D JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x615 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x65A JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP6 POP POP POP POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 PUSH1 0x0 CREATE DUP1 ISZERO DUP1 ISZERO PUSH2 0x67E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP SWAP2 POP PUSH2 0x849 JUMP JUMPDEST DUP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xA9FD4A2A DUP8 DUP8 DUP8 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP5 PUSH1 0xFF AND PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 SUB DUP4 MSTORE DUP7 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x6F7 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x6DF JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x724 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP DUP4 DUP2 SUB DUP3 MSTORE DUP6 MLOAD DUP2 MSTORE DUP6 MLOAD PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 DUP8 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x757 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x73F JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x784 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP6 POP POP POP POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x7A6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x7BA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x7D0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x79BA509700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP4 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP2 PUSH4 0x79BA5097 SWAP2 PUSH1 0x4 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x830 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x844 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0xF2FDE38B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP2 PUSH4 0xF2FDE38B SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x8A9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x8BD JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP SWAP4 SWAP10 SWAP9 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x97B JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND SWAP4 SWAP1 SWAP2 AND SWAP2 PUSH32 0x343765429AEA5A34B3FF6A3785A98A5ABB2597ACA87BFBB58632C173D585373A SWAP2 LOG3 PUSH1 0x1 DUP1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND OR SWAP1 SWAP2 SSTORE AND SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x9F4 PUSH2 0xB6F JUMP JUMPDEST DUP1 PUSH1 0x4 PUSH1 0x0 DUP4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x3E8FF43F PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x301 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH2 0xA78 PUSH2 0xB6F JUMP JUMPDEST DUP1 PUSH1 0x3 PUSH1 0x0 DUP4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x3E8FF43F PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x301 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xAC3 PUSH2 0xB6F JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0xB40 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F4F574E4552000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0xBE8 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1228 DUP1 PUSH2 0xBFB DUP4 CODECOPY ADD SWAP1 JUMP STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x8 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE CALLVALUE DUP1 ISZERO PUSH3 0x1E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x1228 CODESIZE SUB DUP1 PUSH3 0x1228 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 SWAP1 DUP2 MSTORE DUP2 MLOAD PUSH1 0x20 DUP4 ADD MLOAD SWAP2 DUP4 ADD MLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND CALLER OR DUP2 SSTORE SWAP2 DUP5 ADD DUP1 MLOAD SWAP1 SWAP5 SWAP4 SWAP1 SWAP4 ADD SWAP3 SWAP1 SWAP2 DUP5 SWAP2 DUP5 SWAP2 DUP5 SWAP2 DUP2 LT PUSH3 0xD5 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4E414D4500000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP3 MLOAD PUSH1 0x0 LT PUSH3 0x146 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F53594D424F4C0000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP4 MLOAD PUSH3 0x15B SWAP1 PUSH1 0x2 SWAP1 PUSH1 0x20 DUP8 ADD SWAP1 PUSH3 0x1A8 JUMP JUMPDEST POP DUP3 MLOAD PUSH3 0x171 SWAP1 PUSH1 0x3 SWAP1 PUSH1 0x20 DUP7 ADD SWAP1 PUSH3 0x1A8 JUMP JUMPDEST POP PUSH1 0x4 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0xFF SWAP4 SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 SSTORE PUSH1 0x5 DUP2 SWAP1 SSTORE CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE POP PUSH3 0x24D SWAP4 POP POP POP POP JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH1 0x1F LT PUSH3 0x1EB JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH3 0x21B JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH3 0x21B JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH3 0x21B JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH3 0x1FE JUMP JUMPDEST POP PUSH3 0x229 SWAP3 SWAP2 POP PUSH3 0x22D JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH3 0x24A SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH3 0x229 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH3 0x234 JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH2 0xFCB DUP1 PUSH3 0x25D PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x106 JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x6FDDE03 DUP2 EQ PUSH2 0x10B JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x195 JUMPI DUP1 PUSH4 0x1608F18F EQ PUSH2 0x1CD JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x1E9 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x210 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x23A JUMPI DUP1 PUSH4 0x54FD4D50 EQ PUSH2 0x265 JUMPI DUP1 PUSH4 0x5E35359E EQ PUSH2 0x291 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x2BB JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x2DC JUMPI DUP1 PUSH4 0x867904B4 EQ PUSH2 0x2F1 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x315 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x346 JUMPI DUP1 PUSH4 0xA24835D1 EQ PUSH2 0x35B JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x37F JUMPI DUP1 PUSH4 0xBEF97C87 EQ PUSH2 0x3A3 JUMPI DUP1 PUSH4 0xD4EE1D90 EQ PUSH2 0x3B8 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x3CD JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x3F4 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x117 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x120 PUSH2 0x415 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP4 MLOAD DUP2 DUP4 ADD MSTORE DUP4 MLOAD SWAP2 SWAP3 DUP4 SWAP3 SWAP1 DUP4 ADD SWAP2 DUP6 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x15A JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x142 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x187 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1A1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B9 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x4A0 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1D9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH1 0x4 CALLDATALOAD ISZERO ISZERO PUSH2 0x598 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1FE PUSH2 0x5B2 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x21C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B9 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x5B8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x246 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x24F PUSH2 0x5DF JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x271 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x27A PUSH2 0x5E8 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0xFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x29D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x5ED JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2C7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1FE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x626 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2E8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH2 0x638 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2FD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x70B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x321 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x32A PUSH2 0x7ED JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x352 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x120 PUSH2 0x7FC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x367 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x857 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x38B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B9 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x91D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3AF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B9 PUSH2 0x942 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3C4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x32A PUSH2 0x94B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3D9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1FE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH2 0x95A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x400 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x977 JUMP JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x1 DUP5 AND ISZERO PUSH2 0x100 MUL PUSH1 0x0 NOT ADD SWAP1 SWAP4 AND DUP5 SWAP1 DIV PUSH1 0x1F DUP2 ADD DUP5 SWAP1 DIV DUP5 MUL DUP3 ADD DUP5 ADD SWAP1 SWAP3 MSTORE DUP2 DUP2 MSTORE SWAP3 SWAP2 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x498 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x46D JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x498 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x47B JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x4AC DUP2 PUSH2 0xA14 JUMP JUMPDEST DUP3 ISZERO DUP1 PUSH2 0x4DA JUMPI POP CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x530 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F414D4F554E540000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST CALLER PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP10 AND DUP1 DUP6 MSTORE SWAP1 DUP4 MSTORE SWAP3 DUP2 SWAP1 KECCAK256 DUP8 SWAP1 SSTORE DUP1 MLOAD DUP8 DUP2 MSTORE SWAP1 MLOAD SWAP3 SWAP4 SWAP3 PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP3 SWAP2 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x5A0 PUSH2 0xA77 JUMP JUMPDEST PUSH1 0x8 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP2 ISZERO SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x5 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5C2 PUSH2 0xADB JUMP JUMPDEST PUSH2 0x5CD DUP5 DUP5 DUP5 PUSH2 0xB37 JUMP JUMPDEST ISZERO ISZERO PUSH2 0x5D5 JUMPI INVALID JUMPDEST POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x4 DUP2 JUMP JUMPDEST PUSH2 0x5F5 PUSH2 0xA77 JUMP JUMPDEST DUP3 PUSH2 0x5FF DUP2 PUSH2 0xA14 JUMP JUMPDEST DUP3 PUSH2 0x609 DUP2 PUSH2 0xA14 JUMP JUMPDEST DUP4 PUSH2 0x613 DUP2 PUSH2 0xC48 JUMP JUMPDEST PUSH2 0x61E DUP7 DUP7 DUP7 PUSH2 0xCA9 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x69A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND SWAP4 SWAP1 SWAP2 AND SWAP2 PUSH32 0x343765429AEA5A34B3FF6A3785A98A5ABB2597ACA87BFBB58632C173D585373A SWAP2 LOG3 PUSH1 0x1 DUP1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND OR SWAP1 SWAP2 SSTORE AND SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x713 PUSH2 0xA77 JUMP JUMPDEST DUP2 PUSH2 0x71D DUP2 PUSH2 0xA14 JUMP JUMPDEST DUP3 PUSH2 0x727 DUP2 PUSH2 0xC48 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH2 0x73A SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0xD63 AND JUMP JUMPDEST PUSH1 0x5 SSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x766 SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0xD63 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SWAP3 SWAP1 SWAP3 SSTORE DUP1 MLOAD DUP6 DUP2 MSTORE SWAP1 MLOAD PUSH32 0x9386C90217C323F58030F9DADCBC938F807A940F4FF41CD4CEAD9562F5DA7DC3 SWAP3 SWAP2 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG1 PUSH1 0x40 DUP1 MLOAD DUP5 DUP2 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND SWAP2 PUSH1 0x0 SWAP2 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xF80 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP2 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 LOG3 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x2 PUSH1 0x1 DUP6 AND ISZERO PUSH2 0x100 MUL PUSH1 0x0 NOT ADD SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 DIV PUSH1 0x1F DUP2 ADD DUP5 SWAP1 DIV DUP5 MUL DUP3 ADD DUP5 ADD SWAP1 SWAP3 MSTORE DUP2 DUP2 MSTORE SWAP3 SWAP2 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x498 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x46D JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x498 JUMP JUMPDEST PUSH2 0x85F PUSH2 0xA77 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x888 SWAP1 DUP3 PUSH4 0xFFFFFFFF PUSH2 0xDC7 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE PUSH1 0x5 SLOAD PUSH2 0x8B4 SWAP1 DUP3 PUSH4 0xFFFFFFFF PUSH2 0xDC7 AND JUMP JUMPDEST PUSH1 0x5 SSTORE PUSH1 0x40 DUP1 MLOAD DUP3 DUP2 MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND SWAP2 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xF80 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP2 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 LOG3 PUSH1 0x40 DUP1 MLOAD DUP3 DUP2 MSTORE SWAP1 MLOAD PUSH32 0x9A1B418BC061A5D80270261562E6986A35D995F8051145F277BE16103ABD3453 SWAP2 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x927 PUSH2 0xADB JUMP JUMPDEST PUSH2 0x931 DUP4 DUP4 PUSH2 0xE27 JUMP JUMPDEST ISZERO ISZERO PUSH2 0x939 JUMPI INVALID JUMPDEST POP PUSH1 0x1 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x97F PUSH2 0xA77 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x9E5 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F4F574E4552000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0xA74 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0xAD9 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0xFF AND ISZERO ISZERO PUSH2 0xAD9 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5452414E53464552535F44495341424C454400000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP4 PUSH2 0xB43 DUP2 PUSH2 0xA14 JUMP JUMPDEST DUP4 PUSH2 0xB4D DUP2 PUSH2 0xA14 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH2 0xB81 SWAP1 DUP6 PUSH4 0xFFFFFFFF PUSH2 0xDC7 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE DUP3 MSTORE DUP1 DUP4 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE SWAP2 DUP2 MSTORE PUSH1 0x6 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD PUSH2 0xBC2 SWAP1 DUP6 PUSH4 0xFFFFFFFF PUSH2 0xDC7 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE SWAP1 DUP8 AND DUP2 MSTORE KECCAK256 SLOAD PUSH2 0xBF7 SWAP1 DUP6 PUSH4 0xFFFFFFFF PUSH2 0xD63 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP8 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE DUP1 MLOAD DUP9 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP4 SWAP3 DUP11 AND SWAP3 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xF80 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP3 SWAP2 DUP3 SWAP1 SUB ADD SWAP1 LOG3 POP PUSH1 0x1 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ADDRESS EQ ISZERO PUSH2 0xA74 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F414444524553535F49535F53454C4600000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x7472616E7366657228616464726573732C75696E743235362900000000000000 DUP2 MSTORE DUP2 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x19 ADD DUP2 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x64 SWAP1 SWAP3 ADD SWAP1 SWAP3 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE PUSH2 0xD5E SWAP1 DUP5 SWAP1 PUSH2 0xED2 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 ADD DUP4 DUP2 LT ISZERO PUSH2 0xDC0 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT ISZERO PUSH2 0xE21 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F554E444552464C4F5700000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP SWAP1 SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0xE33 DUP2 PUSH2 0xA14 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0xE53 SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0xDC7 AND JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP3 SWAP1 SWAP3 SSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND DUP2 MSTORE KECCAK256 SLOAD PUSH2 0xE85 SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0xD63 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE DUP1 MLOAD DUP7 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP3 CALLER SWAP3 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xF80 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0xEDA PUSH2 0xF60 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE POP SWAP1 POP PUSH1 0x20 DUP2 DUP4 MLOAD PUSH1 0x20 DUP6 ADD PUSH1 0x0 DUP8 GAS CALL DUP1 ISZERO ISZERO PUSH2 0xF07 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD ISZERO ISZERO PUSH2 0xD5E JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5452414E534645525F4641494C454400000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 SWAP1 PUSH1 0x20 DUP3 MUL DUP1 CODESIZE DUP4 CODECOPY POP SWAP2 SWAP3 SWAP2 POP POP JUMP STOP 0xdd CALLCODE MSTORE 0xad SHL 0xe2 0xc8 SWAP12 PUSH10 0xC2B068FC378DAA952BA7 CALL PUSH4 0xC4A11628 0xf5 GAS 0x4d 0xf5 0x23 0xb3 0xef LOG1 PUSH6 0x627A7A723058 KECCAK256 BALANCE 0xb5 PUSH11 0xEBC8336B547B3E1346F50C 0x2f DIFFICULTY 0xf7 0xd 0xef SSTORE 0x4e 0xd4 0xcb LOG4 0xc8 SHL 0xcf 0x2e MULMOD 0x2d DIV PUSH32 0x29A165627A7A723058203710122813A32201062C951A034F0A6BFE956EB081 PUSH2 0x5376 MSTORE PUSH21 0x2C2C17086A9A002900000000000000000000000000 ", - "sourceMap": "417:3381:5:-;;;488:5:66;:18;;-1:-1:-1;;;;;;488:18:66;496:10;488:18;;;417:3381:5;;;;;;" - }, - "deployedBytecode": { - "linkReferences": {}, - "object": "6080604052600436106100a05763ffffffff60e060020a60003504166312b4c6c181146100a557806315f64b6a146100c85780632e9ab7b31461011b578063327779a7146101c05780633a8fc520146101dc57806379ba5097146101f85780638cac5e291461020d5780638da5cb5b1461022e578063c977aed214610243578063d4ee1d901461025f578063e54b93ef14610274578063f2fde38b14610295575b600080fd5b3480156100b157600080fd5b506100c6600160a060020a03600435166102b6565b005b3480156100d457600080fd5b506100ff61ffff60043516600160a060020a036024358116906044351663ffffffff6064351661036f565b60408051600160a060020a039092168252519081900360200190f35b34801561012757600080fd5b5060408051602060046024803582810135601f81018590048502860185019096528585526100ff95833561ffff1695369560449491939091019190819084018382808284375050604080516020601f89358b018035918201839004830284018301909452808352979a9998810197919650918201945092508291508401838280828437509497505050923560ff16935061055892505050565b3480156101cc57600080fd5b506100ff61ffff600435166108cc565b3480156101e857600080fd5b506100ff61ffff600435166108e7565b34801561020457600080fd5b506100c6610902565b34801561021957600080fd5b506100c6600160a060020a03600435166109ec565b34801561023a57600080fd5b506100ff610a37565b34801561024f57600080fd5b506100ff61ffff60043516610a46565b34801561026b57600080fd5b506100ff610a61565b34801561028057600080fd5b506100c6600160a060020a0360043516610a70565b3480156102a157600080fd5b506100c6600160a060020a0360043516610abb565b6102be610b6f565b806002600083600160a060020a0316633e8ff43f6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561030157600080fd5b505af1158015610315573d6000803e3d6000fd5b505050506040513d602081101561032b57600080fd5b505161ffff1681526020810191909152604001600020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905550565b61ffff841660009081526002602090815260408083205481517f11413958000000000000000000000000000000000000000000000000000000008152600160a060020a038881166004830152878116602483015263ffffffff8716604483015292518594939092169263114139589260648084019382900301818787803b1580156103f957600080fd5b505af115801561040d573d6000803e3d6000fd5b505050506040513d602081101561042357600080fd5b5051604080517f79ba50970000000000000000000000000000000000000000000000000000000081529051919250600160a060020a038316916379ba50979160048082019260009290919082900301818387803b15801561048357600080fd5b505af1158015610497573d6000803e3d6000fd5b5050604080517ff2fde38b0000000000000000000000000000000000000000000000000000000081523360048201529051600160a060020a038516935063f2fde38b9250602480830192600092919082900301818387803b1580156104fb57600080fd5b505af115801561050f573d6000803e3d6000fd5b5050604051339250600160a060020a038416915061ffff8916907fbb340bcea68d239ac719bc5cf8c9a1716df04ad3babb8d1e562aa44d19fea3a390600090a495945050505050565b61ffff84166000908152600360205260408120548190600160a060020a031680151561068657858585610589610bea565b60ff82166040820152606080825284519082015283518190602080830191608084019188019080838360005b838110156105cd5781810151838201526020016105b5565b50505050905090810190601f1680156105fa5780820380516001836020036101000a031916815260200191505b50838103825285518152855160209182019187019080838360005b8381101561062d578181015183820152602001610615565b50505050905090810190601f16801561065a5780820380516001836020036101000a031916815260200191505b5095505050505050604051809103906000f08015801561067e573d6000803e3d6000fd5b509150610849565b80600160a060020a031663a9fd4a2a8787876040518463ffffffff1660e060020a0281526004018080602001806020018460ff1660ff168152602001838103835286818151815260200191508051906020019080838360005b838110156106f75781810151838201526020016106df565b50505050905090810190601f1680156107245780820380516001836020036101000a031916815260200191505b50838103825285518152855160209182019187019080838360005b8381101561075757818101518382015260200161073f565b50505050905090810190601f1680156107845780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1580156107a657600080fd5b505af11580156107ba573d6000803e3d6000fd5b505050506040513d60208110156107d057600080fd5b5051604080517f79ba50970000000000000000000000000000000000000000000000000000000081529051919350600160a060020a038416916379ba50979160048082019260009290919082900301818387803b15801561083057600080fd5b505af1158015610844573d6000803e3d6000fd5b505050505b604080517ff2fde38b0000000000000000000000000000000000000000000000000000000081523360048201529051600160a060020a0384169163f2fde38b91602480830192600092919082900301818387803b1580156108a957600080fd5b505af11580156108bd573d6000803e3d6000fd5b50939998505050505050505050565b600260205260009081526040902054600160a060020a031681565b600360205260009081526040902054600160a060020a031681565b600154600160a060020a0316331461097b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b60015460008054604051600160a060020a0393841693909116917f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91a3600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b6109f4610b6f565b806004600083600160a060020a0316633e8ff43f6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561030157600080fd5b600054600160a060020a031681565b600460205260009081526040902054600160a060020a031681565b600154600160a060020a031681565b610a78610b6f565b806003600083600160a060020a0316633e8ff43f6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561030157600080fd5b610ac3610b6f565b600054600160a060020a0382811691161415610b4057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f4552525f53414d455f4f574e4552000000000000000000000000000000000000604482015290519081900360640190fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600054600160a060020a03163314610be857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b565b60405161122880610bfb83390190560060806040526008805460ff191660011790553480156200001e57600080fd5b506040516200122838038062001228833981016040908152815160208301519183015160008054600160a060020a0319163317815591840180519094939093019290918491849184918110620000d557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f4552525f494e56414c49445f4e414d4500000000000000000000000000000000604482015290519081900360640190fd5b82516000106200014657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f4552525f494e56414c49445f53594d424f4c0000000000000000000000000000604482015290519081900360640190fd5b83516200015b906002906020870190620001a8565b50825162000171906003906020860190620001a8565b506004805460ff191660ff9390931692909217909155600581905533600090815260066020526040902055506200024d9350505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620001eb57805160ff19168380011785556200021b565b828001600101855582156200021b579182015b828111156200021b578251825591602001919060010190620001fe565b50620002299291506200022d565b5090565b6200024a91905b8082111562000229576000815560010162000234565b90565b610fcb806200025d6000396000f3006080604052600436106101065763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde03811461010b578063095ea7b3146101955780631608f18f146101cd57806318160ddd146101e957806323b872dd14610210578063313ce5671461023a57806354fd4d50146102655780635e35359e1461029157806370a08231146102bb57806379ba5097146102dc578063867904b4146102f15780638da5cb5b1461031557806395d89b4114610346578063a24835d11461035b578063a9059cbb1461037f578063bef97c87146103a3578063d4ee1d90146103b8578063dd62ed3e146103cd578063f2fde38b146103f4575b600080fd5b34801561011757600080fd5b50610120610415565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561015a578181015183820152602001610142565b50505050905090810190601f1680156101875780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101a157600080fd5b506101b9600160a060020a03600435166024356104a0565b604080519115158252519081900360200190f35b3480156101d957600080fd5b506101e76004351515610598565b005b3480156101f557600080fd5b506101fe6105b2565b60408051918252519081900360200190f35b34801561021c57600080fd5b506101b9600160a060020a03600435811690602435166044356105b8565b34801561024657600080fd5b5061024f6105df565b6040805160ff9092168252519081900360200190f35b34801561027157600080fd5b5061027a6105e8565b6040805161ffff9092168252519081900360200190f35b34801561029d57600080fd5b506101e7600160a060020a03600435811690602435166044356105ed565b3480156102c757600080fd5b506101fe600160a060020a0360043516610626565b3480156102e857600080fd5b506101e7610638565b3480156102fd57600080fd5b506101e7600160a060020a036004351660243561070b565b34801561032157600080fd5b5061032a6107ed565b60408051600160a060020a039092168252519081900360200190f35b34801561035257600080fd5b506101206107fc565b34801561036757600080fd5b506101e7600160a060020a0360043516602435610857565b34801561038b57600080fd5b506101b9600160a060020a036004351660243561091d565b3480156103af57600080fd5b506101b9610942565b3480156103c457600080fd5b5061032a61094b565b3480156103d957600080fd5b506101fe600160a060020a036004358116906024351661095a565b34801561040057600080fd5b506101e7600160a060020a0360043516610977565b6002805460408051602060018416156101000260001901909316849004601f810184900484028201840190925281815292918301828280156104985780601f1061046d57610100808354040283529160200191610498565b820191906000526020600020905b81548152906001019060200180831161047b57829003601f168201915b505050505081565b6000826104ac81610a14565b8215806104da5750336000908152600760209081526040808320600160a060020a0388168452909152902054155b1515610530576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f494e56414c49445f414d4f554e540000000000000000000000000000604482015290519081900360640190fd5b336000818152600760209081526040808320600160a060020a03891680855290835292819020879055805187815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060019392505050565b6105a0610a77565b6008805460ff19169115919091179055565b60055481565b60006105c2610adb565b6105cd848484610b37565b15156105d557fe5b5060019392505050565b60045460ff1681565b600481565b6105f5610a77565b826105ff81610a14565b8261060981610a14565b8361061381610c48565b61061e868686610ca9565b505050505050565b60066020526000908152604090205481565b600154600160a060020a0316331461069a576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b60015460008054604051600160a060020a0393841693909116917f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91a3600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b610713610a77565b8161071d81610a14565b8261072781610c48565b60055461073a908463ffffffff610d6316565b600555600160a060020a038416600090815260066020526040902054610766908463ffffffff610d6316565b600160a060020a03851660009081526006602090815260409182902092909255805185815290517f9386c90217c323f58030f9dadcbc938f807a940f4ff41cd4cead9562f5da7dc3929181900390910190a1604080518481529051600160a060020a03861691600091600080516020610f808339815191529181900360200190a350505050565b600054600160a060020a031681565b6003805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156104985780601f1061046d57610100808354040283529160200191610498565b61085f610a77565b600160a060020a038216600090815260066020526040902054610888908263ffffffff610dc716565b600160a060020a0383166000908152600660205260409020556005546108b4908263ffffffff610dc716565b600555604080518281529051600091600160a060020a03851691600080516020610f808339815191529181900360200190a36040805182815290517f9a1b418bc061a5d80270261562e6986a35d995f8051145f277be16103abd34539181900360200190a15050565b6000610927610adb565b6109318383610e27565b151561093957fe5b50600192915050565b60085460ff1681565b600154600160a060020a031681565b600760209081526000928352604080842090915290825290205481565b61097f610a77565b600054600160a060020a03828116911614156109e5576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f53414d455f4f574e4552000000000000000000000000000000000000604482015290519081900360640190fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600160a060020a0381161515610a74576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b50565b600054600160a060020a03163314610ad9576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b565b60085460ff161515610ad9576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f5452414e53464552535f44495341424c454400000000000000000000604482015290519081900360640190fd5b600083610b4381610a14565b83610b4d81610a14565b600160a060020a0386166000908152600760209081526040808320338452909152902054610b81908563ffffffff610dc716565b600160a060020a038716600081815260076020908152604080832033845282528083209490945591815260069091522054610bc2908563ffffffff610dc716565b600160a060020a038088166000908152600660205260408082209390935590871681522054610bf7908563ffffffff610d6316565b600160a060020a0380871660008181526006602090815260409182902094909455805188815290519193928a1692600080516020610f8083398151915292918290030190a350600195945050505050565b600160a060020a038116301415610a74576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f414444524553535f49535f53454c4600000000000000000000000000604482015290519081900360640190fd5b604080517f7472616e7366657228616464726573732c75696e74323536290000000000000081528151908190036019018120600160a060020a038516602483015260448083018590528351808403909101815260649092019092526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152610d5e908490610ed2565b505050565b600082820183811015610dc0576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b9392505050565b600081831015610e21576040805160e560020a62461bcd02815260206004820152600d60248201527f4552525f554e444552464c4f5700000000000000000000000000000000000000604482015290519081900360640190fd5b50900390565b600082610e3381610a14565b33600090815260066020526040902054610e53908463ffffffff610dc716565b3360009081526006602052604080822092909255600160a060020a03861681522054610e85908463ffffffff610d6316565b600160a060020a038516600081815260066020908152604091829020939093558051868152905191923392600080516020610f808339815191529281900390910190a35060019392505050565b610eda610f60565b602060405190810160405280600181525090506020818351602085016000875af1801515610f0757600080fd5b5080511515610d5e576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f5452414e534645525f4641494c454400000000000000000000000000604482015290519081900360640190fd5b60206040519081016040528060019060208202803883395091929150505600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a7230582031b56aebc8336b547b3e1346f50c2f44f70def554ed4cba4c81bcf2e092d047f0029a165627a7a723058203710122813a32201062c951a034f0a6bfe956eb08161537652742c2c17086a9a0029", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0xA0 JUMPI PUSH4 0xFFFFFFFF PUSH1 0xE0 PUSH1 0x2 EXP PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x12B4C6C1 DUP2 EQ PUSH2 0xA5 JUMPI DUP1 PUSH4 0x15F64B6A EQ PUSH2 0xC8 JUMPI DUP1 PUSH4 0x2E9AB7B3 EQ PUSH2 0x11B JUMPI DUP1 PUSH4 0x327779A7 EQ PUSH2 0x1C0 JUMPI DUP1 PUSH4 0x3A8FC520 EQ PUSH2 0x1DC JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x1F8 JUMPI DUP1 PUSH4 0x8CAC5E29 EQ PUSH2 0x20D JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x22E JUMPI DUP1 PUSH4 0xC977AED2 EQ PUSH2 0x243 JUMPI DUP1 PUSH4 0xD4EE1D90 EQ PUSH2 0x25F JUMPI DUP1 PUSH4 0xE54B93EF EQ PUSH2 0x274 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x295 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xB1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xC6 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x2B6 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xD4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xFF PUSH2 0xFFFF PUSH1 0x4 CALLDATALOAD AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x24 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x44 CALLDATALOAD AND PUSH4 0xFFFFFFFF PUSH1 0x64 CALLDATALOAD AND PUSH2 0x36F JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x127 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 PUSH1 0x24 DUP1 CALLDATALOAD DUP3 DUP2 ADD CALLDATALOAD PUSH1 0x1F DUP2 ADD DUP6 SWAP1 DIV DUP6 MUL DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP6 DUP6 MSTORE PUSH2 0xFF SWAP6 DUP4 CALLDATALOAD PUSH2 0xFFFF AND SWAP6 CALLDATASIZE SWAP6 PUSH1 0x44 SWAP5 SWAP2 SWAP4 SWAP1 SWAP2 ADD SWAP2 SWAP1 DUP2 SWAP1 DUP5 ADD DUP4 DUP3 DUP1 DUP3 DUP5 CALLDATACOPY POP POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x1F DUP10 CALLDATALOAD DUP12 ADD DUP1 CALLDATALOAD SWAP2 DUP3 ADD DUP4 SWAP1 DIV DUP4 MUL DUP5 ADD DUP4 ADD SWAP1 SWAP5 MSTORE DUP1 DUP4 MSTORE SWAP8 SWAP11 SWAP10 SWAP9 DUP2 ADD SWAP8 SWAP2 SWAP7 POP SWAP2 DUP3 ADD SWAP5 POP SWAP3 POP DUP3 SWAP2 POP DUP5 ADD DUP4 DUP3 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP POP POP SWAP3 CALLDATALOAD PUSH1 0xFF AND SWAP4 POP PUSH2 0x558 SWAP3 POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1CC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xFF PUSH2 0xFFFF PUSH1 0x4 CALLDATALOAD AND PUSH2 0x8CC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1E8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xFF PUSH2 0xFFFF PUSH1 0x4 CALLDATALOAD AND PUSH2 0x8E7 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x204 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xC6 PUSH2 0x902 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x219 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xC6 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x9EC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x23A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xFF PUSH2 0xA37 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x24F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xFF PUSH2 0xFFFF PUSH1 0x4 CALLDATALOAD AND PUSH2 0xA46 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x26B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xFF PUSH2 0xA61 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x280 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xC6 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0xA70 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2A1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xC6 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0xABB JUMP JUMPDEST PUSH2 0x2BE PUSH2 0xB6F JUMP JUMPDEST DUP1 PUSH1 0x2 PUSH1 0x0 DUP4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x3E8FF43F PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x301 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x315 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x32B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE POP JUMP JUMPDEST PUSH2 0xFFFF DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD DUP2 MLOAD PUSH32 0x1141395800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP8 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH4 0xFFFFFFFF DUP8 AND PUSH1 0x44 DUP4 ADD MSTORE SWAP3 MLOAD DUP6 SWAP5 SWAP4 SWAP1 SWAP3 AND SWAP3 PUSH4 0x11413958 SWAP3 PUSH1 0x64 DUP1 DUP5 ADD SWAP4 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3F9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x40D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x423 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x79BA509700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 AND SWAP2 PUSH4 0x79BA5097 SWAP2 PUSH1 0x4 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x483 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x497 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 DUP1 MLOAD PUSH32 0xF2FDE38B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND SWAP4 POP PUSH4 0xF2FDE38B SWAP3 POP PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x4FB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x50F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD CALLER SWAP3 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP2 POP PUSH2 0xFFFF DUP10 AND SWAP1 PUSH32 0xBB340BCEA68D239AC719BC5CF8C9A1716DF04AD3BABB8D1E562AA44D19FEA3A3 SWAP1 PUSH1 0x0 SWAP1 LOG4 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP2 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP1 ISZERO ISZERO PUSH2 0x686 JUMPI DUP6 DUP6 DUP6 PUSH2 0x589 PUSH2 0xBEA JUMP JUMPDEST PUSH1 0xFF DUP3 AND PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP1 DUP3 MSTORE DUP5 MLOAD SWAP1 DUP3 ADD MSTORE DUP4 MLOAD DUP2 SWAP1 PUSH1 0x20 DUP1 DUP4 ADD SWAP2 PUSH1 0x80 DUP5 ADD SWAP2 DUP9 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x5CD JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x5B5 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x5FA JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP DUP4 DUP2 SUB DUP3 MSTORE DUP6 MLOAD DUP2 MSTORE DUP6 MLOAD PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 DUP8 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x62D JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x615 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x65A JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP6 POP POP POP POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 PUSH1 0x0 CREATE DUP1 ISZERO DUP1 ISZERO PUSH2 0x67E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP SWAP2 POP PUSH2 0x849 JUMP JUMPDEST DUP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xA9FD4A2A DUP8 DUP8 DUP8 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP5 PUSH1 0xFF AND PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 SUB DUP4 MSTORE DUP7 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x6F7 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x6DF JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x724 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP DUP4 DUP2 SUB DUP3 MSTORE DUP6 MLOAD DUP2 MSTORE DUP6 MLOAD PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 DUP8 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x757 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x73F JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x784 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP6 POP POP POP POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x7A6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x7BA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x7D0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x79BA509700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP4 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP2 PUSH4 0x79BA5097 SWAP2 PUSH1 0x4 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x830 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x844 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0xF2FDE38B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP2 PUSH4 0xF2FDE38B SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x8A9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x8BD JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP SWAP4 SWAP10 SWAP9 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x97B JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND SWAP4 SWAP1 SWAP2 AND SWAP2 PUSH32 0x343765429AEA5A34B3FF6A3785A98A5ABB2597ACA87BFBB58632C173D585373A SWAP2 LOG3 PUSH1 0x1 DUP1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND OR SWAP1 SWAP2 SSTORE AND SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x9F4 PUSH2 0xB6F JUMP JUMPDEST DUP1 PUSH1 0x4 PUSH1 0x0 DUP4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x3E8FF43F PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x301 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH2 0xA78 PUSH2 0xB6F JUMP JUMPDEST DUP1 PUSH1 0x3 PUSH1 0x0 DUP4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x3E8FF43F PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x301 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xAC3 PUSH2 0xB6F JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0xB40 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F4F574E4552000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0xBE8 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1228 DUP1 PUSH2 0xBFB DUP4 CODECOPY ADD SWAP1 JUMP STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x8 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE CALLVALUE DUP1 ISZERO PUSH3 0x1E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x1228 CODESIZE SUB DUP1 PUSH3 0x1228 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 SWAP1 DUP2 MSTORE DUP2 MLOAD PUSH1 0x20 DUP4 ADD MLOAD SWAP2 DUP4 ADD MLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND CALLER OR DUP2 SSTORE SWAP2 DUP5 ADD DUP1 MLOAD SWAP1 SWAP5 SWAP4 SWAP1 SWAP4 ADD SWAP3 SWAP1 SWAP2 DUP5 SWAP2 DUP5 SWAP2 DUP5 SWAP2 DUP2 LT PUSH3 0xD5 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4E414D4500000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP3 MLOAD PUSH1 0x0 LT PUSH3 0x146 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F53594D424F4C0000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP4 MLOAD PUSH3 0x15B SWAP1 PUSH1 0x2 SWAP1 PUSH1 0x20 DUP8 ADD SWAP1 PUSH3 0x1A8 JUMP JUMPDEST POP DUP3 MLOAD PUSH3 0x171 SWAP1 PUSH1 0x3 SWAP1 PUSH1 0x20 DUP7 ADD SWAP1 PUSH3 0x1A8 JUMP JUMPDEST POP PUSH1 0x4 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0xFF SWAP4 SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 SSTORE PUSH1 0x5 DUP2 SWAP1 SSTORE CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE POP PUSH3 0x24D SWAP4 POP POP POP POP JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH1 0x1F LT PUSH3 0x1EB JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH3 0x21B JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH3 0x21B JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH3 0x21B JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH3 0x1FE JUMP JUMPDEST POP PUSH3 0x229 SWAP3 SWAP2 POP PUSH3 0x22D JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH3 0x24A SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH3 0x229 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH3 0x234 JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH2 0xFCB DUP1 PUSH3 0x25D PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x106 JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x6FDDE03 DUP2 EQ PUSH2 0x10B JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x195 JUMPI DUP1 PUSH4 0x1608F18F EQ PUSH2 0x1CD JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x1E9 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x210 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x23A JUMPI DUP1 PUSH4 0x54FD4D50 EQ PUSH2 0x265 JUMPI DUP1 PUSH4 0x5E35359E EQ PUSH2 0x291 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x2BB JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x2DC JUMPI DUP1 PUSH4 0x867904B4 EQ PUSH2 0x2F1 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x315 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x346 JUMPI DUP1 PUSH4 0xA24835D1 EQ PUSH2 0x35B JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x37F JUMPI DUP1 PUSH4 0xBEF97C87 EQ PUSH2 0x3A3 JUMPI DUP1 PUSH4 0xD4EE1D90 EQ PUSH2 0x3B8 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x3CD JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x3F4 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x117 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x120 PUSH2 0x415 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP4 MLOAD DUP2 DUP4 ADD MSTORE DUP4 MLOAD SWAP2 SWAP3 DUP4 SWAP3 SWAP1 DUP4 ADD SWAP2 DUP6 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x15A JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x142 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x187 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1A1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B9 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x4A0 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1D9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH1 0x4 CALLDATALOAD ISZERO ISZERO PUSH2 0x598 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1FE PUSH2 0x5B2 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x21C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B9 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x5B8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x246 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x24F PUSH2 0x5DF JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x271 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x27A PUSH2 0x5E8 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0xFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x29D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x5ED JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2C7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1FE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x626 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2E8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH2 0x638 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2FD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x70B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x321 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x32A PUSH2 0x7ED JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x352 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x120 PUSH2 0x7FC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x367 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x857 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x38B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B9 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x91D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3AF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B9 PUSH2 0x942 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3C4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x32A PUSH2 0x94B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3D9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1FE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH2 0x95A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x400 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x977 JUMP JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x1 DUP5 AND ISZERO PUSH2 0x100 MUL PUSH1 0x0 NOT ADD SWAP1 SWAP4 AND DUP5 SWAP1 DIV PUSH1 0x1F DUP2 ADD DUP5 SWAP1 DIV DUP5 MUL DUP3 ADD DUP5 ADD SWAP1 SWAP3 MSTORE DUP2 DUP2 MSTORE SWAP3 SWAP2 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x498 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x46D JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x498 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x47B JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x4AC DUP2 PUSH2 0xA14 JUMP JUMPDEST DUP3 ISZERO DUP1 PUSH2 0x4DA JUMPI POP CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x530 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F414D4F554E540000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST CALLER PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP10 AND DUP1 DUP6 MSTORE SWAP1 DUP4 MSTORE SWAP3 DUP2 SWAP1 KECCAK256 DUP8 SWAP1 SSTORE DUP1 MLOAD DUP8 DUP2 MSTORE SWAP1 MLOAD SWAP3 SWAP4 SWAP3 PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP3 SWAP2 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x5A0 PUSH2 0xA77 JUMP JUMPDEST PUSH1 0x8 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP2 ISZERO SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x5 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5C2 PUSH2 0xADB JUMP JUMPDEST PUSH2 0x5CD DUP5 DUP5 DUP5 PUSH2 0xB37 JUMP JUMPDEST ISZERO ISZERO PUSH2 0x5D5 JUMPI INVALID JUMPDEST POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x4 DUP2 JUMP JUMPDEST PUSH2 0x5F5 PUSH2 0xA77 JUMP JUMPDEST DUP3 PUSH2 0x5FF DUP2 PUSH2 0xA14 JUMP JUMPDEST DUP3 PUSH2 0x609 DUP2 PUSH2 0xA14 JUMP JUMPDEST DUP4 PUSH2 0x613 DUP2 PUSH2 0xC48 JUMP JUMPDEST PUSH2 0x61E DUP7 DUP7 DUP7 PUSH2 0xCA9 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x69A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND SWAP4 SWAP1 SWAP2 AND SWAP2 PUSH32 0x343765429AEA5A34B3FF6A3785A98A5ABB2597ACA87BFBB58632C173D585373A SWAP2 LOG3 PUSH1 0x1 DUP1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND OR SWAP1 SWAP2 SSTORE AND SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x713 PUSH2 0xA77 JUMP JUMPDEST DUP2 PUSH2 0x71D DUP2 PUSH2 0xA14 JUMP JUMPDEST DUP3 PUSH2 0x727 DUP2 PUSH2 0xC48 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH2 0x73A SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0xD63 AND JUMP JUMPDEST PUSH1 0x5 SSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x766 SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0xD63 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SWAP3 SWAP1 SWAP3 SSTORE DUP1 MLOAD DUP6 DUP2 MSTORE SWAP1 MLOAD PUSH32 0x9386C90217C323F58030F9DADCBC938F807A940F4FF41CD4CEAD9562F5DA7DC3 SWAP3 SWAP2 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG1 PUSH1 0x40 DUP1 MLOAD DUP5 DUP2 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND SWAP2 PUSH1 0x0 SWAP2 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xF80 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP2 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 LOG3 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x2 PUSH1 0x1 DUP6 AND ISZERO PUSH2 0x100 MUL PUSH1 0x0 NOT ADD SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 DIV PUSH1 0x1F DUP2 ADD DUP5 SWAP1 DIV DUP5 MUL DUP3 ADD DUP5 ADD SWAP1 SWAP3 MSTORE DUP2 DUP2 MSTORE SWAP3 SWAP2 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x498 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x46D JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x498 JUMP JUMPDEST PUSH2 0x85F PUSH2 0xA77 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x888 SWAP1 DUP3 PUSH4 0xFFFFFFFF PUSH2 0xDC7 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE PUSH1 0x5 SLOAD PUSH2 0x8B4 SWAP1 DUP3 PUSH4 0xFFFFFFFF PUSH2 0xDC7 AND JUMP JUMPDEST PUSH1 0x5 SSTORE PUSH1 0x40 DUP1 MLOAD DUP3 DUP2 MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND SWAP2 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xF80 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP2 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 LOG3 PUSH1 0x40 DUP1 MLOAD DUP3 DUP2 MSTORE SWAP1 MLOAD PUSH32 0x9A1B418BC061A5D80270261562E6986A35D995F8051145F277BE16103ABD3453 SWAP2 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x927 PUSH2 0xADB JUMP JUMPDEST PUSH2 0x931 DUP4 DUP4 PUSH2 0xE27 JUMP JUMPDEST ISZERO ISZERO PUSH2 0x939 JUMPI INVALID JUMPDEST POP PUSH1 0x1 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x97F PUSH2 0xA77 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x9E5 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F4F574E4552000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0xA74 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0xAD9 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0xFF AND ISZERO ISZERO PUSH2 0xAD9 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5452414E53464552535F44495341424C454400000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP4 PUSH2 0xB43 DUP2 PUSH2 0xA14 JUMP JUMPDEST DUP4 PUSH2 0xB4D DUP2 PUSH2 0xA14 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH2 0xB81 SWAP1 DUP6 PUSH4 0xFFFFFFFF PUSH2 0xDC7 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE DUP3 MSTORE DUP1 DUP4 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE SWAP2 DUP2 MSTORE PUSH1 0x6 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD PUSH2 0xBC2 SWAP1 DUP6 PUSH4 0xFFFFFFFF PUSH2 0xDC7 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE SWAP1 DUP8 AND DUP2 MSTORE KECCAK256 SLOAD PUSH2 0xBF7 SWAP1 DUP6 PUSH4 0xFFFFFFFF PUSH2 0xD63 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP8 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE DUP1 MLOAD DUP9 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP4 SWAP3 DUP11 AND SWAP3 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xF80 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP3 SWAP2 DUP3 SWAP1 SUB ADD SWAP1 LOG3 POP PUSH1 0x1 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ADDRESS EQ ISZERO PUSH2 0xA74 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F414444524553535F49535F53454C4600000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x7472616E7366657228616464726573732C75696E743235362900000000000000 DUP2 MSTORE DUP2 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x19 ADD DUP2 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x64 SWAP1 SWAP3 ADD SWAP1 SWAP3 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE PUSH2 0xD5E SWAP1 DUP5 SWAP1 PUSH2 0xED2 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 ADD DUP4 DUP2 LT ISZERO PUSH2 0xDC0 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT ISZERO PUSH2 0xE21 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F554E444552464C4F5700000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP SWAP1 SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0xE33 DUP2 PUSH2 0xA14 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0xE53 SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0xDC7 AND JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP3 SWAP1 SWAP3 SSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND DUP2 MSTORE KECCAK256 SLOAD PUSH2 0xE85 SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0xD63 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE DUP1 MLOAD DUP7 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP3 CALLER SWAP3 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xF80 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0xEDA PUSH2 0xF60 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE POP SWAP1 POP PUSH1 0x20 DUP2 DUP4 MLOAD PUSH1 0x20 DUP6 ADD PUSH1 0x0 DUP8 GAS CALL DUP1 ISZERO ISZERO PUSH2 0xF07 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD ISZERO ISZERO PUSH2 0xD5E JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5452414E534645525F4641494C454400000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 SWAP1 PUSH1 0x20 DUP3 MUL DUP1 CODESIZE DUP4 CODECOPY POP SWAP2 SWAP3 SWAP2 POP POP JUMP STOP 0xdd CALLCODE MSTORE 0xad SHL 0xe2 0xc8 SWAP12 PUSH10 0xC2B068FC378DAA952BA7 CALL PUSH4 0xC4A11628 0xf5 GAS 0x4d 0xf5 0x23 0xb3 0xef LOG1 PUSH6 0x627A7A723058 KECCAK256 BALANCE 0xb5 PUSH11 0xEBC8336B547B3E1346F50C 0x2f DIFFICULTY 0xf7 0xd 0xef SSTORE 0x4e 0xd4 0xcb LOG4 0xc8 SHL 0xcf 0x2e MULMOD 0x2d DIV PUSH32 0x29A165627A7A723058203710122813A32201062C951A034F0A6BFE956EB081 PUSH2 0x5376 MSTORE PUSH21 0x2C2C17086A9A002900000000000000000000000000 ", - "sourceMap": "417:3381:5:-;;;;;;;;;-1:-1:-1;;;417:3381:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1189:152;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1189:152:5;-1:-1:-1;;;;;1189:152:5;;;;;;;3380:416;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3380:416:5;;;;;-1:-1:-1;;;;;3380:416:5;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3380:416:5;;;;;;;;;;;;;;2381:560;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2381:560:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2381:560:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2381:560:5;;;;-1:-1:-1;2381:560:5;-1:-1:-1;2381:560:5;;-1:-1:-1;2381:560:5;;;;;;;;-1:-1:-1;2381:560:5;;-1:-1:-1;;;2381:560:5;;;;;-1:-1:-1;2381:560:5;;-1:-1:-1;;;2381:560:5;805:67;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;805:67:5;;;;;;;875:70;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;875:70:5;;;;;;;1159:176:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1159:176:66;;;;1870:161:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1870:161:5;-1:-1:-1;;;;;1870:161:5;;;;;157:20:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;157:20:66;;;;948:70:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;948:70:5;;;;;;;180:23:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;180:23:66;;;;1525:161:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1525:161:5;-1:-1:-1;;;;;1525:161:5;;;;;945:140:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;945:140:66;-1:-1:-1;;;;;945:140:66;;;;;1189:152:5;575:12:66;:10;:12::i;:::-;1329:8:5;1282:18;:44;1301:8;-1:-1:-1;;;;;1301:22:5;;:24;;;;;-1:-1:-1;;;1301:24:5;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1301:24:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1301:24:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1301:24:5;1282:44;;;;1301:24;1282:44;;;;;;;;-1:-1:-1;1282:44:5;:55;;-1:-1:-1;;1282:55:5;-1:-1:-1;;;;;1282:55:5;;;;;;;;;;-1:-1:-1;1189:152:5:o;3380:416::-;3566:25;;;3527:10;3566:25;;;:18;:25;;;;;;;;;:80;;;;;-1:-1:-1;;;;;3566:80:5;;;;;;;;;;;;;;;;;;;;;;;3527:10;;3566:25;;;;;:41;;:80;;;;;;;;;;3527:10;3566:25;:80;;;5:2:-1;;;;30:1;27;20:12;5:2;3566:80:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3566:80:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3566:80:5;3650:27;;;;;;;;3566:80;;-1:-1:-1;;;;;;3650:25:5;;;;;:27;;;;;;;;;;;;;;;;:25;:27;;;5:2:-1;;;;30:1;27;20:12;5:2;3650:27:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;3681:39:5;;;;;;3709:10;3681:39;;;;;;-1:-1:-1;;;;;3681:27:5;;;-1:-1:-1;3681:27:5;;-1:-1:-1;3681:39:5;;;;;-1:-1:-1;;3681:39:5;;;;;;;-1:-1:-1;3681:27:5;:39;;;5:2:-1;;;;30:1;27;20:12;5:2;3681:39:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;3730:42:5;;3761:10;;-1:-1:-1;;;;;;3730:42:5;;;-1:-1:-1;3730:42:5;;;;;;;;;3783:9;3380:416;-1:-1:-1;;;;;3380:416:5:o;2381:560::-;2588:31;;;2500:16;2588:31;;;:15;:31;;;;;;2500:16;;-1:-1:-1;;;;;2588:31:5;2628:21;;2624:256;;;2721:5;2728:7;2737:9;2706:41;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;2706:41:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2706:41:5;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;2706:41:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2706:41:5;2697:50;;2624:256;;;2799:7;-1:-1:-1;;;;;2799:20:5;;2820:5;2827:7;2836:9;2799:47;;;;;-1:-1:-1;;;2799:47:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;2799:47:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2799:47:5;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;2799:47:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2799:47:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2799:47:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2799:47:5;2851:24;;;;;;;;2799:47;;-1:-1:-1;;;;;;2851:22:5;;;;;:24;;;;;;;;;;;;;;;;:22;:24;;;5:2:-1;;;;30:1;27;20:12;5:2;2851:24:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2851:24:5;;;;2624:256;2884:36;;;;;;2909:10;2884:36;;;;;;-1:-1:-1;;;;;2884:24:5;;;;;:36;;;;;-1:-1:-1;;2884:36:5;;;;;;;-1:-1:-1;2884:24:5;:36;;;5:2:-1;;;;30:1;27;20:12;5:2;2884:36:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;2931:6:5;;2381:560;-1:-1:-1;;;;;;;;;2381:560:5:o;805:67::-;;;;;;;;;;;;-1:-1:-1;;;;;805:67:5;;:::o;875:70::-;;;;;;;;;;;;-1:-1:-1;;;;;875:70:5;;:::o;1159:176:66:-;1219:8;;-1:-1:-1;;;;;1219:8:66;1205:10;:22;1197:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1277:8;;;1270:5;;1258:28;;-1:-1:-1;;;;;1277:8:66;;;;1270:5;;;;1258:28;;;1298:8;;;;1290:16;;-1:-1:-1;;1290:16:66;;;-1:-1:-1;;;;;1298:8:66;;1290:16;;;;1310:21;;;1159:176::o;1870:161:5:-;575:12:66;:10;:12::i;:::-;2019:8:5;1975:15;:41;1991:8;-1:-1:-1;;;;;1991:22:5;;:24;;;;;-1:-1:-1;;;1991:24:5;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;157:20:66;;;-1:-1:-1;;;;;157:20:66;;:::o;948:70:5:-;;;;;;;;;;;;-1:-1:-1;;;;;948:70:5;;:::o;180:23:66:-;;;-1:-1:-1;;;;;180:23:66;;:::o;1525:161:5:-;575:12:66;:10;:12::i;:::-;1674:8:5;1630:15;:41;1646:8;-1:-1:-1;;;;;1646:22:5;;:24;;;;;-1:-1:-1;;;1646:24:5;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;945:140:66;575:12;:10;:12::i;:::-;1033:5;;-1:-1:-1;;;;;1020:18:66;;;1033:5;;1020:18;;1012:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1061:8;:20;;-1:-1:-1;;1061:20:66;-1:-1:-1;;;;;1061:20:66;;;;;;;;;;945:140::o;642:93::-;704:5;;-1:-1:-1;;;;;704:5:66;690:10;:19;682:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;642:93::o;417:3381:5:-;;;;;;;;;;:::o" - }, - "methodIdentifiers": { - "acceptOwnership()": "79ba5097", - "anchorFactories(uint16)": "3a8fc520", - "converterFactories(uint16)": "327779a7", - "createAnchor(uint16,string,string,uint8)": "2e9ab7b3", - "createConverter(uint16,address,address,uint32)": "15f64b6a", - "customFactories(uint16)": "c977aed2", - "newOwner()": "d4ee1d90", - "owner()": "8da5cb5b", - "registerTypedConverterAnchorFactory(address)": "e54b93ef", - "registerTypedConverterCustomFactory(address)": "8cac5e29", - "registerTypedConverterFactory(address)": "12b4c6c1", - "transferOwnership(address)": "f2fde38b" - } - }, - "userdoc": { - "methods": {} - } - } - }, - "solidity/contracts/converter/ConverterRegistry.sol": { - "ConverterRegistry": { - "abi": [ - { - "constant": false, - "inputs": [ - { - "name": "_onlyOwnerCanUpdateRegistry", - "type": "bool" - } - ], - "name": "restrictRegistryUpdate", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getSmartTokens", - "outputs": [ - { - "name": "", - "type": "address[]" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_convertibleToken", - "type": "address" - } - ], - "name": "getConvertibleTokenAnchors", - "outputs": [ - { - "name": "", - "type": "address[]" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_type", - "type": "uint16" - }, - { - "name": "_reserveTokens", - "type": "address[]" - }, - { - "name": "_reserveWeights", - "type": "uint32[]" - } - ], - "name": "getLiquidityPoolByConfig", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_smartTokens", - "type": "address[]" - } - ], - "name": "getConvertersBySmartTokens", - "outputs": [ - { - "name": "", - "type": "address[]" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_type", - "type": "uint16" - }, - { - "name": "_reserveTokens", - "type": "address[]" - }, - { - "name": "_reserveWeights", - "type": "uint32[]" - }, - { - "name": "_converter", - "type": "address" - } - ], - "name": "setupConverter", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "onlyOwnerCanUpdateRegistry", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_value", - "type": "address" - } - ], - "name": "isConvertibleToken", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_value", - "type": "address" - } - ], - "name": "isSmartToken", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_convertibleToken", - "type": "address" - } - ], - "name": "getConvertibleTokenAnchorCount", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "updateRegistry", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_index", - "type": "uint256" - } - ], - "name": "getAnchor", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_type", - "type": "uint16" - }, - { - "name": "_name", - "type": "string" - }, - { - "name": "_symbol", - "type": "string" - }, - { - "name": "_decimals", - "type": "uint8" - }, - { - "name": "_maxConversionFee", - "type": "uint32" - }, - { - "name": "_reserveTokens", - "type": "address[]" - }, - { - "name": "_reserveWeights", - "type": "uint32[]" - } - ], - "name": "newConverter", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getConvertibleTokens", - "outputs": [ - { - "name": "", - "type": "address[]" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_convertibleToken", - "type": "address" - }, - { - "name": "_index", - "type": "uint256" - } - ], - "name": "getConvertibleTokenAnchor", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_anchors", - "type": "address[]" - } - ], - "name": "getConvertersByAnchors", - "outputs": [ - { - "name": "", - "type": "address[]" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "prevRegistry", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getConvertibleTokenCount", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_converter", - "type": "address" - } - ], - "name": "addConverter", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_convertibleToken", - "type": "address" - }, - { - "name": "_value", - "type": "address" - } - ], - "name": "isConvertibleTokenSmartToken", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "acceptOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getLiquidityPoolCount", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "registry", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getLiquidityPools", - "outputs": [ - { - "name": "", - "type": "address[]" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_index", - "type": "uint256" - } - ], - "name": "getConvertibleToken", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "owner", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_converter", - "type": "address" - } - ], - "name": "isSimilarLiquidityPoolRegistered", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_converter", - "type": "address" - } - ], - "name": "isConverterValid", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_converter", - "type": "address" - } - ], - "name": "removeConverter", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_index", - "type": "uint256" - } - ], - "name": "getSmartToken", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_convertibleToken", - "type": "address" - } - ], - "name": "getConvertibleTokenSmartTokenCount", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_index", - "type": "uint256" - } - ], - "name": "getLiquidityPool", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "restoreRegistry", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_convertibleToken", - "type": "address" - }, - { - "name": "_value", - "type": "address" - } - ], - "name": "isConvertibleTokenAnchor", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_reserveTokens", - "type": "address[]" - }, - { - "name": "_reserveWeights", - "type": "uint32[]" - } - ], - "name": "getLiquidityPoolByReserveConfig", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getAnchorCount", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "newOwner", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_convertibleToken", - "type": "address" - }, - { - "name": "_index", - "type": "uint256" - } - ], - "name": "getConvertibleTokenSmartToken", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_value", - "type": "address" - } - ], - "name": "isAnchor", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getSmartTokenCount", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_value", - "type": "address" - } - ], - "name": "isLiquidityPool", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getAnchors", - "outputs": [ - { - "name": "", - "type": "address[]" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_convertibleToken", - "type": "address" - } - ], - "name": "getConvertibleTokenSmartTokens", - "outputs": [ - { - "name": "", - "type": "address[]" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "name": "_registry", - "type": "address" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "_anchor", - "type": "address" - } - ], - "name": "ConverterAnchorAdded", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "_anchor", - "type": "address" - } - ], - "name": "ConverterAnchorRemoved", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "_liquidityPool", - "type": "address" - } - ], - "name": "LiquidityPoolAdded", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "_liquidityPool", - "type": "address" - } - ], - "name": "LiquidityPoolRemoved", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "_convertibleToken", - "type": "address" - }, - { - "indexed": true, - "name": "_smartToken", - "type": "address" - } - ], - "name": "ConvertibleTokenAdded", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "_convertibleToken", - "type": "address" - }, - { - "indexed": true, - "name": "_smartToken", - "type": "address" - } - ], - "name": "ConvertibleTokenRemoved", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "_smartToken", - "type": "address" - } - ], - "name": "SmartTokenAdded", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "_smartToken", - "type": "address" - } - ], - "name": "SmartTokenRemoved", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "_prevOwner", - "type": "address" - }, - { - "indexed": true, - "name": "_newOwner", - "type": "address" - } - ], - "name": "OwnerUpdate", - "type": "event" - } - ], - "devdoc": { - "methods": { - "acceptOwnership()": { - "details": "used by a new owner to accept an ownership transfer" - }, - "addConverter(address)": { - "details": "adds an existing converter to the registry can only be called by the owner", - "params": { - "_converter": "converter" - } - }, - "getAnchor(uint256)": { - "details": "returns the converter anchor at a given index", - "params": { - "_index": "index" - }, - "return": "anchor at the given index" - }, - "getAnchorCount()": { - "details": "returns the number of converter anchors in the registry", - "return": "number of anchors" - }, - "getAnchors()": { - "details": "returns the list of converter anchors in the registry", - "return": "list of anchors" - }, - "getConvertersByAnchors(address[])": { - "details": "returns a list of converters for a given list of anchors this is a utility function that can be used to reduce the number of calls to the contract", - "params": { - "_anchors": "list of converter anchors" - }, - "return": "list of converters" - }, - "getConvertersBySmartTokens(address[])": { - "details": "deprecated, backward compatibility, use `getConvertersByAnchors`" - }, - "getConvertibleToken(uint256)": { - "details": "returns the convertible token at a given index", - "params": { - "_index": "index" - }, - "return": "convertible token at the given index" - }, - "getConvertibleTokenAnchor(address,uint256)": { - "details": "returns the converter anchor associated with a given convertible token at a given index", - "params": { - "_convertibleToken": "convertible token", - "_index": "index" - }, - "return": "anchor associated with the given convertible token at the given index" - }, - "getConvertibleTokenAnchorCount(address)": { - "details": "returns the number of converter anchors associated with a given convertible token", - "params": { - "_convertibleToken": "convertible token" - }, - "return": "number of anchors associated with the given convertible token" - }, - "getConvertibleTokenAnchors(address)": { - "details": "returns the list of converter anchors associated with a given convertible token", - "params": { - "_convertibleToken": "convertible token" - }, - "return": "list of anchors associated with the given convertible token" - }, - "getConvertibleTokenCount()": { - "details": "returns the number of convertible tokens in the registry", - "return": "number of convertible tokens" - }, - "getConvertibleTokenSmartToken(address,uint256)": { - "details": "deprecated, backward compatibility, use `getConvertibleTokenAnchor`" - }, - "getConvertibleTokenSmartTokenCount(address)": { - "details": "deprecated, backward compatibility, use `getConvertibleTokenAnchorCount`" - }, - "getConvertibleTokenSmartTokens(address)": { - "details": "deprecated, backward compatibility, use `getConvertibleTokenAnchors`" - }, - "getConvertibleTokens()": { - "details": "returns the list of convertible tokens in the registry", - "return": "list of convertible tokens" - }, - "getLiquidityPool(uint256)": { - "details": "returns the liquidity pool at a given index", - "params": { - "_index": "index" - }, - "return": "liquidity pool at the given index" - }, - "getLiquidityPoolByConfig(uint16,address[],uint32[])": { - "details": "searches for a liquidity pool with specific configuration", - "params": { - "_reserveTokens": "reserve tokens", - "_reserveWeights": "reserve weights", - "_type": "converter type, see ConverterBase contract main doc" - }, - "return": "the liquidity pool, or zero if no such liquidity pool exists" - }, - "getLiquidityPoolByReserveConfig(address[],uint32[])": { - "details": "deprecated, backward compatibility, use `getLiquidityPoolByConfig`" - }, - "getLiquidityPoolCount()": { - "details": "returns the number of liquidity pools in the registry", - "return": "number of liquidity pools" - }, - "getLiquidityPools()": { - "details": "returns the list of liquidity pools in the registry", - "return": "list of liquidity pools" - }, - "getSmartToken(uint256)": { - "details": "deprecated, backward compatibility, use `getAnchor`" - }, - "getSmartTokenCount()": { - "details": "deprecated, backward compatibility, use `getAnchorCount`" - }, - "getSmartTokens()": { - "details": "deprecated, backward compatibility, use `getAnchors`" - }, - "isAnchor(address)": { - "details": "checks whether or not a given value is a converter anchor", - "params": { - "_value": "value" - }, - "return": "true if the given value is an anchor, false if not" - }, - "isConverterValid(address)": { - "details": "checks whether or not a given converter is valid", - "params": { - "_converter": "converter" - }, - "return": "true if the given converter is valid, false if not" - }, - "isConvertibleToken(address)": { - "details": "checks whether or not a given value is a convertible token", - "params": { - "_value": "value" - }, - "return": "true if the given value is a convertible token, false if not" - }, - "isConvertibleTokenAnchor(address,address)": { - "details": "checks whether or not a given value is a converter anchor of a given convertible token", - "params": { - "_convertibleToken": "convertible token", - "_value": "value" - }, - "return": "true if the given value is an anchor of the given convertible token, false if not" - }, - "isConvertibleTokenSmartToken(address,address)": { - "details": "deprecated, backward compatibility, use `isConvertibleTokenAnchor`" - }, - "isLiquidityPool(address)": { - "details": "checks whether or not a given value is a liquidity pool", - "params": { - "_value": "value" - }, - "return": "true if the given value is a liquidity pool, false if not" - }, - "isSimilarLiquidityPoolRegistered(address)": { - "details": "checks if a liquidity pool with given configuration is already registered", - "params": { - "_converter": "converter with specific configuration" - }, - "return": "if a liquidity pool with the same configuration is already registered" - }, - "isSmartToken(address)": { - "details": "deprecated, backward compatibility, use `isAnchor`" - }, - "newConverter(uint16,string,string,uint8,uint32,address[],uint32[])": { - "details": "creates a zero supply liquid token / empty liquidity pool and adds its converter to the registry", - "params": { - "_decimals": "token / pool decimals", - "_maxConversionFee": "maximum conversion-fee", - "_name": "token / pool name", - "_reserveTokens": "reserve tokens", - "_reserveWeights": "reserve weights", - "_symbol": "token / pool symbol", - "_type": "converter type, see ConverterBase contract main doc" - }, - "return": "new converter" - }, - "removeConverter(address)": { - "details": "removes a converter from the registry anyone can remove an existing converter from the registry, as long as the converter is invalid note that the owner can also remove valid converters", - "params": { - "_converter": "converter" - } - }, - "restoreRegistry()": { - "details": "restores the previous contract-registry" - }, - "restrictRegistryUpdate(bool)": { - "details": "restricts the permission to update the contract-registry", - "params": { - "_onlyOwnerCanUpdateRegistry": "indicates whether or not permission is restricted to owner only" - } - }, - "setupConverter(uint16,address[],uint32[],address)": { - "details": "completes the configuration for a converter", - "params": { - "_converter": "the converter previously created through newConverter method", - "_reserveTokens": "reserve tokens", - "_reserveWeights": "reserve weights", - "_type": "converter type, see ConverterBase contract main doc" - }, - "return": "converter" - }, - "transferOwnership(address)": { - "details": "allows transferring the contract ownership the new owner still needs to accept the transfer can only be called by the contract owner", - "params": { - "_newOwner": "new contract owner" - } - }, - "updateRegistry()": { - "details": "updates to the new contract-registry" - } - } - }, - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "60806040523480156200001157600080fd5b5060405160208062003573833981016040525160008054600160a060020a0319163317905580806200004c816401000000006200007e810204565b5060028054600160a060020a03909216600160a060020a031992831681179091556003805490921617905550620000f9565b600160a060020a0381161515620000f657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b50565b61346a80620001096000396000f3006080604052600436106102005763ffffffff60e060020a600035041663024c7ec7811461020557806304ceaf411461022157806311839064146102865780631d3fccd5146102a75780631f8e26201461035a578063295d2a21146103af5780632fe8a6ad146104515780633ab8857c1461047a5780634123ef601461049b57806349c5f32b146104bc57806349d10b64146104ef5780634c7df18f146105045780635a0a66181461051c5780635f1b50fe14610646578063603f51e41461065b578063610c0b051461067f57806361cd756e146106d457806369be4784146106e95780636ce1c4dc146106fe578063725b87861461071f57806379ba5097146107465780637a5f0ffd1461075b5780637b103999146107705780637f45c4c314610785578063865cf1941461079a5780638da5cb5b146107b25780638f1d0e1a146107c7578063954254f5146107e85780639e76a00714610809578063a109d2141461082a578063a43d5e9414610842578063a74498aa14610863578063b4a176d31461087b578063b4c4197a14610890578063c22b82f0146108b7578063d3182bed14610945578063d4ee1d901461095a578063d6c4b5b21461096f578063d8cced2a14610993578063e571049b146109b4578063e85455d7146109c9578063effb3c6e146109ea578063f2fde38b146109ff578063f4fb86c014610a20575b600080fd5b34801561021157600080fd5b5061021f6004351515610a41565b005b34801561022d57600080fd5b50610236610a89565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561027257818101518382015260200161025a565b505050509050019250505060405180910390f35b34801561029257600080fd5b50610236600160a060020a0360043516610a98565b3480156102b357600080fd5b5060408051602060046024803582810135848102808701860190975280865261033e96843561ffff1696369660449591949091019291829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750949750610b9c9650505050505050565b60408051600160a060020a039092168252519081900360200190f35b34801561036657600080fd5b506040805160206004803580820135838102808601850190965280855261023695369593946024949385019291829185019084908082843750949750610c8f9650505050505050565b3480156103bb57600080fd5b5060408051602060046024803582810135848102808701860190975280865261033e96843561ffff1696369660449591949091019291829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a99890198929750908201955093508392508501908490808284375094975050509235600160a060020a03169350610ca092505050565b34801561045d57600080fd5b50610466611161565b604080519115158252519081900360200190f35b34801561048657600080fd5b50610466600160a060020a0360043516611182565b3480156104a757600080fd5b50610466600160a060020a0360043516611227565b3480156104c857600080fd5b506104dd600160a060020a0360043516611232565b60408051918252519081900360200190f35b3480156104fb57600080fd5b5061021f6112a5565b34801561051057600080fd5b5061033e600435611512565b34801561052857600080fd5b5060408051602060046024803582810135601f810185900485028601850190965285855261033e95833561ffff1695369560449491939091019190819084018382808284375050604080516020601f89358b018035918201839004830284018301909452808352979a9998810197919650918201945092508291508401838280828437505060408051818801358901803560208181028481018201909552818452989b60ff8b35169b63ffffffff8b8d0135169b919a90995060609091019750929550908201935091829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a9989019892975090820195509350839250850190849080828437509497506115739650505050505050565b34801561065257600080fd5b506102366118fb565b34801561066757600080fd5b5061033e600160a060020a03600435166024356119e1565b34801561068b57600080fd5b506040805160206004803580820135838102808601850190965280855261023695369593946024949385019291829185019084908082843750949750611a8f9650505050505050565b3480156106e057600080fd5b5061033e611b85565b3480156106f557600080fd5b506104dd611b94565b34801561070a57600080fd5b5061021f600160a060020a0360043516611c1b565b34801561072b57600080fd5b50610466600160a060020a0360043581169060243516611c8e565b34801561075257600080fd5b5061021f611ca1565b34801561076757600080fd5b506104dd611d62565b34801561077c57600080fd5b5061033e611db8565b34801561079157600080fd5b50610236611dc7565b3480156107a657600080fd5b5061033e600435611e1d565b3480156107be57600080fd5b5061033e611e7e565b3480156107d357600080fd5b50610466600160a060020a0360043516611e8d565b3480156107f457600080fd5b50610466600160a060020a03600435166120d9565b34801561081557600080fd5b5061021f600160a060020a03600435166121e8565b34801561083657600080fd5b5061033e600435612254565b34801561084e57600080fd5b506104dd600160a060020a036004351661225f565b34801561086f57600080fd5b5061033e60043561226a565b34801561088757600080fd5b5061021f6122cb565b34801561089c57600080fd5b50610466600160a060020a0360043581169060243516612304565b3480156108c357600080fd5b506040805160206004803580820135838102808601850190965280855261033e95369593946024949385019291829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a99890198929750908201955093508392508501908490808284375094975061238b9650505050505050565b34801561095157600080fd5b506104dd612399565b34801561096657600080fd5b5061033e6123ef565b34801561097b57600080fd5b5061033e600160a060020a03600435166024356123fe565b34801561099f57600080fd5b50610466600160a060020a036004351661240a565b3480156109c057600080fd5b506104dd61247d565b3480156109d557600080fd5b50610466600160a060020a0360043516612487565b3480156109f657600080fd5b506102366124fa565b348015610a0b57600080fd5b5061021f600160a060020a0360043516612550565b348015610a2c57600080fd5b50610236600160a060020a03600435166125ed565b610a496125f8565b60038054911515740100000000000000000000000000000000000000000274ff000000000000000000000000000000000000000019909216919091179055565b6060610a936124fa565b905090565b6060610ab160008051602061341f83398151915261264a565b600160a060020a031663f4fb86c0836040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b158015610b0b57600080fd5b505af1158015610b1f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526020811015610b4857600080fd5b810190808051640100000000811115610b6057600080fd5b82016020810184811115610b7357600080fd5b8151856020820283011164010000000082111715610b9057600080fd5b50909695505050505050565b60006060600080600085518751148015610bb7575060018751115b15610c7f57610bc5876126b0565b9350600092505b8351831015610c7f578383815181101515610be357fe5b90602001906020020151915081600160a060020a0316638da5cb5b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610c2d57600080fd5b505af1158015610c41573d6000803e3d6000fd5b505050506040513d6020811015610c5757600080fd5b50519050610c6781898989612948565b15610c7457819450610c84565b600190920191610bcc565b600094505b505050509392505050565b6060610c9a82611a8f565b92915050565b600160a060020a038181166000908152600460205260408120549091829182918291163314610d3f576040805160e560020a62461bcd02815260206004820152603060248201527f6f6e6c7920746865206465706c6f796572206d61792066696e6973682074686560448201527f20636f6e76657274657220736574757000000000000000000000000000000000606482015290519081900360840190fd5b865186519093508314610d9c576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e56414c49445f5245534552564553000000000000000000000000604482015290519081900360640190fd5b6000610da9898989610b9c565b600160a060020a031614610e07576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f414c52454144595f4558495354530000000000000000000000000000604482015290519081900360640190fd5b84600160a060020a031663d3fb73b46040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610e4557600080fd5b505af1158015610e59573d6000803e3d6000fd5b505050506040513d6020811015610e6f57600080fd5b5051604080517f79ba50970000000000000000000000000000000000000000000000000000000081529051919350600160a060020a038416916379ba50979160048082019260009290919082900301818387803b158015610ecf57600080fd5b505af1158015610ee3573d6000803e3d6000fd5b5050505084600160a060020a03166379ba50976040518163ffffffff1660e060020a028152600401600060405180830381600087803b158015610f2557600080fd5b505af1158015610f39573d6000803e3d6000fd5b50505050600090505b8281101561100b5784600160a060020a0316636a49d2c48883815181101515610f6757fe5b906020019060200201518884815181101515610f7f57fe5b906020019060200201516040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a031681526020018263ffffffff1663ffffffff16815260200192505050600060405180830381600087803b158015610fe757600080fd5b505af1158015610ffb573d6000803e3d6000fd5b505060019092019150610f429050565b81600160a060020a031663f2fde38b866040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b15801561106657600080fd5b505af115801561107a573d6000803e3d6000fd5b5050505084600160a060020a031663cdc91c696040518163ffffffff1660e060020a028152600401600060405180830381600087803b1580156110bc57600080fd5b505af11580156110d0573d6000803e3d6000fd5b5050604080517ff2fde38b0000000000000000000000000000000000000000000000000000000081523360048201529051600160a060020a038916935063f2fde38b9250602480830192600092919082900301818387803b15801561113457600080fd5b505af1158015611148573d6000803e3d6000fd5b5050505061115585612ac1565b50929695505050505050565b60035474010000000000000000000000000000000000000000900460ff1681565b600061119b60008051602061341f83398151915261264a565b600160a060020a0316633ab8857c836040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b1580156111f557600080fd5b505af1158015611209573d6000803e3d6000fd5b505050506040513d602081101561121f57600080fd5b505192915050565b6000610c9a8261240a565b600061124b60008051602061341f83398151915261264a565b600160a060020a031663a43d5e94836040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b1580156111f557600080fd5b60008054600160a060020a03163314806112da575060035474010000000000000000000000000000000000000000900460ff16155b151561131e576040805160e560020a62461bcd02815260206004820152601160248201526000805160206133ff833981519152604482015290519081900360640190fd5b6113477f436f6e747261637452656769737472790000000000000000000000000000000061264a565b600254909150600160a060020a038083169116148015906113705750600160a060020a03811615155b15156113c6576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e56414c49445f5245474953545259000000000000000000000000604482015290519081900360640190fd5b604080517fbb34534c0000000000000000000000000000000000000000000000000000000081527f436f6e747261637452656769737472790000000000000000000000000000000060048201529051600091600160a060020a0384169163bb34534c9160248082019260209290919082900301818787803b15801561144a57600080fd5b505af115801561145e573d6000803e3d6000fd5b505050506040513d602081101561147457600080fd5b5051600160a060020a031614156114d5576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e56414c49445f5245474953545259000000000000000000000000604482015290519081900360640190fd5b6002805460038054600160a060020a0380841673ffffffffffffffffffffffffffffffffffffffff19928316179092559091169216919091179055565b600061152b60008051602061341f83398151915261264a565b600160a060020a031663a109d214836040518263ffffffff1660e060020a02815260040180828152602001915050602060405180830381600087803b1580156111f557600080fd5b6000806000806000865193508551841415156115d9576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e56414c49445f5245534552564553000000000000000000000000604482015290519081900360640190fd5b60006115e68d8989610b9c565b600160a060020a031614611644576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f414c52454144595f4558495354530000000000000000000000000000604482015290519081900360640190fd5b61166d7f436f6e766572746572466163746f72790000000000000000000000000000000061264a565b925082600160a060020a0316632e9ab7b38d8d8d8d6040518563ffffffff1660e060020a028152600401808561ffff1661ffff16815260200180602001806020018460ff1660ff168152602001838103835286818151815260200191508051906020019080838360005b838110156116ef5781810151838201526020016116d7565b50505050905090810190601f16801561171c5780820380516001836020036101000a031916815260200191505b50838103825285518152855160209182019187019080838360005b8381101561174f578181015183820152602001611737565b50505050905090810190601f16801561177c5780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600087803b15801561179f57600080fd5b505af11580156117b3573d6000803e3d6000fd5b505050506040513d60208110156117c957600080fd5b8101908080519060200190929190505050915082600160a060020a03166315f64b6a8d84600260009054906101000a9004600160a060020a03168c6040518563ffffffff1660e060020a028152600401808561ffff1661ffff16815260200184600160a060020a0316600160a060020a0316815260200183600160a060020a0316600160a060020a031681526020018263ffffffff1663ffffffff168152602001945050505050602060405180830381600087803b15801561188a57600080fd5b505af115801561189e573d6000803e3d6000fd5b505050506040513d60208110156118b457600080fd5b5051600160a060020a0381166000908152600460205260409020805473ffffffffffffffffffffffffffffffffffffffff1916331790559c9b505050505050505050505050565b606061191460008051602061341f83398151915261264a565b600160a060020a0316635f1b50fe6040518163ffffffff1660e060020a028152600401600060405180830381600087803b15801561195157600080fd5b505af1158015611965573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561198e57600080fd5b8101908080516401000000008111156119a657600080fd5b820160208101848111156119b957600080fd5b81518560208202830111640100000000821117156119d657600080fd5b509094505050505090565b60006119fa60008051602061341f83398151915261264a565b600160a060020a031663d6c4b5b284846040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b158015611a5c57600080fd5b505af1158015611a70573d6000803e3d6000fd5b505050506040513d6020811015611a8657600080fd5b50519392505050565b60608060008351604051908082528060200260200182016040528015611abf578160200160208202803883390190505b509150600090505b8351811015611b7e578381815181101515611ade57fe5b90602001906020020151600160a060020a0316638da5cb5b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015611b2557600080fd5b505af1158015611b39573d6000803e3d6000fd5b505050506040513d6020811015611b4f57600080fd5b50518251839083908110611b5f57fe5b600160a060020a03909216602092830290910190910152600101611ac7565b5092915050565b600354600160a060020a031681565b6000611bad60008051602061341f83398151915261264a565b600160a060020a03166369be47846040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015611bea57600080fd5b505af1158015611bfe573d6000803e3d6000fd5b505050506040513d6020811015611c1457600080fd5b5051905090565b611c236125f8565b611c2c816120d9565b1515611c82576040805160e560020a62461bcd02815260206004820152601560248201527f4552525f494e56414c49445f434f4e5645525445520000000000000000000000604482015290519081900360640190fd5b611c8b81612ac1565b50565b6000611c9a8383612304565b9392505050565b600154600160a060020a03163314611cf1576040805160e560020a62461bcd02815260206004820152601160248201526000805160206133ff833981519152604482015290519081900360640190fd5b60015460008054604051600160a060020a0393841693909116917f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91a3600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b6000611d7b60008051602061341f83398151915261264a565b600160a060020a0316637a5f0ffd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015611bea57600080fd5b600254600160a060020a031681565b6060611de060008051602061341f83398151915261264a565b600160a060020a0316637f45c4c36040518163ffffffff1660e060020a028152600401600060405180830381600087803b15801561195157600080fd5b6000611e3660008051602061341f83398151915261264a565b600160a060020a031663865cf194836040518263ffffffff1660e060020a02815260040180828152602001915050602060405180830381600087803b1580156111f557600080fd5b600054600160a060020a031681565b60008060608060008086600160a060020a03166371f52bf36040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015611ed457600080fd5b505af1158015611ee8573d6000803e3d6000fd5b505050506040513d6020811015611efe57600080fd5b50516040805161ffff90921680835260208181028401019091529550858015611f31578160200160208202803883390190505b50935084604051908082528060200260200182016040528015611f5e578160200160208202803883390190505b509250600091505b848210156120445786600160a060020a03166319b64015836040518263ffffffff1660e060020a02815260040180828152602001915050602060405180830381600087803b158015611fb757600080fd5b505af1158015611fcb573d6000803e3d6000fd5b505050506040513d6020811015611fe157600080fd5b505184519091508190859084908110611ff657fe5b600160a060020a039092166020928302909101909101526120178782612ca2565b838381518110151561202557fe5b63ffffffff909216602092830290910190910152600190910190611f66565b6000600160a060020a03166120c388600160a060020a0316633e8ff43f6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561209057600080fd5b505af11580156120a4573d6000803e3d6000fd5b505050506040513d60208110156120ba57600080fd5b50518686610b9c565b600160a060020a03161415979650505050505050565b600081600160a060020a031682600160a060020a031663fc0c546a6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561212357600080fd5b505af1158015612137573d6000803e3d6000fd5b505050506040513d602081101561214d57600080fd5b5051604080517f8da5cb5b0000000000000000000000000000000000000000000000000000000081529051600160a060020a0390921691638da5cb5b916004808201926020929091908290030181600087803b1580156121ac57600080fd5b505af11580156121c0573d6000803e3d6000fd5b505050506040513d60208110156121d657600080fd5b5051600160a060020a03161492915050565b600054600160a060020a03163314806122075750612205816120d9565b155b151561224b576040805160e560020a62461bcd02815260206004820152601160248201526000805160206133ff833981519152604482015290519081900360640190fd5b611c8b81612d73565b6000610c9a82611512565b6000610c9a82611232565b600061228360008051602061341f83398151915261264a565b600160a060020a031663a74498aa836040518263ffffffff1660e060020a02815260040180828152602001915050602060405180830381600087803b1580156111f557600080fd5b6122d36125f8565b6003546002805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055565b600061231d60008051602061341f83398151915261264a565b604080517f725b8786000000000000000000000000000000000000000000000000000000008152600160a060020a03868116600483015285811660248301529151929091169163725b8786916044808201926020929091908290030181600087803b158015611a5c57600080fd5b6000611c9a60018484610b9c565b60006123b260008051602061341f83398151915261264a565b600160a060020a031663e571049b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015611bea57600080fd5b600154600160a060020a031681565b6000611c9a83836119e1565b600061242360008051602061341f83398151915261264a565b600160a060020a0316634123ef60836040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b1580156111f557600080fd5b6000610a93612399565b60006124a060008051602061341f83398151915261264a565b600160a060020a031663e85455d7836040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b1580156111f557600080fd5b606061251360008051602061341f83398151915261264a565b600160a060020a03166304ceaf416040518163ffffffff1660e060020a028152600401600060405180830381600087803b15801561195157600080fd5b6125586125f8565b600054600160a060020a03828116911614156125be576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f53414d455f4f574e4552000000000000000000000000000000000000604482015290519081900360640190fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6060610c9a82610a98565b600054600160a060020a03163314612648576040805160e560020a62461bcd02815260206004820152601160248201526000805160206133ff833981519152604482015290519081900360640190fd5b565b600254604080517fbb34534c000000000000000000000000000000000000000000000000000000008152600481018490529051600092600160a060020a03169163bb34534c91602480830192602092919082900301818787803b1580156111f557600080fd5b606060008060008060006126d160008051602061341f83398151915261264a565b945084600160a060020a031663a43d5e948860008151811015156126f157fe5b906020019060200201516040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b15801561274657600080fd5b505af115801561275a573d6000803e3d6000fd5b505050506040513d602081101561277057600080fd5b5051935060009250600191505b86518210156128405784600160a060020a031663a43d5e9488848151811015156127a357fe5b906020019060200201516040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b1580156127f857600080fd5b505af115801561280c573d6000803e3d6000fd5b505050506040513d602081101561282257600080fd5b5051905080841115612835578093508192505b60019091019061277d565b84600160a060020a031663f4fb86c0888581518110151561285d57fe5b906020019060200201516040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b1580156128b257600080fd5b505af11580156128c6573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260208110156128ef57600080fd5b81019080805164010000000081111561290757600080fd5b8201602081018481111561291a57600080fd5b815185602082028301116401000000008211171561293757600080fd5b50909b9a5050505050505050505050565b60008085600160a060020a0316633e8ff43f6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561298957600080fd5b505af115801561299d573d6000803e3d6000fd5b505050506040513d60208110156129b357600080fd5b505161ffff8681169116146129cb5760009150612ab8565b85600160a060020a03166371f52bf36040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015612a0957600080fd5b505af1158015612a1d573d6000803e3d6000fd5b505050506040513d6020811015612a3357600080fd5b5051845161ffff90911614612a4b5760009150612ab8565b5060005b8351811015612ab357612a79868583815181101515612a6a57fe5b90602001906020020151612ca2565b63ffffffff168382815181101515612a8d57fe5b6020908102909101015163ffffffff1614612aab5760009150612ab8565b600101612a4f565b600191505b50949350505050565b600080600080612ade60008051602061341f83398151915261264a565b935084600160a060020a031663fc0c546a6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015612b1e57600080fd5b505af1158015612b32573d6000803e3d6000fd5b505050506040513d6020811015612b4857600080fd5b5051604080517f71f52bf30000000000000000000000000000000000000000000000000000000081529051919450600160a060020a038716916371f52bf3916004808201926020929091908290030181600087803b158015612ba957600080fd5b505af1158015612bbd573d6000803e3d6000fd5b505050506040513d6020811015612bd357600080fd5b505161ffff169150612be58484612f4d565b6001821115612bfd57612bf8848461302c565b612c08565b612c088484856130d7565b5060005b81811015612c9b57612c938486600160a060020a03166319b64015846040518263ffffffff1660e060020a02815260040180828152602001915050602060405180830381600087803b158015612c6157600080fd5b505af1158015612c75573d6000803e3d6000fd5b505050506040513d6020811015612c8b57600080fd5b5051856130d7565b600101612c0c565b5050505050565b6000612cac6133e3565b604080517f636f6e6e6563746f72732861646472657373290000000000000000000000000081528151908190036013018120600160a060020a03861660248084019190915283518084039091018152604490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090921691909117815281519192918491885afa801515612d6657600080fd5b5050602001519392505050565b600080600080612d9060008051602061341f83398151915261264a565b935084600160a060020a031663fc0c546a6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015612dd057600080fd5b505af1158015612de4573d6000803e3d6000fd5b505050506040513d6020811015612dfa57600080fd5b5051604080517f71f52bf30000000000000000000000000000000000000000000000000000000081529051919450600160a060020a038716916371f52bf3916004808201926020929091908290030181600087803b158015612e5b57600080fd5b505af1158015612e6f573d6000803e3d6000fd5b505050506040513d6020811015612e8557600080fd5b505161ffff169150612e978484613198565b6001821115612eaf57612eaa8484613277565b612eba565b612eba848485613322565b5060005b81811015612c9b57612f458486600160a060020a03166319b64015846040518263ffffffff1660e060020a02815260040180828152602001915050602060405180830381600087803b158015612f1357600080fd5b505af1158015612f27573d6000803e3d6000fd5b505050506040513d6020811015612f3d57600080fd5b505185613322565b600101612ebe565b81600160a060020a0316638de6c3eb826040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b158015612fa857600080fd5b505af1158015612fbc573d6000803e3d6000fd5b5050604051600160a060020a03841692507fc0a6d303d67b7ed9fa0abae1c48878df32acc0e7ca4334c7dad2bceeee5956fd9150600090a2604051600160a060020a038216907f88881feecdf61136ac4bdb1f681f2f3746a82910263d21ffea94750d2a78c0ab90600090a25050565b81600160a060020a031663ee6a934c826040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b15801561308757600080fd5b505af115801561309b573d6000803e3d6000fd5b5050604051600160a060020a03841692507fb893f883ef734b712208a877459424ee509832c57e0461fb1ac99ed4d42f2d899150600090a25050565b604080517f36900c11000000000000000000000000000000000000000000000000000000008152600160a060020a03848116600483015283811660248301529151918516916336900c119160448082019260009290919082900301818387803b15801561314357600080fd5b505af1158015613157573d6000803e3d6000fd5b5050604051600160a060020a038085169350851691507ff2e7cf6d6ed3f77039511409a43d4fa5108f09ab71d72b014380364c910233a590600090a3505050565b81600160a060020a031663ceb9838c826040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b1580156131f357600080fd5b505af1158015613207573d6000803e3d6000fd5b5050604051600160a060020a03841692507fbfdf1baaa7e4871111360083540f067050014f651c9e4610a2a4a4bdf8bfab5d9150600090a2604051600160a060020a038216907f2aff63790c7da80d1c50ede92d23bc841c384837735c92c184331f3d7b91e5bf90600090a25050565b81600160a060020a031663ae22107f826040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b1580156132d257600080fd5b505af11580156132e6573d6000803e3d6000fd5b5050604051600160a060020a03841692507f59c3fbcae88f30e9b0e35c132a7f68c53231dffa4722f197c7ecb0ee013eee609150600090a25050565b604080517ffba8f031000000000000000000000000000000000000000000000000000000008152600160a060020a038481166004830152838116602483015291519185169163fba8f0319160448082019260009290919082900301818387803b15801561338e57600080fd5b505af11580156133a2573d6000803e3d6000fd5b5050604051600160a060020a038085169350851691507f9430ad6ff45d6c3e126c7711bf0036bd9bc6b202fa19628abd88e59cf43ced4390600090a3505050565b6040805180820182529060029082908038833950919291505056004552525f4143434553535f44454e494544000000000000000000000000000000536f7672796e53776170436f6e76657274657252656769737472794461746100a165627a7a72305820a3ff8d616a609f2f0d2014995d930b7884b0bb7a8f1a97baf9787a10eed69c8a0029", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP1 PUSH3 0x3573 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 MSTORE MLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND CALLER OR SWAP1 SSTORE DUP1 DUP1 PUSH3 0x4C DUP2 PUSH5 0x100000000 PUSH3 0x7E DUP2 MUL DIV JUMP JUMPDEST POP PUSH1 0x2 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT SWAP3 DUP4 AND DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x3 DUP1 SLOAD SWAP1 SWAP3 AND OR SWAP1 SSTORE POP PUSH3 0xF9 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH3 0xF6 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x346A DUP1 PUSH3 0x109 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x200 JUMPI PUSH4 0xFFFFFFFF PUSH1 0xE0 PUSH1 0x2 EXP PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x24C7EC7 DUP2 EQ PUSH2 0x205 JUMPI DUP1 PUSH4 0x4CEAF41 EQ PUSH2 0x221 JUMPI DUP1 PUSH4 0x11839064 EQ PUSH2 0x286 JUMPI DUP1 PUSH4 0x1D3FCCD5 EQ PUSH2 0x2A7 JUMPI DUP1 PUSH4 0x1F8E2620 EQ PUSH2 0x35A JUMPI DUP1 PUSH4 0x295D2A21 EQ PUSH2 0x3AF JUMPI DUP1 PUSH4 0x2FE8A6AD EQ PUSH2 0x451 JUMPI DUP1 PUSH4 0x3AB8857C EQ PUSH2 0x47A JUMPI DUP1 PUSH4 0x4123EF60 EQ PUSH2 0x49B JUMPI DUP1 PUSH4 0x49C5F32B EQ PUSH2 0x4BC JUMPI DUP1 PUSH4 0x49D10B64 EQ PUSH2 0x4EF JUMPI DUP1 PUSH4 0x4C7DF18F EQ PUSH2 0x504 JUMPI DUP1 PUSH4 0x5A0A6618 EQ PUSH2 0x51C JUMPI DUP1 PUSH4 0x5F1B50FE EQ PUSH2 0x646 JUMPI DUP1 PUSH4 0x603F51E4 EQ PUSH2 0x65B JUMPI DUP1 PUSH4 0x610C0B05 EQ PUSH2 0x67F JUMPI DUP1 PUSH4 0x61CD756E EQ PUSH2 0x6D4 JUMPI DUP1 PUSH4 0x69BE4784 EQ PUSH2 0x6E9 JUMPI DUP1 PUSH4 0x6CE1C4DC EQ PUSH2 0x6FE JUMPI DUP1 PUSH4 0x725B8786 EQ PUSH2 0x71F JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x746 JUMPI DUP1 PUSH4 0x7A5F0FFD EQ PUSH2 0x75B JUMPI DUP1 PUSH4 0x7B103999 EQ PUSH2 0x770 JUMPI DUP1 PUSH4 0x7F45C4C3 EQ PUSH2 0x785 JUMPI DUP1 PUSH4 0x865CF194 EQ PUSH2 0x79A JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x7B2 JUMPI DUP1 PUSH4 0x8F1D0E1A EQ PUSH2 0x7C7 JUMPI DUP1 PUSH4 0x954254F5 EQ PUSH2 0x7E8 JUMPI DUP1 PUSH4 0x9E76A007 EQ PUSH2 0x809 JUMPI DUP1 PUSH4 0xA109D214 EQ PUSH2 0x82A JUMPI DUP1 PUSH4 0xA43D5E94 EQ PUSH2 0x842 JUMPI DUP1 PUSH4 0xA74498AA EQ PUSH2 0x863 JUMPI DUP1 PUSH4 0xB4A176D3 EQ PUSH2 0x87B JUMPI DUP1 PUSH4 0xB4C4197A EQ PUSH2 0x890 JUMPI DUP1 PUSH4 0xC22B82F0 EQ PUSH2 0x8B7 JUMPI DUP1 PUSH4 0xD3182BED EQ PUSH2 0x945 JUMPI DUP1 PUSH4 0xD4EE1D90 EQ PUSH2 0x95A JUMPI DUP1 PUSH4 0xD6C4B5B2 EQ PUSH2 0x96F JUMPI DUP1 PUSH4 0xD8CCED2A EQ PUSH2 0x993 JUMPI DUP1 PUSH4 0xE571049B EQ PUSH2 0x9B4 JUMPI DUP1 PUSH4 0xE85455D7 EQ PUSH2 0x9C9 JUMPI DUP1 PUSH4 0xEFFB3C6E EQ PUSH2 0x9EA JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x9FF JUMPI DUP1 PUSH4 0xF4FB86C0 EQ PUSH2 0xA20 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x211 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x21F PUSH1 0x4 CALLDATALOAD ISZERO ISZERO PUSH2 0xA41 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x22D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x236 PUSH2 0xA89 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP4 MLOAD DUP2 DUP4 ADD MSTORE DUP4 MLOAD SWAP2 SWAP3 DUP4 SWAP3 SWAP1 DUP4 ADD SWAP2 DUP6 DUP2 ADD SWAP2 MUL DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x272 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x25A JUMP JUMPDEST POP POP POP POP SWAP1 POP ADD SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x292 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x236 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0xA98 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2B3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 PUSH1 0x24 DUP1 CALLDATALOAD DUP3 DUP2 ADD CALLDATALOAD DUP5 DUP2 MUL DUP1 DUP8 ADD DUP7 ADD SWAP1 SWAP8 MSTORE DUP1 DUP7 MSTORE PUSH2 0x33E SWAP7 DUP5 CALLDATALOAD PUSH2 0xFFFF AND SWAP7 CALLDATASIZE SWAP7 PUSH1 0x44 SWAP6 SWAP2 SWAP5 SWAP1 SWAP2 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP POP PUSH1 0x40 DUP1 MLOAD DUP8 CALLDATALOAD DUP10 ADD DUP1 CALLDATALOAD PUSH1 0x20 DUP2 DUP2 MUL DUP5 DUP2 ADD DUP3 ADD SWAP1 SWAP6 MSTORE DUP2 DUP5 MSTORE SWAP9 SWAP12 SWAP11 SWAP10 DUP10 ADD SWAP9 SWAP3 SWAP8 POP SWAP1 DUP3 ADD SWAP6 POP SWAP4 POP DUP4 SWAP3 POP DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP PUSH2 0xB9C SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x366 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x236 SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP PUSH2 0xC8F SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3BB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 PUSH1 0x24 DUP1 CALLDATALOAD DUP3 DUP2 ADD CALLDATALOAD DUP5 DUP2 MUL DUP1 DUP8 ADD DUP7 ADD SWAP1 SWAP8 MSTORE DUP1 DUP7 MSTORE PUSH2 0x33E SWAP7 DUP5 CALLDATALOAD PUSH2 0xFFFF AND SWAP7 CALLDATASIZE SWAP7 PUSH1 0x44 SWAP6 SWAP2 SWAP5 SWAP1 SWAP2 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP POP PUSH1 0x40 DUP1 MLOAD DUP8 CALLDATALOAD DUP10 ADD DUP1 CALLDATALOAD PUSH1 0x20 DUP2 DUP2 MUL DUP5 DUP2 ADD DUP3 ADD SWAP1 SWAP6 MSTORE DUP2 DUP5 MSTORE SWAP9 SWAP12 SWAP11 SWAP10 DUP10 ADD SWAP9 SWAP3 SWAP8 POP SWAP1 DUP3 ADD SWAP6 POP SWAP4 POP DUP4 SWAP3 POP DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP POP POP SWAP3 CALLDATALOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP4 POP PUSH2 0xCA0 SWAP3 POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x45D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x466 PUSH2 0x1161 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x486 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x466 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x1182 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4A7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x466 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x1227 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4C8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4DD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x1232 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4FB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x21F PUSH2 0x12A5 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x510 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x33E PUSH1 0x4 CALLDATALOAD PUSH2 0x1512 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x528 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 PUSH1 0x24 DUP1 CALLDATALOAD DUP3 DUP2 ADD CALLDATALOAD PUSH1 0x1F DUP2 ADD DUP6 SWAP1 DIV DUP6 MUL DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP6 DUP6 MSTORE PUSH2 0x33E SWAP6 DUP4 CALLDATALOAD PUSH2 0xFFFF AND SWAP6 CALLDATASIZE SWAP6 PUSH1 0x44 SWAP5 SWAP2 SWAP4 SWAP1 SWAP2 ADD SWAP2 SWAP1 DUP2 SWAP1 DUP5 ADD DUP4 DUP3 DUP1 DUP3 DUP5 CALLDATACOPY POP POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x1F DUP10 CALLDATALOAD DUP12 ADD DUP1 CALLDATALOAD SWAP2 DUP3 ADD DUP4 SWAP1 DIV DUP4 MUL DUP5 ADD DUP4 ADD SWAP1 SWAP5 MSTORE DUP1 DUP4 MSTORE SWAP8 SWAP11 SWAP10 SWAP9 DUP2 ADD SWAP8 SWAP2 SWAP7 POP SWAP2 DUP3 ADD SWAP5 POP SWAP3 POP DUP3 SWAP2 POP DUP5 ADD DUP4 DUP3 DUP1 DUP3 DUP5 CALLDATACOPY POP POP PUSH1 0x40 DUP1 MLOAD DUP2 DUP9 ADD CALLDATALOAD DUP10 ADD DUP1 CALLDATALOAD PUSH1 0x20 DUP2 DUP2 MUL DUP5 DUP2 ADD DUP3 ADD SWAP1 SWAP6 MSTORE DUP2 DUP5 MSTORE SWAP9 SWAP12 PUSH1 0xFF DUP12 CALLDATALOAD AND SWAP12 PUSH4 0xFFFFFFFF DUP12 DUP14 ADD CALLDATALOAD AND SWAP12 SWAP2 SWAP11 SWAP1 SWAP10 POP PUSH1 0x60 SWAP1 SWAP2 ADD SWAP8 POP SWAP3 SWAP6 POP SWAP1 DUP3 ADD SWAP4 POP SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP POP PUSH1 0x40 DUP1 MLOAD DUP8 CALLDATALOAD DUP10 ADD DUP1 CALLDATALOAD PUSH1 0x20 DUP2 DUP2 MUL DUP5 DUP2 ADD DUP3 ADD SWAP1 SWAP6 MSTORE DUP2 DUP5 MSTORE SWAP9 SWAP12 SWAP11 SWAP10 DUP10 ADD SWAP9 SWAP3 SWAP8 POP SWAP1 DUP3 ADD SWAP6 POP SWAP4 POP DUP4 SWAP3 POP DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP PUSH2 0x1573 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x652 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x236 PUSH2 0x18FB JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x667 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x33E PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x19E1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x68B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x236 SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP PUSH2 0x1A8F SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6E0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x33E PUSH2 0x1B85 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4DD PUSH2 0x1B94 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x70A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x21F PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x1C1B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x72B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x466 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH2 0x1C8E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x752 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x21F PUSH2 0x1CA1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x767 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4DD PUSH2 0x1D62 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x77C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x33E PUSH2 0x1DB8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x791 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x236 PUSH2 0x1DC7 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7A6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x33E PUSH1 0x4 CALLDATALOAD PUSH2 0x1E1D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7BE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x33E PUSH2 0x1E7E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7D3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x466 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x1E8D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7F4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x466 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x20D9 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x815 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x21F PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x21E8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x836 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x33E PUSH1 0x4 CALLDATALOAD PUSH2 0x2254 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x84E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4DD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x225F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x86F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x33E PUSH1 0x4 CALLDATALOAD PUSH2 0x226A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x887 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x21F PUSH2 0x22CB JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x89C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x466 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH2 0x2304 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8C3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x33E SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP POP PUSH1 0x40 DUP1 MLOAD DUP8 CALLDATALOAD DUP10 ADD DUP1 CALLDATALOAD PUSH1 0x20 DUP2 DUP2 MUL DUP5 DUP2 ADD DUP3 ADD SWAP1 SWAP6 MSTORE DUP2 DUP5 MSTORE SWAP9 SWAP12 SWAP11 SWAP10 DUP10 ADD SWAP9 SWAP3 SWAP8 POP SWAP1 DUP3 ADD SWAP6 POP SWAP4 POP DUP4 SWAP3 POP DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP PUSH2 0x238B SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x951 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4DD PUSH2 0x2399 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x966 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x33E PUSH2 0x23EF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x97B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x33E PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x23FE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x99F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x466 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x240A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9C0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4DD PUSH2 0x247D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9D5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x466 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x2487 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9F6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x236 PUSH2 0x24FA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA0B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x21F PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x2550 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA2C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x236 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x25ED JUMP JUMPDEST PUSH2 0xA49 PUSH2 0x25F8 JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD SWAP2 ISZERO ISZERO PUSH21 0x10000000000000000000000000000000000000000 MUL PUSH21 0xFF0000000000000000000000000000000000000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x60 PUSH2 0xA93 PUSH2 0x24FA JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH2 0xAB1 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x341F DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x264A JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xF4FB86C0 DUP4 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xB0B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xB1F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xB48 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 MLOAD PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0xB60 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD PUSH1 0x20 DUP2 ADD DUP5 DUP2 GT ISZERO PUSH2 0xB73 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP6 PUSH1 0x20 DUP3 MUL DUP4 ADD GT PUSH5 0x100000000 DUP3 GT OR ISZERO PUSH2 0xB90 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP SWAP1 SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 MLOAD DUP8 MLOAD EQ DUP1 ISZERO PUSH2 0xBB7 JUMPI POP PUSH1 0x1 DUP8 MLOAD GT JUMPDEST ISZERO PUSH2 0xC7F JUMPI PUSH2 0xBC5 DUP8 PUSH2 0x26B0 JUMP JUMPDEST SWAP4 POP PUSH1 0x0 SWAP3 POP JUMPDEST DUP4 MLOAD DUP4 LT ISZERO PUSH2 0xC7F JUMPI DUP4 DUP4 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xBE3 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD SWAP2 POP DUP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x8DA5CB5B PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC2D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xC41 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xC57 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 POP PUSH2 0xC67 DUP2 DUP10 DUP10 DUP10 PUSH2 0x2948 JUMP JUMPDEST ISZERO PUSH2 0xC74 JUMPI DUP2 SWAP5 POP PUSH2 0xC84 JUMP JUMPDEST PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 PUSH2 0xBCC JUMP JUMPDEST PUSH1 0x0 SWAP5 POP JUMPDEST POP POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0xC9A DUP3 PUSH2 0x1A8F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD SWAP1 SWAP2 DUP3 SWAP2 DUP3 SWAP2 DUP3 SWAP2 AND CALLER EQ PUSH2 0xD3F JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x30 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x6F6E6C7920746865206465706C6F796572206D61792066696E69736820746865 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x20636F6E76657274657220736574757000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x84 ADD SWAP1 REVERT JUMPDEST DUP7 MLOAD DUP7 MLOAD SWAP1 SWAP4 POP DUP4 EQ PUSH2 0xD9C JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245534552564553000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xDA9 DUP10 DUP10 DUP10 PUSH2 0xB9C JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ PUSH2 0xE07 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F414C52454144595F4558495354530000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xD3FB73B4 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xE45 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xE59 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xE6F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x79BA509700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP4 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP2 PUSH4 0x79BA5097 SWAP2 PUSH1 0x4 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xECF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xEE3 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x79BA5097 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xF25 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xF39 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x0 SWAP1 POP JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x100B JUMPI DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x6A49D2C4 DUP9 DUP4 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xF67 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD DUP9 DUP5 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xF7F JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 PUSH4 0xFFFFFFFF AND PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xFE7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xFFB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 POP PUSH2 0xF42 SWAP1 POP JUMP JUMPDEST DUP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xF2FDE38B DUP7 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1066 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x107A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xCDC91C69 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x10BC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x10D0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 DUP1 MLOAD PUSH32 0xF2FDE38B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP10 AND SWAP4 POP PUSH4 0xF2FDE38B SWAP3 POP PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1134 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1148 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x1155 DUP6 PUSH2 0x2AC1 JUMP JUMPDEST POP SWAP3 SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x119B PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x341F DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x264A JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x3AB8857C DUP4 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x11F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1209 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x121F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xC9A DUP3 PUSH2 0x240A JUMP JUMPDEST PUSH1 0x0 PUSH2 0x124B PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x341F DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x264A JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xA43D5E94 DUP4 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x11F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ DUP1 PUSH2 0x12DA JUMPI POP PUSH1 0x3 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x131E JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x33FF DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x1347 PUSH32 0x436F6E7472616374526567697374727900000000000000000000000000000000 PUSH2 0x264A JUMP JUMPDEST PUSH1 0x2 SLOAD SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP4 AND SWAP2 AND EQ DUP1 ISZERO SWAP1 PUSH2 0x1370 JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x13C6 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245474953545259000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0xBB34534C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH32 0x436F6E7472616374526567697374727900000000000000000000000000000000 PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP2 PUSH4 0xBB34534C SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x144A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x145E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1474 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ ISZERO PUSH2 0x14D5 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245474953545259000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP5 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP3 DUP4 AND OR SWAP1 SWAP3 SSTORE SWAP1 SWAP2 AND SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH2 0x152B PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x341F DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x264A JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xA109D214 DUP4 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x11F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP7 MLOAD SWAP4 POP DUP6 MLOAD DUP5 EQ ISZERO ISZERO PUSH2 0x15D9 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245534552564553000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x15E6 DUP14 DUP10 DUP10 PUSH2 0xB9C JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ PUSH2 0x1644 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F414C52454144595F4558495354530000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x166D PUSH32 0x436F6E766572746572466163746F727900000000000000000000000000000000 PUSH2 0x264A JUMP JUMPDEST SWAP3 POP DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x2E9AB7B3 DUP14 DUP14 DUP14 DUP14 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP6 PUSH2 0xFFFF AND PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP5 PUSH1 0xFF AND PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 SUB DUP4 MSTORE DUP7 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x16EF JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x16D7 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x171C JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP DUP4 DUP2 SUB DUP3 MSTORE DUP6 MLOAD DUP2 MSTORE DUP6 MLOAD PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 DUP8 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x174F JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x1737 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x177C JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP7 POP POP POP POP POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x179F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x17B3 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x17C9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP SWAP2 POP DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x15F64B6A DUP14 DUP5 PUSH1 0x2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP13 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP6 PUSH2 0xFFFF AND PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 PUSH4 0xFFFFFFFF AND PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP5 POP POP POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x188A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x189E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x18B4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND CALLER OR SWAP1 SSTORE SWAP13 SWAP12 POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x1914 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x341F DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x264A JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x5F1B50FE PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1951 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1965 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x198E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 MLOAD PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x19A6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD PUSH1 0x20 DUP2 ADD DUP5 DUP2 GT ISZERO PUSH2 0x19B9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP6 PUSH1 0x20 DUP3 MUL DUP4 ADD GT PUSH5 0x100000000 DUP3 GT OR ISZERO PUSH2 0x19D6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP SWAP1 SWAP5 POP POP POP POP POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x19FA PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x341F DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x264A JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xD6C4B5B2 DUP5 DUP5 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1A5C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1A70 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1A86 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP1 PUSH1 0x0 DUP4 MLOAD PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x1ABF JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CODESIZE DUP4 CODECOPY ADD SWAP1 POP JUMPDEST POP SWAP2 POP PUSH1 0x0 SWAP1 POP JUMPDEST DUP4 MLOAD DUP2 LT ISZERO PUSH2 0x1B7E JUMPI DUP4 DUP2 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x1ADE JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x8DA5CB5B PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1B25 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1B39 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1B4F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD DUP3 MLOAD DUP4 SWAP1 DUP4 SWAP1 DUP2 LT PUSH2 0x1B5F JUMPI INVALID JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND PUSH1 0x20 SWAP3 DUP4 MUL SWAP1 SWAP2 ADD SWAP1 SWAP2 ADD MSTORE PUSH1 0x1 ADD PUSH2 0x1AC7 JUMP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1BAD PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x341F DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x264A JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x69BE4784 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1BEA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1BFE JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1C14 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x1C23 PUSH2 0x25F8 JUMP JUMPDEST PUSH2 0x1C2C DUP2 PUSH2 0x20D9 JUMP JUMPDEST ISZERO ISZERO PUSH2 0x1C82 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F434F4E5645525445520000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x1C8B DUP2 PUSH2 0x2AC1 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1C9A DUP4 DUP4 PUSH2 0x2304 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x1CF1 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x33FF DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND SWAP4 SWAP1 SWAP2 AND SWAP2 PUSH32 0x343765429AEA5A34B3FF6A3785A98A5ABB2597ACA87BFBB58632C173D585373A SWAP2 LOG3 PUSH1 0x1 DUP1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND OR SWAP1 SWAP2 SSTORE AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1D7B PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x341F DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x264A JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x7A5F0FFD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1BEA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x60 PUSH2 0x1DE0 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x341F DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x264A JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x7F45C4C3 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1951 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1E36 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x341F DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x264A JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x865CF194 DUP4 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x11F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x60 DUP1 PUSH1 0x0 DUP1 DUP7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x71F52BF3 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1ED4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1EE8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1EFE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH2 0xFFFF SWAP1 SWAP3 AND DUP1 DUP4 MSTORE PUSH1 0x20 DUP2 DUP2 MUL DUP5 ADD ADD SWAP1 SWAP2 MSTORE SWAP6 POP DUP6 DUP1 ISZERO PUSH2 0x1F31 JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CODESIZE DUP4 CODECOPY ADD SWAP1 POP JUMPDEST POP SWAP4 POP DUP5 PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x1F5E JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CODESIZE DUP4 CODECOPY ADD SWAP1 POP JUMPDEST POP SWAP3 POP PUSH1 0x0 SWAP2 POP JUMPDEST DUP5 DUP3 LT ISZERO PUSH2 0x2044 JUMPI DUP7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x19B64015 DUP4 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1FB7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1FCB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1FE1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD DUP5 MLOAD SWAP1 SWAP2 POP DUP2 SWAP1 DUP6 SWAP1 DUP5 SWAP1 DUP2 LT PUSH2 0x1FF6 JUMPI INVALID JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND PUSH1 0x20 SWAP3 DUP4 MUL SWAP1 SWAP2 ADD SWAP1 SWAP2 ADD MSTORE PUSH2 0x2017 DUP8 DUP3 PUSH2 0x2CA2 JUMP JUMPDEST DUP4 DUP4 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x2025 JUMPI INVALID JUMPDEST PUSH4 0xFFFFFFFF SWAP1 SWAP3 AND PUSH1 0x20 SWAP3 DUP4 MUL SWAP1 SWAP2 ADD SWAP1 SWAP2 ADD MSTORE PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x1F66 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x20C3 DUP9 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x3E8FF43F PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2090 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x20A4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x20BA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD DUP7 DUP7 PUSH2 0xB9C JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ ISZERO SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xFC0C546A PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2123 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2137 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x214D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x8DA5CB5B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP2 PUSH4 0x8DA5CB5B SWAP2 PUSH1 0x4 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x21AC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x21C0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x21D6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ DUP1 PUSH2 0x2207 JUMPI POP PUSH2 0x2205 DUP2 PUSH2 0x20D9 JUMP JUMPDEST ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x224B JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x33FF DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x1C8B DUP2 PUSH2 0x2D73 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xC9A DUP3 PUSH2 0x1512 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xC9A DUP3 PUSH2 0x1232 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2283 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x341F DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x264A JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xA74498AA DUP4 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x11F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x22D3 PUSH2 0x25F8 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x2 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH2 0x231D PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x341F DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x264A JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x725B878600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP6 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE SWAP2 MLOAD SWAP3 SWAP1 SWAP2 AND SWAP2 PUSH4 0x725B8786 SWAP2 PUSH1 0x44 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1A5C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1C9A PUSH1 0x1 DUP5 DUP5 PUSH2 0xB9C JUMP JUMPDEST PUSH1 0x0 PUSH2 0x23B2 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x341F DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x264A JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xE571049B PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1BEA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1C9A DUP4 DUP4 PUSH2 0x19E1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2423 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x341F DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x264A JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x4123EF60 DUP4 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x11F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xA93 PUSH2 0x2399 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x24A0 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x341F DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x264A JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xE85455D7 DUP4 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x11F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x60 PUSH2 0x2513 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x341F DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x264A JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x4CEAF41 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1951 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2558 PUSH2 0x25F8 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x25BE JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F4F574E4552000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x60 PUSH2 0xC9A DUP3 PUSH2 0xA98 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x2648 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x33FF DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xBB34534C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP2 PUSH4 0xBB34534C SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x11F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x26D1 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x341F DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x264A JUMP JUMPDEST SWAP5 POP DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xA43D5E94 DUP9 PUSH1 0x0 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x26F1 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2746 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x275A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2770 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP4 POP PUSH1 0x0 SWAP3 POP PUSH1 0x1 SWAP2 POP JUMPDEST DUP7 MLOAD DUP3 LT ISZERO PUSH2 0x2840 JUMPI DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xA43D5E94 DUP9 DUP5 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x27A3 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x27F8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x280C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2822 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 POP DUP1 DUP5 GT ISZERO PUSH2 0x2835 JUMPI DUP1 SWAP4 POP DUP2 SWAP3 POP JUMPDEST PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x277D JUMP JUMPDEST DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xF4FB86C0 DUP9 DUP6 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x285D JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x28B2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x28C6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x28EF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 MLOAD PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x2907 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD PUSH1 0x20 DUP2 ADD DUP5 DUP2 GT ISZERO PUSH2 0x291A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP6 PUSH1 0x20 DUP3 MUL DUP4 ADD GT PUSH5 0x100000000 DUP3 GT OR ISZERO PUSH2 0x2937 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP SWAP1 SWAP12 SWAP11 POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP6 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x3E8FF43F PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2989 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x299D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x29B3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH2 0xFFFF DUP7 DUP2 AND SWAP2 AND EQ PUSH2 0x29CB JUMPI PUSH1 0x0 SWAP2 POP PUSH2 0x2AB8 JUMP JUMPDEST DUP6 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x71F52BF3 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2A09 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2A1D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2A33 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD DUP5 MLOAD PUSH2 0xFFFF SWAP1 SWAP2 AND EQ PUSH2 0x2A4B JUMPI PUSH1 0x0 SWAP2 POP PUSH2 0x2AB8 JUMP JUMPDEST POP PUSH1 0x0 JUMPDEST DUP4 MLOAD DUP2 LT ISZERO PUSH2 0x2AB3 JUMPI PUSH2 0x2A79 DUP7 DUP6 DUP4 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x2A6A JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH2 0x2CA2 JUMP JUMPDEST PUSH4 0xFFFFFFFF AND DUP4 DUP3 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x2A8D JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MLOAD PUSH4 0xFFFFFFFF AND EQ PUSH2 0x2AAB JUMPI PUSH1 0x0 SWAP2 POP PUSH2 0x2AB8 JUMP JUMPDEST PUSH1 0x1 ADD PUSH2 0x2A4F JUMP JUMPDEST PUSH1 0x1 SWAP2 POP JUMPDEST POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x2ADE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x341F DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x264A JUMP JUMPDEST SWAP4 POP DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xFC0C546A PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2B1E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2B32 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2B48 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x71F52BF300000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP5 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND SWAP2 PUSH4 0x71F52BF3 SWAP2 PUSH1 0x4 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2BA9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2BBD JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2BD3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH2 0xFFFF AND SWAP2 POP PUSH2 0x2BE5 DUP5 DUP5 PUSH2 0x2F4D JUMP JUMPDEST PUSH1 0x1 DUP3 GT ISZERO PUSH2 0x2BFD JUMPI PUSH2 0x2BF8 DUP5 DUP5 PUSH2 0x302C JUMP JUMPDEST PUSH2 0x2C08 JUMP JUMPDEST PUSH2 0x2C08 DUP5 DUP5 DUP6 PUSH2 0x30D7 JUMP JUMPDEST POP PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x2C9B JUMPI PUSH2 0x2C93 DUP5 DUP7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x19B64015 DUP5 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2C61 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2C75 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2C8B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD DUP6 PUSH2 0x30D7 JUMP JUMPDEST PUSH1 0x1 ADD PUSH2 0x2C0C JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2CAC PUSH2 0x33E3 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x636F6E6E6563746F727328616464726573732900000000000000000000000000 DUP2 MSTORE DUP2 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x13 ADD DUP2 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND PUSH1 0x24 DUP1 DUP5 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x44 SWAP1 SWAP3 ADD DUP4 MSTORE PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR DUP2 MSTORE DUP2 MLOAD SWAP2 SWAP3 SWAP2 DUP5 SWAP2 DUP9 GAS STATICCALL DUP1 ISZERO ISZERO PUSH2 0x2D66 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP PUSH1 0x20 ADD MLOAD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x2D90 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x341F DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x264A JUMP JUMPDEST SWAP4 POP DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xFC0C546A PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2DD0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2DE4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2DFA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x71F52BF300000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP5 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND SWAP2 PUSH4 0x71F52BF3 SWAP2 PUSH1 0x4 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2E5B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2E6F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2E85 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH2 0xFFFF AND SWAP2 POP PUSH2 0x2E97 DUP5 DUP5 PUSH2 0x3198 JUMP JUMPDEST PUSH1 0x1 DUP3 GT ISZERO PUSH2 0x2EAF JUMPI PUSH2 0x2EAA DUP5 DUP5 PUSH2 0x3277 JUMP JUMPDEST PUSH2 0x2EBA JUMP JUMPDEST PUSH2 0x2EBA DUP5 DUP5 DUP6 PUSH2 0x3322 JUMP JUMPDEST POP PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x2C9B JUMPI PUSH2 0x2F45 DUP5 DUP7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x19B64015 DUP5 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2F13 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2F27 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2F3D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD DUP6 PUSH2 0x3322 JUMP JUMPDEST PUSH1 0x1 ADD PUSH2 0x2EBE JUMP JUMPDEST DUP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x8DE6C3EB DUP3 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2FA8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2FBC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP3 POP PUSH32 0xC0A6D303D67B7ED9FA0ABAE1C48878DF32ACC0E7CA4334C7DAD2BCEEEE5956FD SWAP2 POP PUSH1 0x0 SWAP1 LOG2 PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 AND SWAP1 PUSH32 0x88881FEECDF61136AC4BDB1F681F2F3746A82910263D21FFEA94750D2A78C0AB SWAP1 PUSH1 0x0 SWAP1 LOG2 POP POP JUMP JUMPDEST DUP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xEE6A934C DUP3 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3087 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x309B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP3 POP PUSH32 0xB893F883EF734B712208A877459424EE509832C57E0461FB1AC99ED4D42F2D89 SWAP2 POP PUSH1 0x0 SWAP1 LOG2 POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x36900C1100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP4 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE SWAP2 MLOAD SWAP2 DUP6 AND SWAP2 PUSH4 0x36900C11 SWAP2 PUSH1 0x44 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3143 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3157 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP6 AND SWAP4 POP DUP6 AND SWAP2 POP PUSH32 0xF2E7CF6D6ED3F77039511409A43D4FA5108F09AB71D72B014380364C910233A5 SWAP1 PUSH1 0x0 SWAP1 LOG3 POP POP POP JUMP JUMPDEST DUP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xCEB9838C DUP3 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x31F3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3207 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP3 POP PUSH32 0xBFDF1BAAA7E4871111360083540F067050014F651C9E4610A2A4A4BDF8BFAB5D SWAP2 POP PUSH1 0x0 SWAP1 LOG2 PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 AND SWAP1 PUSH32 0x2AFF63790C7DA80D1C50EDE92D23BC841C384837735C92C184331F3D7B91E5BF SWAP1 PUSH1 0x0 SWAP1 LOG2 POP POP JUMP JUMPDEST DUP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xAE22107F DUP3 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x32D2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x32E6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP3 POP PUSH32 0x59C3FBCAE88F30E9B0E35C132A7F68C53231DFFA4722F197C7ECB0EE013EEE60 SWAP2 POP PUSH1 0x0 SWAP1 LOG2 POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0xFBA8F03100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP4 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE SWAP2 MLOAD SWAP2 DUP6 AND SWAP2 PUSH4 0xFBA8F031 SWAP2 PUSH1 0x44 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x338E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x33A2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP6 AND SWAP4 POP DUP6 AND SWAP2 POP PUSH32 0x9430AD6FF45D6C3E126C7711BF0036BD9BC6B202FA19628ABD88E59CF43CED43 SWAP1 PUSH1 0x0 SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD DUP3 MSTORE SWAP1 PUSH1 0x2 SWAP1 DUP3 SWAP1 DUP1 CODESIZE DUP4 CODECOPY POP SWAP2 SWAP3 SWAP2 POP POP JUMP STOP GASLIMIT MSTORE MSTORE 0x5f COINBASE NUMBER NUMBER GASLIMIT MSTORE8 MSTORE8 0x5f DIFFICULTY GASLIMIT 0x4e 0x49 GASLIMIT DIFFICULTY STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP MSTORE8 PUSH16 0x7672796E53776170436F6E7665727465 PUSH19 0x52656769737472794461746100A165627A7A72 ADDRESS PC KECCAK256 LOG3 SELFDESTRUCT DUP14 PUSH2 0x6A60 SWAP16 0x2f 0xd KECCAK256 EQ SWAP10 0x5d SWAP4 SIGNEXTEND PUSH25 0x84B0BB7A8F1A97BAF9787A10EED69C8A002900000000000000 ", - "sourceMap": "1278:22622:6:-;;;3171:84;8:9:-1;5:2;;;30:1;27;20:12;5:2;3171:84:6;;;;;;;;;;;;;488:5:66;:18;;-1:-1:-1;;;;;;488:18:66;496:10;488:18;;;3171:84:6;;475:23:72;3171:84:6;475:13:72;;;;:23;:::i;:::-;-1:-1:-1;1931:8:60;:39;;-1:-1:-1;;;;;1931:39:60;;;-1:-1:-1;;;;;;1931:39:60;;;;;;;;1974:12;:43;;;;;;;;-1:-1:-1;1278:22622:6;;553:117:72;-1:-1:-1;;;;;620:22:72;;;;612:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;553:117;:::o;1278:22622:6:-;;;;;;;" - }, - "deployedBytecode": { - "linkReferences": {}, - "object": "6080604052600436106102005763ffffffff60e060020a600035041663024c7ec7811461020557806304ceaf411461022157806311839064146102865780631d3fccd5146102a75780631f8e26201461035a578063295d2a21146103af5780632fe8a6ad146104515780633ab8857c1461047a5780634123ef601461049b57806349c5f32b146104bc57806349d10b64146104ef5780634c7df18f146105045780635a0a66181461051c5780635f1b50fe14610646578063603f51e41461065b578063610c0b051461067f57806361cd756e146106d457806369be4784146106e95780636ce1c4dc146106fe578063725b87861461071f57806379ba5097146107465780637a5f0ffd1461075b5780637b103999146107705780637f45c4c314610785578063865cf1941461079a5780638da5cb5b146107b25780638f1d0e1a146107c7578063954254f5146107e85780639e76a00714610809578063a109d2141461082a578063a43d5e9414610842578063a74498aa14610863578063b4a176d31461087b578063b4c4197a14610890578063c22b82f0146108b7578063d3182bed14610945578063d4ee1d901461095a578063d6c4b5b21461096f578063d8cced2a14610993578063e571049b146109b4578063e85455d7146109c9578063effb3c6e146109ea578063f2fde38b146109ff578063f4fb86c014610a20575b600080fd5b34801561021157600080fd5b5061021f6004351515610a41565b005b34801561022d57600080fd5b50610236610a89565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561027257818101518382015260200161025a565b505050509050019250505060405180910390f35b34801561029257600080fd5b50610236600160a060020a0360043516610a98565b3480156102b357600080fd5b5060408051602060046024803582810135848102808701860190975280865261033e96843561ffff1696369660449591949091019291829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750949750610b9c9650505050505050565b60408051600160a060020a039092168252519081900360200190f35b34801561036657600080fd5b506040805160206004803580820135838102808601850190965280855261023695369593946024949385019291829185019084908082843750949750610c8f9650505050505050565b3480156103bb57600080fd5b5060408051602060046024803582810135848102808701860190975280865261033e96843561ffff1696369660449591949091019291829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a99890198929750908201955093508392508501908490808284375094975050509235600160a060020a03169350610ca092505050565b34801561045d57600080fd5b50610466611161565b604080519115158252519081900360200190f35b34801561048657600080fd5b50610466600160a060020a0360043516611182565b3480156104a757600080fd5b50610466600160a060020a0360043516611227565b3480156104c857600080fd5b506104dd600160a060020a0360043516611232565b60408051918252519081900360200190f35b3480156104fb57600080fd5b5061021f6112a5565b34801561051057600080fd5b5061033e600435611512565b34801561052857600080fd5b5060408051602060046024803582810135601f810185900485028601850190965285855261033e95833561ffff1695369560449491939091019190819084018382808284375050604080516020601f89358b018035918201839004830284018301909452808352979a9998810197919650918201945092508291508401838280828437505060408051818801358901803560208181028481018201909552818452989b60ff8b35169b63ffffffff8b8d0135169b919a90995060609091019750929550908201935091829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a9989019892975090820195509350839250850190849080828437509497506115739650505050505050565b34801561065257600080fd5b506102366118fb565b34801561066757600080fd5b5061033e600160a060020a03600435166024356119e1565b34801561068b57600080fd5b506040805160206004803580820135838102808601850190965280855261023695369593946024949385019291829185019084908082843750949750611a8f9650505050505050565b3480156106e057600080fd5b5061033e611b85565b3480156106f557600080fd5b506104dd611b94565b34801561070a57600080fd5b5061021f600160a060020a0360043516611c1b565b34801561072b57600080fd5b50610466600160a060020a0360043581169060243516611c8e565b34801561075257600080fd5b5061021f611ca1565b34801561076757600080fd5b506104dd611d62565b34801561077c57600080fd5b5061033e611db8565b34801561079157600080fd5b50610236611dc7565b3480156107a657600080fd5b5061033e600435611e1d565b3480156107be57600080fd5b5061033e611e7e565b3480156107d357600080fd5b50610466600160a060020a0360043516611e8d565b3480156107f457600080fd5b50610466600160a060020a03600435166120d9565b34801561081557600080fd5b5061021f600160a060020a03600435166121e8565b34801561083657600080fd5b5061033e600435612254565b34801561084e57600080fd5b506104dd600160a060020a036004351661225f565b34801561086f57600080fd5b5061033e60043561226a565b34801561088757600080fd5b5061021f6122cb565b34801561089c57600080fd5b50610466600160a060020a0360043581169060243516612304565b3480156108c357600080fd5b506040805160206004803580820135838102808601850190965280855261033e95369593946024949385019291829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a99890198929750908201955093508392508501908490808284375094975061238b9650505050505050565b34801561095157600080fd5b506104dd612399565b34801561096657600080fd5b5061033e6123ef565b34801561097b57600080fd5b5061033e600160a060020a03600435166024356123fe565b34801561099f57600080fd5b50610466600160a060020a036004351661240a565b3480156109c057600080fd5b506104dd61247d565b3480156109d557600080fd5b50610466600160a060020a0360043516612487565b3480156109f657600080fd5b506102366124fa565b348015610a0b57600080fd5b5061021f600160a060020a0360043516612550565b348015610a2c57600080fd5b50610236600160a060020a03600435166125ed565b610a496125f8565b60038054911515740100000000000000000000000000000000000000000274ff000000000000000000000000000000000000000019909216919091179055565b6060610a936124fa565b905090565b6060610ab160008051602061341f83398151915261264a565b600160a060020a031663f4fb86c0836040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b158015610b0b57600080fd5b505af1158015610b1f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526020811015610b4857600080fd5b810190808051640100000000811115610b6057600080fd5b82016020810184811115610b7357600080fd5b8151856020820283011164010000000082111715610b9057600080fd5b50909695505050505050565b60006060600080600085518751148015610bb7575060018751115b15610c7f57610bc5876126b0565b9350600092505b8351831015610c7f578383815181101515610be357fe5b90602001906020020151915081600160a060020a0316638da5cb5b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610c2d57600080fd5b505af1158015610c41573d6000803e3d6000fd5b505050506040513d6020811015610c5757600080fd5b50519050610c6781898989612948565b15610c7457819450610c84565b600190920191610bcc565b600094505b505050509392505050565b6060610c9a82611a8f565b92915050565b600160a060020a038181166000908152600460205260408120549091829182918291163314610d3f576040805160e560020a62461bcd02815260206004820152603060248201527f6f6e6c7920746865206465706c6f796572206d61792066696e6973682074686560448201527f20636f6e76657274657220736574757000000000000000000000000000000000606482015290519081900360840190fd5b865186519093508314610d9c576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e56414c49445f5245534552564553000000000000000000000000604482015290519081900360640190fd5b6000610da9898989610b9c565b600160a060020a031614610e07576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f414c52454144595f4558495354530000000000000000000000000000604482015290519081900360640190fd5b84600160a060020a031663d3fb73b46040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610e4557600080fd5b505af1158015610e59573d6000803e3d6000fd5b505050506040513d6020811015610e6f57600080fd5b5051604080517f79ba50970000000000000000000000000000000000000000000000000000000081529051919350600160a060020a038416916379ba50979160048082019260009290919082900301818387803b158015610ecf57600080fd5b505af1158015610ee3573d6000803e3d6000fd5b5050505084600160a060020a03166379ba50976040518163ffffffff1660e060020a028152600401600060405180830381600087803b158015610f2557600080fd5b505af1158015610f39573d6000803e3d6000fd5b50505050600090505b8281101561100b5784600160a060020a0316636a49d2c48883815181101515610f6757fe5b906020019060200201518884815181101515610f7f57fe5b906020019060200201516040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a031681526020018263ffffffff1663ffffffff16815260200192505050600060405180830381600087803b158015610fe757600080fd5b505af1158015610ffb573d6000803e3d6000fd5b505060019092019150610f429050565b81600160a060020a031663f2fde38b866040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b15801561106657600080fd5b505af115801561107a573d6000803e3d6000fd5b5050505084600160a060020a031663cdc91c696040518163ffffffff1660e060020a028152600401600060405180830381600087803b1580156110bc57600080fd5b505af11580156110d0573d6000803e3d6000fd5b5050604080517ff2fde38b0000000000000000000000000000000000000000000000000000000081523360048201529051600160a060020a038916935063f2fde38b9250602480830192600092919082900301818387803b15801561113457600080fd5b505af1158015611148573d6000803e3d6000fd5b5050505061115585612ac1565b50929695505050505050565b60035474010000000000000000000000000000000000000000900460ff1681565b600061119b60008051602061341f83398151915261264a565b600160a060020a0316633ab8857c836040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b1580156111f557600080fd5b505af1158015611209573d6000803e3d6000fd5b505050506040513d602081101561121f57600080fd5b505192915050565b6000610c9a8261240a565b600061124b60008051602061341f83398151915261264a565b600160a060020a031663a43d5e94836040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b1580156111f557600080fd5b60008054600160a060020a03163314806112da575060035474010000000000000000000000000000000000000000900460ff16155b151561131e576040805160e560020a62461bcd02815260206004820152601160248201526000805160206133ff833981519152604482015290519081900360640190fd5b6113477f436f6e747261637452656769737472790000000000000000000000000000000061264a565b600254909150600160a060020a038083169116148015906113705750600160a060020a03811615155b15156113c6576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e56414c49445f5245474953545259000000000000000000000000604482015290519081900360640190fd5b604080517fbb34534c0000000000000000000000000000000000000000000000000000000081527f436f6e747261637452656769737472790000000000000000000000000000000060048201529051600091600160a060020a0384169163bb34534c9160248082019260209290919082900301818787803b15801561144a57600080fd5b505af115801561145e573d6000803e3d6000fd5b505050506040513d602081101561147457600080fd5b5051600160a060020a031614156114d5576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e56414c49445f5245474953545259000000000000000000000000604482015290519081900360640190fd5b6002805460038054600160a060020a0380841673ffffffffffffffffffffffffffffffffffffffff19928316179092559091169216919091179055565b600061152b60008051602061341f83398151915261264a565b600160a060020a031663a109d214836040518263ffffffff1660e060020a02815260040180828152602001915050602060405180830381600087803b1580156111f557600080fd5b6000806000806000865193508551841415156115d9576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e56414c49445f5245534552564553000000000000000000000000604482015290519081900360640190fd5b60006115e68d8989610b9c565b600160a060020a031614611644576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f414c52454144595f4558495354530000000000000000000000000000604482015290519081900360640190fd5b61166d7f436f6e766572746572466163746f72790000000000000000000000000000000061264a565b925082600160a060020a0316632e9ab7b38d8d8d8d6040518563ffffffff1660e060020a028152600401808561ffff1661ffff16815260200180602001806020018460ff1660ff168152602001838103835286818151815260200191508051906020019080838360005b838110156116ef5781810151838201526020016116d7565b50505050905090810190601f16801561171c5780820380516001836020036101000a031916815260200191505b50838103825285518152855160209182019187019080838360005b8381101561174f578181015183820152602001611737565b50505050905090810190601f16801561177c5780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600087803b15801561179f57600080fd5b505af11580156117b3573d6000803e3d6000fd5b505050506040513d60208110156117c957600080fd5b8101908080519060200190929190505050915082600160a060020a03166315f64b6a8d84600260009054906101000a9004600160a060020a03168c6040518563ffffffff1660e060020a028152600401808561ffff1661ffff16815260200184600160a060020a0316600160a060020a0316815260200183600160a060020a0316600160a060020a031681526020018263ffffffff1663ffffffff168152602001945050505050602060405180830381600087803b15801561188a57600080fd5b505af115801561189e573d6000803e3d6000fd5b505050506040513d60208110156118b457600080fd5b5051600160a060020a0381166000908152600460205260409020805473ffffffffffffffffffffffffffffffffffffffff1916331790559c9b505050505050505050505050565b606061191460008051602061341f83398151915261264a565b600160a060020a0316635f1b50fe6040518163ffffffff1660e060020a028152600401600060405180830381600087803b15801561195157600080fd5b505af1158015611965573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561198e57600080fd5b8101908080516401000000008111156119a657600080fd5b820160208101848111156119b957600080fd5b81518560208202830111640100000000821117156119d657600080fd5b509094505050505090565b60006119fa60008051602061341f83398151915261264a565b600160a060020a031663d6c4b5b284846040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b158015611a5c57600080fd5b505af1158015611a70573d6000803e3d6000fd5b505050506040513d6020811015611a8657600080fd5b50519392505050565b60608060008351604051908082528060200260200182016040528015611abf578160200160208202803883390190505b509150600090505b8351811015611b7e578381815181101515611ade57fe5b90602001906020020151600160a060020a0316638da5cb5b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015611b2557600080fd5b505af1158015611b39573d6000803e3d6000fd5b505050506040513d6020811015611b4f57600080fd5b50518251839083908110611b5f57fe5b600160a060020a03909216602092830290910190910152600101611ac7565b5092915050565b600354600160a060020a031681565b6000611bad60008051602061341f83398151915261264a565b600160a060020a03166369be47846040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015611bea57600080fd5b505af1158015611bfe573d6000803e3d6000fd5b505050506040513d6020811015611c1457600080fd5b5051905090565b611c236125f8565b611c2c816120d9565b1515611c82576040805160e560020a62461bcd02815260206004820152601560248201527f4552525f494e56414c49445f434f4e5645525445520000000000000000000000604482015290519081900360640190fd5b611c8b81612ac1565b50565b6000611c9a8383612304565b9392505050565b600154600160a060020a03163314611cf1576040805160e560020a62461bcd02815260206004820152601160248201526000805160206133ff833981519152604482015290519081900360640190fd5b60015460008054604051600160a060020a0393841693909116917f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91a3600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b6000611d7b60008051602061341f83398151915261264a565b600160a060020a0316637a5f0ffd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015611bea57600080fd5b600254600160a060020a031681565b6060611de060008051602061341f83398151915261264a565b600160a060020a0316637f45c4c36040518163ffffffff1660e060020a028152600401600060405180830381600087803b15801561195157600080fd5b6000611e3660008051602061341f83398151915261264a565b600160a060020a031663865cf194836040518263ffffffff1660e060020a02815260040180828152602001915050602060405180830381600087803b1580156111f557600080fd5b600054600160a060020a031681565b60008060608060008086600160a060020a03166371f52bf36040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015611ed457600080fd5b505af1158015611ee8573d6000803e3d6000fd5b505050506040513d6020811015611efe57600080fd5b50516040805161ffff90921680835260208181028401019091529550858015611f31578160200160208202803883390190505b50935084604051908082528060200260200182016040528015611f5e578160200160208202803883390190505b509250600091505b848210156120445786600160a060020a03166319b64015836040518263ffffffff1660e060020a02815260040180828152602001915050602060405180830381600087803b158015611fb757600080fd5b505af1158015611fcb573d6000803e3d6000fd5b505050506040513d6020811015611fe157600080fd5b505184519091508190859084908110611ff657fe5b600160a060020a039092166020928302909101909101526120178782612ca2565b838381518110151561202557fe5b63ffffffff909216602092830290910190910152600190910190611f66565b6000600160a060020a03166120c388600160a060020a0316633e8ff43f6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561209057600080fd5b505af11580156120a4573d6000803e3d6000fd5b505050506040513d60208110156120ba57600080fd5b50518686610b9c565b600160a060020a03161415979650505050505050565b600081600160a060020a031682600160a060020a031663fc0c546a6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561212357600080fd5b505af1158015612137573d6000803e3d6000fd5b505050506040513d602081101561214d57600080fd5b5051604080517f8da5cb5b0000000000000000000000000000000000000000000000000000000081529051600160a060020a0390921691638da5cb5b916004808201926020929091908290030181600087803b1580156121ac57600080fd5b505af11580156121c0573d6000803e3d6000fd5b505050506040513d60208110156121d657600080fd5b5051600160a060020a03161492915050565b600054600160a060020a03163314806122075750612205816120d9565b155b151561224b576040805160e560020a62461bcd02815260206004820152601160248201526000805160206133ff833981519152604482015290519081900360640190fd5b611c8b81612d73565b6000610c9a82611512565b6000610c9a82611232565b600061228360008051602061341f83398151915261264a565b600160a060020a031663a74498aa836040518263ffffffff1660e060020a02815260040180828152602001915050602060405180830381600087803b1580156111f557600080fd5b6122d36125f8565b6003546002805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055565b600061231d60008051602061341f83398151915261264a565b604080517f725b8786000000000000000000000000000000000000000000000000000000008152600160a060020a03868116600483015285811660248301529151929091169163725b8786916044808201926020929091908290030181600087803b158015611a5c57600080fd5b6000611c9a60018484610b9c565b60006123b260008051602061341f83398151915261264a565b600160a060020a031663e571049b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015611bea57600080fd5b600154600160a060020a031681565b6000611c9a83836119e1565b600061242360008051602061341f83398151915261264a565b600160a060020a0316634123ef60836040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b1580156111f557600080fd5b6000610a93612399565b60006124a060008051602061341f83398151915261264a565b600160a060020a031663e85455d7836040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b1580156111f557600080fd5b606061251360008051602061341f83398151915261264a565b600160a060020a03166304ceaf416040518163ffffffff1660e060020a028152600401600060405180830381600087803b15801561195157600080fd5b6125586125f8565b600054600160a060020a03828116911614156125be576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f53414d455f4f574e4552000000000000000000000000000000000000604482015290519081900360640190fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6060610c9a82610a98565b600054600160a060020a03163314612648576040805160e560020a62461bcd02815260206004820152601160248201526000805160206133ff833981519152604482015290519081900360640190fd5b565b600254604080517fbb34534c000000000000000000000000000000000000000000000000000000008152600481018490529051600092600160a060020a03169163bb34534c91602480830192602092919082900301818787803b1580156111f557600080fd5b606060008060008060006126d160008051602061341f83398151915261264a565b945084600160a060020a031663a43d5e948860008151811015156126f157fe5b906020019060200201516040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b15801561274657600080fd5b505af115801561275a573d6000803e3d6000fd5b505050506040513d602081101561277057600080fd5b5051935060009250600191505b86518210156128405784600160a060020a031663a43d5e9488848151811015156127a357fe5b906020019060200201516040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b1580156127f857600080fd5b505af115801561280c573d6000803e3d6000fd5b505050506040513d602081101561282257600080fd5b5051905080841115612835578093508192505b60019091019061277d565b84600160a060020a031663f4fb86c0888581518110151561285d57fe5b906020019060200201516040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b1580156128b257600080fd5b505af11580156128c6573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260208110156128ef57600080fd5b81019080805164010000000081111561290757600080fd5b8201602081018481111561291a57600080fd5b815185602082028301116401000000008211171561293757600080fd5b50909b9a5050505050505050505050565b60008085600160a060020a0316633e8ff43f6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561298957600080fd5b505af115801561299d573d6000803e3d6000fd5b505050506040513d60208110156129b357600080fd5b505161ffff8681169116146129cb5760009150612ab8565b85600160a060020a03166371f52bf36040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015612a0957600080fd5b505af1158015612a1d573d6000803e3d6000fd5b505050506040513d6020811015612a3357600080fd5b5051845161ffff90911614612a4b5760009150612ab8565b5060005b8351811015612ab357612a79868583815181101515612a6a57fe5b90602001906020020151612ca2565b63ffffffff168382815181101515612a8d57fe5b6020908102909101015163ffffffff1614612aab5760009150612ab8565b600101612a4f565b600191505b50949350505050565b600080600080612ade60008051602061341f83398151915261264a565b935084600160a060020a031663fc0c546a6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015612b1e57600080fd5b505af1158015612b32573d6000803e3d6000fd5b505050506040513d6020811015612b4857600080fd5b5051604080517f71f52bf30000000000000000000000000000000000000000000000000000000081529051919450600160a060020a038716916371f52bf3916004808201926020929091908290030181600087803b158015612ba957600080fd5b505af1158015612bbd573d6000803e3d6000fd5b505050506040513d6020811015612bd357600080fd5b505161ffff169150612be58484612f4d565b6001821115612bfd57612bf8848461302c565b612c08565b612c088484856130d7565b5060005b81811015612c9b57612c938486600160a060020a03166319b64015846040518263ffffffff1660e060020a02815260040180828152602001915050602060405180830381600087803b158015612c6157600080fd5b505af1158015612c75573d6000803e3d6000fd5b505050506040513d6020811015612c8b57600080fd5b5051856130d7565b600101612c0c565b5050505050565b6000612cac6133e3565b604080517f636f6e6e6563746f72732861646472657373290000000000000000000000000081528151908190036013018120600160a060020a03861660248084019190915283518084039091018152604490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090921691909117815281519192918491885afa801515612d6657600080fd5b5050602001519392505050565b600080600080612d9060008051602061341f83398151915261264a565b935084600160a060020a031663fc0c546a6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015612dd057600080fd5b505af1158015612de4573d6000803e3d6000fd5b505050506040513d6020811015612dfa57600080fd5b5051604080517f71f52bf30000000000000000000000000000000000000000000000000000000081529051919450600160a060020a038716916371f52bf3916004808201926020929091908290030181600087803b158015612e5b57600080fd5b505af1158015612e6f573d6000803e3d6000fd5b505050506040513d6020811015612e8557600080fd5b505161ffff169150612e978484613198565b6001821115612eaf57612eaa8484613277565b612eba565b612eba848485613322565b5060005b81811015612c9b57612f458486600160a060020a03166319b64015846040518263ffffffff1660e060020a02815260040180828152602001915050602060405180830381600087803b158015612f1357600080fd5b505af1158015612f27573d6000803e3d6000fd5b505050506040513d6020811015612f3d57600080fd5b505185613322565b600101612ebe565b81600160a060020a0316638de6c3eb826040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b158015612fa857600080fd5b505af1158015612fbc573d6000803e3d6000fd5b5050604051600160a060020a03841692507fc0a6d303d67b7ed9fa0abae1c48878df32acc0e7ca4334c7dad2bceeee5956fd9150600090a2604051600160a060020a038216907f88881feecdf61136ac4bdb1f681f2f3746a82910263d21ffea94750d2a78c0ab90600090a25050565b81600160a060020a031663ee6a934c826040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b15801561308757600080fd5b505af115801561309b573d6000803e3d6000fd5b5050604051600160a060020a03841692507fb893f883ef734b712208a877459424ee509832c57e0461fb1ac99ed4d42f2d899150600090a25050565b604080517f36900c11000000000000000000000000000000000000000000000000000000008152600160a060020a03848116600483015283811660248301529151918516916336900c119160448082019260009290919082900301818387803b15801561314357600080fd5b505af1158015613157573d6000803e3d6000fd5b5050604051600160a060020a038085169350851691507ff2e7cf6d6ed3f77039511409a43d4fa5108f09ab71d72b014380364c910233a590600090a3505050565b81600160a060020a031663ceb9838c826040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b1580156131f357600080fd5b505af1158015613207573d6000803e3d6000fd5b5050604051600160a060020a03841692507fbfdf1baaa7e4871111360083540f067050014f651c9e4610a2a4a4bdf8bfab5d9150600090a2604051600160a060020a038216907f2aff63790c7da80d1c50ede92d23bc841c384837735c92c184331f3d7b91e5bf90600090a25050565b81600160a060020a031663ae22107f826040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b1580156132d257600080fd5b505af11580156132e6573d6000803e3d6000fd5b5050604051600160a060020a03841692507f59c3fbcae88f30e9b0e35c132a7f68c53231dffa4722f197c7ecb0ee013eee609150600090a25050565b604080517ffba8f031000000000000000000000000000000000000000000000000000000008152600160a060020a038481166004830152838116602483015291519185169163fba8f0319160448082019260009290919082900301818387803b15801561338e57600080fd5b505af11580156133a2573d6000803e3d6000fd5b5050604051600160a060020a038085169350851691507f9430ad6ff45d6c3e126c7711bf0036bd9bc6b202fa19628abd88e59cf43ced4390600090a3505050565b6040805180820182529060029082908038833950919291505056004552525f4143434553535f44454e494544000000000000000000000000000000536f7672796e53776170436f6e76657274657252656769737472794461746100a165627a7a72305820a3ff8d616a609f2f0d2014995d930b7884b0bb7a8f1a97baf9787a10eed69c8a0029", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x200 JUMPI PUSH4 0xFFFFFFFF PUSH1 0xE0 PUSH1 0x2 EXP PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x24C7EC7 DUP2 EQ PUSH2 0x205 JUMPI DUP1 PUSH4 0x4CEAF41 EQ PUSH2 0x221 JUMPI DUP1 PUSH4 0x11839064 EQ PUSH2 0x286 JUMPI DUP1 PUSH4 0x1D3FCCD5 EQ PUSH2 0x2A7 JUMPI DUP1 PUSH4 0x1F8E2620 EQ PUSH2 0x35A JUMPI DUP1 PUSH4 0x295D2A21 EQ PUSH2 0x3AF JUMPI DUP1 PUSH4 0x2FE8A6AD EQ PUSH2 0x451 JUMPI DUP1 PUSH4 0x3AB8857C EQ PUSH2 0x47A JUMPI DUP1 PUSH4 0x4123EF60 EQ PUSH2 0x49B JUMPI DUP1 PUSH4 0x49C5F32B EQ PUSH2 0x4BC JUMPI DUP1 PUSH4 0x49D10B64 EQ PUSH2 0x4EF JUMPI DUP1 PUSH4 0x4C7DF18F EQ PUSH2 0x504 JUMPI DUP1 PUSH4 0x5A0A6618 EQ PUSH2 0x51C JUMPI DUP1 PUSH4 0x5F1B50FE EQ PUSH2 0x646 JUMPI DUP1 PUSH4 0x603F51E4 EQ PUSH2 0x65B JUMPI DUP1 PUSH4 0x610C0B05 EQ PUSH2 0x67F JUMPI DUP1 PUSH4 0x61CD756E EQ PUSH2 0x6D4 JUMPI DUP1 PUSH4 0x69BE4784 EQ PUSH2 0x6E9 JUMPI DUP1 PUSH4 0x6CE1C4DC EQ PUSH2 0x6FE JUMPI DUP1 PUSH4 0x725B8786 EQ PUSH2 0x71F JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x746 JUMPI DUP1 PUSH4 0x7A5F0FFD EQ PUSH2 0x75B JUMPI DUP1 PUSH4 0x7B103999 EQ PUSH2 0x770 JUMPI DUP1 PUSH4 0x7F45C4C3 EQ PUSH2 0x785 JUMPI DUP1 PUSH4 0x865CF194 EQ PUSH2 0x79A JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x7B2 JUMPI DUP1 PUSH4 0x8F1D0E1A EQ PUSH2 0x7C7 JUMPI DUP1 PUSH4 0x954254F5 EQ PUSH2 0x7E8 JUMPI DUP1 PUSH4 0x9E76A007 EQ PUSH2 0x809 JUMPI DUP1 PUSH4 0xA109D214 EQ PUSH2 0x82A JUMPI DUP1 PUSH4 0xA43D5E94 EQ PUSH2 0x842 JUMPI DUP1 PUSH4 0xA74498AA EQ PUSH2 0x863 JUMPI DUP1 PUSH4 0xB4A176D3 EQ PUSH2 0x87B JUMPI DUP1 PUSH4 0xB4C4197A EQ PUSH2 0x890 JUMPI DUP1 PUSH4 0xC22B82F0 EQ PUSH2 0x8B7 JUMPI DUP1 PUSH4 0xD3182BED EQ PUSH2 0x945 JUMPI DUP1 PUSH4 0xD4EE1D90 EQ PUSH2 0x95A JUMPI DUP1 PUSH4 0xD6C4B5B2 EQ PUSH2 0x96F JUMPI DUP1 PUSH4 0xD8CCED2A EQ PUSH2 0x993 JUMPI DUP1 PUSH4 0xE571049B EQ PUSH2 0x9B4 JUMPI DUP1 PUSH4 0xE85455D7 EQ PUSH2 0x9C9 JUMPI DUP1 PUSH4 0xEFFB3C6E EQ PUSH2 0x9EA JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x9FF JUMPI DUP1 PUSH4 0xF4FB86C0 EQ PUSH2 0xA20 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x211 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x21F PUSH1 0x4 CALLDATALOAD ISZERO ISZERO PUSH2 0xA41 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x22D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x236 PUSH2 0xA89 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP4 MLOAD DUP2 DUP4 ADD MSTORE DUP4 MLOAD SWAP2 SWAP3 DUP4 SWAP3 SWAP1 DUP4 ADD SWAP2 DUP6 DUP2 ADD SWAP2 MUL DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x272 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x25A JUMP JUMPDEST POP POP POP POP SWAP1 POP ADD SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x292 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x236 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0xA98 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2B3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 PUSH1 0x24 DUP1 CALLDATALOAD DUP3 DUP2 ADD CALLDATALOAD DUP5 DUP2 MUL DUP1 DUP8 ADD DUP7 ADD SWAP1 SWAP8 MSTORE DUP1 DUP7 MSTORE PUSH2 0x33E SWAP7 DUP5 CALLDATALOAD PUSH2 0xFFFF AND SWAP7 CALLDATASIZE SWAP7 PUSH1 0x44 SWAP6 SWAP2 SWAP5 SWAP1 SWAP2 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP POP PUSH1 0x40 DUP1 MLOAD DUP8 CALLDATALOAD DUP10 ADD DUP1 CALLDATALOAD PUSH1 0x20 DUP2 DUP2 MUL DUP5 DUP2 ADD DUP3 ADD SWAP1 SWAP6 MSTORE DUP2 DUP5 MSTORE SWAP9 SWAP12 SWAP11 SWAP10 DUP10 ADD SWAP9 SWAP3 SWAP8 POP SWAP1 DUP3 ADD SWAP6 POP SWAP4 POP DUP4 SWAP3 POP DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP PUSH2 0xB9C SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x366 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x236 SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP PUSH2 0xC8F SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3BB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 PUSH1 0x24 DUP1 CALLDATALOAD DUP3 DUP2 ADD CALLDATALOAD DUP5 DUP2 MUL DUP1 DUP8 ADD DUP7 ADD SWAP1 SWAP8 MSTORE DUP1 DUP7 MSTORE PUSH2 0x33E SWAP7 DUP5 CALLDATALOAD PUSH2 0xFFFF AND SWAP7 CALLDATASIZE SWAP7 PUSH1 0x44 SWAP6 SWAP2 SWAP5 SWAP1 SWAP2 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP POP PUSH1 0x40 DUP1 MLOAD DUP8 CALLDATALOAD DUP10 ADD DUP1 CALLDATALOAD PUSH1 0x20 DUP2 DUP2 MUL DUP5 DUP2 ADD DUP3 ADD SWAP1 SWAP6 MSTORE DUP2 DUP5 MSTORE SWAP9 SWAP12 SWAP11 SWAP10 DUP10 ADD SWAP9 SWAP3 SWAP8 POP SWAP1 DUP3 ADD SWAP6 POP SWAP4 POP DUP4 SWAP3 POP DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP POP POP SWAP3 CALLDATALOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP4 POP PUSH2 0xCA0 SWAP3 POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x45D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x466 PUSH2 0x1161 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x486 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x466 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x1182 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4A7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x466 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x1227 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4C8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4DD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x1232 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4FB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x21F PUSH2 0x12A5 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x510 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x33E PUSH1 0x4 CALLDATALOAD PUSH2 0x1512 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x528 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 PUSH1 0x24 DUP1 CALLDATALOAD DUP3 DUP2 ADD CALLDATALOAD PUSH1 0x1F DUP2 ADD DUP6 SWAP1 DIV DUP6 MUL DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP6 DUP6 MSTORE PUSH2 0x33E SWAP6 DUP4 CALLDATALOAD PUSH2 0xFFFF AND SWAP6 CALLDATASIZE SWAP6 PUSH1 0x44 SWAP5 SWAP2 SWAP4 SWAP1 SWAP2 ADD SWAP2 SWAP1 DUP2 SWAP1 DUP5 ADD DUP4 DUP3 DUP1 DUP3 DUP5 CALLDATACOPY POP POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x1F DUP10 CALLDATALOAD DUP12 ADD DUP1 CALLDATALOAD SWAP2 DUP3 ADD DUP4 SWAP1 DIV DUP4 MUL DUP5 ADD DUP4 ADD SWAP1 SWAP5 MSTORE DUP1 DUP4 MSTORE SWAP8 SWAP11 SWAP10 SWAP9 DUP2 ADD SWAP8 SWAP2 SWAP7 POP SWAP2 DUP3 ADD SWAP5 POP SWAP3 POP DUP3 SWAP2 POP DUP5 ADD DUP4 DUP3 DUP1 DUP3 DUP5 CALLDATACOPY POP POP PUSH1 0x40 DUP1 MLOAD DUP2 DUP9 ADD CALLDATALOAD DUP10 ADD DUP1 CALLDATALOAD PUSH1 0x20 DUP2 DUP2 MUL DUP5 DUP2 ADD DUP3 ADD SWAP1 SWAP6 MSTORE DUP2 DUP5 MSTORE SWAP9 SWAP12 PUSH1 0xFF DUP12 CALLDATALOAD AND SWAP12 PUSH4 0xFFFFFFFF DUP12 DUP14 ADD CALLDATALOAD AND SWAP12 SWAP2 SWAP11 SWAP1 SWAP10 POP PUSH1 0x60 SWAP1 SWAP2 ADD SWAP8 POP SWAP3 SWAP6 POP SWAP1 DUP3 ADD SWAP4 POP SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP POP PUSH1 0x40 DUP1 MLOAD DUP8 CALLDATALOAD DUP10 ADD DUP1 CALLDATALOAD PUSH1 0x20 DUP2 DUP2 MUL DUP5 DUP2 ADD DUP3 ADD SWAP1 SWAP6 MSTORE DUP2 DUP5 MSTORE SWAP9 SWAP12 SWAP11 SWAP10 DUP10 ADD SWAP9 SWAP3 SWAP8 POP SWAP1 DUP3 ADD SWAP6 POP SWAP4 POP DUP4 SWAP3 POP DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP PUSH2 0x1573 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x652 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x236 PUSH2 0x18FB JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x667 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x33E PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x19E1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x68B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x236 SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP PUSH2 0x1A8F SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6E0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x33E PUSH2 0x1B85 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4DD PUSH2 0x1B94 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x70A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x21F PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x1C1B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x72B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x466 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH2 0x1C8E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x752 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x21F PUSH2 0x1CA1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x767 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4DD PUSH2 0x1D62 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x77C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x33E PUSH2 0x1DB8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x791 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x236 PUSH2 0x1DC7 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7A6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x33E PUSH1 0x4 CALLDATALOAD PUSH2 0x1E1D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7BE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x33E PUSH2 0x1E7E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7D3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x466 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x1E8D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7F4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x466 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x20D9 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x815 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x21F PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x21E8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x836 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x33E PUSH1 0x4 CALLDATALOAD PUSH2 0x2254 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x84E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4DD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x225F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x86F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x33E PUSH1 0x4 CALLDATALOAD PUSH2 0x226A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x887 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x21F PUSH2 0x22CB JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x89C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x466 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH2 0x2304 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8C3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x33E SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP POP PUSH1 0x40 DUP1 MLOAD DUP8 CALLDATALOAD DUP10 ADD DUP1 CALLDATALOAD PUSH1 0x20 DUP2 DUP2 MUL DUP5 DUP2 ADD DUP3 ADD SWAP1 SWAP6 MSTORE DUP2 DUP5 MSTORE SWAP9 SWAP12 SWAP11 SWAP10 DUP10 ADD SWAP9 SWAP3 SWAP8 POP SWAP1 DUP3 ADD SWAP6 POP SWAP4 POP DUP4 SWAP3 POP DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP PUSH2 0x238B SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x951 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4DD PUSH2 0x2399 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x966 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x33E PUSH2 0x23EF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x97B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x33E PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x23FE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x99F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x466 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x240A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9C0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4DD PUSH2 0x247D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9D5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x466 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x2487 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9F6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x236 PUSH2 0x24FA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA0B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x21F PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x2550 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA2C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x236 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x25ED JUMP JUMPDEST PUSH2 0xA49 PUSH2 0x25F8 JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD SWAP2 ISZERO ISZERO PUSH21 0x10000000000000000000000000000000000000000 MUL PUSH21 0xFF0000000000000000000000000000000000000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x60 PUSH2 0xA93 PUSH2 0x24FA JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH2 0xAB1 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x341F DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x264A JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xF4FB86C0 DUP4 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xB0B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xB1F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xB48 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 MLOAD PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0xB60 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD PUSH1 0x20 DUP2 ADD DUP5 DUP2 GT ISZERO PUSH2 0xB73 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP6 PUSH1 0x20 DUP3 MUL DUP4 ADD GT PUSH5 0x100000000 DUP3 GT OR ISZERO PUSH2 0xB90 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP SWAP1 SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 MLOAD DUP8 MLOAD EQ DUP1 ISZERO PUSH2 0xBB7 JUMPI POP PUSH1 0x1 DUP8 MLOAD GT JUMPDEST ISZERO PUSH2 0xC7F JUMPI PUSH2 0xBC5 DUP8 PUSH2 0x26B0 JUMP JUMPDEST SWAP4 POP PUSH1 0x0 SWAP3 POP JUMPDEST DUP4 MLOAD DUP4 LT ISZERO PUSH2 0xC7F JUMPI DUP4 DUP4 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xBE3 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD SWAP2 POP DUP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x8DA5CB5B PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC2D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xC41 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xC57 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 POP PUSH2 0xC67 DUP2 DUP10 DUP10 DUP10 PUSH2 0x2948 JUMP JUMPDEST ISZERO PUSH2 0xC74 JUMPI DUP2 SWAP5 POP PUSH2 0xC84 JUMP JUMPDEST PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 PUSH2 0xBCC JUMP JUMPDEST PUSH1 0x0 SWAP5 POP JUMPDEST POP POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0xC9A DUP3 PUSH2 0x1A8F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD SWAP1 SWAP2 DUP3 SWAP2 DUP3 SWAP2 DUP3 SWAP2 AND CALLER EQ PUSH2 0xD3F JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x30 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x6F6E6C7920746865206465706C6F796572206D61792066696E69736820746865 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x20636F6E76657274657220736574757000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x84 ADD SWAP1 REVERT JUMPDEST DUP7 MLOAD DUP7 MLOAD SWAP1 SWAP4 POP DUP4 EQ PUSH2 0xD9C JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245534552564553000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xDA9 DUP10 DUP10 DUP10 PUSH2 0xB9C JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ PUSH2 0xE07 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F414C52454144595F4558495354530000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xD3FB73B4 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xE45 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xE59 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xE6F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x79BA509700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP4 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP2 PUSH4 0x79BA5097 SWAP2 PUSH1 0x4 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xECF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xEE3 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x79BA5097 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xF25 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xF39 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x0 SWAP1 POP JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x100B JUMPI DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x6A49D2C4 DUP9 DUP4 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xF67 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD DUP9 DUP5 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xF7F JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 PUSH4 0xFFFFFFFF AND PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xFE7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xFFB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 POP PUSH2 0xF42 SWAP1 POP JUMP JUMPDEST DUP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xF2FDE38B DUP7 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1066 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x107A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xCDC91C69 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x10BC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x10D0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 DUP1 MLOAD PUSH32 0xF2FDE38B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP10 AND SWAP4 POP PUSH4 0xF2FDE38B SWAP3 POP PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1134 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1148 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x1155 DUP6 PUSH2 0x2AC1 JUMP JUMPDEST POP SWAP3 SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x119B PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x341F DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x264A JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x3AB8857C DUP4 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x11F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1209 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x121F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xC9A DUP3 PUSH2 0x240A JUMP JUMPDEST PUSH1 0x0 PUSH2 0x124B PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x341F DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x264A JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xA43D5E94 DUP4 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x11F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ DUP1 PUSH2 0x12DA JUMPI POP PUSH1 0x3 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x131E JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x33FF DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x1347 PUSH32 0x436F6E7472616374526567697374727900000000000000000000000000000000 PUSH2 0x264A JUMP JUMPDEST PUSH1 0x2 SLOAD SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP4 AND SWAP2 AND EQ DUP1 ISZERO SWAP1 PUSH2 0x1370 JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x13C6 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245474953545259000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0xBB34534C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH32 0x436F6E7472616374526567697374727900000000000000000000000000000000 PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP2 PUSH4 0xBB34534C SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x144A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x145E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1474 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ ISZERO PUSH2 0x14D5 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245474953545259000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP5 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP3 DUP4 AND OR SWAP1 SWAP3 SSTORE SWAP1 SWAP2 AND SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH2 0x152B PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x341F DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x264A JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xA109D214 DUP4 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x11F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP7 MLOAD SWAP4 POP DUP6 MLOAD DUP5 EQ ISZERO ISZERO PUSH2 0x15D9 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245534552564553000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x15E6 DUP14 DUP10 DUP10 PUSH2 0xB9C JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ PUSH2 0x1644 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F414C52454144595F4558495354530000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x166D PUSH32 0x436F6E766572746572466163746F727900000000000000000000000000000000 PUSH2 0x264A JUMP JUMPDEST SWAP3 POP DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x2E9AB7B3 DUP14 DUP14 DUP14 DUP14 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP6 PUSH2 0xFFFF AND PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP5 PUSH1 0xFF AND PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 SUB DUP4 MSTORE DUP7 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x16EF JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x16D7 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x171C JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP DUP4 DUP2 SUB DUP3 MSTORE DUP6 MLOAD DUP2 MSTORE DUP6 MLOAD PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 DUP8 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x174F JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x1737 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x177C JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP7 POP POP POP POP POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x179F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x17B3 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x17C9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP SWAP2 POP DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x15F64B6A DUP14 DUP5 PUSH1 0x2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP13 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP6 PUSH2 0xFFFF AND PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 PUSH4 0xFFFFFFFF AND PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP5 POP POP POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x188A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x189E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x18B4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND CALLER OR SWAP1 SSTORE SWAP13 SWAP12 POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x1914 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x341F DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x264A JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x5F1B50FE PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1951 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1965 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x198E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 MLOAD PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x19A6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD PUSH1 0x20 DUP2 ADD DUP5 DUP2 GT ISZERO PUSH2 0x19B9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP6 PUSH1 0x20 DUP3 MUL DUP4 ADD GT PUSH5 0x100000000 DUP3 GT OR ISZERO PUSH2 0x19D6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP SWAP1 SWAP5 POP POP POP POP POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x19FA PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x341F DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x264A JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xD6C4B5B2 DUP5 DUP5 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1A5C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1A70 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1A86 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP1 PUSH1 0x0 DUP4 MLOAD PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x1ABF JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CODESIZE DUP4 CODECOPY ADD SWAP1 POP JUMPDEST POP SWAP2 POP PUSH1 0x0 SWAP1 POP JUMPDEST DUP4 MLOAD DUP2 LT ISZERO PUSH2 0x1B7E JUMPI DUP4 DUP2 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x1ADE JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x8DA5CB5B PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1B25 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1B39 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1B4F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD DUP3 MLOAD DUP4 SWAP1 DUP4 SWAP1 DUP2 LT PUSH2 0x1B5F JUMPI INVALID JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND PUSH1 0x20 SWAP3 DUP4 MUL SWAP1 SWAP2 ADD SWAP1 SWAP2 ADD MSTORE PUSH1 0x1 ADD PUSH2 0x1AC7 JUMP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1BAD PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x341F DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x264A JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x69BE4784 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1BEA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1BFE JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1C14 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x1C23 PUSH2 0x25F8 JUMP JUMPDEST PUSH2 0x1C2C DUP2 PUSH2 0x20D9 JUMP JUMPDEST ISZERO ISZERO PUSH2 0x1C82 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F434F4E5645525445520000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x1C8B DUP2 PUSH2 0x2AC1 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1C9A DUP4 DUP4 PUSH2 0x2304 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x1CF1 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x33FF DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND SWAP4 SWAP1 SWAP2 AND SWAP2 PUSH32 0x343765429AEA5A34B3FF6A3785A98A5ABB2597ACA87BFBB58632C173D585373A SWAP2 LOG3 PUSH1 0x1 DUP1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND OR SWAP1 SWAP2 SSTORE AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1D7B PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x341F DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x264A JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x7A5F0FFD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1BEA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x60 PUSH2 0x1DE0 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x341F DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x264A JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x7F45C4C3 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1951 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1E36 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x341F DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x264A JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x865CF194 DUP4 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x11F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x60 DUP1 PUSH1 0x0 DUP1 DUP7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x71F52BF3 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1ED4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1EE8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1EFE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH2 0xFFFF SWAP1 SWAP3 AND DUP1 DUP4 MSTORE PUSH1 0x20 DUP2 DUP2 MUL DUP5 ADD ADD SWAP1 SWAP2 MSTORE SWAP6 POP DUP6 DUP1 ISZERO PUSH2 0x1F31 JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CODESIZE DUP4 CODECOPY ADD SWAP1 POP JUMPDEST POP SWAP4 POP DUP5 PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x1F5E JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CODESIZE DUP4 CODECOPY ADD SWAP1 POP JUMPDEST POP SWAP3 POP PUSH1 0x0 SWAP2 POP JUMPDEST DUP5 DUP3 LT ISZERO PUSH2 0x2044 JUMPI DUP7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x19B64015 DUP4 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1FB7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1FCB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1FE1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD DUP5 MLOAD SWAP1 SWAP2 POP DUP2 SWAP1 DUP6 SWAP1 DUP5 SWAP1 DUP2 LT PUSH2 0x1FF6 JUMPI INVALID JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND PUSH1 0x20 SWAP3 DUP4 MUL SWAP1 SWAP2 ADD SWAP1 SWAP2 ADD MSTORE PUSH2 0x2017 DUP8 DUP3 PUSH2 0x2CA2 JUMP JUMPDEST DUP4 DUP4 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x2025 JUMPI INVALID JUMPDEST PUSH4 0xFFFFFFFF SWAP1 SWAP3 AND PUSH1 0x20 SWAP3 DUP4 MUL SWAP1 SWAP2 ADD SWAP1 SWAP2 ADD MSTORE PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x1F66 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x20C3 DUP9 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x3E8FF43F PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2090 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x20A4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x20BA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD DUP7 DUP7 PUSH2 0xB9C JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ ISZERO SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xFC0C546A PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2123 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2137 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x214D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x8DA5CB5B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP2 PUSH4 0x8DA5CB5B SWAP2 PUSH1 0x4 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x21AC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x21C0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x21D6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ DUP1 PUSH2 0x2207 JUMPI POP PUSH2 0x2205 DUP2 PUSH2 0x20D9 JUMP JUMPDEST ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x224B JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x33FF DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x1C8B DUP2 PUSH2 0x2D73 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xC9A DUP3 PUSH2 0x1512 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xC9A DUP3 PUSH2 0x1232 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2283 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x341F DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x264A JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xA74498AA DUP4 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x11F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x22D3 PUSH2 0x25F8 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x2 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH2 0x231D PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x341F DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x264A JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x725B878600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP6 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE SWAP2 MLOAD SWAP3 SWAP1 SWAP2 AND SWAP2 PUSH4 0x725B8786 SWAP2 PUSH1 0x44 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1A5C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1C9A PUSH1 0x1 DUP5 DUP5 PUSH2 0xB9C JUMP JUMPDEST PUSH1 0x0 PUSH2 0x23B2 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x341F DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x264A JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xE571049B PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1BEA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1C9A DUP4 DUP4 PUSH2 0x19E1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2423 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x341F DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x264A JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x4123EF60 DUP4 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x11F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xA93 PUSH2 0x2399 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x24A0 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x341F DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x264A JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xE85455D7 DUP4 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x11F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x60 PUSH2 0x2513 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x341F DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x264A JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x4CEAF41 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1951 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2558 PUSH2 0x25F8 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x25BE JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F4F574E4552000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x60 PUSH2 0xC9A DUP3 PUSH2 0xA98 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x2648 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x33FF DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xBB34534C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP2 PUSH4 0xBB34534C SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x11F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x26D1 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x341F DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x264A JUMP JUMPDEST SWAP5 POP DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xA43D5E94 DUP9 PUSH1 0x0 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x26F1 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2746 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x275A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2770 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP4 POP PUSH1 0x0 SWAP3 POP PUSH1 0x1 SWAP2 POP JUMPDEST DUP7 MLOAD DUP3 LT ISZERO PUSH2 0x2840 JUMPI DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xA43D5E94 DUP9 DUP5 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x27A3 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x27F8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x280C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2822 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 POP DUP1 DUP5 GT ISZERO PUSH2 0x2835 JUMPI DUP1 SWAP4 POP DUP2 SWAP3 POP JUMPDEST PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x277D JUMP JUMPDEST DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xF4FB86C0 DUP9 DUP6 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x285D JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x28B2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x28C6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x28EF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 MLOAD PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x2907 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD PUSH1 0x20 DUP2 ADD DUP5 DUP2 GT ISZERO PUSH2 0x291A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP6 PUSH1 0x20 DUP3 MUL DUP4 ADD GT PUSH5 0x100000000 DUP3 GT OR ISZERO PUSH2 0x2937 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP SWAP1 SWAP12 SWAP11 POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP6 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x3E8FF43F PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2989 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x299D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x29B3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH2 0xFFFF DUP7 DUP2 AND SWAP2 AND EQ PUSH2 0x29CB JUMPI PUSH1 0x0 SWAP2 POP PUSH2 0x2AB8 JUMP JUMPDEST DUP6 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x71F52BF3 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2A09 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2A1D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2A33 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD DUP5 MLOAD PUSH2 0xFFFF SWAP1 SWAP2 AND EQ PUSH2 0x2A4B JUMPI PUSH1 0x0 SWAP2 POP PUSH2 0x2AB8 JUMP JUMPDEST POP PUSH1 0x0 JUMPDEST DUP4 MLOAD DUP2 LT ISZERO PUSH2 0x2AB3 JUMPI PUSH2 0x2A79 DUP7 DUP6 DUP4 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x2A6A JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH2 0x2CA2 JUMP JUMPDEST PUSH4 0xFFFFFFFF AND DUP4 DUP3 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x2A8D JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MLOAD PUSH4 0xFFFFFFFF AND EQ PUSH2 0x2AAB JUMPI PUSH1 0x0 SWAP2 POP PUSH2 0x2AB8 JUMP JUMPDEST PUSH1 0x1 ADD PUSH2 0x2A4F JUMP JUMPDEST PUSH1 0x1 SWAP2 POP JUMPDEST POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x2ADE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x341F DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x264A JUMP JUMPDEST SWAP4 POP DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xFC0C546A PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2B1E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2B32 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2B48 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x71F52BF300000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP5 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND SWAP2 PUSH4 0x71F52BF3 SWAP2 PUSH1 0x4 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2BA9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2BBD JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2BD3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH2 0xFFFF AND SWAP2 POP PUSH2 0x2BE5 DUP5 DUP5 PUSH2 0x2F4D JUMP JUMPDEST PUSH1 0x1 DUP3 GT ISZERO PUSH2 0x2BFD JUMPI PUSH2 0x2BF8 DUP5 DUP5 PUSH2 0x302C JUMP JUMPDEST PUSH2 0x2C08 JUMP JUMPDEST PUSH2 0x2C08 DUP5 DUP5 DUP6 PUSH2 0x30D7 JUMP JUMPDEST POP PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x2C9B JUMPI PUSH2 0x2C93 DUP5 DUP7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x19B64015 DUP5 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2C61 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2C75 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2C8B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD DUP6 PUSH2 0x30D7 JUMP JUMPDEST PUSH1 0x1 ADD PUSH2 0x2C0C JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2CAC PUSH2 0x33E3 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x636F6E6E6563746F727328616464726573732900000000000000000000000000 DUP2 MSTORE DUP2 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x13 ADD DUP2 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND PUSH1 0x24 DUP1 DUP5 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x44 SWAP1 SWAP3 ADD DUP4 MSTORE PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR DUP2 MSTORE DUP2 MLOAD SWAP2 SWAP3 SWAP2 DUP5 SWAP2 DUP9 GAS STATICCALL DUP1 ISZERO ISZERO PUSH2 0x2D66 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP PUSH1 0x20 ADD MLOAD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x2D90 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x341F DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x264A JUMP JUMPDEST SWAP4 POP DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xFC0C546A PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2DD0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2DE4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2DFA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x71F52BF300000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP5 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND SWAP2 PUSH4 0x71F52BF3 SWAP2 PUSH1 0x4 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2E5B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2E6F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2E85 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH2 0xFFFF AND SWAP2 POP PUSH2 0x2E97 DUP5 DUP5 PUSH2 0x3198 JUMP JUMPDEST PUSH1 0x1 DUP3 GT ISZERO PUSH2 0x2EAF JUMPI PUSH2 0x2EAA DUP5 DUP5 PUSH2 0x3277 JUMP JUMPDEST PUSH2 0x2EBA JUMP JUMPDEST PUSH2 0x2EBA DUP5 DUP5 DUP6 PUSH2 0x3322 JUMP JUMPDEST POP PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x2C9B JUMPI PUSH2 0x2F45 DUP5 DUP7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x19B64015 DUP5 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2F13 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2F27 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2F3D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD DUP6 PUSH2 0x3322 JUMP JUMPDEST PUSH1 0x1 ADD PUSH2 0x2EBE JUMP JUMPDEST DUP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x8DE6C3EB DUP3 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2FA8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2FBC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP3 POP PUSH32 0xC0A6D303D67B7ED9FA0ABAE1C48878DF32ACC0E7CA4334C7DAD2BCEEEE5956FD SWAP2 POP PUSH1 0x0 SWAP1 LOG2 PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 AND SWAP1 PUSH32 0x88881FEECDF61136AC4BDB1F681F2F3746A82910263D21FFEA94750D2A78C0AB SWAP1 PUSH1 0x0 SWAP1 LOG2 POP POP JUMP JUMPDEST DUP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xEE6A934C DUP3 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3087 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x309B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP3 POP PUSH32 0xB893F883EF734B712208A877459424EE509832C57E0461FB1AC99ED4D42F2D89 SWAP2 POP PUSH1 0x0 SWAP1 LOG2 POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x36900C1100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP4 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE SWAP2 MLOAD SWAP2 DUP6 AND SWAP2 PUSH4 0x36900C11 SWAP2 PUSH1 0x44 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3143 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3157 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP6 AND SWAP4 POP DUP6 AND SWAP2 POP PUSH32 0xF2E7CF6D6ED3F77039511409A43D4FA5108F09AB71D72B014380364C910233A5 SWAP1 PUSH1 0x0 SWAP1 LOG3 POP POP POP JUMP JUMPDEST DUP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xCEB9838C DUP3 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x31F3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3207 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP3 POP PUSH32 0xBFDF1BAAA7E4871111360083540F067050014F651C9E4610A2A4A4BDF8BFAB5D SWAP2 POP PUSH1 0x0 SWAP1 LOG2 PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 AND SWAP1 PUSH32 0x2AFF63790C7DA80D1C50EDE92D23BC841C384837735C92C184331F3D7B91E5BF SWAP1 PUSH1 0x0 SWAP1 LOG2 POP POP JUMP JUMPDEST DUP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xAE22107F DUP3 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x32D2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x32E6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP3 POP PUSH32 0x59C3FBCAE88F30E9B0E35C132A7F68C53231DFFA4722F197C7ECB0EE013EEE60 SWAP2 POP PUSH1 0x0 SWAP1 LOG2 POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0xFBA8F03100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP4 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE SWAP2 MLOAD SWAP2 DUP6 AND SWAP2 PUSH4 0xFBA8F031 SWAP2 PUSH1 0x44 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x338E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x33A2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP6 AND SWAP4 POP DUP6 AND SWAP2 POP PUSH32 0x9430AD6FF45D6C3E126C7711BF0036BD9BC6B202FA19628ABD88E59CF43CED43 SWAP1 PUSH1 0x0 SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD DUP3 MSTORE SWAP1 PUSH1 0x2 SWAP1 DUP3 SWAP1 DUP1 CODESIZE DUP4 CODECOPY POP SWAP2 SWAP3 SWAP2 POP POP JUMP STOP GASLIMIT MSTORE MSTORE 0x5f COINBASE NUMBER NUMBER GASLIMIT MSTORE8 MSTORE8 0x5f DIFFICULTY GASLIMIT 0x4e 0x49 GASLIMIT DIFFICULTY STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP MSTORE8 PUSH16 0x7672796E53776170436F6E7665727465 PUSH19 0x52656769737472794461746100A165627A7A72 ADDRESS PC KECCAK256 LOG3 SELFDESTRUCT DUP14 PUSH2 0x6A60 SWAP16 0x2f 0xd KECCAK256 EQ SWAP10 0x5d SWAP4 SIGNEXTEND PUSH25 0x84B0BB7A8F1A97BAF9787A10EED69C8A002900000000000000 ", - "sourceMap": "1278:22622:6:-;;;;;;;;;-1:-1:-1;;;1278:22622:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3280:206:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3280:206:60;;;;;;;;;21876:85:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;21876:85:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;21876:85:6;;;;;;;;;;;;;;;;;10964:218;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;10964:218:6;-1:-1:-1;;;;;10964:218:6;;;;;14425:883;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;14425:883:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;14425:883:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;14425:883:6;;;;-1:-1:-1;14425:883:6;-1:-1:-1;14425:883:6;;-1:-1:-1;14425:883:6;;;;;;;;;-1:-1:-1;14425:883:6;;-1:-1:-1;14425:883:6;;-1:-1:-1;;;;;;;14425:883:6;;;;;-1:-1:-1;;;;;14425:883:6;;;;;;;;;;;;;;23434:143;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;23434:143:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;23434:143:6;;-1:-1:-1;23434:143:6;;-1:-1:-1;;;;;;;23434:143:6;5068:901;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;5068:901:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;5068:901:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5068:901:6;;;;-1:-1:-1;5068:901:6;-1:-1:-1;5068:901:6;;-1:-1:-1;5068:901:6;;;;;;;;;-1:-1:-1;5068:901:6;;-1:-1:-1;;;5068:901:6;;-1:-1:-1;;;;;5068:901:6;;-1:-1:-1;5068:901:6;;-1:-1:-1;;;5068:901:6;1250:38:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1250:38:60;;;;;;;;;;;;;;;;;;;;;;10115:171:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;10115:171:6;-1:-1:-1;;;;;10115:171:6;;;;;22209:96;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;22209:96:6;-1:-1:-1;;;;;22209:96:6;;;;;10515:224;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;10515:224:6;-1:-1:-1;;;;;10515:224:6;;;;;;;;;;;;;;;;;;;;;2080:832:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2080:832:60;;;;7358:160:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;7358:160:6;;;;;3798:902;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3798:902:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3798:902:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3798:902:6;;;;-1:-1:-1;3798:902:6;-1:-1:-1;3798:902:6;;-1:-1:-1;3798:902:6;;;;;;;;-1:-1:-1;;3798:902:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3798:902:6;;;;;-1:-1:-1;3798:902:6;;-1:-1:-1;3798:902:6;;;;-1:-1:-1;3798:902:6;;;;;;;;;;;;-1:-1:-1;;3798:902:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3798:902:6;;;;-1:-1:-1;3798:902:6;-1:-1:-1;3798:902:6;;-1:-1:-1;3798:902:6;;;;;;;;;-1:-1:-1;3798:902:6;;-1:-1:-1;3798:902:6;;-1:-1:-1;;;;;;;3798:902:6;9451:160;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9451:160:6;;;;11449:238;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;11449:238:6;-1:-1:-1;;;;;11449:238:6;;;;;;;12452:278;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;12452:278:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12452:278:6;;-1:-1:-1;12452:278:6;;-1:-1:-1;;;;;;;12452:278:6;1165:37:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1165:37:60;;;;9165:166:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9165:166:6;;;;6106:168;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;6106:168:6;-1:-1:-1;;;;;6106:168:6;;;;;23173:174;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;23173:174:6;-1:-1:-1;;;;;23173:174:6;;;;;;;;;;1159:176:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1159:176:66;;;;7962:160:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7962:160:6;;;;1085:33:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1085:33:60;;;;8236:154:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8236:154:6;;;;9757:176;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;9757:176:6;;;;;157:20:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;157:20:66;;;;13323:778:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;13323:778:6;-1:-1:-1;;;;;13323:778:6;;;;;12900:181;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;12900:181:6;-1:-1:-1;;;;;12900:181:6;;;;;6526:184;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;6526:184:6;-1:-1:-1;;;;;6526:184:6;;;;;22035:101;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;22035:101:6;;;;;22400:165;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;22400:165:6;-1:-1:-1;;;;;22400:165:6;;;;;8530:170;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;8530:170:6;;;;;2974:119:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2974:119:60;;;;11965:233:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;11965:233:6;-1:-1:-1;;;;;11965:233:6;;;;;;;;;;23666:232;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;23666:232:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;23666:232:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;23666:232:6;;;;-1:-1:-1;23666:232:6;-1:-1:-1;23666:232:6;;-1:-1:-1;23666:232:6;;;;;;;;;-1:-1:-1;23666:232:6;;-1:-1:-1;23666:232:6;;-1:-1:-1;;;;;;;23666:232:6;6822:150;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6822:150:6;;;;180:23:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;180:23:66;;;;22905:179:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;22905:179:6;-1:-1:-1;;;;;22905:179:6;;;;;;;7689:155;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;7689:155:6;-1:-1:-1;;;;;7689:155:6;;;;;21710:91;;8:9:-1;5:2;;;30:1;27;20:12;5:2;21710:91:6;;;;8876:165;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;8876:165:6;-1:-1:-1;;;;;8876:165:6;;;;;7080:144;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7080:144:6;;;;945:140:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;945:140:66;-1:-1:-1;;;;;945:140:66;;;;;22656:159:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;22656:159:6;-1:-1:-1;;;;;22656:159:6;;;;;3280:206:60;575:12:66;:10;:12::i;:::-;3426:26:60;:56;;;;;;;-1:-1:-1;;3426:56:60;;;;;;;;;3280:206::o;21876:85:6:-;21923:9;21945:12;:10;:12::i;:::-;21938:19;;21876:85;:::o;10964:218::-;11048:9;11093:34;-1:-1:-1;;;;;;;;;;;11093:9:6;:34::i;:::-;-1:-1:-1;;;;;11070:89:6;;11160:17;11070:108;;;;;-1:-1:-1;;;11070:108:6;;;;;;;-1:-1:-1;;;;;11070:108:6;-1:-1:-1;;;;;11070:108:6;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11070:108:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11070:108:6;;;;;;39:16:-1;36:1;17:17;2:54;101:4;11070:108:6;80:15:-1;;;-1:-1;;76:31;65:43;;120:4;113:20;13:2;5:11;;2:2;;;29:1;26;19:12;2:2;11070:108:6;;;;;;20:11:-1;15:3;12:20;9:2;;;45:1;42;35:12;9:2;64:21;;126:4;117:14;;142:31;;;139:2;;;186:1;183;176:12;139:2;224:3;218:10;339:9;333:2;319:12;315:21;297:16;293:44;290:59;268:11;254:12;251:29;239:119;236:2;;;371:1;368;361:12;236:2;-1:-1;11070:108:6;;10964:218;-1:-1:-1;;;;;;10964:218:6:o;14425:883::-;14573:16;14818:40;14972:9;15034:23;15110:20;14695:15;:22;14670:14;:21;:47;:76;;;;;14745:1;14721:14;:21;:25;14670:76;14666:608;;;14861:44;14890:14;14861:28;:44::i;:::-;14818:87;;14984:1;14972:13;;14967:303;14991:23;:30;14987:1;:34;14967:303;;;15077:23;15101:1;15077:26;;;;;;;;;;;;;;;;;;15034:70;;15144:6;-1:-1:-1;;;;;15144:12:6;;:14;;;;;-1:-1:-1;;;15144:14:6;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15144:14:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15144:14:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;15144:14:6;;-1:-1:-1;15169:80:6;15144:14;15210:5;15217:14;15233:15;15169:29;:80::i;:::-;15165:99;;;15258:6;15251:13;;;;15165:99;15023:3;;;;;14967:303;;;15302:1;15278:26;;14425:883;;;;;;;;;;:::o;23434:143::-;23515:9;23537:36;23560:12;23537:22;:36::i;:::-;23530:43;23434:143;-1:-1:-1;;23434:143:6:o;5068:901::-;-1:-1:-1;;;;;5250:20:6;;;5226:10;5250:20;;;:8;:20;;;;;;5226:10;;;;;;;;5250:20;5274:10;5250:34;5242:95;;;;;-1:-1:-1;;;;;5242:95:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5359:21;;5402:22;;5359:21;;-1:-1:-1;5392:32:6;;5384:65;;;;;-1:-1:-1;;;;;5384:65:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;5546:1;5461:64;5486:5;5493:14;5509:15;5461:24;:64::i;:::-;-1:-1:-1;;;;;5461:87:6;;5453:118;;;;;-1:-1:-1;;;;;5453:118:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;5602:10;-1:-1:-1;;;;;5602:17:6;;:19;;;;;-1:-1:-1;;;5602:19:6;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5602:19:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5602:19:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5602:19:6;5626:24;;;;;;;;5602:19;;-1:-1:-1;;;;;;5626:22:6;;;;;:24;;;;;;;;;;;;;;;;:22;:24;;;5:2:-1;;;;30:1;27;20:12;5:2;5626:24:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5626:24:6;;;;5654:10;-1:-1:-1;;;;;5654:26:6;;:28;;;;;-1:-1:-1;;;5654:28:6;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5654:28:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5654:28:6;;;;5704:1;5692:13;;5687:97;5711:6;5707:1;:10;5687:97;;;5724:10;-1:-1:-1;;;;;5724:21:6;;5746:14;5761:1;5746:17;;;;;;;;;;;;;;;;;;5765:15;5781:1;5765:18;;;;;;;;;;;;;;;;;;5724:60;;;;;-1:-1:-1;;;5724:60:6;;;;;;;-1:-1:-1;;;;;5724:60:6;-1:-1:-1;;;;;5724:60:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5724:60:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;5719:3:6;;;;;-1:-1:-1;5687:97:6;;-1:-1:-1;5687:97:6;;5789:6;-1:-1:-1;;;;;5789:24:6;;5814:10;5789:36;;;;;-1:-1:-1;;;5789:36:6;;;;;;;-1:-1:-1;;;;;5789:36:6;-1:-1:-1;;;;;5789:36:6;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5789:36:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5789:36:6;;;;5829:10;-1:-1:-1;;;;;5829:32:6;;:34;;;;;-1:-1:-1;;;5829:34:6;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5829:34:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;5867:40:6;;;;;;5896:10;5867:40;;;;;;-1:-1:-1;;;;;5867:28:6;;;-1:-1:-1;5867:28:6;;-1:-1:-1;5867:40:6;;;;;-1:-1:-1;;5867:40:6;;;;;;;-1:-1:-1;5867:28:6;:40;;;5:2:-1;;;;30:1;27;20:12;5:2;5867:40:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5867:40:6;;;;5912:32;5933:10;5912:20;:32::i;:::-;-1:-1:-1;5955:10:6;;5068:901;-1:-1:-1;;;;;;5068:901:6:o;1250:38:60:-;;;;;;;;;:::o;10115:171:6:-;10180:4;10220:34;-1:-1:-1;;;;;;;;;;;10220:9:6;:34::i;:::-;-1:-1:-1;;;;;10197:77:6;;10275:6;10197:85;;;;;-1:-1:-1;;;10197:85:6;;;;;;;-1:-1:-1;;;;;10197:85:6;-1:-1:-1;;;;;10197:85:6;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10197:85:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10197:85:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;10197:85:6;;10115:171;-1:-1:-1;;10115:171:6:o;22209:96::-;22268:4;22285:16;22294:6;22285:8;:16::i;10515:224::-;10603:7;10646:34;-1:-1:-1;;;;;;;;;;;10646:9:6;:34::i;:::-;-1:-1:-1;;;;;10623:93:6;;10717:17;10623:112;;;;;-1:-1:-1;;;10623:112:6;;;;;;;-1:-1:-1;;;;;10623:112:6;-1:-1:-1;;;;;10623:112:6;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;2080:832:60;2281:29;2183:5;;-1:-1:-1;;;;;2183:5:60;2169:10;:19;;:50;;-1:-1:-1;2193:26:60;;;;;;;2192:27;2169:50;2161:80;;;;;;;-1:-1:-1;;;;;2161:80:60;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2161:80:60;;;;;;;;;;;;;;;2331:28;2341:17;2331:9;:28::i;:::-;2465:8;;2281:79;;-1:-1:-1;;;;;;2442:32:60;;;2465:8;;2442:32;;;;:61;;-1:-1:-1;;;;;;2478:25:60;;;;2442:61;2434:94;;;;;;;-1:-1:-1;;;;;2434:94:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;2628:40;;;;;;2650:17;2628:40;;;;;;2680:1;;-1:-1:-1;;;;;2628:21:60;;;;;:40;;;;;;;;;;;;;;;2680:1;2628:21;:40;;;5:2:-1;;;;30:1;27;20:12;5:2;2628:40:60;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2628:40:60;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2628:40:60;-1:-1:-1;;;;;2628:54:60;;;2620:87;;;;;-1:-1:-1;;;;;2620:87:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;2799:8;;;2784:12;:23;;-1:-1:-1;;;;;2799:8:60;;;-1:-1:-1;;2784:23:60;;;;;;;2886:22;;;;;;;;;;;2080:832::o;7358:160:6:-;7414:7;7457:34;-1:-1:-1;;;;;;;;;;;7457:9:6;:34::i;:::-;-1:-1:-1;;;;;7434:72:6;;7507:6;7434:80;;;;;-1:-1:-1;;;7434:80:6;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;3798:902:6;4010:10;4026:14;4260:25;4339:23;4441:20;4043:14;:21;4026:38;;4086:15;:22;4076:6;:32;4068:65;;;;;;;-1:-1:-1;;;;;4068:65:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;4230:1;4145:64;4170:5;4177:14;4193:15;4145:24;:64::i;:::-;-1:-1:-1;;;;;4145:87:6;;4137:118;;;;;-1:-1:-1;;;;;4137:118:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;4306:28;4316:17;4306:9;:28::i;:::-;4260:75;;4382:7;-1:-1:-1;;;;;4382:20:6;;4403:5;4410;4417:7;4426:9;4382:54;;;;;-1:-1:-1;;;4382:54:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;4382:54:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4382:54:6;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;4382:54:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4382:54:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4382:54:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4382:54:6;;;;;;;;;;;;;;;;4339:98;;4475:7;-1:-1:-1;;;;;4475:23:6;;4499:5;4506:6;4514:8;;;;;;;;;-1:-1:-1;;;;;4514:8:6;4524:17;4475:67;;;;;-1:-1:-1;;;4475:67:6;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4475:67:6;-1:-1:-1;;;;;4475:67:6;;;;;;-1:-1:-1;;;;;4475:67:6;-1:-1:-1;;;;;4475:67:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4475:67:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4475:67:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4475:67:6;-1:-1:-1;;;;;4643:19:6;;;;;;:8;4475:67;4643:19;;;;:32;;-1:-1:-1;;4643:32:6;4665:10;4643:32;;;4475:67;;-1:-1:-1;;;;;;;;;;;;3798:902:6:o;9451:160::-;9504:9;9549:34;-1:-1:-1;;;;;;;;;;;9549:9:6;:34::i;:::-;-1:-1:-1;;;;;9526:79:6;;:81;;;;;-1:-1:-1;;;9526:81:6;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9526:81:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9526:81:6;;;;;;39:16:-1;36:1;17:17;2:54;101:4;9526:81:6;80:15:-1;;;-1:-1;;76:31;65:43;;120:4;113:20;13:2;5:11;;2:2;;;29:1;26;19:12;2:2;9526:81:6;;;;;;20:11:-1;15:3;12:20;9:2;;;45:1;42;35:12;9:2;64:21;;126:4;117:14;;142:31;;;139:2;;;186:1;183;176:12;139:2;224:3;218:10;339:9;333:2;319:12;315:21;297:16;293:44;290:59;268:11;254:12;251:29;239:119;236:2;;;371:1;368;361:12;236:2;-1:-1;9526:81:6;;-1:-1:-1;;;;;9451:160:6;:::o;11449:238::-;11548:7;11591:34;-1:-1:-1;;;;;;;;;;;11591:9:6;:34::i;:::-;-1:-1:-1;;;;;11568:88:6;;11657:17;11676:6;11568:115;;;;;-1:-1:-1;;;11568:115:6;;;;;;;-1:-1:-1;;;;;11568:115:6;-1:-1:-1;;;;;11568:115:6;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11568:115:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11568:115:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11568:115:6;;11449:238;-1:-1:-1;;;11449:238:6:o;12452:278::-;12525:9;12540:27;12610:9;12584:8;:15;12570:30;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;136:17;;-1:-1;12570:30:6;;12540:60;;12622:1;12610:13;;12605:99;12629:8;:15;12625:1;:19;12605:99;;;12684:8;12693:1;12684:11;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12667:35:6;;:37;;;;;-1:-1:-1;;;12667:37:6;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12667:37:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12667:37:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12667:37:6;12651:13;;:10;;12662:1;;12651:13;;;;;;-1:-1:-1;;;;;12651:53:6;;;:13;;;;;;;;;;:53;12646:3;;12605:99;;;-1:-1:-1;12716:10:6;12452:278;-1:-1:-1;;12452:278:6:o;1165:37:60:-;;;-1:-1:-1;;;;;1165:37:60;;:::o;9165:166:6:-;9222:7;9265:34;-1:-1:-1;;;;;;;;;;;9265:9:6;:34::i;:::-;-1:-1:-1;;;;;9242:83:6;;:85;;;;;-1:-1:-1;;;9242:85:6;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9242:85:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9242:85:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9242:85:6;;-1:-1:-1;9165:166:6;:::o;6106:168::-;575:12:66;:10;:12::i;:::-;6180:28:6;6197:10;6180:16;:28::i;:::-;6172:62;;;;;;;-1:-1:-1;;;;;6172:62:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;6238:32;6259:10;6238:20;:32::i;:::-;6106:168;:::o;23173:174::-;23275:4;23292:51;23317:17;23336:6;23292:24;:51::i;:::-;23285:58;23173:174;-1:-1:-1;;;23173:174:6:o;1159:176:66:-;1219:8;;-1:-1:-1;;;;;1219:8:66;1205:10;:22;1197:52;;;;;-1:-1:-1;;;;;1197:52:66;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1197:52:66;;;;;;;;;;;;;;;1277:8;;;1270:5;;1258:28;;-1:-1:-1;;;;;1277:8:66;;;;1270:5;;;;1258:28;;;1298:8;;;;1290:16;;-1:-1:-1;;1290:16:66;;;-1:-1:-1;;;;;1298:8:66;;1290:16;;;;1310:21;;;1159:176::o;7962:160:6:-;8016:7;8059:34;-1:-1:-1;;;;;;;;;;;8059:9:6;:34::i;:::-;-1:-1:-1;;;;;8036:80:6;;:82;;;;;-1:-1:-1;;;8036:82:6;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;1085:33:60;;;-1:-1:-1;;;;;1085:33:60;;:::o;8236:154:6:-;8286:9;8331:34;-1:-1:-1;;;;;;;;;;;8331:9:6;:34::i;:::-;-1:-1:-1;;;;;8308:76:6;;:78;;;;;-1:-1:-1;;;8308:78:6;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;9757:176:6;9823:7;9866:34;-1:-1:-1;;;;;;;;;;;9866:9:6;:34::i;:::-;-1:-1:-1;;;;;9843:78:6;;9922:6;9843:86;;;;;-1:-1:-1;;;9843:86:6;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;157:20:66;;;-1:-1:-1;;;;;157:20:66;;:::o;13323:778:6:-;13409:4;13419:25;13483:34;13560:30;13686:9;13734:24;13447:10;-1:-1:-1;;;;;13447:30:6;;:32;;;;;-1:-1:-1;;;13447:32:6;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13447:32:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13447:32:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13447:32:6;13520:36;;;13419:60;;;;13520:36;;;13447:32;13520:36;;;;;;;;;13419:60;-1:-1:-1;13419:60:6;13520:36;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;136:17;;-1:-1;13520:36:6;;13483:73;;13606:17;13593:31;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;136:17;;-1:-1;13593:31:6;;13560:64;;13698:1;13686:13;;13681:217;13705:17;13701:1;:21;13681:217;;;13761:10;-1:-1:-1;;;;;13761:26:6;;13788:1;13761:29;;;;;-1:-1:-1;;;13761:29:6;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13761:29:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13761:29:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13761:29:6;13795:16;;13761:29;;-1:-1:-1;13761:29:6;;13795:13;;13809:1;;13795:16;;;;;;-1:-1:-1;;;;;13795:31:6;;;:16;;;;;;;;;;:31;13851:42;13868:10;13880:12;13851:16;:42::i;:::-;13831:14;13846:1;13831:17;;;;;;;;;;:62;;;;:17;;;;;;;;;;:62;13724:3;;;;;13681:217;;;14095:1;-1:-1:-1;;;;;13991:106:6;:83;14016:10;-1:-1:-1;;;;;14016:24:6;;:26;;;;;-1:-1:-1;;;14016:26:6;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14016:26:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14016:26:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;14016:26:6;14044:13;14059:14;13991:24;:83::i;:::-;-1:-1:-1;;;;;13991:106:6;;;;13323:778;-1:-1:-1;;;;;;;13323:778:6:o;12900:181::-;12970:4;13066:10;-1:-1:-1;;;;;13028:49:6;:10;-1:-1:-1;;;;;13028:16:6;;:18;;;;;-1:-1:-1;;;13028:18:6;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13028:18:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13028:18:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13028:18:6;:26;;;;;;;;-1:-1:-1;;;;;13028:24:6;;;;;;:26;;;;;:18;;:26;;;;;;;;;:24;:26;;;5:2:-1;;;;30:1;27;20:12;5:2;13028:26:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13028:26:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13028:26:6;-1:-1:-1;;;;;13028:49:6;;;12900:181;-1:-1:-1;;12900:181:6:o;6526:184::-;6607:5;;-1:-1:-1;;;;;6607:5:6;6593:10;:19;;:52;;;6617:28;6634:10;6617:16;:28::i;:::-;6616:29;6593:52;6585:82;;;;;;;-1:-1:-1;;;;;6585:82:6;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;6585:82:6;;;;;;;;;;;;;;;6671:35;6695:10;6671:23;:35::i;22035:101::-;22095:7;22115:17;22125:6;22115:9;:17::i;22400:165::-;22492:7;22512:49;22543:17;22512:30;:49::i;8530:170::-;8593:7;8636:34;-1:-1:-1;;;;;;;;;;;8636:9:6;:34::i;:::-;-1:-1:-1;;;;;8613:75:6;;8689:6;8613:83;;;;;-1:-1:-1;;;8613:83:6;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;2974:119:60;575:12:66;:10;:12::i;:::-;3077::60;;3066:8;:23;;-1:-1:-1;;3066:23:60;-1:-1:-1;;;;;3077:12:60;;;3066:23;;;;;;2974:119::o;11965:233:6:-;12063:4;12103:34;-1:-1:-1;;;;;;;;;;;12103:9:6;:34::i;:::-;12080:114;;;;;;-1:-1:-1;;;;;12080:114:6;;;;;;;;;;;;;;;;:87;;;;;;;:114;;;;;;;;;;;;;;;-1:-1:-1;12080:87:6;:114;;;5:2:-1;;;;30:1;27;20:12;23666:232:6;23804:16;23834:60;23859:1;23862:14;23878:15;23834:24;:60::i;6822:150::-;6869:7;6912:34;-1:-1:-1;;;;;;;;;;;6912:9:6;:34::i;:::-;-1:-1:-1;;;;;6889:77:6;;:79;;;;;-1:-1:-1;;;6889:79:6;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;180:23:66;;;-1:-1:-1;;;;;180:23:66;;:::o;22905:179:6:-;23008:7;23028:52;23054:17;23073:6;23028:25;:52::i;7689:155::-;7744:4;7784:34;-1:-1:-1;;;;;;;;;;;7784:9:6;:34::i;:::-;-1:-1:-1;;;;;7761:71:6;;7833:6;7761:79;;;;;-1:-1:-1;;;7761:79:6;;;;;;;-1:-1:-1;;;;;7761:79:6;-1:-1:-1;;;;;7761:79:6;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;21710:91:6;21761:7;21781:16;:14;:16::i;8876:165::-;8938:4;8978:34;-1:-1:-1;;;;;;;;;;;8978:9:6;:34::i;:::-;-1:-1:-1;;;;;8955:74:6;;9030:6;8955:82;;;;;-1:-1:-1;;;8955:82:6;;;;;;;-1:-1:-1;;;;;8955:82:6;-1:-1:-1;;;;;8955:82:6;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;7080:144:6;7123:9;7168:34;-1:-1:-1;;;;;;;;;;;7168:9:6;:34::i;:::-;-1:-1:-1;;;;;7145:73:6;;:75;;;;;-1:-1:-1;;;7145:75:6;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;945:140:66;575:12;:10;:12::i;:::-;1033:5;;-1:-1:-1;;;;;1020:18:66;;;1033:5;;1020:18;;1012:45;;;;;-1:-1:-1;;;;;1012:45:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;1061:8;:20;;-1:-1:-1;;1061:20:66;-1:-1:-1;;;;;1061:20:66;;;;;;;;;;945:140::o;22656:159:6:-;22744:9;22766:45;22793:17;22766:26;:45::i;642:93:66:-;704:5;;-1:-1:-1;;;;;704:5:66;690:10;:19;682:49;;;;;-1:-1:-1;;;;;682:49:66;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;682:49:66;;;;;;;;;;;;;;;642:93::o;3647:122:60:-;3732:8;;:33;;;;;;;;;;;;;;3712:7;;-1:-1:-1;;;;;3732:8:60;;:18;;:33;;;;;;;;;;;;;;3712:7;3732:8;:33;;;5:2:-1;;;;30:1;27;20:12;19307:823:6;19404:9;19426:44;19535:22;19639:13;19745:9;19797:35;19496:34;-1:-1:-1;;;;;;;;;;;19496:9:6;:34::i;:::-;19426:105;;19560:21;-1:-1:-1;;;;;19560:56:6;;19617:14;19632:1;19617:17;;;;;;;;;;;;;;;;;;19560:75;;;;;-1:-1:-1;;;19560:75:6;;;;;;;-1:-1:-1;;;;;19560:75:6;-1:-1:-1;;;;;19560:75:6;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19560:75:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;19560:75:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;19560:75:6;;-1:-1:-1;19655:1:6;;-1:-1:-1;19757:1:6;;-1:-1:-1;19740:300:6;19764:14;:21;19760:1;:25;19740:300;;;19835:21;-1:-1:-1;;;;;19835:56:6;;19892:14;19907:1;19892:17;;;;;;;;;;;;;;;;;;19835:75;;;;;-1:-1:-1;;;19835:75:6;;;;;;;-1:-1:-1;;;;;19835:75:6;-1:-1:-1;;;;;19835:75:6;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19835:75:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;19835:75:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;19835:75:6;;-1:-1:-1;19919:44:6;;;19915:121;;;19988:27;19971:44;;20029:1;20021:9;;19915:121;19787:3;;;;;19740:300;;;20051:21;-1:-1:-1;;;;;20051:52:6;;20104:14;20119:5;20104:21;;;;;;;;;;;;;;;;;;20051:75;;;;;-1:-1:-1;;;20051:75:6;;;;;;;-1:-1:-1;;;;;20051:75:6;-1:-1:-1;;;;;20051:75:6;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;20051:75:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;20051:75:6;;;;;;39:16:-1;36:1;17:17;2:54;101:4;20051:75:6;80:15:-1;;;-1:-1;;76:31;65:43;;120:4;113:20;13:2;5:11;;2:2;;;29:1;26;19:12;2:2;20051:75:6;;;;;;20:11:-1;15:3;12:20;9:2;;;45:1;42;35:12;9:2;64:21;;126:4;117:14;;142:31;;;139:2;;;186:1;183;176:12;139:2;224:3;218:10;339:9;333:2;319:12;315:21;297:16;293:44;290:59;268:11;254:12;251:29;239:119;236:2;;;371:1;368;361:12;236:2;-1:-1;20051:75:6;;19307:823;-1:-1:-1;;;;;;;;;;;19307:823:6:o;20133:495::-;20312:4;20465:9;20335:10;-1:-1:-1;;;;;20335:24:6;;:26;;;;;-1:-1:-1;;;20335:26:6;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;20335:26:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;20335:26:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;20335:26:6;20326:35;;;;;;;20322:53;;20370:5;20363:12;;;;20322:53;20409:10;-1:-1:-1;;;;;20409:30:6;;:32;;;;;-1:-1:-1;;;20409:32:6;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;20409:32:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;20409:32:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;20409:32:6;20384:21;;:57;;;;;20380:75;;20450:5;20443:12;;;;20380:75;-1:-1:-1;20477:1:6;20460:149;20484:14;:21;20480:1;:25;20460:149;;;20543:47;20560:10;20572:14;20587:1;20572:17;;;;;;;;;;;;;;;;;;20543:16;:47::i;:::-;20521:69;;:15;20537:1;20521:18;;;;;;;;;;;;;;;;;;;:69;;;20517:87;;20599:5;20592:12;;;;20517:87;20507:3;;20460:149;;;20620:4;20613:11;;20133:495;;;;;;;;:::o;17920:680::-;17985:44;18094:23;18154:25;18472:9;18055:34;-1:-1:-1;;;;;;;;;;;18055:9:6;:34::i;:::-;17985:105;;18131:10;-1:-1:-1;;;;;18120:28:6;;:30;;;;;-1:-1:-1;;;18120:30:6;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18120:30:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;18120:30:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;18120:30:6;18182:32;;;;;;;;18120:30;;-1:-1:-1;;;;;;18182:30:6;;;;;:32;;;;;18120:30;;18182:32;;;;;;;;;:30;:32;;;5:2:-1;;;;30:1;27;20:12;5:2;18182:32:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;18182:32:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;18182:32:6;18154:60;;;-1:-1:-1;18249:40:6;18259:21;18282:6;18249:9;:40::i;:::-;18317:1;18297:17;:21;18293:141;;;18320:47;18337:21;18360:6;18320:16;:47::i;:::-;18293:141;;;18376:58;18396:21;18419:6;18427;18376:19;:58::i;:::-;-1:-1:-1;18484:1:6;18467:129;18491:17;18487:1;:21;18467:129;;;18515:81;18535:21;18558:10;-1:-1:-1;;;;;18558:26:6;;18585:1;18558:29;;;;;-1:-1:-1;;;18558:29:6;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18558:29:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;18558:29:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;18558:29:6;18589:6;18515:19;:81::i;:::-;18510:3;;18467:129;;;17920:680;;;;;:::o;21001:630::-;21092:6;21104:21;;:::i;:::-;20689:32;;;;;;;;;;;;;;;;-1:-1:-1;;;;;21149:63:6;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;21149:63:6;;;;;;;25:18:-1;;61:17;;21149:63:6;182:15:-1;21149:63:6;;;;179:29:-1;;;;160:49;;21416:11:6;;21149:63;;20689:32;21502:3;;21288:10;21262:3;21246:306;21566:7;21559:15;21556:2;;;21591:1;21588;21581:12;21556:2;-1:-1:-1;;21620:6:6;;;;;-1:-1:-1;;;21001:630:6:o;18603:701::-;18671:44;18780:23;18840:25;19173:9;18741:34;-1:-1:-1;;;;;;;;;;;18741:9:6;:34::i;:::-;18671:105;;18817:10;-1:-1:-1;;;;;18806:28:6;;:30;;;;;-1:-1:-1;;;18806:30:6;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18806:30:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;18806:30:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;18806:30:6;18868:32;;;;;;;;18806:30;;-1:-1:-1;;;;;;18868:30:6;;;;;:32;;;;;18806:30;;18868:32;;;;;;;;;:30;:32;;;5:2:-1;;;;30:1;27;20:12;5:2;18868:32:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;18868:32:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;18868:32:6;18840:60;;;-1:-1:-1;18938:43:6;18951:21;18974:6;18938:12;:43::i;:::-;19009:1;18989:17;:21;18985:147;;;19012:50;19032:21;19055:6;19012:19;:50::i;:::-;18985:147;;;19071:61;19094:21;19117:6;19125;19071:22;:61::i;:::-;-1:-1:-1;19185:1:6;19168:132;19192:17;19188:1;:21;19168:132;;;19216:84;19239:21;19262:10;-1:-1:-1;;;;;19262:26:6;;19289:1;19262:29;;;;;-1:-1:-1;;;19262:29:6;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19262:29:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;19262:29:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;19262:29:6;19293:6;19216:22;:84::i;:::-;19211:3;;19168:132;;15476:216;15572:22;-1:-1:-1;;;;;15572:36:6;;15609:7;15572:45;;;;;-1:-1:-1;;;15572:45:6;;;;;;;-1:-1:-1;;;;;15572:45:6;-1:-1:-1;;;;;15572:45:6;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15572:45:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;15626:29:6;;-1:-1:-1;;;;;15626:29:6;;;-1:-1:-1;15626:29:6;;-1:-1:-1;15626:29:6;;;15664:24;;-1:-1:-1;;;;;15664:24:6;;;;;;;;15476:216;;:::o;16262:212::-;16372:22;-1:-1:-1;;;;;16372:39:6;;16412:14;16372:55;;;;;-1:-1:-1;;;16372:55:6;;;;;;;-1:-1:-1;;;;;16372:55:6;-1:-1:-1;;;;;16372:55:6;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16372:55:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;16436:34:6;;-1:-1:-1;;;;;16436:34:6;;;-1:-1:-1;16436:34:6;;-1:-1:-1;16436:34:6;;;16262:212;;:::o;17113:274::-;17255:70;;;;;;-1:-1:-1;;;;;17255:70:6;;;;;;;;;;;;;;;;:42;;;;;;:70;;;;;-1:-1:-1;;17255:70:6;;;;;;;;-1:-1:-1;17255:42:6;:70;;;5:2:-1;;;;30:1;27;20:12;5:2;17255:70:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;17334:49:6;;-1:-1:-1;;;;;17334:49:6;;;;-1:-1:-1;17334:49:6;;;-1:-1:-1;17334:49:6;;;;;17113:274;;;:::o;15865:226::-;15964:22;-1:-1:-1;;;;;15964:39:6;;16004:7;15964:48;;;;;-1:-1:-1;;;15964:48:6;;;;;;;-1:-1:-1;;;;;15964:48:6;-1:-1:-1;;;;;15964:48:6;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15964:48:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;16021:31:6;;-1:-1:-1;;;;;16021:31:6;;;-1:-1:-1;16021:31:6;;-1:-1:-1;16021:31:6;;;16061:26;;-1:-1:-1;;;;;16061:26:6;;;;;;;;15865:226;;:::o;16650:220::-;16763:22;-1:-1:-1;;;;;16763:42:6;;16806:14;16763:58;;;;;-1:-1:-1;;;16763:58:6;;;;;;;-1:-1:-1;;;;;16763:58:6;-1:-1:-1;;;;;16763:58:6;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16763:58:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;16830:36:6;;-1:-1:-1;;;;;16830:36:6;;;-1:-1:-1;16830:36:6;;-1:-1:-1;16830:36:6;;;16650:220;;:::o;17635:282::-;17780:73;;;;;;-1:-1:-1;;;;;17780:73:6;;;;;;;;;;;;;;;;:45;;;;;;:73;;;;;-1:-1:-1;;17780:73:6;;;;;;;;-1:-1:-1;17780:45:6;:73;;;5:2:-1;;;;30:1;27;20:12;5:2;17780:73:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;17862:51:6;;-1:-1:-1;;;;;17862:51:6;;;;-1:-1:-1;17862:51:6;;;-1:-1:-1;17862:51:6;;;;;17635:282;;;:::o;1278:22622::-;;;;;;;;;;;;;;;105:10:-1;1278:22622:6;88:34:-1;-1:-1;1278:22622:6;;;-1:-1:-1;;1278:22622:6:o" - }, - "methodIdentifiers": { - "acceptOwnership()": "79ba5097", - "addConverter(address)": "6ce1c4dc", - "getAnchor(uint256)": "4c7df18f", - "getAnchorCount()": "d3182bed", - "getAnchors()": "effb3c6e", - "getConvertersByAnchors(address[])": "610c0b05", - "getConvertersBySmartTokens(address[])": "1f8e2620", - "getConvertibleToken(uint256)": "865cf194", - "getConvertibleTokenAnchor(address,uint256)": "603f51e4", - "getConvertibleTokenAnchorCount(address)": "49c5f32b", - "getConvertibleTokenAnchors(address)": "11839064", - "getConvertibleTokenCount()": "69be4784", - "getConvertibleTokenSmartToken(address,uint256)": "d6c4b5b2", - "getConvertibleTokenSmartTokenCount(address)": "a43d5e94", - "getConvertibleTokenSmartTokens(address)": "f4fb86c0", - "getConvertibleTokens()": "5f1b50fe", - "getLiquidityPool(uint256)": "a74498aa", - "getLiquidityPoolByConfig(uint16,address[],uint32[])": "1d3fccd5", - "getLiquidityPoolByReserveConfig(address[],uint32[])": "c22b82f0", - "getLiquidityPoolCount()": "7a5f0ffd", - "getLiquidityPools()": "7f45c4c3", - "getSmartToken(uint256)": "a109d214", - "getSmartTokenCount()": "e571049b", - "getSmartTokens()": "04ceaf41", - "isAnchor(address)": "d8cced2a", - "isConverterValid(address)": "954254f5", - "isConvertibleToken(address)": "3ab8857c", - "isConvertibleTokenAnchor(address,address)": "b4c4197a", - "isConvertibleTokenSmartToken(address,address)": "725b8786", - "isLiquidityPool(address)": "e85455d7", - "isSimilarLiquidityPoolRegistered(address)": "8f1d0e1a", - "isSmartToken(address)": "4123ef60", - "newConverter(uint16,string,string,uint8,uint32,address[],uint32[])": "5a0a6618", - "newOwner()": "d4ee1d90", - "onlyOwnerCanUpdateRegistry()": "2fe8a6ad", - "owner()": "8da5cb5b", - "prevRegistry()": "61cd756e", - "registry()": "7b103999", - "removeConverter(address)": "9e76a007", - "restoreRegistry()": "b4a176d3", - "restrictRegistryUpdate(bool)": "024c7ec7", - "setupConverter(uint16,address[],uint32[],address)": "295d2a21", - "transferOwnership(address)": "f2fde38b", - "updateRegistry()": "49d10b64" - } - }, - "userdoc": { - "methods": {} - } - } - }, - "solidity/contracts/converter/ConverterRegistryData.sol": { - "ConverterRegistryData": { - "abi": [ - { - "constant": false, - "inputs": [ - { - "name": "_onlyOwnerCanUpdateRegistry", - "type": "bool" - } - ], - "name": "restrictRegistryUpdate", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getSmartTokens", - "outputs": [ - { - "name": "", - "type": "address[]" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "onlyOwnerCanUpdateRegistry", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_convertibleToken", - "type": "address" - }, - { - "name": "_smartToken", - "type": "address" - } - ], - "name": "addConvertibleToken", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_value", - "type": "address" - } - ], - "name": "isConvertibleToken", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_value", - "type": "address" - } - ], - "name": "isSmartToken", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "updateRegistry", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getConvertibleTokens", - "outputs": [ - { - "name": "", - "type": "address[]" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "prevRegistry", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getConvertibleTokenCount", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_convertibleToken", - "type": "address" - }, - { - "name": "_value", - "type": "address" - } - ], - "name": "isConvertibleTokenSmartToken", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "acceptOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getLiquidityPoolCount", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "registry", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getLiquidityPools", - "outputs": [ - { - "name": "", - "type": "address[]" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_index", - "type": "uint256" - } - ], - "name": "getConvertibleToken", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "owner", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_smartToken", - "type": "address" - } - ], - "name": "addSmartToken", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_index", - "type": "uint256" - } - ], - "name": "getSmartToken", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_convertibleToken", - "type": "address" - } - ], - "name": "getConvertibleTokenSmartTokenCount", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_index", - "type": "uint256" - } - ], - "name": "getLiquidityPool", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_liquidityPool", - "type": "address" - } - ], - "name": "removeLiquidityPool", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "restoreRegistry", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_smartToken", - "type": "address" - } - ], - "name": "removeSmartToken", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "newOwner", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_convertibleToken", - "type": "address" - }, - { - "name": "_index", - "type": "uint256" - } - ], - "name": "getConvertibleTokenSmartToken", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getSmartTokenCount", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_value", - "type": "address" - } - ], - "name": "isLiquidityPool", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_liquidityPool", - "type": "address" - } - ], - "name": "addLiquidityPool", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_convertibleToken", - "type": "address" - } - ], - "name": "getConvertibleTokenSmartTokens", - "outputs": [ - { - "name": "", - "type": "address[]" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_convertibleToken", - "type": "address" - }, - { - "name": "_smartToken", - "type": "address" - } - ], - "name": "removeConvertibleToken", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "name": "_registry", - "type": "address" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "_prevOwner", - "type": "address" - }, - { - "indexed": true, - "name": "_newOwner", - "type": "address" - } - ], - "name": "OwnerUpdate", - "type": "event" - } - ], - "devdoc": { - "methods": { - "acceptOwnership()": { - "details": "used by a new owner to accept an ownership transfer" - }, - "addConvertibleToken(address,address)": { - "details": "adds a convertible token", - "params": { - "_convertibleToken": "convertible token", - "_smartToken": "associated smart token" - } - }, - "addLiquidityPool(address)": { - "details": "adds a liquidity pool", - "params": { - "_liquidityPool": "liquidity pool" - } - }, - "addSmartToken(address)": { - "details": "adds a smart token", - "params": { - "_smartToken": "smart token" - } - }, - "getConvertibleToken(uint256)": { - "details": "returns the convertible token at a given index", - "params": { - "_index": "index" - }, - "return": "convertible token at the given index" - }, - "getConvertibleTokenCount()": { - "details": "returns the number of convertible tokens", - "return": "number of convertible tokens" - }, - "getConvertibleTokenSmartToken(address,uint256)": { - "details": "returns the smart token associated with a given convertible token at a given index", - "params": { - "_index": "index" - }, - "return": "smart token associated with the given convertible token at the given index" - }, - "getConvertibleTokenSmartTokenCount(address)": { - "details": "returns the number of smart tokens associated with a given convertible token", - "params": { - "_convertibleToken": "convertible token" - }, - "return": "number of smart tokens associated with the given convertible token" - }, - "getConvertibleTokenSmartTokens(address)": { - "details": "returns the list of smart tokens associated with a given convertible token", - "params": { - "_convertibleToken": "convertible token" - }, - "return": "list of smart tokens associated with the given convertible token" - }, - "getConvertibleTokens()": { - "details": "returns the list of convertible tokens", - "return": "list of convertible tokens" - }, - "getLiquidityPool(uint256)": { - "details": "returns the liquidity pool at a given index", - "params": { - "_index": "index" - }, - "return": "liquidity pool at the given index" - }, - "getLiquidityPoolCount()": { - "details": "returns the number of liquidity pools", - "return": "number of liquidity pools" - }, - "getLiquidityPools()": { - "details": "returns the list of liquidity pools", - "return": "list of liquidity pools" - }, - "getSmartToken(uint256)": { - "details": "returns the smart token at a given index", - "params": { - "_index": "index" - }, - "return": "smart token at the given index" - }, - "getSmartTokenCount()": { - "details": "returns the number of smart tokens", - "return": "number of smart tokens" - }, - "getSmartTokens()": { - "details": "returns the list of smart tokens", - "return": "list of smart tokens" - }, - "isConvertibleToken(address)": { - "details": "checks whether or not a given value is a convertible token", - "params": { - "_value": "value" - }, - "return": "true if the given value is a convertible token, false if not" - }, - "isConvertibleTokenSmartToken(address,address)": { - "details": "checks whether or not a given value is a smart token of a given convertible token", - "params": { - "_convertibleToken": "convertible token", - "_value": "value" - }, - "return": "true if the given value is a smart token of the given convertible token, false it not" - }, - "isLiquidityPool(address)": { - "details": "checks whether or not a given value is a liquidity pool", - "params": { - "_value": "value" - }, - "return": "true if the given value is a liquidity pool, false if not" - }, - "isSmartToken(address)": { - "details": "checks whether or not a given value is a smart token", - "params": { - "_value": "value" - }, - "return": "true if the given value is a smart token, false if not" - }, - "removeConvertibleToken(address,address)": { - "details": "removes a convertible token", - "params": { - "_convertibleToken": "convertible token", - "_smartToken": "associated smart token" - } - }, - "removeLiquidityPool(address)": { - "details": "removes a liquidity pool", - "params": { - "_liquidityPool": "liquidity pool" - } - }, - "removeSmartToken(address)": { - "details": "removes a smart token", - "params": { - "_smartToken": "smart token" - } - }, - "restoreRegistry()": { - "details": "restores the previous contract-registry" - }, - "restrictRegistryUpdate(bool)": { - "details": "restricts the permission to update the contract-registry", - "params": { - "_onlyOwnerCanUpdateRegistry": "indicates whether or not permission is restricted to owner only" - } - }, - "transferOwnership(address)": { - "details": "allows transferring the contract ownership the new owner still needs to accept the transfer can only be called by the contract owner", - "params": { - "_newOwner": "new contract owner" - } - }, - "updateRegistry()": { - "details": "updates to the new contract-registry" - } - } - }, - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "608060405234801561001057600080fd5b506040516020806114c5833981016040525160008054600160a060020a03191633179055808061004881640100000000610079810204565b5060028054600160a060020a03909216600160a060020a0319928316811790915560038054909216179055506100f3565b600160a060020a03811615156100f057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b50565b6113c3806101026000396000f3006080604052600436106101955763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663024c7ec7811461019a57806304ceaf41146101b65780632fe8a6ad1461021b57806336900c11146102445780633ab8857c1461026b5780634123ef601461028c57806349d10b64146102ad5780635f1b50fe146102c257806361cd756e146102d757806369be478414610308578063725b87861461032f57806379ba5097146103565780637a5f0ffd1461036b5780637b103999146103805780637f45c4c314610395578063865cf194146103aa5780638da5cb5b146103c25780638de6c3eb146103d7578063a109d214146103f8578063a43d5e9414610410578063a74498aa14610431578063ae22107f14610449578063b4a176d31461046a578063ceb9838c1461047f578063d4ee1d90146104a0578063d6c4b5b2146104b5578063e571049b146104d9578063e85455d7146104ee578063ee6a934c1461050f578063f2fde38b14610530578063f4fb86c014610551578063fba8f03114610572575b600080fd5b3480156101a657600080fd5b506101b46004351515610599565b005b3480156101c257600080fd5b506101cb6105e1565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156102075781810151838201526020016101ef565b505050509050019250505060405180910390f35b34801561022757600080fd5b50610230610647565b604080519115158252519081900360200190f35b34801561025057600080fd5b506101b4600160a060020a0360043581169060243516610668565b34801561027757600080fd5b50610230600160a060020a036004351661070a565b34801561029857600080fd5b50610230600160a060020a0360043516610729565b3480156102b957600080fd5b506101b4610747565b3480156102ce57600080fd5b506101cb6109a7565b3480156102e357600080fd5b506102ec610a0a565b60408051600160a060020a039092168252519081900360200190f35b34801561031457600080fd5b5061031d610a19565b60408051918252519081900360200190f35b34801561033b57600080fd5b50610230600160a060020a0360043581169060243516610a1f565b34801561036257600080fd5b506101b4610a51565b34801561037757600080fd5b5061031d610b05565b34801561038c57600080fd5b506102ec610b0b565b3480156103a157600080fd5b506101cb610b1a565b3480156103b657600080fd5b506102ec600435610b7d565b3480156103ce57600080fd5b506102ec610baa565b3480156103e357600080fd5b506101b4600160a060020a0360043516610bb9565b34801561040457600080fd5b506102ec600435610be0565b34801561041c57600080fd5b5061031d600160a060020a0360043516610bf2565b34801561043d57600080fd5b506102ec600435610c10565b34801561045557600080fd5b506101b4600160a060020a0360043516610c22565b34801561047657600080fd5b506101b4610c45565b34801561048b57600080fd5b506101b4600160a060020a0360043516610c71565b3480156104ac57600080fd5b506102ec610c94565b3480156104c157600080fd5b506102ec600160a060020a0360043516602435610ca3565b3480156104e557600080fd5b5061031d610ce6565b3480156104fa57600080fd5b50610230600160a060020a0360043516610cec565b34801561051b57600080fd5b506101b4600160a060020a0360043516610d0a565b34801561053c57600080fd5b506101b4600160a060020a0360043516610d2d565b34801561055d57600080fd5b506101cb600160a060020a0360043516610dbd565b34801561057e57600080fd5b506101b4600160a060020a0360043581169060243516610e36565b6105a1610f47565b60038054911515740100000000000000000000000000000000000000000274ff000000000000000000000000000000000000000019909216919091179055565b6060600460000180548060200260200160405190810160405280929190818152602001828054801561063c57602002820191906000526020600020905b8154600160a060020a0316815260019091019060200180831161061e575b505050505090505b90565b60035474010000000000000000000000000000000000000000900460ff1681565b600060008051602061135883398151915261068281610f99565b600160a060020a0384166000908152600960205260409020600181015490925015156106f757600880546001810182556000919091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee381018054600160a060020a031916600160a060020a03871617905582555b6107048260010184610ff2565b50505050565b600160a060020a03166000908152600960205260408120600101541190565b600160a060020a031660009081526005602052604090205460ff1690565b60008054600160a060020a031633148061077c575060035474010000000000000000000000000000000000000000900460ff16155b15156107c0576040805160e560020a62461bcd0281526020600482015260116024820152600080516020611378833981519152604482015290519081900360640190fd5b6107e97f436f6e74726163745265676973747279000000000000000000000000000000006110be565b600254909150600160a060020a038083169116148015906108125750600160a060020a03811615155b1515610868576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e56414c49445f5245474953545259000000000000000000000000604482015290519081900360640190fd5b604080517fbb34534c0000000000000000000000000000000000000000000000000000000081527f436f6e747261637452656769737472790000000000000000000000000000000060048201529051600091600160a060020a0384169163bb34534c9160248082019260209290919082900301818787803b1580156108ec57600080fd5b505af1158015610900573d6000803e3d6000fd5b505050506040513d602081101561091657600080fd5b5051600160a060020a03161415610977576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e56414c49445f5245474953545259000000000000000000000000604482015290519081900360640190fd5b6002805460038054600160a060020a03808416600160a060020a0319928316179092559091169216919091179055565b6060600860000180548060200260200160405190810160405280929190818152602001828054801561063c57602002820191906000526020600020908154600160a060020a0316815260019091019060200180831161061e575050505050905090565b600354600160a060020a031681565b60085490565b600160a060020a0391821660009081526009602090815260408083209390941682526002909201909152205460ff1690565b600154600160a060020a03163314610aa1576040805160e560020a62461bcd0281526020600482015260116024820152600080516020611378833981519152604482015290519081900360640190fd5b60015460008054604051600160a060020a0393841693909116917f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91a36001805460008054600160a060020a0319908116600160a060020a03841617909155169055565b60065490565b600254600160a060020a031681565b6060600660000180548060200260200160405190810160405280929190818152602001828054801561063c57602002820191906000526020600020908154600160a060020a0316815260019091019060200180831161061e575050505050905090565b600880546000919083908110610b8f57fe5b600091825260209091200154600160a060020a031692915050565b600054600160a060020a031681565b600080516020611358833981519152610bd181610f99565b610bdc600483610ff2565b5050565b600480546000919083908110610b8f57fe5b600160a060020a031660009081526009602052604090206001015490565b600680546000919083908110610b8f57fe5b600080516020611358833981519152610c3a81610f99565b610bdc600683611156565b610c4d610f47565b60035460028054600160a060020a031916600160a060020a03909216919091179055565b600080516020611358833981519152610c8981610f99565b610bdc600483611156565b600154600160a060020a031681565b600160a060020a0382166000908152600960205260408120600101805483908110610cca57fe5b600091825260209091200154600160a060020a03169392505050565b60045490565b600160a060020a031660009081526007602052604090205460ff1690565b600080516020611358833981519152610d2281610f99565b610bdc600683610ff2565b610d35610f47565b600054600160a060020a0382811691161415610d9b576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f53414d455f4f574e4552000000000000000000000000000000000000604482015290519081900360640190fd5b60018054600160a060020a031916600160a060020a0392909216919091179055565b600160a060020a038116600090815260096020908152604091829020600101805483518184028101840190945280845260609392830182828015610e2a57602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311610e0c575b50505050509050919050565b600080600080516020611358833981519152610e5181610f99565b600160a060020a03851660009081526009602052604090209250610e786001840185611156565b60018301541515610f4057600880546000198101908110610e9557fe5b60009182526020808320909101548554600160a060020a039091168084526009909252604090922082905560088054919450849290918110610ed357fe5b60009182526020909120018054600160a060020a031916600160a060020a03929092169190911790556008805490610f0f9060001983016112f6565b50600160a060020a0385166000908152600960205260408120818155906001820181610f3b828261131f565b505050505b5050505050565b600054600160a060020a03163314610f97576040805160e560020a62461bcd0281526020600482015260116024820152600080516020611378833981519152604482015290519081900360640190fd5b565b610fa2816110be565b600160a060020a03163314610fef576040805160e560020a62461bcd0281526020600482015260116024820152600080516020611378833981519152604482015290519081900360640190fd5b50565b600081610ffe81611296565b600160a060020a03831660009081526001850160205260409020805490925060ff1615611075576040805160e560020a62461bcd02815260206004820152601060248201527f4552525f494e56414c49445f4954454d00000000000000000000000000000000604482015290519081900360640190fd5b508254600180820185556000948552602090942081018054600160a060020a031916600160a060020a03949094169390931790925580830191909155805460ff19169091179055565b600254604080517fbb34534c000000000000000000000000000000000000000000000000000000008152600481018490529051600092600160a060020a03169163bb34534c91602480830192602092919082900301818787803b15801561112457600080fd5b505af1158015611138573d6000803e3d6000fd5b505050506040513d602081101561114e57600080fd5b505192915050565b6000808261116381611296565b600160a060020a03841660009081526001860160205260409020805490935060ff1615156111db576040805160e560020a62461bcd02815260206004820152601060248201527f4552525f494e56414c49445f4954454d00000000000000000000000000000000604482015290519081900360640190fd5b8454859060001981019081106111ed57fe5b6000918252602080832090910154600186810154600160a060020a039092168085528982019093526040909320909201829055865490935083918791811061123157fe5b60009182526020909120018054600160a060020a031916600160a060020a0392909216919091179055845461126a8660001983016112f6565b50505050600160a060020a03166000908152600191820160205260408120805460ff1916815590910155565b600160a060020a0381161515610fef576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b81548183558181111561131a5760008381526020902061131a918101908301611339565b505050565b5080546000825590600052602060002090810190610fef91905b61064491905b80821115611353576000815560010161133f565b50905600536f7672796e53776170436f6e766572746572526567697374727900000000004552525f4143434553535f44454e494544000000000000000000000000000000a165627a7a723058206b671ad1ad9aa02a1974fcfa03ba6bef1787e7de7a6491d7be73d7fc497f18470029", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP1 PUSH2 0x14C5 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 MSTORE MLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND CALLER OR SWAP1 SSTORE DUP1 DUP1 PUSH2 0x48 DUP2 PUSH5 0x100000000 PUSH2 0x79 DUP2 MUL DIV JUMP JUMPDEST POP PUSH1 0x2 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT SWAP3 DUP4 AND DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x3 DUP1 SLOAD SWAP1 SWAP3 AND OR SWAP1 SSTORE POP PUSH2 0xF3 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0xF0 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x13C3 DUP1 PUSH2 0x102 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x195 JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x24C7EC7 DUP2 EQ PUSH2 0x19A JUMPI DUP1 PUSH4 0x4CEAF41 EQ PUSH2 0x1B6 JUMPI DUP1 PUSH4 0x2FE8A6AD EQ PUSH2 0x21B JUMPI DUP1 PUSH4 0x36900C11 EQ PUSH2 0x244 JUMPI DUP1 PUSH4 0x3AB8857C EQ PUSH2 0x26B JUMPI DUP1 PUSH4 0x4123EF60 EQ PUSH2 0x28C JUMPI DUP1 PUSH4 0x49D10B64 EQ PUSH2 0x2AD JUMPI DUP1 PUSH4 0x5F1B50FE EQ PUSH2 0x2C2 JUMPI DUP1 PUSH4 0x61CD756E EQ PUSH2 0x2D7 JUMPI DUP1 PUSH4 0x69BE4784 EQ PUSH2 0x308 JUMPI DUP1 PUSH4 0x725B8786 EQ PUSH2 0x32F JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x356 JUMPI DUP1 PUSH4 0x7A5F0FFD EQ PUSH2 0x36B JUMPI DUP1 PUSH4 0x7B103999 EQ PUSH2 0x380 JUMPI DUP1 PUSH4 0x7F45C4C3 EQ PUSH2 0x395 JUMPI DUP1 PUSH4 0x865CF194 EQ PUSH2 0x3AA JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x3C2 JUMPI DUP1 PUSH4 0x8DE6C3EB EQ PUSH2 0x3D7 JUMPI DUP1 PUSH4 0xA109D214 EQ PUSH2 0x3F8 JUMPI DUP1 PUSH4 0xA43D5E94 EQ PUSH2 0x410 JUMPI DUP1 PUSH4 0xA74498AA EQ PUSH2 0x431 JUMPI DUP1 PUSH4 0xAE22107F EQ PUSH2 0x449 JUMPI DUP1 PUSH4 0xB4A176D3 EQ PUSH2 0x46A JUMPI DUP1 PUSH4 0xCEB9838C EQ PUSH2 0x47F JUMPI DUP1 PUSH4 0xD4EE1D90 EQ PUSH2 0x4A0 JUMPI DUP1 PUSH4 0xD6C4B5B2 EQ PUSH2 0x4B5 JUMPI DUP1 PUSH4 0xE571049B EQ PUSH2 0x4D9 JUMPI DUP1 PUSH4 0xE85455D7 EQ PUSH2 0x4EE JUMPI DUP1 PUSH4 0xEE6A934C EQ PUSH2 0x50F JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x530 JUMPI DUP1 PUSH4 0xF4FB86C0 EQ PUSH2 0x551 JUMPI DUP1 PUSH4 0xFBA8F031 EQ PUSH2 0x572 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1A6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B4 PUSH1 0x4 CALLDATALOAD ISZERO ISZERO PUSH2 0x599 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1C2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1CB PUSH2 0x5E1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP4 MLOAD DUP2 DUP4 ADD MSTORE DUP4 MLOAD SWAP2 SWAP3 DUP4 SWAP3 SWAP1 DUP4 ADD SWAP2 DUP6 DUP2 ADD SWAP2 MUL DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x207 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x1EF JUMP JUMPDEST POP POP POP POP SWAP1 POP ADD SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x227 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x230 PUSH2 0x647 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x250 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH2 0x668 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x277 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x230 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x70A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x298 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x230 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x729 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2B9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B4 PUSH2 0x747 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2CE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1CB PUSH2 0x9A7 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2E3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2EC PUSH2 0xA0A JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x314 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x31D PUSH2 0xA19 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x33B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x230 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH2 0xA1F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x362 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B4 PUSH2 0xA51 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x377 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x31D PUSH2 0xB05 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x38C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2EC PUSH2 0xB0B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3A1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1CB PUSH2 0xB1A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3B6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2EC PUSH1 0x4 CALLDATALOAD PUSH2 0xB7D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3CE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2EC PUSH2 0xBAA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3E3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0xBB9 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x404 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2EC PUSH1 0x4 CALLDATALOAD PUSH2 0xBE0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x41C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x31D PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0xBF2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x43D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2EC PUSH1 0x4 CALLDATALOAD PUSH2 0xC10 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x455 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0xC22 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x476 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B4 PUSH2 0xC45 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x48B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0xC71 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4AC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2EC PUSH2 0xC94 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4C1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2EC PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0xCA3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4E5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x31D PUSH2 0xCE6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4FA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x230 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0xCEC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x51B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0xD0A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x53C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0xD2D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x55D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1CB PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0xDBD JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x57E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH2 0xE36 JUMP JUMPDEST PUSH2 0x5A1 PUSH2 0xF47 JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD SWAP2 ISZERO ISZERO PUSH21 0x10000000000000000000000000000000000000000 MUL PUSH21 0xFF0000000000000000000000000000000000000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 PUSH1 0x0 ADD DUP1 SLOAD DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD DUP1 ISZERO PUSH2 0x63C JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x61E JUMPI JUMPDEST POP POP POP POP POP SWAP1 POP JUMPDEST SWAP1 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1358 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x682 DUP2 PUSH2 0xF99 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 DUP2 ADD SLOAD SWAP1 SWAP3 POP ISZERO ISZERO PUSH2 0x6F7 JUMPI PUSH1 0x8 DUP1 SLOAD PUSH1 0x1 DUP2 ADD DUP3 SSTORE PUSH1 0x0 SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0xF3F7A9FE364FAAB93B216DA50A3214154F22A0A2B415B23A84C8169E8B636EE3 DUP2 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND OR SWAP1 SSTORE DUP3 SSTORE JUMPDEST PUSH2 0x704 DUP3 PUSH1 0x1 ADD DUP5 PUSH2 0xFF2 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH1 0x1 ADD SLOAD GT SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ DUP1 PUSH2 0x77C JUMPI POP PUSH1 0x3 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x7C0 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1378 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x7E9 PUSH32 0x436F6E7472616374526567697374727900000000000000000000000000000000 PUSH2 0x10BE JUMP JUMPDEST PUSH1 0x2 SLOAD SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP4 AND SWAP2 AND EQ DUP1 ISZERO SWAP1 PUSH2 0x812 JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x868 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245474953545259000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0xBB34534C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH32 0x436F6E7472616374526567697374727900000000000000000000000000000000 PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP2 PUSH4 0xBB34534C SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x8EC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x900 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x916 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ ISZERO PUSH2 0x977 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245474953545259000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP5 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT SWAP3 DUP4 AND OR SWAP1 SWAP3 SSTORE SWAP1 SWAP2 AND SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x60 PUSH1 0x8 PUSH1 0x0 ADD DUP1 SLOAD DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD DUP1 ISZERO PUSH2 0x63C JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x61E JUMPI POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x8 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE PUSH1 0x2 SWAP1 SWAP3 ADD SWAP1 SWAP2 MSTORE KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0xAA1 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1378 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND SWAP4 SWAP1 SWAP2 AND SWAP2 PUSH32 0x343765429AEA5A34B3FF6A3785A98A5ABB2597ACA87BFBB58632C173D585373A SWAP2 LOG3 PUSH1 0x1 DUP1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND OR SWAP1 SWAP2 SSTORE AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x6 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x6 PUSH1 0x0 ADD DUP1 SLOAD DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD DUP1 ISZERO PUSH2 0x63C JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x61E JUMPI POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x8 DUP1 SLOAD PUSH1 0x0 SWAP2 SWAP1 DUP4 SWAP1 DUP2 LT PUSH2 0xB8F JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1358 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0xBD1 DUP2 PUSH2 0xF99 JUMP JUMPDEST PUSH2 0xBDC PUSH1 0x4 DUP4 PUSH2 0xFF2 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x4 DUP1 SLOAD PUSH1 0x0 SWAP2 SWAP1 DUP4 SWAP1 DUP2 LT PUSH2 0xB8F JUMPI INVALID JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x6 DUP1 SLOAD PUSH1 0x0 SWAP2 SWAP1 DUP4 SWAP1 DUP2 LT PUSH2 0xB8F JUMPI INVALID JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1358 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0xC3A DUP2 PUSH2 0xF99 JUMP JUMPDEST PUSH2 0xBDC PUSH1 0x6 DUP4 PUSH2 0x1156 JUMP JUMPDEST PUSH2 0xC4D PUSH2 0xF47 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x2 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1358 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0xC89 DUP2 PUSH2 0xF99 JUMP JUMPDEST PUSH2 0xBDC PUSH1 0x4 DUP4 PUSH2 0x1156 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH1 0x1 ADD DUP1 SLOAD DUP4 SWAP1 DUP2 LT PUSH2 0xCCA JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x4 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1358 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0xD22 DUP2 PUSH2 0xF99 JUMP JUMPDEST PUSH2 0xBDC PUSH1 0x6 DUP4 PUSH2 0xFF2 JUMP JUMPDEST PUSH2 0xD35 PUSH2 0xF47 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0xD9B JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F4F574E4552000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 PUSH1 0x1 ADD DUP1 SLOAD DUP4 MLOAD DUP2 DUP5 MUL DUP2 ADD DUP5 ADD SWAP1 SWAP5 MSTORE DUP1 DUP5 MSTORE PUSH1 0x60 SWAP4 SWAP3 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0xE2A JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xE0C JUMPI JUMPDEST POP POP POP POP POP SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1358 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0xE51 DUP2 PUSH2 0xF99 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP3 POP PUSH2 0xE78 PUSH1 0x1 DUP5 ADD DUP6 PUSH2 0x1156 JUMP JUMPDEST PUSH1 0x1 DUP4 ADD SLOAD ISZERO ISZERO PUSH2 0xF40 JUMPI PUSH1 0x8 DUP1 SLOAD PUSH1 0x0 NOT DUP2 ADD SWAP1 DUP2 LT PUSH2 0xE95 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 SWAP1 SWAP2 ADD SLOAD DUP6 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP2 AND DUP1 DUP5 MSTORE PUSH1 0x9 SWAP1 SWAP3 MSTORE PUSH1 0x40 SWAP1 SWAP3 KECCAK256 DUP3 SWAP1 SSTORE PUSH1 0x8 DUP1 SLOAD SWAP2 SWAP5 POP DUP5 SWAP3 SWAP1 SWAP2 DUP2 LT PUSH2 0xED3 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH1 0x8 DUP1 SLOAD SWAP1 PUSH2 0xF0F SWAP1 PUSH1 0x0 NOT DUP4 ADD PUSH2 0x12F6 JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP2 DUP2 SSTORE SWAP1 PUSH1 0x1 DUP3 ADD DUP2 PUSH2 0xF3B DUP3 DUP3 PUSH2 0x131F JUMP JUMPDEST POP POP POP POP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0xF97 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1378 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH2 0xFA2 DUP2 PUSH2 0x10BE JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0xFEF JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1378 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0xFFE DUP2 PUSH2 0x1296 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 DUP6 ADD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD SWAP1 SWAP3 POP PUSH1 0xFF AND ISZERO PUSH2 0x1075 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4954454D00000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP DUP3 SLOAD PUSH1 0x1 DUP1 DUP3 ADD DUP6 SSTORE PUSH1 0x0 SWAP5 DUP6 MSTORE PUSH1 0x20 SWAP1 SWAP5 KECCAK256 DUP2 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP5 SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 OR SWAP1 SWAP3 SSTORE DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 SSTORE DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xBB34534C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP2 PUSH4 0xBB34534C SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1124 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1138 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x114E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 PUSH2 0x1163 DUP2 PUSH2 0x1296 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 DUP7 ADD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD SWAP1 SWAP4 POP PUSH1 0xFF AND ISZERO ISZERO PUSH2 0x11DB JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4954454D00000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP5 SLOAD DUP6 SWAP1 PUSH1 0x0 NOT DUP2 ADD SWAP1 DUP2 LT PUSH2 0x11ED JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 SWAP1 SWAP2 ADD SLOAD PUSH1 0x1 DUP7 DUP2 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP1 DUP6 MSTORE DUP10 DUP3 ADD SWAP1 SWAP4 MSTORE PUSH1 0x40 SWAP1 SWAP4 KECCAK256 SWAP1 SWAP3 ADD DUP3 SWAP1 SSTORE DUP7 SLOAD SWAP1 SWAP4 POP DUP4 SWAP2 DUP8 SWAP2 DUP2 LT PUSH2 0x1231 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE DUP5 SLOAD PUSH2 0x126A DUP7 PUSH1 0x0 NOT DUP4 ADD PUSH2 0x12F6 JUMP JUMPDEST POP POP POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 SWAP2 DUP3 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND DUP2 SSTORE SWAP1 SWAP2 ADD SSTORE JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0xFEF JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP2 SLOAD DUP2 DUP4 SSTORE DUP2 DUP2 GT ISZERO PUSH2 0x131A JUMPI PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 SWAP1 KECCAK256 PUSH2 0x131A SWAP2 DUP2 ADD SWAP1 DUP4 ADD PUSH2 0x1339 JUMP JUMPDEST POP POP POP JUMP JUMPDEST POP DUP1 SLOAD PUSH1 0x0 DUP3 SSTORE SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP1 PUSH2 0xFEF SWAP2 SWAP1 JUMPDEST PUSH2 0x644 SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x1353 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x133F JUMP JUMPDEST POP SWAP1 JUMP STOP MSTORE8 PUSH16 0x7672796E53776170436F6E7665727465 PUSH19 0x526567697374727900000000004552525F4143 NUMBER GASLIMIT MSTORE8 MSTORE8 0x5f DIFFICULTY GASLIMIT 0x4e 0x49 GASLIMIT DIFFICULTY STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 PUSH12 0x671AD1AD9AA02A1974FCFA03 0xba PUSH12 0xEF1787E7DE7A6491D7BE73D7 0xfc 0x49 PUSH32 0x1847002900000000000000000000000000000000000000000000000000000000 ", - "sourceMap": "677:8149:7:-;;;1235:84;8:9:-1;5:2;;;30:1;27;20:12;5:2;1235:84:7;;;;;;;;;;;;;488:5:66;:18;;-1:-1:-1;;;;;;488:18:66;496:10;488:18;;;1235:84:7;;475:23:72;1235:84:7;475:13:72;;;;:23;:::i;:::-;-1:-1:-1;1931:8:60;:39;;-1:-1:-1;;;;;1931:39:60;;;-1:-1:-1;;;;;;1931:39:60;;;;;;;;1974:12;:43;;;;;;;;-1:-1:-1;677:8149:7;;553:117:72;-1:-1:-1;;;;;620:22:72;;;;612:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;553:117;:::o;677:8149:7:-;;;;;;;" - }, - "deployedBytecode": { - "linkReferences": {}, - "object": "6080604052600436106101955763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663024c7ec7811461019a57806304ceaf41146101b65780632fe8a6ad1461021b57806336900c11146102445780633ab8857c1461026b5780634123ef601461028c57806349d10b64146102ad5780635f1b50fe146102c257806361cd756e146102d757806369be478414610308578063725b87861461032f57806379ba5097146103565780637a5f0ffd1461036b5780637b103999146103805780637f45c4c314610395578063865cf194146103aa5780638da5cb5b146103c25780638de6c3eb146103d7578063a109d214146103f8578063a43d5e9414610410578063a74498aa14610431578063ae22107f14610449578063b4a176d31461046a578063ceb9838c1461047f578063d4ee1d90146104a0578063d6c4b5b2146104b5578063e571049b146104d9578063e85455d7146104ee578063ee6a934c1461050f578063f2fde38b14610530578063f4fb86c014610551578063fba8f03114610572575b600080fd5b3480156101a657600080fd5b506101b46004351515610599565b005b3480156101c257600080fd5b506101cb6105e1565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156102075781810151838201526020016101ef565b505050509050019250505060405180910390f35b34801561022757600080fd5b50610230610647565b604080519115158252519081900360200190f35b34801561025057600080fd5b506101b4600160a060020a0360043581169060243516610668565b34801561027757600080fd5b50610230600160a060020a036004351661070a565b34801561029857600080fd5b50610230600160a060020a0360043516610729565b3480156102b957600080fd5b506101b4610747565b3480156102ce57600080fd5b506101cb6109a7565b3480156102e357600080fd5b506102ec610a0a565b60408051600160a060020a039092168252519081900360200190f35b34801561031457600080fd5b5061031d610a19565b60408051918252519081900360200190f35b34801561033b57600080fd5b50610230600160a060020a0360043581169060243516610a1f565b34801561036257600080fd5b506101b4610a51565b34801561037757600080fd5b5061031d610b05565b34801561038c57600080fd5b506102ec610b0b565b3480156103a157600080fd5b506101cb610b1a565b3480156103b657600080fd5b506102ec600435610b7d565b3480156103ce57600080fd5b506102ec610baa565b3480156103e357600080fd5b506101b4600160a060020a0360043516610bb9565b34801561040457600080fd5b506102ec600435610be0565b34801561041c57600080fd5b5061031d600160a060020a0360043516610bf2565b34801561043d57600080fd5b506102ec600435610c10565b34801561045557600080fd5b506101b4600160a060020a0360043516610c22565b34801561047657600080fd5b506101b4610c45565b34801561048b57600080fd5b506101b4600160a060020a0360043516610c71565b3480156104ac57600080fd5b506102ec610c94565b3480156104c157600080fd5b506102ec600160a060020a0360043516602435610ca3565b3480156104e557600080fd5b5061031d610ce6565b3480156104fa57600080fd5b50610230600160a060020a0360043516610cec565b34801561051b57600080fd5b506101b4600160a060020a0360043516610d0a565b34801561053c57600080fd5b506101b4600160a060020a0360043516610d2d565b34801561055d57600080fd5b506101cb600160a060020a0360043516610dbd565b34801561057e57600080fd5b506101b4600160a060020a0360043581169060243516610e36565b6105a1610f47565b60038054911515740100000000000000000000000000000000000000000274ff000000000000000000000000000000000000000019909216919091179055565b6060600460000180548060200260200160405190810160405280929190818152602001828054801561063c57602002820191906000526020600020905b8154600160a060020a0316815260019091019060200180831161061e575b505050505090505b90565b60035474010000000000000000000000000000000000000000900460ff1681565b600060008051602061135883398151915261068281610f99565b600160a060020a0384166000908152600960205260409020600181015490925015156106f757600880546001810182556000919091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee381018054600160a060020a031916600160a060020a03871617905582555b6107048260010184610ff2565b50505050565b600160a060020a03166000908152600960205260408120600101541190565b600160a060020a031660009081526005602052604090205460ff1690565b60008054600160a060020a031633148061077c575060035474010000000000000000000000000000000000000000900460ff16155b15156107c0576040805160e560020a62461bcd0281526020600482015260116024820152600080516020611378833981519152604482015290519081900360640190fd5b6107e97f436f6e74726163745265676973747279000000000000000000000000000000006110be565b600254909150600160a060020a038083169116148015906108125750600160a060020a03811615155b1515610868576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e56414c49445f5245474953545259000000000000000000000000604482015290519081900360640190fd5b604080517fbb34534c0000000000000000000000000000000000000000000000000000000081527f436f6e747261637452656769737472790000000000000000000000000000000060048201529051600091600160a060020a0384169163bb34534c9160248082019260209290919082900301818787803b1580156108ec57600080fd5b505af1158015610900573d6000803e3d6000fd5b505050506040513d602081101561091657600080fd5b5051600160a060020a03161415610977576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e56414c49445f5245474953545259000000000000000000000000604482015290519081900360640190fd5b6002805460038054600160a060020a03808416600160a060020a0319928316179092559091169216919091179055565b6060600860000180548060200260200160405190810160405280929190818152602001828054801561063c57602002820191906000526020600020908154600160a060020a0316815260019091019060200180831161061e575050505050905090565b600354600160a060020a031681565b60085490565b600160a060020a0391821660009081526009602090815260408083209390941682526002909201909152205460ff1690565b600154600160a060020a03163314610aa1576040805160e560020a62461bcd0281526020600482015260116024820152600080516020611378833981519152604482015290519081900360640190fd5b60015460008054604051600160a060020a0393841693909116917f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91a36001805460008054600160a060020a0319908116600160a060020a03841617909155169055565b60065490565b600254600160a060020a031681565b6060600660000180548060200260200160405190810160405280929190818152602001828054801561063c57602002820191906000526020600020908154600160a060020a0316815260019091019060200180831161061e575050505050905090565b600880546000919083908110610b8f57fe5b600091825260209091200154600160a060020a031692915050565b600054600160a060020a031681565b600080516020611358833981519152610bd181610f99565b610bdc600483610ff2565b5050565b600480546000919083908110610b8f57fe5b600160a060020a031660009081526009602052604090206001015490565b600680546000919083908110610b8f57fe5b600080516020611358833981519152610c3a81610f99565b610bdc600683611156565b610c4d610f47565b60035460028054600160a060020a031916600160a060020a03909216919091179055565b600080516020611358833981519152610c8981610f99565b610bdc600483611156565b600154600160a060020a031681565b600160a060020a0382166000908152600960205260408120600101805483908110610cca57fe5b600091825260209091200154600160a060020a03169392505050565b60045490565b600160a060020a031660009081526007602052604090205460ff1690565b600080516020611358833981519152610d2281610f99565b610bdc600683610ff2565b610d35610f47565b600054600160a060020a0382811691161415610d9b576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f53414d455f4f574e4552000000000000000000000000000000000000604482015290519081900360640190fd5b60018054600160a060020a031916600160a060020a0392909216919091179055565b600160a060020a038116600090815260096020908152604091829020600101805483518184028101840190945280845260609392830182828015610e2a57602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311610e0c575b50505050509050919050565b600080600080516020611358833981519152610e5181610f99565b600160a060020a03851660009081526009602052604090209250610e786001840185611156565b60018301541515610f4057600880546000198101908110610e9557fe5b60009182526020808320909101548554600160a060020a039091168084526009909252604090922082905560088054919450849290918110610ed357fe5b60009182526020909120018054600160a060020a031916600160a060020a03929092169190911790556008805490610f0f9060001983016112f6565b50600160a060020a0385166000908152600960205260408120818155906001820181610f3b828261131f565b505050505b5050505050565b600054600160a060020a03163314610f97576040805160e560020a62461bcd0281526020600482015260116024820152600080516020611378833981519152604482015290519081900360640190fd5b565b610fa2816110be565b600160a060020a03163314610fef576040805160e560020a62461bcd0281526020600482015260116024820152600080516020611378833981519152604482015290519081900360640190fd5b50565b600081610ffe81611296565b600160a060020a03831660009081526001850160205260409020805490925060ff1615611075576040805160e560020a62461bcd02815260206004820152601060248201527f4552525f494e56414c49445f4954454d00000000000000000000000000000000604482015290519081900360640190fd5b508254600180820185556000948552602090942081018054600160a060020a031916600160a060020a03949094169390931790925580830191909155805460ff19169091179055565b600254604080517fbb34534c000000000000000000000000000000000000000000000000000000008152600481018490529051600092600160a060020a03169163bb34534c91602480830192602092919082900301818787803b15801561112457600080fd5b505af1158015611138573d6000803e3d6000fd5b505050506040513d602081101561114e57600080fd5b505192915050565b6000808261116381611296565b600160a060020a03841660009081526001860160205260409020805490935060ff1615156111db576040805160e560020a62461bcd02815260206004820152601060248201527f4552525f494e56414c49445f4954454d00000000000000000000000000000000604482015290519081900360640190fd5b8454859060001981019081106111ed57fe5b6000918252602080832090910154600186810154600160a060020a039092168085528982019093526040909320909201829055865490935083918791811061123157fe5b60009182526020909120018054600160a060020a031916600160a060020a0392909216919091179055845461126a8660001983016112f6565b50505050600160a060020a03166000908152600191820160205260408120805460ff1916815590910155565b600160a060020a0381161515610fef576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b81548183558181111561131a5760008381526020902061131a918101908301611339565b505050565b5080546000825590600052602060002090810190610fef91905b61064491905b80821115611353576000815560010161133f565b50905600536f7672796e53776170436f6e766572746572526567697374727900000000004552525f4143434553535f44454e494544000000000000000000000000000000a165627a7a723058206b671ad1ad9aa02a1974fcfa03ba6bef1787e7de7a6491d7be73d7fc497f18470029", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x195 JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x24C7EC7 DUP2 EQ PUSH2 0x19A JUMPI DUP1 PUSH4 0x4CEAF41 EQ PUSH2 0x1B6 JUMPI DUP1 PUSH4 0x2FE8A6AD EQ PUSH2 0x21B JUMPI DUP1 PUSH4 0x36900C11 EQ PUSH2 0x244 JUMPI DUP1 PUSH4 0x3AB8857C EQ PUSH2 0x26B JUMPI DUP1 PUSH4 0x4123EF60 EQ PUSH2 0x28C JUMPI DUP1 PUSH4 0x49D10B64 EQ PUSH2 0x2AD JUMPI DUP1 PUSH4 0x5F1B50FE EQ PUSH2 0x2C2 JUMPI DUP1 PUSH4 0x61CD756E EQ PUSH2 0x2D7 JUMPI DUP1 PUSH4 0x69BE4784 EQ PUSH2 0x308 JUMPI DUP1 PUSH4 0x725B8786 EQ PUSH2 0x32F JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x356 JUMPI DUP1 PUSH4 0x7A5F0FFD EQ PUSH2 0x36B JUMPI DUP1 PUSH4 0x7B103999 EQ PUSH2 0x380 JUMPI DUP1 PUSH4 0x7F45C4C3 EQ PUSH2 0x395 JUMPI DUP1 PUSH4 0x865CF194 EQ PUSH2 0x3AA JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x3C2 JUMPI DUP1 PUSH4 0x8DE6C3EB EQ PUSH2 0x3D7 JUMPI DUP1 PUSH4 0xA109D214 EQ PUSH2 0x3F8 JUMPI DUP1 PUSH4 0xA43D5E94 EQ PUSH2 0x410 JUMPI DUP1 PUSH4 0xA74498AA EQ PUSH2 0x431 JUMPI DUP1 PUSH4 0xAE22107F EQ PUSH2 0x449 JUMPI DUP1 PUSH4 0xB4A176D3 EQ PUSH2 0x46A JUMPI DUP1 PUSH4 0xCEB9838C EQ PUSH2 0x47F JUMPI DUP1 PUSH4 0xD4EE1D90 EQ PUSH2 0x4A0 JUMPI DUP1 PUSH4 0xD6C4B5B2 EQ PUSH2 0x4B5 JUMPI DUP1 PUSH4 0xE571049B EQ PUSH2 0x4D9 JUMPI DUP1 PUSH4 0xE85455D7 EQ PUSH2 0x4EE JUMPI DUP1 PUSH4 0xEE6A934C EQ PUSH2 0x50F JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x530 JUMPI DUP1 PUSH4 0xF4FB86C0 EQ PUSH2 0x551 JUMPI DUP1 PUSH4 0xFBA8F031 EQ PUSH2 0x572 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1A6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B4 PUSH1 0x4 CALLDATALOAD ISZERO ISZERO PUSH2 0x599 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1C2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1CB PUSH2 0x5E1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP4 MLOAD DUP2 DUP4 ADD MSTORE DUP4 MLOAD SWAP2 SWAP3 DUP4 SWAP3 SWAP1 DUP4 ADD SWAP2 DUP6 DUP2 ADD SWAP2 MUL DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x207 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x1EF JUMP JUMPDEST POP POP POP POP SWAP1 POP ADD SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x227 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x230 PUSH2 0x647 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x250 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH2 0x668 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x277 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x230 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x70A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x298 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x230 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x729 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2B9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B4 PUSH2 0x747 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2CE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1CB PUSH2 0x9A7 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2E3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2EC PUSH2 0xA0A JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x314 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x31D PUSH2 0xA19 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x33B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x230 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH2 0xA1F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x362 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B4 PUSH2 0xA51 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x377 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x31D PUSH2 0xB05 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x38C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2EC PUSH2 0xB0B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3A1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1CB PUSH2 0xB1A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3B6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2EC PUSH1 0x4 CALLDATALOAD PUSH2 0xB7D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3CE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2EC PUSH2 0xBAA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3E3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0xBB9 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x404 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2EC PUSH1 0x4 CALLDATALOAD PUSH2 0xBE0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x41C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x31D PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0xBF2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x43D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2EC PUSH1 0x4 CALLDATALOAD PUSH2 0xC10 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x455 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0xC22 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x476 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B4 PUSH2 0xC45 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x48B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0xC71 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4AC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2EC PUSH2 0xC94 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4C1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2EC PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0xCA3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4E5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x31D PUSH2 0xCE6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4FA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x230 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0xCEC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x51B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0xD0A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x53C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0xD2D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x55D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1CB PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0xDBD JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x57E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH2 0xE36 JUMP JUMPDEST PUSH2 0x5A1 PUSH2 0xF47 JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD SWAP2 ISZERO ISZERO PUSH21 0x10000000000000000000000000000000000000000 MUL PUSH21 0xFF0000000000000000000000000000000000000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 PUSH1 0x0 ADD DUP1 SLOAD DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD DUP1 ISZERO PUSH2 0x63C JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x61E JUMPI JUMPDEST POP POP POP POP POP SWAP1 POP JUMPDEST SWAP1 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1358 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x682 DUP2 PUSH2 0xF99 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 DUP2 ADD SLOAD SWAP1 SWAP3 POP ISZERO ISZERO PUSH2 0x6F7 JUMPI PUSH1 0x8 DUP1 SLOAD PUSH1 0x1 DUP2 ADD DUP3 SSTORE PUSH1 0x0 SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0xF3F7A9FE364FAAB93B216DA50A3214154F22A0A2B415B23A84C8169E8B636EE3 DUP2 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND OR SWAP1 SSTORE DUP3 SSTORE JUMPDEST PUSH2 0x704 DUP3 PUSH1 0x1 ADD DUP5 PUSH2 0xFF2 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH1 0x1 ADD SLOAD GT SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ DUP1 PUSH2 0x77C JUMPI POP PUSH1 0x3 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x7C0 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1378 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x7E9 PUSH32 0x436F6E7472616374526567697374727900000000000000000000000000000000 PUSH2 0x10BE JUMP JUMPDEST PUSH1 0x2 SLOAD SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP4 AND SWAP2 AND EQ DUP1 ISZERO SWAP1 PUSH2 0x812 JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x868 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245474953545259000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0xBB34534C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH32 0x436F6E7472616374526567697374727900000000000000000000000000000000 PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP2 PUSH4 0xBB34534C SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x8EC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x900 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x916 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ ISZERO PUSH2 0x977 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245474953545259000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP5 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT SWAP3 DUP4 AND OR SWAP1 SWAP3 SSTORE SWAP1 SWAP2 AND SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x60 PUSH1 0x8 PUSH1 0x0 ADD DUP1 SLOAD DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD DUP1 ISZERO PUSH2 0x63C JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x61E JUMPI POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x8 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE PUSH1 0x2 SWAP1 SWAP3 ADD SWAP1 SWAP2 MSTORE KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0xAA1 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1378 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND SWAP4 SWAP1 SWAP2 AND SWAP2 PUSH32 0x343765429AEA5A34B3FF6A3785A98A5ABB2597ACA87BFBB58632C173D585373A SWAP2 LOG3 PUSH1 0x1 DUP1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND OR SWAP1 SWAP2 SSTORE AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x6 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x6 PUSH1 0x0 ADD DUP1 SLOAD DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD DUP1 ISZERO PUSH2 0x63C JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x61E JUMPI POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x8 DUP1 SLOAD PUSH1 0x0 SWAP2 SWAP1 DUP4 SWAP1 DUP2 LT PUSH2 0xB8F JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1358 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0xBD1 DUP2 PUSH2 0xF99 JUMP JUMPDEST PUSH2 0xBDC PUSH1 0x4 DUP4 PUSH2 0xFF2 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x4 DUP1 SLOAD PUSH1 0x0 SWAP2 SWAP1 DUP4 SWAP1 DUP2 LT PUSH2 0xB8F JUMPI INVALID JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x6 DUP1 SLOAD PUSH1 0x0 SWAP2 SWAP1 DUP4 SWAP1 DUP2 LT PUSH2 0xB8F JUMPI INVALID JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1358 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0xC3A DUP2 PUSH2 0xF99 JUMP JUMPDEST PUSH2 0xBDC PUSH1 0x6 DUP4 PUSH2 0x1156 JUMP JUMPDEST PUSH2 0xC4D PUSH2 0xF47 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x2 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1358 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0xC89 DUP2 PUSH2 0xF99 JUMP JUMPDEST PUSH2 0xBDC PUSH1 0x4 DUP4 PUSH2 0x1156 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH1 0x1 ADD DUP1 SLOAD DUP4 SWAP1 DUP2 LT PUSH2 0xCCA JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x4 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1358 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0xD22 DUP2 PUSH2 0xF99 JUMP JUMPDEST PUSH2 0xBDC PUSH1 0x6 DUP4 PUSH2 0xFF2 JUMP JUMPDEST PUSH2 0xD35 PUSH2 0xF47 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0xD9B JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F4F574E4552000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 PUSH1 0x1 ADD DUP1 SLOAD DUP4 MLOAD DUP2 DUP5 MUL DUP2 ADD DUP5 ADD SWAP1 SWAP5 MSTORE DUP1 DUP5 MSTORE PUSH1 0x60 SWAP4 SWAP3 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0xE2A JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xE0C JUMPI JUMPDEST POP POP POP POP POP SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1358 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0xE51 DUP2 PUSH2 0xF99 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP3 POP PUSH2 0xE78 PUSH1 0x1 DUP5 ADD DUP6 PUSH2 0x1156 JUMP JUMPDEST PUSH1 0x1 DUP4 ADD SLOAD ISZERO ISZERO PUSH2 0xF40 JUMPI PUSH1 0x8 DUP1 SLOAD PUSH1 0x0 NOT DUP2 ADD SWAP1 DUP2 LT PUSH2 0xE95 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 SWAP1 SWAP2 ADD SLOAD DUP6 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP2 AND DUP1 DUP5 MSTORE PUSH1 0x9 SWAP1 SWAP3 MSTORE PUSH1 0x40 SWAP1 SWAP3 KECCAK256 DUP3 SWAP1 SSTORE PUSH1 0x8 DUP1 SLOAD SWAP2 SWAP5 POP DUP5 SWAP3 SWAP1 SWAP2 DUP2 LT PUSH2 0xED3 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH1 0x8 DUP1 SLOAD SWAP1 PUSH2 0xF0F SWAP1 PUSH1 0x0 NOT DUP4 ADD PUSH2 0x12F6 JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP2 DUP2 SSTORE SWAP1 PUSH1 0x1 DUP3 ADD DUP2 PUSH2 0xF3B DUP3 DUP3 PUSH2 0x131F JUMP JUMPDEST POP POP POP POP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0xF97 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1378 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH2 0xFA2 DUP2 PUSH2 0x10BE JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0xFEF JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1378 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0xFFE DUP2 PUSH2 0x1296 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 DUP6 ADD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD SWAP1 SWAP3 POP PUSH1 0xFF AND ISZERO PUSH2 0x1075 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4954454D00000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP DUP3 SLOAD PUSH1 0x1 DUP1 DUP3 ADD DUP6 SSTORE PUSH1 0x0 SWAP5 DUP6 MSTORE PUSH1 0x20 SWAP1 SWAP5 KECCAK256 DUP2 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP5 SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 OR SWAP1 SWAP3 SSTORE DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 SSTORE DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xBB34534C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP2 PUSH4 0xBB34534C SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1124 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1138 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x114E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 PUSH2 0x1163 DUP2 PUSH2 0x1296 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 DUP7 ADD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD SWAP1 SWAP4 POP PUSH1 0xFF AND ISZERO ISZERO PUSH2 0x11DB JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4954454D00000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP5 SLOAD DUP6 SWAP1 PUSH1 0x0 NOT DUP2 ADD SWAP1 DUP2 LT PUSH2 0x11ED JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 SWAP1 SWAP2 ADD SLOAD PUSH1 0x1 DUP7 DUP2 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP1 DUP6 MSTORE DUP10 DUP3 ADD SWAP1 SWAP4 MSTORE PUSH1 0x40 SWAP1 SWAP4 KECCAK256 SWAP1 SWAP3 ADD DUP3 SWAP1 SSTORE DUP7 SLOAD SWAP1 SWAP4 POP DUP4 SWAP2 DUP8 SWAP2 DUP2 LT PUSH2 0x1231 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE DUP5 SLOAD PUSH2 0x126A DUP7 PUSH1 0x0 NOT DUP4 ADD PUSH2 0x12F6 JUMP JUMPDEST POP POP POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 SWAP2 DUP3 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND DUP2 SSTORE SWAP1 SWAP2 ADD SSTORE JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0xFEF JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP2 SLOAD DUP2 DUP4 SSTORE DUP2 DUP2 GT ISZERO PUSH2 0x131A JUMPI PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 SWAP1 KECCAK256 PUSH2 0x131A SWAP2 DUP2 ADD SWAP1 DUP4 ADD PUSH2 0x1339 JUMP JUMPDEST POP POP POP JUMP JUMPDEST POP DUP1 SLOAD PUSH1 0x0 DUP3 SSTORE SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP1 PUSH2 0xFEF SWAP2 SWAP1 JUMPDEST PUSH2 0x644 SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x1353 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x133F JUMP JUMPDEST POP SWAP1 JUMP STOP MSTORE8 PUSH16 0x7672796E53776170436F6E7665727465 PUSH19 0x526567697374727900000000004552525F4143 NUMBER GASLIMIT MSTORE8 MSTORE8 0x5f DIFFICULTY GASLIMIT 0x4e 0x49 GASLIMIT DIFFICULTY STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 PUSH12 0x671AD1AD9AA02A1974FCFA03 0xba PUSH12 0xEF1787E7DE7A6491D7BE73D7 0xfc 0x49 PUSH32 0x1847002900000000000000000000000000000000000000000000000000000000 ", - "sourceMap": "677:8149:7:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3280:206:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3280:206:60;;;;;;;;;3666:92:7;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3666:92:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;3666:92:7;;;;;;;;;;;;;;;;;1250:38:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1250:38:60;;;;;;;;;;;;;;;;;;;;;;2319:328:7;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2319:328:7;-1:-1:-1;;;;;2319:328:7;;;;;;;;;;6123:142;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;6123:142:7;-1:-1:-1;;;;;6123:142:7;;;;;4173:113;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4173:113:7;-1:-1:-1;;;;;4173:113:7;;;;;2080:832:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2080:832:60;;;;5568:104:7;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5568:104:7;;;;1165:37:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1165:37:60;;;;;;;;-1:-1:-1;;;;;1165:37:60;;;;;;;;;;;;;;5351:113:7;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5351:113:7;;;;;;;;;;;;;;;;;;;;7756:193;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;7756:193:7;-1:-1:-1;;;;;7756:193:7;;;;;;;;;;1159:176:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1159:176:66;;;;4388:107:7;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4388:107:7;;;;1085:33:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1085:33:60;;;;4593:98:7;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4593:98:7;;;;5818:123;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;5818:123:7;;;;;157:20:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;157:20:66;;;;1399:119:7;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1399:119:7;-1:-1:-1;;;;;1399:119:7;;;;;3892:111;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3892:111:7;;;;;6494:179;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;6494:179:7;-1:-1:-1;;;;;6494:179:7;;;;;4831:117;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4831:117:7;;;;;2038:137;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2038:137:7;-1:-1:-1;;;;;2038:137:7;;;;;2974:119:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2974:119:60;;;;1601:125:7;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1601:125:7;-1:-1:-1;;;;;1601:125:7;;;;;180:23:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;180:23:66;;;;7288:191:7;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;7288:191:7;-1:-1:-1;;;;;7288:191:7;;;;;;;3473:101;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3473:101:7;;;;5124:119;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;5124:119:7;-1:-1:-1;;;;;5124:119:7;;;;;1815:131;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1815:131:7;-1:-1:-1;;;;;1815:131:7;;;;;945:140:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;945:140:66;-1:-1:-1;;;;;945:140:66;;;;;6898:170:7;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;6898:170:7;-1:-1:-1;;;;;6898:170:7;;;;;2794:583;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2794:583:7;-1:-1:-1;;;;;2794:583:7;;;;;;;;;;3280:206:60;575:12:66;:10;:12::i;:::-;3426:26:60;:56;;;;;;;-1:-1:-1;;3426:56:60;;;;;;;;;3280:206::o;3666:92:7:-;3715:9;3737:11;:17;;3730:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3730:24:7;;;;;;;;;;;;;;;;;;;;;;;3666:92;;:::o;1250:38:60:-;;;;;;;;;:::o;2319:328:7:-;2434:17;-1:-1:-1;;;;;;;;;;;1510:20:60;1516:13;1510:5;:20::i;:::-;-1:-1:-1;;;;;2454:42:7;;;;;;:23;:42;;;;;:23;2504:10;;:23;2454:42;;-1:-1:-1;2504:28:7;2500:108;;;2552:17;27:10:-1;;2602:1:7;23:18:-1;;45:23;;-1:-1;2552:47:7;;;;;;;;;-1:-1:-1;;;;;;2552:47:7;-1:-1:-1;;;;;2552:47:7;;;;;2539:64;;2500:108;2611:32;2619:4;:10;;2631:11;2611:7;:32::i;:::-;2319:328;;;;:::o;6123:142::-;-1:-1:-1;;;;;6207:31:7;6190:4;6207:31;;;:23;:31;;;;;:23;:37;:50;:54;;6123:142::o;4173:113::-;-1:-1:-1;;;;;4251:25:7;4234:4;4251:25;;;:17;:25;;;;;:31;;;;4173:113::o;2080:832:60:-;2281:29;2183:5;;-1:-1:-1;;;;;2183:5:60;2169:10;:19;;:50;;-1:-1:-1;2193:26:60;;;;;;;2192:27;2169:50;2161:80;;;;;;;-1:-1:-1;;;;;2161:80:60;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2161:80:60;;;;;;;;;;;;;;;2331:28;2341:17;2331:9;:28::i;:::-;2465:8;;2281:79;;-1:-1:-1;;;;;;2442:32:60;;;2465:8;;2442:32;;;;:61;;-1:-1:-1;;;;;;2478:25:60;;;;2442:61;2434:94;;;;;;;-1:-1:-1;;;;;2434:94:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;2628:40;;;;;;2650:17;2628:40;;;;;;2680:1;;-1:-1:-1;;;;;2628:21:60;;;;;:40;;;;;;;;;;;;;;;2680:1;2628:21;:40;;;5:2:-1;;;;30:1;27;20:12;5:2;2628:40:60;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2628:40:60;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2628:40:60;-1:-1:-1;;;;;2628:54:60;;;2620:87;;;;;-1:-1:-1;;;;;2620:87:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;2799:8;;;2784:12;:23;;-1:-1:-1;;;;;2799:8:60;;;-1:-1:-1;;;;;;2784:23:60;;;;;;;2886:22;;;;;;;;;;;2080:832::o;5568:104:7:-;5623:9;5645:17;:23;;5638:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5638:30:7;;;;;;;;;;;;;;;;;;;;;;5568:104;:::o;1165:37:60:-;;;-1:-1:-1;;;;;1165:37:60;;:::o;5351:113:7:-;5430:17;:30;5351:113;:::o;7756:193::-;-1:-1:-1;;;;;7877:42:7;;;7860:4;7877:42;;;:23;:42;;;;;;;;:62;;;;;;:54;;;;:62;;;;:68;;;;7756:193::o;1159:176:66:-;1219:8;;-1:-1:-1;;;;;1219:8:66;1205:10;:22;1197:52;;;;;-1:-1:-1;;;;;1197:52:66;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1197:52:66;;;;;;;;;;;;;;;1277:8;;;1270:5;;1258:28;;-1:-1:-1;;;;;1277:8:66;;;;1270:5;;;;1258:28;;;1298:8;;;;1290:16;;-1:-1:-1;;;;;;1290:16:66;;;-1:-1:-1;;;;;1298:8:66;;1290:16;;;;1310:21;;;1159:176::o;4388:107:7:-;4464:14;:27;4388:107;:::o;1085:33:60:-;;;-1:-1:-1;;;;;1085:33:60;;:::o;4593:98:7:-;4645:9;4667:14;:20;;4660:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4660:27:7;;;;;;;;;;;;;;;;;;;;;;4593:98;:::o;5818:123::-;5906:17;:31;;5886:7;;5906:17;5930:6;;5906:31;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5906:31:7;;5818:123;-1:-1:-1;;5818:123:7:o;157:20:66:-;;;-1:-1:-1;;;;;157:20:66;;:::o;1399:119:7:-;-1:-1:-1;;;;;;;;;;;1510:20:60;1516:13;1510:5;:20::i;:::-;1481:33:7;1489:11;1502;1481:7;:33::i;:::-;1399:119;;:::o;3892:111::-;3974:11;:25;;3954:7;;3974:11;3992:6;;3974:25;;;;;6494:179;-1:-1:-1;;;;;6608:42:7;6588:7;6608:42;;;:23;:42;;;;;:23;:48;:61;;6494:179::o;4831:117::-;4916:14;:28;;4896:7;;4916:14;4937:6;;4916:28;;;;;2038:137;-1:-1:-1;;;;;;;;;;;1510:20:60;1516:13;1510:5;:20::i;:::-;2129:42:7;2140:14;2156;2129:10;:42::i;2974:119:60:-;575:12:66;:10;:12::i;:::-;3077::60;;3066:8;:23;;-1:-1:-1;;;;;;3066:23:60;-1:-1:-1;;;;;3077:12:60;;;3066:23;;;;;;2974:119::o;1601:125:7:-;-1:-1:-1;;;;;;;;;;;1510:20:60;1516:13;1510:5;:20::i;:::-;1686:36:7;1697:11;1710;1686:10;:36::i;180:23:66:-;;;-1:-1:-1;;;;;180:23:66;;:::o;7288:191:7:-;-1:-1:-1;;;;;7413:42:7;;7393:7;7413:42;;;:23;:42;;;;;:23;:48;:62;;7468:6;;7413:62;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7413:62:7;;7288:191;-1:-1:-1;;;7288:191:7:o;3473:101::-;3546:11;:24;3473:101;:::o;5124:119::-;-1:-1:-1;;;;;5205:28:7;5188:4;5205:28;;;:20;:28;;;;;:34;;;;5124:119::o;1815:131::-;-1:-1:-1;;;;;;;;;;;1510:20:60;1516:13;1510:5;:20::i;:::-;1903:39:7;1911:14;1927;1903:7;:39::i;945:140:66:-;575:12;:10;:12::i;:::-;1033:5;;-1:-1:-1;;;;;1020:18:66;;;1033:5;;1020:18;;1012:45;;;;;-1:-1:-1;;;;;1012:45:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;1061:8;:20;;-1:-1:-1;;;;;;1061:20:66;-1:-1:-1;;;;;1061:20:66;;;;;;;;;;945:140::o;6898:170:7:-;-1:-1:-1;;;;;7010:42:7;;;;;;:23;:42;;;;;;;;;:23;:48;7003:61;;;;;;;;;;;;;;;;;6988:9;;7003:61;;;7010:48;7003:61;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7003:61:7;;;;;;;;;;;;;;;;;;;;;;;6898:170;;;:::o;2794:583::-;2912:17;3056:28;-1:-1:-1;;;;;;;;;;;1510:20:60;1516:13;1510:5;:20::i;:::-;-1:-1:-1;;;;;2932:42:7;;;;;;:23;:42;;;;;;-1:-1:-1;2978:35:7;2932:23;2989:10;;3001:11;2978:10;:35::i;:::-;3021:10;;;:23;:28;3017:357;;;3087:17;3111:30;;-1:-1:-1;;3111:34:7;;;3087:59;;;;;;;;;;;;;;;;;;3205:10;;-1:-1:-1;;;;;3087:59:7;;;3151:45;;;:23;:45;;;;;;;:64;;;:17;3220:35;;3087:59;;-1:-1:-1;3087:59:7;;3151:17;;3220:35;;;;;;;;;;;;;;;:58;;-1:-1:-1;;;;;;3220:58:7;-1:-1:-1;;;;;3220:58:7;;;;;;;;;;3283:17;:32;;;;;-1:-1:-1;;3283:32:7;;;:::i;:::-;-1:-1:-1;;;;;;3327:42:7;;;;;;:23;:42;;;;;3320:49;;;3327:42;:23;3320:49;;3327:42;3320:49;;3327:42;3320:49;:::i;:::-;;;;;3017:357;2794:583;;;;;:::o;642:93:66:-;704:5;;-1:-1:-1;;;;;704:5:66;690:10;:19;682:49;;;;;-1:-1:-1;;;;;682:49:66;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;682:49:66;;;;;;;;;;;;;;;642:93::o;1585:128:60:-;1663:24;1673:13;1663:9;:24::i;:::-;-1:-1:-1;;;;;1649:38:60;:10;:38;1641:68;;;;;-1:-1:-1;;;;;1641:68:60;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1641:68:60;;;;;;;;;;;;;;;1585:128;:::o;8070:245:7:-;8159:17;8147:6;475:23:72;489:8;475:13;:23::i;:::-;-1:-1:-1;;;;;8179:20:7;;;;;;:12;;;:20;;;;;8212:10;;8179:20;;-1:-1:-1;8212:10:7;;8211:11;8203:40;;;;;-1:-1:-1;;;;;8203:40:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;27:10;;8289:1:7;23:18:-1;;;45:23;;-1:-1;8261:25:7;;;;;;;;;;;-1:-1:-1;;;;;;8261:25:7;-1:-1:-1;;;;;8261:25:7;;;;;;;;;;;8248:10;;;:42;;;;8294:17;;-1:-1:-1;;8294:17:7;;;;;;8070:245::o;3647:122:60:-;3732:8;;:33;;;;;;;;;;;;;;3712:7;;-1:-1:-1;;;;;3732:8:60;;:18;;:33;;;;;;;;;;;;;;3712:7;3732:8;:33;;;5:2:-1;;;;30:1;27;20:12;5:2;3732:33:60;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3732:33:60;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3732:33:60;;3647:122;-1:-1:-1;;3647:122:60:o;8441:383:7:-;8533:17;8621;8521:6;475:23:72;489:8;475:13;:23::i;:::-;-1:-1:-1;;;;;8553:20:7;;;;;;:12;;;:20;;;;;8585:10;;8553:20;;-1:-1:-1;8585:10:7;;8577:39;;;;;;;-1:-1:-1;;;;;8577:39:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;8654:19;;8641:6;;-1:-1:-1;;8654:23:7;;;8641:37;;;;;;;;;;;;;;;;;;;8714:10;;;;-1:-1:-1;;;;;8641:37:7;;;8682:23;;;:12;;;:23;;;;;;;:29;;;:42;;;8728:24;;8641:37;;-1:-1:-1;8641:37:7;;8682:6;;8728:24;;;;;;;;;;;;;;;:36;;-1:-1:-1;;;;;;8728:36:7;-1:-1:-1;;;;;8728:36:7;;;;;;;;;;8768:21;;;;-1:-1:-1;;8768:21:7;;;:::i;:::-;-1:-1:-1;;;;;;;;;8800:20:7;;;;;:12;;;;:20;;;;;8793:27;;-1:-1:-1;;8793:27:7;;;;;;;8441:383::o;553:117:72:-;-1:-1:-1;;;;;620:22:72;;;;612:54;;;;;-1:-1:-1;;;;;612:54:72;;;;;;;;;;;;;;;;;;;;;;;;;;;677:8149:7;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;" - }, - "methodIdentifiers": { - "acceptOwnership()": "79ba5097", - "addConvertibleToken(address,address)": "36900c11", - "addLiquidityPool(address)": "ee6a934c", - "addSmartToken(address)": "8de6c3eb", - "getConvertibleToken(uint256)": "865cf194", - "getConvertibleTokenCount()": "69be4784", - "getConvertibleTokenSmartToken(address,uint256)": "d6c4b5b2", - "getConvertibleTokenSmartTokenCount(address)": "a43d5e94", - "getConvertibleTokenSmartTokens(address)": "f4fb86c0", - "getConvertibleTokens()": "5f1b50fe", - "getLiquidityPool(uint256)": "a74498aa", - "getLiquidityPoolCount()": "7a5f0ffd", - "getLiquidityPools()": "7f45c4c3", - "getSmartToken(uint256)": "a109d214", - "getSmartTokenCount()": "e571049b", - "getSmartTokens()": "04ceaf41", - "isConvertibleToken(address)": "3ab8857c", - "isConvertibleTokenSmartToken(address,address)": "725b8786", - "isLiquidityPool(address)": "e85455d7", - "isSmartToken(address)": "4123ef60", - "newOwner()": "d4ee1d90", - "onlyOwnerCanUpdateRegistry()": "2fe8a6ad", - "owner()": "8da5cb5b", - "prevRegistry()": "61cd756e", - "registry()": "7b103999", - "removeConvertibleToken(address,address)": "fba8f031", - "removeLiquidityPool(address)": "ae22107f", - "removeSmartToken(address)": "ceb9838c", - "restoreRegistry()": "b4a176d3", - "restrictRegistryUpdate(bool)": "024c7ec7", - "transferOwnership(address)": "f2fde38b", - "updateRegistry()": "49d10b64" - } - }, - "userdoc": { - "methods": {} - } - } - }, - "solidity/contracts/converter/ConverterUpgrader.sol": { - "ConverterUpgrader": { - "abi": [ - { - "constant": false, - "inputs": [ - { - "name": "_onlyOwnerCanUpdateRegistry", - "type": "bool" - } - ], - "name": "restrictRegistryUpdate", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "onlyOwnerCanUpdateRegistry", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "updateRegistry", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "prevRegistry", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "acceptOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "registry", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "owner", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_version", - "type": "uint16" - } - ], - "name": "upgrade", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "restoreRegistry", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "etherToken", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_version", - "type": "bytes32" - } - ], - "name": "upgrade", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "newOwner", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_converter", - "type": "address" - }, - { - "name": "_version", - "type": "bytes32" - } - ], - "name": "upgradeOld", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "name": "_registry", - "type": "address" - }, - { - "name": "_etherToken", - "type": "address" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "_converter", - "type": "address" - }, - { - "indexed": true, - "name": "_owner", - "type": "address" - } - ], - "name": "ConverterOwned", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "_oldConverter", - "type": "address" - }, - { - "indexed": true, - "name": "_newConverter", - "type": "address" - } - ], - "name": "ConverterUpgrade", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "_prevOwner", - "type": "address" - }, - { - "indexed": true, - "name": "_newOwner", - "type": "address" - } - ], - "name": "OwnerUpdate", - "type": "event" - } - ], - "devdoc": { - "methods": { - "acceptOwnership()": { - "details": "used by a new owner to accept an ownership transfer" - }, - "restoreRegistry()": { - "details": "restores the previous contract-registry" - }, - "restrictRegistryUpdate(bool)": { - "details": "restricts the permission to update the contract-registry", - "params": { - "_onlyOwnerCanUpdateRegistry": "indicates whether or not permission is restricted to owner only" - } - }, - "transferOwnership(address)": { - "details": "allows transferring the contract ownership the new owner still needs to accept the transfer can only be called by the contract owner", - "params": { - "_newOwner": "new contract owner" - } - }, - "updateRegistry()": { - "details": "updates to the new contract-registry" - }, - "upgrade(bytes32)": { - "details": "upgrades an old converter to the latest version will throw if ownership wasn't transferred to the upgrader before calling this function. ownership of the new converter will be transferred back to the original owner. fires the ConverterUpgrade event upon success. can only be called by a converter", - "params": { - "_version": "old converter version" - } - }, - "upgrade(uint16)": { - "details": "upgrades an old converter to the latest version will throw if ownership wasn't transferred to the upgrader before calling this function. ownership of the new converter will be transferred back to the original owner. fires the ConverterUpgrade event upon success. can only be called by a converter", - "params": { - "_version": "old converter version" - } - }, - "upgradeOld(address,bytes32)": { - "details": "upgrades an old converter to the latest version will throw if ownership wasn't transferred to the upgrader before calling this function. ownership of the new converter will be transferred back to the original owner. fires the ConverterUpgrade event upon success.", - "params": { - "_converter": "old converter contract address", - "_version": "old converter version" - } - } - } - }, - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "608060405234801561001057600080fd5b506040516040806120df83398101604052805160209091015160008054600160a060020a03191633179055818061004f81640100000000610092810204565b5060028054600160a060020a03928316600160a060020a03199182168117909255600380548216909217909155600480549390921692169190911790555061010c565b600160a060020a038116151561010957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b50565b611fc48061011b6000396000f3006080604052600436106100b65763ffffffff60e060020a600035041663024c7ec781146100bb5780632fe8a6ad146100d757806349d10b641461010057806361cd756e1461011557806379ba5097146101465780637b1039991461015b5780638da5cb5b1461017057806390f58c9614610185578063b4a176d3146101a1578063b8066bcb146101b6578063bc444e13146101cb578063d4ee1d90146101e3578063f2cfed87146101f8578063f2fde38b1461021c575b600080fd5b3480156100c757600080fd5b506100d5600435151561023d565b005b3480156100e357600080fd5b506100ec610285565b604080519115158252519081900360200190f35b34801561010c57600080fd5b506100d56102a6565b34801561012157600080fd5b5061012a610525565b60408051600160a060020a039092168252519081900360200190f35b34801561015257600080fd5b506100d5610534565b34801561016757600080fd5b5061012a610607565b34801561017c57600080fd5b5061012a610616565b34801561019157600080fd5b506100d561ffff60043516610625565b3480156101ad57600080fd5b506100d5610636565b3480156101c257600080fd5b5061012a61066f565b3480156101d757600080fd5b506100d560043561067e565b3480156101ef57600080fd5b5061012a610688565b34801561020457600080fd5b506100d5600160a060020a0360043516602435610697565b34801561022857600080fd5b506100d5600160a060020a0360043516610aa8565b610245610b45565b60038054911515740100000000000000000000000000000000000000000274ff000000000000000000000000000000000000000019909216919091179055565b60035474010000000000000000000000000000000000000000900460ff1681565b60008054600160a060020a03163314806102db575060035474010000000000000000000000000000000000000000900460ff16155b1515610331576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b61035a7f436f6e7472616374526567697374727900000000000000000000000000000000610ba9565b600254909150600160a060020a038083169116148015906103835750600160a060020a03811615155b15156103d9576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e56414c49445f5245474953545259000000000000000000000000604482015290519081900360640190fd5b604080517fbb34534c0000000000000000000000000000000000000000000000000000000081527f436f6e747261637452656769737472790000000000000000000000000000000060048201529051600091600160a060020a0384169163bb34534c9160248082019260209290919082900301818787803b15801561045d57600080fd5b505af1158015610471573d6000803e3d6000fd5b505050506040513d602081101561048757600080fd5b5051600160a060020a031614156104e8576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e56414c49445f5245474953545259000000000000000000000000604482015290519081900360640190fd5b6002805460038054600160a060020a0380841673ffffffffffffffffffffffffffffffffffffffff19928316179092559091169216919091179055565b600354600160a060020a031681565b600154600160a060020a03163314610596576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b60015460008054604051600160a060020a0393841693909116917f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91a3600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b600254600160a060020a031681565b600054600160a060020a031681565b6106333361ffff8316610697565b50565b61063e610b45565b6003546002805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055565b600454600160a060020a031681565b6106333382610697565b600154600160a060020a031681565b600080600080600086945084600160a060020a0316638da5cb5b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156106e057600080fd5b505af11580156106f4573d6000803e3d6000fd5b505050506040513d602081101561070a57600080fd5b5051935061071785610c41565b61072085610cd0565b925061072c8584611052565b61073685846113df565b61074085846114d2565b84600160a060020a031663fc0c546a6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561077e57600080fd5b505af1158015610792573d6000803e3d6000fd5b505050506040513d60208110156107a857600080fd5b505191506107b58561194f565b8015610827575084600160a060020a03166322f3e2d46040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156107fa57600080fd5b505af115801561080e573d6000803e3d6000fd5b505050506040513d602081101561082457600080fd5b50515b905084600160a060020a031682600160a060020a0316638da5cb5b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561087157600080fd5b505af1158015610885573d6000803e3d6000fd5b505050506040513d602081101561089b57600080fd5b5051600160a060020a031614156109765784600160a060020a03166321e6b53d846040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b15801561090757600080fd5b505af115801561091b573d6000803e3d6000fd5b5050505082600160a060020a031663cdc91c696040518163ffffffff1660e060020a028152600401600060405180830381600087803b15801561095d57600080fd5b505af1158015610971573d6000803e3d6000fd5b505050505b610981858483611a0b565b84600160a060020a031663f2fde38b856040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b1580156109dc57600080fd5b505af11580156109f0573d6000803e3d6000fd5b5050505082600160a060020a031663f2fde38b856040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b158015610a4f57600080fd5b505af1158015610a63573d6000803e3d6000fd5b5050604051600160a060020a038087169350881691507f522b846327aea07106ec4d64ae4b6d6dea47689884dab650fd3a1f2e1d6a270190600090a350505050505050565b610ab0610b45565b600054600160a060020a0382811691161415610b16576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f53414d455f4f574e4552000000000000000000000000000000000000604482015290519081900360640190fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600054600160a060020a03163314610ba7576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b565b600254604080517fbb34534c000000000000000000000000000000000000000000000000000000008152600481018490529051600092600160a060020a03169163bb34534c91602480830192602092919082900301818787803b158015610c0f57600080fd5b505af1158015610c23573d6000803e3d6000fd5b505050506040513d6020811015610c3957600080fd5b505192915050565b80600160a060020a03166379ba50976040518163ffffffff1660e060020a028152600401600060405180830381600087803b158015610c7f57600080fd5b505af1158015610c93573d6000803e3d6000fd5b5050604051309250600160a060020a03841691507ff764604894fa993d4370a9cb28b81c11deb1aafdb2909156173ae3833dad807590600090a350565b600080600080600080600087600160a060020a031663fc0c546a6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610d1957600080fd5b505af1158015610d2d573d6000803e3d6000fd5b505050506040513d6020811015610d4357600080fd5b5051604080517f94c275ad0000000000000000000000000000000000000000000000000000000081529051919750600160a060020a038a16916394c275ad916004808201926020929091908290030181600087803b158015610da457600080fd5b505af1158015610db8573d6000803e3d6000fd5b505050506040513d6020811015610dce57600080fd5b5051604080517f71f52bf30000000000000000000000000000000000000000000000000000000081529051919650600160a060020a038a16916371f52bf3916004808201926020929091908290030181600087803b158015610e2f57600080fd5b505af1158015610e43573d6000803e3d6000fd5b505050506040513d6020811015610e5957600080fd5b5051935060009250610e6a8861194f565b15610ee05787600160a060020a0316633e8ff43f6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610ead57600080fd5b505af1158015610ec1573d6000803e3d6000fd5b505050506040513d6020811015610ed757600080fd5b50519250610ef2565b60018461ffff161115610ef257600192505b610f1b7f436f6e766572746572466163746f727900000000000000000000000000000000610ba9565b600254604080517f15f64b6a00000000000000000000000000000000000000000000000000000000815261ffff87166004820152600160a060020a038a81166024830152928316604482015263ffffffff891660648201529051929450908416916315f64b6a916084808201926020929091908290030181600087803b158015610fa457600080fd5b505af1158015610fb8573d6000803e3d6000fd5b505050506040513d6020811015610fce57600080fd5b5051604080517f79ba50970000000000000000000000000000000000000000000000000000000081529051919250600160a060020a038316916379ba50979160048082019260009290919082900301818387803b15801561102e57600080fd5b505af1158015611042573d6000803e3d6000fd5b50929a9950505050505050505050565b60008060008085600160a060020a03166371f52bf36040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561109657600080fd5b505af11580156110aa573d6000803e3d6000fd5b505050506040513d60208110156110c057600080fd5b50519350600092505b8361ffff168361ffff1610156113d75785600160a060020a03166319b64015846040518263ffffffff1660e060020a028152600401808261ffff168152602001915050602060405180830381600087803b15801561112657600080fd5b505af115801561113a573d6000803e3d6000fd5b505050506040513d602081101561115057600080fd5b5051604080517f0e53aae9000000000000000000000000000000000000000000000000000000008152600160a060020a038084166004830152915192945090881691630e53aae99160248082019260a0929091908290030181600087803b1580156111ba57600080fd5b505af11580156111ce573d6000803e3d6000fd5b505050506040513d60a08110156111e457600080fd5b50602001519050600160a060020a03821673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee14156112ad57604080517f6a49d2c400000000000000000000000000000000000000000000000000000000815273eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee600482015263ffffffff831660248201529051600160a060020a03871691636a49d2c491604480830192600092919082900301818387803b15801561129057600080fd5b505af11580156112a4573d6000803e3d6000fd5b505050506113cc565b600454600160a060020a038381169116141561134357604080517f6a49d2c400000000000000000000000000000000000000000000000000000000815273eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee600482015263ffffffff831660248201529051600160a060020a03871691636a49d2c491604480830192600092919082900301818387803b15801561129057600080fd5b604080517f6a49d2c4000000000000000000000000000000000000000000000000000000008152600160a060020a03848116600483015263ffffffff84166024830152915191871691636a49d2c49160448082019260009290919082900301818387803b1580156113b357600080fd5b505af11580156113c7573d6000803e3d6000fd5b505050505b6001909201916110c9565b505050505050565b600082600160a060020a031663579cd3ca6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561141f57600080fd5b505af1158015611433573d6000803e3d6000fd5b505050506040513d602081101561144957600080fd5b5051604080517fecbca55d00000000000000000000000000000000000000000000000000000000815263ffffffff831660048201529051919250600160a060020a0384169163ecbca55d9160248082019260009290919082900301818387803b1580156114b557600080fd5b505af11580156114c9573d6000803e3d6000fd5b50505050505050565b600080600080600086600160a060020a03166371f52bf36040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561151857600080fd5b505af115801561152c573d6000803e3d6000fd5b505050506040513d602081101561154257600080fd5b50519350600092505b8361ffff168361ffff1610156114c95786600160a060020a03166319b64015846040518263ffffffff1660e060020a028152600401808261ffff168152602001915050602060405180830381600087803b1580156115a857600080fd5b505af11580156115bc573d6000803e3d6000fd5b505050506040513d60208110156115d257600080fd5b50519150600160a060020a03821673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee14156116735786600160a060020a031663690d8320876040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b15801561165657600080fd5b505af115801561166a573d6000803e3d6000fd5b50505050611944565b600454600160a060020a03838116911614156118235760048054604080517f70a08231000000000000000000000000000000000000000000000000000000008152600160a060020a038b811694820194909452905192909116916370a08231916024808201926020929091908290030181600087803b1580156116f557600080fd5b505af1158015611709573d6000803e3d6000fd5b505050506040513d602081101561171f57600080fd5b505160048054604080517f5e35359e000000000000000000000000000000000000000000000000000000008152600160a060020a03928316938101939093523060248401526044830184905251929750891691635e35359e9160648082019260009290919082900301818387803b15801561179957600080fd5b505af11580156117ad573d6000803e3d6000fd5b505060048054604080517f205c2878000000000000000000000000000000000000000000000000000000008152600160a060020a038c811694820194909452602481018b9052905192909116935063205c2878925060448082019260009290919082900301818387803b15801561165657600080fd5b50604080517f70a08231000000000000000000000000000000000000000000000000000000008152600160a060020a038881166004830152915183928316916370a082319160248083019260209291908290030181600087803b15801561188957600080fd5b505af115801561189d573d6000803e3d6000fd5b505050506040513d60208110156118b357600080fd5b5051604080517f5e35359e000000000000000000000000000000000000000000000000000000008152600160a060020a038481166004830152898116602483015260448201849052915192975090891691635e35359e9160648082019260009290919082900301818387803b15801561192b57600080fd5b505af115801561193f573d6000803e3d6000fd5b505050505b60019092019161154b565b60008061195a611f79565b604080517f69735632384f72486967686572282900000000000000000000000000000000008152815190819003600f0181206004825260248201909252602080820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909416939093178352815191929091849188611388fa9250828015611a025750815115155b95945050505050565b6000806000806000806000806000611a228c61194f565b1515611a2d57611f6b565b8b600160a060020a0316633e8ff43f6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015611a6b57600080fd5b505af1158015611a7f573d6000803e3d6000fd5b505050506040513d6020811015611a9557600080fd5b50519850600261ffff8a161415611f6b578b600160a060020a03166371f52bf36040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015611ae457600080fd5b505af1158015611af8573d6000803e3d6000fd5b505050506040513d6020811015611b0e57600080fd5b50519750600096505b8761ffff168761ffff161015611cc4578b600160a060020a03166319b64015886040518263ffffffff1660e060020a028152600401808261ffff168152602001915050602060405180830381600087803b158015611b7457600080fd5b505af1158015611b88573d6000803e3d6000fd5b505050506040513d6020811015611b9e57600080fd5b5051604080517e5e319c000000000000000000000000000000000000000000000000000000008152600160a060020a0380841660048301529151929850908e1691625e319c916024808201926020929091908290030181600087803b158015611c0657600080fd5b505af1158015611c1a573d6000803e3d6000fd5b505050506040513d6020811015611c3057600080fd5b5051604080517fbf7da6ba000000000000000000000000000000000000000000000000000000008152600160a060020a038981166004830152602482018490529151929750908d169163bf7da6ba9160448082019260009290919082900301818387803b158015611ca057600080fd5b505af1158015611cb4573d6000803e3d6000fd5b505060019098019750611b179050565b891515611cd057611f6b565b8b600160a060020a0316630337e3fb6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015611d0e57600080fd5b505af1158015611d22573d6000803e3d6000fd5b505050506040513d6020811015611d3857600080fd5b5051604080517f2630c12f0000000000000000000000000000000000000000000000000000000081529051919550600160a060020a038e1691632630c12f916004808201926020929091908290030181600087803b158015611d9957600080fd5b505af1158015611dad573d6000803e3d6000fd5b505050506040513d6020811015611dc357600080fd5b5051604080517fb9e1715b0000000000000000000000000000000000000000000000000000000081529051919450600160a060020a0385169163b9e1715b916004808201926020929091908290030181600087803b158015611e2457600080fd5b505af1158015611e38573d6000803e3d6000fd5b505050506040513d6020811015611e4e57600080fd5b5051604080517ff997fda70000000000000000000000000000000000000000000000000000000081529051919350600160a060020a0385169163f997fda7916004808201926020929091908290030181600087803b158015611eaf57600080fd5b505af1158015611ec3573d6000803e3d6000fd5b505050506040513d6020811015611ed957600080fd5b5051604080517f119b90cd000000000000000000000000000000000000000000000000000000008152600160a060020a038781166004830152858116602483015280841660448301529151929350908d169163119b90cd9160648082019260009290919082900301818387803b158015611f5257600080fd5b505af1158015611f66573d6000803e3d6000fd5b505050505b505050505050505050505050565b60206040519081016040528060019060208202803883395091929150505600a165627a7a723058203882f98a73103c8feeafca2f4586dba39bd758474195419fcd8e074e00a5eb050029", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH1 0x40 DUP1 PUSH2 0x20DF DUP4 CODECOPY DUP2 ADD PUSH1 0x40 MSTORE DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD MLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND CALLER OR SWAP1 SSTORE DUP2 DUP1 PUSH2 0x4F DUP2 PUSH5 0x100000000 PUSH2 0x92 DUP2 MUL DIV JUMP JUMPDEST POP PUSH1 0x2 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 DUP4 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT SWAP2 DUP3 AND DUP2 OR SWAP1 SWAP3 SSTORE PUSH1 0x3 DUP1 SLOAD DUP3 AND SWAP1 SWAP3 OR SWAP1 SWAP2 SSTORE PUSH1 0x4 DUP1 SLOAD SWAP4 SWAP1 SWAP3 AND SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE POP PUSH2 0x10C JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0x109 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x1FC4 DUP1 PUSH2 0x11B PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0xB6 JUMPI PUSH4 0xFFFFFFFF PUSH1 0xE0 PUSH1 0x2 EXP PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x24C7EC7 DUP2 EQ PUSH2 0xBB JUMPI DUP1 PUSH4 0x2FE8A6AD EQ PUSH2 0xD7 JUMPI DUP1 PUSH4 0x49D10B64 EQ PUSH2 0x100 JUMPI DUP1 PUSH4 0x61CD756E EQ PUSH2 0x115 JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x146 JUMPI DUP1 PUSH4 0x7B103999 EQ PUSH2 0x15B JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x170 JUMPI DUP1 PUSH4 0x90F58C96 EQ PUSH2 0x185 JUMPI DUP1 PUSH4 0xB4A176D3 EQ PUSH2 0x1A1 JUMPI DUP1 PUSH4 0xB8066BCB EQ PUSH2 0x1B6 JUMPI DUP1 PUSH4 0xBC444E13 EQ PUSH2 0x1CB JUMPI DUP1 PUSH4 0xD4EE1D90 EQ PUSH2 0x1E3 JUMPI DUP1 PUSH4 0xF2CFED87 EQ PUSH2 0x1F8 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x21C JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xC7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xD5 PUSH1 0x4 CALLDATALOAD ISZERO ISZERO PUSH2 0x23D JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xE3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xEC PUSH2 0x285 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x10C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xD5 PUSH2 0x2A6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x121 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x12A PUSH2 0x525 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x152 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xD5 PUSH2 0x534 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x167 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x12A PUSH2 0x607 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x17C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x12A PUSH2 0x616 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x191 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xD5 PUSH2 0xFFFF PUSH1 0x4 CALLDATALOAD AND PUSH2 0x625 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1AD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xD5 PUSH2 0x636 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1C2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x12A PUSH2 0x66F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1D7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xD5 PUSH1 0x4 CALLDATALOAD PUSH2 0x67E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1EF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x12A PUSH2 0x688 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x204 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xD5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x697 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x228 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xD5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0xAA8 JUMP JUMPDEST PUSH2 0x245 PUSH2 0xB45 JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD SWAP2 ISZERO ISZERO PUSH21 0x10000000000000000000000000000000000000000 MUL PUSH21 0xFF0000000000000000000000000000000000000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ DUP1 PUSH2 0x2DB JUMPI POP PUSH1 0x3 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x331 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x35A PUSH32 0x436F6E7472616374526567697374727900000000000000000000000000000000 PUSH2 0xBA9 JUMP JUMPDEST PUSH1 0x2 SLOAD SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP4 AND SWAP2 AND EQ DUP1 ISZERO SWAP1 PUSH2 0x383 JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x3D9 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245474953545259000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0xBB34534C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH32 0x436F6E7472616374526567697374727900000000000000000000000000000000 PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP2 PUSH4 0xBB34534C SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x45D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x471 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x487 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ ISZERO PUSH2 0x4E8 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245474953545259000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP5 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP3 DUP4 AND OR SWAP1 SWAP3 SSTORE SWAP1 SWAP2 AND SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x596 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND SWAP4 SWAP1 SWAP2 AND SWAP2 PUSH32 0x343765429AEA5A34B3FF6A3785A98A5ABB2597ACA87BFBB58632C173D585373A SWAP2 LOG3 PUSH1 0x1 DUP1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND OR SWAP1 SWAP2 SSTORE AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH2 0x633 CALLER PUSH2 0xFFFF DUP4 AND PUSH2 0x697 JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x63E PUSH2 0xB45 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x2 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH2 0x633 CALLER DUP3 PUSH2 0x697 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP7 SWAP5 POP DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x8DA5CB5B PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x6E0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x6F4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x70A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP4 POP PUSH2 0x717 DUP6 PUSH2 0xC41 JUMP JUMPDEST PUSH2 0x720 DUP6 PUSH2 0xCD0 JUMP JUMPDEST SWAP3 POP PUSH2 0x72C DUP6 DUP5 PUSH2 0x1052 JUMP JUMPDEST PUSH2 0x736 DUP6 DUP5 PUSH2 0x13DF JUMP JUMPDEST PUSH2 0x740 DUP6 DUP5 PUSH2 0x14D2 JUMP JUMPDEST DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xFC0C546A PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x77E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x792 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x7A8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 POP PUSH2 0x7B5 DUP6 PUSH2 0x194F JUMP JUMPDEST DUP1 ISZERO PUSH2 0x827 JUMPI POP DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x22F3E2D4 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x7FA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x80E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x824 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD JUMPDEST SWAP1 POP DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x8DA5CB5B PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x871 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x885 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x89B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ ISZERO PUSH2 0x976 JUMPI DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x21E6B53D DUP5 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x907 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x91B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xCDC91C69 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x95D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x971 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMPDEST PUSH2 0x981 DUP6 DUP5 DUP4 PUSH2 0x1A0B JUMP JUMPDEST DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xF2FDE38B DUP6 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x9DC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x9F0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xF2FDE38B DUP6 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xA4F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xA63 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP8 AND SWAP4 POP DUP9 AND SWAP2 POP PUSH32 0x522B846327AEA07106EC4D64AE4B6D6DEA47689884DAB650FD3A1F2E1D6A2701 SWAP1 PUSH1 0x0 SWAP1 LOG3 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xAB0 PUSH2 0xB45 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0xB16 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F4F574E4552000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0xBA7 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xBB34534C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP2 PUSH4 0xBB34534C SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC0F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xC23 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xC39 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x79BA5097 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC7F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xC93 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD ADDRESS SWAP3 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP2 POP PUSH32 0xF764604894FA993D4370A9CB28B81C11DEB1AAFDB2909156173AE3833DAD8075 SWAP1 PUSH1 0x0 SWAP1 LOG3 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP8 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xFC0C546A PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xD19 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xD2D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xD43 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x94C275AD00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP8 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP11 AND SWAP2 PUSH4 0x94C275AD SWAP2 PUSH1 0x4 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xDA4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xDB8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xDCE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x71F52BF300000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP7 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP11 AND SWAP2 PUSH4 0x71F52BF3 SWAP2 PUSH1 0x4 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xE2F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xE43 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xE59 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP4 POP PUSH1 0x0 SWAP3 POP PUSH2 0xE6A DUP9 PUSH2 0x194F JUMP JUMPDEST ISZERO PUSH2 0xEE0 JUMPI DUP8 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x3E8FF43F PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xEAD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xEC1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xED7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP3 POP PUSH2 0xEF2 JUMP JUMPDEST PUSH1 0x1 DUP5 PUSH2 0xFFFF AND GT ISZERO PUSH2 0xEF2 JUMPI PUSH1 0x1 SWAP3 POP JUMPDEST PUSH2 0xF1B PUSH32 0x436F6E766572746572466163746F727900000000000000000000000000000000 PUSH2 0xBA9 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x15F64B6A00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH2 0xFFFF DUP8 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP11 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE SWAP3 DUP4 AND PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0xFFFFFFFF DUP10 AND PUSH1 0x64 DUP3 ADD MSTORE SWAP1 MLOAD SWAP3 SWAP5 POP SWAP1 DUP5 AND SWAP2 PUSH4 0x15F64B6A SWAP2 PUSH1 0x84 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xFA4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xFB8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xFCE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x79BA509700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 AND SWAP2 PUSH4 0x79BA5097 SWAP2 PUSH1 0x4 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x102E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1042 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP SWAP3 SWAP11 SWAP10 POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 DUP6 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x71F52BF3 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1096 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x10AA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x10C0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP4 POP PUSH1 0x0 SWAP3 POP JUMPDEST DUP4 PUSH2 0xFFFF AND DUP4 PUSH2 0xFFFF AND LT ISZERO PUSH2 0x13D7 JUMPI DUP6 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x19B64015 DUP5 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1126 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x113A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1150 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xE53AAE900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP5 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 MLOAD SWAP3 SWAP5 POP SWAP1 DUP9 AND SWAP2 PUSH4 0xE53AAE9 SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0xA0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x11BA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x11CE JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0xA0 DUP2 LT ISZERO PUSH2 0x11E4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x20 ADD MLOAD SWAP1 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 AND PUSH20 0xEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE EQ ISZERO PUSH2 0x12AD JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x6A49D2C400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH20 0xEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE PUSH1 0x4 DUP3 ADD MSTORE PUSH4 0xFFFFFFFF DUP4 AND PUSH1 0x24 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND SWAP2 PUSH4 0x6A49D2C4 SWAP2 PUSH1 0x44 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1290 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x12A4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x13CC JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x1343 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x6A49D2C400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH20 0xEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE PUSH1 0x4 DUP3 ADD MSTORE PUSH4 0xFFFFFFFF DUP4 AND PUSH1 0x24 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND SWAP2 PUSH4 0x6A49D2C4 SWAP2 PUSH1 0x44 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1290 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x6A49D2C400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH4 0xFFFFFFFF DUP5 AND PUSH1 0x24 DUP4 ADD MSTORE SWAP2 MLOAD SWAP2 DUP8 AND SWAP2 PUSH4 0x6A49D2C4 SWAP2 PUSH1 0x44 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x13B3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x13C7 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMPDEST PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 PUSH2 0x10C9 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x579CD3CA PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x141F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1433 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1449 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xECBCA55D00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH4 0xFFFFFFFF DUP4 AND PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP2 PUSH4 0xECBCA55D SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x14B5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x14C9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x71F52BF3 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1518 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x152C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1542 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP4 POP PUSH1 0x0 SWAP3 POP JUMPDEST DUP4 PUSH2 0xFFFF AND DUP4 PUSH2 0xFFFF AND LT ISZERO PUSH2 0x14C9 JUMPI DUP7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x19B64015 DUP5 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x15A8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x15BC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x15D2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 AND PUSH20 0xEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE EQ ISZERO PUSH2 0x1673 JUMPI DUP7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x690D8320 DUP8 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1656 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x166A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x1944 JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x1823 JUMPI PUSH1 0x4 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 DUP2 AND SWAP5 DUP3 ADD SWAP5 SWAP1 SWAP5 MSTORE SWAP1 MLOAD SWAP3 SWAP1 SWAP2 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x16F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1709 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x171F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x4 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x5E35359E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 DUP4 AND SWAP4 DUP2 ADD SWAP4 SWAP1 SWAP4 MSTORE ADDRESS PUSH1 0x24 DUP5 ADD MSTORE PUSH1 0x44 DUP4 ADD DUP5 SWAP1 MSTORE MLOAD SWAP3 SWAP8 POP DUP10 AND SWAP2 PUSH4 0x5E35359E SWAP2 PUSH1 0x64 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1799 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x17AD JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x4 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x205C287800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP13 DUP2 AND SWAP5 DUP3 ADD SWAP5 SWAP1 SWAP5 MSTORE PUSH1 0x24 DUP2 ADD DUP12 SWAP1 MSTORE SWAP1 MLOAD SWAP3 SWAP1 SWAP2 AND SWAP4 POP PUSH4 0x205C2878 SWAP3 POP PUSH1 0x44 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1656 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 MLOAD DUP4 SWAP3 DUP4 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1889 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x189D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x18B3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x5E35359E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP10 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP3 ADD DUP5 SWAP1 MSTORE SWAP2 MLOAD SWAP3 SWAP8 POP SWAP1 DUP10 AND SWAP2 PUSH4 0x5E35359E SWAP2 PUSH1 0x64 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x192B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x193F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMPDEST PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 PUSH2 0x154B JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x195A PUSH2 0x1F79 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x69735632384F7248696768657228290000000000000000000000000000000000 DUP2 MSTORE DUP2 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0xF ADD DUP2 KECCAK256 PUSH1 0x4 DUP3 MSTORE PUSH1 0x24 DUP3 ADD SWAP1 SWAP3 MSTORE PUSH1 0x20 DUP1 DUP3 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 OR DUP4 MSTORE DUP2 MLOAD SWAP2 SWAP3 SWAP1 SWAP2 DUP5 SWAP2 DUP9 PUSH2 0x1388 STATICCALL SWAP3 POP DUP3 DUP1 ISZERO PUSH2 0x1A02 JUMPI POP DUP2 MLOAD ISZERO ISZERO JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x1A22 DUP13 PUSH2 0x194F JUMP JUMPDEST ISZERO ISZERO PUSH2 0x1A2D JUMPI PUSH2 0x1F6B JUMP JUMPDEST DUP12 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x3E8FF43F PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1A6B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1A7F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1A95 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP9 POP PUSH1 0x2 PUSH2 0xFFFF DUP11 AND EQ ISZERO PUSH2 0x1F6B JUMPI DUP12 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x71F52BF3 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1AE4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1AF8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1B0E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP8 POP PUSH1 0x0 SWAP7 POP JUMPDEST DUP8 PUSH2 0xFFFF AND DUP8 PUSH2 0xFFFF AND LT ISZERO PUSH2 0x1CC4 JUMPI DUP12 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x19B64015 DUP9 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1B74 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1B88 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1B9E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH31 0x5E319C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP5 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 MLOAD SWAP3 SWAP9 POP SWAP1 DUP15 AND SWAP2 PUSH3 0x5E319C SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1C06 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1C1A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1C30 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xBF7DA6BA00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP10 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH1 0x24 DUP3 ADD DUP5 SWAP1 MSTORE SWAP2 MLOAD SWAP3 SWAP8 POP SWAP1 DUP14 AND SWAP2 PUSH4 0xBF7DA6BA SWAP2 PUSH1 0x44 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1CA0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1CB4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x1 SWAP1 SWAP9 ADD SWAP8 POP PUSH2 0x1B17 SWAP1 POP JUMP JUMPDEST DUP10 ISZERO ISZERO PUSH2 0x1CD0 JUMPI PUSH2 0x1F6B JUMP JUMPDEST DUP12 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x337E3FB PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1D0E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1D22 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1D38 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x2630C12F00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP6 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP15 AND SWAP2 PUSH4 0x2630C12F SWAP2 PUSH1 0x4 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1D99 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1DAD JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1DC3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xB9E1715B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP5 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND SWAP2 PUSH4 0xB9E1715B SWAP2 PUSH1 0x4 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1E24 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1E38 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1E4E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xF997FDA700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP4 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND SWAP2 PUSH4 0xF997FDA7 SWAP2 PUSH1 0x4 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1EAF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1EC3 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1ED9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x119B90CD00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP6 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE DUP1 DUP5 AND PUSH1 0x44 DUP4 ADD MSTORE SWAP2 MLOAD SWAP3 SWAP4 POP SWAP1 DUP14 AND SWAP2 PUSH4 0x119B90CD SWAP2 PUSH1 0x64 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1F52 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1F66 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMPDEST POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 SWAP1 PUSH1 0x20 DUP3 MUL DUP1 CODESIZE DUP4 CODECOPY POP SWAP2 SWAP3 SWAP2 POP POP JUMP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 CODESIZE DUP3 0xf9 DUP11 PUSH20 0x103C8FEEAFCA2F4586DBA39BD758474195419FCD DUP15 SMOD 0x4e STOP 0xa5 0xeb SDIV STOP 0x29 ", - "sourceMap": "1163:10222:8:-;;;2009:139;8:9:-1;5:2;;;30:1;27;20:12;5:2;2009:139:8;;;;;;;;;;;;;;;;;;;488:5:66;:18;;-1:-1:-1;;;;;;488:18:66;496:10;488:18;;;2009:139:8;;475:23:72;2009:139:8;475:13:72;;;;:23;:::i;:::-;-1:-1:-1;1931:8:60;:39;;-1:-1:-1;;;;;1931:39:60;;;-1:-1:-1;;;;;;1931:39:60;;;;;;;;1974:12;:43;;;;;;;;;;2120:10:8;:24;;;;;;;;;;;;;;-1:-1:-1;1163:10222:8;;553:117:72;-1:-1:-1;;;;;620:22:72;;;;612:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;553:117;:::o;1163:10222:8:-;;;;;;;" - }, - "deployedBytecode": { - "linkReferences": {}, - "object": "6080604052600436106100b65763ffffffff60e060020a600035041663024c7ec781146100bb5780632fe8a6ad146100d757806349d10b641461010057806361cd756e1461011557806379ba5097146101465780637b1039991461015b5780638da5cb5b1461017057806390f58c9614610185578063b4a176d3146101a1578063b8066bcb146101b6578063bc444e13146101cb578063d4ee1d90146101e3578063f2cfed87146101f8578063f2fde38b1461021c575b600080fd5b3480156100c757600080fd5b506100d5600435151561023d565b005b3480156100e357600080fd5b506100ec610285565b604080519115158252519081900360200190f35b34801561010c57600080fd5b506100d56102a6565b34801561012157600080fd5b5061012a610525565b60408051600160a060020a039092168252519081900360200190f35b34801561015257600080fd5b506100d5610534565b34801561016757600080fd5b5061012a610607565b34801561017c57600080fd5b5061012a610616565b34801561019157600080fd5b506100d561ffff60043516610625565b3480156101ad57600080fd5b506100d5610636565b3480156101c257600080fd5b5061012a61066f565b3480156101d757600080fd5b506100d560043561067e565b3480156101ef57600080fd5b5061012a610688565b34801561020457600080fd5b506100d5600160a060020a0360043516602435610697565b34801561022857600080fd5b506100d5600160a060020a0360043516610aa8565b610245610b45565b60038054911515740100000000000000000000000000000000000000000274ff000000000000000000000000000000000000000019909216919091179055565b60035474010000000000000000000000000000000000000000900460ff1681565b60008054600160a060020a03163314806102db575060035474010000000000000000000000000000000000000000900460ff16155b1515610331576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b61035a7f436f6e7472616374526567697374727900000000000000000000000000000000610ba9565b600254909150600160a060020a038083169116148015906103835750600160a060020a03811615155b15156103d9576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e56414c49445f5245474953545259000000000000000000000000604482015290519081900360640190fd5b604080517fbb34534c0000000000000000000000000000000000000000000000000000000081527f436f6e747261637452656769737472790000000000000000000000000000000060048201529051600091600160a060020a0384169163bb34534c9160248082019260209290919082900301818787803b15801561045d57600080fd5b505af1158015610471573d6000803e3d6000fd5b505050506040513d602081101561048757600080fd5b5051600160a060020a031614156104e8576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e56414c49445f5245474953545259000000000000000000000000604482015290519081900360640190fd5b6002805460038054600160a060020a0380841673ffffffffffffffffffffffffffffffffffffffff19928316179092559091169216919091179055565b600354600160a060020a031681565b600154600160a060020a03163314610596576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b60015460008054604051600160a060020a0393841693909116917f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91a3600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b600254600160a060020a031681565b600054600160a060020a031681565b6106333361ffff8316610697565b50565b61063e610b45565b6003546002805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055565b600454600160a060020a031681565b6106333382610697565b600154600160a060020a031681565b600080600080600086945084600160a060020a0316638da5cb5b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156106e057600080fd5b505af11580156106f4573d6000803e3d6000fd5b505050506040513d602081101561070a57600080fd5b5051935061071785610c41565b61072085610cd0565b925061072c8584611052565b61073685846113df565b61074085846114d2565b84600160a060020a031663fc0c546a6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561077e57600080fd5b505af1158015610792573d6000803e3d6000fd5b505050506040513d60208110156107a857600080fd5b505191506107b58561194f565b8015610827575084600160a060020a03166322f3e2d46040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156107fa57600080fd5b505af115801561080e573d6000803e3d6000fd5b505050506040513d602081101561082457600080fd5b50515b905084600160a060020a031682600160a060020a0316638da5cb5b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561087157600080fd5b505af1158015610885573d6000803e3d6000fd5b505050506040513d602081101561089b57600080fd5b5051600160a060020a031614156109765784600160a060020a03166321e6b53d846040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b15801561090757600080fd5b505af115801561091b573d6000803e3d6000fd5b5050505082600160a060020a031663cdc91c696040518163ffffffff1660e060020a028152600401600060405180830381600087803b15801561095d57600080fd5b505af1158015610971573d6000803e3d6000fd5b505050505b610981858483611a0b565b84600160a060020a031663f2fde38b856040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b1580156109dc57600080fd5b505af11580156109f0573d6000803e3d6000fd5b5050505082600160a060020a031663f2fde38b856040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b158015610a4f57600080fd5b505af1158015610a63573d6000803e3d6000fd5b5050604051600160a060020a038087169350881691507f522b846327aea07106ec4d64ae4b6d6dea47689884dab650fd3a1f2e1d6a270190600090a350505050505050565b610ab0610b45565b600054600160a060020a0382811691161415610b16576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f53414d455f4f574e4552000000000000000000000000000000000000604482015290519081900360640190fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600054600160a060020a03163314610ba7576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b565b600254604080517fbb34534c000000000000000000000000000000000000000000000000000000008152600481018490529051600092600160a060020a03169163bb34534c91602480830192602092919082900301818787803b158015610c0f57600080fd5b505af1158015610c23573d6000803e3d6000fd5b505050506040513d6020811015610c3957600080fd5b505192915050565b80600160a060020a03166379ba50976040518163ffffffff1660e060020a028152600401600060405180830381600087803b158015610c7f57600080fd5b505af1158015610c93573d6000803e3d6000fd5b5050604051309250600160a060020a03841691507ff764604894fa993d4370a9cb28b81c11deb1aafdb2909156173ae3833dad807590600090a350565b600080600080600080600087600160a060020a031663fc0c546a6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610d1957600080fd5b505af1158015610d2d573d6000803e3d6000fd5b505050506040513d6020811015610d4357600080fd5b5051604080517f94c275ad0000000000000000000000000000000000000000000000000000000081529051919750600160a060020a038a16916394c275ad916004808201926020929091908290030181600087803b158015610da457600080fd5b505af1158015610db8573d6000803e3d6000fd5b505050506040513d6020811015610dce57600080fd5b5051604080517f71f52bf30000000000000000000000000000000000000000000000000000000081529051919650600160a060020a038a16916371f52bf3916004808201926020929091908290030181600087803b158015610e2f57600080fd5b505af1158015610e43573d6000803e3d6000fd5b505050506040513d6020811015610e5957600080fd5b5051935060009250610e6a8861194f565b15610ee05787600160a060020a0316633e8ff43f6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610ead57600080fd5b505af1158015610ec1573d6000803e3d6000fd5b505050506040513d6020811015610ed757600080fd5b50519250610ef2565b60018461ffff161115610ef257600192505b610f1b7f436f6e766572746572466163746f727900000000000000000000000000000000610ba9565b600254604080517f15f64b6a00000000000000000000000000000000000000000000000000000000815261ffff87166004820152600160a060020a038a81166024830152928316604482015263ffffffff891660648201529051929450908416916315f64b6a916084808201926020929091908290030181600087803b158015610fa457600080fd5b505af1158015610fb8573d6000803e3d6000fd5b505050506040513d6020811015610fce57600080fd5b5051604080517f79ba50970000000000000000000000000000000000000000000000000000000081529051919250600160a060020a038316916379ba50979160048082019260009290919082900301818387803b15801561102e57600080fd5b505af1158015611042573d6000803e3d6000fd5b50929a9950505050505050505050565b60008060008085600160a060020a03166371f52bf36040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561109657600080fd5b505af11580156110aa573d6000803e3d6000fd5b505050506040513d60208110156110c057600080fd5b50519350600092505b8361ffff168361ffff1610156113d75785600160a060020a03166319b64015846040518263ffffffff1660e060020a028152600401808261ffff168152602001915050602060405180830381600087803b15801561112657600080fd5b505af115801561113a573d6000803e3d6000fd5b505050506040513d602081101561115057600080fd5b5051604080517f0e53aae9000000000000000000000000000000000000000000000000000000008152600160a060020a038084166004830152915192945090881691630e53aae99160248082019260a0929091908290030181600087803b1580156111ba57600080fd5b505af11580156111ce573d6000803e3d6000fd5b505050506040513d60a08110156111e457600080fd5b50602001519050600160a060020a03821673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee14156112ad57604080517f6a49d2c400000000000000000000000000000000000000000000000000000000815273eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee600482015263ffffffff831660248201529051600160a060020a03871691636a49d2c491604480830192600092919082900301818387803b15801561129057600080fd5b505af11580156112a4573d6000803e3d6000fd5b505050506113cc565b600454600160a060020a038381169116141561134357604080517f6a49d2c400000000000000000000000000000000000000000000000000000000815273eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee600482015263ffffffff831660248201529051600160a060020a03871691636a49d2c491604480830192600092919082900301818387803b15801561129057600080fd5b604080517f6a49d2c4000000000000000000000000000000000000000000000000000000008152600160a060020a03848116600483015263ffffffff84166024830152915191871691636a49d2c49160448082019260009290919082900301818387803b1580156113b357600080fd5b505af11580156113c7573d6000803e3d6000fd5b505050505b6001909201916110c9565b505050505050565b600082600160a060020a031663579cd3ca6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561141f57600080fd5b505af1158015611433573d6000803e3d6000fd5b505050506040513d602081101561144957600080fd5b5051604080517fecbca55d00000000000000000000000000000000000000000000000000000000815263ffffffff831660048201529051919250600160a060020a0384169163ecbca55d9160248082019260009290919082900301818387803b1580156114b557600080fd5b505af11580156114c9573d6000803e3d6000fd5b50505050505050565b600080600080600086600160a060020a03166371f52bf36040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561151857600080fd5b505af115801561152c573d6000803e3d6000fd5b505050506040513d602081101561154257600080fd5b50519350600092505b8361ffff168361ffff1610156114c95786600160a060020a03166319b64015846040518263ffffffff1660e060020a028152600401808261ffff168152602001915050602060405180830381600087803b1580156115a857600080fd5b505af11580156115bc573d6000803e3d6000fd5b505050506040513d60208110156115d257600080fd5b50519150600160a060020a03821673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee14156116735786600160a060020a031663690d8320876040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b15801561165657600080fd5b505af115801561166a573d6000803e3d6000fd5b50505050611944565b600454600160a060020a03838116911614156118235760048054604080517f70a08231000000000000000000000000000000000000000000000000000000008152600160a060020a038b811694820194909452905192909116916370a08231916024808201926020929091908290030181600087803b1580156116f557600080fd5b505af1158015611709573d6000803e3d6000fd5b505050506040513d602081101561171f57600080fd5b505160048054604080517f5e35359e000000000000000000000000000000000000000000000000000000008152600160a060020a03928316938101939093523060248401526044830184905251929750891691635e35359e9160648082019260009290919082900301818387803b15801561179957600080fd5b505af11580156117ad573d6000803e3d6000fd5b505060048054604080517f205c2878000000000000000000000000000000000000000000000000000000008152600160a060020a038c811694820194909452602481018b9052905192909116935063205c2878925060448082019260009290919082900301818387803b15801561165657600080fd5b50604080517f70a08231000000000000000000000000000000000000000000000000000000008152600160a060020a038881166004830152915183928316916370a082319160248083019260209291908290030181600087803b15801561188957600080fd5b505af115801561189d573d6000803e3d6000fd5b505050506040513d60208110156118b357600080fd5b5051604080517f5e35359e000000000000000000000000000000000000000000000000000000008152600160a060020a038481166004830152898116602483015260448201849052915192975090891691635e35359e9160648082019260009290919082900301818387803b15801561192b57600080fd5b505af115801561193f573d6000803e3d6000fd5b505050505b60019092019161154b565b60008061195a611f79565b604080517f69735632384f72486967686572282900000000000000000000000000000000008152815190819003600f0181206004825260248201909252602080820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909416939093178352815191929091849188611388fa9250828015611a025750815115155b95945050505050565b6000806000806000806000806000611a228c61194f565b1515611a2d57611f6b565b8b600160a060020a0316633e8ff43f6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015611a6b57600080fd5b505af1158015611a7f573d6000803e3d6000fd5b505050506040513d6020811015611a9557600080fd5b50519850600261ffff8a161415611f6b578b600160a060020a03166371f52bf36040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015611ae457600080fd5b505af1158015611af8573d6000803e3d6000fd5b505050506040513d6020811015611b0e57600080fd5b50519750600096505b8761ffff168761ffff161015611cc4578b600160a060020a03166319b64015886040518263ffffffff1660e060020a028152600401808261ffff168152602001915050602060405180830381600087803b158015611b7457600080fd5b505af1158015611b88573d6000803e3d6000fd5b505050506040513d6020811015611b9e57600080fd5b5051604080517e5e319c000000000000000000000000000000000000000000000000000000008152600160a060020a0380841660048301529151929850908e1691625e319c916024808201926020929091908290030181600087803b158015611c0657600080fd5b505af1158015611c1a573d6000803e3d6000fd5b505050506040513d6020811015611c3057600080fd5b5051604080517fbf7da6ba000000000000000000000000000000000000000000000000000000008152600160a060020a038981166004830152602482018490529151929750908d169163bf7da6ba9160448082019260009290919082900301818387803b158015611ca057600080fd5b505af1158015611cb4573d6000803e3d6000fd5b505060019098019750611b179050565b891515611cd057611f6b565b8b600160a060020a0316630337e3fb6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015611d0e57600080fd5b505af1158015611d22573d6000803e3d6000fd5b505050506040513d6020811015611d3857600080fd5b5051604080517f2630c12f0000000000000000000000000000000000000000000000000000000081529051919550600160a060020a038e1691632630c12f916004808201926020929091908290030181600087803b158015611d9957600080fd5b505af1158015611dad573d6000803e3d6000fd5b505050506040513d6020811015611dc357600080fd5b5051604080517fb9e1715b0000000000000000000000000000000000000000000000000000000081529051919450600160a060020a0385169163b9e1715b916004808201926020929091908290030181600087803b158015611e2457600080fd5b505af1158015611e38573d6000803e3d6000fd5b505050506040513d6020811015611e4e57600080fd5b5051604080517ff997fda70000000000000000000000000000000000000000000000000000000081529051919350600160a060020a0385169163f997fda7916004808201926020929091908290030181600087803b158015611eaf57600080fd5b505af1158015611ec3573d6000803e3d6000fd5b505050506040513d6020811015611ed957600080fd5b5051604080517f119b90cd000000000000000000000000000000000000000000000000000000008152600160a060020a038781166004830152858116602483015280841660448301529151929350908d169163119b90cd9160648082019260009290919082900301818387803b158015611f5257600080fd5b505af1158015611f66573d6000803e3d6000fd5b505050505b505050505050505050505050565b60206040519081016040528060019060208202803883395091929150505600a165627a7a723058203882f98a73103c8feeafca2f4586dba39bd758474195419fcd8e074e00a5eb050029", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0xB6 JUMPI PUSH4 0xFFFFFFFF PUSH1 0xE0 PUSH1 0x2 EXP PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x24C7EC7 DUP2 EQ PUSH2 0xBB JUMPI DUP1 PUSH4 0x2FE8A6AD EQ PUSH2 0xD7 JUMPI DUP1 PUSH4 0x49D10B64 EQ PUSH2 0x100 JUMPI DUP1 PUSH4 0x61CD756E EQ PUSH2 0x115 JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x146 JUMPI DUP1 PUSH4 0x7B103999 EQ PUSH2 0x15B JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x170 JUMPI DUP1 PUSH4 0x90F58C96 EQ PUSH2 0x185 JUMPI DUP1 PUSH4 0xB4A176D3 EQ PUSH2 0x1A1 JUMPI DUP1 PUSH4 0xB8066BCB EQ PUSH2 0x1B6 JUMPI DUP1 PUSH4 0xBC444E13 EQ PUSH2 0x1CB JUMPI DUP1 PUSH4 0xD4EE1D90 EQ PUSH2 0x1E3 JUMPI DUP1 PUSH4 0xF2CFED87 EQ PUSH2 0x1F8 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x21C JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xC7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xD5 PUSH1 0x4 CALLDATALOAD ISZERO ISZERO PUSH2 0x23D JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xE3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xEC PUSH2 0x285 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x10C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xD5 PUSH2 0x2A6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x121 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x12A PUSH2 0x525 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x152 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xD5 PUSH2 0x534 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x167 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x12A PUSH2 0x607 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x17C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x12A PUSH2 0x616 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x191 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xD5 PUSH2 0xFFFF PUSH1 0x4 CALLDATALOAD AND PUSH2 0x625 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1AD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xD5 PUSH2 0x636 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1C2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x12A PUSH2 0x66F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1D7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xD5 PUSH1 0x4 CALLDATALOAD PUSH2 0x67E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1EF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x12A PUSH2 0x688 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x204 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xD5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x697 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x228 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xD5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0xAA8 JUMP JUMPDEST PUSH2 0x245 PUSH2 0xB45 JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD SWAP2 ISZERO ISZERO PUSH21 0x10000000000000000000000000000000000000000 MUL PUSH21 0xFF0000000000000000000000000000000000000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ DUP1 PUSH2 0x2DB JUMPI POP PUSH1 0x3 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x331 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x35A PUSH32 0x436F6E7472616374526567697374727900000000000000000000000000000000 PUSH2 0xBA9 JUMP JUMPDEST PUSH1 0x2 SLOAD SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP4 AND SWAP2 AND EQ DUP1 ISZERO SWAP1 PUSH2 0x383 JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x3D9 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245474953545259000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0xBB34534C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH32 0x436F6E7472616374526567697374727900000000000000000000000000000000 PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP2 PUSH4 0xBB34534C SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x45D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x471 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x487 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ ISZERO PUSH2 0x4E8 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245474953545259000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP5 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP3 DUP4 AND OR SWAP1 SWAP3 SSTORE SWAP1 SWAP2 AND SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x596 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND SWAP4 SWAP1 SWAP2 AND SWAP2 PUSH32 0x343765429AEA5A34B3FF6A3785A98A5ABB2597ACA87BFBB58632C173D585373A SWAP2 LOG3 PUSH1 0x1 DUP1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND OR SWAP1 SWAP2 SSTORE AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH2 0x633 CALLER PUSH2 0xFFFF DUP4 AND PUSH2 0x697 JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x63E PUSH2 0xB45 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x2 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH2 0x633 CALLER DUP3 PUSH2 0x697 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP7 SWAP5 POP DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x8DA5CB5B PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x6E0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x6F4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x70A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP4 POP PUSH2 0x717 DUP6 PUSH2 0xC41 JUMP JUMPDEST PUSH2 0x720 DUP6 PUSH2 0xCD0 JUMP JUMPDEST SWAP3 POP PUSH2 0x72C DUP6 DUP5 PUSH2 0x1052 JUMP JUMPDEST PUSH2 0x736 DUP6 DUP5 PUSH2 0x13DF JUMP JUMPDEST PUSH2 0x740 DUP6 DUP5 PUSH2 0x14D2 JUMP JUMPDEST DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xFC0C546A PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x77E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x792 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x7A8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 POP PUSH2 0x7B5 DUP6 PUSH2 0x194F JUMP JUMPDEST DUP1 ISZERO PUSH2 0x827 JUMPI POP DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x22F3E2D4 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x7FA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x80E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x824 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD JUMPDEST SWAP1 POP DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x8DA5CB5B PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x871 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x885 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x89B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ ISZERO PUSH2 0x976 JUMPI DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x21E6B53D DUP5 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x907 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x91B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xCDC91C69 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x95D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x971 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMPDEST PUSH2 0x981 DUP6 DUP5 DUP4 PUSH2 0x1A0B JUMP JUMPDEST DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xF2FDE38B DUP6 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x9DC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x9F0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xF2FDE38B DUP6 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xA4F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xA63 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP8 AND SWAP4 POP DUP9 AND SWAP2 POP PUSH32 0x522B846327AEA07106EC4D64AE4B6D6DEA47689884DAB650FD3A1F2E1D6A2701 SWAP1 PUSH1 0x0 SWAP1 LOG3 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xAB0 PUSH2 0xB45 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0xB16 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F4F574E4552000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0xBA7 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xBB34534C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP2 PUSH4 0xBB34534C SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC0F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xC23 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xC39 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x79BA5097 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC7F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xC93 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD ADDRESS SWAP3 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP2 POP PUSH32 0xF764604894FA993D4370A9CB28B81C11DEB1AAFDB2909156173AE3833DAD8075 SWAP1 PUSH1 0x0 SWAP1 LOG3 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP8 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xFC0C546A PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xD19 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xD2D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xD43 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x94C275AD00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP8 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP11 AND SWAP2 PUSH4 0x94C275AD SWAP2 PUSH1 0x4 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xDA4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xDB8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xDCE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x71F52BF300000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP7 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP11 AND SWAP2 PUSH4 0x71F52BF3 SWAP2 PUSH1 0x4 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xE2F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xE43 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xE59 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP4 POP PUSH1 0x0 SWAP3 POP PUSH2 0xE6A DUP9 PUSH2 0x194F JUMP JUMPDEST ISZERO PUSH2 0xEE0 JUMPI DUP8 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x3E8FF43F PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xEAD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xEC1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xED7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP3 POP PUSH2 0xEF2 JUMP JUMPDEST PUSH1 0x1 DUP5 PUSH2 0xFFFF AND GT ISZERO PUSH2 0xEF2 JUMPI PUSH1 0x1 SWAP3 POP JUMPDEST PUSH2 0xF1B PUSH32 0x436F6E766572746572466163746F727900000000000000000000000000000000 PUSH2 0xBA9 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x15F64B6A00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH2 0xFFFF DUP8 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP11 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE SWAP3 DUP4 AND PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0xFFFFFFFF DUP10 AND PUSH1 0x64 DUP3 ADD MSTORE SWAP1 MLOAD SWAP3 SWAP5 POP SWAP1 DUP5 AND SWAP2 PUSH4 0x15F64B6A SWAP2 PUSH1 0x84 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xFA4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xFB8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xFCE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x79BA509700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 AND SWAP2 PUSH4 0x79BA5097 SWAP2 PUSH1 0x4 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x102E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1042 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP SWAP3 SWAP11 SWAP10 POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 DUP6 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x71F52BF3 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1096 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x10AA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x10C0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP4 POP PUSH1 0x0 SWAP3 POP JUMPDEST DUP4 PUSH2 0xFFFF AND DUP4 PUSH2 0xFFFF AND LT ISZERO PUSH2 0x13D7 JUMPI DUP6 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x19B64015 DUP5 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1126 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x113A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1150 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xE53AAE900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP5 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 MLOAD SWAP3 SWAP5 POP SWAP1 DUP9 AND SWAP2 PUSH4 0xE53AAE9 SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0xA0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x11BA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x11CE JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0xA0 DUP2 LT ISZERO PUSH2 0x11E4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x20 ADD MLOAD SWAP1 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 AND PUSH20 0xEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE EQ ISZERO PUSH2 0x12AD JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x6A49D2C400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH20 0xEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE PUSH1 0x4 DUP3 ADD MSTORE PUSH4 0xFFFFFFFF DUP4 AND PUSH1 0x24 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND SWAP2 PUSH4 0x6A49D2C4 SWAP2 PUSH1 0x44 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1290 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x12A4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x13CC JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x1343 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x6A49D2C400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH20 0xEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE PUSH1 0x4 DUP3 ADD MSTORE PUSH4 0xFFFFFFFF DUP4 AND PUSH1 0x24 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND SWAP2 PUSH4 0x6A49D2C4 SWAP2 PUSH1 0x44 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1290 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x6A49D2C400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH4 0xFFFFFFFF DUP5 AND PUSH1 0x24 DUP4 ADD MSTORE SWAP2 MLOAD SWAP2 DUP8 AND SWAP2 PUSH4 0x6A49D2C4 SWAP2 PUSH1 0x44 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x13B3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x13C7 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMPDEST PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 PUSH2 0x10C9 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x579CD3CA PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x141F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1433 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1449 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xECBCA55D00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH4 0xFFFFFFFF DUP4 AND PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP2 PUSH4 0xECBCA55D SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x14B5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x14C9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x71F52BF3 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1518 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x152C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1542 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP4 POP PUSH1 0x0 SWAP3 POP JUMPDEST DUP4 PUSH2 0xFFFF AND DUP4 PUSH2 0xFFFF AND LT ISZERO PUSH2 0x14C9 JUMPI DUP7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x19B64015 DUP5 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x15A8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x15BC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x15D2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 AND PUSH20 0xEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE EQ ISZERO PUSH2 0x1673 JUMPI DUP7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x690D8320 DUP8 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1656 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x166A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x1944 JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x1823 JUMPI PUSH1 0x4 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 DUP2 AND SWAP5 DUP3 ADD SWAP5 SWAP1 SWAP5 MSTORE SWAP1 MLOAD SWAP3 SWAP1 SWAP2 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x16F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1709 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x171F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x4 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x5E35359E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 DUP4 AND SWAP4 DUP2 ADD SWAP4 SWAP1 SWAP4 MSTORE ADDRESS PUSH1 0x24 DUP5 ADD MSTORE PUSH1 0x44 DUP4 ADD DUP5 SWAP1 MSTORE MLOAD SWAP3 SWAP8 POP DUP10 AND SWAP2 PUSH4 0x5E35359E SWAP2 PUSH1 0x64 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1799 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x17AD JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x4 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x205C287800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP13 DUP2 AND SWAP5 DUP3 ADD SWAP5 SWAP1 SWAP5 MSTORE PUSH1 0x24 DUP2 ADD DUP12 SWAP1 MSTORE SWAP1 MLOAD SWAP3 SWAP1 SWAP2 AND SWAP4 POP PUSH4 0x205C2878 SWAP3 POP PUSH1 0x44 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1656 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 MLOAD DUP4 SWAP3 DUP4 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1889 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x189D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x18B3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x5E35359E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP10 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP3 ADD DUP5 SWAP1 MSTORE SWAP2 MLOAD SWAP3 SWAP8 POP SWAP1 DUP10 AND SWAP2 PUSH4 0x5E35359E SWAP2 PUSH1 0x64 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x192B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x193F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMPDEST PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 PUSH2 0x154B JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x195A PUSH2 0x1F79 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x69735632384F7248696768657228290000000000000000000000000000000000 DUP2 MSTORE DUP2 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0xF ADD DUP2 KECCAK256 PUSH1 0x4 DUP3 MSTORE PUSH1 0x24 DUP3 ADD SWAP1 SWAP3 MSTORE PUSH1 0x20 DUP1 DUP3 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 OR DUP4 MSTORE DUP2 MLOAD SWAP2 SWAP3 SWAP1 SWAP2 DUP5 SWAP2 DUP9 PUSH2 0x1388 STATICCALL SWAP3 POP DUP3 DUP1 ISZERO PUSH2 0x1A02 JUMPI POP DUP2 MLOAD ISZERO ISZERO JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x1A22 DUP13 PUSH2 0x194F JUMP JUMPDEST ISZERO ISZERO PUSH2 0x1A2D JUMPI PUSH2 0x1F6B JUMP JUMPDEST DUP12 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x3E8FF43F PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1A6B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1A7F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1A95 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP9 POP PUSH1 0x2 PUSH2 0xFFFF DUP11 AND EQ ISZERO PUSH2 0x1F6B JUMPI DUP12 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x71F52BF3 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1AE4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1AF8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1B0E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP8 POP PUSH1 0x0 SWAP7 POP JUMPDEST DUP8 PUSH2 0xFFFF AND DUP8 PUSH2 0xFFFF AND LT ISZERO PUSH2 0x1CC4 JUMPI DUP12 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x19B64015 DUP9 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1B74 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1B88 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1B9E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH31 0x5E319C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP5 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 MLOAD SWAP3 SWAP9 POP SWAP1 DUP15 AND SWAP2 PUSH3 0x5E319C SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1C06 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1C1A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1C30 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xBF7DA6BA00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP10 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH1 0x24 DUP3 ADD DUP5 SWAP1 MSTORE SWAP2 MLOAD SWAP3 SWAP8 POP SWAP1 DUP14 AND SWAP2 PUSH4 0xBF7DA6BA SWAP2 PUSH1 0x44 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1CA0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1CB4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x1 SWAP1 SWAP9 ADD SWAP8 POP PUSH2 0x1B17 SWAP1 POP JUMP JUMPDEST DUP10 ISZERO ISZERO PUSH2 0x1CD0 JUMPI PUSH2 0x1F6B JUMP JUMPDEST DUP12 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x337E3FB PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1D0E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1D22 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1D38 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x2630C12F00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP6 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP15 AND SWAP2 PUSH4 0x2630C12F SWAP2 PUSH1 0x4 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1D99 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1DAD JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1DC3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xB9E1715B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP5 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND SWAP2 PUSH4 0xB9E1715B SWAP2 PUSH1 0x4 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1E24 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1E38 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1E4E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xF997FDA700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP4 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND SWAP2 PUSH4 0xF997FDA7 SWAP2 PUSH1 0x4 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1EAF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1EC3 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1ED9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x119B90CD00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP6 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE DUP1 DUP5 AND PUSH1 0x44 DUP4 ADD MSTORE SWAP2 MLOAD SWAP3 SWAP4 POP SWAP1 DUP14 AND SWAP2 PUSH4 0x119B90CD SWAP2 PUSH1 0x64 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1F52 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1F66 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMPDEST POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 SWAP1 PUSH1 0x20 DUP3 MUL DUP1 CODESIZE DUP4 CODECOPY POP SWAP2 SWAP3 SWAP2 POP POP JUMP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 CODESIZE DUP3 0xf9 DUP11 PUSH20 0x103C8FEEAFCA2F4586DBA39BD758474195419FCD DUP15 SMOD 0x4e STOP 0xa5 0xeb SDIV STOP 0x29 ", - "sourceMap": "1163:10222:8:-;;;;;;;;;-1:-1:-1;;;1163:10222:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3280:206:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3280:206:60;;;;;;;;;1250:38;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1250:38:60;;;;;;;;;;;;;;;;;;;;;;2080:832;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2080:832:60;;;;1165:37;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1165:37:60;;;;;;;;-1:-1:-1;;;;;1165:37:60;;;;;;;;;;;;;;1159:176:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1159:176:66;;;;1085:33:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1085:33:60;;;;157:20:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;157:20:66;;;;3004:102:8;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3004:102:8;;;;;;;2974:119:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2974:119:60;;;;1331:29:8;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1331:29:8;;;;2529:94;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2529:94:8;;;;;180:23:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;180:23:66;;;;3508:956:8;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3508:956:8;-1:-1:-1;;;;;3508:956:8;;;;;;;945:140:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;945:140:66;-1:-1:-1;;;;;945:140:66;;;;;3280:206:60;575:12:66;:10;:12::i;:::-;3426:26:60;:56;;;;;;;-1:-1:-1;;3426:56:60;;;;;;;;;3280:206::o;1250:38::-;;;;;;;;;:::o;2080:832::-;2281:29;2183:5;;-1:-1:-1;;;;;2183:5:60;2169:10;:19;;:50;;-1:-1:-1;2193:26:60;;;;;;;2192:27;2169:50;2161:80;;;;;;;-1:-1:-1;;;;;2161:80:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;2331:28;2341:17;2331:9;:28::i;:::-;2465:8;;2281:79;;-1:-1:-1;;;;;;2442:32:60;;;2465:8;;2442:32;;;;:61;;-1:-1:-1;;;;;;2478:25:60;;;;2442:61;2434:94;;;;;;;-1:-1:-1;;;;;2434:94:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;2628:40;;;;;;2650:17;2628:40;;;;;;2680:1;;-1:-1:-1;;;;;2628:21:60;;;;;:40;;;;;;;;;;;;;;;2680:1;2628:21;:40;;;5:2:-1;;;;30:1;27;20:12;5:2;2628:40:60;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2628:40:60;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2628:40:60;-1:-1:-1;;;;;2628:54:60;;;2620:87;;;;;-1:-1:-1;;;;;2620:87:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;2799:8;;;2784:12;:23;;-1:-1:-1;;;;;2799:8:60;;;-1:-1:-1;;2784:23:60;;;;;;;2886:22;;;;;;;;;;;2080:832::o;1165:37::-;;;-1:-1:-1;;;;;1165:37:60;;:::o;1159:176:66:-;1219:8;;-1:-1:-1;;;;;1219:8:66;1205:10;:22;1197:52;;;;;-1:-1:-1;;;;;1197:52:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;1277:8;;;1270:5;;1258:28;;-1:-1:-1;;;;;1277:8:66;;;;1270:5;;;;1258:28;;;1298:8;;;;1290:16;;-1:-1:-1;;1290:16:66;;;-1:-1:-1;;;;;1298:8:66;;1290:16;;;;1310:21;;;1159:176::o;1085:33:60:-;;;-1:-1:-1;;;;;1085:33:60;;:::o;157:20:66:-;;;-1:-1:-1;;;;;157:20:66;;:::o;3004:102:8:-;3049:53;3071:10;3084:17;;;3049:10;:53::i;:::-;3004:102;:::o;2974:119:60:-;575:12:66;:10;:12::i;:::-;3077::60;;3066:8;:23;;-1:-1:-1;;3066:23:60;-1:-1:-1;;;;;3077:12:60;;;3066:23;;;;;;2974:119::o;1331:29:8:-;;;-1:-1:-1;;;;;1331:29:8;;:::o;2529:94::-;2575:44;2597:10;2610:8;2575:10;:44::i;180:23:66:-;;;-1:-1:-1;;;;;180:23:66;;:::o;3508:956:8:-;3592:20;3641:17;3721:23;3916;4025:13;3626:10;3592:45;;3661:9;-1:-1:-1;;;;;3661:15:8;;:17;;;;;-1:-1:-1;;;3661:17:8;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3661:17:8;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3661:17:8;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3661:17:8;;-1:-1:-1;3682:35:8;3707:9;3682:24;:35::i;:::-;3747:26;3763:9;3747:15;:26::i;:::-;3721:52;;3777:37;3790:9;3801:12;3777;:37::i;:::-;3818:42;3836:9;3847:12;3818:17;:42::i;:::-;3864:48;3888:9;3899:12;3864:23;:48::i;:::-;3942:9;-1:-1:-1;;;;;3942:15:8;;:17;;;;;-1:-1:-1;;;3942:17:8;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3942:17:8;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3942:17:8;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3942:17:8;;-1:-1:-1;4041:33:8;4064:9;4041:22;:33::i;:::-;:57;;;;;4078:9;-1:-1:-1;;;;;4078:18:8;;:20;;;;;-1:-1:-1;;;4078:20:8;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4078:20:8;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4078:20:8;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4078:20:8;4041:57;4025:73;;4133:9;-1:-1:-1;;;;;4107:36:8;:6;-1:-1:-1;;;;;4107:12:8;;:14;;;;;-1:-1:-1;;;4107:14:8;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4107:14:8;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4107:14:8;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4107:14:8;-1:-1:-1;;;;;4107:36:8;;4103:139;;;4150:9;-1:-1:-1;;;;;4150:32:8;;4183:12;4150:46;;;;;-1:-1:-1;;;4150:46:8;;;;;;;-1:-1:-1;;;;;4150:46:8;-1:-1:-1;;;;;4150:46:8;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4150:46:8;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4150:46:8;;;;4201:12;-1:-1:-1;;;;;4201:34:8;;:36;;;;;-1:-1:-1;;;4201:36:8;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4201:36:8;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4201:36:8;;;;4103:139;4246:57;4269:9;4280:12;4294:8;4246:22;:57::i;:::-;4308:9;-1:-1:-1;;;;;4308:27:8;;4336:9;4308:38;;;;;-1:-1:-1;;;4308:38:8;;;;;;;-1:-1:-1;;;;;4308:38:8;-1:-1:-1;;;;;4308:38:8;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4308:38:8;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4308:38:8;;;;4350:12;-1:-1:-1;;;;;4350:30:8;;4381:9;4350:41;;;;;-1:-1:-1;;;4350:41:8;;;;;;;-1:-1:-1;;;;;4350:41:8;-1:-1:-1;;;;;4350:41:8;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4350:41:8;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;4401:59:8;;-1:-1:-1;;;;;4401:59:8;;;;-1:-1:-1;4401:59:8;;;-1:-1:-1;4401:59:8;;;;;3508:956;;;;;;;:::o;945:140:66:-;575:12;:10;:12::i;:::-;1033:5;;-1:-1:-1;;;;;1020:18:66;;;1033:5;;1020:18;;1012:45;;;;;-1:-1:-1;;;;;1012:45:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;1061:8;:20;;-1:-1:-1;;1061:20:66;-1:-1:-1;;;;;1061:20:66;;;;;;;;;;945:140::o;642:93::-;704:5;;-1:-1:-1;;;;;704:5:66;690:10;:19;682:49;;;;;-1:-1:-1;;;;;682:49:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;642:93::o;3647:122:60:-;3732:8;;:33;;;;;;;;;;;;;;3712:7;;-1:-1:-1;;;;;3732:8:60;;:18;;:33;;;;;;;;;;;;;;3712:7;3732:8;:33;;;5:2:-1;;;;30:1;27;20:12;5:2;3732:33:60;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3732:33:60;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3732:33:60;;3647:122;-1:-1:-1;;3647:122:60:o;4809:151:8:-;4881:13;-1:-1:-1;;;;;4881:29:8;;:31;;;;;-1:-1:-1;;;4881:31:8;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4881:31:8;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;4921:35:8;;4951:4;;-1:-1:-1;;;;;;4921:35:8;;;-1:-1:-1;4921:35:8;;;;;4809:151;:::o;5254:872::-;5322:10;5338:23;5389;5451:24;5552:14;5882:34;5970:20;5364:13;-1:-1:-1;;;;;5364:19:8;;:21;;;;;-1:-1:-1;;;5364:21:8;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5364:21:8;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5364:21:8;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5364:21:8;5415:32;;;;;;;;5364:21;;-1:-1:-1;;;;;;5415:30:8;;;;;:32;;;;;5364:21;;5415:32;;;;;;;;;:30;:32;;;5:2:-1;;;;30:1;27;20:12;5:2;5415:32:8;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5415:32:8;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5415:32:8;5478:35;;;;;;;;5415:32;;-1:-1:-1;;;;;;5478:33:8;;;;;:35;;;;;5415:32;;5478:35;;;;;;;;;:33;:35;;;5:2:-1;;;;30:1;27;20:12;5:2;5478:35:8;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5478:35:8;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5478:35:8;;-1:-1:-1;5569:1:8;;-1:-1:-1;5638:37:8;5661:13;5638:22;:37::i;:::-;5634:243;;;5690:13;-1:-1:-1;;;;;5690:27:8;;:29;;;;;-1:-1:-1;;;5690:29:8;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5690:29:8;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5690:29:8;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5690:29:8;;-1:-1:-1;5634:243:8;;;5863:1;5843:17;:21;;;5839:38;;;5876:1;5866:11;;5839:38;5937:28;5947:17;5937:9;:28::i;:::-;6043:8;;5993:77;;;;;;;;;;;;;-1:-1:-1;;;;;5993:77:8;;;;;;;6043:8;;;5993:77;;;;;;;;;;;;;5882:84;;-1:-1:-1;5993:32:8;;;;;;:77;;;;;;;;;;;;;;;6043:8;5993:32;:77;;;5:2:-1;;;;30:1;27;20:12;5:2;5993:77:8;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5993:77:8;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5993:77:8;6075:27;;;;;;;;5993:77;;-1:-1:-1;;;;;;6075:25:8;;;;;:27;;;;;;;;;;;;;;;;:25;:27;;;5:2:-1;;;;30:1;27;20:12;5:2;6075:27:8;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;6113:9:8;;5254:872;-1:-1:-1;;;;;;;;;;5254:872:8:o;6434:751::-;6520:24;6592:8;6639:22;6704:13;6547;-1:-1:-1;;;;;6547:33:8;;:35;;;;;-1:-1:-1;;;6547:35:8;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6547:35:8;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6547:35:8;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6547:35:8;;-1:-1:-1;6603:1:8;;-1:-1:-1;6587:595:8;6610:17;6606:21;;:1;:21;;;6587:595;;;6664:13;-1:-1:-1;;;;;6664:29:8;;6694:1;6664:32;;;;;-1:-1:-1;;;6664:32:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6664:32:8;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6664:32:8;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6664:32:8;6727:40;;;;;;-1:-1:-1;;;;;6727:40:8;;;;;;;;;6664:32;;-1:-1:-1;6727:24:8;;;;;;:40;;;;;;;;;;;;;;;-1:-1:-1;6727:24:8;:40;;;5:2:-1;;;;30:1;27;20:12;5:2;6727:40:8;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6727:40:8;;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;6727:40:8;;;;-1:-1:-1;;;;;;6797:37:8;;1286:42;6797:37;6793:385;;;6842:66;;;;;;1286:42;6842:66;;;;;;;;;;;;;-1:-1:-1;;;;;6842:24:8;;;;;:66;;;;;-1:-1:-1;;6842:66:8;;;;;;;-1:-1:-1;6842:24:8;:66;;;5:2:-1;;;;30:1;27;20:12;5:2;6842:66:8;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6842:66:8;;;;6793:385;;;6979:10;;-1:-1:-1;;;;;6953:37:8;;;6979:10;;6953:37;6949:229;;;6998:66;;;;;;1286:42;6998:66;;;;;;;;;;;;;-1:-1:-1;;;;;6998:24:8;;;;;:66;;;;;-1:-1:-1;;6998:66:8;;;;;;;-1:-1:-1;6998:24:8;:66;;;5:2:-1;;;;30:1;27;20:12;6949:229:8;7111:61;;;;;;-1:-1:-1;;;;;7111:61:8;;;;;;;;;;;;;;;;:24;;;;;;:61;;;;;-1:-1:-1;;7111:61:8;;;;;;;;-1:-1:-1;7111:24:8;:61;;;5:2:-1;;;;30:1;27;20:12;5:2;7111:61:8;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7111:61:8;;;;6949:229;6629:3;;;;;6587:595;;;6434:751;;;;;;:::o;7393:196::-;7484:20;7507:13;-1:-1:-1;;;;;7507:27:8;;:29;;;;;-1:-1:-1;;;7507:29:8;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7507:29:8;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7507:29:8;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7507:29:8;7540:45;;;;;;;;;;;;;;;7507:29;;-1:-1:-1;;;;;;7540:30:8;;;;;:45;;;;;-1:-1:-1;;7540:45:8;;;;;;;;-1:-1:-1;7540:30:8;:45;;;5:2:-1;;;;30:1;27;20:12;5:2;7540:45:8;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7540:45:8;;;;7393:196;;;:::o;8004:961::-;8101:22;8127:24;8199:8;8246:22;8759:21;8154:13;-1:-1:-1;;;;;8154:33:8;;:35;;;;;-1:-1:-1;;;8154:35:8;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8154:35:8;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8154:35:8;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8154:35:8;;-1:-1:-1;8210:1:8;;-1:-1:-1;8194:768:8;8217:17;8213:21;;:1;:21;;;8194:768;;;8271:13;-1:-1:-1;;;;;8271:29:8;;8301:1;8271:32;;;;;-1:-1:-1;;;8271:32:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8271:32:8;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8271:32:8;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8271:32:8;;-1:-1:-1;;;;;;8332:37:8;;1286:42;8332:37;8328:630;;;8377:13;-1:-1:-1;;;;;8377:25:8;;8411:13;8377:49;;;;;-1:-1:-1;;;8377:49:8;;;;;;;-1:-1:-1;;;;;8377:49:8;-1:-1:-1;;;;;8377:49:8;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8377:49:8;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8377:49:8;;;;8328:630;;;8497:10;;-1:-1:-1;;;;;8471:37:8;;;8497:10;;8471:37;8467:491;;;8533:10;;;:35;;;;;;-1:-1:-1;;;;;8533:35:8;;;;;;;;;;;;:10;;;;;:20;;:35;;;;;;;;;;;;;;;:10;;:35;;;5:2:-1;;;;30:1;27;20:12;5:2;8533:35:8;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8533:35:8;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8533:35:8;8603:10;;;8574:71;;;;;;-1:-1:-1;;;;;8603:10:8;;;8574:71;;;;;;;8623:4;8574:71;;;;;;;;;;;8533:35;;-1:-1:-1;8574:28:8;;;;;:71;;;;;8603:10;;8574:71;;;;;;;;8603:10;8574:28;:71;;;5:2:-1;;;;30:1;27;20:12;5:2;8574:71:8;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;8651:10:8;;;:61;;;;;;-1:-1:-1;;;;;8651:61:8;;;;;;;;;;;;;;;;;;:10;;;;;-1:-1:-1;8651:21:8;;-1:-1:-1;8651:61:8;;;;;:10;;:61;;;;;;;;:10;;:61;;;5:2:-1;;;;30:1;27;20:12;8467:491:8;-1:-1:-1;8833:34:8;;;;;;-1:-1:-1;;;;;8833:34:8;;;;;;;;;8795:14;;8833:19;;;;;:34;;;;;;;;;;;;;;-1:-1:-1;8833:19:8;:34;;;5:2:-1;;;;30:1;27;20:12;5:2;8833:34:8;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8833:34:8;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8833:34:8;8873:79;;;;;;-1:-1:-1;;;;;8873:79:8;;;;;;;;;;;;;;;;;;;;;;8833:34;;-1:-1:-1;8873:28:8;;;;;;:79;;;;;-1:-1:-1;;8873:79:8;;;;;;;;-1:-1:-1;8873:28:8;:79;;;5:2:-1;;;;30:1;27;20:12;5:2;8873:79:8;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8873:79:8;;;;8467:491;8236:3;;;;;8194:768;;10758:625;10836:4;10846:12;10862:21;;:::i;:::-;10569:28;;;;;;;;;;;;;;;;22:32:-1;6:49;;10907:54:8;;;;;;49:4:-1;25:18;;;61:17;;10907:54:8;182:15:-1;10907:54:8;;;;179:29:-1;;;;160:49;;11206:11:8;;10569:28;;49:4:-1;;11292:3:8;;11078:10;11007:4;10991:351;10980:362;;11357:7;:22;;;;-1:-1:-1;11368:6:8;;:11;;11357:22;11350:29;10758:625;-1:-1:-1;;;;;10758:625:8:o;9248:1254::-;9424:20;9509:24;9581:8;9664:31;9736:15;10022:31;10162:24;10248:28;10310;9374:37;9397:13;9374:22;:37::i;:::-;9373:38;9369:51;;;9413:7;;9369:51;9447:13;-1:-1:-1;;;;;9447:27:8;;:29;;;;;-1:-1:-1;;;9447:29:8;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9447:29:8;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9447:29:8;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9447:29:8;;-1:-1:-1;9501:1:8;9484:18;;;;9480:1019;;;9536:13;-1:-1:-1;;;;;9536:33:8;;:35;;;;;-1:-1:-1;;;9536:35:8;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9536:35:8;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9536:35:8;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9536:35:8;;-1:-1:-1;9592:1:8;;-1:-1:-1;9576:366:8;9599:17;9595:21;;:1;:21;;;9576:366;;;9698:13;-1:-1:-1;;;;;9698:29:8;;9728:1;9698:32;;;;;-1:-1:-1;;;9698:32:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9698:32:8;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9698:32:8;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9698:32:8;9754:82;;;;;;-1:-1:-1;;;;;9754:82:8;;;;;;;;;9698:32;;-1:-1:-1;9754:61:8;;;;;;:82;;;;;9698:32;;9754:82;;;;;;;;-1:-1:-1;9754:61:8;:82;;;5:2:-1;;;;30:1;27;20:12;5:2;9754:82:8;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9754:82:8;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9754:82:8;9842:94;;;;;;-1:-1:-1;;;;;9842:94:8;;;;;;;;;;;;;;;9754:82;;-1:-1:-1;9842:64:8;;;;;;:94;;;;;-1:-1:-1;;9842:94:8;;;;;;;;-1:-1:-1;9842:64:8;:94;;;5:2:-1;;;;30:1;27;20:12;5:2;9842:94:8;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;9618:3:8;;;;;-1:-1:-1;9576:366:8;;-1:-1:-1;9576:366:8;;9952:9;9951:10;9947:34;;;9969:7;;9947:34;10082:13;-1:-1:-1;;;;;10056:60:8;;:62;;;;;-1:-1:-1;;;10056:62:8;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10056:62:8;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10056:62:8;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;10056:62:8;10189:54;;;;;;;;10056:62;;-1:-1:-1;;;;;;10189:52:8;;;;;:54;;;;;10056:62;;10189:54;;;;;;;;;:52;:54;;;5:2:-1;;;;30:1;27;20:12;5:2;10189:54:8;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10189:54:8;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;10189:54:8;10279:26;;;;;;;;10189:54;;-1:-1:-1;;;;;;10279:24:8;;;;;:26;;;;;10189:54;;10279:26;;;;;;;;;:24;:26;;;5:2:-1;;;;30:1;27;20:12;5:2;10279:26:8;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10279:26:8;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;10279:26:8;10341;;;;;;;;10279;;-1:-1:-1;;;;;;10341:24:8;;;;;:26;;;;;10279;;10341;;;;;;;;;:24;:26;;;5:2:-1;;;;30:1;27;20:12;5:2;10341:26:8;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10341:26:8;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;10341:26:8;10406:88;;;;;;-1:-1:-1;;;;;10406:88:8;;;;;;;;;;;;;;;;;;;;;;;10341:26;;-1:-1:-1;10406:49:8;;;;;;:88;;;;;-1:-1:-1;;10406:88:8;;;;;;;;-1:-1:-1;10406:49:8;:88;;;5:2:-1;;;;30:1;27;20:12;5:2;10406:88:8;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10406:88:8;;;;9480:1019;9248:1254;;;;;;;;;;;;:::o;1163:10222::-;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;-1:-1;1163:10222:8;;;-1:-1:-1;;1163:10222:8:o" - }, - "methodIdentifiers": { - "acceptOwnership()": "79ba5097", - "etherToken()": "b8066bcb", - "newOwner()": "d4ee1d90", - "onlyOwnerCanUpdateRegistry()": "2fe8a6ad", - "owner()": "8da5cb5b", - "prevRegistry()": "61cd756e", - "registry()": "7b103999", - "restoreRegistry()": "b4a176d3", - "restrictRegistryUpdate(bool)": "024c7ec7", - "transferOwnership(address)": "f2fde38b", - "updateRegistry()": "49d10b64", - "upgrade(bytes32)": "bc444e13", - "upgrade(uint16)": "90f58c96", - "upgradeOld(address,bytes32)": "f2cfed87" - } - }, - "userdoc": { - "methods": {} - } - } - }, - "solidity/contracts/converter/LiquidityPoolConverter.sol": { - "LiquidityPoolConverter": { - "abi": [ - { - "constant": false, - "inputs": [ - { - "name": "_onlyOwnerCanUpdateRegistry", - "type": "bool" - } - ], - "name": "restrictRegistryUpdate", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "reserveRatio", - "outputs": [ - { - "name": "", - "type": "uint32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_address", - "type": "address" - } - ], - "name": "connectors", - "outputs": [ - { - "name": "", - "type": "uint256" - }, - { - "name": "", - "type": "uint32" - }, - { - "name": "", - "type": "bool" - }, - { - "name": "", - "type": "bool" - }, - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "hasETHReserve", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_index", - "type": "uint256" - } - ], - "name": "connectorTokens", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_reserveToken", - "type": "address" - } - ], - "name": "reserveWeight", - "outputs": [ - { - "name": "", - "type": "uint32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_sourceToken", - "type": "address" - }, - { - "name": "_targetToken", - "type": "address" - }, - { - "name": "_amount", - "type": "uint256" - } - ], - "name": "getReturn", - "outputs": [ - { - "name": "", - "type": "uint256" - }, - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_newOwner", - "type": "address" - } - ], - "name": "transferTokenOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "isActive", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "onlyOwnerCanUpdateRegistry", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "acceptTokenOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_token", - "type": "address" - }, - { - "name": "_to", - "type": "address" - }, - { - "name": "_amount", - "type": "uint256" - } - ], - "name": "withdrawFromAnchor", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "converterType", - "outputs": [ - { - "name": "", - "type": "uint16" - } - ], - "payable": false, - "stateMutability": "pure", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "updateRegistry", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_whitelist", - "type": "address" - } - ], - "name": "setConversionWhitelist", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "version", - "outputs": [ - { - "name": "", - "type": "uint16" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "conversionFee", - "outputs": [ - { - "name": "", - "type": "uint32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_token", - "type": "address" - }, - { - "name": "_to", - "type": "address" - }, - { - "name": "_amount", - "type": "uint256" - } - ], - "name": "withdrawTokens", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "prevRegistry", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_newOwner", - "type": "address" - } - ], - "name": "transferAnchorOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_to", - "type": "address" - } - ], - "name": "withdrawETH", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_token", - "type": "address" - }, - { - "name": "_weight", - "type": "uint32" - } - ], - "name": "addReserve", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "connectorTokenCount", - "outputs": [ - { - "name": "", - "type": "uint16" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "acceptOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "registry", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "owner", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "maxConversionFee", - "outputs": [ - { - "name": "", - "type": "uint32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "reserveTokenCount", - "outputs": [ - { - "name": "", - "type": "uint16" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_sourceToken", - "type": "address" - }, - { - "name": "_targetToken", - "type": "address" - }, - { - "name": "_amount", - "type": "uint256" - } - ], - "name": "targetAmountAndFee", - "outputs": [ - { - "name": "", - "type": "uint256" - }, - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "restoreRegistry", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "conversionsEnabled", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "conversionWhitelist", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "acceptAnchorOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "", - "type": "uint256" - } - ], - "name": "reserveTokens", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "isV28OrHigher", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "pure", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "anchor", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "newOwner", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "upgrade", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "", - "type": "address" - } - ], - "name": "reserves", - "outputs": [ - { - "name": "balance", - "type": "uint256" - }, - { - "name": "weight", - "type": "uint32" - }, - { - "name": "deprecated1", - "type": "bool" - }, - { - "name": "deprecated2", - "type": "bool" - }, - { - "name": "isSet", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_connectorToken", - "type": "address" - } - ], - "name": "getConnectorBalance", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_reserveToken", - "type": "address" - } - ], - "name": "reserveBalance", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_sourceToken", - "type": "address" - }, - { - "name": "_targetToken", - "type": "address" - }, - { - "name": "_amount", - "type": "uint256" - }, - { - "name": "_trader", - "type": "address" - }, - { - "name": "_beneficiary", - "type": "address" - } - ], - "name": "convert", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": true, - "stateMutability": "payable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_conversionFee", - "type": "uint32" - } - ], - "name": "setConversionFee", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "token", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "name": "_anchor", - "type": "address" - }, - { - "name": "_registry", - "type": "address" - }, - { - "name": "_maxConversionFee", - "type": "uint32" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "payable": true, - "stateMutability": "payable", - "type": "fallback" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "_provider", - "type": "address" - }, - { - "indexed": true, - "name": "_reserveToken", - "type": "address" - }, - { - "indexed": false, - "name": "_amount", - "type": "uint256" - }, - { - "indexed": false, - "name": "_newBalance", - "type": "uint256" - }, - { - "indexed": false, - "name": "_newSupply", - "type": "uint256" - } - ], - "name": "LiquidityAdded", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "_provider", - "type": "address" - }, - { - "indexed": true, - "name": "_reserveToken", - "type": "address" - }, - { - "indexed": false, - "name": "_amount", - "type": "uint256" - }, - { - "indexed": false, - "name": "_newBalance", - "type": "uint256" - }, - { - "indexed": false, - "name": "_newSupply", - "type": "uint256" - } - ], - "name": "LiquidityRemoved", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "_type", - "type": "uint16" - }, - { - "indexed": true, - "name": "_anchor", - "type": "address" - }, - { - "indexed": true, - "name": "_activated", - "type": "bool" - } - ], - "name": "Activation", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "_fromToken", - "type": "address" - }, - { - "indexed": true, - "name": "_toToken", - "type": "address" - }, - { - "indexed": true, - "name": "_trader", - "type": "address" - }, - { - "indexed": false, - "name": "_amount", - "type": "uint256" - }, - { - "indexed": false, - "name": "_return", - "type": "uint256" - }, - { - "indexed": false, - "name": "_conversionFee", - "type": "int256" - } - ], - "name": "Conversion", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "_token1", - "type": "address" - }, - { - "indexed": true, - "name": "_token2", - "type": "address" - }, - { - "indexed": false, - "name": "_rateN", - "type": "uint256" - }, - { - "indexed": false, - "name": "_rateD", - "type": "uint256" - } - ], - "name": "TokenRateUpdate", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "_prevFee", - "type": "uint32" - }, - { - "indexed": false, - "name": "_newFee", - "type": "uint32" - } - ], - "name": "ConversionFeeUpdate", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "_prevOwner", - "type": "address" - }, - { - "indexed": true, - "name": "_newOwner", - "type": "address" - } - ], - "name": "OwnerUpdate", - "type": "event" - } - ], - "devdoc": { - "methods": { - "acceptAnchorOwnership()": { - "details": "accepts ownership of the anchor after an ownership transfer also activates the converter can only be called by the contract owner note that prior to version 28, you should use 'acceptTokenOwnership' instead" - }, - "acceptOwnership()": { - "details": "used by a new owner to accept an ownership transfer" - }, - "acceptTokenOwnership()": { - "details": "deprecated, backward compatibility" - }, - "addReserve(address,uint32)": { - "details": "defines a new reserve token for the converter can only be called by the owner while the converter is inactive", - "params": { - "_token": "address of the reserve token", - "_weight": "reserve weight, represented in ppm, 1-1000000" - } - }, - "connectorTokenCount()": { - "details": "deprecated, backward compatibility" - }, - "connectorTokens(uint256)": { - "details": "deprecated, backward compatibility" - }, - "connectors(address)": { - "details": "deprecated, backward compatibility" - }, - "convert(address,address,uint256,address,address)": { - "details": "converts a specific amount of source tokens to target tokens can only be called by the SovrynSwap network contract", - "params": { - "_amount": "amount of tokens to convert (in units of the source token)", - "_beneficiary": "wallet to receive the conversion result", - "_sourceToken": "source ERC20 token", - "_targetToken": "target ERC20 token", - "_trader": "address of the caller who executed the conversion" - }, - "return": "amount of tokens received (in units of the target token)" - }, - "getConnectorBalance(address)": { - "details": "deprecated, backward compatibility" - }, - "getReturn(address,address,uint256)": { - "details": "deprecated, backward compatibility" - }, - "hasETHReserve()": { - "details": "checks whether or not the converter has an ETH reserve", - "return": "true if the converter has an ETH reserve, false otherwise" - }, - "isActive()": { - "details": "returns true if the converter is active, false otherwise", - "return": "true if the converter is active, false otherwise" - }, - "isV28OrHigher()": { - "details": "checks whether or not the converter version is 28 or higher", - "return": "true, since the converter version is 28 or higher" - }, - "reserveBalance(address)": { - "details": "returns the reserve's balance note that prior to version 17, you should use 'getConnectorBalance' instead", - "params": { - "_reserveToken": "reserve token contract address" - }, - "return": "reserve balance" - }, - "reserveTokenCount()": { - "details": "returns the number of reserve tokens defined note that prior to version 17, you should use 'connectorTokenCount' instead", - "return": "number of reserve tokens" - }, - "reserveWeight(address)": { - "details": "returns the reserve's weight added in version 28", - "params": { - "_reserveToken": "reserve token contract address" - }, - "return": "reserve weight" - }, - "restoreRegistry()": { - "details": "restores the previous contract-registry" - }, - "restrictRegistryUpdate(bool)": { - "details": "restricts the permission to update the contract-registry", - "params": { - "_onlyOwnerCanUpdateRegistry": "indicates whether or not permission is restricted to owner only" - } - }, - "setConversionFee(uint32)": { - "details": "updates the current conversion fee can only be called by the contract owner", - "params": { - "_conversionFee": "new conversion fee, represented in ppm" - } - }, - "setConversionWhitelist(address)": { - "details": "allows the owner to update & enable the conversion whitelist contract address when set, only addresses that are whitelisted are actually allowed to use the converter note that the whitelist check is actually done by the SovrynSwapNetwork contract", - "params": { - "_whitelist": "address of a whitelist contract" - } - }, - "token()": { - "details": "deprecated since version 28, backward compatibility - use only for earlier versions" - }, - "transferAnchorOwnership(address)": { - "details": "transfers the anchor ownership the new owner needs to accept the transfer can only be called by the converter upgrder while the upgrader is the owner note that prior to version 28, you should use 'transferAnchorOwnership' instead", - "params": { - "_newOwner": "new token owner" - } - }, - "transferOwnership(address)": { - "details": "allows transferring the contract ownership the new owner still needs to accept the transfer can only be called by the contract owner", - "params": { - "_newOwner": "new contract owner" - } - }, - "transferTokenOwnership(address)": { - "details": "deprecated, backward compatibility" - }, - "updateRegistry()": { - "details": "updates to the new contract-registry" - }, - "upgrade()": { - "details": "upgrades the converter to the latest version can only be called by the owner note that the owner needs to call acceptOwnership on the new converter after the upgrade" - }, - "withdrawETH(address)": { - "details": "withdraws ether can only be called by the owner if the converter is inactive or by upgrader contract can only be called after the upgrader contract has accepted the ownership of this contract can only be called if the converter has an ETH reserve", - "params": { - "_to": "address to send the ETH to" - } - }, - "withdrawFromAnchor(address,address,uint256)": { - "details": "withdraws tokens held by the anchor and sends them to an account can only be called by the owner", - "params": { - "_amount": "amount to withdraw", - "_to": "account to receive the new amount", - "_token": "ERC20 token contract address" - } - }, - "withdrawTokens(address,address,uint256)": { - "details": "withdraws tokens held by the converter and sends them to an account can only be called by the owner note that reserve tokens can only be withdrawn by the owner while the converter is inactive unless the owner is the converter upgrader contract", - "params": { - "_amount": "amount to withdraw", - "_to": "account to receive the new amount", - "_token": "ERC20 token contract address" - } - } - } - }, - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "deployedBytecode": { - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "methodIdentifiers": { - "acceptAnchorOwnership()": "cdc91c69", - "acceptOwnership()": "79ba5097", - "acceptTokenOwnership()": "38a5e016", - "addReserve(address,uint32)": "6a49d2c4", - "anchor()": "d3fb73b4", - "connectorTokenCount()": "71f52bf3", - "connectorTokens(uint256)": "19b64015", - "connectors(address)": "0e53aae9", - "conversionFee()": "579cd3ca", - "conversionWhitelist()": "c45d3d92", - "conversionsEnabled()": "bf754558", - "convert(address,address,uint256,address,address)": "e8dc12ff", - "converterType()": "3e8ff43f", - "getConnectorBalance(address)": "d8959512", - "getReturn(address,address,uint256)": "1e1401f8", - "hasETHReserve()": "12c2aca4", - "isActive()": "22f3e2d4", - "isV28OrHigher()": "d260529c", - "maxConversionFee()": "94c275ad", - "newOwner()": "d4ee1d90", - "onlyOwnerCanUpdateRegistry()": "2fe8a6ad", - "owner()": "8da5cb5b", - "prevRegistry()": "61cd756e", - "registry()": "7b103999", - "reserveBalance(address)": "dc8de379", - "reserveRatio()": "0c7d5cd8", - "reserveTokenCount()": "9b99a8e2", - "reserveTokens(uint256)": "d031370b", - "reserveWeight(address)": "1cfab290", - "reserves(address)": "d66bd524", - "restoreRegistry()": "b4a176d3", - "restrictRegistryUpdate(bool)": "024c7ec7", - "setConversionFee(uint32)": "ecbca55d", - "setConversionWhitelist(address)": "4af80f0e", - "targetAmountAndFee(address,address,uint256)": "af94b8d8", - "token()": "fc0c546a", - "transferAnchorOwnership(address)": "67b6d57c", - "transferOwnership(address)": "f2fde38b", - "transferTokenOwnership(address)": "21e6b53d", - "updateRegistry()": "49d10b64", - "upgrade()": "d55ec697", - "version()": "54fd4d50", - "withdrawETH(address)": "690d8320", - "withdrawFromAnchor(address,address,uint256)": "395900d4", - "withdrawTokens(address,address,uint256)": "5e35359e" - } - }, - "userdoc": { - "methods": {} - } - } - }, - "solidity/contracts/converter/SovrynSwapFormula.sol": { - "SovrynSwapFormula": { - "abi": [ - { - "constant": true, - "inputs": [ - { - "name": "_supply", - "type": "uint256" - }, - { - "name": "_reserveBalance", - "type": "uint256" - }, - { - "name": "_reserveRatio", - "type": "uint32" - }, - { - "name": "_amount", - "type": "uint256" - } - ], - "name": "calculateFundCost", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_supply", - "type": "uint256" - }, - { - "name": "_reserveBalance", - "type": "uint256" - }, - { - "name": "_reserveWeight", - "type": "uint32" - }, - { - "name": "_amount", - "type": "uint256" - } - ], - "name": "calculatePurchaseReturn", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_supply", - "type": "uint256" - }, - { - "name": "_reserveBalance", - "type": "uint256" - }, - { - "name": "_reserveRatio", - "type": "uint32" - }, - { - "name": "_amount", - "type": "uint256" - } - ], - "name": "fundSupplyAmount", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_supply", - "type": "uint256" - }, - { - "name": "_reserveBalance", - "type": "uint256" - }, - { - "name": "_reserveRatio", - "type": "uint32" - }, - { - "name": "_amount", - "type": "uint256" - } - ], - "name": "liquidateRate", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_supply", - "type": "uint256" - }, - { - "name": "_reserveBalance", - "type": "uint256" - }, - { - "name": "_reserveWeight", - "type": "uint32" - }, - { - "name": "_amount", - "type": "uint256" - } - ], - "name": "purchaseRate", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_supply", - "type": "uint256" - }, - { - "name": "_reserveBalance", - "type": "uint256" - }, - { - "name": "_reserveWeight", - "type": "uint32" - }, - { - "name": "_amount", - "type": "uint256" - } - ], - "name": "calculateSaleReturn", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "version", - "outputs": [ - { - "name": "", - "type": "uint16" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_sourceReserveBalance", - "type": "uint256" - }, - { - "name": "_sourceReserveWeight", - "type": "uint32" - }, - { - "name": "_targetReserveBalance", - "type": "uint256" - }, - { - "name": "_targetReserveWeight", - "type": "uint32" - }, - { - "name": "_amount", - "type": "uint256" - } - ], - "name": "calculateCrossConnectorReturn", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_supply", - "type": "uint256" - }, - { - "name": "_reserveBalance", - "type": "uint256" - }, - { - "name": "_reserveWeight", - "type": "uint32" - }, - { - "name": "_amount", - "type": "uint256" - } - ], - "name": "saleTargetAmount", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_sourceReserveBalance", - "type": "uint256" - }, - { - "name": "_sourceReserveWeight", - "type": "uint32" - }, - { - "name": "_targetReserveBalance", - "type": "uint256" - }, - { - "name": "_targetReserveWeight", - "type": "uint32" - }, - { - "name": "_amount", - "type": "uint256" - } - ], - "name": "calculateCrossReserveReturn", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_supply", - "type": "uint256" - }, - { - "name": "_reserveBalance", - "type": "uint256" - }, - { - "name": "_reserveRatio", - "type": "uint32" - }, - { - "name": "_amount", - "type": "uint256" - } - ], - "name": "liquidateReserveAmount", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_sourceReserveBalance", - "type": "uint256" - }, - { - "name": "_sourceReserveWeight", - "type": "uint32" - }, - { - "name": "_targetReserveBalance", - "type": "uint256" - }, - { - "name": "_targetReserveWeight", - "type": "uint32" - }, - { - "name": "_amount", - "type": "uint256" - } - ], - "name": "crossReserveTargetAmount", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_sourceReserveBalance", - "type": "uint256" - }, - { - "name": "_sourceReserveWeight", - "type": "uint32" - }, - { - "name": "_targetReserveBalance", - "type": "uint256" - }, - { - "name": "_targetReserveWeight", - "type": "uint32" - }, - { - "name": "_amount", - "type": "uint256" - } - ], - "name": "crossReserveRate", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_primaryReserveStakedBalance", - "type": "uint256" - }, - { - "name": "_primaryReserveBalance", - "type": "uint256" - }, - { - "name": "_secondaryReserveBalance", - "type": "uint256" - }, - { - "name": "_reserveRateNumerator", - "type": "uint256" - }, - { - "name": "_reserveRateDenominator", - "type": "uint256" - } - ], - "name": "balancedWeights", - "outputs": [ - { - "name": "", - "type": "uint32" - }, - { - "name": "", - "type": "uint32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_supply", - "type": "uint256" - }, - { - "name": "_reserveBalance", - "type": "uint256" - }, - { - "name": "_reserveRatio", - "type": "uint32" - }, - { - "name": "_amount", - "type": "uint256" - } - ], - "name": "calculateLiquidateReturn", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "init", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_supply", - "type": "uint256" - }, - { - "name": "_reserveBalance", - "type": "uint256" - }, - { - "name": "_reserveRatio", - "type": "uint32" - }, - { - "name": "_amount", - "type": "uint256" - } - ], - "name": "fundCost", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_supply", - "type": "uint256" - }, - { - "name": "_reserveBalance", - "type": "uint256" - }, - { - "name": "_reserveWeight", - "type": "uint32" - }, - { - "name": "_amount", - "type": "uint256" - } - ], - "name": "purchaseTargetAmount", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_supply", - "type": "uint256" - }, - { - "name": "_reserveBalance", - "type": "uint256" - }, - { - "name": "_reserveWeight", - "type": "uint32" - }, - { - "name": "_amount", - "type": "uint256" - } - ], - "name": "saleRate", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - } - ], - "devdoc": { - "methods": { - "balancedWeights(uint256,uint256,uint256,uint256,uint256)": { - "details": "The arbitrage incentive is to convert to the point where the on-chain price is equal to the off-chain price. We want this operation to also impact the primary reserve balance becoming equal to the primary reserve staked balance. In other words, we want the arbitrager to convert the difference between the reserve balance and the reserve staked balance.\t * Formula input: - let t denote the primary reserve token staked balance - let s denote the primary reserve token balance - let r denote the secondary reserve token balance - let q denote the numerator of the rate between the tokens - let p denote the denominator of the rate between the tokens Where p primary tokens are equal to q secondary tokens\t * Formula output: - compute x = W(t / r * q / p * log(s / t)) / log(s / t) - return x / (1 + x) as the weight of the primary reserve token - return 1 / (1 + x) as the weight of the secondary reserve token Where W is the Lambert W Function\t * If the rate-provider provides the rates for a common unit, for example: - P = 2 ==> 2 primary reserve tokens = 1 ether - Q = 3 ==> 3 secondary reserve tokens = 1 ether Then you can simply use p = P and q = Q\t * If the rate-provider provides the rates for a single unit, for example: - P = 2 ==> 1 primary reserve token = 2 ethers - Q = 3 ==> 1 secondary reserve token = 3 ethers Then you can simply use p = Q and q = P", - "params": { - "_primaryReserveBalance": "the primary reserve token balance", - "_primaryReserveStakedBalance": "the primary reserve token staked balance", - "_reserveRateDenominator": "the denominator of the rate between the tokens\t * Note that `numerator / denominator` should represent the amount of secondary tokens equal to one primary token", - "_reserveRateNumerator": "the numerator of the rate between the tokens", - "_secondaryReserveBalance": "the secondary reserve token balance" - }, - "return": "the weight of the primary reserve token and the weight of the secondary reserve token, both in ppm (0-1000000)" - }, - "calculateCrossConnectorReturn(uint256,uint32,uint256,uint32,uint256)": { - "details": "deprecated, backward compatibility" - }, - "calculateCrossReserveReturn(uint256,uint32,uint256,uint32,uint256)": { - "details": "deprecated, backward compatibility" - }, - "calculateFundCost(uint256,uint256,uint32,uint256)": { - "details": "deprecated, backward compatibility" - }, - "calculateLiquidateReturn(uint256,uint256,uint32,uint256)": { - "details": "deprecated, backward compatibility" - }, - "calculatePurchaseReturn(uint256,uint256,uint32,uint256)": { - "details": "deprecated, backward compatibility" - }, - "calculateSaleReturn(uint256,uint256,uint32,uint256)": { - "details": "deprecated, backward compatibility" - }, - "crossReserveRate(uint256,uint32,uint256,uint32,uint256)": { - "details": "deprecated, backward compatibility" - }, - "crossReserveTargetAmount(uint256,uint32,uint256,uint32,uint256)": { - "details": "given two reserve balances/weights and a sell amount (in the first reserve token), calculates the target amount for a conversion from the source reserve token to the target reserve token\t * Formula: return = _targetReserveBalance * (1 - (_sourceReserveBalance / (_sourceReserveBalance + _amount)) ^ (_sourceReserveWeight / _targetReserveWeight))", - "params": { - "_amount": "source reserve amount", - "_sourceReserveBalance": "source reserve balance", - "_sourceReserveWeight": "source reserve weight, represented in ppm (1-1000000)", - "_targetReserveBalance": "target reserve balance", - "_targetReserveWeight": "target reserve weight, represented in ppm (1-1000000)" - }, - "return": "target reserve amount" - }, - "fundCost(uint256,uint256,uint32,uint256)": { - "details": "given a smart token supply, reserve balance, reserve ratio and an amount of requested smart tokens, calculates the amount of reserve tokens required for purchasing the given amount of smart tokens\t * Formula: return = _reserveBalance * (((_supply + _amount) / _supply) ^ (MAX_WEIGHT / _reserveRatio) - 1)", - "params": { - "_amount": "requested amount of smart tokens", - "_reserveBalance": "reserve balance", - "_reserveRatio": "reserve ratio, represented in ppm (2-2000000)", - "_supply": "smart token supply" - }, - "return": "reserve token amount" - }, - "fundSupplyAmount(uint256,uint256,uint32,uint256)": { - "details": "given a smart token supply, reserve balance, reserve ratio and an amount of reserve tokens to fund with, calculates the amount of smart tokens received for purchasing with the given amount of reserve tokens\t * Formula: return = _supply * ((_amount / _reserveBalance + 1) ^ (_reserveRatio / MAX_WEIGHT) - 1)", - "params": { - "_amount": "amount of reserve tokens to fund with", - "_reserveBalance": "reserve balance", - "_reserveRatio": "reserve ratio, represented in ppm (2-2000000)", - "_supply": "smart token supply" - }, - "return": "smart token amount" - }, - "init()": { - "details": "should be executed after construction (too large for the constructor)" - }, - "liquidateRate(uint256,uint256,uint32,uint256)": { - "details": "deprecated, backward compatibility" - }, - "liquidateReserveAmount(uint256,uint256,uint32,uint256)": { - "details": "given a smart token supply, reserve balance, reserve ratio and an amount of smart tokens to liquidate, calculates the amount of reserve tokens received for selling the given amount of smart tokens\t * Formula: return = _reserveBalance * (1 - ((_supply - _amount) / _supply) ^ (MAX_WEIGHT / _reserveRatio))", - "params": { - "_amount": "amount of smart tokens to liquidate", - "_reserveBalance": "reserve balance", - "_reserveRatio": "reserve ratio, represented in ppm (2-2000000)", - "_supply": "smart token supply" - }, - "return": "reserve token amount" - }, - "purchaseRate(uint256,uint256,uint32,uint256)": { - "details": "deprecated, backward compatibility" - }, - "purchaseTargetAmount(uint256,uint256,uint32,uint256)": { - "details": "given a token supply, reserve balance, weight and a deposit amount (in the reserve token), calculates the target amount for a given conversion (in the main token)\t * Formula: return = _supply * ((1 + _amount / _reserveBalance) ^ (_reserveWeight / 1000000) - 1)", - "params": { - "_amount": "amount of reserve tokens to get the target amount for", - "_reserveBalance": "reserve balance", - "_reserveWeight": "reserve weight, represented in ppm (1-1000000)", - "_supply": "smart token supply" - }, - "return": "smart token amount" - }, - "saleRate(uint256,uint256,uint32,uint256)": { - "details": "deprecated, backward compatibility" - }, - "saleTargetAmount(uint256,uint256,uint32,uint256)": { - "details": "given a token supply, reserve balance, weight and a sell amount (in the main token), calculates the target amount for a given conversion (in the reserve token)\t * Formula: return = _reserveBalance * (1 - (1 - _amount / _supply) ^ (1000000 / _reserveWeight))", - "params": { - "_amount": "amount of smart tokens to get the target amount for", - "_reserveBalance": "reserve balance", - "_reserveWeight": "reserve weight, represented in ppm (1-1000000)", - "_supply": "smart token supply" - }, - "return": "reserve token amount" - } - } - }, - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "608060405234801561001057600080fd5b50613e9a806100206000396000f3006080604052600436106101065763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631da6bbfb811461010b57806329a00e7c146101445780632f55bdb51461016b57806335b49af41461019257806348d73fed1461014457806349f9b0f7146101b957806354fd4d50146101e057806365098bb31461020c57806376cf0b561461023a57806379c1b4501461020c5780638074590a1461026157806394491fab146102885780639d1141081461020c578063a11aa1b4146102b6578063abfd231d14610192578063e1c7392a146102fd578063ebbb215814610314578063f3250fe21461033b578063f732f1c9146101b9575b600080fd5b34801561011757600080fd5b5061013260043560243563ffffffff60443516606435610362565b60408051918252519081900360200190f35b34801561015057600080fd5b5061013260043560243563ffffffff60443516606435610379565b34801561017757600080fd5b5061013260043560243563ffffffff60443516606435610387565b34801561019e57600080fd5b5061013260043560243563ffffffff60443516606435610524565b3480156101c557600080fd5b5061013260043560243563ffffffff60443516606435610532565b3480156101ec57600080fd5b506101f5610540565b6040805161ffff9092168252519081900360200190f35b34801561021857600080fd5b5061013260043563ffffffff6024358116906044359060643516608435610545565b34801561024657600080fd5b5061013260043560243563ffffffff6044351660643561055e565b34801561026d57600080fd5b5061013260043560243563ffffffff60443516606435610763565b34801561029457600080fd5b5061013260043563ffffffff6024358116906044359060643516608435610904565b3480156102c257600080fd5b506102da600435602435604435606435608435610aa0565b6040805163ffffffff938416815291909216602082015281519081900390910190f35b34801561030957600080fd5b50610312610c40565b005b34801561032057600080fd5b5061013260043560243563ffffffff60443516606435610c52565b34801561034757600080fd5b5061013260043560243563ffffffff60443516606435610df9565b600061037085858585610c52565b95945050505050565b600061037085858585610df9565b6000808080808089116103d2576040805160e560020a62461bcd0281526020600482015260126024820152600080516020613e2f833981519152604482015290519081900360640190fd5b60008811610418576040805160e560020a62461bcd02815260206004820152601b6024820152600080516020613e4f833981519152604482015290519081900360640190fd5b60018763ffffffff161180156104375750621e848063ffffffff881611155b151561048d576040805160e560020a62461bcd02815260206004820152601960248201527f4552525f494e56414c49445f524553455256455f524154494f00000000000000604482015290519081900360640190fd5b85151561049d5760009450610518565b63ffffffff8716620f424014156104d057876104bf878b63ffffffff610f4116565b8115156104c857fe5b049450610518565b6104e0888763ffffffff610fc516565b91506104f1828989620f4240611022565b909450925060ff831661050a8a8663ffffffff610f4116565b9060020a9004905088810394505b50505050949350505050565b600061037085858585610763565b60006103708585858561055e565b600881565b60006105548686868686610904565b9695505050505050565b60008080808080808a116105aa576040805160e560020a62461bcd0281526020600482015260126024820152600080516020613e2f833981519152604482015290519081900360640190fd5b600089116105f0576040805160e560020a62461bcd02815260206004820152601b6024820152600080516020613e4f833981519152604482015290519081900360640190fd5b60008863ffffffff1611801561060f5750620f424063ffffffff891611155b1515610665576040805160e560020a62461bcd02815260206004820152601a60248201527f4552525f494e56414c49445f524553455256455f574549474854000000000000604482015290519081900360640190fd5b898711156106bd576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f494e56414c49445f414d4f554e540000000000000000000000000000604482015290519081900360640190fd5b8615156106cd5760009550610756565b898714156106dd57889550610756565b63ffffffff8816620f4240141561071057896106ff8a8963ffffffff610f4116565b81151561070857fe5b049550610756565b868a0392506107248a84620f42408b611022565b9095509350610739898663ffffffff610f4116565b91505060ff831660020a88028481830381151561075257fe5b0495505b5050505050949350505050565b60008080808080808a116107af576040805160e560020a62461bcd0281526020600482015260126024820152600080516020613e2f833981519152604482015290519081900360640190fd5b600089116107f5576040805160e560020a62461bcd02815260206004820152601b6024820152600080516020613e4f833981519152604482015290519081900360640190fd5b60018863ffffffff161180156108145750621e848063ffffffff891611155b151561086a576040805160e560020a62461bcd02815260206004820152601960248201527f4552525f494e56414c49445f524553455256455f524154494f00000000000000604482015290519081900360640190fd5b898711156108c2576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f494e56414c49445f414d4f554e540000000000000000000000000000604482015290519081900360640190fd5b8615156108d25760009550610756565b898714156108e257889550610756565b63ffffffff8816620f4240141561071057896106ff888b63ffffffff610f4116565b60008060008060008060008b11801561091d5750600089115b1515610961576040805160e560020a62461bcd02815260206004820152601b6024820152600080516020613e4f833981519152604482015290519081900360640190fd5b60008a63ffffffff161180156109805750620f424063ffffffff8b1611155b8015610992575060008863ffffffff16115b80156109a75750620f424063ffffffff891611155b15156109fd576040805160e560020a62461bcd02815260206004820152601a60248201527f4552525f494e56414c49445f524553455256455f574549474854000000000000604482015290519081900360640190fd5b8763ffffffff168a63ffffffff161415610a4257610a218b8863ffffffff610fc516565b610a318a8963ffffffff610f4116565b811515610a3a57fe5b049550610a92565b610a528b8863ffffffff610fc516565b9250610a60838c8c8b611022565b9095509350610a75898663ffffffff610f4116565b91505060ff831660020a880284818303811515610a8e57fe5b0495505b505050505095945050505050565b60008060008087891415610b06576000891180610abd5750600087115b1515610b01576040805160e560020a62461bcd02815260206004820152601b6024820152600080516020613e4f833981519152604482015290519081900360640190fd5b610b66565b600089118015610b165750600088115b8015610b225750600087115b1515610b66576040805160e560020a62461bcd02815260206004820152601b6024820152600080516020613e4f833981519152604482015290519081900360640190fd5b600086118015610b765750600085115b1515610bcc576040805160e560020a62461bcd02815260206004820152601860248201527f4552525f494e56414c49445f524553455256455f524154450000000000000000604482015290519081900360640190fd5b610bdc898763ffffffff610f4116565b9150610bee878663ffffffff610f4116565b905087891015610c0f57610c06888a8484600161110c565b93509350610c34565b87891115610c2557610c0689898484600061110c565b610c2f82826111ef565b935093505b50509550959350505050565b610c4861122c565b610c50611a02565b565b600080808080808911610c9d576040805160e560020a62461bcd0281526020600482015260126024820152600080516020613e2f833981519152604482015290519081900360640190fd5b60008811610ce3576040805160e560020a62461bcd02815260206004820152601b6024820152600080516020613e4f833981519152604482015290519081900360640190fd5b60018763ffffffff16118015610d025750621e848063ffffffff881611155b1515610d58576040805160e560020a62461bcd02815260206004820152601960248201527f4552525f494e56414c49445f524553455256455f524154494f00000000000000604482015290519081900360640190fd5b851515610d685760009450610518565b63ffffffff8716620f42401415610da157886001610d8c888b63ffffffff610f4116565b03811515610d9657fe5b046001019450610518565b610db1898763ffffffff610fc516565b9150610dc2828a620f42408a611022565b909450925060ff83166001610ddd8a8763ffffffff610f4116565b60029290920a9103049790970360010198975050505050505050565b600080808080808911610e44576040805160e560020a62461bcd0281526020600482015260126024820152600080516020613e2f833981519152604482015290519081900360640190fd5b60008811610e8a576040805160e560020a62461bcd02815260206004820152601b6024820152600080516020613e4f833981519152604482015290519081900360640190fd5b60008763ffffffff16118015610ea95750620f424063ffffffff881611155b1515610eff576040805160e560020a62461bcd02815260206004820152601a60248201527f4552525f494e56414c49445f524553455256455f574549474854000000000000604482015290519081900360640190fd5b851515610f0f5760009450610518565b63ffffffff8716620f42401415610f3157876104bf8a8863ffffffff610f4116565b6104e0868963ffffffff610fc516565b600080831515610f545760009150610fbe565b50828202828482811515610f6457fe5b0414610fba576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b8091505b5092915050565b600082820183811015610fba576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b600080808080807002000000000000000000000000000000008a1061104657600080fd5b88607f60020a8b0281151561105757fe5b04925070015bf0a8b1457695355fb8ac404e7a79e38310156110835761107c83612409565b935061108f565b61108c83612821565b93505b8663ffffffff168863ffffffff1685028115156110a857fe5b0491507008000000000000000000000000000000008210156110d8576110cd826128db565b607f955095506110ff565b6110e182612cdb565b90506110f960ff607f8390031660020a830482612d68565b81955095505b5050505094509492505050565b60008060008060008061111f898961318b565b9099509750896111398c607f60020a63ffffffff610f4116565b81151561114257fe5b04935070015bf0a8b1457695355fb8ac404e7a79e3841061116b5761116684612821565b611174565b61117484612409565b925087611187848b63ffffffff610f4116565b81151561119057fe5b049150866111a6576111a182613247565b6111af565b6111af826132a4565b90506111dd6111c4828b63ffffffff610f4116565b6111d88a607f60020a63ffffffff610f4116565b6111ef565b95509550505050509550959350505050565b600080808084861161120e576112058686613308565b93509350611223565b6112188587613308565b915091508082935093505b50509250929050565b701c35fedd14ffffffffffffffffffffffff602055701b0ce43b323fffffffffffffffffffffff6021557019f0028ec1ffffffffffffffffffffffff6022557018ded91f0e7fffffffffffffffffffffff6023557017d8ec7f0417ffffffffffffffffffffff6024557016ddc6556cdbffffffffffffffffffffff6025557015ecf52776a1ffffffffffffffffffffff6026557015060c256cb2ffffffffffffffffffffff602755701428a2f98d72ffffffffffffffffffffff6028557013545598e5c23fffffffffffffffffffff602955701288c4161ce1dfffffffffffffffffffff602a557011c592761c666fffffffffffffffffffff602b5570110a688680a757ffffffffffffffffffff602c55701056f1b5bedf77ffffffffffffffffffff602d55700faadceceeff8bffffffffffffffffffff602e55700f05dc6b27edadffffffffffffffffffff602f55700e67a5a25da4107fffffffffffffffffff603055700dcff115b14eedffffffffffffffffffff603155700d3e7a392431239fffffffffffffffffff603255700cb2ff529eb71e4fffffffffffffffffff603355700c2d415c3db974afffffffffffffffffff603455700bad03e7d883f69bffffffffffffffffff603555700b320d03b2c343d5ffffffffffffffffff603655700abc25204e02828dffffffffffffffffff603755700a4b16f74ee4bb207fffffffffffffffff6038557009deaf736ac1f569ffffffffffffffffff603955700976bd9952c7aa957fffffffffffffffff603a557009131271922eaa606fffffffffffffffff603b557008b380f3558668c46fffffffffffffffff603c55700857ddf0117efa215bffffffffffffffff603d557007ffffffffffffffffffffffffffffffff603e557007abbf6f6abb9d087fffffffffffffffff603f5570075af62cbac95f7dfa7fffffffffffffff60405570070d7fb7452e187ac13fffffffffffffff6041557006c3390ecc8af379295fffffffffffffff60425570067c00a3b07ffc01fd6fffffffffffffff604355700637b647c39cbb9d3d27ffffffffffffff6044557005f63b1fc104dbd39587ffffffffffffff6045557005b771955b36e12f7235ffffffffffffff60465570057b3d49dda84556d6f6ffffffffffffff60475570054183095b2c8ececf30ffffffffffffff60485570050a28be635ca2b888f77fffffffffffff6049557004d5156639708c9db33c3fffffffffffff604a557004a23105873875bd52dfdfffffffffffff604b55700471649d87199aa990756fffffffffffff604c557004429a21a029d4c1457cfbffffffffffff604d55700415bc6d6fb7dd71af2cb3ffffffffffff604e557003eab73b3bbfe282243ce1ffffffffffff604f557003c1771ac9fb6b4c18e229ffffffffffff605055700399e96897690418f785257fffffffffff605155700373fc456c53bb779bf0ea9fffffffffff60525570034f9e8e490c48e67e6ab8bfffffffffff60535570032cbfd4a7adc790560b3337ffffffffff60545570030b50570f6e5d2acca94613ffffffffff6055557002eb40f9f620fda6b56c2861ffffffffff6056557002cc8340ecb0d0f520a6af58ffffffffff6057557002af09481380a0a35cf1ba02ffffffffff605855700292c5bdd3b92ec810287b1b3fffffffff605955700277abdcdab07d5a77ac6d6b9fffffffff605a5570025daf6654b1eaa55fd64df5efffffffff605b55700244c49c648baa98192dce88b7ffffffff605c5570022ce03cd5619a311b2471268bffffffff605d55700215f77c045fbe885654a44a0fffffffff605e557001ffffffffffffffffffffffffffffffff605f557001eaefdbdaaee7421fc4d3ede5ffffffff6060557001d6bd8b2eb257df7e8ca57b09bfffffff6061557001c35fedd14b861eb0443f7f133fffffff6062557001b0ce43b322bcde4a56e8ada5afffffff60635570019f0028ec1fff007f5a195a39dfffffff60645570018ded91f0e72ee74f49b15ba527ffffff60655570017d8ec7f04136f4e5615fd41a63ffffff60665570016ddc6556cdb84bdc8d12d22e6fffffff60675570015ecf52776a1155b5bd8395814f7fffff60685570015060c256cb23b3b3cc3754cf40ffffff6069557001428a2f98d728ae223ddab715be3fffff606a5570013545598e5c23276ccf0ede68034fffff606b557001288c4161ce1d6f54b7f61081194fffff606c5570011c592761c666aa641d5a01a40f17ffff606d55700110a688680a7530515f3e6e6cfdcdffff606e557001056f1b5bedf75c6bcb2ce8aed428ffff606f556ffaadceceeff8a0890f3875f008277fff6070556ff05dc6b27edad306388a600f6ba0bfff6071556fe67a5a25da41063de1495d5b18cdbfff6072556fdcff115b14eedde6fc3aa5353f2e4fff6073556fd3e7a3924312399f9aae2e0f868f8fff6074556fcb2ff529eb71e41582cccd5a1ee26fff6075556fc2d415c3db974ab32a51840c0b67edff6076556fbad03e7d883f69ad5b0a186184e06bff6077556fb320d03b2c343d4829abd6075f0cc5ff6078556fabc25204e02828d73c6e80bcdb1a95bf6079556fa4b16f74ee4bb2040a1ec6c15fbbf2df607a556f9deaf736ac1f569deb1b5ae3f36c130f607b556f976bd9952c7aa957f5937d790ef65037607c556f9131271922eaa6064b73a22d0bd4f2bf607d556f8b380f3558668c46c91c49a2f8e967b9607e556f857ddf0117efa215952912839f6473e66000607f5b0155565b6f60e393c68d20b1bd09deaabc0373b9c560809081556f5f8f46e4854120989ed94719fb4c20116081556f5e479ebb9129fb1b7e72a648f992b6066082556f5d0bd23fe42dfedde2e9586be12b85fe6083556f5bdb29ddee979308ddfca81aeeb8095a6084556f5ab4fd8a260d2c7e2c0d2afcf0009dad6085556f5998b31359a55d48724c65cf090012216086556f5885bcad2b322dfc43e8860f9c018cf56087556f577b97aa1fe222bb452fdf111b1f0be26088556f5679cb5e3575632e5baa27e2b949f7046089556f557fe8241b3a31c83c732f1cdff4a1c5608a556f548d868026504875d6e59bbe95fc2a6b608b556f53a2465ce347cf34d05a867c17dd3088608c556f52bdce5dcd4faed59c7f5511cf8f8acc608d556f51dfcb453c07f8da817606e7885f7c3e608e556f5107ef6b0a5a2be8f8ff15590daa3cce608f556f5035f241d6eae0cd7bacba119993de7b6090556f4f698fe90d5b53d532171e1210164c666091556f4ea288ca297a0e6a09a0eee240e16c856092556f4de0a13fdcf5d4213fc398ba6e3becde6093556f4d23a145eef91fec06b06140804c48086094556f4c6b5430d4c1ee5526473db4ae0f11de6095556f4bb7886c240562eba11f4963a53b42406096556f4b080f3f1cb491d2d521e0ea4583521e6097556f4a5cbc96a05589cb4d86be1db31683646098556f49b566d40243517658d78c33162d6ece6099556f4911e6a02e5507a30f947383fd9a3276609a556f487216c2b31be4adc41db8a8d5cc0c88609b556f47d5d3fc4a7a1b188cd3d788b5c5e9fc609c556f473cfce4871a2c40bc4f9e1c32b955d0609d556f46a771ca578ab878485810e285e31c67609e556f4615149718aed4c258c373dc676aa72d609f556f4585c8b3f8fe489c6e1833ca4787138460a0556f44f972f174e41e5efb7e9d63c29ce73560a1556f446ff970ba86d8b00beb05ecebf3c4dc60a2556f43e9438ec88971812d6f198b5ccaad9660a3556f436539d11ff7bea657aeddb394e809ef60a4556f42e3c5d3e5a913401d86f66db5d81c2c60a5556f4264d2395303070ea726cbe98df6217460a6556f41e84a9a593bb7194c3a6349ecae4eea60a7556f416e1b785d13eba07a08f3f18876a5ab60a8556f40f6322ff389d423ba9dd7e7e7b7e80960a9556f40807cec8a466880ecf4184545d240a460aa556f400cea9ce88a8d3ae668e8ea0d9bf07f60ab556f3f9b6ae8772d4c55091e0ed7dfea0ac160ac556f3f2bee253fd84594f54bcaafac383a1360ad556f3ebe654e95208bb9210c575c081c595860ae556f3e52c1fc5665635b78ce1f05ad53c08660af556f3de8f65ac388101ddf718a6f5c1eff6560b0556f3d80f522d59bd0b328ca012df4cd2d4960b1556f3d1ab193129ea72b23648a161163a85a60b2556f3cb61f68d32576c135b95cfb53f76d7560b3556f3c5332d9f1aae851a3619e77e4cc847360b4556f3bf1e08edbe2aa109e1525f65759ef7360b5556f3b921d9cff13fa2c197746a3dfc4918f60b6556f3b33df818910bfc1a5aefb8f63ae2ac460b7556f3ad71c1c77e34fa32a9f184967eccbf660b8556f3a7bc9abf2c5bb53e2f7384a8a16521a60b9556f3a21dec7e76369783a68a0c6385a1c5760ba556f39c9525de6c9cdf7c1c157ca4a7a6ee360bb556f39721bad3dc85d1240ff0190e0adaac360bc556f391c324344d3248f0469eb28dd3d77e060bd556f38c78df7e3c796279fb4ff84394ab3da60be556f387426ea4638ae9aae08049d3554c20a60bf556f3821f57dbd2763256c1a99bbd205137860c0556f37d0f256cb46a8c92ff62fbbef28969860c1556f37811658591ffc7abdd1feaf3cef9b7360c2556f37325aa10e9e82f7df0f380f7997154b60c3556f36e4b888cfb408d873b9a80d439311c660c4556f3698299e59f4bb9de645fc9b08c64cca60c5556f364ca7a5012cb603023b57dd3ebfd50d60c6556f36022c928915b778ab1b06aaee7e61d460c7556f35b8b28d1a73dc27500ffe35559cc02860c8556f357033e951fe250ec5eb4e60955132d760c9556f3528ab2867934e3a21b5412e4c4f888160ca556f34e212f66c55057f9676c80094a61d5960cb556f349c66289e5b3c4b540c24f42fa4b9bb60cc556f34579fbbd0c733a9c8d6af6b0f7d00f760cd556f3413bad2e712288b924b5882b5b369bf60ce556f33d0b2b56286510ef730e213f71f12e960cf556f338e82ce00e2496262c64457535ba1a160d0556f334d26a96b373bb7c2f8ea1827f27a9260d1556f330c99f4f4211469e00b3e18c31475ea60d2556f32ccd87d6486094999c7d5e6f33237d860d3556f328dde2dd617b6665a2e8556f250c1af60d4556f324fa70e9adc270f8262755af5a99af960d5556f32122f443110611ca51040f41fa6e1e360d6556f31d5730e42c0831482f0f1485c4263d860d7556f31996ec6b07b4a83421b5ebc4ab4e1f160d8556f315e1ee0a68ff46bb43ec2b85032e87660d9556f31237fe7bc4deacf6775b9efa1a145f860da556f30e98e7f1cc5a356e44627a6972ea2ff60db556f30b04760b8917ec74205a3002650ec0560dc556f3077a75c803468e9132ce0cf3224241d60dd556f303fab57a6a275c36f19cda9bace667a60de556f3008504beb8dcbd2cf3bc1f6d5a064f060df556f2fd19346ed17dac61219ce0c2c5ac4b060e0556f2f9b7169808c324b5852fd3d54ba971460e1556f2f65e7e711cf4b064eea9c08cbdad57460e2556f2f30f405093042ddff8a251b6bf6d10360e3556f2efc931a3750f2e8bfe323edfe03757460e4556f2ec8c28e46dbe56d98685278339400cb60e5556f2e957fd933c3926d8a599b602379b85160e6556f2e62c882c7c9ed4473412702f08ba0e560e7556f2e309a221c12ba361e3ed695167feee260e8556f2dfef25d1f865ae18dd07cfea4bcea1060e9556f2dcdcee821cdc80decc02c44344aeb3160ea556f2d9d2d8562b34944d0b201bb87260c8360eb556f2d6d0c04a5b62a2c42636308669b729a60ec556f2d3d6842c9a235517fc5a0332691528f60ed556f2d0e402963fe1ea2834abc408c437c1060ee556f2cdf91ae602647908aff975e4d6a2a8c60ef556f2cb15ad3a1eb65f6d74a75da09a1b6c560f0556f2c8399a6ab8e9774d6fcff373d21072760f1556f2c564c4046f64edba6883ca06bbc453560f2556f2c2970c431f952641e05cb493e23eed360f3556f2bfd0560cd9eb14563bc7c0732856c1860f4556f2bd1084ed0332f7ff4150f9d0ef41a2c60f5556f2ba577d0fa1628b76d040b12a82492fb60f6556f2b7a5233cd21581e855e89dc2f1e8a9260f7556f2b4f95cd46904d05d72bdcde337d9cc760f8556f2b2540fc9b4d9abba3faca669191467560f9556f2afb5229f68d0830d8be8adb0a0db70f60fa556f2ad1c7c63a9b294c5bc73a3ba3ab7a2b60fb556f2aa8a04ac3cbe1ee1c9c86361465dbb860fc556f2a7fda392d725a44a2c8aeb9ab35430d60fd556f2a57741b18cde618717792b4faa216db60fe556f2a2f6c81f5d84dd950a35626d6d5503a90607f6119fe565b6000808080806fd3094c70f034de4b96ff7d5b6f99fcd88610612458576f4000000000000000000000000000000093909301926fd3094c70f034de4b96ff7d5b6f99fcd8607f60020a87020495505b6fa45af1e1f40c333b3de1db4dd55f29a786106124a1576f2000000000000000000000000000000093909301926fa45af1e1f40c333b3de1db4dd55f29a7607f60020a87020495505b6f910b022db7ae67ce76b441c27035c6a186106124ea576f1000000000000000000000000000000093909301926f910b022db7ae67ce76b441c27035c6a1607f60020a87020495505b6f88415abbe9a76bead8d00cf112e4d4a88610612533576f0800000000000000000000000000000093909301926f88415abbe9a76bead8d00cf112e4d4a8607f60020a87020495505b6f84102b00893f64c705e841d5d4064bd3861061257c576f0400000000000000000000000000000093909301926f84102b00893f64c705e841d5d4064bd3607f60020a87020495505b6f8204055aaef1c8bd5c3259f4822735a286106125c5576f0200000000000000000000000000000093909301926f8204055aaef1c8bd5c3259f4822735a2607f60020a87020495505b6f810100ab00222d861931c15e39b44e99861061260e576f0100000000000000000000000000000093909301926f810100ab00222d861931c15e39b44e99607f60020a87020495505b6f808040155aabbbe9451521693554f7338610612656576e80000000000000000000000000000093909301926f808040155aabbbe9451521693554f733607f60020a87020495505b6f7fffffffffffffffffffffffffffffff1986019250829150607f60020a828002049050608060020a8381038302049390930192607f60020a8282020491507002000000000000000000000000000000006faaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa8490038302049390930192607f60020a8282020491507003000000000000000000000000000000006f999999999999999999999999999999998490038302049390930192607f60020a8282020491507004000000000000000000000000000000006f924924924924924924924924924924928490038302049390930192607f60020a8282020491507005000000000000000000000000000000006f8e38e38e38e38e38e38e38e38e38e38e8490038302049390930192607f60020a8282020491507006000000000000000000000000000000006f8ba2e8ba2e8ba2e8ba2e8ba2e8ba2e8b8490038302049390930192607f60020a8282020491507007000000000000000000000000000000006f89d89d89d89d89d89d89d89d89d89d898490038302049390930192607f60020a8282020491507008000000000000000000000000000000006f888888888888888888888888888888888490038302049390930195945050505050565b6000808080608060020a851061285957612841607f60020a865b046133a4565b60ff8116600281900a90960495607f60020a02935091505b607f60020a8511156128ab5750607f5b60008160ff1611156128ab57607f60020a858002049450608060020a85106128a2576002948590049460ff600019830116900a92909201915b60001901612869565b6f05b9de1d10bf4103d647b0955897ba806f03f80fe03f80fe03f80fe03f80fe03f884020493505b505050919050565b6000670168244fdac78000607f60020a6f0fffffffffffffffffffffffffffffff84168080028290048082028390048083028490049485026710e1b3be415a00009092026705a0913f6b1e000091909102010192909181830204905080664807432bc180000283019250607f60020a82820281151561295657fe5b04905080660c0135dca040000283019250607f60020a82820281151561297857fe5b049050806601b707b1cdc0000283019250607f60020a82820281151561299a57fe5b049050806536e0f639b8000283019250607f60020a8282028115156129bb57fe5b04905080650618fee9f8000283019250607f60020a8282028115156129dc57fe5b04905080649c197dcc000283019250607f60020a8282028115156129fc57fe5b04905080640e30dce4000283019250607f60020a828202811515612a1c57fe5b0490508064012ebd13000283019250607f60020a828202811515612a3c57fe5b049050806317499f000283019250607f60020a828202811515612a5b57fe5b049050806301a9d4800283019250607f60020a828202811515612a7a57fe5b04905080621c63800283019250607f60020a828202811515612a9857fe5b049050806201c6380283019250607f60020a828202811515612ab657fe5b04905080611ab80283019250607f60020a828202811515612ad357fe5b0490508061017c0283019250607f60020a828202811515612af057fe5b0490508060140283019250607f60020a828202811515612b0c57fe5b6721c3677c82b40000919004938401048201607f60020a019290506f10000000000000000000000000000000851615612b695770018ebef9eac820ae8682b9793ac6d1e7767001c3d6a24ed82218787d624d3e5eba95f984020492505b6f20000000000000000000000000000000851615612bab577001368b2fc6f9609fe7aceb46aa619baed470018ebef9eac820ae8682b9793ac6d1e77884020492505b6f40000000000000000000000000000000851615612bec576fbc5ab1b16779be3575bd8f0520a9f21f7001368b2fc6f9609fe7aceb46aa619baed584020492505b607f60020a851615612c20576f454aaa8efe072e7f6ddbab84b40a55c96fbc5ab1b16779be3575bd8f0520a9f21e84020492505b608060020a851615612c54576f0960aadc109e7a3bf4578099615711ea6f454aaa8efe072e7f6ddbab84b40a55c584020492505b700200000000000000000000000000000000851615612c94576e2bf84208204f5977f9a8cf01fdce3d6f0960aadc109e7a3bf4578099615711d784020492505b700400000000000000000000000000000000851615612cd2576d03c6ab775dd0b95b4cbee7e65d116e2bf84208204f5977f9a8cf01fdc30784020492505b50909392505050565b60006020607f825b8160ff168360010160ff161015612d2857600260ff8484011604905084600060ff831660808110612d1057fe5b015410612d1f57809250612d23565b8091505b612ce3565b84600060ff841660808110612d3957fe5b015410612d48578193506128d3565b84600060ff851660808110612d5957fe5b015410610106578293506128d3565b6000806000849150600090508360ff168583029060020a90049150816f03442c4e6074a82f1797f72ac000000002810190508360ff168583029060020a90049150816f0116b96f757c380fb287fd0e4000000002810190508360ff168583029060020a90049150816e45ae5bdd5f0e03eca1ff439000000002810190508360ff168583029060020a90049150816e0defabf91302cd95b9ffda5000000002810190508360ff168583029060020a90049150816e02529ca9832b22439efff9b800000002810190508360ff168583029060020a90049150816d54f1cf12bd04e516b6da8800000002810190508360ff168583029060020a90049150816d0a9e39e257a09ca2d6db5100000002810190508360ff168583029060020a90049150816d012e066e7b839fa050c30900000002810190508360ff168583029060020a90049150816c1e33d7d926c329a1ad1a80000002810190508360ff168583029060020a90049150816c02bee513bdb4a6b19b5f80000002810190508360ff168583029060020a90049150816b3a9316fa79b88eccf2a0000002810190508360ff168583029060020a90049150816b048177ebe1fa81237520000002810190508360ff168583029060020a90049150816a5263fe90242dcbacf0000002810190508360ff168583029060020a90049150816a057e22099c030d9410000002810190508360ff168583029060020a90049150816957e22099c030d941000002810190508360ff168583029060020a900491508169052b6b5456997631000002810190508360ff168583029060020a9004915081684985f67696bf74800002810190508360ff168583029060020a90049150816803dea12ea99e49800002810190508360ff168583029060020a90049150816731880f2214b6e00002810190508360ff168583029060020a900491508167025bcff56eb3600002810190508360ff168583029060020a9004915081661b722e10ab100002810190508360ff168583029060020a90049150816601317c7007700002810190508360ff168583029060020a9004915081650cba84aafa0002810190508360ff168583029060020a90049150816482573a0a0002810190508360ff168583029060020a90049150816405035ad90002810190508360ff168583029060020a9004915081632f881b0002810190508360ff168583029060020a90049150816301b2934002810190508360ff168583029060020a9004915081620efc4002810190508360ff168583029060020a9004915081617fe002810190508360ff168583029060020a900491508161042002810190508360ff168583029060020a9004915081602102810190508360ff168583029060020a9004915081600102810190508360ff1660019060020a02856f0688589cc0e9505e2f2fee55800000008381151561317f57fe5b04010195945050505050565b600080600080608060020a86111580156131a95750608060020a8511155b156131b957858593509350611223565b608060020a8610156131e55784608060020a87028115156131d657fe5b04608060020a93509350611223565b608060020a85101561321157608060020a86608060020a870281151561320757fe5b0493509350611223565b84861161321e5784613220565b855b9150613230607f60020a8361283b565b60ff1660020a958690049695909404949350505050565b60006f2f16ac6c59de6f8d5d6f63c1482a7c868211613270576132698261340d565b905061329f565b817f400000000000000000000000000000000000000000000000000000000000000081151561329b57fe5b0490505b919050565b60006f2f16ac6c59de6f8d5d6f63c1482a7c8682116132c65761326982613870565b7001af16ac6c59de6f8d5d6f63c1482a7c8082116132e75761326982613cf1565b706b22d43e72c326539cceeef8bb48f255ff82116101065761326982613d6f565b60008060008060007d10c6f7a0b5ed8d36b4c7f34938583621fafc8b0079a2834d26fa3fcc9ea9871115613379577d10c6f7a0b5ed8d36b4c7f34938583621fafc8b0079a2834d26fa3fcc9eaa87046001019250828781151561336757fe5b049650828681151561337557fe5b0495505b613391620f4240880261338c8989610fc5565b613dfc565b97620f4240899003975095505050505050565b600080806101008410156133d3575b60018411156133ce57600290930492600191909101906133b3565b610fbe565b5060805b60008160ff161115610fbe5760ff811660020a84106134005760ff811660020a90930492908117905b600260ff909116046133d7565b60008181607f60020a82800204915070014d29a73a6e7b02c3668c7b0880000000820201607f60020a8483020491507002504a0cd9a7f7215b60f9be4800000000820201607f60020a848302049150700484d0a1191c0ead267967c7a4a0000000820201607f60020a84830204915070095ec580d7e8427a4baf26a90a00000000820201607f60020a848302049150701440b0be1615a47dba6e5b3b1f10000000820201607f60020a848302049150702d207601f46a99b4112418400000000000820201607f60020a8483020491507066ebaac4c37c622dd8288a7eb1b2000000820201607f60020a84830204915070ef17240135f7dbd43a1ba10cf200000000820201607f60020a848302049150710233c33c676a5eb2416094a87b3657000000820201607f60020a848302049150710541cde48bc0254bed49a9f8700000000000820201607f60020a848302049150710cae1fad2cdd4d4cb8d73abca0d19a400000820201607f60020a848302049150711edb2aa2f760d15c41ceedba956400000000820201607f60020a848302049150714ba8d20d2dabd386c9529659841a2e200000820201607f60020a84830204915071bac08546b867cdaa20000000000000000000820201607f60020a8483020491507201cfa8e70c03625b9db76c8ebf5bbf24820000820201607f60020a8483020491507204851d99f82060df265f3309b26f8200000000820201607f60020a848302049150720b550d19b129d270c44f6f55f027723cbb0000820201607f60020a848302049150721c877dadc761dc272deb65d4b0000000000000820201607f60020a8483020491507248178ece97479f33a77f2ad22a81b64406c000820201607f60020a84830204915072b6ca8268b9d810fedf6695ef2f8a6c00000000820201607f60020a8483020491507301d0e76631a5b05d007b8cb72a7c7f11ec36e000820201607f60020a8483020491507304a1c37bd9f85fd9c6c780000000000000000000820201607f60020a848302049150730bd8369f1b702bf491e2ebfcee08250313b65400820201607f60020a848302049150731e5c7c32a9f6c70ab2cb59d9225764d400000000820201607f60020a848302049150734dff5820e165e910f95120a708e742496221e600820201607f60020a84830204915073c8c8f66db1fced378ee50e536000000000000000820201607f60020a848302049150740205db8dffff45bfa2938f128f599dbf16eb11d880820201607f60020a84830204915074053a044ebd984351493e1786af38d39a0800000000820201607f60020a848302049150740d86dae2a4cc0f47633a544479735869b487b59c40820201607f60020a84830204915074231000000000000000000000000000000000000000820201607f60020a848302049150745b0485a76f6646c2039db1507cdd51b08649680822820201607f60020a84830204915074ec983c46c49545bc17efa6b5b0055e242200000000820201607f60020a846fde1bc4d19efcac82445da75b0000000083040101949350505050565b600081607f60020a8181036fde1bc4d19efcac82445da75b00000000029082800204915070014d29a73a6e7b02c3668c7b0880000000820201607f60020a8483020491507002504a0cd9a7f7215b60f9be480000000082029003607f60020a848302049150700484d0a1191c0ead267967c7a4a0000000820201607f60020a84830204915070095ec580d7e8427a4baf26a90a0000000082029003607f60020a848302049150701440b0be1615a47dba6e5b3b1f10000000820201607f60020a848302049150702d207601f46a99b411241840000000000082029003607f60020a8483020491507066ebaac4c37c622dd8288a7eb1b2000000820201607f60020a84830204915070ef17240135f7dbd43a1ba10cf20000000082029003607f60020a848302049150710233c33c676a5eb2416094a87b3657000000820201607f60020a848302049150710541cde48bc0254bed49a9f870000000000082029003607f60020a848302049150710cae1fad2cdd4d4cb8d73abca0d19a400000820201607f60020a848302049150711edb2aa2f760d15c41ceedba95640000000082029003607f60020a848302049150714ba8d20d2dabd386c9529659841a2e200000820201607f60020a84830204915071bac08546b867cdaa2000000000000000000082029003607f60020a8483020491507201cfa8e70c03625b9db76c8ebf5bbf24820000820201607f60020a8483020491507204851d99f82060df265f3309b26f820000000082029003607f60020a848302049150720b550d19b129d270c44f6f55f027723cbb0000820201607f60020a848302049150721c877dadc761dc272deb65d4b000000000000082029003607f60020a8483020491507248178ece97479f33a77f2ad22a81b64406c000820201607f60020a84830204915072b6ca8268b9d810fedf6695ef2f8a6c0000000082029003607f60020a8483020491507301d0e76631a5b05d007b8cb72a7c7f11ec36e000820201607f60020a8483020491507304a1c37bd9f85fd9c6c78000000000000000000082029003607f60020a848302049150730bd8369f1b702bf491e2ebfcee08250313b65400820201607f60020a848302049150731e5c7c32a9f6c70ab2cb59d9225764d40000000082029003607f60020a848302049150734dff5820e165e910f95120a708e742496221e600820201607f60020a84830204915073c8c8f66db1fced378ee50e53600000000000000082029003607f60020a848302049150740205db8dffff45bfa2938f128f599dbf16eb11d880820201607f60020a84830204915074053a044ebd984351493e1786af38d39a080000000082029003607f60020a848302049150740d86dae2a4cc0f47633a544479735869b487b59c40820201607f60020a8483020491507423100000000000000000000000000000000000000082029003607f60020a848302049150745b0485a76f6646c2039db1507cdd51b08649680822820201607f60020a84830204915074ec983c46c49545bc17efa6b5b0055e242200000000820290036fde1bc4d19efcac82445da75b00000000815b04949350505050565b60006f2f16ac6c59de6f8d5d6f63c1482a7c861982016f03060c183060c183060c183060c18306808204908181029060018301028480608085818110613d3357fe5b01549150608060018601818110613d4657fe5b01546f03060c183060c183060c183060c183069487030295909203029390930104949350505050565b600080600070015bf0a8b1457695355fb8ac404e7a79e38410613d9a57613d9584612821565b613da3565b613da384612409565b915070015bf0a8b1457695355fb8ac404e7a79e38210613dcb57613dc682612821565b613dd4565b613dd482612409565b905083607f60020a83607f60020a8402811515613ded57fe5b048385030102811515613ce857fe5b60006002820482038284811515613e0f57fe5b06811515613e1957fe5b048284811515613e2557fe5b0401939250505056004552525f494e56414c49445f535550504c5900000000000000000000000000004552525f494e56414c49445f524553455256455f42414c414e43450000000000a165627a7a723058203aa61a409e729a09805c2713f062e39bb7a14053960c848bb2d7636183d573a70029", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3E9A DUP1 PUSH2 0x20 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x106 JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x1DA6BBFB DUP2 EQ PUSH2 0x10B JUMPI DUP1 PUSH4 0x29A00E7C EQ PUSH2 0x144 JUMPI DUP1 PUSH4 0x2F55BDB5 EQ PUSH2 0x16B JUMPI DUP1 PUSH4 0x35B49AF4 EQ PUSH2 0x192 JUMPI DUP1 PUSH4 0x48D73FED EQ PUSH2 0x144 JUMPI DUP1 PUSH4 0x49F9B0F7 EQ PUSH2 0x1B9 JUMPI DUP1 PUSH4 0x54FD4D50 EQ PUSH2 0x1E0 JUMPI DUP1 PUSH4 0x65098BB3 EQ PUSH2 0x20C JUMPI DUP1 PUSH4 0x76CF0B56 EQ PUSH2 0x23A JUMPI DUP1 PUSH4 0x79C1B450 EQ PUSH2 0x20C JUMPI DUP1 PUSH4 0x8074590A EQ PUSH2 0x261 JUMPI DUP1 PUSH4 0x94491FAB EQ PUSH2 0x288 JUMPI DUP1 PUSH4 0x9D114108 EQ PUSH2 0x20C JUMPI DUP1 PUSH4 0xA11AA1B4 EQ PUSH2 0x2B6 JUMPI DUP1 PUSH4 0xABFD231D EQ PUSH2 0x192 JUMPI DUP1 PUSH4 0xE1C7392A EQ PUSH2 0x2FD JUMPI DUP1 PUSH4 0xEBBB2158 EQ PUSH2 0x314 JUMPI DUP1 PUSH4 0xF3250FE2 EQ PUSH2 0x33B JUMPI DUP1 PUSH4 0xF732F1C9 EQ PUSH2 0x1B9 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x117 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x132 PUSH1 0x4 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH4 0xFFFFFFFF PUSH1 0x44 CALLDATALOAD AND PUSH1 0x64 CALLDATALOAD PUSH2 0x362 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x150 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x132 PUSH1 0x4 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH4 0xFFFFFFFF PUSH1 0x44 CALLDATALOAD AND PUSH1 0x64 CALLDATALOAD PUSH2 0x379 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x177 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x132 PUSH1 0x4 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH4 0xFFFFFFFF PUSH1 0x44 CALLDATALOAD AND PUSH1 0x64 CALLDATALOAD PUSH2 0x387 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x19E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x132 PUSH1 0x4 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH4 0xFFFFFFFF PUSH1 0x44 CALLDATALOAD AND PUSH1 0x64 CALLDATALOAD PUSH2 0x524 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1C5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x132 PUSH1 0x4 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH4 0xFFFFFFFF PUSH1 0x44 CALLDATALOAD AND PUSH1 0x64 CALLDATALOAD PUSH2 0x532 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1EC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1F5 PUSH2 0x540 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0xFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x218 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x132 PUSH1 0x4 CALLDATALOAD PUSH4 0xFFFFFFFF PUSH1 0x24 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x44 CALLDATALOAD SWAP1 PUSH1 0x64 CALLDATALOAD AND PUSH1 0x84 CALLDATALOAD PUSH2 0x545 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x246 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x132 PUSH1 0x4 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH4 0xFFFFFFFF PUSH1 0x44 CALLDATALOAD AND PUSH1 0x64 CALLDATALOAD PUSH2 0x55E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x26D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x132 PUSH1 0x4 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH4 0xFFFFFFFF PUSH1 0x44 CALLDATALOAD AND PUSH1 0x64 CALLDATALOAD PUSH2 0x763 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x294 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x132 PUSH1 0x4 CALLDATALOAD PUSH4 0xFFFFFFFF PUSH1 0x24 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x44 CALLDATALOAD SWAP1 PUSH1 0x64 CALLDATALOAD AND PUSH1 0x84 CALLDATALOAD PUSH2 0x904 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2C2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2DA PUSH1 0x4 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH1 0x44 CALLDATALOAD PUSH1 0x64 CALLDATALOAD PUSH1 0x84 CALLDATALOAD PUSH2 0xAA0 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH4 0xFFFFFFFF SWAP4 DUP5 AND DUP2 MSTORE SWAP2 SWAP1 SWAP3 AND PUSH1 0x20 DUP3 ADD MSTORE DUP2 MLOAD SWAP1 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x309 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x312 PUSH2 0xC40 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x320 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x132 PUSH1 0x4 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH4 0xFFFFFFFF PUSH1 0x44 CALLDATALOAD AND PUSH1 0x64 CALLDATALOAD PUSH2 0xC52 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x347 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x132 PUSH1 0x4 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH4 0xFFFFFFFF PUSH1 0x44 CALLDATALOAD AND PUSH1 0x64 CALLDATALOAD PUSH2 0xDF9 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x370 DUP6 DUP6 DUP6 DUP6 PUSH2 0xC52 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x370 DUP6 DUP6 DUP6 DUP6 PUSH2 0xDF9 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP1 DUP1 DUP1 DUP10 GT PUSH2 0x3D2 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3E2F DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP9 GT PUSH2 0x418 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3E4F DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP8 PUSH4 0xFFFFFFFF AND GT DUP1 ISZERO PUSH2 0x437 JUMPI POP PUSH3 0x1E8480 PUSH4 0xFFFFFFFF DUP9 AND GT ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x48D JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F524154494F00000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP6 ISZERO ISZERO PUSH2 0x49D JUMPI PUSH1 0x0 SWAP5 POP PUSH2 0x518 JUMP JUMPDEST PUSH4 0xFFFFFFFF DUP8 AND PUSH3 0xF4240 EQ ISZERO PUSH2 0x4D0 JUMPI DUP8 PUSH2 0x4BF DUP8 DUP12 PUSH4 0xFFFFFFFF PUSH2 0xF41 AND JUMP JUMPDEST DUP2 ISZERO ISZERO PUSH2 0x4C8 JUMPI INVALID JUMPDEST DIV SWAP5 POP PUSH2 0x518 JUMP JUMPDEST PUSH2 0x4E0 DUP9 DUP8 PUSH4 0xFFFFFFFF PUSH2 0xFC5 AND JUMP JUMPDEST SWAP2 POP PUSH2 0x4F1 DUP3 DUP10 DUP10 PUSH3 0xF4240 PUSH2 0x1022 JUMP JUMPDEST SWAP1 SWAP5 POP SWAP3 POP PUSH1 0xFF DUP4 AND PUSH2 0x50A DUP11 DUP7 PUSH4 0xFFFFFFFF PUSH2 0xF41 AND JUMP JUMPDEST SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP1 POP DUP9 DUP2 SUB SWAP5 POP JUMPDEST POP POP POP POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x370 DUP6 DUP6 DUP6 DUP6 PUSH2 0x763 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x370 DUP6 DUP6 DUP6 DUP6 PUSH2 0x55E JUMP JUMPDEST PUSH1 0x8 DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x554 DUP7 DUP7 DUP7 DUP7 DUP7 PUSH2 0x904 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP1 DUP1 DUP1 DUP1 DUP11 GT PUSH2 0x5AA JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3E2F DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP10 GT PUSH2 0x5F0 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3E4F DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP9 PUSH4 0xFFFFFFFF AND GT DUP1 ISZERO PUSH2 0x60F JUMPI POP PUSH3 0xF4240 PUSH4 0xFFFFFFFF DUP10 AND GT ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x665 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F574549474854000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP10 DUP8 GT ISZERO PUSH2 0x6BD JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F414D4F554E540000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP7 ISZERO ISZERO PUSH2 0x6CD JUMPI PUSH1 0x0 SWAP6 POP PUSH2 0x756 JUMP JUMPDEST DUP10 DUP8 EQ ISZERO PUSH2 0x6DD JUMPI DUP9 SWAP6 POP PUSH2 0x756 JUMP JUMPDEST PUSH4 0xFFFFFFFF DUP9 AND PUSH3 0xF4240 EQ ISZERO PUSH2 0x710 JUMPI DUP10 PUSH2 0x6FF DUP11 DUP10 PUSH4 0xFFFFFFFF PUSH2 0xF41 AND JUMP JUMPDEST DUP2 ISZERO ISZERO PUSH2 0x708 JUMPI INVALID JUMPDEST DIV SWAP6 POP PUSH2 0x756 JUMP JUMPDEST DUP7 DUP11 SUB SWAP3 POP PUSH2 0x724 DUP11 DUP5 PUSH3 0xF4240 DUP12 PUSH2 0x1022 JUMP JUMPDEST SWAP1 SWAP6 POP SWAP4 POP PUSH2 0x739 DUP10 DUP7 PUSH4 0xFFFFFFFF PUSH2 0xF41 AND JUMP JUMPDEST SWAP2 POP POP PUSH1 0xFF DUP4 AND PUSH1 0x2 EXP DUP9 MUL DUP5 DUP2 DUP4 SUB DUP2 ISZERO ISZERO PUSH2 0x752 JUMPI INVALID JUMPDEST DIV SWAP6 POP JUMPDEST POP POP POP POP POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP1 DUP1 DUP1 DUP1 DUP11 GT PUSH2 0x7AF JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3E2F DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP10 GT PUSH2 0x7F5 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3E4F DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP9 PUSH4 0xFFFFFFFF AND GT DUP1 ISZERO PUSH2 0x814 JUMPI POP PUSH3 0x1E8480 PUSH4 0xFFFFFFFF DUP10 AND GT ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x86A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F524154494F00000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP10 DUP8 GT ISZERO PUSH2 0x8C2 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F414D4F554E540000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP7 ISZERO ISZERO PUSH2 0x8D2 JUMPI PUSH1 0x0 SWAP6 POP PUSH2 0x756 JUMP JUMPDEST DUP10 DUP8 EQ ISZERO PUSH2 0x8E2 JUMPI DUP9 SWAP6 POP PUSH2 0x756 JUMP JUMPDEST PUSH4 0xFFFFFFFF DUP9 AND PUSH3 0xF4240 EQ ISZERO PUSH2 0x710 JUMPI DUP10 PUSH2 0x6FF DUP9 DUP12 PUSH4 0xFFFFFFFF PUSH2 0xF41 AND JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP12 GT DUP1 ISZERO PUSH2 0x91D JUMPI POP PUSH1 0x0 DUP10 GT JUMPDEST ISZERO ISZERO PUSH2 0x961 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3E4F DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP11 PUSH4 0xFFFFFFFF AND GT DUP1 ISZERO PUSH2 0x980 JUMPI POP PUSH3 0xF4240 PUSH4 0xFFFFFFFF DUP12 AND GT ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x992 JUMPI POP PUSH1 0x0 DUP9 PUSH4 0xFFFFFFFF AND GT JUMPDEST DUP1 ISZERO PUSH2 0x9A7 JUMPI POP PUSH3 0xF4240 PUSH4 0xFFFFFFFF DUP10 AND GT ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x9FD JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F574549474854000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP8 PUSH4 0xFFFFFFFF AND DUP11 PUSH4 0xFFFFFFFF AND EQ ISZERO PUSH2 0xA42 JUMPI PUSH2 0xA21 DUP12 DUP9 PUSH4 0xFFFFFFFF PUSH2 0xFC5 AND JUMP JUMPDEST PUSH2 0xA31 DUP11 DUP10 PUSH4 0xFFFFFFFF PUSH2 0xF41 AND JUMP JUMPDEST DUP2 ISZERO ISZERO PUSH2 0xA3A JUMPI INVALID JUMPDEST DIV SWAP6 POP PUSH2 0xA92 JUMP JUMPDEST PUSH2 0xA52 DUP12 DUP9 PUSH4 0xFFFFFFFF PUSH2 0xFC5 AND JUMP JUMPDEST SWAP3 POP PUSH2 0xA60 DUP4 DUP13 DUP13 DUP12 PUSH2 0x1022 JUMP JUMPDEST SWAP1 SWAP6 POP SWAP4 POP PUSH2 0xA75 DUP10 DUP7 PUSH4 0xFFFFFFFF PUSH2 0xF41 AND JUMP JUMPDEST SWAP2 POP POP PUSH1 0xFF DUP4 AND PUSH1 0x2 EXP DUP9 MUL DUP5 DUP2 DUP4 SUB DUP2 ISZERO ISZERO PUSH2 0xA8E JUMPI INVALID JUMPDEST DIV SWAP6 POP JUMPDEST POP POP POP POP POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 DUP8 DUP10 EQ ISZERO PUSH2 0xB06 JUMPI PUSH1 0x0 DUP10 GT DUP1 PUSH2 0xABD JUMPI POP PUSH1 0x0 DUP8 GT JUMPDEST ISZERO ISZERO PUSH2 0xB01 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3E4F DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0xB66 JUMP JUMPDEST PUSH1 0x0 DUP10 GT DUP1 ISZERO PUSH2 0xB16 JUMPI POP PUSH1 0x0 DUP9 GT JUMPDEST DUP1 ISZERO PUSH2 0xB22 JUMPI POP PUSH1 0x0 DUP8 GT JUMPDEST ISZERO ISZERO PUSH2 0xB66 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3E4F DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP7 GT DUP1 ISZERO PUSH2 0xB76 JUMPI POP PUSH1 0x0 DUP6 GT JUMPDEST ISZERO ISZERO PUSH2 0xBCC JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F524154450000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0xBDC DUP10 DUP8 PUSH4 0xFFFFFFFF PUSH2 0xF41 AND JUMP JUMPDEST SWAP2 POP PUSH2 0xBEE DUP8 DUP7 PUSH4 0xFFFFFFFF PUSH2 0xF41 AND JUMP JUMPDEST SWAP1 POP DUP8 DUP10 LT ISZERO PUSH2 0xC0F JUMPI PUSH2 0xC06 DUP9 DUP11 DUP5 DUP5 PUSH1 0x1 PUSH2 0x110C JUMP JUMPDEST SWAP4 POP SWAP4 POP PUSH2 0xC34 JUMP JUMPDEST DUP8 DUP10 GT ISZERO PUSH2 0xC25 JUMPI PUSH2 0xC06 DUP10 DUP10 DUP5 DUP5 PUSH1 0x0 PUSH2 0x110C JUMP JUMPDEST PUSH2 0xC2F DUP3 DUP3 PUSH2 0x11EF JUMP JUMPDEST SWAP4 POP SWAP4 POP JUMPDEST POP POP SWAP6 POP SWAP6 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0xC48 PUSH2 0x122C JUMP JUMPDEST PUSH2 0xC50 PUSH2 0x1A02 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP1 DUP1 DUP1 DUP10 GT PUSH2 0xC9D JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3E2F DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP9 GT PUSH2 0xCE3 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3E4F DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP8 PUSH4 0xFFFFFFFF AND GT DUP1 ISZERO PUSH2 0xD02 JUMPI POP PUSH3 0x1E8480 PUSH4 0xFFFFFFFF DUP9 AND GT ISZERO JUMPDEST ISZERO ISZERO PUSH2 0xD58 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F524154494F00000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP6 ISZERO ISZERO PUSH2 0xD68 JUMPI PUSH1 0x0 SWAP5 POP PUSH2 0x518 JUMP JUMPDEST PUSH4 0xFFFFFFFF DUP8 AND PUSH3 0xF4240 EQ ISZERO PUSH2 0xDA1 JUMPI DUP9 PUSH1 0x1 PUSH2 0xD8C DUP9 DUP12 PUSH4 0xFFFFFFFF PUSH2 0xF41 AND JUMP JUMPDEST SUB DUP2 ISZERO ISZERO PUSH2 0xD96 JUMPI INVALID JUMPDEST DIV PUSH1 0x1 ADD SWAP5 POP PUSH2 0x518 JUMP JUMPDEST PUSH2 0xDB1 DUP10 DUP8 PUSH4 0xFFFFFFFF PUSH2 0xFC5 AND JUMP JUMPDEST SWAP2 POP PUSH2 0xDC2 DUP3 DUP11 PUSH3 0xF4240 DUP11 PUSH2 0x1022 JUMP JUMPDEST SWAP1 SWAP5 POP SWAP3 POP PUSH1 0xFF DUP4 AND PUSH1 0x1 PUSH2 0xDDD DUP11 DUP8 PUSH4 0xFFFFFFFF PUSH2 0xF41 AND JUMP JUMPDEST PUSH1 0x2 SWAP3 SWAP1 SWAP3 EXP SWAP2 SUB DIV SWAP8 SWAP1 SWAP8 SUB PUSH1 0x1 ADD SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP1 DUP1 DUP1 DUP10 GT PUSH2 0xE44 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3E2F DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP9 GT PUSH2 0xE8A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3E4F DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP8 PUSH4 0xFFFFFFFF AND GT DUP1 ISZERO PUSH2 0xEA9 JUMPI POP PUSH3 0xF4240 PUSH4 0xFFFFFFFF DUP9 AND GT ISZERO JUMPDEST ISZERO ISZERO PUSH2 0xEFF JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F574549474854000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP6 ISZERO ISZERO PUSH2 0xF0F JUMPI PUSH1 0x0 SWAP5 POP PUSH2 0x518 JUMP JUMPDEST PUSH4 0xFFFFFFFF DUP8 AND PUSH3 0xF4240 EQ ISZERO PUSH2 0xF31 JUMPI DUP8 PUSH2 0x4BF DUP11 DUP9 PUSH4 0xFFFFFFFF PUSH2 0xF41 AND JUMP JUMPDEST PUSH2 0x4E0 DUP7 DUP10 PUSH4 0xFFFFFFFF PUSH2 0xFC5 AND JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 ISZERO ISZERO PUSH2 0xF54 JUMPI PUSH1 0x0 SWAP2 POP PUSH2 0xFBE JUMP JUMPDEST POP DUP3 DUP3 MUL DUP3 DUP5 DUP3 DUP2 ISZERO ISZERO PUSH2 0xF64 JUMPI INVALID JUMPDEST DIV EQ PUSH2 0xFBA JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP1 SWAP2 POP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 ADD DUP4 DUP2 LT ISZERO PUSH2 0xFBA JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP1 DUP1 DUP1 PUSH17 0x200000000000000000000000000000000 DUP11 LT PUSH2 0x1046 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP9 PUSH1 0x7F PUSH1 0x2 EXP DUP12 MUL DUP2 ISZERO ISZERO PUSH2 0x1057 JUMPI INVALID JUMPDEST DIV SWAP3 POP PUSH17 0x15BF0A8B1457695355FB8AC404E7A79E3 DUP4 LT ISZERO PUSH2 0x1083 JUMPI PUSH2 0x107C DUP4 PUSH2 0x2409 JUMP JUMPDEST SWAP4 POP PUSH2 0x108F JUMP JUMPDEST PUSH2 0x108C DUP4 PUSH2 0x2821 JUMP JUMPDEST SWAP4 POP JUMPDEST DUP7 PUSH4 0xFFFFFFFF AND DUP9 PUSH4 0xFFFFFFFF AND DUP6 MUL DUP2 ISZERO ISZERO PUSH2 0x10A8 JUMPI INVALID JUMPDEST DIV SWAP2 POP PUSH17 0x800000000000000000000000000000000 DUP3 LT ISZERO PUSH2 0x10D8 JUMPI PUSH2 0x10CD DUP3 PUSH2 0x28DB JUMP JUMPDEST PUSH1 0x7F SWAP6 POP SWAP6 POP PUSH2 0x10FF JUMP JUMPDEST PUSH2 0x10E1 DUP3 PUSH2 0x2CDB JUMP JUMPDEST SWAP1 POP PUSH2 0x10F9 PUSH1 0xFF PUSH1 0x7F DUP4 SWAP1 SUB AND PUSH1 0x2 EXP DUP4 DIV DUP3 PUSH2 0x2D68 JUMP JUMPDEST DUP2 SWAP6 POP SWAP6 POP JUMPDEST POP POP POP POP SWAP5 POP SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x111F DUP10 DUP10 PUSH2 0x318B JUMP JUMPDEST SWAP1 SWAP10 POP SWAP8 POP DUP10 PUSH2 0x1139 DUP13 PUSH1 0x7F PUSH1 0x2 EXP PUSH4 0xFFFFFFFF PUSH2 0xF41 AND JUMP JUMPDEST DUP2 ISZERO ISZERO PUSH2 0x1142 JUMPI INVALID JUMPDEST DIV SWAP4 POP PUSH17 0x15BF0A8B1457695355FB8AC404E7A79E3 DUP5 LT PUSH2 0x116B JUMPI PUSH2 0x1166 DUP5 PUSH2 0x2821 JUMP JUMPDEST PUSH2 0x1174 JUMP JUMPDEST PUSH2 0x1174 DUP5 PUSH2 0x2409 JUMP JUMPDEST SWAP3 POP DUP8 PUSH2 0x1187 DUP5 DUP12 PUSH4 0xFFFFFFFF PUSH2 0xF41 AND JUMP JUMPDEST DUP2 ISZERO ISZERO PUSH2 0x1190 JUMPI INVALID JUMPDEST DIV SWAP2 POP DUP7 PUSH2 0x11A6 JUMPI PUSH2 0x11A1 DUP3 PUSH2 0x3247 JUMP JUMPDEST PUSH2 0x11AF JUMP JUMPDEST PUSH2 0x11AF DUP3 PUSH2 0x32A4 JUMP JUMPDEST SWAP1 POP PUSH2 0x11DD PUSH2 0x11C4 DUP3 DUP12 PUSH4 0xFFFFFFFF PUSH2 0xF41 AND JUMP JUMPDEST PUSH2 0x11D8 DUP11 PUSH1 0x7F PUSH1 0x2 EXP PUSH4 0xFFFFFFFF PUSH2 0xF41 AND JUMP JUMPDEST PUSH2 0x11EF JUMP JUMPDEST SWAP6 POP SWAP6 POP POP POP POP POP SWAP6 POP SWAP6 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP1 DUP5 DUP7 GT PUSH2 0x120E JUMPI PUSH2 0x1205 DUP7 DUP7 PUSH2 0x3308 JUMP JUMPDEST SWAP4 POP SWAP4 POP PUSH2 0x1223 JUMP JUMPDEST PUSH2 0x1218 DUP6 DUP8 PUSH2 0x3308 JUMP JUMPDEST SWAP2 POP SWAP2 POP DUP1 DUP3 SWAP4 POP SWAP4 POP JUMPDEST POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH17 0x1C35FEDD14FFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x20 SSTORE PUSH17 0x1B0CE43B323FFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x21 SSTORE PUSH17 0x19F0028EC1FFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x22 SSTORE PUSH17 0x18DED91F0E7FFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x23 SSTORE PUSH17 0x17D8EC7F0417FFFFFFFFFFFFFFFFFFFFFF PUSH1 0x24 SSTORE PUSH17 0x16DDC6556CDBFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x25 SSTORE PUSH17 0x15ECF52776A1FFFFFFFFFFFFFFFFFFFFFF PUSH1 0x26 SSTORE PUSH17 0x15060C256CB2FFFFFFFFFFFFFFFFFFFFFF PUSH1 0x27 SSTORE PUSH17 0x1428A2F98D72FFFFFFFFFFFFFFFFFFFFFF PUSH1 0x28 SSTORE PUSH17 0x13545598E5C23FFFFFFFFFFFFFFFFFFFFF PUSH1 0x29 SSTORE PUSH17 0x1288C4161CE1DFFFFFFFFFFFFFFFFFFFFF PUSH1 0x2A SSTORE PUSH17 0x11C592761C666FFFFFFFFFFFFFFFFFFFFF PUSH1 0x2B SSTORE PUSH17 0x110A688680A757FFFFFFFFFFFFFFFFFFFF PUSH1 0x2C SSTORE PUSH17 0x1056F1B5BEDF77FFFFFFFFFFFFFFFFFFFF PUSH1 0x2D SSTORE PUSH17 0xFAADCECEEFF8BFFFFFFFFFFFFFFFFFFFF PUSH1 0x2E SSTORE PUSH17 0xF05DC6B27EDADFFFFFFFFFFFFFFFFFFFF PUSH1 0x2F SSTORE PUSH17 0xE67A5A25DA4107FFFFFFFFFFFFFFFFFFF PUSH1 0x30 SSTORE PUSH17 0xDCFF115B14EEDFFFFFFFFFFFFFFFFFFFF PUSH1 0x31 SSTORE PUSH17 0xD3E7A392431239FFFFFFFFFFFFFFFFFFF PUSH1 0x32 SSTORE PUSH17 0xCB2FF529EB71E4FFFFFFFFFFFFFFFFFFF PUSH1 0x33 SSTORE PUSH17 0xC2D415C3DB974AFFFFFFFFFFFFFFFFFFF PUSH1 0x34 SSTORE PUSH17 0xBAD03E7D883F69BFFFFFFFFFFFFFFFFFF PUSH1 0x35 SSTORE PUSH17 0xB320D03B2C343D5FFFFFFFFFFFFFFFFFF PUSH1 0x36 SSTORE PUSH17 0xABC25204E02828DFFFFFFFFFFFFFFFFFF PUSH1 0x37 SSTORE PUSH17 0xA4B16F74EE4BB207FFFFFFFFFFFFFFFFF PUSH1 0x38 SSTORE PUSH17 0x9DEAF736AC1F569FFFFFFFFFFFFFFFFFF PUSH1 0x39 SSTORE PUSH17 0x976BD9952C7AA957FFFFFFFFFFFFFFFFF PUSH1 0x3A SSTORE PUSH17 0x9131271922EAA606FFFFFFFFFFFFFFFFF PUSH1 0x3B SSTORE PUSH17 0x8B380F3558668C46FFFFFFFFFFFFFFFFF PUSH1 0x3C SSTORE PUSH17 0x857DDF0117EFA215BFFFFFFFFFFFFFFFF PUSH1 0x3D SSTORE PUSH17 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x3E SSTORE PUSH17 0x7ABBF6F6ABB9D087FFFFFFFFFFFFFFFFF PUSH1 0x3F SSTORE PUSH17 0x75AF62CBAC95F7DFA7FFFFFFFFFFFFFFF PUSH1 0x40 SSTORE PUSH17 0x70D7FB7452E187AC13FFFFFFFFFFFFFFF PUSH1 0x41 SSTORE PUSH17 0x6C3390ECC8AF379295FFFFFFFFFFFFFFF PUSH1 0x42 SSTORE PUSH17 0x67C00A3B07FFC01FD6FFFFFFFFFFFFFFF PUSH1 0x43 SSTORE PUSH17 0x637B647C39CBB9D3D27FFFFFFFFFFFFFF PUSH1 0x44 SSTORE PUSH17 0x5F63B1FC104DBD39587FFFFFFFFFFFFFF PUSH1 0x45 SSTORE PUSH17 0x5B771955B36E12F7235FFFFFFFFFFFFFF PUSH1 0x46 SSTORE PUSH17 0x57B3D49DDA84556D6F6FFFFFFFFFFFFFF PUSH1 0x47 SSTORE PUSH17 0x54183095B2C8ECECF30FFFFFFFFFFFFFF PUSH1 0x48 SSTORE PUSH17 0x50A28BE635CA2B888F77FFFFFFFFFFFFF PUSH1 0x49 SSTORE PUSH17 0x4D5156639708C9DB33C3FFFFFFFFFFFFF PUSH1 0x4A SSTORE PUSH17 0x4A23105873875BD52DFDFFFFFFFFFFFFF PUSH1 0x4B SSTORE PUSH17 0x471649D87199AA990756FFFFFFFFFFFFF PUSH1 0x4C SSTORE PUSH17 0x4429A21A029D4C1457CFBFFFFFFFFFFFF PUSH1 0x4D SSTORE PUSH17 0x415BC6D6FB7DD71AF2CB3FFFFFFFFFFFF PUSH1 0x4E SSTORE PUSH17 0x3EAB73B3BBFE282243CE1FFFFFFFFFFFF PUSH1 0x4F SSTORE PUSH17 0x3C1771AC9FB6B4C18E229FFFFFFFFFFFF PUSH1 0x50 SSTORE PUSH17 0x399E96897690418F785257FFFFFFFFFFF PUSH1 0x51 SSTORE PUSH17 0x373FC456C53BB779BF0EA9FFFFFFFFFFF PUSH1 0x52 SSTORE PUSH17 0x34F9E8E490C48E67E6AB8BFFFFFFFFFFF PUSH1 0x53 SSTORE PUSH17 0x32CBFD4A7ADC790560B3337FFFFFFFFFF PUSH1 0x54 SSTORE PUSH17 0x30B50570F6E5D2ACCA94613FFFFFFFFFF PUSH1 0x55 SSTORE PUSH17 0x2EB40F9F620FDA6B56C2861FFFFFFFFFF PUSH1 0x56 SSTORE PUSH17 0x2CC8340ECB0D0F520A6AF58FFFFFFFFFF PUSH1 0x57 SSTORE PUSH17 0x2AF09481380A0A35CF1BA02FFFFFFFFFF PUSH1 0x58 SSTORE PUSH17 0x292C5BDD3B92EC810287B1B3FFFFFFFFF PUSH1 0x59 SSTORE PUSH17 0x277ABDCDAB07D5A77AC6D6B9FFFFFFFFF PUSH1 0x5A SSTORE PUSH17 0x25DAF6654B1EAA55FD64DF5EFFFFFFFFF PUSH1 0x5B SSTORE PUSH17 0x244C49C648BAA98192DCE88B7FFFFFFFF PUSH1 0x5C SSTORE PUSH17 0x22CE03CD5619A311B2471268BFFFFFFFF PUSH1 0x5D SSTORE PUSH17 0x215F77C045FBE885654A44A0FFFFFFFFF PUSH1 0x5E SSTORE PUSH17 0x1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x5F SSTORE PUSH17 0x1EAEFDBDAAEE7421FC4D3EDE5FFFFFFFF PUSH1 0x60 SSTORE PUSH17 0x1D6BD8B2EB257DF7E8CA57B09BFFFFFFF PUSH1 0x61 SSTORE PUSH17 0x1C35FEDD14B861EB0443F7F133FFFFFFF PUSH1 0x62 SSTORE PUSH17 0x1B0CE43B322BCDE4A56E8ADA5AFFFFFFF PUSH1 0x63 SSTORE PUSH17 0x19F0028EC1FFF007F5A195A39DFFFFFFF PUSH1 0x64 SSTORE PUSH17 0x18DED91F0E72EE74F49B15BA527FFFFFF PUSH1 0x65 SSTORE PUSH17 0x17D8EC7F04136F4E5615FD41A63FFFFFF PUSH1 0x66 SSTORE PUSH17 0x16DDC6556CDB84BDC8D12D22E6FFFFFFF PUSH1 0x67 SSTORE PUSH17 0x15ECF52776A1155B5BD8395814F7FFFFF PUSH1 0x68 SSTORE PUSH17 0x15060C256CB23B3B3CC3754CF40FFFFFF PUSH1 0x69 SSTORE PUSH17 0x1428A2F98D728AE223DDAB715BE3FFFFF PUSH1 0x6A SSTORE PUSH17 0x13545598E5C23276CCF0EDE68034FFFFF PUSH1 0x6B SSTORE PUSH17 0x1288C4161CE1D6F54B7F61081194FFFFF PUSH1 0x6C SSTORE PUSH17 0x11C592761C666AA641D5A01A40F17FFFF PUSH1 0x6D SSTORE PUSH17 0x110A688680A7530515F3E6E6CFDCDFFFF PUSH1 0x6E SSTORE PUSH17 0x1056F1B5BEDF75C6BCB2CE8AED428FFFF PUSH1 0x6F SSTORE PUSH16 0xFAADCECEEFF8A0890F3875F008277FFF PUSH1 0x70 SSTORE PUSH16 0xF05DC6B27EDAD306388A600F6BA0BFFF PUSH1 0x71 SSTORE PUSH16 0xE67A5A25DA41063DE1495D5B18CDBFFF PUSH1 0x72 SSTORE PUSH16 0xDCFF115B14EEDDE6FC3AA5353F2E4FFF PUSH1 0x73 SSTORE PUSH16 0xD3E7A3924312399F9AAE2E0F868F8FFF PUSH1 0x74 SSTORE PUSH16 0xCB2FF529EB71E41582CCCD5A1EE26FFF PUSH1 0x75 SSTORE PUSH16 0xC2D415C3DB974AB32A51840C0B67EDFF PUSH1 0x76 SSTORE PUSH16 0xBAD03E7D883F69AD5B0A186184E06BFF PUSH1 0x77 SSTORE PUSH16 0xB320D03B2C343D4829ABD6075F0CC5FF PUSH1 0x78 SSTORE PUSH16 0xABC25204E02828D73C6E80BCDB1A95BF PUSH1 0x79 SSTORE PUSH16 0xA4B16F74EE4BB2040A1EC6C15FBBF2DF PUSH1 0x7A SSTORE PUSH16 0x9DEAF736AC1F569DEB1B5AE3F36C130F PUSH1 0x7B SSTORE PUSH16 0x976BD9952C7AA957F5937D790EF65037 PUSH1 0x7C SSTORE PUSH16 0x9131271922EAA6064B73A22D0BD4F2BF PUSH1 0x7D SSTORE PUSH16 0x8B380F3558668C46C91C49A2F8E967B9 PUSH1 0x7E SSTORE PUSH16 0x857DDF0117EFA215952912839F6473E6 PUSH1 0x0 PUSH1 0x7F JUMPDEST ADD SSTORE JUMP JUMPDEST PUSH16 0x60E393C68D20B1BD09DEAABC0373B9C5 PUSH1 0x80 SWAP1 DUP2 SSTORE PUSH16 0x5F8F46E4854120989ED94719FB4C2011 PUSH1 0x81 SSTORE PUSH16 0x5E479EBB9129FB1B7E72A648F992B606 PUSH1 0x82 SSTORE PUSH16 0x5D0BD23FE42DFEDDE2E9586BE12B85FE PUSH1 0x83 SSTORE PUSH16 0x5BDB29DDEE979308DDFCA81AEEB8095A PUSH1 0x84 SSTORE PUSH16 0x5AB4FD8A260D2C7E2C0D2AFCF0009DAD PUSH1 0x85 SSTORE PUSH16 0x5998B31359A55D48724C65CF09001221 PUSH1 0x86 SSTORE PUSH16 0x5885BCAD2B322DFC43E8860F9C018CF5 PUSH1 0x87 SSTORE PUSH16 0x577B97AA1FE222BB452FDF111B1F0BE2 PUSH1 0x88 SSTORE PUSH16 0x5679CB5E3575632E5BAA27E2B949F704 PUSH1 0x89 SSTORE PUSH16 0x557FE8241B3A31C83C732F1CDFF4A1C5 PUSH1 0x8A SSTORE PUSH16 0x548D868026504875D6E59BBE95FC2A6B PUSH1 0x8B SSTORE PUSH16 0x53A2465CE347CF34D05A867C17DD3088 PUSH1 0x8C SSTORE PUSH16 0x52BDCE5DCD4FAED59C7F5511CF8F8ACC PUSH1 0x8D SSTORE PUSH16 0x51DFCB453C07F8DA817606E7885F7C3E PUSH1 0x8E SSTORE PUSH16 0x5107EF6B0A5A2BE8F8FF15590DAA3CCE PUSH1 0x8F SSTORE PUSH16 0x5035F241D6EAE0CD7BACBA119993DE7B PUSH1 0x90 SSTORE PUSH16 0x4F698FE90D5B53D532171E1210164C66 PUSH1 0x91 SSTORE PUSH16 0x4EA288CA297A0E6A09A0EEE240E16C85 PUSH1 0x92 SSTORE PUSH16 0x4DE0A13FDCF5D4213FC398BA6E3BECDE PUSH1 0x93 SSTORE PUSH16 0x4D23A145EEF91FEC06B06140804C4808 PUSH1 0x94 SSTORE PUSH16 0x4C6B5430D4C1EE5526473DB4AE0F11DE PUSH1 0x95 SSTORE PUSH16 0x4BB7886C240562EBA11F4963A53B4240 PUSH1 0x96 SSTORE PUSH16 0x4B080F3F1CB491D2D521E0EA4583521E PUSH1 0x97 SSTORE PUSH16 0x4A5CBC96A05589CB4D86BE1DB3168364 PUSH1 0x98 SSTORE PUSH16 0x49B566D40243517658D78C33162D6ECE PUSH1 0x99 SSTORE PUSH16 0x4911E6A02E5507A30F947383FD9A3276 PUSH1 0x9A SSTORE PUSH16 0x487216C2B31BE4ADC41DB8A8D5CC0C88 PUSH1 0x9B SSTORE PUSH16 0x47D5D3FC4A7A1B188CD3D788B5C5E9FC PUSH1 0x9C SSTORE PUSH16 0x473CFCE4871A2C40BC4F9E1C32B955D0 PUSH1 0x9D SSTORE PUSH16 0x46A771CA578AB878485810E285E31C67 PUSH1 0x9E SSTORE PUSH16 0x4615149718AED4C258C373DC676AA72D PUSH1 0x9F SSTORE PUSH16 0x4585C8B3F8FE489C6E1833CA47871384 PUSH1 0xA0 SSTORE PUSH16 0x44F972F174E41E5EFB7E9D63C29CE735 PUSH1 0xA1 SSTORE PUSH16 0x446FF970BA86D8B00BEB05ECEBF3C4DC PUSH1 0xA2 SSTORE PUSH16 0x43E9438EC88971812D6F198B5CCAAD96 PUSH1 0xA3 SSTORE PUSH16 0x436539D11FF7BEA657AEDDB394E809EF PUSH1 0xA4 SSTORE PUSH16 0x42E3C5D3E5A913401D86F66DB5D81C2C PUSH1 0xA5 SSTORE PUSH16 0x4264D2395303070EA726CBE98DF62174 PUSH1 0xA6 SSTORE PUSH16 0x41E84A9A593BB7194C3A6349ECAE4EEA PUSH1 0xA7 SSTORE PUSH16 0x416E1B785D13EBA07A08F3F18876A5AB PUSH1 0xA8 SSTORE PUSH16 0x40F6322FF389D423BA9DD7E7E7B7E809 PUSH1 0xA9 SSTORE PUSH16 0x40807CEC8A466880ECF4184545D240A4 PUSH1 0xAA SSTORE PUSH16 0x400CEA9CE88A8D3AE668E8EA0D9BF07F PUSH1 0xAB SSTORE PUSH16 0x3F9B6AE8772D4C55091E0ED7DFEA0AC1 PUSH1 0xAC SSTORE PUSH16 0x3F2BEE253FD84594F54BCAAFAC383A13 PUSH1 0xAD SSTORE PUSH16 0x3EBE654E95208BB9210C575C081C5958 PUSH1 0xAE SSTORE PUSH16 0x3E52C1FC5665635B78CE1F05AD53C086 PUSH1 0xAF SSTORE PUSH16 0x3DE8F65AC388101DDF718A6F5C1EFF65 PUSH1 0xB0 SSTORE PUSH16 0x3D80F522D59BD0B328CA012DF4CD2D49 PUSH1 0xB1 SSTORE PUSH16 0x3D1AB193129EA72B23648A161163A85A PUSH1 0xB2 SSTORE PUSH16 0x3CB61F68D32576C135B95CFB53F76D75 PUSH1 0xB3 SSTORE PUSH16 0x3C5332D9F1AAE851A3619E77E4CC8473 PUSH1 0xB4 SSTORE PUSH16 0x3BF1E08EDBE2AA109E1525F65759EF73 PUSH1 0xB5 SSTORE PUSH16 0x3B921D9CFF13FA2C197746A3DFC4918F PUSH1 0xB6 SSTORE PUSH16 0x3B33DF818910BFC1A5AEFB8F63AE2AC4 PUSH1 0xB7 SSTORE PUSH16 0x3AD71C1C77E34FA32A9F184967ECCBF6 PUSH1 0xB8 SSTORE PUSH16 0x3A7BC9ABF2C5BB53E2F7384A8A16521A PUSH1 0xB9 SSTORE PUSH16 0x3A21DEC7E76369783A68A0C6385A1C57 PUSH1 0xBA SSTORE PUSH16 0x39C9525DE6C9CDF7C1C157CA4A7A6EE3 PUSH1 0xBB SSTORE PUSH16 0x39721BAD3DC85D1240FF0190E0ADAAC3 PUSH1 0xBC SSTORE PUSH16 0x391C324344D3248F0469EB28DD3D77E0 PUSH1 0xBD SSTORE PUSH16 0x38C78DF7E3C796279FB4FF84394AB3DA PUSH1 0xBE SSTORE PUSH16 0x387426EA4638AE9AAE08049D3554C20A PUSH1 0xBF SSTORE PUSH16 0x3821F57DBD2763256C1A99BBD2051378 PUSH1 0xC0 SSTORE PUSH16 0x37D0F256CB46A8C92FF62FBBEF289698 PUSH1 0xC1 SSTORE PUSH16 0x37811658591FFC7ABDD1FEAF3CEF9B73 PUSH1 0xC2 SSTORE PUSH16 0x37325AA10E9E82F7DF0F380F7997154B PUSH1 0xC3 SSTORE PUSH16 0x36E4B888CFB408D873B9A80D439311C6 PUSH1 0xC4 SSTORE PUSH16 0x3698299E59F4BB9DE645FC9B08C64CCA PUSH1 0xC5 SSTORE PUSH16 0x364CA7A5012CB603023B57DD3EBFD50D PUSH1 0xC6 SSTORE PUSH16 0x36022C928915B778AB1B06AAEE7E61D4 PUSH1 0xC7 SSTORE PUSH16 0x35B8B28D1A73DC27500FFE35559CC028 PUSH1 0xC8 SSTORE PUSH16 0x357033E951FE250EC5EB4E60955132D7 PUSH1 0xC9 SSTORE PUSH16 0x3528AB2867934E3A21B5412E4C4F8881 PUSH1 0xCA SSTORE PUSH16 0x34E212F66C55057F9676C80094A61D59 PUSH1 0xCB SSTORE PUSH16 0x349C66289E5B3C4B540C24F42FA4B9BB PUSH1 0xCC SSTORE PUSH16 0x34579FBBD0C733A9C8D6AF6B0F7D00F7 PUSH1 0xCD SSTORE PUSH16 0x3413BAD2E712288B924B5882B5B369BF PUSH1 0xCE SSTORE PUSH16 0x33D0B2B56286510EF730E213F71F12E9 PUSH1 0xCF SSTORE PUSH16 0x338E82CE00E2496262C64457535BA1A1 PUSH1 0xD0 SSTORE PUSH16 0x334D26A96B373BB7C2F8EA1827F27A92 PUSH1 0xD1 SSTORE PUSH16 0x330C99F4F4211469E00B3E18C31475EA PUSH1 0xD2 SSTORE PUSH16 0x32CCD87D6486094999C7D5E6F33237D8 PUSH1 0xD3 SSTORE PUSH16 0x328DDE2DD617B6665A2E8556F250C1AF PUSH1 0xD4 SSTORE PUSH16 0x324FA70E9ADC270F8262755AF5A99AF9 PUSH1 0xD5 SSTORE PUSH16 0x32122F443110611CA51040F41FA6E1E3 PUSH1 0xD6 SSTORE PUSH16 0x31D5730E42C0831482F0F1485C4263D8 PUSH1 0xD7 SSTORE PUSH16 0x31996EC6B07B4A83421B5EBC4AB4E1F1 PUSH1 0xD8 SSTORE PUSH16 0x315E1EE0A68FF46BB43EC2B85032E876 PUSH1 0xD9 SSTORE PUSH16 0x31237FE7BC4DEACF6775B9EFA1A145F8 PUSH1 0xDA SSTORE PUSH16 0x30E98E7F1CC5A356E44627A6972EA2FF PUSH1 0xDB SSTORE PUSH16 0x30B04760B8917EC74205A3002650EC05 PUSH1 0xDC SSTORE PUSH16 0x3077A75C803468E9132CE0CF3224241D PUSH1 0xDD SSTORE PUSH16 0x303FAB57A6A275C36F19CDA9BACE667A PUSH1 0xDE SSTORE PUSH16 0x3008504BEB8DCBD2CF3BC1F6D5A064F0 PUSH1 0xDF SSTORE PUSH16 0x2FD19346ED17DAC61219CE0C2C5AC4B0 PUSH1 0xE0 SSTORE PUSH16 0x2F9B7169808C324B5852FD3D54BA9714 PUSH1 0xE1 SSTORE PUSH16 0x2F65E7E711CF4B064EEA9C08CBDAD574 PUSH1 0xE2 SSTORE PUSH16 0x2F30F405093042DDFF8A251B6BF6D103 PUSH1 0xE3 SSTORE PUSH16 0x2EFC931A3750F2E8BFE323EDFE037574 PUSH1 0xE4 SSTORE PUSH16 0x2EC8C28E46DBE56D98685278339400CB PUSH1 0xE5 SSTORE PUSH16 0x2E957FD933C3926D8A599B602379B851 PUSH1 0xE6 SSTORE PUSH16 0x2E62C882C7C9ED4473412702F08BA0E5 PUSH1 0xE7 SSTORE PUSH16 0x2E309A221C12BA361E3ED695167FEEE2 PUSH1 0xE8 SSTORE PUSH16 0x2DFEF25D1F865AE18DD07CFEA4BCEA10 PUSH1 0xE9 SSTORE PUSH16 0x2DCDCEE821CDC80DECC02C44344AEB31 PUSH1 0xEA SSTORE PUSH16 0x2D9D2D8562B34944D0B201BB87260C83 PUSH1 0xEB SSTORE PUSH16 0x2D6D0C04A5B62A2C42636308669B729A PUSH1 0xEC SSTORE PUSH16 0x2D3D6842C9A235517FC5A0332691528F PUSH1 0xED SSTORE PUSH16 0x2D0E402963FE1EA2834ABC408C437C10 PUSH1 0xEE SSTORE PUSH16 0x2CDF91AE602647908AFF975E4D6A2A8C PUSH1 0xEF SSTORE PUSH16 0x2CB15AD3A1EB65F6D74A75DA09A1B6C5 PUSH1 0xF0 SSTORE PUSH16 0x2C8399A6AB8E9774D6FCFF373D210727 PUSH1 0xF1 SSTORE PUSH16 0x2C564C4046F64EDBA6883CA06BBC4535 PUSH1 0xF2 SSTORE PUSH16 0x2C2970C431F952641E05CB493E23EED3 PUSH1 0xF3 SSTORE PUSH16 0x2BFD0560CD9EB14563BC7C0732856C18 PUSH1 0xF4 SSTORE PUSH16 0x2BD1084ED0332F7FF4150F9D0EF41A2C PUSH1 0xF5 SSTORE PUSH16 0x2BA577D0FA1628B76D040B12A82492FB PUSH1 0xF6 SSTORE PUSH16 0x2B7A5233CD21581E855E89DC2F1E8A92 PUSH1 0xF7 SSTORE PUSH16 0x2B4F95CD46904D05D72BDCDE337D9CC7 PUSH1 0xF8 SSTORE PUSH16 0x2B2540FC9B4D9ABBA3FACA6691914675 PUSH1 0xF9 SSTORE PUSH16 0x2AFB5229F68D0830D8BE8ADB0A0DB70F PUSH1 0xFA SSTORE PUSH16 0x2AD1C7C63A9B294C5BC73A3BA3AB7A2B PUSH1 0xFB SSTORE PUSH16 0x2AA8A04AC3CBE1EE1C9C86361465DBB8 PUSH1 0xFC SSTORE PUSH16 0x2A7FDA392D725A44A2C8AEB9AB35430D PUSH1 0xFD SSTORE PUSH16 0x2A57741B18CDE618717792B4FAA216DB PUSH1 0xFE SSTORE PUSH16 0x2A2F6C81F5D84DD950A35626D6D5503A SWAP1 PUSH1 0x7F PUSH2 0x19FE JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP1 DUP1 PUSH16 0xD3094C70F034DE4B96FF7D5B6F99FCD8 DUP7 LT PUSH2 0x2458 JUMPI PUSH16 0x40000000000000000000000000000000 SWAP4 SWAP1 SWAP4 ADD SWAP3 PUSH16 0xD3094C70F034DE4B96FF7D5B6F99FCD8 PUSH1 0x7F PUSH1 0x2 EXP DUP8 MUL DIV SWAP6 POP JUMPDEST PUSH16 0xA45AF1E1F40C333B3DE1DB4DD55F29A7 DUP7 LT PUSH2 0x24A1 JUMPI PUSH16 0x20000000000000000000000000000000 SWAP4 SWAP1 SWAP4 ADD SWAP3 PUSH16 0xA45AF1E1F40C333B3DE1DB4DD55F29A7 PUSH1 0x7F PUSH1 0x2 EXP DUP8 MUL DIV SWAP6 POP JUMPDEST PUSH16 0x910B022DB7AE67CE76B441C27035C6A1 DUP7 LT PUSH2 0x24EA JUMPI PUSH16 0x10000000000000000000000000000000 SWAP4 SWAP1 SWAP4 ADD SWAP3 PUSH16 0x910B022DB7AE67CE76B441C27035C6A1 PUSH1 0x7F PUSH1 0x2 EXP DUP8 MUL DIV SWAP6 POP JUMPDEST PUSH16 0x88415ABBE9A76BEAD8D00CF112E4D4A8 DUP7 LT PUSH2 0x2533 JUMPI PUSH16 0x8000000000000000000000000000000 SWAP4 SWAP1 SWAP4 ADD SWAP3 PUSH16 0x88415ABBE9A76BEAD8D00CF112E4D4A8 PUSH1 0x7F PUSH1 0x2 EXP DUP8 MUL DIV SWAP6 POP JUMPDEST PUSH16 0x84102B00893F64C705E841D5D4064BD3 DUP7 LT PUSH2 0x257C JUMPI PUSH16 0x4000000000000000000000000000000 SWAP4 SWAP1 SWAP4 ADD SWAP3 PUSH16 0x84102B00893F64C705E841D5D4064BD3 PUSH1 0x7F PUSH1 0x2 EXP DUP8 MUL DIV SWAP6 POP JUMPDEST PUSH16 0x8204055AAEF1C8BD5C3259F4822735A2 DUP7 LT PUSH2 0x25C5 JUMPI PUSH16 0x2000000000000000000000000000000 SWAP4 SWAP1 SWAP4 ADD SWAP3 PUSH16 0x8204055AAEF1C8BD5C3259F4822735A2 PUSH1 0x7F PUSH1 0x2 EXP DUP8 MUL DIV SWAP6 POP JUMPDEST PUSH16 0x810100AB00222D861931C15E39B44E99 DUP7 LT PUSH2 0x260E JUMPI PUSH16 0x1000000000000000000000000000000 SWAP4 SWAP1 SWAP4 ADD SWAP3 PUSH16 0x810100AB00222D861931C15E39B44E99 PUSH1 0x7F PUSH1 0x2 EXP DUP8 MUL DIV SWAP6 POP JUMPDEST PUSH16 0x808040155AABBBE9451521693554F733 DUP7 LT PUSH2 0x2656 JUMPI PUSH15 0x800000000000000000000000000000 SWAP4 SWAP1 SWAP4 ADD SWAP3 PUSH16 0x808040155AABBBE9451521693554F733 PUSH1 0x7F PUSH1 0x2 EXP DUP8 MUL DIV SWAP6 POP JUMPDEST PUSH16 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT DUP7 ADD SWAP3 POP DUP3 SWAP2 POP PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP1 MUL DIV SWAP1 POP PUSH1 0x80 PUSH1 0x2 EXP DUP4 DUP2 SUB DUP4 MUL DIV SWAP4 SWAP1 SWAP4 ADD SWAP3 PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DIV SWAP2 POP PUSH17 0x200000000000000000000000000000000 PUSH16 0xAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA DUP5 SWAP1 SUB DUP4 MUL DIV SWAP4 SWAP1 SWAP4 ADD SWAP3 PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DIV SWAP2 POP PUSH17 0x300000000000000000000000000000000 PUSH16 0x99999999999999999999999999999999 DUP5 SWAP1 SUB DUP4 MUL DIV SWAP4 SWAP1 SWAP4 ADD SWAP3 PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DIV SWAP2 POP PUSH17 0x400000000000000000000000000000000 PUSH16 0x92492492492492492492492492492492 DUP5 SWAP1 SUB DUP4 MUL DIV SWAP4 SWAP1 SWAP4 ADD SWAP3 PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DIV SWAP2 POP PUSH17 0x500000000000000000000000000000000 PUSH16 0x8E38E38E38E38E38E38E38E38E38E38E DUP5 SWAP1 SUB DUP4 MUL DIV SWAP4 SWAP1 SWAP4 ADD SWAP3 PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DIV SWAP2 POP PUSH17 0x600000000000000000000000000000000 PUSH16 0x8BA2E8BA2E8BA2E8BA2E8BA2E8BA2E8B DUP5 SWAP1 SUB DUP4 MUL DIV SWAP4 SWAP1 SWAP4 ADD SWAP3 PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DIV SWAP2 POP PUSH17 0x700000000000000000000000000000000 PUSH16 0x89D89D89D89D89D89D89D89D89D89D89 DUP5 SWAP1 SUB DUP4 MUL DIV SWAP4 SWAP1 SWAP4 ADD SWAP3 PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DIV SWAP2 POP PUSH17 0x800000000000000000000000000000000 PUSH16 0x88888888888888888888888888888888 DUP5 SWAP1 SUB DUP4 MUL DIV SWAP4 SWAP1 SWAP4 ADD SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP1 PUSH1 0x80 PUSH1 0x2 EXP DUP6 LT PUSH2 0x2859 JUMPI PUSH2 0x2841 PUSH1 0x7F PUSH1 0x2 EXP DUP7 JUMPDEST DIV PUSH2 0x33A4 JUMP JUMPDEST PUSH1 0xFF DUP2 AND PUSH1 0x2 DUP2 SWAP1 EXP SWAP1 SWAP7 DIV SWAP6 PUSH1 0x7F PUSH1 0x2 EXP MUL SWAP4 POP SWAP2 POP JUMPDEST PUSH1 0x7F PUSH1 0x2 EXP DUP6 GT ISZERO PUSH2 0x28AB JUMPI POP PUSH1 0x7F JUMPDEST PUSH1 0x0 DUP2 PUSH1 0xFF AND GT ISZERO PUSH2 0x28AB JUMPI PUSH1 0x7F PUSH1 0x2 EXP DUP6 DUP1 MUL DIV SWAP5 POP PUSH1 0x80 PUSH1 0x2 EXP DUP6 LT PUSH2 0x28A2 JUMPI PUSH1 0x2 SWAP5 DUP6 SWAP1 DIV SWAP5 PUSH1 0xFF PUSH1 0x0 NOT DUP4 ADD AND SWAP1 EXP SWAP3 SWAP1 SWAP3 ADD SWAP2 JUMPDEST PUSH1 0x0 NOT ADD PUSH2 0x2869 JUMP JUMPDEST PUSH16 0x5B9DE1D10BF4103D647B0955897BA80 PUSH16 0x3F80FE03F80FE03F80FE03F80FE03F8 DUP5 MUL DIV SWAP4 POP JUMPDEST POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0x168244FDAC78000 PUSH1 0x7F PUSH1 0x2 EXP PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP5 AND DUP1 DUP1 MUL DUP3 SWAP1 DIV DUP1 DUP3 MUL DUP4 SWAP1 DIV DUP1 DUP4 MUL DUP5 SWAP1 DIV SWAP5 DUP6 MUL PUSH8 0x10E1B3BE415A0000 SWAP1 SWAP3 MUL PUSH8 0x5A0913F6B1E0000 SWAP2 SWAP1 SWAP2 MUL ADD ADD SWAP3 SWAP1 SWAP2 DUP2 DUP4 MUL DIV SWAP1 POP DUP1 PUSH7 0x4807432BC18000 MUL DUP4 ADD SWAP3 POP PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DUP2 ISZERO ISZERO PUSH2 0x2956 JUMPI INVALID JUMPDEST DIV SWAP1 POP DUP1 PUSH7 0xC0135DCA04000 MUL DUP4 ADD SWAP3 POP PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DUP2 ISZERO ISZERO PUSH2 0x2978 JUMPI INVALID JUMPDEST DIV SWAP1 POP DUP1 PUSH7 0x1B707B1CDC000 MUL DUP4 ADD SWAP3 POP PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DUP2 ISZERO ISZERO PUSH2 0x299A JUMPI INVALID JUMPDEST DIV SWAP1 POP DUP1 PUSH6 0x36E0F639B800 MUL DUP4 ADD SWAP3 POP PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DUP2 ISZERO ISZERO PUSH2 0x29BB JUMPI INVALID JUMPDEST DIV SWAP1 POP DUP1 PUSH6 0x618FEE9F800 MUL DUP4 ADD SWAP3 POP PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DUP2 ISZERO ISZERO PUSH2 0x29DC JUMPI INVALID JUMPDEST DIV SWAP1 POP DUP1 PUSH5 0x9C197DCC00 MUL DUP4 ADD SWAP3 POP PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DUP2 ISZERO ISZERO PUSH2 0x29FC JUMPI INVALID JUMPDEST DIV SWAP1 POP DUP1 PUSH5 0xE30DCE400 MUL DUP4 ADD SWAP3 POP PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DUP2 ISZERO ISZERO PUSH2 0x2A1C JUMPI INVALID JUMPDEST DIV SWAP1 POP DUP1 PUSH5 0x12EBD1300 MUL DUP4 ADD SWAP3 POP PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DUP2 ISZERO ISZERO PUSH2 0x2A3C JUMPI INVALID JUMPDEST DIV SWAP1 POP DUP1 PUSH4 0x17499F00 MUL DUP4 ADD SWAP3 POP PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DUP2 ISZERO ISZERO PUSH2 0x2A5B JUMPI INVALID JUMPDEST DIV SWAP1 POP DUP1 PUSH4 0x1A9D480 MUL DUP4 ADD SWAP3 POP PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DUP2 ISZERO ISZERO PUSH2 0x2A7A JUMPI INVALID JUMPDEST DIV SWAP1 POP DUP1 PUSH3 0x1C6380 MUL DUP4 ADD SWAP3 POP PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DUP2 ISZERO ISZERO PUSH2 0x2A98 JUMPI INVALID JUMPDEST DIV SWAP1 POP DUP1 PUSH3 0x1C638 MUL DUP4 ADD SWAP3 POP PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DUP2 ISZERO ISZERO PUSH2 0x2AB6 JUMPI INVALID JUMPDEST DIV SWAP1 POP DUP1 PUSH2 0x1AB8 MUL DUP4 ADD SWAP3 POP PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DUP2 ISZERO ISZERO PUSH2 0x2AD3 JUMPI INVALID JUMPDEST DIV SWAP1 POP DUP1 PUSH2 0x17C MUL DUP4 ADD SWAP3 POP PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DUP2 ISZERO ISZERO PUSH2 0x2AF0 JUMPI INVALID JUMPDEST DIV SWAP1 POP DUP1 PUSH1 0x14 MUL DUP4 ADD SWAP3 POP PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DUP2 ISZERO ISZERO PUSH2 0x2B0C JUMPI INVALID JUMPDEST PUSH8 0x21C3677C82B40000 SWAP2 SWAP1 DIV SWAP4 DUP5 ADD DIV DUP3 ADD PUSH1 0x7F PUSH1 0x2 EXP ADD SWAP3 SWAP1 POP PUSH16 0x10000000000000000000000000000000 DUP6 AND ISZERO PUSH2 0x2B69 JUMPI PUSH17 0x18EBEF9EAC820AE8682B9793AC6D1E776 PUSH17 0x1C3D6A24ED82218787D624D3E5EBA95F9 DUP5 MUL DIV SWAP3 POP JUMPDEST PUSH16 0x20000000000000000000000000000000 DUP6 AND ISZERO PUSH2 0x2BAB JUMPI PUSH17 0x1368B2FC6F9609FE7ACEB46AA619BAED4 PUSH17 0x18EBEF9EAC820AE8682B9793AC6D1E778 DUP5 MUL DIV SWAP3 POP JUMPDEST PUSH16 0x40000000000000000000000000000000 DUP6 AND ISZERO PUSH2 0x2BEC JUMPI PUSH16 0xBC5AB1B16779BE3575BD8F0520A9F21F PUSH17 0x1368B2FC6F9609FE7ACEB46AA619BAED5 DUP5 MUL DIV SWAP3 POP JUMPDEST PUSH1 0x7F PUSH1 0x2 EXP DUP6 AND ISZERO PUSH2 0x2C20 JUMPI PUSH16 0x454AAA8EFE072E7F6DDBAB84B40A55C9 PUSH16 0xBC5AB1B16779BE3575BD8F0520A9F21E DUP5 MUL DIV SWAP3 POP JUMPDEST PUSH1 0x80 PUSH1 0x2 EXP DUP6 AND ISZERO PUSH2 0x2C54 JUMPI PUSH16 0x960AADC109E7A3BF4578099615711EA PUSH16 0x454AAA8EFE072E7F6DDBAB84B40A55C5 DUP5 MUL DIV SWAP3 POP JUMPDEST PUSH17 0x200000000000000000000000000000000 DUP6 AND ISZERO PUSH2 0x2C94 JUMPI PUSH15 0x2BF84208204F5977F9A8CF01FDCE3D PUSH16 0x960AADC109E7A3BF4578099615711D7 DUP5 MUL DIV SWAP3 POP JUMPDEST PUSH17 0x400000000000000000000000000000000 DUP6 AND ISZERO PUSH2 0x2CD2 JUMPI PUSH14 0x3C6AB775DD0B95B4CBEE7E65D11 PUSH15 0x2BF84208204F5977F9A8CF01FDC307 DUP5 MUL DIV SWAP3 POP JUMPDEST POP SWAP1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 PUSH1 0x7F DUP3 JUMPDEST DUP2 PUSH1 0xFF AND DUP4 PUSH1 0x1 ADD PUSH1 0xFF AND LT ISZERO PUSH2 0x2D28 JUMPI PUSH1 0x2 PUSH1 0xFF DUP5 DUP5 ADD AND DIV SWAP1 POP DUP5 PUSH1 0x0 PUSH1 0xFF DUP4 AND PUSH1 0x80 DUP2 LT PUSH2 0x2D10 JUMPI INVALID JUMPDEST ADD SLOAD LT PUSH2 0x2D1F JUMPI DUP1 SWAP3 POP PUSH2 0x2D23 JUMP JUMPDEST DUP1 SWAP2 POP JUMPDEST PUSH2 0x2CE3 JUMP JUMPDEST DUP5 PUSH1 0x0 PUSH1 0xFF DUP5 AND PUSH1 0x80 DUP2 LT PUSH2 0x2D39 JUMPI INVALID JUMPDEST ADD SLOAD LT PUSH2 0x2D48 JUMPI DUP2 SWAP4 POP PUSH2 0x28D3 JUMP JUMPDEST DUP5 PUSH1 0x0 PUSH1 0xFF DUP6 AND PUSH1 0x80 DUP2 LT PUSH2 0x2D59 JUMPI INVALID JUMPDEST ADD SLOAD LT PUSH2 0x106 JUMPI DUP3 SWAP4 POP PUSH2 0x28D3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP5 SWAP2 POP PUSH1 0x0 SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH16 0x3442C4E6074A82F1797F72AC0000000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH16 0x116B96F757C380FB287FD0E40000000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH15 0x45AE5BDD5F0E03ECA1FF4390000000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH15 0xDEFABF91302CD95B9FFDA50000000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH15 0x2529CA9832B22439EFFF9B8000000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH14 0x54F1CF12BD04E516B6DA88000000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH14 0xA9E39E257A09CA2D6DB51000000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH14 0x12E066E7B839FA050C309000000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH13 0x1E33D7D926C329A1AD1A800000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH13 0x2BEE513BDB4A6B19B5F800000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH12 0x3A9316FA79B88ECCF2A00000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH12 0x48177EBE1FA812375200000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH11 0x5263FE90242DCBACF00000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH11 0x57E22099C030D94100000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH10 0x57E22099C030D9410000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH10 0x52B6B54569976310000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH9 0x4985F67696BF748000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH9 0x3DEA12EA99E498000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH8 0x31880F2214B6E000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH8 0x25BCFF56EB36000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH7 0x1B722E10AB1000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH7 0x1317C70077000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH6 0xCBA84AAFA00 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH5 0x82573A0A00 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH5 0x5035AD900 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH4 0x2F881B00 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH4 0x1B29340 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH3 0xEFC40 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH2 0x7FE0 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH2 0x420 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH1 0x21 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH1 0x1 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND PUSH1 0x1 SWAP1 PUSH1 0x2 EXP MUL DUP6 PUSH16 0x688589CC0E9505E2F2FEE5580000000 DUP4 DUP2 ISZERO ISZERO PUSH2 0x317F JUMPI INVALID JUMPDEST DIV ADD ADD SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 PUSH1 0x2 EXP DUP7 GT ISZERO DUP1 ISZERO PUSH2 0x31A9 JUMPI POP PUSH1 0x80 PUSH1 0x2 EXP DUP6 GT ISZERO JUMPDEST ISZERO PUSH2 0x31B9 JUMPI DUP6 DUP6 SWAP4 POP SWAP4 POP PUSH2 0x1223 JUMP JUMPDEST PUSH1 0x80 PUSH1 0x2 EXP DUP7 LT ISZERO PUSH2 0x31E5 JUMPI DUP5 PUSH1 0x80 PUSH1 0x2 EXP DUP8 MUL DUP2 ISZERO ISZERO PUSH2 0x31D6 JUMPI INVALID JUMPDEST DIV PUSH1 0x80 PUSH1 0x2 EXP SWAP4 POP SWAP4 POP PUSH2 0x1223 JUMP JUMPDEST PUSH1 0x80 PUSH1 0x2 EXP DUP6 LT ISZERO PUSH2 0x3211 JUMPI PUSH1 0x80 PUSH1 0x2 EXP DUP7 PUSH1 0x80 PUSH1 0x2 EXP DUP8 MUL DUP2 ISZERO ISZERO PUSH2 0x3207 JUMPI INVALID JUMPDEST DIV SWAP4 POP SWAP4 POP PUSH2 0x1223 JUMP JUMPDEST DUP5 DUP7 GT PUSH2 0x321E JUMPI DUP5 PUSH2 0x3220 JUMP JUMPDEST DUP6 JUMPDEST SWAP2 POP PUSH2 0x3230 PUSH1 0x7F PUSH1 0x2 EXP DUP4 PUSH2 0x283B JUMP JUMPDEST PUSH1 0xFF AND PUSH1 0x2 EXP SWAP6 DUP7 SWAP1 DIV SWAP7 SWAP6 SWAP1 SWAP5 DIV SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH16 0x2F16AC6C59DE6F8D5D6F63C1482A7C86 DUP3 GT PUSH2 0x3270 JUMPI PUSH2 0x3269 DUP3 PUSH2 0x340D JUMP JUMPDEST SWAP1 POP PUSH2 0x329F JUMP JUMPDEST DUP2 PUSH32 0x4000000000000000000000000000000000000000000000000000000000000000 DUP2 ISZERO ISZERO PUSH2 0x329B JUMPI INVALID JUMPDEST DIV SWAP1 POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH16 0x2F16AC6C59DE6F8D5D6F63C1482A7C86 DUP3 GT PUSH2 0x32C6 JUMPI PUSH2 0x3269 DUP3 PUSH2 0x3870 JUMP JUMPDEST PUSH17 0x1AF16AC6C59DE6F8D5D6F63C1482A7C80 DUP3 GT PUSH2 0x32E7 JUMPI PUSH2 0x3269 DUP3 PUSH2 0x3CF1 JUMP JUMPDEST PUSH17 0x6B22D43E72C326539CCEEEF8BB48F255FF DUP3 GT PUSH2 0x106 JUMPI PUSH2 0x3269 DUP3 PUSH2 0x3D6F JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH30 0x10C6F7A0B5ED8D36B4C7F34938583621FAFC8B0079A2834D26FA3FCC9EA9 DUP8 GT ISZERO PUSH2 0x3379 JUMPI PUSH30 0x10C6F7A0B5ED8D36B4C7F34938583621FAFC8B0079A2834D26FA3FCC9EAA DUP8 DIV PUSH1 0x1 ADD SWAP3 POP DUP3 DUP8 DUP2 ISZERO ISZERO PUSH2 0x3367 JUMPI INVALID JUMPDEST DIV SWAP7 POP DUP3 DUP7 DUP2 ISZERO ISZERO PUSH2 0x3375 JUMPI INVALID JUMPDEST DIV SWAP6 POP JUMPDEST PUSH2 0x3391 PUSH3 0xF4240 DUP9 MUL PUSH2 0x338C DUP10 DUP10 PUSH2 0xFC5 JUMP JUMPDEST PUSH2 0x3DFC JUMP JUMPDEST SWAP8 PUSH3 0xF4240 DUP10 SWAP1 SUB SWAP8 POP SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 PUSH2 0x100 DUP5 LT ISZERO PUSH2 0x33D3 JUMPI JUMPDEST PUSH1 0x1 DUP5 GT ISZERO PUSH2 0x33CE JUMPI PUSH1 0x2 SWAP1 SWAP4 DIV SWAP3 PUSH1 0x1 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x33B3 JUMP JUMPDEST PUSH2 0xFBE JUMP JUMPDEST POP PUSH1 0x80 JUMPDEST PUSH1 0x0 DUP2 PUSH1 0xFF AND GT ISZERO PUSH2 0xFBE JUMPI PUSH1 0xFF DUP2 AND PUSH1 0x2 EXP DUP5 LT PUSH2 0x3400 JUMPI PUSH1 0xFF DUP2 AND PUSH1 0x2 EXP SWAP1 SWAP4 DIV SWAP3 SWAP1 DUP2 OR SWAP1 JUMPDEST PUSH1 0x2 PUSH1 0xFF SWAP1 SWAP2 AND DIV PUSH2 0x33D7 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP1 MUL DIV SWAP2 POP PUSH17 0x14D29A73A6E7B02C3668C7B0880000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH17 0x2504A0CD9A7F7215B60F9BE4800000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH17 0x484D0A1191C0EAD267967C7A4A0000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH17 0x95EC580D7E8427A4BAF26A90A00000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH17 0x1440B0BE1615A47DBA6E5B3B1F10000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH17 0x2D207601F46A99B4112418400000000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH17 0x66EBAAC4C37C622DD8288A7EB1B2000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH17 0xEF17240135F7DBD43A1BA10CF200000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH18 0x233C33C676A5EB2416094A87B3657000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH18 0x541CDE48BC0254BED49A9F8700000000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH18 0xCAE1FAD2CDD4D4CB8D73ABCA0D19A400000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH18 0x1EDB2AA2F760D15C41CEEDBA956400000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH18 0x4BA8D20D2DABD386C9529659841A2E200000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH18 0xBAC08546B867CDAA20000000000000000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH19 0x1CFA8E70C03625B9DB76C8EBF5BBF24820000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH19 0x4851D99F82060DF265F3309B26F8200000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH19 0xB550D19B129D270C44F6F55F027723CBB0000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH19 0x1C877DADC761DC272DEB65D4B0000000000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH19 0x48178ECE97479F33A77F2AD22A81B64406C000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH19 0xB6CA8268B9D810FEDF6695EF2F8A6C00000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH20 0x1D0E76631A5B05D007B8CB72A7C7F11EC36E000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH20 0x4A1C37BD9F85FD9C6C780000000000000000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH20 0xBD8369F1B702BF491E2EBFCEE08250313B65400 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH20 0x1E5C7C32A9F6C70AB2CB59D9225764D400000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH20 0x4DFF5820E165E910F95120A708E742496221E600 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH20 0xC8C8F66DB1FCED378EE50E536000000000000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH21 0x205DB8DFFFF45BFA2938F128F599DBF16EB11D880 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH21 0x53A044EBD984351493E1786AF38D39A0800000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH21 0xD86DAE2A4CC0F47633A544479735869B487B59C40 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH21 0x231000000000000000000000000000000000000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH21 0x5B0485A76F6646C2039DB1507CDD51B08649680822 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH21 0xEC983C46C49545BC17EFA6B5B0055E242200000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 PUSH16 0xDE1BC4D19EFCAC82445DA75B00000000 DUP4 DIV ADD ADD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x7F PUSH1 0x2 EXP DUP2 DUP2 SUB PUSH16 0xDE1BC4D19EFCAC82445DA75B00000000 MUL SWAP1 DUP3 DUP1 MUL DIV SWAP2 POP PUSH17 0x14D29A73A6E7B02C3668C7B0880000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH17 0x2504A0CD9A7F7215B60F9BE4800000000 DUP3 MUL SWAP1 SUB PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH17 0x484D0A1191C0EAD267967C7A4A0000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH17 0x95EC580D7E8427A4BAF26A90A00000000 DUP3 MUL SWAP1 SUB PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH17 0x1440B0BE1615A47DBA6E5B3B1F10000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH17 0x2D207601F46A99B4112418400000000000 DUP3 MUL SWAP1 SUB PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH17 0x66EBAAC4C37C622DD8288A7EB1B2000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH17 0xEF17240135F7DBD43A1BA10CF200000000 DUP3 MUL SWAP1 SUB PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH18 0x233C33C676A5EB2416094A87B3657000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH18 0x541CDE48BC0254BED49A9F8700000000000 DUP3 MUL SWAP1 SUB PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH18 0xCAE1FAD2CDD4D4CB8D73ABCA0D19A400000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH18 0x1EDB2AA2F760D15C41CEEDBA956400000000 DUP3 MUL SWAP1 SUB PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH18 0x4BA8D20D2DABD386C9529659841A2E200000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH18 0xBAC08546B867CDAA20000000000000000000 DUP3 MUL SWAP1 SUB PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH19 0x1CFA8E70C03625B9DB76C8EBF5BBF24820000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH19 0x4851D99F82060DF265F3309B26F8200000000 DUP3 MUL SWAP1 SUB PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH19 0xB550D19B129D270C44F6F55F027723CBB0000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH19 0x1C877DADC761DC272DEB65D4B0000000000000 DUP3 MUL SWAP1 SUB PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH19 0x48178ECE97479F33A77F2AD22A81B64406C000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH19 0xB6CA8268B9D810FEDF6695EF2F8A6C00000000 DUP3 MUL SWAP1 SUB PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH20 0x1D0E76631A5B05D007B8CB72A7C7F11EC36E000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH20 0x4A1C37BD9F85FD9C6C780000000000000000000 DUP3 MUL SWAP1 SUB PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH20 0xBD8369F1B702BF491E2EBFCEE08250313B65400 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH20 0x1E5C7C32A9F6C70AB2CB59D9225764D400000000 DUP3 MUL SWAP1 SUB PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH20 0x4DFF5820E165E910F95120A708E742496221E600 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH20 0xC8C8F66DB1FCED378EE50E536000000000000000 DUP3 MUL SWAP1 SUB PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH21 0x205DB8DFFFF45BFA2938F128F599DBF16EB11D880 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH21 0x53A044EBD984351493E1786AF38D39A0800000000 DUP3 MUL SWAP1 SUB PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH21 0xD86DAE2A4CC0F47633A544479735869B487B59C40 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH21 0x231000000000000000000000000000000000000000 DUP3 MUL SWAP1 SUB PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH21 0x5B0485A76F6646C2039DB1507CDD51B08649680822 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH21 0xEC983C46C49545BC17EFA6B5B0055E242200000000 DUP3 MUL SWAP1 SUB PUSH16 0xDE1BC4D19EFCAC82445DA75B00000000 DUP2 JUMPDEST DIV SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH16 0x2F16AC6C59DE6F8D5D6F63C1482A7C86 NOT DUP3 ADD PUSH16 0x3060C183060C183060C183060C18306 DUP1 DUP3 DIV SWAP1 DUP2 DUP2 MUL SWAP1 PUSH1 0x1 DUP4 ADD MUL DUP5 DUP1 PUSH1 0x80 DUP6 DUP2 DUP2 LT PUSH2 0x3D33 JUMPI INVALID JUMPDEST ADD SLOAD SWAP2 POP PUSH1 0x80 PUSH1 0x1 DUP7 ADD DUP2 DUP2 LT PUSH2 0x3D46 JUMPI INVALID JUMPDEST ADD SLOAD PUSH16 0x3060C183060C183060C183060C18306 SWAP5 DUP8 SUB MUL SWAP6 SWAP1 SWAP3 SUB MUL SWAP4 SWAP1 SWAP4 ADD DIV SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH17 0x15BF0A8B1457695355FB8AC404E7A79E3 DUP5 LT PUSH2 0x3D9A JUMPI PUSH2 0x3D95 DUP5 PUSH2 0x2821 JUMP JUMPDEST PUSH2 0x3DA3 JUMP JUMPDEST PUSH2 0x3DA3 DUP5 PUSH2 0x2409 JUMP JUMPDEST SWAP2 POP PUSH17 0x15BF0A8B1457695355FB8AC404E7A79E3 DUP3 LT PUSH2 0x3DCB JUMPI PUSH2 0x3DC6 DUP3 PUSH2 0x2821 JUMP JUMPDEST PUSH2 0x3DD4 JUMP JUMPDEST PUSH2 0x3DD4 DUP3 PUSH2 0x2409 JUMP JUMPDEST SWAP1 POP DUP4 PUSH1 0x7F PUSH1 0x2 EXP DUP4 PUSH1 0x7F PUSH1 0x2 EXP DUP5 MUL DUP2 ISZERO ISZERO PUSH2 0x3DED JUMPI INVALID JUMPDEST DIV DUP4 DUP6 SUB ADD MUL DUP2 ISZERO ISZERO PUSH2 0x3CE8 JUMPI INVALID JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV DUP3 SUB DUP3 DUP5 DUP2 ISZERO ISZERO PUSH2 0x3E0F JUMPI INVALID JUMPDEST MOD DUP2 ISZERO ISZERO PUSH2 0x3E19 JUMPI INVALID JUMPDEST DIV DUP3 DUP5 DUP2 ISZERO ISZERO PUSH2 0x3E25 JUMPI INVALID JUMPDEST DIV ADD SWAP4 SWAP3 POP POP POP JUMP STOP GASLIMIT MSTORE MSTORE 0x5f 0x49 0x4e JUMP COINBASE 0x4c 0x49 DIFFICULTY 0x5f MSTORE8 SSTORE POP POP 0x4c MSIZE STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP GASLIMIT MSTORE MSTORE 0x5f 0x49 0x4e JUMP COINBASE 0x4c 0x49 DIFFICULTY 0x5f MSTORE GASLIMIT MSTORE8 GASLIMIT MSTORE JUMP GASLIMIT 0x5f TIMESTAMP COINBASE 0x4c COINBASE 0x4e NUMBER GASLIMIT STOP STOP STOP STOP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 GASPRICE 0xa6 BYTE BLOCKHASH SWAP15 PUSH19 0x9A09805C2713F062E39BB7A14053960C848BB2 0xd7 PUSH4 0x6183D573 0xa7 STOP 0x29 ", - "sourceMap": "105:60940:10:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;105:60940:10;;;;;;;" - }, - "deployedBytecode": { - "linkReferences": {}, - "object": "6080604052600436106101065763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631da6bbfb811461010b57806329a00e7c146101445780632f55bdb51461016b57806335b49af41461019257806348d73fed1461014457806349f9b0f7146101b957806354fd4d50146101e057806365098bb31461020c57806376cf0b561461023a57806379c1b4501461020c5780638074590a1461026157806394491fab146102885780639d1141081461020c578063a11aa1b4146102b6578063abfd231d14610192578063e1c7392a146102fd578063ebbb215814610314578063f3250fe21461033b578063f732f1c9146101b9575b600080fd5b34801561011757600080fd5b5061013260043560243563ffffffff60443516606435610362565b60408051918252519081900360200190f35b34801561015057600080fd5b5061013260043560243563ffffffff60443516606435610379565b34801561017757600080fd5b5061013260043560243563ffffffff60443516606435610387565b34801561019e57600080fd5b5061013260043560243563ffffffff60443516606435610524565b3480156101c557600080fd5b5061013260043560243563ffffffff60443516606435610532565b3480156101ec57600080fd5b506101f5610540565b6040805161ffff9092168252519081900360200190f35b34801561021857600080fd5b5061013260043563ffffffff6024358116906044359060643516608435610545565b34801561024657600080fd5b5061013260043560243563ffffffff6044351660643561055e565b34801561026d57600080fd5b5061013260043560243563ffffffff60443516606435610763565b34801561029457600080fd5b5061013260043563ffffffff6024358116906044359060643516608435610904565b3480156102c257600080fd5b506102da600435602435604435606435608435610aa0565b6040805163ffffffff938416815291909216602082015281519081900390910190f35b34801561030957600080fd5b50610312610c40565b005b34801561032057600080fd5b5061013260043560243563ffffffff60443516606435610c52565b34801561034757600080fd5b5061013260043560243563ffffffff60443516606435610df9565b600061037085858585610c52565b95945050505050565b600061037085858585610df9565b6000808080808089116103d2576040805160e560020a62461bcd0281526020600482015260126024820152600080516020613e2f833981519152604482015290519081900360640190fd5b60008811610418576040805160e560020a62461bcd02815260206004820152601b6024820152600080516020613e4f833981519152604482015290519081900360640190fd5b60018763ffffffff161180156104375750621e848063ffffffff881611155b151561048d576040805160e560020a62461bcd02815260206004820152601960248201527f4552525f494e56414c49445f524553455256455f524154494f00000000000000604482015290519081900360640190fd5b85151561049d5760009450610518565b63ffffffff8716620f424014156104d057876104bf878b63ffffffff610f4116565b8115156104c857fe5b049450610518565b6104e0888763ffffffff610fc516565b91506104f1828989620f4240611022565b909450925060ff831661050a8a8663ffffffff610f4116565b9060020a9004905088810394505b50505050949350505050565b600061037085858585610763565b60006103708585858561055e565b600881565b60006105548686868686610904565b9695505050505050565b60008080808080808a116105aa576040805160e560020a62461bcd0281526020600482015260126024820152600080516020613e2f833981519152604482015290519081900360640190fd5b600089116105f0576040805160e560020a62461bcd02815260206004820152601b6024820152600080516020613e4f833981519152604482015290519081900360640190fd5b60008863ffffffff1611801561060f5750620f424063ffffffff891611155b1515610665576040805160e560020a62461bcd02815260206004820152601a60248201527f4552525f494e56414c49445f524553455256455f574549474854000000000000604482015290519081900360640190fd5b898711156106bd576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f494e56414c49445f414d4f554e540000000000000000000000000000604482015290519081900360640190fd5b8615156106cd5760009550610756565b898714156106dd57889550610756565b63ffffffff8816620f4240141561071057896106ff8a8963ffffffff610f4116565b81151561070857fe5b049550610756565b868a0392506107248a84620f42408b611022565b9095509350610739898663ffffffff610f4116565b91505060ff831660020a88028481830381151561075257fe5b0495505b5050505050949350505050565b60008080808080808a116107af576040805160e560020a62461bcd0281526020600482015260126024820152600080516020613e2f833981519152604482015290519081900360640190fd5b600089116107f5576040805160e560020a62461bcd02815260206004820152601b6024820152600080516020613e4f833981519152604482015290519081900360640190fd5b60018863ffffffff161180156108145750621e848063ffffffff891611155b151561086a576040805160e560020a62461bcd02815260206004820152601960248201527f4552525f494e56414c49445f524553455256455f524154494f00000000000000604482015290519081900360640190fd5b898711156108c2576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f494e56414c49445f414d4f554e540000000000000000000000000000604482015290519081900360640190fd5b8615156108d25760009550610756565b898714156108e257889550610756565b63ffffffff8816620f4240141561071057896106ff888b63ffffffff610f4116565b60008060008060008060008b11801561091d5750600089115b1515610961576040805160e560020a62461bcd02815260206004820152601b6024820152600080516020613e4f833981519152604482015290519081900360640190fd5b60008a63ffffffff161180156109805750620f424063ffffffff8b1611155b8015610992575060008863ffffffff16115b80156109a75750620f424063ffffffff891611155b15156109fd576040805160e560020a62461bcd02815260206004820152601a60248201527f4552525f494e56414c49445f524553455256455f574549474854000000000000604482015290519081900360640190fd5b8763ffffffff168a63ffffffff161415610a4257610a218b8863ffffffff610fc516565b610a318a8963ffffffff610f4116565b811515610a3a57fe5b049550610a92565b610a528b8863ffffffff610fc516565b9250610a60838c8c8b611022565b9095509350610a75898663ffffffff610f4116565b91505060ff831660020a880284818303811515610a8e57fe5b0495505b505050505095945050505050565b60008060008087891415610b06576000891180610abd5750600087115b1515610b01576040805160e560020a62461bcd02815260206004820152601b6024820152600080516020613e4f833981519152604482015290519081900360640190fd5b610b66565b600089118015610b165750600088115b8015610b225750600087115b1515610b66576040805160e560020a62461bcd02815260206004820152601b6024820152600080516020613e4f833981519152604482015290519081900360640190fd5b600086118015610b765750600085115b1515610bcc576040805160e560020a62461bcd02815260206004820152601860248201527f4552525f494e56414c49445f524553455256455f524154450000000000000000604482015290519081900360640190fd5b610bdc898763ffffffff610f4116565b9150610bee878663ffffffff610f4116565b905087891015610c0f57610c06888a8484600161110c565b93509350610c34565b87891115610c2557610c0689898484600061110c565b610c2f82826111ef565b935093505b50509550959350505050565b610c4861122c565b610c50611a02565b565b600080808080808911610c9d576040805160e560020a62461bcd0281526020600482015260126024820152600080516020613e2f833981519152604482015290519081900360640190fd5b60008811610ce3576040805160e560020a62461bcd02815260206004820152601b6024820152600080516020613e4f833981519152604482015290519081900360640190fd5b60018763ffffffff16118015610d025750621e848063ffffffff881611155b1515610d58576040805160e560020a62461bcd02815260206004820152601960248201527f4552525f494e56414c49445f524553455256455f524154494f00000000000000604482015290519081900360640190fd5b851515610d685760009450610518565b63ffffffff8716620f42401415610da157886001610d8c888b63ffffffff610f4116565b03811515610d9657fe5b046001019450610518565b610db1898763ffffffff610fc516565b9150610dc2828a620f42408a611022565b909450925060ff83166001610ddd8a8763ffffffff610f4116565b60029290920a9103049790970360010198975050505050505050565b600080808080808911610e44576040805160e560020a62461bcd0281526020600482015260126024820152600080516020613e2f833981519152604482015290519081900360640190fd5b60008811610e8a576040805160e560020a62461bcd02815260206004820152601b6024820152600080516020613e4f833981519152604482015290519081900360640190fd5b60008763ffffffff16118015610ea95750620f424063ffffffff881611155b1515610eff576040805160e560020a62461bcd02815260206004820152601a60248201527f4552525f494e56414c49445f524553455256455f574549474854000000000000604482015290519081900360640190fd5b851515610f0f5760009450610518565b63ffffffff8716620f42401415610f3157876104bf8a8863ffffffff610f4116565b6104e0868963ffffffff610fc516565b600080831515610f545760009150610fbe565b50828202828482811515610f6457fe5b0414610fba576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b8091505b5092915050565b600082820183811015610fba576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b600080808080807002000000000000000000000000000000008a1061104657600080fd5b88607f60020a8b0281151561105757fe5b04925070015bf0a8b1457695355fb8ac404e7a79e38310156110835761107c83612409565b935061108f565b61108c83612821565b93505b8663ffffffff168863ffffffff1685028115156110a857fe5b0491507008000000000000000000000000000000008210156110d8576110cd826128db565b607f955095506110ff565b6110e182612cdb565b90506110f960ff607f8390031660020a830482612d68565b81955095505b5050505094509492505050565b60008060008060008061111f898961318b565b9099509750896111398c607f60020a63ffffffff610f4116565b81151561114257fe5b04935070015bf0a8b1457695355fb8ac404e7a79e3841061116b5761116684612821565b611174565b61117484612409565b925087611187848b63ffffffff610f4116565b81151561119057fe5b049150866111a6576111a182613247565b6111af565b6111af826132a4565b90506111dd6111c4828b63ffffffff610f4116565b6111d88a607f60020a63ffffffff610f4116565b6111ef565b95509550505050509550959350505050565b600080808084861161120e576112058686613308565b93509350611223565b6112188587613308565b915091508082935093505b50509250929050565b701c35fedd14ffffffffffffffffffffffff602055701b0ce43b323fffffffffffffffffffffff6021557019f0028ec1ffffffffffffffffffffffff6022557018ded91f0e7fffffffffffffffffffffff6023557017d8ec7f0417ffffffffffffffffffffff6024557016ddc6556cdbffffffffffffffffffffff6025557015ecf52776a1ffffffffffffffffffffff6026557015060c256cb2ffffffffffffffffffffff602755701428a2f98d72ffffffffffffffffffffff6028557013545598e5c23fffffffffffffffffffff602955701288c4161ce1dfffffffffffffffffffff602a557011c592761c666fffffffffffffffffffff602b5570110a688680a757ffffffffffffffffffff602c55701056f1b5bedf77ffffffffffffffffffff602d55700faadceceeff8bffffffffffffffffffff602e55700f05dc6b27edadffffffffffffffffffff602f55700e67a5a25da4107fffffffffffffffffff603055700dcff115b14eedffffffffffffffffffff603155700d3e7a392431239fffffffffffffffffff603255700cb2ff529eb71e4fffffffffffffffffff603355700c2d415c3db974afffffffffffffffffff603455700bad03e7d883f69bffffffffffffffffff603555700b320d03b2c343d5ffffffffffffffffff603655700abc25204e02828dffffffffffffffffff603755700a4b16f74ee4bb207fffffffffffffffff6038557009deaf736ac1f569ffffffffffffffffff603955700976bd9952c7aa957fffffffffffffffff603a557009131271922eaa606fffffffffffffffff603b557008b380f3558668c46fffffffffffffffff603c55700857ddf0117efa215bffffffffffffffff603d557007ffffffffffffffffffffffffffffffff603e557007abbf6f6abb9d087fffffffffffffffff603f5570075af62cbac95f7dfa7fffffffffffffff60405570070d7fb7452e187ac13fffffffffffffff6041557006c3390ecc8af379295fffffffffffffff60425570067c00a3b07ffc01fd6fffffffffffffff604355700637b647c39cbb9d3d27ffffffffffffff6044557005f63b1fc104dbd39587ffffffffffffff6045557005b771955b36e12f7235ffffffffffffff60465570057b3d49dda84556d6f6ffffffffffffff60475570054183095b2c8ececf30ffffffffffffff60485570050a28be635ca2b888f77fffffffffffff6049557004d5156639708c9db33c3fffffffffffff604a557004a23105873875bd52dfdfffffffffffff604b55700471649d87199aa990756fffffffffffff604c557004429a21a029d4c1457cfbffffffffffff604d55700415bc6d6fb7dd71af2cb3ffffffffffff604e557003eab73b3bbfe282243ce1ffffffffffff604f557003c1771ac9fb6b4c18e229ffffffffffff605055700399e96897690418f785257fffffffffff605155700373fc456c53bb779bf0ea9fffffffffff60525570034f9e8e490c48e67e6ab8bfffffffffff60535570032cbfd4a7adc790560b3337ffffffffff60545570030b50570f6e5d2acca94613ffffffffff6055557002eb40f9f620fda6b56c2861ffffffffff6056557002cc8340ecb0d0f520a6af58ffffffffff6057557002af09481380a0a35cf1ba02ffffffffff605855700292c5bdd3b92ec810287b1b3fffffffff605955700277abdcdab07d5a77ac6d6b9fffffffff605a5570025daf6654b1eaa55fd64df5efffffffff605b55700244c49c648baa98192dce88b7ffffffff605c5570022ce03cd5619a311b2471268bffffffff605d55700215f77c045fbe885654a44a0fffffffff605e557001ffffffffffffffffffffffffffffffff605f557001eaefdbdaaee7421fc4d3ede5ffffffff6060557001d6bd8b2eb257df7e8ca57b09bfffffff6061557001c35fedd14b861eb0443f7f133fffffff6062557001b0ce43b322bcde4a56e8ada5afffffff60635570019f0028ec1fff007f5a195a39dfffffff60645570018ded91f0e72ee74f49b15ba527ffffff60655570017d8ec7f04136f4e5615fd41a63ffffff60665570016ddc6556cdb84bdc8d12d22e6fffffff60675570015ecf52776a1155b5bd8395814f7fffff60685570015060c256cb23b3b3cc3754cf40ffffff6069557001428a2f98d728ae223ddab715be3fffff606a5570013545598e5c23276ccf0ede68034fffff606b557001288c4161ce1d6f54b7f61081194fffff606c5570011c592761c666aa641d5a01a40f17ffff606d55700110a688680a7530515f3e6e6cfdcdffff606e557001056f1b5bedf75c6bcb2ce8aed428ffff606f556ffaadceceeff8a0890f3875f008277fff6070556ff05dc6b27edad306388a600f6ba0bfff6071556fe67a5a25da41063de1495d5b18cdbfff6072556fdcff115b14eedde6fc3aa5353f2e4fff6073556fd3e7a3924312399f9aae2e0f868f8fff6074556fcb2ff529eb71e41582cccd5a1ee26fff6075556fc2d415c3db974ab32a51840c0b67edff6076556fbad03e7d883f69ad5b0a186184e06bff6077556fb320d03b2c343d4829abd6075f0cc5ff6078556fabc25204e02828d73c6e80bcdb1a95bf6079556fa4b16f74ee4bb2040a1ec6c15fbbf2df607a556f9deaf736ac1f569deb1b5ae3f36c130f607b556f976bd9952c7aa957f5937d790ef65037607c556f9131271922eaa6064b73a22d0bd4f2bf607d556f8b380f3558668c46c91c49a2f8e967b9607e556f857ddf0117efa215952912839f6473e66000607f5b0155565b6f60e393c68d20b1bd09deaabc0373b9c560809081556f5f8f46e4854120989ed94719fb4c20116081556f5e479ebb9129fb1b7e72a648f992b6066082556f5d0bd23fe42dfedde2e9586be12b85fe6083556f5bdb29ddee979308ddfca81aeeb8095a6084556f5ab4fd8a260d2c7e2c0d2afcf0009dad6085556f5998b31359a55d48724c65cf090012216086556f5885bcad2b322dfc43e8860f9c018cf56087556f577b97aa1fe222bb452fdf111b1f0be26088556f5679cb5e3575632e5baa27e2b949f7046089556f557fe8241b3a31c83c732f1cdff4a1c5608a556f548d868026504875d6e59bbe95fc2a6b608b556f53a2465ce347cf34d05a867c17dd3088608c556f52bdce5dcd4faed59c7f5511cf8f8acc608d556f51dfcb453c07f8da817606e7885f7c3e608e556f5107ef6b0a5a2be8f8ff15590daa3cce608f556f5035f241d6eae0cd7bacba119993de7b6090556f4f698fe90d5b53d532171e1210164c666091556f4ea288ca297a0e6a09a0eee240e16c856092556f4de0a13fdcf5d4213fc398ba6e3becde6093556f4d23a145eef91fec06b06140804c48086094556f4c6b5430d4c1ee5526473db4ae0f11de6095556f4bb7886c240562eba11f4963a53b42406096556f4b080f3f1cb491d2d521e0ea4583521e6097556f4a5cbc96a05589cb4d86be1db31683646098556f49b566d40243517658d78c33162d6ece6099556f4911e6a02e5507a30f947383fd9a3276609a556f487216c2b31be4adc41db8a8d5cc0c88609b556f47d5d3fc4a7a1b188cd3d788b5c5e9fc609c556f473cfce4871a2c40bc4f9e1c32b955d0609d556f46a771ca578ab878485810e285e31c67609e556f4615149718aed4c258c373dc676aa72d609f556f4585c8b3f8fe489c6e1833ca4787138460a0556f44f972f174e41e5efb7e9d63c29ce73560a1556f446ff970ba86d8b00beb05ecebf3c4dc60a2556f43e9438ec88971812d6f198b5ccaad9660a3556f436539d11ff7bea657aeddb394e809ef60a4556f42e3c5d3e5a913401d86f66db5d81c2c60a5556f4264d2395303070ea726cbe98df6217460a6556f41e84a9a593bb7194c3a6349ecae4eea60a7556f416e1b785d13eba07a08f3f18876a5ab60a8556f40f6322ff389d423ba9dd7e7e7b7e80960a9556f40807cec8a466880ecf4184545d240a460aa556f400cea9ce88a8d3ae668e8ea0d9bf07f60ab556f3f9b6ae8772d4c55091e0ed7dfea0ac160ac556f3f2bee253fd84594f54bcaafac383a1360ad556f3ebe654e95208bb9210c575c081c595860ae556f3e52c1fc5665635b78ce1f05ad53c08660af556f3de8f65ac388101ddf718a6f5c1eff6560b0556f3d80f522d59bd0b328ca012df4cd2d4960b1556f3d1ab193129ea72b23648a161163a85a60b2556f3cb61f68d32576c135b95cfb53f76d7560b3556f3c5332d9f1aae851a3619e77e4cc847360b4556f3bf1e08edbe2aa109e1525f65759ef7360b5556f3b921d9cff13fa2c197746a3dfc4918f60b6556f3b33df818910bfc1a5aefb8f63ae2ac460b7556f3ad71c1c77e34fa32a9f184967eccbf660b8556f3a7bc9abf2c5bb53e2f7384a8a16521a60b9556f3a21dec7e76369783a68a0c6385a1c5760ba556f39c9525de6c9cdf7c1c157ca4a7a6ee360bb556f39721bad3dc85d1240ff0190e0adaac360bc556f391c324344d3248f0469eb28dd3d77e060bd556f38c78df7e3c796279fb4ff84394ab3da60be556f387426ea4638ae9aae08049d3554c20a60bf556f3821f57dbd2763256c1a99bbd205137860c0556f37d0f256cb46a8c92ff62fbbef28969860c1556f37811658591ffc7abdd1feaf3cef9b7360c2556f37325aa10e9e82f7df0f380f7997154b60c3556f36e4b888cfb408d873b9a80d439311c660c4556f3698299e59f4bb9de645fc9b08c64cca60c5556f364ca7a5012cb603023b57dd3ebfd50d60c6556f36022c928915b778ab1b06aaee7e61d460c7556f35b8b28d1a73dc27500ffe35559cc02860c8556f357033e951fe250ec5eb4e60955132d760c9556f3528ab2867934e3a21b5412e4c4f888160ca556f34e212f66c55057f9676c80094a61d5960cb556f349c66289e5b3c4b540c24f42fa4b9bb60cc556f34579fbbd0c733a9c8d6af6b0f7d00f760cd556f3413bad2e712288b924b5882b5b369bf60ce556f33d0b2b56286510ef730e213f71f12e960cf556f338e82ce00e2496262c64457535ba1a160d0556f334d26a96b373bb7c2f8ea1827f27a9260d1556f330c99f4f4211469e00b3e18c31475ea60d2556f32ccd87d6486094999c7d5e6f33237d860d3556f328dde2dd617b6665a2e8556f250c1af60d4556f324fa70e9adc270f8262755af5a99af960d5556f32122f443110611ca51040f41fa6e1e360d6556f31d5730e42c0831482f0f1485c4263d860d7556f31996ec6b07b4a83421b5ebc4ab4e1f160d8556f315e1ee0a68ff46bb43ec2b85032e87660d9556f31237fe7bc4deacf6775b9efa1a145f860da556f30e98e7f1cc5a356e44627a6972ea2ff60db556f30b04760b8917ec74205a3002650ec0560dc556f3077a75c803468e9132ce0cf3224241d60dd556f303fab57a6a275c36f19cda9bace667a60de556f3008504beb8dcbd2cf3bc1f6d5a064f060df556f2fd19346ed17dac61219ce0c2c5ac4b060e0556f2f9b7169808c324b5852fd3d54ba971460e1556f2f65e7e711cf4b064eea9c08cbdad57460e2556f2f30f405093042ddff8a251b6bf6d10360e3556f2efc931a3750f2e8bfe323edfe03757460e4556f2ec8c28e46dbe56d98685278339400cb60e5556f2e957fd933c3926d8a599b602379b85160e6556f2e62c882c7c9ed4473412702f08ba0e560e7556f2e309a221c12ba361e3ed695167feee260e8556f2dfef25d1f865ae18dd07cfea4bcea1060e9556f2dcdcee821cdc80decc02c44344aeb3160ea556f2d9d2d8562b34944d0b201bb87260c8360eb556f2d6d0c04a5b62a2c42636308669b729a60ec556f2d3d6842c9a235517fc5a0332691528f60ed556f2d0e402963fe1ea2834abc408c437c1060ee556f2cdf91ae602647908aff975e4d6a2a8c60ef556f2cb15ad3a1eb65f6d74a75da09a1b6c560f0556f2c8399a6ab8e9774d6fcff373d21072760f1556f2c564c4046f64edba6883ca06bbc453560f2556f2c2970c431f952641e05cb493e23eed360f3556f2bfd0560cd9eb14563bc7c0732856c1860f4556f2bd1084ed0332f7ff4150f9d0ef41a2c60f5556f2ba577d0fa1628b76d040b12a82492fb60f6556f2b7a5233cd21581e855e89dc2f1e8a9260f7556f2b4f95cd46904d05d72bdcde337d9cc760f8556f2b2540fc9b4d9abba3faca669191467560f9556f2afb5229f68d0830d8be8adb0a0db70f60fa556f2ad1c7c63a9b294c5bc73a3ba3ab7a2b60fb556f2aa8a04ac3cbe1ee1c9c86361465dbb860fc556f2a7fda392d725a44a2c8aeb9ab35430d60fd556f2a57741b18cde618717792b4faa216db60fe556f2a2f6c81f5d84dd950a35626d6d5503a90607f6119fe565b6000808080806fd3094c70f034de4b96ff7d5b6f99fcd88610612458576f4000000000000000000000000000000093909301926fd3094c70f034de4b96ff7d5b6f99fcd8607f60020a87020495505b6fa45af1e1f40c333b3de1db4dd55f29a786106124a1576f2000000000000000000000000000000093909301926fa45af1e1f40c333b3de1db4dd55f29a7607f60020a87020495505b6f910b022db7ae67ce76b441c27035c6a186106124ea576f1000000000000000000000000000000093909301926f910b022db7ae67ce76b441c27035c6a1607f60020a87020495505b6f88415abbe9a76bead8d00cf112e4d4a88610612533576f0800000000000000000000000000000093909301926f88415abbe9a76bead8d00cf112e4d4a8607f60020a87020495505b6f84102b00893f64c705e841d5d4064bd3861061257c576f0400000000000000000000000000000093909301926f84102b00893f64c705e841d5d4064bd3607f60020a87020495505b6f8204055aaef1c8bd5c3259f4822735a286106125c5576f0200000000000000000000000000000093909301926f8204055aaef1c8bd5c3259f4822735a2607f60020a87020495505b6f810100ab00222d861931c15e39b44e99861061260e576f0100000000000000000000000000000093909301926f810100ab00222d861931c15e39b44e99607f60020a87020495505b6f808040155aabbbe9451521693554f7338610612656576e80000000000000000000000000000093909301926f808040155aabbbe9451521693554f733607f60020a87020495505b6f7fffffffffffffffffffffffffffffff1986019250829150607f60020a828002049050608060020a8381038302049390930192607f60020a8282020491507002000000000000000000000000000000006faaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa8490038302049390930192607f60020a8282020491507003000000000000000000000000000000006f999999999999999999999999999999998490038302049390930192607f60020a8282020491507004000000000000000000000000000000006f924924924924924924924924924924928490038302049390930192607f60020a8282020491507005000000000000000000000000000000006f8e38e38e38e38e38e38e38e38e38e38e8490038302049390930192607f60020a8282020491507006000000000000000000000000000000006f8ba2e8ba2e8ba2e8ba2e8ba2e8ba2e8b8490038302049390930192607f60020a8282020491507007000000000000000000000000000000006f89d89d89d89d89d89d89d89d89d89d898490038302049390930192607f60020a8282020491507008000000000000000000000000000000006f888888888888888888888888888888888490038302049390930195945050505050565b6000808080608060020a851061285957612841607f60020a865b046133a4565b60ff8116600281900a90960495607f60020a02935091505b607f60020a8511156128ab5750607f5b60008160ff1611156128ab57607f60020a858002049450608060020a85106128a2576002948590049460ff600019830116900a92909201915b60001901612869565b6f05b9de1d10bf4103d647b0955897ba806f03f80fe03f80fe03f80fe03f80fe03f884020493505b505050919050565b6000670168244fdac78000607f60020a6f0fffffffffffffffffffffffffffffff84168080028290048082028390048083028490049485026710e1b3be415a00009092026705a0913f6b1e000091909102010192909181830204905080664807432bc180000283019250607f60020a82820281151561295657fe5b04905080660c0135dca040000283019250607f60020a82820281151561297857fe5b049050806601b707b1cdc0000283019250607f60020a82820281151561299a57fe5b049050806536e0f639b8000283019250607f60020a8282028115156129bb57fe5b04905080650618fee9f8000283019250607f60020a8282028115156129dc57fe5b04905080649c197dcc000283019250607f60020a8282028115156129fc57fe5b04905080640e30dce4000283019250607f60020a828202811515612a1c57fe5b0490508064012ebd13000283019250607f60020a828202811515612a3c57fe5b049050806317499f000283019250607f60020a828202811515612a5b57fe5b049050806301a9d4800283019250607f60020a828202811515612a7a57fe5b04905080621c63800283019250607f60020a828202811515612a9857fe5b049050806201c6380283019250607f60020a828202811515612ab657fe5b04905080611ab80283019250607f60020a828202811515612ad357fe5b0490508061017c0283019250607f60020a828202811515612af057fe5b0490508060140283019250607f60020a828202811515612b0c57fe5b6721c3677c82b40000919004938401048201607f60020a019290506f10000000000000000000000000000000851615612b695770018ebef9eac820ae8682b9793ac6d1e7767001c3d6a24ed82218787d624d3e5eba95f984020492505b6f20000000000000000000000000000000851615612bab577001368b2fc6f9609fe7aceb46aa619baed470018ebef9eac820ae8682b9793ac6d1e77884020492505b6f40000000000000000000000000000000851615612bec576fbc5ab1b16779be3575bd8f0520a9f21f7001368b2fc6f9609fe7aceb46aa619baed584020492505b607f60020a851615612c20576f454aaa8efe072e7f6ddbab84b40a55c96fbc5ab1b16779be3575bd8f0520a9f21e84020492505b608060020a851615612c54576f0960aadc109e7a3bf4578099615711ea6f454aaa8efe072e7f6ddbab84b40a55c584020492505b700200000000000000000000000000000000851615612c94576e2bf84208204f5977f9a8cf01fdce3d6f0960aadc109e7a3bf4578099615711d784020492505b700400000000000000000000000000000000851615612cd2576d03c6ab775dd0b95b4cbee7e65d116e2bf84208204f5977f9a8cf01fdc30784020492505b50909392505050565b60006020607f825b8160ff168360010160ff161015612d2857600260ff8484011604905084600060ff831660808110612d1057fe5b015410612d1f57809250612d23565b8091505b612ce3565b84600060ff841660808110612d3957fe5b015410612d48578193506128d3565b84600060ff851660808110612d5957fe5b015410610106578293506128d3565b6000806000849150600090508360ff168583029060020a90049150816f03442c4e6074a82f1797f72ac000000002810190508360ff168583029060020a90049150816f0116b96f757c380fb287fd0e4000000002810190508360ff168583029060020a90049150816e45ae5bdd5f0e03eca1ff439000000002810190508360ff168583029060020a90049150816e0defabf91302cd95b9ffda5000000002810190508360ff168583029060020a90049150816e02529ca9832b22439efff9b800000002810190508360ff168583029060020a90049150816d54f1cf12bd04e516b6da8800000002810190508360ff168583029060020a90049150816d0a9e39e257a09ca2d6db5100000002810190508360ff168583029060020a90049150816d012e066e7b839fa050c30900000002810190508360ff168583029060020a90049150816c1e33d7d926c329a1ad1a80000002810190508360ff168583029060020a90049150816c02bee513bdb4a6b19b5f80000002810190508360ff168583029060020a90049150816b3a9316fa79b88eccf2a0000002810190508360ff168583029060020a90049150816b048177ebe1fa81237520000002810190508360ff168583029060020a90049150816a5263fe90242dcbacf0000002810190508360ff168583029060020a90049150816a057e22099c030d9410000002810190508360ff168583029060020a90049150816957e22099c030d941000002810190508360ff168583029060020a900491508169052b6b5456997631000002810190508360ff168583029060020a9004915081684985f67696bf74800002810190508360ff168583029060020a90049150816803dea12ea99e49800002810190508360ff168583029060020a90049150816731880f2214b6e00002810190508360ff168583029060020a900491508167025bcff56eb3600002810190508360ff168583029060020a9004915081661b722e10ab100002810190508360ff168583029060020a90049150816601317c7007700002810190508360ff168583029060020a9004915081650cba84aafa0002810190508360ff168583029060020a90049150816482573a0a0002810190508360ff168583029060020a90049150816405035ad90002810190508360ff168583029060020a9004915081632f881b0002810190508360ff168583029060020a90049150816301b2934002810190508360ff168583029060020a9004915081620efc4002810190508360ff168583029060020a9004915081617fe002810190508360ff168583029060020a900491508161042002810190508360ff168583029060020a9004915081602102810190508360ff168583029060020a9004915081600102810190508360ff1660019060020a02856f0688589cc0e9505e2f2fee55800000008381151561317f57fe5b04010195945050505050565b600080600080608060020a86111580156131a95750608060020a8511155b156131b957858593509350611223565b608060020a8610156131e55784608060020a87028115156131d657fe5b04608060020a93509350611223565b608060020a85101561321157608060020a86608060020a870281151561320757fe5b0493509350611223565b84861161321e5784613220565b855b9150613230607f60020a8361283b565b60ff1660020a958690049695909404949350505050565b60006f2f16ac6c59de6f8d5d6f63c1482a7c868211613270576132698261340d565b905061329f565b817f400000000000000000000000000000000000000000000000000000000000000081151561329b57fe5b0490505b919050565b60006f2f16ac6c59de6f8d5d6f63c1482a7c8682116132c65761326982613870565b7001af16ac6c59de6f8d5d6f63c1482a7c8082116132e75761326982613cf1565b706b22d43e72c326539cceeef8bb48f255ff82116101065761326982613d6f565b60008060008060007d10c6f7a0b5ed8d36b4c7f34938583621fafc8b0079a2834d26fa3fcc9ea9871115613379577d10c6f7a0b5ed8d36b4c7f34938583621fafc8b0079a2834d26fa3fcc9eaa87046001019250828781151561336757fe5b049650828681151561337557fe5b0495505b613391620f4240880261338c8989610fc5565b613dfc565b97620f4240899003975095505050505050565b600080806101008410156133d3575b60018411156133ce57600290930492600191909101906133b3565b610fbe565b5060805b60008160ff161115610fbe5760ff811660020a84106134005760ff811660020a90930492908117905b600260ff909116046133d7565b60008181607f60020a82800204915070014d29a73a6e7b02c3668c7b0880000000820201607f60020a8483020491507002504a0cd9a7f7215b60f9be4800000000820201607f60020a848302049150700484d0a1191c0ead267967c7a4a0000000820201607f60020a84830204915070095ec580d7e8427a4baf26a90a00000000820201607f60020a848302049150701440b0be1615a47dba6e5b3b1f10000000820201607f60020a848302049150702d207601f46a99b4112418400000000000820201607f60020a8483020491507066ebaac4c37c622dd8288a7eb1b2000000820201607f60020a84830204915070ef17240135f7dbd43a1ba10cf200000000820201607f60020a848302049150710233c33c676a5eb2416094a87b3657000000820201607f60020a848302049150710541cde48bc0254bed49a9f8700000000000820201607f60020a848302049150710cae1fad2cdd4d4cb8d73abca0d19a400000820201607f60020a848302049150711edb2aa2f760d15c41ceedba956400000000820201607f60020a848302049150714ba8d20d2dabd386c9529659841a2e200000820201607f60020a84830204915071bac08546b867cdaa20000000000000000000820201607f60020a8483020491507201cfa8e70c03625b9db76c8ebf5bbf24820000820201607f60020a8483020491507204851d99f82060df265f3309b26f8200000000820201607f60020a848302049150720b550d19b129d270c44f6f55f027723cbb0000820201607f60020a848302049150721c877dadc761dc272deb65d4b0000000000000820201607f60020a8483020491507248178ece97479f33a77f2ad22a81b64406c000820201607f60020a84830204915072b6ca8268b9d810fedf6695ef2f8a6c00000000820201607f60020a8483020491507301d0e76631a5b05d007b8cb72a7c7f11ec36e000820201607f60020a8483020491507304a1c37bd9f85fd9c6c780000000000000000000820201607f60020a848302049150730bd8369f1b702bf491e2ebfcee08250313b65400820201607f60020a848302049150731e5c7c32a9f6c70ab2cb59d9225764d400000000820201607f60020a848302049150734dff5820e165e910f95120a708e742496221e600820201607f60020a84830204915073c8c8f66db1fced378ee50e536000000000000000820201607f60020a848302049150740205db8dffff45bfa2938f128f599dbf16eb11d880820201607f60020a84830204915074053a044ebd984351493e1786af38d39a0800000000820201607f60020a848302049150740d86dae2a4cc0f47633a544479735869b487b59c40820201607f60020a84830204915074231000000000000000000000000000000000000000820201607f60020a848302049150745b0485a76f6646c2039db1507cdd51b08649680822820201607f60020a84830204915074ec983c46c49545bc17efa6b5b0055e242200000000820201607f60020a846fde1bc4d19efcac82445da75b0000000083040101949350505050565b600081607f60020a8181036fde1bc4d19efcac82445da75b00000000029082800204915070014d29a73a6e7b02c3668c7b0880000000820201607f60020a8483020491507002504a0cd9a7f7215b60f9be480000000082029003607f60020a848302049150700484d0a1191c0ead267967c7a4a0000000820201607f60020a84830204915070095ec580d7e8427a4baf26a90a0000000082029003607f60020a848302049150701440b0be1615a47dba6e5b3b1f10000000820201607f60020a848302049150702d207601f46a99b411241840000000000082029003607f60020a8483020491507066ebaac4c37c622dd8288a7eb1b2000000820201607f60020a84830204915070ef17240135f7dbd43a1ba10cf20000000082029003607f60020a848302049150710233c33c676a5eb2416094a87b3657000000820201607f60020a848302049150710541cde48bc0254bed49a9f870000000000082029003607f60020a848302049150710cae1fad2cdd4d4cb8d73abca0d19a400000820201607f60020a848302049150711edb2aa2f760d15c41ceedba95640000000082029003607f60020a848302049150714ba8d20d2dabd386c9529659841a2e200000820201607f60020a84830204915071bac08546b867cdaa2000000000000000000082029003607f60020a8483020491507201cfa8e70c03625b9db76c8ebf5bbf24820000820201607f60020a8483020491507204851d99f82060df265f3309b26f820000000082029003607f60020a848302049150720b550d19b129d270c44f6f55f027723cbb0000820201607f60020a848302049150721c877dadc761dc272deb65d4b000000000000082029003607f60020a8483020491507248178ece97479f33a77f2ad22a81b64406c000820201607f60020a84830204915072b6ca8268b9d810fedf6695ef2f8a6c0000000082029003607f60020a8483020491507301d0e76631a5b05d007b8cb72a7c7f11ec36e000820201607f60020a8483020491507304a1c37bd9f85fd9c6c78000000000000000000082029003607f60020a848302049150730bd8369f1b702bf491e2ebfcee08250313b65400820201607f60020a848302049150731e5c7c32a9f6c70ab2cb59d9225764d40000000082029003607f60020a848302049150734dff5820e165e910f95120a708e742496221e600820201607f60020a84830204915073c8c8f66db1fced378ee50e53600000000000000082029003607f60020a848302049150740205db8dffff45bfa2938f128f599dbf16eb11d880820201607f60020a84830204915074053a044ebd984351493e1786af38d39a080000000082029003607f60020a848302049150740d86dae2a4cc0f47633a544479735869b487b59c40820201607f60020a8483020491507423100000000000000000000000000000000000000082029003607f60020a848302049150745b0485a76f6646c2039db1507cdd51b08649680822820201607f60020a84830204915074ec983c46c49545bc17efa6b5b0055e242200000000820290036fde1bc4d19efcac82445da75b00000000815b04949350505050565b60006f2f16ac6c59de6f8d5d6f63c1482a7c861982016f03060c183060c183060c183060c18306808204908181029060018301028480608085818110613d3357fe5b01549150608060018601818110613d4657fe5b01546f03060c183060c183060c183060c183069487030295909203029390930104949350505050565b600080600070015bf0a8b1457695355fb8ac404e7a79e38410613d9a57613d9584612821565b613da3565b613da384612409565b915070015bf0a8b1457695355fb8ac404e7a79e38210613dcb57613dc682612821565b613dd4565b613dd482612409565b905083607f60020a83607f60020a8402811515613ded57fe5b048385030102811515613ce857fe5b60006002820482038284811515613e0f57fe5b06811515613e1957fe5b048284811515613e2557fe5b0401939250505056004552525f494e56414c49445f535550504c5900000000000000000000000000004552525f494e56414c49445f524553455256455f42414c414e43450000000000a165627a7a723058203aa61a409e729a09805c2713f062e39bb7a14053960c848bb2d7636183d573a70029", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x106 JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x1DA6BBFB DUP2 EQ PUSH2 0x10B JUMPI DUP1 PUSH4 0x29A00E7C EQ PUSH2 0x144 JUMPI DUP1 PUSH4 0x2F55BDB5 EQ PUSH2 0x16B JUMPI DUP1 PUSH4 0x35B49AF4 EQ PUSH2 0x192 JUMPI DUP1 PUSH4 0x48D73FED EQ PUSH2 0x144 JUMPI DUP1 PUSH4 0x49F9B0F7 EQ PUSH2 0x1B9 JUMPI DUP1 PUSH4 0x54FD4D50 EQ PUSH2 0x1E0 JUMPI DUP1 PUSH4 0x65098BB3 EQ PUSH2 0x20C JUMPI DUP1 PUSH4 0x76CF0B56 EQ PUSH2 0x23A JUMPI DUP1 PUSH4 0x79C1B450 EQ PUSH2 0x20C JUMPI DUP1 PUSH4 0x8074590A EQ PUSH2 0x261 JUMPI DUP1 PUSH4 0x94491FAB EQ PUSH2 0x288 JUMPI DUP1 PUSH4 0x9D114108 EQ PUSH2 0x20C JUMPI DUP1 PUSH4 0xA11AA1B4 EQ PUSH2 0x2B6 JUMPI DUP1 PUSH4 0xABFD231D EQ PUSH2 0x192 JUMPI DUP1 PUSH4 0xE1C7392A EQ PUSH2 0x2FD JUMPI DUP1 PUSH4 0xEBBB2158 EQ PUSH2 0x314 JUMPI DUP1 PUSH4 0xF3250FE2 EQ PUSH2 0x33B JUMPI DUP1 PUSH4 0xF732F1C9 EQ PUSH2 0x1B9 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x117 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x132 PUSH1 0x4 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH4 0xFFFFFFFF PUSH1 0x44 CALLDATALOAD AND PUSH1 0x64 CALLDATALOAD PUSH2 0x362 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x150 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x132 PUSH1 0x4 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH4 0xFFFFFFFF PUSH1 0x44 CALLDATALOAD AND PUSH1 0x64 CALLDATALOAD PUSH2 0x379 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x177 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x132 PUSH1 0x4 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH4 0xFFFFFFFF PUSH1 0x44 CALLDATALOAD AND PUSH1 0x64 CALLDATALOAD PUSH2 0x387 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x19E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x132 PUSH1 0x4 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH4 0xFFFFFFFF PUSH1 0x44 CALLDATALOAD AND PUSH1 0x64 CALLDATALOAD PUSH2 0x524 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1C5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x132 PUSH1 0x4 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH4 0xFFFFFFFF PUSH1 0x44 CALLDATALOAD AND PUSH1 0x64 CALLDATALOAD PUSH2 0x532 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1EC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1F5 PUSH2 0x540 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0xFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x218 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x132 PUSH1 0x4 CALLDATALOAD PUSH4 0xFFFFFFFF PUSH1 0x24 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x44 CALLDATALOAD SWAP1 PUSH1 0x64 CALLDATALOAD AND PUSH1 0x84 CALLDATALOAD PUSH2 0x545 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x246 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x132 PUSH1 0x4 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH4 0xFFFFFFFF PUSH1 0x44 CALLDATALOAD AND PUSH1 0x64 CALLDATALOAD PUSH2 0x55E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x26D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x132 PUSH1 0x4 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH4 0xFFFFFFFF PUSH1 0x44 CALLDATALOAD AND PUSH1 0x64 CALLDATALOAD PUSH2 0x763 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x294 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x132 PUSH1 0x4 CALLDATALOAD PUSH4 0xFFFFFFFF PUSH1 0x24 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x44 CALLDATALOAD SWAP1 PUSH1 0x64 CALLDATALOAD AND PUSH1 0x84 CALLDATALOAD PUSH2 0x904 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2C2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2DA PUSH1 0x4 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH1 0x44 CALLDATALOAD PUSH1 0x64 CALLDATALOAD PUSH1 0x84 CALLDATALOAD PUSH2 0xAA0 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH4 0xFFFFFFFF SWAP4 DUP5 AND DUP2 MSTORE SWAP2 SWAP1 SWAP3 AND PUSH1 0x20 DUP3 ADD MSTORE DUP2 MLOAD SWAP1 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x309 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x312 PUSH2 0xC40 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x320 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x132 PUSH1 0x4 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH4 0xFFFFFFFF PUSH1 0x44 CALLDATALOAD AND PUSH1 0x64 CALLDATALOAD PUSH2 0xC52 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x347 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x132 PUSH1 0x4 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH4 0xFFFFFFFF PUSH1 0x44 CALLDATALOAD AND PUSH1 0x64 CALLDATALOAD PUSH2 0xDF9 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x370 DUP6 DUP6 DUP6 DUP6 PUSH2 0xC52 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x370 DUP6 DUP6 DUP6 DUP6 PUSH2 0xDF9 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP1 DUP1 DUP1 DUP10 GT PUSH2 0x3D2 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3E2F DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP9 GT PUSH2 0x418 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3E4F DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP8 PUSH4 0xFFFFFFFF AND GT DUP1 ISZERO PUSH2 0x437 JUMPI POP PUSH3 0x1E8480 PUSH4 0xFFFFFFFF DUP9 AND GT ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x48D JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F524154494F00000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP6 ISZERO ISZERO PUSH2 0x49D JUMPI PUSH1 0x0 SWAP5 POP PUSH2 0x518 JUMP JUMPDEST PUSH4 0xFFFFFFFF DUP8 AND PUSH3 0xF4240 EQ ISZERO PUSH2 0x4D0 JUMPI DUP8 PUSH2 0x4BF DUP8 DUP12 PUSH4 0xFFFFFFFF PUSH2 0xF41 AND JUMP JUMPDEST DUP2 ISZERO ISZERO PUSH2 0x4C8 JUMPI INVALID JUMPDEST DIV SWAP5 POP PUSH2 0x518 JUMP JUMPDEST PUSH2 0x4E0 DUP9 DUP8 PUSH4 0xFFFFFFFF PUSH2 0xFC5 AND JUMP JUMPDEST SWAP2 POP PUSH2 0x4F1 DUP3 DUP10 DUP10 PUSH3 0xF4240 PUSH2 0x1022 JUMP JUMPDEST SWAP1 SWAP5 POP SWAP3 POP PUSH1 0xFF DUP4 AND PUSH2 0x50A DUP11 DUP7 PUSH4 0xFFFFFFFF PUSH2 0xF41 AND JUMP JUMPDEST SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP1 POP DUP9 DUP2 SUB SWAP5 POP JUMPDEST POP POP POP POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x370 DUP6 DUP6 DUP6 DUP6 PUSH2 0x763 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x370 DUP6 DUP6 DUP6 DUP6 PUSH2 0x55E JUMP JUMPDEST PUSH1 0x8 DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x554 DUP7 DUP7 DUP7 DUP7 DUP7 PUSH2 0x904 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP1 DUP1 DUP1 DUP1 DUP11 GT PUSH2 0x5AA JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3E2F DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP10 GT PUSH2 0x5F0 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3E4F DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP9 PUSH4 0xFFFFFFFF AND GT DUP1 ISZERO PUSH2 0x60F JUMPI POP PUSH3 0xF4240 PUSH4 0xFFFFFFFF DUP10 AND GT ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x665 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F574549474854000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP10 DUP8 GT ISZERO PUSH2 0x6BD JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F414D4F554E540000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP7 ISZERO ISZERO PUSH2 0x6CD JUMPI PUSH1 0x0 SWAP6 POP PUSH2 0x756 JUMP JUMPDEST DUP10 DUP8 EQ ISZERO PUSH2 0x6DD JUMPI DUP9 SWAP6 POP PUSH2 0x756 JUMP JUMPDEST PUSH4 0xFFFFFFFF DUP9 AND PUSH3 0xF4240 EQ ISZERO PUSH2 0x710 JUMPI DUP10 PUSH2 0x6FF DUP11 DUP10 PUSH4 0xFFFFFFFF PUSH2 0xF41 AND JUMP JUMPDEST DUP2 ISZERO ISZERO PUSH2 0x708 JUMPI INVALID JUMPDEST DIV SWAP6 POP PUSH2 0x756 JUMP JUMPDEST DUP7 DUP11 SUB SWAP3 POP PUSH2 0x724 DUP11 DUP5 PUSH3 0xF4240 DUP12 PUSH2 0x1022 JUMP JUMPDEST SWAP1 SWAP6 POP SWAP4 POP PUSH2 0x739 DUP10 DUP7 PUSH4 0xFFFFFFFF PUSH2 0xF41 AND JUMP JUMPDEST SWAP2 POP POP PUSH1 0xFF DUP4 AND PUSH1 0x2 EXP DUP9 MUL DUP5 DUP2 DUP4 SUB DUP2 ISZERO ISZERO PUSH2 0x752 JUMPI INVALID JUMPDEST DIV SWAP6 POP JUMPDEST POP POP POP POP POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP1 DUP1 DUP1 DUP1 DUP11 GT PUSH2 0x7AF JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3E2F DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP10 GT PUSH2 0x7F5 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3E4F DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP9 PUSH4 0xFFFFFFFF AND GT DUP1 ISZERO PUSH2 0x814 JUMPI POP PUSH3 0x1E8480 PUSH4 0xFFFFFFFF DUP10 AND GT ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x86A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F524154494F00000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP10 DUP8 GT ISZERO PUSH2 0x8C2 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F414D4F554E540000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP7 ISZERO ISZERO PUSH2 0x8D2 JUMPI PUSH1 0x0 SWAP6 POP PUSH2 0x756 JUMP JUMPDEST DUP10 DUP8 EQ ISZERO PUSH2 0x8E2 JUMPI DUP9 SWAP6 POP PUSH2 0x756 JUMP JUMPDEST PUSH4 0xFFFFFFFF DUP9 AND PUSH3 0xF4240 EQ ISZERO PUSH2 0x710 JUMPI DUP10 PUSH2 0x6FF DUP9 DUP12 PUSH4 0xFFFFFFFF PUSH2 0xF41 AND JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP12 GT DUP1 ISZERO PUSH2 0x91D JUMPI POP PUSH1 0x0 DUP10 GT JUMPDEST ISZERO ISZERO PUSH2 0x961 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3E4F DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP11 PUSH4 0xFFFFFFFF AND GT DUP1 ISZERO PUSH2 0x980 JUMPI POP PUSH3 0xF4240 PUSH4 0xFFFFFFFF DUP12 AND GT ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x992 JUMPI POP PUSH1 0x0 DUP9 PUSH4 0xFFFFFFFF AND GT JUMPDEST DUP1 ISZERO PUSH2 0x9A7 JUMPI POP PUSH3 0xF4240 PUSH4 0xFFFFFFFF DUP10 AND GT ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x9FD JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F574549474854000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP8 PUSH4 0xFFFFFFFF AND DUP11 PUSH4 0xFFFFFFFF AND EQ ISZERO PUSH2 0xA42 JUMPI PUSH2 0xA21 DUP12 DUP9 PUSH4 0xFFFFFFFF PUSH2 0xFC5 AND JUMP JUMPDEST PUSH2 0xA31 DUP11 DUP10 PUSH4 0xFFFFFFFF PUSH2 0xF41 AND JUMP JUMPDEST DUP2 ISZERO ISZERO PUSH2 0xA3A JUMPI INVALID JUMPDEST DIV SWAP6 POP PUSH2 0xA92 JUMP JUMPDEST PUSH2 0xA52 DUP12 DUP9 PUSH4 0xFFFFFFFF PUSH2 0xFC5 AND JUMP JUMPDEST SWAP3 POP PUSH2 0xA60 DUP4 DUP13 DUP13 DUP12 PUSH2 0x1022 JUMP JUMPDEST SWAP1 SWAP6 POP SWAP4 POP PUSH2 0xA75 DUP10 DUP7 PUSH4 0xFFFFFFFF PUSH2 0xF41 AND JUMP JUMPDEST SWAP2 POP POP PUSH1 0xFF DUP4 AND PUSH1 0x2 EXP DUP9 MUL DUP5 DUP2 DUP4 SUB DUP2 ISZERO ISZERO PUSH2 0xA8E JUMPI INVALID JUMPDEST DIV SWAP6 POP JUMPDEST POP POP POP POP POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 DUP8 DUP10 EQ ISZERO PUSH2 0xB06 JUMPI PUSH1 0x0 DUP10 GT DUP1 PUSH2 0xABD JUMPI POP PUSH1 0x0 DUP8 GT JUMPDEST ISZERO ISZERO PUSH2 0xB01 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3E4F DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0xB66 JUMP JUMPDEST PUSH1 0x0 DUP10 GT DUP1 ISZERO PUSH2 0xB16 JUMPI POP PUSH1 0x0 DUP9 GT JUMPDEST DUP1 ISZERO PUSH2 0xB22 JUMPI POP PUSH1 0x0 DUP8 GT JUMPDEST ISZERO ISZERO PUSH2 0xB66 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3E4F DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP7 GT DUP1 ISZERO PUSH2 0xB76 JUMPI POP PUSH1 0x0 DUP6 GT JUMPDEST ISZERO ISZERO PUSH2 0xBCC JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F524154450000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0xBDC DUP10 DUP8 PUSH4 0xFFFFFFFF PUSH2 0xF41 AND JUMP JUMPDEST SWAP2 POP PUSH2 0xBEE DUP8 DUP7 PUSH4 0xFFFFFFFF PUSH2 0xF41 AND JUMP JUMPDEST SWAP1 POP DUP8 DUP10 LT ISZERO PUSH2 0xC0F JUMPI PUSH2 0xC06 DUP9 DUP11 DUP5 DUP5 PUSH1 0x1 PUSH2 0x110C JUMP JUMPDEST SWAP4 POP SWAP4 POP PUSH2 0xC34 JUMP JUMPDEST DUP8 DUP10 GT ISZERO PUSH2 0xC25 JUMPI PUSH2 0xC06 DUP10 DUP10 DUP5 DUP5 PUSH1 0x0 PUSH2 0x110C JUMP JUMPDEST PUSH2 0xC2F DUP3 DUP3 PUSH2 0x11EF JUMP JUMPDEST SWAP4 POP SWAP4 POP JUMPDEST POP POP SWAP6 POP SWAP6 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0xC48 PUSH2 0x122C JUMP JUMPDEST PUSH2 0xC50 PUSH2 0x1A02 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP1 DUP1 DUP1 DUP10 GT PUSH2 0xC9D JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3E2F DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP9 GT PUSH2 0xCE3 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3E4F DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP8 PUSH4 0xFFFFFFFF AND GT DUP1 ISZERO PUSH2 0xD02 JUMPI POP PUSH3 0x1E8480 PUSH4 0xFFFFFFFF DUP9 AND GT ISZERO JUMPDEST ISZERO ISZERO PUSH2 0xD58 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F524154494F00000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP6 ISZERO ISZERO PUSH2 0xD68 JUMPI PUSH1 0x0 SWAP5 POP PUSH2 0x518 JUMP JUMPDEST PUSH4 0xFFFFFFFF DUP8 AND PUSH3 0xF4240 EQ ISZERO PUSH2 0xDA1 JUMPI DUP9 PUSH1 0x1 PUSH2 0xD8C DUP9 DUP12 PUSH4 0xFFFFFFFF PUSH2 0xF41 AND JUMP JUMPDEST SUB DUP2 ISZERO ISZERO PUSH2 0xD96 JUMPI INVALID JUMPDEST DIV PUSH1 0x1 ADD SWAP5 POP PUSH2 0x518 JUMP JUMPDEST PUSH2 0xDB1 DUP10 DUP8 PUSH4 0xFFFFFFFF PUSH2 0xFC5 AND JUMP JUMPDEST SWAP2 POP PUSH2 0xDC2 DUP3 DUP11 PUSH3 0xF4240 DUP11 PUSH2 0x1022 JUMP JUMPDEST SWAP1 SWAP5 POP SWAP3 POP PUSH1 0xFF DUP4 AND PUSH1 0x1 PUSH2 0xDDD DUP11 DUP8 PUSH4 0xFFFFFFFF PUSH2 0xF41 AND JUMP JUMPDEST PUSH1 0x2 SWAP3 SWAP1 SWAP3 EXP SWAP2 SUB DIV SWAP8 SWAP1 SWAP8 SUB PUSH1 0x1 ADD SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP1 DUP1 DUP1 DUP10 GT PUSH2 0xE44 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3E2F DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP9 GT PUSH2 0xE8A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3E4F DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP8 PUSH4 0xFFFFFFFF AND GT DUP1 ISZERO PUSH2 0xEA9 JUMPI POP PUSH3 0xF4240 PUSH4 0xFFFFFFFF DUP9 AND GT ISZERO JUMPDEST ISZERO ISZERO PUSH2 0xEFF JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F574549474854000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP6 ISZERO ISZERO PUSH2 0xF0F JUMPI PUSH1 0x0 SWAP5 POP PUSH2 0x518 JUMP JUMPDEST PUSH4 0xFFFFFFFF DUP8 AND PUSH3 0xF4240 EQ ISZERO PUSH2 0xF31 JUMPI DUP8 PUSH2 0x4BF DUP11 DUP9 PUSH4 0xFFFFFFFF PUSH2 0xF41 AND JUMP JUMPDEST PUSH2 0x4E0 DUP7 DUP10 PUSH4 0xFFFFFFFF PUSH2 0xFC5 AND JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 ISZERO ISZERO PUSH2 0xF54 JUMPI PUSH1 0x0 SWAP2 POP PUSH2 0xFBE JUMP JUMPDEST POP DUP3 DUP3 MUL DUP3 DUP5 DUP3 DUP2 ISZERO ISZERO PUSH2 0xF64 JUMPI INVALID JUMPDEST DIV EQ PUSH2 0xFBA JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP1 SWAP2 POP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 ADD DUP4 DUP2 LT ISZERO PUSH2 0xFBA JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP1 DUP1 DUP1 PUSH17 0x200000000000000000000000000000000 DUP11 LT PUSH2 0x1046 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP9 PUSH1 0x7F PUSH1 0x2 EXP DUP12 MUL DUP2 ISZERO ISZERO PUSH2 0x1057 JUMPI INVALID JUMPDEST DIV SWAP3 POP PUSH17 0x15BF0A8B1457695355FB8AC404E7A79E3 DUP4 LT ISZERO PUSH2 0x1083 JUMPI PUSH2 0x107C DUP4 PUSH2 0x2409 JUMP JUMPDEST SWAP4 POP PUSH2 0x108F JUMP JUMPDEST PUSH2 0x108C DUP4 PUSH2 0x2821 JUMP JUMPDEST SWAP4 POP JUMPDEST DUP7 PUSH4 0xFFFFFFFF AND DUP9 PUSH4 0xFFFFFFFF AND DUP6 MUL DUP2 ISZERO ISZERO PUSH2 0x10A8 JUMPI INVALID JUMPDEST DIV SWAP2 POP PUSH17 0x800000000000000000000000000000000 DUP3 LT ISZERO PUSH2 0x10D8 JUMPI PUSH2 0x10CD DUP3 PUSH2 0x28DB JUMP JUMPDEST PUSH1 0x7F SWAP6 POP SWAP6 POP PUSH2 0x10FF JUMP JUMPDEST PUSH2 0x10E1 DUP3 PUSH2 0x2CDB JUMP JUMPDEST SWAP1 POP PUSH2 0x10F9 PUSH1 0xFF PUSH1 0x7F DUP4 SWAP1 SUB AND PUSH1 0x2 EXP DUP4 DIV DUP3 PUSH2 0x2D68 JUMP JUMPDEST DUP2 SWAP6 POP SWAP6 POP JUMPDEST POP POP POP POP SWAP5 POP SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x111F DUP10 DUP10 PUSH2 0x318B JUMP JUMPDEST SWAP1 SWAP10 POP SWAP8 POP DUP10 PUSH2 0x1139 DUP13 PUSH1 0x7F PUSH1 0x2 EXP PUSH4 0xFFFFFFFF PUSH2 0xF41 AND JUMP JUMPDEST DUP2 ISZERO ISZERO PUSH2 0x1142 JUMPI INVALID JUMPDEST DIV SWAP4 POP PUSH17 0x15BF0A8B1457695355FB8AC404E7A79E3 DUP5 LT PUSH2 0x116B JUMPI PUSH2 0x1166 DUP5 PUSH2 0x2821 JUMP JUMPDEST PUSH2 0x1174 JUMP JUMPDEST PUSH2 0x1174 DUP5 PUSH2 0x2409 JUMP JUMPDEST SWAP3 POP DUP8 PUSH2 0x1187 DUP5 DUP12 PUSH4 0xFFFFFFFF PUSH2 0xF41 AND JUMP JUMPDEST DUP2 ISZERO ISZERO PUSH2 0x1190 JUMPI INVALID JUMPDEST DIV SWAP2 POP DUP7 PUSH2 0x11A6 JUMPI PUSH2 0x11A1 DUP3 PUSH2 0x3247 JUMP JUMPDEST PUSH2 0x11AF JUMP JUMPDEST PUSH2 0x11AF DUP3 PUSH2 0x32A4 JUMP JUMPDEST SWAP1 POP PUSH2 0x11DD PUSH2 0x11C4 DUP3 DUP12 PUSH4 0xFFFFFFFF PUSH2 0xF41 AND JUMP JUMPDEST PUSH2 0x11D8 DUP11 PUSH1 0x7F PUSH1 0x2 EXP PUSH4 0xFFFFFFFF PUSH2 0xF41 AND JUMP JUMPDEST PUSH2 0x11EF JUMP JUMPDEST SWAP6 POP SWAP6 POP POP POP POP POP SWAP6 POP SWAP6 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP1 DUP5 DUP7 GT PUSH2 0x120E JUMPI PUSH2 0x1205 DUP7 DUP7 PUSH2 0x3308 JUMP JUMPDEST SWAP4 POP SWAP4 POP PUSH2 0x1223 JUMP JUMPDEST PUSH2 0x1218 DUP6 DUP8 PUSH2 0x3308 JUMP JUMPDEST SWAP2 POP SWAP2 POP DUP1 DUP3 SWAP4 POP SWAP4 POP JUMPDEST POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH17 0x1C35FEDD14FFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x20 SSTORE PUSH17 0x1B0CE43B323FFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x21 SSTORE PUSH17 0x19F0028EC1FFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x22 SSTORE PUSH17 0x18DED91F0E7FFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x23 SSTORE PUSH17 0x17D8EC7F0417FFFFFFFFFFFFFFFFFFFFFF PUSH1 0x24 SSTORE PUSH17 0x16DDC6556CDBFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x25 SSTORE PUSH17 0x15ECF52776A1FFFFFFFFFFFFFFFFFFFFFF PUSH1 0x26 SSTORE PUSH17 0x15060C256CB2FFFFFFFFFFFFFFFFFFFFFF PUSH1 0x27 SSTORE PUSH17 0x1428A2F98D72FFFFFFFFFFFFFFFFFFFFFF PUSH1 0x28 SSTORE PUSH17 0x13545598E5C23FFFFFFFFFFFFFFFFFFFFF PUSH1 0x29 SSTORE PUSH17 0x1288C4161CE1DFFFFFFFFFFFFFFFFFFFFF PUSH1 0x2A SSTORE PUSH17 0x11C592761C666FFFFFFFFFFFFFFFFFFFFF PUSH1 0x2B SSTORE PUSH17 0x110A688680A757FFFFFFFFFFFFFFFFFFFF PUSH1 0x2C SSTORE PUSH17 0x1056F1B5BEDF77FFFFFFFFFFFFFFFFFFFF PUSH1 0x2D SSTORE PUSH17 0xFAADCECEEFF8BFFFFFFFFFFFFFFFFFFFF PUSH1 0x2E SSTORE PUSH17 0xF05DC6B27EDADFFFFFFFFFFFFFFFFFFFF PUSH1 0x2F SSTORE PUSH17 0xE67A5A25DA4107FFFFFFFFFFFFFFFFFFF PUSH1 0x30 SSTORE PUSH17 0xDCFF115B14EEDFFFFFFFFFFFFFFFFFFFF PUSH1 0x31 SSTORE PUSH17 0xD3E7A392431239FFFFFFFFFFFFFFFFFFF PUSH1 0x32 SSTORE PUSH17 0xCB2FF529EB71E4FFFFFFFFFFFFFFFFFFF PUSH1 0x33 SSTORE PUSH17 0xC2D415C3DB974AFFFFFFFFFFFFFFFFFFF PUSH1 0x34 SSTORE PUSH17 0xBAD03E7D883F69BFFFFFFFFFFFFFFFFFF PUSH1 0x35 SSTORE PUSH17 0xB320D03B2C343D5FFFFFFFFFFFFFFFFFF PUSH1 0x36 SSTORE PUSH17 0xABC25204E02828DFFFFFFFFFFFFFFFFFF PUSH1 0x37 SSTORE PUSH17 0xA4B16F74EE4BB207FFFFFFFFFFFFFFFFF PUSH1 0x38 SSTORE PUSH17 0x9DEAF736AC1F569FFFFFFFFFFFFFFFFFF PUSH1 0x39 SSTORE PUSH17 0x976BD9952C7AA957FFFFFFFFFFFFFFFFF PUSH1 0x3A SSTORE PUSH17 0x9131271922EAA606FFFFFFFFFFFFFFFFF PUSH1 0x3B SSTORE PUSH17 0x8B380F3558668C46FFFFFFFFFFFFFFFFF PUSH1 0x3C SSTORE PUSH17 0x857DDF0117EFA215BFFFFFFFFFFFFFFFF PUSH1 0x3D SSTORE PUSH17 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x3E SSTORE PUSH17 0x7ABBF6F6ABB9D087FFFFFFFFFFFFFFFFF PUSH1 0x3F SSTORE PUSH17 0x75AF62CBAC95F7DFA7FFFFFFFFFFFFFFF PUSH1 0x40 SSTORE PUSH17 0x70D7FB7452E187AC13FFFFFFFFFFFFFFF PUSH1 0x41 SSTORE PUSH17 0x6C3390ECC8AF379295FFFFFFFFFFFFFFF PUSH1 0x42 SSTORE PUSH17 0x67C00A3B07FFC01FD6FFFFFFFFFFFFFFF PUSH1 0x43 SSTORE PUSH17 0x637B647C39CBB9D3D27FFFFFFFFFFFFFF PUSH1 0x44 SSTORE PUSH17 0x5F63B1FC104DBD39587FFFFFFFFFFFFFF PUSH1 0x45 SSTORE PUSH17 0x5B771955B36E12F7235FFFFFFFFFFFFFF PUSH1 0x46 SSTORE PUSH17 0x57B3D49DDA84556D6F6FFFFFFFFFFFFFF PUSH1 0x47 SSTORE PUSH17 0x54183095B2C8ECECF30FFFFFFFFFFFFFF PUSH1 0x48 SSTORE PUSH17 0x50A28BE635CA2B888F77FFFFFFFFFFFFF PUSH1 0x49 SSTORE PUSH17 0x4D5156639708C9DB33C3FFFFFFFFFFFFF PUSH1 0x4A SSTORE PUSH17 0x4A23105873875BD52DFDFFFFFFFFFFFFF PUSH1 0x4B SSTORE PUSH17 0x471649D87199AA990756FFFFFFFFFFFFF PUSH1 0x4C SSTORE PUSH17 0x4429A21A029D4C1457CFBFFFFFFFFFFFF PUSH1 0x4D SSTORE PUSH17 0x415BC6D6FB7DD71AF2CB3FFFFFFFFFFFF PUSH1 0x4E SSTORE PUSH17 0x3EAB73B3BBFE282243CE1FFFFFFFFFFFF PUSH1 0x4F SSTORE PUSH17 0x3C1771AC9FB6B4C18E229FFFFFFFFFFFF PUSH1 0x50 SSTORE PUSH17 0x399E96897690418F785257FFFFFFFFFFF PUSH1 0x51 SSTORE PUSH17 0x373FC456C53BB779BF0EA9FFFFFFFFFFF PUSH1 0x52 SSTORE PUSH17 0x34F9E8E490C48E67E6AB8BFFFFFFFFFFF PUSH1 0x53 SSTORE PUSH17 0x32CBFD4A7ADC790560B3337FFFFFFFFFF PUSH1 0x54 SSTORE PUSH17 0x30B50570F6E5D2ACCA94613FFFFFFFFFF PUSH1 0x55 SSTORE PUSH17 0x2EB40F9F620FDA6B56C2861FFFFFFFFFF PUSH1 0x56 SSTORE PUSH17 0x2CC8340ECB0D0F520A6AF58FFFFFFFFFF PUSH1 0x57 SSTORE PUSH17 0x2AF09481380A0A35CF1BA02FFFFFFFFFF PUSH1 0x58 SSTORE PUSH17 0x292C5BDD3B92EC810287B1B3FFFFFFFFF PUSH1 0x59 SSTORE PUSH17 0x277ABDCDAB07D5A77AC6D6B9FFFFFFFFF PUSH1 0x5A SSTORE PUSH17 0x25DAF6654B1EAA55FD64DF5EFFFFFFFFF PUSH1 0x5B SSTORE PUSH17 0x244C49C648BAA98192DCE88B7FFFFFFFF PUSH1 0x5C SSTORE PUSH17 0x22CE03CD5619A311B2471268BFFFFFFFF PUSH1 0x5D SSTORE PUSH17 0x215F77C045FBE885654A44A0FFFFFFFFF PUSH1 0x5E SSTORE PUSH17 0x1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x5F SSTORE PUSH17 0x1EAEFDBDAAEE7421FC4D3EDE5FFFFFFFF PUSH1 0x60 SSTORE PUSH17 0x1D6BD8B2EB257DF7E8CA57B09BFFFFFFF PUSH1 0x61 SSTORE PUSH17 0x1C35FEDD14B861EB0443F7F133FFFFFFF PUSH1 0x62 SSTORE PUSH17 0x1B0CE43B322BCDE4A56E8ADA5AFFFFFFF PUSH1 0x63 SSTORE PUSH17 0x19F0028EC1FFF007F5A195A39DFFFFFFF PUSH1 0x64 SSTORE PUSH17 0x18DED91F0E72EE74F49B15BA527FFFFFF PUSH1 0x65 SSTORE PUSH17 0x17D8EC7F04136F4E5615FD41A63FFFFFF PUSH1 0x66 SSTORE PUSH17 0x16DDC6556CDB84BDC8D12D22E6FFFFFFF PUSH1 0x67 SSTORE PUSH17 0x15ECF52776A1155B5BD8395814F7FFFFF PUSH1 0x68 SSTORE PUSH17 0x15060C256CB23B3B3CC3754CF40FFFFFF PUSH1 0x69 SSTORE PUSH17 0x1428A2F98D728AE223DDAB715BE3FFFFF PUSH1 0x6A SSTORE PUSH17 0x13545598E5C23276CCF0EDE68034FFFFF PUSH1 0x6B SSTORE PUSH17 0x1288C4161CE1D6F54B7F61081194FFFFF PUSH1 0x6C SSTORE PUSH17 0x11C592761C666AA641D5A01A40F17FFFF PUSH1 0x6D SSTORE PUSH17 0x110A688680A7530515F3E6E6CFDCDFFFF PUSH1 0x6E SSTORE PUSH17 0x1056F1B5BEDF75C6BCB2CE8AED428FFFF PUSH1 0x6F SSTORE PUSH16 0xFAADCECEEFF8A0890F3875F008277FFF PUSH1 0x70 SSTORE PUSH16 0xF05DC6B27EDAD306388A600F6BA0BFFF PUSH1 0x71 SSTORE PUSH16 0xE67A5A25DA41063DE1495D5B18CDBFFF PUSH1 0x72 SSTORE PUSH16 0xDCFF115B14EEDDE6FC3AA5353F2E4FFF PUSH1 0x73 SSTORE PUSH16 0xD3E7A3924312399F9AAE2E0F868F8FFF PUSH1 0x74 SSTORE PUSH16 0xCB2FF529EB71E41582CCCD5A1EE26FFF PUSH1 0x75 SSTORE PUSH16 0xC2D415C3DB974AB32A51840C0B67EDFF PUSH1 0x76 SSTORE PUSH16 0xBAD03E7D883F69AD5B0A186184E06BFF PUSH1 0x77 SSTORE PUSH16 0xB320D03B2C343D4829ABD6075F0CC5FF PUSH1 0x78 SSTORE PUSH16 0xABC25204E02828D73C6E80BCDB1A95BF PUSH1 0x79 SSTORE PUSH16 0xA4B16F74EE4BB2040A1EC6C15FBBF2DF PUSH1 0x7A SSTORE PUSH16 0x9DEAF736AC1F569DEB1B5AE3F36C130F PUSH1 0x7B SSTORE PUSH16 0x976BD9952C7AA957F5937D790EF65037 PUSH1 0x7C SSTORE PUSH16 0x9131271922EAA6064B73A22D0BD4F2BF PUSH1 0x7D SSTORE PUSH16 0x8B380F3558668C46C91C49A2F8E967B9 PUSH1 0x7E SSTORE PUSH16 0x857DDF0117EFA215952912839F6473E6 PUSH1 0x0 PUSH1 0x7F JUMPDEST ADD SSTORE JUMP JUMPDEST PUSH16 0x60E393C68D20B1BD09DEAABC0373B9C5 PUSH1 0x80 SWAP1 DUP2 SSTORE PUSH16 0x5F8F46E4854120989ED94719FB4C2011 PUSH1 0x81 SSTORE PUSH16 0x5E479EBB9129FB1B7E72A648F992B606 PUSH1 0x82 SSTORE PUSH16 0x5D0BD23FE42DFEDDE2E9586BE12B85FE PUSH1 0x83 SSTORE PUSH16 0x5BDB29DDEE979308DDFCA81AEEB8095A PUSH1 0x84 SSTORE PUSH16 0x5AB4FD8A260D2C7E2C0D2AFCF0009DAD PUSH1 0x85 SSTORE PUSH16 0x5998B31359A55D48724C65CF09001221 PUSH1 0x86 SSTORE PUSH16 0x5885BCAD2B322DFC43E8860F9C018CF5 PUSH1 0x87 SSTORE PUSH16 0x577B97AA1FE222BB452FDF111B1F0BE2 PUSH1 0x88 SSTORE PUSH16 0x5679CB5E3575632E5BAA27E2B949F704 PUSH1 0x89 SSTORE PUSH16 0x557FE8241B3A31C83C732F1CDFF4A1C5 PUSH1 0x8A SSTORE PUSH16 0x548D868026504875D6E59BBE95FC2A6B PUSH1 0x8B SSTORE PUSH16 0x53A2465CE347CF34D05A867C17DD3088 PUSH1 0x8C SSTORE PUSH16 0x52BDCE5DCD4FAED59C7F5511CF8F8ACC PUSH1 0x8D SSTORE PUSH16 0x51DFCB453C07F8DA817606E7885F7C3E PUSH1 0x8E SSTORE PUSH16 0x5107EF6B0A5A2BE8F8FF15590DAA3CCE PUSH1 0x8F SSTORE PUSH16 0x5035F241D6EAE0CD7BACBA119993DE7B PUSH1 0x90 SSTORE PUSH16 0x4F698FE90D5B53D532171E1210164C66 PUSH1 0x91 SSTORE PUSH16 0x4EA288CA297A0E6A09A0EEE240E16C85 PUSH1 0x92 SSTORE PUSH16 0x4DE0A13FDCF5D4213FC398BA6E3BECDE PUSH1 0x93 SSTORE PUSH16 0x4D23A145EEF91FEC06B06140804C4808 PUSH1 0x94 SSTORE PUSH16 0x4C6B5430D4C1EE5526473DB4AE0F11DE PUSH1 0x95 SSTORE PUSH16 0x4BB7886C240562EBA11F4963A53B4240 PUSH1 0x96 SSTORE PUSH16 0x4B080F3F1CB491D2D521E0EA4583521E PUSH1 0x97 SSTORE PUSH16 0x4A5CBC96A05589CB4D86BE1DB3168364 PUSH1 0x98 SSTORE PUSH16 0x49B566D40243517658D78C33162D6ECE PUSH1 0x99 SSTORE PUSH16 0x4911E6A02E5507A30F947383FD9A3276 PUSH1 0x9A SSTORE PUSH16 0x487216C2B31BE4ADC41DB8A8D5CC0C88 PUSH1 0x9B SSTORE PUSH16 0x47D5D3FC4A7A1B188CD3D788B5C5E9FC PUSH1 0x9C SSTORE PUSH16 0x473CFCE4871A2C40BC4F9E1C32B955D0 PUSH1 0x9D SSTORE PUSH16 0x46A771CA578AB878485810E285E31C67 PUSH1 0x9E SSTORE PUSH16 0x4615149718AED4C258C373DC676AA72D PUSH1 0x9F SSTORE PUSH16 0x4585C8B3F8FE489C6E1833CA47871384 PUSH1 0xA0 SSTORE PUSH16 0x44F972F174E41E5EFB7E9D63C29CE735 PUSH1 0xA1 SSTORE PUSH16 0x446FF970BA86D8B00BEB05ECEBF3C4DC PUSH1 0xA2 SSTORE PUSH16 0x43E9438EC88971812D6F198B5CCAAD96 PUSH1 0xA3 SSTORE PUSH16 0x436539D11FF7BEA657AEDDB394E809EF PUSH1 0xA4 SSTORE PUSH16 0x42E3C5D3E5A913401D86F66DB5D81C2C PUSH1 0xA5 SSTORE PUSH16 0x4264D2395303070EA726CBE98DF62174 PUSH1 0xA6 SSTORE PUSH16 0x41E84A9A593BB7194C3A6349ECAE4EEA PUSH1 0xA7 SSTORE PUSH16 0x416E1B785D13EBA07A08F3F18876A5AB PUSH1 0xA8 SSTORE PUSH16 0x40F6322FF389D423BA9DD7E7E7B7E809 PUSH1 0xA9 SSTORE PUSH16 0x40807CEC8A466880ECF4184545D240A4 PUSH1 0xAA SSTORE PUSH16 0x400CEA9CE88A8D3AE668E8EA0D9BF07F PUSH1 0xAB SSTORE PUSH16 0x3F9B6AE8772D4C55091E0ED7DFEA0AC1 PUSH1 0xAC SSTORE PUSH16 0x3F2BEE253FD84594F54BCAAFAC383A13 PUSH1 0xAD SSTORE PUSH16 0x3EBE654E95208BB9210C575C081C5958 PUSH1 0xAE SSTORE PUSH16 0x3E52C1FC5665635B78CE1F05AD53C086 PUSH1 0xAF SSTORE PUSH16 0x3DE8F65AC388101DDF718A6F5C1EFF65 PUSH1 0xB0 SSTORE PUSH16 0x3D80F522D59BD0B328CA012DF4CD2D49 PUSH1 0xB1 SSTORE PUSH16 0x3D1AB193129EA72B23648A161163A85A PUSH1 0xB2 SSTORE PUSH16 0x3CB61F68D32576C135B95CFB53F76D75 PUSH1 0xB3 SSTORE PUSH16 0x3C5332D9F1AAE851A3619E77E4CC8473 PUSH1 0xB4 SSTORE PUSH16 0x3BF1E08EDBE2AA109E1525F65759EF73 PUSH1 0xB5 SSTORE PUSH16 0x3B921D9CFF13FA2C197746A3DFC4918F PUSH1 0xB6 SSTORE PUSH16 0x3B33DF818910BFC1A5AEFB8F63AE2AC4 PUSH1 0xB7 SSTORE PUSH16 0x3AD71C1C77E34FA32A9F184967ECCBF6 PUSH1 0xB8 SSTORE PUSH16 0x3A7BC9ABF2C5BB53E2F7384A8A16521A PUSH1 0xB9 SSTORE PUSH16 0x3A21DEC7E76369783A68A0C6385A1C57 PUSH1 0xBA SSTORE PUSH16 0x39C9525DE6C9CDF7C1C157CA4A7A6EE3 PUSH1 0xBB SSTORE PUSH16 0x39721BAD3DC85D1240FF0190E0ADAAC3 PUSH1 0xBC SSTORE PUSH16 0x391C324344D3248F0469EB28DD3D77E0 PUSH1 0xBD SSTORE PUSH16 0x38C78DF7E3C796279FB4FF84394AB3DA PUSH1 0xBE SSTORE PUSH16 0x387426EA4638AE9AAE08049D3554C20A PUSH1 0xBF SSTORE PUSH16 0x3821F57DBD2763256C1A99BBD2051378 PUSH1 0xC0 SSTORE PUSH16 0x37D0F256CB46A8C92FF62FBBEF289698 PUSH1 0xC1 SSTORE PUSH16 0x37811658591FFC7ABDD1FEAF3CEF9B73 PUSH1 0xC2 SSTORE PUSH16 0x37325AA10E9E82F7DF0F380F7997154B PUSH1 0xC3 SSTORE PUSH16 0x36E4B888CFB408D873B9A80D439311C6 PUSH1 0xC4 SSTORE PUSH16 0x3698299E59F4BB9DE645FC9B08C64CCA PUSH1 0xC5 SSTORE PUSH16 0x364CA7A5012CB603023B57DD3EBFD50D PUSH1 0xC6 SSTORE PUSH16 0x36022C928915B778AB1B06AAEE7E61D4 PUSH1 0xC7 SSTORE PUSH16 0x35B8B28D1A73DC27500FFE35559CC028 PUSH1 0xC8 SSTORE PUSH16 0x357033E951FE250EC5EB4E60955132D7 PUSH1 0xC9 SSTORE PUSH16 0x3528AB2867934E3A21B5412E4C4F8881 PUSH1 0xCA SSTORE PUSH16 0x34E212F66C55057F9676C80094A61D59 PUSH1 0xCB SSTORE PUSH16 0x349C66289E5B3C4B540C24F42FA4B9BB PUSH1 0xCC SSTORE PUSH16 0x34579FBBD0C733A9C8D6AF6B0F7D00F7 PUSH1 0xCD SSTORE PUSH16 0x3413BAD2E712288B924B5882B5B369BF PUSH1 0xCE SSTORE PUSH16 0x33D0B2B56286510EF730E213F71F12E9 PUSH1 0xCF SSTORE PUSH16 0x338E82CE00E2496262C64457535BA1A1 PUSH1 0xD0 SSTORE PUSH16 0x334D26A96B373BB7C2F8EA1827F27A92 PUSH1 0xD1 SSTORE PUSH16 0x330C99F4F4211469E00B3E18C31475EA PUSH1 0xD2 SSTORE PUSH16 0x32CCD87D6486094999C7D5E6F33237D8 PUSH1 0xD3 SSTORE PUSH16 0x328DDE2DD617B6665A2E8556F250C1AF PUSH1 0xD4 SSTORE PUSH16 0x324FA70E9ADC270F8262755AF5A99AF9 PUSH1 0xD5 SSTORE PUSH16 0x32122F443110611CA51040F41FA6E1E3 PUSH1 0xD6 SSTORE PUSH16 0x31D5730E42C0831482F0F1485C4263D8 PUSH1 0xD7 SSTORE PUSH16 0x31996EC6B07B4A83421B5EBC4AB4E1F1 PUSH1 0xD8 SSTORE PUSH16 0x315E1EE0A68FF46BB43EC2B85032E876 PUSH1 0xD9 SSTORE PUSH16 0x31237FE7BC4DEACF6775B9EFA1A145F8 PUSH1 0xDA SSTORE PUSH16 0x30E98E7F1CC5A356E44627A6972EA2FF PUSH1 0xDB SSTORE PUSH16 0x30B04760B8917EC74205A3002650EC05 PUSH1 0xDC SSTORE PUSH16 0x3077A75C803468E9132CE0CF3224241D PUSH1 0xDD SSTORE PUSH16 0x303FAB57A6A275C36F19CDA9BACE667A PUSH1 0xDE SSTORE PUSH16 0x3008504BEB8DCBD2CF3BC1F6D5A064F0 PUSH1 0xDF SSTORE PUSH16 0x2FD19346ED17DAC61219CE0C2C5AC4B0 PUSH1 0xE0 SSTORE PUSH16 0x2F9B7169808C324B5852FD3D54BA9714 PUSH1 0xE1 SSTORE PUSH16 0x2F65E7E711CF4B064EEA9C08CBDAD574 PUSH1 0xE2 SSTORE PUSH16 0x2F30F405093042DDFF8A251B6BF6D103 PUSH1 0xE3 SSTORE PUSH16 0x2EFC931A3750F2E8BFE323EDFE037574 PUSH1 0xE4 SSTORE PUSH16 0x2EC8C28E46DBE56D98685278339400CB PUSH1 0xE5 SSTORE PUSH16 0x2E957FD933C3926D8A599B602379B851 PUSH1 0xE6 SSTORE PUSH16 0x2E62C882C7C9ED4473412702F08BA0E5 PUSH1 0xE7 SSTORE PUSH16 0x2E309A221C12BA361E3ED695167FEEE2 PUSH1 0xE8 SSTORE PUSH16 0x2DFEF25D1F865AE18DD07CFEA4BCEA10 PUSH1 0xE9 SSTORE PUSH16 0x2DCDCEE821CDC80DECC02C44344AEB31 PUSH1 0xEA SSTORE PUSH16 0x2D9D2D8562B34944D0B201BB87260C83 PUSH1 0xEB SSTORE PUSH16 0x2D6D0C04A5B62A2C42636308669B729A PUSH1 0xEC SSTORE PUSH16 0x2D3D6842C9A235517FC5A0332691528F PUSH1 0xED SSTORE PUSH16 0x2D0E402963FE1EA2834ABC408C437C10 PUSH1 0xEE SSTORE PUSH16 0x2CDF91AE602647908AFF975E4D6A2A8C PUSH1 0xEF SSTORE PUSH16 0x2CB15AD3A1EB65F6D74A75DA09A1B6C5 PUSH1 0xF0 SSTORE PUSH16 0x2C8399A6AB8E9774D6FCFF373D210727 PUSH1 0xF1 SSTORE PUSH16 0x2C564C4046F64EDBA6883CA06BBC4535 PUSH1 0xF2 SSTORE PUSH16 0x2C2970C431F952641E05CB493E23EED3 PUSH1 0xF3 SSTORE PUSH16 0x2BFD0560CD9EB14563BC7C0732856C18 PUSH1 0xF4 SSTORE PUSH16 0x2BD1084ED0332F7FF4150F9D0EF41A2C PUSH1 0xF5 SSTORE PUSH16 0x2BA577D0FA1628B76D040B12A82492FB PUSH1 0xF6 SSTORE PUSH16 0x2B7A5233CD21581E855E89DC2F1E8A92 PUSH1 0xF7 SSTORE PUSH16 0x2B4F95CD46904D05D72BDCDE337D9CC7 PUSH1 0xF8 SSTORE PUSH16 0x2B2540FC9B4D9ABBA3FACA6691914675 PUSH1 0xF9 SSTORE PUSH16 0x2AFB5229F68D0830D8BE8ADB0A0DB70F PUSH1 0xFA SSTORE PUSH16 0x2AD1C7C63A9B294C5BC73A3BA3AB7A2B PUSH1 0xFB SSTORE PUSH16 0x2AA8A04AC3CBE1EE1C9C86361465DBB8 PUSH1 0xFC SSTORE PUSH16 0x2A7FDA392D725A44A2C8AEB9AB35430D PUSH1 0xFD SSTORE PUSH16 0x2A57741B18CDE618717792B4FAA216DB PUSH1 0xFE SSTORE PUSH16 0x2A2F6C81F5D84DD950A35626D6D5503A SWAP1 PUSH1 0x7F PUSH2 0x19FE JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP1 DUP1 PUSH16 0xD3094C70F034DE4B96FF7D5B6F99FCD8 DUP7 LT PUSH2 0x2458 JUMPI PUSH16 0x40000000000000000000000000000000 SWAP4 SWAP1 SWAP4 ADD SWAP3 PUSH16 0xD3094C70F034DE4B96FF7D5B6F99FCD8 PUSH1 0x7F PUSH1 0x2 EXP DUP8 MUL DIV SWAP6 POP JUMPDEST PUSH16 0xA45AF1E1F40C333B3DE1DB4DD55F29A7 DUP7 LT PUSH2 0x24A1 JUMPI PUSH16 0x20000000000000000000000000000000 SWAP4 SWAP1 SWAP4 ADD SWAP3 PUSH16 0xA45AF1E1F40C333B3DE1DB4DD55F29A7 PUSH1 0x7F PUSH1 0x2 EXP DUP8 MUL DIV SWAP6 POP JUMPDEST PUSH16 0x910B022DB7AE67CE76B441C27035C6A1 DUP7 LT PUSH2 0x24EA JUMPI PUSH16 0x10000000000000000000000000000000 SWAP4 SWAP1 SWAP4 ADD SWAP3 PUSH16 0x910B022DB7AE67CE76B441C27035C6A1 PUSH1 0x7F PUSH1 0x2 EXP DUP8 MUL DIV SWAP6 POP JUMPDEST PUSH16 0x88415ABBE9A76BEAD8D00CF112E4D4A8 DUP7 LT PUSH2 0x2533 JUMPI PUSH16 0x8000000000000000000000000000000 SWAP4 SWAP1 SWAP4 ADD SWAP3 PUSH16 0x88415ABBE9A76BEAD8D00CF112E4D4A8 PUSH1 0x7F PUSH1 0x2 EXP DUP8 MUL DIV SWAP6 POP JUMPDEST PUSH16 0x84102B00893F64C705E841D5D4064BD3 DUP7 LT PUSH2 0x257C JUMPI PUSH16 0x4000000000000000000000000000000 SWAP4 SWAP1 SWAP4 ADD SWAP3 PUSH16 0x84102B00893F64C705E841D5D4064BD3 PUSH1 0x7F PUSH1 0x2 EXP DUP8 MUL DIV SWAP6 POP JUMPDEST PUSH16 0x8204055AAEF1C8BD5C3259F4822735A2 DUP7 LT PUSH2 0x25C5 JUMPI PUSH16 0x2000000000000000000000000000000 SWAP4 SWAP1 SWAP4 ADD SWAP3 PUSH16 0x8204055AAEF1C8BD5C3259F4822735A2 PUSH1 0x7F PUSH1 0x2 EXP DUP8 MUL DIV SWAP6 POP JUMPDEST PUSH16 0x810100AB00222D861931C15E39B44E99 DUP7 LT PUSH2 0x260E JUMPI PUSH16 0x1000000000000000000000000000000 SWAP4 SWAP1 SWAP4 ADD SWAP3 PUSH16 0x810100AB00222D861931C15E39B44E99 PUSH1 0x7F PUSH1 0x2 EXP DUP8 MUL DIV SWAP6 POP JUMPDEST PUSH16 0x808040155AABBBE9451521693554F733 DUP7 LT PUSH2 0x2656 JUMPI PUSH15 0x800000000000000000000000000000 SWAP4 SWAP1 SWAP4 ADD SWAP3 PUSH16 0x808040155AABBBE9451521693554F733 PUSH1 0x7F PUSH1 0x2 EXP DUP8 MUL DIV SWAP6 POP JUMPDEST PUSH16 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT DUP7 ADD SWAP3 POP DUP3 SWAP2 POP PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP1 MUL DIV SWAP1 POP PUSH1 0x80 PUSH1 0x2 EXP DUP4 DUP2 SUB DUP4 MUL DIV SWAP4 SWAP1 SWAP4 ADD SWAP3 PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DIV SWAP2 POP PUSH17 0x200000000000000000000000000000000 PUSH16 0xAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA DUP5 SWAP1 SUB DUP4 MUL DIV SWAP4 SWAP1 SWAP4 ADD SWAP3 PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DIV SWAP2 POP PUSH17 0x300000000000000000000000000000000 PUSH16 0x99999999999999999999999999999999 DUP5 SWAP1 SUB DUP4 MUL DIV SWAP4 SWAP1 SWAP4 ADD SWAP3 PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DIV SWAP2 POP PUSH17 0x400000000000000000000000000000000 PUSH16 0x92492492492492492492492492492492 DUP5 SWAP1 SUB DUP4 MUL DIV SWAP4 SWAP1 SWAP4 ADD SWAP3 PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DIV SWAP2 POP PUSH17 0x500000000000000000000000000000000 PUSH16 0x8E38E38E38E38E38E38E38E38E38E38E DUP5 SWAP1 SUB DUP4 MUL DIV SWAP4 SWAP1 SWAP4 ADD SWAP3 PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DIV SWAP2 POP PUSH17 0x600000000000000000000000000000000 PUSH16 0x8BA2E8BA2E8BA2E8BA2E8BA2E8BA2E8B DUP5 SWAP1 SUB DUP4 MUL DIV SWAP4 SWAP1 SWAP4 ADD SWAP3 PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DIV SWAP2 POP PUSH17 0x700000000000000000000000000000000 PUSH16 0x89D89D89D89D89D89D89D89D89D89D89 DUP5 SWAP1 SUB DUP4 MUL DIV SWAP4 SWAP1 SWAP4 ADD SWAP3 PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DIV SWAP2 POP PUSH17 0x800000000000000000000000000000000 PUSH16 0x88888888888888888888888888888888 DUP5 SWAP1 SUB DUP4 MUL DIV SWAP4 SWAP1 SWAP4 ADD SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP1 PUSH1 0x80 PUSH1 0x2 EXP DUP6 LT PUSH2 0x2859 JUMPI PUSH2 0x2841 PUSH1 0x7F PUSH1 0x2 EXP DUP7 JUMPDEST DIV PUSH2 0x33A4 JUMP JUMPDEST PUSH1 0xFF DUP2 AND PUSH1 0x2 DUP2 SWAP1 EXP SWAP1 SWAP7 DIV SWAP6 PUSH1 0x7F PUSH1 0x2 EXP MUL SWAP4 POP SWAP2 POP JUMPDEST PUSH1 0x7F PUSH1 0x2 EXP DUP6 GT ISZERO PUSH2 0x28AB JUMPI POP PUSH1 0x7F JUMPDEST PUSH1 0x0 DUP2 PUSH1 0xFF AND GT ISZERO PUSH2 0x28AB JUMPI PUSH1 0x7F PUSH1 0x2 EXP DUP6 DUP1 MUL DIV SWAP5 POP PUSH1 0x80 PUSH1 0x2 EXP DUP6 LT PUSH2 0x28A2 JUMPI PUSH1 0x2 SWAP5 DUP6 SWAP1 DIV SWAP5 PUSH1 0xFF PUSH1 0x0 NOT DUP4 ADD AND SWAP1 EXP SWAP3 SWAP1 SWAP3 ADD SWAP2 JUMPDEST PUSH1 0x0 NOT ADD PUSH2 0x2869 JUMP JUMPDEST PUSH16 0x5B9DE1D10BF4103D647B0955897BA80 PUSH16 0x3F80FE03F80FE03F80FE03F80FE03F8 DUP5 MUL DIV SWAP4 POP JUMPDEST POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0x168244FDAC78000 PUSH1 0x7F PUSH1 0x2 EXP PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP5 AND DUP1 DUP1 MUL DUP3 SWAP1 DIV DUP1 DUP3 MUL DUP4 SWAP1 DIV DUP1 DUP4 MUL DUP5 SWAP1 DIV SWAP5 DUP6 MUL PUSH8 0x10E1B3BE415A0000 SWAP1 SWAP3 MUL PUSH8 0x5A0913F6B1E0000 SWAP2 SWAP1 SWAP2 MUL ADD ADD SWAP3 SWAP1 SWAP2 DUP2 DUP4 MUL DIV SWAP1 POP DUP1 PUSH7 0x4807432BC18000 MUL DUP4 ADD SWAP3 POP PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DUP2 ISZERO ISZERO PUSH2 0x2956 JUMPI INVALID JUMPDEST DIV SWAP1 POP DUP1 PUSH7 0xC0135DCA04000 MUL DUP4 ADD SWAP3 POP PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DUP2 ISZERO ISZERO PUSH2 0x2978 JUMPI INVALID JUMPDEST DIV SWAP1 POP DUP1 PUSH7 0x1B707B1CDC000 MUL DUP4 ADD SWAP3 POP PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DUP2 ISZERO ISZERO PUSH2 0x299A JUMPI INVALID JUMPDEST DIV SWAP1 POP DUP1 PUSH6 0x36E0F639B800 MUL DUP4 ADD SWAP3 POP PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DUP2 ISZERO ISZERO PUSH2 0x29BB JUMPI INVALID JUMPDEST DIV SWAP1 POP DUP1 PUSH6 0x618FEE9F800 MUL DUP4 ADD SWAP3 POP PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DUP2 ISZERO ISZERO PUSH2 0x29DC JUMPI INVALID JUMPDEST DIV SWAP1 POP DUP1 PUSH5 0x9C197DCC00 MUL DUP4 ADD SWAP3 POP PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DUP2 ISZERO ISZERO PUSH2 0x29FC JUMPI INVALID JUMPDEST DIV SWAP1 POP DUP1 PUSH5 0xE30DCE400 MUL DUP4 ADD SWAP3 POP PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DUP2 ISZERO ISZERO PUSH2 0x2A1C JUMPI INVALID JUMPDEST DIV SWAP1 POP DUP1 PUSH5 0x12EBD1300 MUL DUP4 ADD SWAP3 POP PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DUP2 ISZERO ISZERO PUSH2 0x2A3C JUMPI INVALID JUMPDEST DIV SWAP1 POP DUP1 PUSH4 0x17499F00 MUL DUP4 ADD SWAP3 POP PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DUP2 ISZERO ISZERO PUSH2 0x2A5B JUMPI INVALID JUMPDEST DIV SWAP1 POP DUP1 PUSH4 0x1A9D480 MUL DUP4 ADD SWAP3 POP PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DUP2 ISZERO ISZERO PUSH2 0x2A7A JUMPI INVALID JUMPDEST DIV SWAP1 POP DUP1 PUSH3 0x1C6380 MUL DUP4 ADD SWAP3 POP PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DUP2 ISZERO ISZERO PUSH2 0x2A98 JUMPI INVALID JUMPDEST DIV SWAP1 POP DUP1 PUSH3 0x1C638 MUL DUP4 ADD SWAP3 POP PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DUP2 ISZERO ISZERO PUSH2 0x2AB6 JUMPI INVALID JUMPDEST DIV SWAP1 POP DUP1 PUSH2 0x1AB8 MUL DUP4 ADD SWAP3 POP PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DUP2 ISZERO ISZERO PUSH2 0x2AD3 JUMPI INVALID JUMPDEST DIV SWAP1 POP DUP1 PUSH2 0x17C MUL DUP4 ADD SWAP3 POP PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DUP2 ISZERO ISZERO PUSH2 0x2AF0 JUMPI INVALID JUMPDEST DIV SWAP1 POP DUP1 PUSH1 0x14 MUL DUP4 ADD SWAP3 POP PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DUP2 ISZERO ISZERO PUSH2 0x2B0C JUMPI INVALID JUMPDEST PUSH8 0x21C3677C82B40000 SWAP2 SWAP1 DIV SWAP4 DUP5 ADD DIV DUP3 ADD PUSH1 0x7F PUSH1 0x2 EXP ADD SWAP3 SWAP1 POP PUSH16 0x10000000000000000000000000000000 DUP6 AND ISZERO PUSH2 0x2B69 JUMPI PUSH17 0x18EBEF9EAC820AE8682B9793AC6D1E776 PUSH17 0x1C3D6A24ED82218787D624D3E5EBA95F9 DUP5 MUL DIV SWAP3 POP JUMPDEST PUSH16 0x20000000000000000000000000000000 DUP6 AND ISZERO PUSH2 0x2BAB JUMPI PUSH17 0x1368B2FC6F9609FE7ACEB46AA619BAED4 PUSH17 0x18EBEF9EAC820AE8682B9793AC6D1E778 DUP5 MUL DIV SWAP3 POP JUMPDEST PUSH16 0x40000000000000000000000000000000 DUP6 AND ISZERO PUSH2 0x2BEC JUMPI PUSH16 0xBC5AB1B16779BE3575BD8F0520A9F21F PUSH17 0x1368B2FC6F9609FE7ACEB46AA619BAED5 DUP5 MUL DIV SWAP3 POP JUMPDEST PUSH1 0x7F PUSH1 0x2 EXP DUP6 AND ISZERO PUSH2 0x2C20 JUMPI PUSH16 0x454AAA8EFE072E7F6DDBAB84B40A55C9 PUSH16 0xBC5AB1B16779BE3575BD8F0520A9F21E DUP5 MUL DIV SWAP3 POP JUMPDEST PUSH1 0x80 PUSH1 0x2 EXP DUP6 AND ISZERO PUSH2 0x2C54 JUMPI PUSH16 0x960AADC109E7A3BF4578099615711EA PUSH16 0x454AAA8EFE072E7F6DDBAB84B40A55C5 DUP5 MUL DIV SWAP3 POP JUMPDEST PUSH17 0x200000000000000000000000000000000 DUP6 AND ISZERO PUSH2 0x2C94 JUMPI PUSH15 0x2BF84208204F5977F9A8CF01FDCE3D PUSH16 0x960AADC109E7A3BF4578099615711D7 DUP5 MUL DIV SWAP3 POP JUMPDEST PUSH17 0x400000000000000000000000000000000 DUP6 AND ISZERO PUSH2 0x2CD2 JUMPI PUSH14 0x3C6AB775DD0B95B4CBEE7E65D11 PUSH15 0x2BF84208204F5977F9A8CF01FDC307 DUP5 MUL DIV SWAP3 POP JUMPDEST POP SWAP1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 PUSH1 0x7F DUP3 JUMPDEST DUP2 PUSH1 0xFF AND DUP4 PUSH1 0x1 ADD PUSH1 0xFF AND LT ISZERO PUSH2 0x2D28 JUMPI PUSH1 0x2 PUSH1 0xFF DUP5 DUP5 ADD AND DIV SWAP1 POP DUP5 PUSH1 0x0 PUSH1 0xFF DUP4 AND PUSH1 0x80 DUP2 LT PUSH2 0x2D10 JUMPI INVALID JUMPDEST ADD SLOAD LT PUSH2 0x2D1F JUMPI DUP1 SWAP3 POP PUSH2 0x2D23 JUMP JUMPDEST DUP1 SWAP2 POP JUMPDEST PUSH2 0x2CE3 JUMP JUMPDEST DUP5 PUSH1 0x0 PUSH1 0xFF DUP5 AND PUSH1 0x80 DUP2 LT PUSH2 0x2D39 JUMPI INVALID JUMPDEST ADD SLOAD LT PUSH2 0x2D48 JUMPI DUP2 SWAP4 POP PUSH2 0x28D3 JUMP JUMPDEST DUP5 PUSH1 0x0 PUSH1 0xFF DUP6 AND PUSH1 0x80 DUP2 LT PUSH2 0x2D59 JUMPI INVALID JUMPDEST ADD SLOAD LT PUSH2 0x106 JUMPI DUP3 SWAP4 POP PUSH2 0x28D3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP5 SWAP2 POP PUSH1 0x0 SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH16 0x3442C4E6074A82F1797F72AC0000000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH16 0x116B96F757C380FB287FD0E40000000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH15 0x45AE5BDD5F0E03ECA1FF4390000000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH15 0xDEFABF91302CD95B9FFDA50000000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH15 0x2529CA9832B22439EFFF9B8000000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH14 0x54F1CF12BD04E516B6DA88000000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH14 0xA9E39E257A09CA2D6DB51000000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH14 0x12E066E7B839FA050C309000000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH13 0x1E33D7D926C329A1AD1A800000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH13 0x2BEE513BDB4A6B19B5F800000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH12 0x3A9316FA79B88ECCF2A00000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH12 0x48177EBE1FA812375200000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH11 0x5263FE90242DCBACF00000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH11 0x57E22099C030D94100000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH10 0x57E22099C030D9410000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH10 0x52B6B54569976310000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH9 0x4985F67696BF748000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH9 0x3DEA12EA99E498000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH8 0x31880F2214B6E000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH8 0x25BCFF56EB36000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH7 0x1B722E10AB1000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH7 0x1317C70077000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH6 0xCBA84AAFA00 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH5 0x82573A0A00 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH5 0x5035AD900 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH4 0x2F881B00 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH4 0x1B29340 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH3 0xEFC40 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH2 0x7FE0 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH2 0x420 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH1 0x21 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH1 0x1 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND PUSH1 0x1 SWAP1 PUSH1 0x2 EXP MUL DUP6 PUSH16 0x688589CC0E9505E2F2FEE5580000000 DUP4 DUP2 ISZERO ISZERO PUSH2 0x317F JUMPI INVALID JUMPDEST DIV ADD ADD SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 PUSH1 0x2 EXP DUP7 GT ISZERO DUP1 ISZERO PUSH2 0x31A9 JUMPI POP PUSH1 0x80 PUSH1 0x2 EXP DUP6 GT ISZERO JUMPDEST ISZERO PUSH2 0x31B9 JUMPI DUP6 DUP6 SWAP4 POP SWAP4 POP PUSH2 0x1223 JUMP JUMPDEST PUSH1 0x80 PUSH1 0x2 EXP DUP7 LT ISZERO PUSH2 0x31E5 JUMPI DUP5 PUSH1 0x80 PUSH1 0x2 EXP DUP8 MUL DUP2 ISZERO ISZERO PUSH2 0x31D6 JUMPI INVALID JUMPDEST DIV PUSH1 0x80 PUSH1 0x2 EXP SWAP4 POP SWAP4 POP PUSH2 0x1223 JUMP JUMPDEST PUSH1 0x80 PUSH1 0x2 EXP DUP6 LT ISZERO PUSH2 0x3211 JUMPI PUSH1 0x80 PUSH1 0x2 EXP DUP7 PUSH1 0x80 PUSH1 0x2 EXP DUP8 MUL DUP2 ISZERO ISZERO PUSH2 0x3207 JUMPI INVALID JUMPDEST DIV SWAP4 POP SWAP4 POP PUSH2 0x1223 JUMP JUMPDEST DUP5 DUP7 GT PUSH2 0x321E JUMPI DUP5 PUSH2 0x3220 JUMP JUMPDEST DUP6 JUMPDEST SWAP2 POP PUSH2 0x3230 PUSH1 0x7F PUSH1 0x2 EXP DUP4 PUSH2 0x283B JUMP JUMPDEST PUSH1 0xFF AND PUSH1 0x2 EXP SWAP6 DUP7 SWAP1 DIV SWAP7 SWAP6 SWAP1 SWAP5 DIV SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH16 0x2F16AC6C59DE6F8D5D6F63C1482A7C86 DUP3 GT PUSH2 0x3270 JUMPI PUSH2 0x3269 DUP3 PUSH2 0x340D JUMP JUMPDEST SWAP1 POP PUSH2 0x329F JUMP JUMPDEST DUP2 PUSH32 0x4000000000000000000000000000000000000000000000000000000000000000 DUP2 ISZERO ISZERO PUSH2 0x329B JUMPI INVALID JUMPDEST DIV SWAP1 POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH16 0x2F16AC6C59DE6F8D5D6F63C1482A7C86 DUP3 GT PUSH2 0x32C6 JUMPI PUSH2 0x3269 DUP3 PUSH2 0x3870 JUMP JUMPDEST PUSH17 0x1AF16AC6C59DE6F8D5D6F63C1482A7C80 DUP3 GT PUSH2 0x32E7 JUMPI PUSH2 0x3269 DUP3 PUSH2 0x3CF1 JUMP JUMPDEST PUSH17 0x6B22D43E72C326539CCEEEF8BB48F255FF DUP3 GT PUSH2 0x106 JUMPI PUSH2 0x3269 DUP3 PUSH2 0x3D6F JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH30 0x10C6F7A0B5ED8D36B4C7F34938583621FAFC8B0079A2834D26FA3FCC9EA9 DUP8 GT ISZERO PUSH2 0x3379 JUMPI PUSH30 0x10C6F7A0B5ED8D36B4C7F34938583621FAFC8B0079A2834D26FA3FCC9EAA DUP8 DIV PUSH1 0x1 ADD SWAP3 POP DUP3 DUP8 DUP2 ISZERO ISZERO PUSH2 0x3367 JUMPI INVALID JUMPDEST DIV SWAP7 POP DUP3 DUP7 DUP2 ISZERO ISZERO PUSH2 0x3375 JUMPI INVALID JUMPDEST DIV SWAP6 POP JUMPDEST PUSH2 0x3391 PUSH3 0xF4240 DUP9 MUL PUSH2 0x338C DUP10 DUP10 PUSH2 0xFC5 JUMP JUMPDEST PUSH2 0x3DFC JUMP JUMPDEST SWAP8 PUSH3 0xF4240 DUP10 SWAP1 SUB SWAP8 POP SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 PUSH2 0x100 DUP5 LT ISZERO PUSH2 0x33D3 JUMPI JUMPDEST PUSH1 0x1 DUP5 GT ISZERO PUSH2 0x33CE JUMPI PUSH1 0x2 SWAP1 SWAP4 DIV SWAP3 PUSH1 0x1 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x33B3 JUMP JUMPDEST PUSH2 0xFBE JUMP JUMPDEST POP PUSH1 0x80 JUMPDEST PUSH1 0x0 DUP2 PUSH1 0xFF AND GT ISZERO PUSH2 0xFBE JUMPI PUSH1 0xFF DUP2 AND PUSH1 0x2 EXP DUP5 LT PUSH2 0x3400 JUMPI PUSH1 0xFF DUP2 AND PUSH1 0x2 EXP SWAP1 SWAP4 DIV SWAP3 SWAP1 DUP2 OR SWAP1 JUMPDEST PUSH1 0x2 PUSH1 0xFF SWAP1 SWAP2 AND DIV PUSH2 0x33D7 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP1 MUL DIV SWAP2 POP PUSH17 0x14D29A73A6E7B02C3668C7B0880000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH17 0x2504A0CD9A7F7215B60F9BE4800000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH17 0x484D0A1191C0EAD267967C7A4A0000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH17 0x95EC580D7E8427A4BAF26A90A00000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH17 0x1440B0BE1615A47DBA6E5B3B1F10000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH17 0x2D207601F46A99B4112418400000000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH17 0x66EBAAC4C37C622DD8288A7EB1B2000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH17 0xEF17240135F7DBD43A1BA10CF200000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH18 0x233C33C676A5EB2416094A87B3657000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH18 0x541CDE48BC0254BED49A9F8700000000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH18 0xCAE1FAD2CDD4D4CB8D73ABCA0D19A400000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH18 0x1EDB2AA2F760D15C41CEEDBA956400000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH18 0x4BA8D20D2DABD386C9529659841A2E200000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH18 0xBAC08546B867CDAA20000000000000000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH19 0x1CFA8E70C03625B9DB76C8EBF5BBF24820000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH19 0x4851D99F82060DF265F3309B26F8200000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH19 0xB550D19B129D270C44F6F55F027723CBB0000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH19 0x1C877DADC761DC272DEB65D4B0000000000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH19 0x48178ECE97479F33A77F2AD22A81B64406C000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH19 0xB6CA8268B9D810FEDF6695EF2F8A6C00000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH20 0x1D0E76631A5B05D007B8CB72A7C7F11EC36E000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH20 0x4A1C37BD9F85FD9C6C780000000000000000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH20 0xBD8369F1B702BF491E2EBFCEE08250313B65400 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH20 0x1E5C7C32A9F6C70AB2CB59D9225764D400000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH20 0x4DFF5820E165E910F95120A708E742496221E600 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH20 0xC8C8F66DB1FCED378EE50E536000000000000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH21 0x205DB8DFFFF45BFA2938F128F599DBF16EB11D880 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH21 0x53A044EBD984351493E1786AF38D39A0800000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH21 0xD86DAE2A4CC0F47633A544479735869B487B59C40 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH21 0x231000000000000000000000000000000000000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH21 0x5B0485A76F6646C2039DB1507CDD51B08649680822 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH21 0xEC983C46C49545BC17EFA6B5B0055E242200000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 PUSH16 0xDE1BC4D19EFCAC82445DA75B00000000 DUP4 DIV ADD ADD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x7F PUSH1 0x2 EXP DUP2 DUP2 SUB PUSH16 0xDE1BC4D19EFCAC82445DA75B00000000 MUL SWAP1 DUP3 DUP1 MUL DIV SWAP2 POP PUSH17 0x14D29A73A6E7B02C3668C7B0880000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH17 0x2504A0CD9A7F7215B60F9BE4800000000 DUP3 MUL SWAP1 SUB PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH17 0x484D0A1191C0EAD267967C7A4A0000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH17 0x95EC580D7E8427A4BAF26A90A00000000 DUP3 MUL SWAP1 SUB PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH17 0x1440B0BE1615A47DBA6E5B3B1F10000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH17 0x2D207601F46A99B4112418400000000000 DUP3 MUL SWAP1 SUB PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH17 0x66EBAAC4C37C622DD8288A7EB1B2000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH17 0xEF17240135F7DBD43A1BA10CF200000000 DUP3 MUL SWAP1 SUB PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH18 0x233C33C676A5EB2416094A87B3657000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH18 0x541CDE48BC0254BED49A9F8700000000000 DUP3 MUL SWAP1 SUB PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH18 0xCAE1FAD2CDD4D4CB8D73ABCA0D19A400000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH18 0x1EDB2AA2F760D15C41CEEDBA956400000000 DUP3 MUL SWAP1 SUB PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH18 0x4BA8D20D2DABD386C9529659841A2E200000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH18 0xBAC08546B867CDAA20000000000000000000 DUP3 MUL SWAP1 SUB PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH19 0x1CFA8E70C03625B9DB76C8EBF5BBF24820000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH19 0x4851D99F82060DF265F3309B26F8200000000 DUP3 MUL SWAP1 SUB PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH19 0xB550D19B129D270C44F6F55F027723CBB0000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH19 0x1C877DADC761DC272DEB65D4B0000000000000 DUP3 MUL SWAP1 SUB PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH19 0x48178ECE97479F33A77F2AD22A81B64406C000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH19 0xB6CA8268B9D810FEDF6695EF2F8A6C00000000 DUP3 MUL SWAP1 SUB PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH20 0x1D0E76631A5B05D007B8CB72A7C7F11EC36E000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH20 0x4A1C37BD9F85FD9C6C780000000000000000000 DUP3 MUL SWAP1 SUB PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH20 0xBD8369F1B702BF491E2EBFCEE08250313B65400 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH20 0x1E5C7C32A9F6C70AB2CB59D9225764D400000000 DUP3 MUL SWAP1 SUB PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH20 0x4DFF5820E165E910F95120A708E742496221E600 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH20 0xC8C8F66DB1FCED378EE50E536000000000000000 DUP3 MUL SWAP1 SUB PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH21 0x205DB8DFFFF45BFA2938F128F599DBF16EB11D880 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH21 0x53A044EBD984351493E1786AF38D39A0800000000 DUP3 MUL SWAP1 SUB PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH21 0xD86DAE2A4CC0F47633A544479735869B487B59C40 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH21 0x231000000000000000000000000000000000000000 DUP3 MUL SWAP1 SUB PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH21 0x5B0485A76F6646C2039DB1507CDD51B08649680822 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH21 0xEC983C46C49545BC17EFA6B5B0055E242200000000 DUP3 MUL SWAP1 SUB PUSH16 0xDE1BC4D19EFCAC82445DA75B00000000 DUP2 JUMPDEST DIV SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH16 0x2F16AC6C59DE6F8D5D6F63C1482A7C86 NOT DUP3 ADD PUSH16 0x3060C183060C183060C183060C18306 DUP1 DUP3 DIV SWAP1 DUP2 DUP2 MUL SWAP1 PUSH1 0x1 DUP4 ADD MUL DUP5 DUP1 PUSH1 0x80 DUP6 DUP2 DUP2 LT PUSH2 0x3D33 JUMPI INVALID JUMPDEST ADD SLOAD SWAP2 POP PUSH1 0x80 PUSH1 0x1 DUP7 ADD DUP2 DUP2 LT PUSH2 0x3D46 JUMPI INVALID JUMPDEST ADD SLOAD PUSH16 0x3060C183060C183060C183060C18306 SWAP5 DUP8 SUB MUL SWAP6 SWAP1 SWAP3 SUB MUL SWAP4 SWAP1 SWAP4 ADD DIV SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH17 0x15BF0A8B1457695355FB8AC404E7A79E3 DUP5 LT PUSH2 0x3D9A JUMPI PUSH2 0x3D95 DUP5 PUSH2 0x2821 JUMP JUMPDEST PUSH2 0x3DA3 JUMP JUMPDEST PUSH2 0x3DA3 DUP5 PUSH2 0x2409 JUMP JUMPDEST SWAP2 POP PUSH17 0x15BF0A8B1457695355FB8AC404E7A79E3 DUP3 LT PUSH2 0x3DCB JUMPI PUSH2 0x3DC6 DUP3 PUSH2 0x2821 JUMP JUMPDEST PUSH2 0x3DD4 JUMP JUMPDEST PUSH2 0x3DD4 DUP3 PUSH2 0x2409 JUMP JUMPDEST SWAP1 POP DUP4 PUSH1 0x7F PUSH1 0x2 EXP DUP4 PUSH1 0x7F PUSH1 0x2 EXP DUP5 MUL DUP2 ISZERO ISZERO PUSH2 0x3DED JUMPI INVALID JUMPDEST DIV DUP4 DUP6 SUB ADD MUL DUP2 ISZERO ISZERO PUSH2 0x3CE8 JUMPI INVALID JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV DUP3 SUB DUP3 DUP5 DUP2 ISZERO ISZERO PUSH2 0x3E0F JUMPI INVALID JUMPDEST MOD DUP2 ISZERO ISZERO PUSH2 0x3E19 JUMPI INVALID JUMPDEST DIV DUP3 DUP5 DUP2 ISZERO ISZERO PUSH2 0x3E25 JUMPI INVALID JUMPDEST DIV ADD SWAP4 SWAP3 POP POP POP JUMP STOP GASLIMIT MSTORE MSTORE 0x5f 0x49 0x4e JUMP COINBASE 0x4c 0x49 DIFFICULTY 0x5f MSTORE8 SSTORE POP POP 0x4c MSIZE STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP GASLIMIT MSTORE MSTORE 0x5f 0x49 0x4e JUMP COINBASE 0x4c 0x49 DIFFICULTY 0x5f MSTORE GASLIMIT MSTORE8 GASLIMIT MSTORE JUMP GASLIMIT 0x5f TIMESTAMP COINBASE 0x4c COINBASE 0x4e NUMBER GASLIMIT STOP STOP STOP STOP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 GASPRICE 0xa6 BYTE BLOCKHASH SWAP15 PUSH19 0x9A09805C2713F062E39BB7A14053960C848BB2 0xd7 PUSH4 0x6183D573 0xa7 STOP 0x29 ", - "sourceMap": "105:60940:10:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;59263:222;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;59263:222:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;57847:242;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;57847:242:10;;;;;;;;;;;;;23900:810;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;23900:810:10;;;;;;;;;;;;;60811:232;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;60811:232:10;;;;;;;;;;;;;58146:234;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;58146:234:10;;;;;;;;;;;;;187:34;;8:9:-1;5:2;;;30:1;27;20:12;5:2;187:34:10;;;;;;;;;;;;;;;;;;;;;;;58849:357;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;58849:357:10;;;;;;;;;;;;;;;;;;;19056:997;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;19056:997:10;;;;;;;;;;;;;25320:1007;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;25320:1007:10;;;;;;;;;;;;;20832:1025;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;20832:1025:10;;;;;;;;;;;;;;;;;;;28461:1167;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;28461:1167:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17006:70;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17006:70:10;;;;;;22464:824;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;22464:824:10;;;;;;;;;;;;;17659:817;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;17659:817:10;;;;;;;;;;;;;59263:222;59403:7;59423:58;59432:7;59441:15;59458:13;59473:7;59423:8;:58::i;:::-;59416:65;59263:222;-1:-1:-1;;;;;59263:222:10:o;57847:242::-;57994:7;58014:71;58035:7;58044:15;58061:14;58077:7;58014:20;:71::i;23900:810::-;24039:7;;;;;24080:11;;;24072:42;;;;;-1:-1:-1;;;;;24072:42:10;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;24072:42:10;;;;;;;;;;;;;;;24144:1;24126:19;;24118:59;;;;;-1:-1:-1;;;;;24118:59:10;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;24118:59:10;;;;;;;;;;;;;;;24205:1;24189:13;:17;;;:52;;;;-1:-1:-1;24227:14:10;24210:31;;;;;24189:52;24181:90;;;;;;;-1:-1:-1;;;;;24181:90:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;24311:12;;24307:26;;;24332:1;24325:8;;;;24307:26;24388:27;;;297:7;24388:27;24384:78;;;24447:15;24424:20;:7;24436;24424:20;:11;:20;:::i;:::-;:38;;;;;;;;24417:45;;;;24384:78;24520:28;:15;24540:7;24520:28;:19;:28;:::i;:::-;24504:44;;24574:56;24580:5;24587:15;24604:13;297:7;24574:5;:56::i;:::-;24552:78;;-1:-1:-1;24552:78:10;-1:-1:-1;24649:32:10;;;:19;:7;24552:78;24649:19;:11;:19;:::i;:::-;:32;;;;;24634:47;;24699:7;24692:4;:14;24685:21;;23900:810;;;;;;;;;;;:::o;60811:232::-;60947:7;60967:72;60990:7;60999:15;61016:13;61031:7;60967:22;:72::i;58146:234::-;58289:7;58309:67;58326:7;58335:15;58352:14;58368:7;58309:16;:67::i;187:34::-;220:1;187:34;:::o;58849:357::-;59059:7;59079:123;59104:21;59127:20;59149:21;59172:20;59194:7;59079:24;:123::i;:::-;59072:130;58849:357;-1:-1:-1;;;;;;58849:357:10:o;19056:997::-;19196:7;;;;;;19237:11;;;19229:42;;;;;-1:-1:-1;;;;;19229:42:10;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;19229:42:10;;;;;;;;;;;;;;;19301:1;19283:19;;19275:59;;;;;-1:-1:-1;;;;;19275:59:10;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;19275:59:10;;;;;;;;;;;;;;;19363:1;19346:14;:18;;;:50;;;;-1:-1:-1;297:7:10;19368:28;;;;;19346:50;19338:89;;;;;;;-1:-1:-1;;;;;19338:89:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;19439:18;;;;19431:49;;;;;-1:-1:-1;;;;;19431:49:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;19525:12;;19521:26;;;19546:1;19539:8;;;;19521:26;19615:7;19604;:18;19600:46;;;19631:15;19624:22;;;;19600:46;19694:28;;;297:7;19694:28;19690:79;;;19762:7;19731:28;:15;19751:7;19731:28;:19;:28;:::i;:::-;:38;;;;;;;;19724:45;;;;19690:79;19837:7;19827;:17;19811:33;;19870:49;19876:7;19885:5;297:7;19904:14;19870:5;:49::i;:::-;19848:71;;-1:-1:-1;19848:71:10;-1:-1:-1;19939:27:10;:15;19848:71;19939:27;:19;:27;:::i;:::-;19923:43;-1:-1:-1;;19986:28:10;;;;;;;20043:6;20026:13;;;20025:24;;;;;;;;20018:31;;19056:997;;;;;;;;;;;;:::o;25320:1007::-;25465:7;;;;;;25506:11;;;25498:42;;;;;-1:-1:-1;;;;;25498:42:10;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;25498:42:10;;;;;;;;;;;;;;;25570:1;25552:19;;25544:59;;;;;-1:-1:-1;;;;;25544:59:10;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;25544:59:10;;;;;;;;;;;;;;;25631:1;25615:13;:17;;;:52;;;;-1:-1:-1;25653:14:10;25636:31;;;;;25615:52;25607:90;;;;;;;-1:-1:-1;;;;;25607:90:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;25709:18;;;;25701:49;;;;;-1:-1:-1;;;;;25701:49:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;25790:12;;25786:26;;;25811:1;25804:8;;;;25786:26;25884:7;25873;:18;25869:46;;;25900:15;25893:22;;;;25869:46;25970:27;;;297:7;25970:27;25966:78;;;26037:7;26006:28;:7;26018:15;26006:28;:11;:28;:::i;20832:1025::-;21037:7;21519:14;21537:15;21556:13;21715;21768;21102:1;21078:21;:25;:54;;;;;21131:1;21107:21;:25;21078:54;21070:94;;;;;;;-1:-1:-1;;;;;21070:94:10;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;21070:94:10;;;;;;;;;;;;;;;21203:1;21180:20;:24;;;:62;;;;-1:-1:-1;297:7:10;21208:34;;;;;21180:62;:90;;;;;21269:1;21246:20;:24;;;21180:90;:128;;;;-1:-1:-1;297:7:10;21274:34;;;;;21180:128;21168:177;;;;;;;-1:-1:-1;;;;;21168:177:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;21414:20;21390:44;;:20;:44;;;21386:128;;;21480:34;:21;21506:7;21480:34;:25;:34;:::i;:::-;21443;:21;21469:7;21443:34;:25;:34;:::i;:::-;:71;;;;;;;;21436:78;;;;21386:128;21572:34;:21;21598:7;21572:34;:25;:34;:::i;:::-;21556:50;;21632:79;21638:5;21645:21;21668:20;21690;21632:5;:79::i;:::-;21610:101;;-1:-1:-1;21610:101:10;-1:-1:-1;21731:33:10;:21;21610:101;21731:33;:25;:33;:::i;:::-;21715:49;-1:-1:-1;;21784:34:10;;;;;;;21847:6;21830:13;;;21829:24;;;;;;;;21822:31;;20832:1025;;;;;;;;;;;;;:::o;28461:1167::-;28688:6;28696;29120:10;29192;28744:22;28712:28;:54;28708:310;;;28810:1;28779:28;:32;:64;;;;28842:1;28815:24;:28;28779:64;28771:104;;;;;;;-1:-1:-1;;;;;28771:104:10;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;28771:104:10;;;;;;;;;;;;;;;28708:310;;;28923:1;28892:28;:32;:62;;;;;28953:1;28928:22;:26;28892:62;:94;;;;;28985:1;28958:24;:28;28892:94;28884:134;;;;;;;-1:-1:-1;;;;;28884:134:10;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;28884:134:10;;;;;;;;;;;;;;;29054:1;29030:21;:25;:56;;;;;29085:1;29059:23;:27;29030:56;29022:93;;;;;;;-1:-1:-1;;;;;29022:93:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;29133:55;:28;29166:21;29133:55;:32;:55;:::i;:::-;29120:68;-1:-1:-1;29205:53:10;:24;29234:23;29205:53;:28;:53;:::i;:::-;29192:66;;29298:22;29267:28;:53;29263:159;;;29332:90;29355:22;29379:28;29409:2;29413;29417:4;29332:22;:90::i;:::-;29325:97;;;;;;29263:159;29462:22;29431:28;:53;29427:160;;;29496:91;29519:28;29549:22;29573:2;29577;29581:5;29496:22;:91::i;29427:160::-;29599:25;29617:2;29621;29599:17;:25::i;:::-;29592:32;;;;28461:1167;;;;;;;;;;;:::o;17006:70::-;17033:17;:15;:17::i;:::-;17054:18;:16;:18::i;:::-;17006:70::o;22464:824::-;22595:7;;;;;22636:11;;;22628:42;;;;;-1:-1:-1;;;;;22628:42:10;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;22628:42:10;;;;;;;;;;;;;;;22700:1;22682:19;;22674:59;;;;;-1:-1:-1;;;;;22674:59:10;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;22674:59:10;;;;;;;;;;;;;;;22761:1;22745:13;:17;;;:52;;;;-1:-1:-1;22783:14:10;22766:31;;;;;22745:52;22737:90;;;;;;;-1:-1:-1;;;;;22737:90:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;22867:12;;22863:26;;;22888:1;22881:8;;;;22863:26;22944:27;;;297:7;22944:27;22940:88;;;23017:7;23012:1;22981:28;:7;22993:15;22981:28;:11;:28;:::i;:::-;:32;22980:44;;;;;;;;23027:1;22980:48;22973:55;;;;22940:88;23086:20;:7;23098;23086:20;:11;:20;:::i;:::-;23070:36;;23132:48;23138:5;23145:7;297;23166:13;23132:5;:48::i;:::-;23110:70;;-1:-1:-1;23110:70:10;-1:-1:-1;23200:46:10;;;23231:1;23201:27;:15;23110:70;23201:27;:19;:27;:::i;:::-;23200:46;;;;;23201:31;;23200:46;23262:22;;;;23250:1;23262:22;;22464:824;-1:-1:-1;;;;;;;;22464:824:10:o;17659:817::-;17803:7;;;;;17844:11;;;17836:42;;;;;-1:-1:-1;;;;;17836:42:10;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;17836:42:10;;;;;;;;;;;;;;;17908:1;17890:19;;17882:59;;;;;-1:-1:-1;;;;;17882:59:10;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;17882:59:10;;;;;;;;;;;;;;;17970:1;17953:14;:18;;;:50;;;;-1:-1:-1;297:7:10;17975:28;;;;;17953:50;17945:89;;;;;;;-1:-1:-1;;;;;17945:89:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;18082:12;;18078:26;;;18103:1;18096:8;;;;18078:26;18152:28;;;297:7;18152:28;18148:79;;;18212:15;18189:20;:7;18201;18189:20;:11;:20;:::i;18148:79::-;18285:28;:7;18297:15;18285:28;:11;:28;:::i;924:197:69:-;984:7;;1023;;1019:21;;;1039:1;1032:8;;;;1019:21;-1:-1:-1;1057:7:69;;;1062:2;1057;:7;1076:6;;;;;;;;:12;1068:37;;;;;-1:-1:-1;;;;;1068:37:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;1116:1;1109:8;;924:197;;;;;;:::o;288:144::-;348:7;373;;;392;;;;384:32;;;;;-1:-1:-1;;;;;384:32:69;;;;;;;;;;;;;;;;;;;;;;;;;;;31126:662:10;31235:7;;;;;;639:35;31263:16;;31255:25;;;;;;31340:6;-1:-1:-1;;;31320:6:10;:16;31319:27;;;;;;;;31304:42;;1034:35;31354:4;:22;31350:106;;;31393:16;31404:4;31393:10;:16::i;:::-;31383:26;;31350:106;;;31435:16;31446:4;31435:10;:16::i;:::-;31425:26;;31350:106;31506:5;31486:25;;31497:5;31487:15;;:7;:15;31486:25;;;;;;;;31460:51;;1115:35;31519:15;:33;31515:270;;;31567:27;31578:15;31567:10;:27::i;:::-;390:3;31559:51;;;;;;31515:270;31644:42;31670:15;31644:25;:42::i;:::-;31626:60;-1:-1:-1;31699:69:10;31710:46;390:3;31730:25;;;31710:46;;;;;31626:60;31699:10;:69::i;:::-;31770:9;31691:89;;;;31515:270;31126:662;;;;;;;;;;;:::o;55947:451::-;56085:6;56093;56143:9;56181;56248;56280;56118:21;56130:3;56135;56118:11;:21::i;:::-;56105:34;;-1:-1:-1;56105:34:10;-1:-1:-1;56174:3:10;56155:16;:3;-1:-1:-1;;;56155:16:10;:7;:16;:::i;:::-;:22;;;;;;;;56143:34;;1034:35;56193:1;:19;:51;;56231:13;56242:1;56231:10;:13::i;:::-;56193:51;;;56215:13;56226:1;56215:10;:13::i;:::-;56181:63;-1:-1:-1;56273:3:10;56260:10;56181:63;56266:3;56260:10;:5;:10;:::i;:::-;:16;;;;;;;;56248:28;;56292:11;:44;;56322:14;56334:1;56322:11;:14::i;:::-;56292:44;;;56306:13;56317:1;56306:10;:13::i;:::-;56280:56;-1:-1:-1;56347:47:10;56365:10;56280:56;56371:3;56365:10;:5;:10;:::i;:::-;56377:16;:3;-1:-1:-1;;;56377:16:10;:7;:16;:::i;:::-;56347:17;:47::i;:::-;56340:54;;;;55947:451;;;;;;;;;;;;:::o;56924:209::-;56998:6;;;;57022:8;;;57018:44;;57039:23;57055:2;57059;57039:15;:23::i;:::-;57032:30;;;;;;57018:44;57089:23;57105:2;57109;57089:15;:23::i;:::-;57066:46;;;;57124:1;57127;57116:13;;;;56924:209;;;;;;;;:::o;1813:7651::-;3886:36;3880:2;3868:54;3944:36;3938:2;3926:54;4002:36;3996:2;3984:54;4060:36;4054:2;4042:54;4118:36;4112:2;4100:54;4176:36;4170:2;4158:54;4234:36;4228:2;4216:54;4292:36;4286:2;4274:54;4350:36;4344:2;4332:54;4408:36;4402:2;4390:54;4466:36;4460:2;4448:54;4524:36;4518:2;4506:54;4582:36;4576:2;4564:54;4640:36;4634:2;4622:54;4698:36;4692:2;4680:54;4756:36;4750:2;4738:54;4814:36;4808:2;4796:54;4872:36;4866:2;4854:54;4930:36;4924:2;4912:54;4988:36;4982:2;4970:54;5046:36;5040:2;5028:54;5104:36;5098:2;5086:54;5162:36;5156:2;5144:54;5220:36;5214:2;5202:54;5278:36;5272:2;5260:54;5336:36;5330:2;5318:54;5394:36;5388:2;5376:54;5452:36;5446:2;5434:54;5510:36;5504:2;5492:54;5568:36;5562:2;5550:54;5626:36;5620:2;5608:54;5684:36;5678:2;5666:54;5742:36;5736:2;5724:54;5800:36;5794:2;5782:54;5858:36;5852:2;5840:54;5916:36;5910:2;5898:54;5974:36;5968:2;5956:54;6032:36;6026:2;6014:54;6090:36;6084:2;6072:54;6148:36;6142:2;6130:54;6206:36;6200:2;6188:54;6264:36;6258:2;6246:54;6322:36;6316:2;6304:54;6380:36;6374:2;6362:54;6438:36;6432:2;6420:54;6496:36;6490:2;6478:54;6554:36;6548:2;6536:54;6612:36;6606:2;6594:54;6670:36;6664:2;6652:54;6728:36;6722:2;6710:54;6786:36;6780:2;6768:54;6844:36;6838:2;6826:54;6902:36;6896:2;6884:54;6960:36;6954:2;6942:54;7018:36;7012:2;7000:54;7076:36;7070:2;7058:54;7134:36;7128:2;7116:54;7192:36;7186:2;7174:54;7250:36;7244:2;7232:54;7308:36;7302:2;7290:54;7366:36;7360:2;7348:54;7424:36;7418:2;7406:54;7482:36;7476:2;7464:54;7540:36;7534:2;7522:54;7598:36;7592:2;7580:54;7656:36;7650:2;7638:54;7714:36;7708:2;7696:54;7772:36;7766:2;7754:54;7831:36;7824:3;7812:55;7890:36;7883:3;7871:55;7949:36;7942:3;7930:55;8008:36;8001:3;7989:55;8067:36;8060:3;8048:55;8126:36;8119:3;8107:55;8185:36;8178:3;8166:55;8244:36;8237:3;8225:55;8303:36;8296:3;8284:55;8362:36;8355:3;8343:55;8421:36;8414:3;8402:55;8480:36;8473:3;8461:55;8539:36;8532:3;8520:55;8598:36;8591:3;8579:55;8657:36;8650:3;8638:55;8716:36;8709:3;8697:55;8775:36;8768:3;8756:55;8834:36;8827:3;8815:55;8893:36;8886:3;8874:55;8952:36;8945:3;8933:55;9011:36;9004:3;8992:55;9070:36;9063:3;9051:55;9129:36;9122:3;9110:55;9188:36;9181:3;9169:55;9247:36;9240:3;9228:55;9306:36;9299:3;9287:55;9365:36;9358:3;9346:55;9424:36;3868:11;9417:3;9405:16;;:55;1813:7651::o;9560:7354::-;9618:34;9600:12;:52;;;9674:34;9656:15;:52;9730:34;9712:15;:52;9786:34;9768:15;:52;9842:34;9824:15;:52;9898:34;9880:15;:52;9954:34;9936:15;:52;10010:34;9992:15;:52;10066:34;10048:15;:52;10122:34;10104:15;:52;10179:34;10160:16;:53;10236:34;10217:16;:53;10293:34;10274:16;:53;10350:34;10331:16;:53;10407:34;10388:16;:53;10464:34;10445:16;:53;10521:34;10502:16;:53;10578:34;10559:16;:53;10635:34;10616:16;:53;10692:34;10673:16;:53;10749:34;10730:16;:53;10806:34;10787:16;:53;10863:34;10844:16;:53;10920:34;10901:16;:53;10977:34;10958:16;:53;11034:34;11015:16;:53;11091:34;11072:16;:53;11148:34;11129:16;:53;11205:34;11186:16;:53;11262:34;11243:16;:53;11319:34;11300:16;:53;11376:34;11357:16;:53;11433:34;11414:16;:53;11490:34;11471:16;:53;11547:34;11528:16;:53;11604:34;11585:16;:53;11661:34;11642:16;:53;11718:34;11699:16;:53;11775:34;11756:16;:53;11832:34;11813:16;:53;11889:34;11870:16;:53;11946:34;11927:16;:53;12003:34;11984:16;:53;12060:34;12041:16;:53;12117:34;12098:16;:53;12174:34;12155:16;:53;12231:34;12212:16;:53;12288:34;12269:16;:53;12345:34;12326:16;:53;12402:34;12383:16;:53;12459:34;12440:16;:53;12516:34;12497:16;:53;12573:34;12554:16;:53;12630:34;12611:16;:53;12687:34;12668:16;:53;12744:34;12725:16;:53;12801:34;12782:16;:53;12858:34;12839:16;:53;12915:34;12896:16;:53;12972:34;12953:16;:53;13029:34;13010:16;:53;13086:34;13067:16;:53;13143:34;13124:16;:53;13200:34;13181:16;:53;13257:34;13238:16;:53;13314:34;13295:16;:53;13371:34;13352:16;:53;13428:34;13409:16;:53;13485:34;13466:16;:53;13542:34;13523:16;:53;13599:34;13580:16;:53;13656:34;13637:16;:53;13713:34;13694:16;:53;13770:34;13751:16;:53;13827:34;13808:16;:53;13884:34;13865:16;:53;13941:34;13922:16;:53;13998:34;13979:16;:53;14055:34;14036:16;:53;14112:34;14093:16;:53;14169:34;14150:16;:53;14226:34;14207:16;:53;14283:34;14264:16;:53;14340:34;14321:16;:53;14397:34;14378:16;:53;14454:34;14435:16;:53;14511:34;14492:16;:53;14568:34;14549:16;:53;14625:34;14606:16;:53;14682:34;14663:16;:53;14739:34;14720:16;:53;14796:34;14777:16;:53;14853:34;14834:16;:53;14910:34;14891:16;:53;14967:34;14948:16;:53;15024:34;15005:16;:53;15081:34;15062:16;:53;15138:34;15119:16;:53;15195:34;15176:16;:53;15252:34;15233:16;:53;15310:34;15290:17;:54;15368:34;15348:17;:54;15426:34;15406:17;:54;15484:34;15464:17;:54;15542:34;15522:17;:54;15600:34;15580:17;:54;15658:34;15638:17;:54;15716:34;15696:17;:54;15774:34;15754:17;:54;15832:34;15812:17;:54;15890:34;15870:17;:54;15948:34;15928:17;:54;16006:34;15986:17;:54;16064:34;16044:17;:54;16122:34;16102:17;:54;16180:34;16160:17;:54;16238:34;16218:17;:54;16296:34;16276:17;:54;16354:34;16334:17;:54;16412:34;16392:17;:54;16470:34;16450:17;:54;16528:34;16508:17;:54;16586:34;16566:17;:54;16644:34;16624:17;:54;16702:34;16682:17;:54;16760:34;16740:17;:54;16818:34;16798:17;:54;16876:34;;16869:3;16856:17;;38641:2750;38695:7;;;;;38777:34;38772:39;;38768:155;;38825:34;38818:41;;;;;38884:34;-1:-1:-1;;;38869:11:10;;38868:50;38864:54;;38768:155;38950:34;38945:39;;38941:155;;38998:34;38991:41;;;;;39057:34;-1:-1:-1;;;39042:11:10;;39041:50;39037:54;;38941:155;39123:34;39118:39;;39114:155;;39171:34;39164:41;;;;;39230:34;-1:-1:-1;;;39215:11:10;;39214:50;39210:54;;39114:155;39296:34;39291:39;;39287:155;;39344:34;39337:41;;;;;39403:34;-1:-1:-1;;;39388:11:10;;39387:50;39383:54;;39287:155;39469:34;39464:39;;39460:155;;39517:34;39510:41;;;;;39576:34;-1:-1:-1;;;39561:11:10;;39560:50;39556:54;;39460:155;39642:34;39637:39;;39633:155;;39690:34;39683:41;;;;;39749:34;-1:-1:-1;;;39734:11:10;;39733:50;39729:54;;39633:155;39815:34;39810:39;;39806:155;;39863:34;39856:41;;;;;39922:34;-1:-1:-1;;;39907:11:10;;39906:50;39902:54;;39806:155;39988:34;39983:39;;39979:155;;40036:34;40029:41;;;;;40095:34;-1:-1:-1;;;40080:11:10;;40079:50;40075:54;;39979:155;-1:-1:-1;;40161:11:10;;;-1:-1:-1;40161:11:10;;-1:-1:-1;;;;40181:5:10;;;40180:17;;-1:-1:-1;;;;40214:39:10;;;40209:45;;40208:85;40201:92;;;;;-1:-1:-1;;;40302:5:10;;;40301:17;;-1:-1:-1;40408:35:10;40364;:39;;;40359:45;;40358:85;40351:92;;;;;-1:-1:-1;;;40452:5:10;;;40451:17;;-1:-1:-1;40558:35:10;40514;:39;;;40509:45;;40508:85;40501:92;;;;;-1:-1:-1;;;40602:5:10;;;40601:17;;-1:-1:-1;40708:35:10;40664;:39;;;40659:45;;40658:85;40651:92;;;;;-1:-1:-1;;;40752:5:10;;;40751:17;;-1:-1:-1;40858:35:10;40814;:39;;;40809:45;;40808:85;40801:92;;;;;-1:-1:-1;;;40902:5:10;;;40901:17;;-1:-1:-1;41008:35:10;40964;:39;;;40959:45;;40958:85;40951:92;;;;;-1:-1:-1;;;41052:5:10;;;41051:17;;-1:-1:-1;41158:35:10;41114;:39;;;41109:45;;41108:85;41101:92;;;;;-1:-1:-1;;;41202:5:10;;;41201:17;;-1:-1:-1;41308:35:10;41264;:39;;;41259:45;;41258:85;41251:92;;;;;38641:2750;-1:-1:-1;;;;;38641:2750:10:o;31943:641::-;31997:7;;;;-1:-1:-1;;;32119:12:10;;32115:119;;32152:22;-1:-1:-1;;;32162:1:10;:11;;32152:9;:22::i;:::-;32179:11;;;;;;;;;;;-1:-1:-1;;;32214:15:10;;-1:-1:-1;32138:36:10;-1:-1:-1;32115:119:10;-1:-1:-1;;;32327:1:10;:11;32323:207;;;-1:-1:-1;390:3:10;32345:181;32379:1;32375;:5;;;32345:181;;;-1:-1:-1;;;32398:5:10;;;32397:17;;-1:-1:-1;;;;32441:12:10;;32437:84;;32462:7;;;;;;32500:14;-1:-1:-1;;32508:5:10;;32500:14;;;32493:21;;;;;32437:84;-1:-1:-1;;32382:3:10;32345:181;;;859:33;780;32542:19;;32541:39;32534:46;;31943:641;;;;;;;:::o;42031:3074::-;42085:7;42430:18;-1:-1:-1;;;42153:38:10;;;42231:5;;;42230:17;;;42315:5;;;42314:17;;;42399:5;;;42398:17;;;42426:22;;;42262:18;42258:22;;;42346:18;42342:22;;;;42335:29;42419;;42153:38;;42483:5;;;42482:17;42478:21;;42510:1;42514:18;42510:22;42503:29;;;;-1:-1:-1;;;42571:1:10;42567;:5;42566:17;;;;;;;;42562:21;;42594:1;42598:18;42594:22;42587:29;;;;-1:-1:-1;;;42655:1:10;42651;:5;42650:17;;;;;;;;42646:21;;42678:1;42682:18;42678:22;42671:29;;;;-1:-1:-1;;;42739:1:10;42735;:5;42734:17;;;;;;;;42730:21;;42762:1;42766:18;42762:22;42755:29;;;;-1:-1:-1;;;42823:1:10;42819;:5;42818:17;;;;;;;;42814:21;;42846:1;42850:18;42846:22;42839:29;;;;-1:-1:-1;;;42907:1:10;42903;:5;42902:17;;;;;;;;42898:21;;42930:1;42934:18;42930:22;42923:29;;;;-1:-1:-1;;;42991:1:10;42987;:5;42986:17;;;;;;;;42982:21;;43014:1;43018:18;43014:22;43007:29;;;;-1:-1:-1;;;43075:1:10;43071;:5;43070:17;;;;;;;;43066:21;;43098:1;43102:18;43098:22;43091:29;;;;-1:-1:-1;;;43159:1:10;43155;:5;43154:17;;;;;;;;43150:21;;43182:1;43186:18;43182:22;43175:29;;;;-1:-1:-1;;;43243:1:10;43239;:5;43238:17;;;;;;;;43234:21;;43266:1;43270:18;43266:22;43259:29;;;;-1:-1:-1;;;43327:1:10;43323;:5;43322:17;;;;;;;;43318:21;;43350:1;43354:18;43350:22;43343:29;;;;-1:-1:-1;;;43411:1:10;43407;:5;43406:17;;;;;;;;43402:21;;43434:1;43438:18;43434:22;43427:29;;;;-1:-1:-1;;;43495:1:10;43491;:5;43490:17;;;;;;;;43486:21;;43518:1;43522:18;43518:22;43511:29;;;;-1:-1:-1;;;43579:1:10;43575;:5;43574:17;;;;;;;;43570:21;;43602:1;43606:18;43602:22;43595:29;;;;-1:-1:-1;;;43663:1:10;43659;:5;43658:17;;;;;;;;43654:21;;43686:1;43690:18;43686:22;43679:29;;;;-1:-1:-1;;;43747:1:10;43743;:5;43742:17;;;;;;;43834:18;43742:17;;;43763:29;;;43828:24;:28;;-1:-1:-1;;;43828:38:10;;43742:17;-1:-1:-1;43930:35:10;43926:39;;43925:46;43921:139;;44025:35;43986;43980:41;;43979:81;43973:87;;43921:139;44097:35;44093:39;;44092:46;44088:139;;44192:35;44153;44147:41;;44146:81;44140:87;;44088:139;44264:35;44260:39;;44259:46;44255:139;;44359:35;44320;44314:41;;44313:81;44307:87;;44255:139;-1:-1:-1;;;44427:39:10;;44426:46;44422:139;;44526:35;44487;44481:41;;44480:81;44474:87;;44422:139;-1:-1:-1;;;44594:39:10;;44593:46;44589:139;;44693:35;44654;44648:41;;44647:81;44641:87;;44589:139;44765:35;44761:39;;44760:46;44756:139;;44860:35;44821;44815:41;;44814:81;44808:87;;44756:139;44932:35;44928:39;;44927:46;44923:139;;45027:35;44988;44982:41;;44981:81;44975:87;;44923:139;-1:-1:-1;45098:3:10;;42031:3074;-1:-1:-1;;;42031:3074:10:o;33389:355::-;33459:5;346:2;390:3;33459:5;33527:114;33543:2;33534:11;;:2;33539:1;33534:6;:11;;;33527:114;;;33576:1;33564:13;33565:7;;;33564:13;;;-1:-1:-1;33606:2:10;33586:11;:16;;;;;;;;;;;;:22;33582:54;;33615:3;33610:8;;33582:54;;;33633:3;33628:8;;33582:54;33527:114;;;33668:2;33649:11;:15;;;;;;;;;;;;:21;33645:36;;33679:2;33672:9;;;;33645:36;33708:2;33689:11;:15;;;;;;;;;;;;:21;33685:36;;33719:2;33712:9;;;;34279:3677;34352:7;34365:10;34384:11;34378:2;34365:15;;34398:1;34384:15;;34422:10;34409:23;;34415:2;34410;:7;34409:23;;;;;34404:28;;34443:2;34448:33;34443:38;34436:45;;;;34529:10;34516:23;;34522:2;34517;:7;34516:23;;;;;34511:28;;34550:2;34555:33;34550:38;34543:45;;;;34636:10;34623:23;;34629:2;34624;:7;34623:23;;;;;34618:28;;34657:2;34662:33;34657:38;34650:45;;;;34743:10;34730:23;;34736:2;34731;:7;34730:23;;;;;34725:28;;34764:2;34769:33;34764:38;34757:45;;;;34850:10;34837:23;;34843:2;34838;:7;34837:23;;;;;34832:28;;34871:2;34876:33;34871:38;34864:45;;;;34957:10;34944:23;;34950:2;34945;:7;34944:23;;;;;34939:28;;34978:2;34983:33;34978:38;34971:45;;;;35064:10;35051:23;;35057:2;35052;:7;35051:23;;;;;35046:28;;35085:2;35090:33;35085:38;35078:45;;;;35171:10;35158:23;;35164:2;35159;:7;35158:23;;;;;35153:28;;35192:2;35197:33;35192:38;35185:45;;;;35278:10;35265:23;;35271:2;35266;:7;35265:23;;;;;35260:28;;35299:2;35304:33;35299:38;35292:45;;;;35385:10;35372:23;;35378:2;35373;:7;35372:23;;;;;35367:28;;35406:2;35411:33;35406:38;35399:45;;;;35492:10;35479:23;;35485:2;35480;:7;35479:23;;;;;35474:28;;35513:2;35518:33;35513:38;35506:45;;;;35599:10;35586:23;;35592:2;35587;:7;35586:23;;;;;35581:28;;35620:2;35625:33;35620:38;35613:45;;;;35706:10;35693:23;;35699:2;35694;:7;35693:23;;;;;35688:28;;35727:2;35732:33;35727:38;35720:45;;;;35813:10;35800:23;;35806:2;35801;:7;35800:23;;;;;35795:28;;35834:2;35839:33;35834:38;35827:45;;;;35920:10;35907:23;;35913:2;35908;:7;35907:23;;;;;35902:28;;35941:2;35946:33;35941:38;35934:45;;;;36027:10;36014:23;;36020:2;36015;:7;36014:23;;;;;36009:28;;36048:2;36053:33;36048:38;36041:45;;;;36134:10;36121:23;;36127:2;36122;:7;36121:23;;;;;36116:28;;36155:2;36160:33;36155:38;36148:45;;;;36241:10;36228:23;;36234:2;36229;:7;36228:23;;;;;36223:28;;36262:2;36267:33;36262:38;36255:45;;;;36348:10;36335:23;;36341:2;36336;:7;36335:23;;;;;36330:28;;36369:2;36374:33;36369:38;36362:45;;;;36455:10;36442:23;;36448:2;36443;:7;36442:23;;;;;36437:28;;36476:2;36481:33;36476:38;36469:45;;;;36562:10;36549:23;;36555:2;36550;:7;36549:23;;;;;36544:28;;36583:2;36588:33;36583:38;36576:45;;;;36669:10;36656:23;;36662:2;36657;:7;36656:23;;;;;36651:28;;36690:2;36695:33;36690:38;36683:45;;;;36776:10;36763:23;;36769:2;36764;:7;36763:23;;;;;36758:28;;36797:2;36802:33;36797:38;36790:45;;;;36883:10;36870:23;;36876:2;36871;:7;36870:23;;;;;36865:28;;36904:2;36909:33;36904:38;36897:45;;;;36990:10;36977:23;;36983:2;36978;:7;36977:23;;;;;36972:28;;37011:2;37016:33;37011:38;37004:45;;;;37097:10;37084:23;;37090:2;37085;:7;37084:23;;;;;37079:28;;37118:2;37123:33;37118:38;37111:45;;;;37204:10;37191:23;;37197:2;37192;:7;37191:23;;;;;37186:28;;37225:2;37230:33;37225:38;37218:45;;;;37311:10;37298:23;;37304:2;37299;:7;37298:23;;;;;37293:28;;37332:2;37337:33;37332:38;37325:45;;;;37418:10;37405:23;;37411:2;37406;:7;37405:23;;;;;37400:28;;37439:2;37444:33;37439:38;37432:45;;;;37525:10;37512:23;;37518:2;37513;:7;37512:23;;;;;37507:28;;37546:2;37551:33;37546:38;37539:45;;;;37632:10;37619:23;;37625:2;37620;:7;37619:23;;;;;37614:28;;37653:2;37658:33;37653:38;37646:45;;;;37739:10;37726:23;;37732:2;37727;:7;37726:23;;;;;37721:28;;37760:2;37765:33;37760:38;37753:45;;;;37891:10;37884:17;;256:1;37884:17;;;;37878:2;37842:33;37836:3;:39;;;;;;;;:44;:66;;34279:3677;-1:-1:-1;;;;;34279:3677:10:o;56471:363::-;56539:7;56548;56734:9;56767;-1:-1:-1;;;56565:2:10;:13;;:30;;;;;-1:-1:-1;;;56582:2:10;:13;;56565:30;56561:51;;;56605:2;56609;56597:15;;;;;;56561:51;-1:-1:-1;;;56620:2:10;:12;56616:55;;;56659:2;-1:-1:-1;;;56643:2:10;:12;56642:19;;;;;;;;-1:-1:-1;;;56634:37:10;;;;;;56616:55;-1:-1:-1;;;56679:2:10;:12;56675:55;;;-1:-1:-1;;;56727:2:10;-1:-1:-1;;;56711:2:10;:12;56710:19;;;;;;;;56693:37;;;;;;56675:55;56751:2;56746;:7;:17;;56761:2;56746:17;;;56756:2;56746:17;56734:29;-1:-1:-1;56779:22:10;-1:-1:-1;;;56734:29:10;56789:11;;56779:22;56767:34;;56813:7;;;;;;;56822;;;;;56471:363;-1:-1:-1;;;;56471:363:10:o;45508:161::-;45564:7;1259:36;45581:25;;45577:53;;45615:15;45627:2;45615:11;:15::i;:::-;45608:22;;;;45577:53;45663:2;45642:17;45641:24;;;;;;;;45634:31;;45508:161;;;;:::o;45177:257::-;45232:7;1259:36;45249:25;;45245:53;;45283:15;45295:2;45283:11;:15::i;45245:53::-;1431:36;45306:25;;45302:53;;45340:15;45352:2;45340:11;:15::i;45302:53::-;1517:36;45363:25;;45359:53;;45397:15;45409:2;45397:11;:15::i;57247:311::-;57319:6;57327;57369:9;57442;57495;1656:62;57343:2;:19;57339:100;;;57387:18;57381:2;:25;57409:1;57381:29;57369:41;;57421:1;57415:7;;;;;;;;;;;57433:1;57427:7;;;;;;;;;;;57339:100;57454:37;297:7;57463:15;;57480:10;57463:2;57487;57480:6;:10::i;:::-;57454:8;:37::i;:::-;57442:49;297:7;57507:14;;;;-1:-1:-1;57247:311:10;-1:-1:-1;;;;;;57247:311:10:o;32695:348::-;32749:5;;;32787:3;32782:8;;32778:247;;;32824:49;32836:1;32831:2;:6;32824:49;;;32845:8;;;;;32852:1;32859:8;;;;;32824:49;;;32778:247;;;-1:-1:-1;32930:3:10;32915:106;32939:1;32935;:5;;;32915:106;;;32968:8;;;;;32961:16;;32957:59;;32986:8;;;;;;;;;33001;;;;32957:59;32942:7;;;;;;32915:106;;51375:4429;51431:7;51457:2;51431:7;-1:-1:-1;;;51489:7:10;;;51488:19;;-1:-1:-1;51523:44:10;51518:49;;51511:56;-1:-1:-1;;;51619:7:10;;;51618:19;;-1:-1:-1;51653:44:10;51648:49;;51641:56;-1:-1:-1;;;51749:7:10;;;51748:19;;-1:-1:-1;51783:44:10;51778:49;;51771:56;-1:-1:-1;;;51879:7:10;;;51878:19;;-1:-1:-1;51913:44:10;51908:49;;51901:56;-1:-1:-1;;;52009:7:10;;;52008:19;;-1:-1:-1;52043:44:10;52038:49;;52031:56;-1:-1:-1;;;52139:7:10;;;52138:19;;-1:-1:-1;52173:44:10;52168:49;;52161:56;-1:-1:-1;;;52269:7:10;;;52268:19;;-1:-1:-1;52303:44:10;52298:49;;52291:56;-1:-1:-1;;;52399:7:10;;;52398:19;;-1:-1:-1;52433:44:10;52428:49;;52421:56;-1:-1:-1;;;52529:7:10;;;52528:19;;-1:-1:-1;52563:44:10;52558:49;;52551:56;-1:-1:-1;;;52659:7:10;;;52658:19;;-1:-1:-1;52693:44:10;52688:49;;52681:56;-1:-1:-1;;;52789:7:10;;;52788:19;;-1:-1:-1;52823:44:10;52818:49;;52811:56;-1:-1:-1;;;52919:7:10;;;52918:19;;-1:-1:-1;52953:44:10;52948:49;;52941:56;-1:-1:-1;;;53049:7:10;;;53048:19;;-1:-1:-1;53083:44:10;53078:49;;53071:56;-1:-1:-1;;;53179:7:10;;;53178:19;;-1:-1:-1;53213:44:10;53208:49;;53201:56;-1:-1:-1;;;53309:7:10;;;53308:19;;-1:-1:-1;53343:44:10;53338:49;;53331:56;-1:-1:-1;;;53439:7:10;;;53438:19;;-1:-1:-1;53473:44:10;53468:49;;53461:56;-1:-1:-1;;;53569:7:10;;;53568:19;;-1:-1:-1;53603:44:10;53598:49;;53591:56;-1:-1:-1;;;53699:7:10;;;53698:19;;-1:-1:-1;53733:44:10;53728:49;;53721:56;-1:-1:-1;;;53829:7:10;;;53828:19;;-1:-1:-1;53863:44:10;53858:49;;53851:56;-1:-1:-1;;;53959:7:10;;;53958:19;;-1:-1:-1;53993:44:10;53988:49;;53981:56;-1:-1:-1;;;54089:7:10;;;54088:19;;-1:-1:-1;54123:44:10;54118:49;;54111:56;-1:-1:-1;;;54219:7:10;;;54218:19;;-1:-1:-1;54253:44:10;54248:49;;54241:56;-1:-1:-1;;;54349:7:10;;;54348:19;;-1:-1:-1;54383:44:10;54378:49;;54371:56;-1:-1:-1;;;54479:7:10;;;54478:19;;-1:-1:-1;54513:44:10;54508:49;;54501:56;-1:-1:-1;;;54609:7:10;;;54608:19;;-1:-1:-1;54643:44:10;54638:49;;54631:56;-1:-1:-1;;;54739:7:10;;;54738:19;;-1:-1:-1;54773:44:10;54768:49;;54761:56;-1:-1:-1;;;54869:7:10;;;54868:19;;-1:-1:-1;54903:44:10;54898:49;;54891:56;-1:-1:-1;;;54999:7:10;;;54998:19;;-1:-1:-1;55033:44:10;55028:49;;55021:56;-1:-1:-1;;;55129:7:10;;;55128:19;;-1:-1:-1;55163:44:10;55158:49;;55151:56;-1:-1:-1;;;55259:7:10;;;55258:19;;-1:-1:-1;55293:44:10;55288:49;;55281:56;-1:-1:-1;;;55389:7:10;;;55388:19;;-1:-1:-1;55423:44:10;55418:49;;55411:56;-1:-1:-1;;;55519:7:10;;;55518:19;;-1:-1:-1;55553:44:10;55548:49;;55541:56;-1:-1:-1;;;55694:2:10;55657:34;55541:56;55651:40;:45;:55;;51375:4429;-1:-1:-1;;;;51375:4429:10:o;45837:4454::-;45893:7;45919:2;-1:-1:-1;;;45940:12:10;;;45956:34;45939:51;;46068:7;;;46067:19;;-1:-1:-1;46102:44:10;46097:49;;46090:56;-1:-1:-1;;;46198:7:10;;;46197:19;;-1:-1:-1;46232:44:10;46227:49;;46220:56;;-1:-1:-1;;;46328:7:10;;;46327:19;;-1:-1:-1;46362:44:10;46357:49;;46350:56;-1:-1:-1;;;46458:7:10;;;46457:19;;-1:-1:-1;46492:44:10;46487:49;;46480:56;;-1:-1:-1;;;46588:7:10;;;46587:19;;-1:-1:-1;46622:44:10;46617:49;;46610:56;-1:-1:-1;;;46718:7:10;;;46717:19;;-1:-1:-1;46752:44:10;46747:49;;46740:56;;-1:-1:-1;;;46848:7:10;;;46847:19;;-1:-1:-1;46882:44:10;46877:49;;46870:56;-1:-1:-1;;;46978:7:10;;;46977:19;;-1:-1:-1;47012:44:10;47007:49;;47000:56;;-1:-1:-1;;;47108:7:10;;;47107:19;;-1:-1:-1;47142:44:10;47137:49;;47130:56;-1:-1:-1;;;47238:7:10;;;47237:19;;-1:-1:-1;47272:44:10;47267:49;;47260:56;;-1:-1:-1;;;47368:7:10;;;47367:19;;-1:-1:-1;47402:44:10;47397:49;;47390:56;-1:-1:-1;;;47498:7:10;;;47497:19;;-1:-1:-1;47532:44:10;47527:49;;47520:56;;-1:-1:-1;;;47628:7:10;;;47627:19;;-1:-1:-1;47662:44:10;47657:49;;47650:56;-1:-1:-1;;;47758:7:10;;;47757:19;;-1:-1:-1;47792:44:10;47787:49;;47780:56;;-1:-1:-1;;;47888:7:10;;;47887:19;;-1:-1:-1;47922:44:10;47917:49;;47910:56;-1:-1:-1;;;48018:7:10;;;48017:19;;-1:-1:-1;48052:44:10;48047:49;;48040:56;;-1:-1:-1;;;48148:7:10;;;48147:19;;-1:-1:-1;48182:44:10;48177:49;;48170:56;-1:-1:-1;;;48278:7:10;;;48277:19;;-1:-1:-1;48312:44:10;48307:49;;48300:56;;-1:-1:-1;;;48408:7:10;;;48407:19;;-1:-1:-1;48442:44:10;48437:49;;48430:56;-1:-1:-1;;;48538:7:10;;;48537:19;;-1:-1:-1;48572:44:10;48567:49;;48560:56;;-1:-1:-1;;;48668:7:10;;;48667:19;;-1:-1:-1;48702:44:10;48697:49;;48690:56;-1:-1:-1;;;48798:7:10;;;48797:19;;-1:-1:-1;48832:44:10;48827:49;;48820:56;;-1:-1:-1;;;48928:7:10;;;48927:19;;-1:-1:-1;48962:44:10;48957:49;;48950:56;-1:-1:-1;;;49058:7:10;;;49057:19;;-1:-1:-1;49092:44:10;49087:49;;49080:56;;-1:-1:-1;;;49188:7:10;;;49187:19;;-1:-1:-1;49222:44:10;49217:49;;49210:56;-1:-1:-1;;;49318:7:10;;;49317:19;;-1:-1:-1;49352:44:10;49347:49;;49340:56;;-1:-1:-1;;;49448:7:10;;;49447:19;;-1:-1:-1;49482:44:10;49477:49;;49470:56;-1:-1:-1;;;49578:7:10;;;49577:19;;-1:-1:-1;49612:44:10;49607:49;;49600:56;;-1:-1:-1;;;49708:7:10;;;49707:19;;-1:-1:-1;49742:44:10;49737:49;;49730:56;-1:-1:-1;;;49838:7:10;;;49837:19;;-1:-1:-1;49872:44:10;49867:49;;49860:56;;-1:-1:-1;;;49968:7:10;;;49967:19;;-1:-1:-1;50002:44:10;49997:49;;49990:56;-1:-1:-1;;;50098:7:10;;;50097:19;;-1:-1:-1;50132:44:10;50127:49;;50120:56;;50236:34;50120:56;50230:40;;;45837:4454;-1:-1:-1;;;;45837:4454:10:o;50432:362::-;50488:7;-1:-1:-1;;50513:28:10;;1345:36;50557:23;;;;50596;;;;50662:1;50658:5;;50635:29;50488:7;;50680:12;50557:23;50680:15;;;;;;;;;;-1:-1:-1;50711:12:10;50728:1;50724:5;;50711:19;;;;;;;;;1345:36;50761:5;;;50756:11;50747:5;;;;50742:11;:25;;;;50741:49;;;-1:-1:-1;;;;50432:362:10:o;50935:270::-;50991:7;51004:10;51075;1034:35;51017:2;:20;:54;;51057:14;51068:2;51057:10;:14::i;:::-;51017:54;;;51040:14;51051:2;51040:10;:14::i;:::-;51004:67;;1034:35;51088:2;:20;:54;;51128:14;51139:2;51128:10;:14::i;:::-;51088:54;;;51111:14;51122:2;51111:10;:14::i;:::-;51075:67;;51199:2;-1:-1:-1;;;51182:2:10;-1:-1:-1;;;51166:2:10;:12;51165:19;;;;;;;;51160:2;51155;:7;:29;51154:41;51153:48;;;;;;57666:124;57731:7;57784:1;57779:2;:6;57774:2;:11;57767:2;57762;:7;;;;;;;;57761:25;;;;;;;;57756:2;57751;:7;;;;;;;;:35;;57666:124;-1:-1:-1;;;57666:124:10:o" - }, - "methodIdentifiers": { - "balancedWeights(uint256,uint256,uint256,uint256,uint256)": "a11aa1b4", - "calculateCrossConnectorReturn(uint256,uint32,uint256,uint32,uint256)": "65098bb3", - "calculateCrossReserveReturn(uint256,uint32,uint256,uint32,uint256)": "79c1b450", - "calculateFundCost(uint256,uint256,uint32,uint256)": "1da6bbfb", - "calculateLiquidateReturn(uint256,uint256,uint32,uint256)": "abfd231d", - "calculatePurchaseReturn(uint256,uint256,uint32,uint256)": "29a00e7c", - "calculateSaleReturn(uint256,uint256,uint32,uint256)": "49f9b0f7", - "crossReserveRate(uint256,uint32,uint256,uint32,uint256)": "9d114108", - "crossReserveTargetAmount(uint256,uint32,uint256,uint32,uint256)": "94491fab", - "fundCost(uint256,uint256,uint32,uint256)": "ebbb2158", - "fundSupplyAmount(uint256,uint256,uint32,uint256)": "2f55bdb5", - "init()": "e1c7392a", - "liquidateRate(uint256,uint256,uint32,uint256)": "35b49af4", - "liquidateReserveAmount(uint256,uint256,uint32,uint256)": "8074590a", - "purchaseRate(uint256,uint256,uint32,uint256)": "48d73fed", - "purchaseTargetAmount(uint256,uint256,uint32,uint256)": "f3250fe2", - "saleRate(uint256,uint256,uint32,uint256)": "f732f1c9", - "saleTargetAmount(uint256,uint256,uint32,uint256)": "76cf0b56", - "version()": "54fd4d50" - } - }, - "userdoc": { - "methods": {} - } - } - }, - "solidity/contracts/converter/interfaces/IConverter.sol": { - "IConverter": { - "abi": [ - { - "constant": true, - "inputs": [ - { - "name": "_address", - "type": "address" - } - ], - "name": "connectors", - "outputs": [ - { - "name": "", - "type": "uint256" - }, - { - "name": "", - "type": "uint32" - }, - { - "name": "", - "type": "bool" - }, - { - "name": "", - "type": "bool" - }, - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_index", - "type": "uint256" - } - ], - "name": "connectorTokens", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_newOwner", - "type": "address" - } - ], - "name": "transferTokenOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "isActive", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "acceptTokenOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "converterType", - "outputs": [ - { - "name": "", - "type": "uint16" - } - ], - "payable": false, - "stateMutability": "pure", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_whitelist", - "type": "address" - } - ], - "name": "setConversionWhitelist", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "conversionFee", - "outputs": [ - { - "name": "", - "type": "uint32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_token", - "type": "address" - }, - { - "name": "_to", - "type": "address" - }, - { - "name": "_amount", - "type": "uint256" - } - ], - "name": "withdrawTokens", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_newOwner", - "type": "address" - } - ], - "name": "transferAnchorOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_to", - "type": "address" - } - ], - "name": "withdrawETH", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_token", - "type": "address" - }, - { - "name": "_ratio", - "type": "uint32" - } - ], - "name": "addReserve", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "connectorTokenCount", - "outputs": [ - { - "name": "", - "type": "uint16" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "acceptOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "owner", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "maxConversionFee", - "outputs": [ - { - "name": "", - "type": "uint32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_sourceToken", - "type": "address" - }, - { - "name": "_targetToken", - "type": "address" - }, - { - "name": "_amount", - "type": "uint256" - } - ], - "name": "targetAmountAndFee", - "outputs": [ - { - "name": "", - "type": "uint256" - }, - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "conversionWhitelist", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "acceptAnchorOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "anchor", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_connectorToken", - "type": "address" - } - ], - "name": "getConnectorBalance", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_reserveToken", - "type": "address" - } - ], - "name": "reserveBalance", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_sourceToken", - "type": "address" - }, - { - "name": "_targetToken", - "type": "address" - }, - { - "name": "_amount", - "type": "uint256" - }, - { - "name": "_trader", - "type": "address" - }, - { - "name": "_beneficiary", - "type": "address" - } - ], - "name": "convert", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": true, - "stateMutability": "payable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_conversionFee", - "type": "uint32" - } - ], - "name": "setConversionFee", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "token", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "payable": true, - "stateMutability": "payable", - "type": "fallback" - } - ], - "devdoc": { - "methods": {} - }, - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "deployedBytecode": { - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "methodIdentifiers": { - "acceptAnchorOwnership()": "cdc91c69", - "acceptOwnership()": "79ba5097", - "acceptTokenOwnership()": "38a5e016", - "addReserve(address,uint32)": "6a49d2c4", - "anchor()": "d3fb73b4", - "connectorTokenCount()": "71f52bf3", - "connectorTokens(uint256)": "19b64015", - "connectors(address)": "0e53aae9", - "conversionFee()": "579cd3ca", - "conversionWhitelist()": "c45d3d92", - "convert(address,address,uint256,address,address)": "e8dc12ff", - "converterType()": "3e8ff43f", - "getConnectorBalance(address)": "d8959512", - "isActive()": "22f3e2d4", - "maxConversionFee()": "94c275ad", - "owner()": "8da5cb5b", - "reserveBalance(address)": "dc8de379", - "setConversionFee(uint32)": "ecbca55d", - "setConversionWhitelist(address)": "4af80f0e", - "targetAmountAndFee(address,address,uint256)": "af94b8d8", - "token()": "fc0c546a", - "transferAnchorOwnership(address)": "67b6d57c", - "transferOwnership(address)": "f2fde38b", - "transferTokenOwnership(address)": "21e6b53d", - "withdrawETH(address)": "690d8320", - "withdrawTokens(address,address,uint256)": "5e35359e" - } - }, - "userdoc": { - "methods": {} - } - } - }, - "solidity/contracts/converter/interfaces/IConverterAnchor.sol": { - "IConverterAnchor": { - "abi": [ - { - "constant": false, - "inputs": [ - { - "name": "_token", - "type": "address" - }, - { - "name": "_to", - "type": "address" - }, - { - "name": "_amount", - "type": "uint256" - } - ], - "name": "withdrawTokens", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "acceptOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "owner", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - } - ], - "devdoc": { - "methods": {} - }, - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "deployedBytecode": { - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "methodIdentifiers": { - "acceptOwnership()": "79ba5097", - "owner()": "8da5cb5b", - "transferOwnership(address)": "f2fde38b", - "withdrawTokens(address,address,uint256)": "5e35359e" - } - }, - "userdoc": { - "methods": {} - } - } - }, - "solidity/contracts/converter/interfaces/IConverterFactory.sol": { - "IConverterFactory": { - "abi": [ - { - "constant": false, - "inputs": [ - { - "name": "_type", - "type": "uint16" - }, - { - "name": "_anchor", - "type": "address" - }, - { - "name": "_registry", - "type": "address" - }, - { - "name": "_maxConversionFee", - "type": "uint32" - } - ], - "name": "createConverter", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_type", - "type": "uint16" - }, - { - "name": "_name", - "type": "string" - }, - { - "name": "_symbol", - "type": "string" - }, - { - "name": "_decimals", - "type": "uint8" - } - ], - "name": "createAnchor", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_type", - "type": "uint16" - } - ], - "name": "customFactories", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - } - ], - "devdoc": { - "methods": {} - }, - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "deployedBytecode": { - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "methodIdentifiers": { - "createAnchor(uint16,string,string,uint8)": "2e9ab7b3", - "createConverter(uint16,address,address,uint32)": "15f64b6a", - "customFactories(uint16)": "c977aed2" - } - }, - "userdoc": { - "methods": {} - } - } - }, - "solidity/contracts/converter/interfaces/IConverterRegistry.sol": { - "IConverterRegistry": { - "abi": [ - { - "constant": true, - "inputs": [ - { - "name": "_convertibleToken", - "type": "address" - } - ], - "name": "getConvertibleTokenAnchors", - "outputs": [ - { - "name": "", - "type": "address[]" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_value", - "type": "address" - } - ], - "name": "isConvertibleToken", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_convertibleToken", - "type": "address" - } - ], - "name": "getConvertibleTokenAnchorCount", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_index", - "type": "uint256" - } - ], - "name": "getAnchor", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getConvertibleTokens", - "outputs": [ - { - "name": "", - "type": "address[]" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_convertibleToken", - "type": "address" - }, - { - "name": "_index", - "type": "uint256" - } - ], - "name": "getConvertibleTokenAnchor", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getConvertibleTokenCount", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getLiquidityPoolCount", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getLiquidityPools", - "outputs": [ - { - "name": "", - "type": "address[]" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_index", - "type": "uint256" - } - ], - "name": "getConvertibleToken", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_index", - "type": "uint256" - } - ], - "name": "getLiquidityPool", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_convertibleToken", - "type": "address" - }, - { - "name": "_value", - "type": "address" - } - ], - "name": "isConvertibleTokenAnchor", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getAnchorCount", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_value", - "type": "address" - } - ], - "name": "isAnchor", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_value", - "type": "address" - } - ], - "name": "isLiquidityPool", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getAnchors", - "outputs": [ - { - "name": "", - "type": "address[]" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - } - ], - "devdoc": { - "methods": {} - }, - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "deployedBytecode": { - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "methodIdentifiers": { - "getAnchor(uint256)": "4c7df18f", - "getAnchorCount()": "d3182bed", - "getAnchors()": "effb3c6e", - "getConvertibleToken(uint256)": "865cf194", - "getConvertibleTokenAnchor(address,uint256)": "603f51e4", - "getConvertibleTokenAnchorCount(address)": "49c5f32b", - "getConvertibleTokenAnchors(address)": "11839064", - "getConvertibleTokenCount()": "69be4784", - "getConvertibleTokens()": "5f1b50fe", - "getLiquidityPool(uint256)": "a74498aa", - "getLiquidityPoolCount()": "7a5f0ffd", - "getLiquidityPools()": "7f45c4c3", - "isAnchor(address)": "d8cced2a", - "isConvertibleToken(address)": "3ab8857c", - "isConvertibleTokenAnchor(address,address)": "b4c4197a", - "isLiquidityPool(address)": "e85455d7" - } - }, - "userdoc": { - "methods": {} - } - } - }, - "solidity/contracts/converter/interfaces/IConverterRegistryData.sol": { - "IConverterRegistryData": { - "abi": [ - { - "constant": true, - "inputs": [], - "name": "getSmartTokens", - "outputs": [ - { - "name": "", - "type": "address[]" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_convertibleToken", - "type": "address" - }, - { - "name": "_smartToken", - "type": "address" - } - ], - "name": "addConvertibleToken", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_value", - "type": "address" - } - ], - "name": "isConvertibleToken", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_value", - "type": "address" - } - ], - "name": "isSmartToken", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getConvertibleTokens", - "outputs": [ - { - "name": "", - "type": "address[]" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getConvertibleTokenCount", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_convertibleToken", - "type": "address" - }, - { - "name": "_value", - "type": "address" - } - ], - "name": "isConvertibleTokenSmartToken", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getLiquidityPoolCount", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getLiquidityPools", - "outputs": [ - { - "name": "", - "type": "address[]" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_index", - "type": "uint256" - } - ], - "name": "getConvertibleToken", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_smartToken", - "type": "address" - } - ], - "name": "addSmartToken", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_index", - "type": "uint256" - } - ], - "name": "getSmartToken", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_convertibleToken", - "type": "address" - } - ], - "name": "getConvertibleTokenSmartTokenCount", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_index", - "type": "uint256" - } - ], - "name": "getLiquidityPool", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_liquidityPool", - "type": "address" - } - ], - "name": "removeLiquidityPool", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_smartToken", - "type": "address" - } - ], - "name": "removeSmartToken", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_convertibleToken", - "type": "address" - }, - { - "name": "_index", - "type": "uint256" - } - ], - "name": "getConvertibleTokenSmartToken", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getSmartTokenCount", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_value", - "type": "address" - } - ], - "name": "isLiquidityPool", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_liquidityPool", - "type": "address" - } - ], - "name": "addLiquidityPool", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_convertibleToken", - "type": "address" - } - ], - "name": "getConvertibleTokenSmartTokens", - "outputs": [ - { - "name": "", - "type": "address[]" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_convertibleToken", - "type": "address" - }, - { - "name": "_smartToken", - "type": "address" - } - ], - "name": "removeConvertibleToken", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - } - ], - "devdoc": { - "methods": {} - }, - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "deployedBytecode": { - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "methodIdentifiers": { - "addConvertibleToken(address,address)": "36900c11", - "addLiquidityPool(address)": "ee6a934c", - "addSmartToken(address)": "8de6c3eb", - "getConvertibleToken(uint256)": "865cf194", - "getConvertibleTokenCount()": "69be4784", - "getConvertibleTokenSmartToken(address,uint256)": "d6c4b5b2", - "getConvertibleTokenSmartTokenCount(address)": "a43d5e94", - "getConvertibleTokenSmartTokens(address)": "f4fb86c0", - "getConvertibleTokens()": "5f1b50fe", - "getLiquidityPool(uint256)": "a74498aa", - "getLiquidityPoolCount()": "7a5f0ffd", - "getLiquidityPools()": "7f45c4c3", - "getSmartToken(uint256)": "a109d214", - "getSmartTokenCount()": "e571049b", - "getSmartTokens()": "04ceaf41", - "isConvertibleToken(address)": "3ab8857c", - "isConvertibleTokenSmartToken(address,address)": "725b8786", - "isLiquidityPool(address)": "e85455d7", - "isSmartToken(address)": "4123ef60", - "removeConvertibleToken(address,address)": "fba8f031", - "removeLiquidityPool(address)": "ae22107f", - "removeSmartToken(address)": "ceb9838c" - } - }, - "userdoc": { - "methods": {} - } - } - }, - "solidity/contracts/converter/interfaces/IConverterUpgrader.sol": { - "IConverterUpgrader": { - "abi": [ - { - "constant": false, - "inputs": [ - { - "name": "_version", - "type": "uint16" - } - ], - "name": "upgrade", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_version", - "type": "bytes32" - } - ], - "name": "upgrade", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - } - ], - "devdoc": { - "methods": {} - }, - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "deployedBytecode": { - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "methodIdentifiers": { - "upgrade(bytes32)": "bc444e13", - "upgrade(uint16)": "90f58c96" - } - }, - "userdoc": { - "methods": {} - } - } - }, - "solidity/contracts/converter/interfaces/ISovrynSwapFormula.sol": { - "ISovrynSwapFormula": { - "abi": [ - { - "constant": true, - "inputs": [ - { - "name": "_supply", - "type": "uint256" - }, - { - "name": "_reserveBalance", - "type": "uint256" - }, - { - "name": "_reserveRatio", - "type": "uint32" - }, - { - "name": "_amount", - "type": "uint256" - } - ], - "name": "fundSupplyAmount", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_supply", - "type": "uint256" - }, - { - "name": "_reserveBalance", - "type": "uint256" - }, - { - "name": "_reserveWeight", - "type": "uint32" - }, - { - "name": "_amount", - "type": "uint256" - } - ], - "name": "saleTargetAmount", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_supply", - "type": "uint256" - }, - { - "name": "_reserveBalance", - "type": "uint256" - }, - { - "name": "_reserveRatio", - "type": "uint32" - }, - { - "name": "_amount", - "type": "uint256" - } - ], - "name": "liquidateReserveAmount", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_sourceReserveBalance", - "type": "uint256" - }, - { - "name": "_sourceReserveWeight", - "type": "uint32" - }, - { - "name": "_targetReserveBalance", - "type": "uint256" - }, - { - "name": "_targetReserveWeight", - "type": "uint32" - }, - { - "name": "_amount", - "type": "uint256" - } - ], - "name": "crossReserveTargetAmount", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_primaryReserveStakedBalance", - "type": "uint256" - }, - { - "name": "_primaryReserveBalance", - "type": "uint256" - }, - { - "name": "_secondaryReserveBalance", - "type": "uint256" - }, - { - "name": "_reserveRateNumerator", - "type": "uint256" - }, - { - "name": "_reserveRateDenominator", - "type": "uint256" - } - ], - "name": "balancedWeights", - "outputs": [ - { - "name": "", - "type": "uint32" - }, - { - "name": "", - "type": "uint32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_supply", - "type": "uint256" - }, - { - "name": "_reserveBalance", - "type": "uint256" - }, - { - "name": "_reserveRatio", - "type": "uint32" - }, - { - "name": "_amount", - "type": "uint256" - } - ], - "name": "fundCost", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_supply", - "type": "uint256" - }, - { - "name": "_reserveBalance", - "type": "uint256" - }, - { - "name": "_reserveWeight", - "type": "uint32" - }, - { - "name": "_amount", - "type": "uint256" - } - ], - "name": "purchaseTargetAmount", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - } - ], - "devdoc": { - "methods": {} - }, - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "deployedBytecode": { - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "methodIdentifiers": { - "balancedWeights(uint256,uint256,uint256,uint256,uint256)": "a11aa1b4", - "crossReserveTargetAmount(uint256,uint32,uint256,uint32,uint256)": "94491fab", - "fundCost(uint256,uint256,uint32,uint256)": "ebbb2158", - "fundSupplyAmount(uint256,uint256,uint32,uint256)": "2f55bdb5", - "liquidateReserveAmount(uint256,uint256,uint32,uint256)": "8074590a", - "purchaseTargetAmount(uint256,uint256,uint32,uint256)": "f3250fe2", - "saleTargetAmount(uint256,uint256,uint32,uint256)": "76cf0b56" - } - }, - "userdoc": { - "methods": {} - } - } - }, - "solidity/contracts/converter/interfaces/ITypedConverterAnchorFactory.sol": { - "ITypedConverterAnchorFactory": { - "abi": [ - { - "constant": true, - "inputs": [], - "name": "converterType", - "outputs": [ - { - "name": "", - "type": "uint16" - } - ], - "payable": false, - "stateMutability": "pure", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_name", - "type": "string" - }, - { - "name": "_symbol", - "type": "string" - }, - { - "name": "_decimals", - "type": "uint8" - } - ], - "name": "createAnchor", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - } - ], - "devdoc": { - "methods": {} - }, - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "deployedBytecode": { - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "methodIdentifiers": { - "converterType()": "3e8ff43f", - "createAnchor(string,string,uint8)": "a9fd4a2a" - } - }, - "userdoc": { - "methods": {} - } - } - }, - "solidity/contracts/converter/interfaces/ITypedConverterCustomFactory.sol": { - "ITypedConverterCustomFactory": { - "abi": [ - { - "constant": true, - "inputs": [], - "name": "converterType", - "outputs": [ - { - "name": "", - "type": "uint16" - } - ], - "payable": false, - "stateMutability": "pure", - "type": "function" - } - ], - "devdoc": { - "methods": {} - }, - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "deployedBytecode": { - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "methodIdentifiers": { - "converterType()": "3e8ff43f" - } - }, - "userdoc": { - "methods": {} - } - } - }, - "solidity/contracts/converter/interfaces/ITypedConverterFactory.sol": { - "ITypedConverterFactory": { - "abi": [ - { - "constant": false, - "inputs": [ - { - "name": "_anchor", - "type": "address" - }, - { - "name": "_registry", - "type": "address" - }, - { - "name": "_maxConversionFee", - "type": "uint32" - } - ], - "name": "createConverter", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "converterType", - "outputs": [ - { - "name": "", - "type": "uint16" - } - ], - "payable": false, - "stateMutability": "pure", - "type": "function" - } - ], - "devdoc": { - "methods": {} - }, - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "deployedBytecode": { - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "methodIdentifiers": { - "converterType()": "3e8ff43f", - "createConverter(address,address,uint32)": "11413958" - } - }, - "userdoc": { - "methods": {} - } - } - }, - "solidity/contracts/converter/types/liquid-token/LiquidTokenConverter.sol": { - "LiquidTokenConverter": { - "abi": [ - { - "constant": false, - "inputs": [ - { - "name": "_onlyOwnerCanUpdateRegistry", - "type": "bool" - } - ], - "name": "restrictRegistryUpdate", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "reserveRatio", - "outputs": [ - { - "name": "", - "type": "uint32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_address", - "type": "address" - } - ], - "name": "connectors", - "outputs": [ - { - "name": "", - "type": "uint256" - }, - { - "name": "", - "type": "uint32" - }, - { - "name": "", - "type": "bool" - }, - { - "name": "", - "type": "bool" - }, - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "hasETHReserve", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_index", - "type": "uint256" - } - ], - "name": "connectorTokens", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_reserveToken", - "type": "address" - } - ], - "name": "reserveWeight", - "outputs": [ - { - "name": "", - "type": "uint32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_sourceToken", - "type": "address" - }, - { - "name": "_targetToken", - "type": "address" - }, - { - "name": "_amount", - "type": "uint256" - } - ], - "name": "getReturn", - "outputs": [ - { - "name": "", - "type": "uint256" - }, - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_newOwner", - "type": "address" - } - ], - "name": "transferTokenOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "isActive", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "onlyOwnerCanUpdateRegistry", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "acceptTokenOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_token", - "type": "address" - }, - { - "name": "_to", - "type": "address" - }, - { - "name": "_amount", - "type": "uint256" - } - ], - "name": "withdrawFromAnchor", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "converterType", - "outputs": [ - { - "name": "", - "type": "uint16" - } - ], - "payable": false, - "stateMutability": "pure", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "updateRegistry", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_whitelist", - "type": "address" - } - ], - "name": "setConversionWhitelist", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "version", - "outputs": [ - { - "name": "", - "type": "uint16" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "conversionFee", - "outputs": [ - { - "name": "", - "type": "uint32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_token", - "type": "address" - }, - { - "name": "_to", - "type": "address" - }, - { - "name": "_amount", - "type": "uint256" - } - ], - "name": "withdrawTokens", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "prevRegistry", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_newOwner", - "type": "address" - } - ], - "name": "transferAnchorOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_to", - "type": "address" - } - ], - "name": "withdrawETH", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_token", - "type": "address" - }, - { - "name": "_weight", - "type": "uint32" - } - ], - "name": "addReserve", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "connectorTokenCount", - "outputs": [ - { - "name": "", - "type": "uint16" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "acceptOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "registry", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "owner", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "maxConversionFee", - "outputs": [ - { - "name": "", - "type": "uint32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "reserveTokenCount", - "outputs": [ - { - "name": "", - "type": "uint16" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_sourceToken", - "type": "address" - }, - { - "name": "_targetToken", - "type": "address" - }, - { - "name": "_amount", - "type": "uint256" - } - ], - "name": "targetAmountAndFee", - "outputs": [ - { - "name": "", - "type": "uint256" - }, - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "restoreRegistry", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "conversionsEnabled", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "conversionWhitelist", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "acceptAnchorOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "", - "type": "uint256" - } - ], - "name": "reserveTokens", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "isV28OrHigher", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "pure", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "anchor", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "newOwner", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "upgrade", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "", - "type": "address" - } - ], - "name": "reserves", - "outputs": [ - { - "name": "balance", - "type": "uint256" - }, - { - "name": "weight", - "type": "uint32" - }, - { - "name": "deprecated1", - "type": "bool" - }, - { - "name": "deprecated2", - "type": "bool" - }, - { - "name": "isSet", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_connectorToken", - "type": "address" - } - ], - "name": "getConnectorBalance", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_reserveToken", - "type": "address" - } - ], - "name": "reserveBalance", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_sourceToken", - "type": "address" - }, - { - "name": "_targetToken", - "type": "address" - }, - { - "name": "_amount", - "type": "uint256" - }, - { - "name": "_trader", - "type": "address" - }, - { - "name": "_beneficiary", - "type": "address" - } - ], - "name": "convert", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": true, - "stateMutability": "payable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_conversionFee", - "type": "uint32" - } - ], - "name": "setConversionFee", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "token", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "name": "_token", - "type": "address" - }, - { - "name": "_registry", - "type": "address" - }, - { - "name": "_maxConversionFee", - "type": "uint32" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "payable": true, - "stateMutability": "payable", - "type": "fallback" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "_type", - "type": "uint16" - }, - { - "indexed": true, - "name": "_anchor", - "type": "address" - }, - { - "indexed": true, - "name": "_activated", - "type": "bool" - } - ], - "name": "Activation", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "_fromToken", - "type": "address" - }, - { - "indexed": true, - "name": "_toToken", - "type": "address" - }, - { - "indexed": true, - "name": "_trader", - "type": "address" - }, - { - "indexed": false, - "name": "_amount", - "type": "uint256" - }, - { - "indexed": false, - "name": "_return", - "type": "uint256" - }, - { - "indexed": false, - "name": "_conversionFee", - "type": "int256" - } - ], - "name": "Conversion", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "_token1", - "type": "address" - }, - { - "indexed": true, - "name": "_token2", - "type": "address" - }, - { - "indexed": false, - "name": "_rateN", - "type": "uint256" - }, - { - "indexed": false, - "name": "_rateD", - "type": "uint256" - } - ], - "name": "TokenRateUpdate", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "_prevFee", - "type": "uint32" - }, - { - "indexed": false, - "name": "_newFee", - "type": "uint32" - } - ], - "name": "ConversionFeeUpdate", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "_prevOwner", - "type": "address" - }, - { - "indexed": true, - "name": "_newOwner", - "type": "address" - } - ], - "name": "OwnerUpdate", - "type": "event" - } - ], - "devdoc": { - "methods": { - "acceptAnchorOwnership()": { - "details": "accepts ownership of the anchor after an ownership transfer\r also activates the converter\r can only be called by the contract owner\r note that prior to version 28, you should use 'acceptTokenOwnership' instead\r" - }, - "acceptOwnership()": { - "details": "used by a new owner to accept an ownership transfer" - }, - "acceptTokenOwnership()": { - "details": "deprecated, backward compatibility" - }, - "addReserve(address,uint32)": { - "details": "defines the reserve token for the converter\r can only be called by the owner while the converter is inactive and the\r reserve wasn't defined yet\r ", - "params": { - "_token": "address of the reserve token\r", - "_weight": "reserve weight, represented in ppm, 1-1000000\r" - } - }, - "connectorTokenCount()": { - "details": "deprecated, backward compatibility" - }, - "connectorTokens(uint256)": { - "details": "deprecated, backward compatibility" - }, - "connectors(address)": { - "details": "deprecated, backward compatibility" - }, - "convert(address,address,uint256,address,address)": { - "details": "converts a specific amount of source tokens to target tokens can only be called by the SovrynSwap network contract", - "params": { - "_amount": "amount of tokens to convert (in units of the source token)", - "_beneficiary": "wallet to receive the conversion result", - "_sourceToken": "source ERC20 token", - "_targetToken": "target ERC20 token", - "_trader": "address of the caller who executed the conversion" - }, - "return": "amount of tokens received (in units of the target token)" - }, - "converterType()": { - "details": "returns the converter type\r ", - "return": "see the converter types in the the main contract doc\r" - }, - "getConnectorBalance(address)": { - "details": "deprecated, backward compatibility" - }, - "getReturn(address,address,uint256)": { - "details": "deprecated, backward compatibility" - }, - "hasETHReserve()": { - "details": "checks whether or not the converter has an ETH reserve", - "return": "true if the converter has an ETH reserve, false otherwise" - }, - "isActive()": { - "details": "returns true if the converter is active, false otherwise", - "return": "true if the converter is active, false otherwise" - }, - "isV28OrHigher()": { - "details": "checks whether or not the converter version is 28 or higher", - "return": "true, since the converter version is 28 or higher" - }, - "reserveBalance(address)": { - "details": "returns the reserve's balance note that prior to version 17, you should use 'getConnectorBalance' instead", - "params": { - "_reserveToken": "reserve token contract address" - }, - "return": "reserve balance" - }, - "reserveTokenCount()": { - "details": "returns the number of reserve tokens defined note that prior to version 17, you should use 'connectorTokenCount' instead", - "return": "number of reserve tokens" - }, - "reserveWeight(address)": { - "details": "returns the reserve's weight added in version 28", - "params": { - "_reserveToken": "reserve token contract address" - }, - "return": "reserve weight" - }, - "restoreRegistry()": { - "details": "restores the previous contract-registry" - }, - "restrictRegistryUpdate(bool)": { - "details": "restricts the permission to update the contract-registry", - "params": { - "_onlyOwnerCanUpdateRegistry": "indicates whether or not permission is restricted to owner only" - } - }, - "setConversionFee(uint32)": { - "details": "updates the current conversion fee can only be called by the contract owner", - "params": { - "_conversionFee": "new conversion fee, represented in ppm" - } - }, - "setConversionWhitelist(address)": { - "details": "allows the owner to update & enable the conversion whitelist contract address when set, only addresses that are whitelisted are actually allowed to use the converter note that the whitelist check is actually done by the SovrynSwapNetwork contract", - "params": { - "_whitelist": "address of a whitelist contract" - } - }, - "targetAmountAndFee(address,address,uint256)": { - "details": "returns the expected target amount of converting the source token to the\r target token along with the fee\r ", - "params": { - "_amount": "amount of tokens received from the user\r ", - "_sourceToken": "contract address of the source token\r", - "_targetToken": "contract address of the target token\r" - }, - "return": "expected target amount\rexpected fee\r" - }, - "token()": { - "details": "deprecated since version 28, backward compatibility - use only for earlier versions" - }, - "transferAnchorOwnership(address)": { - "details": "transfers the anchor ownership the new owner needs to accept the transfer can only be called by the converter upgrder while the upgrader is the owner note that prior to version 28, you should use 'transferAnchorOwnership' instead", - "params": { - "_newOwner": "new token owner" - } - }, - "transferOwnership(address)": { - "details": "allows transferring the contract ownership the new owner still needs to accept the transfer can only be called by the contract owner", - "params": { - "_newOwner": "new contract owner" - } - }, - "transferTokenOwnership(address)": { - "details": "deprecated, backward compatibility" - }, - "updateRegistry()": { - "details": "updates to the new contract-registry" - }, - "upgrade()": { - "details": "upgrades the converter to the latest version can only be called by the owner note that the owner needs to call acceptOwnership on the new converter after the upgrade" - }, - "withdrawETH(address)": { - "details": "withdraws ether can only be called by the owner if the converter is inactive or by upgrader contract can only be called after the upgrader contract has accepted the ownership of this contract can only be called if the converter has an ETH reserve", - "params": { - "_to": "address to send the ETH to" - } - }, - "withdrawFromAnchor(address,address,uint256)": { - "details": "withdraws tokens held by the anchor and sends them to an account can only be called by the owner", - "params": { - "_amount": "amount to withdraw", - "_to": "account to receive the new amount", - "_token": "ERC20 token contract address" - } - }, - "withdrawTokens(address,address,uint256)": { - "details": "withdraws tokens held by the converter and sends them to an account can only be called by the owner note that reserve tokens can only be withdrawn by the owner while the converter is inactive unless the owner is the converter upgrader contract", - "params": { - "_amount": "amount to withdraw", - "_to": "account to receive the new amount", - "_token": "ERC20 token contract address" - } - } - } - }, - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "60806040526001600455600980546001606060020a03191690553480156200002657600080fd5b50604051606080620033e283398101604090815281516020830151919092015160008054600160a060020a03191633179055828282818062000071816401000000006200011b810204565b5060028054600160a060020a03909216600160a060020a031992831681179091556003805490921617905582620000b1816401000000006200011b810204565b81620000c68164010000000062000196810204565b505060058054600160a060020a03909416600160a060020a031990941693909317909255506009805463ffffffff9092166401000000000267ffffffff0000000019909216919091179055506200020f915050565b600160a060020a03811615156200019357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b50565b620f424063ffffffff821611156200019357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f4552525f494e56414c49445f434f4e56455253494f4e5f464545000000000000604482015290519081900360640190fd5b6131c3806200021f6000396000f30060806040526004361061020b5763ffffffff60e060020a600035041663024c7ec781146102af5780630c7d5cd8146102c95780630e53aae9146102f757806312c2aca41461034c57806319b64015146103755780631cfab290146103a95780631e1401f8146103ca57806321e6b53d1461040d57806322f3e2d41461042e5780632fe8a6ad1461044357806338a5e01614610458578063395900d41461046d5780633e8ff43f1461049757806349d10b64146104c35780634af80f0e146104d857806354fd4d50146104f9578063579cd3ca1461050e5780635e35359e1461052357806361cd756e1461054d57806367b6d57c14610562578063690d8320146105835780636a49d2c4146105a457806371f52bf3146105ce57806379ba5097146105e35780637b103999146105f85780638da5cb5b1461060d57806394c275ad146106225780639b99a8e214610637578063af94b8d81461064c578063b4a176d314610676578063bf7545581461068b578063c45d3d92146106a0578063cdc91c69146106b5578063d031370b146106ca578063d260529c146106e2578063d3fb73b4146106f7578063d4ee1d901461070c578063d55ec69714610721578063d66bd52414610736578063d895951214610757578063dc8de3791461078a578063e8dc12ff146107ab578063ecbca55d146107d5578063f2fde38b146107f3578063fc0c546a14610814575b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee60005260086020527f353c2eb9e53a4a4a6d45d72082ff2e9dc829d1125618772a83eb0e7f86632c43546601000000000000900460ff1615156102ad576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f5245534552564500000000000000000000000000604482015290519081900360640190fd5b005b3480156102bb57600080fd5b506102ad6004351515610829565b3480156102d557600080fd5b506102de610871565b6040805163ffffffff9092168252519081900360200190f35b34801561030357600080fd5b50610318600160a060020a036004351661087d565b6040805195865263ffffffff9094166020860152911515848401521515606084015215156080830152519081900360a00190f35b34801561035857600080fd5b50610361610918565b604080519115158252519081900360200190f35b34801561038157600080fd5b5061038d600435610967565b60408051600160a060020a039092168252519081900360200190f35b3480156103b557600080fd5b506102de600160a060020a0360043516610993565b3480156103d657600080fd5b506103f4600160a060020a03600435811690602435166044356109c5565b6040805192835260208301919091528051918290030190f35b34801561041957600080fd5b506102ad600160a060020a03600435166109e0565b34801561043a57600080fd5b506103616109f4565b34801561044f57600080fd5b50610361610a8e565b34801561046457600080fd5b506102ad610aaf565b34801561047957600080fd5b506102ad600160a060020a0360043581169060243516604435610ac1565b3480156104a357600080fd5b506104ac610b5c565b6040805161ffff9092168252519081900360200190f35b3480156104cf57600080fd5b506102ad610b61565b3480156104e457600080fd5b506102ad600160a060020a0360043516610dce565b34801561050557600080fd5b506104ac610e10565b34801561051a57600080fd5b506102de610e15565b34801561052f57600080fd5b506102ad600160a060020a0360043581169060243516604435610e2d565b34801561055957600080fd5b5061038d610f41565b34801561056e57600080fd5b506102ad600160a060020a0360043516610f50565b34801561058f57600080fd5b506102ad600160a060020a0360043516610ff3565b3480156105b057600080fd5b506102ad600160a060020a036004351663ffffffff60243516611104565b3480156105da57600080fd5b506104ac611173565b3480156105ef57600080fd5b506102ad611182565b34801561060457600080fd5b5061038d611243565b34801561061957600080fd5b5061038d611252565b34801561062e57600080fd5b506102de611261565b34801561064357600080fd5b506104ac611275565b34801561065857600080fd5b506103f4600160a060020a036004358116906024351660443561127b565b34801561068257600080fd5b506102ad611379565b34801561069757600080fd5b506103616113b2565b3480156106ac57600080fd5b5061038d6113b7565b3480156106c157600080fd5b506102ad6113c6565b3480156106d657600080fd5b5061038d60043561141f565b3480156106ee57600080fd5b50610361611447565b34801561070357600080fd5b5061038d61144c565b34801561071857600080fd5b5061038d61145b565b34801561072d57600080fd5b506102ad61146a565b34801561074257600080fd5b50610318600160a060020a036004351661155f565b34801561076357600080fd5b50610778600160a060020a03600435166115a5565b60408051918252519081900360200190f35b34801561079657600080fd5b50610778600160a060020a03600435166115b6565b610778600160a060020a0360043581169060243581169060443590606435811690608435166115df565b3480156107e157600080fd5b506102ad63ffffffff60043516611832565b3480156107ff57600080fd5b506102ad600160a060020a0360043516611927565b34801561082057600080fd5b5061038d6119c4565b6108316119d3565b60038054911515740100000000000000000000000000000000000000000274ff000000000000000000000000000000000000000019909216919091179055565b60095463ffffffff1681565b600080600080600061088d61310a565b50505050600160a060020a03929092166000908152600860209081526040808320815160a081018352815480825260019092015463ffffffff811694820185905260ff64010000000082048116151594830194909452650100000000008104841615156060830152660100000000000090049092161515608090920182905295919450919250829190565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee60005260086020527f353c2eb9e53a4a4a6d45d72082ff2e9dc829d1125618772a83eb0e7f86632c43546601000000000000900460ff1690565b600060078281548110151561097857fe5b600091825260209091200154600160a060020a031692915050565b60008161099f81611a23565b5050600160a060020a031660009081526008602052604090206001015463ffffffff1690565b6000806109d385858561127b565b915091505b935093915050565b6109e86119d3565b6109f181610f50565b50565b600030600160a060020a0316600560009054906101000a9004600160a060020a0316600160a060020a0316638da5cb5b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610a5357600080fd5b505af1158015610a67573d6000803e3d6000fd5b505050506040513d6020811015610a7d57600080fd5b5051600160a060020a031614905090565b60035474010000000000000000000000000000000000000000900460ff1681565b610ab76119d3565b610abf6113c6565b565b610ac96119d3565b600554604080517f5e35359e000000000000000000000000000000000000000000000000000000008152600160a060020a03868116600483015285811660248301526044820185905291519190921691635e35359e91606480830192600092919082900301818387803b158015610b3f57600080fd5b505af1158015610b53573d6000803e3d6000fd5b50505050505050565b600090565b60008054600160a060020a0316331480610b96575060035474010000000000000000000000000000000000000000900460ff16155b1515610bda576040805160e560020a62461bcd0281526020600482015260116024820152600080516020613178833981519152604482015290519081900360640190fd5b610c037f436f6e7472616374526567697374727900000000000000000000000000000000611aa2565b600254909150600160a060020a03808316911614801590610c2c5750600160a060020a03811615155b1515610c82576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e56414c49445f5245474953545259000000000000000000000000604482015290519081900360640190fd5b604080517fbb34534c0000000000000000000000000000000000000000000000000000000081527f436f6e747261637452656769737472790000000000000000000000000000000060048201529051600091600160a060020a0384169163bb34534c9160248082019260209290919082900301818787803b158015610d0657600080fd5b505af1158015610d1a573d6000803e3d6000fd5b505050506040513d6020811015610d3057600080fd5b5051600160a060020a03161415610d91576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e56414c49445f5245474953545259000000000000000000000000604482015290519081900360640190fd5b6002805460038054600160a060020a0380841673ffffffffffffffffffffffffffffffffffffffff19928316179092559091169216919091179055565b610dd66119d3565b80610de081611b3a565b506006805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b602081565b60095468010000000000000000900463ffffffff1681565b6000610e37611b9b565b6002600455610e446119d3565b610e5b600080516020613158833981519152611aa2565b600160a060020a0385166000908152600860205260409020600101549091506601000000000000900460ff161580610e985750610e966109f4565b155b80610eb05750600054600160a060020a038281169116145b1515610ef4576040805160e560020a62461bcd0281526020600482015260116024820152600080516020613178833981519152604482015290519081900360640190fd5b610eff848484611bf5565b600160a060020a0384166000908152600860205260409020600101546601000000000000900460ff1615610f3657610f3684611c26565b505060016004555050565b600354600160a060020a031681565b610f586119d3565b600080516020613158833981519152610f7081611d20565b600554604080517ff2fde38b000000000000000000000000000000000000000000000000000000008152600160a060020a0385811660048301529151919092169163f2fde38b91602480830192600092919082900301818387803b158015610fd757600080fd5b505af1158015610feb573d6000803e3d6000fd5b505050505050565b6000610ffd611b9b565b600260045561100a6119d3565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee61102881611a23565b61103f600080516020613158833981519152611aa2565b91506110496109f4565b15806110625750600054600160a060020a038381169116145b15156110a6576040805160e560020a62461bcd0281526020600482015260116024820152600080516020613178833981519152604482015290519081900360640190fd5b604051600160a060020a03841690303180156108fc02916000818181858888f193505050501580156110dc573d6000803e3d6000fd5b506110fa73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee611c26565b5050600160045550565b61110c611275565b61ffff1615611165576040805160e560020a62461bcd02815260206004820152601960248201527f4552525f494e56414c49445f524553455256455f434f554e5400000000000000604482015290519081900360640190fd5b61116f8282611d76565b5050565b600061117d611275565b905090565b600154600160a060020a031633146111d2576040805160e560020a62461bcd0281526020600482015260116024820152600080516020613178833981519152604482015290519081900360640190fd5b60015460008054604051600160a060020a0393841693909116917f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91a3600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b600254600160a060020a031681565b600054600160a060020a031681565b600954640100000000900463ffffffff1681565b60075490565b6005546000908190600160a060020a0385811691161480156112c25750600160a060020a0385166000908152600860205260409020600101546601000000000000900460ff165b156112d9576112d083611fc7565b915091506109d8565b600554600160a060020a03868116911614801561131b5750600160a060020a0384166000908152600860205260409020600101546601000000000000900460ff165b15611329576112d0836121d6565b6040805160e560020a62461bcd02815260206004820152601160248201527f4552525f494e56414c49445f544f4b454e000000000000000000000000000000604482015290519081900360640190fd5b6113816119d3565b6003546002805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055565b600181565b600654600160a060020a031681565b6113ce6119d3565b6113d66122e2565b600554600190600160a060020a03166113ed610b5c565b61ffff167f6b08c2e2c9969e55a647a764db9b554d64dc42f1a704da11a6d5b129ad163f2c60405160405180910390a4565b600780548290811061142d57fe5b600091825260209091200154600160a060020a0316905081565b600190565b600554600160a060020a031681565b600154600160a060020a031681565b60006114746119d3565b61148b600080516020613158833981519152611aa2565b600554909150600090600160a060020a03166114a5610b5c565b61ffff167f6b08c2e2c9969e55a647a764db9b554d64dc42f1a704da11a6d5b129ad163f2c60405160405180910390a46114de81611927565b604080517f90f58c96000000000000000000000000000000000000000000000000000000008152602060048201529051600160a060020a038316916390f58c9691602480830192600092919082900301818387803b15801561153f57600080fd5b505af1158015611553573d6000803e3d6000fd5b505050506109f1611182565b6008602052600090815260409020805460019091015463ffffffff81169060ff640100000000820481169165010000000000810482169166010000000000009091041685565b60006115b0826115b6565b92915050565b6000816115c281611a23565b5050600160a060020a031660009081526008602052604090205490565b60006115e9611b9b565b60026004557f536f7672796e537761704e6574776f726b00000000000000000000000000000061161881611d20565b600160a060020a03878116908716141561167c576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f53414d455f534f555243455f54415247455400000000000000000000604482015290519081900360640190fd5b600654600160a060020a031615806117bf5750600654604080517f3af32abf000000000000000000000000000000000000000000000000000000008152600160a060020a03878116600483015291519190921691633af32abf9160248083019260209291908290030181600087803b1580156116f757600080fd5b505af115801561170b573d6000803e3d6000fd5b505050506040513d602081101561172157600080fd5b505180156117bf5750600654604080517f3af32abf000000000000000000000000000000000000000000000000000000008152600160a060020a03868116600483015291519190921691633af32abf9160248083019260209291908290030181600087803b15801561179257600080fd5b505af11580156117a6573d6000803e3d6000fd5b505050506040513d60208110156117bc57600080fd5b50515b1515611815576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f4e4f545f57484954454c495354454400000000000000000000000000604482015290519081900360640190fd5b61182287878787876123c0565b6001600455979650505050505050565b61183a6119d3565b60095463ffffffff640100000000909104811690821611156118a6576040805160e560020a62461bcd02815260206004820152601a60248201527f4552525f494e56414c49445f434f4e56455253494f4e5f464545000000000000604482015290519081900360640190fd5b6009546040805163ffffffff6801000000000000000090930483168152918316602083015280517f81cd2ffb37dd237c0e4e2a3de5265fcf9deb43d3e7801e80db9f1ccfba7ee6009281900390910190a16009805463ffffffff90921668010000000000000000026bffffffff000000000000000019909216919091179055565b61192f6119d3565b600054600160a060020a0382811691161415611995576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f53414d455f4f574e4552000000000000000000000000000000000000604482015290519081900360640190fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600554600160a060020a031690565b600054600160a060020a03163314610abf576040805160e560020a62461bcd0281526020600482015260116024820152600080516020613178833981519152604482015290519081900360640190fd5b600160a060020a0381166000908152600860205260409020600101546601000000000000900460ff1615156109f1576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f5245534552564500000000000000000000000000604482015290519081900360640190fd5b600254604080517fbb34534c000000000000000000000000000000000000000000000000000000008152600481018490529051600092600160a060020a03169163bb34534c91602480830192602092919082900301818787803b158015611b0857600080fd5b505af1158015611b1c573d6000803e3d6000fd5b505050506040513d6020811015611b3257600080fd5b505192915050565b600160a060020a0381163014156109f1576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f414444524553535f49535f53454c4600000000000000000000000000604482015290519081900360640190fd5b600454600114610abf576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f5245454e5452414e4359000000000000000000000000000000000000604482015290519081900360640190fd5b611bfd6119d3565b82611c078161259e565b82611c118161259e565b83611c1b81611b3a565b610feb8686866125fe565b80611c3081611a23565b600160a060020a03821673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee1415611c7657600160a060020a03821660009081526008602052604090203031905561116f565b604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a038416916370a082319160248083019260209291908290030181600087803b158015611cd757600080fd5b505af1158015611ceb573d6000803e3d6000fd5b505050506040513d6020811015611d0157600080fd5b5051600160a060020a0383166000908152600860205260409020555050565b611d2981611aa2565b600160a060020a031633146109f1576040805160e560020a62461bcd0281526020600482015260116024820152600080516020613178833981519152604482015290519081900360640190fd5b6000611d806119d3565b611d886126b8565b82611d928161259e565b83611d9c81611b3a565b83611da681612715565b600554600160a060020a03878116911614801590611dea5750600160a060020a0386166000908152600860205260409020600101546601000000000000900460ff16155b1515611e40576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f5245534552564500000000000000000000000000604482015290519081900360640190fd5b60095463ffffffff908116620f42400381169086161115611eab576040805160e560020a62461bcd02815260206004820152601a60248201527f4552525f494e56414c49445f524553455256455f574549474854000000000000604482015290519081900360640190fd5b61ffff611eb6611275565b61ffff1610611f0f576040805160e560020a62461bcd02815260206004820152601960248201527f4552525f494e56414c49445f524553455256455f434f554e5400000000000000604482015290519081900360640190fd5b505050600160a060020a0390921660008181526008602052604081208181556001908101805466ff0000000000001963ffffffff80881663ffffffff1993841617919091166601000000000000179092556007805493840181559093527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688909101805473ffffffffffffffffffffffffffffffffffffffff191690931790925560098054808416909401909216921691909117905550565b600080600080600080611fd861278a565b600560009054906101000a9004600160a060020a0316600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561202b57600080fd5b505af115801561203f573d6000803e3d6000fd5b505050506040513d602081101561205557600080fd5b505193508315156120b157600160a060020a0383166000908152600860205260409020600101546120a69063ffffffff9081169061209a908a90620f4240906127e816565b9063ffffffff61286c16565b9550600094506121cd565b6007805460009081106120c057fe5b600091825260209091200154600160a060020a031692506121007f536f7672796e53776170466f726d756c61000000000000000000000000000000611aa2565b600160a060020a031663f3250fe285612118866115b6565b600160a060020a038716600090815260086020908152604080832060010154815163ffffffff88811660e060020a02825260048201979097526024810195909552949094166044840152606483018d90529251608480840194939192918390030190829087803b15801561218b57600080fd5b505af115801561219f573d6000803e3d6000fd5b505050506040513d60208110156121b557600080fd5b505191506121c2826128da565b905080820381955095505b50505050915091565b6000806000806000806121e761278a565b600560009054906101000a9004600160a060020a0316600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561223a57600080fd5b505af115801561224e573d6000803e3d6000fd5b505050506040513d602081101561226457600080fd5b50516007805491955090600090811061227957fe5b600091825260209091200154600160a060020a03169250838714156122a1576120a6836115b6565b6122ca7f536f7672796e53776170466f726d756c61000000000000000000000000000000611aa2565b600160a060020a03166376cf0b5685612118866115b6565b6122ea6119d3565b60006122f4611275565b61ffff161161234d576040805160e560020a62461bcd02815260206004820152601960248201527f4552525f494e56414c49445f524553455256455f434f554e5400000000000000604482015290519081900360640190fd5b600560009054906101000a9004600160a060020a0316600160a060020a03166379ba50976040518163ffffffff1660e060020a028152600401600060405180830381600087803b1580156123a057600080fd5b505af11580156123b4573d6000803e3d6000fd5b50505050610abf61290a565b6005546000908190819081908190600160a060020a038a8116911614801561240d5750600160a060020a038a166000908152600860205260409020600101546601000000000000900460ff165b156124275789925061242088888861294c565b935061247c565b600554600160a060020a038b811691161480156124695750600160a060020a0389166000908152600860205260409020600101546601000000000000900460ff165b1561132957889250612420888888612c12565b600560009054906101000a9004600160a060020a0316600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156124cf57600080fd5b505af11580156124e3573d6000803e3d6000fd5b505050506040513d60208110156124f957600080fd5b5051600160a060020a0380851660008181526008602052604090206001015460055493955063ffffffff16935091167f77f29993cf2c084e726f7e802da0719d6a0ade3e204badc7a3ffd57ecb768c24612565620f4240612559886115b6565b9063ffffffff6127e816565b6125788663ffffffff808816906127e816565b6040805192835260208301919091528051918290030190a3509198975050505050505050565b600160a060020a03811615156109f1576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b604080517f7472616e7366657228616464726573732c75696e74323536290000000000000081528151908190036019018120600160a060020a038516602483015260448083018590528351808403909101815260649092019092526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909316929092179091526126b3908490612f97565b505050565b6126c06109f4565b15610abf576040805160e560020a62461bcd02815260206004820152600a60248201527f4552525f41435449564500000000000000000000000000000000000000000000604482015290519081900360640190fd5b60008163ffffffff161180156127345750620f424063ffffffff821611155b15156109f1576040805160e560020a62461bcd02815260206004820152601a60248201527f4552525f494e56414c49445f524553455256455f574549474854000000000000604482015290519081900360640190fd5b6127926109f4565b1515610abf576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f494e4143544956450000000000000000000000000000000000000000604482015290519081900360640190fd5b6000808315156127fb5760009150612865565b5082820282848281151561280b57fe5b0414612861576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b8091505b5092915050565b6000808083116128c6576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f4449564944455f42595f5a45524f0000000000000000000000000000604482015290519081900360640190fd5b82848115156128d157fe5b04949350505050565b6009546000906115b090620f42409061209a90859068010000000000000000900463ffffffff908116906127e816565b60075460005b8181101561116f5761294460078281548110151561292a57fe5b600091825260209091200154600160a060020a0316611c26565b600101612910565b60008060008061295b87611fc7565b90935091508215156129b7576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f5a45524f5f5441524745545f414d4f554e5400000000000000000000604482015290519081900360640190fd5b6007805460009081106129c657fe5b600091825260209091200154600160a060020a0316905073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee811415612a5557348714612a50576040805160e560020a62461bcd02815260206004820152601760248201527f4552525f4554485f414d4f554e545f4d49534d41544348000000000000000000604482015290519081900360640190fd5b612b5d565b34158015612b07575086612b04612a6b836115b6565b604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a038616916370a082319160248083019260209291908290030181600087803b158015612acc57600080fd5b505af1158015612ae0573d6000803e3d6000fd5b505050506040513d6020811015612af657600080fd5b50519063ffffffff61302516565b10155b1515612b5d576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f494e56414c49445f414d4f554e540000000000000000000000000000604482015290519081900360640190fd5b612b6681611c26565b600554604080517f867904b4000000000000000000000000000000000000000000000000000000008152600160a060020a038881166004830152602482018790529151919092169163867904b491604480830192600092919082900301818387803b158015612bd457600080fd5b505af1158015612be8573d6000803e3d6000fd5b5050600554612c079250839150600160a060020a0316888a8787613085565b509095945050505050565b600554604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905160009283928392839283928392600160a060020a03909216916370a082319160248082019260209290919082900301818787803b158015612c8457600080fd5b505af1158015612c98573d6000803e3d6000fd5b505050506040513d6020811015612cae57600080fd5b5051891115612d07576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f494e56414c49445f414d4f554e540000000000000000000000000000604482015290519081900360640190fd5b612d10896121d6565b9095509350841515612d6c576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f5a45524f5f5441524745545f414d4f554e5400000000000000000000604482015290519081900360640190fd5b600780546000908110612d7b57fe5b6000918252602080832090910154600554604080517f18160ddd0000000000000000000000000000000000000000000000000000000081529051600160a060020a03938416985091909216936318160ddd93600480850194919392918390030190829087803b158015612ded57600080fd5b505af1158015612e01573d6000803e3d6000fd5b505050506040513d6020811015612e1757600080fd5b50519150612e24836115b6565b905080851080612e3d57508085148015612e3d57508189145b1515612e4557fe5b600554604080517fa24835d1000000000000000000000000000000000000000000000000000000008152306004820152602481018c90529051600160a060020a039092169163a24835d19160448082019260009290919082900301818387803b158015612eb157600080fd5b505af1158015612ec5573d6000803e3d6000fd5b505050600160a060020a038416600090815260086020526040902054612ef291508663ffffffff61302516565b600160a060020a03841660008181526008602052604090209190915573eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee1415612f6557604051600160a060020a0388169086156108fc029087906000818181858888f19350505050158015612f5f573d6000803e3d6000fd5b50612f70565b612f708388876125fe565b600554612f8a90600160a060020a0316848a8c8989613085565b5092979650505050505050565b612f9f613138565b602060405190810160405280600181525090506020818351602085016000875af1801515612fcc57600080fd5b50805115156126b3576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f5452414e534645525f4641494c454400000000000000000000000000604482015290519081900360640190fd5b60008183101561307f576040805160e560020a62461bcd02815260206004820152600d60248201527f4552525f554e444552464c4f5700000000000000000000000000000000000000604482015290519081900360640190fd5b50900390565b7f800000000000000000000000000000000000000000000000000000000000000081106130ae57fe5b60408051848152602081018490528082018390529051600160a060020a038087169288821692918a16917f276856b36cbc45526a0ba64f44611557a2a8b68662c5388e9fe6d72e86e1c8cb9181900360600190a4505050505050565b6040805160a08101825260008082526020820181905291810182905260608101829052608081019190915290565b60206040519081016040528060019060208202803883395091929150505600536f7672796e53776170436f6e766572746572557067726164657200000000004552525f4143434553535f44454e494544000000000000000000000000000000a165627a7a72305820c39f973cbc1cf0758a64156854331e6829d0c51a16e297aae88602be0c95bc9b0029", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x1 PUSH1 0x4 SSTORE PUSH1 0x9 DUP1 SLOAD PUSH1 0x1 PUSH1 0x60 PUSH1 0x2 EXP SUB NOT AND SWAP1 SSTORE CALLVALUE DUP1 ISZERO PUSH3 0x26 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH1 0x60 DUP1 PUSH3 0x33E2 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 SWAP1 DUP2 MSTORE DUP2 MLOAD PUSH1 0x20 DUP4 ADD MLOAD SWAP2 SWAP1 SWAP3 ADD MLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND CALLER OR SWAP1 SSTORE DUP3 DUP3 DUP3 DUP2 DUP1 PUSH3 0x71 DUP2 PUSH5 0x100000000 PUSH3 0x11B DUP2 MUL DIV JUMP JUMPDEST POP PUSH1 0x2 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT SWAP3 DUP4 AND DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x3 DUP1 SLOAD SWAP1 SWAP3 AND OR SWAP1 SSTORE DUP3 PUSH3 0xB1 DUP2 PUSH5 0x100000000 PUSH3 0x11B DUP2 MUL DIV JUMP JUMPDEST DUP2 PUSH3 0xC6 DUP2 PUSH5 0x100000000 PUSH3 0x196 DUP2 MUL DIV JUMP JUMPDEST POP POP PUSH1 0x5 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP5 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 OR SWAP1 SWAP3 SSTORE POP PUSH1 0x9 DUP1 SLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP3 AND PUSH5 0x100000000 MUL PUSH8 0xFFFFFFFF00000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE POP PUSH3 0x20F SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH3 0x193 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH3 0xF4240 PUSH4 0xFFFFFFFF DUP3 AND GT ISZERO PUSH3 0x193 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F434F4E56455253494F4E5F464545000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x31C3 DUP1 PUSH3 0x21F PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x20B JUMPI PUSH4 0xFFFFFFFF PUSH1 0xE0 PUSH1 0x2 EXP PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x24C7EC7 DUP2 EQ PUSH2 0x2AF JUMPI DUP1 PUSH4 0xC7D5CD8 EQ PUSH2 0x2C9 JUMPI DUP1 PUSH4 0xE53AAE9 EQ PUSH2 0x2F7 JUMPI DUP1 PUSH4 0x12C2ACA4 EQ PUSH2 0x34C JUMPI DUP1 PUSH4 0x19B64015 EQ PUSH2 0x375 JUMPI DUP1 PUSH4 0x1CFAB290 EQ PUSH2 0x3A9 JUMPI DUP1 PUSH4 0x1E1401F8 EQ PUSH2 0x3CA JUMPI DUP1 PUSH4 0x21E6B53D EQ PUSH2 0x40D JUMPI DUP1 PUSH4 0x22F3E2D4 EQ PUSH2 0x42E JUMPI DUP1 PUSH4 0x2FE8A6AD EQ PUSH2 0x443 JUMPI DUP1 PUSH4 0x38A5E016 EQ PUSH2 0x458 JUMPI DUP1 PUSH4 0x395900D4 EQ PUSH2 0x46D JUMPI DUP1 PUSH4 0x3E8FF43F EQ PUSH2 0x497 JUMPI DUP1 PUSH4 0x49D10B64 EQ PUSH2 0x4C3 JUMPI DUP1 PUSH4 0x4AF80F0E EQ PUSH2 0x4D8 JUMPI DUP1 PUSH4 0x54FD4D50 EQ PUSH2 0x4F9 JUMPI DUP1 PUSH4 0x579CD3CA EQ PUSH2 0x50E JUMPI DUP1 PUSH4 0x5E35359E EQ PUSH2 0x523 JUMPI DUP1 PUSH4 0x61CD756E EQ PUSH2 0x54D JUMPI DUP1 PUSH4 0x67B6D57C EQ PUSH2 0x562 JUMPI DUP1 PUSH4 0x690D8320 EQ PUSH2 0x583 JUMPI DUP1 PUSH4 0x6A49D2C4 EQ PUSH2 0x5A4 JUMPI DUP1 PUSH4 0x71F52BF3 EQ PUSH2 0x5CE JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x5E3 JUMPI DUP1 PUSH4 0x7B103999 EQ PUSH2 0x5F8 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x60D JUMPI DUP1 PUSH4 0x94C275AD EQ PUSH2 0x622 JUMPI DUP1 PUSH4 0x9B99A8E2 EQ PUSH2 0x637 JUMPI DUP1 PUSH4 0xAF94B8D8 EQ PUSH2 0x64C JUMPI DUP1 PUSH4 0xB4A176D3 EQ PUSH2 0x676 JUMPI DUP1 PUSH4 0xBF754558 EQ PUSH2 0x68B JUMPI DUP1 PUSH4 0xC45D3D92 EQ PUSH2 0x6A0 JUMPI DUP1 PUSH4 0xCDC91C69 EQ PUSH2 0x6B5 JUMPI DUP1 PUSH4 0xD031370B EQ PUSH2 0x6CA JUMPI DUP1 PUSH4 0xD260529C EQ PUSH2 0x6E2 JUMPI DUP1 PUSH4 0xD3FB73B4 EQ PUSH2 0x6F7 JUMPI DUP1 PUSH4 0xD4EE1D90 EQ PUSH2 0x70C JUMPI DUP1 PUSH4 0xD55EC697 EQ PUSH2 0x721 JUMPI DUP1 PUSH4 0xD66BD524 EQ PUSH2 0x736 JUMPI DUP1 PUSH4 0xD8959512 EQ PUSH2 0x757 JUMPI DUP1 PUSH4 0xDC8DE379 EQ PUSH2 0x78A JUMPI DUP1 PUSH4 0xE8DC12FF EQ PUSH2 0x7AB JUMPI DUP1 PUSH4 0xECBCA55D EQ PUSH2 0x7D5 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x7F3 JUMPI DUP1 PUSH4 0xFC0C546A EQ PUSH2 0x814 JUMPI JUMPDEST PUSH20 0xEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE PUSH1 0x0 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH32 0x353C2EB9E53A4A4A6D45D72082FF2E9DC829D1125618772A83EB0E7F86632C43 SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO PUSH2 0x2AD JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245534552564500000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2BB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2AD PUSH1 0x4 CALLDATALOAD ISZERO ISZERO PUSH2 0x829 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2D5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2DE PUSH2 0x871 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x303 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x318 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x87D JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP6 DUP7 MSTORE PUSH4 0xFFFFFFFF SWAP1 SWAP5 AND PUSH1 0x20 DUP7 ADD MSTORE SWAP2 ISZERO ISZERO DUP5 DUP5 ADD MSTORE ISZERO ISZERO PUSH1 0x60 DUP5 ADD MSTORE ISZERO ISZERO PUSH1 0x80 DUP4 ADD MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0xA0 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x358 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x361 PUSH2 0x918 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x381 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x38D PUSH1 0x4 CALLDATALOAD PUSH2 0x967 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3B5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2DE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x993 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3D6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3F4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x9C5 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x419 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2AD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x9E0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x43A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x361 PUSH2 0x9F4 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x44F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x361 PUSH2 0xA8E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x464 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2AD PUSH2 0xAAF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x479 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2AD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0xAC1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4A3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4AC PUSH2 0xB5C JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0xFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4CF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2AD PUSH2 0xB61 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4E4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2AD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0xDCE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x505 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4AC PUSH2 0xE10 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x51A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2DE PUSH2 0xE15 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x52F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2AD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0xE2D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x559 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x38D PUSH2 0xF41 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x56E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2AD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0xF50 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x58F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2AD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0xFF3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5B0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2AD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH4 0xFFFFFFFF PUSH1 0x24 CALLDATALOAD AND PUSH2 0x1104 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5DA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4AC PUSH2 0x1173 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5EF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2AD PUSH2 0x1182 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x604 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x38D PUSH2 0x1243 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x619 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x38D PUSH2 0x1252 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x62E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2DE PUSH2 0x1261 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x643 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4AC PUSH2 0x1275 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x658 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3F4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x127B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x682 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2AD PUSH2 0x1379 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x697 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x361 PUSH2 0x13B2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6AC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x38D PUSH2 0x13B7 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6C1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2AD PUSH2 0x13C6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6D6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x38D PUSH1 0x4 CALLDATALOAD PUSH2 0x141F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6EE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x361 PUSH2 0x1447 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x703 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x38D PUSH2 0x144C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x718 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x38D PUSH2 0x145B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x72D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2AD PUSH2 0x146A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x742 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x318 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x155F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x763 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x778 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x15A5 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x796 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x778 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x15B6 JUMP JUMPDEST PUSH2 0x778 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x44 CALLDATALOAD SWAP1 PUSH1 0x64 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x84 CALLDATALOAD AND PUSH2 0x15DF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7E1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2AD PUSH4 0xFFFFFFFF PUSH1 0x4 CALLDATALOAD AND PUSH2 0x1832 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7FF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2AD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x1927 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x820 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x38D PUSH2 0x19C4 JUMP JUMPDEST PUSH2 0x831 PUSH2 0x19D3 JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD SWAP2 ISZERO ISZERO PUSH21 0x10000000000000000000000000000000000000000 MUL PUSH21 0xFF0000000000000000000000000000000000000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH4 0xFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x88D PUSH2 0x310A JUMP JUMPDEST POP POP POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP2 MLOAD PUSH1 0xA0 DUP2 ADD DUP4 MSTORE DUP2 SLOAD DUP1 DUP3 MSTORE PUSH1 0x1 SWAP1 SWAP3 ADD SLOAD PUSH4 0xFFFFFFFF DUP2 AND SWAP5 DUP3 ADD DUP6 SWAP1 MSTORE PUSH1 0xFF PUSH5 0x100000000 DUP3 DIV DUP2 AND ISZERO ISZERO SWAP5 DUP4 ADD SWAP5 SWAP1 SWAP5 MSTORE PUSH6 0x10000000000 DUP2 DIV DUP5 AND ISZERO ISZERO PUSH1 0x60 DUP4 ADD MSTORE PUSH7 0x1000000000000 SWAP1 DIV SWAP1 SWAP3 AND ISZERO ISZERO PUSH1 0x80 SWAP1 SWAP3 ADD DUP3 SWAP1 MSTORE SWAP6 SWAP2 SWAP5 POP SWAP2 SWAP3 POP DUP3 SWAP2 SWAP1 JUMP JUMPDEST PUSH20 0xEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE PUSH1 0x0 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH32 0x353C2EB9E53A4A4A6D45D72082FF2E9DC829D1125618772A83EB0E7F86632C43 SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x7 DUP3 DUP2 SLOAD DUP2 LT ISZERO ISZERO PUSH2 0x978 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0x99F DUP2 PUSH2 0x1A23 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH4 0xFFFFFFFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x9D3 DUP6 DUP6 DUP6 PUSH2 0x127B JUMP JUMPDEST SWAP2 POP SWAP2 POP JUMPDEST SWAP4 POP SWAP4 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x9E8 PUSH2 0x19D3 JUMP JUMPDEST PUSH2 0x9F1 DUP2 PUSH2 0xF50 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 ADDRESS PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x8DA5CB5B PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xA53 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xA67 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xA7D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH2 0xAB7 PUSH2 0x19D3 JUMP JUMPDEST PUSH2 0xABF PUSH2 0x13C6 JUMP JUMPDEST JUMP JUMPDEST PUSH2 0xAC9 PUSH2 0x19D3 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x5E35359E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP6 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP3 ADD DUP6 SWAP1 MSTORE SWAP2 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP2 PUSH4 0x5E35359E SWAP2 PUSH1 0x64 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xB3F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xB53 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ DUP1 PUSH2 0xB96 JUMPI POP PUSH1 0x3 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST ISZERO ISZERO PUSH2 0xBDA JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3178 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0xC03 PUSH32 0x436F6E7472616374526567697374727900000000000000000000000000000000 PUSH2 0x1AA2 JUMP JUMPDEST PUSH1 0x2 SLOAD SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP4 AND SWAP2 AND EQ DUP1 ISZERO SWAP1 PUSH2 0xC2C JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO JUMPDEST ISZERO ISZERO PUSH2 0xC82 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245474953545259000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0xBB34534C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH32 0x436F6E7472616374526567697374727900000000000000000000000000000000 PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP2 PUSH4 0xBB34534C SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xD06 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xD1A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xD30 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ ISZERO PUSH2 0xD91 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245474953545259000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP5 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP3 DUP4 AND OR SWAP1 SWAP3 SSTORE SWAP1 SWAP2 AND SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0xDD6 PUSH2 0x19D3 JUMP JUMPDEST DUP1 PUSH2 0xDE0 DUP2 PUSH2 0x1B3A JUMP JUMPDEST POP PUSH1 0x6 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x20 DUP2 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH9 0x10000000000000000 SWAP1 DIV PUSH4 0xFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xE37 PUSH2 0x1B9B JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH2 0xE44 PUSH2 0x19D3 JUMP JUMPDEST PUSH2 0xE5B PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3158 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x1AA2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD SWAP1 SWAP2 POP PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 PUSH2 0xE98 JUMPI POP PUSH2 0xE96 PUSH2 0x9F4 JUMP JUMPDEST ISZERO JUMPDEST DUP1 PUSH2 0xEB0 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ JUMPDEST ISZERO ISZERO PUSH2 0xEF4 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3178 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0xEFF DUP5 DUP5 DUP5 PUSH2 0x1BF5 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0xF36 JUMPI PUSH2 0xF36 DUP5 PUSH2 0x1C26 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0x4 SSTORE POP POP JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH2 0xF58 PUSH2 0x19D3 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3158 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0xF70 DUP2 PUSH2 0x1D20 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xF2FDE38B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP2 PUSH4 0xF2FDE38B SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xFD7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xFEB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xFFD PUSH2 0x1B9B JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH2 0x100A PUSH2 0x19D3 JUMP JUMPDEST PUSH20 0xEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE PUSH2 0x1028 DUP2 PUSH2 0x1A23 JUMP JUMPDEST PUSH2 0x103F PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3158 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x1AA2 JUMP JUMPDEST SWAP2 POP PUSH2 0x1049 PUSH2 0x9F4 JUMP JUMPDEST ISZERO DUP1 PUSH2 0x1062 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 DUP2 AND SWAP2 AND EQ JUMPDEST ISZERO ISZERO PUSH2 0x10A6 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3178 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP1 ADDRESS BALANCE DUP1 ISZERO PUSH2 0x8FC MUL SWAP2 PUSH1 0x0 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x10DC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH2 0x10FA PUSH20 0xEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE PUSH2 0x1C26 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0x4 SSTORE POP JUMP JUMPDEST PUSH2 0x110C PUSH2 0x1275 JUMP JUMPDEST PUSH2 0xFFFF AND ISZERO PUSH2 0x1165 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F434F554E5400000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x116F DUP3 DUP3 PUSH2 0x1D76 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x117D PUSH2 0x1275 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x11D2 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3178 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND SWAP4 SWAP1 SWAP2 AND SWAP2 PUSH32 0x343765429AEA5A34B3FF6A3785A98A5ABB2597ACA87BFBB58632C173D585373A SWAP2 LOG3 PUSH1 0x1 DUP1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND OR SWAP1 SWAP2 SSTORE AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH5 0x100000000 SWAP1 DIV PUSH4 0xFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x7 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x0 SWAP1 DUP2 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 DUP2 AND SWAP2 AND EQ DUP1 ISZERO PUSH2 0x12C2 JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND JUMPDEST ISZERO PUSH2 0x12D9 JUMPI PUSH2 0x12D0 DUP4 PUSH2 0x1FC7 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x9D8 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 DUP2 AND SWAP2 AND EQ DUP1 ISZERO PUSH2 0x131B JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND JUMPDEST ISZERO PUSH2 0x1329 JUMPI PUSH2 0x12D0 DUP4 PUSH2 0x21D6 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F544F4B454E000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x1381 PUSH2 0x19D3 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x2 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x1 DUP2 JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH2 0x13CE PUSH2 0x19D3 JUMP JUMPDEST PUSH2 0x13D6 PUSH2 0x22E2 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x13ED PUSH2 0xB5C JUMP JUMPDEST PUSH2 0xFFFF AND PUSH32 0x6B08C2E2C9969E55A647A764DB9B554D64DC42F1A704DA11A6D5B129AD163F2C PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 JUMP JUMPDEST PUSH1 0x7 DUP1 SLOAD DUP3 SWAP1 DUP2 LT PUSH2 0x142D JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP1 POP DUP2 JUMP JUMPDEST PUSH1 0x1 SWAP1 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1474 PUSH2 0x19D3 JUMP JUMPDEST PUSH2 0x148B PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3158 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x1AA2 JUMP JUMPDEST PUSH1 0x5 SLOAD SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x14A5 PUSH2 0xB5C JUMP JUMPDEST PUSH2 0xFFFF AND PUSH32 0x6B08C2E2C9969E55A647A764DB9B554D64DC42F1A704DA11A6D5B129AD163F2C PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH2 0x14DE DUP2 PUSH2 0x1927 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x90F58C9600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 AND SWAP2 PUSH4 0x90F58C96 SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x153F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1553 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x9F1 PUSH2 0x1182 JUMP JUMPDEST PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD PUSH4 0xFFFFFFFF DUP2 AND SWAP1 PUSH1 0xFF PUSH5 0x100000000 DUP3 DIV DUP2 AND SWAP2 PUSH6 0x10000000000 DUP2 DIV DUP3 AND SWAP2 PUSH7 0x1000000000000 SWAP1 SWAP2 DIV AND DUP6 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x15B0 DUP3 PUSH2 0x15B6 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0x15C2 DUP2 PUSH2 0x1A23 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x15E9 PUSH2 0x1B9B JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH32 0x536F7672796E537761704E6574776F726B000000000000000000000000000000 PUSH2 0x1618 DUP2 PUSH2 0x1D20 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 DUP2 AND SWAP1 DUP8 AND EQ ISZERO PUSH2 0x167C JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F534F555243455F54415247455400000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND ISZERO DUP1 PUSH2 0x17BF JUMPI POP PUSH1 0x6 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x3AF32ABF00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP2 PUSH4 0x3AF32ABF SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x16F7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x170B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1721 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD DUP1 ISZERO PUSH2 0x17BF JUMPI POP PUSH1 0x6 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x3AF32ABF00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP2 PUSH4 0x3AF32ABF SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1792 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x17A6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x17BC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD JUMPDEST ISZERO ISZERO PUSH2 0x1815 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4E4F545F57484954454C495354454400000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x1822 DUP8 DUP8 DUP8 DUP8 DUP8 PUSH2 0x23C0 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x4 SSTORE SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x183A PUSH2 0x19D3 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH4 0xFFFFFFFF PUSH5 0x100000000 SWAP1 SWAP2 DIV DUP2 AND SWAP1 DUP3 AND GT ISZERO PUSH2 0x18A6 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F434F4E56455253494F4E5F464545000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH4 0xFFFFFFFF PUSH9 0x10000000000000000 SWAP1 SWAP4 DIV DUP4 AND DUP2 MSTORE SWAP2 DUP4 AND PUSH1 0x20 DUP4 ADD MSTORE DUP1 MLOAD PUSH32 0x81CD2FFB37DD237C0E4E2A3DE5265FCF9DEB43D3E7801E80DB9F1CCFBA7EE600 SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG1 PUSH1 0x9 DUP1 SLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP3 AND PUSH9 0x10000000000000000 MUL PUSH12 0xFFFFFFFF0000000000000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x192F PUSH2 0x19D3 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x1995 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F4F574E4552000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0xABF JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3178 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO PUSH2 0x9F1 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245534552564500000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xBB34534C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP2 PUSH4 0xBB34534C SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1B08 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1B1C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1B32 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ADDRESS EQ ISZERO PUSH2 0x9F1 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F414444524553535F49535F53454C4600000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x4 SLOAD PUSH1 0x1 EQ PUSH2 0xABF JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5245454E5452414E4359000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x1BFD PUSH2 0x19D3 JUMP JUMPDEST DUP3 PUSH2 0x1C07 DUP2 PUSH2 0x259E JUMP JUMPDEST DUP3 PUSH2 0x1C11 DUP2 PUSH2 0x259E JUMP JUMPDEST DUP4 PUSH2 0x1C1B DUP2 PUSH2 0x1B3A JUMP JUMPDEST PUSH2 0xFEB DUP7 DUP7 DUP7 PUSH2 0x25FE JUMP JUMPDEST DUP1 PUSH2 0x1C30 DUP2 PUSH2 0x1A23 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 AND PUSH20 0xEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE EQ ISZERO PUSH2 0x1C76 JUMPI PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 ADDRESS BALANCE SWAP1 SSTORE PUSH2 0x116F JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1CD7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1CEB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1D01 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE POP POP JUMP JUMPDEST PUSH2 0x1D29 DUP2 PUSH2 0x1AA2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x9F1 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3178 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1D80 PUSH2 0x19D3 JUMP JUMPDEST PUSH2 0x1D88 PUSH2 0x26B8 JUMP JUMPDEST DUP3 PUSH2 0x1D92 DUP2 PUSH2 0x259E JUMP JUMPDEST DUP4 PUSH2 0x1D9C DUP2 PUSH2 0x1B3A JUMP JUMPDEST DUP4 PUSH2 0x1DA6 DUP2 PUSH2 0x2715 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 DUP2 AND SWAP2 AND EQ DUP1 ISZERO SWAP1 PUSH2 0x1DEA JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x1E40 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245534552564500000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x9 SLOAD PUSH4 0xFFFFFFFF SWAP1 DUP2 AND PUSH3 0xF4240 SUB DUP2 AND SWAP1 DUP7 AND GT ISZERO PUSH2 0x1EAB JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F574549474854000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0xFFFF PUSH2 0x1EB6 PUSH2 0x1275 JUMP JUMPDEST PUSH2 0xFFFF AND LT PUSH2 0x1F0F JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F434F554E5400000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP2 DUP2 SSTORE PUSH1 0x1 SWAP1 DUP2 ADD DUP1 SLOAD PUSH7 0xFF000000000000 NOT PUSH4 0xFFFFFFFF DUP1 DUP9 AND PUSH4 0xFFFFFFFF NOT SWAP4 DUP5 AND OR SWAP2 SWAP1 SWAP2 AND PUSH7 0x1000000000000 OR SWAP1 SWAP3 SSTORE PUSH1 0x7 DUP1 SLOAD SWAP4 DUP5 ADD DUP2 SSTORE SWAP1 SWAP4 MSTORE PUSH32 0xA66CC928B5EDB82AF9BD49922954155AB7B0942694BEA4CE44661D9A8736C688 SWAP1 SWAP2 ADD DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 SWAP4 OR SWAP1 SWAP3 SSTORE PUSH1 0x9 DUP1 SLOAD DUP1 DUP5 AND SWAP1 SWAP5 ADD SWAP1 SWAP3 AND SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x1FD8 PUSH2 0x278A JUMP JUMPDEST PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x18160DDD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x202B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x203F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2055 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP4 POP DUP4 ISZERO ISZERO PUSH2 0x20B1 JUMPI PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH2 0x20A6 SWAP1 PUSH4 0xFFFFFFFF SWAP1 DUP2 AND SWAP1 PUSH2 0x209A SWAP1 DUP11 SWAP1 PUSH3 0xF4240 SWAP1 PUSH2 0x27E8 AND JUMP JUMPDEST SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x286C AND JUMP JUMPDEST SWAP6 POP PUSH1 0x0 SWAP5 POP PUSH2 0x21CD JUMP JUMPDEST PUSH1 0x7 DUP1 SLOAD PUSH1 0x0 SWAP1 DUP2 LT PUSH2 0x20C0 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP3 POP PUSH2 0x2100 PUSH32 0x536F7672796E53776170466F726D756C61000000000000000000000000000000 PUSH2 0x1AA2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xF3250FE2 DUP6 PUSH2 0x2118 DUP7 PUSH2 0x15B6 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 ADD SLOAD DUP2 MLOAD PUSH4 0xFFFFFFFF DUP9 DUP2 AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP3 MSTORE PUSH1 0x4 DUP3 ADD SWAP8 SWAP1 SWAP8 MSTORE PUSH1 0x24 DUP2 ADD SWAP6 SWAP1 SWAP6 MSTORE SWAP5 SWAP1 SWAP5 AND PUSH1 0x44 DUP5 ADD MSTORE PUSH1 0x64 DUP4 ADD DUP14 SWAP1 MSTORE SWAP3 MLOAD PUSH1 0x84 DUP1 DUP5 ADD SWAP5 SWAP4 SWAP2 SWAP3 SWAP2 DUP4 SWAP1 SUB ADD SWAP1 DUP3 SWAP1 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x218B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x219F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x21B5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 POP PUSH2 0x21C2 DUP3 PUSH2 0x28DA JUMP JUMPDEST SWAP1 POP DUP1 DUP3 SUB DUP2 SWAP6 POP SWAP6 POP JUMPDEST POP POP POP POP SWAP2 POP SWAP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x21E7 PUSH2 0x278A JUMP JUMPDEST PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x18160DDD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x223A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x224E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2264 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x7 DUP1 SLOAD SWAP2 SWAP6 POP SWAP1 PUSH1 0x0 SWAP1 DUP2 LT PUSH2 0x2279 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP3 POP DUP4 DUP8 EQ ISZERO PUSH2 0x22A1 JUMPI PUSH2 0x20A6 DUP4 PUSH2 0x15B6 JUMP JUMPDEST PUSH2 0x22CA PUSH32 0x536F7672796E53776170466F726D756C61000000000000000000000000000000 PUSH2 0x1AA2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x76CF0B56 DUP6 PUSH2 0x2118 DUP7 PUSH2 0x15B6 JUMP JUMPDEST PUSH2 0x22EA PUSH2 0x19D3 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x22F4 PUSH2 0x1275 JUMP JUMPDEST PUSH2 0xFFFF AND GT PUSH2 0x234D JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F434F554E5400000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x79BA5097 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x23A0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x23B4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0xABF PUSH2 0x290A JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x0 SWAP1 DUP2 SWAP1 DUP2 SWAP1 DUP2 SWAP1 DUP2 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP11 DUP2 AND SWAP2 AND EQ DUP1 ISZERO PUSH2 0x240D JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP11 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND JUMPDEST ISZERO PUSH2 0x2427 JUMPI DUP10 SWAP3 POP PUSH2 0x2420 DUP9 DUP9 DUP9 PUSH2 0x294C JUMP JUMPDEST SWAP4 POP PUSH2 0x247C JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 DUP2 AND SWAP2 AND EQ DUP1 ISZERO PUSH2 0x2469 JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP10 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND JUMPDEST ISZERO PUSH2 0x1329 JUMPI DUP9 SWAP3 POP PUSH2 0x2420 DUP9 DUP9 DUP9 PUSH2 0x2C12 JUMP JUMPDEST PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x18160DDD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x24CF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x24E3 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x24F9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP6 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH1 0x5 SLOAD SWAP4 SWAP6 POP PUSH4 0xFFFFFFFF AND SWAP4 POP SWAP2 AND PUSH32 0x77F29993CF2C084E726F7E802DA0719D6A0ADE3E204BADC7A3FFD57ECB768C24 PUSH2 0x2565 PUSH3 0xF4240 PUSH2 0x2559 DUP9 PUSH2 0x15B6 JUMP JUMPDEST SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x27E8 AND JUMP JUMPDEST PUSH2 0x2578 DUP7 PUSH4 0xFFFFFFFF DUP1 DUP9 AND SWAP1 PUSH2 0x27E8 AND JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB ADD SWAP1 LOG3 POP SWAP2 SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0x9F1 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x7472616E7366657228616464726573732C75696E743235362900000000000000 DUP2 MSTORE DUP2 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x19 ADD DUP2 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x64 SWAP1 SWAP3 ADD SWAP1 SWAP3 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE PUSH2 0x26B3 SWAP1 DUP5 SWAP1 PUSH2 0x2F97 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x26C0 PUSH2 0x9F4 JUMP JUMPDEST ISZERO PUSH2 0xABF JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xA PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F41435449564500000000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 PUSH4 0xFFFFFFFF AND GT DUP1 ISZERO PUSH2 0x2734 JUMPI POP PUSH3 0xF4240 PUSH4 0xFFFFFFFF DUP3 AND GT ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x9F1 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F574549474854000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x2792 PUSH2 0x9F4 JUMP JUMPDEST ISZERO ISZERO PUSH2 0xABF JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E4143544956450000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP4 ISZERO ISZERO PUSH2 0x27FB JUMPI PUSH1 0x0 SWAP2 POP PUSH2 0x2865 JUMP JUMPDEST POP DUP3 DUP3 MUL DUP3 DUP5 DUP3 DUP2 ISZERO ISZERO PUSH2 0x280B JUMPI INVALID JUMPDEST DIV EQ PUSH2 0x2861 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP1 SWAP2 POP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP4 GT PUSH2 0x28C6 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4449564944455F42595F5A45524F0000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP3 DUP5 DUP2 ISZERO ISZERO PUSH2 0x28D1 JUMPI INVALID JUMPDEST DIV SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x0 SWAP1 PUSH2 0x15B0 SWAP1 PUSH3 0xF4240 SWAP1 PUSH2 0x209A SWAP1 DUP6 SWAP1 PUSH9 0x10000000000000000 SWAP1 DIV PUSH4 0xFFFFFFFF SWAP1 DUP2 AND SWAP1 PUSH2 0x27E8 AND JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x116F JUMPI PUSH2 0x2944 PUSH1 0x7 DUP3 DUP2 SLOAD DUP2 LT ISZERO ISZERO PUSH2 0x292A JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x1C26 JUMP JUMPDEST PUSH1 0x1 ADD PUSH2 0x2910 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x295B DUP8 PUSH2 0x1FC7 JUMP JUMPDEST SWAP1 SWAP4 POP SWAP2 POP DUP3 ISZERO ISZERO PUSH2 0x29B7 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5A45524F5F5441524745545F414D4F554E5400000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x7 DUP1 SLOAD PUSH1 0x0 SWAP1 DUP2 LT PUSH2 0x29C6 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP1 POP PUSH20 0xEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE DUP2 EQ ISZERO PUSH2 0x2A55 JUMPI CALLVALUE DUP8 EQ PUSH2 0x2A50 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4554485F414D4F554E545F4D49534D41544348000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x2B5D JUMP JUMPDEST CALLVALUE ISZERO DUP1 ISZERO PUSH2 0x2B07 JUMPI POP DUP7 PUSH2 0x2B04 PUSH2 0x2A6B DUP4 PUSH2 0x15B6 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2ACC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2AE0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2AF6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x3025 AND JUMP JUMPDEST LT ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x2B5D JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F414D4F554E540000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x2B66 DUP2 PUSH2 0x1C26 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x867904B400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH1 0x24 DUP3 ADD DUP8 SWAP1 MSTORE SWAP2 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP2 PUSH4 0x867904B4 SWAP2 PUSH1 0x44 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2BD4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2BE8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x5 SLOAD PUSH2 0x2C07 SWAP3 POP DUP4 SWAP2 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP9 DUP11 DUP8 DUP8 PUSH2 0x3085 JUMP JUMPDEST POP SWAP1 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP3 DUP4 SWAP3 DUP4 SWAP3 DUP4 SWAP3 DUP4 SWAP3 DUP4 SWAP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2C84 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2C98 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2CAE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD DUP10 GT ISZERO PUSH2 0x2D07 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F414D4F554E540000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x2D10 DUP10 PUSH2 0x21D6 JUMP JUMPDEST SWAP1 SWAP6 POP SWAP4 POP DUP5 ISZERO ISZERO PUSH2 0x2D6C JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5A45524F5F5441524745545F414D4F554E5400000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x7 DUP1 SLOAD PUSH1 0x0 SWAP1 DUP2 LT PUSH2 0x2D7B JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 SWAP1 SWAP2 ADD SLOAD PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x18160DDD00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND SWAP9 POP SWAP2 SWAP1 SWAP3 AND SWAP4 PUSH4 0x18160DDD SWAP4 PUSH1 0x4 DUP1 DUP6 ADD SWAP5 SWAP2 SWAP4 SWAP3 SWAP2 DUP4 SWAP1 SUB ADD SWAP1 DUP3 SWAP1 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2DED JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2E01 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2E17 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 POP PUSH2 0x2E24 DUP4 PUSH2 0x15B6 JUMP JUMPDEST SWAP1 POP DUP1 DUP6 LT DUP1 PUSH2 0x2E3D JUMPI POP DUP1 DUP6 EQ DUP1 ISZERO PUSH2 0x2E3D JUMPI POP DUP2 DUP10 EQ JUMPDEST ISZERO ISZERO PUSH2 0x2E45 JUMPI INVALID JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xA24835D100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP13 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP2 PUSH4 0xA24835D1 SWAP2 PUSH1 0x44 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2EB1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2EC5 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x2EF2 SWAP2 POP DUP7 PUSH4 0xFFFFFFFF PUSH2 0x3025 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE PUSH20 0xEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE EQ ISZERO PUSH2 0x2F65 JUMPI PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 AND SWAP1 DUP7 ISZERO PUSH2 0x8FC MUL SWAP1 DUP8 SWAP1 PUSH1 0x0 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x2F5F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH2 0x2F70 JUMP JUMPDEST PUSH2 0x2F70 DUP4 DUP9 DUP8 PUSH2 0x25FE JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH2 0x2F8A SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP5 DUP11 DUP13 DUP10 DUP10 PUSH2 0x3085 JUMP JUMPDEST POP SWAP3 SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x2F9F PUSH2 0x3138 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE POP SWAP1 POP PUSH1 0x20 DUP2 DUP4 MLOAD PUSH1 0x20 DUP6 ADD PUSH1 0x0 DUP8 GAS CALL DUP1 ISZERO ISZERO PUSH2 0x2FCC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD ISZERO ISZERO PUSH2 0x26B3 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5452414E534645525F4641494C454400000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 DUP4 LT ISZERO PUSH2 0x307F JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F554E444552464C4F5700000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP SWAP1 SUB SWAP1 JUMP JUMPDEST PUSH32 0x8000000000000000000000000000000000000000000000000000000000000000 DUP2 LT PUSH2 0x30AE JUMPI INVALID JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP5 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 SWAP1 MSTORE DUP1 DUP3 ADD DUP4 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP8 AND SWAP3 DUP9 DUP3 AND SWAP3 SWAP2 DUP11 AND SWAP2 PUSH32 0x276856B36CBC45526A0BA64F44611557A2A8B68662C5388E9FE6D72E86E1C8CB SWAP2 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG4 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xA0 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE SWAP2 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x60 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 SWAP1 PUSH1 0x20 DUP3 MUL DUP1 CODESIZE DUP4 CODECOPY POP SWAP2 SWAP3 SWAP2 POP POP JUMP STOP MSTORE8 PUSH16 0x7672796E53776170436F6E7665727465 PUSH19 0x557067726164657200000000004552525F4143 NUMBER GASLIMIT MSTORE8 MSTORE8 0x5f DIFFICULTY GASLIMIT 0x4e 0x49 GASLIMIT DIFFICULTY STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 0xc3 SWAP16 SWAP8 EXTCODECOPY 0xbc SHR CREATE PUSH22 0x8A64156854331E6829D0C51A16E297AAE88602BE0C95 0xbc SWAP12 STOP 0x29 ", - "sourceMap": "449:10223:21:-;;;249:1:68;362:32;;2700:30:4;;;-1:-1:-1;;;;;;2993:31:4;;;824:211:21;5:2:-1;;;;30:1;27;20:12;5:2;824:211:21;;;;;;;;;;;;;;;;;;;;;;;;;488:5:66;:18;;-1:-1:-1;;;;;;488:18:66;496:10;488:18;;;824:211:21;;;;;475:23:72;824:211:21;475:13:72;;;;:23;:::i;:::-;-1:-1:-1;1931:8:60;:39;;-1:-1:-1;;;;;1931:39:60;;;-1:-1:-1;;;;;;1931:39:60;;;;;;;;1974:12;:43;;;;;;;;5395:7:4;475:23:72;5395:7:4;475:13:72;;;;:23;:::i;:::-;5457:17:4;6403:35;5457:17;6403:19;;;;:35;:::i;:::-;-1:-1:-1;;5480:6:4;:16;;-1:-1:-1;;;;;5480:16:4;;;-1:-1:-1;;;;;;5480:16:4;;;;;;;;;;-1:-1:-1;5500:16:4;:36;;;;;;;;-1:-1:-1;;5500:36:4;;;;;;;;;-1:-1:-1;449:10223:21;;-1:-1:-1;;449:10223:21;553:117:72;-1:-1:-1;;;;;620:22:72;;;;612:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;553:117;:::o;6493:156:4:-;1826:7;6571:43;;;;;6563:82;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;449:10223:21;;;;;;;" - }, - "deployedBytecode": { - "linkReferences": {}, - "object": "60806040526004361061020b5763ffffffff60e060020a600035041663024c7ec781146102af5780630c7d5cd8146102c95780630e53aae9146102f757806312c2aca41461034c57806319b64015146103755780631cfab290146103a95780631e1401f8146103ca57806321e6b53d1461040d57806322f3e2d41461042e5780632fe8a6ad1461044357806338a5e01614610458578063395900d41461046d5780633e8ff43f1461049757806349d10b64146104c35780634af80f0e146104d857806354fd4d50146104f9578063579cd3ca1461050e5780635e35359e1461052357806361cd756e1461054d57806367b6d57c14610562578063690d8320146105835780636a49d2c4146105a457806371f52bf3146105ce57806379ba5097146105e35780637b103999146105f85780638da5cb5b1461060d57806394c275ad146106225780639b99a8e214610637578063af94b8d81461064c578063b4a176d314610676578063bf7545581461068b578063c45d3d92146106a0578063cdc91c69146106b5578063d031370b146106ca578063d260529c146106e2578063d3fb73b4146106f7578063d4ee1d901461070c578063d55ec69714610721578063d66bd52414610736578063d895951214610757578063dc8de3791461078a578063e8dc12ff146107ab578063ecbca55d146107d5578063f2fde38b146107f3578063fc0c546a14610814575b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee60005260086020527f353c2eb9e53a4a4a6d45d72082ff2e9dc829d1125618772a83eb0e7f86632c43546601000000000000900460ff1615156102ad576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f5245534552564500000000000000000000000000604482015290519081900360640190fd5b005b3480156102bb57600080fd5b506102ad6004351515610829565b3480156102d557600080fd5b506102de610871565b6040805163ffffffff9092168252519081900360200190f35b34801561030357600080fd5b50610318600160a060020a036004351661087d565b6040805195865263ffffffff9094166020860152911515848401521515606084015215156080830152519081900360a00190f35b34801561035857600080fd5b50610361610918565b604080519115158252519081900360200190f35b34801561038157600080fd5b5061038d600435610967565b60408051600160a060020a039092168252519081900360200190f35b3480156103b557600080fd5b506102de600160a060020a0360043516610993565b3480156103d657600080fd5b506103f4600160a060020a03600435811690602435166044356109c5565b6040805192835260208301919091528051918290030190f35b34801561041957600080fd5b506102ad600160a060020a03600435166109e0565b34801561043a57600080fd5b506103616109f4565b34801561044f57600080fd5b50610361610a8e565b34801561046457600080fd5b506102ad610aaf565b34801561047957600080fd5b506102ad600160a060020a0360043581169060243516604435610ac1565b3480156104a357600080fd5b506104ac610b5c565b6040805161ffff9092168252519081900360200190f35b3480156104cf57600080fd5b506102ad610b61565b3480156104e457600080fd5b506102ad600160a060020a0360043516610dce565b34801561050557600080fd5b506104ac610e10565b34801561051a57600080fd5b506102de610e15565b34801561052f57600080fd5b506102ad600160a060020a0360043581169060243516604435610e2d565b34801561055957600080fd5b5061038d610f41565b34801561056e57600080fd5b506102ad600160a060020a0360043516610f50565b34801561058f57600080fd5b506102ad600160a060020a0360043516610ff3565b3480156105b057600080fd5b506102ad600160a060020a036004351663ffffffff60243516611104565b3480156105da57600080fd5b506104ac611173565b3480156105ef57600080fd5b506102ad611182565b34801561060457600080fd5b5061038d611243565b34801561061957600080fd5b5061038d611252565b34801561062e57600080fd5b506102de611261565b34801561064357600080fd5b506104ac611275565b34801561065857600080fd5b506103f4600160a060020a036004358116906024351660443561127b565b34801561068257600080fd5b506102ad611379565b34801561069757600080fd5b506103616113b2565b3480156106ac57600080fd5b5061038d6113b7565b3480156106c157600080fd5b506102ad6113c6565b3480156106d657600080fd5b5061038d60043561141f565b3480156106ee57600080fd5b50610361611447565b34801561070357600080fd5b5061038d61144c565b34801561071857600080fd5b5061038d61145b565b34801561072d57600080fd5b506102ad61146a565b34801561074257600080fd5b50610318600160a060020a036004351661155f565b34801561076357600080fd5b50610778600160a060020a03600435166115a5565b60408051918252519081900360200190f35b34801561079657600080fd5b50610778600160a060020a03600435166115b6565b610778600160a060020a0360043581169060243581169060443590606435811690608435166115df565b3480156107e157600080fd5b506102ad63ffffffff60043516611832565b3480156107ff57600080fd5b506102ad600160a060020a0360043516611927565b34801561082057600080fd5b5061038d6119c4565b6108316119d3565b60038054911515740100000000000000000000000000000000000000000274ff000000000000000000000000000000000000000019909216919091179055565b60095463ffffffff1681565b600080600080600061088d61310a565b50505050600160a060020a03929092166000908152600860209081526040808320815160a081018352815480825260019092015463ffffffff811694820185905260ff64010000000082048116151594830194909452650100000000008104841615156060830152660100000000000090049092161515608090920182905295919450919250829190565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee60005260086020527f353c2eb9e53a4a4a6d45d72082ff2e9dc829d1125618772a83eb0e7f86632c43546601000000000000900460ff1690565b600060078281548110151561097857fe5b600091825260209091200154600160a060020a031692915050565b60008161099f81611a23565b5050600160a060020a031660009081526008602052604090206001015463ffffffff1690565b6000806109d385858561127b565b915091505b935093915050565b6109e86119d3565b6109f181610f50565b50565b600030600160a060020a0316600560009054906101000a9004600160a060020a0316600160a060020a0316638da5cb5b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610a5357600080fd5b505af1158015610a67573d6000803e3d6000fd5b505050506040513d6020811015610a7d57600080fd5b5051600160a060020a031614905090565b60035474010000000000000000000000000000000000000000900460ff1681565b610ab76119d3565b610abf6113c6565b565b610ac96119d3565b600554604080517f5e35359e000000000000000000000000000000000000000000000000000000008152600160a060020a03868116600483015285811660248301526044820185905291519190921691635e35359e91606480830192600092919082900301818387803b158015610b3f57600080fd5b505af1158015610b53573d6000803e3d6000fd5b50505050505050565b600090565b60008054600160a060020a0316331480610b96575060035474010000000000000000000000000000000000000000900460ff16155b1515610bda576040805160e560020a62461bcd0281526020600482015260116024820152600080516020613178833981519152604482015290519081900360640190fd5b610c037f436f6e7472616374526567697374727900000000000000000000000000000000611aa2565b600254909150600160a060020a03808316911614801590610c2c5750600160a060020a03811615155b1515610c82576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e56414c49445f5245474953545259000000000000000000000000604482015290519081900360640190fd5b604080517fbb34534c0000000000000000000000000000000000000000000000000000000081527f436f6e747261637452656769737472790000000000000000000000000000000060048201529051600091600160a060020a0384169163bb34534c9160248082019260209290919082900301818787803b158015610d0657600080fd5b505af1158015610d1a573d6000803e3d6000fd5b505050506040513d6020811015610d3057600080fd5b5051600160a060020a03161415610d91576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e56414c49445f5245474953545259000000000000000000000000604482015290519081900360640190fd5b6002805460038054600160a060020a0380841673ffffffffffffffffffffffffffffffffffffffff19928316179092559091169216919091179055565b610dd66119d3565b80610de081611b3a565b506006805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b602081565b60095468010000000000000000900463ffffffff1681565b6000610e37611b9b565b6002600455610e446119d3565b610e5b600080516020613158833981519152611aa2565b600160a060020a0385166000908152600860205260409020600101549091506601000000000000900460ff161580610e985750610e966109f4565b155b80610eb05750600054600160a060020a038281169116145b1515610ef4576040805160e560020a62461bcd0281526020600482015260116024820152600080516020613178833981519152604482015290519081900360640190fd5b610eff848484611bf5565b600160a060020a0384166000908152600860205260409020600101546601000000000000900460ff1615610f3657610f3684611c26565b505060016004555050565b600354600160a060020a031681565b610f586119d3565b600080516020613158833981519152610f7081611d20565b600554604080517ff2fde38b000000000000000000000000000000000000000000000000000000008152600160a060020a0385811660048301529151919092169163f2fde38b91602480830192600092919082900301818387803b158015610fd757600080fd5b505af1158015610feb573d6000803e3d6000fd5b505050505050565b6000610ffd611b9b565b600260045561100a6119d3565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee61102881611a23565b61103f600080516020613158833981519152611aa2565b91506110496109f4565b15806110625750600054600160a060020a038381169116145b15156110a6576040805160e560020a62461bcd0281526020600482015260116024820152600080516020613178833981519152604482015290519081900360640190fd5b604051600160a060020a03841690303180156108fc02916000818181858888f193505050501580156110dc573d6000803e3d6000fd5b506110fa73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee611c26565b5050600160045550565b61110c611275565b61ffff1615611165576040805160e560020a62461bcd02815260206004820152601960248201527f4552525f494e56414c49445f524553455256455f434f554e5400000000000000604482015290519081900360640190fd5b61116f8282611d76565b5050565b600061117d611275565b905090565b600154600160a060020a031633146111d2576040805160e560020a62461bcd0281526020600482015260116024820152600080516020613178833981519152604482015290519081900360640190fd5b60015460008054604051600160a060020a0393841693909116917f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91a3600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b600254600160a060020a031681565b600054600160a060020a031681565b600954640100000000900463ffffffff1681565b60075490565b6005546000908190600160a060020a0385811691161480156112c25750600160a060020a0385166000908152600860205260409020600101546601000000000000900460ff165b156112d9576112d083611fc7565b915091506109d8565b600554600160a060020a03868116911614801561131b5750600160a060020a0384166000908152600860205260409020600101546601000000000000900460ff165b15611329576112d0836121d6565b6040805160e560020a62461bcd02815260206004820152601160248201527f4552525f494e56414c49445f544f4b454e000000000000000000000000000000604482015290519081900360640190fd5b6113816119d3565b6003546002805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055565b600181565b600654600160a060020a031681565b6113ce6119d3565b6113d66122e2565b600554600190600160a060020a03166113ed610b5c565b61ffff167f6b08c2e2c9969e55a647a764db9b554d64dc42f1a704da11a6d5b129ad163f2c60405160405180910390a4565b600780548290811061142d57fe5b600091825260209091200154600160a060020a0316905081565b600190565b600554600160a060020a031681565b600154600160a060020a031681565b60006114746119d3565b61148b600080516020613158833981519152611aa2565b600554909150600090600160a060020a03166114a5610b5c565b61ffff167f6b08c2e2c9969e55a647a764db9b554d64dc42f1a704da11a6d5b129ad163f2c60405160405180910390a46114de81611927565b604080517f90f58c96000000000000000000000000000000000000000000000000000000008152602060048201529051600160a060020a038316916390f58c9691602480830192600092919082900301818387803b15801561153f57600080fd5b505af1158015611553573d6000803e3d6000fd5b505050506109f1611182565b6008602052600090815260409020805460019091015463ffffffff81169060ff640100000000820481169165010000000000810482169166010000000000009091041685565b60006115b0826115b6565b92915050565b6000816115c281611a23565b5050600160a060020a031660009081526008602052604090205490565b60006115e9611b9b565b60026004557f536f7672796e537761704e6574776f726b00000000000000000000000000000061161881611d20565b600160a060020a03878116908716141561167c576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f53414d455f534f555243455f54415247455400000000000000000000604482015290519081900360640190fd5b600654600160a060020a031615806117bf5750600654604080517f3af32abf000000000000000000000000000000000000000000000000000000008152600160a060020a03878116600483015291519190921691633af32abf9160248083019260209291908290030181600087803b1580156116f757600080fd5b505af115801561170b573d6000803e3d6000fd5b505050506040513d602081101561172157600080fd5b505180156117bf5750600654604080517f3af32abf000000000000000000000000000000000000000000000000000000008152600160a060020a03868116600483015291519190921691633af32abf9160248083019260209291908290030181600087803b15801561179257600080fd5b505af11580156117a6573d6000803e3d6000fd5b505050506040513d60208110156117bc57600080fd5b50515b1515611815576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f4e4f545f57484954454c495354454400000000000000000000000000604482015290519081900360640190fd5b61182287878787876123c0565b6001600455979650505050505050565b61183a6119d3565b60095463ffffffff640100000000909104811690821611156118a6576040805160e560020a62461bcd02815260206004820152601a60248201527f4552525f494e56414c49445f434f4e56455253494f4e5f464545000000000000604482015290519081900360640190fd5b6009546040805163ffffffff6801000000000000000090930483168152918316602083015280517f81cd2ffb37dd237c0e4e2a3de5265fcf9deb43d3e7801e80db9f1ccfba7ee6009281900390910190a16009805463ffffffff90921668010000000000000000026bffffffff000000000000000019909216919091179055565b61192f6119d3565b600054600160a060020a0382811691161415611995576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f53414d455f4f574e4552000000000000000000000000000000000000604482015290519081900360640190fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600554600160a060020a031690565b600054600160a060020a03163314610abf576040805160e560020a62461bcd0281526020600482015260116024820152600080516020613178833981519152604482015290519081900360640190fd5b600160a060020a0381166000908152600860205260409020600101546601000000000000900460ff1615156109f1576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f5245534552564500000000000000000000000000604482015290519081900360640190fd5b600254604080517fbb34534c000000000000000000000000000000000000000000000000000000008152600481018490529051600092600160a060020a03169163bb34534c91602480830192602092919082900301818787803b158015611b0857600080fd5b505af1158015611b1c573d6000803e3d6000fd5b505050506040513d6020811015611b3257600080fd5b505192915050565b600160a060020a0381163014156109f1576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f414444524553535f49535f53454c4600000000000000000000000000604482015290519081900360640190fd5b600454600114610abf576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f5245454e5452414e4359000000000000000000000000000000000000604482015290519081900360640190fd5b611bfd6119d3565b82611c078161259e565b82611c118161259e565b83611c1b81611b3a565b610feb8686866125fe565b80611c3081611a23565b600160a060020a03821673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee1415611c7657600160a060020a03821660009081526008602052604090203031905561116f565b604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a038416916370a082319160248083019260209291908290030181600087803b158015611cd757600080fd5b505af1158015611ceb573d6000803e3d6000fd5b505050506040513d6020811015611d0157600080fd5b5051600160a060020a0383166000908152600860205260409020555050565b611d2981611aa2565b600160a060020a031633146109f1576040805160e560020a62461bcd0281526020600482015260116024820152600080516020613178833981519152604482015290519081900360640190fd5b6000611d806119d3565b611d886126b8565b82611d928161259e565b83611d9c81611b3a565b83611da681612715565b600554600160a060020a03878116911614801590611dea5750600160a060020a0386166000908152600860205260409020600101546601000000000000900460ff16155b1515611e40576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f5245534552564500000000000000000000000000604482015290519081900360640190fd5b60095463ffffffff908116620f42400381169086161115611eab576040805160e560020a62461bcd02815260206004820152601a60248201527f4552525f494e56414c49445f524553455256455f574549474854000000000000604482015290519081900360640190fd5b61ffff611eb6611275565b61ffff1610611f0f576040805160e560020a62461bcd02815260206004820152601960248201527f4552525f494e56414c49445f524553455256455f434f554e5400000000000000604482015290519081900360640190fd5b505050600160a060020a0390921660008181526008602052604081208181556001908101805466ff0000000000001963ffffffff80881663ffffffff1993841617919091166601000000000000179092556007805493840181559093527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688909101805473ffffffffffffffffffffffffffffffffffffffff191690931790925560098054808416909401909216921691909117905550565b600080600080600080611fd861278a565b600560009054906101000a9004600160a060020a0316600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561202b57600080fd5b505af115801561203f573d6000803e3d6000fd5b505050506040513d602081101561205557600080fd5b505193508315156120b157600160a060020a0383166000908152600860205260409020600101546120a69063ffffffff9081169061209a908a90620f4240906127e816565b9063ffffffff61286c16565b9550600094506121cd565b6007805460009081106120c057fe5b600091825260209091200154600160a060020a031692506121007f536f7672796e53776170466f726d756c61000000000000000000000000000000611aa2565b600160a060020a031663f3250fe285612118866115b6565b600160a060020a038716600090815260086020908152604080832060010154815163ffffffff88811660e060020a02825260048201979097526024810195909552949094166044840152606483018d90529251608480840194939192918390030190829087803b15801561218b57600080fd5b505af115801561219f573d6000803e3d6000fd5b505050506040513d60208110156121b557600080fd5b505191506121c2826128da565b905080820381955095505b50505050915091565b6000806000806000806121e761278a565b600560009054906101000a9004600160a060020a0316600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561223a57600080fd5b505af115801561224e573d6000803e3d6000fd5b505050506040513d602081101561226457600080fd5b50516007805491955090600090811061227957fe5b600091825260209091200154600160a060020a03169250838714156122a1576120a6836115b6565b6122ca7f536f7672796e53776170466f726d756c61000000000000000000000000000000611aa2565b600160a060020a03166376cf0b5685612118866115b6565b6122ea6119d3565b60006122f4611275565b61ffff161161234d576040805160e560020a62461bcd02815260206004820152601960248201527f4552525f494e56414c49445f524553455256455f434f554e5400000000000000604482015290519081900360640190fd5b600560009054906101000a9004600160a060020a0316600160a060020a03166379ba50976040518163ffffffff1660e060020a028152600401600060405180830381600087803b1580156123a057600080fd5b505af11580156123b4573d6000803e3d6000fd5b50505050610abf61290a565b6005546000908190819081908190600160a060020a038a8116911614801561240d5750600160a060020a038a166000908152600860205260409020600101546601000000000000900460ff165b156124275789925061242088888861294c565b935061247c565b600554600160a060020a038b811691161480156124695750600160a060020a0389166000908152600860205260409020600101546601000000000000900460ff165b1561132957889250612420888888612c12565b600560009054906101000a9004600160a060020a0316600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156124cf57600080fd5b505af11580156124e3573d6000803e3d6000fd5b505050506040513d60208110156124f957600080fd5b5051600160a060020a0380851660008181526008602052604090206001015460055493955063ffffffff16935091167f77f29993cf2c084e726f7e802da0719d6a0ade3e204badc7a3ffd57ecb768c24612565620f4240612559886115b6565b9063ffffffff6127e816565b6125788663ffffffff808816906127e816565b6040805192835260208301919091528051918290030190a3509198975050505050505050565b600160a060020a03811615156109f1576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b604080517f7472616e7366657228616464726573732c75696e74323536290000000000000081528151908190036019018120600160a060020a038516602483015260448083018590528351808403909101815260649092019092526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909316929092179091526126b3908490612f97565b505050565b6126c06109f4565b15610abf576040805160e560020a62461bcd02815260206004820152600a60248201527f4552525f41435449564500000000000000000000000000000000000000000000604482015290519081900360640190fd5b60008163ffffffff161180156127345750620f424063ffffffff821611155b15156109f1576040805160e560020a62461bcd02815260206004820152601a60248201527f4552525f494e56414c49445f524553455256455f574549474854000000000000604482015290519081900360640190fd5b6127926109f4565b1515610abf576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f494e4143544956450000000000000000000000000000000000000000604482015290519081900360640190fd5b6000808315156127fb5760009150612865565b5082820282848281151561280b57fe5b0414612861576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b8091505b5092915050565b6000808083116128c6576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f4449564944455f42595f5a45524f0000000000000000000000000000604482015290519081900360640190fd5b82848115156128d157fe5b04949350505050565b6009546000906115b090620f42409061209a90859068010000000000000000900463ffffffff908116906127e816565b60075460005b8181101561116f5761294460078281548110151561292a57fe5b600091825260209091200154600160a060020a0316611c26565b600101612910565b60008060008061295b87611fc7565b90935091508215156129b7576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f5a45524f5f5441524745545f414d4f554e5400000000000000000000604482015290519081900360640190fd5b6007805460009081106129c657fe5b600091825260209091200154600160a060020a0316905073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee811415612a5557348714612a50576040805160e560020a62461bcd02815260206004820152601760248201527f4552525f4554485f414d4f554e545f4d49534d41544348000000000000000000604482015290519081900360640190fd5b612b5d565b34158015612b07575086612b04612a6b836115b6565b604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a038616916370a082319160248083019260209291908290030181600087803b158015612acc57600080fd5b505af1158015612ae0573d6000803e3d6000fd5b505050506040513d6020811015612af657600080fd5b50519063ffffffff61302516565b10155b1515612b5d576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f494e56414c49445f414d4f554e540000000000000000000000000000604482015290519081900360640190fd5b612b6681611c26565b600554604080517f867904b4000000000000000000000000000000000000000000000000000000008152600160a060020a038881166004830152602482018790529151919092169163867904b491604480830192600092919082900301818387803b158015612bd457600080fd5b505af1158015612be8573d6000803e3d6000fd5b5050600554612c079250839150600160a060020a0316888a8787613085565b509095945050505050565b600554604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905160009283928392839283928392600160a060020a03909216916370a082319160248082019260209290919082900301818787803b158015612c8457600080fd5b505af1158015612c98573d6000803e3d6000fd5b505050506040513d6020811015612cae57600080fd5b5051891115612d07576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f494e56414c49445f414d4f554e540000000000000000000000000000604482015290519081900360640190fd5b612d10896121d6565b9095509350841515612d6c576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f5a45524f5f5441524745545f414d4f554e5400000000000000000000604482015290519081900360640190fd5b600780546000908110612d7b57fe5b6000918252602080832090910154600554604080517f18160ddd0000000000000000000000000000000000000000000000000000000081529051600160a060020a03938416985091909216936318160ddd93600480850194919392918390030190829087803b158015612ded57600080fd5b505af1158015612e01573d6000803e3d6000fd5b505050506040513d6020811015612e1757600080fd5b50519150612e24836115b6565b905080851080612e3d57508085148015612e3d57508189145b1515612e4557fe5b600554604080517fa24835d1000000000000000000000000000000000000000000000000000000008152306004820152602481018c90529051600160a060020a039092169163a24835d19160448082019260009290919082900301818387803b158015612eb157600080fd5b505af1158015612ec5573d6000803e3d6000fd5b505050600160a060020a038416600090815260086020526040902054612ef291508663ffffffff61302516565b600160a060020a03841660008181526008602052604090209190915573eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee1415612f6557604051600160a060020a0388169086156108fc029087906000818181858888f19350505050158015612f5f573d6000803e3d6000fd5b50612f70565b612f708388876125fe565b600554612f8a90600160a060020a0316848a8c8989613085565b5092979650505050505050565b612f9f613138565b602060405190810160405280600181525090506020818351602085016000875af1801515612fcc57600080fd5b50805115156126b3576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f5452414e534645525f4641494c454400000000000000000000000000604482015290519081900360640190fd5b60008183101561307f576040805160e560020a62461bcd02815260206004820152600d60248201527f4552525f554e444552464c4f5700000000000000000000000000000000000000604482015290519081900360640190fd5b50900390565b7f800000000000000000000000000000000000000000000000000000000000000081106130ae57fe5b60408051848152602081018490528082018390529051600160a060020a038087169288821692918a16917f276856b36cbc45526a0ba64f44611557a2a8b68662c5388e9fe6d72e86e1c8cb9181900360600190a4505050505050565b6040805160a08101825260008082526020820181905291810182905260608101829052608081019190915290565b60206040519081016040528060019060208202803883395091929150505600536f7672796e53776170436f6e766572746572557067726164657200000000004552525f4143434553535f44454e494544000000000000000000000000000000a165627a7a72305820c39f973cbc1cf0758a64156854331e6829d0c51a16e297aae88602be0c95bc9b0029", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x20B JUMPI PUSH4 0xFFFFFFFF PUSH1 0xE0 PUSH1 0x2 EXP PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x24C7EC7 DUP2 EQ PUSH2 0x2AF JUMPI DUP1 PUSH4 0xC7D5CD8 EQ PUSH2 0x2C9 JUMPI DUP1 PUSH4 0xE53AAE9 EQ PUSH2 0x2F7 JUMPI DUP1 PUSH4 0x12C2ACA4 EQ PUSH2 0x34C JUMPI DUP1 PUSH4 0x19B64015 EQ PUSH2 0x375 JUMPI DUP1 PUSH4 0x1CFAB290 EQ PUSH2 0x3A9 JUMPI DUP1 PUSH4 0x1E1401F8 EQ PUSH2 0x3CA JUMPI DUP1 PUSH4 0x21E6B53D EQ PUSH2 0x40D JUMPI DUP1 PUSH4 0x22F3E2D4 EQ PUSH2 0x42E JUMPI DUP1 PUSH4 0x2FE8A6AD EQ PUSH2 0x443 JUMPI DUP1 PUSH4 0x38A5E016 EQ PUSH2 0x458 JUMPI DUP1 PUSH4 0x395900D4 EQ PUSH2 0x46D JUMPI DUP1 PUSH4 0x3E8FF43F EQ PUSH2 0x497 JUMPI DUP1 PUSH4 0x49D10B64 EQ PUSH2 0x4C3 JUMPI DUP1 PUSH4 0x4AF80F0E EQ PUSH2 0x4D8 JUMPI DUP1 PUSH4 0x54FD4D50 EQ PUSH2 0x4F9 JUMPI DUP1 PUSH4 0x579CD3CA EQ PUSH2 0x50E JUMPI DUP1 PUSH4 0x5E35359E EQ PUSH2 0x523 JUMPI DUP1 PUSH4 0x61CD756E EQ PUSH2 0x54D JUMPI DUP1 PUSH4 0x67B6D57C EQ PUSH2 0x562 JUMPI DUP1 PUSH4 0x690D8320 EQ PUSH2 0x583 JUMPI DUP1 PUSH4 0x6A49D2C4 EQ PUSH2 0x5A4 JUMPI DUP1 PUSH4 0x71F52BF3 EQ PUSH2 0x5CE JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x5E3 JUMPI DUP1 PUSH4 0x7B103999 EQ PUSH2 0x5F8 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x60D JUMPI DUP1 PUSH4 0x94C275AD EQ PUSH2 0x622 JUMPI DUP1 PUSH4 0x9B99A8E2 EQ PUSH2 0x637 JUMPI DUP1 PUSH4 0xAF94B8D8 EQ PUSH2 0x64C JUMPI DUP1 PUSH4 0xB4A176D3 EQ PUSH2 0x676 JUMPI DUP1 PUSH4 0xBF754558 EQ PUSH2 0x68B JUMPI DUP1 PUSH4 0xC45D3D92 EQ PUSH2 0x6A0 JUMPI DUP1 PUSH4 0xCDC91C69 EQ PUSH2 0x6B5 JUMPI DUP1 PUSH4 0xD031370B EQ PUSH2 0x6CA JUMPI DUP1 PUSH4 0xD260529C EQ PUSH2 0x6E2 JUMPI DUP1 PUSH4 0xD3FB73B4 EQ PUSH2 0x6F7 JUMPI DUP1 PUSH4 0xD4EE1D90 EQ PUSH2 0x70C JUMPI DUP1 PUSH4 0xD55EC697 EQ PUSH2 0x721 JUMPI DUP1 PUSH4 0xD66BD524 EQ PUSH2 0x736 JUMPI DUP1 PUSH4 0xD8959512 EQ PUSH2 0x757 JUMPI DUP1 PUSH4 0xDC8DE379 EQ PUSH2 0x78A JUMPI DUP1 PUSH4 0xE8DC12FF EQ PUSH2 0x7AB JUMPI DUP1 PUSH4 0xECBCA55D EQ PUSH2 0x7D5 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x7F3 JUMPI DUP1 PUSH4 0xFC0C546A EQ PUSH2 0x814 JUMPI JUMPDEST PUSH20 0xEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE PUSH1 0x0 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH32 0x353C2EB9E53A4A4A6D45D72082FF2E9DC829D1125618772A83EB0E7F86632C43 SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO PUSH2 0x2AD JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245534552564500000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2BB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2AD PUSH1 0x4 CALLDATALOAD ISZERO ISZERO PUSH2 0x829 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2D5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2DE PUSH2 0x871 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x303 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x318 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x87D JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP6 DUP7 MSTORE PUSH4 0xFFFFFFFF SWAP1 SWAP5 AND PUSH1 0x20 DUP7 ADD MSTORE SWAP2 ISZERO ISZERO DUP5 DUP5 ADD MSTORE ISZERO ISZERO PUSH1 0x60 DUP5 ADD MSTORE ISZERO ISZERO PUSH1 0x80 DUP4 ADD MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0xA0 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x358 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x361 PUSH2 0x918 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x381 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x38D PUSH1 0x4 CALLDATALOAD PUSH2 0x967 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3B5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2DE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x993 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3D6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3F4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x9C5 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x419 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2AD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x9E0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x43A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x361 PUSH2 0x9F4 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x44F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x361 PUSH2 0xA8E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x464 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2AD PUSH2 0xAAF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x479 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2AD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0xAC1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4A3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4AC PUSH2 0xB5C JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0xFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4CF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2AD PUSH2 0xB61 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4E4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2AD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0xDCE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x505 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4AC PUSH2 0xE10 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x51A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2DE PUSH2 0xE15 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x52F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2AD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0xE2D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x559 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x38D PUSH2 0xF41 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x56E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2AD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0xF50 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x58F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2AD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0xFF3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5B0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2AD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH4 0xFFFFFFFF PUSH1 0x24 CALLDATALOAD AND PUSH2 0x1104 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5DA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4AC PUSH2 0x1173 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5EF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2AD PUSH2 0x1182 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x604 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x38D PUSH2 0x1243 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x619 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x38D PUSH2 0x1252 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x62E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2DE PUSH2 0x1261 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x643 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4AC PUSH2 0x1275 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x658 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3F4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x127B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x682 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2AD PUSH2 0x1379 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x697 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x361 PUSH2 0x13B2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6AC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x38D PUSH2 0x13B7 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6C1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2AD PUSH2 0x13C6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6D6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x38D PUSH1 0x4 CALLDATALOAD PUSH2 0x141F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6EE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x361 PUSH2 0x1447 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x703 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x38D PUSH2 0x144C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x718 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x38D PUSH2 0x145B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x72D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2AD PUSH2 0x146A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x742 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x318 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x155F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x763 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x778 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x15A5 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x796 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x778 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x15B6 JUMP JUMPDEST PUSH2 0x778 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x44 CALLDATALOAD SWAP1 PUSH1 0x64 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x84 CALLDATALOAD AND PUSH2 0x15DF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7E1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2AD PUSH4 0xFFFFFFFF PUSH1 0x4 CALLDATALOAD AND PUSH2 0x1832 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7FF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2AD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x1927 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x820 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x38D PUSH2 0x19C4 JUMP JUMPDEST PUSH2 0x831 PUSH2 0x19D3 JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD SWAP2 ISZERO ISZERO PUSH21 0x10000000000000000000000000000000000000000 MUL PUSH21 0xFF0000000000000000000000000000000000000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH4 0xFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x88D PUSH2 0x310A JUMP JUMPDEST POP POP POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP2 MLOAD PUSH1 0xA0 DUP2 ADD DUP4 MSTORE DUP2 SLOAD DUP1 DUP3 MSTORE PUSH1 0x1 SWAP1 SWAP3 ADD SLOAD PUSH4 0xFFFFFFFF DUP2 AND SWAP5 DUP3 ADD DUP6 SWAP1 MSTORE PUSH1 0xFF PUSH5 0x100000000 DUP3 DIV DUP2 AND ISZERO ISZERO SWAP5 DUP4 ADD SWAP5 SWAP1 SWAP5 MSTORE PUSH6 0x10000000000 DUP2 DIV DUP5 AND ISZERO ISZERO PUSH1 0x60 DUP4 ADD MSTORE PUSH7 0x1000000000000 SWAP1 DIV SWAP1 SWAP3 AND ISZERO ISZERO PUSH1 0x80 SWAP1 SWAP3 ADD DUP3 SWAP1 MSTORE SWAP6 SWAP2 SWAP5 POP SWAP2 SWAP3 POP DUP3 SWAP2 SWAP1 JUMP JUMPDEST PUSH20 0xEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE PUSH1 0x0 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH32 0x353C2EB9E53A4A4A6D45D72082FF2E9DC829D1125618772A83EB0E7F86632C43 SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x7 DUP3 DUP2 SLOAD DUP2 LT ISZERO ISZERO PUSH2 0x978 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0x99F DUP2 PUSH2 0x1A23 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH4 0xFFFFFFFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x9D3 DUP6 DUP6 DUP6 PUSH2 0x127B JUMP JUMPDEST SWAP2 POP SWAP2 POP JUMPDEST SWAP4 POP SWAP4 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x9E8 PUSH2 0x19D3 JUMP JUMPDEST PUSH2 0x9F1 DUP2 PUSH2 0xF50 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 ADDRESS PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x8DA5CB5B PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xA53 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xA67 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xA7D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH2 0xAB7 PUSH2 0x19D3 JUMP JUMPDEST PUSH2 0xABF PUSH2 0x13C6 JUMP JUMPDEST JUMP JUMPDEST PUSH2 0xAC9 PUSH2 0x19D3 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x5E35359E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP6 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP3 ADD DUP6 SWAP1 MSTORE SWAP2 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP2 PUSH4 0x5E35359E SWAP2 PUSH1 0x64 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xB3F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xB53 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ DUP1 PUSH2 0xB96 JUMPI POP PUSH1 0x3 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST ISZERO ISZERO PUSH2 0xBDA JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3178 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0xC03 PUSH32 0x436F6E7472616374526567697374727900000000000000000000000000000000 PUSH2 0x1AA2 JUMP JUMPDEST PUSH1 0x2 SLOAD SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP4 AND SWAP2 AND EQ DUP1 ISZERO SWAP1 PUSH2 0xC2C JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO JUMPDEST ISZERO ISZERO PUSH2 0xC82 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245474953545259000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0xBB34534C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH32 0x436F6E7472616374526567697374727900000000000000000000000000000000 PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP2 PUSH4 0xBB34534C SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xD06 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xD1A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xD30 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ ISZERO PUSH2 0xD91 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245474953545259000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP5 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP3 DUP4 AND OR SWAP1 SWAP3 SSTORE SWAP1 SWAP2 AND SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0xDD6 PUSH2 0x19D3 JUMP JUMPDEST DUP1 PUSH2 0xDE0 DUP2 PUSH2 0x1B3A JUMP JUMPDEST POP PUSH1 0x6 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x20 DUP2 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH9 0x10000000000000000 SWAP1 DIV PUSH4 0xFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xE37 PUSH2 0x1B9B JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH2 0xE44 PUSH2 0x19D3 JUMP JUMPDEST PUSH2 0xE5B PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3158 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x1AA2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD SWAP1 SWAP2 POP PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 PUSH2 0xE98 JUMPI POP PUSH2 0xE96 PUSH2 0x9F4 JUMP JUMPDEST ISZERO JUMPDEST DUP1 PUSH2 0xEB0 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ JUMPDEST ISZERO ISZERO PUSH2 0xEF4 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3178 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0xEFF DUP5 DUP5 DUP5 PUSH2 0x1BF5 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0xF36 JUMPI PUSH2 0xF36 DUP5 PUSH2 0x1C26 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0x4 SSTORE POP POP JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH2 0xF58 PUSH2 0x19D3 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3158 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0xF70 DUP2 PUSH2 0x1D20 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xF2FDE38B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP2 PUSH4 0xF2FDE38B SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xFD7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xFEB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xFFD PUSH2 0x1B9B JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH2 0x100A PUSH2 0x19D3 JUMP JUMPDEST PUSH20 0xEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE PUSH2 0x1028 DUP2 PUSH2 0x1A23 JUMP JUMPDEST PUSH2 0x103F PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3158 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x1AA2 JUMP JUMPDEST SWAP2 POP PUSH2 0x1049 PUSH2 0x9F4 JUMP JUMPDEST ISZERO DUP1 PUSH2 0x1062 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 DUP2 AND SWAP2 AND EQ JUMPDEST ISZERO ISZERO PUSH2 0x10A6 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3178 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP1 ADDRESS BALANCE DUP1 ISZERO PUSH2 0x8FC MUL SWAP2 PUSH1 0x0 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x10DC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH2 0x10FA PUSH20 0xEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE PUSH2 0x1C26 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0x4 SSTORE POP JUMP JUMPDEST PUSH2 0x110C PUSH2 0x1275 JUMP JUMPDEST PUSH2 0xFFFF AND ISZERO PUSH2 0x1165 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F434F554E5400000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x116F DUP3 DUP3 PUSH2 0x1D76 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x117D PUSH2 0x1275 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x11D2 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3178 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND SWAP4 SWAP1 SWAP2 AND SWAP2 PUSH32 0x343765429AEA5A34B3FF6A3785A98A5ABB2597ACA87BFBB58632C173D585373A SWAP2 LOG3 PUSH1 0x1 DUP1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND OR SWAP1 SWAP2 SSTORE AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH5 0x100000000 SWAP1 DIV PUSH4 0xFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x7 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x0 SWAP1 DUP2 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 DUP2 AND SWAP2 AND EQ DUP1 ISZERO PUSH2 0x12C2 JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND JUMPDEST ISZERO PUSH2 0x12D9 JUMPI PUSH2 0x12D0 DUP4 PUSH2 0x1FC7 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x9D8 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 DUP2 AND SWAP2 AND EQ DUP1 ISZERO PUSH2 0x131B JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND JUMPDEST ISZERO PUSH2 0x1329 JUMPI PUSH2 0x12D0 DUP4 PUSH2 0x21D6 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F544F4B454E000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x1381 PUSH2 0x19D3 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x2 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x1 DUP2 JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH2 0x13CE PUSH2 0x19D3 JUMP JUMPDEST PUSH2 0x13D6 PUSH2 0x22E2 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x13ED PUSH2 0xB5C JUMP JUMPDEST PUSH2 0xFFFF AND PUSH32 0x6B08C2E2C9969E55A647A764DB9B554D64DC42F1A704DA11A6D5B129AD163F2C PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 JUMP JUMPDEST PUSH1 0x7 DUP1 SLOAD DUP3 SWAP1 DUP2 LT PUSH2 0x142D JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP1 POP DUP2 JUMP JUMPDEST PUSH1 0x1 SWAP1 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1474 PUSH2 0x19D3 JUMP JUMPDEST PUSH2 0x148B PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3158 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x1AA2 JUMP JUMPDEST PUSH1 0x5 SLOAD SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x14A5 PUSH2 0xB5C JUMP JUMPDEST PUSH2 0xFFFF AND PUSH32 0x6B08C2E2C9969E55A647A764DB9B554D64DC42F1A704DA11A6D5B129AD163F2C PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH2 0x14DE DUP2 PUSH2 0x1927 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x90F58C9600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 AND SWAP2 PUSH4 0x90F58C96 SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x153F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1553 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x9F1 PUSH2 0x1182 JUMP JUMPDEST PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD PUSH4 0xFFFFFFFF DUP2 AND SWAP1 PUSH1 0xFF PUSH5 0x100000000 DUP3 DIV DUP2 AND SWAP2 PUSH6 0x10000000000 DUP2 DIV DUP3 AND SWAP2 PUSH7 0x1000000000000 SWAP1 SWAP2 DIV AND DUP6 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x15B0 DUP3 PUSH2 0x15B6 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0x15C2 DUP2 PUSH2 0x1A23 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x15E9 PUSH2 0x1B9B JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH32 0x536F7672796E537761704E6574776F726B000000000000000000000000000000 PUSH2 0x1618 DUP2 PUSH2 0x1D20 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 DUP2 AND SWAP1 DUP8 AND EQ ISZERO PUSH2 0x167C JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F534F555243455F54415247455400000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND ISZERO DUP1 PUSH2 0x17BF JUMPI POP PUSH1 0x6 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x3AF32ABF00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP2 PUSH4 0x3AF32ABF SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x16F7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x170B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1721 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD DUP1 ISZERO PUSH2 0x17BF JUMPI POP PUSH1 0x6 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x3AF32ABF00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP2 PUSH4 0x3AF32ABF SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1792 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x17A6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x17BC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD JUMPDEST ISZERO ISZERO PUSH2 0x1815 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4E4F545F57484954454C495354454400000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x1822 DUP8 DUP8 DUP8 DUP8 DUP8 PUSH2 0x23C0 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x4 SSTORE SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x183A PUSH2 0x19D3 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH4 0xFFFFFFFF PUSH5 0x100000000 SWAP1 SWAP2 DIV DUP2 AND SWAP1 DUP3 AND GT ISZERO PUSH2 0x18A6 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F434F4E56455253494F4E5F464545000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH4 0xFFFFFFFF PUSH9 0x10000000000000000 SWAP1 SWAP4 DIV DUP4 AND DUP2 MSTORE SWAP2 DUP4 AND PUSH1 0x20 DUP4 ADD MSTORE DUP1 MLOAD PUSH32 0x81CD2FFB37DD237C0E4E2A3DE5265FCF9DEB43D3E7801E80DB9F1CCFBA7EE600 SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG1 PUSH1 0x9 DUP1 SLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP3 AND PUSH9 0x10000000000000000 MUL PUSH12 0xFFFFFFFF0000000000000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x192F PUSH2 0x19D3 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x1995 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F4F574E4552000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0xABF JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3178 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO PUSH2 0x9F1 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245534552564500000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xBB34534C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP2 PUSH4 0xBB34534C SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1B08 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1B1C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1B32 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ADDRESS EQ ISZERO PUSH2 0x9F1 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F414444524553535F49535F53454C4600000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x4 SLOAD PUSH1 0x1 EQ PUSH2 0xABF JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5245454E5452414E4359000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x1BFD PUSH2 0x19D3 JUMP JUMPDEST DUP3 PUSH2 0x1C07 DUP2 PUSH2 0x259E JUMP JUMPDEST DUP3 PUSH2 0x1C11 DUP2 PUSH2 0x259E JUMP JUMPDEST DUP4 PUSH2 0x1C1B DUP2 PUSH2 0x1B3A JUMP JUMPDEST PUSH2 0xFEB DUP7 DUP7 DUP7 PUSH2 0x25FE JUMP JUMPDEST DUP1 PUSH2 0x1C30 DUP2 PUSH2 0x1A23 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 AND PUSH20 0xEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE EQ ISZERO PUSH2 0x1C76 JUMPI PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 ADDRESS BALANCE SWAP1 SSTORE PUSH2 0x116F JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1CD7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1CEB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1D01 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE POP POP JUMP JUMPDEST PUSH2 0x1D29 DUP2 PUSH2 0x1AA2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x9F1 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3178 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1D80 PUSH2 0x19D3 JUMP JUMPDEST PUSH2 0x1D88 PUSH2 0x26B8 JUMP JUMPDEST DUP3 PUSH2 0x1D92 DUP2 PUSH2 0x259E JUMP JUMPDEST DUP4 PUSH2 0x1D9C DUP2 PUSH2 0x1B3A JUMP JUMPDEST DUP4 PUSH2 0x1DA6 DUP2 PUSH2 0x2715 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 DUP2 AND SWAP2 AND EQ DUP1 ISZERO SWAP1 PUSH2 0x1DEA JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x1E40 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245534552564500000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x9 SLOAD PUSH4 0xFFFFFFFF SWAP1 DUP2 AND PUSH3 0xF4240 SUB DUP2 AND SWAP1 DUP7 AND GT ISZERO PUSH2 0x1EAB JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F574549474854000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0xFFFF PUSH2 0x1EB6 PUSH2 0x1275 JUMP JUMPDEST PUSH2 0xFFFF AND LT PUSH2 0x1F0F JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F434F554E5400000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP2 DUP2 SSTORE PUSH1 0x1 SWAP1 DUP2 ADD DUP1 SLOAD PUSH7 0xFF000000000000 NOT PUSH4 0xFFFFFFFF DUP1 DUP9 AND PUSH4 0xFFFFFFFF NOT SWAP4 DUP5 AND OR SWAP2 SWAP1 SWAP2 AND PUSH7 0x1000000000000 OR SWAP1 SWAP3 SSTORE PUSH1 0x7 DUP1 SLOAD SWAP4 DUP5 ADD DUP2 SSTORE SWAP1 SWAP4 MSTORE PUSH32 0xA66CC928B5EDB82AF9BD49922954155AB7B0942694BEA4CE44661D9A8736C688 SWAP1 SWAP2 ADD DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 SWAP4 OR SWAP1 SWAP3 SSTORE PUSH1 0x9 DUP1 SLOAD DUP1 DUP5 AND SWAP1 SWAP5 ADD SWAP1 SWAP3 AND SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x1FD8 PUSH2 0x278A JUMP JUMPDEST PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x18160DDD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x202B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x203F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2055 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP4 POP DUP4 ISZERO ISZERO PUSH2 0x20B1 JUMPI PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH2 0x20A6 SWAP1 PUSH4 0xFFFFFFFF SWAP1 DUP2 AND SWAP1 PUSH2 0x209A SWAP1 DUP11 SWAP1 PUSH3 0xF4240 SWAP1 PUSH2 0x27E8 AND JUMP JUMPDEST SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x286C AND JUMP JUMPDEST SWAP6 POP PUSH1 0x0 SWAP5 POP PUSH2 0x21CD JUMP JUMPDEST PUSH1 0x7 DUP1 SLOAD PUSH1 0x0 SWAP1 DUP2 LT PUSH2 0x20C0 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP3 POP PUSH2 0x2100 PUSH32 0x536F7672796E53776170466F726D756C61000000000000000000000000000000 PUSH2 0x1AA2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xF3250FE2 DUP6 PUSH2 0x2118 DUP7 PUSH2 0x15B6 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 ADD SLOAD DUP2 MLOAD PUSH4 0xFFFFFFFF DUP9 DUP2 AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP3 MSTORE PUSH1 0x4 DUP3 ADD SWAP8 SWAP1 SWAP8 MSTORE PUSH1 0x24 DUP2 ADD SWAP6 SWAP1 SWAP6 MSTORE SWAP5 SWAP1 SWAP5 AND PUSH1 0x44 DUP5 ADD MSTORE PUSH1 0x64 DUP4 ADD DUP14 SWAP1 MSTORE SWAP3 MLOAD PUSH1 0x84 DUP1 DUP5 ADD SWAP5 SWAP4 SWAP2 SWAP3 SWAP2 DUP4 SWAP1 SUB ADD SWAP1 DUP3 SWAP1 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x218B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x219F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x21B5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 POP PUSH2 0x21C2 DUP3 PUSH2 0x28DA JUMP JUMPDEST SWAP1 POP DUP1 DUP3 SUB DUP2 SWAP6 POP SWAP6 POP JUMPDEST POP POP POP POP SWAP2 POP SWAP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x21E7 PUSH2 0x278A JUMP JUMPDEST PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x18160DDD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x223A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x224E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2264 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x7 DUP1 SLOAD SWAP2 SWAP6 POP SWAP1 PUSH1 0x0 SWAP1 DUP2 LT PUSH2 0x2279 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP3 POP DUP4 DUP8 EQ ISZERO PUSH2 0x22A1 JUMPI PUSH2 0x20A6 DUP4 PUSH2 0x15B6 JUMP JUMPDEST PUSH2 0x22CA PUSH32 0x536F7672796E53776170466F726D756C61000000000000000000000000000000 PUSH2 0x1AA2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x76CF0B56 DUP6 PUSH2 0x2118 DUP7 PUSH2 0x15B6 JUMP JUMPDEST PUSH2 0x22EA PUSH2 0x19D3 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x22F4 PUSH2 0x1275 JUMP JUMPDEST PUSH2 0xFFFF AND GT PUSH2 0x234D JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F434F554E5400000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x79BA5097 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x23A0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x23B4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0xABF PUSH2 0x290A JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x0 SWAP1 DUP2 SWAP1 DUP2 SWAP1 DUP2 SWAP1 DUP2 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP11 DUP2 AND SWAP2 AND EQ DUP1 ISZERO PUSH2 0x240D JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP11 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND JUMPDEST ISZERO PUSH2 0x2427 JUMPI DUP10 SWAP3 POP PUSH2 0x2420 DUP9 DUP9 DUP9 PUSH2 0x294C JUMP JUMPDEST SWAP4 POP PUSH2 0x247C JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 DUP2 AND SWAP2 AND EQ DUP1 ISZERO PUSH2 0x2469 JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP10 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND JUMPDEST ISZERO PUSH2 0x1329 JUMPI DUP9 SWAP3 POP PUSH2 0x2420 DUP9 DUP9 DUP9 PUSH2 0x2C12 JUMP JUMPDEST PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x18160DDD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x24CF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x24E3 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x24F9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP6 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH1 0x5 SLOAD SWAP4 SWAP6 POP PUSH4 0xFFFFFFFF AND SWAP4 POP SWAP2 AND PUSH32 0x77F29993CF2C084E726F7E802DA0719D6A0ADE3E204BADC7A3FFD57ECB768C24 PUSH2 0x2565 PUSH3 0xF4240 PUSH2 0x2559 DUP9 PUSH2 0x15B6 JUMP JUMPDEST SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x27E8 AND JUMP JUMPDEST PUSH2 0x2578 DUP7 PUSH4 0xFFFFFFFF DUP1 DUP9 AND SWAP1 PUSH2 0x27E8 AND JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB ADD SWAP1 LOG3 POP SWAP2 SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0x9F1 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x7472616E7366657228616464726573732C75696E743235362900000000000000 DUP2 MSTORE DUP2 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x19 ADD DUP2 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x64 SWAP1 SWAP3 ADD SWAP1 SWAP3 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE PUSH2 0x26B3 SWAP1 DUP5 SWAP1 PUSH2 0x2F97 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x26C0 PUSH2 0x9F4 JUMP JUMPDEST ISZERO PUSH2 0xABF JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xA PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F41435449564500000000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 PUSH4 0xFFFFFFFF AND GT DUP1 ISZERO PUSH2 0x2734 JUMPI POP PUSH3 0xF4240 PUSH4 0xFFFFFFFF DUP3 AND GT ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x9F1 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F574549474854000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x2792 PUSH2 0x9F4 JUMP JUMPDEST ISZERO ISZERO PUSH2 0xABF JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E4143544956450000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP4 ISZERO ISZERO PUSH2 0x27FB JUMPI PUSH1 0x0 SWAP2 POP PUSH2 0x2865 JUMP JUMPDEST POP DUP3 DUP3 MUL DUP3 DUP5 DUP3 DUP2 ISZERO ISZERO PUSH2 0x280B JUMPI INVALID JUMPDEST DIV EQ PUSH2 0x2861 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP1 SWAP2 POP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP4 GT PUSH2 0x28C6 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4449564944455F42595F5A45524F0000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP3 DUP5 DUP2 ISZERO ISZERO PUSH2 0x28D1 JUMPI INVALID JUMPDEST DIV SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x0 SWAP1 PUSH2 0x15B0 SWAP1 PUSH3 0xF4240 SWAP1 PUSH2 0x209A SWAP1 DUP6 SWAP1 PUSH9 0x10000000000000000 SWAP1 DIV PUSH4 0xFFFFFFFF SWAP1 DUP2 AND SWAP1 PUSH2 0x27E8 AND JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x116F JUMPI PUSH2 0x2944 PUSH1 0x7 DUP3 DUP2 SLOAD DUP2 LT ISZERO ISZERO PUSH2 0x292A JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x1C26 JUMP JUMPDEST PUSH1 0x1 ADD PUSH2 0x2910 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x295B DUP8 PUSH2 0x1FC7 JUMP JUMPDEST SWAP1 SWAP4 POP SWAP2 POP DUP3 ISZERO ISZERO PUSH2 0x29B7 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5A45524F5F5441524745545F414D4F554E5400000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x7 DUP1 SLOAD PUSH1 0x0 SWAP1 DUP2 LT PUSH2 0x29C6 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP1 POP PUSH20 0xEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE DUP2 EQ ISZERO PUSH2 0x2A55 JUMPI CALLVALUE DUP8 EQ PUSH2 0x2A50 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4554485F414D4F554E545F4D49534D41544348000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x2B5D JUMP JUMPDEST CALLVALUE ISZERO DUP1 ISZERO PUSH2 0x2B07 JUMPI POP DUP7 PUSH2 0x2B04 PUSH2 0x2A6B DUP4 PUSH2 0x15B6 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2ACC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2AE0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2AF6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x3025 AND JUMP JUMPDEST LT ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x2B5D JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F414D4F554E540000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x2B66 DUP2 PUSH2 0x1C26 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x867904B400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH1 0x24 DUP3 ADD DUP8 SWAP1 MSTORE SWAP2 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP2 PUSH4 0x867904B4 SWAP2 PUSH1 0x44 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2BD4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2BE8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x5 SLOAD PUSH2 0x2C07 SWAP3 POP DUP4 SWAP2 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP9 DUP11 DUP8 DUP8 PUSH2 0x3085 JUMP JUMPDEST POP SWAP1 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP3 DUP4 SWAP3 DUP4 SWAP3 DUP4 SWAP3 DUP4 SWAP3 DUP4 SWAP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2C84 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2C98 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2CAE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD DUP10 GT ISZERO PUSH2 0x2D07 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F414D4F554E540000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x2D10 DUP10 PUSH2 0x21D6 JUMP JUMPDEST SWAP1 SWAP6 POP SWAP4 POP DUP5 ISZERO ISZERO PUSH2 0x2D6C JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5A45524F5F5441524745545F414D4F554E5400000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x7 DUP1 SLOAD PUSH1 0x0 SWAP1 DUP2 LT PUSH2 0x2D7B JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 SWAP1 SWAP2 ADD SLOAD PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x18160DDD00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND SWAP9 POP SWAP2 SWAP1 SWAP3 AND SWAP4 PUSH4 0x18160DDD SWAP4 PUSH1 0x4 DUP1 DUP6 ADD SWAP5 SWAP2 SWAP4 SWAP3 SWAP2 DUP4 SWAP1 SUB ADD SWAP1 DUP3 SWAP1 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2DED JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2E01 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2E17 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 POP PUSH2 0x2E24 DUP4 PUSH2 0x15B6 JUMP JUMPDEST SWAP1 POP DUP1 DUP6 LT DUP1 PUSH2 0x2E3D JUMPI POP DUP1 DUP6 EQ DUP1 ISZERO PUSH2 0x2E3D JUMPI POP DUP2 DUP10 EQ JUMPDEST ISZERO ISZERO PUSH2 0x2E45 JUMPI INVALID JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xA24835D100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP13 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP2 PUSH4 0xA24835D1 SWAP2 PUSH1 0x44 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2EB1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2EC5 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x2EF2 SWAP2 POP DUP7 PUSH4 0xFFFFFFFF PUSH2 0x3025 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE PUSH20 0xEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE EQ ISZERO PUSH2 0x2F65 JUMPI PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 AND SWAP1 DUP7 ISZERO PUSH2 0x8FC MUL SWAP1 DUP8 SWAP1 PUSH1 0x0 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x2F5F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH2 0x2F70 JUMP JUMPDEST PUSH2 0x2F70 DUP4 DUP9 DUP8 PUSH2 0x25FE JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH2 0x2F8A SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP5 DUP11 DUP13 DUP10 DUP10 PUSH2 0x3085 JUMP JUMPDEST POP SWAP3 SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x2F9F PUSH2 0x3138 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE POP SWAP1 POP PUSH1 0x20 DUP2 DUP4 MLOAD PUSH1 0x20 DUP6 ADD PUSH1 0x0 DUP8 GAS CALL DUP1 ISZERO ISZERO PUSH2 0x2FCC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD ISZERO ISZERO PUSH2 0x26B3 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5452414E534645525F4641494C454400000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 DUP4 LT ISZERO PUSH2 0x307F JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F554E444552464C4F5700000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP SWAP1 SUB SWAP1 JUMP JUMPDEST PUSH32 0x8000000000000000000000000000000000000000000000000000000000000000 DUP2 LT PUSH2 0x30AE JUMPI INVALID JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP5 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 SWAP1 MSTORE DUP1 DUP3 ADD DUP4 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP8 AND SWAP3 DUP9 DUP3 AND SWAP3 SWAP2 DUP11 AND SWAP2 PUSH32 0x276856B36CBC45526A0BA64F44611557A2A8B68662C5388E9FE6D72E86E1C8CB SWAP2 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG4 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xA0 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE SWAP2 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x60 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 SWAP1 PUSH1 0x20 DUP3 MUL DUP1 CODESIZE DUP4 CODECOPY POP SWAP2 SWAP3 SWAP2 POP POP JUMP STOP MSTORE8 PUSH16 0x7672796E53776170436F6E7665727465 PUSH19 0x557067726164657200000000004552525F4143 NUMBER GASLIMIT MSTORE8 MSTORE8 0x5f DIFFICULTY GASLIMIT 0x4e 0x49 GASLIMIT DIFFICULTY STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 0xc3 SWAP16 SWAP8 EXTCODECOPY 0xbc SHR CREATE PUSH22 0x8A64156854331E6829D0C51A16E297AAE88602BE0C95 0xbc SWAP12 STOP 0x29 ", - "sourceMap": "449:10223:21:-;;;;;;;;-1:-1:-1;449:10223:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1884:42:4;7097:29;;:8;:29;;:35;;;;;;;7089:67;;;;;;;-1:-1:-1;;;;;7089:67:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;449:10223:21;3280:206:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3280:206:60;;;;;;;2700:30:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2700:30:4;;;;;;;;;;;;;;;;;;;;;;;18973:244;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;18973:244:4;;;-1:-1:-1;;;;;18973:244:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14417:102;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14417:102:4;;;;;;;;;;;;;;;;;;;;;;19274:125;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;19274:125:4;;;;;;;;;-1:-1:-1;;;;;19274:125:4;;;;;;;;;;;;;;13732:152;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;13732:152:4;;;-1:-1:-1;;;;;13732:152:4;;;19798:206;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;19798:206:4;-1:-1:-1;;;;;19798:206:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18669:110;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;18669:110:4;;;-1:-1:-1;;;;;18669:110:4;;;8967:93;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8967:93:4;;;;1250:38:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1250:38:60;;;;18836:80:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18836:80:4;;;;10292:155;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;10292:155:4;-1:-1:-1;;;;;10292:155:4;;;;;;;;;;;;1180:81:21;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1180:81:21;;;;;;;;;;;;;;;;;;;;;;;2080:832:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2080:832:60;;;;8691:132:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;8691:132:4;;;-1:-1:-1;;;;;8691:132:4;;;2221:35;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2221:35:4;;;;2993:31;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2993:31:4;;;;11282:601;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;11282:601:4;-1:-1:-1;;;;;11282:601:4;;;;;;;;;;;;1165:37:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1165:37:60;;;;9368:137:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;9368:137:4;;;-1:-1:-1;;;;;9368:137:4;;;7669:465;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;7669:465:4;;;-1:-1:-1;;;;;7669:465:4;;;2025:253:21;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2025:253:21;;;-1:-1:-1;;;;;2025:253:21;;;;;;;19456:94:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19456:94:4;;;;1159:176:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1159:176:66;;;;1085:33:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1085:33:60;;;;157:20:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;157:20:66;;;;2818:34:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2818:34:4;;;;12584:101;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12584:101:4;;;;2720:472:21;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2720:472:21;-1:-1:-1;;;;;2720:472:21;;;;;;;;;;;;2974:119:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2974:119:60;;;;3095:46:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3095:46:4;;;;2322:37;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2322:37:4;;;;1534:157:21;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1534:157:21;;;;2445:34:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2445:34:4;;;;;8282:71;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8282:71:4;;;;2260:30;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2260:30:4;;;;180:23:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;180:23:66;;;;12079:317:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12079:317:4;;;;2566:43;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2566:43:4;;;-1:-1:-1;;;;;2566:43:4;;;19607:134;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;19607:134:4;;;-1:-1:-1;;;;;19607:134:4;;;;;;;;;;;;;;;;;;;14111:155;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;14111:155:4;;;-1:-1:-1;;;;;14111:155:4;;;15044:649;;-1:-1:-1;;;;;15044:649:4;;;;;;;;;;;;;;;;;;;;;;;10618:240;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;10618:240:4;;;;;;;945:140:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;945:140:66;;;-1:-1:-1;;;;;945:140:66;;;18535:77:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18535:77:4;;;;3280:206:60;575:12:66;:10;:12::i;:::-;3426:26:60;:56;;;;;;;-1:-1:-1;;3426:56:60;;;;;;;;;3280:206::o;2700:30:4:-;;;;;;:::o;18973:244::-;19042:7;19054:6;19065:4;19074;19083;19097:22;;:::i;:::-;-1:-1:-1;;;;;;;;;19122:18:4;;;;;;;;:8;:18;;;;;;;;19097:43;;-1:-1:-1;19097:43:4;;;;;;;;;-1:-1:-1;19097:43:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;19122:18:4;;-1:-1:-1;19122:18:4;;19097:43;18973:244::o;14417:102::-;1884:42;14463:4;14480:29;:8;:29;;:35;;;;;;;;14417:102::o;19274:125::-;19336:11;19360:27;19388:6;19360:35;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;19360:35:4;;;-1:-1:-1;;19274:125:4:o;13732:152::-;13831:6;13807:13;6115:23;6129:8;6115:13;:23::i;:::-;-1:-1:-1;;;;;;;13850:23:4;;;;;:8;:23;;;;;-1:-1:-1;13850:30:4;;;;;13732:152::o;19798:206::-;19916:7;19925;19945:55;19964:12;19978;19992:7;19945:18;:55::i;:::-;19938:62;;;;19798:206;;;;;;;:::o;18669:110::-;575:12:66;:10;:12::i;:::-;18741:34:4;18765:9;18741:23;:34::i;:::-;18669:110;:::o;8967:93::-;9025:6;;:14;;;;;;;;9008:4;;9051;;-1:-1:-1;;;;;9025:6:4;;;;:12;;:14;;;;;;;;;;;;;;;9008:4;9025:6;:14;;;5:2:-1;;;;30:1;27;20:12;5:2;9025:14:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9025:14:4;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9025:14:4;-1:-1:-1;;;;;9025:31:4;;;8967:93;-1:-1:-1;8967:93:4:o;1250:38:60:-;;;;;;;;;:::o;18836:80:4:-;575:12:66;:10;:12::i;:::-;18889:23:4;:21;:23::i;:::-;18836:80::o;10292:155::-;575:12:66;:10;:12::i;:::-;10400:6:4;;:43;;;;;;-1:-1:-1;;;;;10400:43:4;;;;;;;;;;;;;;;;;;;;;;:6;;;;;:21;;:43;;;;;-1:-1:-1;;10400:43:4;;;;;;;-1:-1:-1;10400:6:4;:43;;;5:2:-1;;;;30:1;27;20:12;5:2;10400:43:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10400:43:4;;;;10292:155;;;:::o;1180:81:21:-;1226:6;1180:81;:::o;2080:832:60:-;2281:29;2183:5;;-1:-1:-1;;;;;2183:5:60;2169:10;:19;;:50;;-1:-1:-1;2193:26:60;;;;;;;2192:27;2169:50;2161:80;;;;;;;-1:-1:-1;;;;;2161:80:60;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;2161:80:60;;;;;;;;;;;;;;;2331:28;2341:17;2331:9;:28::i;:::-;2465:8;;2281:79;;-1:-1:-1;;;;;;2442:32:60;;;2465:8;;2442:32;;;;:61;;-1:-1:-1;;;;;;2478:25:60;;;;2442:61;2434:94;;;;;;;-1:-1:-1;;;;;2434:94:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;2628:40;;;;;;2650:17;2628:40;;;;;;-1:-1:-1;;;;;;;2628:21:60;;;;;:40;;;;;;;;;;;;;;;-1:-1:-1;2628:21:60;:40;;;5:2:-1;;;;30:1;27;20:12;5:2;2628:40:60;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2628:40:60;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2628:40:60;-1:-1:-1;;;;;2628:54:60;;;2620:87;;;;;-1:-1:-1;;;;;2620:87:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;2799:8;;;2784:12;:23;;-1:-1:-1;;;;;2799:8:60;;;-1:-1:-1;;2784:23:60;;;;;;;2886:22;;;;;;;;;;;2080:832::o;8691:132:4:-;575:12:66;:10;:12::i;:::-;8771:10:4;782:18:72;791:8;782;:18::i;:::-;-1:-1:-1;8787:19:4;:32;;-1:-1:-1;;8787:32:4;-1:-1:-1;;;;;8787:32:4;;;;;;;;;;8691:132::o;2221:35::-;2254:2;2221:35;:::o;2993:31::-;;;;;;;;;:::o;11282:601::-;11396:25;565:12:68;:10;:12::i;:::-;287:1;581:5;:14;575:12:66;:10;:12::i;:::-;11424:29:4;-1:-1:-1;;;;;;;;;;;11424:9:4;:29::i;:::-;-1:-1:-1;;;;;11622:16:4;;;;;;:8;:16;;;;;-1:-1:-1;11622:22:4;;11396:57;;-1:-1:-1;11622:22:4;;;;;11621:23;;:38;;;11649:10;:8;:10::i;:::-;11648:11;11621:38;:68;;;-1:-1:-1;11663:5:4;;-1:-1:-1;;;;;11663:26:4;;;:5;;:26;11621:68;11613:98;;;;;;;-1:-1:-1;;;;;11613:98:4;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;11613:98:4;;;;;;;;;;;;;;;11715:42;11736:6;11744:3;11749:7;11715:20;:42::i;:::-;-1:-1:-1;;;;;11829:16:4;;;;;;:8;:16;;;;;-1:-1:-1;11829:22:4;;;;;;;11825:54;;;11853:26;11872:6;11853:18;:26::i;:::-;-1:-1:-1;;249:1:68;604:5;:16;-1:-1:-1;;11282:601:4:o;1165:37:60:-;;;-1:-1:-1;;;;;1165:37:60;;:::o;9368:137:4:-;575:12:66;:10;:12::i;:::-;-1:-1:-1;;;;;;;;;;;1510:20:60;1516:13;1510:5;:20::i;:::-;9466:6:4;;:35;;;;;;-1:-1:-1;;;;;9466:35:4;;;;;;;;;:6;;;;;:24;;:35;;;;;-1:-1:-1;;9466:35:4;;;;;;;-1:-1:-1;9466:6:4;:35;;;5:2:-1;;;;30:1;27;20:12;5:2;9466:35:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9466:35:4;;;;591:1:66;9368:137:4;:::o;7669:465::-;7781:25;565:12:68;:10;:12::i;:::-;287:1;581:5;:14;575:12:66;:10;:12::i;:::-;1884:42:4;6115:23;6129:8;6115:13;:23::i;:::-;7809:29;-1:-1:-1;;;;;;;;;;;7809:9:4;:29::i;:::-;7781:57;;7938:10;:8;:10::i;:::-;7937:11;:41;;;-1:-1:-1;7952:5:4;;-1:-1:-1;;;;;7952:26:4;;;:5;;:26;7937:41;7929:71;;;;;;;-1:-1:-1;;;;;7929:71:4;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;7929:71:4;;;;;;;;;;;;;;;8004:35;;-1:-1:-1;;;;;8004:12:4;;;8025:4;8017:21;8004:35;;;;;;;;;8017:21;8004:12;:35;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8004:35:4;8078:52;1884:42;8078:18;:52::i;:::-;-1:-1:-1;;249:1:68;604:5;:16;-1:-1:-1;7669:465:4:o;2025:253:21:-;2172:19;:17;:19::i;:::-;:24;;;2164:62;;;;;-1:-1:-1;;;;;2164:62:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;2237:33;2254:6;2262:7;2237:16;:33::i;:::-;2025:253;;:::o;19456:94:4:-;19508:6;19527:19;:17;:19::i;:::-;19520:26;;19456:94;:::o;1159:176:66:-;1219:8;;-1:-1:-1;;;;;1219:8:66;1205:10;:22;1197:52;;;;;-1:-1:-1;;;;;1197:52:66;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;1197:52:66;;;;;;;;;;;;;;;1277:8;;;1270:5;;1258:28;;-1:-1:-1;;;;;1277:8:66;;;;1270:5;;;;1258:28;;;1298:8;;;;1290:16;;-1:-1:-1;;;;;1298:8:66;;-1:-1:-1;;1290:16:66;;;;;;;1310:21;;;1159:176::o;1085:33:60:-;;;-1:-1:-1;;;;;1085:33:60;;:::o;157:20:66:-;;;-1:-1:-1;;;;;157:20:66;;:::o;2818:34:4:-;;;;;;;;;:::o;12584:101::-;12660:13;:20;12584:101;:::o;2720:472:21:-;2899:6;;2838:7;;;;-1:-1:-1;;;;;2871:35:21;;;2899:6;;2871:35;:67;;;;-1:-1:-1;;;;;;2910:22:21;;;;;;:8;:22;;;;;-1:-1:-1;2910:28:21;;;;;;;2871:67;2867:122;;;2960:29;2981:7;2960:20;:29::i;:::-;2953:36;;;;;;2867:122;3032:6;;-1:-1:-1;;;;;3004:35:21;;;3032:6;;3004:35;:67;;;;-1:-1:-1;;;;;;3043:22:21;;;;;;:8;:22;;;;;-1:-1:-1;3043:28:21;;;;;;;3004:67;3000:118;;;3093:25;3110:7;3093:16;:25::i;3000:118::-;3157:27;;;-1:-1:-1;;;;;3157:27:21;;;;;;;;;;;;;;;;;;;;;;;;;;;2974:119:60;575:12:66;:10;:12::i;:::-;3077::60;;3066:8;:23;;-1:-1:-1;;3066:23:60;-1:-1:-1;;;;;3077:12:60;;;3066:23;;;;;;2974:119::o;3095:46:4:-;3137:4;3095:46;:::o;2322:37::-;;;-1:-1:-1;;;;;2322:37:4;;:::o;1534:157:21:-;575:12:66;:10;:12::i;:::-;1595:29:21;:27;:29::i;:::-;1670:6;;1678:4;;-1:-1:-1;;;;;1670:6:21;1653:15;:13;:15::i;:::-;1642:41;;;;;;;;;;;;1534:157::o;2445:34:4:-;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2445:34:4;;-1:-1:-1;2445:34:4;:::o;8282:71::-;8345:4;8282:71;:::o;2260:30::-;;;-1:-1:-1;;;;;2260:30:4;;:::o;180:23:66:-;;;-1:-1:-1;;;;;180:23:66;;:::o;12079:317:4:-;12119:36;575:12:66;:10;:12::i;:::-;12177:29:4;-1:-1:-1;;;;;;;;;;;12177:9:4;:29::i;:::-;12278:6;;12119:88;;-1:-1:-1;12286:5:4;;-1:-1:-1;;;;;12278:6:4;12261:15;:13;:15::i;:::-;12250:42;;;;;;;;;;;;12297:36;12315:17;12297;:36::i;:::-;12337:34;;;;;;2254:2;12337:34;;;;;;-1:-1:-1;;;;;12337:25:4;;;;;:34;;;;;-1:-1:-1;;12337:34:4;;;;;;;-1:-1:-1;12337:25:4;:34;;;5:2:-1;;;;30:1;27;20:12;5:2;12337:34:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12337:34:4;;;;12375:17;:15;:17::i;2566:43::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;19607:134::-;19686:7;19706:31;19721:15;19706:14;:31::i;:::-;19699:38;19607:134;-1:-1:-1;;19607:134:4:o;14111:155::-;14211:7;14187:13;6115:23;6129:8;6115:13;:23::i;:::-;-1:-1:-1;;;;;;;14231:23:4;;;;;:8;:23;;;;;:31;;14111:155::o;15044:649::-;15241:7;565:12:68;:10;:12::i;:::-;287:1;581:5;:14;15212:18:4;1510:20:60;15212:18:4;1510:5:60;:20::i;:::-;-1:-1:-1;;;;;15282:28:4;;;;;;;;15274:63;;;;;-1:-1:-1;;;;;15274:63:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;15446:19;;-1:-1:-1;;;;;15446:19:4;:33;;:132;;-1:-1:-1;15484:19:4;;:42;;;;;;-1:-1:-1;;;;;15484:42:4;;;;;;;;;:19;;;;;:33;;:42;;;;;;;;;;;;;;-1:-1:-1;15484:19:4;:42;;;5:2:-1;;;;30:1;27;20:12;5:2;15484:42:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15484:42:4;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;15484:42:4;:93;;;;-1:-1:-1;15530:19:4;;:47;;;;;;-1:-1:-1;;;;;15530:47:4;;;;;;;;;:19;;;;;:33;;:47;;;;;;;;;;;;;;-1:-1:-1;15530:19:4;:47;;;5:2:-1;;;;30:1;27;20:12;5:2;15530:47:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15530:47:4;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;15530:47:4;15484:93;15434:174;;;;;;;-1:-1:-1;;;;;15434:174:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;15620:69;15630:12;15644;15658:7;15667;15676:12;15620:9;:69::i;:::-;249:1:68;604:5;:16;15613:76:4;15044:649;-1:-1:-1;;;;;;;15044:649:4:o;10618:240::-;575:12:66;:10;:12::i;:::-;10714:16:4;;;;;;;;;10696:34;;;;;10688:73;;;;;-1:-1:-1;;;;;10688:73:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;10790:13;;10770:50;;;10790:13;;;;;;;10770:50;;;;;;;;;;;;;;;;;;;;;10824:13;:30;;;;;;;;-1:-1:-1;;10824:30:4;;;;;;;;;10618:240::o;945:140:66:-;575:12;:10;:12::i;:::-;1033:5;;-1:-1:-1;;;;;1020:18:66;;;1033:5;;1020:18;;1012:45;;;;;-1:-1:-1;;;;;1012:45:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;1061:8;:20;;-1:-1:-1;;1061:20:66;-1:-1:-1;;;;;1061:20:66;;;;;;;;;;945:140::o;18535:77:4:-;18602:6;;-1:-1:-1;;;;;18602:6:4;;18535:77::o;642:93:66:-;704:5;;-1:-1:-1;;;;;704:5:66;690:10;:19;682:49;;;;;-1:-1:-1;;;;;682:49:66;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;682:49:66;;;;;;;;;;;;;;6193:123:4;-1:-1:-1;;;;;6264:18:4;;;;;;:8;:18;;;;;-1:-1:-1;6264:24:4;;;;;;;6256:56;;;;;;;-1:-1:-1;;;;;6256:56:4;;;;;;;;;;;;;;;;;;;;;;;;;;;3647:122:60;3732:8;;:33;;;;;;;;;;;;;;-1:-1:-1;;;;;;;3732:8:60;;:18;;:33;;;;;;;;;;;;;;-1:-1:-1;3732:8:60;:33;;;5:2:-1;;;;30:1;27;20:12;5:2;3732:33:60;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3732:33:60;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3732:33:60;;3647:122;-1:-1:-1;;3647:122:60:o;855:115:72:-;937:4;-1:-1:-1;;;;;917:25:72;;;;909:57;;;;;-1:-1:-1;;;;;909:57:72;;;;;;;;;;;;;;;;;;;;;;;;;;;670:88:68;718:5;;249:1;718:17;710:44;;;;;-1:-1:-1;;;;;710:44:68;;;;;;;;;;;;;;;;;;;;;;;;;;;1077:194:71;575:12:66;:10;:12::i;:::-;1190:6:71;475:23:72;489:8;475:13;:23::i;:::-;1211:3:71;475:23:72;489:8;475:13;:23::i;:::-;1224:3:71;782:18:72;791:8;782;:18::i;:::-;1233:34:71;1246:6;1254:3;1259:7;1233:12;:34::i;16898:269:4:-;16975:13;6115:23;6129:8;6115:13;:23::i;:::-;1884:42;-1:-1:-1;;;;;16998:36:4;;;16994:169;;;-1:-1:-1;;;;;17036:23:4;;;;;;:8;:23;;;;;17078:4;17070:21;17036:55;;16994:169;;;17134:29;;;;;;17158:4;17134:29;;;;;;-1:-1:-1;;;;;17134:23:4;;;;;:29;;;;;;;;;;;;;;-1:-1:-1;17134:23:4;:29;;;5:2:-1;;;;30:1;27;20:12;5:2;17134:29:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17134:29:4;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;17134:29:4;-1:-1:-1;;;;;17100:23:4;;;;;;:8;17134:29;17100:23;;;;:63;16898:269;;:::o;1585:128:60:-;1663:24;1673:13;1663:9;:24::i;:::-;-1:-1:-1;;;;;1649:38:60;:10;:38;1641:68;;;;;-1:-1:-1;;;;;1641:68:60;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;1641:68:60;;;;;;;;;;;;;;12940:623:4;13373:26;575:12:66;:10;:12::i;:::-;5818:11:4;:9;:11::i;:::-;13043:6;475:23:72;489:8;475:13;:23::i;:::-;13061:6:4;782:18:72;791:8;782;:18::i;:::-;13090:7:4;6729:28;6749:7;6729:19;:28::i;:::-;13150:6;;-1:-1:-1;;;;;13132:25:4;;;13150:6;;13132:25;;;;:52;;-1:-1:-1;;;;;;13162:16:4;;;;;;:8;:16;;;;;-1:-1:-1;13162:22:4;;;;;;;13161:23;13132:52;13124:84;;;;;;;-1:-1:-1;;;;;13124:84:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;13251:12;;;;;;1763:7;13231:32;13220:43;;;;;;;13212:82;;;;;-1:-1:-1;;;;;13212:82:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;13306:32;:19;:17;:19::i;:::-;:32;;;13298:70;;;;;-1:-1:-1;;;;;13298:70:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;13402:16:4;;;;;;;;:8;:16;;;;;13422:22;;;-1:-1:-1;13448:17:4;;;:27;;-1:-1:-1;;13448:27:4;;;;-1:-1:-1;;13448:27:4;;;;13479:23;;;;;;;;;13506:13;27:10:-1;;23:18;;;45:23;;13506:26:4;;;;;;;;;-1:-1:-1;;13506:26:4;;;;;;;13536:12;:23;;;;;;;;;;;;;;;;;;;12940:623::o;5235:910:21:-;5348:7;5357;5382:19;5688:24;5742:14;6066:11;5606:9:4;:7;:9::i;:::-;5416:6:21;;5404:33;;;-1:-1:-1;;;;;5404:33:21;;;;-1:-1:-1;;;;;5416:6:21;;;;5404:31;;:33;;;;;;;;;;;;;;;5416:6;;5404:33;;;5:2:-1;;;;30:1;27;20:12;5:2;5404:33:21;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5404:33:21;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5404:33:21;;-1:-1:-1;5567:16:21;;5563:112;;;-1:-1:-1;;;;;5641:22:21;;;;;;:8;:22;;;;;-1:-1:-1;5641:29:21;;5606:65;;5641:29;;;;;5606:30;;:7;;1763::4;;5606:11:21;:30;:::i;:::-;:34;:65;:34;:65;:::i;:::-;5598:77;-1:-1:-1;5673:1:21;;-1:-1:-1;5598:77:21;;5563:112;5715:13;:16;;5729:1;;5715:16;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5715:16:21;;-1:-1:-1;5778:29:21;5788:18;5778:9;:29::i;:::-;-1:-1:-1;;;;;5759:70:21;;5844:11;5870:28;5885:12;5870:14;:28::i;:::-;-1:-1:-1;;;;;5913:22:21;;;;;;:8;:22;;;;;;;;-1:-1:-1;5913:29:21;;5759:216;;5913:29;5759:216;;;-1:-1:-1;5759:216:21;;;;;;;;;;;;;;;;;5913:29;;;;5759:216;;;;;;;;;;;;;;;;;5913:22;5759:216;;;;;;;;;;;;;;5:2:-1;;;;30:1;27;20:12;5:2;5759:216:21;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5759:216:21;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5759:216:21;;-1:-1:-1;6080:20:21;5759:216;6080:12;:20::i;:::-;6066:34;;6128:3;6119:6;:12;6133:3;6111:26;;;;5619:1:4;5235:910:21;;;;;;;:::o;6422:843::-;6531:7;6540;6565:19;6633:24;6866:14;7186:11;5606:9:4;:7;:9::i;:::-;6599:6:21;;6587:33;;;-1:-1:-1;;;;;6587:33:21;;;;-1:-1:-1;;;;;6599:6:21;;;;6587:31;;:33;;;;;;;;;;;;;;;6599:6;;6587:33;;;5:2:-1;;;;30:1;27;20:12;5:2;6587:33:21;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6587:33:21;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6587:33:21;6660:13;:16;;6587:33;;-1:-1:-1;6660:13:21;6674:1;;6660:16;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6660:16:21;;-1:-1:-1;6776:22:21;;;6772:81;;;6821:28;6836:12;6821:14;:28::i;6772:81::-;6902:29;6912:18;6902:9;:29::i;:::-;-1:-1:-1;;;;;6883:66:21;;6964:11;6990:28;7005:12;6990:14;:28::i;9796:227:4:-;575:12:66;:10;:12::i;:::-;9935:1:4;9913:19;:17;:19::i;:::-;:23;;;9905:61;;;;;-1:-1:-1;;;;;9905:61:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;9970:6;;:24;;;;;;;;-1:-1:-1;;;;;9970:6:4;;;;:22;;:24;;;;;:6;;:24;;;;;;;;:6;;:24;;;5:2:-1;;;;30:1;27;20:12;5:2;9970:24:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9970:24:4;;;;9998:21;:19;:21::i;3768:1117:21:-;4056:6;;3931:7;;;;;;;;;;-1:-1:-1;;;;;4028:35:21;;;4056:6;;4028:35;:67;;;;-1:-1:-1;;;;;;4067:22:21;;;;;;:8;:22;;;;;-1:-1:-1;4067:28:21;;;;;;;4028:67;4024:499;;;4127:12;4112:27;;4169:35;4173:7;4182;4191:12;4169:3;:35::i;:::-;4154:50;;4024:499;;;4263:6;;-1:-1:-1;;;;;4235:35:21;;;4263:6;;4235:35;:67;;;;-1:-1:-1;;;;;;4274:22:21;;;;;;:8;:22;;;;;-1:-1:-1;4274:28:21;;;;;;;4235:67;4231:292;;;4334:12;4319:27;;4376:36;4381:7;4390;4399:12;4376:4;:36::i;4231:292::-;4623:6;;4611:33;;;-1:-1:-1;;;;;4611:33:21;;;;-1:-1:-1;;;;;4623:6:21;;;;4611:31;;:33;;;;;;;;;;;;;;;4623:6;;4611:33;;;5:2:-1;;;;30:1;27;20:12;5:2;4611:33:21;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4611:33:21;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4611:33:21;-1:-1:-1;;;;;4678:22:21;;;;;;;:8;4611:33;4678:22;;;;-1:-1:-1;4678:29:21;;4739:6;;4611:33;;-1:-1:-1;4678:29:21;;;-1:-1:-1;4678:22:21;4739:6;4723:122;4761:51;1763:7:4;4761:28:21;4678:22;4761:14;:28::i;:::-;:32;:51;:32;:51;:::i;:::-;4814:30;:11;:30;;;;;:15;:30;:::i;:::-;4723:122;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4865:12:21;;3768:1117;-1:-1:-1;;;;;;;;3768:1117:21:o;553:117:72:-;-1:-1:-1;;;;;620:22:72;;;;612:54;;;;;-1:-1:-1;;;;;612:54:72;;;;;;;;;;;;;;;;;;;;;;;;;;;1214:173:70;248:38;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1323:59:70;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;1323:59:70;;;;;;;;25:18:-1;;61:17;;1323:59:70;182:15:-1;1323:59:70;;;;179:29:-1;;;;160:49;;;1307:76:70;;1315:6;;1307:7;:76::i;:::-;1214:173;;;:::o;5884:77:4:-;5932:10;:8;:10::i;:::-;5931:11;5923:34;;;;;-1:-1:-1;;;;;5923:34:4;;;;;;;;;;;;;;;;;;;;;;;;;;;6812:149;6893:1;6883:7;:11;;;:43;;;;-1:-1:-1;1763:7:4;6898:28;;;;;6883:43;6875:82;;;;;;;-1:-1:-1;;;;;6875:82:4;;;;;;;;;;;;;;;;;;;;;;;;;;;5670:76;5715:10;:8;:10::i;:::-;5707:35;;;;;;;-1:-1:-1;;;;;5707:35:4;;;;;;;;;;;;;;;;;;;;;;;;;;;924:197:69;984:7;;1023;;1019:21;;;1039:1;1032:8;;;;1019:21;-1:-1:-1;1057:7:69;;;1062:2;1057;:7;1076:6;;;;;;;;:12;1068:37;;;;;-1:-1:-1;;;;;1068:37:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;1116:1;1109:8;;924:197;;;;;;:::o;1307:149::-;1367:7;;1388:6;;;1380:37;;;;;-1:-1:-1;;;;;1380:37:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;1438:2;1433;:7;;;;;;;;;1307:149;-1:-1:-1;;;;1307:149:69:o;16577:155:4:-;16683:13;;16645:7;;16665:63;;1826:7;;16665:32;;:13;;16683;;;16665:63;16683:13;;;;16665:17;:32;:::i;17223:174::-;17290:13;:20;17267;17314:79;17338:12;17334:1;:16;17314:79;;;17357:36;17376:13;17390:1;17376:16;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;17376:16:4;17357:18;:36::i;:::-;17352:3;;17314:79;;7645:1109:21;7732:7;7800:14;7816:11;7987:24;7831:29;7852:7;7831:20;:29::i;:::-;7799:61;;-1:-1:-1;7799:61:21;-1:-1:-1;7936:11:21;;;7928:46;;;;;-1:-1:-1;;;;;7928:46:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;8014:13;:16;;8028:1;;8014:16;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8014:16:21;;-1:-1:-1;1884:42:4;8110:35:21;;8106:261;;;8168:9;:20;;8160:56;;;;;-1:-1:-1;;;;;8160:56:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;8106:261;;;8253:9;:14;:91;;;;;8337:7;8271:62;8304:28;8319:12;8304:14;:28::i;:::-;8271;;;;;;8294:4;8271:28;;;;;;-1:-1:-1;;;;;8271:22:21;;;;;:28;;;;;;;;;;;;;;-1:-1:-1;8271:22:21;:28;;;5:2:-1;;;;30:1;27;20:12;5:2;8271:28:21;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8271:28:21;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8271:28:21;;:62;:32;:62;:::i;:::-;:73;;8253:91;8245:122;;;;;;;-1:-1:-1;;;;;8245:122:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;8417:32;8436:12;8417:18;:32::i;:::-;8541:6;;8529:47;;;;;;-1:-1:-1;;;;;8529:47:21;;;;;;;;;;;;;;;8541:6;;;;;8529:25;;:47;;;;;-1:-1:-1;;8529:47:21;;;;;;;-1:-1:-1;8541:6:21;8529:47;;;5:2:-1;;;;30:1;27;20:12;5:2;8529:47:21;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;8681:6:21;;8631:89;;-1:-1:-1;8655:12:21;;-1:-1:-1;;;;;;8681:6:21;8690:7;8699;8708:6;8716:3;8631:23;:89::i;:::-;-1:-1:-1;8740:6:21;;7645:1109;-1:-1:-1;;;;;7645:1109:21:o;9126:1543::-;9328:6;;9316:35;;;;;;9346:4;9316:35;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;9328:6:21;;;;9316:29;;:35;;;;;;;;;;;;;;;-1:-1:-1;9328:6:21;9316:35;;;5:2:-1;;;;30:1;27;20:12;5:2;9316:35:21;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9316:35:21;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9316:35:21;9305:46;;;9297:77;;;;;-1:-1:-1;;;;;9297:77:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;9466:25;9483:7;9466:16;:25::i;:::-;9434:57;;-1:-1:-1;9434:57:21;-1:-1:-1;9567:11:21;;;9559:46;;;;;-1:-1:-1;;;;;9559:46:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;9645:13;:16;;9659:1;;9645:16;;;;;;;;;;;;;;;;;;;9820:6;;9808:33;;;-1:-1:-1;;;;;9808:33:21;;;;-1:-1:-1;;;;;9645:16:21;;;;-1:-1:-1;9820:6:21;;;;;9808:31;;:33;;;;;9645:16;;9808:33;;;;;;;;;;9820:6;9808:33;;;5:2:-1;;;;30:1;27;20:12;5:2;9808:33:21;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9808:33:21;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9808:33:21;;-1:-1:-1;9873:28:21;9888:12;9873:14;:28::i;:::-;9852:49;;9928:10;9919:6;:19;:71;;;;9953:10;9943:6;:20;:46;;;;;9978:11;9967:7;:22;9943:46;9912:79;;;;;;10094:6;;10082:42;;;;;;10110:4;10082:42;;;;;;;;;;;;-1:-1:-1;;;;;10094:6:21;;;;10082:27;;:42;;;;;-1:-1:-1;;10082:42:21;;;;;;;;-1:-1:-1;10094:6:21;10082:42;;;5:2:-1;;;;30:1;27;20:12;5:2;10082:42:21;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;;;;;;;;10209:22:21;;;;;;:8;:22;;;;;:30;:42;;10244:6;10209:34;:42::i;:::-;-1:-1:-1;;;;;10176:22:21;;;;;;:8;:22;;;;;:75;;;;1884:42:4;10335:35:21;10331:160;;;10385:29;;-1:-1:-1;;;;;10385:21:21;;;:29;;;;;;;;;;;;:21;:29;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10385:29:21;10331:160;;;10443:48;10456:12;10470;10484:6;10443:12;:48::i;:::-;10582:6;;10546:89;;-1:-1:-1;;;;;10582:6:21;10591:12;10605:7;10614;10623:6;10631:3;10546:23;:89::i;:::-;-1:-1:-1;10655:6:21;;9126:1543;-1:-1:-1;;;;;;;9126:1543:21:o;2255:557:70:-;2324:21;;:::i;:::-;:36;;;;;;;;;2357:1;2324:36;;;;;2687:2;2661:3;2580:5;2574:12;2495:2;2488:5;2484:14;2465:1;2430:6;2404:3;2394:317;2725:7;2718:15;2715:2;;;2750:1;2747;2740:12;2715:2;-1:-1:-1;2773:6:70;;:11;;2765:43;;;;;-1:-1:-1;;;;;2765:43:70;;;;;;;;;;;;;;;;;;;;;;;;;;;613:129:69;673:7;694:8;;;;686:34;;;;;-1:-1:-1;;;;;686:34:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;731:7:69;;;613:129::o;17773:656:4:-;18318:6;18305:19;;18298:27;;;;18334:91;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;18334:91:4;;;;;;;;;;;;;;;;;;;;;17773:656;;;;;;:::o;449:10223:21:-;;;;;;;;;-1:-1:-1;449:10223:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;-1:-1;449:10223:21;;;-1:-1:-1;;449:10223:21:o" - }, - "methodIdentifiers": { - "acceptAnchorOwnership()": "cdc91c69", - "acceptOwnership()": "79ba5097", - "acceptTokenOwnership()": "38a5e016", - "addReserve(address,uint32)": "6a49d2c4", - "anchor()": "d3fb73b4", - "connectorTokenCount()": "71f52bf3", - "connectorTokens(uint256)": "19b64015", - "connectors(address)": "0e53aae9", - "conversionFee()": "579cd3ca", - "conversionWhitelist()": "c45d3d92", - "conversionsEnabled()": "bf754558", - "convert(address,address,uint256,address,address)": "e8dc12ff", - "converterType()": "3e8ff43f", - "getConnectorBalance(address)": "d8959512", - "getReturn(address,address,uint256)": "1e1401f8", - "hasETHReserve()": "12c2aca4", - "isActive()": "22f3e2d4", - "isV28OrHigher()": "d260529c", - "maxConversionFee()": "94c275ad", - "newOwner()": "d4ee1d90", - "onlyOwnerCanUpdateRegistry()": "2fe8a6ad", - "owner()": "8da5cb5b", - "prevRegistry()": "61cd756e", - "registry()": "7b103999", - "reserveBalance(address)": "dc8de379", - "reserveRatio()": "0c7d5cd8", - "reserveTokenCount()": "9b99a8e2", - "reserveTokens(uint256)": "d031370b", - "reserveWeight(address)": "1cfab290", - "reserves(address)": "d66bd524", - "restoreRegistry()": "b4a176d3", - "restrictRegistryUpdate(bool)": "024c7ec7", - "setConversionFee(uint32)": "ecbca55d", - "setConversionWhitelist(address)": "4af80f0e", - "targetAmountAndFee(address,address,uint256)": "af94b8d8", - "token()": "fc0c546a", - "transferAnchorOwnership(address)": "67b6d57c", - "transferOwnership(address)": "f2fde38b", - "transferTokenOwnership(address)": "21e6b53d", - "updateRegistry()": "49d10b64", - "upgrade()": "d55ec697", - "version()": "54fd4d50", - "withdrawETH(address)": "690d8320", - "withdrawFromAnchor(address,address,uint256)": "395900d4", - "withdrawTokens(address,address,uint256)": "5e35359e" - } - }, - "userdoc": { - "methods": {} - } - } - }, - "solidity/contracts/converter/types/liquid-token/LiquidTokenConverterFactory.sol": { - "LiquidTokenConverterFactory": { - "abi": [ - { - "constant": false, - "inputs": [ - { - "name": "_anchor", - "type": "address" - }, - { - "name": "_registry", - "type": "address" - }, - { - "name": "_maxConversionFee", - "type": "uint32" - } - ], - "name": "createConverter", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "converterType", - "outputs": [ - { - "name": "", - "type": "uint16" - } - ], - "payable": false, - "stateMutability": "pure", - "type": "function" - } - ], - "devdoc": { - "methods": { - "converterType()": { - "details": "returns the converter type the factory is associated with\r ", - "return": "converter type\r" - }, - "createConverter(address,address,uint32)": { - "details": "creates a new converter with the given arguments and transfers\r the ownership to the caller\r ", - "params": { - "_anchor": "anchor governed by the converter\r", - "_maxConversionFee": "maximum conversion fee, represented in ppm\r ", - "_registry": "address of a contract registry contract\r" - }, - "return": "a new converter\r" - } - } - }, - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "608060405234801561001057600080fd5b506135f8806100206000396000f30060806040526004361061004b5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631141395881146100505780633e8ff43f146100b6575b600080fd5b34801561005c57600080fd5b5061008d73ffffffffffffffffffffffffffffffffffffffff6004358116906024351663ffffffff604435166100e2565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b3480156100c257600080fd5b506100cb6101d5565b6040805161ffff9092168252519081900360200190f35b6000808484846100f06101da565b73ffffffffffffffffffffffffffffffffffffffff938416815291909216602082015263ffffffff9091166040808301919091525190819003606001906000f080158015610142573d6000803e3d6000fd5b50604080517ff2fde38b000000000000000000000000000000000000000000000000000000008152336004820152905191925073ffffffffffffffffffffffffffffffffffffffff83169163f2fde38b9160248082019260009290919082900301818387803b1580156101b457600080fd5b505af11580156101c8573d6000803e3d6000fd5b5092979650505050505050565b600090565b6040516133e2806101eb83390190560060806040526001600455600980546001606060020a03191690553480156200002657600080fd5b50604051606080620033e283398101604090815281516020830151919092015160008054600160a060020a03191633179055828282818062000071816401000000006200011b810204565b5060028054600160a060020a03909216600160a060020a031992831681179091556003805490921617905582620000b1816401000000006200011b810204565b81620000c68164010000000062000196810204565b505060058054600160a060020a03909416600160a060020a031990941693909317909255506009805463ffffffff9092166401000000000267ffffffff0000000019909216919091179055506200020f915050565b600160a060020a03811615156200019357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b50565b620f424063ffffffff821611156200019357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f4552525f494e56414c49445f434f4e56455253494f4e5f464545000000000000604482015290519081900360640190fd5b6131c3806200021f6000396000f30060806040526004361061020b5763ffffffff60e060020a600035041663024c7ec781146102af5780630c7d5cd8146102c95780630e53aae9146102f757806312c2aca41461034c57806319b64015146103755780631cfab290146103a95780631e1401f8146103ca57806321e6b53d1461040d57806322f3e2d41461042e5780632fe8a6ad1461044357806338a5e01614610458578063395900d41461046d5780633e8ff43f1461049757806349d10b64146104c35780634af80f0e146104d857806354fd4d50146104f9578063579cd3ca1461050e5780635e35359e1461052357806361cd756e1461054d57806367b6d57c14610562578063690d8320146105835780636a49d2c4146105a457806371f52bf3146105ce57806379ba5097146105e35780637b103999146105f85780638da5cb5b1461060d57806394c275ad146106225780639b99a8e214610637578063af94b8d81461064c578063b4a176d314610676578063bf7545581461068b578063c45d3d92146106a0578063cdc91c69146106b5578063d031370b146106ca578063d260529c146106e2578063d3fb73b4146106f7578063d4ee1d901461070c578063d55ec69714610721578063d66bd52414610736578063d895951214610757578063dc8de3791461078a578063e8dc12ff146107ab578063ecbca55d146107d5578063f2fde38b146107f3578063fc0c546a14610814575b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee60005260086020527f353c2eb9e53a4a4a6d45d72082ff2e9dc829d1125618772a83eb0e7f86632c43546601000000000000900460ff1615156102ad576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f5245534552564500000000000000000000000000604482015290519081900360640190fd5b005b3480156102bb57600080fd5b506102ad6004351515610829565b3480156102d557600080fd5b506102de610871565b6040805163ffffffff9092168252519081900360200190f35b34801561030357600080fd5b50610318600160a060020a036004351661087d565b6040805195865263ffffffff9094166020860152911515848401521515606084015215156080830152519081900360a00190f35b34801561035857600080fd5b50610361610918565b604080519115158252519081900360200190f35b34801561038157600080fd5b5061038d600435610967565b60408051600160a060020a039092168252519081900360200190f35b3480156103b557600080fd5b506102de600160a060020a0360043516610993565b3480156103d657600080fd5b506103f4600160a060020a03600435811690602435166044356109c5565b6040805192835260208301919091528051918290030190f35b34801561041957600080fd5b506102ad600160a060020a03600435166109e0565b34801561043a57600080fd5b506103616109f4565b34801561044f57600080fd5b50610361610a8e565b34801561046457600080fd5b506102ad610aaf565b34801561047957600080fd5b506102ad600160a060020a0360043581169060243516604435610ac1565b3480156104a357600080fd5b506104ac610b5c565b6040805161ffff9092168252519081900360200190f35b3480156104cf57600080fd5b506102ad610b61565b3480156104e457600080fd5b506102ad600160a060020a0360043516610dce565b34801561050557600080fd5b506104ac610e10565b34801561051a57600080fd5b506102de610e15565b34801561052f57600080fd5b506102ad600160a060020a0360043581169060243516604435610e2d565b34801561055957600080fd5b5061038d610f41565b34801561056e57600080fd5b506102ad600160a060020a0360043516610f50565b34801561058f57600080fd5b506102ad600160a060020a0360043516610ff3565b3480156105b057600080fd5b506102ad600160a060020a036004351663ffffffff60243516611104565b3480156105da57600080fd5b506104ac611173565b3480156105ef57600080fd5b506102ad611182565b34801561060457600080fd5b5061038d611243565b34801561061957600080fd5b5061038d611252565b34801561062e57600080fd5b506102de611261565b34801561064357600080fd5b506104ac611275565b34801561065857600080fd5b506103f4600160a060020a036004358116906024351660443561127b565b34801561068257600080fd5b506102ad611379565b34801561069757600080fd5b506103616113b2565b3480156106ac57600080fd5b5061038d6113b7565b3480156106c157600080fd5b506102ad6113c6565b3480156106d657600080fd5b5061038d60043561141f565b3480156106ee57600080fd5b50610361611447565b34801561070357600080fd5b5061038d61144c565b34801561071857600080fd5b5061038d61145b565b34801561072d57600080fd5b506102ad61146a565b34801561074257600080fd5b50610318600160a060020a036004351661155f565b34801561076357600080fd5b50610778600160a060020a03600435166115a5565b60408051918252519081900360200190f35b34801561079657600080fd5b50610778600160a060020a03600435166115b6565b610778600160a060020a0360043581169060243581169060443590606435811690608435166115df565b3480156107e157600080fd5b506102ad63ffffffff60043516611832565b3480156107ff57600080fd5b506102ad600160a060020a0360043516611927565b34801561082057600080fd5b5061038d6119c4565b6108316119d3565b60038054911515740100000000000000000000000000000000000000000274ff000000000000000000000000000000000000000019909216919091179055565b60095463ffffffff1681565b600080600080600061088d61310a565b50505050600160a060020a03929092166000908152600860209081526040808320815160a081018352815480825260019092015463ffffffff811694820185905260ff64010000000082048116151594830194909452650100000000008104841615156060830152660100000000000090049092161515608090920182905295919450919250829190565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee60005260086020527f353c2eb9e53a4a4a6d45d72082ff2e9dc829d1125618772a83eb0e7f86632c43546601000000000000900460ff1690565b600060078281548110151561097857fe5b600091825260209091200154600160a060020a031692915050565b60008161099f81611a23565b5050600160a060020a031660009081526008602052604090206001015463ffffffff1690565b6000806109d385858561127b565b915091505b935093915050565b6109e86119d3565b6109f181610f50565b50565b600030600160a060020a0316600560009054906101000a9004600160a060020a0316600160a060020a0316638da5cb5b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610a5357600080fd5b505af1158015610a67573d6000803e3d6000fd5b505050506040513d6020811015610a7d57600080fd5b5051600160a060020a031614905090565b60035474010000000000000000000000000000000000000000900460ff1681565b610ab76119d3565b610abf6113c6565b565b610ac96119d3565b600554604080517f5e35359e000000000000000000000000000000000000000000000000000000008152600160a060020a03868116600483015285811660248301526044820185905291519190921691635e35359e91606480830192600092919082900301818387803b158015610b3f57600080fd5b505af1158015610b53573d6000803e3d6000fd5b50505050505050565b600090565b60008054600160a060020a0316331480610b96575060035474010000000000000000000000000000000000000000900460ff16155b1515610bda576040805160e560020a62461bcd0281526020600482015260116024820152600080516020613178833981519152604482015290519081900360640190fd5b610c037f436f6e7472616374526567697374727900000000000000000000000000000000611aa2565b600254909150600160a060020a03808316911614801590610c2c5750600160a060020a03811615155b1515610c82576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e56414c49445f5245474953545259000000000000000000000000604482015290519081900360640190fd5b604080517fbb34534c0000000000000000000000000000000000000000000000000000000081527f436f6e747261637452656769737472790000000000000000000000000000000060048201529051600091600160a060020a0384169163bb34534c9160248082019260209290919082900301818787803b158015610d0657600080fd5b505af1158015610d1a573d6000803e3d6000fd5b505050506040513d6020811015610d3057600080fd5b5051600160a060020a03161415610d91576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e56414c49445f5245474953545259000000000000000000000000604482015290519081900360640190fd5b6002805460038054600160a060020a0380841673ffffffffffffffffffffffffffffffffffffffff19928316179092559091169216919091179055565b610dd66119d3565b80610de081611b3a565b506006805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b602081565b60095468010000000000000000900463ffffffff1681565b6000610e37611b9b565b6002600455610e446119d3565b610e5b600080516020613158833981519152611aa2565b600160a060020a0385166000908152600860205260409020600101549091506601000000000000900460ff161580610e985750610e966109f4565b155b80610eb05750600054600160a060020a038281169116145b1515610ef4576040805160e560020a62461bcd0281526020600482015260116024820152600080516020613178833981519152604482015290519081900360640190fd5b610eff848484611bf5565b600160a060020a0384166000908152600860205260409020600101546601000000000000900460ff1615610f3657610f3684611c26565b505060016004555050565b600354600160a060020a031681565b610f586119d3565b600080516020613158833981519152610f7081611d20565b600554604080517ff2fde38b000000000000000000000000000000000000000000000000000000008152600160a060020a0385811660048301529151919092169163f2fde38b91602480830192600092919082900301818387803b158015610fd757600080fd5b505af1158015610feb573d6000803e3d6000fd5b505050505050565b6000610ffd611b9b565b600260045561100a6119d3565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee61102881611a23565b61103f600080516020613158833981519152611aa2565b91506110496109f4565b15806110625750600054600160a060020a038381169116145b15156110a6576040805160e560020a62461bcd0281526020600482015260116024820152600080516020613178833981519152604482015290519081900360640190fd5b604051600160a060020a03841690303180156108fc02916000818181858888f193505050501580156110dc573d6000803e3d6000fd5b506110fa73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee611c26565b5050600160045550565b61110c611275565b61ffff1615611165576040805160e560020a62461bcd02815260206004820152601960248201527f4552525f494e56414c49445f524553455256455f434f554e5400000000000000604482015290519081900360640190fd5b61116f8282611d76565b5050565b600061117d611275565b905090565b600154600160a060020a031633146111d2576040805160e560020a62461bcd0281526020600482015260116024820152600080516020613178833981519152604482015290519081900360640190fd5b60015460008054604051600160a060020a0393841693909116917f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91a3600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b600254600160a060020a031681565b600054600160a060020a031681565b600954640100000000900463ffffffff1681565b60075490565b6005546000908190600160a060020a0385811691161480156112c25750600160a060020a0385166000908152600860205260409020600101546601000000000000900460ff165b156112d9576112d083611fc7565b915091506109d8565b600554600160a060020a03868116911614801561131b5750600160a060020a0384166000908152600860205260409020600101546601000000000000900460ff165b15611329576112d0836121d6565b6040805160e560020a62461bcd02815260206004820152601160248201527f4552525f494e56414c49445f544f4b454e000000000000000000000000000000604482015290519081900360640190fd5b6113816119d3565b6003546002805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055565b600181565b600654600160a060020a031681565b6113ce6119d3565b6113d66122e2565b600554600190600160a060020a03166113ed610b5c565b61ffff167f6b08c2e2c9969e55a647a764db9b554d64dc42f1a704da11a6d5b129ad163f2c60405160405180910390a4565b600780548290811061142d57fe5b600091825260209091200154600160a060020a0316905081565b600190565b600554600160a060020a031681565b600154600160a060020a031681565b60006114746119d3565b61148b600080516020613158833981519152611aa2565b600554909150600090600160a060020a03166114a5610b5c565b61ffff167f6b08c2e2c9969e55a647a764db9b554d64dc42f1a704da11a6d5b129ad163f2c60405160405180910390a46114de81611927565b604080517f90f58c96000000000000000000000000000000000000000000000000000000008152602060048201529051600160a060020a038316916390f58c9691602480830192600092919082900301818387803b15801561153f57600080fd5b505af1158015611553573d6000803e3d6000fd5b505050506109f1611182565b6008602052600090815260409020805460019091015463ffffffff81169060ff640100000000820481169165010000000000810482169166010000000000009091041685565b60006115b0826115b6565b92915050565b6000816115c281611a23565b5050600160a060020a031660009081526008602052604090205490565b60006115e9611b9b565b60026004557f536f7672796e537761704e6574776f726b00000000000000000000000000000061161881611d20565b600160a060020a03878116908716141561167c576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f53414d455f534f555243455f54415247455400000000000000000000604482015290519081900360640190fd5b600654600160a060020a031615806117bf5750600654604080517f3af32abf000000000000000000000000000000000000000000000000000000008152600160a060020a03878116600483015291519190921691633af32abf9160248083019260209291908290030181600087803b1580156116f757600080fd5b505af115801561170b573d6000803e3d6000fd5b505050506040513d602081101561172157600080fd5b505180156117bf5750600654604080517f3af32abf000000000000000000000000000000000000000000000000000000008152600160a060020a03868116600483015291519190921691633af32abf9160248083019260209291908290030181600087803b15801561179257600080fd5b505af11580156117a6573d6000803e3d6000fd5b505050506040513d60208110156117bc57600080fd5b50515b1515611815576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f4e4f545f57484954454c495354454400000000000000000000000000604482015290519081900360640190fd5b61182287878787876123c0565b6001600455979650505050505050565b61183a6119d3565b60095463ffffffff640100000000909104811690821611156118a6576040805160e560020a62461bcd02815260206004820152601a60248201527f4552525f494e56414c49445f434f4e56455253494f4e5f464545000000000000604482015290519081900360640190fd5b6009546040805163ffffffff6801000000000000000090930483168152918316602083015280517f81cd2ffb37dd237c0e4e2a3de5265fcf9deb43d3e7801e80db9f1ccfba7ee6009281900390910190a16009805463ffffffff90921668010000000000000000026bffffffff000000000000000019909216919091179055565b61192f6119d3565b600054600160a060020a0382811691161415611995576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f53414d455f4f574e4552000000000000000000000000000000000000604482015290519081900360640190fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600554600160a060020a031690565b600054600160a060020a03163314610abf576040805160e560020a62461bcd0281526020600482015260116024820152600080516020613178833981519152604482015290519081900360640190fd5b600160a060020a0381166000908152600860205260409020600101546601000000000000900460ff1615156109f1576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f5245534552564500000000000000000000000000604482015290519081900360640190fd5b600254604080517fbb34534c000000000000000000000000000000000000000000000000000000008152600481018490529051600092600160a060020a03169163bb34534c91602480830192602092919082900301818787803b158015611b0857600080fd5b505af1158015611b1c573d6000803e3d6000fd5b505050506040513d6020811015611b3257600080fd5b505192915050565b600160a060020a0381163014156109f1576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f414444524553535f49535f53454c4600000000000000000000000000604482015290519081900360640190fd5b600454600114610abf576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f5245454e5452414e4359000000000000000000000000000000000000604482015290519081900360640190fd5b611bfd6119d3565b82611c078161259e565b82611c118161259e565b83611c1b81611b3a565b610feb8686866125fe565b80611c3081611a23565b600160a060020a03821673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee1415611c7657600160a060020a03821660009081526008602052604090203031905561116f565b604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a038416916370a082319160248083019260209291908290030181600087803b158015611cd757600080fd5b505af1158015611ceb573d6000803e3d6000fd5b505050506040513d6020811015611d0157600080fd5b5051600160a060020a0383166000908152600860205260409020555050565b611d2981611aa2565b600160a060020a031633146109f1576040805160e560020a62461bcd0281526020600482015260116024820152600080516020613178833981519152604482015290519081900360640190fd5b6000611d806119d3565b611d886126b8565b82611d928161259e565b83611d9c81611b3a565b83611da681612715565b600554600160a060020a03878116911614801590611dea5750600160a060020a0386166000908152600860205260409020600101546601000000000000900460ff16155b1515611e40576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f5245534552564500000000000000000000000000604482015290519081900360640190fd5b60095463ffffffff908116620f42400381169086161115611eab576040805160e560020a62461bcd02815260206004820152601a60248201527f4552525f494e56414c49445f524553455256455f574549474854000000000000604482015290519081900360640190fd5b61ffff611eb6611275565b61ffff1610611f0f576040805160e560020a62461bcd02815260206004820152601960248201527f4552525f494e56414c49445f524553455256455f434f554e5400000000000000604482015290519081900360640190fd5b505050600160a060020a0390921660008181526008602052604081208181556001908101805466ff0000000000001963ffffffff80881663ffffffff1993841617919091166601000000000000179092556007805493840181559093527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688909101805473ffffffffffffffffffffffffffffffffffffffff191690931790925560098054808416909401909216921691909117905550565b600080600080600080611fd861278a565b600560009054906101000a9004600160a060020a0316600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561202b57600080fd5b505af115801561203f573d6000803e3d6000fd5b505050506040513d602081101561205557600080fd5b505193508315156120b157600160a060020a0383166000908152600860205260409020600101546120a69063ffffffff9081169061209a908a90620f4240906127e816565b9063ffffffff61286c16565b9550600094506121cd565b6007805460009081106120c057fe5b600091825260209091200154600160a060020a031692506121007f536f7672796e53776170466f726d756c61000000000000000000000000000000611aa2565b600160a060020a031663f3250fe285612118866115b6565b600160a060020a038716600090815260086020908152604080832060010154815163ffffffff88811660e060020a02825260048201979097526024810195909552949094166044840152606483018d90529251608480840194939192918390030190829087803b15801561218b57600080fd5b505af115801561219f573d6000803e3d6000fd5b505050506040513d60208110156121b557600080fd5b505191506121c2826128da565b905080820381955095505b50505050915091565b6000806000806000806121e761278a565b600560009054906101000a9004600160a060020a0316600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561223a57600080fd5b505af115801561224e573d6000803e3d6000fd5b505050506040513d602081101561226457600080fd5b50516007805491955090600090811061227957fe5b600091825260209091200154600160a060020a03169250838714156122a1576120a6836115b6565b6122ca7f536f7672796e53776170466f726d756c61000000000000000000000000000000611aa2565b600160a060020a03166376cf0b5685612118866115b6565b6122ea6119d3565b60006122f4611275565b61ffff161161234d576040805160e560020a62461bcd02815260206004820152601960248201527f4552525f494e56414c49445f524553455256455f434f554e5400000000000000604482015290519081900360640190fd5b600560009054906101000a9004600160a060020a0316600160a060020a03166379ba50976040518163ffffffff1660e060020a028152600401600060405180830381600087803b1580156123a057600080fd5b505af11580156123b4573d6000803e3d6000fd5b50505050610abf61290a565b6005546000908190819081908190600160a060020a038a8116911614801561240d5750600160a060020a038a166000908152600860205260409020600101546601000000000000900460ff165b156124275789925061242088888861294c565b935061247c565b600554600160a060020a038b811691161480156124695750600160a060020a0389166000908152600860205260409020600101546601000000000000900460ff165b1561132957889250612420888888612c12565b600560009054906101000a9004600160a060020a0316600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156124cf57600080fd5b505af11580156124e3573d6000803e3d6000fd5b505050506040513d60208110156124f957600080fd5b5051600160a060020a0380851660008181526008602052604090206001015460055493955063ffffffff16935091167f77f29993cf2c084e726f7e802da0719d6a0ade3e204badc7a3ffd57ecb768c24612565620f4240612559886115b6565b9063ffffffff6127e816565b6125788663ffffffff808816906127e816565b6040805192835260208301919091528051918290030190a3509198975050505050505050565b600160a060020a03811615156109f1576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b604080517f7472616e7366657228616464726573732c75696e74323536290000000000000081528151908190036019018120600160a060020a038516602483015260448083018590528351808403909101815260649092019092526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909316929092179091526126b3908490612f97565b505050565b6126c06109f4565b15610abf576040805160e560020a62461bcd02815260206004820152600a60248201527f4552525f41435449564500000000000000000000000000000000000000000000604482015290519081900360640190fd5b60008163ffffffff161180156127345750620f424063ffffffff821611155b15156109f1576040805160e560020a62461bcd02815260206004820152601a60248201527f4552525f494e56414c49445f524553455256455f574549474854000000000000604482015290519081900360640190fd5b6127926109f4565b1515610abf576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f494e4143544956450000000000000000000000000000000000000000604482015290519081900360640190fd5b6000808315156127fb5760009150612865565b5082820282848281151561280b57fe5b0414612861576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b8091505b5092915050565b6000808083116128c6576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f4449564944455f42595f5a45524f0000000000000000000000000000604482015290519081900360640190fd5b82848115156128d157fe5b04949350505050565b6009546000906115b090620f42409061209a90859068010000000000000000900463ffffffff908116906127e816565b60075460005b8181101561116f5761294460078281548110151561292a57fe5b600091825260209091200154600160a060020a0316611c26565b600101612910565b60008060008061295b87611fc7565b90935091508215156129b7576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f5a45524f5f5441524745545f414d4f554e5400000000000000000000604482015290519081900360640190fd5b6007805460009081106129c657fe5b600091825260209091200154600160a060020a0316905073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee811415612a5557348714612a50576040805160e560020a62461bcd02815260206004820152601760248201527f4552525f4554485f414d4f554e545f4d49534d41544348000000000000000000604482015290519081900360640190fd5b612b5d565b34158015612b07575086612b04612a6b836115b6565b604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a038616916370a082319160248083019260209291908290030181600087803b158015612acc57600080fd5b505af1158015612ae0573d6000803e3d6000fd5b505050506040513d6020811015612af657600080fd5b50519063ffffffff61302516565b10155b1515612b5d576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f494e56414c49445f414d4f554e540000000000000000000000000000604482015290519081900360640190fd5b612b6681611c26565b600554604080517f867904b4000000000000000000000000000000000000000000000000000000008152600160a060020a038881166004830152602482018790529151919092169163867904b491604480830192600092919082900301818387803b158015612bd457600080fd5b505af1158015612be8573d6000803e3d6000fd5b5050600554612c079250839150600160a060020a0316888a8787613085565b509095945050505050565b600554604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905160009283928392839283928392600160a060020a03909216916370a082319160248082019260209290919082900301818787803b158015612c8457600080fd5b505af1158015612c98573d6000803e3d6000fd5b505050506040513d6020811015612cae57600080fd5b5051891115612d07576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f494e56414c49445f414d4f554e540000000000000000000000000000604482015290519081900360640190fd5b612d10896121d6565b9095509350841515612d6c576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f5a45524f5f5441524745545f414d4f554e5400000000000000000000604482015290519081900360640190fd5b600780546000908110612d7b57fe5b6000918252602080832090910154600554604080517f18160ddd0000000000000000000000000000000000000000000000000000000081529051600160a060020a03938416985091909216936318160ddd93600480850194919392918390030190829087803b158015612ded57600080fd5b505af1158015612e01573d6000803e3d6000fd5b505050506040513d6020811015612e1757600080fd5b50519150612e24836115b6565b905080851080612e3d57508085148015612e3d57508189145b1515612e4557fe5b600554604080517fa24835d1000000000000000000000000000000000000000000000000000000008152306004820152602481018c90529051600160a060020a039092169163a24835d19160448082019260009290919082900301818387803b158015612eb157600080fd5b505af1158015612ec5573d6000803e3d6000fd5b505050600160a060020a038416600090815260086020526040902054612ef291508663ffffffff61302516565b600160a060020a03841660008181526008602052604090209190915573eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee1415612f6557604051600160a060020a0388169086156108fc029087906000818181858888f19350505050158015612f5f573d6000803e3d6000fd5b50612f70565b612f708388876125fe565b600554612f8a90600160a060020a0316848a8c8989613085565b5092979650505050505050565b612f9f613138565b602060405190810160405280600181525090506020818351602085016000875af1801515612fcc57600080fd5b50805115156126b3576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f5452414e534645525f4641494c454400000000000000000000000000604482015290519081900360640190fd5b60008183101561307f576040805160e560020a62461bcd02815260206004820152600d60248201527f4552525f554e444552464c4f5700000000000000000000000000000000000000604482015290519081900360640190fd5b50900390565b7f800000000000000000000000000000000000000000000000000000000000000081106130ae57fe5b60408051848152602081018490528082018390529051600160a060020a038087169288821692918a16917f276856b36cbc45526a0ba64f44611557a2a8b68662c5388e9fe6d72e86e1c8cb9181900360600190a4505050505050565b6040805160a08101825260008082526020820181905291810182905260608101829052608081019190915290565b60206040519081016040528060019060208202803883395091929150505600536f7672796e53776170436f6e766572746572557067726164657200000000004552525f4143434553535f44454e494544000000000000000000000000000000a165627a7a72305820c39f973cbc1cf0758a64156854331e6829d0c51a16e297aae88602be0c95bc9b0029a165627a7a723058204fe6432407d23d24446887a09bf05471a3bcb6c0f82442aa76ddf3fb876c185e0029", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x35F8 DUP1 PUSH2 0x20 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x4B JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x11413958 DUP2 EQ PUSH2 0x50 JUMPI DUP1 PUSH4 0x3E8FF43F EQ PUSH2 0xB6 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x8D PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH4 0xFFFFFFFF PUSH1 0x44 CALLDATALOAD AND PUSH2 0xE2 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xC2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xCB PUSH2 0x1D5 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0xFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP1 DUP5 DUP5 DUP5 PUSH2 0xF0 PUSH2 0x1DA JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP4 DUP5 AND DUP2 MSTORE SWAP2 SWAP1 SWAP3 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH4 0xFFFFFFFF SWAP1 SWAP2 AND PUSH1 0x40 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 PUSH1 0x0 CREATE DUP1 ISZERO DUP1 ISZERO PUSH2 0x142 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH32 0xF2FDE38B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD SWAP2 SWAP3 POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND SWAP2 PUSH4 0xF2FDE38B SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1B4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1C8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP SWAP3 SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x33E2 DUP1 PUSH2 0x1EB DUP4 CODECOPY ADD SWAP1 JUMP STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x1 PUSH1 0x4 SSTORE PUSH1 0x9 DUP1 SLOAD PUSH1 0x1 PUSH1 0x60 PUSH1 0x2 EXP SUB NOT AND SWAP1 SSTORE CALLVALUE DUP1 ISZERO PUSH3 0x26 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH1 0x60 DUP1 PUSH3 0x33E2 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 SWAP1 DUP2 MSTORE DUP2 MLOAD PUSH1 0x20 DUP4 ADD MLOAD SWAP2 SWAP1 SWAP3 ADD MLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND CALLER OR SWAP1 SSTORE DUP3 DUP3 DUP3 DUP2 DUP1 PUSH3 0x71 DUP2 PUSH5 0x100000000 PUSH3 0x11B DUP2 MUL DIV JUMP JUMPDEST POP PUSH1 0x2 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT SWAP3 DUP4 AND DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x3 DUP1 SLOAD SWAP1 SWAP3 AND OR SWAP1 SSTORE DUP3 PUSH3 0xB1 DUP2 PUSH5 0x100000000 PUSH3 0x11B DUP2 MUL DIV JUMP JUMPDEST DUP2 PUSH3 0xC6 DUP2 PUSH5 0x100000000 PUSH3 0x196 DUP2 MUL DIV JUMP JUMPDEST POP POP PUSH1 0x5 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP5 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 OR SWAP1 SWAP3 SSTORE POP PUSH1 0x9 DUP1 SLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP3 AND PUSH5 0x100000000 MUL PUSH8 0xFFFFFFFF00000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE POP PUSH3 0x20F SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH3 0x193 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH3 0xF4240 PUSH4 0xFFFFFFFF DUP3 AND GT ISZERO PUSH3 0x193 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F434F4E56455253494F4E5F464545000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x31C3 DUP1 PUSH3 0x21F PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x20B JUMPI PUSH4 0xFFFFFFFF PUSH1 0xE0 PUSH1 0x2 EXP PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x24C7EC7 DUP2 EQ PUSH2 0x2AF JUMPI DUP1 PUSH4 0xC7D5CD8 EQ PUSH2 0x2C9 JUMPI DUP1 PUSH4 0xE53AAE9 EQ PUSH2 0x2F7 JUMPI DUP1 PUSH4 0x12C2ACA4 EQ PUSH2 0x34C JUMPI DUP1 PUSH4 0x19B64015 EQ PUSH2 0x375 JUMPI DUP1 PUSH4 0x1CFAB290 EQ PUSH2 0x3A9 JUMPI DUP1 PUSH4 0x1E1401F8 EQ PUSH2 0x3CA JUMPI DUP1 PUSH4 0x21E6B53D EQ PUSH2 0x40D JUMPI DUP1 PUSH4 0x22F3E2D4 EQ PUSH2 0x42E JUMPI DUP1 PUSH4 0x2FE8A6AD EQ PUSH2 0x443 JUMPI DUP1 PUSH4 0x38A5E016 EQ PUSH2 0x458 JUMPI DUP1 PUSH4 0x395900D4 EQ PUSH2 0x46D JUMPI DUP1 PUSH4 0x3E8FF43F EQ PUSH2 0x497 JUMPI DUP1 PUSH4 0x49D10B64 EQ PUSH2 0x4C3 JUMPI DUP1 PUSH4 0x4AF80F0E EQ PUSH2 0x4D8 JUMPI DUP1 PUSH4 0x54FD4D50 EQ PUSH2 0x4F9 JUMPI DUP1 PUSH4 0x579CD3CA EQ PUSH2 0x50E JUMPI DUP1 PUSH4 0x5E35359E EQ PUSH2 0x523 JUMPI DUP1 PUSH4 0x61CD756E EQ PUSH2 0x54D JUMPI DUP1 PUSH4 0x67B6D57C EQ PUSH2 0x562 JUMPI DUP1 PUSH4 0x690D8320 EQ PUSH2 0x583 JUMPI DUP1 PUSH4 0x6A49D2C4 EQ PUSH2 0x5A4 JUMPI DUP1 PUSH4 0x71F52BF3 EQ PUSH2 0x5CE JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x5E3 JUMPI DUP1 PUSH4 0x7B103999 EQ PUSH2 0x5F8 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x60D JUMPI DUP1 PUSH4 0x94C275AD EQ PUSH2 0x622 JUMPI DUP1 PUSH4 0x9B99A8E2 EQ PUSH2 0x637 JUMPI DUP1 PUSH4 0xAF94B8D8 EQ PUSH2 0x64C JUMPI DUP1 PUSH4 0xB4A176D3 EQ PUSH2 0x676 JUMPI DUP1 PUSH4 0xBF754558 EQ PUSH2 0x68B JUMPI DUP1 PUSH4 0xC45D3D92 EQ PUSH2 0x6A0 JUMPI DUP1 PUSH4 0xCDC91C69 EQ PUSH2 0x6B5 JUMPI DUP1 PUSH4 0xD031370B EQ PUSH2 0x6CA JUMPI DUP1 PUSH4 0xD260529C EQ PUSH2 0x6E2 JUMPI DUP1 PUSH4 0xD3FB73B4 EQ PUSH2 0x6F7 JUMPI DUP1 PUSH4 0xD4EE1D90 EQ PUSH2 0x70C JUMPI DUP1 PUSH4 0xD55EC697 EQ PUSH2 0x721 JUMPI DUP1 PUSH4 0xD66BD524 EQ PUSH2 0x736 JUMPI DUP1 PUSH4 0xD8959512 EQ PUSH2 0x757 JUMPI DUP1 PUSH4 0xDC8DE379 EQ PUSH2 0x78A JUMPI DUP1 PUSH4 0xE8DC12FF EQ PUSH2 0x7AB JUMPI DUP1 PUSH4 0xECBCA55D EQ PUSH2 0x7D5 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x7F3 JUMPI DUP1 PUSH4 0xFC0C546A EQ PUSH2 0x814 JUMPI JUMPDEST PUSH20 0xEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE PUSH1 0x0 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH32 0x353C2EB9E53A4A4A6D45D72082FF2E9DC829D1125618772A83EB0E7F86632C43 SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO PUSH2 0x2AD JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245534552564500000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2BB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2AD PUSH1 0x4 CALLDATALOAD ISZERO ISZERO PUSH2 0x829 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2D5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2DE PUSH2 0x871 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x303 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x318 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x87D JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP6 DUP7 MSTORE PUSH4 0xFFFFFFFF SWAP1 SWAP5 AND PUSH1 0x20 DUP7 ADD MSTORE SWAP2 ISZERO ISZERO DUP5 DUP5 ADD MSTORE ISZERO ISZERO PUSH1 0x60 DUP5 ADD MSTORE ISZERO ISZERO PUSH1 0x80 DUP4 ADD MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0xA0 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x358 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x361 PUSH2 0x918 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x381 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x38D PUSH1 0x4 CALLDATALOAD PUSH2 0x967 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3B5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2DE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x993 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3D6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3F4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x9C5 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x419 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2AD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x9E0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x43A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x361 PUSH2 0x9F4 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x44F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x361 PUSH2 0xA8E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x464 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2AD PUSH2 0xAAF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x479 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2AD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0xAC1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4A3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4AC PUSH2 0xB5C JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0xFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4CF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2AD PUSH2 0xB61 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4E4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2AD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0xDCE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x505 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4AC PUSH2 0xE10 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x51A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2DE PUSH2 0xE15 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x52F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2AD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0xE2D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x559 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x38D PUSH2 0xF41 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x56E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2AD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0xF50 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x58F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2AD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0xFF3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5B0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2AD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH4 0xFFFFFFFF PUSH1 0x24 CALLDATALOAD AND PUSH2 0x1104 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5DA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4AC PUSH2 0x1173 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5EF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2AD PUSH2 0x1182 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x604 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x38D PUSH2 0x1243 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x619 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x38D PUSH2 0x1252 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x62E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2DE PUSH2 0x1261 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x643 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4AC PUSH2 0x1275 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x658 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3F4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x127B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x682 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2AD PUSH2 0x1379 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x697 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x361 PUSH2 0x13B2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6AC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x38D PUSH2 0x13B7 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6C1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2AD PUSH2 0x13C6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6D6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x38D PUSH1 0x4 CALLDATALOAD PUSH2 0x141F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6EE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x361 PUSH2 0x1447 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x703 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x38D PUSH2 0x144C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x718 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x38D PUSH2 0x145B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x72D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2AD PUSH2 0x146A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x742 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x318 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x155F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x763 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x778 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x15A5 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x796 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x778 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x15B6 JUMP JUMPDEST PUSH2 0x778 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x44 CALLDATALOAD SWAP1 PUSH1 0x64 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x84 CALLDATALOAD AND PUSH2 0x15DF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7E1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2AD PUSH4 0xFFFFFFFF PUSH1 0x4 CALLDATALOAD AND PUSH2 0x1832 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7FF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2AD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x1927 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x820 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x38D PUSH2 0x19C4 JUMP JUMPDEST PUSH2 0x831 PUSH2 0x19D3 JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD SWAP2 ISZERO ISZERO PUSH21 0x10000000000000000000000000000000000000000 MUL PUSH21 0xFF0000000000000000000000000000000000000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH4 0xFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x88D PUSH2 0x310A JUMP JUMPDEST POP POP POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP2 MLOAD PUSH1 0xA0 DUP2 ADD DUP4 MSTORE DUP2 SLOAD DUP1 DUP3 MSTORE PUSH1 0x1 SWAP1 SWAP3 ADD SLOAD PUSH4 0xFFFFFFFF DUP2 AND SWAP5 DUP3 ADD DUP6 SWAP1 MSTORE PUSH1 0xFF PUSH5 0x100000000 DUP3 DIV DUP2 AND ISZERO ISZERO SWAP5 DUP4 ADD SWAP5 SWAP1 SWAP5 MSTORE PUSH6 0x10000000000 DUP2 DIV DUP5 AND ISZERO ISZERO PUSH1 0x60 DUP4 ADD MSTORE PUSH7 0x1000000000000 SWAP1 DIV SWAP1 SWAP3 AND ISZERO ISZERO PUSH1 0x80 SWAP1 SWAP3 ADD DUP3 SWAP1 MSTORE SWAP6 SWAP2 SWAP5 POP SWAP2 SWAP3 POP DUP3 SWAP2 SWAP1 JUMP JUMPDEST PUSH20 0xEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE PUSH1 0x0 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH32 0x353C2EB9E53A4A4A6D45D72082FF2E9DC829D1125618772A83EB0E7F86632C43 SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x7 DUP3 DUP2 SLOAD DUP2 LT ISZERO ISZERO PUSH2 0x978 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0x99F DUP2 PUSH2 0x1A23 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH4 0xFFFFFFFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x9D3 DUP6 DUP6 DUP6 PUSH2 0x127B JUMP JUMPDEST SWAP2 POP SWAP2 POP JUMPDEST SWAP4 POP SWAP4 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x9E8 PUSH2 0x19D3 JUMP JUMPDEST PUSH2 0x9F1 DUP2 PUSH2 0xF50 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 ADDRESS PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x8DA5CB5B PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xA53 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xA67 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xA7D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH2 0xAB7 PUSH2 0x19D3 JUMP JUMPDEST PUSH2 0xABF PUSH2 0x13C6 JUMP JUMPDEST JUMP JUMPDEST PUSH2 0xAC9 PUSH2 0x19D3 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x5E35359E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP6 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP3 ADD DUP6 SWAP1 MSTORE SWAP2 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP2 PUSH4 0x5E35359E SWAP2 PUSH1 0x64 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xB3F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xB53 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ DUP1 PUSH2 0xB96 JUMPI POP PUSH1 0x3 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST ISZERO ISZERO PUSH2 0xBDA JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3178 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0xC03 PUSH32 0x436F6E7472616374526567697374727900000000000000000000000000000000 PUSH2 0x1AA2 JUMP JUMPDEST PUSH1 0x2 SLOAD SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP4 AND SWAP2 AND EQ DUP1 ISZERO SWAP1 PUSH2 0xC2C JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO JUMPDEST ISZERO ISZERO PUSH2 0xC82 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245474953545259000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0xBB34534C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH32 0x436F6E7472616374526567697374727900000000000000000000000000000000 PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP2 PUSH4 0xBB34534C SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xD06 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xD1A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xD30 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ ISZERO PUSH2 0xD91 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245474953545259000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP5 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP3 DUP4 AND OR SWAP1 SWAP3 SSTORE SWAP1 SWAP2 AND SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0xDD6 PUSH2 0x19D3 JUMP JUMPDEST DUP1 PUSH2 0xDE0 DUP2 PUSH2 0x1B3A JUMP JUMPDEST POP PUSH1 0x6 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x20 DUP2 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH9 0x10000000000000000 SWAP1 DIV PUSH4 0xFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xE37 PUSH2 0x1B9B JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH2 0xE44 PUSH2 0x19D3 JUMP JUMPDEST PUSH2 0xE5B PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3158 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x1AA2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD SWAP1 SWAP2 POP PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 PUSH2 0xE98 JUMPI POP PUSH2 0xE96 PUSH2 0x9F4 JUMP JUMPDEST ISZERO JUMPDEST DUP1 PUSH2 0xEB0 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ JUMPDEST ISZERO ISZERO PUSH2 0xEF4 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3178 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0xEFF DUP5 DUP5 DUP5 PUSH2 0x1BF5 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0xF36 JUMPI PUSH2 0xF36 DUP5 PUSH2 0x1C26 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0x4 SSTORE POP POP JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH2 0xF58 PUSH2 0x19D3 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3158 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0xF70 DUP2 PUSH2 0x1D20 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xF2FDE38B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP2 PUSH4 0xF2FDE38B SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xFD7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xFEB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xFFD PUSH2 0x1B9B JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH2 0x100A PUSH2 0x19D3 JUMP JUMPDEST PUSH20 0xEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE PUSH2 0x1028 DUP2 PUSH2 0x1A23 JUMP JUMPDEST PUSH2 0x103F PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3158 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x1AA2 JUMP JUMPDEST SWAP2 POP PUSH2 0x1049 PUSH2 0x9F4 JUMP JUMPDEST ISZERO DUP1 PUSH2 0x1062 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 DUP2 AND SWAP2 AND EQ JUMPDEST ISZERO ISZERO PUSH2 0x10A6 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3178 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP1 ADDRESS BALANCE DUP1 ISZERO PUSH2 0x8FC MUL SWAP2 PUSH1 0x0 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x10DC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH2 0x10FA PUSH20 0xEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE PUSH2 0x1C26 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0x4 SSTORE POP JUMP JUMPDEST PUSH2 0x110C PUSH2 0x1275 JUMP JUMPDEST PUSH2 0xFFFF AND ISZERO PUSH2 0x1165 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F434F554E5400000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x116F DUP3 DUP3 PUSH2 0x1D76 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x117D PUSH2 0x1275 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x11D2 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3178 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND SWAP4 SWAP1 SWAP2 AND SWAP2 PUSH32 0x343765429AEA5A34B3FF6A3785A98A5ABB2597ACA87BFBB58632C173D585373A SWAP2 LOG3 PUSH1 0x1 DUP1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND OR SWAP1 SWAP2 SSTORE AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH5 0x100000000 SWAP1 DIV PUSH4 0xFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x7 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x0 SWAP1 DUP2 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 DUP2 AND SWAP2 AND EQ DUP1 ISZERO PUSH2 0x12C2 JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND JUMPDEST ISZERO PUSH2 0x12D9 JUMPI PUSH2 0x12D0 DUP4 PUSH2 0x1FC7 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x9D8 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 DUP2 AND SWAP2 AND EQ DUP1 ISZERO PUSH2 0x131B JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND JUMPDEST ISZERO PUSH2 0x1329 JUMPI PUSH2 0x12D0 DUP4 PUSH2 0x21D6 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F544F4B454E000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x1381 PUSH2 0x19D3 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x2 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x1 DUP2 JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH2 0x13CE PUSH2 0x19D3 JUMP JUMPDEST PUSH2 0x13D6 PUSH2 0x22E2 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x13ED PUSH2 0xB5C JUMP JUMPDEST PUSH2 0xFFFF AND PUSH32 0x6B08C2E2C9969E55A647A764DB9B554D64DC42F1A704DA11A6D5B129AD163F2C PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 JUMP JUMPDEST PUSH1 0x7 DUP1 SLOAD DUP3 SWAP1 DUP2 LT PUSH2 0x142D JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP1 POP DUP2 JUMP JUMPDEST PUSH1 0x1 SWAP1 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1474 PUSH2 0x19D3 JUMP JUMPDEST PUSH2 0x148B PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3158 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x1AA2 JUMP JUMPDEST PUSH1 0x5 SLOAD SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x14A5 PUSH2 0xB5C JUMP JUMPDEST PUSH2 0xFFFF AND PUSH32 0x6B08C2E2C9969E55A647A764DB9B554D64DC42F1A704DA11A6D5B129AD163F2C PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH2 0x14DE DUP2 PUSH2 0x1927 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x90F58C9600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 AND SWAP2 PUSH4 0x90F58C96 SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x153F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1553 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x9F1 PUSH2 0x1182 JUMP JUMPDEST PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD PUSH4 0xFFFFFFFF DUP2 AND SWAP1 PUSH1 0xFF PUSH5 0x100000000 DUP3 DIV DUP2 AND SWAP2 PUSH6 0x10000000000 DUP2 DIV DUP3 AND SWAP2 PUSH7 0x1000000000000 SWAP1 SWAP2 DIV AND DUP6 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x15B0 DUP3 PUSH2 0x15B6 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0x15C2 DUP2 PUSH2 0x1A23 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x15E9 PUSH2 0x1B9B JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH32 0x536F7672796E537761704E6574776F726B000000000000000000000000000000 PUSH2 0x1618 DUP2 PUSH2 0x1D20 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 DUP2 AND SWAP1 DUP8 AND EQ ISZERO PUSH2 0x167C JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F534F555243455F54415247455400000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND ISZERO DUP1 PUSH2 0x17BF JUMPI POP PUSH1 0x6 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x3AF32ABF00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP2 PUSH4 0x3AF32ABF SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x16F7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x170B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1721 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD DUP1 ISZERO PUSH2 0x17BF JUMPI POP PUSH1 0x6 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x3AF32ABF00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP2 PUSH4 0x3AF32ABF SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1792 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x17A6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x17BC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD JUMPDEST ISZERO ISZERO PUSH2 0x1815 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4E4F545F57484954454C495354454400000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x1822 DUP8 DUP8 DUP8 DUP8 DUP8 PUSH2 0x23C0 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x4 SSTORE SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x183A PUSH2 0x19D3 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH4 0xFFFFFFFF PUSH5 0x100000000 SWAP1 SWAP2 DIV DUP2 AND SWAP1 DUP3 AND GT ISZERO PUSH2 0x18A6 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F434F4E56455253494F4E5F464545000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH4 0xFFFFFFFF PUSH9 0x10000000000000000 SWAP1 SWAP4 DIV DUP4 AND DUP2 MSTORE SWAP2 DUP4 AND PUSH1 0x20 DUP4 ADD MSTORE DUP1 MLOAD PUSH32 0x81CD2FFB37DD237C0E4E2A3DE5265FCF9DEB43D3E7801E80DB9F1CCFBA7EE600 SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG1 PUSH1 0x9 DUP1 SLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP3 AND PUSH9 0x10000000000000000 MUL PUSH12 0xFFFFFFFF0000000000000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x192F PUSH2 0x19D3 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x1995 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F4F574E4552000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0xABF JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3178 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO PUSH2 0x9F1 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245534552564500000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xBB34534C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP2 PUSH4 0xBB34534C SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1B08 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1B1C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1B32 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ADDRESS EQ ISZERO PUSH2 0x9F1 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F414444524553535F49535F53454C4600000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x4 SLOAD PUSH1 0x1 EQ PUSH2 0xABF JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5245454E5452414E4359000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x1BFD PUSH2 0x19D3 JUMP JUMPDEST DUP3 PUSH2 0x1C07 DUP2 PUSH2 0x259E JUMP JUMPDEST DUP3 PUSH2 0x1C11 DUP2 PUSH2 0x259E JUMP JUMPDEST DUP4 PUSH2 0x1C1B DUP2 PUSH2 0x1B3A JUMP JUMPDEST PUSH2 0xFEB DUP7 DUP7 DUP7 PUSH2 0x25FE JUMP JUMPDEST DUP1 PUSH2 0x1C30 DUP2 PUSH2 0x1A23 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 AND PUSH20 0xEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE EQ ISZERO PUSH2 0x1C76 JUMPI PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 ADDRESS BALANCE SWAP1 SSTORE PUSH2 0x116F JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1CD7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1CEB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1D01 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE POP POP JUMP JUMPDEST PUSH2 0x1D29 DUP2 PUSH2 0x1AA2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x9F1 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3178 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1D80 PUSH2 0x19D3 JUMP JUMPDEST PUSH2 0x1D88 PUSH2 0x26B8 JUMP JUMPDEST DUP3 PUSH2 0x1D92 DUP2 PUSH2 0x259E JUMP JUMPDEST DUP4 PUSH2 0x1D9C DUP2 PUSH2 0x1B3A JUMP JUMPDEST DUP4 PUSH2 0x1DA6 DUP2 PUSH2 0x2715 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 DUP2 AND SWAP2 AND EQ DUP1 ISZERO SWAP1 PUSH2 0x1DEA JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x1E40 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245534552564500000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x9 SLOAD PUSH4 0xFFFFFFFF SWAP1 DUP2 AND PUSH3 0xF4240 SUB DUP2 AND SWAP1 DUP7 AND GT ISZERO PUSH2 0x1EAB JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F574549474854000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0xFFFF PUSH2 0x1EB6 PUSH2 0x1275 JUMP JUMPDEST PUSH2 0xFFFF AND LT PUSH2 0x1F0F JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F434F554E5400000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP2 DUP2 SSTORE PUSH1 0x1 SWAP1 DUP2 ADD DUP1 SLOAD PUSH7 0xFF000000000000 NOT PUSH4 0xFFFFFFFF DUP1 DUP9 AND PUSH4 0xFFFFFFFF NOT SWAP4 DUP5 AND OR SWAP2 SWAP1 SWAP2 AND PUSH7 0x1000000000000 OR SWAP1 SWAP3 SSTORE PUSH1 0x7 DUP1 SLOAD SWAP4 DUP5 ADD DUP2 SSTORE SWAP1 SWAP4 MSTORE PUSH32 0xA66CC928B5EDB82AF9BD49922954155AB7B0942694BEA4CE44661D9A8736C688 SWAP1 SWAP2 ADD DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 SWAP4 OR SWAP1 SWAP3 SSTORE PUSH1 0x9 DUP1 SLOAD DUP1 DUP5 AND SWAP1 SWAP5 ADD SWAP1 SWAP3 AND SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x1FD8 PUSH2 0x278A JUMP JUMPDEST PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x18160DDD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x202B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x203F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2055 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP4 POP DUP4 ISZERO ISZERO PUSH2 0x20B1 JUMPI PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH2 0x20A6 SWAP1 PUSH4 0xFFFFFFFF SWAP1 DUP2 AND SWAP1 PUSH2 0x209A SWAP1 DUP11 SWAP1 PUSH3 0xF4240 SWAP1 PUSH2 0x27E8 AND JUMP JUMPDEST SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x286C AND JUMP JUMPDEST SWAP6 POP PUSH1 0x0 SWAP5 POP PUSH2 0x21CD JUMP JUMPDEST PUSH1 0x7 DUP1 SLOAD PUSH1 0x0 SWAP1 DUP2 LT PUSH2 0x20C0 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP3 POP PUSH2 0x2100 PUSH32 0x536F7672796E53776170466F726D756C61000000000000000000000000000000 PUSH2 0x1AA2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xF3250FE2 DUP6 PUSH2 0x2118 DUP7 PUSH2 0x15B6 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 ADD SLOAD DUP2 MLOAD PUSH4 0xFFFFFFFF DUP9 DUP2 AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP3 MSTORE PUSH1 0x4 DUP3 ADD SWAP8 SWAP1 SWAP8 MSTORE PUSH1 0x24 DUP2 ADD SWAP6 SWAP1 SWAP6 MSTORE SWAP5 SWAP1 SWAP5 AND PUSH1 0x44 DUP5 ADD MSTORE PUSH1 0x64 DUP4 ADD DUP14 SWAP1 MSTORE SWAP3 MLOAD PUSH1 0x84 DUP1 DUP5 ADD SWAP5 SWAP4 SWAP2 SWAP3 SWAP2 DUP4 SWAP1 SUB ADD SWAP1 DUP3 SWAP1 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x218B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x219F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x21B5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 POP PUSH2 0x21C2 DUP3 PUSH2 0x28DA JUMP JUMPDEST SWAP1 POP DUP1 DUP3 SUB DUP2 SWAP6 POP SWAP6 POP JUMPDEST POP POP POP POP SWAP2 POP SWAP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x21E7 PUSH2 0x278A JUMP JUMPDEST PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x18160DDD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x223A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x224E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2264 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x7 DUP1 SLOAD SWAP2 SWAP6 POP SWAP1 PUSH1 0x0 SWAP1 DUP2 LT PUSH2 0x2279 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP3 POP DUP4 DUP8 EQ ISZERO PUSH2 0x22A1 JUMPI PUSH2 0x20A6 DUP4 PUSH2 0x15B6 JUMP JUMPDEST PUSH2 0x22CA PUSH32 0x536F7672796E53776170466F726D756C61000000000000000000000000000000 PUSH2 0x1AA2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x76CF0B56 DUP6 PUSH2 0x2118 DUP7 PUSH2 0x15B6 JUMP JUMPDEST PUSH2 0x22EA PUSH2 0x19D3 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x22F4 PUSH2 0x1275 JUMP JUMPDEST PUSH2 0xFFFF AND GT PUSH2 0x234D JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F434F554E5400000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x79BA5097 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x23A0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x23B4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0xABF PUSH2 0x290A JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x0 SWAP1 DUP2 SWAP1 DUP2 SWAP1 DUP2 SWAP1 DUP2 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP11 DUP2 AND SWAP2 AND EQ DUP1 ISZERO PUSH2 0x240D JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP11 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND JUMPDEST ISZERO PUSH2 0x2427 JUMPI DUP10 SWAP3 POP PUSH2 0x2420 DUP9 DUP9 DUP9 PUSH2 0x294C JUMP JUMPDEST SWAP4 POP PUSH2 0x247C JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 DUP2 AND SWAP2 AND EQ DUP1 ISZERO PUSH2 0x2469 JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP10 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND JUMPDEST ISZERO PUSH2 0x1329 JUMPI DUP9 SWAP3 POP PUSH2 0x2420 DUP9 DUP9 DUP9 PUSH2 0x2C12 JUMP JUMPDEST PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x18160DDD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x24CF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x24E3 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x24F9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP6 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH1 0x5 SLOAD SWAP4 SWAP6 POP PUSH4 0xFFFFFFFF AND SWAP4 POP SWAP2 AND PUSH32 0x77F29993CF2C084E726F7E802DA0719D6A0ADE3E204BADC7A3FFD57ECB768C24 PUSH2 0x2565 PUSH3 0xF4240 PUSH2 0x2559 DUP9 PUSH2 0x15B6 JUMP JUMPDEST SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x27E8 AND JUMP JUMPDEST PUSH2 0x2578 DUP7 PUSH4 0xFFFFFFFF DUP1 DUP9 AND SWAP1 PUSH2 0x27E8 AND JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB ADD SWAP1 LOG3 POP SWAP2 SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0x9F1 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x7472616E7366657228616464726573732C75696E743235362900000000000000 DUP2 MSTORE DUP2 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x19 ADD DUP2 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x64 SWAP1 SWAP3 ADD SWAP1 SWAP3 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE PUSH2 0x26B3 SWAP1 DUP5 SWAP1 PUSH2 0x2F97 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x26C0 PUSH2 0x9F4 JUMP JUMPDEST ISZERO PUSH2 0xABF JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xA PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F41435449564500000000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 PUSH4 0xFFFFFFFF AND GT DUP1 ISZERO PUSH2 0x2734 JUMPI POP PUSH3 0xF4240 PUSH4 0xFFFFFFFF DUP3 AND GT ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x9F1 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F574549474854000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x2792 PUSH2 0x9F4 JUMP JUMPDEST ISZERO ISZERO PUSH2 0xABF JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E4143544956450000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP4 ISZERO ISZERO PUSH2 0x27FB JUMPI PUSH1 0x0 SWAP2 POP PUSH2 0x2865 JUMP JUMPDEST POP DUP3 DUP3 MUL DUP3 DUP5 DUP3 DUP2 ISZERO ISZERO PUSH2 0x280B JUMPI INVALID JUMPDEST DIV EQ PUSH2 0x2861 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP1 SWAP2 POP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP4 GT PUSH2 0x28C6 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4449564944455F42595F5A45524F0000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP3 DUP5 DUP2 ISZERO ISZERO PUSH2 0x28D1 JUMPI INVALID JUMPDEST DIV SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x0 SWAP1 PUSH2 0x15B0 SWAP1 PUSH3 0xF4240 SWAP1 PUSH2 0x209A SWAP1 DUP6 SWAP1 PUSH9 0x10000000000000000 SWAP1 DIV PUSH4 0xFFFFFFFF SWAP1 DUP2 AND SWAP1 PUSH2 0x27E8 AND JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x116F JUMPI PUSH2 0x2944 PUSH1 0x7 DUP3 DUP2 SLOAD DUP2 LT ISZERO ISZERO PUSH2 0x292A JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x1C26 JUMP JUMPDEST PUSH1 0x1 ADD PUSH2 0x2910 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x295B DUP8 PUSH2 0x1FC7 JUMP JUMPDEST SWAP1 SWAP4 POP SWAP2 POP DUP3 ISZERO ISZERO PUSH2 0x29B7 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5A45524F5F5441524745545F414D4F554E5400000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x7 DUP1 SLOAD PUSH1 0x0 SWAP1 DUP2 LT PUSH2 0x29C6 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP1 POP PUSH20 0xEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE DUP2 EQ ISZERO PUSH2 0x2A55 JUMPI CALLVALUE DUP8 EQ PUSH2 0x2A50 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4554485F414D4F554E545F4D49534D41544348000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x2B5D JUMP JUMPDEST CALLVALUE ISZERO DUP1 ISZERO PUSH2 0x2B07 JUMPI POP DUP7 PUSH2 0x2B04 PUSH2 0x2A6B DUP4 PUSH2 0x15B6 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2ACC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2AE0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2AF6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x3025 AND JUMP JUMPDEST LT ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x2B5D JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F414D4F554E540000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x2B66 DUP2 PUSH2 0x1C26 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x867904B400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH1 0x24 DUP3 ADD DUP8 SWAP1 MSTORE SWAP2 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP2 PUSH4 0x867904B4 SWAP2 PUSH1 0x44 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2BD4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2BE8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x5 SLOAD PUSH2 0x2C07 SWAP3 POP DUP4 SWAP2 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP9 DUP11 DUP8 DUP8 PUSH2 0x3085 JUMP JUMPDEST POP SWAP1 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP3 DUP4 SWAP3 DUP4 SWAP3 DUP4 SWAP3 DUP4 SWAP3 DUP4 SWAP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2C84 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2C98 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2CAE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD DUP10 GT ISZERO PUSH2 0x2D07 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F414D4F554E540000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x2D10 DUP10 PUSH2 0x21D6 JUMP JUMPDEST SWAP1 SWAP6 POP SWAP4 POP DUP5 ISZERO ISZERO PUSH2 0x2D6C JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5A45524F5F5441524745545F414D4F554E5400000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x7 DUP1 SLOAD PUSH1 0x0 SWAP1 DUP2 LT PUSH2 0x2D7B JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 SWAP1 SWAP2 ADD SLOAD PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x18160DDD00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND SWAP9 POP SWAP2 SWAP1 SWAP3 AND SWAP4 PUSH4 0x18160DDD SWAP4 PUSH1 0x4 DUP1 DUP6 ADD SWAP5 SWAP2 SWAP4 SWAP3 SWAP2 DUP4 SWAP1 SUB ADD SWAP1 DUP3 SWAP1 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2DED JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2E01 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2E17 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 POP PUSH2 0x2E24 DUP4 PUSH2 0x15B6 JUMP JUMPDEST SWAP1 POP DUP1 DUP6 LT DUP1 PUSH2 0x2E3D JUMPI POP DUP1 DUP6 EQ DUP1 ISZERO PUSH2 0x2E3D JUMPI POP DUP2 DUP10 EQ JUMPDEST ISZERO ISZERO PUSH2 0x2E45 JUMPI INVALID JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xA24835D100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP13 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP2 PUSH4 0xA24835D1 SWAP2 PUSH1 0x44 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2EB1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2EC5 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x2EF2 SWAP2 POP DUP7 PUSH4 0xFFFFFFFF PUSH2 0x3025 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE PUSH20 0xEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE EQ ISZERO PUSH2 0x2F65 JUMPI PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 AND SWAP1 DUP7 ISZERO PUSH2 0x8FC MUL SWAP1 DUP8 SWAP1 PUSH1 0x0 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x2F5F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH2 0x2F70 JUMP JUMPDEST PUSH2 0x2F70 DUP4 DUP9 DUP8 PUSH2 0x25FE JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH2 0x2F8A SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP5 DUP11 DUP13 DUP10 DUP10 PUSH2 0x3085 JUMP JUMPDEST POP SWAP3 SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x2F9F PUSH2 0x3138 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE POP SWAP1 POP PUSH1 0x20 DUP2 DUP4 MLOAD PUSH1 0x20 DUP6 ADD PUSH1 0x0 DUP8 GAS CALL DUP1 ISZERO ISZERO PUSH2 0x2FCC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD ISZERO ISZERO PUSH2 0x26B3 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5452414E534645525F4641494C454400000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 DUP4 LT ISZERO PUSH2 0x307F JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F554E444552464C4F5700000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP SWAP1 SUB SWAP1 JUMP JUMPDEST PUSH32 0x8000000000000000000000000000000000000000000000000000000000000000 DUP2 LT PUSH2 0x30AE JUMPI INVALID JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP5 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 SWAP1 MSTORE DUP1 DUP3 ADD DUP4 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP8 AND SWAP3 DUP9 DUP3 AND SWAP3 SWAP2 DUP11 AND SWAP2 PUSH32 0x276856B36CBC45526A0BA64F44611557A2A8B68662C5388E9FE6D72E86E1C8CB SWAP2 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG4 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xA0 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE SWAP2 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x60 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 SWAP1 PUSH1 0x20 DUP3 MUL DUP1 CODESIZE DUP4 CODECOPY POP SWAP2 SWAP3 SWAP2 POP POP JUMP STOP MSTORE8 PUSH16 0x7672796E53776170436F6E7665727465 PUSH19 0x557067726164657200000000004552525F4143 NUMBER GASLIMIT MSTORE8 MSTORE8 0x5f DIFFICULTY GASLIMIT 0x4e 0x49 GASLIMIT DIFFICULTY STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 0xc3 SWAP16 SWAP8 EXTCODECOPY 0xbc SHR CREATE PUSH22 0x8A64156854331E6829D0C51A16E297AAE88602BE0C95 0xbc SWAP12 STOP 0x29 LOG1 PUSH6 0x627A7A723058 KECCAK256 0x4f 0xe6 NUMBER 0x24 SMOD 0xd2 RETURNDATASIZE 0x24 DIFFICULTY PUSH9 0x87A09BF05471A3BCB6 0xc0 0xf8 0x24 TIMESTAMP 0xaa PUSH23 0xDDF3FB876C185E00290000000000000000000000000000 ", - "sourceMap": "258:1024:22:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;258:1024:22;;;;;;;" - }, - "deployedBytecode": { - "linkReferences": {}, - "object": "60806040526004361061004b5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631141395881146100505780633e8ff43f146100b6575b600080fd5b34801561005c57600080fd5b5061008d73ffffffffffffffffffffffffffffffffffffffff6004358116906024351663ffffffff604435166100e2565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b3480156100c257600080fd5b506100cb6101d5565b6040805161ffff9092168252519081900360200190f35b6000808484846100f06101da565b73ffffffffffffffffffffffffffffffffffffffff938416815291909216602082015263ffffffff9091166040808301919091525190819003606001906000f080158015610142573d6000803e3d6000fd5b50604080517ff2fde38b000000000000000000000000000000000000000000000000000000008152336004820152905191925073ffffffffffffffffffffffffffffffffffffffff83169163f2fde38b9160248082019260009290919082900301818387803b1580156101b457600080fd5b505af11580156101c8573d6000803e3d6000fd5b5092979650505050505050565b600090565b6040516133e2806101eb83390190560060806040526001600455600980546001606060020a03191690553480156200002657600080fd5b50604051606080620033e283398101604090815281516020830151919092015160008054600160a060020a03191633179055828282818062000071816401000000006200011b810204565b5060028054600160a060020a03909216600160a060020a031992831681179091556003805490921617905582620000b1816401000000006200011b810204565b81620000c68164010000000062000196810204565b505060058054600160a060020a03909416600160a060020a031990941693909317909255506009805463ffffffff9092166401000000000267ffffffff0000000019909216919091179055506200020f915050565b600160a060020a03811615156200019357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b50565b620f424063ffffffff821611156200019357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f4552525f494e56414c49445f434f4e56455253494f4e5f464545000000000000604482015290519081900360640190fd5b6131c3806200021f6000396000f30060806040526004361061020b5763ffffffff60e060020a600035041663024c7ec781146102af5780630c7d5cd8146102c95780630e53aae9146102f757806312c2aca41461034c57806319b64015146103755780631cfab290146103a95780631e1401f8146103ca57806321e6b53d1461040d57806322f3e2d41461042e5780632fe8a6ad1461044357806338a5e01614610458578063395900d41461046d5780633e8ff43f1461049757806349d10b64146104c35780634af80f0e146104d857806354fd4d50146104f9578063579cd3ca1461050e5780635e35359e1461052357806361cd756e1461054d57806367b6d57c14610562578063690d8320146105835780636a49d2c4146105a457806371f52bf3146105ce57806379ba5097146105e35780637b103999146105f85780638da5cb5b1461060d57806394c275ad146106225780639b99a8e214610637578063af94b8d81461064c578063b4a176d314610676578063bf7545581461068b578063c45d3d92146106a0578063cdc91c69146106b5578063d031370b146106ca578063d260529c146106e2578063d3fb73b4146106f7578063d4ee1d901461070c578063d55ec69714610721578063d66bd52414610736578063d895951214610757578063dc8de3791461078a578063e8dc12ff146107ab578063ecbca55d146107d5578063f2fde38b146107f3578063fc0c546a14610814575b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee60005260086020527f353c2eb9e53a4a4a6d45d72082ff2e9dc829d1125618772a83eb0e7f86632c43546601000000000000900460ff1615156102ad576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f5245534552564500000000000000000000000000604482015290519081900360640190fd5b005b3480156102bb57600080fd5b506102ad6004351515610829565b3480156102d557600080fd5b506102de610871565b6040805163ffffffff9092168252519081900360200190f35b34801561030357600080fd5b50610318600160a060020a036004351661087d565b6040805195865263ffffffff9094166020860152911515848401521515606084015215156080830152519081900360a00190f35b34801561035857600080fd5b50610361610918565b604080519115158252519081900360200190f35b34801561038157600080fd5b5061038d600435610967565b60408051600160a060020a039092168252519081900360200190f35b3480156103b557600080fd5b506102de600160a060020a0360043516610993565b3480156103d657600080fd5b506103f4600160a060020a03600435811690602435166044356109c5565b6040805192835260208301919091528051918290030190f35b34801561041957600080fd5b506102ad600160a060020a03600435166109e0565b34801561043a57600080fd5b506103616109f4565b34801561044f57600080fd5b50610361610a8e565b34801561046457600080fd5b506102ad610aaf565b34801561047957600080fd5b506102ad600160a060020a0360043581169060243516604435610ac1565b3480156104a357600080fd5b506104ac610b5c565b6040805161ffff9092168252519081900360200190f35b3480156104cf57600080fd5b506102ad610b61565b3480156104e457600080fd5b506102ad600160a060020a0360043516610dce565b34801561050557600080fd5b506104ac610e10565b34801561051a57600080fd5b506102de610e15565b34801561052f57600080fd5b506102ad600160a060020a0360043581169060243516604435610e2d565b34801561055957600080fd5b5061038d610f41565b34801561056e57600080fd5b506102ad600160a060020a0360043516610f50565b34801561058f57600080fd5b506102ad600160a060020a0360043516610ff3565b3480156105b057600080fd5b506102ad600160a060020a036004351663ffffffff60243516611104565b3480156105da57600080fd5b506104ac611173565b3480156105ef57600080fd5b506102ad611182565b34801561060457600080fd5b5061038d611243565b34801561061957600080fd5b5061038d611252565b34801561062e57600080fd5b506102de611261565b34801561064357600080fd5b506104ac611275565b34801561065857600080fd5b506103f4600160a060020a036004358116906024351660443561127b565b34801561068257600080fd5b506102ad611379565b34801561069757600080fd5b506103616113b2565b3480156106ac57600080fd5b5061038d6113b7565b3480156106c157600080fd5b506102ad6113c6565b3480156106d657600080fd5b5061038d60043561141f565b3480156106ee57600080fd5b50610361611447565b34801561070357600080fd5b5061038d61144c565b34801561071857600080fd5b5061038d61145b565b34801561072d57600080fd5b506102ad61146a565b34801561074257600080fd5b50610318600160a060020a036004351661155f565b34801561076357600080fd5b50610778600160a060020a03600435166115a5565b60408051918252519081900360200190f35b34801561079657600080fd5b50610778600160a060020a03600435166115b6565b610778600160a060020a0360043581169060243581169060443590606435811690608435166115df565b3480156107e157600080fd5b506102ad63ffffffff60043516611832565b3480156107ff57600080fd5b506102ad600160a060020a0360043516611927565b34801561082057600080fd5b5061038d6119c4565b6108316119d3565b60038054911515740100000000000000000000000000000000000000000274ff000000000000000000000000000000000000000019909216919091179055565b60095463ffffffff1681565b600080600080600061088d61310a565b50505050600160a060020a03929092166000908152600860209081526040808320815160a081018352815480825260019092015463ffffffff811694820185905260ff64010000000082048116151594830194909452650100000000008104841615156060830152660100000000000090049092161515608090920182905295919450919250829190565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee60005260086020527f353c2eb9e53a4a4a6d45d72082ff2e9dc829d1125618772a83eb0e7f86632c43546601000000000000900460ff1690565b600060078281548110151561097857fe5b600091825260209091200154600160a060020a031692915050565b60008161099f81611a23565b5050600160a060020a031660009081526008602052604090206001015463ffffffff1690565b6000806109d385858561127b565b915091505b935093915050565b6109e86119d3565b6109f181610f50565b50565b600030600160a060020a0316600560009054906101000a9004600160a060020a0316600160a060020a0316638da5cb5b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610a5357600080fd5b505af1158015610a67573d6000803e3d6000fd5b505050506040513d6020811015610a7d57600080fd5b5051600160a060020a031614905090565b60035474010000000000000000000000000000000000000000900460ff1681565b610ab76119d3565b610abf6113c6565b565b610ac96119d3565b600554604080517f5e35359e000000000000000000000000000000000000000000000000000000008152600160a060020a03868116600483015285811660248301526044820185905291519190921691635e35359e91606480830192600092919082900301818387803b158015610b3f57600080fd5b505af1158015610b53573d6000803e3d6000fd5b50505050505050565b600090565b60008054600160a060020a0316331480610b96575060035474010000000000000000000000000000000000000000900460ff16155b1515610bda576040805160e560020a62461bcd0281526020600482015260116024820152600080516020613178833981519152604482015290519081900360640190fd5b610c037f436f6e7472616374526567697374727900000000000000000000000000000000611aa2565b600254909150600160a060020a03808316911614801590610c2c5750600160a060020a03811615155b1515610c82576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e56414c49445f5245474953545259000000000000000000000000604482015290519081900360640190fd5b604080517fbb34534c0000000000000000000000000000000000000000000000000000000081527f436f6e747261637452656769737472790000000000000000000000000000000060048201529051600091600160a060020a0384169163bb34534c9160248082019260209290919082900301818787803b158015610d0657600080fd5b505af1158015610d1a573d6000803e3d6000fd5b505050506040513d6020811015610d3057600080fd5b5051600160a060020a03161415610d91576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e56414c49445f5245474953545259000000000000000000000000604482015290519081900360640190fd5b6002805460038054600160a060020a0380841673ffffffffffffffffffffffffffffffffffffffff19928316179092559091169216919091179055565b610dd66119d3565b80610de081611b3a565b506006805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b602081565b60095468010000000000000000900463ffffffff1681565b6000610e37611b9b565b6002600455610e446119d3565b610e5b600080516020613158833981519152611aa2565b600160a060020a0385166000908152600860205260409020600101549091506601000000000000900460ff161580610e985750610e966109f4565b155b80610eb05750600054600160a060020a038281169116145b1515610ef4576040805160e560020a62461bcd0281526020600482015260116024820152600080516020613178833981519152604482015290519081900360640190fd5b610eff848484611bf5565b600160a060020a0384166000908152600860205260409020600101546601000000000000900460ff1615610f3657610f3684611c26565b505060016004555050565b600354600160a060020a031681565b610f586119d3565b600080516020613158833981519152610f7081611d20565b600554604080517ff2fde38b000000000000000000000000000000000000000000000000000000008152600160a060020a0385811660048301529151919092169163f2fde38b91602480830192600092919082900301818387803b158015610fd757600080fd5b505af1158015610feb573d6000803e3d6000fd5b505050505050565b6000610ffd611b9b565b600260045561100a6119d3565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee61102881611a23565b61103f600080516020613158833981519152611aa2565b91506110496109f4565b15806110625750600054600160a060020a038381169116145b15156110a6576040805160e560020a62461bcd0281526020600482015260116024820152600080516020613178833981519152604482015290519081900360640190fd5b604051600160a060020a03841690303180156108fc02916000818181858888f193505050501580156110dc573d6000803e3d6000fd5b506110fa73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee611c26565b5050600160045550565b61110c611275565b61ffff1615611165576040805160e560020a62461bcd02815260206004820152601960248201527f4552525f494e56414c49445f524553455256455f434f554e5400000000000000604482015290519081900360640190fd5b61116f8282611d76565b5050565b600061117d611275565b905090565b600154600160a060020a031633146111d2576040805160e560020a62461bcd0281526020600482015260116024820152600080516020613178833981519152604482015290519081900360640190fd5b60015460008054604051600160a060020a0393841693909116917f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91a3600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b600254600160a060020a031681565b600054600160a060020a031681565b600954640100000000900463ffffffff1681565b60075490565b6005546000908190600160a060020a0385811691161480156112c25750600160a060020a0385166000908152600860205260409020600101546601000000000000900460ff165b156112d9576112d083611fc7565b915091506109d8565b600554600160a060020a03868116911614801561131b5750600160a060020a0384166000908152600860205260409020600101546601000000000000900460ff165b15611329576112d0836121d6565b6040805160e560020a62461bcd02815260206004820152601160248201527f4552525f494e56414c49445f544f4b454e000000000000000000000000000000604482015290519081900360640190fd5b6113816119d3565b6003546002805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055565b600181565b600654600160a060020a031681565b6113ce6119d3565b6113d66122e2565b600554600190600160a060020a03166113ed610b5c565b61ffff167f6b08c2e2c9969e55a647a764db9b554d64dc42f1a704da11a6d5b129ad163f2c60405160405180910390a4565b600780548290811061142d57fe5b600091825260209091200154600160a060020a0316905081565b600190565b600554600160a060020a031681565b600154600160a060020a031681565b60006114746119d3565b61148b600080516020613158833981519152611aa2565b600554909150600090600160a060020a03166114a5610b5c565b61ffff167f6b08c2e2c9969e55a647a764db9b554d64dc42f1a704da11a6d5b129ad163f2c60405160405180910390a46114de81611927565b604080517f90f58c96000000000000000000000000000000000000000000000000000000008152602060048201529051600160a060020a038316916390f58c9691602480830192600092919082900301818387803b15801561153f57600080fd5b505af1158015611553573d6000803e3d6000fd5b505050506109f1611182565b6008602052600090815260409020805460019091015463ffffffff81169060ff640100000000820481169165010000000000810482169166010000000000009091041685565b60006115b0826115b6565b92915050565b6000816115c281611a23565b5050600160a060020a031660009081526008602052604090205490565b60006115e9611b9b565b60026004557f536f7672796e537761704e6574776f726b00000000000000000000000000000061161881611d20565b600160a060020a03878116908716141561167c576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f53414d455f534f555243455f54415247455400000000000000000000604482015290519081900360640190fd5b600654600160a060020a031615806117bf5750600654604080517f3af32abf000000000000000000000000000000000000000000000000000000008152600160a060020a03878116600483015291519190921691633af32abf9160248083019260209291908290030181600087803b1580156116f757600080fd5b505af115801561170b573d6000803e3d6000fd5b505050506040513d602081101561172157600080fd5b505180156117bf5750600654604080517f3af32abf000000000000000000000000000000000000000000000000000000008152600160a060020a03868116600483015291519190921691633af32abf9160248083019260209291908290030181600087803b15801561179257600080fd5b505af11580156117a6573d6000803e3d6000fd5b505050506040513d60208110156117bc57600080fd5b50515b1515611815576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f4e4f545f57484954454c495354454400000000000000000000000000604482015290519081900360640190fd5b61182287878787876123c0565b6001600455979650505050505050565b61183a6119d3565b60095463ffffffff640100000000909104811690821611156118a6576040805160e560020a62461bcd02815260206004820152601a60248201527f4552525f494e56414c49445f434f4e56455253494f4e5f464545000000000000604482015290519081900360640190fd5b6009546040805163ffffffff6801000000000000000090930483168152918316602083015280517f81cd2ffb37dd237c0e4e2a3de5265fcf9deb43d3e7801e80db9f1ccfba7ee6009281900390910190a16009805463ffffffff90921668010000000000000000026bffffffff000000000000000019909216919091179055565b61192f6119d3565b600054600160a060020a0382811691161415611995576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f53414d455f4f574e4552000000000000000000000000000000000000604482015290519081900360640190fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600554600160a060020a031690565b600054600160a060020a03163314610abf576040805160e560020a62461bcd0281526020600482015260116024820152600080516020613178833981519152604482015290519081900360640190fd5b600160a060020a0381166000908152600860205260409020600101546601000000000000900460ff1615156109f1576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f5245534552564500000000000000000000000000604482015290519081900360640190fd5b600254604080517fbb34534c000000000000000000000000000000000000000000000000000000008152600481018490529051600092600160a060020a03169163bb34534c91602480830192602092919082900301818787803b158015611b0857600080fd5b505af1158015611b1c573d6000803e3d6000fd5b505050506040513d6020811015611b3257600080fd5b505192915050565b600160a060020a0381163014156109f1576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f414444524553535f49535f53454c4600000000000000000000000000604482015290519081900360640190fd5b600454600114610abf576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f5245454e5452414e4359000000000000000000000000000000000000604482015290519081900360640190fd5b611bfd6119d3565b82611c078161259e565b82611c118161259e565b83611c1b81611b3a565b610feb8686866125fe565b80611c3081611a23565b600160a060020a03821673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee1415611c7657600160a060020a03821660009081526008602052604090203031905561116f565b604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a038416916370a082319160248083019260209291908290030181600087803b158015611cd757600080fd5b505af1158015611ceb573d6000803e3d6000fd5b505050506040513d6020811015611d0157600080fd5b5051600160a060020a0383166000908152600860205260409020555050565b611d2981611aa2565b600160a060020a031633146109f1576040805160e560020a62461bcd0281526020600482015260116024820152600080516020613178833981519152604482015290519081900360640190fd5b6000611d806119d3565b611d886126b8565b82611d928161259e565b83611d9c81611b3a565b83611da681612715565b600554600160a060020a03878116911614801590611dea5750600160a060020a0386166000908152600860205260409020600101546601000000000000900460ff16155b1515611e40576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f5245534552564500000000000000000000000000604482015290519081900360640190fd5b60095463ffffffff908116620f42400381169086161115611eab576040805160e560020a62461bcd02815260206004820152601a60248201527f4552525f494e56414c49445f524553455256455f574549474854000000000000604482015290519081900360640190fd5b61ffff611eb6611275565b61ffff1610611f0f576040805160e560020a62461bcd02815260206004820152601960248201527f4552525f494e56414c49445f524553455256455f434f554e5400000000000000604482015290519081900360640190fd5b505050600160a060020a0390921660008181526008602052604081208181556001908101805466ff0000000000001963ffffffff80881663ffffffff1993841617919091166601000000000000179092556007805493840181559093527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688909101805473ffffffffffffffffffffffffffffffffffffffff191690931790925560098054808416909401909216921691909117905550565b600080600080600080611fd861278a565b600560009054906101000a9004600160a060020a0316600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561202b57600080fd5b505af115801561203f573d6000803e3d6000fd5b505050506040513d602081101561205557600080fd5b505193508315156120b157600160a060020a0383166000908152600860205260409020600101546120a69063ffffffff9081169061209a908a90620f4240906127e816565b9063ffffffff61286c16565b9550600094506121cd565b6007805460009081106120c057fe5b600091825260209091200154600160a060020a031692506121007f536f7672796e53776170466f726d756c61000000000000000000000000000000611aa2565b600160a060020a031663f3250fe285612118866115b6565b600160a060020a038716600090815260086020908152604080832060010154815163ffffffff88811660e060020a02825260048201979097526024810195909552949094166044840152606483018d90529251608480840194939192918390030190829087803b15801561218b57600080fd5b505af115801561219f573d6000803e3d6000fd5b505050506040513d60208110156121b557600080fd5b505191506121c2826128da565b905080820381955095505b50505050915091565b6000806000806000806121e761278a565b600560009054906101000a9004600160a060020a0316600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561223a57600080fd5b505af115801561224e573d6000803e3d6000fd5b505050506040513d602081101561226457600080fd5b50516007805491955090600090811061227957fe5b600091825260209091200154600160a060020a03169250838714156122a1576120a6836115b6565b6122ca7f536f7672796e53776170466f726d756c61000000000000000000000000000000611aa2565b600160a060020a03166376cf0b5685612118866115b6565b6122ea6119d3565b60006122f4611275565b61ffff161161234d576040805160e560020a62461bcd02815260206004820152601960248201527f4552525f494e56414c49445f524553455256455f434f554e5400000000000000604482015290519081900360640190fd5b600560009054906101000a9004600160a060020a0316600160a060020a03166379ba50976040518163ffffffff1660e060020a028152600401600060405180830381600087803b1580156123a057600080fd5b505af11580156123b4573d6000803e3d6000fd5b50505050610abf61290a565b6005546000908190819081908190600160a060020a038a8116911614801561240d5750600160a060020a038a166000908152600860205260409020600101546601000000000000900460ff165b156124275789925061242088888861294c565b935061247c565b600554600160a060020a038b811691161480156124695750600160a060020a0389166000908152600860205260409020600101546601000000000000900460ff165b1561132957889250612420888888612c12565b600560009054906101000a9004600160a060020a0316600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156124cf57600080fd5b505af11580156124e3573d6000803e3d6000fd5b505050506040513d60208110156124f957600080fd5b5051600160a060020a0380851660008181526008602052604090206001015460055493955063ffffffff16935091167f77f29993cf2c084e726f7e802da0719d6a0ade3e204badc7a3ffd57ecb768c24612565620f4240612559886115b6565b9063ffffffff6127e816565b6125788663ffffffff808816906127e816565b6040805192835260208301919091528051918290030190a3509198975050505050505050565b600160a060020a03811615156109f1576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b604080517f7472616e7366657228616464726573732c75696e74323536290000000000000081528151908190036019018120600160a060020a038516602483015260448083018590528351808403909101815260649092019092526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909316929092179091526126b3908490612f97565b505050565b6126c06109f4565b15610abf576040805160e560020a62461bcd02815260206004820152600a60248201527f4552525f41435449564500000000000000000000000000000000000000000000604482015290519081900360640190fd5b60008163ffffffff161180156127345750620f424063ffffffff821611155b15156109f1576040805160e560020a62461bcd02815260206004820152601a60248201527f4552525f494e56414c49445f524553455256455f574549474854000000000000604482015290519081900360640190fd5b6127926109f4565b1515610abf576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f494e4143544956450000000000000000000000000000000000000000604482015290519081900360640190fd5b6000808315156127fb5760009150612865565b5082820282848281151561280b57fe5b0414612861576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b8091505b5092915050565b6000808083116128c6576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f4449564944455f42595f5a45524f0000000000000000000000000000604482015290519081900360640190fd5b82848115156128d157fe5b04949350505050565b6009546000906115b090620f42409061209a90859068010000000000000000900463ffffffff908116906127e816565b60075460005b8181101561116f5761294460078281548110151561292a57fe5b600091825260209091200154600160a060020a0316611c26565b600101612910565b60008060008061295b87611fc7565b90935091508215156129b7576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f5a45524f5f5441524745545f414d4f554e5400000000000000000000604482015290519081900360640190fd5b6007805460009081106129c657fe5b600091825260209091200154600160a060020a0316905073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee811415612a5557348714612a50576040805160e560020a62461bcd02815260206004820152601760248201527f4552525f4554485f414d4f554e545f4d49534d41544348000000000000000000604482015290519081900360640190fd5b612b5d565b34158015612b07575086612b04612a6b836115b6565b604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a038616916370a082319160248083019260209291908290030181600087803b158015612acc57600080fd5b505af1158015612ae0573d6000803e3d6000fd5b505050506040513d6020811015612af657600080fd5b50519063ffffffff61302516565b10155b1515612b5d576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f494e56414c49445f414d4f554e540000000000000000000000000000604482015290519081900360640190fd5b612b6681611c26565b600554604080517f867904b4000000000000000000000000000000000000000000000000000000008152600160a060020a038881166004830152602482018790529151919092169163867904b491604480830192600092919082900301818387803b158015612bd457600080fd5b505af1158015612be8573d6000803e3d6000fd5b5050600554612c079250839150600160a060020a0316888a8787613085565b509095945050505050565b600554604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905160009283928392839283928392600160a060020a03909216916370a082319160248082019260209290919082900301818787803b158015612c8457600080fd5b505af1158015612c98573d6000803e3d6000fd5b505050506040513d6020811015612cae57600080fd5b5051891115612d07576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f494e56414c49445f414d4f554e540000000000000000000000000000604482015290519081900360640190fd5b612d10896121d6565b9095509350841515612d6c576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f5a45524f5f5441524745545f414d4f554e5400000000000000000000604482015290519081900360640190fd5b600780546000908110612d7b57fe5b6000918252602080832090910154600554604080517f18160ddd0000000000000000000000000000000000000000000000000000000081529051600160a060020a03938416985091909216936318160ddd93600480850194919392918390030190829087803b158015612ded57600080fd5b505af1158015612e01573d6000803e3d6000fd5b505050506040513d6020811015612e1757600080fd5b50519150612e24836115b6565b905080851080612e3d57508085148015612e3d57508189145b1515612e4557fe5b600554604080517fa24835d1000000000000000000000000000000000000000000000000000000008152306004820152602481018c90529051600160a060020a039092169163a24835d19160448082019260009290919082900301818387803b158015612eb157600080fd5b505af1158015612ec5573d6000803e3d6000fd5b505050600160a060020a038416600090815260086020526040902054612ef291508663ffffffff61302516565b600160a060020a03841660008181526008602052604090209190915573eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee1415612f6557604051600160a060020a0388169086156108fc029087906000818181858888f19350505050158015612f5f573d6000803e3d6000fd5b50612f70565b612f708388876125fe565b600554612f8a90600160a060020a0316848a8c8989613085565b5092979650505050505050565b612f9f613138565b602060405190810160405280600181525090506020818351602085016000875af1801515612fcc57600080fd5b50805115156126b3576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f5452414e534645525f4641494c454400000000000000000000000000604482015290519081900360640190fd5b60008183101561307f576040805160e560020a62461bcd02815260206004820152600d60248201527f4552525f554e444552464c4f5700000000000000000000000000000000000000604482015290519081900360640190fd5b50900390565b7f800000000000000000000000000000000000000000000000000000000000000081106130ae57fe5b60408051848152602081018490528082018390529051600160a060020a038087169288821692918a16917f276856b36cbc45526a0ba64f44611557a2a8b68662c5388e9fe6d72e86e1c8cb9181900360600190a4505050505050565b6040805160a08101825260008082526020820181905291810182905260608101829052608081019190915290565b60206040519081016040528060019060208202803883395091929150505600536f7672796e53776170436f6e766572746572557067726164657200000000004552525f4143434553535f44454e494544000000000000000000000000000000a165627a7a72305820c39f973cbc1cf0758a64156854331e6829d0c51a16e297aae88602be0c95bc9b0029a165627a7a723058204fe6432407d23d24446887a09bf05471a3bcb6c0f82442aa76ddf3fb876c185e0029", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x4B JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x11413958 DUP2 EQ PUSH2 0x50 JUMPI DUP1 PUSH4 0x3E8FF43F EQ PUSH2 0xB6 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x8D PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH4 0xFFFFFFFF PUSH1 0x44 CALLDATALOAD AND PUSH2 0xE2 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xC2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xCB PUSH2 0x1D5 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0xFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP1 DUP5 DUP5 DUP5 PUSH2 0xF0 PUSH2 0x1DA JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP4 DUP5 AND DUP2 MSTORE SWAP2 SWAP1 SWAP3 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH4 0xFFFFFFFF SWAP1 SWAP2 AND PUSH1 0x40 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 PUSH1 0x0 CREATE DUP1 ISZERO DUP1 ISZERO PUSH2 0x142 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH32 0xF2FDE38B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD SWAP2 SWAP3 POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND SWAP2 PUSH4 0xF2FDE38B SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1B4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1C8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP SWAP3 SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x33E2 DUP1 PUSH2 0x1EB DUP4 CODECOPY ADD SWAP1 JUMP STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x1 PUSH1 0x4 SSTORE PUSH1 0x9 DUP1 SLOAD PUSH1 0x1 PUSH1 0x60 PUSH1 0x2 EXP SUB NOT AND SWAP1 SSTORE CALLVALUE DUP1 ISZERO PUSH3 0x26 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH1 0x60 DUP1 PUSH3 0x33E2 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 SWAP1 DUP2 MSTORE DUP2 MLOAD PUSH1 0x20 DUP4 ADD MLOAD SWAP2 SWAP1 SWAP3 ADD MLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND CALLER OR SWAP1 SSTORE DUP3 DUP3 DUP3 DUP2 DUP1 PUSH3 0x71 DUP2 PUSH5 0x100000000 PUSH3 0x11B DUP2 MUL DIV JUMP JUMPDEST POP PUSH1 0x2 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT SWAP3 DUP4 AND DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x3 DUP1 SLOAD SWAP1 SWAP3 AND OR SWAP1 SSTORE DUP3 PUSH3 0xB1 DUP2 PUSH5 0x100000000 PUSH3 0x11B DUP2 MUL DIV JUMP JUMPDEST DUP2 PUSH3 0xC6 DUP2 PUSH5 0x100000000 PUSH3 0x196 DUP2 MUL DIV JUMP JUMPDEST POP POP PUSH1 0x5 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP5 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 OR SWAP1 SWAP3 SSTORE POP PUSH1 0x9 DUP1 SLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP3 AND PUSH5 0x100000000 MUL PUSH8 0xFFFFFFFF00000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE POP PUSH3 0x20F SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH3 0x193 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH3 0xF4240 PUSH4 0xFFFFFFFF DUP3 AND GT ISZERO PUSH3 0x193 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F434F4E56455253494F4E5F464545000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x31C3 DUP1 PUSH3 0x21F PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x20B JUMPI PUSH4 0xFFFFFFFF PUSH1 0xE0 PUSH1 0x2 EXP PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x24C7EC7 DUP2 EQ PUSH2 0x2AF JUMPI DUP1 PUSH4 0xC7D5CD8 EQ PUSH2 0x2C9 JUMPI DUP1 PUSH4 0xE53AAE9 EQ PUSH2 0x2F7 JUMPI DUP1 PUSH4 0x12C2ACA4 EQ PUSH2 0x34C JUMPI DUP1 PUSH4 0x19B64015 EQ PUSH2 0x375 JUMPI DUP1 PUSH4 0x1CFAB290 EQ PUSH2 0x3A9 JUMPI DUP1 PUSH4 0x1E1401F8 EQ PUSH2 0x3CA JUMPI DUP1 PUSH4 0x21E6B53D EQ PUSH2 0x40D JUMPI DUP1 PUSH4 0x22F3E2D4 EQ PUSH2 0x42E JUMPI DUP1 PUSH4 0x2FE8A6AD EQ PUSH2 0x443 JUMPI DUP1 PUSH4 0x38A5E016 EQ PUSH2 0x458 JUMPI DUP1 PUSH4 0x395900D4 EQ PUSH2 0x46D JUMPI DUP1 PUSH4 0x3E8FF43F EQ PUSH2 0x497 JUMPI DUP1 PUSH4 0x49D10B64 EQ PUSH2 0x4C3 JUMPI DUP1 PUSH4 0x4AF80F0E EQ PUSH2 0x4D8 JUMPI DUP1 PUSH4 0x54FD4D50 EQ PUSH2 0x4F9 JUMPI DUP1 PUSH4 0x579CD3CA EQ PUSH2 0x50E JUMPI DUP1 PUSH4 0x5E35359E EQ PUSH2 0x523 JUMPI DUP1 PUSH4 0x61CD756E EQ PUSH2 0x54D JUMPI DUP1 PUSH4 0x67B6D57C EQ PUSH2 0x562 JUMPI DUP1 PUSH4 0x690D8320 EQ PUSH2 0x583 JUMPI DUP1 PUSH4 0x6A49D2C4 EQ PUSH2 0x5A4 JUMPI DUP1 PUSH4 0x71F52BF3 EQ PUSH2 0x5CE JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x5E3 JUMPI DUP1 PUSH4 0x7B103999 EQ PUSH2 0x5F8 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x60D JUMPI DUP1 PUSH4 0x94C275AD EQ PUSH2 0x622 JUMPI DUP1 PUSH4 0x9B99A8E2 EQ PUSH2 0x637 JUMPI DUP1 PUSH4 0xAF94B8D8 EQ PUSH2 0x64C JUMPI DUP1 PUSH4 0xB4A176D3 EQ PUSH2 0x676 JUMPI DUP1 PUSH4 0xBF754558 EQ PUSH2 0x68B JUMPI DUP1 PUSH4 0xC45D3D92 EQ PUSH2 0x6A0 JUMPI DUP1 PUSH4 0xCDC91C69 EQ PUSH2 0x6B5 JUMPI DUP1 PUSH4 0xD031370B EQ PUSH2 0x6CA JUMPI DUP1 PUSH4 0xD260529C EQ PUSH2 0x6E2 JUMPI DUP1 PUSH4 0xD3FB73B4 EQ PUSH2 0x6F7 JUMPI DUP1 PUSH4 0xD4EE1D90 EQ PUSH2 0x70C JUMPI DUP1 PUSH4 0xD55EC697 EQ PUSH2 0x721 JUMPI DUP1 PUSH4 0xD66BD524 EQ PUSH2 0x736 JUMPI DUP1 PUSH4 0xD8959512 EQ PUSH2 0x757 JUMPI DUP1 PUSH4 0xDC8DE379 EQ PUSH2 0x78A JUMPI DUP1 PUSH4 0xE8DC12FF EQ PUSH2 0x7AB JUMPI DUP1 PUSH4 0xECBCA55D EQ PUSH2 0x7D5 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x7F3 JUMPI DUP1 PUSH4 0xFC0C546A EQ PUSH2 0x814 JUMPI JUMPDEST PUSH20 0xEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE PUSH1 0x0 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH32 0x353C2EB9E53A4A4A6D45D72082FF2E9DC829D1125618772A83EB0E7F86632C43 SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO PUSH2 0x2AD JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245534552564500000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2BB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2AD PUSH1 0x4 CALLDATALOAD ISZERO ISZERO PUSH2 0x829 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2D5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2DE PUSH2 0x871 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x303 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x318 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x87D JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP6 DUP7 MSTORE PUSH4 0xFFFFFFFF SWAP1 SWAP5 AND PUSH1 0x20 DUP7 ADD MSTORE SWAP2 ISZERO ISZERO DUP5 DUP5 ADD MSTORE ISZERO ISZERO PUSH1 0x60 DUP5 ADD MSTORE ISZERO ISZERO PUSH1 0x80 DUP4 ADD MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0xA0 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x358 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x361 PUSH2 0x918 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x381 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x38D PUSH1 0x4 CALLDATALOAD PUSH2 0x967 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3B5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2DE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x993 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3D6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3F4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x9C5 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x419 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2AD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x9E0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x43A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x361 PUSH2 0x9F4 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x44F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x361 PUSH2 0xA8E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x464 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2AD PUSH2 0xAAF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x479 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2AD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0xAC1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4A3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4AC PUSH2 0xB5C JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0xFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4CF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2AD PUSH2 0xB61 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4E4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2AD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0xDCE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x505 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4AC PUSH2 0xE10 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x51A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2DE PUSH2 0xE15 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x52F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2AD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0xE2D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x559 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x38D PUSH2 0xF41 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x56E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2AD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0xF50 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x58F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2AD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0xFF3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5B0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2AD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH4 0xFFFFFFFF PUSH1 0x24 CALLDATALOAD AND PUSH2 0x1104 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5DA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4AC PUSH2 0x1173 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5EF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2AD PUSH2 0x1182 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x604 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x38D PUSH2 0x1243 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x619 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x38D PUSH2 0x1252 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x62E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2DE PUSH2 0x1261 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x643 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4AC PUSH2 0x1275 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x658 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3F4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x127B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x682 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2AD PUSH2 0x1379 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x697 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x361 PUSH2 0x13B2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6AC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x38D PUSH2 0x13B7 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6C1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2AD PUSH2 0x13C6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6D6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x38D PUSH1 0x4 CALLDATALOAD PUSH2 0x141F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6EE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x361 PUSH2 0x1447 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x703 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x38D PUSH2 0x144C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x718 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x38D PUSH2 0x145B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x72D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2AD PUSH2 0x146A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x742 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x318 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x155F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x763 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x778 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x15A5 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x796 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x778 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x15B6 JUMP JUMPDEST PUSH2 0x778 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x44 CALLDATALOAD SWAP1 PUSH1 0x64 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x84 CALLDATALOAD AND PUSH2 0x15DF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7E1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2AD PUSH4 0xFFFFFFFF PUSH1 0x4 CALLDATALOAD AND PUSH2 0x1832 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7FF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2AD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x1927 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x820 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x38D PUSH2 0x19C4 JUMP JUMPDEST PUSH2 0x831 PUSH2 0x19D3 JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD SWAP2 ISZERO ISZERO PUSH21 0x10000000000000000000000000000000000000000 MUL PUSH21 0xFF0000000000000000000000000000000000000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH4 0xFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x88D PUSH2 0x310A JUMP JUMPDEST POP POP POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP2 MLOAD PUSH1 0xA0 DUP2 ADD DUP4 MSTORE DUP2 SLOAD DUP1 DUP3 MSTORE PUSH1 0x1 SWAP1 SWAP3 ADD SLOAD PUSH4 0xFFFFFFFF DUP2 AND SWAP5 DUP3 ADD DUP6 SWAP1 MSTORE PUSH1 0xFF PUSH5 0x100000000 DUP3 DIV DUP2 AND ISZERO ISZERO SWAP5 DUP4 ADD SWAP5 SWAP1 SWAP5 MSTORE PUSH6 0x10000000000 DUP2 DIV DUP5 AND ISZERO ISZERO PUSH1 0x60 DUP4 ADD MSTORE PUSH7 0x1000000000000 SWAP1 DIV SWAP1 SWAP3 AND ISZERO ISZERO PUSH1 0x80 SWAP1 SWAP3 ADD DUP3 SWAP1 MSTORE SWAP6 SWAP2 SWAP5 POP SWAP2 SWAP3 POP DUP3 SWAP2 SWAP1 JUMP JUMPDEST PUSH20 0xEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE PUSH1 0x0 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH32 0x353C2EB9E53A4A4A6D45D72082FF2E9DC829D1125618772A83EB0E7F86632C43 SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x7 DUP3 DUP2 SLOAD DUP2 LT ISZERO ISZERO PUSH2 0x978 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0x99F DUP2 PUSH2 0x1A23 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH4 0xFFFFFFFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x9D3 DUP6 DUP6 DUP6 PUSH2 0x127B JUMP JUMPDEST SWAP2 POP SWAP2 POP JUMPDEST SWAP4 POP SWAP4 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x9E8 PUSH2 0x19D3 JUMP JUMPDEST PUSH2 0x9F1 DUP2 PUSH2 0xF50 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 ADDRESS PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x8DA5CB5B PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xA53 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xA67 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xA7D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH2 0xAB7 PUSH2 0x19D3 JUMP JUMPDEST PUSH2 0xABF PUSH2 0x13C6 JUMP JUMPDEST JUMP JUMPDEST PUSH2 0xAC9 PUSH2 0x19D3 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x5E35359E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP6 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP3 ADD DUP6 SWAP1 MSTORE SWAP2 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP2 PUSH4 0x5E35359E SWAP2 PUSH1 0x64 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xB3F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xB53 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ DUP1 PUSH2 0xB96 JUMPI POP PUSH1 0x3 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST ISZERO ISZERO PUSH2 0xBDA JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3178 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0xC03 PUSH32 0x436F6E7472616374526567697374727900000000000000000000000000000000 PUSH2 0x1AA2 JUMP JUMPDEST PUSH1 0x2 SLOAD SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP4 AND SWAP2 AND EQ DUP1 ISZERO SWAP1 PUSH2 0xC2C JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO JUMPDEST ISZERO ISZERO PUSH2 0xC82 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245474953545259000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0xBB34534C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH32 0x436F6E7472616374526567697374727900000000000000000000000000000000 PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP2 PUSH4 0xBB34534C SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xD06 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xD1A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xD30 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ ISZERO PUSH2 0xD91 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245474953545259000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP5 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP3 DUP4 AND OR SWAP1 SWAP3 SSTORE SWAP1 SWAP2 AND SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0xDD6 PUSH2 0x19D3 JUMP JUMPDEST DUP1 PUSH2 0xDE0 DUP2 PUSH2 0x1B3A JUMP JUMPDEST POP PUSH1 0x6 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x20 DUP2 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH9 0x10000000000000000 SWAP1 DIV PUSH4 0xFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xE37 PUSH2 0x1B9B JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH2 0xE44 PUSH2 0x19D3 JUMP JUMPDEST PUSH2 0xE5B PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3158 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x1AA2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD SWAP1 SWAP2 POP PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 PUSH2 0xE98 JUMPI POP PUSH2 0xE96 PUSH2 0x9F4 JUMP JUMPDEST ISZERO JUMPDEST DUP1 PUSH2 0xEB0 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ JUMPDEST ISZERO ISZERO PUSH2 0xEF4 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3178 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0xEFF DUP5 DUP5 DUP5 PUSH2 0x1BF5 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0xF36 JUMPI PUSH2 0xF36 DUP5 PUSH2 0x1C26 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0x4 SSTORE POP POP JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH2 0xF58 PUSH2 0x19D3 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3158 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0xF70 DUP2 PUSH2 0x1D20 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xF2FDE38B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP2 PUSH4 0xF2FDE38B SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xFD7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xFEB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xFFD PUSH2 0x1B9B JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH2 0x100A PUSH2 0x19D3 JUMP JUMPDEST PUSH20 0xEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE PUSH2 0x1028 DUP2 PUSH2 0x1A23 JUMP JUMPDEST PUSH2 0x103F PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3158 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x1AA2 JUMP JUMPDEST SWAP2 POP PUSH2 0x1049 PUSH2 0x9F4 JUMP JUMPDEST ISZERO DUP1 PUSH2 0x1062 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 DUP2 AND SWAP2 AND EQ JUMPDEST ISZERO ISZERO PUSH2 0x10A6 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3178 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP1 ADDRESS BALANCE DUP1 ISZERO PUSH2 0x8FC MUL SWAP2 PUSH1 0x0 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x10DC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH2 0x10FA PUSH20 0xEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE PUSH2 0x1C26 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0x4 SSTORE POP JUMP JUMPDEST PUSH2 0x110C PUSH2 0x1275 JUMP JUMPDEST PUSH2 0xFFFF AND ISZERO PUSH2 0x1165 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F434F554E5400000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x116F DUP3 DUP3 PUSH2 0x1D76 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x117D PUSH2 0x1275 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x11D2 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3178 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND SWAP4 SWAP1 SWAP2 AND SWAP2 PUSH32 0x343765429AEA5A34B3FF6A3785A98A5ABB2597ACA87BFBB58632C173D585373A SWAP2 LOG3 PUSH1 0x1 DUP1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND OR SWAP1 SWAP2 SSTORE AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH5 0x100000000 SWAP1 DIV PUSH4 0xFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x7 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x0 SWAP1 DUP2 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 DUP2 AND SWAP2 AND EQ DUP1 ISZERO PUSH2 0x12C2 JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND JUMPDEST ISZERO PUSH2 0x12D9 JUMPI PUSH2 0x12D0 DUP4 PUSH2 0x1FC7 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x9D8 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 DUP2 AND SWAP2 AND EQ DUP1 ISZERO PUSH2 0x131B JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND JUMPDEST ISZERO PUSH2 0x1329 JUMPI PUSH2 0x12D0 DUP4 PUSH2 0x21D6 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F544F4B454E000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x1381 PUSH2 0x19D3 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x2 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x1 DUP2 JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH2 0x13CE PUSH2 0x19D3 JUMP JUMPDEST PUSH2 0x13D6 PUSH2 0x22E2 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x13ED PUSH2 0xB5C JUMP JUMPDEST PUSH2 0xFFFF AND PUSH32 0x6B08C2E2C9969E55A647A764DB9B554D64DC42F1A704DA11A6D5B129AD163F2C PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 JUMP JUMPDEST PUSH1 0x7 DUP1 SLOAD DUP3 SWAP1 DUP2 LT PUSH2 0x142D JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP1 POP DUP2 JUMP JUMPDEST PUSH1 0x1 SWAP1 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1474 PUSH2 0x19D3 JUMP JUMPDEST PUSH2 0x148B PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3158 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x1AA2 JUMP JUMPDEST PUSH1 0x5 SLOAD SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x14A5 PUSH2 0xB5C JUMP JUMPDEST PUSH2 0xFFFF AND PUSH32 0x6B08C2E2C9969E55A647A764DB9B554D64DC42F1A704DA11A6D5B129AD163F2C PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH2 0x14DE DUP2 PUSH2 0x1927 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x90F58C9600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 AND SWAP2 PUSH4 0x90F58C96 SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x153F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1553 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x9F1 PUSH2 0x1182 JUMP JUMPDEST PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD PUSH4 0xFFFFFFFF DUP2 AND SWAP1 PUSH1 0xFF PUSH5 0x100000000 DUP3 DIV DUP2 AND SWAP2 PUSH6 0x10000000000 DUP2 DIV DUP3 AND SWAP2 PUSH7 0x1000000000000 SWAP1 SWAP2 DIV AND DUP6 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x15B0 DUP3 PUSH2 0x15B6 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0x15C2 DUP2 PUSH2 0x1A23 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x15E9 PUSH2 0x1B9B JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH32 0x536F7672796E537761704E6574776F726B000000000000000000000000000000 PUSH2 0x1618 DUP2 PUSH2 0x1D20 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 DUP2 AND SWAP1 DUP8 AND EQ ISZERO PUSH2 0x167C JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F534F555243455F54415247455400000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND ISZERO DUP1 PUSH2 0x17BF JUMPI POP PUSH1 0x6 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x3AF32ABF00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP2 PUSH4 0x3AF32ABF SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x16F7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x170B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1721 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD DUP1 ISZERO PUSH2 0x17BF JUMPI POP PUSH1 0x6 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x3AF32ABF00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP2 PUSH4 0x3AF32ABF SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1792 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x17A6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x17BC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD JUMPDEST ISZERO ISZERO PUSH2 0x1815 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4E4F545F57484954454C495354454400000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x1822 DUP8 DUP8 DUP8 DUP8 DUP8 PUSH2 0x23C0 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x4 SSTORE SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x183A PUSH2 0x19D3 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH4 0xFFFFFFFF PUSH5 0x100000000 SWAP1 SWAP2 DIV DUP2 AND SWAP1 DUP3 AND GT ISZERO PUSH2 0x18A6 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F434F4E56455253494F4E5F464545000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH4 0xFFFFFFFF PUSH9 0x10000000000000000 SWAP1 SWAP4 DIV DUP4 AND DUP2 MSTORE SWAP2 DUP4 AND PUSH1 0x20 DUP4 ADD MSTORE DUP1 MLOAD PUSH32 0x81CD2FFB37DD237C0E4E2A3DE5265FCF9DEB43D3E7801E80DB9F1CCFBA7EE600 SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG1 PUSH1 0x9 DUP1 SLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP3 AND PUSH9 0x10000000000000000 MUL PUSH12 0xFFFFFFFF0000000000000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x192F PUSH2 0x19D3 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x1995 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F4F574E4552000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0xABF JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3178 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO PUSH2 0x9F1 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245534552564500000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xBB34534C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP2 PUSH4 0xBB34534C SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1B08 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1B1C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1B32 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ADDRESS EQ ISZERO PUSH2 0x9F1 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F414444524553535F49535F53454C4600000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x4 SLOAD PUSH1 0x1 EQ PUSH2 0xABF JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5245454E5452414E4359000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x1BFD PUSH2 0x19D3 JUMP JUMPDEST DUP3 PUSH2 0x1C07 DUP2 PUSH2 0x259E JUMP JUMPDEST DUP3 PUSH2 0x1C11 DUP2 PUSH2 0x259E JUMP JUMPDEST DUP4 PUSH2 0x1C1B DUP2 PUSH2 0x1B3A JUMP JUMPDEST PUSH2 0xFEB DUP7 DUP7 DUP7 PUSH2 0x25FE JUMP JUMPDEST DUP1 PUSH2 0x1C30 DUP2 PUSH2 0x1A23 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 AND PUSH20 0xEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE EQ ISZERO PUSH2 0x1C76 JUMPI PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 ADDRESS BALANCE SWAP1 SSTORE PUSH2 0x116F JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1CD7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1CEB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1D01 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE POP POP JUMP JUMPDEST PUSH2 0x1D29 DUP2 PUSH2 0x1AA2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x9F1 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3178 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1D80 PUSH2 0x19D3 JUMP JUMPDEST PUSH2 0x1D88 PUSH2 0x26B8 JUMP JUMPDEST DUP3 PUSH2 0x1D92 DUP2 PUSH2 0x259E JUMP JUMPDEST DUP4 PUSH2 0x1D9C DUP2 PUSH2 0x1B3A JUMP JUMPDEST DUP4 PUSH2 0x1DA6 DUP2 PUSH2 0x2715 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 DUP2 AND SWAP2 AND EQ DUP1 ISZERO SWAP1 PUSH2 0x1DEA JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x1E40 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245534552564500000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x9 SLOAD PUSH4 0xFFFFFFFF SWAP1 DUP2 AND PUSH3 0xF4240 SUB DUP2 AND SWAP1 DUP7 AND GT ISZERO PUSH2 0x1EAB JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F574549474854000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0xFFFF PUSH2 0x1EB6 PUSH2 0x1275 JUMP JUMPDEST PUSH2 0xFFFF AND LT PUSH2 0x1F0F JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F434F554E5400000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP2 DUP2 SSTORE PUSH1 0x1 SWAP1 DUP2 ADD DUP1 SLOAD PUSH7 0xFF000000000000 NOT PUSH4 0xFFFFFFFF DUP1 DUP9 AND PUSH4 0xFFFFFFFF NOT SWAP4 DUP5 AND OR SWAP2 SWAP1 SWAP2 AND PUSH7 0x1000000000000 OR SWAP1 SWAP3 SSTORE PUSH1 0x7 DUP1 SLOAD SWAP4 DUP5 ADD DUP2 SSTORE SWAP1 SWAP4 MSTORE PUSH32 0xA66CC928B5EDB82AF9BD49922954155AB7B0942694BEA4CE44661D9A8736C688 SWAP1 SWAP2 ADD DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 SWAP4 OR SWAP1 SWAP3 SSTORE PUSH1 0x9 DUP1 SLOAD DUP1 DUP5 AND SWAP1 SWAP5 ADD SWAP1 SWAP3 AND SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x1FD8 PUSH2 0x278A JUMP JUMPDEST PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x18160DDD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x202B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x203F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2055 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP4 POP DUP4 ISZERO ISZERO PUSH2 0x20B1 JUMPI PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH2 0x20A6 SWAP1 PUSH4 0xFFFFFFFF SWAP1 DUP2 AND SWAP1 PUSH2 0x209A SWAP1 DUP11 SWAP1 PUSH3 0xF4240 SWAP1 PUSH2 0x27E8 AND JUMP JUMPDEST SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x286C AND JUMP JUMPDEST SWAP6 POP PUSH1 0x0 SWAP5 POP PUSH2 0x21CD JUMP JUMPDEST PUSH1 0x7 DUP1 SLOAD PUSH1 0x0 SWAP1 DUP2 LT PUSH2 0x20C0 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP3 POP PUSH2 0x2100 PUSH32 0x536F7672796E53776170466F726D756C61000000000000000000000000000000 PUSH2 0x1AA2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xF3250FE2 DUP6 PUSH2 0x2118 DUP7 PUSH2 0x15B6 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 ADD SLOAD DUP2 MLOAD PUSH4 0xFFFFFFFF DUP9 DUP2 AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP3 MSTORE PUSH1 0x4 DUP3 ADD SWAP8 SWAP1 SWAP8 MSTORE PUSH1 0x24 DUP2 ADD SWAP6 SWAP1 SWAP6 MSTORE SWAP5 SWAP1 SWAP5 AND PUSH1 0x44 DUP5 ADD MSTORE PUSH1 0x64 DUP4 ADD DUP14 SWAP1 MSTORE SWAP3 MLOAD PUSH1 0x84 DUP1 DUP5 ADD SWAP5 SWAP4 SWAP2 SWAP3 SWAP2 DUP4 SWAP1 SUB ADD SWAP1 DUP3 SWAP1 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x218B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x219F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x21B5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 POP PUSH2 0x21C2 DUP3 PUSH2 0x28DA JUMP JUMPDEST SWAP1 POP DUP1 DUP3 SUB DUP2 SWAP6 POP SWAP6 POP JUMPDEST POP POP POP POP SWAP2 POP SWAP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x21E7 PUSH2 0x278A JUMP JUMPDEST PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x18160DDD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x223A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x224E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2264 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x7 DUP1 SLOAD SWAP2 SWAP6 POP SWAP1 PUSH1 0x0 SWAP1 DUP2 LT PUSH2 0x2279 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP3 POP DUP4 DUP8 EQ ISZERO PUSH2 0x22A1 JUMPI PUSH2 0x20A6 DUP4 PUSH2 0x15B6 JUMP JUMPDEST PUSH2 0x22CA PUSH32 0x536F7672796E53776170466F726D756C61000000000000000000000000000000 PUSH2 0x1AA2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x76CF0B56 DUP6 PUSH2 0x2118 DUP7 PUSH2 0x15B6 JUMP JUMPDEST PUSH2 0x22EA PUSH2 0x19D3 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x22F4 PUSH2 0x1275 JUMP JUMPDEST PUSH2 0xFFFF AND GT PUSH2 0x234D JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F434F554E5400000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x79BA5097 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x23A0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x23B4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0xABF PUSH2 0x290A JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x0 SWAP1 DUP2 SWAP1 DUP2 SWAP1 DUP2 SWAP1 DUP2 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP11 DUP2 AND SWAP2 AND EQ DUP1 ISZERO PUSH2 0x240D JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP11 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND JUMPDEST ISZERO PUSH2 0x2427 JUMPI DUP10 SWAP3 POP PUSH2 0x2420 DUP9 DUP9 DUP9 PUSH2 0x294C JUMP JUMPDEST SWAP4 POP PUSH2 0x247C JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 DUP2 AND SWAP2 AND EQ DUP1 ISZERO PUSH2 0x2469 JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP10 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND JUMPDEST ISZERO PUSH2 0x1329 JUMPI DUP9 SWAP3 POP PUSH2 0x2420 DUP9 DUP9 DUP9 PUSH2 0x2C12 JUMP JUMPDEST PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x18160DDD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x24CF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x24E3 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x24F9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP6 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH1 0x5 SLOAD SWAP4 SWAP6 POP PUSH4 0xFFFFFFFF AND SWAP4 POP SWAP2 AND PUSH32 0x77F29993CF2C084E726F7E802DA0719D6A0ADE3E204BADC7A3FFD57ECB768C24 PUSH2 0x2565 PUSH3 0xF4240 PUSH2 0x2559 DUP9 PUSH2 0x15B6 JUMP JUMPDEST SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x27E8 AND JUMP JUMPDEST PUSH2 0x2578 DUP7 PUSH4 0xFFFFFFFF DUP1 DUP9 AND SWAP1 PUSH2 0x27E8 AND JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB ADD SWAP1 LOG3 POP SWAP2 SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0x9F1 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x7472616E7366657228616464726573732C75696E743235362900000000000000 DUP2 MSTORE DUP2 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x19 ADD DUP2 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x64 SWAP1 SWAP3 ADD SWAP1 SWAP3 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE PUSH2 0x26B3 SWAP1 DUP5 SWAP1 PUSH2 0x2F97 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x26C0 PUSH2 0x9F4 JUMP JUMPDEST ISZERO PUSH2 0xABF JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xA PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F41435449564500000000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 PUSH4 0xFFFFFFFF AND GT DUP1 ISZERO PUSH2 0x2734 JUMPI POP PUSH3 0xF4240 PUSH4 0xFFFFFFFF DUP3 AND GT ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x9F1 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F574549474854000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x2792 PUSH2 0x9F4 JUMP JUMPDEST ISZERO ISZERO PUSH2 0xABF JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E4143544956450000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP4 ISZERO ISZERO PUSH2 0x27FB JUMPI PUSH1 0x0 SWAP2 POP PUSH2 0x2865 JUMP JUMPDEST POP DUP3 DUP3 MUL DUP3 DUP5 DUP3 DUP2 ISZERO ISZERO PUSH2 0x280B JUMPI INVALID JUMPDEST DIV EQ PUSH2 0x2861 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP1 SWAP2 POP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP4 GT PUSH2 0x28C6 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4449564944455F42595F5A45524F0000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP3 DUP5 DUP2 ISZERO ISZERO PUSH2 0x28D1 JUMPI INVALID JUMPDEST DIV SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x0 SWAP1 PUSH2 0x15B0 SWAP1 PUSH3 0xF4240 SWAP1 PUSH2 0x209A SWAP1 DUP6 SWAP1 PUSH9 0x10000000000000000 SWAP1 DIV PUSH4 0xFFFFFFFF SWAP1 DUP2 AND SWAP1 PUSH2 0x27E8 AND JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x116F JUMPI PUSH2 0x2944 PUSH1 0x7 DUP3 DUP2 SLOAD DUP2 LT ISZERO ISZERO PUSH2 0x292A JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x1C26 JUMP JUMPDEST PUSH1 0x1 ADD PUSH2 0x2910 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x295B DUP8 PUSH2 0x1FC7 JUMP JUMPDEST SWAP1 SWAP4 POP SWAP2 POP DUP3 ISZERO ISZERO PUSH2 0x29B7 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5A45524F5F5441524745545F414D4F554E5400000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x7 DUP1 SLOAD PUSH1 0x0 SWAP1 DUP2 LT PUSH2 0x29C6 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP1 POP PUSH20 0xEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE DUP2 EQ ISZERO PUSH2 0x2A55 JUMPI CALLVALUE DUP8 EQ PUSH2 0x2A50 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4554485F414D4F554E545F4D49534D41544348000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x2B5D JUMP JUMPDEST CALLVALUE ISZERO DUP1 ISZERO PUSH2 0x2B07 JUMPI POP DUP7 PUSH2 0x2B04 PUSH2 0x2A6B DUP4 PUSH2 0x15B6 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2ACC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2AE0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2AF6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x3025 AND JUMP JUMPDEST LT ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x2B5D JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F414D4F554E540000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x2B66 DUP2 PUSH2 0x1C26 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x867904B400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH1 0x24 DUP3 ADD DUP8 SWAP1 MSTORE SWAP2 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP2 PUSH4 0x867904B4 SWAP2 PUSH1 0x44 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2BD4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2BE8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x5 SLOAD PUSH2 0x2C07 SWAP3 POP DUP4 SWAP2 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP9 DUP11 DUP8 DUP8 PUSH2 0x3085 JUMP JUMPDEST POP SWAP1 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP3 DUP4 SWAP3 DUP4 SWAP3 DUP4 SWAP3 DUP4 SWAP3 DUP4 SWAP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2C84 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2C98 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2CAE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD DUP10 GT ISZERO PUSH2 0x2D07 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F414D4F554E540000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x2D10 DUP10 PUSH2 0x21D6 JUMP JUMPDEST SWAP1 SWAP6 POP SWAP4 POP DUP5 ISZERO ISZERO PUSH2 0x2D6C JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5A45524F5F5441524745545F414D4F554E5400000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x7 DUP1 SLOAD PUSH1 0x0 SWAP1 DUP2 LT PUSH2 0x2D7B JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 SWAP1 SWAP2 ADD SLOAD PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x18160DDD00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND SWAP9 POP SWAP2 SWAP1 SWAP3 AND SWAP4 PUSH4 0x18160DDD SWAP4 PUSH1 0x4 DUP1 DUP6 ADD SWAP5 SWAP2 SWAP4 SWAP3 SWAP2 DUP4 SWAP1 SUB ADD SWAP1 DUP3 SWAP1 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2DED JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2E01 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2E17 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 POP PUSH2 0x2E24 DUP4 PUSH2 0x15B6 JUMP JUMPDEST SWAP1 POP DUP1 DUP6 LT DUP1 PUSH2 0x2E3D JUMPI POP DUP1 DUP6 EQ DUP1 ISZERO PUSH2 0x2E3D JUMPI POP DUP2 DUP10 EQ JUMPDEST ISZERO ISZERO PUSH2 0x2E45 JUMPI INVALID JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xA24835D100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP13 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP2 PUSH4 0xA24835D1 SWAP2 PUSH1 0x44 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2EB1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2EC5 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x2EF2 SWAP2 POP DUP7 PUSH4 0xFFFFFFFF PUSH2 0x3025 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE PUSH20 0xEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE EQ ISZERO PUSH2 0x2F65 JUMPI PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 AND SWAP1 DUP7 ISZERO PUSH2 0x8FC MUL SWAP1 DUP8 SWAP1 PUSH1 0x0 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x2F5F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH2 0x2F70 JUMP JUMPDEST PUSH2 0x2F70 DUP4 DUP9 DUP8 PUSH2 0x25FE JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH2 0x2F8A SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP5 DUP11 DUP13 DUP10 DUP10 PUSH2 0x3085 JUMP JUMPDEST POP SWAP3 SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x2F9F PUSH2 0x3138 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE POP SWAP1 POP PUSH1 0x20 DUP2 DUP4 MLOAD PUSH1 0x20 DUP6 ADD PUSH1 0x0 DUP8 GAS CALL DUP1 ISZERO ISZERO PUSH2 0x2FCC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD ISZERO ISZERO PUSH2 0x26B3 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5452414E534645525F4641494C454400000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 DUP4 LT ISZERO PUSH2 0x307F JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F554E444552464C4F5700000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP SWAP1 SUB SWAP1 JUMP JUMPDEST PUSH32 0x8000000000000000000000000000000000000000000000000000000000000000 DUP2 LT PUSH2 0x30AE JUMPI INVALID JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP5 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 SWAP1 MSTORE DUP1 DUP3 ADD DUP4 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP8 AND SWAP3 DUP9 DUP3 AND SWAP3 SWAP2 DUP11 AND SWAP2 PUSH32 0x276856B36CBC45526A0BA64F44611557A2A8B68662C5388E9FE6D72E86E1C8CB SWAP2 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG4 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xA0 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE SWAP2 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x60 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 SWAP1 PUSH1 0x20 DUP3 MUL DUP1 CODESIZE DUP4 CODECOPY POP SWAP2 SWAP3 SWAP2 POP POP JUMP STOP MSTORE8 PUSH16 0x7672796E53776170436F6E7665727465 PUSH19 0x557067726164657200000000004552525F4143 NUMBER GASLIMIT MSTORE8 MSTORE8 0x5f DIFFICULTY GASLIMIT 0x4e 0x49 GASLIMIT DIFFICULTY STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 0xc3 SWAP16 SWAP8 EXTCODECOPY 0xbc SHR CREATE PUSH22 0x8A64156854331E6829D0C51A16E297AAE88602BE0C95 0xbc SWAP12 STOP 0x29 LOG1 PUSH6 0x627A7A723058 KECCAK256 0x4f 0xe6 NUMBER 0x24 SMOD 0xd2 RETURNDATASIZE 0x24 DIFFICULTY PUSH9 0x87A09BF05471A3BCB6 0xc0 0xf8 0x24 TIMESTAMP 0xaa PUSH23 0xDDF3FB876C185E00290000000000000000000000000000 ", - "sourceMap": "258:1024:22:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;950:329;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;950:329:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;458:81;;8:9:-1;5:2;;;30:1;27;20:12;5:2;458:81:22;;;;;;;;;;;;;;;;;;;;;;;950:329;1072:10;1095:20;1155:7;1165:9;1176:17;1118:76;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1118:76:22;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;1205:39:22;;;;;;1233:10;1205:39;;;;;;1095:99;;-1:-1:-1;1205:27:22;;;;;;:39;;;;;-1:-1:-1;;1205:39:22;;;;;;;;-1:-1:-1;1205:27:22;:39;;;5:2:-1;;;;30:1;27;20:12;5:2;1205:39:22;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;1262:9:22;;950:329;-1:-1:-1;;;;;;;950:329:22:o;458:81::-;504:6;458:81;:::o;258:1024::-;;;;;;;;;;:::o" - }, - "methodIdentifiers": { - "converterType()": "3e8ff43f", - "createConverter(address,address,uint32)": "11413958" - } - }, - "userdoc": { - "methods": {} - } - } - }, - "solidity/contracts/converter/types/liquidity-pool-v1/LiquidityPoolV1Converter.sol": { - "LiquidityPoolV1Converter": { - "abi": [ - { - "constant": false, - "inputs": [ - { - "name": "_onlyOwnerCanUpdateRegistry", - "type": "bool" - } - ], - "name": "restrictRegistryUpdate", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "reserveRatio", - "outputs": [ - { - "name": "", - "type": "uint32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_address", - "type": "address" - } - ], - "name": "connectors", - "outputs": [ - { - "name": "", - "type": "uint256" - }, - { - "name": "", - "type": "uint32" - }, - { - "name": "", - "type": "bool" - }, - { - "name": "", - "type": "bool" - }, - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "hasETHReserve", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_index", - "type": "uint256" - } - ], - "name": "connectorTokens", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_reserveToken", - "type": "address" - } - ], - "name": "reserveWeight", - "outputs": [ - { - "name": "", - "type": "uint32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_sourceToken", - "type": "address" - }, - { - "name": "_targetToken", - "type": "address" - }, - { - "name": "_amount", - "type": "uint256" - } - ], - "name": "getReturn", - "outputs": [ - { - "name": "", - "type": "uint256" - }, - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_newOwner", - "type": "address" - } - ], - "name": "transferTokenOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "isActive", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "onlyOwnerCanUpdateRegistry", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "acceptTokenOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_token", - "type": "address" - }, - { - "name": "_to", - "type": "address" - }, - { - "name": "_amount", - "type": "uint256" - } - ], - "name": "withdrawFromAnchor", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "converterType", - "outputs": [ - { - "name": "", - "type": "uint16" - } - ], - "payable": false, - "stateMutability": "pure", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_amount", - "type": "uint256" - } - ], - "name": "liquidate", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "updateRegistry", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_whitelist", - "type": "address" - } - ], - "name": "setConversionWhitelist", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "version", - "outputs": [ - { - "name": "", - "type": "uint16" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "conversionFee", - "outputs": [ - { - "name": "", - "type": "uint32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_token", - "type": "address" - }, - { - "name": "_to", - "type": "address" - }, - { - "name": "_amount", - "type": "uint256" - } - ], - "name": "withdrawTokens", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "prevRegistry", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_newOwner", - "type": "address" - } - ], - "name": "transferAnchorOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_to", - "type": "address" - } - ], - "name": "withdrawETH", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_token", - "type": "address" - }, - { - "name": "_weight", - "type": "uint32" - } - ], - "name": "addReserve", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_x", - "type": "uint256" - } - ], - "name": "decimalLength", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "pure", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "connectorTokenCount", - "outputs": [ - { - "name": "", - "type": "uint16" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "acceptOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "registry", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_reserveTokens", - "type": "address[]" - }, - { - "name": "_reserveAmounts", - "type": "uint256[]" - }, - { - "name": "_minReturn", - "type": "uint256" - } - ], - "name": "addLiquidity", - "outputs": [], - "payable": true, - "stateMutability": "payable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "owner", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "maxConversionFee", - "outputs": [ - { - "name": "", - "type": "uint32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "reserveTokenCount", - "outputs": [ - { - "name": "", - "type": "uint16" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_values", - "type": "uint256[]" - } - ], - "name": "geometricMean", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "pure", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_sourceToken", - "type": "address" - }, - { - "name": "_targetToken", - "type": "address" - }, - { - "name": "_amount", - "type": "uint256" - } - ], - "name": "targetAmountAndFee", - "outputs": [ - { - "name": "", - "type": "uint256" - }, - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_amount", - "type": "uint256" - }, - { - "name": "_reserveTokens", - "type": "address[]" - }, - { - "name": "_reserveMinReturnAmounts", - "type": "uint256[]" - } - ], - "name": "removeLiquidity", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "restoreRegistry", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_n", - "type": "uint256" - }, - { - "name": "_d", - "type": "uint256" - } - ], - "name": "roundDiv", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "pure", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "conversionsEnabled", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "conversionWhitelist", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_amount", - "type": "uint256" - } - ], - "name": "fund", - "outputs": [], - "payable": true, - "stateMutability": "payable", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "acceptAnchorOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "", - "type": "uint256" - } - ], - "name": "reserveTokens", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "isV28OrHigher", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "pure", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "anchor", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "newOwner", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "upgrade", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "", - "type": "address" - } - ], - "name": "reserves", - "outputs": [ - { - "name": "balance", - "type": "uint256" - }, - { - "name": "weight", - "type": "uint32" - }, - { - "name": "deprecated1", - "type": "bool" - }, - { - "name": "deprecated2", - "type": "bool" - }, - { - "name": "isSet", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_connectorToken", - "type": "address" - } - ], - "name": "getConnectorBalance", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_reserveToken", - "type": "address" - } - ], - "name": "reserveBalance", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_sourceToken", - "type": "address" - }, - { - "name": "_targetToken", - "type": "address" - }, - { - "name": "_amount", - "type": "uint256" - }, - { - "name": "_trader", - "type": "address" - }, - { - "name": "_beneficiary", - "type": "address" - } - ], - "name": "convert", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": true, - "stateMutability": "payable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_conversionFee", - "type": "uint32" - } - ], - "name": "setConversionFee", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "token", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "name": "_token", - "type": "address" - }, - { - "name": "_registry", - "type": "address" - }, - { - "name": "_maxConversionFee", - "type": "uint32" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "payable": true, - "stateMutability": "payable", - "type": "fallback" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "_connectorToken", - "type": "address" - }, - { - "indexed": false, - "name": "_tokenSupply", - "type": "uint256" - }, - { - "indexed": false, - "name": "_connectorBalance", - "type": "uint256" - }, - { - "indexed": false, - "name": "_connectorWeight", - "type": "uint32" - } - ], - "name": "PriceDataUpdate", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "_provider", - "type": "address" - }, - { - "indexed": true, - "name": "_reserveToken", - "type": "address" - }, - { - "indexed": false, - "name": "_amount", - "type": "uint256" - }, - { - "indexed": false, - "name": "_newBalance", - "type": "uint256" - }, - { - "indexed": false, - "name": "_newSupply", - "type": "uint256" - } - ], - "name": "LiquidityAdded", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "_provider", - "type": "address" - }, - { - "indexed": true, - "name": "_reserveToken", - "type": "address" - }, - { - "indexed": false, - "name": "_amount", - "type": "uint256" - }, - { - "indexed": false, - "name": "_newBalance", - "type": "uint256" - }, - { - "indexed": false, - "name": "_newSupply", - "type": "uint256" - } - ], - "name": "LiquidityRemoved", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "_type", - "type": "uint16" - }, - { - "indexed": true, - "name": "_anchor", - "type": "address" - }, - { - "indexed": true, - "name": "_activated", - "type": "bool" - } - ], - "name": "Activation", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "_fromToken", - "type": "address" - }, - { - "indexed": true, - "name": "_toToken", - "type": "address" - }, - { - "indexed": true, - "name": "_trader", - "type": "address" - }, - { - "indexed": false, - "name": "_amount", - "type": "uint256" - }, - { - "indexed": false, - "name": "_return", - "type": "uint256" - }, - { - "indexed": false, - "name": "_conversionFee", - "type": "int256" - } - ], - "name": "Conversion", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "_token1", - "type": "address" - }, - { - "indexed": true, - "name": "_token2", - "type": "address" - }, - { - "indexed": false, - "name": "_rateN", - "type": "uint256" - }, - { - "indexed": false, - "name": "_rateD", - "type": "uint256" - } - ], - "name": "TokenRateUpdate", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "_prevFee", - "type": "uint32" - }, - { - "indexed": false, - "name": "_newFee", - "type": "uint32" - } - ], - "name": "ConversionFeeUpdate", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "_prevOwner", - "type": "address" - }, - { - "indexed": true, - "name": "_newOwner", - "type": "address" - } - ], - "name": "OwnerUpdate", - "type": "event" - } - ], - "devdoc": { - "methods": { - "acceptAnchorOwnership()": { - "details": "accepts ownership of the anchor after an ownership transfer\r also activates the converter\r can only be called by the contract owner\r note that prior to version 28, you should use 'acceptTokenOwnership' instead\r" - }, - "acceptOwnership()": { - "details": "used by a new owner to accept an ownership transfer" - }, - "acceptTokenOwnership()": { - "details": "deprecated, backward compatibility" - }, - "addLiquidity(address[],uint256[],uint256)": { - "details": "increases the pool's liquidity and mints new shares in the pool to the caller\r note that prior to version 28, you should use 'fund' instead\r ", - "params": { - "_minReturn": "token minimum return-amount\r", - "_reserveAmounts": "amount of each reserve token\r", - "_reserveTokens": "address of each reserve token\r" - } - }, - "addReserve(address,uint32)": { - "details": "defines a new reserve token for the converter can only be called by the owner while the converter is inactive", - "params": { - "_token": "address of the reserve token", - "_weight": "reserve weight, represented in ppm, 1-1000000" - } - }, - "connectorTokenCount()": { - "details": "deprecated, backward compatibility" - }, - "connectorTokens(uint256)": { - "details": "deprecated, backward compatibility" - }, - "connectors(address)": { - "details": "deprecated, backward compatibility" - }, - "convert(address,address,uint256,address,address)": { - "details": "converts a specific amount of source tokens to target tokens can only be called by the SovrynSwap network contract", - "params": { - "_amount": "amount of tokens to convert (in units of the source token)", - "_beneficiary": "wallet to receive the conversion result", - "_sourceToken": "source ERC20 token", - "_targetToken": "target ERC20 token", - "_trader": "address of the caller who executed the conversion" - }, - "return": "amount of tokens received (in units of the target token)" - }, - "converterType()": { - "details": "returns the converter type\r ", - "return": "see the converter types in the the main contract doc\r" - }, - "decimalLength(uint256)": { - "details": "calculates the number of decimal digits in a given value\r ", - "params": { - "_x": "value (assumed positive)\r" - }, - "return": "the number of decimal digits in the given value\r" - }, - "fund(uint256)": { - "details": "increases the pool's liquidity and mints new shares in the pool to the caller\r for example, if the caller increases the supply by 10%,\r then it will cost an amount equal to 10% of each reserve token balance\r note that starting from version 28, you should use 'addLiquidity' instead\r ", - "params": { - "_amount": "amount to increase the supply by (in the pool token)\r" - } - }, - "geometricMean(uint256[])": { - "details": "calculates the average number of decimal digits in a given list of values\r ", - "params": { - "_values": "list of values (each of which assumed positive)\r" - }, - "return": "the average number of decimal digits in the given list of values\r" - }, - "getConnectorBalance(address)": { - "details": "deprecated, backward compatibility" - }, - "getReturn(address,address,uint256)": { - "details": "deprecated, backward compatibility" - }, - "hasETHReserve()": { - "details": "checks whether or not the converter has an ETH reserve", - "return": "true if the converter has an ETH reserve, false otherwise" - }, - "isActive()": { - "details": "returns true if the converter is active, false otherwise", - "return": "true if the converter is active, false otherwise" - }, - "isV28OrHigher()": { - "details": "checks whether or not the converter version is 28 or higher", - "return": "true, since the converter version is 28 or higher" - }, - "liquidate(uint256)": { - "details": "decreases the pool's liquidity and burns the caller's shares in the pool\r for example, if the holder sells 10% of the supply,\r then they will receive 10% of each reserve token balance in return\r note that starting from version 28, you should use 'removeLiquidity' instead\r ", - "params": { - "_amount": "amount to liquidate (in the pool token)\r" - } - }, - "removeLiquidity(uint256,address[],uint256[])": { - "details": "decreases the pool's liquidity and burns the caller's shares in the pool\r note that prior to version 28, you should use 'liquidate' instead\r ", - "params": { - "_amount": "token amount\r", - "_reserveMinReturnAmounts": "minimum return-amount of each reserve token\r", - "_reserveTokens": "address of each reserve token\r" - } - }, - "reserveBalance(address)": { - "details": "returns the reserve's balance note that prior to version 17, you should use 'getConnectorBalance' instead", - "params": { - "_reserveToken": "reserve token contract address" - }, - "return": "reserve balance" - }, - "reserveTokenCount()": { - "details": "returns the number of reserve tokens defined note that prior to version 17, you should use 'connectorTokenCount' instead", - "return": "number of reserve tokens" - }, - "reserveWeight(address)": { - "details": "returns the reserve's weight added in version 28", - "params": { - "_reserveToken": "reserve token contract address" - }, - "return": "reserve weight" - }, - "restoreRegistry()": { - "details": "restores the previous contract-registry" - }, - "restrictRegistryUpdate(bool)": { - "details": "restricts the permission to update the contract-registry", - "params": { - "_onlyOwnerCanUpdateRegistry": "indicates whether or not permission is restricted to owner only" - } - }, - "roundDiv(uint256,uint256)": { - "details": "calculates the nearest integer to a given quotient\r ", - "params": { - "_d": "quotient denominator\r", - "_n": "quotient numerator\r" - }, - "return": "the nearest integer to the given quotient\r" - }, - "setConversionFee(uint32)": { - "details": "updates the current conversion fee can only be called by the contract owner", - "params": { - "_conversionFee": "new conversion fee, represented in ppm" - } - }, - "setConversionWhitelist(address)": { - "details": "allows the owner to update & enable the conversion whitelist contract address when set, only addresses that are whitelisted are actually allowed to use the converter note that the whitelist check is actually done by the SovrynSwapNetwork contract", - "params": { - "_whitelist": "address of a whitelist contract" - } - }, - "targetAmountAndFee(address,address,uint256)": { - "details": "returns the expected target amount of converting one reserve to another along with the fee\r ", - "params": { - "_amount": "amount of tokens received from the user\r ", - "_sourceToken": "contract address of the source reserve token\r", - "_targetToken": "contract address of the target reserve token\r" - }, - "return": "expected target amount\rexpected fee\r" - }, - "token()": { - "details": "deprecated since version 28, backward compatibility - use only for earlier versions" - }, - "transferAnchorOwnership(address)": { - "details": "transfers the anchor ownership the new owner needs to accept the transfer can only be called by the converter upgrder while the upgrader is the owner note that prior to version 28, you should use 'transferAnchorOwnership' instead", - "params": { - "_newOwner": "new token owner" - } - }, - "transferOwnership(address)": { - "details": "allows transferring the contract ownership the new owner still needs to accept the transfer can only be called by the contract owner", - "params": { - "_newOwner": "new contract owner" - } - }, - "transferTokenOwnership(address)": { - "details": "deprecated, backward compatibility" - }, - "updateRegistry()": { - "details": "updates to the new contract-registry" - }, - "upgrade()": { - "details": "upgrades the converter to the latest version can only be called by the owner note that the owner needs to call acceptOwnership on the new converter after the upgrade" - }, - "withdrawETH(address)": { - "details": "withdraws ether can only be called by the owner if the converter is inactive or by upgrader contract can only be called after the upgrader contract has accepted the ownership of this contract can only be called if the converter has an ETH reserve", - "params": { - "_to": "address to send the ETH to" - } - }, - "withdrawFromAnchor(address,address,uint256)": { - "details": "withdraws tokens held by the anchor and sends them to an account can only be called by the owner", - "params": { - "_amount": "amount to withdraw", - "_to": "account to receive the new amount", - "_token": "ERC20 token contract address" - } - }, - "withdrawTokens(address,address,uint256)": { - "details": "withdraws tokens held by the converter and sends them to an account can only be called by the owner note that reserve tokens can only be withdrawn by the owner while the converter is inactive unless the owner is the converter upgrader contract", - "params": { - "_amount": "amount to withdraw", - "_to": "account to receive the new amount", - "_token": "ERC20 token contract address" - } - } - } - }, - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "608060405260016004557fc0829421c1d260bd3cb3e0f06cfe2d52db2ce3150000000000000000000000006009553480156200003a57600080fd5b5060405160608062004b6583398101604090815281516020830151919092015160008054600160a060020a031916331790558282828282828180620000888164010000000062000135810204565b5060028054600160a060020a03909216600160a060020a031992831681179091556003805490921617905582620000c88164010000000062000135810204565b81620000dd81640100000000620001b0810204565b505060058054600160a060020a03909416600160a060020a031990941693909317909255506009805463ffffffff9092166401000000000267ffffffff00000000199092169190911790555062000229945050505050565b600160a060020a0381161515620001ad57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b50565b620f424063ffffffff82161115620001ad57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f4552525f494e56414c49445f434f4e56455253494f4e5f464545000000000000604482015290519081900360640190fd5b61492c80620002396000396000f3006080604052600436106102585763ffffffff60e060020a600035041663024c7ec781146102e45780630c7d5cd8146102fe5780630e53aae91461032c57806312c2aca41461038157806319b64015146103aa5780631cfab290146103de5780631e1401f8146103ff57806321e6b53d1461044257806322f3e2d4146104635780632fe8a6ad1461047857806338a5e0161461048d578063395900d4146104a25780633e8ff43f146104cc578063415f1240146104f857806349d10b64146105105780634af80f0e1461052557806354fd4d5014610546578063579cd3ca1461055b5780635e35359e1461057057806361cd756e1461059a57806367b6d57c146105af578063690d8320146105d05780636a49d2c4146105f15780636aa5332c1461061b57806371f52bf31461064557806379ba50971461065a5780637b1039991461066f5780637d8916bd146106845780638da5cb5b1461070757806394c275ad1461071c5780639b99a8e214610731578063a60e772414610746578063af94b8d81461079b578063b127c0a5146107c5578063b4a176d314610858578063bbb7e5d81461086d578063bf75455814610888578063c45d3d921461089d578063ca1d209d146108b2578063cdc91c69146108bd578063d031370b146108d2578063d260529c146108ea578063d3fb73b4146108ff578063d4ee1d9014610914578063d55ec69714610929578063d66bd5241461093e578063d89595121461095f578063dc8de37914610980578063e8dc12ff146109a1578063ecbca55d146109cb578063f2fde38b146109e9578063fc0c546a14610a0a575b6000805160206148a183398151915260005260086020527f353c2eb9e53a4a4a6d45d72082ff2e9dc829d1125618772a83eb0e7f86632c43546601000000000000900460ff1615156102e2576040805160e560020a62461bcd0281526020600482015260136024820152600080516020614841833981519152604482015290519081900360640190fd5b005b3480156102f057600080fd5b506102e26004351515610a1f565b34801561030a57600080fd5b50610313610a67565b6040805163ffffffff9092168252519081900360200190f35b34801561033857600080fd5b5061034d600160a060020a0360043516610a73565b6040805195865263ffffffff9094166020860152911515848401521515606084015215156080830152519081900360a00190f35b34801561038d57600080fd5b50610396610b0e565b604080519115158252519081900360200190f35b3480156103b657600080fd5b506103c2600435610b57565b60408051600160a060020a039092168252519081900360200190f35b3480156103ea57600080fd5b50610313600160a060020a0360043516610b83565b34801561040b57600080fd5b50610429600160a060020a0360043581169060243516604435610bb5565b6040805192835260208301919091528051918290030190f35b34801561044e57600080fd5b506102e2600160a060020a0360043516610bcf565b34801561046f57600080fd5b50610396610be3565b34801561048457600080fd5b50610396610c7d565b34801561049957600080fd5b506102e2610c9e565b3480156104ae57600080fd5b506102e2600160a060020a0360043581169060243516604435610cb0565b3480156104d857600080fd5b506104e1610d4b565b6040805161ffff9092168252519081900360200190f35b34801561050457600080fd5b506102e2600435610d50565b34801561051c57600080fd5b506102e2610f94565b34801561053157600080fd5b506102e2600160a060020a0360043516611201565b34801561055257600080fd5b506104e1611243565b34801561056757600080fd5b50610313611248565b34801561057c57600080fd5b506102e2600160a060020a0360043581169060243516604435611260565b3480156105a657600080fd5b506103c2611369565b3480156105bb57600080fd5b506102e2600160a060020a0360043516611378565b3480156105dc57600080fd5b506102e2600160a060020a036004351661141b565b3480156105fd57600080fd5b506102e2600160a060020a036004351663ffffffff60243516611520565b34801561062757600080fd5b5061063360043561175f565b60408051918252519081900360200190f35b34801561065157600080fd5b506104e1611784565b34801561066657600080fd5b506102e2611793565b34801561067b57600080fd5b506103c2611854565b604080516020600480358082013583810280860185019096528085526102e295369593946024949385019291829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a99890198929750908201955093508392508501908490808284375094975050933594506118639350505050565b34801561071357600080fd5b506103c2611b62565b34801561072857600080fd5b50610313611b71565b34801561073d57600080fd5b506104e1611b85565b34801561075257600080fd5b506040805160206004803580820135838102808601850190965280855261063395369593946024949385019291829185019084908082843750949750611b8b9650505050505050565b3480156107a757600080fd5b50610429600160a060020a0360043581169060243516604435611be1565b3480156107d157600080fd5b506040805160206004602480358281013584810280870186019097528086526102e296843596369660449591949091019291829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750949750611d869650505050505050565b34801561086457600080fd5b506102e2611eba565b34801561087957600080fd5b50610633600435602435611ef3565b34801561089457600080fd5b50610396611f0d565b3480156108a957600080fd5b506103c2611f12565b6102e2600435611f21565b3480156108c957600080fd5b506102e261242e565b3480156108de57600080fd5b506103c2600435612487565b3480156108f657600080fd5b50610396610d4b565b34801561090b57600080fd5b506103c26124af565b34801561092057600080fd5b506103c26124be565b34801561093557600080fd5b506102e26124cd565b34801561094a57600080fd5b5061034d600160a060020a03600435166125c2565b34801561096b57600080fd5b50610633600160a060020a0360043516612608565b34801561098c57600080fd5b50610633600160a060020a0360043516612619565b610633600160a060020a036004358116906024358116906044359060643581169060843516612642565b3480156109d757600080fd5b506102e263ffffffff60043516612895565b3480156109f557600080fd5b506102e2600160a060020a036004351661298a565b348015610a1657600080fd5b506103c2612a27565b610a27612a36565b60038054911515740100000000000000000000000000000000000000000274ff000000000000000000000000000000000000000019909216919091179055565b60095463ffffffff1681565b6000806000806000610a836147f3565b50505050600160a060020a03929092166000908152600860209081526040808320815160a081018352815480825260019092015463ffffffff811694820185905260ff64010000000082048116151594830194909452650100000000008104841615156060830152660100000000000090049092161515608090920182905295919450919250829190565b6000805160206148a183398151915260005260086020527f353c2eb9e53a4a4a6d45d72082ff2e9dc829d1125618772a83eb0e7f86632c43546601000000000000900460ff1690565b6000600782815481101515610b6857fe5b600091825260209091200154600160a060020a031692915050565b600081610b8f81612a86565b5050600160a060020a031660009081526008602052604090206001015463ffffffff1690565b600080610bc3858585611be1565b91509150935093915050565b610bd7612a36565b610be081611378565b50565b600030600160a060020a0316600560009054906101000a9004600160a060020a0316600160a060020a0316638da5cb5b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610c4257600080fd5b505af1158015610c56573d6000803e3d6000fd5b505050506040513d6020811015610c6c57600080fd5b5051600160a060020a031614905090565b60035474010000000000000000000000000000000000000000900460ff1681565b610ca6612a36565b610cae61242e565b565b610cb8612a36565b600554604080517f5e35359e000000000000000000000000000000000000000000000000000000008152600160a060020a03868116600483015285811660248301526044820185905291519190921691635e35359e91606480830192600092919082900301818387803b158015610d2e57600080fd5b505af1158015610d42573d6000803e3d6000fd5b50505050505050565b600190565b600060606000610d5e612af3565b600260045560008411610dbb576040805160e560020a62461bcd02815260206004820152600f60248201527f4552525f5a45524f5f414d4f554e540000000000000000000000000000000000604482015290519081900360640190fd5b600560009054906101000a9004600160a060020a0316600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610e0e57600080fd5b505af1158015610e22573d6000803e3d6000fd5b505050506040513d6020811015610e3857600080fd5b5051600554604080517fa24835d1000000000000000000000000000000000000000000000000000000008152336004820152602481018890529051929550600160a060020a039091169163a24835d19160448082019260009290919082900301818387803b158015610ea957600080fd5b505af1158015610ebd573d6000803e3d6000fd5b50505050600780549050604051908082528060200260200182016040528015610ef0578160200160208202803883390190505b509150600090505b8151811015610f235760018282815181101515610f1157fe5b60209081029091010152600101610ef8565b610f896007805480602002602001604051908101604052809291908181526020018280548015610f7c57602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311610f5e575b5050505050838587612b4d565b505060016004555050565b60008054600160a060020a0316331480610fc9575060035474010000000000000000000000000000000000000000900460ff16155b151561100d576040805160e560020a62461bcd02815260206004820152601160248201526000805160206148e1833981519152604482015290519081900360640190fd5b6110367f436f6e7472616374526567697374727900000000000000000000000000000000612e12565b600254909150600160a060020a0380831691161480159061105f5750600160a060020a03811615155b15156110b5576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e56414c49445f5245474953545259000000000000000000000000604482015290519081900360640190fd5b604080517fbb34534c0000000000000000000000000000000000000000000000000000000081527f436f6e747261637452656769737472790000000000000000000000000000000060048201529051600091600160a060020a0384169163bb34534c9160248082019260209290919082900301818787803b15801561113957600080fd5b505af115801561114d573d6000803e3d6000fd5b505050506040513d602081101561116357600080fd5b5051600160a060020a031614156111c4576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e56414c49445f5245474953545259000000000000000000000000604482015290519081900360640190fd5b6002805460038054600160a060020a0380841673ffffffffffffffffffffffffffffffffffffffff19928316179092559091169216919091179055565b611209612a36565b8061121381612eaa565b506006805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b602081565b60095468010000000000000000900463ffffffff1681565b600061126a612af3565b6002600455611277612a36565b61128e600080516020614881833981519152612e12565b600160a060020a0385166000908152600860205260409020600101549091506601000000000000900460ff1615806112cb57506112c9610be3565b155b806112e35750600054600160a060020a038281169116145b1515611327576040805160e560020a62461bcd02815260206004820152601160248201526000805160206148e1833981519152604482015290519081900360640190fd5b611332848484612f0b565b600160a060020a0384166000908152600860205260409020600101546601000000000000900460ff1615610f8957610f8984612f3c565b600354600160a060020a031681565b611380612a36565b60008051602061488183398151915261139881613031565b600554604080517ff2fde38b000000000000000000000000000000000000000000000000000000008152600160a060020a0385811660048301529151919092169163f2fde38b91602480830192600092919082900301818387803b1580156113ff57600080fd5b505af1158015611413573d6000803e3d6000fd5b505050505050565b6000611425612af3565b6002600455611432612a36565b6000805160206148a183398151915261144a81612a86565b611461600080516020614881833981519152612e12565b915061146b610be3565b15806114845750600054600160a060020a038381169116145b15156114c8576040805160e560020a62461bcd02815260206004820152601160248201526000805160206148e1833981519152604482015290519081900360640190fd5b604051600160a060020a03841690303180156108fc02916000818181858888f193505050501580156114fe573d6000803e3d6000fd5b506115166000805160206148a1833981519152612f3c565b5050600160045550565b600061152a612a36565b611532613087565b8261153c816130e4565b8361154681612eaa565b8361155081613144565b600554600160a060020a038781169116148015906115945750600160a060020a0386166000908152600860205260409020600101546601000000000000900460ff16155b15156115d8576040805160e560020a62461bcd0281526020600482015260136024820152600080516020614841833981519152604482015290519081900360640190fd5b60095463ffffffff908116620f42400381169086161115611643576040805160e560020a62461bcd02815260206004820152601a60248201527f4552525f494e56414c49445f524553455256455f574549474854000000000000604482015290519081900360640190fd5b61ffff61164e611b85565b61ffff16106116a7576040805160e560020a62461bcd02815260206004820152601960248201527f4552525f494e56414c49445f524553455256455f434f554e5400000000000000604482015290519081900360640190fd5b505050600160a060020a0390921660008181526008602052604081208181556001908101805466ff0000000000001963ffffffff80881663ffffffff1993841617919091166601000000000000179092556007805493840181559093527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688909101805473ffffffffffffffffffffffffffffffffffffffff191690931790925560098054808416909401909216921691909117905550565b600080825b600081111561177d5760019190910190600a9004611764565b5092915050565b600061178e611b85565b905090565b600154600160a060020a031633146117e3576040805160e560020a62461bcd02815260206004820152601160248201526000805160206148e1833981519152604482015290519081900360640190fd5b60015460008054604051600160a060020a0393841693909116917f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91a3600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b600254600160a060020a031681565b6000806000611870612af3565b600260045561187d6131b9565b611888868686613217565b600092505b85518310156119465785516000805160206148a1833981519152908790859081106118b457fe5b90602001906020020151600160a060020a0316141561193b573485848151811015156118dc57fe5b602090810290910101511461193b576040805160e560020a62461bcd02815260206004820152601760248201527f4552525f4554485f414d4f554e545f4d49534d41544348000000000000000000604482015290519081900360640190fd5b60019092019161188d565b60003411156119eb576000805160206148a183398151915260005260086020527f353c2eb9e53a4a4a6d45d72082ff2e9dc829d1125618772a83eb0e7f86632c43546601000000000000900460ff1615156119eb576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f4e4f5f4554485f524553455256450000000000000000000000000000604482015290519081900360640190fd5b600560009054906101000a9004600160a060020a0316600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015611a3e57600080fd5b505af1158015611a52573d6000803e3d6000fd5b505050506040513d6020811015611a6857600080fd5b50519150611a778686846134d3565b905083811015611ad1576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f52455455524e5f544f4f5f4c4f570000000000000000000000000000604482015290519081900360640190fd5b600554604080517f867904b4000000000000000000000000000000000000000000000000000000008152336004820152602481018490529051600160a060020a039092169163867904b49160448082019260009290919082900301818387803b158015611b3d57600080fd5b505af1158015611b51573d6000803e3d6000fd5b505060016004555050505050505050565b600054600160a060020a031681565b600954640100000000900463ffffffff1681565b60075490565b80516000908190815b81811015611bc857611bbc8582815181101515611bad57fe5b9060200190602002015161175f565b90920191600101611b94565b6001611bd48484611ef3565b03600a0a95945050505050565b600080600080611bef6131b9565b86611bf981612a86565b86611c0381612a86565b600160a060020a038981169089161415611c67576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f53414d455f534f555243455f54415247455400000000000000000000604482015290519081900360640190fd5b611c7e6000805160206148c1833981519152612e12565b600160a060020a03166394491fab611c958b612619565b600160a060020a038c1660009081526008602052604090206001015463ffffffff16611cc08c612619565b600160a060020a038d16600090815260086020908152604080832060010154815163ffffffff89811660e060020a028252600482019890985295871660248701526044860194909452949092166064840152608483018d9052925160a48084019492939192918390030190829087803b158015611d3c57600080fd5b505af1158015611d50573d6000803e3d6000fd5b505050506040513d6020811015611d6657600080fd5b50519350611d7384613502565b9384900399939850929650505050505050565b6000611d90612af3565b6002600455611d9d6131b9565b611da8838386613217565b600560009054906101000a9004600160a060020a0316600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015611dfb57600080fd5b505af1158015611e0f573d6000803e3d6000fd5b505050506040513d6020811015611e2557600080fd5b5051600554604080517fa24835d1000000000000000000000000000000000000000000000000000000008152336004820152602481018890529051929350600160a060020a039091169163a24835d19160448082019260009290919082900301818387803b158015611e9657600080fd5b505af1158015611eaa573d6000803e3d6000fd5b50505050610f8983838387612b4d565b611ec2612a36565b6003546002805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055565b600081600281048401811515611f0557fe5b049392505050565b600181565b600654600160a060020a031681565b600080600080600080600080600080611f38612af3565b6002600455611f4561353e565b6000805160206148a1833981519152600052600860205260008051602061486183398151915254611f7c903463ffffffff61358016565b6000805160206148a183398151915260009081526008602090815260008051602061486183398151915292909255600554604080517f18160ddd0000000000000000000000000000000000000000000000000000000081529051600160a060020a03909216936318160ddd9360048084019492938390030190829087803b15801561200657600080fd5b505af115801561201a573d6000803e3d6000fd5b505050506040513d602081101561203057600080fd5b5051995061204b6000805160206148c1833981519152612e12565b6007549099509750600096505b8787101561239857600780548890811061206e57fe5b9060005260206000200160009054906101000a9004600160a060020a031695506008600087600160a060020a0316600160a060020a0316815260200190815260200160002060000154945088600160a060020a031663ebbb21588b87600960009054906101000a900463ffffffff168f6040518563ffffffff1660e060020a028152600401808581526020018481526020018363ffffffff1663ffffffff168152602001828152602001945050505050602060405180830381600087803b15801561213857600080fd5b505af115801561214c573d6000803e3d6000fd5b505050506040513d602081101561216257600080fd5b50519350600160a060020a0386166000805160206148a183398151915214156122c457833411156121c25760405133903486900380156108fc02916000818181858888f193505050501580156121bc573d6000803e3d6000fd5b506122bf565b833410156122bf573415612220576040805160e560020a62461bcd02815260206004820152601560248201527f4552525f494e56414c49445f4554485f56414c55450000000000000000000000604482015290519081900360640190fd5b600954612248906c010000000000000000000000009004600160a060020a03163330876135e0565b6009600c9054906101000a9004600160a060020a0316600160a060020a0316632e1a7d4d856040518263ffffffff1660e060020a02815260040180828152602001915050600060405180830381600087803b1580156122a657600080fd5b505af11580156122ba573d6000803e3d6000fd5b505050505b6122d0565b6122d0863330876135e0565b6122e0858563ffffffff6136c816565b600160a060020a0387166000908152600860205260409020819055925061230d8a8c63ffffffff6136c816565b60408051868152602081018690528082018390529051919350600160a060020a0388169133917f4a1a2a6176e9646d9e3157f7c2ab3c499f18337c0b0828cfb28e0a61de4a11f7919081900360600190a350600160a060020a03851660009081526008602052604090206001015463ffffffff1661238d82878584613725565b600190960195612058565b600554604080517f867904b4000000000000000000000000000000000000000000000000000000008152336004820152602481018e90529051600160a060020a039092169163867904b49160448082019260009290919082900301818387803b15801561240457600080fd5b505af1158015612418573d6000803e3d6000fd5b5050600160045550505050505050505050505050565b612436612a36565b61243e613794565b600554600190600160a060020a0316612455610d4b565b61ffff167f6b08c2e2c9969e55a647a764db9b554d64dc42f1a704da11a6d5b129ad163f2c60405160405180910390a4565b600780548290811061249557fe5b600091825260209091200154600160a060020a0316905081565b600554600160a060020a031681565b600154600160a060020a031681565b60006124d7612a36565b6124ee600080516020614881833981519152612e12565b600554909150600090600160a060020a0316612508610d4b565b61ffff167f6b08c2e2c9969e55a647a764db9b554d64dc42f1a704da11a6d5b129ad163f2c60405160405180910390a46125418161298a565b604080517f90f58c96000000000000000000000000000000000000000000000000000000008152602060048201529051600160a060020a038316916390f58c9691602480830192600092919082900301818387803b1580156125a257600080fd5b505af11580156125b6573d6000803e3d6000fd5b50505050610be0611793565b6008602052600090815260409020805460019091015463ffffffff81169060ff640100000000820481169165010000000000810482169166010000000000009091041685565b600061261382612619565b92915050565b60008161262581612a86565b5050600160a060020a031660009081526008602052604090205490565b600061264c612af3565b60026004557f536f7672796e537761704e6574776f726b00000000000000000000000000000061267b81613031565b600160a060020a0387811690871614156126df576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f53414d455f534f555243455f54415247455400000000000000000000604482015290519081900360640190fd5b600654600160a060020a031615806128225750600654604080517f3af32abf000000000000000000000000000000000000000000000000000000008152600160a060020a03878116600483015291519190921691633af32abf9160248083019260209291908290030181600087803b15801561275a57600080fd5b505af115801561276e573d6000803e3d6000fd5b505050506040513d602081101561278457600080fd5b505180156128225750600654604080517f3af32abf000000000000000000000000000000000000000000000000000000008152600160a060020a03868116600483015291519190921691633af32abf9160248083019260209291908290030181600087803b1580156127f557600080fd5b505af1158015612809573d6000803e3d6000fd5b505050506040513d602081101561281f57600080fd5b50515b1515612878576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f4e4f545f57484954454c495354454400000000000000000000000000604482015290519081900360640190fd5b61288587878787876137ff565b6001600455979650505050505050565b61289d612a36565b60095463ffffffff64010000000090910481169082161115612909576040805160e560020a62461bcd02815260206004820152601a60248201527f4552525f494e56414c49445f434f4e56455253494f4e5f464545000000000000604482015290519081900360640190fd5b6009546040805163ffffffff6801000000000000000090930483168152918316602083015280517f81cd2ffb37dd237c0e4e2a3de5265fcf9deb43d3e7801e80db9f1ccfba7ee6009281900390910190a16009805463ffffffff90921668010000000000000000026bffffffff000000000000000019909216919091179055565b612992612a36565b600054600160a060020a03828116911614156129f8576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f53414d455f4f574e4552000000000000000000000000000000000000604482015290519081900360640190fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600554600160a060020a031690565b600054600160a060020a03163314610cae576040805160e560020a62461bcd02815260206004820152601160248201526000805160206148e1833981519152604482015290519081900360640190fd5b600160a060020a0381166000908152600860205260409020600101546601000000000000900460ff161515610be0576040805160e560020a62461bcd0281526020600482015260136024820152600080516020614841833981519152604482015290519081900360640190fd5b600454600114610cae576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f5245454e5452414e4359000000000000000000000000000000000000604482015290519081900360640190fd5b600080600080600080600080612b6161353e565b612b786000805160206148c1833981519152612e12565b9750612b8a8a8a63ffffffff61358016565b9650600095505b8b51861015612e04578b86815181101515612ba857fe5b9060200190602002015194506008600086600160a060020a0316600160a060020a0316815260200190815260200160002060000154935087600160a060020a0316638074590a8b86600960009054906101000a900463ffffffff168d6040518563ffffffff1660e060020a028152600401808581526020018481526020018363ffffffff1663ffffffff168152602001828152602001945050505050602060405180830381600087803b158015612c5e57600080fd5b505af1158015612c72573d6000803e3d6000fd5b505050506040513d6020811015612c8857600080fd5b50518b519093508b9087908110612c9b57fe5b60209081029091010151831015612cfc576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f5a45524f5f5441524745545f414d4f554e5400000000000000000000604482015290519081900360640190fd5b612d0c848463ffffffff61358016565b600160a060020a03861660008181526008602052604090208290559092506000805160206148a18339815191521415612d7257604051339084156108fc029085906000818181858888f19350505050158015612d6c573d6000803e3d6000fd5b50612d7d565b612d7d853385613ad2565b60408051848152602081018490528082018990529051600160a060020a0387169133917fbc7d19d505c7ec4db83f3b51f19fb98c4c8a99922e7839d1ee608dfbee29501b9181900360600190a350600160a060020a03841660009081526008602052604090206001015463ffffffff16612df987868484613725565b600190950194612b91565b505050505050505050505050565b600254604080517fbb34534c000000000000000000000000000000000000000000000000000000008152600481018490529051600092600160a060020a03169163bb34534c91602480830192602092919082900301818787803b158015612e7857600080fd5b505af1158015612e8c573d6000803e3d6000fd5b505050506040513d6020811015612ea257600080fd5b505192915050565b600160a060020a038116301415610be0576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f414444524553535f49535f53454c4600000000000000000000000000604482015290519081900360640190fd5b612f13612a36565b82612f1d816130e4565b82612f27816130e4565b83612f3181612eaa565b611413868686613ad2565b80612f4681612a86565b600160a060020a0382166000805160206148a18339815191521415612f8657600160a060020a03821660009081526008602052604090203031905561302d565b604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a038416916370a082319160248083019260209291908290030181600087803b158015612fe757600080fd5b505af1158015612ffb573d6000803e3d6000fd5b505050506040513d602081101561301157600080fd5b5051600160a060020a0383166000908152600860205260409020555b5050565b61303a81612e12565b600160a060020a03163314610be0576040805160e560020a62461bcd02815260206004820152601160248201526000805160206148e1833981519152604482015290519081900360640190fd5b61308f610be3565b15610cae576040805160e560020a62461bcd02815260206004820152600a60248201527f4552525f41435449564500000000000000000000000000000000000000000000604482015290519081900360640190fd5b600160a060020a0381161515610be0576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b60008163ffffffff161180156131635750620f424063ffffffff821611155b1515610be0576040805160e560020a62461bcd02815260206004820152601a60248201527f4552525f494e56414c49445f524553455256455f574549474854000000000000604482015290519081900360640190fd5b6131c1610be3565b1515610cae576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f494e4143544956450000000000000000000000000000000000000000604482015290519081900360640190fd5b600754835160009182918114613265576040805160e560020a62461bcd0281526020600482015260136024820152600080516020614841833981519152604482015290519081900360640190fd5b845181146132bd576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f494e56414c49445f414d4f554e540000000000000000000000000000604482015290519081900360640190fd5b600092505b8083101561347b576008600087858151811015156132dc57fe5b6020908102909101810151600160a060020a031682528101919091526040016000206001015460ff6601000000000000909104161515613354576040805160e560020a62461bcd0281526020600482015260136024820152600080516020614841833981519152604482015290519081900360640190fd5b600091505b808210156133bc57858281518110151561336f57fe5b90602001906020020151600160a060020a031660078481548110151561339157fe5b600091825260209091200154600160a060020a031614156133b1576133bc565b600190910190613359565b808210613401576040805160e560020a62461bcd0281526020600482015260136024820152600080516020614841833981519152604482015290519081900360640190fd5b6000858481518110151561341157fe5b6020908102909101015111613470576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f494e56414c49445f414d4f554e540000000000000000000000000000604482015290519081900360640190fd5b6001909201916132c2565b60008411611413576040805160e560020a62461bcd02815260206004820152600f60248201527f4552525f5a45524f5f414d4f554e540000000000000000000000000000000000604482015290519081900360640190fd5b60008115156134ed576134e68484613b89565b90506134fb565b6134f8848484613d90565b90505b9392505050565b60095460009061261390620f42409061353290859068010000000000000000900463ffffffff9081169061415016565b9063ffffffff6141c916565b60075460005b8181101561302d5761357860078281548110151561355e57fe5b600091825260209091200154600160a060020a0316612f3c565b600101613544565b6000818310156135da576040805160e560020a62461bcd02815260206004820152600d60248201527f4552525f554e444552464c4f5700000000000000000000000000000000000000604482015290519081900360640190fd5b50900390565b604080517f7472616e7366657246726f6d28616464726573732c616464726573732c75696e81527f74323536290000000000000000000000000000000000000000000000000000006020808301919091528251918290036025018220600160a060020a038088166024850152861660448401526064808401869052845180850390910181526084909301909352810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19909316929092179091526136c2908590614237565b50505050565b6000828201838110156134fb576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b600554600160a060020a0380851691167f77f29993cf2c084e726f7e802da0719d6a0ade3e204badc7a3ffd57ecb768c2461376385620f4240614150565b6137768863ffffffff8088169061415016565b6040805192835260208301919091528051918290030190a350505050565b600161379e611b85565b61ffff16116137f7576040805160e560020a62461bcd02815260206004820152601960248201527f4552525f494e56414c49445f524553455256455f434f554e5400000000000000604482015290519081900360640190fd5b610cae6142c5565b600080600080613810898989611be1565b909350915082151561386c576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f5a45524f5f5441524745545f414d4f554e5400000000000000000000604482015290519081900360640190fd5b61387588612619565b905080831061388057fe5b600160a060020a0389166000805160206148a183398151915214156138fb573487146138f6576040805160e560020a62461bcd02815260206004820152601760248201527f4552525f4554485f414d4f554e545f4d49534d41544348000000000000000000604482015290519081900360640190fd5b613a03565b341580156139ad5750866139aa6139118b612619565b604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a038e16916370a082319160248083019260209291908290030181600087803b15801561397257600080fd5b505af1158015613986573d6000803e3d6000fd5b505050506040513d602081101561399c57600080fd5b50519063ffffffff61358016565b10155b1515613a03576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f494e56414c49445f414d4f554e540000000000000000000000000000604482015290519081900360640190fd5b613a0c89612f3c565b600160a060020a038816600090815260086020526040902054613a35908463ffffffff61358016565b600160a060020a0389166000818152600860205260409020919091556000805160206148a18339815191521415613aa257604051600160a060020a0386169084156108fc029085906000818181858888f19350505050158015613a9c573d6000803e3d6000fd5b50613aad565b613aad888685613ad2565b613abb8989888a87876143a3565b613ac58989614428565b5090979650505050505050565b604080517f7472616e7366657228616464726573732c75696e74323536290000000000000081528151908190036019018120600160a060020a038516602483015260448083018590528351808403909101815260649092019092526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1990931692909217909152613b84908490614237565b505050565b600080600080613b9885611b8b565b9250600091505b8551821015613d865785516000805160206148a183398151915290879084908110613bc657fe5b60209081029091010151600160a060020a031614613c1857613c188683815181101515613bef57fe5b9060200190602002015133308886815181101515613c0957fe5b906020019060200201516135e0565b8482815181101515613c2657fe5b90602001906020020151600860008885815181101515613c4257fe5b6020908102909101810151600160a060020a03168252810191909152604001600020558551869083908110613c7357fe5b90602001906020020151600160a060020a031633600160a060020a03167f4a1a2a6176e9646d9e3157f7c2ab3c499f18337c0b0828cfb28e0a61de4a11f78785815181101515613cbf57fe5b906020019060200201518886815181101515613cd757fe5b60209081029091018101516040805193845291830152818101889052519081900360600190a3600860008784815181101515613d0f57fe5b6020908102909101810151600160a060020a0316825281019190915260400160002060010154865163ffffffff9091169150613d7b908490889085908110613d5357fe5b906020019060200201518785815181101515613d6b57fe5b9060200190602002015184613725565b600190910190613b9f565b5090949350505050565b600080600080600080600080600080613da761353e565b6000805160206148a1833981519152600052600860205260008051602061486183398151915254613dde903463ffffffff61358016565b6000805160206148a1833981519152600052600860205260008051602061486183398151915255613e1c6000805160206148c1833981519152612e12565b9850613e2a898c8f8f614636565b9750613e3c8b8963ffffffff6136c816565b9650600095505b8c5186101561413f578c86815181101515613e5a57fe5b9060200190602002015194506008600086600160a060020a0316600160a060020a0316815260200190815260200160002060000154935088600160a060020a031663ebbb21588c86600960009054906101000a900463ffffffff168c6040518563ffffffff1660e060020a028152600401808581526020018481526020018363ffffffff1663ffffffff168152602001828152602001945050505050602060405180830381600087803b158015613f1057600080fd5b505af1158015613f24573d6000803e3d6000fd5b505050506040513d6020811015613f3a57600080fd5b5051925060008311613f96576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f5a45524f5f5441524745545f414d4f554e5400000000000000000000604482015290519081900360640190fd5b8b86815181101515613fa457fe5b60209081029091010151831115613fb757fe5b600160a060020a0385166000805160206148a183398151915214613fe657613fe1853330866135e0565b614059565b828c87815181101515613ff557fe5b9060200190602002015111156140595733600160a060020a03166108fc848e8981518110151561402157fe5b90602001906020020151039081150290604051600060405180830381858888f19350505050158015614057573d6000803e3d6000fd5b505b614069848463ffffffff6136c816565b600160a060020a03861660008181526008602090815260409182902084905581518781529081018490528082018b90529051929450909133917f4a1a2a6176e9646d9e3157f7c2ab3c499f18337c0b0828cfb28e0a61de4a11f7919081900360600190a3600860008e888151811015156140df57fe5b6020908102909101810151600160a060020a03168252810191909152604001600020600101548d5163ffffffff90911691506141349088908f908990811061412357fe5b906020019060200201518484613725565b600190950194613e43565b50959b9a5050505050505050505050565b600080831515614163576000915061177d565b5082820282848281151561417357fe5b04146134fb576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b600080808311614223576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f4449564944455f42595f5a45524f0000000000000000000000000000604482015290519081900360640190fd5b828481151561422e57fe5b04949350505050565b61423f614821565b602060405190810160405280600181525090506020818351602085016000875af180151561426c57600080fd5b5080511515613b84576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f5452414e534645525f4641494c454400000000000000000000000000604482015290519081900360640190fd5b6142cd612a36565b60006142d7611b85565b61ffff1611614330576040805160e560020a62461bcd02815260206004820152601960248201527f4552525f494e56414c49445f524553455256455f434f554e5400000000000000604482015290519081900360640190fd5b600560009054906101000a9004600160a060020a0316600160a060020a03166379ba50976040518163ffffffff1660e060020a028152600401600060405180830381600087803b15801561438357600080fd5b505af1158015614397573d6000803e3d6000fd5b50505050610cae61353e565b7f800000000000000000000000000000000000000000000000000000000000000081106143cc57fe5b60408051848152602081018490528082018390529051600160a060020a038087169288821692918a16917f276856b36cbc45526a0ba64f44611557a2a8b68662c5388e9fe6d72e86e1c8cb9181900360600190a4505050505050565b6000806000806000806000600560009054906101000a9004600160a060020a0316600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561448657600080fd5b505af115801561449a573d6000803e3d6000fd5b505050506040513d60208110156144b057600080fd5b505196506144bd89612619565b95506144c888612619565b600160a060020a03808b16600090815260086020526040808220600190810154938d1683529120015491965063ffffffff90811695509081169350614511908690869061415016565b91506145268663ffffffff8086169061415016565b60408051848152602081018390528151929350600160a060020a03808c1693908d16927f77f29993cf2c084e726f7e802da0719d6a0ade3e204badc7a3ffd57ecb768c24928290030190a361457d878a8887613725565b61458987898786613725565b604080518881526020810188905263ffffffff8616818301529051600160a060020a038b16917f8a6a7f53b3c8fa1dc4b83e3f1be668c1b251ff8d44cdcb83eb3acec3fec6a788919081900360600190a2604080518881526020810187905263ffffffff8516818301529051600160a060020a038a16917f8a6a7f53b3c8fa1dc4b83e3f1be668c1b251ff8d44cdcb83eb3acec3fec6a788919081900360600190a2505050505050505050565b60008060015b84518110156146f9576146a160086000878481518110151561465a57fe5b6020908102909101810151600160a060020a0316825281019190915260400160002054855186908590811061468b57fe5b602090810290910101519063ffffffff61415016565b6146e76008600088868151811015156146b657fe5b6020908102909101810151600160a060020a0316825281019190915260400160002054865187908590811061468b57fe5b10156146f1578091505b60010161463c565b86600160a060020a0316632f55bdb58760086000898781518110151561471b57fe5b6020908102909101810151600160a060020a0316825281019190915260400160002054600954885163ffffffff9091169089908890811061475857fe5b906020019060200201516040518563ffffffff1660e060020a028152600401808581526020018481526020018363ffffffff1663ffffffff168152602001828152602001945050505050602060405180830381600087803b1580156147bc57600080fd5b505af11580156147d0573d6000803e3d6000fd5b505050506040513d60208110156147e657600080fd5b5051979650505050505050565b6040805160a08101825260008082526020820181905291810182905260608101829052608081019190915290565b602060405190810160405280600190602082028038833950919291505056004552525f494e56414c49445f5245534552564500000000000000000000000000353c2eb9e53a4a4a6d45d72082ff2e9dc829d1125618772a83eb0e7f86632c42536f7672796e53776170436f6e76657274657255706772616465720000000000000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee536f7672796e53776170466f726d756c610000000000000000000000000000004552525f4143434553535f44454e494544000000000000000000000000000000a165627a7a72305820324b4364d6a1792677c2fd82e313b62b9cc957d58949fe9823a7cc610a1a0c050029", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x1 PUSH1 0x4 SSTORE PUSH32 0xC0829421C1D260BD3CB3E0F06CFE2D52DB2CE315000000000000000000000000 PUSH1 0x9 SSTORE CALLVALUE DUP1 ISZERO PUSH3 0x3A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH1 0x60 DUP1 PUSH3 0x4B65 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 SWAP1 DUP2 MSTORE DUP2 MLOAD PUSH1 0x20 DUP4 ADD MLOAD SWAP2 SWAP1 SWAP3 ADD MLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND CALLER OR SWAP1 SSTORE DUP3 DUP3 DUP3 DUP3 DUP3 DUP3 DUP2 DUP1 PUSH3 0x88 DUP2 PUSH5 0x100000000 PUSH3 0x135 DUP2 MUL DIV JUMP JUMPDEST POP PUSH1 0x2 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT SWAP3 DUP4 AND DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x3 DUP1 SLOAD SWAP1 SWAP3 AND OR SWAP1 SSTORE DUP3 PUSH3 0xC8 DUP2 PUSH5 0x100000000 PUSH3 0x135 DUP2 MUL DIV JUMP JUMPDEST DUP2 PUSH3 0xDD DUP2 PUSH5 0x100000000 PUSH3 0x1B0 DUP2 MUL DIV JUMP JUMPDEST POP POP PUSH1 0x5 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP5 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 OR SWAP1 SWAP3 SSTORE POP PUSH1 0x9 DUP1 SLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP3 AND PUSH5 0x100000000 MUL PUSH8 0xFFFFFFFF00000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE POP PUSH3 0x229 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH3 0x1AD JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH3 0xF4240 PUSH4 0xFFFFFFFF DUP3 AND GT ISZERO PUSH3 0x1AD JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F434F4E56455253494F4E5F464545000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x492C DUP1 PUSH3 0x239 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x258 JUMPI PUSH4 0xFFFFFFFF PUSH1 0xE0 PUSH1 0x2 EXP PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x24C7EC7 DUP2 EQ PUSH2 0x2E4 JUMPI DUP1 PUSH4 0xC7D5CD8 EQ PUSH2 0x2FE JUMPI DUP1 PUSH4 0xE53AAE9 EQ PUSH2 0x32C JUMPI DUP1 PUSH4 0x12C2ACA4 EQ PUSH2 0x381 JUMPI DUP1 PUSH4 0x19B64015 EQ PUSH2 0x3AA JUMPI DUP1 PUSH4 0x1CFAB290 EQ PUSH2 0x3DE JUMPI DUP1 PUSH4 0x1E1401F8 EQ PUSH2 0x3FF JUMPI DUP1 PUSH4 0x21E6B53D EQ PUSH2 0x442 JUMPI DUP1 PUSH4 0x22F3E2D4 EQ PUSH2 0x463 JUMPI DUP1 PUSH4 0x2FE8A6AD EQ PUSH2 0x478 JUMPI DUP1 PUSH4 0x38A5E016 EQ PUSH2 0x48D JUMPI DUP1 PUSH4 0x395900D4 EQ PUSH2 0x4A2 JUMPI DUP1 PUSH4 0x3E8FF43F EQ PUSH2 0x4CC JUMPI DUP1 PUSH4 0x415F1240 EQ PUSH2 0x4F8 JUMPI DUP1 PUSH4 0x49D10B64 EQ PUSH2 0x510 JUMPI DUP1 PUSH4 0x4AF80F0E EQ PUSH2 0x525 JUMPI DUP1 PUSH4 0x54FD4D50 EQ PUSH2 0x546 JUMPI DUP1 PUSH4 0x579CD3CA EQ PUSH2 0x55B JUMPI DUP1 PUSH4 0x5E35359E EQ PUSH2 0x570 JUMPI DUP1 PUSH4 0x61CD756E EQ PUSH2 0x59A JUMPI DUP1 PUSH4 0x67B6D57C EQ PUSH2 0x5AF JUMPI DUP1 PUSH4 0x690D8320 EQ PUSH2 0x5D0 JUMPI DUP1 PUSH4 0x6A49D2C4 EQ PUSH2 0x5F1 JUMPI DUP1 PUSH4 0x6AA5332C EQ PUSH2 0x61B JUMPI DUP1 PUSH4 0x71F52BF3 EQ PUSH2 0x645 JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x65A JUMPI DUP1 PUSH4 0x7B103999 EQ PUSH2 0x66F JUMPI DUP1 PUSH4 0x7D8916BD EQ PUSH2 0x684 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x707 JUMPI DUP1 PUSH4 0x94C275AD EQ PUSH2 0x71C JUMPI DUP1 PUSH4 0x9B99A8E2 EQ PUSH2 0x731 JUMPI DUP1 PUSH4 0xA60E7724 EQ PUSH2 0x746 JUMPI DUP1 PUSH4 0xAF94B8D8 EQ PUSH2 0x79B JUMPI DUP1 PUSH4 0xB127C0A5 EQ PUSH2 0x7C5 JUMPI DUP1 PUSH4 0xB4A176D3 EQ PUSH2 0x858 JUMPI DUP1 PUSH4 0xBBB7E5D8 EQ PUSH2 0x86D JUMPI DUP1 PUSH4 0xBF754558 EQ PUSH2 0x888 JUMPI DUP1 PUSH4 0xC45D3D92 EQ PUSH2 0x89D JUMPI DUP1 PUSH4 0xCA1D209D EQ PUSH2 0x8B2 JUMPI DUP1 PUSH4 0xCDC91C69 EQ PUSH2 0x8BD JUMPI DUP1 PUSH4 0xD031370B EQ PUSH2 0x8D2 JUMPI DUP1 PUSH4 0xD260529C EQ PUSH2 0x8EA JUMPI DUP1 PUSH4 0xD3FB73B4 EQ PUSH2 0x8FF JUMPI DUP1 PUSH4 0xD4EE1D90 EQ PUSH2 0x914 JUMPI DUP1 PUSH4 0xD55EC697 EQ PUSH2 0x929 JUMPI DUP1 PUSH4 0xD66BD524 EQ PUSH2 0x93E JUMPI DUP1 PUSH4 0xD8959512 EQ PUSH2 0x95F JUMPI DUP1 PUSH4 0xDC8DE379 EQ PUSH2 0x980 JUMPI DUP1 PUSH4 0xE8DC12FF EQ PUSH2 0x9A1 JUMPI DUP1 PUSH4 0xECBCA55D EQ PUSH2 0x9CB JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x9E9 JUMPI DUP1 PUSH4 0xFC0C546A EQ PUSH2 0xA0A JUMPI JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x0 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH32 0x353C2EB9E53A4A4A6D45D72082FF2E9DC829D1125618772A83EB0E7F86632C43 SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO PUSH2 0x2E2 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4841 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2F0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E2 PUSH1 0x4 CALLDATALOAD ISZERO ISZERO PUSH2 0xA1F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x30A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x313 PUSH2 0xA67 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x338 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x34D PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0xA73 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP6 DUP7 MSTORE PUSH4 0xFFFFFFFF SWAP1 SWAP5 AND PUSH1 0x20 DUP7 ADD MSTORE SWAP2 ISZERO ISZERO DUP5 DUP5 ADD MSTORE ISZERO ISZERO PUSH1 0x60 DUP5 ADD MSTORE ISZERO ISZERO PUSH1 0x80 DUP4 ADD MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0xA0 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x38D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x396 PUSH2 0xB0E JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3B6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3C2 PUSH1 0x4 CALLDATALOAD PUSH2 0xB57 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x313 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0xB83 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x40B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x429 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0xBB5 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x44E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0xBCF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x46F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x396 PUSH2 0xBE3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x484 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x396 PUSH2 0xC7D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x499 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E2 PUSH2 0xC9E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4AE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0xCB0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4D8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4E1 PUSH2 0xD4B JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0xFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x504 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E2 PUSH1 0x4 CALLDATALOAD PUSH2 0xD50 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x51C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E2 PUSH2 0xF94 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x531 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x1201 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x552 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4E1 PUSH2 0x1243 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x567 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x313 PUSH2 0x1248 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x57C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x1260 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5A6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3C2 PUSH2 0x1369 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5BB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x1378 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5DC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x141B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5FD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH4 0xFFFFFFFF PUSH1 0x24 CALLDATALOAD AND PUSH2 0x1520 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x627 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x633 PUSH1 0x4 CALLDATALOAD PUSH2 0x175F JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x651 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4E1 PUSH2 0x1784 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x666 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E2 PUSH2 0x1793 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x67B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3C2 PUSH2 0x1854 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x2E2 SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP POP PUSH1 0x40 DUP1 MLOAD DUP8 CALLDATALOAD DUP10 ADD DUP1 CALLDATALOAD PUSH1 0x20 DUP2 DUP2 MUL DUP5 DUP2 ADD DUP3 ADD SWAP1 SWAP6 MSTORE DUP2 DUP5 MSTORE SWAP9 SWAP12 SWAP11 SWAP10 DUP10 ADD SWAP9 SWAP3 SWAP8 POP SWAP1 DUP3 ADD SWAP6 POP SWAP4 POP DUP4 SWAP3 POP DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP POP SWAP4 CALLDATALOAD SWAP5 POP PUSH2 0x1863 SWAP4 POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x713 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3C2 PUSH2 0x1B62 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x728 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x313 PUSH2 0x1B71 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x73D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4E1 PUSH2 0x1B85 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x752 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x633 SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP PUSH2 0x1B8B SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7A7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x429 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x1BE1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7D1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 PUSH1 0x24 DUP1 CALLDATALOAD DUP3 DUP2 ADD CALLDATALOAD DUP5 DUP2 MUL DUP1 DUP8 ADD DUP7 ADD SWAP1 SWAP8 MSTORE DUP1 DUP7 MSTORE PUSH2 0x2E2 SWAP7 DUP5 CALLDATALOAD SWAP7 CALLDATASIZE SWAP7 PUSH1 0x44 SWAP6 SWAP2 SWAP5 SWAP1 SWAP2 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP POP PUSH1 0x40 DUP1 MLOAD DUP8 CALLDATALOAD DUP10 ADD DUP1 CALLDATALOAD PUSH1 0x20 DUP2 DUP2 MUL DUP5 DUP2 ADD DUP3 ADD SWAP1 SWAP6 MSTORE DUP2 DUP5 MSTORE SWAP9 SWAP12 SWAP11 SWAP10 DUP10 ADD SWAP9 SWAP3 SWAP8 POP SWAP1 DUP3 ADD SWAP6 POP SWAP4 POP DUP4 SWAP3 POP DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP PUSH2 0x1D86 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x864 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E2 PUSH2 0x1EBA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x879 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x633 PUSH1 0x4 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH2 0x1EF3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x894 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x396 PUSH2 0x1F0D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8A9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3C2 PUSH2 0x1F12 JUMP JUMPDEST PUSH2 0x2E2 PUSH1 0x4 CALLDATALOAD PUSH2 0x1F21 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8C9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E2 PUSH2 0x242E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8DE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3C2 PUSH1 0x4 CALLDATALOAD PUSH2 0x2487 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8F6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x396 PUSH2 0xD4B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x90B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3C2 PUSH2 0x24AF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x920 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3C2 PUSH2 0x24BE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x935 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E2 PUSH2 0x24CD JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x94A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x34D PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x25C2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x96B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x633 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x2608 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x98C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x633 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x2619 JUMP JUMPDEST PUSH2 0x633 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x44 CALLDATALOAD SWAP1 PUSH1 0x64 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x84 CALLDATALOAD AND PUSH2 0x2642 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9D7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E2 PUSH4 0xFFFFFFFF PUSH1 0x4 CALLDATALOAD AND PUSH2 0x2895 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x298A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA16 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3C2 PUSH2 0x2A27 JUMP JUMPDEST PUSH2 0xA27 PUSH2 0x2A36 JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD SWAP2 ISZERO ISZERO PUSH21 0x10000000000000000000000000000000000000000 MUL PUSH21 0xFF0000000000000000000000000000000000000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH4 0xFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0xA83 PUSH2 0x47F3 JUMP JUMPDEST POP POP POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP2 MLOAD PUSH1 0xA0 DUP2 ADD DUP4 MSTORE DUP2 SLOAD DUP1 DUP3 MSTORE PUSH1 0x1 SWAP1 SWAP3 ADD SLOAD PUSH4 0xFFFFFFFF DUP2 AND SWAP5 DUP3 ADD DUP6 SWAP1 MSTORE PUSH1 0xFF PUSH5 0x100000000 DUP3 DIV DUP2 AND ISZERO ISZERO SWAP5 DUP4 ADD SWAP5 SWAP1 SWAP5 MSTORE PUSH6 0x10000000000 DUP2 DIV DUP5 AND ISZERO ISZERO PUSH1 0x60 DUP4 ADD MSTORE PUSH7 0x1000000000000 SWAP1 DIV SWAP1 SWAP3 AND ISZERO ISZERO PUSH1 0x80 SWAP1 SWAP3 ADD DUP3 SWAP1 MSTORE SWAP6 SWAP2 SWAP5 POP SWAP2 SWAP3 POP DUP3 SWAP2 SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x0 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH32 0x353C2EB9E53A4A4A6D45D72082FF2E9DC829D1125618772A83EB0E7F86632C43 SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x7 DUP3 DUP2 SLOAD DUP2 LT ISZERO ISZERO PUSH2 0xB68 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0xB8F DUP2 PUSH2 0x2A86 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH4 0xFFFFFFFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xBC3 DUP6 DUP6 DUP6 PUSH2 0x1BE1 JUMP JUMPDEST SWAP2 POP SWAP2 POP SWAP4 POP SWAP4 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xBD7 PUSH2 0x2A36 JUMP JUMPDEST PUSH2 0xBE0 DUP2 PUSH2 0x1378 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 ADDRESS PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x8DA5CB5B PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC42 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xC56 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xC6C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH2 0xCA6 PUSH2 0x2A36 JUMP JUMPDEST PUSH2 0xCAE PUSH2 0x242E JUMP JUMPDEST JUMP JUMPDEST PUSH2 0xCB8 PUSH2 0x2A36 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x5E35359E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP6 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP3 ADD DUP6 SWAP1 MSTORE SWAP2 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP2 PUSH4 0x5E35359E SWAP2 PUSH1 0x64 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xD2E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xD42 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 PUSH1 0x0 PUSH2 0xD5E PUSH2 0x2AF3 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH1 0x0 DUP5 GT PUSH2 0xDBB JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xF PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5A45524F5F414D4F554E540000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x18160DDD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xE0E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xE22 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xE38 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xA24835D100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP9 SWAP1 MSTORE SWAP1 MLOAD SWAP3 SWAP6 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP2 AND SWAP2 PUSH4 0xA24835D1 SWAP2 PUSH1 0x44 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xEA9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xEBD JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x7 DUP1 SLOAD SWAP1 POP PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0xEF0 JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CODESIZE DUP4 CODECOPY ADD SWAP1 POP JUMPDEST POP SWAP2 POP PUSH1 0x0 SWAP1 POP JUMPDEST DUP2 MLOAD DUP2 LT ISZERO PUSH2 0xF23 JUMPI PUSH1 0x1 DUP3 DUP3 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xF11 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MSTORE PUSH1 0x1 ADD PUSH2 0xEF8 JUMP JUMPDEST PUSH2 0xF89 PUSH1 0x7 DUP1 SLOAD DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD DUP1 ISZERO PUSH2 0xF7C JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xF5E JUMPI JUMPDEST POP POP POP POP POP DUP4 DUP6 DUP8 PUSH2 0x2B4D JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0x4 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ DUP1 PUSH2 0xFC9 JUMPI POP PUSH1 0x3 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x100D JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48E1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x1036 PUSH32 0x436F6E7472616374526567697374727900000000000000000000000000000000 PUSH2 0x2E12 JUMP JUMPDEST PUSH1 0x2 SLOAD SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP4 AND SWAP2 AND EQ DUP1 ISZERO SWAP1 PUSH2 0x105F JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x10B5 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245474953545259000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0xBB34534C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH32 0x436F6E7472616374526567697374727900000000000000000000000000000000 PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP2 PUSH4 0xBB34534C SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1139 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x114D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1163 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ ISZERO PUSH2 0x11C4 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245474953545259000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP5 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP3 DUP4 AND OR SWAP1 SWAP3 SSTORE SWAP1 SWAP2 AND SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x1209 PUSH2 0x2A36 JUMP JUMPDEST DUP1 PUSH2 0x1213 DUP2 PUSH2 0x2EAA JUMP JUMPDEST POP PUSH1 0x6 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x20 DUP2 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH9 0x10000000000000000 SWAP1 DIV PUSH4 0xFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x126A PUSH2 0x2AF3 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH2 0x1277 PUSH2 0x2A36 JUMP JUMPDEST PUSH2 0x128E PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4881 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x2E12 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD SWAP1 SWAP2 POP PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 PUSH2 0x12CB JUMPI POP PUSH2 0x12C9 PUSH2 0xBE3 JUMP JUMPDEST ISZERO JUMPDEST DUP1 PUSH2 0x12E3 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ JUMPDEST ISZERO ISZERO PUSH2 0x1327 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48E1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x1332 DUP5 DUP5 DUP5 PUSH2 0x2F0B JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0xF89 JUMPI PUSH2 0xF89 DUP5 PUSH2 0x2F3C JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH2 0x1380 PUSH2 0x2A36 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4881 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x1398 DUP2 PUSH2 0x3031 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xF2FDE38B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP2 PUSH4 0xF2FDE38B SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x13FF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1413 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1425 PUSH2 0x2AF3 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH2 0x1432 PUSH2 0x2A36 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x144A DUP2 PUSH2 0x2A86 JUMP JUMPDEST PUSH2 0x1461 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4881 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x2E12 JUMP JUMPDEST SWAP2 POP PUSH2 0x146B PUSH2 0xBE3 JUMP JUMPDEST ISZERO DUP1 PUSH2 0x1484 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 DUP2 AND SWAP2 AND EQ JUMPDEST ISZERO ISZERO PUSH2 0x14C8 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48E1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP1 ADDRESS BALANCE DUP1 ISZERO PUSH2 0x8FC MUL SWAP2 PUSH1 0x0 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x14FE JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH2 0x1516 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x2F3C JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0x4 SSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x152A PUSH2 0x2A36 JUMP JUMPDEST PUSH2 0x1532 PUSH2 0x3087 JUMP JUMPDEST DUP3 PUSH2 0x153C DUP2 PUSH2 0x30E4 JUMP JUMPDEST DUP4 PUSH2 0x1546 DUP2 PUSH2 0x2EAA JUMP JUMPDEST DUP4 PUSH2 0x1550 DUP2 PUSH2 0x3144 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 DUP2 AND SWAP2 AND EQ DUP1 ISZERO SWAP1 PUSH2 0x1594 JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x15D8 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4841 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x9 SLOAD PUSH4 0xFFFFFFFF SWAP1 DUP2 AND PUSH3 0xF4240 SUB DUP2 AND SWAP1 DUP7 AND GT ISZERO PUSH2 0x1643 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F574549474854000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0xFFFF PUSH2 0x164E PUSH2 0x1B85 JUMP JUMPDEST PUSH2 0xFFFF AND LT PUSH2 0x16A7 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F434F554E5400000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP2 DUP2 SSTORE PUSH1 0x1 SWAP1 DUP2 ADD DUP1 SLOAD PUSH7 0xFF000000000000 NOT PUSH4 0xFFFFFFFF DUP1 DUP9 AND PUSH4 0xFFFFFFFF NOT SWAP4 DUP5 AND OR SWAP2 SWAP1 SWAP2 AND PUSH7 0x1000000000000 OR SWAP1 SWAP3 SSTORE PUSH1 0x7 DUP1 SLOAD SWAP4 DUP5 ADD DUP2 SSTORE SWAP1 SWAP4 MSTORE PUSH32 0xA66CC928B5EDB82AF9BD49922954155AB7B0942694BEA4CE44661D9A8736C688 SWAP1 SWAP2 ADD DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 SWAP4 OR SWAP1 SWAP3 SSTORE PUSH1 0x9 DUP1 SLOAD DUP1 DUP5 AND SWAP1 SWAP5 ADD SWAP1 SWAP3 AND SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 JUMPDEST PUSH1 0x0 DUP2 GT ISZERO PUSH2 0x177D JUMPI PUSH1 0x1 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0xA SWAP1 DIV PUSH2 0x1764 JUMP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x178E PUSH2 0x1B85 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x17E3 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48E1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND SWAP4 SWAP1 SWAP2 AND SWAP2 PUSH32 0x343765429AEA5A34B3FF6A3785A98A5ABB2597ACA87BFBB58632C173D585373A SWAP2 LOG3 PUSH1 0x1 DUP1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND OR SWAP1 SWAP2 SSTORE AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x1870 PUSH2 0x2AF3 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH2 0x187D PUSH2 0x31B9 JUMP JUMPDEST PUSH2 0x1888 DUP7 DUP7 DUP7 PUSH2 0x3217 JUMP JUMPDEST PUSH1 0x0 SWAP3 POP JUMPDEST DUP6 MLOAD DUP4 LT ISZERO PUSH2 0x1946 JUMPI DUP6 MLOAD PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP1 DUP8 SWAP1 DUP6 SWAP1 DUP2 LT PUSH2 0x18B4 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ ISZERO PUSH2 0x193B JUMPI CALLVALUE DUP6 DUP5 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x18DC JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MLOAD EQ PUSH2 0x193B JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4554485F414D4F554E545F4D49534D41544348000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 PUSH2 0x188D JUMP JUMPDEST PUSH1 0x0 CALLVALUE GT ISZERO PUSH2 0x19EB JUMPI PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x0 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH32 0x353C2EB9E53A4A4A6D45D72082FF2E9DC829D1125618772A83EB0E7F86632C43 SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO PUSH2 0x19EB JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4E4F5F4554485F524553455256450000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x18160DDD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1A3E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1A52 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1A68 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 POP PUSH2 0x1A77 DUP7 DUP7 DUP5 PUSH2 0x34D3 JUMP JUMPDEST SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0x1AD1 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F52455455524E5F544F4F5F4C4F570000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x867904B400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP2 PUSH4 0x867904B4 SWAP2 PUSH1 0x44 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1B3D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1B51 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x1 PUSH1 0x4 SSTORE POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH5 0x100000000 SWAP1 DIV PUSH4 0xFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x7 SLOAD SWAP1 JUMP JUMPDEST DUP1 MLOAD PUSH1 0x0 SWAP1 DUP2 SWAP1 DUP2 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1BC8 JUMPI PUSH2 0x1BBC DUP6 DUP3 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x1BAD JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH2 0x175F JUMP JUMPDEST SWAP1 SWAP3 ADD SWAP2 PUSH1 0x1 ADD PUSH2 0x1B94 JUMP JUMPDEST PUSH1 0x1 PUSH2 0x1BD4 DUP5 DUP5 PUSH2 0x1EF3 JUMP JUMPDEST SUB PUSH1 0xA EXP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x1BEF PUSH2 0x31B9 JUMP JUMPDEST DUP7 PUSH2 0x1BF9 DUP2 PUSH2 0x2A86 JUMP JUMPDEST DUP7 PUSH2 0x1C03 DUP2 PUSH2 0x2A86 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP10 DUP2 AND SWAP1 DUP10 AND EQ ISZERO PUSH2 0x1C67 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F534F555243455F54415247455400000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x1C7E PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48C1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x2E12 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x94491FAB PUSH2 0x1C95 DUP12 PUSH2 0x2619 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP13 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH4 0xFFFFFFFF AND PUSH2 0x1CC0 DUP13 PUSH2 0x2619 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP14 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 ADD SLOAD DUP2 MLOAD PUSH4 0xFFFFFFFF DUP10 DUP2 AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP3 MSTORE PUSH1 0x4 DUP3 ADD SWAP9 SWAP1 SWAP9 MSTORE SWAP6 DUP8 AND PUSH1 0x24 DUP8 ADD MSTORE PUSH1 0x44 DUP7 ADD SWAP5 SWAP1 SWAP5 MSTORE SWAP5 SWAP1 SWAP3 AND PUSH1 0x64 DUP5 ADD MSTORE PUSH1 0x84 DUP4 ADD DUP14 SWAP1 MSTORE SWAP3 MLOAD PUSH1 0xA4 DUP1 DUP5 ADD SWAP5 SWAP3 SWAP4 SWAP2 SWAP3 SWAP2 DUP4 SWAP1 SUB ADD SWAP1 DUP3 SWAP1 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1D3C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1D50 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1D66 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP4 POP PUSH2 0x1D73 DUP5 PUSH2 0x3502 JUMP JUMPDEST SWAP4 DUP5 SWAP1 SUB SWAP10 SWAP4 SWAP9 POP SWAP3 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1D90 PUSH2 0x2AF3 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH2 0x1D9D PUSH2 0x31B9 JUMP JUMPDEST PUSH2 0x1DA8 DUP4 DUP4 DUP7 PUSH2 0x3217 JUMP JUMPDEST PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x18160DDD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1DFB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1E0F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1E25 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xA24835D100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP9 SWAP1 MSTORE SWAP1 MLOAD SWAP3 SWAP4 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP2 AND SWAP2 PUSH4 0xA24835D1 SWAP2 PUSH1 0x44 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1E96 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1EAA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0xF89 DUP4 DUP4 DUP4 DUP8 PUSH2 0x2B4D JUMP JUMPDEST PUSH2 0x1EC2 PUSH2 0x2A36 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x2 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x2 DUP2 DIV DUP5 ADD DUP2 ISZERO ISZERO PUSH2 0x1F05 JUMPI INVALID JUMPDEST DIV SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x1 DUP2 JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x1F38 PUSH2 0x2AF3 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH2 0x1F45 PUSH2 0x353E JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x0 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4861 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SLOAD PUSH2 0x1F7C SWAP1 CALLVALUE PUSH4 0xFFFFFFFF PUSH2 0x3580 AND JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4861 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP3 SWAP1 SWAP3 SSTORE PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x18160DDD00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP4 PUSH4 0x18160DDD SWAP4 PUSH1 0x4 DUP1 DUP5 ADD SWAP5 SWAP3 SWAP4 DUP4 SWAP1 SUB ADD SWAP1 DUP3 SWAP1 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2006 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x201A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2030 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP10 POP PUSH2 0x204B PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48C1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x2E12 JUMP JUMPDEST PUSH1 0x7 SLOAD SWAP1 SWAP10 POP SWAP8 POP PUSH1 0x0 SWAP7 POP JUMPDEST DUP8 DUP8 LT ISZERO PUSH2 0x2398 JUMPI PUSH1 0x7 DUP1 SLOAD DUP9 SWAP1 DUP2 LT PUSH2 0x206E JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP6 POP PUSH1 0x8 PUSH1 0x0 DUP8 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD SWAP5 POP DUP9 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xEBBB2158 DUP12 DUP8 PUSH1 0x9 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH4 0xFFFFFFFF AND DUP16 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH4 0xFFFFFFFF AND PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP5 POP POP POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2138 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x214C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2162 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP4 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ ISZERO PUSH2 0x22C4 JUMPI DUP4 CALLVALUE GT ISZERO PUSH2 0x21C2 JUMPI PUSH1 0x40 MLOAD CALLER SWAP1 CALLVALUE DUP7 SWAP1 SUB DUP1 ISZERO PUSH2 0x8FC MUL SWAP2 PUSH1 0x0 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x21BC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH2 0x22BF JUMP JUMPDEST DUP4 CALLVALUE LT ISZERO PUSH2 0x22BF JUMPI CALLVALUE ISZERO PUSH2 0x2220 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4554485F56414C55450000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x9 SLOAD PUSH2 0x2248 SWAP1 PUSH13 0x1000000000000000000000000 SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER ADDRESS DUP8 PUSH2 0x35E0 JUMP JUMPDEST PUSH1 0x9 PUSH1 0xC SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x2E1A7D4D DUP6 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x22A6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x22BA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMPDEST PUSH2 0x22D0 JUMP JUMPDEST PUSH2 0x22D0 DUP7 CALLER ADDRESS DUP8 PUSH2 0x35E0 JUMP JUMPDEST PUSH2 0x22E0 DUP6 DUP6 PUSH4 0xFFFFFFFF PUSH2 0x36C8 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP2 SWAP1 SSTORE SWAP3 POP PUSH2 0x230D DUP11 DUP13 PUSH4 0xFFFFFFFF PUSH2 0x36C8 AND JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP7 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP7 SWAP1 MSTORE DUP1 DUP3 ADD DUP4 SWAP1 MSTORE SWAP1 MLOAD SWAP2 SWAP4 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 AND SWAP2 CALLER SWAP2 PUSH32 0x4A1A2A6176E9646D9E3157F7C2AB3C499F18337C0B0828CFB28E0A61DE4A11F7 SWAP2 SWAP1 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG3 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH4 0xFFFFFFFF AND PUSH2 0x238D DUP3 DUP8 DUP6 DUP5 PUSH2 0x3725 JUMP JUMPDEST PUSH1 0x1 SWAP1 SWAP7 ADD SWAP6 PUSH2 0x2058 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x867904B400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP15 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP2 PUSH4 0x867904B4 SWAP2 PUSH1 0x44 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2404 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2418 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x1 PUSH1 0x4 SSTORE POP POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x2436 PUSH2 0x2A36 JUMP JUMPDEST PUSH2 0x243E PUSH2 0x3794 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x2455 PUSH2 0xD4B JUMP JUMPDEST PUSH2 0xFFFF AND PUSH32 0x6B08C2E2C9969E55A647A764DB9B554D64DC42F1A704DA11A6D5B129AD163F2C PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 JUMP JUMPDEST PUSH1 0x7 DUP1 SLOAD DUP3 SWAP1 DUP2 LT PUSH2 0x2495 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP1 POP DUP2 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x24D7 PUSH2 0x2A36 JUMP JUMPDEST PUSH2 0x24EE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4881 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x2E12 JUMP JUMPDEST PUSH1 0x5 SLOAD SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x2508 PUSH2 0xD4B JUMP JUMPDEST PUSH2 0xFFFF AND PUSH32 0x6B08C2E2C9969E55A647A764DB9B554D64DC42F1A704DA11A6D5B129AD163F2C PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH2 0x2541 DUP2 PUSH2 0x298A JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x90F58C9600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 AND SWAP2 PUSH4 0x90F58C96 SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x25A2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x25B6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0xBE0 PUSH2 0x1793 JUMP JUMPDEST PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD PUSH4 0xFFFFFFFF DUP2 AND SWAP1 PUSH1 0xFF PUSH5 0x100000000 DUP3 DIV DUP2 AND SWAP2 PUSH6 0x10000000000 DUP2 DIV DUP3 AND SWAP2 PUSH7 0x1000000000000 SWAP1 SWAP2 DIV AND DUP6 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2613 DUP3 PUSH2 0x2619 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0x2625 DUP2 PUSH2 0x2A86 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x264C PUSH2 0x2AF3 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH32 0x536F7672796E537761704E6574776F726B000000000000000000000000000000 PUSH2 0x267B DUP2 PUSH2 0x3031 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 DUP2 AND SWAP1 DUP8 AND EQ ISZERO PUSH2 0x26DF JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F534F555243455F54415247455400000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND ISZERO DUP1 PUSH2 0x2822 JUMPI POP PUSH1 0x6 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x3AF32ABF00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP2 PUSH4 0x3AF32ABF SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x275A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x276E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2784 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD DUP1 ISZERO PUSH2 0x2822 JUMPI POP PUSH1 0x6 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x3AF32ABF00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP2 PUSH4 0x3AF32ABF SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x27F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2809 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x281F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD JUMPDEST ISZERO ISZERO PUSH2 0x2878 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4E4F545F57484954454C495354454400000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x2885 DUP8 DUP8 DUP8 DUP8 DUP8 PUSH2 0x37FF JUMP JUMPDEST PUSH1 0x1 PUSH1 0x4 SSTORE SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x289D PUSH2 0x2A36 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH4 0xFFFFFFFF PUSH5 0x100000000 SWAP1 SWAP2 DIV DUP2 AND SWAP1 DUP3 AND GT ISZERO PUSH2 0x2909 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F434F4E56455253494F4E5F464545000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH4 0xFFFFFFFF PUSH9 0x10000000000000000 SWAP1 SWAP4 DIV DUP4 AND DUP2 MSTORE SWAP2 DUP4 AND PUSH1 0x20 DUP4 ADD MSTORE DUP1 MLOAD PUSH32 0x81CD2FFB37DD237C0E4E2A3DE5265FCF9DEB43D3E7801E80DB9F1CCFBA7EE600 SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG1 PUSH1 0x9 DUP1 SLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP3 AND PUSH9 0x10000000000000000 MUL PUSH12 0xFFFFFFFF0000000000000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x2992 PUSH2 0x2A36 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x29F8 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F4F574E4552000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0xCAE JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48E1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO PUSH2 0xBE0 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4841 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x4 SLOAD PUSH1 0x1 EQ PUSH2 0xCAE JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5245454E5452414E4359000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x2B61 PUSH2 0x353E JUMP JUMPDEST PUSH2 0x2B78 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48C1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x2E12 JUMP JUMPDEST SWAP8 POP PUSH2 0x2B8A DUP11 DUP11 PUSH4 0xFFFFFFFF PUSH2 0x3580 AND JUMP JUMPDEST SWAP7 POP PUSH1 0x0 SWAP6 POP JUMPDEST DUP12 MLOAD DUP7 LT ISZERO PUSH2 0x2E04 JUMPI DUP12 DUP7 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x2BA8 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD SWAP5 POP PUSH1 0x8 PUSH1 0x0 DUP7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD SWAP4 POP DUP8 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x8074590A DUP12 DUP7 PUSH1 0x9 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH4 0xFFFFFFFF AND DUP14 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH4 0xFFFFFFFF AND PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP5 POP POP POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2C5E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2C72 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2C88 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD DUP12 MLOAD SWAP1 SWAP4 POP DUP12 SWAP1 DUP8 SWAP1 DUP2 LT PUSH2 0x2C9B JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MLOAD DUP4 LT ISZERO PUSH2 0x2CFC JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5A45524F5F5441524745545F414D4F554E5400000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x2D0C DUP5 DUP5 PUSH4 0xFFFFFFFF PUSH2 0x3580 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP3 SWAP1 SSTORE SWAP1 SWAP3 POP PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ ISZERO PUSH2 0x2D72 JUMPI PUSH1 0x40 MLOAD CALLER SWAP1 DUP5 ISZERO PUSH2 0x8FC MUL SWAP1 DUP6 SWAP1 PUSH1 0x0 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x2D6C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH2 0x2D7D JUMP JUMPDEST PUSH2 0x2D7D DUP6 CALLER DUP6 PUSH2 0x3AD2 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP5 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 SWAP1 MSTORE DUP1 DUP3 ADD DUP10 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND SWAP2 CALLER SWAP2 PUSH32 0xBC7D19D505C7EC4DB83F3B51F19FB98C4C8A99922E7839D1EE608DFBEE29501B SWAP2 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG3 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH4 0xFFFFFFFF AND PUSH2 0x2DF9 DUP8 DUP7 DUP5 DUP5 PUSH2 0x3725 JUMP JUMPDEST PUSH1 0x1 SWAP1 SWAP6 ADD SWAP5 PUSH2 0x2B91 JUMP JUMPDEST POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xBB34534C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP2 PUSH4 0xBB34534C SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2E78 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2E8C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2EA2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ADDRESS EQ ISZERO PUSH2 0xBE0 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F414444524553535F49535F53454C4600000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x2F13 PUSH2 0x2A36 JUMP JUMPDEST DUP3 PUSH2 0x2F1D DUP2 PUSH2 0x30E4 JUMP JUMPDEST DUP3 PUSH2 0x2F27 DUP2 PUSH2 0x30E4 JUMP JUMPDEST DUP4 PUSH2 0x2F31 DUP2 PUSH2 0x2EAA JUMP JUMPDEST PUSH2 0x1413 DUP7 DUP7 DUP7 PUSH2 0x3AD2 JUMP JUMPDEST DUP1 PUSH2 0x2F46 DUP2 PUSH2 0x2A86 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 AND PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ ISZERO PUSH2 0x2F86 JUMPI PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 ADDRESS BALANCE SWAP1 SSTORE PUSH2 0x302D JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2FE7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2FFB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x3011 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x303A DUP2 PUSH2 0x2E12 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0xBE0 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48E1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x308F PUSH2 0xBE3 JUMP JUMPDEST ISZERO PUSH2 0xCAE JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xA PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F41435449564500000000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0xBE0 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 PUSH4 0xFFFFFFFF AND GT DUP1 ISZERO PUSH2 0x3163 JUMPI POP PUSH3 0xF4240 PUSH4 0xFFFFFFFF DUP3 AND GT ISZERO JUMPDEST ISZERO ISZERO PUSH2 0xBE0 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F574549474854000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x31C1 PUSH2 0xBE3 JUMP JUMPDEST ISZERO ISZERO PUSH2 0xCAE JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E4143544956450000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x7 SLOAD DUP4 MLOAD PUSH1 0x0 SWAP2 DUP3 SWAP2 DUP2 EQ PUSH2 0x3265 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4841 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP5 MLOAD DUP2 EQ PUSH2 0x32BD JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F414D4F554E540000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 SWAP3 POP JUMPDEST DUP1 DUP4 LT ISZERO PUSH2 0x347B JUMPI PUSH1 0x8 PUSH1 0x0 DUP8 DUP6 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x32DC JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP3 MSTORE DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH1 0xFF PUSH7 0x1000000000000 SWAP1 SWAP2 DIV AND ISZERO ISZERO PUSH2 0x3354 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4841 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 SWAP2 POP JUMPDEST DUP1 DUP3 LT ISZERO PUSH2 0x33BC JUMPI DUP6 DUP3 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x336F JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x7 DUP5 DUP2 SLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3391 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ ISZERO PUSH2 0x33B1 JUMPI PUSH2 0x33BC JUMP JUMPDEST PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x3359 JUMP JUMPDEST DUP1 DUP3 LT PUSH2 0x3401 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4841 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP6 DUP5 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3411 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MLOAD GT PUSH2 0x3470 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F414D4F554E540000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 PUSH2 0x32C2 JUMP JUMPDEST PUSH1 0x0 DUP5 GT PUSH2 0x1413 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xF PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5A45524F5F414D4F554E540000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO PUSH2 0x34ED JUMPI PUSH2 0x34E6 DUP5 DUP5 PUSH2 0x3B89 JUMP JUMPDEST SWAP1 POP PUSH2 0x34FB JUMP JUMPDEST PUSH2 0x34F8 DUP5 DUP5 DUP5 PUSH2 0x3D90 JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x0 SWAP1 PUSH2 0x2613 SWAP1 PUSH3 0xF4240 SWAP1 PUSH2 0x3532 SWAP1 DUP6 SWAP1 PUSH9 0x10000000000000000 SWAP1 DIV PUSH4 0xFFFFFFFF SWAP1 DUP2 AND SWAP1 PUSH2 0x4150 AND JUMP JUMPDEST SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x41C9 AND JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x302D JUMPI PUSH2 0x3578 PUSH1 0x7 DUP3 DUP2 SLOAD DUP2 LT ISZERO ISZERO PUSH2 0x355E JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x2F3C JUMP JUMPDEST PUSH1 0x1 ADD PUSH2 0x3544 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT ISZERO PUSH2 0x35DA JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F554E444552464C4F5700000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP SWAP1 SUB SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x7472616E7366657246726F6D28616464726573732C616464726573732C75696E DUP2 MSTORE PUSH32 0x7432353629000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP3 MLOAD SWAP2 DUP3 SWAP1 SUB PUSH1 0x25 ADD DUP3 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP9 AND PUSH1 0x24 DUP6 ADD MSTORE DUP7 AND PUSH1 0x44 DUP5 ADD MSTORE PUSH1 0x64 DUP1 DUP5 ADD DUP7 SWAP1 MSTORE DUP5 MLOAD DUP1 DUP6 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x84 SWAP1 SWAP4 ADD SWAP1 SWAP4 MSTORE DUP2 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE PUSH2 0x36C2 SWAP1 DUP6 SWAP1 PUSH2 0x4237 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 ADD DUP4 DUP2 LT ISZERO PUSH2 0x34FB JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP6 AND SWAP2 AND PUSH32 0x77F29993CF2C084E726F7E802DA0719D6A0ADE3E204BADC7A3FFD57ECB768C24 PUSH2 0x3763 DUP6 PUSH3 0xF4240 PUSH2 0x4150 JUMP JUMPDEST PUSH2 0x3776 DUP9 PUSH4 0xFFFFFFFF DUP1 DUP9 AND SWAP1 PUSH2 0x4150 AND JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB ADD SWAP1 LOG3 POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH2 0x379E PUSH2 0x1B85 JUMP JUMPDEST PUSH2 0xFFFF AND GT PUSH2 0x37F7 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F434F554E5400000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0xCAE PUSH2 0x42C5 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x3810 DUP10 DUP10 DUP10 PUSH2 0x1BE1 JUMP JUMPDEST SWAP1 SWAP4 POP SWAP2 POP DUP3 ISZERO ISZERO PUSH2 0x386C JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5A45524F5F5441524745545F414D4F554E5400000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x3875 DUP9 PUSH2 0x2619 JUMP JUMPDEST SWAP1 POP DUP1 DUP4 LT PUSH2 0x3880 JUMPI INVALID JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP10 AND PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ ISZERO PUSH2 0x38FB JUMPI CALLVALUE DUP8 EQ PUSH2 0x38F6 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4554485F414D4F554E545F4D49534D41544348000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x3A03 JUMP JUMPDEST CALLVALUE ISZERO DUP1 ISZERO PUSH2 0x39AD JUMPI POP DUP7 PUSH2 0x39AA PUSH2 0x3911 DUP12 PUSH2 0x2619 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP15 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3972 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3986 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x399C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x3580 AND JUMP JUMPDEST LT ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x3A03 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F414D4F554E540000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x3A0C DUP10 PUSH2 0x2F3C JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x3A35 SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0x3580 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP10 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ ISZERO PUSH2 0x3AA2 JUMPI PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND SWAP1 DUP5 ISZERO PUSH2 0x8FC MUL SWAP1 DUP6 SWAP1 PUSH1 0x0 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x3A9C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH2 0x3AAD JUMP JUMPDEST PUSH2 0x3AAD DUP9 DUP7 DUP6 PUSH2 0x3AD2 JUMP JUMPDEST PUSH2 0x3ABB DUP10 DUP10 DUP9 DUP11 DUP8 DUP8 PUSH2 0x43A3 JUMP JUMPDEST PUSH2 0x3AC5 DUP10 DUP10 PUSH2 0x4428 JUMP JUMPDEST POP SWAP1 SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x7472616E7366657228616464726573732C75696E743235362900000000000000 DUP2 MSTORE DUP2 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x19 ADD DUP2 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x64 SWAP1 SWAP3 ADD SWAP1 SWAP3 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE PUSH2 0x3B84 SWAP1 DUP5 SWAP1 PUSH2 0x4237 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x3B98 DUP6 PUSH2 0x1B8B JUMP JUMPDEST SWAP3 POP PUSH1 0x0 SWAP2 POP JUMPDEST DUP6 MLOAD DUP3 LT ISZERO PUSH2 0x3D86 JUMPI DUP6 MLOAD PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP1 DUP8 SWAP1 DUP5 SWAP1 DUP2 LT PUSH2 0x3BC6 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ PUSH2 0x3C18 JUMPI PUSH2 0x3C18 DUP7 DUP4 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3BEF JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD CALLER ADDRESS DUP9 DUP7 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3C09 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH2 0x35E0 JUMP JUMPDEST DUP5 DUP3 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3C26 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x8 PUSH1 0x0 DUP9 DUP6 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3C42 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP3 MSTORE DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 SSTORE DUP6 MLOAD DUP7 SWAP1 DUP4 SWAP1 DUP2 LT PUSH2 0x3C73 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH32 0x4A1A2A6176E9646D9E3157F7C2AB3C499F18337C0B0828CFB28E0A61DE4A11F7 DUP8 DUP6 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3CBF JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD DUP9 DUP7 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3CD7 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x40 DUP1 MLOAD SWAP4 DUP5 MSTORE SWAP2 DUP4 ADD MSTORE DUP2 DUP2 ADD DUP9 SWAP1 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG3 PUSH1 0x8 PUSH1 0x0 DUP8 DUP5 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3D0F JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP3 MSTORE DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD SLOAD DUP7 MLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP2 AND SWAP2 POP PUSH2 0x3D7B SWAP1 DUP5 SWAP1 DUP9 SWAP1 DUP6 SWAP1 DUP2 LT PUSH2 0x3D53 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD DUP8 DUP6 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3D6B JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD DUP5 PUSH2 0x3725 JUMP JUMPDEST PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x3B9F JUMP JUMPDEST POP SWAP1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x3DA7 PUSH2 0x353E JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x0 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4861 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SLOAD PUSH2 0x3DDE SWAP1 CALLVALUE PUSH4 0xFFFFFFFF PUSH2 0x3580 AND JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x0 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4861 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SSTORE PUSH2 0x3E1C PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48C1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x2E12 JUMP JUMPDEST SWAP9 POP PUSH2 0x3E2A DUP10 DUP13 DUP16 DUP16 PUSH2 0x4636 JUMP JUMPDEST SWAP8 POP PUSH2 0x3E3C DUP12 DUP10 PUSH4 0xFFFFFFFF PUSH2 0x36C8 AND JUMP JUMPDEST SWAP7 POP PUSH1 0x0 SWAP6 POP JUMPDEST DUP13 MLOAD DUP7 LT ISZERO PUSH2 0x413F JUMPI DUP13 DUP7 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3E5A JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD SWAP5 POP PUSH1 0x8 PUSH1 0x0 DUP7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD SWAP4 POP DUP9 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xEBBB2158 DUP13 DUP7 PUSH1 0x9 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH4 0xFFFFFFFF AND DUP13 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH4 0xFFFFFFFF AND PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP5 POP POP POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3F10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3F24 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x3F3A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP3 POP PUSH1 0x0 DUP4 GT PUSH2 0x3F96 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5A45524F5F5441524745545F414D4F554E5400000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP12 DUP7 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3FA4 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MLOAD DUP4 GT ISZERO PUSH2 0x3FB7 JUMPI INVALID JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ PUSH2 0x3FE6 JUMPI PUSH2 0x3FE1 DUP6 CALLER ADDRESS DUP7 PUSH2 0x35E0 JUMP JUMPDEST PUSH2 0x4059 JUMP JUMPDEST DUP3 DUP13 DUP8 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3FF5 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD GT ISZERO PUSH2 0x4059 JUMPI CALLER PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x8FC DUP5 DUP15 DUP10 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x4021 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD SUB SWAP1 DUP2 ISZERO MUL SWAP1 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x4057 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP JUMPDEST PUSH2 0x4069 DUP5 DUP5 PUSH4 0xFFFFFFFF PUSH2 0x36C8 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP5 SWAP1 SSTORE DUP2 MLOAD DUP8 DUP2 MSTORE SWAP1 DUP2 ADD DUP5 SWAP1 MSTORE DUP1 DUP3 ADD DUP12 SWAP1 MSTORE SWAP1 MLOAD SWAP3 SWAP5 POP SWAP1 SWAP2 CALLER SWAP2 PUSH32 0x4A1A2A6176E9646D9E3157F7C2AB3C499F18337C0B0828CFB28E0A61DE4A11F7 SWAP2 SWAP1 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG3 PUSH1 0x8 PUSH1 0x0 DUP15 DUP9 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x40DF JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP3 MSTORE DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD SLOAD DUP14 MLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP2 AND SWAP2 POP PUSH2 0x4134 SWAP1 DUP9 SWAP1 DUP16 SWAP1 DUP10 SWAP1 DUP2 LT PUSH2 0x4123 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD DUP5 DUP5 PUSH2 0x3725 JUMP JUMPDEST PUSH1 0x1 SWAP1 SWAP6 ADD SWAP5 PUSH2 0x3E43 JUMP JUMPDEST POP SWAP6 SWAP12 SWAP11 POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 ISZERO ISZERO PUSH2 0x4163 JUMPI PUSH1 0x0 SWAP2 POP PUSH2 0x177D JUMP JUMPDEST POP DUP3 DUP3 MUL DUP3 DUP5 DUP3 DUP2 ISZERO ISZERO PUSH2 0x4173 JUMPI INVALID JUMPDEST DIV EQ PUSH2 0x34FB JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP4 GT PUSH2 0x4223 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4449564944455F42595F5A45524F0000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP3 DUP5 DUP2 ISZERO ISZERO PUSH2 0x422E JUMPI INVALID JUMPDEST DIV SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0x423F PUSH2 0x4821 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE POP SWAP1 POP PUSH1 0x20 DUP2 DUP4 MLOAD PUSH1 0x20 DUP6 ADD PUSH1 0x0 DUP8 GAS CALL DUP1 ISZERO ISZERO PUSH2 0x426C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD ISZERO ISZERO PUSH2 0x3B84 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5452414E534645525F4641494C454400000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x42CD PUSH2 0x2A36 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x42D7 PUSH2 0x1B85 JUMP JUMPDEST PUSH2 0xFFFF AND GT PUSH2 0x4330 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F434F554E5400000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x79BA5097 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x4383 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x4397 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0xCAE PUSH2 0x353E JUMP JUMPDEST PUSH32 0x8000000000000000000000000000000000000000000000000000000000000000 DUP2 LT PUSH2 0x43CC JUMPI INVALID JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP5 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 SWAP1 MSTORE DUP1 DUP3 ADD DUP4 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP8 AND SWAP3 DUP9 DUP3 AND SWAP3 SWAP2 DUP11 AND SWAP2 PUSH32 0x276856B36CBC45526A0BA64F44611557A2A8B68662C5388E9FE6D72E86E1C8CB SWAP2 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG4 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x18160DDD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x4486 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x449A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x44B0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP7 POP PUSH2 0x44BD DUP10 PUSH2 0x2619 JUMP JUMPDEST SWAP6 POP PUSH2 0x44C8 DUP9 PUSH2 0x2619 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 PUSH1 0x1 SWAP1 DUP2 ADD SLOAD SWAP4 DUP14 AND DUP4 MSTORE SWAP2 KECCAK256 ADD SLOAD SWAP2 SWAP7 POP PUSH4 0xFFFFFFFF SWAP1 DUP2 AND SWAP6 POP SWAP1 DUP2 AND SWAP4 POP PUSH2 0x4511 SWAP1 DUP7 SWAP1 DUP7 SWAP1 PUSH2 0x4150 AND JUMP JUMPDEST SWAP2 POP PUSH2 0x4526 DUP7 PUSH4 0xFFFFFFFF DUP1 DUP7 AND SWAP1 PUSH2 0x4150 AND JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP5 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP4 SWAP1 MSTORE DUP2 MLOAD SWAP3 SWAP4 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP13 AND SWAP4 SWAP1 DUP14 AND SWAP3 PUSH32 0x77F29993CF2C084E726F7E802DA0719D6A0ADE3E204BADC7A3FFD57ECB768C24 SWAP3 DUP3 SWAP1 SUB ADD SWAP1 LOG3 PUSH2 0x457D DUP8 DUP11 DUP9 DUP8 PUSH2 0x3725 JUMP JUMPDEST PUSH2 0x4589 DUP8 DUP10 DUP8 DUP7 PUSH2 0x3725 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP9 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP9 SWAP1 MSTORE PUSH4 0xFFFFFFFF DUP7 AND DUP2 DUP4 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND SWAP2 PUSH32 0x8A6A7F53B3C8FA1DC4B83E3F1BE668C1B251FF8D44CDCB83EB3ACEC3FEC6A788 SWAP2 SWAP1 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG2 PUSH1 0x40 DUP1 MLOAD DUP9 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP8 SWAP1 MSTORE PUSH4 0xFFFFFFFF DUP6 AND DUP2 DUP4 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP11 AND SWAP2 PUSH32 0x8A6A7F53B3C8FA1DC4B83E3F1BE668C1B251FF8D44CDCB83EB3ACEC3FEC6A788 SWAP2 SWAP1 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG2 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x1 JUMPDEST DUP5 MLOAD DUP2 LT ISZERO PUSH2 0x46F9 JUMPI PUSH2 0x46A1 PUSH1 0x8 PUSH1 0x0 DUP8 DUP5 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x465A JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP3 MSTORE DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 SLOAD DUP6 MLOAD DUP7 SWAP1 DUP6 SWAP1 DUP2 LT PUSH2 0x468B JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MLOAD SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x4150 AND JUMP JUMPDEST PUSH2 0x46E7 PUSH1 0x8 PUSH1 0x0 DUP9 DUP7 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x46B6 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP3 MSTORE DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 SLOAD DUP7 MLOAD DUP8 SWAP1 DUP6 SWAP1 DUP2 LT PUSH2 0x468B JUMPI INVALID JUMPDEST LT ISZERO PUSH2 0x46F1 JUMPI DUP1 SWAP2 POP JUMPDEST PUSH1 0x1 ADD PUSH2 0x463C JUMP JUMPDEST DUP7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x2F55BDB5 DUP8 PUSH1 0x8 PUSH1 0x0 DUP10 DUP8 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x471B JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP3 MSTORE DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH1 0x9 SLOAD DUP9 MLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP2 AND SWAP1 DUP10 SWAP1 DUP9 SWAP1 DUP2 LT PUSH2 0x4758 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH4 0xFFFFFFFF AND PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP5 POP POP POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x47BC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x47D0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x47E6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xA0 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE SWAP2 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x60 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 SWAP1 PUSH1 0x20 DUP3 MUL DUP1 CODESIZE DUP4 CODECOPY POP SWAP2 SWAP3 SWAP2 POP POP JUMP STOP GASLIMIT MSTORE MSTORE 0x5f 0x49 0x4e JUMP COINBASE 0x4c 0x49 DIFFICULTY 0x5f MSTORE GASLIMIT MSTORE8 GASLIMIT MSTORE JUMP GASLIMIT STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP CALLDATALOAD EXTCODECOPY 0x2e 0xb9 0xe5 GASPRICE 0x4a 0x4a PUSH14 0x45D72082FF2E9DC829D112561877 0x2a DUP4 0xeb 0xe PUSH32 0x86632C42536F7672796E53776170436F6E766572746572557067726164657200 STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee MSTORE8 PUSH16 0x7672796E53776170466F726D756C6100 STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP GASLIMIT MSTORE MSTORE 0x5f COINBASE NUMBER NUMBER GASLIMIT MSTORE8 MSTORE8 0x5f DIFFICULTY GASLIMIT 0x4e 0x49 GASLIMIT DIFFICULTY STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 ORIGIN 0x4b NUMBER PUSH5 0xD6A1792677 0xc2 REVERT DUP3 0xe3 SGT 0xb6 0x2b SWAP13 0xc9 JUMPI 0xd5 DUP10 0x49 INVALID SWAP9 0x23 0xa7 0xcc PUSH2 0xA1A 0xc SDIV STOP 0x29 ", - "sourceMap": "452:24101:23:-;;;249:1:68;362:32;;519:89:23;2700:30:4;519:89:23;1487:220;5:2:-1;;;;30:1;27;20:12;5:2;1487:220:23;;;;;;;;;;;;;;;;;;;;;;;;;488:5:66;:18;;-1:-1:-1;;;;;;488:18:66;496:10;488:18;;;1487:220:23;;;;;;;;475:23:72;1487:220:23;475:13:72;;;;:23;:::i;:::-;-1:-1:-1;1931:8:60;:39;;-1:-1:-1;;;;;1931:39:60;;;-1:-1:-1;;;;;;1931:39:60;;;;;;;;1974:12;:43;;;;;;;;5395:7:4;475:23:72;5395:7:4;475:13:72;;;;:23;:::i;:::-;5457:17:4;6403:35;5457:17;6403:19;;;;:35;:::i;:::-;-1:-1:-1;;5480:6:4;:16;;-1:-1:-1;;;;;5480:16:4;;;-1:-1:-1;;;;;;5480:16:4;;;;;;;;;;-1:-1:-1;5500:16:4;:36;;;;;;;;-1:-1:-1;;5500:36:4;;;;;;;;;-1:-1:-1;452:24101:23;;-1:-1:-1;;;;;452:24101:23;553:117:72;-1:-1:-1;;;;;620:22:72;;;;612:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;553:117;:::o;6493:156:4:-;1826:7;6571:43;;;;;6563:82;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;452:24101:23;;;;;;;" - }, - "deployedBytecode": { - "linkReferences": {}, - "object": "6080604052600436106102585763ffffffff60e060020a600035041663024c7ec781146102e45780630c7d5cd8146102fe5780630e53aae91461032c57806312c2aca41461038157806319b64015146103aa5780631cfab290146103de5780631e1401f8146103ff57806321e6b53d1461044257806322f3e2d4146104635780632fe8a6ad1461047857806338a5e0161461048d578063395900d4146104a25780633e8ff43f146104cc578063415f1240146104f857806349d10b64146105105780634af80f0e1461052557806354fd4d5014610546578063579cd3ca1461055b5780635e35359e1461057057806361cd756e1461059a57806367b6d57c146105af578063690d8320146105d05780636a49d2c4146105f15780636aa5332c1461061b57806371f52bf31461064557806379ba50971461065a5780637b1039991461066f5780637d8916bd146106845780638da5cb5b1461070757806394c275ad1461071c5780639b99a8e214610731578063a60e772414610746578063af94b8d81461079b578063b127c0a5146107c5578063b4a176d314610858578063bbb7e5d81461086d578063bf75455814610888578063c45d3d921461089d578063ca1d209d146108b2578063cdc91c69146108bd578063d031370b146108d2578063d260529c146108ea578063d3fb73b4146108ff578063d4ee1d9014610914578063d55ec69714610929578063d66bd5241461093e578063d89595121461095f578063dc8de37914610980578063e8dc12ff146109a1578063ecbca55d146109cb578063f2fde38b146109e9578063fc0c546a14610a0a575b6000805160206148a183398151915260005260086020527f353c2eb9e53a4a4a6d45d72082ff2e9dc829d1125618772a83eb0e7f86632c43546601000000000000900460ff1615156102e2576040805160e560020a62461bcd0281526020600482015260136024820152600080516020614841833981519152604482015290519081900360640190fd5b005b3480156102f057600080fd5b506102e26004351515610a1f565b34801561030a57600080fd5b50610313610a67565b6040805163ffffffff9092168252519081900360200190f35b34801561033857600080fd5b5061034d600160a060020a0360043516610a73565b6040805195865263ffffffff9094166020860152911515848401521515606084015215156080830152519081900360a00190f35b34801561038d57600080fd5b50610396610b0e565b604080519115158252519081900360200190f35b3480156103b657600080fd5b506103c2600435610b57565b60408051600160a060020a039092168252519081900360200190f35b3480156103ea57600080fd5b50610313600160a060020a0360043516610b83565b34801561040b57600080fd5b50610429600160a060020a0360043581169060243516604435610bb5565b6040805192835260208301919091528051918290030190f35b34801561044e57600080fd5b506102e2600160a060020a0360043516610bcf565b34801561046f57600080fd5b50610396610be3565b34801561048457600080fd5b50610396610c7d565b34801561049957600080fd5b506102e2610c9e565b3480156104ae57600080fd5b506102e2600160a060020a0360043581169060243516604435610cb0565b3480156104d857600080fd5b506104e1610d4b565b6040805161ffff9092168252519081900360200190f35b34801561050457600080fd5b506102e2600435610d50565b34801561051c57600080fd5b506102e2610f94565b34801561053157600080fd5b506102e2600160a060020a0360043516611201565b34801561055257600080fd5b506104e1611243565b34801561056757600080fd5b50610313611248565b34801561057c57600080fd5b506102e2600160a060020a0360043581169060243516604435611260565b3480156105a657600080fd5b506103c2611369565b3480156105bb57600080fd5b506102e2600160a060020a0360043516611378565b3480156105dc57600080fd5b506102e2600160a060020a036004351661141b565b3480156105fd57600080fd5b506102e2600160a060020a036004351663ffffffff60243516611520565b34801561062757600080fd5b5061063360043561175f565b60408051918252519081900360200190f35b34801561065157600080fd5b506104e1611784565b34801561066657600080fd5b506102e2611793565b34801561067b57600080fd5b506103c2611854565b604080516020600480358082013583810280860185019096528085526102e295369593946024949385019291829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a99890198929750908201955093508392508501908490808284375094975050933594506118639350505050565b34801561071357600080fd5b506103c2611b62565b34801561072857600080fd5b50610313611b71565b34801561073d57600080fd5b506104e1611b85565b34801561075257600080fd5b506040805160206004803580820135838102808601850190965280855261063395369593946024949385019291829185019084908082843750949750611b8b9650505050505050565b3480156107a757600080fd5b50610429600160a060020a0360043581169060243516604435611be1565b3480156107d157600080fd5b506040805160206004602480358281013584810280870186019097528086526102e296843596369660449591949091019291829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750949750611d869650505050505050565b34801561086457600080fd5b506102e2611eba565b34801561087957600080fd5b50610633600435602435611ef3565b34801561089457600080fd5b50610396611f0d565b3480156108a957600080fd5b506103c2611f12565b6102e2600435611f21565b3480156108c957600080fd5b506102e261242e565b3480156108de57600080fd5b506103c2600435612487565b3480156108f657600080fd5b50610396610d4b565b34801561090b57600080fd5b506103c26124af565b34801561092057600080fd5b506103c26124be565b34801561093557600080fd5b506102e26124cd565b34801561094a57600080fd5b5061034d600160a060020a03600435166125c2565b34801561096b57600080fd5b50610633600160a060020a0360043516612608565b34801561098c57600080fd5b50610633600160a060020a0360043516612619565b610633600160a060020a036004358116906024358116906044359060643581169060843516612642565b3480156109d757600080fd5b506102e263ffffffff60043516612895565b3480156109f557600080fd5b506102e2600160a060020a036004351661298a565b348015610a1657600080fd5b506103c2612a27565b610a27612a36565b60038054911515740100000000000000000000000000000000000000000274ff000000000000000000000000000000000000000019909216919091179055565b60095463ffffffff1681565b6000806000806000610a836147f3565b50505050600160a060020a03929092166000908152600860209081526040808320815160a081018352815480825260019092015463ffffffff811694820185905260ff64010000000082048116151594830194909452650100000000008104841615156060830152660100000000000090049092161515608090920182905295919450919250829190565b6000805160206148a183398151915260005260086020527f353c2eb9e53a4a4a6d45d72082ff2e9dc829d1125618772a83eb0e7f86632c43546601000000000000900460ff1690565b6000600782815481101515610b6857fe5b600091825260209091200154600160a060020a031692915050565b600081610b8f81612a86565b5050600160a060020a031660009081526008602052604090206001015463ffffffff1690565b600080610bc3858585611be1565b91509150935093915050565b610bd7612a36565b610be081611378565b50565b600030600160a060020a0316600560009054906101000a9004600160a060020a0316600160a060020a0316638da5cb5b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610c4257600080fd5b505af1158015610c56573d6000803e3d6000fd5b505050506040513d6020811015610c6c57600080fd5b5051600160a060020a031614905090565b60035474010000000000000000000000000000000000000000900460ff1681565b610ca6612a36565b610cae61242e565b565b610cb8612a36565b600554604080517f5e35359e000000000000000000000000000000000000000000000000000000008152600160a060020a03868116600483015285811660248301526044820185905291519190921691635e35359e91606480830192600092919082900301818387803b158015610d2e57600080fd5b505af1158015610d42573d6000803e3d6000fd5b50505050505050565b600190565b600060606000610d5e612af3565b600260045560008411610dbb576040805160e560020a62461bcd02815260206004820152600f60248201527f4552525f5a45524f5f414d4f554e540000000000000000000000000000000000604482015290519081900360640190fd5b600560009054906101000a9004600160a060020a0316600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610e0e57600080fd5b505af1158015610e22573d6000803e3d6000fd5b505050506040513d6020811015610e3857600080fd5b5051600554604080517fa24835d1000000000000000000000000000000000000000000000000000000008152336004820152602481018890529051929550600160a060020a039091169163a24835d19160448082019260009290919082900301818387803b158015610ea957600080fd5b505af1158015610ebd573d6000803e3d6000fd5b50505050600780549050604051908082528060200260200182016040528015610ef0578160200160208202803883390190505b509150600090505b8151811015610f235760018282815181101515610f1157fe5b60209081029091010152600101610ef8565b610f896007805480602002602001604051908101604052809291908181526020018280548015610f7c57602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311610f5e575b5050505050838587612b4d565b505060016004555050565b60008054600160a060020a0316331480610fc9575060035474010000000000000000000000000000000000000000900460ff16155b151561100d576040805160e560020a62461bcd02815260206004820152601160248201526000805160206148e1833981519152604482015290519081900360640190fd5b6110367f436f6e7472616374526567697374727900000000000000000000000000000000612e12565b600254909150600160a060020a0380831691161480159061105f5750600160a060020a03811615155b15156110b5576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e56414c49445f5245474953545259000000000000000000000000604482015290519081900360640190fd5b604080517fbb34534c0000000000000000000000000000000000000000000000000000000081527f436f6e747261637452656769737472790000000000000000000000000000000060048201529051600091600160a060020a0384169163bb34534c9160248082019260209290919082900301818787803b15801561113957600080fd5b505af115801561114d573d6000803e3d6000fd5b505050506040513d602081101561116357600080fd5b5051600160a060020a031614156111c4576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e56414c49445f5245474953545259000000000000000000000000604482015290519081900360640190fd5b6002805460038054600160a060020a0380841673ffffffffffffffffffffffffffffffffffffffff19928316179092559091169216919091179055565b611209612a36565b8061121381612eaa565b506006805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b602081565b60095468010000000000000000900463ffffffff1681565b600061126a612af3565b6002600455611277612a36565b61128e600080516020614881833981519152612e12565b600160a060020a0385166000908152600860205260409020600101549091506601000000000000900460ff1615806112cb57506112c9610be3565b155b806112e35750600054600160a060020a038281169116145b1515611327576040805160e560020a62461bcd02815260206004820152601160248201526000805160206148e1833981519152604482015290519081900360640190fd5b611332848484612f0b565b600160a060020a0384166000908152600860205260409020600101546601000000000000900460ff1615610f8957610f8984612f3c565b600354600160a060020a031681565b611380612a36565b60008051602061488183398151915261139881613031565b600554604080517ff2fde38b000000000000000000000000000000000000000000000000000000008152600160a060020a0385811660048301529151919092169163f2fde38b91602480830192600092919082900301818387803b1580156113ff57600080fd5b505af1158015611413573d6000803e3d6000fd5b505050505050565b6000611425612af3565b6002600455611432612a36565b6000805160206148a183398151915261144a81612a86565b611461600080516020614881833981519152612e12565b915061146b610be3565b15806114845750600054600160a060020a038381169116145b15156114c8576040805160e560020a62461bcd02815260206004820152601160248201526000805160206148e1833981519152604482015290519081900360640190fd5b604051600160a060020a03841690303180156108fc02916000818181858888f193505050501580156114fe573d6000803e3d6000fd5b506115166000805160206148a1833981519152612f3c565b5050600160045550565b600061152a612a36565b611532613087565b8261153c816130e4565b8361154681612eaa565b8361155081613144565b600554600160a060020a038781169116148015906115945750600160a060020a0386166000908152600860205260409020600101546601000000000000900460ff16155b15156115d8576040805160e560020a62461bcd0281526020600482015260136024820152600080516020614841833981519152604482015290519081900360640190fd5b60095463ffffffff908116620f42400381169086161115611643576040805160e560020a62461bcd02815260206004820152601a60248201527f4552525f494e56414c49445f524553455256455f574549474854000000000000604482015290519081900360640190fd5b61ffff61164e611b85565b61ffff16106116a7576040805160e560020a62461bcd02815260206004820152601960248201527f4552525f494e56414c49445f524553455256455f434f554e5400000000000000604482015290519081900360640190fd5b505050600160a060020a0390921660008181526008602052604081208181556001908101805466ff0000000000001963ffffffff80881663ffffffff1993841617919091166601000000000000179092556007805493840181559093527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688909101805473ffffffffffffffffffffffffffffffffffffffff191690931790925560098054808416909401909216921691909117905550565b600080825b600081111561177d5760019190910190600a9004611764565b5092915050565b600061178e611b85565b905090565b600154600160a060020a031633146117e3576040805160e560020a62461bcd02815260206004820152601160248201526000805160206148e1833981519152604482015290519081900360640190fd5b60015460008054604051600160a060020a0393841693909116917f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91a3600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b600254600160a060020a031681565b6000806000611870612af3565b600260045561187d6131b9565b611888868686613217565b600092505b85518310156119465785516000805160206148a1833981519152908790859081106118b457fe5b90602001906020020151600160a060020a0316141561193b573485848151811015156118dc57fe5b602090810290910101511461193b576040805160e560020a62461bcd02815260206004820152601760248201527f4552525f4554485f414d4f554e545f4d49534d41544348000000000000000000604482015290519081900360640190fd5b60019092019161188d565b60003411156119eb576000805160206148a183398151915260005260086020527f353c2eb9e53a4a4a6d45d72082ff2e9dc829d1125618772a83eb0e7f86632c43546601000000000000900460ff1615156119eb576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f4e4f5f4554485f524553455256450000000000000000000000000000604482015290519081900360640190fd5b600560009054906101000a9004600160a060020a0316600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015611a3e57600080fd5b505af1158015611a52573d6000803e3d6000fd5b505050506040513d6020811015611a6857600080fd5b50519150611a778686846134d3565b905083811015611ad1576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f52455455524e5f544f4f5f4c4f570000000000000000000000000000604482015290519081900360640190fd5b600554604080517f867904b4000000000000000000000000000000000000000000000000000000008152336004820152602481018490529051600160a060020a039092169163867904b49160448082019260009290919082900301818387803b158015611b3d57600080fd5b505af1158015611b51573d6000803e3d6000fd5b505060016004555050505050505050565b600054600160a060020a031681565b600954640100000000900463ffffffff1681565b60075490565b80516000908190815b81811015611bc857611bbc8582815181101515611bad57fe5b9060200190602002015161175f565b90920191600101611b94565b6001611bd48484611ef3565b03600a0a95945050505050565b600080600080611bef6131b9565b86611bf981612a86565b86611c0381612a86565b600160a060020a038981169089161415611c67576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f53414d455f534f555243455f54415247455400000000000000000000604482015290519081900360640190fd5b611c7e6000805160206148c1833981519152612e12565b600160a060020a03166394491fab611c958b612619565b600160a060020a038c1660009081526008602052604090206001015463ffffffff16611cc08c612619565b600160a060020a038d16600090815260086020908152604080832060010154815163ffffffff89811660e060020a028252600482019890985295871660248701526044860194909452949092166064840152608483018d9052925160a48084019492939192918390030190829087803b158015611d3c57600080fd5b505af1158015611d50573d6000803e3d6000fd5b505050506040513d6020811015611d6657600080fd5b50519350611d7384613502565b9384900399939850929650505050505050565b6000611d90612af3565b6002600455611d9d6131b9565b611da8838386613217565b600560009054906101000a9004600160a060020a0316600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015611dfb57600080fd5b505af1158015611e0f573d6000803e3d6000fd5b505050506040513d6020811015611e2557600080fd5b5051600554604080517fa24835d1000000000000000000000000000000000000000000000000000000008152336004820152602481018890529051929350600160a060020a039091169163a24835d19160448082019260009290919082900301818387803b158015611e9657600080fd5b505af1158015611eaa573d6000803e3d6000fd5b50505050610f8983838387612b4d565b611ec2612a36565b6003546002805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055565b600081600281048401811515611f0557fe5b049392505050565b600181565b600654600160a060020a031681565b600080600080600080600080600080611f38612af3565b6002600455611f4561353e565b6000805160206148a1833981519152600052600860205260008051602061486183398151915254611f7c903463ffffffff61358016565b6000805160206148a183398151915260009081526008602090815260008051602061486183398151915292909255600554604080517f18160ddd0000000000000000000000000000000000000000000000000000000081529051600160a060020a03909216936318160ddd9360048084019492938390030190829087803b15801561200657600080fd5b505af115801561201a573d6000803e3d6000fd5b505050506040513d602081101561203057600080fd5b5051995061204b6000805160206148c1833981519152612e12565b6007549099509750600096505b8787101561239857600780548890811061206e57fe5b9060005260206000200160009054906101000a9004600160a060020a031695506008600087600160a060020a0316600160a060020a0316815260200190815260200160002060000154945088600160a060020a031663ebbb21588b87600960009054906101000a900463ffffffff168f6040518563ffffffff1660e060020a028152600401808581526020018481526020018363ffffffff1663ffffffff168152602001828152602001945050505050602060405180830381600087803b15801561213857600080fd5b505af115801561214c573d6000803e3d6000fd5b505050506040513d602081101561216257600080fd5b50519350600160a060020a0386166000805160206148a183398151915214156122c457833411156121c25760405133903486900380156108fc02916000818181858888f193505050501580156121bc573d6000803e3d6000fd5b506122bf565b833410156122bf573415612220576040805160e560020a62461bcd02815260206004820152601560248201527f4552525f494e56414c49445f4554485f56414c55450000000000000000000000604482015290519081900360640190fd5b600954612248906c010000000000000000000000009004600160a060020a03163330876135e0565b6009600c9054906101000a9004600160a060020a0316600160a060020a0316632e1a7d4d856040518263ffffffff1660e060020a02815260040180828152602001915050600060405180830381600087803b1580156122a657600080fd5b505af11580156122ba573d6000803e3d6000fd5b505050505b6122d0565b6122d0863330876135e0565b6122e0858563ffffffff6136c816565b600160a060020a0387166000908152600860205260409020819055925061230d8a8c63ffffffff6136c816565b60408051868152602081018690528082018390529051919350600160a060020a0388169133917f4a1a2a6176e9646d9e3157f7c2ab3c499f18337c0b0828cfb28e0a61de4a11f7919081900360600190a350600160a060020a03851660009081526008602052604090206001015463ffffffff1661238d82878584613725565b600190960195612058565b600554604080517f867904b4000000000000000000000000000000000000000000000000000000008152336004820152602481018e90529051600160a060020a039092169163867904b49160448082019260009290919082900301818387803b15801561240457600080fd5b505af1158015612418573d6000803e3d6000fd5b5050600160045550505050505050505050505050565b612436612a36565b61243e613794565b600554600190600160a060020a0316612455610d4b565b61ffff167f6b08c2e2c9969e55a647a764db9b554d64dc42f1a704da11a6d5b129ad163f2c60405160405180910390a4565b600780548290811061249557fe5b600091825260209091200154600160a060020a0316905081565b600554600160a060020a031681565b600154600160a060020a031681565b60006124d7612a36565b6124ee600080516020614881833981519152612e12565b600554909150600090600160a060020a0316612508610d4b565b61ffff167f6b08c2e2c9969e55a647a764db9b554d64dc42f1a704da11a6d5b129ad163f2c60405160405180910390a46125418161298a565b604080517f90f58c96000000000000000000000000000000000000000000000000000000008152602060048201529051600160a060020a038316916390f58c9691602480830192600092919082900301818387803b1580156125a257600080fd5b505af11580156125b6573d6000803e3d6000fd5b50505050610be0611793565b6008602052600090815260409020805460019091015463ffffffff81169060ff640100000000820481169165010000000000810482169166010000000000009091041685565b600061261382612619565b92915050565b60008161262581612a86565b5050600160a060020a031660009081526008602052604090205490565b600061264c612af3565b60026004557f536f7672796e537761704e6574776f726b00000000000000000000000000000061267b81613031565b600160a060020a0387811690871614156126df576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f53414d455f534f555243455f54415247455400000000000000000000604482015290519081900360640190fd5b600654600160a060020a031615806128225750600654604080517f3af32abf000000000000000000000000000000000000000000000000000000008152600160a060020a03878116600483015291519190921691633af32abf9160248083019260209291908290030181600087803b15801561275a57600080fd5b505af115801561276e573d6000803e3d6000fd5b505050506040513d602081101561278457600080fd5b505180156128225750600654604080517f3af32abf000000000000000000000000000000000000000000000000000000008152600160a060020a03868116600483015291519190921691633af32abf9160248083019260209291908290030181600087803b1580156127f557600080fd5b505af1158015612809573d6000803e3d6000fd5b505050506040513d602081101561281f57600080fd5b50515b1515612878576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f4e4f545f57484954454c495354454400000000000000000000000000604482015290519081900360640190fd5b61288587878787876137ff565b6001600455979650505050505050565b61289d612a36565b60095463ffffffff64010000000090910481169082161115612909576040805160e560020a62461bcd02815260206004820152601a60248201527f4552525f494e56414c49445f434f4e56455253494f4e5f464545000000000000604482015290519081900360640190fd5b6009546040805163ffffffff6801000000000000000090930483168152918316602083015280517f81cd2ffb37dd237c0e4e2a3de5265fcf9deb43d3e7801e80db9f1ccfba7ee6009281900390910190a16009805463ffffffff90921668010000000000000000026bffffffff000000000000000019909216919091179055565b612992612a36565b600054600160a060020a03828116911614156129f8576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f53414d455f4f574e4552000000000000000000000000000000000000604482015290519081900360640190fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600554600160a060020a031690565b600054600160a060020a03163314610cae576040805160e560020a62461bcd02815260206004820152601160248201526000805160206148e1833981519152604482015290519081900360640190fd5b600160a060020a0381166000908152600860205260409020600101546601000000000000900460ff161515610be0576040805160e560020a62461bcd0281526020600482015260136024820152600080516020614841833981519152604482015290519081900360640190fd5b600454600114610cae576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f5245454e5452414e4359000000000000000000000000000000000000604482015290519081900360640190fd5b600080600080600080600080612b6161353e565b612b786000805160206148c1833981519152612e12565b9750612b8a8a8a63ffffffff61358016565b9650600095505b8b51861015612e04578b86815181101515612ba857fe5b9060200190602002015194506008600086600160a060020a0316600160a060020a0316815260200190815260200160002060000154935087600160a060020a0316638074590a8b86600960009054906101000a900463ffffffff168d6040518563ffffffff1660e060020a028152600401808581526020018481526020018363ffffffff1663ffffffff168152602001828152602001945050505050602060405180830381600087803b158015612c5e57600080fd5b505af1158015612c72573d6000803e3d6000fd5b505050506040513d6020811015612c8857600080fd5b50518b519093508b9087908110612c9b57fe5b60209081029091010151831015612cfc576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f5a45524f5f5441524745545f414d4f554e5400000000000000000000604482015290519081900360640190fd5b612d0c848463ffffffff61358016565b600160a060020a03861660008181526008602052604090208290559092506000805160206148a18339815191521415612d7257604051339084156108fc029085906000818181858888f19350505050158015612d6c573d6000803e3d6000fd5b50612d7d565b612d7d853385613ad2565b60408051848152602081018490528082018990529051600160a060020a0387169133917fbc7d19d505c7ec4db83f3b51f19fb98c4c8a99922e7839d1ee608dfbee29501b9181900360600190a350600160a060020a03841660009081526008602052604090206001015463ffffffff16612df987868484613725565b600190950194612b91565b505050505050505050505050565b600254604080517fbb34534c000000000000000000000000000000000000000000000000000000008152600481018490529051600092600160a060020a03169163bb34534c91602480830192602092919082900301818787803b158015612e7857600080fd5b505af1158015612e8c573d6000803e3d6000fd5b505050506040513d6020811015612ea257600080fd5b505192915050565b600160a060020a038116301415610be0576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f414444524553535f49535f53454c4600000000000000000000000000604482015290519081900360640190fd5b612f13612a36565b82612f1d816130e4565b82612f27816130e4565b83612f3181612eaa565b611413868686613ad2565b80612f4681612a86565b600160a060020a0382166000805160206148a18339815191521415612f8657600160a060020a03821660009081526008602052604090203031905561302d565b604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a038416916370a082319160248083019260209291908290030181600087803b158015612fe757600080fd5b505af1158015612ffb573d6000803e3d6000fd5b505050506040513d602081101561301157600080fd5b5051600160a060020a0383166000908152600860205260409020555b5050565b61303a81612e12565b600160a060020a03163314610be0576040805160e560020a62461bcd02815260206004820152601160248201526000805160206148e1833981519152604482015290519081900360640190fd5b61308f610be3565b15610cae576040805160e560020a62461bcd02815260206004820152600a60248201527f4552525f41435449564500000000000000000000000000000000000000000000604482015290519081900360640190fd5b600160a060020a0381161515610be0576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b60008163ffffffff161180156131635750620f424063ffffffff821611155b1515610be0576040805160e560020a62461bcd02815260206004820152601a60248201527f4552525f494e56414c49445f524553455256455f574549474854000000000000604482015290519081900360640190fd5b6131c1610be3565b1515610cae576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f494e4143544956450000000000000000000000000000000000000000604482015290519081900360640190fd5b600754835160009182918114613265576040805160e560020a62461bcd0281526020600482015260136024820152600080516020614841833981519152604482015290519081900360640190fd5b845181146132bd576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f494e56414c49445f414d4f554e540000000000000000000000000000604482015290519081900360640190fd5b600092505b8083101561347b576008600087858151811015156132dc57fe5b6020908102909101810151600160a060020a031682528101919091526040016000206001015460ff6601000000000000909104161515613354576040805160e560020a62461bcd0281526020600482015260136024820152600080516020614841833981519152604482015290519081900360640190fd5b600091505b808210156133bc57858281518110151561336f57fe5b90602001906020020151600160a060020a031660078481548110151561339157fe5b600091825260209091200154600160a060020a031614156133b1576133bc565b600190910190613359565b808210613401576040805160e560020a62461bcd0281526020600482015260136024820152600080516020614841833981519152604482015290519081900360640190fd5b6000858481518110151561341157fe5b6020908102909101015111613470576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f494e56414c49445f414d4f554e540000000000000000000000000000604482015290519081900360640190fd5b6001909201916132c2565b60008411611413576040805160e560020a62461bcd02815260206004820152600f60248201527f4552525f5a45524f5f414d4f554e540000000000000000000000000000000000604482015290519081900360640190fd5b60008115156134ed576134e68484613b89565b90506134fb565b6134f8848484613d90565b90505b9392505050565b60095460009061261390620f42409061353290859068010000000000000000900463ffffffff9081169061415016565b9063ffffffff6141c916565b60075460005b8181101561302d5761357860078281548110151561355e57fe5b600091825260209091200154600160a060020a0316612f3c565b600101613544565b6000818310156135da576040805160e560020a62461bcd02815260206004820152600d60248201527f4552525f554e444552464c4f5700000000000000000000000000000000000000604482015290519081900360640190fd5b50900390565b604080517f7472616e7366657246726f6d28616464726573732c616464726573732c75696e81527f74323536290000000000000000000000000000000000000000000000000000006020808301919091528251918290036025018220600160a060020a038088166024850152861660448401526064808401869052845180850390910181526084909301909352810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19909316929092179091526136c2908590614237565b50505050565b6000828201838110156134fb576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b600554600160a060020a0380851691167f77f29993cf2c084e726f7e802da0719d6a0ade3e204badc7a3ffd57ecb768c2461376385620f4240614150565b6137768863ffffffff8088169061415016565b6040805192835260208301919091528051918290030190a350505050565b600161379e611b85565b61ffff16116137f7576040805160e560020a62461bcd02815260206004820152601960248201527f4552525f494e56414c49445f524553455256455f434f554e5400000000000000604482015290519081900360640190fd5b610cae6142c5565b600080600080613810898989611be1565b909350915082151561386c576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f5a45524f5f5441524745545f414d4f554e5400000000000000000000604482015290519081900360640190fd5b61387588612619565b905080831061388057fe5b600160a060020a0389166000805160206148a183398151915214156138fb573487146138f6576040805160e560020a62461bcd02815260206004820152601760248201527f4552525f4554485f414d4f554e545f4d49534d41544348000000000000000000604482015290519081900360640190fd5b613a03565b341580156139ad5750866139aa6139118b612619565b604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a038e16916370a082319160248083019260209291908290030181600087803b15801561397257600080fd5b505af1158015613986573d6000803e3d6000fd5b505050506040513d602081101561399c57600080fd5b50519063ffffffff61358016565b10155b1515613a03576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f494e56414c49445f414d4f554e540000000000000000000000000000604482015290519081900360640190fd5b613a0c89612f3c565b600160a060020a038816600090815260086020526040902054613a35908463ffffffff61358016565b600160a060020a0389166000818152600860205260409020919091556000805160206148a18339815191521415613aa257604051600160a060020a0386169084156108fc029085906000818181858888f19350505050158015613a9c573d6000803e3d6000fd5b50613aad565b613aad888685613ad2565b613abb8989888a87876143a3565b613ac58989614428565b5090979650505050505050565b604080517f7472616e7366657228616464726573732c75696e74323536290000000000000081528151908190036019018120600160a060020a038516602483015260448083018590528351808403909101815260649092019092526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1990931692909217909152613b84908490614237565b505050565b600080600080613b9885611b8b565b9250600091505b8551821015613d865785516000805160206148a183398151915290879084908110613bc657fe5b60209081029091010151600160a060020a031614613c1857613c188683815181101515613bef57fe5b9060200190602002015133308886815181101515613c0957fe5b906020019060200201516135e0565b8482815181101515613c2657fe5b90602001906020020151600860008885815181101515613c4257fe5b6020908102909101810151600160a060020a03168252810191909152604001600020558551869083908110613c7357fe5b90602001906020020151600160a060020a031633600160a060020a03167f4a1a2a6176e9646d9e3157f7c2ab3c499f18337c0b0828cfb28e0a61de4a11f78785815181101515613cbf57fe5b906020019060200201518886815181101515613cd757fe5b60209081029091018101516040805193845291830152818101889052519081900360600190a3600860008784815181101515613d0f57fe5b6020908102909101810151600160a060020a0316825281019190915260400160002060010154865163ffffffff9091169150613d7b908490889085908110613d5357fe5b906020019060200201518785815181101515613d6b57fe5b9060200190602002015184613725565b600190910190613b9f565b5090949350505050565b600080600080600080600080600080613da761353e565b6000805160206148a1833981519152600052600860205260008051602061486183398151915254613dde903463ffffffff61358016565b6000805160206148a1833981519152600052600860205260008051602061486183398151915255613e1c6000805160206148c1833981519152612e12565b9850613e2a898c8f8f614636565b9750613e3c8b8963ffffffff6136c816565b9650600095505b8c5186101561413f578c86815181101515613e5a57fe5b9060200190602002015194506008600086600160a060020a0316600160a060020a0316815260200190815260200160002060000154935088600160a060020a031663ebbb21588c86600960009054906101000a900463ffffffff168c6040518563ffffffff1660e060020a028152600401808581526020018481526020018363ffffffff1663ffffffff168152602001828152602001945050505050602060405180830381600087803b158015613f1057600080fd5b505af1158015613f24573d6000803e3d6000fd5b505050506040513d6020811015613f3a57600080fd5b5051925060008311613f96576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f5a45524f5f5441524745545f414d4f554e5400000000000000000000604482015290519081900360640190fd5b8b86815181101515613fa457fe5b60209081029091010151831115613fb757fe5b600160a060020a0385166000805160206148a183398151915214613fe657613fe1853330866135e0565b614059565b828c87815181101515613ff557fe5b9060200190602002015111156140595733600160a060020a03166108fc848e8981518110151561402157fe5b90602001906020020151039081150290604051600060405180830381858888f19350505050158015614057573d6000803e3d6000fd5b505b614069848463ffffffff6136c816565b600160a060020a03861660008181526008602090815260409182902084905581518781529081018490528082018b90529051929450909133917f4a1a2a6176e9646d9e3157f7c2ab3c499f18337c0b0828cfb28e0a61de4a11f7919081900360600190a3600860008e888151811015156140df57fe5b6020908102909101810151600160a060020a03168252810191909152604001600020600101548d5163ffffffff90911691506141349088908f908990811061412357fe5b906020019060200201518484613725565b600190950194613e43565b50959b9a5050505050505050505050565b600080831515614163576000915061177d565b5082820282848281151561417357fe5b04146134fb576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b600080808311614223576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f4449564944455f42595f5a45524f0000000000000000000000000000604482015290519081900360640190fd5b828481151561422e57fe5b04949350505050565b61423f614821565b602060405190810160405280600181525090506020818351602085016000875af180151561426c57600080fd5b5080511515613b84576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f5452414e534645525f4641494c454400000000000000000000000000604482015290519081900360640190fd5b6142cd612a36565b60006142d7611b85565b61ffff1611614330576040805160e560020a62461bcd02815260206004820152601960248201527f4552525f494e56414c49445f524553455256455f434f554e5400000000000000604482015290519081900360640190fd5b600560009054906101000a9004600160a060020a0316600160a060020a03166379ba50976040518163ffffffff1660e060020a028152600401600060405180830381600087803b15801561438357600080fd5b505af1158015614397573d6000803e3d6000fd5b50505050610cae61353e565b7f800000000000000000000000000000000000000000000000000000000000000081106143cc57fe5b60408051848152602081018490528082018390529051600160a060020a038087169288821692918a16917f276856b36cbc45526a0ba64f44611557a2a8b68662c5388e9fe6d72e86e1c8cb9181900360600190a4505050505050565b6000806000806000806000600560009054906101000a9004600160a060020a0316600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561448657600080fd5b505af115801561449a573d6000803e3d6000fd5b505050506040513d60208110156144b057600080fd5b505196506144bd89612619565b95506144c888612619565b600160a060020a03808b16600090815260086020526040808220600190810154938d1683529120015491965063ffffffff90811695509081169350614511908690869061415016565b91506145268663ffffffff8086169061415016565b60408051848152602081018390528151929350600160a060020a03808c1693908d16927f77f29993cf2c084e726f7e802da0719d6a0ade3e204badc7a3ffd57ecb768c24928290030190a361457d878a8887613725565b61458987898786613725565b604080518881526020810188905263ffffffff8616818301529051600160a060020a038b16917f8a6a7f53b3c8fa1dc4b83e3f1be668c1b251ff8d44cdcb83eb3acec3fec6a788919081900360600190a2604080518881526020810187905263ffffffff8516818301529051600160a060020a038a16917f8a6a7f53b3c8fa1dc4b83e3f1be668c1b251ff8d44cdcb83eb3acec3fec6a788919081900360600190a2505050505050505050565b60008060015b84518110156146f9576146a160086000878481518110151561465a57fe5b6020908102909101810151600160a060020a0316825281019190915260400160002054855186908590811061468b57fe5b602090810290910101519063ffffffff61415016565b6146e76008600088868151811015156146b657fe5b6020908102909101810151600160a060020a0316825281019190915260400160002054865187908590811061468b57fe5b10156146f1578091505b60010161463c565b86600160a060020a0316632f55bdb58760086000898781518110151561471b57fe5b6020908102909101810151600160a060020a0316825281019190915260400160002054600954885163ffffffff9091169089908890811061475857fe5b906020019060200201516040518563ffffffff1660e060020a028152600401808581526020018481526020018363ffffffff1663ffffffff168152602001828152602001945050505050602060405180830381600087803b1580156147bc57600080fd5b505af11580156147d0573d6000803e3d6000fd5b505050506040513d60208110156147e657600080fd5b5051979650505050505050565b6040805160a08101825260008082526020820181905291810182905260608101829052608081019190915290565b602060405190810160405280600190602082028038833950919291505056004552525f494e56414c49445f5245534552564500000000000000000000000000353c2eb9e53a4a4a6d45d72082ff2e9dc829d1125618772a83eb0e7f86632c42536f7672796e53776170436f6e76657274657255706772616465720000000000000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee536f7672796e53776170466f726d756c610000000000000000000000000000004552525f4143434553535f44454e494544000000000000000000000000000000a165627a7a72305820324b4364d6a1792677c2fd82e313b62b9cc957d58949fe9823a7cc610a1a0c050029", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x258 JUMPI PUSH4 0xFFFFFFFF PUSH1 0xE0 PUSH1 0x2 EXP PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x24C7EC7 DUP2 EQ PUSH2 0x2E4 JUMPI DUP1 PUSH4 0xC7D5CD8 EQ PUSH2 0x2FE JUMPI DUP1 PUSH4 0xE53AAE9 EQ PUSH2 0x32C JUMPI DUP1 PUSH4 0x12C2ACA4 EQ PUSH2 0x381 JUMPI DUP1 PUSH4 0x19B64015 EQ PUSH2 0x3AA JUMPI DUP1 PUSH4 0x1CFAB290 EQ PUSH2 0x3DE JUMPI DUP1 PUSH4 0x1E1401F8 EQ PUSH2 0x3FF JUMPI DUP1 PUSH4 0x21E6B53D EQ PUSH2 0x442 JUMPI DUP1 PUSH4 0x22F3E2D4 EQ PUSH2 0x463 JUMPI DUP1 PUSH4 0x2FE8A6AD EQ PUSH2 0x478 JUMPI DUP1 PUSH4 0x38A5E016 EQ PUSH2 0x48D JUMPI DUP1 PUSH4 0x395900D4 EQ PUSH2 0x4A2 JUMPI DUP1 PUSH4 0x3E8FF43F EQ PUSH2 0x4CC JUMPI DUP1 PUSH4 0x415F1240 EQ PUSH2 0x4F8 JUMPI DUP1 PUSH4 0x49D10B64 EQ PUSH2 0x510 JUMPI DUP1 PUSH4 0x4AF80F0E EQ PUSH2 0x525 JUMPI DUP1 PUSH4 0x54FD4D50 EQ PUSH2 0x546 JUMPI DUP1 PUSH4 0x579CD3CA EQ PUSH2 0x55B JUMPI DUP1 PUSH4 0x5E35359E EQ PUSH2 0x570 JUMPI DUP1 PUSH4 0x61CD756E EQ PUSH2 0x59A JUMPI DUP1 PUSH4 0x67B6D57C EQ PUSH2 0x5AF JUMPI DUP1 PUSH4 0x690D8320 EQ PUSH2 0x5D0 JUMPI DUP1 PUSH4 0x6A49D2C4 EQ PUSH2 0x5F1 JUMPI DUP1 PUSH4 0x6AA5332C EQ PUSH2 0x61B JUMPI DUP1 PUSH4 0x71F52BF3 EQ PUSH2 0x645 JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x65A JUMPI DUP1 PUSH4 0x7B103999 EQ PUSH2 0x66F JUMPI DUP1 PUSH4 0x7D8916BD EQ PUSH2 0x684 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x707 JUMPI DUP1 PUSH4 0x94C275AD EQ PUSH2 0x71C JUMPI DUP1 PUSH4 0x9B99A8E2 EQ PUSH2 0x731 JUMPI DUP1 PUSH4 0xA60E7724 EQ PUSH2 0x746 JUMPI DUP1 PUSH4 0xAF94B8D8 EQ PUSH2 0x79B JUMPI DUP1 PUSH4 0xB127C0A5 EQ PUSH2 0x7C5 JUMPI DUP1 PUSH4 0xB4A176D3 EQ PUSH2 0x858 JUMPI DUP1 PUSH4 0xBBB7E5D8 EQ PUSH2 0x86D JUMPI DUP1 PUSH4 0xBF754558 EQ PUSH2 0x888 JUMPI DUP1 PUSH4 0xC45D3D92 EQ PUSH2 0x89D JUMPI DUP1 PUSH4 0xCA1D209D EQ PUSH2 0x8B2 JUMPI DUP1 PUSH4 0xCDC91C69 EQ PUSH2 0x8BD JUMPI DUP1 PUSH4 0xD031370B EQ PUSH2 0x8D2 JUMPI DUP1 PUSH4 0xD260529C EQ PUSH2 0x8EA JUMPI DUP1 PUSH4 0xD3FB73B4 EQ PUSH2 0x8FF JUMPI DUP1 PUSH4 0xD4EE1D90 EQ PUSH2 0x914 JUMPI DUP1 PUSH4 0xD55EC697 EQ PUSH2 0x929 JUMPI DUP1 PUSH4 0xD66BD524 EQ PUSH2 0x93E JUMPI DUP1 PUSH4 0xD8959512 EQ PUSH2 0x95F JUMPI DUP1 PUSH4 0xDC8DE379 EQ PUSH2 0x980 JUMPI DUP1 PUSH4 0xE8DC12FF EQ PUSH2 0x9A1 JUMPI DUP1 PUSH4 0xECBCA55D EQ PUSH2 0x9CB JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x9E9 JUMPI DUP1 PUSH4 0xFC0C546A EQ PUSH2 0xA0A JUMPI JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x0 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH32 0x353C2EB9E53A4A4A6D45D72082FF2E9DC829D1125618772A83EB0E7F86632C43 SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO PUSH2 0x2E2 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4841 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2F0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E2 PUSH1 0x4 CALLDATALOAD ISZERO ISZERO PUSH2 0xA1F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x30A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x313 PUSH2 0xA67 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x338 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x34D PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0xA73 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP6 DUP7 MSTORE PUSH4 0xFFFFFFFF SWAP1 SWAP5 AND PUSH1 0x20 DUP7 ADD MSTORE SWAP2 ISZERO ISZERO DUP5 DUP5 ADD MSTORE ISZERO ISZERO PUSH1 0x60 DUP5 ADD MSTORE ISZERO ISZERO PUSH1 0x80 DUP4 ADD MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0xA0 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x38D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x396 PUSH2 0xB0E JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3B6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3C2 PUSH1 0x4 CALLDATALOAD PUSH2 0xB57 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x313 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0xB83 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x40B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x429 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0xBB5 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x44E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0xBCF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x46F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x396 PUSH2 0xBE3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x484 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x396 PUSH2 0xC7D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x499 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E2 PUSH2 0xC9E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4AE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0xCB0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4D8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4E1 PUSH2 0xD4B JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0xFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x504 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E2 PUSH1 0x4 CALLDATALOAD PUSH2 0xD50 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x51C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E2 PUSH2 0xF94 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x531 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x1201 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x552 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4E1 PUSH2 0x1243 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x567 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x313 PUSH2 0x1248 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x57C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x1260 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5A6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3C2 PUSH2 0x1369 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5BB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x1378 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5DC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x141B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5FD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH4 0xFFFFFFFF PUSH1 0x24 CALLDATALOAD AND PUSH2 0x1520 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x627 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x633 PUSH1 0x4 CALLDATALOAD PUSH2 0x175F JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x651 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4E1 PUSH2 0x1784 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x666 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E2 PUSH2 0x1793 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x67B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3C2 PUSH2 0x1854 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x2E2 SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP POP PUSH1 0x40 DUP1 MLOAD DUP8 CALLDATALOAD DUP10 ADD DUP1 CALLDATALOAD PUSH1 0x20 DUP2 DUP2 MUL DUP5 DUP2 ADD DUP3 ADD SWAP1 SWAP6 MSTORE DUP2 DUP5 MSTORE SWAP9 SWAP12 SWAP11 SWAP10 DUP10 ADD SWAP9 SWAP3 SWAP8 POP SWAP1 DUP3 ADD SWAP6 POP SWAP4 POP DUP4 SWAP3 POP DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP POP SWAP4 CALLDATALOAD SWAP5 POP PUSH2 0x1863 SWAP4 POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x713 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3C2 PUSH2 0x1B62 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x728 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x313 PUSH2 0x1B71 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x73D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4E1 PUSH2 0x1B85 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x752 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x633 SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP PUSH2 0x1B8B SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7A7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x429 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x1BE1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7D1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 PUSH1 0x24 DUP1 CALLDATALOAD DUP3 DUP2 ADD CALLDATALOAD DUP5 DUP2 MUL DUP1 DUP8 ADD DUP7 ADD SWAP1 SWAP8 MSTORE DUP1 DUP7 MSTORE PUSH2 0x2E2 SWAP7 DUP5 CALLDATALOAD SWAP7 CALLDATASIZE SWAP7 PUSH1 0x44 SWAP6 SWAP2 SWAP5 SWAP1 SWAP2 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP POP PUSH1 0x40 DUP1 MLOAD DUP8 CALLDATALOAD DUP10 ADD DUP1 CALLDATALOAD PUSH1 0x20 DUP2 DUP2 MUL DUP5 DUP2 ADD DUP3 ADD SWAP1 SWAP6 MSTORE DUP2 DUP5 MSTORE SWAP9 SWAP12 SWAP11 SWAP10 DUP10 ADD SWAP9 SWAP3 SWAP8 POP SWAP1 DUP3 ADD SWAP6 POP SWAP4 POP DUP4 SWAP3 POP DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP PUSH2 0x1D86 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x864 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E2 PUSH2 0x1EBA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x879 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x633 PUSH1 0x4 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH2 0x1EF3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x894 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x396 PUSH2 0x1F0D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8A9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3C2 PUSH2 0x1F12 JUMP JUMPDEST PUSH2 0x2E2 PUSH1 0x4 CALLDATALOAD PUSH2 0x1F21 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8C9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E2 PUSH2 0x242E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8DE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3C2 PUSH1 0x4 CALLDATALOAD PUSH2 0x2487 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8F6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x396 PUSH2 0xD4B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x90B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3C2 PUSH2 0x24AF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x920 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3C2 PUSH2 0x24BE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x935 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E2 PUSH2 0x24CD JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x94A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x34D PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x25C2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x96B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x633 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x2608 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x98C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x633 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x2619 JUMP JUMPDEST PUSH2 0x633 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x44 CALLDATALOAD SWAP1 PUSH1 0x64 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x84 CALLDATALOAD AND PUSH2 0x2642 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9D7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E2 PUSH4 0xFFFFFFFF PUSH1 0x4 CALLDATALOAD AND PUSH2 0x2895 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x298A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA16 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3C2 PUSH2 0x2A27 JUMP JUMPDEST PUSH2 0xA27 PUSH2 0x2A36 JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD SWAP2 ISZERO ISZERO PUSH21 0x10000000000000000000000000000000000000000 MUL PUSH21 0xFF0000000000000000000000000000000000000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH4 0xFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0xA83 PUSH2 0x47F3 JUMP JUMPDEST POP POP POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP2 MLOAD PUSH1 0xA0 DUP2 ADD DUP4 MSTORE DUP2 SLOAD DUP1 DUP3 MSTORE PUSH1 0x1 SWAP1 SWAP3 ADD SLOAD PUSH4 0xFFFFFFFF DUP2 AND SWAP5 DUP3 ADD DUP6 SWAP1 MSTORE PUSH1 0xFF PUSH5 0x100000000 DUP3 DIV DUP2 AND ISZERO ISZERO SWAP5 DUP4 ADD SWAP5 SWAP1 SWAP5 MSTORE PUSH6 0x10000000000 DUP2 DIV DUP5 AND ISZERO ISZERO PUSH1 0x60 DUP4 ADD MSTORE PUSH7 0x1000000000000 SWAP1 DIV SWAP1 SWAP3 AND ISZERO ISZERO PUSH1 0x80 SWAP1 SWAP3 ADD DUP3 SWAP1 MSTORE SWAP6 SWAP2 SWAP5 POP SWAP2 SWAP3 POP DUP3 SWAP2 SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x0 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH32 0x353C2EB9E53A4A4A6D45D72082FF2E9DC829D1125618772A83EB0E7F86632C43 SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x7 DUP3 DUP2 SLOAD DUP2 LT ISZERO ISZERO PUSH2 0xB68 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0xB8F DUP2 PUSH2 0x2A86 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH4 0xFFFFFFFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xBC3 DUP6 DUP6 DUP6 PUSH2 0x1BE1 JUMP JUMPDEST SWAP2 POP SWAP2 POP SWAP4 POP SWAP4 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xBD7 PUSH2 0x2A36 JUMP JUMPDEST PUSH2 0xBE0 DUP2 PUSH2 0x1378 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 ADDRESS PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x8DA5CB5B PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC42 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xC56 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xC6C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH2 0xCA6 PUSH2 0x2A36 JUMP JUMPDEST PUSH2 0xCAE PUSH2 0x242E JUMP JUMPDEST JUMP JUMPDEST PUSH2 0xCB8 PUSH2 0x2A36 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x5E35359E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP6 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP3 ADD DUP6 SWAP1 MSTORE SWAP2 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP2 PUSH4 0x5E35359E SWAP2 PUSH1 0x64 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xD2E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xD42 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 PUSH1 0x0 PUSH2 0xD5E PUSH2 0x2AF3 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH1 0x0 DUP5 GT PUSH2 0xDBB JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xF PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5A45524F5F414D4F554E540000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x18160DDD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xE0E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xE22 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xE38 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xA24835D100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP9 SWAP1 MSTORE SWAP1 MLOAD SWAP3 SWAP6 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP2 AND SWAP2 PUSH4 0xA24835D1 SWAP2 PUSH1 0x44 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xEA9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xEBD JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x7 DUP1 SLOAD SWAP1 POP PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0xEF0 JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CODESIZE DUP4 CODECOPY ADD SWAP1 POP JUMPDEST POP SWAP2 POP PUSH1 0x0 SWAP1 POP JUMPDEST DUP2 MLOAD DUP2 LT ISZERO PUSH2 0xF23 JUMPI PUSH1 0x1 DUP3 DUP3 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xF11 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MSTORE PUSH1 0x1 ADD PUSH2 0xEF8 JUMP JUMPDEST PUSH2 0xF89 PUSH1 0x7 DUP1 SLOAD DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD DUP1 ISZERO PUSH2 0xF7C JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xF5E JUMPI JUMPDEST POP POP POP POP POP DUP4 DUP6 DUP8 PUSH2 0x2B4D JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0x4 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ DUP1 PUSH2 0xFC9 JUMPI POP PUSH1 0x3 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x100D JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48E1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x1036 PUSH32 0x436F6E7472616374526567697374727900000000000000000000000000000000 PUSH2 0x2E12 JUMP JUMPDEST PUSH1 0x2 SLOAD SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP4 AND SWAP2 AND EQ DUP1 ISZERO SWAP1 PUSH2 0x105F JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x10B5 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245474953545259000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0xBB34534C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH32 0x436F6E7472616374526567697374727900000000000000000000000000000000 PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP2 PUSH4 0xBB34534C SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1139 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x114D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1163 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ ISZERO PUSH2 0x11C4 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245474953545259000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP5 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP3 DUP4 AND OR SWAP1 SWAP3 SSTORE SWAP1 SWAP2 AND SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x1209 PUSH2 0x2A36 JUMP JUMPDEST DUP1 PUSH2 0x1213 DUP2 PUSH2 0x2EAA JUMP JUMPDEST POP PUSH1 0x6 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x20 DUP2 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH9 0x10000000000000000 SWAP1 DIV PUSH4 0xFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x126A PUSH2 0x2AF3 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH2 0x1277 PUSH2 0x2A36 JUMP JUMPDEST PUSH2 0x128E PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4881 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x2E12 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD SWAP1 SWAP2 POP PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 PUSH2 0x12CB JUMPI POP PUSH2 0x12C9 PUSH2 0xBE3 JUMP JUMPDEST ISZERO JUMPDEST DUP1 PUSH2 0x12E3 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ JUMPDEST ISZERO ISZERO PUSH2 0x1327 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48E1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x1332 DUP5 DUP5 DUP5 PUSH2 0x2F0B JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0xF89 JUMPI PUSH2 0xF89 DUP5 PUSH2 0x2F3C JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH2 0x1380 PUSH2 0x2A36 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4881 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x1398 DUP2 PUSH2 0x3031 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xF2FDE38B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP2 PUSH4 0xF2FDE38B SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x13FF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1413 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1425 PUSH2 0x2AF3 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH2 0x1432 PUSH2 0x2A36 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x144A DUP2 PUSH2 0x2A86 JUMP JUMPDEST PUSH2 0x1461 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4881 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x2E12 JUMP JUMPDEST SWAP2 POP PUSH2 0x146B PUSH2 0xBE3 JUMP JUMPDEST ISZERO DUP1 PUSH2 0x1484 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 DUP2 AND SWAP2 AND EQ JUMPDEST ISZERO ISZERO PUSH2 0x14C8 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48E1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP1 ADDRESS BALANCE DUP1 ISZERO PUSH2 0x8FC MUL SWAP2 PUSH1 0x0 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x14FE JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH2 0x1516 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x2F3C JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0x4 SSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x152A PUSH2 0x2A36 JUMP JUMPDEST PUSH2 0x1532 PUSH2 0x3087 JUMP JUMPDEST DUP3 PUSH2 0x153C DUP2 PUSH2 0x30E4 JUMP JUMPDEST DUP4 PUSH2 0x1546 DUP2 PUSH2 0x2EAA JUMP JUMPDEST DUP4 PUSH2 0x1550 DUP2 PUSH2 0x3144 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 DUP2 AND SWAP2 AND EQ DUP1 ISZERO SWAP1 PUSH2 0x1594 JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x15D8 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4841 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x9 SLOAD PUSH4 0xFFFFFFFF SWAP1 DUP2 AND PUSH3 0xF4240 SUB DUP2 AND SWAP1 DUP7 AND GT ISZERO PUSH2 0x1643 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F574549474854000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0xFFFF PUSH2 0x164E PUSH2 0x1B85 JUMP JUMPDEST PUSH2 0xFFFF AND LT PUSH2 0x16A7 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F434F554E5400000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP2 DUP2 SSTORE PUSH1 0x1 SWAP1 DUP2 ADD DUP1 SLOAD PUSH7 0xFF000000000000 NOT PUSH4 0xFFFFFFFF DUP1 DUP9 AND PUSH4 0xFFFFFFFF NOT SWAP4 DUP5 AND OR SWAP2 SWAP1 SWAP2 AND PUSH7 0x1000000000000 OR SWAP1 SWAP3 SSTORE PUSH1 0x7 DUP1 SLOAD SWAP4 DUP5 ADD DUP2 SSTORE SWAP1 SWAP4 MSTORE PUSH32 0xA66CC928B5EDB82AF9BD49922954155AB7B0942694BEA4CE44661D9A8736C688 SWAP1 SWAP2 ADD DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 SWAP4 OR SWAP1 SWAP3 SSTORE PUSH1 0x9 DUP1 SLOAD DUP1 DUP5 AND SWAP1 SWAP5 ADD SWAP1 SWAP3 AND SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 JUMPDEST PUSH1 0x0 DUP2 GT ISZERO PUSH2 0x177D JUMPI PUSH1 0x1 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0xA SWAP1 DIV PUSH2 0x1764 JUMP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x178E PUSH2 0x1B85 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x17E3 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48E1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND SWAP4 SWAP1 SWAP2 AND SWAP2 PUSH32 0x343765429AEA5A34B3FF6A3785A98A5ABB2597ACA87BFBB58632C173D585373A SWAP2 LOG3 PUSH1 0x1 DUP1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND OR SWAP1 SWAP2 SSTORE AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x1870 PUSH2 0x2AF3 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH2 0x187D PUSH2 0x31B9 JUMP JUMPDEST PUSH2 0x1888 DUP7 DUP7 DUP7 PUSH2 0x3217 JUMP JUMPDEST PUSH1 0x0 SWAP3 POP JUMPDEST DUP6 MLOAD DUP4 LT ISZERO PUSH2 0x1946 JUMPI DUP6 MLOAD PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP1 DUP8 SWAP1 DUP6 SWAP1 DUP2 LT PUSH2 0x18B4 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ ISZERO PUSH2 0x193B JUMPI CALLVALUE DUP6 DUP5 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x18DC JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MLOAD EQ PUSH2 0x193B JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4554485F414D4F554E545F4D49534D41544348000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 PUSH2 0x188D JUMP JUMPDEST PUSH1 0x0 CALLVALUE GT ISZERO PUSH2 0x19EB JUMPI PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x0 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH32 0x353C2EB9E53A4A4A6D45D72082FF2E9DC829D1125618772A83EB0E7F86632C43 SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO PUSH2 0x19EB JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4E4F5F4554485F524553455256450000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x18160DDD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1A3E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1A52 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1A68 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 POP PUSH2 0x1A77 DUP7 DUP7 DUP5 PUSH2 0x34D3 JUMP JUMPDEST SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0x1AD1 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F52455455524E5F544F4F5F4C4F570000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x867904B400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP2 PUSH4 0x867904B4 SWAP2 PUSH1 0x44 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1B3D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1B51 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x1 PUSH1 0x4 SSTORE POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH5 0x100000000 SWAP1 DIV PUSH4 0xFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x7 SLOAD SWAP1 JUMP JUMPDEST DUP1 MLOAD PUSH1 0x0 SWAP1 DUP2 SWAP1 DUP2 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1BC8 JUMPI PUSH2 0x1BBC DUP6 DUP3 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x1BAD JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH2 0x175F JUMP JUMPDEST SWAP1 SWAP3 ADD SWAP2 PUSH1 0x1 ADD PUSH2 0x1B94 JUMP JUMPDEST PUSH1 0x1 PUSH2 0x1BD4 DUP5 DUP5 PUSH2 0x1EF3 JUMP JUMPDEST SUB PUSH1 0xA EXP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x1BEF PUSH2 0x31B9 JUMP JUMPDEST DUP7 PUSH2 0x1BF9 DUP2 PUSH2 0x2A86 JUMP JUMPDEST DUP7 PUSH2 0x1C03 DUP2 PUSH2 0x2A86 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP10 DUP2 AND SWAP1 DUP10 AND EQ ISZERO PUSH2 0x1C67 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F534F555243455F54415247455400000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x1C7E PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48C1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x2E12 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x94491FAB PUSH2 0x1C95 DUP12 PUSH2 0x2619 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP13 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH4 0xFFFFFFFF AND PUSH2 0x1CC0 DUP13 PUSH2 0x2619 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP14 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 ADD SLOAD DUP2 MLOAD PUSH4 0xFFFFFFFF DUP10 DUP2 AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP3 MSTORE PUSH1 0x4 DUP3 ADD SWAP9 SWAP1 SWAP9 MSTORE SWAP6 DUP8 AND PUSH1 0x24 DUP8 ADD MSTORE PUSH1 0x44 DUP7 ADD SWAP5 SWAP1 SWAP5 MSTORE SWAP5 SWAP1 SWAP3 AND PUSH1 0x64 DUP5 ADD MSTORE PUSH1 0x84 DUP4 ADD DUP14 SWAP1 MSTORE SWAP3 MLOAD PUSH1 0xA4 DUP1 DUP5 ADD SWAP5 SWAP3 SWAP4 SWAP2 SWAP3 SWAP2 DUP4 SWAP1 SUB ADD SWAP1 DUP3 SWAP1 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1D3C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1D50 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1D66 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP4 POP PUSH2 0x1D73 DUP5 PUSH2 0x3502 JUMP JUMPDEST SWAP4 DUP5 SWAP1 SUB SWAP10 SWAP4 SWAP9 POP SWAP3 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1D90 PUSH2 0x2AF3 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH2 0x1D9D PUSH2 0x31B9 JUMP JUMPDEST PUSH2 0x1DA8 DUP4 DUP4 DUP7 PUSH2 0x3217 JUMP JUMPDEST PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x18160DDD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1DFB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1E0F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1E25 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xA24835D100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP9 SWAP1 MSTORE SWAP1 MLOAD SWAP3 SWAP4 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP2 AND SWAP2 PUSH4 0xA24835D1 SWAP2 PUSH1 0x44 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1E96 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1EAA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0xF89 DUP4 DUP4 DUP4 DUP8 PUSH2 0x2B4D JUMP JUMPDEST PUSH2 0x1EC2 PUSH2 0x2A36 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x2 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x2 DUP2 DIV DUP5 ADD DUP2 ISZERO ISZERO PUSH2 0x1F05 JUMPI INVALID JUMPDEST DIV SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x1 DUP2 JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x1F38 PUSH2 0x2AF3 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH2 0x1F45 PUSH2 0x353E JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x0 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4861 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SLOAD PUSH2 0x1F7C SWAP1 CALLVALUE PUSH4 0xFFFFFFFF PUSH2 0x3580 AND JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4861 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP3 SWAP1 SWAP3 SSTORE PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x18160DDD00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP4 PUSH4 0x18160DDD SWAP4 PUSH1 0x4 DUP1 DUP5 ADD SWAP5 SWAP3 SWAP4 DUP4 SWAP1 SUB ADD SWAP1 DUP3 SWAP1 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2006 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x201A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2030 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP10 POP PUSH2 0x204B PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48C1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x2E12 JUMP JUMPDEST PUSH1 0x7 SLOAD SWAP1 SWAP10 POP SWAP8 POP PUSH1 0x0 SWAP7 POP JUMPDEST DUP8 DUP8 LT ISZERO PUSH2 0x2398 JUMPI PUSH1 0x7 DUP1 SLOAD DUP9 SWAP1 DUP2 LT PUSH2 0x206E JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP6 POP PUSH1 0x8 PUSH1 0x0 DUP8 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD SWAP5 POP DUP9 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xEBBB2158 DUP12 DUP8 PUSH1 0x9 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH4 0xFFFFFFFF AND DUP16 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH4 0xFFFFFFFF AND PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP5 POP POP POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2138 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x214C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2162 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP4 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ ISZERO PUSH2 0x22C4 JUMPI DUP4 CALLVALUE GT ISZERO PUSH2 0x21C2 JUMPI PUSH1 0x40 MLOAD CALLER SWAP1 CALLVALUE DUP7 SWAP1 SUB DUP1 ISZERO PUSH2 0x8FC MUL SWAP2 PUSH1 0x0 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x21BC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH2 0x22BF JUMP JUMPDEST DUP4 CALLVALUE LT ISZERO PUSH2 0x22BF JUMPI CALLVALUE ISZERO PUSH2 0x2220 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4554485F56414C55450000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x9 SLOAD PUSH2 0x2248 SWAP1 PUSH13 0x1000000000000000000000000 SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER ADDRESS DUP8 PUSH2 0x35E0 JUMP JUMPDEST PUSH1 0x9 PUSH1 0xC SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x2E1A7D4D DUP6 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x22A6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x22BA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMPDEST PUSH2 0x22D0 JUMP JUMPDEST PUSH2 0x22D0 DUP7 CALLER ADDRESS DUP8 PUSH2 0x35E0 JUMP JUMPDEST PUSH2 0x22E0 DUP6 DUP6 PUSH4 0xFFFFFFFF PUSH2 0x36C8 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP2 SWAP1 SSTORE SWAP3 POP PUSH2 0x230D DUP11 DUP13 PUSH4 0xFFFFFFFF PUSH2 0x36C8 AND JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP7 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP7 SWAP1 MSTORE DUP1 DUP3 ADD DUP4 SWAP1 MSTORE SWAP1 MLOAD SWAP2 SWAP4 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 AND SWAP2 CALLER SWAP2 PUSH32 0x4A1A2A6176E9646D9E3157F7C2AB3C499F18337C0B0828CFB28E0A61DE4A11F7 SWAP2 SWAP1 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG3 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH4 0xFFFFFFFF AND PUSH2 0x238D DUP3 DUP8 DUP6 DUP5 PUSH2 0x3725 JUMP JUMPDEST PUSH1 0x1 SWAP1 SWAP7 ADD SWAP6 PUSH2 0x2058 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x867904B400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP15 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP2 PUSH4 0x867904B4 SWAP2 PUSH1 0x44 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2404 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2418 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x1 PUSH1 0x4 SSTORE POP POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x2436 PUSH2 0x2A36 JUMP JUMPDEST PUSH2 0x243E PUSH2 0x3794 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x2455 PUSH2 0xD4B JUMP JUMPDEST PUSH2 0xFFFF AND PUSH32 0x6B08C2E2C9969E55A647A764DB9B554D64DC42F1A704DA11A6D5B129AD163F2C PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 JUMP JUMPDEST PUSH1 0x7 DUP1 SLOAD DUP3 SWAP1 DUP2 LT PUSH2 0x2495 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP1 POP DUP2 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x24D7 PUSH2 0x2A36 JUMP JUMPDEST PUSH2 0x24EE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4881 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x2E12 JUMP JUMPDEST PUSH1 0x5 SLOAD SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x2508 PUSH2 0xD4B JUMP JUMPDEST PUSH2 0xFFFF AND PUSH32 0x6B08C2E2C9969E55A647A764DB9B554D64DC42F1A704DA11A6D5B129AD163F2C PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH2 0x2541 DUP2 PUSH2 0x298A JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x90F58C9600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 AND SWAP2 PUSH4 0x90F58C96 SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x25A2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x25B6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0xBE0 PUSH2 0x1793 JUMP JUMPDEST PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD PUSH4 0xFFFFFFFF DUP2 AND SWAP1 PUSH1 0xFF PUSH5 0x100000000 DUP3 DIV DUP2 AND SWAP2 PUSH6 0x10000000000 DUP2 DIV DUP3 AND SWAP2 PUSH7 0x1000000000000 SWAP1 SWAP2 DIV AND DUP6 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2613 DUP3 PUSH2 0x2619 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0x2625 DUP2 PUSH2 0x2A86 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x264C PUSH2 0x2AF3 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH32 0x536F7672796E537761704E6574776F726B000000000000000000000000000000 PUSH2 0x267B DUP2 PUSH2 0x3031 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 DUP2 AND SWAP1 DUP8 AND EQ ISZERO PUSH2 0x26DF JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F534F555243455F54415247455400000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND ISZERO DUP1 PUSH2 0x2822 JUMPI POP PUSH1 0x6 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x3AF32ABF00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP2 PUSH4 0x3AF32ABF SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x275A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x276E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2784 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD DUP1 ISZERO PUSH2 0x2822 JUMPI POP PUSH1 0x6 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x3AF32ABF00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP2 PUSH4 0x3AF32ABF SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x27F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2809 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x281F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD JUMPDEST ISZERO ISZERO PUSH2 0x2878 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4E4F545F57484954454C495354454400000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x2885 DUP8 DUP8 DUP8 DUP8 DUP8 PUSH2 0x37FF JUMP JUMPDEST PUSH1 0x1 PUSH1 0x4 SSTORE SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x289D PUSH2 0x2A36 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH4 0xFFFFFFFF PUSH5 0x100000000 SWAP1 SWAP2 DIV DUP2 AND SWAP1 DUP3 AND GT ISZERO PUSH2 0x2909 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F434F4E56455253494F4E5F464545000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH4 0xFFFFFFFF PUSH9 0x10000000000000000 SWAP1 SWAP4 DIV DUP4 AND DUP2 MSTORE SWAP2 DUP4 AND PUSH1 0x20 DUP4 ADD MSTORE DUP1 MLOAD PUSH32 0x81CD2FFB37DD237C0E4E2A3DE5265FCF9DEB43D3E7801E80DB9F1CCFBA7EE600 SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG1 PUSH1 0x9 DUP1 SLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP3 AND PUSH9 0x10000000000000000 MUL PUSH12 0xFFFFFFFF0000000000000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x2992 PUSH2 0x2A36 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x29F8 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F4F574E4552000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0xCAE JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48E1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO PUSH2 0xBE0 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4841 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x4 SLOAD PUSH1 0x1 EQ PUSH2 0xCAE JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5245454E5452414E4359000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x2B61 PUSH2 0x353E JUMP JUMPDEST PUSH2 0x2B78 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48C1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x2E12 JUMP JUMPDEST SWAP8 POP PUSH2 0x2B8A DUP11 DUP11 PUSH4 0xFFFFFFFF PUSH2 0x3580 AND JUMP JUMPDEST SWAP7 POP PUSH1 0x0 SWAP6 POP JUMPDEST DUP12 MLOAD DUP7 LT ISZERO PUSH2 0x2E04 JUMPI DUP12 DUP7 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x2BA8 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD SWAP5 POP PUSH1 0x8 PUSH1 0x0 DUP7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD SWAP4 POP DUP8 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x8074590A DUP12 DUP7 PUSH1 0x9 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH4 0xFFFFFFFF AND DUP14 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH4 0xFFFFFFFF AND PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP5 POP POP POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2C5E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2C72 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2C88 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD DUP12 MLOAD SWAP1 SWAP4 POP DUP12 SWAP1 DUP8 SWAP1 DUP2 LT PUSH2 0x2C9B JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MLOAD DUP4 LT ISZERO PUSH2 0x2CFC JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5A45524F5F5441524745545F414D4F554E5400000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x2D0C DUP5 DUP5 PUSH4 0xFFFFFFFF PUSH2 0x3580 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP3 SWAP1 SSTORE SWAP1 SWAP3 POP PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ ISZERO PUSH2 0x2D72 JUMPI PUSH1 0x40 MLOAD CALLER SWAP1 DUP5 ISZERO PUSH2 0x8FC MUL SWAP1 DUP6 SWAP1 PUSH1 0x0 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x2D6C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH2 0x2D7D JUMP JUMPDEST PUSH2 0x2D7D DUP6 CALLER DUP6 PUSH2 0x3AD2 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP5 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 SWAP1 MSTORE DUP1 DUP3 ADD DUP10 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND SWAP2 CALLER SWAP2 PUSH32 0xBC7D19D505C7EC4DB83F3B51F19FB98C4C8A99922E7839D1EE608DFBEE29501B SWAP2 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG3 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH4 0xFFFFFFFF AND PUSH2 0x2DF9 DUP8 DUP7 DUP5 DUP5 PUSH2 0x3725 JUMP JUMPDEST PUSH1 0x1 SWAP1 SWAP6 ADD SWAP5 PUSH2 0x2B91 JUMP JUMPDEST POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xBB34534C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP2 PUSH4 0xBB34534C SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2E78 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2E8C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2EA2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ADDRESS EQ ISZERO PUSH2 0xBE0 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F414444524553535F49535F53454C4600000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x2F13 PUSH2 0x2A36 JUMP JUMPDEST DUP3 PUSH2 0x2F1D DUP2 PUSH2 0x30E4 JUMP JUMPDEST DUP3 PUSH2 0x2F27 DUP2 PUSH2 0x30E4 JUMP JUMPDEST DUP4 PUSH2 0x2F31 DUP2 PUSH2 0x2EAA JUMP JUMPDEST PUSH2 0x1413 DUP7 DUP7 DUP7 PUSH2 0x3AD2 JUMP JUMPDEST DUP1 PUSH2 0x2F46 DUP2 PUSH2 0x2A86 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 AND PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ ISZERO PUSH2 0x2F86 JUMPI PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 ADDRESS BALANCE SWAP1 SSTORE PUSH2 0x302D JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2FE7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2FFB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x3011 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x303A DUP2 PUSH2 0x2E12 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0xBE0 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48E1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x308F PUSH2 0xBE3 JUMP JUMPDEST ISZERO PUSH2 0xCAE JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xA PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F41435449564500000000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0xBE0 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 PUSH4 0xFFFFFFFF AND GT DUP1 ISZERO PUSH2 0x3163 JUMPI POP PUSH3 0xF4240 PUSH4 0xFFFFFFFF DUP3 AND GT ISZERO JUMPDEST ISZERO ISZERO PUSH2 0xBE0 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F574549474854000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x31C1 PUSH2 0xBE3 JUMP JUMPDEST ISZERO ISZERO PUSH2 0xCAE JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E4143544956450000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x7 SLOAD DUP4 MLOAD PUSH1 0x0 SWAP2 DUP3 SWAP2 DUP2 EQ PUSH2 0x3265 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4841 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP5 MLOAD DUP2 EQ PUSH2 0x32BD JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F414D4F554E540000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 SWAP3 POP JUMPDEST DUP1 DUP4 LT ISZERO PUSH2 0x347B JUMPI PUSH1 0x8 PUSH1 0x0 DUP8 DUP6 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x32DC JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP3 MSTORE DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH1 0xFF PUSH7 0x1000000000000 SWAP1 SWAP2 DIV AND ISZERO ISZERO PUSH2 0x3354 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4841 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 SWAP2 POP JUMPDEST DUP1 DUP3 LT ISZERO PUSH2 0x33BC JUMPI DUP6 DUP3 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x336F JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x7 DUP5 DUP2 SLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3391 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ ISZERO PUSH2 0x33B1 JUMPI PUSH2 0x33BC JUMP JUMPDEST PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x3359 JUMP JUMPDEST DUP1 DUP3 LT PUSH2 0x3401 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4841 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP6 DUP5 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3411 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MLOAD GT PUSH2 0x3470 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F414D4F554E540000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 PUSH2 0x32C2 JUMP JUMPDEST PUSH1 0x0 DUP5 GT PUSH2 0x1413 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xF PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5A45524F5F414D4F554E540000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO PUSH2 0x34ED JUMPI PUSH2 0x34E6 DUP5 DUP5 PUSH2 0x3B89 JUMP JUMPDEST SWAP1 POP PUSH2 0x34FB JUMP JUMPDEST PUSH2 0x34F8 DUP5 DUP5 DUP5 PUSH2 0x3D90 JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x0 SWAP1 PUSH2 0x2613 SWAP1 PUSH3 0xF4240 SWAP1 PUSH2 0x3532 SWAP1 DUP6 SWAP1 PUSH9 0x10000000000000000 SWAP1 DIV PUSH4 0xFFFFFFFF SWAP1 DUP2 AND SWAP1 PUSH2 0x4150 AND JUMP JUMPDEST SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x41C9 AND JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x302D JUMPI PUSH2 0x3578 PUSH1 0x7 DUP3 DUP2 SLOAD DUP2 LT ISZERO ISZERO PUSH2 0x355E JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x2F3C JUMP JUMPDEST PUSH1 0x1 ADD PUSH2 0x3544 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT ISZERO PUSH2 0x35DA JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F554E444552464C4F5700000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP SWAP1 SUB SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x7472616E7366657246726F6D28616464726573732C616464726573732C75696E DUP2 MSTORE PUSH32 0x7432353629000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP3 MLOAD SWAP2 DUP3 SWAP1 SUB PUSH1 0x25 ADD DUP3 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP9 AND PUSH1 0x24 DUP6 ADD MSTORE DUP7 AND PUSH1 0x44 DUP5 ADD MSTORE PUSH1 0x64 DUP1 DUP5 ADD DUP7 SWAP1 MSTORE DUP5 MLOAD DUP1 DUP6 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x84 SWAP1 SWAP4 ADD SWAP1 SWAP4 MSTORE DUP2 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE PUSH2 0x36C2 SWAP1 DUP6 SWAP1 PUSH2 0x4237 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 ADD DUP4 DUP2 LT ISZERO PUSH2 0x34FB JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP6 AND SWAP2 AND PUSH32 0x77F29993CF2C084E726F7E802DA0719D6A0ADE3E204BADC7A3FFD57ECB768C24 PUSH2 0x3763 DUP6 PUSH3 0xF4240 PUSH2 0x4150 JUMP JUMPDEST PUSH2 0x3776 DUP9 PUSH4 0xFFFFFFFF DUP1 DUP9 AND SWAP1 PUSH2 0x4150 AND JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB ADD SWAP1 LOG3 POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH2 0x379E PUSH2 0x1B85 JUMP JUMPDEST PUSH2 0xFFFF AND GT PUSH2 0x37F7 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F434F554E5400000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0xCAE PUSH2 0x42C5 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x3810 DUP10 DUP10 DUP10 PUSH2 0x1BE1 JUMP JUMPDEST SWAP1 SWAP4 POP SWAP2 POP DUP3 ISZERO ISZERO PUSH2 0x386C JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5A45524F5F5441524745545F414D4F554E5400000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x3875 DUP9 PUSH2 0x2619 JUMP JUMPDEST SWAP1 POP DUP1 DUP4 LT PUSH2 0x3880 JUMPI INVALID JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP10 AND PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ ISZERO PUSH2 0x38FB JUMPI CALLVALUE DUP8 EQ PUSH2 0x38F6 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4554485F414D4F554E545F4D49534D41544348000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x3A03 JUMP JUMPDEST CALLVALUE ISZERO DUP1 ISZERO PUSH2 0x39AD JUMPI POP DUP7 PUSH2 0x39AA PUSH2 0x3911 DUP12 PUSH2 0x2619 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP15 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3972 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3986 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x399C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x3580 AND JUMP JUMPDEST LT ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x3A03 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F414D4F554E540000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x3A0C DUP10 PUSH2 0x2F3C JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x3A35 SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0x3580 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP10 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ ISZERO PUSH2 0x3AA2 JUMPI PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND SWAP1 DUP5 ISZERO PUSH2 0x8FC MUL SWAP1 DUP6 SWAP1 PUSH1 0x0 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x3A9C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH2 0x3AAD JUMP JUMPDEST PUSH2 0x3AAD DUP9 DUP7 DUP6 PUSH2 0x3AD2 JUMP JUMPDEST PUSH2 0x3ABB DUP10 DUP10 DUP9 DUP11 DUP8 DUP8 PUSH2 0x43A3 JUMP JUMPDEST PUSH2 0x3AC5 DUP10 DUP10 PUSH2 0x4428 JUMP JUMPDEST POP SWAP1 SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x7472616E7366657228616464726573732C75696E743235362900000000000000 DUP2 MSTORE DUP2 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x19 ADD DUP2 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x64 SWAP1 SWAP3 ADD SWAP1 SWAP3 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE PUSH2 0x3B84 SWAP1 DUP5 SWAP1 PUSH2 0x4237 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x3B98 DUP6 PUSH2 0x1B8B JUMP JUMPDEST SWAP3 POP PUSH1 0x0 SWAP2 POP JUMPDEST DUP6 MLOAD DUP3 LT ISZERO PUSH2 0x3D86 JUMPI DUP6 MLOAD PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP1 DUP8 SWAP1 DUP5 SWAP1 DUP2 LT PUSH2 0x3BC6 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ PUSH2 0x3C18 JUMPI PUSH2 0x3C18 DUP7 DUP4 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3BEF JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD CALLER ADDRESS DUP9 DUP7 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3C09 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH2 0x35E0 JUMP JUMPDEST DUP5 DUP3 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3C26 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x8 PUSH1 0x0 DUP9 DUP6 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3C42 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP3 MSTORE DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 SSTORE DUP6 MLOAD DUP7 SWAP1 DUP4 SWAP1 DUP2 LT PUSH2 0x3C73 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH32 0x4A1A2A6176E9646D9E3157F7C2AB3C499F18337C0B0828CFB28E0A61DE4A11F7 DUP8 DUP6 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3CBF JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD DUP9 DUP7 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3CD7 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x40 DUP1 MLOAD SWAP4 DUP5 MSTORE SWAP2 DUP4 ADD MSTORE DUP2 DUP2 ADD DUP9 SWAP1 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG3 PUSH1 0x8 PUSH1 0x0 DUP8 DUP5 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3D0F JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP3 MSTORE DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD SLOAD DUP7 MLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP2 AND SWAP2 POP PUSH2 0x3D7B SWAP1 DUP5 SWAP1 DUP9 SWAP1 DUP6 SWAP1 DUP2 LT PUSH2 0x3D53 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD DUP8 DUP6 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3D6B JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD DUP5 PUSH2 0x3725 JUMP JUMPDEST PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x3B9F JUMP JUMPDEST POP SWAP1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x3DA7 PUSH2 0x353E JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x0 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4861 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SLOAD PUSH2 0x3DDE SWAP1 CALLVALUE PUSH4 0xFFFFFFFF PUSH2 0x3580 AND JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x0 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4861 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SSTORE PUSH2 0x3E1C PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48C1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x2E12 JUMP JUMPDEST SWAP9 POP PUSH2 0x3E2A DUP10 DUP13 DUP16 DUP16 PUSH2 0x4636 JUMP JUMPDEST SWAP8 POP PUSH2 0x3E3C DUP12 DUP10 PUSH4 0xFFFFFFFF PUSH2 0x36C8 AND JUMP JUMPDEST SWAP7 POP PUSH1 0x0 SWAP6 POP JUMPDEST DUP13 MLOAD DUP7 LT ISZERO PUSH2 0x413F JUMPI DUP13 DUP7 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3E5A JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD SWAP5 POP PUSH1 0x8 PUSH1 0x0 DUP7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD SWAP4 POP DUP9 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xEBBB2158 DUP13 DUP7 PUSH1 0x9 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH4 0xFFFFFFFF AND DUP13 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH4 0xFFFFFFFF AND PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP5 POP POP POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3F10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3F24 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x3F3A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP3 POP PUSH1 0x0 DUP4 GT PUSH2 0x3F96 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5A45524F5F5441524745545F414D4F554E5400000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP12 DUP7 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3FA4 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MLOAD DUP4 GT ISZERO PUSH2 0x3FB7 JUMPI INVALID JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ PUSH2 0x3FE6 JUMPI PUSH2 0x3FE1 DUP6 CALLER ADDRESS DUP7 PUSH2 0x35E0 JUMP JUMPDEST PUSH2 0x4059 JUMP JUMPDEST DUP3 DUP13 DUP8 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3FF5 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD GT ISZERO PUSH2 0x4059 JUMPI CALLER PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x8FC DUP5 DUP15 DUP10 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x4021 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD SUB SWAP1 DUP2 ISZERO MUL SWAP1 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x4057 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP JUMPDEST PUSH2 0x4069 DUP5 DUP5 PUSH4 0xFFFFFFFF PUSH2 0x36C8 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP5 SWAP1 SSTORE DUP2 MLOAD DUP8 DUP2 MSTORE SWAP1 DUP2 ADD DUP5 SWAP1 MSTORE DUP1 DUP3 ADD DUP12 SWAP1 MSTORE SWAP1 MLOAD SWAP3 SWAP5 POP SWAP1 SWAP2 CALLER SWAP2 PUSH32 0x4A1A2A6176E9646D9E3157F7C2AB3C499F18337C0B0828CFB28E0A61DE4A11F7 SWAP2 SWAP1 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG3 PUSH1 0x8 PUSH1 0x0 DUP15 DUP9 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x40DF JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP3 MSTORE DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD SLOAD DUP14 MLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP2 AND SWAP2 POP PUSH2 0x4134 SWAP1 DUP9 SWAP1 DUP16 SWAP1 DUP10 SWAP1 DUP2 LT PUSH2 0x4123 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD DUP5 DUP5 PUSH2 0x3725 JUMP JUMPDEST PUSH1 0x1 SWAP1 SWAP6 ADD SWAP5 PUSH2 0x3E43 JUMP JUMPDEST POP SWAP6 SWAP12 SWAP11 POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 ISZERO ISZERO PUSH2 0x4163 JUMPI PUSH1 0x0 SWAP2 POP PUSH2 0x177D JUMP JUMPDEST POP DUP3 DUP3 MUL DUP3 DUP5 DUP3 DUP2 ISZERO ISZERO PUSH2 0x4173 JUMPI INVALID JUMPDEST DIV EQ PUSH2 0x34FB JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP4 GT PUSH2 0x4223 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4449564944455F42595F5A45524F0000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP3 DUP5 DUP2 ISZERO ISZERO PUSH2 0x422E JUMPI INVALID JUMPDEST DIV SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0x423F PUSH2 0x4821 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE POP SWAP1 POP PUSH1 0x20 DUP2 DUP4 MLOAD PUSH1 0x20 DUP6 ADD PUSH1 0x0 DUP8 GAS CALL DUP1 ISZERO ISZERO PUSH2 0x426C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD ISZERO ISZERO PUSH2 0x3B84 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5452414E534645525F4641494C454400000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x42CD PUSH2 0x2A36 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x42D7 PUSH2 0x1B85 JUMP JUMPDEST PUSH2 0xFFFF AND GT PUSH2 0x4330 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F434F554E5400000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x79BA5097 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x4383 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x4397 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0xCAE PUSH2 0x353E JUMP JUMPDEST PUSH32 0x8000000000000000000000000000000000000000000000000000000000000000 DUP2 LT PUSH2 0x43CC JUMPI INVALID JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP5 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 SWAP1 MSTORE DUP1 DUP3 ADD DUP4 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP8 AND SWAP3 DUP9 DUP3 AND SWAP3 SWAP2 DUP11 AND SWAP2 PUSH32 0x276856B36CBC45526A0BA64F44611557A2A8B68662C5388E9FE6D72E86E1C8CB SWAP2 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG4 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x18160DDD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x4486 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x449A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x44B0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP7 POP PUSH2 0x44BD DUP10 PUSH2 0x2619 JUMP JUMPDEST SWAP6 POP PUSH2 0x44C8 DUP9 PUSH2 0x2619 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 PUSH1 0x1 SWAP1 DUP2 ADD SLOAD SWAP4 DUP14 AND DUP4 MSTORE SWAP2 KECCAK256 ADD SLOAD SWAP2 SWAP7 POP PUSH4 0xFFFFFFFF SWAP1 DUP2 AND SWAP6 POP SWAP1 DUP2 AND SWAP4 POP PUSH2 0x4511 SWAP1 DUP7 SWAP1 DUP7 SWAP1 PUSH2 0x4150 AND JUMP JUMPDEST SWAP2 POP PUSH2 0x4526 DUP7 PUSH4 0xFFFFFFFF DUP1 DUP7 AND SWAP1 PUSH2 0x4150 AND JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP5 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP4 SWAP1 MSTORE DUP2 MLOAD SWAP3 SWAP4 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP13 AND SWAP4 SWAP1 DUP14 AND SWAP3 PUSH32 0x77F29993CF2C084E726F7E802DA0719D6A0ADE3E204BADC7A3FFD57ECB768C24 SWAP3 DUP3 SWAP1 SUB ADD SWAP1 LOG3 PUSH2 0x457D DUP8 DUP11 DUP9 DUP8 PUSH2 0x3725 JUMP JUMPDEST PUSH2 0x4589 DUP8 DUP10 DUP8 DUP7 PUSH2 0x3725 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP9 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP9 SWAP1 MSTORE PUSH4 0xFFFFFFFF DUP7 AND DUP2 DUP4 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND SWAP2 PUSH32 0x8A6A7F53B3C8FA1DC4B83E3F1BE668C1B251FF8D44CDCB83EB3ACEC3FEC6A788 SWAP2 SWAP1 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG2 PUSH1 0x40 DUP1 MLOAD DUP9 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP8 SWAP1 MSTORE PUSH4 0xFFFFFFFF DUP6 AND DUP2 DUP4 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP11 AND SWAP2 PUSH32 0x8A6A7F53B3C8FA1DC4B83E3F1BE668C1B251FF8D44CDCB83EB3ACEC3FEC6A788 SWAP2 SWAP1 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG2 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x1 JUMPDEST DUP5 MLOAD DUP2 LT ISZERO PUSH2 0x46F9 JUMPI PUSH2 0x46A1 PUSH1 0x8 PUSH1 0x0 DUP8 DUP5 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x465A JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP3 MSTORE DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 SLOAD DUP6 MLOAD DUP7 SWAP1 DUP6 SWAP1 DUP2 LT PUSH2 0x468B JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MLOAD SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x4150 AND JUMP JUMPDEST PUSH2 0x46E7 PUSH1 0x8 PUSH1 0x0 DUP9 DUP7 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x46B6 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP3 MSTORE DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 SLOAD DUP7 MLOAD DUP8 SWAP1 DUP6 SWAP1 DUP2 LT PUSH2 0x468B JUMPI INVALID JUMPDEST LT ISZERO PUSH2 0x46F1 JUMPI DUP1 SWAP2 POP JUMPDEST PUSH1 0x1 ADD PUSH2 0x463C JUMP JUMPDEST DUP7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x2F55BDB5 DUP8 PUSH1 0x8 PUSH1 0x0 DUP10 DUP8 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x471B JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP3 MSTORE DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH1 0x9 SLOAD DUP9 MLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP2 AND SWAP1 DUP10 SWAP1 DUP9 SWAP1 DUP2 LT PUSH2 0x4758 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH4 0xFFFFFFFF AND PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP5 POP POP POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x47BC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x47D0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x47E6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xA0 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE SWAP2 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x60 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 SWAP1 PUSH1 0x20 DUP3 MUL DUP1 CODESIZE DUP4 CODECOPY POP SWAP2 SWAP3 SWAP2 POP POP JUMP STOP GASLIMIT MSTORE MSTORE 0x5f 0x49 0x4e JUMP COINBASE 0x4c 0x49 DIFFICULTY 0x5f MSTORE GASLIMIT MSTORE8 GASLIMIT MSTORE JUMP GASLIMIT STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP CALLDATALOAD EXTCODECOPY 0x2e 0xb9 0xe5 GASPRICE 0x4a 0x4a PUSH14 0x45D72082FF2E9DC829D112561877 0x2a DUP4 0xeb 0xe PUSH32 0x86632C42536F7672796E53776170436F6E766572746572557067726164657200 STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee MSTORE8 PUSH16 0x7672796E53776170466F726D756C6100 STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP GASLIMIT MSTORE MSTORE 0x5f COINBASE NUMBER NUMBER GASLIMIT MSTORE8 MSTORE8 0x5f DIFFICULTY GASLIMIT 0x4e 0x49 GASLIMIT DIFFICULTY STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 ORIGIN 0x4b NUMBER PUSH5 0xD6A1792677 0xc2 REVERT DUP3 0xe3 SGT 0xb6 0x2b SWAP13 0xc9 JUMPI 0xd5 DUP10 0x49 INVALID SWAP9 0x23 0xa7 0xcc PUSH2 0xA1A 0xc SDIV STOP 0x29 ", - "sourceMap": "452:24101:23:-;;;;;;;;-1:-1:-1;452:24101:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;7097:29:4;;:8;:29;;:35;;;;;;;7089:67;;;;;;;-1:-1:-1;;;;;7089:67:4;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;7089:67:4;;;;;;;;;;;;;;;452:24101:23;3280:206:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3280:206:60;;;;;;;2700:30:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2700:30:4;;;;;;;;;;;;;;;;;;;;;;;18973:244;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;18973:244:4;;;-1:-1:-1;;;;;18973:244:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14417:102;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14417:102:4;;;;;;;;;;;;;;;;;;;;;;19274:125;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;19274:125:4;;;;;;;;;-1:-1:-1;;;;;19274:125:4;;;;;;;;;;;;;;13732:152;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;13732:152:4;;;-1:-1:-1;;;;;13732:152:4;;;19798:206;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;19798:206:4;-1:-1:-1;;;;;19798:206:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18669:110;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;18669:110:4;;;-1:-1:-1;;;;;18669:110:4;;;8967:93;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8967:93:4;;;;1250:38:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1250:38:60;;;;18836:80:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18836:80:4;;;;10292:155;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;10292:155:4;-1:-1:-1;;;;;10292:155:4;;;;;;;;;;;;1852:81:23;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1852:81:23;;;;;;;;;;;;;;;;;;;;;;;11984:542;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;11984:542:23;;;;;2080:832:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2080:832:60;;;;8691:132:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;8691:132:4;;;-1:-1:-1;;;;;8691:132:4;;;2221:35;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2221:35:4;;;;2993:31;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2993:31:4;;;;11282:601;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;11282:601:4;-1:-1:-1;;;;;11282:601:4;;;;;;;;;;;;1165:37:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1165:37:60;;;;9368:137:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;9368:137:4;;;-1:-1:-1;;;;;9368:137:4;;;7669:465;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;7669:465:4;;;-1:-1:-1;;;;;7669:465:4;;;12940:623;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;12940:623:4;;;-1:-1:-1;;;;;12940:623:4;;;;;;;21154:180:23;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;21154:180:23;;;;;;;;;;;;;;;;;;;;;19456:94:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19456:94:4;;;;1159:176:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1159:176:66;;;;1085:33:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1085:33:60;;;;6247:1402:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6247:1402:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6247:1402:23;;;;-1:-1:-1;6247:1402:23;-1:-1:-1;6247:1402:23;;-1:-1:-1;6247:1402:23;;;;;;;;;-1:-1:-1;6247:1402:23;;-1:-1:-1;;6247:1402:23;;;-1:-1:-1;6247:1402:23;;-1:-1:-1;;;;6247:1402:23;157:20:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;157:20:66;;;;2818:34:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2818:34:4;;;;12584:101;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12584:101:4;;;;21967:332:23;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;21967:332:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;21967:332:23;;-1:-1:-1;21967:332:23;;-1:-1:-1;;;;;;;21967:332:23;2798:838;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2798:838:23;-1:-1:-1;;;;;2798:838:23;;;;;;;;;;;;8055:722;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;8055:722:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8055:722:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8055:722:23;;;;-1:-1:-1;8055:722:23;-1:-1:-1;8055:722:23;;-1:-1:-1;8055:722:23;;;;;;;;;-1:-1:-1;8055:722:23;;-1:-1:-1;8055:722:23;;-1:-1:-1;;;;;;;8055:722:23;2974:119:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2974:119:60;;;;21574:116:23;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;21574:116:23;;;;;;;3095:46:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3095:46:4;;;;2322:37;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2322:37:4;;;;9209:2366:23;;;;;;2206:157;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2206:157:23;;;;2445:34:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2445:34:4;;;;;8282:71;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8282:71:4;;;;2260:30;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2260:30:4;;;;180:23:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;180:23:66;;;;12079:317:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12079:317:4;;;;2566:43;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2566:43:4;;;-1:-1:-1;;;;;2566:43:4;;;19607:134;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;19607:134:4;;;-1:-1:-1;;;;;19607:134:4;;;14111:155;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;14111:155:4;;;-1:-1:-1;;;;;14111:155:4;;;15044:649;;-1:-1:-1;;;;;15044:649:4;;;;;;;;;;;;;;;;;;;;;;;10618:240;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;10618:240:4;;;;;;;945:140:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;945:140:66;;;-1:-1:-1;;;;;945:140:66;;;18535:77:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18535:77:4;;;;3280:206:60;575:12:66;:10;:12::i;:::-;3426:26:60;:56;;;;;;;-1:-1:-1;;3426:56:60;;;;;;;;;3280:206::o;2700:30:4:-;;;;;;:::o;18973:244::-;19042:7;19054:6;19065:4;19074;19083;19097:22;;:::i;:::-;-1:-1:-1;;;;;;;;;19122:18:4;;;;;;;;:8;:18;;;;;;;;19097:43;;-1:-1:-1;19097:43:4;;;;;;;;;-1:-1:-1;19097:43:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;19122:18:4;;-1:-1:-1;19122:18:4;;19097:43;18973:244::o;14417:102::-;-1:-1:-1;;;;;;;;;;;14463:4:4;14480:29;:8;:29;;:35;;;;;;;;14417:102::o;19274:125::-;19336:11;19360:27;19388:6;19360:35;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;19360:35:4;;;-1:-1:-1;;19274:125:4:o;13732:152::-;13831:6;13807:13;6115:23;6129:8;6115:13;:23::i;:::-;-1:-1:-1;;;;;;;13850:23:4;;;;;:8;:23;;;;;-1:-1:-1;13850:30:4;;;;;13732:152::o;19798:206::-;19916:7;19925;19945:55;19964:12;19978;19992:7;19945:18;:55::i;:::-;19938:62;;;;19798:206;;;;;;:::o;18669:110::-;575:12:66;:10;:12::i;:::-;18741:34:4;18765:9;18741:23;:34::i;:::-;18669:110;:::o;8967:93::-;9025:6;;:14;;;;;;;;9008:4;;9051;;-1:-1:-1;;;;;9025:6:4;;;;:12;;:14;;;;;;;;;;;;;;;9008:4;9025:6;:14;;;5:2:-1;;;;30:1;27;20:12;5:2;9025:14:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9025:14:4;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9025:14:4;-1:-1:-1;;;;;9025:31:4;;;8967:93;-1:-1:-1;8967:93:4:o;1250:38:60:-;;;;;;;;;:::o;18836:80:4:-;575:12:66;:10;:12::i;:::-;18889:23:4;:21;:23::i;:::-;18836:80::o;10292:155::-;575:12:66;:10;:12::i;:::-;10400:6:4;;:43;;;;;;-1:-1:-1;;;;;10400:43:4;;;;;;;;;;;;;;;;;;;;;;:6;;;;;:21;;:43;;;;;-1:-1:-1;;10400:43:4;;;;;;;-1:-1:-1;10400:6:4;:43;;;5:2:-1;;;;30:1;27;20:12;5:2;10400:43:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10400:43:4;;;;10292:155;;;:::o;1852:81:23:-;1924:1;1852:81;:::o;11984:542::-;12100:19;12227:40;12321:9;565:12:68;:10;:12::i;:::-;287:1;581:5;:14;12066:1:23;12056:11;;12048:39;;;;;-1:-1:-1;;;;;12048:39:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;12134:6;;12122:33;;;-1:-1:-1;;;;;12122:33:23;;;;-1:-1:-1;;;;;12134:6:23;;;;12122:31;;:33;;;;;;;;;;;;;;;12134:6;;12122:33;;;5:2:-1;;;;30:1;27;20:12;5:2;12122:33:23;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12122:33:23;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12122:33:23;12178:6;;12166:48;;;;;;12194:10;12166:48;;;;;;;;;;;;12122:33;;-1:-1:-1;;;;;;12178:6:23;;;;12166:27;;:48;;;;;-1:-1:-1;;12166:48:23;;;;;;;;-1:-1:-1;12178:6:23;12166:48;;;5:2:-1;;;;30:1;27;20:12;5:2;12166:48:23;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12166:48:23;;;;12284:13;:20;;;;12270:35;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;136:17;;-1:-1;12270:35:23;;12227:78;;12333:1;12321:13;;12316:104;12340:23;:30;12336:1;:34;12316:104;;;12419:1;12390:23;12414:1;12390:26;;;;;;;;;;;;;;;;;;:30;12372:3;;12316:104;;;12433:85;12457:13;12433:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12433:85:23;;;-1:-1:-1;12433:85:23;;;;;;;;;;;;;;;;;12472:23;12497:11;12510:7;12433:23;:85::i;:::-;-1:-1:-1;;249:1:68;604:5;:16;-1:-1:-1;;11984:542:23:o;2080:832:60:-;2281:29;2183:5;;-1:-1:-1;;;;;2183:5:60;2169:10;:19;;:50;;-1:-1:-1;2193:26:60;;;;;;;2192:27;2169:50;2161:80;;;;;;;-1:-1:-1;;;;;2161:80:60;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;2161:80:60;;;;;;;;;;;;;;;2331:28;2341:17;2331:9;:28::i;:::-;2465:8;;2281:79;;-1:-1:-1;;;;;;2442:32:60;;;2465:8;;2442:32;;;;:61;;-1:-1:-1;;;;;;2478:25:60;;;;2442:61;2434:94;;;;;;;-1:-1:-1;;;;;2434:94:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;2628:40;;;;;;2650:17;2628:40;;;;;;-1:-1:-1;;;;;;;2628:21:60;;;;;:40;;;;;;;;;;;;;;;-1:-1:-1;2628:21:60;:40;;;5:2:-1;;;;30:1;27;20:12;5:2;2628:40:60;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2628:40:60;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2628:40:60;-1:-1:-1;;;;;2628:54:60;;;2620:87;;;;;-1:-1:-1;;;;;2620:87:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;2799:8;;;2784:12;:23;;-1:-1:-1;;;;;2799:8:60;;;-1:-1:-1;;2784:23:60;;;;;;;2886:22;;;;;;;;;;;2080:832::o;8691:132:4:-;575:12:66;:10;:12::i;:::-;8771:10:4;782:18:72;791:8;782;:18::i;:::-;-1:-1:-1;8787:19:4;:32;;-1:-1:-1;;8787:32:4;-1:-1:-1;;;;;8787:32:4;;;;;;;;;;8691:132::o;2221:35::-;2254:2;2221:35;:::o;2993:31::-;;;;;;;;;:::o;11282:601::-;11396:25;565:12:68;:10;:12::i;:::-;287:1;581:5;:14;575:12:66;:10;:12::i;:::-;11424:29:4;-1:-1:-1;;;;;;;;;;;11424:9:4;:29::i;:::-;-1:-1:-1;;;;;11622:16:4;;;;;;:8;:16;;;;;-1:-1:-1;11622:22:4;;11396:57;;-1:-1:-1;11622:22:4;;;;;11621:23;;:38;;;11649:10;:8;:10::i;:::-;11648:11;11621:38;:68;;;-1:-1:-1;11663:5:4;;-1:-1:-1;;;;;11663:26:4;;;:5;;:26;11621:68;11613:98;;;;;;;-1:-1:-1;;;;;11613:98:4;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;11613:98:4;;;;;;;;;;;;;;;11715:42;11736:6;11744:3;11749:7;11715:20;:42::i;:::-;-1:-1:-1;;;;;11829:16:4;;;;;;:8;:16;;;;;-1:-1:-1;11829:22:4;;;;;;;11825:54;;;11853:26;11872:6;11853:18;:26::i;1165:37:60:-;;;-1:-1:-1;;;;;1165:37:60;;:::o;9368:137:4:-;575:12:66;:10;:12::i;:::-;-1:-1:-1;;;;;;;;;;;1510:20:60;1516:13;1510:5;:20::i;:::-;9466:6:4;;:35;;;;;;-1:-1:-1;;;;;9466:35:4;;;;;;;;;:6;;;;;:24;;:35;;;;;-1:-1:-1;;9466:35:4;;;;;;;-1:-1:-1;9466:6:4;:35;;;5:2:-1;;;;30:1;27;20:12;5:2;9466:35:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9466:35:4;;;;591:1:66;9368:137:4;:::o;7669:465::-;7781:25;565:12:68;:10;:12::i;:::-;287:1;581:5;:14;575:12:66;:10;:12::i;:::-;-1:-1:-1;;;;;;;;;;;6115:23:4;6129:8;6115:13;:23::i;:::-;7809:29;-1:-1:-1;;;;;;;;;;;7809:9:4;:29::i;:::-;7781:57;;7938:10;:8;:10::i;:::-;7937:11;:41;;;-1:-1:-1;7952:5:4;;-1:-1:-1;;;;;7952:26:4;;;:5;;:26;7937:41;7929:71;;;;;;;-1:-1:-1;;;;;7929:71:4;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;7929:71:4;;;;;;;;;;;;;;;8004:35;;-1:-1:-1;;;;;8004:12:4;;;8025:4;8017:21;8004:35;;;;;;;;;8017:21;8004:12;:35;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8004:35:4;8078:52;-1:-1:-1;;;;;;;;;;;8078:18:4;:52::i;:::-;-1:-1:-1;;249:1:68;604:5;:16;-1:-1:-1;7669:465:4:o;12940:623::-;13373:26;575:12:66;:10;:12::i;:::-;5818:11:4;:9;:11::i;:::-;13043:6;475:23:72;489:8;475:13;:23::i;:::-;13061:6:4;782:18:72;791:8;782;:18::i;:::-;13090:7:4;6729:28;6749:7;6729:19;:28::i;:::-;13150:6;;-1:-1:-1;;;;;13132:25:4;;;13150:6;;13132:25;;;;:52;;-1:-1:-1;;;;;;13162:16:4;;;;;;:8;:16;;;;;-1:-1:-1;13162:22:4;;;;;;;13161:23;13132:52;13124:84;;;;;;;-1:-1:-1;;;;;13124:84:4;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;13124:84:4;;;;;;;;;;;;;;;13251:12;;;;;;1763:7;13231:32;13220:43;;;;;;;13212:82;;;;;-1:-1:-1;;;;;13212:82:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;13306:32;:19;:17;:19::i;:::-;:32;;;13298:70;;;;;-1:-1:-1;;;;;13298:70:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;13402:16:4;;;;;;;;:8;:16;;;;;13422:22;;;-1:-1:-1;13448:17:4;;;:27;;-1:-1:-1;;13448:27:4;;;;-1:-1:-1;;13448:27:4;;;;13479:23;;;;;;;;;13506:13;27:10:-1;;23:18;;;45:23;;13506:26:4;;;;;;;;;-1:-1:-1;;13506:26:4;;;;;;;13536:12;:23;;;;;;;;;;;;;;;;;;;12940:623::o;21154:180:23:-;21210:7;;21271:2;21254:53;21279:1;21275;:5;21254:53;;;21304:3;;;;;;21287:2;21282:7;;21254:53;;;-1:-1:-1;21325:1:23;21154:180;-1:-1:-1;;21154:180:23:o;19456:94:4:-;19508:6;19527:19;:17;:19::i;:::-;19520:26;;19456:94;:::o;1159:176:66:-;1219:8;;-1:-1:-1;;;;;1219:8:66;1205:10;:22;1197:52;;;;;-1:-1:-1;;;;;1197:52:66;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;1197:52:66;;;;;;;;;;;;;;;1277:8;;;1270:5;;1258:28;;-1:-1:-1;;;;;1277:8:66;;;;1270:5;;;;1258:28;;;1298:8;;;;1290:16;;-1:-1:-1;;;;;1298:8:66;;-1:-1:-1;;1290:16:66;;;;;;;1310:21;;;1159:176::o;1085:33:60:-;;;-1:-1:-1;;;;;1085:33:60;;:::o;6247:1402:23:-;6680:9;7130:19;7291:14;565:12:68;:10;:12::i;:::-;287:1;581:5;:14;5606:9:4;:7;:9::i;:::-;6478:65:23;6499:14;6515:15;6532:10;6478:20;:65::i;:::-;6692:1;6680:13;;6675:195;6699:14;:21;6695:1;:25;6675:195;;;6744:17;;-1:-1:-1;;;;;;;;;;;1884:42:4;6744:14:23;;6759:1;;6744:17;;;;;;;;;;;;;;;-1:-1:-1;;;;;6744:40:23;;6740:130;;;6833:9;6811:15;6827:1;6811:18;;;;;;;;;;;;;;;;;;;:31;6803:67;;;;;-1:-1:-1;;;;;6803:67:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;6722:3;;;;;6675:195;;;7002:1;6990:9;:13;6986:98;;;-1:-1:-1;;;;;;;;;;;7026:29:23;;:8;:29;;:35;;;;;;;7018:66;;;;;;;-1:-1:-1;;;;;7018:66:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;7164:6;;7152:33;;;-1:-1:-1;;;;;7152:33:23;;;;-1:-1:-1;;;;;7164:6:23;;;;7152:31;;:33;;;;;;;;;;;;;;;7164:6;;7152:33;;;5:2:-1;;;;30:1;27;20:12;5:2;7152:33:23;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7152:33:23;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7152:33:23;;-1:-1:-1;7308:64:23;7327:14;7343:15;7152:33;7308:18;:64::i;:::-;7291:81;-1:-1:-1;7499:20:23;;;;7491:51;;;;;-1:-1:-1;;;;;7491:51:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;7608:6;;7596:45;;;;;;7622:10;7596:45;;;;;;;;;;;;-1:-1:-1;;;;;7608:6:23;;;;7596:25;;:45;;;;;-1:-1:-1;;7596:45:23;;;;;;;;-1:-1:-1;7608:6:23;7596:45;;;5:2:-1;;;;30:1;27;20:12;5:2;7596:45:23;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;249:1:68;604:5;:16;-1:-1:-1;;;;;;;;6247:1402:23:o;157:20:66:-;;;-1:-1:-1;;;;;157:20:66;;:::o;2818:34:4:-;;;;;;;;;:::o;12584:101::-;12660:13;:20;12584:101;:::o;21967:332:23:-;22108:14;;22037:7;;;;;22133:90;22157:6;22153:1;:10;22133:90;;;22198:25;22212:7;22220:1;22212:10;;;;;;;;;;;;;;;;;;22198:13;:25::i;:::-;22183:40;;;;22165:3;;22133:90;;;22289:1;22257:29;22266:11;22279:6;22257:8;:29::i;:::-;:33;22249:2;22241:50;;21967:332;-1:-1:-1;;;;;21967:332:23:o;2798:838::-;3031:7;3040;3168:14;3557:11;5606:9:4;:7;:9::i;:::-;2963:12:23;6115:23:4;6129:8;6115:13;:23::i;:::-;2999:12:23;6115:23:4;6129:8;6115:13;:23::i;:::-;-1:-1:-1;;;;;3100:28:23;;;;;;;;3092:63;;;;;-1:-1:-1;;;;;3092:63:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;3204:29;-1:-1:-1;;;;;;;;;;;3204:9:23;:29::i;:::-;-1:-1:-1;;;;;3185:74:23;;3274:28;3289:12;3274:14;:28::i;:::-;-1:-1:-1;;;;;3317:22:23;;;;;;:8;:22;;;;;-1:-1:-1;3317:29:23;;;;3361:28;3376:12;3361:14;:28::i;:::-;-1:-1:-1;;;;;3404:22:23;;;;;;:8;:22;;;;;;;;-1:-1:-1;3404:29:23;;3185:281;;3404:29;3185:281;;;-1:-1:-1;3185:281:23;;;;;;;;;;;;;;;;;;;;;;;;3404:29;;;;3185:281;;;;;;;;;;;;;;;;;3404:22;;3185:281;;;;;;;;;;;;;;5:2:-1;;;;30:1;27;20:12;5:2;3185:281:23;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3185:281:23;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3185:281:23;;-1:-1:-1;3571:20:23;3185:281;3571:12;:20::i;:::-;3610:12;;;;;3557:34;;-1:-1:-1;2798:838:23;;-1:-1:-1;;;;;;;2798:838:23:o;8055:722::-;8429:19;565:12:68;:10;:12::i;:::-;287:1;581:5;:14;5606:9:4;:7;:9::i;:::-;8278:71:23;8299:14;8315:24;8341:7;8278:20;:71::i;:::-;8463:6;;8451:33;;;-1:-1:-1;;;;;8451:33:23;;;;-1:-1:-1;;;;;8463:6:23;;;;8451:31;;:33;;;;;;;;;;;;;;;8463:6;;8451:33;;;5:2:-1;;;;30:1;27;20:12;5:2;8451:33:23;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8451:33:23;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8451:33:23;8545:6;;8533:48;;;;;;8561:10;8533:48;;;;;;;;;;;;8451:33;;-1:-1:-1;;;;;;8545:6:23;;;;8533:27;;:48;;;;;-1:-1:-1;;8533:48:23;;;;;;;;-1:-1:-1;8545:6:23;8533:48;;;5:2:-1;;;;30:1;27;20:12;5:2;8533:48:23;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8533:48:23;;;;8682:87;8706:14;8722:24;8748:11;8761:7;8682:23;:87::i;2974:119:60:-;575:12:66;:10;:12::i;:::-;3077::60;;3066:8;:23;;-1:-1:-1;;3066:23:60;-1:-1:-1;;;;;3077:12:60;;;3066:23;;;;;;2974:119::o;21574:116:23:-;21637:7;21680:2;21675:1;21680:2;21670:6;21665:2;:11;21664:18;;;;;;;;;21574:116;-1:-1:-1;;;21574:116:23:o;3095:46:4:-;3137:4;3095:46;:::o;2322:37::-;;;-1:-1:-1;;;;;2322:37:4;;:::o;9209:2366:23:-;9413:14;9474:26;9756:20;9815:9;9868:24;9926:18;9992:21;10815:25;10954:26;11276:20;565:12:68;:10;:12::i;:::-;287:1;581:5;:14;9276:21:23;:19;:21::i;:::-;-1:-1:-1;;;;;;;;;;;9348:29:23;;:8;:29;;-1:-1:-1;;;;;;;;;;;9348:37:23;:52;;9390:9;9348:52;:41;:52;:::i;:::-;-1:-1:-1;;;;;;;;;;;9308:29:23;;;;:8;:29;;;;-1:-1:-1;;;;;;;;;;;9308:92:23;;;;9442:6;;9308:29;9430:33;;-1:-1:-1;;;;;9430:33:23;;;;-1:-1:-1;;;;;9442:6:23;;;;9430:31;;:33;;;;;9308:92;;9430:33;;;;;;;9442:6;9430:33;;;5:2:-1;;;;30:1;27;20:12;5:2;9430:33:23;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9430:33:23;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9430:33:23;;-1:-1:-1;9522:29:23;-1:-1:-1;;;;;;;;;;;9522:9:23;:29::i;:::-;9779:13;:20;9474:78;;-1:-1:-1;9779:20:23;-1:-1:-1;9827:1:23;;-1:-1:-1;9810:1639:23;9834:12;9830:1;:16;9810:1639;;;9895:13;:16;;9909:1;;9895:16;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9895:16:23;9868:43;;9947:8;:22;9956:12;-1:-1:-1;;;;;9947:22:23;-1:-1:-1;;;;;9947:22:23;;;;;;;;;;;;:30;;;9926:51;;10016:7;-1:-1:-1;;;;;10016:16:23;;10033:6;10041:10;10053:12;;;;;;;;;;;10067:7;10016:59;;;;;-1:-1:-1;;;10016:59:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10016:59:23;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10016:59:23;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;10016:59:23;-1:-1:-1;;;10016:59:23;;-1:-1:-1;;;;;;10164:35:23;;;-1:-1:-1;;;;;;;;10164:35:23;10160:598;;;10236:13;10224:9;:25;10220:406;;;10274:46;;:10;;10294:9;:25;;;10274:46;;;;;;;;;10294:25;10274:10;:46;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10274:46:23;10220:406;;;10379:13;10367:9;:25;10363:263;;;10425:9;:14;10417:48;;;;;-1:-1:-1;;;;;10417:48:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;10505:10;;10488:61;;10505:10;;;-1:-1:-1;;;;;10505:10:23;10517;10529:4;10535:13;10488:16;:61::i;:::-;10572:10;;:34;;;;;;;;;;;;;;:10;;;;-1:-1:-1;;;;;10572:10:23;;:19;;:34;;;;;-1:-1:-1;;10572:34:23;;;;;;;;-1:-1:-1;10572:10:23;:34;;;5:2:-1;;;;30:1;27;20:12;5:2;10572:34:23;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10572:34:23;;;;10363:263;10160:598;;;10679:63;10696:12;10710:10;10722:4;10728:13;10679:16;:63::i;:::-;10843:29;:10;10858:13;10843:29;:14;:29;:::i;:::-;-1:-1:-1;;;;;10887:22:23;;;;;;:8;:22;;;;;:50;;;;-1:-1:-1;10983:19:23;:6;10994:7;10983:10;:19::i;:::-;11093:94;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;11093:94:23;;;11108:10;;11093:94;;;;;;;;;;-1:-1:-1;;;;;;11299:22:23;;;;;;:8;:22;;;;;-1:-1:-1;11299:29:23;;;;11343:94;11370:18;11299:22;11404:17;11299:29;11343:26;:94::i;:::-;9848:3;;;;;9810:1639;;;11533:6;;11521:46;;;;;;11547:10;11521:46;;;;;;;;;;;;-1:-1:-1;;;;;11533:6:23;;;;11521:25;;:46;;;;;-1:-1:-1;;11521:46:23;;;;;;;;-1:-1:-1;11533:6:23;11521:46;;;5:2:-1;;;;30:1;27;20:12;5:2;11521:46:23;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;249:1:68;604:5;:16;-1:-1:-1;;;;;;;;;;;;;9209:2366:23:o;2206:157::-;575:12:66;:10;:12::i;:::-;2267:29:23;:27;:29::i;:::-;2342:6;;2350:4;;-1:-1:-1;;;;;2342:6:23;2325:15;:13;:15::i;:::-;2314:41;;;;;;;;;;;;2206:157::o;2445:34:4:-;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2445:34:4;;-1:-1:-1;2445:34:4;:::o;2260:30::-;;;-1:-1:-1;;;;;2260:30:4;;:::o;180:23:66:-;;;-1:-1:-1;;;;;180:23:66;;:::o;12079:317:4:-;12119:36;575:12:66;:10;:12::i;:::-;12177:29:4;-1:-1:-1;;;;;;;;;;;12177:9:4;:29::i;:::-;12278:6;;12119:88;;-1:-1:-1;12286:5:4;;-1:-1:-1;;;;;12278:6:4;12261:15;:13;:15::i;:::-;12250:42;;;;;;;;;;;;12297:36;12315:17;12297;:36::i;:::-;12337:34;;;;;;2254:2;12337:34;;;;;;-1:-1:-1;;;;;12337:25:4;;;;;:34;;;;;-1:-1:-1;;12337:34:4;;;;;;;-1:-1:-1;12337:25:4;:34;;;5:2:-1;;;;30:1;27;20:12;5:2;12337:34:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12337:34:4;;;;12375:17;:15;:17::i;2566:43::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;19607:134::-;19686:7;19706:31;19721:15;19706:14;:31::i;:::-;19699:38;19607:134;-1:-1:-1;;19607:134:4:o;14111:155::-;14211:7;14187:13;6115:23;6129:8;6115:13;:23::i;:::-;-1:-1:-1;;;;;;;14231:23:4;;;;;:8;:23;;;;;:31;;14111:155::o;15044:649::-;15241:7;565:12:68;:10;:12::i;:::-;287:1;581:5;:14;15212:18:4;1510:20:60;15212:18:4;1510:5:60;:20::i;:::-;-1:-1:-1;;;;;15282:28:4;;;;;;;;15274:63;;;;;-1:-1:-1;;;;;15274:63:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;15446:19;;-1:-1:-1;;;;;15446:19:4;:33;;:132;;-1:-1:-1;15484:19:4;;:42;;;;;;-1:-1:-1;;;;;15484:42:4;;;;;;;;;:19;;;;;:33;;:42;;;;;;;;;;;;;;-1:-1:-1;15484:19:4;:42;;;5:2:-1;;;;30:1;27;20:12;5:2;15484:42:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15484:42:4;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;15484:42:4;:93;;;;-1:-1:-1;15530:19:4;;:47;;;;;;-1:-1:-1;;;;;15530:47:4;;;;;;;;;:19;;;;;:33;;:47;;;;;;;;;;;;;;-1:-1:-1;15530:19:4;:47;;;5:2:-1;;;;30:1;27;20:12;5:2;15530:47:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15530:47:4;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;15530:47:4;15484:93;15434:174;;;;;;;-1:-1:-1;;;;;15434:174:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;15620:69;15630:12;15644;15658:7;15667;15676:12;15620:9;:69::i;:::-;249:1:68;604:5;:16;15613:76:4;15044:649;-1:-1:-1;;;;;;;15044:649:4:o;10618:240::-;575:12:66;:10;:12::i;:::-;10714:16:4;;;;;;;;;10696:34;;;;;10688:73;;;;;-1:-1:-1;;;;;10688:73:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;10790:13;;10770:50;;;10790:13;;;;;;;10770:50;;;;;;;;;;;;;;;;;;;;;10824:13;:30;;;;;;;;-1:-1:-1;;10824:30:4;;;;;;;;;10618:240::o;945:140:66:-;575:12;:10;:12::i;:::-;1033:5;;-1:-1:-1;;;;;1020:18:66;;;1033:5;;1020:18;;1012:45;;;;;-1:-1:-1;;;;;1012:45:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;1061:8;:20;;-1:-1:-1;;1061:20:66;-1:-1:-1;;;;;1061:20:66;;;;;;;;;;945:140::o;18535:77:4:-;18602:6;;-1:-1:-1;;;;;18602:6:4;;18535:77::o;642:93:66:-;704:5;;-1:-1:-1;;;;;704:5:66;690:10;:19;682:49;;;;;-1:-1:-1;;;;;682:49:66;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;682:49:66;;;;;;;;;;;;;;6193:123:4;-1:-1:-1;;;;;6264:18:4;;;;;;:8;:18;;;;;-1:-1:-1;6264:24:4;;;;;;;6256:56;;;;;;;-1:-1:-1;;;;;6256:56:4;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;6256:56:4;;;;;;;;;;;;;;670:88:68;718:5;;249:1;718:17;710:44;;;;;-1:-1:-1;;;;;710:44:68;;;;;;;;;;;;;;;;;;;;;;;;;;;18746:1572:23;18965:26;19054;19126:9;19188:24;19247:18;19313:21;19527:25;20138:20;18931:21;:19;:21::i;:::-;19013:29;-1:-1:-1;;;;;;;;;;;19013:9:23;:29::i;:::-;18965:78;-1:-1:-1;19083:25:23;:12;19100:7;19083:25;:16;:25;:::i;:::-;19054:54;;19138:1;19126:13;;19121:1190;19145:14;:21;19141:1;:25;19121:1190;;;19215:14;19230:1;19215:17;;;;;;;;;;;;;;;;;;19188:44;;19268:8;:22;19277:12;-1:-1:-1;;;;;19268:22:23;-1:-1:-1;;;;;19268:22:23;;;;;;;;;;;;:30;;;19247:51;;19337:7;-1:-1:-1;;;;;19337:30:23;;19368:12;19382:10;19394:12;;;;;;;;;;;19408:7;19337:79;;;;;-1:-1:-1;;;19337:79:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19337:79:23;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;19337:79:23;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;19337:79:23;19456:27;;19337:79;;-1:-1:-1;19456:24:23;;19481:1;;19456:27;;;;;;;;;;;;;;;19439:44;;;19431:79;;;;;-1:-1:-1;;;;;19431:79:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;19555:29;:10;19570:13;19555:29;:14;:29;:::i;:::-;-1:-1:-1;;;;;19599:22:23;;;;;;:8;:22;;;;;;;:50;;;;;-1:-1:-1;19599:22:23;;;;-1:-1:-1;19599:22:23;-1:-1:-1;;;;;19753:35:23;19749:182;;;19807:34;;:10;;:34;;;;;19827:13;;19807:34;;;;19827:13;19807:10;:34;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;19807:34:23;19749:182;;;19878:53;19891:12;19905:10;19917:13;19878:12;:53::i;:::-;19953:96;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;19953:96:23;;;19970:10;;19953:96;;;;;;;;;-1:-1:-1;;;;;;20161:22:23;;;;;;:8;:22;;;;;-1:-1:-1;20161:29:23;;;;20205:94;20232:18;20161:22;20266:17;20161:29;20205:26;:94::i;:::-;19168:3;;;;;19121:1190;;;18746:1572;;;;;;;;;;;;:::o;3647:122:60:-;3732:8;;:33;;;;;;;;;;;;;;-1:-1:-1;;;;;;;3732:8:60;;:18;;:33;;;;;;;;;;;;;;-1:-1:-1;3732:8:60;:33;;;5:2:-1;;;;30:1;27;20:12;5:2;3732:33:60;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3732:33:60;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3732:33:60;;3647:122;-1:-1:-1;;3647:122:60:o;855:115:72:-;937:4;-1:-1:-1;;;;;917:25:72;;;;909:57;;;;;-1:-1:-1;;;;;909:57:72;;;;;;;;;;;;;;;;;;;;;;;;;;;1077:194:71;575:12:66;:10;:12::i;:::-;1190:6:71;475:23:72;489:8;475:13;:23::i;:::-;1211:3:71;475:23:72;489:8;475:13;:23::i;:::-;1224:3:71;782:18:72;791:8;782;:18::i;:::-;1233:34:71;1246:6;1254:3;1259:7;1233:12;:34::i;16898:269:4:-;16975:13;6115:23;6129:8;6115:13;:23::i;:::-;-1:-1:-1;;;;;;;;16998:36:4;;;-1:-1:-1;;;;;;;;;16998:36:4;16994:169;;;-1:-1:-1;;;;;17036:23:4;;;;;;:8;:23;;;;;17078:4;17070:21;17036:55;;16994:169;;;17134:29;;;;;;17158:4;17134:29;;;;;;-1:-1:-1;;;;;17134:23:4;;;;;:29;;;;;;;;;;;;;;-1:-1:-1;17134:23:4;:29;;;5:2:-1;;;;30:1;27;20:12;5:2;17134:29:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17134:29:4;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;17134:29:4;-1:-1:-1;;;;;17100:23:4;;;;;;:8;17134:29;17100:23;;;;:63;16994:169;16898:269;;:::o;1585:128:60:-;1663:24;1673:13;1663:9;:24::i;:::-;-1:-1:-1;;;;;1649:38:60;:10;:38;1641:68;;;;;-1:-1:-1;;;;;1641:68:60;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;1641:68:60;;;;;;;;;;;;;;5884:77:4;5932:10;:8;:10::i;:::-;5931:11;5923:34;;;;;-1:-1:-1;;;;;5923:34:4;;;;;;;;;;;;;;;;;;;;;;;;;;;553:117:72;-1:-1:-1;;;;;620:22:72;;;;612:54;;;;;-1:-1:-1;;;;;612:54:72;;;;;;;;;;;;;;;;;;;;;;;;;;;6812:149:4;6893:1;6883:7;:11;;;:43;;;;-1:-1:-1;1763:7:4;6898:28;;;;;6883:43;6875:82;;;;;;;-1:-1:-1;;;;;6875:82:4;;;;;;;;;;;;;;;;;;;;;;;;;;;5670:76;5715:10;:8;:10::i;:::-;5707:35;;;;;;;-1:-1:-1;;;;;5707:35:4;;;;;;;;;;;;;;;;;;;;;;;;;;;12933:1158:23;13134:13;:20;13183:21;;13075:9;;;;13173:31;;13165:63;;;;;-1:-1:-1;;;;;13165:63:23;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;13165:63:23;;;;;;;;;;;;;;;13257:22;;13247:32;;13239:63;;;;;-1:-1:-1;;;;;13239:63:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;13324:1;13320:5;;13315:650;13331:6;13327:1;:10;13315:650;;;13455:8;:27;13464:14;13479:1;13464:17;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13455:27:23;;;;;;;;;;;-1:-1:-1;13455:27:23;-1:-1:-1;13455:33:23;;;;;;;13447:65;;;;;;;-1:-1:-1;;;;;13447:65:23;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;13447:65:23;;;;;;;;;;;;;;;13536:1;13532:5;;13527:133;13543:6;13539:1;:10;13527:133;;;13599:14;13614:1;13599:17;;;;;;;;;;;;;;;;;;;13579:13;:16;;-1:-1:-1;;;;;13579:37:23;;;;13593:1;;13579:16;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13579:16:23;:37;13575:69;;;13639:5;;13575:69;13551:3;;;;;13527:133;;;13770:10;;;13762:42;;;;;-1:-1:-1;;;;;13762:42:23;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;13762:42:23;;;;;;;;;;;;;;;13929:1;13908:15;13924:1;13908:18;;;;;;;;;;;;;;;;;;;:22;13900:53;;;;;-1:-1:-1;;;;;13900:53:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;13339:3;;;;;13315:650;;;14062:1;14052:11;;14044:39;;;;;-1:-1:-1;;;;;14044:39:23;;;;;;;;;;;;;;;;;;;;;;;;;;;14353:379;14509:7;14538:17;;14534:99;;;14577:56;14601:14;14617:15;14577:23;:56::i;:::-;14570:63;;;;14534:99;14651:73;14678:14;14694:15;14711:12;14651:26;:73::i;:::-;14644:80;;14353:379;;;;;;:::o;16577:155:4:-;16683:13;;16645:7;;16665:63;;1826:7;;16665:32;;:13;;16683;;;16665:63;16683:13;;;;16665:17;:32;:::i;:::-;:36;:63;:36;:63;:::i;17223:174::-;17290:13;:20;17267;17314:79;17338:12;17334:1;:16;17314:79;;;17357:36;17376:13;17390:1;17376:16;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;17376:16:4;17357:18;:36::i;:::-;17352:3;;17314:79;;613:129:69;673:7;694:8;;;;686:34;;;;;-1:-1:-1;;;;;686:34:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;731:7:69;;;613:129::o;1740:206:70:-;351:50;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1870:71:70;;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;1870:71:70;;;;;;;25:18:-1;;61:17;;-1:-1;;;;;182:15;-1:-1;;;;;;1870:71:70;;;179:29:-1;;;;160:49;;;1854:88:70;;1862:6;;1854:7;:88::i;:::-;1740:206;;;;:::o;288:144:69:-;348:7;373;;;392;;;;384:32;;;;;-1:-1:-1;;;;;384:32:69;;;;;;;;;;;;;;;;;;;;;;;;;;;24265:285:23;24442:6;;-1:-1:-1;;;;;24426:116:23;;;;24442:6;24426:116;24465:38;:15;1763:7:4;24465:19:23;:38::i;:::-;24505:36;:16;:36;;;;;:20;:36;:::i;:::-;24426:116;;;;;;;;;;;;;;;;;;;;;;24265:285;;;;:::o;2090:197:9:-;2219:1;2197:19;:17;:19::i;:::-;:23;;;2189:61;;;;;-1:-1:-1;;;;;2189:61:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;2254:29;:27;:29::i;4223:1642:23:-;4386:7;4459:14;4475:11;4745:28;4490:55;4509:12;4523;4537:7;4490:18;:55::i;:::-;4458:87;;-1:-1:-1;4458:87:23;-1:-1:-1;4626:11:23;;;4618:46;;;;;-1:-1:-1;;;;;4618:46:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;4776:28;4791:12;4776:14;:28::i;:::-;4745:59;-1:-1:-1;4822:29:23;;;4815:37;;;;-1:-1:-1;;;;;;;;4932:35:23;;;-1:-1:-1;;;;;;;;;4932:35:23;4928:261;;;4990:9;:20;;4982:56;;;;;-1:-1:-1;;;;;4982:56:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;4928:261;;;5075:9;:14;:91;;;;;5159:7;5093:62;5126:28;5141:12;5126:14;:28::i;:::-;5093;;;;;;5116:4;5093:28;;;;;;-1:-1:-1;;;;;5093:22:23;;;;;:28;;;;;;;;;;;;;;-1:-1:-1;5093:22:23;:28;;;5:2:-1;;;;30:1;27;20:12;5:2;5093:28:23;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5093:28:23;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5093:28:23;;:62;:32;:62;:::i;:::-;:73;;5075:91;5067:122;;;;;;;-1:-1:-1;;;;;5067:122:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;5240:32;5259:12;5240:18;:32::i;:::-;-1:-1:-1;;;;;5316:22:23;;;;;;:8;:22;;;;;:30;:42;;5351:6;5316:34;:42::i;:::-;-1:-1:-1;;;;;5283:22:23;;;;;;:8;:22;;;;;;;:75;;;;:22;;;;-1:-1:-1;5283:22:23;-1:-1:-1;;;;;5445:35:23;5441:160;;;5495:29;;-1:-1:-1;;;;;5495:21:23;;;:29;;;;;;;;;;;;:21;:29;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5495:29:23;5441:160;;;5553:48;5566:12;5580;5594:6;5553:12;:48::i;:::-;5656:82;5680:12;5694;5708:7;5717;5726:6;5734:3;5656:23;:82::i;:::-;5785:46;5804:12;5818;5785:18;:46::i;:::-;-1:-1:-1;5851:6:23;;4223:1642;-1:-1:-1;;;;;;;4223:1642:23:o;1214:173:70:-;248:38;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1323:59:70;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;1323:59:70;;;;;;;;25:18:-1;;61:17;;-1:-1;;;;;182:15;-1:-1;;;;;;1323:59:70;;;179:29:-1;;;;160:49;;;1307:76:70;;1315:6;;1307:7;:76::i;:::-;1214:173;;;:::o;14958:1136:23:-;15097:7;15207:14;15351:9;15889:20;15224:30;15238:15;15224:13;:30::i;:::-;15207:47;;15363:1;15351:13;;15346:715;15370:14;:21;15366:1;:25;15346:715;;;15417:17;;-1:-1:-1;;;;;;;;;;;1884:42:4;15417:14:23;;15432:1;;15417:17;;;;;;;;;;;;;;;;-1:-1:-1;;;;;15417:40:23;;15413:199;;15539:73;15556:14;15571:1;15556:17;;;;;;;;;;;;;;;;;;15575:10;15587:4;15593:15;15609:1;15593:18;;;;;;;;;;;;;;;;;;15539:16;:73::i;:::-;15667:15;15683:1;15667:18;;;;;;;;;;;;;;;;;;15629:8;:27;15638:14;15653:1;15638:17;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;15629:27:23;;;;;;;;;;;-1:-1:-1;15629:27:23;:56;15734:17;;;;15749:1;;15734:17;;;;;;;;;;;;;;;15753:18;;-1:-1:-1;;;;;15707:93:23;;;;15722:10;;15707:93;;15753:15;;15769:1;;15753:18;;;;;;;;;;;;;;15773:15;15789:1;15773:18;;;;;;;;;;;;;;;;;;;;15707:93;;;;;;;;;;;;;;;;;;;;;;;;;15912:8;:27;15921:14;15936:1;15921:17;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;15912:27:23;;;;;;;;;;;-1:-1:-1;15912:27:23;-1:-1:-1;15912:34:23;;15996:17;;15912:34;;;;;-1:-1:-1;15961:88:23;;15988:6;;15996:17;;16011:1;;15996:17;;;;;;;;;;;;;;16015:15;16031:1;16015:18;;;;;;;;;;;;;;;;;;16035:13;15961:26;:88::i;:::-;15393:3;;;;;15346:715;;;-1:-1:-1;16080:6:23;;14958:1136;-1:-1:-1;;;;14958:1136:23:o;16376:2010::-;16540:7;16702:26;16791:14;16886:26;16957:9;17019:24;17078:18;17144:21;17843:25;18170:20;16565:21;:19;:21::i;:::-;-1:-1:-1;;;;;;;;;;;16637:29:23;;:8;:29;;-1:-1:-1;;;;;;;;;;;16637:37:23;:52;;16679:9;16637:52;:41;:52;:::i;:::-;-1:-1:-1;;;;;;;;;;;16597:29:23;;:8;:29;;-1:-1:-1;;;;;;;;;;;16597:92:23;16750:29;-1:-1:-1;;;;;;;;;;;16750:9:23;:29::i;:::-;16702:78;;16808:67;16820:7;16829:12;16843:14;16859:15;16808:11;:67::i;:::-;16791:84;-1:-1:-1;16915:24:23;:12;16791:84;16915:24;:16;:24;:::i;:::-;16886:53;;16969:1;16957:13;;16952:1401;16976:14;:21;16972:1;:25;16952:1401;;;17046:14;17061:1;17046:17;;;;;;;;;;;;;;;;;;17019:44;;17099:8;:22;17108:12;-1:-1:-1;;;;;17099:22:23;-1:-1:-1;;;;;17099:22:23;;;;;;;;;;;;:30;;;17078:51;;17168:7;-1:-1:-1;;;;;17168:16:23;;17185:12;17199:10;17211:12;;;;;;;;;;;17225:6;17168:64;;;;;-1:-1:-1;;;17168:64:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17168:64:23;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17168:64:23;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;17168:64:23;;-1:-1:-1;17271:1:23;17255:17;;17247:52;;;;;-1:-1:-1;;;;;17247:52:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;17338:15;17354:1;17338:18;;;;;;;;;;;;;;;;;;;17321:35;;;17314:43;;;;-1:-1:-1;;;;;;;;17461:35:23;;;-1:-1:-1;;;;;;;;;17461:35:23;17457:369;;17578:63;17595:12;17609:10;17621:4;17627:13;17578:16;:63::i;:::-;17457:369;;;17686:13;17665:15;17681:1;17665:18;;;;;;;;;;;;;;;;;;:34;17661:165;;;17791:18;;17771:10;;:55;;17812:13;;17791:15;;17807:1;;17791:18;;;;;;;;;;;;;;:34;17771:55;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17771:55:23;17661:165;17871:29;:10;17886:13;17871:29;:14;:29;:::i;:::-;-1:-1:-1;;;;;17915:22:23;;;;;;:8;:22;;;;;;;;;:50;;;17987:94;;;;;;;;;;;;;;;;;;;17915:50;;-1:-1:-1;17915:22:23;;18002:10;;17987:94;;;;;;;;;;18193:8;:27;18202:14;18217:1;18202:17;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;18193:27:23;;;;;;;;;;;-1:-1:-1;18193:27:23;-1:-1:-1;18193:34:23;;18289:17;;18193:34;;;;;-1:-1:-1;18242:99:23;;18269:18;;18289:17;;18304:1;;18289:17;;;;;;;;;;;;;;18308;18327:13;18242:26;:99::i;:::-;16999:3;;;;;16952:1401;;;-1:-1:-1;18372:6:23;;16376:2010;-1:-1:-1;;;;;;;;;;;16376:2010:23:o;924:197:69:-;984:7;;1023;;1019:21;;;1039:1;1032:8;;;;1019:21;-1:-1:-1;1057:7:69;;;1062:2;1057;:7;1076:6;;;;;;;;:12;1068:37;;;;;-1:-1:-1;;;;;1068:37:69;;;;;;;;;;;;;;;;;;;;;;;;;;;1307:149;1367:7;;1388:6;;;1380:37;;;;;-1:-1:-1;;;;;1380:37:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;1438:2;1433;:7;;;;;;;;;1307:149;-1:-1:-1;;;;1307:149:69:o;2255:557:70:-;2324:21;;:::i;:::-;:36;;;;;;;;;2357:1;2324:36;;;;;2687:2;2661:3;2580:5;2574:12;2495:2;2488:5;2484:14;2465:1;2430:6;2404:3;2394:317;2725:7;2718:15;2715:2;;;2750:1;2747;2740:12;2715:2;-1:-1:-1;2773:6:70;;:11;;2765:43;;;;;-1:-1:-1;;;;;2765:43:70;;;;;;;;;;;;;;;;;;;;;;;;;;;9796:227:4;575:12:66;:10;:12::i;:::-;9935:1:4;9913:19;:17;:19::i;:::-;:23;;;9905:61;;;;;-1:-1:-1;;;;;9905:61:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;9970:6;;:24;;;;;;;;-1:-1:-1;;;;;9970:6:4;;;;:22;;:24;;;;;:6;;:24;;;;;;;;:6;;:24;;;5:2:-1;;;;30:1;27;20:12;5:2;9970:24:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9970:24:4;;;;9998:21;:19;:21::i;17773:656::-;18318:6;18305:19;;18298:27;;;;18334:91;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;18334:91:4;;;;;;;;;;;;;;;;;;;;;17773:656;;;;;;:::o;22602:1278:23:-;22739:6;;22727:33;;;-1:-1:-1;;;;;22727:33:23;;;;22701:23;;;;;;;;;;;;;;-1:-1:-1;;;;;22739:6:23;;22727:31;;:33;;;;;;;;;;;;;;22701:23;22739:6;22727:33;;;5:2:-1;;;;30:1;27;20:12;5:2;22727:33:23;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;22727:33:23;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;22727:33:23;;-1:-1:-1;22802:28:23;22817:12;22802:14;:28::i;:::-;22771:59;;22872:28;22887:12;22872:14;:28::i;:::-;-1:-1:-1;;;;;22940:22:23;;;;;;;:8;:22;;;;;;-1:-1:-1;22940:29:23;;;;23009:22;;;;;;;:29;;22841:59;;-1:-1:-1;22940:29:23;;;;;-1:-1:-1;23009:29:23;;;;-1:-1:-1;23112:45:23;;22841:59;;22940:29;;23112:24;:45;:::i;:::-;23096:61;-1:-1:-1;23184:45:23;:20;:45;;;;;:24;:45;:::i;:::-;23245:57;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;23245:57:23;;;;;;;;;;;;;;;;23383:100;23410:15;23427:12;23441:20;23463:19;23383:26;:100::i;:::-;23494;23521:15;23538:12;23552:20;23574:19;23494:26;:100::i;:::-;23678:89;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;23678:89:23;;;;;;;;;;;;;23783;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;23783:89:23;;;;;;;;;;;;;22602:1278;;;;;;;;;:::o;20326:612::-;20490:7;;20558:1;20541:249;20565:14;:21;20561:1;:25;20541:249;;;20681:66;20711:8;:27;20720:14;20735:1;20720:17;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;20711:27:23;;;;;;;;;;;-1:-1:-1;20711:27:23;:35;20681:25;;;;20697:8;;20681:25;;;;;;;;;;;;;;;;:66;:29;:66;:::i;:::-;20612;20635:8;:34;20644:14;20659:8;20644:24;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;20635:34:23;;;;;;;;;;;-1:-1:-1;20635:34:23;:42;20612:18;;;;20628:1;;20612:18;;;;;:66;:135;20608:170;;;20777:1;20766:12;;20608:170;20588:3;;20541:249;;;20807:7;-1:-1:-1;;;;;20807:24:23;;20832:12;20846:8;:34;20855:14;20870:8;20855:24;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;20846:34:23;;;;;;;;;;;-1:-1:-1;20846:34:23;:42;20890:12;;20904:25;;20890:12;;;;;20904:25;;20920:8;;20904:25;;;;;;;;;;;;;;20807:123;;;;;-1:-1:-1;;;20807:123:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;20807:123:23;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;20807:123:23;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;20807:123:23;;20326:612;-1:-1:-1;;;;;;;20326:612:23:o;452:24101::-;;;;;;;;;-1:-1:-1;452:24101:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;-1:-1;452:24101:23;;;-1:-1:-1;;452:24101:23:o" - }, - "methodIdentifiers": { - "acceptAnchorOwnership()": "cdc91c69", - "acceptOwnership()": "79ba5097", - "acceptTokenOwnership()": "38a5e016", - "addLiquidity(address[],uint256[],uint256)": "7d8916bd", - "addReserve(address,uint32)": "6a49d2c4", - "anchor()": "d3fb73b4", - "connectorTokenCount()": "71f52bf3", - "connectorTokens(uint256)": "19b64015", - "connectors(address)": "0e53aae9", - "conversionFee()": "579cd3ca", - "conversionWhitelist()": "c45d3d92", - "conversionsEnabled()": "bf754558", - "convert(address,address,uint256,address,address)": "e8dc12ff", - "converterType()": "3e8ff43f", - "decimalLength(uint256)": "6aa5332c", - "fund(uint256)": "ca1d209d", - "geometricMean(uint256[])": "a60e7724", - "getConnectorBalance(address)": "d8959512", - "getReturn(address,address,uint256)": "1e1401f8", - "hasETHReserve()": "12c2aca4", - "isActive()": "22f3e2d4", - "isV28OrHigher()": "d260529c", - "liquidate(uint256)": "415f1240", - "maxConversionFee()": "94c275ad", - "newOwner()": "d4ee1d90", - "onlyOwnerCanUpdateRegistry()": "2fe8a6ad", - "owner()": "8da5cb5b", - "prevRegistry()": "61cd756e", - "registry()": "7b103999", - "removeLiquidity(uint256,address[],uint256[])": "b127c0a5", - "reserveBalance(address)": "dc8de379", - "reserveRatio()": "0c7d5cd8", - "reserveTokenCount()": "9b99a8e2", - "reserveTokens(uint256)": "d031370b", - "reserveWeight(address)": "1cfab290", - "reserves(address)": "d66bd524", - "restoreRegistry()": "b4a176d3", - "restrictRegistryUpdate(bool)": "024c7ec7", - "roundDiv(uint256,uint256)": "bbb7e5d8", - "setConversionFee(uint32)": "ecbca55d", - "setConversionWhitelist(address)": "4af80f0e", - "targetAmountAndFee(address,address,uint256)": "af94b8d8", - "token()": "fc0c546a", - "transferAnchorOwnership(address)": "67b6d57c", - "transferOwnership(address)": "f2fde38b", - "transferTokenOwnership(address)": "21e6b53d", - "updateRegistry()": "49d10b64", - "upgrade()": "d55ec697", - "version()": "54fd4d50", - "withdrawETH(address)": "690d8320", - "withdrawFromAnchor(address,address,uint256)": "395900d4", - "withdrawTokens(address,address,uint256)": "5e35359e" - } - }, - "userdoc": { - "methods": {} - } - } - }, - "solidity/contracts/converter/types/liquidity-pool-v1/LiquidityPoolV1ConverterFactory.sol": { - "LiquidityPoolV1ConverterFactory": { - "abi": [ - { - "constant": false, - "inputs": [ - { - "name": "_anchor", - "type": "address" - }, - { - "name": "_registry", - "type": "address" - }, - { - "name": "_maxConversionFee", - "type": "uint32" - } - ], - "name": "createConverter", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "converterType", - "outputs": [ - { - "name": "", - "type": "uint16" - } - ], - "payable": false, - "stateMutability": "pure", - "type": "function" - } - ], - "devdoc": { - "methods": { - "converterType()": { - "details": "returns the converter type the factory is associated with\r ", - "return": "converter type\r" - }, - "createConverter(address,address,uint32)": { - "details": "creates a new converter with the given arguments and transfers\r the ownership to the caller\r ", - "params": { - "_anchor": "anchor governed by the converter\r", - "_maxConversionFee": "maximum conversion fee, represented in ppm\r ", - "_registry": "address of a contract registry contract\r" - }, - "return": "a new converter\r" - } - } - }, - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "608060405234801561001057600080fd5b50614d7b806100206000396000f30060806040526004361061004b5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631141395881146100505780633e8ff43f146100b6575b600080fd5b34801561005c57600080fd5b5061008d73ffffffffffffffffffffffffffffffffffffffff6004358116906024351663ffffffff604435166100e2565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b3480156100c257600080fd5b506100cb6101d5565b6040805161ffff9092168252519081900360200190f35b6000808484846100f06101da565b73ffffffffffffffffffffffffffffffffffffffff938416815291909216602082015263ffffffff9091166040808301919091525190819003606001906000f080158015610142573d6000803e3d6000fd5b50604080517ff2fde38b000000000000000000000000000000000000000000000000000000008152336004820152905191925073ffffffffffffffffffffffffffffffffffffffff83169163f2fde38b9160248082019260009290919082900301818387803b1580156101b457600080fd5b505af11580156101c8573d6000803e3d6000fd5b5092979650505050505050565b600190565b604051614b65806101eb833901905600608060405260016004557fc0829421c1d260bd3cb3e0f06cfe2d52db2ce3150000000000000000000000006009553480156200003a57600080fd5b5060405160608062004b6583398101604090815281516020830151919092015160008054600160a060020a031916331790558282828282828180620000888164010000000062000135810204565b5060028054600160a060020a03909216600160a060020a031992831681179091556003805490921617905582620000c88164010000000062000135810204565b81620000dd81640100000000620001b0810204565b505060058054600160a060020a03909416600160a060020a031990941693909317909255506009805463ffffffff9092166401000000000267ffffffff00000000199092169190911790555062000229945050505050565b600160a060020a0381161515620001ad57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b50565b620f424063ffffffff82161115620001ad57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f4552525f494e56414c49445f434f4e56455253494f4e5f464545000000000000604482015290519081900360640190fd5b61492c80620002396000396000f3006080604052600436106102585763ffffffff60e060020a600035041663024c7ec781146102e45780630c7d5cd8146102fe5780630e53aae91461032c57806312c2aca41461038157806319b64015146103aa5780631cfab290146103de5780631e1401f8146103ff57806321e6b53d1461044257806322f3e2d4146104635780632fe8a6ad1461047857806338a5e0161461048d578063395900d4146104a25780633e8ff43f146104cc578063415f1240146104f857806349d10b64146105105780634af80f0e1461052557806354fd4d5014610546578063579cd3ca1461055b5780635e35359e1461057057806361cd756e1461059a57806367b6d57c146105af578063690d8320146105d05780636a49d2c4146105f15780636aa5332c1461061b57806371f52bf31461064557806379ba50971461065a5780637b1039991461066f5780637d8916bd146106845780638da5cb5b1461070757806394c275ad1461071c5780639b99a8e214610731578063a60e772414610746578063af94b8d81461079b578063b127c0a5146107c5578063b4a176d314610858578063bbb7e5d81461086d578063bf75455814610888578063c45d3d921461089d578063ca1d209d146108b2578063cdc91c69146108bd578063d031370b146108d2578063d260529c146108ea578063d3fb73b4146108ff578063d4ee1d9014610914578063d55ec69714610929578063d66bd5241461093e578063d89595121461095f578063dc8de37914610980578063e8dc12ff146109a1578063ecbca55d146109cb578063f2fde38b146109e9578063fc0c546a14610a0a575b6000805160206148a183398151915260005260086020527f353c2eb9e53a4a4a6d45d72082ff2e9dc829d1125618772a83eb0e7f86632c43546601000000000000900460ff1615156102e2576040805160e560020a62461bcd0281526020600482015260136024820152600080516020614841833981519152604482015290519081900360640190fd5b005b3480156102f057600080fd5b506102e26004351515610a1f565b34801561030a57600080fd5b50610313610a67565b6040805163ffffffff9092168252519081900360200190f35b34801561033857600080fd5b5061034d600160a060020a0360043516610a73565b6040805195865263ffffffff9094166020860152911515848401521515606084015215156080830152519081900360a00190f35b34801561038d57600080fd5b50610396610b0e565b604080519115158252519081900360200190f35b3480156103b657600080fd5b506103c2600435610b57565b60408051600160a060020a039092168252519081900360200190f35b3480156103ea57600080fd5b50610313600160a060020a0360043516610b83565b34801561040b57600080fd5b50610429600160a060020a0360043581169060243516604435610bb5565b6040805192835260208301919091528051918290030190f35b34801561044e57600080fd5b506102e2600160a060020a0360043516610bcf565b34801561046f57600080fd5b50610396610be3565b34801561048457600080fd5b50610396610c7d565b34801561049957600080fd5b506102e2610c9e565b3480156104ae57600080fd5b506102e2600160a060020a0360043581169060243516604435610cb0565b3480156104d857600080fd5b506104e1610d4b565b6040805161ffff9092168252519081900360200190f35b34801561050457600080fd5b506102e2600435610d50565b34801561051c57600080fd5b506102e2610f94565b34801561053157600080fd5b506102e2600160a060020a0360043516611201565b34801561055257600080fd5b506104e1611243565b34801561056757600080fd5b50610313611248565b34801561057c57600080fd5b506102e2600160a060020a0360043581169060243516604435611260565b3480156105a657600080fd5b506103c2611369565b3480156105bb57600080fd5b506102e2600160a060020a0360043516611378565b3480156105dc57600080fd5b506102e2600160a060020a036004351661141b565b3480156105fd57600080fd5b506102e2600160a060020a036004351663ffffffff60243516611520565b34801561062757600080fd5b5061063360043561175f565b60408051918252519081900360200190f35b34801561065157600080fd5b506104e1611784565b34801561066657600080fd5b506102e2611793565b34801561067b57600080fd5b506103c2611854565b604080516020600480358082013583810280860185019096528085526102e295369593946024949385019291829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a99890198929750908201955093508392508501908490808284375094975050933594506118639350505050565b34801561071357600080fd5b506103c2611b62565b34801561072857600080fd5b50610313611b71565b34801561073d57600080fd5b506104e1611b85565b34801561075257600080fd5b506040805160206004803580820135838102808601850190965280855261063395369593946024949385019291829185019084908082843750949750611b8b9650505050505050565b3480156107a757600080fd5b50610429600160a060020a0360043581169060243516604435611be1565b3480156107d157600080fd5b506040805160206004602480358281013584810280870186019097528086526102e296843596369660449591949091019291829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750949750611d869650505050505050565b34801561086457600080fd5b506102e2611eba565b34801561087957600080fd5b50610633600435602435611ef3565b34801561089457600080fd5b50610396611f0d565b3480156108a957600080fd5b506103c2611f12565b6102e2600435611f21565b3480156108c957600080fd5b506102e261242e565b3480156108de57600080fd5b506103c2600435612487565b3480156108f657600080fd5b50610396610d4b565b34801561090b57600080fd5b506103c26124af565b34801561092057600080fd5b506103c26124be565b34801561093557600080fd5b506102e26124cd565b34801561094a57600080fd5b5061034d600160a060020a03600435166125c2565b34801561096b57600080fd5b50610633600160a060020a0360043516612608565b34801561098c57600080fd5b50610633600160a060020a0360043516612619565b610633600160a060020a036004358116906024358116906044359060643581169060843516612642565b3480156109d757600080fd5b506102e263ffffffff60043516612895565b3480156109f557600080fd5b506102e2600160a060020a036004351661298a565b348015610a1657600080fd5b506103c2612a27565b610a27612a36565b60038054911515740100000000000000000000000000000000000000000274ff000000000000000000000000000000000000000019909216919091179055565b60095463ffffffff1681565b6000806000806000610a836147f3565b50505050600160a060020a03929092166000908152600860209081526040808320815160a081018352815480825260019092015463ffffffff811694820185905260ff64010000000082048116151594830194909452650100000000008104841615156060830152660100000000000090049092161515608090920182905295919450919250829190565b6000805160206148a183398151915260005260086020527f353c2eb9e53a4a4a6d45d72082ff2e9dc829d1125618772a83eb0e7f86632c43546601000000000000900460ff1690565b6000600782815481101515610b6857fe5b600091825260209091200154600160a060020a031692915050565b600081610b8f81612a86565b5050600160a060020a031660009081526008602052604090206001015463ffffffff1690565b600080610bc3858585611be1565b91509150935093915050565b610bd7612a36565b610be081611378565b50565b600030600160a060020a0316600560009054906101000a9004600160a060020a0316600160a060020a0316638da5cb5b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610c4257600080fd5b505af1158015610c56573d6000803e3d6000fd5b505050506040513d6020811015610c6c57600080fd5b5051600160a060020a031614905090565b60035474010000000000000000000000000000000000000000900460ff1681565b610ca6612a36565b610cae61242e565b565b610cb8612a36565b600554604080517f5e35359e000000000000000000000000000000000000000000000000000000008152600160a060020a03868116600483015285811660248301526044820185905291519190921691635e35359e91606480830192600092919082900301818387803b158015610d2e57600080fd5b505af1158015610d42573d6000803e3d6000fd5b50505050505050565b600190565b600060606000610d5e612af3565b600260045560008411610dbb576040805160e560020a62461bcd02815260206004820152600f60248201527f4552525f5a45524f5f414d4f554e540000000000000000000000000000000000604482015290519081900360640190fd5b600560009054906101000a9004600160a060020a0316600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610e0e57600080fd5b505af1158015610e22573d6000803e3d6000fd5b505050506040513d6020811015610e3857600080fd5b5051600554604080517fa24835d1000000000000000000000000000000000000000000000000000000008152336004820152602481018890529051929550600160a060020a039091169163a24835d19160448082019260009290919082900301818387803b158015610ea957600080fd5b505af1158015610ebd573d6000803e3d6000fd5b50505050600780549050604051908082528060200260200182016040528015610ef0578160200160208202803883390190505b509150600090505b8151811015610f235760018282815181101515610f1157fe5b60209081029091010152600101610ef8565b610f896007805480602002602001604051908101604052809291908181526020018280548015610f7c57602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311610f5e575b5050505050838587612b4d565b505060016004555050565b60008054600160a060020a0316331480610fc9575060035474010000000000000000000000000000000000000000900460ff16155b151561100d576040805160e560020a62461bcd02815260206004820152601160248201526000805160206148e1833981519152604482015290519081900360640190fd5b6110367f436f6e7472616374526567697374727900000000000000000000000000000000612e12565b600254909150600160a060020a0380831691161480159061105f5750600160a060020a03811615155b15156110b5576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e56414c49445f5245474953545259000000000000000000000000604482015290519081900360640190fd5b604080517fbb34534c0000000000000000000000000000000000000000000000000000000081527f436f6e747261637452656769737472790000000000000000000000000000000060048201529051600091600160a060020a0384169163bb34534c9160248082019260209290919082900301818787803b15801561113957600080fd5b505af115801561114d573d6000803e3d6000fd5b505050506040513d602081101561116357600080fd5b5051600160a060020a031614156111c4576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e56414c49445f5245474953545259000000000000000000000000604482015290519081900360640190fd5b6002805460038054600160a060020a0380841673ffffffffffffffffffffffffffffffffffffffff19928316179092559091169216919091179055565b611209612a36565b8061121381612eaa565b506006805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b602081565b60095468010000000000000000900463ffffffff1681565b600061126a612af3565b6002600455611277612a36565b61128e600080516020614881833981519152612e12565b600160a060020a0385166000908152600860205260409020600101549091506601000000000000900460ff1615806112cb57506112c9610be3565b155b806112e35750600054600160a060020a038281169116145b1515611327576040805160e560020a62461bcd02815260206004820152601160248201526000805160206148e1833981519152604482015290519081900360640190fd5b611332848484612f0b565b600160a060020a0384166000908152600860205260409020600101546601000000000000900460ff1615610f8957610f8984612f3c565b600354600160a060020a031681565b611380612a36565b60008051602061488183398151915261139881613031565b600554604080517ff2fde38b000000000000000000000000000000000000000000000000000000008152600160a060020a0385811660048301529151919092169163f2fde38b91602480830192600092919082900301818387803b1580156113ff57600080fd5b505af1158015611413573d6000803e3d6000fd5b505050505050565b6000611425612af3565b6002600455611432612a36565b6000805160206148a183398151915261144a81612a86565b611461600080516020614881833981519152612e12565b915061146b610be3565b15806114845750600054600160a060020a038381169116145b15156114c8576040805160e560020a62461bcd02815260206004820152601160248201526000805160206148e1833981519152604482015290519081900360640190fd5b604051600160a060020a03841690303180156108fc02916000818181858888f193505050501580156114fe573d6000803e3d6000fd5b506115166000805160206148a1833981519152612f3c565b5050600160045550565b600061152a612a36565b611532613087565b8261153c816130e4565b8361154681612eaa565b8361155081613144565b600554600160a060020a038781169116148015906115945750600160a060020a0386166000908152600860205260409020600101546601000000000000900460ff16155b15156115d8576040805160e560020a62461bcd0281526020600482015260136024820152600080516020614841833981519152604482015290519081900360640190fd5b60095463ffffffff908116620f42400381169086161115611643576040805160e560020a62461bcd02815260206004820152601a60248201527f4552525f494e56414c49445f524553455256455f574549474854000000000000604482015290519081900360640190fd5b61ffff61164e611b85565b61ffff16106116a7576040805160e560020a62461bcd02815260206004820152601960248201527f4552525f494e56414c49445f524553455256455f434f554e5400000000000000604482015290519081900360640190fd5b505050600160a060020a0390921660008181526008602052604081208181556001908101805466ff0000000000001963ffffffff80881663ffffffff1993841617919091166601000000000000179092556007805493840181559093527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688909101805473ffffffffffffffffffffffffffffffffffffffff191690931790925560098054808416909401909216921691909117905550565b600080825b600081111561177d5760019190910190600a9004611764565b5092915050565b600061178e611b85565b905090565b600154600160a060020a031633146117e3576040805160e560020a62461bcd02815260206004820152601160248201526000805160206148e1833981519152604482015290519081900360640190fd5b60015460008054604051600160a060020a0393841693909116917f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91a3600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b600254600160a060020a031681565b6000806000611870612af3565b600260045561187d6131b9565b611888868686613217565b600092505b85518310156119465785516000805160206148a1833981519152908790859081106118b457fe5b90602001906020020151600160a060020a0316141561193b573485848151811015156118dc57fe5b602090810290910101511461193b576040805160e560020a62461bcd02815260206004820152601760248201527f4552525f4554485f414d4f554e545f4d49534d41544348000000000000000000604482015290519081900360640190fd5b60019092019161188d565b60003411156119eb576000805160206148a183398151915260005260086020527f353c2eb9e53a4a4a6d45d72082ff2e9dc829d1125618772a83eb0e7f86632c43546601000000000000900460ff1615156119eb576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f4e4f5f4554485f524553455256450000000000000000000000000000604482015290519081900360640190fd5b600560009054906101000a9004600160a060020a0316600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015611a3e57600080fd5b505af1158015611a52573d6000803e3d6000fd5b505050506040513d6020811015611a6857600080fd5b50519150611a778686846134d3565b905083811015611ad1576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f52455455524e5f544f4f5f4c4f570000000000000000000000000000604482015290519081900360640190fd5b600554604080517f867904b4000000000000000000000000000000000000000000000000000000008152336004820152602481018490529051600160a060020a039092169163867904b49160448082019260009290919082900301818387803b158015611b3d57600080fd5b505af1158015611b51573d6000803e3d6000fd5b505060016004555050505050505050565b600054600160a060020a031681565b600954640100000000900463ffffffff1681565b60075490565b80516000908190815b81811015611bc857611bbc8582815181101515611bad57fe5b9060200190602002015161175f565b90920191600101611b94565b6001611bd48484611ef3565b03600a0a95945050505050565b600080600080611bef6131b9565b86611bf981612a86565b86611c0381612a86565b600160a060020a038981169089161415611c67576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f53414d455f534f555243455f54415247455400000000000000000000604482015290519081900360640190fd5b611c7e6000805160206148c1833981519152612e12565b600160a060020a03166394491fab611c958b612619565b600160a060020a038c1660009081526008602052604090206001015463ffffffff16611cc08c612619565b600160a060020a038d16600090815260086020908152604080832060010154815163ffffffff89811660e060020a028252600482019890985295871660248701526044860194909452949092166064840152608483018d9052925160a48084019492939192918390030190829087803b158015611d3c57600080fd5b505af1158015611d50573d6000803e3d6000fd5b505050506040513d6020811015611d6657600080fd5b50519350611d7384613502565b9384900399939850929650505050505050565b6000611d90612af3565b6002600455611d9d6131b9565b611da8838386613217565b600560009054906101000a9004600160a060020a0316600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015611dfb57600080fd5b505af1158015611e0f573d6000803e3d6000fd5b505050506040513d6020811015611e2557600080fd5b5051600554604080517fa24835d1000000000000000000000000000000000000000000000000000000008152336004820152602481018890529051929350600160a060020a039091169163a24835d19160448082019260009290919082900301818387803b158015611e9657600080fd5b505af1158015611eaa573d6000803e3d6000fd5b50505050610f8983838387612b4d565b611ec2612a36565b6003546002805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055565b600081600281048401811515611f0557fe5b049392505050565b600181565b600654600160a060020a031681565b600080600080600080600080600080611f38612af3565b6002600455611f4561353e565b6000805160206148a1833981519152600052600860205260008051602061486183398151915254611f7c903463ffffffff61358016565b6000805160206148a183398151915260009081526008602090815260008051602061486183398151915292909255600554604080517f18160ddd0000000000000000000000000000000000000000000000000000000081529051600160a060020a03909216936318160ddd9360048084019492938390030190829087803b15801561200657600080fd5b505af115801561201a573d6000803e3d6000fd5b505050506040513d602081101561203057600080fd5b5051995061204b6000805160206148c1833981519152612e12565b6007549099509750600096505b8787101561239857600780548890811061206e57fe5b9060005260206000200160009054906101000a9004600160a060020a031695506008600087600160a060020a0316600160a060020a0316815260200190815260200160002060000154945088600160a060020a031663ebbb21588b87600960009054906101000a900463ffffffff168f6040518563ffffffff1660e060020a028152600401808581526020018481526020018363ffffffff1663ffffffff168152602001828152602001945050505050602060405180830381600087803b15801561213857600080fd5b505af115801561214c573d6000803e3d6000fd5b505050506040513d602081101561216257600080fd5b50519350600160a060020a0386166000805160206148a183398151915214156122c457833411156121c25760405133903486900380156108fc02916000818181858888f193505050501580156121bc573d6000803e3d6000fd5b506122bf565b833410156122bf573415612220576040805160e560020a62461bcd02815260206004820152601560248201527f4552525f494e56414c49445f4554485f56414c55450000000000000000000000604482015290519081900360640190fd5b600954612248906c010000000000000000000000009004600160a060020a03163330876135e0565b6009600c9054906101000a9004600160a060020a0316600160a060020a0316632e1a7d4d856040518263ffffffff1660e060020a02815260040180828152602001915050600060405180830381600087803b1580156122a657600080fd5b505af11580156122ba573d6000803e3d6000fd5b505050505b6122d0565b6122d0863330876135e0565b6122e0858563ffffffff6136c816565b600160a060020a0387166000908152600860205260409020819055925061230d8a8c63ffffffff6136c816565b60408051868152602081018690528082018390529051919350600160a060020a0388169133917f4a1a2a6176e9646d9e3157f7c2ab3c499f18337c0b0828cfb28e0a61de4a11f7919081900360600190a350600160a060020a03851660009081526008602052604090206001015463ffffffff1661238d82878584613725565b600190960195612058565b600554604080517f867904b4000000000000000000000000000000000000000000000000000000008152336004820152602481018e90529051600160a060020a039092169163867904b49160448082019260009290919082900301818387803b15801561240457600080fd5b505af1158015612418573d6000803e3d6000fd5b5050600160045550505050505050505050505050565b612436612a36565b61243e613794565b600554600190600160a060020a0316612455610d4b565b61ffff167f6b08c2e2c9969e55a647a764db9b554d64dc42f1a704da11a6d5b129ad163f2c60405160405180910390a4565b600780548290811061249557fe5b600091825260209091200154600160a060020a0316905081565b600554600160a060020a031681565b600154600160a060020a031681565b60006124d7612a36565b6124ee600080516020614881833981519152612e12565b600554909150600090600160a060020a0316612508610d4b565b61ffff167f6b08c2e2c9969e55a647a764db9b554d64dc42f1a704da11a6d5b129ad163f2c60405160405180910390a46125418161298a565b604080517f90f58c96000000000000000000000000000000000000000000000000000000008152602060048201529051600160a060020a038316916390f58c9691602480830192600092919082900301818387803b1580156125a257600080fd5b505af11580156125b6573d6000803e3d6000fd5b50505050610be0611793565b6008602052600090815260409020805460019091015463ffffffff81169060ff640100000000820481169165010000000000810482169166010000000000009091041685565b600061261382612619565b92915050565b60008161262581612a86565b5050600160a060020a031660009081526008602052604090205490565b600061264c612af3565b60026004557f536f7672796e537761704e6574776f726b00000000000000000000000000000061267b81613031565b600160a060020a0387811690871614156126df576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f53414d455f534f555243455f54415247455400000000000000000000604482015290519081900360640190fd5b600654600160a060020a031615806128225750600654604080517f3af32abf000000000000000000000000000000000000000000000000000000008152600160a060020a03878116600483015291519190921691633af32abf9160248083019260209291908290030181600087803b15801561275a57600080fd5b505af115801561276e573d6000803e3d6000fd5b505050506040513d602081101561278457600080fd5b505180156128225750600654604080517f3af32abf000000000000000000000000000000000000000000000000000000008152600160a060020a03868116600483015291519190921691633af32abf9160248083019260209291908290030181600087803b1580156127f557600080fd5b505af1158015612809573d6000803e3d6000fd5b505050506040513d602081101561281f57600080fd5b50515b1515612878576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f4e4f545f57484954454c495354454400000000000000000000000000604482015290519081900360640190fd5b61288587878787876137ff565b6001600455979650505050505050565b61289d612a36565b60095463ffffffff64010000000090910481169082161115612909576040805160e560020a62461bcd02815260206004820152601a60248201527f4552525f494e56414c49445f434f4e56455253494f4e5f464545000000000000604482015290519081900360640190fd5b6009546040805163ffffffff6801000000000000000090930483168152918316602083015280517f81cd2ffb37dd237c0e4e2a3de5265fcf9deb43d3e7801e80db9f1ccfba7ee6009281900390910190a16009805463ffffffff90921668010000000000000000026bffffffff000000000000000019909216919091179055565b612992612a36565b600054600160a060020a03828116911614156129f8576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f53414d455f4f574e4552000000000000000000000000000000000000604482015290519081900360640190fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600554600160a060020a031690565b600054600160a060020a03163314610cae576040805160e560020a62461bcd02815260206004820152601160248201526000805160206148e1833981519152604482015290519081900360640190fd5b600160a060020a0381166000908152600860205260409020600101546601000000000000900460ff161515610be0576040805160e560020a62461bcd0281526020600482015260136024820152600080516020614841833981519152604482015290519081900360640190fd5b600454600114610cae576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f5245454e5452414e4359000000000000000000000000000000000000604482015290519081900360640190fd5b600080600080600080600080612b6161353e565b612b786000805160206148c1833981519152612e12565b9750612b8a8a8a63ffffffff61358016565b9650600095505b8b51861015612e04578b86815181101515612ba857fe5b9060200190602002015194506008600086600160a060020a0316600160a060020a0316815260200190815260200160002060000154935087600160a060020a0316638074590a8b86600960009054906101000a900463ffffffff168d6040518563ffffffff1660e060020a028152600401808581526020018481526020018363ffffffff1663ffffffff168152602001828152602001945050505050602060405180830381600087803b158015612c5e57600080fd5b505af1158015612c72573d6000803e3d6000fd5b505050506040513d6020811015612c8857600080fd5b50518b519093508b9087908110612c9b57fe5b60209081029091010151831015612cfc576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f5a45524f5f5441524745545f414d4f554e5400000000000000000000604482015290519081900360640190fd5b612d0c848463ffffffff61358016565b600160a060020a03861660008181526008602052604090208290559092506000805160206148a18339815191521415612d7257604051339084156108fc029085906000818181858888f19350505050158015612d6c573d6000803e3d6000fd5b50612d7d565b612d7d853385613ad2565b60408051848152602081018490528082018990529051600160a060020a0387169133917fbc7d19d505c7ec4db83f3b51f19fb98c4c8a99922e7839d1ee608dfbee29501b9181900360600190a350600160a060020a03841660009081526008602052604090206001015463ffffffff16612df987868484613725565b600190950194612b91565b505050505050505050505050565b600254604080517fbb34534c000000000000000000000000000000000000000000000000000000008152600481018490529051600092600160a060020a03169163bb34534c91602480830192602092919082900301818787803b158015612e7857600080fd5b505af1158015612e8c573d6000803e3d6000fd5b505050506040513d6020811015612ea257600080fd5b505192915050565b600160a060020a038116301415610be0576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f414444524553535f49535f53454c4600000000000000000000000000604482015290519081900360640190fd5b612f13612a36565b82612f1d816130e4565b82612f27816130e4565b83612f3181612eaa565b611413868686613ad2565b80612f4681612a86565b600160a060020a0382166000805160206148a18339815191521415612f8657600160a060020a03821660009081526008602052604090203031905561302d565b604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a038416916370a082319160248083019260209291908290030181600087803b158015612fe757600080fd5b505af1158015612ffb573d6000803e3d6000fd5b505050506040513d602081101561301157600080fd5b5051600160a060020a0383166000908152600860205260409020555b5050565b61303a81612e12565b600160a060020a03163314610be0576040805160e560020a62461bcd02815260206004820152601160248201526000805160206148e1833981519152604482015290519081900360640190fd5b61308f610be3565b15610cae576040805160e560020a62461bcd02815260206004820152600a60248201527f4552525f41435449564500000000000000000000000000000000000000000000604482015290519081900360640190fd5b600160a060020a0381161515610be0576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b60008163ffffffff161180156131635750620f424063ffffffff821611155b1515610be0576040805160e560020a62461bcd02815260206004820152601a60248201527f4552525f494e56414c49445f524553455256455f574549474854000000000000604482015290519081900360640190fd5b6131c1610be3565b1515610cae576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f494e4143544956450000000000000000000000000000000000000000604482015290519081900360640190fd5b600754835160009182918114613265576040805160e560020a62461bcd0281526020600482015260136024820152600080516020614841833981519152604482015290519081900360640190fd5b845181146132bd576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f494e56414c49445f414d4f554e540000000000000000000000000000604482015290519081900360640190fd5b600092505b8083101561347b576008600087858151811015156132dc57fe5b6020908102909101810151600160a060020a031682528101919091526040016000206001015460ff6601000000000000909104161515613354576040805160e560020a62461bcd0281526020600482015260136024820152600080516020614841833981519152604482015290519081900360640190fd5b600091505b808210156133bc57858281518110151561336f57fe5b90602001906020020151600160a060020a031660078481548110151561339157fe5b600091825260209091200154600160a060020a031614156133b1576133bc565b600190910190613359565b808210613401576040805160e560020a62461bcd0281526020600482015260136024820152600080516020614841833981519152604482015290519081900360640190fd5b6000858481518110151561341157fe5b6020908102909101015111613470576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f494e56414c49445f414d4f554e540000000000000000000000000000604482015290519081900360640190fd5b6001909201916132c2565b60008411611413576040805160e560020a62461bcd02815260206004820152600f60248201527f4552525f5a45524f5f414d4f554e540000000000000000000000000000000000604482015290519081900360640190fd5b60008115156134ed576134e68484613b89565b90506134fb565b6134f8848484613d90565b90505b9392505050565b60095460009061261390620f42409061353290859068010000000000000000900463ffffffff9081169061415016565b9063ffffffff6141c916565b60075460005b8181101561302d5761357860078281548110151561355e57fe5b600091825260209091200154600160a060020a0316612f3c565b600101613544565b6000818310156135da576040805160e560020a62461bcd02815260206004820152600d60248201527f4552525f554e444552464c4f5700000000000000000000000000000000000000604482015290519081900360640190fd5b50900390565b604080517f7472616e7366657246726f6d28616464726573732c616464726573732c75696e81527f74323536290000000000000000000000000000000000000000000000000000006020808301919091528251918290036025018220600160a060020a038088166024850152861660448401526064808401869052845180850390910181526084909301909352810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19909316929092179091526136c2908590614237565b50505050565b6000828201838110156134fb576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b600554600160a060020a0380851691167f77f29993cf2c084e726f7e802da0719d6a0ade3e204badc7a3ffd57ecb768c2461376385620f4240614150565b6137768863ffffffff8088169061415016565b6040805192835260208301919091528051918290030190a350505050565b600161379e611b85565b61ffff16116137f7576040805160e560020a62461bcd02815260206004820152601960248201527f4552525f494e56414c49445f524553455256455f434f554e5400000000000000604482015290519081900360640190fd5b610cae6142c5565b600080600080613810898989611be1565b909350915082151561386c576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f5a45524f5f5441524745545f414d4f554e5400000000000000000000604482015290519081900360640190fd5b61387588612619565b905080831061388057fe5b600160a060020a0389166000805160206148a183398151915214156138fb573487146138f6576040805160e560020a62461bcd02815260206004820152601760248201527f4552525f4554485f414d4f554e545f4d49534d41544348000000000000000000604482015290519081900360640190fd5b613a03565b341580156139ad5750866139aa6139118b612619565b604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a038e16916370a082319160248083019260209291908290030181600087803b15801561397257600080fd5b505af1158015613986573d6000803e3d6000fd5b505050506040513d602081101561399c57600080fd5b50519063ffffffff61358016565b10155b1515613a03576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f494e56414c49445f414d4f554e540000000000000000000000000000604482015290519081900360640190fd5b613a0c89612f3c565b600160a060020a038816600090815260086020526040902054613a35908463ffffffff61358016565b600160a060020a0389166000818152600860205260409020919091556000805160206148a18339815191521415613aa257604051600160a060020a0386169084156108fc029085906000818181858888f19350505050158015613a9c573d6000803e3d6000fd5b50613aad565b613aad888685613ad2565b613abb8989888a87876143a3565b613ac58989614428565b5090979650505050505050565b604080517f7472616e7366657228616464726573732c75696e74323536290000000000000081528151908190036019018120600160a060020a038516602483015260448083018590528351808403909101815260649092019092526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1990931692909217909152613b84908490614237565b505050565b600080600080613b9885611b8b565b9250600091505b8551821015613d865785516000805160206148a183398151915290879084908110613bc657fe5b60209081029091010151600160a060020a031614613c1857613c188683815181101515613bef57fe5b9060200190602002015133308886815181101515613c0957fe5b906020019060200201516135e0565b8482815181101515613c2657fe5b90602001906020020151600860008885815181101515613c4257fe5b6020908102909101810151600160a060020a03168252810191909152604001600020558551869083908110613c7357fe5b90602001906020020151600160a060020a031633600160a060020a03167f4a1a2a6176e9646d9e3157f7c2ab3c499f18337c0b0828cfb28e0a61de4a11f78785815181101515613cbf57fe5b906020019060200201518886815181101515613cd757fe5b60209081029091018101516040805193845291830152818101889052519081900360600190a3600860008784815181101515613d0f57fe5b6020908102909101810151600160a060020a0316825281019190915260400160002060010154865163ffffffff9091169150613d7b908490889085908110613d5357fe5b906020019060200201518785815181101515613d6b57fe5b9060200190602002015184613725565b600190910190613b9f565b5090949350505050565b600080600080600080600080600080613da761353e565b6000805160206148a1833981519152600052600860205260008051602061486183398151915254613dde903463ffffffff61358016565b6000805160206148a1833981519152600052600860205260008051602061486183398151915255613e1c6000805160206148c1833981519152612e12565b9850613e2a898c8f8f614636565b9750613e3c8b8963ffffffff6136c816565b9650600095505b8c5186101561413f578c86815181101515613e5a57fe5b9060200190602002015194506008600086600160a060020a0316600160a060020a0316815260200190815260200160002060000154935088600160a060020a031663ebbb21588c86600960009054906101000a900463ffffffff168c6040518563ffffffff1660e060020a028152600401808581526020018481526020018363ffffffff1663ffffffff168152602001828152602001945050505050602060405180830381600087803b158015613f1057600080fd5b505af1158015613f24573d6000803e3d6000fd5b505050506040513d6020811015613f3a57600080fd5b5051925060008311613f96576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f5a45524f5f5441524745545f414d4f554e5400000000000000000000604482015290519081900360640190fd5b8b86815181101515613fa457fe5b60209081029091010151831115613fb757fe5b600160a060020a0385166000805160206148a183398151915214613fe657613fe1853330866135e0565b614059565b828c87815181101515613ff557fe5b9060200190602002015111156140595733600160a060020a03166108fc848e8981518110151561402157fe5b90602001906020020151039081150290604051600060405180830381858888f19350505050158015614057573d6000803e3d6000fd5b505b614069848463ffffffff6136c816565b600160a060020a03861660008181526008602090815260409182902084905581518781529081018490528082018b90529051929450909133917f4a1a2a6176e9646d9e3157f7c2ab3c499f18337c0b0828cfb28e0a61de4a11f7919081900360600190a3600860008e888151811015156140df57fe5b6020908102909101810151600160a060020a03168252810191909152604001600020600101548d5163ffffffff90911691506141349088908f908990811061412357fe5b906020019060200201518484613725565b600190950194613e43565b50959b9a5050505050505050505050565b600080831515614163576000915061177d565b5082820282848281151561417357fe5b04146134fb576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b600080808311614223576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f4449564944455f42595f5a45524f0000000000000000000000000000604482015290519081900360640190fd5b828481151561422e57fe5b04949350505050565b61423f614821565b602060405190810160405280600181525090506020818351602085016000875af180151561426c57600080fd5b5080511515613b84576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f5452414e534645525f4641494c454400000000000000000000000000604482015290519081900360640190fd5b6142cd612a36565b60006142d7611b85565b61ffff1611614330576040805160e560020a62461bcd02815260206004820152601960248201527f4552525f494e56414c49445f524553455256455f434f554e5400000000000000604482015290519081900360640190fd5b600560009054906101000a9004600160a060020a0316600160a060020a03166379ba50976040518163ffffffff1660e060020a028152600401600060405180830381600087803b15801561438357600080fd5b505af1158015614397573d6000803e3d6000fd5b50505050610cae61353e565b7f800000000000000000000000000000000000000000000000000000000000000081106143cc57fe5b60408051848152602081018490528082018390529051600160a060020a038087169288821692918a16917f276856b36cbc45526a0ba64f44611557a2a8b68662c5388e9fe6d72e86e1c8cb9181900360600190a4505050505050565b6000806000806000806000600560009054906101000a9004600160a060020a0316600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561448657600080fd5b505af115801561449a573d6000803e3d6000fd5b505050506040513d60208110156144b057600080fd5b505196506144bd89612619565b95506144c888612619565b600160a060020a03808b16600090815260086020526040808220600190810154938d1683529120015491965063ffffffff90811695509081169350614511908690869061415016565b91506145268663ffffffff8086169061415016565b60408051848152602081018390528151929350600160a060020a03808c1693908d16927f77f29993cf2c084e726f7e802da0719d6a0ade3e204badc7a3ffd57ecb768c24928290030190a361457d878a8887613725565b61458987898786613725565b604080518881526020810188905263ffffffff8616818301529051600160a060020a038b16917f8a6a7f53b3c8fa1dc4b83e3f1be668c1b251ff8d44cdcb83eb3acec3fec6a788919081900360600190a2604080518881526020810187905263ffffffff8516818301529051600160a060020a038a16917f8a6a7f53b3c8fa1dc4b83e3f1be668c1b251ff8d44cdcb83eb3acec3fec6a788919081900360600190a2505050505050505050565b60008060015b84518110156146f9576146a160086000878481518110151561465a57fe5b6020908102909101810151600160a060020a0316825281019190915260400160002054855186908590811061468b57fe5b602090810290910101519063ffffffff61415016565b6146e76008600088868151811015156146b657fe5b6020908102909101810151600160a060020a0316825281019190915260400160002054865187908590811061468b57fe5b10156146f1578091505b60010161463c565b86600160a060020a0316632f55bdb58760086000898781518110151561471b57fe5b6020908102909101810151600160a060020a0316825281019190915260400160002054600954885163ffffffff9091169089908890811061475857fe5b906020019060200201516040518563ffffffff1660e060020a028152600401808581526020018481526020018363ffffffff1663ffffffff168152602001828152602001945050505050602060405180830381600087803b1580156147bc57600080fd5b505af11580156147d0573d6000803e3d6000fd5b505050506040513d60208110156147e657600080fd5b5051979650505050505050565b6040805160a08101825260008082526020820181905291810182905260608101829052608081019190915290565b602060405190810160405280600190602082028038833950919291505056004552525f494e56414c49445f5245534552564500000000000000000000000000353c2eb9e53a4a4a6d45d72082ff2e9dc829d1125618772a83eb0e7f86632c42536f7672796e53776170436f6e76657274657255706772616465720000000000000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee536f7672796e53776170466f726d756c610000000000000000000000000000004552525f4143434553535f44454e494544000000000000000000000000000000a165627a7a72305820324b4364d6a1792677c2fd82e313b62b9cc957d58949fe9823a7cc610a1a0c050029a165627a7a723058202b00ad8ff8cddb595e46d416fc24da468de123d56b62cf0dc1be99de9699a9e50029", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4D7B DUP1 PUSH2 0x20 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x4B JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x11413958 DUP2 EQ PUSH2 0x50 JUMPI DUP1 PUSH4 0x3E8FF43F EQ PUSH2 0xB6 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x8D PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH4 0xFFFFFFFF PUSH1 0x44 CALLDATALOAD AND PUSH2 0xE2 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xC2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xCB PUSH2 0x1D5 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0xFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP1 DUP5 DUP5 DUP5 PUSH2 0xF0 PUSH2 0x1DA JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP4 DUP5 AND DUP2 MSTORE SWAP2 SWAP1 SWAP3 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH4 0xFFFFFFFF SWAP1 SWAP2 AND PUSH1 0x40 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 PUSH1 0x0 CREATE DUP1 ISZERO DUP1 ISZERO PUSH2 0x142 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH32 0xF2FDE38B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD SWAP2 SWAP3 POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND SWAP2 PUSH4 0xF2FDE38B SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1B4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1C8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP SWAP3 SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x4B65 DUP1 PUSH2 0x1EB DUP4 CODECOPY ADD SWAP1 JUMP STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x1 PUSH1 0x4 SSTORE PUSH32 0xC0829421C1D260BD3CB3E0F06CFE2D52DB2CE315000000000000000000000000 PUSH1 0x9 SSTORE CALLVALUE DUP1 ISZERO PUSH3 0x3A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH1 0x60 DUP1 PUSH3 0x4B65 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 SWAP1 DUP2 MSTORE DUP2 MLOAD PUSH1 0x20 DUP4 ADD MLOAD SWAP2 SWAP1 SWAP3 ADD MLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND CALLER OR SWAP1 SSTORE DUP3 DUP3 DUP3 DUP3 DUP3 DUP3 DUP2 DUP1 PUSH3 0x88 DUP2 PUSH5 0x100000000 PUSH3 0x135 DUP2 MUL DIV JUMP JUMPDEST POP PUSH1 0x2 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT SWAP3 DUP4 AND DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x3 DUP1 SLOAD SWAP1 SWAP3 AND OR SWAP1 SSTORE DUP3 PUSH3 0xC8 DUP2 PUSH5 0x100000000 PUSH3 0x135 DUP2 MUL DIV JUMP JUMPDEST DUP2 PUSH3 0xDD DUP2 PUSH5 0x100000000 PUSH3 0x1B0 DUP2 MUL DIV JUMP JUMPDEST POP POP PUSH1 0x5 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP5 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 OR SWAP1 SWAP3 SSTORE POP PUSH1 0x9 DUP1 SLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP3 AND PUSH5 0x100000000 MUL PUSH8 0xFFFFFFFF00000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE POP PUSH3 0x229 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH3 0x1AD JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH3 0xF4240 PUSH4 0xFFFFFFFF DUP3 AND GT ISZERO PUSH3 0x1AD JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F434F4E56455253494F4E5F464545000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x492C DUP1 PUSH3 0x239 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x258 JUMPI PUSH4 0xFFFFFFFF PUSH1 0xE0 PUSH1 0x2 EXP PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x24C7EC7 DUP2 EQ PUSH2 0x2E4 JUMPI DUP1 PUSH4 0xC7D5CD8 EQ PUSH2 0x2FE JUMPI DUP1 PUSH4 0xE53AAE9 EQ PUSH2 0x32C JUMPI DUP1 PUSH4 0x12C2ACA4 EQ PUSH2 0x381 JUMPI DUP1 PUSH4 0x19B64015 EQ PUSH2 0x3AA JUMPI DUP1 PUSH4 0x1CFAB290 EQ PUSH2 0x3DE JUMPI DUP1 PUSH4 0x1E1401F8 EQ PUSH2 0x3FF JUMPI DUP1 PUSH4 0x21E6B53D EQ PUSH2 0x442 JUMPI DUP1 PUSH4 0x22F3E2D4 EQ PUSH2 0x463 JUMPI DUP1 PUSH4 0x2FE8A6AD EQ PUSH2 0x478 JUMPI DUP1 PUSH4 0x38A5E016 EQ PUSH2 0x48D JUMPI DUP1 PUSH4 0x395900D4 EQ PUSH2 0x4A2 JUMPI DUP1 PUSH4 0x3E8FF43F EQ PUSH2 0x4CC JUMPI DUP1 PUSH4 0x415F1240 EQ PUSH2 0x4F8 JUMPI DUP1 PUSH4 0x49D10B64 EQ PUSH2 0x510 JUMPI DUP1 PUSH4 0x4AF80F0E EQ PUSH2 0x525 JUMPI DUP1 PUSH4 0x54FD4D50 EQ PUSH2 0x546 JUMPI DUP1 PUSH4 0x579CD3CA EQ PUSH2 0x55B JUMPI DUP1 PUSH4 0x5E35359E EQ PUSH2 0x570 JUMPI DUP1 PUSH4 0x61CD756E EQ PUSH2 0x59A JUMPI DUP1 PUSH4 0x67B6D57C EQ PUSH2 0x5AF JUMPI DUP1 PUSH4 0x690D8320 EQ PUSH2 0x5D0 JUMPI DUP1 PUSH4 0x6A49D2C4 EQ PUSH2 0x5F1 JUMPI DUP1 PUSH4 0x6AA5332C EQ PUSH2 0x61B JUMPI DUP1 PUSH4 0x71F52BF3 EQ PUSH2 0x645 JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x65A JUMPI DUP1 PUSH4 0x7B103999 EQ PUSH2 0x66F JUMPI DUP1 PUSH4 0x7D8916BD EQ PUSH2 0x684 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x707 JUMPI DUP1 PUSH4 0x94C275AD EQ PUSH2 0x71C JUMPI DUP1 PUSH4 0x9B99A8E2 EQ PUSH2 0x731 JUMPI DUP1 PUSH4 0xA60E7724 EQ PUSH2 0x746 JUMPI DUP1 PUSH4 0xAF94B8D8 EQ PUSH2 0x79B JUMPI DUP1 PUSH4 0xB127C0A5 EQ PUSH2 0x7C5 JUMPI DUP1 PUSH4 0xB4A176D3 EQ PUSH2 0x858 JUMPI DUP1 PUSH4 0xBBB7E5D8 EQ PUSH2 0x86D JUMPI DUP1 PUSH4 0xBF754558 EQ PUSH2 0x888 JUMPI DUP1 PUSH4 0xC45D3D92 EQ PUSH2 0x89D JUMPI DUP1 PUSH4 0xCA1D209D EQ PUSH2 0x8B2 JUMPI DUP1 PUSH4 0xCDC91C69 EQ PUSH2 0x8BD JUMPI DUP1 PUSH4 0xD031370B EQ PUSH2 0x8D2 JUMPI DUP1 PUSH4 0xD260529C EQ PUSH2 0x8EA JUMPI DUP1 PUSH4 0xD3FB73B4 EQ PUSH2 0x8FF JUMPI DUP1 PUSH4 0xD4EE1D90 EQ PUSH2 0x914 JUMPI DUP1 PUSH4 0xD55EC697 EQ PUSH2 0x929 JUMPI DUP1 PUSH4 0xD66BD524 EQ PUSH2 0x93E JUMPI DUP1 PUSH4 0xD8959512 EQ PUSH2 0x95F JUMPI DUP1 PUSH4 0xDC8DE379 EQ PUSH2 0x980 JUMPI DUP1 PUSH4 0xE8DC12FF EQ PUSH2 0x9A1 JUMPI DUP1 PUSH4 0xECBCA55D EQ PUSH2 0x9CB JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x9E9 JUMPI DUP1 PUSH4 0xFC0C546A EQ PUSH2 0xA0A JUMPI JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x0 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH32 0x353C2EB9E53A4A4A6D45D72082FF2E9DC829D1125618772A83EB0E7F86632C43 SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO PUSH2 0x2E2 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4841 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2F0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E2 PUSH1 0x4 CALLDATALOAD ISZERO ISZERO PUSH2 0xA1F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x30A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x313 PUSH2 0xA67 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x338 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x34D PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0xA73 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP6 DUP7 MSTORE PUSH4 0xFFFFFFFF SWAP1 SWAP5 AND PUSH1 0x20 DUP7 ADD MSTORE SWAP2 ISZERO ISZERO DUP5 DUP5 ADD MSTORE ISZERO ISZERO PUSH1 0x60 DUP5 ADD MSTORE ISZERO ISZERO PUSH1 0x80 DUP4 ADD MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0xA0 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x38D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x396 PUSH2 0xB0E JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3B6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3C2 PUSH1 0x4 CALLDATALOAD PUSH2 0xB57 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x313 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0xB83 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x40B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x429 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0xBB5 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x44E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0xBCF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x46F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x396 PUSH2 0xBE3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x484 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x396 PUSH2 0xC7D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x499 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E2 PUSH2 0xC9E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4AE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0xCB0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4D8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4E1 PUSH2 0xD4B JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0xFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x504 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E2 PUSH1 0x4 CALLDATALOAD PUSH2 0xD50 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x51C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E2 PUSH2 0xF94 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x531 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x1201 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x552 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4E1 PUSH2 0x1243 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x567 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x313 PUSH2 0x1248 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x57C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x1260 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5A6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3C2 PUSH2 0x1369 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5BB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x1378 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5DC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x141B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5FD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH4 0xFFFFFFFF PUSH1 0x24 CALLDATALOAD AND PUSH2 0x1520 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x627 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x633 PUSH1 0x4 CALLDATALOAD PUSH2 0x175F JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x651 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4E1 PUSH2 0x1784 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x666 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E2 PUSH2 0x1793 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x67B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3C2 PUSH2 0x1854 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x2E2 SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP POP PUSH1 0x40 DUP1 MLOAD DUP8 CALLDATALOAD DUP10 ADD DUP1 CALLDATALOAD PUSH1 0x20 DUP2 DUP2 MUL DUP5 DUP2 ADD DUP3 ADD SWAP1 SWAP6 MSTORE DUP2 DUP5 MSTORE SWAP9 SWAP12 SWAP11 SWAP10 DUP10 ADD SWAP9 SWAP3 SWAP8 POP SWAP1 DUP3 ADD SWAP6 POP SWAP4 POP DUP4 SWAP3 POP DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP POP SWAP4 CALLDATALOAD SWAP5 POP PUSH2 0x1863 SWAP4 POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x713 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3C2 PUSH2 0x1B62 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x728 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x313 PUSH2 0x1B71 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x73D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4E1 PUSH2 0x1B85 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x752 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x633 SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP PUSH2 0x1B8B SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7A7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x429 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x1BE1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7D1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 PUSH1 0x24 DUP1 CALLDATALOAD DUP3 DUP2 ADD CALLDATALOAD DUP5 DUP2 MUL DUP1 DUP8 ADD DUP7 ADD SWAP1 SWAP8 MSTORE DUP1 DUP7 MSTORE PUSH2 0x2E2 SWAP7 DUP5 CALLDATALOAD SWAP7 CALLDATASIZE SWAP7 PUSH1 0x44 SWAP6 SWAP2 SWAP5 SWAP1 SWAP2 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP POP PUSH1 0x40 DUP1 MLOAD DUP8 CALLDATALOAD DUP10 ADD DUP1 CALLDATALOAD PUSH1 0x20 DUP2 DUP2 MUL DUP5 DUP2 ADD DUP3 ADD SWAP1 SWAP6 MSTORE DUP2 DUP5 MSTORE SWAP9 SWAP12 SWAP11 SWAP10 DUP10 ADD SWAP9 SWAP3 SWAP8 POP SWAP1 DUP3 ADD SWAP6 POP SWAP4 POP DUP4 SWAP3 POP DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP PUSH2 0x1D86 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x864 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E2 PUSH2 0x1EBA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x879 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x633 PUSH1 0x4 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH2 0x1EF3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x894 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x396 PUSH2 0x1F0D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8A9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3C2 PUSH2 0x1F12 JUMP JUMPDEST PUSH2 0x2E2 PUSH1 0x4 CALLDATALOAD PUSH2 0x1F21 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8C9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E2 PUSH2 0x242E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8DE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3C2 PUSH1 0x4 CALLDATALOAD PUSH2 0x2487 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8F6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x396 PUSH2 0xD4B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x90B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3C2 PUSH2 0x24AF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x920 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3C2 PUSH2 0x24BE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x935 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E2 PUSH2 0x24CD JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x94A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x34D PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x25C2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x96B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x633 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x2608 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x98C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x633 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x2619 JUMP JUMPDEST PUSH2 0x633 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x44 CALLDATALOAD SWAP1 PUSH1 0x64 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x84 CALLDATALOAD AND PUSH2 0x2642 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9D7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E2 PUSH4 0xFFFFFFFF PUSH1 0x4 CALLDATALOAD AND PUSH2 0x2895 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x298A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA16 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3C2 PUSH2 0x2A27 JUMP JUMPDEST PUSH2 0xA27 PUSH2 0x2A36 JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD SWAP2 ISZERO ISZERO PUSH21 0x10000000000000000000000000000000000000000 MUL PUSH21 0xFF0000000000000000000000000000000000000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH4 0xFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0xA83 PUSH2 0x47F3 JUMP JUMPDEST POP POP POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP2 MLOAD PUSH1 0xA0 DUP2 ADD DUP4 MSTORE DUP2 SLOAD DUP1 DUP3 MSTORE PUSH1 0x1 SWAP1 SWAP3 ADD SLOAD PUSH4 0xFFFFFFFF DUP2 AND SWAP5 DUP3 ADD DUP6 SWAP1 MSTORE PUSH1 0xFF PUSH5 0x100000000 DUP3 DIV DUP2 AND ISZERO ISZERO SWAP5 DUP4 ADD SWAP5 SWAP1 SWAP5 MSTORE PUSH6 0x10000000000 DUP2 DIV DUP5 AND ISZERO ISZERO PUSH1 0x60 DUP4 ADD MSTORE PUSH7 0x1000000000000 SWAP1 DIV SWAP1 SWAP3 AND ISZERO ISZERO PUSH1 0x80 SWAP1 SWAP3 ADD DUP3 SWAP1 MSTORE SWAP6 SWAP2 SWAP5 POP SWAP2 SWAP3 POP DUP3 SWAP2 SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x0 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH32 0x353C2EB9E53A4A4A6D45D72082FF2E9DC829D1125618772A83EB0E7F86632C43 SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x7 DUP3 DUP2 SLOAD DUP2 LT ISZERO ISZERO PUSH2 0xB68 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0xB8F DUP2 PUSH2 0x2A86 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH4 0xFFFFFFFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xBC3 DUP6 DUP6 DUP6 PUSH2 0x1BE1 JUMP JUMPDEST SWAP2 POP SWAP2 POP SWAP4 POP SWAP4 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xBD7 PUSH2 0x2A36 JUMP JUMPDEST PUSH2 0xBE0 DUP2 PUSH2 0x1378 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 ADDRESS PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x8DA5CB5B PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC42 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xC56 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xC6C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH2 0xCA6 PUSH2 0x2A36 JUMP JUMPDEST PUSH2 0xCAE PUSH2 0x242E JUMP JUMPDEST JUMP JUMPDEST PUSH2 0xCB8 PUSH2 0x2A36 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x5E35359E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP6 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP3 ADD DUP6 SWAP1 MSTORE SWAP2 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP2 PUSH4 0x5E35359E SWAP2 PUSH1 0x64 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xD2E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xD42 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 PUSH1 0x0 PUSH2 0xD5E PUSH2 0x2AF3 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH1 0x0 DUP5 GT PUSH2 0xDBB JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xF PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5A45524F5F414D4F554E540000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x18160DDD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xE0E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xE22 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xE38 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xA24835D100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP9 SWAP1 MSTORE SWAP1 MLOAD SWAP3 SWAP6 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP2 AND SWAP2 PUSH4 0xA24835D1 SWAP2 PUSH1 0x44 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xEA9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xEBD JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x7 DUP1 SLOAD SWAP1 POP PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0xEF0 JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CODESIZE DUP4 CODECOPY ADD SWAP1 POP JUMPDEST POP SWAP2 POP PUSH1 0x0 SWAP1 POP JUMPDEST DUP2 MLOAD DUP2 LT ISZERO PUSH2 0xF23 JUMPI PUSH1 0x1 DUP3 DUP3 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xF11 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MSTORE PUSH1 0x1 ADD PUSH2 0xEF8 JUMP JUMPDEST PUSH2 0xF89 PUSH1 0x7 DUP1 SLOAD DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD DUP1 ISZERO PUSH2 0xF7C JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xF5E JUMPI JUMPDEST POP POP POP POP POP DUP4 DUP6 DUP8 PUSH2 0x2B4D JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0x4 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ DUP1 PUSH2 0xFC9 JUMPI POP PUSH1 0x3 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x100D JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48E1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x1036 PUSH32 0x436F6E7472616374526567697374727900000000000000000000000000000000 PUSH2 0x2E12 JUMP JUMPDEST PUSH1 0x2 SLOAD SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP4 AND SWAP2 AND EQ DUP1 ISZERO SWAP1 PUSH2 0x105F JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x10B5 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245474953545259000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0xBB34534C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH32 0x436F6E7472616374526567697374727900000000000000000000000000000000 PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP2 PUSH4 0xBB34534C SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1139 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x114D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1163 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ ISZERO PUSH2 0x11C4 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245474953545259000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP5 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP3 DUP4 AND OR SWAP1 SWAP3 SSTORE SWAP1 SWAP2 AND SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x1209 PUSH2 0x2A36 JUMP JUMPDEST DUP1 PUSH2 0x1213 DUP2 PUSH2 0x2EAA JUMP JUMPDEST POP PUSH1 0x6 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x20 DUP2 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH9 0x10000000000000000 SWAP1 DIV PUSH4 0xFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x126A PUSH2 0x2AF3 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH2 0x1277 PUSH2 0x2A36 JUMP JUMPDEST PUSH2 0x128E PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4881 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x2E12 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD SWAP1 SWAP2 POP PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 PUSH2 0x12CB JUMPI POP PUSH2 0x12C9 PUSH2 0xBE3 JUMP JUMPDEST ISZERO JUMPDEST DUP1 PUSH2 0x12E3 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ JUMPDEST ISZERO ISZERO PUSH2 0x1327 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48E1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x1332 DUP5 DUP5 DUP5 PUSH2 0x2F0B JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0xF89 JUMPI PUSH2 0xF89 DUP5 PUSH2 0x2F3C JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH2 0x1380 PUSH2 0x2A36 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4881 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x1398 DUP2 PUSH2 0x3031 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xF2FDE38B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP2 PUSH4 0xF2FDE38B SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x13FF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1413 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1425 PUSH2 0x2AF3 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH2 0x1432 PUSH2 0x2A36 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x144A DUP2 PUSH2 0x2A86 JUMP JUMPDEST PUSH2 0x1461 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4881 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x2E12 JUMP JUMPDEST SWAP2 POP PUSH2 0x146B PUSH2 0xBE3 JUMP JUMPDEST ISZERO DUP1 PUSH2 0x1484 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 DUP2 AND SWAP2 AND EQ JUMPDEST ISZERO ISZERO PUSH2 0x14C8 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48E1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP1 ADDRESS BALANCE DUP1 ISZERO PUSH2 0x8FC MUL SWAP2 PUSH1 0x0 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x14FE JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH2 0x1516 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x2F3C JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0x4 SSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x152A PUSH2 0x2A36 JUMP JUMPDEST PUSH2 0x1532 PUSH2 0x3087 JUMP JUMPDEST DUP3 PUSH2 0x153C DUP2 PUSH2 0x30E4 JUMP JUMPDEST DUP4 PUSH2 0x1546 DUP2 PUSH2 0x2EAA JUMP JUMPDEST DUP4 PUSH2 0x1550 DUP2 PUSH2 0x3144 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 DUP2 AND SWAP2 AND EQ DUP1 ISZERO SWAP1 PUSH2 0x1594 JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x15D8 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4841 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x9 SLOAD PUSH4 0xFFFFFFFF SWAP1 DUP2 AND PUSH3 0xF4240 SUB DUP2 AND SWAP1 DUP7 AND GT ISZERO PUSH2 0x1643 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F574549474854000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0xFFFF PUSH2 0x164E PUSH2 0x1B85 JUMP JUMPDEST PUSH2 0xFFFF AND LT PUSH2 0x16A7 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F434F554E5400000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP2 DUP2 SSTORE PUSH1 0x1 SWAP1 DUP2 ADD DUP1 SLOAD PUSH7 0xFF000000000000 NOT PUSH4 0xFFFFFFFF DUP1 DUP9 AND PUSH4 0xFFFFFFFF NOT SWAP4 DUP5 AND OR SWAP2 SWAP1 SWAP2 AND PUSH7 0x1000000000000 OR SWAP1 SWAP3 SSTORE PUSH1 0x7 DUP1 SLOAD SWAP4 DUP5 ADD DUP2 SSTORE SWAP1 SWAP4 MSTORE PUSH32 0xA66CC928B5EDB82AF9BD49922954155AB7B0942694BEA4CE44661D9A8736C688 SWAP1 SWAP2 ADD DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 SWAP4 OR SWAP1 SWAP3 SSTORE PUSH1 0x9 DUP1 SLOAD DUP1 DUP5 AND SWAP1 SWAP5 ADD SWAP1 SWAP3 AND SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 JUMPDEST PUSH1 0x0 DUP2 GT ISZERO PUSH2 0x177D JUMPI PUSH1 0x1 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0xA SWAP1 DIV PUSH2 0x1764 JUMP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x178E PUSH2 0x1B85 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x17E3 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48E1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND SWAP4 SWAP1 SWAP2 AND SWAP2 PUSH32 0x343765429AEA5A34B3FF6A3785A98A5ABB2597ACA87BFBB58632C173D585373A SWAP2 LOG3 PUSH1 0x1 DUP1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND OR SWAP1 SWAP2 SSTORE AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x1870 PUSH2 0x2AF3 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH2 0x187D PUSH2 0x31B9 JUMP JUMPDEST PUSH2 0x1888 DUP7 DUP7 DUP7 PUSH2 0x3217 JUMP JUMPDEST PUSH1 0x0 SWAP3 POP JUMPDEST DUP6 MLOAD DUP4 LT ISZERO PUSH2 0x1946 JUMPI DUP6 MLOAD PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP1 DUP8 SWAP1 DUP6 SWAP1 DUP2 LT PUSH2 0x18B4 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ ISZERO PUSH2 0x193B JUMPI CALLVALUE DUP6 DUP5 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x18DC JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MLOAD EQ PUSH2 0x193B JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4554485F414D4F554E545F4D49534D41544348000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 PUSH2 0x188D JUMP JUMPDEST PUSH1 0x0 CALLVALUE GT ISZERO PUSH2 0x19EB JUMPI PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x0 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH32 0x353C2EB9E53A4A4A6D45D72082FF2E9DC829D1125618772A83EB0E7F86632C43 SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO PUSH2 0x19EB JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4E4F5F4554485F524553455256450000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x18160DDD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1A3E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1A52 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1A68 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 POP PUSH2 0x1A77 DUP7 DUP7 DUP5 PUSH2 0x34D3 JUMP JUMPDEST SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0x1AD1 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F52455455524E5F544F4F5F4C4F570000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x867904B400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP2 PUSH4 0x867904B4 SWAP2 PUSH1 0x44 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1B3D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1B51 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x1 PUSH1 0x4 SSTORE POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH5 0x100000000 SWAP1 DIV PUSH4 0xFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x7 SLOAD SWAP1 JUMP JUMPDEST DUP1 MLOAD PUSH1 0x0 SWAP1 DUP2 SWAP1 DUP2 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1BC8 JUMPI PUSH2 0x1BBC DUP6 DUP3 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x1BAD JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH2 0x175F JUMP JUMPDEST SWAP1 SWAP3 ADD SWAP2 PUSH1 0x1 ADD PUSH2 0x1B94 JUMP JUMPDEST PUSH1 0x1 PUSH2 0x1BD4 DUP5 DUP5 PUSH2 0x1EF3 JUMP JUMPDEST SUB PUSH1 0xA EXP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x1BEF PUSH2 0x31B9 JUMP JUMPDEST DUP7 PUSH2 0x1BF9 DUP2 PUSH2 0x2A86 JUMP JUMPDEST DUP7 PUSH2 0x1C03 DUP2 PUSH2 0x2A86 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP10 DUP2 AND SWAP1 DUP10 AND EQ ISZERO PUSH2 0x1C67 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F534F555243455F54415247455400000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x1C7E PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48C1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x2E12 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x94491FAB PUSH2 0x1C95 DUP12 PUSH2 0x2619 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP13 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH4 0xFFFFFFFF AND PUSH2 0x1CC0 DUP13 PUSH2 0x2619 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP14 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 ADD SLOAD DUP2 MLOAD PUSH4 0xFFFFFFFF DUP10 DUP2 AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP3 MSTORE PUSH1 0x4 DUP3 ADD SWAP9 SWAP1 SWAP9 MSTORE SWAP6 DUP8 AND PUSH1 0x24 DUP8 ADD MSTORE PUSH1 0x44 DUP7 ADD SWAP5 SWAP1 SWAP5 MSTORE SWAP5 SWAP1 SWAP3 AND PUSH1 0x64 DUP5 ADD MSTORE PUSH1 0x84 DUP4 ADD DUP14 SWAP1 MSTORE SWAP3 MLOAD PUSH1 0xA4 DUP1 DUP5 ADD SWAP5 SWAP3 SWAP4 SWAP2 SWAP3 SWAP2 DUP4 SWAP1 SUB ADD SWAP1 DUP3 SWAP1 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1D3C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1D50 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1D66 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP4 POP PUSH2 0x1D73 DUP5 PUSH2 0x3502 JUMP JUMPDEST SWAP4 DUP5 SWAP1 SUB SWAP10 SWAP4 SWAP9 POP SWAP3 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1D90 PUSH2 0x2AF3 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH2 0x1D9D PUSH2 0x31B9 JUMP JUMPDEST PUSH2 0x1DA8 DUP4 DUP4 DUP7 PUSH2 0x3217 JUMP JUMPDEST PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x18160DDD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1DFB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1E0F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1E25 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xA24835D100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP9 SWAP1 MSTORE SWAP1 MLOAD SWAP3 SWAP4 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP2 AND SWAP2 PUSH4 0xA24835D1 SWAP2 PUSH1 0x44 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1E96 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1EAA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0xF89 DUP4 DUP4 DUP4 DUP8 PUSH2 0x2B4D JUMP JUMPDEST PUSH2 0x1EC2 PUSH2 0x2A36 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x2 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x2 DUP2 DIV DUP5 ADD DUP2 ISZERO ISZERO PUSH2 0x1F05 JUMPI INVALID JUMPDEST DIV SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x1 DUP2 JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x1F38 PUSH2 0x2AF3 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH2 0x1F45 PUSH2 0x353E JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x0 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4861 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SLOAD PUSH2 0x1F7C SWAP1 CALLVALUE PUSH4 0xFFFFFFFF PUSH2 0x3580 AND JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4861 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP3 SWAP1 SWAP3 SSTORE PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x18160DDD00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP4 PUSH4 0x18160DDD SWAP4 PUSH1 0x4 DUP1 DUP5 ADD SWAP5 SWAP3 SWAP4 DUP4 SWAP1 SUB ADD SWAP1 DUP3 SWAP1 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2006 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x201A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2030 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP10 POP PUSH2 0x204B PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48C1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x2E12 JUMP JUMPDEST PUSH1 0x7 SLOAD SWAP1 SWAP10 POP SWAP8 POP PUSH1 0x0 SWAP7 POP JUMPDEST DUP8 DUP8 LT ISZERO PUSH2 0x2398 JUMPI PUSH1 0x7 DUP1 SLOAD DUP9 SWAP1 DUP2 LT PUSH2 0x206E JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP6 POP PUSH1 0x8 PUSH1 0x0 DUP8 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD SWAP5 POP DUP9 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xEBBB2158 DUP12 DUP8 PUSH1 0x9 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH4 0xFFFFFFFF AND DUP16 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH4 0xFFFFFFFF AND PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP5 POP POP POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2138 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x214C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2162 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP4 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ ISZERO PUSH2 0x22C4 JUMPI DUP4 CALLVALUE GT ISZERO PUSH2 0x21C2 JUMPI PUSH1 0x40 MLOAD CALLER SWAP1 CALLVALUE DUP7 SWAP1 SUB DUP1 ISZERO PUSH2 0x8FC MUL SWAP2 PUSH1 0x0 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x21BC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH2 0x22BF JUMP JUMPDEST DUP4 CALLVALUE LT ISZERO PUSH2 0x22BF JUMPI CALLVALUE ISZERO PUSH2 0x2220 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4554485F56414C55450000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x9 SLOAD PUSH2 0x2248 SWAP1 PUSH13 0x1000000000000000000000000 SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER ADDRESS DUP8 PUSH2 0x35E0 JUMP JUMPDEST PUSH1 0x9 PUSH1 0xC SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x2E1A7D4D DUP6 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x22A6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x22BA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMPDEST PUSH2 0x22D0 JUMP JUMPDEST PUSH2 0x22D0 DUP7 CALLER ADDRESS DUP8 PUSH2 0x35E0 JUMP JUMPDEST PUSH2 0x22E0 DUP6 DUP6 PUSH4 0xFFFFFFFF PUSH2 0x36C8 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP2 SWAP1 SSTORE SWAP3 POP PUSH2 0x230D DUP11 DUP13 PUSH4 0xFFFFFFFF PUSH2 0x36C8 AND JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP7 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP7 SWAP1 MSTORE DUP1 DUP3 ADD DUP4 SWAP1 MSTORE SWAP1 MLOAD SWAP2 SWAP4 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 AND SWAP2 CALLER SWAP2 PUSH32 0x4A1A2A6176E9646D9E3157F7C2AB3C499F18337C0B0828CFB28E0A61DE4A11F7 SWAP2 SWAP1 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG3 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH4 0xFFFFFFFF AND PUSH2 0x238D DUP3 DUP8 DUP6 DUP5 PUSH2 0x3725 JUMP JUMPDEST PUSH1 0x1 SWAP1 SWAP7 ADD SWAP6 PUSH2 0x2058 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x867904B400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP15 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP2 PUSH4 0x867904B4 SWAP2 PUSH1 0x44 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2404 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2418 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x1 PUSH1 0x4 SSTORE POP POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x2436 PUSH2 0x2A36 JUMP JUMPDEST PUSH2 0x243E PUSH2 0x3794 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x2455 PUSH2 0xD4B JUMP JUMPDEST PUSH2 0xFFFF AND PUSH32 0x6B08C2E2C9969E55A647A764DB9B554D64DC42F1A704DA11A6D5B129AD163F2C PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 JUMP JUMPDEST PUSH1 0x7 DUP1 SLOAD DUP3 SWAP1 DUP2 LT PUSH2 0x2495 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP1 POP DUP2 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x24D7 PUSH2 0x2A36 JUMP JUMPDEST PUSH2 0x24EE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4881 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x2E12 JUMP JUMPDEST PUSH1 0x5 SLOAD SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x2508 PUSH2 0xD4B JUMP JUMPDEST PUSH2 0xFFFF AND PUSH32 0x6B08C2E2C9969E55A647A764DB9B554D64DC42F1A704DA11A6D5B129AD163F2C PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH2 0x2541 DUP2 PUSH2 0x298A JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x90F58C9600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 AND SWAP2 PUSH4 0x90F58C96 SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x25A2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x25B6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0xBE0 PUSH2 0x1793 JUMP JUMPDEST PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD PUSH4 0xFFFFFFFF DUP2 AND SWAP1 PUSH1 0xFF PUSH5 0x100000000 DUP3 DIV DUP2 AND SWAP2 PUSH6 0x10000000000 DUP2 DIV DUP3 AND SWAP2 PUSH7 0x1000000000000 SWAP1 SWAP2 DIV AND DUP6 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2613 DUP3 PUSH2 0x2619 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0x2625 DUP2 PUSH2 0x2A86 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x264C PUSH2 0x2AF3 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH32 0x536F7672796E537761704E6574776F726B000000000000000000000000000000 PUSH2 0x267B DUP2 PUSH2 0x3031 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 DUP2 AND SWAP1 DUP8 AND EQ ISZERO PUSH2 0x26DF JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F534F555243455F54415247455400000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND ISZERO DUP1 PUSH2 0x2822 JUMPI POP PUSH1 0x6 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x3AF32ABF00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP2 PUSH4 0x3AF32ABF SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x275A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x276E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2784 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD DUP1 ISZERO PUSH2 0x2822 JUMPI POP PUSH1 0x6 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x3AF32ABF00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP2 PUSH4 0x3AF32ABF SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x27F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2809 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x281F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD JUMPDEST ISZERO ISZERO PUSH2 0x2878 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4E4F545F57484954454C495354454400000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x2885 DUP8 DUP8 DUP8 DUP8 DUP8 PUSH2 0x37FF JUMP JUMPDEST PUSH1 0x1 PUSH1 0x4 SSTORE SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x289D PUSH2 0x2A36 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH4 0xFFFFFFFF PUSH5 0x100000000 SWAP1 SWAP2 DIV DUP2 AND SWAP1 DUP3 AND GT ISZERO PUSH2 0x2909 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F434F4E56455253494F4E5F464545000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH4 0xFFFFFFFF PUSH9 0x10000000000000000 SWAP1 SWAP4 DIV DUP4 AND DUP2 MSTORE SWAP2 DUP4 AND PUSH1 0x20 DUP4 ADD MSTORE DUP1 MLOAD PUSH32 0x81CD2FFB37DD237C0E4E2A3DE5265FCF9DEB43D3E7801E80DB9F1CCFBA7EE600 SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG1 PUSH1 0x9 DUP1 SLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP3 AND PUSH9 0x10000000000000000 MUL PUSH12 0xFFFFFFFF0000000000000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x2992 PUSH2 0x2A36 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x29F8 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F4F574E4552000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0xCAE JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48E1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO PUSH2 0xBE0 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4841 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x4 SLOAD PUSH1 0x1 EQ PUSH2 0xCAE JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5245454E5452414E4359000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x2B61 PUSH2 0x353E JUMP JUMPDEST PUSH2 0x2B78 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48C1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x2E12 JUMP JUMPDEST SWAP8 POP PUSH2 0x2B8A DUP11 DUP11 PUSH4 0xFFFFFFFF PUSH2 0x3580 AND JUMP JUMPDEST SWAP7 POP PUSH1 0x0 SWAP6 POP JUMPDEST DUP12 MLOAD DUP7 LT ISZERO PUSH2 0x2E04 JUMPI DUP12 DUP7 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x2BA8 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD SWAP5 POP PUSH1 0x8 PUSH1 0x0 DUP7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD SWAP4 POP DUP8 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x8074590A DUP12 DUP7 PUSH1 0x9 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH4 0xFFFFFFFF AND DUP14 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH4 0xFFFFFFFF AND PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP5 POP POP POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2C5E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2C72 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2C88 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD DUP12 MLOAD SWAP1 SWAP4 POP DUP12 SWAP1 DUP8 SWAP1 DUP2 LT PUSH2 0x2C9B JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MLOAD DUP4 LT ISZERO PUSH2 0x2CFC JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5A45524F5F5441524745545F414D4F554E5400000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x2D0C DUP5 DUP5 PUSH4 0xFFFFFFFF PUSH2 0x3580 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP3 SWAP1 SSTORE SWAP1 SWAP3 POP PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ ISZERO PUSH2 0x2D72 JUMPI PUSH1 0x40 MLOAD CALLER SWAP1 DUP5 ISZERO PUSH2 0x8FC MUL SWAP1 DUP6 SWAP1 PUSH1 0x0 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x2D6C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH2 0x2D7D JUMP JUMPDEST PUSH2 0x2D7D DUP6 CALLER DUP6 PUSH2 0x3AD2 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP5 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 SWAP1 MSTORE DUP1 DUP3 ADD DUP10 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND SWAP2 CALLER SWAP2 PUSH32 0xBC7D19D505C7EC4DB83F3B51F19FB98C4C8A99922E7839D1EE608DFBEE29501B SWAP2 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG3 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH4 0xFFFFFFFF AND PUSH2 0x2DF9 DUP8 DUP7 DUP5 DUP5 PUSH2 0x3725 JUMP JUMPDEST PUSH1 0x1 SWAP1 SWAP6 ADD SWAP5 PUSH2 0x2B91 JUMP JUMPDEST POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xBB34534C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP2 PUSH4 0xBB34534C SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2E78 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2E8C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2EA2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ADDRESS EQ ISZERO PUSH2 0xBE0 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F414444524553535F49535F53454C4600000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x2F13 PUSH2 0x2A36 JUMP JUMPDEST DUP3 PUSH2 0x2F1D DUP2 PUSH2 0x30E4 JUMP JUMPDEST DUP3 PUSH2 0x2F27 DUP2 PUSH2 0x30E4 JUMP JUMPDEST DUP4 PUSH2 0x2F31 DUP2 PUSH2 0x2EAA JUMP JUMPDEST PUSH2 0x1413 DUP7 DUP7 DUP7 PUSH2 0x3AD2 JUMP JUMPDEST DUP1 PUSH2 0x2F46 DUP2 PUSH2 0x2A86 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 AND PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ ISZERO PUSH2 0x2F86 JUMPI PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 ADDRESS BALANCE SWAP1 SSTORE PUSH2 0x302D JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2FE7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2FFB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x3011 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x303A DUP2 PUSH2 0x2E12 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0xBE0 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48E1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x308F PUSH2 0xBE3 JUMP JUMPDEST ISZERO PUSH2 0xCAE JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xA PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F41435449564500000000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0xBE0 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 PUSH4 0xFFFFFFFF AND GT DUP1 ISZERO PUSH2 0x3163 JUMPI POP PUSH3 0xF4240 PUSH4 0xFFFFFFFF DUP3 AND GT ISZERO JUMPDEST ISZERO ISZERO PUSH2 0xBE0 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F574549474854000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x31C1 PUSH2 0xBE3 JUMP JUMPDEST ISZERO ISZERO PUSH2 0xCAE JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E4143544956450000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x7 SLOAD DUP4 MLOAD PUSH1 0x0 SWAP2 DUP3 SWAP2 DUP2 EQ PUSH2 0x3265 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4841 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP5 MLOAD DUP2 EQ PUSH2 0x32BD JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F414D4F554E540000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 SWAP3 POP JUMPDEST DUP1 DUP4 LT ISZERO PUSH2 0x347B JUMPI PUSH1 0x8 PUSH1 0x0 DUP8 DUP6 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x32DC JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP3 MSTORE DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH1 0xFF PUSH7 0x1000000000000 SWAP1 SWAP2 DIV AND ISZERO ISZERO PUSH2 0x3354 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4841 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 SWAP2 POP JUMPDEST DUP1 DUP3 LT ISZERO PUSH2 0x33BC JUMPI DUP6 DUP3 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x336F JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x7 DUP5 DUP2 SLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3391 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ ISZERO PUSH2 0x33B1 JUMPI PUSH2 0x33BC JUMP JUMPDEST PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x3359 JUMP JUMPDEST DUP1 DUP3 LT PUSH2 0x3401 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4841 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP6 DUP5 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3411 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MLOAD GT PUSH2 0x3470 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F414D4F554E540000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 PUSH2 0x32C2 JUMP JUMPDEST PUSH1 0x0 DUP5 GT PUSH2 0x1413 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xF PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5A45524F5F414D4F554E540000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO PUSH2 0x34ED JUMPI PUSH2 0x34E6 DUP5 DUP5 PUSH2 0x3B89 JUMP JUMPDEST SWAP1 POP PUSH2 0x34FB JUMP JUMPDEST PUSH2 0x34F8 DUP5 DUP5 DUP5 PUSH2 0x3D90 JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x0 SWAP1 PUSH2 0x2613 SWAP1 PUSH3 0xF4240 SWAP1 PUSH2 0x3532 SWAP1 DUP6 SWAP1 PUSH9 0x10000000000000000 SWAP1 DIV PUSH4 0xFFFFFFFF SWAP1 DUP2 AND SWAP1 PUSH2 0x4150 AND JUMP JUMPDEST SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x41C9 AND JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x302D JUMPI PUSH2 0x3578 PUSH1 0x7 DUP3 DUP2 SLOAD DUP2 LT ISZERO ISZERO PUSH2 0x355E JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x2F3C JUMP JUMPDEST PUSH1 0x1 ADD PUSH2 0x3544 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT ISZERO PUSH2 0x35DA JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F554E444552464C4F5700000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP SWAP1 SUB SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x7472616E7366657246726F6D28616464726573732C616464726573732C75696E DUP2 MSTORE PUSH32 0x7432353629000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP3 MLOAD SWAP2 DUP3 SWAP1 SUB PUSH1 0x25 ADD DUP3 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP9 AND PUSH1 0x24 DUP6 ADD MSTORE DUP7 AND PUSH1 0x44 DUP5 ADD MSTORE PUSH1 0x64 DUP1 DUP5 ADD DUP7 SWAP1 MSTORE DUP5 MLOAD DUP1 DUP6 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x84 SWAP1 SWAP4 ADD SWAP1 SWAP4 MSTORE DUP2 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE PUSH2 0x36C2 SWAP1 DUP6 SWAP1 PUSH2 0x4237 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 ADD DUP4 DUP2 LT ISZERO PUSH2 0x34FB JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP6 AND SWAP2 AND PUSH32 0x77F29993CF2C084E726F7E802DA0719D6A0ADE3E204BADC7A3FFD57ECB768C24 PUSH2 0x3763 DUP6 PUSH3 0xF4240 PUSH2 0x4150 JUMP JUMPDEST PUSH2 0x3776 DUP9 PUSH4 0xFFFFFFFF DUP1 DUP9 AND SWAP1 PUSH2 0x4150 AND JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB ADD SWAP1 LOG3 POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH2 0x379E PUSH2 0x1B85 JUMP JUMPDEST PUSH2 0xFFFF AND GT PUSH2 0x37F7 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F434F554E5400000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0xCAE PUSH2 0x42C5 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x3810 DUP10 DUP10 DUP10 PUSH2 0x1BE1 JUMP JUMPDEST SWAP1 SWAP4 POP SWAP2 POP DUP3 ISZERO ISZERO PUSH2 0x386C JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5A45524F5F5441524745545F414D4F554E5400000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x3875 DUP9 PUSH2 0x2619 JUMP JUMPDEST SWAP1 POP DUP1 DUP4 LT PUSH2 0x3880 JUMPI INVALID JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP10 AND PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ ISZERO PUSH2 0x38FB JUMPI CALLVALUE DUP8 EQ PUSH2 0x38F6 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4554485F414D4F554E545F4D49534D41544348000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x3A03 JUMP JUMPDEST CALLVALUE ISZERO DUP1 ISZERO PUSH2 0x39AD JUMPI POP DUP7 PUSH2 0x39AA PUSH2 0x3911 DUP12 PUSH2 0x2619 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP15 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3972 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3986 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x399C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x3580 AND JUMP JUMPDEST LT ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x3A03 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F414D4F554E540000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x3A0C DUP10 PUSH2 0x2F3C JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x3A35 SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0x3580 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP10 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ ISZERO PUSH2 0x3AA2 JUMPI PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND SWAP1 DUP5 ISZERO PUSH2 0x8FC MUL SWAP1 DUP6 SWAP1 PUSH1 0x0 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x3A9C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH2 0x3AAD JUMP JUMPDEST PUSH2 0x3AAD DUP9 DUP7 DUP6 PUSH2 0x3AD2 JUMP JUMPDEST PUSH2 0x3ABB DUP10 DUP10 DUP9 DUP11 DUP8 DUP8 PUSH2 0x43A3 JUMP JUMPDEST PUSH2 0x3AC5 DUP10 DUP10 PUSH2 0x4428 JUMP JUMPDEST POP SWAP1 SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x7472616E7366657228616464726573732C75696E743235362900000000000000 DUP2 MSTORE DUP2 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x19 ADD DUP2 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x64 SWAP1 SWAP3 ADD SWAP1 SWAP3 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE PUSH2 0x3B84 SWAP1 DUP5 SWAP1 PUSH2 0x4237 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x3B98 DUP6 PUSH2 0x1B8B JUMP JUMPDEST SWAP3 POP PUSH1 0x0 SWAP2 POP JUMPDEST DUP6 MLOAD DUP3 LT ISZERO PUSH2 0x3D86 JUMPI DUP6 MLOAD PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP1 DUP8 SWAP1 DUP5 SWAP1 DUP2 LT PUSH2 0x3BC6 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ PUSH2 0x3C18 JUMPI PUSH2 0x3C18 DUP7 DUP4 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3BEF JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD CALLER ADDRESS DUP9 DUP7 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3C09 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH2 0x35E0 JUMP JUMPDEST DUP5 DUP3 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3C26 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x8 PUSH1 0x0 DUP9 DUP6 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3C42 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP3 MSTORE DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 SSTORE DUP6 MLOAD DUP7 SWAP1 DUP4 SWAP1 DUP2 LT PUSH2 0x3C73 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH32 0x4A1A2A6176E9646D9E3157F7C2AB3C499F18337C0B0828CFB28E0A61DE4A11F7 DUP8 DUP6 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3CBF JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD DUP9 DUP7 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3CD7 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x40 DUP1 MLOAD SWAP4 DUP5 MSTORE SWAP2 DUP4 ADD MSTORE DUP2 DUP2 ADD DUP9 SWAP1 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG3 PUSH1 0x8 PUSH1 0x0 DUP8 DUP5 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3D0F JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP3 MSTORE DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD SLOAD DUP7 MLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP2 AND SWAP2 POP PUSH2 0x3D7B SWAP1 DUP5 SWAP1 DUP9 SWAP1 DUP6 SWAP1 DUP2 LT PUSH2 0x3D53 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD DUP8 DUP6 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3D6B JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD DUP5 PUSH2 0x3725 JUMP JUMPDEST PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x3B9F JUMP JUMPDEST POP SWAP1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x3DA7 PUSH2 0x353E JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x0 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4861 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SLOAD PUSH2 0x3DDE SWAP1 CALLVALUE PUSH4 0xFFFFFFFF PUSH2 0x3580 AND JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x0 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4861 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SSTORE PUSH2 0x3E1C PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48C1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x2E12 JUMP JUMPDEST SWAP9 POP PUSH2 0x3E2A DUP10 DUP13 DUP16 DUP16 PUSH2 0x4636 JUMP JUMPDEST SWAP8 POP PUSH2 0x3E3C DUP12 DUP10 PUSH4 0xFFFFFFFF PUSH2 0x36C8 AND JUMP JUMPDEST SWAP7 POP PUSH1 0x0 SWAP6 POP JUMPDEST DUP13 MLOAD DUP7 LT ISZERO PUSH2 0x413F JUMPI DUP13 DUP7 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3E5A JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD SWAP5 POP PUSH1 0x8 PUSH1 0x0 DUP7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD SWAP4 POP DUP9 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xEBBB2158 DUP13 DUP7 PUSH1 0x9 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH4 0xFFFFFFFF AND DUP13 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH4 0xFFFFFFFF AND PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP5 POP POP POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3F10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3F24 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x3F3A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP3 POP PUSH1 0x0 DUP4 GT PUSH2 0x3F96 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5A45524F5F5441524745545F414D4F554E5400000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP12 DUP7 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3FA4 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MLOAD DUP4 GT ISZERO PUSH2 0x3FB7 JUMPI INVALID JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ PUSH2 0x3FE6 JUMPI PUSH2 0x3FE1 DUP6 CALLER ADDRESS DUP7 PUSH2 0x35E0 JUMP JUMPDEST PUSH2 0x4059 JUMP JUMPDEST DUP3 DUP13 DUP8 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3FF5 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD GT ISZERO PUSH2 0x4059 JUMPI CALLER PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x8FC DUP5 DUP15 DUP10 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x4021 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD SUB SWAP1 DUP2 ISZERO MUL SWAP1 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x4057 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP JUMPDEST PUSH2 0x4069 DUP5 DUP5 PUSH4 0xFFFFFFFF PUSH2 0x36C8 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP5 SWAP1 SSTORE DUP2 MLOAD DUP8 DUP2 MSTORE SWAP1 DUP2 ADD DUP5 SWAP1 MSTORE DUP1 DUP3 ADD DUP12 SWAP1 MSTORE SWAP1 MLOAD SWAP3 SWAP5 POP SWAP1 SWAP2 CALLER SWAP2 PUSH32 0x4A1A2A6176E9646D9E3157F7C2AB3C499F18337C0B0828CFB28E0A61DE4A11F7 SWAP2 SWAP1 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG3 PUSH1 0x8 PUSH1 0x0 DUP15 DUP9 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x40DF JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP3 MSTORE DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD SLOAD DUP14 MLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP2 AND SWAP2 POP PUSH2 0x4134 SWAP1 DUP9 SWAP1 DUP16 SWAP1 DUP10 SWAP1 DUP2 LT PUSH2 0x4123 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD DUP5 DUP5 PUSH2 0x3725 JUMP JUMPDEST PUSH1 0x1 SWAP1 SWAP6 ADD SWAP5 PUSH2 0x3E43 JUMP JUMPDEST POP SWAP6 SWAP12 SWAP11 POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 ISZERO ISZERO PUSH2 0x4163 JUMPI PUSH1 0x0 SWAP2 POP PUSH2 0x177D JUMP JUMPDEST POP DUP3 DUP3 MUL DUP3 DUP5 DUP3 DUP2 ISZERO ISZERO PUSH2 0x4173 JUMPI INVALID JUMPDEST DIV EQ PUSH2 0x34FB JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP4 GT PUSH2 0x4223 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4449564944455F42595F5A45524F0000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP3 DUP5 DUP2 ISZERO ISZERO PUSH2 0x422E JUMPI INVALID JUMPDEST DIV SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0x423F PUSH2 0x4821 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE POP SWAP1 POP PUSH1 0x20 DUP2 DUP4 MLOAD PUSH1 0x20 DUP6 ADD PUSH1 0x0 DUP8 GAS CALL DUP1 ISZERO ISZERO PUSH2 0x426C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD ISZERO ISZERO PUSH2 0x3B84 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5452414E534645525F4641494C454400000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x42CD PUSH2 0x2A36 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x42D7 PUSH2 0x1B85 JUMP JUMPDEST PUSH2 0xFFFF AND GT PUSH2 0x4330 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F434F554E5400000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x79BA5097 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x4383 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x4397 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0xCAE PUSH2 0x353E JUMP JUMPDEST PUSH32 0x8000000000000000000000000000000000000000000000000000000000000000 DUP2 LT PUSH2 0x43CC JUMPI INVALID JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP5 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 SWAP1 MSTORE DUP1 DUP3 ADD DUP4 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP8 AND SWAP3 DUP9 DUP3 AND SWAP3 SWAP2 DUP11 AND SWAP2 PUSH32 0x276856B36CBC45526A0BA64F44611557A2A8B68662C5388E9FE6D72E86E1C8CB SWAP2 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG4 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x18160DDD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x4486 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x449A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x44B0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP7 POP PUSH2 0x44BD DUP10 PUSH2 0x2619 JUMP JUMPDEST SWAP6 POP PUSH2 0x44C8 DUP9 PUSH2 0x2619 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 PUSH1 0x1 SWAP1 DUP2 ADD SLOAD SWAP4 DUP14 AND DUP4 MSTORE SWAP2 KECCAK256 ADD SLOAD SWAP2 SWAP7 POP PUSH4 0xFFFFFFFF SWAP1 DUP2 AND SWAP6 POP SWAP1 DUP2 AND SWAP4 POP PUSH2 0x4511 SWAP1 DUP7 SWAP1 DUP7 SWAP1 PUSH2 0x4150 AND JUMP JUMPDEST SWAP2 POP PUSH2 0x4526 DUP7 PUSH4 0xFFFFFFFF DUP1 DUP7 AND SWAP1 PUSH2 0x4150 AND JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP5 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP4 SWAP1 MSTORE DUP2 MLOAD SWAP3 SWAP4 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP13 AND SWAP4 SWAP1 DUP14 AND SWAP3 PUSH32 0x77F29993CF2C084E726F7E802DA0719D6A0ADE3E204BADC7A3FFD57ECB768C24 SWAP3 DUP3 SWAP1 SUB ADD SWAP1 LOG3 PUSH2 0x457D DUP8 DUP11 DUP9 DUP8 PUSH2 0x3725 JUMP JUMPDEST PUSH2 0x4589 DUP8 DUP10 DUP8 DUP7 PUSH2 0x3725 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP9 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP9 SWAP1 MSTORE PUSH4 0xFFFFFFFF DUP7 AND DUP2 DUP4 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND SWAP2 PUSH32 0x8A6A7F53B3C8FA1DC4B83E3F1BE668C1B251FF8D44CDCB83EB3ACEC3FEC6A788 SWAP2 SWAP1 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG2 PUSH1 0x40 DUP1 MLOAD DUP9 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP8 SWAP1 MSTORE PUSH4 0xFFFFFFFF DUP6 AND DUP2 DUP4 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP11 AND SWAP2 PUSH32 0x8A6A7F53B3C8FA1DC4B83E3F1BE668C1B251FF8D44CDCB83EB3ACEC3FEC6A788 SWAP2 SWAP1 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG2 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x1 JUMPDEST DUP5 MLOAD DUP2 LT ISZERO PUSH2 0x46F9 JUMPI PUSH2 0x46A1 PUSH1 0x8 PUSH1 0x0 DUP8 DUP5 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x465A JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP3 MSTORE DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 SLOAD DUP6 MLOAD DUP7 SWAP1 DUP6 SWAP1 DUP2 LT PUSH2 0x468B JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MLOAD SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x4150 AND JUMP JUMPDEST PUSH2 0x46E7 PUSH1 0x8 PUSH1 0x0 DUP9 DUP7 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x46B6 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP3 MSTORE DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 SLOAD DUP7 MLOAD DUP8 SWAP1 DUP6 SWAP1 DUP2 LT PUSH2 0x468B JUMPI INVALID JUMPDEST LT ISZERO PUSH2 0x46F1 JUMPI DUP1 SWAP2 POP JUMPDEST PUSH1 0x1 ADD PUSH2 0x463C JUMP JUMPDEST DUP7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x2F55BDB5 DUP8 PUSH1 0x8 PUSH1 0x0 DUP10 DUP8 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x471B JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP3 MSTORE DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH1 0x9 SLOAD DUP9 MLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP2 AND SWAP1 DUP10 SWAP1 DUP9 SWAP1 DUP2 LT PUSH2 0x4758 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH4 0xFFFFFFFF AND PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP5 POP POP POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x47BC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x47D0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x47E6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xA0 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE SWAP2 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x60 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 SWAP1 PUSH1 0x20 DUP3 MUL DUP1 CODESIZE DUP4 CODECOPY POP SWAP2 SWAP3 SWAP2 POP POP JUMP STOP GASLIMIT MSTORE MSTORE 0x5f 0x49 0x4e JUMP COINBASE 0x4c 0x49 DIFFICULTY 0x5f MSTORE GASLIMIT MSTORE8 GASLIMIT MSTORE JUMP GASLIMIT STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP CALLDATALOAD EXTCODECOPY 0x2e 0xb9 0xe5 GASPRICE 0x4a 0x4a PUSH14 0x45D72082FF2E9DC829D112561877 0x2a DUP4 0xeb 0xe PUSH32 0x86632C42536F7672796E53776170436F6E766572746572557067726164657200 STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee MSTORE8 PUSH16 0x7672796E53776170466F726D756C6100 STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP GASLIMIT MSTORE MSTORE 0x5f COINBASE NUMBER NUMBER GASLIMIT MSTORE8 MSTORE8 0x5f DIFFICULTY GASLIMIT 0x4e 0x49 GASLIMIT DIFFICULTY STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 ORIGIN 0x4b NUMBER PUSH5 0xD6A1792677 0xc2 REVERT DUP3 0xe3 SGT 0xb6 0x2b SWAP13 0xc9 JUMPI 0xd5 DUP10 0x49 INVALID SWAP9 0x23 0xa7 0xcc PUSH2 0xA1A 0xc SDIV STOP 0x29 LOG1 PUSH6 0x627A7A723058 KECCAK256 0x2b STOP 0xad DUP16 0xf8 0xcd 0xdb MSIZE 0x5e 0x46 0xd4 AND 0xfc 0x24 0xda 0x46 DUP14 0xe1 0x23 0xd5 PUSH12 0x62CF0DC1BE99DE9699A9E500 0x29 ", - "sourceMap": "266:1032:24:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;266:1032:24;;;;;;;" - }, - "deployedBytecode": { - "linkReferences": {}, - "object": "60806040526004361061004b5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631141395881146100505780633e8ff43f146100b6575b600080fd5b34801561005c57600080fd5b5061008d73ffffffffffffffffffffffffffffffffffffffff6004358116906024351663ffffffff604435166100e2565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b3480156100c257600080fd5b506100cb6101d5565b6040805161ffff9092168252519081900360200190f35b6000808484846100f06101da565b73ffffffffffffffffffffffffffffffffffffffff938416815291909216602082015263ffffffff9091166040808301919091525190819003606001906000f080158015610142573d6000803e3d6000fd5b50604080517ff2fde38b000000000000000000000000000000000000000000000000000000008152336004820152905191925073ffffffffffffffffffffffffffffffffffffffff83169163f2fde38b9160248082019260009290919082900301818387803b1580156101b457600080fd5b505af11580156101c8573d6000803e3d6000fd5b5092979650505050505050565b600190565b604051614b65806101eb833901905600608060405260016004557fc0829421c1d260bd3cb3e0f06cfe2d52db2ce3150000000000000000000000006009553480156200003a57600080fd5b5060405160608062004b6583398101604090815281516020830151919092015160008054600160a060020a031916331790558282828282828180620000888164010000000062000135810204565b5060028054600160a060020a03909216600160a060020a031992831681179091556003805490921617905582620000c88164010000000062000135810204565b81620000dd81640100000000620001b0810204565b505060058054600160a060020a03909416600160a060020a031990941693909317909255506009805463ffffffff9092166401000000000267ffffffff00000000199092169190911790555062000229945050505050565b600160a060020a0381161515620001ad57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b50565b620f424063ffffffff82161115620001ad57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f4552525f494e56414c49445f434f4e56455253494f4e5f464545000000000000604482015290519081900360640190fd5b61492c80620002396000396000f3006080604052600436106102585763ffffffff60e060020a600035041663024c7ec781146102e45780630c7d5cd8146102fe5780630e53aae91461032c57806312c2aca41461038157806319b64015146103aa5780631cfab290146103de5780631e1401f8146103ff57806321e6b53d1461044257806322f3e2d4146104635780632fe8a6ad1461047857806338a5e0161461048d578063395900d4146104a25780633e8ff43f146104cc578063415f1240146104f857806349d10b64146105105780634af80f0e1461052557806354fd4d5014610546578063579cd3ca1461055b5780635e35359e1461057057806361cd756e1461059a57806367b6d57c146105af578063690d8320146105d05780636a49d2c4146105f15780636aa5332c1461061b57806371f52bf31461064557806379ba50971461065a5780637b1039991461066f5780637d8916bd146106845780638da5cb5b1461070757806394c275ad1461071c5780639b99a8e214610731578063a60e772414610746578063af94b8d81461079b578063b127c0a5146107c5578063b4a176d314610858578063bbb7e5d81461086d578063bf75455814610888578063c45d3d921461089d578063ca1d209d146108b2578063cdc91c69146108bd578063d031370b146108d2578063d260529c146108ea578063d3fb73b4146108ff578063d4ee1d9014610914578063d55ec69714610929578063d66bd5241461093e578063d89595121461095f578063dc8de37914610980578063e8dc12ff146109a1578063ecbca55d146109cb578063f2fde38b146109e9578063fc0c546a14610a0a575b6000805160206148a183398151915260005260086020527f353c2eb9e53a4a4a6d45d72082ff2e9dc829d1125618772a83eb0e7f86632c43546601000000000000900460ff1615156102e2576040805160e560020a62461bcd0281526020600482015260136024820152600080516020614841833981519152604482015290519081900360640190fd5b005b3480156102f057600080fd5b506102e26004351515610a1f565b34801561030a57600080fd5b50610313610a67565b6040805163ffffffff9092168252519081900360200190f35b34801561033857600080fd5b5061034d600160a060020a0360043516610a73565b6040805195865263ffffffff9094166020860152911515848401521515606084015215156080830152519081900360a00190f35b34801561038d57600080fd5b50610396610b0e565b604080519115158252519081900360200190f35b3480156103b657600080fd5b506103c2600435610b57565b60408051600160a060020a039092168252519081900360200190f35b3480156103ea57600080fd5b50610313600160a060020a0360043516610b83565b34801561040b57600080fd5b50610429600160a060020a0360043581169060243516604435610bb5565b6040805192835260208301919091528051918290030190f35b34801561044e57600080fd5b506102e2600160a060020a0360043516610bcf565b34801561046f57600080fd5b50610396610be3565b34801561048457600080fd5b50610396610c7d565b34801561049957600080fd5b506102e2610c9e565b3480156104ae57600080fd5b506102e2600160a060020a0360043581169060243516604435610cb0565b3480156104d857600080fd5b506104e1610d4b565b6040805161ffff9092168252519081900360200190f35b34801561050457600080fd5b506102e2600435610d50565b34801561051c57600080fd5b506102e2610f94565b34801561053157600080fd5b506102e2600160a060020a0360043516611201565b34801561055257600080fd5b506104e1611243565b34801561056757600080fd5b50610313611248565b34801561057c57600080fd5b506102e2600160a060020a0360043581169060243516604435611260565b3480156105a657600080fd5b506103c2611369565b3480156105bb57600080fd5b506102e2600160a060020a0360043516611378565b3480156105dc57600080fd5b506102e2600160a060020a036004351661141b565b3480156105fd57600080fd5b506102e2600160a060020a036004351663ffffffff60243516611520565b34801561062757600080fd5b5061063360043561175f565b60408051918252519081900360200190f35b34801561065157600080fd5b506104e1611784565b34801561066657600080fd5b506102e2611793565b34801561067b57600080fd5b506103c2611854565b604080516020600480358082013583810280860185019096528085526102e295369593946024949385019291829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a99890198929750908201955093508392508501908490808284375094975050933594506118639350505050565b34801561071357600080fd5b506103c2611b62565b34801561072857600080fd5b50610313611b71565b34801561073d57600080fd5b506104e1611b85565b34801561075257600080fd5b506040805160206004803580820135838102808601850190965280855261063395369593946024949385019291829185019084908082843750949750611b8b9650505050505050565b3480156107a757600080fd5b50610429600160a060020a0360043581169060243516604435611be1565b3480156107d157600080fd5b506040805160206004602480358281013584810280870186019097528086526102e296843596369660449591949091019291829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750949750611d869650505050505050565b34801561086457600080fd5b506102e2611eba565b34801561087957600080fd5b50610633600435602435611ef3565b34801561089457600080fd5b50610396611f0d565b3480156108a957600080fd5b506103c2611f12565b6102e2600435611f21565b3480156108c957600080fd5b506102e261242e565b3480156108de57600080fd5b506103c2600435612487565b3480156108f657600080fd5b50610396610d4b565b34801561090b57600080fd5b506103c26124af565b34801561092057600080fd5b506103c26124be565b34801561093557600080fd5b506102e26124cd565b34801561094a57600080fd5b5061034d600160a060020a03600435166125c2565b34801561096b57600080fd5b50610633600160a060020a0360043516612608565b34801561098c57600080fd5b50610633600160a060020a0360043516612619565b610633600160a060020a036004358116906024358116906044359060643581169060843516612642565b3480156109d757600080fd5b506102e263ffffffff60043516612895565b3480156109f557600080fd5b506102e2600160a060020a036004351661298a565b348015610a1657600080fd5b506103c2612a27565b610a27612a36565b60038054911515740100000000000000000000000000000000000000000274ff000000000000000000000000000000000000000019909216919091179055565b60095463ffffffff1681565b6000806000806000610a836147f3565b50505050600160a060020a03929092166000908152600860209081526040808320815160a081018352815480825260019092015463ffffffff811694820185905260ff64010000000082048116151594830194909452650100000000008104841615156060830152660100000000000090049092161515608090920182905295919450919250829190565b6000805160206148a183398151915260005260086020527f353c2eb9e53a4a4a6d45d72082ff2e9dc829d1125618772a83eb0e7f86632c43546601000000000000900460ff1690565b6000600782815481101515610b6857fe5b600091825260209091200154600160a060020a031692915050565b600081610b8f81612a86565b5050600160a060020a031660009081526008602052604090206001015463ffffffff1690565b600080610bc3858585611be1565b91509150935093915050565b610bd7612a36565b610be081611378565b50565b600030600160a060020a0316600560009054906101000a9004600160a060020a0316600160a060020a0316638da5cb5b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610c4257600080fd5b505af1158015610c56573d6000803e3d6000fd5b505050506040513d6020811015610c6c57600080fd5b5051600160a060020a031614905090565b60035474010000000000000000000000000000000000000000900460ff1681565b610ca6612a36565b610cae61242e565b565b610cb8612a36565b600554604080517f5e35359e000000000000000000000000000000000000000000000000000000008152600160a060020a03868116600483015285811660248301526044820185905291519190921691635e35359e91606480830192600092919082900301818387803b158015610d2e57600080fd5b505af1158015610d42573d6000803e3d6000fd5b50505050505050565b600190565b600060606000610d5e612af3565b600260045560008411610dbb576040805160e560020a62461bcd02815260206004820152600f60248201527f4552525f5a45524f5f414d4f554e540000000000000000000000000000000000604482015290519081900360640190fd5b600560009054906101000a9004600160a060020a0316600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610e0e57600080fd5b505af1158015610e22573d6000803e3d6000fd5b505050506040513d6020811015610e3857600080fd5b5051600554604080517fa24835d1000000000000000000000000000000000000000000000000000000008152336004820152602481018890529051929550600160a060020a039091169163a24835d19160448082019260009290919082900301818387803b158015610ea957600080fd5b505af1158015610ebd573d6000803e3d6000fd5b50505050600780549050604051908082528060200260200182016040528015610ef0578160200160208202803883390190505b509150600090505b8151811015610f235760018282815181101515610f1157fe5b60209081029091010152600101610ef8565b610f896007805480602002602001604051908101604052809291908181526020018280548015610f7c57602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311610f5e575b5050505050838587612b4d565b505060016004555050565b60008054600160a060020a0316331480610fc9575060035474010000000000000000000000000000000000000000900460ff16155b151561100d576040805160e560020a62461bcd02815260206004820152601160248201526000805160206148e1833981519152604482015290519081900360640190fd5b6110367f436f6e7472616374526567697374727900000000000000000000000000000000612e12565b600254909150600160a060020a0380831691161480159061105f5750600160a060020a03811615155b15156110b5576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e56414c49445f5245474953545259000000000000000000000000604482015290519081900360640190fd5b604080517fbb34534c0000000000000000000000000000000000000000000000000000000081527f436f6e747261637452656769737472790000000000000000000000000000000060048201529051600091600160a060020a0384169163bb34534c9160248082019260209290919082900301818787803b15801561113957600080fd5b505af115801561114d573d6000803e3d6000fd5b505050506040513d602081101561116357600080fd5b5051600160a060020a031614156111c4576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e56414c49445f5245474953545259000000000000000000000000604482015290519081900360640190fd5b6002805460038054600160a060020a0380841673ffffffffffffffffffffffffffffffffffffffff19928316179092559091169216919091179055565b611209612a36565b8061121381612eaa565b506006805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b602081565b60095468010000000000000000900463ffffffff1681565b600061126a612af3565b6002600455611277612a36565b61128e600080516020614881833981519152612e12565b600160a060020a0385166000908152600860205260409020600101549091506601000000000000900460ff1615806112cb57506112c9610be3565b155b806112e35750600054600160a060020a038281169116145b1515611327576040805160e560020a62461bcd02815260206004820152601160248201526000805160206148e1833981519152604482015290519081900360640190fd5b611332848484612f0b565b600160a060020a0384166000908152600860205260409020600101546601000000000000900460ff1615610f8957610f8984612f3c565b600354600160a060020a031681565b611380612a36565b60008051602061488183398151915261139881613031565b600554604080517ff2fde38b000000000000000000000000000000000000000000000000000000008152600160a060020a0385811660048301529151919092169163f2fde38b91602480830192600092919082900301818387803b1580156113ff57600080fd5b505af1158015611413573d6000803e3d6000fd5b505050505050565b6000611425612af3565b6002600455611432612a36565b6000805160206148a183398151915261144a81612a86565b611461600080516020614881833981519152612e12565b915061146b610be3565b15806114845750600054600160a060020a038381169116145b15156114c8576040805160e560020a62461bcd02815260206004820152601160248201526000805160206148e1833981519152604482015290519081900360640190fd5b604051600160a060020a03841690303180156108fc02916000818181858888f193505050501580156114fe573d6000803e3d6000fd5b506115166000805160206148a1833981519152612f3c565b5050600160045550565b600061152a612a36565b611532613087565b8261153c816130e4565b8361154681612eaa565b8361155081613144565b600554600160a060020a038781169116148015906115945750600160a060020a0386166000908152600860205260409020600101546601000000000000900460ff16155b15156115d8576040805160e560020a62461bcd0281526020600482015260136024820152600080516020614841833981519152604482015290519081900360640190fd5b60095463ffffffff908116620f42400381169086161115611643576040805160e560020a62461bcd02815260206004820152601a60248201527f4552525f494e56414c49445f524553455256455f574549474854000000000000604482015290519081900360640190fd5b61ffff61164e611b85565b61ffff16106116a7576040805160e560020a62461bcd02815260206004820152601960248201527f4552525f494e56414c49445f524553455256455f434f554e5400000000000000604482015290519081900360640190fd5b505050600160a060020a0390921660008181526008602052604081208181556001908101805466ff0000000000001963ffffffff80881663ffffffff1993841617919091166601000000000000179092556007805493840181559093527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688909101805473ffffffffffffffffffffffffffffffffffffffff191690931790925560098054808416909401909216921691909117905550565b600080825b600081111561177d5760019190910190600a9004611764565b5092915050565b600061178e611b85565b905090565b600154600160a060020a031633146117e3576040805160e560020a62461bcd02815260206004820152601160248201526000805160206148e1833981519152604482015290519081900360640190fd5b60015460008054604051600160a060020a0393841693909116917f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91a3600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b600254600160a060020a031681565b6000806000611870612af3565b600260045561187d6131b9565b611888868686613217565b600092505b85518310156119465785516000805160206148a1833981519152908790859081106118b457fe5b90602001906020020151600160a060020a0316141561193b573485848151811015156118dc57fe5b602090810290910101511461193b576040805160e560020a62461bcd02815260206004820152601760248201527f4552525f4554485f414d4f554e545f4d49534d41544348000000000000000000604482015290519081900360640190fd5b60019092019161188d565b60003411156119eb576000805160206148a183398151915260005260086020527f353c2eb9e53a4a4a6d45d72082ff2e9dc829d1125618772a83eb0e7f86632c43546601000000000000900460ff1615156119eb576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f4e4f5f4554485f524553455256450000000000000000000000000000604482015290519081900360640190fd5b600560009054906101000a9004600160a060020a0316600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015611a3e57600080fd5b505af1158015611a52573d6000803e3d6000fd5b505050506040513d6020811015611a6857600080fd5b50519150611a778686846134d3565b905083811015611ad1576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f52455455524e5f544f4f5f4c4f570000000000000000000000000000604482015290519081900360640190fd5b600554604080517f867904b4000000000000000000000000000000000000000000000000000000008152336004820152602481018490529051600160a060020a039092169163867904b49160448082019260009290919082900301818387803b158015611b3d57600080fd5b505af1158015611b51573d6000803e3d6000fd5b505060016004555050505050505050565b600054600160a060020a031681565b600954640100000000900463ffffffff1681565b60075490565b80516000908190815b81811015611bc857611bbc8582815181101515611bad57fe5b9060200190602002015161175f565b90920191600101611b94565b6001611bd48484611ef3565b03600a0a95945050505050565b600080600080611bef6131b9565b86611bf981612a86565b86611c0381612a86565b600160a060020a038981169089161415611c67576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f53414d455f534f555243455f54415247455400000000000000000000604482015290519081900360640190fd5b611c7e6000805160206148c1833981519152612e12565b600160a060020a03166394491fab611c958b612619565b600160a060020a038c1660009081526008602052604090206001015463ffffffff16611cc08c612619565b600160a060020a038d16600090815260086020908152604080832060010154815163ffffffff89811660e060020a028252600482019890985295871660248701526044860194909452949092166064840152608483018d9052925160a48084019492939192918390030190829087803b158015611d3c57600080fd5b505af1158015611d50573d6000803e3d6000fd5b505050506040513d6020811015611d6657600080fd5b50519350611d7384613502565b9384900399939850929650505050505050565b6000611d90612af3565b6002600455611d9d6131b9565b611da8838386613217565b600560009054906101000a9004600160a060020a0316600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015611dfb57600080fd5b505af1158015611e0f573d6000803e3d6000fd5b505050506040513d6020811015611e2557600080fd5b5051600554604080517fa24835d1000000000000000000000000000000000000000000000000000000008152336004820152602481018890529051929350600160a060020a039091169163a24835d19160448082019260009290919082900301818387803b158015611e9657600080fd5b505af1158015611eaa573d6000803e3d6000fd5b50505050610f8983838387612b4d565b611ec2612a36565b6003546002805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055565b600081600281048401811515611f0557fe5b049392505050565b600181565b600654600160a060020a031681565b600080600080600080600080600080611f38612af3565b6002600455611f4561353e565b6000805160206148a1833981519152600052600860205260008051602061486183398151915254611f7c903463ffffffff61358016565b6000805160206148a183398151915260009081526008602090815260008051602061486183398151915292909255600554604080517f18160ddd0000000000000000000000000000000000000000000000000000000081529051600160a060020a03909216936318160ddd9360048084019492938390030190829087803b15801561200657600080fd5b505af115801561201a573d6000803e3d6000fd5b505050506040513d602081101561203057600080fd5b5051995061204b6000805160206148c1833981519152612e12565b6007549099509750600096505b8787101561239857600780548890811061206e57fe5b9060005260206000200160009054906101000a9004600160a060020a031695506008600087600160a060020a0316600160a060020a0316815260200190815260200160002060000154945088600160a060020a031663ebbb21588b87600960009054906101000a900463ffffffff168f6040518563ffffffff1660e060020a028152600401808581526020018481526020018363ffffffff1663ffffffff168152602001828152602001945050505050602060405180830381600087803b15801561213857600080fd5b505af115801561214c573d6000803e3d6000fd5b505050506040513d602081101561216257600080fd5b50519350600160a060020a0386166000805160206148a183398151915214156122c457833411156121c25760405133903486900380156108fc02916000818181858888f193505050501580156121bc573d6000803e3d6000fd5b506122bf565b833410156122bf573415612220576040805160e560020a62461bcd02815260206004820152601560248201527f4552525f494e56414c49445f4554485f56414c55450000000000000000000000604482015290519081900360640190fd5b600954612248906c010000000000000000000000009004600160a060020a03163330876135e0565b6009600c9054906101000a9004600160a060020a0316600160a060020a0316632e1a7d4d856040518263ffffffff1660e060020a02815260040180828152602001915050600060405180830381600087803b1580156122a657600080fd5b505af11580156122ba573d6000803e3d6000fd5b505050505b6122d0565b6122d0863330876135e0565b6122e0858563ffffffff6136c816565b600160a060020a0387166000908152600860205260409020819055925061230d8a8c63ffffffff6136c816565b60408051868152602081018690528082018390529051919350600160a060020a0388169133917f4a1a2a6176e9646d9e3157f7c2ab3c499f18337c0b0828cfb28e0a61de4a11f7919081900360600190a350600160a060020a03851660009081526008602052604090206001015463ffffffff1661238d82878584613725565b600190960195612058565b600554604080517f867904b4000000000000000000000000000000000000000000000000000000008152336004820152602481018e90529051600160a060020a039092169163867904b49160448082019260009290919082900301818387803b15801561240457600080fd5b505af1158015612418573d6000803e3d6000fd5b5050600160045550505050505050505050505050565b612436612a36565b61243e613794565b600554600190600160a060020a0316612455610d4b565b61ffff167f6b08c2e2c9969e55a647a764db9b554d64dc42f1a704da11a6d5b129ad163f2c60405160405180910390a4565b600780548290811061249557fe5b600091825260209091200154600160a060020a0316905081565b600554600160a060020a031681565b600154600160a060020a031681565b60006124d7612a36565b6124ee600080516020614881833981519152612e12565b600554909150600090600160a060020a0316612508610d4b565b61ffff167f6b08c2e2c9969e55a647a764db9b554d64dc42f1a704da11a6d5b129ad163f2c60405160405180910390a46125418161298a565b604080517f90f58c96000000000000000000000000000000000000000000000000000000008152602060048201529051600160a060020a038316916390f58c9691602480830192600092919082900301818387803b1580156125a257600080fd5b505af11580156125b6573d6000803e3d6000fd5b50505050610be0611793565b6008602052600090815260409020805460019091015463ffffffff81169060ff640100000000820481169165010000000000810482169166010000000000009091041685565b600061261382612619565b92915050565b60008161262581612a86565b5050600160a060020a031660009081526008602052604090205490565b600061264c612af3565b60026004557f536f7672796e537761704e6574776f726b00000000000000000000000000000061267b81613031565b600160a060020a0387811690871614156126df576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f53414d455f534f555243455f54415247455400000000000000000000604482015290519081900360640190fd5b600654600160a060020a031615806128225750600654604080517f3af32abf000000000000000000000000000000000000000000000000000000008152600160a060020a03878116600483015291519190921691633af32abf9160248083019260209291908290030181600087803b15801561275a57600080fd5b505af115801561276e573d6000803e3d6000fd5b505050506040513d602081101561278457600080fd5b505180156128225750600654604080517f3af32abf000000000000000000000000000000000000000000000000000000008152600160a060020a03868116600483015291519190921691633af32abf9160248083019260209291908290030181600087803b1580156127f557600080fd5b505af1158015612809573d6000803e3d6000fd5b505050506040513d602081101561281f57600080fd5b50515b1515612878576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f4e4f545f57484954454c495354454400000000000000000000000000604482015290519081900360640190fd5b61288587878787876137ff565b6001600455979650505050505050565b61289d612a36565b60095463ffffffff64010000000090910481169082161115612909576040805160e560020a62461bcd02815260206004820152601a60248201527f4552525f494e56414c49445f434f4e56455253494f4e5f464545000000000000604482015290519081900360640190fd5b6009546040805163ffffffff6801000000000000000090930483168152918316602083015280517f81cd2ffb37dd237c0e4e2a3de5265fcf9deb43d3e7801e80db9f1ccfba7ee6009281900390910190a16009805463ffffffff90921668010000000000000000026bffffffff000000000000000019909216919091179055565b612992612a36565b600054600160a060020a03828116911614156129f8576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f53414d455f4f574e4552000000000000000000000000000000000000604482015290519081900360640190fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600554600160a060020a031690565b600054600160a060020a03163314610cae576040805160e560020a62461bcd02815260206004820152601160248201526000805160206148e1833981519152604482015290519081900360640190fd5b600160a060020a0381166000908152600860205260409020600101546601000000000000900460ff161515610be0576040805160e560020a62461bcd0281526020600482015260136024820152600080516020614841833981519152604482015290519081900360640190fd5b600454600114610cae576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f5245454e5452414e4359000000000000000000000000000000000000604482015290519081900360640190fd5b600080600080600080600080612b6161353e565b612b786000805160206148c1833981519152612e12565b9750612b8a8a8a63ffffffff61358016565b9650600095505b8b51861015612e04578b86815181101515612ba857fe5b9060200190602002015194506008600086600160a060020a0316600160a060020a0316815260200190815260200160002060000154935087600160a060020a0316638074590a8b86600960009054906101000a900463ffffffff168d6040518563ffffffff1660e060020a028152600401808581526020018481526020018363ffffffff1663ffffffff168152602001828152602001945050505050602060405180830381600087803b158015612c5e57600080fd5b505af1158015612c72573d6000803e3d6000fd5b505050506040513d6020811015612c8857600080fd5b50518b519093508b9087908110612c9b57fe5b60209081029091010151831015612cfc576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f5a45524f5f5441524745545f414d4f554e5400000000000000000000604482015290519081900360640190fd5b612d0c848463ffffffff61358016565b600160a060020a03861660008181526008602052604090208290559092506000805160206148a18339815191521415612d7257604051339084156108fc029085906000818181858888f19350505050158015612d6c573d6000803e3d6000fd5b50612d7d565b612d7d853385613ad2565b60408051848152602081018490528082018990529051600160a060020a0387169133917fbc7d19d505c7ec4db83f3b51f19fb98c4c8a99922e7839d1ee608dfbee29501b9181900360600190a350600160a060020a03841660009081526008602052604090206001015463ffffffff16612df987868484613725565b600190950194612b91565b505050505050505050505050565b600254604080517fbb34534c000000000000000000000000000000000000000000000000000000008152600481018490529051600092600160a060020a03169163bb34534c91602480830192602092919082900301818787803b158015612e7857600080fd5b505af1158015612e8c573d6000803e3d6000fd5b505050506040513d6020811015612ea257600080fd5b505192915050565b600160a060020a038116301415610be0576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f414444524553535f49535f53454c4600000000000000000000000000604482015290519081900360640190fd5b612f13612a36565b82612f1d816130e4565b82612f27816130e4565b83612f3181612eaa565b611413868686613ad2565b80612f4681612a86565b600160a060020a0382166000805160206148a18339815191521415612f8657600160a060020a03821660009081526008602052604090203031905561302d565b604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a038416916370a082319160248083019260209291908290030181600087803b158015612fe757600080fd5b505af1158015612ffb573d6000803e3d6000fd5b505050506040513d602081101561301157600080fd5b5051600160a060020a0383166000908152600860205260409020555b5050565b61303a81612e12565b600160a060020a03163314610be0576040805160e560020a62461bcd02815260206004820152601160248201526000805160206148e1833981519152604482015290519081900360640190fd5b61308f610be3565b15610cae576040805160e560020a62461bcd02815260206004820152600a60248201527f4552525f41435449564500000000000000000000000000000000000000000000604482015290519081900360640190fd5b600160a060020a0381161515610be0576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b60008163ffffffff161180156131635750620f424063ffffffff821611155b1515610be0576040805160e560020a62461bcd02815260206004820152601a60248201527f4552525f494e56414c49445f524553455256455f574549474854000000000000604482015290519081900360640190fd5b6131c1610be3565b1515610cae576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f494e4143544956450000000000000000000000000000000000000000604482015290519081900360640190fd5b600754835160009182918114613265576040805160e560020a62461bcd0281526020600482015260136024820152600080516020614841833981519152604482015290519081900360640190fd5b845181146132bd576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f494e56414c49445f414d4f554e540000000000000000000000000000604482015290519081900360640190fd5b600092505b8083101561347b576008600087858151811015156132dc57fe5b6020908102909101810151600160a060020a031682528101919091526040016000206001015460ff6601000000000000909104161515613354576040805160e560020a62461bcd0281526020600482015260136024820152600080516020614841833981519152604482015290519081900360640190fd5b600091505b808210156133bc57858281518110151561336f57fe5b90602001906020020151600160a060020a031660078481548110151561339157fe5b600091825260209091200154600160a060020a031614156133b1576133bc565b600190910190613359565b808210613401576040805160e560020a62461bcd0281526020600482015260136024820152600080516020614841833981519152604482015290519081900360640190fd5b6000858481518110151561341157fe5b6020908102909101015111613470576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f494e56414c49445f414d4f554e540000000000000000000000000000604482015290519081900360640190fd5b6001909201916132c2565b60008411611413576040805160e560020a62461bcd02815260206004820152600f60248201527f4552525f5a45524f5f414d4f554e540000000000000000000000000000000000604482015290519081900360640190fd5b60008115156134ed576134e68484613b89565b90506134fb565b6134f8848484613d90565b90505b9392505050565b60095460009061261390620f42409061353290859068010000000000000000900463ffffffff9081169061415016565b9063ffffffff6141c916565b60075460005b8181101561302d5761357860078281548110151561355e57fe5b600091825260209091200154600160a060020a0316612f3c565b600101613544565b6000818310156135da576040805160e560020a62461bcd02815260206004820152600d60248201527f4552525f554e444552464c4f5700000000000000000000000000000000000000604482015290519081900360640190fd5b50900390565b604080517f7472616e7366657246726f6d28616464726573732c616464726573732c75696e81527f74323536290000000000000000000000000000000000000000000000000000006020808301919091528251918290036025018220600160a060020a038088166024850152861660448401526064808401869052845180850390910181526084909301909352810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19909316929092179091526136c2908590614237565b50505050565b6000828201838110156134fb576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b600554600160a060020a0380851691167f77f29993cf2c084e726f7e802da0719d6a0ade3e204badc7a3ffd57ecb768c2461376385620f4240614150565b6137768863ffffffff8088169061415016565b6040805192835260208301919091528051918290030190a350505050565b600161379e611b85565b61ffff16116137f7576040805160e560020a62461bcd02815260206004820152601960248201527f4552525f494e56414c49445f524553455256455f434f554e5400000000000000604482015290519081900360640190fd5b610cae6142c5565b600080600080613810898989611be1565b909350915082151561386c576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f5a45524f5f5441524745545f414d4f554e5400000000000000000000604482015290519081900360640190fd5b61387588612619565b905080831061388057fe5b600160a060020a0389166000805160206148a183398151915214156138fb573487146138f6576040805160e560020a62461bcd02815260206004820152601760248201527f4552525f4554485f414d4f554e545f4d49534d41544348000000000000000000604482015290519081900360640190fd5b613a03565b341580156139ad5750866139aa6139118b612619565b604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a038e16916370a082319160248083019260209291908290030181600087803b15801561397257600080fd5b505af1158015613986573d6000803e3d6000fd5b505050506040513d602081101561399c57600080fd5b50519063ffffffff61358016565b10155b1515613a03576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f494e56414c49445f414d4f554e540000000000000000000000000000604482015290519081900360640190fd5b613a0c89612f3c565b600160a060020a038816600090815260086020526040902054613a35908463ffffffff61358016565b600160a060020a0389166000818152600860205260409020919091556000805160206148a18339815191521415613aa257604051600160a060020a0386169084156108fc029085906000818181858888f19350505050158015613a9c573d6000803e3d6000fd5b50613aad565b613aad888685613ad2565b613abb8989888a87876143a3565b613ac58989614428565b5090979650505050505050565b604080517f7472616e7366657228616464726573732c75696e74323536290000000000000081528151908190036019018120600160a060020a038516602483015260448083018590528351808403909101815260649092019092526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1990931692909217909152613b84908490614237565b505050565b600080600080613b9885611b8b565b9250600091505b8551821015613d865785516000805160206148a183398151915290879084908110613bc657fe5b60209081029091010151600160a060020a031614613c1857613c188683815181101515613bef57fe5b9060200190602002015133308886815181101515613c0957fe5b906020019060200201516135e0565b8482815181101515613c2657fe5b90602001906020020151600860008885815181101515613c4257fe5b6020908102909101810151600160a060020a03168252810191909152604001600020558551869083908110613c7357fe5b90602001906020020151600160a060020a031633600160a060020a03167f4a1a2a6176e9646d9e3157f7c2ab3c499f18337c0b0828cfb28e0a61de4a11f78785815181101515613cbf57fe5b906020019060200201518886815181101515613cd757fe5b60209081029091018101516040805193845291830152818101889052519081900360600190a3600860008784815181101515613d0f57fe5b6020908102909101810151600160a060020a0316825281019190915260400160002060010154865163ffffffff9091169150613d7b908490889085908110613d5357fe5b906020019060200201518785815181101515613d6b57fe5b9060200190602002015184613725565b600190910190613b9f565b5090949350505050565b600080600080600080600080600080613da761353e565b6000805160206148a1833981519152600052600860205260008051602061486183398151915254613dde903463ffffffff61358016565b6000805160206148a1833981519152600052600860205260008051602061486183398151915255613e1c6000805160206148c1833981519152612e12565b9850613e2a898c8f8f614636565b9750613e3c8b8963ffffffff6136c816565b9650600095505b8c5186101561413f578c86815181101515613e5a57fe5b9060200190602002015194506008600086600160a060020a0316600160a060020a0316815260200190815260200160002060000154935088600160a060020a031663ebbb21588c86600960009054906101000a900463ffffffff168c6040518563ffffffff1660e060020a028152600401808581526020018481526020018363ffffffff1663ffffffff168152602001828152602001945050505050602060405180830381600087803b158015613f1057600080fd5b505af1158015613f24573d6000803e3d6000fd5b505050506040513d6020811015613f3a57600080fd5b5051925060008311613f96576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f5a45524f5f5441524745545f414d4f554e5400000000000000000000604482015290519081900360640190fd5b8b86815181101515613fa457fe5b60209081029091010151831115613fb757fe5b600160a060020a0385166000805160206148a183398151915214613fe657613fe1853330866135e0565b614059565b828c87815181101515613ff557fe5b9060200190602002015111156140595733600160a060020a03166108fc848e8981518110151561402157fe5b90602001906020020151039081150290604051600060405180830381858888f19350505050158015614057573d6000803e3d6000fd5b505b614069848463ffffffff6136c816565b600160a060020a03861660008181526008602090815260409182902084905581518781529081018490528082018b90529051929450909133917f4a1a2a6176e9646d9e3157f7c2ab3c499f18337c0b0828cfb28e0a61de4a11f7919081900360600190a3600860008e888151811015156140df57fe5b6020908102909101810151600160a060020a03168252810191909152604001600020600101548d5163ffffffff90911691506141349088908f908990811061412357fe5b906020019060200201518484613725565b600190950194613e43565b50959b9a5050505050505050505050565b600080831515614163576000915061177d565b5082820282848281151561417357fe5b04146134fb576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b600080808311614223576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f4449564944455f42595f5a45524f0000000000000000000000000000604482015290519081900360640190fd5b828481151561422e57fe5b04949350505050565b61423f614821565b602060405190810160405280600181525090506020818351602085016000875af180151561426c57600080fd5b5080511515613b84576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f5452414e534645525f4641494c454400000000000000000000000000604482015290519081900360640190fd5b6142cd612a36565b60006142d7611b85565b61ffff1611614330576040805160e560020a62461bcd02815260206004820152601960248201527f4552525f494e56414c49445f524553455256455f434f554e5400000000000000604482015290519081900360640190fd5b600560009054906101000a9004600160a060020a0316600160a060020a03166379ba50976040518163ffffffff1660e060020a028152600401600060405180830381600087803b15801561438357600080fd5b505af1158015614397573d6000803e3d6000fd5b50505050610cae61353e565b7f800000000000000000000000000000000000000000000000000000000000000081106143cc57fe5b60408051848152602081018490528082018390529051600160a060020a038087169288821692918a16917f276856b36cbc45526a0ba64f44611557a2a8b68662c5388e9fe6d72e86e1c8cb9181900360600190a4505050505050565b6000806000806000806000600560009054906101000a9004600160a060020a0316600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561448657600080fd5b505af115801561449a573d6000803e3d6000fd5b505050506040513d60208110156144b057600080fd5b505196506144bd89612619565b95506144c888612619565b600160a060020a03808b16600090815260086020526040808220600190810154938d1683529120015491965063ffffffff90811695509081169350614511908690869061415016565b91506145268663ffffffff8086169061415016565b60408051848152602081018390528151929350600160a060020a03808c1693908d16927f77f29993cf2c084e726f7e802da0719d6a0ade3e204badc7a3ffd57ecb768c24928290030190a361457d878a8887613725565b61458987898786613725565b604080518881526020810188905263ffffffff8616818301529051600160a060020a038b16917f8a6a7f53b3c8fa1dc4b83e3f1be668c1b251ff8d44cdcb83eb3acec3fec6a788919081900360600190a2604080518881526020810187905263ffffffff8516818301529051600160a060020a038a16917f8a6a7f53b3c8fa1dc4b83e3f1be668c1b251ff8d44cdcb83eb3acec3fec6a788919081900360600190a2505050505050505050565b60008060015b84518110156146f9576146a160086000878481518110151561465a57fe5b6020908102909101810151600160a060020a0316825281019190915260400160002054855186908590811061468b57fe5b602090810290910101519063ffffffff61415016565b6146e76008600088868151811015156146b657fe5b6020908102909101810151600160a060020a0316825281019190915260400160002054865187908590811061468b57fe5b10156146f1578091505b60010161463c565b86600160a060020a0316632f55bdb58760086000898781518110151561471b57fe5b6020908102909101810151600160a060020a0316825281019190915260400160002054600954885163ffffffff9091169089908890811061475857fe5b906020019060200201516040518563ffffffff1660e060020a028152600401808581526020018481526020018363ffffffff1663ffffffff168152602001828152602001945050505050602060405180830381600087803b1580156147bc57600080fd5b505af11580156147d0573d6000803e3d6000fd5b505050506040513d60208110156147e657600080fd5b5051979650505050505050565b6040805160a08101825260008082526020820181905291810182905260608101829052608081019190915290565b602060405190810160405280600190602082028038833950919291505056004552525f494e56414c49445f5245534552564500000000000000000000000000353c2eb9e53a4a4a6d45d72082ff2e9dc829d1125618772a83eb0e7f86632c42536f7672796e53776170436f6e76657274657255706772616465720000000000000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee536f7672796e53776170466f726d756c610000000000000000000000000000004552525f4143434553535f44454e494544000000000000000000000000000000a165627a7a72305820324b4364d6a1792677c2fd82e313b62b9cc957d58949fe9823a7cc610a1a0c050029a165627a7a723058202b00ad8ff8cddb595e46d416fc24da468de123d56b62cf0dc1be99de9699a9e50029", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x4B JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x11413958 DUP2 EQ PUSH2 0x50 JUMPI DUP1 PUSH4 0x3E8FF43F EQ PUSH2 0xB6 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x8D PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH4 0xFFFFFFFF PUSH1 0x44 CALLDATALOAD AND PUSH2 0xE2 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xC2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xCB PUSH2 0x1D5 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0xFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP1 DUP5 DUP5 DUP5 PUSH2 0xF0 PUSH2 0x1DA JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP4 DUP5 AND DUP2 MSTORE SWAP2 SWAP1 SWAP3 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH4 0xFFFFFFFF SWAP1 SWAP2 AND PUSH1 0x40 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 PUSH1 0x0 CREATE DUP1 ISZERO DUP1 ISZERO PUSH2 0x142 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH32 0xF2FDE38B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD SWAP2 SWAP3 POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND SWAP2 PUSH4 0xF2FDE38B SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1B4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1C8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP SWAP3 SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x4B65 DUP1 PUSH2 0x1EB DUP4 CODECOPY ADD SWAP1 JUMP STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x1 PUSH1 0x4 SSTORE PUSH32 0xC0829421C1D260BD3CB3E0F06CFE2D52DB2CE315000000000000000000000000 PUSH1 0x9 SSTORE CALLVALUE DUP1 ISZERO PUSH3 0x3A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH1 0x60 DUP1 PUSH3 0x4B65 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 SWAP1 DUP2 MSTORE DUP2 MLOAD PUSH1 0x20 DUP4 ADD MLOAD SWAP2 SWAP1 SWAP3 ADD MLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND CALLER OR SWAP1 SSTORE DUP3 DUP3 DUP3 DUP3 DUP3 DUP3 DUP2 DUP1 PUSH3 0x88 DUP2 PUSH5 0x100000000 PUSH3 0x135 DUP2 MUL DIV JUMP JUMPDEST POP PUSH1 0x2 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT SWAP3 DUP4 AND DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x3 DUP1 SLOAD SWAP1 SWAP3 AND OR SWAP1 SSTORE DUP3 PUSH3 0xC8 DUP2 PUSH5 0x100000000 PUSH3 0x135 DUP2 MUL DIV JUMP JUMPDEST DUP2 PUSH3 0xDD DUP2 PUSH5 0x100000000 PUSH3 0x1B0 DUP2 MUL DIV JUMP JUMPDEST POP POP PUSH1 0x5 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP5 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 OR SWAP1 SWAP3 SSTORE POP PUSH1 0x9 DUP1 SLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP3 AND PUSH5 0x100000000 MUL PUSH8 0xFFFFFFFF00000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE POP PUSH3 0x229 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH3 0x1AD JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH3 0xF4240 PUSH4 0xFFFFFFFF DUP3 AND GT ISZERO PUSH3 0x1AD JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F434F4E56455253494F4E5F464545000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x492C DUP1 PUSH3 0x239 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x258 JUMPI PUSH4 0xFFFFFFFF PUSH1 0xE0 PUSH1 0x2 EXP PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x24C7EC7 DUP2 EQ PUSH2 0x2E4 JUMPI DUP1 PUSH4 0xC7D5CD8 EQ PUSH2 0x2FE JUMPI DUP1 PUSH4 0xE53AAE9 EQ PUSH2 0x32C JUMPI DUP1 PUSH4 0x12C2ACA4 EQ PUSH2 0x381 JUMPI DUP1 PUSH4 0x19B64015 EQ PUSH2 0x3AA JUMPI DUP1 PUSH4 0x1CFAB290 EQ PUSH2 0x3DE JUMPI DUP1 PUSH4 0x1E1401F8 EQ PUSH2 0x3FF JUMPI DUP1 PUSH4 0x21E6B53D EQ PUSH2 0x442 JUMPI DUP1 PUSH4 0x22F3E2D4 EQ PUSH2 0x463 JUMPI DUP1 PUSH4 0x2FE8A6AD EQ PUSH2 0x478 JUMPI DUP1 PUSH4 0x38A5E016 EQ PUSH2 0x48D JUMPI DUP1 PUSH4 0x395900D4 EQ PUSH2 0x4A2 JUMPI DUP1 PUSH4 0x3E8FF43F EQ PUSH2 0x4CC JUMPI DUP1 PUSH4 0x415F1240 EQ PUSH2 0x4F8 JUMPI DUP1 PUSH4 0x49D10B64 EQ PUSH2 0x510 JUMPI DUP1 PUSH4 0x4AF80F0E EQ PUSH2 0x525 JUMPI DUP1 PUSH4 0x54FD4D50 EQ PUSH2 0x546 JUMPI DUP1 PUSH4 0x579CD3CA EQ PUSH2 0x55B JUMPI DUP1 PUSH4 0x5E35359E EQ PUSH2 0x570 JUMPI DUP1 PUSH4 0x61CD756E EQ PUSH2 0x59A JUMPI DUP1 PUSH4 0x67B6D57C EQ PUSH2 0x5AF JUMPI DUP1 PUSH4 0x690D8320 EQ PUSH2 0x5D0 JUMPI DUP1 PUSH4 0x6A49D2C4 EQ PUSH2 0x5F1 JUMPI DUP1 PUSH4 0x6AA5332C EQ PUSH2 0x61B JUMPI DUP1 PUSH4 0x71F52BF3 EQ PUSH2 0x645 JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x65A JUMPI DUP1 PUSH4 0x7B103999 EQ PUSH2 0x66F JUMPI DUP1 PUSH4 0x7D8916BD EQ PUSH2 0x684 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x707 JUMPI DUP1 PUSH4 0x94C275AD EQ PUSH2 0x71C JUMPI DUP1 PUSH4 0x9B99A8E2 EQ PUSH2 0x731 JUMPI DUP1 PUSH4 0xA60E7724 EQ PUSH2 0x746 JUMPI DUP1 PUSH4 0xAF94B8D8 EQ PUSH2 0x79B JUMPI DUP1 PUSH4 0xB127C0A5 EQ PUSH2 0x7C5 JUMPI DUP1 PUSH4 0xB4A176D3 EQ PUSH2 0x858 JUMPI DUP1 PUSH4 0xBBB7E5D8 EQ PUSH2 0x86D JUMPI DUP1 PUSH4 0xBF754558 EQ PUSH2 0x888 JUMPI DUP1 PUSH4 0xC45D3D92 EQ PUSH2 0x89D JUMPI DUP1 PUSH4 0xCA1D209D EQ PUSH2 0x8B2 JUMPI DUP1 PUSH4 0xCDC91C69 EQ PUSH2 0x8BD JUMPI DUP1 PUSH4 0xD031370B EQ PUSH2 0x8D2 JUMPI DUP1 PUSH4 0xD260529C EQ PUSH2 0x8EA JUMPI DUP1 PUSH4 0xD3FB73B4 EQ PUSH2 0x8FF JUMPI DUP1 PUSH4 0xD4EE1D90 EQ PUSH2 0x914 JUMPI DUP1 PUSH4 0xD55EC697 EQ PUSH2 0x929 JUMPI DUP1 PUSH4 0xD66BD524 EQ PUSH2 0x93E JUMPI DUP1 PUSH4 0xD8959512 EQ PUSH2 0x95F JUMPI DUP1 PUSH4 0xDC8DE379 EQ PUSH2 0x980 JUMPI DUP1 PUSH4 0xE8DC12FF EQ PUSH2 0x9A1 JUMPI DUP1 PUSH4 0xECBCA55D EQ PUSH2 0x9CB JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x9E9 JUMPI DUP1 PUSH4 0xFC0C546A EQ PUSH2 0xA0A JUMPI JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x0 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH32 0x353C2EB9E53A4A4A6D45D72082FF2E9DC829D1125618772A83EB0E7F86632C43 SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO PUSH2 0x2E2 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4841 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2F0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E2 PUSH1 0x4 CALLDATALOAD ISZERO ISZERO PUSH2 0xA1F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x30A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x313 PUSH2 0xA67 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x338 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x34D PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0xA73 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP6 DUP7 MSTORE PUSH4 0xFFFFFFFF SWAP1 SWAP5 AND PUSH1 0x20 DUP7 ADD MSTORE SWAP2 ISZERO ISZERO DUP5 DUP5 ADD MSTORE ISZERO ISZERO PUSH1 0x60 DUP5 ADD MSTORE ISZERO ISZERO PUSH1 0x80 DUP4 ADD MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0xA0 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x38D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x396 PUSH2 0xB0E JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3B6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3C2 PUSH1 0x4 CALLDATALOAD PUSH2 0xB57 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x313 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0xB83 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x40B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x429 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0xBB5 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x44E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0xBCF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x46F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x396 PUSH2 0xBE3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x484 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x396 PUSH2 0xC7D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x499 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E2 PUSH2 0xC9E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4AE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0xCB0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4D8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4E1 PUSH2 0xD4B JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0xFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x504 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E2 PUSH1 0x4 CALLDATALOAD PUSH2 0xD50 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x51C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E2 PUSH2 0xF94 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x531 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x1201 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x552 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4E1 PUSH2 0x1243 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x567 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x313 PUSH2 0x1248 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x57C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x1260 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5A6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3C2 PUSH2 0x1369 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5BB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x1378 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5DC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x141B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5FD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH4 0xFFFFFFFF PUSH1 0x24 CALLDATALOAD AND PUSH2 0x1520 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x627 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x633 PUSH1 0x4 CALLDATALOAD PUSH2 0x175F JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x651 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4E1 PUSH2 0x1784 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x666 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E2 PUSH2 0x1793 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x67B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3C2 PUSH2 0x1854 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x2E2 SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP POP PUSH1 0x40 DUP1 MLOAD DUP8 CALLDATALOAD DUP10 ADD DUP1 CALLDATALOAD PUSH1 0x20 DUP2 DUP2 MUL DUP5 DUP2 ADD DUP3 ADD SWAP1 SWAP6 MSTORE DUP2 DUP5 MSTORE SWAP9 SWAP12 SWAP11 SWAP10 DUP10 ADD SWAP9 SWAP3 SWAP8 POP SWAP1 DUP3 ADD SWAP6 POP SWAP4 POP DUP4 SWAP3 POP DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP POP SWAP4 CALLDATALOAD SWAP5 POP PUSH2 0x1863 SWAP4 POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x713 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3C2 PUSH2 0x1B62 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x728 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x313 PUSH2 0x1B71 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x73D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4E1 PUSH2 0x1B85 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x752 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x633 SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP PUSH2 0x1B8B SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7A7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x429 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x1BE1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7D1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 PUSH1 0x24 DUP1 CALLDATALOAD DUP3 DUP2 ADD CALLDATALOAD DUP5 DUP2 MUL DUP1 DUP8 ADD DUP7 ADD SWAP1 SWAP8 MSTORE DUP1 DUP7 MSTORE PUSH2 0x2E2 SWAP7 DUP5 CALLDATALOAD SWAP7 CALLDATASIZE SWAP7 PUSH1 0x44 SWAP6 SWAP2 SWAP5 SWAP1 SWAP2 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP POP PUSH1 0x40 DUP1 MLOAD DUP8 CALLDATALOAD DUP10 ADD DUP1 CALLDATALOAD PUSH1 0x20 DUP2 DUP2 MUL DUP5 DUP2 ADD DUP3 ADD SWAP1 SWAP6 MSTORE DUP2 DUP5 MSTORE SWAP9 SWAP12 SWAP11 SWAP10 DUP10 ADD SWAP9 SWAP3 SWAP8 POP SWAP1 DUP3 ADD SWAP6 POP SWAP4 POP DUP4 SWAP3 POP DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP PUSH2 0x1D86 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x864 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E2 PUSH2 0x1EBA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x879 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x633 PUSH1 0x4 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH2 0x1EF3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x894 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x396 PUSH2 0x1F0D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8A9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3C2 PUSH2 0x1F12 JUMP JUMPDEST PUSH2 0x2E2 PUSH1 0x4 CALLDATALOAD PUSH2 0x1F21 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8C9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E2 PUSH2 0x242E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8DE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3C2 PUSH1 0x4 CALLDATALOAD PUSH2 0x2487 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8F6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x396 PUSH2 0xD4B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x90B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3C2 PUSH2 0x24AF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x920 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3C2 PUSH2 0x24BE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x935 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E2 PUSH2 0x24CD JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x94A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x34D PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x25C2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x96B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x633 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x2608 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x98C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x633 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x2619 JUMP JUMPDEST PUSH2 0x633 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x44 CALLDATALOAD SWAP1 PUSH1 0x64 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x84 CALLDATALOAD AND PUSH2 0x2642 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9D7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E2 PUSH4 0xFFFFFFFF PUSH1 0x4 CALLDATALOAD AND PUSH2 0x2895 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x298A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA16 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3C2 PUSH2 0x2A27 JUMP JUMPDEST PUSH2 0xA27 PUSH2 0x2A36 JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD SWAP2 ISZERO ISZERO PUSH21 0x10000000000000000000000000000000000000000 MUL PUSH21 0xFF0000000000000000000000000000000000000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH4 0xFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0xA83 PUSH2 0x47F3 JUMP JUMPDEST POP POP POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP2 MLOAD PUSH1 0xA0 DUP2 ADD DUP4 MSTORE DUP2 SLOAD DUP1 DUP3 MSTORE PUSH1 0x1 SWAP1 SWAP3 ADD SLOAD PUSH4 0xFFFFFFFF DUP2 AND SWAP5 DUP3 ADD DUP6 SWAP1 MSTORE PUSH1 0xFF PUSH5 0x100000000 DUP3 DIV DUP2 AND ISZERO ISZERO SWAP5 DUP4 ADD SWAP5 SWAP1 SWAP5 MSTORE PUSH6 0x10000000000 DUP2 DIV DUP5 AND ISZERO ISZERO PUSH1 0x60 DUP4 ADD MSTORE PUSH7 0x1000000000000 SWAP1 DIV SWAP1 SWAP3 AND ISZERO ISZERO PUSH1 0x80 SWAP1 SWAP3 ADD DUP3 SWAP1 MSTORE SWAP6 SWAP2 SWAP5 POP SWAP2 SWAP3 POP DUP3 SWAP2 SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x0 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH32 0x353C2EB9E53A4A4A6D45D72082FF2E9DC829D1125618772A83EB0E7F86632C43 SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x7 DUP3 DUP2 SLOAD DUP2 LT ISZERO ISZERO PUSH2 0xB68 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0xB8F DUP2 PUSH2 0x2A86 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH4 0xFFFFFFFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xBC3 DUP6 DUP6 DUP6 PUSH2 0x1BE1 JUMP JUMPDEST SWAP2 POP SWAP2 POP SWAP4 POP SWAP4 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xBD7 PUSH2 0x2A36 JUMP JUMPDEST PUSH2 0xBE0 DUP2 PUSH2 0x1378 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 ADDRESS PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x8DA5CB5B PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC42 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xC56 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xC6C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH2 0xCA6 PUSH2 0x2A36 JUMP JUMPDEST PUSH2 0xCAE PUSH2 0x242E JUMP JUMPDEST JUMP JUMPDEST PUSH2 0xCB8 PUSH2 0x2A36 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x5E35359E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP6 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP3 ADD DUP6 SWAP1 MSTORE SWAP2 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP2 PUSH4 0x5E35359E SWAP2 PUSH1 0x64 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xD2E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xD42 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 PUSH1 0x0 PUSH2 0xD5E PUSH2 0x2AF3 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH1 0x0 DUP5 GT PUSH2 0xDBB JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xF PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5A45524F5F414D4F554E540000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x18160DDD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xE0E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xE22 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xE38 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xA24835D100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP9 SWAP1 MSTORE SWAP1 MLOAD SWAP3 SWAP6 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP2 AND SWAP2 PUSH4 0xA24835D1 SWAP2 PUSH1 0x44 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xEA9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xEBD JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x7 DUP1 SLOAD SWAP1 POP PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0xEF0 JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CODESIZE DUP4 CODECOPY ADD SWAP1 POP JUMPDEST POP SWAP2 POP PUSH1 0x0 SWAP1 POP JUMPDEST DUP2 MLOAD DUP2 LT ISZERO PUSH2 0xF23 JUMPI PUSH1 0x1 DUP3 DUP3 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xF11 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MSTORE PUSH1 0x1 ADD PUSH2 0xEF8 JUMP JUMPDEST PUSH2 0xF89 PUSH1 0x7 DUP1 SLOAD DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD DUP1 ISZERO PUSH2 0xF7C JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xF5E JUMPI JUMPDEST POP POP POP POP POP DUP4 DUP6 DUP8 PUSH2 0x2B4D JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0x4 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ DUP1 PUSH2 0xFC9 JUMPI POP PUSH1 0x3 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x100D JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48E1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x1036 PUSH32 0x436F6E7472616374526567697374727900000000000000000000000000000000 PUSH2 0x2E12 JUMP JUMPDEST PUSH1 0x2 SLOAD SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP4 AND SWAP2 AND EQ DUP1 ISZERO SWAP1 PUSH2 0x105F JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x10B5 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245474953545259000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0xBB34534C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH32 0x436F6E7472616374526567697374727900000000000000000000000000000000 PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP2 PUSH4 0xBB34534C SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1139 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x114D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1163 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ ISZERO PUSH2 0x11C4 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245474953545259000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP5 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP3 DUP4 AND OR SWAP1 SWAP3 SSTORE SWAP1 SWAP2 AND SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x1209 PUSH2 0x2A36 JUMP JUMPDEST DUP1 PUSH2 0x1213 DUP2 PUSH2 0x2EAA JUMP JUMPDEST POP PUSH1 0x6 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x20 DUP2 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH9 0x10000000000000000 SWAP1 DIV PUSH4 0xFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x126A PUSH2 0x2AF3 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH2 0x1277 PUSH2 0x2A36 JUMP JUMPDEST PUSH2 0x128E PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4881 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x2E12 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD SWAP1 SWAP2 POP PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 PUSH2 0x12CB JUMPI POP PUSH2 0x12C9 PUSH2 0xBE3 JUMP JUMPDEST ISZERO JUMPDEST DUP1 PUSH2 0x12E3 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ JUMPDEST ISZERO ISZERO PUSH2 0x1327 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48E1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x1332 DUP5 DUP5 DUP5 PUSH2 0x2F0B JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0xF89 JUMPI PUSH2 0xF89 DUP5 PUSH2 0x2F3C JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH2 0x1380 PUSH2 0x2A36 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4881 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x1398 DUP2 PUSH2 0x3031 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xF2FDE38B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP2 PUSH4 0xF2FDE38B SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x13FF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1413 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1425 PUSH2 0x2AF3 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH2 0x1432 PUSH2 0x2A36 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x144A DUP2 PUSH2 0x2A86 JUMP JUMPDEST PUSH2 0x1461 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4881 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x2E12 JUMP JUMPDEST SWAP2 POP PUSH2 0x146B PUSH2 0xBE3 JUMP JUMPDEST ISZERO DUP1 PUSH2 0x1484 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 DUP2 AND SWAP2 AND EQ JUMPDEST ISZERO ISZERO PUSH2 0x14C8 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48E1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP1 ADDRESS BALANCE DUP1 ISZERO PUSH2 0x8FC MUL SWAP2 PUSH1 0x0 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x14FE JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH2 0x1516 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x2F3C JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0x4 SSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x152A PUSH2 0x2A36 JUMP JUMPDEST PUSH2 0x1532 PUSH2 0x3087 JUMP JUMPDEST DUP3 PUSH2 0x153C DUP2 PUSH2 0x30E4 JUMP JUMPDEST DUP4 PUSH2 0x1546 DUP2 PUSH2 0x2EAA JUMP JUMPDEST DUP4 PUSH2 0x1550 DUP2 PUSH2 0x3144 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 DUP2 AND SWAP2 AND EQ DUP1 ISZERO SWAP1 PUSH2 0x1594 JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x15D8 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4841 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x9 SLOAD PUSH4 0xFFFFFFFF SWAP1 DUP2 AND PUSH3 0xF4240 SUB DUP2 AND SWAP1 DUP7 AND GT ISZERO PUSH2 0x1643 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F574549474854000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0xFFFF PUSH2 0x164E PUSH2 0x1B85 JUMP JUMPDEST PUSH2 0xFFFF AND LT PUSH2 0x16A7 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F434F554E5400000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP2 DUP2 SSTORE PUSH1 0x1 SWAP1 DUP2 ADD DUP1 SLOAD PUSH7 0xFF000000000000 NOT PUSH4 0xFFFFFFFF DUP1 DUP9 AND PUSH4 0xFFFFFFFF NOT SWAP4 DUP5 AND OR SWAP2 SWAP1 SWAP2 AND PUSH7 0x1000000000000 OR SWAP1 SWAP3 SSTORE PUSH1 0x7 DUP1 SLOAD SWAP4 DUP5 ADD DUP2 SSTORE SWAP1 SWAP4 MSTORE PUSH32 0xA66CC928B5EDB82AF9BD49922954155AB7B0942694BEA4CE44661D9A8736C688 SWAP1 SWAP2 ADD DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 SWAP4 OR SWAP1 SWAP3 SSTORE PUSH1 0x9 DUP1 SLOAD DUP1 DUP5 AND SWAP1 SWAP5 ADD SWAP1 SWAP3 AND SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 JUMPDEST PUSH1 0x0 DUP2 GT ISZERO PUSH2 0x177D JUMPI PUSH1 0x1 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0xA SWAP1 DIV PUSH2 0x1764 JUMP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x178E PUSH2 0x1B85 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x17E3 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48E1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND SWAP4 SWAP1 SWAP2 AND SWAP2 PUSH32 0x343765429AEA5A34B3FF6A3785A98A5ABB2597ACA87BFBB58632C173D585373A SWAP2 LOG3 PUSH1 0x1 DUP1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND OR SWAP1 SWAP2 SSTORE AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x1870 PUSH2 0x2AF3 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH2 0x187D PUSH2 0x31B9 JUMP JUMPDEST PUSH2 0x1888 DUP7 DUP7 DUP7 PUSH2 0x3217 JUMP JUMPDEST PUSH1 0x0 SWAP3 POP JUMPDEST DUP6 MLOAD DUP4 LT ISZERO PUSH2 0x1946 JUMPI DUP6 MLOAD PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP1 DUP8 SWAP1 DUP6 SWAP1 DUP2 LT PUSH2 0x18B4 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ ISZERO PUSH2 0x193B JUMPI CALLVALUE DUP6 DUP5 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x18DC JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MLOAD EQ PUSH2 0x193B JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4554485F414D4F554E545F4D49534D41544348000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 PUSH2 0x188D JUMP JUMPDEST PUSH1 0x0 CALLVALUE GT ISZERO PUSH2 0x19EB JUMPI PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x0 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH32 0x353C2EB9E53A4A4A6D45D72082FF2E9DC829D1125618772A83EB0E7F86632C43 SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO PUSH2 0x19EB JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4E4F5F4554485F524553455256450000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x18160DDD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1A3E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1A52 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1A68 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 POP PUSH2 0x1A77 DUP7 DUP7 DUP5 PUSH2 0x34D3 JUMP JUMPDEST SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0x1AD1 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F52455455524E5F544F4F5F4C4F570000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x867904B400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP2 PUSH4 0x867904B4 SWAP2 PUSH1 0x44 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1B3D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1B51 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x1 PUSH1 0x4 SSTORE POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH5 0x100000000 SWAP1 DIV PUSH4 0xFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x7 SLOAD SWAP1 JUMP JUMPDEST DUP1 MLOAD PUSH1 0x0 SWAP1 DUP2 SWAP1 DUP2 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1BC8 JUMPI PUSH2 0x1BBC DUP6 DUP3 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x1BAD JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH2 0x175F JUMP JUMPDEST SWAP1 SWAP3 ADD SWAP2 PUSH1 0x1 ADD PUSH2 0x1B94 JUMP JUMPDEST PUSH1 0x1 PUSH2 0x1BD4 DUP5 DUP5 PUSH2 0x1EF3 JUMP JUMPDEST SUB PUSH1 0xA EXP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x1BEF PUSH2 0x31B9 JUMP JUMPDEST DUP7 PUSH2 0x1BF9 DUP2 PUSH2 0x2A86 JUMP JUMPDEST DUP7 PUSH2 0x1C03 DUP2 PUSH2 0x2A86 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP10 DUP2 AND SWAP1 DUP10 AND EQ ISZERO PUSH2 0x1C67 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F534F555243455F54415247455400000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x1C7E PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48C1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x2E12 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x94491FAB PUSH2 0x1C95 DUP12 PUSH2 0x2619 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP13 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH4 0xFFFFFFFF AND PUSH2 0x1CC0 DUP13 PUSH2 0x2619 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP14 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 ADD SLOAD DUP2 MLOAD PUSH4 0xFFFFFFFF DUP10 DUP2 AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP3 MSTORE PUSH1 0x4 DUP3 ADD SWAP9 SWAP1 SWAP9 MSTORE SWAP6 DUP8 AND PUSH1 0x24 DUP8 ADD MSTORE PUSH1 0x44 DUP7 ADD SWAP5 SWAP1 SWAP5 MSTORE SWAP5 SWAP1 SWAP3 AND PUSH1 0x64 DUP5 ADD MSTORE PUSH1 0x84 DUP4 ADD DUP14 SWAP1 MSTORE SWAP3 MLOAD PUSH1 0xA4 DUP1 DUP5 ADD SWAP5 SWAP3 SWAP4 SWAP2 SWAP3 SWAP2 DUP4 SWAP1 SUB ADD SWAP1 DUP3 SWAP1 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1D3C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1D50 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1D66 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP4 POP PUSH2 0x1D73 DUP5 PUSH2 0x3502 JUMP JUMPDEST SWAP4 DUP5 SWAP1 SUB SWAP10 SWAP4 SWAP9 POP SWAP3 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1D90 PUSH2 0x2AF3 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH2 0x1D9D PUSH2 0x31B9 JUMP JUMPDEST PUSH2 0x1DA8 DUP4 DUP4 DUP7 PUSH2 0x3217 JUMP JUMPDEST PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x18160DDD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1DFB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1E0F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1E25 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xA24835D100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP9 SWAP1 MSTORE SWAP1 MLOAD SWAP3 SWAP4 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP2 AND SWAP2 PUSH4 0xA24835D1 SWAP2 PUSH1 0x44 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1E96 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1EAA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0xF89 DUP4 DUP4 DUP4 DUP8 PUSH2 0x2B4D JUMP JUMPDEST PUSH2 0x1EC2 PUSH2 0x2A36 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x2 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x2 DUP2 DIV DUP5 ADD DUP2 ISZERO ISZERO PUSH2 0x1F05 JUMPI INVALID JUMPDEST DIV SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x1 DUP2 JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x1F38 PUSH2 0x2AF3 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH2 0x1F45 PUSH2 0x353E JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x0 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4861 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SLOAD PUSH2 0x1F7C SWAP1 CALLVALUE PUSH4 0xFFFFFFFF PUSH2 0x3580 AND JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4861 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP3 SWAP1 SWAP3 SSTORE PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x18160DDD00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP4 PUSH4 0x18160DDD SWAP4 PUSH1 0x4 DUP1 DUP5 ADD SWAP5 SWAP3 SWAP4 DUP4 SWAP1 SUB ADD SWAP1 DUP3 SWAP1 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2006 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x201A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2030 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP10 POP PUSH2 0x204B PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48C1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x2E12 JUMP JUMPDEST PUSH1 0x7 SLOAD SWAP1 SWAP10 POP SWAP8 POP PUSH1 0x0 SWAP7 POP JUMPDEST DUP8 DUP8 LT ISZERO PUSH2 0x2398 JUMPI PUSH1 0x7 DUP1 SLOAD DUP9 SWAP1 DUP2 LT PUSH2 0x206E JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP6 POP PUSH1 0x8 PUSH1 0x0 DUP8 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD SWAP5 POP DUP9 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xEBBB2158 DUP12 DUP8 PUSH1 0x9 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH4 0xFFFFFFFF AND DUP16 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH4 0xFFFFFFFF AND PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP5 POP POP POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2138 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x214C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2162 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP4 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ ISZERO PUSH2 0x22C4 JUMPI DUP4 CALLVALUE GT ISZERO PUSH2 0x21C2 JUMPI PUSH1 0x40 MLOAD CALLER SWAP1 CALLVALUE DUP7 SWAP1 SUB DUP1 ISZERO PUSH2 0x8FC MUL SWAP2 PUSH1 0x0 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x21BC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH2 0x22BF JUMP JUMPDEST DUP4 CALLVALUE LT ISZERO PUSH2 0x22BF JUMPI CALLVALUE ISZERO PUSH2 0x2220 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4554485F56414C55450000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x9 SLOAD PUSH2 0x2248 SWAP1 PUSH13 0x1000000000000000000000000 SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER ADDRESS DUP8 PUSH2 0x35E0 JUMP JUMPDEST PUSH1 0x9 PUSH1 0xC SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x2E1A7D4D DUP6 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x22A6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x22BA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMPDEST PUSH2 0x22D0 JUMP JUMPDEST PUSH2 0x22D0 DUP7 CALLER ADDRESS DUP8 PUSH2 0x35E0 JUMP JUMPDEST PUSH2 0x22E0 DUP6 DUP6 PUSH4 0xFFFFFFFF PUSH2 0x36C8 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP2 SWAP1 SSTORE SWAP3 POP PUSH2 0x230D DUP11 DUP13 PUSH4 0xFFFFFFFF PUSH2 0x36C8 AND JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP7 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP7 SWAP1 MSTORE DUP1 DUP3 ADD DUP4 SWAP1 MSTORE SWAP1 MLOAD SWAP2 SWAP4 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 AND SWAP2 CALLER SWAP2 PUSH32 0x4A1A2A6176E9646D9E3157F7C2AB3C499F18337C0B0828CFB28E0A61DE4A11F7 SWAP2 SWAP1 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG3 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH4 0xFFFFFFFF AND PUSH2 0x238D DUP3 DUP8 DUP6 DUP5 PUSH2 0x3725 JUMP JUMPDEST PUSH1 0x1 SWAP1 SWAP7 ADD SWAP6 PUSH2 0x2058 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x867904B400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP15 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP2 PUSH4 0x867904B4 SWAP2 PUSH1 0x44 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2404 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2418 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x1 PUSH1 0x4 SSTORE POP POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x2436 PUSH2 0x2A36 JUMP JUMPDEST PUSH2 0x243E PUSH2 0x3794 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x2455 PUSH2 0xD4B JUMP JUMPDEST PUSH2 0xFFFF AND PUSH32 0x6B08C2E2C9969E55A647A764DB9B554D64DC42F1A704DA11A6D5B129AD163F2C PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 JUMP JUMPDEST PUSH1 0x7 DUP1 SLOAD DUP3 SWAP1 DUP2 LT PUSH2 0x2495 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP1 POP DUP2 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x24D7 PUSH2 0x2A36 JUMP JUMPDEST PUSH2 0x24EE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4881 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x2E12 JUMP JUMPDEST PUSH1 0x5 SLOAD SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x2508 PUSH2 0xD4B JUMP JUMPDEST PUSH2 0xFFFF AND PUSH32 0x6B08C2E2C9969E55A647A764DB9B554D64DC42F1A704DA11A6D5B129AD163F2C PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH2 0x2541 DUP2 PUSH2 0x298A JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x90F58C9600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 AND SWAP2 PUSH4 0x90F58C96 SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x25A2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x25B6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0xBE0 PUSH2 0x1793 JUMP JUMPDEST PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD PUSH4 0xFFFFFFFF DUP2 AND SWAP1 PUSH1 0xFF PUSH5 0x100000000 DUP3 DIV DUP2 AND SWAP2 PUSH6 0x10000000000 DUP2 DIV DUP3 AND SWAP2 PUSH7 0x1000000000000 SWAP1 SWAP2 DIV AND DUP6 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2613 DUP3 PUSH2 0x2619 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0x2625 DUP2 PUSH2 0x2A86 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x264C PUSH2 0x2AF3 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH32 0x536F7672796E537761704E6574776F726B000000000000000000000000000000 PUSH2 0x267B DUP2 PUSH2 0x3031 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 DUP2 AND SWAP1 DUP8 AND EQ ISZERO PUSH2 0x26DF JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F534F555243455F54415247455400000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND ISZERO DUP1 PUSH2 0x2822 JUMPI POP PUSH1 0x6 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x3AF32ABF00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP2 PUSH4 0x3AF32ABF SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x275A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x276E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2784 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD DUP1 ISZERO PUSH2 0x2822 JUMPI POP PUSH1 0x6 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x3AF32ABF00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP2 PUSH4 0x3AF32ABF SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x27F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2809 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x281F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD JUMPDEST ISZERO ISZERO PUSH2 0x2878 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4E4F545F57484954454C495354454400000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x2885 DUP8 DUP8 DUP8 DUP8 DUP8 PUSH2 0x37FF JUMP JUMPDEST PUSH1 0x1 PUSH1 0x4 SSTORE SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x289D PUSH2 0x2A36 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH4 0xFFFFFFFF PUSH5 0x100000000 SWAP1 SWAP2 DIV DUP2 AND SWAP1 DUP3 AND GT ISZERO PUSH2 0x2909 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F434F4E56455253494F4E5F464545000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH4 0xFFFFFFFF PUSH9 0x10000000000000000 SWAP1 SWAP4 DIV DUP4 AND DUP2 MSTORE SWAP2 DUP4 AND PUSH1 0x20 DUP4 ADD MSTORE DUP1 MLOAD PUSH32 0x81CD2FFB37DD237C0E4E2A3DE5265FCF9DEB43D3E7801E80DB9F1CCFBA7EE600 SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG1 PUSH1 0x9 DUP1 SLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP3 AND PUSH9 0x10000000000000000 MUL PUSH12 0xFFFFFFFF0000000000000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x2992 PUSH2 0x2A36 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x29F8 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F4F574E4552000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0xCAE JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48E1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO PUSH2 0xBE0 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4841 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x4 SLOAD PUSH1 0x1 EQ PUSH2 0xCAE JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5245454E5452414E4359000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x2B61 PUSH2 0x353E JUMP JUMPDEST PUSH2 0x2B78 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48C1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x2E12 JUMP JUMPDEST SWAP8 POP PUSH2 0x2B8A DUP11 DUP11 PUSH4 0xFFFFFFFF PUSH2 0x3580 AND JUMP JUMPDEST SWAP7 POP PUSH1 0x0 SWAP6 POP JUMPDEST DUP12 MLOAD DUP7 LT ISZERO PUSH2 0x2E04 JUMPI DUP12 DUP7 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x2BA8 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD SWAP5 POP PUSH1 0x8 PUSH1 0x0 DUP7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD SWAP4 POP DUP8 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x8074590A DUP12 DUP7 PUSH1 0x9 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH4 0xFFFFFFFF AND DUP14 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH4 0xFFFFFFFF AND PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP5 POP POP POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2C5E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2C72 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2C88 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD DUP12 MLOAD SWAP1 SWAP4 POP DUP12 SWAP1 DUP8 SWAP1 DUP2 LT PUSH2 0x2C9B JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MLOAD DUP4 LT ISZERO PUSH2 0x2CFC JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5A45524F5F5441524745545F414D4F554E5400000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x2D0C DUP5 DUP5 PUSH4 0xFFFFFFFF PUSH2 0x3580 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP3 SWAP1 SSTORE SWAP1 SWAP3 POP PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ ISZERO PUSH2 0x2D72 JUMPI PUSH1 0x40 MLOAD CALLER SWAP1 DUP5 ISZERO PUSH2 0x8FC MUL SWAP1 DUP6 SWAP1 PUSH1 0x0 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x2D6C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH2 0x2D7D JUMP JUMPDEST PUSH2 0x2D7D DUP6 CALLER DUP6 PUSH2 0x3AD2 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP5 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 SWAP1 MSTORE DUP1 DUP3 ADD DUP10 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND SWAP2 CALLER SWAP2 PUSH32 0xBC7D19D505C7EC4DB83F3B51F19FB98C4C8A99922E7839D1EE608DFBEE29501B SWAP2 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG3 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH4 0xFFFFFFFF AND PUSH2 0x2DF9 DUP8 DUP7 DUP5 DUP5 PUSH2 0x3725 JUMP JUMPDEST PUSH1 0x1 SWAP1 SWAP6 ADD SWAP5 PUSH2 0x2B91 JUMP JUMPDEST POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xBB34534C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP2 PUSH4 0xBB34534C SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2E78 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2E8C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2EA2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ADDRESS EQ ISZERO PUSH2 0xBE0 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F414444524553535F49535F53454C4600000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x2F13 PUSH2 0x2A36 JUMP JUMPDEST DUP3 PUSH2 0x2F1D DUP2 PUSH2 0x30E4 JUMP JUMPDEST DUP3 PUSH2 0x2F27 DUP2 PUSH2 0x30E4 JUMP JUMPDEST DUP4 PUSH2 0x2F31 DUP2 PUSH2 0x2EAA JUMP JUMPDEST PUSH2 0x1413 DUP7 DUP7 DUP7 PUSH2 0x3AD2 JUMP JUMPDEST DUP1 PUSH2 0x2F46 DUP2 PUSH2 0x2A86 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 AND PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ ISZERO PUSH2 0x2F86 JUMPI PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 ADDRESS BALANCE SWAP1 SSTORE PUSH2 0x302D JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2FE7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2FFB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x3011 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x303A DUP2 PUSH2 0x2E12 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0xBE0 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48E1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x308F PUSH2 0xBE3 JUMP JUMPDEST ISZERO PUSH2 0xCAE JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xA PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F41435449564500000000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0xBE0 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 PUSH4 0xFFFFFFFF AND GT DUP1 ISZERO PUSH2 0x3163 JUMPI POP PUSH3 0xF4240 PUSH4 0xFFFFFFFF DUP3 AND GT ISZERO JUMPDEST ISZERO ISZERO PUSH2 0xBE0 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F574549474854000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x31C1 PUSH2 0xBE3 JUMP JUMPDEST ISZERO ISZERO PUSH2 0xCAE JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E4143544956450000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x7 SLOAD DUP4 MLOAD PUSH1 0x0 SWAP2 DUP3 SWAP2 DUP2 EQ PUSH2 0x3265 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4841 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP5 MLOAD DUP2 EQ PUSH2 0x32BD JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F414D4F554E540000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 SWAP3 POP JUMPDEST DUP1 DUP4 LT ISZERO PUSH2 0x347B JUMPI PUSH1 0x8 PUSH1 0x0 DUP8 DUP6 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x32DC JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP3 MSTORE DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH1 0xFF PUSH7 0x1000000000000 SWAP1 SWAP2 DIV AND ISZERO ISZERO PUSH2 0x3354 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4841 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 SWAP2 POP JUMPDEST DUP1 DUP3 LT ISZERO PUSH2 0x33BC JUMPI DUP6 DUP3 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x336F JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x7 DUP5 DUP2 SLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3391 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ ISZERO PUSH2 0x33B1 JUMPI PUSH2 0x33BC JUMP JUMPDEST PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x3359 JUMP JUMPDEST DUP1 DUP3 LT PUSH2 0x3401 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4841 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP6 DUP5 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3411 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MLOAD GT PUSH2 0x3470 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F414D4F554E540000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 PUSH2 0x32C2 JUMP JUMPDEST PUSH1 0x0 DUP5 GT PUSH2 0x1413 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xF PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5A45524F5F414D4F554E540000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO PUSH2 0x34ED JUMPI PUSH2 0x34E6 DUP5 DUP5 PUSH2 0x3B89 JUMP JUMPDEST SWAP1 POP PUSH2 0x34FB JUMP JUMPDEST PUSH2 0x34F8 DUP5 DUP5 DUP5 PUSH2 0x3D90 JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x0 SWAP1 PUSH2 0x2613 SWAP1 PUSH3 0xF4240 SWAP1 PUSH2 0x3532 SWAP1 DUP6 SWAP1 PUSH9 0x10000000000000000 SWAP1 DIV PUSH4 0xFFFFFFFF SWAP1 DUP2 AND SWAP1 PUSH2 0x4150 AND JUMP JUMPDEST SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x41C9 AND JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x302D JUMPI PUSH2 0x3578 PUSH1 0x7 DUP3 DUP2 SLOAD DUP2 LT ISZERO ISZERO PUSH2 0x355E JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x2F3C JUMP JUMPDEST PUSH1 0x1 ADD PUSH2 0x3544 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT ISZERO PUSH2 0x35DA JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F554E444552464C4F5700000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP SWAP1 SUB SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x7472616E7366657246726F6D28616464726573732C616464726573732C75696E DUP2 MSTORE PUSH32 0x7432353629000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP3 MLOAD SWAP2 DUP3 SWAP1 SUB PUSH1 0x25 ADD DUP3 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP9 AND PUSH1 0x24 DUP6 ADD MSTORE DUP7 AND PUSH1 0x44 DUP5 ADD MSTORE PUSH1 0x64 DUP1 DUP5 ADD DUP7 SWAP1 MSTORE DUP5 MLOAD DUP1 DUP6 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x84 SWAP1 SWAP4 ADD SWAP1 SWAP4 MSTORE DUP2 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE PUSH2 0x36C2 SWAP1 DUP6 SWAP1 PUSH2 0x4237 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 ADD DUP4 DUP2 LT ISZERO PUSH2 0x34FB JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP6 AND SWAP2 AND PUSH32 0x77F29993CF2C084E726F7E802DA0719D6A0ADE3E204BADC7A3FFD57ECB768C24 PUSH2 0x3763 DUP6 PUSH3 0xF4240 PUSH2 0x4150 JUMP JUMPDEST PUSH2 0x3776 DUP9 PUSH4 0xFFFFFFFF DUP1 DUP9 AND SWAP1 PUSH2 0x4150 AND JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB ADD SWAP1 LOG3 POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH2 0x379E PUSH2 0x1B85 JUMP JUMPDEST PUSH2 0xFFFF AND GT PUSH2 0x37F7 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F434F554E5400000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0xCAE PUSH2 0x42C5 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x3810 DUP10 DUP10 DUP10 PUSH2 0x1BE1 JUMP JUMPDEST SWAP1 SWAP4 POP SWAP2 POP DUP3 ISZERO ISZERO PUSH2 0x386C JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5A45524F5F5441524745545F414D4F554E5400000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x3875 DUP9 PUSH2 0x2619 JUMP JUMPDEST SWAP1 POP DUP1 DUP4 LT PUSH2 0x3880 JUMPI INVALID JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP10 AND PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ ISZERO PUSH2 0x38FB JUMPI CALLVALUE DUP8 EQ PUSH2 0x38F6 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4554485F414D4F554E545F4D49534D41544348000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x3A03 JUMP JUMPDEST CALLVALUE ISZERO DUP1 ISZERO PUSH2 0x39AD JUMPI POP DUP7 PUSH2 0x39AA PUSH2 0x3911 DUP12 PUSH2 0x2619 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP15 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3972 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3986 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x399C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x3580 AND JUMP JUMPDEST LT ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x3A03 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F414D4F554E540000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x3A0C DUP10 PUSH2 0x2F3C JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x3A35 SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0x3580 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP10 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ ISZERO PUSH2 0x3AA2 JUMPI PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND SWAP1 DUP5 ISZERO PUSH2 0x8FC MUL SWAP1 DUP6 SWAP1 PUSH1 0x0 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x3A9C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH2 0x3AAD JUMP JUMPDEST PUSH2 0x3AAD DUP9 DUP7 DUP6 PUSH2 0x3AD2 JUMP JUMPDEST PUSH2 0x3ABB DUP10 DUP10 DUP9 DUP11 DUP8 DUP8 PUSH2 0x43A3 JUMP JUMPDEST PUSH2 0x3AC5 DUP10 DUP10 PUSH2 0x4428 JUMP JUMPDEST POP SWAP1 SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x7472616E7366657228616464726573732C75696E743235362900000000000000 DUP2 MSTORE DUP2 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x19 ADD DUP2 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x64 SWAP1 SWAP3 ADD SWAP1 SWAP3 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE PUSH2 0x3B84 SWAP1 DUP5 SWAP1 PUSH2 0x4237 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x3B98 DUP6 PUSH2 0x1B8B JUMP JUMPDEST SWAP3 POP PUSH1 0x0 SWAP2 POP JUMPDEST DUP6 MLOAD DUP3 LT ISZERO PUSH2 0x3D86 JUMPI DUP6 MLOAD PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP1 DUP8 SWAP1 DUP5 SWAP1 DUP2 LT PUSH2 0x3BC6 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ PUSH2 0x3C18 JUMPI PUSH2 0x3C18 DUP7 DUP4 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3BEF JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD CALLER ADDRESS DUP9 DUP7 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3C09 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH2 0x35E0 JUMP JUMPDEST DUP5 DUP3 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3C26 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x8 PUSH1 0x0 DUP9 DUP6 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3C42 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP3 MSTORE DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 SSTORE DUP6 MLOAD DUP7 SWAP1 DUP4 SWAP1 DUP2 LT PUSH2 0x3C73 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH32 0x4A1A2A6176E9646D9E3157F7C2AB3C499F18337C0B0828CFB28E0A61DE4A11F7 DUP8 DUP6 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3CBF JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD DUP9 DUP7 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3CD7 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x40 DUP1 MLOAD SWAP4 DUP5 MSTORE SWAP2 DUP4 ADD MSTORE DUP2 DUP2 ADD DUP9 SWAP1 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG3 PUSH1 0x8 PUSH1 0x0 DUP8 DUP5 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3D0F JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP3 MSTORE DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD SLOAD DUP7 MLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP2 AND SWAP2 POP PUSH2 0x3D7B SWAP1 DUP5 SWAP1 DUP9 SWAP1 DUP6 SWAP1 DUP2 LT PUSH2 0x3D53 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD DUP8 DUP6 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3D6B JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD DUP5 PUSH2 0x3725 JUMP JUMPDEST PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x3B9F JUMP JUMPDEST POP SWAP1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x3DA7 PUSH2 0x353E JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x0 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4861 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SLOAD PUSH2 0x3DDE SWAP1 CALLVALUE PUSH4 0xFFFFFFFF PUSH2 0x3580 AND JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x0 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4861 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SSTORE PUSH2 0x3E1C PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48C1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x2E12 JUMP JUMPDEST SWAP9 POP PUSH2 0x3E2A DUP10 DUP13 DUP16 DUP16 PUSH2 0x4636 JUMP JUMPDEST SWAP8 POP PUSH2 0x3E3C DUP12 DUP10 PUSH4 0xFFFFFFFF PUSH2 0x36C8 AND JUMP JUMPDEST SWAP7 POP PUSH1 0x0 SWAP6 POP JUMPDEST DUP13 MLOAD DUP7 LT ISZERO PUSH2 0x413F JUMPI DUP13 DUP7 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3E5A JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD SWAP5 POP PUSH1 0x8 PUSH1 0x0 DUP7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD SWAP4 POP DUP9 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xEBBB2158 DUP13 DUP7 PUSH1 0x9 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH4 0xFFFFFFFF AND DUP13 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH4 0xFFFFFFFF AND PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP5 POP POP POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3F10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3F24 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x3F3A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP3 POP PUSH1 0x0 DUP4 GT PUSH2 0x3F96 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5A45524F5F5441524745545F414D4F554E5400000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP12 DUP7 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3FA4 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MLOAD DUP4 GT ISZERO PUSH2 0x3FB7 JUMPI INVALID JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ PUSH2 0x3FE6 JUMPI PUSH2 0x3FE1 DUP6 CALLER ADDRESS DUP7 PUSH2 0x35E0 JUMP JUMPDEST PUSH2 0x4059 JUMP JUMPDEST DUP3 DUP13 DUP8 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3FF5 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD GT ISZERO PUSH2 0x4059 JUMPI CALLER PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x8FC DUP5 DUP15 DUP10 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x4021 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD SUB SWAP1 DUP2 ISZERO MUL SWAP1 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x4057 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP JUMPDEST PUSH2 0x4069 DUP5 DUP5 PUSH4 0xFFFFFFFF PUSH2 0x36C8 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP5 SWAP1 SSTORE DUP2 MLOAD DUP8 DUP2 MSTORE SWAP1 DUP2 ADD DUP5 SWAP1 MSTORE DUP1 DUP3 ADD DUP12 SWAP1 MSTORE SWAP1 MLOAD SWAP3 SWAP5 POP SWAP1 SWAP2 CALLER SWAP2 PUSH32 0x4A1A2A6176E9646D9E3157F7C2AB3C499F18337C0B0828CFB28E0A61DE4A11F7 SWAP2 SWAP1 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG3 PUSH1 0x8 PUSH1 0x0 DUP15 DUP9 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x40DF JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP3 MSTORE DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD SLOAD DUP14 MLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP2 AND SWAP2 POP PUSH2 0x4134 SWAP1 DUP9 SWAP1 DUP16 SWAP1 DUP10 SWAP1 DUP2 LT PUSH2 0x4123 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD DUP5 DUP5 PUSH2 0x3725 JUMP JUMPDEST PUSH1 0x1 SWAP1 SWAP6 ADD SWAP5 PUSH2 0x3E43 JUMP JUMPDEST POP SWAP6 SWAP12 SWAP11 POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 ISZERO ISZERO PUSH2 0x4163 JUMPI PUSH1 0x0 SWAP2 POP PUSH2 0x177D JUMP JUMPDEST POP DUP3 DUP3 MUL DUP3 DUP5 DUP3 DUP2 ISZERO ISZERO PUSH2 0x4173 JUMPI INVALID JUMPDEST DIV EQ PUSH2 0x34FB JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP4 GT PUSH2 0x4223 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4449564944455F42595F5A45524F0000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP3 DUP5 DUP2 ISZERO ISZERO PUSH2 0x422E JUMPI INVALID JUMPDEST DIV SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0x423F PUSH2 0x4821 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE POP SWAP1 POP PUSH1 0x20 DUP2 DUP4 MLOAD PUSH1 0x20 DUP6 ADD PUSH1 0x0 DUP8 GAS CALL DUP1 ISZERO ISZERO PUSH2 0x426C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD ISZERO ISZERO PUSH2 0x3B84 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5452414E534645525F4641494C454400000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x42CD PUSH2 0x2A36 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x42D7 PUSH2 0x1B85 JUMP JUMPDEST PUSH2 0xFFFF AND GT PUSH2 0x4330 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F434F554E5400000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x79BA5097 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x4383 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x4397 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0xCAE PUSH2 0x353E JUMP JUMPDEST PUSH32 0x8000000000000000000000000000000000000000000000000000000000000000 DUP2 LT PUSH2 0x43CC JUMPI INVALID JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP5 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 SWAP1 MSTORE DUP1 DUP3 ADD DUP4 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP8 AND SWAP3 DUP9 DUP3 AND SWAP3 SWAP2 DUP11 AND SWAP2 PUSH32 0x276856B36CBC45526A0BA64F44611557A2A8B68662C5388E9FE6D72E86E1C8CB SWAP2 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG4 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x18160DDD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x4486 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x449A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x44B0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP7 POP PUSH2 0x44BD DUP10 PUSH2 0x2619 JUMP JUMPDEST SWAP6 POP PUSH2 0x44C8 DUP9 PUSH2 0x2619 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 PUSH1 0x1 SWAP1 DUP2 ADD SLOAD SWAP4 DUP14 AND DUP4 MSTORE SWAP2 KECCAK256 ADD SLOAD SWAP2 SWAP7 POP PUSH4 0xFFFFFFFF SWAP1 DUP2 AND SWAP6 POP SWAP1 DUP2 AND SWAP4 POP PUSH2 0x4511 SWAP1 DUP7 SWAP1 DUP7 SWAP1 PUSH2 0x4150 AND JUMP JUMPDEST SWAP2 POP PUSH2 0x4526 DUP7 PUSH4 0xFFFFFFFF DUP1 DUP7 AND SWAP1 PUSH2 0x4150 AND JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP5 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP4 SWAP1 MSTORE DUP2 MLOAD SWAP3 SWAP4 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP13 AND SWAP4 SWAP1 DUP14 AND SWAP3 PUSH32 0x77F29993CF2C084E726F7E802DA0719D6A0ADE3E204BADC7A3FFD57ECB768C24 SWAP3 DUP3 SWAP1 SUB ADD SWAP1 LOG3 PUSH2 0x457D DUP8 DUP11 DUP9 DUP8 PUSH2 0x3725 JUMP JUMPDEST PUSH2 0x4589 DUP8 DUP10 DUP8 DUP7 PUSH2 0x3725 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP9 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP9 SWAP1 MSTORE PUSH4 0xFFFFFFFF DUP7 AND DUP2 DUP4 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND SWAP2 PUSH32 0x8A6A7F53B3C8FA1DC4B83E3F1BE668C1B251FF8D44CDCB83EB3ACEC3FEC6A788 SWAP2 SWAP1 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG2 PUSH1 0x40 DUP1 MLOAD DUP9 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP8 SWAP1 MSTORE PUSH4 0xFFFFFFFF DUP6 AND DUP2 DUP4 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP11 AND SWAP2 PUSH32 0x8A6A7F53B3C8FA1DC4B83E3F1BE668C1B251FF8D44CDCB83EB3ACEC3FEC6A788 SWAP2 SWAP1 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG2 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x1 JUMPDEST DUP5 MLOAD DUP2 LT ISZERO PUSH2 0x46F9 JUMPI PUSH2 0x46A1 PUSH1 0x8 PUSH1 0x0 DUP8 DUP5 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x465A JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP3 MSTORE DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 SLOAD DUP6 MLOAD DUP7 SWAP1 DUP6 SWAP1 DUP2 LT PUSH2 0x468B JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MLOAD SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x4150 AND JUMP JUMPDEST PUSH2 0x46E7 PUSH1 0x8 PUSH1 0x0 DUP9 DUP7 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x46B6 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP3 MSTORE DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 SLOAD DUP7 MLOAD DUP8 SWAP1 DUP6 SWAP1 DUP2 LT PUSH2 0x468B JUMPI INVALID JUMPDEST LT ISZERO PUSH2 0x46F1 JUMPI DUP1 SWAP2 POP JUMPDEST PUSH1 0x1 ADD PUSH2 0x463C JUMP JUMPDEST DUP7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x2F55BDB5 DUP8 PUSH1 0x8 PUSH1 0x0 DUP10 DUP8 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x471B JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP3 MSTORE DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH1 0x9 SLOAD DUP9 MLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP2 AND SWAP1 DUP10 SWAP1 DUP9 SWAP1 DUP2 LT PUSH2 0x4758 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH4 0xFFFFFFFF AND PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP5 POP POP POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x47BC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x47D0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x47E6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xA0 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE SWAP2 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x60 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 SWAP1 PUSH1 0x20 DUP3 MUL DUP1 CODESIZE DUP4 CODECOPY POP SWAP2 SWAP3 SWAP2 POP POP JUMP STOP GASLIMIT MSTORE MSTORE 0x5f 0x49 0x4e JUMP COINBASE 0x4c 0x49 DIFFICULTY 0x5f MSTORE GASLIMIT MSTORE8 GASLIMIT MSTORE JUMP GASLIMIT STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP CALLDATALOAD EXTCODECOPY 0x2e 0xb9 0xe5 GASPRICE 0x4a 0x4a PUSH14 0x45D72082FF2E9DC829D112561877 0x2a DUP4 0xeb 0xe PUSH32 0x86632C42536F7672796E53776170436F6E766572746572557067726164657200 STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee MSTORE8 PUSH16 0x7672796E53776170466F726D756C6100 STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP GASLIMIT MSTORE MSTORE 0x5f COINBASE NUMBER NUMBER GASLIMIT MSTORE8 MSTORE8 0x5f DIFFICULTY GASLIMIT 0x4e 0x49 GASLIMIT DIFFICULTY STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 ORIGIN 0x4b NUMBER PUSH5 0xD6A1792677 0xc2 REVERT DUP3 0xe3 SGT 0xb6 0x2b SWAP13 0xc9 JUMPI 0xd5 DUP10 0x49 INVALID SWAP9 0x23 0xa7 0xcc PUSH2 0xA1A 0xc SDIV STOP 0x29 LOG1 PUSH6 0x627A7A723058 KECCAK256 0x2b STOP 0xad DUP16 0xf8 0xcd 0xdb MSIZE 0x5e 0x46 0xd4 AND 0xfc 0x24 0xda 0x46 DUP14 0xe1 0x23 0xd5 PUSH12 0x62CF0DC1BE99DE9699A9E500 0x29 ", - "sourceMap": "266:1032:24:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;962:333;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;962:333:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;470:81;;8:9:-1;5:2;;;30:1;27;20:12;5:2;470:81:24;;;;;;;;;;;;;;;;;;;;;;;962:333;1084:10;1107:20;1171:7;1181:9;1192:17;1130:80;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1130:80:24;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;1221:39:24;;;;;;1249:10;1221:39;;;;;;1107:103;;-1:-1:-1;1221:27:24;;;;;;:39;;;;;-1:-1:-1;;1221:39:24;;;;;;;;-1:-1:-1;1221:27:24;:39;;;5:2:-1;;;;30:1;27;20:12;5:2;1221:39:24;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;1278:9:24;;962:333;-1:-1:-1;;;;;;;962:333:24:o;470:81::-;542:1;470:81;:::o;266:1032::-;;;;;;;;;;:::o" - }, - "methodIdentifiers": { - "converterType()": "3e8ff43f", - "createConverter(address,address,uint32)": "11413958" - } - }, - "userdoc": { - "methods": {} - } - } - }, - "solidity/contracts/converter/types/liquidity-pool-v2/LiquidityPoolV2Converter.sol": { - "LiquidityPoolV2Converter": { - "abi": [ - { - "constant": true, - "inputs": [ - { - "name": "_reserveToken", - "type": "address" - } - ], - "name": "reserveStakedBalance", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_onlyOwnerCanUpdateRegistry", - "type": "bool" - } - ], - "name": "restrictRegistryUpdate", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "primaryReserveToken", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "maxStakedBalanceEnabled", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "reserveRatio", - "outputs": [ - { - "name": "", - "type": "uint32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_address", - "type": "address" - } - ], - "name": "connectors", - "outputs": [ - { - "name": "", - "type": "uint256" - }, - { - "name": "", - "type": "uint32" - }, - { - "name": "", - "type": "bool" - }, - { - "name": "", - "type": "bool" - }, - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_primaryReserveToken", - "type": "address" - }, - { - "name": "_primaryReserveOracle", - "type": "address" - }, - { - "name": "_secondaryReserveOracle", - "type": "address" - } - ], - "name": "activate", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "hasETHReserve", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "disableMaxStakedBalances", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_index", - "type": "uint256" - } - ], - "name": "connectorTokens", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_reserveToken", - "type": "address" - } - ], - "name": "reserveWeight", - "outputs": [ - { - "name": "", - "type": "uint32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_sourceToken", - "type": "address" - }, - { - "name": "_targetToken", - "type": "address" - }, - { - "name": "_amount", - "type": "uint256" - } - ], - "name": "getReturn", - "outputs": [ - { - "name": "", - "type": "uint256" - }, - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_newOwner", - "type": "address" - } - ], - "name": "transferTokenOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "isActive", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "priceOracle", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_reserveToken", - "type": "address" - } - ], - "name": "reserveAmplifiedBalance", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_poolToken", - "type": "address" - } - ], - "name": "liquidationLimit", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "onlyOwnerCanUpdateRegistry", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "acceptTokenOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_token", - "type": "address" - }, - { - "name": "_to", - "type": "address" - }, - { - "name": "_amount", - "type": "uint256" - } - ], - "name": "withdrawFromAnchor", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "converterType", - "outputs": [ - { - "name": "", - "type": "uint16" - } - ], - "payable": false, - "stateMutability": "pure", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_reserve1MaxStakedBalance", - "type": "uint256" - }, - { - "name": "_reserve2MaxStakedBalance", - "type": "uint256" - } - ], - "name": "setMaxStakedBalances", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "updateRegistry", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_whitelist", - "type": "address" - } - ], - "name": "setConversionWhitelist", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "version", - "outputs": [ - { - "name": "", - "type": "uint16" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_reserveToken", - "type": "address" - }, - { - "name": "_amount", - "type": "uint256" - }, - { - "name": "_minReturn", - "type": "uint256" - } - ], - "name": "addLiquidity", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": true, - "stateMutability": "payable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_reserveToken", - "type": "address" - } - ], - "name": "poolToken", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "conversionFee", - "outputs": [ - { - "name": "", - "type": "uint32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_token", - "type": "address" - }, - { - "name": "_to", - "type": "address" - }, - { - "name": "_amount", - "type": "uint256" - } - ], - "name": "withdrawTokens", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "prevRegistry", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_newOwner", - "type": "address" - } - ], - "name": "transferAnchorOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_poolToken", - "type": "address" - }, - { - "name": "_amount", - "type": "uint256" - } - ], - "name": "removeLiquidityReturnAndFee", - "outputs": [ - { - "name": "", - "type": "uint256" - }, - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_to", - "type": "address" - } - ], - "name": "withdrawETH", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_dynamicFeeFactor", - "type": "uint256" - } - ], - "name": "setDynamicFeeFactor", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_token", - "type": "address" - }, - { - "name": "_weight", - "type": "uint32" - } - ], - "name": "addReserve", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "connectorTokenCount", - "outputs": [ - { - "name": "", - "type": "uint16" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "acceptOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "registry", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "owner", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "maxConversionFee", - "outputs": [ - { - "name": "", - "type": "uint32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "", - "type": "address" - } - ], - "name": "maxStakedBalances", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "reserveTokenCount", - "outputs": [ - { - "name": "", - "type": "uint16" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "referenceRate", - "outputs": [ - { - "name": "n", - "type": "uint256" - }, - { - "name": "d", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_sourceToken", - "type": "address" - }, - { - "name": "_targetToken", - "type": "address" - }, - { - "name": "_amount", - "type": "uint256" - } - ], - "name": "targetAmountAndFee", - "outputs": [ - { - "name": "", - "type": "uint256" - }, - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "restoreRegistry", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "conversionsEnabled", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_reserveToken", - "type": "address" - }, - { - "name": "_balance", - "type": "uint256" - } - ], - "name": "setReserveStakedBalance", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "referenceRateUpdateTime", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "conversionWhitelist", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "acceptAnchorOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "", - "type": "uint256" - } - ], - "name": "reserveTokens", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "isV28OrHigher", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "pure", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "anchor", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "newOwner", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "upgrade", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "amplificationFactor", - "outputs": [ - { - "name": "", - "type": "uint8" - } - ], - "payable": false, - "stateMutability": "pure", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "", - "type": "address" - } - ], - "name": "reserves", - "outputs": [ - { - "name": "balance", - "type": "uint256" - }, - { - "name": "weight", - "type": "uint32" - }, - { - "name": "deprecated1", - "type": "bool" - }, - { - "name": "deprecated2", - "type": "bool" - }, - { - "name": "isSet", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_connectorToken", - "type": "address" - } - ], - "name": "getConnectorBalance", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "effectiveTokensRate", - "outputs": [ - { - "name": "", - "type": "uint256" - }, - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "secondaryReserveToken", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_reserveToken", - "type": "address" - } - ], - "name": "reserveBalance", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_poolToken", - "type": "address" - }, - { - "name": "_amount", - "type": "uint256" - }, - { - "name": "_minReturn", - "type": "uint256" - } - ], - "name": "removeLiquidity", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "dynamicFeeFactor", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_sourceToken", - "type": "address" - }, - { - "name": "_targetToken", - "type": "address" - }, - { - "name": "_amount", - "type": "uint256" - }, - { - "name": "_trader", - "type": "address" - }, - { - "name": "_beneficiary", - "type": "address" - } - ], - "name": "convert", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": true, - "stateMutability": "payable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "effectiveReserveWeights", - "outputs": [ - { - "name": "", - "type": "uint256" - }, - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_conversionFee", - "type": "uint32" - } - ], - "name": "setConversionFee", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "lastConversionRate", - "outputs": [ - { - "name": "n", - "type": "uint256" - }, - { - "name": "d", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "token", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "name": "_poolTokensContainer", - "type": "address" - }, - { - "name": "_registry", - "type": "address" - }, - { - "name": "_maxConversionFee", - "type": "uint32" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "payable": true, - "stateMutability": "payable", - "type": "fallback" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "_prevFactor", - "type": "uint256" - }, - { - "indexed": false, - "name": "_newFactor", - "type": "uint256" - } - ], - "name": "DynamicFeeFactorUpdate", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "_provider", - "type": "address" - }, - { - "indexed": true, - "name": "_reserveToken", - "type": "address" - }, - { - "indexed": false, - "name": "_amount", - "type": "uint256" - }, - { - "indexed": false, - "name": "_newBalance", - "type": "uint256" - }, - { - "indexed": false, - "name": "_newSupply", - "type": "uint256" - } - ], - "name": "LiquidityAdded", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "_provider", - "type": "address" - }, - { - "indexed": true, - "name": "_reserveToken", - "type": "address" - }, - { - "indexed": false, - "name": "_amount", - "type": "uint256" - }, - { - "indexed": false, - "name": "_newBalance", - "type": "uint256" - }, - { - "indexed": false, - "name": "_newSupply", - "type": "uint256" - } - ], - "name": "LiquidityRemoved", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "_type", - "type": "uint16" - }, - { - "indexed": true, - "name": "_anchor", - "type": "address" - }, - { - "indexed": true, - "name": "_activated", - "type": "bool" - } - ], - "name": "Activation", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "_fromToken", - "type": "address" - }, - { - "indexed": true, - "name": "_toToken", - "type": "address" - }, - { - "indexed": true, - "name": "_trader", - "type": "address" - }, - { - "indexed": false, - "name": "_amount", - "type": "uint256" - }, - { - "indexed": false, - "name": "_return", - "type": "uint256" - }, - { - "indexed": false, - "name": "_conversionFee", - "type": "int256" - } - ], - "name": "Conversion", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "_token1", - "type": "address" - }, - { - "indexed": true, - "name": "_token2", - "type": "address" - }, - { - "indexed": false, - "name": "_rateN", - "type": "uint256" - }, - { - "indexed": false, - "name": "_rateD", - "type": "uint256" - } - ], - "name": "TokenRateUpdate", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "_prevFee", - "type": "uint32" - }, - { - "indexed": false, - "name": "_newFee", - "type": "uint32" - } - ], - "name": "ConversionFeeUpdate", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "_prevOwner", - "type": "address" - }, - { - "indexed": true, - "name": "_newOwner", - "type": "address" - } - ], - "name": "OwnerUpdate", - "type": "event" - } - ], - "devdoc": { - "methods": { - "acceptAnchorOwnership()": { - "details": "accepts ownership of the anchor after an ownership transfer also activates the converter can only be called by the contract owner note that prior to version 28, you should use 'acceptTokenOwnership' instead" - }, - "acceptOwnership()": { - "details": "used by a new owner to accept an ownership transfer" - }, - "acceptTokenOwnership()": { - "details": "deprecated, backward compatibility" - }, - "activate(address,address,address)": { - "details": "sets the pool's primary reserve token / price oracles and activates the pool\r each oracle must be able to provide the rate for each reserve token\r note that the oracle must be whitelisted prior to the call\r can only be called by the owner while the pool is inactive\r ", - "params": { - "_primaryReserveOracle": "address of a chainlink price oracle for the primary reserve token\r", - "_primaryReserveToken": "address of the pool's primary reserve token\r", - "_secondaryReserveOracle": "address of a chainlink price oracle for the secondary reserve token\r" - } - }, - "addLiquidity(address,uint256,uint256)": { - "details": "increases the pool's liquidity and mints new shares in the pool to the caller\r ", - "params": { - "_amount": "amount of liquidity to add\r", - "_minReturn": "minimum return-amount of pool tokens\r ", - "_reserveToken": "address of the reserve token to add liquidity to\r" - }, - "return": "amount of pool tokens minted\r" - }, - "addReserve(address,uint32)": { - "details": "defines a new reserve token for the converter\r can only be called by the owner while the converter is inactive and\r 2 reserves aren't defined yet\r ", - "params": { - "_token": "address of the reserve token\r", - "_weight": "reserve weight, represented in ppm, 1-1000000\r" - } - }, - "amplificationFactor()": { - "details": "returns the liquidity amplification factor in the pool\r ", - "return": "liquidity amplification factor\r" - }, - "connectorTokenCount()": { - "details": "deprecated, backward compatibility" - }, - "connectorTokens(uint256)": { - "details": "deprecated, backward compatibility" - }, - "connectors(address)": { - "details": "deprecated, backward compatibility" - }, - "convert(address,address,uint256,address,address)": { - "details": "converts a specific amount of source tokens to target tokens can only be called by the SovrynSwap network contract", - "params": { - "_amount": "amount of tokens to convert (in units of the source token)", - "_beneficiary": "wallet to receive the conversion result", - "_sourceToken": "source ERC20 token", - "_targetToken": "target ERC20 token", - "_trader": "address of the caller who executed the conversion" - }, - "return": "amount of tokens received (in units of the target token)" - }, - "converterType()": { - "details": "returns the converter type\r ", - "return": "see the converter types in the the main contract doc\r" - }, - "disableMaxStakedBalances()": { - "details": "disables the max staked balance mechanism\r available as a temporary mechanism during the pilot\r once disabled, it cannot be re-enabled\r can only be called by the owner\r" - }, - "effectiveReserveWeights()": { - "details": "returns the effective reserve tokens weights\r ", - "return": "reserve1 weight\rreserve2 weight\r" - }, - "effectiveTokensRate()": { - "details": "returns the effective rate of 1 primary token in secondary tokens\r ", - "return": "rate of 1 primary token in secondary tokens (numerator)\rrate of 1 primary token in secondary tokens (denominator)\r" - }, - "getConnectorBalance(address)": { - "details": "deprecated, backward compatibility" - }, - "getReturn(address,address,uint256)": { - "details": "deprecated, backward compatibility" - }, - "hasETHReserve()": { - "details": "checks whether or not the converter has an ETH reserve", - "return": "true if the converter has an ETH reserve, false otherwise" - }, - "isActive()": { - "details": "returns true if the converter is active, false otherwise\r ", - "return": "true if the converter is active, false otherwise\r" - }, - "isV28OrHigher()": { - "details": "checks whether or not the converter version is 28 or higher", - "return": "true, since the converter version is 28 or higher" - }, - "liquidationLimit(address)": { - "details": "returns the maximum number of pool tokens that can currently be liquidated\r ", - "params": { - "_poolToken": "address of the pool token\r " - }, - "return": "liquidation limit\r" - }, - "poolToken(address)": { - "details": "returns the pool token address by the reserve token address\r ", - "params": { - "_reserveToken": "reserve token address\r " - }, - "return": "pool token address\r" - }, - "removeLiquidity(address,uint256,uint256)": { - "details": "decreases the pool's liquidity and burns the caller's shares in the pool\r ", - "params": { - "_amount": "amount of pool tokens to burn\r", - "_minReturn": "minimum return-amount of reserve tokens\r ", - "_poolToken": "address of the pool token\r" - }, - "return": "amount of liquidity removed\r" - }, - "removeLiquidityReturnAndFee(address,uint256)": { - "details": "calculates the amount of reserve tokens entitled for a given amount of pool tokens\r note that a fee is applied according to the equilibrium level of the primary reserve token\r ", - "params": { - "_amount": "amount of pool tokens\r ", - "_poolToken": "address of the pool token\r" - }, - "return": "amount after fee and fee, in reserve token units\r" - }, - "reserveAmplifiedBalance(address)": { - "details": "returns the amplified balance of a given reserve token\r ", - "params": { - "_reserveToken": "reserve token address\r " - }, - "return": "amplified balance\r" - }, - "reserveBalance(address)": { - "details": "returns the reserve's balance note that prior to version 17, you should use 'getConnectorBalance' instead", - "params": { - "_reserveToken": "reserve token contract address" - }, - "return": "reserve balance" - }, - "reserveStakedBalance(address)": { - "details": "returns the staked balance of a given reserve token\r ", - "params": { - "_reserveToken": "reserve token address\r " - }, - "return": "staked balance\r" - }, - "reserveTokenCount()": { - "details": "returns the number of reserve tokens defined note that prior to version 17, you should use 'connectorTokenCount' instead", - "return": "number of reserve tokens" - }, - "reserveWeight(address)": { - "details": "returns the reserve's weight added in version 28", - "params": { - "_reserveToken": "reserve token contract address" - }, - "return": "reserve weight" - }, - "restoreRegistry()": { - "details": "restores the previous contract-registry" - }, - "restrictRegistryUpdate(bool)": { - "details": "restricts the permission to update the contract-registry", - "params": { - "_onlyOwnerCanUpdateRegistry": "indicates whether or not permission is restricted to owner only" - } - }, - "setConversionFee(uint32)": { - "details": "updates the current conversion fee can only be called by the contract owner", - "params": { - "_conversionFee": "new conversion fee, represented in ppm" - } - }, - "setConversionWhitelist(address)": { - "details": "allows the owner to update & enable the conversion whitelist contract address when set, only addresses that are whitelisted are actually allowed to use the converter note that the whitelist check is actually done by the SovrynSwapNetwork contract", - "params": { - "_whitelist": "address of a whitelist contract" - } - }, - "setDynamicFeeFactor(uint256)": { - "details": "updates the current dynamic fee factor\r can only be called by the contract owner\r ", - "params": { - "_dynamicFeeFactor": "new dynamic fee factor, represented in ppm\r" - } - }, - "setMaxStakedBalances(uint256,uint256)": { - "details": "sets the max staked balance for both reserves\r available as a temporary mechanism during the pilot\r can only be called by the owner\r ", - "params": { - "_reserve1MaxStakedBalance": "max staked balance for reserve 1\r", - "_reserve2MaxStakedBalance": "max staked balance for reserve 2\r" - } - }, - "setReserveStakedBalance(address,uint256)": { - "details": "sets the reserve's staked balance\r can only be called by the upgrader contract while the upgrader is the owner\r ", - "params": { - "_balance": "new reserve staked balance\r", - "_reserveToken": "reserve token address\r" - } - }, - "targetAmountAndFee(address,address,uint256)": { - "details": "returns the expected target amount of converting one reserve to another along with the fee\r ", - "params": { - "_amount": "amount of tokens received from the user\r ", - "_sourceToken": "contract address of the source reserve token\r", - "_targetToken": "contract address of the target reserve token\r" - }, - "return": "expected target amount\rexpected fee\r" - }, - "token()": { - "details": "deprecated since version 28, backward compatibility - use only for earlier versions" - }, - "transferAnchorOwnership(address)": { - "details": "transfers the anchor ownership the new owner needs to accept the transfer can only be called by the converter upgrder while the upgrader is the owner note that prior to version 28, you should use 'transferAnchorOwnership' instead", - "params": { - "_newOwner": "new token owner" - } - }, - "transferOwnership(address)": { - "details": "allows transferring the contract ownership the new owner still needs to accept the transfer can only be called by the contract owner", - "params": { - "_newOwner": "new contract owner" - } - }, - "transferTokenOwnership(address)": { - "details": "deprecated, backward compatibility" - }, - "updateRegistry()": { - "details": "updates to the new contract-registry" - }, - "upgrade()": { - "details": "upgrades the converter to the latest version can only be called by the owner note that the owner needs to call acceptOwnership on the new converter after the upgrade" - }, - "withdrawETH(address)": { - "details": "withdraws ether can only be called by the owner if the converter is inactive or by upgrader contract can only be called after the upgrader contract has accepted the ownership of this contract can only be called if the converter has an ETH reserve", - "params": { - "_to": "address to send the ETH to" - } - }, - "withdrawFromAnchor(address,address,uint256)": { - "details": "withdraws tokens held by the anchor and sends them to an account can only be called by the owner", - "params": { - "_amount": "amount to withdraw", - "_to": "account to receive the new amount", - "_token": "ERC20 token contract address" - } - }, - "withdrawTokens(address,address,uint256)": { - "details": "withdraws tokens held by the converter and sends them to an account can only be called by the owner note that reserve tokens can only be withdrawn by the owner while the converter is inactive unless the owner is the converter upgrader contract", - "params": { - "_amount": "amount to withdraw", - "_to": "account to receive the new amount", - "_token": "ERC20 token contract address" - } - } - } - }, - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "608060405260016004819055600980546001606060020a03191690556015805460ff19169091179055620111706016553480156200003c57600080fd5b50604051606080620055ba83398101604090815281516020830151919092015160008054600160a060020a0319163317905582828282828281806200008a8164010000000062000137810204565b5060028054600160a060020a03909216600160a060020a031992831681179091556003805490921617905582620000ca8164010000000062000137810204565b81620000df81640100000000620001b2810204565b505060058054600160a060020a03909416600160a060020a031990941693909317909255506009805463ffffffff9092166401000000000267ffffffff0000000019909216919091179055506200022b945050505050565b600160a060020a0381161515620001af57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b50565b620f424063ffffffff82161115620001af57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f4552525f494e56414c49445f434f4e56455253494f4e5f464545000000000000604482015290519081900360640190fd5b61537f806200023b6000396000f3006080604052600436106103125763ffffffff60e060020a6000350416625e319c81146103b0578063024c7ec7146103e35780630337e3fb146103fd5780630a55fb3d1461042e5780630c7d5cd8146104575780630e53aae914610485578063119b90cd146104da57806312c2aca41461050757806316912f961461051c57806319b64015146105315780631cfab290146105495780631e1401f81461056a57806321e6b53d146105ad57806322f3e2d4146105ce5780632630c12f146105e35780632bd3c107146105f85780632bf0c985146106195780632fe8a6ad1461063a57806338a5e0161461064f578063395900d4146106645780633e8ff43f1461068e57806346749468146106ba57806349d10b64146106d55780634af80f0e146106ea57806354fd4d501461070b57806355776b77146107205780635768adcf1461073a578063579cd3ca1461075b5780635e35359e1461077057806361cd756e1461079a57806367b6d57c146107af57806369067d95146107d0578063690d8320146107f457806369d1354a146108155780636a49d2c41461082d57806371f52bf31461085757806379ba50971461086c5780637b103999146108815780638da5cb5b1461089657806394c275ad146108ab57806398a71dcb146108c05780639b99a8e2146108e1578063a32bff44146108f6578063af94b8d81461090b578063b4a176d314610935578063bf7545581461094a578063bf7da6ba1461095f578063c3321fb014610983578063c45d3d9214610998578063cdc91c69146109ad578063d031370b146109c2578063d260529c146109da578063d3fb73b4146109ef578063d4ee1d9014610a04578063d55ec69714610a19578063d64c5a1a14610a2e578063d66bd52414610a59578063d895951214610a7a578063db2830a414610a9b578063dc75eb9a14610ab0578063dc8de37914610ac5578063e38192e314610ae6578063e8104af914610b0d578063e8dc12ff14610b22578063ec2240f514610b4c578063ecbca55d14610b61578063f2fde38b14610b7f578063f9cddde214610ba0578063fc0c546a14610bb5575b6000805160206152f483398151915260005260086020527f353c2eb9e53a4a4a6d45d72082ff2e9dc829d1125618772a83eb0e7f86632c43546601000000000000900460ff1615156103ae576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f5245534552564500000000000000000000000000604482015290519081900360640190fd5b005b3480156103bc57600080fd5b506103d1600160a060020a0360043516610bca565b60408051918252519081900360200190f35b3480156103ef57600080fd5b506103ae6004351515610bf3565b34801561040957600080fd5b50610412610c3b565b60408051600160a060020a039092168252519081900360200190f35b34801561043a57600080fd5b50610443610c4a565b604080519115158252519081900360200190f35b34801561046357600080fd5b5061046c610c53565b6040805163ffffffff9092168252519081900360200190f35b34801561049157600080fd5b506104a6600160a060020a0360043516610c5f565b6040805195865263ffffffff9094166020860152911515848401521515606084015215156080830152519081900360a00190f35b3480156104e657600080fd5b506103ae600160a060020a0360043581169060243581169060443516610cfa565b34801561051357600080fd5b50610443611464565b34801561052857600080fd5b506103ae6114ad565b34801561053d57600080fd5b506104126004356114c1565b34801561055557600080fd5b5061046c600160a060020a03600435166114ed565b34801561057657600080fd5b50610594600160a060020a036004358116906024351660443561151f565b6040805192835260208301919091528051918290030190f35b3480156105b957600080fd5b506103ae600160a060020a0360043516611539565b3480156105da57600080fd5b5061044361154d565b3480156105ef57600080fd5b50610412611582565b34801561060457600080fd5b506103d1600160a060020a03600435166115a1565b34801561062557600080fd5b506103d1600160a060020a03600435166115f6565b34801561064657600080fd5b506104436116d9565b34801561065b57600080fd5b506103ae6116fa565b34801561067057600080fd5b506103ae600160a060020a036004358116906024351660443561170c565b34801561069a57600080fd5b506106a36117a7565b6040805161ffff9092168252519081900360200190f35b3480156106c657600080fd5b506103ae6004356024356117ac565b3480156106e157600080fd5b506103ae611830565b3480156106f657600080fd5b506103ae600160a060020a0360043516611a90565b34801561071757600080fd5b506106a3611ac5565b6103d1600160a060020a0360043516602435604435611aca565b34801561074657600080fd5b50610412600160a060020a0360043516612033565b34801561076757600080fd5b5061046c612051565b34801561077c57600080fd5b506103ae600160a060020a0360043581169060243516604435612069565b3480156107a657600080fd5b5061041261217d565b3480156107bb57600080fd5b506103ae600160a060020a036004351661218c565b3480156107dc57600080fd5b50610594600160a060020a036004351660243561222f565b34801561080057600080fd5b506103ae600160a060020a036004351661238a565b34801561082157600080fd5b506103ae60043561248f565b34801561083957600080fd5b506103ae600160a060020a036004351663ffffffff60243516612534565b34801561086357600080fd5b506106a3612593565b34801561087857600080fd5b506103ae61259d565b34801561088d57600080fd5b50610412612651565b3480156108a257600080fd5b50610412612660565b3480156108b757600080fd5b5061046c61266f565b3480156108cc57600080fd5b506103d1600160a060020a0360043516612683565b3480156108ed57600080fd5b506106a3612695565b34801561090257600080fd5b5061059461269b565b34801561091757600080fd5b50610594600160a060020a03600435811690602435166044356126a4565b34801561094157600080fd5b506103ae612848565b34801561095657600080fd5b50610443612874565b34801561096b57600080fd5b506103ae600160a060020a0360043516602435612879565b34801561098f57600080fd5b506103d16128c1565b3480156109a457600080fd5b506104126128c7565b3480156109b957600080fd5b506103ae6128d6565b3480156109ce57600080fd5b5061041260043561292f565b3480156109e657600080fd5b50610443612957565b3480156109fb57600080fd5b5061041261295c565b348015610a1057600080fd5b5061041261296b565b348015610a2557600080fd5b506103ae61297a565b348015610a3a57600080fd5b50610a43612a6f565b6040805160ff9092168252519081900360200190f35b348015610a6557600080fd5b506104a6600160a060020a0360043516612a74565b348015610a8657600080fd5b506103d1600160a060020a0360043516612aba565b348015610aa757600080fd5b50610594612acb565b348015610abc57600080fd5b50610412612af0565b348015610ad157600080fd5b506103d1600160a060020a0360043516612aff565b348015610af257600080fd5b506103d1600160a060020a0360043516602435604435612b28565b348015610b1957600080fd5b506103d1612e8d565b6103d1600160a060020a036004358116906024358116906044359060643581169060843516612e93565b348015610b5857600080fd5b506105946130e6565b348015610b6d57600080fd5b506103ae63ffffffff60043516613166565b348015610b8b57600080fd5b506103ae600160a060020a036004351661325b565b348015610bac57600080fd5b506105946132eb565b348015610bc157600080fd5b506104126132f4565b600081610bd681613303565b5050600160a060020a03166000908152600c602052604090205490565b610bfb613382565b60038054911515740100000000000000000000000000000000000000000274ff000000000000000000000000000000000000000019909216919091179055565b600a54600160a060020a031681565b60155460ff1681565b60095463ffffffff1681565b6000806000806000610c6f61526f565b50505050600160a060020a03929092166000908152600860209081526040808320815160a081018352815480825260019092015463ffffffff811694820185905260ff64010000000082048116151594830194909452650100000000008104841615156060830152660100000000000090049092161515608090920182905295919450919250829190565b6000806000806000610d0a6133d2565b610d12613382565b87610d1c81613303565b87610d268161342f565b87610d308161342f565b89610d3a81613490565b89610d4481613490565b600554604080517f8da5cb5b00000000000000000000000000000000000000000000000000000000815290513092600160a060020a031691638da5cb5b9160048083019260209291908290030181600087803b158015610da357600080fd5b505af1158015610db7573d6000803e3d6000fd5b505050506040513d6020811015610dcd57600080fd5b5051600160a060020a031614610e2d576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f414e43484f525f4e4f545f4f574e4544000000000000000000000000604482015290519081900360640190fd5b610e567f436861696e6c696e6b4f7261636c6557686974656c69737400000000000000006134f0565b995089600160a060020a0316633af32abf8d6040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b158015610eb357600080fd5b505af1158015610ec7573d6000803e3d6000fd5b505050506040513d6020811015610edd57600080fd5b50511515610f35576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f494e56414c49445f4f5241434c450000000000000000000000000000604482015290519081900360640190fd5b89600160a060020a0316633af32abf8c6040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b158015610f9057600080fd5b505af1158015610fa4573d6000803e3d6000fd5b505050506040513d6020811015610fba57600080fd5b50511515611012576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f494e56414c49445f4f5241434c450000000000000000000000000000604482015290519081900360640190fd5b61101a613588565b600a8054600160a060020a031916600160a060020a038f1617905560078054600090811061104457fe5b600091825260209091200154600160a060020a038e8116911614156110a25760078054600190811061107257fe5b600091825260209091200154600b8054600160a060020a031916600160a060020a039092169190911790556110dd565b6007805460009081106110b157fe5b600091825260209091200154600b8054600160a060020a031916600160a060020a039092169190911790555b6111067f436f6e766572746572466163746f7279000000000000000000000000000000006134f0565b600160a060020a031663c977aed261111c6117a7565b6040518263ffffffff1660e060020a028152600401808261ffff1661ffff168152602001915050602060405180830381600087803b15801561115d57600080fd5b505af1158015611171573d6000803e3d6000fd5b505050506040513d602081101561118757600080fd5b8101908080519060200190929190505050985088600160a060020a0316631b27444e8e600b60009054906101000a9004600160a060020a03168f8f6040518563ffffffff1660e060020a0281526004018085600160a060020a0316600160a060020a0316815260200184600160a060020a0316600160a060020a0316815260200183600160a060020a0316600160a060020a0316815260200182600160a060020a0316600160a060020a03168152602001945050505050602060405180830381600087803b15801561125857600080fd5b505af115801561126c573d6000803e3d6000fd5b505050506040513d602081101561128257600080fd5b5051600980546bffffffffffffffffffffffff166c01000000000000000000000000600160a060020a0393841681029190911791829055600a54600b54604080517fae818004000000000000000000000000000000000000000000000000000000008152928616600484015290851660248301528051929093049093169263ae8180049260448083019391928290030181600087803b15801561132457600080fd5b505af1158015611338573d6000803e3d6000fd5b505050506040513d604081101561134e57600080fd5b5080516020909101516010819055600f8290556012919091556013556113726137c4565b601155600a5461138a90600160a060020a0316610bca565b600a549098506113a290600160a060020a0316612aff565b600b549097506113ba90600160a060020a0316612aff565b9550868814156113e55760008811806113d35750600086115b156113e0576113e06137c8565b61140e565b6000881180156113f55750600087115b80156114015750600086115b1561140e5761140e6137c8565b600554600190600160a060020a03166114256117a7565b61ffff167f6b08c2e2c9969e55a647a764db9b554d64dc42f1a704da11a6d5b129ad163f2c60405160405180910390a450505050505050505050505050565b6000805160206152f483398151915260005260086020527f353c2eb9e53a4a4a6d45d72082ff2e9dc829d1125618772a83eb0e7f86632c43546601000000000000900460ff1690565b6114b5613382565b6015805460ff19169055565b60006007828154811015156114d257fe5b600091825260209091200154600160a060020a031692915050565b6000816114f981613303565b5050600160a060020a031660009081526008602052604090206001015463ffffffff1690565b60008061152d8585856126a4565b91509150935093915050565b611541613382565b61154a8161218c565b50565b6000611557613840565b801561157d57506009546c010000000000000000000000009004600160a060020a031615155b905090565b6009546c010000000000000000000000009004600160a060020a031681565b6000816115ad81613303565b6115ef6115b984612aff565b600160a060020a0385166000908152600c60205260409020546115e390601363ffffffff6138da16565b9063ffffffff61395e16565b9392505050565b600080600080600085600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561163c57600080fd5b505af1158015611650573d6000803e3d6000fd5b505050506040513d602081101561166657600080fd5b5051600160a060020a038088166000908152600e602052604090205491955016925061169183612aff565b600160a060020a0384166000908152600c602052604090205490925090506116cf816116c3848763ffffffff6138da16565b9063ffffffff6139bb16565b9695505050505050565b60035474010000000000000000000000000000000000000000900460ff1681565b611702613382565b61170a6128d6565b565b611714613382565b600554604080517f5e35359e000000000000000000000000000000000000000000000000000000008152600160a060020a03868116600483015285811660248301526044820185905291519190921691635e35359e91606480830192600092919082900301818387803b15801561178a57600080fd5b505af115801561179e573d6000803e3d6000fd5b50505050505050565b600290565b6117b4613382565b8160146000600760008154811015156117c957fe5b6000918252602080832090910154600160a060020a031683528201929092526040018120919091556007805483926014929091600190811061180757fe5b6000918252602080832090910154600160a060020a031683528201929092526040019020555050565b60008054600160a060020a0316331480611865575060035474010000000000000000000000000000000000000000900460ff16155b15156118a9576040805160e560020a62461bcd0281526020600482015260116024820152600080516020615314833981519152604482015290519081900360640190fd5b6118d27f436f6e74726163745265676973747279000000000000000000000000000000006134f0565b600254909150600160a060020a038083169116148015906118fb5750600160a060020a03811615155b1515611951576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e56414c49445f5245474953545259000000000000000000000000604482015290519081900360640190fd5b604080517fbb34534c0000000000000000000000000000000000000000000000000000000081527f436f6e747261637452656769737472790000000000000000000000000000000060048201529051600091600160a060020a0384169163bb34534c9160248082019260209290919082900301818787803b1580156119d557600080fd5b505af11580156119e9573d6000803e3d6000fd5b505050506040513d60208110156119ff57600080fd5b5051600160a060020a03161415611a60576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e56414c49445f5245474953545259000000000000000000000000604482015290519081900360640190fd5b6002805460038054600160a060020a03808416600160a060020a0319928316179092559091169216919091179055565b611a98613382565b80611aa28161342f565b5060068054600160a060020a031916600160a060020a0392909216919091179055565b602081565b6000806000806000611ada613a29565b6002600455611ae7613a83565b87611af181613303565b87611afb81613ae1565b87611b0581613ae1565b600160a060020a038b166000805160206152f483398151915214611b2a573415611b2e565b8934145b1515611b84576040805160e560020a62461bcd02815260206004820152601760248201527f4552525f4554485f414d4f554e545f4d49534d41544348000000000000000000604482015290519081900360640190fd5b611b8c613b39565b600160a060020a038b166000805160206152f48339815191521415611c2e576000805160206152f483398151915260005260086020527f353c2eb9e53a4a4a6d45d72082ff2e9dc829d1125618772a83eb0e7f86632c4254611bf4903463ffffffff613b7b16565b6000805160206152f483398151915260005260086020527f353c2eb9e53a4a4a6d45d72082ff2e9dc829d1125618772a83eb0e7f86632c42555b600160a060020a038b166000908152600c602052604090205460155490975060ff1615611cf757600160a060020a038b166000908152601460205260409020541580611ca15750600160a060020a038b16600090815260146020526040902054611c9e888c63ffffffff61395e16565b11155b1515611cf7576040805160e560020a62461bcd02815260206004820152601e60248201527f4552525f4d41585f5354414b45445f42414c414e43455f524541434845440000604482015290519081900360640190fd5b600160a060020a03808c166000908152600d602090815260408083205481517f18160ddd00000000000000000000000000000000000000000000000000000000815291519416995089936318160ddd93600480840194938390030190829087803b158015611d6457600080fd5b505af1158015611d78573d6000803e3d6000fd5b505050506040513d6020811015611d8e57600080fd5b50519450600160a060020a038b166000805160206152f483398151915214611dbc57611dbc8b33308d613bdb565b600160a060020a038b16600090815260086020526040902054611de5908b63ffffffff61395e16565b600160a060020a038c16600090815260086020526040902055611e0e878b63ffffffff61395e16565b600160a060020a038c166000908152600c60205260408120919091559350861580611e37575084155b15611e4457899350611e5b565b611e58876116c38c8863ffffffff6138da16565b93505b88841015611eb3576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f52455455524e5f544f4f5f4c4f570000000000000000000000000000604482015290519081900360640190fd5b600554604080517fc6c3bbe6000000000000000000000000000000000000000000000000000000008152600160a060020a038981166004830152336024830152604482018890529151919092169163c6c3bbe691606480830192600092919082900301818387803b158015611f2757600080fd5b505af1158015611f3b573d6000803e3d6000fd5b50505050611f476137c8565b600160a060020a038b16337f4a1a2a6176e9646d9e3157f7c2ab3c499f18337c0b0828cfb28e0a61de4a11f78c611f848b8263ffffffff61395e16565b611f948a8a63ffffffff61395e16565b60408051938452602084019290925282820152519081900360600190a3611fcb86611fc5878763ffffffff61395e16565b8d613cc3565b61202060076000815481101515611fde57fe5b60009182526020909120015460078054600160a060020a0390921691600190811061200557fe5b6000918252602082200154600160a060020a03169080613d23565b5050600160045550979650505050505050565b600160a060020a039081166000908152600d60205260409020541690565b60095468010000000000000000900463ffffffff1681565b6000612073613a29565b6002600455612080613382565b6120976000805160206152d48339815191526134f0565b600160a060020a0385166000908152600860205260409020600101549091506601000000000000900460ff1615806120d457506120d261154d565b155b806120ec5750600054600160a060020a038281169116145b1515612130576040805160e560020a62461bcd0281526020600482015260116024820152600080516020615314833981519152604482015290519081900360640190fd5b61213b848484613d8f565b600160a060020a0384166000908152600860205260409020600101546601000000000000900460ff16156121725761217284613dc0565b505060016004555050565b600354600160a060020a031681565b612194613382565b6000805160206152d48339815191526121ac81613eb4565b600554604080517ff2fde38b000000000000000000000000000000000000000000000000000000008152600160a060020a0385811660048301529151919092169163f2fde38b91602480830192600092919082900301818387803b15801561221357600080fd5b505af1158015612227573d6000803e3d6000fd5b505050505050565b6000806000806000806000806000808b600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561227c57600080fd5b505af1158015612290573d6000803e3d6000fd5b505050506040513d60208110156122a657600080fd5b5051600160a060020a03808e166000908152600e60209081526040808320549093168252600c905220549098509650878b101561237157600a54600160a060020a03166000908152600c602052604090205461230990601463ffffffff6138da16565b600a5490965061232190600160a060020a03166115a1565b9450848610612331578486612334565b85855b909450925061234d886116c38d8a63ffffffff6138da16565b9150612363836116c3848763ffffffff6138da16565b99505088810397508861237b565b9598506000975088955b50505050505050509250929050565b6000612394613a29565b60026004556123a1613382565b6000805160206152f48339815191526123b981613303565b6123d06000805160206152d48339815191526134f0565b91506123da61154d565b15806123f35750600054600160a060020a038381169116145b1515612437576040805160e560020a62461bcd0281526020600482015260116024820152600080516020615314833981519152604482015290519081900360640190fd5b604051600160a060020a03841690303180156108fc02916000818181858888f1935050505015801561246d573d6000803e3d6000fd5b506124856000805160206152f4833981519152613dc0565b5050600160045550565b612497613382565b620186a08111156124f2576040805160e560020a62461bcd02815260206004820152601e60248201527f4552525f494e56414c49445f44594e414d49435f4645455f464143544f520000604482015290519081900360640190fd5b601654604080519182526020820183905280517f382fd3516344712a511dcd464ff8e6ab54139d6a28f64087a3253353ee7a56799281900390910190a1601655565b600261253e612695565b61ffff1610612585576040805160e560020a62461bcd0281526020600482015260196024820152600080516020615334833981519152604482015290519081900360640190fd5b61258f8282613f0a565b5050565b600061157d612695565b600154600160a060020a031633146125ed576040805160e560020a62461bcd0281526020600482015260116024820152600080516020615314833981519152604482015290519081900360640190fd5b60015460008054604051600160a060020a0393841693909116917f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91a36001805460008054600160a060020a0319908116600160a060020a03841617909155169055565b600254600160a060020a031681565b600054600160a060020a031681565b600954640100000000900463ffffffff1681565b60146020526000908152604090205481565b60075490565b600f5460105482565b6000806000806126b261529d565b6000806000806126c0613a83565b6126c98c613303565b6126d28b613303565b600160a060020a038c8116908c161415612736576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f53414d455f534f555243455f54415247455400000000000000000000604482015290519081900360640190fd5b61273e6137c4565b60115414156127e557600f604080519081016040529081600082015481526020016001820154815250509450600860008d600160a060020a0316600160a060020a0316815260200190815260200160002060010160009054906101000a900463ffffffff169650600860008c600160a060020a0316600160a060020a0316815260200190815260200160002060010160009054906101000a900463ffffffff169550612825565b6127ed61413c565b94506127f885614380565b600a549195509350600160a060020a038d81169116141561281e57839650829550612825565b8296508395505b6128338c8c8989898f6144aa565b919e919d50909b505050505050505050505050565b612850613382565b60035460028054600160a060020a031916600160a060020a03909216919091179055565b600181565b612881613382565b6000805160206152d483398151915261289981613eb4565b826128a381613303565b5050600160a060020a039091166000908152600c6020526040902055565b60115481565b600654600160a060020a031681565b60016128e0612695565b61ffff1611612927576040805160e560020a62461bcd0281526020600482015260196024820152600080516020615334833981519152604482015290519081900360640190fd5b61170a614646565b600780548290811061293d57fe5b600091825260209091200154600160a060020a0316905081565b600190565b600554600160a060020a031681565b600154600160a060020a031681565b6000612984613382565b61299b6000805160206152d48339815191526134f0565b600554909150600090600160a060020a03166129b56117a7565b61ffff167f6b08c2e2c9969e55a647a764db9b554d64dc42f1a704da11a6d5b129ad163f2c60405160405180910390a46129ee8161325b565b604080517f90f58c96000000000000000000000000000000000000000000000000000000008152602060048201529051600160a060020a038316916390f58c9691602480830192600092919082900301818387803b158015612a4f57600080fd5b505af1158015612a63573d6000803e3d6000fd5b5050505061154a61259d565b601490565b6008602052600090815260409020805460019091015463ffffffff81169060ff640100000000820481169165010000000000810482169166010000000000009091041685565b6000612ac582612aff565b92915050565b600080612ad661529d565b612ade61413c565b80516020909101519094909350915050565b600b54600160a060020a031681565b600081612b0b81613303565b5050600160a060020a031660009081526008602052604090205490565b600080600080600080612b39613a29565b6002600455612b46613a83565b88612b5081614712565b88612b5a81613ae1565b88612b6481613ae1565b612b6c613b39565b8b600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015612baa57600080fd5b505af1158015612bbe573d6000803e3d6000fd5b505050506040513d6020811015612bd457600080fd5b50519750612be28c8c61222f565b50965089871015612c3d576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f52455455524e5f544f4f5f4c4f570000000000000000000000000000604482015290519081900360640190fd5b600e60008d600160a060020a0316600160a060020a0316815260200190815260200160002060009054906101000a9004600160a060020a03169550600560009054906101000a9004600160a060020a0316600160a060020a031663f6b911bc8d338e6040518463ffffffff1660e060020a0281526004018084600160a060020a0316600160a060020a0316815260200183600160a060020a0316600160a060020a031681526020018281526020019350505050600060405180830381600087803b158015612d0a57600080fd5b505af1158015612d1e573d6000803e3d6000fd5b505050600160a060020a038716600090815260086020526040902054612d4b91508863ffffffff613b7b16565b600160a060020a038716600090815260086020908152604080832093909355600c90522054612d80908863ffffffff613b7b16565b600160a060020a0387166000818152600c602052604090208290559095506000805160206152f48339815191521415612de657604051339088156108fc029089906000818181858888f19350505050158015612de0573d6000803e3d6000fd5b50612df1565b612df1863389614783565b612df96137c8565b612e09888c63ffffffff613b7b16565b60408051898152602081018890528082018390529051919550600160a060020a0388169133917fbc7d19d505c7ec4db83f3b51f19fb98c4c8a99922e7839d1ee608dfbee29501b919081900360600190a3612e658c8588613cc3565b612e7860076000815481101515611fde57fe5b50506001600455509298975050505050505050565b60165481565b6000612e9d613a29565b60026004557f536f7672796e537761704e6574776f726b000000000000000000000000000000612ecc81613eb4565b600160a060020a038781169087161415612f30576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f53414d455f534f555243455f54415247455400000000000000000000604482015290519081900360640190fd5b600654600160a060020a031615806130735750600654604080517f3af32abf000000000000000000000000000000000000000000000000000000008152600160a060020a03878116600483015291519190921691633af32abf9160248083019260209291908290030181600087803b158015612fab57600080fd5b505af1158015612fbf573d6000803e3d6000fd5b505050506040513d6020811015612fd557600080fd5b505180156130735750600654604080517f3af32abf000000000000000000000000000000000000000000000000000000008152600160a060020a03868116600483015291519190921691633af32abf9160248083019260209291908290030181600087803b15801561304657600080fd5b505af115801561305a573d6000803e3d6000fd5b505050506040513d602081101561307057600080fd5b50515b15156130c9576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f4e4f545f57484954454c495354454400000000000000000000000000604482015290519081900360640190fd5b6130d6878787878761483a565b6001600455979650505050505050565b6000806130f161529d565b6000806130fc61413c565b925061310783614380565b915091506007600081548110151561311b57fe5b600091825260209091200154600a54600160a060020a03908116911614156131505763ffffffff80831695508116935061315f565b63ffffffff8082169550821693505b5050509091565b61316e613382565b60095463ffffffff640100000000909104811690821611156131da576040805160e560020a62461bcd02815260206004820152601a60248201527f4552525f494e56414c49445f434f4e56455253494f4e5f464545000000000000604482015290519081900360640190fd5b6009546040805163ffffffff6801000000000000000090930483168152918316602083015280517f81cd2ffb37dd237c0e4e2a3de5265fcf9deb43d3e7801e80db9f1ccfba7ee6009281900390910190a16009805463ffffffff90921668010000000000000000026bffffffff000000000000000019909216919091179055565b613263613382565b600054600160a060020a03828116911614156132c9576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f53414d455f4f574e4552000000000000000000000000000000000000604482015290519081900360640190fd5b60018054600160a060020a031916600160a060020a0392909216919091179055565b60125460135482565b600554600160a060020a031690565b600160a060020a0381166000908152600860205260409020600101546601000000000000900460ff16151561154a576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f5245534552564500000000000000000000000000604482015290519081900360640190fd5b600054600160a060020a0316331461170a576040805160e560020a62461bcd0281526020600482015260116024820152600080516020615314833981519152604482015290519081900360640190fd5b6133da61154d565b1561170a576040805160e560020a62461bcd02815260206004820152600a60248201527f4552525f41435449564500000000000000000000000000000000000000000000604482015290519081900360640190fd5b600160a060020a03811630141561154a576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f414444524553535f49535f53454c4600000000000000000000000000604482015290519081900360640190fd5b600160a060020a038116151561154a576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b600254604080517fbb34534c000000000000000000000000000000000000000000000000000000008152600481018490529051600092600160a060020a03169163bb34534c91602480830192602092919082900301818787803b15801561355657600080fd5b505af115801561356a573d6000803e3d6000fd5b505050506040513d602081101561358057600080fd5b505192915050565b60006060600080600080600560009054906101000a9004600160a060020a0316955085600160a060020a0316636d3e313e6040518163ffffffff1660e060020a028152600401600060405180830381600087803b1580156135e857600080fd5b505af11580156135fc573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561362557600080fd5b81019080805164010000000081111561363d57600080fd5b8201602081018481111561365057600080fd5b815185602082028301116401000000008211171561366d57600080fd5b505080516007549199501597509550600094505050505b828210156122275783156137035785600160a060020a0316639cbf9e366040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156136d057600080fd5b505af11580156136e4573d6000803e3d6000fd5b505050506040513d60208110156136fa57600080fd5b5051905061371e565b848281518110151561371157fe5b9060200190602002015190505b80600d600060078581548110151561373257fe5b600091825260208083209190910154600160a060020a03908116845290830193909352604090910190208054600160a060020a03191692909116919091179055600780548390811061378057fe5b6000918252602080832090910154600160a060020a038481168452600e90925260409092208054600160a060020a0319169190921617905560019190910190613684565b4290565b60408051808201909152600f548152601054602082015260009081906137ed90614380565b600a54600160a060020a039081166000908152600860205260408082206001908101805463ffffffff97881663ffffffff1991821617909155600b54909416835291200180549290931691161790555050565b600030600160a060020a0316600560009054906101000a9004600160a060020a0316600160a060020a0316638da5cb5b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561389f57600080fd5b505af11580156138b3573d6000803e3d6000fd5b505050506040513d60208110156138c957600080fd5b5051600160a060020a031614905090565b6000808315156138ed5760009150613957565b508282028284828115156138fd57fe5b0414613953576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b8091505b5092915050565b600082820183811015613953576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b600080808311613a15576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f4449564944455f42595f5a45524f0000000000000000000000000000604482015290519081900360640190fd5b8284811515613a2057fe5b04949350505050565b60045460011461170a576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f5245454e5452414e4359000000000000000000000000000000000000604482015290519081900360640190fd5b613a8b61154d565b151561170a576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f494e4143544956450000000000000000000000000000000000000000604482015290519081900360640190fd5b6000811161154a576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f5a45524f5f56414c5545000000000000000000000000000000000000604482015290519081900360640190fd5b60075460005b8181101561258f57613b73600782815481101515613b5957fe5b600091825260209091200154600160a060020a0316613dc0565b600101613b3f565b600081831015613bd5576040805160e560020a62461bcd02815260206004820152600d60248201527f4552525f554e444552464c4f5700000000000000000000000000000000000000604482015290519081900360640190fd5b50900390565b604080517f7472616e7366657246726f6d28616464726573732c616464726573732c75696e81527f74323536290000000000000000000000000000000000000000000000000000006020808301919091528251918290036025018220600160a060020a038088166024850152861660448401526064808401869052845180850390910181526084909301909352810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1990931692909217909152613cbd90859061492d565b50505050565b600160a060020a038082166000818152600c6020908152604091829020548251908152908101869052815192938716927f77f29993cf2c084e726f7e802da0719d6a0ade3e204badc7a3ffd57ecb768c24929181900390910190a3505050565b613d2b61529d565b613d37858585856149bb565b805160208083015160408051938452918301528051929350600160a060020a0380881693908916927f77f29993cf2c084e726f7e802da0719d6a0ade3e204badc7a3ffd57ecb768c2492908290030190a35050505050565b613d97613382565b82613da181613490565b82613dab81613490565b83613db58161342f565b612227868686614783565b80613dca81613303565b600160a060020a0382166000805160206152f48339815191521415613e0a57600160a060020a03821660009081526008602052604090203031905561258f565b604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a038416916370a082319160248083019260209291908290030181600087803b158015613e6b57600080fd5b505af1158015613e7f573d6000803e3d6000fd5b505050506040513d6020811015613e9557600080fd5b5051600160a060020a0383166000908152600860205260409020555050565b613ebd816134f0565b600160a060020a0316331461154a576040805160e560020a62461bcd0281526020600482015260116024820152600080516020615314833981519152604482015290519081900360640190fd5b6000613f14613382565b613f1c6133d2565b82613f2681613490565b83613f308161342f565b83613f3a81614a83565b600554600160a060020a03878116911614801590613f7e5750600160a060020a0386166000908152600860205260409020600101546601000000000000900460ff16155b1515613fd4576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f5245534552564500000000000000000000000000604482015290519081900360640190fd5b60095463ffffffff908116620f4240038116908616111561403f576040805160e560020a62461bcd02815260206004820152601a60248201527f4552525f494e56414c49445f524553455256455f574549474854000000000000604482015290519081900360640190fd5b61ffff61404a612695565b61ffff1610614091576040805160e560020a62461bcd0281526020600482015260196024820152600080516020615334833981519152604482015290519081900360640190fd5b505050600160a060020a0390921660008181526008602052604081208181556001908101805466ff0000000000001963ffffffff80881663ffffffff1993841617919091166601000000000000179092556007805493840181559093527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c6889091018054600160a060020a03191690931790925560098054808416909401909216921691909117905550565b61414461529d565b60008060008061415261529d565b61415a61529d565b600954600a54600b54604080517fb1772d7a000000000000000000000000000000000000000000000000000000008152600160a060020a0393841660048201529183166024830152516000938493849384936c010000000000000000000000009093049091169163b1772d7a9160448082019260609290919082900301818787803b1580156141e857600080fd5b505af11580156141fc573d6000803e3d6000fd5b505050506040513d606081101561421257600080fd5b5080516020820151604090920151601154919c50919a5090985088111561424f5760408051908101604052808b81526020018a8152509a50614373565b60115461425a6137c4565b0396508615156142825760408051808201909152600f54815260105460208201529a50614373565b61025887106142a95760408051808201909152601254815260135460208201529a50614373565b604080518082018252600f548152601054602080830191825283518085019094526012548085526013549185019190915290519198509196506142f19163ffffffff6138da16565b6020860151875191955061430b919063ffffffff6138da16565b9250614335614320858963ffffffff6138da16565b6115e3856102588b900363ffffffff6138da16565b9150614364610258614358876020015189602001516138da90919063ffffffff16565b9063ffffffff6138da16565b90506143708282614af8565b9a505b5050505050505050505090565b600a54600160a060020a03166000818152600c60205260408120549091829190829081906143ad906115a1565b600b549092506143c590600160a060020a03166115a1565b90506143f07f536f7672796e53776170466f726d756c610000000000000000000000000000006134f0565b600160a060020a031663a11aa1b461440f85601463ffffffff6138da16565b885160208a01516040805160e060020a63ffffffff87160281526004810194909452602484018890526044840187905260648401929092526084830152805160a4808401938290030181600087803b15801561446a57600080fd5b505af115801561447e573d6000803e3d6000fd5b505050506040513d604081101561449457600080fd5b5080516020909101519095509350505050915091565b60008080808063ffffffff891615156144e257600160a060020a038b1660009081526008602052604090206001015463ffffffff1698505b63ffffffff8816151561451457600160a060020a038a1660009081526008602052604090206001015463ffffffff1697505b61451d8b6115a1565b91506145288a6115a1565b90506145537f536f7672796e53776170466f726d756c610000000000000000000000000000006134f0565b604080517f94491fab0000000000000000000000000000000000000000000000000000000081526004810185905263ffffffff808d166024830152604482018590528b166064820152608481018990529051600160a060020a0392909216916394491fab9160a4808201926020929091908290030181600087803b1580156145da57600080fd5b505af11580156145ee573d6000803e3d6000fd5b505050506040513d602081101561460457600080fd5b5051945061461185614b4d565b9350614624846115e38c8c8c8c8b614b7d565b9250614636858463ffffffff613b7b16565b9450505096509650969350505050565b61464e613382565b6000614658612695565b61ffff161161469f576040805160e560020a62461bcd0281526020600482015260196024820152600080516020615334833981519152604482015290519081900360640190fd5b600560009054906101000a9004600160a060020a0316600160a060020a03166379ba50976040518163ffffffff1660e060020a028152600401600060405180830381600087803b1580156146f257600080fd5b505af1158015614706573d6000803e3d6000fd5b5050505061170a613b39565b600160a060020a038181166000908152600e602052604090205416151561154a576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f494e56414c49445f504f4f4c5f544f4b454e00000000000000000000604482015290519081900360640190fd5b604080517f7472616e7366657228616464726573732c75696e74323536290000000000000081528151908190036019018120600160a060020a038516602483015260448083018590528351808403909101815260649092019092526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff199093169290921790915261483590849061492d565b505050565b6000806000614847613a83565b8761485181613303565b8761485b81613303565b6148668a8a8a614c56565b9094509250600160a060020a0389166000805160206152f483398151915214156148c657604051600160a060020a0387169085156108fc029086906000818181858888f193505050501580156148c0573d6000803e3d6000fd5b506148d1565b6148d1898786614783565b6148df8a8a898b8888614f6b565b600160a060020a03808b16600090815260086020526040808220600190810154938d1683529120015461491f918c918c9163ffffffff9081169116614ff0565b509198975050505050505050565b6149356152b4565b602060405190810160405280600181525090506020818351602085016000875af180151561496257600080fd5b5080511515614835576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f5452414e534645525f4641494c454400000000000000000000000000604482015290519081900360640190fd5b6149c361529d565b6000806149cf876115a1565b91506149da866115a1565b905063ffffffff85161515614a0e57600160a060020a03871660009081526008602052604090206001015463ffffffff1694505b63ffffffff84161515614a4057600160a060020a03861660009081526008602052604090206001015463ffffffff1693505b6040805180820190915280614a5e8363ffffffff808a16906138da16565b8152602001614a768463ffffffff808916906138da16565b9052979650505050505050565b60008163ffffffff16118015614aa25750620f424063ffffffff821611155b151561154a576040805160e560020a62461bcd02815260206004820152601a60248201527f4552525f494e56414c49445f524553455256455f574549474854000000000000604482015290519081900360640190fd5b614b0061529d565b614b0861529d565b828410614b2057614b198484615081565b9150613957565b614b2a8385615081565b604080518082019091526020808301518252825190820152925090505092915050565b600954600090612ac590620f4240906116c390859068010000000000000000900463ffffffff908116906138da16565b600b546000908190600160a060020a0388811691161415614beb57600a54600160a060020a039081166000908152600c6020908152604080832054600b54909416835290912054865191870151601654614be4949363ffffffff808d1693908c169261513e565b9050614c3a565b600a54600160a060020a039081166000908152600c6020908152604080832054600b54909416835290912054865191870151601654614c37949363ffffffff808c1693908d169261513e565b90505b614c4b620f42406116c385846138da565b979650505050505050565b6000806000614c6361529d565b600080600080614c716151aa565b95509550614c848b8b600080898e6144aa565b91955093509150831515614ce2576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f5a45524f5f5441524745545f414d4f554e5400000000000000000000604482015290519081900360640190fd5b614ceb8a612aff565b9050808410614d44576040805160e560020a62461bcd02815260206004820152601a60248201527f4552525f5441524745545f414d4f554e545f544f4f5f48494748000000000000604482015290519081900360640190fd5b600160a060020a038b166000805160206152f48339815191521415614dbf57348914614dba576040805160e560020a62461bcd02815260206004820152601760248201527f4552525f4554485f414d4f554e545f4d49534d41544348000000000000000000604482015290519081900360640190fd5b614ec1565b34158015614e6b575088614e68614dd58d612aff565b8d600160a060020a03166370a08231306040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b158015614e3057600080fd5b505af1158015614e44573d6000803e3d6000fd5b505050506040513d6020811015614e5a57600080fd5b50519063ffffffff613b7b16565b10155b1515614ec1576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f494e56414c49445f414d4f554e540000000000000000000000000000604482015290519081900360640190fd5b614eca8b613dc0565b614eda818563ffffffff613b7b16565b600160a060020a038b16600090815260086020908152604080832093909355600c90522054614f0f908463ffffffff61395e16565b600160a060020a038b166000908152600c60205260409020558515614f5a57600a54600b54614f4d91600160a060020a0390811691166000806149bb565b8051601255602001516013555b509199919850909650505050505050565b7f80000000000000000000000000000000000000000000000000000000000000008110614f9457fe5b60408051848152602081018490528082018390529051600160a060020a038087169288821692918a16917f276856b36cbc45526a0ba64f44611557a2a8b68662c5388e9fe6d72e86e1c8cb9181900360600190a4505050505050565b600080614fff86868686613d23565b61500885612033565b915081600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561504857600080fd5b505af115801561505c573d6000803e3d6000fd5b505050506040513d602081101561507257600080fd5b50519050612227828287613cc3565b61508961529d565b7314484bfeebc29f863424b06f3529a051a31be5998211156150db57604080518082019091526c0c9f2c9cd04674edea4000000080825260208201908504848115156150d157fe5b0490529050612ac5565b6c0c9f2c9cd04674edea400000008311156151285760408051908101604052806c0c9f2c9cd04674edea400000008152602001846c0c9f2c9cd04674edea4000000085028115156150d157fe5b5060408051808201909152918252602082015290565b60008080615156876143588c8963ffffffff6138da16565b915061516c886143588b8863ffffffff6138da16565b90508181111561519857615191816116c360146143588684038963ffffffff6138da16565b925061519d565b600092505b5050979650505050505050565b60006151b461529d565b60006151be61529d565b6151c661529d565b6151ce6137c4565b92508260115414156151fc5760408051808201909152600f548152601054602082015260009550935061315f565b61520461413c565b60408051808201909152600f5480825260105460208301528251929450909250148015615238575080602001518260200151145b15615249576000829450945061315f565b8151600f55602082015160105560118390556152636137c8565b50600194909350915050565b6040805160a08101825260008082526020820181905291810182905260608101829052608081019190915290565b604080518082019091526000808252602082015290565b60206040519081016040528060019060208202803883395091929150505600536f7672796e53776170436f6e76657274657255706772616465720000000000000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee4552525f4143434553535f44454e4945440000000000000000000000000000004552525f494e56414c49445f524553455256455f434f554e5400000000000000a165627a7a72305820d6ceae0fa88e176fcec4250a8a72385cf1ae86e302a34151470ca7997955ccc20029", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x1 PUSH1 0x4 DUP2 SWAP1 SSTORE PUSH1 0x9 DUP1 SLOAD PUSH1 0x1 PUSH1 0x60 PUSH1 0x2 EXP SUB NOT AND SWAP1 SSTORE PUSH1 0x15 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SWAP2 OR SWAP1 SSTORE PUSH3 0x11170 PUSH1 0x16 SSTORE CALLVALUE DUP1 ISZERO PUSH3 0x3C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH1 0x60 DUP1 PUSH3 0x55BA DUP4 CODECOPY DUP2 ADD PUSH1 0x40 SWAP1 DUP2 MSTORE DUP2 MLOAD PUSH1 0x20 DUP4 ADD MLOAD SWAP2 SWAP1 SWAP3 ADD MLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND CALLER OR SWAP1 SSTORE DUP3 DUP3 DUP3 DUP3 DUP3 DUP3 DUP2 DUP1 PUSH3 0x8A DUP2 PUSH5 0x100000000 PUSH3 0x137 DUP2 MUL DIV JUMP JUMPDEST POP PUSH1 0x2 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT SWAP3 DUP4 AND DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x3 DUP1 SLOAD SWAP1 SWAP3 AND OR SWAP1 SSTORE DUP3 PUSH3 0xCA DUP2 PUSH5 0x100000000 PUSH3 0x137 DUP2 MUL DIV JUMP JUMPDEST DUP2 PUSH3 0xDF DUP2 PUSH5 0x100000000 PUSH3 0x1B2 DUP2 MUL DIV JUMP JUMPDEST POP POP PUSH1 0x5 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP5 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 OR SWAP1 SWAP3 SSTORE POP PUSH1 0x9 DUP1 SLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP3 AND PUSH5 0x100000000 MUL PUSH8 0xFFFFFFFF00000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE POP PUSH3 0x22B SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH3 0x1AF JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH3 0xF4240 PUSH4 0xFFFFFFFF DUP3 AND GT ISZERO PUSH3 0x1AF JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F434F4E56455253494F4E5F464545000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x537F DUP1 PUSH3 0x23B PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x312 JUMPI PUSH4 0xFFFFFFFF PUSH1 0xE0 PUSH1 0x2 EXP PUSH1 0x0 CALLDATALOAD DIV AND PUSH3 0x5E319C DUP2 EQ PUSH2 0x3B0 JUMPI DUP1 PUSH4 0x24C7EC7 EQ PUSH2 0x3E3 JUMPI DUP1 PUSH4 0x337E3FB EQ PUSH2 0x3FD JUMPI DUP1 PUSH4 0xA55FB3D EQ PUSH2 0x42E JUMPI DUP1 PUSH4 0xC7D5CD8 EQ PUSH2 0x457 JUMPI DUP1 PUSH4 0xE53AAE9 EQ PUSH2 0x485 JUMPI DUP1 PUSH4 0x119B90CD EQ PUSH2 0x4DA JUMPI DUP1 PUSH4 0x12C2ACA4 EQ PUSH2 0x507 JUMPI DUP1 PUSH4 0x16912F96 EQ PUSH2 0x51C JUMPI DUP1 PUSH4 0x19B64015 EQ PUSH2 0x531 JUMPI DUP1 PUSH4 0x1CFAB290 EQ PUSH2 0x549 JUMPI DUP1 PUSH4 0x1E1401F8 EQ PUSH2 0x56A JUMPI DUP1 PUSH4 0x21E6B53D EQ PUSH2 0x5AD JUMPI DUP1 PUSH4 0x22F3E2D4 EQ PUSH2 0x5CE JUMPI DUP1 PUSH4 0x2630C12F EQ PUSH2 0x5E3 JUMPI DUP1 PUSH4 0x2BD3C107 EQ PUSH2 0x5F8 JUMPI DUP1 PUSH4 0x2BF0C985 EQ PUSH2 0x619 JUMPI DUP1 PUSH4 0x2FE8A6AD EQ PUSH2 0x63A JUMPI DUP1 PUSH4 0x38A5E016 EQ PUSH2 0x64F JUMPI DUP1 PUSH4 0x395900D4 EQ PUSH2 0x664 JUMPI DUP1 PUSH4 0x3E8FF43F EQ PUSH2 0x68E JUMPI DUP1 PUSH4 0x46749468 EQ PUSH2 0x6BA JUMPI DUP1 PUSH4 0x49D10B64 EQ PUSH2 0x6D5 JUMPI DUP1 PUSH4 0x4AF80F0E EQ PUSH2 0x6EA JUMPI DUP1 PUSH4 0x54FD4D50 EQ PUSH2 0x70B JUMPI DUP1 PUSH4 0x55776B77 EQ PUSH2 0x720 JUMPI DUP1 PUSH4 0x5768ADCF EQ PUSH2 0x73A JUMPI DUP1 PUSH4 0x579CD3CA EQ PUSH2 0x75B JUMPI DUP1 PUSH4 0x5E35359E EQ PUSH2 0x770 JUMPI DUP1 PUSH4 0x61CD756E EQ PUSH2 0x79A JUMPI DUP1 PUSH4 0x67B6D57C EQ PUSH2 0x7AF JUMPI DUP1 PUSH4 0x69067D95 EQ PUSH2 0x7D0 JUMPI DUP1 PUSH4 0x690D8320 EQ PUSH2 0x7F4 JUMPI DUP1 PUSH4 0x69D1354A EQ PUSH2 0x815 JUMPI DUP1 PUSH4 0x6A49D2C4 EQ PUSH2 0x82D JUMPI DUP1 PUSH4 0x71F52BF3 EQ PUSH2 0x857 JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x86C JUMPI DUP1 PUSH4 0x7B103999 EQ PUSH2 0x881 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x896 JUMPI DUP1 PUSH4 0x94C275AD EQ PUSH2 0x8AB JUMPI DUP1 PUSH4 0x98A71DCB EQ PUSH2 0x8C0 JUMPI DUP1 PUSH4 0x9B99A8E2 EQ PUSH2 0x8E1 JUMPI DUP1 PUSH4 0xA32BFF44 EQ PUSH2 0x8F6 JUMPI DUP1 PUSH4 0xAF94B8D8 EQ PUSH2 0x90B JUMPI DUP1 PUSH4 0xB4A176D3 EQ PUSH2 0x935 JUMPI DUP1 PUSH4 0xBF754558 EQ PUSH2 0x94A JUMPI DUP1 PUSH4 0xBF7DA6BA EQ PUSH2 0x95F JUMPI DUP1 PUSH4 0xC3321FB0 EQ PUSH2 0x983 JUMPI DUP1 PUSH4 0xC45D3D92 EQ PUSH2 0x998 JUMPI DUP1 PUSH4 0xCDC91C69 EQ PUSH2 0x9AD JUMPI DUP1 PUSH4 0xD031370B EQ PUSH2 0x9C2 JUMPI DUP1 PUSH4 0xD260529C EQ PUSH2 0x9DA JUMPI DUP1 PUSH4 0xD3FB73B4 EQ PUSH2 0x9EF JUMPI DUP1 PUSH4 0xD4EE1D90 EQ PUSH2 0xA04 JUMPI DUP1 PUSH4 0xD55EC697 EQ PUSH2 0xA19 JUMPI DUP1 PUSH4 0xD64C5A1A EQ PUSH2 0xA2E JUMPI DUP1 PUSH4 0xD66BD524 EQ PUSH2 0xA59 JUMPI DUP1 PUSH4 0xD8959512 EQ PUSH2 0xA7A JUMPI DUP1 PUSH4 0xDB2830A4 EQ PUSH2 0xA9B JUMPI DUP1 PUSH4 0xDC75EB9A EQ PUSH2 0xAB0 JUMPI DUP1 PUSH4 0xDC8DE379 EQ PUSH2 0xAC5 JUMPI DUP1 PUSH4 0xE38192E3 EQ PUSH2 0xAE6 JUMPI DUP1 PUSH4 0xE8104AF9 EQ PUSH2 0xB0D JUMPI DUP1 PUSH4 0xE8DC12FF EQ PUSH2 0xB22 JUMPI DUP1 PUSH4 0xEC2240F5 EQ PUSH2 0xB4C JUMPI DUP1 PUSH4 0xECBCA55D EQ PUSH2 0xB61 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0xB7F JUMPI DUP1 PUSH4 0xF9CDDDE2 EQ PUSH2 0xBA0 JUMPI DUP1 PUSH4 0xFC0C546A EQ PUSH2 0xBB5 JUMPI JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x52F4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x0 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH32 0x353C2EB9E53A4A4A6D45D72082FF2E9DC829D1125618772A83EB0E7F86632C43 SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO PUSH2 0x3AE JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245534552564500000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3BC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3D1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0xBCA JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3EF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH1 0x4 CALLDATALOAD ISZERO ISZERO PUSH2 0xBF3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x409 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x412 PUSH2 0xC3B JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x43A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x443 PUSH2 0xC4A JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x463 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x46C PUSH2 0xC53 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x491 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4A6 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0xC5F JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP6 DUP7 MSTORE PUSH4 0xFFFFFFFF SWAP1 SWAP5 AND PUSH1 0x20 DUP7 ADD MSTORE SWAP2 ISZERO ISZERO DUP5 DUP5 ADD MSTORE ISZERO ISZERO PUSH1 0x60 DUP5 ADD MSTORE ISZERO ISZERO PUSH1 0x80 DUP4 ADD MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0xA0 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4E6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x44 CALLDATALOAD AND PUSH2 0xCFA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x513 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x443 PUSH2 0x1464 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x528 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH2 0x14AD JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x53D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x412 PUSH1 0x4 CALLDATALOAD PUSH2 0x14C1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x555 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x46C PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x14ED JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x576 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x594 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x151F JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5B9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x1539 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5DA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x443 PUSH2 0x154D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5EF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x412 PUSH2 0x1582 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x604 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3D1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x15A1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x625 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3D1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x15F6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x646 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x443 PUSH2 0x16D9 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x65B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH2 0x16FA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x670 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x170C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x69A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x6A3 PUSH2 0x17A7 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0xFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6C6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH1 0x4 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH2 0x17AC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6E1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH2 0x1830 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6F6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x1A90 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x717 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x6A3 PUSH2 0x1AC5 JUMP JUMPDEST PUSH2 0x3D1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH1 0x44 CALLDATALOAD PUSH2 0x1ACA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x746 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x412 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x2033 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x767 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x46C PUSH2 0x2051 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x77C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x2069 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7A6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x412 PUSH2 0x217D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7BB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x218C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7DC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x594 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x222F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x800 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x238A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x821 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH1 0x4 CALLDATALOAD PUSH2 0x248F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x839 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH4 0xFFFFFFFF PUSH1 0x24 CALLDATALOAD AND PUSH2 0x2534 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x863 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x6A3 PUSH2 0x2593 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x878 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH2 0x259D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x88D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x412 PUSH2 0x2651 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8A2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x412 PUSH2 0x2660 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8B7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x46C PUSH2 0x266F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8CC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3D1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x2683 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8ED JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x6A3 PUSH2 0x2695 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x902 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x594 PUSH2 0x269B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x917 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x594 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x26A4 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x941 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH2 0x2848 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x956 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x443 PUSH2 0x2874 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x96B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x2879 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x98F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3D1 PUSH2 0x28C1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9A4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x412 PUSH2 0x28C7 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9B9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH2 0x28D6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9CE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x412 PUSH1 0x4 CALLDATALOAD PUSH2 0x292F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9E6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x443 PUSH2 0x2957 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9FB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x412 PUSH2 0x295C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x412 PUSH2 0x296B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA25 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH2 0x297A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA3A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xA43 PUSH2 0x2A6F JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA65 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4A6 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x2A74 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA86 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3D1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x2ABA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xAA7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x594 PUSH2 0x2ACB JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xABC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x412 PUSH2 0x2AF0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xAD1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3D1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x2AFF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xAF2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3D1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH1 0x44 CALLDATALOAD PUSH2 0x2B28 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xB19 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3D1 PUSH2 0x2E8D JUMP JUMPDEST PUSH2 0x3D1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x44 CALLDATALOAD SWAP1 PUSH1 0x64 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x84 CALLDATALOAD AND PUSH2 0x2E93 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xB58 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x594 PUSH2 0x30E6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xB6D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH4 0xFFFFFFFF PUSH1 0x4 CALLDATALOAD AND PUSH2 0x3166 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xB8B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x325B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xBAC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x594 PUSH2 0x32EB JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xBC1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x412 PUSH2 0x32F4 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0xBD6 DUP2 PUSH2 0x3303 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0xBFB PUSH2 0x3382 JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD SWAP2 ISZERO ISZERO PUSH21 0x10000000000000000000000000000000000000000 MUL PUSH21 0xFF0000000000000000000000000000000000000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x15 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH4 0xFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0xC6F PUSH2 0x526F JUMP JUMPDEST POP POP POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP2 MLOAD PUSH1 0xA0 DUP2 ADD DUP4 MSTORE DUP2 SLOAD DUP1 DUP3 MSTORE PUSH1 0x1 SWAP1 SWAP3 ADD SLOAD PUSH4 0xFFFFFFFF DUP2 AND SWAP5 DUP3 ADD DUP6 SWAP1 MSTORE PUSH1 0xFF PUSH5 0x100000000 DUP3 DIV DUP2 AND ISZERO ISZERO SWAP5 DUP4 ADD SWAP5 SWAP1 SWAP5 MSTORE PUSH6 0x10000000000 DUP2 DIV DUP5 AND ISZERO ISZERO PUSH1 0x60 DUP4 ADD MSTORE PUSH7 0x1000000000000 SWAP1 DIV SWAP1 SWAP3 AND ISZERO ISZERO PUSH1 0x80 SWAP1 SWAP3 ADD DUP3 SWAP1 MSTORE SWAP6 SWAP2 SWAP5 POP SWAP2 SWAP3 POP DUP3 SWAP2 SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0xD0A PUSH2 0x33D2 JUMP JUMPDEST PUSH2 0xD12 PUSH2 0x3382 JUMP JUMPDEST DUP8 PUSH2 0xD1C DUP2 PUSH2 0x3303 JUMP JUMPDEST DUP8 PUSH2 0xD26 DUP2 PUSH2 0x342F JUMP JUMPDEST DUP8 PUSH2 0xD30 DUP2 PUSH2 0x342F JUMP JUMPDEST DUP10 PUSH2 0xD3A DUP2 PUSH2 0x3490 JUMP JUMPDEST DUP10 PUSH2 0xD44 DUP2 PUSH2 0x3490 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x8DA5CB5B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD ADDRESS SWAP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP2 PUSH4 0x8DA5CB5B SWAP2 PUSH1 0x4 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xDA3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xDB7 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xDCD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ PUSH2 0xE2D JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F414E43484F525F4E4F545F4F574E4544000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0xE56 PUSH32 0x436861696E6C696E6B4F7261636C6557686974656C6973740000000000000000 PUSH2 0x34F0 JUMP JUMPDEST SWAP10 POP DUP10 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x3AF32ABF DUP14 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xEB3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xEC7 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xEDD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD ISZERO ISZERO PUSH2 0xF35 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4F5241434C450000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP10 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x3AF32ABF DUP13 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xF90 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xFA4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xFBA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD ISZERO ISZERO PUSH2 0x1012 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4F5241434C450000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x101A PUSH2 0x3588 JUMP JUMPDEST PUSH1 0xA DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP16 AND OR SWAP1 SSTORE PUSH1 0x7 DUP1 SLOAD PUSH1 0x0 SWAP1 DUP2 LT PUSH2 0x1044 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP15 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x10A2 JUMPI PUSH1 0x7 DUP1 SLOAD PUSH1 0x1 SWAP1 DUP2 LT PUSH2 0x1072 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0xB DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x10DD JUMP JUMPDEST PUSH1 0x7 DUP1 SLOAD PUSH1 0x0 SWAP1 DUP2 LT PUSH2 0x10B1 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0xB DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMPDEST PUSH2 0x1106 PUSH32 0x436F6E766572746572466163746F727900000000000000000000000000000000 PUSH2 0x34F0 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xC977AED2 PUSH2 0x111C PUSH2 0x17A7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH2 0xFFFF AND PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x115D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1171 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1187 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP SWAP9 POP DUP9 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x1B27444E DUP15 PUSH1 0xB PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP16 DUP16 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP6 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP5 POP POP POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1258 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x126C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1282 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x9 DUP1 SLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH13 0x1000000000000000000000000 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND DUP2 MUL SWAP2 SWAP1 SWAP2 OR SWAP2 DUP3 SWAP1 SSTORE PUSH1 0xA SLOAD PUSH1 0xB SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xAE81800400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP3 DUP7 AND PUSH1 0x4 DUP5 ADD MSTORE SWAP1 DUP6 AND PUSH1 0x24 DUP4 ADD MSTORE DUP1 MLOAD SWAP3 SWAP1 SWAP4 DIV SWAP1 SWAP4 AND SWAP3 PUSH4 0xAE818004 SWAP3 PUSH1 0x44 DUP1 DUP4 ADD SWAP4 SWAP2 SWAP3 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1324 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1338 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x134E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD MLOAD PUSH1 0x10 DUP2 SWAP1 SSTORE PUSH1 0xF DUP3 SWAP1 SSTORE PUSH1 0x12 SWAP2 SWAP1 SWAP2 SSTORE PUSH1 0x13 SSTORE PUSH2 0x1372 PUSH2 0x37C4 JUMP JUMPDEST PUSH1 0x11 SSTORE PUSH1 0xA SLOAD PUSH2 0x138A SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0xBCA JUMP JUMPDEST PUSH1 0xA SLOAD SWAP1 SWAP9 POP PUSH2 0x13A2 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x2AFF JUMP JUMPDEST PUSH1 0xB SLOAD SWAP1 SWAP8 POP PUSH2 0x13BA SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x2AFF JUMP JUMPDEST SWAP6 POP DUP7 DUP9 EQ ISZERO PUSH2 0x13E5 JUMPI PUSH1 0x0 DUP9 GT DUP1 PUSH2 0x13D3 JUMPI POP PUSH1 0x0 DUP7 GT JUMPDEST ISZERO PUSH2 0x13E0 JUMPI PUSH2 0x13E0 PUSH2 0x37C8 JUMP JUMPDEST PUSH2 0x140E JUMP JUMPDEST PUSH1 0x0 DUP9 GT DUP1 ISZERO PUSH2 0x13F5 JUMPI POP PUSH1 0x0 DUP8 GT JUMPDEST DUP1 ISZERO PUSH2 0x1401 JUMPI POP PUSH1 0x0 DUP7 GT JUMPDEST ISZERO PUSH2 0x140E JUMPI PUSH2 0x140E PUSH2 0x37C8 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x1425 PUSH2 0x17A7 JUMP JUMPDEST PUSH2 0xFFFF AND PUSH32 0x6B08C2E2C9969E55A647A764DB9B554D64DC42F1A704DA11A6D5B129AD163F2C PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x52F4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x0 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH32 0x353C2EB9E53A4A4A6D45D72082FF2E9DC829D1125618772A83EB0E7F86632C43 SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH2 0x14B5 PUSH2 0x3382 JUMP JUMPDEST PUSH1 0x15 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x7 DUP3 DUP2 SLOAD DUP2 LT ISZERO ISZERO PUSH2 0x14D2 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0x14F9 DUP2 PUSH2 0x3303 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH4 0xFFFFFFFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x152D DUP6 DUP6 DUP6 PUSH2 0x26A4 JUMP JUMPDEST SWAP2 POP SWAP2 POP SWAP4 POP SWAP4 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1541 PUSH2 0x3382 JUMP JUMPDEST PUSH2 0x154A DUP2 PUSH2 0x218C JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1557 PUSH2 0x3840 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x157D JUMPI POP PUSH1 0x9 SLOAD PUSH13 0x1000000000000000000000000 SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND ISZERO ISZERO JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH13 0x1000000000000000000000000 SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0x15AD DUP2 PUSH2 0x3303 JUMP JUMPDEST PUSH2 0x15EF PUSH2 0x15B9 DUP5 PUSH2 0x2AFF JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x15E3 SWAP1 PUSH1 0x13 PUSH4 0xFFFFFFFF PUSH2 0x38DA AND JUMP JUMPDEST SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x395E AND JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x18160DDD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x163C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1650 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1666 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP2 SWAP6 POP AND SWAP3 POP PUSH2 0x1691 DUP4 PUSH2 0x2AFF JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 SWAP3 POP SWAP1 POP PUSH2 0x16CF DUP2 PUSH2 0x16C3 DUP5 DUP8 PUSH4 0xFFFFFFFF PUSH2 0x38DA AND JUMP JUMPDEST SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x39BB AND JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH2 0x1702 PUSH2 0x3382 JUMP JUMPDEST PUSH2 0x170A PUSH2 0x28D6 JUMP JUMPDEST JUMP JUMPDEST PUSH2 0x1714 PUSH2 0x3382 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x5E35359E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP6 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP3 ADD DUP6 SWAP1 MSTORE SWAP2 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP2 PUSH4 0x5E35359E SWAP2 PUSH1 0x64 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x178A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x179E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 SWAP1 JUMP JUMPDEST PUSH2 0x17B4 PUSH2 0x3382 JUMP JUMPDEST DUP2 PUSH1 0x14 PUSH1 0x0 PUSH1 0x7 PUSH1 0x0 DUP2 SLOAD DUP2 LT ISZERO ISZERO PUSH2 0x17C9 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 SWAP1 SWAP2 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP4 MSTORE DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x40 ADD DUP2 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE PUSH1 0x7 DUP1 SLOAD DUP4 SWAP3 PUSH1 0x14 SWAP3 SWAP1 SWAP2 PUSH1 0x1 SWAP1 DUP2 LT PUSH2 0x1807 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 SWAP1 SWAP2 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP4 MSTORE DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x40 ADD SWAP1 KECCAK256 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ DUP1 PUSH2 0x1865 JUMPI POP PUSH1 0x3 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x18A9 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5314 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x18D2 PUSH32 0x436F6E7472616374526567697374727900000000000000000000000000000000 PUSH2 0x34F0 JUMP JUMPDEST PUSH1 0x2 SLOAD SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP4 AND SWAP2 AND EQ DUP1 ISZERO SWAP1 PUSH2 0x18FB JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x1951 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245474953545259000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0xBB34534C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH32 0x436F6E7472616374526567697374727900000000000000000000000000000000 PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP2 PUSH4 0xBB34534C SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x19D5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x19E9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x19FF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ ISZERO PUSH2 0x1A60 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245474953545259000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP5 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT SWAP3 DUP4 AND OR SWAP1 SWAP3 SSTORE SWAP1 SWAP2 AND SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x1A98 PUSH2 0x3382 JUMP JUMPDEST DUP1 PUSH2 0x1AA2 DUP2 PUSH2 0x342F JUMP JUMPDEST POP PUSH1 0x6 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x20 DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x1ADA PUSH2 0x3A29 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH2 0x1AE7 PUSH2 0x3A83 JUMP JUMPDEST DUP8 PUSH2 0x1AF1 DUP2 PUSH2 0x3303 JUMP JUMPDEST DUP8 PUSH2 0x1AFB DUP2 PUSH2 0x3AE1 JUMP JUMPDEST DUP8 PUSH2 0x1B05 DUP2 PUSH2 0x3AE1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x52F4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ PUSH2 0x1B2A JUMPI CALLVALUE ISZERO PUSH2 0x1B2E JUMP JUMPDEST DUP10 CALLVALUE EQ JUMPDEST ISZERO ISZERO PUSH2 0x1B84 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4554485F414D4F554E545F4D49534D41544348000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x1B8C PUSH2 0x3B39 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x52F4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ ISZERO PUSH2 0x1C2E JUMPI PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x52F4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x0 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH32 0x353C2EB9E53A4A4A6D45D72082FF2E9DC829D1125618772A83EB0E7F86632C42 SLOAD PUSH2 0x1BF4 SWAP1 CALLVALUE PUSH4 0xFFFFFFFF PUSH2 0x3B7B AND JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x52F4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x0 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH32 0x353C2EB9E53A4A4A6D45D72082FF2E9DC829D1125618772A83EB0E7F86632C42 SSTORE JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x15 SLOAD SWAP1 SWAP8 POP PUSH1 0xFF AND ISZERO PUSH2 0x1CF7 JUMPI PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x14 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD ISZERO DUP1 PUSH2 0x1CA1 JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x14 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x1C9E DUP9 DUP13 PUSH4 0xFFFFFFFF PUSH2 0x395E AND JUMP JUMPDEST GT ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x1CF7 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4D41585F5354414B45445F42414C414E43455F524541434845440000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP13 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD DUP2 MLOAD PUSH32 0x18160DDD00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP2 MLOAD SWAP5 AND SWAP10 POP DUP10 SWAP4 PUSH4 0x18160DDD SWAP4 PUSH1 0x4 DUP1 DUP5 ADD SWAP5 SWAP4 DUP4 SWAP1 SUB ADD SWAP1 DUP3 SWAP1 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1D64 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1D78 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1D8E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP5 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x52F4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ PUSH2 0x1DBC JUMPI PUSH2 0x1DBC DUP12 CALLER ADDRESS DUP14 PUSH2 0x3BDB JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x1DE5 SWAP1 DUP12 PUSH4 0xFFFFFFFF PUSH2 0x395E AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP13 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE PUSH2 0x1E0E DUP8 DUP12 PUSH4 0xFFFFFFFF PUSH2 0x395E AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP13 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE SWAP4 POP DUP7 ISZERO DUP1 PUSH2 0x1E37 JUMPI POP DUP5 ISZERO JUMPDEST ISZERO PUSH2 0x1E44 JUMPI DUP10 SWAP4 POP PUSH2 0x1E5B JUMP JUMPDEST PUSH2 0x1E58 DUP8 PUSH2 0x16C3 DUP13 DUP9 PUSH4 0xFFFFFFFF PUSH2 0x38DA AND JUMP JUMPDEST SWAP4 POP JUMPDEST DUP9 DUP5 LT ISZERO PUSH2 0x1EB3 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F52455455524E5F544F4F5F4C4F570000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xC6C3BBE600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP10 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE CALLER PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP3 ADD DUP9 SWAP1 MSTORE SWAP2 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP2 PUSH4 0xC6C3BBE6 SWAP2 PUSH1 0x64 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1F27 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1F3B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x1F47 PUSH2 0x37C8 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND CALLER PUSH32 0x4A1A2A6176E9646D9E3157F7C2AB3C499F18337C0B0828CFB28E0A61DE4A11F7 DUP13 PUSH2 0x1F84 DUP12 DUP3 PUSH4 0xFFFFFFFF PUSH2 0x395E AND JUMP JUMPDEST PUSH2 0x1F94 DUP11 DUP11 PUSH4 0xFFFFFFFF PUSH2 0x395E AND JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP4 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP3 SWAP1 SWAP3 MSTORE DUP3 DUP3 ADD MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG3 PUSH2 0x1FCB DUP7 PUSH2 0x1FC5 DUP8 DUP8 PUSH4 0xFFFFFFFF PUSH2 0x395E AND JUMP JUMPDEST DUP14 PUSH2 0x3CC3 JUMP JUMPDEST PUSH2 0x2020 PUSH1 0x7 PUSH1 0x0 DUP2 SLOAD DUP2 LT ISZERO ISZERO PUSH2 0x1FDE JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x7 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP2 PUSH1 0x1 SWAP1 DUP2 LT PUSH2 0x2005 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP1 DUP1 PUSH2 0x3D23 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0x4 SSTORE POP SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD AND SWAP1 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH9 0x10000000000000000 SWAP1 DIV PUSH4 0xFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2073 PUSH2 0x3A29 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH2 0x2080 PUSH2 0x3382 JUMP JUMPDEST PUSH2 0x2097 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x52D4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x34F0 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD SWAP1 SWAP2 POP PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 PUSH2 0x20D4 JUMPI POP PUSH2 0x20D2 PUSH2 0x154D JUMP JUMPDEST ISZERO JUMPDEST DUP1 PUSH2 0x20EC JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ JUMPDEST ISZERO ISZERO PUSH2 0x2130 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5314 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x213B DUP5 DUP5 DUP5 PUSH2 0x3D8F JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x2172 JUMPI PUSH2 0x2172 DUP5 PUSH2 0x3DC0 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0x4 SSTORE POP POP JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH2 0x2194 PUSH2 0x3382 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x52D4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x21AC DUP2 PUSH2 0x3EB4 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xF2FDE38B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP2 PUSH4 0xF2FDE38B SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2213 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2227 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 DUP12 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x18160DDD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x227C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2290 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x22A6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP15 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD SWAP1 SWAP4 AND DUP3 MSTORE PUSH1 0xC SWAP1 MSTORE KECCAK256 SLOAD SWAP1 SWAP9 POP SWAP7 POP DUP8 DUP12 LT ISZERO PUSH2 0x2371 JUMPI PUSH1 0xA SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x2309 SWAP1 PUSH1 0x14 PUSH4 0xFFFFFFFF PUSH2 0x38DA AND JUMP JUMPDEST PUSH1 0xA SLOAD SWAP1 SWAP7 POP PUSH2 0x2321 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x15A1 JUMP JUMPDEST SWAP5 POP DUP5 DUP7 LT PUSH2 0x2331 JUMPI DUP5 DUP7 PUSH2 0x2334 JUMP JUMPDEST DUP6 DUP6 JUMPDEST SWAP1 SWAP5 POP SWAP3 POP PUSH2 0x234D DUP9 PUSH2 0x16C3 DUP14 DUP11 PUSH4 0xFFFFFFFF PUSH2 0x38DA AND JUMP JUMPDEST SWAP2 POP PUSH2 0x2363 DUP4 PUSH2 0x16C3 DUP5 DUP8 PUSH4 0xFFFFFFFF PUSH2 0x38DA AND JUMP JUMPDEST SWAP10 POP POP DUP9 DUP2 SUB SWAP8 POP DUP9 PUSH2 0x237B JUMP JUMPDEST SWAP6 SWAP9 POP PUSH1 0x0 SWAP8 POP DUP9 SWAP6 JUMPDEST POP POP POP POP POP POP POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2394 PUSH2 0x3A29 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH2 0x23A1 PUSH2 0x3382 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x52F4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x23B9 DUP2 PUSH2 0x3303 JUMP JUMPDEST PUSH2 0x23D0 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x52D4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x34F0 JUMP JUMPDEST SWAP2 POP PUSH2 0x23DA PUSH2 0x154D JUMP JUMPDEST ISZERO DUP1 PUSH2 0x23F3 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 DUP2 AND SWAP2 AND EQ JUMPDEST ISZERO ISZERO PUSH2 0x2437 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5314 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP1 ADDRESS BALANCE DUP1 ISZERO PUSH2 0x8FC MUL SWAP2 PUSH1 0x0 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x246D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH2 0x2485 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x52F4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x3DC0 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0x4 SSTORE POP JUMP JUMPDEST PUSH2 0x2497 PUSH2 0x3382 JUMP JUMPDEST PUSH3 0x186A0 DUP2 GT ISZERO PUSH2 0x24F2 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F44594E414D49435F4645455F464143544F520000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x16 SLOAD PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP4 SWAP1 MSTORE DUP1 MLOAD PUSH32 0x382FD3516344712A511DCD464FF8E6AB54139D6A28F64087A3253353EE7A5679 SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG1 PUSH1 0x16 SSTORE JUMP JUMPDEST PUSH1 0x2 PUSH2 0x253E PUSH2 0x2695 JUMP JUMPDEST PUSH2 0xFFFF AND LT PUSH2 0x2585 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5334 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x258F DUP3 DUP3 PUSH2 0x3F0A JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x157D PUSH2 0x2695 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x25ED JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5314 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND SWAP4 SWAP1 SWAP2 AND SWAP2 PUSH32 0x343765429AEA5A34B3FF6A3785A98A5ABB2597ACA87BFBB58632C173D585373A SWAP2 LOG3 PUSH1 0x1 DUP1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND OR SWAP1 SWAP2 SSTORE AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH5 0x100000000 SWAP1 DIV PUSH4 0xFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x14 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x7 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0xF SLOAD PUSH1 0x10 SLOAD DUP3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x26B2 PUSH2 0x529D JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x26C0 PUSH2 0x3A83 JUMP JUMPDEST PUSH2 0x26C9 DUP13 PUSH2 0x3303 JUMP JUMPDEST PUSH2 0x26D2 DUP12 PUSH2 0x3303 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP13 DUP2 AND SWAP1 DUP13 AND EQ ISZERO PUSH2 0x2736 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F534F555243455F54415247455400000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x273E PUSH2 0x37C4 JUMP JUMPDEST PUSH1 0x11 SLOAD EQ ISZERO PUSH2 0x27E5 JUMPI PUSH1 0xF PUSH1 0x40 DUP1 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD SLOAD DUP2 MSTORE POP POP SWAP5 POP PUSH1 0x8 PUSH1 0x0 DUP14 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH4 0xFFFFFFFF AND SWAP7 POP PUSH1 0x8 PUSH1 0x0 DUP13 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH4 0xFFFFFFFF AND SWAP6 POP PUSH2 0x2825 JUMP JUMPDEST PUSH2 0x27ED PUSH2 0x413C JUMP JUMPDEST SWAP5 POP PUSH2 0x27F8 DUP6 PUSH2 0x4380 JUMP JUMPDEST PUSH1 0xA SLOAD SWAP2 SWAP6 POP SWAP4 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP14 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x281E JUMPI DUP4 SWAP7 POP DUP3 SWAP6 POP PUSH2 0x2825 JUMP JUMPDEST DUP3 SWAP7 POP DUP4 SWAP6 POP JUMPDEST PUSH2 0x2833 DUP13 DUP13 DUP10 DUP10 DUP10 DUP16 PUSH2 0x44AA JUMP JUMPDEST SWAP2 SWAP15 SWAP2 SWAP14 POP SWAP1 SWAP12 POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x2850 PUSH2 0x3382 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x2 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x1 DUP2 JUMP JUMPDEST PUSH2 0x2881 PUSH2 0x3382 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x52D4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x2899 DUP2 PUSH2 0x3EB4 JUMP JUMPDEST DUP3 PUSH2 0x28A3 DUP2 PUSH2 0x3303 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE JUMP JUMPDEST PUSH1 0x11 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x1 PUSH2 0x28E0 PUSH2 0x2695 JUMP JUMPDEST PUSH2 0xFFFF AND GT PUSH2 0x2927 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5334 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x170A PUSH2 0x4646 JUMP JUMPDEST PUSH1 0x7 DUP1 SLOAD DUP3 SWAP1 DUP2 LT PUSH2 0x293D JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP1 POP DUP2 JUMP JUMPDEST PUSH1 0x1 SWAP1 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2984 PUSH2 0x3382 JUMP JUMPDEST PUSH2 0x299B PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x52D4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x34F0 JUMP JUMPDEST PUSH1 0x5 SLOAD SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x29B5 PUSH2 0x17A7 JUMP JUMPDEST PUSH2 0xFFFF AND PUSH32 0x6B08C2E2C9969E55A647A764DB9B554D64DC42F1A704DA11A6D5B129AD163F2C PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH2 0x29EE DUP2 PUSH2 0x325B JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x90F58C9600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 AND SWAP2 PUSH4 0x90F58C96 SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2A4F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2A63 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x154A PUSH2 0x259D JUMP JUMPDEST PUSH1 0x14 SWAP1 JUMP JUMPDEST PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD PUSH4 0xFFFFFFFF DUP2 AND SWAP1 PUSH1 0xFF PUSH5 0x100000000 DUP3 DIV DUP2 AND SWAP2 PUSH6 0x10000000000 DUP2 DIV DUP3 AND SWAP2 PUSH7 0x1000000000000 SWAP1 SWAP2 DIV AND DUP6 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2AC5 DUP3 PUSH2 0x2AFF JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2AD6 PUSH2 0x529D JUMP JUMPDEST PUSH2 0x2ADE PUSH2 0x413C JUMP JUMPDEST DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD MLOAD SWAP1 SWAP5 SWAP1 SWAP4 POP SWAP2 POP POP JUMP JUMPDEST PUSH1 0xB SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0x2B0B DUP2 PUSH2 0x3303 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x2B39 PUSH2 0x3A29 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH2 0x2B46 PUSH2 0x3A83 JUMP JUMPDEST DUP9 PUSH2 0x2B50 DUP2 PUSH2 0x4712 JUMP JUMPDEST DUP9 PUSH2 0x2B5A DUP2 PUSH2 0x3AE1 JUMP JUMPDEST DUP9 PUSH2 0x2B64 DUP2 PUSH2 0x3AE1 JUMP JUMPDEST PUSH2 0x2B6C PUSH2 0x3B39 JUMP JUMPDEST DUP12 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x18160DDD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2BAA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2BBE JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2BD4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP8 POP PUSH2 0x2BE2 DUP13 DUP13 PUSH2 0x222F JUMP JUMPDEST POP SWAP7 POP DUP10 DUP8 LT ISZERO PUSH2 0x2C3D JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F52455455524E5F544F4F5F4C4F570000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0xE PUSH1 0x0 DUP14 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP6 POP PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xF6B911BC DUP14 CALLER DUP15 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP4 POP POP POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2D0A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2D1E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x2D4B SWAP2 POP DUP9 PUSH4 0xFFFFFFFF PUSH2 0x3B7B AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE PUSH1 0xC SWAP1 MSTORE KECCAK256 SLOAD PUSH2 0x2D80 SWAP1 DUP9 PUSH4 0xFFFFFFFF PUSH2 0x3B7B AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP3 SWAP1 SSTORE SWAP1 SWAP6 POP PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x52F4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ ISZERO PUSH2 0x2DE6 JUMPI PUSH1 0x40 MLOAD CALLER SWAP1 DUP9 ISZERO PUSH2 0x8FC MUL SWAP1 DUP10 SWAP1 PUSH1 0x0 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x2DE0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH2 0x2DF1 JUMP JUMPDEST PUSH2 0x2DF1 DUP7 CALLER DUP10 PUSH2 0x4783 JUMP JUMPDEST PUSH2 0x2DF9 PUSH2 0x37C8 JUMP JUMPDEST PUSH2 0x2E09 DUP9 DUP13 PUSH4 0xFFFFFFFF PUSH2 0x3B7B AND JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP10 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP9 SWAP1 MSTORE DUP1 DUP3 ADD DUP4 SWAP1 MSTORE SWAP1 MLOAD SWAP2 SWAP6 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 AND SWAP2 CALLER SWAP2 PUSH32 0xBC7D19D505C7EC4DB83F3B51F19FB98C4C8A99922E7839D1EE608DFBEE29501B SWAP2 SWAP1 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG3 PUSH2 0x2E65 DUP13 DUP6 DUP9 PUSH2 0x3CC3 JUMP JUMPDEST PUSH2 0x2E78 PUSH1 0x7 PUSH1 0x0 DUP2 SLOAD DUP2 LT ISZERO ISZERO PUSH2 0x1FDE JUMPI INVALID JUMPDEST POP POP PUSH1 0x1 PUSH1 0x4 SSTORE POP SWAP3 SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x16 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2E9D PUSH2 0x3A29 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH32 0x536F7672796E537761704E6574776F726B000000000000000000000000000000 PUSH2 0x2ECC DUP2 PUSH2 0x3EB4 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 DUP2 AND SWAP1 DUP8 AND EQ ISZERO PUSH2 0x2F30 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F534F555243455F54415247455400000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND ISZERO DUP1 PUSH2 0x3073 JUMPI POP PUSH1 0x6 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x3AF32ABF00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP2 PUSH4 0x3AF32ABF SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2FAB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2FBF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2FD5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD DUP1 ISZERO PUSH2 0x3073 JUMPI POP PUSH1 0x6 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x3AF32ABF00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP2 PUSH4 0x3AF32ABF SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3046 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x305A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x3070 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD JUMPDEST ISZERO ISZERO PUSH2 0x30C9 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4E4F545F57484954454C495354454400000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x30D6 DUP8 DUP8 DUP8 DUP8 DUP8 PUSH2 0x483A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x4 SSTORE SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x30F1 PUSH2 0x529D JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x30FC PUSH2 0x413C JUMP JUMPDEST SWAP3 POP PUSH2 0x3107 DUP4 PUSH2 0x4380 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x7 PUSH1 0x0 DUP2 SLOAD DUP2 LT ISZERO ISZERO PUSH2 0x311B JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0xA SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x3150 JUMPI PUSH4 0xFFFFFFFF DUP1 DUP4 AND SWAP6 POP DUP2 AND SWAP4 POP PUSH2 0x315F JUMP JUMPDEST PUSH4 0xFFFFFFFF DUP1 DUP3 AND SWAP6 POP DUP3 AND SWAP4 POP JUMPDEST POP POP POP SWAP1 SWAP2 JUMP JUMPDEST PUSH2 0x316E PUSH2 0x3382 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH4 0xFFFFFFFF PUSH5 0x100000000 SWAP1 SWAP2 DIV DUP2 AND SWAP1 DUP3 AND GT ISZERO PUSH2 0x31DA JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F434F4E56455253494F4E5F464545000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH4 0xFFFFFFFF PUSH9 0x10000000000000000 SWAP1 SWAP4 DIV DUP4 AND DUP2 MSTORE SWAP2 DUP4 AND PUSH1 0x20 DUP4 ADD MSTORE DUP1 MLOAD PUSH32 0x81CD2FFB37DD237C0E4E2A3DE5265FCF9DEB43D3E7801E80DB9F1CCFBA7EE600 SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG1 PUSH1 0x9 DUP1 SLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP3 AND PUSH9 0x10000000000000000 MUL PUSH12 0xFFFFFFFF0000000000000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x3263 PUSH2 0x3382 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x32C9 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F4F574E4552000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x12 SLOAD PUSH1 0x13 SLOAD DUP3 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO PUSH2 0x154A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245534552564500000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x170A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5314 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x33DA PUSH2 0x154D JUMP JUMPDEST ISZERO PUSH2 0x170A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xA PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F41435449564500000000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ADDRESS EQ ISZERO PUSH2 0x154A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F414444524553535F49535F53454C4600000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0x154A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xBB34534C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP2 PUSH4 0xBB34534C SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3556 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x356A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x3580 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP6 POP DUP6 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x6D3E313E PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x35E8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x35FC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x3625 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 MLOAD PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x363D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD PUSH1 0x20 DUP2 ADD DUP5 DUP2 GT ISZERO PUSH2 0x3650 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP6 PUSH1 0x20 DUP3 MUL DUP4 ADD GT PUSH5 0x100000000 DUP3 GT OR ISZERO PUSH2 0x366D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP DUP1 MLOAD PUSH1 0x7 SLOAD SWAP2 SWAP10 POP ISZERO SWAP8 POP SWAP6 POP PUSH1 0x0 SWAP5 POP POP POP POP JUMPDEST DUP3 DUP3 LT ISZERO PUSH2 0x2227 JUMPI DUP4 ISZERO PUSH2 0x3703 JUMPI DUP6 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x9CBF9E36 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x36D0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x36E4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x36FA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 POP PUSH2 0x371E JUMP JUMPDEST DUP5 DUP3 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3711 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD SWAP1 POP JUMPDEST DUP1 PUSH1 0xD PUSH1 0x0 PUSH1 0x7 DUP6 DUP2 SLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3732 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 SWAP2 SWAP1 SWAP2 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 DUP2 AND DUP5 MSTORE SWAP1 DUP4 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x40 SWAP1 SWAP2 ADD SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND SWAP3 SWAP1 SWAP2 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH1 0x7 DUP1 SLOAD DUP4 SWAP1 DUP2 LT PUSH2 0x3780 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 SWAP1 SWAP2 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 DUP2 AND DUP5 MSTORE PUSH1 0xE SWAP1 SWAP3 MSTORE PUSH1 0x40 SWAP1 SWAP3 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND SWAP2 SWAP1 SWAP3 AND OR SWAP1 SSTORE PUSH1 0x1 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x3684 JUMP JUMPDEST TIMESTAMP SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0xF SLOAD DUP2 MSTORE PUSH1 0x10 SLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 SWAP1 DUP2 SWAP1 PUSH2 0x37ED SWAP1 PUSH2 0x4380 JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 PUSH1 0x1 SWAP1 DUP2 ADD DUP1 SLOAD PUSH4 0xFFFFFFFF SWAP8 DUP9 AND PUSH4 0xFFFFFFFF NOT SWAP2 DUP3 AND OR SWAP1 SWAP2 SSTORE PUSH1 0xB SLOAD SWAP1 SWAP5 AND DUP4 MSTORE SWAP2 KECCAK256 ADD DUP1 SLOAD SWAP3 SWAP1 SWAP4 AND SWAP2 AND OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 ADDRESS PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x8DA5CB5B PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x389F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x38B3 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x38C9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 ISZERO ISZERO PUSH2 0x38ED JUMPI PUSH1 0x0 SWAP2 POP PUSH2 0x3957 JUMP JUMPDEST POP DUP3 DUP3 MUL DUP3 DUP5 DUP3 DUP2 ISZERO ISZERO PUSH2 0x38FD JUMPI INVALID JUMPDEST DIV EQ PUSH2 0x3953 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP1 SWAP2 POP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 ADD DUP4 DUP2 LT ISZERO PUSH2 0x3953 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP4 GT PUSH2 0x3A15 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4449564944455F42595F5A45524F0000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP3 DUP5 DUP2 ISZERO ISZERO PUSH2 0x3A20 JUMPI INVALID JUMPDEST DIV SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH1 0x1 EQ PUSH2 0x170A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5245454E5452414E4359000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x3A8B PUSH2 0x154D JUMP JUMPDEST ISZERO ISZERO PUSH2 0x170A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E4143544956450000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 GT PUSH2 0x154A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5A45524F5F56414C5545000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x258F JUMPI PUSH2 0x3B73 PUSH1 0x7 DUP3 DUP2 SLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3B59 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x3DC0 JUMP JUMPDEST PUSH1 0x1 ADD PUSH2 0x3B3F JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT ISZERO PUSH2 0x3BD5 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F554E444552464C4F5700000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP SWAP1 SUB SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x7472616E7366657246726F6D28616464726573732C616464726573732C75696E DUP2 MSTORE PUSH32 0x7432353629000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP3 MLOAD SWAP2 DUP3 SWAP1 SUB PUSH1 0x25 ADD DUP3 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP9 AND PUSH1 0x24 DUP6 ADD MSTORE DUP7 AND PUSH1 0x44 DUP5 ADD MSTORE PUSH1 0x64 DUP1 DUP5 ADD DUP7 SWAP1 MSTORE DUP5 MLOAD DUP1 DUP6 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x84 SWAP1 SWAP4 ADD SWAP1 SWAP4 MSTORE DUP2 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE PUSH2 0x3CBD SWAP1 DUP6 SWAP1 PUSH2 0x492D JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP3 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SLOAD DUP3 MLOAD SWAP1 DUP2 MSTORE SWAP1 DUP2 ADD DUP7 SWAP1 MSTORE DUP2 MLOAD SWAP3 SWAP4 DUP8 AND SWAP3 PUSH32 0x77F29993CF2C084E726F7E802DA0719D6A0ADE3E204BADC7A3FFD57ECB768C24 SWAP3 SWAP2 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH2 0x3D2B PUSH2 0x529D JUMP JUMPDEST PUSH2 0x3D37 DUP6 DUP6 DUP6 DUP6 PUSH2 0x49BB JUMP JUMPDEST DUP1 MLOAD PUSH1 0x20 DUP1 DUP4 ADD MLOAD PUSH1 0x40 DUP1 MLOAD SWAP4 DUP5 MSTORE SWAP2 DUP4 ADD MSTORE DUP1 MLOAD SWAP3 SWAP4 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP9 AND SWAP4 SWAP1 DUP10 AND SWAP3 PUSH32 0x77F29993CF2C084E726F7E802DA0719D6A0ADE3E204BADC7A3FFD57ECB768C24 SWAP3 SWAP1 DUP3 SWAP1 SUB ADD SWAP1 LOG3 POP POP POP POP POP JUMP JUMPDEST PUSH2 0x3D97 PUSH2 0x3382 JUMP JUMPDEST DUP3 PUSH2 0x3DA1 DUP2 PUSH2 0x3490 JUMP JUMPDEST DUP3 PUSH2 0x3DAB DUP2 PUSH2 0x3490 JUMP JUMPDEST DUP4 PUSH2 0x3DB5 DUP2 PUSH2 0x342F JUMP JUMPDEST PUSH2 0x2227 DUP7 DUP7 DUP7 PUSH2 0x4783 JUMP JUMPDEST DUP1 PUSH2 0x3DCA DUP2 PUSH2 0x3303 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 AND PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x52F4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ ISZERO PUSH2 0x3E0A JUMPI PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 ADDRESS BALANCE SWAP1 SSTORE PUSH2 0x258F JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3E6B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3E7F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x3E95 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE POP POP JUMP JUMPDEST PUSH2 0x3EBD DUP2 PUSH2 0x34F0 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x154A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5314 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x3F14 PUSH2 0x3382 JUMP JUMPDEST PUSH2 0x3F1C PUSH2 0x33D2 JUMP JUMPDEST DUP3 PUSH2 0x3F26 DUP2 PUSH2 0x3490 JUMP JUMPDEST DUP4 PUSH2 0x3F30 DUP2 PUSH2 0x342F JUMP JUMPDEST DUP4 PUSH2 0x3F3A DUP2 PUSH2 0x4A83 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 DUP2 AND SWAP2 AND EQ DUP1 ISZERO SWAP1 PUSH2 0x3F7E JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x3FD4 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245534552564500000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x9 SLOAD PUSH4 0xFFFFFFFF SWAP1 DUP2 AND PUSH3 0xF4240 SUB DUP2 AND SWAP1 DUP7 AND GT ISZERO PUSH2 0x403F JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F574549474854000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0xFFFF PUSH2 0x404A PUSH2 0x2695 JUMP JUMPDEST PUSH2 0xFFFF AND LT PUSH2 0x4091 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5334 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP2 DUP2 SSTORE PUSH1 0x1 SWAP1 DUP2 ADD DUP1 SLOAD PUSH7 0xFF000000000000 NOT PUSH4 0xFFFFFFFF DUP1 DUP9 AND PUSH4 0xFFFFFFFF NOT SWAP4 DUP5 AND OR SWAP2 SWAP1 SWAP2 AND PUSH7 0x1000000000000 OR SWAP1 SWAP3 SSTORE PUSH1 0x7 DUP1 SLOAD SWAP4 DUP5 ADD DUP2 SSTORE SWAP1 SWAP4 MSTORE PUSH32 0xA66CC928B5EDB82AF9BD49922954155AB7B0942694BEA4CE44661D9A8736C688 SWAP1 SWAP2 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND SWAP1 SWAP4 OR SWAP1 SWAP3 SSTORE PUSH1 0x9 DUP1 SLOAD DUP1 DUP5 AND SWAP1 SWAP5 ADD SWAP1 SWAP3 AND SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE POP JUMP JUMPDEST PUSH2 0x4144 PUSH2 0x529D JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x4152 PUSH2 0x529D JUMP JUMPDEST PUSH2 0x415A PUSH2 0x529D JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0xA SLOAD PUSH1 0xB SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xB1772D7A00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND PUSH1 0x4 DUP3 ADD MSTORE SWAP2 DUP4 AND PUSH1 0x24 DUP4 ADD MSTORE MLOAD PUSH1 0x0 SWAP4 DUP5 SWAP4 DUP5 SWAP4 DUP5 SWAP4 PUSH13 0x1000000000000000000000000 SWAP1 SWAP4 DIV SWAP1 SWAP2 AND SWAP2 PUSH4 0xB1772D7A SWAP2 PUSH1 0x44 DUP1 DUP3 ADD SWAP3 PUSH1 0x60 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x41E8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x41FC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x60 DUP2 LT ISZERO PUSH2 0x4212 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD PUSH1 0x20 DUP3 ADD MLOAD PUSH1 0x40 SWAP1 SWAP3 ADD MLOAD PUSH1 0x11 SLOAD SWAP2 SWAP13 POP SWAP2 SWAP11 POP SWAP1 SWAP9 POP DUP9 GT ISZERO PUSH2 0x424F JUMPI PUSH1 0x40 DUP1 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 DUP12 DUP2 MSTORE PUSH1 0x20 ADD DUP11 DUP2 MSTORE POP SWAP11 POP PUSH2 0x4373 JUMP JUMPDEST PUSH1 0x11 SLOAD PUSH2 0x425A PUSH2 0x37C4 JUMP JUMPDEST SUB SWAP7 POP DUP7 ISZERO ISZERO PUSH2 0x4282 JUMPI PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0xF SLOAD DUP2 MSTORE PUSH1 0x10 SLOAD PUSH1 0x20 DUP3 ADD MSTORE SWAP11 POP PUSH2 0x4373 JUMP JUMPDEST PUSH2 0x258 DUP8 LT PUSH2 0x42A9 JUMPI PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x12 SLOAD DUP2 MSTORE PUSH1 0x13 SLOAD PUSH1 0x20 DUP3 ADD MSTORE SWAP11 POP PUSH2 0x4373 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD DUP3 MSTORE PUSH1 0xF SLOAD DUP2 MSTORE PUSH1 0x10 SLOAD PUSH1 0x20 DUP1 DUP4 ADD SWAP2 DUP3 MSTORE DUP4 MLOAD DUP1 DUP6 ADD SWAP1 SWAP5 MSTORE PUSH1 0x12 SLOAD DUP1 DUP6 MSTORE PUSH1 0x13 SLOAD SWAP2 DUP6 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP1 MLOAD SWAP2 SWAP9 POP SWAP2 SWAP7 POP PUSH2 0x42F1 SWAP2 PUSH4 0xFFFFFFFF PUSH2 0x38DA AND JUMP JUMPDEST PUSH1 0x20 DUP7 ADD MLOAD DUP8 MLOAD SWAP2 SWAP6 POP PUSH2 0x430B SWAP2 SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x38DA AND JUMP JUMPDEST SWAP3 POP PUSH2 0x4335 PUSH2 0x4320 DUP6 DUP10 PUSH4 0xFFFFFFFF PUSH2 0x38DA AND JUMP JUMPDEST PUSH2 0x15E3 DUP6 PUSH2 0x258 DUP12 SWAP1 SUB PUSH4 0xFFFFFFFF PUSH2 0x38DA AND JUMP JUMPDEST SWAP2 POP PUSH2 0x4364 PUSH2 0x258 PUSH2 0x4358 DUP8 PUSH1 0x20 ADD MLOAD DUP10 PUSH1 0x20 ADD MLOAD PUSH2 0x38DA SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x38DA AND JUMP JUMPDEST SWAP1 POP PUSH2 0x4370 DUP3 DUP3 PUSH2 0x4AF8 JUMP JUMPDEST SWAP11 POP JUMPDEST POP POP POP POP POP POP POP POP POP POP SWAP1 JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD SWAP1 SWAP2 DUP3 SWAP2 SWAP1 DUP3 SWAP1 DUP2 SWAP1 PUSH2 0x43AD SWAP1 PUSH2 0x15A1 JUMP JUMPDEST PUSH1 0xB SLOAD SWAP1 SWAP3 POP PUSH2 0x43C5 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x15A1 JUMP JUMPDEST SWAP1 POP PUSH2 0x43F0 PUSH32 0x536F7672796E53776170466F726D756C61000000000000000000000000000000 PUSH2 0x34F0 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xA11AA1B4 PUSH2 0x440F DUP6 PUSH1 0x14 PUSH4 0xFFFFFFFF PUSH2 0x38DA AND JUMP JUMPDEST DUP9 MLOAD PUSH1 0x20 DUP11 ADD MLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0xE0 PUSH1 0x2 EXP PUSH4 0xFFFFFFFF DUP8 AND MUL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP5 SWAP1 SWAP5 MSTORE PUSH1 0x24 DUP5 ADD DUP9 SWAP1 MSTORE PUSH1 0x44 DUP5 ADD DUP8 SWAP1 MSTORE PUSH1 0x64 DUP5 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x84 DUP4 ADD MSTORE DUP1 MLOAD PUSH1 0xA4 DUP1 DUP5 ADD SWAP4 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x446A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x447E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x4494 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD MLOAD SWAP1 SWAP6 POP SWAP4 POP POP POP POP SWAP2 POP SWAP2 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP1 DUP1 PUSH4 0xFFFFFFFF DUP10 AND ISZERO ISZERO PUSH2 0x44E2 JUMPI PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH4 0xFFFFFFFF AND SWAP9 POP JUMPDEST PUSH4 0xFFFFFFFF DUP9 AND ISZERO ISZERO PUSH2 0x4514 JUMPI PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP11 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH4 0xFFFFFFFF AND SWAP8 POP JUMPDEST PUSH2 0x451D DUP12 PUSH2 0x15A1 JUMP JUMPDEST SWAP2 POP PUSH2 0x4528 DUP11 PUSH2 0x15A1 JUMP JUMPDEST SWAP1 POP PUSH2 0x4553 PUSH32 0x536F7672796E53776170466F726D756C61000000000000000000000000000000 PUSH2 0x34F0 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x94491FAB00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH4 0xFFFFFFFF DUP1 DUP14 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP3 ADD DUP6 SWAP1 MSTORE DUP12 AND PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 DUP2 ADD DUP10 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 PUSH4 0x94491FAB SWAP2 PUSH1 0xA4 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x45DA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x45EE JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x4604 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP5 POP PUSH2 0x4611 DUP6 PUSH2 0x4B4D JUMP JUMPDEST SWAP4 POP PUSH2 0x4624 DUP5 PUSH2 0x15E3 DUP13 DUP13 DUP13 DUP13 DUP12 PUSH2 0x4B7D JUMP JUMPDEST SWAP3 POP PUSH2 0x4636 DUP6 DUP5 PUSH4 0xFFFFFFFF PUSH2 0x3B7B AND JUMP JUMPDEST SWAP5 POP POP POP SWAP7 POP SWAP7 POP SWAP7 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0x464E PUSH2 0x3382 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4658 PUSH2 0x2695 JUMP JUMPDEST PUSH2 0xFFFF AND GT PUSH2 0x469F JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5334 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x79BA5097 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x46F2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x4706 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x170A PUSH2 0x3B39 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD AND ISZERO ISZERO PUSH2 0x154A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F504F4F4C5F544F4B454E00000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x7472616E7366657228616464726573732C75696E743235362900000000000000 DUP2 MSTORE DUP2 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x19 ADD DUP2 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x64 SWAP1 SWAP3 ADD SWAP1 SWAP3 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE PUSH2 0x4835 SWAP1 DUP5 SWAP1 PUSH2 0x492D JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x4847 PUSH2 0x3A83 JUMP JUMPDEST DUP8 PUSH2 0x4851 DUP2 PUSH2 0x3303 JUMP JUMPDEST DUP8 PUSH2 0x485B DUP2 PUSH2 0x3303 JUMP JUMPDEST PUSH2 0x4866 DUP11 DUP11 DUP11 PUSH2 0x4C56 JUMP JUMPDEST SWAP1 SWAP5 POP SWAP3 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP10 AND PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x52F4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ ISZERO PUSH2 0x48C6 JUMPI PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND SWAP1 DUP6 ISZERO PUSH2 0x8FC MUL SWAP1 DUP7 SWAP1 PUSH1 0x0 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x48C0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH2 0x48D1 JUMP JUMPDEST PUSH2 0x48D1 DUP10 DUP8 DUP7 PUSH2 0x4783 JUMP JUMPDEST PUSH2 0x48DF DUP11 DUP11 DUP10 DUP12 DUP9 DUP9 PUSH2 0x4F6B JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 PUSH1 0x1 SWAP1 DUP2 ADD SLOAD SWAP4 DUP14 AND DUP4 MSTORE SWAP2 KECCAK256 ADD SLOAD PUSH2 0x491F SWAP2 DUP13 SWAP2 DUP13 SWAP2 PUSH4 0xFFFFFFFF SWAP1 DUP2 AND SWAP2 AND PUSH2 0x4FF0 JUMP JUMPDEST POP SWAP2 SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x4935 PUSH2 0x52B4 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE POP SWAP1 POP PUSH1 0x20 DUP2 DUP4 MLOAD PUSH1 0x20 DUP6 ADD PUSH1 0x0 DUP8 GAS CALL DUP1 ISZERO ISZERO PUSH2 0x4962 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD ISZERO ISZERO PUSH2 0x4835 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5452414E534645525F4641494C454400000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x49C3 PUSH2 0x529D JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x49CF DUP8 PUSH2 0x15A1 JUMP JUMPDEST SWAP2 POP PUSH2 0x49DA DUP7 PUSH2 0x15A1 JUMP JUMPDEST SWAP1 POP PUSH4 0xFFFFFFFF DUP6 AND ISZERO ISZERO PUSH2 0x4A0E JUMPI PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH4 0xFFFFFFFF AND SWAP5 POP JUMPDEST PUSH4 0xFFFFFFFF DUP5 AND ISZERO ISZERO PUSH2 0x4A40 JUMPI PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH4 0xFFFFFFFF AND SWAP4 POP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE DUP1 PUSH2 0x4A5E DUP4 PUSH4 0xFFFFFFFF DUP1 DUP11 AND SWAP1 PUSH2 0x38DA AND JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x4A76 DUP5 PUSH4 0xFFFFFFFF DUP1 DUP10 AND SWAP1 PUSH2 0x38DA AND JUMP JUMPDEST SWAP1 MSTORE SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH4 0xFFFFFFFF AND GT DUP1 ISZERO PUSH2 0x4AA2 JUMPI POP PUSH3 0xF4240 PUSH4 0xFFFFFFFF DUP3 AND GT ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x154A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F574549474854000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x4B00 PUSH2 0x529D JUMP JUMPDEST PUSH2 0x4B08 PUSH2 0x529D JUMP JUMPDEST DUP3 DUP5 LT PUSH2 0x4B20 JUMPI PUSH2 0x4B19 DUP5 DUP5 PUSH2 0x5081 JUMP JUMPDEST SWAP2 POP PUSH2 0x3957 JUMP JUMPDEST PUSH2 0x4B2A DUP4 DUP6 PUSH2 0x5081 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x20 DUP1 DUP4 ADD MLOAD DUP3 MSTORE DUP3 MLOAD SWAP1 DUP3 ADD MSTORE SWAP3 POP SWAP1 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x0 SWAP1 PUSH2 0x2AC5 SWAP1 PUSH3 0xF4240 SWAP1 PUSH2 0x16C3 SWAP1 DUP6 SWAP1 PUSH9 0x10000000000000000 SWAP1 DIV PUSH4 0xFFFFFFFF SWAP1 DUP2 AND SWAP1 PUSH2 0x38DA AND JUMP JUMPDEST PUSH1 0xB SLOAD PUSH1 0x0 SWAP1 DUP2 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x4BEB JUMPI PUSH1 0xA SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD PUSH1 0xB SLOAD SWAP1 SWAP5 AND DUP4 MSTORE SWAP1 SWAP2 KECCAK256 SLOAD DUP7 MLOAD SWAP2 DUP8 ADD MLOAD PUSH1 0x16 SLOAD PUSH2 0x4BE4 SWAP5 SWAP4 PUSH4 0xFFFFFFFF DUP1 DUP14 AND SWAP4 SWAP1 DUP13 AND SWAP3 PUSH2 0x513E JUMP JUMPDEST SWAP1 POP PUSH2 0x4C3A JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD PUSH1 0xB SLOAD SWAP1 SWAP5 AND DUP4 MSTORE SWAP1 SWAP2 KECCAK256 SLOAD DUP7 MLOAD SWAP2 DUP8 ADD MLOAD PUSH1 0x16 SLOAD PUSH2 0x4C37 SWAP5 SWAP4 PUSH4 0xFFFFFFFF DUP1 DUP13 AND SWAP4 SWAP1 DUP14 AND SWAP3 PUSH2 0x513E JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH2 0x4C4B PUSH3 0xF4240 PUSH2 0x16C3 DUP6 DUP5 PUSH2 0x38DA JUMP JUMPDEST SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x4C63 PUSH2 0x529D JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x4C71 PUSH2 0x51AA JUMP JUMPDEST SWAP6 POP SWAP6 POP PUSH2 0x4C84 DUP12 DUP12 PUSH1 0x0 DUP1 DUP10 DUP15 PUSH2 0x44AA JUMP JUMPDEST SWAP2 SWAP6 POP SWAP4 POP SWAP2 POP DUP4 ISZERO ISZERO PUSH2 0x4CE2 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5A45524F5F5441524745545F414D4F554E5400000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x4CEB DUP11 PUSH2 0x2AFF JUMP JUMPDEST SWAP1 POP DUP1 DUP5 LT PUSH2 0x4D44 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5441524745545F414D4F554E545F544F4F5F48494748000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x52F4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ ISZERO PUSH2 0x4DBF JUMPI CALLVALUE DUP10 EQ PUSH2 0x4DBA JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4554485F414D4F554E545F4D49534D41544348000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x4EC1 JUMP JUMPDEST CALLVALUE ISZERO DUP1 ISZERO PUSH2 0x4E6B JUMPI POP DUP9 PUSH2 0x4E68 PUSH2 0x4DD5 DUP14 PUSH2 0x2AFF JUMP JUMPDEST DUP14 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x4E30 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x4E44 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x4E5A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x3B7B AND JUMP JUMPDEST LT ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x4EC1 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F414D4F554E540000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x4ECA DUP12 PUSH2 0x3DC0 JUMP JUMPDEST PUSH2 0x4EDA DUP2 DUP6 PUSH4 0xFFFFFFFF PUSH2 0x3B7B AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE PUSH1 0xC SWAP1 MSTORE KECCAK256 SLOAD PUSH2 0x4F0F SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0x395E AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE DUP6 ISZERO PUSH2 0x4F5A JUMPI PUSH1 0xA SLOAD PUSH1 0xB SLOAD PUSH2 0x4F4D SWAP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 DUP2 AND SWAP2 AND PUSH1 0x0 DUP1 PUSH2 0x49BB JUMP JUMPDEST DUP1 MLOAD PUSH1 0x12 SSTORE PUSH1 0x20 ADD MLOAD PUSH1 0x13 SSTORE JUMPDEST POP SWAP2 SWAP10 SWAP2 SWAP9 POP SWAP1 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0x8000000000000000000000000000000000000000000000000000000000000000 DUP2 LT PUSH2 0x4F94 JUMPI INVALID JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP5 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 SWAP1 MSTORE DUP1 DUP3 ADD DUP4 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP8 AND SWAP3 DUP9 DUP3 AND SWAP3 SWAP2 DUP11 AND SWAP2 PUSH32 0x276856B36CBC45526A0BA64F44611557A2A8B68662C5388E9FE6D72E86E1C8CB SWAP2 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG4 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x4FFF DUP7 DUP7 DUP7 DUP7 PUSH2 0x3D23 JUMP JUMPDEST PUSH2 0x5008 DUP6 PUSH2 0x2033 JUMP JUMPDEST SWAP2 POP DUP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x18160DDD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x5048 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x505C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x5072 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 POP PUSH2 0x2227 DUP3 DUP3 DUP8 PUSH2 0x3CC3 JUMP JUMPDEST PUSH2 0x5089 PUSH2 0x529D JUMP JUMPDEST PUSH20 0x14484BFEEBC29F863424B06F3529A051A31BE599 DUP3 GT ISZERO PUSH2 0x50DB JUMPI PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH13 0xC9F2C9CD04674EDEA40000000 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 DUP6 DIV DUP5 DUP2 ISZERO ISZERO PUSH2 0x50D1 JUMPI INVALID JUMPDEST DIV SWAP1 MSTORE SWAP1 POP PUSH2 0x2AC5 JUMP JUMPDEST PUSH13 0xC9F2C9CD04674EDEA40000000 DUP4 GT ISZERO PUSH2 0x5128 JUMPI PUSH1 0x40 DUP1 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH13 0xC9F2C9CD04674EDEA40000000 DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH13 0xC9F2C9CD04674EDEA40000000 DUP6 MUL DUP2 ISZERO ISZERO PUSH2 0x50D1 JUMPI INVALID JUMPDEST POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 PUSH2 0x5156 DUP8 PUSH2 0x4358 DUP13 DUP10 PUSH4 0xFFFFFFFF PUSH2 0x38DA AND JUMP JUMPDEST SWAP2 POP PUSH2 0x516C DUP9 PUSH2 0x4358 DUP12 DUP9 PUSH4 0xFFFFFFFF PUSH2 0x38DA AND JUMP JUMPDEST SWAP1 POP DUP2 DUP2 GT ISZERO PUSH2 0x5198 JUMPI PUSH2 0x5191 DUP2 PUSH2 0x16C3 PUSH1 0x14 PUSH2 0x4358 DUP7 DUP5 SUB DUP10 PUSH4 0xFFFFFFFF PUSH2 0x38DA AND JUMP JUMPDEST SWAP3 POP PUSH2 0x519D JUMP JUMPDEST PUSH1 0x0 SWAP3 POP JUMPDEST POP POP SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x51B4 PUSH2 0x529D JUMP JUMPDEST PUSH1 0x0 PUSH2 0x51BE PUSH2 0x529D JUMP JUMPDEST PUSH2 0x51C6 PUSH2 0x529D JUMP JUMPDEST PUSH2 0x51CE PUSH2 0x37C4 JUMP JUMPDEST SWAP3 POP DUP3 PUSH1 0x11 SLOAD EQ ISZERO PUSH2 0x51FC JUMPI PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0xF SLOAD DUP2 MSTORE PUSH1 0x10 SLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 SWAP6 POP SWAP4 POP PUSH2 0x315F JUMP JUMPDEST PUSH2 0x5204 PUSH2 0x413C JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0xF SLOAD DUP1 DUP3 MSTORE PUSH1 0x10 SLOAD PUSH1 0x20 DUP4 ADD MSTORE DUP3 MLOAD SWAP3 SWAP5 POP SWAP1 SWAP3 POP EQ DUP1 ISZERO PUSH2 0x5238 JUMPI POP DUP1 PUSH1 0x20 ADD MLOAD DUP3 PUSH1 0x20 ADD MLOAD EQ JUMPDEST ISZERO PUSH2 0x5249 JUMPI PUSH1 0x0 DUP3 SWAP5 POP SWAP5 POP PUSH2 0x315F JUMP JUMPDEST DUP2 MLOAD PUSH1 0xF SSTORE PUSH1 0x20 DUP3 ADD MLOAD PUSH1 0x10 SSTORE PUSH1 0x11 DUP4 SWAP1 SSTORE PUSH2 0x5263 PUSH2 0x37C8 JUMP JUMPDEST POP PUSH1 0x1 SWAP5 SWAP1 SWAP4 POP SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xA0 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE SWAP2 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x60 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 SWAP1 PUSH1 0x20 DUP3 MUL DUP1 CODESIZE DUP4 CODECOPY POP SWAP2 SWAP3 SWAP2 POP POP JUMP STOP MSTORE8 PUSH16 0x7672796E53776170436F6E7665727465 PUSH19 0x55706772616465720000000000000000000000 STOP STOP STOP STOP STOP STOP 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee GASLIMIT MSTORE MSTORE 0x5f COINBASE NUMBER NUMBER GASLIMIT MSTORE8 MSTORE8 0x5f DIFFICULTY GASLIMIT 0x4e 0x49 GASLIMIT DIFFICULTY STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP GASLIMIT MSTORE MSTORE 0x5f 0x49 0x4e JUMP COINBASE 0x4c 0x49 DIFFICULTY 0x5f MSTORE GASLIMIT MSTORE8 GASLIMIT MSTORE JUMP GASLIMIT 0x5f NUMBER 0x4f SSTORE 0x4e SLOAD STOP STOP STOP STOP STOP STOP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 0xd6 0xce 0xae 0xf 0xa8 DUP15 OR PUSH16 0xCEC4250A8A72385CF1AE86E302A34151 0x47 0xc 0xa7 SWAP10 PUSH26 0x55CCC20029000000000000000000000000000000000000000000 ", - "sourceMap": "651:42579:25:-;;;249:1:68;362:32;;;;2700:30:4;;;-1:-1:-1;;;;;;2993:31:4;;;2354:42:25;;;-1:-1:-1;;2354:42:25;;;;;;2439:5;2405:39;;3175:214;5:2:-1;;;;30:1;27;20:12;5:2;3175:214:25;;;;;;;;;;;;;;;;;;;;;;;;;488:5:66;:18;;-1:-1:-1;;;;;;488:18:66;496:10;488:18;;;3175:214:25;;;;;;;;475:23:72;3175:214:25;475:13:72;;;;:23;:::i;:::-;-1:-1:-1;1931:8:60;:39;;-1:-1:-1;;;;;1931:39:60;;;-1:-1:-1;;;;;;1931:39:60;;;;;;;;1974:12;:43;;;;;;;;5395:7:4;475:23:72;5395:7:4;475:13:72;;;;:23;:::i;:::-;5457:17:4;6403:35;5457:17;6403:19;;;;:35;:::i;:::-;-1:-1:-1;;5480:6:4;:16;;-1:-1:-1;;;;;5480:16:4;;;-1:-1:-1;;;;;;5480:16:4;;;;;;;;;;-1:-1:-1;5500:16:4;:36;;;;;;;;-1:-1:-1;;5500:36:4;;;;;;;;;-1:-1:-1;651:42579:25;;-1:-1:-1;;;;;651:42579:25;553:117:72;-1:-1:-1;;;;;620:22:72;;;;612:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;553:117;:::o;6493:156:4:-;1826:7;6571:43;;;;;6563:82;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;651:42579:25;;;;;;;" - }, - "deployedBytecode": { - "linkReferences": {}, - "object": "6080604052600436106103125763ffffffff60e060020a6000350416625e319c81146103b0578063024c7ec7146103e35780630337e3fb146103fd5780630a55fb3d1461042e5780630c7d5cd8146104575780630e53aae914610485578063119b90cd146104da57806312c2aca41461050757806316912f961461051c57806319b64015146105315780631cfab290146105495780631e1401f81461056a57806321e6b53d146105ad57806322f3e2d4146105ce5780632630c12f146105e35780632bd3c107146105f85780632bf0c985146106195780632fe8a6ad1461063a57806338a5e0161461064f578063395900d4146106645780633e8ff43f1461068e57806346749468146106ba57806349d10b64146106d55780634af80f0e146106ea57806354fd4d501461070b57806355776b77146107205780635768adcf1461073a578063579cd3ca1461075b5780635e35359e1461077057806361cd756e1461079a57806367b6d57c146107af57806369067d95146107d0578063690d8320146107f457806369d1354a146108155780636a49d2c41461082d57806371f52bf31461085757806379ba50971461086c5780637b103999146108815780638da5cb5b1461089657806394c275ad146108ab57806398a71dcb146108c05780639b99a8e2146108e1578063a32bff44146108f6578063af94b8d81461090b578063b4a176d314610935578063bf7545581461094a578063bf7da6ba1461095f578063c3321fb014610983578063c45d3d9214610998578063cdc91c69146109ad578063d031370b146109c2578063d260529c146109da578063d3fb73b4146109ef578063d4ee1d9014610a04578063d55ec69714610a19578063d64c5a1a14610a2e578063d66bd52414610a59578063d895951214610a7a578063db2830a414610a9b578063dc75eb9a14610ab0578063dc8de37914610ac5578063e38192e314610ae6578063e8104af914610b0d578063e8dc12ff14610b22578063ec2240f514610b4c578063ecbca55d14610b61578063f2fde38b14610b7f578063f9cddde214610ba0578063fc0c546a14610bb5575b6000805160206152f483398151915260005260086020527f353c2eb9e53a4a4a6d45d72082ff2e9dc829d1125618772a83eb0e7f86632c43546601000000000000900460ff1615156103ae576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f5245534552564500000000000000000000000000604482015290519081900360640190fd5b005b3480156103bc57600080fd5b506103d1600160a060020a0360043516610bca565b60408051918252519081900360200190f35b3480156103ef57600080fd5b506103ae6004351515610bf3565b34801561040957600080fd5b50610412610c3b565b60408051600160a060020a039092168252519081900360200190f35b34801561043a57600080fd5b50610443610c4a565b604080519115158252519081900360200190f35b34801561046357600080fd5b5061046c610c53565b6040805163ffffffff9092168252519081900360200190f35b34801561049157600080fd5b506104a6600160a060020a0360043516610c5f565b6040805195865263ffffffff9094166020860152911515848401521515606084015215156080830152519081900360a00190f35b3480156104e657600080fd5b506103ae600160a060020a0360043581169060243581169060443516610cfa565b34801561051357600080fd5b50610443611464565b34801561052857600080fd5b506103ae6114ad565b34801561053d57600080fd5b506104126004356114c1565b34801561055557600080fd5b5061046c600160a060020a03600435166114ed565b34801561057657600080fd5b50610594600160a060020a036004358116906024351660443561151f565b6040805192835260208301919091528051918290030190f35b3480156105b957600080fd5b506103ae600160a060020a0360043516611539565b3480156105da57600080fd5b5061044361154d565b3480156105ef57600080fd5b50610412611582565b34801561060457600080fd5b506103d1600160a060020a03600435166115a1565b34801561062557600080fd5b506103d1600160a060020a03600435166115f6565b34801561064657600080fd5b506104436116d9565b34801561065b57600080fd5b506103ae6116fa565b34801561067057600080fd5b506103ae600160a060020a036004358116906024351660443561170c565b34801561069a57600080fd5b506106a36117a7565b6040805161ffff9092168252519081900360200190f35b3480156106c657600080fd5b506103ae6004356024356117ac565b3480156106e157600080fd5b506103ae611830565b3480156106f657600080fd5b506103ae600160a060020a0360043516611a90565b34801561071757600080fd5b506106a3611ac5565b6103d1600160a060020a0360043516602435604435611aca565b34801561074657600080fd5b50610412600160a060020a0360043516612033565b34801561076757600080fd5b5061046c612051565b34801561077c57600080fd5b506103ae600160a060020a0360043581169060243516604435612069565b3480156107a657600080fd5b5061041261217d565b3480156107bb57600080fd5b506103ae600160a060020a036004351661218c565b3480156107dc57600080fd5b50610594600160a060020a036004351660243561222f565b34801561080057600080fd5b506103ae600160a060020a036004351661238a565b34801561082157600080fd5b506103ae60043561248f565b34801561083957600080fd5b506103ae600160a060020a036004351663ffffffff60243516612534565b34801561086357600080fd5b506106a3612593565b34801561087857600080fd5b506103ae61259d565b34801561088d57600080fd5b50610412612651565b3480156108a257600080fd5b50610412612660565b3480156108b757600080fd5b5061046c61266f565b3480156108cc57600080fd5b506103d1600160a060020a0360043516612683565b3480156108ed57600080fd5b506106a3612695565b34801561090257600080fd5b5061059461269b565b34801561091757600080fd5b50610594600160a060020a03600435811690602435166044356126a4565b34801561094157600080fd5b506103ae612848565b34801561095657600080fd5b50610443612874565b34801561096b57600080fd5b506103ae600160a060020a0360043516602435612879565b34801561098f57600080fd5b506103d16128c1565b3480156109a457600080fd5b506104126128c7565b3480156109b957600080fd5b506103ae6128d6565b3480156109ce57600080fd5b5061041260043561292f565b3480156109e657600080fd5b50610443612957565b3480156109fb57600080fd5b5061041261295c565b348015610a1057600080fd5b5061041261296b565b348015610a2557600080fd5b506103ae61297a565b348015610a3a57600080fd5b50610a43612a6f565b6040805160ff9092168252519081900360200190f35b348015610a6557600080fd5b506104a6600160a060020a0360043516612a74565b348015610a8657600080fd5b506103d1600160a060020a0360043516612aba565b348015610aa757600080fd5b50610594612acb565b348015610abc57600080fd5b50610412612af0565b348015610ad157600080fd5b506103d1600160a060020a0360043516612aff565b348015610af257600080fd5b506103d1600160a060020a0360043516602435604435612b28565b348015610b1957600080fd5b506103d1612e8d565b6103d1600160a060020a036004358116906024358116906044359060643581169060843516612e93565b348015610b5857600080fd5b506105946130e6565b348015610b6d57600080fd5b506103ae63ffffffff60043516613166565b348015610b8b57600080fd5b506103ae600160a060020a036004351661325b565b348015610bac57600080fd5b506105946132eb565b348015610bc157600080fd5b506104126132f4565b600081610bd681613303565b5050600160a060020a03166000908152600c602052604090205490565b610bfb613382565b60038054911515740100000000000000000000000000000000000000000274ff000000000000000000000000000000000000000019909216919091179055565b600a54600160a060020a031681565b60155460ff1681565b60095463ffffffff1681565b6000806000806000610c6f61526f565b50505050600160a060020a03929092166000908152600860209081526040808320815160a081018352815480825260019092015463ffffffff811694820185905260ff64010000000082048116151594830194909452650100000000008104841615156060830152660100000000000090049092161515608090920182905295919450919250829190565b6000806000806000610d0a6133d2565b610d12613382565b87610d1c81613303565b87610d268161342f565b87610d308161342f565b89610d3a81613490565b89610d4481613490565b600554604080517f8da5cb5b00000000000000000000000000000000000000000000000000000000815290513092600160a060020a031691638da5cb5b9160048083019260209291908290030181600087803b158015610da357600080fd5b505af1158015610db7573d6000803e3d6000fd5b505050506040513d6020811015610dcd57600080fd5b5051600160a060020a031614610e2d576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f414e43484f525f4e4f545f4f574e4544000000000000000000000000604482015290519081900360640190fd5b610e567f436861696e6c696e6b4f7261636c6557686974656c69737400000000000000006134f0565b995089600160a060020a0316633af32abf8d6040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b158015610eb357600080fd5b505af1158015610ec7573d6000803e3d6000fd5b505050506040513d6020811015610edd57600080fd5b50511515610f35576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f494e56414c49445f4f5241434c450000000000000000000000000000604482015290519081900360640190fd5b89600160a060020a0316633af32abf8c6040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b158015610f9057600080fd5b505af1158015610fa4573d6000803e3d6000fd5b505050506040513d6020811015610fba57600080fd5b50511515611012576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f494e56414c49445f4f5241434c450000000000000000000000000000604482015290519081900360640190fd5b61101a613588565b600a8054600160a060020a031916600160a060020a038f1617905560078054600090811061104457fe5b600091825260209091200154600160a060020a038e8116911614156110a25760078054600190811061107257fe5b600091825260209091200154600b8054600160a060020a031916600160a060020a039092169190911790556110dd565b6007805460009081106110b157fe5b600091825260209091200154600b8054600160a060020a031916600160a060020a039092169190911790555b6111067f436f6e766572746572466163746f7279000000000000000000000000000000006134f0565b600160a060020a031663c977aed261111c6117a7565b6040518263ffffffff1660e060020a028152600401808261ffff1661ffff168152602001915050602060405180830381600087803b15801561115d57600080fd5b505af1158015611171573d6000803e3d6000fd5b505050506040513d602081101561118757600080fd5b8101908080519060200190929190505050985088600160a060020a0316631b27444e8e600b60009054906101000a9004600160a060020a03168f8f6040518563ffffffff1660e060020a0281526004018085600160a060020a0316600160a060020a0316815260200184600160a060020a0316600160a060020a0316815260200183600160a060020a0316600160a060020a0316815260200182600160a060020a0316600160a060020a03168152602001945050505050602060405180830381600087803b15801561125857600080fd5b505af115801561126c573d6000803e3d6000fd5b505050506040513d602081101561128257600080fd5b5051600980546bffffffffffffffffffffffff166c01000000000000000000000000600160a060020a0393841681029190911791829055600a54600b54604080517fae818004000000000000000000000000000000000000000000000000000000008152928616600484015290851660248301528051929093049093169263ae8180049260448083019391928290030181600087803b15801561132457600080fd5b505af1158015611338573d6000803e3d6000fd5b505050506040513d604081101561134e57600080fd5b5080516020909101516010819055600f8290556012919091556013556113726137c4565b601155600a5461138a90600160a060020a0316610bca565b600a549098506113a290600160a060020a0316612aff565b600b549097506113ba90600160a060020a0316612aff565b9550868814156113e55760008811806113d35750600086115b156113e0576113e06137c8565b61140e565b6000881180156113f55750600087115b80156114015750600086115b1561140e5761140e6137c8565b600554600190600160a060020a03166114256117a7565b61ffff167f6b08c2e2c9969e55a647a764db9b554d64dc42f1a704da11a6d5b129ad163f2c60405160405180910390a450505050505050505050505050565b6000805160206152f483398151915260005260086020527f353c2eb9e53a4a4a6d45d72082ff2e9dc829d1125618772a83eb0e7f86632c43546601000000000000900460ff1690565b6114b5613382565b6015805460ff19169055565b60006007828154811015156114d257fe5b600091825260209091200154600160a060020a031692915050565b6000816114f981613303565b5050600160a060020a031660009081526008602052604090206001015463ffffffff1690565b60008061152d8585856126a4565b91509150935093915050565b611541613382565b61154a8161218c565b50565b6000611557613840565b801561157d57506009546c010000000000000000000000009004600160a060020a031615155b905090565b6009546c010000000000000000000000009004600160a060020a031681565b6000816115ad81613303565b6115ef6115b984612aff565b600160a060020a0385166000908152600c60205260409020546115e390601363ffffffff6138da16565b9063ffffffff61395e16565b9392505050565b600080600080600085600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561163c57600080fd5b505af1158015611650573d6000803e3d6000fd5b505050506040513d602081101561166657600080fd5b5051600160a060020a038088166000908152600e602052604090205491955016925061169183612aff565b600160a060020a0384166000908152600c602052604090205490925090506116cf816116c3848763ffffffff6138da16565b9063ffffffff6139bb16565b9695505050505050565b60035474010000000000000000000000000000000000000000900460ff1681565b611702613382565b61170a6128d6565b565b611714613382565b600554604080517f5e35359e000000000000000000000000000000000000000000000000000000008152600160a060020a03868116600483015285811660248301526044820185905291519190921691635e35359e91606480830192600092919082900301818387803b15801561178a57600080fd5b505af115801561179e573d6000803e3d6000fd5b50505050505050565b600290565b6117b4613382565b8160146000600760008154811015156117c957fe5b6000918252602080832090910154600160a060020a031683528201929092526040018120919091556007805483926014929091600190811061180757fe5b6000918252602080832090910154600160a060020a031683528201929092526040019020555050565b60008054600160a060020a0316331480611865575060035474010000000000000000000000000000000000000000900460ff16155b15156118a9576040805160e560020a62461bcd0281526020600482015260116024820152600080516020615314833981519152604482015290519081900360640190fd5b6118d27f436f6e74726163745265676973747279000000000000000000000000000000006134f0565b600254909150600160a060020a038083169116148015906118fb5750600160a060020a03811615155b1515611951576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e56414c49445f5245474953545259000000000000000000000000604482015290519081900360640190fd5b604080517fbb34534c0000000000000000000000000000000000000000000000000000000081527f436f6e747261637452656769737472790000000000000000000000000000000060048201529051600091600160a060020a0384169163bb34534c9160248082019260209290919082900301818787803b1580156119d557600080fd5b505af11580156119e9573d6000803e3d6000fd5b505050506040513d60208110156119ff57600080fd5b5051600160a060020a03161415611a60576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e56414c49445f5245474953545259000000000000000000000000604482015290519081900360640190fd5b6002805460038054600160a060020a03808416600160a060020a0319928316179092559091169216919091179055565b611a98613382565b80611aa28161342f565b5060068054600160a060020a031916600160a060020a0392909216919091179055565b602081565b6000806000806000611ada613a29565b6002600455611ae7613a83565b87611af181613303565b87611afb81613ae1565b87611b0581613ae1565b600160a060020a038b166000805160206152f483398151915214611b2a573415611b2e565b8934145b1515611b84576040805160e560020a62461bcd02815260206004820152601760248201527f4552525f4554485f414d4f554e545f4d49534d41544348000000000000000000604482015290519081900360640190fd5b611b8c613b39565b600160a060020a038b166000805160206152f48339815191521415611c2e576000805160206152f483398151915260005260086020527f353c2eb9e53a4a4a6d45d72082ff2e9dc829d1125618772a83eb0e7f86632c4254611bf4903463ffffffff613b7b16565b6000805160206152f483398151915260005260086020527f353c2eb9e53a4a4a6d45d72082ff2e9dc829d1125618772a83eb0e7f86632c42555b600160a060020a038b166000908152600c602052604090205460155490975060ff1615611cf757600160a060020a038b166000908152601460205260409020541580611ca15750600160a060020a038b16600090815260146020526040902054611c9e888c63ffffffff61395e16565b11155b1515611cf7576040805160e560020a62461bcd02815260206004820152601e60248201527f4552525f4d41585f5354414b45445f42414c414e43455f524541434845440000604482015290519081900360640190fd5b600160a060020a03808c166000908152600d602090815260408083205481517f18160ddd00000000000000000000000000000000000000000000000000000000815291519416995089936318160ddd93600480840194938390030190829087803b158015611d6457600080fd5b505af1158015611d78573d6000803e3d6000fd5b505050506040513d6020811015611d8e57600080fd5b50519450600160a060020a038b166000805160206152f483398151915214611dbc57611dbc8b33308d613bdb565b600160a060020a038b16600090815260086020526040902054611de5908b63ffffffff61395e16565b600160a060020a038c16600090815260086020526040902055611e0e878b63ffffffff61395e16565b600160a060020a038c166000908152600c60205260408120919091559350861580611e37575084155b15611e4457899350611e5b565b611e58876116c38c8863ffffffff6138da16565b93505b88841015611eb3576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f52455455524e5f544f4f5f4c4f570000000000000000000000000000604482015290519081900360640190fd5b600554604080517fc6c3bbe6000000000000000000000000000000000000000000000000000000008152600160a060020a038981166004830152336024830152604482018890529151919092169163c6c3bbe691606480830192600092919082900301818387803b158015611f2757600080fd5b505af1158015611f3b573d6000803e3d6000fd5b50505050611f476137c8565b600160a060020a038b16337f4a1a2a6176e9646d9e3157f7c2ab3c499f18337c0b0828cfb28e0a61de4a11f78c611f848b8263ffffffff61395e16565b611f948a8a63ffffffff61395e16565b60408051938452602084019290925282820152519081900360600190a3611fcb86611fc5878763ffffffff61395e16565b8d613cc3565b61202060076000815481101515611fde57fe5b60009182526020909120015460078054600160a060020a0390921691600190811061200557fe5b6000918252602082200154600160a060020a03169080613d23565b5050600160045550979650505050505050565b600160a060020a039081166000908152600d60205260409020541690565b60095468010000000000000000900463ffffffff1681565b6000612073613a29565b6002600455612080613382565b6120976000805160206152d48339815191526134f0565b600160a060020a0385166000908152600860205260409020600101549091506601000000000000900460ff1615806120d457506120d261154d565b155b806120ec5750600054600160a060020a038281169116145b1515612130576040805160e560020a62461bcd0281526020600482015260116024820152600080516020615314833981519152604482015290519081900360640190fd5b61213b848484613d8f565b600160a060020a0384166000908152600860205260409020600101546601000000000000900460ff16156121725761217284613dc0565b505060016004555050565b600354600160a060020a031681565b612194613382565b6000805160206152d48339815191526121ac81613eb4565b600554604080517ff2fde38b000000000000000000000000000000000000000000000000000000008152600160a060020a0385811660048301529151919092169163f2fde38b91602480830192600092919082900301818387803b15801561221357600080fd5b505af1158015612227573d6000803e3d6000fd5b505050505050565b6000806000806000806000806000808b600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561227c57600080fd5b505af1158015612290573d6000803e3d6000fd5b505050506040513d60208110156122a657600080fd5b5051600160a060020a03808e166000908152600e60209081526040808320549093168252600c905220549098509650878b101561237157600a54600160a060020a03166000908152600c602052604090205461230990601463ffffffff6138da16565b600a5490965061232190600160a060020a03166115a1565b9450848610612331578486612334565b85855b909450925061234d886116c38d8a63ffffffff6138da16565b9150612363836116c3848763ffffffff6138da16565b99505088810397508861237b565b9598506000975088955b50505050505050509250929050565b6000612394613a29565b60026004556123a1613382565b6000805160206152f48339815191526123b981613303565b6123d06000805160206152d48339815191526134f0565b91506123da61154d565b15806123f35750600054600160a060020a038381169116145b1515612437576040805160e560020a62461bcd0281526020600482015260116024820152600080516020615314833981519152604482015290519081900360640190fd5b604051600160a060020a03841690303180156108fc02916000818181858888f1935050505015801561246d573d6000803e3d6000fd5b506124856000805160206152f4833981519152613dc0565b5050600160045550565b612497613382565b620186a08111156124f2576040805160e560020a62461bcd02815260206004820152601e60248201527f4552525f494e56414c49445f44594e414d49435f4645455f464143544f520000604482015290519081900360640190fd5b601654604080519182526020820183905280517f382fd3516344712a511dcd464ff8e6ab54139d6a28f64087a3253353ee7a56799281900390910190a1601655565b600261253e612695565b61ffff1610612585576040805160e560020a62461bcd0281526020600482015260196024820152600080516020615334833981519152604482015290519081900360640190fd5b61258f8282613f0a565b5050565b600061157d612695565b600154600160a060020a031633146125ed576040805160e560020a62461bcd0281526020600482015260116024820152600080516020615314833981519152604482015290519081900360640190fd5b60015460008054604051600160a060020a0393841693909116917f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91a36001805460008054600160a060020a0319908116600160a060020a03841617909155169055565b600254600160a060020a031681565b600054600160a060020a031681565b600954640100000000900463ffffffff1681565b60146020526000908152604090205481565b60075490565b600f5460105482565b6000806000806126b261529d565b6000806000806126c0613a83565b6126c98c613303565b6126d28b613303565b600160a060020a038c8116908c161415612736576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f53414d455f534f555243455f54415247455400000000000000000000604482015290519081900360640190fd5b61273e6137c4565b60115414156127e557600f604080519081016040529081600082015481526020016001820154815250509450600860008d600160a060020a0316600160a060020a0316815260200190815260200160002060010160009054906101000a900463ffffffff169650600860008c600160a060020a0316600160a060020a0316815260200190815260200160002060010160009054906101000a900463ffffffff169550612825565b6127ed61413c565b94506127f885614380565b600a549195509350600160a060020a038d81169116141561281e57839650829550612825565b8296508395505b6128338c8c8989898f6144aa565b919e919d50909b505050505050505050505050565b612850613382565b60035460028054600160a060020a031916600160a060020a03909216919091179055565b600181565b612881613382565b6000805160206152d483398151915261289981613eb4565b826128a381613303565b5050600160a060020a039091166000908152600c6020526040902055565b60115481565b600654600160a060020a031681565b60016128e0612695565b61ffff1611612927576040805160e560020a62461bcd0281526020600482015260196024820152600080516020615334833981519152604482015290519081900360640190fd5b61170a614646565b600780548290811061293d57fe5b600091825260209091200154600160a060020a0316905081565b600190565b600554600160a060020a031681565b600154600160a060020a031681565b6000612984613382565b61299b6000805160206152d48339815191526134f0565b600554909150600090600160a060020a03166129b56117a7565b61ffff167f6b08c2e2c9969e55a647a764db9b554d64dc42f1a704da11a6d5b129ad163f2c60405160405180910390a46129ee8161325b565b604080517f90f58c96000000000000000000000000000000000000000000000000000000008152602060048201529051600160a060020a038316916390f58c9691602480830192600092919082900301818387803b158015612a4f57600080fd5b505af1158015612a63573d6000803e3d6000fd5b5050505061154a61259d565b601490565b6008602052600090815260409020805460019091015463ffffffff81169060ff640100000000820481169165010000000000810482169166010000000000009091041685565b6000612ac582612aff565b92915050565b600080612ad661529d565b612ade61413c565b80516020909101519094909350915050565b600b54600160a060020a031681565b600081612b0b81613303565b5050600160a060020a031660009081526008602052604090205490565b600080600080600080612b39613a29565b6002600455612b46613a83565b88612b5081614712565b88612b5a81613ae1565b88612b6481613ae1565b612b6c613b39565b8b600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015612baa57600080fd5b505af1158015612bbe573d6000803e3d6000fd5b505050506040513d6020811015612bd457600080fd5b50519750612be28c8c61222f565b50965089871015612c3d576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f52455455524e5f544f4f5f4c4f570000000000000000000000000000604482015290519081900360640190fd5b600e60008d600160a060020a0316600160a060020a0316815260200190815260200160002060009054906101000a9004600160a060020a03169550600560009054906101000a9004600160a060020a0316600160a060020a031663f6b911bc8d338e6040518463ffffffff1660e060020a0281526004018084600160a060020a0316600160a060020a0316815260200183600160a060020a0316600160a060020a031681526020018281526020019350505050600060405180830381600087803b158015612d0a57600080fd5b505af1158015612d1e573d6000803e3d6000fd5b505050600160a060020a038716600090815260086020526040902054612d4b91508863ffffffff613b7b16565b600160a060020a038716600090815260086020908152604080832093909355600c90522054612d80908863ffffffff613b7b16565b600160a060020a0387166000818152600c602052604090208290559095506000805160206152f48339815191521415612de657604051339088156108fc029089906000818181858888f19350505050158015612de0573d6000803e3d6000fd5b50612df1565b612df1863389614783565b612df96137c8565b612e09888c63ffffffff613b7b16565b60408051898152602081018890528082018390529051919550600160a060020a0388169133917fbc7d19d505c7ec4db83f3b51f19fb98c4c8a99922e7839d1ee608dfbee29501b919081900360600190a3612e658c8588613cc3565b612e7860076000815481101515611fde57fe5b50506001600455509298975050505050505050565b60165481565b6000612e9d613a29565b60026004557f536f7672796e537761704e6574776f726b000000000000000000000000000000612ecc81613eb4565b600160a060020a038781169087161415612f30576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f53414d455f534f555243455f54415247455400000000000000000000604482015290519081900360640190fd5b600654600160a060020a031615806130735750600654604080517f3af32abf000000000000000000000000000000000000000000000000000000008152600160a060020a03878116600483015291519190921691633af32abf9160248083019260209291908290030181600087803b158015612fab57600080fd5b505af1158015612fbf573d6000803e3d6000fd5b505050506040513d6020811015612fd557600080fd5b505180156130735750600654604080517f3af32abf000000000000000000000000000000000000000000000000000000008152600160a060020a03868116600483015291519190921691633af32abf9160248083019260209291908290030181600087803b15801561304657600080fd5b505af115801561305a573d6000803e3d6000fd5b505050506040513d602081101561307057600080fd5b50515b15156130c9576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f4e4f545f57484954454c495354454400000000000000000000000000604482015290519081900360640190fd5b6130d6878787878761483a565b6001600455979650505050505050565b6000806130f161529d565b6000806130fc61413c565b925061310783614380565b915091506007600081548110151561311b57fe5b600091825260209091200154600a54600160a060020a03908116911614156131505763ffffffff80831695508116935061315f565b63ffffffff8082169550821693505b5050509091565b61316e613382565b60095463ffffffff640100000000909104811690821611156131da576040805160e560020a62461bcd02815260206004820152601a60248201527f4552525f494e56414c49445f434f4e56455253494f4e5f464545000000000000604482015290519081900360640190fd5b6009546040805163ffffffff6801000000000000000090930483168152918316602083015280517f81cd2ffb37dd237c0e4e2a3de5265fcf9deb43d3e7801e80db9f1ccfba7ee6009281900390910190a16009805463ffffffff90921668010000000000000000026bffffffff000000000000000019909216919091179055565b613263613382565b600054600160a060020a03828116911614156132c9576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f53414d455f4f574e4552000000000000000000000000000000000000604482015290519081900360640190fd5b60018054600160a060020a031916600160a060020a0392909216919091179055565b60125460135482565b600554600160a060020a031690565b600160a060020a0381166000908152600860205260409020600101546601000000000000900460ff16151561154a576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f5245534552564500000000000000000000000000604482015290519081900360640190fd5b600054600160a060020a0316331461170a576040805160e560020a62461bcd0281526020600482015260116024820152600080516020615314833981519152604482015290519081900360640190fd5b6133da61154d565b1561170a576040805160e560020a62461bcd02815260206004820152600a60248201527f4552525f41435449564500000000000000000000000000000000000000000000604482015290519081900360640190fd5b600160a060020a03811630141561154a576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f414444524553535f49535f53454c4600000000000000000000000000604482015290519081900360640190fd5b600160a060020a038116151561154a576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b600254604080517fbb34534c000000000000000000000000000000000000000000000000000000008152600481018490529051600092600160a060020a03169163bb34534c91602480830192602092919082900301818787803b15801561355657600080fd5b505af115801561356a573d6000803e3d6000fd5b505050506040513d602081101561358057600080fd5b505192915050565b60006060600080600080600560009054906101000a9004600160a060020a0316955085600160a060020a0316636d3e313e6040518163ffffffff1660e060020a028152600401600060405180830381600087803b1580156135e857600080fd5b505af11580156135fc573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561362557600080fd5b81019080805164010000000081111561363d57600080fd5b8201602081018481111561365057600080fd5b815185602082028301116401000000008211171561366d57600080fd5b505080516007549199501597509550600094505050505b828210156122275783156137035785600160a060020a0316639cbf9e366040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156136d057600080fd5b505af11580156136e4573d6000803e3d6000fd5b505050506040513d60208110156136fa57600080fd5b5051905061371e565b848281518110151561371157fe5b9060200190602002015190505b80600d600060078581548110151561373257fe5b600091825260208083209190910154600160a060020a03908116845290830193909352604090910190208054600160a060020a03191692909116919091179055600780548390811061378057fe5b6000918252602080832090910154600160a060020a038481168452600e90925260409092208054600160a060020a0319169190921617905560019190910190613684565b4290565b60408051808201909152600f548152601054602082015260009081906137ed90614380565b600a54600160a060020a039081166000908152600860205260408082206001908101805463ffffffff97881663ffffffff1991821617909155600b54909416835291200180549290931691161790555050565b600030600160a060020a0316600560009054906101000a9004600160a060020a0316600160a060020a0316638da5cb5b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561389f57600080fd5b505af11580156138b3573d6000803e3d6000fd5b505050506040513d60208110156138c957600080fd5b5051600160a060020a031614905090565b6000808315156138ed5760009150613957565b508282028284828115156138fd57fe5b0414613953576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b8091505b5092915050565b600082820183811015613953576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b600080808311613a15576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f4449564944455f42595f5a45524f0000000000000000000000000000604482015290519081900360640190fd5b8284811515613a2057fe5b04949350505050565b60045460011461170a576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f5245454e5452414e4359000000000000000000000000000000000000604482015290519081900360640190fd5b613a8b61154d565b151561170a576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f494e4143544956450000000000000000000000000000000000000000604482015290519081900360640190fd5b6000811161154a576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f5a45524f5f56414c5545000000000000000000000000000000000000604482015290519081900360640190fd5b60075460005b8181101561258f57613b73600782815481101515613b5957fe5b600091825260209091200154600160a060020a0316613dc0565b600101613b3f565b600081831015613bd5576040805160e560020a62461bcd02815260206004820152600d60248201527f4552525f554e444552464c4f5700000000000000000000000000000000000000604482015290519081900360640190fd5b50900390565b604080517f7472616e7366657246726f6d28616464726573732c616464726573732c75696e81527f74323536290000000000000000000000000000000000000000000000000000006020808301919091528251918290036025018220600160a060020a038088166024850152861660448401526064808401869052845180850390910181526084909301909352810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1990931692909217909152613cbd90859061492d565b50505050565b600160a060020a038082166000818152600c6020908152604091829020548251908152908101869052815192938716927f77f29993cf2c084e726f7e802da0719d6a0ade3e204badc7a3ffd57ecb768c24929181900390910190a3505050565b613d2b61529d565b613d37858585856149bb565b805160208083015160408051938452918301528051929350600160a060020a0380881693908916927f77f29993cf2c084e726f7e802da0719d6a0ade3e204badc7a3ffd57ecb768c2492908290030190a35050505050565b613d97613382565b82613da181613490565b82613dab81613490565b83613db58161342f565b612227868686614783565b80613dca81613303565b600160a060020a0382166000805160206152f48339815191521415613e0a57600160a060020a03821660009081526008602052604090203031905561258f565b604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a038416916370a082319160248083019260209291908290030181600087803b158015613e6b57600080fd5b505af1158015613e7f573d6000803e3d6000fd5b505050506040513d6020811015613e9557600080fd5b5051600160a060020a0383166000908152600860205260409020555050565b613ebd816134f0565b600160a060020a0316331461154a576040805160e560020a62461bcd0281526020600482015260116024820152600080516020615314833981519152604482015290519081900360640190fd5b6000613f14613382565b613f1c6133d2565b82613f2681613490565b83613f308161342f565b83613f3a81614a83565b600554600160a060020a03878116911614801590613f7e5750600160a060020a0386166000908152600860205260409020600101546601000000000000900460ff16155b1515613fd4576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f5245534552564500000000000000000000000000604482015290519081900360640190fd5b60095463ffffffff908116620f4240038116908616111561403f576040805160e560020a62461bcd02815260206004820152601a60248201527f4552525f494e56414c49445f524553455256455f574549474854000000000000604482015290519081900360640190fd5b61ffff61404a612695565b61ffff1610614091576040805160e560020a62461bcd0281526020600482015260196024820152600080516020615334833981519152604482015290519081900360640190fd5b505050600160a060020a0390921660008181526008602052604081208181556001908101805466ff0000000000001963ffffffff80881663ffffffff1993841617919091166601000000000000179092556007805493840181559093527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c6889091018054600160a060020a03191690931790925560098054808416909401909216921691909117905550565b61414461529d565b60008060008061415261529d565b61415a61529d565b600954600a54600b54604080517fb1772d7a000000000000000000000000000000000000000000000000000000008152600160a060020a0393841660048201529183166024830152516000938493849384936c010000000000000000000000009093049091169163b1772d7a9160448082019260609290919082900301818787803b1580156141e857600080fd5b505af11580156141fc573d6000803e3d6000fd5b505050506040513d606081101561421257600080fd5b5080516020820151604090920151601154919c50919a5090985088111561424f5760408051908101604052808b81526020018a8152509a50614373565b60115461425a6137c4565b0396508615156142825760408051808201909152600f54815260105460208201529a50614373565b61025887106142a95760408051808201909152601254815260135460208201529a50614373565b604080518082018252600f548152601054602080830191825283518085019094526012548085526013549185019190915290519198509196506142f19163ffffffff6138da16565b6020860151875191955061430b919063ffffffff6138da16565b9250614335614320858963ffffffff6138da16565b6115e3856102588b900363ffffffff6138da16565b9150614364610258614358876020015189602001516138da90919063ffffffff16565b9063ffffffff6138da16565b90506143708282614af8565b9a505b5050505050505050505090565b600a54600160a060020a03166000818152600c60205260408120549091829190829081906143ad906115a1565b600b549092506143c590600160a060020a03166115a1565b90506143f07f536f7672796e53776170466f726d756c610000000000000000000000000000006134f0565b600160a060020a031663a11aa1b461440f85601463ffffffff6138da16565b885160208a01516040805160e060020a63ffffffff87160281526004810194909452602484018890526044840187905260648401929092526084830152805160a4808401938290030181600087803b15801561446a57600080fd5b505af115801561447e573d6000803e3d6000fd5b505050506040513d604081101561449457600080fd5b5080516020909101519095509350505050915091565b60008080808063ffffffff891615156144e257600160a060020a038b1660009081526008602052604090206001015463ffffffff1698505b63ffffffff8816151561451457600160a060020a038a1660009081526008602052604090206001015463ffffffff1697505b61451d8b6115a1565b91506145288a6115a1565b90506145537f536f7672796e53776170466f726d756c610000000000000000000000000000006134f0565b604080517f94491fab0000000000000000000000000000000000000000000000000000000081526004810185905263ffffffff808d166024830152604482018590528b166064820152608481018990529051600160a060020a0392909216916394491fab9160a4808201926020929091908290030181600087803b1580156145da57600080fd5b505af11580156145ee573d6000803e3d6000fd5b505050506040513d602081101561460457600080fd5b5051945061461185614b4d565b9350614624846115e38c8c8c8c8b614b7d565b9250614636858463ffffffff613b7b16565b9450505096509650969350505050565b61464e613382565b6000614658612695565b61ffff161161469f576040805160e560020a62461bcd0281526020600482015260196024820152600080516020615334833981519152604482015290519081900360640190fd5b600560009054906101000a9004600160a060020a0316600160a060020a03166379ba50976040518163ffffffff1660e060020a028152600401600060405180830381600087803b1580156146f257600080fd5b505af1158015614706573d6000803e3d6000fd5b5050505061170a613b39565b600160a060020a038181166000908152600e602052604090205416151561154a576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f494e56414c49445f504f4f4c5f544f4b454e00000000000000000000604482015290519081900360640190fd5b604080517f7472616e7366657228616464726573732c75696e74323536290000000000000081528151908190036019018120600160a060020a038516602483015260448083018590528351808403909101815260649092019092526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff199093169290921790915261483590849061492d565b505050565b6000806000614847613a83565b8761485181613303565b8761485b81613303565b6148668a8a8a614c56565b9094509250600160a060020a0389166000805160206152f483398151915214156148c657604051600160a060020a0387169085156108fc029086906000818181858888f193505050501580156148c0573d6000803e3d6000fd5b506148d1565b6148d1898786614783565b6148df8a8a898b8888614f6b565b600160a060020a03808b16600090815260086020526040808220600190810154938d1683529120015461491f918c918c9163ffffffff9081169116614ff0565b509198975050505050505050565b6149356152b4565b602060405190810160405280600181525090506020818351602085016000875af180151561496257600080fd5b5080511515614835576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f5452414e534645525f4641494c454400000000000000000000000000604482015290519081900360640190fd5b6149c361529d565b6000806149cf876115a1565b91506149da866115a1565b905063ffffffff85161515614a0e57600160a060020a03871660009081526008602052604090206001015463ffffffff1694505b63ffffffff84161515614a4057600160a060020a03861660009081526008602052604090206001015463ffffffff1693505b6040805180820190915280614a5e8363ffffffff808a16906138da16565b8152602001614a768463ffffffff808916906138da16565b9052979650505050505050565b60008163ffffffff16118015614aa25750620f424063ffffffff821611155b151561154a576040805160e560020a62461bcd02815260206004820152601a60248201527f4552525f494e56414c49445f524553455256455f574549474854000000000000604482015290519081900360640190fd5b614b0061529d565b614b0861529d565b828410614b2057614b198484615081565b9150613957565b614b2a8385615081565b604080518082019091526020808301518252825190820152925090505092915050565b600954600090612ac590620f4240906116c390859068010000000000000000900463ffffffff908116906138da16565b600b546000908190600160a060020a0388811691161415614beb57600a54600160a060020a039081166000908152600c6020908152604080832054600b54909416835290912054865191870151601654614be4949363ffffffff808d1693908c169261513e565b9050614c3a565b600a54600160a060020a039081166000908152600c6020908152604080832054600b54909416835290912054865191870151601654614c37949363ffffffff808c1693908d169261513e565b90505b614c4b620f42406116c385846138da565b979650505050505050565b6000806000614c6361529d565b600080600080614c716151aa565b95509550614c848b8b600080898e6144aa565b91955093509150831515614ce2576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f5a45524f5f5441524745545f414d4f554e5400000000000000000000604482015290519081900360640190fd5b614ceb8a612aff565b9050808410614d44576040805160e560020a62461bcd02815260206004820152601a60248201527f4552525f5441524745545f414d4f554e545f544f4f5f48494748000000000000604482015290519081900360640190fd5b600160a060020a038b166000805160206152f48339815191521415614dbf57348914614dba576040805160e560020a62461bcd02815260206004820152601760248201527f4552525f4554485f414d4f554e545f4d49534d41544348000000000000000000604482015290519081900360640190fd5b614ec1565b34158015614e6b575088614e68614dd58d612aff565b8d600160a060020a03166370a08231306040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b158015614e3057600080fd5b505af1158015614e44573d6000803e3d6000fd5b505050506040513d6020811015614e5a57600080fd5b50519063ffffffff613b7b16565b10155b1515614ec1576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f494e56414c49445f414d4f554e540000000000000000000000000000604482015290519081900360640190fd5b614eca8b613dc0565b614eda818563ffffffff613b7b16565b600160a060020a038b16600090815260086020908152604080832093909355600c90522054614f0f908463ffffffff61395e16565b600160a060020a038b166000908152600c60205260409020558515614f5a57600a54600b54614f4d91600160a060020a0390811691166000806149bb565b8051601255602001516013555b509199919850909650505050505050565b7f80000000000000000000000000000000000000000000000000000000000000008110614f9457fe5b60408051848152602081018490528082018390529051600160a060020a038087169288821692918a16917f276856b36cbc45526a0ba64f44611557a2a8b68662c5388e9fe6d72e86e1c8cb9181900360600190a4505050505050565b600080614fff86868686613d23565b61500885612033565b915081600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561504857600080fd5b505af115801561505c573d6000803e3d6000fd5b505050506040513d602081101561507257600080fd5b50519050612227828287613cc3565b61508961529d565b7314484bfeebc29f863424b06f3529a051a31be5998211156150db57604080518082019091526c0c9f2c9cd04674edea4000000080825260208201908504848115156150d157fe5b0490529050612ac5565b6c0c9f2c9cd04674edea400000008311156151285760408051908101604052806c0c9f2c9cd04674edea400000008152602001846c0c9f2c9cd04674edea4000000085028115156150d157fe5b5060408051808201909152918252602082015290565b60008080615156876143588c8963ffffffff6138da16565b915061516c886143588b8863ffffffff6138da16565b90508181111561519857615191816116c360146143588684038963ffffffff6138da16565b925061519d565b600092505b5050979650505050505050565b60006151b461529d565b60006151be61529d565b6151c661529d565b6151ce6137c4565b92508260115414156151fc5760408051808201909152600f548152601054602082015260009550935061315f565b61520461413c565b60408051808201909152600f5480825260105460208301528251929450909250148015615238575080602001518260200151145b15615249576000829450945061315f565b8151600f55602082015160105560118390556152636137c8565b50600194909350915050565b6040805160a08101825260008082526020820181905291810182905260608101829052608081019190915290565b604080518082019091526000808252602082015290565b60206040519081016040528060019060208202803883395091929150505600536f7672796e53776170436f6e76657274657255706772616465720000000000000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee4552525f4143434553535f44454e4945440000000000000000000000000000004552525f494e56414c49445f524553455256455f434f554e5400000000000000a165627a7a72305820d6ceae0fa88e176fcec4250a8a72385cf1ae86e302a34151470ca7997955ccc20029", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x312 JUMPI PUSH4 0xFFFFFFFF PUSH1 0xE0 PUSH1 0x2 EXP PUSH1 0x0 CALLDATALOAD DIV AND PUSH3 0x5E319C DUP2 EQ PUSH2 0x3B0 JUMPI DUP1 PUSH4 0x24C7EC7 EQ PUSH2 0x3E3 JUMPI DUP1 PUSH4 0x337E3FB EQ PUSH2 0x3FD JUMPI DUP1 PUSH4 0xA55FB3D EQ PUSH2 0x42E JUMPI DUP1 PUSH4 0xC7D5CD8 EQ PUSH2 0x457 JUMPI DUP1 PUSH4 0xE53AAE9 EQ PUSH2 0x485 JUMPI DUP1 PUSH4 0x119B90CD EQ PUSH2 0x4DA JUMPI DUP1 PUSH4 0x12C2ACA4 EQ PUSH2 0x507 JUMPI DUP1 PUSH4 0x16912F96 EQ PUSH2 0x51C JUMPI DUP1 PUSH4 0x19B64015 EQ PUSH2 0x531 JUMPI DUP1 PUSH4 0x1CFAB290 EQ PUSH2 0x549 JUMPI DUP1 PUSH4 0x1E1401F8 EQ PUSH2 0x56A JUMPI DUP1 PUSH4 0x21E6B53D EQ PUSH2 0x5AD JUMPI DUP1 PUSH4 0x22F3E2D4 EQ PUSH2 0x5CE JUMPI DUP1 PUSH4 0x2630C12F EQ PUSH2 0x5E3 JUMPI DUP1 PUSH4 0x2BD3C107 EQ PUSH2 0x5F8 JUMPI DUP1 PUSH4 0x2BF0C985 EQ PUSH2 0x619 JUMPI DUP1 PUSH4 0x2FE8A6AD EQ PUSH2 0x63A JUMPI DUP1 PUSH4 0x38A5E016 EQ PUSH2 0x64F JUMPI DUP1 PUSH4 0x395900D4 EQ PUSH2 0x664 JUMPI DUP1 PUSH4 0x3E8FF43F EQ PUSH2 0x68E JUMPI DUP1 PUSH4 0x46749468 EQ PUSH2 0x6BA JUMPI DUP1 PUSH4 0x49D10B64 EQ PUSH2 0x6D5 JUMPI DUP1 PUSH4 0x4AF80F0E EQ PUSH2 0x6EA JUMPI DUP1 PUSH4 0x54FD4D50 EQ PUSH2 0x70B JUMPI DUP1 PUSH4 0x55776B77 EQ PUSH2 0x720 JUMPI DUP1 PUSH4 0x5768ADCF EQ PUSH2 0x73A JUMPI DUP1 PUSH4 0x579CD3CA EQ PUSH2 0x75B JUMPI DUP1 PUSH4 0x5E35359E EQ PUSH2 0x770 JUMPI DUP1 PUSH4 0x61CD756E EQ PUSH2 0x79A JUMPI DUP1 PUSH4 0x67B6D57C EQ PUSH2 0x7AF JUMPI DUP1 PUSH4 0x69067D95 EQ PUSH2 0x7D0 JUMPI DUP1 PUSH4 0x690D8320 EQ PUSH2 0x7F4 JUMPI DUP1 PUSH4 0x69D1354A EQ PUSH2 0x815 JUMPI DUP1 PUSH4 0x6A49D2C4 EQ PUSH2 0x82D JUMPI DUP1 PUSH4 0x71F52BF3 EQ PUSH2 0x857 JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x86C JUMPI DUP1 PUSH4 0x7B103999 EQ PUSH2 0x881 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x896 JUMPI DUP1 PUSH4 0x94C275AD EQ PUSH2 0x8AB JUMPI DUP1 PUSH4 0x98A71DCB EQ PUSH2 0x8C0 JUMPI DUP1 PUSH4 0x9B99A8E2 EQ PUSH2 0x8E1 JUMPI DUP1 PUSH4 0xA32BFF44 EQ PUSH2 0x8F6 JUMPI DUP1 PUSH4 0xAF94B8D8 EQ PUSH2 0x90B JUMPI DUP1 PUSH4 0xB4A176D3 EQ PUSH2 0x935 JUMPI DUP1 PUSH4 0xBF754558 EQ PUSH2 0x94A JUMPI DUP1 PUSH4 0xBF7DA6BA EQ PUSH2 0x95F JUMPI DUP1 PUSH4 0xC3321FB0 EQ PUSH2 0x983 JUMPI DUP1 PUSH4 0xC45D3D92 EQ PUSH2 0x998 JUMPI DUP1 PUSH4 0xCDC91C69 EQ PUSH2 0x9AD JUMPI DUP1 PUSH4 0xD031370B EQ PUSH2 0x9C2 JUMPI DUP1 PUSH4 0xD260529C EQ PUSH2 0x9DA JUMPI DUP1 PUSH4 0xD3FB73B4 EQ PUSH2 0x9EF JUMPI DUP1 PUSH4 0xD4EE1D90 EQ PUSH2 0xA04 JUMPI DUP1 PUSH4 0xD55EC697 EQ PUSH2 0xA19 JUMPI DUP1 PUSH4 0xD64C5A1A EQ PUSH2 0xA2E JUMPI DUP1 PUSH4 0xD66BD524 EQ PUSH2 0xA59 JUMPI DUP1 PUSH4 0xD8959512 EQ PUSH2 0xA7A JUMPI DUP1 PUSH4 0xDB2830A4 EQ PUSH2 0xA9B JUMPI DUP1 PUSH4 0xDC75EB9A EQ PUSH2 0xAB0 JUMPI DUP1 PUSH4 0xDC8DE379 EQ PUSH2 0xAC5 JUMPI DUP1 PUSH4 0xE38192E3 EQ PUSH2 0xAE6 JUMPI DUP1 PUSH4 0xE8104AF9 EQ PUSH2 0xB0D JUMPI DUP1 PUSH4 0xE8DC12FF EQ PUSH2 0xB22 JUMPI DUP1 PUSH4 0xEC2240F5 EQ PUSH2 0xB4C JUMPI DUP1 PUSH4 0xECBCA55D EQ PUSH2 0xB61 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0xB7F JUMPI DUP1 PUSH4 0xF9CDDDE2 EQ PUSH2 0xBA0 JUMPI DUP1 PUSH4 0xFC0C546A EQ PUSH2 0xBB5 JUMPI JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x52F4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x0 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH32 0x353C2EB9E53A4A4A6D45D72082FF2E9DC829D1125618772A83EB0E7F86632C43 SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO PUSH2 0x3AE JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245534552564500000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3BC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3D1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0xBCA JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3EF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH1 0x4 CALLDATALOAD ISZERO ISZERO PUSH2 0xBF3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x409 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x412 PUSH2 0xC3B JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x43A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x443 PUSH2 0xC4A JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x463 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x46C PUSH2 0xC53 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x491 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4A6 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0xC5F JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP6 DUP7 MSTORE PUSH4 0xFFFFFFFF SWAP1 SWAP5 AND PUSH1 0x20 DUP7 ADD MSTORE SWAP2 ISZERO ISZERO DUP5 DUP5 ADD MSTORE ISZERO ISZERO PUSH1 0x60 DUP5 ADD MSTORE ISZERO ISZERO PUSH1 0x80 DUP4 ADD MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0xA0 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4E6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x44 CALLDATALOAD AND PUSH2 0xCFA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x513 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x443 PUSH2 0x1464 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x528 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH2 0x14AD JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x53D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x412 PUSH1 0x4 CALLDATALOAD PUSH2 0x14C1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x555 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x46C PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x14ED JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x576 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x594 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x151F JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5B9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x1539 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5DA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x443 PUSH2 0x154D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5EF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x412 PUSH2 0x1582 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x604 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3D1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x15A1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x625 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3D1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x15F6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x646 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x443 PUSH2 0x16D9 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x65B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH2 0x16FA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x670 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x170C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x69A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x6A3 PUSH2 0x17A7 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0xFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6C6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH1 0x4 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH2 0x17AC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6E1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH2 0x1830 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6F6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x1A90 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x717 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x6A3 PUSH2 0x1AC5 JUMP JUMPDEST PUSH2 0x3D1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH1 0x44 CALLDATALOAD PUSH2 0x1ACA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x746 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x412 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x2033 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x767 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x46C PUSH2 0x2051 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x77C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x2069 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7A6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x412 PUSH2 0x217D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7BB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x218C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7DC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x594 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x222F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x800 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x238A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x821 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH1 0x4 CALLDATALOAD PUSH2 0x248F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x839 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH4 0xFFFFFFFF PUSH1 0x24 CALLDATALOAD AND PUSH2 0x2534 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x863 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x6A3 PUSH2 0x2593 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x878 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH2 0x259D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x88D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x412 PUSH2 0x2651 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8A2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x412 PUSH2 0x2660 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8B7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x46C PUSH2 0x266F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8CC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3D1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x2683 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8ED JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x6A3 PUSH2 0x2695 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x902 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x594 PUSH2 0x269B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x917 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x594 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x26A4 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x941 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH2 0x2848 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x956 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x443 PUSH2 0x2874 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x96B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x2879 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x98F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3D1 PUSH2 0x28C1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9A4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x412 PUSH2 0x28C7 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9B9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH2 0x28D6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9CE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x412 PUSH1 0x4 CALLDATALOAD PUSH2 0x292F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9E6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x443 PUSH2 0x2957 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9FB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x412 PUSH2 0x295C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x412 PUSH2 0x296B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA25 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH2 0x297A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA3A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xA43 PUSH2 0x2A6F JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA65 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4A6 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x2A74 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA86 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3D1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x2ABA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xAA7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x594 PUSH2 0x2ACB JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xABC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x412 PUSH2 0x2AF0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xAD1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3D1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x2AFF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xAF2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3D1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH1 0x44 CALLDATALOAD PUSH2 0x2B28 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xB19 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3D1 PUSH2 0x2E8D JUMP JUMPDEST PUSH2 0x3D1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x44 CALLDATALOAD SWAP1 PUSH1 0x64 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x84 CALLDATALOAD AND PUSH2 0x2E93 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xB58 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x594 PUSH2 0x30E6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xB6D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH4 0xFFFFFFFF PUSH1 0x4 CALLDATALOAD AND PUSH2 0x3166 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xB8B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x325B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xBAC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x594 PUSH2 0x32EB JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xBC1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x412 PUSH2 0x32F4 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0xBD6 DUP2 PUSH2 0x3303 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0xBFB PUSH2 0x3382 JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD SWAP2 ISZERO ISZERO PUSH21 0x10000000000000000000000000000000000000000 MUL PUSH21 0xFF0000000000000000000000000000000000000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x15 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH4 0xFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0xC6F PUSH2 0x526F JUMP JUMPDEST POP POP POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP2 MLOAD PUSH1 0xA0 DUP2 ADD DUP4 MSTORE DUP2 SLOAD DUP1 DUP3 MSTORE PUSH1 0x1 SWAP1 SWAP3 ADD SLOAD PUSH4 0xFFFFFFFF DUP2 AND SWAP5 DUP3 ADD DUP6 SWAP1 MSTORE PUSH1 0xFF PUSH5 0x100000000 DUP3 DIV DUP2 AND ISZERO ISZERO SWAP5 DUP4 ADD SWAP5 SWAP1 SWAP5 MSTORE PUSH6 0x10000000000 DUP2 DIV DUP5 AND ISZERO ISZERO PUSH1 0x60 DUP4 ADD MSTORE PUSH7 0x1000000000000 SWAP1 DIV SWAP1 SWAP3 AND ISZERO ISZERO PUSH1 0x80 SWAP1 SWAP3 ADD DUP3 SWAP1 MSTORE SWAP6 SWAP2 SWAP5 POP SWAP2 SWAP3 POP DUP3 SWAP2 SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0xD0A PUSH2 0x33D2 JUMP JUMPDEST PUSH2 0xD12 PUSH2 0x3382 JUMP JUMPDEST DUP8 PUSH2 0xD1C DUP2 PUSH2 0x3303 JUMP JUMPDEST DUP8 PUSH2 0xD26 DUP2 PUSH2 0x342F JUMP JUMPDEST DUP8 PUSH2 0xD30 DUP2 PUSH2 0x342F JUMP JUMPDEST DUP10 PUSH2 0xD3A DUP2 PUSH2 0x3490 JUMP JUMPDEST DUP10 PUSH2 0xD44 DUP2 PUSH2 0x3490 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x8DA5CB5B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD ADDRESS SWAP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP2 PUSH4 0x8DA5CB5B SWAP2 PUSH1 0x4 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xDA3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xDB7 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xDCD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ PUSH2 0xE2D JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F414E43484F525F4E4F545F4F574E4544000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0xE56 PUSH32 0x436861696E6C696E6B4F7261636C6557686974656C6973740000000000000000 PUSH2 0x34F0 JUMP JUMPDEST SWAP10 POP DUP10 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x3AF32ABF DUP14 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xEB3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xEC7 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xEDD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD ISZERO ISZERO PUSH2 0xF35 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4F5241434C450000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP10 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x3AF32ABF DUP13 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xF90 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xFA4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xFBA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD ISZERO ISZERO PUSH2 0x1012 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4F5241434C450000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x101A PUSH2 0x3588 JUMP JUMPDEST PUSH1 0xA DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP16 AND OR SWAP1 SSTORE PUSH1 0x7 DUP1 SLOAD PUSH1 0x0 SWAP1 DUP2 LT PUSH2 0x1044 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP15 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x10A2 JUMPI PUSH1 0x7 DUP1 SLOAD PUSH1 0x1 SWAP1 DUP2 LT PUSH2 0x1072 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0xB DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x10DD JUMP JUMPDEST PUSH1 0x7 DUP1 SLOAD PUSH1 0x0 SWAP1 DUP2 LT PUSH2 0x10B1 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0xB DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMPDEST PUSH2 0x1106 PUSH32 0x436F6E766572746572466163746F727900000000000000000000000000000000 PUSH2 0x34F0 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xC977AED2 PUSH2 0x111C PUSH2 0x17A7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH2 0xFFFF AND PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x115D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1171 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1187 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP SWAP9 POP DUP9 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x1B27444E DUP15 PUSH1 0xB PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP16 DUP16 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP6 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP5 POP POP POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1258 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x126C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1282 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x9 DUP1 SLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH13 0x1000000000000000000000000 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND DUP2 MUL SWAP2 SWAP1 SWAP2 OR SWAP2 DUP3 SWAP1 SSTORE PUSH1 0xA SLOAD PUSH1 0xB SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xAE81800400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP3 DUP7 AND PUSH1 0x4 DUP5 ADD MSTORE SWAP1 DUP6 AND PUSH1 0x24 DUP4 ADD MSTORE DUP1 MLOAD SWAP3 SWAP1 SWAP4 DIV SWAP1 SWAP4 AND SWAP3 PUSH4 0xAE818004 SWAP3 PUSH1 0x44 DUP1 DUP4 ADD SWAP4 SWAP2 SWAP3 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1324 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1338 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x134E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD MLOAD PUSH1 0x10 DUP2 SWAP1 SSTORE PUSH1 0xF DUP3 SWAP1 SSTORE PUSH1 0x12 SWAP2 SWAP1 SWAP2 SSTORE PUSH1 0x13 SSTORE PUSH2 0x1372 PUSH2 0x37C4 JUMP JUMPDEST PUSH1 0x11 SSTORE PUSH1 0xA SLOAD PUSH2 0x138A SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0xBCA JUMP JUMPDEST PUSH1 0xA SLOAD SWAP1 SWAP9 POP PUSH2 0x13A2 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x2AFF JUMP JUMPDEST PUSH1 0xB SLOAD SWAP1 SWAP8 POP PUSH2 0x13BA SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x2AFF JUMP JUMPDEST SWAP6 POP DUP7 DUP9 EQ ISZERO PUSH2 0x13E5 JUMPI PUSH1 0x0 DUP9 GT DUP1 PUSH2 0x13D3 JUMPI POP PUSH1 0x0 DUP7 GT JUMPDEST ISZERO PUSH2 0x13E0 JUMPI PUSH2 0x13E0 PUSH2 0x37C8 JUMP JUMPDEST PUSH2 0x140E JUMP JUMPDEST PUSH1 0x0 DUP9 GT DUP1 ISZERO PUSH2 0x13F5 JUMPI POP PUSH1 0x0 DUP8 GT JUMPDEST DUP1 ISZERO PUSH2 0x1401 JUMPI POP PUSH1 0x0 DUP7 GT JUMPDEST ISZERO PUSH2 0x140E JUMPI PUSH2 0x140E PUSH2 0x37C8 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x1425 PUSH2 0x17A7 JUMP JUMPDEST PUSH2 0xFFFF AND PUSH32 0x6B08C2E2C9969E55A647A764DB9B554D64DC42F1A704DA11A6D5B129AD163F2C PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x52F4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x0 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH32 0x353C2EB9E53A4A4A6D45D72082FF2E9DC829D1125618772A83EB0E7F86632C43 SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH2 0x14B5 PUSH2 0x3382 JUMP JUMPDEST PUSH1 0x15 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x7 DUP3 DUP2 SLOAD DUP2 LT ISZERO ISZERO PUSH2 0x14D2 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0x14F9 DUP2 PUSH2 0x3303 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH4 0xFFFFFFFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x152D DUP6 DUP6 DUP6 PUSH2 0x26A4 JUMP JUMPDEST SWAP2 POP SWAP2 POP SWAP4 POP SWAP4 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1541 PUSH2 0x3382 JUMP JUMPDEST PUSH2 0x154A DUP2 PUSH2 0x218C JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1557 PUSH2 0x3840 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x157D JUMPI POP PUSH1 0x9 SLOAD PUSH13 0x1000000000000000000000000 SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND ISZERO ISZERO JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH13 0x1000000000000000000000000 SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0x15AD DUP2 PUSH2 0x3303 JUMP JUMPDEST PUSH2 0x15EF PUSH2 0x15B9 DUP5 PUSH2 0x2AFF JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x15E3 SWAP1 PUSH1 0x13 PUSH4 0xFFFFFFFF PUSH2 0x38DA AND JUMP JUMPDEST SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x395E AND JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x18160DDD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x163C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1650 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1666 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP2 SWAP6 POP AND SWAP3 POP PUSH2 0x1691 DUP4 PUSH2 0x2AFF JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 SWAP3 POP SWAP1 POP PUSH2 0x16CF DUP2 PUSH2 0x16C3 DUP5 DUP8 PUSH4 0xFFFFFFFF PUSH2 0x38DA AND JUMP JUMPDEST SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x39BB AND JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH2 0x1702 PUSH2 0x3382 JUMP JUMPDEST PUSH2 0x170A PUSH2 0x28D6 JUMP JUMPDEST JUMP JUMPDEST PUSH2 0x1714 PUSH2 0x3382 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x5E35359E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP6 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP3 ADD DUP6 SWAP1 MSTORE SWAP2 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP2 PUSH4 0x5E35359E SWAP2 PUSH1 0x64 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x178A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x179E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 SWAP1 JUMP JUMPDEST PUSH2 0x17B4 PUSH2 0x3382 JUMP JUMPDEST DUP2 PUSH1 0x14 PUSH1 0x0 PUSH1 0x7 PUSH1 0x0 DUP2 SLOAD DUP2 LT ISZERO ISZERO PUSH2 0x17C9 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 SWAP1 SWAP2 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP4 MSTORE DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x40 ADD DUP2 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE PUSH1 0x7 DUP1 SLOAD DUP4 SWAP3 PUSH1 0x14 SWAP3 SWAP1 SWAP2 PUSH1 0x1 SWAP1 DUP2 LT PUSH2 0x1807 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 SWAP1 SWAP2 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP4 MSTORE DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x40 ADD SWAP1 KECCAK256 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ DUP1 PUSH2 0x1865 JUMPI POP PUSH1 0x3 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x18A9 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5314 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x18D2 PUSH32 0x436F6E7472616374526567697374727900000000000000000000000000000000 PUSH2 0x34F0 JUMP JUMPDEST PUSH1 0x2 SLOAD SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP4 AND SWAP2 AND EQ DUP1 ISZERO SWAP1 PUSH2 0x18FB JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x1951 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245474953545259000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0xBB34534C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH32 0x436F6E7472616374526567697374727900000000000000000000000000000000 PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP2 PUSH4 0xBB34534C SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x19D5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x19E9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x19FF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ ISZERO PUSH2 0x1A60 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245474953545259000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP5 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT SWAP3 DUP4 AND OR SWAP1 SWAP3 SSTORE SWAP1 SWAP2 AND SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x1A98 PUSH2 0x3382 JUMP JUMPDEST DUP1 PUSH2 0x1AA2 DUP2 PUSH2 0x342F JUMP JUMPDEST POP PUSH1 0x6 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x20 DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x1ADA PUSH2 0x3A29 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH2 0x1AE7 PUSH2 0x3A83 JUMP JUMPDEST DUP8 PUSH2 0x1AF1 DUP2 PUSH2 0x3303 JUMP JUMPDEST DUP8 PUSH2 0x1AFB DUP2 PUSH2 0x3AE1 JUMP JUMPDEST DUP8 PUSH2 0x1B05 DUP2 PUSH2 0x3AE1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x52F4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ PUSH2 0x1B2A JUMPI CALLVALUE ISZERO PUSH2 0x1B2E JUMP JUMPDEST DUP10 CALLVALUE EQ JUMPDEST ISZERO ISZERO PUSH2 0x1B84 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4554485F414D4F554E545F4D49534D41544348000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x1B8C PUSH2 0x3B39 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x52F4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ ISZERO PUSH2 0x1C2E JUMPI PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x52F4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x0 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH32 0x353C2EB9E53A4A4A6D45D72082FF2E9DC829D1125618772A83EB0E7F86632C42 SLOAD PUSH2 0x1BF4 SWAP1 CALLVALUE PUSH4 0xFFFFFFFF PUSH2 0x3B7B AND JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x52F4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x0 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH32 0x353C2EB9E53A4A4A6D45D72082FF2E9DC829D1125618772A83EB0E7F86632C42 SSTORE JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x15 SLOAD SWAP1 SWAP8 POP PUSH1 0xFF AND ISZERO PUSH2 0x1CF7 JUMPI PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x14 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD ISZERO DUP1 PUSH2 0x1CA1 JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x14 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x1C9E DUP9 DUP13 PUSH4 0xFFFFFFFF PUSH2 0x395E AND JUMP JUMPDEST GT ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x1CF7 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4D41585F5354414B45445F42414C414E43455F524541434845440000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP13 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD DUP2 MLOAD PUSH32 0x18160DDD00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP2 MLOAD SWAP5 AND SWAP10 POP DUP10 SWAP4 PUSH4 0x18160DDD SWAP4 PUSH1 0x4 DUP1 DUP5 ADD SWAP5 SWAP4 DUP4 SWAP1 SUB ADD SWAP1 DUP3 SWAP1 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1D64 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1D78 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1D8E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP5 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x52F4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ PUSH2 0x1DBC JUMPI PUSH2 0x1DBC DUP12 CALLER ADDRESS DUP14 PUSH2 0x3BDB JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x1DE5 SWAP1 DUP12 PUSH4 0xFFFFFFFF PUSH2 0x395E AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP13 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE PUSH2 0x1E0E DUP8 DUP12 PUSH4 0xFFFFFFFF PUSH2 0x395E AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP13 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE SWAP4 POP DUP7 ISZERO DUP1 PUSH2 0x1E37 JUMPI POP DUP5 ISZERO JUMPDEST ISZERO PUSH2 0x1E44 JUMPI DUP10 SWAP4 POP PUSH2 0x1E5B JUMP JUMPDEST PUSH2 0x1E58 DUP8 PUSH2 0x16C3 DUP13 DUP9 PUSH4 0xFFFFFFFF PUSH2 0x38DA AND JUMP JUMPDEST SWAP4 POP JUMPDEST DUP9 DUP5 LT ISZERO PUSH2 0x1EB3 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F52455455524E5F544F4F5F4C4F570000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xC6C3BBE600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP10 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE CALLER PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP3 ADD DUP9 SWAP1 MSTORE SWAP2 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP2 PUSH4 0xC6C3BBE6 SWAP2 PUSH1 0x64 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1F27 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1F3B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x1F47 PUSH2 0x37C8 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND CALLER PUSH32 0x4A1A2A6176E9646D9E3157F7C2AB3C499F18337C0B0828CFB28E0A61DE4A11F7 DUP13 PUSH2 0x1F84 DUP12 DUP3 PUSH4 0xFFFFFFFF PUSH2 0x395E AND JUMP JUMPDEST PUSH2 0x1F94 DUP11 DUP11 PUSH4 0xFFFFFFFF PUSH2 0x395E AND JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP4 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP3 SWAP1 SWAP3 MSTORE DUP3 DUP3 ADD MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG3 PUSH2 0x1FCB DUP7 PUSH2 0x1FC5 DUP8 DUP8 PUSH4 0xFFFFFFFF PUSH2 0x395E AND JUMP JUMPDEST DUP14 PUSH2 0x3CC3 JUMP JUMPDEST PUSH2 0x2020 PUSH1 0x7 PUSH1 0x0 DUP2 SLOAD DUP2 LT ISZERO ISZERO PUSH2 0x1FDE JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x7 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP2 PUSH1 0x1 SWAP1 DUP2 LT PUSH2 0x2005 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP1 DUP1 PUSH2 0x3D23 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0x4 SSTORE POP SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD AND SWAP1 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH9 0x10000000000000000 SWAP1 DIV PUSH4 0xFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2073 PUSH2 0x3A29 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH2 0x2080 PUSH2 0x3382 JUMP JUMPDEST PUSH2 0x2097 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x52D4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x34F0 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD SWAP1 SWAP2 POP PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 PUSH2 0x20D4 JUMPI POP PUSH2 0x20D2 PUSH2 0x154D JUMP JUMPDEST ISZERO JUMPDEST DUP1 PUSH2 0x20EC JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ JUMPDEST ISZERO ISZERO PUSH2 0x2130 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5314 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x213B DUP5 DUP5 DUP5 PUSH2 0x3D8F JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x2172 JUMPI PUSH2 0x2172 DUP5 PUSH2 0x3DC0 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0x4 SSTORE POP POP JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH2 0x2194 PUSH2 0x3382 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x52D4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x21AC DUP2 PUSH2 0x3EB4 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xF2FDE38B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP2 PUSH4 0xF2FDE38B SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2213 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2227 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 DUP12 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x18160DDD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x227C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2290 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x22A6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP15 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD SWAP1 SWAP4 AND DUP3 MSTORE PUSH1 0xC SWAP1 MSTORE KECCAK256 SLOAD SWAP1 SWAP9 POP SWAP7 POP DUP8 DUP12 LT ISZERO PUSH2 0x2371 JUMPI PUSH1 0xA SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x2309 SWAP1 PUSH1 0x14 PUSH4 0xFFFFFFFF PUSH2 0x38DA AND JUMP JUMPDEST PUSH1 0xA SLOAD SWAP1 SWAP7 POP PUSH2 0x2321 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x15A1 JUMP JUMPDEST SWAP5 POP DUP5 DUP7 LT PUSH2 0x2331 JUMPI DUP5 DUP7 PUSH2 0x2334 JUMP JUMPDEST DUP6 DUP6 JUMPDEST SWAP1 SWAP5 POP SWAP3 POP PUSH2 0x234D DUP9 PUSH2 0x16C3 DUP14 DUP11 PUSH4 0xFFFFFFFF PUSH2 0x38DA AND JUMP JUMPDEST SWAP2 POP PUSH2 0x2363 DUP4 PUSH2 0x16C3 DUP5 DUP8 PUSH4 0xFFFFFFFF PUSH2 0x38DA AND JUMP JUMPDEST SWAP10 POP POP DUP9 DUP2 SUB SWAP8 POP DUP9 PUSH2 0x237B JUMP JUMPDEST SWAP6 SWAP9 POP PUSH1 0x0 SWAP8 POP DUP9 SWAP6 JUMPDEST POP POP POP POP POP POP POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2394 PUSH2 0x3A29 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH2 0x23A1 PUSH2 0x3382 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x52F4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x23B9 DUP2 PUSH2 0x3303 JUMP JUMPDEST PUSH2 0x23D0 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x52D4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x34F0 JUMP JUMPDEST SWAP2 POP PUSH2 0x23DA PUSH2 0x154D JUMP JUMPDEST ISZERO DUP1 PUSH2 0x23F3 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 DUP2 AND SWAP2 AND EQ JUMPDEST ISZERO ISZERO PUSH2 0x2437 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5314 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP1 ADDRESS BALANCE DUP1 ISZERO PUSH2 0x8FC MUL SWAP2 PUSH1 0x0 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x246D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH2 0x2485 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x52F4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x3DC0 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0x4 SSTORE POP JUMP JUMPDEST PUSH2 0x2497 PUSH2 0x3382 JUMP JUMPDEST PUSH3 0x186A0 DUP2 GT ISZERO PUSH2 0x24F2 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F44594E414D49435F4645455F464143544F520000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x16 SLOAD PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP4 SWAP1 MSTORE DUP1 MLOAD PUSH32 0x382FD3516344712A511DCD464FF8E6AB54139D6A28F64087A3253353EE7A5679 SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG1 PUSH1 0x16 SSTORE JUMP JUMPDEST PUSH1 0x2 PUSH2 0x253E PUSH2 0x2695 JUMP JUMPDEST PUSH2 0xFFFF AND LT PUSH2 0x2585 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5334 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x258F DUP3 DUP3 PUSH2 0x3F0A JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x157D PUSH2 0x2695 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x25ED JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5314 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND SWAP4 SWAP1 SWAP2 AND SWAP2 PUSH32 0x343765429AEA5A34B3FF6A3785A98A5ABB2597ACA87BFBB58632C173D585373A SWAP2 LOG3 PUSH1 0x1 DUP1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND OR SWAP1 SWAP2 SSTORE AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH5 0x100000000 SWAP1 DIV PUSH4 0xFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x14 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x7 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0xF SLOAD PUSH1 0x10 SLOAD DUP3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x26B2 PUSH2 0x529D JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x26C0 PUSH2 0x3A83 JUMP JUMPDEST PUSH2 0x26C9 DUP13 PUSH2 0x3303 JUMP JUMPDEST PUSH2 0x26D2 DUP12 PUSH2 0x3303 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP13 DUP2 AND SWAP1 DUP13 AND EQ ISZERO PUSH2 0x2736 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F534F555243455F54415247455400000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x273E PUSH2 0x37C4 JUMP JUMPDEST PUSH1 0x11 SLOAD EQ ISZERO PUSH2 0x27E5 JUMPI PUSH1 0xF PUSH1 0x40 DUP1 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD SLOAD DUP2 MSTORE POP POP SWAP5 POP PUSH1 0x8 PUSH1 0x0 DUP14 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH4 0xFFFFFFFF AND SWAP7 POP PUSH1 0x8 PUSH1 0x0 DUP13 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH4 0xFFFFFFFF AND SWAP6 POP PUSH2 0x2825 JUMP JUMPDEST PUSH2 0x27ED PUSH2 0x413C JUMP JUMPDEST SWAP5 POP PUSH2 0x27F8 DUP6 PUSH2 0x4380 JUMP JUMPDEST PUSH1 0xA SLOAD SWAP2 SWAP6 POP SWAP4 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP14 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x281E JUMPI DUP4 SWAP7 POP DUP3 SWAP6 POP PUSH2 0x2825 JUMP JUMPDEST DUP3 SWAP7 POP DUP4 SWAP6 POP JUMPDEST PUSH2 0x2833 DUP13 DUP13 DUP10 DUP10 DUP10 DUP16 PUSH2 0x44AA JUMP JUMPDEST SWAP2 SWAP15 SWAP2 SWAP14 POP SWAP1 SWAP12 POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x2850 PUSH2 0x3382 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x2 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x1 DUP2 JUMP JUMPDEST PUSH2 0x2881 PUSH2 0x3382 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x52D4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x2899 DUP2 PUSH2 0x3EB4 JUMP JUMPDEST DUP3 PUSH2 0x28A3 DUP2 PUSH2 0x3303 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE JUMP JUMPDEST PUSH1 0x11 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x1 PUSH2 0x28E0 PUSH2 0x2695 JUMP JUMPDEST PUSH2 0xFFFF AND GT PUSH2 0x2927 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5334 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x170A PUSH2 0x4646 JUMP JUMPDEST PUSH1 0x7 DUP1 SLOAD DUP3 SWAP1 DUP2 LT PUSH2 0x293D JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP1 POP DUP2 JUMP JUMPDEST PUSH1 0x1 SWAP1 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2984 PUSH2 0x3382 JUMP JUMPDEST PUSH2 0x299B PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x52D4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x34F0 JUMP JUMPDEST PUSH1 0x5 SLOAD SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x29B5 PUSH2 0x17A7 JUMP JUMPDEST PUSH2 0xFFFF AND PUSH32 0x6B08C2E2C9969E55A647A764DB9B554D64DC42F1A704DA11A6D5B129AD163F2C PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH2 0x29EE DUP2 PUSH2 0x325B JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x90F58C9600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 AND SWAP2 PUSH4 0x90F58C96 SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2A4F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2A63 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x154A PUSH2 0x259D JUMP JUMPDEST PUSH1 0x14 SWAP1 JUMP JUMPDEST PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD PUSH4 0xFFFFFFFF DUP2 AND SWAP1 PUSH1 0xFF PUSH5 0x100000000 DUP3 DIV DUP2 AND SWAP2 PUSH6 0x10000000000 DUP2 DIV DUP3 AND SWAP2 PUSH7 0x1000000000000 SWAP1 SWAP2 DIV AND DUP6 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2AC5 DUP3 PUSH2 0x2AFF JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2AD6 PUSH2 0x529D JUMP JUMPDEST PUSH2 0x2ADE PUSH2 0x413C JUMP JUMPDEST DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD MLOAD SWAP1 SWAP5 SWAP1 SWAP4 POP SWAP2 POP POP JUMP JUMPDEST PUSH1 0xB SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0x2B0B DUP2 PUSH2 0x3303 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x2B39 PUSH2 0x3A29 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH2 0x2B46 PUSH2 0x3A83 JUMP JUMPDEST DUP9 PUSH2 0x2B50 DUP2 PUSH2 0x4712 JUMP JUMPDEST DUP9 PUSH2 0x2B5A DUP2 PUSH2 0x3AE1 JUMP JUMPDEST DUP9 PUSH2 0x2B64 DUP2 PUSH2 0x3AE1 JUMP JUMPDEST PUSH2 0x2B6C PUSH2 0x3B39 JUMP JUMPDEST DUP12 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x18160DDD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2BAA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2BBE JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2BD4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP8 POP PUSH2 0x2BE2 DUP13 DUP13 PUSH2 0x222F JUMP JUMPDEST POP SWAP7 POP DUP10 DUP8 LT ISZERO PUSH2 0x2C3D JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F52455455524E5F544F4F5F4C4F570000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0xE PUSH1 0x0 DUP14 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP6 POP PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xF6B911BC DUP14 CALLER DUP15 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP4 POP POP POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2D0A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2D1E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x2D4B SWAP2 POP DUP9 PUSH4 0xFFFFFFFF PUSH2 0x3B7B AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE PUSH1 0xC SWAP1 MSTORE KECCAK256 SLOAD PUSH2 0x2D80 SWAP1 DUP9 PUSH4 0xFFFFFFFF PUSH2 0x3B7B AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP3 SWAP1 SSTORE SWAP1 SWAP6 POP PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x52F4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ ISZERO PUSH2 0x2DE6 JUMPI PUSH1 0x40 MLOAD CALLER SWAP1 DUP9 ISZERO PUSH2 0x8FC MUL SWAP1 DUP10 SWAP1 PUSH1 0x0 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x2DE0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH2 0x2DF1 JUMP JUMPDEST PUSH2 0x2DF1 DUP7 CALLER DUP10 PUSH2 0x4783 JUMP JUMPDEST PUSH2 0x2DF9 PUSH2 0x37C8 JUMP JUMPDEST PUSH2 0x2E09 DUP9 DUP13 PUSH4 0xFFFFFFFF PUSH2 0x3B7B AND JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP10 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP9 SWAP1 MSTORE DUP1 DUP3 ADD DUP4 SWAP1 MSTORE SWAP1 MLOAD SWAP2 SWAP6 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 AND SWAP2 CALLER SWAP2 PUSH32 0xBC7D19D505C7EC4DB83F3B51F19FB98C4C8A99922E7839D1EE608DFBEE29501B SWAP2 SWAP1 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG3 PUSH2 0x2E65 DUP13 DUP6 DUP9 PUSH2 0x3CC3 JUMP JUMPDEST PUSH2 0x2E78 PUSH1 0x7 PUSH1 0x0 DUP2 SLOAD DUP2 LT ISZERO ISZERO PUSH2 0x1FDE JUMPI INVALID JUMPDEST POP POP PUSH1 0x1 PUSH1 0x4 SSTORE POP SWAP3 SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x16 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2E9D PUSH2 0x3A29 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH32 0x536F7672796E537761704E6574776F726B000000000000000000000000000000 PUSH2 0x2ECC DUP2 PUSH2 0x3EB4 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 DUP2 AND SWAP1 DUP8 AND EQ ISZERO PUSH2 0x2F30 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F534F555243455F54415247455400000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND ISZERO DUP1 PUSH2 0x3073 JUMPI POP PUSH1 0x6 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x3AF32ABF00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP2 PUSH4 0x3AF32ABF SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2FAB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2FBF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2FD5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD DUP1 ISZERO PUSH2 0x3073 JUMPI POP PUSH1 0x6 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x3AF32ABF00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP2 PUSH4 0x3AF32ABF SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3046 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x305A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x3070 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD JUMPDEST ISZERO ISZERO PUSH2 0x30C9 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4E4F545F57484954454C495354454400000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x30D6 DUP8 DUP8 DUP8 DUP8 DUP8 PUSH2 0x483A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x4 SSTORE SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x30F1 PUSH2 0x529D JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x30FC PUSH2 0x413C JUMP JUMPDEST SWAP3 POP PUSH2 0x3107 DUP4 PUSH2 0x4380 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x7 PUSH1 0x0 DUP2 SLOAD DUP2 LT ISZERO ISZERO PUSH2 0x311B JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0xA SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x3150 JUMPI PUSH4 0xFFFFFFFF DUP1 DUP4 AND SWAP6 POP DUP2 AND SWAP4 POP PUSH2 0x315F JUMP JUMPDEST PUSH4 0xFFFFFFFF DUP1 DUP3 AND SWAP6 POP DUP3 AND SWAP4 POP JUMPDEST POP POP POP SWAP1 SWAP2 JUMP JUMPDEST PUSH2 0x316E PUSH2 0x3382 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH4 0xFFFFFFFF PUSH5 0x100000000 SWAP1 SWAP2 DIV DUP2 AND SWAP1 DUP3 AND GT ISZERO PUSH2 0x31DA JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F434F4E56455253494F4E5F464545000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH4 0xFFFFFFFF PUSH9 0x10000000000000000 SWAP1 SWAP4 DIV DUP4 AND DUP2 MSTORE SWAP2 DUP4 AND PUSH1 0x20 DUP4 ADD MSTORE DUP1 MLOAD PUSH32 0x81CD2FFB37DD237C0E4E2A3DE5265FCF9DEB43D3E7801E80DB9F1CCFBA7EE600 SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG1 PUSH1 0x9 DUP1 SLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP3 AND PUSH9 0x10000000000000000 MUL PUSH12 0xFFFFFFFF0000000000000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x3263 PUSH2 0x3382 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x32C9 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F4F574E4552000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x12 SLOAD PUSH1 0x13 SLOAD DUP3 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO PUSH2 0x154A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245534552564500000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x170A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5314 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x33DA PUSH2 0x154D JUMP JUMPDEST ISZERO PUSH2 0x170A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xA PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F41435449564500000000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ADDRESS EQ ISZERO PUSH2 0x154A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F414444524553535F49535F53454C4600000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0x154A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xBB34534C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP2 PUSH4 0xBB34534C SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3556 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x356A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x3580 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP6 POP DUP6 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x6D3E313E PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x35E8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x35FC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x3625 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 MLOAD PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x363D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD PUSH1 0x20 DUP2 ADD DUP5 DUP2 GT ISZERO PUSH2 0x3650 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP6 PUSH1 0x20 DUP3 MUL DUP4 ADD GT PUSH5 0x100000000 DUP3 GT OR ISZERO PUSH2 0x366D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP DUP1 MLOAD PUSH1 0x7 SLOAD SWAP2 SWAP10 POP ISZERO SWAP8 POP SWAP6 POP PUSH1 0x0 SWAP5 POP POP POP POP JUMPDEST DUP3 DUP3 LT ISZERO PUSH2 0x2227 JUMPI DUP4 ISZERO PUSH2 0x3703 JUMPI DUP6 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x9CBF9E36 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x36D0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x36E4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x36FA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 POP PUSH2 0x371E JUMP JUMPDEST DUP5 DUP3 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3711 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD SWAP1 POP JUMPDEST DUP1 PUSH1 0xD PUSH1 0x0 PUSH1 0x7 DUP6 DUP2 SLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3732 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 SWAP2 SWAP1 SWAP2 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 DUP2 AND DUP5 MSTORE SWAP1 DUP4 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x40 SWAP1 SWAP2 ADD SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND SWAP3 SWAP1 SWAP2 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH1 0x7 DUP1 SLOAD DUP4 SWAP1 DUP2 LT PUSH2 0x3780 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 SWAP1 SWAP2 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 DUP2 AND DUP5 MSTORE PUSH1 0xE SWAP1 SWAP3 MSTORE PUSH1 0x40 SWAP1 SWAP3 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND SWAP2 SWAP1 SWAP3 AND OR SWAP1 SSTORE PUSH1 0x1 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x3684 JUMP JUMPDEST TIMESTAMP SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0xF SLOAD DUP2 MSTORE PUSH1 0x10 SLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 SWAP1 DUP2 SWAP1 PUSH2 0x37ED SWAP1 PUSH2 0x4380 JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 PUSH1 0x1 SWAP1 DUP2 ADD DUP1 SLOAD PUSH4 0xFFFFFFFF SWAP8 DUP9 AND PUSH4 0xFFFFFFFF NOT SWAP2 DUP3 AND OR SWAP1 SWAP2 SSTORE PUSH1 0xB SLOAD SWAP1 SWAP5 AND DUP4 MSTORE SWAP2 KECCAK256 ADD DUP1 SLOAD SWAP3 SWAP1 SWAP4 AND SWAP2 AND OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 ADDRESS PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x8DA5CB5B PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x389F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x38B3 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x38C9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 ISZERO ISZERO PUSH2 0x38ED JUMPI PUSH1 0x0 SWAP2 POP PUSH2 0x3957 JUMP JUMPDEST POP DUP3 DUP3 MUL DUP3 DUP5 DUP3 DUP2 ISZERO ISZERO PUSH2 0x38FD JUMPI INVALID JUMPDEST DIV EQ PUSH2 0x3953 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP1 SWAP2 POP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 ADD DUP4 DUP2 LT ISZERO PUSH2 0x3953 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP4 GT PUSH2 0x3A15 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4449564944455F42595F5A45524F0000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP3 DUP5 DUP2 ISZERO ISZERO PUSH2 0x3A20 JUMPI INVALID JUMPDEST DIV SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH1 0x1 EQ PUSH2 0x170A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5245454E5452414E4359000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x3A8B PUSH2 0x154D JUMP JUMPDEST ISZERO ISZERO PUSH2 0x170A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E4143544956450000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 GT PUSH2 0x154A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5A45524F5F56414C5545000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x258F JUMPI PUSH2 0x3B73 PUSH1 0x7 DUP3 DUP2 SLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3B59 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x3DC0 JUMP JUMPDEST PUSH1 0x1 ADD PUSH2 0x3B3F JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT ISZERO PUSH2 0x3BD5 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F554E444552464C4F5700000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP SWAP1 SUB SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x7472616E7366657246726F6D28616464726573732C616464726573732C75696E DUP2 MSTORE PUSH32 0x7432353629000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP3 MLOAD SWAP2 DUP3 SWAP1 SUB PUSH1 0x25 ADD DUP3 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP9 AND PUSH1 0x24 DUP6 ADD MSTORE DUP7 AND PUSH1 0x44 DUP5 ADD MSTORE PUSH1 0x64 DUP1 DUP5 ADD DUP7 SWAP1 MSTORE DUP5 MLOAD DUP1 DUP6 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x84 SWAP1 SWAP4 ADD SWAP1 SWAP4 MSTORE DUP2 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE PUSH2 0x3CBD SWAP1 DUP6 SWAP1 PUSH2 0x492D JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP3 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SLOAD DUP3 MLOAD SWAP1 DUP2 MSTORE SWAP1 DUP2 ADD DUP7 SWAP1 MSTORE DUP2 MLOAD SWAP3 SWAP4 DUP8 AND SWAP3 PUSH32 0x77F29993CF2C084E726F7E802DA0719D6A0ADE3E204BADC7A3FFD57ECB768C24 SWAP3 SWAP2 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH2 0x3D2B PUSH2 0x529D JUMP JUMPDEST PUSH2 0x3D37 DUP6 DUP6 DUP6 DUP6 PUSH2 0x49BB JUMP JUMPDEST DUP1 MLOAD PUSH1 0x20 DUP1 DUP4 ADD MLOAD PUSH1 0x40 DUP1 MLOAD SWAP4 DUP5 MSTORE SWAP2 DUP4 ADD MSTORE DUP1 MLOAD SWAP3 SWAP4 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP9 AND SWAP4 SWAP1 DUP10 AND SWAP3 PUSH32 0x77F29993CF2C084E726F7E802DA0719D6A0ADE3E204BADC7A3FFD57ECB768C24 SWAP3 SWAP1 DUP3 SWAP1 SUB ADD SWAP1 LOG3 POP POP POP POP POP JUMP JUMPDEST PUSH2 0x3D97 PUSH2 0x3382 JUMP JUMPDEST DUP3 PUSH2 0x3DA1 DUP2 PUSH2 0x3490 JUMP JUMPDEST DUP3 PUSH2 0x3DAB DUP2 PUSH2 0x3490 JUMP JUMPDEST DUP4 PUSH2 0x3DB5 DUP2 PUSH2 0x342F JUMP JUMPDEST PUSH2 0x2227 DUP7 DUP7 DUP7 PUSH2 0x4783 JUMP JUMPDEST DUP1 PUSH2 0x3DCA DUP2 PUSH2 0x3303 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 AND PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x52F4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ ISZERO PUSH2 0x3E0A JUMPI PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 ADDRESS BALANCE SWAP1 SSTORE PUSH2 0x258F JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3E6B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3E7F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x3E95 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE POP POP JUMP JUMPDEST PUSH2 0x3EBD DUP2 PUSH2 0x34F0 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x154A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5314 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x3F14 PUSH2 0x3382 JUMP JUMPDEST PUSH2 0x3F1C PUSH2 0x33D2 JUMP JUMPDEST DUP3 PUSH2 0x3F26 DUP2 PUSH2 0x3490 JUMP JUMPDEST DUP4 PUSH2 0x3F30 DUP2 PUSH2 0x342F JUMP JUMPDEST DUP4 PUSH2 0x3F3A DUP2 PUSH2 0x4A83 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 DUP2 AND SWAP2 AND EQ DUP1 ISZERO SWAP1 PUSH2 0x3F7E JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x3FD4 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245534552564500000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x9 SLOAD PUSH4 0xFFFFFFFF SWAP1 DUP2 AND PUSH3 0xF4240 SUB DUP2 AND SWAP1 DUP7 AND GT ISZERO PUSH2 0x403F JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F574549474854000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0xFFFF PUSH2 0x404A PUSH2 0x2695 JUMP JUMPDEST PUSH2 0xFFFF AND LT PUSH2 0x4091 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5334 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP2 DUP2 SSTORE PUSH1 0x1 SWAP1 DUP2 ADD DUP1 SLOAD PUSH7 0xFF000000000000 NOT PUSH4 0xFFFFFFFF DUP1 DUP9 AND PUSH4 0xFFFFFFFF NOT SWAP4 DUP5 AND OR SWAP2 SWAP1 SWAP2 AND PUSH7 0x1000000000000 OR SWAP1 SWAP3 SSTORE PUSH1 0x7 DUP1 SLOAD SWAP4 DUP5 ADD DUP2 SSTORE SWAP1 SWAP4 MSTORE PUSH32 0xA66CC928B5EDB82AF9BD49922954155AB7B0942694BEA4CE44661D9A8736C688 SWAP1 SWAP2 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND SWAP1 SWAP4 OR SWAP1 SWAP3 SSTORE PUSH1 0x9 DUP1 SLOAD DUP1 DUP5 AND SWAP1 SWAP5 ADD SWAP1 SWAP3 AND SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE POP JUMP JUMPDEST PUSH2 0x4144 PUSH2 0x529D JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x4152 PUSH2 0x529D JUMP JUMPDEST PUSH2 0x415A PUSH2 0x529D JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0xA SLOAD PUSH1 0xB SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xB1772D7A00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND PUSH1 0x4 DUP3 ADD MSTORE SWAP2 DUP4 AND PUSH1 0x24 DUP4 ADD MSTORE MLOAD PUSH1 0x0 SWAP4 DUP5 SWAP4 DUP5 SWAP4 DUP5 SWAP4 PUSH13 0x1000000000000000000000000 SWAP1 SWAP4 DIV SWAP1 SWAP2 AND SWAP2 PUSH4 0xB1772D7A SWAP2 PUSH1 0x44 DUP1 DUP3 ADD SWAP3 PUSH1 0x60 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x41E8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x41FC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x60 DUP2 LT ISZERO PUSH2 0x4212 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD PUSH1 0x20 DUP3 ADD MLOAD PUSH1 0x40 SWAP1 SWAP3 ADD MLOAD PUSH1 0x11 SLOAD SWAP2 SWAP13 POP SWAP2 SWAP11 POP SWAP1 SWAP9 POP DUP9 GT ISZERO PUSH2 0x424F JUMPI PUSH1 0x40 DUP1 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 DUP12 DUP2 MSTORE PUSH1 0x20 ADD DUP11 DUP2 MSTORE POP SWAP11 POP PUSH2 0x4373 JUMP JUMPDEST PUSH1 0x11 SLOAD PUSH2 0x425A PUSH2 0x37C4 JUMP JUMPDEST SUB SWAP7 POP DUP7 ISZERO ISZERO PUSH2 0x4282 JUMPI PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0xF SLOAD DUP2 MSTORE PUSH1 0x10 SLOAD PUSH1 0x20 DUP3 ADD MSTORE SWAP11 POP PUSH2 0x4373 JUMP JUMPDEST PUSH2 0x258 DUP8 LT PUSH2 0x42A9 JUMPI PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x12 SLOAD DUP2 MSTORE PUSH1 0x13 SLOAD PUSH1 0x20 DUP3 ADD MSTORE SWAP11 POP PUSH2 0x4373 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD DUP3 MSTORE PUSH1 0xF SLOAD DUP2 MSTORE PUSH1 0x10 SLOAD PUSH1 0x20 DUP1 DUP4 ADD SWAP2 DUP3 MSTORE DUP4 MLOAD DUP1 DUP6 ADD SWAP1 SWAP5 MSTORE PUSH1 0x12 SLOAD DUP1 DUP6 MSTORE PUSH1 0x13 SLOAD SWAP2 DUP6 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP1 MLOAD SWAP2 SWAP9 POP SWAP2 SWAP7 POP PUSH2 0x42F1 SWAP2 PUSH4 0xFFFFFFFF PUSH2 0x38DA AND JUMP JUMPDEST PUSH1 0x20 DUP7 ADD MLOAD DUP8 MLOAD SWAP2 SWAP6 POP PUSH2 0x430B SWAP2 SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x38DA AND JUMP JUMPDEST SWAP3 POP PUSH2 0x4335 PUSH2 0x4320 DUP6 DUP10 PUSH4 0xFFFFFFFF PUSH2 0x38DA AND JUMP JUMPDEST PUSH2 0x15E3 DUP6 PUSH2 0x258 DUP12 SWAP1 SUB PUSH4 0xFFFFFFFF PUSH2 0x38DA AND JUMP JUMPDEST SWAP2 POP PUSH2 0x4364 PUSH2 0x258 PUSH2 0x4358 DUP8 PUSH1 0x20 ADD MLOAD DUP10 PUSH1 0x20 ADD MLOAD PUSH2 0x38DA SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x38DA AND JUMP JUMPDEST SWAP1 POP PUSH2 0x4370 DUP3 DUP3 PUSH2 0x4AF8 JUMP JUMPDEST SWAP11 POP JUMPDEST POP POP POP POP POP POP POP POP POP POP SWAP1 JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD SWAP1 SWAP2 DUP3 SWAP2 SWAP1 DUP3 SWAP1 DUP2 SWAP1 PUSH2 0x43AD SWAP1 PUSH2 0x15A1 JUMP JUMPDEST PUSH1 0xB SLOAD SWAP1 SWAP3 POP PUSH2 0x43C5 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x15A1 JUMP JUMPDEST SWAP1 POP PUSH2 0x43F0 PUSH32 0x536F7672796E53776170466F726D756C61000000000000000000000000000000 PUSH2 0x34F0 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xA11AA1B4 PUSH2 0x440F DUP6 PUSH1 0x14 PUSH4 0xFFFFFFFF PUSH2 0x38DA AND JUMP JUMPDEST DUP9 MLOAD PUSH1 0x20 DUP11 ADD MLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0xE0 PUSH1 0x2 EXP PUSH4 0xFFFFFFFF DUP8 AND MUL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP5 SWAP1 SWAP5 MSTORE PUSH1 0x24 DUP5 ADD DUP9 SWAP1 MSTORE PUSH1 0x44 DUP5 ADD DUP8 SWAP1 MSTORE PUSH1 0x64 DUP5 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x84 DUP4 ADD MSTORE DUP1 MLOAD PUSH1 0xA4 DUP1 DUP5 ADD SWAP4 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x446A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x447E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x4494 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD MLOAD SWAP1 SWAP6 POP SWAP4 POP POP POP POP SWAP2 POP SWAP2 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP1 DUP1 PUSH4 0xFFFFFFFF DUP10 AND ISZERO ISZERO PUSH2 0x44E2 JUMPI PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH4 0xFFFFFFFF AND SWAP9 POP JUMPDEST PUSH4 0xFFFFFFFF DUP9 AND ISZERO ISZERO PUSH2 0x4514 JUMPI PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP11 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH4 0xFFFFFFFF AND SWAP8 POP JUMPDEST PUSH2 0x451D DUP12 PUSH2 0x15A1 JUMP JUMPDEST SWAP2 POP PUSH2 0x4528 DUP11 PUSH2 0x15A1 JUMP JUMPDEST SWAP1 POP PUSH2 0x4553 PUSH32 0x536F7672796E53776170466F726D756C61000000000000000000000000000000 PUSH2 0x34F0 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x94491FAB00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH4 0xFFFFFFFF DUP1 DUP14 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP3 ADD DUP6 SWAP1 MSTORE DUP12 AND PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 DUP2 ADD DUP10 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 PUSH4 0x94491FAB SWAP2 PUSH1 0xA4 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x45DA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x45EE JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x4604 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP5 POP PUSH2 0x4611 DUP6 PUSH2 0x4B4D JUMP JUMPDEST SWAP4 POP PUSH2 0x4624 DUP5 PUSH2 0x15E3 DUP13 DUP13 DUP13 DUP13 DUP12 PUSH2 0x4B7D JUMP JUMPDEST SWAP3 POP PUSH2 0x4636 DUP6 DUP5 PUSH4 0xFFFFFFFF PUSH2 0x3B7B AND JUMP JUMPDEST SWAP5 POP POP POP SWAP7 POP SWAP7 POP SWAP7 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0x464E PUSH2 0x3382 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4658 PUSH2 0x2695 JUMP JUMPDEST PUSH2 0xFFFF AND GT PUSH2 0x469F JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5334 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x79BA5097 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x46F2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x4706 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x170A PUSH2 0x3B39 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD AND ISZERO ISZERO PUSH2 0x154A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F504F4F4C5F544F4B454E00000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x7472616E7366657228616464726573732C75696E743235362900000000000000 DUP2 MSTORE DUP2 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x19 ADD DUP2 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x64 SWAP1 SWAP3 ADD SWAP1 SWAP3 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE PUSH2 0x4835 SWAP1 DUP5 SWAP1 PUSH2 0x492D JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x4847 PUSH2 0x3A83 JUMP JUMPDEST DUP8 PUSH2 0x4851 DUP2 PUSH2 0x3303 JUMP JUMPDEST DUP8 PUSH2 0x485B DUP2 PUSH2 0x3303 JUMP JUMPDEST PUSH2 0x4866 DUP11 DUP11 DUP11 PUSH2 0x4C56 JUMP JUMPDEST SWAP1 SWAP5 POP SWAP3 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP10 AND PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x52F4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ ISZERO PUSH2 0x48C6 JUMPI PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND SWAP1 DUP6 ISZERO PUSH2 0x8FC MUL SWAP1 DUP7 SWAP1 PUSH1 0x0 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x48C0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH2 0x48D1 JUMP JUMPDEST PUSH2 0x48D1 DUP10 DUP8 DUP7 PUSH2 0x4783 JUMP JUMPDEST PUSH2 0x48DF DUP11 DUP11 DUP10 DUP12 DUP9 DUP9 PUSH2 0x4F6B JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 PUSH1 0x1 SWAP1 DUP2 ADD SLOAD SWAP4 DUP14 AND DUP4 MSTORE SWAP2 KECCAK256 ADD SLOAD PUSH2 0x491F SWAP2 DUP13 SWAP2 DUP13 SWAP2 PUSH4 0xFFFFFFFF SWAP1 DUP2 AND SWAP2 AND PUSH2 0x4FF0 JUMP JUMPDEST POP SWAP2 SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x4935 PUSH2 0x52B4 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE POP SWAP1 POP PUSH1 0x20 DUP2 DUP4 MLOAD PUSH1 0x20 DUP6 ADD PUSH1 0x0 DUP8 GAS CALL DUP1 ISZERO ISZERO PUSH2 0x4962 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD ISZERO ISZERO PUSH2 0x4835 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5452414E534645525F4641494C454400000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x49C3 PUSH2 0x529D JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x49CF DUP8 PUSH2 0x15A1 JUMP JUMPDEST SWAP2 POP PUSH2 0x49DA DUP7 PUSH2 0x15A1 JUMP JUMPDEST SWAP1 POP PUSH4 0xFFFFFFFF DUP6 AND ISZERO ISZERO PUSH2 0x4A0E JUMPI PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH4 0xFFFFFFFF AND SWAP5 POP JUMPDEST PUSH4 0xFFFFFFFF DUP5 AND ISZERO ISZERO PUSH2 0x4A40 JUMPI PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH4 0xFFFFFFFF AND SWAP4 POP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE DUP1 PUSH2 0x4A5E DUP4 PUSH4 0xFFFFFFFF DUP1 DUP11 AND SWAP1 PUSH2 0x38DA AND JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x4A76 DUP5 PUSH4 0xFFFFFFFF DUP1 DUP10 AND SWAP1 PUSH2 0x38DA AND JUMP JUMPDEST SWAP1 MSTORE SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH4 0xFFFFFFFF AND GT DUP1 ISZERO PUSH2 0x4AA2 JUMPI POP PUSH3 0xF4240 PUSH4 0xFFFFFFFF DUP3 AND GT ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x154A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F574549474854000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x4B00 PUSH2 0x529D JUMP JUMPDEST PUSH2 0x4B08 PUSH2 0x529D JUMP JUMPDEST DUP3 DUP5 LT PUSH2 0x4B20 JUMPI PUSH2 0x4B19 DUP5 DUP5 PUSH2 0x5081 JUMP JUMPDEST SWAP2 POP PUSH2 0x3957 JUMP JUMPDEST PUSH2 0x4B2A DUP4 DUP6 PUSH2 0x5081 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x20 DUP1 DUP4 ADD MLOAD DUP3 MSTORE DUP3 MLOAD SWAP1 DUP3 ADD MSTORE SWAP3 POP SWAP1 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x0 SWAP1 PUSH2 0x2AC5 SWAP1 PUSH3 0xF4240 SWAP1 PUSH2 0x16C3 SWAP1 DUP6 SWAP1 PUSH9 0x10000000000000000 SWAP1 DIV PUSH4 0xFFFFFFFF SWAP1 DUP2 AND SWAP1 PUSH2 0x38DA AND JUMP JUMPDEST PUSH1 0xB SLOAD PUSH1 0x0 SWAP1 DUP2 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x4BEB JUMPI PUSH1 0xA SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD PUSH1 0xB SLOAD SWAP1 SWAP5 AND DUP4 MSTORE SWAP1 SWAP2 KECCAK256 SLOAD DUP7 MLOAD SWAP2 DUP8 ADD MLOAD PUSH1 0x16 SLOAD PUSH2 0x4BE4 SWAP5 SWAP4 PUSH4 0xFFFFFFFF DUP1 DUP14 AND SWAP4 SWAP1 DUP13 AND SWAP3 PUSH2 0x513E JUMP JUMPDEST SWAP1 POP PUSH2 0x4C3A JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD PUSH1 0xB SLOAD SWAP1 SWAP5 AND DUP4 MSTORE SWAP1 SWAP2 KECCAK256 SLOAD DUP7 MLOAD SWAP2 DUP8 ADD MLOAD PUSH1 0x16 SLOAD PUSH2 0x4C37 SWAP5 SWAP4 PUSH4 0xFFFFFFFF DUP1 DUP13 AND SWAP4 SWAP1 DUP14 AND SWAP3 PUSH2 0x513E JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH2 0x4C4B PUSH3 0xF4240 PUSH2 0x16C3 DUP6 DUP5 PUSH2 0x38DA JUMP JUMPDEST SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x4C63 PUSH2 0x529D JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x4C71 PUSH2 0x51AA JUMP JUMPDEST SWAP6 POP SWAP6 POP PUSH2 0x4C84 DUP12 DUP12 PUSH1 0x0 DUP1 DUP10 DUP15 PUSH2 0x44AA JUMP JUMPDEST SWAP2 SWAP6 POP SWAP4 POP SWAP2 POP DUP4 ISZERO ISZERO PUSH2 0x4CE2 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5A45524F5F5441524745545F414D4F554E5400000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x4CEB DUP11 PUSH2 0x2AFF JUMP JUMPDEST SWAP1 POP DUP1 DUP5 LT PUSH2 0x4D44 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5441524745545F414D4F554E545F544F4F5F48494748000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x52F4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ ISZERO PUSH2 0x4DBF JUMPI CALLVALUE DUP10 EQ PUSH2 0x4DBA JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4554485F414D4F554E545F4D49534D41544348000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x4EC1 JUMP JUMPDEST CALLVALUE ISZERO DUP1 ISZERO PUSH2 0x4E6B JUMPI POP DUP9 PUSH2 0x4E68 PUSH2 0x4DD5 DUP14 PUSH2 0x2AFF JUMP JUMPDEST DUP14 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x4E30 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x4E44 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x4E5A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x3B7B AND JUMP JUMPDEST LT ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x4EC1 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F414D4F554E540000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x4ECA DUP12 PUSH2 0x3DC0 JUMP JUMPDEST PUSH2 0x4EDA DUP2 DUP6 PUSH4 0xFFFFFFFF PUSH2 0x3B7B AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE PUSH1 0xC SWAP1 MSTORE KECCAK256 SLOAD PUSH2 0x4F0F SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0x395E AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE DUP6 ISZERO PUSH2 0x4F5A JUMPI PUSH1 0xA SLOAD PUSH1 0xB SLOAD PUSH2 0x4F4D SWAP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 DUP2 AND SWAP2 AND PUSH1 0x0 DUP1 PUSH2 0x49BB JUMP JUMPDEST DUP1 MLOAD PUSH1 0x12 SSTORE PUSH1 0x20 ADD MLOAD PUSH1 0x13 SSTORE JUMPDEST POP SWAP2 SWAP10 SWAP2 SWAP9 POP SWAP1 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0x8000000000000000000000000000000000000000000000000000000000000000 DUP2 LT PUSH2 0x4F94 JUMPI INVALID JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP5 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 SWAP1 MSTORE DUP1 DUP3 ADD DUP4 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP8 AND SWAP3 DUP9 DUP3 AND SWAP3 SWAP2 DUP11 AND SWAP2 PUSH32 0x276856B36CBC45526A0BA64F44611557A2A8B68662C5388E9FE6D72E86E1C8CB SWAP2 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG4 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x4FFF DUP7 DUP7 DUP7 DUP7 PUSH2 0x3D23 JUMP JUMPDEST PUSH2 0x5008 DUP6 PUSH2 0x2033 JUMP JUMPDEST SWAP2 POP DUP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x18160DDD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x5048 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x505C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x5072 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 POP PUSH2 0x2227 DUP3 DUP3 DUP8 PUSH2 0x3CC3 JUMP JUMPDEST PUSH2 0x5089 PUSH2 0x529D JUMP JUMPDEST PUSH20 0x14484BFEEBC29F863424B06F3529A051A31BE599 DUP3 GT ISZERO PUSH2 0x50DB JUMPI PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH13 0xC9F2C9CD04674EDEA40000000 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 DUP6 DIV DUP5 DUP2 ISZERO ISZERO PUSH2 0x50D1 JUMPI INVALID JUMPDEST DIV SWAP1 MSTORE SWAP1 POP PUSH2 0x2AC5 JUMP JUMPDEST PUSH13 0xC9F2C9CD04674EDEA40000000 DUP4 GT ISZERO PUSH2 0x5128 JUMPI PUSH1 0x40 DUP1 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH13 0xC9F2C9CD04674EDEA40000000 DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH13 0xC9F2C9CD04674EDEA40000000 DUP6 MUL DUP2 ISZERO ISZERO PUSH2 0x50D1 JUMPI INVALID JUMPDEST POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 PUSH2 0x5156 DUP8 PUSH2 0x4358 DUP13 DUP10 PUSH4 0xFFFFFFFF PUSH2 0x38DA AND JUMP JUMPDEST SWAP2 POP PUSH2 0x516C DUP9 PUSH2 0x4358 DUP12 DUP9 PUSH4 0xFFFFFFFF PUSH2 0x38DA AND JUMP JUMPDEST SWAP1 POP DUP2 DUP2 GT ISZERO PUSH2 0x5198 JUMPI PUSH2 0x5191 DUP2 PUSH2 0x16C3 PUSH1 0x14 PUSH2 0x4358 DUP7 DUP5 SUB DUP10 PUSH4 0xFFFFFFFF PUSH2 0x38DA AND JUMP JUMPDEST SWAP3 POP PUSH2 0x519D JUMP JUMPDEST PUSH1 0x0 SWAP3 POP JUMPDEST POP POP SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x51B4 PUSH2 0x529D JUMP JUMPDEST PUSH1 0x0 PUSH2 0x51BE PUSH2 0x529D JUMP JUMPDEST PUSH2 0x51C6 PUSH2 0x529D JUMP JUMPDEST PUSH2 0x51CE PUSH2 0x37C4 JUMP JUMPDEST SWAP3 POP DUP3 PUSH1 0x11 SLOAD EQ ISZERO PUSH2 0x51FC JUMPI PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0xF SLOAD DUP2 MSTORE PUSH1 0x10 SLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 SWAP6 POP SWAP4 POP PUSH2 0x315F JUMP JUMPDEST PUSH2 0x5204 PUSH2 0x413C JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0xF SLOAD DUP1 DUP3 MSTORE PUSH1 0x10 SLOAD PUSH1 0x20 DUP4 ADD MSTORE DUP3 MLOAD SWAP3 SWAP5 POP SWAP1 SWAP3 POP EQ DUP1 ISZERO PUSH2 0x5238 JUMPI POP DUP1 PUSH1 0x20 ADD MLOAD DUP3 PUSH1 0x20 ADD MLOAD EQ JUMPDEST ISZERO PUSH2 0x5249 JUMPI PUSH1 0x0 DUP3 SWAP5 POP SWAP5 POP PUSH2 0x315F JUMP JUMPDEST DUP2 MLOAD PUSH1 0xF SSTORE PUSH1 0x20 DUP3 ADD MLOAD PUSH1 0x10 SSTORE PUSH1 0x11 DUP4 SWAP1 SSTORE PUSH2 0x5263 PUSH2 0x37C8 JUMP JUMPDEST POP PUSH1 0x1 SWAP5 SWAP1 SWAP4 POP SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xA0 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE SWAP2 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x60 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 SWAP1 PUSH1 0x20 DUP3 MUL DUP1 CODESIZE DUP4 CODECOPY POP SWAP2 SWAP3 SWAP2 POP POP JUMP STOP MSTORE8 PUSH16 0x7672796E53776170436F6E7665727465 PUSH19 0x55706772616465720000000000000000000000 STOP STOP STOP STOP STOP STOP 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee GASLIMIT MSTORE MSTORE 0x5f COINBASE NUMBER NUMBER GASLIMIT MSTORE8 MSTORE8 0x5f DIFFICULTY GASLIMIT 0x4e 0x49 GASLIMIT DIFFICULTY STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP GASLIMIT MSTORE MSTORE 0x5f 0x49 0x4e JUMP COINBASE 0x4c 0x49 DIFFICULTY 0x5f MSTORE GASLIMIT MSTORE8 GASLIMIT MSTORE JUMP GASLIMIT 0x5f NUMBER 0x4f SSTORE 0x4e SLOAD STOP STOP STOP STOP STOP STOP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 0xd6 0xce 0xae 0xf 0xa8 DUP15 OR PUSH16 0xCEC4250A8A72385CF1AE86E302A34151 0x47 0xc 0xa7 SWAP10 PUSH26 0x55CCC20029000000000000000000000000000000000000000000 ", - "sourceMap": "651:42579:25:-;;;;;;;;-1:-1:-1;651:42579:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;7097:29:4;;:8;:29;;:35;;;;;;;7089:67;;;;;;;-1:-1:-1;;;;;7089:67:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;651:42579:25;8537:211;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;8537:211:25;;;-1:-1:-1;;;;;8537:211:25;;;;;;;;;;;;;;;;;;;3280:206:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3280:206:60;;;;;;;1168:38:25;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1168:38:25;;;;;;;;-1:-1:-1;;;;;1168:38:25;;;;;;;;;;;;;;2354:42;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2354:42:25;;;;;;;;;;;;;;;;;;;;;;2700:30:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2700:30:4;;;;;;;;;;;;;;;;;;;;;;;18973:244;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;18973:244:4;;;-1:-1:-1;;;;;18973:244:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5167:2660:25;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;5167:2660:25;-1:-1:-1;;;;;5167:2660:25;;;;;;;;;;;;;;;14417:102:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14417:102:4;;;;10614:103:25;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10614:103:25;;;;19274:125:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;19274:125:4;;;;;13732:152;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;13732:152:4;;;-1:-1:-1;;;;;13732:152:4;;;19798:206;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;19798:206:4;-1:-1:-1;;;;;19798:206:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18669:110;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;18669:110:4;;;-1:-1:-1;;;;;18669:110:4;;;4154:118:25;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4154:118:25;;;;1074:31;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1074:31:25;;;;8949:279;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;8949:279:25;;;-1:-1:-1;;;;;8949:279:25;;;11288:610;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;11288:610:25;;;-1:-1:-1;;;;;11288:610:25;;;1250:38:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1250:38:60;;;;18836:80:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18836:80:4;;;;10292:155;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;10292:155:4;-1:-1:-1;;;;;10292:155:4;;;;;;;;;;;;3902:81:25;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3902:81:25;;;;;;;;;;;;;;;;;;;;;;;10110:273;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;10110:273:25;;;;;;;2080:832:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2080:832:60;;;;8691:132:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;8691:132:4;;;-1:-1:-1;;;;;8691:132:4;;;2221:35;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2221:35:4;;;;20067:3341:25;;;;-1:-1:-1;;;;;20067:3341:25;;;;;;;10925:141;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;10925:141:25;;;-1:-1:-1;;;;;10925:141:25;;;2993:31:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2993:31:4;;;;11282:601;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;11282:601:4;-1:-1:-1;;;;;11282:601:4;;;;;;;;;;;;1165:37:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1165:37:60;;;;9368:137:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;9368:137:4;;;-1:-1:-1;;;;;9368:137:4;;;26408:839:25;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;26408:839:25;;;-1:-1:-1;;;;;26408:839:25;;;;;7669:465:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;7669:465:4;;;-1:-1:-1;;;;;7669:465:4;;;8041:300:25;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;8041:300:25;;;;;12233:253;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;12233:253:25;;;-1:-1:-1;;;;;12233:253:25;;;;;;;19456:94:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19456:94:4;;;;1159:176:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1159:176:66;;;;1085:33:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1085:33:60;;;;157:20:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;157:20:66;;;;2818:34:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2818:34:4;;;;2294:53:25;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2294:53:25;;;-1:-1:-1;;;;;2294:53:25;;;12584:101:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12584:101:4;;;;1866:29:25;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1866:29:25;;;;13954:1880;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;13954:1880:25;-1:-1:-1;;;;;13954:1880:25;;;;;;;;;;;;2974:119:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2974:119:60;;;;3095:46:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3095:46:4;;;;9510:248:25;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;9510:248:25;;;-1:-1:-1;;;;;9510:248:25;;;;;1999:38;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1999:38:25;;;;2322:37:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2322:37:4;;;;2090:197:9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2090:197:9;;;;2445:34:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2445:34:4;;;;;8282:71;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8282:71:4;;;;2260:30;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2260:30:4;;;;180:23:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;180:23:66;;;;12079:317:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12079:317:4;;;;4423:105:25;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4423:105:25;;;;;;;;;;;;;;;;;;;;;;;2566:43:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2566:43:4;;;-1:-1:-1;;;;;2566:43:4;;;19607:134;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;19607:134:4;;;-1:-1:-1;;;;;19607:134:4;;;12748:168:25;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12748:168:25;;;;1268:40;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1268:40:25;;;;14111:155:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;14111:155:4;;;-1:-1:-1;;;;;14111:155:4;;;23766:2230:25;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;23766:2230:25;;;-1:-1:-1;;;;;23766:2230:25;;;;;;;2405:39;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2405:39:25;;;;15044:649:4;;-1:-1:-1;;;;;15044:649:4;;;;;;;;;;;;;;;;;;;;;;;13075:444:25;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13075:444:25;;;;10618:240:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;10618:240:4;;;;;;;945:140:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;945:140:66;;;-1:-1:-1;;;;;945:140:66;;;2112:34:25;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2112:34:25;;;;18535:77:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18535:77:4;;;;8537:211:25;8679:7;8646:13;6115:23:4;6129:8;6115:13;:23::i;:::-;-1:-1:-1;;;;;;;8711:29:25;;;;;:14;:29;;;;;;;8537:211::o;3280:206:60:-;575:12:66;:10;:12::i;:::-;3426:26:60;:56;;;;;;;-1:-1:-1;;3426:56:60;;;;;;;;;3280:206::o;1168:38:25:-;;;-1:-1:-1;;;;;1168:38:25;;:::o;2354:42::-;;;;;;:::o;2700:30:4:-;;;;;;:::o;18973:244::-;19042:7;19054:6;19065:4;19074;19083;19097:22;;:::i;:::-;-1:-1:-1;;;;;;;;;19122:18:4;;;;;;;;:8;:18;;;;;;;;19097:43;;-1:-1:-1;19097:43:4;;;;;;;;;-1:-1:-1;19097:43:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;19122:18:4;;-1:-1:-1;19122:18:4;;19097:43;18973:244::o;5167:2660:25:-;5740:26;6492:51;7161:35;7251:29;7329:31;5818:11:4;:9;:11::i;:::-;575:12:66;:10;:12::i;:::-;5384:20:25;6115:23:4;6129:8;6115:13;:23::i;:::-;5423:21:25;782:18:72;791:8;782;:18::i;:::-;5463:23:25;782:18:72;791:8;782;:18::i;:::-;5510:21:25;475:23:72;489:8;475:13;:23::i;:::-;5555::25;475::72;489:8;475:13;:23::i;:::-;5642:6:25;;:14;;;;;;;;5668:4;;-1:-1:-1;;;;;5642:6:25;;:12;;:14;;;;;;;;;;;;;;:6;;:14;;;5:2:-1;;;;30:1;27;20:12;5:2;5642:14:25;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5642:14:25;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5642:14:25;-1:-1:-1;;;;;5642:31:25;;5634:64;;;;;-1:-1:-1;;;;;5634:64:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;5780:37;5790:26;5780:9;:37::i;:::-;5837:52;;;-1:-1:-1;;;;;5837:52:25;;-1:-1:-1;;;;;5837:52:25;;;;;;;;;5740:78;;-1:-1:-1;5837:29:25;;;;;;:52;;;;;;;;;;;;;;;-1:-1:-1;5837:29:25;:52;;;5:2:-1;;;;30:1;27;20:12;5:2;5837:52:25;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5837:52:25;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5837:52:25;5829:83;;;;;;;-1:-1:-1;;;;;5829:83:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;5931:54;;;-1:-1:-1;;;;;5931:54:25;;-1:-1:-1;;;;;5931:54:25;;;;;;;;;:29;;;;;;:54;;;;;;;;;;;;;;;-1:-1:-1;5931:29:25;:54;;;5:2:-1;;;;30:1;27;20:12;5:2;5931:54:25;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5931:54:25;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5931:54:25;5923:85;;;;;;;-1:-1:-1;;;;;5923:85:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;6096:18;:16;:18::i;:::-;6183:19;:42;;-1:-1:-1;;;;;;6183:42:25;-1:-1:-1;;;;;6183:42:25;;;;;6264:13;:16;;-1:-1:-1;;6264:16:25;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6240:40:25;;;6264:16;;6240:40;6236:168;;;6319:13;:16;;6333:1;;6319:16;;;;;;;;;;;;;;;;6295:21;:40;;-1:-1:-1;;;;;;6295:40:25;-1:-1:-1;;;;;6319:16:25;;;6295:40;;;;;;6236:168;;;6388:13;:16;;6402:1;;6388:16;;;;;;;;;;;;;;;;6364:21;:40;;-1:-1:-1;;;;;;6364:40:25;-1:-1:-1;;;;;6388:16:25;;;6364:40;;;;;;6236:168;6615:28;6625:17;6615:9;:28::i;:::-;-1:-1:-1;;;;;6597:63:25;;6661:15;:13;:15::i;:::-;6597:80;;;;;-1:-1:-1;;;6597:80:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6597:80:25;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6597:80:25;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6597:80:25;;;;;;;;;;;;;;;;6492:186;;6703:13;-1:-1:-1;;;;;6703:31:25;;6735:20;6757:21;;;;;;;;;-1:-1:-1;;;;;6757:21:25;6780;6803:23;6703:124;;;;;-1:-1:-1;;;6703:124:25;;;;;;;-1:-1:-1;;;;;6703:124:25;-1:-1:-1;;;;;6703:124:25;;;;;;-1:-1:-1;;;;;6703:124:25;-1:-1:-1;;;;;6703:124:25;;;;;;-1:-1:-1;;;;;6703:124:25;-1:-1:-1;;;;;6703:124:25;;;;;;-1:-1:-1;;;;;6703:124:25;-1:-1:-1;;;;;6703:124:25;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6703:124:25;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6703:124:25;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6703:124:25;6689:11;:138;;;;;-1:-1:-1;;;;;6689:138:25;;;;;;;;;;;;;6900:19;;6921:21;;6877:66;;;;;;6900:19;;;6877:66;;;;6921:21;;;6877:66;;;;;;:11;;;;;;;;:22;;:66;;;;;;;;;;;;-1:-1:-1;6877:11:25;:66;;;5:2:-1;;;;30:1;27;20:12;5:2;6877:66:25;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6877:66:25;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6877:66:25;;;;;;;6858:15;6840:103;;;6841:13;6840:103;;;6954:18;:34;;;;;;7027:6;:4;:6::i;:::-;7001:23;:32;7220:19;;7199:41;;-1:-1:-1;;;;;7220:19:25;7199:20;:41::i;:::-;7298:19;;7161:79;;-1:-1:-1;7283:35:25;;-1:-1:-1;;;;;7298:19:25;7283:14;:35::i;:::-;7378:21;;7251:67;;-1:-1:-1;7363:37:25;;-1:-1:-1;;;;;7378:21:25;7363:14;:37::i;:::-;7329:71;;7448:21;7417:27;:52;7413:348;;;7520:1;7490:27;:31;:62;;;;7551:1;7525:23;:27;7490:62;7486:114;;;7573:11;:9;:11::i;:::-;7413:348;;;7660:1;7630:27;:31;:60;;;;;7689:1;7665:21;:25;7630:60;:91;;;;;7720:1;7694:23;:27;7630:91;7626:135;;;7738:11;:9;:11::i;:::-;7806:6;;7814:4;;-1:-1:-1;;;;;7806:6:25;7789:15;:13;:15::i;:::-;7778:41;;;;;;;;;;;;502:1:72;804;;6142::4;591::66;5167:2660:25;;;;;;;;:::o;14417:102:4:-;-1:-1:-1;;;;;;;;;;;14463:4:4;14480:29;:8;:29;;:35;;;;;;;;14417:102::o;10614:103:25:-;575:12:66;:10;:12::i;:::-;10678:23:25;:31;;-1:-1:-1;;10678:31:25;;;10614:103::o;19274:125:4:-;19336:11;19360:27;19388:6;19360:35;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;19360:35:4;;;-1:-1:-1;;19274:125:4:o;13732:152::-;13831:6;13807:13;6115:23;6129:8;6115:13;:23::i;:::-;-1:-1:-1;;;;;;;13850:23:4;;;;;:8;:23;;;;;-1:-1:-1;13850:30:4;;;;;13732:152::o;19798:206::-;19916:7;19925;19945:55;19964:12;19978;19992:7;19945:18;:55::i;:::-;19938:62;;;;19798:206;;;;;;:::o;18669:110::-;575:12:66;:10;:12::i;:::-;18741:34:4;18765:9;18741:23;:34::i;:::-;18669:110;:::o;4154:118:25:-;4195:4;4219:16;:14;:16::i;:::-;:45;;;;-1:-1:-1;4239:11:25;;;;;-1:-1:-1;;;;;4239:11:25;:25;;4219:45;4212:52;;4154:118;:::o;1074:31::-;;;;;;-1:-1:-1;;;;;1074:31:25;;:::o;8949:279::-;9094:7;9061:13;6115:23:4;6129:8;6115:13;:23::i;:::-;9126:94:25;9190:29;9205:13;9190:14;:29::i;:::-;-1:-1:-1;;;;;9126:29:25;;;;;;:14;:29;;;;;;:59;;9160:24;9126:33;:59::i;:::-;:63;:94;:63;:94;:::i;:::-;9119:101;8949:279;-1:-1:-1;;;8949:279:25:o;11288:610::-;11359:7;11417:23;11578:24;11648:15;11705:21;11443:10;-1:-1:-1;;;;;11443:22:25;;:24;;;;;-1:-1:-1;;;11443:24:25;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11443:24:25;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11443:24:25;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11443:24:25;-1:-1:-1;;;;;11605:32:25;;;;;;;:20;11443:24;11605:32;;;;;11443:24;;-1:-1:-1;11605:32:25;;-1:-1:-1;11666:28:25;11605:32;11666:14;:28::i;:::-;-1:-1:-1;;;;;11729:28:25;;;;;;:14;:28;;;;;;11648:46;;-1:-1:-1;11729:28:25;-1:-1:-1;11843:47:25;11729:28;11843;11648:46;11855:15;11843:11;:28::i;:::-;:32;:47;:32;:47;:::i;:::-;11836:54;11288:610;-1:-1:-1;;;;;;11288:610:25:o;1250:38:60:-;;;;;;;;;:::o;18836:80:4:-;575:12:66;:10;:12::i;:::-;18889:23:4;:21;:23::i;:::-;18836:80::o;10292:155::-;575:12:66;:10;:12::i;:::-;10400:6:4;;:43;;;;;;-1:-1:-1;;;;;10400:43:4;;;;;;;;;;;;;;;;;;;;;;:6;;;;;:21;;:43;;;;;-1:-1:-1;;10400:43:4;;;;;;;-1:-1:-1;10400:6:4;:43;;;5:2:-1;;;;30:1;27;20:12;5:2;10400:43:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10400:43:4;;;;10292:155;;;:::o;3902:81:25:-;3974:1;3902:81;:::o;10110:273::-;575:12:66;:10;:12::i;:::-;10276:25:25;10238:17;:35;10256:13;10270:1;10256:16;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10256:16:25;10238:35;;;;;;;;;;;;:63;;;;10330:13;:16;;10350:25;;10312:17;;10256:16;;-1:-1:-1;;10330:16:25;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10330:16:25;10312:35;;;;;;;;;;;;:63;-1:-1:-1;;10110:273:25:o;2080:832:60:-;2281:29;2183:5;;-1:-1:-1;;;;;2183:5:60;2169:10;:19;;:50;;-1:-1:-1;2193:26:60;;;;;;;2192:27;2169:50;2161:80;;;;;;;-1:-1:-1;;;;;2161:80:60;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;2161:80:60;;;;;;;;;;;;;;;2331:28;2341:17;2331:9;:28::i;:::-;2465:8;;2281:79;;-1:-1:-1;;;;;;2442:32:60;;;2465:8;;2442:32;;;;:61;;-1:-1:-1;;;;;;2478:25:60;;;;2442:61;2434:94;;;;;;;-1:-1:-1;;;;;2434:94:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;2628:40;;;;;;2650:17;2628:40;;;;;;-1:-1:-1;;;;;;;2628:21:60;;;;;:40;;;;;;;;;;;;;;;-1:-1:-1;2628:21:60;:40;;;5:2:-1;;;;30:1;27;20:12;5:2;2628:40:60;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2628:40:60;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2628:40:60;-1:-1:-1;;;;;2628:54:60;;;2620:87;;;;;-1:-1:-1;;;;;2620:87:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;2799:8;;;2784:12;:23;;-1:-1:-1;;;;;2799:8:60;;;-1:-1:-1;;;;;;2784:23:60;;;;;;;2886:22;;;;;;;;;;;2080:832::o;8691:132:4:-;575:12:66;:10;:12::i;:::-;8771:10:4;782:18:72;791:8;782;:18::i;:::-;-1:-1:-1;8787:19:4;:32;;-1:-1:-1;;;;;;8787:32:4;-1:-1:-1;;;;;8787:32:4;;;;;;;;;;8691:132::o;2221:35::-;2254:2;2221:35;:::o;20067:3341:25:-;20347:7;21027:28;21493;21570:23;22271;565:12:68;:10;:12::i;:::-;287:1;581:5;:14;5606:9:4;:7;:9::i;:::-;20243:13:25;6115:23:4;6129:8;6115:13;:23::i;:::-;20283:7:25;180:24:72;197:6;180:16;:24::i;:::-;20317:10:25;180:24:72;197:6;180:16;:24::i;:::-;-1:-1:-1;;;;;;;;20482:36:25;;;-1:-1:-1;;;;;;;;;20482:36:25;:76;;20544:9;:14;20482:76;;;20534:7;20521:9;:20;20482:76;20474:112;;;;;;;-1:-1:-1;;;;;20474:112:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;20650:21;:19;:21::i;:::-;-1:-1:-1;;;;;;;;20794:36:25;;;-1:-1:-1;;;;;;;;;20794:36:25;20790:147;;;-1:-1:-1;;;;;;;;;;;20885:29:25;;:8;:29;;;:37;:52;;20927:9;20885:52;:41;:52;:::i;:::-;-1:-1:-1;;;;;;;;;;;20845:29:25;;:8;:29;;;:92;20790:147;-1:-1:-1;;;;;21058:29:25;;;;;;:14;:29;;;;;;21202:23;;21058:29;;-1:-1:-1;21202:23:25;;21198:209;;;-1:-1:-1;;;;;21250:32:25;;;;;;:17;:32;;;;;;:37;;:110;;-1:-1:-1;;;;;;21328:32:25;;;;;;:17;:32;;;;;;21291:33;:20;21316:7;21291:24;:33::i;:::-;:69;;21250:110;21242:153;;;;;;;-1:-1:-1;;;;;21242:153:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;21524:35:25;;;;;;;:20;:35;;;;;;;;;21596:30;;;;;;;21524:35;;;-1:-1:-1;21524:35:25;;21596:28;;:30;;;;;21524:35;21596:30;;;;;;;21524:35;21596:30;;;5:2:-1;;;;30:1;27;20:12;5:2;21596:30:25;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;21596:30:25;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;21596:30:25;-1:-1:-1;;;21596:30:25;;-1:-1:-1;;;;;;21721:36:25;;;-1:-1:-1;;;;;;;;21721:36:25;21717:113;;21772:58;21789:13;21804:10;21816:4;21822:7;21772:16;:58::i;:::-;-1:-1:-1;;;;;21931:23:25;;;;;;:8;:23;;;;;:31;:44;;21967:7;21931:35;:44::i;:::-;-1:-1:-1;;;;;21897:23:25;;;;;;:8;:23;;;;;:78;22018:33;:20;22043:7;22018:24;:33::i;:::-;-1:-1:-1;;;;;21986:29:25;;;;;;:14;:29;;;;;:65;;;;:29;-1:-1:-1;22313:25:25;;;:49;;-1:-1:-1;22342:20:25;;22313:49;22309:194;;;22395:7;22377:25;;22309:194;;;22449:54;22482:20;22449:28;:7;22461:15;22449:28;:11;:28;:::i;:54::-;22431:72;;22309:194;22522:29;;;;22514:60;;;;;-1:-1:-1;;;;;22514:60:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;22655:6;;22634:80;;;;;;-1:-1:-1;;;;;22634:80:25;;;;;;;22686:10;22634:80;;;;;;;;;;;;22655:6;;;;;22634:33;;:80;;;;;-1:-1:-1;;22634:80:25;;;;;;;-1:-1:-1;22655:6:25;22634:80;;;5:2:-1;;;;30:1;27;20:12;5:2;22634:80:25;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;22634:80:25;;;;22776:11;:9;:11::i;:::-;-1:-1:-1;;;;;22851:123:25;;22866:10;22851:123;22893:7;22902:33;:20;22893:7;22902:24;:33::i;:::-;22937:36;:15;22957;22937:36;:19;:36;:::i;:::-;22851:123;;;;;;;;;;;;;;;;;;;;;;;;;;23055:103;23088:16;23106:36;:15;23126;23106:36;:19;:36;:::i;:::-;23144:13;23055:32;:103::i;:::-;23243:70;23272:13;23286:1;23272:16;;;;;;;;;;;;;;;;;;;;23290:13;:16;;-1:-1:-1;;;;;23272:16:25;;;;-1:-1:-1;;23290:16:25;;;;;;;;;;;;;;;-1:-1:-1;;;;;23290:16:25;;;23243:28;:70::i;:::-;-1:-1:-1;;249:1:68;604:5;:16;-1:-1:-1;23385:15:25;20067:3341;-1:-1:-1;;;;;;;20067:3341:25:o;10925:141::-;-1:-1:-1;;;;;11023:35:25;;;10992:11;11023:35;;;:20;:35;;;;;;;;10925:141::o;2993:31:4:-;;;;;;;;;:::o;11282:601::-;11396:25;565:12:68;:10;:12::i;:::-;287:1;581:5;:14;575:12:66;:10;:12::i;:::-;11424:29:4;-1:-1:-1;;;;;;;;;;;11424:9:4;:29::i;:::-;-1:-1:-1;;;;;11622:16:4;;;;;;:8;:16;;;;;-1:-1:-1;11622:22:4;;11396:57;;-1:-1:-1;11622:22:4;;;;;11621:23;;:38;;;11649:10;:8;:10::i;:::-;11648:11;11621:38;:68;;;-1:-1:-1;11663:5:4;;-1:-1:-1;;;;;11663:26:4;;;:5;;:26;11621:68;11613:98;;;;;;;-1:-1:-1;;;;;11613:98:4;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;11613:98:4;;;;;;;;;;;;;;;11715:42;11736:6;11744:3;11749:7;11715:20;:42::i;:::-;-1:-1:-1;;;;;11829:16:4;;;;;;:8;:16;;;;;-1:-1:-1;11829:22:4;;;;;;;11825:54;;;11853:26;11872:6;11853:18;:26::i;:::-;-1:-1:-1;;249:1:68;604:5;:16;-1:-1:-1;;11282:601:4:o;1165:37:60:-;;;-1:-1:-1;;;;;1165:37:60;;:::o;9368:137:4:-;575:12:66;:10;:12::i;:::-;-1:-1:-1;;;;;;;;;;;1510:20:60;1516:13;1510:5;:20::i;:::-;9466:6:4;;:35;;;;;;-1:-1:-1;;;;;9466:35:4;;;;;;;;;:6;;;;;:24;;:35;;;;;-1:-1:-1;;9466:35:4;;;;;;;-1:-1:-1;9466:6:4;:35;;;5:2:-1;;;;30:1;27;20:12;5:2;9466:35:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9466:35:4;;;;591:1:66;9368:137:4;:::o;26408:839:25:-;26534:7;26543;26568:19;26625:21;26752:9;26840;26912:11;26925;26978:23;27062:22;26590:10;-1:-1:-1;;;;;26590:22:25;;:24;;;;;-1:-1:-1;;;26590:24:25;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;26590:24:25;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;26590:24:25;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;26590:24:25;-1:-1:-1;;;;;26664:32:25;;;26649:48;26664:32;;;:20;26590:24;26664:32;;;;;;;;;;;26649:48;;:14;:48;;;;26590:24;;-1:-1:-1;26649:48:25;-1:-1:-1;26714:21:25;;;26710:494;;;26779:19;;-1:-1:-1;;;;;26779:19:25;26764:35;;;;:14;:35;;;;;;:61;;765:2;26764:39;:61::i;:::-;26876:19;;26752:73;;-1:-1:-1;26852:44:25;;-1:-1:-1;;;;;26876:19:25;26852:23;:44::i;:::-;26840:56;;26944:1;26940;:5;:23;;26958:1;26961;26940:23;;;26949:1;26952;26940:23;26911:52;;-1:-1:-1;26911:52:25;-1:-1:-1;27004:43:25;27035:11;27004:26;:7;27016:13;27004:26;:11;:26;:::i;:43::-;26978:69;-1:-1:-1;27087:33:25;27116:3;27087:24;26978:69;27107:3;27087:24;:19;:24;:::i;:33::-;27062:58;-1:-1:-1;;27159:32:25;;;;-1:-1:-1;27062:58:25;27135:57;;26710:494;27222:13;;-1:-1:-1;27237:1:25;;-1:-1:-1;27222:13:25;;26408:839;;;;;;;;;;;;;;:::o;7669:465:4:-;7781:25;565:12:68;:10;:12::i;:::-;287:1;581:5;:14;575:12:66;:10;:12::i;:::-;-1:-1:-1;;;;;;;;;;;6115:23:4;6129:8;6115:13;:23::i;:::-;7809:29;-1:-1:-1;;;;;;;;;;;7809:9:4;:29::i;:::-;7781:57;;7938:10;:8;:10::i;:::-;7937:11;:41;;;-1:-1:-1;7952:5:4;;-1:-1:-1;;;;;7952:26:4;;;:5;;:26;7937:41;7929:71;;;;;;;-1:-1:-1;;;;;7929:71:4;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;7929:71:4;;;;;;;;;;;;;;;8004:35;;-1:-1:-1;;;;;8004:12:4;;;8025:4;8017:21;8004:35;;;;;;;;;8017:21;8004:12;:35;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8004:35:4;8078:52;-1:-1:-1;;;;;;;;;;;8078:18:4;:52::i;:::-;-1:-1:-1;;249:1:68;604:5;:16;-1:-1:-1;7669:465:4:o;8041:300:25:-;575:12:66;:10;:12::i;:::-;889:6:25;8133:43;;;8125:86;;;;;-1:-1:-1;;;;;8125:86:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;8250:16;;8227:59;;;;;;;;;;;;;;;;;;;;;;;;8297:16;:36;8041:300::o;12233:253::-;12403:1;12381:19;:17;:19::i;:::-;:23;;;12373:61;;;;;-1:-1:-1;;;;;12373:61:25;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;12373:61:25;;;;;;;;;;;;;;;12445:33;12462:6;12470:7;12445:16;:33::i;:::-;12233:253;;:::o;19456:94:4:-;19508:6;19527:19;:17;:19::i;1159:176:66:-;1219:8;;-1:-1:-1;;;;;1219:8:66;1205:10;:22;1197:52;;;;;-1:-1:-1;;;;;1197:52:66;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;1197:52:66;;;;;;;;;;;;;;;1277:8;;;1270:5;;1258:28;;-1:-1:-1;;;;;1277:8:66;;;;1270:5;;;;1258:28;;;1298:8;;;;1290:16;;-1:-1:-1;;;;;1298:8:66;;-1:-1:-1;;;;;;1290:16:66;;;;;;;1310:21;;;1159:176::o;1085:33:60:-;;;-1:-1:-1;;;;;1085:33:60;;:::o;157:20:66:-;;;-1:-1:-1;;;;;157:20:66;;:::o;2818:34:4:-;;;;;;;;;:::o;2294:53:25:-;;;;;;;;;;;;;:::o;12584:101:4:-;12660:13;:20;12584:101;:::o;1866:29:25:-;;;;;;:::o;13954:1880::-;14115:7;14124;14522:24;14557;14721:20;;:::i;:::-;15092:27;15121:29;15650:20;15674:11;5606:9:4;:7;:9::i;:::-;14272:27:25;14286:12;14272:13;:27::i;:::-;14310;14324:12;14310:13;:27::i;:::-;-1:-1:-1;;;;;14356:28:25;;;;;;;;14348:63;;;;;-1:-1:-1;;;;;14348:63:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;14783:6;:4;:6::i;:::-;14756:23;;:33;14752:791;;;14813:13;14806:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;14861:8;:22;14870:12;-1:-1:-1;;;;;14861:22:25;-1:-1:-1;;;;;14861:22:25;;;;;;;;;;;;:29;;;;;;;;;;;;14841:49;;14925:8;:22;14934:12;-1:-1:-1;;;;;14925:22:25;-1:-1:-1;;;;;14925:22:25;;;;;;;;;;;;:29;;;;;;;;;;;;14905:49;;14752:791;;;15054:22;:20;:22::i;:::-;15047:29;;15154;15178:4;15154:23;:29::i;:::-;15220:19;;15091:92;;-1:-1:-1;15091:92:25;-1:-1:-1;;;;;;15204:35:25;;;15220:19;;15204:35;15200:332;;;15280:20;15260:40;;15339:22;15319:42;;15200:332;;;15435:22;15415:42;;15496:20;15476:40;;15200:332;15689:100;15709:12;15723;15737:17;15756;15775:4;15781:7;15689:19;:100::i;:::-;15649:140;;;;-1:-1:-1;13954:1880:25;;-1:-1:-1;;;;;;;;;;;;13954:1880:25:o;2974:119:60:-;575:12:66;:10;:12::i;:::-;3077::60;;3066:8;:23;;-1:-1:-1;;;;;;3066:23:60;-1:-1:-1;;;;;3077:12:60;;;3066:23;;;;;;2974:119::o;3095:46:4:-;3137:4;3095:46;:::o;9510:248:25:-;575:12:66;:10;:12::i;:::-;-1:-1:-1;;;;;;;;;;;1510:20:60;1516:13;1510:5;:20::i;:::-;9679:13:25;6115:23:4;6129:8;6115:13;:23::i;:::-;-1:-1:-1;;;;;;;9710:29:25;;;;;;;;:14;:29;;;;;:40;9510:248::o;1999:38::-;;;;:::o;2322:37:4:-;;;-1:-1:-1;;;;;2322:37:4;;:::o;2090:197:9:-;2219:1;2197:19;:17;:19::i;:::-;:23;;;2189:61;;;;;-1:-1:-1;;;;;2189:61:9;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;2189:61:9;;;;;;;;;;;;;;;2254:29;:27;:29::i;2445:34:4:-;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2445:34:4;;-1:-1:-1;2445:34:4;:::o;8282:71::-;8345:4;8282:71;:::o;2260:30::-;;;-1:-1:-1;;;;;2260:30:4;;:::o;180:23:66:-;;;-1:-1:-1;;;;;180:23:66;;:::o;12079:317:4:-;12119:36;575:12:66;:10;:12::i;:::-;12177:29:4;-1:-1:-1;;;;;;;;;;;12177:9:4;:29::i;:::-;12278:6;;12119:88;;-1:-1:-1;12286:5:4;;-1:-1:-1;;;;;12278:6:4;12261:15;:13;:15::i;:::-;12250:42;;;;;;;;;;;;12297:36;12315:17;12297;:36::i;:::-;12337:34;;;;;;2254:2;12337:34;;;;;;-1:-1:-1;;;;;12337:25:4;;;;;:34;;;;;-1:-1:-1;;12337:34:4;;;;;;;-1:-1:-1;12337:25:4;:34;;;5:2:-1;;;;30:1;27;20:12;5:2;12337:34:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12337:34:4;;;;12375:17;:15;:17::i;4423:105:25:-;765:2;4423:105;:::o;2566:43:4:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;19607:134::-;19686:7;19706:31;19721:15;19706:14;:31::i;:::-;19699:38;19607:134;-1:-1:-1;;19607:134:4:o;12748:168:25:-;12800:7;12809;12829:20;;:::i;:::-;12852:22;:20;:22::i;:::-;12893:6;;12901;;;;;12893;;12901;;-1:-1:-1;12748:168:25;-1:-1:-1;;12748:168:25:o;1268:40::-;;;-1:-1:-1;;;;;1268:40:25;;:::o;14111:155:4:-;14211:7;14187:13;6115:23;6129:8;6115:13;:23::i;:::-;-1:-1:-1;;;;;;;14231:23:4;;;;;:8;:23;;;;;:31;;14111:155::o;23766:2230:25:-;24028:7;24211:25;24353:21;24575:24;24915;25370:26;565:12:68;:10;:12::i;:::-;287:1;581:5;:14;5606:9:4;:7;:9::i;:::-;23927:10:25;3498:25;3514:8;3498:15;:25::i;:::-;23964:7;180:24:72;197:6;180:16;:24::i;:::-;23998:10:25;180:24:72;197:6;180:16;:24::i;:::-;24104:21:25;:19;:21::i;:::-;24239:10;-1:-1:-1;;;;;24239:22:25;;:24;;;;;-1:-1:-1;;;24239:24:25;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;24239:24:25;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;24239:24:25;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;24239:24:25;;-1:-1:-1;24380:48:25;24408:10;24420:7;24380:27;:48::i;:::-;-1:-1:-1;24352:76:25;-1:-1:-1;24447:27:25;;;;24439:58;;;;;-1:-1:-1;;;;;24439:58:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;24602:20;:32;24623:10;-1:-1:-1;;;;;24602:32:25;-1:-1:-1;;;;;24602:32:25;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;24602:32:25;24575:59;;24710:6;;;;;;;;;-1:-1:-1;;;;;24710:6:25;-1:-1:-1;;;;;24689:33:25;;24723:10;24735;24747:7;24689:66;;;;;-1:-1:-1;;;24689:66:25;;;;;;;-1:-1:-1;;;;;24689:66:25;-1:-1:-1;;;;;24689:66:25;;;;;;-1:-1:-1;;;;;24689:66:25;-1:-1:-1;;;;;24689:66:25;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;24689:66:25;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;;;;;;;;24855:22:25;;;;;;:8;:22;;;;;:30;:49;;24890:13;24855:34;:49::i;:::-;-1:-1:-1;;;;;24822:22:25;;;;;;:8;:22;;;;;;;;:82;;;;24942:14;:28;;;;:47;;24975:13;24942:32;:47::i;:::-;-1:-1:-1;;;;;25000:28:25;;;;;;:14;:28;;;;;;;:47;;;;;-1:-1:-1;25000:28:25;;;;-1:-1:-1;25000:28:25;-1:-1:-1;;;;;25118:35:25;25114:170;;;25168:34;;:10;;:34;;;;;25188:13;;25168:34;;;;25188:13;25168:10;:34;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;25168:34:25;25114:170;;;25231:53;25244:12;25258:10;25270:13;25231:12;:53::i;:::-;25346:11;:9;:11::i;:::-;25399:30;:17;25421:7;25399:30;:21;:30;:::i;:::-;25495:95;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;25495:95:25;;;25512:10;;25495:95;;;;;;;;;;25671:78;25704:10;25716:18;25736:12;25671:32;:78::i;:::-;25834:70;25863:13;25877:1;25863:16;;;;;;;;;25834:70;-1:-1:-1;;249:1:68;604:5;:16;-1:-1:-1;25975:13:25;;23766:2230;-1:-1:-1;;;;;;;;23766:2230:25:o;2405:39::-;;;;:::o;15044:649:4:-;15241:7;565:12:68;:10;:12::i;:::-;287:1;581:5;:14;15212:18:4;1510:20:60;15212:18:4;1510:5:60;:20::i;:::-;-1:-1:-1;;;;;15282:28:4;;;;;;;;15274:63;;;;;-1:-1:-1;;;;;15274:63:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;15446:19;;-1:-1:-1;;;;;15446:19:4;:33;;:132;;-1:-1:-1;15484:19:4;;:42;;;-1:-1:-1;;;;;15484:42:4;;-1:-1:-1;;;;;15484:42:4;;;;;;;;;:19;;;;;:33;;:42;;;;;;;;;;;;;;-1:-1:-1;15484:19:4;:42;;;5:2:-1;;;;30:1;27;20:12;5:2;15484:42:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15484:42:4;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;15484:42:4;:93;;;;-1:-1:-1;15530:19:4;;:47;;;-1:-1:-1;;;;;15530:47:4;;-1:-1:-1;;;;;15530:47:4;;;;;;;;;:19;;;;;:33;;:47;;;;;;;;;;;;;;-1:-1:-1;15530:19:4;:47;;;5:2:-1;;;;30:1;27;20:12;5:2;15530:47:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15530:47:4;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;15530:47:4;15484:93;15434:174;;;;;;;-1:-1:-1;;;;;15434:174:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;15620:69;15630:12;15644;15658:7;15667;15676:12;15620:9;:69::i;:::-;249:1:68;604:5;:16;15613:76:4;15044:649;-1:-1:-1;;;;;;;15044:649:4:o;13075:444:25:-;13131:7;13140;13160:20;;:::i;:::-;13217:27;13246:29;13183:22;:20;:22::i;:::-;13160:45;;13279:29;13303:4;13279:23;:29::i;:::-;13216:92;;;;13348:13;13362:1;13348:16;;;;;;;;;;;;;;;;;;;;13325:19;;-1:-1:-1;;;;;13348:16:25;;;13325:19;;:39;13321:125;;;13381:53;;;;;-1:-1:-1;13381:53:25;;;-1:-1:-1;13381:53:25;;13321:125;13458:53;;;;;-1:-1:-1;13458:53:25;;;-1:-1:-1;13075:444:25;;;;;;:::o;10618:240:4:-;575:12:66;:10;:12::i;:::-;10714:16:4;;;;;;;;;10696:34;;;;;10688:73;;;;;-1:-1:-1;;;;;10688:73:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;10790:13;;10770:50;;;10790:13;;;;;;;10770:50;;;;;;;;;;;;;;;;;;;;;10824:13;:30;;;;;;;;-1:-1:-1;;10824:30:4;;;;;;;;;10618:240::o;945:140:66:-;575:12;:10;:12::i;:::-;1033:5;;-1:-1:-1;;;;;1020:18:66;;;1033:5;;1020:18;;1012:45;;;;;-1:-1:-1;;;;;1012:45:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;1061:8;:20;;-1:-1:-1;;;;;;1061:20:66;-1:-1:-1;;;;;1061:20:66;;;;;;;;;;945:140::o;2112:34:25:-;;;;;;:::o;18535:77:4:-;18602:6;;-1:-1:-1;;;;;18602:6:4;;18535:77::o;6193:123::-;-1:-1:-1;;;;;6264:18:4;;;;;;:8;:18;;;;;-1:-1:-1;6264:24:4;;;;;;;6256:56;;;;;;;-1:-1:-1;;;;;6256:56:4;;;;;;;;;;;;;;;;;;;;;;;;;;;642:93:66;704:5;;-1:-1:-1;;;;;704:5:66;690:10;:19;682:49;;;;;-1:-1:-1;;;;;682:49:66;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;682:49:66;;;;;;;;;;;;;;5884:77:4;5932:10;:8;:10::i;:::-;5931:11;5923:34;;;;;-1:-1:-1;;;;;5923:34:4;;;;;;;;;;;;;;;;;;;;;;;;;;;855:115:72;937:4;-1:-1:-1;;;;;917:25:72;;;;909:57;;;;;-1:-1:-1;;;;;909:57:72;;;;;;;;;;;;;;;;;;;;;;;;;;;553:117;-1:-1:-1;;;;;620:22:72;;;;612:54;;;;;-1:-1:-1;;;;;612:54:72;;;;;;;;;;;;;;;;;;;;;;;;;;;3647:122:60;3732:8;;:33;;;;;;;;;;;;;;-1:-1:-1;;;;;;;3732:8:60;;:18;;:33;;;;;;;;;;;;;;-1:-1:-1;3732:8:60;:33;;;5:2:-1;;;;30:1;27;20:12;5:2;3732:33:60;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3732:33:60;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3732:33:60;;3647:122;-1:-1:-1;;3647:122:60:o;32598:806:25:-;32700:6;;32752:22;;;;;;;;-1:-1:-1;;;;;32700:6:25;;;;32718:31;;32646:30;;;;;;;;32700:6;;32752:20;;:22;;;;;32646:30;;32752:22;;;;;;;;32646:30;32700:6;32752:22;;;5:2:-1;;;;30:1;27;20:12;5:2;32752:22:25;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;32752:22:25;;;;;;39:16:-1;36:1;17:17;2:54;101:4;32752:22:25;80:15:-1;;;-1:-1;;76:31;65:43;;120:4;113:20;13:2;5:11;;2:2;;;29:1;26;19:12;2:2;32752:22:25;;;;;;20:11:-1;15:3;12:20;9:2;;;45:1;42;35:12;9:2;64:21;;126:4;117:14;;142:31;;;139:2;;;186:1;183;176:12;139:2;224:3;218:10;339:9;333:2;319:12;315:21;297:16;293:44;290:59;268:11;254:12;251:29;239:119;236:2;;;371:1;368;361:12;236:2;-1:-1;;32805:17:25;;32863:13;:20;32752:22;;-1:-1:-1;32805:22:25;;-1:-1:-1;32863:20:25;-1:-1:-1;32826:1:25;;-1:-1:-1;;;;32894:503:25;32918:12;32914:1;:16;32894:503;;;32999:12;32995:181;;;33051:9;-1:-1:-1;;;;;33051:21:25;;:23;;;;;-1:-1:-1;;;33051:23:25;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;33051:23:25;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;33051:23:25;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;33051:23:25;;-1:-1:-1;32995:181:25;;;33147:10;33158:1;33147:13;;;;;;;;;;;;;;;;;;33128:32;;32995:181;33297:16;33256:20;:38;33277:13;33291:1;33277:16;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;33277:16:25;;;33256:38;;;;;;;;;;;;;;;:57;;-1:-1:-1;;;;;;33256:57:25;;;;;;;;;;;33369:13;:16;;33383:1;;33369:16;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;33328:38:25;;;;;:20;:38;;;;;;;:57;;-1:-1:-1;;;;;;33328:57:25;33369:16;;;;33328:57;;;-1:-1:-1;32932:3:25;;;;;32894:503;;41834:77;41900:3;41834:77;:::o;36624:394::-;36767:38;;;;;;;;;36791:13;36767:38;;;;;;;;;36705:27;;;;36767:38;;:23;:38::i;:::-;36886:19;;-1:-1:-1;;;;;36886:19:25;;;36877:29;;;;:8;:29;;;;;;-1:-1:-1;36877:36:25;;;:59;;;;;;-1:-1:-1;;36877:59:25;;;;;;;36956:21;;;;;36947:31;;;;:38;:63;;;;;;;;;;;-1:-1:-1;;36624:394:25:o;8967:93:4:-;9025:6;;:14;;;;;;;;9008:4;;9051;;-1:-1:-1;;;;;9025:6:4;;;;:12;;:14;;;;;;;;;;;;;;;9008:4;9025:6;:14;;;5:2:-1;;;;30:1;27;20:12;5:2;9025:14:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9025:14:4;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9025:14:4;-1:-1:-1;;;;;9025:31:4;;;8967:93;-1:-1:-1;8967:93:4:o;924:197:69:-;984:7;;1023;;1019:21;;;1039:1;1032:8;;;;1019:21;-1:-1:-1;1057:7:69;;;1062:2;1057;:7;1076:6;;;;;;;;:12;1068:37;;;;;-1:-1:-1;;;;;1068:37:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;1116:1;1109:8;;924:197;;;;;;:::o;288:144::-;348:7;373;;;392;;;;384:32;;;;;-1:-1:-1;;;;;384:32:69;;;;;;;;;;;;;;;;;;;;;;;;;;;1307:149;1367:7;;1388:6;;;1380:37;;;;;-1:-1:-1;;;;;1380:37:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;1438:2;1433;:7;;;;;;;;;1307:149;-1:-1:-1;;;;1307:149:69:o;670:88:68:-;718:5;;249:1;718:17;710:44;;;;;-1:-1:-1;;;;;710:44:68;;;;;;;;;;;;;;;;;;;;;;;;;;;5670:76:4;5715:10;:8;:10::i;:::-;5707:35;;;;;;;-1:-1:-1;;;;;5707:35:4;;;;;;;;;;;;;;;;;;;;;;;;;;;259:101:72;336:1;327:10;;319:37;;;;;-1:-1:-1;;;;;319:37:72;;;;;;;;;;;;;;;;;;;;;;;;;;;17223:174:4;17290:13;:20;17267;17314:79;17338:12;17334:1;:16;17314:79;;;17357:36;17376:13;17390:1;17376:16;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;17376:16:4;17357:18;:36::i;:::-;17352:3;;17314:79;;613:129:69;673:7;694:8;;;;686:34;;;;;-1:-1:-1;;;;;686:34:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;731:7:69;;;613:129::o;1740:206:70:-;351:50;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1870:71:70;;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;1870:71:70;;;;;;;25:18:-1;;61:17;;-1:-1;;;;;182:15;-1:-1;;;;;;1870:71:70;;;179:29:-1;;;;160:49;;;1854:88:70;;1862:6;;1854:7;:88::i;:::-;1740:206;;;;:::o;41528:242:25:-;-1:-1:-1;;;;;41671:91:25;;;41714:29;;;;:14;:29;;;;;;;;;;41671:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;41528:242;;;:::o;40837:344::-;41025:20;;:::i;:::-;41048:58;41059:7;41068;41077:13;41092;41048:10;:58::i;:::-;41158:6;;41166;;;;;41124:49;;;;;;;;;;;;41158:6;;-1:-1:-1;;;;;;41124:49:25;;;;;;;;;;;;;;;;;40837:344;;;;;:::o;1077:194:71:-;575:12:66;:10;:12::i;:::-;1190:6:71;475:23:72;489:8;475:13;:23::i;:::-;1211:3:71;475:23:72;489:8;475:13;:23::i;:::-;1224:3:71;782:18:72;791:8;782;:18::i;:::-;1233:34:71;1246:6;1254:3;1259:7;1233:12;:34::i;16898:269:4:-;16975:13;6115:23;6129:8;6115:13;:23::i;:::-;-1:-1:-1;;;;;;;;16998:36:4;;;-1:-1:-1;;;;;;;;;16998:36:4;16994:169;;;-1:-1:-1;;;;;17036:23:4;;;;;;:8;:23;;;;;17078:4;17070:21;17036:55;;16994:169;;;17134:29;;;;;;17158:4;17134:29;;;;;;-1:-1:-1;;;;;17134:23:4;;;;;:29;;;;;;;;;;;;;;-1:-1:-1;17134:23:4;:29;;;5:2:-1;;;;30:1;27;20:12;5:2;17134:29:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17134:29:4;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;17134:29:4;-1:-1:-1;;;;;17100:23:4;;;;;;:8;17134:29;17100:23;;;;:63;16898:269;;:::o;1585:128:60:-;1663:24;1673:13;1663:9;:24::i;:::-;-1:-1:-1;;;;;1649:38:60;:10;:38;1641:68;;;;;-1:-1:-1;;;;;1641:68:60;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;1641:68:60;;;;;;;;;;;;;;12940:623:4;13373:26;575:12:66;:10;:12::i;:::-;5818:11:4;:9;:11::i;:::-;13043:6;475:23:72;489:8;475:13;:23::i;:::-;13061:6:4;782:18:72;791:8;782;:18::i;:::-;13090:7:4;6729:28;6749:7;6729:19;:28::i;:::-;13150:6;;-1:-1:-1;;;;;13132:25:4;;;13150:6;;13132:25;;;;:52;;-1:-1:-1;;;;;;13162:16:4;;;;;;:8;:16;;;;;-1:-1:-1;13162:22:4;;;;;;;13161:23;13132:52;13124:84;;;;;;;-1:-1:-1;;;;;13124:84:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;13251:12;;;;;;1763:7;13231:32;13220:43;;;;;;;13212:82;;;;;-1:-1:-1;;;;;13212:82:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;13306:32;:19;:17;:19::i;:::-;:32;;;13298:70;;;;;-1:-1:-1;;;;;13298:70:4;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;13298:70:4;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;13402:16:4;;;;;;;;:8;:16;;;;;13422:22;;;-1:-1:-1;13448:17:4;;;:27;;-1:-1:-1;;13448:27:4;;;;-1:-1:-1;;13448:27:4;;;;13479:23;;;;;;;;;13506:13;27:10:-1;;23:18;;;45:23;;13506:26:4;;;;;;;;;-1:-1:-1;;;;;;13506:26:4;;;;;;;13536:12;:23;;;;;;;;;;;;;;;;;;;12940:623::o;33532:1842:25:-;33586:8;;:::i;:::-;33670:21;33693;33716:18;34132:19;34872;;:::i;:::-;34918:20;;:::i;:::-;33738:11;;33774:19;;33795:21;;33738:79;;;;;;-1:-1:-1;;;;;33774:19:25;;;33738:79;;;;33795:21;;;33738:79;;;;;-1:-1:-1;;;;;;;;33738:11:25;;;;;;;;:35;;:79;;;;;;;;;;;;;;;-1:-1:-1;33738:11:25;:79;;;5:2:-1;;;;30:1;27;20:12;5:2;33738:79:25;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;33738:79:25;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;33738:79:25;;;;;;;;;;;33936:23;;33738:79;;-1:-1:-1;33738:79:25;;-1:-1:-1;33738:79:25;;-1:-1:-1;33923:36:25;;33919:124;;;33983:48;;;;;;;;;33997:13;33983:48;;;;34015:13;33983:48;;;33976:55;;;;33919:124;34163:23;;34154:6;:4;:6::i;:::-;:32;;-1:-1:-1;34289:16:25;;34285:69;;;34322:20;;;;;;;;;34329:13;34322:20;;;;;;;;;;-1:-1:-1;34322:20:25;;34285:69;1847:10;34696:38;;34692:96;;34751:25;;;;;;;;;34758:18;34751:25;;;;;;;;;;-1:-1:-1;34751:25:25;;34692:96;34872:35;;;;;;;;34894:13;34872:35;;;;;;;;;;;;34918:41;;;;;;;;34941:18;34918:41;;;;;;;;;;;;;34984:5;;34872:35;;-1:-1:-1;34918:41:25;;-1:-1:-1;34984:17:25;;;:9;:17;:::i;:::-;35034:6;;;;35024:5;;34972:29;;-1:-1:-1;35024:17:25;;:5;:17;:9;:17;:::i;:::-;35012:29;-1:-1:-1;35172:68:25;35221:18;:1;35227:11;35221:18;:5;:18;:::i;:::-;35172:44;:1;1847:10;35178:37;;;35172:44;:5;:44;:::i;:68::-;35153:87;;35270:46;1847:10;35270:17;35280:4;:6;;;35270:3;:5;;;:9;;:17;;;;:::i;:::-;:21;:46;:21;:46;:::i;:::-;35251:65;;35336:30;35347:8;35357;35336:10;:30::i;:::-;35329:37;;33532:1842;;;;;;;;;;;;:::o;37322:725::-;37524:19;;-1:-1:-1;;;;;37524:19:25;37400:6;37509:35;;;:14;:35;;;;;;37400:6;;;;37509:35;37400:6;;;;37628:44;;:23;:44::i;:::-;37734:21;;37603:69;;-1:-1:-1;37710:46:25;;-1:-1:-1;;;;;37734:21:25;37710:23;:46::i;:::-;37683:73;;37827:29;37837:18;37827:9;:29::i;:::-;-1:-1:-1;;;;;37808:65:25;;37888:46;:20;765:2;37888:24;:46::i;:::-;38009:7;;38031;;;;37808:231;;;;;;-1:-1:-1;37808:231:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;37808:231:25;;;;5:2:-1;;;;30:1;27;20:12;5:2;37808:231:25;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;37808:231:25;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;37808:231:25;;;;;;;;;-1:-1:-1;37808:231:25;-1:-1:-1;37322:725:25;;;;;;:::o;28106:1360::-;28375:20;;;;;28458:18;;;;28454:82;;;-1:-1:-1;;;;;28507:22:25;;;;;;:8;:22;;;;;-1:-1:-1;28507:29:25;;;;;-1:-1:-1;28454:82:25;28551:18;;;;28547:82;;;-1:-1:-1;;;;;28600:22:25;;;;;;:8;:22;;;;;-1:-1:-1;28600:29:25;;;;;-1:-1:-1;28547:82:25;28712:37;28736:12;28712:23;:37::i;:::-;28688:61;;28784:37;28808:12;28784:23;:37::i;:::-;28760:61;;28902:29;28912:18;28902:9;:29::i;:::-;28883:219;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;28883:74:25;;;;;;;:219;;;;;;;;;;;;;;;-1:-1:-1;28883:74:25;:219;;;5:2:-1;;;;30:1;27;20:12;5:2;28883:219:25;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;28883:219:25;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;28883:219:25;;-1:-1:-1;29253:26:25;28883:219;29253:12;:26::i;:::-;29239:40;;29303:101;29392:11;29303:84;29323:12;29337:13;29352;29367:5;29374:12;29303:19;:84::i;:101::-;29290:114;-1:-1:-1;29430:28:25;:12;29290:114;29430:28;:16;:28;:::i;:::-;29415:43;;28106:1360;;;;;;;;;;;;:::o;9796:227:4:-;575:12:66;:10;:12::i;:::-;9935:1:4;9913:19;:17;:19::i;:::-;:23;;;9905:61;;;;;-1:-1:-1;;;;;9905:61:4;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;9905:61:4;;;;;;;;;;;;;;;9970:6;;:24;;;;;;;;-1:-1:-1;;;;;9970:6:4;;;;:22;;:24;;;;;:6;;:24;;;;;;;;:6;;:24;;;5:2:-1;;;;30:1;27;20:12;5:2;9970:24:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9970:24:4;;;;9998:21;:19;:21::i;3598:159:25:-;-1:-1:-1;;;;;3678:30:25;;;3720:1;3678:30;;;:20;:30;;;;;;;:44;;3670:79;;;;;-1:-1:-1;;;;;3670:79:25;;;;;;;;;;;;;;;;;;;;;;;;;;;1214:173:70;248:38;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1323:59:70;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;1323:59:70;;;;;;;;25:18:-1;;61:17;;-1:-1;;;;;182:15;-1:-1;;;;;;1323:59:70;;;179:29:-1;;;;160:49;;;1307:76:70;;1315:6;;1307:7;:76::i;:::-;1214:173;;;:::o;16421:1097:25:-;16672:7;16768:14;16784:11;5606:9:4;:7;:9::i;:::-;16604:12:25;6115:23:4;6129:8;6115:13;:23::i;:::-;16640:12:25;6115:23:4;6129:8;6115:13;:23::i;:::-;16799:46:25;16809:12;16823;16837:7;16799:9;:46::i;:::-;-1:-1:-1;;;16767:78:25;;-1:-1:-1;16767:78:25;;-1:-1:-1;;;;;;16932:35:25;;;-1:-1:-1;;;;;;;;16932:35:25;16928:187;;;16984:29;;-1:-1:-1;;;;;16984:21:25;;;:29;;;;;;;;;;;;:21;:29;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16984:29:25;16928:187;;;17055:48;17068:12;17082;17096:6;17055:12;:48::i;:::-;17169:82;17193:12;17207;17221:7;17230;17239:6;17247:3;17169:23;:82::i;:::-;-1:-1:-1;;;;;17375:22:25;;;;;;;:8;:22;;;;;;-1:-1:-1;17375:29:25;;;;17406:22;;;;;;;:29;;17328:108;;17375:22;;17406;;17375:29;;;;;17406;17328:18;:108::i;:::-;-1:-1:-1;17504:6:25;;16421:1097;-1:-1:-1;;;;;;;;16421:1097:25:o;2255:557:70:-;2324:21;;:::i;:::-;:36;;;;;;;;;2357:1;2324:36;;;;;2687:2;2661:3;2580:5;2574:12;2495:2;2488:5;2484:14;2465:1;2430:6;2404:3;2394:317;2725:7;2718:15;2715:2;;;2750:1;2747;2740:12;2715:2;-1:-1:-1;2773:6:70;;:11;;2765:43;;;;;-1:-1:-1;;;;;2765:43:70;;;;;;;;;;;;;;;;;;;;;;;;;;;38511:674:25;38639:8;;:::i;:::-;38710:21;38777;38734:32;38758:7;38734:23;:32::i;:::-;38710:56;;38801:32;38825:7;38801:23;:32::i;:::-;38777:56;-1:-1:-1;38882:18:25;;;;38878:91;;;-1:-1:-1;;;;;38933:17:25;;;;;;:8;:17;;;;;-1:-1:-1;38933:24:25;;;;;-1:-1:-1;38878:91:25;38985:18;;;;38981:91;;;-1:-1:-1;;;;;39036:17:25;;;;;;:8;:17;;;;;-1:-1:-1;39036:24:25;;;;;-1:-1:-1;38981:91:25;39091:86;;;;;;;;;;39105:32;:13;:32;;;;;:17;:32;:::i;:::-;39091:86;;;;39142:32;:13;:32;;;;;:17;:32;:::i;:::-;39091:86;;39084:93;38511:674;-1:-1:-1;;;;;;;38511:674:25:o;6812:149:4:-;6893:1;6883:7;:11;;;:43;;;;-1:-1:-1;1763:7:4;6898:28;;;;;6883:43;6875:82;;;;;;;-1:-1:-1;;;;;6875:82:4;;;;;;;;;;;;;;;;;;;;;;;;;;;42226:280:25;42293:8;;:::i;:::-;42402:20;;:::i;:::-;42325:8;;;42321:69;;42357:21;42371:2;42375;42357:13;:21::i;:::-;42350:28;;;;42321:69;42425:21;42439:2;42443;42425:13;:21::i;:::-;42464:34;;;;;;;;;42478:6;;;;;42464:34;;42489:6;;42464:34;;;;;-1:-1:-1;42402:44:25;-1:-1:-1;42226:280:25;;;;;:::o;16577:155:4:-;16683:13;;16645:7;;16665:63;;1826:7;;16665:32;;:13;;16683;;;16665:63;16683:13;;;;16665:17;:32;:::i;29926:1050:25:-;30218:21;;30149:7;;;;-1:-1:-1;;;;;30202:37:25;;;30218:21;;30202:37;30198:698;;;30321:19;;-1:-1:-1;;;;;30321:19:25;;;30306:35;;;;:14;:35;;;;;;;;;30375:21;;;;;30360:37;;;;;;30480:7;;30506;;;;30532:16;;30262:287;;30306:35;30262:287;;;;;;;;;:25;:287::i;:::-;30256:293;;30198:698;;;30656:19;;-1:-1:-1;;;;;30656:19:25;;;30641:35;;;;:14;:35;;;;;;;;;30710:21;;;;;30695:37;;;;;;30815:7;;30841;;;;30867:16;;30597:287;;30641:35;30597:287;;;;;;;;;:25;:287::i;:::-;30591:293;;30198:698;30915:53;1826:7:4;30915:22:25;:13;30933:3;30915:17;:22::i;:53::-;30908:60;29926:1050;-1:-1:-1;;;;;;;29926:1050:25:o;17987:1687::-;18092:7;18101;18215:16;18233:20;;:::i;:::-;18337:14;18353:19;18374:18;18664:28;18257:18;:16;:18::i;:::-;18214:61;;;;18396:68;18416:12;18430;18444:1;18447;18450:4;18456:7;18396:19;:68::i;:::-;18336:128;;-1:-1:-1;18336:128:25;-1:-1:-1;18336:128:25;-1:-1:-1;18545:11:25;;;18537:46;;;;;-1:-1:-1;;;;;18537:46:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;18695:28;18710:12;18695:14;:28::i;:::-;18664:59;-1:-1:-1;18742:29:25;;;18734:68;;;;;-1:-1:-1;;;;;18734:68:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;18882:35:25;;;-1:-1:-1;;;;;;;;;18882:35:25;18878:261;;;18940:9;:20;;18932:56;;;;;-1:-1:-1;;;;;18932:56:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;18878:261;;;19025:9;:14;:91;;;;;19109:7;19043:62;19076:28;19091:12;19076:14;:28::i;:::-;19043:12;-1:-1:-1;;;;;19043:22:25;;19066:4;19043:28;;;;;-1:-1:-1;;;19043:28:25;;;;;;;-1:-1:-1;;;;;19043:28:25;-1:-1:-1;;;;;19043:28:25;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19043:28:25;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;19043:28:25;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;19043:28:25;;:62;:32;:62;:::i;:::-;:73;;19025:91;19017:122;;;;;;;-1:-1:-1;;;;;19017:122:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;19190:32;19209:12;19190:18;:32::i;:::-;19266;:20;19291:6;19266:32;:24;:32;:::i;:::-;-1:-1:-1;;;;;19233:22:25;;;;;;:8;:22;;;;;;;;:65;;;;19400:14;:28;;;;:45;;19433:11;19400:32;:45::i;:::-;-1:-1:-1;;;;;19369:28:25;;;;;;:14;:28;;;;;:76;19502:125;;;;19566:19;;19587:21;;19555:60;;-1:-1:-1;;;;;19566:19:25;;;;19587:21;19566:19;;19555:10;:60::i;:::-;19534:81;;:18;:81;;;;;;19502:125;-1:-1:-1;19647:6:25;;19655:10;;-1:-1:-1;17987:1687:25;;-1:-1:-1;;;;;;;17987:1687:25:o;17773:656:4:-;18318:6;18305:19;;18298:27;;;;18334:91;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;18334:91:4;;;;;;;;;;;;;;;;;;;;;17773:656;;;;;;:::o;39657:702:25:-;40129:27;40193:29;39800:86;39829:12;39843;39857:13;39872;39800:28;:86::i;:::-;40159:23;40169:12;40159:9;:23::i;:::-;40129:53;;40225:15;-1:-1:-1;;;;;40225:27:25;;:29;;;;;-1:-1:-1;;;40225:29:25;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;40225:29:25;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;40225:29:25;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;40225:29:25;;-1:-1:-1;40265:86:25;40298:15;40225:29;40338:12;40265:32;:86::i;42632:595::-;42706:8;;:::i;:::-;42040:41;42738:34;;42734:213;;;42796:139;;;;;;;;;41974:4;42796:139;;;;;;;42884:4;:34;42876:4;:43;;;;;;;;42796:139;;42789:146;-1:-1:-1;42789:146:25;;42734:213;41974:4;42963;:34;42959:211;;;43021:137;;;;;;;;;41974:4;43021:137;;;;43138:4;41974;43101;:34;:41;;;;;;42959:211;-1:-1:-1;43189:30:25;;;;;;;;;;;;;;;;;42632:595::o;31642:708::-;32006:7;;;32043:75;32094:23;32043:46;:21;32069:19;32043:46;:25;:46;:::i;:75::-;32031:87;-1:-1:-1;32141:77:25;32196:21;32141:50;:23;32169:21;32141:50;:27;:50;:::i;:77::-;32129:89;;32237:1;32233;:5;32229:94;;;32260:63;32321:1;32260:56;765:2;32260:30;32261:5;;;32272:17;32260:30;:11;:30;:::i;:63::-;32253:70;;;;32229:94;32341:1;32334:8;;31642:708;;;;;;;;;;;;:::o;35662:782::-;35707:4;35713:8;;:::i;:::-;35741:19;36021:23;;:::i;:::-;36152:19;;:::i;:::-;35763:6;:4;:6::i;:::-;35741:28;;35874:11;35847:23;;:38;35843:100;;;35902:29;;;;;;;;;35917:13;35902:29;;;;;;;;;35910:5;;-1:-1:-1;35902:29:25;-1:-1:-1;35902:29:25;;35843:100;36047:22;:20;:22::i;:::-;36152:35;;;;;;;;;36174:13;36152:35;;;;;;;;;;36202:9;;36021:48;;-1:-1:-1;36152:35:25;;-1:-1:-1;36202:18:25;:40;;;;;36237:3;:5;;;36224:7;:9;;;:18;36202:40;36198:96;;;36267:5;36274:7;36259:23;;;;;;36198:96;36306:23;;:13;:23;;;;;;;36340;:37;;;36390:11;:9;:11::i;:::-;-1:-1:-1;36422:4:25;;36428:7;;-1:-1:-1;35662:782:25;-1:-1:-1;;35662:782:25:o;651:42579::-;;;;;;;;;-1:-1:-1;651:42579:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;651:42579:25;;;;;;;;:::o;:::-;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;-1:-1;651:42579:25;;;-1:-1:-1;;651:42579:25:o" - }, - "methodIdentifiers": { - "acceptAnchorOwnership()": "cdc91c69", - "acceptOwnership()": "79ba5097", - "acceptTokenOwnership()": "38a5e016", - "activate(address,address,address)": "119b90cd", - "addLiquidity(address,uint256,uint256)": "55776b77", - "addReserve(address,uint32)": "6a49d2c4", - "amplificationFactor()": "d64c5a1a", - "anchor()": "d3fb73b4", - "connectorTokenCount()": "71f52bf3", - "connectorTokens(uint256)": "19b64015", - "connectors(address)": "0e53aae9", - "conversionFee()": "579cd3ca", - "conversionWhitelist()": "c45d3d92", - "conversionsEnabled()": "bf754558", - "convert(address,address,uint256,address,address)": "e8dc12ff", - "converterType()": "3e8ff43f", - "disableMaxStakedBalances()": "16912f96", - "dynamicFeeFactor()": "e8104af9", - "effectiveReserveWeights()": "ec2240f5", - "effectiveTokensRate()": "db2830a4", - "getConnectorBalance(address)": "d8959512", - "getReturn(address,address,uint256)": "1e1401f8", - "hasETHReserve()": "12c2aca4", - "isActive()": "22f3e2d4", - "isV28OrHigher()": "d260529c", - "lastConversionRate()": "f9cddde2", - "liquidationLimit(address)": "2bf0c985", - "maxConversionFee()": "94c275ad", - "maxStakedBalanceEnabled()": "0a55fb3d", - "maxStakedBalances(address)": "98a71dcb", - "newOwner()": "d4ee1d90", - "onlyOwnerCanUpdateRegistry()": "2fe8a6ad", - "owner()": "8da5cb5b", - "poolToken(address)": "5768adcf", - "prevRegistry()": "61cd756e", - "priceOracle()": "2630c12f", - "primaryReserveToken()": "0337e3fb", - "referenceRate()": "a32bff44", - "referenceRateUpdateTime()": "c3321fb0", - "registry()": "7b103999", - "removeLiquidity(address,uint256,uint256)": "e38192e3", - "removeLiquidityReturnAndFee(address,uint256)": "69067d95", - "reserveAmplifiedBalance(address)": "2bd3c107", - "reserveBalance(address)": "dc8de379", - "reserveRatio()": "0c7d5cd8", - "reserveStakedBalance(address)": "005e319c", - "reserveTokenCount()": "9b99a8e2", - "reserveTokens(uint256)": "d031370b", - "reserveWeight(address)": "1cfab290", - "reserves(address)": "d66bd524", - "restoreRegistry()": "b4a176d3", - "restrictRegistryUpdate(bool)": "024c7ec7", - "secondaryReserveToken()": "dc75eb9a", - "setConversionFee(uint32)": "ecbca55d", - "setConversionWhitelist(address)": "4af80f0e", - "setDynamicFeeFactor(uint256)": "69d1354a", - "setMaxStakedBalances(uint256,uint256)": "46749468", - "setReserveStakedBalance(address,uint256)": "bf7da6ba", - "targetAmountAndFee(address,address,uint256)": "af94b8d8", - "token()": "fc0c546a", - "transferAnchorOwnership(address)": "67b6d57c", - "transferOwnership(address)": "f2fde38b", - "transferTokenOwnership(address)": "21e6b53d", - "updateRegistry()": "49d10b64", - "upgrade()": "d55ec697", - "version()": "54fd4d50", - "withdrawETH(address)": "690d8320", - "withdrawFromAnchor(address,address,uint256)": "395900d4", - "withdrawTokens(address,address,uint256)": "5e35359e" - } - }, - "userdoc": { - "methods": {} - } - } - }, - "solidity/contracts/converter/types/liquidity-pool-v2/LiquidityPoolV2ConverterAnchorFactory.sol": { - "LiquidityPoolV2ConverterAnchorFactory": { - "abi": [ - { - "constant": true, - "inputs": [], - "name": "converterType", - "outputs": [ - { - "name": "", - "type": "uint16" - } - ], - "payable": false, - "stateMutability": "pure", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_name", - "type": "string" - }, - { - "name": "_symbol", - "type": "string" - }, - { - "name": "_decimals", - "type": "uint8" - } - ], - "name": "createAnchor", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - } - ], - "devdoc": { - "methods": { - "converterType()": { - "details": "returns the converter type the factory is associated with\r ", - "return": "converter type\r" - }, - "createAnchor(string,string,uint8)": { - "details": "creates a new converter anchor with the given arguments and transfers\r the ownership to the caller\r ", - "params": { - "_decimals": "pool decimals\r ", - "_name": "pool name\r", - "_symbol": "pool symbol\r" - }, - "return": "new anchor\r" - } - } - }, - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "608060405234801561001057600080fd5b50612558806100206000396000f30060806040526004361061004b5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416633e8ff43f8114610050578063a9fd4a2a1461007c575b600080fd5b34801561005c57600080fd5b50610065610141565b6040805161ffff9092168252519081900360200190f35b34801561008857600080fd5b506040805160206004803580820135601f810184900484028501840190955284845261011894369492936024939284019190819084018382808284375050604080516020601f89358b018035918201839004830284018301909452808352979a9998810197919650918201945092508291508401838280828437509497505050923560ff16935061014692505050565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b600290565b6000808484846101546102dc565b60ff82166040820152606080825284519082015283518190602080830191608084019188019080838360005b83811015610198578181015183820152602001610180565b50505050905090810190601f1680156101c55780820380516001836020036101000a031916815260200191505b50838103825285518152855160209182019187019080838360005b838110156101f85781810151838201526020016101e0565b50505050905090810190601f1680156102255780820380516001836020036101000a031916815260200191505b5095505050505050604051809103906000f080158015610249573d6000803e3d6000fd5b50604080517ff2fde38b000000000000000000000000000000000000000000000000000000008152336004820152905191925073ffffffffffffffffffffffffffffffffffffffff83169163f2fde38b9160248082019260009290919082900301818387803b1580156102bb57600080fd5b505af11580156102cf573d6000803e3d6000fd5b5092979650505050505050565b604051612240806102ed83390190560060806040523480156200001157600080fd5b506040516200224038038062002240833981016040908152815160208301519183015160008054600160a060020a03191633178155918401805190949390930192909110620000c157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f4552525f494e56414c49445f4e414d4500000000000000000000000000000000604482015290519081900360640190fd5b81516000106200013257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f4552525f494e56414c49445f53594d424f4c0000000000000000000000000000604482015290519081900360640190fd5b8251620001479060029060208601906200017b565b5081516200015d9060039060208501906200017b565b506004805460ff191660ff9290921691909117905550620002209050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620001be57805160ff1916838001178555620001ee565b82800160010185558215620001ee579182015b82811115620001ee578251825591602001919060010190620001d1565b50620001fc92915062000200565b5090565b6200021d91905b80821115620001fc576000815560010162000207565b90565b61201080620002306000396000f300608060405260043610620000ad5763ffffffff60e060020a60003504166306fdde038114620000b2578063313ce56714620001425780635e35359e14620001705780636d3e313e146200019f57806379ba509714620002095780638da5cb5b146200022157806395d89b4114620002555780639cbf9e36146200026d578063c6c3bbe61462000285578063d4ee1d9014620002b2578063f2fde38b14620002ca578063f6b911bc14620002ee575b600080fd5b348015620000bf57600080fd5b50620000ca6200031b565b6040805160208082528351818301528351919283929083019185019080838360005b8381101562000106578181015183820152602001620000ec565b50505050905090810190601f168015620001345780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156200014f57600080fd5b506200015a620003aa565b6040805160ff9092168252519081900360200190f35b3480156200017d57600080fd5b506200019d600160a060020a0360043581169060243516604435620003b3565b005b348015620001ac57600080fd5b50620001b7620003f6565b60408051602080825283518183015283519192839290830191858101910280838360005b83811015620001f5578181015183820152602001620001db565b505050509050019250505060405180910390f35b3480156200021657600080fd5b506200019d6200045a565b3480156200022e57600080fd5b50620002396200052e565b60408051600160a060020a039092168252519081900360200190f35b3480156200026257600080fd5b50620000ca6200053d565b3480156200027a57600080fd5b50620002396200059b565b3480156200029257600080fd5b506200019d600160a060020a036004358116906024351660443562000882565b348015620002bf57600080fd5b50620002396200090e565b348015620002d757600080fd5b506200019d600160a060020a03600435166200091d565b348015620002fb57600080fd5b506200019d600160a060020a0360043581169060243516604435620009bd565b6002805460408051602060018416156101000260001901909316849004601f81018490048402820184019092528181529291830182828015620003a25780601f106200037657610100808354040283529160200191620003a2565b820191906000526020600020905b8154815290600101906020018083116200038457829003601f168201915b505050505081565b60045460ff1681565b620003bd62000a2b565b82620003c98162000a90565b82620003d58162000a90565b83620003e18162000af4565b620003ee86868662000b56565b505050505050565b606060058054806020026020016040519081016040528092919081815260200182805480156200045057602002820191906000526020600020905b8154600160a060020a0316815260019091019060200180831162000431575b5050505050905090565b600154600160a060020a03163314620004bd576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b60015460008054604051600160a060020a0393841693909116917f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91a3600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b600054600160a060020a031681565b6003805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015620003a25780601f106200037657610100808354040283529160200191620003a2565b60006060806000620005ac62000a2b565b600580541062000606576040805160e560020a62461bcd02815260206004820152601560248201527f4552525f4d41585f4c494d49545f524541434845440000000000000000000000604482015290519081900360640190fd5b60028054604080516020601f60001961010060018716150201909416859004938401819004810282018101909252828152620006a89390929091830182828015620006955780601f10620006695761010080835404028352916020019162000695565b820191906000526020600020905b8154815290600101906020018083116200067757829003601f168201915b5050600554600101925062000c12915050565b6003805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529396506200070e939291830182828015620006955780601f10620006695761010080835404028352916020019162000695565b6004549092508390839060ff166200072562000d8c565b60ff82166040820152606080825284519082015283518190602080830191608084019188019080838360005b838110156200076b57818101518382015260200162000751565b50505050905090810190601f168015620007995780820380516001836020036101000a031916815260200191505b50838103825285518152855160209182019187019080838360005b83811015620007ce578181015183820152602001620007b4565b50505050905090810190601f168015620007fc5780820380516001836020036101000a031916815260200191505b5095505050505050604051809103906000f08015801562000821573d6000803e3d6000fd5b50600580546001810182556000919091527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038316179055949350505050565b6200088c62000a2b565b82600160a060020a031663867904b483836040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050600060405180830381600087803b158015620008f057600080fd5b505af115801562000905573d6000803e3d6000fd5b50505050505050565b600154600160a060020a031681565b6200092762000a2b565b600054600160a060020a03828116911614156200098e576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f53414d455f4f574e4552000000000000000000000000000000000000604482015290519081900360640190fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b620009c762000a2b565b82600160a060020a031663a24835d183836040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050600060405180830381600087803b158015620008f057600080fd5b600054600160a060020a0316331462000a8e576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b565b600160a060020a038116151562000af1576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b50565b600160a060020a03811630141562000af1576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f414444524553535f49535f53454c4600000000000000000000000000604482015290519081900360640190fd5b604080517f7472616e7366657228616464726573732c75696e74323536290000000000000081528151908190036019018120600160a060020a038516602483015260448083018590528351808403909101815260649092019092526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009093169290921790915262000c0d90849062000cfa565b505050565b606082827f30000000000000000000000000000000000000000000000000000000000000007f01000000000000000000000000000000000000000000000000000000000000009004016040516020018083805190602001908083835b6020831062000c8f5780518252601f19909201916020918201910162000c6e565b6001836020036101000a0380198251168184511680821785525050505050509050018260ff1660ff167f010000000000000000000000000000000000000000000000000000000000000002815260010192505050604051602081830303815290604052905092915050565b62000d0462000d9d565b602060405190810160405280600181525090506020818351602085016000875af180151562000d3257600080fd5b508051151562000c0d576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f5452414e534645525f4641494c454400000000000000000000000000604482015290519081900360640190fd5b6040516112288062000dbd83390190565b6020604051908101604052806001906020820280388339509192915050560060806040526008805460ff191660011790553480156200001e57600080fd5b506040516200122838038062001228833981016040908152815160208301519183015160008054600160a060020a0319163317815591840180519094939093019290918491849184918110620000d557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f4552525f494e56414c49445f4e414d4500000000000000000000000000000000604482015290519081900360640190fd5b82516000106200014657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f4552525f494e56414c49445f53594d424f4c0000000000000000000000000000604482015290519081900360640190fd5b83516200015b906002906020870190620001a8565b50825162000171906003906020860190620001a8565b506004805460ff191660ff9390931692909217909155600581905533600090815260066020526040902055506200024d9350505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620001eb57805160ff19168380011785556200021b565b828001600101855582156200021b579182015b828111156200021b578251825591602001919060010190620001fe565b50620002299291506200022d565b5090565b6200024a91905b8082111562000229576000815560010162000234565b90565b610fcb806200025d6000396000f3006080604052600436106101065763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde03811461010b578063095ea7b3146101955780631608f18f146101cd57806318160ddd146101e957806323b872dd14610210578063313ce5671461023a57806354fd4d50146102655780635e35359e1461029157806370a08231146102bb57806379ba5097146102dc578063867904b4146102f15780638da5cb5b1461031557806395d89b4114610346578063a24835d11461035b578063a9059cbb1461037f578063bef97c87146103a3578063d4ee1d90146103b8578063dd62ed3e146103cd578063f2fde38b146103f4575b600080fd5b34801561011757600080fd5b50610120610415565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561015a578181015183820152602001610142565b50505050905090810190601f1680156101875780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101a157600080fd5b506101b9600160a060020a03600435166024356104a0565b604080519115158252519081900360200190f35b3480156101d957600080fd5b506101e76004351515610598565b005b3480156101f557600080fd5b506101fe6105b2565b60408051918252519081900360200190f35b34801561021c57600080fd5b506101b9600160a060020a03600435811690602435166044356105b8565b34801561024657600080fd5b5061024f6105df565b6040805160ff9092168252519081900360200190f35b34801561027157600080fd5b5061027a6105e8565b6040805161ffff9092168252519081900360200190f35b34801561029d57600080fd5b506101e7600160a060020a03600435811690602435166044356105ed565b3480156102c757600080fd5b506101fe600160a060020a0360043516610626565b3480156102e857600080fd5b506101e7610638565b3480156102fd57600080fd5b506101e7600160a060020a036004351660243561070b565b34801561032157600080fd5b5061032a6107ed565b60408051600160a060020a039092168252519081900360200190f35b34801561035257600080fd5b506101206107fc565b34801561036757600080fd5b506101e7600160a060020a0360043516602435610857565b34801561038b57600080fd5b506101b9600160a060020a036004351660243561091d565b3480156103af57600080fd5b506101b9610942565b3480156103c457600080fd5b5061032a61094b565b3480156103d957600080fd5b506101fe600160a060020a036004358116906024351661095a565b34801561040057600080fd5b506101e7600160a060020a0360043516610977565b6002805460408051602060018416156101000260001901909316849004601f810184900484028201840190925281815292918301828280156104985780601f1061046d57610100808354040283529160200191610498565b820191906000526020600020905b81548152906001019060200180831161047b57829003601f168201915b505050505081565b6000826104ac81610a14565b8215806104da5750336000908152600760209081526040808320600160a060020a0388168452909152902054155b1515610530576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f494e56414c49445f414d4f554e540000000000000000000000000000604482015290519081900360640190fd5b336000818152600760209081526040808320600160a060020a03891680855290835292819020879055805187815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060019392505050565b6105a0610a77565b6008805460ff19169115919091179055565b60055481565b60006105c2610adb565b6105cd848484610b37565b15156105d557fe5b5060019392505050565b60045460ff1681565b600481565b6105f5610a77565b826105ff81610a14565b8261060981610a14565b8361061381610c48565b61061e868686610ca9565b505050505050565b60066020526000908152604090205481565b600154600160a060020a0316331461069a576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b60015460008054604051600160a060020a0393841693909116917f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91a3600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b610713610a77565b8161071d81610a14565b8261072781610c48565b60055461073a908463ffffffff610d6316565b600555600160a060020a038416600090815260066020526040902054610766908463ffffffff610d6316565b600160a060020a03851660009081526006602090815260409182902092909255805185815290517f9386c90217c323f58030f9dadcbc938f807a940f4ff41cd4cead9562f5da7dc3929181900390910190a1604080518481529051600160a060020a03861691600091600080516020610f808339815191529181900360200190a350505050565b600054600160a060020a031681565b6003805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156104985780601f1061046d57610100808354040283529160200191610498565b61085f610a77565b600160a060020a038216600090815260066020526040902054610888908263ffffffff610dc716565b600160a060020a0383166000908152600660205260409020556005546108b4908263ffffffff610dc716565b600555604080518281529051600091600160a060020a03851691600080516020610f808339815191529181900360200190a36040805182815290517f9a1b418bc061a5d80270261562e6986a35d995f8051145f277be16103abd34539181900360200190a15050565b6000610927610adb565b6109318383610e27565b151561093957fe5b50600192915050565b60085460ff1681565b600154600160a060020a031681565b600760209081526000928352604080842090915290825290205481565b61097f610a77565b600054600160a060020a03828116911614156109e5576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f53414d455f4f574e4552000000000000000000000000000000000000604482015290519081900360640190fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600160a060020a0381161515610a74576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b50565b600054600160a060020a03163314610ad9576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b565b60085460ff161515610ad9576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f5452414e53464552535f44495341424c454400000000000000000000604482015290519081900360640190fd5b600083610b4381610a14565b83610b4d81610a14565b600160a060020a0386166000908152600760209081526040808320338452909152902054610b81908563ffffffff610dc716565b600160a060020a038716600081815260076020908152604080832033845282528083209490945591815260069091522054610bc2908563ffffffff610dc716565b600160a060020a038088166000908152600660205260408082209390935590871681522054610bf7908563ffffffff610d6316565b600160a060020a0380871660008181526006602090815260409182902094909455805188815290519193928a1692600080516020610f8083398151915292918290030190a350600195945050505050565b600160a060020a038116301415610a74576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f414444524553535f49535f53454c4600000000000000000000000000604482015290519081900360640190fd5b604080517f7472616e7366657228616464726573732c75696e74323536290000000000000081528151908190036019018120600160a060020a038516602483015260448083018590528351808403909101815260649092019092526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152610d5e908490610ed2565b505050565b600082820183811015610dc0576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b9392505050565b600081831015610e21576040805160e560020a62461bcd02815260206004820152600d60248201527f4552525f554e444552464c4f5700000000000000000000000000000000000000604482015290519081900360640190fd5b50900390565b600082610e3381610a14565b33600090815260066020526040902054610e53908463ffffffff610dc716565b3360009081526006602052604080822092909255600160a060020a03861681522054610e85908463ffffffff610d6316565b600160a060020a038516600081815260066020908152604091829020939093558051868152905191923392600080516020610f808339815191529281900390910190a35060019392505050565b610eda610f60565b602060405190810160405280600181525090506020818351602085016000875af1801515610f0757600080fd5b5080511515610d5e576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f5452414e534645525f4641494c454400000000000000000000000000604482015290519081900360640190fd5b60206040519081016040528060019060208202803883395091929150505600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a7230582031b56aebc8336b547b3e1346f50c2f44f70def554ed4cba4c81bcf2e092d047f0029a165627a7a72305820e0ee560589eda5987d8f172ea60698bfbffc21529ee8046ab37c5e3348e88bcd0029a165627a7a723058208e1aa3c10d424a8fc6793ea5434eefc7ebfa7cb5ea0f07e6e74e8ad25b80d7f70029", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2558 DUP1 PUSH2 0x20 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x4B JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x3E8FF43F DUP2 EQ PUSH2 0x50 JUMPI DUP1 PUSH4 0xA9FD4A2A EQ PUSH2 0x7C JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x65 PUSH2 0x141 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0xFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x88 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD PUSH1 0x1F DUP2 ADD DUP5 SWAP1 DIV DUP5 MUL DUP6 ADD DUP5 ADD SWAP1 SWAP6 MSTORE DUP5 DUP5 MSTORE PUSH2 0x118 SWAP5 CALLDATASIZE SWAP5 SWAP3 SWAP4 PUSH1 0x24 SWAP4 SWAP3 DUP5 ADD SWAP2 SWAP1 DUP2 SWAP1 DUP5 ADD DUP4 DUP3 DUP1 DUP3 DUP5 CALLDATACOPY POP POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x1F DUP10 CALLDATALOAD DUP12 ADD DUP1 CALLDATALOAD SWAP2 DUP3 ADD DUP4 SWAP1 DIV DUP4 MUL DUP5 ADD DUP4 ADD SWAP1 SWAP5 MSTORE DUP1 DUP4 MSTORE SWAP8 SWAP11 SWAP10 SWAP9 DUP2 ADD SWAP8 SWAP2 SWAP7 POP SWAP2 DUP3 ADD SWAP5 POP SWAP3 POP DUP3 SWAP2 POP DUP5 ADD DUP4 DUP3 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP POP POP SWAP3 CALLDATALOAD PUSH1 0xFF AND SWAP4 POP PUSH2 0x146 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH1 0x2 SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP5 DUP5 DUP5 PUSH2 0x154 PUSH2 0x2DC JUMP JUMPDEST PUSH1 0xFF DUP3 AND PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP1 DUP3 MSTORE DUP5 MLOAD SWAP1 DUP3 ADD MSTORE DUP4 MLOAD DUP2 SWAP1 PUSH1 0x20 DUP1 DUP4 ADD SWAP2 PUSH1 0x80 DUP5 ADD SWAP2 DUP9 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x198 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x180 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x1C5 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP DUP4 DUP2 SUB DUP3 MSTORE DUP6 MLOAD DUP2 MSTORE DUP6 MLOAD PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 DUP8 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1F8 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x1E0 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x225 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP6 POP POP POP POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 PUSH1 0x0 CREATE DUP1 ISZERO DUP1 ISZERO PUSH2 0x249 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH32 0xF2FDE38B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD SWAP2 SWAP3 POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND SWAP2 PUSH4 0xF2FDE38B SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2BB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2CF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP SWAP3 SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2240 DUP1 PUSH2 0x2ED DUP4 CODECOPY ADD SWAP1 JUMP STOP PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x2240 CODESIZE SUB DUP1 PUSH3 0x2240 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 SWAP1 DUP2 MSTORE DUP2 MLOAD PUSH1 0x20 DUP4 ADD MLOAD SWAP2 DUP4 ADD MLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND CALLER OR DUP2 SSTORE SWAP2 DUP5 ADD DUP1 MLOAD SWAP1 SWAP5 SWAP4 SWAP1 SWAP4 ADD SWAP3 SWAP1 SWAP2 LT PUSH3 0xC1 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4E414D4500000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x0 LT PUSH3 0x132 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F53594D424F4C0000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP3 MLOAD PUSH3 0x147 SWAP1 PUSH1 0x2 SWAP1 PUSH1 0x20 DUP7 ADD SWAP1 PUSH3 0x17B JUMP JUMPDEST POP DUP2 MLOAD PUSH3 0x15D SWAP1 PUSH1 0x3 SWAP1 PUSH1 0x20 DUP6 ADD SWAP1 PUSH3 0x17B JUMP JUMPDEST POP PUSH1 0x4 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0xFF SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE POP PUSH3 0x220 SWAP1 POP JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH1 0x1F LT PUSH3 0x1BE JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH3 0x1EE JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH3 0x1EE JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH3 0x1EE JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH3 0x1D1 JUMP JUMPDEST POP PUSH3 0x1FC SWAP3 SWAP2 POP PUSH3 0x200 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH3 0x21D SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH3 0x1FC JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH3 0x207 JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH2 0x2010 DUP1 PUSH3 0x230 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH3 0xAD JUMPI PUSH4 0xFFFFFFFF PUSH1 0xE0 PUSH1 0x2 EXP PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x6FDDE03 DUP2 EQ PUSH3 0xB2 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH3 0x142 JUMPI DUP1 PUSH4 0x5E35359E EQ PUSH3 0x170 JUMPI DUP1 PUSH4 0x6D3E313E EQ PUSH3 0x19F JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH3 0x209 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH3 0x221 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH3 0x255 JUMPI DUP1 PUSH4 0x9CBF9E36 EQ PUSH3 0x26D JUMPI DUP1 PUSH4 0xC6C3BBE6 EQ PUSH3 0x285 JUMPI DUP1 PUSH4 0xD4EE1D90 EQ PUSH3 0x2B2 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH3 0x2CA JUMPI DUP1 PUSH4 0xF6B911BC EQ PUSH3 0x2EE JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0xBF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0xCA PUSH3 0x31B JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP4 MLOAD DUP2 DUP4 ADD MSTORE DUP4 MLOAD SWAP2 SWAP3 DUP4 SWAP3 SWAP1 DUP4 ADD SWAP2 DUP6 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH3 0x106 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH3 0xEC JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH3 0x134 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0x14F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x15A PUSH3 0x3AA JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0x17D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x19D PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH3 0x3B3 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0x1AC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x1B7 PUSH3 0x3F6 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP4 MLOAD DUP2 DUP4 ADD MSTORE DUP4 MLOAD SWAP2 SWAP3 DUP4 SWAP3 SWAP1 DUP4 ADD SWAP2 DUP6 DUP2 ADD SWAP2 MUL DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH3 0x1F5 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH3 0x1DB JUMP JUMPDEST POP POP POP POP SWAP1 POP ADD SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0x216 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x19D PUSH3 0x45A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0x22E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x239 PUSH3 0x52E JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0x262 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0xCA PUSH3 0x53D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0x27A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x239 PUSH3 0x59B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0x292 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x19D PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH3 0x882 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0x2BF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x239 PUSH3 0x90E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0x2D7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x19D PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH3 0x91D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0x2FB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x19D PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH3 0x9BD JUMP JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x1 DUP5 AND ISZERO PUSH2 0x100 MUL PUSH1 0x0 NOT ADD SWAP1 SWAP4 AND DUP5 SWAP1 DIV PUSH1 0x1F DUP2 ADD DUP5 SWAP1 DIV DUP5 MUL DUP3 ADD DUP5 ADD SWAP1 SWAP3 MSTORE DUP2 DUP2 MSTORE SWAP3 SWAP2 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH3 0x3A2 JUMPI DUP1 PUSH1 0x1F LT PUSH3 0x376 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH3 0x3A2 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH3 0x384 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH3 0x3BD PUSH3 0xA2B JUMP JUMPDEST DUP3 PUSH3 0x3C9 DUP2 PUSH3 0xA90 JUMP JUMPDEST DUP3 PUSH3 0x3D5 DUP2 PUSH3 0xA90 JUMP JUMPDEST DUP4 PUSH3 0x3E1 DUP2 PUSH3 0xAF4 JUMP JUMPDEST PUSH3 0x3EE DUP7 DUP7 DUP7 PUSH3 0xB56 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x5 DUP1 SLOAD DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD DUP1 ISZERO PUSH3 0x450 JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH3 0x431 JUMPI JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH3 0x4BD JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND SWAP4 SWAP1 SWAP2 AND SWAP2 PUSH32 0x343765429AEA5A34B3FF6A3785A98A5ABB2597ACA87BFBB58632C173D585373A SWAP2 LOG3 PUSH1 0x1 DUP1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND OR SWAP1 SWAP2 SSTORE AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x2 PUSH1 0x1 DUP6 AND ISZERO PUSH2 0x100 MUL PUSH1 0x0 NOT ADD SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 DIV PUSH1 0x1F DUP2 ADD DUP5 SWAP1 DIV DUP5 MUL DUP3 ADD DUP5 ADD SWAP1 SWAP3 MSTORE DUP2 DUP2 MSTORE SWAP3 SWAP2 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH3 0x3A2 JUMPI DUP1 PUSH1 0x1F LT PUSH3 0x376 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH3 0x3A2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP1 PUSH1 0x0 PUSH3 0x5AC PUSH3 0xA2B JUMP JUMPDEST PUSH1 0x5 DUP1 SLOAD LT PUSH3 0x606 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4D41585F4C494D49545F524541434845440000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x1F PUSH1 0x0 NOT PUSH2 0x100 PUSH1 0x1 DUP8 AND ISZERO MUL ADD SWAP1 SWAP5 AND DUP6 SWAP1 DIV SWAP4 DUP5 ADD DUP2 SWAP1 DIV DUP2 MUL DUP3 ADD DUP2 ADD SWAP1 SWAP3 MSTORE DUP3 DUP2 MSTORE PUSH3 0x6A8 SWAP4 SWAP1 SWAP3 SWAP1 SWAP2 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH3 0x695 JUMPI DUP1 PUSH1 0x1F LT PUSH3 0x669 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH3 0x695 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH3 0x677 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP PUSH1 0x5 SLOAD PUSH1 0x1 ADD SWAP3 POP PUSH3 0xC12 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x2 PUSH1 0x1 DUP6 AND ISZERO PUSH2 0x100 MUL PUSH1 0x0 NOT ADD SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 DIV PUSH1 0x1F DUP2 ADD DUP5 SWAP1 DIV DUP5 MUL DUP3 ADD DUP5 ADD SWAP1 SWAP3 MSTORE DUP2 DUP2 MSTORE SWAP4 SWAP7 POP PUSH3 0x70E SWAP4 SWAP3 SWAP2 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH3 0x695 JUMPI DUP1 PUSH1 0x1F LT PUSH3 0x669 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH3 0x695 JUMP JUMPDEST PUSH1 0x4 SLOAD SWAP1 SWAP3 POP DUP4 SWAP1 DUP4 SWAP1 PUSH1 0xFF AND PUSH3 0x725 PUSH3 0xD8C JUMP JUMPDEST PUSH1 0xFF DUP3 AND PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP1 DUP3 MSTORE DUP5 MLOAD SWAP1 DUP3 ADD MSTORE DUP4 MLOAD DUP2 SWAP1 PUSH1 0x20 DUP1 DUP4 ADD SWAP2 PUSH1 0x80 DUP5 ADD SWAP2 DUP9 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH3 0x76B JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH3 0x751 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH3 0x799 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP DUP4 DUP2 SUB DUP3 MSTORE DUP6 MLOAD DUP2 MSTORE DUP6 MLOAD PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 DUP8 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH3 0x7CE JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH3 0x7B4 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH3 0x7FC JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP6 POP POP POP POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 PUSH1 0x0 CREATE DUP1 ISZERO DUP1 ISZERO PUSH3 0x821 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH1 0x5 DUP1 SLOAD PUSH1 0x1 DUP2 ADD DUP3 SSTORE PUSH1 0x0 SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0x36B6384B5ECA791C62761152D0C79BB0604C104A5FB6F4EB0703F3154BB3DB0 ADD DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 AND OR SWAP1 SSTORE SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH3 0x88C PUSH3 0xA2B JUMP JUMPDEST DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x867904B4 DUP4 DUP4 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH3 0x8F0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH3 0x905 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH3 0x927 PUSH3 0xA2B JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ ISZERO PUSH3 0x98E JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F4F574E4552000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH3 0x9C7 PUSH3 0xA2B JUMP JUMPDEST DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xA24835D1 DUP4 DUP4 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH3 0x8F0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH3 0xA8E JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH3 0xAF1 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ADDRESS EQ ISZERO PUSH3 0xAF1 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F414444524553535F49535F53454C4600000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x7472616E7366657228616464726573732C75696E743235362900000000000000 DUP2 MSTORE DUP2 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x19 ADD DUP2 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x64 SWAP1 SWAP3 ADD SWAP1 SWAP3 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE PUSH3 0xC0D SWAP1 DUP5 SWAP1 PUSH3 0xCFA JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP3 DUP3 PUSH32 0x3000000000000000000000000000000000000000000000000000000000000000 PUSH32 0x100000000000000000000000000000000000000000000000000000000000000 SWAP1 DIV ADD PUSH1 0x40 MLOAD PUSH1 0x20 ADD DUP1 DUP4 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH3 0xC8F JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH3 0xC6E JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD DUP3 PUSH1 0xFF AND PUSH1 0xFF AND PUSH32 0x100000000000000000000000000000000000000000000000000000000000000 MUL DUP2 MSTORE PUSH1 0x1 ADD SWAP3 POP POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH3 0xD04 PUSH3 0xD9D JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE POP SWAP1 POP PUSH1 0x20 DUP2 DUP4 MLOAD PUSH1 0x20 DUP6 ADD PUSH1 0x0 DUP8 GAS CALL DUP1 ISZERO ISZERO PUSH3 0xD32 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD ISZERO ISZERO PUSH3 0xC0D JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5452414E534645525F4641494C454400000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1228 DUP1 PUSH3 0xDBD DUP4 CODECOPY ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 SWAP1 PUSH1 0x20 DUP3 MUL DUP1 CODESIZE DUP4 CODECOPY POP SWAP2 SWAP3 SWAP2 POP POP JUMP STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x8 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE CALLVALUE DUP1 ISZERO PUSH3 0x1E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x1228 CODESIZE SUB DUP1 PUSH3 0x1228 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 SWAP1 DUP2 MSTORE DUP2 MLOAD PUSH1 0x20 DUP4 ADD MLOAD SWAP2 DUP4 ADD MLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND CALLER OR DUP2 SSTORE SWAP2 DUP5 ADD DUP1 MLOAD SWAP1 SWAP5 SWAP4 SWAP1 SWAP4 ADD SWAP3 SWAP1 SWAP2 DUP5 SWAP2 DUP5 SWAP2 DUP5 SWAP2 DUP2 LT PUSH3 0xD5 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4E414D4500000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP3 MLOAD PUSH1 0x0 LT PUSH3 0x146 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F53594D424F4C0000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP4 MLOAD PUSH3 0x15B SWAP1 PUSH1 0x2 SWAP1 PUSH1 0x20 DUP8 ADD SWAP1 PUSH3 0x1A8 JUMP JUMPDEST POP DUP3 MLOAD PUSH3 0x171 SWAP1 PUSH1 0x3 SWAP1 PUSH1 0x20 DUP7 ADD SWAP1 PUSH3 0x1A8 JUMP JUMPDEST POP PUSH1 0x4 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0xFF SWAP4 SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 SSTORE PUSH1 0x5 DUP2 SWAP1 SSTORE CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE POP PUSH3 0x24D SWAP4 POP POP POP POP JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH1 0x1F LT PUSH3 0x1EB JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH3 0x21B JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH3 0x21B JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH3 0x21B JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH3 0x1FE JUMP JUMPDEST POP PUSH3 0x229 SWAP3 SWAP2 POP PUSH3 0x22D JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH3 0x24A SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH3 0x229 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH3 0x234 JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH2 0xFCB DUP1 PUSH3 0x25D PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x106 JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x6FDDE03 DUP2 EQ PUSH2 0x10B JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x195 JUMPI DUP1 PUSH4 0x1608F18F EQ PUSH2 0x1CD JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x1E9 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x210 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x23A JUMPI DUP1 PUSH4 0x54FD4D50 EQ PUSH2 0x265 JUMPI DUP1 PUSH4 0x5E35359E EQ PUSH2 0x291 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x2BB JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x2DC JUMPI DUP1 PUSH4 0x867904B4 EQ PUSH2 0x2F1 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x315 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x346 JUMPI DUP1 PUSH4 0xA24835D1 EQ PUSH2 0x35B JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x37F JUMPI DUP1 PUSH4 0xBEF97C87 EQ PUSH2 0x3A3 JUMPI DUP1 PUSH4 0xD4EE1D90 EQ PUSH2 0x3B8 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x3CD JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x3F4 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x117 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x120 PUSH2 0x415 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP4 MLOAD DUP2 DUP4 ADD MSTORE DUP4 MLOAD SWAP2 SWAP3 DUP4 SWAP3 SWAP1 DUP4 ADD SWAP2 DUP6 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x15A JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x142 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x187 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1A1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B9 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x4A0 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1D9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH1 0x4 CALLDATALOAD ISZERO ISZERO PUSH2 0x598 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1FE PUSH2 0x5B2 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x21C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B9 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x5B8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x246 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x24F PUSH2 0x5DF JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x271 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x27A PUSH2 0x5E8 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0xFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x29D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x5ED JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2C7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1FE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x626 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2E8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH2 0x638 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2FD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x70B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x321 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x32A PUSH2 0x7ED JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x352 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x120 PUSH2 0x7FC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x367 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x857 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x38B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B9 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x91D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3AF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B9 PUSH2 0x942 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3C4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x32A PUSH2 0x94B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3D9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1FE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH2 0x95A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x400 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x977 JUMP JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x1 DUP5 AND ISZERO PUSH2 0x100 MUL PUSH1 0x0 NOT ADD SWAP1 SWAP4 AND DUP5 SWAP1 DIV PUSH1 0x1F DUP2 ADD DUP5 SWAP1 DIV DUP5 MUL DUP3 ADD DUP5 ADD SWAP1 SWAP3 MSTORE DUP2 DUP2 MSTORE SWAP3 SWAP2 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x498 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x46D JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x498 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x47B JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x4AC DUP2 PUSH2 0xA14 JUMP JUMPDEST DUP3 ISZERO DUP1 PUSH2 0x4DA JUMPI POP CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x530 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F414D4F554E540000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST CALLER PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP10 AND DUP1 DUP6 MSTORE SWAP1 DUP4 MSTORE SWAP3 DUP2 SWAP1 KECCAK256 DUP8 SWAP1 SSTORE DUP1 MLOAD DUP8 DUP2 MSTORE SWAP1 MLOAD SWAP3 SWAP4 SWAP3 PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP3 SWAP2 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x5A0 PUSH2 0xA77 JUMP JUMPDEST PUSH1 0x8 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP2 ISZERO SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x5 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5C2 PUSH2 0xADB JUMP JUMPDEST PUSH2 0x5CD DUP5 DUP5 DUP5 PUSH2 0xB37 JUMP JUMPDEST ISZERO ISZERO PUSH2 0x5D5 JUMPI INVALID JUMPDEST POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x4 DUP2 JUMP JUMPDEST PUSH2 0x5F5 PUSH2 0xA77 JUMP JUMPDEST DUP3 PUSH2 0x5FF DUP2 PUSH2 0xA14 JUMP JUMPDEST DUP3 PUSH2 0x609 DUP2 PUSH2 0xA14 JUMP JUMPDEST DUP4 PUSH2 0x613 DUP2 PUSH2 0xC48 JUMP JUMPDEST PUSH2 0x61E DUP7 DUP7 DUP7 PUSH2 0xCA9 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x69A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND SWAP4 SWAP1 SWAP2 AND SWAP2 PUSH32 0x343765429AEA5A34B3FF6A3785A98A5ABB2597ACA87BFBB58632C173D585373A SWAP2 LOG3 PUSH1 0x1 DUP1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND OR SWAP1 SWAP2 SSTORE AND SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x713 PUSH2 0xA77 JUMP JUMPDEST DUP2 PUSH2 0x71D DUP2 PUSH2 0xA14 JUMP JUMPDEST DUP3 PUSH2 0x727 DUP2 PUSH2 0xC48 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH2 0x73A SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0xD63 AND JUMP JUMPDEST PUSH1 0x5 SSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x766 SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0xD63 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SWAP3 SWAP1 SWAP3 SSTORE DUP1 MLOAD DUP6 DUP2 MSTORE SWAP1 MLOAD PUSH32 0x9386C90217C323F58030F9DADCBC938F807A940F4FF41CD4CEAD9562F5DA7DC3 SWAP3 SWAP2 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG1 PUSH1 0x40 DUP1 MLOAD DUP5 DUP2 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND SWAP2 PUSH1 0x0 SWAP2 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xF80 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP2 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 LOG3 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x2 PUSH1 0x1 DUP6 AND ISZERO PUSH2 0x100 MUL PUSH1 0x0 NOT ADD SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 DIV PUSH1 0x1F DUP2 ADD DUP5 SWAP1 DIV DUP5 MUL DUP3 ADD DUP5 ADD SWAP1 SWAP3 MSTORE DUP2 DUP2 MSTORE SWAP3 SWAP2 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x498 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x46D JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x498 JUMP JUMPDEST PUSH2 0x85F PUSH2 0xA77 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x888 SWAP1 DUP3 PUSH4 0xFFFFFFFF PUSH2 0xDC7 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE PUSH1 0x5 SLOAD PUSH2 0x8B4 SWAP1 DUP3 PUSH4 0xFFFFFFFF PUSH2 0xDC7 AND JUMP JUMPDEST PUSH1 0x5 SSTORE PUSH1 0x40 DUP1 MLOAD DUP3 DUP2 MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND SWAP2 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xF80 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP2 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 LOG3 PUSH1 0x40 DUP1 MLOAD DUP3 DUP2 MSTORE SWAP1 MLOAD PUSH32 0x9A1B418BC061A5D80270261562E6986A35D995F8051145F277BE16103ABD3453 SWAP2 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x927 PUSH2 0xADB JUMP JUMPDEST PUSH2 0x931 DUP4 DUP4 PUSH2 0xE27 JUMP JUMPDEST ISZERO ISZERO PUSH2 0x939 JUMPI INVALID JUMPDEST POP PUSH1 0x1 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x97F PUSH2 0xA77 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x9E5 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F4F574E4552000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0xA74 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0xAD9 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0xFF AND ISZERO ISZERO PUSH2 0xAD9 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5452414E53464552535F44495341424C454400000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP4 PUSH2 0xB43 DUP2 PUSH2 0xA14 JUMP JUMPDEST DUP4 PUSH2 0xB4D DUP2 PUSH2 0xA14 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH2 0xB81 SWAP1 DUP6 PUSH4 0xFFFFFFFF PUSH2 0xDC7 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE DUP3 MSTORE DUP1 DUP4 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE SWAP2 DUP2 MSTORE PUSH1 0x6 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD PUSH2 0xBC2 SWAP1 DUP6 PUSH4 0xFFFFFFFF PUSH2 0xDC7 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE SWAP1 DUP8 AND DUP2 MSTORE KECCAK256 SLOAD PUSH2 0xBF7 SWAP1 DUP6 PUSH4 0xFFFFFFFF PUSH2 0xD63 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP8 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE DUP1 MLOAD DUP9 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP4 SWAP3 DUP11 AND SWAP3 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xF80 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP3 SWAP2 DUP3 SWAP1 SUB ADD SWAP1 LOG3 POP PUSH1 0x1 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ADDRESS EQ ISZERO PUSH2 0xA74 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F414444524553535F49535F53454C4600000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x7472616E7366657228616464726573732C75696E743235362900000000000000 DUP2 MSTORE DUP2 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x19 ADD DUP2 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x64 SWAP1 SWAP3 ADD SWAP1 SWAP3 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE PUSH2 0xD5E SWAP1 DUP5 SWAP1 PUSH2 0xED2 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 ADD DUP4 DUP2 LT ISZERO PUSH2 0xDC0 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT ISZERO PUSH2 0xE21 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F554E444552464C4F5700000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP SWAP1 SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0xE33 DUP2 PUSH2 0xA14 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0xE53 SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0xDC7 AND JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP3 SWAP1 SWAP3 SSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND DUP2 MSTORE KECCAK256 SLOAD PUSH2 0xE85 SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0xD63 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE DUP1 MLOAD DUP7 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP3 CALLER SWAP3 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xF80 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0xEDA PUSH2 0xF60 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE POP SWAP1 POP PUSH1 0x20 DUP2 DUP4 MLOAD PUSH1 0x20 DUP6 ADD PUSH1 0x0 DUP8 GAS CALL DUP1 ISZERO ISZERO PUSH2 0xF07 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD ISZERO ISZERO PUSH2 0xD5E JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5452414E534645525F4641494C454400000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 SWAP1 PUSH1 0x20 DUP3 MUL DUP1 CODESIZE DUP4 CODECOPY POP SWAP2 SWAP3 SWAP2 POP POP JUMP STOP 0xdd CALLCODE MSTORE 0xad SHL 0xe2 0xc8 SWAP12 PUSH10 0xC2B068FC378DAA952BA7 CALL PUSH4 0xC4A11628 0xf5 GAS 0x4d 0xf5 0x23 0xb3 0xef LOG1 PUSH6 0x627A7A723058 KECCAK256 BALANCE 0xb5 PUSH11 0xEBC8336B547B3E1346F50C 0x2f DIFFICULTY 0xf7 0xd 0xef SSTORE 0x4e 0xd4 0xcb LOG4 0xc8 SHL 0xcf 0x2e MULMOD 0x2d DIV PUSH32 0x29A165627A7A72305820E0EE560589EDA5987D8F172EA60698BFBFFC21529E 0xe8 DIV PUSH11 0xB37C5E3348E88BCD0029A1 PUSH6 0x627A7A723058 KECCAK256 DUP15 BYTE LOG3 0xc1 0xd TIMESTAMP 0x4a DUP16 0xc6 PUSH26 0x3EA5434EEFC7EBFA7CB5EA0F07E6E74E8AD25B80D7F700290000 ", - "sourceMap": "184:897:26:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;184:897:26;;;;;;;" - }, - "deployedBytecode": { - "linkReferences": {}, - "object": "60806040526004361061004b5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416633e8ff43f8114610050578063a9fd4a2a1461007c575b600080fd5b34801561005c57600080fd5b50610065610141565b6040805161ffff9092168252519081900360200190f35b34801561008857600080fd5b506040805160206004803580820135601f810184900484028501840190955284845261011894369492936024939284019190819084018382808284375050604080516020601f89358b018035918201839004830284018301909452808352979a9998810197919650918201945092508291508401838280828437509497505050923560ff16935061014692505050565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b600290565b6000808484846101546102dc565b60ff82166040820152606080825284519082015283518190602080830191608084019188019080838360005b83811015610198578181015183820152602001610180565b50505050905090810190601f1680156101c55780820380516001836020036101000a031916815260200191505b50838103825285518152855160209182019187019080838360005b838110156101f85781810151838201526020016101e0565b50505050905090810190601f1680156102255780820380516001836020036101000a031916815260200191505b5095505050505050604051809103906000f080158015610249573d6000803e3d6000fd5b50604080517ff2fde38b000000000000000000000000000000000000000000000000000000008152336004820152905191925073ffffffffffffffffffffffffffffffffffffffff83169163f2fde38b9160248082019260009290919082900301818387803b1580156102bb57600080fd5b505af11580156102cf573d6000803e3d6000fd5b5092979650505050505050565b604051612240806102ed83390190560060806040523480156200001157600080fd5b506040516200224038038062002240833981016040908152815160208301519183015160008054600160a060020a03191633178155918401805190949390930192909110620000c157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f4552525f494e56414c49445f4e414d4500000000000000000000000000000000604482015290519081900360640190fd5b81516000106200013257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f4552525f494e56414c49445f53594d424f4c0000000000000000000000000000604482015290519081900360640190fd5b8251620001479060029060208601906200017b565b5081516200015d9060039060208501906200017b565b506004805460ff191660ff9290921691909117905550620002209050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620001be57805160ff1916838001178555620001ee565b82800160010185558215620001ee579182015b82811115620001ee578251825591602001919060010190620001d1565b50620001fc92915062000200565b5090565b6200021d91905b80821115620001fc576000815560010162000207565b90565b61201080620002306000396000f300608060405260043610620000ad5763ffffffff60e060020a60003504166306fdde038114620000b2578063313ce56714620001425780635e35359e14620001705780636d3e313e146200019f57806379ba509714620002095780638da5cb5b146200022157806395d89b4114620002555780639cbf9e36146200026d578063c6c3bbe61462000285578063d4ee1d9014620002b2578063f2fde38b14620002ca578063f6b911bc14620002ee575b600080fd5b348015620000bf57600080fd5b50620000ca6200031b565b6040805160208082528351818301528351919283929083019185019080838360005b8381101562000106578181015183820152602001620000ec565b50505050905090810190601f168015620001345780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156200014f57600080fd5b506200015a620003aa565b6040805160ff9092168252519081900360200190f35b3480156200017d57600080fd5b506200019d600160a060020a0360043581169060243516604435620003b3565b005b348015620001ac57600080fd5b50620001b7620003f6565b60408051602080825283518183015283519192839290830191858101910280838360005b83811015620001f5578181015183820152602001620001db565b505050509050019250505060405180910390f35b3480156200021657600080fd5b506200019d6200045a565b3480156200022e57600080fd5b50620002396200052e565b60408051600160a060020a039092168252519081900360200190f35b3480156200026257600080fd5b50620000ca6200053d565b3480156200027a57600080fd5b50620002396200059b565b3480156200029257600080fd5b506200019d600160a060020a036004358116906024351660443562000882565b348015620002bf57600080fd5b50620002396200090e565b348015620002d757600080fd5b506200019d600160a060020a03600435166200091d565b348015620002fb57600080fd5b506200019d600160a060020a0360043581169060243516604435620009bd565b6002805460408051602060018416156101000260001901909316849004601f81018490048402820184019092528181529291830182828015620003a25780601f106200037657610100808354040283529160200191620003a2565b820191906000526020600020905b8154815290600101906020018083116200038457829003601f168201915b505050505081565b60045460ff1681565b620003bd62000a2b565b82620003c98162000a90565b82620003d58162000a90565b83620003e18162000af4565b620003ee86868662000b56565b505050505050565b606060058054806020026020016040519081016040528092919081815260200182805480156200045057602002820191906000526020600020905b8154600160a060020a0316815260019091019060200180831162000431575b5050505050905090565b600154600160a060020a03163314620004bd576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b60015460008054604051600160a060020a0393841693909116917f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91a3600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b600054600160a060020a031681565b6003805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015620003a25780601f106200037657610100808354040283529160200191620003a2565b60006060806000620005ac62000a2b565b600580541062000606576040805160e560020a62461bcd02815260206004820152601560248201527f4552525f4d41585f4c494d49545f524541434845440000000000000000000000604482015290519081900360640190fd5b60028054604080516020601f60001961010060018716150201909416859004938401819004810282018101909252828152620006a89390929091830182828015620006955780601f10620006695761010080835404028352916020019162000695565b820191906000526020600020905b8154815290600101906020018083116200067757829003601f168201915b5050600554600101925062000c12915050565b6003805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529396506200070e939291830182828015620006955780601f10620006695761010080835404028352916020019162000695565b6004549092508390839060ff166200072562000d8c565b60ff82166040820152606080825284519082015283518190602080830191608084019188019080838360005b838110156200076b57818101518382015260200162000751565b50505050905090810190601f168015620007995780820380516001836020036101000a031916815260200191505b50838103825285518152855160209182019187019080838360005b83811015620007ce578181015183820152602001620007b4565b50505050905090810190601f168015620007fc5780820380516001836020036101000a031916815260200191505b5095505050505050604051809103906000f08015801562000821573d6000803e3d6000fd5b50600580546001810182556000919091527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038316179055949350505050565b6200088c62000a2b565b82600160a060020a031663867904b483836040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050600060405180830381600087803b158015620008f057600080fd5b505af115801562000905573d6000803e3d6000fd5b50505050505050565b600154600160a060020a031681565b6200092762000a2b565b600054600160a060020a03828116911614156200098e576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f53414d455f4f574e4552000000000000000000000000000000000000604482015290519081900360640190fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b620009c762000a2b565b82600160a060020a031663a24835d183836040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050600060405180830381600087803b158015620008f057600080fd5b600054600160a060020a0316331462000a8e576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b565b600160a060020a038116151562000af1576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b50565b600160a060020a03811630141562000af1576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f414444524553535f49535f53454c4600000000000000000000000000604482015290519081900360640190fd5b604080517f7472616e7366657228616464726573732c75696e74323536290000000000000081528151908190036019018120600160a060020a038516602483015260448083018590528351808403909101815260649092019092526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009093169290921790915262000c0d90849062000cfa565b505050565b606082827f30000000000000000000000000000000000000000000000000000000000000007f01000000000000000000000000000000000000000000000000000000000000009004016040516020018083805190602001908083835b6020831062000c8f5780518252601f19909201916020918201910162000c6e565b6001836020036101000a0380198251168184511680821785525050505050509050018260ff1660ff167f010000000000000000000000000000000000000000000000000000000000000002815260010192505050604051602081830303815290604052905092915050565b62000d0462000d9d565b602060405190810160405280600181525090506020818351602085016000875af180151562000d3257600080fd5b508051151562000c0d576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f5452414e534645525f4641494c454400000000000000000000000000604482015290519081900360640190fd5b6040516112288062000dbd83390190565b6020604051908101604052806001906020820280388339509192915050560060806040526008805460ff191660011790553480156200001e57600080fd5b506040516200122838038062001228833981016040908152815160208301519183015160008054600160a060020a0319163317815591840180519094939093019290918491849184918110620000d557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f4552525f494e56414c49445f4e414d4500000000000000000000000000000000604482015290519081900360640190fd5b82516000106200014657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f4552525f494e56414c49445f53594d424f4c0000000000000000000000000000604482015290519081900360640190fd5b83516200015b906002906020870190620001a8565b50825162000171906003906020860190620001a8565b506004805460ff191660ff9390931692909217909155600581905533600090815260066020526040902055506200024d9350505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620001eb57805160ff19168380011785556200021b565b828001600101855582156200021b579182015b828111156200021b578251825591602001919060010190620001fe565b50620002299291506200022d565b5090565b6200024a91905b8082111562000229576000815560010162000234565b90565b610fcb806200025d6000396000f3006080604052600436106101065763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde03811461010b578063095ea7b3146101955780631608f18f146101cd57806318160ddd146101e957806323b872dd14610210578063313ce5671461023a57806354fd4d50146102655780635e35359e1461029157806370a08231146102bb57806379ba5097146102dc578063867904b4146102f15780638da5cb5b1461031557806395d89b4114610346578063a24835d11461035b578063a9059cbb1461037f578063bef97c87146103a3578063d4ee1d90146103b8578063dd62ed3e146103cd578063f2fde38b146103f4575b600080fd5b34801561011757600080fd5b50610120610415565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561015a578181015183820152602001610142565b50505050905090810190601f1680156101875780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101a157600080fd5b506101b9600160a060020a03600435166024356104a0565b604080519115158252519081900360200190f35b3480156101d957600080fd5b506101e76004351515610598565b005b3480156101f557600080fd5b506101fe6105b2565b60408051918252519081900360200190f35b34801561021c57600080fd5b506101b9600160a060020a03600435811690602435166044356105b8565b34801561024657600080fd5b5061024f6105df565b6040805160ff9092168252519081900360200190f35b34801561027157600080fd5b5061027a6105e8565b6040805161ffff9092168252519081900360200190f35b34801561029d57600080fd5b506101e7600160a060020a03600435811690602435166044356105ed565b3480156102c757600080fd5b506101fe600160a060020a0360043516610626565b3480156102e857600080fd5b506101e7610638565b3480156102fd57600080fd5b506101e7600160a060020a036004351660243561070b565b34801561032157600080fd5b5061032a6107ed565b60408051600160a060020a039092168252519081900360200190f35b34801561035257600080fd5b506101206107fc565b34801561036757600080fd5b506101e7600160a060020a0360043516602435610857565b34801561038b57600080fd5b506101b9600160a060020a036004351660243561091d565b3480156103af57600080fd5b506101b9610942565b3480156103c457600080fd5b5061032a61094b565b3480156103d957600080fd5b506101fe600160a060020a036004358116906024351661095a565b34801561040057600080fd5b506101e7600160a060020a0360043516610977565b6002805460408051602060018416156101000260001901909316849004601f810184900484028201840190925281815292918301828280156104985780601f1061046d57610100808354040283529160200191610498565b820191906000526020600020905b81548152906001019060200180831161047b57829003601f168201915b505050505081565b6000826104ac81610a14565b8215806104da5750336000908152600760209081526040808320600160a060020a0388168452909152902054155b1515610530576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f494e56414c49445f414d4f554e540000000000000000000000000000604482015290519081900360640190fd5b336000818152600760209081526040808320600160a060020a03891680855290835292819020879055805187815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060019392505050565b6105a0610a77565b6008805460ff19169115919091179055565b60055481565b60006105c2610adb565b6105cd848484610b37565b15156105d557fe5b5060019392505050565b60045460ff1681565b600481565b6105f5610a77565b826105ff81610a14565b8261060981610a14565b8361061381610c48565b61061e868686610ca9565b505050505050565b60066020526000908152604090205481565b600154600160a060020a0316331461069a576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b60015460008054604051600160a060020a0393841693909116917f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91a3600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b610713610a77565b8161071d81610a14565b8261072781610c48565b60055461073a908463ffffffff610d6316565b600555600160a060020a038416600090815260066020526040902054610766908463ffffffff610d6316565b600160a060020a03851660009081526006602090815260409182902092909255805185815290517f9386c90217c323f58030f9dadcbc938f807a940f4ff41cd4cead9562f5da7dc3929181900390910190a1604080518481529051600160a060020a03861691600091600080516020610f808339815191529181900360200190a350505050565b600054600160a060020a031681565b6003805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156104985780601f1061046d57610100808354040283529160200191610498565b61085f610a77565b600160a060020a038216600090815260066020526040902054610888908263ffffffff610dc716565b600160a060020a0383166000908152600660205260409020556005546108b4908263ffffffff610dc716565b600555604080518281529051600091600160a060020a03851691600080516020610f808339815191529181900360200190a36040805182815290517f9a1b418bc061a5d80270261562e6986a35d995f8051145f277be16103abd34539181900360200190a15050565b6000610927610adb565b6109318383610e27565b151561093957fe5b50600192915050565b60085460ff1681565b600154600160a060020a031681565b600760209081526000928352604080842090915290825290205481565b61097f610a77565b600054600160a060020a03828116911614156109e5576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f53414d455f4f574e4552000000000000000000000000000000000000604482015290519081900360640190fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600160a060020a0381161515610a74576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b50565b600054600160a060020a03163314610ad9576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b565b60085460ff161515610ad9576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f5452414e53464552535f44495341424c454400000000000000000000604482015290519081900360640190fd5b600083610b4381610a14565b83610b4d81610a14565b600160a060020a0386166000908152600760209081526040808320338452909152902054610b81908563ffffffff610dc716565b600160a060020a038716600081815260076020908152604080832033845282528083209490945591815260069091522054610bc2908563ffffffff610dc716565b600160a060020a038088166000908152600660205260408082209390935590871681522054610bf7908563ffffffff610d6316565b600160a060020a0380871660008181526006602090815260409182902094909455805188815290519193928a1692600080516020610f8083398151915292918290030190a350600195945050505050565b600160a060020a038116301415610a74576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f414444524553535f49535f53454c4600000000000000000000000000604482015290519081900360640190fd5b604080517f7472616e7366657228616464726573732c75696e74323536290000000000000081528151908190036019018120600160a060020a038516602483015260448083018590528351808403909101815260649092019092526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152610d5e908490610ed2565b505050565b600082820183811015610dc0576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b9392505050565b600081831015610e21576040805160e560020a62461bcd02815260206004820152600d60248201527f4552525f554e444552464c4f5700000000000000000000000000000000000000604482015290519081900360640190fd5b50900390565b600082610e3381610a14565b33600090815260066020526040902054610e53908463ffffffff610dc716565b3360009081526006602052604080822092909255600160a060020a03861681522054610e85908463ffffffff610d6316565b600160a060020a038516600081815260066020908152604091829020939093558051868152905191923392600080516020610f808339815191529281900390910190a35060019392505050565b610eda610f60565b602060405190810160405280600181525090506020818351602085016000875af1801515610f0757600080fd5b5080511515610d5e576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f5452414e534645525f4641494c454400000000000000000000000000604482015290519081900360640190fd5b60206040519081016040528060019060208202803883395091929150505600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a7230582031b56aebc8336b547b3e1346f50c2f44f70def554ed4cba4c81bcf2e092d047f0029a165627a7a72305820e0ee560589eda5987d8f172ea60698bfbffc21529ee8046ab37c5e3348e88bcd0029a165627a7a723058208e1aa3c10d424a8fc6793ea5434eefc7ebfa7cb5ea0f07e6e74e8ad25b80d7f70029", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x4B JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x3E8FF43F DUP2 EQ PUSH2 0x50 JUMPI DUP1 PUSH4 0xA9FD4A2A EQ PUSH2 0x7C JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x65 PUSH2 0x141 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0xFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x88 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD PUSH1 0x1F DUP2 ADD DUP5 SWAP1 DIV DUP5 MUL DUP6 ADD DUP5 ADD SWAP1 SWAP6 MSTORE DUP5 DUP5 MSTORE PUSH2 0x118 SWAP5 CALLDATASIZE SWAP5 SWAP3 SWAP4 PUSH1 0x24 SWAP4 SWAP3 DUP5 ADD SWAP2 SWAP1 DUP2 SWAP1 DUP5 ADD DUP4 DUP3 DUP1 DUP3 DUP5 CALLDATACOPY POP POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x1F DUP10 CALLDATALOAD DUP12 ADD DUP1 CALLDATALOAD SWAP2 DUP3 ADD DUP4 SWAP1 DIV DUP4 MUL DUP5 ADD DUP4 ADD SWAP1 SWAP5 MSTORE DUP1 DUP4 MSTORE SWAP8 SWAP11 SWAP10 SWAP9 DUP2 ADD SWAP8 SWAP2 SWAP7 POP SWAP2 DUP3 ADD SWAP5 POP SWAP3 POP DUP3 SWAP2 POP DUP5 ADD DUP4 DUP3 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP POP POP SWAP3 CALLDATALOAD PUSH1 0xFF AND SWAP4 POP PUSH2 0x146 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH1 0x2 SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP5 DUP5 DUP5 PUSH2 0x154 PUSH2 0x2DC JUMP JUMPDEST PUSH1 0xFF DUP3 AND PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP1 DUP3 MSTORE DUP5 MLOAD SWAP1 DUP3 ADD MSTORE DUP4 MLOAD DUP2 SWAP1 PUSH1 0x20 DUP1 DUP4 ADD SWAP2 PUSH1 0x80 DUP5 ADD SWAP2 DUP9 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x198 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x180 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x1C5 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP DUP4 DUP2 SUB DUP3 MSTORE DUP6 MLOAD DUP2 MSTORE DUP6 MLOAD PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 DUP8 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1F8 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x1E0 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x225 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP6 POP POP POP POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 PUSH1 0x0 CREATE DUP1 ISZERO DUP1 ISZERO PUSH2 0x249 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH32 0xF2FDE38B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD SWAP2 SWAP3 POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND SWAP2 PUSH4 0xF2FDE38B SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2BB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2CF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP SWAP3 SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2240 DUP1 PUSH2 0x2ED DUP4 CODECOPY ADD SWAP1 JUMP STOP PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x2240 CODESIZE SUB DUP1 PUSH3 0x2240 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 SWAP1 DUP2 MSTORE DUP2 MLOAD PUSH1 0x20 DUP4 ADD MLOAD SWAP2 DUP4 ADD MLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND CALLER OR DUP2 SSTORE SWAP2 DUP5 ADD DUP1 MLOAD SWAP1 SWAP5 SWAP4 SWAP1 SWAP4 ADD SWAP3 SWAP1 SWAP2 LT PUSH3 0xC1 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4E414D4500000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x0 LT PUSH3 0x132 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F53594D424F4C0000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP3 MLOAD PUSH3 0x147 SWAP1 PUSH1 0x2 SWAP1 PUSH1 0x20 DUP7 ADD SWAP1 PUSH3 0x17B JUMP JUMPDEST POP DUP2 MLOAD PUSH3 0x15D SWAP1 PUSH1 0x3 SWAP1 PUSH1 0x20 DUP6 ADD SWAP1 PUSH3 0x17B JUMP JUMPDEST POP PUSH1 0x4 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0xFF SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE POP PUSH3 0x220 SWAP1 POP JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH1 0x1F LT PUSH3 0x1BE JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH3 0x1EE JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH3 0x1EE JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH3 0x1EE JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH3 0x1D1 JUMP JUMPDEST POP PUSH3 0x1FC SWAP3 SWAP2 POP PUSH3 0x200 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH3 0x21D SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH3 0x1FC JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH3 0x207 JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH2 0x2010 DUP1 PUSH3 0x230 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH3 0xAD JUMPI PUSH4 0xFFFFFFFF PUSH1 0xE0 PUSH1 0x2 EXP PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x6FDDE03 DUP2 EQ PUSH3 0xB2 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH3 0x142 JUMPI DUP1 PUSH4 0x5E35359E EQ PUSH3 0x170 JUMPI DUP1 PUSH4 0x6D3E313E EQ PUSH3 0x19F JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH3 0x209 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH3 0x221 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH3 0x255 JUMPI DUP1 PUSH4 0x9CBF9E36 EQ PUSH3 0x26D JUMPI DUP1 PUSH4 0xC6C3BBE6 EQ PUSH3 0x285 JUMPI DUP1 PUSH4 0xD4EE1D90 EQ PUSH3 0x2B2 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH3 0x2CA JUMPI DUP1 PUSH4 0xF6B911BC EQ PUSH3 0x2EE JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0xBF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0xCA PUSH3 0x31B JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP4 MLOAD DUP2 DUP4 ADD MSTORE DUP4 MLOAD SWAP2 SWAP3 DUP4 SWAP3 SWAP1 DUP4 ADD SWAP2 DUP6 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH3 0x106 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH3 0xEC JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH3 0x134 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0x14F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x15A PUSH3 0x3AA JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0x17D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x19D PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH3 0x3B3 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0x1AC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x1B7 PUSH3 0x3F6 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP4 MLOAD DUP2 DUP4 ADD MSTORE DUP4 MLOAD SWAP2 SWAP3 DUP4 SWAP3 SWAP1 DUP4 ADD SWAP2 DUP6 DUP2 ADD SWAP2 MUL DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH3 0x1F5 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH3 0x1DB JUMP JUMPDEST POP POP POP POP SWAP1 POP ADD SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0x216 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x19D PUSH3 0x45A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0x22E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x239 PUSH3 0x52E JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0x262 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0xCA PUSH3 0x53D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0x27A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x239 PUSH3 0x59B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0x292 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x19D PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH3 0x882 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0x2BF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x239 PUSH3 0x90E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0x2D7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x19D PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH3 0x91D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0x2FB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x19D PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH3 0x9BD JUMP JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x1 DUP5 AND ISZERO PUSH2 0x100 MUL PUSH1 0x0 NOT ADD SWAP1 SWAP4 AND DUP5 SWAP1 DIV PUSH1 0x1F DUP2 ADD DUP5 SWAP1 DIV DUP5 MUL DUP3 ADD DUP5 ADD SWAP1 SWAP3 MSTORE DUP2 DUP2 MSTORE SWAP3 SWAP2 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH3 0x3A2 JUMPI DUP1 PUSH1 0x1F LT PUSH3 0x376 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH3 0x3A2 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH3 0x384 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH3 0x3BD PUSH3 0xA2B JUMP JUMPDEST DUP3 PUSH3 0x3C9 DUP2 PUSH3 0xA90 JUMP JUMPDEST DUP3 PUSH3 0x3D5 DUP2 PUSH3 0xA90 JUMP JUMPDEST DUP4 PUSH3 0x3E1 DUP2 PUSH3 0xAF4 JUMP JUMPDEST PUSH3 0x3EE DUP7 DUP7 DUP7 PUSH3 0xB56 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x5 DUP1 SLOAD DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD DUP1 ISZERO PUSH3 0x450 JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH3 0x431 JUMPI JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH3 0x4BD JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND SWAP4 SWAP1 SWAP2 AND SWAP2 PUSH32 0x343765429AEA5A34B3FF6A3785A98A5ABB2597ACA87BFBB58632C173D585373A SWAP2 LOG3 PUSH1 0x1 DUP1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND OR SWAP1 SWAP2 SSTORE AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x2 PUSH1 0x1 DUP6 AND ISZERO PUSH2 0x100 MUL PUSH1 0x0 NOT ADD SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 DIV PUSH1 0x1F DUP2 ADD DUP5 SWAP1 DIV DUP5 MUL DUP3 ADD DUP5 ADD SWAP1 SWAP3 MSTORE DUP2 DUP2 MSTORE SWAP3 SWAP2 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH3 0x3A2 JUMPI DUP1 PUSH1 0x1F LT PUSH3 0x376 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH3 0x3A2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP1 PUSH1 0x0 PUSH3 0x5AC PUSH3 0xA2B JUMP JUMPDEST PUSH1 0x5 DUP1 SLOAD LT PUSH3 0x606 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4D41585F4C494D49545F524541434845440000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x1F PUSH1 0x0 NOT PUSH2 0x100 PUSH1 0x1 DUP8 AND ISZERO MUL ADD SWAP1 SWAP5 AND DUP6 SWAP1 DIV SWAP4 DUP5 ADD DUP2 SWAP1 DIV DUP2 MUL DUP3 ADD DUP2 ADD SWAP1 SWAP3 MSTORE DUP3 DUP2 MSTORE PUSH3 0x6A8 SWAP4 SWAP1 SWAP3 SWAP1 SWAP2 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH3 0x695 JUMPI DUP1 PUSH1 0x1F LT PUSH3 0x669 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH3 0x695 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH3 0x677 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP PUSH1 0x5 SLOAD PUSH1 0x1 ADD SWAP3 POP PUSH3 0xC12 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x2 PUSH1 0x1 DUP6 AND ISZERO PUSH2 0x100 MUL PUSH1 0x0 NOT ADD SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 DIV PUSH1 0x1F DUP2 ADD DUP5 SWAP1 DIV DUP5 MUL DUP3 ADD DUP5 ADD SWAP1 SWAP3 MSTORE DUP2 DUP2 MSTORE SWAP4 SWAP7 POP PUSH3 0x70E SWAP4 SWAP3 SWAP2 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH3 0x695 JUMPI DUP1 PUSH1 0x1F LT PUSH3 0x669 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH3 0x695 JUMP JUMPDEST PUSH1 0x4 SLOAD SWAP1 SWAP3 POP DUP4 SWAP1 DUP4 SWAP1 PUSH1 0xFF AND PUSH3 0x725 PUSH3 0xD8C JUMP JUMPDEST PUSH1 0xFF DUP3 AND PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP1 DUP3 MSTORE DUP5 MLOAD SWAP1 DUP3 ADD MSTORE DUP4 MLOAD DUP2 SWAP1 PUSH1 0x20 DUP1 DUP4 ADD SWAP2 PUSH1 0x80 DUP5 ADD SWAP2 DUP9 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH3 0x76B JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH3 0x751 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH3 0x799 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP DUP4 DUP2 SUB DUP3 MSTORE DUP6 MLOAD DUP2 MSTORE DUP6 MLOAD PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 DUP8 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH3 0x7CE JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH3 0x7B4 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH3 0x7FC JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP6 POP POP POP POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 PUSH1 0x0 CREATE DUP1 ISZERO DUP1 ISZERO PUSH3 0x821 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH1 0x5 DUP1 SLOAD PUSH1 0x1 DUP2 ADD DUP3 SSTORE PUSH1 0x0 SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0x36B6384B5ECA791C62761152D0C79BB0604C104A5FB6F4EB0703F3154BB3DB0 ADD DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 AND OR SWAP1 SSTORE SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH3 0x88C PUSH3 0xA2B JUMP JUMPDEST DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x867904B4 DUP4 DUP4 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH3 0x8F0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH3 0x905 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH3 0x927 PUSH3 0xA2B JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ ISZERO PUSH3 0x98E JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F4F574E4552000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH3 0x9C7 PUSH3 0xA2B JUMP JUMPDEST DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xA24835D1 DUP4 DUP4 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH3 0x8F0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH3 0xA8E JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH3 0xAF1 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ADDRESS EQ ISZERO PUSH3 0xAF1 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F414444524553535F49535F53454C4600000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x7472616E7366657228616464726573732C75696E743235362900000000000000 DUP2 MSTORE DUP2 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x19 ADD DUP2 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x64 SWAP1 SWAP3 ADD SWAP1 SWAP3 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE PUSH3 0xC0D SWAP1 DUP5 SWAP1 PUSH3 0xCFA JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP3 DUP3 PUSH32 0x3000000000000000000000000000000000000000000000000000000000000000 PUSH32 0x100000000000000000000000000000000000000000000000000000000000000 SWAP1 DIV ADD PUSH1 0x40 MLOAD PUSH1 0x20 ADD DUP1 DUP4 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH3 0xC8F JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH3 0xC6E JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD DUP3 PUSH1 0xFF AND PUSH1 0xFF AND PUSH32 0x100000000000000000000000000000000000000000000000000000000000000 MUL DUP2 MSTORE PUSH1 0x1 ADD SWAP3 POP POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH3 0xD04 PUSH3 0xD9D JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE POP SWAP1 POP PUSH1 0x20 DUP2 DUP4 MLOAD PUSH1 0x20 DUP6 ADD PUSH1 0x0 DUP8 GAS CALL DUP1 ISZERO ISZERO PUSH3 0xD32 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD ISZERO ISZERO PUSH3 0xC0D JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5452414E534645525F4641494C454400000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1228 DUP1 PUSH3 0xDBD DUP4 CODECOPY ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 SWAP1 PUSH1 0x20 DUP3 MUL DUP1 CODESIZE DUP4 CODECOPY POP SWAP2 SWAP3 SWAP2 POP POP JUMP STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x8 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE CALLVALUE DUP1 ISZERO PUSH3 0x1E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x1228 CODESIZE SUB DUP1 PUSH3 0x1228 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 SWAP1 DUP2 MSTORE DUP2 MLOAD PUSH1 0x20 DUP4 ADD MLOAD SWAP2 DUP4 ADD MLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND CALLER OR DUP2 SSTORE SWAP2 DUP5 ADD DUP1 MLOAD SWAP1 SWAP5 SWAP4 SWAP1 SWAP4 ADD SWAP3 SWAP1 SWAP2 DUP5 SWAP2 DUP5 SWAP2 DUP5 SWAP2 DUP2 LT PUSH3 0xD5 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4E414D4500000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP3 MLOAD PUSH1 0x0 LT PUSH3 0x146 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F53594D424F4C0000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP4 MLOAD PUSH3 0x15B SWAP1 PUSH1 0x2 SWAP1 PUSH1 0x20 DUP8 ADD SWAP1 PUSH3 0x1A8 JUMP JUMPDEST POP DUP3 MLOAD PUSH3 0x171 SWAP1 PUSH1 0x3 SWAP1 PUSH1 0x20 DUP7 ADD SWAP1 PUSH3 0x1A8 JUMP JUMPDEST POP PUSH1 0x4 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0xFF SWAP4 SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 SSTORE PUSH1 0x5 DUP2 SWAP1 SSTORE CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE POP PUSH3 0x24D SWAP4 POP POP POP POP JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH1 0x1F LT PUSH3 0x1EB JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH3 0x21B JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH3 0x21B JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH3 0x21B JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH3 0x1FE JUMP JUMPDEST POP PUSH3 0x229 SWAP3 SWAP2 POP PUSH3 0x22D JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH3 0x24A SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH3 0x229 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH3 0x234 JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH2 0xFCB DUP1 PUSH3 0x25D PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x106 JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x6FDDE03 DUP2 EQ PUSH2 0x10B JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x195 JUMPI DUP1 PUSH4 0x1608F18F EQ PUSH2 0x1CD JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x1E9 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x210 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x23A JUMPI DUP1 PUSH4 0x54FD4D50 EQ PUSH2 0x265 JUMPI DUP1 PUSH4 0x5E35359E EQ PUSH2 0x291 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x2BB JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x2DC JUMPI DUP1 PUSH4 0x867904B4 EQ PUSH2 0x2F1 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x315 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x346 JUMPI DUP1 PUSH4 0xA24835D1 EQ PUSH2 0x35B JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x37F JUMPI DUP1 PUSH4 0xBEF97C87 EQ PUSH2 0x3A3 JUMPI DUP1 PUSH4 0xD4EE1D90 EQ PUSH2 0x3B8 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x3CD JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x3F4 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x117 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x120 PUSH2 0x415 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP4 MLOAD DUP2 DUP4 ADD MSTORE DUP4 MLOAD SWAP2 SWAP3 DUP4 SWAP3 SWAP1 DUP4 ADD SWAP2 DUP6 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x15A JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x142 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x187 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1A1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B9 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x4A0 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1D9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH1 0x4 CALLDATALOAD ISZERO ISZERO PUSH2 0x598 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1FE PUSH2 0x5B2 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x21C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B9 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x5B8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x246 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x24F PUSH2 0x5DF JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x271 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x27A PUSH2 0x5E8 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0xFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x29D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x5ED JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2C7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1FE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x626 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2E8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH2 0x638 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2FD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x70B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x321 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x32A PUSH2 0x7ED JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x352 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x120 PUSH2 0x7FC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x367 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x857 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x38B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B9 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x91D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3AF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B9 PUSH2 0x942 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3C4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x32A PUSH2 0x94B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3D9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1FE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH2 0x95A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x400 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x977 JUMP JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x1 DUP5 AND ISZERO PUSH2 0x100 MUL PUSH1 0x0 NOT ADD SWAP1 SWAP4 AND DUP5 SWAP1 DIV PUSH1 0x1F DUP2 ADD DUP5 SWAP1 DIV DUP5 MUL DUP3 ADD DUP5 ADD SWAP1 SWAP3 MSTORE DUP2 DUP2 MSTORE SWAP3 SWAP2 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x498 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x46D JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x498 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x47B JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x4AC DUP2 PUSH2 0xA14 JUMP JUMPDEST DUP3 ISZERO DUP1 PUSH2 0x4DA JUMPI POP CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x530 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F414D4F554E540000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST CALLER PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP10 AND DUP1 DUP6 MSTORE SWAP1 DUP4 MSTORE SWAP3 DUP2 SWAP1 KECCAK256 DUP8 SWAP1 SSTORE DUP1 MLOAD DUP8 DUP2 MSTORE SWAP1 MLOAD SWAP3 SWAP4 SWAP3 PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP3 SWAP2 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x5A0 PUSH2 0xA77 JUMP JUMPDEST PUSH1 0x8 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP2 ISZERO SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x5 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5C2 PUSH2 0xADB JUMP JUMPDEST PUSH2 0x5CD DUP5 DUP5 DUP5 PUSH2 0xB37 JUMP JUMPDEST ISZERO ISZERO PUSH2 0x5D5 JUMPI INVALID JUMPDEST POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x4 DUP2 JUMP JUMPDEST PUSH2 0x5F5 PUSH2 0xA77 JUMP JUMPDEST DUP3 PUSH2 0x5FF DUP2 PUSH2 0xA14 JUMP JUMPDEST DUP3 PUSH2 0x609 DUP2 PUSH2 0xA14 JUMP JUMPDEST DUP4 PUSH2 0x613 DUP2 PUSH2 0xC48 JUMP JUMPDEST PUSH2 0x61E DUP7 DUP7 DUP7 PUSH2 0xCA9 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x69A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND SWAP4 SWAP1 SWAP2 AND SWAP2 PUSH32 0x343765429AEA5A34B3FF6A3785A98A5ABB2597ACA87BFBB58632C173D585373A SWAP2 LOG3 PUSH1 0x1 DUP1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND OR SWAP1 SWAP2 SSTORE AND SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x713 PUSH2 0xA77 JUMP JUMPDEST DUP2 PUSH2 0x71D DUP2 PUSH2 0xA14 JUMP JUMPDEST DUP3 PUSH2 0x727 DUP2 PUSH2 0xC48 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH2 0x73A SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0xD63 AND JUMP JUMPDEST PUSH1 0x5 SSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x766 SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0xD63 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SWAP3 SWAP1 SWAP3 SSTORE DUP1 MLOAD DUP6 DUP2 MSTORE SWAP1 MLOAD PUSH32 0x9386C90217C323F58030F9DADCBC938F807A940F4FF41CD4CEAD9562F5DA7DC3 SWAP3 SWAP2 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG1 PUSH1 0x40 DUP1 MLOAD DUP5 DUP2 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND SWAP2 PUSH1 0x0 SWAP2 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xF80 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP2 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 LOG3 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x2 PUSH1 0x1 DUP6 AND ISZERO PUSH2 0x100 MUL PUSH1 0x0 NOT ADD SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 DIV PUSH1 0x1F DUP2 ADD DUP5 SWAP1 DIV DUP5 MUL DUP3 ADD DUP5 ADD SWAP1 SWAP3 MSTORE DUP2 DUP2 MSTORE SWAP3 SWAP2 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x498 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x46D JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x498 JUMP JUMPDEST PUSH2 0x85F PUSH2 0xA77 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x888 SWAP1 DUP3 PUSH4 0xFFFFFFFF PUSH2 0xDC7 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE PUSH1 0x5 SLOAD PUSH2 0x8B4 SWAP1 DUP3 PUSH4 0xFFFFFFFF PUSH2 0xDC7 AND JUMP JUMPDEST PUSH1 0x5 SSTORE PUSH1 0x40 DUP1 MLOAD DUP3 DUP2 MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND SWAP2 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xF80 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP2 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 LOG3 PUSH1 0x40 DUP1 MLOAD DUP3 DUP2 MSTORE SWAP1 MLOAD PUSH32 0x9A1B418BC061A5D80270261562E6986A35D995F8051145F277BE16103ABD3453 SWAP2 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x927 PUSH2 0xADB JUMP JUMPDEST PUSH2 0x931 DUP4 DUP4 PUSH2 0xE27 JUMP JUMPDEST ISZERO ISZERO PUSH2 0x939 JUMPI INVALID JUMPDEST POP PUSH1 0x1 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x97F PUSH2 0xA77 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x9E5 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F4F574E4552000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0xA74 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0xAD9 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0xFF AND ISZERO ISZERO PUSH2 0xAD9 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5452414E53464552535F44495341424C454400000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP4 PUSH2 0xB43 DUP2 PUSH2 0xA14 JUMP JUMPDEST DUP4 PUSH2 0xB4D DUP2 PUSH2 0xA14 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH2 0xB81 SWAP1 DUP6 PUSH4 0xFFFFFFFF PUSH2 0xDC7 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE DUP3 MSTORE DUP1 DUP4 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE SWAP2 DUP2 MSTORE PUSH1 0x6 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD PUSH2 0xBC2 SWAP1 DUP6 PUSH4 0xFFFFFFFF PUSH2 0xDC7 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE SWAP1 DUP8 AND DUP2 MSTORE KECCAK256 SLOAD PUSH2 0xBF7 SWAP1 DUP6 PUSH4 0xFFFFFFFF PUSH2 0xD63 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP8 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE DUP1 MLOAD DUP9 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP4 SWAP3 DUP11 AND SWAP3 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xF80 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP3 SWAP2 DUP3 SWAP1 SUB ADD SWAP1 LOG3 POP PUSH1 0x1 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ADDRESS EQ ISZERO PUSH2 0xA74 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F414444524553535F49535F53454C4600000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x7472616E7366657228616464726573732C75696E743235362900000000000000 DUP2 MSTORE DUP2 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x19 ADD DUP2 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x64 SWAP1 SWAP3 ADD SWAP1 SWAP3 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE PUSH2 0xD5E SWAP1 DUP5 SWAP1 PUSH2 0xED2 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 ADD DUP4 DUP2 LT ISZERO PUSH2 0xDC0 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT ISZERO PUSH2 0xE21 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F554E444552464C4F5700000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP SWAP1 SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0xE33 DUP2 PUSH2 0xA14 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0xE53 SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0xDC7 AND JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP3 SWAP1 SWAP3 SSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND DUP2 MSTORE KECCAK256 SLOAD PUSH2 0xE85 SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0xD63 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE DUP1 MLOAD DUP7 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP3 CALLER SWAP3 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xF80 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0xEDA PUSH2 0xF60 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE POP SWAP1 POP PUSH1 0x20 DUP2 DUP4 MLOAD PUSH1 0x20 DUP6 ADD PUSH1 0x0 DUP8 GAS CALL DUP1 ISZERO ISZERO PUSH2 0xF07 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD ISZERO ISZERO PUSH2 0xD5E JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5452414E534645525F4641494C454400000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 SWAP1 PUSH1 0x20 DUP3 MUL DUP1 CODESIZE DUP4 CODECOPY POP SWAP2 SWAP3 SWAP2 POP POP JUMP STOP 0xdd CALLCODE MSTORE 0xad SHL 0xe2 0xc8 SWAP12 PUSH10 0xC2B068FC378DAA952BA7 CALL PUSH4 0xC4A11628 0xf5 GAS 0x4d 0xf5 0x23 0xb3 0xef LOG1 PUSH6 0x627A7A723058 KECCAK256 BALANCE 0xb5 PUSH11 0xEBC8336B547B3E1346F50C 0x2f DIFFICULTY 0xf7 0xd 0xef SSTORE 0x4e 0xd4 0xcb LOG4 0xc8 SHL 0xcf 0x2e MULMOD 0x2d DIV PUSH32 0x29A165627A7A72305820E0EE560589EDA5987D8F172EA60698BFBFFC21529E 0xe8 DIV PUSH11 0xB37C5E3348E88BCD0029A1 PUSH6 0x627A7A723058 KECCAK256 DUP15 BYTE LOG3 0xc1 0xd TIMESTAMP 0x4a DUP16 0xc6 PUSH26 0x3EA5434EEFC7EBFA7CB5EA0F07E6E74E8AD25B80D7F700290000 ", - "sourceMap": "184:897:26:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;400:81;;8:9:-1;5:2;;;30:1;27;20:12;5:2;400:81:26;;;;;;;;;;;;;;;;;;;;;;;796:282;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;796:282:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;796:282:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;796:282:26;;;;-1:-1:-1;796:282:26;-1:-1:-1;796:282:26;;-1:-1:-1;796:282:26;;;;;;;;-1:-1:-1;796:282:26;;-1:-1:-1;;;796:282:26;;;;;-1:-1:-1;796:282:26;;-1:-1:-1;;;796:282:26;;;;;;;;;;;;;;;;;;;;400:81;472:1;400:81;:::o;796:282::-;881:16;910:30;967:5;974:7;983:9;943:50;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;943:50:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;943:50:26;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;943:50:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;1004:39:26;;;;;;1032:10;1004:39;;;;;;910:83;;-1:-1:-1;1004:27:26;;;;;;:39;;;;;-1:-1:-1;;1004:39:26;;;;;;;;-1:-1:-1;1004:27:26;:39;;;5:2:-1;;;;30:1;27;20:12;5:2;1004:39:26;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;1061:9:26;;796:282;-1:-1:-1;;;;;;;796:282:26:o;184:897::-;;;;;;;;;;:::o" - }, - "methodIdentifiers": { - "converterType()": "3e8ff43f", - "createAnchor(string,string,uint8)": "a9fd4a2a" - } - }, - "userdoc": { - "methods": {} - } - } - }, - "solidity/contracts/converter/types/liquidity-pool-v2/LiquidityPoolV2ConverterCustomFactory.sol": { - "LiquidityPoolV2ConverterCustomFactory": { - "abi": [ - { - "constant": false, - "inputs": [ - { - "name": "_primaryReserveToken", - "type": "address" - }, - { - "name": "_secondaryReserveToken", - "type": "address" - }, - { - "name": "_primaryReserveOracle", - "type": "address" - }, - { - "name": "_secondaryReserveOracle", - "type": "address" - } - ], - "name": "createPriceOracle", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "converterType", - "outputs": [ - { - "name": "", - "type": "uint16" - } - ], - "payable": false, - "stateMutability": "pure", - "type": "function" - } - ], - "devdoc": { - "methods": { - "converterType()": { - "details": "returns the converter type the factory is associated with\r ", - "return": "converter type\r" - }, - "createPriceOracle(address,address,address,address)": { - "details": "creates a new price oracle\r note that the oracles must have the same common denominator (USD, ETH etc.)\r ", - "params": { - "_primaryReserveOracle": "primary reserve oracle address\r", - "_primaryReserveToken": "primary reserve token address\r", - "_secondaryReserveOracle": "secondary reserve oracle address\r", - "_secondaryReserveToken": "secondary reserve token address\r" - } - } - } - }, - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "608060405234801561001057600080fd5b50610cd2806100206000396000f30060806040526004361061004b5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631b27444e81146100505780633e8ff43f146100b9575b600080fd5b34801561005c57600080fd5b5061009073ffffffffffffffffffffffffffffffffffffffff600435811690602435811690604435811690606435166100e5565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b3480156100c557600080fd5b506100ce610151565b6040805161ffff9092168252519081900360200190f35b6000848484846100f3610156565b73ffffffffffffffffffffffffffffffffffffffff9485168152928416602084015290831660408084019190915292166060820152905190819003608001906000f080158015610147573d6000803e3d6000fd5b5095945050505050565b600290565b604051610b4080610167833901905600608060405234801561001057600080fd5b50604051608080610b408339810160409081528151602083015191830151606090930151909290838361004c8282640100000000610168810204565b83836100618282640100000000610168810204565b60008054600160a060020a03808b16600160a060020a03199283161790925560018054928a16929091169190911790556100a38864010000000061020b810204565b600160a060020a0389166000908152600260205260409020805460ff191660ff929092169190911790556100df8764010000000061020b810204565b600160a060020a039788166000818152600260209081526040808320805460ff9690961660ff1990961695909517909455600380549a8c16600160a060020a03199b8c168117909155600480549a8d169a8c168b1790559b909a168152600590995281892080548916909a1790995597875250505093909220805490911690911790555061033f565b61017a826401000000006102c5810204565b61018c816401000000006102c5810204565b600160a060020a03828116908216141561020757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f4552525f53414d455f4144445245535300000000000000000000000000000000604482015290519081900360640190fd5b5050565b6000600160a060020a03821673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee141561023a575060126102c0565b81600160a060020a031663313ce5676040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561029157600080fd5b505af11580156102a5573d6000803e3d6000fd5b505050506040513d60208110156102bb57600080fd5b505190505b919050565b600160a060020a038116151561033c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b50565b6107f28061034e6000396000f3006080604052600436106100985763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630fc63d10811461009d5780635f64b55b146100ce5780638ee573ac146100e3578063ae8180041461011a578063b1772d7a1461015a578063b9e1715b1461019f578063c8f33c91146101b4578063cbd962d1146101db578063f997fda7146101fc575b600080fd5b3480156100a957600080fd5b506100b2610211565b60408051600160a060020a039092168252519081900360200190f35b3480156100da57600080fd5b506100b2610220565b3480156100ef57600080fd5b50610104600160a060020a036004351661022f565b6040805160ff9092168252519081900360200190f35b34801561012657600080fd5b50610141600160a060020a0360043581169060243516610244565b6040805192835260208301919091528051918290030190f35b34801561016657600080fd5b50610181600160a060020a0360043581169060243516610419565b60408051938452602084019290925282820152519081900360600190f35b3480156101ab57600080fd5b506100b2610448565b3480156101c057600080fd5b506101c9610457565b60408051918252519081900360200190f35b3480156101e757600080fd5b506100b2600160a060020a0360043516610599565b34801561020857600080fd5b506100b26105b4565b600054600160a060020a031681565b600154600160a060020a031681565b60026020526000908152604090205460ff1681565b600080600080600080878761025982826105c3565b600160a060020a03808b1660009081526005602090815260408083205481517f50d25bcd00000000000000000000000000000000000000000000000000000000815291519416936350d25bcd93600480840194938390030190829087803b1580156102c357600080fd5b505af11580156102d7573d6000803e3d6000fd5b505050506040513d60208110156102ed57600080fd5b5051600160a060020a03808b1660009081526005602090815260408083205481517f50d25bcd0000000000000000000000000000000000000000000000000000000081529151959b50909316936350d25bcd93600480820194918390030190829087803b15801561035d57600080fd5b505af1158015610371573d6000803e3d6000fd5b505050506040513d602081101561038757600080fd5b5051600160a060020a03808c1660009081526002602052604080822054928d16825290205491965060ff9081169550169250828411156103e0576103d98560ff85870316600a0a63ffffffff61066916565b9450610409565b8260ff168460ff161015610409576104068660ff86860316600a0a63ffffffff61066916565b95505b5093989297509195505050505050565b600080600080600061042b8787610244565b915091508181610439610457565b94509450945050509250925092565b600354600160a060020a031681565b6000806000600360009054906101000a9004600160a060020a0316600160a060020a0316638205bf6a6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156104c857600080fd5b505af11580156104dc573d6000803e3d6000fd5b505050506040513d60208110156104f257600080fd5b505160048054604080517f8205bf6a0000000000000000000000000000000000000000000000000000000081529051939550600160a060020a0390911692638205bf6a928281019260209291908290030181600087803b15801561055557600080fd5b505af1158015610569573d6000803e3d6000fd5b505050506040513d602081101561057f57600080fd5b505190508082116105905780610592565b815b9250505090565b600560205260009081526040902054600160a060020a031681565b600454600160a060020a031681565b6105cd82826106ed565b600160a060020a03828116600090815260056020526040902054161580159061060f5750600160a060020a038181166000908152600560205260409020541615155b1515610665576040805160e560020a62461bcd02815260206004820152601560248201527f4552525f554e535550504f525445445f544f4b454e0000000000000000000000604482015290519081900360640190fd5b5050565b60008083151561067c57600091506106e6565b5082820282848281151561068c57fe5b04146106e2576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b8091505b5092915050565b6106f682610763565b6106ff81610763565b600160a060020a038281169082161415610665576040805160e560020a62461bcd02815260206004820152601060248201527f4552525f53414d455f4144445245535300000000000000000000000000000000604482015290519081900360640190fd5b600160a060020a03811615156107c3576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b505600a165627a7a72305820cbe01ca5d8106253df6f9a272819eaf7073655d80bfe9974cf71d48b1af26f530029a165627a7a723058206ec04e3e8dfaba1e7a3aa666d6e6a719e372b861cdadcba2f873f5b72a9775220029", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xCD2 DUP1 PUSH2 0x20 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x4B JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x1B27444E DUP2 EQ PUSH2 0x50 JUMPI DUP1 PUSH4 0x3E8FF43F EQ PUSH2 0xB9 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x90 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x44 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x64 CALLDATALOAD AND PUSH2 0xE5 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xC5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xCE PUSH2 0x151 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0xFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP5 DUP5 DUP5 DUP5 PUSH2 0xF3 PUSH2 0x156 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP5 DUP6 AND DUP2 MSTORE SWAP3 DUP5 AND PUSH1 0x20 DUP5 ADD MSTORE SWAP1 DUP4 AND PUSH1 0x40 DUP1 DUP5 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP3 AND PUSH1 0x60 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x80 ADD SWAP1 PUSH1 0x0 CREATE DUP1 ISZERO DUP1 ISZERO PUSH2 0x147 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xB40 DUP1 PUSH2 0x167 DUP4 CODECOPY ADD SWAP1 JUMP STOP PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH1 0x80 DUP1 PUSH2 0xB40 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 SWAP1 DUP2 MSTORE DUP2 MLOAD PUSH1 0x20 DUP4 ADD MLOAD SWAP2 DUP4 ADD MLOAD PUSH1 0x60 SWAP1 SWAP4 ADD MLOAD SWAP1 SWAP3 SWAP1 DUP4 DUP4 PUSH2 0x4C DUP3 DUP3 PUSH5 0x100000000 PUSH2 0x168 DUP2 MUL DIV JUMP JUMPDEST DUP4 DUP4 PUSH2 0x61 DUP3 DUP3 PUSH5 0x100000000 PUSH2 0x168 DUP2 MUL DIV JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP12 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT SWAP3 DUP4 AND OR SWAP1 SWAP3 SSTORE PUSH1 0x1 DUP1 SLOAD SWAP3 DUP11 AND SWAP3 SWAP1 SWAP2 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0xA3 DUP9 PUSH5 0x100000000 PUSH2 0x20B DUP2 MUL DIV JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP10 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0xFF SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0xDF DUP8 PUSH5 0x100000000 PUSH2 0x20B DUP2 MUL DIV JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP8 DUP9 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH1 0xFF SWAP7 SWAP1 SWAP7 AND PUSH1 0xFF NOT SWAP1 SWAP7 AND SWAP6 SWAP1 SWAP6 OR SWAP1 SWAP5 SSTORE PUSH1 0x3 DUP1 SLOAD SWAP11 DUP13 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT SWAP12 DUP13 AND DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x4 DUP1 SLOAD SWAP11 DUP14 AND SWAP11 DUP13 AND DUP12 OR SWAP1 SSTORE SWAP12 SWAP1 SWAP11 AND DUP2 MSTORE PUSH1 0x5 SWAP1 SWAP10 MSTORE DUP2 DUP10 KECCAK256 DUP1 SLOAD DUP10 AND SWAP1 SWAP11 OR SWAP1 SWAP10 SSTORE SWAP8 DUP8 MSTORE POP POP POP SWAP4 SWAP1 SWAP3 KECCAK256 DUP1 SLOAD SWAP1 SWAP2 AND SWAP1 SWAP2 OR SWAP1 SSTORE POP PUSH2 0x33F JUMP JUMPDEST PUSH2 0x17A DUP3 PUSH5 0x100000000 PUSH2 0x2C5 DUP2 MUL DIV JUMP JUMPDEST PUSH2 0x18C DUP2 PUSH5 0x100000000 PUSH2 0x2C5 DUP2 MUL DIV JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP1 DUP3 AND EQ ISZERO PUSH2 0x207 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F4144445245535300000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 AND PUSH20 0xEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE EQ ISZERO PUSH2 0x23A JUMPI POP PUSH1 0x12 PUSH2 0x2C0 JUMP JUMPDEST DUP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x313CE567 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH29 0x100000000000000000000000000000000000000000000000000000000 MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x291 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2A5 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2BB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0x33C JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x7F2 DUP1 PUSH2 0x34E PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x98 JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0xFC63D10 DUP2 EQ PUSH2 0x9D JUMPI DUP1 PUSH4 0x5F64B55B EQ PUSH2 0xCE JUMPI DUP1 PUSH4 0x8EE573AC EQ PUSH2 0xE3 JUMPI DUP1 PUSH4 0xAE818004 EQ PUSH2 0x11A JUMPI DUP1 PUSH4 0xB1772D7A EQ PUSH2 0x15A JUMPI DUP1 PUSH4 0xB9E1715B EQ PUSH2 0x19F JUMPI DUP1 PUSH4 0xC8F33C91 EQ PUSH2 0x1B4 JUMPI DUP1 PUSH4 0xCBD962D1 EQ PUSH2 0x1DB JUMPI DUP1 PUSH4 0xF997FDA7 EQ PUSH2 0x1FC JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB2 PUSH2 0x211 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xDA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB2 PUSH2 0x220 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xEF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x104 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x22F JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x126 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x141 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH2 0x244 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x166 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x181 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH2 0x419 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP4 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP3 SWAP1 SWAP3 MSTORE DUP3 DUP3 ADD MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1AB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB2 PUSH2 0x448 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1C0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1C9 PUSH2 0x457 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1E7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x599 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x208 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB2 PUSH2 0x5B4 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 DUP8 DUP8 PUSH2 0x259 DUP3 DUP3 PUSH2 0x5C3 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD DUP2 MLOAD PUSH32 0x50D25BCD00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP2 MLOAD SWAP5 AND SWAP4 PUSH4 0x50D25BCD SWAP4 PUSH1 0x4 DUP1 DUP5 ADD SWAP5 SWAP4 DUP4 SWAP1 SUB ADD SWAP1 DUP3 SWAP1 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2C3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2D7 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2ED JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD DUP2 MLOAD PUSH32 0x50D25BCD00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP2 MLOAD SWAP6 SWAP12 POP SWAP1 SWAP4 AND SWAP4 PUSH4 0x50D25BCD SWAP4 PUSH1 0x4 DUP1 DUP3 ADD SWAP5 SWAP2 DUP4 SWAP1 SUB ADD SWAP1 DUP3 SWAP1 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x35D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x371 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x387 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP13 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SLOAD SWAP3 DUP14 AND DUP3 MSTORE SWAP1 KECCAK256 SLOAD SWAP2 SWAP7 POP PUSH1 0xFF SWAP1 DUP2 AND SWAP6 POP AND SWAP3 POP DUP3 DUP5 GT ISZERO PUSH2 0x3E0 JUMPI PUSH2 0x3D9 DUP6 PUSH1 0xFF DUP6 DUP8 SUB AND PUSH1 0xA EXP PUSH4 0xFFFFFFFF PUSH2 0x669 AND JUMP JUMPDEST SWAP5 POP PUSH2 0x409 JUMP JUMPDEST DUP3 PUSH1 0xFF AND DUP5 PUSH1 0xFF AND LT ISZERO PUSH2 0x409 JUMPI PUSH2 0x406 DUP7 PUSH1 0xFF DUP7 DUP7 SUB AND PUSH1 0xA EXP PUSH4 0xFFFFFFFF PUSH2 0x669 AND JUMP JUMPDEST SWAP6 POP JUMPDEST POP SWAP4 SWAP9 SWAP3 SWAP8 POP SWAP2 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x42B DUP8 DUP8 PUSH2 0x244 JUMP JUMPDEST SWAP2 POP SWAP2 POP DUP2 DUP2 PUSH2 0x439 PUSH2 0x457 JUMP JUMPDEST SWAP5 POP SWAP5 POP SWAP5 POP POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x3 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x8205BF6A PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH29 0x100000000000000000000000000000000000000000000000000000000 MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x4C8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x4DC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x4F2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x4 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x8205BF6A00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD SWAP4 SWAP6 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP2 AND SWAP3 PUSH4 0x8205BF6A SWAP3 DUP3 DUP2 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x555 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x569 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x57F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 POP DUP1 DUP3 GT PUSH2 0x590 JUMPI DUP1 PUSH2 0x592 JUMP JUMPDEST DUP2 JUMPDEST SWAP3 POP POP POP SWAP1 JUMP JUMPDEST PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH2 0x5CD DUP3 DUP3 PUSH2 0x6ED JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD AND ISZERO DUP1 ISZERO SWAP1 PUSH2 0x60F JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD AND ISZERO ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x665 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F554E535550504F525445445F544F4B454E0000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 ISZERO ISZERO PUSH2 0x67C JUMPI PUSH1 0x0 SWAP2 POP PUSH2 0x6E6 JUMP JUMPDEST POP DUP3 DUP3 MUL DUP3 DUP5 DUP3 DUP2 ISZERO ISZERO PUSH2 0x68C JUMPI INVALID JUMPDEST DIV EQ PUSH2 0x6E2 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP1 SWAP2 POP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x6F6 DUP3 PUSH2 0x763 JUMP JUMPDEST PUSH2 0x6FF DUP2 PUSH2 0x763 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP1 DUP3 AND EQ ISZERO PUSH2 0x665 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F4144445245535300000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0x7C3 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP JUMP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 0xcb 0xe0 SHR 0xa5 0xd8 LT PUSH3 0x53DF6F SWAP11 0x27 0x28 NOT 0xea 0xf7 SMOD CALLDATASIZE SSTORE 0xd8 SIGNEXTEND INVALID SWAP10 PUSH21 0xCF71D48B1AF26F530029A165627A7A723058206EC0 0x4e RETURNDATACOPY DUP14 STATICCALL 0xba 0x1e PUSH27 0x3AA666D6E6A719E372B861CDADCBA2F873F5B72A97752200290000 ", - "sourceMap": "191:1162:27:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;191:1162:27;;;;;;;" - }, - "deployedBytecode": { - "linkReferences": {}, - "object": "60806040526004361061004b5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631b27444e81146100505780633e8ff43f146100b9575b600080fd5b34801561005c57600080fd5b5061009073ffffffffffffffffffffffffffffffffffffffff600435811690602435811690604435811690606435166100e5565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b3480156100c557600080fd5b506100ce610151565b6040805161ffff9092168252519081900360200190f35b6000848484846100f3610156565b73ffffffffffffffffffffffffffffffffffffffff9485168152928416602084015290831660408084019190915292166060820152905190819003608001906000f080158015610147573d6000803e3d6000fd5b5095945050505050565b600290565b604051610b4080610167833901905600608060405234801561001057600080fd5b50604051608080610b408339810160409081528151602083015191830151606090930151909290838361004c8282640100000000610168810204565b83836100618282640100000000610168810204565b60008054600160a060020a03808b16600160a060020a03199283161790925560018054928a16929091169190911790556100a38864010000000061020b810204565b600160a060020a0389166000908152600260205260409020805460ff191660ff929092169190911790556100df8764010000000061020b810204565b600160a060020a039788166000818152600260209081526040808320805460ff9690961660ff1990961695909517909455600380549a8c16600160a060020a03199b8c168117909155600480549a8d169a8c168b1790559b909a168152600590995281892080548916909a1790995597875250505093909220805490911690911790555061033f565b61017a826401000000006102c5810204565b61018c816401000000006102c5810204565b600160a060020a03828116908216141561020757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f4552525f53414d455f4144445245535300000000000000000000000000000000604482015290519081900360640190fd5b5050565b6000600160a060020a03821673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee141561023a575060126102c0565b81600160a060020a031663313ce5676040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561029157600080fd5b505af11580156102a5573d6000803e3d6000fd5b505050506040513d60208110156102bb57600080fd5b505190505b919050565b600160a060020a038116151561033c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b50565b6107f28061034e6000396000f3006080604052600436106100985763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630fc63d10811461009d5780635f64b55b146100ce5780638ee573ac146100e3578063ae8180041461011a578063b1772d7a1461015a578063b9e1715b1461019f578063c8f33c91146101b4578063cbd962d1146101db578063f997fda7146101fc575b600080fd5b3480156100a957600080fd5b506100b2610211565b60408051600160a060020a039092168252519081900360200190f35b3480156100da57600080fd5b506100b2610220565b3480156100ef57600080fd5b50610104600160a060020a036004351661022f565b6040805160ff9092168252519081900360200190f35b34801561012657600080fd5b50610141600160a060020a0360043581169060243516610244565b6040805192835260208301919091528051918290030190f35b34801561016657600080fd5b50610181600160a060020a0360043581169060243516610419565b60408051938452602084019290925282820152519081900360600190f35b3480156101ab57600080fd5b506100b2610448565b3480156101c057600080fd5b506101c9610457565b60408051918252519081900360200190f35b3480156101e757600080fd5b506100b2600160a060020a0360043516610599565b34801561020857600080fd5b506100b26105b4565b600054600160a060020a031681565b600154600160a060020a031681565b60026020526000908152604090205460ff1681565b600080600080600080878761025982826105c3565b600160a060020a03808b1660009081526005602090815260408083205481517f50d25bcd00000000000000000000000000000000000000000000000000000000815291519416936350d25bcd93600480840194938390030190829087803b1580156102c357600080fd5b505af11580156102d7573d6000803e3d6000fd5b505050506040513d60208110156102ed57600080fd5b5051600160a060020a03808b1660009081526005602090815260408083205481517f50d25bcd0000000000000000000000000000000000000000000000000000000081529151959b50909316936350d25bcd93600480820194918390030190829087803b15801561035d57600080fd5b505af1158015610371573d6000803e3d6000fd5b505050506040513d602081101561038757600080fd5b5051600160a060020a03808c1660009081526002602052604080822054928d16825290205491965060ff9081169550169250828411156103e0576103d98560ff85870316600a0a63ffffffff61066916565b9450610409565b8260ff168460ff161015610409576104068660ff86860316600a0a63ffffffff61066916565b95505b5093989297509195505050505050565b600080600080600061042b8787610244565b915091508181610439610457565b94509450945050509250925092565b600354600160a060020a031681565b6000806000600360009054906101000a9004600160a060020a0316600160a060020a0316638205bf6a6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156104c857600080fd5b505af11580156104dc573d6000803e3d6000fd5b505050506040513d60208110156104f257600080fd5b505160048054604080517f8205bf6a0000000000000000000000000000000000000000000000000000000081529051939550600160a060020a0390911692638205bf6a928281019260209291908290030181600087803b15801561055557600080fd5b505af1158015610569573d6000803e3d6000fd5b505050506040513d602081101561057f57600080fd5b505190508082116105905780610592565b815b9250505090565b600560205260009081526040902054600160a060020a031681565b600454600160a060020a031681565b6105cd82826106ed565b600160a060020a03828116600090815260056020526040902054161580159061060f5750600160a060020a038181166000908152600560205260409020541615155b1515610665576040805160e560020a62461bcd02815260206004820152601560248201527f4552525f554e535550504f525445445f544f4b454e0000000000000000000000604482015290519081900360640190fd5b5050565b60008083151561067c57600091506106e6565b5082820282848281151561068c57fe5b04146106e2576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b8091505b5092915050565b6106f682610763565b6106ff81610763565b600160a060020a038281169082161415610665576040805160e560020a62461bcd02815260206004820152601060248201527f4552525f53414d455f4144445245535300000000000000000000000000000000604482015290519081900360640190fd5b600160a060020a03811615156107c3576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b505600a165627a7a72305820cbe01ca5d8106253df6f9a272819eaf7073655d80bfe9974cf71d48b1af26f530029a165627a7a723058206ec04e3e8dfaba1e7a3aa666d6e6a719e372b861cdadcba2f873f5b72a9775220029", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x4B JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x1B27444E DUP2 EQ PUSH2 0x50 JUMPI DUP1 PUSH4 0x3E8FF43F EQ PUSH2 0xB9 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x90 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x44 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x64 CALLDATALOAD AND PUSH2 0xE5 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xC5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xCE PUSH2 0x151 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0xFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP5 DUP5 DUP5 DUP5 PUSH2 0xF3 PUSH2 0x156 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP5 DUP6 AND DUP2 MSTORE SWAP3 DUP5 AND PUSH1 0x20 DUP5 ADD MSTORE SWAP1 DUP4 AND PUSH1 0x40 DUP1 DUP5 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP3 AND PUSH1 0x60 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x80 ADD SWAP1 PUSH1 0x0 CREATE DUP1 ISZERO DUP1 ISZERO PUSH2 0x147 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xB40 DUP1 PUSH2 0x167 DUP4 CODECOPY ADD SWAP1 JUMP STOP PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH1 0x80 DUP1 PUSH2 0xB40 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 SWAP1 DUP2 MSTORE DUP2 MLOAD PUSH1 0x20 DUP4 ADD MLOAD SWAP2 DUP4 ADD MLOAD PUSH1 0x60 SWAP1 SWAP4 ADD MLOAD SWAP1 SWAP3 SWAP1 DUP4 DUP4 PUSH2 0x4C DUP3 DUP3 PUSH5 0x100000000 PUSH2 0x168 DUP2 MUL DIV JUMP JUMPDEST DUP4 DUP4 PUSH2 0x61 DUP3 DUP3 PUSH5 0x100000000 PUSH2 0x168 DUP2 MUL DIV JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP12 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT SWAP3 DUP4 AND OR SWAP1 SWAP3 SSTORE PUSH1 0x1 DUP1 SLOAD SWAP3 DUP11 AND SWAP3 SWAP1 SWAP2 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0xA3 DUP9 PUSH5 0x100000000 PUSH2 0x20B DUP2 MUL DIV JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP10 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0xFF SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0xDF DUP8 PUSH5 0x100000000 PUSH2 0x20B DUP2 MUL DIV JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP8 DUP9 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH1 0xFF SWAP7 SWAP1 SWAP7 AND PUSH1 0xFF NOT SWAP1 SWAP7 AND SWAP6 SWAP1 SWAP6 OR SWAP1 SWAP5 SSTORE PUSH1 0x3 DUP1 SLOAD SWAP11 DUP13 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT SWAP12 DUP13 AND DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x4 DUP1 SLOAD SWAP11 DUP14 AND SWAP11 DUP13 AND DUP12 OR SWAP1 SSTORE SWAP12 SWAP1 SWAP11 AND DUP2 MSTORE PUSH1 0x5 SWAP1 SWAP10 MSTORE DUP2 DUP10 KECCAK256 DUP1 SLOAD DUP10 AND SWAP1 SWAP11 OR SWAP1 SWAP10 SSTORE SWAP8 DUP8 MSTORE POP POP POP SWAP4 SWAP1 SWAP3 KECCAK256 DUP1 SLOAD SWAP1 SWAP2 AND SWAP1 SWAP2 OR SWAP1 SSTORE POP PUSH2 0x33F JUMP JUMPDEST PUSH2 0x17A DUP3 PUSH5 0x100000000 PUSH2 0x2C5 DUP2 MUL DIV JUMP JUMPDEST PUSH2 0x18C DUP2 PUSH5 0x100000000 PUSH2 0x2C5 DUP2 MUL DIV JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP1 DUP3 AND EQ ISZERO PUSH2 0x207 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F4144445245535300000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 AND PUSH20 0xEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE EQ ISZERO PUSH2 0x23A JUMPI POP PUSH1 0x12 PUSH2 0x2C0 JUMP JUMPDEST DUP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x313CE567 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH29 0x100000000000000000000000000000000000000000000000000000000 MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x291 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2A5 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2BB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0x33C JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x7F2 DUP1 PUSH2 0x34E PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x98 JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0xFC63D10 DUP2 EQ PUSH2 0x9D JUMPI DUP1 PUSH4 0x5F64B55B EQ PUSH2 0xCE JUMPI DUP1 PUSH4 0x8EE573AC EQ PUSH2 0xE3 JUMPI DUP1 PUSH4 0xAE818004 EQ PUSH2 0x11A JUMPI DUP1 PUSH4 0xB1772D7A EQ PUSH2 0x15A JUMPI DUP1 PUSH4 0xB9E1715B EQ PUSH2 0x19F JUMPI DUP1 PUSH4 0xC8F33C91 EQ PUSH2 0x1B4 JUMPI DUP1 PUSH4 0xCBD962D1 EQ PUSH2 0x1DB JUMPI DUP1 PUSH4 0xF997FDA7 EQ PUSH2 0x1FC JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB2 PUSH2 0x211 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xDA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB2 PUSH2 0x220 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xEF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x104 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x22F JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x126 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x141 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH2 0x244 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x166 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x181 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH2 0x419 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP4 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP3 SWAP1 SWAP3 MSTORE DUP3 DUP3 ADD MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1AB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB2 PUSH2 0x448 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1C0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1C9 PUSH2 0x457 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1E7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x599 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x208 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB2 PUSH2 0x5B4 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 DUP8 DUP8 PUSH2 0x259 DUP3 DUP3 PUSH2 0x5C3 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD DUP2 MLOAD PUSH32 0x50D25BCD00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP2 MLOAD SWAP5 AND SWAP4 PUSH4 0x50D25BCD SWAP4 PUSH1 0x4 DUP1 DUP5 ADD SWAP5 SWAP4 DUP4 SWAP1 SUB ADD SWAP1 DUP3 SWAP1 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2C3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2D7 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2ED JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD DUP2 MLOAD PUSH32 0x50D25BCD00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP2 MLOAD SWAP6 SWAP12 POP SWAP1 SWAP4 AND SWAP4 PUSH4 0x50D25BCD SWAP4 PUSH1 0x4 DUP1 DUP3 ADD SWAP5 SWAP2 DUP4 SWAP1 SUB ADD SWAP1 DUP3 SWAP1 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x35D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x371 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x387 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP13 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SLOAD SWAP3 DUP14 AND DUP3 MSTORE SWAP1 KECCAK256 SLOAD SWAP2 SWAP7 POP PUSH1 0xFF SWAP1 DUP2 AND SWAP6 POP AND SWAP3 POP DUP3 DUP5 GT ISZERO PUSH2 0x3E0 JUMPI PUSH2 0x3D9 DUP6 PUSH1 0xFF DUP6 DUP8 SUB AND PUSH1 0xA EXP PUSH4 0xFFFFFFFF PUSH2 0x669 AND JUMP JUMPDEST SWAP5 POP PUSH2 0x409 JUMP JUMPDEST DUP3 PUSH1 0xFF AND DUP5 PUSH1 0xFF AND LT ISZERO PUSH2 0x409 JUMPI PUSH2 0x406 DUP7 PUSH1 0xFF DUP7 DUP7 SUB AND PUSH1 0xA EXP PUSH4 0xFFFFFFFF PUSH2 0x669 AND JUMP JUMPDEST SWAP6 POP JUMPDEST POP SWAP4 SWAP9 SWAP3 SWAP8 POP SWAP2 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x42B DUP8 DUP8 PUSH2 0x244 JUMP JUMPDEST SWAP2 POP SWAP2 POP DUP2 DUP2 PUSH2 0x439 PUSH2 0x457 JUMP JUMPDEST SWAP5 POP SWAP5 POP SWAP5 POP POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x3 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x8205BF6A PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH29 0x100000000000000000000000000000000000000000000000000000000 MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x4C8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x4DC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x4F2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x4 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x8205BF6A00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD SWAP4 SWAP6 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP2 AND SWAP3 PUSH4 0x8205BF6A SWAP3 DUP3 DUP2 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x555 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x569 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x57F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 POP DUP1 DUP3 GT PUSH2 0x590 JUMPI DUP1 PUSH2 0x592 JUMP JUMPDEST DUP2 JUMPDEST SWAP3 POP POP POP SWAP1 JUMP JUMPDEST PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH2 0x5CD DUP3 DUP3 PUSH2 0x6ED JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD AND ISZERO DUP1 ISZERO SWAP1 PUSH2 0x60F JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD AND ISZERO ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x665 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F554E535550504F525445445F544F4B454E0000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 ISZERO ISZERO PUSH2 0x67C JUMPI PUSH1 0x0 SWAP2 POP PUSH2 0x6E6 JUMP JUMPDEST POP DUP3 DUP3 MUL DUP3 DUP5 DUP3 DUP2 ISZERO ISZERO PUSH2 0x68C JUMPI INVALID JUMPDEST DIV EQ PUSH2 0x6E2 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP1 SWAP2 POP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x6F6 DUP3 PUSH2 0x763 JUMP JUMPDEST PUSH2 0x6FF DUP2 PUSH2 0x763 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP1 DUP3 AND EQ ISZERO PUSH2 0x665 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F4144445245535300000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0x7C3 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP JUMP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 0xcb 0xe0 SHR 0xa5 0xd8 LT PUSH3 0x53DF6F SWAP11 0x27 0x28 NOT 0xea 0xf7 SMOD CALLDATASIZE SSTORE 0xd8 SIGNEXTEND INVALID SWAP10 PUSH21 0xCF71D48B1AF26F530029A165627A7A723058206EC0 0x4e RETURNDATACOPY DUP14 STATICCALL 0xba 0x1e PUSH27 0x3AA666D6E6A719E372B861CDADCBA2F873F5B72A97752200290000 ", - "sourceMap": "191:1162:27:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;938:412;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;938:412:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;407:81;;8:9:-1;5:2;;;30:1;27;20:12;5:2;407:81:27;;;;;;;;;;;;;;;;;;;;;;;938:412;1196:12;1249:20;1271:22;1295:21;1318:23;1233:109;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1233:109:27;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;1226:116:27;938:412;-1:-1:-1;;;;;938:412:27:o;407:81::-;479:1;407:81;:::o;191:1162::-;;;;;;;;;;:::o" - }, - "methodIdentifiers": { - "converterType()": "3e8ff43f", - "createPriceOracle(address,address,address,address)": "1b27444e" - } - }, - "userdoc": { - "methods": {} - } - } - }, - "solidity/contracts/converter/types/liquidity-pool-v2/LiquidityPoolV2ConverterFactory.sol": { - "LiquidityPoolV2ConverterFactory": { - "abi": [ - { - "constant": false, - "inputs": [ - { - "name": "_anchor", - "type": "address" - }, - { - "name": "_registry", - "type": "address" - }, - { - "name": "_maxConversionFee", - "type": "uint32" - } - ], - "name": "createConverter", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "converterType", - "outputs": [ - { - "name": "", - "type": "uint16" - } - ], - "payable": false, - "stateMutability": "pure", - "type": "function" - } - ], - "devdoc": { - "methods": { - "converterType()": { - "details": "returns the converter type the factory is associated with\r ", - "return": "converter type\r" - }, - "createConverter(address,address,uint32)": { - "details": "creates a new converter with the given arguments and transfers\r the ownership to the caller\r ", - "params": { - "_anchor": "anchor governed by the converter\r", - "_maxConversionFee": "maximum conversion fee, represented in ppm\r ", - "_registry": "address of a contract registry contract\r" - }, - "return": "new converter\r" - } - } - }, - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "608060405234801561001057600080fd5b506157d0806100206000396000f30060806040526004361061004b5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631141395881146100505780633e8ff43f146100b6575b600080fd5b34801561005c57600080fd5b5061008d73ffffffffffffffffffffffffffffffffffffffff6004358116906024351663ffffffff604435166100e2565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b3480156100c257600080fd5b506100cb6101d5565b6040805161ffff9092168252519081900360200190f35b6000808484846100f06101da565b73ffffffffffffffffffffffffffffffffffffffff938416815291909216602082015263ffffffff9091166040808301919091525190819003606001906000f080158015610142573d6000803e3d6000fd5b50604080517ff2fde38b000000000000000000000000000000000000000000000000000000008152336004820152905191925073ffffffffffffffffffffffffffffffffffffffff83169163f2fde38b9160248082019260009290919082900301818387803b1580156101b457600080fd5b505af11580156101c8573d6000803e3d6000fd5b5092979650505050505050565b600290565b6040516155ba806101eb833901905600608060405260016004819055600980546001606060020a03191690556015805460ff19169091179055620111706016553480156200003c57600080fd5b50604051606080620055ba83398101604090815281516020830151919092015160008054600160a060020a0319163317905582828282828281806200008a8164010000000062000137810204565b5060028054600160a060020a03909216600160a060020a031992831681179091556003805490921617905582620000ca8164010000000062000137810204565b81620000df81640100000000620001b2810204565b505060058054600160a060020a03909416600160a060020a031990941693909317909255506009805463ffffffff9092166401000000000267ffffffff0000000019909216919091179055506200022b945050505050565b600160a060020a0381161515620001af57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b50565b620f424063ffffffff82161115620001af57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f4552525f494e56414c49445f434f4e56455253494f4e5f464545000000000000604482015290519081900360640190fd5b61537f806200023b6000396000f3006080604052600436106103125763ffffffff60e060020a6000350416625e319c81146103b0578063024c7ec7146103e35780630337e3fb146103fd5780630a55fb3d1461042e5780630c7d5cd8146104575780630e53aae914610485578063119b90cd146104da57806312c2aca41461050757806316912f961461051c57806319b64015146105315780631cfab290146105495780631e1401f81461056a57806321e6b53d146105ad57806322f3e2d4146105ce5780632630c12f146105e35780632bd3c107146105f85780632bf0c985146106195780632fe8a6ad1461063a57806338a5e0161461064f578063395900d4146106645780633e8ff43f1461068e57806346749468146106ba57806349d10b64146106d55780634af80f0e146106ea57806354fd4d501461070b57806355776b77146107205780635768adcf1461073a578063579cd3ca1461075b5780635e35359e1461077057806361cd756e1461079a57806367b6d57c146107af57806369067d95146107d0578063690d8320146107f457806369d1354a146108155780636a49d2c41461082d57806371f52bf31461085757806379ba50971461086c5780637b103999146108815780638da5cb5b1461089657806394c275ad146108ab57806398a71dcb146108c05780639b99a8e2146108e1578063a32bff44146108f6578063af94b8d81461090b578063b4a176d314610935578063bf7545581461094a578063bf7da6ba1461095f578063c3321fb014610983578063c45d3d9214610998578063cdc91c69146109ad578063d031370b146109c2578063d260529c146109da578063d3fb73b4146109ef578063d4ee1d9014610a04578063d55ec69714610a19578063d64c5a1a14610a2e578063d66bd52414610a59578063d895951214610a7a578063db2830a414610a9b578063dc75eb9a14610ab0578063dc8de37914610ac5578063e38192e314610ae6578063e8104af914610b0d578063e8dc12ff14610b22578063ec2240f514610b4c578063ecbca55d14610b61578063f2fde38b14610b7f578063f9cddde214610ba0578063fc0c546a14610bb5575b6000805160206152f483398151915260005260086020527f353c2eb9e53a4a4a6d45d72082ff2e9dc829d1125618772a83eb0e7f86632c43546601000000000000900460ff1615156103ae576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f5245534552564500000000000000000000000000604482015290519081900360640190fd5b005b3480156103bc57600080fd5b506103d1600160a060020a0360043516610bca565b60408051918252519081900360200190f35b3480156103ef57600080fd5b506103ae6004351515610bf3565b34801561040957600080fd5b50610412610c3b565b60408051600160a060020a039092168252519081900360200190f35b34801561043a57600080fd5b50610443610c4a565b604080519115158252519081900360200190f35b34801561046357600080fd5b5061046c610c53565b6040805163ffffffff9092168252519081900360200190f35b34801561049157600080fd5b506104a6600160a060020a0360043516610c5f565b6040805195865263ffffffff9094166020860152911515848401521515606084015215156080830152519081900360a00190f35b3480156104e657600080fd5b506103ae600160a060020a0360043581169060243581169060443516610cfa565b34801561051357600080fd5b50610443611464565b34801561052857600080fd5b506103ae6114ad565b34801561053d57600080fd5b506104126004356114c1565b34801561055557600080fd5b5061046c600160a060020a03600435166114ed565b34801561057657600080fd5b50610594600160a060020a036004358116906024351660443561151f565b6040805192835260208301919091528051918290030190f35b3480156105b957600080fd5b506103ae600160a060020a0360043516611539565b3480156105da57600080fd5b5061044361154d565b3480156105ef57600080fd5b50610412611582565b34801561060457600080fd5b506103d1600160a060020a03600435166115a1565b34801561062557600080fd5b506103d1600160a060020a03600435166115f6565b34801561064657600080fd5b506104436116d9565b34801561065b57600080fd5b506103ae6116fa565b34801561067057600080fd5b506103ae600160a060020a036004358116906024351660443561170c565b34801561069a57600080fd5b506106a36117a7565b6040805161ffff9092168252519081900360200190f35b3480156106c657600080fd5b506103ae6004356024356117ac565b3480156106e157600080fd5b506103ae611830565b3480156106f657600080fd5b506103ae600160a060020a0360043516611a90565b34801561071757600080fd5b506106a3611ac5565b6103d1600160a060020a0360043516602435604435611aca565b34801561074657600080fd5b50610412600160a060020a0360043516612033565b34801561076757600080fd5b5061046c612051565b34801561077c57600080fd5b506103ae600160a060020a0360043581169060243516604435612069565b3480156107a657600080fd5b5061041261217d565b3480156107bb57600080fd5b506103ae600160a060020a036004351661218c565b3480156107dc57600080fd5b50610594600160a060020a036004351660243561222f565b34801561080057600080fd5b506103ae600160a060020a036004351661238a565b34801561082157600080fd5b506103ae60043561248f565b34801561083957600080fd5b506103ae600160a060020a036004351663ffffffff60243516612534565b34801561086357600080fd5b506106a3612593565b34801561087857600080fd5b506103ae61259d565b34801561088d57600080fd5b50610412612651565b3480156108a257600080fd5b50610412612660565b3480156108b757600080fd5b5061046c61266f565b3480156108cc57600080fd5b506103d1600160a060020a0360043516612683565b3480156108ed57600080fd5b506106a3612695565b34801561090257600080fd5b5061059461269b565b34801561091757600080fd5b50610594600160a060020a03600435811690602435166044356126a4565b34801561094157600080fd5b506103ae612848565b34801561095657600080fd5b50610443612874565b34801561096b57600080fd5b506103ae600160a060020a0360043516602435612879565b34801561098f57600080fd5b506103d16128c1565b3480156109a457600080fd5b506104126128c7565b3480156109b957600080fd5b506103ae6128d6565b3480156109ce57600080fd5b5061041260043561292f565b3480156109e657600080fd5b50610443612957565b3480156109fb57600080fd5b5061041261295c565b348015610a1057600080fd5b5061041261296b565b348015610a2557600080fd5b506103ae61297a565b348015610a3a57600080fd5b50610a43612a6f565b6040805160ff9092168252519081900360200190f35b348015610a6557600080fd5b506104a6600160a060020a0360043516612a74565b348015610a8657600080fd5b506103d1600160a060020a0360043516612aba565b348015610aa757600080fd5b50610594612acb565b348015610abc57600080fd5b50610412612af0565b348015610ad157600080fd5b506103d1600160a060020a0360043516612aff565b348015610af257600080fd5b506103d1600160a060020a0360043516602435604435612b28565b348015610b1957600080fd5b506103d1612e8d565b6103d1600160a060020a036004358116906024358116906044359060643581169060843516612e93565b348015610b5857600080fd5b506105946130e6565b348015610b6d57600080fd5b506103ae63ffffffff60043516613166565b348015610b8b57600080fd5b506103ae600160a060020a036004351661325b565b348015610bac57600080fd5b506105946132eb565b348015610bc157600080fd5b506104126132f4565b600081610bd681613303565b5050600160a060020a03166000908152600c602052604090205490565b610bfb613382565b60038054911515740100000000000000000000000000000000000000000274ff000000000000000000000000000000000000000019909216919091179055565b600a54600160a060020a031681565b60155460ff1681565b60095463ffffffff1681565b6000806000806000610c6f61526f565b50505050600160a060020a03929092166000908152600860209081526040808320815160a081018352815480825260019092015463ffffffff811694820185905260ff64010000000082048116151594830194909452650100000000008104841615156060830152660100000000000090049092161515608090920182905295919450919250829190565b6000806000806000610d0a6133d2565b610d12613382565b87610d1c81613303565b87610d268161342f565b87610d308161342f565b89610d3a81613490565b89610d4481613490565b600554604080517f8da5cb5b00000000000000000000000000000000000000000000000000000000815290513092600160a060020a031691638da5cb5b9160048083019260209291908290030181600087803b158015610da357600080fd5b505af1158015610db7573d6000803e3d6000fd5b505050506040513d6020811015610dcd57600080fd5b5051600160a060020a031614610e2d576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f414e43484f525f4e4f545f4f574e4544000000000000000000000000604482015290519081900360640190fd5b610e567f436861696e6c696e6b4f7261636c6557686974656c69737400000000000000006134f0565b995089600160a060020a0316633af32abf8d6040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b158015610eb357600080fd5b505af1158015610ec7573d6000803e3d6000fd5b505050506040513d6020811015610edd57600080fd5b50511515610f35576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f494e56414c49445f4f5241434c450000000000000000000000000000604482015290519081900360640190fd5b89600160a060020a0316633af32abf8c6040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b158015610f9057600080fd5b505af1158015610fa4573d6000803e3d6000fd5b505050506040513d6020811015610fba57600080fd5b50511515611012576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f494e56414c49445f4f5241434c450000000000000000000000000000604482015290519081900360640190fd5b61101a613588565b600a8054600160a060020a031916600160a060020a038f1617905560078054600090811061104457fe5b600091825260209091200154600160a060020a038e8116911614156110a25760078054600190811061107257fe5b600091825260209091200154600b8054600160a060020a031916600160a060020a039092169190911790556110dd565b6007805460009081106110b157fe5b600091825260209091200154600b8054600160a060020a031916600160a060020a039092169190911790555b6111067f436f6e766572746572466163746f7279000000000000000000000000000000006134f0565b600160a060020a031663c977aed261111c6117a7565b6040518263ffffffff1660e060020a028152600401808261ffff1661ffff168152602001915050602060405180830381600087803b15801561115d57600080fd5b505af1158015611171573d6000803e3d6000fd5b505050506040513d602081101561118757600080fd5b8101908080519060200190929190505050985088600160a060020a0316631b27444e8e600b60009054906101000a9004600160a060020a03168f8f6040518563ffffffff1660e060020a0281526004018085600160a060020a0316600160a060020a0316815260200184600160a060020a0316600160a060020a0316815260200183600160a060020a0316600160a060020a0316815260200182600160a060020a0316600160a060020a03168152602001945050505050602060405180830381600087803b15801561125857600080fd5b505af115801561126c573d6000803e3d6000fd5b505050506040513d602081101561128257600080fd5b5051600980546bffffffffffffffffffffffff166c01000000000000000000000000600160a060020a0393841681029190911791829055600a54600b54604080517fae818004000000000000000000000000000000000000000000000000000000008152928616600484015290851660248301528051929093049093169263ae8180049260448083019391928290030181600087803b15801561132457600080fd5b505af1158015611338573d6000803e3d6000fd5b505050506040513d604081101561134e57600080fd5b5080516020909101516010819055600f8290556012919091556013556113726137c4565b601155600a5461138a90600160a060020a0316610bca565b600a549098506113a290600160a060020a0316612aff565b600b549097506113ba90600160a060020a0316612aff565b9550868814156113e55760008811806113d35750600086115b156113e0576113e06137c8565b61140e565b6000881180156113f55750600087115b80156114015750600086115b1561140e5761140e6137c8565b600554600190600160a060020a03166114256117a7565b61ffff167f6b08c2e2c9969e55a647a764db9b554d64dc42f1a704da11a6d5b129ad163f2c60405160405180910390a450505050505050505050505050565b6000805160206152f483398151915260005260086020527f353c2eb9e53a4a4a6d45d72082ff2e9dc829d1125618772a83eb0e7f86632c43546601000000000000900460ff1690565b6114b5613382565b6015805460ff19169055565b60006007828154811015156114d257fe5b600091825260209091200154600160a060020a031692915050565b6000816114f981613303565b5050600160a060020a031660009081526008602052604090206001015463ffffffff1690565b60008061152d8585856126a4565b91509150935093915050565b611541613382565b61154a8161218c565b50565b6000611557613840565b801561157d57506009546c010000000000000000000000009004600160a060020a031615155b905090565b6009546c010000000000000000000000009004600160a060020a031681565b6000816115ad81613303565b6115ef6115b984612aff565b600160a060020a0385166000908152600c60205260409020546115e390601363ffffffff6138da16565b9063ffffffff61395e16565b9392505050565b600080600080600085600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561163c57600080fd5b505af1158015611650573d6000803e3d6000fd5b505050506040513d602081101561166657600080fd5b5051600160a060020a038088166000908152600e602052604090205491955016925061169183612aff565b600160a060020a0384166000908152600c602052604090205490925090506116cf816116c3848763ffffffff6138da16565b9063ffffffff6139bb16565b9695505050505050565b60035474010000000000000000000000000000000000000000900460ff1681565b611702613382565b61170a6128d6565b565b611714613382565b600554604080517f5e35359e000000000000000000000000000000000000000000000000000000008152600160a060020a03868116600483015285811660248301526044820185905291519190921691635e35359e91606480830192600092919082900301818387803b15801561178a57600080fd5b505af115801561179e573d6000803e3d6000fd5b50505050505050565b600290565b6117b4613382565b8160146000600760008154811015156117c957fe5b6000918252602080832090910154600160a060020a031683528201929092526040018120919091556007805483926014929091600190811061180757fe5b6000918252602080832090910154600160a060020a031683528201929092526040019020555050565b60008054600160a060020a0316331480611865575060035474010000000000000000000000000000000000000000900460ff16155b15156118a9576040805160e560020a62461bcd0281526020600482015260116024820152600080516020615314833981519152604482015290519081900360640190fd5b6118d27f436f6e74726163745265676973747279000000000000000000000000000000006134f0565b600254909150600160a060020a038083169116148015906118fb5750600160a060020a03811615155b1515611951576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e56414c49445f5245474953545259000000000000000000000000604482015290519081900360640190fd5b604080517fbb34534c0000000000000000000000000000000000000000000000000000000081527f436f6e747261637452656769737472790000000000000000000000000000000060048201529051600091600160a060020a0384169163bb34534c9160248082019260209290919082900301818787803b1580156119d557600080fd5b505af11580156119e9573d6000803e3d6000fd5b505050506040513d60208110156119ff57600080fd5b5051600160a060020a03161415611a60576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e56414c49445f5245474953545259000000000000000000000000604482015290519081900360640190fd5b6002805460038054600160a060020a03808416600160a060020a0319928316179092559091169216919091179055565b611a98613382565b80611aa28161342f565b5060068054600160a060020a031916600160a060020a0392909216919091179055565b602081565b6000806000806000611ada613a29565b6002600455611ae7613a83565b87611af181613303565b87611afb81613ae1565b87611b0581613ae1565b600160a060020a038b166000805160206152f483398151915214611b2a573415611b2e565b8934145b1515611b84576040805160e560020a62461bcd02815260206004820152601760248201527f4552525f4554485f414d4f554e545f4d49534d41544348000000000000000000604482015290519081900360640190fd5b611b8c613b39565b600160a060020a038b166000805160206152f48339815191521415611c2e576000805160206152f483398151915260005260086020527f353c2eb9e53a4a4a6d45d72082ff2e9dc829d1125618772a83eb0e7f86632c4254611bf4903463ffffffff613b7b16565b6000805160206152f483398151915260005260086020527f353c2eb9e53a4a4a6d45d72082ff2e9dc829d1125618772a83eb0e7f86632c42555b600160a060020a038b166000908152600c602052604090205460155490975060ff1615611cf757600160a060020a038b166000908152601460205260409020541580611ca15750600160a060020a038b16600090815260146020526040902054611c9e888c63ffffffff61395e16565b11155b1515611cf7576040805160e560020a62461bcd02815260206004820152601e60248201527f4552525f4d41585f5354414b45445f42414c414e43455f524541434845440000604482015290519081900360640190fd5b600160a060020a03808c166000908152600d602090815260408083205481517f18160ddd00000000000000000000000000000000000000000000000000000000815291519416995089936318160ddd93600480840194938390030190829087803b158015611d6457600080fd5b505af1158015611d78573d6000803e3d6000fd5b505050506040513d6020811015611d8e57600080fd5b50519450600160a060020a038b166000805160206152f483398151915214611dbc57611dbc8b33308d613bdb565b600160a060020a038b16600090815260086020526040902054611de5908b63ffffffff61395e16565b600160a060020a038c16600090815260086020526040902055611e0e878b63ffffffff61395e16565b600160a060020a038c166000908152600c60205260408120919091559350861580611e37575084155b15611e4457899350611e5b565b611e58876116c38c8863ffffffff6138da16565b93505b88841015611eb3576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f52455455524e5f544f4f5f4c4f570000000000000000000000000000604482015290519081900360640190fd5b600554604080517fc6c3bbe6000000000000000000000000000000000000000000000000000000008152600160a060020a038981166004830152336024830152604482018890529151919092169163c6c3bbe691606480830192600092919082900301818387803b158015611f2757600080fd5b505af1158015611f3b573d6000803e3d6000fd5b50505050611f476137c8565b600160a060020a038b16337f4a1a2a6176e9646d9e3157f7c2ab3c499f18337c0b0828cfb28e0a61de4a11f78c611f848b8263ffffffff61395e16565b611f948a8a63ffffffff61395e16565b60408051938452602084019290925282820152519081900360600190a3611fcb86611fc5878763ffffffff61395e16565b8d613cc3565b61202060076000815481101515611fde57fe5b60009182526020909120015460078054600160a060020a0390921691600190811061200557fe5b6000918252602082200154600160a060020a03169080613d23565b5050600160045550979650505050505050565b600160a060020a039081166000908152600d60205260409020541690565b60095468010000000000000000900463ffffffff1681565b6000612073613a29565b6002600455612080613382565b6120976000805160206152d48339815191526134f0565b600160a060020a0385166000908152600860205260409020600101549091506601000000000000900460ff1615806120d457506120d261154d565b155b806120ec5750600054600160a060020a038281169116145b1515612130576040805160e560020a62461bcd0281526020600482015260116024820152600080516020615314833981519152604482015290519081900360640190fd5b61213b848484613d8f565b600160a060020a0384166000908152600860205260409020600101546601000000000000900460ff16156121725761217284613dc0565b505060016004555050565b600354600160a060020a031681565b612194613382565b6000805160206152d48339815191526121ac81613eb4565b600554604080517ff2fde38b000000000000000000000000000000000000000000000000000000008152600160a060020a0385811660048301529151919092169163f2fde38b91602480830192600092919082900301818387803b15801561221357600080fd5b505af1158015612227573d6000803e3d6000fd5b505050505050565b6000806000806000806000806000808b600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561227c57600080fd5b505af1158015612290573d6000803e3d6000fd5b505050506040513d60208110156122a657600080fd5b5051600160a060020a03808e166000908152600e60209081526040808320549093168252600c905220549098509650878b101561237157600a54600160a060020a03166000908152600c602052604090205461230990601463ffffffff6138da16565b600a5490965061232190600160a060020a03166115a1565b9450848610612331578486612334565b85855b909450925061234d886116c38d8a63ffffffff6138da16565b9150612363836116c3848763ffffffff6138da16565b99505088810397508861237b565b9598506000975088955b50505050505050509250929050565b6000612394613a29565b60026004556123a1613382565b6000805160206152f48339815191526123b981613303565b6123d06000805160206152d48339815191526134f0565b91506123da61154d565b15806123f35750600054600160a060020a038381169116145b1515612437576040805160e560020a62461bcd0281526020600482015260116024820152600080516020615314833981519152604482015290519081900360640190fd5b604051600160a060020a03841690303180156108fc02916000818181858888f1935050505015801561246d573d6000803e3d6000fd5b506124856000805160206152f4833981519152613dc0565b5050600160045550565b612497613382565b620186a08111156124f2576040805160e560020a62461bcd02815260206004820152601e60248201527f4552525f494e56414c49445f44594e414d49435f4645455f464143544f520000604482015290519081900360640190fd5b601654604080519182526020820183905280517f382fd3516344712a511dcd464ff8e6ab54139d6a28f64087a3253353ee7a56799281900390910190a1601655565b600261253e612695565b61ffff1610612585576040805160e560020a62461bcd0281526020600482015260196024820152600080516020615334833981519152604482015290519081900360640190fd5b61258f8282613f0a565b5050565b600061157d612695565b600154600160a060020a031633146125ed576040805160e560020a62461bcd0281526020600482015260116024820152600080516020615314833981519152604482015290519081900360640190fd5b60015460008054604051600160a060020a0393841693909116917f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91a36001805460008054600160a060020a0319908116600160a060020a03841617909155169055565b600254600160a060020a031681565b600054600160a060020a031681565b600954640100000000900463ffffffff1681565b60146020526000908152604090205481565b60075490565b600f5460105482565b6000806000806126b261529d565b6000806000806126c0613a83565b6126c98c613303565b6126d28b613303565b600160a060020a038c8116908c161415612736576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f53414d455f534f555243455f54415247455400000000000000000000604482015290519081900360640190fd5b61273e6137c4565b60115414156127e557600f604080519081016040529081600082015481526020016001820154815250509450600860008d600160a060020a0316600160a060020a0316815260200190815260200160002060010160009054906101000a900463ffffffff169650600860008c600160a060020a0316600160a060020a0316815260200190815260200160002060010160009054906101000a900463ffffffff169550612825565b6127ed61413c565b94506127f885614380565b600a549195509350600160a060020a038d81169116141561281e57839650829550612825565b8296508395505b6128338c8c8989898f6144aa565b919e919d50909b505050505050505050505050565b612850613382565b60035460028054600160a060020a031916600160a060020a03909216919091179055565b600181565b612881613382565b6000805160206152d483398151915261289981613eb4565b826128a381613303565b5050600160a060020a039091166000908152600c6020526040902055565b60115481565b600654600160a060020a031681565b60016128e0612695565b61ffff1611612927576040805160e560020a62461bcd0281526020600482015260196024820152600080516020615334833981519152604482015290519081900360640190fd5b61170a614646565b600780548290811061293d57fe5b600091825260209091200154600160a060020a0316905081565b600190565b600554600160a060020a031681565b600154600160a060020a031681565b6000612984613382565b61299b6000805160206152d48339815191526134f0565b600554909150600090600160a060020a03166129b56117a7565b61ffff167f6b08c2e2c9969e55a647a764db9b554d64dc42f1a704da11a6d5b129ad163f2c60405160405180910390a46129ee8161325b565b604080517f90f58c96000000000000000000000000000000000000000000000000000000008152602060048201529051600160a060020a038316916390f58c9691602480830192600092919082900301818387803b158015612a4f57600080fd5b505af1158015612a63573d6000803e3d6000fd5b5050505061154a61259d565b601490565b6008602052600090815260409020805460019091015463ffffffff81169060ff640100000000820481169165010000000000810482169166010000000000009091041685565b6000612ac582612aff565b92915050565b600080612ad661529d565b612ade61413c565b80516020909101519094909350915050565b600b54600160a060020a031681565b600081612b0b81613303565b5050600160a060020a031660009081526008602052604090205490565b600080600080600080612b39613a29565b6002600455612b46613a83565b88612b5081614712565b88612b5a81613ae1565b88612b6481613ae1565b612b6c613b39565b8b600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015612baa57600080fd5b505af1158015612bbe573d6000803e3d6000fd5b505050506040513d6020811015612bd457600080fd5b50519750612be28c8c61222f565b50965089871015612c3d576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f52455455524e5f544f4f5f4c4f570000000000000000000000000000604482015290519081900360640190fd5b600e60008d600160a060020a0316600160a060020a0316815260200190815260200160002060009054906101000a9004600160a060020a03169550600560009054906101000a9004600160a060020a0316600160a060020a031663f6b911bc8d338e6040518463ffffffff1660e060020a0281526004018084600160a060020a0316600160a060020a0316815260200183600160a060020a0316600160a060020a031681526020018281526020019350505050600060405180830381600087803b158015612d0a57600080fd5b505af1158015612d1e573d6000803e3d6000fd5b505050600160a060020a038716600090815260086020526040902054612d4b91508863ffffffff613b7b16565b600160a060020a038716600090815260086020908152604080832093909355600c90522054612d80908863ffffffff613b7b16565b600160a060020a0387166000818152600c602052604090208290559095506000805160206152f48339815191521415612de657604051339088156108fc029089906000818181858888f19350505050158015612de0573d6000803e3d6000fd5b50612df1565b612df1863389614783565b612df96137c8565b612e09888c63ffffffff613b7b16565b60408051898152602081018890528082018390529051919550600160a060020a0388169133917fbc7d19d505c7ec4db83f3b51f19fb98c4c8a99922e7839d1ee608dfbee29501b919081900360600190a3612e658c8588613cc3565b612e7860076000815481101515611fde57fe5b50506001600455509298975050505050505050565b60165481565b6000612e9d613a29565b60026004557f536f7672796e537761704e6574776f726b000000000000000000000000000000612ecc81613eb4565b600160a060020a038781169087161415612f30576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f53414d455f534f555243455f54415247455400000000000000000000604482015290519081900360640190fd5b600654600160a060020a031615806130735750600654604080517f3af32abf000000000000000000000000000000000000000000000000000000008152600160a060020a03878116600483015291519190921691633af32abf9160248083019260209291908290030181600087803b158015612fab57600080fd5b505af1158015612fbf573d6000803e3d6000fd5b505050506040513d6020811015612fd557600080fd5b505180156130735750600654604080517f3af32abf000000000000000000000000000000000000000000000000000000008152600160a060020a03868116600483015291519190921691633af32abf9160248083019260209291908290030181600087803b15801561304657600080fd5b505af115801561305a573d6000803e3d6000fd5b505050506040513d602081101561307057600080fd5b50515b15156130c9576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f4e4f545f57484954454c495354454400000000000000000000000000604482015290519081900360640190fd5b6130d6878787878761483a565b6001600455979650505050505050565b6000806130f161529d565b6000806130fc61413c565b925061310783614380565b915091506007600081548110151561311b57fe5b600091825260209091200154600a54600160a060020a03908116911614156131505763ffffffff80831695508116935061315f565b63ffffffff8082169550821693505b5050509091565b61316e613382565b60095463ffffffff640100000000909104811690821611156131da576040805160e560020a62461bcd02815260206004820152601a60248201527f4552525f494e56414c49445f434f4e56455253494f4e5f464545000000000000604482015290519081900360640190fd5b6009546040805163ffffffff6801000000000000000090930483168152918316602083015280517f81cd2ffb37dd237c0e4e2a3de5265fcf9deb43d3e7801e80db9f1ccfba7ee6009281900390910190a16009805463ffffffff90921668010000000000000000026bffffffff000000000000000019909216919091179055565b613263613382565b600054600160a060020a03828116911614156132c9576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f53414d455f4f574e4552000000000000000000000000000000000000604482015290519081900360640190fd5b60018054600160a060020a031916600160a060020a0392909216919091179055565b60125460135482565b600554600160a060020a031690565b600160a060020a0381166000908152600860205260409020600101546601000000000000900460ff16151561154a576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f5245534552564500000000000000000000000000604482015290519081900360640190fd5b600054600160a060020a0316331461170a576040805160e560020a62461bcd0281526020600482015260116024820152600080516020615314833981519152604482015290519081900360640190fd5b6133da61154d565b1561170a576040805160e560020a62461bcd02815260206004820152600a60248201527f4552525f41435449564500000000000000000000000000000000000000000000604482015290519081900360640190fd5b600160a060020a03811630141561154a576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f414444524553535f49535f53454c4600000000000000000000000000604482015290519081900360640190fd5b600160a060020a038116151561154a576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b600254604080517fbb34534c000000000000000000000000000000000000000000000000000000008152600481018490529051600092600160a060020a03169163bb34534c91602480830192602092919082900301818787803b15801561355657600080fd5b505af115801561356a573d6000803e3d6000fd5b505050506040513d602081101561358057600080fd5b505192915050565b60006060600080600080600560009054906101000a9004600160a060020a0316955085600160a060020a0316636d3e313e6040518163ffffffff1660e060020a028152600401600060405180830381600087803b1580156135e857600080fd5b505af11580156135fc573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561362557600080fd5b81019080805164010000000081111561363d57600080fd5b8201602081018481111561365057600080fd5b815185602082028301116401000000008211171561366d57600080fd5b505080516007549199501597509550600094505050505b828210156122275783156137035785600160a060020a0316639cbf9e366040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156136d057600080fd5b505af11580156136e4573d6000803e3d6000fd5b505050506040513d60208110156136fa57600080fd5b5051905061371e565b848281518110151561371157fe5b9060200190602002015190505b80600d600060078581548110151561373257fe5b600091825260208083209190910154600160a060020a03908116845290830193909352604090910190208054600160a060020a03191692909116919091179055600780548390811061378057fe5b6000918252602080832090910154600160a060020a038481168452600e90925260409092208054600160a060020a0319169190921617905560019190910190613684565b4290565b60408051808201909152600f548152601054602082015260009081906137ed90614380565b600a54600160a060020a039081166000908152600860205260408082206001908101805463ffffffff97881663ffffffff1991821617909155600b54909416835291200180549290931691161790555050565b600030600160a060020a0316600560009054906101000a9004600160a060020a0316600160a060020a0316638da5cb5b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561389f57600080fd5b505af11580156138b3573d6000803e3d6000fd5b505050506040513d60208110156138c957600080fd5b5051600160a060020a031614905090565b6000808315156138ed5760009150613957565b508282028284828115156138fd57fe5b0414613953576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b8091505b5092915050565b600082820183811015613953576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b600080808311613a15576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f4449564944455f42595f5a45524f0000000000000000000000000000604482015290519081900360640190fd5b8284811515613a2057fe5b04949350505050565b60045460011461170a576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f5245454e5452414e4359000000000000000000000000000000000000604482015290519081900360640190fd5b613a8b61154d565b151561170a576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f494e4143544956450000000000000000000000000000000000000000604482015290519081900360640190fd5b6000811161154a576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f5a45524f5f56414c5545000000000000000000000000000000000000604482015290519081900360640190fd5b60075460005b8181101561258f57613b73600782815481101515613b5957fe5b600091825260209091200154600160a060020a0316613dc0565b600101613b3f565b600081831015613bd5576040805160e560020a62461bcd02815260206004820152600d60248201527f4552525f554e444552464c4f5700000000000000000000000000000000000000604482015290519081900360640190fd5b50900390565b604080517f7472616e7366657246726f6d28616464726573732c616464726573732c75696e81527f74323536290000000000000000000000000000000000000000000000000000006020808301919091528251918290036025018220600160a060020a038088166024850152861660448401526064808401869052845180850390910181526084909301909352810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1990931692909217909152613cbd90859061492d565b50505050565b600160a060020a038082166000818152600c6020908152604091829020548251908152908101869052815192938716927f77f29993cf2c084e726f7e802da0719d6a0ade3e204badc7a3ffd57ecb768c24929181900390910190a3505050565b613d2b61529d565b613d37858585856149bb565b805160208083015160408051938452918301528051929350600160a060020a0380881693908916927f77f29993cf2c084e726f7e802da0719d6a0ade3e204badc7a3ffd57ecb768c2492908290030190a35050505050565b613d97613382565b82613da181613490565b82613dab81613490565b83613db58161342f565b612227868686614783565b80613dca81613303565b600160a060020a0382166000805160206152f48339815191521415613e0a57600160a060020a03821660009081526008602052604090203031905561258f565b604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a038416916370a082319160248083019260209291908290030181600087803b158015613e6b57600080fd5b505af1158015613e7f573d6000803e3d6000fd5b505050506040513d6020811015613e9557600080fd5b5051600160a060020a0383166000908152600860205260409020555050565b613ebd816134f0565b600160a060020a0316331461154a576040805160e560020a62461bcd0281526020600482015260116024820152600080516020615314833981519152604482015290519081900360640190fd5b6000613f14613382565b613f1c6133d2565b82613f2681613490565b83613f308161342f565b83613f3a81614a83565b600554600160a060020a03878116911614801590613f7e5750600160a060020a0386166000908152600860205260409020600101546601000000000000900460ff16155b1515613fd4576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f5245534552564500000000000000000000000000604482015290519081900360640190fd5b60095463ffffffff908116620f4240038116908616111561403f576040805160e560020a62461bcd02815260206004820152601a60248201527f4552525f494e56414c49445f524553455256455f574549474854000000000000604482015290519081900360640190fd5b61ffff61404a612695565b61ffff1610614091576040805160e560020a62461bcd0281526020600482015260196024820152600080516020615334833981519152604482015290519081900360640190fd5b505050600160a060020a0390921660008181526008602052604081208181556001908101805466ff0000000000001963ffffffff80881663ffffffff1993841617919091166601000000000000179092556007805493840181559093527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c6889091018054600160a060020a03191690931790925560098054808416909401909216921691909117905550565b61414461529d565b60008060008061415261529d565b61415a61529d565b600954600a54600b54604080517fb1772d7a000000000000000000000000000000000000000000000000000000008152600160a060020a0393841660048201529183166024830152516000938493849384936c010000000000000000000000009093049091169163b1772d7a9160448082019260609290919082900301818787803b1580156141e857600080fd5b505af11580156141fc573d6000803e3d6000fd5b505050506040513d606081101561421257600080fd5b5080516020820151604090920151601154919c50919a5090985088111561424f5760408051908101604052808b81526020018a8152509a50614373565b60115461425a6137c4565b0396508615156142825760408051808201909152600f54815260105460208201529a50614373565b61025887106142a95760408051808201909152601254815260135460208201529a50614373565b604080518082018252600f548152601054602080830191825283518085019094526012548085526013549185019190915290519198509196506142f19163ffffffff6138da16565b6020860151875191955061430b919063ffffffff6138da16565b9250614335614320858963ffffffff6138da16565b6115e3856102588b900363ffffffff6138da16565b9150614364610258614358876020015189602001516138da90919063ffffffff16565b9063ffffffff6138da16565b90506143708282614af8565b9a505b5050505050505050505090565b600a54600160a060020a03166000818152600c60205260408120549091829190829081906143ad906115a1565b600b549092506143c590600160a060020a03166115a1565b90506143f07f536f7672796e53776170466f726d756c610000000000000000000000000000006134f0565b600160a060020a031663a11aa1b461440f85601463ffffffff6138da16565b885160208a01516040805160e060020a63ffffffff87160281526004810194909452602484018890526044840187905260648401929092526084830152805160a4808401938290030181600087803b15801561446a57600080fd5b505af115801561447e573d6000803e3d6000fd5b505050506040513d604081101561449457600080fd5b5080516020909101519095509350505050915091565b60008080808063ffffffff891615156144e257600160a060020a038b1660009081526008602052604090206001015463ffffffff1698505b63ffffffff8816151561451457600160a060020a038a1660009081526008602052604090206001015463ffffffff1697505b61451d8b6115a1565b91506145288a6115a1565b90506145537f536f7672796e53776170466f726d756c610000000000000000000000000000006134f0565b604080517f94491fab0000000000000000000000000000000000000000000000000000000081526004810185905263ffffffff808d166024830152604482018590528b166064820152608481018990529051600160a060020a0392909216916394491fab9160a4808201926020929091908290030181600087803b1580156145da57600080fd5b505af11580156145ee573d6000803e3d6000fd5b505050506040513d602081101561460457600080fd5b5051945061461185614b4d565b9350614624846115e38c8c8c8c8b614b7d565b9250614636858463ffffffff613b7b16565b9450505096509650969350505050565b61464e613382565b6000614658612695565b61ffff161161469f576040805160e560020a62461bcd0281526020600482015260196024820152600080516020615334833981519152604482015290519081900360640190fd5b600560009054906101000a9004600160a060020a0316600160a060020a03166379ba50976040518163ffffffff1660e060020a028152600401600060405180830381600087803b1580156146f257600080fd5b505af1158015614706573d6000803e3d6000fd5b5050505061170a613b39565b600160a060020a038181166000908152600e602052604090205416151561154a576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f494e56414c49445f504f4f4c5f544f4b454e00000000000000000000604482015290519081900360640190fd5b604080517f7472616e7366657228616464726573732c75696e74323536290000000000000081528151908190036019018120600160a060020a038516602483015260448083018590528351808403909101815260649092019092526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff199093169290921790915261483590849061492d565b505050565b6000806000614847613a83565b8761485181613303565b8761485b81613303565b6148668a8a8a614c56565b9094509250600160a060020a0389166000805160206152f483398151915214156148c657604051600160a060020a0387169085156108fc029086906000818181858888f193505050501580156148c0573d6000803e3d6000fd5b506148d1565b6148d1898786614783565b6148df8a8a898b8888614f6b565b600160a060020a03808b16600090815260086020526040808220600190810154938d1683529120015461491f918c918c9163ffffffff9081169116614ff0565b509198975050505050505050565b6149356152b4565b602060405190810160405280600181525090506020818351602085016000875af180151561496257600080fd5b5080511515614835576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f5452414e534645525f4641494c454400000000000000000000000000604482015290519081900360640190fd5b6149c361529d565b6000806149cf876115a1565b91506149da866115a1565b905063ffffffff85161515614a0e57600160a060020a03871660009081526008602052604090206001015463ffffffff1694505b63ffffffff84161515614a4057600160a060020a03861660009081526008602052604090206001015463ffffffff1693505b6040805180820190915280614a5e8363ffffffff808a16906138da16565b8152602001614a768463ffffffff808916906138da16565b9052979650505050505050565b60008163ffffffff16118015614aa25750620f424063ffffffff821611155b151561154a576040805160e560020a62461bcd02815260206004820152601a60248201527f4552525f494e56414c49445f524553455256455f574549474854000000000000604482015290519081900360640190fd5b614b0061529d565b614b0861529d565b828410614b2057614b198484615081565b9150613957565b614b2a8385615081565b604080518082019091526020808301518252825190820152925090505092915050565b600954600090612ac590620f4240906116c390859068010000000000000000900463ffffffff908116906138da16565b600b546000908190600160a060020a0388811691161415614beb57600a54600160a060020a039081166000908152600c6020908152604080832054600b54909416835290912054865191870151601654614be4949363ffffffff808d1693908c169261513e565b9050614c3a565b600a54600160a060020a039081166000908152600c6020908152604080832054600b54909416835290912054865191870151601654614c37949363ffffffff808c1693908d169261513e565b90505b614c4b620f42406116c385846138da565b979650505050505050565b6000806000614c6361529d565b600080600080614c716151aa565b95509550614c848b8b600080898e6144aa565b91955093509150831515614ce2576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f5a45524f5f5441524745545f414d4f554e5400000000000000000000604482015290519081900360640190fd5b614ceb8a612aff565b9050808410614d44576040805160e560020a62461bcd02815260206004820152601a60248201527f4552525f5441524745545f414d4f554e545f544f4f5f48494748000000000000604482015290519081900360640190fd5b600160a060020a038b166000805160206152f48339815191521415614dbf57348914614dba576040805160e560020a62461bcd02815260206004820152601760248201527f4552525f4554485f414d4f554e545f4d49534d41544348000000000000000000604482015290519081900360640190fd5b614ec1565b34158015614e6b575088614e68614dd58d612aff565b8d600160a060020a03166370a08231306040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b158015614e3057600080fd5b505af1158015614e44573d6000803e3d6000fd5b505050506040513d6020811015614e5a57600080fd5b50519063ffffffff613b7b16565b10155b1515614ec1576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f494e56414c49445f414d4f554e540000000000000000000000000000604482015290519081900360640190fd5b614eca8b613dc0565b614eda818563ffffffff613b7b16565b600160a060020a038b16600090815260086020908152604080832093909355600c90522054614f0f908463ffffffff61395e16565b600160a060020a038b166000908152600c60205260409020558515614f5a57600a54600b54614f4d91600160a060020a0390811691166000806149bb565b8051601255602001516013555b509199919850909650505050505050565b7f80000000000000000000000000000000000000000000000000000000000000008110614f9457fe5b60408051848152602081018490528082018390529051600160a060020a038087169288821692918a16917f276856b36cbc45526a0ba64f44611557a2a8b68662c5388e9fe6d72e86e1c8cb9181900360600190a4505050505050565b600080614fff86868686613d23565b61500885612033565b915081600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561504857600080fd5b505af115801561505c573d6000803e3d6000fd5b505050506040513d602081101561507257600080fd5b50519050612227828287613cc3565b61508961529d565b7314484bfeebc29f863424b06f3529a051a31be5998211156150db57604080518082019091526c0c9f2c9cd04674edea4000000080825260208201908504848115156150d157fe5b0490529050612ac5565b6c0c9f2c9cd04674edea400000008311156151285760408051908101604052806c0c9f2c9cd04674edea400000008152602001846c0c9f2c9cd04674edea4000000085028115156150d157fe5b5060408051808201909152918252602082015290565b60008080615156876143588c8963ffffffff6138da16565b915061516c886143588b8863ffffffff6138da16565b90508181111561519857615191816116c360146143588684038963ffffffff6138da16565b925061519d565b600092505b5050979650505050505050565b60006151b461529d565b60006151be61529d565b6151c661529d565b6151ce6137c4565b92508260115414156151fc5760408051808201909152600f548152601054602082015260009550935061315f565b61520461413c565b60408051808201909152600f5480825260105460208301528251929450909250148015615238575080602001518260200151145b15615249576000829450945061315f565b8151600f55602082015160105560118390556152636137c8565b50600194909350915050565b6040805160a08101825260008082526020820181905291810182905260608101829052608081019190915290565b604080518082019091526000808252602082015290565b60206040519081016040528060019060208202803883395091929150505600536f7672796e53776170436f6e76657274657255706772616465720000000000000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee4552525f4143434553535f44454e4945440000000000000000000000000000004552525f494e56414c49445f524553455256455f434f554e5400000000000000a165627a7a72305820d6ceae0fa88e176fcec4250a8a72385cf1ae86e302a34151470ca7997955ccc20029a165627a7a72305820829c55f8c1d3c151dafc68faa4319701ebffa14c8fd5fd8048d1987b986db5d40029", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x57D0 DUP1 PUSH2 0x20 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x4B JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x11413958 DUP2 EQ PUSH2 0x50 JUMPI DUP1 PUSH4 0x3E8FF43F EQ PUSH2 0xB6 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x8D PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH4 0xFFFFFFFF PUSH1 0x44 CALLDATALOAD AND PUSH2 0xE2 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xC2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xCB PUSH2 0x1D5 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0xFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP1 DUP5 DUP5 DUP5 PUSH2 0xF0 PUSH2 0x1DA JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP4 DUP5 AND DUP2 MSTORE SWAP2 SWAP1 SWAP3 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH4 0xFFFFFFFF SWAP1 SWAP2 AND PUSH1 0x40 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 PUSH1 0x0 CREATE DUP1 ISZERO DUP1 ISZERO PUSH2 0x142 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH32 0xF2FDE38B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD SWAP2 SWAP3 POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND SWAP2 PUSH4 0xF2FDE38B SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1B4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1C8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP SWAP3 SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x55BA DUP1 PUSH2 0x1EB DUP4 CODECOPY ADD SWAP1 JUMP STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x1 PUSH1 0x4 DUP2 SWAP1 SSTORE PUSH1 0x9 DUP1 SLOAD PUSH1 0x1 PUSH1 0x60 PUSH1 0x2 EXP SUB NOT AND SWAP1 SSTORE PUSH1 0x15 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SWAP2 OR SWAP1 SSTORE PUSH3 0x11170 PUSH1 0x16 SSTORE CALLVALUE DUP1 ISZERO PUSH3 0x3C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH1 0x60 DUP1 PUSH3 0x55BA DUP4 CODECOPY DUP2 ADD PUSH1 0x40 SWAP1 DUP2 MSTORE DUP2 MLOAD PUSH1 0x20 DUP4 ADD MLOAD SWAP2 SWAP1 SWAP3 ADD MLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND CALLER OR SWAP1 SSTORE DUP3 DUP3 DUP3 DUP3 DUP3 DUP3 DUP2 DUP1 PUSH3 0x8A DUP2 PUSH5 0x100000000 PUSH3 0x137 DUP2 MUL DIV JUMP JUMPDEST POP PUSH1 0x2 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT SWAP3 DUP4 AND DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x3 DUP1 SLOAD SWAP1 SWAP3 AND OR SWAP1 SSTORE DUP3 PUSH3 0xCA DUP2 PUSH5 0x100000000 PUSH3 0x137 DUP2 MUL DIV JUMP JUMPDEST DUP2 PUSH3 0xDF DUP2 PUSH5 0x100000000 PUSH3 0x1B2 DUP2 MUL DIV JUMP JUMPDEST POP POP PUSH1 0x5 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP5 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 OR SWAP1 SWAP3 SSTORE POP PUSH1 0x9 DUP1 SLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP3 AND PUSH5 0x100000000 MUL PUSH8 0xFFFFFFFF00000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE POP PUSH3 0x22B SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH3 0x1AF JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH3 0xF4240 PUSH4 0xFFFFFFFF DUP3 AND GT ISZERO PUSH3 0x1AF JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F434F4E56455253494F4E5F464545000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x537F DUP1 PUSH3 0x23B PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x312 JUMPI PUSH4 0xFFFFFFFF PUSH1 0xE0 PUSH1 0x2 EXP PUSH1 0x0 CALLDATALOAD DIV AND PUSH3 0x5E319C DUP2 EQ PUSH2 0x3B0 JUMPI DUP1 PUSH4 0x24C7EC7 EQ PUSH2 0x3E3 JUMPI DUP1 PUSH4 0x337E3FB EQ PUSH2 0x3FD JUMPI DUP1 PUSH4 0xA55FB3D EQ PUSH2 0x42E JUMPI DUP1 PUSH4 0xC7D5CD8 EQ PUSH2 0x457 JUMPI DUP1 PUSH4 0xE53AAE9 EQ PUSH2 0x485 JUMPI DUP1 PUSH4 0x119B90CD EQ PUSH2 0x4DA JUMPI DUP1 PUSH4 0x12C2ACA4 EQ PUSH2 0x507 JUMPI DUP1 PUSH4 0x16912F96 EQ PUSH2 0x51C JUMPI DUP1 PUSH4 0x19B64015 EQ PUSH2 0x531 JUMPI DUP1 PUSH4 0x1CFAB290 EQ PUSH2 0x549 JUMPI DUP1 PUSH4 0x1E1401F8 EQ PUSH2 0x56A JUMPI DUP1 PUSH4 0x21E6B53D EQ PUSH2 0x5AD JUMPI DUP1 PUSH4 0x22F3E2D4 EQ PUSH2 0x5CE JUMPI DUP1 PUSH4 0x2630C12F EQ PUSH2 0x5E3 JUMPI DUP1 PUSH4 0x2BD3C107 EQ PUSH2 0x5F8 JUMPI DUP1 PUSH4 0x2BF0C985 EQ PUSH2 0x619 JUMPI DUP1 PUSH4 0x2FE8A6AD EQ PUSH2 0x63A JUMPI DUP1 PUSH4 0x38A5E016 EQ PUSH2 0x64F JUMPI DUP1 PUSH4 0x395900D4 EQ PUSH2 0x664 JUMPI DUP1 PUSH4 0x3E8FF43F EQ PUSH2 0x68E JUMPI DUP1 PUSH4 0x46749468 EQ PUSH2 0x6BA JUMPI DUP1 PUSH4 0x49D10B64 EQ PUSH2 0x6D5 JUMPI DUP1 PUSH4 0x4AF80F0E EQ PUSH2 0x6EA JUMPI DUP1 PUSH4 0x54FD4D50 EQ PUSH2 0x70B JUMPI DUP1 PUSH4 0x55776B77 EQ PUSH2 0x720 JUMPI DUP1 PUSH4 0x5768ADCF EQ PUSH2 0x73A JUMPI DUP1 PUSH4 0x579CD3CA EQ PUSH2 0x75B JUMPI DUP1 PUSH4 0x5E35359E EQ PUSH2 0x770 JUMPI DUP1 PUSH4 0x61CD756E EQ PUSH2 0x79A JUMPI DUP1 PUSH4 0x67B6D57C EQ PUSH2 0x7AF JUMPI DUP1 PUSH4 0x69067D95 EQ PUSH2 0x7D0 JUMPI DUP1 PUSH4 0x690D8320 EQ PUSH2 0x7F4 JUMPI DUP1 PUSH4 0x69D1354A EQ PUSH2 0x815 JUMPI DUP1 PUSH4 0x6A49D2C4 EQ PUSH2 0x82D JUMPI DUP1 PUSH4 0x71F52BF3 EQ PUSH2 0x857 JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x86C JUMPI DUP1 PUSH4 0x7B103999 EQ PUSH2 0x881 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x896 JUMPI DUP1 PUSH4 0x94C275AD EQ PUSH2 0x8AB JUMPI DUP1 PUSH4 0x98A71DCB EQ PUSH2 0x8C0 JUMPI DUP1 PUSH4 0x9B99A8E2 EQ PUSH2 0x8E1 JUMPI DUP1 PUSH4 0xA32BFF44 EQ PUSH2 0x8F6 JUMPI DUP1 PUSH4 0xAF94B8D8 EQ PUSH2 0x90B JUMPI DUP1 PUSH4 0xB4A176D3 EQ PUSH2 0x935 JUMPI DUP1 PUSH4 0xBF754558 EQ PUSH2 0x94A JUMPI DUP1 PUSH4 0xBF7DA6BA EQ PUSH2 0x95F JUMPI DUP1 PUSH4 0xC3321FB0 EQ PUSH2 0x983 JUMPI DUP1 PUSH4 0xC45D3D92 EQ PUSH2 0x998 JUMPI DUP1 PUSH4 0xCDC91C69 EQ PUSH2 0x9AD JUMPI DUP1 PUSH4 0xD031370B EQ PUSH2 0x9C2 JUMPI DUP1 PUSH4 0xD260529C EQ PUSH2 0x9DA JUMPI DUP1 PUSH4 0xD3FB73B4 EQ PUSH2 0x9EF JUMPI DUP1 PUSH4 0xD4EE1D90 EQ PUSH2 0xA04 JUMPI DUP1 PUSH4 0xD55EC697 EQ PUSH2 0xA19 JUMPI DUP1 PUSH4 0xD64C5A1A EQ PUSH2 0xA2E JUMPI DUP1 PUSH4 0xD66BD524 EQ PUSH2 0xA59 JUMPI DUP1 PUSH4 0xD8959512 EQ PUSH2 0xA7A JUMPI DUP1 PUSH4 0xDB2830A4 EQ PUSH2 0xA9B JUMPI DUP1 PUSH4 0xDC75EB9A EQ PUSH2 0xAB0 JUMPI DUP1 PUSH4 0xDC8DE379 EQ PUSH2 0xAC5 JUMPI DUP1 PUSH4 0xE38192E3 EQ PUSH2 0xAE6 JUMPI DUP1 PUSH4 0xE8104AF9 EQ PUSH2 0xB0D JUMPI DUP1 PUSH4 0xE8DC12FF EQ PUSH2 0xB22 JUMPI DUP1 PUSH4 0xEC2240F5 EQ PUSH2 0xB4C JUMPI DUP1 PUSH4 0xECBCA55D EQ PUSH2 0xB61 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0xB7F JUMPI DUP1 PUSH4 0xF9CDDDE2 EQ PUSH2 0xBA0 JUMPI DUP1 PUSH4 0xFC0C546A EQ PUSH2 0xBB5 JUMPI JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x52F4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x0 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH32 0x353C2EB9E53A4A4A6D45D72082FF2E9DC829D1125618772A83EB0E7F86632C43 SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO PUSH2 0x3AE JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245534552564500000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3BC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3D1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0xBCA JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3EF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH1 0x4 CALLDATALOAD ISZERO ISZERO PUSH2 0xBF3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x409 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x412 PUSH2 0xC3B JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x43A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x443 PUSH2 0xC4A JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x463 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x46C PUSH2 0xC53 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x491 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4A6 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0xC5F JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP6 DUP7 MSTORE PUSH4 0xFFFFFFFF SWAP1 SWAP5 AND PUSH1 0x20 DUP7 ADD MSTORE SWAP2 ISZERO ISZERO DUP5 DUP5 ADD MSTORE ISZERO ISZERO PUSH1 0x60 DUP5 ADD MSTORE ISZERO ISZERO PUSH1 0x80 DUP4 ADD MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0xA0 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4E6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x44 CALLDATALOAD AND PUSH2 0xCFA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x513 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x443 PUSH2 0x1464 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x528 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH2 0x14AD JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x53D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x412 PUSH1 0x4 CALLDATALOAD PUSH2 0x14C1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x555 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x46C PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x14ED JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x576 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x594 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x151F JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5B9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x1539 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5DA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x443 PUSH2 0x154D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5EF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x412 PUSH2 0x1582 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x604 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3D1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x15A1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x625 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3D1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x15F6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x646 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x443 PUSH2 0x16D9 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x65B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH2 0x16FA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x670 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x170C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x69A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x6A3 PUSH2 0x17A7 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0xFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6C6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH1 0x4 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH2 0x17AC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6E1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH2 0x1830 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6F6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x1A90 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x717 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x6A3 PUSH2 0x1AC5 JUMP JUMPDEST PUSH2 0x3D1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH1 0x44 CALLDATALOAD PUSH2 0x1ACA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x746 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x412 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x2033 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x767 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x46C PUSH2 0x2051 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x77C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x2069 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7A6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x412 PUSH2 0x217D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7BB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x218C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7DC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x594 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x222F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x800 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x238A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x821 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH1 0x4 CALLDATALOAD PUSH2 0x248F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x839 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH4 0xFFFFFFFF PUSH1 0x24 CALLDATALOAD AND PUSH2 0x2534 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x863 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x6A3 PUSH2 0x2593 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x878 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH2 0x259D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x88D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x412 PUSH2 0x2651 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8A2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x412 PUSH2 0x2660 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8B7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x46C PUSH2 0x266F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8CC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3D1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x2683 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8ED JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x6A3 PUSH2 0x2695 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x902 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x594 PUSH2 0x269B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x917 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x594 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x26A4 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x941 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH2 0x2848 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x956 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x443 PUSH2 0x2874 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x96B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x2879 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x98F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3D1 PUSH2 0x28C1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9A4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x412 PUSH2 0x28C7 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9B9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH2 0x28D6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9CE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x412 PUSH1 0x4 CALLDATALOAD PUSH2 0x292F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9E6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x443 PUSH2 0x2957 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9FB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x412 PUSH2 0x295C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x412 PUSH2 0x296B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA25 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH2 0x297A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA3A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xA43 PUSH2 0x2A6F JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA65 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4A6 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x2A74 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA86 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3D1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x2ABA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xAA7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x594 PUSH2 0x2ACB JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xABC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x412 PUSH2 0x2AF0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xAD1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3D1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x2AFF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xAF2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3D1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH1 0x44 CALLDATALOAD PUSH2 0x2B28 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xB19 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3D1 PUSH2 0x2E8D JUMP JUMPDEST PUSH2 0x3D1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x44 CALLDATALOAD SWAP1 PUSH1 0x64 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x84 CALLDATALOAD AND PUSH2 0x2E93 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xB58 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x594 PUSH2 0x30E6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xB6D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH4 0xFFFFFFFF PUSH1 0x4 CALLDATALOAD AND PUSH2 0x3166 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xB8B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x325B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xBAC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x594 PUSH2 0x32EB JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xBC1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x412 PUSH2 0x32F4 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0xBD6 DUP2 PUSH2 0x3303 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0xBFB PUSH2 0x3382 JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD SWAP2 ISZERO ISZERO PUSH21 0x10000000000000000000000000000000000000000 MUL PUSH21 0xFF0000000000000000000000000000000000000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x15 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH4 0xFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0xC6F PUSH2 0x526F JUMP JUMPDEST POP POP POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP2 MLOAD PUSH1 0xA0 DUP2 ADD DUP4 MSTORE DUP2 SLOAD DUP1 DUP3 MSTORE PUSH1 0x1 SWAP1 SWAP3 ADD SLOAD PUSH4 0xFFFFFFFF DUP2 AND SWAP5 DUP3 ADD DUP6 SWAP1 MSTORE PUSH1 0xFF PUSH5 0x100000000 DUP3 DIV DUP2 AND ISZERO ISZERO SWAP5 DUP4 ADD SWAP5 SWAP1 SWAP5 MSTORE PUSH6 0x10000000000 DUP2 DIV DUP5 AND ISZERO ISZERO PUSH1 0x60 DUP4 ADD MSTORE PUSH7 0x1000000000000 SWAP1 DIV SWAP1 SWAP3 AND ISZERO ISZERO PUSH1 0x80 SWAP1 SWAP3 ADD DUP3 SWAP1 MSTORE SWAP6 SWAP2 SWAP5 POP SWAP2 SWAP3 POP DUP3 SWAP2 SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0xD0A PUSH2 0x33D2 JUMP JUMPDEST PUSH2 0xD12 PUSH2 0x3382 JUMP JUMPDEST DUP8 PUSH2 0xD1C DUP2 PUSH2 0x3303 JUMP JUMPDEST DUP8 PUSH2 0xD26 DUP2 PUSH2 0x342F JUMP JUMPDEST DUP8 PUSH2 0xD30 DUP2 PUSH2 0x342F JUMP JUMPDEST DUP10 PUSH2 0xD3A DUP2 PUSH2 0x3490 JUMP JUMPDEST DUP10 PUSH2 0xD44 DUP2 PUSH2 0x3490 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x8DA5CB5B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD ADDRESS SWAP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP2 PUSH4 0x8DA5CB5B SWAP2 PUSH1 0x4 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xDA3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xDB7 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xDCD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ PUSH2 0xE2D JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F414E43484F525F4E4F545F4F574E4544000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0xE56 PUSH32 0x436861696E6C696E6B4F7261636C6557686974656C6973740000000000000000 PUSH2 0x34F0 JUMP JUMPDEST SWAP10 POP DUP10 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x3AF32ABF DUP14 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xEB3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xEC7 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xEDD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD ISZERO ISZERO PUSH2 0xF35 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4F5241434C450000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP10 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x3AF32ABF DUP13 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xF90 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xFA4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xFBA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD ISZERO ISZERO PUSH2 0x1012 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4F5241434C450000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x101A PUSH2 0x3588 JUMP JUMPDEST PUSH1 0xA DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP16 AND OR SWAP1 SSTORE PUSH1 0x7 DUP1 SLOAD PUSH1 0x0 SWAP1 DUP2 LT PUSH2 0x1044 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP15 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x10A2 JUMPI PUSH1 0x7 DUP1 SLOAD PUSH1 0x1 SWAP1 DUP2 LT PUSH2 0x1072 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0xB DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x10DD JUMP JUMPDEST PUSH1 0x7 DUP1 SLOAD PUSH1 0x0 SWAP1 DUP2 LT PUSH2 0x10B1 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0xB DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMPDEST PUSH2 0x1106 PUSH32 0x436F6E766572746572466163746F727900000000000000000000000000000000 PUSH2 0x34F0 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xC977AED2 PUSH2 0x111C PUSH2 0x17A7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH2 0xFFFF AND PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x115D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1171 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1187 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP SWAP9 POP DUP9 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x1B27444E DUP15 PUSH1 0xB PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP16 DUP16 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP6 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP5 POP POP POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1258 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x126C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1282 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x9 DUP1 SLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH13 0x1000000000000000000000000 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND DUP2 MUL SWAP2 SWAP1 SWAP2 OR SWAP2 DUP3 SWAP1 SSTORE PUSH1 0xA SLOAD PUSH1 0xB SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xAE81800400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP3 DUP7 AND PUSH1 0x4 DUP5 ADD MSTORE SWAP1 DUP6 AND PUSH1 0x24 DUP4 ADD MSTORE DUP1 MLOAD SWAP3 SWAP1 SWAP4 DIV SWAP1 SWAP4 AND SWAP3 PUSH4 0xAE818004 SWAP3 PUSH1 0x44 DUP1 DUP4 ADD SWAP4 SWAP2 SWAP3 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1324 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1338 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x134E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD MLOAD PUSH1 0x10 DUP2 SWAP1 SSTORE PUSH1 0xF DUP3 SWAP1 SSTORE PUSH1 0x12 SWAP2 SWAP1 SWAP2 SSTORE PUSH1 0x13 SSTORE PUSH2 0x1372 PUSH2 0x37C4 JUMP JUMPDEST PUSH1 0x11 SSTORE PUSH1 0xA SLOAD PUSH2 0x138A SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0xBCA JUMP JUMPDEST PUSH1 0xA SLOAD SWAP1 SWAP9 POP PUSH2 0x13A2 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x2AFF JUMP JUMPDEST PUSH1 0xB SLOAD SWAP1 SWAP8 POP PUSH2 0x13BA SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x2AFF JUMP JUMPDEST SWAP6 POP DUP7 DUP9 EQ ISZERO PUSH2 0x13E5 JUMPI PUSH1 0x0 DUP9 GT DUP1 PUSH2 0x13D3 JUMPI POP PUSH1 0x0 DUP7 GT JUMPDEST ISZERO PUSH2 0x13E0 JUMPI PUSH2 0x13E0 PUSH2 0x37C8 JUMP JUMPDEST PUSH2 0x140E JUMP JUMPDEST PUSH1 0x0 DUP9 GT DUP1 ISZERO PUSH2 0x13F5 JUMPI POP PUSH1 0x0 DUP8 GT JUMPDEST DUP1 ISZERO PUSH2 0x1401 JUMPI POP PUSH1 0x0 DUP7 GT JUMPDEST ISZERO PUSH2 0x140E JUMPI PUSH2 0x140E PUSH2 0x37C8 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x1425 PUSH2 0x17A7 JUMP JUMPDEST PUSH2 0xFFFF AND PUSH32 0x6B08C2E2C9969E55A647A764DB9B554D64DC42F1A704DA11A6D5B129AD163F2C PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x52F4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x0 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH32 0x353C2EB9E53A4A4A6D45D72082FF2E9DC829D1125618772A83EB0E7F86632C43 SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH2 0x14B5 PUSH2 0x3382 JUMP JUMPDEST PUSH1 0x15 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x7 DUP3 DUP2 SLOAD DUP2 LT ISZERO ISZERO PUSH2 0x14D2 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0x14F9 DUP2 PUSH2 0x3303 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH4 0xFFFFFFFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x152D DUP6 DUP6 DUP6 PUSH2 0x26A4 JUMP JUMPDEST SWAP2 POP SWAP2 POP SWAP4 POP SWAP4 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1541 PUSH2 0x3382 JUMP JUMPDEST PUSH2 0x154A DUP2 PUSH2 0x218C JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1557 PUSH2 0x3840 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x157D JUMPI POP PUSH1 0x9 SLOAD PUSH13 0x1000000000000000000000000 SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND ISZERO ISZERO JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH13 0x1000000000000000000000000 SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0x15AD DUP2 PUSH2 0x3303 JUMP JUMPDEST PUSH2 0x15EF PUSH2 0x15B9 DUP5 PUSH2 0x2AFF JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x15E3 SWAP1 PUSH1 0x13 PUSH4 0xFFFFFFFF PUSH2 0x38DA AND JUMP JUMPDEST SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x395E AND JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x18160DDD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x163C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1650 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1666 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP2 SWAP6 POP AND SWAP3 POP PUSH2 0x1691 DUP4 PUSH2 0x2AFF JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 SWAP3 POP SWAP1 POP PUSH2 0x16CF DUP2 PUSH2 0x16C3 DUP5 DUP8 PUSH4 0xFFFFFFFF PUSH2 0x38DA AND JUMP JUMPDEST SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x39BB AND JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH2 0x1702 PUSH2 0x3382 JUMP JUMPDEST PUSH2 0x170A PUSH2 0x28D6 JUMP JUMPDEST JUMP JUMPDEST PUSH2 0x1714 PUSH2 0x3382 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x5E35359E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP6 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP3 ADD DUP6 SWAP1 MSTORE SWAP2 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP2 PUSH4 0x5E35359E SWAP2 PUSH1 0x64 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x178A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x179E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 SWAP1 JUMP JUMPDEST PUSH2 0x17B4 PUSH2 0x3382 JUMP JUMPDEST DUP2 PUSH1 0x14 PUSH1 0x0 PUSH1 0x7 PUSH1 0x0 DUP2 SLOAD DUP2 LT ISZERO ISZERO PUSH2 0x17C9 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 SWAP1 SWAP2 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP4 MSTORE DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x40 ADD DUP2 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE PUSH1 0x7 DUP1 SLOAD DUP4 SWAP3 PUSH1 0x14 SWAP3 SWAP1 SWAP2 PUSH1 0x1 SWAP1 DUP2 LT PUSH2 0x1807 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 SWAP1 SWAP2 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP4 MSTORE DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x40 ADD SWAP1 KECCAK256 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ DUP1 PUSH2 0x1865 JUMPI POP PUSH1 0x3 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x18A9 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5314 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x18D2 PUSH32 0x436F6E7472616374526567697374727900000000000000000000000000000000 PUSH2 0x34F0 JUMP JUMPDEST PUSH1 0x2 SLOAD SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP4 AND SWAP2 AND EQ DUP1 ISZERO SWAP1 PUSH2 0x18FB JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x1951 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245474953545259000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0xBB34534C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH32 0x436F6E7472616374526567697374727900000000000000000000000000000000 PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP2 PUSH4 0xBB34534C SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x19D5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x19E9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x19FF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ ISZERO PUSH2 0x1A60 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245474953545259000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP5 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT SWAP3 DUP4 AND OR SWAP1 SWAP3 SSTORE SWAP1 SWAP2 AND SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x1A98 PUSH2 0x3382 JUMP JUMPDEST DUP1 PUSH2 0x1AA2 DUP2 PUSH2 0x342F JUMP JUMPDEST POP PUSH1 0x6 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x20 DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x1ADA PUSH2 0x3A29 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH2 0x1AE7 PUSH2 0x3A83 JUMP JUMPDEST DUP8 PUSH2 0x1AF1 DUP2 PUSH2 0x3303 JUMP JUMPDEST DUP8 PUSH2 0x1AFB DUP2 PUSH2 0x3AE1 JUMP JUMPDEST DUP8 PUSH2 0x1B05 DUP2 PUSH2 0x3AE1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x52F4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ PUSH2 0x1B2A JUMPI CALLVALUE ISZERO PUSH2 0x1B2E JUMP JUMPDEST DUP10 CALLVALUE EQ JUMPDEST ISZERO ISZERO PUSH2 0x1B84 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4554485F414D4F554E545F4D49534D41544348000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x1B8C PUSH2 0x3B39 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x52F4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ ISZERO PUSH2 0x1C2E JUMPI PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x52F4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x0 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH32 0x353C2EB9E53A4A4A6D45D72082FF2E9DC829D1125618772A83EB0E7F86632C42 SLOAD PUSH2 0x1BF4 SWAP1 CALLVALUE PUSH4 0xFFFFFFFF PUSH2 0x3B7B AND JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x52F4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x0 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH32 0x353C2EB9E53A4A4A6D45D72082FF2E9DC829D1125618772A83EB0E7F86632C42 SSTORE JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x15 SLOAD SWAP1 SWAP8 POP PUSH1 0xFF AND ISZERO PUSH2 0x1CF7 JUMPI PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x14 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD ISZERO DUP1 PUSH2 0x1CA1 JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x14 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x1C9E DUP9 DUP13 PUSH4 0xFFFFFFFF PUSH2 0x395E AND JUMP JUMPDEST GT ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x1CF7 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4D41585F5354414B45445F42414C414E43455F524541434845440000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP13 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD DUP2 MLOAD PUSH32 0x18160DDD00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP2 MLOAD SWAP5 AND SWAP10 POP DUP10 SWAP4 PUSH4 0x18160DDD SWAP4 PUSH1 0x4 DUP1 DUP5 ADD SWAP5 SWAP4 DUP4 SWAP1 SUB ADD SWAP1 DUP3 SWAP1 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1D64 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1D78 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1D8E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP5 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x52F4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ PUSH2 0x1DBC JUMPI PUSH2 0x1DBC DUP12 CALLER ADDRESS DUP14 PUSH2 0x3BDB JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x1DE5 SWAP1 DUP12 PUSH4 0xFFFFFFFF PUSH2 0x395E AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP13 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE PUSH2 0x1E0E DUP8 DUP12 PUSH4 0xFFFFFFFF PUSH2 0x395E AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP13 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE SWAP4 POP DUP7 ISZERO DUP1 PUSH2 0x1E37 JUMPI POP DUP5 ISZERO JUMPDEST ISZERO PUSH2 0x1E44 JUMPI DUP10 SWAP4 POP PUSH2 0x1E5B JUMP JUMPDEST PUSH2 0x1E58 DUP8 PUSH2 0x16C3 DUP13 DUP9 PUSH4 0xFFFFFFFF PUSH2 0x38DA AND JUMP JUMPDEST SWAP4 POP JUMPDEST DUP9 DUP5 LT ISZERO PUSH2 0x1EB3 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F52455455524E5F544F4F5F4C4F570000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xC6C3BBE600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP10 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE CALLER PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP3 ADD DUP9 SWAP1 MSTORE SWAP2 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP2 PUSH4 0xC6C3BBE6 SWAP2 PUSH1 0x64 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1F27 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1F3B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x1F47 PUSH2 0x37C8 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND CALLER PUSH32 0x4A1A2A6176E9646D9E3157F7C2AB3C499F18337C0B0828CFB28E0A61DE4A11F7 DUP13 PUSH2 0x1F84 DUP12 DUP3 PUSH4 0xFFFFFFFF PUSH2 0x395E AND JUMP JUMPDEST PUSH2 0x1F94 DUP11 DUP11 PUSH4 0xFFFFFFFF PUSH2 0x395E AND JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP4 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP3 SWAP1 SWAP3 MSTORE DUP3 DUP3 ADD MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG3 PUSH2 0x1FCB DUP7 PUSH2 0x1FC5 DUP8 DUP8 PUSH4 0xFFFFFFFF PUSH2 0x395E AND JUMP JUMPDEST DUP14 PUSH2 0x3CC3 JUMP JUMPDEST PUSH2 0x2020 PUSH1 0x7 PUSH1 0x0 DUP2 SLOAD DUP2 LT ISZERO ISZERO PUSH2 0x1FDE JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x7 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP2 PUSH1 0x1 SWAP1 DUP2 LT PUSH2 0x2005 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP1 DUP1 PUSH2 0x3D23 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0x4 SSTORE POP SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD AND SWAP1 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH9 0x10000000000000000 SWAP1 DIV PUSH4 0xFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2073 PUSH2 0x3A29 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH2 0x2080 PUSH2 0x3382 JUMP JUMPDEST PUSH2 0x2097 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x52D4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x34F0 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD SWAP1 SWAP2 POP PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 PUSH2 0x20D4 JUMPI POP PUSH2 0x20D2 PUSH2 0x154D JUMP JUMPDEST ISZERO JUMPDEST DUP1 PUSH2 0x20EC JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ JUMPDEST ISZERO ISZERO PUSH2 0x2130 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5314 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x213B DUP5 DUP5 DUP5 PUSH2 0x3D8F JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x2172 JUMPI PUSH2 0x2172 DUP5 PUSH2 0x3DC0 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0x4 SSTORE POP POP JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH2 0x2194 PUSH2 0x3382 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x52D4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x21AC DUP2 PUSH2 0x3EB4 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xF2FDE38B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP2 PUSH4 0xF2FDE38B SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2213 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2227 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 DUP12 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x18160DDD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x227C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2290 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x22A6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP15 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD SWAP1 SWAP4 AND DUP3 MSTORE PUSH1 0xC SWAP1 MSTORE KECCAK256 SLOAD SWAP1 SWAP9 POP SWAP7 POP DUP8 DUP12 LT ISZERO PUSH2 0x2371 JUMPI PUSH1 0xA SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x2309 SWAP1 PUSH1 0x14 PUSH4 0xFFFFFFFF PUSH2 0x38DA AND JUMP JUMPDEST PUSH1 0xA SLOAD SWAP1 SWAP7 POP PUSH2 0x2321 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x15A1 JUMP JUMPDEST SWAP5 POP DUP5 DUP7 LT PUSH2 0x2331 JUMPI DUP5 DUP7 PUSH2 0x2334 JUMP JUMPDEST DUP6 DUP6 JUMPDEST SWAP1 SWAP5 POP SWAP3 POP PUSH2 0x234D DUP9 PUSH2 0x16C3 DUP14 DUP11 PUSH4 0xFFFFFFFF PUSH2 0x38DA AND JUMP JUMPDEST SWAP2 POP PUSH2 0x2363 DUP4 PUSH2 0x16C3 DUP5 DUP8 PUSH4 0xFFFFFFFF PUSH2 0x38DA AND JUMP JUMPDEST SWAP10 POP POP DUP9 DUP2 SUB SWAP8 POP DUP9 PUSH2 0x237B JUMP JUMPDEST SWAP6 SWAP9 POP PUSH1 0x0 SWAP8 POP DUP9 SWAP6 JUMPDEST POP POP POP POP POP POP POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2394 PUSH2 0x3A29 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH2 0x23A1 PUSH2 0x3382 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x52F4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x23B9 DUP2 PUSH2 0x3303 JUMP JUMPDEST PUSH2 0x23D0 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x52D4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x34F0 JUMP JUMPDEST SWAP2 POP PUSH2 0x23DA PUSH2 0x154D JUMP JUMPDEST ISZERO DUP1 PUSH2 0x23F3 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 DUP2 AND SWAP2 AND EQ JUMPDEST ISZERO ISZERO PUSH2 0x2437 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5314 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP1 ADDRESS BALANCE DUP1 ISZERO PUSH2 0x8FC MUL SWAP2 PUSH1 0x0 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x246D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH2 0x2485 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x52F4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x3DC0 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0x4 SSTORE POP JUMP JUMPDEST PUSH2 0x2497 PUSH2 0x3382 JUMP JUMPDEST PUSH3 0x186A0 DUP2 GT ISZERO PUSH2 0x24F2 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F44594E414D49435F4645455F464143544F520000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x16 SLOAD PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP4 SWAP1 MSTORE DUP1 MLOAD PUSH32 0x382FD3516344712A511DCD464FF8E6AB54139D6A28F64087A3253353EE7A5679 SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG1 PUSH1 0x16 SSTORE JUMP JUMPDEST PUSH1 0x2 PUSH2 0x253E PUSH2 0x2695 JUMP JUMPDEST PUSH2 0xFFFF AND LT PUSH2 0x2585 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5334 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x258F DUP3 DUP3 PUSH2 0x3F0A JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x157D PUSH2 0x2695 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x25ED JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5314 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND SWAP4 SWAP1 SWAP2 AND SWAP2 PUSH32 0x343765429AEA5A34B3FF6A3785A98A5ABB2597ACA87BFBB58632C173D585373A SWAP2 LOG3 PUSH1 0x1 DUP1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND OR SWAP1 SWAP2 SSTORE AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH5 0x100000000 SWAP1 DIV PUSH4 0xFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x14 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x7 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0xF SLOAD PUSH1 0x10 SLOAD DUP3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x26B2 PUSH2 0x529D JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x26C0 PUSH2 0x3A83 JUMP JUMPDEST PUSH2 0x26C9 DUP13 PUSH2 0x3303 JUMP JUMPDEST PUSH2 0x26D2 DUP12 PUSH2 0x3303 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP13 DUP2 AND SWAP1 DUP13 AND EQ ISZERO PUSH2 0x2736 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F534F555243455F54415247455400000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x273E PUSH2 0x37C4 JUMP JUMPDEST PUSH1 0x11 SLOAD EQ ISZERO PUSH2 0x27E5 JUMPI PUSH1 0xF PUSH1 0x40 DUP1 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD SLOAD DUP2 MSTORE POP POP SWAP5 POP PUSH1 0x8 PUSH1 0x0 DUP14 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH4 0xFFFFFFFF AND SWAP7 POP PUSH1 0x8 PUSH1 0x0 DUP13 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH4 0xFFFFFFFF AND SWAP6 POP PUSH2 0x2825 JUMP JUMPDEST PUSH2 0x27ED PUSH2 0x413C JUMP JUMPDEST SWAP5 POP PUSH2 0x27F8 DUP6 PUSH2 0x4380 JUMP JUMPDEST PUSH1 0xA SLOAD SWAP2 SWAP6 POP SWAP4 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP14 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x281E JUMPI DUP4 SWAP7 POP DUP3 SWAP6 POP PUSH2 0x2825 JUMP JUMPDEST DUP3 SWAP7 POP DUP4 SWAP6 POP JUMPDEST PUSH2 0x2833 DUP13 DUP13 DUP10 DUP10 DUP10 DUP16 PUSH2 0x44AA JUMP JUMPDEST SWAP2 SWAP15 SWAP2 SWAP14 POP SWAP1 SWAP12 POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x2850 PUSH2 0x3382 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x2 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x1 DUP2 JUMP JUMPDEST PUSH2 0x2881 PUSH2 0x3382 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x52D4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x2899 DUP2 PUSH2 0x3EB4 JUMP JUMPDEST DUP3 PUSH2 0x28A3 DUP2 PUSH2 0x3303 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE JUMP JUMPDEST PUSH1 0x11 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x1 PUSH2 0x28E0 PUSH2 0x2695 JUMP JUMPDEST PUSH2 0xFFFF AND GT PUSH2 0x2927 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5334 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x170A PUSH2 0x4646 JUMP JUMPDEST PUSH1 0x7 DUP1 SLOAD DUP3 SWAP1 DUP2 LT PUSH2 0x293D JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP1 POP DUP2 JUMP JUMPDEST PUSH1 0x1 SWAP1 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2984 PUSH2 0x3382 JUMP JUMPDEST PUSH2 0x299B PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x52D4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x34F0 JUMP JUMPDEST PUSH1 0x5 SLOAD SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x29B5 PUSH2 0x17A7 JUMP JUMPDEST PUSH2 0xFFFF AND PUSH32 0x6B08C2E2C9969E55A647A764DB9B554D64DC42F1A704DA11A6D5B129AD163F2C PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH2 0x29EE DUP2 PUSH2 0x325B JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x90F58C9600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 AND SWAP2 PUSH4 0x90F58C96 SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2A4F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2A63 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x154A PUSH2 0x259D JUMP JUMPDEST PUSH1 0x14 SWAP1 JUMP JUMPDEST PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD PUSH4 0xFFFFFFFF DUP2 AND SWAP1 PUSH1 0xFF PUSH5 0x100000000 DUP3 DIV DUP2 AND SWAP2 PUSH6 0x10000000000 DUP2 DIV DUP3 AND SWAP2 PUSH7 0x1000000000000 SWAP1 SWAP2 DIV AND DUP6 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2AC5 DUP3 PUSH2 0x2AFF JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2AD6 PUSH2 0x529D JUMP JUMPDEST PUSH2 0x2ADE PUSH2 0x413C JUMP JUMPDEST DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD MLOAD SWAP1 SWAP5 SWAP1 SWAP4 POP SWAP2 POP POP JUMP JUMPDEST PUSH1 0xB SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0x2B0B DUP2 PUSH2 0x3303 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x2B39 PUSH2 0x3A29 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH2 0x2B46 PUSH2 0x3A83 JUMP JUMPDEST DUP9 PUSH2 0x2B50 DUP2 PUSH2 0x4712 JUMP JUMPDEST DUP9 PUSH2 0x2B5A DUP2 PUSH2 0x3AE1 JUMP JUMPDEST DUP9 PUSH2 0x2B64 DUP2 PUSH2 0x3AE1 JUMP JUMPDEST PUSH2 0x2B6C PUSH2 0x3B39 JUMP JUMPDEST DUP12 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x18160DDD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2BAA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2BBE JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2BD4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP8 POP PUSH2 0x2BE2 DUP13 DUP13 PUSH2 0x222F JUMP JUMPDEST POP SWAP7 POP DUP10 DUP8 LT ISZERO PUSH2 0x2C3D JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F52455455524E5F544F4F5F4C4F570000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0xE PUSH1 0x0 DUP14 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP6 POP PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xF6B911BC DUP14 CALLER DUP15 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP4 POP POP POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2D0A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2D1E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x2D4B SWAP2 POP DUP9 PUSH4 0xFFFFFFFF PUSH2 0x3B7B AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE PUSH1 0xC SWAP1 MSTORE KECCAK256 SLOAD PUSH2 0x2D80 SWAP1 DUP9 PUSH4 0xFFFFFFFF PUSH2 0x3B7B AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP3 SWAP1 SSTORE SWAP1 SWAP6 POP PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x52F4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ ISZERO PUSH2 0x2DE6 JUMPI PUSH1 0x40 MLOAD CALLER SWAP1 DUP9 ISZERO PUSH2 0x8FC MUL SWAP1 DUP10 SWAP1 PUSH1 0x0 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x2DE0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH2 0x2DF1 JUMP JUMPDEST PUSH2 0x2DF1 DUP7 CALLER DUP10 PUSH2 0x4783 JUMP JUMPDEST PUSH2 0x2DF9 PUSH2 0x37C8 JUMP JUMPDEST PUSH2 0x2E09 DUP9 DUP13 PUSH4 0xFFFFFFFF PUSH2 0x3B7B AND JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP10 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP9 SWAP1 MSTORE DUP1 DUP3 ADD DUP4 SWAP1 MSTORE SWAP1 MLOAD SWAP2 SWAP6 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 AND SWAP2 CALLER SWAP2 PUSH32 0xBC7D19D505C7EC4DB83F3B51F19FB98C4C8A99922E7839D1EE608DFBEE29501B SWAP2 SWAP1 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG3 PUSH2 0x2E65 DUP13 DUP6 DUP9 PUSH2 0x3CC3 JUMP JUMPDEST PUSH2 0x2E78 PUSH1 0x7 PUSH1 0x0 DUP2 SLOAD DUP2 LT ISZERO ISZERO PUSH2 0x1FDE JUMPI INVALID JUMPDEST POP POP PUSH1 0x1 PUSH1 0x4 SSTORE POP SWAP3 SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x16 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2E9D PUSH2 0x3A29 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH32 0x536F7672796E537761704E6574776F726B000000000000000000000000000000 PUSH2 0x2ECC DUP2 PUSH2 0x3EB4 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 DUP2 AND SWAP1 DUP8 AND EQ ISZERO PUSH2 0x2F30 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F534F555243455F54415247455400000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND ISZERO DUP1 PUSH2 0x3073 JUMPI POP PUSH1 0x6 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x3AF32ABF00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP2 PUSH4 0x3AF32ABF SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2FAB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2FBF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2FD5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD DUP1 ISZERO PUSH2 0x3073 JUMPI POP PUSH1 0x6 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x3AF32ABF00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP2 PUSH4 0x3AF32ABF SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3046 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x305A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x3070 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD JUMPDEST ISZERO ISZERO PUSH2 0x30C9 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4E4F545F57484954454C495354454400000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x30D6 DUP8 DUP8 DUP8 DUP8 DUP8 PUSH2 0x483A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x4 SSTORE SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x30F1 PUSH2 0x529D JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x30FC PUSH2 0x413C JUMP JUMPDEST SWAP3 POP PUSH2 0x3107 DUP4 PUSH2 0x4380 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x7 PUSH1 0x0 DUP2 SLOAD DUP2 LT ISZERO ISZERO PUSH2 0x311B JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0xA SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x3150 JUMPI PUSH4 0xFFFFFFFF DUP1 DUP4 AND SWAP6 POP DUP2 AND SWAP4 POP PUSH2 0x315F JUMP JUMPDEST PUSH4 0xFFFFFFFF DUP1 DUP3 AND SWAP6 POP DUP3 AND SWAP4 POP JUMPDEST POP POP POP SWAP1 SWAP2 JUMP JUMPDEST PUSH2 0x316E PUSH2 0x3382 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH4 0xFFFFFFFF PUSH5 0x100000000 SWAP1 SWAP2 DIV DUP2 AND SWAP1 DUP3 AND GT ISZERO PUSH2 0x31DA JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F434F4E56455253494F4E5F464545000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH4 0xFFFFFFFF PUSH9 0x10000000000000000 SWAP1 SWAP4 DIV DUP4 AND DUP2 MSTORE SWAP2 DUP4 AND PUSH1 0x20 DUP4 ADD MSTORE DUP1 MLOAD PUSH32 0x81CD2FFB37DD237C0E4E2A3DE5265FCF9DEB43D3E7801E80DB9F1CCFBA7EE600 SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG1 PUSH1 0x9 DUP1 SLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP3 AND PUSH9 0x10000000000000000 MUL PUSH12 0xFFFFFFFF0000000000000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x3263 PUSH2 0x3382 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x32C9 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F4F574E4552000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x12 SLOAD PUSH1 0x13 SLOAD DUP3 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO PUSH2 0x154A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245534552564500000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x170A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5314 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x33DA PUSH2 0x154D JUMP JUMPDEST ISZERO PUSH2 0x170A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xA PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F41435449564500000000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ADDRESS EQ ISZERO PUSH2 0x154A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F414444524553535F49535F53454C4600000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0x154A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xBB34534C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP2 PUSH4 0xBB34534C SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3556 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x356A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x3580 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP6 POP DUP6 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x6D3E313E PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x35E8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x35FC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x3625 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 MLOAD PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x363D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD PUSH1 0x20 DUP2 ADD DUP5 DUP2 GT ISZERO PUSH2 0x3650 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP6 PUSH1 0x20 DUP3 MUL DUP4 ADD GT PUSH5 0x100000000 DUP3 GT OR ISZERO PUSH2 0x366D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP DUP1 MLOAD PUSH1 0x7 SLOAD SWAP2 SWAP10 POP ISZERO SWAP8 POP SWAP6 POP PUSH1 0x0 SWAP5 POP POP POP POP JUMPDEST DUP3 DUP3 LT ISZERO PUSH2 0x2227 JUMPI DUP4 ISZERO PUSH2 0x3703 JUMPI DUP6 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x9CBF9E36 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x36D0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x36E4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x36FA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 POP PUSH2 0x371E JUMP JUMPDEST DUP5 DUP3 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3711 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD SWAP1 POP JUMPDEST DUP1 PUSH1 0xD PUSH1 0x0 PUSH1 0x7 DUP6 DUP2 SLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3732 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 SWAP2 SWAP1 SWAP2 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 DUP2 AND DUP5 MSTORE SWAP1 DUP4 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x40 SWAP1 SWAP2 ADD SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND SWAP3 SWAP1 SWAP2 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH1 0x7 DUP1 SLOAD DUP4 SWAP1 DUP2 LT PUSH2 0x3780 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 SWAP1 SWAP2 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 DUP2 AND DUP5 MSTORE PUSH1 0xE SWAP1 SWAP3 MSTORE PUSH1 0x40 SWAP1 SWAP3 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND SWAP2 SWAP1 SWAP3 AND OR SWAP1 SSTORE PUSH1 0x1 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x3684 JUMP JUMPDEST TIMESTAMP SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0xF SLOAD DUP2 MSTORE PUSH1 0x10 SLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 SWAP1 DUP2 SWAP1 PUSH2 0x37ED SWAP1 PUSH2 0x4380 JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 PUSH1 0x1 SWAP1 DUP2 ADD DUP1 SLOAD PUSH4 0xFFFFFFFF SWAP8 DUP9 AND PUSH4 0xFFFFFFFF NOT SWAP2 DUP3 AND OR SWAP1 SWAP2 SSTORE PUSH1 0xB SLOAD SWAP1 SWAP5 AND DUP4 MSTORE SWAP2 KECCAK256 ADD DUP1 SLOAD SWAP3 SWAP1 SWAP4 AND SWAP2 AND OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 ADDRESS PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x8DA5CB5B PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x389F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x38B3 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x38C9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 ISZERO ISZERO PUSH2 0x38ED JUMPI PUSH1 0x0 SWAP2 POP PUSH2 0x3957 JUMP JUMPDEST POP DUP3 DUP3 MUL DUP3 DUP5 DUP3 DUP2 ISZERO ISZERO PUSH2 0x38FD JUMPI INVALID JUMPDEST DIV EQ PUSH2 0x3953 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP1 SWAP2 POP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 ADD DUP4 DUP2 LT ISZERO PUSH2 0x3953 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP4 GT PUSH2 0x3A15 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4449564944455F42595F5A45524F0000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP3 DUP5 DUP2 ISZERO ISZERO PUSH2 0x3A20 JUMPI INVALID JUMPDEST DIV SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH1 0x1 EQ PUSH2 0x170A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5245454E5452414E4359000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x3A8B PUSH2 0x154D JUMP JUMPDEST ISZERO ISZERO PUSH2 0x170A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E4143544956450000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 GT PUSH2 0x154A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5A45524F5F56414C5545000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x258F JUMPI PUSH2 0x3B73 PUSH1 0x7 DUP3 DUP2 SLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3B59 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x3DC0 JUMP JUMPDEST PUSH1 0x1 ADD PUSH2 0x3B3F JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT ISZERO PUSH2 0x3BD5 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F554E444552464C4F5700000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP SWAP1 SUB SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x7472616E7366657246726F6D28616464726573732C616464726573732C75696E DUP2 MSTORE PUSH32 0x7432353629000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP3 MLOAD SWAP2 DUP3 SWAP1 SUB PUSH1 0x25 ADD DUP3 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP9 AND PUSH1 0x24 DUP6 ADD MSTORE DUP7 AND PUSH1 0x44 DUP5 ADD MSTORE PUSH1 0x64 DUP1 DUP5 ADD DUP7 SWAP1 MSTORE DUP5 MLOAD DUP1 DUP6 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x84 SWAP1 SWAP4 ADD SWAP1 SWAP4 MSTORE DUP2 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE PUSH2 0x3CBD SWAP1 DUP6 SWAP1 PUSH2 0x492D JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP3 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SLOAD DUP3 MLOAD SWAP1 DUP2 MSTORE SWAP1 DUP2 ADD DUP7 SWAP1 MSTORE DUP2 MLOAD SWAP3 SWAP4 DUP8 AND SWAP3 PUSH32 0x77F29993CF2C084E726F7E802DA0719D6A0ADE3E204BADC7A3FFD57ECB768C24 SWAP3 SWAP2 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH2 0x3D2B PUSH2 0x529D JUMP JUMPDEST PUSH2 0x3D37 DUP6 DUP6 DUP6 DUP6 PUSH2 0x49BB JUMP JUMPDEST DUP1 MLOAD PUSH1 0x20 DUP1 DUP4 ADD MLOAD PUSH1 0x40 DUP1 MLOAD SWAP4 DUP5 MSTORE SWAP2 DUP4 ADD MSTORE DUP1 MLOAD SWAP3 SWAP4 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP9 AND SWAP4 SWAP1 DUP10 AND SWAP3 PUSH32 0x77F29993CF2C084E726F7E802DA0719D6A0ADE3E204BADC7A3FFD57ECB768C24 SWAP3 SWAP1 DUP3 SWAP1 SUB ADD SWAP1 LOG3 POP POP POP POP POP JUMP JUMPDEST PUSH2 0x3D97 PUSH2 0x3382 JUMP JUMPDEST DUP3 PUSH2 0x3DA1 DUP2 PUSH2 0x3490 JUMP JUMPDEST DUP3 PUSH2 0x3DAB DUP2 PUSH2 0x3490 JUMP JUMPDEST DUP4 PUSH2 0x3DB5 DUP2 PUSH2 0x342F JUMP JUMPDEST PUSH2 0x2227 DUP7 DUP7 DUP7 PUSH2 0x4783 JUMP JUMPDEST DUP1 PUSH2 0x3DCA DUP2 PUSH2 0x3303 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 AND PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x52F4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ ISZERO PUSH2 0x3E0A JUMPI PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 ADDRESS BALANCE SWAP1 SSTORE PUSH2 0x258F JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3E6B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3E7F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x3E95 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE POP POP JUMP JUMPDEST PUSH2 0x3EBD DUP2 PUSH2 0x34F0 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x154A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5314 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x3F14 PUSH2 0x3382 JUMP JUMPDEST PUSH2 0x3F1C PUSH2 0x33D2 JUMP JUMPDEST DUP3 PUSH2 0x3F26 DUP2 PUSH2 0x3490 JUMP JUMPDEST DUP4 PUSH2 0x3F30 DUP2 PUSH2 0x342F JUMP JUMPDEST DUP4 PUSH2 0x3F3A DUP2 PUSH2 0x4A83 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 DUP2 AND SWAP2 AND EQ DUP1 ISZERO SWAP1 PUSH2 0x3F7E JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x3FD4 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245534552564500000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x9 SLOAD PUSH4 0xFFFFFFFF SWAP1 DUP2 AND PUSH3 0xF4240 SUB DUP2 AND SWAP1 DUP7 AND GT ISZERO PUSH2 0x403F JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F574549474854000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0xFFFF PUSH2 0x404A PUSH2 0x2695 JUMP JUMPDEST PUSH2 0xFFFF AND LT PUSH2 0x4091 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5334 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP2 DUP2 SSTORE PUSH1 0x1 SWAP1 DUP2 ADD DUP1 SLOAD PUSH7 0xFF000000000000 NOT PUSH4 0xFFFFFFFF DUP1 DUP9 AND PUSH4 0xFFFFFFFF NOT SWAP4 DUP5 AND OR SWAP2 SWAP1 SWAP2 AND PUSH7 0x1000000000000 OR SWAP1 SWAP3 SSTORE PUSH1 0x7 DUP1 SLOAD SWAP4 DUP5 ADD DUP2 SSTORE SWAP1 SWAP4 MSTORE PUSH32 0xA66CC928B5EDB82AF9BD49922954155AB7B0942694BEA4CE44661D9A8736C688 SWAP1 SWAP2 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND SWAP1 SWAP4 OR SWAP1 SWAP3 SSTORE PUSH1 0x9 DUP1 SLOAD DUP1 DUP5 AND SWAP1 SWAP5 ADD SWAP1 SWAP3 AND SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE POP JUMP JUMPDEST PUSH2 0x4144 PUSH2 0x529D JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x4152 PUSH2 0x529D JUMP JUMPDEST PUSH2 0x415A PUSH2 0x529D JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0xA SLOAD PUSH1 0xB SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xB1772D7A00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND PUSH1 0x4 DUP3 ADD MSTORE SWAP2 DUP4 AND PUSH1 0x24 DUP4 ADD MSTORE MLOAD PUSH1 0x0 SWAP4 DUP5 SWAP4 DUP5 SWAP4 DUP5 SWAP4 PUSH13 0x1000000000000000000000000 SWAP1 SWAP4 DIV SWAP1 SWAP2 AND SWAP2 PUSH4 0xB1772D7A SWAP2 PUSH1 0x44 DUP1 DUP3 ADD SWAP3 PUSH1 0x60 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x41E8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x41FC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x60 DUP2 LT ISZERO PUSH2 0x4212 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD PUSH1 0x20 DUP3 ADD MLOAD PUSH1 0x40 SWAP1 SWAP3 ADD MLOAD PUSH1 0x11 SLOAD SWAP2 SWAP13 POP SWAP2 SWAP11 POP SWAP1 SWAP9 POP DUP9 GT ISZERO PUSH2 0x424F JUMPI PUSH1 0x40 DUP1 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 DUP12 DUP2 MSTORE PUSH1 0x20 ADD DUP11 DUP2 MSTORE POP SWAP11 POP PUSH2 0x4373 JUMP JUMPDEST PUSH1 0x11 SLOAD PUSH2 0x425A PUSH2 0x37C4 JUMP JUMPDEST SUB SWAP7 POP DUP7 ISZERO ISZERO PUSH2 0x4282 JUMPI PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0xF SLOAD DUP2 MSTORE PUSH1 0x10 SLOAD PUSH1 0x20 DUP3 ADD MSTORE SWAP11 POP PUSH2 0x4373 JUMP JUMPDEST PUSH2 0x258 DUP8 LT PUSH2 0x42A9 JUMPI PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x12 SLOAD DUP2 MSTORE PUSH1 0x13 SLOAD PUSH1 0x20 DUP3 ADD MSTORE SWAP11 POP PUSH2 0x4373 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD DUP3 MSTORE PUSH1 0xF SLOAD DUP2 MSTORE PUSH1 0x10 SLOAD PUSH1 0x20 DUP1 DUP4 ADD SWAP2 DUP3 MSTORE DUP4 MLOAD DUP1 DUP6 ADD SWAP1 SWAP5 MSTORE PUSH1 0x12 SLOAD DUP1 DUP6 MSTORE PUSH1 0x13 SLOAD SWAP2 DUP6 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP1 MLOAD SWAP2 SWAP9 POP SWAP2 SWAP7 POP PUSH2 0x42F1 SWAP2 PUSH4 0xFFFFFFFF PUSH2 0x38DA AND JUMP JUMPDEST PUSH1 0x20 DUP7 ADD MLOAD DUP8 MLOAD SWAP2 SWAP6 POP PUSH2 0x430B SWAP2 SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x38DA AND JUMP JUMPDEST SWAP3 POP PUSH2 0x4335 PUSH2 0x4320 DUP6 DUP10 PUSH4 0xFFFFFFFF PUSH2 0x38DA AND JUMP JUMPDEST PUSH2 0x15E3 DUP6 PUSH2 0x258 DUP12 SWAP1 SUB PUSH4 0xFFFFFFFF PUSH2 0x38DA AND JUMP JUMPDEST SWAP2 POP PUSH2 0x4364 PUSH2 0x258 PUSH2 0x4358 DUP8 PUSH1 0x20 ADD MLOAD DUP10 PUSH1 0x20 ADD MLOAD PUSH2 0x38DA SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x38DA AND JUMP JUMPDEST SWAP1 POP PUSH2 0x4370 DUP3 DUP3 PUSH2 0x4AF8 JUMP JUMPDEST SWAP11 POP JUMPDEST POP POP POP POP POP POP POP POP POP POP SWAP1 JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD SWAP1 SWAP2 DUP3 SWAP2 SWAP1 DUP3 SWAP1 DUP2 SWAP1 PUSH2 0x43AD SWAP1 PUSH2 0x15A1 JUMP JUMPDEST PUSH1 0xB SLOAD SWAP1 SWAP3 POP PUSH2 0x43C5 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x15A1 JUMP JUMPDEST SWAP1 POP PUSH2 0x43F0 PUSH32 0x536F7672796E53776170466F726D756C61000000000000000000000000000000 PUSH2 0x34F0 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xA11AA1B4 PUSH2 0x440F DUP6 PUSH1 0x14 PUSH4 0xFFFFFFFF PUSH2 0x38DA AND JUMP JUMPDEST DUP9 MLOAD PUSH1 0x20 DUP11 ADD MLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0xE0 PUSH1 0x2 EXP PUSH4 0xFFFFFFFF DUP8 AND MUL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP5 SWAP1 SWAP5 MSTORE PUSH1 0x24 DUP5 ADD DUP9 SWAP1 MSTORE PUSH1 0x44 DUP5 ADD DUP8 SWAP1 MSTORE PUSH1 0x64 DUP5 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x84 DUP4 ADD MSTORE DUP1 MLOAD PUSH1 0xA4 DUP1 DUP5 ADD SWAP4 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x446A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x447E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x4494 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD MLOAD SWAP1 SWAP6 POP SWAP4 POP POP POP POP SWAP2 POP SWAP2 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP1 DUP1 PUSH4 0xFFFFFFFF DUP10 AND ISZERO ISZERO PUSH2 0x44E2 JUMPI PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH4 0xFFFFFFFF AND SWAP9 POP JUMPDEST PUSH4 0xFFFFFFFF DUP9 AND ISZERO ISZERO PUSH2 0x4514 JUMPI PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP11 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH4 0xFFFFFFFF AND SWAP8 POP JUMPDEST PUSH2 0x451D DUP12 PUSH2 0x15A1 JUMP JUMPDEST SWAP2 POP PUSH2 0x4528 DUP11 PUSH2 0x15A1 JUMP JUMPDEST SWAP1 POP PUSH2 0x4553 PUSH32 0x536F7672796E53776170466F726D756C61000000000000000000000000000000 PUSH2 0x34F0 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x94491FAB00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH4 0xFFFFFFFF DUP1 DUP14 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP3 ADD DUP6 SWAP1 MSTORE DUP12 AND PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 DUP2 ADD DUP10 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 PUSH4 0x94491FAB SWAP2 PUSH1 0xA4 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x45DA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x45EE JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x4604 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP5 POP PUSH2 0x4611 DUP6 PUSH2 0x4B4D JUMP JUMPDEST SWAP4 POP PUSH2 0x4624 DUP5 PUSH2 0x15E3 DUP13 DUP13 DUP13 DUP13 DUP12 PUSH2 0x4B7D JUMP JUMPDEST SWAP3 POP PUSH2 0x4636 DUP6 DUP5 PUSH4 0xFFFFFFFF PUSH2 0x3B7B AND JUMP JUMPDEST SWAP5 POP POP POP SWAP7 POP SWAP7 POP SWAP7 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0x464E PUSH2 0x3382 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4658 PUSH2 0x2695 JUMP JUMPDEST PUSH2 0xFFFF AND GT PUSH2 0x469F JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5334 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x79BA5097 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x46F2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x4706 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x170A PUSH2 0x3B39 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD AND ISZERO ISZERO PUSH2 0x154A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F504F4F4C5F544F4B454E00000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x7472616E7366657228616464726573732C75696E743235362900000000000000 DUP2 MSTORE DUP2 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x19 ADD DUP2 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x64 SWAP1 SWAP3 ADD SWAP1 SWAP3 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE PUSH2 0x4835 SWAP1 DUP5 SWAP1 PUSH2 0x492D JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x4847 PUSH2 0x3A83 JUMP JUMPDEST DUP8 PUSH2 0x4851 DUP2 PUSH2 0x3303 JUMP JUMPDEST DUP8 PUSH2 0x485B DUP2 PUSH2 0x3303 JUMP JUMPDEST PUSH2 0x4866 DUP11 DUP11 DUP11 PUSH2 0x4C56 JUMP JUMPDEST SWAP1 SWAP5 POP SWAP3 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP10 AND PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x52F4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ ISZERO PUSH2 0x48C6 JUMPI PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND SWAP1 DUP6 ISZERO PUSH2 0x8FC MUL SWAP1 DUP7 SWAP1 PUSH1 0x0 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x48C0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH2 0x48D1 JUMP JUMPDEST PUSH2 0x48D1 DUP10 DUP8 DUP7 PUSH2 0x4783 JUMP JUMPDEST PUSH2 0x48DF DUP11 DUP11 DUP10 DUP12 DUP9 DUP9 PUSH2 0x4F6B JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 PUSH1 0x1 SWAP1 DUP2 ADD SLOAD SWAP4 DUP14 AND DUP4 MSTORE SWAP2 KECCAK256 ADD SLOAD PUSH2 0x491F SWAP2 DUP13 SWAP2 DUP13 SWAP2 PUSH4 0xFFFFFFFF SWAP1 DUP2 AND SWAP2 AND PUSH2 0x4FF0 JUMP JUMPDEST POP SWAP2 SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x4935 PUSH2 0x52B4 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE POP SWAP1 POP PUSH1 0x20 DUP2 DUP4 MLOAD PUSH1 0x20 DUP6 ADD PUSH1 0x0 DUP8 GAS CALL DUP1 ISZERO ISZERO PUSH2 0x4962 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD ISZERO ISZERO PUSH2 0x4835 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5452414E534645525F4641494C454400000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x49C3 PUSH2 0x529D JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x49CF DUP8 PUSH2 0x15A1 JUMP JUMPDEST SWAP2 POP PUSH2 0x49DA DUP7 PUSH2 0x15A1 JUMP JUMPDEST SWAP1 POP PUSH4 0xFFFFFFFF DUP6 AND ISZERO ISZERO PUSH2 0x4A0E JUMPI PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH4 0xFFFFFFFF AND SWAP5 POP JUMPDEST PUSH4 0xFFFFFFFF DUP5 AND ISZERO ISZERO PUSH2 0x4A40 JUMPI PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH4 0xFFFFFFFF AND SWAP4 POP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE DUP1 PUSH2 0x4A5E DUP4 PUSH4 0xFFFFFFFF DUP1 DUP11 AND SWAP1 PUSH2 0x38DA AND JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x4A76 DUP5 PUSH4 0xFFFFFFFF DUP1 DUP10 AND SWAP1 PUSH2 0x38DA AND JUMP JUMPDEST SWAP1 MSTORE SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH4 0xFFFFFFFF AND GT DUP1 ISZERO PUSH2 0x4AA2 JUMPI POP PUSH3 0xF4240 PUSH4 0xFFFFFFFF DUP3 AND GT ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x154A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F574549474854000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x4B00 PUSH2 0x529D JUMP JUMPDEST PUSH2 0x4B08 PUSH2 0x529D JUMP JUMPDEST DUP3 DUP5 LT PUSH2 0x4B20 JUMPI PUSH2 0x4B19 DUP5 DUP5 PUSH2 0x5081 JUMP JUMPDEST SWAP2 POP PUSH2 0x3957 JUMP JUMPDEST PUSH2 0x4B2A DUP4 DUP6 PUSH2 0x5081 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x20 DUP1 DUP4 ADD MLOAD DUP3 MSTORE DUP3 MLOAD SWAP1 DUP3 ADD MSTORE SWAP3 POP SWAP1 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x0 SWAP1 PUSH2 0x2AC5 SWAP1 PUSH3 0xF4240 SWAP1 PUSH2 0x16C3 SWAP1 DUP6 SWAP1 PUSH9 0x10000000000000000 SWAP1 DIV PUSH4 0xFFFFFFFF SWAP1 DUP2 AND SWAP1 PUSH2 0x38DA AND JUMP JUMPDEST PUSH1 0xB SLOAD PUSH1 0x0 SWAP1 DUP2 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x4BEB JUMPI PUSH1 0xA SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD PUSH1 0xB SLOAD SWAP1 SWAP5 AND DUP4 MSTORE SWAP1 SWAP2 KECCAK256 SLOAD DUP7 MLOAD SWAP2 DUP8 ADD MLOAD PUSH1 0x16 SLOAD PUSH2 0x4BE4 SWAP5 SWAP4 PUSH4 0xFFFFFFFF DUP1 DUP14 AND SWAP4 SWAP1 DUP13 AND SWAP3 PUSH2 0x513E JUMP JUMPDEST SWAP1 POP PUSH2 0x4C3A JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD PUSH1 0xB SLOAD SWAP1 SWAP5 AND DUP4 MSTORE SWAP1 SWAP2 KECCAK256 SLOAD DUP7 MLOAD SWAP2 DUP8 ADD MLOAD PUSH1 0x16 SLOAD PUSH2 0x4C37 SWAP5 SWAP4 PUSH4 0xFFFFFFFF DUP1 DUP13 AND SWAP4 SWAP1 DUP14 AND SWAP3 PUSH2 0x513E JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH2 0x4C4B PUSH3 0xF4240 PUSH2 0x16C3 DUP6 DUP5 PUSH2 0x38DA JUMP JUMPDEST SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x4C63 PUSH2 0x529D JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x4C71 PUSH2 0x51AA JUMP JUMPDEST SWAP6 POP SWAP6 POP PUSH2 0x4C84 DUP12 DUP12 PUSH1 0x0 DUP1 DUP10 DUP15 PUSH2 0x44AA JUMP JUMPDEST SWAP2 SWAP6 POP SWAP4 POP SWAP2 POP DUP4 ISZERO ISZERO PUSH2 0x4CE2 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5A45524F5F5441524745545F414D4F554E5400000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x4CEB DUP11 PUSH2 0x2AFF JUMP JUMPDEST SWAP1 POP DUP1 DUP5 LT PUSH2 0x4D44 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5441524745545F414D4F554E545F544F4F5F48494748000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x52F4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ ISZERO PUSH2 0x4DBF JUMPI CALLVALUE DUP10 EQ PUSH2 0x4DBA JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4554485F414D4F554E545F4D49534D41544348000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x4EC1 JUMP JUMPDEST CALLVALUE ISZERO DUP1 ISZERO PUSH2 0x4E6B JUMPI POP DUP9 PUSH2 0x4E68 PUSH2 0x4DD5 DUP14 PUSH2 0x2AFF JUMP JUMPDEST DUP14 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x4E30 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x4E44 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x4E5A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x3B7B AND JUMP JUMPDEST LT ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x4EC1 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F414D4F554E540000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x4ECA DUP12 PUSH2 0x3DC0 JUMP JUMPDEST PUSH2 0x4EDA DUP2 DUP6 PUSH4 0xFFFFFFFF PUSH2 0x3B7B AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE PUSH1 0xC SWAP1 MSTORE KECCAK256 SLOAD PUSH2 0x4F0F SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0x395E AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE DUP6 ISZERO PUSH2 0x4F5A JUMPI PUSH1 0xA SLOAD PUSH1 0xB SLOAD PUSH2 0x4F4D SWAP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 DUP2 AND SWAP2 AND PUSH1 0x0 DUP1 PUSH2 0x49BB JUMP JUMPDEST DUP1 MLOAD PUSH1 0x12 SSTORE PUSH1 0x20 ADD MLOAD PUSH1 0x13 SSTORE JUMPDEST POP SWAP2 SWAP10 SWAP2 SWAP9 POP SWAP1 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0x8000000000000000000000000000000000000000000000000000000000000000 DUP2 LT PUSH2 0x4F94 JUMPI INVALID JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP5 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 SWAP1 MSTORE DUP1 DUP3 ADD DUP4 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP8 AND SWAP3 DUP9 DUP3 AND SWAP3 SWAP2 DUP11 AND SWAP2 PUSH32 0x276856B36CBC45526A0BA64F44611557A2A8B68662C5388E9FE6D72E86E1C8CB SWAP2 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG4 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x4FFF DUP7 DUP7 DUP7 DUP7 PUSH2 0x3D23 JUMP JUMPDEST PUSH2 0x5008 DUP6 PUSH2 0x2033 JUMP JUMPDEST SWAP2 POP DUP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x18160DDD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x5048 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x505C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x5072 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 POP PUSH2 0x2227 DUP3 DUP3 DUP8 PUSH2 0x3CC3 JUMP JUMPDEST PUSH2 0x5089 PUSH2 0x529D JUMP JUMPDEST PUSH20 0x14484BFEEBC29F863424B06F3529A051A31BE599 DUP3 GT ISZERO PUSH2 0x50DB JUMPI PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH13 0xC9F2C9CD04674EDEA40000000 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 DUP6 DIV DUP5 DUP2 ISZERO ISZERO PUSH2 0x50D1 JUMPI INVALID JUMPDEST DIV SWAP1 MSTORE SWAP1 POP PUSH2 0x2AC5 JUMP JUMPDEST PUSH13 0xC9F2C9CD04674EDEA40000000 DUP4 GT ISZERO PUSH2 0x5128 JUMPI PUSH1 0x40 DUP1 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH13 0xC9F2C9CD04674EDEA40000000 DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH13 0xC9F2C9CD04674EDEA40000000 DUP6 MUL DUP2 ISZERO ISZERO PUSH2 0x50D1 JUMPI INVALID JUMPDEST POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 PUSH2 0x5156 DUP8 PUSH2 0x4358 DUP13 DUP10 PUSH4 0xFFFFFFFF PUSH2 0x38DA AND JUMP JUMPDEST SWAP2 POP PUSH2 0x516C DUP9 PUSH2 0x4358 DUP12 DUP9 PUSH4 0xFFFFFFFF PUSH2 0x38DA AND JUMP JUMPDEST SWAP1 POP DUP2 DUP2 GT ISZERO PUSH2 0x5198 JUMPI PUSH2 0x5191 DUP2 PUSH2 0x16C3 PUSH1 0x14 PUSH2 0x4358 DUP7 DUP5 SUB DUP10 PUSH4 0xFFFFFFFF PUSH2 0x38DA AND JUMP JUMPDEST SWAP3 POP PUSH2 0x519D JUMP JUMPDEST PUSH1 0x0 SWAP3 POP JUMPDEST POP POP SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x51B4 PUSH2 0x529D JUMP JUMPDEST PUSH1 0x0 PUSH2 0x51BE PUSH2 0x529D JUMP JUMPDEST PUSH2 0x51C6 PUSH2 0x529D JUMP JUMPDEST PUSH2 0x51CE PUSH2 0x37C4 JUMP JUMPDEST SWAP3 POP DUP3 PUSH1 0x11 SLOAD EQ ISZERO PUSH2 0x51FC JUMPI PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0xF SLOAD DUP2 MSTORE PUSH1 0x10 SLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 SWAP6 POP SWAP4 POP PUSH2 0x315F JUMP JUMPDEST PUSH2 0x5204 PUSH2 0x413C JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0xF SLOAD DUP1 DUP3 MSTORE PUSH1 0x10 SLOAD PUSH1 0x20 DUP4 ADD MSTORE DUP3 MLOAD SWAP3 SWAP5 POP SWAP1 SWAP3 POP EQ DUP1 ISZERO PUSH2 0x5238 JUMPI POP DUP1 PUSH1 0x20 ADD MLOAD DUP3 PUSH1 0x20 ADD MLOAD EQ JUMPDEST ISZERO PUSH2 0x5249 JUMPI PUSH1 0x0 DUP3 SWAP5 POP SWAP5 POP PUSH2 0x315F JUMP JUMPDEST DUP2 MLOAD PUSH1 0xF SSTORE PUSH1 0x20 DUP3 ADD MLOAD PUSH1 0x10 SSTORE PUSH1 0x11 DUP4 SWAP1 SSTORE PUSH2 0x5263 PUSH2 0x37C8 JUMP JUMPDEST POP PUSH1 0x1 SWAP5 SWAP1 SWAP4 POP SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xA0 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE SWAP2 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x60 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 SWAP1 PUSH1 0x20 DUP3 MUL DUP1 CODESIZE DUP4 CODECOPY POP SWAP2 SWAP3 SWAP2 POP POP JUMP STOP MSTORE8 PUSH16 0x7672796E53776170436F6E7665727465 PUSH19 0x55706772616465720000000000000000000000 STOP STOP STOP STOP STOP STOP 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee GASLIMIT MSTORE MSTORE 0x5f COINBASE NUMBER NUMBER GASLIMIT MSTORE8 MSTORE8 0x5f DIFFICULTY GASLIMIT 0x4e 0x49 GASLIMIT DIFFICULTY STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP GASLIMIT MSTORE MSTORE 0x5f 0x49 0x4e JUMP COINBASE 0x4c 0x49 DIFFICULTY 0x5f MSTORE GASLIMIT MSTORE8 GASLIMIT MSTORE JUMP GASLIMIT 0x5f NUMBER 0x4f SSTORE 0x4e SLOAD STOP STOP STOP STOP STOP STOP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 0xd6 0xce 0xae 0xf 0xa8 DUP15 OR PUSH16 0xCEC4250A8A72385CF1AE86E302A34151 0x47 0xc 0xa7 SWAP10 PUSH26 0x55CCC20029A165627A7A72305820829C55F8C1D3C151DAFC68FA LOG4 BALANCE SWAP8 ADD 0xeb SELFDESTRUCT LOG1 0x4c DUP16 0xd5 REVERT DUP1 0x48 0xd1 SWAP9 PUSH28 0x986DB5D4002900000000000000000000000000000000000000000000 ", - "sourceMap": "219:1042:28:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;219:1042:28;;;;;;;" - }, - "deployedBytecode": { - "linkReferences": {}, - "object": "60806040526004361061004b5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631141395881146100505780633e8ff43f146100b6575b600080fd5b34801561005c57600080fd5b5061008d73ffffffffffffffffffffffffffffffffffffffff6004358116906024351663ffffffff604435166100e2565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b3480156100c257600080fd5b506100cb6101d5565b6040805161ffff9092168252519081900360200190f35b6000808484846100f06101da565b73ffffffffffffffffffffffffffffffffffffffff938416815291909216602082015263ffffffff9091166040808301919091525190819003606001906000f080158015610142573d6000803e3d6000fd5b50604080517ff2fde38b000000000000000000000000000000000000000000000000000000008152336004820152905191925073ffffffffffffffffffffffffffffffffffffffff83169163f2fde38b9160248082019260009290919082900301818387803b1580156101b457600080fd5b505af11580156101c8573d6000803e3d6000fd5b5092979650505050505050565b600290565b6040516155ba806101eb833901905600608060405260016004819055600980546001606060020a03191690556015805460ff19169091179055620111706016553480156200003c57600080fd5b50604051606080620055ba83398101604090815281516020830151919092015160008054600160a060020a0319163317905582828282828281806200008a8164010000000062000137810204565b5060028054600160a060020a03909216600160a060020a031992831681179091556003805490921617905582620000ca8164010000000062000137810204565b81620000df81640100000000620001b2810204565b505060058054600160a060020a03909416600160a060020a031990941693909317909255506009805463ffffffff9092166401000000000267ffffffff0000000019909216919091179055506200022b945050505050565b600160a060020a0381161515620001af57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b50565b620f424063ffffffff82161115620001af57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f4552525f494e56414c49445f434f4e56455253494f4e5f464545000000000000604482015290519081900360640190fd5b61537f806200023b6000396000f3006080604052600436106103125763ffffffff60e060020a6000350416625e319c81146103b0578063024c7ec7146103e35780630337e3fb146103fd5780630a55fb3d1461042e5780630c7d5cd8146104575780630e53aae914610485578063119b90cd146104da57806312c2aca41461050757806316912f961461051c57806319b64015146105315780631cfab290146105495780631e1401f81461056a57806321e6b53d146105ad57806322f3e2d4146105ce5780632630c12f146105e35780632bd3c107146105f85780632bf0c985146106195780632fe8a6ad1461063a57806338a5e0161461064f578063395900d4146106645780633e8ff43f1461068e57806346749468146106ba57806349d10b64146106d55780634af80f0e146106ea57806354fd4d501461070b57806355776b77146107205780635768adcf1461073a578063579cd3ca1461075b5780635e35359e1461077057806361cd756e1461079a57806367b6d57c146107af57806369067d95146107d0578063690d8320146107f457806369d1354a146108155780636a49d2c41461082d57806371f52bf31461085757806379ba50971461086c5780637b103999146108815780638da5cb5b1461089657806394c275ad146108ab57806398a71dcb146108c05780639b99a8e2146108e1578063a32bff44146108f6578063af94b8d81461090b578063b4a176d314610935578063bf7545581461094a578063bf7da6ba1461095f578063c3321fb014610983578063c45d3d9214610998578063cdc91c69146109ad578063d031370b146109c2578063d260529c146109da578063d3fb73b4146109ef578063d4ee1d9014610a04578063d55ec69714610a19578063d64c5a1a14610a2e578063d66bd52414610a59578063d895951214610a7a578063db2830a414610a9b578063dc75eb9a14610ab0578063dc8de37914610ac5578063e38192e314610ae6578063e8104af914610b0d578063e8dc12ff14610b22578063ec2240f514610b4c578063ecbca55d14610b61578063f2fde38b14610b7f578063f9cddde214610ba0578063fc0c546a14610bb5575b6000805160206152f483398151915260005260086020527f353c2eb9e53a4a4a6d45d72082ff2e9dc829d1125618772a83eb0e7f86632c43546601000000000000900460ff1615156103ae576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f5245534552564500000000000000000000000000604482015290519081900360640190fd5b005b3480156103bc57600080fd5b506103d1600160a060020a0360043516610bca565b60408051918252519081900360200190f35b3480156103ef57600080fd5b506103ae6004351515610bf3565b34801561040957600080fd5b50610412610c3b565b60408051600160a060020a039092168252519081900360200190f35b34801561043a57600080fd5b50610443610c4a565b604080519115158252519081900360200190f35b34801561046357600080fd5b5061046c610c53565b6040805163ffffffff9092168252519081900360200190f35b34801561049157600080fd5b506104a6600160a060020a0360043516610c5f565b6040805195865263ffffffff9094166020860152911515848401521515606084015215156080830152519081900360a00190f35b3480156104e657600080fd5b506103ae600160a060020a0360043581169060243581169060443516610cfa565b34801561051357600080fd5b50610443611464565b34801561052857600080fd5b506103ae6114ad565b34801561053d57600080fd5b506104126004356114c1565b34801561055557600080fd5b5061046c600160a060020a03600435166114ed565b34801561057657600080fd5b50610594600160a060020a036004358116906024351660443561151f565b6040805192835260208301919091528051918290030190f35b3480156105b957600080fd5b506103ae600160a060020a0360043516611539565b3480156105da57600080fd5b5061044361154d565b3480156105ef57600080fd5b50610412611582565b34801561060457600080fd5b506103d1600160a060020a03600435166115a1565b34801561062557600080fd5b506103d1600160a060020a03600435166115f6565b34801561064657600080fd5b506104436116d9565b34801561065b57600080fd5b506103ae6116fa565b34801561067057600080fd5b506103ae600160a060020a036004358116906024351660443561170c565b34801561069a57600080fd5b506106a36117a7565b6040805161ffff9092168252519081900360200190f35b3480156106c657600080fd5b506103ae6004356024356117ac565b3480156106e157600080fd5b506103ae611830565b3480156106f657600080fd5b506103ae600160a060020a0360043516611a90565b34801561071757600080fd5b506106a3611ac5565b6103d1600160a060020a0360043516602435604435611aca565b34801561074657600080fd5b50610412600160a060020a0360043516612033565b34801561076757600080fd5b5061046c612051565b34801561077c57600080fd5b506103ae600160a060020a0360043581169060243516604435612069565b3480156107a657600080fd5b5061041261217d565b3480156107bb57600080fd5b506103ae600160a060020a036004351661218c565b3480156107dc57600080fd5b50610594600160a060020a036004351660243561222f565b34801561080057600080fd5b506103ae600160a060020a036004351661238a565b34801561082157600080fd5b506103ae60043561248f565b34801561083957600080fd5b506103ae600160a060020a036004351663ffffffff60243516612534565b34801561086357600080fd5b506106a3612593565b34801561087857600080fd5b506103ae61259d565b34801561088d57600080fd5b50610412612651565b3480156108a257600080fd5b50610412612660565b3480156108b757600080fd5b5061046c61266f565b3480156108cc57600080fd5b506103d1600160a060020a0360043516612683565b3480156108ed57600080fd5b506106a3612695565b34801561090257600080fd5b5061059461269b565b34801561091757600080fd5b50610594600160a060020a03600435811690602435166044356126a4565b34801561094157600080fd5b506103ae612848565b34801561095657600080fd5b50610443612874565b34801561096b57600080fd5b506103ae600160a060020a0360043516602435612879565b34801561098f57600080fd5b506103d16128c1565b3480156109a457600080fd5b506104126128c7565b3480156109b957600080fd5b506103ae6128d6565b3480156109ce57600080fd5b5061041260043561292f565b3480156109e657600080fd5b50610443612957565b3480156109fb57600080fd5b5061041261295c565b348015610a1057600080fd5b5061041261296b565b348015610a2557600080fd5b506103ae61297a565b348015610a3a57600080fd5b50610a43612a6f565b6040805160ff9092168252519081900360200190f35b348015610a6557600080fd5b506104a6600160a060020a0360043516612a74565b348015610a8657600080fd5b506103d1600160a060020a0360043516612aba565b348015610aa757600080fd5b50610594612acb565b348015610abc57600080fd5b50610412612af0565b348015610ad157600080fd5b506103d1600160a060020a0360043516612aff565b348015610af257600080fd5b506103d1600160a060020a0360043516602435604435612b28565b348015610b1957600080fd5b506103d1612e8d565b6103d1600160a060020a036004358116906024358116906044359060643581169060843516612e93565b348015610b5857600080fd5b506105946130e6565b348015610b6d57600080fd5b506103ae63ffffffff60043516613166565b348015610b8b57600080fd5b506103ae600160a060020a036004351661325b565b348015610bac57600080fd5b506105946132eb565b348015610bc157600080fd5b506104126132f4565b600081610bd681613303565b5050600160a060020a03166000908152600c602052604090205490565b610bfb613382565b60038054911515740100000000000000000000000000000000000000000274ff000000000000000000000000000000000000000019909216919091179055565b600a54600160a060020a031681565b60155460ff1681565b60095463ffffffff1681565b6000806000806000610c6f61526f565b50505050600160a060020a03929092166000908152600860209081526040808320815160a081018352815480825260019092015463ffffffff811694820185905260ff64010000000082048116151594830194909452650100000000008104841615156060830152660100000000000090049092161515608090920182905295919450919250829190565b6000806000806000610d0a6133d2565b610d12613382565b87610d1c81613303565b87610d268161342f565b87610d308161342f565b89610d3a81613490565b89610d4481613490565b600554604080517f8da5cb5b00000000000000000000000000000000000000000000000000000000815290513092600160a060020a031691638da5cb5b9160048083019260209291908290030181600087803b158015610da357600080fd5b505af1158015610db7573d6000803e3d6000fd5b505050506040513d6020811015610dcd57600080fd5b5051600160a060020a031614610e2d576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f414e43484f525f4e4f545f4f574e4544000000000000000000000000604482015290519081900360640190fd5b610e567f436861696e6c696e6b4f7261636c6557686974656c69737400000000000000006134f0565b995089600160a060020a0316633af32abf8d6040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b158015610eb357600080fd5b505af1158015610ec7573d6000803e3d6000fd5b505050506040513d6020811015610edd57600080fd5b50511515610f35576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f494e56414c49445f4f5241434c450000000000000000000000000000604482015290519081900360640190fd5b89600160a060020a0316633af32abf8c6040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b158015610f9057600080fd5b505af1158015610fa4573d6000803e3d6000fd5b505050506040513d6020811015610fba57600080fd5b50511515611012576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f494e56414c49445f4f5241434c450000000000000000000000000000604482015290519081900360640190fd5b61101a613588565b600a8054600160a060020a031916600160a060020a038f1617905560078054600090811061104457fe5b600091825260209091200154600160a060020a038e8116911614156110a25760078054600190811061107257fe5b600091825260209091200154600b8054600160a060020a031916600160a060020a039092169190911790556110dd565b6007805460009081106110b157fe5b600091825260209091200154600b8054600160a060020a031916600160a060020a039092169190911790555b6111067f436f6e766572746572466163746f7279000000000000000000000000000000006134f0565b600160a060020a031663c977aed261111c6117a7565b6040518263ffffffff1660e060020a028152600401808261ffff1661ffff168152602001915050602060405180830381600087803b15801561115d57600080fd5b505af1158015611171573d6000803e3d6000fd5b505050506040513d602081101561118757600080fd5b8101908080519060200190929190505050985088600160a060020a0316631b27444e8e600b60009054906101000a9004600160a060020a03168f8f6040518563ffffffff1660e060020a0281526004018085600160a060020a0316600160a060020a0316815260200184600160a060020a0316600160a060020a0316815260200183600160a060020a0316600160a060020a0316815260200182600160a060020a0316600160a060020a03168152602001945050505050602060405180830381600087803b15801561125857600080fd5b505af115801561126c573d6000803e3d6000fd5b505050506040513d602081101561128257600080fd5b5051600980546bffffffffffffffffffffffff166c01000000000000000000000000600160a060020a0393841681029190911791829055600a54600b54604080517fae818004000000000000000000000000000000000000000000000000000000008152928616600484015290851660248301528051929093049093169263ae8180049260448083019391928290030181600087803b15801561132457600080fd5b505af1158015611338573d6000803e3d6000fd5b505050506040513d604081101561134e57600080fd5b5080516020909101516010819055600f8290556012919091556013556113726137c4565b601155600a5461138a90600160a060020a0316610bca565b600a549098506113a290600160a060020a0316612aff565b600b549097506113ba90600160a060020a0316612aff565b9550868814156113e55760008811806113d35750600086115b156113e0576113e06137c8565b61140e565b6000881180156113f55750600087115b80156114015750600086115b1561140e5761140e6137c8565b600554600190600160a060020a03166114256117a7565b61ffff167f6b08c2e2c9969e55a647a764db9b554d64dc42f1a704da11a6d5b129ad163f2c60405160405180910390a450505050505050505050505050565b6000805160206152f483398151915260005260086020527f353c2eb9e53a4a4a6d45d72082ff2e9dc829d1125618772a83eb0e7f86632c43546601000000000000900460ff1690565b6114b5613382565b6015805460ff19169055565b60006007828154811015156114d257fe5b600091825260209091200154600160a060020a031692915050565b6000816114f981613303565b5050600160a060020a031660009081526008602052604090206001015463ffffffff1690565b60008061152d8585856126a4565b91509150935093915050565b611541613382565b61154a8161218c565b50565b6000611557613840565b801561157d57506009546c010000000000000000000000009004600160a060020a031615155b905090565b6009546c010000000000000000000000009004600160a060020a031681565b6000816115ad81613303565b6115ef6115b984612aff565b600160a060020a0385166000908152600c60205260409020546115e390601363ffffffff6138da16565b9063ffffffff61395e16565b9392505050565b600080600080600085600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561163c57600080fd5b505af1158015611650573d6000803e3d6000fd5b505050506040513d602081101561166657600080fd5b5051600160a060020a038088166000908152600e602052604090205491955016925061169183612aff565b600160a060020a0384166000908152600c602052604090205490925090506116cf816116c3848763ffffffff6138da16565b9063ffffffff6139bb16565b9695505050505050565b60035474010000000000000000000000000000000000000000900460ff1681565b611702613382565b61170a6128d6565b565b611714613382565b600554604080517f5e35359e000000000000000000000000000000000000000000000000000000008152600160a060020a03868116600483015285811660248301526044820185905291519190921691635e35359e91606480830192600092919082900301818387803b15801561178a57600080fd5b505af115801561179e573d6000803e3d6000fd5b50505050505050565b600290565b6117b4613382565b8160146000600760008154811015156117c957fe5b6000918252602080832090910154600160a060020a031683528201929092526040018120919091556007805483926014929091600190811061180757fe5b6000918252602080832090910154600160a060020a031683528201929092526040019020555050565b60008054600160a060020a0316331480611865575060035474010000000000000000000000000000000000000000900460ff16155b15156118a9576040805160e560020a62461bcd0281526020600482015260116024820152600080516020615314833981519152604482015290519081900360640190fd5b6118d27f436f6e74726163745265676973747279000000000000000000000000000000006134f0565b600254909150600160a060020a038083169116148015906118fb5750600160a060020a03811615155b1515611951576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e56414c49445f5245474953545259000000000000000000000000604482015290519081900360640190fd5b604080517fbb34534c0000000000000000000000000000000000000000000000000000000081527f436f6e747261637452656769737472790000000000000000000000000000000060048201529051600091600160a060020a0384169163bb34534c9160248082019260209290919082900301818787803b1580156119d557600080fd5b505af11580156119e9573d6000803e3d6000fd5b505050506040513d60208110156119ff57600080fd5b5051600160a060020a03161415611a60576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e56414c49445f5245474953545259000000000000000000000000604482015290519081900360640190fd5b6002805460038054600160a060020a03808416600160a060020a0319928316179092559091169216919091179055565b611a98613382565b80611aa28161342f565b5060068054600160a060020a031916600160a060020a0392909216919091179055565b602081565b6000806000806000611ada613a29565b6002600455611ae7613a83565b87611af181613303565b87611afb81613ae1565b87611b0581613ae1565b600160a060020a038b166000805160206152f483398151915214611b2a573415611b2e565b8934145b1515611b84576040805160e560020a62461bcd02815260206004820152601760248201527f4552525f4554485f414d4f554e545f4d49534d41544348000000000000000000604482015290519081900360640190fd5b611b8c613b39565b600160a060020a038b166000805160206152f48339815191521415611c2e576000805160206152f483398151915260005260086020527f353c2eb9e53a4a4a6d45d72082ff2e9dc829d1125618772a83eb0e7f86632c4254611bf4903463ffffffff613b7b16565b6000805160206152f483398151915260005260086020527f353c2eb9e53a4a4a6d45d72082ff2e9dc829d1125618772a83eb0e7f86632c42555b600160a060020a038b166000908152600c602052604090205460155490975060ff1615611cf757600160a060020a038b166000908152601460205260409020541580611ca15750600160a060020a038b16600090815260146020526040902054611c9e888c63ffffffff61395e16565b11155b1515611cf7576040805160e560020a62461bcd02815260206004820152601e60248201527f4552525f4d41585f5354414b45445f42414c414e43455f524541434845440000604482015290519081900360640190fd5b600160a060020a03808c166000908152600d602090815260408083205481517f18160ddd00000000000000000000000000000000000000000000000000000000815291519416995089936318160ddd93600480840194938390030190829087803b158015611d6457600080fd5b505af1158015611d78573d6000803e3d6000fd5b505050506040513d6020811015611d8e57600080fd5b50519450600160a060020a038b166000805160206152f483398151915214611dbc57611dbc8b33308d613bdb565b600160a060020a038b16600090815260086020526040902054611de5908b63ffffffff61395e16565b600160a060020a038c16600090815260086020526040902055611e0e878b63ffffffff61395e16565b600160a060020a038c166000908152600c60205260408120919091559350861580611e37575084155b15611e4457899350611e5b565b611e58876116c38c8863ffffffff6138da16565b93505b88841015611eb3576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f52455455524e5f544f4f5f4c4f570000000000000000000000000000604482015290519081900360640190fd5b600554604080517fc6c3bbe6000000000000000000000000000000000000000000000000000000008152600160a060020a038981166004830152336024830152604482018890529151919092169163c6c3bbe691606480830192600092919082900301818387803b158015611f2757600080fd5b505af1158015611f3b573d6000803e3d6000fd5b50505050611f476137c8565b600160a060020a038b16337f4a1a2a6176e9646d9e3157f7c2ab3c499f18337c0b0828cfb28e0a61de4a11f78c611f848b8263ffffffff61395e16565b611f948a8a63ffffffff61395e16565b60408051938452602084019290925282820152519081900360600190a3611fcb86611fc5878763ffffffff61395e16565b8d613cc3565b61202060076000815481101515611fde57fe5b60009182526020909120015460078054600160a060020a0390921691600190811061200557fe5b6000918252602082200154600160a060020a03169080613d23565b5050600160045550979650505050505050565b600160a060020a039081166000908152600d60205260409020541690565b60095468010000000000000000900463ffffffff1681565b6000612073613a29565b6002600455612080613382565b6120976000805160206152d48339815191526134f0565b600160a060020a0385166000908152600860205260409020600101549091506601000000000000900460ff1615806120d457506120d261154d565b155b806120ec5750600054600160a060020a038281169116145b1515612130576040805160e560020a62461bcd0281526020600482015260116024820152600080516020615314833981519152604482015290519081900360640190fd5b61213b848484613d8f565b600160a060020a0384166000908152600860205260409020600101546601000000000000900460ff16156121725761217284613dc0565b505060016004555050565b600354600160a060020a031681565b612194613382565b6000805160206152d48339815191526121ac81613eb4565b600554604080517ff2fde38b000000000000000000000000000000000000000000000000000000008152600160a060020a0385811660048301529151919092169163f2fde38b91602480830192600092919082900301818387803b15801561221357600080fd5b505af1158015612227573d6000803e3d6000fd5b505050505050565b6000806000806000806000806000808b600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561227c57600080fd5b505af1158015612290573d6000803e3d6000fd5b505050506040513d60208110156122a657600080fd5b5051600160a060020a03808e166000908152600e60209081526040808320549093168252600c905220549098509650878b101561237157600a54600160a060020a03166000908152600c602052604090205461230990601463ffffffff6138da16565b600a5490965061232190600160a060020a03166115a1565b9450848610612331578486612334565b85855b909450925061234d886116c38d8a63ffffffff6138da16565b9150612363836116c3848763ffffffff6138da16565b99505088810397508861237b565b9598506000975088955b50505050505050509250929050565b6000612394613a29565b60026004556123a1613382565b6000805160206152f48339815191526123b981613303565b6123d06000805160206152d48339815191526134f0565b91506123da61154d565b15806123f35750600054600160a060020a038381169116145b1515612437576040805160e560020a62461bcd0281526020600482015260116024820152600080516020615314833981519152604482015290519081900360640190fd5b604051600160a060020a03841690303180156108fc02916000818181858888f1935050505015801561246d573d6000803e3d6000fd5b506124856000805160206152f4833981519152613dc0565b5050600160045550565b612497613382565b620186a08111156124f2576040805160e560020a62461bcd02815260206004820152601e60248201527f4552525f494e56414c49445f44594e414d49435f4645455f464143544f520000604482015290519081900360640190fd5b601654604080519182526020820183905280517f382fd3516344712a511dcd464ff8e6ab54139d6a28f64087a3253353ee7a56799281900390910190a1601655565b600261253e612695565b61ffff1610612585576040805160e560020a62461bcd0281526020600482015260196024820152600080516020615334833981519152604482015290519081900360640190fd5b61258f8282613f0a565b5050565b600061157d612695565b600154600160a060020a031633146125ed576040805160e560020a62461bcd0281526020600482015260116024820152600080516020615314833981519152604482015290519081900360640190fd5b60015460008054604051600160a060020a0393841693909116917f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91a36001805460008054600160a060020a0319908116600160a060020a03841617909155169055565b600254600160a060020a031681565b600054600160a060020a031681565b600954640100000000900463ffffffff1681565b60146020526000908152604090205481565b60075490565b600f5460105482565b6000806000806126b261529d565b6000806000806126c0613a83565b6126c98c613303565b6126d28b613303565b600160a060020a038c8116908c161415612736576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f53414d455f534f555243455f54415247455400000000000000000000604482015290519081900360640190fd5b61273e6137c4565b60115414156127e557600f604080519081016040529081600082015481526020016001820154815250509450600860008d600160a060020a0316600160a060020a0316815260200190815260200160002060010160009054906101000a900463ffffffff169650600860008c600160a060020a0316600160a060020a0316815260200190815260200160002060010160009054906101000a900463ffffffff169550612825565b6127ed61413c565b94506127f885614380565b600a549195509350600160a060020a038d81169116141561281e57839650829550612825565b8296508395505b6128338c8c8989898f6144aa565b919e919d50909b505050505050505050505050565b612850613382565b60035460028054600160a060020a031916600160a060020a03909216919091179055565b600181565b612881613382565b6000805160206152d483398151915261289981613eb4565b826128a381613303565b5050600160a060020a039091166000908152600c6020526040902055565b60115481565b600654600160a060020a031681565b60016128e0612695565b61ffff1611612927576040805160e560020a62461bcd0281526020600482015260196024820152600080516020615334833981519152604482015290519081900360640190fd5b61170a614646565b600780548290811061293d57fe5b600091825260209091200154600160a060020a0316905081565b600190565b600554600160a060020a031681565b600154600160a060020a031681565b6000612984613382565b61299b6000805160206152d48339815191526134f0565b600554909150600090600160a060020a03166129b56117a7565b61ffff167f6b08c2e2c9969e55a647a764db9b554d64dc42f1a704da11a6d5b129ad163f2c60405160405180910390a46129ee8161325b565b604080517f90f58c96000000000000000000000000000000000000000000000000000000008152602060048201529051600160a060020a038316916390f58c9691602480830192600092919082900301818387803b158015612a4f57600080fd5b505af1158015612a63573d6000803e3d6000fd5b5050505061154a61259d565b601490565b6008602052600090815260409020805460019091015463ffffffff81169060ff640100000000820481169165010000000000810482169166010000000000009091041685565b6000612ac582612aff565b92915050565b600080612ad661529d565b612ade61413c565b80516020909101519094909350915050565b600b54600160a060020a031681565b600081612b0b81613303565b5050600160a060020a031660009081526008602052604090205490565b600080600080600080612b39613a29565b6002600455612b46613a83565b88612b5081614712565b88612b5a81613ae1565b88612b6481613ae1565b612b6c613b39565b8b600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015612baa57600080fd5b505af1158015612bbe573d6000803e3d6000fd5b505050506040513d6020811015612bd457600080fd5b50519750612be28c8c61222f565b50965089871015612c3d576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f52455455524e5f544f4f5f4c4f570000000000000000000000000000604482015290519081900360640190fd5b600e60008d600160a060020a0316600160a060020a0316815260200190815260200160002060009054906101000a9004600160a060020a03169550600560009054906101000a9004600160a060020a0316600160a060020a031663f6b911bc8d338e6040518463ffffffff1660e060020a0281526004018084600160a060020a0316600160a060020a0316815260200183600160a060020a0316600160a060020a031681526020018281526020019350505050600060405180830381600087803b158015612d0a57600080fd5b505af1158015612d1e573d6000803e3d6000fd5b505050600160a060020a038716600090815260086020526040902054612d4b91508863ffffffff613b7b16565b600160a060020a038716600090815260086020908152604080832093909355600c90522054612d80908863ffffffff613b7b16565b600160a060020a0387166000818152600c602052604090208290559095506000805160206152f48339815191521415612de657604051339088156108fc029089906000818181858888f19350505050158015612de0573d6000803e3d6000fd5b50612df1565b612df1863389614783565b612df96137c8565b612e09888c63ffffffff613b7b16565b60408051898152602081018890528082018390529051919550600160a060020a0388169133917fbc7d19d505c7ec4db83f3b51f19fb98c4c8a99922e7839d1ee608dfbee29501b919081900360600190a3612e658c8588613cc3565b612e7860076000815481101515611fde57fe5b50506001600455509298975050505050505050565b60165481565b6000612e9d613a29565b60026004557f536f7672796e537761704e6574776f726b000000000000000000000000000000612ecc81613eb4565b600160a060020a038781169087161415612f30576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f53414d455f534f555243455f54415247455400000000000000000000604482015290519081900360640190fd5b600654600160a060020a031615806130735750600654604080517f3af32abf000000000000000000000000000000000000000000000000000000008152600160a060020a03878116600483015291519190921691633af32abf9160248083019260209291908290030181600087803b158015612fab57600080fd5b505af1158015612fbf573d6000803e3d6000fd5b505050506040513d6020811015612fd557600080fd5b505180156130735750600654604080517f3af32abf000000000000000000000000000000000000000000000000000000008152600160a060020a03868116600483015291519190921691633af32abf9160248083019260209291908290030181600087803b15801561304657600080fd5b505af115801561305a573d6000803e3d6000fd5b505050506040513d602081101561307057600080fd5b50515b15156130c9576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f4e4f545f57484954454c495354454400000000000000000000000000604482015290519081900360640190fd5b6130d6878787878761483a565b6001600455979650505050505050565b6000806130f161529d565b6000806130fc61413c565b925061310783614380565b915091506007600081548110151561311b57fe5b600091825260209091200154600a54600160a060020a03908116911614156131505763ffffffff80831695508116935061315f565b63ffffffff8082169550821693505b5050509091565b61316e613382565b60095463ffffffff640100000000909104811690821611156131da576040805160e560020a62461bcd02815260206004820152601a60248201527f4552525f494e56414c49445f434f4e56455253494f4e5f464545000000000000604482015290519081900360640190fd5b6009546040805163ffffffff6801000000000000000090930483168152918316602083015280517f81cd2ffb37dd237c0e4e2a3de5265fcf9deb43d3e7801e80db9f1ccfba7ee6009281900390910190a16009805463ffffffff90921668010000000000000000026bffffffff000000000000000019909216919091179055565b613263613382565b600054600160a060020a03828116911614156132c9576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f53414d455f4f574e4552000000000000000000000000000000000000604482015290519081900360640190fd5b60018054600160a060020a031916600160a060020a0392909216919091179055565b60125460135482565b600554600160a060020a031690565b600160a060020a0381166000908152600860205260409020600101546601000000000000900460ff16151561154a576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f5245534552564500000000000000000000000000604482015290519081900360640190fd5b600054600160a060020a0316331461170a576040805160e560020a62461bcd0281526020600482015260116024820152600080516020615314833981519152604482015290519081900360640190fd5b6133da61154d565b1561170a576040805160e560020a62461bcd02815260206004820152600a60248201527f4552525f41435449564500000000000000000000000000000000000000000000604482015290519081900360640190fd5b600160a060020a03811630141561154a576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f414444524553535f49535f53454c4600000000000000000000000000604482015290519081900360640190fd5b600160a060020a038116151561154a576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b600254604080517fbb34534c000000000000000000000000000000000000000000000000000000008152600481018490529051600092600160a060020a03169163bb34534c91602480830192602092919082900301818787803b15801561355657600080fd5b505af115801561356a573d6000803e3d6000fd5b505050506040513d602081101561358057600080fd5b505192915050565b60006060600080600080600560009054906101000a9004600160a060020a0316955085600160a060020a0316636d3e313e6040518163ffffffff1660e060020a028152600401600060405180830381600087803b1580156135e857600080fd5b505af11580156135fc573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561362557600080fd5b81019080805164010000000081111561363d57600080fd5b8201602081018481111561365057600080fd5b815185602082028301116401000000008211171561366d57600080fd5b505080516007549199501597509550600094505050505b828210156122275783156137035785600160a060020a0316639cbf9e366040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156136d057600080fd5b505af11580156136e4573d6000803e3d6000fd5b505050506040513d60208110156136fa57600080fd5b5051905061371e565b848281518110151561371157fe5b9060200190602002015190505b80600d600060078581548110151561373257fe5b600091825260208083209190910154600160a060020a03908116845290830193909352604090910190208054600160a060020a03191692909116919091179055600780548390811061378057fe5b6000918252602080832090910154600160a060020a038481168452600e90925260409092208054600160a060020a0319169190921617905560019190910190613684565b4290565b60408051808201909152600f548152601054602082015260009081906137ed90614380565b600a54600160a060020a039081166000908152600860205260408082206001908101805463ffffffff97881663ffffffff1991821617909155600b54909416835291200180549290931691161790555050565b600030600160a060020a0316600560009054906101000a9004600160a060020a0316600160a060020a0316638da5cb5b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561389f57600080fd5b505af11580156138b3573d6000803e3d6000fd5b505050506040513d60208110156138c957600080fd5b5051600160a060020a031614905090565b6000808315156138ed5760009150613957565b508282028284828115156138fd57fe5b0414613953576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b8091505b5092915050565b600082820183811015613953576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b600080808311613a15576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f4449564944455f42595f5a45524f0000000000000000000000000000604482015290519081900360640190fd5b8284811515613a2057fe5b04949350505050565b60045460011461170a576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f5245454e5452414e4359000000000000000000000000000000000000604482015290519081900360640190fd5b613a8b61154d565b151561170a576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f494e4143544956450000000000000000000000000000000000000000604482015290519081900360640190fd5b6000811161154a576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f5a45524f5f56414c5545000000000000000000000000000000000000604482015290519081900360640190fd5b60075460005b8181101561258f57613b73600782815481101515613b5957fe5b600091825260209091200154600160a060020a0316613dc0565b600101613b3f565b600081831015613bd5576040805160e560020a62461bcd02815260206004820152600d60248201527f4552525f554e444552464c4f5700000000000000000000000000000000000000604482015290519081900360640190fd5b50900390565b604080517f7472616e7366657246726f6d28616464726573732c616464726573732c75696e81527f74323536290000000000000000000000000000000000000000000000000000006020808301919091528251918290036025018220600160a060020a038088166024850152861660448401526064808401869052845180850390910181526084909301909352810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1990931692909217909152613cbd90859061492d565b50505050565b600160a060020a038082166000818152600c6020908152604091829020548251908152908101869052815192938716927f77f29993cf2c084e726f7e802da0719d6a0ade3e204badc7a3ffd57ecb768c24929181900390910190a3505050565b613d2b61529d565b613d37858585856149bb565b805160208083015160408051938452918301528051929350600160a060020a0380881693908916927f77f29993cf2c084e726f7e802da0719d6a0ade3e204badc7a3ffd57ecb768c2492908290030190a35050505050565b613d97613382565b82613da181613490565b82613dab81613490565b83613db58161342f565b612227868686614783565b80613dca81613303565b600160a060020a0382166000805160206152f48339815191521415613e0a57600160a060020a03821660009081526008602052604090203031905561258f565b604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a038416916370a082319160248083019260209291908290030181600087803b158015613e6b57600080fd5b505af1158015613e7f573d6000803e3d6000fd5b505050506040513d6020811015613e9557600080fd5b5051600160a060020a0383166000908152600860205260409020555050565b613ebd816134f0565b600160a060020a0316331461154a576040805160e560020a62461bcd0281526020600482015260116024820152600080516020615314833981519152604482015290519081900360640190fd5b6000613f14613382565b613f1c6133d2565b82613f2681613490565b83613f308161342f565b83613f3a81614a83565b600554600160a060020a03878116911614801590613f7e5750600160a060020a0386166000908152600860205260409020600101546601000000000000900460ff16155b1515613fd4576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f5245534552564500000000000000000000000000604482015290519081900360640190fd5b60095463ffffffff908116620f4240038116908616111561403f576040805160e560020a62461bcd02815260206004820152601a60248201527f4552525f494e56414c49445f524553455256455f574549474854000000000000604482015290519081900360640190fd5b61ffff61404a612695565b61ffff1610614091576040805160e560020a62461bcd0281526020600482015260196024820152600080516020615334833981519152604482015290519081900360640190fd5b505050600160a060020a0390921660008181526008602052604081208181556001908101805466ff0000000000001963ffffffff80881663ffffffff1993841617919091166601000000000000179092556007805493840181559093527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c6889091018054600160a060020a03191690931790925560098054808416909401909216921691909117905550565b61414461529d565b60008060008061415261529d565b61415a61529d565b600954600a54600b54604080517fb1772d7a000000000000000000000000000000000000000000000000000000008152600160a060020a0393841660048201529183166024830152516000938493849384936c010000000000000000000000009093049091169163b1772d7a9160448082019260609290919082900301818787803b1580156141e857600080fd5b505af11580156141fc573d6000803e3d6000fd5b505050506040513d606081101561421257600080fd5b5080516020820151604090920151601154919c50919a5090985088111561424f5760408051908101604052808b81526020018a8152509a50614373565b60115461425a6137c4565b0396508615156142825760408051808201909152600f54815260105460208201529a50614373565b61025887106142a95760408051808201909152601254815260135460208201529a50614373565b604080518082018252600f548152601054602080830191825283518085019094526012548085526013549185019190915290519198509196506142f19163ffffffff6138da16565b6020860151875191955061430b919063ffffffff6138da16565b9250614335614320858963ffffffff6138da16565b6115e3856102588b900363ffffffff6138da16565b9150614364610258614358876020015189602001516138da90919063ffffffff16565b9063ffffffff6138da16565b90506143708282614af8565b9a505b5050505050505050505090565b600a54600160a060020a03166000818152600c60205260408120549091829190829081906143ad906115a1565b600b549092506143c590600160a060020a03166115a1565b90506143f07f536f7672796e53776170466f726d756c610000000000000000000000000000006134f0565b600160a060020a031663a11aa1b461440f85601463ffffffff6138da16565b885160208a01516040805160e060020a63ffffffff87160281526004810194909452602484018890526044840187905260648401929092526084830152805160a4808401938290030181600087803b15801561446a57600080fd5b505af115801561447e573d6000803e3d6000fd5b505050506040513d604081101561449457600080fd5b5080516020909101519095509350505050915091565b60008080808063ffffffff891615156144e257600160a060020a038b1660009081526008602052604090206001015463ffffffff1698505b63ffffffff8816151561451457600160a060020a038a1660009081526008602052604090206001015463ffffffff1697505b61451d8b6115a1565b91506145288a6115a1565b90506145537f536f7672796e53776170466f726d756c610000000000000000000000000000006134f0565b604080517f94491fab0000000000000000000000000000000000000000000000000000000081526004810185905263ffffffff808d166024830152604482018590528b166064820152608481018990529051600160a060020a0392909216916394491fab9160a4808201926020929091908290030181600087803b1580156145da57600080fd5b505af11580156145ee573d6000803e3d6000fd5b505050506040513d602081101561460457600080fd5b5051945061461185614b4d565b9350614624846115e38c8c8c8c8b614b7d565b9250614636858463ffffffff613b7b16565b9450505096509650969350505050565b61464e613382565b6000614658612695565b61ffff161161469f576040805160e560020a62461bcd0281526020600482015260196024820152600080516020615334833981519152604482015290519081900360640190fd5b600560009054906101000a9004600160a060020a0316600160a060020a03166379ba50976040518163ffffffff1660e060020a028152600401600060405180830381600087803b1580156146f257600080fd5b505af1158015614706573d6000803e3d6000fd5b5050505061170a613b39565b600160a060020a038181166000908152600e602052604090205416151561154a576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f494e56414c49445f504f4f4c5f544f4b454e00000000000000000000604482015290519081900360640190fd5b604080517f7472616e7366657228616464726573732c75696e74323536290000000000000081528151908190036019018120600160a060020a038516602483015260448083018590528351808403909101815260649092019092526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff199093169290921790915261483590849061492d565b505050565b6000806000614847613a83565b8761485181613303565b8761485b81613303565b6148668a8a8a614c56565b9094509250600160a060020a0389166000805160206152f483398151915214156148c657604051600160a060020a0387169085156108fc029086906000818181858888f193505050501580156148c0573d6000803e3d6000fd5b506148d1565b6148d1898786614783565b6148df8a8a898b8888614f6b565b600160a060020a03808b16600090815260086020526040808220600190810154938d1683529120015461491f918c918c9163ffffffff9081169116614ff0565b509198975050505050505050565b6149356152b4565b602060405190810160405280600181525090506020818351602085016000875af180151561496257600080fd5b5080511515614835576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f5452414e534645525f4641494c454400000000000000000000000000604482015290519081900360640190fd5b6149c361529d565b6000806149cf876115a1565b91506149da866115a1565b905063ffffffff85161515614a0e57600160a060020a03871660009081526008602052604090206001015463ffffffff1694505b63ffffffff84161515614a4057600160a060020a03861660009081526008602052604090206001015463ffffffff1693505b6040805180820190915280614a5e8363ffffffff808a16906138da16565b8152602001614a768463ffffffff808916906138da16565b9052979650505050505050565b60008163ffffffff16118015614aa25750620f424063ffffffff821611155b151561154a576040805160e560020a62461bcd02815260206004820152601a60248201527f4552525f494e56414c49445f524553455256455f574549474854000000000000604482015290519081900360640190fd5b614b0061529d565b614b0861529d565b828410614b2057614b198484615081565b9150613957565b614b2a8385615081565b604080518082019091526020808301518252825190820152925090505092915050565b600954600090612ac590620f4240906116c390859068010000000000000000900463ffffffff908116906138da16565b600b546000908190600160a060020a0388811691161415614beb57600a54600160a060020a039081166000908152600c6020908152604080832054600b54909416835290912054865191870151601654614be4949363ffffffff808d1693908c169261513e565b9050614c3a565b600a54600160a060020a039081166000908152600c6020908152604080832054600b54909416835290912054865191870151601654614c37949363ffffffff808c1693908d169261513e565b90505b614c4b620f42406116c385846138da565b979650505050505050565b6000806000614c6361529d565b600080600080614c716151aa565b95509550614c848b8b600080898e6144aa565b91955093509150831515614ce2576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f5a45524f5f5441524745545f414d4f554e5400000000000000000000604482015290519081900360640190fd5b614ceb8a612aff565b9050808410614d44576040805160e560020a62461bcd02815260206004820152601a60248201527f4552525f5441524745545f414d4f554e545f544f4f5f48494748000000000000604482015290519081900360640190fd5b600160a060020a038b166000805160206152f48339815191521415614dbf57348914614dba576040805160e560020a62461bcd02815260206004820152601760248201527f4552525f4554485f414d4f554e545f4d49534d41544348000000000000000000604482015290519081900360640190fd5b614ec1565b34158015614e6b575088614e68614dd58d612aff565b8d600160a060020a03166370a08231306040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b158015614e3057600080fd5b505af1158015614e44573d6000803e3d6000fd5b505050506040513d6020811015614e5a57600080fd5b50519063ffffffff613b7b16565b10155b1515614ec1576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f494e56414c49445f414d4f554e540000000000000000000000000000604482015290519081900360640190fd5b614eca8b613dc0565b614eda818563ffffffff613b7b16565b600160a060020a038b16600090815260086020908152604080832093909355600c90522054614f0f908463ffffffff61395e16565b600160a060020a038b166000908152600c60205260409020558515614f5a57600a54600b54614f4d91600160a060020a0390811691166000806149bb565b8051601255602001516013555b509199919850909650505050505050565b7f80000000000000000000000000000000000000000000000000000000000000008110614f9457fe5b60408051848152602081018490528082018390529051600160a060020a038087169288821692918a16917f276856b36cbc45526a0ba64f44611557a2a8b68662c5388e9fe6d72e86e1c8cb9181900360600190a4505050505050565b600080614fff86868686613d23565b61500885612033565b915081600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561504857600080fd5b505af115801561505c573d6000803e3d6000fd5b505050506040513d602081101561507257600080fd5b50519050612227828287613cc3565b61508961529d565b7314484bfeebc29f863424b06f3529a051a31be5998211156150db57604080518082019091526c0c9f2c9cd04674edea4000000080825260208201908504848115156150d157fe5b0490529050612ac5565b6c0c9f2c9cd04674edea400000008311156151285760408051908101604052806c0c9f2c9cd04674edea400000008152602001846c0c9f2c9cd04674edea4000000085028115156150d157fe5b5060408051808201909152918252602082015290565b60008080615156876143588c8963ffffffff6138da16565b915061516c886143588b8863ffffffff6138da16565b90508181111561519857615191816116c360146143588684038963ffffffff6138da16565b925061519d565b600092505b5050979650505050505050565b60006151b461529d565b60006151be61529d565b6151c661529d565b6151ce6137c4565b92508260115414156151fc5760408051808201909152600f548152601054602082015260009550935061315f565b61520461413c565b60408051808201909152600f5480825260105460208301528251929450909250148015615238575080602001518260200151145b15615249576000829450945061315f565b8151600f55602082015160105560118390556152636137c8565b50600194909350915050565b6040805160a08101825260008082526020820181905291810182905260608101829052608081019190915290565b604080518082019091526000808252602082015290565b60206040519081016040528060019060208202803883395091929150505600536f7672796e53776170436f6e76657274657255706772616465720000000000000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee4552525f4143434553535f44454e4945440000000000000000000000000000004552525f494e56414c49445f524553455256455f434f554e5400000000000000a165627a7a72305820d6ceae0fa88e176fcec4250a8a72385cf1ae86e302a34151470ca7997955ccc20029a165627a7a72305820829c55f8c1d3c151dafc68faa4319701ebffa14c8fd5fd8048d1987b986db5d40029", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x4B JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x11413958 DUP2 EQ PUSH2 0x50 JUMPI DUP1 PUSH4 0x3E8FF43F EQ PUSH2 0xB6 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x8D PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH4 0xFFFFFFFF PUSH1 0x44 CALLDATALOAD AND PUSH2 0xE2 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xC2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xCB PUSH2 0x1D5 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0xFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP1 DUP5 DUP5 DUP5 PUSH2 0xF0 PUSH2 0x1DA JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP4 DUP5 AND DUP2 MSTORE SWAP2 SWAP1 SWAP3 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH4 0xFFFFFFFF SWAP1 SWAP2 AND PUSH1 0x40 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 PUSH1 0x0 CREATE DUP1 ISZERO DUP1 ISZERO PUSH2 0x142 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH32 0xF2FDE38B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD SWAP2 SWAP3 POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND SWAP2 PUSH4 0xF2FDE38B SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1B4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1C8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP SWAP3 SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x55BA DUP1 PUSH2 0x1EB DUP4 CODECOPY ADD SWAP1 JUMP STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x1 PUSH1 0x4 DUP2 SWAP1 SSTORE PUSH1 0x9 DUP1 SLOAD PUSH1 0x1 PUSH1 0x60 PUSH1 0x2 EXP SUB NOT AND SWAP1 SSTORE PUSH1 0x15 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SWAP2 OR SWAP1 SSTORE PUSH3 0x11170 PUSH1 0x16 SSTORE CALLVALUE DUP1 ISZERO PUSH3 0x3C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH1 0x60 DUP1 PUSH3 0x55BA DUP4 CODECOPY DUP2 ADD PUSH1 0x40 SWAP1 DUP2 MSTORE DUP2 MLOAD PUSH1 0x20 DUP4 ADD MLOAD SWAP2 SWAP1 SWAP3 ADD MLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND CALLER OR SWAP1 SSTORE DUP3 DUP3 DUP3 DUP3 DUP3 DUP3 DUP2 DUP1 PUSH3 0x8A DUP2 PUSH5 0x100000000 PUSH3 0x137 DUP2 MUL DIV JUMP JUMPDEST POP PUSH1 0x2 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT SWAP3 DUP4 AND DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x3 DUP1 SLOAD SWAP1 SWAP3 AND OR SWAP1 SSTORE DUP3 PUSH3 0xCA DUP2 PUSH5 0x100000000 PUSH3 0x137 DUP2 MUL DIV JUMP JUMPDEST DUP2 PUSH3 0xDF DUP2 PUSH5 0x100000000 PUSH3 0x1B2 DUP2 MUL DIV JUMP JUMPDEST POP POP PUSH1 0x5 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP5 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 OR SWAP1 SWAP3 SSTORE POP PUSH1 0x9 DUP1 SLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP3 AND PUSH5 0x100000000 MUL PUSH8 0xFFFFFFFF00000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE POP PUSH3 0x22B SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH3 0x1AF JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH3 0xF4240 PUSH4 0xFFFFFFFF DUP3 AND GT ISZERO PUSH3 0x1AF JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F434F4E56455253494F4E5F464545000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x537F DUP1 PUSH3 0x23B PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x312 JUMPI PUSH4 0xFFFFFFFF PUSH1 0xE0 PUSH1 0x2 EXP PUSH1 0x0 CALLDATALOAD DIV AND PUSH3 0x5E319C DUP2 EQ PUSH2 0x3B0 JUMPI DUP1 PUSH4 0x24C7EC7 EQ PUSH2 0x3E3 JUMPI DUP1 PUSH4 0x337E3FB EQ PUSH2 0x3FD JUMPI DUP1 PUSH4 0xA55FB3D EQ PUSH2 0x42E JUMPI DUP1 PUSH4 0xC7D5CD8 EQ PUSH2 0x457 JUMPI DUP1 PUSH4 0xE53AAE9 EQ PUSH2 0x485 JUMPI DUP1 PUSH4 0x119B90CD EQ PUSH2 0x4DA JUMPI DUP1 PUSH4 0x12C2ACA4 EQ PUSH2 0x507 JUMPI DUP1 PUSH4 0x16912F96 EQ PUSH2 0x51C JUMPI DUP1 PUSH4 0x19B64015 EQ PUSH2 0x531 JUMPI DUP1 PUSH4 0x1CFAB290 EQ PUSH2 0x549 JUMPI DUP1 PUSH4 0x1E1401F8 EQ PUSH2 0x56A JUMPI DUP1 PUSH4 0x21E6B53D EQ PUSH2 0x5AD JUMPI DUP1 PUSH4 0x22F3E2D4 EQ PUSH2 0x5CE JUMPI DUP1 PUSH4 0x2630C12F EQ PUSH2 0x5E3 JUMPI DUP1 PUSH4 0x2BD3C107 EQ PUSH2 0x5F8 JUMPI DUP1 PUSH4 0x2BF0C985 EQ PUSH2 0x619 JUMPI DUP1 PUSH4 0x2FE8A6AD EQ PUSH2 0x63A JUMPI DUP1 PUSH4 0x38A5E016 EQ PUSH2 0x64F JUMPI DUP1 PUSH4 0x395900D4 EQ PUSH2 0x664 JUMPI DUP1 PUSH4 0x3E8FF43F EQ PUSH2 0x68E JUMPI DUP1 PUSH4 0x46749468 EQ PUSH2 0x6BA JUMPI DUP1 PUSH4 0x49D10B64 EQ PUSH2 0x6D5 JUMPI DUP1 PUSH4 0x4AF80F0E EQ PUSH2 0x6EA JUMPI DUP1 PUSH4 0x54FD4D50 EQ PUSH2 0x70B JUMPI DUP1 PUSH4 0x55776B77 EQ PUSH2 0x720 JUMPI DUP1 PUSH4 0x5768ADCF EQ PUSH2 0x73A JUMPI DUP1 PUSH4 0x579CD3CA EQ PUSH2 0x75B JUMPI DUP1 PUSH4 0x5E35359E EQ PUSH2 0x770 JUMPI DUP1 PUSH4 0x61CD756E EQ PUSH2 0x79A JUMPI DUP1 PUSH4 0x67B6D57C EQ PUSH2 0x7AF JUMPI DUP1 PUSH4 0x69067D95 EQ PUSH2 0x7D0 JUMPI DUP1 PUSH4 0x690D8320 EQ PUSH2 0x7F4 JUMPI DUP1 PUSH4 0x69D1354A EQ PUSH2 0x815 JUMPI DUP1 PUSH4 0x6A49D2C4 EQ PUSH2 0x82D JUMPI DUP1 PUSH4 0x71F52BF3 EQ PUSH2 0x857 JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x86C JUMPI DUP1 PUSH4 0x7B103999 EQ PUSH2 0x881 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x896 JUMPI DUP1 PUSH4 0x94C275AD EQ PUSH2 0x8AB JUMPI DUP1 PUSH4 0x98A71DCB EQ PUSH2 0x8C0 JUMPI DUP1 PUSH4 0x9B99A8E2 EQ PUSH2 0x8E1 JUMPI DUP1 PUSH4 0xA32BFF44 EQ PUSH2 0x8F6 JUMPI DUP1 PUSH4 0xAF94B8D8 EQ PUSH2 0x90B JUMPI DUP1 PUSH4 0xB4A176D3 EQ PUSH2 0x935 JUMPI DUP1 PUSH4 0xBF754558 EQ PUSH2 0x94A JUMPI DUP1 PUSH4 0xBF7DA6BA EQ PUSH2 0x95F JUMPI DUP1 PUSH4 0xC3321FB0 EQ PUSH2 0x983 JUMPI DUP1 PUSH4 0xC45D3D92 EQ PUSH2 0x998 JUMPI DUP1 PUSH4 0xCDC91C69 EQ PUSH2 0x9AD JUMPI DUP1 PUSH4 0xD031370B EQ PUSH2 0x9C2 JUMPI DUP1 PUSH4 0xD260529C EQ PUSH2 0x9DA JUMPI DUP1 PUSH4 0xD3FB73B4 EQ PUSH2 0x9EF JUMPI DUP1 PUSH4 0xD4EE1D90 EQ PUSH2 0xA04 JUMPI DUP1 PUSH4 0xD55EC697 EQ PUSH2 0xA19 JUMPI DUP1 PUSH4 0xD64C5A1A EQ PUSH2 0xA2E JUMPI DUP1 PUSH4 0xD66BD524 EQ PUSH2 0xA59 JUMPI DUP1 PUSH4 0xD8959512 EQ PUSH2 0xA7A JUMPI DUP1 PUSH4 0xDB2830A4 EQ PUSH2 0xA9B JUMPI DUP1 PUSH4 0xDC75EB9A EQ PUSH2 0xAB0 JUMPI DUP1 PUSH4 0xDC8DE379 EQ PUSH2 0xAC5 JUMPI DUP1 PUSH4 0xE38192E3 EQ PUSH2 0xAE6 JUMPI DUP1 PUSH4 0xE8104AF9 EQ PUSH2 0xB0D JUMPI DUP1 PUSH4 0xE8DC12FF EQ PUSH2 0xB22 JUMPI DUP1 PUSH4 0xEC2240F5 EQ PUSH2 0xB4C JUMPI DUP1 PUSH4 0xECBCA55D EQ PUSH2 0xB61 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0xB7F JUMPI DUP1 PUSH4 0xF9CDDDE2 EQ PUSH2 0xBA0 JUMPI DUP1 PUSH4 0xFC0C546A EQ PUSH2 0xBB5 JUMPI JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x52F4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x0 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH32 0x353C2EB9E53A4A4A6D45D72082FF2E9DC829D1125618772A83EB0E7F86632C43 SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO PUSH2 0x3AE JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245534552564500000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3BC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3D1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0xBCA JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3EF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH1 0x4 CALLDATALOAD ISZERO ISZERO PUSH2 0xBF3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x409 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x412 PUSH2 0xC3B JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x43A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x443 PUSH2 0xC4A JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x463 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x46C PUSH2 0xC53 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x491 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4A6 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0xC5F JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP6 DUP7 MSTORE PUSH4 0xFFFFFFFF SWAP1 SWAP5 AND PUSH1 0x20 DUP7 ADD MSTORE SWAP2 ISZERO ISZERO DUP5 DUP5 ADD MSTORE ISZERO ISZERO PUSH1 0x60 DUP5 ADD MSTORE ISZERO ISZERO PUSH1 0x80 DUP4 ADD MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0xA0 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4E6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x44 CALLDATALOAD AND PUSH2 0xCFA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x513 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x443 PUSH2 0x1464 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x528 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH2 0x14AD JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x53D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x412 PUSH1 0x4 CALLDATALOAD PUSH2 0x14C1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x555 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x46C PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x14ED JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x576 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x594 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x151F JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5B9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x1539 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5DA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x443 PUSH2 0x154D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5EF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x412 PUSH2 0x1582 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x604 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3D1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x15A1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x625 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3D1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x15F6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x646 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x443 PUSH2 0x16D9 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x65B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH2 0x16FA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x670 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x170C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x69A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x6A3 PUSH2 0x17A7 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0xFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6C6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH1 0x4 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH2 0x17AC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6E1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH2 0x1830 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6F6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x1A90 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x717 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x6A3 PUSH2 0x1AC5 JUMP JUMPDEST PUSH2 0x3D1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH1 0x44 CALLDATALOAD PUSH2 0x1ACA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x746 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x412 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x2033 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x767 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x46C PUSH2 0x2051 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x77C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x2069 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7A6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x412 PUSH2 0x217D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7BB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x218C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7DC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x594 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x222F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x800 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x238A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x821 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH1 0x4 CALLDATALOAD PUSH2 0x248F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x839 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH4 0xFFFFFFFF PUSH1 0x24 CALLDATALOAD AND PUSH2 0x2534 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x863 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x6A3 PUSH2 0x2593 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x878 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH2 0x259D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x88D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x412 PUSH2 0x2651 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8A2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x412 PUSH2 0x2660 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8B7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x46C PUSH2 0x266F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8CC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3D1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x2683 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8ED JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x6A3 PUSH2 0x2695 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x902 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x594 PUSH2 0x269B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x917 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x594 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x26A4 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x941 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH2 0x2848 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x956 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x443 PUSH2 0x2874 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x96B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x2879 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x98F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3D1 PUSH2 0x28C1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9A4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x412 PUSH2 0x28C7 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9B9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH2 0x28D6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9CE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x412 PUSH1 0x4 CALLDATALOAD PUSH2 0x292F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9E6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x443 PUSH2 0x2957 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9FB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x412 PUSH2 0x295C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x412 PUSH2 0x296B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA25 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH2 0x297A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA3A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xA43 PUSH2 0x2A6F JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA65 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4A6 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x2A74 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA86 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3D1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x2ABA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xAA7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x594 PUSH2 0x2ACB JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xABC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x412 PUSH2 0x2AF0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xAD1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3D1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x2AFF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xAF2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3D1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH1 0x44 CALLDATALOAD PUSH2 0x2B28 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xB19 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3D1 PUSH2 0x2E8D JUMP JUMPDEST PUSH2 0x3D1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x44 CALLDATALOAD SWAP1 PUSH1 0x64 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x84 CALLDATALOAD AND PUSH2 0x2E93 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xB58 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x594 PUSH2 0x30E6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xB6D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH4 0xFFFFFFFF PUSH1 0x4 CALLDATALOAD AND PUSH2 0x3166 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xB8B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x325B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xBAC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x594 PUSH2 0x32EB JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xBC1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x412 PUSH2 0x32F4 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0xBD6 DUP2 PUSH2 0x3303 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0xBFB PUSH2 0x3382 JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD SWAP2 ISZERO ISZERO PUSH21 0x10000000000000000000000000000000000000000 MUL PUSH21 0xFF0000000000000000000000000000000000000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x15 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH4 0xFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0xC6F PUSH2 0x526F JUMP JUMPDEST POP POP POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP2 MLOAD PUSH1 0xA0 DUP2 ADD DUP4 MSTORE DUP2 SLOAD DUP1 DUP3 MSTORE PUSH1 0x1 SWAP1 SWAP3 ADD SLOAD PUSH4 0xFFFFFFFF DUP2 AND SWAP5 DUP3 ADD DUP6 SWAP1 MSTORE PUSH1 0xFF PUSH5 0x100000000 DUP3 DIV DUP2 AND ISZERO ISZERO SWAP5 DUP4 ADD SWAP5 SWAP1 SWAP5 MSTORE PUSH6 0x10000000000 DUP2 DIV DUP5 AND ISZERO ISZERO PUSH1 0x60 DUP4 ADD MSTORE PUSH7 0x1000000000000 SWAP1 DIV SWAP1 SWAP3 AND ISZERO ISZERO PUSH1 0x80 SWAP1 SWAP3 ADD DUP3 SWAP1 MSTORE SWAP6 SWAP2 SWAP5 POP SWAP2 SWAP3 POP DUP3 SWAP2 SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0xD0A PUSH2 0x33D2 JUMP JUMPDEST PUSH2 0xD12 PUSH2 0x3382 JUMP JUMPDEST DUP8 PUSH2 0xD1C DUP2 PUSH2 0x3303 JUMP JUMPDEST DUP8 PUSH2 0xD26 DUP2 PUSH2 0x342F JUMP JUMPDEST DUP8 PUSH2 0xD30 DUP2 PUSH2 0x342F JUMP JUMPDEST DUP10 PUSH2 0xD3A DUP2 PUSH2 0x3490 JUMP JUMPDEST DUP10 PUSH2 0xD44 DUP2 PUSH2 0x3490 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x8DA5CB5B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD ADDRESS SWAP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP2 PUSH4 0x8DA5CB5B SWAP2 PUSH1 0x4 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xDA3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xDB7 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xDCD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ PUSH2 0xE2D JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F414E43484F525F4E4F545F4F574E4544000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0xE56 PUSH32 0x436861696E6C696E6B4F7261636C6557686974656C6973740000000000000000 PUSH2 0x34F0 JUMP JUMPDEST SWAP10 POP DUP10 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x3AF32ABF DUP14 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xEB3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xEC7 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xEDD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD ISZERO ISZERO PUSH2 0xF35 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4F5241434C450000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP10 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x3AF32ABF DUP13 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xF90 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xFA4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xFBA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD ISZERO ISZERO PUSH2 0x1012 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4F5241434C450000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x101A PUSH2 0x3588 JUMP JUMPDEST PUSH1 0xA DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP16 AND OR SWAP1 SSTORE PUSH1 0x7 DUP1 SLOAD PUSH1 0x0 SWAP1 DUP2 LT PUSH2 0x1044 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP15 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x10A2 JUMPI PUSH1 0x7 DUP1 SLOAD PUSH1 0x1 SWAP1 DUP2 LT PUSH2 0x1072 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0xB DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x10DD JUMP JUMPDEST PUSH1 0x7 DUP1 SLOAD PUSH1 0x0 SWAP1 DUP2 LT PUSH2 0x10B1 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0xB DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMPDEST PUSH2 0x1106 PUSH32 0x436F6E766572746572466163746F727900000000000000000000000000000000 PUSH2 0x34F0 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xC977AED2 PUSH2 0x111C PUSH2 0x17A7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH2 0xFFFF AND PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x115D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1171 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1187 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP SWAP9 POP DUP9 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x1B27444E DUP15 PUSH1 0xB PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP16 DUP16 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP6 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP5 POP POP POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1258 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x126C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1282 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x9 DUP1 SLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH13 0x1000000000000000000000000 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND DUP2 MUL SWAP2 SWAP1 SWAP2 OR SWAP2 DUP3 SWAP1 SSTORE PUSH1 0xA SLOAD PUSH1 0xB SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xAE81800400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP3 DUP7 AND PUSH1 0x4 DUP5 ADD MSTORE SWAP1 DUP6 AND PUSH1 0x24 DUP4 ADD MSTORE DUP1 MLOAD SWAP3 SWAP1 SWAP4 DIV SWAP1 SWAP4 AND SWAP3 PUSH4 0xAE818004 SWAP3 PUSH1 0x44 DUP1 DUP4 ADD SWAP4 SWAP2 SWAP3 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1324 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1338 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x134E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD MLOAD PUSH1 0x10 DUP2 SWAP1 SSTORE PUSH1 0xF DUP3 SWAP1 SSTORE PUSH1 0x12 SWAP2 SWAP1 SWAP2 SSTORE PUSH1 0x13 SSTORE PUSH2 0x1372 PUSH2 0x37C4 JUMP JUMPDEST PUSH1 0x11 SSTORE PUSH1 0xA SLOAD PUSH2 0x138A SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0xBCA JUMP JUMPDEST PUSH1 0xA SLOAD SWAP1 SWAP9 POP PUSH2 0x13A2 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x2AFF JUMP JUMPDEST PUSH1 0xB SLOAD SWAP1 SWAP8 POP PUSH2 0x13BA SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x2AFF JUMP JUMPDEST SWAP6 POP DUP7 DUP9 EQ ISZERO PUSH2 0x13E5 JUMPI PUSH1 0x0 DUP9 GT DUP1 PUSH2 0x13D3 JUMPI POP PUSH1 0x0 DUP7 GT JUMPDEST ISZERO PUSH2 0x13E0 JUMPI PUSH2 0x13E0 PUSH2 0x37C8 JUMP JUMPDEST PUSH2 0x140E JUMP JUMPDEST PUSH1 0x0 DUP9 GT DUP1 ISZERO PUSH2 0x13F5 JUMPI POP PUSH1 0x0 DUP8 GT JUMPDEST DUP1 ISZERO PUSH2 0x1401 JUMPI POP PUSH1 0x0 DUP7 GT JUMPDEST ISZERO PUSH2 0x140E JUMPI PUSH2 0x140E PUSH2 0x37C8 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x1425 PUSH2 0x17A7 JUMP JUMPDEST PUSH2 0xFFFF AND PUSH32 0x6B08C2E2C9969E55A647A764DB9B554D64DC42F1A704DA11A6D5B129AD163F2C PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x52F4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x0 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH32 0x353C2EB9E53A4A4A6D45D72082FF2E9DC829D1125618772A83EB0E7F86632C43 SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH2 0x14B5 PUSH2 0x3382 JUMP JUMPDEST PUSH1 0x15 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x7 DUP3 DUP2 SLOAD DUP2 LT ISZERO ISZERO PUSH2 0x14D2 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0x14F9 DUP2 PUSH2 0x3303 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH4 0xFFFFFFFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x152D DUP6 DUP6 DUP6 PUSH2 0x26A4 JUMP JUMPDEST SWAP2 POP SWAP2 POP SWAP4 POP SWAP4 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1541 PUSH2 0x3382 JUMP JUMPDEST PUSH2 0x154A DUP2 PUSH2 0x218C JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1557 PUSH2 0x3840 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x157D JUMPI POP PUSH1 0x9 SLOAD PUSH13 0x1000000000000000000000000 SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND ISZERO ISZERO JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH13 0x1000000000000000000000000 SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0x15AD DUP2 PUSH2 0x3303 JUMP JUMPDEST PUSH2 0x15EF PUSH2 0x15B9 DUP5 PUSH2 0x2AFF JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x15E3 SWAP1 PUSH1 0x13 PUSH4 0xFFFFFFFF PUSH2 0x38DA AND JUMP JUMPDEST SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x395E AND JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x18160DDD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x163C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1650 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1666 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP2 SWAP6 POP AND SWAP3 POP PUSH2 0x1691 DUP4 PUSH2 0x2AFF JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 SWAP3 POP SWAP1 POP PUSH2 0x16CF DUP2 PUSH2 0x16C3 DUP5 DUP8 PUSH4 0xFFFFFFFF PUSH2 0x38DA AND JUMP JUMPDEST SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x39BB AND JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH2 0x1702 PUSH2 0x3382 JUMP JUMPDEST PUSH2 0x170A PUSH2 0x28D6 JUMP JUMPDEST JUMP JUMPDEST PUSH2 0x1714 PUSH2 0x3382 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x5E35359E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP6 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP3 ADD DUP6 SWAP1 MSTORE SWAP2 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP2 PUSH4 0x5E35359E SWAP2 PUSH1 0x64 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x178A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x179E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 SWAP1 JUMP JUMPDEST PUSH2 0x17B4 PUSH2 0x3382 JUMP JUMPDEST DUP2 PUSH1 0x14 PUSH1 0x0 PUSH1 0x7 PUSH1 0x0 DUP2 SLOAD DUP2 LT ISZERO ISZERO PUSH2 0x17C9 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 SWAP1 SWAP2 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP4 MSTORE DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x40 ADD DUP2 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE PUSH1 0x7 DUP1 SLOAD DUP4 SWAP3 PUSH1 0x14 SWAP3 SWAP1 SWAP2 PUSH1 0x1 SWAP1 DUP2 LT PUSH2 0x1807 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 SWAP1 SWAP2 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP4 MSTORE DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x40 ADD SWAP1 KECCAK256 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ DUP1 PUSH2 0x1865 JUMPI POP PUSH1 0x3 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x18A9 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5314 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x18D2 PUSH32 0x436F6E7472616374526567697374727900000000000000000000000000000000 PUSH2 0x34F0 JUMP JUMPDEST PUSH1 0x2 SLOAD SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP4 AND SWAP2 AND EQ DUP1 ISZERO SWAP1 PUSH2 0x18FB JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x1951 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245474953545259000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0xBB34534C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH32 0x436F6E7472616374526567697374727900000000000000000000000000000000 PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP2 PUSH4 0xBB34534C SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x19D5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x19E9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x19FF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ ISZERO PUSH2 0x1A60 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245474953545259000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP5 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT SWAP3 DUP4 AND OR SWAP1 SWAP3 SSTORE SWAP1 SWAP2 AND SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x1A98 PUSH2 0x3382 JUMP JUMPDEST DUP1 PUSH2 0x1AA2 DUP2 PUSH2 0x342F JUMP JUMPDEST POP PUSH1 0x6 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x20 DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x1ADA PUSH2 0x3A29 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH2 0x1AE7 PUSH2 0x3A83 JUMP JUMPDEST DUP8 PUSH2 0x1AF1 DUP2 PUSH2 0x3303 JUMP JUMPDEST DUP8 PUSH2 0x1AFB DUP2 PUSH2 0x3AE1 JUMP JUMPDEST DUP8 PUSH2 0x1B05 DUP2 PUSH2 0x3AE1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x52F4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ PUSH2 0x1B2A JUMPI CALLVALUE ISZERO PUSH2 0x1B2E JUMP JUMPDEST DUP10 CALLVALUE EQ JUMPDEST ISZERO ISZERO PUSH2 0x1B84 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4554485F414D4F554E545F4D49534D41544348000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x1B8C PUSH2 0x3B39 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x52F4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ ISZERO PUSH2 0x1C2E JUMPI PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x52F4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x0 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH32 0x353C2EB9E53A4A4A6D45D72082FF2E9DC829D1125618772A83EB0E7F86632C42 SLOAD PUSH2 0x1BF4 SWAP1 CALLVALUE PUSH4 0xFFFFFFFF PUSH2 0x3B7B AND JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x52F4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x0 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH32 0x353C2EB9E53A4A4A6D45D72082FF2E9DC829D1125618772A83EB0E7F86632C42 SSTORE JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x15 SLOAD SWAP1 SWAP8 POP PUSH1 0xFF AND ISZERO PUSH2 0x1CF7 JUMPI PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x14 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD ISZERO DUP1 PUSH2 0x1CA1 JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x14 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x1C9E DUP9 DUP13 PUSH4 0xFFFFFFFF PUSH2 0x395E AND JUMP JUMPDEST GT ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x1CF7 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4D41585F5354414B45445F42414C414E43455F524541434845440000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP13 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD DUP2 MLOAD PUSH32 0x18160DDD00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP2 MLOAD SWAP5 AND SWAP10 POP DUP10 SWAP4 PUSH4 0x18160DDD SWAP4 PUSH1 0x4 DUP1 DUP5 ADD SWAP5 SWAP4 DUP4 SWAP1 SUB ADD SWAP1 DUP3 SWAP1 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1D64 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1D78 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1D8E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP5 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x52F4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ PUSH2 0x1DBC JUMPI PUSH2 0x1DBC DUP12 CALLER ADDRESS DUP14 PUSH2 0x3BDB JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x1DE5 SWAP1 DUP12 PUSH4 0xFFFFFFFF PUSH2 0x395E AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP13 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE PUSH2 0x1E0E DUP8 DUP12 PUSH4 0xFFFFFFFF PUSH2 0x395E AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP13 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE SWAP4 POP DUP7 ISZERO DUP1 PUSH2 0x1E37 JUMPI POP DUP5 ISZERO JUMPDEST ISZERO PUSH2 0x1E44 JUMPI DUP10 SWAP4 POP PUSH2 0x1E5B JUMP JUMPDEST PUSH2 0x1E58 DUP8 PUSH2 0x16C3 DUP13 DUP9 PUSH4 0xFFFFFFFF PUSH2 0x38DA AND JUMP JUMPDEST SWAP4 POP JUMPDEST DUP9 DUP5 LT ISZERO PUSH2 0x1EB3 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F52455455524E5F544F4F5F4C4F570000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xC6C3BBE600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP10 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE CALLER PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP3 ADD DUP9 SWAP1 MSTORE SWAP2 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP2 PUSH4 0xC6C3BBE6 SWAP2 PUSH1 0x64 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1F27 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1F3B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x1F47 PUSH2 0x37C8 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND CALLER PUSH32 0x4A1A2A6176E9646D9E3157F7C2AB3C499F18337C0B0828CFB28E0A61DE4A11F7 DUP13 PUSH2 0x1F84 DUP12 DUP3 PUSH4 0xFFFFFFFF PUSH2 0x395E AND JUMP JUMPDEST PUSH2 0x1F94 DUP11 DUP11 PUSH4 0xFFFFFFFF PUSH2 0x395E AND JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP4 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP3 SWAP1 SWAP3 MSTORE DUP3 DUP3 ADD MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG3 PUSH2 0x1FCB DUP7 PUSH2 0x1FC5 DUP8 DUP8 PUSH4 0xFFFFFFFF PUSH2 0x395E AND JUMP JUMPDEST DUP14 PUSH2 0x3CC3 JUMP JUMPDEST PUSH2 0x2020 PUSH1 0x7 PUSH1 0x0 DUP2 SLOAD DUP2 LT ISZERO ISZERO PUSH2 0x1FDE JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x7 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP2 PUSH1 0x1 SWAP1 DUP2 LT PUSH2 0x2005 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP1 DUP1 PUSH2 0x3D23 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0x4 SSTORE POP SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD AND SWAP1 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH9 0x10000000000000000 SWAP1 DIV PUSH4 0xFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2073 PUSH2 0x3A29 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH2 0x2080 PUSH2 0x3382 JUMP JUMPDEST PUSH2 0x2097 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x52D4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x34F0 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD SWAP1 SWAP2 POP PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 PUSH2 0x20D4 JUMPI POP PUSH2 0x20D2 PUSH2 0x154D JUMP JUMPDEST ISZERO JUMPDEST DUP1 PUSH2 0x20EC JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ JUMPDEST ISZERO ISZERO PUSH2 0x2130 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5314 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x213B DUP5 DUP5 DUP5 PUSH2 0x3D8F JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x2172 JUMPI PUSH2 0x2172 DUP5 PUSH2 0x3DC0 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0x4 SSTORE POP POP JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH2 0x2194 PUSH2 0x3382 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x52D4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x21AC DUP2 PUSH2 0x3EB4 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xF2FDE38B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP2 PUSH4 0xF2FDE38B SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2213 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2227 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 DUP12 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x18160DDD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x227C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2290 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x22A6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP15 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD SWAP1 SWAP4 AND DUP3 MSTORE PUSH1 0xC SWAP1 MSTORE KECCAK256 SLOAD SWAP1 SWAP9 POP SWAP7 POP DUP8 DUP12 LT ISZERO PUSH2 0x2371 JUMPI PUSH1 0xA SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x2309 SWAP1 PUSH1 0x14 PUSH4 0xFFFFFFFF PUSH2 0x38DA AND JUMP JUMPDEST PUSH1 0xA SLOAD SWAP1 SWAP7 POP PUSH2 0x2321 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x15A1 JUMP JUMPDEST SWAP5 POP DUP5 DUP7 LT PUSH2 0x2331 JUMPI DUP5 DUP7 PUSH2 0x2334 JUMP JUMPDEST DUP6 DUP6 JUMPDEST SWAP1 SWAP5 POP SWAP3 POP PUSH2 0x234D DUP9 PUSH2 0x16C3 DUP14 DUP11 PUSH4 0xFFFFFFFF PUSH2 0x38DA AND JUMP JUMPDEST SWAP2 POP PUSH2 0x2363 DUP4 PUSH2 0x16C3 DUP5 DUP8 PUSH4 0xFFFFFFFF PUSH2 0x38DA AND JUMP JUMPDEST SWAP10 POP POP DUP9 DUP2 SUB SWAP8 POP DUP9 PUSH2 0x237B JUMP JUMPDEST SWAP6 SWAP9 POP PUSH1 0x0 SWAP8 POP DUP9 SWAP6 JUMPDEST POP POP POP POP POP POP POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2394 PUSH2 0x3A29 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH2 0x23A1 PUSH2 0x3382 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x52F4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x23B9 DUP2 PUSH2 0x3303 JUMP JUMPDEST PUSH2 0x23D0 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x52D4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x34F0 JUMP JUMPDEST SWAP2 POP PUSH2 0x23DA PUSH2 0x154D JUMP JUMPDEST ISZERO DUP1 PUSH2 0x23F3 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 DUP2 AND SWAP2 AND EQ JUMPDEST ISZERO ISZERO PUSH2 0x2437 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5314 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP1 ADDRESS BALANCE DUP1 ISZERO PUSH2 0x8FC MUL SWAP2 PUSH1 0x0 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x246D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH2 0x2485 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x52F4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x3DC0 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0x4 SSTORE POP JUMP JUMPDEST PUSH2 0x2497 PUSH2 0x3382 JUMP JUMPDEST PUSH3 0x186A0 DUP2 GT ISZERO PUSH2 0x24F2 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F44594E414D49435F4645455F464143544F520000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x16 SLOAD PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP4 SWAP1 MSTORE DUP1 MLOAD PUSH32 0x382FD3516344712A511DCD464FF8E6AB54139D6A28F64087A3253353EE7A5679 SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG1 PUSH1 0x16 SSTORE JUMP JUMPDEST PUSH1 0x2 PUSH2 0x253E PUSH2 0x2695 JUMP JUMPDEST PUSH2 0xFFFF AND LT PUSH2 0x2585 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5334 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x258F DUP3 DUP3 PUSH2 0x3F0A JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x157D PUSH2 0x2695 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x25ED JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5314 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND SWAP4 SWAP1 SWAP2 AND SWAP2 PUSH32 0x343765429AEA5A34B3FF6A3785A98A5ABB2597ACA87BFBB58632C173D585373A SWAP2 LOG3 PUSH1 0x1 DUP1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND OR SWAP1 SWAP2 SSTORE AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH5 0x100000000 SWAP1 DIV PUSH4 0xFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x14 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x7 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0xF SLOAD PUSH1 0x10 SLOAD DUP3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x26B2 PUSH2 0x529D JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x26C0 PUSH2 0x3A83 JUMP JUMPDEST PUSH2 0x26C9 DUP13 PUSH2 0x3303 JUMP JUMPDEST PUSH2 0x26D2 DUP12 PUSH2 0x3303 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP13 DUP2 AND SWAP1 DUP13 AND EQ ISZERO PUSH2 0x2736 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F534F555243455F54415247455400000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x273E PUSH2 0x37C4 JUMP JUMPDEST PUSH1 0x11 SLOAD EQ ISZERO PUSH2 0x27E5 JUMPI PUSH1 0xF PUSH1 0x40 DUP1 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD SLOAD DUP2 MSTORE POP POP SWAP5 POP PUSH1 0x8 PUSH1 0x0 DUP14 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH4 0xFFFFFFFF AND SWAP7 POP PUSH1 0x8 PUSH1 0x0 DUP13 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH4 0xFFFFFFFF AND SWAP6 POP PUSH2 0x2825 JUMP JUMPDEST PUSH2 0x27ED PUSH2 0x413C JUMP JUMPDEST SWAP5 POP PUSH2 0x27F8 DUP6 PUSH2 0x4380 JUMP JUMPDEST PUSH1 0xA SLOAD SWAP2 SWAP6 POP SWAP4 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP14 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x281E JUMPI DUP4 SWAP7 POP DUP3 SWAP6 POP PUSH2 0x2825 JUMP JUMPDEST DUP3 SWAP7 POP DUP4 SWAP6 POP JUMPDEST PUSH2 0x2833 DUP13 DUP13 DUP10 DUP10 DUP10 DUP16 PUSH2 0x44AA JUMP JUMPDEST SWAP2 SWAP15 SWAP2 SWAP14 POP SWAP1 SWAP12 POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x2850 PUSH2 0x3382 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x2 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x1 DUP2 JUMP JUMPDEST PUSH2 0x2881 PUSH2 0x3382 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x52D4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x2899 DUP2 PUSH2 0x3EB4 JUMP JUMPDEST DUP3 PUSH2 0x28A3 DUP2 PUSH2 0x3303 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE JUMP JUMPDEST PUSH1 0x11 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x1 PUSH2 0x28E0 PUSH2 0x2695 JUMP JUMPDEST PUSH2 0xFFFF AND GT PUSH2 0x2927 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5334 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x170A PUSH2 0x4646 JUMP JUMPDEST PUSH1 0x7 DUP1 SLOAD DUP3 SWAP1 DUP2 LT PUSH2 0x293D JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP1 POP DUP2 JUMP JUMPDEST PUSH1 0x1 SWAP1 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2984 PUSH2 0x3382 JUMP JUMPDEST PUSH2 0x299B PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x52D4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x34F0 JUMP JUMPDEST PUSH1 0x5 SLOAD SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x29B5 PUSH2 0x17A7 JUMP JUMPDEST PUSH2 0xFFFF AND PUSH32 0x6B08C2E2C9969E55A647A764DB9B554D64DC42F1A704DA11A6D5B129AD163F2C PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH2 0x29EE DUP2 PUSH2 0x325B JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x90F58C9600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 AND SWAP2 PUSH4 0x90F58C96 SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2A4F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2A63 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x154A PUSH2 0x259D JUMP JUMPDEST PUSH1 0x14 SWAP1 JUMP JUMPDEST PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD PUSH4 0xFFFFFFFF DUP2 AND SWAP1 PUSH1 0xFF PUSH5 0x100000000 DUP3 DIV DUP2 AND SWAP2 PUSH6 0x10000000000 DUP2 DIV DUP3 AND SWAP2 PUSH7 0x1000000000000 SWAP1 SWAP2 DIV AND DUP6 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2AC5 DUP3 PUSH2 0x2AFF JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2AD6 PUSH2 0x529D JUMP JUMPDEST PUSH2 0x2ADE PUSH2 0x413C JUMP JUMPDEST DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD MLOAD SWAP1 SWAP5 SWAP1 SWAP4 POP SWAP2 POP POP JUMP JUMPDEST PUSH1 0xB SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0x2B0B DUP2 PUSH2 0x3303 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x2B39 PUSH2 0x3A29 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH2 0x2B46 PUSH2 0x3A83 JUMP JUMPDEST DUP9 PUSH2 0x2B50 DUP2 PUSH2 0x4712 JUMP JUMPDEST DUP9 PUSH2 0x2B5A DUP2 PUSH2 0x3AE1 JUMP JUMPDEST DUP9 PUSH2 0x2B64 DUP2 PUSH2 0x3AE1 JUMP JUMPDEST PUSH2 0x2B6C PUSH2 0x3B39 JUMP JUMPDEST DUP12 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x18160DDD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2BAA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2BBE JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2BD4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP8 POP PUSH2 0x2BE2 DUP13 DUP13 PUSH2 0x222F JUMP JUMPDEST POP SWAP7 POP DUP10 DUP8 LT ISZERO PUSH2 0x2C3D JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F52455455524E5F544F4F5F4C4F570000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0xE PUSH1 0x0 DUP14 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP6 POP PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xF6B911BC DUP14 CALLER DUP15 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP4 POP POP POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2D0A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2D1E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x2D4B SWAP2 POP DUP9 PUSH4 0xFFFFFFFF PUSH2 0x3B7B AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE PUSH1 0xC SWAP1 MSTORE KECCAK256 SLOAD PUSH2 0x2D80 SWAP1 DUP9 PUSH4 0xFFFFFFFF PUSH2 0x3B7B AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP3 SWAP1 SSTORE SWAP1 SWAP6 POP PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x52F4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ ISZERO PUSH2 0x2DE6 JUMPI PUSH1 0x40 MLOAD CALLER SWAP1 DUP9 ISZERO PUSH2 0x8FC MUL SWAP1 DUP10 SWAP1 PUSH1 0x0 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x2DE0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH2 0x2DF1 JUMP JUMPDEST PUSH2 0x2DF1 DUP7 CALLER DUP10 PUSH2 0x4783 JUMP JUMPDEST PUSH2 0x2DF9 PUSH2 0x37C8 JUMP JUMPDEST PUSH2 0x2E09 DUP9 DUP13 PUSH4 0xFFFFFFFF PUSH2 0x3B7B AND JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP10 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP9 SWAP1 MSTORE DUP1 DUP3 ADD DUP4 SWAP1 MSTORE SWAP1 MLOAD SWAP2 SWAP6 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 AND SWAP2 CALLER SWAP2 PUSH32 0xBC7D19D505C7EC4DB83F3B51F19FB98C4C8A99922E7839D1EE608DFBEE29501B SWAP2 SWAP1 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG3 PUSH2 0x2E65 DUP13 DUP6 DUP9 PUSH2 0x3CC3 JUMP JUMPDEST PUSH2 0x2E78 PUSH1 0x7 PUSH1 0x0 DUP2 SLOAD DUP2 LT ISZERO ISZERO PUSH2 0x1FDE JUMPI INVALID JUMPDEST POP POP PUSH1 0x1 PUSH1 0x4 SSTORE POP SWAP3 SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x16 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2E9D PUSH2 0x3A29 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH32 0x536F7672796E537761704E6574776F726B000000000000000000000000000000 PUSH2 0x2ECC DUP2 PUSH2 0x3EB4 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 DUP2 AND SWAP1 DUP8 AND EQ ISZERO PUSH2 0x2F30 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F534F555243455F54415247455400000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND ISZERO DUP1 PUSH2 0x3073 JUMPI POP PUSH1 0x6 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x3AF32ABF00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP2 PUSH4 0x3AF32ABF SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2FAB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2FBF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2FD5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD DUP1 ISZERO PUSH2 0x3073 JUMPI POP PUSH1 0x6 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x3AF32ABF00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP2 PUSH4 0x3AF32ABF SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3046 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x305A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x3070 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD JUMPDEST ISZERO ISZERO PUSH2 0x30C9 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4E4F545F57484954454C495354454400000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x30D6 DUP8 DUP8 DUP8 DUP8 DUP8 PUSH2 0x483A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x4 SSTORE SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x30F1 PUSH2 0x529D JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x30FC PUSH2 0x413C JUMP JUMPDEST SWAP3 POP PUSH2 0x3107 DUP4 PUSH2 0x4380 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x7 PUSH1 0x0 DUP2 SLOAD DUP2 LT ISZERO ISZERO PUSH2 0x311B JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0xA SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x3150 JUMPI PUSH4 0xFFFFFFFF DUP1 DUP4 AND SWAP6 POP DUP2 AND SWAP4 POP PUSH2 0x315F JUMP JUMPDEST PUSH4 0xFFFFFFFF DUP1 DUP3 AND SWAP6 POP DUP3 AND SWAP4 POP JUMPDEST POP POP POP SWAP1 SWAP2 JUMP JUMPDEST PUSH2 0x316E PUSH2 0x3382 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH4 0xFFFFFFFF PUSH5 0x100000000 SWAP1 SWAP2 DIV DUP2 AND SWAP1 DUP3 AND GT ISZERO PUSH2 0x31DA JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F434F4E56455253494F4E5F464545000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH4 0xFFFFFFFF PUSH9 0x10000000000000000 SWAP1 SWAP4 DIV DUP4 AND DUP2 MSTORE SWAP2 DUP4 AND PUSH1 0x20 DUP4 ADD MSTORE DUP1 MLOAD PUSH32 0x81CD2FFB37DD237C0E4E2A3DE5265FCF9DEB43D3E7801E80DB9F1CCFBA7EE600 SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG1 PUSH1 0x9 DUP1 SLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP3 AND PUSH9 0x10000000000000000 MUL PUSH12 0xFFFFFFFF0000000000000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x3263 PUSH2 0x3382 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x32C9 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F4F574E4552000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x12 SLOAD PUSH1 0x13 SLOAD DUP3 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO PUSH2 0x154A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245534552564500000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x170A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5314 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x33DA PUSH2 0x154D JUMP JUMPDEST ISZERO PUSH2 0x170A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xA PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F41435449564500000000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ADDRESS EQ ISZERO PUSH2 0x154A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F414444524553535F49535F53454C4600000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0x154A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xBB34534C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP2 PUSH4 0xBB34534C SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3556 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x356A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x3580 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP6 POP DUP6 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x6D3E313E PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x35E8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x35FC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x3625 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 MLOAD PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x363D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD PUSH1 0x20 DUP2 ADD DUP5 DUP2 GT ISZERO PUSH2 0x3650 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP6 PUSH1 0x20 DUP3 MUL DUP4 ADD GT PUSH5 0x100000000 DUP3 GT OR ISZERO PUSH2 0x366D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP DUP1 MLOAD PUSH1 0x7 SLOAD SWAP2 SWAP10 POP ISZERO SWAP8 POP SWAP6 POP PUSH1 0x0 SWAP5 POP POP POP POP JUMPDEST DUP3 DUP3 LT ISZERO PUSH2 0x2227 JUMPI DUP4 ISZERO PUSH2 0x3703 JUMPI DUP6 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x9CBF9E36 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x36D0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x36E4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x36FA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 POP PUSH2 0x371E JUMP JUMPDEST DUP5 DUP3 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3711 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD SWAP1 POP JUMPDEST DUP1 PUSH1 0xD PUSH1 0x0 PUSH1 0x7 DUP6 DUP2 SLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3732 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 SWAP2 SWAP1 SWAP2 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 DUP2 AND DUP5 MSTORE SWAP1 DUP4 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x40 SWAP1 SWAP2 ADD SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND SWAP3 SWAP1 SWAP2 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH1 0x7 DUP1 SLOAD DUP4 SWAP1 DUP2 LT PUSH2 0x3780 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 SWAP1 SWAP2 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 DUP2 AND DUP5 MSTORE PUSH1 0xE SWAP1 SWAP3 MSTORE PUSH1 0x40 SWAP1 SWAP3 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND SWAP2 SWAP1 SWAP3 AND OR SWAP1 SSTORE PUSH1 0x1 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x3684 JUMP JUMPDEST TIMESTAMP SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0xF SLOAD DUP2 MSTORE PUSH1 0x10 SLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 SWAP1 DUP2 SWAP1 PUSH2 0x37ED SWAP1 PUSH2 0x4380 JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 PUSH1 0x1 SWAP1 DUP2 ADD DUP1 SLOAD PUSH4 0xFFFFFFFF SWAP8 DUP9 AND PUSH4 0xFFFFFFFF NOT SWAP2 DUP3 AND OR SWAP1 SWAP2 SSTORE PUSH1 0xB SLOAD SWAP1 SWAP5 AND DUP4 MSTORE SWAP2 KECCAK256 ADD DUP1 SLOAD SWAP3 SWAP1 SWAP4 AND SWAP2 AND OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 ADDRESS PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x8DA5CB5B PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x389F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x38B3 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x38C9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 ISZERO ISZERO PUSH2 0x38ED JUMPI PUSH1 0x0 SWAP2 POP PUSH2 0x3957 JUMP JUMPDEST POP DUP3 DUP3 MUL DUP3 DUP5 DUP3 DUP2 ISZERO ISZERO PUSH2 0x38FD JUMPI INVALID JUMPDEST DIV EQ PUSH2 0x3953 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP1 SWAP2 POP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 ADD DUP4 DUP2 LT ISZERO PUSH2 0x3953 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP4 GT PUSH2 0x3A15 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4449564944455F42595F5A45524F0000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP3 DUP5 DUP2 ISZERO ISZERO PUSH2 0x3A20 JUMPI INVALID JUMPDEST DIV SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH1 0x1 EQ PUSH2 0x170A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5245454E5452414E4359000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x3A8B PUSH2 0x154D JUMP JUMPDEST ISZERO ISZERO PUSH2 0x170A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E4143544956450000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 GT PUSH2 0x154A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5A45524F5F56414C5545000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x258F JUMPI PUSH2 0x3B73 PUSH1 0x7 DUP3 DUP2 SLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3B59 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x3DC0 JUMP JUMPDEST PUSH1 0x1 ADD PUSH2 0x3B3F JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT ISZERO PUSH2 0x3BD5 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F554E444552464C4F5700000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP SWAP1 SUB SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x7472616E7366657246726F6D28616464726573732C616464726573732C75696E DUP2 MSTORE PUSH32 0x7432353629000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP3 MLOAD SWAP2 DUP3 SWAP1 SUB PUSH1 0x25 ADD DUP3 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP9 AND PUSH1 0x24 DUP6 ADD MSTORE DUP7 AND PUSH1 0x44 DUP5 ADD MSTORE PUSH1 0x64 DUP1 DUP5 ADD DUP7 SWAP1 MSTORE DUP5 MLOAD DUP1 DUP6 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x84 SWAP1 SWAP4 ADD SWAP1 SWAP4 MSTORE DUP2 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE PUSH2 0x3CBD SWAP1 DUP6 SWAP1 PUSH2 0x492D JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP3 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SLOAD DUP3 MLOAD SWAP1 DUP2 MSTORE SWAP1 DUP2 ADD DUP7 SWAP1 MSTORE DUP2 MLOAD SWAP3 SWAP4 DUP8 AND SWAP3 PUSH32 0x77F29993CF2C084E726F7E802DA0719D6A0ADE3E204BADC7A3FFD57ECB768C24 SWAP3 SWAP2 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH2 0x3D2B PUSH2 0x529D JUMP JUMPDEST PUSH2 0x3D37 DUP6 DUP6 DUP6 DUP6 PUSH2 0x49BB JUMP JUMPDEST DUP1 MLOAD PUSH1 0x20 DUP1 DUP4 ADD MLOAD PUSH1 0x40 DUP1 MLOAD SWAP4 DUP5 MSTORE SWAP2 DUP4 ADD MSTORE DUP1 MLOAD SWAP3 SWAP4 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP9 AND SWAP4 SWAP1 DUP10 AND SWAP3 PUSH32 0x77F29993CF2C084E726F7E802DA0719D6A0ADE3E204BADC7A3FFD57ECB768C24 SWAP3 SWAP1 DUP3 SWAP1 SUB ADD SWAP1 LOG3 POP POP POP POP POP JUMP JUMPDEST PUSH2 0x3D97 PUSH2 0x3382 JUMP JUMPDEST DUP3 PUSH2 0x3DA1 DUP2 PUSH2 0x3490 JUMP JUMPDEST DUP3 PUSH2 0x3DAB DUP2 PUSH2 0x3490 JUMP JUMPDEST DUP4 PUSH2 0x3DB5 DUP2 PUSH2 0x342F JUMP JUMPDEST PUSH2 0x2227 DUP7 DUP7 DUP7 PUSH2 0x4783 JUMP JUMPDEST DUP1 PUSH2 0x3DCA DUP2 PUSH2 0x3303 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 AND PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x52F4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ ISZERO PUSH2 0x3E0A JUMPI PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 ADDRESS BALANCE SWAP1 SSTORE PUSH2 0x258F JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3E6B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3E7F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x3E95 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE POP POP JUMP JUMPDEST PUSH2 0x3EBD DUP2 PUSH2 0x34F0 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x154A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5314 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x3F14 PUSH2 0x3382 JUMP JUMPDEST PUSH2 0x3F1C PUSH2 0x33D2 JUMP JUMPDEST DUP3 PUSH2 0x3F26 DUP2 PUSH2 0x3490 JUMP JUMPDEST DUP4 PUSH2 0x3F30 DUP2 PUSH2 0x342F JUMP JUMPDEST DUP4 PUSH2 0x3F3A DUP2 PUSH2 0x4A83 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 DUP2 AND SWAP2 AND EQ DUP1 ISZERO SWAP1 PUSH2 0x3F7E JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x3FD4 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245534552564500000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x9 SLOAD PUSH4 0xFFFFFFFF SWAP1 DUP2 AND PUSH3 0xF4240 SUB DUP2 AND SWAP1 DUP7 AND GT ISZERO PUSH2 0x403F JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F574549474854000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0xFFFF PUSH2 0x404A PUSH2 0x2695 JUMP JUMPDEST PUSH2 0xFFFF AND LT PUSH2 0x4091 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5334 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP2 DUP2 SSTORE PUSH1 0x1 SWAP1 DUP2 ADD DUP1 SLOAD PUSH7 0xFF000000000000 NOT PUSH4 0xFFFFFFFF DUP1 DUP9 AND PUSH4 0xFFFFFFFF NOT SWAP4 DUP5 AND OR SWAP2 SWAP1 SWAP2 AND PUSH7 0x1000000000000 OR SWAP1 SWAP3 SSTORE PUSH1 0x7 DUP1 SLOAD SWAP4 DUP5 ADD DUP2 SSTORE SWAP1 SWAP4 MSTORE PUSH32 0xA66CC928B5EDB82AF9BD49922954155AB7B0942694BEA4CE44661D9A8736C688 SWAP1 SWAP2 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND SWAP1 SWAP4 OR SWAP1 SWAP3 SSTORE PUSH1 0x9 DUP1 SLOAD DUP1 DUP5 AND SWAP1 SWAP5 ADD SWAP1 SWAP3 AND SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE POP JUMP JUMPDEST PUSH2 0x4144 PUSH2 0x529D JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x4152 PUSH2 0x529D JUMP JUMPDEST PUSH2 0x415A PUSH2 0x529D JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0xA SLOAD PUSH1 0xB SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xB1772D7A00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND PUSH1 0x4 DUP3 ADD MSTORE SWAP2 DUP4 AND PUSH1 0x24 DUP4 ADD MSTORE MLOAD PUSH1 0x0 SWAP4 DUP5 SWAP4 DUP5 SWAP4 DUP5 SWAP4 PUSH13 0x1000000000000000000000000 SWAP1 SWAP4 DIV SWAP1 SWAP2 AND SWAP2 PUSH4 0xB1772D7A SWAP2 PUSH1 0x44 DUP1 DUP3 ADD SWAP3 PUSH1 0x60 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x41E8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x41FC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x60 DUP2 LT ISZERO PUSH2 0x4212 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD PUSH1 0x20 DUP3 ADD MLOAD PUSH1 0x40 SWAP1 SWAP3 ADD MLOAD PUSH1 0x11 SLOAD SWAP2 SWAP13 POP SWAP2 SWAP11 POP SWAP1 SWAP9 POP DUP9 GT ISZERO PUSH2 0x424F JUMPI PUSH1 0x40 DUP1 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 DUP12 DUP2 MSTORE PUSH1 0x20 ADD DUP11 DUP2 MSTORE POP SWAP11 POP PUSH2 0x4373 JUMP JUMPDEST PUSH1 0x11 SLOAD PUSH2 0x425A PUSH2 0x37C4 JUMP JUMPDEST SUB SWAP7 POP DUP7 ISZERO ISZERO PUSH2 0x4282 JUMPI PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0xF SLOAD DUP2 MSTORE PUSH1 0x10 SLOAD PUSH1 0x20 DUP3 ADD MSTORE SWAP11 POP PUSH2 0x4373 JUMP JUMPDEST PUSH2 0x258 DUP8 LT PUSH2 0x42A9 JUMPI PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x12 SLOAD DUP2 MSTORE PUSH1 0x13 SLOAD PUSH1 0x20 DUP3 ADD MSTORE SWAP11 POP PUSH2 0x4373 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD DUP3 MSTORE PUSH1 0xF SLOAD DUP2 MSTORE PUSH1 0x10 SLOAD PUSH1 0x20 DUP1 DUP4 ADD SWAP2 DUP3 MSTORE DUP4 MLOAD DUP1 DUP6 ADD SWAP1 SWAP5 MSTORE PUSH1 0x12 SLOAD DUP1 DUP6 MSTORE PUSH1 0x13 SLOAD SWAP2 DUP6 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP1 MLOAD SWAP2 SWAP9 POP SWAP2 SWAP7 POP PUSH2 0x42F1 SWAP2 PUSH4 0xFFFFFFFF PUSH2 0x38DA AND JUMP JUMPDEST PUSH1 0x20 DUP7 ADD MLOAD DUP8 MLOAD SWAP2 SWAP6 POP PUSH2 0x430B SWAP2 SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x38DA AND JUMP JUMPDEST SWAP3 POP PUSH2 0x4335 PUSH2 0x4320 DUP6 DUP10 PUSH4 0xFFFFFFFF PUSH2 0x38DA AND JUMP JUMPDEST PUSH2 0x15E3 DUP6 PUSH2 0x258 DUP12 SWAP1 SUB PUSH4 0xFFFFFFFF PUSH2 0x38DA AND JUMP JUMPDEST SWAP2 POP PUSH2 0x4364 PUSH2 0x258 PUSH2 0x4358 DUP8 PUSH1 0x20 ADD MLOAD DUP10 PUSH1 0x20 ADD MLOAD PUSH2 0x38DA SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x38DA AND JUMP JUMPDEST SWAP1 POP PUSH2 0x4370 DUP3 DUP3 PUSH2 0x4AF8 JUMP JUMPDEST SWAP11 POP JUMPDEST POP POP POP POP POP POP POP POP POP POP SWAP1 JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD SWAP1 SWAP2 DUP3 SWAP2 SWAP1 DUP3 SWAP1 DUP2 SWAP1 PUSH2 0x43AD SWAP1 PUSH2 0x15A1 JUMP JUMPDEST PUSH1 0xB SLOAD SWAP1 SWAP3 POP PUSH2 0x43C5 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x15A1 JUMP JUMPDEST SWAP1 POP PUSH2 0x43F0 PUSH32 0x536F7672796E53776170466F726D756C61000000000000000000000000000000 PUSH2 0x34F0 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xA11AA1B4 PUSH2 0x440F DUP6 PUSH1 0x14 PUSH4 0xFFFFFFFF PUSH2 0x38DA AND JUMP JUMPDEST DUP9 MLOAD PUSH1 0x20 DUP11 ADD MLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0xE0 PUSH1 0x2 EXP PUSH4 0xFFFFFFFF DUP8 AND MUL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP5 SWAP1 SWAP5 MSTORE PUSH1 0x24 DUP5 ADD DUP9 SWAP1 MSTORE PUSH1 0x44 DUP5 ADD DUP8 SWAP1 MSTORE PUSH1 0x64 DUP5 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x84 DUP4 ADD MSTORE DUP1 MLOAD PUSH1 0xA4 DUP1 DUP5 ADD SWAP4 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x446A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x447E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x4494 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD MLOAD SWAP1 SWAP6 POP SWAP4 POP POP POP POP SWAP2 POP SWAP2 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP1 DUP1 PUSH4 0xFFFFFFFF DUP10 AND ISZERO ISZERO PUSH2 0x44E2 JUMPI PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH4 0xFFFFFFFF AND SWAP9 POP JUMPDEST PUSH4 0xFFFFFFFF DUP9 AND ISZERO ISZERO PUSH2 0x4514 JUMPI PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP11 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH4 0xFFFFFFFF AND SWAP8 POP JUMPDEST PUSH2 0x451D DUP12 PUSH2 0x15A1 JUMP JUMPDEST SWAP2 POP PUSH2 0x4528 DUP11 PUSH2 0x15A1 JUMP JUMPDEST SWAP1 POP PUSH2 0x4553 PUSH32 0x536F7672796E53776170466F726D756C61000000000000000000000000000000 PUSH2 0x34F0 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x94491FAB00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH4 0xFFFFFFFF DUP1 DUP14 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP3 ADD DUP6 SWAP1 MSTORE DUP12 AND PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 DUP2 ADD DUP10 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 PUSH4 0x94491FAB SWAP2 PUSH1 0xA4 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x45DA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x45EE JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x4604 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP5 POP PUSH2 0x4611 DUP6 PUSH2 0x4B4D JUMP JUMPDEST SWAP4 POP PUSH2 0x4624 DUP5 PUSH2 0x15E3 DUP13 DUP13 DUP13 DUP13 DUP12 PUSH2 0x4B7D JUMP JUMPDEST SWAP3 POP PUSH2 0x4636 DUP6 DUP5 PUSH4 0xFFFFFFFF PUSH2 0x3B7B AND JUMP JUMPDEST SWAP5 POP POP POP SWAP7 POP SWAP7 POP SWAP7 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0x464E PUSH2 0x3382 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4658 PUSH2 0x2695 JUMP JUMPDEST PUSH2 0xFFFF AND GT PUSH2 0x469F JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5334 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x79BA5097 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x46F2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x4706 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x170A PUSH2 0x3B39 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD AND ISZERO ISZERO PUSH2 0x154A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F504F4F4C5F544F4B454E00000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x7472616E7366657228616464726573732C75696E743235362900000000000000 DUP2 MSTORE DUP2 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x19 ADD DUP2 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x64 SWAP1 SWAP3 ADD SWAP1 SWAP3 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE PUSH2 0x4835 SWAP1 DUP5 SWAP1 PUSH2 0x492D JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x4847 PUSH2 0x3A83 JUMP JUMPDEST DUP8 PUSH2 0x4851 DUP2 PUSH2 0x3303 JUMP JUMPDEST DUP8 PUSH2 0x485B DUP2 PUSH2 0x3303 JUMP JUMPDEST PUSH2 0x4866 DUP11 DUP11 DUP11 PUSH2 0x4C56 JUMP JUMPDEST SWAP1 SWAP5 POP SWAP3 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP10 AND PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x52F4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ ISZERO PUSH2 0x48C6 JUMPI PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND SWAP1 DUP6 ISZERO PUSH2 0x8FC MUL SWAP1 DUP7 SWAP1 PUSH1 0x0 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x48C0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH2 0x48D1 JUMP JUMPDEST PUSH2 0x48D1 DUP10 DUP8 DUP7 PUSH2 0x4783 JUMP JUMPDEST PUSH2 0x48DF DUP11 DUP11 DUP10 DUP12 DUP9 DUP9 PUSH2 0x4F6B JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 PUSH1 0x1 SWAP1 DUP2 ADD SLOAD SWAP4 DUP14 AND DUP4 MSTORE SWAP2 KECCAK256 ADD SLOAD PUSH2 0x491F SWAP2 DUP13 SWAP2 DUP13 SWAP2 PUSH4 0xFFFFFFFF SWAP1 DUP2 AND SWAP2 AND PUSH2 0x4FF0 JUMP JUMPDEST POP SWAP2 SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x4935 PUSH2 0x52B4 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE POP SWAP1 POP PUSH1 0x20 DUP2 DUP4 MLOAD PUSH1 0x20 DUP6 ADD PUSH1 0x0 DUP8 GAS CALL DUP1 ISZERO ISZERO PUSH2 0x4962 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD ISZERO ISZERO PUSH2 0x4835 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5452414E534645525F4641494C454400000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x49C3 PUSH2 0x529D JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x49CF DUP8 PUSH2 0x15A1 JUMP JUMPDEST SWAP2 POP PUSH2 0x49DA DUP7 PUSH2 0x15A1 JUMP JUMPDEST SWAP1 POP PUSH4 0xFFFFFFFF DUP6 AND ISZERO ISZERO PUSH2 0x4A0E JUMPI PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH4 0xFFFFFFFF AND SWAP5 POP JUMPDEST PUSH4 0xFFFFFFFF DUP5 AND ISZERO ISZERO PUSH2 0x4A40 JUMPI PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH4 0xFFFFFFFF AND SWAP4 POP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE DUP1 PUSH2 0x4A5E DUP4 PUSH4 0xFFFFFFFF DUP1 DUP11 AND SWAP1 PUSH2 0x38DA AND JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x4A76 DUP5 PUSH4 0xFFFFFFFF DUP1 DUP10 AND SWAP1 PUSH2 0x38DA AND JUMP JUMPDEST SWAP1 MSTORE SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH4 0xFFFFFFFF AND GT DUP1 ISZERO PUSH2 0x4AA2 JUMPI POP PUSH3 0xF4240 PUSH4 0xFFFFFFFF DUP3 AND GT ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x154A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F574549474854000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x4B00 PUSH2 0x529D JUMP JUMPDEST PUSH2 0x4B08 PUSH2 0x529D JUMP JUMPDEST DUP3 DUP5 LT PUSH2 0x4B20 JUMPI PUSH2 0x4B19 DUP5 DUP5 PUSH2 0x5081 JUMP JUMPDEST SWAP2 POP PUSH2 0x3957 JUMP JUMPDEST PUSH2 0x4B2A DUP4 DUP6 PUSH2 0x5081 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x20 DUP1 DUP4 ADD MLOAD DUP3 MSTORE DUP3 MLOAD SWAP1 DUP3 ADD MSTORE SWAP3 POP SWAP1 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x0 SWAP1 PUSH2 0x2AC5 SWAP1 PUSH3 0xF4240 SWAP1 PUSH2 0x16C3 SWAP1 DUP6 SWAP1 PUSH9 0x10000000000000000 SWAP1 DIV PUSH4 0xFFFFFFFF SWAP1 DUP2 AND SWAP1 PUSH2 0x38DA AND JUMP JUMPDEST PUSH1 0xB SLOAD PUSH1 0x0 SWAP1 DUP2 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x4BEB JUMPI PUSH1 0xA SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD PUSH1 0xB SLOAD SWAP1 SWAP5 AND DUP4 MSTORE SWAP1 SWAP2 KECCAK256 SLOAD DUP7 MLOAD SWAP2 DUP8 ADD MLOAD PUSH1 0x16 SLOAD PUSH2 0x4BE4 SWAP5 SWAP4 PUSH4 0xFFFFFFFF DUP1 DUP14 AND SWAP4 SWAP1 DUP13 AND SWAP3 PUSH2 0x513E JUMP JUMPDEST SWAP1 POP PUSH2 0x4C3A JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD PUSH1 0xB SLOAD SWAP1 SWAP5 AND DUP4 MSTORE SWAP1 SWAP2 KECCAK256 SLOAD DUP7 MLOAD SWAP2 DUP8 ADD MLOAD PUSH1 0x16 SLOAD PUSH2 0x4C37 SWAP5 SWAP4 PUSH4 0xFFFFFFFF DUP1 DUP13 AND SWAP4 SWAP1 DUP14 AND SWAP3 PUSH2 0x513E JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH2 0x4C4B PUSH3 0xF4240 PUSH2 0x16C3 DUP6 DUP5 PUSH2 0x38DA JUMP JUMPDEST SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x4C63 PUSH2 0x529D JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x4C71 PUSH2 0x51AA JUMP JUMPDEST SWAP6 POP SWAP6 POP PUSH2 0x4C84 DUP12 DUP12 PUSH1 0x0 DUP1 DUP10 DUP15 PUSH2 0x44AA JUMP JUMPDEST SWAP2 SWAP6 POP SWAP4 POP SWAP2 POP DUP4 ISZERO ISZERO PUSH2 0x4CE2 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5A45524F5F5441524745545F414D4F554E5400000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x4CEB DUP11 PUSH2 0x2AFF JUMP JUMPDEST SWAP1 POP DUP1 DUP5 LT PUSH2 0x4D44 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5441524745545F414D4F554E545F544F4F5F48494748000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x52F4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ ISZERO PUSH2 0x4DBF JUMPI CALLVALUE DUP10 EQ PUSH2 0x4DBA JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4554485F414D4F554E545F4D49534D41544348000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x4EC1 JUMP JUMPDEST CALLVALUE ISZERO DUP1 ISZERO PUSH2 0x4E6B JUMPI POP DUP9 PUSH2 0x4E68 PUSH2 0x4DD5 DUP14 PUSH2 0x2AFF JUMP JUMPDEST DUP14 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x4E30 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x4E44 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x4E5A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x3B7B AND JUMP JUMPDEST LT ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x4EC1 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F414D4F554E540000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x4ECA DUP12 PUSH2 0x3DC0 JUMP JUMPDEST PUSH2 0x4EDA DUP2 DUP6 PUSH4 0xFFFFFFFF PUSH2 0x3B7B AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE PUSH1 0xC SWAP1 MSTORE KECCAK256 SLOAD PUSH2 0x4F0F SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0x395E AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE DUP6 ISZERO PUSH2 0x4F5A JUMPI PUSH1 0xA SLOAD PUSH1 0xB SLOAD PUSH2 0x4F4D SWAP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 DUP2 AND SWAP2 AND PUSH1 0x0 DUP1 PUSH2 0x49BB JUMP JUMPDEST DUP1 MLOAD PUSH1 0x12 SSTORE PUSH1 0x20 ADD MLOAD PUSH1 0x13 SSTORE JUMPDEST POP SWAP2 SWAP10 SWAP2 SWAP9 POP SWAP1 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0x8000000000000000000000000000000000000000000000000000000000000000 DUP2 LT PUSH2 0x4F94 JUMPI INVALID JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP5 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 SWAP1 MSTORE DUP1 DUP3 ADD DUP4 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP8 AND SWAP3 DUP9 DUP3 AND SWAP3 SWAP2 DUP11 AND SWAP2 PUSH32 0x276856B36CBC45526A0BA64F44611557A2A8B68662C5388E9FE6D72E86E1C8CB SWAP2 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG4 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x4FFF DUP7 DUP7 DUP7 DUP7 PUSH2 0x3D23 JUMP JUMPDEST PUSH2 0x5008 DUP6 PUSH2 0x2033 JUMP JUMPDEST SWAP2 POP DUP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x18160DDD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x5048 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x505C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x5072 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 POP PUSH2 0x2227 DUP3 DUP3 DUP8 PUSH2 0x3CC3 JUMP JUMPDEST PUSH2 0x5089 PUSH2 0x529D JUMP JUMPDEST PUSH20 0x14484BFEEBC29F863424B06F3529A051A31BE599 DUP3 GT ISZERO PUSH2 0x50DB JUMPI PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH13 0xC9F2C9CD04674EDEA40000000 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 DUP6 DIV DUP5 DUP2 ISZERO ISZERO PUSH2 0x50D1 JUMPI INVALID JUMPDEST DIV SWAP1 MSTORE SWAP1 POP PUSH2 0x2AC5 JUMP JUMPDEST PUSH13 0xC9F2C9CD04674EDEA40000000 DUP4 GT ISZERO PUSH2 0x5128 JUMPI PUSH1 0x40 DUP1 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH13 0xC9F2C9CD04674EDEA40000000 DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH13 0xC9F2C9CD04674EDEA40000000 DUP6 MUL DUP2 ISZERO ISZERO PUSH2 0x50D1 JUMPI INVALID JUMPDEST POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 PUSH2 0x5156 DUP8 PUSH2 0x4358 DUP13 DUP10 PUSH4 0xFFFFFFFF PUSH2 0x38DA AND JUMP JUMPDEST SWAP2 POP PUSH2 0x516C DUP9 PUSH2 0x4358 DUP12 DUP9 PUSH4 0xFFFFFFFF PUSH2 0x38DA AND JUMP JUMPDEST SWAP1 POP DUP2 DUP2 GT ISZERO PUSH2 0x5198 JUMPI PUSH2 0x5191 DUP2 PUSH2 0x16C3 PUSH1 0x14 PUSH2 0x4358 DUP7 DUP5 SUB DUP10 PUSH4 0xFFFFFFFF PUSH2 0x38DA AND JUMP JUMPDEST SWAP3 POP PUSH2 0x519D JUMP JUMPDEST PUSH1 0x0 SWAP3 POP JUMPDEST POP POP SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x51B4 PUSH2 0x529D JUMP JUMPDEST PUSH1 0x0 PUSH2 0x51BE PUSH2 0x529D JUMP JUMPDEST PUSH2 0x51C6 PUSH2 0x529D JUMP JUMPDEST PUSH2 0x51CE PUSH2 0x37C4 JUMP JUMPDEST SWAP3 POP DUP3 PUSH1 0x11 SLOAD EQ ISZERO PUSH2 0x51FC JUMPI PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0xF SLOAD DUP2 MSTORE PUSH1 0x10 SLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 SWAP6 POP SWAP4 POP PUSH2 0x315F JUMP JUMPDEST PUSH2 0x5204 PUSH2 0x413C JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0xF SLOAD DUP1 DUP3 MSTORE PUSH1 0x10 SLOAD PUSH1 0x20 DUP4 ADD MSTORE DUP3 MLOAD SWAP3 SWAP5 POP SWAP1 SWAP3 POP EQ DUP1 ISZERO PUSH2 0x5238 JUMPI POP DUP1 PUSH1 0x20 ADD MLOAD DUP3 PUSH1 0x20 ADD MLOAD EQ JUMPDEST ISZERO PUSH2 0x5249 JUMPI PUSH1 0x0 DUP3 SWAP5 POP SWAP5 POP PUSH2 0x315F JUMP JUMPDEST DUP2 MLOAD PUSH1 0xF SSTORE PUSH1 0x20 DUP3 ADD MLOAD PUSH1 0x10 SSTORE PUSH1 0x11 DUP4 SWAP1 SSTORE PUSH2 0x5263 PUSH2 0x37C8 JUMP JUMPDEST POP PUSH1 0x1 SWAP5 SWAP1 SWAP4 POP SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xA0 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE SWAP2 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x60 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 SWAP1 PUSH1 0x20 DUP3 MUL DUP1 CODESIZE DUP4 CODECOPY POP SWAP2 SWAP3 SWAP2 POP POP JUMP STOP MSTORE8 PUSH16 0x7672796E53776170436F6E7665727465 PUSH19 0x55706772616465720000000000000000000000 STOP STOP STOP STOP STOP STOP 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee GASLIMIT MSTORE MSTORE 0x5f COINBASE NUMBER NUMBER GASLIMIT MSTORE8 MSTORE8 0x5f DIFFICULTY GASLIMIT 0x4e 0x49 GASLIMIT DIFFICULTY STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP GASLIMIT MSTORE MSTORE 0x5f 0x49 0x4e JUMP COINBASE 0x4c 0x49 DIFFICULTY 0x5f MSTORE GASLIMIT MSTORE8 GASLIMIT MSTORE JUMP GASLIMIT 0x5f NUMBER 0x4f SSTORE 0x4e SLOAD STOP STOP STOP STOP STOP STOP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 0xd6 0xce 0xae 0xf 0xa8 DUP15 OR PUSH16 0xCEC4250A8A72385CF1AE86E302A34151 0x47 0xc 0xa7 SWAP10 PUSH26 0x55CCC20029A165627A7A72305820829C55F8C1D3C151DAFC68FA LOG4 BALANCE SWAP8 ADD 0xeb SELFDESTRUCT LOG1 0x4c DUP16 0xd5 REVERT DUP1 0x48 0xd1 SWAP9 PUSH28 0x986DB5D4002900000000000000000000000000000000000000000000 ", - "sourceMap": "219:1042:28:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;913:345;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;913:345:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;423:81;;8:9:-1;5:2;;;30:1;27;20:12;5:2;423:81:28;;;;;;;;;;;;;;;;;;;;;;;913:345;1035:10;1058:23;1134:7;1144:9;1155:17;1084:89;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1084:89:28;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;1184:39:28;;;;;;1212:10;1184:39;;;;;;1058:115;;-1:-1:-1;1184:27:28;;;;;;:39;;;;;-1:-1:-1;;1184:39:28;;;;;;;;-1:-1:-1;1184:27:28;:39;;;5:2:-1;;;;30:1;27;20:12;5:2;1184:39:28;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;1241:9:28;;913:345;-1:-1:-1;;;;;;;913:345:28:o;423:81::-;495:1;423:81;:::o;219:1042::-;;;;;;;;;;:::o" - }, - "methodIdentifiers": { - "converterType()": "3e8ff43f", - "createConverter(address,address,uint32)": "11413958" - } - }, - "userdoc": { - "methods": {} - } - } - }, - "solidity/contracts/converter/types/liquidity-pool-v2/PoolTokensContainer.sol": { - "PoolTokensContainer": { - "abi": [ - { - "constant": true, - "inputs": [], - "name": "name", - "outputs": [ - { - "name": "", - "type": "string" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "decimals", - "outputs": [ - { - "name": "", - "type": "uint8" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_token", - "type": "address" - }, - { - "name": "_to", - "type": "address" - }, - { - "name": "_amount", - "type": "uint256" - } - ], - "name": "withdrawTokens", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "poolTokens", - "outputs": [ - { - "name": "", - "type": "address[]" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "acceptOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "owner", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "symbol", - "outputs": [ - { - "name": "", - "type": "string" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "createToken", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_token", - "type": "address" - }, - { - "name": "_to", - "type": "address" - }, - { - "name": "_amount", - "type": "uint256" - } - ], - "name": "mint", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "newOwner", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_token", - "type": "address" - }, - { - "name": "_from", - "type": "address" - }, - { - "name": "_amount", - "type": "uint256" - } - ], - "name": "burn", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "name": "_name", - "type": "string" - }, - { - "name": "_symbol", - "type": "string" - }, - { - "name": "_decimals", - "type": "uint8" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "_prevOwner", - "type": "address" - }, - { - "indexed": true, - "name": "_newOwner", - "type": "address" - } - ], - "name": "OwnerUpdate", - "type": "event" - } - ], - "devdoc": { - "methods": { - "acceptOwnership()": { - "details": "used by a new owner to accept an ownership transfer" - }, - "burn(address,address,uint256)": { - "details": "removes tokens from the given account and decreases the pool token supply\r can only be called by the contract owner\r ", - "params": { - "_amount": "amount to burn\r", - "_from": "account to remove the tokens from\r", - "_token": "pool token address\r" - } - }, - "createToken()": { - "details": "creates a new pool token and adds it to the list\r ", - "return": "new pool token address\r" - }, - "mint(address,address,uint256)": { - "details": "increases the pool token supply and sends the new tokens to the given account\r can only be called by the contract owner\r ", - "params": { - "_amount": "amount to mint\r", - "_to": "account to receive the newly minted tokens\r", - "_token": "pool token address\r" - } - }, - "poolTokens()": { - "details": "returns the list of pool tokens\r ", - "return": "list of pool tokens\r" - }, - "transferOwnership(address)": { - "details": "allows transferring the contract ownership the new owner still needs to accept the transfer can only be called by the contract owner", - "params": { - "_newOwner": "new contract owner" - } - }, - "withdrawTokens(address,address,uint256)": { - "details": "withdraws tokens held by the contract and sends them to an account can only be called by the owner", - "params": { - "_amount": "amount to withdraw", - "_to": "account to receive the new amount", - "_token": "ERC20 token contract address" - } - } - } - }, - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "60806040523480156200001157600080fd5b506040516200224038038062002240833981016040908152815160208301519183015160008054600160a060020a03191633178155918401805190949390930192909110620000c157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f4552525f494e56414c49445f4e414d4500000000000000000000000000000000604482015290519081900360640190fd5b81516000106200013257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f4552525f494e56414c49445f53594d424f4c0000000000000000000000000000604482015290519081900360640190fd5b8251620001479060029060208601906200017b565b5081516200015d9060039060208501906200017b565b506004805460ff191660ff9290921691909117905550620002209050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620001be57805160ff1916838001178555620001ee565b82800160010185558215620001ee579182015b82811115620001ee578251825591602001919060010190620001d1565b50620001fc92915062000200565b5090565b6200021d91905b80821115620001fc576000815560010162000207565b90565b61201080620002306000396000f300608060405260043610620000ad5763ffffffff60e060020a60003504166306fdde038114620000b2578063313ce56714620001425780635e35359e14620001705780636d3e313e146200019f57806379ba509714620002095780638da5cb5b146200022157806395d89b4114620002555780639cbf9e36146200026d578063c6c3bbe61462000285578063d4ee1d9014620002b2578063f2fde38b14620002ca578063f6b911bc14620002ee575b600080fd5b348015620000bf57600080fd5b50620000ca6200031b565b6040805160208082528351818301528351919283929083019185019080838360005b8381101562000106578181015183820152602001620000ec565b50505050905090810190601f168015620001345780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156200014f57600080fd5b506200015a620003aa565b6040805160ff9092168252519081900360200190f35b3480156200017d57600080fd5b506200019d600160a060020a0360043581169060243516604435620003b3565b005b348015620001ac57600080fd5b50620001b7620003f6565b60408051602080825283518183015283519192839290830191858101910280838360005b83811015620001f5578181015183820152602001620001db565b505050509050019250505060405180910390f35b3480156200021657600080fd5b506200019d6200045a565b3480156200022e57600080fd5b50620002396200052e565b60408051600160a060020a039092168252519081900360200190f35b3480156200026257600080fd5b50620000ca6200053d565b3480156200027a57600080fd5b50620002396200059b565b3480156200029257600080fd5b506200019d600160a060020a036004358116906024351660443562000882565b348015620002bf57600080fd5b50620002396200090e565b348015620002d757600080fd5b506200019d600160a060020a03600435166200091d565b348015620002fb57600080fd5b506200019d600160a060020a0360043581169060243516604435620009bd565b6002805460408051602060018416156101000260001901909316849004601f81018490048402820184019092528181529291830182828015620003a25780601f106200037657610100808354040283529160200191620003a2565b820191906000526020600020905b8154815290600101906020018083116200038457829003601f168201915b505050505081565b60045460ff1681565b620003bd62000a2b565b82620003c98162000a90565b82620003d58162000a90565b83620003e18162000af4565b620003ee86868662000b56565b505050505050565b606060058054806020026020016040519081016040528092919081815260200182805480156200045057602002820191906000526020600020905b8154600160a060020a0316815260019091019060200180831162000431575b5050505050905090565b600154600160a060020a03163314620004bd576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b60015460008054604051600160a060020a0393841693909116917f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91a3600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b600054600160a060020a031681565b6003805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015620003a25780601f106200037657610100808354040283529160200191620003a2565b60006060806000620005ac62000a2b565b600580541062000606576040805160e560020a62461bcd02815260206004820152601560248201527f4552525f4d41585f4c494d49545f524541434845440000000000000000000000604482015290519081900360640190fd5b60028054604080516020601f60001961010060018716150201909416859004938401819004810282018101909252828152620006a89390929091830182828015620006955780601f10620006695761010080835404028352916020019162000695565b820191906000526020600020905b8154815290600101906020018083116200067757829003601f168201915b5050600554600101925062000c12915050565b6003805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529396506200070e939291830182828015620006955780601f10620006695761010080835404028352916020019162000695565b6004549092508390839060ff166200072562000d8c565b60ff82166040820152606080825284519082015283518190602080830191608084019188019080838360005b838110156200076b57818101518382015260200162000751565b50505050905090810190601f168015620007995780820380516001836020036101000a031916815260200191505b50838103825285518152855160209182019187019080838360005b83811015620007ce578181015183820152602001620007b4565b50505050905090810190601f168015620007fc5780820380516001836020036101000a031916815260200191505b5095505050505050604051809103906000f08015801562000821573d6000803e3d6000fd5b50600580546001810182556000919091527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038316179055949350505050565b6200088c62000a2b565b82600160a060020a031663867904b483836040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050600060405180830381600087803b158015620008f057600080fd5b505af115801562000905573d6000803e3d6000fd5b50505050505050565b600154600160a060020a031681565b6200092762000a2b565b600054600160a060020a03828116911614156200098e576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f53414d455f4f574e4552000000000000000000000000000000000000604482015290519081900360640190fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b620009c762000a2b565b82600160a060020a031663a24835d183836040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050600060405180830381600087803b158015620008f057600080fd5b600054600160a060020a0316331462000a8e576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b565b600160a060020a038116151562000af1576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b50565b600160a060020a03811630141562000af1576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f414444524553535f49535f53454c4600000000000000000000000000604482015290519081900360640190fd5b604080517f7472616e7366657228616464726573732c75696e74323536290000000000000081528151908190036019018120600160a060020a038516602483015260448083018590528351808403909101815260649092019092526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009093169290921790915262000c0d90849062000cfa565b505050565b606082827f30000000000000000000000000000000000000000000000000000000000000007f01000000000000000000000000000000000000000000000000000000000000009004016040516020018083805190602001908083835b6020831062000c8f5780518252601f19909201916020918201910162000c6e565b6001836020036101000a0380198251168184511680821785525050505050509050018260ff1660ff167f010000000000000000000000000000000000000000000000000000000000000002815260010192505050604051602081830303815290604052905092915050565b62000d0462000d9d565b602060405190810160405280600181525090506020818351602085016000875af180151562000d3257600080fd5b508051151562000c0d576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f5452414e534645525f4641494c454400000000000000000000000000604482015290519081900360640190fd5b6040516112288062000dbd83390190565b6020604051908101604052806001906020820280388339509192915050560060806040526008805460ff191660011790553480156200001e57600080fd5b506040516200122838038062001228833981016040908152815160208301519183015160008054600160a060020a0319163317815591840180519094939093019290918491849184918110620000d557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f4552525f494e56414c49445f4e414d4500000000000000000000000000000000604482015290519081900360640190fd5b82516000106200014657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f4552525f494e56414c49445f53594d424f4c0000000000000000000000000000604482015290519081900360640190fd5b83516200015b906002906020870190620001a8565b50825162000171906003906020860190620001a8565b506004805460ff191660ff9390931692909217909155600581905533600090815260066020526040902055506200024d9350505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620001eb57805160ff19168380011785556200021b565b828001600101855582156200021b579182015b828111156200021b578251825591602001919060010190620001fe565b50620002299291506200022d565b5090565b6200024a91905b8082111562000229576000815560010162000234565b90565b610fcb806200025d6000396000f3006080604052600436106101065763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde03811461010b578063095ea7b3146101955780631608f18f146101cd57806318160ddd146101e957806323b872dd14610210578063313ce5671461023a57806354fd4d50146102655780635e35359e1461029157806370a08231146102bb57806379ba5097146102dc578063867904b4146102f15780638da5cb5b1461031557806395d89b4114610346578063a24835d11461035b578063a9059cbb1461037f578063bef97c87146103a3578063d4ee1d90146103b8578063dd62ed3e146103cd578063f2fde38b146103f4575b600080fd5b34801561011757600080fd5b50610120610415565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561015a578181015183820152602001610142565b50505050905090810190601f1680156101875780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101a157600080fd5b506101b9600160a060020a03600435166024356104a0565b604080519115158252519081900360200190f35b3480156101d957600080fd5b506101e76004351515610598565b005b3480156101f557600080fd5b506101fe6105b2565b60408051918252519081900360200190f35b34801561021c57600080fd5b506101b9600160a060020a03600435811690602435166044356105b8565b34801561024657600080fd5b5061024f6105df565b6040805160ff9092168252519081900360200190f35b34801561027157600080fd5b5061027a6105e8565b6040805161ffff9092168252519081900360200190f35b34801561029d57600080fd5b506101e7600160a060020a03600435811690602435166044356105ed565b3480156102c757600080fd5b506101fe600160a060020a0360043516610626565b3480156102e857600080fd5b506101e7610638565b3480156102fd57600080fd5b506101e7600160a060020a036004351660243561070b565b34801561032157600080fd5b5061032a6107ed565b60408051600160a060020a039092168252519081900360200190f35b34801561035257600080fd5b506101206107fc565b34801561036757600080fd5b506101e7600160a060020a0360043516602435610857565b34801561038b57600080fd5b506101b9600160a060020a036004351660243561091d565b3480156103af57600080fd5b506101b9610942565b3480156103c457600080fd5b5061032a61094b565b3480156103d957600080fd5b506101fe600160a060020a036004358116906024351661095a565b34801561040057600080fd5b506101e7600160a060020a0360043516610977565b6002805460408051602060018416156101000260001901909316849004601f810184900484028201840190925281815292918301828280156104985780601f1061046d57610100808354040283529160200191610498565b820191906000526020600020905b81548152906001019060200180831161047b57829003601f168201915b505050505081565b6000826104ac81610a14565b8215806104da5750336000908152600760209081526040808320600160a060020a0388168452909152902054155b1515610530576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f494e56414c49445f414d4f554e540000000000000000000000000000604482015290519081900360640190fd5b336000818152600760209081526040808320600160a060020a03891680855290835292819020879055805187815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060019392505050565b6105a0610a77565b6008805460ff19169115919091179055565b60055481565b60006105c2610adb565b6105cd848484610b37565b15156105d557fe5b5060019392505050565b60045460ff1681565b600481565b6105f5610a77565b826105ff81610a14565b8261060981610a14565b8361061381610c48565b61061e868686610ca9565b505050505050565b60066020526000908152604090205481565b600154600160a060020a0316331461069a576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b60015460008054604051600160a060020a0393841693909116917f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91a3600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b610713610a77565b8161071d81610a14565b8261072781610c48565b60055461073a908463ffffffff610d6316565b600555600160a060020a038416600090815260066020526040902054610766908463ffffffff610d6316565b600160a060020a03851660009081526006602090815260409182902092909255805185815290517f9386c90217c323f58030f9dadcbc938f807a940f4ff41cd4cead9562f5da7dc3929181900390910190a1604080518481529051600160a060020a03861691600091600080516020610f808339815191529181900360200190a350505050565b600054600160a060020a031681565b6003805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156104985780601f1061046d57610100808354040283529160200191610498565b61085f610a77565b600160a060020a038216600090815260066020526040902054610888908263ffffffff610dc716565b600160a060020a0383166000908152600660205260409020556005546108b4908263ffffffff610dc716565b600555604080518281529051600091600160a060020a03851691600080516020610f808339815191529181900360200190a36040805182815290517f9a1b418bc061a5d80270261562e6986a35d995f8051145f277be16103abd34539181900360200190a15050565b6000610927610adb565b6109318383610e27565b151561093957fe5b50600192915050565b60085460ff1681565b600154600160a060020a031681565b600760209081526000928352604080842090915290825290205481565b61097f610a77565b600054600160a060020a03828116911614156109e5576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f53414d455f4f574e4552000000000000000000000000000000000000604482015290519081900360640190fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600160a060020a0381161515610a74576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b50565b600054600160a060020a03163314610ad9576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b565b60085460ff161515610ad9576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f5452414e53464552535f44495341424c454400000000000000000000604482015290519081900360640190fd5b600083610b4381610a14565b83610b4d81610a14565b600160a060020a0386166000908152600760209081526040808320338452909152902054610b81908563ffffffff610dc716565b600160a060020a038716600081815260076020908152604080832033845282528083209490945591815260069091522054610bc2908563ffffffff610dc716565b600160a060020a038088166000908152600660205260408082209390935590871681522054610bf7908563ffffffff610d6316565b600160a060020a0380871660008181526006602090815260409182902094909455805188815290519193928a1692600080516020610f8083398151915292918290030190a350600195945050505050565b600160a060020a038116301415610a74576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f414444524553535f49535f53454c4600000000000000000000000000604482015290519081900360640190fd5b604080517f7472616e7366657228616464726573732c75696e74323536290000000000000081528151908190036019018120600160a060020a038516602483015260448083018590528351808403909101815260649092019092526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152610d5e908490610ed2565b505050565b600082820183811015610dc0576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b9392505050565b600081831015610e21576040805160e560020a62461bcd02815260206004820152600d60248201527f4552525f554e444552464c4f5700000000000000000000000000000000000000604482015290519081900360640190fd5b50900390565b600082610e3381610a14565b33600090815260066020526040902054610e53908463ffffffff610dc716565b3360009081526006602052604080822092909255600160a060020a03861681522054610e85908463ffffffff610d6316565b600160a060020a038516600081815260066020908152604091829020939093558051868152905191923392600080516020610f808339815191529281900390910190a35060019392505050565b610eda610f60565b602060405190810160405280600181525090506020818351602085016000875af1801515610f0757600080fd5b5080511515610d5e576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f5452414e534645525f4641494c454400000000000000000000000000604482015290519081900360640190fd5b60206040519081016040528060019060208202803883395091929150505600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a7230582031b56aebc8336b547b3e1346f50c2f44f70def554ed4cba4c81bcf2e092d047f0029a165627a7a72305820e0ee560589eda5987d8f172ea60698bfbffc21529ee8046ab37c5e3348e88bcd0029", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x2240 CODESIZE SUB DUP1 PUSH3 0x2240 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 SWAP1 DUP2 MSTORE DUP2 MLOAD PUSH1 0x20 DUP4 ADD MLOAD SWAP2 DUP4 ADD MLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND CALLER OR DUP2 SSTORE SWAP2 DUP5 ADD DUP1 MLOAD SWAP1 SWAP5 SWAP4 SWAP1 SWAP4 ADD SWAP3 SWAP1 SWAP2 LT PUSH3 0xC1 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4E414D4500000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x0 LT PUSH3 0x132 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F53594D424F4C0000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP3 MLOAD PUSH3 0x147 SWAP1 PUSH1 0x2 SWAP1 PUSH1 0x20 DUP7 ADD SWAP1 PUSH3 0x17B JUMP JUMPDEST POP DUP2 MLOAD PUSH3 0x15D SWAP1 PUSH1 0x3 SWAP1 PUSH1 0x20 DUP6 ADD SWAP1 PUSH3 0x17B JUMP JUMPDEST POP PUSH1 0x4 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0xFF SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE POP PUSH3 0x220 SWAP1 POP JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH1 0x1F LT PUSH3 0x1BE JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH3 0x1EE JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH3 0x1EE JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH3 0x1EE JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH3 0x1D1 JUMP JUMPDEST POP PUSH3 0x1FC SWAP3 SWAP2 POP PUSH3 0x200 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH3 0x21D SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH3 0x1FC JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH3 0x207 JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH2 0x2010 DUP1 PUSH3 0x230 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH3 0xAD JUMPI PUSH4 0xFFFFFFFF PUSH1 0xE0 PUSH1 0x2 EXP PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x6FDDE03 DUP2 EQ PUSH3 0xB2 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH3 0x142 JUMPI DUP1 PUSH4 0x5E35359E EQ PUSH3 0x170 JUMPI DUP1 PUSH4 0x6D3E313E EQ PUSH3 0x19F JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH3 0x209 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH3 0x221 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH3 0x255 JUMPI DUP1 PUSH4 0x9CBF9E36 EQ PUSH3 0x26D JUMPI DUP1 PUSH4 0xC6C3BBE6 EQ PUSH3 0x285 JUMPI DUP1 PUSH4 0xD4EE1D90 EQ PUSH3 0x2B2 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH3 0x2CA JUMPI DUP1 PUSH4 0xF6B911BC EQ PUSH3 0x2EE JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0xBF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0xCA PUSH3 0x31B JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP4 MLOAD DUP2 DUP4 ADD MSTORE DUP4 MLOAD SWAP2 SWAP3 DUP4 SWAP3 SWAP1 DUP4 ADD SWAP2 DUP6 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH3 0x106 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH3 0xEC JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH3 0x134 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0x14F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x15A PUSH3 0x3AA JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0x17D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x19D PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH3 0x3B3 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0x1AC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x1B7 PUSH3 0x3F6 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP4 MLOAD DUP2 DUP4 ADD MSTORE DUP4 MLOAD SWAP2 SWAP3 DUP4 SWAP3 SWAP1 DUP4 ADD SWAP2 DUP6 DUP2 ADD SWAP2 MUL DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH3 0x1F5 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH3 0x1DB JUMP JUMPDEST POP POP POP POP SWAP1 POP ADD SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0x216 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x19D PUSH3 0x45A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0x22E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x239 PUSH3 0x52E JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0x262 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0xCA PUSH3 0x53D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0x27A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x239 PUSH3 0x59B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0x292 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x19D PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH3 0x882 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0x2BF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x239 PUSH3 0x90E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0x2D7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x19D PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH3 0x91D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0x2FB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x19D PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH3 0x9BD JUMP JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x1 DUP5 AND ISZERO PUSH2 0x100 MUL PUSH1 0x0 NOT ADD SWAP1 SWAP4 AND DUP5 SWAP1 DIV PUSH1 0x1F DUP2 ADD DUP5 SWAP1 DIV DUP5 MUL DUP3 ADD DUP5 ADD SWAP1 SWAP3 MSTORE DUP2 DUP2 MSTORE SWAP3 SWAP2 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH3 0x3A2 JUMPI DUP1 PUSH1 0x1F LT PUSH3 0x376 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH3 0x3A2 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH3 0x384 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH3 0x3BD PUSH3 0xA2B JUMP JUMPDEST DUP3 PUSH3 0x3C9 DUP2 PUSH3 0xA90 JUMP JUMPDEST DUP3 PUSH3 0x3D5 DUP2 PUSH3 0xA90 JUMP JUMPDEST DUP4 PUSH3 0x3E1 DUP2 PUSH3 0xAF4 JUMP JUMPDEST PUSH3 0x3EE DUP7 DUP7 DUP7 PUSH3 0xB56 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x5 DUP1 SLOAD DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD DUP1 ISZERO PUSH3 0x450 JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH3 0x431 JUMPI JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH3 0x4BD JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND SWAP4 SWAP1 SWAP2 AND SWAP2 PUSH32 0x343765429AEA5A34B3FF6A3785A98A5ABB2597ACA87BFBB58632C173D585373A SWAP2 LOG3 PUSH1 0x1 DUP1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND OR SWAP1 SWAP2 SSTORE AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x2 PUSH1 0x1 DUP6 AND ISZERO PUSH2 0x100 MUL PUSH1 0x0 NOT ADD SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 DIV PUSH1 0x1F DUP2 ADD DUP5 SWAP1 DIV DUP5 MUL DUP3 ADD DUP5 ADD SWAP1 SWAP3 MSTORE DUP2 DUP2 MSTORE SWAP3 SWAP2 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH3 0x3A2 JUMPI DUP1 PUSH1 0x1F LT PUSH3 0x376 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH3 0x3A2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP1 PUSH1 0x0 PUSH3 0x5AC PUSH3 0xA2B JUMP JUMPDEST PUSH1 0x5 DUP1 SLOAD LT PUSH3 0x606 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4D41585F4C494D49545F524541434845440000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x1F PUSH1 0x0 NOT PUSH2 0x100 PUSH1 0x1 DUP8 AND ISZERO MUL ADD SWAP1 SWAP5 AND DUP6 SWAP1 DIV SWAP4 DUP5 ADD DUP2 SWAP1 DIV DUP2 MUL DUP3 ADD DUP2 ADD SWAP1 SWAP3 MSTORE DUP3 DUP2 MSTORE PUSH3 0x6A8 SWAP4 SWAP1 SWAP3 SWAP1 SWAP2 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH3 0x695 JUMPI DUP1 PUSH1 0x1F LT PUSH3 0x669 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH3 0x695 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH3 0x677 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP PUSH1 0x5 SLOAD PUSH1 0x1 ADD SWAP3 POP PUSH3 0xC12 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x2 PUSH1 0x1 DUP6 AND ISZERO PUSH2 0x100 MUL PUSH1 0x0 NOT ADD SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 DIV PUSH1 0x1F DUP2 ADD DUP5 SWAP1 DIV DUP5 MUL DUP3 ADD DUP5 ADD SWAP1 SWAP3 MSTORE DUP2 DUP2 MSTORE SWAP4 SWAP7 POP PUSH3 0x70E SWAP4 SWAP3 SWAP2 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH3 0x695 JUMPI DUP1 PUSH1 0x1F LT PUSH3 0x669 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH3 0x695 JUMP JUMPDEST PUSH1 0x4 SLOAD SWAP1 SWAP3 POP DUP4 SWAP1 DUP4 SWAP1 PUSH1 0xFF AND PUSH3 0x725 PUSH3 0xD8C JUMP JUMPDEST PUSH1 0xFF DUP3 AND PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP1 DUP3 MSTORE DUP5 MLOAD SWAP1 DUP3 ADD MSTORE DUP4 MLOAD DUP2 SWAP1 PUSH1 0x20 DUP1 DUP4 ADD SWAP2 PUSH1 0x80 DUP5 ADD SWAP2 DUP9 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH3 0x76B JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH3 0x751 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH3 0x799 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP DUP4 DUP2 SUB DUP3 MSTORE DUP6 MLOAD DUP2 MSTORE DUP6 MLOAD PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 DUP8 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH3 0x7CE JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH3 0x7B4 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH3 0x7FC JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP6 POP POP POP POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 PUSH1 0x0 CREATE DUP1 ISZERO DUP1 ISZERO PUSH3 0x821 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH1 0x5 DUP1 SLOAD PUSH1 0x1 DUP2 ADD DUP3 SSTORE PUSH1 0x0 SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0x36B6384B5ECA791C62761152D0C79BB0604C104A5FB6F4EB0703F3154BB3DB0 ADD DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 AND OR SWAP1 SSTORE SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH3 0x88C PUSH3 0xA2B JUMP JUMPDEST DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x867904B4 DUP4 DUP4 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH3 0x8F0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH3 0x905 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH3 0x927 PUSH3 0xA2B JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ ISZERO PUSH3 0x98E JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F4F574E4552000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH3 0x9C7 PUSH3 0xA2B JUMP JUMPDEST DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xA24835D1 DUP4 DUP4 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH3 0x8F0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH3 0xA8E JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH3 0xAF1 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ADDRESS EQ ISZERO PUSH3 0xAF1 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F414444524553535F49535F53454C4600000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x7472616E7366657228616464726573732C75696E743235362900000000000000 DUP2 MSTORE DUP2 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x19 ADD DUP2 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x64 SWAP1 SWAP3 ADD SWAP1 SWAP3 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE PUSH3 0xC0D SWAP1 DUP5 SWAP1 PUSH3 0xCFA JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP3 DUP3 PUSH32 0x3000000000000000000000000000000000000000000000000000000000000000 PUSH32 0x100000000000000000000000000000000000000000000000000000000000000 SWAP1 DIV ADD PUSH1 0x40 MLOAD PUSH1 0x20 ADD DUP1 DUP4 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH3 0xC8F JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH3 0xC6E JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD DUP3 PUSH1 0xFF AND PUSH1 0xFF AND PUSH32 0x100000000000000000000000000000000000000000000000000000000000000 MUL DUP2 MSTORE PUSH1 0x1 ADD SWAP3 POP POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH3 0xD04 PUSH3 0xD9D JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE POP SWAP1 POP PUSH1 0x20 DUP2 DUP4 MLOAD PUSH1 0x20 DUP6 ADD PUSH1 0x0 DUP8 GAS CALL DUP1 ISZERO ISZERO PUSH3 0xD32 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD ISZERO ISZERO PUSH3 0xC0D JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5452414E534645525F4641494C454400000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1228 DUP1 PUSH3 0xDBD DUP4 CODECOPY ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 SWAP1 PUSH1 0x20 DUP3 MUL DUP1 CODESIZE DUP4 CODECOPY POP SWAP2 SWAP3 SWAP2 POP POP JUMP STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x8 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE CALLVALUE DUP1 ISZERO PUSH3 0x1E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x1228 CODESIZE SUB DUP1 PUSH3 0x1228 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 SWAP1 DUP2 MSTORE DUP2 MLOAD PUSH1 0x20 DUP4 ADD MLOAD SWAP2 DUP4 ADD MLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND CALLER OR DUP2 SSTORE SWAP2 DUP5 ADD DUP1 MLOAD SWAP1 SWAP5 SWAP4 SWAP1 SWAP4 ADD SWAP3 SWAP1 SWAP2 DUP5 SWAP2 DUP5 SWAP2 DUP5 SWAP2 DUP2 LT PUSH3 0xD5 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4E414D4500000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP3 MLOAD PUSH1 0x0 LT PUSH3 0x146 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F53594D424F4C0000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP4 MLOAD PUSH3 0x15B SWAP1 PUSH1 0x2 SWAP1 PUSH1 0x20 DUP8 ADD SWAP1 PUSH3 0x1A8 JUMP JUMPDEST POP DUP3 MLOAD PUSH3 0x171 SWAP1 PUSH1 0x3 SWAP1 PUSH1 0x20 DUP7 ADD SWAP1 PUSH3 0x1A8 JUMP JUMPDEST POP PUSH1 0x4 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0xFF SWAP4 SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 SSTORE PUSH1 0x5 DUP2 SWAP1 SSTORE CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE POP PUSH3 0x24D SWAP4 POP POP POP POP JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH1 0x1F LT PUSH3 0x1EB JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH3 0x21B JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH3 0x21B JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH3 0x21B JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH3 0x1FE JUMP JUMPDEST POP PUSH3 0x229 SWAP3 SWAP2 POP PUSH3 0x22D JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH3 0x24A SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH3 0x229 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH3 0x234 JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH2 0xFCB DUP1 PUSH3 0x25D PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x106 JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x6FDDE03 DUP2 EQ PUSH2 0x10B JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x195 JUMPI DUP1 PUSH4 0x1608F18F EQ PUSH2 0x1CD JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x1E9 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x210 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x23A JUMPI DUP1 PUSH4 0x54FD4D50 EQ PUSH2 0x265 JUMPI DUP1 PUSH4 0x5E35359E EQ PUSH2 0x291 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x2BB JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x2DC JUMPI DUP1 PUSH4 0x867904B4 EQ PUSH2 0x2F1 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x315 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x346 JUMPI DUP1 PUSH4 0xA24835D1 EQ PUSH2 0x35B JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x37F JUMPI DUP1 PUSH4 0xBEF97C87 EQ PUSH2 0x3A3 JUMPI DUP1 PUSH4 0xD4EE1D90 EQ PUSH2 0x3B8 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x3CD JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x3F4 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x117 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x120 PUSH2 0x415 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP4 MLOAD DUP2 DUP4 ADD MSTORE DUP4 MLOAD SWAP2 SWAP3 DUP4 SWAP3 SWAP1 DUP4 ADD SWAP2 DUP6 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x15A JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x142 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x187 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1A1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B9 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x4A0 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1D9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH1 0x4 CALLDATALOAD ISZERO ISZERO PUSH2 0x598 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1FE PUSH2 0x5B2 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x21C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B9 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x5B8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x246 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x24F PUSH2 0x5DF JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x271 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x27A PUSH2 0x5E8 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0xFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x29D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x5ED JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2C7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1FE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x626 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2E8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH2 0x638 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2FD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x70B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x321 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x32A PUSH2 0x7ED JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x352 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x120 PUSH2 0x7FC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x367 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x857 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x38B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B9 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x91D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3AF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B9 PUSH2 0x942 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3C4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x32A PUSH2 0x94B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3D9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1FE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH2 0x95A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x400 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x977 JUMP JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x1 DUP5 AND ISZERO PUSH2 0x100 MUL PUSH1 0x0 NOT ADD SWAP1 SWAP4 AND DUP5 SWAP1 DIV PUSH1 0x1F DUP2 ADD DUP5 SWAP1 DIV DUP5 MUL DUP3 ADD DUP5 ADD SWAP1 SWAP3 MSTORE DUP2 DUP2 MSTORE SWAP3 SWAP2 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x498 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x46D JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x498 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x47B JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x4AC DUP2 PUSH2 0xA14 JUMP JUMPDEST DUP3 ISZERO DUP1 PUSH2 0x4DA JUMPI POP CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x530 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F414D4F554E540000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST CALLER PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP10 AND DUP1 DUP6 MSTORE SWAP1 DUP4 MSTORE SWAP3 DUP2 SWAP1 KECCAK256 DUP8 SWAP1 SSTORE DUP1 MLOAD DUP8 DUP2 MSTORE SWAP1 MLOAD SWAP3 SWAP4 SWAP3 PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP3 SWAP2 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x5A0 PUSH2 0xA77 JUMP JUMPDEST PUSH1 0x8 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP2 ISZERO SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x5 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5C2 PUSH2 0xADB JUMP JUMPDEST PUSH2 0x5CD DUP5 DUP5 DUP5 PUSH2 0xB37 JUMP JUMPDEST ISZERO ISZERO PUSH2 0x5D5 JUMPI INVALID JUMPDEST POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x4 DUP2 JUMP JUMPDEST PUSH2 0x5F5 PUSH2 0xA77 JUMP JUMPDEST DUP3 PUSH2 0x5FF DUP2 PUSH2 0xA14 JUMP JUMPDEST DUP3 PUSH2 0x609 DUP2 PUSH2 0xA14 JUMP JUMPDEST DUP4 PUSH2 0x613 DUP2 PUSH2 0xC48 JUMP JUMPDEST PUSH2 0x61E DUP7 DUP7 DUP7 PUSH2 0xCA9 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x69A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND SWAP4 SWAP1 SWAP2 AND SWAP2 PUSH32 0x343765429AEA5A34B3FF6A3785A98A5ABB2597ACA87BFBB58632C173D585373A SWAP2 LOG3 PUSH1 0x1 DUP1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND OR SWAP1 SWAP2 SSTORE AND SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x713 PUSH2 0xA77 JUMP JUMPDEST DUP2 PUSH2 0x71D DUP2 PUSH2 0xA14 JUMP JUMPDEST DUP3 PUSH2 0x727 DUP2 PUSH2 0xC48 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH2 0x73A SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0xD63 AND JUMP JUMPDEST PUSH1 0x5 SSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x766 SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0xD63 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SWAP3 SWAP1 SWAP3 SSTORE DUP1 MLOAD DUP6 DUP2 MSTORE SWAP1 MLOAD PUSH32 0x9386C90217C323F58030F9DADCBC938F807A940F4FF41CD4CEAD9562F5DA7DC3 SWAP3 SWAP2 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG1 PUSH1 0x40 DUP1 MLOAD DUP5 DUP2 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND SWAP2 PUSH1 0x0 SWAP2 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xF80 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP2 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 LOG3 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x2 PUSH1 0x1 DUP6 AND ISZERO PUSH2 0x100 MUL PUSH1 0x0 NOT ADD SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 DIV PUSH1 0x1F DUP2 ADD DUP5 SWAP1 DIV DUP5 MUL DUP3 ADD DUP5 ADD SWAP1 SWAP3 MSTORE DUP2 DUP2 MSTORE SWAP3 SWAP2 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x498 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x46D JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x498 JUMP JUMPDEST PUSH2 0x85F PUSH2 0xA77 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x888 SWAP1 DUP3 PUSH4 0xFFFFFFFF PUSH2 0xDC7 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE PUSH1 0x5 SLOAD PUSH2 0x8B4 SWAP1 DUP3 PUSH4 0xFFFFFFFF PUSH2 0xDC7 AND JUMP JUMPDEST PUSH1 0x5 SSTORE PUSH1 0x40 DUP1 MLOAD DUP3 DUP2 MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND SWAP2 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xF80 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP2 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 LOG3 PUSH1 0x40 DUP1 MLOAD DUP3 DUP2 MSTORE SWAP1 MLOAD PUSH32 0x9A1B418BC061A5D80270261562E6986A35D995F8051145F277BE16103ABD3453 SWAP2 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x927 PUSH2 0xADB JUMP JUMPDEST PUSH2 0x931 DUP4 DUP4 PUSH2 0xE27 JUMP JUMPDEST ISZERO ISZERO PUSH2 0x939 JUMPI INVALID JUMPDEST POP PUSH1 0x1 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x97F PUSH2 0xA77 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x9E5 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F4F574E4552000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0xA74 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0xAD9 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0xFF AND ISZERO ISZERO PUSH2 0xAD9 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5452414E53464552535F44495341424C454400000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP4 PUSH2 0xB43 DUP2 PUSH2 0xA14 JUMP JUMPDEST DUP4 PUSH2 0xB4D DUP2 PUSH2 0xA14 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH2 0xB81 SWAP1 DUP6 PUSH4 0xFFFFFFFF PUSH2 0xDC7 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE DUP3 MSTORE DUP1 DUP4 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE SWAP2 DUP2 MSTORE PUSH1 0x6 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD PUSH2 0xBC2 SWAP1 DUP6 PUSH4 0xFFFFFFFF PUSH2 0xDC7 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE SWAP1 DUP8 AND DUP2 MSTORE KECCAK256 SLOAD PUSH2 0xBF7 SWAP1 DUP6 PUSH4 0xFFFFFFFF PUSH2 0xD63 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP8 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE DUP1 MLOAD DUP9 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP4 SWAP3 DUP11 AND SWAP3 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xF80 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP3 SWAP2 DUP3 SWAP1 SUB ADD SWAP1 LOG3 POP PUSH1 0x1 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ADDRESS EQ ISZERO PUSH2 0xA74 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F414444524553535F49535F53454C4600000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x7472616E7366657228616464726573732C75696E743235362900000000000000 DUP2 MSTORE DUP2 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x19 ADD DUP2 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x64 SWAP1 SWAP3 ADD SWAP1 SWAP3 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE PUSH2 0xD5E SWAP1 DUP5 SWAP1 PUSH2 0xED2 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 ADD DUP4 DUP2 LT ISZERO PUSH2 0xDC0 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT ISZERO PUSH2 0xE21 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F554E444552464C4F5700000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP SWAP1 SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0xE33 DUP2 PUSH2 0xA14 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0xE53 SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0xDC7 AND JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP3 SWAP1 SWAP3 SSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND DUP2 MSTORE KECCAK256 SLOAD PUSH2 0xE85 SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0xD63 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE DUP1 MLOAD DUP7 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP3 CALLER SWAP3 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xF80 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0xEDA PUSH2 0xF60 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE POP SWAP1 POP PUSH1 0x20 DUP2 DUP4 MLOAD PUSH1 0x20 DUP6 ADD PUSH1 0x0 DUP8 GAS CALL DUP1 ISZERO ISZERO PUSH2 0xF07 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD ISZERO ISZERO PUSH2 0xD5E JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5452414E534645525F4641494C454400000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 SWAP1 PUSH1 0x20 DUP3 MUL DUP1 CODESIZE DUP4 CODECOPY POP SWAP2 SWAP3 SWAP2 POP POP JUMP STOP 0xdd CALLCODE MSTORE 0xad SHL 0xe2 0xc8 SWAP12 PUSH10 0xC2B068FC378DAA952BA7 CALL PUSH4 0xC4A11628 0xf5 GAS 0x4d 0xf5 0x23 0xb3 0xef LOG1 PUSH6 0x627A7A723058 KECCAK256 BALANCE 0xb5 PUSH11 0xEBC8336B547B3E1346F50C 0x2f DIFFICULTY 0xf7 0xd 0xef SSTORE 0x4e 0xd4 0xcb LOG4 0xc8 SHL 0xcf 0x2e MULMOD 0x2d DIV PUSH32 0x29A165627A7A72305820E0EE560589EDA5987D8F172EA60698BFBFFC21529E 0xe8 DIV PUSH11 0xB37C5E3348E88BCD002900 ", - "sourceMap": "540:3276:29:-;;;1330:315;8:9:-1;5:2;;;30:1;27;20:12;5:2;1330:315:29;;;;;;;;;;;;;;;;;;;;;;;;;;488:5:66;:18;;-1:-1:-1;;;;;;488:18:66;496:10;488:18;;;1330:315:29;;;1443:19;;1330:315;;;;;;;;;-1:-1:-1;1435:52:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1506:21;;1530:1;-1:-1:-1;1498:56:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1567:12;;;;:4;;:12;;;;;:::i;:::-;-1:-1:-1;1590:16:29;;;;:6;;:16;;;;;:::i;:::-;-1:-1:-1;1617:8:29;:20;;-1:-1:-1;;1617:20:29;;;;;;;;;;;;-1:-1:-1;540:3276:29;;-1:-1:-1;540:3276:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;540:3276:29;;;-1:-1:-1;540:3276:29;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;" - }, - "deployedBytecode": { - "linkReferences": {}, - "object": "608060405260043610620000ad5763ffffffff60e060020a60003504166306fdde038114620000b2578063313ce56714620001425780635e35359e14620001705780636d3e313e146200019f57806379ba509714620002095780638da5cb5b146200022157806395d89b4114620002555780639cbf9e36146200026d578063c6c3bbe61462000285578063d4ee1d9014620002b2578063f2fde38b14620002ca578063f6b911bc14620002ee575b600080fd5b348015620000bf57600080fd5b50620000ca6200031b565b6040805160208082528351818301528351919283929083019185019080838360005b8381101562000106578181015183820152602001620000ec565b50505050905090810190601f168015620001345780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156200014f57600080fd5b506200015a620003aa565b6040805160ff9092168252519081900360200190f35b3480156200017d57600080fd5b506200019d600160a060020a0360043581169060243516604435620003b3565b005b348015620001ac57600080fd5b50620001b7620003f6565b60408051602080825283518183015283519192839290830191858101910280838360005b83811015620001f5578181015183820152602001620001db565b505050509050019250505060405180910390f35b3480156200021657600080fd5b506200019d6200045a565b3480156200022e57600080fd5b50620002396200052e565b60408051600160a060020a039092168252519081900360200190f35b3480156200026257600080fd5b50620000ca6200053d565b3480156200027a57600080fd5b50620002396200059b565b3480156200029257600080fd5b506200019d600160a060020a036004358116906024351660443562000882565b348015620002bf57600080fd5b50620002396200090e565b348015620002d757600080fd5b506200019d600160a060020a03600435166200091d565b348015620002fb57600080fd5b506200019d600160a060020a0360043581169060243516604435620009bd565b6002805460408051602060018416156101000260001901909316849004601f81018490048402820184019092528181529291830182828015620003a25780601f106200037657610100808354040283529160200191620003a2565b820191906000526020600020905b8154815290600101906020018083116200038457829003601f168201915b505050505081565b60045460ff1681565b620003bd62000a2b565b82620003c98162000a90565b82620003d58162000a90565b83620003e18162000af4565b620003ee86868662000b56565b505050505050565b606060058054806020026020016040519081016040528092919081815260200182805480156200045057602002820191906000526020600020905b8154600160a060020a0316815260019091019060200180831162000431575b5050505050905090565b600154600160a060020a03163314620004bd576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b60015460008054604051600160a060020a0393841693909116917f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91a3600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b600054600160a060020a031681565b6003805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015620003a25780601f106200037657610100808354040283529160200191620003a2565b60006060806000620005ac62000a2b565b600580541062000606576040805160e560020a62461bcd02815260206004820152601560248201527f4552525f4d41585f4c494d49545f524541434845440000000000000000000000604482015290519081900360640190fd5b60028054604080516020601f60001961010060018716150201909416859004938401819004810282018101909252828152620006a89390929091830182828015620006955780601f10620006695761010080835404028352916020019162000695565b820191906000526020600020905b8154815290600101906020018083116200067757829003601f168201915b5050600554600101925062000c12915050565b6003805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529396506200070e939291830182828015620006955780601f10620006695761010080835404028352916020019162000695565b6004549092508390839060ff166200072562000d8c565b60ff82166040820152606080825284519082015283518190602080830191608084019188019080838360005b838110156200076b57818101518382015260200162000751565b50505050905090810190601f168015620007995780820380516001836020036101000a031916815260200191505b50838103825285518152855160209182019187019080838360005b83811015620007ce578181015183820152602001620007b4565b50505050905090810190601f168015620007fc5780820380516001836020036101000a031916815260200191505b5095505050505050604051809103906000f08015801562000821573d6000803e3d6000fd5b50600580546001810182556000919091527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038316179055949350505050565b6200088c62000a2b565b82600160a060020a031663867904b483836040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050600060405180830381600087803b158015620008f057600080fd5b505af115801562000905573d6000803e3d6000fd5b50505050505050565b600154600160a060020a031681565b6200092762000a2b565b600054600160a060020a03828116911614156200098e576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f53414d455f4f574e4552000000000000000000000000000000000000604482015290519081900360640190fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b620009c762000a2b565b82600160a060020a031663a24835d183836040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050600060405180830381600087803b158015620008f057600080fd5b600054600160a060020a0316331462000a8e576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b565b600160a060020a038116151562000af1576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b50565b600160a060020a03811630141562000af1576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f414444524553535f49535f53454c4600000000000000000000000000604482015290519081900360640190fd5b604080517f7472616e7366657228616464726573732c75696e74323536290000000000000081528151908190036019018120600160a060020a038516602483015260448083018590528351808403909101815260649092019092526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009093169290921790915262000c0d90849062000cfa565b505050565b606082827f30000000000000000000000000000000000000000000000000000000000000007f01000000000000000000000000000000000000000000000000000000000000009004016040516020018083805190602001908083835b6020831062000c8f5780518252601f19909201916020918201910162000c6e565b6001836020036101000a0380198251168184511680821785525050505050509050018260ff1660ff167f010000000000000000000000000000000000000000000000000000000000000002815260010192505050604051602081830303815290604052905092915050565b62000d0462000d9d565b602060405190810160405280600181525090506020818351602085016000875af180151562000d3257600080fd5b508051151562000c0d576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f5452414e534645525f4641494c454400000000000000000000000000604482015290519081900360640190fd5b6040516112288062000dbd83390190565b6020604051908101604052806001906020820280388339509192915050560060806040526008805460ff191660011790553480156200001e57600080fd5b506040516200122838038062001228833981016040908152815160208301519183015160008054600160a060020a0319163317815591840180519094939093019290918491849184918110620000d557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f4552525f494e56414c49445f4e414d4500000000000000000000000000000000604482015290519081900360640190fd5b82516000106200014657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f4552525f494e56414c49445f53594d424f4c0000000000000000000000000000604482015290519081900360640190fd5b83516200015b906002906020870190620001a8565b50825162000171906003906020860190620001a8565b506004805460ff191660ff9390931692909217909155600581905533600090815260066020526040902055506200024d9350505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620001eb57805160ff19168380011785556200021b565b828001600101855582156200021b579182015b828111156200021b578251825591602001919060010190620001fe565b50620002299291506200022d565b5090565b6200024a91905b8082111562000229576000815560010162000234565b90565b610fcb806200025d6000396000f3006080604052600436106101065763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde03811461010b578063095ea7b3146101955780631608f18f146101cd57806318160ddd146101e957806323b872dd14610210578063313ce5671461023a57806354fd4d50146102655780635e35359e1461029157806370a08231146102bb57806379ba5097146102dc578063867904b4146102f15780638da5cb5b1461031557806395d89b4114610346578063a24835d11461035b578063a9059cbb1461037f578063bef97c87146103a3578063d4ee1d90146103b8578063dd62ed3e146103cd578063f2fde38b146103f4575b600080fd5b34801561011757600080fd5b50610120610415565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561015a578181015183820152602001610142565b50505050905090810190601f1680156101875780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101a157600080fd5b506101b9600160a060020a03600435166024356104a0565b604080519115158252519081900360200190f35b3480156101d957600080fd5b506101e76004351515610598565b005b3480156101f557600080fd5b506101fe6105b2565b60408051918252519081900360200190f35b34801561021c57600080fd5b506101b9600160a060020a03600435811690602435166044356105b8565b34801561024657600080fd5b5061024f6105df565b6040805160ff9092168252519081900360200190f35b34801561027157600080fd5b5061027a6105e8565b6040805161ffff9092168252519081900360200190f35b34801561029d57600080fd5b506101e7600160a060020a03600435811690602435166044356105ed565b3480156102c757600080fd5b506101fe600160a060020a0360043516610626565b3480156102e857600080fd5b506101e7610638565b3480156102fd57600080fd5b506101e7600160a060020a036004351660243561070b565b34801561032157600080fd5b5061032a6107ed565b60408051600160a060020a039092168252519081900360200190f35b34801561035257600080fd5b506101206107fc565b34801561036757600080fd5b506101e7600160a060020a0360043516602435610857565b34801561038b57600080fd5b506101b9600160a060020a036004351660243561091d565b3480156103af57600080fd5b506101b9610942565b3480156103c457600080fd5b5061032a61094b565b3480156103d957600080fd5b506101fe600160a060020a036004358116906024351661095a565b34801561040057600080fd5b506101e7600160a060020a0360043516610977565b6002805460408051602060018416156101000260001901909316849004601f810184900484028201840190925281815292918301828280156104985780601f1061046d57610100808354040283529160200191610498565b820191906000526020600020905b81548152906001019060200180831161047b57829003601f168201915b505050505081565b6000826104ac81610a14565b8215806104da5750336000908152600760209081526040808320600160a060020a0388168452909152902054155b1515610530576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f494e56414c49445f414d4f554e540000000000000000000000000000604482015290519081900360640190fd5b336000818152600760209081526040808320600160a060020a03891680855290835292819020879055805187815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060019392505050565b6105a0610a77565b6008805460ff19169115919091179055565b60055481565b60006105c2610adb565b6105cd848484610b37565b15156105d557fe5b5060019392505050565b60045460ff1681565b600481565b6105f5610a77565b826105ff81610a14565b8261060981610a14565b8361061381610c48565b61061e868686610ca9565b505050505050565b60066020526000908152604090205481565b600154600160a060020a0316331461069a576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b60015460008054604051600160a060020a0393841693909116917f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91a3600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b610713610a77565b8161071d81610a14565b8261072781610c48565b60055461073a908463ffffffff610d6316565b600555600160a060020a038416600090815260066020526040902054610766908463ffffffff610d6316565b600160a060020a03851660009081526006602090815260409182902092909255805185815290517f9386c90217c323f58030f9dadcbc938f807a940f4ff41cd4cead9562f5da7dc3929181900390910190a1604080518481529051600160a060020a03861691600091600080516020610f808339815191529181900360200190a350505050565b600054600160a060020a031681565b6003805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156104985780601f1061046d57610100808354040283529160200191610498565b61085f610a77565b600160a060020a038216600090815260066020526040902054610888908263ffffffff610dc716565b600160a060020a0383166000908152600660205260409020556005546108b4908263ffffffff610dc716565b600555604080518281529051600091600160a060020a03851691600080516020610f808339815191529181900360200190a36040805182815290517f9a1b418bc061a5d80270261562e6986a35d995f8051145f277be16103abd34539181900360200190a15050565b6000610927610adb565b6109318383610e27565b151561093957fe5b50600192915050565b60085460ff1681565b600154600160a060020a031681565b600760209081526000928352604080842090915290825290205481565b61097f610a77565b600054600160a060020a03828116911614156109e5576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f53414d455f4f574e4552000000000000000000000000000000000000604482015290519081900360640190fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600160a060020a0381161515610a74576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b50565b600054600160a060020a03163314610ad9576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b565b60085460ff161515610ad9576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f5452414e53464552535f44495341424c454400000000000000000000604482015290519081900360640190fd5b600083610b4381610a14565b83610b4d81610a14565b600160a060020a0386166000908152600760209081526040808320338452909152902054610b81908563ffffffff610dc716565b600160a060020a038716600081815260076020908152604080832033845282528083209490945591815260069091522054610bc2908563ffffffff610dc716565b600160a060020a038088166000908152600660205260408082209390935590871681522054610bf7908563ffffffff610d6316565b600160a060020a0380871660008181526006602090815260409182902094909455805188815290519193928a1692600080516020610f8083398151915292918290030190a350600195945050505050565b600160a060020a038116301415610a74576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f414444524553535f49535f53454c4600000000000000000000000000604482015290519081900360640190fd5b604080517f7472616e7366657228616464726573732c75696e74323536290000000000000081528151908190036019018120600160a060020a038516602483015260448083018590528351808403909101815260649092019092526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152610d5e908490610ed2565b505050565b600082820183811015610dc0576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b9392505050565b600081831015610e21576040805160e560020a62461bcd02815260206004820152600d60248201527f4552525f554e444552464c4f5700000000000000000000000000000000000000604482015290519081900360640190fd5b50900390565b600082610e3381610a14565b33600090815260066020526040902054610e53908463ffffffff610dc716565b3360009081526006602052604080822092909255600160a060020a03861681522054610e85908463ffffffff610d6316565b600160a060020a038516600081815260066020908152604091829020939093558051868152905191923392600080516020610f808339815191529281900390910190a35060019392505050565b610eda610f60565b602060405190810160405280600181525090506020818351602085016000875af1801515610f0757600080fd5b5080511515610d5e576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f5452414e534645525f4641494c454400000000000000000000000000604482015290519081900360640190fd5b60206040519081016040528060019060208202803883395091929150505600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a7230582031b56aebc8336b547b3e1346f50c2f44f70def554ed4cba4c81bcf2e092d047f0029a165627a7a72305820e0ee560589eda5987d8f172ea60698bfbffc21529ee8046ab37c5e3348e88bcd0029", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH3 0xAD JUMPI PUSH4 0xFFFFFFFF PUSH1 0xE0 PUSH1 0x2 EXP PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x6FDDE03 DUP2 EQ PUSH3 0xB2 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH3 0x142 JUMPI DUP1 PUSH4 0x5E35359E EQ PUSH3 0x170 JUMPI DUP1 PUSH4 0x6D3E313E EQ PUSH3 0x19F JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH3 0x209 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH3 0x221 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH3 0x255 JUMPI DUP1 PUSH4 0x9CBF9E36 EQ PUSH3 0x26D JUMPI DUP1 PUSH4 0xC6C3BBE6 EQ PUSH3 0x285 JUMPI DUP1 PUSH4 0xD4EE1D90 EQ PUSH3 0x2B2 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH3 0x2CA JUMPI DUP1 PUSH4 0xF6B911BC EQ PUSH3 0x2EE JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0xBF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0xCA PUSH3 0x31B JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP4 MLOAD DUP2 DUP4 ADD MSTORE DUP4 MLOAD SWAP2 SWAP3 DUP4 SWAP3 SWAP1 DUP4 ADD SWAP2 DUP6 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH3 0x106 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH3 0xEC JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH3 0x134 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0x14F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x15A PUSH3 0x3AA JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0x17D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x19D PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH3 0x3B3 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0x1AC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x1B7 PUSH3 0x3F6 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP4 MLOAD DUP2 DUP4 ADD MSTORE DUP4 MLOAD SWAP2 SWAP3 DUP4 SWAP3 SWAP1 DUP4 ADD SWAP2 DUP6 DUP2 ADD SWAP2 MUL DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH3 0x1F5 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH3 0x1DB JUMP JUMPDEST POP POP POP POP SWAP1 POP ADD SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0x216 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x19D PUSH3 0x45A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0x22E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x239 PUSH3 0x52E JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0x262 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0xCA PUSH3 0x53D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0x27A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x239 PUSH3 0x59B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0x292 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x19D PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH3 0x882 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0x2BF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x239 PUSH3 0x90E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0x2D7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x19D PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH3 0x91D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0x2FB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x19D PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH3 0x9BD JUMP JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x1 DUP5 AND ISZERO PUSH2 0x100 MUL PUSH1 0x0 NOT ADD SWAP1 SWAP4 AND DUP5 SWAP1 DIV PUSH1 0x1F DUP2 ADD DUP5 SWAP1 DIV DUP5 MUL DUP3 ADD DUP5 ADD SWAP1 SWAP3 MSTORE DUP2 DUP2 MSTORE SWAP3 SWAP2 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH3 0x3A2 JUMPI DUP1 PUSH1 0x1F LT PUSH3 0x376 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH3 0x3A2 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH3 0x384 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH3 0x3BD PUSH3 0xA2B JUMP JUMPDEST DUP3 PUSH3 0x3C9 DUP2 PUSH3 0xA90 JUMP JUMPDEST DUP3 PUSH3 0x3D5 DUP2 PUSH3 0xA90 JUMP JUMPDEST DUP4 PUSH3 0x3E1 DUP2 PUSH3 0xAF4 JUMP JUMPDEST PUSH3 0x3EE DUP7 DUP7 DUP7 PUSH3 0xB56 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x5 DUP1 SLOAD DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD DUP1 ISZERO PUSH3 0x450 JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH3 0x431 JUMPI JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH3 0x4BD JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND SWAP4 SWAP1 SWAP2 AND SWAP2 PUSH32 0x343765429AEA5A34B3FF6A3785A98A5ABB2597ACA87BFBB58632C173D585373A SWAP2 LOG3 PUSH1 0x1 DUP1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND OR SWAP1 SWAP2 SSTORE AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x2 PUSH1 0x1 DUP6 AND ISZERO PUSH2 0x100 MUL PUSH1 0x0 NOT ADD SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 DIV PUSH1 0x1F DUP2 ADD DUP5 SWAP1 DIV DUP5 MUL DUP3 ADD DUP5 ADD SWAP1 SWAP3 MSTORE DUP2 DUP2 MSTORE SWAP3 SWAP2 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH3 0x3A2 JUMPI DUP1 PUSH1 0x1F LT PUSH3 0x376 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH3 0x3A2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP1 PUSH1 0x0 PUSH3 0x5AC PUSH3 0xA2B JUMP JUMPDEST PUSH1 0x5 DUP1 SLOAD LT PUSH3 0x606 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4D41585F4C494D49545F524541434845440000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x1F PUSH1 0x0 NOT PUSH2 0x100 PUSH1 0x1 DUP8 AND ISZERO MUL ADD SWAP1 SWAP5 AND DUP6 SWAP1 DIV SWAP4 DUP5 ADD DUP2 SWAP1 DIV DUP2 MUL DUP3 ADD DUP2 ADD SWAP1 SWAP3 MSTORE DUP3 DUP2 MSTORE PUSH3 0x6A8 SWAP4 SWAP1 SWAP3 SWAP1 SWAP2 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH3 0x695 JUMPI DUP1 PUSH1 0x1F LT PUSH3 0x669 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH3 0x695 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH3 0x677 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP PUSH1 0x5 SLOAD PUSH1 0x1 ADD SWAP3 POP PUSH3 0xC12 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x2 PUSH1 0x1 DUP6 AND ISZERO PUSH2 0x100 MUL PUSH1 0x0 NOT ADD SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 DIV PUSH1 0x1F DUP2 ADD DUP5 SWAP1 DIV DUP5 MUL DUP3 ADD DUP5 ADD SWAP1 SWAP3 MSTORE DUP2 DUP2 MSTORE SWAP4 SWAP7 POP PUSH3 0x70E SWAP4 SWAP3 SWAP2 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH3 0x695 JUMPI DUP1 PUSH1 0x1F LT PUSH3 0x669 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH3 0x695 JUMP JUMPDEST PUSH1 0x4 SLOAD SWAP1 SWAP3 POP DUP4 SWAP1 DUP4 SWAP1 PUSH1 0xFF AND PUSH3 0x725 PUSH3 0xD8C JUMP JUMPDEST PUSH1 0xFF DUP3 AND PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP1 DUP3 MSTORE DUP5 MLOAD SWAP1 DUP3 ADD MSTORE DUP4 MLOAD DUP2 SWAP1 PUSH1 0x20 DUP1 DUP4 ADD SWAP2 PUSH1 0x80 DUP5 ADD SWAP2 DUP9 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH3 0x76B JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH3 0x751 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH3 0x799 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP DUP4 DUP2 SUB DUP3 MSTORE DUP6 MLOAD DUP2 MSTORE DUP6 MLOAD PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 DUP8 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH3 0x7CE JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH3 0x7B4 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH3 0x7FC JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP6 POP POP POP POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 PUSH1 0x0 CREATE DUP1 ISZERO DUP1 ISZERO PUSH3 0x821 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH1 0x5 DUP1 SLOAD PUSH1 0x1 DUP2 ADD DUP3 SSTORE PUSH1 0x0 SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0x36B6384B5ECA791C62761152D0C79BB0604C104A5FB6F4EB0703F3154BB3DB0 ADD DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 AND OR SWAP1 SSTORE SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH3 0x88C PUSH3 0xA2B JUMP JUMPDEST DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x867904B4 DUP4 DUP4 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH3 0x8F0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH3 0x905 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH3 0x927 PUSH3 0xA2B JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ ISZERO PUSH3 0x98E JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F4F574E4552000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH3 0x9C7 PUSH3 0xA2B JUMP JUMPDEST DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xA24835D1 DUP4 DUP4 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH3 0x8F0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH3 0xA8E JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH3 0xAF1 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ADDRESS EQ ISZERO PUSH3 0xAF1 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F414444524553535F49535F53454C4600000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x7472616E7366657228616464726573732C75696E743235362900000000000000 DUP2 MSTORE DUP2 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x19 ADD DUP2 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x64 SWAP1 SWAP3 ADD SWAP1 SWAP3 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE PUSH3 0xC0D SWAP1 DUP5 SWAP1 PUSH3 0xCFA JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP3 DUP3 PUSH32 0x3000000000000000000000000000000000000000000000000000000000000000 PUSH32 0x100000000000000000000000000000000000000000000000000000000000000 SWAP1 DIV ADD PUSH1 0x40 MLOAD PUSH1 0x20 ADD DUP1 DUP4 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH3 0xC8F JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH3 0xC6E JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD DUP3 PUSH1 0xFF AND PUSH1 0xFF AND PUSH32 0x100000000000000000000000000000000000000000000000000000000000000 MUL DUP2 MSTORE PUSH1 0x1 ADD SWAP3 POP POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH3 0xD04 PUSH3 0xD9D JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE POP SWAP1 POP PUSH1 0x20 DUP2 DUP4 MLOAD PUSH1 0x20 DUP6 ADD PUSH1 0x0 DUP8 GAS CALL DUP1 ISZERO ISZERO PUSH3 0xD32 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD ISZERO ISZERO PUSH3 0xC0D JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5452414E534645525F4641494C454400000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1228 DUP1 PUSH3 0xDBD DUP4 CODECOPY ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 SWAP1 PUSH1 0x20 DUP3 MUL DUP1 CODESIZE DUP4 CODECOPY POP SWAP2 SWAP3 SWAP2 POP POP JUMP STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x8 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE CALLVALUE DUP1 ISZERO PUSH3 0x1E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x1228 CODESIZE SUB DUP1 PUSH3 0x1228 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 SWAP1 DUP2 MSTORE DUP2 MLOAD PUSH1 0x20 DUP4 ADD MLOAD SWAP2 DUP4 ADD MLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND CALLER OR DUP2 SSTORE SWAP2 DUP5 ADD DUP1 MLOAD SWAP1 SWAP5 SWAP4 SWAP1 SWAP4 ADD SWAP3 SWAP1 SWAP2 DUP5 SWAP2 DUP5 SWAP2 DUP5 SWAP2 DUP2 LT PUSH3 0xD5 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4E414D4500000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP3 MLOAD PUSH1 0x0 LT PUSH3 0x146 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F53594D424F4C0000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP4 MLOAD PUSH3 0x15B SWAP1 PUSH1 0x2 SWAP1 PUSH1 0x20 DUP8 ADD SWAP1 PUSH3 0x1A8 JUMP JUMPDEST POP DUP3 MLOAD PUSH3 0x171 SWAP1 PUSH1 0x3 SWAP1 PUSH1 0x20 DUP7 ADD SWAP1 PUSH3 0x1A8 JUMP JUMPDEST POP PUSH1 0x4 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0xFF SWAP4 SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 SSTORE PUSH1 0x5 DUP2 SWAP1 SSTORE CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE POP PUSH3 0x24D SWAP4 POP POP POP POP JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH1 0x1F LT PUSH3 0x1EB JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH3 0x21B JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH3 0x21B JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH3 0x21B JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH3 0x1FE JUMP JUMPDEST POP PUSH3 0x229 SWAP3 SWAP2 POP PUSH3 0x22D JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH3 0x24A SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH3 0x229 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH3 0x234 JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH2 0xFCB DUP1 PUSH3 0x25D PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x106 JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x6FDDE03 DUP2 EQ PUSH2 0x10B JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x195 JUMPI DUP1 PUSH4 0x1608F18F EQ PUSH2 0x1CD JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x1E9 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x210 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x23A JUMPI DUP1 PUSH4 0x54FD4D50 EQ PUSH2 0x265 JUMPI DUP1 PUSH4 0x5E35359E EQ PUSH2 0x291 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x2BB JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x2DC JUMPI DUP1 PUSH4 0x867904B4 EQ PUSH2 0x2F1 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x315 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x346 JUMPI DUP1 PUSH4 0xA24835D1 EQ PUSH2 0x35B JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x37F JUMPI DUP1 PUSH4 0xBEF97C87 EQ PUSH2 0x3A3 JUMPI DUP1 PUSH4 0xD4EE1D90 EQ PUSH2 0x3B8 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x3CD JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x3F4 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x117 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x120 PUSH2 0x415 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP4 MLOAD DUP2 DUP4 ADD MSTORE DUP4 MLOAD SWAP2 SWAP3 DUP4 SWAP3 SWAP1 DUP4 ADD SWAP2 DUP6 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x15A JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x142 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x187 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1A1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B9 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x4A0 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1D9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH1 0x4 CALLDATALOAD ISZERO ISZERO PUSH2 0x598 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1FE PUSH2 0x5B2 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x21C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B9 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x5B8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x246 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x24F PUSH2 0x5DF JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x271 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x27A PUSH2 0x5E8 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0xFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x29D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x5ED JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2C7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1FE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x626 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2E8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH2 0x638 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2FD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x70B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x321 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x32A PUSH2 0x7ED JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x352 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x120 PUSH2 0x7FC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x367 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x857 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x38B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B9 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x91D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3AF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B9 PUSH2 0x942 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3C4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x32A PUSH2 0x94B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3D9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1FE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH2 0x95A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x400 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x977 JUMP JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x1 DUP5 AND ISZERO PUSH2 0x100 MUL PUSH1 0x0 NOT ADD SWAP1 SWAP4 AND DUP5 SWAP1 DIV PUSH1 0x1F DUP2 ADD DUP5 SWAP1 DIV DUP5 MUL DUP3 ADD DUP5 ADD SWAP1 SWAP3 MSTORE DUP2 DUP2 MSTORE SWAP3 SWAP2 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x498 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x46D JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x498 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x47B JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x4AC DUP2 PUSH2 0xA14 JUMP JUMPDEST DUP3 ISZERO DUP1 PUSH2 0x4DA JUMPI POP CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x530 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F414D4F554E540000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST CALLER PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP10 AND DUP1 DUP6 MSTORE SWAP1 DUP4 MSTORE SWAP3 DUP2 SWAP1 KECCAK256 DUP8 SWAP1 SSTORE DUP1 MLOAD DUP8 DUP2 MSTORE SWAP1 MLOAD SWAP3 SWAP4 SWAP3 PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP3 SWAP2 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x5A0 PUSH2 0xA77 JUMP JUMPDEST PUSH1 0x8 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP2 ISZERO SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x5 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5C2 PUSH2 0xADB JUMP JUMPDEST PUSH2 0x5CD DUP5 DUP5 DUP5 PUSH2 0xB37 JUMP JUMPDEST ISZERO ISZERO PUSH2 0x5D5 JUMPI INVALID JUMPDEST POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x4 DUP2 JUMP JUMPDEST PUSH2 0x5F5 PUSH2 0xA77 JUMP JUMPDEST DUP3 PUSH2 0x5FF DUP2 PUSH2 0xA14 JUMP JUMPDEST DUP3 PUSH2 0x609 DUP2 PUSH2 0xA14 JUMP JUMPDEST DUP4 PUSH2 0x613 DUP2 PUSH2 0xC48 JUMP JUMPDEST PUSH2 0x61E DUP7 DUP7 DUP7 PUSH2 0xCA9 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x69A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND SWAP4 SWAP1 SWAP2 AND SWAP2 PUSH32 0x343765429AEA5A34B3FF6A3785A98A5ABB2597ACA87BFBB58632C173D585373A SWAP2 LOG3 PUSH1 0x1 DUP1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND OR SWAP1 SWAP2 SSTORE AND SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x713 PUSH2 0xA77 JUMP JUMPDEST DUP2 PUSH2 0x71D DUP2 PUSH2 0xA14 JUMP JUMPDEST DUP3 PUSH2 0x727 DUP2 PUSH2 0xC48 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH2 0x73A SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0xD63 AND JUMP JUMPDEST PUSH1 0x5 SSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x766 SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0xD63 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SWAP3 SWAP1 SWAP3 SSTORE DUP1 MLOAD DUP6 DUP2 MSTORE SWAP1 MLOAD PUSH32 0x9386C90217C323F58030F9DADCBC938F807A940F4FF41CD4CEAD9562F5DA7DC3 SWAP3 SWAP2 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG1 PUSH1 0x40 DUP1 MLOAD DUP5 DUP2 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND SWAP2 PUSH1 0x0 SWAP2 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xF80 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP2 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 LOG3 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x2 PUSH1 0x1 DUP6 AND ISZERO PUSH2 0x100 MUL PUSH1 0x0 NOT ADD SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 DIV PUSH1 0x1F DUP2 ADD DUP5 SWAP1 DIV DUP5 MUL DUP3 ADD DUP5 ADD SWAP1 SWAP3 MSTORE DUP2 DUP2 MSTORE SWAP3 SWAP2 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x498 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x46D JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x498 JUMP JUMPDEST PUSH2 0x85F PUSH2 0xA77 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x888 SWAP1 DUP3 PUSH4 0xFFFFFFFF PUSH2 0xDC7 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE PUSH1 0x5 SLOAD PUSH2 0x8B4 SWAP1 DUP3 PUSH4 0xFFFFFFFF PUSH2 0xDC7 AND JUMP JUMPDEST PUSH1 0x5 SSTORE PUSH1 0x40 DUP1 MLOAD DUP3 DUP2 MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND SWAP2 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xF80 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP2 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 LOG3 PUSH1 0x40 DUP1 MLOAD DUP3 DUP2 MSTORE SWAP1 MLOAD PUSH32 0x9A1B418BC061A5D80270261562E6986A35D995F8051145F277BE16103ABD3453 SWAP2 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x927 PUSH2 0xADB JUMP JUMPDEST PUSH2 0x931 DUP4 DUP4 PUSH2 0xE27 JUMP JUMPDEST ISZERO ISZERO PUSH2 0x939 JUMPI INVALID JUMPDEST POP PUSH1 0x1 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x97F PUSH2 0xA77 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x9E5 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F4F574E4552000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0xA74 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0xAD9 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0xFF AND ISZERO ISZERO PUSH2 0xAD9 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5452414E53464552535F44495341424C454400000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP4 PUSH2 0xB43 DUP2 PUSH2 0xA14 JUMP JUMPDEST DUP4 PUSH2 0xB4D DUP2 PUSH2 0xA14 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH2 0xB81 SWAP1 DUP6 PUSH4 0xFFFFFFFF PUSH2 0xDC7 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE DUP3 MSTORE DUP1 DUP4 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE SWAP2 DUP2 MSTORE PUSH1 0x6 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD PUSH2 0xBC2 SWAP1 DUP6 PUSH4 0xFFFFFFFF PUSH2 0xDC7 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE SWAP1 DUP8 AND DUP2 MSTORE KECCAK256 SLOAD PUSH2 0xBF7 SWAP1 DUP6 PUSH4 0xFFFFFFFF PUSH2 0xD63 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP8 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE DUP1 MLOAD DUP9 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP4 SWAP3 DUP11 AND SWAP3 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xF80 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP3 SWAP2 DUP3 SWAP1 SUB ADD SWAP1 LOG3 POP PUSH1 0x1 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ADDRESS EQ ISZERO PUSH2 0xA74 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F414444524553535F49535F53454C4600000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x7472616E7366657228616464726573732C75696E743235362900000000000000 DUP2 MSTORE DUP2 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x19 ADD DUP2 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x64 SWAP1 SWAP3 ADD SWAP1 SWAP3 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE PUSH2 0xD5E SWAP1 DUP5 SWAP1 PUSH2 0xED2 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 ADD DUP4 DUP2 LT ISZERO PUSH2 0xDC0 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT ISZERO PUSH2 0xE21 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F554E444552464C4F5700000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP SWAP1 SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0xE33 DUP2 PUSH2 0xA14 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0xE53 SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0xDC7 AND JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP3 SWAP1 SWAP3 SSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND DUP2 MSTORE KECCAK256 SLOAD PUSH2 0xE85 SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0xD63 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE DUP1 MLOAD DUP7 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP3 CALLER SWAP3 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xF80 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0xEDA PUSH2 0xF60 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE POP SWAP1 POP PUSH1 0x20 DUP2 DUP4 MLOAD PUSH1 0x20 DUP6 ADD PUSH1 0x0 DUP8 GAS CALL DUP1 ISZERO ISZERO PUSH2 0xF07 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD ISZERO ISZERO PUSH2 0xD5E JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5452414E534645525F4641494C454400000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 SWAP1 PUSH1 0x20 DUP3 MUL DUP1 CODESIZE DUP4 CODECOPY POP SWAP2 SWAP3 SWAP2 POP POP JUMP STOP 0xdd CALLCODE MSTORE 0xad SHL 0xe2 0xc8 SWAP12 PUSH10 0xC2B068FC378DAA952BA7 CALL PUSH4 0xC4A11628 0xf5 GAS 0x4d 0xf5 0x23 0xb3 0xef LOG1 PUSH6 0x627A7A723058 KECCAK256 BALANCE 0xb5 PUSH11 0xEBC8336B547B3E1346F50C 0x2f DIFFICULTY 0xf7 0xd 0xef SSTORE 0x4e 0xd4 0xcb LOG4 0xc8 SHL 0xcf 0x2e MULMOD 0x2d DIV PUSH32 0x29A165627A7A72305820E0EE560589EDA5987D8F172EA60698BFBFFC21529E 0xe8 DIV PUSH11 0xB37C5E3348E88BCD002900 ", - "sourceMap": "540:3276:29:-;;;;;;;;-1:-1:-1;540:3276:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;715:18;;8:9:-1;5:2;;;30:1;27;20:12;5:2;715:18:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;715:18:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;825:21;;8:9:-1;5:2;;;30:1;27;20:12;5:2;825:21:29;;;;;;;;;;;;;;;;;;;;;;;1077:194:71;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1077:194:71;-1:-1:-1;;;;;1077:194:71;;;;;;;;;;;;;;1762:102:29;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1762:102:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;1762:102:29;;;;;;;;;;;;;;;;;1159:176:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1159:176:66;;;;157:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;157:20:66;;;;;;;;-1:-1:-1;;;;;157:20:66;;;;;;;;;;;;;;769::29;;8:9:-1;5:2;;;30:1;27;20:12;5:2;769:20:29;;;;2001:519;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2001:519:29;;;;2848:126;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2848:126:29;-1:-1:-1;;;;;2848:126:29;;;;;;;;;;;;180:23:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;180:23:66;;;;945:140;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;945:140:66;;;-1:-1:-1;;;;;945:140:66;;;3289:132:29;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3289:132:29;-1:-1:-1;;;;;3289:132:29;;;;;;;;;;;;715:18;;;;;;;;;;;;;;-1:-1:-1;;715:18:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;825:21::-;;;;;;:::o;1077:194:71:-;575:12:66;:10;:12::i;:::-;1190:6:71;475:23:72;489:8;475:13;:23::i;:::-;1211:3:71;475:23:72;489:8;475:13;:23::i;:::-;1224:3:71;782:18:72;791:8;782;:18::i;:::-;1233:34:71;1246:6;1254:3;1259:7;1233:12;:34::i;:::-;502:1:72;;591::66;1077:194:71;;;:::o;1762:102:29:-;1805:13;1845:11;1838:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1838:18:29;;;-1:-1:-1;1838:18:29;;;;;;;;;;;;;;;;;;;1762:102;:::o;1159:176:66:-;1219:8;;-1:-1:-1;;;;;1219:8:66;1205:10;:22;1197:52;;;;;-1:-1:-1;;;;;1197:52:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;1277:8;;;1270:5;;1258:28;;-1:-1:-1;;;;;1277:8:66;;;;1270:5;;;;1258:28;;;1298:8;;;;1290:16;;-1:-1:-1;;;;;1298:8:66;;-1:-1:-1;;1290:16:66;;;;;;;1310:21;;;1159:176::o;157:20::-;;;-1:-1:-1;;;;;157:20:66;;:::o;769::29:-;;;;;;;;;;;;;;;-1:-1:-1;;769:20:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2001:519;2050:11;2210:22;2297:24;2390:16;575:12:66;:10;:12::i;:::-;662:1:29;2135:18;;:36;2127:70;;;;;-1:-1:-1;;;;;2127:70:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;2250:4;2235:51;;;;;;;;;;;;-1:-1:-1;;2235:51:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2250:4;;2235:51;;;2250:4;2235:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2262:11:29;:18;2283:1;2262:22;;-1:-1:-1;2235:14:29;;-1:-1:-1;;2235:51:29:i;:::-;2339:6;2324:53;;;;;;;;;;;;;-1:-1:-1;;2324:53:29;;;;;;;;;;;;;;;;;;;;;;;;;;2210:76;;-1:-1:-1;2324:53:29;;;2339:6;2324:53;;2339:6;2324:53;;;;;;;;;;;;;;;;;;;;;;;;;2446:8;;2297:80;;-1:-1:-1;2424:8:29;;2297:80;;2446:8;;2409:46;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;2409:46:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2409:46:29;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;2409:46:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;2466:11:29;27:10:-1;;39:1;23:18;;45:23;;-1:-1;2466:23:29;;;;;;;;-1:-1:-1;;2466:23:29;-1:-1:-1;;;;;2466:23:29;;;;;;;-1:-1:-1;;;;2001:519:29:o;2848:126::-;575:12:66;:10;:12::i;:::-;2940:26:29;;;;;;-1:-1:-1;;;;;2940:26:29;;;;;;;;;;;;;;;:12;;;;;;:26;;;;;-1:-1:-1;;2940:26:29;;;;;;;;-1:-1:-1;2940:12:29;:26;;;5:2:-1;;;;30:1;27;20:12;5:2;2940:26:29;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2940:26:29;;;;2848:126;;;:::o;180:23:66:-;;;-1:-1:-1;;;;;180:23:66;;:::o;945:140::-;575:12;:10;:12::i;:::-;1033:5;;-1:-1:-1;;;;;1020:18:66;;;1033:5;;1020:18;;1012:45;;;;;-1:-1:-1;;;;;1012:45:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;1061:8;:20;;-1:-1:-1;;1061:20:66;-1:-1:-1;;;;;1061:20:66;;;;;;;;;;945:140::o;3289:132:29:-;575:12:66;:10;:12::i;:::-;3383:30:29;;;;;;-1:-1:-1;;;;;3383:30:29;;;;;;;;;;;;;;;:14;;;;;;:30;;;;;-1:-1:-1;;3383:30:29;;;;;;;;-1:-1:-1;3383:14:29;:30;;;5:2:-1;;;;30:1;27;20:12;642:93:66;704:5;;-1:-1:-1;;;;;704:5:66;690:10;:19;682:49;;;;;-1:-1:-1;;;;;682:49:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;642:93::o;553:117:72:-;-1:-1:-1;;;;;620:22:72;;;;612:54;;;;;-1:-1:-1;;;;;612:54:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;553:117;:::o;855:115::-;937:4;-1:-1:-1;;;;;917:25:72;;;;909:57;;;;;-1:-1:-1;;;;;909:57:72;;;;;;;;;;;;;;;;;;;;;;;;;;;1214:173:70;248:38;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1323:59:70;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;1323:59:70;;;;;;;;25:18:-1;;61:17;;1323:59:70;182:15:-1;1323:59:70;;;;179:29:-1;;;;160:49;;;1307:76:70;;1315:6;;1307:7;:76::i;:::-;1214:173;;;:::o;3647:166:29:-;3720:6;3770:4;3797:6;3782:11;3776:18;;;:27;3753:51;;;;;;;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;3753:51:29;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;3753:51:29;;;3739:66;;3647:166;;;;:::o;2255:557:70:-;2324:21;;:::i;:::-;:36;;;;;;;;;2357:1;2324:36;;;;;2687:2;2661:3;2580:5;2574:12;2495:2;2488:5;2484:14;2465:1;2430:6;2404:3;2394:317;2725:7;2718:15;2715:2;;;2750:1;2747;2740:12;2715:2;-1:-1:-1;2773:6:70;;:11;;2765:43;;;;;-1:-1:-1;;;;;2765:43:70;;;;;;;;;;;;;;;;;;;;;;;;;;;540:3276:29;;;;;;;;;;:::o;:::-;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;-1:-1;540:3276:29;;;-1:-1:-1;;540:3276:29:o" - }, - "methodIdentifiers": { - "acceptOwnership()": "79ba5097", - "burn(address,address,uint256)": "f6b911bc", - "createToken()": "9cbf9e36", - "decimals()": "313ce567", - "mint(address,address,uint256)": "c6c3bbe6", - "name()": "06fdde03", - "newOwner()": "d4ee1d90", - "owner()": "8da5cb5b", - "poolTokens()": "6d3e313e", - "symbol()": "95d89b41", - "transferOwnership(address)": "f2fde38b", - "withdrawTokens(address,address,uint256)": "5e35359e" - } - }, - "userdoc": { - "methods": {} - } - } - }, - "solidity/contracts/converter/types/liquidity-pool-v2/interfaces/ILiquidityPoolV2Converter.sol": { - "ILiquidityPoolV2Converter": { - "abi": [ - { - "constant": true, - "inputs": [ - { - "name": "_reserveToken", - "type": "address" - } - ], - "name": "reserveStakedBalance", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "primaryReserveToken", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_primaryReserveToken", - "type": "address" - }, - { - "name": "_primaryReserveOracle", - "type": "address" - }, - { - "name": "_secondaryReserveOracle", - "type": "address" - } - ], - "name": "activate", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "priceOracle", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_reserveToken", - "type": "address" - }, - { - "name": "_balance", - "type": "uint256" - } - ], - "name": "setReserveStakedBalance", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - } - ], - "devdoc": { - "methods": {} - }, - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "deployedBytecode": { - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "methodIdentifiers": { - "activate(address,address,address)": "119b90cd", - "priceOracle()": "2630c12f", - "primaryReserveToken()": "0337e3fb", - "reserveStakedBalance(address)": "005e319c", - "setReserveStakedBalance(address,uint256)": "bf7da6ba" - } - }, - "userdoc": { - "methods": {} - } - } - }, - "solidity/contracts/converter/types/liquidity-pool-v2/interfaces/IPoolTokensContainer.sol": { - "IPoolTokensContainer": { - "abi": [ - { - "constant": false, - "inputs": [ - { - "name": "_token", - "type": "address" - }, - { - "name": "_to", - "type": "address" - }, - { - "name": "_amount", - "type": "uint256" - } - ], - "name": "withdrawTokens", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "poolTokens", - "outputs": [ - { - "name": "", - "type": "address[]" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "acceptOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "owner", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "createToken", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_token", - "type": "address" - }, - { - "name": "_to", - "type": "address" - }, - { - "name": "_amount", - "type": "uint256" - } - ], - "name": "mint", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_token", - "type": "address" - }, - { - "name": "_from", - "type": "address" - }, - { - "name": "_amount", - "type": "uint256" - } - ], - "name": "burn", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - } - ], - "devdoc": { - "methods": {} - }, - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "deployedBytecode": { - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "methodIdentifiers": { - "acceptOwnership()": "79ba5097", - "burn(address,address,uint256)": "f6b911bc", - "createToken()": "9cbf9e36", - "mint(address,address,uint256)": "c6c3bbe6", - "owner()": "8da5cb5b", - "poolTokens()": "6d3e313e", - "transferOwnership(address)": "f2fde38b", - "withdrawTokens(address,address,uint256)": "5e35359e" - } - }, - "userdoc": { - "methods": {} - } - } - }, - "solidity/contracts/helpers/TestChainlinkPriceOracle.sol": { - "TestChainlinkPriceOracle": { - "abi": [ - { - "constant": true, - "inputs": [], - "name": "latestAnswer", - "outputs": [ - { - "name": "", - "type": "int256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "latestTimestamp", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_answer", - "type": "int256" - } - ], - "name": "setAnswer", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_timestamp", - "type": "uint256" - } - ], - "name": "setTimestamp", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - } - ], - "devdoc": { - "methods": {} - }, - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "608060405234801561001057600080fd5b50610105806100206000396000f300608060405260043610605c5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166350d25bcd811460615780638205bf6a14608557806399213cd8146097578063a0a2b5731460ae575b600080fd5b348015606c57600080fd5b50607360c3565b60408051918252519081900360200190f35b348015609057600080fd5b50607360c9565b34801560a257600080fd5b5060ac60043560cf565b005b34801560b957600080fd5b5060ac60043560d4565b60005490565b60015490565b600055565b6001555600a165627a7a72305820eea09aa0cda7513e629acd62ff999792dbb9faee50deb7304b847c2f1a2e1a890029", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x105 DUP1 PUSH2 0x20 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH1 0x5C JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x50D25BCD DUP2 EQ PUSH1 0x61 JUMPI DUP1 PUSH4 0x8205BF6A EQ PUSH1 0x85 JUMPI DUP1 PUSH4 0x99213CD8 EQ PUSH1 0x97 JUMPI DUP1 PUSH4 0xA0A2B573 EQ PUSH1 0xAE JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH1 0x6C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x73 PUSH1 0xC3 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH1 0x90 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x73 PUSH1 0xC9 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH1 0xA2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0xAC PUSH1 0x4 CALLDATALOAD PUSH1 0xCF JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH1 0xB9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0xAC PUSH1 0x4 CALLDATALOAD PUSH1 0xD4 JUMP JUMPDEST PUSH1 0x0 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x1 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 SSTORE JUMP JUMPDEST PUSH1 0x1 SSTORE JUMP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 0xee LOG0 SWAP11 LOG0 0xcd 0xa7 MLOAD RETURNDATACOPY PUSH3 0x9ACD62 SELFDESTRUCT SWAP10 SWAP8 SWAP3 0xdb 0xb9 STATICCALL 0xee POP 0xde 0xb7 ADDRESS 0x4b DUP5 PUSH29 0x2F1A2E1A89002900000000000000000000000000000000000000000000 ", - "sourceMap": "120:429:32:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;120:429:32;;;;;;;" - }, - "deployedBytecode": { - "linkReferences": {}, - "object": "608060405260043610605c5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166350d25bcd811460615780638205bf6a14608557806399213cd8146097578063a0a2b5731460ae575b600080fd5b348015606c57600080fd5b50607360c3565b60408051918252519081900360200190f35b348015609057600080fd5b50607360c9565b34801560a257600080fd5b5060ac60043560cf565b005b34801560b957600080fd5b5060ac60043560d4565b60005490565b60015490565b600055565b6001555600a165627a7a72305820eea09aa0cda7513e629acd62ff999792dbb9faee50deb7304b847c2f1a2e1a890029", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH1 0x5C JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x50D25BCD DUP2 EQ PUSH1 0x61 JUMPI DUP1 PUSH4 0x8205BF6A EQ PUSH1 0x85 JUMPI DUP1 PUSH4 0x99213CD8 EQ PUSH1 0x97 JUMPI DUP1 PUSH4 0xA0A2B573 EQ PUSH1 0xAE JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH1 0x6C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x73 PUSH1 0xC3 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH1 0x90 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x73 PUSH1 0xC9 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH1 0xA2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0xAC PUSH1 0x4 CALLDATALOAD PUSH1 0xCF JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH1 0xB9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0xAC PUSH1 0x4 CALLDATALOAD PUSH1 0xD4 JUMP JUMPDEST PUSH1 0x0 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x1 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 SSTORE JUMP JUMPDEST PUSH1 0x1 SSTORE JUMP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 0xee LOG0 SWAP11 LOG0 0xcd 0xa7 MLOAD RETURNDATACOPY PUSH3 0x9ACD62 SELFDESTRUCT SWAP10 SWAP8 SWAP3 0xdb 0xb9 STATICCALL 0xee POP 0xde 0xb7 ADDRESS 0x4b DUP5 PUSH29 0x2F1A2E1A89002900000000000000000000000000000000000000000000 ", - "sourceMap": "120:429:32:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;385:76;;8:9:-1;5:2;;;30:1;27;20:12;5:2;385:76:32;;;;;;;;;;;;;;;;;;;;464:83;;8:9:-1;5:2;;;30:1;27;20:12;5:2;464:83:32;;;;234:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;234:66:32;;;;;;;303:79;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;303:79:32;;;;;385:76;432:6;451;385:76;:::o;464:83::-;534:9;;464:83;:::o;234:66::-;280:6;:16;234:66::o;303:79::-;356:9;:22;303:79::o" - }, - "methodIdentifiers": { - "latestAnswer()": "50d25bcd", - "latestTimestamp()": "8205bf6a", - "setAnswer(int256)": "99213cd8", - "setTimestamp(uint256)": "a0a2b573" - } - }, - "userdoc": { - "methods": {} - } - } - }, - "solidity/contracts/helpers/TestContractRegistryClient.sol": { - "TestContractRegistryClient": { - "abi": [ - { - "constant": false, - "inputs": [ - { - "name": "_onlyOwnerCanUpdateRegistry", - "type": "bool" - } - ], - "name": "restrictRegistryUpdate", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "onlyOwnerCanUpdateRegistry", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "updateRegistry", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "prevRegistry", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "acceptOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "registry", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "owner", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "restoreRegistry", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "newOwner", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "name": "_registry", - "type": "address" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "_prevOwner", - "type": "address" - }, - { - "indexed": true, - "name": "_newOwner", - "type": "address" - } - ], - "name": "OwnerUpdate", - "type": "event" - } - ], - "devdoc": { - "methods": { - "acceptOwnership()": { - "details": "used by a new owner to accept an ownership transfer" - }, - "restoreRegistry()": { - "details": "restores the previous contract-registry" - }, - "restrictRegistryUpdate(bool)": { - "details": "restricts the permission to update the contract-registry", - "params": { - "_onlyOwnerCanUpdateRegistry": "indicates whether or not permission is restricted to owner only" - } - }, - "transferOwnership(address)": { - "details": "allows transferring the contract ownership the new owner still needs to accept the transfer can only be called by the contract owner", - "params": { - "_newOwner": "new contract owner" - } - }, - "updateRegistry()": { - "details": "updates to the new contract-registry" - } - } - }, - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "608060405234801561001057600080fd5b506040516020806108b4833981016040525160008054600160a060020a03191633179055808061004881640100000000610079810204565b5060028054600160a060020a03909216600160a060020a0319928316811790915560038054909216179055506100f3565b600160a060020a03811615156100f057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b50565b6107b2806101026000396000f3006080604052600436106100a35763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663024c7ec781146100a85780632fe8a6ad146100c457806349d10b64146100ed57806361cd756e1461010257806379ba5097146101335780637b103999146101485780638da5cb5b1461015d578063b4a176d314610172578063d4ee1d9014610187578063f2fde38b1461019c575b600080fd5b3480156100b457600080fd5b506100c260043515156101bd565b005b3480156100d057600080fd5b506100d9610205565b604080519115158252519081900360200190f35b3480156100f957600080fd5b506100c2610226565b34801561010e57600080fd5b506101176104a5565b60408051600160a060020a039092168252519081900360200190f35b34801561013f57600080fd5b506100c26104b4565b34801561015457600080fd5b50610117610587565b34801561016957600080fd5b50610117610596565b34801561017e57600080fd5b506100c26105a5565b34801561019357600080fd5b506101176105de565b3480156101a857600080fd5b506100c2600160a060020a03600435166105ed565b6101c561068a565b60038054911515740100000000000000000000000000000000000000000274ff000000000000000000000000000000000000000019909216919091179055565b60035474010000000000000000000000000000000000000000900460ff1681565b60008054600160a060020a031633148061025b575060035474010000000000000000000000000000000000000000900460ff16155b15156102b1576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b6102da7f436f6e74726163745265676973747279000000000000000000000000000000006106ee565b600254909150600160a060020a038083169116148015906103035750600160a060020a03811615155b1515610359576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e56414c49445f5245474953545259000000000000000000000000604482015290519081900360640190fd5b604080517fbb34534c0000000000000000000000000000000000000000000000000000000081527f436f6e747261637452656769737472790000000000000000000000000000000060048201529051600091600160a060020a0384169163bb34534c9160248082019260209290919082900301818787803b1580156103dd57600080fd5b505af11580156103f1573d6000803e3d6000fd5b505050506040513d602081101561040757600080fd5b5051600160a060020a03161415610468576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e56414c49445f5245474953545259000000000000000000000000604482015290519081900360640190fd5b6002805460038054600160a060020a0380841673ffffffffffffffffffffffffffffffffffffffff19928316179092559091169216919091179055565b600354600160a060020a031681565b600154600160a060020a03163314610516576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b60015460008054604051600160a060020a0393841693909116917f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91a3600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b600254600160a060020a031681565b600054600160a060020a031681565b6105ad61068a565b6003546002805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055565b600154600160a060020a031681565b6105f561068a565b600054600160a060020a038281169116141561065b576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f53414d455f4f574e4552000000000000000000000000000000000000604482015290519081900360640190fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600054600160a060020a031633146106ec576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b565b600254604080517fbb34534c000000000000000000000000000000000000000000000000000000008152600481018490529051600092600160a060020a03169163bb34534c91602480830192602092919082900301818787803b15801561075457600080fd5b505af1158015610768573d6000803e3d6000fd5b505050506040513d602081101561077e57600080fd5b5051929150505600a165627a7a72305820b04c996b6abc552bc22563a426227bf57b9b164d59e43cd6a919697e1d8ec1a90029", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP1 PUSH2 0x8B4 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 MSTORE MLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND CALLER OR SWAP1 SSTORE DUP1 DUP1 PUSH2 0x48 DUP2 PUSH5 0x100000000 PUSH2 0x79 DUP2 MUL DIV JUMP JUMPDEST POP PUSH1 0x2 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT SWAP3 DUP4 AND DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x3 DUP1 SLOAD SWAP1 SWAP3 AND OR SWAP1 SSTORE POP PUSH2 0xF3 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0xF0 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x7B2 DUP1 PUSH2 0x102 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0xA3 JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x24C7EC7 DUP2 EQ PUSH2 0xA8 JUMPI DUP1 PUSH4 0x2FE8A6AD EQ PUSH2 0xC4 JUMPI DUP1 PUSH4 0x49D10B64 EQ PUSH2 0xED JUMPI DUP1 PUSH4 0x61CD756E EQ PUSH2 0x102 JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x133 JUMPI DUP1 PUSH4 0x7B103999 EQ PUSH2 0x148 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x15D JUMPI DUP1 PUSH4 0xB4A176D3 EQ PUSH2 0x172 JUMPI DUP1 PUSH4 0xD4EE1D90 EQ PUSH2 0x187 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x19C JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xB4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xC2 PUSH1 0x4 CALLDATALOAD ISZERO ISZERO PUSH2 0x1BD JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xD0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xD9 PUSH2 0x205 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xF9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xC2 PUSH2 0x226 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x10E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x117 PUSH2 0x4A5 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x13F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xC2 PUSH2 0x4B4 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x154 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x117 PUSH2 0x587 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x169 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x117 PUSH2 0x596 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x17E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xC2 PUSH2 0x5A5 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x193 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x117 PUSH2 0x5DE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1A8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xC2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x5ED JUMP JUMPDEST PUSH2 0x1C5 PUSH2 0x68A JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD SWAP2 ISZERO ISZERO PUSH21 0x10000000000000000000000000000000000000000 MUL PUSH21 0xFF0000000000000000000000000000000000000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ DUP1 PUSH2 0x25B JUMPI POP PUSH1 0x3 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x2B1 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x2DA PUSH32 0x436F6E7472616374526567697374727900000000000000000000000000000000 PUSH2 0x6EE JUMP JUMPDEST PUSH1 0x2 SLOAD SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP4 AND SWAP2 AND EQ DUP1 ISZERO SWAP1 PUSH2 0x303 JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x359 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245474953545259000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0xBB34534C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH32 0x436F6E7472616374526567697374727900000000000000000000000000000000 PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP2 PUSH4 0xBB34534C SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3DD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3F1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x407 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ ISZERO PUSH2 0x468 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245474953545259000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP5 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP3 DUP4 AND OR SWAP1 SWAP3 SSTORE SWAP1 SWAP2 AND SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x516 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND SWAP4 SWAP1 SWAP2 AND SWAP2 PUSH32 0x343765429AEA5A34B3FF6A3785A98A5ABB2597ACA87BFBB58632C173D585373A SWAP2 LOG3 PUSH1 0x1 DUP1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND OR SWAP1 SWAP2 SSTORE AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH2 0x5AD PUSH2 0x68A JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x2 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH2 0x5F5 PUSH2 0x68A JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x65B JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F4F574E4552000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x6EC JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xBB34534C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP2 PUSH4 0xBB34534C SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x754 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x768 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x77E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP3 SWAP2 POP POP JUMP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 0xb0 0x4c SWAP10 PUSH12 0x6ABC552BC22563A426227BF5 PUSH28 0x9B164D59E43CD6A919697E1D8EC1A900290000000000000000000000 ", - "sourceMap": "153:151:33:-;;;218:84;8:9:-1;5:2;;;30:1;27;20:12;5:2;218:84:33;;;;;;;;;;;;;488:5:66;:18;;-1:-1:-1;;;;;;488:18:66;496:10;488:18;;;218:84:33;;475:23:72;218:84:33;475:13:72;;;;:23;:::i;:::-;-1:-1:-1;1931:8:60;:39;;-1:-1:-1;;;;;1931:39:60;;;-1:-1:-1;;;;;;1931:39:60;;;;;;;;1974:12;:43;;;;;;;;-1:-1:-1;153:151:33;;553:117:72;-1:-1:-1;;;;;620:22:72;;;;612:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;553:117;:::o;153:151:33:-;;;;;;;" - }, - "deployedBytecode": { - "linkReferences": {}, - "object": "6080604052600436106100a35763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663024c7ec781146100a85780632fe8a6ad146100c457806349d10b64146100ed57806361cd756e1461010257806379ba5097146101335780637b103999146101485780638da5cb5b1461015d578063b4a176d314610172578063d4ee1d9014610187578063f2fde38b1461019c575b600080fd5b3480156100b457600080fd5b506100c260043515156101bd565b005b3480156100d057600080fd5b506100d9610205565b604080519115158252519081900360200190f35b3480156100f957600080fd5b506100c2610226565b34801561010e57600080fd5b506101176104a5565b60408051600160a060020a039092168252519081900360200190f35b34801561013f57600080fd5b506100c26104b4565b34801561015457600080fd5b50610117610587565b34801561016957600080fd5b50610117610596565b34801561017e57600080fd5b506100c26105a5565b34801561019357600080fd5b506101176105de565b3480156101a857600080fd5b506100c2600160a060020a03600435166105ed565b6101c561068a565b60038054911515740100000000000000000000000000000000000000000274ff000000000000000000000000000000000000000019909216919091179055565b60035474010000000000000000000000000000000000000000900460ff1681565b60008054600160a060020a031633148061025b575060035474010000000000000000000000000000000000000000900460ff16155b15156102b1576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b6102da7f436f6e74726163745265676973747279000000000000000000000000000000006106ee565b600254909150600160a060020a038083169116148015906103035750600160a060020a03811615155b1515610359576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e56414c49445f5245474953545259000000000000000000000000604482015290519081900360640190fd5b604080517fbb34534c0000000000000000000000000000000000000000000000000000000081527f436f6e747261637452656769737472790000000000000000000000000000000060048201529051600091600160a060020a0384169163bb34534c9160248082019260209290919082900301818787803b1580156103dd57600080fd5b505af11580156103f1573d6000803e3d6000fd5b505050506040513d602081101561040757600080fd5b5051600160a060020a03161415610468576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e56414c49445f5245474953545259000000000000000000000000604482015290519081900360640190fd5b6002805460038054600160a060020a0380841673ffffffffffffffffffffffffffffffffffffffff19928316179092559091169216919091179055565b600354600160a060020a031681565b600154600160a060020a03163314610516576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b60015460008054604051600160a060020a0393841693909116917f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91a3600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b600254600160a060020a031681565b600054600160a060020a031681565b6105ad61068a565b6003546002805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055565b600154600160a060020a031681565b6105f561068a565b600054600160a060020a038281169116141561065b576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f53414d455f4f574e4552000000000000000000000000000000000000604482015290519081900360640190fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600054600160a060020a031633146106ec576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b565b600254604080517fbb34534c000000000000000000000000000000000000000000000000000000008152600481018490529051600092600160a060020a03169163bb34534c91602480830192602092919082900301818787803b15801561075457600080fd5b505af1158015610768573d6000803e3d6000fd5b505050506040513d602081101561077e57600080fd5b5051929150505600a165627a7a72305820b04c996b6abc552bc22563a426227bf57b9b164d59e43cd6a919697e1d8ec1a90029", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0xA3 JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x24C7EC7 DUP2 EQ PUSH2 0xA8 JUMPI DUP1 PUSH4 0x2FE8A6AD EQ PUSH2 0xC4 JUMPI DUP1 PUSH4 0x49D10B64 EQ PUSH2 0xED JUMPI DUP1 PUSH4 0x61CD756E EQ PUSH2 0x102 JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x133 JUMPI DUP1 PUSH4 0x7B103999 EQ PUSH2 0x148 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x15D JUMPI DUP1 PUSH4 0xB4A176D3 EQ PUSH2 0x172 JUMPI DUP1 PUSH4 0xD4EE1D90 EQ PUSH2 0x187 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x19C JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xB4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xC2 PUSH1 0x4 CALLDATALOAD ISZERO ISZERO PUSH2 0x1BD JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xD0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xD9 PUSH2 0x205 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xF9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xC2 PUSH2 0x226 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x10E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x117 PUSH2 0x4A5 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x13F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xC2 PUSH2 0x4B4 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x154 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x117 PUSH2 0x587 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x169 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x117 PUSH2 0x596 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x17E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xC2 PUSH2 0x5A5 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x193 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x117 PUSH2 0x5DE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1A8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xC2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x5ED JUMP JUMPDEST PUSH2 0x1C5 PUSH2 0x68A JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD SWAP2 ISZERO ISZERO PUSH21 0x10000000000000000000000000000000000000000 MUL PUSH21 0xFF0000000000000000000000000000000000000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ DUP1 PUSH2 0x25B JUMPI POP PUSH1 0x3 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x2B1 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x2DA PUSH32 0x436F6E7472616374526567697374727900000000000000000000000000000000 PUSH2 0x6EE JUMP JUMPDEST PUSH1 0x2 SLOAD SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP4 AND SWAP2 AND EQ DUP1 ISZERO SWAP1 PUSH2 0x303 JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x359 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245474953545259000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0xBB34534C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH32 0x436F6E7472616374526567697374727900000000000000000000000000000000 PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP2 PUSH4 0xBB34534C SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3DD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3F1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x407 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ ISZERO PUSH2 0x468 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245474953545259000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP5 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP3 DUP4 AND OR SWAP1 SWAP3 SSTORE SWAP1 SWAP2 AND SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x516 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND SWAP4 SWAP1 SWAP2 AND SWAP2 PUSH32 0x343765429AEA5A34B3FF6A3785A98A5ABB2597ACA87BFBB58632C173D585373A SWAP2 LOG3 PUSH1 0x1 DUP1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND OR SWAP1 SWAP2 SSTORE AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH2 0x5AD PUSH2 0x68A JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x2 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH2 0x5F5 PUSH2 0x68A JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x65B JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F4F574E4552000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x6EC JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xBB34534C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP2 PUSH4 0xBB34534C SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x754 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x768 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x77E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP3 SWAP2 POP POP JUMP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 0xb0 0x4c SWAP10 PUSH12 0x6ABC552BC22563A426227BF5 PUSH28 0x9B164D59E43CD6A919697E1D8EC1A900290000000000000000000000 ", - "sourceMap": "153:151:33:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3280:206:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3280:206:60;;;;;;;;;1250:38;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1250:38:60;;;;;;;;;;;;;;;;;;;;;;2080:832;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2080:832:60;;;;1165:37;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1165:37:60;;;;;;;;-1:-1:-1;;;;;1165:37:60;;;;;;;;;;;;;;1159:176:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1159:176:66;;;;1085:33:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1085:33:60;;;;157:20:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;157:20:66;;;;2974:119:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2974:119:60;;;;180:23:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;180:23:66;;;;945:140;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;945:140:66;-1:-1:-1;;;;;945:140:66;;;;;3280:206:60;575:12:66;:10;:12::i;:::-;3426:26:60;:56;;;;;;;-1:-1:-1;;3426:56:60;;;;;;;;;3280:206::o;1250:38::-;;;;;;;;;:::o;2080:832::-;2281:29;2183:5;;-1:-1:-1;;;;;2183:5:60;2169:10;:19;;:50;;-1:-1:-1;2193:26:60;;;;;;;2192:27;2169:50;2161:80;;;;;;;-1:-1:-1;;;;;2161:80:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;2331:28;2341:17;2331:9;:28::i;:::-;2465:8;;2281:79;;-1:-1:-1;;;;;;2442:32:60;;;2465:8;;2442:32;;;;:61;;-1:-1:-1;;;;;;2478:25:60;;;;2442:61;2434:94;;;;;;;-1:-1:-1;;;;;2434:94:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;2628:40;;;;;;2650:17;2628:40;;;;;;2680:1;;-1:-1:-1;;;;;2628:21:60;;;;;:40;;;;;;;;;;;;;;;2680:1;2628:21;:40;;;5:2:-1;;;;30:1;27;20:12;5:2;2628:40:60;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2628:40:60;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2628:40:60;-1:-1:-1;;;;;2628:54:60;;;2620:87;;;;;-1:-1:-1;;;;;2620:87:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;2799:8;;;2784:12;:23;;-1:-1:-1;;;;;2799:8:60;;;-1:-1:-1;;2784:23:60;;;;;;;2886:22;;;;;;;;;;;2080:832::o;1165:37::-;;;-1:-1:-1;;;;;1165:37:60;;:::o;1159:176:66:-;1219:8;;-1:-1:-1;;;;;1219:8:66;1205:10;:22;1197:52;;;;;-1:-1:-1;;;;;1197:52:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;1277:8;;;1270:5;;1258:28;;-1:-1:-1;;;;;1277:8:66;;;;1270:5;;;;1258:28;;;1298:8;;;;1290:16;;-1:-1:-1;;1290:16:66;;;-1:-1:-1;;;;;1298:8:66;;1290:16;;;;1310:21;;;1159:176::o;1085:33:60:-;;;-1:-1:-1;;;;;1085:33:60;;:::o;157:20:66:-;;;-1:-1:-1;;;;;157:20:66;;:::o;2974:119:60:-;575:12:66;:10;:12::i;:::-;3077::60;;3066:8;:23;;-1:-1:-1;;3066:23:60;-1:-1:-1;;;;;3077:12:60;;;3066:23;;;;;;2974:119::o;180:23:66:-;;;-1:-1:-1;;;;;180:23:66;;:::o;945:140::-;575:12;:10;:12::i;:::-;1033:5;;-1:-1:-1;;;;;1020:18:66;;;1033:5;;1020:18;;1012:45;;;;;-1:-1:-1;;;;;1012:45:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;1061:8;:20;;-1:-1:-1;;1061:20:66;-1:-1:-1;;;;;1061:20:66;;;;;;;;;;945:140::o;642:93::-;704:5;;-1:-1:-1;;;;;704:5:66;690:10;:19;682:49;;;;;-1:-1:-1;;;;;682:49:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;642:93::o;3647:122:60:-;3732:8;;:33;;;;;;;;;;;;;;3712:7;;-1:-1:-1;;;;;3732:8:60;;:18;;:33;;;;;;;;;;;;;;3712:7;3732:8;:33;;;5:2:-1;;;;30:1;27;20:12;5:2;3732:33:60;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3732:33:60;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3732:33:60;;3647:122;-1:-1:-1;;3647:122:60:o" - }, - "methodIdentifiers": { - "acceptOwnership()": "79ba5097", - "newOwner()": "d4ee1d90", - "onlyOwnerCanUpdateRegistry()": "2fe8a6ad", - "owner()": "8da5cb5b", - "prevRegistry()": "61cd756e", - "registry()": "7b103999", - "restoreRegistry()": "b4a176d3", - "restrictRegistryUpdate(bool)": "024c7ec7", - "transferOwnership(address)": "f2fde38b", - "updateRegistry()": "49d10b64" - } - }, - "userdoc": { - "methods": {} - } - } - }, - "solidity/contracts/helpers/TestConverterFactory.sol": { - "TestConverterFactory": { - "abi": [ - { - "constant": false, - "inputs": [ - { - "name": "_factory", - "type": "address" - } - ], - "name": "registerTypedConverterFactory", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_type", - "type": "uint16" - }, - { - "name": "_anchor", - "type": "address" - }, - { - "name": "_registry", - "type": "address" - }, - { - "name": "_maxConversionFee", - "type": "uint32" - } - ], - "name": "createConverter", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "createdConverter", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_converterType", - "type": "uint16" - }, - { - "name": "_name", - "type": "string" - }, - { - "name": "_symbol", - "type": "string" - }, - { - "name": "_decimals", - "type": "uint8" - } - ], - "name": "createAnchor", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "", - "type": "uint16" - } - ], - "name": "converterFactories", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "", - "type": "uint16" - } - ], - "name": "anchorFactories", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "createdAnchor", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "acceptOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_factory", - "type": "address" - } - ], - "name": "registerTypedConverterCustomFactory", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "owner", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "", - "type": "uint16" - } - ], - "name": "customFactories", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "newOwner", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_factory", - "type": "address" - } - ], - "name": "registerTypedConverterAnchorFactory", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "_type", - "type": "uint16" - }, - { - "indexed": true, - "name": "_converter", - "type": "address" - }, - { - "indexed": true, - "name": "_owner", - "type": "address" - } - ], - "name": "NewConverter", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "_prevOwner", - "type": "address" - }, - { - "indexed": true, - "name": "_newOwner", - "type": "address" - } - ], - "name": "OwnerUpdate", - "type": "event" - } - ], - "devdoc": { - "methods": { - "acceptOwnership()": { - "details": "used by a new owner to accept an ownership transfer" - }, - "registerTypedConverterAnchorFactory(address)": { - "details": "initializes the factory with a specific typed converter anchor factory can only be called by the owner", - "params": { - "_factory": "typed converter anchor factory" - } - }, - "registerTypedConverterCustomFactory(address)": { - "details": "initializes the factory with a specific typed converter custom factory can only be called by the owner", - "params": { - "_factory": "typed converter custom factory" - } - }, - "registerTypedConverterFactory(address)": { - "details": "initializes the factory with a specific typed converter factory can only be called by the owner", - "params": { - "_factory": "typed converter factory" - } - }, - "transferOwnership(address)": { - "details": "allows transferring the contract ownership the new owner still needs to accept the transfer can only be called by the contract owner", - "params": { - "_newOwner": "new contract owner" - } - } - } - }, - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "608060405260008054600160a060020a03191633179055611f9f806100256000396000f300608060405260043610620000c55763ffffffff60e060020a60003504166312b4c6c18114620000ca57806315f64b6a14620000f05780631814f2d214620001465780632e9ab7b3146200015e578063327779a714620002065780633a8fc52014620002255780636a4e5391146200024457806379ba5097146200025c5780638cac5e2914620002745780638da5cb5b1462000298578063c977aed214620002b0578063d4ee1d9014620002cf578063e54b93ef14620002e7578063f2fde38b146200030b575b600080fd5b348015620000d757600080fd5b50620000ee600160a060020a03600435166200032f565b005b348015620000fd57600080fd5b506200012a61ffff60043516600160a060020a036024358116906044351663ffffffff60643516620003ed565b60408051600160a060020a039092168252519081900360200190f35b3480156200015357600080fd5b506200012a62000432565b3480156200016b57600080fd5b5060408051602060046024803582810135601f81018590048502860185019096528585526200012a95833561ffff1695369560449491939091019190819084018382808284375050604080516020601f89358b018035918201839004830284018301909452808352979a9998810197919650918201945092508291508401838280828437509497505050923560ff1693506200044192505050565b3480156200021357600080fd5b506200012a61ffff6004351662000486565b3480156200023257600080fd5b506200012a61ffff60043516620004a1565b3480156200025157600080fd5b506200012a620004bc565b3480156200026957600080fd5b50620000ee620004cb565b3480156200028157600080fd5b50620000ee600160a060020a0360043516620005b6565b348015620002a557600080fd5b506200012a62000604565b348015620002bd57600080fd5b506200012a61ffff6004351662000613565b348015620002dc57600080fd5b506200012a6200062e565b348015620002f457600080fd5b50620000ee600160a060020a03600435166200063d565b3480156200031857600080fd5b50620000ee600160a060020a03600435166200068b565b6200033962000742565b806002600083600160a060020a0316633e8ff43f6040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156200037d57600080fd5b505af115801562000392573d6000803e3d6000fd5b505050506040513d6020811015620003a957600080fd5b505161ffff1681526020810191909152604001600020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905550565b6000620003fd85858585620007be565b6005805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392831617908190551695945050505050565b600554600160a060020a031681565b60006200045185858585620009ae565b6006805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392831617908190551695945050505050565b600260205260009081526040902054600160a060020a031681565b600360205260009081526040902054600160a060020a031681565b600654600160a060020a031681565b600154600160a060020a031633146200054557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b60015460008054604051600160a060020a0393841693909116917f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91a3600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b620005c062000742565b806004600083600160a060020a0316633e8ff43f6040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156200037d57600080fd5b600054600160a060020a031681565b600460205260009081526040902054600160a060020a031681565b600154600160a060020a031681565b6200064762000742565b806003600083600160a060020a0316633e8ff43f6040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156200037d57600080fd5b6200069562000742565b600054600160a060020a03828116911614156200071357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f4552525f53414d455f4f574e4552000000000000000000000000000000000000604482015290519081900360640190fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600054600160a060020a03163314620007bc57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b565b61ffff841660009081526002602090815260408083205481517f11413958000000000000000000000000000000000000000000000000000000008152600160a060020a038881166004830152878116602483015263ffffffff8716604483015292518594939092169263114139589260648084019382900301818787803b1580156200084957600080fd5b505af11580156200085e573d6000803e3d6000fd5b505050506040513d60208110156200087557600080fd5b5051604080517f79ba50970000000000000000000000000000000000000000000000000000000081529051919250600160a060020a038316916379ba50979160048082019260009290919082900301818387803b158015620008d657600080fd5b505af1158015620008eb573d6000803e3d6000fd5b5050604080517ff2fde38b0000000000000000000000000000000000000000000000000000000081523360048201529051600160a060020a038516935063f2fde38b9250602480830192600092919082900301818387803b1580156200095057600080fd5b505af115801562000965573d6000803e3d6000fd5b5050604051339250600160a060020a038416915061ffff8916907fbb340bcea68d239ac719bc5cf8c9a1716df04ad3babb8d1e562aa44d19fea3a390600090a495945050505050565b61ffff84166000908152600360205260408120548190600160a060020a031680151562000ae757858585620009e262000d3a565b60ff82166040820152606080825284519082015283518190602080830191608084019188019080838360005b8381101562000a2857818101518382015260200162000a0e565b50505050905090810190601f16801562000a565780820380516001836020036101000a031916815260200191505b50838103825285518152855160209182019187019080838360005b8381101562000a8b57818101518382015260200162000a71565b50505050905090810190601f16801562000ab95780820380516001836020036101000a031916815260200191505b5095505050505050604051809103906000f08015801562000ade573d6000803e3d6000fd5b50915062000cb5565b80600160a060020a031663a9fd4a2a8787876040518463ffffffff1660e060020a0281526004018080602001806020018460ff1660ff168152602001838103835286818151815260200191508051906020019080838360005b8381101562000b5a57818101518382015260200162000b40565b50505050905090810190601f16801562000b885780820380516001836020036101000a031916815260200191505b50838103825285518152855160209182019187019080838360005b8381101562000bbd57818101518382015260200162000ba3565b50505050905090810190601f16801562000beb5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15801562000c0e57600080fd5b505af115801562000c23573d6000803e3d6000fd5b505050506040513d602081101562000c3a57600080fd5b5051604080517f79ba50970000000000000000000000000000000000000000000000000000000081529051919350600160a060020a038416916379ba50979160048082019260009290919082900301818387803b15801562000c9b57600080fd5b505af115801562000cb0573d6000803e3d6000fd5b505050505b604080517ff2fde38b0000000000000000000000000000000000000000000000000000000081523360048201529051600160a060020a0384169163f2fde38b91602480830192600092919082900301818387803b15801562000d1657600080fd5b505af115801562000d2b573d6000803e3d6000fd5b50939998505050505050505050565b6040516112288062000d4c83390190560060806040526008805460ff191660011790553480156200001e57600080fd5b506040516200122838038062001228833981016040908152815160208301519183015160008054600160a060020a0319163317815591840180519094939093019290918491849184918110620000d557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f4552525f494e56414c49445f4e414d4500000000000000000000000000000000604482015290519081900360640190fd5b82516000106200014657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f4552525f494e56414c49445f53594d424f4c0000000000000000000000000000604482015290519081900360640190fd5b83516200015b906002906020870190620001a8565b50825162000171906003906020860190620001a8565b506004805460ff191660ff9390931692909217909155600581905533600090815260066020526040902055506200024d9350505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620001eb57805160ff19168380011785556200021b565b828001600101855582156200021b579182015b828111156200021b578251825591602001919060010190620001fe565b50620002299291506200022d565b5090565b6200024a91905b8082111562000229576000815560010162000234565b90565b610fcb806200025d6000396000f3006080604052600436106101065763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde03811461010b578063095ea7b3146101955780631608f18f146101cd57806318160ddd146101e957806323b872dd14610210578063313ce5671461023a57806354fd4d50146102655780635e35359e1461029157806370a08231146102bb57806379ba5097146102dc578063867904b4146102f15780638da5cb5b1461031557806395d89b4114610346578063a24835d11461035b578063a9059cbb1461037f578063bef97c87146103a3578063d4ee1d90146103b8578063dd62ed3e146103cd578063f2fde38b146103f4575b600080fd5b34801561011757600080fd5b50610120610415565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561015a578181015183820152602001610142565b50505050905090810190601f1680156101875780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101a157600080fd5b506101b9600160a060020a03600435166024356104a0565b604080519115158252519081900360200190f35b3480156101d957600080fd5b506101e76004351515610598565b005b3480156101f557600080fd5b506101fe6105b2565b60408051918252519081900360200190f35b34801561021c57600080fd5b506101b9600160a060020a03600435811690602435166044356105b8565b34801561024657600080fd5b5061024f6105df565b6040805160ff9092168252519081900360200190f35b34801561027157600080fd5b5061027a6105e8565b6040805161ffff9092168252519081900360200190f35b34801561029d57600080fd5b506101e7600160a060020a03600435811690602435166044356105ed565b3480156102c757600080fd5b506101fe600160a060020a0360043516610626565b3480156102e857600080fd5b506101e7610638565b3480156102fd57600080fd5b506101e7600160a060020a036004351660243561070b565b34801561032157600080fd5b5061032a6107ed565b60408051600160a060020a039092168252519081900360200190f35b34801561035257600080fd5b506101206107fc565b34801561036757600080fd5b506101e7600160a060020a0360043516602435610857565b34801561038b57600080fd5b506101b9600160a060020a036004351660243561091d565b3480156103af57600080fd5b506101b9610942565b3480156103c457600080fd5b5061032a61094b565b3480156103d957600080fd5b506101fe600160a060020a036004358116906024351661095a565b34801561040057600080fd5b506101e7600160a060020a0360043516610977565b6002805460408051602060018416156101000260001901909316849004601f810184900484028201840190925281815292918301828280156104985780601f1061046d57610100808354040283529160200191610498565b820191906000526020600020905b81548152906001019060200180831161047b57829003601f168201915b505050505081565b6000826104ac81610a14565b8215806104da5750336000908152600760209081526040808320600160a060020a0388168452909152902054155b1515610530576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f494e56414c49445f414d4f554e540000000000000000000000000000604482015290519081900360640190fd5b336000818152600760209081526040808320600160a060020a03891680855290835292819020879055805187815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060019392505050565b6105a0610a77565b6008805460ff19169115919091179055565b60055481565b60006105c2610adb565b6105cd848484610b37565b15156105d557fe5b5060019392505050565b60045460ff1681565b600481565b6105f5610a77565b826105ff81610a14565b8261060981610a14565b8361061381610c48565b61061e868686610ca9565b505050505050565b60066020526000908152604090205481565b600154600160a060020a0316331461069a576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b60015460008054604051600160a060020a0393841693909116917f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91a3600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b610713610a77565b8161071d81610a14565b8261072781610c48565b60055461073a908463ffffffff610d6316565b600555600160a060020a038416600090815260066020526040902054610766908463ffffffff610d6316565b600160a060020a03851660009081526006602090815260409182902092909255805185815290517f9386c90217c323f58030f9dadcbc938f807a940f4ff41cd4cead9562f5da7dc3929181900390910190a1604080518481529051600160a060020a03861691600091600080516020610f808339815191529181900360200190a350505050565b600054600160a060020a031681565b6003805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156104985780601f1061046d57610100808354040283529160200191610498565b61085f610a77565b600160a060020a038216600090815260066020526040902054610888908263ffffffff610dc716565b600160a060020a0383166000908152600660205260409020556005546108b4908263ffffffff610dc716565b600555604080518281529051600091600160a060020a03851691600080516020610f808339815191529181900360200190a36040805182815290517f9a1b418bc061a5d80270261562e6986a35d995f8051145f277be16103abd34539181900360200190a15050565b6000610927610adb565b6109318383610e27565b151561093957fe5b50600192915050565b60085460ff1681565b600154600160a060020a031681565b600760209081526000928352604080842090915290825290205481565b61097f610a77565b600054600160a060020a03828116911614156109e5576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f53414d455f4f574e4552000000000000000000000000000000000000604482015290519081900360640190fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600160a060020a0381161515610a74576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b50565b600054600160a060020a03163314610ad9576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b565b60085460ff161515610ad9576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f5452414e53464552535f44495341424c454400000000000000000000604482015290519081900360640190fd5b600083610b4381610a14565b83610b4d81610a14565b600160a060020a0386166000908152600760209081526040808320338452909152902054610b81908563ffffffff610dc716565b600160a060020a038716600081815260076020908152604080832033845282528083209490945591815260069091522054610bc2908563ffffffff610dc716565b600160a060020a038088166000908152600660205260408082209390935590871681522054610bf7908563ffffffff610d6316565b600160a060020a0380871660008181526006602090815260409182902094909455805188815290519193928a1692600080516020610f8083398151915292918290030190a350600195945050505050565b600160a060020a038116301415610a74576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f414444524553535f49535f53454c4600000000000000000000000000604482015290519081900360640190fd5b604080517f7472616e7366657228616464726573732c75696e74323536290000000000000081528151908190036019018120600160a060020a038516602483015260448083018590528351808403909101815260649092019092526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152610d5e908490610ed2565b505050565b600082820183811015610dc0576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b9392505050565b600081831015610e21576040805160e560020a62461bcd02815260206004820152600d60248201527f4552525f554e444552464c4f5700000000000000000000000000000000000000604482015290519081900360640190fd5b50900390565b600082610e3381610a14565b33600090815260066020526040902054610e53908463ffffffff610dc716565b3360009081526006602052604080822092909255600160a060020a03861681522054610e85908463ffffffff610d6316565b600160a060020a038516600081815260066020908152604091829020939093558051868152905191923392600080516020610f808339815191529281900390910190a35060019392505050565b610eda610f60565b602060405190810160405280600181525090506020818351602085016000875af1801515610f0757600080fd5b5080511515610d5e576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f5452414e534645525f4641494c454400000000000000000000000000604482015290519081900360640190fd5b60206040519081016040528060019060208202803883395091929150505600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a7230582031b56aebc8336b547b3e1346f50c2f44f70def554ed4cba4c81bcf2e092d047f0029a165627a7a7230582033b1e99a66879fc8e2fa7dcc6d6d541acb31b7108ea8f2ebb15eaa4554f7bd6b0029", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND CALLER OR SWAP1 SSTORE PUSH2 0x1F9F DUP1 PUSH2 0x25 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH3 0xC5 JUMPI PUSH4 0xFFFFFFFF PUSH1 0xE0 PUSH1 0x2 EXP PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x12B4C6C1 DUP2 EQ PUSH3 0xCA JUMPI DUP1 PUSH4 0x15F64B6A EQ PUSH3 0xF0 JUMPI DUP1 PUSH4 0x1814F2D2 EQ PUSH3 0x146 JUMPI DUP1 PUSH4 0x2E9AB7B3 EQ PUSH3 0x15E JUMPI DUP1 PUSH4 0x327779A7 EQ PUSH3 0x206 JUMPI DUP1 PUSH4 0x3A8FC520 EQ PUSH3 0x225 JUMPI DUP1 PUSH4 0x6A4E5391 EQ PUSH3 0x244 JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH3 0x25C JUMPI DUP1 PUSH4 0x8CAC5E29 EQ PUSH3 0x274 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH3 0x298 JUMPI DUP1 PUSH4 0xC977AED2 EQ PUSH3 0x2B0 JUMPI DUP1 PUSH4 0xD4EE1D90 EQ PUSH3 0x2CF JUMPI DUP1 PUSH4 0xE54B93EF EQ PUSH3 0x2E7 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH3 0x30B JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0xD7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0xEE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH3 0x32F JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0xFD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x12A PUSH2 0xFFFF PUSH1 0x4 CALLDATALOAD AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x24 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x44 CALLDATALOAD AND PUSH4 0xFFFFFFFF PUSH1 0x64 CALLDATALOAD AND PUSH3 0x3ED JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0x153 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x12A PUSH3 0x432 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0x16B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 PUSH1 0x24 DUP1 CALLDATALOAD DUP3 DUP2 ADD CALLDATALOAD PUSH1 0x1F DUP2 ADD DUP6 SWAP1 DIV DUP6 MUL DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP6 DUP6 MSTORE PUSH3 0x12A SWAP6 DUP4 CALLDATALOAD PUSH2 0xFFFF AND SWAP6 CALLDATASIZE SWAP6 PUSH1 0x44 SWAP5 SWAP2 SWAP4 SWAP1 SWAP2 ADD SWAP2 SWAP1 DUP2 SWAP1 DUP5 ADD DUP4 DUP3 DUP1 DUP3 DUP5 CALLDATACOPY POP POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x1F DUP10 CALLDATALOAD DUP12 ADD DUP1 CALLDATALOAD SWAP2 DUP3 ADD DUP4 SWAP1 DIV DUP4 MUL DUP5 ADD DUP4 ADD SWAP1 SWAP5 MSTORE DUP1 DUP4 MSTORE SWAP8 SWAP11 SWAP10 SWAP9 DUP2 ADD SWAP8 SWAP2 SWAP7 POP SWAP2 DUP3 ADD SWAP5 POP SWAP3 POP DUP3 SWAP2 POP DUP5 ADD DUP4 DUP3 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP POP POP SWAP3 CALLDATALOAD PUSH1 0xFF AND SWAP4 POP PUSH3 0x441 SWAP3 POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0x213 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x12A PUSH2 0xFFFF PUSH1 0x4 CALLDATALOAD AND PUSH3 0x486 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0x232 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x12A PUSH2 0xFFFF PUSH1 0x4 CALLDATALOAD AND PUSH3 0x4A1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0x251 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x12A PUSH3 0x4BC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0x269 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0xEE PUSH3 0x4CB JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0x281 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0xEE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH3 0x5B6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0x2A5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x12A PUSH3 0x604 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0x2BD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x12A PUSH2 0xFFFF PUSH1 0x4 CALLDATALOAD AND PUSH3 0x613 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0x2DC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x12A PUSH3 0x62E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0x2F4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0xEE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH3 0x63D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0x318 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0xEE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH3 0x68B JUMP JUMPDEST PUSH3 0x339 PUSH3 0x742 JUMP JUMPDEST DUP1 PUSH1 0x2 PUSH1 0x0 DUP4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x3E8FF43F PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH3 0x37D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH3 0x392 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH3 0x3A9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x3FD DUP6 DUP6 DUP6 DUP6 PUSH3 0x7BE JUMP JUMPDEST PUSH1 0x5 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 DUP4 AND OR SWAP1 DUP2 SWAP1 SSTORE AND SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH3 0x451 DUP6 DUP6 DUP6 DUP6 PUSH3 0x9AE JUMP JUMPDEST PUSH1 0x6 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 DUP4 AND OR SWAP1 DUP2 SWAP1 SSTORE AND SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH3 0x545 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND SWAP4 SWAP1 SWAP2 AND SWAP2 PUSH32 0x343765429AEA5A34B3FF6A3785A98A5ABB2597ACA87BFBB58632C173D585373A SWAP2 LOG3 PUSH1 0x1 DUP1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND OR SWAP1 SWAP2 SSTORE AND SWAP1 SSTORE JUMP JUMPDEST PUSH3 0x5C0 PUSH3 0x742 JUMP JUMPDEST DUP1 PUSH1 0x4 PUSH1 0x0 DUP4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x3E8FF43F PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH3 0x37D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH3 0x647 PUSH3 0x742 JUMP JUMPDEST DUP1 PUSH1 0x3 PUSH1 0x0 DUP4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x3E8FF43F PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH3 0x37D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH3 0x695 PUSH3 0x742 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ ISZERO PUSH3 0x713 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F4F574E4552000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH3 0x7BC JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH2 0xFFFF DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD DUP2 MLOAD PUSH32 0x1141395800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP8 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH4 0xFFFFFFFF DUP8 AND PUSH1 0x44 DUP4 ADD MSTORE SWAP3 MLOAD DUP6 SWAP5 SWAP4 SWAP1 SWAP3 AND SWAP3 PUSH4 0x11413958 SWAP3 PUSH1 0x64 DUP1 DUP5 ADD SWAP4 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH3 0x849 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH3 0x85E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH3 0x875 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x79BA509700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 AND SWAP2 PUSH4 0x79BA5097 SWAP2 PUSH1 0x4 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH3 0x8D6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH3 0x8EB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 DUP1 MLOAD PUSH32 0xF2FDE38B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND SWAP4 POP PUSH4 0xF2FDE38B SWAP3 POP PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH3 0x950 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH3 0x965 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD CALLER SWAP3 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP2 POP PUSH2 0xFFFF DUP10 AND SWAP1 PUSH32 0xBB340BCEA68D239AC719BC5CF8C9A1716DF04AD3BABB8D1E562AA44D19FEA3A3 SWAP1 PUSH1 0x0 SWAP1 LOG4 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP2 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP1 ISZERO ISZERO PUSH3 0xAE7 JUMPI DUP6 DUP6 DUP6 PUSH3 0x9E2 PUSH3 0xD3A JUMP JUMPDEST PUSH1 0xFF DUP3 AND PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP1 DUP3 MSTORE DUP5 MLOAD SWAP1 DUP3 ADD MSTORE DUP4 MLOAD DUP2 SWAP1 PUSH1 0x20 DUP1 DUP4 ADD SWAP2 PUSH1 0x80 DUP5 ADD SWAP2 DUP9 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH3 0xA28 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH3 0xA0E JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH3 0xA56 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP DUP4 DUP2 SUB DUP3 MSTORE DUP6 MLOAD DUP2 MSTORE DUP6 MLOAD PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 DUP8 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH3 0xA8B JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH3 0xA71 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH3 0xAB9 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP6 POP POP POP POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 PUSH1 0x0 CREATE DUP1 ISZERO DUP1 ISZERO PUSH3 0xADE JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP SWAP2 POP PUSH3 0xCB5 JUMP JUMPDEST DUP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xA9FD4A2A DUP8 DUP8 DUP8 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP5 PUSH1 0xFF AND PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 SUB DUP4 MSTORE DUP7 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH3 0xB5A JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH3 0xB40 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH3 0xB88 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP DUP4 DUP2 SUB DUP3 MSTORE DUP6 MLOAD DUP2 MSTORE DUP6 MLOAD PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 DUP8 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH3 0xBBD JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH3 0xBA3 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH3 0xBEB JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP6 POP POP POP POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH3 0xC0E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH3 0xC23 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH3 0xC3A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x79BA509700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP4 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP2 PUSH4 0x79BA5097 SWAP2 PUSH1 0x4 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH3 0xC9B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH3 0xCB0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0xF2FDE38B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP2 PUSH4 0xF2FDE38B SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH3 0xD16 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH3 0xD2B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP SWAP4 SWAP10 SWAP9 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1228 DUP1 PUSH3 0xD4C DUP4 CODECOPY ADD SWAP1 JUMP STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x8 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE CALLVALUE DUP1 ISZERO PUSH3 0x1E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x1228 CODESIZE SUB DUP1 PUSH3 0x1228 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 SWAP1 DUP2 MSTORE DUP2 MLOAD PUSH1 0x20 DUP4 ADD MLOAD SWAP2 DUP4 ADD MLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND CALLER OR DUP2 SSTORE SWAP2 DUP5 ADD DUP1 MLOAD SWAP1 SWAP5 SWAP4 SWAP1 SWAP4 ADD SWAP3 SWAP1 SWAP2 DUP5 SWAP2 DUP5 SWAP2 DUP5 SWAP2 DUP2 LT PUSH3 0xD5 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4E414D4500000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP3 MLOAD PUSH1 0x0 LT PUSH3 0x146 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F53594D424F4C0000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP4 MLOAD PUSH3 0x15B SWAP1 PUSH1 0x2 SWAP1 PUSH1 0x20 DUP8 ADD SWAP1 PUSH3 0x1A8 JUMP JUMPDEST POP DUP3 MLOAD PUSH3 0x171 SWAP1 PUSH1 0x3 SWAP1 PUSH1 0x20 DUP7 ADD SWAP1 PUSH3 0x1A8 JUMP JUMPDEST POP PUSH1 0x4 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0xFF SWAP4 SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 SSTORE PUSH1 0x5 DUP2 SWAP1 SSTORE CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE POP PUSH3 0x24D SWAP4 POP POP POP POP JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH1 0x1F LT PUSH3 0x1EB JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH3 0x21B JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH3 0x21B JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH3 0x21B JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH3 0x1FE JUMP JUMPDEST POP PUSH3 0x229 SWAP3 SWAP2 POP PUSH3 0x22D JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH3 0x24A SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH3 0x229 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH3 0x234 JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH2 0xFCB DUP1 PUSH3 0x25D PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x106 JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x6FDDE03 DUP2 EQ PUSH2 0x10B JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x195 JUMPI DUP1 PUSH4 0x1608F18F EQ PUSH2 0x1CD JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x1E9 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x210 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x23A JUMPI DUP1 PUSH4 0x54FD4D50 EQ PUSH2 0x265 JUMPI DUP1 PUSH4 0x5E35359E EQ PUSH2 0x291 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x2BB JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x2DC JUMPI DUP1 PUSH4 0x867904B4 EQ PUSH2 0x2F1 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x315 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x346 JUMPI DUP1 PUSH4 0xA24835D1 EQ PUSH2 0x35B JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x37F JUMPI DUP1 PUSH4 0xBEF97C87 EQ PUSH2 0x3A3 JUMPI DUP1 PUSH4 0xD4EE1D90 EQ PUSH2 0x3B8 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x3CD JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x3F4 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x117 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x120 PUSH2 0x415 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP4 MLOAD DUP2 DUP4 ADD MSTORE DUP4 MLOAD SWAP2 SWAP3 DUP4 SWAP3 SWAP1 DUP4 ADD SWAP2 DUP6 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x15A JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x142 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x187 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1A1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B9 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x4A0 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1D9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH1 0x4 CALLDATALOAD ISZERO ISZERO PUSH2 0x598 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1FE PUSH2 0x5B2 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x21C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B9 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x5B8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x246 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x24F PUSH2 0x5DF JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x271 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x27A PUSH2 0x5E8 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0xFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x29D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x5ED JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2C7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1FE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x626 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2E8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH2 0x638 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2FD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x70B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x321 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x32A PUSH2 0x7ED JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x352 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x120 PUSH2 0x7FC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x367 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x857 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x38B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B9 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x91D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3AF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B9 PUSH2 0x942 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3C4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x32A PUSH2 0x94B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3D9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1FE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH2 0x95A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x400 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x977 JUMP JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x1 DUP5 AND ISZERO PUSH2 0x100 MUL PUSH1 0x0 NOT ADD SWAP1 SWAP4 AND DUP5 SWAP1 DIV PUSH1 0x1F DUP2 ADD DUP5 SWAP1 DIV DUP5 MUL DUP3 ADD DUP5 ADD SWAP1 SWAP3 MSTORE DUP2 DUP2 MSTORE SWAP3 SWAP2 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x498 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x46D JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x498 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x47B JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x4AC DUP2 PUSH2 0xA14 JUMP JUMPDEST DUP3 ISZERO DUP1 PUSH2 0x4DA JUMPI POP CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x530 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F414D4F554E540000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST CALLER PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP10 AND DUP1 DUP6 MSTORE SWAP1 DUP4 MSTORE SWAP3 DUP2 SWAP1 KECCAK256 DUP8 SWAP1 SSTORE DUP1 MLOAD DUP8 DUP2 MSTORE SWAP1 MLOAD SWAP3 SWAP4 SWAP3 PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP3 SWAP2 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x5A0 PUSH2 0xA77 JUMP JUMPDEST PUSH1 0x8 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP2 ISZERO SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x5 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5C2 PUSH2 0xADB JUMP JUMPDEST PUSH2 0x5CD DUP5 DUP5 DUP5 PUSH2 0xB37 JUMP JUMPDEST ISZERO ISZERO PUSH2 0x5D5 JUMPI INVALID JUMPDEST POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x4 DUP2 JUMP JUMPDEST PUSH2 0x5F5 PUSH2 0xA77 JUMP JUMPDEST DUP3 PUSH2 0x5FF DUP2 PUSH2 0xA14 JUMP JUMPDEST DUP3 PUSH2 0x609 DUP2 PUSH2 0xA14 JUMP JUMPDEST DUP4 PUSH2 0x613 DUP2 PUSH2 0xC48 JUMP JUMPDEST PUSH2 0x61E DUP7 DUP7 DUP7 PUSH2 0xCA9 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x69A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND SWAP4 SWAP1 SWAP2 AND SWAP2 PUSH32 0x343765429AEA5A34B3FF6A3785A98A5ABB2597ACA87BFBB58632C173D585373A SWAP2 LOG3 PUSH1 0x1 DUP1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND OR SWAP1 SWAP2 SSTORE AND SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x713 PUSH2 0xA77 JUMP JUMPDEST DUP2 PUSH2 0x71D DUP2 PUSH2 0xA14 JUMP JUMPDEST DUP3 PUSH2 0x727 DUP2 PUSH2 0xC48 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH2 0x73A SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0xD63 AND JUMP JUMPDEST PUSH1 0x5 SSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x766 SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0xD63 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SWAP3 SWAP1 SWAP3 SSTORE DUP1 MLOAD DUP6 DUP2 MSTORE SWAP1 MLOAD PUSH32 0x9386C90217C323F58030F9DADCBC938F807A940F4FF41CD4CEAD9562F5DA7DC3 SWAP3 SWAP2 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG1 PUSH1 0x40 DUP1 MLOAD DUP5 DUP2 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND SWAP2 PUSH1 0x0 SWAP2 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xF80 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP2 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 LOG3 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x2 PUSH1 0x1 DUP6 AND ISZERO PUSH2 0x100 MUL PUSH1 0x0 NOT ADD SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 DIV PUSH1 0x1F DUP2 ADD DUP5 SWAP1 DIV DUP5 MUL DUP3 ADD DUP5 ADD SWAP1 SWAP3 MSTORE DUP2 DUP2 MSTORE SWAP3 SWAP2 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x498 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x46D JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x498 JUMP JUMPDEST PUSH2 0x85F PUSH2 0xA77 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x888 SWAP1 DUP3 PUSH4 0xFFFFFFFF PUSH2 0xDC7 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE PUSH1 0x5 SLOAD PUSH2 0x8B4 SWAP1 DUP3 PUSH4 0xFFFFFFFF PUSH2 0xDC7 AND JUMP JUMPDEST PUSH1 0x5 SSTORE PUSH1 0x40 DUP1 MLOAD DUP3 DUP2 MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND SWAP2 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xF80 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP2 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 LOG3 PUSH1 0x40 DUP1 MLOAD DUP3 DUP2 MSTORE SWAP1 MLOAD PUSH32 0x9A1B418BC061A5D80270261562E6986A35D995F8051145F277BE16103ABD3453 SWAP2 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x927 PUSH2 0xADB JUMP JUMPDEST PUSH2 0x931 DUP4 DUP4 PUSH2 0xE27 JUMP JUMPDEST ISZERO ISZERO PUSH2 0x939 JUMPI INVALID JUMPDEST POP PUSH1 0x1 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x97F PUSH2 0xA77 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x9E5 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F4F574E4552000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0xA74 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0xAD9 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0xFF AND ISZERO ISZERO PUSH2 0xAD9 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5452414E53464552535F44495341424C454400000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP4 PUSH2 0xB43 DUP2 PUSH2 0xA14 JUMP JUMPDEST DUP4 PUSH2 0xB4D DUP2 PUSH2 0xA14 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH2 0xB81 SWAP1 DUP6 PUSH4 0xFFFFFFFF PUSH2 0xDC7 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE DUP3 MSTORE DUP1 DUP4 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE SWAP2 DUP2 MSTORE PUSH1 0x6 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD PUSH2 0xBC2 SWAP1 DUP6 PUSH4 0xFFFFFFFF PUSH2 0xDC7 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE SWAP1 DUP8 AND DUP2 MSTORE KECCAK256 SLOAD PUSH2 0xBF7 SWAP1 DUP6 PUSH4 0xFFFFFFFF PUSH2 0xD63 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP8 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE DUP1 MLOAD DUP9 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP4 SWAP3 DUP11 AND SWAP3 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xF80 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP3 SWAP2 DUP3 SWAP1 SUB ADD SWAP1 LOG3 POP PUSH1 0x1 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ADDRESS EQ ISZERO PUSH2 0xA74 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F414444524553535F49535F53454C4600000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x7472616E7366657228616464726573732C75696E743235362900000000000000 DUP2 MSTORE DUP2 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x19 ADD DUP2 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x64 SWAP1 SWAP3 ADD SWAP1 SWAP3 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE PUSH2 0xD5E SWAP1 DUP5 SWAP1 PUSH2 0xED2 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 ADD DUP4 DUP2 LT ISZERO PUSH2 0xDC0 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT ISZERO PUSH2 0xE21 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F554E444552464C4F5700000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP SWAP1 SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0xE33 DUP2 PUSH2 0xA14 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0xE53 SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0xDC7 AND JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP3 SWAP1 SWAP3 SSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND DUP2 MSTORE KECCAK256 SLOAD PUSH2 0xE85 SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0xD63 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE DUP1 MLOAD DUP7 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP3 CALLER SWAP3 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xF80 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0xEDA PUSH2 0xF60 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE POP SWAP1 POP PUSH1 0x20 DUP2 DUP4 MLOAD PUSH1 0x20 DUP6 ADD PUSH1 0x0 DUP8 GAS CALL DUP1 ISZERO ISZERO PUSH2 0xF07 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD ISZERO ISZERO PUSH2 0xD5E JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5452414E534645525F4641494C454400000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 SWAP1 PUSH1 0x20 DUP3 MUL DUP1 CODESIZE DUP4 CODECOPY POP SWAP2 SWAP3 SWAP2 POP POP JUMP STOP 0xdd CALLCODE MSTORE 0xad SHL 0xe2 0xc8 SWAP12 PUSH10 0xC2B068FC378DAA952BA7 CALL PUSH4 0xC4A11628 0xf5 GAS 0x4d 0xf5 0x23 0xb3 0xef LOG1 PUSH6 0x627A7A723058 KECCAK256 BALANCE 0xb5 PUSH11 0xEBC8336B547B3E1346F50C 0x2f DIFFICULTY 0xf7 0xd 0xef SSTORE 0x4e 0xd4 0xcb LOG4 0xc8 SHL 0xcf 0x2e MULMOD 0x2d DIV PUSH32 0x29A165627A7A7230582033B1E99A66879FC8E2FA7DCC6D6D541ACB31B7108E 0xa8 CALLCODE 0xeb 0xb1 0x5e 0xaa GASLIMIT SLOAD 0xf7 0xbd PUSH12 0x2900000000000000000000 ", - "sourceMap": "142:664:34:-;;;488:5:66;:18;;-1:-1:-1;;;;;;488:18:66;496:10;488:18;;;142:664:34;;;;;;" - }, - "deployedBytecode": { - "linkReferences": {}, - "object": "608060405260043610620000c55763ffffffff60e060020a60003504166312b4c6c18114620000ca57806315f64b6a14620000f05780631814f2d214620001465780632e9ab7b3146200015e578063327779a714620002065780633a8fc52014620002255780636a4e5391146200024457806379ba5097146200025c5780638cac5e2914620002745780638da5cb5b1462000298578063c977aed214620002b0578063d4ee1d9014620002cf578063e54b93ef14620002e7578063f2fde38b146200030b575b600080fd5b348015620000d757600080fd5b50620000ee600160a060020a03600435166200032f565b005b348015620000fd57600080fd5b506200012a61ffff60043516600160a060020a036024358116906044351663ffffffff60643516620003ed565b60408051600160a060020a039092168252519081900360200190f35b3480156200015357600080fd5b506200012a62000432565b3480156200016b57600080fd5b5060408051602060046024803582810135601f81018590048502860185019096528585526200012a95833561ffff1695369560449491939091019190819084018382808284375050604080516020601f89358b018035918201839004830284018301909452808352979a9998810197919650918201945092508291508401838280828437509497505050923560ff1693506200044192505050565b3480156200021357600080fd5b506200012a61ffff6004351662000486565b3480156200023257600080fd5b506200012a61ffff60043516620004a1565b3480156200025157600080fd5b506200012a620004bc565b3480156200026957600080fd5b50620000ee620004cb565b3480156200028157600080fd5b50620000ee600160a060020a0360043516620005b6565b348015620002a557600080fd5b506200012a62000604565b348015620002bd57600080fd5b506200012a61ffff6004351662000613565b348015620002dc57600080fd5b506200012a6200062e565b348015620002f457600080fd5b50620000ee600160a060020a03600435166200063d565b3480156200031857600080fd5b50620000ee600160a060020a03600435166200068b565b6200033962000742565b806002600083600160a060020a0316633e8ff43f6040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156200037d57600080fd5b505af115801562000392573d6000803e3d6000fd5b505050506040513d6020811015620003a957600080fd5b505161ffff1681526020810191909152604001600020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905550565b6000620003fd85858585620007be565b6005805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392831617908190551695945050505050565b600554600160a060020a031681565b60006200045185858585620009ae565b6006805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392831617908190551695945050505050565b600260205260009081526040902054600160a060020a031681565b600360205260009081526040902054600160a060020a031681565b600654600160a060020a031681565b600154600160a060020a031633146200054557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b60015460008054604051600160a060020a0393841693909116917f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91a3600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b620005c062000742565b806004600083600160a060020a0316633e8ff43f6040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156200037d57600080fd5b600054600160a060020a031681565b600460205260009081526040902054600160a060020a031681565b600154600160a060020a031681565b6200064762000742565b806003600083600160a060020a0316633e8ff43f6040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156200037d57600080fd5b6200069562000742565b600054600160a060020a03828116911614156200071357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f4552525f53414d455f4f574e4552000000000000000000000000000000000000604482015290519081900360640190fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600054600160a060020a03163314620007bc57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b565b61ffff841660009081526002602090815260408083205481517f11413958000000000000000000000000000000000000000000000000000000008152600160a060020a038881166004830152878116602483015263ffffffff8716604483015292518594939092169263114139589260648084019382900301818787803b1580156200084957600080fd5b505af11580156200085e573d6000803e3d6000fd5b505050506040513d60208110156200087557600080fd5b5051604080517f79ba50970000000000000000000000000000000000000000000000000000000081529051919250600160a060020a038316916379ba50979160048082019260009290919082900301818387803b158015620008d657600080fd5b505af1158015620008eb573d6000803e3d6000fd5b5050604080517ff2fde38b0000000000000000000000000000000000000000000000000000000081523360048201529051600160a060020a038516935063f2fde38b9250602480830192600092919082900301818387803b1580156200095057600080fd5b505af115801562000965573d6000803e3d6000fd5b5050604051339250600160a060020a038416915061ffff8916907fbb340bcea68d239ac719bc5cf8c9a1716df04ad3babb8d1e562aa44d19fea3a390600090a495945050505050565b61ffff84166000908152600360205260408120548190600160a060020a031680151562000ae757858585620009e262000d3a565b60ff82166040820152606080825284519082015283518190602080830191608084019188019080838360005b8381101562000a2857818101518382015260200162000a0e565b50505050905090810190601f16801562000a565780820380516001836020036101000a031916815260200191505b50838103825285518152855160209182019187019080838360005b8381101562000a8b57818101518382015260200162000a71565b50505050905090810190601f16801562000ab95780820380516001836020036101000a031916815260200191505b5095505050505050604051809103906000f08015801562000ade573d6000803e3d6000fd5b50915062000cb5565b80600160a060020a031663a9fd4a2a8787876040518463ffffffff1660e060020a0281526004018080602001806020018460ff1660ff168152602001838103835286818151815260200191508051906020019080838360005b8381101562000b5a57818101518382015260200162000b40565b50505050905090810190601f16801562000b885780820380516001836020036101000a031916815260200191505b50838103825285518152855160209182019187019080838360005b8381101562000bbd57818101518382015260200162000ba3565b50505050905090810190601f16801562000beb5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15801562000c0e57600080fd5b505af115801562000c23573d6000803e3d6000fd5b505050506040513d602081101562000c3a57600080fd5b5051604080517f79ba50970000000000000000000000000000000000000000000000000000000081529051919350600160a060020a038416916379ba50979160048082019260009290919082900301818387803b15801562000c9b57600080fd5b505af115801562000cb0573d6000803e3d6000fd5b505050505b604080517ff2fde38b0000000000000000000000000000000000000000000000000000000081523360048201529051600160a060020a0384169163f2fde38b91602480830192600092919082900301818387803b15801562000d1657600080fd5b505af115801562000d2b573d6000803e3d6000fd5b50939998505050505050505050565b6040516112288062000d4c83390190560060806040526008805460ff191660011790553480156200001e57600080fd5b506040516200122838038062001228833981016040908152815160208301519183015160008054600160a060020a0319163317815591840180519094939093019290918491849184918110620000d557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f4552525f494e56414c49445f4e414d4500000000000000000000000000000000604482015290519081900360640190fd5b82516000106200014657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f4552525f494e56414c49445f53594d424f4c0000000000000000000000000000604482015290519081900360640190fd5b83516200015b906002906020870190620001a8565b50825162000171906003906020860190620001a8565b506004805460ff191660ff9390931692909217909155600581905533600090815260066020526040902055506200024d9350505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620001eb57805160ff19168380011785556200021b565b828001600101855582156200021b579182015b828111156200021b578251825591602001919060010190620001fe565b50620002299291506200022d565b5090565b6200024a91905b8082111562000229576000815560010162000234565b90565b610fcb806200025d6000396000f3006080604052600436106101065763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde03811461010b578063095ea7b3146101955780631608f18f146101cd57806318160ddd146101e957806323b872dd14610210578063313ce5671461023a57806354fd4d50146102655780635e35359e1461029157806370a08231146102bb57806379ba5097146102dc578063867904b4146102f15780638da5cb5b1461031557806395d89b4114610346578063a24835d11461035b578063a9059cbb1461037f578063bef97c87146103a3578063d4ee1d90146103b8578063dd62ed3e146103cd578063f2fde38b146103f4575b600080fd5b34801561011757600080fd5b50610120610415565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561015a578181015183820152602001610142565b50505050905090810190601f1680156101875780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101a157600080fd5b506101b9600160a060020a03600435166024356104a0565b604080519115158252519081900360200190f35b3480156101d957600080fd5b506101e76004351515610598565b005b3480156101f557600080fd5b506101fe6105b2565b60408051918252519081900360200190f35b34801561021c57600080fd5b506101b9600160a060020a03600435811690602435166044356105b8565b34801561024657600080fd5b5061024f6105df565b6040805160ff9092168252519081900360200190f35b34801561027157600080fd5b5061027a6105e8565b6040805161ffff9092168252519081900360200190f35b34801561029d57600080fd5b506101e7600160a060020a03600435811690602435166044356105ed565b3480156102c757600080fd5b506101fe600160a060020a0360043516610626565b3480156102e857600080fd5b506101e7610638565b3480156102fd57600080fd5b506101e7600160a060020a036004351660243561070b565b34801561032157600080fd5b5061032a6107ed565b60408051600160a060020a039092168252519081900360200190f35b34801561035257600080fd5b506101206107fc565b34801561036757600080fd5b506101e7600160a060020a0360043516602435610857565b34801561038b57600080fd5b506101b9600160a060020a036004351660243561091d565b3480156103af57600080fd5b506101b9610942565b3480156103c457600080fd5b5061032a61094b565b3480156103d957600080fd5b506101fe600160a060020a036004358116906024351661095a565b34801561040057600080fd5b506101e7600160a060020a0360043516610977565b6002805460408051602060018416156101000260001901909316849004601f810184900484028201840190925281815292918301828280156104985780601f1061046d57610100808354040283529160200191610498565b820191906000526020600020905b81548152906001019060200180831161047b57829003601f168201915b505050505081565b6000826104ac81610a14565b8215806104da5750336000908152600760209081526040808320600160a060020a0388168452909152902054155b1515610530576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f494e56414c49445f414d4f554e540000000000000000000000000000604482015290519081900360640190fd5b336000818152600760209081526040808320600160a060020a03891680855290835292819020879055805187815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060019392505050565b6105a0610a77565b6008805460ff19169115919091179055565b60055481565b60006105c2610adb565b6105cd848484610b37565b15156105d557fe5b5060019392505050565b60045460ff1681565b600481565b6105f5610a77565b826105ff81610a14565b8261060981610a14565b8361061381610c48565b61061e868686610ca9565b505050505050565b60066020526000908152604090205481565b600154600160a060020a0316331461069a576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b60015460008054604051600160a060020a0393841693909116917f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91a3600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b610713610a77565b8161071d81610a14565b8261072781610c48565b60055461073a908463ffffffff610d6316565b600555600160a060020a038416600090815260066020526040902054610766908463ffffffff610d6316565b600160a060020a03851660009081526006602090815260409182902092909255805185815290517f9386c90217c323f58030f9dadcbc938f807a940f4ff41cd4cead9562f5da7dc3929181900390910190a1604080518481529051600160a060020a03861691600091600080516020610f808339815191529181900360200190a350505050565b600054600160a060020a031681565b6003805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156104985780601f1061046d57610100808354040283529160200191610498565b61085f610a77565b600160a060020a038216600090815260066020526040902054610888908263ffffffff610dc716565b600160a060020a0383166000908152600660205260409020556005546108b4908263ffffffff610dc716565b600555604080518281529051600091600160a060020a03851691600080516020610f808339815191529181900360200190a36040805182815290517f9a1b418bc061a5d80270261562e6986a35d995f8051145f277be16103abd34539181900360200190a15050565b6000610927610adb565b6109318383610e27565b151561093957fe5b50600192915050565b60085460ff1681565b600154600160a060020a031681565b600760209081526000928352604080842090915290825290205481565b61097f610a77565b600054600160a060020a03828116911614156109e5576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f53414d455f4f574e4552000000000000000000000000000000000000604482015290519081900360640190fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600160a060020a0381161515610a74576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b50565b600054600160a060020a03163314610ad9576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b565b60085460ff161515610ad9576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f5452414e53464552535f44495341424c454400000000000000000000604482015290519081900360640190fd5b600083610b4381610a14565b83610b4d81610a14565b600160a060020a0386166000908152600760209081526040808320338452909152902054610b81908563ffffffff610dc716565b600160a060020a038716600081815260076020908152604080832033845282528083209490945591815260069091522054610bc2908563ffffffff610dc716565b600160a060020a038088166000908152600660205260408082209390935590871681522054610bf7908563ffffffff610d6316565b600160a060020a0380871660008181526006602090815260409182902094909455805188815290519193928a1692600080516020610f8083398151915292918290030190a350600195945050505050565b600160a060020a038116301415610a74576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f414444524553535f49535f53454c4600000000000000000000000000604482015290519081900360640190fd5b604080517f7472616e7366657228616464726573732c75696e74323536290000000000000081528151908190036019018120600160a060020a038516602483015260448083018590528351808403909101815260649092019092526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152610d5e908490610ed2565b505050565b600082820183811015610dc0576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b9392505050565b600081831015610e21576040805160e560020a62461bcd02815260206004820152600d60248201527f4552525f554e444552464c4f5700000000000000000000000000000000000000604482015290519081900360640190fd5b50900390565b600082610e3381610a14565b33600090815260066020526040902054610e53908463ffffffff610dc716565b3360009081526006602052604080822092909255600160a060020a03861681522054610e85908463ffffffff610d6316565b600160a060020a038516600081815260066020908152604091829020939093558051868152905191923392600080516020610f808339815191529281900390910190a35060019392505050565b610eda610f60565b602060405190810160405280600181525090506020818351602085016000875af1801515610f0757600080fd5b5080511515610d5e576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f5452414e534645525f4641494c454400000000000000000000000000604482015290519081900360640190fd5b60206040519081016040528060019060208202803883395091929150505600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a7230582031b56aebc8336b547b3e1346f50c2f44f70def554ed4cba4c81bcf2e092d047f0029a165627a7a7230582033b1e99a66879fc8e2fa7dcc6d6d541acb31b7108ea8f2ebb15eaa4554f7bd6b0029", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH3 0xC5 JUMPI PUSH4 0xFFFFFFFF PUSH1 0xE0 PUSH1 0x2 EXP PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x12B4C6C1 DUP2 EQ PUSH3 0xCA JUMPI DUP1 PUSH4 0x15F64B6A EQ PUSH3 0xF0 JUMPI DUP1 PUSH4 0x1814F2D2 EQ PUSH3 0x146 JUMPI DUP1 PUSH4 0x2E9AB7B3 EQ PUSH3 0x15E JUMPI DUP1 PUSH4 0x327779A7 EQ PUSH3 0x206 JUMPI DUP1 PUSH4 0x3A8FC520 EQ PUSH3 0x225 JUMPI DUP1 PUSH4 0x6A4E5391 EQ PUSH3 0x244 JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH3 0x25C JUMPI DUP1 PUSH4 0x8CAC5E29 EQ PUSH3 0x274 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH3 0x298 JUMPI DUP1 PUSH4 0xC977AED2 EQ PUSH3 0x2B0 JUMPI DUP1 PUSH4 0xD4EE1D90 EQ PUSH3 0x2CF JUMPI DUP1 PUSH4 0xE54B93EF EQ PUSH3 0x2E7 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH3 0x30B JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0xD7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0xEE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH3 0x32F JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0xFD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x12A PUSH2 0xFFFF PUSH1 0x4 CALLDATALOAD AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x24 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x44 CALLDATALOAD AND PUSH4 0xFFFFFFFF PUSH1 0x64 CALLDATALOAD AND PUSH3 0x3ED JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0x153 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x12A PUSH3 0x432 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0x16B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 PUSH1 0x24 DUP1 CALLDATALOAD DUP3 DUP2 ADD CALLDATALOAD PUSH1 0x1F DUP2 ADD DUP6 SWAP1 DIV DUP6 MUL DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP6 DUP6 MSTORE PUSH3 0x12A SWAP6 DUP4 CALLDATALOAD PUSH2 0xFFFF AND SWAP6 CALLDATASIZE SWAP6 PUSH1 0x44 SWAP5 SWAP2 SWAP4 SWAP1 SWAP2 ADD SWAP2 SWAP1 DUP2 SWAP1 DUP5 ADD DUP4 DUP3 DUP1 DUP3 DUP5 CALLDATACOPY POP POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x1F DUP10 CALLDATALOAD DUP12 ADD DUP1 CALLDATALOAD SWAP2 DUP3 ADD DUP4 SWAP1 DIV DUP4 MUL DUP5 ADD DUP4 ADD SWAP1 SWAP5 MSTORE DUP1 DUP4 MSTORE SWAP8 SWAP11 SWAP10 SWAP9 DUP2 ADD SWAP8 SWAP2 SWAP7 POP SWAP2 DUP3 ADD SWAP5 POP SWAP3 POP DUP3 SWAP2 POP DUP5 ADD DUP4 DUP3 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP POP POP SWAP3 CALLDATALOAD PUSH1 0xFF AND SWAP4 POP PUSH3 0x441 SWAP3 POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0x213 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x12A PUSH2 0xFFFF PUSH1 0x4 CALLDATALOAD AND PUSH3 0x486 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0x232 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x12A PUSH2 0xFFFF PUSH1 0x4 CALLDATALOAD AND PUSH3 0x4A1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0x251 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x12A PUSH3 0x4BC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0x269 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0xEE PUSH3 0x4CB JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0x281 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0xEE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH3 0x5B6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0x2A5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x12A PUSH3 0x604 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0x2BD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x12A PUSH2 0xFFFF PUSH1 0x4 CALLDATALOAD AND PUSH3 0x613 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0x2DC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x12A PUSH3 0x62E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0x2F4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0xEE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH3 0x63D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0x318 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0xEE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH3 0x68B JUMP JUMPDEST PUSH3 0x339 PUSH3 0x742 JUMP JUMPDEST DUP1 PUSH1 0x2 PUSH1 0x0 DUP4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x3E8FF43F PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH3 0x37D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH3 0x392 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH3 0x3A9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x3FD DUP6 DUP6 DUP6 DUP6 PUSH3 0x7BE JUMP JUMPDEST PUSH1 0x5 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 DUP4 AND OR SWAP1 DUP2 SWAP1 SSTORE AND SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH3 0x451 DUP6 DUP6 DUP6 DUP6 PUSH3 0x9AE JUMP JUMPDEST PUSH1 0x6 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 DUP4 AND OR SWAP1 DUP2 SWAP1 SSTORE AND SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH3 0x545 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND SWAP4 SWAP1 SWAP2 AND SWAP2 PUSH32 0x343765429AEA5A34B3FF6A3785A98A5ABB2597ACA87BFBB58632C173D585373A SWAP2 LOG3 PUSH1 0x1 DUP1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND OR SWAP1 SWAP2 SSTORE AND SWAP1 SSTORE JUMP JUMPDEST PUSH3 0x5C0 PUSH3 0x742 JUMP JUMPDEST DUP1 PUSH1 0x4 PUSH1 0x0 DUP4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x3E8FF43F PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH3 0x37D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH3 0x647 PUSH3 0x742 JUMP JUMPDEST DUP1 PUSH1 0x3 PUSH1 0x0 DUP4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x3E8FF43F PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH3 0x37D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH3 0x695 PUSH3 0x742 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ ISZERO PUSH3 0x713 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F4F574E4552000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH3 0x7BC JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH2 0xFFFF DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD DUP2 MLOAD PUSH32 0x1141395800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP8 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH4 0xFFFFFFFF DUP8 AND PUSH1 0x44 DUP4 ADD MSTORE SWAP3 MLOAD DUP6 SWAP5 SWAP4 SWAP1 SWAP3 AND SWAP3 PUSH4 0x11413958 SWAP3 PUSH1 0x64 DUP1 DUP5 ADD SWAP4 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH3 0x849 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH3 0x85E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH3 0x875 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x79BA509700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 AND SWAP2 PUSH4 0x79BA5097 SWAP2 PUSH1 0x4 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH3 0x8D6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH3 0x8EB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 DUP1 MLOAD PUSH32 0xF2FDE38B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND SWAP4 POP PUSH4 0xF2FDE38B SWAP3 POP PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH3 0x950 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH3 0x965 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD CALLER SWAP3 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP2 POP PUSH2 0xFFFF DUP10 AND SWAP1 PUSH32 0xBB340BCEA68D239AC719BC5CF8C9A1716DF04AD3BABB8D1E562AA44D19FEA3A3 SWAP1 PUSH1 0x0 SWAP1 LOG4 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP2 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP1 ISZERO ISZERO PUSH3 0xAE7 JUMPI DUP6 DUP6 DUP6 PUSH3 0x9E2 PUSH3 0xD3A JUMP JUMPDEST PUSH1 0xFF DUP3 AND PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP1 DUP3 MSTORE DUP5 MLOAD SWAP1 DUP3 ADD MSTORE DUP4 MLOAD DUP2 SWAP1 PUSH1 0x20 DUP1 DUP4 ADD SWAP2 PUSH1 0x80 DUP5 ADD SWAP2 DUP9 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH3 0xA28 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH3 0xA0E JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH3 0xA56 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP DUP4 DUP2 SUB DUP3 MSTORE DUP6 MLOAD DUP2 MSTORE DUP6 MLOAD PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 DUP8 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH3 0xA8B JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH3 0xA71 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH3 0xAB9 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP6 POP POP POP POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 PUSH1 0x0 CREATE DUP1 ISZERO DUP1 ISZERO PUSH3 0xADE JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP SWAP2 POP PUSH3 0xCB5 JUMP JUMPDEST DUP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xA9FD4A2A DUP8 DUP8 DUP8 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP5 PUSH1 0xFF AND PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 SUB DUP4 MSTORE DUP7 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH3 0xB5A JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH3 0xB40 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH3 0xB88 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP DUP4 DUP2 SUB DUP3 MSTORE DUP6 MLOAD DUP2 MSTORE DUP6 MLOAD PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 DUP8 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH3 0xBBD JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH3 0xBA3 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH3 0xBEB JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP6 POP POP POP POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH3 0xC0E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH3 0xC23 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH3 0xC3A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x79BA509700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP4 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP2 PUSH4 0x79BA5097 SWAP2 PUSH1 0x4 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH3 0xC9B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH3 0xCB0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0xF2FDE38B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP2 PUSH4 0xF2FDE38B SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH3 0xD16 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH3 0xD2B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP SWAP4 SWAP10 SWAP9 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1228 DUP1 PUSH3 0xD4C DUP4 CODECOPY ADD SWAP1 JUMP STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x8 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE CALLVALUE DUP1 ISZERO PUSH3 0x1E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x1228 CODESIZE SUB DUP1 PUSH3 0x1228 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 SWAP1 DUP2 MSTORE DUP2 MLOAD PUSH1 0x20 DUP4 ADD MLOAD SWAP2 DUP4 ADD MLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND CALLER OR DUP2 SSTORE SWAP2 DUP5 ADD DUP1 MLOAD SWAP1 SWAP5 SWAP4 SWAP1 SWAP4 ADD SWAP3 SWAP1 SWAP2 DUP5 SWAP2 DUP5 SWAP2 DUP5 SWAP2 DUP2 LT PUSH3 0xD5 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4E414D4500000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP3 MLOAD PUSH1 0x0 LT PUSH3 0x146 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F53594D424F4C0000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP4 MLOAD PUSH3 0x15B SWAP1 PUSH1 0x2 SWAP1 PUSH1 0x20 DUP8 ADD SWAP1 PUSH3 0x1A8 JUMP JUMPDEST POP DUP3 MLOAD PUSH3 0x171 SWAP1 PUSH1 0x3 SWAP1 PUSH1 0x20 DUP7 ADD SWAP1 PUSH3 0x1A8 JUMP JUMPDEST POP PUSH1 0x4 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0xFF SWAP4 SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 SSTORE PUSH1 0x5 DUP2 SWAP1 SSTORE CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE POP PUSH3 0x24D SWAP4 POP POP POP POP JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH1 0x1F LT PUSH3 0x1EB JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH3 0x21B JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH3 0x21B JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH3 0x21B JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH3 0x1FE JUMP JUMPDEST POP PUSH3 0x229 SWAP3 SWAP2 POP PUSH3 0x22D JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH3 0x24A SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH3 0x229 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH3 0x234 JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH2 0xFCB DUP1 PUSH3 0x25D PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x106 JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x6FDDE03 DUP2 EQ PUSH2 0x10B JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x195 JUMPI DUP1 PUSH4 0x1608F18F EQ PUSH2 0x1CD JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x1E9 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x210 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x23A JUMPI DUP1 PUSH4 0x54FD4D50 EQ PUSH2 0x265 JUMPI DUP1 PUSH4 0x5E35359E EQ PUSH2 0x291 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x2BB JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x2DC JUMPI DUP1 PUSH4 0x867904B4 EQ PUSH2 0x2F1 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x315 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x346 JUMPI DUP1 PUSH4 0xA24835D1 EQ PUSH2 0x35B JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x37F JUMPI DUP1 PUSH4 0xBEF97C87 EQ PUSH2 0x3A3 JUMPI DUP1 PUSH4 0xD4EE1D90 EQ PUSH2 0x3B8 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x3CD JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x3F4 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x117 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x120 PUSH2 0x415 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP4 MLOAD DUP2 DUP4 ADD MSTORE DUP4 MLOAD SWAP2 SWAP3 DUP4 SWAP3 SWAP1 DUP4 ADD SWAP2 DUP6 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x15A JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x142 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x187 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1A1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B9 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x4A0 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1D9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH1 0x4 CALLDATALOAD ISZERO ISZERO PUSH2 0x598 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1FE PUSH2 0x5B2 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x21C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B9 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x5B8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x246 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x24F PUSH2 0x5DF JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x271 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x27A PUSH2 0x5E8 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0xFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x29D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x5ED JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2C7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1FE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x626 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2E8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH2 0x638 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2FD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x70B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x321 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x32A PUSH2 0x7ED JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x352 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x120 PUSH2 0x7FC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x367 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x857 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x38B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B9 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x91D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3AF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B9 PUSH2 0x942 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3C4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x32A PUSH2 0x94B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3D9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1FE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH2 0x95A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x400 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x977 JUMP JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x1 DUP5 AND ISZERO PUSH2 0x100 MUL PUSH1 0x0 NOT ADD SWAP1 SWAP4 AND DUP5 SWAP1 DIV PUSH1 0x1F DUP2 ADD DUP5 SWAP1 DIV DUP5 MUL DUP3 ADD DUP5 ADD SWAP1 SWAP3 MSTORE DUP2 DUP2 MSTORE SWAP3 SWAP2 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x498 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x46D JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x498 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x47B JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x4AC DUP2 PUSH2 0xA14 JUMP JUMPDEST DUP3 ISZERO DUP1 PUSH2 0x4DA JUMPI POP CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x530 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F414D4F554E540000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST CALLER PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP10 AND DUP1 DUP6 MSTORE SWAP1 DUP4 MSTORE SWAP3 DUP2 SWAP1 KECCAK256 DUP8 SWAP1 SSTORE DUP1 MLOAD DUP8 DUP2 MSTORE SWAP1 MLOAD SWAP3 SWAP4 SWAP3 PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP3 SWAP2 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x5A0 PUSH2 0xA77 JUMP JUMPDEST PUSH1 0x8 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP2 ISZERO SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x5 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5C2 PUSH2 0xADB JUMP JUMPDEST PUSH2 0x5CD DUP5 DUP5 DUP5 PUSH2 0xB37 JUMP JUMPDEST ISZERO ISZERO PUSH2 0x5D5 JUMPI INVALID JUMPDEST POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x4 DUP2 JUMP JUMPDEST PUSH2 0x5F5 PUSH2 0xA77 JUMP JUMPDEST DUP3 PUSH2 0x5FF DUP2 PUSH2 0xA14 JUMP JUMPDEST DUP3 PUSH2 0x609 DUP2 PUSH2 0xA14 JUMP JUMPDEST DUP4 PUSH2 0x613 DUP2 PUSH2 0xC48 JUMP JUMPDEST PUSH2 0x61E DUP7 DUP7 DUP7 PUSH2 0xCA9 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x69A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND SWAP4 SWAP1 SWAP2 AND SWAP2 PUSH32 0x343765429AEA5A34B3FF6A3785A98A5ABB2597ACA87BFBB58632C173D585373A SWAP2 LOG3 PUSH1 0x1 DUP1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND OR SWAP1 SWAP2 SSTORE AND SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x713 PUSH2 0xA77 JUMP JUMPDEST DUP2 PUSH2 0x71D DUP2 PUSH2 0xA14 JUMP JUMPDEST DUP3 PUSH2 0x727 DUP2 PUSH2 0xC48 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH2 0x73A SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0xD63 AND JUMP JUMPDEST PUSH1 0x5 SSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x766 SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0xD63 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SWAP3 SWAP1 SWAP3 SSTORE DUP1 MLOAD DUP6 DUP2 MSTORE SWAP1 MLOAD PUSH32 0x9386C90217C323F58030F9DADCBC938F807A940F4FF41CD4CEAD9562F5DA7DC3 SWAP3 SWAP2 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG1 PUSH1 0x40 DUP1 MLOAD DUP5 DUP2 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND SWAP2 PUSH1 0x0 SWAP2 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xF80 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP2 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 LOG3 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x2 PUSH1 0x1 DUP6 AND ISZERO PUSH2 0x100 MUL PUSH1 0x0 NOT ADD SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 DIV PUSH1 0x1F DUP2 ADD DUP5 SWAP1 DIV DUP5 MUL DUP3 ADD DUP5 ADD SWAP1 SWAP3 MSTORE DUP2 DUP2 MSTORE SWAP3 SWAP2 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x498 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x46D JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x498 JUMP JUMPDEST PUSH2 0x85F PUSH2 0xA77 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x888 SWAP1 DUP3 PUSH4 0xFFFFFFFF PUSH2 0xDC7 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE PUSH1 0x5 SLOAD PUSH2 0x8B4 SWAP1 DUP3 PUSH4 0xFFFFFFFF PUSH2 0xDC7 AND JUMP JUMPDEST PUSH1 0x5 SSTORE PUSH1 0x40 DUP1 MLOAD DUP3 DUP2 MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND SWAP2 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xF80 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP2 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 LOG3 PUSH1 0x40 DUP1 MLOAD DUP3 DUP2 MSTORE SWAP1 MLOAD PUSH32 0x9A1B418BC061A5D80270261562E6986A35D995F8051145F277BE16103ABD3453 SWAP2 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x927 PUSH2 0xADB JUMP JUMPDEST PUSH2 0x931 DUP4 DUP4 PUSH2 0xE27 JUMP JUMPDEST ISZERO ISZERO PUSH2 0x939 JUMPI INVALID JUMPDEST POP PUSH1 0x1 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x97F PUSH2 0xA77 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x9E5 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F4F574E4552000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0xA74 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0xAD9 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0xFF AND ISZERO ISZERO PUSH2 0xAD9 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5452414E53464552535F44495341424C454400000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP4 PUSH2 0xB43 DUP2 PUSH2 0xA14 JUMP JUMPDEST DUP4 PUSH2 0xB4D DUP2 PUSH2 0xA14 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH2 0xB81 SWAP1 DUP6 PUSH4 0xFFFFFFFF PUSH2 0xDC7 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE DUP3 MSTORE DUP1 DUP4 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE SWAP2 DUP2 MSTORE PUSH1 0x6 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD PUSH2 0xBC2 SWAP1 DUP6 PUSH4 0xFFFFFFFF PUSH2 0xDC7 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE SWAP1 DUP8 AND DUP2 MSTORE KECCAK256 SLOAD PUSH2 0xBF7 SWAP1 DUP6 PUSH4 0xFFFFFFFF PUSH2 0xD63 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP8 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE DUP1 MLOAD DUP9 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP4 SWAP3 DUP11 AND SWAP3 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xF80 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP3 SWAP2 DUP3 SWAP1 SUB ADD SWAP1 LOG3 POP PUSH1 0x1 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ADDRESS EQ ISZERO PUSH2 0xA74 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F414444524553535F49535F53454C4600000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x7472616E7366657228616464726573732C75696E743235362900000000000000 DUP2 MSTORE DUP2 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x19 ADD DUP2 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x64 SWAP1 SWAP3 ADD SWAP1 SWAP3 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE PUSH2 0xD5E SWAP1 DUP5 SWAP1 PUSH2 0xED2 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 ADD DUP4 DUP2 LT ISZERO PUSH2 0xDC0 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT ISZERO PUSH2 0xE21 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F554E444552464C4F5700000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP SWAP1 SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0xE33 DUP2 PUSH2 0xA14 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0xE53 SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0xDC7 AND JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP3 SWAP1 SWAP3 SSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND DUP2 MSTORE KECCAK256 SLOAD PUSH2 0xE85 SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0xD63 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE DUP1 MLOAD DUP7 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP3 CALLER SWAP3 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xF80 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0xEDA PUSH2 0xF60 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE POP SWAP1 POP PUSH1 0x20 DUP2 DUP4 MLOAD PUSH1 0x20 DUP6 ADD PUSH1 0x0 DUP8 GAS CALL DUP1 ISZERO ISZERO PUSH2 0xF07 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD ISZERO ISZERO PUSH2 0xD5E JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5452414E534645525F4641494C454400000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 SWAP1 PUSH1 0x20 DUP3 MUL DUP1 CODESIZE DUP4 CODECOPY POP SWAP2 SWAP3 SWAP2 POP POP JUMP STOP 0xdd CALLCODE MSTORE 0xad SHL 0xe2 0xc8 SWAP12 PUSH10 0xC2B068FC378DAA952BA7 CALL PUSH4 0xC4A11628 0xf5 GAS 0x4d 0xf5 0x23 0xb3 0xef LOG1 PUSH6 0x627A7A723058 KECCAK256 BALANCE 0xb5 PUSH11 0xEBC8336B547B3E1346F50C 0x2f DIFFICULTY 0xf7 0xd 0xef SSTORE 0x4e 0xd4 0xcb LOG4 0xc8 SHL 0xcf 0x2e MULMOD 0x2d DIV PUSH32 0x29A165627A7A7230582033B1E99A66879FC8E2FA7DCC6D6D541ACB31B7108E 0xa8 CALLCODE 0xeb 0xb1 0x5e 0xaa GASLIMIT SLOAD 0xf7 0xbd PUSH12 0x2900000000000000000000 ", - "sourceMap": "142:664:34:-;;;;;;;;;-1:-1:-1;;;142:664:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1189:152:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1189:152:5;-1:-1:-1;;;;;1189:152:5;;;;;;;523:281:34;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;523:281:34;;;;;-1:-1:-1;;;;;523:281:34;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;523:281:34;;;;;;;;;;;;;;195:34;;8:9:-1;5:2;;;30:1;27;20:12;5:2;195:34:34;;;;273:247;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;273:247:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;273:247:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;273:247:34;;;;-1:-1:-1;273:247:34;-1:-1:-1;273:247:34;;-1:-1:-1;273:247:34;;;;;;;;-1:-1:-1;273:247:34;;-1:-1:-1;;;273:247:34;;;;;-1:-1:-1;273:247:34;;-1:-1:-1;;;273:247:34;805:67:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;805:67:5;;;;;;;875:70;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;875:70:5;;;;;;;232:37:34;;8:9:-1;5:2;;;30:1;27;20:12;5:2;232:37:34;;;;1159:176:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1159:176:66;;;;1870:161:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1870:161:5;-1:-1:-1;;;;;1870:161:5;;;;;157:20:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;157:20:66;;;;948:70:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;948:70:5;;;;;;;180:23:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;180:23:66;;;;1525:161:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1525:161:5;-1:-1:-1;;;;;1525:161:5;;;;;945:140:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;945:140:66;-1:-1:-1;;;;;945:140:66;;;;;1189:152:5;575:12:66;:10;:12::i;:::-;1329:8:5;1282:18;:44;1301:8;-1:-1:-1;;;;;1301:22:5;;:24;;;;;-1:-1:-1;;;1301:24:5;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1301:24:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1301:24:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1301:24:5;1282:44;;;;1301:24;1282:44;;;;;;;;-1:-1:-1;1282:44:5;:55;;-1:-1:-1;;1282:55:5;-1:-1:-1;;;;;1282:55:5;;;;;;;;;;-1:-1:-1;1189:152:5:o;523:281:34:-;670:10;705:67;727:5;734:7;743:9;754:17;705:21;:67::i;:::-;686:16;:86;;-1:-1:-1;;686:86:34;-1:-1:-1;;;;;686:86:34;;;;;;;;784:16;;523:281;-1:-1:-1;;;;;523:281:34:o;195:34::-;;;-1:-1:-1;;;;;195:34:34;;:::o;273:247::-;392:16;430:61;449:14;465:5;472:7;481:9;430:18;:61::i;:::-;414:13;:77;;-1:-1:-1;;414:77:34;-1:-1:-1;;;;;414:77:34;;;;;;;;503:13;;273:247;-1:-1:-1;;;;;273:247:34:o;805:67:5:-;;;;;;;;;;;;-1:-1:-1;;;;;805:67:5;;:::o;875:70::-;;;;;;;;;;;;-1:-1:-1;;;;;875:70:5;;:::o;232:37:34:-;;;-1:-1:-1;;;;;232:37:34;;:::o;1159:176:66:-;1219:8;;-1:-1:-1;;;;;1219:8:66;1205:10;:22;1197:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1277:8;;;1270:5;;1258:28;;-1:-1:-1;;;;;1277:8:66;;;;1270:5;;;;1258:28;;;1298:8;;;;1290:16;;-1:-1:-1;;1290:16:66;;;-1:-1:-1;;;;;1298:8:66;;1290:16;;;;1310:21;;;1159:176::o;1870:161:5:-;575:12:66;:10;:12::i;:::-;2019:8:5;1975:15;:41;1991:8;-1:-1:-1;;;;;1991:22:5;;:24;;;;;-1:-1:-1;;;1991:24:5;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;157:20:66;;;-1:-1:-1;;;;;157:20:66;;:::o;948:70:5:-;;;;;;;;;;;;-1:-1:-1;;;;;948:70:5;;:::o;180:23:66:-;;;-1:-1:-1;;;;;180:23:66;;:::o;1525:161:5:-;575:12:66;:10;:12::i;:::-;1674:8:5;1630:15;:41;1646:8;-1:-1:-1;;;;;1646:22:5;;:24;;;;;-1:-1:-1;;;1646:24:5;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;945:140:66;575:12;:10;:12::i;:::-;1033:5;;-1:-1:-1;;;;;1020:18:66;;;1033:5;;1020:18;;1012:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1061:8;:20;;-1:-1:-1;;1061:20:66;-1:-1:-1;;;;;1061:20:66;;;;;;;;;;945:140::o;642:93::-;704:5;;-1:-1:-1;;;;;704:5:66;690:10;:19;682:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;642:93::o;3380:416:5:-;3566:25;;;3527:10;3566:25;;;:18;:25;;;;;;;;;:80;;;;;-1:-1:-1;;;;;3566:80:5;;;;;;;;;;;;;;;;;;;;;;;3527:10;;3566:25;;;;;:41;;:80;;;;;;;;;;3527:10;3566:25;:80;;;5:2:-1;;;;30:1;27;20:12;5:2;3566:80:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3566:80:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3566:80:5;3650:27;;;;;;;;3566:80;;-1:-1:-1;;;;;;3650:25:5;;;;;:27;;;;;;;;;;;;;;;;:25;:27;;;5:2:-1;;;;30:1;27;20:12;5:2;3650:27:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;3681:39:5;;;;;;3709:10;3681:39;;;;;;-1:-1:-1;;;;;3681:27:5;;;-1:-1:-1;3681:27:5;;-1:-1:-1;3681:39:5;;;;;-1:-1:-1;;3681:39:5;;;;;;;-1:-1:-1;3681:27:5;:39;;;5:2:-1;;;;30:1;27;20:12;5:2;3681:39:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;3730:42:5;;3761:10;;-1:-1:-1;;;;;;3730:42:5;;;-1:-1:-1;3730:42:5;;;;;;;;;3783:9;3380:416;-1:-1:-1;;;;;3380:416:5:o;2381:560::-;2588:31;;;2500:16;2588:31;;;:15;:31;;;;;;2500:16;;-1:-1:-1;;;;;2588:31:5;2628:21;;2624:256;;;2721:5;2728:7;2737:9;2706:41;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;2706:41:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2706:41:5;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;2706:41:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2706:41:5;2697:50;;2624:256;;;2799:7;-1:-1:-1;;;;;2799:20:5;;2820:5;2827:7;2836:9;2799:47;;;;;-1:-1:-1;;;2799:47:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;2799:47:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2799:47:5;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;2799:47:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2799:47:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2799:47:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2799:47:5;2851:24;;;;;;;;2799:47;;-1:-1:-1;;;;;;2851:22:5;;;;;:24;;;;;;;;;;;;;;;;:22;:24;;;5:2:-1;;;;30:1;27;20:12;5:2;2851:24:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2851:24:5;;;;2624:256;2884:36;;;;;;2909:10;2884:36;;;;;;-1:-1:-1;;;;;2884:24:5;;;;;:36;;;;;-1:-1:-1;;2884:36:5;;;;;;;-1:-1:-1;2884:24:5;:36;;;5:2:-1;;;;30:1;27;20:12;5:2;2884:36:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;2931:6:5;;2381:560;-1:-1:-1;;;;;;;;;2381:560:5:o;142:664:34:-;;;;;;;;;;:::o" - }, - "methodIdentifiers": { - "acceptOwnership()": "79ba5097", - "anchorFactories(uint16)": "3a8fc520", - "converterFactories(uint16)": "327779a7", - "createAnchor(uint16,string,string,uint8)": "2e9ab7b3", - "createConverter(uint16,address,address,uint32)": "15f64b6a", - "createdAnchor()": "6a4e5391", - "createdConverter()": "1814f2d2", - "customFactories(uint16)": "c977aed2", - "newOwner()": "d4ee1d90", - "owner()": "8da5cb5b", - "registerTypedConverterAnchorFactory(address)": "e54b93ef", - "registerTypedConverterCustomFactory(address)": "8cac5e29", - "registerTypedConverterFactory(address)": "12b4c6c1", - "transferOwnership(address)": "f2fde38b" - } - }, - "userdoc": { - "methods": {} - } - } - }, - "solidity/contracts/helpers/TestConverterRegistry.sol": { - "TestConverterRegistry": { - "abi": [ - { - "constant": false, - "inputs": [ - { - "name": "_onlyOwnerCanUpdateRegistry", - "type": "bool" - } - ], - "name": "restrictRegistryUpdate", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getSmartTokens", - "outputs": [ - { - "name": "", - "type": "address[]" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_convertibleToken", - "type": "address" - } - ], - "name": "getConvertibleTokenAnchors", - "outputs": [ - { - "name": "", - "type": "address[]" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "createdConverter", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_type", - "type": "uint16" - }, - { - "name": "_reserveTokens", - "type": "address[]" - }, - { - "name": "_reserveWeights", - "type": "uint32[]" - } - ], - "name": "getLiquidityPoolByConfig", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_smartTokens", - "type": "address[]" - } - ], - "name": "getConvertersBySmartTokens", - "outputs": [ - { - "name": "", - "type": "address[]" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_type", - "type": "uint16" - }, - { - "name": "_reserveTokens", - "type": "address[]" - }, - { - "name": "_reserveWeights", - "type": "uint32[]" - }, - { - "name": "_converter", - "type": "address" - } - ], - "name": "setupConverter", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "onlyOwnerCanUpdateRegistry", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_value", - "type": "address" - } - ], - "name": "isConvertibleToken", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_value", - "type": "address" - } - ], - "name": "isSmartToken", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_convertibleToken", - "type": "address" - } - ], - "name": "getConvertibleTokenAnchorCount", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "updateRegistry", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_index", - "type": "uint256" - } - ], - "name": "getAnchor", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_type", - "type": "uint16" - }, - { - "name": "_name", - "type": "string" - }, - { - "name": "_symbol", - "type": "string" - }, - { - "name": "_decimals", - "type": "uint8" - }, - { - "name": "_maxConversionFee", - "type": "uint32" - }, - { - "name": "_reserveTokens", - "type": "address[]" - }, - { - "name": "_reserveWeights", - "type": "uint32[]" - } - ], - "name": "newConverter", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getConvertibleTokens", - "outputs": [ - { - "name": "", - "type": "address[]" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_convertibleToken", - "type": "address" - }, - { - "name": "_index", - "type": "uint256" - } - ], - "name": "getConvertibleTokenAnchor", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_anchors", - "type": "address[]" - } - ], - "name": "getConvertersByAnchors", - "outputs": [ - { - "name": "", - "type": "address[]" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "prevRegistry", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getConvertibleTokenCount", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_converter", - "type": "address" - } - ], - "name": "addConverter", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_convertibleToken", - "type": "address" - }, - { - "name": "_value", - "type": "address" - } - ], - "name": "isConvertibleTokenSmartToken", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "acceptOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getLiquidityPoolCount", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "registry", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getLiquidityPools", - "outputs": [ - { - "name": "", - "type": "address[]" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_index", - "type": "uint256" - } - ], - "name": "getConvertibleToken", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "owner", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_converter", - "type": "address" - } - ], - "name": "isSimilarLiquidityPoolRegistered", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_converter", - "type": "address" - } - ], - "name": "isConverterValid", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_converter", - "type": "address" - } - ], - "name": "removeConverter", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_index", - "type": "uint256" - } - ], - "name": "getSmartToken", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_convertibleToken", - "type": "address" - } - ], - "name": "getConvertibleTokenSmartTokenCount", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_index", - "type": "uint256" - } - ], - "name": "getLiquidityPool", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "restoreRegistry", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_convertibleToken", - "type": "address" - }, - { - "name": "_value", - "type": "address" - } - ], - "name": "isConvertibleTokenAnchor", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_reserveTokens", - "type": "address[]" - }, - { - "name": "_reserveWeights", - "type": "uint32[]" - } - ], - "name": "getLiquidityPoolByReserveConfig", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getAnchorCount", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "newOwner", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_convertibleToken", - "type": "address" - }, - { - "name": "_index", - "type": "uint256" - } - ], - "name": "getConvertibleTokenSmartToken", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_value", - "type": "address" - } - ], - "name": "isAnchor", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getSmartTokenCount", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_value", - "type": "address" - } - ], - "name": "isLiquidityPool", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getAnchors", - "outputs": [ - { - "name": "", - "type": "address[]" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_convertibleToken", - "type": "address" - } - ], - "name": "getConvertibleTokenSmartTokens", - "outputs": [ - { - "name": "", - "type": "address[]" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "name": "_registry", - "type": "address" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "_anchor", - "type": "address" - } - ], - "name": "ConverterAnchorAdded", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "_anchor", - "type": "address" - } - ], - "name": "ConverterAnchorRemoved", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "_liquidityPool", - "type": "address" - } - ], - "name": "LiquidityPoolAdded", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "_liquidityPool", - "type": "address" - } - ], - "name": "LiquidityPoolRemoved", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "_convertibleToken", - "type": "address" - }, - { - "indexed": true, - "name": "_smartToken", - "type": "address" - } - ], - "name": "ConvertibleTokenAdded", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "_convertibleToken", - "type": "address" - }, - { - "indexed": true, - "name": "_smartToken", - "type": "address" - } - ], - "name": "ConvertibleTokenRemoved", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "_smartToken", - "type": "address" - } - ], - "name": "SmartTokenAdded", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "_smartToken", - "type": "address" - } - ], - "name": "SmartTokenRemoved", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "_prevOwner", - "type": "address" - }, - { - "indexed": true, - "name": "_newOwner", - "type": "address" - } - ], - "name": "OwnerUpdate", - "type": "event" - } - ], - "devdoc": { - "methods": { - "acceptOwnership()": { - "details": "used by a new owner to accept an ownership transfer" - }, - "addConverter(address)": { - "details": "adds an existing converter to the registry can only be called by the owner", - "params": { - "_converter": "converter" - } - }, - "getAnchor(uint256)": { - "details": "returns the converter anchor at a given index", - "params": { - "_index": "index" - }, - "return": "anchor at the given index" - }, - "getAnchorCount()": { - "details": "returns the number of converter anchors in the registry", - "return": "number of anchors" - }, - "getAnchors()": { - "details": "returns the list of converter anchors in the registry", - "return": "list of anchors" - }, - "getConvertersByAnchors(address[])": { - "details": "returns a list of converters for a given list of anchors this is a utility function that can be used to reduce the number of calls to the contract", - "params": { - "_anchors": "list of converter anchors" - }, - "return": "list of converters" - }, - "getConvertersBySmartTokens(address[])": { - "details": "deprecated, backward compatibility, use `getConvertersByAnchors`" - }, - "getConvertibleToken(uint256)": { - "details": "returns the convertible token at a given index", - "params": { - "_index": "index" - }, - "return": "convertible token at the given index" - }, - "getConvertibleTokenAnchor(address,uint256)": { - "details": "returns the converter anchor associated with a given convertible token at a given index", - "params": { - "_convertibleToken": "convertible token", - "_index": "index" - }, - "return": "anchor associated with the given convertible token at the given index" - }, - "getConvertibleTokenAnchorCount(address)": { - "details": "returns the number of converter anchors associated with a given convertible token", - "params": { - "_convertibleToken": "convertible token" - }, - "return": "number of anchors associated with the given convertible token" - }, - "getConvertibleTokenAnchors(address)": { - "details": "returns the list of converter anchors associated with a given convertible token", - "params": { - "_convertibleToken": "convertible token" - }, - "return": "list of anchors associated with the given convertible token" - }, - "getConvertibleTokenCount()": { - "details": "returns the number of convertible tokens in the registry", - "return": "number of convertible tokens" - }, - "getConvertibleTokenSmartToken(address,uint256)": { - "details": "deprecated, backward compatibility, use `getConvertibleTokenAnchor`" - }, - "getConvertibleTokenSmartTokenCount(address)": { - "details": "deprecated, backward compatibility, use `getConvertibleTokenAnchorCount`" - }, - "getConvertibleTokenSmartTokens(address)": { - "details": "deprecated, backward compatibility, use `getConvertibleTokenAnchors`" - }, - "getConvertibleTokens()": { - "details": "returns the list of convertible tokens in the registry", - "return": "list of convertible tokens" - }, - "getLiquidityPool(uint256)": { - "details": "returns the liquidity pool at a given index", - "params": { - "_index": "index" - }, - "return": "liquidity pool at the given index" - }, - "getLiquidityPoolByConfig(uint16,address[],uint32[])": { - "details": "searches for a liquidity pool with specific configuration", - "params": { - "_reserveTokens": "reserve tokens", - "_reserveWeights": "reserve weights", - "_type": "converter type, see ConverterBase contract main doc" - }, - "return": "the liquidity pool, or zero if no such liquidity pool exists" - }, - "getLiquidityPoolByReserveConfig(address[],uint32[])": { - "details": "deprecated, backward compatibility, use `getLiquidityPoolByConfig`" - }, - "getLiquidityPoolCount()": { - "details": "returns the number of liquidity pools in the registry", - "return": "number of liquidity pools" - }, - "getLiquidityPools()": { - "details": "returns the list of liquidity pools in the registry", - "return": "list of liquidity pools" - }, - "getSmartToken(uint256)": { - "details": "deprecated, backward compatibility, use `getAnchor`" - }, - "getSmartTokenCount()": { - "details": "deprecated, backward compatibility, use `getAnchorCount`" - }, - "getSmartTokens()": { - "details": "deprecated, backward compatibility, use `getAnchors`" - }, - "isAnchor(address)": { - "details": "checks whether or not a given value is a converter anchor", - "params": { - "_value": "value" - }, - "return": "true if the given value is an anchor, false if not" - }, - "isConverterValid(address)": { - "details": "checks whether or not a given converter is valid", - "params": { - "_converter": "converter" - }, - "return": "true if the given converter is valid, false if not" - }, - "isConvertibleToken(address)": { - "details": "checks whether or not a given value is a convertible token", - "params": { - "_value": "value" - }, - "return": "true if the given value is a convertible token, false if not" - }, - "isConvertibleTokenAnchor(address,address)": { - "details": "checks whether or not a given value is a converter anchor of a given convertible token", - "params": { - "_convertibleToken": "convertible token", - "_value": "value" - }, - "return": "true if the given value is an anchor of the given convertible token, false if not" - }, - "isConvertibleTokenSmartToken(address,address)": { - "details": "deprecated, backward compatibility, use `isConvertibleTokenAnchor`" - }, - "isLiquidityPool(address)": { - "details": "checks whether or not a given value is a liquidity pool", - "params": { - "_value": "value" - }, - "return": "true if the given value is a liquidity pool, false if not" - }, - "isSimilarLiquidityPoolRegistered(address)": { - "details": "checks if a liquidity pool with given configuration is already registered", - "params": { - "_converter": "converter with specific configuration" - }, - "return": "if a liquidity pool with the same configuration is already registered" - }, - "isSmartToken(address)": { - "details": "deprecated, backward compatibility, use `isAnchor`" - }, - "removeConverter(address)": { - "details": "removes a converter from the registry anyone can remove an existing converter from the registry, as long as the converter is invalid note that the owner can also remove valid converters", - "params": { - "_converter": "converter" - } - }, - "restoreRegistry()": { - "details": "restores the previous contract-registry" - }, - "restrictRegistryUpdate(bool)": { - "details": "restricts the permission to update the contract-registry", - "params": { - "_onlyOwnerCanUpdateRegistry": "indicates whether or not permission is restricted to owner only" - } - }, - "setupConverter(uint16,address[],uint32[],address)": { - "details": "completes the configuration for a converter", - "params": { - "_converter": "the converter previously created through newConverter method", - "_reserveTokens": "reserve tokens", - "_reserveWeights": "reserve weights", - "_type": "converter type, see ConverterBase contract main doc" - }, - "return": "converter" - }, - "transferOwnership(address)": { - "details": "allows transferring the contract ownership the new owner still needs to accept the transfer can only be called by the contract owner", - "params": { - "_newOwner": "new contract owner" - } - }, - "updateRegistry()": { - "details": "updates to the new contract-registry" - } - } - }, - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "60806040523480156200001157600080fd5b50604051602080620035ee833981016040525160008054600160a060020a031916331790558080806200004d8164010000000062000081810204565b5060028054600160a060020a03909216600160a060020a031992831681179091556003805490921617905550620000fc9050565b600160a060020a0381161515620000f957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b50565b6134e2806200010c6000396000f30060806040526004361061020b5763ffffffff60e060020a600035041663024c7ec7811461021057806304ceaf411461022c57806311839064146102915780631814f2d2146102b25780631d3fccd5146102e35780631f8e26201461037a578063295d2a21146103cf5780632fe8a6ad146104715780633ab8857c1461049a5780634123ef60146104bb57806349c5f32b146104dc57806349d10b641461050f5780634c7df18f146105245780635a0a66181461053c5780635f1b50fe14610666578063603f51e41461067b578063610c0b051461069f57806361cd756e146106f457806369be4784146107095780636ce1c4dc1461071e578063725b87861461073f57806379ba5097146107665780637a5f0ffd1461077b5780637b103999146107905780637f45c4c3146107a5578063865cf194146107ba5780638da5cb5b146107d25780638f1d0e1a146107e7578063954254f5146108085780639e76a00714610829578063a109d2141461084a578063a43d5e9414610862578063a74498aa14610883578063b4a176d31461089b578063b4c4197a146108b0578063c22b82f0146108d7578063d3182bed14610965578063d4ee1d901461097a578063d6c4b5b21461098f578063d8cced2a146109b3578063e571049b146109d4578063e85455d7146109e9578063effb3c6e14610a0a578063f2fde38b14610a1f578063f4fb86c014610a40575b600080fd5b34801561021c57600080fd5b5061022a6004351515610a61565b005b34801561023857600080fd5b50610241610aa9565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561027d578181015183820152602001610265565b505050509050019250505060405180910390f35b34801561029d57600080fd5b50610241600160a060020a0360043516610ab8565b3480156102be57600080fd5b506102c7610bbc565b60408051600160a060020a039092168252519081900360200190f35b3480156102ef57600080fd5b506040805160206004602480358281013584810280870186019097528086526102c796843561ffff1696369660449591949091019291829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750949750610bcb9650505050505050565b34801561038657600080fd5b506040805160206004803580820135838102808601850190965280855261024195369593946024949385019291829185019084908082843750949750610cbe9650505050505050565b3480156103db57600080fd5b506040805160206004602480358281013584810280870186019097528086526102c796843561ffff1696369660449591949091019291829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a99890198929750908201955093508392508501908490808284375094975050509235600160a060020a03169350610ccf92505050565b34801561047d57600080fd5b50610486611190565b604080519115158252519081900360200190f35b3480156104a657600080fd5b50610486600160a060020a03600435166111b1565b3480156104c757600080fd5b50610486600160a060020a0360043516611256565b3480156104e857600080fd5b506104fd600160a060020a0360043516611261565b60408051918252519081900360200190f35b34801561051b57600080fd5b5061022a6112d4565b34801561053057600080fd5b506102c7600435611541565b34801561054857600080fd5b5060408051602060046024803582810135601f81018590048502860185019096528585526102c795833561ffff1695369560449491939091019190819084018382808284375050604080516020601f89358b018035918201839004830284018301909452808352979a9998810197919650918201945092508291508401838280828437505060408051818801358901803560208181028481018201909552818452989b60ff8b35169b63ffffffff8b8d0135169b919a90995060609091019750929550908201935091829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a9989019892975090820195509350839250850190849080828437509497506115a29650505050505050565b34801561067257600080fd5b506102416115eb565b34801561068757600080fd5b506102c7600160a060020a03600435166024356116d1565b3480156106ab57600080fd5b50604080516020600480358082013583810280860185019096528085526102419536959394602494938501929182918501908490808284375094975061177f9650505050505050565b34801561070057600080fd5b506102c7611875565b34801561071557600080fd5b506104fd611884565b34801561072a57600080fd5b5061022a600160a060020a036004351661190b565b34801561074b57600080fd5b50610486600160a060020a036004358116906024351661197e565b34801561077257600080fd5b5061022a611991565b34801561078757600080fd5b506104fd611a52565b34801561079c57600080fd5b506102c7611aa8565b3480156107b157600080fd5b50610241611ab7565b3480156107c657600080fd5b506102c7600435611b0d565b3480156107de57600080fd5b506102c7611b6e565b3480156107f357600080fd5b50610486600160a060020a0360043516611b7d565b34801561081457600080fd5b50610486600160a060020a0360043516611dc9565b34801561083557600080fd5b5061022a600160a060020a0360043516611ed8565b34801561085657600080fd5b506102c7600435611f44565b34801561086e57600080fd5b506104fd600160a060020a0360043516611f4f565b34801561088f57600080fd5b506102c7600435611f5a565b3480156108a757600080fd5b5061022a611fbb565b3480156108bc57600080fd5b50610486600160a060020a0360043581169060243516611ff4565b3480156108e357600080fd5b50604080516020600480358082013583810280860185019096528085526102c795369593946024949385019291829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a99890198929750908201955093508392508501908490808284375094975061207b9650505050505050565b34801561097157600080fd5b506104fd612089565b34801561098657600080fd5b506102c76120df565b34801561099b57600080fd5b506102c7600160a060020a03600435166024356120ee565b3480156109bf57600080fd5b50610486600160a060020a03600435166120fa565b3480156109e057600080fd5b506104fd61216d565b3480156109f557600080fd5b50610486600160a060020a0360043516612177565b348015610a1657600080fd5b506102416121ea565b348015610a2b57600080fd5b5061022a600160a060020a0360043516612240565b348015610a4c57600080fd5b50610241600160a060020a03600435166122dd565b610a696122e8565b60038054911515740100000000000000000000000000000000000000000274ff000000000000000000000000000000000000000019909216919091179055565b6060610ab36121ea565b905090565b6060610ad160008051602061349783398151915261233a565b600160a060020a031663f4fb86c0836040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b158015610b2b57600080fd5b505af1158015610b3f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526020811015610b6857600080fd5b810190808051640100000000811115610b8057600080fd5b82016020810184811115610b9357600080fd5b8151856020820283011164010000000082111715610bb057600080fd5b50909695505050505050565b600554600160a060020a031681565b60006060600080600085518751148015610be6575060018751115b15610cae57610bf4876123a0565b9350600092505b8351831015610cae578383815181101515610c1257fe5b90602001906020020151915081600160a060020a0316638da5cb5b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610c5c57600080fd5b505af1158015610c70573d6000803e3d6000fd5b505050506040513d6020811015610c8657600080fd5b50519050610c9681898989612638565b15610ca357819450610cb3565b600190920191610bfb565b600094505b505050509392505050565b6060610cc98261177f565b92915050565b600160a060020a038181166000908152600460205260408120549091829182918291163314610d6e576040805160e560020a62461bcd02815260206004820152603060248201527f6f6e6c7920746865206465706c6f796572206d61792066696e6973682074686560448201527f20636f6e76657274657220736574757000000000000000000000000000000000606482015290519081900360840190fd5b865186519093508314610dcb576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e56414c49445f5245534552564553000000000000000000000000604482015290519081900360640190fd5b6000610dd8898989610bcb565b600160a060020a031614610e36576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f414c52454144595f4558495354530000000000000000000000000000604482015290519081900360640190fd5b84600160a060020a031663d3fb73b46040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610e7457600080fd5b505af1158015610e88573d6000803e3d6000fd5b505050506040513d6020811015610e9e57600080fd5b5051604080517f79ba50970000000000000000000000000000000000000000000000000000000081529051919350600160a060020a038416916379ba50979160048082019260009290919082900301818387803b158015610efe57600080fd5b505af1158015610f12573d6000803e3d6000fd5b5050505084600160a060020a03166379ba50976040518163ffffffff1660e060020a028152600401600060405180830381600087803b158015610f5457600080fd5b505af1158015610f68573d6000803e3d6000fd5b50505050600090505b8281101561103a5784600160a060020a0316636a49d2c48883815181101515610f9657fe5b906020019060200201518884815181101515610fae57fe5b906020019060200201516040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a031681526020018263ffffffff1663ffffffff16815260200192505050600060405180830381600087803b15801561101657600080fd5b505af115801561102a573d6000803e3d6000fd5b505060019092019150610f719050565b81600160a060020a031663f2fde38b866040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b15801561109557600080fd5b505af11580156110a9573d6000803e3d6000fd5b5050505084600160a060020a031663cdc91c696040518163ffffffff1660e060020a028152600401600060405180830381600087803b1580156110eb57600080fd5b505af11580156110ff573d6000803e3d6000fd5b5050604080517ff2fde38b0000000000000000000000000000000000000000000000000000000081523360048201529051600160a060020a038916935063f2fde38b9250602480830192600092919082900301818387803b15801561116357600080fd5b505af1158015611177573d6000803e3d6000fd5b50505050611184856127b1565b50929695505050505050565b60035474010000000000000000000000000000000000000000900460ff1681565b60006111ca60008051602061349783398151915261233a565b600160a060020a0316633ab8857c836040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b15801561122457600080fd5b505af1158015611238573d6000803e3d6000fd5b505050506040513d602081101561124e57600080fd5b505192915050565b6000610cc9826120fa565b600061127a60008051602061349783398151915261233a565b600160a060020a031663a43d5e94836040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b15801561122457600080fd5b60008054600160a060020a0316331480611309575060035474010000000000000000000000000000000000000000900460ff16155b151561134d576040805160e560020a62461bcd0281526020600482015260116024820152600080516020613477833981519152604482015290519081900360640190fd5b6113767f436f6e747261637452656769737472790000000000000000000000000000000061233a565b600254909150600160a060020a0380831691161480159061139f5750600160a060020a03811615155b15156113f5576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e56414c49445f5245474953545259000000000000000000000000604482015290519081900360640190fd5b604080517fbb34534c0000000000000000000000000000000000000000000000000000000081527f436f6e747261637452656769737472790000000000000000000000000000000060048201529051600091600160a060020a0384169163bb34534c9160248082019260209290919082900301818787803b15801561147957600080fd5b505af115801561148d573d6000803e3d6000fd5b505050506040513d60208110156114a357600080fd5b5051600160a060020a03161415611504576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e56414c49445f5245474953545259000000000000000000000000604482015290519081900360640190fd5b6002805460038054600160a060020a0380841673ffffffffffffffffffffffffffffffffffffffff19928316179092559091169216919091179055565b600061155a60008051602061349783398151915261233a565b600160a060020a031663a109d214836040518263ffffffff1660e060020a02815260040180828152602001915050602060405180830381600087803b15801561122457600080fd5b60006115b388888888888888612992565b6005805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392831617908190551698975050505050505050565b606061160460008051602061349783398151915261233a565b600160a060020a0316635f1b50fe6040518163ffffffff1660e060020a028152600401600060405180830381600087803b15801561164157600080fd5b505af1158015611655573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561167e57600080fd5b81019080805164010000000081111561169657600080fd5b820160208101848111156116a957600080fd5b81518560208202830111640100000000821117156116c657600080fd5b509094505050505090565b60006116ea60008051602061349783398151915261233a565b600160a060020a031663d6c4b5b284846040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b15801561174c57600080fd5b505af1158015611760573d6000803e3d6000fd5b505050506040513d602081101561177657600080fd5b50519392505050565b606080600083516040519080825280602002602001820160405280156117af578160200160208202803883390190505b509150600090505b835181101561186e5783818151811015156117ce57fe5b90602001906020020151600160a060020a0316638da5cb5b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561181557600080fd5b505af1158015611829573d6000803e3d6000fd5b505050506040513d602081101561183f57600080fd5b5051825183908390811061184f57fe5b600160a060020a039092166020928302909101909101526001016117b7565b5092915050565b600354600160a060020a031681565b600061189d60008051602061349783398151915261233a565b600160a060020a03166369be47846040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156118da57600080fd5b505af11580156118ee573d6000803e3d6000fd5b505050506040513d602081101561190457600080fd5b5051905090565b6119136122e8565b61191c81611dc9565b1515611972576040805160e560020a62461bcd02815260206004820152601560248201527f4552525f494e56414c49445f434f4e5645525445520000000000000000000000604482015290519081900360640190fd5b61197b816127b1565b50565b600061198a8383611ff4565b9392505050565b600154600160a060020a031633146119e1576040805160e560020a62461bcd0281526020600482015260116024820152600080516020613477833981519152604482015290519081900360640190fd5b60015460008054604051600160a060020a0393841693909116917f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91a3600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b6000611a6b60008051602061349783398151915261233a565b600160a060020a0316637a5f0ffd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156118da57600080fd5b600254600160a060020a031681565b6060611ad060008051602061349783398151915261233a565b600160a060020a0316637f45c4c36040518163ffffffff1660e060020a028152600401600060405180830381600087803b15801561164157600080fd5b6000611b2660008051602061349783398151915261233a565b600160a060020a031663865cf194836040518263ffffffff1660e060020a02815260040180828152602001915050602060405180830381600087803b15801561122457600080fd5b600054600160a060020a031681565b60008060608060008086600160a060020a03166371f52bf36040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015611bc457600080fd5b505af1158015611bd8573d6000803e3d6000fd5b505050506040513d6020811015611bee57600080fd5b50516040805161ffff90921680835260208181028401019091529550858015611c21578160200160208202803883390190505b50935084604051908082528060200260200182016040528015611c4e578160200160208202803883390190505b509250600091505b84821015611d345786600160a060020a03166319b64015836040518263ffffffff1660e060020a02815260040180828152602001915050602060405180830381600087803b158015611ca757600080fd5b505af1158015611cbb573d6000803e3d6000fd5b505050506040513d6020811015611cd157600080fd5b505184519091508190859084908110611ce657fe5b600160a060020a03909216602092830290910190910152611d078782612d1a565b8383815181101515611d1557fe5b63ffffffff909216602092830290910190910152600190910190611c56565b6000600160a060020a0316611db388600160a060020a0316633e8ff43f6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015611d8057600080fd5b505af1158015611d94573d6000803e3d6000fd5b505050506040513d6020811015611daa57600080fd5b50518686610bcb565b600160a060020a03161415979650505050505050565b600081600160a060020a031682600160a060020a031663fc0c546a6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015611e1357600080fd5b505af1158015611e27573d6000803e3d6000fd5b505050506040513d6020811015611e3d57600080fd5b5051604080517f8da5cb5b0000000000000000000000000000000000000000000000000000000081529051600160a060020a0390921691638da5cb5b916004808201926020929091908290030181600087803b158015611e9c57600080fd5b505af1158015611eb0573d6000803e3d6000fd5b505050506040513d6020811015611ec657600080fd5b5051600160a060020a03161492915050565b600054600160a060020a0316331480611ef75750611ef581611dc9565b155b1515611f3b576040805160e560020a62461bcd0281526020600482015260116024820152600080516020613477833981519152604482015290519081900360640190fd5b61197b81612deb565b6000610cc982611541565b6000610cc982611261565b6000611f7360008051602061349783398151915261233a565b600160a060020a031663a74498aa836040518263ffffffff1660e060020a02815260040180828152602001915050602060405180830381600087803b15801561122457600080fd5b611fc36122e8565b6003546002805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055565b600061200d60008051602061349783398151915261233a565b604080517f725b8786000000000000000000000000000000000000000000000000000000008152600160a060020a03868116600483015285811660248301529151929091169163725b8786916044808201926020929091908290030181600087803b15801561174c57600080fd5b600061198a60018484610bcb565b60006120a260008051602061349783398151915261233a565b600160a060020a031663e571049b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156118da57600080fd5b600154600160a060020a031681565b600061198a83836116d1565b600061211360008051602061349783398151915261233a565b600160a060020a0316634123ef60836040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b15801561122457600080fd5b6000610ab3612089565b600061219060008051602061349783398151915261233a565b600160a060020a031663e85455d7836040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b15801561122457600080fd5b606061220360008051602061349783398151915261233a565b600160a060020a03166304ceaf416040518163ffffffff1660e060020a028152600401600060405180830381600087803b15801561164157600080fd5b6122486122e8565b600054600160a060020a03828116911614156122ae576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f53414d455f4f574e4552000000000000000000000000000000000000604482015290519081900360640190fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6060610cc982610ab8565b600054600160a060020a03163314612338576040805160e560020a62461bcd0281526020600482015260116024820152600080516020613477833981519152604482015290519081900360640190fd5b565b600254604080517fbb34534c000000000000000000000000000000000000000000000000000000008152600481018490529051600092600160a060020a03169163bb34534c91602480830192602092919082900301818787803b15801561122457600080fd5b606060008060008060006123c160008051602061349783398151915261233a565b945084600160a060020a031663a43d5e948860008151811015156123e157fe5b906020019060200201516040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b15801561243657600080fd5b505af115801561244a573d6000803e3d6000fd5b505050506040513d602081101561246057600080fd5b5051935060009250600191505b86518210156125305784600160a060020a031663a43d5e94888481518110151561249357fe5b906020019060200201516040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b1580156124e857600080fd5b505af11580156124fc573d6000803e3d6000fd5b505050506040513d602081101561251257600080fd5b5051905080841115612525578093508192505b60019091019061246d565b84600160a060020a031663f4fb86c0888581518110151561254d57fe5b906020019060200201516040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b1580156125a257600080fd5b505af11580156125b6573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260208110156125df57600080fd5b8101908080516401000000008111156125f757600080fd5b8201602081018481111561260a57600080fd5b815185602082028301116401000000008211171561262757600080fd5b50909b9a5050505050505050505050565b60008085600160a060020a0316633e8ff43f6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561267957600080fd5b505af115801561268d573d6000803e3d6000fd5b505050506040513d60208110156126a357600080fd5b505161ffff8681169116146126bb57600091506127a8565b85600160a060020a03166371f52bf36040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156126f957600080fd5b505af115801561270d573d6000803e3d6000fd5b505050506040513d602081101561272357600080fd5b5051845161ffff9091161461273b57600091506127a8565b5060005b83518110156127a35761276986858381518110151561275a57fe5b90602001906020020151612d1a565b63ffffffff16838281518110151561277d57fe5b6020908102909101015163ffffffff161461279b57600091506127a8565b60010161273f565b600191505b50949350505050565b6000806000806127ce60008051602061349783398151915261233a565b935084600160a060020a031663fc0c546a6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561280e57600080fd5b505af1158015612822573d6000803e3d6000fd5b505050506040513d602081101561283857600080fd5b5051604080517f71f52bf30000000000000000000000000000000000000000000000000000000081529051919450600160a060020a038716916371f52bf3916004808201926020929091908290030181600087803b15801561289957600080fd5b505af11580156128ad573d6000803e3d6000fd5b505050506040513d60208110156128c357600080fd5b505161ffff1691506128d58484612fc5565b60018211156128ed576128e884846130a4565b6128f8565b6128f884848561314f565b5060005b8181101561298b576129838486600160a060020a03166319b64015846040518263ffffffff1660e060020a02815260040180828152602001915050602060405180830381600087803b15801561295157600080fd5b505af1158015612965573d6000803e3d6000fd5b505050506040513d602081101561297b57600080fd5b50518561314f565b6001016128fc565b5050505050565b6000806000806000865193508551841415156129f8576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e56414c49445f5245534552564553000000000000000000000000604482015290519081900360640190fd5b6000612a058d8989610bcb565b600160a060020a031614612a63576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f414c52454144595f4558495354530000000000000000000000000000604482015290519081900360640190fd5b612a8c7f436f6e766572746572466163746f72790000000000000000000000000000000061233a565b925082600160a060020a0316632e9ab7b38d8d8d8d6040518563ffffffff1660e060020a028152600401808561ffff1661ffff16815260200180602001806020018460ff1660ff168152602001838103835286818151815260200191508051906020019080838360005b83811015612b0e578181015183820152602001612af6565b50505050905090810190601f168015612b3b5780820380516001836020036101000a031916815260200191505b50838103825285518152855160209182019187019080838360005b83811015612b6e578181015183820152602001612b56565b50505050905090810190601f168015612b9b5780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600087803b158015612bbe57600080fd5b505af1158015612bd2573d6000803e3d6000fd5b505050506040513d6020811015612be857600080fd5b8101908080519060200190929190505050915082600160a060020a03166315f64b6a8d84600260009054906101000a9004600160a060020a03168c6040518563ffffffff1660e060020a028152600401808561ffff1661ffff16815260200184600160a060020a0316600160a060020a0316815260200183600160a060020a0316600160a060020a031681526020018263ffffffff1663ffffffff168152602001945050505050602060405180830381600087803b158015612ca957600080fd5b505af1158015612cbd573d6000803e3d6000fd5b505050506040513d6020811015612cd357600080fd5b5051600160a060020a0381166000908152600460205260409020805473ffffffffffffffffffffffffffffffffffffffff1916331790559c9b505050505050505050505050565b6000612d2461345b565b604080517f636f6e6e6563746f72732861646472657373290000000000000000000000000081528151908190036013018120600160a060020a03861660248084019190915283518084039091018152604490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090921691909117815281519192918491885afa801515612dde57600080fd5b5050602001519392505050565b600080600080612e0860008051602061349783398151915261233a565b935084600160a060020a031663fc0c546a6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015612e4857600080fd5b505af1158015612e5c573d6000803e3d6000fd5b505050506040513d6020811015612e7257600080fd5b5051604080517f71f52bf30000000000000000000000000000000000000000000000000000000081529051919450600160a060020a038716916371f52bf3916004808201926020929091908290030181600087803b158015612ed357600080fd5b505af1158015612ee7573d6000803e3d6000fd5b505050506040513d6020811015612efd57600080fd5b505161ffff169150612f0f8484613210565b6001821115612f2757612f2284846132ef565b612f32565b612f3284848561339a565b5060005b8181101561298b57612fbd8486600160a060020a03166319b64015846040518263ffffffff1660e060020a02815260040180828152602001915050602060405180830381600087803b158015612f8b57600080fd5b505af1158015612f9f573d6000803e3d6000fd5b505050506040513d6020811015612fb557600080fd5b50518561339a565b600101612f36565b81600160a060020a0316638de6c3eb826040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b15801561302057600080fd5b505af1158015613034573d6000803e3d6000fd5b5050604051600160a060020a03841692507fc0a6d303d67b7ed9fa0abae1c48878df32acc0e7ca4334c7dad2bceeee5956fd9150600090a2604051600160a060020a038216907f88881feecdf61136ac4bdb1f681f2f3746a82910263d21ffea94750d2a78c0ab90600090a25050565b81600160a060020a031663ee6a934c826040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b1580156130ff57600080fd5b505af1158015613113573d6000803e3d6000fd5b5050604051600160a060020a03841692507fb893f883ef734b712208a877459424ee509832c57e0461fb1ac99ed4d42f2d899150600090a25050565b604080517f36900c11000000000000000000000000000000000000000000000000000000008152600160a060020a03848116600483015283811660248301529151918516916336900c119160448082019260009290919082900301818387803b1580156131bb57600080fd5b505af11580156131cf573d6000803e3d6000fd5b5050604051600160a060020a038085169350851691507ff2e7cf6d6ed3f77039511409a43d4fa5108f09ab71d72b014380364c910233a590600090a3505050565b81600160a060020a031663ceb9838c826040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b15801561326b57600080fd5b505af115801561327f573d6000803e3d6000fd5b5050604051600160a060020a03841692507fbfdf1baaa7e4871111360083540f067050014f651c9e4610a2a4a4bdf8bfab5d9150600090a2604051600160a060020a038216907f2aff63790c7da80d1c50ede92d23bc841c384837735c92c184331f3d7b91e5bf90600090a25050565b81600160a060020a031663ae22107f826040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b15801561334a57600080fd5b505af115801561335e573d6000803e3d6000fd5b5050604051600160a060020a03841692507f59c3fbcae88f30e9b0e35c132a7f68c53231dffa4722f197c7ecb0ee013eee609150600090a25050565b604080517ffba8f031000000000000000000000000000000000000000000000000000000008152600160a060020a038481166004830152838116602483015291519185169163fba8f0319160448082019260009290919082900301818387803b15801561340657600080fd5b505af115801561341a573d6000803e3d6000fd5b5050604051600160a060020a038085169350851691507f9430ad6ff45d6c3e126c7711bf0036bd9bc6b202fa19628abd88e59cf43ced4390600090a3505050565b6040805180820182529060029082908038833950919291505056004552525f4143434553535f44454e494544000000000000000000000000000000536f7672796e53776170436f6e76657274657252656769737472794461746100a165627a7a7230582023bb3142e349dbb5b391f6eed5184e6c1bf93d52cf7d3e26938270e2c153c0f90029", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP1 PUSH3 0x35EE DUP4 CODECOPY DUP2 ADD PUSH1 0x40 MSTORE MLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND CALLER OR SWAP1 SSTORE DUP1 DUP1 DUP1 PUSH3 0x4D DUP2 PUSH5 0x100000000 PUSH3 0x81 DUP2 MUL DIV JUMP JUMPDEST POP PUSH1 0x2 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT SWAP3 DUP4 AND DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x3 DUP1 SLOAD SWAP1 SWAP3 AND OR SWAP1 SSTORE POP PUSH3 0xFC SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH3 0xF9 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x34E2 DUP1 PUSH3 0x10C PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x20B JUMPI PUSH4 0xFFFFFFFF PUSH1 0xE0 PUSH1 0x2 EXP PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x24C7EC7 DUP2 EQ PUSH2 0x210 JUMPI DUP1 PUSH4 0x4CEAF41 EQ PUSH2 0x22C JUMPI DUP1 PUSH4 0x11839064 EQ PUSH2 0x291 JUMPI DUP1 PUSH4 0x1814F2D2 EQ PUSH2 0x2B2 JUMPI DUP1 PUSH4 0x1D3FCCD5 EQ PUSH2 0x2E3 JUMPI DUP1 PUSH4 0x1F8E2620 EQ PUSH2 0x37A JUMPI DUP1 PUSH4 0x295D2A21 EQ PUSH2 0x3CF JUMPI DUP1 PUSH4 0x2FE8A6AD EQ PUSH2 0x471 JUMPI DUP1 PUSH4 0x3AB8857C EQ PUSH2 0x49A JUMPI DUP1 PUSH4 0x4123EF60 EQ PUSH2 0x4BB JUMPI DUP1 PUSH4 0x49C5F32B EQ PUSH2 0x4DC JUMPI DUP1 PUSH4 0x49D10B64 EQ PUSH2 0x50F JUMPI DUP1 PUSH4 0x4C7DF18F EQ PUSH2 0x524 JUMPI DUP1 PUSH4 0x5A0A6618 EQ PUSH2 0x53C JUMPI DUP1 PUSH4 0x5F1B50FE EQ PUSH2 0x666 JUMPI DUP1 PUSH4 0x603F51E4 EQ PUSH2 0x67B JUMPI DUP1 PUSH4 0x610C0B05 EQ PUSH2 0x69F JUMPI DUP1 PUSH4 0x61CD756E EQ PUSH2 0x6F4 JUMPI DUP1 PUSH4 0x69BE4784 EQ PUSH2 0x709 JUMPI DUP1 PUSH4 0x6CE1C4DC EQ PUSH2 0x71E JUMPI DUP1 PUSH4 0x725B8786 EQ PUSH2 0x73F JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x766 JUMPI DUP1 PUSH4 0x7A5F0FFD EQ PUSH2 0x77B JUMPI DUP1 PUSH4 0x7B103999 EQ PUSH2 0x790 JUMPI DUP1 PUSH4 0x7F45C4C3 EQ PUSH2 0x7A5 JUMPI DUP1 PUSH4 0x865CF194 EQ PUSH2 0x7BA JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x7D2 JUMPI DUP1 PUSH4 0x8F1D0E1A EQ PUSH2 0x7E7 JUMPI DUP1 PUSH4 0x954254F5 EQ PUSH2 0x808 JUMPI DUP1 PUSH4 0x9E76A007 EQ PUSH2 0x829 JUMPI DUP1 PUSH4 0xA109D214 EQ PUSH2 0x84A JUMPI DUP1 PUSH4 0xA43D5E94 EQ PUSH2 0x862 JUMPI DUP1 PUSH4 0xA74498AA EQ PUSH2 0x883 JUMPI DUP1 PUSH4 0xB4A176D3 EQ PUSH2 0x89B JUMPI DUP1 PUSH4 0xB4C4197A EQ PUSH2 0x8B0 JUMPI DUP1 PUSH4 0xC22B82F0 EQ PUSH2 0x8D7 JUMPI DUP1 PUSH4 0xD3182BED EQ PUSH2 0x965 JUMPI DUP1 PUSH4 0xD4EE1D90 EQ PUSH2 0x97A JUMPI DUP1 PUSH4 0xD6C4B5B2 EQ PUSH2 0x98F JUMPI DUP1 PUSH4 0xD8CCED2A EQ PUSH2 0x9B3 JUMPI DUP1 PUSH4 0xE571049B EQ PUSH2 0x9D4 JUMPI DUP1 PUSH4 0xE85455D7 EQ PUSH2 0x9E9 JUMPI DUP1 PUSH4 0xEFFB3C6E EQ PUSH2 0xA0A JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0xA1F JUMPI DUP1 PUSH4 0xF4FB86C0 EQ PUSH2 0xA40 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x21C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x22A PUSH1 0x4 CALLDATALOAD ISZERO ISZERO PUSH2 0xA61 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x238 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x241 PUSH2 0xAA9 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP4 MLOAD DUP2 DUP4 ADD MSTORE DUP4 MLOAD SWAP2 SWAP3 DUP4 SWAP3 SWAP1 DUP4 ADD SWAP2 DUP6 DUP2 ADD SWAP2 MUL DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x27D JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x265 JUMP JUMPDEST POP POP POP POP SWAP1 POP ADD SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x29D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x241 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0xAB8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2BE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C7 PUSH2 0xBBC JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2EF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 PUSH1 0x24 DUP1 CALLDATALOAD DUP3 DUP2 ADD CALLDATALOAD DUP5 DUP2 MUL DUP1 DUP8 ADD DUP7 ADD SWAP1 SWAP8 MSTORE DUP1 DUP7 MSTORE PUSH2 0x2C7 SWAP7 DUP5 CALLDATALOAD PUSH2 0xFFFF AND SWAP7 CALLDATASIZE SWAP7 PUSH1 0x44 SWAP6 SWAP2 SWAP5 SWAP1 SWAP2 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP POP PUSH1 0x40 DUP1 MLOAD DUP8 CALLDATALOAD DUP10 ADD DUP1 CALLDATALOAD PUSH1 0x20 DUP2 DUP2 MUL DUP5 DUP2 ADD DUP3 ADD SWAP1 SWAP6 MSTORE DUP2 DUP5 MSTORE SWAP9 SWAP12 SWAP11 SWAP10 DUP10 ADD SWAP9 SWAP3 SWAP8 POP SWAP1 DUP3 ADD SWAP6 POP SWAP4 POP DUP4 SWAP3 POP DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP PUSH2 0xBCB SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x386 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x241 SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP PUSH2 0xCBE SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3DB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 PUSH1 0x24 DUP1 CALLDATALOAD DUP3 DUP2 ADD CALLDATALOAD DUP5 DUP2 MUL DUP1 DUP8 ADD DUP7 ADD SWAP1 SWAP8 MSTORE DUP1 DUP7 MSTORE PUSH2 0x2C7 SWAP7 DUP5 CALLDATALOAD PUSH2 0xFFFF AND SWAP7 CALLDATASIZE SWAP7 PUSH1 0x44 SWAP6 SWAP2 SWAP5 SWAP1 SWAP2 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP POP PUSH1 0x40 DUP1 MLOAD DUP8 CALLDATALOAD DUP10 ADD DUP1 CALLDATALOAD PUSH1 0x20 DUP2 DUP2 MUL DUP5 DUP2 ADD DUP3 ADD SWAP1 SWAP6 MSTORE DUP2 DUP5 MSTORE SWAP9 SWAP12 SWAP11 SWAP10 DUP10 ADD SWAP9 SWAP3 SWAP8 POP SWAP1 DUP3 ADD SWAP6 POP SWAP4 POP DUP4 SWAP3 POP DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP POP POP SWAP3 CALLDATALOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP4 POP PUSH2 0xCCF SWAP3 POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x47D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x486 PUSH2 0x1190 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4A6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x486 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x11B1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4C7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x486 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x1256 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4E8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4FD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x1261 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x51B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x22A PUSH2 0x12D4 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x530 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C7 PUSH1 0x4 CALLDATALOAD PUSH2 0x1541 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x548 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 PUSH1 0x24 DUP1 CALLDATALOAD DUP3 DUP2 ADD CALLDATALOAD PUSH1 0x1F DUP2 ADD DUP6 SWAP1 DIV DUP6 MUL DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP6 DUP6 MSTORE PUSH2 0x2C7 SWAP6 DUP4 CALLDATALOAD PUSH2 0xFFFF AND SWAP6 CALLDATASIZE SWAP6 PUSH1 0x44 SWAP5 SWAP2 SWAP4 SWAP1 SWAP2 ADD SWAP2 SWAP1 DUP2 SWAP1 DUP5 ADD DUP4 DUP3 DUP1 DUP3 DUP5 CALLDATACOPY POP POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x1F DUP10 CALLDATALOAD DUP12 ADD DUP1 CALLDATALOAD SWAP2 DUP3 ADD DUP4 SWAP1 DIV DUP4 MUL DUP5 ADD DUP4 ADD SWAP1 SWAP5 MSTORE DUP1 DUP4 MSTORE SWAP8 SWAP11 SWAP10 SWAP9 DUP2 ADD SWAP8 SWAP2 SWAP7 POP SWAP2 DUP3 ADD SWAP5 POP SWAP3 POP DUP3 SWAP2 POP DUP5 ADD DUP4 DUP3 DUP1 DUP3 DUP5 CALLDATACOPY POP POP PUSH1 0x40 DUP1 MLOAD DUP2 DUP9 ADD CALLDATALOAD DUP10 ADD DUP1 CALLDATALOAD PUSH1 0x20 DUP2 DUP2 MUL DUP5 DUP2 ADD DUP3 ADD SWAP1 SWAP6 MSTORE DUP2 DUP5 MSTORE SWAP9 SWAP12 PUSH1 0xFF DUP12 CALLDATALOAD AND SWAP12 PUSH4 0xFFFFFFFF DUP12 DUP14 ADD CALLDATALOAD AND SWAP12 SWAP2 SWAP11 SWAP1 SWAP10 POP PUSH1 0x60 SWAP1 SWAP2 ADD SWAP8 POP SWAP3 SWAP6 POP SWAP1 DUP3 ADD SWAP4 POP SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP POP PUSH1 0x40 DUP1 MLOAD DUP8 CALLDATALOAD DUP10 ADD DUP1 CALLDATALOAD PUSH1 0x20 DUP2 DUP2 MUL DUP5 DUP2 ADD DUP3 ADD SWAP1 SWAP6 MSTORE DUP2 DUP5 MSTORE SWAP9 SWAP12 SWAP11 SWAP10 DUP10 ADD SWAP9 SWAP3 SWAP8 POP SWAP1 DUP3 ADD SWAP6 POP SWAP4 POP DUP4 SWAP3 POP DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP PUSH2 0x15A2 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x672 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x241 PUSH2 0x15EB JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x687 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x16D1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6AB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x241 SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP PUSH2 0x177F SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x700 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C7 PUSH2 0x1875 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x715 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4FD PUSH2 0x1884 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x72A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x22A PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x190B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x74B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x486 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH2 0x197E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x772 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x22A PUSH2 0x1991 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x787 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4FD PUSH2 0x1A52 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x79C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C7 PUSH2 0x1AA8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7B1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x241 PUSH2 0x1AB7 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7C6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C7 PUSH1 0x4 CALLDATALOAD PUSH2 0x1B0D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7DE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C7 PUSH2 0x1B6E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7F3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x486 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x1B7D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x814 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x486 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x1DC9 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x835 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x22A PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x1ED8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x856 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C7 PUSH1 0x4 CALLDATALOAD PUSH2 0x1F44 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x86E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4FD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x1F4F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x88F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C7 PUSH1 0x4 CALLDATALOAD PUSH2 0x1F5A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8A7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x22A PUSH2 0x1FBB JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8BC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x486 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH2 0x1FF4 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8E3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x2C7 SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP POP PUSH1 0x40 DUP1 MLOAD DUP8 CALLDATALOAD DUP10 ADD DUP1 CALLDATALOAD PUSH1 0x20 DUP2 DUP2 MUL DUP5 DUP2 ADD DUP3 ADD SWAP1 SWAP6 MSTORE DUP2 DUP5 MSTORE SWAP9 SWAP12 SWAP11 SWAP10 DUP10 ADD SWAP9 SWAP3 SWAP8 POP SWAP1 DUP3 ADD SWAP6 POP SWAP4 POP DUP4 SWAP3 POP DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP PUSH2 0x207B SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x971 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4FD PUSH2 0x2089 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x986 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C7 PUSH2 0x20DF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x99B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x20EE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9BF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x486 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x20FA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9E0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4FD PUSH2 0x216D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x486 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x2177 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA16 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x241 PUSH2 0x21EA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA2B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x22A PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x2240 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA4C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x241 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x22DD JUMP JUMPDEST PUSH2 0xA69 PUSH2 0x22E8 JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD SWAP2 ISZERO ISZERO PUSH21 0x10000000000000000000000000000000000000000 MUL PUSH21 0xFF0000000000000000000000000000000000000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x60 PUSH2 0xAB3 PUSH2 0x21EA JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH2 0xAD1 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3497 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x233A JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xF4FB86C0 DUP4 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xB2B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xB3F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xB68 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 MLOAD PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0xB80 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD PUSH1 0x20 DUP2 ADD DUP5 DUP2 GT ISZERO PUSH2 0xB93 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP6 PUSH1 0x20 DUP3 MUL DUP4 ADD GT PUSH5 0x100000000 DUP3 GT OR ISZERO PUSH2 0xBB0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP SWAP1 SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 MLOAD DUP8 MLOAD EQ DUP1 ISZERO PUSH2 0xBE6 JUMPI POP PUSH1 0x1 DUP8 MLOAD GT JUMPDEST ISZERO PUSH2 0xCAE JUMPI PUSH2 0xBF4 DUP8 PUSH2 0x23A0 JUMP JUMPDEST SWAP4 POP PUSH1 0x0 SWAP3 POP JUMPDEST DUP4 MLOAD DUP4 LT ISZERO PUSH2 0xCAE JUMPI DUP4 DUP4 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xC12 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD SWAP2 POP DUP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x8DA5CB5B PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC5C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xC70 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xC86 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 POP PUSH2 0xC96 DUP2 DUP10 DUP10 DUP10 PUSH2 0x2638 JUMP JUMPDEST ISZERO PUSH2 0xCA3 JUMPI DUP2 SWAP5 POP PUSH2 0xCB3 JUMP JUMPDEST PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 PUSH2 0xBFB JUMP JUMPDEST PUSH1 0x0 SWAP5 POP JUMPDEST POP POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0xCC9 DUP3 PUSH2 0x177F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD SWAP1 SWAP2 DUP3 SWAP2 DUP3 SWAP2 DUP3 SWAP2 AND CALLER EQ PUSH2 0xD6E JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x30 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x6F6E6C7920746865206465706C6F796572206D61792066696E69736820746865 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x20636F6E76657274657220736574757000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x84 ADD SWAP1 REVERT JUMPDEST DUP7 MLOAD DUP7 MLOAD SWAP1 SWAP4 POP DUP4 EQ PUSH2 0xDCB JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245534552564553000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xDD8 DUP10 DUP10 DUP10 PUSH2 0xBCB JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ PUSH2 0xE36 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F414C52454144595F4558495354530000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xD3FB73B4 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xE74 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xE88 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xE9E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x79BA509700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP4 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP2 PUSH4 0x79BA5097 SWAP2 PUSH1 0x4 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xEFE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xF12 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x79BA5097 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xF54 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xF68 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x0 SWAP1 POP JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x103A JUMPI DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x6A49D2C4 DUP9 DUP4 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xF96 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD DUP9 DUP5 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xFAE JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 PUSH4 0xFFFFFFFF AND PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1016 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x102A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 POP PUSH2 0xF71 SWAP1 POP JUMP JUMPDEST DUP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xF2FDE38B DUP7 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1095 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x10A9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xCDC91C69 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x10EB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x10FF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 DUP1 MLOAD PUSH32 0xF2FDE38B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP10 AND SWAP4 POP PUSH4 0xF2FDE38B SWAP3 POP PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1163 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1177 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x1184 DUP6 PUSH2 0x27B1 JUMP JUMPDEST POP SWAP3 SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x11CA PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3497 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x233A JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x3AB8857C DUP4 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1224 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1238 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x124E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xCC9 DUP3 PUSH2 0x20FA JUMP JUMPDEST PUSH1 0x0 PUSH2 0x127A PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3497 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x233A JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xA43D5E94 DUP4 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1224 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ DUP1 PUSH2 0x1309 JUMPI POP PUSH1 0x3 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x134D JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3477 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x1376 PUSH32 0x436F6E7472616374526567697374727900000000000000000000000000000000 PUSH2 0x233A JUMP JUMPDEST PUSH1 0x2 SLOAD SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP4 AND SWAP2 AND EQ DUP1 ISZERO SWAP1 PUSH2 0x139F JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x13F5 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245474953545259000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0xBB34534C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH32 0x436F6E7472616374526567697374727900000000000000000000000000000000 PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP2 PUSH4 0xBB34534C SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1479 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x148D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x14A3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ ISZERO PUSH2 0x1504 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245474953545259000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP5 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP3 DUP4 AND OR SWAP1 SWAP3 SSTORE SWAP1 SWAP2 AND SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH2 0x155A PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3497 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x233A JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xA109D214 DUP4 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1224 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x15B3 DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 PUSH2 0x2992 JUMP JUMPDEST PUSH1 0x5 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 DUP4 AND OR SWAP1 DUP2 SWAP1 SSTORE AND SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x1604 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3497 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x233A JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x5F1B50FE PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1641 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1655 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x167E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 MLOAD PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x1696 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD PUSH1 0x20 DUP2 ADD DUP5 DUP2 GT ISZERO PUSH2 0x16A9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP6 PUSH1 0x20 DUP3 MUL DUP4 ADD GT PUSH5 0x100000000 DUP3 GT OR ISZERO PUSH2 0x16C6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP SWAP1 SWAP5 POP POP POP POP POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x16EA PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3497 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x233A JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xD6C4B5B2 DUP5 DUP5 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x174C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1760 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1776 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP1 PUSH1 0x0 DUP4 MLOAD PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x17AF JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CODESIZE DUP4 CODECOPY ADD SWAP1 POP JUMPDEST POP SWAP2 POP PUSH1 0x0 SWAP1 POP JUMPDEST DUP4 MLOAD DUP2 LT ISZERO PUSH2 0x186E JUMPI DUP4 DUP2 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x17CE JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x8DA5CB5B PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1815 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1829 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x183F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD DUP3 MLOAD DUP4 SWAP1 DUP4 SWAP1 DUP2 LT PUSH2 0x184F JUMPI INVALID JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND PUSH1 0x20 SWAP3 DUP4 MUL SWAP1 SWAP2 ADD SWAP1 SWAP2 ADD MSTORE PUSH1 0x1 ADD PUSH2 0x17B7 JUMP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x189D PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3497 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x233A JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x69BE4784 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x18DA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x18EE JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1904 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x1913 PUSH2 0x22E8 JUMP JUMPDEST PUSH2 0x191C DUP2 PUSH2 0x1DC9 JUMP JUMPDEST ISZERO ISZERO PUSH2 0x1972 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F434F4E5645525445520000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x197B DUP2 PUSH2 0x27B1 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x198A DUP4 DUP4 PUSH2 0x1FF4 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x19E1 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3477 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND SWAP4 SWAP1 SWAP2 AND SWAP2 PUSH32 0x343765429AEA5A34B3FF6A3785A98A5ABB2597ACA87BFBB58632C173D585373A SWAP2 LOG3 PUSH1 0x1 DUP1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND OR SWAP1 SWAP2 SSTORE AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1A6B PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3497 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x233A JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x7A5F0FFD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x18DA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x60 PUSH2 0x1AD0 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3497 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x233A JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x7F45C4C3 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1641 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1B26 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3497 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x233A JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x865CF194 DUP4 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1224 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x60 DUP1 PUSH1 0x0 DUP1 DUP7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x71F52BF3 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1BC4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1BD8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1BEE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH2 0xFFFF SWAP1 SWAP3 AND DUP1 DUP4 MSTORE PUSH1 0x20 DUP2 DUP2 MUL DUP5 ADD ADD SWAP1 SWAP2 MSTORE SWAP6 POP DUP6 DUP1 ISZERO PUSH2 0x1C21 JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CODESIZE DUP4 CODECOPY ADD SWAP1 POP JUMPDEST POP SWAP4 POP DUP5 PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x1C4E JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CODESIZE DUP4 CODECOPY ADD SWAP1 POP JUMPDEST POP SWAP3 POP PUSH1 0x0 SWAP2 POP JUMPDEST DUP5 DUP3 LT ISZERO PUSH2 0x1D34 JUMPI DUP7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x19B64015 DUP4 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1CA7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1CBB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1CD1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD DUP5 MLOAD SWAP1 SWAP2 POP DUP2 SWAP1 DUP6 SWAP1 DUP5 SWAP1 DUP2 LT PUSH2 0x1CE6 JUMPI INVALID JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND PUSH1 0x20 SWAP3 DUP4 MUL SWAP1 SWAP2 ADD SWAP1 SWAP2 ADD MSTORE PUSH2 0x1D07 DUP8 DUP3 PUSH2 0x2D1A JUMP JUMPDEST DUP4 DUP4 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x1D15 JUMPI INVALID JUMPDEST PUSH4 0xFFFFFFFF SWAP1 SWAP3 AND PUSH1 0x20 SWAP3 DUP4 MUL SWAP1 SWAP2 ADD SWAP1 SWAP2 ADD MSTORE PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x1C56 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x1DB3 DUP9 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x3E8FF43F PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1D80 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1D94 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1DAA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD DUP7 DUP7 PUSH2 0xBCB JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ ISZERO SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xFC0C546A PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1E13 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1E27 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1E3D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x8DA5CB5B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP2 PUSH4 0x8DA5CB5B SWAP2 PUSH1 0x4 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1E9C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1EB0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1EC6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ DUP1 PUSH2 0x1EF7 JUMPI POP PUSH2 0x1EF5 DUP2 PUSH2 0x1DC9 JUMP JUMPDEST ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x1F3B JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3477 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x197B DUP2 PUSH2 0x2DEB JUMP JUMPDEST PUSH1 0x0 PUSH2 0xCC9 DUP3 PUSH2 0x1541 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xCC9 DUP3 PUSH2 0x1261 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1F73 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3497 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x233A JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xA74498AA DUP4 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1224 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1FC3 PUSH2 0x22E8 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x2 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH2 0x200D PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3497 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x233A JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x725B878600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP6 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE SWAP2 MLOAD SWAP3 SWAP1 SWAP2 AND SWAP2 PUSH4 0x725B8786 SWAP2 PUSH1 0x44 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x174C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x198A PUSH1 0x1 DUP5 DUP5 PUSH2 0xBCB JUMP JUMPDEST PUSH1 0x0 PUSH2 0x20A2 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3497 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x233A JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xE571049B PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x18DA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x198A DUP4 DUP4 PUSH2 0x16D1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2113 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3497 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x233A JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x4123EF60 DUP4 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1224 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xAB3 PUSH2 0x2089 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2190 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3497 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x233A JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xE85455D7 DUP4 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1224 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x60 PUSH2 0x2203 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3497 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x233A JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x4CEAF41 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1641 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2248 PUSH2 0x22E8 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x22AE JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F4F574E4552000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x60 PUSH2 0xCC9 DUP3 PUSH2 0xAB8 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x2338 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3477 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xBB34534C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP2 PUSH4 0xBB34534C SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1224 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x23C1 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3497 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x233A JUMP JUMPDEST SWAP5 POP DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xA43D5E94 DUP9 PUSH1 0x0 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x23E1 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2436 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x244A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2460 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP4 POP PUSH1 0x0 SWAP3 POP PUSH1 0x1 SWAP2 POP JUMPDEST DUP7 MLOAD DUP3 LT ISZERO PUSH2 0x2530 JUMPI DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xA43D5E94 DUP9 DUP5 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x2493 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x24E8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x24FC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2512 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 POP DUP1 DUP5 GT ISZERO PUSH2 0x2525 JUMPI DUP1 SWAP4 POP DUP2 SWAP3 POP JUMPDEST PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x246D JUMP JUMPDEST DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xF4FB86C0 DUP9 DUP6 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x254D JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x25A2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x25B6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x25DF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 MLOAD PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x25F7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD PUSH1 0x20 DUP2 ADD DUP5 DUP2 GT ISZERO PUSH2 0x260A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP6 PUSH1 0x20 DUP3 MUL DUP4 ADD GT PUSH5 0x100000000 DUP3 GT OR ISZERO PUSH2 0x2627 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP SWAP1 SWAP12 SWAP11 POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP6 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x3E8FF43F PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2679 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x268D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x26A3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH2 0xFFFF DUP7 DUP2 AND SWAP2 AND EQ PUSH2 0x26BB JUMPI PUSH1 0x0 SWAP2 POP PUSH2 0x27A8 JUMP JUMPDEST DUP6 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x71F52BF3 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x26F9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x270D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2723 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD DUP5 MLOAD PUSH2 0xFFFF SWAP1 SWAP2 AND EQ PUSH2 0x273B JUMPI PUSH1 0x0 SWAP2 POP PUSH2 0x27A8 JUMP JUMPDEST POP PUSH1 0x0 JUMPDEST DUP4 MLOAD DUP2 LT ISZERO PUSH2 0x27A3 JUMPI PUSH2 0x2769 DUP7 DUP6 DUP4 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x275A JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH2 0x2D1A JUMP JUMPDEST PUSH4 0xFFFFFFFF AND DUP4 DUP3 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x277D JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MLOAD PUSH4 0xFFFFFFFF AND EQ PUSH2 0x279B JUMPI PUSH1 0x0 SWAP2 POP PUSH2 0x27A8 JUMP JUMPDEST PUSH1 0x1 ADD PUSH2 0x273F JUMP JUMPDEST PUSH1 0x1 SWAP2 POP JUMPDEST POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x27CE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3497 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x233A JUMP JUMPDEST SWAP4 POP DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xFC0C546A PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x280E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2822 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2838 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x71F52BF300000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP5 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND SWAP2 PUSH4 0x71F52BF3 SWAP2 PUSH1 0x4 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2899 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x28AD JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x28C3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH2 0xFFFF AND SWAP2 POP PUSH2 0x28D5 DUP5 DUP5 PUSH2 0x2FC5 JUMP JUMPDEST PUSH1 0x1 DUP3 GT ISZERO PUSH2 0x28ED JUMPI PUSH2 0x28E8 DUP5 DUP5 PUSH2 0x30A4 JUMP JUMPDEST PUSH2 0x28F8 JUMP JUMPDEST PUSH2 0x28F8 DUP5 DUP5 DUP6 PUSH2 0x314F JUMP JUMPDEST POP PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x298B JUMPI PUSH2 0x2983 DUP5 DUP7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x19B64015 DUP5 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2951 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2965 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x297B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD DUP6 PUSH2 0x314F JUMP JUMPDEST PUSH1 0x1 ADD PUSH2 0x28FC JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP7 MLOAD SWAP4 POP DUP6 MLOAD DUP5 EQ ISZERO ISZERO PUSH2 0x29F8 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245534552564553000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2A05 DUP14 DUP10 DUP10 PUSH2 0xBCB JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ PUSH2 0x2A63 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F414C52454144595F4558495354530000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x2A8C PUSH32 0x436F6E766572746572466163746F727900000000000000000000000000000000 PUSH2 0x233A JUMP JUMPDEST SWAP3 POP DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x2E9AB7B3 DUP14 DUP14 DUP14 DUP14 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP6 PUSH2 0xFFFF AND PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP5 PUSH1 0xFF AND PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 SUB DUP4 MSTORE DUP7 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x2B0E JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x2AF6 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x2B3B JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP DUP4 DUP2 SUB DUP3 MSTORE DUP6 MLOAD DUP2 MSTORE DUP6 MLOAD PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 DUP8 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x2B6E JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x2B56 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x2B9B JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP7 POP POP POP POP POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2BBE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2BD2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2BE8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP SWAP2 POP DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x15F64B6A DUP14 DUP5 PUSH1 0x2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP13 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP6 PUSH2 0xFFFF AND PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 PUSH4 0xFFFFFFFF AND PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP5 POP POP POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2CA9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2CBD JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2CD3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND CALLER OR SWAP1 SSTORE SWAP13 SWAP12 POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2D24 PUSH2 0x345B JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x636F6E6E6563746F727328616464726573732900000000000000000000000000 DUP2 MSTORE DUP2 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x13 ADD DUP2 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND PUSH1 0x24 DUP1 DUP5 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x44 SWAP1 SWAP3 ADD DUP4 MSTORE PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR DUP2 MSTORE DUP2 MLOAD SWAP2 SWAP3 SWAP2 DUP5 SWAP2 DUP9 GAS STATICCALL DUP1 ISZERO ISZERO PUSH2 0x2DDE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP PUSH1 0x20 ADD MLOAD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x2E08 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3497 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x233A JUMP JUMPDEST SWAP4 POP DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xFC0C546A PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2E48 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2E5C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2E72 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x71F52BF300000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP5 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND SWAP2 PUSH4 0x71F52BF3 SWAP2 PUSH1 0x4 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2ED3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2EE7 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2EFD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH2 0xFFFF AND SWAP2 POP PUSH2 0x2F0F DUP5 DUP5 PUSH2 0x3210 JUMP JUMPDEST PUSH1 0x1 DUP3 GT ISZERO PUSH2 0x2F27 JUMPI PUSH2 0x2F22 DUP5 DUP5 PUSH2 0x32EF JUMP JUMPDEST PUSH2 0x2F32 JUMP JUMPDEST PUSH2 0x2F32 DUP5 DUP5 DUP6 PUSH2 0x339A JUMP JUMPDEST POP PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x298B JUMPI PUSH2 0x2FBD DUP5 DUP7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x19B64015 DUP5 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2F8B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2F9F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2FB5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD DUP6 PUSH2 0x339A JUMP JUMPDEST PUSH1 0x1 ADD PUSH2 0x2F36 JUMP JUMPDEST DUP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x8DE6C3EB DUP3 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3020 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3034 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP3 POP PUSH32 0xC0A6D303D67B7ED9FA0ABAE1C48878DF32ACC0E7CA4334C7DAD2BCEEEE5956FD SWAP2 POP PUSH1 0x0 SWAP1 LOG2 PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 AND SWAP1 PUSH32 0x88881FEECDF61136AC4BDB1F681F2F3746A82910263D21FFEA94750D2A78C0AB SWAP1 PUSH1 0x0 SWAP1 LOG2 POP POP JUMP JUMPDEST DUP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xEE6A934C DUP3 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x30FF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3113 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP3 POP PUSH32 0xB893F883EF734B712208A877459424EE509832C57E0461FB1AC99ED4D42F2D89 SWAP2 POP PUSH1 0x0 SWAP1 LOG2 POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x36900C1100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP4 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE SWAP2 MLOAD SWAP2 DUP6 AND SWAP2 PUSH4 0x36900C11 SWAP2 PUSH1 0x44 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x31BB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x31CF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP6 AND SWAP4 POP DUP6 AND SWAP2 POP PUSH32 0xF2E7CF6D6ED3F77039511409A43D4FA5108F09AB71D72B014380364C910233A5 SWAP1 PUSH1 0x0 SWAP1 LOG3 POP POP POP JUMP JUMPDEST DUP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xCEB9838C DUP3 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x326B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x327F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP3 POP PUSH32 0xBFDF1BAAA7E4871111360083540F067050014F651C9E4610A2A4A4BDF8BFAB5D SWAP2 POP PUSH1 0x0 SWAP1 LOG2 PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 AND SWAP1 PUSH32 0x2AFF63790C7DA80D1C50EDE92D23BC841C384837735C92C184331F3D7B91E5BF SWAP1 PUSH1 0x0 SWAP1 LOG2 POP POP JUMP JUMPDEST DUP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xAE22107F DUP3 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x334A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x335E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP3 POP PUSH32 0x59C3FBCAE88F30E9B0E35C132A7F68C53231DFFA4722F197C7ECB0EE013EEE60 SWAP2 POP PUSH1 0x0 SWAP1 LOG2 POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0xFBA8F03100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP4 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE SWAP2 MLOAD SWAP2 DUP6 AND SWAP2 PUSH4 0xFBA8F031 SWAP2 PUSH1 0x44 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3406 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x341A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP6 AND SWAP4 POP DUP6 AND SWAP2 POP PUSH32 0x9430AD6FF45D6C3E126C7711BF0036BD9BC6B202FA19628ABD88E59CF43CED43 SWAP1 PUSH1 0x0 SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD DUP3 MSTORE SWAP1 PUSH1 0x2 SWAP1 DUP3 SWAP1 DUP1 CODESIZE DUP4 CODECOPY POP SWAP2 SWAP3 SWAP2 POP POP JUMP STOP GASLIMIT MSTORE MSTORE 0x5f COINBASE NUMBER NUMBER GASLIMIT MSTORE8 MSTORE8 0x5f DIFFICULTY GASLIMIT 0x4e 0x49 GASLIMIT DIFFICULTY STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP MSTORE8 PUSH16 0x7672796E53776170436F6E7665727465 PUSH19 0x52656769737472794461746100A165627A7A72 ADDRESS PC KECCAK256 0x23 0xbb BALANCE TIMESTAMP 0xe3 0x49 0xdb 0xb5 0xb3 SWAP2 0xf6 0xee 0xd5 XOR 0x4e PUSH13 0x1BF93D52CF7D3E26938270E2C1 MSTORE8 0xc0 0xf9 STOP 0x29 ", - "sourceMap": "144:560:35:-;;;237:79;8:9:-1;5:2;;;30:1;27;20:12;5:2;237:79:35;;;;;;;;;;;;;488:5:66;:18;;-1:-1:-1;;;;;;488:18:66;496:10;488:18;;;237:79:35;;;475:23:72;237:79:35;475:13:72;;;;:23;:::i;:::-;-1:-1:-1;1931:8:60;:39;;-1:-1:-1;;;;;1931:39:60;;;-1:-1:-1;;;;;;1931:39:60;;;;;;;;1974:12;:43;;;;;;;;-1:-1:-1;144:560:35;;-1:-1:-1;144:560:35;553:117:72;-1:-1:-1;;;;;620:22:72;;;;612:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;553:117;:::o;144:560:35:-;;;;;;;" - }, - "deployedBytecode": { - "linkReferences": {}, - "object": "60806040526004361061020b5763ffffffff60e060020a600035041663024c7ec7811461021057806304ceaf411461022c57806311839064146102915780631814f2d2146102b25780631d3fccd5146102e35780631f8e26201461037a578063295d2a21146103cf5780632fe8a6ad146104715780633ab8857c1461049a5780634123ef60146104bb57806349c5f32b146104dc57806349d10b641461050f5780634c7df18f146105245780635a0a66181461053c5780635f1b50fe14610666578063603f51e41461067b578063610c0b051461069f57806361cd756e146106f457806369be4784146107095780636ce1c4dc1461071e578063725b87861461073f57806379ba5097146107665780637a5f0ffd1461077b5780637b103999146107905780637f45c4c3146107a5578063865cf194146107ba5780638da5cb5b146107d25780638f1d0e1a146107e7578063954254f5146108085780639e76a00714610829578063a109d2141461084a578063a43d5e9414610862578063a74498aa14610883578063b4a176d31461089b578063b4c4197a146108b0578063c22b82f0146108d7578063d3182bed14610965578063d4ee1d901461097a578063d6c4b5b21461098f578063d8cced2a146109b3578063e571049b146109d4578063e85455d7146109e9578063effb3c6e14610a0a578063f2fde38b14610a1f578063f4fb86c014610a40575b600080fd5b34801561021c57600080fd5b5061022a6004351515610a61565b005b34801561023857600080fd5b50610241610aa9565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561027d578181015183820152602001610265565b505050509050019250505060405180910390f35b34801561029d57600080fd5b50610241600160a060020a0360043516610ab8565b3480156102be57600080fd5b506102c7610bbc565b60408051600160a060020a039092168252519081900360200190f35b3480156102ef57600080fd5b506040805160206004602480358281013584810280870186019097528086526102c796843561ffff1696369660449591949091019291829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750949750610bcb9650505050505050565b34801561038657600080fd5b506040805160206004803580820135838102808601850190965280855261024195369593946024949385019291829185019084908082843750949750610cbe9650505050505050565b3480156103db57600080fd5b506040805160206004602480358281013584810280870186019097528086526102c796843561ffff1696369660449591949091019291829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a99890198929750908201955093508392508501908490808284375094975050509235600160a060020a03169350610ccf92505050565b34801561047d57600080fd5b50610486611190565b604080519115158252519081900360200190f35b3480156104a657600080fd5b50610486600160a060020a03600435166111b1565b3480156104c757600080fd5b50610486600160a060020a0360043516611256565b3480156104e857600080fd5b506104fd600160a060020a0360043516611261565b60408051918252519081900360200190f35b34801561051b57600080fd5b5061022a6112d4565b34801561053057600080fd5b506102c7600435611541565b34801561054857600080fd5b5060408051602060046024803582810135601f81018590048502860185019096528585526102c795833561ffff1695369560449491939091019190819084018382808284375050604080516020601f89358b018035918201839004830284018301909452808352979a9998810197919650918201945092508291508401838280828437505060408051818801358901803560208181028481018201909552818452989b60ff8b35169b63ffffffff8b8d0135169b919a90995060609091019750929550908201935091829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a9989019892975090820195509350839250850190849080828437509497506115a29650505050505050565b34801561067257600080fd5b506102416115eb565b34801561068757600080fd5b506102c7600160a060020a03600435166024356116d1565b3480156106ab57600080fd5b50604080516020600480358082013583810280860185019096528085526102419536959394602494938501929182918501908490808284375094975061177f9650505050505050565b34801561070057600080fd5b506102c7611875565b34801561071557600080fd5b506104fd611884565b34801561072a57600080fd5b5061022a600160a060020a036004351661190b565b34801561074b57600080fd5b50610486600160a060020a036004358116906024351661197e565b34801561077257600080fd5b5061022a611991565b34801561078757600080fd5b506104fd611a52565b34801561079c57600080fd5b506102c7611aa8565b3480156107b157600080fd5b50610241611ab7565b3480156107c657600080fd5b506102c7600435611b0d565b3480156107de57600080fd5b506102c7611b6e565b3480156107f357600080fd5b50610486600160a060020a0360043516611b7d565b34801561081457600080fd5b50610486600160a060020a0360043516611dc9565b34801561083557600080fd5b5061022a600160a060020a0360043516611ed8565b34801561085657600080fd5b506102c7600435611f44565b34801561086e57600080fd5b506104fd600160a060020a0360043516611f4f565b34801561088f57600080fd5b506102c7600435611f5a565b3480156108a757600080fd5b5061022a611fbb565b3480156108bc57600080fd5b50610486600160a060020a0360043581169060243516611ff4565b3480156108e357600080fd5b50604080516020600480358082013583810280860185019096528085526102c795369593946024949385019291829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a99890198929750908201955093508392508501908490808284375094975061207b9650505050505050565b34801561097157600080fd5b506104fd612089565b34801561098657600080fd5b506102c76120df565b34801561099b57600080fd5b506102c7600160a060020a03600435166024356120ee565b3480156109bf57600080fd5b50610486600160a060020a03600435166120fa565b3480156109e057600080fd5b506104fd61216d565b3480156109f557600080fd5b50610486600160a060020a0360043516612177565b348015610a1657600080fd5b506102416121ea565b348015610a2b57600080fd5b5061022a600160a060020a0360043516612240565b348015610a4c57600080fd5b50610241600160a060020a03600435166122dd565b610a696122e8565b60038054911515740100000000000000000000000000000000000000000274ff000000000000000000000000000000000000000019909216919091179055565b6060610ab36121ea565b905090565b6060610ad160008051602061349783398151915261233a565b600160a060020a031663f4fb86c0836040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b158015610b2b57600080fd5b505af1158015610b3f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526020811015610b6857600080fd5b810190808051640100000000811115610b8057600080fd5b82016020810184811115610b9357600080fd5b8151856020820283011164010000000082111715610bb057600080fd5b50909695505050505050565b600554600160a060020a031681565b60006060600080600085518751148015610be6575060018751115b15610cae57610bf4876123a0565b9350600092505b8351831015610cae578383815181101515610c1257fe5b90602001906020020151915081600160a060020a0316638da5cb5b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610c5c57600080fd5b505af1158015610c70573d6000803e3d6000fd5b505050506040513d6020811015610c8657600080fd5b50519050610c9681898989612638565b15610ca357819450610cb3565b600190920191610bfb565b600094505b505050509392505050565b6060610cc98261177f565b92915050565b600160a060020a038181166000908152600460205260408120549091829182918291163314610d6e576040805160e560020a62461bcd02815260206004820152603060248201527f6f6e6c7920746865206465706c6f796572206d61792066696e6973682074686560448201527f20636f6e76657274657220736574757000000000000000000000000000000000606482015290519081900360840190fd5b865186519093508314610dcb576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e56414c49445f5245534552564553000000000000000000000000604482015290519081900360640190fd5b6000610dd8898989610bcb565b600160a060020a031614610e36576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f414c52454144595f4558495354530000000000000000000000000000604482015290519081900360640190fd5b84600160a060020a031663d3fb73b46040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610e7457600080fd5b505af1158015610e88573d6000803e3d6000fd5b505050506040513d6020811015610e9e57600080fd5b5051604080517f79ba50970000000000000000000000000000000000000000000000000000000081529051919350600160a060020a038416916379ba50979160048082019260009290919082900301818387803b158015610efe57600080fd5b505af1158015610f12573d6000803e3d6000fd5b5050505084600160a060020a03166379ba50976040518163ffffffff1660e060020a028152600401600060405180830381600087803b158015610f5457600080fd5b505af1158015610f68573d6000803e3d6000fd5b50505050600090505b8281101561103a5784600160a060020a0316636a49d2c48883815181101515610f9657fe5b906020019060200201518884815181101515610fae57fe5b906020019060200201516040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a031681526020018263ffffffff1663ffffffff16815260200192505050600060405180830381600087803b15801561101657600080fd5b505af115801561102a573d6000803e3d6000fd5b505060019092019150610f719050565b81600160a060020a031663f2fde38b866040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b15801561109557600080fd5b505af11580156110a9573d6000803e3d6000fd5b5050505084600160a060020a031663cdc91c696040518163ffffffff1660e060020a028152600401600060405180830381600087803b1580156110eb57600080fd5b505af11580156110ff573d6000803e3d6000fd5b5050604080517ff2fde38b0000000000000000000000000000000000000000000000000000000081523360048201529051600160a060020a038916935063f2fde38b9250602480830192600092919082900301818387803b15801561116357600080fd5b505af1158015611177573d6000803e3d6000fd5b50505050611184856127b1565b50929695505050505050565b60035474010000000000000000000000000000000000000000900460ff1681565b60006111ca60008051602061349783398151915261233a565b600160a060020a0316633ab8857c836040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b15801561122457600080fd5b505af1158015611238573d6000803e3d6000fd5b505050506040513d602081101561124e57600080fd5b505192915050565b6000610cc9826120fa565b600061127a60008051602061349783398151915261233a565b600160a060020a031663a43d5e94836040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b15801561122457600080fd5b60008054600160a060020a0316331480611309575060035474010000000000000000000000000000000000000000900460ff16155b151561134d576040805160e560020a62461bcd0281526020600482015260116024820152600080516020613477833981519152604482015290519081900360640190fd5b6113767f436f6e747261637452656769737472790000000000000000000000000000000061233a565b600254909150600160a060020a0380831691161480159061139f5750600160a060020a03811615155b15156113f5576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e56414c49445f5245474953545259000000000000000000000000604482015290519081900360640190fd5b604080517fbb34534c0000000000000000000000000000000000000000000000000000000081527f436f6e747261637452656769737472790000000000000000000000000000000060048201529051600091600160a060020a0384169163bb34534c9160248082019260209290919082900301818787803b15801561147957600080fd5b505af115801561148d573d6000803e3d6000fd5b505050506040513d60208110156114a357600080fd5b5051600160a060020a03161415611504576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e56414c49445f5245474953545259000000000000000000000000604482015290519081900360640190fd5b6002805460038054600160a060020a0380841673ffffffffffffffffffffffffffffffffffffffff19928316179092559091169216919091179055565b600061155a60008051602061349783398151915261233a565b600160a060020a031663a109d214836040518263ffffffff1660e060020a02815260040180828152602001915050602060405180830381600087803b15801561122457600080fd5b60006115b388888888888888612992565b6005805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392831617908190551698975050505050505050565b606061160460008051602061349783398151915261233a565b600160a060020a0316635f1b50fe6040518163ffffffff1660e060020a028152600401600060405180830381600087803b15801561164157600080fd5b505af1158015611655573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561167e57600080fd5b81019080805164010000000081111561169657600080fd5b820160208101848111156116a957600080fd5b81518560208202830111640100000000821117156116c657600080fd5b509094505050505090565b60006116ea60008051602061349783398151915261233a565b600160a060020a031663d6c4b5b284846040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b15801561174c57600080fd5b505af1158015611760573d6000803e3d6000fd5b505050506040513d602081101561177657600080fd5b50519392505050565b606080600083516040519080825280602002602001820160405280156117af578160200160208202803883390190505b509150600090505b835181101561186e5783818151811015156117ce57fe5b90602001906020020151600160a060020a0316638da5cb5b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561181557600080fd5b505af1158015611829573d6000803e3d6000fd5b505050506040513d602081101561183f57600080fd5b5051825183908390811061184f57fe5b600160a060020a039092166020928302909101909101526001016117b7565b5092915050565b600354600160a060020a031681565b600061189d60008051602061349783398151915261233a565b600160a060020a03166369be47846040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156118da57600080fd5b505af11580156118ee573d6000803e3d6000fd5b505050506040513d602081101561190457600080fd5b5051905090565b6119136122e8565b61191c81611dc9565b1515611972576040805160e560020a62461bcd02815260206004820152601560248201527f4552525f494e56414c49445f434f4e5645525445520000000000000000000000604482015290519081900360640190fd5b61197b816127b1565b50565b600061198a8383611ff4565b9392505050565b600154600160a060020a031633146119e1576040805160e560020a62461bcd0281526020600482015260116024820152600080516020613477833981519152604482015290519081900360640190fd5b60015460008054604051600160a060020a0393841693909116917f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91a3600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b6000611a6b60008051602061349783398151915261233a565b600160a060020a0316637a5f0ffd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156118da57600080fd5b600254600160a060020a031681565b6060611ad060008051602061349783398151915261233a565b600160a060020a0316637f45c4c36040518163ffffffff1660e060020a028152600401600060405180830381600087803b15801561164157600080fd5b6000611b2660008051602061349783398151915261233a565b600160a060020a031663865cf194836040518263ffffffff1660e060020a02815260040180828152602001915050602060405180830381600087803b15801561122457600080fd5b600054600160a060020a031681565b60008060608060008086600160a060020a03166371f52bf36040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015611bc457600080fd5b505af1158015611bd8573d6000803e3d6000fd5b505050506040513d6020811015611bee57600080fd5b50516040805161ffff90921680835260208181028401019091529550858015611c21578160200160208202803883390190505b50935084604051908082528060200260200182016040528015611c4e578160200160208202803883390190505b509250600091505b84821015611d345786600160a060020a03166319b64015836040518263ffffffff1660e060020a02815260040180828152602001915050602060405180830381600087803b158015611ca757600080fd5b505af1158015611cbb573d6000803e3d6000fd5b505050506040513d6020811015611cd157600080fd5b505184519091508190859084908110611ce657fe5b600160a060020a03909216602092830290910190910152611d078782612d1a565b8383815181101515611d1557fe5b63ffffffff909216602092830290910190910152600190910190611c56565b6000600160a060020a0316611db388600160a060020a0316633e8ff43f6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015611d8057600080fd5b505af1158015611d94573d6000803e3d6000fd5b505050506040513d6020811015611daa57600080fd5b50518686610bcb565b600160a060020a03161415979650505050505050565b600081600160a060020a031682600160a060020a031663fc0c546a6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015611e1357600080fd5b505af1158015611e27573d6000803e3d6000fd5b505050506040513d6020811015611e3d57600080fd5b5051604080517f8da5cb5b0000000000000000000000000000000000000000000000000000000081529051600160a060020a0390921691638da5cb5b916004808201926020929091908290030181600087803b158015611e9c57600080fd5b505af1158015611eb0573d6000803e3d6000fd5b505050506040513d6020811015611ec657600080fd5b5051600160a060020a03161492915050565b600054600160a060020a0316331480611ef75750611ef581611dc9565b155b1515611f3b576040805160e560020a62461bcd0281526020600482015260116024820152600080516020613477833981519152604482015290519081900360640190fd5b61197b81612deb565b6000610cc982611541565b6000610cc982611261565b6000611f7360008051602061349783398151915261233a565b600160a060020a031663a74498aa836040518263ffffffff1660e060020a02815260040180828152602001915050602060405180830381600087803b15801561122457600080fd5b611fc36122e8565b6003546002805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055565b600061200d60008051602061349783398151915261233a565b604080517f725b8786000000000000000000000000000000000000000000000000000000008152600160a060020a03868116600483015285811660248301529151929091169163725b8786916044808201926020929091908290030181600087803b15801561174c57600080fd5b600061198a60018484610bcb565b60006120a260008051602061349783398151915261233a565b600160a060020a031663e571049b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156118da57600080fd5b600154600160a060020a031681565b600061198a83836116d1565b600061211360008051602061349783398151915261233a565b600160a060020a0316634123ef60836040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b15801561122457600080fd5b6000610ab3612089565b600061219060008051602061349783398151915261233a565b600160a060020a031663e85455d7836040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b15801561122457600080fd5b606061220360008051602061349783398151915261233a565b600160a060020a03166304ceaf416040518163ffffffff1660e060020a028152600401600060405180830381600087803b15801561164157600080fd5b6122486122e8565b600054600160a060020a03828116911614156122ae576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f53414d455f4f574e4552000000000000000000000000000000000000604482015290519081900360640190fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6060610cc982610ab8565b600054600160a060020a03163314612338576040805160e560020a62461bcd0281526020600482015260116024820152600080516020613477833981519152604482015290519081900360640190fd5b565b600254604080517fbb34534c000000000000000000000000000000000000000000000000000000008152600481018490529051600092600160a060020a03169163bb34534c91602480830192602092919082900301818787803b15801561122457600080fd5b606060008060008060006123c160008051602061349783398151915261233a565b945084600160a060020a031663a43d5e948860008151811015156123e157fe5b906020019060200201516040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b15801561243657600080fd5b505af115801561244a573d6000803e3d6000fd5b505050506040513d602081101561246057600080fd5b5051935060009250600191505b86518210156125305784600160a060020a031663a43d5e94888481518110151561249357fe5b906020019060200201516040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b1580156124e857600080fd5b505af11580156124fc573d6000803e3d6000fd5b505050506040513d602081101561251257600080fd5b5051905080841115612525578093508192505b60019091019061246d565b84600160a060020a031663f4fb86c0888581518110151561254d57fe5b906020019060200201516040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b1580156125a257600080fd5b505af11580156125b6573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260208110156125df57600080fd5b8101908080516401000000008111156125f757600080fd5b8201602081018481111561260a57600080fd5b815185602082028301116401000000008211171561262757600080fd5b50909b9a5050505050505050505050565b60008085600160a060020a0316633e8ff43f6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561267957600080fd5b505af115801561268d573d6000803e3d6000fd5b505050506040513d60208110156126a357600080fd5b505161ffff8681169116146126bb57600091506127a8565b85600160a060020a03166371f52bf36040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156126f957600080fd5b505af115801561270d573d6000803e3d6000fd5b505050506040513d602081101561272357600080fd5b5051845161ffff9091161461273b57600091506127a8565b5060005b83518110156127a35761276986858381518110151561275a57fe5b90602001906020020151612d1a565b63ffffffff16838281518110151561277d57fe5b6020908102909101015163ffffffff161461279b57600091506127a8565b60010161273f565b600191505b50949350505050565b6000806000806127ce60008051602061349783398151915261233a565b935084600160a060020a031663fc0c546a6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561280e57600080fd5b505af1158015612822573d6000803e3d6000fd5b505050506040513d602081101561283857600080fd5b5051604080517f71f52bf30000000000000000000000000000000000000000000000000000000081529051919450600160a060020a038716916371f52bf3916004808201926020929091908290030181600087803b15801561289957600080fd5b505af11580156128ad573d6000803e3d6000fd5b505050506040513d60208110156128c357600080fd5b505161ffff1691506128d58484612fc5565b60018211156128ed576128e884846130a4565b6128f8565b6128f884848561314f565b5060005b8181101561298b576129838486600160a060020a03166319b64015846040518263ffffffff1660e060020a02815260040180828152602001915050602060405180830381600087803b15801561295157600080fd5b505af1158015612965573d6000803e3d6000fd5b505050506040513d602081101561297b57600080fd5b50518561314f565b6001016128fc565b5050505050565b6000806000806000865193508551841415156129f8576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e56414c49445f5245534552564553000000000000000000000000604482015290519081900360640190fd5b6000612a058d8989610bcb565b600160a060020a031614612a63576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f414c52454144595f4558495354530000000000000000000000000000604482015290519081900360640190fd5b612a8c7f436f6e766572746572466163746f72790000000000000000000000000000000061233a565b925082600160a060020a0316632e9ab7b38d8d8d8d6040518563ffffffff1660e060020a028152600401808561ffff1661ffff16815260200180602001806020018460ff1660ff168152602001838103835286818151815260200191508051906020019080838360005b83811015612b0e578181015183820152602001612af6565b50505050905090810190601f168015612b3b5780820380516001836020036101000a031916815260200191505b50838103825285518152855160209182019187019080838360005b83811015612b6e578181015183820152602001612b56565b50505050905090810190601f168015612b9b5780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600087803b158015612bbe57600080fd5b505af1158015612bd2573d6000803e3d6000fd5b505050506040513d6020811015612be857600080fd5b8101908080519060200190929190505050915082600160a060020a03166315f64b6a8d84600260009054906101000a9004600160a060020a03168c6040518563ffffffff1660e060020a028152600401808561ffff1661ffff16815260200184600160a060020a0316600160a060020a0316815260200183600160a060020a0316600160a060020a031681526020018263ffffffff1663ffffffff168152602001945050505050602060405180830381600087803b158015612ca957600080fd5b505af1158015612cbd573d6000803e3d6000fd5b505050506040513d6020811015612cd357600080fd5b5051600160a060020a0381166000908152600460205260409020805473ffffffffffffffffffffffffffffffffffffffff1916331790559c9b505050505050505050505050565b6000612d2461345b565b604080517f636f6e6e6563746f72732861646472657373290000000000000000000000000081528151908190036013018120600160a060020a03861660248084019190915283518084039091018152604490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090921691909117815281519192918491885afa801515612dde57600080fd5b5050602001519392505050565b600080600080612e0860008051602061349783398151915261233a565b935084600160a060020a031663fc0c546a6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015612e4857600080fd5b505af1158015612e5c573d6000803e3d6000fd5b505050506040513d6020811015612e7257600080fd5b5051604080517f71f52bf30000000000000000000000000000000000000000000000000000000081529051919450600160a060020a038716916371f52bf3916004808201926020929091908290030181600087803b158015612ed357600080fd5b505af1158015612ee7573d6000803e3d6000fd5b505050506040513d6020811015612efd57600080fd5b505161ffff169150612f0f8484613210565b6001821115612f2757612f2284846132ef565b612f32565b612f3284848561339a565b5060005b8181101561298b57612fbd8486600160a060020a03166319b64015846040518263ffffffff1660e060020a02815260040180828152602001915050602060405180830381600087803b158015612f8b57600080fd5b505af1158015612f9f573d6000803e3d6000fd5b505050506040513d6020811015612fb557600080fd5b50518561339a565b600101612f36565b81600160a060020a0316638de6c3eb826040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b15801561302057600080fd5b505af1158015613034573d6000803e3d6000fd5b5050604051600160a060020a03841692507fc0a6d303d67b7ed9fa0abae1c48878df32acc0e7ca4334c7dad2bceeee5956fd9150600090a2604051600160a060020a038216907f88881feecdf61136ac4bdb1f681f2f3746a82910263d21ffea94750d2a78c0ab90600090a25050565b81600160a060020a031663ee6a934c826040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b1580156130ff57600080fd5b505af1158015613113573d6000803e3d6000fd5b5050604051600160a060020a03841692507fb893f883ef734b712208a877459424ee509832c57e0461fb1ac99ed4d42f2d899150600090a25050565b604080517f36900c11000000000000000000000000000000000000000000000000000000008152600160a060020a03848116600483015283811660248301529151918516916336900c119160448082019260009290919082900301818387803b1580156131bb57600080fd5b505af11580156131cf573d6000803e3d6000fd5b5050604051600160a060020a038085169350851691507ff2e7cf6d6ed3f77039511409a43d4fa5108f09ab71d72b014380364c910233a590600090a3505050565b81600160a060020a031663ceb9838c826040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b15801561326b57600080fd5b505af115801561327f573d6000803e3d6000fd5b5050604051600160a060020a03841692507fbfdf1baaa7e4871111360083540f067050014f651c9e4610a2a4a4bdf8bfab5d9150600090a2604051600160a060020a038216907f2aff63790c7da80d1c50ede92d23bc841c384837735c92c184331f3d7b91e5bf90600090a25050565b81600160a060020a031663ae22107f826040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b15801561334a57600080fd5b505af115801561335e573d6000803e3d6000fd5b5050604051600160a060020a03841692507f59c3fbcae88f30e9b0e35c132a7f68c53231dffa4722f197c7ecb0ee013eee609150600090a25050565b604080517ffba8f031000000000000000000000000000000000000000000000000000000008152600160a060020a038481166004830152838116602483015291519185169163fba8f0319160448082019260009290919082900301818387803b15801561340657600080fd5b505af115801561341a573d6000803e3d6000fd5b5050604051600160a060020a038085169350851691507f9430ad6ff45d6c3e126c7711bf0036bd9bc6b202fa19628abd88e59cf43ced4390600090a3505050565b6040805180820182529060029082908038833950919291505056004552525f4143434553535f44454e494544000000000000000000000000000000536f7672796e53776170436f6e76657274657252656769737472794461746100a165627a7a7230582023bb3142e349dbb5b391f6eed5184e6c1bf93d52cf7d3e26938270e2c153c0f90029", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x20B JUMPI PUSH4 0xFFFFFFFF PUSH1 0xE0 PUSH1 0x2 EXP PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x24C7EC7 DUP2 EQ PUSH2 0x210 JUMPI DUP1 PUSH4 0x4CEAF41 EQ PUSH2 0x22C JUMPI DUP1 PUSH4 0x11839064 EQ PUSH2 0x291 JUMPI DUP1 PUSH4 0x1814F2D2 EQ PUSH2 0x2B2 JUMPI DUP1 PUSH4 0x1D3FCCD5 EQ PUSH2 0x2E3 JUMPI DUP1 PUSH4 0x1F8E2620 EQ PUSH2 0x37A JUMPI DUP1 PUSH4 0x295D2A21 EQ PUSH2 0x3CF JUMPI DUP1 PUSH4 0x2FE8A6AD EQ PUSH2 0x471 JUMPI DUP1 PUSH4 0x3AB8857C EQ PUSH2 0x49A JUMPI DUP1 PUSH4 0x4123EF60 EQ PUSH2 0x4BB JUMPI DUP1 PUSH4 0x49C5F32B EQ PUSH2 0x4DC JUMPI DUP1 PUSH4 0x49D10B64 EQ PUSH2 0x50F JUMPI DUP1 PUSH4 0x4C7DF18F EQ PUSH2 0x524 JUMPI DUP1 PUSH4 0x5A0A6618 EQ PUSH2 0x53C JUMPI DUP1 PUSH4 0x5F1B50FE EQ PUSH2 0x666 JUMPI DUP1 PUSH4 0x603F51E4 EQ PUSH2 0x67B JUMPI DUP1 PUSH4 0x610C0B05 EQ PUSH2 0x69F JUMPI DUP1 PUSH4 0x61CD756E EQ PUSH2 0x6F4 JUMPI DUP1 PUSH4 0x69BE4784 EQ PUSH2 0x709 JUMPI DUP1 PUSH4 0x6CE1C4DC EQ PUSH2 0x71E JUMPI DUP1 PUSH4 0x725B8786 EQ PUSH2 0x73F JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x766 JUMPI DUP1 PUSH4 0x7A5F0FFD EQ PUSH2 0x77B JUMPI DUP1 PUSH4 0x7B103999 EQ PUSH2 0x790 JUMPI DUP1 PUSH4 0x7F45C4C3 EQ PUSH2 0x7A5 JUMPI DUP1 PUSH4 0x865CF194 EQ PUSH2 0x7BA JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x7D2 JUMPI DUP1 PUSH4 0x8F1D0E1A EQ PUSH2 0x7E7 JUMPI DUP1 PUSH4 0x954254F5 EQ PUSH2 0x808 JUMPI DUP1 PUSH4 0x9E76A007 EQ PUSH2 0x829 JUMPI DUP1 PUSH4 0xA109D214 EQ PUSH2 0x84A JUMPI DUP1 PUSH4 0xA43D5E94 EQ PUSH2 0x862 JUMPI DUP1 PUSH4 0xA74498AA EQ PUSH2 0x883 JUMPI DUP1 PUSH4 0xB4A176D3 EQ PUSH2 0x89B JUMPI DUP1 PUSH4 0xB4C4197A EQ PUSH2 0x8B0 JUMPI DUP1 PUSH4 0xC22B82F0 EQ PUSH2 0x8D7 JUMPI DUP1 PUSH4 0xD3182BED EQ PUSH2 0x965 JUMPI DUP1 PUSH4 0xD4EE1D90 EQ PUSH2 0x97A JUMPI DUP1 PUSH4 0xD6C4B5B2 EQ PUSH2 0x98F JUMPI DUP1 PUSH4 0xD8CCED2A EQ PUSH2 0x9B3 JUMPI DUP1 PUSH4 0xE571049B EQ PUSH2 0x9D4 JUMPI DUP1 PUSH4 0xE85455D7 EQ PUSH2 0x9E9 JUMPI DUP1 PUSH4 0xEFFB3C6E EQ PUSH2 0xA0A JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0xA1F JUMPI DUP1 PUSH4 0xF4FB86C0 EQ PUSH2 0xA40 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x21C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x22A PUSH1 0x4 CALLDATALOAD ISZERO ISZERO PUSH2 0xA61 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x238 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x241 PUSH2 0xAA9 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP4 MLOAD DUP2 DUP4 ADD MSTORE DUP4 MLOAD SWAP2 SWAP3 DUP4 SWAP3 SWAP1 DUP4 ADD SWAP2 DUP6 DUP2 ADD SWAP2 MUL DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x27D JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x265 JUMP JUMPDEST POP POP POP POP SWAP1 POP ADD SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x29D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x241 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0xAB8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2BE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C7 PUSH2 0xBBC JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2EF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 PUSH1 0x24 DUP1 CALLDATALOAD DUP3 DUP2 ADD CALLDATALOAD DUP5 DUP2 MUL DUP1 DUP8 ADD DUP7 ADD SWAP1 SWAP8 MSTORE DUP1 DUP7 MSTORE PUSH2 0x2C7 SWAP7 DUP5 CALLDATALOAD PUSH2 0xFFFF AND SWAP7 CALLDATASIZE SWAP7 PUSH1 0x44 SWAP6 SWAP2 SWAP5 SWAP1 SWAP2 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP POP PUSH1 0x40 DUP1 MLOAD DUP8 CALLDATALOAD DUP10 ADD DUP1 CALLDATALOAD PUSH1 0x20 DUP2 DUP2 MUL DUP5 DUP2 ADD DUP3 ADD SWAP1 SWAP6 MSTORE DUP2 DUP5 MSTORE SWAP9 SWAP12 SWAP11 SWAP10 DUP10 ADD SWAP9 SWAP3 SWAP8 POP SWAP1 DUP3 ADD SWAP6 POP SWAP4 POP DUP4 SWAP3 POP DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP PUSH2 0xBCB SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x386 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x241 SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP PUSH2 0xCBE SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3DB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 PUSH1 0x24 DUP1 CALLDATALOAD DUP3 DUP2 ADD CALLDATALOAD DUP5 DUP2 MUL DUP1 DUP8 ADD DUP7 ADD SWAP1 SWAP8 MSTORE DUP1 DUP7 MSTORE PUSH2 0x2C7 SWAP7 DUP5 CALLDATALOAD PUSH2 0xFFFF AND SWAP7 CALLDATASIZE SWAP7 PUSH1 0x44 SWAP6 SWAP2 SWAP5 SWAP1 SWAP2 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP POP PUSH1 0x40 DUP1 MLOAD DUP8 CALLDATALOAD DUP10 ADD DUP1 CALLDATALOAD PUSH1 0x20 DUP2 DUP2 MUL DUP5 DUP2 ADD DUP3 ADD SWAP1 SWAP6 MSTORE DUP2 DUP5 MSTORE SWAP9 SWAP12 SWAP11 SWAP10 DUP10 ADD SWAP9 SWAP3 SWAP8 POP SWAP1 DUP3 ADD SWAP6 POP SWAP4 POP DUP4 SWAP3 POP DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP POP POP SWAP3 CALLDATALOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP4 POP PUSH2 0xCCF SWAP3 POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x47D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x486 PUSH2 0x1190 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4A6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x486 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x11B1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4C7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x486 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x1256 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4E8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4FD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x1261 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x51B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x22A PUSH2 0x12D4 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x530 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C7 PUSH1 0x4 CALLDATALOAD PUSH2 0x1541 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x548 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 PUSH1 0x24 DUP1 CALLDATALOAD DUP3 DUP2 ADD CALLDATALOAD PUSH1 0x1F DUP2 ADD DUP6 SWAP1 DIV DUP6 MUL DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP6 DUP6 MSTORE PUSH2 0x2C7 SWAP6 DUP4 CALLDATALOAD PUSH2 0xFFFF AND SWAP6 CALLDATASIZE SWAP6 PUSH1 0x44 SWAP5 SWAP2 SWAP4 SWAP1 SWAP2 ADD SWAP2 SWAP1 DUP2 SWAP1 DUP5 ADD DUP4 DUP3 DUP1 DUP3 DUP5 CALLDATACOPY POP POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x1F DUP10 CALLDATALOAD DUP12 ADD DUP1 CALLDATALOAD SWAP2 DUP3 ADD DUP4 SWAP1 DIV DUP4 MUL DUP5 ADD DUP4 ADD SWAP1 SWAP5 MSTORE DUP1 DUP4 MSTORE SWAP8 SWAP11 SWAP10 SWAP9 DUP2 ADD SWAP8 SWAP2 SWAP7 POP SWAP2 DUP3 ADD SWAP5 POP SWAP3 POP DUP3 SWAP2 POP DUP5 ADD DUP4 DUP3 DUP1 DUP3 DUP5 CALLDATACOPY POP POP PUSH1 0x40 DUP1 MLOAD DUP2 DUP9 ADD CALLDATALOAD DUP10 ADD DUP1 CALLDATALOAD PUSH1 0x20 DUP2 DUP2 MUL DUP5 DUP2 ADD DUP3 ADD SWAP1 SWAP6 MSTORE DUP2 DUP5 MSTORE SWAP9 SWAP12 PUSH1 0xFF DUP12 CALLDATALOAD AND SWAP12 PUSH4 0xFFFFFFFF DUP12 DUP14 ADD CALLDATALOAD AND SWAP12 SWAP2 SWAP11 SWAP1 SWAP10 POP PUSH1 0x60 SWAP1 SWAP2 ADD SWAP8 POP SWAP3 SWAP6 POP SWAP1 DUP3 ADD SWAP4 POP SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP POP PUSH1 0x40 DUP1 MLOAD DUP8 CALLDATALOAD DUP10 ADD DUP1 CALLDATALOAD PUSH1 0x20 DUP2 DUP2 MUL DUP5 DUP2 ADD DUP3 ADD SWAP1 SWAP6 MSTORE DUP2 DUP5 MSTORE SWAP9 SWAP12 SWAP11 SWAP10 DUP10 ADD SWAP9 SWAP3 SWAP8 POP SWAP1 DUP3 ADD SWAP6 POP SWAP4 POP DUP4 SWAP3 POP DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP PUSH2 0x15A2 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x672 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x241 PUSH2 0x15EB JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x687 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x16D1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6AB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x241 SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP PUSH2 0x177F SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x700 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C7 PUSH2 0x1875 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x715 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4FD PUSH2 0x1884 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x72A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x22A PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x190B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x74B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x486 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH2 0x197E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x772 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x22A PUSH2 0x1991 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x787 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4FD PUSH2 0x1A52 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x79C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C7 PUSH2 0x1AA8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7B1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x241 PUSH2 0x1AB7 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7C6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C7 PUSH1 0x4 CALLDATALOAD PUSH2 0x1B0D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7DE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C7 PUSH2 0x1B6E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7F3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x486 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x1B7D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x814 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x486 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x1DC9 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x835 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x22A PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x1ED8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x856 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C7 PUSH1 0x4 CALLDATALOAD PUSH2 0x1F44 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x86E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4FD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x1F4F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x88F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C7 PUSH1 0x4 CALLDATALOAD PUSH2 0x1F5A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8A7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x22A PUSH2 0x1FBB JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8BC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x486 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH2 0x1FF4 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8E3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x2C7 SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP POP PUSH1 0x40 DUP1 MLOAD DUP8 CALLDATALOAD DUP10 ADD DUP1 CALLDATALOAD PUSH1 0x20 DUP2 DUP2 MUL DUP5 DUP2 ADD DUP3 ADD SWAP1 SWAP6 MSTORE DUP2 DUP5 MSTORE SWAP9 SWAP12 SWAP11 SWAP10 DUP10 ADD SWAP9 SWAP3 SWAP8 POP SWAP1 DUP3 ADD SWAP6 POP SWAP4 POP DUP4 SWAP3 POP DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP PUSH2 0x207B SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x971 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4FD PUSH2 0x2089 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x986 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C7 PUSH2 0x20DF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x99B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x20EE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9BF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x486 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x20FA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9E0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4FD PUSH2 0x216D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x486 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x2177 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA16 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x241 PUSH2 0x21EA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA2B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x22A PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x2240 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA4C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x241 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x22DD JUMP JUMPDEST PUSH2 0xA69 PUSH2 0x22E8 JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD SWAP2 ISZERO ISZERO PUSH21 0x10000000000000000000000000000000000000000 MUL PUSH21 0xFF0000000000000000000000000000000000000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x60 PUSH2 0xAB3 PUSH2 0x21EA JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH2 0xAD1 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3497 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x233A JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xF4FB86C0 DUP4 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xB2B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xB3F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xB68 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 MLOAD PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0xB80 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD PUSH1 0x20 DUP2 ADD DUP5 DUP2 GT ISZERO PUSH2 0xB93 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP6 PUSH1 0x20 DUP3 MUL DUP4 ADD GT PUSH5 0x100000000 DUP3 GT OR ISZERO PUSH2 0xBB0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP SWAP1 SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 MLOAD DUP8 MLOAD EQ DUP1 ISZERO PUSH2 0xBE6 JUMPI POP PUSH1 0x1 DUP8 MLOAD GT JUMPDEST ISZERO PUSH2 0xCAE JUMPI PUSH2 0xBF4 DUP8 PUSH2 0x23A0 JUMP JUMPDEST SWAP4 POP PUSH1 0x0 SWAP3 POP JUMPDEST DUP4 MLOAD DUP4 LT ISZERO PUSH2 0xCAE JUMPI DUP4 DUP4 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xC12 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD SWAP2 POP DUP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x8DA5CB5B PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC5C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xC70 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xC86 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 POP PUSH2 0xC96 DUP2 DUP10 DUP10 DUP10 PUSH2 0x2638 JUMP JUMPDEST ISZERO PUSH2 0xCA3 JUMPI DUP2 SWAP5 POP PUSH2 0xCB3 JUMP JUMPDEST PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 PUSH2 0xBFB JUMP JUMPDEST PUSH1 0x0 SWAP5 POP JUMPDEST POP POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0xCC9 DUP3 PUSH2 0x177F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD SWAP1 SWAP2 DUP3 SWAP2 DUP3 SWAP2 DUP3 SWAP2 AND CALLER EQ PUSH2 0xD6E JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x30 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x6F6E6C7920746865206465706C6F796572206D61792066696E69736820746865 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x20636F6E76657274657220736574757000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x84 ADD SWAP1 REVERT JUMPDEST DUP7 MLOAD DUP7 MLOAD SWAP1 SWAP4 POP DUP4 EQ PUSH2 0xDCB JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245534552564553000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xDD8 DUP10 DUP10 DUP10 PUSH2 0xBCB JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ PUSH2 0xE36 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F414C52454144595F4558495354530000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xD3FB73B4 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xE74 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xE88 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xE9E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x79BA509700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP4 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP2 PUSH4 0x79BA5097 SWAP2 PUSH1 0x4 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xEFE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xF12 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x79BA5097 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xF54 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xF68 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x0 SWAP1 POP JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x103A JUMPI DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x6A49D2C4 DUP9 DUP4 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xF96 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD DUP9 DUP5 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xFAE JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 PUSH4 0xFFFFFFFF AND PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1016 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x102A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 POP PUSH2 0xF71 SWAP1 POP JUMP JUMPDEST DUP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xF2FDE38B DUP7 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1095 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x10A9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xCDC91C69 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x10EB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x10FF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 DUP1 MLOAD PUSH32 0xF2FDE38B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP10 AND SWAP4 POP PUSH4 0xF2FDE38B SWAP3 POP PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1163 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1177 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x1184 DUP6 PUSH2 0x27B1 JUMP JUMPDEST POP SWAP3 SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x11CA PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3497 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x233A JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x3AB8857C DUP4 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1224 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1238 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x124E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xCC9 DUP3 PUSH2 0x20FA JUMP JUMPDEST PUSH1 0x0 PUSH2 0x127A PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3497 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x233A JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xA43D5E94 DUP4 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1224 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ DUP1 PUSH2 0x1309 JUMPI POP PUSH1 0x3 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x134D JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3477 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x1376 PUSH32 0x436F6E7472616374526567697374727900000000000000000000000000000000 PUSH2 0x233A JUMP JUMPDEST PUSH1 0x2 SLOAD SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP4 AND SWAP2 AND EQ DUP1 ISZERO SWAP1 PUSH2 0x139F JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x13F5 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245474953545259000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0xBB34534C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH32 0x436F6E7472616374526567697374727900000000000000000000000000000000 PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP2 PUSH4 0xBB34534C SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1479 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x148D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x14A3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ ISZERO PUSH2 0x1504 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245474953545259000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP5 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP3 DUP4 AND OR SWAP1 SWAP3 SSTORE SWAP1 SWAP2 AND SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH2 0x155A PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3497 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x233A JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xA109D214 DUP4 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1224 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x15B3 DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 PUSH2 0x2992 JUMP JUMPDEST PUSH1 0x5 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 DUP4 AND OR SWAP1 DUP2 SWAP1 SSTORE AND SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x1604 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3497 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x233A JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x5F1B50FE PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1641 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1655 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x167E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 MLOAD PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x1696 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD PUSH1 0x20 DUP2 ADD DUP5 DUP2 GT ISZERO PUSH2 0x16A9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP6 PUSH1 0x20 DUP3 MUL DUP4 ADD GT PUSH5 0x100000000 DUP3 GT OR ISZERO PUSH2 0x16C6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP SWAP1 SWAP5 POP POP POP POP POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x16EA PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3497 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x233A JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xD6C4B5B2 DUP5 DUP5 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x174C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1760 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1776 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP1 PUSH1 0x0 DUP4 MLOAD PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x17AF JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CODESIZE DUP4 CODECOPY ADD SWAP1 POP JUMPDEST POP SWAP2 POP PUSH1 0x0 SWAP1 POP JUMPDEST DUP4 MLOAD DUP2 LT ISZERO PUSH2 0x186E JUMPI DUP4 DUP2 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x17CE JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x8DA5CB5B PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1815 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1829 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x183F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD DUP3 MLOAD DUP4 SWAP1 DUP4 SWAP1 DUP2 LT PUSH2 0x184F JUMPI INVALID JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND PUSH1 0x20 SWAP3 DUP4 MUL SWAP1 SWAP2 ADD SWAP1 SWAP2 ADD MSTORE PUSH1 0x1 ADD PUSH2 0x17B7 JUMP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x189D PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3497 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x233A JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x69BE4784 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x18DA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x18EE JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1904 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x1913 PUSH2 0x22E8 JUMP JUMPDEST PUSH2 0x191C DUP2 PUSH2 0x1DC9 JUMP JUMPDEST ISZERO ISZERO PUSH2 0x1972 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F434F4E5645525445520000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x197B DUP2 PUSH2 0x27B1 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x198A DUP4 DUP4 PUSH2 0x1FF4 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x19E1 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3477 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND SWAP4 SWAP1 SWAP2 AND SWAP2 PUSH32 0x343765429AEA5A34B3FF6A3785A98A5ABB2597ACA87BFBB58632C173D585373A SWAP2 LOG3 PUSH1 0x1 DUP1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND OR SWAP1 SWAP2 SSTORE AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1A6B PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3497 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x233A JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x7A5F0FFD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x18DA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x60 PUSH2 0x1AD0 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3497 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x233A JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x7F45C4C3 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1641 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1B26 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3497 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x233A JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x865CF194 DUP4 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1224 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x60 DUP1 PUSH1 0x0 DUP1 DUP7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x71F52BF3 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1BC4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1BD8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1BEE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH2 0xFFFF SWAP1 SWAP3 AND DUP1 DUP4 MSTORE PUSH1 0x20 DUP2 DUP2 MUL DUP5 ADD ADD SWAP1 SWAP2 MSTORE SWAP6 POP DUP6 DUP1 ISZERO PUSH2 0x1C21 JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CODESIZE DUP4 CODECOPY ADD SWAP1 POP JUMPDEST POP SWAP4 POP DUP5 PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x1C4E JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CODESIZE DUP4 CODECOPY ADD SWAP1 POP JUMPDEST POP SWAP3 POP PUSH1 0x0 SWAP2 POP JUMPDEST DUP5 DUP3 LT ISZERO PUSH2 0x1D34 JUMPI DUP7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x19B64015 DUP4 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1CA7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1CBB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1CD1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD DUP5 MLOAD SWAP1 SWAP2 POP DUP2 SWAP1 DUP6 SWAP1 DUP5 SWAP1 DUP2 LT PUSH2 0x1CE6 JUMPI INVALID JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND PUSH1 0x20 SWAP3 DUP4 MUL SWAP1 SWAP2 ADD SWAP1 SWAP2 ADD MSTORE PUSH2 0x1D07 DUP8 DUP3 PUSH2 0x2D1A JUMP JUMPDEST DUP4 DUP4 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x1D15 JUMPI INVALID JUMPDEST PUSH4 0xFFFFFFFF SWAP1 SWAP3 AND PUSH1 0x20 SWAP3 DUP4 MUL SWAP1 SWAP2 ADD SWAP1 SWAP2 ADD MSTORE PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x1C56 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x1DB3 DUP9 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x3E8FF43F PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1D80 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1D94 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1DAA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD DUP7 DUP7 PUSH2 0xBCB JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ ISZERO SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xFC0C546A PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1E13 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1E27 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1E3D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x8DA5CB5B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP2 PUSH4 0x8DA5CB5B SWAP2 PUSH1 0x4 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1E9C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1EB0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1EC6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ DUP1 PUSH2 0x1EF7 JUMPI POP PUSH2 0x1EF5 DUP2 PUSH2 0x1DC9 JUMP JUMPDEST ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x1F3B JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3477 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x197B DUP2 PUSH2 0x2DEB JUMP JUMPDEST PUSH1 0x0 PUSH2 0xCC9 DUP3 PUSH2 0x1541 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xCC9 DUP3 PUSH2 0x1261 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1F73 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3497 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x233A JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xA74498AA DUP4 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1224 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1FC3 PUSH2 0x22E8 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x2 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH2 0x200D PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3497 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x233A JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x725B878600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP6 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE SWAP2 MLOAD SWAP3 SWAP1 SWAP2 AND SWAP2 PUSH4 0x725B8786 SWAP2 PUSH1 0x44 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x174C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x198A PUSH1 0x1 DUP5 DUP5 PUSH2 0xBCB JUMP JUMPDEST PUSH1 0x0 PUSH2 0x20A2 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3497 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x233A JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xE571049B PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x18DA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x198A DUP4 DUP4 PUSH2 0x16D1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2113 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3497 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x233A JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x4123EF60 DUP4 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1224 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xAB3 PUSH2 0x2089 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2190 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3497 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x233A JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xE85455D7 DUP4 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1224 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x60 PUSH2 0x2203 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3497 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x233A JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x4CEAF41 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1641 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2248 PUSH2 0x22E8 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x22AE JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F4F574E4552000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x60 PUSH2 0xCC9 DUP3 PUSH2 0xAB8 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x2338 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3477 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xBB34534C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP2 PUSH4 0xBB34534C SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1224 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x23C1 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3497 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x233A JUMP JUMPDEST SWAP5 POP DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xA43D5E94 DUP9 PUSH1 0x0 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x23E1 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2436 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x244A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2460 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP4 POP PUSH1 0x0 SWAP3 POP PUSH1 0x1 SWAP2 POP JUMPDEST DUP7 MLOAD DUP3 LT ISZERO PUSH2 0x2530 JUMPI DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xA43D5E94 DUP9 DUP5 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x2493 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x24E8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x24FC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2512 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 POP DUP1 DUP5 GT ISZERO PUSH2 0x2525 JUMPI DUP1 SWAP4 POP DUP2 SWAP3 POP JUMPDEST PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x246D JUMP JUMPDEST DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xF4FB86C0 DUP9 DUP6 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x254D JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x25A2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x25B6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x25DF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 MLOAD PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x25F7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD PUSH1 0x20 DUP2 ADD DUP5 DUP2 GT ISZERO PUSH2 0x260A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP6 PUSH1 0x20 DUP3 MUL DUP4 ADD GT PUSH5 0x100000000 DUP3 GT OR ISZERO PUSH2 0x2627 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP SWAP1 SWAP12 SWAP11 POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP6 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x3E8FF43F PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2679 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x268D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x26A3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH2 0xFFFF DUP7 DUP2 AND SWAP2 AND EQ PUSH2 0x26BB JUMPI PUSH1 0x0 SWAP2 POP PUSH2 0x27A8 JUMP JUMPDEST DUP6 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x71F52BF3 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x26F9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x270D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2723 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD DUP5 MLOAD PUSH2 0xFFFF SWAP1 SWAP2 AND EQ PUSH2 0x273B JUMPI PUSH1 0x0 SWAP2 POP PUSH2 0x27A8 JUMP JUMPDEST POP PUSH1 0x0 JUMPDEST DUP4 MLOAD DUP2 LT ISZERO PUSH2 0x27A3 JUMPI PUSH2 0x2769 DUP7 DUP6 DUP4 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x275A JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH2 0x2D1A JUMP JUMPDEST PUSH4 0xFFFFFFFF AND DUP4 DUP3 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x277D JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MLOAD PUSH4 0xFFFFFFFF AND EQ PUSH2 0x279B JUMPI PUSH1 0x0 SWAP2 POP PUSH2 0x27A8 JUMP JUMPDEST PUSH1 0x1 ADD PUSH2 0x273F JUMP JUMPDEST PUSH1 0x1 SWAP2 POP JUMPDEST POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x27CE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3497 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x233A JUMP JUMPDEST SWAP4 POP DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xFC0C546A PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x280E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2822 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2838 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x71F52BF300000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP5 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND SWAP2 PUSH4 0x71F52BF3 SWAP2 PUSH1 0x4 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2899 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x28AD JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x28C3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH2 0xFFFF AND SWAP2 POP PUSH2 0x28D5 DUP5 DUP5 PUSH2 0x2FC5 JUMP JUMPDEST PUSH1 0x1 DUP3 GT ISZERO PUSH2 0x28ED JUMPI PUSH2 0x28E8 DUP5 DUP5 PUSH2 0x30A4 JUMP JUMPDEST PUSH2 0x28F8 JUMP JUMPDEST PUSH2 0x28F8 DUP5 DUP5 DUP6 PUSH2 0x314F JUMP JUMPDEST POP PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x298B JUMPI PUSH2 0x2983 DUP5 DUP7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x19B64015 DUP5 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2951 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2965 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x297B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD DUP6 PUSH2 0x314F JUMP JUMPDEST PUSH1 0x1 ADD PUSH2 0x28FC JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP7 MLOAD SWAP4 POP DUP6 MLOAD DUP5 EQ ISZERO ISZERO PUSH2 0x29F8 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245534552564553000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2A05 DUP14 DUP10 DUP10 PUSH2 0xBCB JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ PUSH2 0x2A63 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F414C52454144595F4558495354530000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x2A8C PUSH32 0x436F6E766572746572466163746F727900000000000000000000000000000000 PUSH2 0x233A JUMP JUMPDEST SWAP3 POP DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x2E9AB7B3 DUP14 DUP14 DUP14 DUP14 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP6 PUSH2 0xFFFF AND PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP5 PUSH1 0xFF AND PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 SUB DUP4 MSTORE DUP7 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x2B0E JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x2AF6 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x2B3B JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP DUP4 DUP2 SUB DUP3 MSTORE DUP6 MLOAD DUP2 MSTORE DUP6 MLOAD PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 DUP8 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x2B6E JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x2B56 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x2B9B JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP7 POP POP POP POP POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2BBE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2BD2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2BE8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP SWAP2 POP DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x15F64B6A DUP14 DUP5 PUSH1 0x2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP13 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP6 PUSH2 0xFFFF AND PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 PUSH4 0xFFFFFFFF AND PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP5 POP POP POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2CA9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2CBD JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2CD3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND CALLER OR SWAP1 SSTORE SWAP13 SWAP12 POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2D24 PUSH2 0x345B JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x636F6E6E6563746F727328616464726573732900000000000000000000000000 DUP2 MSTORE DUP2 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x13 ADD DUP2 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND PUSH1 0x24 DUP1 DUP5 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x44 SWAP1 SWAP3 ADD DUP4 MSTORE PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR DUP2 MSTORE DUP2 MLOAD SWAP2 SWAP3 SWAP2 DUP5 SWAP2 DUP9 GAS STATICCALL DUP1 ISZERO ISZERO PUSH2 0x2DDE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP PUSH1 0x20 ADD MLOAD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x2E08 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x3497 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x233A JUMP JUMPDEST SWAP4 POP DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xFC0C546A PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2E48 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2E5C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2E72 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x71F52BF300000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP5 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND SWAP2 PUSH4 0x71F52BF3 SWAP2 PUSH1 0x4 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2ED3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2EE7 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2EFD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH2 0xFFFF AND SWAP2 POP PUSH2 0x2F0F DUP5 DUP5 PUSH2 0x3210 JUMP JUMPDEST PUSH1 0x1 DUP3 GT ISZERO PUSH2 0x2F27 JUMPI PUSH2 0x2F22 DUP5 DUP5 PUSH2 0x32EF JUMP JUMPDEST PUSH2 0x2F32 JUMP JUMPDEST PUSH2 0x2F32 DUP5 DUP5 DUP6 PUSH2 0x339A JUMP JUMPDEST POP PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x298B JUMPI PUSH2 0x2FBD DUP5 DUP7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x19B64015 DUP5 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2F8B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2F9F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2FB5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD DUP6 PUSH2 0x339A JUMP JUMPDEST PUSH1 0x1 ADD PUSH2 0x2F36 JUMP JUMPDEST DUP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x8DE6C3EB DUP3 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3020 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3034 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP3 POP PUSH32 0xC0A6D303D67B7ED9FA0ABAE1C48878DF32ACC0E7CA4334C7DAD2BCEEEE5956FD SWAP2 POP PUSH1 0x0 SWAP1 LOG2 PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 AND SWAP1 PUSH32 0x88881FEECDF61136AC4BDB1F681F2F3746A82910263D21FFEA94750D2A78C0AB SWAP1 PUSH1 0x0 SWAP1 LOG2 POP POP JUMP JUMPDEST DUP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xEE6A934C DUP3 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x30FF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3113 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP3 POP PUSH32 0xB893F883EF734B712208A877459424EE509832C57E0461FB1AC99ED4D42F2D89 SWAP2 POP PUSH1 0x0 SWAP1 LOG2 POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x36900C1100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP4 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE SWAP2 MLOAD SWAP2 DUP6 AND SWAP2 PUSH4 0x36900C11 SWAP2 PUSH1 0x44 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x31BB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x31CF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP6 AND SWAP4 POP DUP6 AND SWAP2 POP PUSH32 0xF2E7CF6D6ED3F77039511409A43D4FA5108F09AB71D72B014380364C910233A5 SWAP1 PUSH1 0x0 SWAP1 LOG3 POP POP POP JUMP JUMPDEST DUP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xCEB9838C DUP3 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x326B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x327F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP3 POP PUSH32 0xBFDF1BAAA7E4871111360083540F067050014F651C9E4610A2A4A4BDF8BFAB5D SWAP2 POP PUSH1 0x0 SWAP1 LOG2 PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 AND SWAP1 PUSH32 0x2AFF63790C7DA80D1C50EDE92D23BC841C384837735C92C184331F3D7B91E5BF SWAP1 PUSH1 0x0 SWAP1 LOG2 POP POP JUMP JUMPDEST DUP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xAE22107F DUP3 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x334A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x335E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP3 POP PUSH32 0x59C3FBCAE88F30E9B0E35C132A7F68C53231DFFA4722F197C7ECB0EE013EEE60 SWAP2 POP PUSH1 0x0 SWAP1 LOG2 POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0xFBA8F03100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP4 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE SWAP2 MLOAD SWAP2 DUP6 AND SWAP2 PUSH4 0xFBA8F031 SWAP2 PUSH1 0x44 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3406 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x341A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP6 AND SWAP4 POP DUP6 AND SWAP2 POP PUSH32 0x9430AD6FF45D6C3E126C7711BF0036BD9BC6B202FA19628ABD88E59CF43CED43 SWAP1 PUSH1 0x0 SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD DUP3 MSTORE SWAP1 PUSH1 0x2 SWAP1 DUP3 SWAP1 DUP1 CODESIZE DUP4 CODECOPY POP SWAP2 SWAP3 SWAP2 POP POP JUMP STOP GASLIMIT MSTORE MSTORE 0x5f COINBASE NUMBER NUMBER GASLIMIT MSTORE8 MSTORE8 0x5f DIFFICULTY GASLIMIT 0x4e 0x49 GASLIMIT DIFFICULTY STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP MSTORE8 PUSH16 0x7672796E53776170436F6E7665727465 PUSH19 0x52656769737472794461746100A165627A7A72 ADDRESS PC KECCAK256 0x23 0xbb BALANCE TIMESTAMP 0xe3 0x49 0xdb 0xb5 0xb3 SWAP2 0xf6 0xee 0xd5 XOR 0x4e PUSH13 0x1BF93D52CF7D3E26938270E2C1 MSTORE8 0xc0 0xf9 STOP 0x29 ", - "sourceMap": "144:560:35:-;;;;;;;;;-1:-1:-1;;;144:560:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3280:206:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3280:206:60;;;;;;;;;21876:85:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;21876:85:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;21876:85:6;;;;;;;;;;;;;;;;;10964:218;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;10964:218:6;-1:-1:-1;;;;;10964:218:6;;;;;199:34:35;;8:9:-1;5:2;;;30:1;27;20:12;5:2;199:34:35;;;;;;;;-1:-1:-1;;;;;199:34:35;;;;;;;;;;;;;;14425:883:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;14425:883:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;14425:883:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;14425:883:6;;;;-1:-1:-1;14425:883:6;-1:-1:-1;14425:883:6;;-1:-1:-1;14425:883:6;;;;;;;;;-1:-1:-1;14425:883:6;;-1:-1:-1;14425:883:6;;-1:-1:-1;;;;;;;14425:883:6;23434:143;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;23434:143:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;23434:143:6;;-1:-1:-1;23434:143:6;;-1:-1:-1;;;;;;;23434:143:6;5068:901;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;5068:901:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;5068:901:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5068:901:6;;;;-1:-1:-1;5068:901:6;-1:-1:-1;5068:901:6;;-1:-1:-1;5068:901:6;;;;;;;;;-1:-1:-1;5068:901:6;;-1:-1:-1;;;5068:901:6;;-1:-1:-1;;;;;5068:901:6;;-1:-1:-1;5068:901:6;;-1:-1:-1;;;5068:901:6;1250:38:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1250:38:60;;;;;;;;;;;;;;;;;;;;;;10115:171:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;10115:171:6;-1:-1:-1;;;;;10115:171:6;;;;;22209:96;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;22209:96:6;-1:-1:-1;;;;;22209:96:6;;;;;10515:224;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;10515:224:6;-1:-1:-1;;;;;10515:224:6;;;;;;;;;;;;;;;;;;;;;2080:832:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2080:832:60;;;;7358:160:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;7358:160:6;;;;;319:383:35;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;319:383:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;319:383:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;319:383:35;;;;-1:-1:-1;319:383:35;-1:-1:-1;319:383:35;;-1:-1:-1;319:383:35;;;;;;;;-1:-1:-1;;319:383:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;319:383:35;;;;;-1:-1:-1;319:383:35;;-1:-1:-1;319:383:35;;;;-1:-1:-1;319:383:35;;;;;;;;;;;;-1:-1:-1;;319:383:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;319:383:35;;;;-1:-1:-1;319:383:35;-1:-1:-1;319:383:35;;-1:-1:-1;319:383:35;;;;;;;;;-1:-1:-1;319:383:35;;-1:-1:-1;319:383:35;;-1:-1:-1;;;;;;;319:383:35;9451:160:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9451:160:6;;;;11449:238;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;11449:238:6;-1:-1:-1;;;;;11449:238:6;;;;;;;12452:278;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;12452:278:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12452:278:6;;-1:-1:-1;12452:278:6;;-1:-1:-1;;;;;;;12452:278:6;1165:37:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1165:37:60;;;;9165:166:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9165:166:6;;;;6106:168;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;6106:168:6;-1:-1:-1;;;;;6106:168:6;;;;;23173:174;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;23173:174:6;-1:-1:-1;;;;;23173:174:6;;;;;;;;;;1159:176:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1159:176:66;;;;7962:160:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7962:160:6;;;;1085:33:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1085:33:60;;;;8236:154:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8236:154:6;;;;9757:176;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;9757:176:6;;;;;157:20:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;157:20:66;;;;13323:778:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;13323:778:6;-1:-1:-1;;;;;13323:778:6;;;;;12900:181;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;12900:181:6;-1:-1:-1;;;;;12900:181:6;;;;;6526:184;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;6526:184:6;-1:-1:-1;;;;;6526:184:6;;;;;22035:101;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;22035:101:6;;;;;22400:165;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;22400:165:6;-1:-1:-1;;;;;22400:165:6;;;;;8530:170;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;8530:170:6;;;;;2974:119:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2974:119:60;;;;11965:233:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;11965:233:6;-1:-1:-1;;;;;11965:233:6;;;;;;;;;;23666:232;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;23666:232:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;23666:232:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;23666:232:6;;;;-1:-1:-1;23666:232:6;-1:-1:-1;23666:232:6;;-1:-1:-1;23666:232:6;;;;;;;;;-1:-1:-1;23666:232:6;;-1:-1:-1;23666:232:6;;-1:-1:-1;;;;;;;23666:232:6;6822:150;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6822:150:6;;;;180:23:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;180:23:66;;;;22905:179:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;22905:179:6;-1:-1:-1;;;;;22905:179:6;;;;;;;7689:155;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;7689:155:6;-1:-1:-1;;;;;7689:155:6;;;;;21710:91;;8:9:-1;5:2;;;30:1;27;20:12;5:2;21710:91:6;;;;8876:165;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;8876:165:6;-1:-1:-1;;;;;8876:165:6;;;;;7080:144;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7080:144:6;;;;945:140:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;945:140:66;-1:-1:-1;;;;;945:140:66;;;;;22656:159:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;22656:159:6;-1:-1:-1;;;;;22656:159:6;;;;;3280:206:60;575:12:66;:10;:12::i;:::-;3426:26:60;:56;;;;;;;-1:-1:-1;;3426:56:60;;;;;;;;;3280:206::o;21876:85:6:-;21923:9;21945:12;:10;:12::i;:::-;21938:19;;21876:85;:::o;10964:218::-;11048:9;11093:34;-1:-1:-1;;;;;;;;;;;11093:9:6;:34::i;:::-;-1:-1:-1;;;;;11070:89:6;;11160:17;11070:108;;;;;-1:-1:-1;;;11070:108:6;;;;;;;-1:-1:-1;;;;;11070:108:6;-1:-1:-1;;;;;11070:108:6;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11070:108:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11070:108:6;;;;;;39:16:-1;36:1;17:17;2:54;101:4;11070:108:6;80:15:-1;;;-1:-1;;76:31;65:43;;120:4;113:20;13:2;5:11;;2:2;;;29:1;26;19:12;2:2;11070:108:6;;;;;;20:11:-1;15:3;12:20;9:2;;;45:1;42;35:12;9:2;64:21;;126:4;117:14;;142:31;;;139:2;;;186:1;183;176:12;139:2;224:3;218:10;339:9;333:2;319:12;315:21;297:16;293:44;290:59;268:11;254:12;251:29;239:119;236:2;;;371:1;368;361:12;236:2;-1:-1;11070:108:6;;10964:218;-1:-1:-1;;;;;;10964:218:6:o;199:34:35:-;;;-1:-1:-1;;;;;199:34:35;;:::o;14425:883:6:-;14573:16;14818:40;14972:9;15034:23;15110:20;14695:15;:22;14670:14;:21;:47;:76;;;;;14745:1;14721:14;:21;:25;14670:76;14666:608;;;14861:44;14890:14;14861:28;:44::i;:::-;14818:87;;14984:1;14972:13;;14967:303;14991:23;:30;14987:1;:34;14967:303;;;15077:23;15101:1;15077:26;;;;;;;;;;;;;;;;;;15034:70;;15144:6;-1:-1:-1;;;;;15144:12:6;;:14;;;;;-1:-1:-1;;;15144:14:6;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15144:14:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15144:14:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;15144:14:6;;-1:-1:-1;15169:80:6;15144:14;15210:5;15217:14;15233:15;15169:29;:80::i;:::-;15165:99;;;15258:6;15251:13;;;;15165:99;15023:3;;;;;14967:303;;;15302:1;15278:26;;14425:883;;;;;;;;;;:::o;23434:143::-;23515:9;23537:36;23560:12;23537:22;:36::i;:::-;23530:43;23434:143;-1:-1:-1;;23434:143:6:o;5068:901::-;-1:-1:-1;;;;;5250:20:6;;;5226:10;5250:20;;;:8;:20;;;;;;5226:10;;;;;;;;5250:20;5274:10;5250:34;5242:95;;;;;-1:-1:-1;;;;;5242:95:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5359:21;;5402:22;;5359:21;;-1:-1:-1;5392:32:6;;5384:65;;;;;-1:-1:-1;;;;;5384:65:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;5546:1;5461:64;5486:5;5493:14;5509:15;5461:24;:64::i;:::-;-1:-1:-1;;;;;5461:87:6;;5453:118;;;;;-1:-1:-1;;;;;5453:118:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;5602:10;-1:-1:-1;;;;;5602:17:6;;:19;;;;;-1:-1:-1;;;5602:19:6;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5602:19:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5602:19:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5602:19:6;5626:24;;;;;;;;5602:19;;-1:-1:-1;;;;;;5626:22:6;;;;;:24;;;;;;;;;;;;;;;;:22;:24;;;5:2:-1;;;;30:1;27;20:12;5:2;5626:24:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5626:24:6;;;;5654:10;-1:-1:-1;;;;;5654:26:6;;:28;;;;;-1:-1:-1;;;5654:28:6;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5654:28:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5654:28:6;;;;5704:1;5692:13;;5687:97;5711:6;5707:1;:10;5687:97;;;5724:10;-1:-1:-1;;;;;5724:21:6;;5746:14;5761:1;5746:17;;;;;;;;;;;;;;;;;;5765:15;5781:1;5765:18;;;;;;;;;;;;;;;;;;5724:60;;;;;-1:-1:-1;;;5724:60:6;;;;;;;-1:-1:-1;;;;;5724:60:6;-1:-1:-1;;;;;5724:60:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5724:60:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;5719:3:6;;;;;-1:-1:-1;5687:97:6;;-1:-1:-1;5687:97:6;;5789:6;-1:-1:-1;;;;;5789:24:6;;5814:10;5789:36;;;;;-1:-1:-1;;;5789:36:6;;;;;;;-1:-1:-1;;;;;5789:36:6;-1:-1:-1;;;;;5789:36:6;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5789:36:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5789:36:6;;;;5829:10;-1:-1:-1;;;;;5829:32:6;;:34;;;;;-1:-1:-1;;;5829:34:6;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5829:34:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;5867:40:6;;;;;;5896:10;5867:40;;;;;;-1:-1:-1;;;;;5867:28:6;;;-1:-1:-1;5867:28:6;;-1:-1:-1;5867:40:6;;;;;-1:-1:-1;;5867:40:6;;;;;;;-1:-1:-1;5867:28:6;:40;;;5:2:-1;;;;30:1;27;20:12;5:2;5867:40:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5867:40:6;;;;5912:32;5933:10;5912:20;:32::i;:::-;-1:-1:-1;5955:10:6;;5068:901;-1:-1:-1;;;;;;5068:901:6:o;1250:38:60:-;;;;;;;;;:::o;10115:171:6:-;10180:4;10220:34;-1:-1:-1;;;;;;;;;;;10220:9:6;:34::i;:::-;-1:-1:-1;;;;;10197:77:6;;10275:6;10197:85;;;;;-1:-1:-1;;;10197:85:6;;;;;;;-1:-1:-1;;;;;10197:85:6;-1:-1:-1;;;;;10197:85:6;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10197:85:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10197:85:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;10197:85:6;;10115:171;-1:-1:-1;;10115:171:6:o;22209:96::-;22268:4;22285:16;22294:6;22285:8;:16::i;10515:224::-;10603:7;10646:34;-1:-1:-1;;;;;;;;;;;10646:9:6;:34::i;:::-;-1:-1:-1;;;;;10623:93:6;;10717:17;10623:112;;;;;-1:-1:-1;;;10623:112:6;;;;;;;-1:-1:-1;;;;;10623:112:6;-1:-1:-1;;;;;10623:112:6;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;2080:832:60;2281:29;2183:5;;-1:-1:-1;;;;;2183:5:60;2169:10;:19;;:50;;-1:-1:-1;2193:26:60;;;;;;;2192:27;2169:50;2161:80;;;;;;;-1:-1:-1;;;;;2161:80:60;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2161:80:60;;;;;;;;;;;;;;;2331:28;2341:17;2331:9;:28::i;:::-;2465:8;;2281:79;;-1:-1:-1;;;;;;2442:32:60;;;2465:8;;2442:32;;;;:61;;-1:-1:-1;;;;;;2478:25:60;;;;2442:61;2434:94;;;;;;;-1:-1:-1;;;;;2434:94:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;2628:40;;;;;;2650:17;2628:40;;;;;;2680:1;;-1:-1:-1;;;;;2628:21:60;;;;;:40;;;;;;;;;;;;;;;2680:1;2628:21;:40;;;5:2:-1;;;;30:1;27;20:12;5:2;2628:40:60;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2628:40:60;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2628:40:60;-1:-1:-1;;;;;2628:54:60;;;2620:87;;;;;-1:-1:-1;;;;;2620:87:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;2799:8;;;2784:12;:23;;-1:-1:-1;;;;;2799:8:60;;;-1:-1:-1;;2784:23:60;;;;;;;2886:22;;;;;;;;;;;2080:832::o;7358:160:6:-;7414:7;7457:34;-1:-1:-1;;;;;;;;;;;7457:9:6;:34::i;:::-;-1:-1:-1;;;;;7434:72:6;;7507:6;7434:80;;;;;-1:-1:-1;;;7434:80:6;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;319:383:35;531:10;566:104;585:5;592;599:7;608:9;619:17;638:14;654:15;566:18;:104::i;:::-;547:16;:123;;-1:-1:-1;;547:123:35;-1:-1:-1;;;;;547:123:35;;;;;;;;682:16;;319:383;-1:-1:-1;;;;;;;;319:383:35:o;9451:160:6:-;9504:9;9549:34;-1:-1:-1;;;;;;;;;;;9549:9:6;:34::i;:::-;-1:-1:-1;;;;;9526:79:6;;:81;;;;;-1:-1:-1;;;9526:81:6;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9526:81:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9526:81:6;;;;;;39:16:-1;36:1;17:17;2:54;101:4;9526:81:6;80:15:-1;;;-1:-1;;76:31;65:43;;120:4;113:20;13:2;5:11;;2:2;;;29:1;26;19:12;2:2;9526:81:6;;;;;;20:11:-1;15:3;12:20;9:2;;;45:1;42;35:12;9:2;64:21;;126:4;117:14;;142:31;;;139:2;;;186:1;183;176:12;139:2;224:3;218:10;339:9;333:2;319:12;315:21;297:16;293:44;290:59;268:11;254:12;251:29;239:119;236:2;;;371:1;368;361:12;236:2;-1:-1;9526:81:6;;-1:-1:-1;;;;;9451:160:6;:::o;11449:238::-;11548:7;11591:34;-1:-1:-1;;;;;;;;;;;11591:9:6;:34::i;:::-;-1:-1:-1;;;;;11568:88:6;;11657:17;11676:6;11568:115;;;;;-1:-1:-1;;;11568:115:6;;;;;;;-1:-1:-1;;;;;11568:115:6;-1:-1:-1;;;;;11568:115:6;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11568:115:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11568:115:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11568:115:6;;11449:238;-1:-1:-1;;;11449:238:6:o;12452:278::-;12525:9;12540:27;12610:9;12584:8;:15;12570:30;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;136:17;;-1:-1;12570:30:6;;12540:60;;12622:1;12610:13;;12605:99;12629:8;:15;12625:1;:19;12605:99;;;12684:8;12693:1;12684:11;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12667:35:6;;:37;;;;;-1:-1:-1;;;12667:37:6;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12667:37:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12667:37:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12667:37:6;12651:13;;:10;;12662:1;;12651:13;;;;;;-1:-1:-1;;;;;12651:53:6;;;:13;;;;;;;;;;:53;12646:3;;12605:99;;;-1:-1:-1;12716:10:6;12452:278;-1:-1:-1;;12452:278:6:o;1165:37:60:-;;;-1:-1:-1;;;;;1165:37:60;;:::o;9165:166:6:-;9222:7;9265:34;-1:-1:-1;;;;;;;;;;;9265:9:6;:34::i;:::-;-1:-1:-1;;;;;9242:83:6;;:85;;;;;-1:-1:-1;;;9242:85:6;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9242:85:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9242:85:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9242:85:6;;-1:-1:-1;9165:166:6;:::o;6106:168::-;575:12:66;:10;:12::i;:::-;6180:28:6;6197:10;6180:16;:28::i;:::-;6172:62;;;;;;;-1:-1:-1;;;;;6172:62:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;6238:32;6259:10;6238:20;:32::i;:::-;6106:168;:::o;23173:174::-;23275:4;23292:51;23317:17;23336:6;23292:24;:51::i;:::-;23285:58;23173:174;-1:-1:-1;;;23173:174:6:o;1159:176:66:-;1219:8;;-1:-1:-1;;;;;1219:8:66;1205:10;:22;1197:52;;;;;-1:-1:-1;;;;;1197:52:66;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1197:52:66;;;;;;;;;;;;;;;1277:8;;;1270:5;;1258:28;;-1:-1:-1;;;;;1277:8:66;;;;1270:5;;;;1258:28;;;1298:8;;;;1290:16;;-1:-1:-1;;1290:16:66;;;-1:-1:-1;;;;;1298:8:66;;1290:16;;;;1310:21;;;1159:176::o;7962:160:6:-;8016:7;8059:34;-1:-1:-1;;;;;;;;;;;8059:9:6;:34::i;:::-;-1:-1:-1;;;;;8036:80:6;;:82;;;;;-1:-1:-1;;;8036:82:6;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;1085:33:60;;;-1:-1:-1;;;;;1085:33:60;;:::o;8236:154:6:-;8286:9;8331:34;-1:-1:-1;;;;;;;;;;;8331:9:6;:34::i;:::-;-1:-1:-1;;;;;8308:76:6;;:78;;;;;-1:-1:-1;;;8308:78:6;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;9757:176:6;9823:7;9866:34;-1:-1:-1;;;;;;;;;;;9866:9:6;:34::i;:::-;-1:-1:-1;;;;;9843:78:6;;9922:6;9843:86;;;;;-1:-1:-1;;;9843:86:6;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;157:20:66;;;-1:-1:-1;;;;;157:20:66;;:::o;13323:778:6:-;13409:4;13419:25;13483:34;13560:30;13686:9;13734:24;13447:10;-1:-1:-1;;;;;13447:30:6;;:32;;;;;-1:-1:-1;;;13447:32:6;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13447:32:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13447:32:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13447:32:6;13520:36;;;13419:60;;;;13520:36;;;13447:32;13520:36;;;;;;;;;13419:60;-1:-1:-1;13419:60:6;13520:36;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;136:17;;-1:-1;13520:36:6;;13483:73;;13606:17;13593:31;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;136:17;;-1:-1;13593:31:6;;13560:64;;13698:1;13686:13;;13681:217;13705:17;13701:1;:21;13681:217;;;13761:10;-1:-1:-1;;;;;13761:26:6;;13788:1;13761:29;;;;;-1:-1:-1;;;13761:29:6;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13761:29:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13761:29:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13761:29:6;13795:16;;13761:29;;-1:-1:-1;13761:29:6;;13795:13;;13809:1;;13795:16;;;;;;-1:-1:-1;;;;;13795:31:6;;;:16;;;;;;;;;;:31;13851:42;13868:10;13880:12;13851:16;:42::i;:::-;13831:14;13846:1;13831:17;;;;;;;;;;:62;;;;:17;;;;;;;;;;:62;13724:3;;;;;13681:217;;;14095:1;-1:-1:-1;;;;;13991:106:6;:83;14016:10;-1:-1:-1;;;;;14016:24:6;;:26;;;;;-1:-1:-1;;;14016:26:6;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14016:26:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14016:26:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;14016:26:6;14044:13;14059:14;13991:24;:83::i;:::-;-1:-1:-1;;;;;13991:106:6;;;;13323:778;-1:-1:-1;;;;;;;13323:778:6:o;12900:181::-;12970:4;13066:10;-1:-1:-1;;;;;13028:49:6;:10;-1:-1:-1;;;;;13028:16:6;;:18;;;;;-1:-1:-1;;;13028:18:6;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13028:18:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13028:18:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13028:18:6;:26;;;;;;;;-1:-1:-1;;;;;13028:24:6;;;;;;:26;;;;;:18;;:26;;;;;;;;;:24;:26;;;5:2:-1;;;;30:1;27;20:12;5:2;13028:26:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13028:26:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13028:26:6;-1:-1:-1;;;;;13028:49:6;;;12900:181;-1:-1:-1;;12900:181:6:o;6526:184::-;6607:5;;-1:-1:-1;;;;;6607:5:6;6593:10;:19;;:52;;;6617:28;6634:10;6617:16;:28::i;:::-;6616:29;6593:52;6585:82;;;;;;;-1:-1:-1;;;;;6585:82:6;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;6585:82:6;;;;;;;;;;;;;;;6671:35;6695:10;6671:23;:35::i;22035:101::-;22095:7;22115:17;22125:6;22115:9;:17::i;22400:165::-;22492:7;22512:49;22543:17;22512:30;:49::i;8530:170::-;8593:7;8636:34;-1:-1:-1;;;;;;;;;;;8636:9:6;:34::i;:::-;-1:-1:-1;;;;;8613:75:6;;8689:6;8613:83;;;;;-1:-1:-1;;;8613:83:6;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;2974:119:60;575:12:66;:10;:12::i;:::-;3077::60;;3066:8;:23;;-1:-1:-1;;3066:23:60;-1:-1:-1;;;;;3077:12:60;;;3066:23;;;;;;2974:119::o;11965:233:6:-;12063:4;12103:34;-1:-1:-1;;;;;;;;;;;12103:9:6;:34::i;:::-;12080:114;;;;;;-1:-1:-1;;;;;12080:114:6;;;;;;;;;;;;;;;;:87;;;;;;;:114;;;;;;;;;;;;;;;-1:-1:-1;12080:87:6;:114;;;5:2:-1;;;;30:1;27;20:12;23666:232:6;23804:16;23834:60;23859:1;23862:14;23878:15;23834:24;:60::i;6822:150::-;6869:7;6912:34;-1:-1:-1;;;;;;;;;;;6912:9:6;:34::i;:::-;-1:-1:-1;;;;;6889:77:6;;:79;;;;;-1:-1:-1;;;6889:79:6;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;180:23:66;;;-1:-1:-1;;;;;180:23:66;;:::o;22905:179:6:-;23008:7;23028:52;23054:17;23073:6;23028:25;:52::i;7689:155::-;7744:4;7784:34;-1:-1:-1;;;;;;;;;;;7784:9:6;:34::i;:::-;-1:-1:-1;;;;;7761:71:6;;7833:6;7761:79;;;;;-1:-1:-1;;;7761:79:6;;;;;;;-1:-1:-1;;;;;7761:79:6;-1:-1:-1;;;;;7761:79:6;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;21710:91:6;21761:7;21781:16;:14;:16::i;8876:165::-;8938:4;8978:34;-1:-1:-1;;;;;;;;;;;8978:9:6;:34::i;:::-;-1:-1:-1;;;;;8955:74:6;;9030:6;8955:82;;;;;-1:-1:-1;;;8955:82:6;;;;;;;-1:-1:-1;;;;;8955:82:6;-1:-1:-1;;;;;8955:82:6;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;7080:144:6;7123:9;7168:34;-1:-1:-1;;;;;;;;;;;7168:9:6;:34::i;:::-;-1:-1:-1;;;;;7145:73:6;;:75;;;;;-1:-1:-1;;;7145:75:6;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;945:140:66;575:12;:10;:12::i;:::-;1033:5;;-1:-1:-1;;;;;1020:18:66;;;1033:5;;1020:18;;1012:45;;;;;-1:-1:-1;;;;;1012:45:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;1061:8;:20;;-1:-1:-1;;1061:20:66;-1:-1:-1;;;;;1061:20:66;;;;;;;;;;945:140::o;22656:159:6:-;22744:9;22766:45;22793:17;22766:26;:45::i;642:93:66:-;704:5;;-1:-1:-1;;;;;704:5:66;690:10;:19;682:49;;;;;-1:-1:-1;;;;;682:49:66;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;682:49:66;;;;;;;;;;;;;;;642:93::o;3647:122:60:-;3732:8;;:33;;;;;;;;;;;;;;3712:7;;-1:-1:-1;;;;;3732:8:60;;:18;;:33;;;;;;;;;;;;;;3712:7;3732:8;:33;;;5:2:-1;;;;30:1;27;20:12;19307:823:6;19404:9;19426:44;19535:22;19639:13;19745:9;19797:35;19496:34;-1:-1:-1;;;;;;;;;;;19496:9:6;:34::i;:::-;19426:105;;19560:21;-1:-1:-1;;;;;19560:56:6;;19617:14;19632:1;19617:17;;;;;;;;;;;;;;;;;;19560:75;;;;;-1:-1:-1;;;19560:75:6;;;;;;;-1:-1:-1;;;;;19560:75:6;-1:-1:-1;;;;;19560:75:6;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19560:75:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;19560:75:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;19560:75:6;;-1:-1:-1;19655:1:6;;-1:-1:-1;19757:1:6;;-1:-1:-1;19740:300:6;19764:14;:21;19760:1;:25;19740:300;;;19835:21;-1:-1:-1;;;;;19835:56:6;;19892:14;19907:1;19892:17;;;;;;;;;;;;;;;;;;19835:75;;;;;-1:-1:-1;;;19835:75:6;;;;;;;-1:-1:-1;;;;;19835:75:6;-1:-1:-1;;;;;19835:75:6;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19835:75:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;19835:75:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;19835:75:6;;-1:-1:-1;19919:44:6;;;19915:121;;;19988:27;19971:44;;20029:1;20021:9;;19915:121;19787:3;;;;;19740:300;;;20051:21;-1:-1:-1;;;;;20051:52:6;;20104:14;20119:5;20104:21;;;;;;;;;;;;;;;;;;20051:75;;;;;-1:-1:-1;;;20051:75:6;;;;;;;-1:-1:-1;;;;;20051:75:6;-1:-1:-1;;;;;20051:75:6;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;20051:75:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;20051:75:6;;;;;;39:16:-1;36:1;17:17;2:54;101:4;20051:75:6;80:15:-1;;;-1:-1;;76:31;65:43;;120:4;113:20;13:2;5:11;;2:2;;;29:1;26;19:12;2:2;20051:75:6;;;;;;20:11:-1;15:3;12:20;9:2;;;45:1;42;35:12;9:2;64:21;;126:4;117:14;;142:31;;;139:2;;;186:1;183;176:12;139:2;224:3;218:10;339:9;333:2;319:12;315:21;297:16;293:44;290:59;268:11;254:12;251:29;239:119;236:2;;;371:1;368;361:12;236:2;-1:-1;20051:75:6;;19307:823;-1:-1:-1;;;;;;;;;;;19307:823:6:o;20133:495::-;20312:4;20465:9;20335:10;-1:-1:-1;;;;;20335:24:6;;:26;;;;;-1:-1:-1;;;20335:26:6;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;20335:26:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;20335:26:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;20335:26:6;20326:35;;;;;;;20322:53;;20370:5;20363:12;;;;20322:53;20409:10;-1:-1:-1;;;;;20409:30:6;;:32;;;;;-1:-1:-1;;;20409:32:6;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;20409:32:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;20409:32:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;20409:32:6;20384:21;;:57;;;;;20380:75;;20450:5;20443:12;;;;20380:75;-1:-1:-1;20477:1:6;20460:149;20484:14;:21;20480:1;:25;20460:149;;;20543:47;20560:10;20572:14;20587:1;20572:17;;;;;;;;;;;;;;;;;;20543:16;:47::i;:::-;20521:69;;:15;20537:1;20521:18;;;;;;;;;;;;;;;;;;;:69;;;20517:87;;20599:5;20592:12;;;;20517:87;20507:3;;20460:149;;;20620:4;20613:11;;20133:495;;;;;;;;:::o;17920:680::-;17985:44;18094:23;18154:25;18472:9;18055:34;-1:-1:-1;;;;;;;;;;;18055:9:6;:34::i;:::-;17985:105;;18131:10;-1:-1:-1;;;;;18120:28:6;;:30;;;;;-1:-1:-1;;;18120:30:6;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18120:30:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;18120:30:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;18120:30:6;18182:32;;;;;;;;18120:30;;-1:-1:-1;;;;;;18182:30:6;;;;;:32;;;;;18120:30;;18182:32;;;;;;;;;:30;:32;;;5:2:-1;;;;30:1;27;20:12;5:2;18182:32:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;18182:32:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;18182:32:6;18154:60;;;-1:-1:-1;18249:40:6;18259:21;18282:6;18249:9;:40::i;:::-;18317:1;18297:17;:21;18293:141;;;18320:47;18337:21;18360:6;18320:16;:47::i;:::-;18293:141;;;18376:58;18396:21;18419:6;18427;18376:19;:58::i;:::-;-1:-1:-1;18484:1:6;18467:129;18491:17;18487:1;:21;18467:129;;;18515:81;18535:21;18558:10;-1:-1:-1;;;;;18558:26:6;;18585:1;18558:29;;;;;-1:-1:-1;;;18558:29:6;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18558:29:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;18558:29:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;18558:29:6;18589:6;18515:19;:81::i;:::-;18510:3;;18467:129;;;17920:680;;;;;:::o;3798:902::-;4010:10;4026:14;4260:25;4339:23;4441:20;4043:14;:21;4026:38;;4086:15;:22;4076:6;:32;4068:65;;;;;;;-1:-1:-1;;;;;4068:65:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;4230:1;4145:64;4170:5;4177:14;4193:15;4145:24;:64::i;:::-;-1:-1:-1;;;;;4145:87:6;;4137:118;;;;;-1:-1:-1;;;;;4137:118:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;4306:28;4316:17;4306:9;:28::i;:::-;4260:75;;4382:7;-1:-1:-1;;;;;4382:20:6;;4403:5;4410;4417:7;4426:9;4382:54;;;;;-1:-1:-1;;;4382:54:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;4382:54:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4382:54:6;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;4382:54:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4382:54:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4382:54:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4382:54:6;;;;;;;;;;;;;;;;4339:98;;4475:7;-1:-1:-1;;;;;4475:23:6;;4499:5;4506:6;4514:8;;;;;;;;;-1:-1:-1;;;;;4514:8:6;4524:17;4475:67;;;;;-1:-1:-1;;;4475:67:6;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4475:67:6;-1:-1:-1;;;;;4475:67:6;;;;;;-1:-1:-1;;;;;4475:67:6;-1:-1:-1;;;;;4475:67:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4475:67:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4475:67:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4475:67:6;-1:-1:-1;;;;;4643:19:6;;;;;;:8;4475:67;4643:19;;;;:32;;-1:-1:-1;;4643:32:6;4665:10;4643:32;;;4475:67;;-1:-1:-1;;;;;;;;;;;;3798:902:6:o;21001:630::-;21092:6;21104:21;;:::i;:::-;20689:32;;;;;;;;;;;;;;;;-1:-1:-1;;;;;21149:63:6;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;21149:63:6;;;;;;;25:18:-1;;61:17;;21149:63:6;182:15:-1;21149:63:6;;;;179:29:-1;;;;160:49;;21416:11:6;;21149:63;;20689:32;21502:3;;21288:10;21262:3;21246:306;21566:7;21559:15;21556:2;;;21591:1;21588;21581:12;21556:2;-1:-1:-1;;21620:6:6;;;;;-1:-1:-1;;;21001:630:6:o;18603:701::-;18671:44;18780:23;18840:25;19173:9;18741:34;-1:-1:-1;;;;;;;;;;;18741:9:6;:34::i;:::-;18671:105;;18817:10;-1:-1:-1;;;;;18806:28:6;;:30;;;;;-1:-1:-1;;;18806:30:6;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18806:30:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;18806:30:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;18806:30:6;18868:32;;;;;;;;18806:30;;-1:-1:-1;;;;;;18868:30:6;;;;;:32;;;;;18806:30;;18868:32;;;;;;;;;:30;:32;;;5:2:-1;;;;30:1;27;20:12;5:2;18868:32:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;18868:32:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;18868:32:6;18840:60;;;-1:-1:-1;18938:43:6;18951:21;18974:6;18938:12;:43::i;:::-;19009:1;18989:17;:21;18985:147;;;19012:50;19032:21;19055:6;19012:19;:50::i;:::-;18985:147;;;19071:61;19094:21;19117:6;19125;19071:22;:61::i;:::-;-1:-1:-1;19185:1:6;19168:132;19192:17;19188:1;:21;19168:132;;;19216:84;19239:21;19262:10;-1:-1:-1;;;;;19262:26:6;;19289:1;19262:29;;;;;-1:-1:-1;;;19262:29:6;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19262:29:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;19262:29:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;19262:29:6;19293:6;19216:22;:84::i;:::-;19211:3;;19168:132;;15476:216;15572:22;-1:-1:-1;;;;;15572:36:6;;15609:7;15572:45;;;;;-1:-1:-1;;;15572:45:6;;;;;;;-1:-1:-1;;;;;15572:45:6;-1:-1:-1;;;;;15572:45:6;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15572:45:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;15626:29:6;;-1:-1:-1;;;;;15626:29:6;;;-1:-1:-1;15626:29:6;;-1:-1:-1;15626:29:6;;;15664:24;;-1:-1:-1;;;;;15664:24:6;;;;;;;;15476:216;;:::o;16262:212::-;16372:22;-1:-1:-1;;;;;16372:39:6;;16412:14;16372:55;;;;;-1:-1:-1;;;16372:55:6;;;;;;;-1:-1:-1;;;;;16372:55:6;-1:-1:-1;;;;;16372:55:6;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16372:55:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;16436:34:6;;-1:-1:-1;;;;;16436:34:6;;;-1:-1:-1;16436:34:6;;-1:-1:-1;16436:34:6;;;16262:212;;:::o;17113:274::-;17255:70;;;;;;-1:-1:-1;;;;;17255:70:6;;;;;;;;;;;;;;;;:42;;;;;;:70;;;;;-1:-1:-1;;17255:70:6;;;;;;;;-1:-1:-1;17255:42:6;:70;;;5:2:-1;;;;30:1;27;20:12;5:2;17255:70:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;17334:49:6;;-1:-1:-1;;;;;17334:49:6;;;;-1:-1:-1;17334:49:6;;;-1:-1:-1;17334:49:6;;;;;17113:274;;;:::o;15865:226::-;15964:22;-1:-1:-1;;;;;15964:39:6;;16004:7;15964:48;;;;;-1:-1:-1;;;15964:48:6;;;;;;;-1:-1:-1;;;;;15964:48:6;-1:-1:-1;;;;;15964:48:6;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15964:48:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;16021:31:6;;-1:-1:-1;;;;;16021:31:6;;;-1:-1:-1;16021:31:6;;-1:-1:-1;16021:31:6;;;16061:26;;-1:-1:-1;;;;;16061:26:6;;;;;;;;15865:226;;:::o;16650:220::-;16763:22;-1:-1:-1;;;;;16763:42:6;;16806:14;16763:58;;;;;-1:-1:-1;;;16763:58:6;;;;;;;-1:-1:-1;;;;;16763:58:6;-1:-1:-1;;;;;16763:58:6;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16763:58:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;16830:36:6;;-1:-1:-1;;;;;16830:36:6;;;-1:-1:-1;16830:36:6;;-1:-1:-1;16830:36:6;;;16650:220;;:::o;17635:282::-;17780:73;;;;;;-1:-1:-1;;;;;17780:73:6;;;;;;;;;;;;;;;;:45;;;;;;:73;;;;;-1:-1:-1;;17780:73:6;;;;;;;;-1:-1:-1;17780:45:6;:73;;;5:2:-1;;;;30:1;27;20:12;5:2;17780:73:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;17862:51:6;;-1:-1:-1;;;;;17862:51:6;;;;-1:-1:-1;17862:51:6;;;-1:-1:-1;17862:51:6;;;;;17635:282;;;:::o;144:560:35:-;;;;;;;;;;;;;;;105:10:-1;144:560:35;88:34:-1;-1:-1;144:560:35;;;-1:-1:-1;;144:560:35:o" - }, - "methodIdentifiers": { - "acceptOwnership()": "79ba5097", - "addConverter(address)": "6ce1c4dc", - "createdConverter()": "1814f2d2", - "getAnchor(uint256)": "4c7df18f", - "getAnchorCount()": "d3182bed", - "getAnchors()": "effb3c6e", - "getConvertersByAnchors(address[])": "610c0b05", - "getConvertersBySmartTokens(address[])": "1f8e2620", - "getConvertibleToken(uint256)": "865cf194", - "getConvertibleTokenAnchor(address,uint256)": "603f51e4", - "getConvertibleTokenAnchorCount(address)": "49c5f32b", - "getConvertibleTokenAnchors(address)": "11839064", - "getConvertibleTokenCount()": "69be4784", - "getConvertibleTokenSmartToken(address,uint256)": "d6c4b5b2", - "getConvertibleTokenSmartTokenCount(address)": "a43d5e94", - "getConvertibleTokenSmartTokens(address)": "f4fb86c0", - "getConvertibleTokens()": "5f1b50fe", - "getLiquidityPool(uint256)": "a74498aa", - "getLiquidityPoolByConfig(uint16,address[],uint32[])": "1d3fccd5", - "getLiquidityPoolByReserveConfig(address[],uint32[])": "c22b82f0", - "getLiquidityPoolCount()": "7a5f0ffd", - "getLiquidityPools()": "7f45c4c3", - "getSmartToken(uint256)": "a109d214", - "getSmartTokenCount()": "e571049b", - "getSmartTokens()": "04ceaf41", - "isAnchor(address)": "d8cced2a", - "isConverterValid(address)": "954254f5", - "isConvertibleToken(address)": "3ab8857c", - "isConvertibleTokenAnchor(address,address)": "b4c4197a", - "isConvertibleTokenSmartToken(address,address)": "725b8786", - "isLiquidityPool(address)": "e85455d7", - "isSimilarLiquidityPoolRegistered(address)": "8f1d0e1a", - "isSmartToken(address)": "4123ef60", - "newConverter(uint16,string,string,uint8,uint32,address[],uint32[])": "5a0a6618", - "newOwner()": "d4ee1d90", - "onlyOwnerCanUpdateRegistry()": "2fe8a6ad", - "owner()": "8da5cb5b", - "prevRegistry()": "61cd756e", - "registry()": "7b103999", - "removeConverter(address)": "9e76a007", - "restoreRegistry()": "b4a176d3", - "restrictRegistryUpdate(bool)": "024c7ec7", - "setupConverter(uint16,address[],uint32[],address)": "295d2a21", - "transferOwnership(address)": "f2fde38b", - "updateRegistry()": "49d10b64" - } - }, - "userdoc": { - "methods": {} - } - } - }, - "solidity/contracts/helpers/TestLiquidityPoolConverter.sol": { - "TestLiquidityPoolConverter": { - "abi": [ - { - "constant": false, - "inputs": [ - { - "name": "_onlyOwnerCanUpdateRegistry", - "type": "bool" - } - ], - "name": "restrictRegistryUpdate", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "reserveRatio", - "outputs": [ - { - "name": "", - "type": "uint32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_address", - "type": "address" - } - ], - "name": "connectors", - "outputs": [ - { - "name": "", - "type": "uint256" - }, - { - "name": "", - "type": "uint32" - }, - { - "name": "", - "type": "bool" - }, - { - "name": "", - "type": "bool" - }, - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "hasETHReserve", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_index", - "type": "uint256" - } - ], - "name": "connectorTokens", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_reserveToken", - "type": "address" - } - ], - "name": "reserveWeight", - "outputs": [ - { - "name": "", - "type": "uint32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_sourceToken", - "type": "address" - }, - { - "name": "_targetToken", - "type": "address" - }, - { - "name": "_amount", - "type": "uint256" - } - ], - "name": "getReturn", - "outputs": [ - { - "name": "", - "type": "uint256" - }, - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_newOwner", - "type": "address" - } - ], - "name": "transferTokenOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "isActive", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "onlyOwnerCanUpdateRegistry", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "acceptTokenOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_token", - "type": "address" - }, - { - "name": "_to", - "type": "address" - }, - { - "name": "_amount", - "type": "uint256" - } - ], - "name": "withdrawFromAnchor", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "converterType", - "outputs": [ - { - "name": "", - "type": "uint16" - } - ], - "payable": false, - "stateMutability": "pure", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_amount", - "type": "uint256" - } - ], - "name": "liquidate", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "updateRegistry", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_whitelist", - "type": "address" - } - ], - "name": "setConversionWhitelist", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "version", - "outputs": [ - { - "name": "", - "type": "uint16" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "conversionFee", - "outputs": [ - { - "name": "", - "type": "uint32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_token", - "type": "address" - }, - { - "name": "_to", - "type": "address" - }, - { - "name": "_amount", - "type": "uint256" - } - ], - "name": "withdrawTokens", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "prevRegistry", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_newOwner", - "type": "address" - } - ], - "name": "transferAnchorOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_to", - "type": "address" - } - ], - "name": "withdrawETH", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_token", - "type": "address" - }, - { - "name": "_weight", - "type": "uint32" - } - ], - "name": "addReserve", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_x", - "type": "uint256" - } - ], - "name": "decimalLength", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "pure", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_etherToken", - "type": "address" - } - ], - "name": "setEtherToken", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "connectorTokenCount", - "outputs": [ - { - "name": "", - "type": "uint16" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "acceptOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "registry", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_reserveTokens", - "type": "address[]" - }, - { - "name": "_reserveAmounts", - "type": "uint256[]" - }, - { - "name": "_minReturn", - "type": "uint256" - } - ], - "name": "addLiquidity", - "outputs": [], - "payable": true, - "stateMutability": "payable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "owner", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "maxConversionFee", - "outputs": [ - { - "name": "", - "type": "uint32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "reserveTokenCount", - "outputs": [ - { - "name": "", - "type": "uint16" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_values", - "type": "uint256[]" - } - ], - "name": "geometricMean", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "pure", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_sourceToken", - "type": "address" - }, - { - "name": "_targetToken", - "type": "address" - }, - { - "name": "_amount", - "type": "uint256" - } - ], - "name": "targetAmountAndFee", - "outputs": [ - { - "name": "", - "type": "uint256" - }, - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_amount", - "type": "uint256" - }, - { - "name": "_reserveTokens", - "type": "address[]" - }, - { - "name": "_reserveMinReturnAmounts", - "type": "uint256[]" - } - ], - "name": "removeLiquidity", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "restoreRegistry", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_n", - "type": "uint256" - }, - { - "name": "_d", - "type": "uint256" - } - ], - "name": "roundDiv", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "pure", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "conversionsEnabled", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "conversionWhitelist", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_amount", - "type": "uint256" - } - ], - "name": "fund", - "outputs": [], - "payable": true, - "stateMutability": "payable", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "acceptAnchorOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "", - "type": "uint256" - } - ], - "name": "reserveTokens", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "isV28OrHigher", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "pure", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "anchor", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "newOwner", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "upgrade", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "", - "type": "address" - } - ], - "name": "reserves", - "outputs": [ - { - "name": "balance", - "type": "uint256" - }, - { - "name": "weight", - "type": "uint32" - }, - { - "name": "deprecated1", - "type": "bool" - }, - { - "name": "deprecated2", - "type": "bool" - }, - { - "name": "isSet", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_connectorToken", - "type": "address" - } - ], - "name": "getConnectorBalance", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_reserveToken", - "type": "address" - } - ], - "name": "reserveBalance", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_sourceToken", - "type": "address" - }, - { - "name": "_targetToken", - "type": "address" - }, - { - "name": "_amount", - "type": "uint256" - }, - { - "name": "_trader", - "type": "address" - }, - { - "name": "_beneficiary", - "type": "address" - } - ], - "name": "convert", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": true, - "stateMutability": "payable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_conversionFee", - "type": "uint32" - } - ], - "name": "setConversionFee", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "token", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "name": "_token", - "type": "address" - }, - { - "name": "_registry", - "type": "address" - }, - { - "name": "_maxConversionFee", - "type": "uint32" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "payable": true, - "stateMutability": "payable", - "type": "fallback" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "_connectorToken", - "type": "address" - }, - { - "indexed": false, - "name": "_tokenSupply", - "type": "uint256" - }, - { - "indexed": false, - "name": "_connectorBalance", - "type": "uint256" - }, - { - "indexed": false, - "name": "_connectorWeight", - "type": "uint32" - } - ], - "name": "PriceDataUpdate", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "_provider", - "type": "address" - }, - { - "indexed": true, - "name": "_reserveToken", - "type": "address" - }, - { - "indexed": false, - "name": "_amount", - "type": "uint256" - }, - { - "indexed": false, - "name": "_newBalance", - "type": "uint256" - }, - { - "indexed": false, - "name": "_newSupply", - "type": "uint256" - } - ], - "name": "LiquidityAdded", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "_provider", - "type": "address" - }, - { - "indexed": true, - "name": "_reserveToken", - "type": "address" - }, - { - "indexed": false, - "name": "_amount", - "type": "uint256" - }, - { - "indexed": false, - "name": "_newBalance", - "type": "uint256" - }, - { - "indexed": false, - "name": "_newSupply", - "type": "uint256" - } - ], - "name": "LiquidityRemoved", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "_type", - "type": "uint16" - }, - { - "indexed": true, - "name": "_anchor", - "type": "address" - }, - { - "indexed": true, - "name": "_activated", - "type": "bool" - } - ], - "name": "Activation", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "_fromToken", - "type": "address" - }, - { - "indexed": true, - "name": "_toToken", - "type": "address" - }, - { - "indexed": true, - "name": "_trader", - "type": "address" - }, - { - "indexed": false, - "name": "_amount", - "type": "uint256" - }, - { - "indexed": false, - "name": "_return", - "type": "uint256" - }, - { - "indexed": false, - "name": "_conversionFee", - "type": "int256" - } - ], - "name": "Conversion", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "_token1", - "type": "address" - }, - { - "indexed": true, - "name": "_token2", - "type": "address" - }, - { - "indexed": false, - "name": "_rateN", - "type": "uint256" - }, - { - "indexed": false, - "name": "_rateD", - "type": "uint256" - } - ], - "name": "TokenRateUpdate", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "_prevFee", - "type": "uint32" - }, - { - "indexed": false, - "name": "_newFee", - "type": "uint32" - } - ], - "name": "ConversionFeeUpdate", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "_prevOwner", - "type": "address" - }, - { - "indexed": true, - "name": "_newOwner", - "type": "address" - } - ], - "name": "OwnerUpdate", - "type": "event" - } - ], - "devdoc": { - "methods": { - "acceptAnchorOwnership()": { - "details": "accepts ownership of the anchor after an ownership transfer\r also activates the converter\r can only be called by the contract owner\r note that prior to version 28, you should use 'acceptTokenOwnership' instead\r" - }, - "acceptOwnership()": { - "details": "used by a new owner to accept an ownership transfer" - }, - "acceptTokenOwnership()": { - "details": "deprecated, backward compatibility" - }, - "addLiquidity(address[],uint256[],uint256)": { - "details": "increases the pool's liquidity and mints new shares in the pool to the caller\r note that prior to version 28, you should use 'fund' instead\r ", - "params": { - "_minReturn": "token minimum return-amount\r", - "_reserveAmounts": "amount of each reserve token\r", - "_reserveTokens": "address of each reserve token\r" - } - }, - "addReserve(address,uint32)": { - "details": "defines a new reserve token for the converter can only be called by the owner while the converter is inactive", - "params": { - "_token": "address of the reserve token", - "_weight": "reserve weight, represented in ppm, 1-1000000" - } - }, - "connectorTokenCount()": { - "details": "deprecated, backward compatibility" - }, - "connectorTokens(uint256)": { - "details": "deprecated, backward compatibility" - }, - "connectors(address)": { - "details": "deprecated, backward compatibility" - }, - "convert(address,address,uint256,address,address)": { - "details": "converts a specific amount of source tokens to target tokens can only be called by the SovrynSwap network contract", - "params": { - "_amount": "amount of tokens to convert (in units of the source token)", - "_beneficiary": "wallet to receive the conversion result", - "_sourceToken": "source ERC20 token", - "_targetToken": "target ERC20 token", - "_trader": "address of the caller who executed the conversion" - }, - "return": "amount of tokens received (in units of the target token)" - }, - "converterType()": { - "details": "returns the converter type\r ", - "return": "see the converter types in the the main contract doc\r" - }, - "decimalLength(uint256)": { - "details": "calculates the number of decimal digits in a given value\r ", - "params": { - "_x": "value (assumed positive)\r" - }, - "return": "the number of decimal digits in the given value\r" - }, - "fund(uint256)": { - "details": "increases the pool's liquidity and mints new shares in the pool to the caller\r for example, if the caller increases the supply by 10%,\r then it will cost an amount equal to 10% of each reserve token balance\r note that starting from version 28, you should use 'addLiquidity' instead\r ", - "params": { - "_amount": "amount to increase the supply by (in the pool token)\r" - } - }, - "geometricMean(uint256[])": { - "details": "calculates the average number of decimal digits in a given list of values\r ", - "params": { - "_values": "list of values (each of which assumed positive)\r" - }, - "return": "the average number of decimal digits in the given list of values\r" - }, - "getConnectorBalance(address)": { - "details": "deprecated, backward compatibility" - }, - "getReturn(address,address,uint256)": { - "details": "deprecated, backward compatibility" - }, - "hasETHReserve()": { - "details": "checks whether or not the converter has an ETH reserve", - "return": "true if the converter has an ETH reserve, false otherwise" - }, - "isActive()": { - "details": "returns true if the converter is active, false otherwise", - "return": "true if the converter is active, false otherwise" - }, - "isV28OrHigher()": { - "details": "checks whether or not the converter version is 28 or higher", - "return": "true, since the converter version is 28 or higher" - }, - "liquidate(uint256)": { - "details": "decreases the pool's liquidity and burns the caller's shares in the pool\r for example, if the holder sells 10% of the supply,\r then they will receive 10% of each reserve token balance in return\r note that starting from version 28, you should use 'removeLiquidity' instead\r ", - "params": { - "_amount": "amount to liquidate (in the pool token)\r" - } - }, - "removeLiquidity(uint256,address[],uint256[])": { - "details": "decreases the pool's liquidity and burns the caller's shares in the pool\r note that prior to version 28, you should use 'liquidate' instead\r ", - "params": { - "_amount": "token amount\r", - "_reserveMinReturnAmounts": "minimum return-amount of each reserve token\r", - "_reserveTokens": "address of each reserve token\r" - } - }, - "reserveBalance(address)": { - "details": "returns the reserve's balance note that prior to version 17, you should use 'getConnectorBalance' instead", - "params": { - "_reserveToken": "reserve token contract address" - }, - "return": "reserve balance" - }, - "reserveTokenCount()": { - "details": "returns the number of reserve tokens defined note that prior to version 17, you should use 'connectorTokenCount' instead", - "return": "number of reserve tokens" - }, - "reserveWeight(address)": { - "details": "returns the reserve's weight added in version 28", - "params": { - "_reserveToken": "reserve token contract address" - }, - "return": "reserve weight" - }, - "restoreRegistry()": { - "details": "restores the previous contract-registry" - }, - "restrictRegistryUpdate(bool)": { - "details": "restricts the permission to update the contract-registry", - "params": { - "_onlyOwnerCanUpdateRegistry": "indicates whether or not permission is restricted to owner only" - } - }, - "roundDiv(uint256,uint256)": { - "details": "calculates the nearest integer to a given quotient\r ", - "params": { - "_d": "quotient denominator\r", - "_n": "quotient numerator\r" - }, - "return": "the nearest integer to the given quotient\r" - }, - "setConversionFee(uint32)": { - "details": "updates the current conversion fee can only be called by the contract owner", - "params": { - "_conversionFee": "new conversion fee, represented in ppm" - } - }, - "setConversionWhitelist(address)": { - "details": "allows the owner to update & enable the conversion whitelist contract address when set, only addresses that are whitelisted are actually allowed to use the converter note that the whitelist check is actually done by the SovrynSwapNetwork contract", - "params": { - "_whitelist": "address of a whitelist contract" - } - }, - "targetAmountAndFee(address,address,uint256)": { - "details": "returns the expected target amount of converting one reserve to another along with the fee\r ", - "params": { - "_amount": "amount of tokens received from the user\r ", - "_sourceToken": "contract address of the source reserve token\r", - "_targetToken": "contract address of the target reserve token\r" - }, - "return": "expected target amount\rexpected fee\r" - }, - "token()": { - "details": "deprecated since version 28, backward compatibility - use only for earlier versions" - }, - "transferAnchorOwnership(address)": { - "details": "transfers the anchor ownership the new owner needs to accept the transfer can only be called by the converter upgrder while the upgrader is the owner note that prior to version 28, you should use 'transferAnchorOwnership' instead", - "params": { - "_newOwner": "new token owner" - } - }, - "transferOwnership(address)": { - "details": "allows transferring the contract ownership the new owner still needs to accept the transfer can only be called by the contract owner", - "params": { - "_newOwner": "new contract owner" - } - }, - "transferTokenOwnership(address)": { - "details": "deprecated, backward compatibility" - }, - "updateRegistry()": { - "details": "updates to the new contract-registry" - }, - "upgrade()": { - "details": "upgrades the converter to the latest version can only be called by the owner note that the owner needs to call acceptOwnership on the new converter after the upgrade" - }, - "withdrawETH(address)": { - "details": "withdraws ether can only be called by the owner if the converter is inactive or by upgrader contract can only be called after the upgrader contract has accepted the ownership of this contract can only be called if the converter has an ETH reserve", - "params": { - "_to": "address to send the ETH to" - } - }, - "withdrawFromAnchor(address,address,uint256)": { - "details": "withdraws tokens held by the anchor and sends them to an account can only be called by the owner", - "params": { - "_amount": "amount to withdraw", - "_to": "account to receive the new amount", - "_token": "ERC20 token contract address" - } - }, - "withdrawTokens(address,address,uint256)": { - "details": "withdraws tokens held by the converter and sends them to an account can only be called by the owner note that reserve tokens can only be withdrawn by the owner while the converter is inactive unless the owner is the converter upgrader contract", - "params": { - "_amount": "amount to withdraw", - "_to": "account to receive the new amount", - "_token": "ERC20 token contract address" - } - } - } - }, - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "608060405260016004557fc0829421c1d260bd3cb3e0f06cfe2d52db2ce3150000000000000000000000006009553480156200003a57600080fd5b5060405160608062004bcd83398101604090815281516020830151919092015160008054600160a060020a0319163317905582828282828282828281806200008b816401000000006200013b810204565b5060028054600160a060020a03909216600160a060020a031992831681179091556003805490921617905582620000cb816401000000006200013b810204565b81620000e081640100000000620001b6810204565b505060058054600160a060020a03909416600160a060020a031990941693909317909255506009805463ffffffff9092166401000000000267ffffffff0000000019909216919091179055506200022f975050505050505050565b600160a060020a0381161515620001b357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b50565b620f424063ffffffff82161115620001b357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f4552525f494e56414c49445f434f4e56455253494f4e5f464545000000000000604482015290519081900360640190fd5b61498e806200023f6000396000f3006080604052600436106102635763ffffffff60e060020a600035041663024c7ec781146102ef5780630c7d5cd8146103095780630e53aae91461033757806312c2aca41461038c57806319b64015146103b55780631cfab290146103e95780631e1401f81461040a57806321e6b53d1461044d57806322f3e2d41461046e5780632fe8a6ad1461048357806338a5e01614610498578063395900d4146104ad5780633e8ff43f146104d7578063415f12401461050357806349d10b641461051b5780634af80f0e1461053057806354fd4d5014610551578063579cd3ca146105665780635e35359e1461057b57806361cd756e146105a557806367b6d57c146105ba578063690d8320146105db5780636a49d2c4146105fc5780636aa5332c146106265780636ad419a81461065057806371f52bf31461067157806379ba5097146106865780637b1039991461069b5780637d8916bd146106b05780638da5cb5b1461073357806394c275ad146107485780639b99a8e21461075d578063a60e772414610772578063af94b8d8146107c7578063b127c0a5146107f1578063b4a176d314610884578063bbb7e5d814610899578063bf754558146108b4578063c45d3d92146108c9578063ca1d209d146108de578063cdc91c69146108e9578063d031370b146108fe578063d260529c14610916578063d3fb73b41461092b578063d4ee1d9014610940578063d55ec69714610955578063d66bd5241461096a578063d89595121461098b578063dc8de379146109ac578063e8dc12ff146109cd578063ecbca55d146109f7578063f2fde38b14610a15578063fc0c546a14610a36575b60008051602061490383398151915260005260086020527f353c2eb9e53a4a4a6d45d72082ff2e9dc829d1125618772a83eb0e7f86632c43546601000000000000900460ff1615156102ed576040805160e560020a62461bcd02815260206004820152601360248201526000805160206148a3833981519152604482015290519081900360640190fd5b005b3480156102fb57600080fd5b506102ed6004351515610a4b565b34801561031557600080fd5b5061031e610a93565b6040805163ffffffff9092168252519081900360200190f35b34801561034357600080fd5b50610358600160a060020a0360043516610a9f565b6040805195865263ffffffff9094166020860152911515848401521515606084015215156080830152519081900360a00190f35b34801561039857600080fd5b506103a1610b3a565b604080519115158252519081900360200190f35b3480156103c157600080fd5b506103cd600435610b83565b60408051600160a060020a039092168252519081900360200190f35b3480156103f557600080fd5b5061031e600160a060020a0360043516610baf565b34801561041657600080fd5b50610434600160a060020a0360043581169060243516604435610be1565b6040805192835260208301919091528051918290030190f35b34801561045957600080fd5b506102ed600160a060020a0360043516610bfb565b34801561047a57600080fd5b506103a1610c0f565b34801561048f57600080fd5b506103a1610ca9565b3480156104a457600080fd5b506102ed610cca565b3480156104b957600080fd5b506102ed600160a060020a0360043581169060243516604435610cdc565b3480156104e357600080fd5b506104ec610d77565b6040805161ffff9092168252519081900360200190f35b34801561050f57600080fd5b506102ed600435610d7c565b34801561052757600080fd5b506102ed610fc0565b34801561053c57600080fd5b506102ed600160a060020a036004351661122d565b34801561055d57600080fd5b506104ec61126f565b34801561057257600080fd5b5061031e611274565b34801561058757600080fd5b506102ed600160a060020a036004358116906024351660443561128c565b3480156105b157600080fd5b506103cd611395565b3480156105c657600080fd5b506102ed600160a060020a03600435166113a4565b3480156105e757600080fd5b506102ed600160a060020a0360043516611447565b34801561060857600080fd5b506102ed600160a060020a036004351663ffffffff6024351661154c565b34801561063257600080fd5b5061063e60043561178b565b60408051918252519081900360200190f35b34801561065c57600080fd5b506102ed600160a060020a03600435166117b0565b34801561067d57600080fd5b506104ec6117e6565b34801561069257600080fd5b506102ed6117f5565b3480156106a757600080fd5b506103cd6118b6565b604080516020600480358082013583810280860185019096528085526102ed95369593946024949385019291829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a99890198929750908201955093508392508501908490808284375094975050933594506118c59350505050565b34801561073f57600080fd5b506103cd611bc4565b34801561075457600080fd5b5061031e611bd3565b34801561076957600080fd5b506104ec611be7565b34801561077e57600080fd5b506040805160206004803580820135838102808601850190965280855261063e95369593946024949385019291829185019084908082843750949750611bed9650505050505050565b3480156107d357600080fd5b50610434600160a060020a0360043581169060243516604435611c43565b3480156107fd57600080fd5b506040805160206004602480358281013584810280870186019097528086526102ed96843596369660449591949091019291829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750949750611de89650505050505050565b34801561089057600080fd5b506102ed611f1c565b3480156108a557600080fd5b5061063e600435602435611f55565b3480156108c057600080fd5b506103a1611f6f565b3480156108d557600080fd5b506103cd611f74565b6102ed600435611f83565b3480156108f557600080fd5b506102ed612490565b34801561090a57600080fd5b506103cd6004356124e9565b34801561092257600080fd5b506103a1610d77565b34801561093757600080fd5b506103cd612511565b34801561094c57600080fd5b506103cd612520565b34801561096157600080fd5b506102ed61252f565b34801561097657600080fd5b50610358600160a060020a0360043516612624565b34801561099757600080fd5b5061063e600160a060020a036004351661266a565b3480156109b857600080fd5b5061063e600160a060020a036004351661267b565b61063e600160a060020a0360043581169060243581169060443590606435811690608435166126a4565b348015610a0357600080fd5b506102ed63ffffffff600435166128f7565b348015610a2157600080fd5b506102ed600160a060020a03600435166129ec565b348015610a4257600080fd5b506103cd612a89565b610a53612a98565b60038054911515740100000000000000000000000000000000000000000274ff000000000000000000000000000000000000000019909216919091179055565b60095463ffffffff1681565b6000806000806000610aaf614855565b50505050600160a060020a03929092166000908152600860209081526040808320815160a081018352815480825260019092015463ffffffff811694820185905260ff64010000000082048116151594830194909452650100000000008104841615156060830152660100000000000090049092161515608090920182905295919450919250829190565b60008051602061490383398151915260005260086020527f353c2eb9e53a4a4a6d45d72082ff2e9dc829d1125618772a83eb0e7f86632c43546601000000000000900460ff1690565b6000600782815481101515610b9457fe5b600091825260209091200154600160a060020a031692915050565b600081610bbb81612ae8565b5050600160a060020a031660009081526008602052604090206001015463ffffffff1690565b600080610bef858585611c43565b91509150935093915050565b610c03612a98565b610c0c816113a4565b50565b600030600160a060020a0316600560009054906101000a9004600160a060020a0316600160a060020a0316638da5cb5b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610c6e57600080fd5b505af1158015610c82573d6000803e3d6000fd5b505050506040513d6020811015610c9857600080fd5b5051600160a060020a031614905090565b60035474010000000000000000000000000000000000000000900460ff1681565b610cd2612a98565b610cda612490565b565b610ce4612a98565b600554604080517f5e35359e000000000000000000000000000000000000000000000000000000008152600160a060020a03868116600483015285811660248301526044820185905291519190921691635e35359e91606480830192600092919082900301818387803b158015610d5a57600080fd5b505af1158015610d6e573d6000803e3d6000fd5b50505050505050565b600190565b600060606000610d8a612b55565b600260045560008411610de7576040805160e560020a62461bcd02815260206004820152600f60248201527f4552525f5a45524f5f414d4f554e540000000000000000000000000000000000604482015290519081900360640190fd5b600560009054906101000a9004600160a060020a0316600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610e3a57600080fd5b505af1158015610e4e573d6000803e3d6000fd5b505050506040513d6020811015610e6457600080fd5b5051600554604080517fa24835d1000000000000000000000000000000000000000000000000000000008152336004820152602481018890529051929550600160a060020a039091169163a24835d19160448082019260009290919082900301818387803b158015610ed557600080fd5b505af1158015610ee9573d6000803e3d6000fd5b50505050600780549050604051908082528060200260200182016040528015610f1c578160200160208202803883390190505b509150600090505b8151811015610f4f5760018282815181101515610f3d57fe5b60209081029091010152600101610f24565b610fb56007805480602002602001604051908101604052809291908181526020018280548015610fa857602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311610f8a575b5050505050838587612baf565b505060016004555050565b60008054600160a060020a0316331480610ff5575060035474010000000000000000000000000000000000000000900460ff16155b1515611039576040805160e560020a62461bcd0281526020600482015260116024820152600080516020614943833981519152604482015290519081900360640190fd5b6110627f436f6e7472616374526567697374727900000000000000000000000000000000612e74565b600254909150600160a060020a0380831691161480159061108b5750600160a060020a03811615155b15156110e1576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e56414c49445f5245474953545259000000000000000000000000604482015290519081900360640190fd5b604080517fbb34534c0000000000000000000000000000000000000000000000000000000081527f436f6e747261637452656769737472790000000000000000000000000000000060048201529051600091600160a060020a0384169163bb34534c9160248082019260209290919082900301818787803b15801561116557600080fd5b505af1158015611179573d6000803e3d6000fd5b505050506040513d602081101561118f57600080fd5b5051600160a060020a031614156111f0576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e56414c49445f5245474953545259000000000000000000000000604482015290519081900360640190fd5b6002805460038054600160a060020a0380841673ffffffffffffffffffffffffffffffffffffffff19928316179092559091169216919091179055565b611235612a98565b8061123f81612f0c565b506006805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b602081565b60095468010000000000000000900463ffffffff1681565b6000611296612b55565b60026004556112a3612a98565b6112ba6000805160206148e3833981519152612e74565b600160a060020a0385166000908152600860205260409020600101549091506601000000000000900460ff1615806112f757506112f5610c0f565b155b8061130f5750600054600160a060020a038281169116145b1515611353576040805160e560020a62461bcd0281526020600482015260116024820152600080516020614943833981519152604482015290519081900360640190fd5b61135e848484612f6d565b600160a060020a0384166000908152600860205260409020600101546601000000000000900460ff1615610fb557610fb584612f9e565b600354600160a060020a031681565b6113ac612a98565b6000805160206148e38339815191526113c481613093565b600554604080517ff2fde38b000000000000000000000000000000000000000000000000000000008152600160a060020a0385811660048301529151919092169163f2fde38b91602480830192600092919082900301818387803b15801561142b57600080fd5b505af115801561143f573d6000803e3d6000fd5b505050505050565b6000611451612b55565b600260045561145e612a98565b60008051602061490383398151915261147681612ae8565b61148d6000805160206148e3833981519152612e74565b9150611497610c0f565b15806114b05750600054600160a060020a038381169116145b15156114f4576040805160e560020a62461bcd0281526020600482015260116024820152600080516020614943833981519152604482015290519081900360640190fd5b604051600160a060020a03841690303180156108fc02916000818181858888f1935050505015801561152a573d6000803e3d6000fd5b50611542600080516020614903833981519152612f9e565b5050600160045550565b6000611556612a98565b61155e6130e9565b8261156881613146565b8361157281612f0c565b8361157c816131a6565b600554600160a060020a038781169116148015906115c05750600160a060020a0386166000908152600860205260409020600101546601000000000000900460ff16155b1515611604576040805160e560020a62461bcd02815260206004820152601360248201526000805160206148a3833981519152604482015290519081900360640190fd5b60095463ffffffff908116620f4240038116908616111561166f576040805160e560020a62461bcd02815260206004820152601a60248201527f4552525f494e56414c49445f524553455256455f574549474854000000000000604482015290519081900360640190fd5b61ffff61167a611be7565b61ffff16106116d3576040805160e560020a62461bcd02815260206004820152601960248201527f4552525f494e56414c49445f524553455256455f434f554e5400000000000000604482015290519081900360640190fd5b505050600160a060020a0390921660008181526008602052604081208181556001908101805466ff0000000000001963ffffffff80881663ffffffff1993841617919091166601000000000000179092556007805493840181559093527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688909101805473ffffffffffffffffffffffffffffffffffffffff191690931790925560098054808416909401909216921691909117905550565b600080825b60008111156117a95760019190910190600a9004611790565b5092915050565b60098054600160a060020a039092166c01000000000000000000000000026bffffffffffffffffffffffff909216919091179055565b60006117f0611be7565b905090565b600154600160a060020a03163314611845576040805160e560020a62461bcd0281526020600482015260116024820152600080516020614943833981519152604482015290519081900360640190fd5b60015460008054604051600160a060020a0393841693909116917f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91a3600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b600254600160a060020a031681565b60008060006118d2612b55565b60026004556118df61321b565b6118ea868686613279565b600092505b85518310156119a85785516000805160206149038339815191529087908590811061191657fe5b90602001906020020151600160a060020a0316141561199d5734858481518110151561193e57fe5b602090810290910101511461199d576040805160e560020a62461bcd02815260206004820152601760248201527f4552525f4554485f414d4f554e545f4d49534d41544348000000000000000000604482015290519081900360640190fd5b6001909201916118ef565b6000341115611a4d5760008051602061490383398151915260005260086020527f353c2eb9e53a4a4a6d45d72082ff2e9dc829d1125618772a83eb0e7f86632c43546601000000000000900460ff161515611a4d576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f4e4f5f4554485f524553455256450000000000000000000000000000604482015290519081900360640190fd5b600560009054906101000a9004600160a060020a0316600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015611aa057600080fd5b505af1158015611ab4573d6000803e3d6000fd5b505050506040513d6020811015611aca57600080fd5b50519150611ad9868684613535565b905083811015611b33576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f52455455524e5f544f4f5f4c4f570000000000000000000000000000604482015290519081900360640190fd5b600554604080517f867904b4000000000000000000000000000000000000000000000000000000008152336004820152602481018490529051600160a060020a039092169163867904b49160448082019260009290919082900301818387803b158015611b9f57600080fd5b505af1158015611bb3573d6000803e3d6000fd5b505060016004555050505050505050565b600054600160a060020a031681565b600954640100000000900463ffffffff1681565b60075490565b80516000908190815b81811015611c2a57611c1e8582815181101515611c0f57fe5b9060200190602002015161178b565b90920191600101611bf6565b6001611c368484611f55565b03600a0a95945050505050565b600080600080611c5161321b565b86611c5b81612ae8565b86611c6581612ae8565b600160a060020a038981169089161415611cc9576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f53414d455f534f555243455f54415247455400000000000000000000604482015290519081900360640190fd5b611ce0600080516020614923833981519152612e74565b600160a060020a03166394491fab611cf78b61267b565b600160a060020a038c1660009081526008602052604090206001015463ffffffff16611d228c61267b565b600160a060020a038d16600090815260086020908152604080832060010154815163ffffffff89811660e060020a028252600482019890985295871660248701526044860194909452949092166064840152608483018d9052925160a48084019492939192918390030190829087803b158015611d9e57600080fd5b505af1158015611db2573d6000803e3d6000fd5b505050506040513d6020811015611dc857600080fd5b50519350611dd584613564565b9384900399939850929650505050505050565b6000611df2612b55565b6002600455611dff61321b565b611e0a838386613279565b600560009054906101000a9004600160a060020a0316600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015611e5d57600080fd5b505af1158015611e71573d6000803e3d6000fd5b505050506040513d6020811015611e8757600080fd5b5051600554604080517fa24835d1000000000000000000000000000000000000000000000000000000008152336004820152602481018890529051929350600160a060020a039091169163a24835d19160448082019260009290919082900301818387803b158015611ef857600080fd5b505af1158015611f0c573d6000803e3d6000fd5b50505050610fb583838387612baf565b611f24612a98565b6003546002805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055565b600081600281048401811515611f6757fe5b049392505050565b600181565b600654600160a060020a031681565b600080600080600080600080600080611f9a612b55565b6002600455611fa76135a0565b60008051602061490383398151915260005260086020526000805160206148c383398151915254611fde903463ffffffff6135e216565b6000805160206149038339815191526000908152600860209081526000805160206148c383398151915292909255600554604080517f18160ddd0000000000000000000000000000000000000000000000000000000081529051600160a060020a03909216936318160ddd9360048084019492938390030190829087803b15801561206857600080fd5b505af115801561207c573d6000803e3d6000fd5b505050506040513d602081101561209257600080fd5b505199506120ad600080516020614923833981519152612e74565b6007549099509750600096505b878710156123fa5760078054889081106120d057fe5b9060005260206000200160009054906101000a9004600160a060020a031695506008600087600160a060020a0316600160a060020a0316815260200190815260200160002060000154945088600160a060020a031663ebbb21588b87600960009054906101000a900463ffffffff168f6040518563ffffffff1660e060020a028152600401808581526020018481526020018363ffffffff1663ffffffff168152602001828152602001945050505050602060405180830381600087803b15801561219a57600080fd5b505af11580156121ae573d6000803e3d6000fd5b505050506040513d60208110156121c457600080fd5b50519350600160a060020a038616600080516020614903833981519152141561232657833411156122245760405133903486900380156108fc02916000818181858888f1935050505015801561221e573d6000803e3d6000fd5b50612321565b83341015612321573415612282576040805160e560020a62461bcd02815260206004820152601560248201527f4552525f494e56414c49445f4554485f56414c55450000000000000000000000604482015290519081900360640190fd5b6009546122aa906c010000000000000000000000009004600160a060020a0316333087613642565b6009600c9054906101000a9004600160a060020a0316600160a060020a0316632e1a7d4d856040518263ffffffff1660e060020a02815260040180828152602001915050600060405180830381600087803b15801561230857600080fd5b505af115801561231c573d6000803e3d6000fd5b505050505b612332565b61233286333087613642565b612342858563ffffffff61372a16565b600160a060020a0387166000908152600860205260409020819055925061236f8a8c63ffffffff61372a16565b60408051868152602081018690528082018390529051919350600160a060020a0388169133917f4a1a2a6176e9646d9e3157f7c2ab3c499f18337c0b0828cfb28e0a61de4a11f7919081900360600190a350600160a060020a03851660009081526008602052604090206001015463ffffffff166123ef82878584613787565b6001909601956120ba565b600554604080517f867904b4000000000000000000000000000000000000000000000000000000008152336004820152602481018e90529051600160a060020a039092169163867904b49160448082019260009290919082900301818387803b15801561246657600080fd5b505af115801561247a573d6000803e3d6000fd5b5050600160045550505050505050505050505050565b612498612a98565b6124a06137f6565b600554600190600160a060020a03166124b7610d77565b61ffff167f6b08c2e2c9969e55a647a764db9b554d64dc42f1a704da11a6d5b129ad163f2c60405160405180910390a4565b60078054829081106124f757fe5b600091825260209091200154600160a060020a0316905081565b600554600160a060020a031681565b600154600160a060020a031681565b6000612539612a98565b6125506000805160206148e3833981519152612e74565b600554909150600090600160a060020a031661256a610d77565b61ffff167f6b08c2e2c9969e55a647a764db9b554d64dc42f1a704da11a6d5b129ad163f2c60405160405180910390a46125a3816129ec565b604080517f90f58c96000000000000000000000000000000000000000000000000000000008152602060048201529051600160a060020a038316916390f58c9691602480830192600092919082900301818387803b15801561260457600080fd5b505af1158015612618573d6000803e3d6000fd5b50505050610c0c6117f5565b6008602052600090815260409020805460019091015463ffffffff81169060ff640100000000820481169165010000000000810482169166010000000000009091041685565b60006126758261267b565b92915050565b60008161268781612ae8565b5050600160a060020a031660009081526008602052604090205490565b60006126ae612b55565b60026004557f536f7672796e537761704e6574776f726b0000000000000000000000000000006126dd81613093565b600160a060020a038781169087161415612741576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f53414d455f534f555243455f54415247455400000000000000000000604482015290519081900360640190fd5b600654600160a060020a031615806128845750600654604080517f3af32abf000000000000000000000000000000000000000000000000000000008152600160a060020a03878116600483015291519190921691633af32abf9160248083019260209291908290030181600087803b1580156127bc57600080fd5b505af11580156127d0573d6000803e3d6000fd5b505050506040513d60208110156127e657600080fd5b505180156128845750600654604080517f3af32abf000000000000000000000000000000000000000000000000000000008152600160a060020a03868116600483015291519190921691633af32abf9160248083019260209291908290030181600087803b15801561285757600080fd5b505af115801561286b573d6000803e3d6000fd5b505050506040513d602081101561288157600080fd5b50515b15156128da576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f4e4f545f57484954454c495354454400000000000000000000000000604482015290519081900360640190fd5b6128e78787878787613861565b6001600455979650505050505050565b6128ff612a98565b60095463ffffffff6401000000009091048116908216111561296b576040805160e560020a62461bcd02815260206004820152601a60248201527f4552525f494e56414c49445f434f4e56455253494f4e5f464545000000000000604482015290519081900360640190fd5b6009546040805163ffffffff6801000000000000000090930483168152918316602083015280517f81cd2ffb37dd237c0e4e2a3de5265fcf9deb43d3e7801e80db9f1ccfba7ee6009281900390910190a16009805463ffffffff90921668010000000000000000026bffffffff000000000000000019909216919091179055565b6129f4612a98565b600054600160a060020a0382811691161415612a5a576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f53414d455f4f574e4552000000000000000000000000000000000000604482015290519081900360640190fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600554600160a060020a031690565b600054600160a060020a03163314610cda576040805160e560020a62461bcd0281526020600482015260116024820152600080516020614943833981519152604482015290519081900360640190fd5b600160a060020a0381166000908152600860205260409020600101546601000000000000900460ff161515610c0c576040805160e560020a62461bcd02815260206004820152601360248201526000805160206148a3833981519152604482015290519081900360640190fd5b600454600114610cda576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f5245454e5452414e4359000000000000000000000000000000000000604482015290519081900360640190fd5b600080600080600080600080612bc36135a0565b612bda600080516020614923833981519152612e74565b9750612bec8a8a63ffffffff6135e216565b9650600095505b8b51861015612e66578b86815181101515612c0a57fe5b9060200190602002015194506008600086600160a060020a0316600160a060020a0316815260200190815260200160002060000154935087600160a060020a0316638074590a8b86600960009054906101000a900463ffffffff168d6040518563ffffffff1660e060020a028152600401808581526020018481526020018363ffffffff1663ffffffff168152602001828152602001945050505050602060405180830381600087803b158015612cc057600080fd5b505af1158015612cd4573d6000803e3d6000fd5b505050506040513d6020811015612cea57600080fd5b50518b519093508b9087908110612cfd57fe5b60209081029091010151831015612d5e576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f5a45524f5f5441524745545f414d4f554e5400000000000000000000604482015290519081900360640190fd5b612d6e848463ffffffff6135e216565b600160a060020a03861660008181526008602052604090208290559092506000805160206149038339815191521415612dd457604051339084156108fc029085906000818181858888f19350505050158015612dce573d6000803e3d6000fd5b50612ddf565b612ddf853385613b34565b60408051848152602081018490528082018990529051600160a060020a0387169133917fbc7d19d505c7ec4db83f3b51f19fb98c4c8a99922e7839d1ee608dfbee29501b9181900360600190a350600160a060020a03841660009081526008602052604090206001015463ffffffff16612e5b87868484613787565b600190950194612bf3565b505050505050505050505050565b600254604080517fbb34534c000000000000000000000000000000000000000000000000000000008152600481018490529051600092600160a060020a03169163bb34534c91602480830192602092919082900301818787803b158015612eda57600080fd5b505af1158015612eee573d6000803e3d6000fd5b505050506040513d6020811015612f0457600080fd5b505192915050565b600160a060020a038116301415610c0c576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f414444524553535f49535f53454c4600000000000000000000000000604482015290519081900360640190fd5b612f75612a98565b82612f7f81613146565b82612f8981613146565b83612f9381612f0c565b61143f868686613b34565b80612fa881612ae8565b600160a060020a0382166000805160206149038339815191521415612fe857600160a060020a03821660009081526008602052604090203031905561308f565b604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a038416916370a082319160248083019260209291908290030181600087803b15801561304957600080fd5b505af115801561305d573d6000803e3d6000fd5b505050506040513d602081101561307357600080fd5b5051600160a060020a0383166000908152600860205260409020555b5050565b61309c81612e74565b600160a060020a03163314610c0c576040805160e560020a62461bcd0281526020600482015260116024820152600080516020614943833981519152604482015290519081900360640190fd5b6130f1610c0f565b15610cda576040805160e560020a62461bcd02815260206004820152600a60248201527f4552525f41435449564500000000000000000000000000000000000000000000604482015290519081900360640190fd5b600160a060020a0381161515610c0c576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b60008163ffffffff161180156131c55750620f424063ffffffff821611155b1515610c0c576040805160e560020a62461bcd02815260206004820152601a60248201527f4552525f494e56414c49445f524553455256455f574549474854000000000000604482015290519081900360640190fd5b613223610c0f565b1515610cda576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f494e4143544956450000000000000000000000000000000000000000604482015290519081900360640190fd5b6007548351600091829181146132c7576040805160e560020a62461bcd02815260206004820152601360248201526000805160206148a3833981519152604482015290519081900360640190fd5b8451811461331f576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f494e56414c49445f414d4f554e540000000000000000000000000000604482015290519081900360640190fd5b600092505b808310156134dd5760086000878581518110151561333e57fe5b6020908102909101810151600160a060020a031682528101919091526040016000206001015460ff66010000000000009091041615156133b6576040805160e560020a62461bcd02815260206004820152601360248201526000805160206148a3833981519152604482015290519081900360640190fd5b600091505b8082101561341e5785828151811015156133d157fe5b90602001906020020151600160a060020a03166007848154811015156133f357fe5b600091825260209091200154600160a060020a031614156134135761341e565b6001909101906133bb565b808210613463576040805160e560020a62461bcd02815260206004820152601360248201526000805160206148a3833981519152604482015290519081900360640190fd5b6000858481518110151561347357fe5b60209081029091010151116134d2576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f494e56414c49445f414d4f554e540000000000000000000000000000604482015290519081900360640190fd5b600190920191613324565b6000841161143f576040805160e560020a62461bcd02815260206004820152600f60248201527f4552525f5a45524f5f414d4f554e540000000000000000000000000000000000604482015290519081900360640190fd5b600081151561354f576135488484613beb565b905061355d565b61355a848484613df2565b90505b9392505050565b60095460009061267590620f42409061359490859068010000000000000000900463ffffffff908116906141b216565b9063ffffffff61422b16565b60075460005b8181101561308f576135da6007828154811015156135c057fe5b600091825260209091200154600160a060020a0316612f9e565b6001016135a6565b60008183101561363c576040805160e560020a62461bcd02815260206004820152600d60248201527f4552525f554e444552464c4f5700000000000000000000000000000000000000604482015290519081900360640190fd5b50900390565b604080517f7472616e7366657246726f6d28616464726573732c616464726573732c75696e81527f74323536290000000000000000000000000000000000000000000000000000006020808301919091528251918290036025018220600160a060020a038088166024850152861660448401526064808401869052845180850390910181526084909301909352810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1990931692909217909152613724908590614299565b50505050565b60008282018381101561355d576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b600554600160a060020a0380851691167f77f29993cf2c084e726f7e802da0719d6a0ade3e204badc7a3ffd57ecb768c246137c585620f42406141b2565b6137d88863ffffffff808816906141b216565b6040805192835260208301919091528051918290030190a350505050565b6001613800611be7565b61ffff1611613859576040805160e560020a62461bcd02815260206004820152601960248201527f4552525f494e56414c49445f524553455256455f434f554e5400000000000000604482015290519081900360640190fd5b610cda614327565b600080600080613872898989611c43565b90935091508215156138ce576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f5a45524f5f5441524745545f414d4f554e5400000000000000000000604482015290519081900360640190fd5b6138d78861267b565b90508083106138e257fe5b600160a060020a038916600080516020614903833981519152141561395d57348714613958576040805160e560020a62461bcd02815260206004820152601760248201527f4552525f4554485f414d4f554e545f4d49534d41544348000000000000000000604482015290519081900360640190fd5b613a65565b34158015613a0f575086613a0c6139738b61267b565b604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a038e16916370a082319160248083019260209291908290030181600087803b1580156139d457600080fd5b505af11580156139e8573d6000803e3d6000fd5b505050506040513d60208110156139fe57600080fd5b50519063ffffffff6135e216565b10155b1515613a65576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f494e56414c49445f414d4f554e540000000000000000000000000000604482015290519081900360640190fd5b613a6e89612f9e565b600160a060020a038816600090815260086020526040902054613a97908463ffffffff6135e216565b600160a060020a0389166000818152600860205260409020919091556000805160206149038339815191521415613b0457604051600160a060020a0386169084156108fc029085906000818181858888f19350505050158015613afe573d6000803e3d6000fd5b50613b0f565b613b0f888685613b34565b613b1d8989888a8787614405565b613b27898961448a565b5090979650505050505050565b604080517f7472616e7366657228616464726573732c75696e74323536290000000000000081528151908190036019018120600160a060020a038516602483015260448083018590528351808403909101815260649092019092526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1990931692909217909152613be6908490614299565b505050565b600080600080613bfa85611bed565b9250600091505b8551821015613de857855160008051602061490383398151915290879084908110613c2857fe5b60209081029091010151600160a060020a031614613c7a57613c7a8683815181101515613c5157fe5b9060200190602002015133308886815181101515613c6b57fe5b90602001906020020151613642565b8482815181101515613c8857fe5b90602001906020020151600860008885815181101515613ca457fe5b6020908102909101810151600160a060020a03168252810191909152604001600020558551869083908110613cd557fe5b90602001906020020151600160a060020a031633600160a060020a03167f4a1a2a6176e9646d9e3157f7c2ab3c499f18337c0b0828cfb28e0a61de4a11f78785815181101515613d2157fe5b906020019060200201518886815181101515613d3957fe5b60209081029091018101516040805193845291830152818101889052519081900360600190a3600860008784815181101515613d7157fe5b6020908102909101810151600160a060020a0316825281019190915260400160002060010154865163ffffffff9091169150613ddd908490889085908110613db557fe5b906020019060200201518785815181101515613dcd57fe5b9060200190602002015184613787565b600190910190613c01565b5090949350505050565b600080600080600080600080600080613e096135a0565b60008051602061490383398151915260005260086020526000805160206148c383398151915254613e40903463ffffffff6135e216565b60008051602061490383398151915260005260086020526000805160206148c383398151915255613e7e600080516020614923833981519152612e74565b9850613e8c898c8f8f614698565b9750613e9e8b8963ffffffff61372a16565b9650600095505b8c518610156141a1578c86815181101515613ebc57fe5b9060200190602002015194506008600086600160a060020a0316600160a060020a0316815260200190815260200160002060000154935088600160a060020a031663ebbb21588c86600960009054906101000a900463ffffffff168c6040518563ffffffff1660e060020a028152600401808581526020018481526020018363ffffffff1663ffffffff168152602001828152602001945050505050602060405180830381600087803b158015613f7257600080fd5b505af1158015613f86573d6000803e3d6000fd5b505050506040513d6020811015613f9c57600080fd5b5051925060008311613ff8576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f5a45524f5f5441524745545f414d4f554e5400000000000000000000604482015290519081900360640190fd5b8b8681518110151561400657fe5b6020908102909101015183111561401957fe5b600160a060020a038516600080516020614903833981519152146140485761404385333086613642565b6140bb565b828c8781518110151561405757fe5b9060200190602002015111156140bb5733600160a060020a03166108fc848e8981518110151561408357fe5b90602001906020020151039081150290604051600060405180830381858888f193505050501580156140b9573d6000803e3d6000fd5b505b6140cb848463ffffffff61372a16565b600160a060020a03861660008181526008602090815260409182902084905581518781529081018490528082018b90529051929450909133917f4a1a2a6176e9646d9e3157f7c2ab3c499f18337c0b0828cfb28e0a61de4a11f7919081900360600190a3600860008e8881518110151561414157fe5b6020908102909101810151600160a060020a03168252810191909152604001600020600101548d5163ffffffff90911691506141969088908f908990811061418557fe5b906020019060200201518484613787565b600190950194613ea5565b50959b9a5050505050505050505050565b6000808315156141c557600091506117a9565b508282028284828115156141d557fe5b041461355d576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b600080808311614285576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f4449564944455f42595f5a45524f0000000000000000000000000000604482015290519081900360640190fd5b828481151561429057fe5b04949350505050565b6142a1614883565b602060405190810160405280600181525090506020818351602085016000875af18015156142ce57600080fd5b5080511515613be6576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f5452414e534645525f4641494c454400000000000000000000000000604482015290519081900360640190fd5b61432f612a98565b6000614339611be7565b61ffff1611614392576040805160e560020a62461bcd02815260206004820152601960248201527f4552525f494e56414c49445f524553455256455f434f554e5400000000000000604482015290519081900360640190fd5b600560009054906101000a9004600160a060020a0316600160a060020a03166379ba50976040518163ffffffff1660e060020a028152600401600060405180830381600087803b1580156143e557600080fd5b505af11580156143f9573d6000803e3d6000fd5b50505050610cda6135a0565b7f8000000000000000000000000000000000000000000000000000000000000000811061442e57fe5b60408051848152602081018490528082018390529051600160a060020a038087169288821692918a16917f276856b36cbc45526a0ba64f44611557a2a8b68662c5388e9fe6d72e86e1c8cb9181900360600190a4505050505050565b6000806000806000806000600560009054906101000a9004600160a060020a0316600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156144e857600080fd5b505af11580156144fc573d6000803e3d6000fd5b505050506040513d602081101561451257600080fd5b5051965061451f8961267b565b955061452a8861267b565b600160a060020a03808b16600090815260086020526040808220600190810154938d1683529120015491965063ffffffff9081169550908116935061457390869086906141b216565b91506145888663ffffffff808616906141b216565b60408051848152602081018390528151929350600160a060020a03808c1693908d16927f77f29993cf2c084e726f7e802da0719d6a0ade3e204badc7a3ffd57ecb768c24928290030190a36145df878a8887613787565b6145eb87898786613787565b604080518881526020810188905263ffffffff8616818301529051600160a060020a038b16917f8a6a7f53b3c8fa1dc4b83e3f1be668c1b251ff8d44cdcb83eb3acec3fec6a788919081900360600190a2604080518881526020810187905263ffffffff8516818301529051600160a060020a038a16917f8a6a7f53b3c8fa1dc4b83e3f1be668c1b251ff8d44cdcb83eb3acec3fec6a788919081900360600190a2505050505050505050565b60008060015b845181101561475b576147036008600087848151811015156146bc57fe5b6020908102909101810151600160a060020a031682528101919091526040016000205485518690859081106146ed57fe5b602090810290910101519063ffffffff6141b216565b61474960086000888681518110151561471857fe5b6020908102909101810151600160a060020a031682528101919091526040016000205486518790859081106146ed57fe5b1015614753578091505b60010161469e565b86600160a060020a0316632f55bdb58760086000898781518110151561477d57fe5b6020908102909101810151600160a060020a0316825281019190915260400160002054600954885163ffffffff909116908990889081106147ba57fe5b906020019060200201516040518563ffffffff1660e060020a028152600401808581526020018481526020018363ffffffff1663ffffffff168152602001828152602001945050505050602060405180830381600087803b15801561481e57600080fd5b505af1158015614832573d6000803e3d6000fd5b505050506040513d602081101561484857600080fd5b5051979650505050505050565b6040805160a08101825260008082526020820181905291810182905260608101829052608081019190915290565b602060405190810160405280600190602082028038833950919291505056004552525f494e56414c49445f5245534552564500000000000000000000000000353c2eb9e53a4a4a6d45d72082ff2e9dc829d1125618772a83eb0e7f86632c42536f7672796e53776170436f6e76657274657255706772616465720000000000000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee536f7672796e53776170466f726d756c610000000000000000000000000000004552525f4143434553535f44454e494544000000000000000000000000000000a165627a7a7230582077c4afb5dbb1930cdbef4451b66030971d5fdd9db5d2ee72732ef2e7eece1eb90029", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x1 PUSH1 0x4 SSTORE PUSH32 0xC0829421C1D260BD3CB3E0F06CFE2D52DB2CE315000000000000000000000000 PUSH1 0x9 SSTORE CALLVALUE DUP1 ISZERO PUSH3 0x3A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH1 0x60 DUP1 PUSH3 0x4BCD DUP4 CODECOPY DUP2 ADD PUSH1 0x40 SWAP1 DUP2 MSTORE DUP2 MLOAD PUSH1 0x20 DUP4 ADD MLOAD SWAP2 SWAP1 SWAP3 ADD MLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND CALLER OR SWAP1 SSTORE DUP3 DUP3 DUP3 DUP3 DUP3 DUP3 DUP3 DUP3 DUP3 DUP2 DUP1 PUSH3 0x8B DUP2 PUSH5 0x100000000 PUSH3 0x13B DUP2 MUL DIV JUMP JUMPDEST POP PUSH1 0x2 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT SWAP3 DUP4 AND DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x3 DUP1 SLOAD SWAP1 SWAP3 AND OR SWAP1 SSTORE DUP3 PUSH3 0xCB DUP2 PUSH5 0x100000000 PUSH3 0x13B DUP2 MUL DIV JUMP JUMPDEST DUP2 PUSH3 0xE0 DUP2 PUSH5 0x100000000 PUSH3 0x1B6 DUP2 MUL DIV JUMP JUMPDEST POP POP PUSH1 0x5 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP5 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 OR SWAP1 SWAP3 SSTORE POP PUSH1 0x9 DUP1 SLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP3 AND PUSH5 0x100000000 MUL PUSH8 0xFFFFFFFF00000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE POP PUSH3 0x22F SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH3 0x1B3 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH3 0xF4240 PUSH4 0xFFFFFFFF DUP3 AND GT ISZERO PUSH3 0x1B3 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F434F4E56455253494F4E5F464545000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x498E DUP1 PUSH3 0x23F PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x263 JUMPI PUSH4 0xFFFFFFFF PUSH1 0xE0 PUSH1 0x2 EXP PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x24C7EC7 DUP2 EQ PUSH2 0x2EF JUMPI DUP1 PUSH4 0xC7D5CD8 EQ PUSH2 0x309 JUMPI DUP1 PUSH4 0xE53AAE9 EQ PUSH2 0x337 JUMPI DUP1 PUSH4 0x12C2ACA4 EQ PUSH2 0x38C JUMPI DUP1 PUSH4 0x19B64015 EQ PUSH2 0x3B5 JUMPI DUP1 PUSH4 0x1CFAB290 EQ PUSH2 0x3E9 JUMPI DUP1 PUSH4 0x1E1401F8 EQ PUSH2 0x40A JUMPI DUP1 PUSH4 0x21E6B53D EQ PUSH2 0x44D JUMPI DUP1 PUSH4 0x22F3E2D4 EQ PUSH2 0x46E JUMPI DUP1 PUSH4 0x2FE8A6AD EQ PUSH2 0x483 JUMPI DUP1 PUSH4 0x38A5E016 EQ PUSH2 0x498 JUMPI DUP1 PUSH4 0x395900D4 EQ PUSH2 0x4AD JUMPI DUP1 PUSH4 0x3E8FF43F EQ PUSH2 0x4D7 JUMPI DUP1 PUSH4 0x415F1240 EQ PUSH2 0x503 JUMPI DUP1 PUSH4 0x49D10B64 EQ PUSH2 0x51B JUMPI DUP1 PUSH4 0x4AF80F0E EQ PUSH2 0x530 JUMPI DUP1 PUSH4 0x54FD4D50 EQ PUSH2 0x551 JUMPI DUP1 PUSH4 0x579CD3CA EQ PUSH2 0x566 JUMPI DUP1 PUSH4 0x5E35359E EQ PUSH2 0x57B JUMPI DUP1 PUSH4 0x61CD756E EQ PUSH2 0x5A5 JUMPI DUP1 PUSH4 0x67B6D57C EQ PUSH2 0x5BA JUMPI DUP1 PUSH4 0x690D8320 EQ PUSH2 0x5DB JUMPI DUP1 PUSH4 0x6A49D2C4 EQ PUSH2 0x5FC JUMPI DUP1 PUSH4 0x6AA5332C EQ PUSH2 0x626 JUMPI DUP1 PUSH4 0x6AD419A8 EQ PUSH2 0x650 JUMPI DUP1 PUSH4 0x71F52BF3 EQ PUSH2 0x671 JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x686 JUMPI DUP1 PUSH4 0x7B103999 EQ PUSH2 0x69B JUMPI DUP1 PUSH4 0x7D8916BD EQ PUSH2 0x6B0 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x733 JUMPI DUP1 PUSH4 0x94C275AD EQ PUSH2 0x748 JUMPI DUP1 PUSH4 0x9B99A8E2 EQ PUSH2 0x75D JUMPI DUP1 PUSH4 0xA60E7724 EQ PUSH2 0x772 JUMPI DUP1 PUSH4 0xAF94B8D8 EQ PUSH2 0x7C7 JUMPI DUP1 PUSH4 0xB127C0A5 EQ PUSH2 0x7F1 JUMPI DUP1 PUSH4 0xB4A176D3 EQ PUSH2 0x884 JUMPI DUP1 PUSH4 0xBBB7E5D8 EQ PUSH2 0x899 JUMPI DUP1 PUSH4 0xBF754558 EQ PUSH2 0x8B4 JUMPI DUP1 PUSH4 0xC45D3D92 EQ PUSH2 0x8C9 JUMPI DUP1 PUSH4 0xCA1D209D EQ PUSH2 0x8DE JUMPI DUP1 PUSH4 0xCDC91C69 EQ PUSH2 0x8E9 JUMPI DUP1 PUSH4 0xD031370B EQ PUSH2 0x8FE JUMPI DUP1 PUSH4 0xD260529C EQ PUSH2 0x916 JUMPI DUP1 PUSH4 0xD3FB73B4 EQ PUSH2 0x92B JUMPI DUP1 PUSH4 0xD4EE1D90 EQ PUSH2 0x940 JUMPI DUP1 PUSH4 0xD55EC697 EQ PUSH2 0x955 JUMPI DUP1 PUSH4 0xD66BD524 EQ PUSH2 0x96A JUMPI DUP1 PUSH4 0xD8959512 EQ PUSH2 0x98B JUMPI DUP1 PUSH4 0xDC8DE379 EQ PUSH2 0x9AC JUMPI DUP1 PUSH4 0xE8DC12FF EQ PUSH2 0x9CD JUMPI DUP1 PUSH4 0xECBCA55D EQ PUSH2 0x9F7 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0xA15 JUMPI DUP1 PUSH4 0xFC0C546A EQ PUSH2 0xA36 JUMPI JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4903 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x0 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH32 0x353C2EB9E53A4A4A6D45D72082FF2E9DC829D1125618772A83EB0E7F86632C43 SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO PUSH2 0x2ED JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A3 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2FB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2ED PUSH1 0x4 CALLDATALOAD ISZERO ISZERO PUSH2 0xA4B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x315 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x31E PUSH2 0xA93 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x343 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x358 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0xA9F JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP6 DUP7 MSTORE PUSH4 0xFFFFFFFF SWAP1 SWAP5 AND PUSH1 0x20 DUP7 ADD MSTORE SWAP2 ISZERO ISZERO DUP5 DUP5 ADD MSTORE ISZERO ISZERO PUSH1 0x60 DUP5 ADD MSTORE ISZERO ISZERO PUSH1 0x80 DUP4 ADD MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0xA0 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x398 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3A1 PUSH2 0xB3A JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3C1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3CD PUSH1 0x4 CALLDATALOAD PUSH2 0xB83 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x31E PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0xBAF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x416 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x434 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0xBE1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x459 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2ED PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0xBFB JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x47A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3A1 PUSH2 0xC0F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x48F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3A1 PUSH2 0xCA9 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4A4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2ED PUSH2 0xCCA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4B9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2ED PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0xCDC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4E3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4EC PUSH2 0xD77 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0xFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x50F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2ED PUSH1 0x4 CALLDATALOAD PUSH2 0xD7C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x527 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2ED PUSH2 0xFC0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x53C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2ED PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x122D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x55D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4EC PUSH2 0x126F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x572 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x31E PUSH2 0x1274 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x587 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2ED PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x128C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5B1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3CD PUSH2 0x1395 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5C6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2ED PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x13A4 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5E7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2ED PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x1447 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x608 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2ED PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH4 0xFFFFFFFF PUSH1 0x24 CALLDATALOAD AND PUSH2 0x154C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x632 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x63E PUSH1 0x4 CALLDATALOAD PUSH2 0x178B JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x65C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2ED PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x17B0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x67D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4EC PUSH2 0x17E6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x692 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2ED PUSH2 0x17F5 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6A7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3CD PUSH2 0x18B6 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x2ED SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP POP PUSH1 0x40 DUP1 MLOAD DUP8 CALLDATALOAD DUP10 ADD DUP1 CALLDATALOAD PUSH1 0x20 DUP2 DUP2 MUL DUP5 DUP2 ADD DUP3 ADD SWAP1 SWAP6 MSTORE DUP2 DUP5 MSTORE SWAP9 SWAP12 SWAP11 SWAP10 DUP10 ADD SWAP9 SWAP3 SWAP8 POP SWAP1 DUP3 ADD SWAP6 POP SWAP4 POP DUP4 SWAP3 POP DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP POP SWAP4 CALLDATALOAD SWAP5 POP PUSH2 0x18C5 SWAP4 POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x73F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3CD PUSH2 0x1BC4 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x754 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x31E PUSH2 0x1BD3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x769 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4EC PUSH2 0x1BE7 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x77E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x63E SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP PUSH2 0x1BED SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7D3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x434 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x1C43 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7FD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 PUSH1 0x24 DUP1 CALLDATALOAD DUP3 DUP2 ADD CALLDATALOAD DUP5 DUP2 MUL DUP1 DUP8 ADD DUP7 ADD SWAP1 SWAP8 MSTORE DUP1 DUP7 MSTORE PUSH2 0x2ED SWAP7 DUP5 CALLDATALOAD SWAP7 CALLDATASIZE SWAP7 PUSH1 0x44 SWAP6 SWAP2 SWAP5 SWAP1 SWAP2 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP POP PUSH1 0x40 DUP1 MLOAD DUP8 CALLDATALOAD DUP10 ADD DUP1 CALLDATALOAD PUSH1 0x20 DUP2 DUP2 MUL DUP5 DUP2 ADD DUP3 ADD SWAP1 SWAP6 MSTORE DUP2 DUP5 MSTORE SWAP9 SWAP12 SWAP11 SWAP10 DUP10 ADD SWAP9 SWAP3 SWAP8 POP SWAP1 DUP3 ADD SWAP6 POP SWAP4 POP DUP4 SWAP3 POP DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP PUSH2 0x1DE8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x890 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2ED PUSH2 0x1F1C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8A5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x63E PUSH1 0x4 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH2 0x1F55 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8C0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3A1 PUSH2 0x1F6F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8D5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3CD PUSH2 0x1F74 JUMP JUMPDEST PUSH2 0x2ED PUSH1 0x4 CALLDATALOAD PUSH2 0x1F83 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2ED PUSH2 0x2490 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x90A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3CD PUSH1 0x4 CALLDATALOAD PUSH2 0x24E9 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x922 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3A1 PUSH2 0xD77 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x937 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3CD PUSH2 0x2511 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x94C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3CD PUSH2 0x2520 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x961 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2ED PUSH2 0x252F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x976 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x358 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x2624 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x997 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x63E PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x266A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9B8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x63E PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x267B JUMP JUMPDEST PUSH2 0x63E PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x44 CALLDATALOAD SWAP1 PUSH1 0x64 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x84 CALLDATALOAD AND PUSH2 0x26A4 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA03 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2ED PUSH4 0xFFFFFFFF PUSH1 0x4 CALLDATALOAD AND PUSH2 0x28F7 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA21 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2ED PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x29EC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA42 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3CD PUSH2 0x2A89 JUMP JUMPDEST PUSH2 0xA53 PUSH2 0x2A98 JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD SWAP2 ISZERO ISZERO PUSH21 0x10000000000000000000000000000000000000000 MUL PUSH21 0xFF0000000000000000000000000000000000000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH4 0xFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0xAAF PUSH2 0x4855 JUMP JUMPDEST POP POP POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP2 MLOAD PUSH1 0xA0 DUP2 ADD DUP4 MSTORE DUP2 SLOAD DUP1 DUP3 MSTORE PUSH1 0x1 SWAP1 SWAP3 ADD SLOAD PUSH4 0xFFFFFFFF DUP2 AND SWAP5 DUP3 ADD DUP6 SWAP1 MSTORE PUSH1 0xFF PUSH5 0x100000000 DUP3 DIV DUP2 AND ISZERO ISZERO SWAP5 DUP4 ADD SWAP5 SWAP1 SWAP5 MSTORE PUSH6 0x10000000000 DUP2 DIV DUP5 AND ISZERO ISZERO PUSH1 0x60 DUP4 ADD MSTORE PUSH7 0x1000000000000 SWAP1 DIV SWAP1 SWAP3 AND ISZERO ISZERO PUSH1 0x80 SWAP1 SWAP3 ADD DUP3 SWAP1 MSTORE SWAP6 SWAP2 SWAP5 POP SWAP2 SWAP3 POP DUP3 SWAP2 SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4903 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x0 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH32 0x353C2EB9E53A4A4A6D45D72082FF2E9DC829D1125618772A83EB0E7F86632C43 SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x7 DUP3 DUP2 SLOAD DUP2 LT ISZERO ISZERO PUSH2 0xB94 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0xBBB DUP2 PUSH2 0x2AE8 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH4 0xFFFFFFFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xBEF DUP6 DUP6 DUP6 PUSH2 0x1C43 JUMP JUMPDEST SWAP2 POP SWAP2 POP SWAP4 POP SWAP4 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xC03 PUSH2 0x2A98 JUMP JUMPDEST PUSH2 0xC0C DUP2 PUSH2 0x13A4 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 ADDRESS PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x8DA5CB5B PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC6E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xC82 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xC98 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH2 0xCD2 PUSH2 0x2A98 JUMP JUMPDEST PUSH2 0xCDA PUSH2 0x2490 JUMP JUMPDEST JUMP JUMPDEST PUSH2 0xCE4 PUSH2 0x2A98 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x5E35359E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP6 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP3 ADD DUP6 SWAP1 MSTORE SWAP2 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP2 PUSH4 0x5E35359E SWAP2 PUSH1 0x64 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xD5A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xD6E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 PUSH1 0x0 PUSH2 0xD8A PUSH2 0x2B55 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH1 0x0 DUP5 GT PUSH2 0xDE7 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xF PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5A45524F5F414D4F554E540000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x18160DDD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xE3A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xE4E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xE64 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xA24835D100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP9 SWAP1 MSTORE SWAP1 MLOAD SWAP3 SWAP6 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP2 AND SWAP2 PUSH4 0xA24835D1 SWAP2 PUSH1 0x44 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xED5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xEE9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x7 DUP1 SLOAD SWAP1 POP PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0xF1C JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CODESIZE DUP4 CODECOPY ADD SWAP1 POP JUMPDEST POP SWAP2 POP PUSH1 0x0 SWAP1 POP JUMPDEST DUP2 MLOAD DUP2 LT ISZERO PUSH2 0xF4F JUMPI PUSH1 0x1 DUP3 DUP3 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xF3D JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MSTORE PUSH1 0x1 ADD PUSH2 0xF24 JUMP JUMPDEST PUSH2 0xFB5 PUSH1 0x7 DUP1 SLOAD DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD DUP1 ISZERO PUSH2 0xFA8 JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xF8A JUMPI JUMPDEST POP POP POP POP POP DUP4 DUP6 DUP8 PUSH2 0x2BAF JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0x4 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ DUP1 PUSH2 0xFF5 JUMPI POP PUSH1 0x3 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x1039 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4943 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x1062 PUSH32 0x436F6E7472616374526567697374727900000000000000000000000000000000 PUSH2 0x2E74 JUMP JUMPDEST PUSH1 0x2 SLOAD SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP4 AND SWAP2 AND EQ DUP1 ISZERO SWAP1 PUSH2 0x108B JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x10E1 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245474953545259000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0xBB34534C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH32 0x436F6E7472616374526567697374727900000000000000000000000000000000 PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP2 PUSH4 0xBB34534C SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1165 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1179 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x118F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ ISZERO PUSH2 0x11F0 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245474953545259000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP5 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP3 DUP4 AND OR SWAP1 SWAP3 SSTORE SWAP1 SWAP2 AND SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x1235 PUSH2 0x2A98 JUMP JUMPDEST DUP1 PUSH2 0x123F DUP2 PUSH2 0x2F0C JUMP JUMPDEST POP PUSH1 0x6 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x20 DUP2 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH9 0x10000000000000000 SWAP1 DIV PUSH4 0xFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1296 PUSH2 0x2B55 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH2 0x12A3 PUSH2 0x2A98 JUMP JUMPDEST PUSH2 0x12BA PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48E3 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x2E74 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD SWAP1 SWAP2 POP PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 PUSH2 0x12F7 JUMPI POP PUSH2 0x12F5 PUSH2 0xC0F JUMP JUMPDEST ISZERO JUMPDEST DUP1 PUSH2 0x130F JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ JUMPDEST ISZERO ISZERO PUSH2 0x1353 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4943 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x135E DUP5 DUP5 DUP5 PUSH2 0x2F6D JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0xFB5 JUMPI PUSH2 0xFB5 DUP5 PUSH2 0x2F9E JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH2 0x13AC PUSH2 0x2A98 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48E3 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x13C4 DUP2 PUSH2 0x3093 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xF2FDE38B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP2 PUSH4 0xF2FDE38B SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x142B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x143F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1451 PUSH2 0x2B55 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH2 0x145E PUSH2 0x2A98 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4903 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x1476 DUP2 PUSH2 0x2AE8 JUMP JUMPDEST PUSH2 0x148D PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48E3 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x2E74 JUMP JUMPDEST SWAP2 POP PUSH2 0x1497 PUSH2 0xC0F JUMP JUMPDEST ISZERO DUP1 PUSH2 0x14B0 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 DUP2 AND SWAP2 AND EQ JUMPDEST ISZERO ISZERO PUSH2 0x14F4 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4943 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP1 ADDRESS BALANCE DUP1 ISZERO PUSH2 0x8FC MUL SWAP2 PUSH1 0x0 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x152A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH2 0x1542 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4903 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x2F9E JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0x4 SSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1556 PUSH2 0x2A98 JUMP JUMPDEST PUSH2 0x155E PUSH2 0x30E9 JUMP JUMPDEST DUP3 PUSH2 0x1568 DUP2 PUSH2 0x3146 JUMP JUMPDEST DUP4 PUSH2 0x1572 DUP2 PUSH2 0x2F0C JUMP JUMPDEST DUP4 PUSH2 0x157C DUP2 PUSH2 0x31A6 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 DUP2 AND SWAP2 AND EQ DUP1 ISZERO SWAP1 PUSH2 0x15C0 JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x1604 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A3 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x9 SLOAD PUSH4 0xFFFFFFFF SWAP1 DUP2 AND PUSH3 0xF4240 SUB DUP2 AND SWAP1 DUP7 AND GT ISZERO PUSH2 0x166F JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F574549474854000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0xFFFF PUSH2 0x167A PUSH2 0x1BE7 JUMP JUMPDEST PUSH2 0xFFFF AND LT PUSH2 0x16D3 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F434F554E5400000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP2 DUP2 SSTORE PUSH1 0x1 SWAP1 DUP2 ADD DUP1 SLOAD PUSH7 0xFF000000000000 NOT PUSH4 0xFFFFFFFF DUP1 DUP9 AND PUSH4 0xFFFFFFFF NOT SWAP4 DUP5 AND OR SWAP2 SWAP1 SWAP2 AND PUSH7 0x1000000000000 OR SWAP1 SWAP3 SSTORE PUSH1 0x7 DUP1 SLOAD SWAP4 DUP5 ADD DUP2 SSTORE SWAP1 SWAP4 MSTORE PUSH32 0xA66CC928B5EDB82AF9BD49922954155AB7B0942694BEA4CE44661D9A8736C688 SWAP1 SWAP2 ADD DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 SWAP4 OR SWAP1 SWAP3 SSTORE PUSH1 0x9 DUP1 SLOAD DUP1 DUP5 AND SWAP1 SWAP5 ADD SWAP1 SWAP3 AND SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 JUMPDEST PUSH1 0x0 DUP2 GT ISZERO PUSH2 0x17A9 JUMPI PUSH1 0x1 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0xA SWAP1 DIV PUSH2 0x1790 JUMP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x9 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND PUSH13 0x1000000000000000000000000 MUL PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH2 0x17F0 PUSH2 0x1BE7 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x1845 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4943 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND SWAP4 SWAP1 SWAP2 AND SWAP2 PUSH32 0x343765429AEA5A34B3FF6A3785A98A5ABB2597ACA87BFBB58632C173D585373A SWAP2 LOG3 PUSH1 0x1 DUP1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND OR SWAP1 SWAP2 SSTORE AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x18D2 PUSH2 0x2B55 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH2 0x18DF PUSH2 0x321B JUMP JUMPDEST PUSH2 0x18EA DUP7 DUP7 DUP7 PUSH2 0x3279 JUMP JUMPDEST PUSH1 0x0 SWAP3 POP JUMPDEST DUP6 MLOAD DUP4 LT ISZERO PUSH2 0x19A8 JUMPI DUP6 MLOAD PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4903 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP1 DUP8 SWAP1 DUP6 SWAP1 DUP2 LT PUSH2 0x1916 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ ISZERO PUSH2 0x199D JUMPI CALLVALUE DUP6 DUP5 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x193E JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MLOAD EQ PUSH2 0x199D JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4554485F414D4F554E545F4D49534D41544348000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 PUSH2 0x18EF JUMP JUMPDEST PUSH1 0x0 CALLVALUE GT ISZERO PUSH2 0x1A4D JUMPI PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4903 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x0 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH32 0x353C2EB9E53A4A4A6D45D72082FF2E9DC829D1125618772A83EB0E7F86632C43 SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO PUSH2 0x1A4D JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4E4F5F4554485F524553455256450000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x18160DDD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1AA0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1AB4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1ACA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 POP PUSH2 0x1AD9 DUP7 DUP7 DUP5 PUSH2 0x3535 JUMP JUMPDEST SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0x1B33 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F52455455524E5F544F4F5F4C4F570000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x867904B400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP2 PUSH4 0x867904B4 SWAP2 PUSH1 0x44 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1B9F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1BB3 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x1 PUSH1 0x4 SSTORE POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH5 0x100000000 SWAP1 DIV PUSH4 0xFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x7 SLOAD SWAP1 JUMP JUMPDEST DUP1 MLOAD PUSH1 0x0 SWAP1 DUP2 SWAP1 DUP2 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1C2A JUMPI PUSH2 0x1C1E DUP6 DUP3 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x1C0F JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH2 0x178B JUMP JUMPDEST SWAP1 SWAP3 ADD SWAP2 PUSH1 0x1 ADD PUSH2 0x1BF6 JUMP JUMPDEST PUSH1 0x1 PUSH2 0x1C36 DUP5 DUP5 PUSH2 0x1F55 JUMP JUMPDEST SUB PUSH1 0xA EXP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x1C51 PUSH2 0x321B JUMP JUMPDEST DUP7 PUSH2 0x1C5B DUP2 PUSH2 0x2AE8 JUMP JUMPDEST DUP7 PUSH2 0x1C65 DUP2 PUSH2 0x2AE8 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP10 DUP2 AND SWAP1 DUP10 AND EQ ISZERO PUSH2 0x1CC9 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F534F555243455F54415247455400000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x1CE0 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4923 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x2E74 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x94491FAB PUSH2 0x1CF7 DUP12 PUSH2 0x267B JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP13 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH4 0xFFFFFFFF AND PUSH2 0x1D22 DUP13 PUSH2 0x267B JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP14 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 ADD SLOAD DUP2 MLOAD PUSH4 0xFFFFFFFF DUP10 DUP2 AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP3 MSTORE PUSH1 0x4 DUP3 ADD SWAP9 SWAP1 SWAP9 MSTORE SWAP6 DUP8 AND PUSH1 0x24 DUP8 ADD MSTORE PUSH1 0x44 DUP7 ADD SWAP5 SWAP1 SWAP5 MSTORE SWAP5 SWAP1 SWAP3 AND PUSH1 0x64 DUP5 ADD MSTORE PUSH1 0x84 DUP4 ADD DUP14 SWAP1 MSTORE SWAP3 MLOAD PUSH1 0xA4 DUP1 DUP5 ADD SWAP5 SWAP3 SWAP4 SWAP2 SWAP3 SWAP2 DUP4 SWAP1 SUB ADD SWAP1 DUP3 SWAP1 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1D9E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1DB2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1DC8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP4 POP PUSH2 0x1DD5 DUP5 PUSH2 0x3564 JUMP JUMPDEST SWAP4 DUP5 SWAP1 SUB SWAP10 SWAP4 SWAP9 POP SWAP3 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1DF2 PUSH2 0x2B55 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH2 0x1DFF PUSH2 0x321B JUMP JUMPDEST PUSH2 0x1E0A DUP4 DUP4 DUP7 PUSH2 0x3279 JUMP JUMPDEST PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x18160DDD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1E5D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1E71 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1E87 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xA24835D100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP9 SWAP1 MSTORE SWAP1 MLOAD SWAP3 SWAP4 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP2 AND SWAP2 PUSH4 0xA24835D1 SWAP2 PUSH1 0x44 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1EF8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1F0C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0xFB5 DUP4 DUP4 DUP4 DUP8 PUSH2 0x2BAF JUMP JUMPDEST PUSH2 0x1F24 PUSH2 0x2A98 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x2 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x2 DUP2 DIV DUP5 ADD DUP2 ISZERO ISZERO PUSH2 0x1F67 JUMPI INVALID JUMPDEST DIV SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x1 DUP2 JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x1F9A PUSH2 0x2B55 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH2 0x1FA7 PUSH2 0x35A0 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4903 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x0 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48C3 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SLOAD PUSH2 0x1FDE SWAP1 CALLVALUE PUSH4 0xFFFFFFFF PUSH2 0x35E2 AND JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4903 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48C3 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP3 SWAP1 SWAP3 SSTORE PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x18160DDD00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP4 PUSH4 0x18160DDD SWAP4 PUSH1 0x4 DUP1 DUP5 ADD SWAP5 SWAP3 SWAP4 DUP4 SWAP1 SUB ADD SWAP1 DUP3 SWAP1 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2068 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x207C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2092 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP10 POP PUSH2 0x20AD PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4923 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x2E74 JUMP JUMPDEST PUSH1 0x7 SLOAD SWAP1 SWAP10 POP SWAP8 POP PUSH1 0x0 SWAP7 POP JUMPDEST DUP8 DUP8 LT ISZERO PUSH2 0x23FA JUMPI PUSH1 0x7 DUP1 SLOAD DUP9 SWAP1 DUP2 LT PUSH2 0x20D0 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP6 POP PUSH1 0x8 PUSH1 0x0 DUP8 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD SWAP5 POP DUP9 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xEBBB2158 DUP12 DUP8 PUSH1 0x9 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH4 0xFFFFFFFF AND DUP16 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH4 0xFFFFFFFF AND PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP5 POP POP POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x219A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x21AE JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x21C4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP4 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4903 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ ISZERO PUSH2 0x2326 JUMPI DUP4 CALLVALUE GT ISZERO PUSH2 0x2224 JUMPI PUSH1 0x40 MLOAD CALLER SWAP1 CALLVALUE DUP7 SWAP1 SUB DUP1 ISZERO PUSH2 0x8FC MUL SWAP2 PUSH1 0x0 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x221E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH2 0x2321 JUMP JUMPDEST DUP4 CALLVALUE LT ISZERO PUSH2 0x2321 JUMPI CALLVALUE ISZERO PUSH2 0x2282 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4554485F56414C55450000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x9 SLOAD PUSH2 0x22AA SWAP1 PUSH13 0x1000000000000000000000000 SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER ADDRESS DUP8 PUSH2 0x3642 JUMP JUMPDEST PUSH1 0x9 PUSH1 0xC SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x2E1A7D4D DUP6 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2308 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x231C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMPDEST PUSH2 0x2332 JUMP JUMPDEST PUSH2 0x2332 DUP7 CALLER ADDRESS DUP8 PUSH2 0x3642 JUMP JUMPDEST PUSH2 0x2342 DUP6 DUP6 PUSH4 0xFFFFFFFF PUSH2 0x372A AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP2 SWAP1 SSTORE SWAP3 POP PUSH2 0x236F DUP11 DUP13 PUSH4 0xFFFFFFFF PUSH2 0x372A AND JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP7 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP7 SWAP1 MSTORE DUP1 DUP3 ADD DUP4 SWAP1 MSTORE SWAP1 MLOAD SWAP2 SWAP4 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 AND SWAP2 CALLER SWAP2 PUSH32 0x4A1A2A6176E9646D9E3157F7C2AB3C499F18337C0B0828CFB28E0A61DE4A11F7 SWAP2 SWAP1 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG3 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH4 0xFFFFFFFF AND PUSH2 0x23EF DUP3 DUP8 DUP6 DUP5 PUSH2 0x3787 JUMP JUMPDEST PUSH1 0x1 SWAP1 SWAP7 ADD SWAP6 PUSH2 0x20BA JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x867904B400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP15 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP2 PUSH4 0x867904B4 SWAP2 PUSH1 0x44 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2466 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x247A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x1 PUSH1 0x4 SSTORE POP POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x2498 PUSH2 0x2A98 JUMP JUMPDEST PUSH2 0x24A0 PUSH2 0x37F6 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x24B7 PUSH2 0xD77 JUMP JUMPDEST PUSH2 0xFFFF AND PUSH32 0x6B08C2E2C9969E55A647A764DB9B554D64DC42F1A704DA11A6D5B129AD163F2C PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 JUMP JUMPDEST PUSH1 0x7 DUP1 SLOAD DUP3 SWAP1 DUP2 LT PUSH2 0x24F7 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP1 POP DUP2 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2539 PUSH2 0x2A98 JUMP JUMPDEST PUSH2 0x2550 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48E3 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x2E74 JUMP JUMPDEST PUSH1 0x5 SLOAD SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x256A PUSH2 0xD77 JUMP JUMPDEST PUSH2 0xFFFF AND PUSH32 0x6B08C2E2C9969E55A647A764DB9B554D64DC42F1A704DA11A6D5B129AD163F2C PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH2 0x25A3 DUP2 PUSH2 0x29EC JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x90F58C9600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 AND SWAP2 PUSH4 0x90F58C96 SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2604 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2618 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0xC0C PUSH2 0x17F5 JUMP JUMPDEST PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD PUSH4 0xFFFFFFFF DUP2 AND SWAP1 PUSH1 0xFF PUSH5 0x100000000 DUP3 DIV DUP2 AND SWAP2 PUSH6 0x10000000000 DUP2 DIV DUP3 AND SWAP2 PUSH7 0x1000000000000 SWAP1 SWAP2 DIV AND DUP6 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2675 DUP3 PUSH2 0x267B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0x2687 DUP2 PUSH2 0x2AE8 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x26AE PUSH2 0x2B55 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH32 0x536F7672796E537761704E6574776F726B000000000000000000000000000000 PUSH2 0x26DD DUP2 PUSH2 0x3093 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 DUP2 AND SWAP1 DUP8 AND EQ ISZERO PUSH2 0x2741 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F534F555243455F54415247455400000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND ISZERO DUP1 PUSH2 0x2884 JUMPI POP PUSH1 0x6 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x3AF32ABF00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP2 PUSH4 0x3AF32ABF SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x27BC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x27D0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x27E6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD DUP1 ISZERO PUSH2 0x2884 JUMPI POP PUSH1 0x6 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x3AF32ABF00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP2 PUSH4 0x3AF32ABF SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2857 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x286B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2881 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD JUMPDEST ISZERO ISZERO PUSH2 0x28DA JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4E4F545F57484954454C495354454400000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x28E7 DUP8 DUP8 DUP8 DUP8 DUP8 PUSH2 0x3861 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x4 SSTORE SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x28FF PUSH2 0x2A98 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH4 0xFFFFFFFF PUSH5 0x100000000 SWAP1 SWAP2 DIV DUP2 AND SWAP1 DUP3 AND GT ISZERO PUSH2 0x296B JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F434F4E56455253494F4E5F464545000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH4 0xFFFFFFFF PUSH9 0x10000000000000000 SWAP1 SWAP4 DIV DUP4 AND DUP2 MSTORE SWAP2 DUP4 AND PUSH1 0x20 DUP4 ADD MSTORE DUP1 MLOAD PUSH32 0x81CD2FFB37DD237C0E4E2A3DE5265FCF9DEB43D3E7801E80DB9F1CCFBA7EE600 SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG1 PUSH1 0x9 DUP1 SLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP3 AND PUSH9 0x10000000000000000 MUL PUSH12 0xFFFFFFFF0000000000000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x29F4 PUSH2 0x2A98 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x2A5A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F4F574E4552000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0xCDA JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4943 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO PUSH2 0xC0C JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A3 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x4 SLOAD PUSH1 0x1 EQ PUSH2 0xCDA JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5245454E5452414E4359000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x2BC3 PUSH2 0x35A0 JUMP JUMPDEST PUSH2 0x2BDA PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4923 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x2E74 JUMP JUMPDEST SWAP8 POP PUSH2 0x2BEC DUP11 DUP11 PUSH4 0xFFFFFFFF PUSH2 0x35E2 AND JUMP JUMPDEST SWAP7 POP PUSH1 0x0 SWAP6 POP JUMPDEST DUP12 MLOAD DUP7 LT ISZERO PUSH2 0x2E66 JUMPI DUP12 DUP7 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x2C0A JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD SWAP5 POP PUSH1 0x8 PUSH1 0x0 DUP7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD SWAP4 POP DUP8 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x8074590A DUP12 DUP7 PUSH1 0x9 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH4 0xFFFFFFFF AND DUP14 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH4 0xFFFFFFFF AND PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP5 POP POP POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2CC0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2CD4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2CEA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD DUP12 MLOAD SWAP1 SWAP4 POP DUP12 SWAP1 DUP8 SWAP1 DUP2 LT PUSH2 0x2CFD JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MLOAD DUP4 LT ISZERO PUSH2 0x2D5E JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5A45524F5F5441524745545F414D4F554E5400000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x2D6E DUP5 DUP5 PUSH4 0xFFFFFFFF PUSH2 0x35E2 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP3 SWAP1 SSTORE SWAP1 SWAP3 POP PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4903 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ ISZERO PUSH2 0x2DD4 JUMPI PUSH1 0x40 MLOAD CALLER SWAP1 DUP5 ISZERO PUSH2 0x8FC MUL SWAP1 DUP6 SWAP1 PUSH1 0x0 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x2DCE JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH2 0x2DDF JUMP JUMPDEST PUSH2 0x2DDF DUP6 CALLER DUP6 PUSH2 0x3B34 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP5 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 SWAP1 MSTORE DUP1 DUP3 ADD DUP10 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND SWAP2 CALLER SWAP2 PUSH32 0xBC7D19D505C7EC4DB83F3B51F19FB98C4C8A99922E7839D1EE608DFBEE29501B SWAP2 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG3 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH4 0xFFFFFFFF AND PUSH2 0x2E5B DUP8 DUP7 DUP5 DUP5 PUSH2 0x3787 JUMP JUMPDEST PUSH1 0x1 SWAP1 SWAP6 ADD SWAP5 PUSH2 0x2BF3 JUMP JUMPDEST POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xBB34534C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP2 PUSH4 0xBB34534C SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2EDA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2EEE JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2F04 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ADDRESS EQ ISZERO PUSH2 0xC0C JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F414444524553535F49535F53454C4600000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x2F75 PUSH2 0x2A98 JUMP JUMPDEST DUP3 PUSH2 0x2F7F DUP2 PUSH2 0x3146 JUMP JUMPDEST DUP3 PUSH2 0x2F89 DUP2 PUSH2 0x3146 JUMP JUMPDEST DUP4 PUSH2 0x2F93 DUP2 PUSH2 0x2F0C JUMP JUMPDEST PUSH2 0x143F DUP7 DUP7 DUP7 PUSH2 0x3B34 JUMP JUMPDEST DUP1 PUSH2 0x2FA8 DUP2 PUSH2 0x2AE8 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 AND PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4903 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ ISZERO PUSH2 0x2FE8 JUMPI PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 ADDRESS BALANCE SWAP1 SSTORE PUSH2 0x308F JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3049 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x305D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x3073 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x309C DUP2 PUSH2 0x2E74 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0xC0C JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4943 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x30F1 PUSH2 0xC0F JUMP JUMPDEST ISZERO PUSH2 0xCDA JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xA PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F41435449564500000000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0xC0C JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 PUSH4 0xFFFFFFFF AND GT DUP1 ISZERO PUSH2 0x31C5 JUMPI POP PUSH3 0xF4240 PUSH4 0xFFFFFFFF DUP3 AND GT ISZERO JUMPDEST ISZERO ISZERO PUSH2 0xC0C JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F574549474854000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x3223 PUSH2 0xC0F JUMP JUMPDEST ISZERO ISZERO PUSH2 0xCDA JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E4143544956450000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x7 SLOAD DUP4 MLOAD PUSH1 0x0 SWAP2 DUP3 SWAP2 DUP2 EQ PUSH2 0x32C7 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A3 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP5 MLOAD DUP2 EQ PUSH2 0x331F JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F414D4F554E540000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 SWAP3 POP JUMPDEST DUP1 DUP4 LT ISZERO PUSH2 0x34DD JUMPI PUSH1 0x8 PUSH1 0x0 DUP8 DUP6 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x333E JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP3 MSTORE DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH1 0xFF PUSH7 0x1000000000000 SWAP1 SWAP2 DIV AND ISZERO ISZERO PUSH2 0x33B6 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A3 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 SWAP2 POP JUMPDEST DUP1 DUP3 LT ISZERO PUSH2 0x341E JUMPI DUP6 DUP3 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x33D1 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x7 DUP5 DUP2 SLOAD DUP2 LT ISZERO ISZERO PUSH2 0x33F3 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ ISZERO PUSH2 0x3413 JUMPI PUSH2 0x341E JUMP JUMPDEST PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x33BB JUMP JUMPDEST DUP1 DUP3 LT PUSH2 0x3463 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A3 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP6 DUP5 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3473 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MLOAD GT PUSH2 0x34D2 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F414D4F554E540000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 PUSH2 0x3324 JUMP JUMPDEST PUSH1 0x0 DUP5 GT PUSH2 0x143F JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xF PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5A45524F5F414D4F554E540000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO PUSH2 0x354F JUMPI PUSH2 0x3548 DUP5 DUP5 PUSH2 0x3BEB JUMP JUMPDEST SWAP1 POP PUSH2 0x355D JUMP JUMPDEST PUSH2 0x355A DUP5 DUP5 DUP5 PUSH2 0x3DF2 JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x0 SWAP1 PUSH2 0x2675 SWAP1 PUSH3 0xF4240 SWAP1 PUSH2 0x3594 SWAP1 DUP6 SWAP1 PUSH9 0x10000000000000000 SWAP1 DIV PUSH4 0xFFFFFFFF SWAP1 DUP2 AND SWAP1 PUSH2 0x41B2 AND JUMP JUMPDEST SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x422B AND JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x308F JUMPI PUSH2 0x35DA PUSH1 0x7 DUP3 DUP2 SLOAD DUP2 LT ISZERO ISZERO PUSH2 0x35C0 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x2F9E JUMP JUMPDEST PUSH1 0x1 ADD PUSH2 0x35A6 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT ISZERO PUSH2 0x363C JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F554E444552464C4F5700000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP SWAP1 SUB SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x7472616E7366657246726F6D28616464726573732C616464726573732C75696E DUP2 MSTORE PUSH32 0x7432353629000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP3 MLOAD SWAP2 DUP3 SWAP1 SUB PUSH1 0x25 ADD DUP3 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP9 AND PUSH1 0x24 DUP6 ADD MSTORE DUP7 AND PUSH1 0x44 DUP5 ADD MSTORE PUSH1 0x64 DUP1 DUP5 ADD DUP7 SWAP1 MSTORE DUP5 MLOAD DUP1 DUP6 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x84 SWAP1 SWAP4 ADD SWAP1 SWAP4 MSTORE DUP2 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE PUSH2 0x3724 SWAP1 DUP6 SWAP1 PUSH2 0x4299 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 ADD DUP4 DUP2 LT ISZERO PUSH2 0x355D JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP6 AND SWAP2 AND PUSH32 0x77F29993CF2C084E726F7E802DA0719D6A0ADE3E204BADC7A3FFD57ECB768C24 PUSH2 0x37C5 DUP6 PUSH3 0xF4240 PUSH2 0x41B2 JUMP JUMPDEST PUSH2 0x37D8 DUP9 PUSH4 0xFFFFFFFF DUP1 DUP9 AND SWAP1 PUSH2 0x41B2 AND JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB ADD SWAP1 LOG3 POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH2 0x3800 PUSH2 0x1BE7 JUMP JUMPDEST PUSH2 0xFFFF AND GT PUSH2 0x3859 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F434F554E5400000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0xCDA PUSH2 0x4327 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x3872 DUP10 DUP10 DUP10 PUSH2 0x1C43 JUMP JUMPDEST SWAP1 SWAP4 POP SWAP2 POP DUP3 ISZERO ISZERO PUSH2 0x38CE JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5A45524F5F5441524745545F414D4F554E5400000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x38D7 DUP9 PUSH2 0x267B JUMP JUMPDEST SWAP1 POP DUP1 DUP4 LT PUSH2 0x38E2 JUMPI INVALID JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP10 AND PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4903 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ ISZERO PUSH2 0x395D JUMPI CALLVALUE DUP8 EQ PUSH2 0x3958 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4554485F414D4F554E545F4D49534D41544348000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x3A65 JUMP JUMPDEST CALLVALUE ISZERO DUP1 ISZERO PUSH2 0x3A0F JUMPI POP DUP7 PUSH2 0x3A0C PUSH2 0x3973 DUP12 PUSH2 0x267B JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP15 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x39D4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x39E8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x39FE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x35E2 AND JUMP JUMPDEST LT ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x3A65 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F414D4F554E540000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x3A6E DUP10 PUSH2 0x2F9E JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x3A97 SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0x35E2 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP10 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4903 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ ISZERO PUSH2 0x3B04 JUMPI PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND SWAP1 DUP5 ISZERO PUSH2 0x8FC MUL SWAP1 DUP6 SWAP1 PUSH1 0x0 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x3AFE JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH2 0x3B0F JUMP JUMPDEST PUSH2 0x3B0F DUP9 DUP7 DUP6 PUSH2 0x3B34 JUMP JUMPDEST PUSH2 0x3B1D DUP10 DUP10 DUP9 DUP11 DUP8 DUP8 PUSH2 0x4405 JUMP JUMPDEST PUSH2 0x3B27 DUP10 DUP10 PUSH2 0x448A JUMP JUMPDEST POP SWAP1 SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x7472616E7366657228616464726573732C75696E743235362900000000000000 DUP2 MSTORE DUP2 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x19 ADD DUP2 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x64 SWAP1 SWAP3 ADD SWAP1 SWAP3 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE PUSH2 0x3BE6 SWAP1 DUP5 SWAP1 PUSH2 0x4299 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x3BFA DUP6 PUSH2 0x1BED JUMP JUMPDEST SWAP3 POP PUSH1 0x0 SWAP2 POP JUMPDEST DUP6 MLOAD DUP3 LT ISZERO PUSH2 0x3DE8 JUMPI DUP6 MLOAD PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4903 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP1 DUP8 SWAP1 DUP5 SWAP1 DUP2 LT PUSH2 0x3C28 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ PUSH2 0x3C7A JUMPI PUSH2 0x3C7A DUP7 DUP4 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3C51 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD CALLER ADDRESS DUP9 DUP7 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3C6B JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH2 0x3642 JUMP JUMPDEST DUP5 DUP3 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3C88 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x8 PUSH1 0x0 DUP9 DUP6 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3CA4 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP3 MSTORE DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 SSTORE DUP6 MLOAD DUP7 SWAP1 DUP4 SWAP1 DUP2 LT PUSH2 0x3CD5 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH32 0x4A1A2A6176E9646D9E3157F7C2AB3C499F18337C0B0828CFB28E0A61DE4A11F7 DUP8 DUP6 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3D21 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD DUP9 DUP7 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3D39 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x40 DUP1 MLOAD SWAP4 DUP5 MSTORE SWAP2 DUP4 ADD MSTORE DUP2 DUP2 ADD DUP9 SWAP1 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG3 PUSH1 0x8 PUSH1 0x0 DUP8 DUP5 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3D71 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP3 MSTORE DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD SLOAD DUP7 MLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP2 AND SWAP2 POP PUSH2 0x3DDD SWAP1 DUP5 SWAP1 DUP9 SWAP1 DUP6 SWAP1 DUP2 LT PUSH2 0x3DB5 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD DUP8 DUP6 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3DCD JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD DUP5 PUSH2 0x3787 JUMP JUMPDEST PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x3C01 JUMP JUMPDEST POP SWAP1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x3E09 PUSH2 0x35A0 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4903 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x0 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48C3 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SLOAD PUSH2 0x3E40 SWAP1 CALLVALUE PUSH4 0xFFFFFFFF PUSH2 0x35E2 AND JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4903 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x0 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48C3 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SSTORE PUSH2 0x3E7E PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4923 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x2E74 JUMP JUMPDEST SWAP9 POP PUSH2 0x3E8C DUP10 DUP13 DUP16 DUP16 PUSH2 0x4698 JUMP JUMPDEST SWAP8 POP PUSH2 0x3E9E DUP12 DUP10 PUSH4 0xFFFFFFFF PUSH2 0x372A AND JUMP JUMPDEST SWAP7 POP PUSH1 0x0 SWAP6 POP JUMPDEST DUP13 MLOAD DUP7 LT ISZERO PUSH2 0x41A1 JUMPI DUP13 DUP7 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3EBC JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD SWAP5 POP PUSH1 0x8 PUSH1 0x0 DUP7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD SWAP4 POP DUP9 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xEBBB2158 DUP13 DUP7 PUSH1 0x9 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH4 0xFFFFFFFF AND DUP13 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH4 0xFFFFFFFF AND PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP5 POP POP POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3F72 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3F86 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x3F9C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP3 POP PUSH1 0x0 DUP4 GT PUSH2 0x3FF8 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5A45524F5F5441524745545F414D4F554E5400000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP12 DUP7 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x4006 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MLOAD DUP4 GT ISZERO PUSH2 0x4019 JUMPI INVALID JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4903 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ PUSH2 0x4048 JUMPI PUSH2 0x4043 DUP6 CALLER ADDRESS DUP7 PUSH2 0x3642 JUMP JUMPDEST PUSH2 0x40BB JUMP JUMPDEST DUP3 DUP13 DUP8 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x4057 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD GT ISZERO PUSH2 0x40BB JUMPI CALLER PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x8FC DUP5 DUP15 DUP10 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x4083 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD SUB SWAP1 DUP2 ISZERO MUL SWAP1 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x40B9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP JUMPDEST PUSH2 0x40CB DUP5 DUP5 PUSH4 0xFFFFFFFF PUSH2 0x372A AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP5 SWAP1 SSTORE DUP2 MLOAD DUP8 DUP2 MSTORE SWAP1 DUP2 ADD DUP5 SWAP1 MSTORE DUP1 DUP3 ADD DUP12 SWAP1 MSTORE SWAP1 MLOAD SWAP3 SWAP5 POP SWAP1 SWAP2 CALLER SWAP2 PUSH32 0x4A1A2A6176E9646D9E3157F7C2AB3C499F18337C0B0828CFB28E0A61DE4A11F7 SWAP2 SWAP1 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG3 PUSH1 0x8 PUSH1 0x0 DUP15 DUP9 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x4141 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP3 MSTORE DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD SLOAD DUP14 MLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP2 AND SWAP2 POP PUSH2 0x4196 SWAP1 DUP9 SWAP1 DUP16 SWAP1 DUP10 SWAP1 DUP2 LT PUSH2 0x4185 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD DUP5 DUP5 PUSH2 0x3787 JUMP JUMPDEST PUSH1 0x1 SWAP1 SWAP6 ADD SWAP5 PUSH2 0x3EA5 JUMP JUMPDEST POP SWAP6 SWAP12 SWAP11 POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 ISZERO ISZERO PUSH2 0x41C5 JUMPI PUSH1 0x0 SWAP2 POP PUSH2 0x17A9 JUMP JUMPDEST POP DUP3 DUP3 MUL DUP3 DUP5 DUP3 DUP2 ISZERO ISZERO PUSH2 0x41D5 JUMPI INVALID JUMPDEST DIV EQ PUSH2 0x355D JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP4 GT PUSH2 0x4285 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4449564944455F42595F5A45524F0000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP3 DUP5 DUP2 ISZERO ISZERO PUSH2 0x4290 JUMPI INVALID JUMPDEST DIV SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0x42A1 PUSH2 0x4883 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE POP SWAP1 POP PUSH1 0x20 DUP2 DUP4 MLOAD PUSH1 0x20 DUP6 ADD PUSH1 0x0 DUP8 GAS CALL DUP1 ISZERO ISZERO PUSH2 0x42CE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD ISZERO ISZERO PUSH2 0x3BE6 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5452414E534645525F4641494C454400000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x432F PUSH2 0x2A98 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4339 PUSH2 0x1BE7 JUMP JUMPDEST PUSH2 0xFFFF AND GT PUSH2 0x4392 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F434F554E5400000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x79BA5097 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x43E5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x43F9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0xCDA PUSH2 0x35A0 JUMP JUMPDEST PUSH32 0x8000000000000000000000000000000000000000000000000000000000000000 DUP2 LT PUSH2 0x442E JUMPI INVALID JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP5 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 SWAP1 MSTORE DUP1 DUP3 ADD DUP4 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP8 AND SWAP3 DUP9 DUP3 AND SWAP3 SWAP2 DUP11 AND SWAP2 PUSH32 0x276856B36CBC45526A0BA64F44611557A2A8B68662C5388E9FE6D72E86E1C8CB SWAP2 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG4 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x18160DDD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x44E8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x44FC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x4512 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP7 POP PUSH2 0x451F DUP10 PUSH2 0x267B JUMP JUMPDEST SWAP6 POP PUSH2 0x452A DUP9 PUSH2 0x267B JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 PUSH1 0x1 SWAP1 DUP2 ADD SLOAD SWAP4 DUP14 AND DUP4 MSTORE SWAP2 KECCAK256 ADD SLOAD SWAP2 SWAP7 POP PUSH4 0xFFFFFFFF SWAP1 DUP2 AND SWAP6 POP SWAP1 DUP2 AND SWAP4 POP PUSH2 0x4573 SWAP1 DUP7 SWAP1 DUP7 SWAP1 PUSH2 0x41B2 AND JUMP JUMPDEST SWAP2 POP PUSH2 0x4588 DUP7 PUSH4 0xFFFFFFFF DUP1 DUP7 AND SWAP1 PUSH2 0x41B2 AND JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP5 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP4 SWAP1 MSTORE DUP2 MLOAD SWAP3 SWAP4 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP13 AND SWAP4 SWAP1 DUP14 AND SWAP3 PUSH32 0x77F29993CF2C084E726F7E802DA0719D6A0ADE3E204BADC7A3FFD57ECB768C24 SWAP3 DUP3 SWAP1 SUB ADD SWAP1 LOG3 PUSH2 0x45DF DUP8 DUP11 DUP9 DUP8 PUSH2 0x3787 JUMP JUMPDEST PUSH2 0x45EB DUP8 DUP10 DUP8 DUP7 PUSH2 0x3787 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP9 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP9 SWAP1 MSTORE PUSH4 0xFFFFFFFF DUP7 AND DUP2 DUP4 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND SWAP2 PUSH32 0x8A6A7F53B3C8FA1DC4B83E3F1BE668C1B251FF8D44CDCB83EB3ACEC3FEC6A788 SWAP2 SWAP1 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG2 PUSH1 0x40 DUP1 MLOAD DUP9 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP8 SWAP1 MSTORE PUSH4 0xFFFFFFFF DUP6 AND DUP2 DUP4 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP11 AND SWAP2 PUSH32 0x8A6A7F53B3C8FA1DC4B83E3F1BE668C1B251FF8D44CDCB83EB3ACEC3FEC6A788 SWAP2 SWAP1 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG2 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x1 JUMPDEST DUP5 MLOAD DUP2 LT ISZERO PUSH2 0x475B JUMPI PUSH2 0x4703 PUSH1 0x8 PUSH1 0x0 DUP8 DUP5 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x46BC JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP3 MSTORE DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 SLOAD DUP6 MLOAD DUP7 SWAP1 DUP6 SWAP1 DUP2 LT PUSH2 0x46ED JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MLOAD SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x41B2 AND JUMP JUMPDEST PUSH2 0x4749 PUSH1 0x8 PUSH1 0x0 DUP9 DUP7 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x4718 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP3 MSTORE DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 SLOAD DUP7 MLOAD DUP8 SWAP1 DUP6 SWAP1 DUP2 LT PUSH2 0x46ED JUMPI INVALID JUMPDEST LT ISZERO PUSH2 0x4753 JUMPI DUP1 SWAP2 POP JUMPDEST PUSH1 0x1 ADD PUSH2 0x469E JUMP JUMPDEST DUP7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x2F55BDB5 DUP8 PUSH1 0x8 PUSH1 0x0 DUP10 DUP8 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x477D JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP3 MSTORE DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH1 0x9 SLOAD DUP9 MLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP2 AND SWAP1 DUP10 SWAP1 DUP9 SWAP1 DUP2 LT PUSH2 0x47BA JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH4 0xFFFFFFFF AND PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP5 POP POP POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x481E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x4832 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x4848 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xA0 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE SWAP2 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x60 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 SWAP1 PUSH1 0x20 DUP3 MUL DUP1 CODESIZE DUP4 CODECOPY POP SWAP2 SWAP3 SWAP2 POP POP JUMP STOP GASLIMIT MSTORE MSTORE 0x5f 0x49 0x4e JUMP COINBASE 0x4c 0x49 DIFFICULTY 0x5f MSTORE GASLIMIT MSTORE8 GASLIMIT MSTORE JUMP GASLIMIT STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP CALLDATALOAD EXTCODECOPY 0x2e 0xb9 0xe5 GASPRICE 0x4a 0x4a PUSH14 0x45D72082FF2E9DC829D112561877 0x2a DUP4 0xeb 0xe PUSH32 0x86632C42536F7672796E53776170436F6E766572746572557067726164657200 STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee MSTORE8 PUSH16 0x7672796E53776170466F726D756C6100 STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP GASLIMIT MSTORE MSTORE 0x5f COINBASE NUMBER NUMBER GASLIMIT MSTORE8 MSTORE8 0x5f DIFFICULTY GASLIMIT 0x4e 0x49 GASLIMIT DIFFICULTY STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 PUSH24 0xC4AFB5DBB1930CDBEF4451B66030971D5FDD9DB5D2EE7273 0x2e CALLCODE 0xe7 0xee 0xce 0x1e 0xb9 STOP 0x29 ", - "sourceMap": "101:327:36:-;;;249:1:68;362:32;;519:89:23;2700:30:4;519:89:23;168:168:36;5:2:-1;;;;30:1;27;20:12;5:2;168:168:36;;;;;;;;;;;;;;;;;;;;;;;;;488:5:66;:18;;-1:-1:-1;;;;;;488:18:66;496:10;488:18;;;168:168:36;;;;;;;;;;;475:23:72;168:168:36;475:13:72;;;;:23;:::i;:::-;-1:-1:-1;1931:8:60;:39;;-1:-1:-1;;;;;1931:39:60;;;-1:-1:-1;;;;;;1931:39:60;;;;;;;;1974:12;:43;;;;;;;;5395:7:4;475:23:72;5395:7:4;475:13:72;;;;:23;:::i;:::-;5457:17:4;6403:35;5457:17;6403:19;;;;:35;:::i;:::-;-1:-1:-1;;5480:6:4;:16;;-1:-1:-1;;;;;5480:16:4;;;-1:-1:-1;;;;;;5480:16:4;;;;;;;;;;-1:-1:-1;5500:16:4;:36;;;;;;;;-1:-1:-1;;5500:36:4;;;;;;;;;-1:-1:-1;101:327:36;;-1:-1:-1;;;;;;;;101:327:36;553:117:72;-1:-1:-1;;;;;620:22:72;;;;612:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;553:117;:::o;6493:156:4:-;1826:7;6571:43;;;;;6563:82;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;101:327:36;;;;;;;" - }, - "deployedBytecode": { - "linkReferences": {}, - "object": "6080604052600436106102635763ffffffff60e060020a600035041663024c7ec781146102ef5780630c7d5cd8146103095780630e53aae91461033757806312c2aca41461038c57806319b64015146103b55780631cfab290146103e95780631e1401f81461040a57806321e6b53d1461044d57806322f3e2d41461046e5780632fe8a6ad1461048357806338a5e01614610498578063395900d4146104ad5780633e8ff43f146104d7578063415f12401461050357806349d10b641461051b5780634af80f0e1461053057806354fd4d5014610551578063579cd3ca146105665780635e35359e1461057b57806361cd756e146105a557806367b6d57c146105ba578063690d8320146105db5780636a49d2c4146105fc5780636aa5332c146106265780636ad419a81461065057806371f52bf31461067157806379ba5097146106865780637b1039991461069b5780637d8916bd146106b05780638da5cb5b1461073357806394c275ad146107485780639b99a8e21461075d578063a60e772414610772578063af94b8d8146107c7578063b127c0a5146107f1578063b4a176d314610884578063bbb7e5d814610899578063bf754558146108b4578063c45d3d92146108c9578063ca1d209d146108de578063cdc91c69146108e9578063d031370b146108fe578063d260529c14610916578063d3fb73b41461092b578063d4ee1d9014610940578063d55ec69714610955578063d66bd5241461096a578063d89595121461098b578063dc8de379146109ac578063e8dc12ff146109cd578063ecbca55d146109f7578063f2fde38b14610a15578063fc0c546a14610a36575b60008051602061490383398151915260005260086020527f353c2eb9e53a4a4a6d45d72082ff2e9dc829d1125618772a83eb0e7f86632c43546601000000000000900460ff1615156102ed576040805160e560020a62461bcd02815260206004820152601360248201526000805160206148a3833981519152604482015290519081900360640190fd5b005b3480156102fb57600080fd5b506102ed6004351515610a4b565b34801561031557600080fd5b5061031e610a93565b6040805163ffffffff9092168252519081900360200190f35b34801561034357600080fd5b50610358600160a060020a0360043516610a9f565b6040805195865263ffffffff9094166020860152911515848401521515606084015215156080830152519081900360a00190f35b34801561039857600080fd5b506103a1610b3a565b604080519115158252519081900360200190f35b3480156103c157600080fd5b506103cd600435610b83565b60408051600160a060020a039092168252519081900360200190f35b3480156103f557600080fd5b5061031e600160a060020a0360043516610baf565b34801561041657600080fd5b50610434600160a060020a0360043581169060243516604435610be1565b6040805192835260208301919091528051918290030190f35b34801561045957600080fd5b506102ed600160a060020a0360043516610bfb565b34801561047a57600080fd5b506103a1610c0f565b34801561048f57600080fd5b506103a1610ca9565b3480156104a457600080fd5b506102ed610cca565b3480156104b957600080fd5b506102ed600160a060020a0360043581169060243516604435610cdc565b3480156104e357600080fd5b506104ec610d77565b6040805161ffff9092168252519081900360200190f35b34801561050f57600080fd5b506102ed600435610d7c565b34801561052757600080fd5b506102ed610fc0565b34801561053c57600080fd5b506102ed600160a060020a036004351661122d565b34801561055d57600080fd5b506104ec61126f565b34801561057257600080fd5b5061031e611274565b34801561058757600080fd5b506102ed600160a060020a036004358116906024351660443561128c565b3480156105b157600080fd5b506103cd611395565b3480156105c657600080fd5b506102ed600160a060020a03600435166113a4565b3480156105e757600080fd5b506102ed600160a060020a0360043516611447565b34801561060857600080fd5b506102ed600160a060020a036004351663ffffffff6024351661154c565b34801561063257600080fd5b5061063e60043561178b565b60408051918252519081900360200190f35b34801561065c57600080fd5b506102ed600160a060020a03600435166117b0565b34801561067d57600080fd5b506104ec6117e6565b34801561069257600080fd5b506102ed6117f5565b3480156106a757600080fd5b506103cd6118b6565b604080516020600480358082013583810280860185019096528085526102ed95369593946024949385019291829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a99890198929750908201955093508392508501908490808284375094975050933594506118c59350505050565b34801561073f57600080fd5b506103cd611bc4565b34801561075457600080fd5b5061031e611bd3565b34801561076957600080fd5b506104ec611be7565b34801561077e57600080fd5b506040805160206004803580820135838102808601850190965280855261063e95369593946024949385019291829185019084908082843750949750611bed9650505050505050565b3480156107d357600080fd5b50610434600160a060020a0360043581169060243516604435611c43565b3480156107fd57600080fd5b506040805160206004602480358281013584810280870186019097528086526102ed96843596369660449591949091019291829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750949750611de89650505050505050565b34801561089057600080fd5b506102ed611f1c565b3480156108a557600080fd5b5061063e600435602435611f55565b3480156108c057600080fd5b506103a1611f6f565b3480156108d557600080fd5b506103cd611f74565b6102ed600435611f83565b3480156108f557600080fd5b506102ed612490565b34801561090a57600080fd5b506103cd6004356124e9565b34801561092257600080fd5b506103a1610d77565b34801561093757600080fd5b506103cd612511565b34801561094c57600080fd5b506103cd612520565b34801561096157600080fd5b506102ed61252f565b34801561097657600080fd5b50610358600160a060020a0360043516612624565b34801561099757600080fd5b5061063e600160a060020a036004351661266a565b3480156109b857600080fd5b5061063e600160a060020a036004351661267b565b61063e600160a060020a0360043581169060243581169060443590606435811690608435166126a4565b348015610a0357600080fd5b506102ed63ffffffff600435166128f7565b348015610a2157600080fd5b506102ed600160a060020a03600435166129ec565b348015610a4257600080fd5b506103cd612a89565b610a53612a98565b60038054911515740100000000000000000000000000000000000000000274ff000000000000000000000000000000000000000019909216919091179055565b60095463ffffffff1681565b6000806000806000610aaf614855565b50505050600160a060020a03929092166000908152600860209081526040808320815160a081018352815480825260019092015463ffffffff811694820185905260ff64010000000082048116151594830194909452650100000000008104841615156060830152660100000000000090049092161515608090920182905295919450919250829190565b60008051602061490383398151915260005260086020527f353c2eb9e53a4a4a6d45d72082ff2e9dc829d1125618772a83eb0e7f86632c43546601000000000000900460ff1690565b6000600782815481101515610b9457fe5b600091825260209091200154600160a060020a031692915050565b600081610bbb81612ae8565b5050600160a060020a031660009081526008602052604090206001015463ffffffff1690565b600080610bef858585611c43565b91509150935093915050565b610c03612a98565b610c0c816113a4565b50565b600030600160a060020a0316600560009054906101000a9004600160a060020a0316600160a060020a0316638da5cb5b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610c6e57600080fd5b505af1158015610c82573d6000803e3d6000fd5b505050506040513d6020811015610c9857600080fd5b5051600160a060020a031614905090565b60035474010000000000000000000000000000000000000000900460ff1681565b610cd2612a98565b610cda612490565b565b610ce4612a98565b600554604080517f5e35359e000000000000000000000000000000000000000000000000000000008152600160a060020a03868116600483015285811660248301526044820185905291519190921691635e35359e91606480830192600092919082900301818387803b158015610d5a57600080fd5b505af1158015610d6e573d6000803e3d6000fd5b50505050505050565b600190565b600060606000610d8a612b55565b600260045560008411610de7576040805160e560020a62461bcd02815260206004820152600f60248201527f4552525f5a45524f5f414d4f554e540000000000000000000000000000000000604482015290519081900360640190fd5b600560009054906101000a9004600160a060020a0316600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610e3a57600080fd5b505af1158015610e4e573d6000803e3d6000fd5b505050506040513d6020811015610e6457600080fd5b5051600554604080517fa24835d1000000000000000000000000000000000000000000000000000000008152336004820152602481018890529051929550600160a060020a039091169163a24835d19160448082019260009290919082900301818387803b158015610ed557600080fd5b505af1158015610ee9573d6000803e3d6000fd5b50505050600780549050604051908082528060200260200182016040528015610f1c578160200160208202803883390190505b509150600090505b8151811015610f4f5760018282815181101515610f3d57fe5b60209081029091010152600101610f24565b610fb56007805480602002602001604051908101604052809291908181526020018280548015610fa857602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311610f8a575b5050505050838587612baf565b505060016004555050565b60008054600160a060020a0316331480610ff5575060035474010000000000000000000000000000000000000000900460ff16155b1515611039576040805160e560020a62461bcd0281526020600482015260116024820152600080516020614943833981519152604482015290519081900360640190fd5b6110627f436f6e7472616374526567697374727900000000000000000000000000000000612e74565b600254909150600160a060020a0380831691161480159061108b5750600160a060020a03811615155b15156110e1576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e56414c49445f5245474953545259000000000000000000000000604482015290519081900360640190fd5b604080517fbb34534c0000000000000000000000000000000000000000000000000000000081527f436f6e747261637452656769737472790000000000000000000000000000000060048201529051600091600160a060020a0384169163bb34534c9160248082019260209290919082900301818787803b15801561116557600080fd5b505af1158015611179573d6000803e3d6000fd5b505050506040513d602081101561118f57600080fd5b5051600160a060020a031614156111f0576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e56414c49445f5245474953545259000000000000000000000000604482015290519081900360640190fd5b6002805460038054600160a060020a0380841673ffffffffffffffffffffffffffffffffffffffff19928316179092559091169216919091179055565b611235612a98565b8061123f81612f0c565b506006805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b602081565b60095468010000000000000000900463ffffffff1681565b6000611296612b55565b60026004556112a3612a98565b6112ba6000805160206148e3833981519152612e74565b600160a060020a0385166000908152600860205260409020600101549091506601000000000000900460ff1615806112f757506112f5610c0f565b155b8061130f5750600054600160a060020a038281169116145b1515611353576040805160e560020a62461bcd0281526020600482015260116024820152600080516020614943833981519152604482015290519081900360640190fd5b61135e848484612f6d565b600160a060020a0384166000908152600860205260409020600101546601000000000000900460ff1615610fb557610fb584612f9e565b600354600160a060020a031681565b6113ac612a98565b6000805160206148e38339815191526113c481613093565b600554604080517ff2fde38b000000000000000000000000000000000000000000000000000000008152600160a060020a0385811660048301529151919092169163f2fde38b91602480830192600092919082900301818387803b15801561142b57600080fd5b505af115801561143f573d6000803e3d6000fd5b505050505050565b6000611451612b55565b600260045561145e612a98565b60008051602061490383398151915261147681612ae8565b61148d6000805160206148e3833981519152612e74565b9150611497610c0f565b15806114b05750600054600160a060020a038381169116145b15156114f4576040805160e560020a62461bcd0281526020600482015260116024820152600080516020614943833981519152604482015290519081900360640190fd5b604051600160a060020a03841690303180156108fc02916000818181858888f1935050505015801561152a573d6000803e3d6000fd5b50611542600080516020614903833981519152612f9e565b5050600160045550565b6000611556612a98565b61155e6130e9565b8261156881613146565b8361157281612f0c565b8361157c816131a6565b600554600160a060020a038781169116148015906115c05750600160a060020a0386166000908152600860205260409020600101546601000000000000900460ff16155b1515611604576040805160e560020a62461bcd02815260206004820152601360248201526000805160206148a3833981519152604482015290519081900360640190fd5b60095463ffffffff908116620f4240038116908616111561166f576040805160e560020a62461bcd02815260206004820152601a60248201527f4552525f494e56414c49445f524553455256455f574549474854000000000000604482015290519081900360640190fd5b61ffff61167a611be7565b61ffff16106116d3576040805160e560020a62461bcd02815260206004820152601960248201527f4552525f494e56414c49445f524553455256455f434f554e5400000000000000604482015290519081900360640190fd5b505050600160a060020a0390921660008181526008602052604081208181556001908101805466ff0000000000001963ffffffff80881663ffffffff1993841617919091166601000000000000179092556007805493840181559093527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688909101805473ffffffffffffffffffffffffffffffffffffffff191690931790925560098054808416909401909216921691909117905550565b600080825b60008111156117a95760019190910190600a9004611790565b5092915050565b60098054600160a060020a039092166c01000000000000000000000000026bffffffffffffffffffffffff909216919091179055565b60006117f0611be7565b905090565b600154600160a060020a03163314611845576040805160e560020a62461bcd0281526020600482015260116024820152600080516020614943833981519152604482015290519081900360640190fd5b60015460008054604051600160a060020a0393841693909116917f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91a3600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b600254600160a060020a031681565b60008060006118d2612b55565b60026004556118df61321b565b6118ea868686613279565b600092505b85518310156119a85785516000805160206149038339815191529087908590811061191657fe5b90602001906020020151600160a060020a0316141561199d5734858481518110151561193e57fe5b602090810290910101511461199d576040805160e560020a62461bcd02815260206004820152601760248201527f4552525f4554485f414d4f554e545f4d49534d41544348000000000000000000604482015290519081900360640190fd5b6001909201916118ef565b6000341115611a4d5760008051602061490383398151915260005260086020527f353c2eb9e53a4a4a6d45d72082ff2e9dc829d1125618772a83eb0e7f86632c43546601000000000000900460ff161515611a4d576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f4e4f5f4554485f524553455256450000000000000000000000000000604482015290519081900360640190fd5b600560009054906101000a9004600160a060020a0316600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015611aa057600080fd5b505af1158015611ab4573d6000803e3d6000fd5b505050506040513d6020811015611aca57600080fd5b50519150611ad9868684613535565b905083811015611b33576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f52455455524e5f544f4f5f4c4f570000000000000000000000000000604482015290519081900360640190fd5b600554604080517f867904b4000000000000000000000000000000000000000000000000000000008152336004820152602481018490529051600160a060020a039092169163867904b49160448082019260009290919082900301818387803b158015611b9f57600080fd5b505af1158015611bb3573d6000803e3d6000fd5b505060016004555050505050505050565b600054600160a060020a031681565b600954640100000000900463ffffffff1681565b60075490565b80516000908190815b81811015611c2a57611c1e8582815181101515611c0f57fe5b9060200190602002015161178b565b90920191600101611bf6565b6001611c368484611f55565b03600a0a95945050505050565b600080600080611c5161321b565b86611c5b81612ae8565b86611c6581612ae8565b600160a060020a038981169089161415611cc9576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f53414d455f534f555243455f54415247455400000000000000000000604482015290519081900360640190fd5b611ce0600080516020614923833981519152612e74565b600160a060020a03166394491fab611cf78b61267b565b600160a060020a038c1660009081526008602052604090206001015463ffffffff16611d228c61267b565b600160a060020a038d16600090815260086020908152604080832060010154815163ffffffff89811660e060020a028252600482019890985295871660248701526044860194909452949092166064840152608483018d9052925160a48084019492939192918390030190829087803b158015611d9e57600080fd5b505af1158015611db2573d6000803e3d6000fd5b505050506040513d6020811015611dc857600080fd5b50519350611dd584613564565b9384900399939850929650505050505050565b6000611df2612b55565b6002600455611dff61321b565b611e0a838386613279565b600560009054906101000a9004600160a060020a0316600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015611e5d57600080fd5b505af1158015611e71573d6000803e3d6000fd5b505050506040513d6020811015611e8757600080fd5b5051600554604080517fa24835d1000000000000000000000000000000000000000000000000000000008152336004820152602481018890529051929350600160a060020a039091169163a24835d19160448082019260009290919082900301818387803b158015611ef857600080fd5b505af1158015611f0c573d6000803e3d6000fd5b50505050610fb583838387612baf565b611f24612a98565b6003546002805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055565b600081600281048401811515611f6757fe5b049392505050565b600181565b600654600160a060020a031681565b600080600080600080600080600080611f9a612b55565b6002600455611fa76135a0565b60008051602061490383398151915260005260086020526000805160206148c383398151915254611fde903463ffffffff6135e216565b6000805160206149038339815191526000908152600860209081526000805160206148c383398151915292909255600554604080517f18160ddd0000000000000000000000000000000000000000000000000000000081529051600160a060020a03909216936318160ddd9360048084019492938390030190829087803b15801561206857600080fd5b505af115801561207c573d6000803e3d6000fd5b505050506040513d602081101561209257600080fd5b505199506120ad600080516020614923833981519152612e74565b6007549099509750600096505b878710156123fa5760078054889081106120d057fe5b9060005260206000200160009054906101000a9004600160a060020a031695506008600087600160a060020a0316600160a060020a0316815260200190815260200160002060000154945088600160a060020a031663ebbb21588b87600960009054906101000a900463ffffffff168f6040518563ffffffff1660e060020a028152600401808581526020018481526020018363ffffffff1663ffffffff168152602001828152602001945050505050602060405180830381600087803b15801561219a57600080fd5b505af11580156121ae573d6000803e3d6000fd5b505050506040513d60208110156121c457600080fd5b50519350600160a060020a038616600080516020614903833981519152141561232657833411156122245760405133903486900380156108fc02916000818181858888f1935050505015801561221e573d6000803e3d6000fd5b50612321565b83341015612321573415612282576040805160e560020a62461bcd02815260206004820152601560248201527f4552525f494e56414c49445f4554485f56414c55450000000000000000000000604482015290519081900360640190fd5b6009546122aa906c010000000000000000000000009004600160a060020a0316333087613642565b6009600c9054906101000a9004600160a060020a0316600160a060020a0316632e1a7d4d856040518263ffffffff1660e060020a02815260040180828152602001915050600060405180830381600087803b15801561230857600080fd5b505af115801561231c573d6000803e3d6000fd5b505050505b612332565b61233286333087613642565b612342858563ffffffff61372a16565b600160a060020a0387166000908152600860205260409020819055925061236f8a8c63ffffffff61372a16565b60408051868152602081018690528082018390529051919350600160a060020a0388169133917f4a1a2a6176e9646d9e3157f7c2ab3c499f18337c0b0828cfb28e0a61de4a11f7919081900360600190a350600160a060020a03851660009081526008602052604090206001015463ffffffff166123ef82878584613787565b6001909601956120ba565b600554604080517f867904b4000000000000000000000000000000000000000000000000000000008152336004820152602481018e90529051600160a060020a039092169163867904b49160448082019260009290919082900301818387803b15801561246657600080fd5b505af115801561247a573d6000803e3d6000fd5b5050600160045550505050505050505050505050565b612498612a98565b6124a06137f6565b600554600190600160a060020a03166124b7610d77565b61ffff167f6b08c2e2c9969e55a647a764db9b554d64dc42f1a704da11a6d5b129ad163f2c60405160405180910390a4565b60078054829081106124f757fe5b600091825260209091200154600160a060020a0316905081565b600554600160a060020a031681565b600154600160a060020a031681565b6000612539612a98565b6125506000805160206148e3833981519152612e74565b600554909150600090600160a060020a031661256a610d77565b61ffff167f6b08c2e2c9969e55a647a764db9b554d64dc42f1a704da11a6d5b129ad163f2c60405160405180910390a46125a3816129ec565b604080517f90f58c96000000000000000000000000000000000000000000000000000000008152602060048201529051600160a060020a038316916390f58c9691602480830192600092919082900301818387803b15801561260457600080fd5b505af1158015612618573d6000803e3d6000fd5b50505050610c0c6117f5565b6008602052600090815260409020805460019091015463ffffffff81169060ff640100000000820481169165010000000000810482169166010000000000009091041685565b60006126758261267b565b92915050565b60008161268781612ae8565b5050600160a060020a031660009081526008602052604090205490565b60006126ae612b55565b60026004557f536f7672796e537761704e6574776f726b0000000000000000000000000000006126dd81613093565b600160a060020a038781169087161415612741576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f53414d455f534f555243455f54415247455400000000000000000000604482015290519081900360640190fd5b600654600160a060020a031615806128845750600654604080517f3af32abf000000000000000000000000000000000000000000000000000000008152600160a060020a03878116600483015291519190921691633af32abf9160248083019260209291908290030181600087803b1580156127bc57600080fd5b505af11580156127d0573d6000803e3d6000fd5b505050506040513d60208110156127e657600080fd5b505180156128845750600654604080517f3af32abf000000000000000000000000000000000000000000000000000000008152600160a060020a03868116600483015291519190921691633af32abf9160248083019260209291908290030181600087803b15801561285757600080fd5b505af115801561286b573d6000803e3d6000fd5b505050506040513d602081101561288157600080fd5b50515b15156128da576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f4e4f545f57484954454c495354454400000000000000000000000000604482015290519081900360640190fd5b6128e78787878787613861565b6001600455979650505050505050565b6128ff612a98565b60095463ffffffff6401000000009091048116908216111561296b576040805160e560020a62461bcd02815260206004820152601a60248201527f4552525f494e56414c49445f434f4e56455253494f4e5f464545000000000000604482015290519081900360640190fd5b6009546040805163ffffffff6801000000000000000090930483168152918316602083015280517f81cd2ffb37dd237c0e4e2a3de5265fcf9deb43d3e7801e80db9f1ccfba7ee6009281900390910190a16009805463ffffffff90921668010000000000000000026bffffffff000000000000000019909216919091179055565b6129f4612a98565b600054600160a060020a0382811691161415612a5a576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f53414d455f4f574e4552000000000000000000000000000000000000604482015290519081900360640190fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600554600160a060020a031690565b600054600160a060020a03163314610cda576040805160e560020a62461bcd0281526020600482015260116024820152600080516020614943833981519152604482015290519081900360640190fd5b600160a060020a0381166000908152600860205260409020600101546601000000000000900460ff161515610c0c576040805160e560020a62461bcd02815260206004820152601360248201526000805160206148a3833981519152604482015290519081900360640190fd5b600454600114610cda576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f5245454e5452414e4359000000000000000000000000000000000000604482015290519081900360640190fd5b600080600080600080600080612bc36135a0565b612bda600080516020614923833981519152612e74565b9750612bec8a8a63ffffffff6135e216565b9650600095505b8b51861015612e66578b86815181101515612c0a57fe5b9060200190602002015194506008600086600160a060020a0316600160a060020a0316815260200190815260200160002060000154935087600160a060020a0316638074590a8b86600960009054906101000a900463ffffffff168d6040518563ffffffff1660e060020a028152600401808581526020018481526020018363ffffffff1663ffffffff168152602001828152602001945050505050602060405180830381600087803b158015612cc057600080fd5b505af1158015612cd4573d6000803e3d6000fd5b505050506040513d6020811015612cea57600080fd5b50518b519093508b9087908110612cfd57fe5b60209081029091010151831015612d5e576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f5a45524f5f5441524745545f414d4f554e5400000000000000000000604482015290519081900360640190fd5b612d6e848463ffffffff6135e216565b600160a060020a03861660008181526008602052604090208290559092506000805160206149038339815191521415612dd457604051339084156108fc029085906000818181858888f19350505050158015612dce573d6000803e3d6000fd5b50612ddf565b612ddf853385613b34565b60408051848152602081018490528082018990529051600160a060020a0387169133917fbc7d19d505c7ec4db83f3b51f19fb98c4c8a99922e7839d1ee608dfbee29501b9181900360600190a350600160a060020a03841660009081526008602052604090206001015463ffffffff16612e5b87868484613787565b600190950194612bf3565b505050505050505050505050565b600254604080517fbb34534c000000000000000000000000000000000000000000000000000000008152600481018490529051600092600160a060020a03169163bb34534c91602480830192602092919082900301818787803b158015612eda57600080fd5b505af1158015612eee573d6000803e3d6000fd5b505050506040513d6020811015612f0457600080fd5b505192915050565b600160a060020a038116301415610c0c576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f414444524553535f49535f53454c4600000000000000000000000000604482015290519081900360640190fd5b612f75612a98565b82612f7f81613146565b82612f8981613146565b83612f9381612f0c565b61143f868686613b34565b80612fa881612ae8565b600160a060020a0382166000805160206149038339815191521415612fe857600160a060020a03821660009081526008602052604090203031905561308f565b604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a038416916370a082319160248083019260209291908290030181600087803b15801561304957600080fd5b505af115801561305d573d6000803e3d6000fd5b505050506040513d602081101561307357600080fd5b5051600160a060020a0383166000908152600860205260409020555b5050565b61309c81612e74565b600160a060020a03163314610c0c576040805160e560020a62461bcd0281526020600482015260116024820152600080516020614943833981519152604482015290519081900360640190fd5b6130f1610c0f565b15610cda576040805160e560020a62461bcd02815260206004820152600a60248201527f4552525f41435449564500000000000000000000000000000000000000000000604482015290519081900360640190fd5b600160a060020a0381161515610c0c576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b60008163ffffffff161180156131c55750620f424063ffffffff821611155b1515610c0c576040805160e560020a62461bcd02815260206004820152601a60248201527f4552525f494e56414c49445f524553455256455f574549474854000000000000604482015290519081900360640190fd5b613223610c0f565b1515610cda576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f494e4143544956450000000000000000000000000000000000000000604482015290519081900360640190fd5b6007548351600091829181146132c7576040805160e560020a62461bcd02815260206004820152601360248201526000805160206148a3833981519152604482015290519081900360640190fd5b8451811461331f576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f494e56414c49445f414d4f554e540000000000000000000000000000604482015290519081900360640190fd5b600092505b808310156134dd5760086000878581518110151561333e57fe5b6020908102909101810151600160a060020a031682528101919091526040016000206001015460ff66010000000000009091041615156133b6576040805160e560020a62461bcd02815260206004820152601360248201526000805160206148a3833981519152604482015290519081900360640190fd5b600091505b8082101561341e5785828151811015156133d157fe5b90602001906020020151600160a060020a03166007848154811015156133f357fe5b600091825260209091200154600160a060020a031614156134135761341e565b6001909101906133bb565b808210613463576040805160e560020a62461bcd02815260206004820152601360248201526000805160206148a3833981519152604482015290519081900360640190fd5b6000858481518110151561347357fe5b60209081029091010151116134d2576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f494e56414c49445f414d4f554e540000000000000000000000000000604482015290519081900360640190fd5b600190920191613324565b6000841161143f576040805160e560020a62461bcd02815260206004820152600f60248201527f4552525f5a45524f5f414d4f554e540000000000000000000000000000000000604482015290519081900360640190fd5b600081151561354f576135488484613beb565b905061355d565b61355a848484613df2565b90505b9392505050565b60095460009061267590620f42409061359490859068010000000000000000900463ffffffff908116906141b216565b9063ffffffff61422b16565b60075460005b8181101561308f576135da6007828154811015156135c057fe5b600091825260209091200154600160a060020a0316612f9e565b6001016135a6565b60008183101561363c576040805160e560020a62461bcd02815260206004820152600d60248201527f4552525f554e444552464c4f5700000000000000000000000000000000000000604482015290519081900360640190fd5b50900390565b604080517f7472616e7366657246726f6d28616464726573732c616464726573732c75696e81527f74323536290000000000000000000000000000000000000000000000000000006020808301919091528251918290036025018220600160a060020a038088166024850152861660448401526064808401869052845180850390910181526084909301909352810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1990931692909217909152613724908590614299565b50505050565b60008282018381101561355d576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b600554600160a060020a0380851691167f77f29993cf2c084e726f7e802da0719d6a0ade3e204badc7a3ffd57ecb768c246137c585620f42406141b2565b6137d88863ffffffff808816906141b216565b6040805192835260208301919091528051918290030190a350505050565b6001613800611be7565b61ffff1611613859576040805160e560020a62461bcd02815260206004820152601960248201527f4552525f494e56414c49445f524553455256455f434f554e5400000000000000604482015290519081900360640190fd5b610cda614327565b600080600080613872898989611c43565b90935091508215156138ce576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f5a45524f5f5441524745545f414d4f554e5400000000000000000000604482015290519081900360640190fd5b6138d78861267b565b90508083106138e257fe5b600160a060020a038916600080516020614903833981519152141561395d57348714613958576040805160e560020a62461bcd02815260206004820152601760248201527f4552525f4554485f414d4f554e545f4d49534d41544348000000000000000000604482015290519081900360640190fd5b613a65565b34158015613a0f575086613a0c6139738b61267b565b604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a038e16916370a082319160248083019260209291908290030181600087803b1580156139d457600080fd5b505af11580156139e8573d6000803e3d6000fd5b505050506040513d60208110156139fe57600080fd5b50519063ffffffff6135e216565b10155b1515613a65576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f494e56414c49445f414d4f554e540000000000000000000000000000604482015290519081900360640190fd5b613a6e89612f9e565b600160a060020a038816600090815260086020526040902054613a97908463ffffffff6135e216565b600160a060020a0389166000818152600860205260409020919091556000805160206149038339815191521415613b0457604051600160a060020a0386169084156108fc029085906000818181858888f19350505050158015613afe573d6000803e3d6000fd5b50613b0f565b613b0f888685613b34565b613b1d8989888a8787614405565b613b27898961448a565b5090979650505050505050565b604080517f7472616e7366657228616464726573732c75696e74323536290000000000000081528151908190036019018120600160a060020a038516602483015260448083018590528351808403909101815260649092019092526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1990931692909217909152613be6908490614299565b505050565b600080600080613bfa85611bed565b9250600091505b8551821015613de857855160008051602061490383398151915290879084908110613c2857fe5b60209081029091010151600160a060020a031614613c7a57613c7a8683815181101515613c5157fe5b9060200190602002015133308886815181101515613c6b57fe5b90602001906020020151613642565b8482815181101515613c8857fe5b90602001906020020151600860008885815181101515613ca457fe5b6020908102909101810151600160a060020a03168252810191909152604001600020558551869083908110613cd557fe5b90602001906020020151600160a060020a031633600160a060020a03167f4a1a2a6176e9646d9e3157f7c2ab3c499f18337c0b0828cfb28e0a61de4a11f78785815181101515613d2157fe5b906020019060200201518886815181101515613d3957fe5b60209081029091018101516040805193845291830152818101889052519081900360600190a3600860008784815181101515613d7157fe5b6020908102909101810151600160a060020a0316825281019190915260400160002060010154865163ffffffff9091169150613ddd908490889085908110613db557fe5b906020019060200201518785815181101515613dcd57fe5b9060200190602002015184613787565b600190910190613c01565b5090949350505050565b600080600080600080600080600080613e096135a0565b60008051602061490383398151915260005260086020526000805160206148c383398151915254613e40903463ffffffff6135e216565b60008051602061490383398151915260005260086020526000805160206148c383398151915255613e7e600080516020614923833981519152612e74565b9850613e8c898c8f8f614698565b9750613e9e8b8963ffffffff61372a16565b9650600095505b8c518610156141a1578c86815181101515613ebc57fe5b9060200190602002015194506008600086600160a060020a0316600160a060020a0316815260200190815260200160002060000154935088600160a060020a031663ebbb21588c86600960009054906101000a900463ffffffff168c6040518563ffffffff1660e060020a028152600401808581526020018481526020018363ffffffff1663ffffffff168152602001828152602001945050505050602060405180830381600087803b158015613f7257600080fd5b505af1158015613f86573d6000803e3d6000fd5b505050506040513d6020811015613f9c57600080fd5b5051925060008311613ff8576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f5a45524f5f5441524745545f414d4f554e5400000000000000000000604482015290519081900360640190fd5b8b8681518110151561400657fe5b6020908102909101015183111561401957fe5b600160a060020a038516600080516020614903833981519152146140485761404385333086613642565b6140bb565b828c8781518110151561405757fe5b9060200190602002015111156140bb5733600160a060020a03166108fc848e8981518110151561408357fe5b90602001906020020151039081150290604051600060405180830381858888f193505050501580156140b9573d6000803e3d6000fd5b505b6140cb848463ffffffff61372a16565b600160a060020a03861660008181526008602090815260409182902084905581518781529081018490528082018b90529051929450909133917f4a1a2a6176e9646d9e3157f7c2ab3c499f18337c0b0828cfb28e0a61de4a11f7919081900360600190a3600860008e8881518110151561414157fe5b6020908102909101810151600160a060020a03168252810191909152604001600020600101548d5163ffffffff90911691506141969088908f908990811061418557fe5b906020019060200201518484613787565b600190950194613ea5565b50959b9a5050505050505050505050565b6000808315156141c557600091506117a9565b508282028284828115156141d557fe5b041461355d576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b600080808311614285576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f4449564944455f42595f5a45524f0000000000000000000000000000604482015290519081900360640190fd5b828481151561429057fe5b04949350505050565b6142a1614883565b602060405190810160405280600181525090506020818351602085016000875af18015156142ce57600080fd5b5080511515613be6576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f5452414e534645525f4641494c454400000000000000000000000000604482015290519081900360640190fd5b61432f612a98565b6000614339611be7565b61ffff1611614392576040805160e560020a62461bcd02815260206004820152601960248201527f4552525f494e56414c49445f524553455256455f434f554e5400000000000000604482015290519081900360640190fd5b600560009054906101000a9004600160a060020a0316600160a060020a03166379ba50976040518163ffffffff1660e060020a028152600401600060405180830381600087803b1580156143e557600080fd5b505af11580156143f9573d6000803e3d6000fd5b50505050610cda6135a0565b7f8000000000000000000000000000000000000000000000000000000000000000811061442e57fe5b60408051848152602081018490528082018390529051600160a060020a038087169288821692918a16917f276856b36cbc45526a0ba64f44611557a2a8b68662c5388e9fe6d72e86e1c8cb9181900360600190a4505050505050565b6000806000806000806000600560009054906101000a9004600160a060020a0316600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156144e857600080fd5b505af11580156144fc573d6000803e3d6000fd5b505050506040513d602081101561451257600080fd5b5051965061451f8961267b565b955061452a8861267b565b600160a060020a03808b16600090815260086020526040808220600190810154938d1683529120015491965063ffffffff9081169550908116935061457390869086906141b216565b91506145888663ffffffff808616906141b216565b60408051848152602081018390528151929350600160a060020a03808c1693908d16927f77f29993cf2c084e726f7e802da0719d6a0ade3e204badc7a3ffd57ecb768c24928290030190a36145df878a8887613787565b6145eb87898786613787565b604080518881526020810188905263ffffffff8616818301529051600160a060020a038b16917f8a6a7f53b3c8fa1dc4b83e3f1be668c1b251ff8d44cdcb83eb3acec3fec6a788919081900360600190a2604080518881526020810187905263ffffffff8516818301529051600160a060020a038a16917f8a6a7f53b3c8fa1dc4b83e3f1be668c1b251ff8d44cdcb83eb3acec3fec6a788919081900360600190a2505050505050505050565b60008060015b845181101561475b576147036008600087848151811015156146bc57fe5b6020908102909101810151600160a060020a031682528101919091526040016000205485518690859081106146ed57fe5b602090810290910101519063ffffffff6141b216565b61474960086000888681518110151561471857fe5b6020908102909101810151600160a060020a031682528101919091526040016000205486518790859081106146ed57fe5b1015614753578091505b60010161469e565b86600160a060020a0316632f55bdb58760086000898781518110151561477d57fe5b6020908102909101810151600160a060020a0316825281019190915260400160002054600954885163ffffffff909116908990889081106147ba57fe5b906020019060200201516040518563ffffffff1660e060020a028152600401808581526020018481526020018363ffffffff1663ffffffff168152602001828152602001945050505050602060405180830381600087803b15801561481e57600080fd5b505af1158015614832573d6000803e3d6000fd5b505050506040513d602081101561484857600080fd5b5051979650505050505050565b6040805160a08101825260008082526020820181905291810182905260608101829052608081019190915290565b602060405190810160405280600190602082028038833950919291505056004552525f494e56414c49445f5245534552564500000000000000000000000000353c2eb9e53a4a4a6d45d72082ff2e9dc829d1125618772a83eb0e7f86632c42536f7672796e53776170436f6e76657274657255706772616465720000000000000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee536f7672796e53776170466f726d756c610000000000000000000000000000004552525f4143434553535f44454e494544000000000000000000000000000000a165627a7a7230582077c4afb5dbb1930cdbef4451b66030971d5fdd9db5d2ee72732ef2e7eece1eb90029", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x263 JUMPI PUSH4 0xFFFFFFFF PUSH1 0xE0 PUSH1 0x2 EXP PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x24C7EC7 DUP2 EQ PUSH2 0x2EF JUMPI DUP1 PUSH4 0xC7D5CD8 EQ PUSH2 0x309 JUMPI DUP1 PUSH4 0xE53AAE9 EQ PUSH2 0x337 JUMPI DUP1 PUSH4 0x12C2ACA4 EQ PUSH2 0x38C JUMPI DUP1 PUSH4 0x19B64015 EQ PUSH2 0x3B5 JUMPI DUP1 PUSH4 0x1CFAB290 EQ PUSH2 0x3E9 JUMPI DUP1 PUSH4 0x1E1401F8 EQ PUSH2 0x40A JUMPI DUP1 PUSH4 0x21E6B53D EQ PUSH2 0x44D JUMPI DUP1 PUSH4 0x22F3E2D4 EQ PUSH2 0x46E JUMPI DUP1 PUSH4 0x2FE8A6AD EQ PUSH2 0x483 JUMPI DUP1 PUSH4 0x38A5E016 EQ PUSH2 0x498 JUMPI DUP1 PUSH4 0x395900D4 EQ PUSH2 0x4AD JUMPI DUP1 PUSH4 0x3E8FF43F EQ PUSH2 0x4D7 JUMPI DUP1 PUSH4 0x415F1240 EQ PUSH2 0x503 JUMPI DUP1 PUSH4 0x49D10B64 EQ PUSH2 0x51B JUMPI DUP1 PUSH4 0x4AF80F0E EQ PUSH2 0x530 JUMPI DUP1 PUSH4 0x54FD4D50 EQ PUSH2 0x551 JUMPI DUP1 PUSH4 0x579CD3CA EQ PUSH2 0x566 JUMPI DUP1 PUSH4 0x5E35359E EQ PUSH2 0x57B JUMPI DUP1 PUSH4 0x61CD756E EQ PUSH2 0x5A5 JUMPI DUP1 PUSH4 0x67B6D57C EQ PUSH2 0x5BA JUMPI DUP1 PUSH4 0x690D8320 EQ PUSH2 0x5DB JUMPI DUP1 PUSH4 0x6A49D2C4 EQ PUSH2 0x5FC JUMPI DUP1 PUSH4 0x6AA5332C EQ PUSH2 0x626 JUMPI DUP1 PUSH4 0x6AD419A8 EQ PUSH2 0x650 JUMPI DUP1 PUSH4 0x71F52BF3 EQ PUSH2 0x671 JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x686 JUMPI DUP1 PUSH4 0x7B103999 EQ PUSH2 0x69B JUMPI DUP1 PUSH4 0x7D8916BD EQ PUSH2 0x6B0 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x733 JUMPI DUP1 PUSH4 0x94C275AD EQ PUSH2 0x748 JUMPI DUP1 PUSH4 0x9B99A8E2 EQ PUSH2 0x75D JUMPI DUP1 PUSH4 0xA60E7724 EQ PUSH2 0x772 JUMPI DUP1 PUSH4 0xAF94B8D8 EQ PUSH2 0x7C7 JUMPI DUP1 PUSH4 0xB127C0A5 EQ PUSH2 0x7F1 JUMPI DUP1 PUSH4 0xB4A176D3 EQ PUSH2 0x884 JUMPI DUP1 PUSH4 0xBBB7E5D8 EQ PUSH2 0x899 JUMPI DUP1 PUSH4 0xBF754558 EQ PUSH2 0x8B4 JUMPI DUP1 PUSH4 0xC45D3D92 EQ PUSH2 0x8C9 JUMPI DUP1 PUSH4 0xCA1D209D EQ PUSH2 0x8DE JUMPI DUP1 PUSH4 0xCDC91C69 EQ PUSH2 0x8E9 JUMPI DUP1 PUSH4 0xD031370B EQ PUSH2 0x8FE JUMPI DUP1 PUSH4 0xD260529C EQ PUSH2 0x916 JUMPI DUP1 PUSH4 0xD3FB73B4 EQ PUSH2 0x92B JUMPI DUP1 PUSH4 0xD4EE1D90 EQ PUSH2 0x940 JUMPI DUP1 PUSH4 0xD55EC697 EQ PUSH2 0x955 JUMPI DUP1 PUSH4 0xD66BD524 EQ PUSH2 0x96A JUMPI DUP1 PUSH4 0xD8959512 EQ PUSH2 0x98B JUMPI DUP1 PUSH4 0xDC8DE379 EQ PUSH2 0x9AC JUMPI DUP1 PUSH4 0xE8DC12FF EQ PUSH2 0x9CD JUMPI DUP1 PUSH4 0xECBCA55D EQ PUSH2 0x9F7 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0xA15 JUMPI DUP1 PUSH4 0xFC0C546A EQ PUSH2 0xA36 JUMPI JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4903 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x0 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH32 0x353C2EB9E53A4A4A6D45D72082FF2E9DC829D1125618772A83EB0E7F86632C43 SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO PUSH2 0x2ED JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A3 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2FB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2ED PUSH1 0x4 CALLDATALOAD ISZERO ISZERO PUSH2 0xA4B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x315 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x31E PUSH2 0xA93 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x343 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x358 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0xA9F JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP6 DUP7 MSTORE PUSH4 0xFFFFFFFF SWAP1 SWAP5 AND PUSH1 0x20 DUP7 ADD MSTORE SWAP2 ISZERO ISZERO DUP5 DUP5 ADD MSTORE ISZERO ISZERO PUSH1 0x60 DUP5 ADD MSTORE ISZERO ISZERO PUSH1 0x80 DUP4 ADD MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0xA0 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x398 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3A1 PUSH2 0xB3A JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3C1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3CD PUSH1 0x4 CALLDATALOAD PUSH2 0xB83 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x31E PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0xBAF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x416 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x434 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0xBE1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x459 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2ED PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0xBFB JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x47A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3A1 PUSH2 0xC0F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x48F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3A1 PUSH2 0xCA9 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4A4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2ED PUSH2 0xCCA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4B9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2ED PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0xCDC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4E3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4EC PUSH2 0xD77 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0xFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x50F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2ED PUSH1 0x4 CALLDATALOAD PUSH2 0xD7C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x527 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2ED PUSH2 0xFC0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x53C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2ED PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x122D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x55D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4EC PUSH2 0x126F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x572 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x31E PUSH2 0x1274 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x587 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2ED PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x128C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5B1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3CD PUSH2 0x1395 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5C6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2ED PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x13A4 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5E7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2ED PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x1447 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x608 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2ED PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH4 0xFFFFFFFF PUSH1 0x24 CALLDATALOAD AND PUSH2 0x154C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x632 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x63E PUSH1 0x4 CALLDATALOAD PUSH2 0x178B JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x65C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2ED PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x17B0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x67D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4EC PUSH2 0x17E6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x692 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2ED PUSH2 0x17F5 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6A7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3CD PUSH2 0x18B6 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x2ED SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP POP PUSH1 0x40 DUP1 MLOAD DUP8 CALLDATALOAD DUP10 ADD DUP1 CALLDATALOAD PUSH1 0x20 DUP2 DUP2 MUL DUP5 DUP2 ADD DUP3 ADD SWAP1 SWAP6 MSTORE DUP2 DUP5 MSTORE SWAP9 SWAP12 SWAP11 SWAP10 DUP10 ADD SWAP9 SWAP3 SWAP8 POP SWAP1 DUP3 ADD SWAP6 POP SWAP4 POP DUP4 SWAP3 POP DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP POP SWAP4 CALLDATALOAD SWAP5 POP PUSH2 0x18C5 SWAP4 POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x73F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3CD PUSH2 0x1BC4 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x754 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x31E PUSH2 0x1BD3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x769 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4EC PUSH2 0x1BE7 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x77E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x63E SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP PUSH2 0x1BED SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7D3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x434 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x1C43 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7FD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 PUSH1 0x24 DUP1 CALLDATALOAD DUP3 DUP2 ADD CALLDATALOAD DUP5 DUP2 MUL DUP1 DUP8 ADD DUP7 ADD SWAP1 SWAP8 MSTORE DUP1 DUP7 MSTORE PUSH2 0x2ED SWAP7 DUP5 CALLDATALOAD SWAP7 CALLDATASIZE SWAP7 PUSH1 0x44 SWAP6 SWAP2 SWAP5 SWAP1 SWAP2 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP POP PUSH1 0x40 DUP1 MLOAD DUP8 CALLDATALOAD DUP10 ADD DUP1 CALLDATALOAD PUSH1 0x20 DUP2 DUP2 MUL DUP5 DUP2 ADD DUP3 ADD SWAP1 SWAP6 MSTORE DUP2 DUP5 MSTORE SWAP9 SWAP12 SWAP11 SWAP10 DUP10 ADD SWAP9 SWAP3 SWAP8 POP SWAP1 DUP3 ADD SWAP6 POP SWAP4 POP DUP4 SWAP3 POP DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP PUSH2 0x1DE8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x890 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2ED PUSH2 0x1F1C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8A5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x63E PUSH1 0x4 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH2 0x1F55 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8C0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3A1 PUSH2 0x1F6F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8D5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3CD PUSH2 0x1F74 JUMP JUMPDEST PUSH2 0x2ED PUSH1 0x4 CALLDATALOAD PUSH2 0x1F83 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2ED PUSH2 0x2490 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x90A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3CD PUSH1 0x4 CALLDATALOAD PUSH2 0x24E9 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x922 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3A1 PUSH2 0xD77 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x937 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3CD PUSH2 0x2511 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x94C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3CD PUSH2 0x2520 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x961 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2ED PUSH2 0x252F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x976 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x358 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x2624 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x997 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x63E PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x266A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9B8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x63E PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x267B JUMP JUMPDEST PUSH2 0x63E PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x44 CALLDATALOAD SWAP1 PUSH1 0x64 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x84 CALLDATALOAD AND PUSH2 0x26A4 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA03 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2ED PUSH4 0xFFFFFFFF PUSH1 0x4 CALLDATALOAD AND PUSH2 0x28F7 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA21 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2ED PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x29EC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA42 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3CD PUSH2 0x2A89 JUMP JUMPDEST PUSH2 0xA53 PUSH2 0x2A98 JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD SWAP2 ISZERO ISZERO PUSH21 0x10000000000000000000000000000000000000000 MUL PUSH21 0xFF0000000000000000000000000000000000000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH4 0xFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0xAAF PUSH2 0x4855 JUMP JUMPDEST POP POP POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP2 MLOAD PUSH1 0xA0 DUP2 ADD DUP4 MSTORE DUP2 SLOAD DUP1 DUP3 MSTORE PUSH1 0x1 SWAP1 SWAP3 ADD SLOAD PUSH4 0xFFFFFFFF DUP2 AND SWAP5 DUP3 ADD DUP6 SWAP1 MSTORE PUSH1 0xFF PUSH5 0x100000000 DUP3 DIV DUP2 AND ISZERO ISZERO SWAP5 DUP4 ADD SWAP5 SWAP1 SWAP5 MSTORE PUSH6 0x10000000000 DUP2 DIV DUP5 AND ISZERO ISZERO PUSH1 0x60 DUP4 ADD MSTORE PUSH7 0x1000000000000 SWAP1 DIV SWAP1 SWAP3 AND ISZERO ISZERO PUSH1 0x80 SWAP1 SWAP3 ADD DUP3 SWAP1 MSTORE SWAP6 SWAP2 SWAP5 POP SWAP2 SWAP3 POP DUP3 SWAP2 SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4903 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x0 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH32 0x353C2EB9E53A4A4A6D45D72082FF2E9DC829D1125618772A83EB0E7F86632C43 SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x7 DUP3 DUP2 SLOAD DUP2 LT ISZERO ISZERO PUSH2 0xB94 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0xBBB DUP2 PUSH2 0x2AE8 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH4 0xFFFFFFFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xBEF DUP6 DUP6 DUP6 PUSH2 0x1C43 JUMP JUMPDEST SWAP2 POP SWAP2 POP SWAP4 POP SWAP4 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xC03 PUSH2 0x2A98 JUMP JUMPDEST PUSH2 0xC0C DUP2 PUSH2 0x13A4 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 ADDRESS PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x8DA5CB5B PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC6E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xC82 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xC98 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH2 0xCD2 PUSH2 0x2A98 JUMP JUMPDEST PUSH2 0xCDA PUSH2 0x2490 JUMP JUMPDEST JUMP JUMPDEST PUSH2 0xCE4 PUSH2 0x2A98 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x5E35359E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP6 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP3 ADD DUP6 SWAP1 MSTORE SWAP2 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP2 PUSH4 0x5E35359E SWAP2 PUSH1 0x64 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xD5A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xD6E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 PUSH1 0x0 PUSH2 0xD8A PUSH2 0x2B55 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH1 0x0 DUP5 GT PUSH2 0xDE7 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xF PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5A45524F5F414D4F554E540000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x18160DDD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xE3A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xE4E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xE64 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xA24835D100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP9 SWAP1 MSTORE SWAP1 MLOAD SWAP3 SWAP6 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP2 AND SWAP2 PUSH4 0xA24835D1 SWAP2 PUSH1 0x44 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xED5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xEE9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x7 DUP1 SLOAD SWAP1 POP PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0xF1C JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CODESIZE DUP4 CODECOPY ADD SWAP1 POP JUMPDEST POP SWAP2 POP PUSH1 0x0 SWAP1 POP JUMPDEST DUP2 MLOAD DUP2 LT ISZERO PUSH2 0xF4F JUMPI PUSH1 0x1 DUP3 DUP3 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xF3D JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MSTORE PUSH1 0x1 ADD PUSH2 0xF24 JUMP JUMPDEST PUSH2 0xFB5 PUSH1 0x7 DUP1 SLOAD DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD DUP1 ISZERO PUSH2 0xFA8 JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xF8A JUMPI JUMPDEST POP POP POP POP POP DUP4 DUP6 DUP8 PUSH2 0x2BAF JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0x4 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ DUP1 PUSH2 0xFF5 JUMPI POP PUSH1 0x3 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x1039 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4943 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x1062 PUSH32 0x436F6E7472616374526567697374727900000000000000000000000000000000 PUSH2 0x2E74 JUMP JUMPDEST PUSH1 0x2 SLOAD SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP4 AND SWAP2 AND EQ DUP1 ISZERO SWAP1 PUSH2 0x108B JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x10E1 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245474953545259000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0xBB34534C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH32 0x436F6E7472616374526567697374727900000000000000000000000000000000 PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP2 PUSH4 0xBB34534C SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1165 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1179 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x118F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ ISZERO PUSH2 0x11F0 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245474953545259000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP5 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP3 DUP4 AND OR SWAP1 SWAP3 SSTORE SWAP1 SWAP2 AND SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x1235 PUSH2 0x2A98 JUMP JUMPDEST DUP1 PUSH2 0x123F DUP2 PUSH2 0x2F0C JUMP JUMPDEST POP PUSH1 0x6 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x20 DUP2 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH9 0x10000000000000000 SWAP1 DIV PUSH4 0xFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1296 PUSH2 0x2B55 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH2 0x12A3 PUSH2 0x2A98 JUMP JUMPDEST PUSH2 0x12BA PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48E3 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x2E74 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD SWAP1 SWAP2 POP PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 PUSH2 0x12F7 JUMPI POP PUSH2 0x12F5 PUSH2 0xC0F JUMP JUMPDEST ISZERO JUMPDEST DUP1 PUSH2 0x130F JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ JUMPDEST ISZERO ISZERO PUSH2 0x1353 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4943 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x135E DUP5 DUP5 DUP5 PUSH2 0x2F6D JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0xFB5 JUMPI PUSH2 0xFB5 DUP5 PUSH2 0x2F9E JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH2 0x13AC PUSH2 0x2A98 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48E3 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x13C4 DUP2 PUSH2 0x3093 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xF2FDE38B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP2 PUSH4 0xF2FDE38B SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x142B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x143F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1451 PUSH2 0x2B55 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH2 0x145E PUSH2 0x2A98 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4903 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x1476 DUP2 PUSH2 0x2AE8 JUMP JUMPDEST PUSH2 0x148D PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48E3 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x2E74 JUMP JUMPDEST SWAP2 POP PUSH2 0x1497 PUSH2 0xC0F JUMP JUMPDEST ISZERO DUP1 PUSH2 0x14B0 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 DUP2 AND SWAP2 AND EQ JUMPDEST ISZERO ISZERO PUSH2 0x14F4 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4943 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP1 ADDRESS BALANCE DUP1 ISZERO PUSH2 0x8FC MUL SWAP2 PUSH1 0x0 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x152A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH2 0x1542 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4903 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x2F9E JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0x4 SSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1556 PUSH2 0x2A98 JUMP JUMPDEST PUSH2 0x155E PUSH2 0x30E9 JUMP JUMPDEST DUP3 PUSH2 0x1568 DUP2 PUSH2 0x3146 JUMP JUMPDEST DUP4 PUSH2 0x1572 DUP2 PUSH2 0x2F0C JUMP JUMPDEST DUP4 PUSH2 0x157C DUP2 PUSH2 0x31A6 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 DUP2 AND SWAP2 AND EQ DUP1 ISZERO SWAP1 PUSH2 0x15C0 JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x1604 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A3 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x9 SLOAD PUSH4 0xFFFFFFFF SWAP1 DUP2 AND PUSH3 0xF4240 SUB DUP2 AND SWAP1 DUP7 AND GT ISZERO PUSH2 0x166F JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F574549474854000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0xFFFF PUSH2 0x167A PUSH2 0x1BE7 JUMP JUMPDEST PUSH2 0xFFFF AND LT PUSH2 0x16D3 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F434F554E5400000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP2 DUP2 SSTORE PUSH1 0x1 SWAP1 DUP2 ADD DUP1 SLOAD PUSH7 0xFF000000000000 NOT PUSH4 0xFFFFFFFF DUP1 DUP9 AND PUSH4 0xFFFFFFFF NOT SWAP4 DUP5 AND OR SWAP2 SWAP1 SWAP2 AND PUSH7 0x1000000000000 OR SWAP1 SWAP3 SSTORE PUSH1 0x7 DUP1 SLOAD SWAP4 DUP5 ADD DUP2 SSTORE SWAP1 SWAP4 MSTORE PUSH32 0xA66CC928B5EDB82AF9BD49922954155AB7B0942694BEA4CE44661D9A8736C688 SWAP1 SWAP2 ADD DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 SWAP4 OR SWAP1 SWAP3 SSTORE PUSH1 0x9 DUP1 SLOAD DUP1 DUP5 AND SWAP1 SWAP5 ADD SWAP1 SWAP3 AND SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 JUMPDEST PUSH1 0x0 DUP2 GT ISZERO PUSH2 0x17A9 JUMPI PUSH1 0x1 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0xA SWAP1 DIV PUSH2 0x1790 JUMP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x9 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND PUSH13 0x1000000000000000000000000 MUL PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH2 0x17F0 PUSH2 0x1BE7 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x1845 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4943 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND SWAP4 SWAP1 SWAP2 AND SWAP2 PUSH32 0x343765429AEA5A34B3FF6A3785A98A5ABB2597ACA87BFBB58632C173D585373A SWAP2 LOG3 PUSH1 0x1 DUP1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND OR SWAP1 SWAP2 SSTORE AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x18D2 PUSH2 0x2B55 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH2 0x18DF PUSH2 0x321B JUMP JUMPDEST PUSH2 0x18EA DUP7 DUP7 DUP7 PUSH2 0x3279 JUMP JUMPDEST PUSH1 0x0 SWAP3 POP JUMPDEST DUP6 MLOAD DUP4 LT ISZERO PUSH2 0x19A8 JUMPI DUP6 MLOAD PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4903 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP1 DUP8 SWAP1 DUP6 SWAP1 DUP2 LT PUSH2 0x1916 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ ISZERO PUSH2 0x199D JUMPI CALLVALUE DUP6 DUP5 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x193E JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MLOAD EQ PUSH2 0x199D JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4554485F414D4F554E545F4D49534D41544348000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 PUSH2 0x18EF JUMP JUMPDEST PUSH1 0x0 CALLVALUE GT ISZERO PUSH2 0x1A4D JUMPI PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4903 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x0 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH32 0x353C2EB9E53A4A4A6D45D72082FF2E9DC829D1125618772A83EB0E7F86632C43 SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO PUSH2 0x1A4D JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4E4F5F4554485F524553455256450000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x18160DDD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1AA0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1AB4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1ACA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 POP PUSH2 0x1AD9 DUP7 DUP7 DUP5 PUSH2 0x3535 JUMP JUMPDEST SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0x1B33 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F52455455524E5F544F4F5F4C4F570000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x867904B400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP2 PUSH4 0x867904B4 SWAP2 PUSH1 0x44 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1B9F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1BB3 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x1 PUSH1 0x4 SSTORE POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH5 0x100000000 SWAP1 DIV PUSH4 0xFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x7 SLOAD SWAP1 JUMP JUMPDEST DUP1 MLOAD PUSH1 0x0 SWAP1 DUP2 SWAP1 DUP2 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1C2A JUMPI PUSH2 0x1C1E DUP6 DUP3 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x1C0F JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH2 0x178B JUMP JUMPDEST SWAP1 SWAP3 ADD SWAP2 PUSH1 0x1 ADD PUSH2 0x1BF6 JUMP JUMPDEST PUSH1 0x1 PUSH2 0x1C36 DUP5 DUP5 PUSH2 0x1F55 JUMP JUMPDEST SUB PUSH1 0xA EXP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x1C51 PUSH2 0x321B JUMP JUMPDEST DUP7 PUSH2 0x1C5B DUP2 PUSH2 0x2AE8 JUMP JUMPDEST DUP7 PUSH2 0x1C65 DUP2 PUSH2 0x2AE8 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP10 DUP2 AND SWAP1 DUP10 AND EQ ISZERO PUSH2 0x1CC9 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F534F555243455F54415247455400000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x1CE0 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4923 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x2E74 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x94491FAB PUSH2 0x1CF7 DUP12 PUSH2 0x267B JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP13 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH4 0xFFFFFFFF AND PUSH2 0x1D22 DUP13 PUSH2 0x267B JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP14 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 ADD SLOAD DUP2 MLOAD PUSH4 0xFFFFFFFF DUP10 DUP2 AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP3 MSTORE PUSH1 0x4 DUP3 ADD SWAP9 SWAP1 SWAP9 MSTORE SWAP6 DUP8 AND PUSH1 0x24 DUP8 ADD MSTORE PUSH1 0x44 DUP7 ADD SWAP5 SWAP1 SWAP5 MSTORE SWAP5 SWAP1 SWAP3 AND PUSH1 0x64 DUP5 ADD MSTORE PUSH1 0x84 DUP4 ADD DUP14 SWAP1 MSTORE SWAP3 MLOAD PUSH1 0xA4 DUP1 DUP5 ADD SWAP5 SWAP3 SWAP4 SWAP2 SWAP3 SWAP2 DUP4 SWAP1 SUB ADD SWAP1 DUP3 SWAP1 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1D9E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1DB2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1DC8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP4 POP PUSH2 0x1DD5 DUP5 PUSH2 0x3564 JUMP JUMPDEST SWAP4 DUP5 SWAP1 SUB SWAP10 SWAP4 SWAP9 POP SWAP3 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1DF2 PUSH2 0x2B55 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH2 0x1DFF PUSH2 0x321B JUMP JUMPDEST PUSH2 0x1E0A DUP4 DUP4 DUP7 PUSH2 0x3279 JUMP JUMPDEST PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x18160DDD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1E5D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1E71 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1E87 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xA24835D100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP9 SWAP1 MSTORE SWAP1 MLOAD SWAP3 SWAP4 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP2 AND SWAP2 PUSH4 0xA24835D1 SWAP2 PUSH1 0x44 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1EF8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1F0C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0xFB5 DUP4 DUP4 DUP4 DUP8 PUSH2 0x2BAF JUMP JUMPDEST PUSH2 0x1F24 PUSH2 0x2A98 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x2 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x2 DUP2 DIV DUP5 ADD DUP2 ISZERO ISZERO PUSH2 0x1F67 JUMPI INVALID JUMPDEST DIV SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x1 DUP2 JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x1F9A PUSH2 0x2B55 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH2 0x1FA7 PUSH2 0x35A0 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4903 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x0 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48C3 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SLOAD PUSH2 0x1FDE SWAP1 CALLVALUE PUSH4 0xFFFFFFFF PUSH2 0x35E2 AND JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4903 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48C3 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP3 SWAP1 SWAP3 SSTORE PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x18160DDD00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP4 PUSH4 0x18160DDD SWAP4 PUSH1 0x4 DUP1 DUP5 ADD SWAP5 SWAP3 SWAP4 DUP4 SWAP1 SUB ADD SWAP1 DUP3 SWAP1 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2068 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x207C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2092 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP10 POP PUSH2 0x20AD PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4923 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x2E74 JUMP JUMPDEST PUSH1 0x7 SLOAD SWAP1 SWAP10 POP SWAP8 POP PUSH1 0x0 SWAP7 POP JUMPDEST DUP8 DUP8 LT ISZERO PUSH2 0x23FA JUMPI PUSH1 0x7 DUP1 SLOAD DUP9 SWAP1 DUP2 LT PUSH2 0x20D0 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP6 POP PUSH1 0x8 PUSH1 0x0 DUP8 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD SWAP5 POP DUP9 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xEBBB2158 DUP12 DUP8 PUSH1 0x9 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH4 0xFFFFFFFF AND DUP16 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH4 0xFFFFFFFF AND PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP5 POP POP POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x219A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x21AE JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x21C4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP4 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4903 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ ISZERO PUSH2 0x2326 JUMPI DUP4 CALLVALUE GT ISZERO PUSH2 0x2224 JUMPI PUSH1 0x40 MLOAD CALLER SWAP1 CALLVALUE DUP7 SWAP1 SUB DUP1 ISZERO PUSH2 0x8FC MUL SWAP2 PUSH1 0x0 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x221E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH2 0x2321 JUMP JUMPDEST DUP4 CALLVALUE LT ISZERO PUSH2 0x2321 JUMPI CALLVALUE ISZERO PUSH2 0x2282 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4554485F56414C55450000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x9 SLOAD PUSH2 0x22AA SWAP1 PUSH13 0x1000000000000000000000000 SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER ADDRESS DUP8 PUSH2 0x3642 JUMP JUMPDEST PUSH1 0x9 PUSH1 0xC SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x2E1A7D4D DUP6 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2308 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x231C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMPDEST PUSH2 0x2332 JUMP JUMPDEST PUSH2 0x2332 DUP7 CALLER ADDRESS DUP8 PUSH2 0x3642 JUMP JUMPDEST PUSH2 0x2342 DUP6 DUP6 PUSH4 0xFFFFFFFF PUSH2 0x372A AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP2 SWAP1 SSTORE SWAP3 POP PUSH2 0x236F DUP11 DUP13 PUSH4 0xFFFFFFFF PUSH2 0x372A AND JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP7 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP7 SWAP1 MSTORE DUP1 DUP3 ADD DUP4 SWAP1 MSTORE SWAP1 MLOAD SWAP2 SWAP4 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 AND SWAP2 CALLER SWAP2 PUSH32 0x4A1A2A6176E9646D9E3157F7C2AB3C499F18337C0B0828CFB28E0A61DE4A11F7 SWAP2 SWAP1 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG3 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH4 0xFFFFFFFF AND PUSH2 0x23EF DUP3 DUP8 DUP6 DUP5 PUSH2 0x3787 JUMP JUMPDEST PUSH1 0x1 SWAP1 SWAP7 ADD SWAP6 PUSH2 0x20BA JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x867904B400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP15 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP2 PUSH4 0x867904B4 SWAP2 PUSH1 0x44 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2466 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x247A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x1 PUSH1 0x4 SSTORE POP POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x2498 PUSH2 0x2A98 JUMP JUMPDEST PUSH2 0x24A0 PUSH2 0x37F6 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x24B7 PUSH2 0xD77 JUMP JUMPDEST PUSH2 0xFFFF AND PUSH32 0x6B08C2E2C9969E55A647A764DB9B554D64DC42F1A704DA11A6D5B129AD163F2C PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 JUMP JUMPDEST PUSH1 0x7 DUP1 SLOAD DUP3 SWAP1 DUP2 LT PUSH2 0x24F7 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP1 POP DUP2 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2539 PUSH2 0x2A98 JUMP JUMPDEST PUSH2 0x2550 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48E3 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x2E74 JUMP JUMPDEST PUSH1 0x5 SLOAD SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x256A PUSH2 0xD77 JUMP JUMPDEST PUSH2 0xFFFF AND PUSH32 0x6B08C2E2C9969E55A647A764DB9B554D64DC42F1A704DA11A6D5B129AD163F2C PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH2 0x25A3 DUP2 PUSH2 0x29EC JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x90F58C9600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 AND SWAP2 PUSH4 0x90F58C96 SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2604 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2618 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0xC0C PUSH2 0x17F5 JUMP JUMPDEST PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD PUSH4 0xFFFFFFFF DUP2 AND SWAP1 PUSH1 0xFF PUSH5 0x100000000 DUP3 DIV DUP2 AND SWAP2 PUSH6 0x10000000000 DUP2 DIV DUP3 AND SWAP2 PUSH7 0x1000000000000 SWAP1 SWAP2 DIV AND DUP6 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2675 DUP3 PUSH2 0x267B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0x2687 DUP2 PUSH2 0x2AE8 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x26AE PUSH2 0x2B55 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH32 0x536F7672796E537761704E6574776F726B000000000000000000000000000000 PUSH2 0x26DD DUP2 PUSH2 0x3093 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 DUP2 AND SWAP1 DUP8 AND EQ ISZERO PUSH2 0x2741 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F534F555243455F54415247455400000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND ISZERO DUP1 PUSH2 0x2884 JUMPI POP PUSH1 0x6 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x3AF32ABF00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP2 PUSH4 0x3AF32ABF SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x27BC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x27D0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x27E6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD DUP1 ISZERO PUSH2 0x2884 JUMPI POP PUSH1 0x6 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x3AF32ABF00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP2 PUSH4 0x3AF32ABF SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2857 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x286B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2881 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD JUMPDEST ISZERO ISZERO PUSH2 0x28DA JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4E4F545F57484954454C495354454400000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x28E7 DUP8 DUP8 DUP8 DUP8 DUP8 PUSH2 0x3861 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x4 SSTORE SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x28FF PUSH2 0x2A98 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH4 0xFFFFFFFF PUSH5 0x100000000 SWAP1 SWAP2 DIV DUP2 AND SWAP1 DUP3 AND GT ISZERO PUSH2 0x296B JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F434F4E56455253494F4E5F464545000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH4 0xFFFFFFFF PUSH9 0x10000000000000000 SWAP1 SWAP4 DIV DUP4 AND DUP2 MSTORE SWAP2 DUP4 AND PUSH1 0x20 DUP4 ADD MSTORE DUP1 MLOAD PUSH32 0x81CD2FFB37DD237C0E4E2A3DE5265FCF9DEB43D3E7801E80DB9F1CCFBA7EE600 SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG1 PUSH1 0x9 DUP1 SLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP3 AND PUSH9 0x10000000000000000 MUL PUSH12 0xFFFFFFFF0000000000000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x29F4 PUSH2 0x2A98 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x2A5A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F4F574E4552000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0xCDA JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4943 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO PUSH2 0xC0C JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A3 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x4 SLOAD PUSH1 0x1 EQ PUSH2 0xCDA JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5245454E5452414E4359000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x2BC3 PUSH2 0x35A0 JUMP JUMPDEST PUSH2 0x2BDA PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4923 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x2E74 JUMP JUMPDEST SWAP8 POP PUSH2 0x2BEC DUP11 DUP11 PUSH4 0xFFFFFFFF PUSH2 0x35E2 AND JUMP JUMPDEST SWAP7 POP PUSH1 0x0 SWAP6 POP JUMPDEST DUP12 MLOAD DUP7 LT ISZERO PUSH2 0x2E66 JUMPI DUP12 DUP7 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x2C0A JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD SWAP5 POP PUSH1 0x8 PUSH1 0x0 DUP7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD SWAP4 POP DUP8 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x8074590A DUP12 DUP7 PUSH1 0x9 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH4 0xFFFFFFFF AND DUP14 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH4 0xFFFFFFFF AND PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP5 POP POP POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2CC0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2CD4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2CEA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD DUP12 MLOAD SWAP1 SWAP4 POP DUP12 SWAP1 DUP8 SWAP1 DUP2 LT PUSH2 0x2CFD JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MLOAD DUP4 LT ISZERO PUSH2 0x2D5E JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5A45524F5F5441524745545F414D4F554E5400000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x2D6E DUP5 DUP5 PUSH4 0xFFFFFFFF PUSH2 0x35E2 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP3 SWAP1 SSTORE SWAP1 SWAP3 POP PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4903 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ ISZERO PUSH2 0x2DD4 JUMPI PUSH1 0x40 MLOAD CALLER SWAP1 DUP5 ISZERO PUSH2 0x8FC MUL SWAP1 DUP6 SWAP1 PUSH1 0x0 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x2DCE JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH2 0x2DDF JUMP JUMPDEST PUSH2 0x2DDF DUP6 CALLER DUP6 PUSH2 0x3B34 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP5 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 SWAP1 MSTORE DUP1 DUP3 ADD DUP10 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND SWAP2 CALLER SWAP2 PUSH32 0xBC7D19D505C7EC4DB83F3B51F19FB98C4C8A99922E7839D1EE608DFBEE29501B SWAP2 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG3 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH4 0xFFFFFFFF AND PUSH2 0x2E5B DUP8 DUP7 DUP5 DUP5 PUSH2 0x3787 JUMP JUMPDEST PUSH1 0x1 SWAP1 SWAP6 ADD SWAP5 PUSH2 0x2BF3 JUMP JUMPDEST POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xBB34534C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP2 PUSH4 0xBB34534C SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2EDA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2EEE JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2F04 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ADDRESS EQ ISZERO PUSH2 0xC0C JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F414444524553535F49535F53454C4600000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x2F75 PUSH2 0x2A98 JUMP JUMPDEST DUP3 PUSH2 0x2F7F DUP2 PUSH2 0x3146 JUMP JUMPDEST DUP3 PUSH2 0x2F89 DUP2 PUSH2 0x3146 JUMP JUMPDEST DUP4 PUSH2 0x2F93 DUP2 PUSH2 0x2F0C JUMP JUMPDEST PUSH2 0x143F DUP7 DUP7 DUP7 PUSH2 0x3B34 JUMP JUMPDEST DUP1 PUSH2 0x2FA8 DUP2 PUSH2 0x2AE8 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 AND PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4903 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ ISZERO PUSH2 0x2FE8 JUMPI PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 ADDRESS BALANCE SWAP1 SSTORE PUSH2 0x308F JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3049 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x305D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x3073 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x309C DUP2 PUSH2 0x2E74 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0xC0C JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4943 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x30F1 PUSH2 0xC0F JUMP JUMPDEST ISZERO PUSH2 0xCDA JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xA PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F41435449564500000000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0xC0C JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 PUSH4 0xFFFFFFFF AND GT DUP1 ISZERO PUSH2 0x31C5 JUMPI POP PUSH3 0xF4240 PUSH4 0xFFFFFFFF DUP3 AND GT ISZERO JUMPDEST ISZERO ISZERO PUSH2 0xC0C JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F574549474854000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x3223 PUSH2 0xC0F JUMP JUMPDEST ISZERO ISZERO PUSH2 0xCDA JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E4143544956450000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x7 SLOAD DUP4 MLOAD PUSH1 0x0 SWAP2 DUP3 SWAP2 DUP2 EQ PUSH2 0x32C7 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A3 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP5 MLOAD DUP2 EQ PUSH2 0x331F JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F414D4F554E540000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 SWAP3 POP JUMPDEST DUP1 DUP4 LT ISZERO PUSH2 0x34DD JUMPI PUSH1 0x8 PUSH1 0x0 DUP8 DUP6 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x333E JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP3 MSTORE DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH1 0xFF PUSH7 0x1000000000000 SWAP1 SWAP2 DIV AND ISZERO ISZERO PUSH2 0x33B6 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A3 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 SWAP2 POP JUMPDEST DUP1 DUP3 LT ISZERO PUSH2 0x341E JUMPI DUP6 DUP3 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x33D1 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x7 DUP5 DUP2 SLOAD DUP2 LT ISZERO ISZERO PUSH2 0x33F3 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ ISZERO PUSH2 0x3413 JUMPI PUSH2 0x341E JUMP JUMPDEST PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x33BB JUMP JUMPDEST DUP1 DUP3 LT PUSH2 0x3463 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48A3 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP6 DUP5 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3473 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MLOAD GT PUSH2 0x34D2 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F414D4F554E540000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 PUSH2 0x3324 JUMP JUMPDEST PUSH1 0x0 DUP5 GT PUSH2 0x143F JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xF PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5A45524F5F414D4F554E540000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO PUSH2 0x354F JUMPI PUSH2 0x3548 DUP5 DUP5 PUSH2 0x3BEB JUMP JUMPDEST SWAP1 POP PUSH2 0x355D JUMP JUMPDEST PUSH2 0x355A DUP5 DUP5 DUP5 PUSH2 0x3DF2 JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x0 SWAP1 PUSH2 0x2675 SWAP1 PUSH3 0xF4240 SWAP1 PUSH2 0x3594 SWAP1 DUP6 SWAP1 PUSH9 0x10000000000000000 SWAP1 DIV PUSH4 0xFFFFFFFF SWAP1 DUP2 AND SWAP1 PUSH2 0x41B2 AND JUMP JUMPDEST SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x422B AND JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x308F JUMPI PUSH2 0x35DA PUSH1 0x7 DUP3 DUP2 SLOAD DUP2 LT ISZERO ISZERO PUSH2 0x35C0 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x2F9E JUMP JUMPDEST PUSH1 0x1 ADD PUSH2 0x35A6 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT ISZERO PUSH2 0x363C JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F554E444552464C4F5700000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP SWAP1 SUB SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x7472616E7366657246726F6D28616464726573732C616464726573732C75696E DUP2 MSTORE PUSH32 0x7432353629000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP3 MLOAD SWAP2 DUP3 SWAP1 SUB PUSH1 0x25 ADD DUP3 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP9 AND PUSH1 0x24 DUP6 ADD MSTORE DUP7 AND PUSH1 0x44 DUP5 ADD MSTORE PUSH1 0x64 DUP1 DUP5 ADD DUP7 SWAP1 MSTORE DUP5 MLOAD DUP1 DUP6 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x84 SWAP1 SWAP4 ADD SWAP1 SWAP4 MSTORE DUP2 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE PUSH2 0x3724 SWAP1 DUP6 SWAP1 PUSH2 0x4299 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 ADD DUP4 DUP2 LT ISZERO PUSH2 0x355D JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP6 AND SWAP2 AND PUSH32 0x77F29993CF2C084E726F7E802DA0719D6A0ADE3E204BADC7A3FFD57ECB768C24 PUSH2 0x37C5 DUP6 PUSH3 0xF4240 PUSH2 0x41B2 JUMP JUMPDEST PUSH2 0x37D8 DUP9 PUSH4 0xFFFFFFFF DUP1 DUP9 AND SWAP1 PUSH2 0x41B2 AND JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB ADD SWAP1 LOG3 POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH2 0x3800 PUSH2 0x1BE7 JUMP JUMPDEST PUSH2 0xFFFF AND GT PUSH2 0x3859 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F434F554E5400000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0xCDA PUSH2 0x4327 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x3872 DUP10 DUP10 DUP10 PUSH2 0x1C43 JUMP JUMPDEST SWAP1 SWAP4 POP SWAP2 POP DUP3 ISZERO ISZERO PUSH2 0x38CE JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5A45524F5F5441524745545F414D4F554E5400000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x38D7 DUP9 PUSH2 0x267B JUMP JUMPDEST SWAP1 POP DUP1 DUP4 LT PUSH2 0x38E2 JUMPI INVALID JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP10 AND PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4903 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ ISZERO PUSH2 0x395D JUMPI CALLVALUE DUP8 EQ PUSH2 0x3958 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4554485F414D4F554E545F4D49534D41544348000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x3A65 JUMP JUMPDEST CALLVALUE ISZERO DUP1 ISZERO PUSH2 0x3A0F JUMPI POP DUP7 PUSH2 0x3A0C PUSH2 0x3973 DUP12 PUSH2 0x267B JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP15 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x39D4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x39E8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x39FE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x35E2 AND JUMP JUMPDEST LT ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x3A65 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F414D4F554E540000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x3A6E DUP10 PUSH2 0x2F9E JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x3A97 SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0x35E2 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP10 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4903 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ ISZERO PUSH2 0x3B04 JUMPI PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND SWAP1 DUP5 ISZERO PUSH2 0x8FC MUL SWAP1 DUP6 SWAP1 PUSH1 0x0 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x3AFE JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH2 0x3B0F JUMP JUMPDEST PUSH2 0x3B0F DUP9 DUP7 DUP6 PUSH2 0x3B34 JUMP JUMPDEST PUSH2 0x3B1D DUP10 DUP10 DUP9 DUP11 DUP8 DUP8 PUSH2 0x4405 JUMP JUMPDEST PUSH2 0x3B27 DUP10 DUP10 PUSH2 0x448A JUMP JUMPDEST POP SWAP1 SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x7472616E7366657228616464726573732C75696E743235362900000000000000 DUP2 MSTORE DUP2 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x19 ADD DUP2 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x64 SWAP1 SWAP3 ADD SWAP1 SWAP3 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE PUSH2 0x3BE6 SWAP1 DUP5 SWAP1 PUSH2 0x4299 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x3BFA DUP6 PUSH2 0x1BED JUMP JUMPDEST SWAP3 POP PUSH1 0x0 SWAP2 POP JUMPDEST DUP6 MLOAD DUP3 LT ISZERO PUSH2 0x3DE8 JUMPI DUP6 MLOAD PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4903 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP1 DUP8 SWAP1 DUP5 SWAP1 DUP2 LT PUSH2 0x3C28 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ PUSH2 0x3C7A JUMPI PUSH2 0x3C7A DUP7 DUP4 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3C51 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD CALLER ADDRESS DUP9 DUP7 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3C6B JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH2 0x3642 JUMP JUMPDEST DUP5 DUP3 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3C88 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x8 PUSH1 0x0 DUP9 DUP6 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3CA4 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP3 MSTORE DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 SSTORE DUP6 MLOAD DUP7 SWAP1 DUP4 SWAP1 DUP2 LT PUSH2 0x3CD5 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH32 0x4A1A2A6176E9646D9E3157F7C2AB3C499F18337C0B0828CFB28E0A61DE4A11F7 DUP8 DUP6 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3D21 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD DUP9 DUP7 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3D39 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x40 DUP1 MLOAD SWAP4 DUP5 MSTORE SWAP2 DUP4 ADD MSTORE DUP2 DUP2 ADD DUP9 SWAP1 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG3 PUSH1 0x8 PUSH1 0x0 DUP8 DUP5 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3D71 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP3 MSTORE DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD SLOAD DUP7 MLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP2 AND SWAP2 POP PUSH2 0x3DDD SWAP1 DUP5 SWAP1 DUP9 SWAP1 DUP6 SWAP1 DUP2 LT PUSH2 0x3DB5 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD DUP8 DUP6 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3DCD JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD DUP5 PUSH2 0x3787 JUMP JUMPDEST PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x3C01 JUMP JUMPDEST POP SWAP1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x3E09 PUSH2 0x35A0 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4903 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x0 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48C3 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SLOAD PUSH2 0x3E40 SWAP1 CALLVALUE PUSH4 0xFFFFFFFF PUSH2 0x35E2 AND JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4903 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x0 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x48C3 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SSTORE PUSH2 0x3E7E PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4923 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x2E74 JUMP JUMPDEST SWAP9 POP PUSH2 0x3E8C DUP10 DUP13 DUP16 DUP16 PUSH2 0x4698 JUMP JUMPDEST SWAP8 POP PUSH2 0x3E9E DUP12 DUP10 PUSH4 0xFFFFFFFF PUSH2 0x372A AND JUMP JUMPDEST SWAP7 POP PUSH1 0x0 SWAP6 POP JUMPDEST DUP13 MLOAD DUP7 LT ISZERO PUSH2 0x41A1 JUMPI DUP13 DUP7 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3EBC JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD SWAP5 POP PUSH1 0x8 PUSH1 0x0 DUP7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD SWAP4 POP DUP9 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xEBBB2158 DUP13 DUP7 PUSH1 0x9 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH4 0xFFFFFFFF AND DUP13 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH4 0xFFFFFFFF AND PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP5 POP POP POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3F72 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3F86 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x3F9C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP3 POP PUSH1 0x0 DUP4 GT PUSH2 0x3FF8 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5A45524F5F5441524745545F414D4F554E5400000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP12 DUP7 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x4006 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MLOAD DUP4 GT ISZERO PUSH2 0x4019 JUMPI INVALID JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4903 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ PUSH2 0x4048 JUMPI PUSH2 0x4043 DUP6 CALLER ADDRESS DUP7 PUSH2 0x3642 JUMP JUMPDEST PUSH2 0x40BB JUMP JUMPDEST DUP3 DUP13 DUP8 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x4057 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD GT ISZERO PUSH2 0x40BB JUMPI CALLER PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x8FC DUP5 DUP15 DUP10 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x4083 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD SUB SWAP1 DUP2 ISZERO MUL SWAP1 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x40B9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP JUMPDEST PUSH2 0x40CB DUP5 DUP5 PUSH4 0xFFFFFFFF PUSH2 0x372A AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP5 SWAP1 SSTORE DUP2 MLOAD DUP8 DUP2 MSTORE SWAP1 DUP2 ADD DUP5 SWAP1 MSTORE DUP1 DUP3 ADD DUP12 SWAP1 MSTORE SWAP1 MLOAD SWAP3 SWAP5 POP SWAP1 SWAP2 CALLER SWAP2 PUSH32 0x4A1A2A6176E9646D9E3157F7C2AB3C499F18337C0B0828CFB28E0A61DE4A11F7 SWAP2 SWAP1 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG3 PUSH1 0x8 PUSH1 0x0 DUP15 DUP9 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x4141 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP3 MSTORE DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD SLOAD DUP14 MLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP2 AND SWAP2 POP PUSH2 0x4196 SWAP1 DUP9 SWAP1 DUP16 SWAP1 DUP10 SWAP1 DUP2 LT PUSH2 0x4185 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD DUP5 DUP5 PUSH2 0x3787 JUMP JUMPDEST PUSH1 0x1 SWAP1 SWAP6 ADD SWAP5 PUSH2 0x3EA5 JUMP JUMPDEST POP SWAP6 SWAP12 SWAP11 POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 ISZERO ISZERO PUSH2 0x41C5 JUMPI PUSH1 0x0 SWAP2 POP PUSH2 0x17A9 JUMP JUMPDEST POP DUP3 DUP3 MUL DUP3 DUP5 DUP3 DUP2 ISZERO ISZERO PUSH2 0x41D5 JUMPI INVALID JUMPDEST DIV EQ PUSH2 0x355D JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP4 GT PUSH2 0x4285 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4449564944455F42595F5A45524F0000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP3 DUP5 DUP2 ISZERO ISZERO PUSH2 0x4290 JUMPI INVALID JUMPDEST DIV SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0x42A1 PUSH2 0x4883 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE POP SWAP1 POP PUSH1 0x20 DUP2 DUP4 MLOAD PUSH1 0x20 DUP6 ADD PUSH1 0x0 DUP8 GAS CALL DUP1 ISZERO ISZERO PUSH2 0x42CE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD ISZERO ISZERO PUSH2 0x3BE6 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5452414E534645525F4641494C454400000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x432F PUSH2 0x2A98 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4339 PUSH2 0x1BE7 JUMP JUMPDEST PUSH2 0xFFFF AND GT PUSH2 0x4392 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F434F554E5400000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x79BA5097 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x43E5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x43F9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0xCDA PUSH2 0x35A0 JUMP JUMPDEST PUSH32 0x8000000000000000000000000000000000000000000000000000000000000000 DUP2 LT PUSH2 0x442E JUMPI INVALID JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP5 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 SWAP1 MSTORE DUP1 DUP3 ADD DUP4 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP8 AND SWAP3 DUP9 DUP3 AND SWAP3 SWAP2 DUP11 AND SWAP2 PUSH32 0x276856B36CBC45526A0BA64F44611557A2A8B68662C5388E9FE6D72E86E1C8CB SWAP2 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG4 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x18160DDD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x44E8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x44FC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x4512 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP7 POP PUSH2 0x451F DUP10 PUSH2 0x267B JUMP JUMPDEST SWAP6 POP PUSH2 0x452A DUP9 PUSH2 0x267B JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 PUSH1 0x1 SWAP1 DUP2 ADD SLOAD SWAP4 DUP14 AND DUP4 MSTORE SWAP2 KECCAK256 ADD SLOAD SWAP2 SWAP7 POP PUSH4 0xFFFFFFFF SWAP1 DUP2 AND SWAP6 POP SWAP1 DUP2 AND SWAP4 POP PUSH2 0x4573 SWAP1 DUP7 SWAP1 DUP7 SWAP1 PUSH2 0x41B2 AND JUMP JUMPDEST SWAP2 POP PUSH2 0x4588 DUP7 PUSH4 0xFFFFFFFF DUP1 DUP7 AND SWAP1 PUSH2 0x41B2 AND JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP5 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP4 SWAP1 MSTORE DUP2 MLOAD SWAP3 SWAP4 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP13 AND SWAP4 SWAP1 DUP14 AND SWAP3 PUSH32 0x77F29993CF2C084E726F7E802DA0719D6A0ADE3E204BADC7A3FFD57ECB768C24 SWAP3 DUP3 SWAP1 SUB ADD SWAP1 LOG3 PUSH2 0x45DF DUP8 DUP11 DUP9 DUP8 PUSH2 0x3787 JUMP JUMPDEST PUSH2 0x45EB DUP8 DUP10 DUP8 DUP7 PUSH2 0x3787 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP9 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP9 SWAP1 MSTORE PUSH4 0xFFFFFFFF DUP7 AND DUP2 DUP4 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND SWAP2 PUSH32 0x8A6A7F53B3C8FA1DC4B83E3F1BE668C1B251FF8D44CDCB83EB3ACEC3FEC6A788 SWAP2 SWAP1 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG2 PUSH1 0x40 DUP1 MLOAD DUP9 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP8 SWAP1 MSTORE PUSH4 0xFFFFFFFF DUP6 AND DUP2 DUP4 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP11 AND SWAP2 PUSH32 0x8A6A7F53B3C8FA1DC4B83E3F1BE668C1B251FF8D44CDCB83EB3ACEC3FEC6A788 SWAP2 SWAP1 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG2 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x1 JUMPDEST DUP5 MLOAD DUP2 LT ISZERO PUSH2 0x475B JUMPI PUSH2 0x4703 PUSH1 0x8 PUSH1 0x0 DUP8 DUP5 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x46BC JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP3 MSTORE DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 SLOAD DUP6 MLOAD DUP7 SWAP1 DUP6 SWAP1 DUP2 LT PUSH2 0x46ED JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MLOAD SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x41B2 AND JUMP JUMPDEST PUSH2 0x4749 PUSH1 0x8 PUSH1 0x0 DUP9 DUP7 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x4718 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP3 MSTORE DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 SLOAD DUP7 MLOAD DUP8 SWAP1 DUP6 SWAP1 DUP2 LT PUSH2 0x46ED JUMPI INVALID JUMPDEST LT ISZERO PUSH2 0x4753 JUMPI DUP1 SWAP2 POP JUMPDEST PUSH1 0x1 ADD PUSH2 0x469E JUMP JUMPDEST DUP7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x2F55BDB5 DUP8 PUSH1 0x8 PUSH1 0x0 DUP10 DUP8 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x477D JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP3 MSTORE DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH1 0x9 SLOAD DUP9 MLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP2 AND SWAP1 DUP10 SWAP1 DUP9 SWAP1 DUP2 LT PUSH2 0x47BA JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH4 0xFFFFFFFF AND PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP5 POP POP POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x481E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x4832 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x4848 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xA0 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE SWAP2 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x60 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 SWAP1 PUSH1 0x20 DUP3 MUL DUP1 CODESIZE DUP4 CODECOPY POP SWAP2 SWAP3 SWAP2 POP POP JUMP STOP GASLIMIT MSTORE MSTORE 0x5f 0x49 0x4e JUMP COINBASE 0x4c 0x49 DIFFICULTY 0x5f MSTORE GASLIMIT MSTORE8 GASLIMIT MSTORE JUMP GASLIMIT STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP CALLDATALOAD EXTCODECOPY 0x2e 0xb9 0xe5 GASPRICE 0x4a 0x4a PUSH14 0x45D72082FF2E9DC829D112561877 0x2a DUP4 0xeb 0xe PUSH32 0x86632C42536F7672796E53776170436F6E766572746572557067726164657200 STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee MSTORE8 PUSH16 0x7672796E53776170466F726D756C6100 STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP GASLIMIT MSTORE MSTORE 0x5f COINBASE NUMBER NUMBER GASLIMIT MSTORE8 MSTORE8 0x5f DIFFICULTY GASLIMIT 0x4e 0x49 GASLIMIT DIFFICULTY STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 PUSH24 0xC4AFB5DBB1930CDBEF4451B66030971D5FDD9DB5D2EE7273 0x2e CALLCODE 0xe7 0xee 0xce 0x1e 0xb9 STOP 0x29 ", - "sourceMap": "101:327:36:-;;;;;;;;;-1:-1:-1;;;101:327:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;7097:29:4;;:8;:29;;:35;;;;;;;7089:67;;;;;;;-1:-1:-1;;;;;7089:67:4;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;7089:67:4;;;;;;;;;;;;;;;101:327:36;3280:206:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3280:206:60;;;;;;;2700:30:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2700:30:4;;;;;;;;;;;;;;;;;;;;;;;18973:244;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;18973:244:4;-1:-1:-1;;;;;18973:244:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14417:102;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14417:102:4;;;;;;;;;;;;;;;;;;;;;;19274:125;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;19274:125:4;;;;;;;;;-1:-1:-1;;;;;19274:125:4;;;;;;;;;;;;;;13732:152;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;13732:152:4;-1:-1:-1;;;;;13732:152:4;;;;;19798:206;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;19798:206:4;-1:-1:-1;;;;;19798:206:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18669:110;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;18669:110:4;-1:-1:-1;;;;;18669:110:4;;;;;8967:93;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8967:93:4;;;;1250:38:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1250:38:60;;;;18836:80:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18836:80:4;;;;10292:155;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;10292:155:4;-1:-1:-1;;;;;10292:155:4;;;;;;;;;;;;1852:81:23;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1852:81:23;;;;;;;;;;;;;;;;;;;;;;;11984:542;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;11984:542:23;;;;;2080:832:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2080:832:60;;;;8691:132:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;8691:132:4;-1:-1:-1;;;;;8691:132:4;;;;;2221:35;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2221:35:4;;;;2993:31;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2993:31:4;;;;11282:601;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;11282:601:4;-1:-1:-1;;;;;11282:601:4;;;;;;;;;;;;1165:37:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1165:37:60;;;;9368:137:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;9368:137:4;-1:-1:-1;;;;;9368:137:4;;;;;7669:465;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;7669:465:4;-1:-1:-1;;;;;7669:465:4;;;;;12940:623;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;12940:623:4;-1:-1:-1;;;;;12940:623:4;;;;;;;;;21154:180:23;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;21154:180:23;;;;;;;;;;;;;;;;;;;;;339:87:36;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;339:87:36;-1:-1:-1;;;;;339:87:36;;;;;19456:94:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19456:94:4;;;;1159:176:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1159:176:66;;;;1085:33:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1085:33:60;;;;6247:1402:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6247:1402:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6247:1402:23;;;;-1:-1:-1;6247:1402:23;-1:-1:-1;6247:1402:23;;-1:-1:-1;6247:1402:23;;;;;;;;;-1:-1:-1;6247:1402:23;;-1:-1:-1;;6247:1402:23;;;-1:-1:-1;6247:1402:23;;-1:-1:-1;;;;6247:1402:23;157:20:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;157:20:66;;;;2818:34:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2818:34:4;;;;12584:101;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12584:101:4;;;;21967:332:23;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;21967:332:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;21967:332:23;;-1:-1:-1;21967:332:23;;-1:-1:-1;;;;;;;21967:332:23;2798:838;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2798:838:23;-1:-1:-1;;;;;2798:838:23;;;;;;;;;;;;8055:722;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;8055:722:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8055:722:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8055:722:23;;;;-1:-1:-1;8055:722:23;-1:-1:-1;8055:722:23;;-1:-1:-1;8055:722:23;;;;;;;;;-1:-1:-1;8055:722:23;;-1:-1:-1;8055:722:23;;-1:-1:-1;;;;;;;8055:722:23;2974:119:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2974:119:60;;;;21574:116:23;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;21574:116:23;;;;;;;3095:46:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3095:46:4;;;;2322:37;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2322:37:4;;;;9209:2366:23;;;;;;2206:157;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2206:157:23;;;;2445:34:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2445:34:4;;;;;8282:71;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8282:71:4;;;;2260:30;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2260:30:4;;;;180:23:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;180:23:66;;;;12079:317:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12079:317:4;;;;2566:43;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2566:43:4;-1:-1:-1;;;;;2566:43:4;;;;;19607:134;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;19607:134:4;-1:-1:-1;;;;;19607:134:4;;;;;14111:155;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;14111:155:4;-1:-1:-1;;;;;14111:155:4;;;;;15044:649;;-1:-1:-1;;;;;15044:649:4;;;;;;;;;;;;;;;;;;;;;;;10618:240;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;10618:240:4;;;;;;;945:140:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;945:140:66;-1:-1:-1;;;;;945:140:66;;;;;18535:77:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18535:77:4;;;;3280:206:60;575:12:66;:10;:12::i;:::-;3426:26:60;:56;;;;;;;-1:-1:-1;;3426:56:60;;;;;;;;;3280:206::o;2700:30:4:-;;;;;;:::o;18973:244::-;19042:7;19054:6;19065:4;19074;19083;19097:22;;:::i;:::-;-1:-1:-1;;;;;;;;;19122:18:4;;;;;;;;:8;:18;;;;;;;;19097:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;19122:18:4;;-1:-1:-1;19122:18:4;;19097:43;18973:244::o;14417:102::-;-1:-1:-1;;;;;;;;;;;14463:4:4;14480:29;:8;:29;;:35;;;;;;;;14417:102::o;19274:125::-;19336:11;19360:27;19388:6;19360:35;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;19360:35:4;;19274:125;-1:-1:-1;;19274:125:4:o;13732:152::-;13831:6;13807:13;6115:23;6129:8;6115:13;:23::i;:::-;-1:-1:-1;;;;;;;13850:23:4;;;;;:8;:23;;;;;:30;;;;;;13732:152::o;19798:206::-;19916:7;19925;19945:55;19964:12;19978;19992:7;19945:18;:55::i;:::-;19938:62;;;;19798:206;;;;;;:::o;18669:110::-;575:12:66;:10;:12::i;:::-;18741:34:4;18765:9;18741:23;:34::i;:::-;18669:110;:::o;8967:93::-;9008:4;9051;-1:-1:-1;;;;;9025:31:4;:6;;;;;;;;;-1:-1:-1;;;;;9025:6:4;-1:-1:-1;;;;;9025:12:4;;:14;;;;;-1:-1:-1;;;9025:14:4;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9025:14:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9025:14:4;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9025:14:4;-1:-1:-1;;;;;9025:31:4;;;-1:-1:-1;8967:93:4;:::o;1250:38:60:-;;;;;;;;;:::o;18836:80:4:-;575:12:66;:10;:12::i;:::-;18889:23:4;:21;:23::i;:::-;18836:80::o;10292:155::-;575:12:66;:10;:12::i;:::-;10400:6:4;;:43;;;;;;-1:-1:-1;;;;;10400:43:4;;;;;;;;;;;;;;;;;;;;;;:6;;;;;:21;;:43;;;;;:6;;:43;;;;;;;:6;;:43;;;5:2:-1;;;;30:1;27;20:12;5:2;10400:43:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10400:43:4;;;;10292:155;;;:::o;1852:81:23:-;1924:1;1852:81;:::o;11984:542::-;12100:19;12227:40;12321:9;565:12:68;:10;:12::i;:::-;287:1;581:5;:14;12066:1:23;12056:11;;12048:39;;;;;-1:-1:-1;;;;;12048:39:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;12134:6;;;;;;;;;-1:-1:-1;;;;;12134:6:23;-1:-1:-1;;;;;12122:31:23;;:33;;;;;-1:-1:-1;;;12122:33:23;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12122:33:23;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12122:33:23;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12122:33:23;12178:6;;12166:48;;;;;;12194:10;12166:48;;;;;;;;;;;;12122:33;;-1:-1:-1;;;;;;12178:6:23;;;;12166:27;;:48;;;;;12178:6;;12166:48;;;;;;;;12178:6;;12166:48;;;5:2:-1;;;;30:1;27;20:12;5:2;12166:48:23;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12166:48:23;;;;12284:13;:20;;;;12270:35;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;136:17;;-1:-1;12270:35:23;;12227:78;;12333:1;12321:13;;12316:104;12340:23;:30;12336:1;:34;12316:104;;;12419:1;12390:23;12414:1;12390:26;;;;;;;;;;;;;;;;;;:30;12372:3;;12316:104;;;12433:85;12457:13;12433:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12433:85:23;;;;;;;;;;;;;;;;;;;;;12472:23;12497:11;12510:7;12433:23;:85::i;:::-;-1:-1:-1;;249:1:68;604:5;:16;-1:-1:-1;;11984:542:23:o;2080:832:60:-;2281:29;2183:5;;-1:-1:-1;;;;;2183:5:60;2169:10;:19;;:50;;-1:-1:-1;2193:26:60;;;;;;;2192:27;2169:50;2161:80;;;;;;;-1:-1:-1;;;;;2161:80:60;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2161:80:60;;;;;;;;;;;;;;;2331:28;2341:17;2331:9;:28::i;:::-;2465:8;;2281:79;;-1:-1:-1;;;;;;2442:32:60;;;2465:8;;2442:32;;;;:61;;-1:-1:-1;;;;;;2478:25:60;;;;2442:61;2434:94;;;;;;;-1:-1:-1;;;;;2434:94:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;2628:40;;;;;;2650:17;2628:40;;;;;;2680:1;;-1:-1:-1;;;;;2628:21:60;;;;;:40;;;;;;;;;;;;;;;2680:1;2628:21;:40;;;5:2:-1;;;;30:1;27;20:12;5:2;2628:40:60;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2628:40:60;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2628:40:60;-1:-1:-1;;;;;2628:54:60;;;2620:87;;;;;-1:-1:-1;;;;;2620:87:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;2799:8;;;2784:12;:23;;-1:-1:-1;;;;;2799:8:60;;;-1:-1:-1;;2784:23:60;;;;;;;2886:22;;;;;;;;;;;2080:832::o;8691:132:4:-;575:12:66;:10;:12::i;:::-;8771:10:4;782:18:72;791:8;782;:18::i;:::-;-1:-1:-1;8787:19:4;:32;;-1:-1:-1;;8787:32:4;-1:-1:-1;;;;;8787:32:4;;;;;;;;;;8691:132::o;2221:35::-;2254:2;2221:35;:::o;2993:31::-;;;;;;;;;:::o;11282:601::-;11396:25;565:12:68;:10;:12::i;:::-;287:1;581:5;:14;575:12:66;:10;:12::i;:::-;11424:29:4;-1:-1:-1;;;;;;;;;;;11424:9:4;:29::i;:::-;-1:-1:-1;;;;;11622:16:4;;;;;;:8;:16;;;;;:22;;;11396:57;;-1:-1:-1;11622:22:4;;;;;11621:23;;:38;;;11649:10;:8;:10::i;:::-;11648:11;11621:38;:68;;;-1:-1:-1;11663:5:4;;-1:-1:-1;;;;;11663:26:4;;;:5;;:26;11621:68;11613:98;;;;;;;-1:-1:-1;;;;;11613:98:4;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;11613:98:4;;;;;;;;;;;;;;;11715:42;11736:6;11744:3;11749:7;11715:20;:42::i;:::-;-1:-1:-1;;;;;11829:16:4;;;;;;:8;:16;;;;;:22;;;;;;;;11825:54;;;11853:26;11872:6;11853:18;:26::i;1165:37:60:-;;;-1:-1:-1;;;;;1165:37:60;;:::o;9368:137:4:-;575:12:66;:10;:12::i;:::-;-1:-1:-1;;;;;;;;;;;1510:20:60;1516:13;1510:5;:20::i;:::-;9466:6:4;;:35;;;;;;-1:-1:-1;;;;;9466:35:4;;;;;;;;;:6;;;;;:24;;:35;;;;;:6;;:35;;;;;;;:6;;:35;;;5:2:-1;;;;30:1;27;20:12;5:2;9466:35:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9466:35:4;;;;591:1:66;9368:137:4;:::o;7669:465::-;7781:25;565:12:68;:10;:12::i;:::-;287:1;581:5;:14;575:12:66;:10;:12::i;:::-;-1:-1:-1;;;;;;;;;;;6115:23:4;6129:8;6115:13;:23::i;:::-;7809:29;-1:-1:-1;;;;;;;;;;;7809:9:4;:29::i;:::-;7781:57;;7938:10;:8;:10::i;:::-;7937:11;:41;;;-1:-1:-1;7952:5:4;;-1:-1:-1;;;;;7952:26:4;;;:5;;:26;7937:41;7929:71;;;;;;;-1:-1:-1;;;;;7929:71:4;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;7929:71:4;;;;;;;;;;;;;;;8004:35;;-1:-1:-1;;;;;8004:12:4;;;8025:4;8017:21;8004:35;;;;;;;;;8017:21;8004:12;:35;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8004:35:4;8078:52;-1:-1:-1;;;;;;;;;;;8078:18:4;:52::i;:::-;-1:-1:-1;;249:1:68;604:5;:16;-1:-1:-1;7669:465:4:o;12940:623::-;13373:26;575:12:66;:10;:12::i;:::-;5818:11:4;:9;:11::i;:::-;13043:6;475:23:72;489:8;475:13;:23::i;:::-;13061:6:4;782:18:72;791:8;782;:18::i;:::-;13090:7:4;6729:28;6749:7;6729:19;:28::i;:::-;13150:6;;-1:-1:-1;;;;;13132:25:4;;;13150:6;;13132:25;;;;:52;;-1:-1:-1;;;;;;13162:16:4;;;;;;:8;:16;;;;;:22;;;;;;;;13161:23;13132:52;13124:84;;;;;;;-1:-1:-1;;;;;13124:84:4;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;13124:84:4;;;;;;;;;;;;;;;13251:12;;;;;;1763:7;13231:32;13220:43;;;;;;;13212:82;;;;;-1:-1:-1;;;;;13212:82:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;13306:32;:19;:17;:19::i;:::-;:32;;;13298:70;;;;;-1:-1:-1;;;;;13298:70:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;13402:16:4;;;;;;;:8;:16;;;;;13422:22;;;13448:17;;;;:27;;-1:-1:-1;;13448:27:4;;;;-1:-1:-1;;13448:27:4;;;;13479:23;;;;;;;;;13506:13;27:10:-1;;23:18;;;45:23;;13506:26:4;;;;;;;;;-1:-1:-1;;13506:26:4;;;;;;;13536:12;:23;;;;;;;;;;;;;;;;;;;-1:-1:-1;12940:623:4:o;21154:180:23:-;21210:7;;21271:2;21254:53;21279:1;21275;:5;21254:53;;;21304:3;;;;;;21287:2;21282:7;;21254:53;;;-1:-1:-1;21325:1:23;21154:180;-1:-1:-1;;21154:180:23:o;339:87:36:-;398:10;:24;;-1:-1:-1;;;;;398:24:36;;;;;;;;;;;;;;;339:87::o;19456:94:4:-;19508:6;19527:19;:17;:19::i;:::-;19520:26;;19456:94;:::o;1159:176:66:-;1219:8;;-1:-1:-1;;;;;1219:8:66;1205:10;:22;1197:52;;;;;-1:-1:-1;;;;;1197:52:66;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1197:52:66;;;;;;;;;;;;;;;1277:8;;;1270:5;;1258:28;;-1:-1:-1;;;;;1277:8:66;;;;1270:5;;;;1258:28;;;1298:8;;;;1290:16;;-1:-1:-1;;1290:16:66;;;-1:-1:-1;;;;;1298:8:66;;1290:16;;;;1310:21;;;1159:176::o;1085:33:60:-;;;-1:-1:-1;;;;;1085:33:60;;:::o;6247:1402:23:-;6680:9;7130:19;7291:14;565:12:68;:10;:12::i;:::-;287:1;581:5;:14;5606:9:4;:7;:9::i;:::-;6478:65:23;6499:14;6515:15;6532:10;6478:20;:65::i;:::-;6692:1;6680:13;;6675:195;6699:14;:21;6695:1;:25;6675:195;;;6744:17;;-1:-1:-1;;;;;;;;;;;1884:42:4;6744:14:23;;6759:1;;6744:17;;;;;;;;;;;;;;-1:-1:-1;;;;;6744:40:23;;6740:130;;;6833:9;6811:15;6827:1;6811:18;;;;;;;;;;;;;;;;;;;:31;6803:67;;;;;-1:-1:-1;;;;;6803:67:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;6722:3;;;;;6675:195;;;7002:1;6990:9;:13;6986:98;;;-1:-1:-1;;;;;;;;;;;7026:29:23;;:8;:29;;:35;;;;;;;7018:66;;;;;;;-1:-1:-1;;;;;7018:66:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;7164:6;;;;;;;;;-1:-1:-1;;;;;7164:6:23;-1:-1:-1;;;;;7152:31:23;;:33;;;;;-1:-1:-1;;;7152:33:23;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7152:33:23;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7152:33:23;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7152:33:23;;-1:-1:-1;7308:64:23;7327:14;7343:15;7152:33;7308:18;:64::i;:::-;7291:81;-1:-1:-1;7499:20:23;;;;7491:51;;;;;-1:-1:-1;;;;;7491:51:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;7608:6;;7596:45;;;;;;7622:10;7596:45;;;;;;;;;;;;-1:-1:-1;;;;;7608:6:23;;;;7596:25;;:45;;;;;7608:6;;7596:45;;;;;;;;7608:6;;7596:45;;;5:2:-1;;;;30:1;27;20:12;5:2;7596:45:23;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;249:1:68;604:5;:16;-1:-1:-1;;;;;;;;6247:1402:23:o;157:20:66:-;;;-1:-1:-1;;;;;157:20:66;;:::o;2818:34:4:-;;;;;;;;;:::o;12584:101::-;12660:13;:20;12584:101;:::o;21967:332:23:-;22108:14;;22037:7;;;;;22133:90;22157:6;22153:1;:10;22133:90;;;22198:25;22212:7;22220:1;22212:10;;;;;;;;;;;;;;;;;;22198:13;:25::i;:::-;22183:40;;;;22165:3;;22133:90;;;22289:1;22257:29;22266:11;22279:6;22257:8;:29::i;:::-;:33;22249:2;22241:50;;21967:332;-1:-1:-1;;;;;21967:332:23:o;2798:838::-;3031:7;3040;3168:14;3557:11;5606:9:4;:7;:9::i;:::-;2963:12:23;6115:23:4;6129:8;6115:13;:23::i;:::-;2999:12:23;6115:23:4;6129:8;6115:13;:23::i;:::-;-1:-1:-1;;;;;3100:28:23;;;;;;;;3092:63;;;;;-1:-1:-1;;;;;3092:63:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;3204:29;-1:-1:-1;;;;;;;;;;;3204:9:23;:29::i;:::-;-1:-1:-1;;;;;3185:74:23;;3274:28;3289:12;3274:14;:28::i;:::-;-1:-1:-1;;;;;3317:22:23;;;;;;:8;:22;;;;;:29;;;;;3361:28;3376:12;3361:14;:28::i;:::-;-1:-1:-1;;;;;3404:22:23;;;;;;:8;:22;;;;;;;;:29;;;3185:281;;3404:29;3185:281;;;-1:-1:-1;;;3185:281:23;;;;;;;;;;;;;;;;;;;;;;;;3404:29;;;;3185:281;;;;;;;;;;;;;;;;;3404:22;;3185:281;;;;;;;;;;;;;;5:2:-1;;;;30:1;27;20:12;5:2;3185:281:23;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3185:281:23;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3185:281:23;;-1:-1:-1;3571:20:23;3185:281;3571:12;:20::i;:::-;3610:12;;;;;3557:34;;-1:-1:-1;2798:838:23;;-1:-1:-1;;;;;;;2798:838:23:o;8055:722::-;8429:19;565:12:68;:10;:12::i;:::-;287:1;581:5;:14;5606:9:4;:7;:9::i;:::-;8278:71:23;8299:14;8315:24;8341:7;8278:20;:71::i;:::-;8463:6;;;;;;;;;-1:-1:-1;;;;;8463:6:23;-1:-1:-1;;;;;8451:31:23;;:33;;;;;-1:-1:-1;;;8451:33:23;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8451:33:23;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8451:33:23;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8451:33:23;8545:6;;8533:48;;;;;;8561:10;8533:48;;;;;;;;;;;;8451:33;;-1:-1:-1;;;;;;8545:6:23;;;;8533:27;;:48;;;;;8545:6;;8533:48;;;;;;;;8545:6;;8533:48;;;5:2:-1;;;;30:1;27;20:12;5:2;8533:48:23;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8533:48:23;;;;8682:87;8706:14;8722:24;8748:11;8761:7;8682:23;:87::i;2974:119:60:-;575:12:66;:10;:12::i;:::-;3077::60;;3066:8;:23;;-1:-1:-1;;3066:23:60;-1:-1:-1;;;;;3077:12:60;;;3066:23;;;;;;2974:119::o;21574:116:23:-;21637:7;21680:2;21675:1;21680:2;21670:6;21665:2;:11;21664:18;;;;;;;;;21574:116;-1:-1:-1;;;21574:116:23:o;3095:46:4:-;3137:4;3095:46;:::o;2322:37::-;;;-1:-1:-1;;;;;2322:37:4;;:::o;9209:2366:23:-;9413:14;9474:26;9756:20;9815:9;9868:24;9926:18;9992:21;10815:25;10954:26;11276:20;565:12:68;:10;:12::i;:::-;287:1;581:5;:14;9276:21:23;:19;:21::i;:::-;-1:-1:-1;;;;;;;;;;;9348:29:23;;:8;:29;;-1:-1:-1;;;;;;;;;;;9348:37:23;:52;;9390:9;9348:52;:41;:52;:::i;:::-;-1:-1:-1;;;;;;;;;;;9308:29:23;;;;:8;:29;;;;-1:-1:-1;;;;;;;;;;;9308:92:23;;;;9442:6;;9308:29;9430:33;;;;;;;-1:-1:-1;;;;;9442:6:23;;;;9430:31;;:33;;;;;9308:29;;9430:33;;;;;;;9442:6;9430:33;;;5:2:-1;;;;30:1;27;20:12;5:2;9430:33:23;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9430:33:23;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9430:33:23;;-1:-1:-1;9522:29:23;-1:-1:-1;;;;;;;;;;;9522:9:23;:29::i;:::-;9779:13;:20;9474:78;;-1:-1:-1;9779:20:23;-1:-1:-1;9827:1:23;;-1:-1:-1;9810:1639:23;9834:12;9830:1;:16;9810:1639;;;9895:13;:16;;9909:1;;9895:16;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9895:16:23;9868:43;;9947:8;:22;9956:12;-1:-1:-1;;;;;9947:22:23;-1:-1:-1;;;;;9947:22:23;;;;;;;;;;;;:30;;;9926:51;;10016:7;-1:-1:-1;;;;;10016:16:23;;10033:6;10041:10;10053:12;;;;;;;;;;;10067:7;10016:59;;;;;-1:-1:-1;;;10016:59:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10016:59:23;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10016:59:23;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;10016:59:23;;-1:-1:-1;;;;;;10164:35:23;;-1:-1:-1;;;;;;;;;;;10164:35:23;10160:598;;;10236:13;10224:9;:25;10220:406;;;10274:46;;:10;;10294:9;:25;;;10274:46;;;;;;;;;10294:25;10274:10;:46;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10274:46:23;10220:406;;;10379:13;10367:9;:25;10363:263;;;10425:9;:14;10417:48;;;;;-1:-1:-1;;;;;10417:48:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;10505:10;;10488:61;;10505:10;;;-1:-1:-1;;;;;10505:10:23;10517;10529:4;10535:13;10488:16;:61::i;:::-;10572:10;;;;;;;;;-1:-1:-1;;;;;10572:10:23;-1:-1:-1;;;;;10572:19:23;;10592:13;10572:34;;;;;-1:-1:-1;;;10572:34:23;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10572:34:23;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10572:34:23;;;;10363:263;10160:598;;;10679:63;10696:12;10710:10;10722:4;10728:13;10679:16;:63::i;:::-;10843:29;:10;10858:13;10843:29;:14;:29;:::i;:::-;-1:-1:-1;;;;;10887:22:23;;;;;;:8;:22;;;;;:50;;;10815:57;-1:-1:-1;10983:19:23;:6;10994:7;10983:19;:10;:19;:::i;:::-;11093:94;;;;;;;;;;;;;;;;;;;;10954:48;;-1:-1:-1;;;;;;11093:94:23;;;11108:10;;11093:94;;;;;;;;;;-1:-1:-1;;;;;;11299:22:23;;;;;;:8;:22;;;;;:29;;;;;11343:94;11370:18;11308:12;11404:17;11299:29;11343:26;:94::i;:::-;9848:3;;;;;9810:1639;;;11533:6;;11521:46;;;;;;11547:10;11521:46;;;;;;;;;;;;-1:-1:-1;;;;;11533:6:23;;;;11521:25;;:46;;;;;11533:6;;11521:46;;;;;;;;11533:6;;11521:46;;;5:2:-1;;;;30:1;27;20:12;5:2;11521:46:23;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;249:1:68;604:5;:16;-1:-1:-1;;;;;;;;;;;;;9209:2366:23:o;2206:157::-;575:12:66;:10;:12::i;:::-;2267:29:23;:27;:29::i;:::-;2342:6;;2350:4;;-1:-1:-1;;;;;2342:6:23;2325:15;:13;:15::i;:::-;2314:41;;;;;;;;;;;;2206:157::o;2445:34:4:-;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2445:34:4;;-1:-1:-1;2445:34:4;:::o;2260:30::-;;;-1:-1:-1;;;;;2260:30:4;;:::o;180:23:66:-;;;-1:-1:-1;;;;;180:23:66;;:::o;12079:317:4:-;12119:36;575:12:66;:10;:12::i;:::-;12177:29:4;-1:-1:-1;;;;;;;;;;;12177:9:4;:29::i;:::-;12278:6;;12119:88;;-1:-1:-1;12286:5:4;;-1:-1:-1;;;;;12278:6:4;12261:15;:13;:15::i;:::-;12250:42;;;;;;;;;;;;12297:36;12315:17;12297;:36::i;:::-;12337:34;;;;;;2254:2;12337:34;;;;;;-1:-1:-1;;;;;12337:25:4;;;;;:34;;;;;-1:-1:-1;;12337:34:4;;;;;;;-1:-1:-1;12337:25:4;:34;;;5:2:-1;;;;30:1;27;20:12;5:2;12337:34:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12337:34:4;;;;12375:17;:15;:17::i;2566:43::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;19607:134::-;19686:7;19706:31;19721:15;19706:14;:31::i;:::-;19699:38;19607:134;-1:-1:-1;;19607:134:4:o;14111:155::-;14211:7;14187:13;6115:23;6129:8;6115:13;:23::i;:::-;-1:-1:-1;;;;;;;14231:23:4;;;;;:8;:23;;;;;:31;;14111:155::o;15044:649::-;15241:7;565:12:68;:10;:12::i;:::-;287:1;581:5;:14;15212:18:4;1510:20:60;15212:18:4;1510:5:60;:20::i;:::-;-1:-1:-1;;;;;15282:28:4;;;;;;;;15274:63;;;;;-1:-1:-1;;;;;15274:63:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;15446:19;;-1:-1:-1;;;;;15446:19:4;:33;;:132;;-1:-1:-1;15484:19:4;;:42;;;;;;-1:-1:-1;;;;;15484:42:4;;;;;;;;;:19;;;;;:33;;:42;;;;;;;;;;;;;;:19;;:42;;;5:2:-1;;;;30:1;27;20:12;5:2;15484:42:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15484:42:4;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;15484:42:4;:93;;;;-1:-1:-1;15530:19:4;;:47;;;;;;-1:-1:-1;;;;;15530:47:4;;;;;;;;;:19;;;;;:33;;:47;;;;;;;;;;;;;;:19;;:47;;;5:2:-1;;;;30:1;27;20:12;5:2;15530:47:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15530:47:4;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;15530:47:4;15484:93;15434:174;;;;;;;-1:-1:-1;;;;;15434:174:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;15620:69;15630:12;15644;15658:7;15667;15676:12;15620:9;:69::i;:::-;249:1:68;604:5;:16;15613:76:4;15044:649;-1:-1:-1;;;;;;;15044:649:4:o;10618:240::-;575:12:66;:10;:12::i;:::-;10714:16:4;;;;;;;;;10696:34;;;;;10688:73;;;;;-1:-1:-1;;;;;10688:73:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;10790:13;;10770:50;;;10790:13;;;;;;;10770:50;;;;;;;;;;;;;;;;;;;;;10824:13;:30;;;;;;;;-1:-1:-1;;10824:30:4;;;;;;;;;10618:240::o;945:140:66:-;575:12;:10;:12::i;:::-;1033:5;;-1:-1:-1;;;;;1020:18:66;;;1033:5;;1020:18;;1012:45;;;;;-1:-1:-1;;;;;1012:45:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;1061:8;:20;;-1:-1:-1;;1061:20:66;-1:-1:-1;;;;;1061:20:66;;;;;;;;;;945:140::o;18535:77:4:-;18602:6;;-1:-1:-1;;;;;18602:6:4;18535:77;:::o;642:93:66:-;704:5;;-1:-1:-1;;;;;704:5:66;690:10;:19;682:49;;;;;-1:-1:-1;;;;;682:49:66;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;682:49:66;;;;;;;;;;;;;;6193:123:4;-1:-1:-1;;;;;6264:18:4;;;;;;:8;:18;;;;;:24;;;;;;;;6256:56;;;;;;;-1:-1:-1;;;;;6256:56:4;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;6256:56:4;;;;;;;;;;;;;;670:88:68;718:5;;249:1;718:17;710:44;;;;;-1:-1:-1;;;;;710:44:68;;;;;;;;;;;;;;;;;;;;;;;;;;;18746:1572:23;18965:26;19054;19126:9;19188:24;19247:18;19313:21;19527:25;20138:20;18931:21;:19;:21::i;:::-;19013:29;-1:-1:-1;;;;;;;;;;;19013:9:23;:29::i;:::-;18965:78;-1:-1:-1;19083:25:23;:12;19100:7;19083:25;:16;:25;:::i;:::-;19054:54;;19138:1;19126:13;;19121:1190;19145:14;:21;19141:1;:25;19121:1190;;;19215:14;19230:1;19215:17;;;;;;;;;;;;;;;;;;19188:44;;19268:8;:22;19277:12;-1:-1:-1;;;;;19268:22:23;-1:-1:-1;;;;;19268:22:23;;;;;;;;;;;;:30;;;19247:51;;19337:7;-1:-1:-1;;;;;19337:30:23;;19368:12;19382:10;19394:12;;;;;;;;;;;19408:7;19337:79;;;;;-1:-1:-1;;;19337:79:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19337:79:23;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;19337:79:23;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;19337:79:23;19456:27;;19337:79;;-1:-1:-1;19456:24:23;;19481:1;;19456:27;;;;;;;;;;;;;;;19439:44;;;19431:79;;;;;-1:-1:-1;;;;;19431:79:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;19555:29;:10;19570:13;19555:29;:14;:29;:::i;:::-;-1:-1:-1;;;;;19599:22:23;;;;;;:8;:22;;;;;:50;;;19527:57;;-1:-1:-1;;;;;;;;;;;;19753:35:23;19749:182;;;19807:34;;:10;;:34;;;;;19827:13;;19807:34;;;;19827:13;19807:10;:34;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;19807:34:23;19749:182;;;19878:53;19891:12;19905:10;19917:13;19878:12;:53::i;:::-;19953:96;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;19953:96:23;;;19970:10;;19953:96;;;;;;;;;-1:-1:-1;;;;;;20161:22:23;;;;;;:8;:22;;;;;:29;;;;;20205:94;20232:18;20170:12;20266:17;20161:29;20205:26;:94::i;:::-;19168:3;;;;;19121:1190;;;18746:1572;;;;;;;;;;;;:::o;3647:122:60:-;3732:8;;:33;;;;;;;;;;;;;;3712:7;;-1:-1:-1;;;;;3732:8:60;;:18;;:33;;;;;;;;;;;;;;3712:7;3732:8;:33;;;5:2:-1;;;;30:1;27;20:12;5:2;3732:33:60;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3732:33:60;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3732:33:60;;3647:122;-1:-1:-1;;3647:122:60:o;855:115:72:-;-1:-1:-1;;;;;917:25:72;;937:4;917:25;;909:57;;;;;-1:-1:-1;;;;;909:57:72;;;;;;;;;;;;;;;;;;;;;;;;;;;1077:194:71;575:12:66;:10;:12::i;:::-;1190:6:71;475:23:72;489:8;475:13;:23::i;:::-;1211:3:71;475:23:72;489:8;475:13;:23::i;:::-;1224:3:71;782:18:72;791:8;782;:18::i;:::-;1233:34:71;1246:6;1254:3;1259:7;1233:12;:34::i;16898:269:4:-;16975:13;6115:23;6129:8;6115:13;:23::i;:::-;-1:-1:-1;;;;;16998:36:4;;-1:-1:-1;;;;;;;;;;;16998:36:4;16994:169;;;-1:-1:-1;;;;;17036:23:4;;;;;;:8;:23;;;;;17078:4;17070:21;17036:55;;16994:169;;;17134:29;;;;;;17158:4;17134:29;;;;;;-1:-1:-1;;;;;17134:23:4;;;;;:29;;;;;;;;;;;;;;-1:-1:-1;17134:23:4;:29;;;5:2:-1;;;;30:1;27;20:12;5:2;17134:29:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17134:29:4;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;17134:29:4;-1:-1:-1;;;;;17100:23:4;;;;;;:8;17134:29;17100:23;;;;:63;16994:169;16898:269;;:::o;1585:128:60:-;1663:24;1673:13;1663:9;:24::i;:::-;-1:-1:-1;;;;;1649:38:60;:10;:38;1641:68;;;;;-1:-1:-1;;;;;1641:68:60;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1641:68:60;;;;;;;;;;;;;;5884:77:4;5932:10;:8;:10::i;:::-;5931:11;5923:34;;;;;-1:-1:-1;;;;;5923:34:4;;;;;;;;;;;;;;;;;;;;;;;;;;;553:117:72;-1:-1:-1;;;;;620:22:72;;;;612:54;;;;;-1:-1:-1;;;;;612:54:72;;;;;;;;;;;;;;;;;;;;;;;;;;;6812:149:4;6893:1;6883:7;:11;;;:43;;;;-1:-1:-1;1763:7:4;6898:28;;;;;6883:43;6875:82;;;;;;;-1:-1:-1;;;;;6875:82:4;;;;;;;;;;;;;;;;;;;;;;;;;;;5670:76;5715:10;:8;:10::i;:::-;5707:35;;;;;;;-1:-1:-1;;;;;5707:35:4;;;;;;;;;;;;;;;;;;;;;;;;;;;12933:1158:23;13134:13;:20;13183:21;;13075:9;;;;13173:31;;13165:63;;;;;-1:-1:-1;;;;;13165:63:23;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;13165:63:23;;;;;;;;;;;;;;;13257:22;;13247:32;;13239:63;;;;;-1:-1:-1;;;;;13239:63:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;13324:1;13320:5;;13315:650;13331:6;13327:1;:10;13315:650;;;13455:8;:27;13464:14;13479:1;13464:17;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13455:27:23;;;;;;;;;;;-1:-1:-1;13455:27:23;:33;;;;;;;;;13447:65;;;;;;;-1:-1:-1;;;;;13447:65:23;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;13447:65:23;;;;;;;;;;;;;;;13536:1;13532:5;;13527:133;13543:6;13539:1;:10;13527:133;;;13599:14;13614:1;13599:17;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13579:37:23;:13;13593:1;13579:16;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13579:16:23;:37;13575:69;;;13639:5;;13575:69;13551:3;;;;;13527:133;;;13770:10;;;13762:42;;;;;-1:-1:-1;;;;;13762:42:23;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;13762:42:23;;;;;;;;;;;;;;;13929:1;13908:15;13924:1;13908:18;;;;;;;;;;;;;;;;;;;:22;13900:53;;;;;-1:-1:-1;;;;;13900:53:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;13339:3;;;;;13315:650;;;14062:1;14052:11;;14044:39;;;;;-1:-1:-1;;;;;14044:39:23;;;;;;;;;;;;;;;;;;;;;;;;;;;14353:379;14509:7;14538:17;;14534:99;;;14577:56;14601:14;14617:15;14577:23;:56::i;:::-;14570:63;;;;14534:99;14651:73;14678:14;14694:15;14711:12;14651:26;:73::i;:::-;14644:80;;14353:379;;;;;;:::o;16577:155:4:-;16683:13;;16645:7;;16665:63;;1826:7;;16665:32;;:13;;16683;;;16665:63;16683:13;;;;16665:17;:32;:::i;:::-;:36;:63;:36;:63;:::i;17223:174::-;17290:13;:20;17267;17314:79;17338:12;17334:1;:16;17314:79;;;17357:36;17376:13;17390:1;17376:16;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;17376:16:4;17357:18;:36::i;:::-;17352:3;;17314:79;;613:129:69;673:7;694:8;;;;686:34;;;;;-1:-1:-1;;;;;686:34:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;731:7:69;;;613:129::o;1740:206:70:-;351:50;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1870:71:70;;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;1870:71:70;;;;;;;25:18:-1;;61:17;;1870:71:70;182:15:-1;-1:-1;;1870:71:70;;;179:29:-1;;;;160:49;;;1854:88:70;;1862:6;;1854:7;:88::i;:::-;1740:206;;;;:::o;288:144:69:-;348:7;373;;;392;;;;384:32;;;;;-1:-1:-1;;;;;384:32:69;;;;;;;;;;;;;;;;;;;;;;;;;;;24265:285:23;24442:6;;-1:-1:-1;;;;;24426:116:23;;;;24442:6;24426:116;24465:38;:15;1763:7:4;24465:19:23;:38::i;:::-;24505:36;:16;:36;;;;;:20;:36;:::i;:::-;24426:116;;;;;;;;;;;;;;;;;;;;;;24265:285;;;;:::o;2090:197:9:-;2219:1;2197:19;:17;:19::i;:::-;:23;;;2189:61;;;;;-1:-1:-1;;;;;2189:61:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;2254:29;:27;:29::i;4223:1642:23:-;4386:7;4459:14;4475:11;4745:28;4490:55;4509:12;4523;4537:7;4490:18;:55::i;:::-;4458:87;;-1:-1:-1;4458:87:23;-1:-1:-1;4626:11:23;;;4618:46;;;;;-1:-1:-1;;;;;4618:46:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;4776:28;4791:12;4776:14;:28::i;:::-;4745:59;-1:-1:-1;4822:29:23;;;4815:37;;;;-1:-1:-1;;;;;4932:35:23;;-1:-1:-1;;;;;;;;;;;4932:35:23;4928:261;;;4990:9;:20;;4982:56;;;;;-1:-1:-1;;;;;4982:56:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;4928:261;;;5075:9;:14;:91;;;;;5159:7;5093:62;5126:28;5141:12;5126:14;:28::i;:::-;5093;;;;;;5116:4;5093:28;;;;;;-1:-1:-1;;;;;5093:22:23;;;;;:28;;;;;;;;;;;;;;-1:-1:-1;5093:22:23;:28;;;5:2:-1;;;;30:1;27;20:12;5:2;5093:28:23;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5093:28:23;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5093:28:23;;:62;:32;:62;:::i;:::-;:73;;5075:91;5067:122;;;;;;;-1:-1:-1;;;;;5067:122:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;5240:32;5259:12;5240:18;:32::i;:::-;-1:-1:-1;;;;;5316:22:23;;;;;;:8;:22;;;;;:30;:42;;5351:6;5316:42;:34;:42;:::i;:::-;-1:-1:-1;;;;;5283:22:23;;;;;;:8;:22;;;;;:75;;;;-1:-1:-1;;;;;;;;;;;5445:35:23;5441:160;;;5495:29;;-1:-1:-1;;;;;5495:21:23;;;:29;;;;;5517:6;;5495:29;;;;5517:6;5495:21;:29;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5495:29:23;5441:160;;;5553:48;5566:12;5580;5594:6;5553:12;:48::i;:::-;5656:82;5680:12;5694;5708:7;5717;5726:6;5734:3;5656:23;:82::i;:::-;5785:46;5804:12;5818;5785:18;:46::i;:::-;-1:-1:-1;5851:6:23;;4223:1642;-1:-1:-1;;;;;;;4223:1642:23:o;1214:173:70:-;248:38;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1323:59:70;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;1323:59:70;;;;;;;;25:18:-1;;61:17;;1323:59:70;182:15:-1;-1:-1;;1323:59:70;;;179:29:-1;;;;160:49;;;1307:76:70;;1315:6;;1307:7;:76::i;:::-;1214:173;;;:::o;14958:1136:23:-;15097:7;15207:14;15351:9;15889:20;15224:30;15238:15;15224:13;:30::i;:::-;15207:47;;15363:1;15351:13;;15346:715;15370:14;:21;15366:1;:25;15346:715;;;15417:17;;-1:-1:-1;;;;;;;;;;;1884:42:4;15417:14:23;;15432:1;;15417:17;;;;;;;;;;;;;;;-1:-1:-1;;;;;15417:40:23;;15413:199;;15539:73;15556:14;15571:1;15556:17;;;;;;;;;;;;;;;;;;15575:10;15587:4;15593:15;15609:1;15593:18;;;;;;;;;;;;;;;;;;15539:16;:73::i;:::-;15667:15;15683:1;15667:18;;;;;;;;;;;;;;;;;;15629:8;:27;15638:14;15653:1;15638:17;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;15629:27:23;;;;;;;;;;;-1:-1:-1;15629:27:23;:56;15734:17;;:14;;15749:1;;15734:17;;;;;;;;;;;;;;-1:-1:-1;;;;;15707:93:23;15722:10;-1:-1:-1;;;;;15707:93:23;;15753:15;15769:1;15753:18;;;;;;;;;;;;;;;;;;15773:15;15789:1;15773:18;;;;;;;;;;;;;;;;;;;;15707:93;;;;;;;;;;;;;;;;;;;;;;;;;15912:8;:27;15921:14;15936:1;15921:17;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;15912:27:23;;;;;;;;;;;-1:-1:-1;15912:27:23;:34;;;15996:17;;15912:34;;;;;-1:-1:-1;15961:88:23;;15988:6;;15996:14;;16011:1;;15996:17;;;;;;;;;;;;;;16015:15;16031:1;16015:18;;;;;;;;;;;;;;;;;;16035:13;15961:26;:88::i;:::-;15393:3;;;;;15346:715;;;-1:-1:-1;16080:6:23;;14958:1136;-1:-1:-1;;;;14958:1136:23:o;16376:2010::-;16540:7;16702:26;16791:14;16886:26;16957:9;17019:24;17078:18;17144:21;17843:25;18170:20;16565:21;:19;:21::i;:::-;-1:-1:-1;;;;;;;;;;;16637:29:23;;:8;:29;;-1:-1:-1;;;;;;;;;;;16637:37:23;:52;;16679:9;16637:52;:41;:52;:::i;:::-;-1:-1:-1;;;;;;;;;;;16597:29:23;;:8;:29;;-1:-1:-1;;;;;;;;;;;16597:92:23;16750:29;-1:-1:-1;;;;;;;;;;;16750:9:23;:29::i;:::-;16702:78;;16808:67;16820:7;16829:12;16843:14;16859:15;16808:11;:67::i;:::-;16791:84;-1:-1:-1;16915:24:23;:12;16791:84;16915:24;:16;:24;:::i;:::-;16886:53;;16969:1;16957:13;;16952:1401;16976:14;:21;16972:1;:25;16952:1401;;;17046:14;17061:1;17046:17;;;;;;;;;;;;;;;;;;17019:44;;17099:8;:22;17108:12;-1:-1:-1;;;;;17099:22:23;-1:-1:-1;;;;;17099:22:23;;;;;;;;;;;;:30;;;17078:51;;17168:7;-1:-1:-1;;;;;17168:16:23;;17185:12;17199:10;17211:12;;;;;;;;;;;17225:6;17168:64;;;;;-1:-1:-1;;;17168:64:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17168:64:23;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17168:64:23;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;17168:64:23;;-1:-1:-1;17271:1:23;17255:17;;17247:52;;;;;-1:-1:-1;;;;;17247:52:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;17338:15;17354:1;17338:18;;;;;;;;;;;;;;;;;;;17321:35;;;17314:43;;;;-1:-1:-1;;;;;17461:35:23;;-1:-1:-1;;;;;;;;;;;17461:35:23;17457:369;;17578:63;17595:12;17609:10;17621:4;17627:13;17578:16;:63::i;:::-;17457:369;;;17686:13;17665:15;17681:1;17665:18;;;;;;;;;;;;;;;;;;:34;17661:165;;;17771:10;-1:-1:-1;;;;;17771:19:23;:55;17812:13;17791:15;17807:1;17791:18;;;;;;;;;;;;;;;;;;:34;17771:55;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17771:55:23;17661:165;17871:29;:10;17886:13;17871:29;:14;:29;:::i;:::-;-1:-1:-1;;;;;17915:22:23;;;;;;:8;:22;;;;;;;;;:50;;;17987:94;;;;;;;;;;;;;;;;;;;17843:57;;-1:-1:-1;17915:22:23;;18002:10;;17987:94;;;;;;;;;;18193:8;:27;18202:14;18217:1;18202:17;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;18193:27:23;;;;;;;;;;;-1:-1:-1;18193:27:23;:34;;;18289:17;;18193:34;;;;;-1:-1:-1;18242:99:23;;18269:18;;18289:14;;18304:1;;18289:17;;;;;;;;;;;;;;18308;18327:13;18242:26;:99::i;:::-;16999:3;;;;;16952:1401;;;-1:-1:-1;18372:6:23;;16376:2010;-1:-1:-1;;;;;;;;;;;16376:2010:23:o;924:197:69:-;984:7;;1023;;1019:21;;;1039:1;1032:8;;;;1019:21;-1:-1:-1;1057:7:69;;;1062:2;1057;:7;1076:6;;;;;;;;:12;1068:37;;;;;-1:-1:-1;;;;;1068:37:69;;;;;;;;;;;;;;;;;;;;;;;;;;;1307:149;1367:7;;1388:6;;;1380:37;;;;;-1:-1:-1;;;;;1380:37:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;1438:2;1433;:7;;;;;;;;;1307:149;-1:-1:-1;;;;1307:149:69:o;2255:557:70:-;2324:21;;:::i;:::-;:36;;;;;;;;;2357:1;2324:36;;;;;2687:2;2661:3;2580:5;2574:12;2495:2;2488:5;2484:14;2465:1;2430:6;2404:3;2394:317;2725:7;2718:15;2715:2;;;2750:1;2747;2740:12;2715:2;-1:-1:-1;2773:6:70;;:11;;2765:43;;;;;-1:-1:-1;;;;;2765:43:70;;;;;;;;;;;;;;;;;;;;;;;;;;;9796:227:4;575:12:66;:10;:12::i;:::-;9935:1:4;9913:19;:17;:19::i;:::-;:23;;;9905:61;;;;;-1:-1:-1;;;;;9905:61:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;9970:6;;;;;;;;;-1:-1:-1;;;;;9970:6:4;-1:-1:-1;;;;;9970:22:4;;:24;;;;;-1:-1:-1;;;9970:24:4;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9970:24:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9970:24:4;;;;9998:21;:19;:21::i;17773:656::-;18318:6;18305:19;;18298:27;;;;18334:91;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;18334:91:4;;;;;;;;;;;;;;;;;;;;;17773:656;;;;;;:::o;22602:1278:23:-;22701:23;22771:28;22841;22911:26;22980;23096:13;23168;22739:6;;;;;;;;;-1:-1:-1;;;;;22739:6:23;-1:-1:-1;;;;;22727:31:23;;:33;;;;;-1:-1:-1;;;22727:33:23;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;22727:33:23;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;22727:33:23;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;22727:33:23;;-1:-1:-1;22802:28:23;22817:12;22802:14;:28::i;:::-;22771:59;;22872:28;22887:12;22872:14;:28::i;:::-;-1:-1:-1;;;;;22940:22:23;;;;;;;:8;:22;;;;;;:29;;;;;23009:22;;;;;;;:29;;22841:59;;-1:-1:-1;22940:29:23;;;;;-1:-1:-1;23009:29:23;;;;-1:-1:-1;23112:45:23;;22841:59;;22940:29;;23112:24;:45;:::i;:::-;23096:61;-1:-1:-1;23184:45:23;:20;:45;;;;;:24;:45;:::i;:::-;23245:57;;;;;;;;;;;;;;23168:61;;-1:-1:-1;;;;;;23245:57:23;;;;;;;;;;;;;;;;23383:100;23410:15;23427:12;23441:20;23463:19;23383:26;:100::i;:::-;23494;23521:15;23538:12;23552:20;23574:19;23494:26;:100::i;:::-;23678:89;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;23678:89:23;;;;;;;;;;;;;23783;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;23783:89:23;;;;;;;;;;;;;22602:1278;;;;;;;;;:::o;20326:612::-;20490:7;;20558:1;20541:249;20565:14;:21;20561:1;:25;20541:249;;;20681:66;20711:8;:27;20720:14;20735:1;20720:17;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;20711:27:23;;;;;;;;;;;-1:-1:-1;20711:27:23;:35;20681:25;;:15;;20697:8;;20681:25;;;;;;;;;;;;;;;;:66;:29;:66;:::i;:::-;20612;20635:8;:34;20644:14;20659:8;20644:24;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;20635:34:23;;;;;;;;;;;-1:-1:-1;20635:34:23;:42;20612:18;;:15;;20628:1;;20612:18;;;;;:66;:135;20608:170;;;20777:1;20766:12;;20608:170;20588:3;;20541:249;;;20807:7;-1:-1:-1;;;;;20807:24:23;;20832:12;20846:8;:34;20855:14;20870:8;20855:24;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;20846:34:23;;;;;;;;;;;-1:-1:-1;20846:34:23;:42;20890:12;;20904:25;;20890:12;;;;;20904:15;;20920:8;;20904:25;;;;;;;;;;;;;;20807:123;;;;;-1:-1:-1;;;20807:123:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;20807:123:23;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;20807:123:23;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;20807:123:23;;20326:612;-1:-1:-1;;;;;;;20326:612:23:o;101:327:36:-;;;;;;;;;-1:-1:-1;101:327:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;-1:-1;101:327:36;;;-1:-1:-1;;101:327:36:o" - }, - "methodIdentifiers": { - "acceptAnchorOwnership()": "cdc91c69", - "acceptOwnership()": "79ba5097", - "acceptTokenOwnership()": "38a5e016", - "addLiquidity(address[],uint256[],uint256)": "7d8916bd", - "addReserve(address,uint32)": "6a49d2c4", - "anchor()": "d3fb73b4", - "connectorTokenCount()": "71f52bf3", - "connectorTokens(uint256)": "19b64015", - "connectors(address)": "0e53aae9", - "conversionFee()": "579cd3ca", - "conversionWhitelist()": "c45d3d92", - "conversionsEnabled()": "bf754558", - "convert(address,address,uint256,address,address)": "e8dc12ff", - "converterType()": "3e8ff43f", - "decimalLength(uint256)": "6aa5332c", - "fund(uint256)": "ca1d209d", - "geometricMean(uint256[])": "a60e7724", - "getConnectorBalance(address)": "d8959512", - "getReturn(address,address,uint256)": "1e1401f8", - "hasETHReserve()": "12c2aca4", - "isActive()": "22f3e2d4", - "isV28OrHigher()": "d260529c", - "liquidate(uint256)": "415f1240", - "maxConversionFee()": "94c275ad", - "newOwner()": "d4ee1d90", - "onlyOwnerCanUpdateRegistry()": "2fe8a6ad", - "owner()": "8da5cb5b", - "prevRegistry()": "61cd756e", - "registry()": "7b103999", - "removeLiquidity(uint256,address[],uint256[])": "b127c0a5", - "reserveBalance(address)": "dc8de379", - "reserveRatio()": "0c7d5cd8", - "reserveTokenCount()": "9b99a8e2", - "reserveTokens(uint256)": "d031370b", - "reserveWeight(address)": "1cfab290", - "reserves(address)": "d66bd524", - "restoreRegistry()": "b4a176d3", - "restrictRegistryUpdate(bool)": "024c7ec7", - "roundDiv(uint256,uint256)": "bbb7e5d8", - "setConversionFee(uint32)": "ecbca55d", - "setConversionWhitelist(address)": "4af80f0e", - "setEtherToken(address)": "6ad419a8", - "targetAmountAndFee(address,address,uint256)": "af94b8d8", - "token()": "fc0c546a", - "transferAnchorOwnership(address)": "67b6d57c", - "transferOwnership(address)": "f2fde38b", - "transferTokenOwnership(address)": "21e6b53d", - "updateRegistry()": "49d10b64", - "upgrade()": "d55ec697", - "version()": "54fd4d50", - "withdrawETH(address)": "690d8320", - "withdrawFromAnchor(address,address,uint256)": "395900d4", - "withdrawTokens(address,address,uint256)": "5e35359e" - } - }, - "userdoc": { - "methods": {} - } - } - }, - "solidity/contracts/helpers/TestLiquidityPoolV2Converter.sol": { - "TestLiquidityPoolV2Converter": { - "abi": [ - { - "constant": true, - "inputs": [ - { - "name": "_reserveToken", - "type": "address" - } - ], - "name": "reserveStakedBalance", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_onlyOwnerCanUpdateRegistry", - "type": "bool" - } - ], - "name": "restrictRegistryUpdate", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "primaryReserveToken", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "maxStakedBalanceEnabled", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "reserveRatio", - "outputs": [ - { - "name": "", - "type": "uint32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_address", - "type": "address" - } - ], - "name": "connectors", - "outputs": [ - { - "name": "", - "type": "uint256" - }, - { - "name": "", - "type": "uint32" - }, - { - "name": "", - "type": "bool" - }, - { - "name": "", - "type": "bool" - }, - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_primaryReserveStaked", - "type": "uint256" - }, - { - "name": "_secondaryReserveStaked", - "type": "uint256" - }, - { - "name": "_primaryReserveWeight", - "type": "uint256" - }, - { - "name": "_secondaryReserveWeight", - "type": "uint256" - }, - { - "name": "_primaryReserveRate", - "type": "uint256" - }, - { - "name": "_secondaryReserveRate", - "type": "uint256" - }, - { - "name": "_dynamicFeeFactor", - "type": "uint256" - } - ], - "name": "calculateFeeToEquilibriumTest", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "pure", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_primaryReserveToken", - "type": "address" - }, - { - "name": "_primaryReserveOracle", - "type": "address" - }, - { - "name": "_secondaryReserveOracle", - "type": "address" - } - ], - "name": "activate", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "hasETHReserve", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "disableMaxStakedBalances", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_index", - "type": "uint256" - } - ], - "name": "connectorTokens", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_reserveToken", - "type": "address" - } - ], - "name": "reserveWeight", - "outputs": [ - { - "name": "", - "type": "uint32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_sourceToken", - "type": "address" - }, - { - "name": "_targetToken", - "type": "address" - }, - { - "name": "_amount", - "type": "uint256" - } - ], - "name": "getReturn", - "outputs": [ - { - "name": "", - "type": "uint256" - }, - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_newOwner", - "type": "address" - } - ], - "name": "transferTokenOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "isActive", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "priceOracle", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_reserveToken", - "type": "address" - } - ], - "name": "reserveAmplifiedBalance", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_poolToken", - "type": "address" - } - ], - "name": "liquidationLimit", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "onlyOwnerCanUpdateRegistry", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "acceptTokenOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_token", - "type": "address" - }, - { - "name": "_to", - "type": "address" - }, - { - "name": "_amount", - "type": "uint256" - } - ], - "name": "withdrawFromAnchor", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_currentTime", - "type": "uint256" - } - ], - "name": "setTime", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "converterType", - "outputs": [ - { - "name": "", - "type": "uint16" - } - ], - "payable": false, - "stateMutability": "pure", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_reserve1MaxStakedBalance", - "type": "uint256" - }, - { - "name": "_reserve2MaxStakedBalance", - "type": "uint256" - } - ], - "name": "setMaxStakedBalances", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "updateRegistry", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_whitelist", - "type": "address" - } - ], - "name": "setConversionWhitelist", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "version", - "outputs": [ - { - "name": "", - "type": "uint16" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_reserveToken", - "type": "address" - }, - { - "name": "_amount", - "type": "uint256" - }, - { - "name": "_minReturn", - "type": "uint256" - } - ], - "name": "addLiquidity", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": true, - "stateMutability": "payable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_reserveToken", - "type": "address" - } - ], - "name": "poolToken", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "conversionFee", - "outputs": [ - { - "name": "", - "type": "uint32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_reserveToken", - "type": "address" - }, - { - "name": "_weight", - "type": "uint32" - } - ], - "name": "setReserveWeight", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_token", - "type": "address" - }, - { - "name": "_to", - "type": "address" - }, - { - "name": "_amount", - "type": "uint256" - } - ], - "name": "withdrawTokens", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "prevRegistry", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_newOwner", - "type": "address" - } - ], - "name": "transferAnchorOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_poolToken", - "type": "address" - }, - { - "name": "_amount", - "type": "uint256" - } - ], - "name": "removeLiquidityReturnAndFee", - "outputs": [ - { - "name": "", - "type": "uint256" - }, - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_to", - "type": "address" - } - ], - "name": "withdrawETH", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_dynamicFeeFactor", - "type": "uint256" - } - ], - "name": "setDynamicFeeFactor", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_token", - "type": "address" - }, - { - "name": "_weight", - "type": "uint32" - } - ], - "name": "addReserve", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "connectorTokenCount", - "outputs": [ - { - "name": "", - "type": "uint16" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "acceptOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "registry", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "owner", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "maxConversionFee", - "outputs": [ - { - "name": "", - "type": "uint32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "", - "type": "address" - } - ], - "name": "maxStakedBalances", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "reserveTokenCount", - "outputs": [ - { - "name": "", - "type": "uint16" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "referenceRate", - "outputs": [ - { - "name": "n", - "type": "uint256" - }, - { - "name": "d", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_sourceToken", - "type": "address" - }, - { - "name": "_targetToken", - "type": "address" - }, - { - "name": "_amount", - "type": "uint256" - } - ], - "name": "targetAmountAndFee", - "outputs": [ - { - "name": "", - "type": "uint256" - }, - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "restoreRegistry", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "conversionsEnabled", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_reserveToken", - "type": "address" - }, - { - "name": "_balance", - "type": "uint256" - } - ], - "name": "setReserveStakedBalance", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "referenceRateUpdateTime", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "conversionWhitelist", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "acceptAnchorOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "", - "type": "uint256" - } - ], - "name": "reserveTokens", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "currentTime", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "isV28OrHigher", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "pure", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "anchor", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "newOwner", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "upgrade", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "amplificationFactor", - "outputs": [ - { - "name": "", - "type": "uint8" - } - ], - "payable": false, - "stateMutability": "pure", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "", - "type": "address" - } - ], - "name": "reserves", - "outputs": [ - { - "name": "balance", - "type": "uint256" - }, - { - "name": "weight", - "type": "uint32" - }, - { - "name": "deprecated1", - "type": "bool" - }, - { - "name": "deprecated2", - "type": "bool" - }, - { - "name": "isSet", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_connectorToken", - "type": "address" - } - ], - "name": "getConnectorBalance", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "effectiveTokensRate", - "outputs": [ - { - "name": "", - "type": "uint256" - }, - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "secondaryReserveToken", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_reserveToken", - "type": "address" - } - ], - "name": "reserveBalance", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_poolToken", - "type": "address" - }, - { - "name": "_amount", - "type": "uint256" - }, - { - "name": "_minReturn", - "type": "uint256" - } - ], - "name": "removeLiquidity", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "dynamicFeeFactor", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_sourceToken", - "type": "address" - }, - { - "name": "_targetToken", - "type": "address" - }, - { - "name": "_amount", - "type": "uint256" - }, - { - "name": "_trader", - "type": "address" - }, - { - "name": "_beneficiary", - "type": "address" - } - ], - "name": "convert", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": true, - "stateMutability": "payable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "effectiveReserveWeights", - "outputs": [ - { - "name": "", - "type": "uint256" - }, - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_conversionFee", - "type": "uint32" - } - ], - "name": "setConversionFee", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_referenceRateUpdateTime", - "type": "uint256" - } - ], - "name": "setReferenceRateUpdateTime", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "lastConversionRate", - "outputs": [ - { - "name": "n", - "type": "uint256" - }, - { - "name": "d", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "token", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "name": "_token", - "type": "address" - }, - { - "name": "_registry", - "type": "address" - }, - { - "name": "_maxConversionFee", - "type": "uint32" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "payable": true, - "stateMutability": "payable", - "type": "fallback" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "_prevFactor", - "type": "uint256" - }, - { - "indexed": false, - "name": "_newFactor", - "type": "uint256" - } - ], - "name": "DynamicFeeFactorUpdate", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "_provider", - "type": "address" - }, - { - "indexed": true, - "name": "_reserveToken", - "type": "address" - }, - { - "indexed": false, - "name": "_amount", - "type": "uint256" - }, - { - "indexed": false, - "name": "_newBalance", - "type": "uint256" - }, - { - "indexed": false, - "name": "_newSupply", - "type": "uint256" - } - ], - "name": "LiquidityAdded", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "_provider", - "type": "address" - }, - { - "indexed": true, - "name": "_reserveToken", - "type": "address" - }, - { - "indexed": false, - "name": "_amount", - "type": "uint256" - }, - { - "indexed": false, - "name": "_newBalance", - "type": "uint256" - }, - { - "indexed": false, - "name": "_newSupply", - "type": "uint256" - } - ], - "name": "LiquidityRemoved", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "_type", - "type": "uint16" - }, - { - "indexed": true, - "name": "_anchor", - "type": "address" - }, - { - "indexed": true, - "name": "_activated", - "type": "bool" - } - ], - "name": "Activation", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "_fromToken", - "type": "address" - }, - { - "indexed": true, - "name": "_toToken", - "type": "address" - }, - { - "indexed": true, - "name": "_trader", - "type": "address" - }, - { - "indexed": false, - "name": "_amount", - "type": "uint256" - }, - { - "indexed": false, - "name": "_return", - "type": "uint256" - }, - { - "indexed": false, - "name": "_conversionFee", - "type": "int256" - } - ], - "name": "Conversion", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "_token1", - "type": "address" - }, - { - "indexed": true, - "name": "_token2", - "type": "address" - }, - { - "indexed": false, - "name": "_rateN", - "type": "uint256" - }, - { - "indexed": false, - "name": "_rateD", - "type": "uint256" - } - ], - "name": "TokenRateUpdate", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "_prevFee", - "type": "uint32" - }, - { - "indexed": false, - "name": "_newFee", - "type": "uint32" - } - ], - "name": "ConversionFeeUpdate", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "_prevOwner", - "type": "address" - }, - { - "indexed": true, - "name": "_newOwner", - "type": "address" - } - ], - "name": "OwnerUpdate", - "type": "event" - } - ], - "devdoc": { - "methods": { - "acceptAnchorOwnership()": { - "details": "accepts ownership of the anchor after an ownership transfer also activates the converter can only be called by the contract owner note that prior to version 28, you should use 'acceptTokenOwnership' instead" - }, - "acceptOwnership()": { - "details": "used by a new owner to accept an ownership transfer" - }, - "acceptTokenOwnership()": { - "details": "deprecated, backward compatibility" - }, - "activate(address,address,address)": { - "details": "sets the pool's primary reserve token / price oracles and activates the pool\r each oracle must be able to provide the rate for each reserve token\r note that the oracle must be whitelisted prior to the call\r can only be called by the owner while the pool is inactive\r ", - "params": { - "_primaryReserveOracle": "address of a chainlink price oracle for the primary reserve token\r", - "_primaryReserveToken": "address of the pool's primary reserve token\r", - "_secondaryReserveOracle": "address of a chainlink price oracle for the secondary reserve token\r" - } - }, - "addLiquidity(address,uint256,uint256)": { - "details": "increases the pool's liquidity and mints new shares in the pool to the caller\r ", - "params": { - "_amount": "amount of liquidity to add\r", - "_minReturn": "minimum return-amount of pool tokens\r ", - "_reserveToken": "address of the reserve token to add liquidity to\r" - }, - "return": "amount of pool tokens minted\r" - }, - "addReserve(address,uint32)": { - "details": "defines a new reserve token for the converter\r can only be called by the owner while the converter is inactive and\r 2 reserves aren't defined yet\r ", - "params": { - "_token": "address of the reserve token\r", - "_weight": "reserve weight, represented in ppm, 1-1000000\r" - } - }, - "amplificationFactor()": { - "details": "returns the liquidity amplification factor in the pool\r ", - "return": "liquidity amplification factor\r" - }, - "connectorTokenCount()": { - "details": "deprecated, backward compatibility" - }, - "connectorTokens(uint256)": { - "details": "deprecated, backward compatibility" - }, - "connectors(address)": { - "details": "deprecated, backward compatibility" - }, - "convert(address,address,uint256,address,address)": { - "details": "converts a specific amount of source tokens to target tokens can only be called by the SovrynSwap network contract", - "params": { - "_amount": "amount of tokens to convert (in units of the source token)", - "_beneficiary": "wallet to receive the conversion result", - "_sourceToken": "source ERC20 token", - "_targetToken": "target ERC20 token", - "_trader": "address of the caller who executed the conversion" - }, - "return": "amount of tokens received (in units of the target token)" - }, - "converterType()": { - "details": "returns the converter type\r ", - "return": "see the converter types in the the main contract doc\r" - }, - "disableMaxStakedBalances()": { - "details": "disables the max staked balance mechanism\r available as a temporary mechanism during the pilot\r once disabled, it cannot be re-enabled\r can only be called by the owner\r" - }, - "effectiveReserveWeights()": { - "details": "returns the effective reserve tokens weights\r ", - "return": "reserve1 weight\rreserve2 weight\r" - }, - "effectiveTokensRate()": { - "details": "returns the effective rate of 1 primary token in secondary tokens\r ", - "return": "rate of 1 primary token in secondary tokens (numerator)\rrate of 1 primary token in secondary tokens (denominator)\r" - }, - "getConnectorBalance(address)": { - "details": "deprecated, backward compatibility" - }, - "getReturn(address,address,uint256)": { - "details": "deprecated, backward compatibility" - }, - "hasETHReserve()": { - "details": "checks whether or not the converter has an ETH reserve", - "return": "true if the converter has an ETH reserve, false otherwise" - }, - "isActive()": { - "details": "returns true if the converter is active, false otherwise\r ", - "return": "true if the converter is active, false otherwise\r" - }, - "isV28OrHigher()": { - "details": "checks whether or not the converter version is 28 or higher", - "return": "true, since the converter version is 28 or higher" - }, - "liquidationLimit(address)": { - "details": "returns the maximum number of pool tokens that can currently be liquidated\r ", - "params": { - "_poolToken": "address of the pool token\r " - }, - "return": "liquidation limit\r" - }, - "poolToken(address)": { - "details": "returns the pool token address by the reserve token address\r ", - "params": { - "_reserveToken": "reserve token address\r " - }, - "return": "pool token address\r" - }, - "removeLiquidity(address,uint256,uint256)": { - "details": "decreases the pool's liquidity and burns the caller's shares in the pool\r ", - "params": { - "_amount": "amount of pool tokens to burn\r", - "_minReturn": "minimum return-amount of reserve tokens\r ", - "_poolToken": "address of the pool token\r" - }, - "return": "amount of liquidity removed\r" - }, - "removeLiquidityReturnAndFee(address,uint256)": { - "details": "calculates the amount of reserve tokens entitled for a given amount of pool tokens\r note that a fee is applied according to the equilibrium level of the primary reserve token\r ", - "params": { - "_amount": "amount of pool tokens\r ", - "_poolToken": "address of the pool token\r" - }, - "return": "amount after fee and fee, in reserve token units\r" - }, - "reserveAmplifiedBalance(address)": { - "details": "returns the amplified balance of a given reserve token\r ", - "params": { - "_reserveToken": "reserve token address\r " - }, - "return": "amplified balance\r" - }, - "reserveBalance(address)": { - "details": "returns the reserve's balance note that prior to version 17, you should use 'getConnectorBalance' instead", - "params": { - "_reserveToken": "reserve token contract address" - }, - "return": "reserve balance" - }, - "reserveStakedBalance(address)": { - "details": "returns the staked balance of a given reserve token\r ", - "params": { - "_reserveToken": "reserve token address\r " - }, - "return": "staked balance\r" - }, - "reserveTokenCount()": { - "details": "returns the number of reserve tokens defined note that prior to version 17, you should use 'connectorTokenCount' instead", - "return": "number of reserve tokens" - }, - "reserveWeight(address)": { - "details": "returns the reserve's weight added in version 28", - "params": { - "_reserveToken": "reserve token contract address" - }, - "return": "reserve weight" - }, - "restoreRegistry()": { - "details": "restores the previous contract-registry" - }, - "restrictRegistryUpdate(bool)": { - "details": "restricts the permission to update the contract-registry", - "params": { - "_onlyOwnerCanUpdateRegistry": "indicates whether or not permission is restricted to owner only" - } - }, - "setConversionFee(uint32)": { - "details": "updates the current conversion fee can only be called by the contract owner", - "params": { - "_conversionFee": "new conversion fee, represented in ppm" - } - }, - "setConversionWhitelist(address)": { - "details": "allows the owner to update & enable the conversion whitelist contract address when set, only addresses that are whitelisted are actually allowed to use the converter note that the whitelist check is actually done by the SovrynSwapNetwork contract", - "params": { - "_whitelist": "address of a whitelist contract" - } - }, - "setDynamicFeeFactor(uint256)": { - "details": "updates the current dynamic fee factor\r can only be called by the contract owner\r ", - "params": { - "_dynamicFeeFactor": "new dynamic fee factor, represented in ppm\r" - } - }, - "setMaxStakedBalances(uint256,uint256)": { - "details": "sets the max staked balance for both reserves\r available as a temporary mechanism during the pilot\r can only be called by the owner\r ", - "params": { - "_reserve1MaxStakedBalance": "max staked balance for reserve 1\r", - "_reserve2MaxStakedBalance": "max staked balance for reserve 2\r" - } - }, - "setReserveStakedBalance(address,uint256)": { - "details": "sets the reserve's staked balance\r can only be called by the upgrader contract while the upgrader is the owner\r ", - "params": { - "_balance": "new reserve staked balance\r", - "_reserveToken": "reserve token address\r" - } - }, - "targetAmountAndFee(address,address,uint256)": { - "details": "returns the expected target amount of converting one reserve to another along with the fee\r ", - "params": { - "_amount": "amount of tokens received from the user\r ", - "_sourceToken": "contract address of the source reserve token\r", - "_targetToken": "contract address of the target reserve token\r" - }, - "return": "expected target amount\rexpected fee\r" - }, - "token()": { - "details": "deprecated since version 28, backward compatibility - use only for earlier versions" - }, - "transferAnchorOwnership(address)": { - "details": "transfers the anchor ownership the new owner needs to accept the transfer can only be called by the converter upgrder while the upgrader is the owner note that prior to version 28, you should use 'transferAnchorOwnership' instead", - "params": { - "_newOwner": "new token owner" - } - }, - "transferOwnership(address)": { - "details": "allows transferring the contract ownership the new owner still needs to accept the transfer can only be called by the contract owner", - "params": { - "_newOwner": "new contract owner" - } - }, - "transferTokenOwnership(address)": { - "details": "deprecated, backward compatibility" - }, - "updateRegistry()": { - "details": "updates to the new contract-registry" - }, - "upgrade()": { - "details": "upgrades the converter to the latest version can only be called by the owner note that the owner needs to call acceptOwnership on the new converter after the upgrade" - }, - "withdrawETH(address)": { - "details": "withdraws ether can only be called by the owner if the converter is inactive or by upgrader contract can only be called after the upgrader contract has accepted the ownership of this contract can only be called if the converter has an ETH reserve", - "params": { - "_to": "address to send the ETH to" - } - }, - "withdrawFromAnchor(address,address,uint256)": { - "details": "withdraws tokens held by the anchor and sends them to an account can only be called by the owner", - "params": { - "_amount": "amount to withdraw", - "_to": "account to receive the new amount", - "_token": "ERC20 token contract address" - } - }, - "withdrawTokens(address,address,uint256)": { - "details": "withdraws tokens held by the converter and sends them to an account can only be called by the owner note that reserve tokens can only be withdrawn by the owner while the converter is inactive unless the owner is the converter upgrader contract", - "params": { - "_amount": "amount to withdraw", - "_to": "account to receive the new amount", - "_token": "ERC20 token contract address" - } - } - } - }, - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "608060405260016004819055600980546001606060020a03191690556015805460ff19169091179055620111706016553480156200003c57600080fd5b506040516060806200571483398101604090815281516020830151919092015160008054600160a060020a0319163317905582828282828282828281806200008d816401000000006200013d810204565b5060028054600160a060020a03909216600160a060020a031992831681179091556003805490921617905582620000cd816401000000006200013d810204565b81620000e281640100000000620001b8810204565b505060058054600160a060020a03909416600160a060020a031990941693909317909255506009805463ffffffff9092166401000000000267ffffffff00000000199092169190911790555062000231975050505050505050565b600160a060020a0381161515620001b557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b50565b620f424063ffffffff82161115620001b557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f4552525f494e56414c49445f434f4e56455253494f4e5f464545000000000000604482015290519081900360640190fd5b6154d380620002416000396000f3006080604052600436106103495763ffffffff60e060020a6000350416625e319c81146103e7578063024c7ec71461041a5780630337e3fb146104345780630a55fb3d146104655780630c7d5cd81461048e5780630e53aae9146104bc5780630f0fb40714610511578063119b90cd1461053b57806312c2aca41461056857806316912f961461057d57806319b64015146105925780631cfab290146105aa5780631e1401f8146105cb57806321e6b53d1461060e57806322f3e2d41461062f5780632630c12f146106445780632bd3c107146106595780632bf0c9851461067a5780632fe8a6ad1461069b57806338a5e016146106b0578063395900d4146106c55780633beb26c4146106ef5780633e8ff43f14610707578063467494681461073357806349d10b641461074e5780634af80f0e1461076357806354fd4d501461078457806355776b77146107995780635768adcf146107b3578063579cd3ca146107d457806359cd4eec146107e95780635e35359e1461081357806361cd756e1461083d57806367b6d57c1461085257806369067d9514610873578063690d83201461089757806369d1354a146108b85780636a49d2c4146108d057806371f52bf3146108fa57806379ba50971461090f5780637b103999146109245780638da5cb5b1461093957806394c275ad1461094e57806398a71dcb146109635780639b99a8e214610984578063a32bff4414610999578063af94b8d8146109ae578063b4a176d3146109d8578063bf754558146109ed578063bf7da6ba14610a02578063c3321fb014610a26578063c45d3d9214610a3b578063cdc91c6914610a50578063d031370b14610a65578063d18e81b314610a7d578063d260529c14610a92578063d3fb73b414610aa7578063d4ee1d9014610abc578063d55ec69714610ad1578063d64c5a1a14610ae6578063d66bd52414610b11578063d895951214610b32578063db2830a414610b53578063dc75eb9a14610b68578063dc8de37914610b7d578063e38192e314610b9e578063e8104af914610bc5578063e8dc12ff14610bda578063ec2240f514610c04578063ecbca55d14610c19578063f1ff40d914610c37578063f2fde38b14610c4f578063f9cddde214610c70578063fc0c546a14610c85575b60008051602061544883398151915260005260086020527f353c2eb9e53a4a4a6d45d72082ff2e9dc829d1125618772a83eb0e7f86632c43546601000000000000900460ff1615156103e5576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f5245534552564500000000000000000000000000604482015290519081900360640190fd5b005b3480156103f357600080fd5b50610408600160a060020a0360043516610c9a565b60408051918252519081900360200190f35b34801561042657600080fd5b506103e56004351515610cc3565b34801561044057600080fd5b50610449610d0b565b60408051600160a060020a039092168252519081900360200190f35b34801561047157600080fd5b5061047a610d1a565b604080519115158252519081900360200190f35b34801561049a57600080fd5b506104a3610d23565b6040805163ffffffff9092168252519081900360200190f35b3480156104c857600080fd5b506104dd600160a060020a0360043516610d2f565b6040805195865263ffffffff9094166020860152911515848401521515606084015215156080830152519081900360a00190f35b34801561051d57600080fd5b5061040860043560243560443560643560843560a43560c435610dca565b34801561054757600080fd5b506103e5600160a060020a0360043581169060243581169060443516610de7565b34801561057457600080fd5b5061047a611551565b34801561058957600080fd5b506103e561159a565b34801561059e57600080fd5b506104496004356115ae565b3480156105b657600080fd5b506104a3600160a060020a03600435166115da565b3480156105d757600080fd5b506105f5600160a060020a036004358116906024351660443561160c565b6040805192835260208301919091528051918290030190f35b34801561061a57600080fd5b506103e5600160a060020a0360043516611626565b34801561063b57600080fd5b5061047a61163a565b34801561065057600080fd5b5061044961166f565b34801561066557600080fd5b50610408600160a060020a036004351661168e565b34801561068657600080fd5b50610408600160a060020a03600435166116e3565b3480156106a757600080fd5b5061047a6117c6565b3480156106bc57600080fd5b506103e56117e7565b3480156106d157600080fd5b506103e5600160a060020a03600435811690602435166044356117f9565b3480156106fb57600080fd5b506103e5600435611894565b34801561071357600080fd5b5061071c611899565b6040805161ffff9092168252519081900360200190f35b34801561073f57600080fd5b506103e560043560243561189e565b34801561075a57600080fd5b506103e5611922565b34801561076f57600080fd5b506103e5600160a060020a0360043516611b82565b34801561079057600080fd5b5061071c611bb7565b610408600160a060020a0360043516602435604435611bbc565b3480156107bf57600080fd5b50610449600160a060020a0360043516612125565b3480156107e057600080fd5b506104a3612143565b3480156107f557600080fd5b506103e5600160a060020a036004351663ffffffff6024351661215b565b34801561081f57600080fd5b506103e5600160a060020a036004358116906024351660443561219c565b34801561084957600080fd5b506104496122b0565b34801561085e57600080fd5b506103e5600160a060020a03600435166122bf565b34801561087f57600080fd5b506105f5600160a060020a0360043516602435612362565b3480156108a357600080fd5b506103e5600160a060020a03600435166124bd565b3480156108c457600080fd5b506103e56004356125c2565b3480156108dc57600080fd5b506103e5600160a060020a036004351663ffffffff60243516612667565b34801561090657600080fd5b5061071c6126c6565b34801561091b57600080fd5b506103e56126d0565b34801561093057600080fd5b50610449612784565b34801561094557600080fd5b50610449612793565b34801561095a57600080fd5b506104a36127a2565b34801561096f57600080fd5b50610408600160a060020a03600435166127b6565b34801561099057600080fd5b5061071c6127c8565b3480156109a557600080fd5b506105f56127ce565b3480156109ba57600080fd5b506105f5600160a060020a03600435811690602435166044356127d7565b3480156109e457600080fd5b506103e561297b565b3480156109f957600080fd5b5061047a6129a7565b348015610a0e57600080fd5b506103e5600160a060020a03600435166024356129ac565b348015610a3257600080fd5b506104086129f4565b348015610a4757600080fd5b506104496129fa565b348015610a5c57600080fd5b506103e5612a09565b348015610a7157600080fd5b50610449600435612a62565b348015610a8957600080fd5b50610408612a8a565b348015610a9e57600080fd5b5061047a612a90565b348015610ab357600080fd5b50610449612a95565b348015610ac857600080fd5b50610449612aa4565b348015610add57600080fd5b506103e5612ab3565b348015610af257600080fd5b50610afb612ba8565b6040805160ff9092168252519081900360200190f35b348015610b1d57600080fd5b506104dd600160a060020a0360043516612bad565b348015610b3e57600080fd5b50610408600160a060020a0360043516612bf3565b348015610b5f57600080fd5b506105f5612c04565b348015610b7457600080fd5b50610449612c29565b348015610b8957600080fd5b50610408600160a060020a0360043516612c38565b348015610baa57600080fd5b50610408600160a060020a0360043516602435604435612c61565b348015610bd157600080fd5b50610408612fc6565b610408600160a060020a036004358116906024358116906044359060643581169060843516612fcc565b348015610c1057600080fd5b506105f561321f565b348015610c2557600080fd5b506103e563ffffffff6004351661329f565b348015610c4357600080fd5b506103e5600435613394565b348015610c5b57600080fd5b506103e5600160a060020a0360043516613399565b348015610c7c57600080fd5b506105f5613429565b348015610c9157600080fd5b50610449613432565b600081610ca681613441565b5050600160a060020a03166000908152600c602052604090205490565b610ccb6134c0565b60038054911515740100000000000000000000000000000000000000000274ff000000000000000000000000000000000000000019909216919091179055565b600a54600160a060020a031681565b60155460ff1681565b60095463ffffffff1681565b6000806000806000610d3f6153c3565b50505050600160a060020a03929092166000908152600860209081526040808320815160a081018352815480825260019092015463ffffffff811694820185905260ff64010000000082048116151594830194909452650100000000008104841615156060830152660100000000000090049092161515608090920182905295919450919250829190565b6000610ddb88888888888888613510565b98975050505050505050565b6000806000806000610df7613588565b610dff6134c0565b87610e0981613441565b87610e13816135e5565b87610e1d816135e5565b89610e2781613646565b89610e3181613646565b600554604080517f8da5cb5b00000000000000000000000000000000000000000000000000000000815290513092600160a060020a031691638da5cb5b9160048083019260209291908290030181600087803b158015610e9057600080fd5b505af1158015610ea4573d6000803e3d6000fd5b505050506040513d6020811015610eba57600080fd5b5051600160a060020a031614610f1a576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f414e43484f525f4e4f545f4f574e4544000000000000000000000000604482015290519081900360640190fd5b610f437f436861696e6c696e6b4f7261636c6557686974656c69737400000000000000006136a6565b995089600160a060020a0316633af32abf8d6040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b158015610fa057600080fd5b505af1158015610fb4573d6000803e3d6000fd5b505050506040513d6020811015610fca57600080fd5b50511515611022576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f494e56414c49445f4f5241434c450000000000000000000000000000604482015290519081900360640190fd5b89600160a060020a0316633af32abf8c6040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b15801561107d57600080fd5b505af1158015611091573d6000803e3d6000fd5b505050506040513d60208110156110a757600080fd5b505115156110ff576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f494e56414c49445f4f5241434c450000000000000000000000000000604482015290519081900360640190fd5b61110761373e565b600a8054600160a060020a031916600160a060020a038f1617905560078054600090811061113157fe5b600091825260209091200154600160a060020a038e81169116141561118f5760078054600190811061115f57fe5b600091825260209091200154600b8054600160a060020a031916600160a060020a039092169190911790556111ca565b60078054600090811061119e57fe5b600091825260209091200154600b8054600160a060020a031916600160a060020a039092169190911790555b6111f37f436f6e766572746572466163746f7279000000000000000000000000000000006136a6565b600160a060020a031663c977aed2611209611899565b6040518263ffffffff1660e060020a028152600401808261ffff1661ffff168152602001915050602060405180830381600087803b15801561124a57600080fd5b505af115801561125e573d6000803e3d6000fd5b505050506040513d602081101561127457600080fd5b8101908080519060200190929190505050985088600160a060020a0316631b27444e8e600b60009054906101000a9004600160a060020a03168f8f6040518563ffffffff1660e060020a0281526004018085600160a060020a0316600160a060020a0316815260200184600160a060020a0316600160a060020a0316815260200183600160a060020a0316600160a060020a0316815260200182600160a060020a0316600160a060020a03168152602001945050505050602060405180830381600087803b15801561134557600080fd5b505af1158015611359573d6000803e3d6000fd5b505050506040513d602081101561136f57600080fd5b5051600980546bffffffffffffffffffffffff166c01000000000000000000000000600160a060020a0393841681029190911791829055600a54600b54604080517fae818004000000000000000000000000000000000000000000000000000000008152928616600484015290851660248301528051929093049093169263ae8180049260448083019391928290030181600087803b15801561141157600080fd5b505af1158015611425573d6000803e3d6000fd5b505050506040513d604081101561143b57600080fd5b5080516020909101516010819055600f82905560129190915560135561145f61397a565b601155600a5461147790600160a060020a0316610c9a565b600a5490985061148f90600160a060020a0316612c38565b600b549097506114a790600160a060020a0316612c38565b9550868814156114d25760008811806114c05750600086115b156114cd576114cd613994565b6114fb565b6000881180156114e25750600087115b80156114ee5750600086115b156114fb576114fb613994565b600554600190600160a060020a0316611512611899565b61ffff167f6b08c2e2c9969e55a647a764db9b554d64dc42f1a704da11a6d5b129ad163f2c60405160405180910390a450505050505050505050505050565b60008051602061544883398151915260005260086020527f353c2eb9e53a4a4a6d45d72082ff2e9dc829d1125618772a83eb0e7f86632c43546601000000000000900460ff1690565b6115a26134c0565b6015805460ff19169055565b60006007828154811015156115bf57fe5b600091825260209091200154600160a060020a031692915050565b6000816115e681613441565b5050600160a060020a031660009081526008602052604090206001015463ffffffff1690565b60008061161a8585856127d7565b91509150935093915050565b61162e6134c0565b611637816122bf565b50565b6000611644613a0c565b801561166a57506009546c010000000000000000000000009004600160a060020a031615155b905090565b6009546c010000000000000000000000009004600160a060020a031681565b60008161169a81613441565b6116dc6116a684612c38565b600160a060020a0385166000908152600c60205260409020546116d090601363ffffffff613aa616565b9063ffffffff613b2a16565b9392505050565b600080600080600085600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561172957600080fd5b505af115801561173d573d6000803e3d6000fd5b505050506040513d602081101561175357600080fd5b5051600160a060020a038088166000908152600e602052604090205491955016925061177e83612c38565b600160a060020a0384166000908152600c602052604090205490925090506117bc816117b0848763ffffffff613aa616565b9063ffffffff613b8716565b9695505050505050565b60035474010000000000000000000000000000000000000000900460ff1681565b6117ef6134c0565b6117f7612a09565b565b6118016134c0565b600554604080517f5e35359e000000000000000000000000000000000000000000000000000000008152600160a060020a03868116600483015285811660248301526044820185905291519190921691635e35359e91606480830192600092919082900301818387803b15801561187757600080fd5b505af115801561188b573d6000803e3d6000fd5b50505050505050565b601755565b600290565b6118a66134c0565b8160146000600760008154811015156118bb57fe5b6000918252602080832090910154600160a060020a03168352820192909252604001812091909155600780548392601492909160019081106118f957fe5b6000918252602080832090910154600160a060020a031683528201929092526040019020555050565b60008054600160a060020a0316331480611957575060035474010000000000000000000000000000000000000000900460ff16155b151561199b576040805160e560020a62461bcd0281526020600482015260116024820152600080516020615468833981519152604482015290519081900360640190fd5b6119c47f436f6e74726163745265676973747279000000000000000000000000000000006136a6565b600254909150600160a060020a038083169116148015906119ed5750600160a060020a03811615155b1515611a43576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e56414c49445f5245474953545259000000000000000000000000604482015290519081900360640190fd5b604080517fbb34534c0000000000000000000000000000000000000000000000000000000081527f436f6e747261637452656769737472790000000000000000000000000000000060048201529051600091600160a060020a0384169163bb34534c9160248082019260209290919082900301818787803b158015611ac757600080fd5b505af1158015611adb573d6000803e3d6000fd5b505050506040513d6020811015611af157600080fd5b5051600160a060020a03161415611b52576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e56414c49445f5245474953545259000000000000000000000000604482015290519081900360640190fd5b6002805460038054600160a060020a03808416600160a060020a0319928316179092559091169216919091179055565b611b8a6134c0565b80611b94816135e5565b5060068054600160a060020a031916600160a060020a0392909216919091179055565b602081565b6000806000806000611bcc613bf5565b6002600455611bd9613c4f565b87611be381613441565b87611bed81613cad565b87611bf781613cad565b600160a060020a038b1660008051602061544883398151915214611c1c573415611c20565b8934145b1515611c76576040805160e560020a62461bcd02815260206004820152601760248201527f4552525f4554485f414d4f554e545f4d49534d41544348000000000000000000604482015290519081900360640190fd5b611c7e613d05565b600160a060020a038b166000805160206154488339815191521415611d205760008051602061544883398151915260005260086020527f353c2eb9e53a4a4a6d45d72082ff2e9dc829d1125618772a83eb0e7f86632c4254611ce6903463ffffffff613d4716565b60008051602061544883398151915260005260086020527f353c2eb9e53a4a4a6d45d72082ff2e9dc829d1125618772a83eb0e7f86632c42555b600160a060020a038b166000908152600c602052604090205460155490975060ff1615611de957600160a060020a038b166000908152601460205260409020541580611d935750600160a060020a038b16600090815260146020526040902054611d90888c63ffffffff613b2a16565b11155b1515611de9576040805160e560020a62461bcd02815260206004820152601e60248201527f4552525f4d41585f5354414b45445f42414c414e43455f524541434845440000604482015290519081900360640190fd5b600160a060020a03808c166000908152600d602090815260408083205481517f18160ddd00000000000000000000000000000000000000000000000000000000815291519416995089936318160ddd93600480840194938390030190829087803b158015611e5657600080fd5b505af1158015611e6a573d6000803e3d6000fd5b505050506040513d6020811015611e8057600080fd5b50519450600160a060020a038b1660008051602061544883398151915214611eae57611eae8b33308d613da7565b600160a060020a038b16600090815260086020526040902054611ed7908b63ffffffff613b2a16565b600160a060020a038c16600090815260086020526040902055611f00878b63ffffffff613b2a16565b600160a060020a038c166000908152600c60205260408120919091559350861580611f29575084155b15611f3657899350611f4d565b611f4a876117b08c8863ffffffff613aa616565b93505b88841015611fa5576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f52455455524e5f544f4f5f4c4f570000000000000000000000000000604482015290519081900360640190fd5b600554604080517fc6c3bbe6000000000000000000000000000000000000000000000000000000008152600160a060020a038981166004830152336024830152604482018890529151919092169163c6c3bbe691606480830192600092919082900301818387803b15801561201957600080fd5b505af115801561202d573d6000803e3d6000fd5b50505050612039613994565b600160a060020a038b16337f4a1a2a6176e9646d9e3157f7c2ab3c499f18337c0b0828cfb28e0a61de4a11f78c6120768b8263ffffffff613b2a16565b6120868a8a63ffffffff613b2a16565b60408051938452602084019290925282820152519081900360600190a36120bd866120b7878763ffffffff613b2a16565b8d613e8f565b612112600760008154811015156120d057fe5b60009182526020909120015460078054600160a060020a039092169160019081106120f757fe5b6000918252602082200154600160a060020a03169080613eef565b5050600160045550979650505050505050565b600160a060020a039081166000908152600d60205260409020541690565b60095468010000000000000000900463ffffffff1681565b8161216581613441565b50600160a060020a03919091166000908152600860205260409020600101805463ffffffff191663ffffffff909216919091179055565b60006121a6613bf5565b60026004556121b36134c0565b6121ca6000805160206154288339815191526136a6565b600160a060020a0385166000908152600860205260409020600101549091506601000000000000900460ff161580612207575061220561163a565b155b8061221f5750600054600160a060020a038281169116145b1515612263576040805160e560020a62461bcd0281526020600482015260116024820152600080516020615468833981519152604482015290519081900360640190fd5b61226e848484613f5b565b600160a060020a0384166000908152600860205260409020600101546601000000000000900460ff16156122a5576122a584613f8c565b505060016004555050565b600354600160a060020a031681565b6122c76134c0565b6000805160206154288339815191526122df81614080565b600554604080517ff2fde38b000000000000000000000000000000000000000000000000000000008152600160a060020a0385811660048301529151919092169163f2fde38b91602480830192600092919082900301818387803b15801561234657600080fd5b505af115801561235a573d6000803e3d6000fd5b505050505050565b6000806000806000806000806000808b600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156123af57600080fd5b505af11580156123c3573d6000803e3d6000fd5b505050506040513d60208110156123d957600080fd5b5051600160a060020a03808e166000908152600e60209081526040808320549093168252600c905220549098509650878b10156124a457600a54600160a060020a03166000908152600c602052604090205461243c90601463ffffffff613aa616565b600a5490965061245490600160a060020a031661168e565b9450848610612464578486612467565b85855b9094509250612480886117b08d8a63ffffffff613aa616565b9150612496836117b0848763ffffffff613aa616565b9950508881039750886124ae565b9598506000975088955b50505050505050509250929050565b60006124c7613bf5565b60026004556124d46134c0565b6000805160206154488339815191526124ec81613441565b6125036000805160206154288339815191526136a6565b915061250d61163a565b15806125265750600054600160a060020a038381169116145b151561256a576040805160e560020a62461bcd0281526020600482015260116024820152600080516020615468833981519152604482015290519081900360640190fd5b604051600160a060020a03841690303180156108fc02916000818181858888f193505050501580156125a0573d6000803e3d6000fd5b506125b8600080516020615448833981519152613f8c565b5050600160045550565b6125ca6134c0565b620186a0811115612625576040805160e560020a62461bcd02815260206004820152601e60248201527f4552525f494e56414c49445f44594e414d49435f4645455f464143544f520000604482015290519081900360640190fd5b601654604080519182526020820183905280517f382fd3516344712a511dcd464ff8e6ab54139d6a28f64087a3253353ee7a56799281900390910190a1601655565b60026126716127c8565b61ffff16106126b8576040805160e560020a62461bcd0281526020600482015260196024820152600080516020615488833981519152604482015290519081900360640190fd5b6126c282826140d6565b5050565b600061166a6127c8565b600154600160a060020a03163314612720576040805160e560020a62461bcd0281526020600482015260116024820152600080516020615468833981519152604482015290519081900360640190fd5b60015460008054604051600160a060020a0393841693909116917f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91a36001805460008054600160a060020a0319908116600160a060020a03841617909155169055565b600254600160a060020a031681565b600054600160a060020a031681565b600954640100000000900463ffffffff1681565b60146020526000908152604090205481565b60075490565b600f5460105482565b6000806000806127e56153f1565b6000806000806127f3613c4f565b6127fc8c613441565b6128058b613441565b600160a060020a038c8116908c161415612869576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f53414d455f534f555243455f54415247455400000000000000000000604482015290519081900360640190fd5b61287161397a565b601154141561291857600f604080519081016040529081600082015481526020016001820154815250509450600860008d600160a060020a0316600160a060020a0316815260200190815260200160002060010160009054906101000a900463ffffffff169650600860008c600160a060020a0316600160a060020a0316815260200190815260200160002060010160009054906101000a900463ffffffff169550612958565b612920614308565b945061292b85614540565b600a549195509350600160a060020a038d81169116141561295157839650829550612958565b8296508395505b6129668c8c8989898f61466a565b919e919d50909b505050505050505050505050565b6129836134c0565b60035460028054600160a060020a031916600160a060020a03909216919091179055565b600181565b6129b46134c0565b6000805160206154288339815191526129cc81614080565b826129d681613441565b5050600160a060020a039091166000908152600c6020526040902055565b60115481565b600654600160a060020a031681565b6001612a136127c8565b61ffff1611612a5a576040805160e560020a62461bcd0281526020600482015260196024820152600080516020615488833981519152604482015290519081900360640190fd5b6117f7614806565b6007805482908110612a7057fe5b600091825260209091200154600160a060020a0316905081565b60175481565b600190565b600554600160a060020a031681565b600154600160a060020a031681565b6000612abd6134c0565b612ad46000805160206154288339815191526136a6565b600554909150600090600160a060020a0316612aee611899565b61ffff167f6b08c2e2c9969e55a647a764db9b554d64dc42f1a704da11a6d5b129ad163f2c60405160405180910390a4612b2781613399565b604080517f90f58c96000000000000000000000000000000000000000000000000000000008152602060048201529051600160a060020a038316916390f58c9691602480830192600092919082900301818387803b158015612b8857600080fd5b505af1158015612b9c573d6000803e3d6000fd5b505050506116376126d0565b601490565b6008602052600090815260409020805460019091015463ffffffff81169060ff640100000000820481169165010000000000810482169166010000000000009091041685565b6000612bfe82612c38565b92915050565b600080612c0f6153f1565b612c17614308565b80516020909101519094909350915050565b600b54600160a060020a031681565b600081612c4481613441565b5050600160a060020a031660009081526008602052604090205490565b600080600080600080612c72613bf5565b6002600455612c7f613c4f565b88612c89816148d2565b88612c9381613cad565b88612c9d81613cad565b612ca5613d05565b8b600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015612ce357600080fd5b505af1158015612cf7573d6000803e3d6000fd5b505050506040513d6020811015612d0d57600080fd5b50519750612d1b8c8c612362565b50965089871015612d76576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f52455455524e5f544f4f5f4c4f570000000000000000000000000000604482015290519081900360640190fd5b600e60008d600160a060020a0316600160a060020a0316815260200190815260200160002060009054906101000a9004600160a060020a03169550600560009054906101000a9004600160a060020a0316600160a060020a031663f6b911bc8d338e6040518463ffffffff1660e060020a0281526004018084600160a060020a0316600160a060020a0316815260200183600160a060020a0316600160a060020a031681526020018281526020019350505050600060405180830381600087803b158015612e4357600080fd5b505af1158015612e57573d6000803e3d6000fd5b505050600160a060020a038716600090815260086020526040902054612e8491508863ffffffff613d4716565b600160a060020a038716600090815260086020908152604080832093909355600c90522054612eb9908863ffffffff613d4716565b600160a060020a0387166000818152600c602052604090208290559095506000805160206154488339815191521415612f1f57604051339088156108fc029089906000818181858888f19350505050158015612f19573d6000803e3d6000fd5b50612f2a565b612f2a863389614943565b612f32613994565b612f42888c63ffffffff613d4716565b60408051898152602081018890528082018390529051919550600160a060020a0388169133917fbc7d19d505c7ec4db83f3b51f19fb98c4c8a99922e7839d1ee608dfbee29501b919081900360600190a3612f9e8c8588613e8f565b612fb1600760008154811015156120d057fe5b50506001600455509298975050505050505050565b60165481565b6000612fd6613bf5565b60026004557f536f7672796e537761704e6574776f726b00000000000000000000000000000061300581614080565b600160a060020a038781169087161415613069576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f53414d455f534f555243455f54415247455400000000000000000000604482015290519081900360640190fd5b600654600160a060020a031615806131ac5750600654604080517f3af32abf000000000000000000000000000000000000000000000000000000008152600160a060020a03878116600483015291519190921691633af32abf9160248083019260209291908290030181600087803b1580156130e457600080fd5b505af11580156130f8573d6000803e3d6000fd5b505050506040513d602081101561310e57600080fd5b505180156131ac5750600654604080517f3af32abf000000000000000000000000000000000000000000000000000000008152600160a060020a03868116600483015291519190921691633af32abf9160248083019260209291908290030181600087803b15801561317f57600080fd5b505af1158015613193573d6000803e3d6000fd5b505050506040513d60208110156131a957600080fd5b50515b1515613202576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f4e4f545f57484954454c495354454400000000000000000000000000604482015290519081900360640190fd5b61320f87878787876149fa565b6001600455979650505050505050565b60008061322a6153f1565b600080613235614308565b925061324083614540565b915091506007600081548110151561325457fe5b600091825260209091200154600a54600160a060020a03908116911614156132895763ffffffff808316955081169350613298565b63ffffffff8082169550821693505b5050509091565b6132a76134c0565b60095463ffffffff64010000000090910481169082161115613313576040805160e560020a62461bcd02815260206004820152601a60248201527f4552525f494e56414c49445f434f4e56455253494f4e5f464545000000000000604482015290519081900360640190fd5b6009546040805163ffffffff6801000000000000000090930483168152918316602083015280517f81cd2ffb37dd237c0e4e2a3de5265fcf9deb43d3e7801e80db9f1ccfba7ee6009281900390910190a16009805463ffffffff90921668010000000000000000026bffffffff000000000000000019909216919091179055565b601155565b6133a16134c0565b600054600160a060020a0382811691161415613407576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f53414d455f4f574e4552000000000000000000000000000000000000604482015290519081900360640190fd5b60018054600160a060020a031916600160a060020a0392909216919091179055565b60125460135482565b600554600160a060020a031690565b600160a060020a0381166000908152600860205260409020600101546601000000000000900460ff161515611637576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f5245534552564500000000000000000000000000604482015290519081900360640190fd5b600054600160a060020a031633146117f7576040805160e560020a62461bcd0281526020600482015260116024820152600080516020615468833981519152604482015290519081900360640190fd5b60008080613534876135288c8963ffffffff613aa616565b9063ffffffff613aa616565b915061354a886135288b8863ffffffff613aa616565b9050818111156135765761356f816117b060146135288684038963ffffffff613aa616565b925061357b565b600092505b5050979650505050505050565b61359061163a565b156117f7576040805160e560020a62461bcd02815260206004820152600a60248201527f4552525f41435449564500000000000000000000000000000000000000000000604482015290519081900360640190fd5b600160a060020a038116301415611637576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f414444524553535f49535f53454c4600000000000000000000000000604482015290519081900360640190fd5b600160a060020a0381161515611637576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b600254604080517fbb34534c000000000000000000000000000000000000000000000000000000008152600481018490529051600092600160a060020a03169163bb34534c91602480830192602092919082900301818787803b15801561370c57600080fd5b505af1158015613720573d6000803e3d6000fd5b505050506040513d602081101561373657600080fd5b505192915050565b60006060600080600080600560009054906101000a9004600160a060020a0316955085600160a060020a0316636d3e313e6040518163ffffffff1660e060020a028152600401600060405180830381600087803b15801561379e57600080fd5b505af11580156137b2573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260208110156137db57600080fd5b8101908080516401000000008111156137f357600080fd5b8201602081018481111561380657600080fd5b815185602082028301116401000000008211171561382357600080fd5b505080516007549199501597509550600094505050505b8282101561235a5783156138b95785600160a060020a0316639cbf9e366040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561388657600080fd5b505af115801561389a573d6000803e3d6000fd5b505050506040513d60208110156138b057600080fd5b505190506138d4565b84828151811015156138c757fe5b9060200190602002015190505b80600d60006007858154811015156138e857fe5b600091825260208083209190910154600160a060020a03908116845290830193909352604090910190208054600160a060020a03191692909116919091179055600780548390811061393657fe5b6000918252602080832090910154600160a060020a038481168452600e90925260409092208054600160a060020a031916919092161790556001919091019061383a565b60006017546000141561398d574261166a565b5060175490565b60408051808201909152600f548152601054602082015260009081906139b990614540565b600a54600160a060020a039081166000908152600860205260408082206001908101805463ffffffff97881663ffffffff1991821617909155600b54909416835291200180549290931691161790555050565b600030600160a060020a0316600560009054906101000a9004600160a060020a0316600160a060020a0316638da5cb5b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015613a6b57600080fd5b505af1158015613a7f573d6000803e3d6000fd5b505050506040513d6020811015613a9557600080fd5b5051600160a060020a031614905090565b600080831515613ab95760009150613b23565b50828202828482811515613ac957fe5b0414613b1f576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b8091505b5092915050565b600082820183811015613b1f576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b600080808311613be1576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f4449564944455f42595f5a45524f0000000000000000000000000000604482015290519081900360640190fd5b8284811515613bec57fe5b04949350505050565b6004546001146117f7576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f5245454e5452414e4359000000000000000000000000000000000000604482015290519081900360640190fd5b613c5761163a565b15156117f7576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f494e4143544956450000000000000000000000000000000000000000604482015290519081900360640190fd5b60008111611637576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f5a45524f5f56414c5545000000000000000000000000000000000000604482015290519081900360640190fd5b60075460005b818110156126c257613d3f600782815481101515613d2557fe5b600091825260209091200154600160a060020a0316613f8c565b600101613d0b565b600081831015613da1576040805160e560020a62461bcd02815260206004820152600d60248201527f4552525f554e444552464c4f5700000000000000000000000000000000000000604482015290519081900360640190fd5b50900390565b604080517f7472616e7366657246726f6d28616464726573732c616464726573732c75696e81527f74323536290000000000000000000000000000000000000000000000000000006020808301919091528251918290036025018220600160a060020a038088166024850152861660448401526064808401869052845180850390910181526084909301909352810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1990931692909217909152613e89908590614aed565b50505050565b600160a060020a038082166000818152600c6020908152604091829020548251908152908101869052815192938716927f77f29993cf2c084e726f7e802da0719d6a0ade3e204badc7a3ffd57ecb768c24929181900390910190a3505050565b613ef76153f1565b613f0385858585614b7b565b805160208083015160408051938452918301528051929350600160a060020a0380881693908916927f77f29993cf2c084e726f7e802da0719d6a0ade3e204badc7a3ffd57ecb768c2492908290030190a35050505050565b613f636134c0565b82613f6d81613646565b82613f7781613646565b83613f81816135e5565b61235a868686614943565b80613f9681613441565b600160a060020a0382166000805160206154488339815191521415613fd657600160a060020a0382166000908152600860205260409020303190556126c2565b604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a038416916370a082319160248083019260209291908290030181600087803b15801561403757600080fd5b505af115801561404b573d6000803e3d6000fd5b505050506040513d602081101561406157600080fd5b5051600160a060020a0383166000908152600860205260409020555050565b614089816136a6565b600160a060020a03163314611637576040805160e560020a62461bcd0281526020600482015260116024820152600080516020615468833981519152604482015290519081900360640190fd5b60006140e06134c0565b6140e8613588565b826140f281613646565b836140fc816135e5565b8361410681614c43565b600554600160a060020a0387811691161480159061414a5750600160a060020a0386166000908152600860205260409020600101546601000000000000900460ff16155b15156141a0576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f5245534552564500000000000000000000000000604482015290519081900360640190fd5b60095463ffffffff908116620f4240038116908616111561420b576040805160e560020a62461bcd02815260206004820152601a60248201527f4552525f494e56414c49445f524553455256455f574549474854000000000000604482015290519081900360640190fd5b61ffff6142166127c8565b61ffff161061425d576040805160e560020a62461bcd0281526020600482015260196024820152600080516020615488833981519152604482015290519081900360640190fd5b505050600160a060020a0390921660008181526008602052604081208181556001908101805466ff0000000000001963ffffffff80881663ffffffff1993841617919091166601000000000000179092556007805493840181559093527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c6889091018054600160a060020a03191690931790925560098054808416909401909216921691909117905550565b6143106153f1565b60008060008061431e6153f1565b6143266153f1565b600954600a54600b54604080517fb1772d7a000000000000000000000000000000000000000000000000000000008152600160a060020a0393841660048201529183166024830152516000938493849384936c010000000000000000000000009093049091169163b1772d7a9160448082019260609290919082900301818787803b1580156143b457600080fd5b505af11580156143c8573d6000803e3d6000fd5b505050506040513d60608110156143de57600080fd5b5080516020820151604090920151601154919c50919a5090985088111561441b5760408051908101604052808b81526020018a8152509a50614533565b60115461442661397a565b03965086151561444e5760408051808201909152600f54815260105460208201529a50614533565b61025887106144755760408051808201909152601254815260135460208201529a50614533565b604080518082018252600f548152601054602080830191825283518085019094526012548085526013549185019190915290519198509196506144bd9163ffffffff613aa616565b602086015187519195506144d7919063ffffffff613aa616565b92506145016144ec858963ffffffff613aa616565b6116d0856102588b900363ffffffff613aa616565b915061452461025861352887602001518960200151613aa690919063ffffffff16565b90506145308282614cb8565b9a505b5050505050505050505090565b600a54600160a060020a03166000818152600c602052604081205490918291908290819061456d9061168e565b600b5490925061458590600160a060020a031661168e565b90506145b07f536f7672796e53776170466f726d756c610000000000000000000000000000006136a6565b600160a060020a031663a11aa1b46145cf85601463ffffffff613aa616565b885160208a01516040805160e060020a63ffffffff87160281526004810194909452602484018890526044840187905260648401929092526084830152805160a4808401938290030181600087803b15801561462a57600080fd5b505af115801561463e573d6000803e3d6000fd5b505050506040513d604081101561465457600080fd5b5080516020909101519095509350505050915091565b60008080808063ffffffff891615156146a257600160a060020a038b1660009081526008602052604090206001015463ffffffff1698505b63ffffffff881615156146d457600160a060020a038a1660009081526008602052604090206001015463ffffffff1697505b6146dd8b61168e565b91506146e88a61168e565b90506147137f536f7672796e53776170466f726d756c610000000000000000000000000000006136a6565b604080517f94491fab0000000000000000000000000000000000000000000000000000000081526004810185905263ffffffff808d166024830152604482018590528b166064820152608481018990529051600160a060020a0392909216916394491fab9160a4808201926020929091908290030181600087803b15801561479a57600080fd5b505af11580156147ae573d6000803e3d6000fd5b505050506040513d60208110156147c457600080fd5b505194506147d185614d0d565b93506147e4846116d08c8c8c8c8b614d3d565b92506147f6858463ffffffff613d4716565b9450505096509650969350505050565b61480e6134c0565b60006148186127c8565b61ffff161161485f576040805160e560020a62461bcd0281526020600482015260196024820152600080516020615488833981519152604482015290519081900360640190fd5b600560009054906101000a9004600160a060020a0316600160a060020a03166379ba50976040518163ffffffff1660e060020a028152600401600060405180830381600087803b1580156148b257600080fd5b505af11580156148c6573d6000803e3d6000fd5b505050506117f7613d05565b600160a060020a038181166000908152600e6020526040902054161515611637576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f494e56414c49445f504f4f4c5f544f4b454e00000000000000000000604482015290519081900360640190fd5b604080517f7472616e7366657228616464726573732c75696e74323536290000000000000081528151908190036019018120600160a060020a038516602483015260448083018590528351808403909101815260649092019092526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19909316929092179091526149f5908490614aed565b505050565b6000806000614a07613c4f565b87614a1181613441565b87614a1b81613441565b614a268a8a8a614e16565b9094509250600160a060020a0389166000805160206154488339815191521415614a8657604051600160a060020a0387169085156108fc029086906000818181858888f19350505050158015614a80573d6000803e3d6000fd5b50614a91565b614a91898786614943565b614a9f8a8a898b888861512b565b600160a060020a03808b16600090815260086020526040808220600190810154938d16835291200154614adf918c918c9163ffffffff90811691166151b0565b509198975050505050505050565b614af5615408565b602060405190810160405280600181525090506020818351602085016000875af1801515614b2257600080fd5b50805115156149f5576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f5452414e534645525f4641494c454400000000000000000000000000604482015290519081900360640190fd5b614b836153f1565b600080614b8f8761168e565b9150614b9a8661168e565b905063ffffffff85161515614bce57600160a060020a03871660009081526008602052604090206001015463ffffffff1694505b63ffffffff84161515614c0057600160a060020a03861660009081526008602052604090206001015463ffffffff1693505b6040805180820190915280614c1e8363ffffffff808a1690613aa616565b8152602001614c368463ffffffff80891690613aa616565b9052979650505050505050565b60008163ffffffff16118015614c625750620f424063ffffffff821611155b1515611637576040805160e560020a62461bcd02815260206004820152601a60248201527f4552525f494e56414c49445f524553455256455f574549474854000000000000604482015290519081900360640190fd5b614cc06153f1565b614cc86153f1565b828410614ce057614cd98484615241565b9150613b23565b614cea8385615241565b604080518082019091526020808301518252825190820152925090505092915050565b600954600090612bfe90620f4240906117b090859068010000000000000000900463ffffffff90811690613aa616565b600b546000908190600160a060020a0388811691161415614dab57600a54600160a060020a039081166000908152600c6020908152604080832054600b54909416835290912054865191870151601654614da4949363ffffffff808d1693908c1692613510565b9050614dfa565b600a54600160a060020a039081166000908152600c6020908152604080832054600b54909416835290912054865191870151601654614df7949363ffffffff808c1693908d1692613510565b90505b614e0b620f42406117b08584613aa6565b979650505050505050565b6000806000614e236153f1565b600080600080614e316152fe565b95509550614e448b8b600080898e61466a565b91955093509150831515614ea2576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f5a45524f5f5441524745545f414d4f554e5400000000000000000000604482015290519081900360640190fd5b614eab8a612c38565b9050808410614f04576040805160e560020a62461bcd02815260206004820152601a60248201527f4552525f5441524745545f414d4f554e545f544f4f5f48494748000000000000604482015290519081900360640190fd5b600160a060020a038b166000805160206154488339815191521415614f7f57348914614f7a576040805160e560020a62461bcd02815260206004820152601760248201527f4552525f4554485f414d4f554e545f4d49534d41544348000000000000000000604482015290519081900360640190fd5b615081565b3415801561502b575088615028614f958d612c38565b8d600160a060020a03166370a08231306040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b158015614ff057600080fd5b505af1158015615004573d6000803e3d6000fd5b505050506040513d602081101561501a57600080fd5b50519063ffffffff613d4716565b10155b1515615081576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f494e56414c49445f414d4f554e540000000000000000000000000000604482015290519081900360640190fd5b61508a8b613f8c565b61509a818563ffffffff613d4716565b600160a060020a038b16600090815260086020908152604080832093909355600c905220546150cf908463ffffffff613b2a16565b600160a060020a038b166000908152600c6020526040902055851561511a57600a54600b5461510d91600160a060020a039081169116600080614b7b565b8051601255602001516013555b509199919850909650505050505050565b7f8000000000000000000000000000000000000000000000000000000000000000811061515457fe5b60408051848152602081018490528082018390529051600160a060020a038087169288821692918a16917f276856b36cbc45526a0ba64f44611557a2a8b68662c5388e9fe6d72e86e1c8cb9181900360600190a4505050505050565b6000806151bf86868686613eef565b6151c885612125565b915081600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561520857600080fd5b505af115801561521c573d6000803e3d6000fd5b505050506040513d602081101561523257600080fd5b5051905061235a828287613e8f565b6152496153f1565b7314484bfeebc29f863424b06f3529a051a31be59982111561529b57604080518082019091526c0c9f2c9cd04674edea40000000808252602082019085048481151561529157fe5b0490529050612bfe565b6c0c9f2c9cd04674edea400000008311156152e85760408051908101604052806c0c9f2c9cd04674edea400000008152602001846c0c9f2c9cd04674edea40000000850281151561529157fe5b5060408051808201909152918252602082015290565b60006153086153f1565b60006153126153f1565b61531a6153f1565b61532261397a565b92508260115414156153505760408051808201909152600f5481526010546020820152600095509350613298565b615358614308565b60408051808201909152600f548082526010546020830152825192945090925014801561538c575080602001518260200151145b1561539d5760008294509450613298565b8151600f55602082015160105560118390556153b7613994565b50600194909350915050565b6040805160a08101825260008082526020820181905291810182905260608101829052608081019190915290565b604080518082019091526000808252602082015290565b60206040519081016040528060019060208202803883395091929150505600536f7672796e53776170436f6e76657274657255706772616465720000000000000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee4552525f4143434553535f44454e4945440000000000000000000000000000004552525f494e56414c49445f524553455256455f434f554e5400000000000000a165627a7a72305820a8e9b9bcc5f6430bca345d5988d43dcc2bb881c5ef1a9b4eeb6ed4019ea859c80029", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x1 PUSH1 0x4 DUP2 SWAP1 SSTORE PUSH1 0x9 DUP1 SLOAD PUSH1 0x1 PUSH1 0x60 PUSH1 0x2 EXP SUB NOT AND SWAP1 SSTORE PUSH1 0x15 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SWAP2 OR SWAP1 SSTORE PUSH3 0x11170 PUSH1 0x16 SSTORE CALLVALUE DUP1 ISZERO PUSH3 0x3C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH1 0x60 DUP1 PUSH3 0x5714 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 SWAP1 DUP2 MSTORE DUP2 MLOAD PUSH1 0x20 DUP4 ADD MLOAD SWAP2 SWAP1 SWAP3 ADD MLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND CALLER OR SWAP1 SSTORE DUP3 DUP3 DUP3 DUP3 DUP3 DUP3 DUP3 DUP3 DUP3 DUP2 DUP1 PUSH3 0x8D DUP2 PUSH5 0x100000000 PUSH3 0x13D DUP2 MUL DIV JUMP JUMPDEST POP PUSH1 0x2 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT SWAP3 DUP4 AND DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x3 DUP1 SLOAD SWAP1 SWAP3 AND OR SWAP1 SSTORE DUP3 PUSH3 0xCD DUP2 PUSH5 0x100000000 PUSH3 0x13D DUP2 MUL DIV JUMP JUMPDEST DUP2 PUSH3 0xE2 DUP2 PUSH5 0x100000000 PUSH3 0x1B8 DUP2 MUL DIV JUMP JUMPDEST POP POP PUSH1 0x5 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP5 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 OR SWAP1 SWAP3 SSTORE POP PUSH1 0x9 DUP1 SLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP3 AND PUSH5 0x100000000 MUL PUSH8 0xFFFFFFFF00000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE POP PUSH3 0x231 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH3 0x1B5 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH3 0xF4240 PUSH4 0xFFFFFFFF DUP3 AND GT ISZERO PUSH3 0x1B5 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F434F4E56455253494F4E5F464545000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x54D3 DUP1 PUSH3 0x241 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x349 JUMPI PUSH4 0xFFFFFFFF PUSH1 0xE0 PUSH1 0x2 EXP PUSH1 0x0 CALLDATALOAD DIV AND PUSH3 0x5E319C DUP2 EQ PUSH2 0x3E7 JUMPI DUP1 PUSH4 0x24C7EC7 EQ PUSH2 0x41A JUMPI DUP1 PUSH4 0x337E3FB EQ PUSH2 0x434 JUMPI DUP1 PUSH4 0xA55FB3D EQ PUSH2 0x465 JUMPI DUP1 PUSH4 0xC7D5CD8 EQ PUSH2 0x48E JUMPI DUP1 PUSH4 0xE53AAE9 EQ PUSH2 0x4BC JUMPI DUP1 PUSH4 0xF0FB407 EQ PUSH2 0x511 JUMPI DUP1 PUSH4 0x119B90CD EQ PUSH2 0x53B JUMPI DUP1 PUSH4 0x12C2ACA4 EQ PUSH2 0x568 JUMPI DUP1 PUSH4 0x16912F96 EQ PUSH2 0x57D JUMPI DUP1 PUSH4 0x19B64015 EQ PUSH2 0x592 JUMPI DUP1 PUSH4 0x1CFAB290 EQ PUSH2 0x5AA JUMPI DUP1 PUSH4 0x1E1401F8 EQ PUSH2 0x5CB JUMPI DUP1 PUSH4 0x21E6B53D EQ PUSH2 0x60E JUMPI DUP1 PUSH4 0x22F3E2D4 EQ PUSH2 0x62F JUMPI DUP1 PUSH4 0x2630C12F EQ PUSH2 0x644 JUMPI DUP1 PUSH4 0x2BD3C107 EQ PUSH2 0x659 JUMPI DUP1 PUSH4 0x2BF0C985 EQ PUSH2 0x67A JUMPI DUP1 PUSH4 0x2FE8A6AD EQ PUSH2 0x69B JUMPI DUP1 PUSH4 0x38A5E016 EQ PUSH2 0x6B0 JUMPI DUP1 PUSH4 0x395900D4 EQ PUSH2 0x6C5 JUMPI DUP1 PUSH4 0x3BEB26C4 EQ PUSH2 0x6EF JUMPI DUP1 PUSH4 0x3E8FF43F EQ PUSH2 0x707 JUMPI DUP1 PUSH4 0x46749468 EQ PUSH2 0x733 JUMPI DUP1 PUSH4 0x49D10B64 EQ PUSH2 0x74E JUMPI DUP1 PUSH4 0x4AF80F0E EQ PUSH2 0x763 JUMPI DUP1 PUSH4 0x54FD4D50 EQ PUSH2 0x784 JUMPI DUP1 PUSH4 0x55776B77 EQ PUSH2 0x799 JUMPI DUP1 PUSH4 0x5768ADCF EQ PUSH2 0x7B3 JUMPI DUP1 PUSH4 0x579CD3CA EQ PUSH2 0x7D4 JUMPI DUP1 PUSH4 0x59CD4EEC EQ PUSH2 0x7E9 JUMPI DUP1 PUSH4 0x5E35359E EQ PUSH2 0x813 JUMPI DUP1 PUSH4 0x61CD756E EQ PUSH2 0x83D JUMPI DUP1 PUSH4 0x67B6D57C EQ PUSH2 0x852 JUMPI DUP1 PUSH4 0x69067D95 EQ PUSH2 0x873 JUMPI DUP1 PUSH4 0x690D8320 EQ PUSH2 0x897 JUMPI DUP1 PUSH4 0x69D1354A EQ PUSH2 0x8B8 JUMPI DUP1 PUSH4 0x6A49D2C4 EQ PUSH2 0x8D0 JUMPI DUP1 PUSH4 0x71F52BF3 EQ PUSH2 0x8FA JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x90F JUMPI DUP1 PUSH4 0x7B103999 EQ PUSH2 0x924 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x939 JUMPI DUP1 PUSH4 0x94C275AD EQ PUSH2 0x94E JUMPI DUP1 PUSH4 0x98A71DCB EQ PUSH2 0x963 JUMPI DUP1 PUSH4 0x9B99A8E2 EQ PUSH2 0x984 JUMPI DUP1 PUSH4 0xA32BFF44 EQ PUSH2 0x999 JUMPI DUP1 PUSH4 0xAF94B8D8 EQ PUSH2 0x9AE JUMPI DUP1 PUSH4 0xB4A176D3 EQ PUSH2 0x9D8 JUMPI DUP1 PUSH4 0xBF754558 EQ PUSH2 0x9ED JUMPI DUP1 PUSH4 0xBF7DA6BA EQ PUSH2 0xA02 JUMPI DUP1 PUSH4 0xC3321FB0 EQ PUSH2 0xA26 JUMPI DUP1 PUSH4 0xC45D3D92 EQ PUSH2 0xA3B JUMPI DUP1 PUSH4 0xCDC91C69 EQ PUSH2 0xA50 JUMPI DUP1 PUSH4 0xD031370B EQ PUSH2 0xA65 JUMPI DUP1 PUSH4 0xD18E81B3 EQ PUSH2 0xA7D JUMPI DUP1 PUSH4 0xD260529C EQ PUSH2 0xA92 JUMPI DUP1 PUSH4 0xD3FB73B4 EQ PUSH2 0xAA7 JUMPI DUP1 PUSH4 0xD4EE1D90 EQ PUSH2 0xABC JUMPI DUP1 PUSH4 0xD55EC697 EQ PUSH2 0xAD1 JUMPI DUP1 PUSH4 0xD64C5A1A EQ PUSH2 0xAE6 JUMPI DUP1 PUSH4 0xD66BD524 EQ PUSH2 0xB11 JUMPI DUP1 PUSH4 0xD8959512 EQ PUSH2 0xB32 JUMPI DUP1 PUSH4 0xDB2830A4 EQ PUSH2 0xB53 JUMPI DUP1 PUSH4 0xDC75EB9A EQ PUSH2 0xB68 JUMPI DUP1 PUSH4 0xDC8DE379 EQ PUSH2 0xB7D JUMPI DUP1 PUSH4 0xE38192E3 EQ PUSH2 0xB9E JUMPI DUP1 PUSH4 0xE8104AF9 EQ PUSH2 0xBC5 JUMPI DUP1 PUSH4 0xE8DC12FF EQ PUSH2 0xBDA JUMPI DUP1 PUSH4 0xEC2240F5 EQ PUSH2 0xC04 JUMPI DUP1 PUSH4 0xECBCA55D EQ PUSH2 0xC19 JUMPI DUP1 PUSH4 0xF1FF40D9 EQ PUSH2 0xC37 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0xC4F JUMPI DUP1 PUSH4 0xF9CDDDE2 EQ PUSH2 0xC70 JUMPI DUP1 PUSH4 0xFC0C546A EQ PUSH2 0xC85 JUMPI JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5448 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x0 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH32 0x353C2EB9E53A4A4A6D45D72082FF2E9DC829D1125618772A83EB0E7F86632C43 SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO PUSH2 0x3E5 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245534552564500000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3F3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x408 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0xC9A JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x426 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3E5 PUSH1 0x4 CALLDATALOAD ISZERO ISZERO PUSH2 0xCC3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x440 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x449 PUSH2 0xD0B JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x471 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x47A PUSH2 0xD1A JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x49A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4A3 PUSH2 0xD23 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4C8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4DD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0xD2F JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP6 DUP7 MSTORE PUSH4 0xFFFFFFFF SWAP1 SWAP5 AND PUSH1 0x20 DUP7 ADD MSTORE SWAP2 ISZERO ISZERO DUP5 DUP5 ADD MSTORE ISZERO ISZERO PUSH1 0x60 DUP5 ADD MSTORE ISZERO ISZERO PUSH1 0x80 DUP4 ADD MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0xA0 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x51D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x408 PUSH1 0x4 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH1 0x44 CALLDATALOAD PUSH1 0x64 CALLDATALOAD PUSH1 0x84 CALLDATALOAD PUSH1 0xA4 CALLDATALOAD PUSH1 0xC4 CALLDATALOAD PUSH2 0xDCA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x547 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3E5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x44 CALLDATALOAD AND PUSH2 0xDE7 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x574 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x47A PUSH2 0x1551 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x589 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3E5 PUSH2 0x159A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x59E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x449 PUSH1 0x4 CALLDATALOAD PUSH2 0x15AE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5B6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4A3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x15DA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5D7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x5F5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x160C JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x61A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3E5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x1626 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x63B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x47A PUSH2 0x163A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x650 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x449 PUSH2 0x166F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x665 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x408 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x168E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x686 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x408 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x16E3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6A7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x47A PUSH2 0x17C6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6BC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3E5 PUSH2 0x17E7 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6D1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3E5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x17F9 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6FB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3E5 PUSH1 0x4 CALLDATALOAD PUSH2 0x1894 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x713 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x71C PUSH2 0x1899 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0xFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x73F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3E5 PUSH1 0x4 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH2 0x189E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x75A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3E5 PUSH2 0x1922 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x76F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3E5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x1B82 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x790 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x71C PUSH2 0x1BB7 JUMP JUMPDEST PUSH2 0x408 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH1 0x44 CALLDATALOAD PUSH2 0x1BBC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7BF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x449 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x2125 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7E0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4A3 PUSH2 0x2143 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3E5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH4 0xFFFFFFFF PUSH1 0x24 CALLDATALOAD AND PUSH2 0x215B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x81F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3E5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x219C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x849 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x449 PUSH2 0x22B0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x85E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3E5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x22BF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x87F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x5F5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x2362 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8A3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3E5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x24BD JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8C4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3E5 PUSH1 0x4 CALLDATALOAD PUSH2 0x25C2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8DC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3E5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH4 0xFFFFFFFF PUSH1 0x24 CALLDATALOAD AND PUSH2 0x2667 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x906 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x71C PUSH2 0x26C6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x91B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3E5 PUSH2 0x26D0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x930 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x449 PUSH2 0x2784 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x945 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x449 PUSH2 0x2793 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x95A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4A3 PUSH2 0x27A2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x96F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x408 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x27B6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x990 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x71C PUSH2 0x27C8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9A5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x5F5 PUSH2 0x27CE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9BA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x5F5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x27D7 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9E4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3E5 PUSH2 0x297B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9F9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x47A PUSH2 0x29A7 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA0E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3E5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x29AC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA32 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x408 PUSH2 0x29F4 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA47 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x449 PUSH2 0x29FA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA5C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3E5 PUSH2 0x2A09 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA71 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x449 PUSH1 0x4 CALLDATALOAD PUSH2 0x2A62 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA89 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x408 PUSH2 0x2A8A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA9E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x47A PUSH2 0x2A90 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xAB3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x449 PUSH2 0x2A95 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xAC8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x449 PUSH2 0x2AA4 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xADD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3E5 PUSH2 0x2AB3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xAF2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xAFB PUSH2 0x2BA8 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xB1D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4DD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x2BAD JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xB3E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x408 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x2BF3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xB5F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x5F5 PUSH2 0x2C04 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xB74 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x449 PUSH2 0x2C29 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xB89 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x408 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x2C38 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xBAA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x408 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH1 0x44 CALLDATALOAD PUSH2 0x2C61 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xBD1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x408 PUSH2 0x2FC6 JUMP JUMPDEST PUSH2 0x408 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x44 CALLDATALOAD SWAP1 PUSH1 0x64 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x84 CALLDATALOAD AND PUSH2 0x2FCC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xC10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x5F5 PUSH2 0x321F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xC25 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3E5 PUSH4 0xFFFFFFFF PUSH1 0x4 CALLDATALOAD AND PUSH2 0x329F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xC43 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3E5 PUSH1 0x4 CALLDATALOAD PUSH2 0x3394 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xC5B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3E5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x3399 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xC7C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x5F5 PUSH2 0x3429 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xC91 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x449 PUSH2 0x3432 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0xCA6 DUP2 PUSH2 0x3441 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0xCCB PUSH2 0x34C0 JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD SWAP2 ISZERO ISZERO PUSH21 0x10000000000000000000000000000000000000000 MUL PUSH21 0xFF0000000000000000000000000000000000000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x15 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH4 0xFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0xD3F PUSH2 0x53C3 JUMP JUMPDEST POP POP POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP2 MLOAD PUSH1 0xA0 DUP2 ADD DUP4 MSTORE DUP2 SLOAD DUP1 DUP3 MSTORE PUSH1 0x1 SWAP1 SWAP3 ADD SLOAD PUSH4 0xFFFFFFFF DUP2 AND SWAP5 DUP3 ADD DUP6 SWAP1 MSTORE PUSH1 0xFF PUSH5 0x100000000 DUP3 DIV DUP2 AND ISZERO ISZERO SWAP5 DUP4 ADD SWAP5 SWAP1 SWAP5 MSTORE PUSH6 0x10000000000 DUP2 DIV DUP5 AND ISZERO ISZERO PUSH1 0x60 DUP4 ADD MSTORE PUSH7 0x1000000000000 SWAP1 DIV SWAP1 SWAP3 AND ISZERO ISZERO PUSH1 0x80 SWAP1 SWAP3 ADD DUP3 SWAP1 MSTORE SWAP6 SWAP2 SWAP5 POP SWAP2 SWAP3 POP DUP3 SWAP2 SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xDDB DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 PUSH2 0x3510 JUMP JUMPDEST SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0xDF7 PUSH2 0x3588 JUMP JUMPDEST PUSH2 0xDFF PUSH2 0x34C0 JUMP JUMPDEST DUP8 PUSH2 0xE09 DUP2 PUSH2 0x3441 JUMP JUMPDEST DUP8 PUSH2 0xE13 DUP2 PUSH2 0x35E5 JUMP JUMPDEST DUP8 PUSH2 0xE1D DUP2 PUSH2 0x35E5 JUMP JUMPDEST DUP10 PUSH2 0xE27 DUP2 PUSH2 0x3646 JUMP JUMPDEST DUP10 PUSH2 0xE31 DUP2 PUSH2 0x3646 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x8DA5CB5B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD ADDRESS SWAP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP2 PUSH4 0x8DA5CB5B SWAP2 PUSH1 0x4 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xE90 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xEA4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xEBA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ PUSH2 0xF1A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F414E43484F525F4E4F545F4F574E4544000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0xF43 PUSH32 0x436861696E6C696E6B4F7261636C6557686974656C6973740000000000000000 PUSH2 0x36A6 JUMP JUMPDEST SWAP10 POP DUP10 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x3AF32ABF DUP14 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xFA0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xFB4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xFCA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD ISZERO ISZERO PUSH2 0x1022 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4F5241434C450000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP10 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x3AF32ABF DUP13 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x107D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1091 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x10A7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD ISZERO ISZERO PUSH2 0x10FF JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4F5241434C450000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x1107 PUSH2 0x373E JUMP JUMPDEST PUSH1 0xA DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP16 AND OR SWAP1 SSTORE PUSH1 0x7 DUP1 SLOAD PUSH1 0x0 SWAP1 DUP2 LT PUSH2 0x1131 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP15 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x118F JUMPI PUSH1 0x7 DUP1 SLOAD PUSH1 0x1 SWAP1 DUP2 LT PUSH2 0x115F JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0xB DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x11CA JUMP JUMPDEST PUSH1 0x7 DUP1 SLOAD PUSH1 0x0 SWAP1 DUP2 LT PUSH2 0x119E JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0xB DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMPDEST PUSH2 0x11F3 PUSH32 0x436F6E766572746572466163746F727900000000000000000000000000000000 PUSH2 0x36A6 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xC977AED2 PUSH2 0x1209 PUSH2 0x1899 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH2 0xFFFF AND PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x124A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x125E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1274 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP SWAP9 POP DUP9 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x1B27444E DUP15 PUSH1 0xB PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP16 DUP16 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP6 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP5 POP POP POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1345 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1359 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x136F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x9 DUP1 SLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH13 0x1000000000000000000000000 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND DUP2 MUL SWAP2 SWAP1 SWAP2 OR SWAP2 DUP3 SWAP1 SSTORE PUSH1 0xA SLOAD PUSH1 0xB SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xAE81800400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP3 DUP7 AND PUSH1 0x4 DUP5 ADD MSTORE SWAP1 DUP6 AND PUSH1 0x24 DUP4 ADD MSTORE DUP1 MLOAD SWAP3 SWAP1 SWAP4 DIV SWAP1 SWAP4 AND SWAP3 PUSH4 0xAE818004 SWAP3 PUSH1 0x44 DUP1 DUP4 ADD SWAP4 SWAP2 SWAP3 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1411 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1425 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x143B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD MLOAD PUSH1 0x10 DUP2 SWAP1 SSTORE PUSH1 0xF DUP3 SWAP1 SSTORE PUSH1 0x12 SWAP2 SWAP1 SWAP2 SSTORE PUSH1 0x13 SSTORE PUSH2 0x145F PUSH2 0x397A JUMP JUMPDEST PUSH1 0x11 SSTORE PUSH1 0xA SLOAD PUSH2 0x1477 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0xC9A JUMP JUMPDEST PUSH1 0xA SLOAD SWAP1 SWAP9 POP PUSH2 0x148F SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x2C38 JUMP JUMPDEST PUSH1 0xB SLOAD SWAP1 SWAP8 POP PUSH2 0x14A7 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x2C38 JUMP JUMPDEST SWAP6 POP DUP7 DUP9 EQ ISZERO PUSH2 0x14D2 JUMPI PUSH1 0x0 DUP9 GT DUP1 PUSH2 0x14C0 JUMPI POP PUSH1 0x0 DUP7 GT JUMPDEST ISZERO PUSH2 0x14CD JUMPI PUSH2 0x14CD PUSH2 0x3994 JUMP JUMPDEST PUSH2 0x14FB JUMP JUMPDEST PUSH1 0x0 DUP9 GT DUP1 ISZERO PUSH2 0x14E2 JUMPI POP PUSH1 0x0 DUP8 GT JUMPDEST DUP1 ISZERO PUSH2 0x14EE JUMPI POP PUSH1 0x0 DUP7 GT JUMPDEST ISZERO PUSH2 0x14FB JUMPI PUSH2 0x14FB PUSH2 0x3994 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x1512 PUSH2 0x1899 JUMP JUMPDEST PUSH2 0xFFFF AND PUSH32 0x6B08C2E2C9969E55A647A764DB9B554D64DC42F1A704DA11A6D5B129AD163F2C PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5448 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x0 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH32 0x353C2EB9E53A4A4A6D45D72082FF2E9DC829D1125618772A83EB0E7F86632C43 SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH2 0x15A2 PUSH2 0x34C0 JUMP JUMPDEST PUSH1 0x15 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x7 DUP3 DUP2 SLOAD DUP2 LT ISZERO ISZERO PUSH2 0x15BF JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0x15E6 DUP2 PUSH2 0x3441 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH4 0xFFFFFFFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x161A DUP6 DUP6 DUP6 PUSH2 0x27D7 JUMP JUMPDEST SWAP2 POP SWAP2 POP SWAP4 POP SWAP4 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x162E PUSH2 0x34C0 JUMP JUMPDEST PUSH2 0x1637 DUP2 PUSH2 0x22BF JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1644 PUSH2 0x3A0C JUMP JUMPDEST DUP1 ISZERO PUSH2 0x166A JUMPI POP PUSH1 0x9 SLOAD PUSH13 0x1000000000000000000000000 SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND ISZERO ISZERO JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH13 0x1000000000000000000000000 SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0x169A DUP2 PUSH2 0x3441 JUMP JUMPDEST PUSH2 0x16DC PUSH2 0x16A6 DUP5 PUSH2 0x2C38 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x16D0 SWAP1 PUSH1 0x13 PUSH4 0xFFFFFFFF PUSH2 0x3AA6 AND JUMP JUMPDEST SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x3B2A AND JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x18160DDD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1729 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x173D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1753 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP2 SWAP6 POP AND SWAP3 POP PUSH2 0x177E DUP4 PUSH2 0x2C38 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 SWAP3 POP SWAP1 POP PUSH2 0x17BC DUP2 PUSH2 0x17B0 DUP5 DUP8 PUSH4 0xFFFFFFFF PUSH2 0x3AA6 AND JUMP JUMPDEST SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x3B87 AND JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH2 0x17EF PUSH2 0x34C0 JUMP JUMPDEST PUSH2 0x17F7 PUSH2 0x2A09 JUMP JUMPDEST JUMP JUMPDEST PUSH2 0x1801 PUSH2 0x34C0 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x5E35359E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP6 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP3 ADD DUP6 SWAP1 MSTORE SWAP2 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP2 PUSH4 0x5E35359E SWAP2 PUSH1 0x64 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1877 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x188B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x17 SSTORE JUMP JUMPDEST PUSH1 0x2 SWAP1 JUMP JUMPDEST PUSH2 0x18A6 PUSH2 0x34C0 JUMP JUMPDEST DUP2 PUSH1 0x14 PUSH1 0x0 PUSH1 0x7 PUSH1 0x0 DUP2 SLOAD DUP2 LT ISZERO ISZERO PUSH2 0x18BB JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 SWAP1 SWAP2 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP4 MSTORE DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x40 ADD DUP2 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE PUSH1 0x7 DUP1 SLOAD DUP4 SWAP3 PUSH1 0x14 SWAP3 SWAP1 SWAP2 PUSH1 0x1 SWAP1 DUP2 LT PUSH2 0x18F9 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 SWAP1 SWAP2 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP4 MSTORE DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x40 ADD SWAP1 KECCAK256 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ DUP1 PUSH2 0x1957 JUMPI POP PUSH1 0x3 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x199B JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5468 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x19C4 PUSH32 0x436F6E7472616374526567697374727900000000000000000000000000000000 PUSH2 0x36A6 JUMP JUMPDEST PUSH1 0x2 SLOAD SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP4 AND SWAP2 AND EQ DUP1 ISZERO SWAP1 PUSH2 0x19ED JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x1A43 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245474953545259000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0xBB34534C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH32 0x436F6E7472616374526567697374727900000000000000000000000000000000 PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP2 PUSH4 0xBB34534C SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1AC7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1ADB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1AF1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ ISZERO PUSH2 0x1B52 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245474953545259000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP5 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT SWAP3 DUP4 AND OR SWAP1 SWAP3 SSTORE SWAP1 SWAP2 AND SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x1B8A PUSH2 0x34C0 JUMP JUMPDEST DUP1 PUSH2 0x1B94 DUP2 PUSH2 0x35E5 JUMP JUMPDEST POP PUSH1 0x6 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x20 DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x1BCC PUSH2 0x3BF5 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH2 0x1BD9 PUSH2 0x3C4F JUMP JUMPDEST DUP8 PUSH2 0x1BE3 DUP2 PUSH2 0x3441 JUMP JUMPDEST DUP8 PUSH2 0x1BED DUP2 PUSH2 0x3CAD JUMP JUMPDEST DUP8 PUSH2 0x1BF7 DUP2 PUSH2 0x3CAD JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5448 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ PUSH2 0x1C1C JUMPI CALLVALUE ISZERO PUSH2 0x1C20 JUMP JUMPDEST DUP10 CALLVALUE EQ JUMPDEST ISZERO ISZERO PUSH2 0x1C76 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4554485F414D4F554E545F4D49534D41544348000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x1C7E PUSH2 0x3D05 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5448 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ ISZERO PUSH2 0x1D20 JUMPI PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5448 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x0 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH32 0x353C2EB9E53A4A4A6D45D72082FF2E9DC829D1125618772A83EB0E7F86632C42 SLOAD PUSH2 0x1CE6 SWAP1 CALLVALUE PUSH4 0xFFFFFFFF PUSH2 0x3D47 AND JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5448 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x0 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH32 0x353C2EB9E53A4A4A6D45D72082FF2E9DC829D1125618772A83EB0E7F86632C42 SSTORE JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x15 SLOAD SWAP1 SWAP8 POP PUSH1 0xFF AND ISZERO PUSH2 0x1DE9 JUMPI PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x14 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD ISZERO DUP1 PUSH2 0x1D93 JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x14 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x1D90 DUP9 DUP13 PUSH4 0xFFFFFFFF PUSH2 0x3B2A AND JUMP JUMPDEST GT ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x1DE9 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4D41585F5354414B45445F42414C414E43455F524541434845440000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP13 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD DUP2 MLOAD PUSH32 0x18160DDD00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP2 MLOAD SWAP5 AND SWAP10 POP DUP10 SWAP4 PUSH4 0x18160DDD SWAP4 PUSH1 0x4 DUP1 DUP5 ADD SWAP5 SWAP4 DUP4 SWAP1 SUB ADD SWAP1 DUP3 SWAP1 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1E56 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1E6A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1E80 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP5 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5448 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ PUSH2 0x1EAE JUMPI PUSH2 0x1EAE DUP12 CALLER ADDRESS DUP14 PUSH2 0x3DA7 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x1ED7 SWAP1 DUP12 PUSH4 0xFFFFFFFF PUSH2 0x3B2A AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP13 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE PUSH2 0x1F00 DUP8 DUP12 PUSH4 0xFFFFFFFF PUSH2 0x3B2A AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP13 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE SWAP4 POP DUP7 ISZERO DUP1 PUSH2 0x1F29 JUMPI POP DUP5 ISZERO JUMPDEST ISZERO PUSH2 0x1F36 JUMPI DUP10 SWAP4 POP PUSH2 0x1F4D JUMP JUMPDEST PUSH2 0x1F4A DUP8 PUSH2 0x17B0 DUP13 DUP9 PUSH4 0xFFFFFFFF PUSH2 0x3AA6 AND JUMP JUMPDEST SWAP4 POP JUMPDEST DUP9 DUP5 LT ISZERO PUSH2 0x1FA5 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F52455455524E5F544F4F5F4C4F570000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xC6C3BBE600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP10 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE CALLER PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP3 ADD DUP9 SWAP1 MSTORE SWAP2 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP2 PUSH4 0xC6C3BBE6 SWAP2 PUSH1 0x64 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2019 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x202D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x2039 PUSH2 0x3994 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND CALLER PUSH32 0x4A1A2A6176E9646D9E3157F7C2AB3C499F18337C0B0828CFB28E0A61DE4A11F7 DUP13 PUSH2 0x2076 DUP12 DUP3 PUSH4 0xFFFFFFFF PUSH2 0x3B2A AND JUMP JUMPDEST PUSH2 0x2086 DUP11 DUP11 PUSH4 0xFFFFFFFF PUSH2 0x3B2A AND JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP4 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP3 SWAP1 SWAP3 MSTORE DUP3 DUP3 ADD MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG3 PUSH2 0x20BD DUP7 PUSH2 0x20B7 DUP8 DUP8 PUSH4 0xFFFFFFFF PUSH2 0x3B2A AND JUMP JUMPDEST DUP14 PUSH2 0x3E8F JUMP JUMPDEST PUSH2 0x2112 PUSH1 0x7 PUSH1 0x0 DUP2 SLOAD DUP2 LT ISZERO ISZERO PUSH2 0x20D0 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x7 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP2 PUSH1 0x1 SWAP1 DUP2 LT PUSH2 0x20F7 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP1 DUP1 PUSH2 0x3EEF JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0x4 SSTORE POP SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD AND SWAP1 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH9 0x10000000000000000 SWAP1 DIV PUSH4 0xFFFFFFFF AND DUP2 JUMP JUMPDEST DUP2 PUSH2 0x2165 DUP2 PUSH2 0x3441 JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP2 SWAP1 SWAP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD DUP1 SLOAD PUSH4 0xFFFFFFFF NOT AND PUSH4 0xFFFFFFFF SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH2 0x21A6 PUSH2 0x3BF5 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH2 0x21B3 PUSH2 0x34C0 JUMP JUMPDEST PUSH2 0x21CA PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5428 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x36A6 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD SWAP1 SWAP2 POP PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 PUSH2 0x2207 JUMPI POP PUSH2 0x2205 PUSH2 0x163A JUMP JUMPDEST ISZERO JUMPDEST DUP1 PUSH2 0x221F JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ JUMPDEST ISZERO ISZERO PUSH2 0x2263 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5468 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x226E DUP5 DUP5 DUP5 PUSH2 0x3F5B JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x22A5 JUMPI PUSH2 0x22A5 DUP5 PUSH2 0x3F8C JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0x4 SSTORE POP POP JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH2 0x22C7 PUSH2 0x34C0 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5428 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x22DF DUP2 PUSH2 0x4080 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xF2FDE38B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP2 PUSH4 0xF2FDE38B SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2346 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x235A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 DUP12 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x18160DDD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x23AF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x23C3 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x23D9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP15 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD SWAP1 SWAP4 AND DUP3 MSTORE PUSH1 0xC SWAP1 MSTORE KECCAK256 SLOAD SWAP1 SWAP9 POP SWAP7 POP DUP8 DUP12 LT ISZERO PUSH2 0x24A4 JUMPI PUSH1 0xA SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x243C SWAP1 PUSH1 0x14 PUSH4 0xFFFFFFFF PUSH2 0x3AA6 AND JUMP JUMPDEST PUSH1 0xA SLOAD SWAP1 SWAP7 POP PUSH2 0x2454 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x168E JUMP JUMPDEST SWAP5 POP DUP5 DUP7 LT PUSH2 0x2464 JUMPI DUP5 DUP7 PUSH2 0x2467 JUMP JUMPDEST DUP6 DUP6 JUMPDEST SWAP1 SWAP5 POP SWAP3 POP PUSH2 0x2480 DUP9 PUSH2 0x17B0 DUP14 DUP11 PUSH4 0xFFFFFFFF PUSH2 0x3AA6 AND JUMP JUMPDEST SWAP2 POP PUSH2 0x2496 DUP4 PUSH2 0x17B0 DUP5 DUP8 PUSH4 0xFFFFFFFF PUSH2 0x3AA6 AND JUMP JUMPDEST SWAP10 POP POP DUP9 DUP2 SUB SWAP8 POP DUP9 PUSH2 0x24AE JUMP JUMPDEST SWAP6 SWAP9 POP PUSH1 0x0 SWAP8 POP DUP9 SWAP6 JUMPDEST POP POP POP POP POP POP POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x24C7 PUSH2 0x3BF5 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH2 0x24D4 PUSH2 0x34C0 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5448 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x24EC DUP2 PUSH2 0x3441 JUMP JUMPDEST PUSH2 0x2503 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5428 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x36A6 JUMP JUMPDEST SWAP2 POP PUSH2 0x250D PUSH2 0x163A JUMP JUMPDEST ISZERO DUP1 PUSH2 0x2526 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 DUP2 AND SWAP2 AND EQ JUMPDEST ISZERO ISZERO PUSH2 0x256A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5468 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP1 ADDRESS BALANCE DUP1 ISZERO PUSH2 0x8FC MUL SWAP2 PUSH1 0x0 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x25A0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH2 0x25B8 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5448 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x3F8C JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0x4 SSTORE POP JUMP JUMPDEST PUSH2 0x25CA PUSH2 0x34C0 JUMP JUMPDEST PUSH3 0x186A0 DUP2 GT ISZERO PUSH2 0x2625 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F44594E414D49435F4645455F464143544F520000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x16 SLOAD PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP4 SWAP1 MSTORE DUP1 MLOAD PUSH32 0x382FD3516344712A511DCD464FF8E6AB54139D6A28F64087A3253353EE7A5679 SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG1 PUSH1 0x16 SSTORE JUMP JUMPDEST PUSH1 0x2 PUSH2 0x2671 PUSH2 0x27C8 JUMP JUMPDEST PUSH2 0xFFFF AND LT PUSH2 0x26B8 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5488 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x26C2 DUP3 DUP3 PUSH2 0x40D6 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x166A PUSH2 0x27C8 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x2720 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5468 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND SWAP4 SWAP1 SWAP2 AND SWAP2 PUSH32 0x343765429AEA5A34B3FF6A3785A98A5ABB2597ACA87BFBB58632C173D585373A SWAP2 LOG3 PUSH1 0x1 DUP1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND OR SWAP1 SWAP2 SSTORE AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH5 0x100000000 SWAP1 DIV PUSH4 0xFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x14 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x7 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0xF SLOAD PUSH1 0x10 SLOAD DUP3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x27E5 PUSH2 0x53F1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x27F3 PUSH2 0x3C4F JUMP JUMPDEST PUSH2 0x27FC DUP13 PUSH2 0x3441 JUMP JUMPDEST PUSH2 0x2805 DUP12 PUSH2 0x3441 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP13 DUP2 AND SWAP1 DUP13 AND EQ ISZERO PUSH2 0x2869 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F534F555243455F54415247455400000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x2871 PUSH2 0x397A JUMP JUMPDEST PUSH1 0x11 SLOAD EQ ISZERO PUSH2 0x2918 JUMPI PUSH1 0xF PUSH1 0x40 DUP1 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD SLOAD DUP2 MSTORE POP POP SWAP5 POP PUSH1 0x8 PUSH1 0x0 DUP14 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH4 0xFFFFFFFF AND SWAP7 POP PUSH1 0x8 PUSH1 0x0 DUP13 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH4 0xFFFFFFFF AND SWAP6 POP PUSH2 0x2958 JUMP JUMPDEST PUSH2 0x2920 PUSH2 0x4308 JUMP JUMPDEST SWAP5 POP PUSH2 0x292B DUP6 PUSH2 0x4540 JUMP JUMPDEST PUSH1 0xA SLOAD SWAP2 SWAP6 POP SWAP4 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP14 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x2951 JUMPI DUP4 SWAP7 POP DUP3 SWAP6 POP PUSH2 0x2958 JUMP JUMPDEST DUP3 SWAP7 POP DUP4 SWAP6 POP JUMPDEST PUSH2 0x2966 DUP13 DUP13 DUP10 DUP10 DUP10 DUP16 PUSH2 0x466A JUMP JUMPDEST SWAP2 SWAP15 SWAP2 SWAP14 POP SWAP1 SWAP12 POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x2983 PUSH2 0x34C0 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x2 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x1 DUP2 JUMP JUMPDEST PUSH2 0x29B4 PUSH2 0x34C0 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5428 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x29CC DUP2 PUSH2 0x4080 JUMP JUMPDEST DUP3 PUSH2 0x29D6 DUP2 PUSH2 0x3441 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE JUMP JUMPDEST PUSH1 0x11 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x1 PUSH2 0x2A13 PUSH2 0x27C8 JUMP JUMPDEST PUSH2 0xFFFF AND GT PUSH2 0x2A5A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5488 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x17F7 PUSH2 0x4806 JUMP JUMPDEST PUSH1 0x7 DUP1 SLOAD DUP3 SWAP1 DUP2 LT PUSH2 0x2A70 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP1 POP DUP2 JUMP JUMPDEST PUSH1 0x17 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 SWAP1 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2ABD PUSH2 0x34C0 JUMP JUMPDEST PUSH2 0x2AD4 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5428 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x36A6 JUMP JUMPDEST PUSH1 0x5 SLOAD SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x2AEE PUSH2 0x1899 JUMP JUMPDEST PUSH2 0xFFFF AND PUSH32 0x6B08C2E2C9969E55A647A764DB9B554D64DC42F1A704DA11A6D5B129AD163F2C PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH2 0x2B27 DUP2 PUSH2 0x3399 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x90F58C9600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 AND SWAP2 PUSH4 0x90F58C96 SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2B88 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2B9C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x1637 PUSH2 0x26D0 JUMP JUMPDEST PUSH1 0x14 SWAP1 JUMP JUMPDEST PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD PUSH4 0xFFFFFFFF DUP2 AND SWAP1 PUSH1 0xFF PUSH5 0x100000000 DUP3 DIV DUP2 AND SWAP2 PUSH6 0x10000000000 DUP2 DIV DUP3 AND SWAP2 PUSH7 0x1000000000000 SWAP1 SWAP2 DIV AND DUP6 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2BFE DUP3 PUSH2 0x2C38 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2C0F PUSH2 0x53F1 JUMP JUMPDEST PUSH2 0x2C17 PUSH2 0x4308 JUMP JUMPDEST DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD MLOAD SWAP1 SWAP5 SWAP1 SWAP4 POP SWAP2 POP POP JUMP JUMPDEST PUSH1 0xB SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0x2C44 DUP2 PUSH2 0x3441 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x2C72 PUSH2 0x3BF5 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH2 0x2C7F PUSH2 0x3C4F JUMP JUMPDEST DUP9 PUSH2 0x2C89 DUP2 PUSH2 0x48D2 JUMP JUMPDEST DUP9 PUSH2 0x2C93 DUP2 PUSH2 0x3CAD JUMP JUMPDEST DUP9 PUSH2 0x2C9D DUP2 PUSH2 0x3CAD JUMP JUMPDEST PUSH2 0x2CA5 PUSH2 0x3D05 JUMP JUMPDEST DUP12 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x18160DDD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2CE3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2CF7 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2D0D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP8 POP PUSH2 0x2D1B DUP13 DUP13 PUSH2 0x2362 JUMP JUMPDEST POP SWAP7 POP DUP10 DUP8 LT ISZERO PUSH2 0x2D76 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F52455455524E5F544F4F5F4C4F570000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0xE PUSH1 0x0 DUP14 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP6 POP PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xF6B911BC DUP14 CALLER DUP15 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP4 POP POP POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2E43 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2E57 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x2E84 SWAP2 POP DUP9 PUSH4 0xFFFFFFFF PUSH2 0x3D47 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE PUSH1 0xC SWAP1 MSTORE KECCAK256 SLOAD PUSH2 0x2EB9 SWAP1 DUP9 PUSH4 0xFFFFFFFF PUSH2 0x3D47 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP3 SWAP1 SSTORE SWAP1 SWAP6 POP PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5448 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ ISZERO PUSH2 0x2F1F JUMPI PUSH1 0x40 MLOAD CALLER SWAP1 DUP9 ISZERO PUSH2 0x8FC MUL SWAP1 DUP10 SWAP1 PUSH1 0x0 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x2F19 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH2 0x2F2A JUMP JUMPDEST PUSH2 0x2F2A DUP7 CALLER DUP10 PUSH2 0x4943 JUMP JUMPDEST PUSH2 0x2F32 PUSH2 0x3994 JUMP JUMPDEST PUSH2 0x2F42 DUP9 DUP13 PUSH4 0xFFFFFFFF PUSH2 0x3D47 AND JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP10 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP9 SWAP1 MSTORE DUP1 DUP3 ADD DUP4 SWAP1 MSTORE SWAP1 MLOAD SWAP2 SWAP6 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 AND SWAP2 CALLER SWAP2 PUSH32 0xBC7D19D505C7EC4DB83F3B51F19FB98C4C8A99922E7839D1EE608DFBEE29501B SWAP2 SWAP1 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG3 PUSH2 0x2F9E DUP13 DUP6 DUP9 PUSH2 0x3E8F JUMP JUMPDEST PUSH2 0x2FB1 PUSH1 0x7 PUSH1 0x0 DUP2 SLOAD DUP2 LT ISZERO ISZERO PUSH2 0x20D0 JUMPI INVALID JUMPDEST POP POP PUSH1 0x1 PUSH1 0x4 SSTORE POP SWAP3 SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x16 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2FD6 PUSH2 0x3BF5 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH32 0x536F7672796E537761704E6574776F726B000000000000000000000000000000 PUSH2 0x3005 DUP2 PUSH2 0x4080 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 DUP2 AND SWAP1 DUP8 AND EQ ISZERO PUSH2 0x3069 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F534F555243455F54415247455400000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND ISZERO DUP1 PUSH2 0x31AC JUMPI POP PUSH1 0x6 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x3AF32ABF00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP2 PUSH4 0x3AF32ABF SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x30E4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x30F8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x310E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD DUP1 ISZERO PUSH2 0x31AC JUMPI POP PUSH1 0x6 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x3AF32ABF00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP2 PUSH4 0x3AF32ABF SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x317F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3193 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x31A9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD JUMPDEST ISZERO ISZERO PUSH2 0x3202 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4E4F545F57484954454C495354454400000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x320F DUP8 DUP8 DUP8 DUP8 DUP8 PUSH2 0x49FA JUMP JUMPDEST PUSH1 0x1 PUSH1 0x4 SSTORE SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x322A PUSH2 0x53F1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x3235 PUSH2 0x4308 JUMP JUMPDEST SWAP3 POP PUSH2 0x3240 DUP4 PUSH2 0x4540 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x7 PUSH1 0x0 DUP2 SLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3254 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0xA SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x3289 JUMPI PUSH4 0xFFFFFFFF DUP1 DUP4 AND SWAP6 POP DUP2 AND SWAP4 POP PUSH2 0x3298 JUMP JUMPDEST PUSH4 0xFFFFFFFF DUP1 DUP3 AND SWAP6 POP DUP3 AND SWAP4 POP JUMPDEST POP POP POP SWAP1 SWAP2 JUMP JUMPDEST PUSH2 0x32A7 PUSH2 0x34C0 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH4 0xFFFFFFFF PUSH5 0x100000000 SWAP1 SWAP2 DIV DUP2 AND SWAP1 DUP3 AND GT ISZERO PUSH2 0x3313 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F434F4E56455253494F4E5F464545000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH4 0xFFFFFFFF PUSH9 0x10000000000000000 SWAP1 SWAP4 DIV DUP4 AND DUP2 MSTORE SWAP2 DUP4 AND PUSH1 0x20 DUP4 ADD MSTORE DUP1 MLOAD PUSH32 0x81CD2FFB37DD237C0E4E2A3DE5265FCF9DEB43D3E7801E80DB9F1CCFBA7EE600 SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG1 PUSH1 0x9 DUP1 SLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP3 AND PUSH9 0x10000000000000000 MUL PUSH12 0xFFFFFFFF0000000000000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x11 SSTORE JUMP JUMPDEST PUSH2 0x33A1 PUSH2 0x34C0 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x3407 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F4F574E4552000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x12 SLOAD PUSH1 0x13 SLOAD DUP3 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO PUSH2 0x1637 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245534552564500000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x17F7 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5468 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP1 PUSH2 0x3534 DUP8 PUSH2 0x3528 DUP13 DUP10 PUSH4 0xFFFFFFFF PUSH2 0x3AA6 AND JUMP JUMPDEST SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x3AA6 AND JUMP JUMPDEST SWAP2 POP PUSH2 0x354A DUP9 PUSH2 0x3528 DUP12 DUP9 PUSH4 0xFFFFFFFF PUSH2 0x3AA6 AND JUMP JUMPDEST SWAP1 POP DUP2 DUP2 GT ISZERO PUSH2 0x3576 JUMPI PUSH2 0x356F DUP2 PUSH2 0x17B0 PUSH1 0x14 PUSH2 0x3528 DUP7 DUP5 SUB DUP10 PUSH4 0xFFFFFFFF PUSH2 0x3AA6 AND JUMP JUMPDEST SWAP3 POP PUSH2 0x357B JUMP JUMPDEST PUSH1 0x0 SWAP3 POP JUMPDEST POP POP SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x3590 PUSH2 0x163A JUMP JUMPDEST ISZERO PUSH2 0x17F7 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xA PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F41435449564500000000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ADDRESS EQ ISZERO PUSH2 0x1637 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F414444524553535F49535F53454C4600000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0x1637 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xBB34534C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP2 PUSH4 0xBB34534C SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x370C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3720 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x3736 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP6 POP DUP6 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x6D3E313E PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x379E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x37B2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x37DB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 MLOAD PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x37F3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD PUSH1 0x20 DUP2 ADD DUP5 DUP2 GT ISZERO PUSH2 0x3806 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP6 PUSH1 0x20 DUP3 MUL DUP4 ADD GT PUSH5 0x100000000 DUP3 GT OR ISZERO PUSH2 0x3823 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP DUP1 MLOAD PUSH1 0x7 SLOAD SWAP2 SWAP10 POP ISZERO SWAP8 POP SWAP6 POP PUSH1 0x0 SWAP5 POP POP POP POP JUMPDEST DUP3 DUP3 LT ISZERO PUSH2 0x235A JUMPI DUP4 ISZERO PUSH2 0x38B9 JUMPI DUP6 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x9CBF9E36 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3886 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x389A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x38B0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 POP PUSH2 0x38D4 JUMP JUMPDEST DUP5 DUP3 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x38C7 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD SWAP1 POP JUMPDEST DUP1 PUSH1 0xD PUSH1 0x0 PUSH1 0x7 DUP6 DUP2 SLOAD DUP2 LT ISZERO ISZERO PUSH2 0x38E8 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 SWAP2 SWAP1 SWAP2 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 DUP2 AND DUP5 MSTORE SWAP1 DUP4 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x40 SWAP1 SWAP2 ADD SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND SWAP3 SWAP1 SWAP2 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH1 0x7 DUP1 SLOAD DUP4 SWAP1 DUP2 LT PUSH2 0x3936 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 SWAP1 SWAP2 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 DUP2 AND DUP5 MSTORE PUSH1 0xE SWAP1 SWAP3 MSTORE PUSH1 0x40 SWAP1 SWAP3 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND SWAP2 SWAP1 SWAP3 AND OR SWAP1 SSTORE PUSH1 0x1 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x383A JUMP JUMPDEST PUSH1 0x0 PUSH1 0x17 SLOAD PUSH1 0x0 EQ ISZERO PUSH2 0x398D JUMPI TIMESTAMP PUSH2 0x166A JUMP JUMPDEST POP PUSH1 0x17 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0xF SLOAD DUP2 MSTORE PUSH1 0x10 SLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 SWAP1 DUP2 SWAP1 PUSH2 0x39B9 SWAP1 PUSH2 0x4540 JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 PUSH1 0x1 SWAP1 DUP2 ADD DUP1 SLOAD PUSH4 0xFFFFFFFF SWAP8 DUP9 AND PUSH4 0xFFFFFFFF NOT SWAP2 DUP3 AND OR SWAP1 SWAP2 SSTORE PUSH1 0xB SLOAD SWAP1 SWAP5 AND DUP4 MSTORE SWAP2 KECCAK256 ADD DUP1 SLOAD SWAP3 SWAP1 SWAP4 AND SWAP2 AND OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 ADDRESS PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x8DA5CB5B PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3A6B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3A7F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x3A95 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 ISZERO ISZERO PUSH2 0x3AB9 JUMPI PUSH1 0x0 SWAP2 POP PUSH2 0x3B23 JUMP JUMPDEST POP DUP3 DUP3 MUL DUP3 DUP5 DUP3 DUP2 ISZERO ISZERO PUSH2 0x3AC9 JUMPI INVALID JUMPDEST DIV EQ PUSH2 0x3B1F JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP1 SWAP2 POP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 ADD DUP4 DUP2 LT ISZERO PUSH2 0x3B1F JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP4 GT PUSH2 0x3BE1 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4449564944455F42595F5A45524F0000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP3 DUP5 DUP2 ISZERO ISZERO PUSH2 0x3BEC JUMPI INVALID JUMPDEST DIV SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH1 0x1 EQ PUSH2 0x17F7 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5245454E5452414E4359000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x3C57 PUSH2 0x163A JUMP JUMPDEST ISZERO ISZERO PUSH2 0x17F7 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E4143544956450000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 GT PUSH2 0x1637 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5A45524F5F56414C5545000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x26C2 JUMPI PUSH2 0x3D3F PUSH1 0x7 DUP3 DUP2 SLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3D25 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x3F8C JUMP JUMPDEST PUSH1 0x1 ADD PUSH2 0x3D0B JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT ISZERO PUSH2 0x3DA1 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F554E444552464C4F5700000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP SWAP1 SUB SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x7472616E7366657246726F6D28616464726573732C616464726573732C75696E DUP2 MSTORE PUSH32 0x7432353629000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP3 MLOAD SWAP2 DUP3 SWAP1 SUB PUSH1 0x25 ADD DUP3 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP9 AND PUSH1 0x24 DUP6 ADD MSTORE DUP7 AND PUSH1 0x44 DUP5 ADD MSTORE PUSH1 0x64 DUP1 DUP5 ADD DUP7 SWAP1 MSTORE DUP5 MLOAD DUP1 DUP6 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x84 SWAP1 SWAP4 ADD SWAP1 SWAP4 MSTORE DUP2 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE PUSH2 0x3E89 SWAP1 DUP6 SWAP1 PUSH2 0x4AED JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP3 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SLOAD DUP3 MLOAD SWAP1 DUP2 MSTORE SWAP1 DUP2 ADD DUP7 SWAP1 MSTORE DUP2 MLOAD SWAP3 SWAP4 DUP8 AND SWAP3 PUSH32 0x77F29993CF2C084E726F7E802DA0719D6A0ADE3E204BADC7A3FFD57ECB768C24 SWAP3 SWAP2 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH2 0x3EF7 PUSH2 0x53F1 JUMP JUMPDEST PUSH2 0x3F03 DUP6 DUP6 DUP6 DUP6 PUSH2 0x4B7B JUMP JUMPDEST DUP1 MLOAD PUSH1 0x20 DUP1 DUP4 ADD MLOAD PUSH1 0x40 DUP1 MLOAD SWAP4 DUP5 MSTORE SWAP2 DUP4 ADD MSTORE DUP1 MLOAD SWAP3 SWAP4 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP9 AND SWAP4 SWAP1 DUP10 AND SWAP3 PUSH32 0x77F29993CF2C084E726F7E802DA0719D6A0ADE3E204BADC7A3FFD57ECB768C24 SWAP3 SWAP1 DUP3 SWAP1 SUB ADD SWAP1 LOG3 POP POP POP POP POP JUMP JUMPDEST PUSH2 0x3F63 PUSH2 0x34C0 JUMP JUMPDEST DUP3 PUSH2 0x3F6D DUP2 PUSH2 0x3646 JUMP JUMPDEST DUP3 PUSH2 0x3F77 DUP2 PUSH2 0x3646 JUMP JUMPDEST DUP4 PUSH2 0x3F81 DUP2 PUSH2 0x35E5 JUMP JUMPDEST PUSH2 0x235A DUP7 DUP7 DUP7 PUSH2 0x4943 JUMP JUMPDEST DUP1 PUSH2 0x3F96 DUP2 PUSH2 0x3441 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 AND PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5448 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ ISZERO PUSH2 0x3FD6 JUMPI PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 ADDRESS BALANCE SWAP1 SSTORE PUSH2 0x26C2 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x4037 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x404B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x4061 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE POP POP JUMP JUMPDEST PUSH2 0x4089 DUP2 PUSH2 0x36A6 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x1637 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5468 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x40E0 PUSH2 0x34C0 JUMP JUMPDEST PUSH2 0x40E8 PUSH2 0x3588 JUMP JUMPDEST DUP3 PUSH2 0x40F2 DUP2 PUSH2 0x3646 JUMP JUMPDEST DUP4 PUSH2 0x40FC DUP2 PUSH2 0x35E5 JUMP JUMPDEST DUP4 PUSH2 0x4106 DUP2 PUSH2 0x4C43 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 DUP2 AND SWAP2 AND EQ DUP1 ISZERO SWAP1 PUSH2 0x414A JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x41A0 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245534552564500000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x9 SLOAD PUSH4 0xFFFFFFFF SWAP1 DUP2 AND PUSH3 0xF4240 SUB DUP2 AND SWAP1 DUP7 AND GT ISZERO PUSH2 0x420B JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F574549474854000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0xFFFF PUSH2 0x4216 PUSH2 0x27C8 JUMP JUMPDEST PUSH2 0xFFFF AND LT PUSH2 0x425D JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5488 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP2 DUP2 SSTORE PUSH1 0x1 SWAP1 DUP2 ADD DUP1 SLOAD PUSH7 0xFF000000000000 NOT PUSH4 0xFFFFFFFF DUP1 DUP9 AND PUSH4 0xFFFFFFFF NOT SWAP4 DUP5 AND OR SWAP2 SWAP1 SWAP2 AND PUSH7 0x1000000000000 OR SWAP1 SWAP3 SSTORE PUSH1 0x7 DUP1 SLOAD SWAP4 DUP5 ADD DUP2 SSTORE SWAP1 SWAP4 MSTORE PUSH32 0xA66CC928B5EDB82AF9BD49922954155AB7B0942694BEA4CE44661D9A8736C688 SWAP1 SWAP2 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND SWAP1 SWAP4 OR SWAP1 SWAP3 SSTORE PUSH1 0x9 DUP1 SLOAD DUP1 DUP5 AND SWAP1 SWAP5 ADD SWAP1 SWAP3 AND SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE POP JUMP JUMPDEST PUSH2 0x4310 PUSH2 0x53F1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x431E PUSH2 0x53F1 JUMP JUMPDEST PUSH2 0x4326 PUSH2 0x53F1 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0xA SLOAD PUSH1 0xB SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xB1772D7A00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND PUSH1 0x4 DUP3 ADD MSTORE SWAP2 DUP4 AND PUSH1 0x24 DUP4 ADD MSTORE MLOAD PUSH1 0x0 SWAP4 DUP5 SWAP4 DUP5 SWAP4 DUP5 SWAP4 PUSH13 0x1000000000000000000000000 SWAP1 SWAP4 DIV SWAP1 SWAP2 AND SWAP2 PUSH4 0xB1772D7A SWAP2 PUSH1 0x44 DUP1 DUP3 ADD SWAP3 PUSH1 0x60 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x43B4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x43C8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x60 DUP2 LT ISZERO PUSH2 0x43DE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD PUSH1 0x20 DUP3 ADD MLOAD PUSH1 0x40 SWAP1 SWAP3 ADD MLOAD PUSH1 0x11 SLOAD SWAP2 SWAP13 POP SWAP2 SWAP11 POP SWAP1 SWAP9 POP DUP9 GT ISZERO PUSH2 0x441B JUMPI PUSH1 0x40 DUP1 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 DUP12 DUP2 MSTORE PUSH1 0x20 ADD DUP11 DUP2 MSTORE POP SWAP11 POP PUSH2 0x4533 JUMP JUMPDEST PUSH1 0x11 SLOAD PUSH2 0x4426 PUSH2 0x397A JUMP JUMPDEST SUB SWAP7 POP DUP7 ISZERO ISZERO PUSH2 0x444E JUMPI PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0xF SLOAD DUP2 MSTORE PUSH1 0x10 SLOAD PUSH1 0x20 DUP3 ADD MSTORE SWAP11 POP PUSH2 0x4533 JUMP JUMPDEST PUSH2 0x258 DUP8 LT PUSH2 0x4475 JUMPI PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x12 SLOAD DUP2 MSTORE PUSH1 0x13 SLOAD PUSH1 0x20 DUP3 ADD MSTORE SWAP11 POP PUSH2 0x4533 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD DUP3 MSTORE PUSH1 0xF SLOAD DUP2 MSTORE PUSH1 0x10 SLOAD PUSH1 0x20 DUP1 DUP4 ADD SWAP2 DUP3 MSTORE DUP4 MLOAD DUP1 DUP6 ADD SWAP1 SWAP5 MSTORE PUSH1 0x12 SLOAD DUP1 DUP6 MSTORE PUSH1 0x13 SLOAD SWAP2 DUP6 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP1 MLOAD SWAP2 SWAP9 POP SWAP2 SWAP7 POP PUSH2 0x44BD SWAP2 PUSH4 0xFFFFFFFF PUSH2 0x3AA6 AND JUMP JUMPDEST PUSH1 0x20 DUP7 ADD MLOAD DUP8 MLOAD SWAP2 SWAP6 POP PUSH2 0x44D7 SWAP2 SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x3AA6 AND JUMP JUMPDEST SWAP3 POP PUSH2 0x4501 PUSH2 0x44EC DUP6 DUP10 PUSH4 0xFFFFFFFF PUSH2 0x3AA6 AND JUMP JUMPDEST PUSH2 0x16D0 DUP6 PUSH2 0x258 DUP12 SWAP1 SUB PUSH4 0xFFFFFFFF PUSH2 0x3AA6 AND JUMP JUMPDEST SWAP2 POP PUSH2 0x4524 PUSH2 0x258 PUSH2 0x3528 DUP8 PUSH1 0x20 ADD MLOAD DUP10 PUSH1 0x20 ADD MLOAD PUSH2 0x3AA6 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP PUSH2 0x4530 DUP3 DUP3 PUSH2 0x4CB8 JUMP JUMPDEST SWAP11 POP JUMPDEST POP POP POP POP POP POP POP POP POP POP SWAP1 JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD SWAP1 SWAP2 DUP3 SWAP2 SWAP1 DUP3 SWAP1 DUP2 SWAP1 PUSH2 0x456D SWAP1 PUSH2 0x168E JUMP JUMPDEST PUSH1 0xB SLOAD SWAP1 SWAP3 POP PUSH2 0x4585 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x168E JUMP JUMPDEST SWAP1 POP PUSH2 0x45B0 PUSH32 0x536F7672796E53776170466F726D756C61000000000000000000000000000000 PUSH2 0x36A6 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xA11AA1B4 PUSH2 0x45CF DUP6 PUSH1 0x14 PUSH4 0xFFFFFFFF PUSH2 0x3AA6 AND JUMP JUMPDEST DUP9 MLOAD PUSH1 0x20 DUP11 ADD MLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0xE0 PUSH1 0x2 EXP PUSH4 0xFFFFFFFF DUP8 AND MUL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP5 SWAP1 SWAP5 MSTORE PUSH1 0x24 DUP5 ADD DUP9 SWAP1 MSTORE PUSH1 0x44 DUP5 ADD DUP8 SWAP1 MSTORE PUSH1 0x64 DUP5 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x84 DUP4 ADD MSTORE DUP1 MLOAD PUSH1 0xA4 DUP1 DUP5 ADD SWAP4 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x462A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x463E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x4654 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD MLOAD SWAP1 SWAP6 POP SWAP4 POP POP POP POP SWAP2 POP SWAP2 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP1 DUP1 PUSH4 0xFFFFFFFF DUP10 AND ISZERO ISZERO PUSH2 0x46A2 JUMPI PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH4 0xFFFFFFFF AND SWAP9 POP JUMPDEST PUSH4 0xFFFFFFFF DUP9 AND ISZERO ISZERO PUSH2 0x46D4 JUMPI PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP11 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH4 0xFFFFFFFF AND SWAP8 POP JUMPDEST PUSH2 0x46DD DUP12 PUSH2 0x168E JUMP JUMPDEST SWAP2 POP PUSH2 0x46E8 DUP11 PUSH2 0x168E JUMP JUMPDEST SWAP1 POP PUSH2 0x4713 PUSH32 0x536F7672796E53776170466F726D756C61000000000000000000000000000000 PUSH2 0x36A6 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x94491FAB00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH4 0xFFFFFFFF DUP1 DUP14 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP3 ADD DUP6 SWAP1 MSTORE DUP12 AND PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 DUP2 ADD DUP10 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 PUSH4 0x94491FAB SWAP2 PUSH1 0xA4 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x479A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x47AE JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x47C4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP5 POP PUSH2 0x47D1 DUP6 PUSH2 0x4D0D JUMP JUMPDEST SWAP4 POP PUSH2 0x47E4 DUP5 PUSH2 0x16D0 DUP13 DUP13 DUP13 DUP13 DUP12 PUSH2 0x4D3D JUMP JUMPDEST SWAP3 POP PUSH2 0x47F6 DUP6 DUP5 PUSH4 0xFFFFFFFF PUSH2 0x3D47 AND JUMP JUMPDEST SWAP5 POP POP POP SWAP7 POP SWAP7 POP SWAP7 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0x480E PUSH2 0x34C0 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4818 PUSH2 0x27C8 JUMP JUMPDEST PUSH2 0xFFFF AND GT PUSH2 0x485F JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5488 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x79BA5097 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x48B2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x48C6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x17F7 PUSH2 0x3D05 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD AND ISZERO ISZERO PUSH2 0x1637 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F504F4F4C5F544F4B454E00000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x7472616E7366657228616464726573732C75696E743235362900000000000000 DUP2 MSTORE DUP2 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x19 ADD DUP2 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x64 SWAP1 SWAP3 ADD SWAP1 SWAP3 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE PUSH2 0x49F5 SWAP1 DUP5 SWAP1 PUSH2 0x4AED JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x4A07 PUSH2 0x3C4F JUMP JUMPDEST DUP8 PUSH2 0x4A11 DUP2 PUSH2 0x3441 JUMP JUMPDEST DUP8 PUSH2 0x4A1B DUP2 PUSH2 0x3441 JUMP JUMPDEST PUSH2 0x4A26 DUP11 DUP11 DUP11 PUSH2 0x4E16 JUMP JUMPDEST SWAP1 SWAP5 POP SWAP3 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP10 AND PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5448 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ ISZERO PUSH2 0x4A86 JUMPI PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND SWAP1 DUP6 ISZERO PUSH2 0x8FC MUL SWAP1 DUP7 SWAP1 PUSH1 0x0 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x4A80 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH2 0x4A91 JUMP JUMPDEST PUSH2 0x4A91 DUP10 DUP8 DUP7 PUSH2 0x4943 JUMP JUMPDEST PUSH2 0x4A9F DUP11 DUP11 DUP10 DUP12 DUP9 DUP9 PUSH2 0x512B JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 PUSH1 0x1 SWAP1 DUP2 ADD SLOAD SWAP4 DUP14 AND DUP4 MSTORE SWAP2 KECCAK256 ADD SLOAD PUSH2 0x4ADF SWAP2 DUP13 SWAP2 DUP13 SWAP2 PUSH4 0xFFFFFFFF SWAP1 DUP2 AND SWAP2 AND PUSH2 0x51B0 JUMP JUMPDEST POP SWAP2 SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x4AF5 PUSH2 0x5408 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE POP SWAP1 POP PUSH1 0x20 DUP2 DUP4 MLOAD PUSH1 0x20 DUP6 ADD PUSH1 0x0 DUP8 GAS CALL DUP1 ISZERO ISZERO PUSH2 0x4B22 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD ISZERO ISZERO PUSH2 0x49F5 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5452414E534645525F4641494C454400000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x4B83 PUSH2 0x53F1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x4B8F DUP8 PUSH2 0x168E JUMP JUMPDEST SWAP2 POP PUSH2 0x4B9A DUP7 PUSH2 0x168E JUMP JUMPDEST SWAP1 POP PUSH4 0xFFFFFFFF DUP6 AND ISZERO ISZERO PUSH2 0x4BCE JUMPI PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH4 0xFFFFFFFF AND SWAP5 POP JUMPDEST PUSH4 0xFFFFFFFF DUP5 AND ISZERO ISZERO PUSH2 0x4C00 JUMPI PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH4 0xFFFFFFFF AND SWAP4 POP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE DUP1 PUSH2 0x4C1E DUP4 PUSH4 0xFFFFFFFF DUP1 DUP11 AND SWAP1 PUSH2 0x3AA6 AND JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x4C36 DUP5 PUSH4 0xFFFFFFFF DUP1 DUP10 AND SWAP1 PUSH2 0x3AA6 AND JUMP JUMPDEST SWAP1 MSTORE SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH4 0xFFFFFFFF AND GT DUP1 ISZERO PUSH2 0x4C62 JUMPI POP PUSH3 0xF4240 PUSH4 0xFFFFFFFF DUP3 AND GT ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x1637 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F574549474854000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x4CC0 PUSH2 0x53F1 JUMP JUMPDEST PUSH2 0x4CC8 PUSH2 0x53F1 JUMP JUMPDEST DUP3 DUP5 LT PUSH2 0x4CE0 JUMPI PUSH2 0x4CD9 DUP5 DUP5 PUSH2 0x5241 JUMP JUMPDEST SWAP2 POP PUSH2 0x3B23 JUMP JUMPDEST PUSH2 0x4CEA DUP4 DUP6 PUSH2 0x5241 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x20 DUP1 DUP4 ADD MLOAD DUP3 MSTORE DUP3 MLOAD SWAP1 DUP3 ADD MSTORE SWAP3 POP SWAP1 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x0 SWAP1 PUSH2 0x2BFE SWAP1 PUSH3 0xF4240 SWAP1 PUSH2 0x17B0 SWAP1 DUP6 SWAP1 PUSH9 0x10000000000000000 SWAP1 DIV PUSH4 0xFFFFFFFF SWAP1 DUP2 AND SWAP1 PUSH2 0x3AA6 AND JUMP JUMPDEST PUSH1 0xB SLOAD PUSH1 0x0 SWAP1 DUP2 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x4DAB JUMPI PUSH1 0xA SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD PUSH1 0xB SLOAD SWAP1 SWAP5 AND DUP4 MSTORE SWAP1 SWAP2 KECCAK256 SLOAD DUP7 MLOAD SWAP2 DUP8 ADD MLOAD PUSH1 0x16 SLOAD PUSH2 0x4DA4 SWAP5 SWAP4 PUSH4 0xFFFFFFFF DUP1 DUP14 AND SWAP4 SWAP1 DUP13 AND SWAP3 PUSH2 0x3510 JUMP JUMPDEST SWAP1 POP PUSH2 0x4DFA JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD PUSH1 0xB SLOAD SWAP1 SWAP5 AND DUP4 MSTORE SWAP1 SWAP2 KECCAK256 SLOAD DUP7 MLOAD SWAP2 DUP8 ADD MLOAD PUSH1 0x16 SLOAD PUSH2 0x4DF7 SWAP5 SWAP4 PUSH4 0xFFFFFFFF DUP1 DUP13 AND SWAP4 SWAP1 DUP14 AND SWAP3 PUSH2 0x3510 JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH2 0x4E0B PUSH3 0xF4240 PUSH2 0x17B0 DUP6 DUP5 PUSH2 0x3AA6 JUMP JUMPDEST SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x4E23 PUSH2 0x53F1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x4E31 PUSH2 0x52FE JUMP JUMPDEST SWAP6 POP SWAP6 POP PUSH2 0x4E44 DUP12 DUP12 PUSH1 0x0 DUP1 DUP10 DUP15 PUSH2 0x466A JUMP JUMPDEST SWAP2 SWAP6 POP SWAP4 POP SWAP2 POP DUP4 ISZERO ISZERO PUSH2 0x4EA2 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5A45524F5F5441524745545F414D4F554E5400000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x4EAB DUP11 PUSH2 0x2C38 JUMP JUMPDEST SWAP1 POP DUP1 DUP5 LT PUSH2 0x4F04 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5441524745545F414D4F554E545F544F4F5F48494748000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5448 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ ISZERO PUSH2 0x4F7F JUMPI CALLVALUE DUP10 EQ PUSH2 0x4F7A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4554485F414D4F554E545F4D49534D41544348000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x5081 JUMP JUMPDEST CALLVALUE ISZERO DUP1 ISZERO PUSH2 0x502B JUMPI POP DUP9 PUSH2 0x5028 PUSH2 0x4F95 DUP14 PUSH2 0x2C38 JUMP JUMPDEST DUP14 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x4FF0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x5004 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x501A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x3D47 AND JUMP JUMPDEST LT ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x5081 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F414D4F554E540000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x508A DUP12 PUSH2 0x3F8C JUMP JUMPDEST PUSH2 0x509A DUP2 DUP6 PUSH4 0xFFFFFFFF PUSH2 0x3D47 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE PUSH1 0xC SWAP1 MSTORE KECCAK256 SLOAD PUSH2 0x50CF SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0x3B2A AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE DUP6 ISZERO PUSH2 0x511A JUMPI PUSH1 0xA SLOAD PUSH1 0xB SLOAD PUSH2 0x510D SWAP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 DUP2 AND SWAP2 AND PUSH1 0x0 DUP1 PUSH2 0x4B7B JUMP JUMPDEST DUP1 MLOAD PUSH1 0x12 SSTORE PUSH1 0x20 ADD MLOAD PUSH1 0x13 SSTORE JUMPDEST POP SWAP2 SWAP10 SWAP2 SWAP9 POP SWAP1 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0x8000000000000000000000000000000000000000000000000000000000000000 DUP2 LT PUSH2 0x5154 JUMPI INVALID JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP5 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 SWAP1 MSTORE DUP1 DUP3 ADD DUP4 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP8 AND SWAP3 DUP9 DUP3 AND SWAP3 SWAP2 DUP11 AND SWAP2 PUSH32 0x276856B36CBC45526A0BA64F44611557A2A8B68662C5388E9FE6D72E86E1C8CB SWAP2 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG4 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x51BF DUP7 DUP7 DUP7 DUP7 PUSH2 0x3EEF JUMP JUMPDEST PUSH2 0x51C8 DUP6 PUSH2 0x2125 JUMP JUMPDEST SWAP2 POP DUP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x18160DDD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x5208 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x521C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x5232 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 POP PUSH2 0x235A DUP3 DUP3 DUP8 PUSH2 0x3E8F JUMP JUMPDEST PUSH2 0x5249 PUSH2 0x53F1 JUMP JUMPDEST PUSH20 0x14484BFEEBC29F863424B06F3529A051A31BE599 DUP3 GT ISZERO PUSH2 0x529B JUMPI PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH13 0xC9F2C9CD04674EDEA40000000 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 DUP6 DIV DUP5 DUP2 ISZERO ISZERO PUSH2 0x5291 JUMPI INVALID JUMPDEST DIV SWAP1 MSTORE SWAP1 POP PUSH2 0x2BFE JUMP JUMPDEST PUSH13 0xC9F2C9CD04674EDEA40000000 DUP4 GT ISZERO PUSH2 0x52E8 JUMPI PUSH1 0x40 DUP1 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH13 0xC9F2C9CD04674EDEA40000000 DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH13 0xC9F2C9CD04674EDEA40000000 DUP6 MUL DUP2 ISZERO ISZERO PUSH2 0x5291 JUMPI INVALID JUMPDEST POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5308 PUSH2 0x53F1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5312 PUSH2 0x53F1 JUMP JUMPDEST PUSH2 0x531A PUSH2 0x53F1 JUMP JUMPDEST PUSH2 0x5322 PUSH2 0x397A JUMP JUMPDEST SWAP3 POP DUP3 PUSH1 0x11 SLOAD EQ ISZERO PUSH2 0x5350 JUMPI PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0xF SLOAD DUP2 MSTORE PUSH1 0x10 SLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 SWAP6 POP SWAP4 POP PUSH2 0x3298 JUMP JUMPDEST PUSH2 0x5358 PUSH2 0x4308 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0xF SLOAD DUP1 DUP3 MSTORE PUSH1 0x10 SLOAD PUSH1 0x20 DUP4 ADD MSTORE DUP3 MLOAD SWAP3 SWAP5 POP SWAP1 SWAP3 POP EQ DUP1 ISZERO PUSH2 0x538C JUMPI POP DUP1 PUSH1 0x20 ADD MLOAD DUP3 PUSH1 0x20 ADD MLOAD EQ JUMPDEST ISZERO PUSH2 0x539D JUMPI PUSH1 0x0 DUP3 SWAP5 POP SWAP5 POP PUSH2 0x3298 JUMP JUMPDEST DUP2 MLOAD PUSH1 0xF SSTORE PUSH1 0x20 DUP3 ADD MLOAD PUSH1 0x10 SSTORE PUSH1 0x11 DUP4 SWAP1 SSTORE PUSH2 0x53B7 PUSH2 0x3994 JUMP JUMPDEST POP PUSH1 0x1 SWAP5 SWAP1 SWAP4 POP SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xA0 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE SWAP2 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x60 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 SWAP1 PUSH1 0x20 DUP3 MUL DUP1 CODESIZE DUP4 CODECOPY POP SWAP2 SWAP3 SWAP2 POP POP JUMP STOP MSTORE8 PUSH16 0x7672796E53776170436F6E7665727465 PUSH19 0x55706772616465720000000000000000000000 STOP STOP STOP STOP STOP STOP 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee GASLIMIT MSTORE MSTORE 0x5f COINBASE NUMBER NUMBER GASLIMIT MSTORE8 MSTORE8 0x5f DIFFICULTY GASLIMIT 0x4e 0x49 GASLIMIT DIFFICULTY STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP GASLIMIT MSTORE MSTORE 0x5f 0x49 0x4e JUMP COINBASE 0x4c 0x49 DIFFICULTY 0x5f MSTORE GASLIMIT MSTORE8 GASLIMIT MSTORE JUMP GASLIMIT 0x5f NUMBER 0x4f SSTORE 0x4e SLOAD STOP STOP STOP STOP STOP STOP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 0xa8 0xe9 0xb9 0xbc 0xc5 0xf6 NUMBER SIGNEXTEND 0xca CALLVALUE 0x5d MSIZE DUP9 0xd4 RETURNDATASIZE 0xcc 0x2b 0xb8 DUP2 0xc5 0xef BYTE SWAP12 0x4e 0xeb PUSH15 0xD4019EA859C8002900000000000000 ", - "sourceMap": "101:1297:37:-;;;249:1:68;362:32;;;;2700:30:4;;;-1:-1:-1;;;;;;2993:31:4;;;2354:42:25;;;-1:-1:-1;;2354:42:25;;;;;;2439:5;2405:39;;200:177:37;5:2:-1;;;;30:1;27;20:12;5:2;200:177:37;;;;;;;;;;;;;;;;;;;;;;;;;488:5:66;:18;;-1:-1:-1;;;;;;488:18:66;496:10;488:18;;;200:177:37;;;;;;;;;;;475:23:72;200:177:37;475:13:72;;;;:23;:::i;:::-;-1:-1:-1;1931:8:60;:39;;-1:-1:-1;;;;;1931:39:60;;;-1:-1:-1;;;;;;1931:39:60;;;;;;;;1974:12;:43;;;;;;;;5395:7:4;475:23:72;5395:7:4;475:13:72;;;;:23;:::i;:::-;5457:17:4;6403:35;5457:17;6403:19;;;;:35;:::i;:::-;-1:-1:-1;;5480:6:4;:16;;-1:-1:-1;;;;;5480:16:4;;;-1:-1:-1;;;;;;5480:16:4;;;;;;;;;;-1:-1:-1;5500:16:4;:36;;;;;;;;-1:-1:-1;;5500:36:4;;;;;;;;;-1:-1:-1;101:1297:37;;-1:-1:-1;;;;;;;;101:1297:37;553:117:72;-1:-1:-1;;;;;620:22:72;;;;612:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;553:117;:::o;6493:156:4:-;1826:7;6571:43;;;;;6563:82;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;101:1297:37;;;;;;;" - }, - "deployedBytecode": { - "linkReferences": {}, - "object": "6080604052600436106103495763ffffffff60e060020a6000350416625e319c81146103e7578063024c7ec71461041a5780630337e3fb146104345780630a55fb3d146104655780630c7d5cd81461048e5780630e53aae9146104bc5780630f0fb40714610511578063119b90cd1461053b57806312c2aca41461056857806316912f961461057d57806319b64015146105925780631cfab290146105aa5780631e1401f8146105cb57806321e6b53d1461060e57806322f3e2d41461062f5780632630c12f146106445780632bd3c107146106595780632bf0c9851461067a5780632fe8a6ad1461069b57806338a5e016146106b0578063395900d4146106c55780633beb26c4146106ef5780633e8ff43f14610707578063467494681461073357806349d10b641461074e5780634af80f0e1461076357806354fd4d501461078457806355776b77146107995780635768adcf146107b3578063579cd3ca146107d457806359cd4eec146107e95780635e35359e1461081357806361cd756e1461083d57806367b6d57c1461085257806369067d9514610873578063690d83201461089757806369d1354a146108b85780636a49d2c4146108d057806371f52bf3146108fa57806379ba50971461090f5780637b103999146109245780638da5cb5b1461093957806394c275ad1461094e57806398a71dcb146109635780639b99a8e214610984578063a32bff4414610999578063af94b8d8146109ae578063b4a176d3146109d8578063bf754558146109ed578063bf7da6ba14610a02578063c3321fb014610a26578063c45d3d9214610a3b578063cdc91c6914610a50578063d031370b14610a65578063d18e81b314610a7d578063d260529c14610a92578063d3fb73b414610aa7578063d4ee1d9014610abc578063d55ec69714610ad1578063d64c5a1a14610ae6578063d66bd52414610b11578063d895951214610b32578063db2830a414610b53578063dc75eb9a14610b68578063dc8de37914610b7d578063e38192e314610b9e578063e8104af914610bc5578063e8dc12ff14610bda578063ec2240f514610c04578063ecbca55d14610c19578063f1ff40d914610c37578063f2fde38b14610c4f578063f9cddde214610c70578063fc0c546a14610c85575b60008051602061544883398151915260005260086020527f353c2eb9e53a4a4a6d45d72082ff2e9dc829d1125618772a83eb0e7f86632c43546601000000000000900460ff1615156103e5576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f5245534552564500000000000000000000000000604482015290519081900360640190fd5b005b3480156103f357600080fd5b50610408600160a060020a0360043516610c9a565b60408051918252519081900360200190f35b34801561042657600080fd5b506103e56004351515610cc3565b34801561044057600080fd5b50610449610d0b565b60408051600160a060020a039092168252519081900360200190f35b34801561047157600080fd5b5061047a610d1a565b604080519115158252519081900360200190f35b34801561049a57600080fd5b506104a3610d23565b6040805163ffffffff9092168252519081900360200190f35b3480156104c857600080fd5b506104dd600160a060020a0360043516610d2f565b6040805195865263ffffffff9094166020860152911515848401521515606084015215156080830152519081900360a00190f35b34801561051d57600080fd5b5061040860043560243560443560643560843560a43560c435610dca565b34801561054757600080fd5b506103e5600160a060020a0360043581169060243581169060443516610de7565b34801561057457600080fd5b5061047a611551565b34801561058957600080fd5b506103e561159a565b34801561059e57600080fd5b506104496004356115ae565b3480156105b657600080fd5b506104a3600160a060020a03600435166115da565b3480156105d757600080fd5b506105f5600160a060020a036004358116906024351660443561160c565b6040805192835260208301919091528051918290030190f35b34801561061a57600080fd5b506103e5600160a060020a0360043516611626565b34801561063b57600080fd5b5061047a61163a565b34801561065057600080fd5b5061044961166f565b34801561066557600080fd5b50610408600160a060020a036004351661168e565b34801561068657600080fd5b50610408600160a060020a03600435166116e3565b3480156106a757600080fd5b5061047a6117c6565b3480156106bc57600080fd5b506103e56117e7565b3480156106d157600080fd5b506103e5600160a060020a03600435811690602435166044356117f9565b3480156106fb57600080fd5b506103e5600435611894565b34801561071357600080fd5b5061071c611899565b6040805161ffff9092168252519081900360200190f35b34801561073f57600080fd5b506103e560043560243561189e565b34801561075a57600080fd5b506103e5611922565b34801561076f57600080fd5b506103e5600160a060020a0360043516611b82565b34801561079057600080fd5b5061071c611bb7565b610408600160a060020a0360043516602435604435611bbc565b3480156107bf57600080fd5b50610449600160a060020a0360043516612125565b3480156107e057600080fd5b506104a3612143565b3480156107f557600080fd5b506103e5600160a060020a036004351663ffffffff6024351661215b565b34801561081f57600080fd5b506103e5600160a060020a036004358116906024351660443561219c565b34801561084957600080fd5b506104496122b0565b34801561085e57600080fd5b506103e5600160a060020a03600435166122bf565b34801561087f57600080fd5b506105f5600160a060020a0360043516602435612362565b3480156108a357600080fd5b506103e5600160a060020a03600435166124bd565b3480156108c457600080fd5b506103e56004356125c2565b3480156108dc57600080fd5b506103e5600160a060020a036004351663ffffffff60243516612667565b34801561090657600080fd5b5061071c6126c6565b34801561091b57600080fd5b506103e56126d0565b34801561093057600080fd5b50610449612784565b34801561094557600080fd5b50610449612793565b34801561095a57600080fd5b506104a36127a2565b34801561096f57600080fd5b50610408600160a060020a03600435166127b6565b34801561099057600080fd5b5061071c6127c8565b3480156109a557600080fd5b506105f56127ce565b3480156109ba57600080fd5b506105f5600160a060020a03600435811690602435166044356127d7565b3480156109e457600080fd5b506103e561297b565b3480156109f957600080fd5b5061047a6129a7565b348015610a0e57600080fd5b506103e5600160a060020a03600435166024356129ac565b348015610a3257600080fd5b506104086129f4565b348015610a4757600080fd5b506104496129fa565b348015610a5c57600080fd5b506103e5612a09565b348015610a7157600080fd5b50610449600435612a62565b348015610a8957600080fd5b50610408612a8a565b348015610a9e57600080fd5b5061047a612a90565b348015610ab357600080fd5b50610449612a95565b348015610ac857600080fd5b50610449612aa4565b348015610add57600080fd5b506103e5612ab3565b348015610af257600080fd5b50610afb612ba8565b6040805160ff9092168252519081900360200190f35b348015610b1d57600080fd5b506104dd600160a060020a0360043516612bad565b348015610b3e57600080fd5b50610408600160a060020a0360043516612bf3565b348015610b5f57600080fd5b506105f5612c04565b348015610b7457600080fd5b50610449612c29565b348015610b8957600080fd5b50610408600160a060020a0360043516612c38565b348015610baa57600080fd5b50610408600160a060020a0360043516602435604435612c61565b348015610bd157600080fd5b50610408612fc6565b610408600160a060020a036004358116906024358116906044359060643581169060843516612fcc565b348015610c1057600080fd5b506105f561321f565b348015610c2557600080fd5b506103e563ffffffff6004351661329f565b348015610c4357600080fd5b506103e5600435613394565b348015610c5b57600080fd5b506103e5600160a060020a0360043516613399565b348015610c7c57600080fd5b506105f5613429565b348015610c9157600080fd5b50610449613432565b600081610ca681613441565b5050600160a060020a03166000908152600c602052604090205490565b610ccb6134c0565b60038054911515740100000000000000000000000000000000000000000274ff000000000000000000000000000000000000000019909216919091179055565b600a54600160a060020a031681565b60155460ff1681565b60095463ffffffff1681565b6000806000806000610d3f6153c3565b50505050600160a060020a03929092166000908152600860209081526040808320815160a081018352815480825260019092015463ffffffff811694820185905260ff64010000000082048116151594830194909452650100000000008104841615156060830152660100000000000090049092161515608090920182905295919450919250829190565b6000610ddb88888888888888613510565b98975050505050505050565b6000806000806000610df7613588565b610dff6134c0565b87610e0981613441565b87610e13816135e5565b87610e1d816135e5565b89610e2781613646565b89610e3181613646565b600554604080517f8da5cb5b00000000000000000000000000000000000000000000000000000000815290513092600160a060020a031691638da5cb5b9160048083019260209291908290030181600087803b158015610e9057600080fd5b505af1158015610ea4573d6000803e3d6000fd5b505050506040513d6020811015610eba57600080fd5b5051600160a060020a031614610f1a576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f414e43484f525f4e4f545f4f574e4544000000000000000000000000604482015290519081900360640190fd5b610f437f436861696e6c696e6b4f7261636c6557686974656c69737400000000000000006136a6565b995089600160a060020a0316633af32abf8d6040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b158015610fa057600080fd5b505af1158015610fb4573d6000803e3d6000fd5b505050506040513d6020811015610fca57600080fd5b50511515611022576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f494e56414c49445f4f5241434c450000000000000000000000000000604482015290519081900360640190fd5b89600160a060020a0316633af32abf8c6040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b15801561107d57600080fd5b505af1158015611091573d6000803e3d6000fd5b505050506040513d60208110156110a757600080fd5b505115156110ff576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f494e56414c49445f4f5241434c450000000000000000000000000000604482015290519081900360640190fd5b61110761373e565b600a8054600160a060020a031916600160a060020a038f1617905560078054600090811061113157fe5b600091825260209091200154600160a060020a038e81169116141561118f5760078054600190811061115f57fe5b600091825260209091200154600b8054600160a060020a031916600160a060020a039092169190911790556111ca565b60078054600090811061119e57fe5b600091825260209091200154600b8054600160a060020a031916600160a060020a039092169190911790555b6111f37f436f6e766572746572466163746f7279000000000000000000000000000000006136a6565b600160a060020a031663c977aed2611209611899565b6040518263ffffffff1660e060020a028152600401808261ffff1661ffff168152602001915050602060405180830381600087803b15801561124a57600080fd5b505af115801561125e573d6000803e3d6000fd5b505050506040513d602081101561127457600080fd5b8101908080519060200190929190505050985088600160a060020a0316631b27444e8e600b60009054906101000a9004600160a060020a03168f8f6040518563ffffffff1660e060020a0281526004018085600160a060020a0316600160a060020a0316815260200184600160a060020a0316600160a060020a0316815260200183600160a060020a0316600160a060020a0316815260200182600160a060020a0316600160a060020a03168152602001945050505050602060405180830381600087803b15801561134557600080fd5b505af1158015611359573d6000803e3d6000fd5b505050506040513d602081101561136f57600080fd5b5051600980546bffffffffffffffffffffffff166c01000000000000000000000000600160a060020a0393841681029190911791829055600a54600b54604080517fae818004000000000000000000000000000000000000000000000000000000008152928616600484015290851660248301528051929093049093169263ae8180049260448083019391928290030181600087803b15801561141157600080fd5b505af1158015611425573d6000803e3d6000fd5b505050506040513d604081101561143b57600080fd5b5080516020909101516010819055600f82905560129190915560135561145f61397a565b601155600a5461147790600160a060020a0316610c9a565b600a5490985061148f90600160a060020a0316612c38565b600b549097506114a790600160a060020a0316612c38565b9550868814156114d25760008811806114c05750600086115b156114cd576114cd613994565b6114fb565b6000881180156114e25750600087115b80156114ee5750600086115b156114fb576114fb613994565b600554600190600160a060020a0316611512611899565b61ffff167f6b08c2e2c9969e55a647a764db9b554d64dc42f1a704da11a6d5b129ad163f2c60405160405180910390a450505050505050505050505050565b60008051602061544883398151915260005260086020527f353c2eb9e53a4a4a6d45d72082ff2e9dc829d1125618772a83eb0e7f86632c43546601000000000000900460ff1690565b6115a26134c0565b6015805460ff19169055565b60006007828154811015156115bf57fe5b600091825260209091200154600160a060020a031692915050565b6000816115e681613441565b5050600160a060020a031660009081526008602052604090206001015463ffffffff1690565b60008061161a8585856127d7565b91509150935093915050565b61162e6134c0565b611637816122bf565b50565b6000611644613a0c565b801561166a57506009546c010000000000000000000000009004600160a060020a031615155b905090565b6009546c010000000000000000000000009004600160a060020a031681565b60008161169a81613441565b6116dc6116a684612c38565b600160a060020a0385166000908152600c60205260409020546116d090601363ffffffff613aa616565b9063ffffffff613b2a16565b9392505050565b600080600080600085600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561172957600080fd5b505af115801561173d573d6000803e3d6000fd5b505050506040513d602081101561175357600080fd5b5051600160a060020a038088166000908152600e602052604090205491955016925061177e83612c38565b600160a060020a0384166000908152600c602052604090205490925090506117bc816117b0848763ffffffff613aa616565b9063ffffffff613b8716565b9695505050505050565b60035474010000000000000000000000000000000000000000900460ff1681565b6117ef6134c0565b6117f7612a09565b565b6118016134c0565b600554604080517f5e35359e000000000000000000000000000000000000000000000000000000008152600160a060020a03868116600483015285811660248301526044820185905291519190921691635e35359e91606480830192600092919082900301818387803b15801561187757600080fd5b505af115801561188b573d6000803e3d6000fd5b50505050505050565b601755565b600290565b6118a66134c0565b8160146000600760008154811015156118bb57fe5b6000918252602080832090910154600160a060020a03168352820192909252604001812091909155600780548392601492909160019081106118f957fe5b6000918252602080832090910154600160a060020a031683528201929092526040019020555050565b60008054600160a060020a0316331480611957575060035474010000000000000000000000000000000000000000900460ff16155b151561199b576040805160e560020a62461bcd0281526020600482015260116024820152600080516020615468833981519152604482015290519081900360640190fd5b6119c47f436f6e74726163745265676973747279000000000000000000000000000000006136a6565b600254909150600160a060020a038083169116148015906119ed5750600160a060020a03811615155b1515611a43576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e56414c49445f5245474953545259000000000000000000000000604482015290519081900360640190fd5b604080517fbb34534c0000000000000000000000000000000000000000000000000000000081527f436f6e747261637452656769737472790000000000000000000000000000000060048201529051600091600160a060020a0384169163bb34534c9160248082019260209290919082900301818787803b158015611ac757600080fd5b505af1158015611adb573d6000803e3d6000fd5b505050506040513d6020811015611af157600080fd5b5051600160a060020a03161415611b52576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e56414c49445f5245474953545259000000000000000000000000604482015290519081900360640190fd5b6002805460038054600160a060020a03808416600160a060020a0319928316179092559091169216919091179055565b611b8a6134c0565b80611b94816135e5565b5060068054600160a060020a031916600160a060020a0392909216919091179055565b602081565b6000806000806000611bcc613bf5565b6002600455611bd9613c4f565b87611be381613441565b87611bed81613cad565b87611bf781613cad565b600160a060020a038b1660008051602061544883398151915214611c1c573415611c20565b8934145b1515611c76576040805160e560020a62461bcd02815260206004820152601760248201527f4552525f4554485f414d4f554e545f4d49534d41544348000000000000000000604482015290519081900360640190fd5b611c7e613d05565b600160a060020a038b166000805160206154488339815191521415611d205760008051602061544883398151915260005260086020527f353c2eb9e53a4a4a6d45d72082ff2e9dc829d1125618772a83eb0e7f86632c4254611ce6903463ffffffff613d4716565b60008051602061544883398151915260005260086020527f353c2eb9e53a4a4a6d45d72082ff2e9dc829d1125618772a83eb0e7f86632c42555b600160a060020a038b166000908152600c602052604090205460155490975060ff1615611de957600160a060020a038b166000908152601460205260409020541580611d935750600160a060020a038b16600090815260146020526040902054611d90888c63ffffffff613b2a16565b11155b1515611de9576040805160e560020a62461bcd02815260206004820152601e60248201527f4552525f4d41585f5354414b45445f42414c414e43455f524541434845440000604482015290519081900360640190fd5b600160a060020a03808c166000908152600d602090815260408083205481517f18160ddd00000000000000000000000000000000000000000000000000000000815291519416995089936318160ddd93600480840194938390030190829087803b158015611e5657600080fd5b505af1158015611e6a573d6000803e3d6000fd5b505050506040513d6020811015611e8057600080fd5b50519450600160a060020a038b1660008051602061544883398151915214611eae57611eae8b33308d613da7565b600160a060020a038b16600090815260086020526040902054611ed7908b63ffffffff613b2a16565b600160a060020a038c16600090815260086020526040902055611f00878b63ffffffff613b2a16565b600160a060020a038c166000908152600c60205260408120919091559350861580611f29575084155b15611f3657899350611f4d565b611f4a876117b08c8863ffffffff613aa616565b93505b88841015611fa5576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f52455455524e5f544f4f5f4c4f570000000000000000000000000000604482015290519081900360640190fd5b600554604080517fc6c3bbe6000000000000000000000000000000000000000000000000000000008152600160a060020a038981166004830152336024830152604482018890529151919092169163c6c3bbe691606480830192600092919082900301818387803b15801561201957600080fd5b505af115801561202d573d6000803e3d6000fd5b50505050612039613994565b600160a060020a038b16337f4a1a2a6176e9646d9e3157f7c2ab3c499f18337c0b0828cfb28e0a61de4a11f78c6120768b8263ffffffff613b2a16565b6120868a8a63ffffffff613b2a16565b60408051938452602084019290925282820152519081900360600190a36120bd866120b7878763ffffffff613b2a16565b8d613e8f565b612112600760008154811015156120d057fe5b60009182526020909120015460078054600160a060020a039092169160019081106120f757fe5b6000918252602082200154600160a060020a03169080613eef565b5050600160045550979650505050505050565b600160a060020a039081166000908152600d60205260409020541690565b60095468010000000000000000900463ffffffff1681565b8161216581613441565b50600160a060020a03919091166000908152600860205260409020600101805463ffffffff191663ffffffff909216919091179055565b60006121a6613bf5565b60026004556121b36134c0565b6121ca6000805160206154288339815191526136a6565b600160a060020a0385166000908152600860205260409020600101549091506601000000000000900460ff161580612207575061220561163a565b155b8061221f5750600054600160a060020a038281169116145b1515612263576040805160e560020a62461bcd0281526020600482015260116024820152600080516020615468833981519152604482015290519081900360640190fd5b61226e848484613f5b565b600160a060020a0384166000908152600860205260409020600101546601000000000000900460ff16156122a5576122a584613f8c565b505060016004555050565b600354600160a060020a031681565b6122c76134c0565b6000805160206154288339815191526122df81614080565b600554604080517ff2fde38b000000000000000000000000000000000000000000000000000000008152600160a060020a0385811660048301529151919092169163f2fde38b91602480830192600092919082900301818387803b15801561234657600080fd5b505af115801561235a573d6000803e3d6000fd5b505050505050565b6000806000806000806000806000808b600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156123af57600080fd5b505af11580156123c3573d6000803e3d6000fd5b505050506040513d60208110156123d957600080fd5b5051600160a060020a03808e166000908152600e60209081526040808320549093168252600c905220549098509650878b10156124a457600a54600160a060020a03166000908152600c602052604090205461243c90601463ffffffff613aa616565b600a5490965061245490600160a060020a031661168e565b9450848610612464578486612467565b85855b9094509250612480886117b08d8a63ffffffff613aa616565b9150612496836117b0848763ffffffff613aa616565b9950508881039750886124ae565b9598506000975088955b50505050505050509250929050565b60006124c7613bf5565b60026004556124d46134c0565b6000805160206154488339815191526124ec81613441565b6125036000805160206154288339815191526136a6565b915061250d61163a565b15806125265750600054600160a060020a038381169116145b151561256a576040805160e560020a62461bcd0281526020600482015260116024820152600080516020615468833981519152604482015290519081900360640190fd5b604051600160a060020a03841690303180156108fc02916000818181858888f193505050501580156125a0573d6000803e3d6000fd5b506125b8600080516020615448833981519152613f8c565b5050600160045550565b6125ca6134c0565b620186a0811115612625576040805160e560020a62461bcd02815260206004820152601e60248201527f4552525f494e56414c49445f44594e414d49435f4645455f464143544f520000604482015290519081900360640190fd5b601654604080519182526020820183905280517f382fd3516344712a511dcd464ff8e6ab54139d6a28f64087a3253353ee7a56799281900390910190a1601655565b60026126716127c8565b61ffff16106126b8576040805160e560020a62461bcd0281526020600482015260196024820152600080516020615488833981519152604482015290519081900360640190fd5b6126c282826140d6565b5050565b600061166a6127c8565b600154600160a060020a03163314612720576040805160e560020a62461bcd0281526020600482015260116024820152600080516020615468833981519152604482015290519081900360640190fd5b60015460008054604051600160a060020a0393841693909116917f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91a36001805460008054600160a060020a0319908116600160a060020a03841617909155169055565b600254600160a060020a031681565b600054600160a060020a031681565b600954640100000000900463ffffffff1681565b60146020526000908152604090205481565b60075490565b600f5460105482565b6000806000806127e56153f1565b6000806000806127f3613c4f565b6127fc8c613441565b6128058b613441565b600160a060020a038c8116908c161415612869576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f53414d455f534f555243455f54415247455400000000000000000000604482015290519081900360640190fd5b61287161397a565b601154141561291857600f604080519081016040529081600082015481526020016001820154815250509450600860008d600160a060020a0316600160a060020a0316815260200190815260200160002060010160009054906101000a900463ffffffff169650600860008c600160a060020a0316600160a060020a0316815260200190815260200160002060010160009054906101000a900463ffffffff169550612958565b612920614308565b945061292b85614540565b600a549195509350600160a060020a038d81169116141561295157839650829550612958565b8296508395505b6129668c8c8989898f61466a565b919e919d50909b505050505050505050505050565b6129836134c0565b60035460028054600160a060020a031916600160a060020a03909216919091179055565b600181565b6129b46134c0565b6000805160206154288339815191526129cc81614080565b826129d681613441565b5050600160a060020a039091166000908152600c6020526040902055565b60115481565b600654600160a060020a031681565b6001612a136127c8565b61ffff1611612a5a576040805160e560020a62461bcd0281526020600482015260196024820152600080516020615488833981519152604482015290519081900360640190fd5b6117f7614806565b6007805482908110612a7057fe5b600091825260209091200154600160a060020a0316905081565b60175481565b600190565b600554600160a060020a031681565b600154600160a060020a031681565b6000612abd6134c0565b612ad46000805160206154288339815191526136a6565b600554909150600090600160a060020a0316612aee611899565b61ffff167f6b08c2e2c9969e55a647a764db9b554d64dc42f1a704da11a6d5b129ad163f2c60405160405180910390a4612b2781613399565b604080517f90f58c96000000000000000000000000000000000000000000000000000000008152602060048201529051600160a060020a038316916390f58c9691602480830192600092919082900301818387803b158015612b8857600080fd5b505af1158015612b9c573d6000803e3d6000fd5b505050506116376126d0565b601490565b6008602052600090815260409020805460019091015463ffffffff81169060ff640100000000820481169165010000000000810482169166010000000000009091041685565b6000612bfe82612c38565b92915050565b600080612c0f6153f1565b612c17614308565b80516020909101519094909350915050565b600b54600160a060020a031681565b600081612c4481613441565b5050600160a060020a031660009081526008602052604090205490565b600080600080600080612c72613bf5565b6002600455612c7f613c4f565b88612c89816148d2565b88612c9381613cad565b88612c9d81613cad565b612ca5613d05565b8b600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015612ce357600080fd5b505af1158015612cf7573d6000803e3d6000fd5b505050506040513d6020811015612d0d57600080fd5b50519750612d1b8c8c612362565b50965089871015612d76576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f52455455524e5f544f4f5f4c4f570000000000000000000000000000604482015290519081900360640190fd5b600e60008d600160a060020a0316600160a060020a0316815260200190815260200160002060009054906101000a9004600160a060020a03169550600560009054906101000a9004600160a060020a0316600160a060020a031663f6b911bc8d338e6040518463ffffffff1660e060020a0281526004018084600160a060020a0316600160a060020a0316815260200183600160a060020a0316600160a060020a031681526020018281526020019350505050600060405180830381600087803b158015612e4357600080fd5b505af1158015612e57573d6000803e3d6000fd5b505050600160a060020a038716600090815260086020526040902054612e8491508863ffffffff613d4716565b600160a060020a038716600090815260086020908152604080832093909355600c90522054612eb9908863ffffffff613d4716565b600160a060020a0387166000818152600c602052604090208290559095506000805160206154488339815191521415612f1f57604051339088156108fc029089906000818181858888f19350505050158015612f19573d6000803e3d6000fd5b50612f2a565b612f2a863389614943565b612f32613994565b612f42888c63ffffffff613d4716565b60408051898152602081018890528082018390529051919550600160a060020a0388169133917fbc7d19d505c7ec4db83f3b51f19fb98c4c8a99922e7839d1ee608dfbee29501b919081900360600190a3612f9e8c8588613e8f565b612fb1600760008154811015156120d057fe5b50506001600455509298975050505050505050565b60165481565b6000612fd6613bf5565b60026004557f536f7672796e537761704e6574776f726b00000000000000000000000000000061300581614080565b600160a060020a038781169087161415613069576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f53414d455f534f555243455f54415247455400000000000000000000604482015290519081900360640190fd5b600654600160a060020a031615806131ac5750600654604080517f3af32abf000000000000000000000000000000000000000000000000000000008152600160a060020a03878116600483015291519190921691633af32abf9160248083019260209291908290030181600087803b1580156130e457600080fd5b505af11580156130f8573d6000803e3d6000fd5b505050506040513d602081101561310e57600080fd5b505180156131ac5750600654604080517f3af32abf000000000000000000000000000000000000000000000000000000008152600160a060020a03868116600483015291519190921691633af32abf9160248083019260209291908290030181600087803b15801561317f57600080fd5b505af1158015613193573d6000803e3d6000fd5b505050506040513d60208110156131a957600080fd5b50515b1515613202576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f4e4f545f57484954454c495354454400000000000000000000000000604482015290519081900360640190fd5b61320f87878787876149fa565b6001600455979650505050505050565b60008061322a6153f1565b600080613235614308565b925061324083614540565b915091506007600081548110151561325457fe5b600091825260209091200154600a54600160a060020a03908116911614156132895763ffffffff808316955081169350613298565b63ffffffff8082169550821693505b5050509091565b6132a76134c0565b60095463ffffffff64010000000090910481169082161115613313576040805160e560020a62461bcd02815260206004820152601a60248201527f4552525f494e56414c49445f434f4e56455253494f4e5f464545000000000000604482015290519081900360640190fd5b6009546040805163ffffffff6801000000000000000090930483168152918316602083015280517f81cd2ffb37dd237c0e4e2a3de5265fcf9deb43d3e7801e80db9f1ccfba7ee6009281900390910190a16009805463ffffffff90921668010000000000000000026bffffffff000000000000000019909216919091179055565b601155565b6133a16134c0565b600054600160a060020a0382811691161415613407576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f53414d455f4f574e4552000000000000000000000000000000000000604482015290519081900360640190fd5b60018054600160a060020a031916600160a060020a0392909216919091179055565b60125460135482565b600554600160a060020a031690565b600160a060020a0381166000908152600860205260409020600101546601000000000000900460ff161515611637576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f5245534552564500000000000000000000000000604482015290519081900360640190fd5b600054600160a060020a031633146117f7576040805160e560020a62461bcd0281526020600482015260116024820152600080516020615468833981519152604482015290519081900360640190fd5b60008080613534876135288c8963ffffffff613aa616565b9063ffffffff613aa616565b915061354a886135288b8863ffffffff613aa616565b9050818111156135765761356f816117b060146135288684038963ffffffff613aa616565b925061357b565b600092505b5050979650505050505050565b61359061163a565b156117f7576040805160e560020a62461bcd02815260206004820152600a60248201527f4552525f41435449564500000000000000000000000000000000000000000000604482015290519081900360640190fd5b600160a060020a038116301415611637576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f414444524553535f49535f53454c4600000000000000000000000000604482015290519081900360640190fd5b600160a060020a0381161515611637576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b600254604080517fbb34534c000000000000000000000000000000000000000000000000000000008152600481018490529051600092600160a060020a03169163bb34534c91602480830192602092919082900301818787803b15801561370c57600080fd5b505af1158015613720573d6000803e3d6000fd5b505050506040513d602081101561373657600080fd5b505192915050565b60006060600080600080600560009054906101000a9004600160a060020a0316955085600160a060020a0316636d3e313e6040518163ffffffff1660e060020a028152600401600060405180830381600087803b15801561379e57600080fd5b505af11580156137b2573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260208110156137db57600080fd5b8101908080516401000000008111156137f357600080fd5b8201602081018481111561380657600080fd5b815185602082028301116401000000008211171561382357600080fd5b505080516007549199501597509550600094505050505b8282101561235a5783156138b95785600160a060020a0316639cbf9e366040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561388657600080fd5b505af115801561389a573d6000803e3d6000fd5b505050506040513d60208110156138b057600080fd5b505190506138d4565b84828151811015156138c757fe5b9060200190602002015190505b80600d60006007858154811015156138e857fe5b600091825260208083209190910154600160a060020a03908116845290830193909352604090910190208054600160a060020a03191692909116919091179055600780548390811061393657fe5b6000918252602080832090910154600160a060020a038481168452600e90925260409092208054600160a060020a031916919092161790556001919091019061383a565b60006017546000141561398d574261166a565b5060175490565b60408051808201909152600f548152601054602082015260009081906139b990614540565b600a54600160a060020a039081166000908152600860205260408082206001908101805463ffffffff97881663ffffffff1991821617909155600b54909416835291200180549290931691161790555050565b600030600160a060020a0316600560009054906101000a9004600160a060020a0316600160a060020a0316638da5cb5b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015613a6b57600080fd5b505af1158015613a7f573d6000803e3d6000fd5b505050506040513d6020811015613a9557600080fd5b5051600160a060020a031614905090565b600080831515613ab95760009150613b23565b50828202828482811515613ac957fe5b0414613b1f576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b8091505b5092915050565b600082820183811015613b1f576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b600080808311613be1576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f4449564944455f42595f5a45524f0000000000000000000000000000604482015290519081900360640190fd5b8284811515613bec57fe5b04949350505050565b6004546001146117f7576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f5245454e5452414e4359000000000000000000000000000000000000604482015290519081900360640190fd5b613c5761163a565b15156117f7576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f494e4143544956450000000000000000000000000000000000000000604482015290519081900360640190fd5b60008111611637576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f5a45524f5f56414c5545000000000000000000000000000000000000604482015290519081900360640190fd5b60075460005b818110156126c257613d3f600782815481101515613d2557fe5b600091825260209091200154600160a060020a0316613f8c565b600101613d0b565b600081831015613da1576040805160e560020a62461bcd02815260206004820152600d60248201527f4552525f554e444552464c4f5700000000000000000000000000000000000000604482015290519081900360640190fd5b50900390565b604080517f7472616e7366657246726f6d28616464726573732c616464726573732c75696e81527f74323536290000000000000000000000000000000000000000000000000000006020808301919091528251918290036025018220600160a060020a038088166024850152861660448401526064808401869052845180850390910181526084909301909352810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1990931692909217909152613e89908590614aed565b50505050565b600160a060020a038082166000818152600c6020908152604091829020548251908152908101869052815192938716927f77f29993cf2c084e726f7e802da0719d6a0ade3e204badc7a3ffd57ecb768c24929181900390910190a3505050565b613ef76153f1565b613f0385858585614b7b565b805160208083015160408051938452918301528051929350600160a060020a0380881693908916927f77f29993cf2c084e726f7e802da0719d6a0ade3e204badc7a3ffd57ecb768c2492908290030190a35050505050565b613f636134c0565b82613f6d81613646565b82613f7781613646565b83613f81816135e5565b61235a868686614943565b80613f9681613441565b600160a060020a0382166000805160206154488339815191521415613fd657600160a060020a0382166000908152600860205260409020303190556126c2565b604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a038416916370a082319160248083019260209291908290030181600087803b15801561403757600080fd5b505af115801561404b573d6000803e3d6000fd5b505050506040513d602081101561406157600080fd5b5051600160a060020a0383166000908152600860205260409020555050565b614089816136a6565b600160a060020a03163314611637576040805160e560020a62461bcd0281526020600482015260116024820152600080516020615468833981519152604482015290519081900360640190fd5b60006140e06134c0565b6140e8613588565b826140f281613646565b836140fc816135e5565b8361410681614c43565b600554600160a060020a0387811691161480159061414a5750600160a060020a0386166000908152600860205260409020600101546601000000000000900460ff16155b15156141a0576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f5245534552564500000000000000000000000000604482015290519081900360640190fd5b60095463ffffffff908116620f4240038116908616111561420b576040805160e560020a62461bcd02815260206004820152601a60248201527f4552525f494e56414c49445f524553455256455f574549474854000000000000604482015290519081900360640190fd5b61ffff6142166127c8565b61ffff161061425d576040805160e560020a62461bcd0281526020600482015260196024820152600080516020615488833981519152604482015290519081900360640190fd5b505050600160a060020a0390921660008181526008602052604081208181556001908101805466ff0000000000001963ffffffff80881663ffffffff1993841617919091166601000000000000179092556007805493840181559093527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c6889091018054600160a060020a03191690931790925560098054808416909401909216921691909117905550565b6143106153f1565b60008060008061431e6153f1565b6143266153f1565b600954600a54600b54604080517fb1772d7a000000000000000000000000000000000000000000000000000000008152600160a060020a0393841660048201529183166024830152516000938493849384936c010000000000000000000000009093049091169163b1772d7a9160448082019260609290919082900301818787803b1580156143b457600080fd5b505af11580156143c8573d6000803e3d6000fd5b505050506040513d60608110156143de57600080fd5b5080516020820151604090920151601154919c50919a5090985088111561441b5760408051908101604052808b81526020018a8152509a50614533565b60115461442661397a565b03965086151561444e5760408051808201909152600f54815260105460208201529a50614533565b61025887106144755760408051808201909152601254815260135460208201529a50614533565b604080518082018252600f548152601054602080830191825283518085019094526012548085526013549185019190915290519198509196506144bd9163ffffffff613aa616565b602086015187519195506144d7919063ffffffff613aa616565b92506145016144ec858963ffffffff613aa616565b6116d0856102588b900363ffffffff613aa616565b915061452461025861352887602001518960200151613aa690919063ffffffff16565b90506145308282614cb8565b9a505b5050505050505050505090565b600a54600160a060020a03166000818152600c602052604081205490918291908290819061456d9061168e565b600b5490925061458590600160a060020a031661168e565b90506145b07f536f7672796e53776170466f726d756c610000000000000000000000000000006136a6565b600160a060020a031663a11aa1b46145cf85601463ffffffff613aa616565b885160208a01516040805160e060020a63ffffffff87160281526004810194909452602484018890526044840187905260648401929092526084830152805160a4808401938290030181600087803b15801561462a57600080fd5b505af115801561463e573d6000803e3d6000fd5b505050506040513d604081101561465457600080fd5b5080516020909101519095509350505050915091565b60008080808063ffffffff891615156146a257600160a060020a038b1660009081526008602052604090206001015463ffffffff1698505b63ffffffff881615156146d457600160a060020a038a1660009081526008602052604090206001015463ffffffff1697505b6146dd8b61168e565b91506146e88a61168e565b90506147137f536f7672796e53776170466f726d756c610000000000000000000000000000006136a6565b604080517f94491fab0000000000000000000000000000000000000000000000000000000081526004810185905263ffffffff808d166024830152604482018590528b166064820152608481018990529051600160a060020a0392909216916394491fab9160a4808201926020929091908290030181600087803b15801561479a57600080fd5b505af11580156147ae573d6000803e3d6000fd5b505050506040513d60208110156147c457600080fd5b505194506147d185614d0d565b93506147e4846116d08c8c8c8c8b614d3d565b92506147f6858463ffffffff613d4716565b9450505096509650969350505050565b61480e6134c0565b60006148186127c8565b61ffff161161485f576040805160e560020a62461bcd0281526020600482015260196024820152600080516020615488833981519152604482015290519081900360640190fd5b600560009054906101000a9004600160a060020a0316600160a060020a03166379ba50976040518163ffffffff1660e060020a028152600401600060405180830381600087803b1580156148b257600080fd5b505af11580156148c6573d6000803e3d6000fd5b505050506117f7613d05565b600160a060020a038181166000908152600e6020526040902054161515611637576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f494e56414c49445f504f4f4c5f544f4b454e00000000000000000000604482015290519081900360640190fd5b604080517f7472616e7366657228616464726573732c75696e74323536290000000000000081528151908190036019018120600160a060020a038516602483015260448083018590528351808403909101815260649092019092526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19909316929092179091526149f5908490614aed565b505050565b6000806000614a07613c4f565b87614a1181613441565b87614a1b81613441565b614a268a8a8a614e16565b9094509250600160a060020a0389166000805160206154488339815191521415614a8657604051600160a060020a0387169085156108fc029086906000818181858888f19350505050158015614a80573d6000803e3d6000fd5b50614a91565b614a91898786614943565b614a9f8a8a898b888861512b565b600160a060020a03808b16600090815260086020526040808220600190810154938d16835291200154614adf918c918c9163ffffffff90811691166151b0565b509198975050505050505050565b614af5615408565b602060405190810160405280600181525090506020818351602085016000875af1801515614b2257600080fd5b50805115156149f5576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f5452414e534645525f4641494c454400000000000000000000000000604482015290519081900360640190fd5b614b836153f1565b600080614b8f8761168e565b9150614b9a8661168e565b905063ffffffff85161515614bce57600160a060020a03871660009081526008602052604090206001015463ffffffff1694505b63ffffffff84161515614c0057600160a060020a03861660009081526008602052604090206001015463ffffffff1693505b6040805180820190915280614c1e8363ffffffff808a1690613aa616565b8152602001614c368463ffffffff80891690613aa616565b9052979650505050505050565b60008163ffffffff16118015614c625750620f424063ffffffff821611155b1515611637576040805160e560020a62461bcd02815260206004820152601a60248201527f4552525f494e56414c49445f524553455256455f574549474854000000000000604482015290519081900360640190fd5b614cc06153f1565b614cc86153f1565b828410614ce057614cd98484615241565b9150613b23565b614cea8385615241565b604080518082019091526020808301518252825190820152925090505092915050565b600954600090612bfe90620f4240906117b090859068010000000000000000900463ffffffff90811690613aa616565b600b546000908190600160a060020a0388811691161415614dab57600a54600160a060020a039081166000908152600c6020908152604080832054600b54909416835290912054865191870151601654614da4949363ffffffff808d1693908c1692613510565b9050614dfa565b600a54600160a060020a039081166000908152600c6020908152604080832054600b54909416835290912054865191870151601654614df7949363ffffffff808c1693908d1692613510565b90505b614e0b620f42406117b08584613aa6565b979650505050505050565b6000806000614e236153f1565b600080600080614e316152fe565b95509550614e448b8b600080898e61466a565b91955093509150831515614ea2576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f5a45524f5f5441524745545f414d4f554e5400000000000000000000604482015290519081900360640190fd5b614eab8a612c38565b9050808410614f04576040805160e560020a62461bcd02815260206004820152601a60248201527f4552525f5441524745545f414d4f554e545f544f4f5f48494748000000000000604482015290519081900360640190fd5b600160a060020a038b166000805160206154488339815191521415614f7f57348914614f7a576040805160e560020a62461bcd02815260206004820152601760248201527f4552525f4554485f414d4f554e545f4d49534d41544348000000000000000000604482015290519081900360640190fd5b615081565b3415801561502b575088615028614f958d612c38565b8d600160a060020a03166370a08231306040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b158015614ff057600080fd5b505af1158015615004573d6000803e3d6000fd5b505050506040513d602081101561501a57600080fd5b50519063ffffffff613d4716565b10155b1515615081576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f494e56414c49445f414d4f554e540000000000000000000000000000604482015290519081900360640190fd5b61508a8b613f8c565b61509a818563ffffffff613d4716565b600160a060020a038b16600090815260086020908152604080832093909355600c905220546150cf908463ffffffff613b2a16565b600160a060020a038b166000908152600c6020526040902055851561511a57600a54600b5461510d91600160a060020a039081169116600080614b7b565b8051601255602001516013555b509199919850909650505050505050565b7f8000000000000000000000000000000000000000000000000000000000000000811061515457fe5b60408051848152602081018490528082018390529051600160a060020a038087169288821692918a16917f276856b36cbc45526a0ba64f44611557a2a8b68662c5388e9fe6d72e86e1c8cb9181900360600190a4505050505050565b6000806151bf86868686613eef565b6151c885612125565b915081600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561520857600080fd5b505af115801561521c573d6000803e3d6000fd5b505050506040513d602081101561523257600080fd5b5051905061235a828287613e8f565b6152496153f1565b7314484bfeebc29f863424b06f3529a051a31be59982111561529b57604080518082019091526c0c9f2c9cd04674edea40000000808252602082019085048481151561529157fe5b0490529050612bfe565b6c0c9f2c9cd04674edea400000008311156152e85760408051908101604052806c0c9f2c9cd04674edea400000008152602001846c0c9f2c9cd04674edea40000000850281151561529157fe5b5060408051808201909152918252602082015290565b60006153086153f1565b60006153126153f1565b61531a6153f1565b61532261397a565b92508260115414156153505760408051808201909152600f5481526010546020820152600095509350613298565b615358614308565b60408051808201909152600f548082526010546020830152825192945090925014801561538c575080602001518260200151145b1561539d5760008294509450613298565b8151600f55602082015160105560118390556153b7613994565b50600194909350915050565b6040805160a08101825260008082526020820181905291810182905260608101829052608081019190915290565b604080518082019091526000808252602082015290565b60206040519081016040528060019060208202803883395091929150505600536f7672796e53776170436f6e76657274657255706772616465720000000000000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee4552525f4143434553535f44454e4945440000000000000000000000000000004552525f494e56414c49445f524553455256455f434f554e5400000000000000a165627a7a72305820a8e9b9bcc5f6430bca345d5988d43dcc2bb881c5ef1a9b4eeb6ed4019ea859c80029", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x349 JUMPI PUSH4 0xFFFFFFFF PUSH1 0xE0 PUSH1 0x2 EXP PUSH1 0x0 CALLDATALOAD DIV AND PUSH3 0x5E319C DUP2 EQ PUSH2 0x3E7 JUMPI DUP1 PUSH4 0x24C7EC7 EQ PUSH2 0x41A JUMPI DUP1 PUSH4 0x337E3FB EQ PUSH2 0x434 JUMPI DUP1 PUSH4 0xA55FB3D EQ PUSH2 0x465 JUMPI DUP1 PUSH4 0xC7D5CD8 EQ PUSH2 0x48E JUMPI DUP1 PUSH4 0xE53AAE9 EQ PUSH2 0x4BC JUMPI DUP1 PUSH4 0xF0FB407 EQ PUSH2 0x511 JUMPI DUP1 PUSH4 0x119B90CD EQ PUSH2 0x53B JUMPI DUP1 PUSH4 0x12C2ACA4 EQ PUSH2 0x568 JUMPI DUP1 PUSH4 0x16912F96 EQ PUSH2 0x57D JUMPI DUP1 PUSH4 0x19B64015 EQ PUSH2 0x592 JUMPI DUP1 PUSH4 0x1CFAB290 EQ PUSH2 0x5AA JUMPI DUP1 PUSH4 0x1E1401F8 EQ PUSH2 0x5CB JUMPI DUP1 PUSH4 0x21E6B53D EQ PUSH2 0x60E JUMPI DUP1 PUSH4 0x22F3E2D4 EQ PUSH2 0x62F JUMPI DUP1 PUSH4 0x2630C12F EQ PUSH2 0x644 JUMPI DUP1 PUSH4 0x2BD3C107 EQ PUSH2 0x659 JUMPI DUP1 PUSH4 0x2BF0C985 EQ PUSH2 0x67A JUMPI DUP1 PUSH4 0x2FE8A6AD EQ PUSH2 0x69B JUMPI DUP1 PUSH4 0x38A5E016 EQ PUSH2 0x6B0 JUMPI DUP1 PUSH4 0x395900D4 EQ PUSH2 0x6C5 JUMPI DUP1 PUSH4 0x3BEB26C4 EQ PUSH2 0x6EF JUMPI DUP1 PUSH4 0x3E8FF43F EQ PUSH2 0x707 JUMPI DUP1 PUSH4 0x46749468 EQ PUSH2 0x733 JUMPI DUP1 PUSH4 0x49D10B64 EQ PUSH2 0x74E JUMPI DUP1 PUSH4 0x4AF80F0E EQ PUSH2 0x763 JUMPI DUP1 PUSH4 0x54FD4D50 EQ PUSH2 0x784 JUMPI DUP1 PUSH4 0x55776B77 EQ PUSH2 0x799 JUMPI DUP1 PUSH4 0x5768ADCF EQ PUSH2 0x7B3 JUMPI DUP1 PUSH4 0x579CD3CA EQ PUSH2 0x7D4 JUMPI DUP1 PUSH4 0x59CD4EEC EQ PUSH2 0x7E9 JUMPI DUP1 PUSH4 0x5E35359E EQ PUSH2 0x813 JUMPI DUP1 PUSH4 0x61CD756E EQ PUSH2 0x83D JUMPI DUP1 PUSH4 0x67B6D57C EQ PUSH2 0x852 JUMPI DUP1 PUSH4 0x69067D95 EQ PUSH2 0x873 JUMPI DUP1 PUSH4 0x690D8320 EQ PUSH2 0x897 JUMPI DUP1 PUSH4 0x69D1354A EQ PUSH2 0x8B8 JUMPI DUP1 PUSH4 0x6A49D2C4 EQ PUSH2 0x8D0 JUMPI DUP1 PUSH4 0x71F52BF3 EQ PUSH2 0x8FA JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x90F JUMPI DUP1 PUSH4 0x7B103999 EQ PUSH2 0x924 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x939 JUMPI DUP1 PUSH4 0x94C275AD EQ PUSH2 0x94E JUMPI DUP1 PUSH4 0x98A71DCB EQ PUSH2 0x963 JUMPI DUP1 PUSH4 0x9B99A8E2 EQ PUSH2 0x984 JUMPI DUP1 PUSH4 0xA32BFF44 EQ PUSH2 0x999 JUMPI DUP1 PUSH4 0xAF94B8D8 EQ PUSH2 0x9AE JUMPI DUP1 PUSH4 0xB4A176D3 EQ PUSH2 0x9D8 JUMPI DUP1 PUSH4 0xBF754558 EQ PUSH2 0x9ED JUMPI DUP1 PUSH4 0xBF7DA6BA EQ PUSH2 0xA02 JUMPI DUP1 PUSH4 0xC3321FB0 EQ PUSH2 0xA26 JUMPI DUP1 PUSH4 0xC45D3D92 EQ PUSH2 0xA3B JUMPI DUP1 PUSH4 0xCDC91C69 EQ PUSH2 0xA50 JUMPI DUP1 PUSH4 0xD031370B EQ PUSH2 0xA65 JUMPI DUP1 PUSH4 0xD18E81B3 EQ PUSH2 0xA7D JUMPI DUP1 PUSH4 0xD260529C EQ PUSH2 0xA92 JUMPI DUP1 PUSH4 0xD3FB73B4 EQ PUSH2 0xAA7 JUMPI DUP1 PUSH4 0xD4EE1D90 EQ PUSH2 0xABC JUMPI DUP1 PUSH4 0xD55EC697 EQ PUSH2 0xAD1 JUMPI DUP1 PUSH4 0xD64C5A1A EQ PUSH2 0xAE6 JUMPI DUP1 PUSH4 0xD66BD524 EQ PUSH2 0xB11 JUMPI DUP1 PUSH4 0xD8959512 EQ PUSH2 0xB32 JUMPI DUP1 PUSH4 0xDB2830A4 EQ PUSH2 0xB53 JUMPI DUP1 PUSH4 0xDC75EB9A EQ PUSH2 0xB68 JUMPI DUP1 PUSH4 0xDC8DE379 EQ PUSH2 0xB7D JUMPI DUP1 PUSH4 0xE38192E3 EQ PUSH2 0xB9E JUMPI DUP1 PUSH4 0xE8104AF9 EQ PUSH2 0xBC5 JUMPI DUP1 PUSH4 0xE8DC12FF EQ PUSH2 0xBDA JUMPI DUP1 PUSH4 0xEC2240F5 EQ PUSH2 0xC04 JUMPI DUP1 PUSH4 0xECBCA55D EQ PUSH2 0xC19 JUMPI DUP1 PUSH4 0xF1FF40D9 EQ PUSH2 0xC37 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0xC4F JUMPI DUP1 PUSH4 0xF9CDDDE2 EQ PUSH2 0xC70 JUMPI DUP1 PUSH4 0xFC0C546A EQ PUSH2 0xC85 JUMPI JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5448 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x0 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH32 0x353C2EB9E53A4A4A6D45D72082FF2E9DC829D1125618772A83EB0E7F86632C43 SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO PUSH2 0x3E5 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245534552564500000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3F3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x408 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0xC9A JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x426 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3E5 PUSH1 0x4 CALLDATALOAD ISZERO ISZERO PUSH2 0xCC3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x440 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x449 PUSH2 0xD0B JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x471 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x47A PUSH2 0xD1A JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x49A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4A3 PUSH2 0xD23 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4C8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4DD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0xD2F JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP6 DUP7 MSTORE PUSH4 0xFFFFFFFF SWAP1 SWAP5 AND PUSH1 0x20 DUP7 ADD MSTORE SWAP2 ISZERO ISZERO DUP5 DUP5 ADD MSTORE ISZERO ISZERO PUSH1 0x60 DUP5 ADD MSTORE ISZERO ISZERO PUSH1 0x80 DUP4 ADD MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0xA0 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x51D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x408 PUSH1 0x4 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH1 0x44 CALLDATALOAD PUSH1 0x64 CALLDATALOAD PUSH1 0x84 CALLDATALOAD PUSH1 0xA4 CALLDATALOAD PUSH1 0xC4 CALLDATALOAD PUSH2 0xDCA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x547 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3E5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x44 CALLDATALOAD AND PUSH2 0xDE7 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x574 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x47A PUSH2 0x1551 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x589 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3E5 PUSH2 0x159A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x59E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x449 PUSH1 0x4 CALLDATALOAD PUSH2 0x15AE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5B6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4A3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x15DA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5D7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x5F5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x160C JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x61A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3E5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x1626 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x63B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x47A PUSH2 0x163A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x650 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x449 PUSH2 0x166F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x665 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x408 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x168E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x686 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x408 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x16E3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6A7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x47A PUSH2 0x17C6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6BC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3E5 PUSH2 0x17E7 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6D1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3E5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x17F9 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6FB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3E5 PUSH1 0x4 CALLDATALOAD PUSH2 0x1894 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x713 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x71C PUSH2 0x1899 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0xFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x73F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3E5 PUSH1 0x4 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH2 0x189E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x75A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3E5 PUSH2 0x1922 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x76F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3E5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x1B82 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x790 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x71C PUSH2 0x1BB7 JUMP JUMPDEST PUSH2 0x408 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH1 0x44 CALLDATALOAD PUSH2 0x1BBC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7BF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x449 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x2125 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7E0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4A3 PUSH2 0x2143 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3E5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH4 0xFFFFFFFF PUSH1 0x24 CALLDATALOAD AND PUSH2 0x215B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x81F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3E5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x219C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x849 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x449 PUSH2 0x22B0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x85E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3E5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x22BF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x87F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x5F5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x2362 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8A3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3E5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x24BD JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8C4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3E5 PUSH1 0x4 CALLDATALOAD PUSH2 0x25C2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8DC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3E5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH4 0xFFFFFFFF PUSH1 0x24 CALLDATALOAD AND PUSH2 0x2667 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x906 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x71C PUSH2 0x26C6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x91B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3E5 PUSH2 0x26D0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x930 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x449 PUSH2 0x2784 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x945 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x449 PUSH2 0x2793 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x95A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4A3 PUSH2 0x27A2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x96F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x408 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x27B6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x990 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x71C PUSH2 0x27C8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9A5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x5F5 PUSH2 0x27CE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9BA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x5F5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x27D7 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9E4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3E5 PUSH2 0x297B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9F9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x47A PUSH2 0x29A7 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA0E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3E5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x29AC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA32 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x408 PUSH2 0x29F4 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA47 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x449 PUSH2 0x29FA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA5C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3E5 PUSH2 0x2A09 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA71 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x449 PUSH1 0x4 CALLDATALOAD PUSH2 0x2A62 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA89 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x408 PUSH2 0x2A8A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA9E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x47A PUSH2 0x2A90 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xAB3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x449 PUSH2 0x2A95 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xAC8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x449 PUSH2 0x2AA4 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xADD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3E5 PUSH2 0x2AB3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xAF2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xAFB PUSH2 0x2BA8 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xB1D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4DD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x2BAD JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xB3E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x408 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x2BF3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xB5F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x5F5 PUSH2 0x2C04 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xB74 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x449 PUSH2 0x2C29 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xB89 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x408 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x2C38 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xBAA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x408 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH1 0x44 CALLDATALOAD PUSH2 0x2C61 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xBD1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x408 PUSH2 0x2FC6 JUMP JUMPDEST PUSH2 0x408 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x44 CALLDATALOAD SWAP1 PUSH1 0x64 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x84 CALLDATALOAD AND PUSH2 0x2FCC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xC10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x5F5 PUSH2 0x321F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xC25 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3E5 PUSH4 0xFFFFFFFF PUSH1 0x4 CALLDATALOAD AND PUSH2 0x329F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xC43 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3E5 PUSH1 0x4 CALLDATALOAD PUSH2 0x3394 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xC5B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3E5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x3399 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xC7C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x5F5 PUSH2 0x3429 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xC91 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x449 PUSH2 0x3432 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0xCA6 DUP2 PUSH2 0x3441 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0xCCB PUSH2 0x34C0 JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD SWAP2 ISZERO ISZERO PUSH21 0x10000000000000000000000000000000000000000 MUL PUSH21 0xFF0000000000000000000000000000000000000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x15 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH4 0xFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0xD3F PUSH2 0x53C3 JUMP JUMPDEST POP POP POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP2 MLOAD PUSH1 0xA0 DUP2 ADD DUP4 MSTORE DUP2 SLOAD DUP1 DUP3 MSTORE PUSH1 0x1 SWAP1 SWAP3 ADD SLOAD PUSH4 0xFFFFFFFF DUP2 AND SWAP5 DUP3 ADD DUP6 SWAP1 MSTORE PUSH1 0xFF PUSH5 0x100000000 DUP3 DIV DUP2 AND ISZERO ISZERO SWAP5 DUP4 ADD SWAP5 SWAP1 SWAP5 MSTORE PUSH6 0x10000000000 DUP2 DIV DUP5 AND ISZERO ISZERO PUSH1 0x60 DUP4 ADD MSTORE PUSH7 0x1000000000000 SWAP1 DIV SWAP1 SWAP3 AND ISZERO ISZERO PUSH1 0x80 SWAP1 SWAP3 ADD DUP3 SWAP1 MSTORE SWAP6 SWAP2 SWAP5 POP SWAP2 SWAP3 POP DUP3 SWAP2 SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xDDB DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 PUSH2 0x3510 JUMP JUMPDEST SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0xDF7 PUSH2 0x3588 JUMP JUMPDEST PUSH2 0xDFF PUSH2 0x34C0 JUMP JUMPDEST DUP8 PUSH2 0xE09 DUP2 PUSH2 0x3441 JUMP JUMPDEST DUP8 PUSH2 0xE13 DUP2 PUSH2 0x35E5 JUMP JUMPDEST DUP8 PUSH2 0xE1D DUP2 PUSH2 0x35E5 JUMP JUMPDEST DUP10 PUSH2 0xE27 DUP2 PUSH2 0x3646 JUMP JUMPDEST DUP10 PUSH2 0xE31 DUP2 PUSH2 0x3646 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x8DA5CB5B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD ADDRESS SWAP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP2 PUSH4 0x8DA5CB5B SWAP2 PUSH1 0x4 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xE90 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xEA4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xEBA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ PUSH2 0xF1A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F414E43484F525F4E4F545F4F574E4544000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0xF43 PUSH32 0x436861696E6C696E6B4F7261636C6557686974656C6973740000000000000000 PUSH2 0x36A6 JUMP JUMPDEST SWAP10 POP DUP10 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x3AF32ABF DUP14 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xFA0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xFB4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xFCA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD ISZERO ISZERO PUSH2 0x1022 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4F5241434C450000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP10 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x3AF32ABF DUP13 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x107D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1091 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x10A7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD ISZERO ISZERO PUSH2 0x10FF JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4F5241434C450000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x1107 PUSH2 0x373E JUMP JUMPDEST PUSH1 0xA DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP16 AND OR SWAP1 SSTORE PUSH1 0x7 DUP1 SLOAD PUSH1 0x0 SWAP1 DUP2 LT PUSH2 0x1131 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP15 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x118F JUMPI PUSH1 0x7 DUP1 SLOAD PUSH1 0x1 SWAP1 DUP2 LT PUSH2 0x115F JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0xB DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x11CA JUMP JUMPDEST PUSH1 0x7 DUP1 SLOAD PUSH1 0x0 SWAP1 DUP2 LT PUSH2 0x119E JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0xB DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMPDEST PUSH2 0x11F3 PUSH32 0x436F6E766572746572466163746F727900000000000000000000000000000000 PUSH2 0x36A6 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xC977AED2 PUSH2 0x1209 PUSH2 0x1899 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH2 0xFFFF AND PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x124A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x125E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1274 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP SWAP9 POP DUP9 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x1B27444E DUP15 PUSH1 0xB PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP16 DUP16 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP6 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP5 POP POP POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1345 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1359 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x136F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x9 DUP1 SLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH13 0x1000000000000000000000000 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND DUP2 MUL SWAP2 SWAP1 SWAP2 OR SWAP2 DUP3 SWAP1 SSTORE PUSH1 0xA SLOAD PUSH1 0xB SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xAE81800400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP3 DUP7 AND PUSH1 0x4 DUP5 ADD MSTORE SWAP1 DUP6 AND PUSH1 0x24 DUP4 ADD MSTORE DUP1 MLOAD SWAP3 SWAP1 SWAP4 DIV SWAP1 SWAP4 AND SWAP3 PUSH4 0xAE818004 SWAP3 PUSH1 0x44 DUP1 DUP4 ADD SWAP4 SWAP2 SWAP3 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1411 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1425 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x143B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD MLOAD PUSH1 0x10 DUP2 SWAP1 SSTORE PUSH1 0xF DUP3 SWAP1 SSTORE PUSH1 0x12 SWAP2 SWAP1 SWAP2 SSTORE PUSH1 0x13 SSTORE PUSH2 0x145F PUSH2 0x397A JUMP JUMPDEST PUSH1 0x11 SSTORE PUSH1 0xA SLOAD PUSH2 0x1477 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0xC9A JUMP JUMPDEST PUSH1 0xA SLOAD SWAP1 SWAP9 POP PUSH2 0x148F SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x2C38 JUMP JUMPDEST PUSH1 0xB SLOAD SWAP1 SWAP8 POP PUSH2 0x14A7 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x2C38 JUMP JUMPDEST SWAP6 POP DUP7 DUP9 EQ ISZERO PUSH2 0x14D2 JUMPI PUSH1 0x0 DUP9 GT DUP1 PUSH2 0x14C0 JUMPI POP PUSH1 0x0 DUP7 GT JUMPDEST ISZERO PUSH2 0x14CD JUMPI PUSH2 0x14CD PUSH2 0x3994 JUMP JUMPDEST PUSH2 0x14FB JUMP JUMPDEST PUSH1 0x0 DUP9 GT DUP1 ISZERO PUSH2 0x14E2 JUMPI POP PUSH1 0x0 DUP8 GT JUMPDEST DUP1 ISZERO PUSH2 0x14EE JUMPI POP PUSH1 0x0 DUP7 GT JUMPDEST ISZERO PUSH2 0x14FB JUMPI PUSH2 0x14FB PUSH2 0x3994 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x1512 PUSH2 0x1899 JUMP JUMPDEST PUSH2 0xFFFF AND PUSH32 0x6B08C2E2C9969E55A647A764DB9B554D64DC42F1A704DA11A6D5B129AD163F2C PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5448 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x0 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH32 0x353C2EB9E53A4A4A6D45D72082FF2E9DC829D1125618772A83EB0E7F86632C43 SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH2 0x15A2 PUSH2 0x34C0 JUMP JUMPDEST PUSH1 0x15 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x7 DUP3 DUP2 SLOAD DUP2 LT ISZERO ISZERO PUSH2 0x15BF JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0x15E6 DUP2 PUSH2 0x3441 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH4 0xFFFFFFFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x161A DUP6 DUP6 DUP6 PUSH2 0x27D7 JUMP JUMPDEST SWAP2 POP SWAP2 POP SWAP4 POP SWAP4 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x162E PUSH2 0x34C0 JUMP JUMPDEST PUSH2 0x1637 DUP2 PUSH2 0x22BF JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1644 PUSH2 0x3A0C JUMP JUMPDEST DUP1 ISZERO PUSH2 0x166A JUMPI POP PUSH1 0x9 SLOAD PUSH13 0x1000000000000000000000000 SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND ISZERO ISZERO JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH13 0x1000000000000000000000000 SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0x169A DUP2 PUSH2 0x3441 JUMP JUMPDEST PUSH2 0x16DC PUSH2 0x16A6 DUP5 PUSH2 0x2C38 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x16D0 SWAP1 PUSH1 0x13 PUSH4 0xFFFFFFFF PUSH2 0x3AA6 AND JUMP JUMPDEST SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x3B2A AND JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x18160DDD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1729 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x173D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1753 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP2 SWAP6 POP AND SWAP3 POP PUSH2 0x177E DUP4 PUSH2 0x2C38 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 SWAP3 POP SWAP1 POP PUSH2 0x17BC DUP2 PUSH2 0x17B0 DUP5 DUP8 PUSH4 0xFFFFFFFF PUSH2 0x3AA6 AND JUMP JUMPDEST SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x3B87 AND JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH2 0x17EF PUSH2 0x34C0 JUMP JUMPDEST PUSH2 0x17F7 PUSH2 0x2A09 JUMP JUMPDEST JUMP JUMPDEST PUSH2 0x1801 PUSH2 0x34C0 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x5E35359E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP6 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP3 ADD DUP6 SWAP1 MSTORE SWAP2 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP2 PUSH4 0x5E35359E SWAP2 PUSH1 0x64 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1877 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x188B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x17 SSTORE JUMP JUMPDEST PUSH1 0x2 SWAP1 JUMP JUMPDEST PUSH2 0x18A6 PUSH2 0x34C0 JUMP JUMPDEST DUP2 PUSH1 0x14 PUSH1 0x0 PUSH1 0x7 PUSH1 0x0 DUP2 SLOAD DUP2 LT ISZERO ISZERO PUSH2 0x18BB JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 SWAP1 SWAP2 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP4 MSTORE DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x40 ADD DUP2 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE PUSH1 0x7 DUP1 SLOAD DUP4 SWAP3 PUSH1 0x14 SWAP3 SWAP1 SWAP2 PUSH1 0x1 SWAP1 DUP2 LT PUSH2 0x18F9 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 SWAP1 SWAP2 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP4 MSTORE DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x40 ADD SWAP1 KECCAK256 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ DUP1 PUSH2 0x1957 JUMPI POP PUSH1 0x3 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x199B JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5468 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x19C4 PUSH32 0x436F6E7472616374526567697374727900000000000000000000000000000000 PUSH2 0x36A6 JUMP JUMPDEST PUSH1 0x2 SLOAD SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP4 AND SWAP2 AND EQ DUP1 ISZERO SWAP1 PUSH2 0x19ED JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x1A43 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245474953545259000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0xBB34534C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH32 0x436F6E7472616374526567697374727900000000000000000000000000000000 PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP2 PUSH4 0xBB34534C SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1AC7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1ADB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1AF1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ ISZERO PUSH2 0x1B52 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245474953545259000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP5 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT SWAP3 DUP4 AND OR SWAP1 SWAP3 SSTORE SWAP1 SWAP2 AND SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x1B8A PUSH2 0x34C0 JUMP JUMPDEST DUP1 PUSH2 0x1B94 DUP2 PUSH2 0x35E5 JUMP JUMPDEST POP PUSH1 0x6 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x20 DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x1BCC PUSH2 0x3BF5 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH2 0x1BD9 PUSH2 0x3C4F JUMP JUMPDEST DUP8 PUSH2 0x1BE3 DUP2 PUSH2 0x3441 JUMP JUMPDEST DUP8 PUSH2 0x1BED DUP2 PUSH2 0x3CAD JUMP JUMPDEST DUP8 PUSH2 0x1BF7 DUP2 PUSH2 0x3CAD JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5448 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ PUSH2 0x1C1C JUMPI CALLVALUE ISZERO PUSH2 0x1C20 JUMP JUMPDEST DUP10 CALLVALUE EQ JUMPDEST ISZERO ISZERO PUSH2 0x1C76 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4554485F414D4F554E545F4D49534D41544348000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x1C7E PUSH2 0x3D05 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5448 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ ISZERO PUSH2 0x1D20 JUMPI PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5448 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x0 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH32 0x353C2EB9E53A4A4A6D45D72082FF2E9DC829D1125618772A83EB0E7F86632C42 SLOAD PUSH2 0x1CE6 SWAP1 CALLVALUE PUSH4 0xFFFFFFFF PUSH2 0x3D47 AND JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5448 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x0 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH32 0x353C2EB9E53A4A4A6D45D72082FF2E9DC829D1125618772A83EB0E7F86632C42 SSTORE JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x15 SLOAD SWAP1 SWAP8 POP PUSH1 0xFF AND ISZERO PUSH2 0x1DE9 JUMPI PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x14 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD ISZERO DUP1 PUSH2 0x1D93 JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x14 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x1D90 DUP9 DUP13 PUSH4 0xFFFFFFFF PUSH2 0x3B2A AND JUMP JUMPDEST GT ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x1DE9 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4D41585F5354414B45445F42414C414E43455F524541434845440000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP13 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD DUP2 MLOAD PUSH32 0x18160DDD00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP2 MLOAD SWAP5 AND SWAP10 POP DUP10 SWAP4 PUSH4 0x18160DDD SWAP4 PUSH1 0x4 DUP1 DUP5 ADD SWAP5 SWAP4 DUP4 SWAP1 SUB ADD SWAP1 DUP3 SWAP1 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1E56 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1E6A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1E80 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP5 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5448 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ PUSH2 0x1EAE JUMPI PUSH2 0x1EAE DUP12 CALLER ADDRESS DUP14 PUSH2 0x3DA7 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x1ED7 SWAP1 DUP12 PUSH4 0xFFFFFFFF PUSH2 0x3B2A AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP13 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE PUSH2 0x1F00 DUP8 DUP12 PUSH4 0xFFFFFFFF PUSH2 0x3B2A AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP13 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE SWAP4 POP DUP7 ISZERO DUP1 PUSH2 0x1F29 JUMPI POP DUP5 ISZERO JUMPDEST ISZERO PUSH2 0x1F36 JUMPI DUP10 SWAP4 POP PUSH2 0x1F4D JUMP JUMPDEST PUSH2 0x1F4A DUP8 PUSH2 0x17B0 DUP13 DUP9 PUSH4 0xFFFFFFFF PUSH2 0x3AA6 AND JUMP JUMPDEST SWAP4 POP JUMPDEST DUP9 DUP5 LT ISZERO PUSH2 0x1FA5 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F52455455524E5F544F4F5F4C4F570000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xC6C3BBE600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP10 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE CALLER PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP3 ADD DUP9 SWAP1 MSTORE SWAP2 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP2 PUSH4 0xC6C3BBE6 SWAP2 PUSH1 0x64 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2019 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x202D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x2039 PUSH2 0x3994 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND CALLER PUSH32 0x4A1A2A6176E9646D9E3157F7C2AB3C499F18337C0B0828CFB28E0A61DE4A11F7 DUP13 PUSH2 0x2076 DUP12 DUP3 PUSH4 0xFFFFFFFF PUSH2 0x3B2A AND JUMP JUMPDEST PUSH2 0x2086 DUP11 DUP11 PUSH4 0xFFFFFFFF PUSH2 0x3B2A AND JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP4 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP3 SWAP1 SWAP3 MSTORE DUP3 DUP3 ADD MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG3 PUSH2 0x20BD DUP7 PUSH2 0x20B7 DUP8 DUP8 PUSH4 0xFFFFFFFF PUSH2 0x3B2A AND JUMP JUMPDEST DUP14 PUSH2 0x3E8F JUMP JUMPDEST PUSH2 0x2112 PUSH1 0x7 PUSH1 0x0 DUP2 SLOAD DUP2 LT ISZERO ISZERO PUSH2 0x20D0 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x7 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP2 PUSH1 0x1 SWAP1 DUP2 LT PUSH2 0x20F7 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP1 DUP1 PUSH2 0x3EEF JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0x4 SSTORE POP SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD AND SWAP1 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH9 0x10000000000000000 SWAP1 DIV PUSH4 0xFFFFFFFF AND DUP2 JUMP JUMPDEST DUP2 PUSH2 0x2165 DUP2 PUSH2 0x3441 JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP2 SWAP1 SWAP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD DUP1 SLOAD PUSH4 0xFFFFFFFF NOT AND PUSH4 0xFFFFFFFF SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH2 0x21A6 PUSH2 0x3BF5 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH2 0x21B3 PUSH2 0x34C0 JUMP JUMPDEST PUSH2 0x21CA PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5428 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x36A6 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD SWAP1 SWAP2 POP PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 PUSH2 0x2207 JUMPI POP PUSH2 0x2205 PUSH2 0x163A JUMP JUMPDEST ISZERO JUMPDEST DUP1 PUSH2 0x221F JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ JUMPDEST ISZERO ISZERO PUSH2 0x2263 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5468 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x226E DUP5 DUP5 DUP5 PUSH2 0x3F5B JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x22A5 JUMPI PUSH2 0x22A5 DUP5 PUSH2 0x3F8C JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0x4 SSTORE POP POP JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH2 0x22C7 PUSH2 0x34C0 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5428 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x22DF DUP2 PUSH2 0x4080 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xF2FDE38B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP2 PUSH4 0xF2FDE38B SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2346 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x235A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 DUP12 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x18160DDD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x23AF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x23C3 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x23D9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP15 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD SWAP1 SWAP4 AND DUP3 MSTORE PUSH1 0xC SWAP1 MSTORE KECCAK256 SLOAD SWAP1 SWAP9 POP SWAP7 POP DUP8 DUP12 LT ISZERO PUSH2 0x24A4 JUMPI PUSH1 0xA SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x243C SWAP1 PUSH1 0x14 PUSH4 0xFFFFFFFF PUSH2 0x3AA6 AND JUMP JUMPDEST PUSH1 0xA SLOAD SWAP1 SWAP7 POP PUSH2 0x2454 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x168E JUMP JUMPDEST SWAP5 POP DUP5 DUP7 LT PUSH2 0x2464 JUMPI DUP5 DUP7 PUSH2 0x2467 JUMP JUMPDEST DUP6 DUP6 JUMPDEST SWAP1 SWAP5 POP SWAP3 POP PUSH2 0x2480 DUP9 PUSH2 0x17B0 DUP14 DUP11 PUSH4 0xFFFFFFFF PUSH2 0x3AA6 AND JUMP JUMPDEST SWAP2 POP PUSH2 0x2496 DUP4 PUSH2 0x17B0 DUP5 DUP8 PUSH4 0xFFFFFFFF PUSH2 0x3AA6 AND JUMP JUMPDEST SWAP10 POP POP DUP9 DUP2 SUB SWAP8 POP DUP9 PUSH2 0x24AE JUMP JUMPDEST SWAP6 SWAP9 POP PUSH1 0x0 SWAP8 POP DUP9 SWAP6 JUMPDEST POP POP POP POP POP POP POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x24C7 PUSH2 0x3BF5 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH2 0x24D4 PUSH2 0x34C0 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5448 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x24EC DUP2 PUSH2 0x3441 JUMP JUMPDEST PUSH2 0x2503 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5428 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x36A6 JUMP JUMPDEST SWAP2 POP PUSH2 0x250D PUSH2 0x163A JUMP JUMPDEST ISZERO DUP1 PUSH2 0x2526 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 DUP2 AND SWAP2 AND EQ JUMPDEST ISZERO ISZERO PUSH2 0x256A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5468 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP1 ADDRESS BALANCE DUP1 ISZERO PUSH2 0x8FC MUL SWAP2 PUSH1 0x0 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x25A0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH2 0x25B8 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5448 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x3F8C JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0x4 SSTORE POP JUMP JUMPDEST PUSH2 0x25CA PUSH2 0x34C0 JUMP JUMPDEST PUSH3 0x186A0 DUP2 GT ISZERO PUSH2 0x2625 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F44594E414D49435F4645455F464143544F520000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x16 SLOAD PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP4 SWAP1 MSTORE DUP1 MLOAD PUSH32 0x382FD3516344712A511DCD464FF8E6AB54139D6A28F64087A3253353EE7A5679 SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG1 PUSH1 0x16 SSTORE JUMP JUMPDEST PUSH1 0x2 PUSH2 0x2671 PUSH2 0x27C8 JUMP JUMPDEST PUSH2 0xFFFF AND LT PUSH2 0x26B8 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5488 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x26C2 DUP3 DUP3 PUSH2 0x40D6 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x166A PUSH2 0x27C8 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x2720 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5468 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND SWAP4 SWAP1 SWAP2 AND SWAP2 PUSH32 0x343765429AEA5A34B3FF6A3785A98A5ABB2597ACA87BFBB58632C173D585373A SWAP2 LOG3 PUSH1 0x1 DUP1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND OR SWAP1 SWAP2 SSTORE AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH5 0x100000000 SWAP1 DIV PUSH4 0xFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x14 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x7 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0xF SLOAD PUSH1 0x10 SLOAD DUP3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x27E5 PUSH2 0x53F1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x27F3 PUSH2 0x3C4F JUMP JUMPDEST PUSH2 0x27FC DUP13 PUSH2 0x3441 JUMP JUMPDEST PUSH2 0x2805 DUP12 PUSH2 0x3441 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP13 DUP2 AND SWAP1 DUP13 AND EQ ISZERO PUSH2 0x2869 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F534F555243455F54415247455400000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x2871 PUSH2 0x397A JUMP JUMPDEST PUSH1 0x11 SLOAD EQ ISZERO PUSH2 0x2918 JUMPI PUSH1 0xF PUSH1 0x40 DUP1 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD SLOAD DUP2 MSTORE POP POP SWAP5 POP PUSH1 0x8 PUSH1 0x0 DUP14 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH4 0xFFFFFFFF AND SWAP7 POP PUSH1 0x8 PUSH1 0x0 DUP13 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH4 0xFFFFFFFF AND SWAP6 POP PUSH2 0x2958 JUMP JUMPDEST PUSH2 0x2920 PUSH2 0x4308 JUMP JUMPDEST SWAP5 POP PUSH2 0x292B DUP6 PUSH2 0x4540 JUMP JUMPDEST PUSH1 0xA SLOAD SWAP2 SWAP6 POP SWAP4 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP14 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x2951 JUMPI DUP4 SWAP7 POP DUP3 SWAP6 POP PUSH2 0x2958 JUMP JUMPDEST DUP3 SWAP7 POP DUP4 SWAP6 POP JUMPDEST PUSH2 0x2966 DUP13 DUP13 DUP10 DUP10 DUP10 DUP16 PUSH2 0x466A JUMP JUMPDEST SWAP2 SWAP15 SWAP2 SWAP14 POP SWAP1 SWAP12 POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x2983 PUSH2 0x34C0 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x2 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x1 DUP2 JUMP JUMPDEST PUSH2 0x29B4 PUSH2 0x34C0 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5428 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x29CC DUP2 PUSH2 0x4080 JUMP JUMPDEST DUP3 PUSH2 0x29D6 DUP2 PUSH2 0x3441 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE JUMP JUMPDEST PUSH1 0x11 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x1 PUSH2 0x2A13 PUSH2 0x27C8 JUMP JUMPDEST PUSH2 0xFFFF AND GT PUSH2 0x2A5A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5488 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x17F7 PUSH2 0x4806 JUMP JUMPDEST PUSH1 0x7 DUP1 SLOAD DUP3 SWAP1 DUP2 LT PUSH2 0x2A70 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP1 POP DUP2 JUMP JUMPDEST PUSH1 0x17 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 SWAP1 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2ABD PUSH2 0x34C0 JUMP JUMPDEST PUSH2 0x2AD4 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5428 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x36A6 JUMP JUMPDEST PUSH1 0x5 SLOAD SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x2AEE PUSH2 0x1899 JUMP JUMPDEST PUSH2 0xFFFF AND PUSH32 0x6B08C2E2C9969E55A647A764DB9B554D64DC42F1A704DA11A6D5B129AD163F2C PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH2 0x2B27 DUP2 PUSH2 0x3399 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x90F58C9600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 AND SWAP2 PUSH4 0x90F58C96 SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2B88 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2B9C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x1637 PUSH2 0x26D0 JUMP JUMPDEST PUSH1 0x14 SWAP1 JUMP JUMPDEST PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD PUSH4 0xFFFFFFFF DUP2 AND SWAP1 PUSH1 0xFF PUSH5 0x100000000 DUP3 DIV DUP2 AND SWAP2 PUSH6 0x10000000000 DUP2 DIV DUP3 AND SWAP2 PUSH7 0x1000000000000 SWAP1 SWAP2 DIV AND DUP6 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2BFE DUP3 PUSH2 0x2C38 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2C0F PUSH2 0x53F1 JUMP JUMPDEST PUSH2 0x2C17 PUSH2 0x4308 JUMP JUMPDEST DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD MLOAD SWAP1 SWAP5 SWAP1 SWAP4 POP SWAP2 POP POP JUMP JUMPDEST PUSH1 0xB SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0x2C44 DUP2 PUSH2 0x3441 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x2C72 PUSH2 0x3BF5 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH2 0x2C7F PUSH2 0x3C4F JUMP JUMPDEST DUP9 PUSH2 0x2C89 DUP2 PUSH2 0x48D2 JUMP JUMPDEST DUP9 PUSH2 0x2C93 DUP2 PUSH2 0x3CAD JUMP JUMPDEST DUP9 PUSH2 0x2C9D DUP2 PUSH2 0x3CAD JUMP JUMPDEST PUSH2 0x2CA5 PUSH2 0x3D05 JUMP JUMPDEST DUP12 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x18160DDD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2CE3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2CF7 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2D0D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP8 POP PUSH2 0x2D1B DUP13 DUP13 PUSH2 0x2362 JUMP JUMPDEST POP SWAP7 POP DUP10 DUP8 LT ISZERO PUSH2 0x2D76 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F52455455524E5F544F4F5F4C4F570000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0xE PUSH1 0x0 DUP14 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP6 POP PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xF6B911BC DUP14 CALLER DUP15 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP4 POP POP POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2E43 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2E57 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x2E84 SWAP2 POP DUP9 PUSH4 0xFFFFFFFF PUSH2 0x3D47 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE PUSH1 0xC SWAP1 MSTORE KECCAK256 SLOAD PUSH2 0x2EB9 SWAP1 DUP9 PUSH4 0xFFFFFFFF PUSH2 0x3D47 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP3 SWAP1 SSTORE SWAP1 SWAP6 POP PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5448 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ ISZERO PUSH2 0x2F1F JUMPI PUSH1 0x40 MLOAD CALLER SWAP1 DUP9 ISZERO PUSH2 0x8FC MUL SWAP1 DUP10 SWAP1 PUSH1 0x0 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x2F19 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH2 0x2F2A JUMP JUMPDEST PUSH2 0x2F2A DUP7 CALLER DUP10 PUSH2 0x4943 JUMP JUMPDEST PUSH2 0x2F32 PUSH2 0x3994 JUMP JUMPDEST PUSH2 0x2F42 DUP9 DUP13 PUSH4 0xFFFFFFFF PUSH2 0x3D47 AND JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP10 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP9 SWAP1 MSTORE DUP1 DUP3 ADD DUP4 SWAP1 MSTORE SWAP1 MLOAD SWAP2 SWAP6 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 AND SWAP2 CALLER SWAP2 PUSH32 0xBC7D19D505C7EC4DB83F3B51F19FB98C4C8A99922E7839D1EE608DFBEE29501B SWAP2 SWAP1 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG3 PUSH2 0x2F9E DUP13 DUP6 DUP9 PUSH2 0x3E8F JUMP JUMPDEST PUSH2 0x2FB1 PUSH1 0x7 PUSH1 0x0 DUP2 SLOAD DUP2 LT ISZERO ISZERO PUSH2 0x20D0 JUMPI INVALID JUMPDEST POP POP PUSH1 0x1 PUSH1 0x4 SSTORE POP SWAP3 SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x16 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2FD6 PUSH2 0x3BF5 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE PUSH32 0x536F7672796E537761704E6574776F726B000000000000000000000000000000 PUSH2 0x3005 DUP2 PUSH2 0x4080 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 DUP2 AND SWAP1 DUP8 AND EQ ISZERO PUSH2 0x3069 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F534F555243455F54415247455400000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND ISZERO DUP1 PUSH2 0x31AC JUMPI POP PUSH1 0x6 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x3AF32ABF00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP2 PUSH4 0x3AF32ABF SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x30E4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x30F8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x310E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD DUP1 ISZERO PUSH2 0x31AC JUMPI POP PUSH1 0x6 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x3AF32ABF00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP2 PUSH4 0x3AF32ABF SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x317F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3193 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x31A9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD JUMPDEST ISZERO ISZERO PUSH2 0x3202 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4E4F545F57484954454C495354454400000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x320F DUP8 DUP8 DUP8 DUP8 DUP8 PUSH2 0x49FA JUMP JUMPDEST PUSH1 0x1 PUSH1 0x4 SSTORE SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x322A PUSH2 0x53F1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x3235 PUSH2 0x4308 JUMP JUMPDEST SWAP3 POP PUSH2 0x3240 DUP4 PUSH2 0x4540 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x7 PUSH1 0x0 DUP2 SLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3254 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0xA SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x3289 JUMPI PUSH4 0xFFFFFFFF DUP1 DUP4 AND SWAP6 POP DUP2 AND SWAP4 POP PUSH2 0x3298 JUMP JUMPDEST PUSH4 0xFFFFFFFF DUP1 DUP3 AND SWAP6 POP DUP3 AND SWAP4 POP JUMPDEST POP POP POP SWAP1 SWAP2 JUMP JUMPDEST PUSH2 0x32A7 PUSH2 0x34C0 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH4 0xFFFFFFFF PUSH5 0x100000000 SWAP1 SWAP2 DIV DUP2 AND SWAP1 DUP3 AND GT ISZERO PUSH2 0x3313 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F434F4E56455253494F4E5F464545000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH4 0xFFFFFFFF PUSH9 0x10000000000000000 SWAP1 SWAP4 DIV DUP4 AND DUP2 MSTORE SWAP2 DUP4 AND PUSH1 0x20 DUP4 ADD MSTORE DUP1 MLOAD PUSH32 0x81CD2FFB37DD237C0E4E2A3DE5265FCF9DEB43D3E7801E80DB9F1CCFBA7EE600 SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG1 PUSH1 0x9 DUP1 SLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP3 AND PUSH9 0x10000000000000000 MUL PUSH12 0xFFFFFFFF0000000000000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x11 SSTORE JUMP JUMPDEST PUSH2 0x33A1 PUSH2 0x34C0 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x3407 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F4F574E4552000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x12 SLOAD PUSH1 0x13 SLOAD DUP3 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO PUSH2 0x1637 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245534552564500000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x17F7 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5468 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP1 PUSH2 0x3534 DUP8 PUSH2 0x3528 DUP13 DUP10 PUSH4 0xFFFFFFFF PUSH2 0x3AA6 AND JUMP JUMPDEST SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x3AA6 AND JUMP JUMPDEST SWAP2 POP PUSH2 0x354A DUP9 PUSH2 0x3528 DUP12 DUP9 PUSH4 0xFFFFFFFF PUSH2 0x3AA6 AND JUMP JUMPDEST SWAP1 POP DUP2 DUP2 GT ISZERO PUSH2 0x3576 JUMPI PUSH2 0x356F DUP2 PUSH2 0x17B0 PUSH1 0x14 PUSH2 0x3528 DUP7 DUP5 SUB DUP10 PUSH4 0xFFFFFFFF PUSH2 0x3AA6 AND JUMP JUMPDEST SWAP3 POP PUSH2 0x357B JUMP JUMPDEST PUSH1 0x0 SWAP3 POP JUMPDEST POP POP SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x3590 PUSH2 0x163A JUMP JUMPDEST ISZERO PUSH2 0x17F7 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xA PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F41435449564500000000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ADDRESS EQ ISZERO PUSH2 0x1637 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F414444524553535F49535F53454C4600000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0x1637 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xBB34534C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP2 PUSH4 0xBB34534C SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x370C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3720 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x3736 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP6 POP DUP6 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x6D3E313E PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x379E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x37B2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x37DB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 MLOAD PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x37F3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD PUSH1 0x20 DUP2 ADD DUP5 DUP2 GT ISZERO PUSH2 0x3806 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP6 PUSH1 0x20 DUP3 MUL DUP4 ADD GT PUSH5 0x100000000 DUP3 GT OR ISZERO PUSH2 0x3823 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP DUP1 MLOAD PUSH1 0x7 SLOAD SWAP2 SWAP10 POP ISZERO SWAP8 POP SWAP6 POP PUSH1 0x0 SWAP5 POP POP POP POP JUMPDEST DUP3 DUP3 LT ISZERO PUSH2 0x235A JUMPI DUP4 ISZERO PUSH2 0x38B9 JUMPI DUP6 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x9CBF9E36 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3886 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x389A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x38B0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 POP PUSH2 0x38D4 JUMP JUMPDEST DUP5 DUP3 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x38C7 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD SWAP1 POP JUMPDEST DUP1 PUSH1 0xD PUSH1 0x0 PUSH1 0x7 DUP6 DUP2 SLOAD DUP2 LT ISZERO ISZERO PUSH2 0x38E8 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 SWAP2 SWAP1 SWAP2 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 DUP2 AND DUP5 MSTORE SWAP1 DUP4 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x40 SWAP1 SWAP2 ADD SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND SWAP3 SWAP1 SWAP2 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH1 0x7 DUP1 SLOAD DUP4 SWAP1 DUP2 LT PUSH2 0x3936 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 SWAP1 SWAP2 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 DUP2 AND DUP5 MSTORE PUSH1 0xE SWAP1 SWAP3 MSTORE PUSH1 0x40 SWAP1 SWAP3 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND SWAP2 SWAP1 SWAP3 AND OR SWAP1 SSTORE PUSH1 0x1 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x383A JUMP JUMPDEST PUSH1 0x0 PUSH1 0x17 SLOAD PUSH1 0x0 EQ ISZERO PUSH2 0x398D JUMPI TIMESTAMP PUSH2 0x166A JUMP JUMPDEST POP PUSH1 0x17 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0xF SLOAD DUP2 MSTORE PUSH1 0x10 SLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 SWAP1 DUP2 SWAP1 PUSH2 0x39B9 SWAP1 PUSH2 0x4540 JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 PUSH1 0x1 SWAP1 DUP2 ADD DUP1 SLOAD PUSH4 0xFFFFFFFF SWAP8 DUP9 AND PUSH4 0xFFFFFFFF NOT SWAP2 DUP3 AND OR SWAP1 SWAP2 SSTORE PUSH1 0xB SLOAD SWAP1 SWAP5 AND DUP4 MSTORE SWAP2 KECCAK256 ADD DUP1 SLOAD SWAP3 SWAP1 SWAP4 AND SWAP2 AND OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 ADDRESS PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x8DA5CB5B PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3A6B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3A7F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x3A95 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 ISZERO ISZERO PUSH2 0x3AB9 JUMPI PUSH1 0x0 SWAP2 POP PUSH2 0x3B23 JUMP JUMPDEST POP DUP3 DUP3 MUL DUP3 DUP5 DUP3 DUP2 ISZERO ISZERO PUSH2 0x3AC9 JUMPI INVALID JUMPDEST DIV EQ PUSH2 0x3B1F JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP1 SWAP2 POP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 ADD DUP4 DUP2 LT ISZERO PUSH2 0x3B1F JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP4 GT PUSH2 0x3BE1 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4449564944455F42595F5A45524F0000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP3 DUP5 DUP2 ISZERO ISZERO PUSH2 0x3BEC JUMPI INVALID JUMPDEST DIV SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH1 0x1 EQ PUSH2 0x17F7 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5245454E5452414E4359000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x3C57 PUSH2 0x163A JUMP JUMPDEST ISZERO ISZERO PUSH2 0x17F7 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E4143544956450000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 GT PUSH2 0x1637 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5A45524F5F56414C5545000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x26C2 JUMPI PUSH2 0x3D3F PUSH1 0x7 DUP3 DUP2 SLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3D25 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x3F8C JUMP JUMPDEST PUSH1 0x1 ADD PUSH2 0x3D0B JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT ISZERO PUSH2 0x3DA1 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F554E444552464C4F5700000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP SWAP1 SUB SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x7472616E7366657246726F6D28616464726573732C616464726573732C75696E DUP2 MSTORE PUSH32 0x7432353629000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP3 MLOAD SWAP2 DUP3 SWAP1 SUB PUSH1 0x25 ADD DUP3 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP9 AND PUSH1 0x24 DUP6 ADD MSTORE DUP7 AND PUSH1 0x44 DUP5 ADD MSTORE PUSH1 0x64 DUP1 DUP5 ADD DUP7 SWAP1 MSTORE DUP5 MLOAD DUP1 DUP6 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x84 SWAP1 SWAP4 ADD SWAP1 SWAP4 MSTORE DUP2 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE PUSH2 0x3E89 SWAP1 DUP6 SWAP1 PUSH2 0x4AED JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP3 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SLOAD DUP3 MLOAD SWAP1 DUP2 MSTORE SWAP1 DUP2 ADD DUP7 SWAP1 MSTORE DUP2 MLOAD SWAP3 SWAP4 DUP8 AND SWAP3 PUSH32 0x77F29993CF2C084E726F7E802DA0719D6A0ADE3E204BADC7A3FFD57ECB768C24 SWAP3 SWAP2 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH2 0x3EF7 PUSH2 0x53F1 JUMP JUMPDEST PUSH2 0x3F03 DUP6 DUP6 DUP6 DUP6 PUSH2 0x4B7B JUMP JUMPDEST DUP1 MLOAD PUSH1 0x20 DUP1 DUP4 ADD MLOAD PUSH1 0x40 DUP1 MLOAD SWAP4 DUP5 MSTORE SWAP2 DUP4 ADD MSTORE DUP1 MLOAD SWAP3 SWAP4 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP9 AND SWAP4 SWAP1 DUP10 AND SWAP3 PUSH32 0x77F29993CF2C084E726F7E802DA0719D6A0ADE3E204BADC7A3FFD57ECB768C24 SWAP3 SWAP1 DUP3 SWAP1 SUB ADD SWAP1 LOG3 POP POP POP POP POP JUMP JUMPDEST PUSH2 0x3F63 PUSH2 0x34C0 JUMP JUMPDEST DUP3 PUSH2 0x3F6D DUP2 PUSH2 0x3646 JUMP JUMPDEST DUP3 PUSH2 0x3F77 DUP2 PUSH2 0x3646 JUMP JUMPDEST DUP4 PUSH2 0x3F81 DUP2 PUSH2 0x35E5 JUMP JUMPDEST PUSH2 0x235A DUP7 DUP7 DUP7 PUSH2 0x4943 JUMP JUMPDEST DUP1 PUSH2 0x3F96 DUP2 PUSH2 0x3441 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 AND PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5448 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ ISZERO PUSH2 0x3FD6 JUMPI PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 ADDRESS BALANCE SWAP1 SSTORE PUSH2 0x26C2 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x4037 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x404B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x4061 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE POP POP JUMP JUMPDEST PUSH2 0x4089 DUP2 PUSH2 0x36A6 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x1637 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5468 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x40E0 PUSH2 0x34C0 JUMP JUMPDEST PUSH2 0x40E8 PUSH2 0x3588 JUMP JUMPDEST DUP3 PUSH2 0x40F2 DUP2 PUSH2 0x3646 JUMP JUMPDEST DUP4 PUSH2 0x40FC DUP2 PUSH2 0x35E5 JUMP JUMPDEST DUP4 PUSH2 0x4106 DUP2 PUSH2 0x4C43 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 DUP2 AND SWAP2 AND EQ DUP1 ISZERO SWAP1 PUSH2 0x414A JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH7 0x1000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x41A0 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245534552564500000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x9 SLOAD PUSH4 0xFFFFFFFF SWAP1 DUP2 AND PUSH3 0xF4240 SUB DUP2 AND SWAP1 DUP7 AND GT ISZERO PUSH2 0x420B JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F574549474854000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0xFFFF PUSH2 0x4216 PUSH2 0x27C8 JUMP JUMPDEST PUSH2 0xFFFF AND LT PUSH2 0x425D JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5488 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP2 DUP2 SSTORE PUSH1 0x1 SWAP1 DUP2 ADD DUP1 SLOAD PUSH7 0xFF000000000000 NOT PUSH4 0xFFFFFFFF DUP1 DUP9 AND PUSH4 0xFFFFFFFF NOT SWAP4 DUP5 AND OR SWAP2 SWAP1 SWAP2 AND PUSH7 0x1000000000000 OR SWAP1 SWAP3 SSTORE PUSH1 0x7 DUP1 SLOAD SWAP4 DUP5 ADD DUP2 SSTORE SWAP1 SWAP4 MSTORE PUSH32 0xA66CC928B5EDB82AF9BD49922954155AB7B0942694BEA4CE44661D9A8736C688 SWAP1 SWAP2 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND SWAP1 SWAP4 OR SWAP1 SWAP3 SSTORE PUSH1 0x9 DUP1 SLOAD DUP1 DUP5 AND SWAP1 SWAP5 ADD SWAP1 SWAP3 AND SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE POP JUMP JUMPDEST PUSH2 0x4310 PUSH2 0x53F1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x431E PUSH2 0x53F1 JUMP JUMPDEST PUSH2 0x4326 PUSH2 0x53F1 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0xA SLOAD PUSH1 0xB SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xB1772D7A00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND PUSH1 0x4 DUP3 ADD MSTORE SWAP2 DUP4 AND PUSH1 0x24 DUP4 ADD MSTORE MLOAD PUSH1 0x0 SWAP4 DUP5 SWAP4 DUP5 SWAP4 DUP5 SWAP4 PUSH13 0x1000000000000000000000000 SWAP1 SWAP4 DIV SWAP1 SWAP2 AND SWAP2 PUSH4 0xB1772D7A SWAP2 PUSH1 0x44 DUP1 DUP3 ADD SWAP3 PUSH1 0x60 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x43B4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x43C8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x60 DUP2 LT ISZERO PUSH2 0x43DE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD PUSH1 0x20 DUP3 ADD MLOAD PUSH1 0x40 SWAP1 SWAP3 ADD MLOAD PUSH1 0x11 SLOAD SWAP2 SWAP13 POP SWAP2 SWAP11 POP SWAP1 SWAP9 POP DUP9 GT ISZERO PUSH2 0x441B JUMPI PUSH1 0x40 DUP1 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 DUP12 DUP2 MSTORE PUSH1 0x20 ADD DUP11 DUP2 MSTORE POP SWAP11 POP PUSH2 0x4533 JUMP JUMPDEST PUSH1 0x11 SLOAD PUSH2 0x4426 PUSH2 0x397A JUMP JUMPDEST SUB SWAP7 POP DUP7 ISZERO ISZERO PUSH2 0x444E JUMPI PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0xF SLOAD DUP2 MSTORE PUSH1 0x10 SLOAD PUSH1 0x20 DUP3 ADD MSTORE SWAP11 POP PUSH2 0x4533 JUMP JUMPDEST PUSH2 0x258 DUP8 LT PUSH2 0x4475 JUMPI PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x12 SLOAD DUP2 MSTORE PUSH1 0x13 SLOAD PUSH1 0x20 DUP3 ADD MSTORE SWAP11 POP PUSH2 0x4533 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD DUP3 MSTORE PUSH1 0xF SLOAD DUP2 MSTORE PUSH1 0x10 SLOAD PUSH1 0x20 DUP1 DUP4 ADD SWAP2 DUP3 MSTORE DUP4 MLOAD DUP1 DUP6 ADD SWAP1 SWAP5 MSTORE PUSH1 0x12 SLOAD DUP1 DUP6 MSTORE PUSH1 0x13 SLOAD SWAP2 DUP6 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP1 MLOAD SWAP2 SWAP9 POP SWAP2 SWAP7 POP PUSH2 0x44BD SWAP2 PUSH4 0xFFFFFFFF PUSH2 0x3AA6 AND JUMP JUMPDEST PUSH1 0x20 DUP7 ADD MLOAD DUP8 MLOAD SWAP2 SWAP6 POP PUSH2 0x44D7 SWAP2 SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x3AA6 AND JUMP JUMPDEST SWAP3 POP PUSH2 0x4501 PUSH2 0x44EC DUP6 DUP10 PUSH4 0xFFFFFFFF PUSH2 0x3AA6 AND JUMP JUMPDEST PUSH2 0x16D0 DUP6 PUSH2 0x258 DUP12 SWAP1 SUB PUSH4 0xFFFFFFFF PUSH2 0x3AA6 AND JUMP JUMPDEST SWAP2 POP PUSH2 0x4524 PUSH2 0x258 PUSH2 0x3528 DUP8 PUSH1 0x20 ADD MLOAD DUP10 PUSH1 0x20 ADD MLOAD PUSH2 0x3AA6 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP PUSH2 0x4530 DUP3 DUP3 PUSH2 0x4CB8 JUMP JUMPDEST SWAP11 POP JUMPDEST POP POP POP POP POP POP POP POP POP POP SWAP1 JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD SWAP1 SWAP2 DUP3 SWAP2 SWAP1 DUP3 SWAP1 DUP2 SWAP1 PUSH2 0x456D SWAP1 PUSH2 0x168E JUMP JUMPDEST PUSH1 0xB SLOAD SWAP1 SWAP3 POP PUSH2 0x4585 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x168E JUMP JUMPDEST SWAP1 POP PUSH2 0x45B0 PUSH32 0x536F7672796E53776170466F726D756C61000000000000000000000000000000 PUSH2 0x36A6 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xA11AA1B4 PUSH2 0x45CF DUP6 PUSH1 0x14 PUSH4 0xFFFFFFFF PUSH2 0x3AA6 AND JUMP JUMPDEST DUP9 MLOAD PUSH1 0x20 DUP11 ADD MLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0xE0 PUSH1 0x2 EXP PUSH4 0xFFFFFFFF DUP8 AND MUL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP5 SWAP1 SWAP5 MSTORE PUSH1 0x24 DUP5 ADD DUP9 SWAP1 MSTORE PUSH1 0x44 DUP5 ADD DUP8 SWAP1 MSTORE PUSH1 0x64 DUP5 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x84 DUP4 ADD MSTORE DUP1 MLOAD PUSH1 0xA4 DUP1 DUP5 ADD SWAP4 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x462A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x463E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x4654 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD MLOAD SWAP1 SWAP6 POP SWAP4 POP POP POP POP SWAP2 POP SWAP2 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP1 DUP1 PUSH4 0xFFFFFFFF DUP10 AND ISZERO ISZERO PUSH2 0x46A2 JUMPI PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH4 0xFFFFFFFF AND SWAP9 POP JUMPDEST PUSH4 0xFFFFFFFF DUP9 AND ISZERO ISZERO PUSH2 0x46D4 JUMPI PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP11 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH4 0xFFFFFFFF AND SWAP8 POP JUMPDEST PUSH2 0x46DD DUP12 PUSH2 0x168E JUMP JUMPDEST SWAP2 POP PUSH2 0x46E8 DUP11 PUSH2 0x168E JUMP JUMPDEST SWAP1 POP PUSH2 0x4713 PUSH32 0x536F7672796E53776170466F726D756C61000000000000000000000000000000 PUSH2 0x36A6 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x94491FAB00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH4 0xFFFFFFFF DUP1 DUP14 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP3 ADD DUP6 SWAP1 MSTORE DUP12 AND PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 DUP2 ADD DUP10 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 PUSH4 0x94491FAB SWAP2 PUSH1 0xA4 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x479A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x47AE JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x47C4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP5 POP PUSH2 0x47D1 DUP6 PUSH2 0x4D0D JUMP JUMPDEST SWAP4 POP PUSH2 0x47E4 DUP5 PUSH2 0x16D0 DUP13 DUP13 DUP13 DUP13 DUP12 PUSH2 0x4D3D JUMP JUMPDEST SWAP3 POP PUSH2 0x47F6 DUP6 DUP5 PUSH4 0xFFFFFFFF PUSH2 0x3D47 AND JUMP JUMPDEST SWAP5 POP POP POP SWAP7 POP SWAP7 POP SWAP7 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0x480E PUSH2 0x34C0 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4818 PUSH2 0x27C8 JUMP JUMPDEST PUSH2 0xFFFF AND GT PUSH2 0x485F JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5488 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x79BA5097 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x48B2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x48C6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x17F7 PUSH2 0x3D05 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD AND ISZERO ISZERO PUSH2 0x1637 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F504F4F4C5F544F4B454E00000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x7472616E7366657228616464726573732C75696E743235362900000000000000 DUP2 MSTORE DUP2 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x19 ADD DUP2 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x64 SWAP1 SWAP3 ADD SWAP1 SWAP3 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE PUSH2 0x49F5 SWAP1 DUP5 SWAP1 PUSH2 0x4AED JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x4A07 PUSH2 0x3C4F JUMP JUMPDEST DUP8 PUSH2 0x4A11 DUP2 PUSH2 0x3441 JUMP JUMPDEST DUP8 PUSH2 0x4A1B DUP2 PUSH2 0x3441 JUMP JUMPDEST PUSH2 0x4A26 DUP11 DUP11 DUP11 PUSH2 0x4E16 JUMP JUMPDEST SWAP1 SWAP5 POP SWAP3 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP10 AND PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5448 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ ISZERO PUSH2 0x4A86 JUMPI PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND SWAP1 DUP6 ISZERO PUSH2 0x8FC MUL SWAP1 DUP7 SWAP1 PUSH1 0x0 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x4A80 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH2 0x4A91 JUMP JUMPDEST PUSH2 0x4A91 DUP10 DUP8 DUP7 PUSH2 0x4943 JUMP JUMPDEST PUSH2 0x4A9F DUP11 DUP11 DUP10 DUP12 DUP9 DUP9 PUSH2 0x512B JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 PUSH1 0x1 SWAP1 DUP2 ADD SLOAD SWAP4 DUP14 AND DUP4 MSTORE SWAP2 KECCAK256 ADD SLOAD PUSH2 0x4ADF SWAP2 DUP13 SWAP2 DUP13 SWAP2 PUSH4 0xFFFFFFFF SWAP1 DUP2 AND SWAP2 AND PUSH2 0x51B0 JUMP JUMPDEST POP SWAP2 SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x4AF5 PUSH2 0x5408 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE POP SWAP1 POP PUSH1 0x20 DUP2 DUP4 MLOAD PUSH1 0x20 DUP6 ADD PUSH1 0x0 DUP8 GAS CALL DUP1 ISZERO ISZERO PUSH2 0x4B22 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD ISZERO ISZERO PUSH2 0x49F5 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5452414E534645525F4641494C454400000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x4B83 PUSH2 0x53F1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x4B8F DUP8 PUSH2 0x168E JUMP JUMPDEST SWAP2 POP PUSH2 0x4B9A DUP7 PUSH2 0x168E JUMP JUMPDEST SWAP1 POP PUSH4 0xFFFFFFFF DUP6 AND ISZERO ISZERO PUSH2 0x4BCE JUMPI PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH4 0xFFFFFFFF AND SWAP5 POP JUMPDEST PUSH4 0xFFFFFFFF DUP5 AND ISZERO ISZERO PUSH2 0x4C00 JUMPI PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH4 0xFFFFFFFF AND SWAP4 POP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE DUP1 PUSH2 0x4C1E DUP4 PUSH4 0xFFFFFFFF DUP1 DUP11 AND SWAP1 PUSH2 0x3AA6 AND JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x4C36 DUP5 PUSH4 0xFFFFFFFF DUP1 DUP10 AND SWAP1 PUSH2 0x3AA6 AND JUMP JUMPDEST SWAP1 MSTORE SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH4 0xFFFFFFFF AND GT DUP1 ISZERO PUSH2 0x4C62 JUMPI POP PUSH3 0xF4240 PUSH4 0xFFFFFFFF DUP3 AND GT ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x1637 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F574549474854000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x4CC0 PUSH2 0x53F1 JUMP JUMPDEST PUSH2 0x4CC8 PUSH2 0x53F1 JUMP JUMPDEST DUP3 DUP5 LT PUSH2 0x4CE0 JUMPI PUSH2 0x4CD9 DUP5 DUP5 PUSH2 0x5241 JUMP JUMPDEST SWAP2 POP PUSH2 0x3B23 JUMP JUMPDEST PUSH2 0x4CEA DUP4 DUP6 PUSH2 0x5241 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x20 DUP1 DUP4 ADD MLOAD DUP3 MSTORE DUP3 MLOAD SWAP1 DUP3 ADD MSTORE SWAP3 POP SWAP1 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x0 SWAP1 PUSH2 0x2BFE SWAP1 PUSH3 0xF4240 SWAP1 PUSH2 0x17B0 SWAP1 DUP6 SWAP1 PUSH9 0x10000000000000000 SWAP1 DIV PUSH4 0xFFFFFFFF SWAP1 DUP2 AND SWAP1 PUSH2 0x3AA6 AND JUMP JUMPDEST PUSH1 0xB SLOAD PUSH1 0x0 SWAP1 DUP2 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x4DAB JUMPI PUSH1 0xA SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD PUSH1 0xB SLOAD SWAP1 SWAP5 AND DUP4 MSTORE SWAP1 SWAP2 KECCAK256 SLOAD DUP7 MLOAD SWAP2 DUP8 ADD MLOAD PUSH1 0x16 SLOAD PUSH2 0x4DA4 SWAP5 SWAP4 PUSH4 0xFFFFFFFF DUP1 DUP14 AND SWAP4 SWAP1 DUP13 AND SWAP3 PUSH2 0x3510 JUMP JUMPDEST SWAP1 POP PUSH2 0x4DFA JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD PUSH1 0xB SLOAD SWAP1 SWAP5 AND DUP4 MSTORE SWAP1 SWAP2 KECCAK256 SLOAD DUP7 MLOAD SWAP2 DUP8 ADD MLOAD PUSH1 0x16 SLOAD PUSH2 0x4DF7 SWAP5 SWAP4 PUSH4 0xFFFFFFFF DUP1 DUP13 AND SWAP4 SWAP1 DUP14 AND SWAP3 PUSH2 0x3510 JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH2 0x4E0B PUSH3 0xF4240 PUSH2 0x17B0 DUP6 DUP5 PUSH2 0x3AA6 JUMP JUMPDEST SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x4E23 PUSH2 0x53F1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x4E31 PUSH2 0x52FE JUMP JUMPDEST SWAP6 POP SWAP6 POP PUSH2 0x4E44 DUP12 DUP12 PUSH1 0x0 DUP1 DUP10 DUP15 PUSH2 0x466A JUMP JUMPDEST SWAP2 SWAP6 POP SWAP4 POP SWAP2 POP DUP4 ISZERO ISZERO PUSH2 0x4EA2 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5A45524F5F5441524745545F414D4F554E5400000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x4EAB DUP11 PUSH2 0x2C38 JUMP JUMPDEST SWAP1 POP DUP1 DUP5 LT PUSH2 0x4F04 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5441524745545F414D4F554E545F544F4F5F48494748000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5448 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ ISZERO PUSH2 0x4F7F JUMPI CALLVALUE DUP10 EQ PUSH2 0x4F7A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4554485F414D4F554E545F4D49534D41544348000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x5081 JUMP JUMPDEST CALLVALUE ISZERO DUP1 ISZERO PUSH2 0x502B JUMPI POP DUP9 PUSH2 0x5028 PUSH2 0x4F95 DUP14 PUSH2 0x2C38 JUMP JUMPDEST DUP14 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x4FF0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x5004 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x501A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x3D47 AND JUMP JUMPDEST LT ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x5081 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F414D4F554E540000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x508A DUP12 PUSH2 0x3F8C JUMP JUMPDEST PUSH2 0x509A DUP2 DUP6 PUSH4 0xFFFFFFFF PUSH2 0x3D47 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE PUSH1 0xC SWAP1 MSTORE KECCAK256 SLOAD PUSH2 0x50CF SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0x3B2A AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE DUP6 ISZERO PUSH2 0x511A JUMPI PUSH1 0xA SLOAD PUSH1 0xB SLOAD PUSH2 0x510D SWAP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 DUP2 AND SWAP2 AND PUSH1 0x0 DUP1 PUSH2 0x4B7B JUMP JUMPDEST DUP1 MLOAD PUSH1 0x12 SSTORE PUSH1 0x20 ADD MLOAD PUSH1 0x13 SSTORE JUMPDEST POP SWAP2 SWAP10 SWAP2 SWAP9 POP SWAP1 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0x8000000000000000000000000000000000000000000000000000000000000000 DUP2 LT PUSH2 0x5154 JUMPI INVALID JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP5 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 SWAP1 MSTORE DUP1 DUP3 ADD DUP4 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP8 AND SWAP3 DUP9 DUP3 AND SWAP3 SWAP2 DUP11 AND SWAP2 PUSH32 0x276856B36CBC45526A0BA64F44611557A2A8B68662C5388E9FE6D72E86E1C8CB SWAP2 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG4 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x51BF DUP7 DUP7 DUP7 DUP7 PUSH2 0x3EEF JUMP JUMPDEST PUSH2 0x51C8 DUP6 PUSH2 0x2125 JUMP JUMPDEST SWAP2 POP DUP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x18160DDD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x5208 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x521C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x5232 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 POP PUSH2 0x235A DUP3 DUP3 DUP8 PUSH2 0x3E8F JUMP JUMPDEST PUSH2 0x5249 PUSH2 0x53F1 JUMP JUMPDEST PUSH20 0x14484BFEEBC29F863424B06F3529A051A31BE599 DUP3 GT ISZERO PUSH2 0x529B JUMPI PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH13 0xC9F2C9CD04674EDEA40000000 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 DUP6 DIV DUP5 DUP2 ISZERO ISZERO PUSH2 0x5291 JUMPI INVALID JUMPDEST DIV SWAP1 MSTORE SWAP1 POP PUSH2 0x2BFE JUMP JUMPDEST PUSH13 0xC9F2C9CD04674EDEA40000000 DUP4 GT ISZERO PUSH2 0x52E8 JUMPI PUSH1 0x40 DUP1 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH13 0xC9F2C9CD04674EDEA40000000 DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH13 0xC9F2C9CD04674EDEA40000000 DUP6 MUL DUP2 ISZERO ISZERO PUSH2 0x5291 JUMPI INVALID JUMPDEST POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5308 PUSH2 0x53F1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5312 PUSH2 0x53F1 JUMP JUMPDEST PUSH2 0x531A PUSH2 0x53F1 JUMP JUMPDEST PUSH2 0x5322 PUSH2 0x397A JUMP JUMPDEST SWAP3 POP DUP3 PUSH1 0x11 SLOAD EQ ISZERO PUSH2 0x5350 JUMPI PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0xF SLOAD DUP2 MSTORE PUSH1 0x10 SLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 SWAP6 POP SWAP4 POP PUSH2 0x3298 JUMP JUMPDEST PUSH2 0x5358 PUSH2 0x4308 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0xF SLOAD DUP1 DUP3 MSTORE PUSH1 0x10 SLOAD PUSH1 0x20 DUP4 ADD MSTORE DUP3 MLOAD SWAP3 SWAP5 POP SWAP1 SWAP3 POP EQ DUP1 ISZERO PUSH2 0x538C JUMPI POP DUP1 PUSH1 0x20 ADD MLOAD DUP3 PUSH1 0x20 ADD MLOAD EQ JUMPDEST ISZERO PUSH2 0x539D JUMPI PUSH1 0x0 DUP3 SWAP5 POP SWAP5 POP PUSH2 0x3298 JUMP JUMPDEST DUP2 MLOAD PUSH1 0xF SSTORE PUSH1 0x20 DUP3 ADD MLOAD PUSH1 0x10 SSTORE PUSH1 0x11 DUP4 SWAP1 SSTORE PUSH2 0x53B7 PUSH2 0x3994 JUMP JUMPDEST POP PUSH1 0x1 SWAP5 SWAP1 SWAP4 POP SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xA0 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE SWAP2 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x60 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 SWAP1 PUSH1 0x20 DUP3 MUL DUP1 CODESIZE DUP4 CODECOPY POP SWAP2 SWAP3 SWAP2 POP POP JUMP STOP MSTORE8 PUSH16 0x7672796E53776170436F6E7665727465 PUSH19 0x55706772616465720000000000000000000000 STOP STOP STOP STOP STOP STOP 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee 0xee GASLIMIT MSTORE MSTORE 0x5f COINBASE NUMBER NUMBER GASLIMIT MSTORE8 MSTORE8 0x5f DIFFICULTY GASLIMIT 0x4e 0x49 GASLIMIT DIFFICULTY STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP GASLIMIT MSTORE MSTORE 0x5f 0x49 0x4e JUMP COINBASE 0x4c 0x49 DIFFICULTY 0x5f MSTORE GASLIMIT MSTORE8 GASLIMIT MSTORE JUMP GASLIMIT 0x5f NUMBER 0x4f SSTORE 0x4e SLOAD STOP STOP STOP STOP STOP STOP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 0xa8 0xe9 0xb9 0xbc 0xc5 0xf6 NUMBER SIGNEXTEND 0xca CALLVALUE 0x5d MSIZE DUP9 0xd4 RETURNDATASIZE 0xcc 0x2b 0xb8 DUP2 0xc5 0xef BYTE SWAP12 0x4e 0xeb PUSH15 0xD4019EA859C8002900000000000000 ", - "sourceMap": "101:1297:37:-;;;;;;;;;-1:-1:-1;;;101:1297:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;7097:29:4;;:8;:29;;:35;;;;;;;7089:67;;;;;;;-1:-1:-1;;;;;7089:67:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;101:1297:37;8537:211:25;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;8537:211:25;-1:-1:-1;;;;;8537:211:25;;;;;;;;;;;;;;;;;;;;;3280:206:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3280:206:60;;;;;;;1168:38:25;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1168:38:25;;;;;;;;-1:-1:-1;;;;;1168:38:25;;;;;;;;;;;;;;2354:42;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2354:42:25;;;;;;;;;;;;;;;;;;;;;;2700:30:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2700:30:4;;;;;;;;;;;;;;;;;;;;;;;18973:244;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;18973:244:4;-1:-1:-1;;;;;18973:244:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;703:538:37;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;703:538:37;;;;;;;;;;;;;;;;;5167:2660:25;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;5167:2660:25;-1:-1:-1;;;;;5167:2660:25;;;;;;;;;;;;;;;14417:102:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14417:102:4;;;;10614:103:25;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10614:103:25;;;;19274:125:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;19274:125:4;;;;;13732:152;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;13732:152:4;-1:-1:-1;;;;;13732:152:4;;;;;19798:206;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;19798:206:4;-1:-1:-1;;;;;19798:206:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18669:110;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;18669:110:4;-1:-1:-1;;;;;18669:110:4;;;;;4154:118:25;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4154:118:25;;;;1074:31;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1074:31:25;;;;8949:279;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;8949:279:25;-1:-1:-1;;;;;8949:279:25;;;;;11288:610;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;11288:610:25;-1:-1:-1;;;;;11288:610:25;;;;;1250:38:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1250:38:60;;;;18836:80:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18836:80:4;;;;10292:155;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;10292:155:4;-1:-1:-1;;;;;10292:155:4;;;;;;;;;;;;620:80:37;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;620:80:37;;;;;3902:81:25;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3902:81:25;;;;;;;;;;;;;;;;;;;;;;;10110:273;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;10110:273:25;;;;;;;2080:832:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2080:832:60;;;;8691:132:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;8691:132:4;-1:-1:-1;;;;;8691:132:4;;;;;2221:35;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2221:35:4;;;;20067:3341:25;;-1:-1:-1;;;;;20067:3341:25;;;;;;;;;10925:141;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;10925:141:25;-1:-1:-1;;;;;10925:141:25;;;;;2993:31:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2993:31:4;;;;1244:152:37;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1244:152:37;-1:-1:-1;;;;;1244:152:37;;;;;;;;;11282:601:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;11282:601:4;-1:-1:-1;;;;;11282:601:4;;;;;;;;;;;;1165:37:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1165:37:60;;;;9368:137:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;9368:137:4;-1:-1:-1;;;;;9368:137:4;;;;;26408:839:25;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;26408:839:25;-1:-1:-1;;;;;26408:839:25;;;;;;;7669:465:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;7669:465:4;-1:-1:-1;;;;;7669:465:4;;;;;8041:300:25;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;8041:300:25;;;;;12233:253;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;12233:253:25;-1:-1:-1;;;;;12233:253:25;;;;;;;;;19456:94:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19456:94:4;;;;1159:176:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1159:176:66;;;;1085:33:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1085:33:60;;;;157:20:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;157:20:66;;;;2818:34:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2818:34:4;;;;2294:53:25;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2294:53:25;-1:-1:-1;;;;;2294:53:25;;;;;12584:101:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12584:101:4;;;;1866:29:25;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1866:29:25;;;;13954:1880;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;13954:1880:25;-1:-1:-1;;;;;13954:1880:25;;;;;;;;;;;;2974:119:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2974:119:60;;;;3095:46:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3095:46:4;;;;9510:248:25;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;9510:248:25;-1:-1:-1;;;;;9510:248:25;;;;;;;1999:38;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1999:38:25;;;;2322:37:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2322:37:4;;;;2090:197:9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2090:197:9;;;;2445:34:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2445:34:4;;;;;170:26:37;;8:9:-1;5:2;;;30:1;27;20:12;5:2;170:26:37;;;;8282:71:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8282:71:4;;;;2260:30;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2260:30:4;;;;180:23:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;180:23:66;;;;12079:317:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12079:317:4;;;;4423:105:25;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4423:105:25;;;;;;;;;;;;;;;;;;;;;;;2566:43:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2566:43:4;-1:-1:-1;;;;;2566:43:4;;;;;19607:134;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;19607:134:4;-1:-1:-1;;;;;19607:134:4;;;;;12748:168:25;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12748:168:25;;;;1268:40;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1268:40:25;;;;14111:155:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;14111:155:4;-1:-1:-1;;;;;14111:155:4;;;;;23766:2230:25;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;23766:2230:25;-1:-1:-1;;;;;23766:2230:25;;;;;;;;;2405:39;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2405:39:25;;;;15044:649:4;;-1:-1:-1;;;;;15044:649:4;;;;;;;;;;;;;;;;;;;;;;;13075:444:25;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13075:444:25;;;;10618:240:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;10618:240:4;;;;;;;380:135:37;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;380:135:37;;;;;945:140:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;945:140:66;-1:-1:-1;;;;;945:140:66;;;;;2112:34:25;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2112:34:25;;;;18535:77:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18535:77:4;;;;8537:211:25;8679:7;8646:13;6115:23:4;6129:8;6115:13;:23::i;:::-;-1:-1:-1;;;;;;;8711:29:25;;;;;:14;:29;;;;;;;8537:211::o;3280:206:60:-;575:12:66;:10;:12::i;:::-;3426:26:60;:56;;;;;;;-1:-1:-1;;3426:56:60;;;;;;;;;3280:206::o;1168:38:25:-;;;-1:-1:-1;;;;;1168:38:25;;:::o;2354:42::-;;;;;;:::o;2700:30:4:-;;;;;;:::o;18973:244::-;19042:7;19054:6;19065:4;19074;19083;19097:22;;:::i;:::-;-1:-1:-1;;;;;;;;;19122:18:4;;;;;;;;:8;:18;;;;;;;;19097:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;19122:18:4;;-1:-1:-1;19122:18:4;;19097:43;18973:244::o;703:538:37:-;997:7;1020:217;1051:21;1078:23;1107:21;1134:23;1163:19;1188:21;1215:17;1020:25;:217::i;:::-;1010:227;703:538;-1:-1:-1;;;;;;;;703:538:37:o;5167:2660:25:-;5740:26;6492:51;7161:35;7251:29;7329:31;5818:11:4;:9;:11::i;:::-;575:12:66;:10;:12::i;:::-;5384:20:25;6115:23:4;6129:8;6115:13;:23::i;:::-;5423:21:25;782:18:72;791:8;782;:18::i;:::-;5463:23:25;782:18:72;791:8;782;:18::i;:::-;5510:21:25;475:23:72;489:8;475:13;:23::i;:::-;5555::25;475::72;489:8;475:13;:23::i;:::-;5642:6:25;;:14;;;;;;;;5668:4;;-1:-1:-1;;;;;5642:6:25;;:12;;:14;;;;;;;;;;;;;;:6;;:14;;;5:2:-1;;;;30:1;27;20:12;5:2;5642:14:25;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5642:14:25;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5642:14:25;-1:-1:-1;;;;;5642:31:25;;5634:64;;;;;-1:-1:-1;;;;;5634:64:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;5780:37;5790:26;5780:9;:37::i;:::-;5740:78;;5837:15;-1:-1:-1;;;;;5837:29:25;;5867:21;5837:52;;;;;-1:-1:-1;;;5837:52:25;;;;;;;-1:-1:-1;;;;;5837:52:25;-1:-1:-1;;;;;5837:52:25;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5837:52:25;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5837:52:25;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5837:52:25;5829:83;;;;;;;-1:-1:-1;;;;;5829:83:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;5931:15;-1:-1:-1;;;;;5931:29:25;;5961:23;5931:54;;;;;-1:-1:-1;;;5931:54:25;;;;;;;-1:-1:-1;;;;;5931:54:25;-1:-1:-1;;;;;5931:54:25;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5931:54:25;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5931:54:25;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5931:54:25;5923:85;;;;;;;-1:-1:-1;;;;;5923:85:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;6096:18;:16;:18::i;:::-;6183:19;:42;;-1:-1:-1;;;;;;6183:42:25;-1:-1:-1;;;;;6183:42:25;;;;;6264:13;:16;;-1:-1:-1;;6264:16:25;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6240:40:25;;;6264:16;;6240:40;6236:168;;;6319:13;:16;;6333:1;;6319:16;;;;;;;;;;;;;;;;6295:21;:40;;-1:-1:-1;;;;;;6295:40:25;-1:-1:-1;;;;;6319:16:25;;;6295:40;;;;;;6236:168;;;6388:13;:16;;6402:1;;6388:16;;;;;;;;;;;;;;;;6364:21;:40;;-1:-1:-1;;;;;;6364:40:25;-1:-1:-1;;;;;6388:16:25;;;6364:40;;;;;;6236:168;6615:28;6625:17;6615:9;:28::i;:::-;-1:-1:-1;;;;;6597:63:25;;6661:15;:13;:15::i;:::-;6597:80;;;;;-1:-1:-1;;;6597:80:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6597:80:25;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6597:80:25;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6597:80:25;;;;;;;;;;;;;;;;6492:186;;6703:13;-1:-1:-1;;;;;6703:31:25;;6735:20;6757:21;;;;;;;;;-1:-1:-1;;;;;6757:21:25;6780;6803:23;6703:124;;;;;-1:-1:-1;;;6703:124:25;;;;;;;-1:-1:-1;;;;;6703:124:25;-1:-1:-1;;;;;6703:124:25;;;;;;-1:-1:-1;;;;;6703:124:25;-1:-1:-1;;;;;6703:124:25;;;;;;-1:-1:-1;;;;;6703:124:25;-1:-1:-1;;;;;6703:124:25;;;;;;-1:-1:-1;;;;;6703:124:25;-1:-1:-1;;;;;6703:124:25;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6703:124:25;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6703:124:25;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6703:124:25;6689:11;:138;;;;;-1:-1:-1;;;;;6689:138:25;;;;;;;;;;;;;6900:19;;6921:21;;6877:66;;;;;;6900:19;;;6877:66;;;;6921:21;;;6877:66;;;;;;:11;;;;;;;;:22;;:66;;;;;;;;;;;;-1:-1:-1;6877:11:25;:66;;;5:2:-1;;;;30:1;27;20:12;5:2;6877:66:25;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6877:66:25;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6877:66:25;;;;;;;6858:15;6840:103;;;6841:13;6840:103;;;6954:18;:34;;;;;;7027:6;:4;:6::i;:::-;7001:23;:32;7220:19;;7199:41;;-1:-1:-1;;;;;7220:19:25;7199:20;:41::i;:::-;7298:19;;7161:79;;-1:-1:-1;7283:35:25;;-1:-1:-1;;;;;7298:19:25;7283:14;:35::i;:::-;7378:21;;7251:67;;-1:-1:-1;7363:37:25;;-1:-1:-1;;;;;7378:21:25;7363:14;:37::i;:::-;7329:71;;7448:21;7417:27;:52;7413:348;;;7520:1;7490:27;:31;:62;;;;7551:1;7525:23;:27;7490:62;7486:114;;;7573:11;:9;:11::i;:::-;7413:348;;;7660:1;7630:27;:31;:60;;;;;7689:1;7665:21;:25;7630:60;:91;;;;;7720:1;7694:23;:27;7630:91;7626:135;;;7738:11;:9;:11::i;:::-;7806:6;;7814:4;;-1:-1:-1;;;;;7806:6:25;7789:15;:13;:15::i;:::-;7778:41;;;;;;;;;;;;502:1:72;804;;6142::4;591::66;5167:2660:25;;;;;;;;:::o;14417:102:4:-;-1:-1:-1;;;;;;;;;;;14463:4:4;14480:29;:8;:29;;:35;;;;;;;;14417:102::o;10614:103:25:-;575:12:66;:10;:12::i;:::-;10678:23:25;:31;;-1:-1:-1;;10678:31:25;;;10614:103::o;19274:125:4:-;19336:11;19360:27;19388:6;19360:35;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;19360:35:4;;19274:125;-1:-1:-1;;19274:125:4:o;13732:152::-;13831:6;13807:13;6115:23;6129:8;6115:13;:23::i;:::-;-1:-1:-1;;;;;;;13850:23:4;;;;;:8;:23;;;;;:30;;;;;;13732:152::o;19798:206::-;19916:7;19925;19945:55;19964:12;19978;19992:7;19945:18;:55::i;:::-;19938:62;;;;19798:206;;;;;;:::o;18669:110::-;575:12:66;:10;:12::i;:::-;18741:34:4;18765:9;18741:23;:34::i;:::-;18669:110;:::o;4154:118:25:-;4195:4;4219:16;:14;:16::i;:::-;:45;;;;-1:-1:-1;4239:11:25;;;;;-1:-1:-1;;;;;4239:11:25;:25;;4219:45;4212:52;;4154:118;:::o;1074:31::-;;;;;;-1:-1:-1;;;;;1074:31:25;;:::o;8949:279::-;9094:7;9061:13;6115:23:4;6129:8;6115:13;:23::i;:::-;9126:94:25;9190:29;9205:13;9190:14;:29::i;:::-;-1:-1:-1;;;;;9126:29:25;;;;;;:14;:29;;;;;;:59;;9160:24;9126:59;:33;:59;:::i;:::-;:63;:94;:63;:94;:::i;:::-;9119:101;8949:279;-1:-1:-1;;;8949:279:25:o;11288:610::-;11359:7;11417:23;11578:24;11648:15;11705:21;11443:10;-1:-1:-1;;;;;11443:22:25;;:24;;;;;-1:-1:-1;;;11443:24:25;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11443:24:25;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11443:24:25;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11443:24:25;-1:-1:-1;;;;;11605:32:25;;;;;;;:20;11443:24;11605:32;;;;;11443:24;;-1:-1:-1;11605:32:25;;-1:-1:-1;11666:28:25;11605:32;11666:14;:28::i;:::-;-1:-1:-1;;;;;11729:28:25;;;;;;:14;:28;;;;;;11648:46;;-1:-1:-1;11729:28:25;-1:-1:-1;11843:47:25;11729:28;11843;11648:46;11855:15;11843:28;:11;:28;:::i;:::-;:32;:47;:32;:47;:::i;:::-;11836:54;11288:610;-1:-1:-1;;;;;;11288:610:25:o;1250:38:60:-;;;;;;;;;:::o;18836:80:4:-;575:12:66;:10;:12::i;:::-;18889:23:4;:21;:23::i;:::-;18836:80::o;10292:155::-;575:12:66;:10;:12::i;:::-;10400:6:4;;:43;;;;;;-1:-1:-1;;;;;10400:43:4;;;;;;;;;;;;;;;;;;;;;;:6;;;;;:21;;:43;;;;;:6;;:43;;;;;;;:6;;:43;;;5:2:-1;;;;30:1;27;20:12;5:2;10400:43:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10400:43:4;;;;10292:155;;;:::o;620:80:37:-;670:11;:26;620:80::o;3902:81:25:-;3974:1;3902:81;:::o;10110:273::-;575:12:66;:10;:12::i;:::-;10276:25:25;10238:17;:35;10256:13;10270:1;10256:16;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10256:16:25;10238:35;;;;;;;;;;;;:63;;;;10330:13;:16;;10350:25;;10312:17;;10256:16;;;;10330;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10330:16:25;10312:35;;;;;;;;;;;;:63;-1:-1:-1;;10110:273:25:o;2080:832:60:-;2281:29;2183:5;;-1:-1:-1;;;;;2183:5:60;2169:10;:19;;:50;;-1:-1:-1;2193:26:60;;;;;;;2192:27;2169:50;2161:80;;;;;;;-1:-1:-1;;;;;2161:80:60;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2161:80:60;;;;;;;;;;;;;;;2331:28;2341:17;2331:9;:28::i;:::-;2465:8;;2281:79;;-1:-1:-1;;;;;;2442:32:60;;;2465:8;;2442:32;;;;:61;;-1:-1:-1;;;;;;2478:25:60;;;;2442:61;2434:94;;;;;;;-1:-1:-1;;;;;2434:94:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;2628:40;;;;;;2650:17;2628:40;;;;;;2680:1;;-1:-1:-1;;;;;2628:21:60;;;;;:40;;;;;;;;;;;;;;;2680:1;2628:21;:40;;;5:2:-1;;;;30:1;27;20:12;5:2;2628:40:60;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2628:40:60;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2628:40:60;-1:-1:-1;;;;;2628:54:60;;;2620:87;;;;;-1:-1:-1;;;;;2620:87:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;2799:8;;;2784:12;:23;;-1:-1:-1;;;;;2799:8:60;;;-1:-1:-1;;;;;;2784:23:60;;;;;;;2886:22;;;;;;;;;;;2080:832::o;8691:132:4:-;575:12:66;:10;:12::i;:::-;8771:10:4;782:18:72;791:8;782;:18::i;:::-;-1:-1:-1;8787:19:4;:32;;-1:-1:-1;;;;;;8787:32:4;-1:-1:-1;;;;;8787:32:4;;;;;;;;;;8691:132::o;2221:35::-;2254:2;2221:35;:::o;20067:3341:25:-;20347:7;21027:28;21493;21570:23;22271;565:12:68;:10;:12::i;:::-;287:1;581:5;:14;5606:9:4;:7;:9::i;:::-;20243:13:25;6115:23:4;6129:8;6115:13;:23::i;:::-;20283:7:25;180:24:72;197:6;180:16;:24::i;:::-;20317:10:25;180:24:72;197:6;180:16;:24::i;:::-;-1:-1:-1;;;;;20482:36:25;;-1:-1:-1;;;;;;;;;;;20482:36:25;:76;;20544:9;:14;20482:76;;;20534:7;20521:9;:20;20482:76;20474:112;;;;;;;-1:-1:-1;;;;;20474:112:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;20650:21;:19;:21::i;:::-;-1:-1:-1;;;;;20794:36:25;;-1:-1:-1;;;;;;;;;;;20794:36:25;20790:147;;;-1:-1:-1;;;;;;;;;;;20885:29:25;;:8;:29;;;:37;:52;;20927:9;20885:52;:41;:52;:::i;:::-;-1:-1:-1;;;;;;;;;;;20845:29:25;;:8;:29;;;:92;20790:147;-1:-1:-1;;;;;21058:29:25;;;;;;:14;:29;;;;;;21202:23;;21058:29;;-1:-1:-1;21202:23:25;;21198:209;;;-1:-1:-1;;;;;21250:32:25;;;;;;:17;:32;;;;;;:37;;:110;;-1:-1:-1;;;;;;21328:32:25;;;;;;:17;:32;;;;;;21291:33;:20;21316:7;21291:33;:24;:33;:::i;:::-;:69;;21250:110;21242:153;;;;;;;-1:-1:-1;;;;;21242:153:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;21524:35:25;;;;;;;:20;:35;;;;;;;;;21596:30;;;;;;;21524:35;;;-1:-1:-1;21524:35:25;;21596:28;;:30;;;;;21524:35;21596:30;;;;;;;21524:35;21596:30;;;5:2:-1;;;;30:1;27;20:12;5:2;21596:30:25;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;21596:30:25;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;21596:30:25;;-1:-1:-1;;;;;;21721:36:25;;-1:-1:-1;;;;;;;;;;;21721:36:25;21717:113;;21772:58;21789:13;21804:10;21816:4;21822:7;21772:16;:58::i;:::-;-1:-1:-1;;;;;21931:23:25;;;;;;:8;:23;;;;;:31;:44;;21967:7;21931:44;:35;:44;:::i;:::-;-1:-1:-1;;;;;21897:23:25;;;;;;:8;:23;;;;;:78;22018:33;:20;22043:7;22018:33;:24;:33;:::i;:::-;-1:-1:-1;;;;;21986:29:25;;;;;;:14;:29;;;;;:65;;;;:29;-1:-1:-1;22313:25:25;;;:49;;-1:-1:-1;22342:20:25;;22313:49;22309:194;;;22395:7;22377:25;;22309:194;;;22449:54;22482:20;22449:28;:7;22461:15;22449:28;:11;:28;:::i;:54::-;22431:72;;22309:194;22522:29;;;;22514:60;;;;;-1:-1:-1;;;;;22514:60:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;22655:6;;22634:80;;;;;;-1:-1:-1;;;;;22634:80:25;;;;;;;22686:10;22634:80;;;;;;;;;;;;22655:6;;;;;22634:33;;:80;;;;;22655:6;;22634:80;;;;;;;22655:6;;22634:80;;;5:2:-1;;;;30:1;27;20:12;5:2;22634:80:25;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;22634:80:25;;;;22776:11;:9;:11::i;:::-;-1:-1:-1;;;;;22851:123:25;;22866:10;22851:123;22893:7;22902:33;:20;22893:7;22902:33;:24;:33;:::i;:::-;22937:36;:15;22957;22937:36;:19;:36;:::i;:::-;22851:123;;;;;;;;;;;;;;;;;;;;;;;;;;23055:103;23088:16;23106:36;:15;23126;23106:36;:19;:36;:::i;:::-;23144:13;23055:32;:103::i;:::-;23243:70;23272:13;23286:1;23272:16;;;;;;;;;;;;;;;;;;;;23290:13;:16;;-1:-1:-1;;;;;23272:16:25;;;;;;23290;;;;;;;;;;;;;;;-1:-1:-1;;;;;23290:16:25;;;23243:28;:70::i;:::-;-1:-1:-1;;249:1:68;604:5;:16;-1:-1:-1;23385:15:25;20067:3341;-1:-1:-1;;;;;;;20067:3341:25:o;10925:141::-;-1:-1:-1;;;;;11023:35:25;;;10992:11;11023:35;;;:20;:35;;;;;;;;10925:141::o;2993:31:4:-;;;;;;;;;:::o;1244:152:37:-;1333:13;6115:23:4;6129:8;6115:13;:23::i;:::-;-1:-1:-1;;;;;;1352:23:37;;;;;;;;:8;:23;;;;;:30;;:40;;-1:-1:-1;;1352:40:37;;;;;;;;;;;1244:152::o;11282:601:4:-;11396:25;565:12:68;:10;:12::i;:::-;287:1;581:5;:14;575:12:66;:10;:12::i;:::-;11424:29:4;-1:-1:-1;;;;;;;;;;;11424:9:4;:29::i;:::-;-1:-1:-1;;;;;11622:16:4;;;;;;:8;:16;;;;;:22;;;11396:57;;-1:-1:-1;11622:22:4;;;;;11621:23;;:38;;;11649:10;:8;:10::i;:::-;11648:11;11621:38;:68;;;-1:-1:-1;11663:5:4;;-1:-1:-1;;;;;11663:26:4;;;:5;;:26;11621:68;11613:98;;;;;;;-1:-1:-1;;;;;11613:98:4;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;11613:98:4;;;;;;;;;;;;;;;11715:42;11736:6;11744:3;11749:7;11715:20;:42::i;:::-;-1:-1:-1;;;;;11829:16:4;;;;;;:8;:16;;;;;:22;;;;;;;;11825:54;;;11853:26;11872:6;11853:18;:26::i;:::-;-1:-1:-1;;249:1:68;604:5;:16;-1:-1:-1;;11282:601:4:o;1165:37:60:-;;;-1:-1:-1;;;;;1165:37:60;;:::o;9368:137:4:-;575:12:66;:10;:12::i;:::-;-1:-1:-1;;;;;;;;;;;1510:20:60;1516:13;1510:5;:20::i;:::-;9466:6:4;;:35;;;;;;-1:-1:-1;;;;;9466:35:4;;;;;;;;;:6;;;;;:24;;:35;;;;;:6;;:35;;;;;;;:6;;:35;;;5:2:-1;;;;30:1;27;20:12;5:2;9466:35:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9466:35:4;;;;591:1:66;9368:137:4;:::o;26408:839:25:-;26534:7;26543;26568:19;26625:21;26752:9;26840;26912:11;26925;26978:23;27062:22;26590:10;-1:-1:-1;;;;;26590:22:25;;:24;;;;;-1:-1:-1;;;26590:24:25;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;26590:24:25;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;26590:24:25;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;26590:24:25;-1:-1:-1;;;;;26664:32:25;;;26649:48;26664:32;;;:20;26590:24;26664:32;;;;;;;;;;;26649:48;;:14;:48;;;;26590:24;;-1:-1:-1;26649:48:25;-1:-1:-1;26714:21:25;;;26710:494;;;26779:19;;-1:-1:-1;;;;;26779:19:25;26764:35;;;;:14;:35;;;;;;:61;;765:2;26764:61;:39;:61;:::i;:::-;26876:19;;26752:73;;-1:-1:-1;26852:44:25;;-1:-1:-1;;;;;26876:19:25;26852:23;:44::i;:::-;26840:56;;26944:1;26940;:5;:23;;26958:1;26961;26940:23;;;26949:1;26952;26940:23;26911:52;;-1:-1:-1;26911:52:25;-1:-1:-1;27004:43:25;27035:11;27004:26;:7;27016:13;27004:26;:11;:26;:::i;:43::-;26978:69;-1:-1:-1;27087:33:25;27116:3;27087:24;26978:69;27107:3;27087:24;:19;:24;:::i;:33::-;27062:58;-1:-1:-1;;27159:32:25;;;;-1:-1:-1;27062:58:25;27135:57;;26710:494;27222:13;;-1:-1:-1;27237:1:25;;-1:-1:-1;27222:13:25;;26408:839;;;;;;;;;;;;;;:::o;7669:465:4:-;7781:25;565:12:68;:10;:12::i;:::-;287:1;581:5;:14;575:12:66;:10;:12::i;:::-;-1:-1:-1;;;;;;;;;;;6115:23:4;6129:8;6115:13;:23::i;:::-;7809:29;-1:-1:-1;;;;;;;;;;;7809:9:4;:29::i;:::-;7781:57;;7938:10;:8;:10::i;:::-;7937:11;:41;;;-1:-1:-1;7952:5:4;;-1:-1:-1;;;;;7952:26:4;;;:5;;:26;7937:41;7929:71;;;;;;;-1:-1:-1;;;;;7929:71:4;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;7929:71:4;;;;;;;;;;;;;;;8004:35;;-1:-1:-1;;;;;8004:12:4;;;8025:4;8017:21;8004:35;;;;;;;;;8017:21;8004:12;:35;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8004:35:4;8078:52;-1:-1:-1;;;;;;;;;;;8078:18:4;:52::i;:::-;-1:-1:-1;;249:1:68;604:5;:16;-1:-1:-1;7669:465:4:o;8041:300:25:-;575:12:66;:10;:12::i;:::-;889:6:25;8133:43;;;8125:86;;;;;-1:-1:-1;;;;;8125:86:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;8250:16;;8227:59;;;;;;;;;;;;;;;;;;;;;;;;8297:16;:36;8041:300::o;12233:253::-;12403:1;12381:19;:17;:19::i;:::-;:23;;;12373:61;;;;;-1:-1:-1;;;;;12373:61:25;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;12373:61:25;;;;;;;;;;;;;;;12445:33;12462:6;12470:7;12445:16;:33::i;:::-;12233:253;;:::o;19456:94:4:-;19508:6;19527:19;:17;:19::i;1159:176:66:-;1219:8;;-1:-1:-1;;;;;1219:8:66;1205:10;:22;1197:52;;;;;-1:-1:-1;;;;;1197:52:66;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1197:52:66;;;;;;;;;;;;;;;1277:8;;;1270:5;;1258:28;;-1:-1:-1;;;;;1277:8:66;;;;1270:5;;;;1258:28;;;1298:8;;;;1290:16;;-1:-1:-1;;;;;;1290:16:66;;;-1:-1:-1;;;;;1298:8:66;;1290:16;;;;1310:21;;;1159:176::o;1085:33:60:-;;;-1:-1:-1;;;;;1085:33:60;;:::o;157:20:66:-;;;-1:-1:-1;;;;;157:20:66;;:::o;2818:34:4:-;;;;;;;;;:::o;2294:53:25:-;;;;;;;;;;;;;:::o;12584:101:4:-;12660:13;:20;12584:101;:::o;1866:29:25:-;;;;;;:::o;13954:1880::-;14115:7;14124;14522:24;14557;14721:20;;:::i;:::-;15092:27;15121:29;15650:20;15674:11;5606:9:4;:7;:9::i;:::-;14272:27:25;14286:12;14272:13;:27::i;:::-;14310;14324:12;14310:13;:27::i;:::-;-1:-1:-1;;;;;14356:28:25;;;;;;;;14348:63;;;;;-1:-1:-1;;;;;14348:63:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;14783:6;:4;:6::i;:::-;14756:23;;:33;14752:791;;;14813:13;14806:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;14861:8;:22;14870:12;-1:-1:-1;;;;;14861:22:25;-1:-1:-1;;;;;14861:22:25;;;;;;;;;;;;:29;;;;;;;;;;;;14841:49;;14925:8;:22;14934:12;-1:-1:-1;;;;;14925:22:25;-1:-1:-1;;;;;14925:22:25;;;;;;;;;;;;:29;;;;;;;;;;;;14905:49;;14752:791;;;15054:22;:20;:22::i;:::-;15047:29;;15154;15178:4;15154:23;:29::i;:::-;15220:19;;15091:92;;-1:-1:-1;15091:92:25;-1:-1:-1;;;;;;15204:35:25;;;15220:19;;15204:35;15200:332;;;15280:20;15260:40;;15339:22;15319:42;;15200:332;;;15435:22;15415:42;;15496:20;15476:40;;15200:332;15689:100;15709:12;15723;15737:17;15756;15775:4;15781:7;15689:19;:100::i;:::-;15649:140;;;;-1:-1:-1;13954:1880:25;;-1:-1:-1;;;;;;;;;;;;13954:1880:25:o;2974:119:60:-;575:12:66;:10;:12::i;:::-;3077::60;;3066:8;:23;;-1:-1:-1;;;;;;3066:23:60;-1:-1:-1;;;;;3077:12:60;;;3066:23;;;;;;2974:119::o;3095:46:4:-;3137:4;3095:46;:::o;9510:248:25:-;575:12:66;:10;:12::i;:::-;-1:-1:-1;;;;;;;;;;;1510:20:60;1516:13;1510:5;:20::i;:::-;9679:13:25;6115:23:4;6129:8;6115:13;:23::i;:::-;-1:-1:-1;;;;;;;9710:29:25;;;;;;;:14;:29;;;;;:40;9510:248::o;1999:38::-;;;;:::o;2322:37:4:-;;;-1:-1:-1;;;;;2322:37:4;;:::o;2090:197:9:-;2219:1;2197:19;:17;:19::i;:::-;:23;;;2189:61;;;;;-1:-1:-1;;;;;2189:61:9;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2189:61:9;;;;;;;;;;;;;;;2254:29;:27;:29::i;2445:34:4:-;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2445:34:4;;-1:-1:-1;2445:34:4;:::o;170:26:37:-;;;;:::o;8282:71:4:-;8345:4;8282:71;:::o;2260:30::-;;;-1:-1:-1;;;;;2260:30:4;;:::o;180:23:66:-;;;-1:-1:-1;;;;;180:23:66;;:::o;12079:317:4:-;12119:36;575:12:66;:10;:12::i;:::-;12177:29:4;-1:-1:-1;;;;;;;;;;;12177:9:4;:29::i;:::-;12278:6;;12119:88;;-1:-1:-1;12286:5:4;;-1:-1:-1;;;;;12278:6:4;12261:15;:13;:15::i;:::-;12250:42;;;;;;;;;;;;12297:36;12315:17;12297;:36::i;:::-;12337:34;;;;;;2254:2;12337:34;;;;;;-1:-1:-1;;;;;12337:25:4;;;;;:34;;;;;-1:-1:-1;;12337:34:4;;;;;;;-1:-1:-1;12337:25:4;:34;;;5:2:-1;;;;30:1;27;20:12;5:2;12337:34:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12337:34:4;;;;12375:17;:15;:17::i;4423:105:25:-;765:2;4423:105;:::o;2566:43:4:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;19607:134::-;19686:7;19706:31;19721:15;19706:14;:31::i;:::-;19699:38;19607:134;-1:-1:-1;;19607:134:4:o;12748:168:25:-;12800:7;12809;12829:20;;:::i;:::-;12852:22;:20;:22::i;:::-;12893:6;;12901;;;;;12893;;12901;;-1:-1:-1;12748:168:25;-1:-1:-1;;12748:168:25:o;1268:40::-;;;-1:-1:-1;;;;;1268:40:25;;:::o;14111:155:4:-;14211:7;14187:13;6115:23;6129:8;6115:13;:23::i;:::-;-1:-1:-1;;;;;;;14231:23:4;;;;;:8;:23;;;;;:31;;14111:155::o;23766:2230:25:-;24028:7;24211:25;24353:21;24575:24;24915;25370:26;565:12:68;:10;:12::i;:::-;287:1;581:5;:14;5606:9:4;:7;:9::i;:::-;23927:10:25;3498:25;3514:8;3498:15;:25::i;:::-;23964:7;180:24:72;197:6;180:16;:24::i;:::-;23998:10:25;180:24:72;197:6;180:16;:24::i;:::-;24104:21:25;:19;:21::i;:::-;24239:10;-1:-1:-1;;;;;24239:22:25;;:24;;;;;-1:-1:-1;;;24239:24:25;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;24239:24:25;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;24239:24:25;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;24239:24:25;;-1:-1:-1;24380:48:25;24408:10;24420:7;24380:27;:48::i;:::-;-1:-1:-1;24352:76:25;-1:-1:-1;24447:27:25;;;;24439:58;;;;;-1:-1:-1;;;;;24439:58:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;24602:20;:32;24623:10;-1:-1:-1;;;;;24602:32:25;-1:-1:-1;;;;;24602:32:25;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;24602:32:25;24575:59;;24710:6;;;;;;;;;-1:-1:-1;;;;;24710:6:25;-1:-1:-1;;;;;24689:33:25;;24723:10;24735;24747:7;24689:66;;;;;-1:-1:-1;;;24689:66:25;;;;;;;-1:-1:-1;;;;;24689:66:25;-1:-1:-1;;;;;24689:66:25;;;;;;-1:-1:-1;;;;;24689:66:25;-1:-1:-1;;;;;24689:66:25;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;24689:66:25;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;;;;;;;24855:22:25;;;;;;:8;:22;;;;;:30;:49;;-1:-1:-1;24890:13:25;24855:49;:34;:49;:::i;:::-;-1:-1:-1;;;;;24822:22:25;;;;;;:8;:22;;;;;;;;:82;;;;24942:14;:28;;;;:47;;24975:13;24942:47;:32;:47;:::i;:::-;-1:-1:-1;;;;;25000:28:25;;;;;;:14;:28;;;;;:47;;;24915:74;;-1:-1:-1;;;;;;;;;;;;25118:35:25;25114:170;;;25168:34;;:10;;:34;;;;;25188:13;;25168:34;;;;25188:13;25168:10;:34;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;25168:34:25;25114:170;;;25231:53;25244:12;25258:10;25270:13;25231:12;:53::i;:::-;25346:11;:9;:11::i;:::-;25399:30;:17;25421:7;25399:30;:21;:30;:::i;:::-;25495:95;;;;;;;;;;;;;;;;;;;;25370:59;;-1:-1:-1;;;;;;25495:95:25;;;25512:10;;25495:95;;;;;;;;;;25671:78;25704:10;25716:18;25736:12;25671:32;:78::i;:::-;25834:70;25863:13;25877:1;25863:16;;;;;;;;;25834:70;-1:-1:-1;;249:1:68;604:5;:16;-1:-1:-1;25975:13:25;;23766:2230;-1:-1:-1;;;;;;;;23766:2230:25:o;2405:39::-;;;;:::o;15044:649:4:-;15241:7;565:12:68;:10;:12::i;:::-;287:1;581:5;:14;15212:18:4;1510:20:60;15212:18:4;1510:5:60;:20::i;:::-;-1:-1:-1;;;;;15282:28:4;;;;;;;;15274:63;;;;;-1:-1:-1;;;;;15274:63:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;15446:19;;-1:-1:-1;;;;;15446:19:4;:33;;:132;;-1:-1:-1;15484:19:4;;:42;;;;;;-1:-1:-1;;;;;15484:42:4;;;;;;;;;:19;;;;;:33;;:42;;;;;;;;;;;;;;:19;;:42;;;5:2:-1;;;;30:1;27;20:12;5:2;15484:42:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15484:42:4;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;15484:42:4;:93;;;;-1:-1:-1;15530:19:4;;:47;;;;;;-1:-1:-1;;;;;15530:47:4;;;;;;;;;:19;;;;;:33;;:47;;;;;;;;;;;;;;:19;;:47;;;5:2:-1;;;;30:1;27;20:12;5:2;15530:47:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15530:47:4;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;15530:47:4;15484:93;15434:174;;;;;;;-1:-1:-1;;;;;15434:174:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;15620:69;15630:12;15644;15658:7;15667;15676:12;15620:9;:69::i;:::-;249:1:68;604:5;:16;15613:76:4;15044:649;-1:-1:-1;;;;;;;15044:649:4:o;13075:444:25:-;13131:7;13140;13160:20;;:::i;:::-;13217:27;13246:29;13183:22;:20;:22::i;:::-;13160:45;;13279:29;13303:4;13279:23;:29::i;:::-;13216:92;;;;13348:13;13362:1;13348:16;;;;;;;;;;;;;;;;;;;;13325:19;;-1:-1:-1;;;;;13325:19:25;;;13348:16;;13325:39;13321:125;;;13381:53;;;;;-1:-1:-1;13381:53:25;;;-1:-1:-1;13381:53:25;;13321:125;13458:53;;;;;-1:-1:-1;13458:53:25;;;-1:-1:-1;13075:444:25;;;;;;:::o;10618:240:4:-;575:12:66;:10;:12::i;:::-;10714:16:4;;;;;;;;;10696:34;;;;;10688:73;;;;;-1:-1:-1;;;;;10688:73:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;10790:13;;10770:50;;;10790:13;;;;;;;10770:50;;;;;;;;;;;;;;;;;;;;;10824:13;:30;;;;;;;;-1:-1:-1;;10824:30:4;;;;;;;;;10618:240::o;380:135:37:-;461:23;:50;380:135::o;945:140:66:-;575:12;:10;:12::i;:::-;1033:5;;-1:-1:-1;;;;;1020:18:66;;;1033:5;;1020:18;;1012:45;;;;;-1:-1:-1;;;;;1012:45:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;1061:8;:20;;-1:-1:-1;;;;;;1061:20:66;-1:-1:-1;;;;;1061:20:66;;;;;;;;;;945:140::o;2112:34:25:-;;;;;;:::o;18535:77:4:-;18602:6;;-1:-1:-1;;;;;18602:6:4;18535:77;:::o;6193:123::-;-1:-1:-1;;;;;6264:18:4;;;;;;:8;:18;;;;;:24;;;;;;;;6256:56;;;;;;;-1:-1:-1;;;;;6256:56:4;;;;;;;;;;;;;;;;;;;;;;;;;;;642:93:66;704:5;;-1:-1:-1;;;;;704:5:66;690:10;:19;682:49;;;;;-1:-1:-1;;;;;682:49:66;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;682:49:66;;;;;;;;;;;;;;31642:708:25;32006:7;;;32043:75;32094:23;32043:46;:21;32069:19;32043:46;:25;:46;:::i;:::-;:50;:75;:50;:75;:::i;:::-;32031:87;-1:-1:-1;32141:77:25;32196:21;32141:50;:23;32169:21;32141:50;:27;:50;:::i;:77::-;32129:89;;32237:1;32233;:5;32229:94;;;32260:63;32321:1;32260:56;765:2;32260:30;32261:5;;;32272:17;32260:30;:11;:30;:::i;:63::-;32253:70;;;;32229:94;32341:1;32334:8;;31642:708;;;;;;;;;;;;:::o;5884:77:4:-;5932:10;:8;:10::i;:::-;5931:11;5923:34;;;;;-1:-1:-1;;;;;5923:34:4;;;;;;;;;;;;;;;;;;;;;;;;;;;855:115:72;-1:-1:-1;;;;;917:25:72;;937:4;917:25;;909:57;;;;;-1:-1:-1;;;;;909:57:72;;;;;;;;;;;;;;;;;;;;;;;;;;;553:117;-1:-1:-1;;;;;620:22:72;;;;612:54;;;;;-1:-1:-1;;;;;612:54:72;;;;;;;;;;;;;;;;;;;;;;;;;;;3647:122:60;3732:8;;:33;;;;;;;;;;;;;;3712:7;;-1:-1:-1;;;;;3732:8:60;;:18;;:33;;;;;;;;;;;;;;3712:7;3732:8;:33;;;5:2:-1;;;;30:1;27;20:12;5:2;3732:33:60;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3732:33:60;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3732:33:60;;3647:122;-1:-1:-1;;3647:122:60:o;32598:806:25:-;32646:30;32718:31;32785:17;32840:20;32899:9;32952:28;32700:6;;;;;;;;;-1:-1:-1;;;;;32700:6:25;32646:61;;32752:9;-1:-1:-1;;;;;32752:20:25;;:22;;;;;-1:-1:-1;;;32752:22:25;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;32752:22:25;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;32752:22:25;;;;;;39:16:-1;36:1;17:17;2:54;101:4;32752:22:25;80:15:-1;;;-1:-1;;76:31;65:43;;120:4;113:20;13:2;5:11;;2:2;;;29:1;26;19:12;2:2;32752:22:25;;;;;;20:11:-1;15:3;12:20;9:2;;;45:1;42;35:12;9:2;64:21;;126:4;117:14;;142:31;;;139:2;;;186:1;183;176:12;139:2;224:3;218:10;339:9;333:2;319:12;315:21;297:16;293:44;290:59;268:11;254:12;251:29;239:119;236:2;;;371:1;368;361:12;236:2;-1:-1;;32805:17:25;;32863:13;:20;32752:22;;-1:-1:-1;32805:22:25;;-1:-1:-1;32863:20:25;-1:-1:-1;32826:1:25;;-1:-1:-1;;;;32894:503:25;32918:12;32914:1;:16;32894:503;;;32999:12;32995:181;;;33051:9;-1:-1:-1;;;;;33051:21:25;;:23;;;;;-1:-1:-1;;;33051:23:25;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;33051:23:25;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;33051:23:25;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;33051:23:25;;-1:-1:-1;32995:181:25;;;33147:10;33158:1;33147:13;;;;;;;;;;;;;;;;;;33128:32;;32995:181;33297:16;33256:20;:38;33277:13;33291:1;33277:16;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;33277:16:25;;;33256:38;;;;;;;;;;;;;;;:57;;-1:-1:-1;;;;;;33256:57:25;;;;;;;;;;;33369:13;:16;;33383:1;;33369:16;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;33328:38:25;;;;;:20;:38;;;;;;;:57;;-1:-1:-1;;;;;;33328:57:25;33369:16;;;;33328:57;;;33369:16;32932:3;;;;;32894:503;;518:99:37;557:7;577:11;;592:1;577:16;;:36;;610:3;577:36;;;-1:-1:-1;596:11:37;;;518:99::o;36624:394:25:-;36767:38;;;;;;;;;36791:13;36767:38;;;;;;;;;36705:27;;;;36767:38;;:23;:38::i;:::-;36886:19;;-1:-1:-1;;;;;36886:19:25;;;36877:29;;;;:8;:29;;;;;;36886:19;36877:36;;;:59;;;;;;-1:-1:-1;;36877:59:25;;;;;;;36956:21;;;;;36947:31;;;;:38;:63;;;;;;;;;;;-1:-1:-1;;36624:394:25:o;8967:93:4:-;9008:4;9051;-1:-1:-1;;;;;9025:31:4;:6;;;;;;;;;-1:-1:-1;;;;;9025:6:4;-1:-1:-1;;;;;9025:12:4;;:14;;;;;-1:-1:-1;;;9025:14:4;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9025:14:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9025:14:4;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9025:14:4;-1:-1:-1;;;;;9025:31:4;;;-1:-1:-1;8967:93:4;:::o;924:197:69:-;984:7;;1023;;1019:21;;;1039:1;1032:8;;;;1019:21;-1:-1:-1;1057:7:69;;;1062:2;1057;:7;1076:6;;;;;;;;:12;1068:37;;;;;-1:-1:-1;;;;;1068:37:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;1116:1;1109:8;;924:197;;;;;;:::o;288:144::-;348:7;373;;;392;;;;384:32;;;;;-1:-1:-1;;;;;384:32:69;;;;;;;;;;;;;;;;;;;;;;;;;;;1307:149;1367:7;;1388:6;;;1380:37;;;;;-1:-1:-1;;;;;1380:37:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;1438:2;1433;:7;;;;;;;;;1307:149;-1:-1:-1;;;;1307:149:69:o;670:88:68:-;718:5;;249:1;718:17;710:44;;;;;-1:-1:-1;;;;;710:44:68;;;;;;;;;;;;;;;;;;;;;;;;;;;5670:76:4;5715:10;:8;:10::i;:::-;5707:35;;;;;;;-1:-1:-1;;;;;5707:35:4;;;;;;;;;;;;;;;;;;;;;;;;;;;259:101:72;336:1;327:10;;319:37;;;;;-1:-1:-1;;;;;319:37:72;;;;;;;;;;;;;;;;;;;;;;;;;;;17223:174:4;17290:13;:20;17267;17314:79;17338:12;17334:1;:16;17314:79;;;17357:36;17376:13;17390:1;17376:16;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;17376:16:4;17357:18;:36::i;:::-;17352:3;;17314:79;;613:129:69;673:7;694:8;;;;686:34;;;;;-1:-1:-1;;;;;686:34:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;731:7:69;;;613:129::o;1740:206:70:-;351:50;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1870:71:70;;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;1870:71:70;;;;;;;25:18:-1;;61:17;;1870:71:70;182:15:-1;-1:-1;;1870:71:70;;;179:29:-1;;;;160:49;;;1854:88:70;;1862:6;;1854:7;:88::i;:::-;1740:206;;;;:::o;41528:242:25:-;-1:-1:-1;;;;;41671:91:25;;;41714:29;;;;:14;:29;;;;;;;;;;41671:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;41528:242;;;:::o;40837:344::-;41025:20;;:::i;:::-;41048:58;41059:7;41068;41077:13;41092;41048:10;:58::i;:::-;41158:6;;41166;;;;;41124:49;;;;;;;;;;;;41025:81;;-1:-1:-1;;;;;;41124:49:25;;;;;;;;;;;;;;;;;40837:344;;;;;:::o;1077:194:71:-;575:12:66;:10;:12::i;:::-;1190:6:71;475:23:72;489:8;475:13;:23::i;:::-;1211:3:71;475:23:72;489:8;475:13;:23::i;:::-;1224:3:71;782:18:72;791:8;782;:18::i;:::-;1233:34:71;1246:6;1254:3;1259:7;1233:12;:34::i;16898:269:4:-;16975:13;6115:23;6129:8;6115:13;:23::i;:::-;-1:-1:-1;;;;;16998:36:4;;-1:-1:-1;;;;;;;;;;;16998:36:4;16994:169;;;-1:-1:-1;;;;;17036:23:4;;;;;;:8;:23;;;;;17078:4;17070:21;17036:55;;16994:169;;;17134:29;;;;;;17158:4;17134:29;;;;;;-1:-1:-1;;;;;17134:23:4;;;;;:29;;;;;;;;;;;;;;-1:-1:-1;17134:23:4;:29;;;5:2:-1;;;;30:1;27;20:12;5:2;17134:29:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17134:29:4;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;17134:29:4;-1:-1:-1;;;;;17100:23:4;;;;;;:8;17134:29;17100:23;;;;:63;16898:269;;:::o;1585:128:60:-;1663:24;1673:13;1663:9;:24::i;:::-;-1:-1:-1;;;;;1649:38:60;:10;:38;1641:68;;;;;-1:-1:-1;;;;;1641:68:60;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1641:68:60;;;;;;;;;;;;;;12940:623:4;13373:26;575:12:66;:10;:12::i;:::-;5818:11:4;:9;:11::i;:::-;13043:6;475:23:72;489:8;475:13;:23::i;:::-;13061:6:4;782:18:72;791:8;782;:18::i;:::-;13090:7:4;6729:28;6749:7;6729:19;:28::i;:::-;13150:6;;-1:-1:-1;;;;;13132:25:4;;;13150:6;;13132:25;;;;:52;;-1:-1:-1;;;;;;13162:16:4;;;;;;:8;:16;;;;;:22;;;;;;;;13161:23;13132:52;13124:84;;;;;;;-1:-1:-1;;;;;13124:84:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;13251:12;;;;;;1763:7;13231:32;13220:43;;;;;;;13212:82;;;;;-1:-1:-1;;;;;13212:82:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;13306:32;:19;:17;:19::i;:::-;:32;;;13298:70;;;;;-1:-1:-1;;;;;13298:70:4;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;13298:70:4;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;13402:16:4;;;;;;;:8;:16;;;;;13422:22;;;13448:17;;;;:27;;-1:-1:-1;;13448:27:4;;;;-1:-1:-1;;13448:27:4;;;;13479:23;;;;;;;;;13506:13;27:10:-1;;23:18;;;45:23;;13506:26:4;;;;;;;;;-1:-1:-1;;;;;;13506:26:4;;;;;;;13536:12;:23;;;;;;;;;;;;;;;;;;;-1:-1:-1;12940:623:4:o;33532:1842:25:-;33586:8;;:::i;:::-;33670:21;33693;33716:18;34132:19;34872;;:::i;:::-;34918:20;;:::i;:::-;33738:11;;33774:19;;33795:21;;33738:79;;;;;;-1:-1:-1;;;;;33774:19:25;;;33738:79;;;;33795:21;;;33738:79;;;;;-1:-1:-1;;;;;;;;33738:11:25;;;;;;;;:35;;:79;;;;;;;;;;;;;;;-1:-1:-1;33738:11:25;:79;;;5:2:-1;;;;30:1;27;20:12;5:2;33738:79:25;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;33738:79:25;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;33738:79:25;;;;;;;;;;;33936:23;;33738:79;;-1:-1:-1;33738:79:25;;-1:-1:-1;33738:79:25;;-1:-1:-1;33923:36:25;;33919:124;;;33983:48;;;;;;;;;33997:13;33983:48;;;;34015:13;33983:48;;;33976:55;;;;33919:124;34163:23;;34154:6;:4;:6::i;:::-;:32;;-1:-1:-1;34289:16:25;;34285:69;;;34322:20;;;;;;;;;34329:13;34322:20;;;;;;;;;;-1:-1:-1;34322:20:25;;34285:69;1847:10;34696:38;;34692:96;;34751:25;;;;;;;;;34758:18;34751:25;;;;;;;;;;-1:-1:-1;34751:25:25;;34692:96;34872:35;;;;;;;;34894:13;34872:35;;;;;;;;;;;;34918:41;;;;;;;;34941:18;34918:41;;;;;;;;;;;;;34984:5;;34872:35;;-1:-1:-1;34918:41:25;;-1:-1:-1;34984:17:25;;;:9;:17;:::i;:::-;35034:6;;;;35024:5;;34972:29;;-1:-1:-1;35024:17:25;;:5;:17;:9;:17;:::i;:::-;35012:29;-1:-1:-1;35172:68:25;35221:18;:1;35227:11;35221:18;:5;:18;:::i;:::-;35172:44;:1;1847:10;35178:37;;;35172:44;:5;:44;:::i;:68::-;35153:87;;35270:46;1847:10;35270:17;35280:4;:6;;;35270:3;:5;;;:9;;:17;;;;:::i;:46::-;35251:65;;35336:30;35347:8;35357;35336:10;:30::i;:::-;35329:37;;33532:1842;;;;;;;;;;;;:::o;37322:725::-;37524:19;;-1:-1:-1;;;;;37524:19:25;37400:6;37509:35;;;:14;:35;;;;;;37400:6;;;;37509:35;37400:6;;;;37628:44;;:23;:44::i;:::-;37734:21;;37603:69;;-1:-1:-1;37710:46:25;;-1:-1:-1;;;;;37734:21:25;37710:23;:46::i;:::-;37683:73;;37827:29;37837:18;37827:9;:29::i;:::-;-1:-1:-1;;;;;37808:65:25;;37888:46;:20;765:2;37888:46;:24;:46;:::i;:::-;38009:7;;38031;;;;37808:231;;;-1:-1:-1;;;37808:231:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;38009:7;37808:231;;;;5:2:-1;;;;30:1;27;20:12;5:2;37808:231:25;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;37808:231:25;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;37808:231:25;;;;;;;;;-1:-1:-1;37808:231:25;-1:-1:-1;37322:725:25;;;;;;:::o;28106:1360::-;28375:20;;;;;28458:18;;;;28454:82;;;-1:-1:-1;;;;;28507:22:25;;;;;;:8;:22;;;;;:29;;;;;;-1:-1:-1;28454:82:25;28551:18;;;;28547:82;;;-1:-1:-1;;;;;28600:22:25;;;;;;:8;:22;;;;;:29;;;;;;-1:-1:-1;28547:82:25;28712:37;28736:12;28712:23;:37::i;:::-;28688:61;;28784:37;28808:12;28784:23;:37::i;:::-;28760:61;;28902:29;28912:18;28902:9;:29::i;:::-;28883:219;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;28883:74:25;;;;;;;:219;;;;;;;;;;;;;;;-1:-1:-1;28883:74:25;:219;;;5:2:-1;;;;30:1;27;20:12;5:2;28883:219:25;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;28883:219:25;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;28883:219:25;;-1:-1:-1;29253:26:25;28883:219;29253:12;:26::i;:::-;29239:40;;29303:101;29392:11;29303:84;29323:12;29337:13;29352;29367:5;29374:12;29303:19;:84::i;:101::-;29290:114;-1:-1:-1;29430:28:25;:12;29290:114;29430:28;:16;:28;:::i;:::-;29415:43;;28106:1360;;;;;;;;;;;;:::o;9796:227:4:-;575:12:66;:10;:12::i;:::-;9935:1:4;9913:19;:17;:19::i;:::-;:23;;;9905:61;;;;;-1:-1:-1;;;;;9905:61:4;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;9905:61:4;;;;;;;;;;;;;;;9970:6;;;;;;;;;-1:-1:-1;;;;;9970:6:4;-1:-1:-1;;;;;9970:22:4;;:24;;;;;-1:-1:-1;;;9970:24:4;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9970:24:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9970:24:4;;;;9998:21;:19;:21::i;3598:159:25:-;-1:-1:-1;;;;;3678:30:25;;;3720:1;3678:30;;;:20;:30;;;;;;;:44;;3670:79;;;;;-1:-1:-1;;;;;3670:79:25;;;;;;;;;;;;;;;;;;;;;;;;;;;1214:173:70;248:38;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1323:59:70;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;1323:59:70;;;;;;;;25:18:-1;;61:17;;1323:59:70;182:15:-1;-1:-1;;1323:59:70;;;179:29:-1;;;;160:49;;;1307:76:70;;1315:6;;1307:7;:76::i;:::-;1214:173;;;:::o;16421:1097:25:-;16672:7;16768:14;16784:11;5606:9:4;:7;:9::i;:::-;16604:12:25;6115:23:4;6129:8;6115:13;:23::i;:::-;16640:12:25;6115:23:4;6129:8;6115:13;:23::i;:::-;16799:46:25;16809:12;16823;16837:7;16799:9;:46::i;:::-;16767:78;;-1:-1:-1;16767:78:25;-1:-1:-1;;;;;;16932:35:25;;-1:-1:-1;;;;;;;;;;;16932:35:25;16928:187;;;16984:29;;-1:-1:-1;;;;;16984:21:25;;;:29;;;;;17006:6;;16984:29;;;;17006:6;16984:21;:29;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16984:29:25;16928:187;;;17055:48;17068:12;17082;17096:6;17055:12;:48::i;:::-;17169:82;17193:12;17207;17221:7;17230;17239:6;17247:3;17169:23;:82::i;:::-;-1:-1:-1;;;;;17375:22:25;;;;;;;:8;:22;;;;;;:29;;;;;17406:22;;;;;;;:29;;17328:108;;17347:12;;17361;;17375:29;;;;;17406;17328:18;:108::i;:::-;-1:-1:-1;17504:6:25;;16421:1097;-1:-1:-1;;;;;;;;16421:1097:25:o;2255:557:70:-;2324:21;;:::i;:::-;:36;;;;;;;;;2357:1;2324:36;;;;;2687:2;2661:3;2580:5;2574:12;2495:2;2488:5;2484:14;2465:1;2430:6;2404:3;2394:317;2725:7;2718:15;2715:2;;;2750:1;2747;2740:12;2715:2;-1:-1:-1;2773:6:70;;:11;;2765:43;;;;;-1:-1:-1;;;;;2765:43:70;;;;;;;;;;;;;;;;;;;;;;;;;;;38511:674:25;38639:8;;:::i;:::-;38710:21;38777;38734:32;38758:7;38734:23;:32::i;:::-;38710:56;;38801:32;38825:7;38801:23;:32::i;:::-;38777:56;-1:-1:-1;38882:18:25;;;;38878:91;;;-1:-1:-1;;;;;38933:17:25;;;;;;:8;:17;;;;;:24;;;;;;-1:-1:-1;38878:91:25;38985:18;;;;38981:91;;;-1:-1:-1;;;;;39036:17:25;;;;;;:8;:17;;;;;:24;;;;;;-1:-1:-1;38981:91:25;39091:86;;;;;;;;;;39105:32;:13;:32;;;;;:17;:32;:::i;:::-;39091:86;;;;39142:32;:13;:32;;;;;:17;:32;:::i;:::-;39091:86;;39084:93;38511:674;-1:-1:-1;;;;;;;38511:674:25:o;6812:149:4:-;6893:1;6883:7;:11;;;:43;;;;-1:-1:-1;1763:7:4;6898:28;;;;;6883:43;6875:82;;;;;;;-1:-1:-1;;;;;6875:82:4;;;;;;;;;;;;;;;;;;;;;;;;;;;42226:280:25;42293:8;;:::i;:::-;42402:20;;:::i;:::-;42325:8;;;42321:69;;42357:21;42371:2;42375;42357:13;:21::i;:::-;42350:28;;;;42321:69;42425:21;42439:2;42443;42425:13;:21::i;:::-;42464:34;;;;;;;;;42478:6;;;;;42464:34;;42489:6;;42464:34;;;;;-1:-1:-1;42402:44:25;-1:-1:-1;42226:280:25;;;;;:::o;16577:155:4:-;16683:13;;16645:7;;16665:63;;1826:7;;16665:32;;:13;;16683;;;16665:63;16683:13;;;;16665:17;:32;:::i;29926:1050:25:-;30218:21;;30149:7;;;;-1:-1:-1;;;;;30202:37:25;;;30218:21;;30202:37;30198:698;;;30321:19;;-1:-1:-1;;;;;30321:19:25;;;30306:35;;;;:14;:35;;;;;;;;;30375:21;;;;;30360:37;;;;;;30480:7;;30506;;;;30532:16;;30262:287;;30306:35;30262:287;;;;;;;;;:25;:287::i;:::-;30256:293;;30198:698;;;30656:19;;-1:-1:-1;;;;;30656:19:25;;;30641:35;;;;:14;:35;;;;;;;;;30710:21;;;;;30695:37;;;;;;30815:7;;30841;;;;30867:16;;30597:287;;30641:35;30597:287;;;;;;;;;:25;:287::i;:::-;30591:293;;30198:698;30915:53;1826:7:4;30915:22:25;:13;30933:3;30915:17;:22::i;:53::-;30908:60;29926:1050;-1:-1:-1;;;;;;;29926:1050:25:o;17987:1687::-;18092:7;18101;18215:16;18233:20;;:::i;:::-;18337:14;18353:19;18374:18;18664:28;18257:18;:16;:18::i;:::-;18214:61;;;;18396:68;18416:12;18430;18444:1;18447;18450:4;18456:7;18396:19;:68::i;:::-;18336:128;;-1:-1:-1;18336:128:25;-1:-1:-1;18336:128:25;-1:-1:-1;18545:11:25;;;18537:46;;;;;-1:-1:-1;;;;;18537:46:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;18695:28;18710:12;18695:14;:28::i;:::-;18664:59;-1:-1:-1;18742:29:25;;;18734:68;;;;;-1:-1:-1;;;;;18734:68:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;18882:35:25;;-1:-1:-1;;;;;;;;;;;18882:35:25;18878:261;;;18940:9;:20;;18932:56;;;;;-1:-1:-1;;;;;18932:56:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;18878:261;;;19025:9;:14;:91;;;;;19109:7;19043:62;19076:28;19091:12;19076:14;:28::i;:::-;19043:12;-1:-1:-1;;;;;19043:22:25;;19066:4;19043:28;;;;;-1:-1:-1;;;19043:28:25;;;;;;;-1:-1:-1;;;;;19043:28:25;-1:-1:-1;;;;;19043:28:25;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19043:28:25;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;19043:28:25;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;19043:28:25;;:62;:32;:62;:::i;:::-;:73;;19025:91;19017:122;;;;;;;-1:-1:-1;;;;;19017:122:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;19190:32;19209:12;19190:18;:32::i;:::-;19266;:20;19291:6;19266:32;:24;:32;:::i;:::-;-1:-1:-1;;;;;19233:22:25;;;;;;:8;:22;;;;;;;;:65;;;;19400:14;:28;;;;:45;;19433:11;19400:45;:32;:45;:::i;:::-;-1:-1:-1;;;;;19369:28:25;;;;;;:14;:28;;;;;:76;19502:125;;;;19566:19;;19587:21;;19555:60;;-1:-1:-1;;;;;19566:19:25;;;;19587:21;19566:19;;19555:10;:60::i;:::-;19534:81;;:18;:81;;;;;;19502:125;-1:-1:-1;19647:6:25;;19655:10;;-1:-1:-1;17987:1687:25;;-1:-1:-1;;;;;;;17987:1687:25:o;17773:656:4:-;18318:6;18305:19;;18298:27;;;;18334:91;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;18334:91:4;;;;;;;;;;;;;;;;;;;;;17773:656;;;;;;:::o;39657:702:25:-;40129:27;40193:29;39800:86;39829:12;39843;39857:13;39872;39800:28;:86::i;:::-;40159:23;40169:12;40159:9;:23::i;:::-;40129:53;;40225:15;-1:-1:-1;;;;;40225:27:25;;:29;;;;;-1:-1:-1;;;40225:29:25;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;40225:29:25;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;40225:29:25;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;40225:29:25;;-1:-1:-1;40265:86:25;40298:15;40225:29;40338:12;40265:32;:86::i;42632:595::-;42706:8;;:::i;:::-;42040:41;42738:34;;42734:213;;;42796:139;;;;;;;;;41974:4;42796:139;;;;;;;42884:4;:34;42876:4;:43;;;;;;;;42796:139;;42789:146;-1:-1:-1;42789:146:25;;42734:213;41974:4;42963;:34;42959:211;;;43021:137;;;;;;;;;41974:4;43021:137;;;;43138:4;41974;43101;:34;:41;;;;;;42959:211;-1:-1:-1;43189:30:25;;;;;;;;;;;;;;;;;42632:595::o;35662:782::-;35707:4;35713:8;;:::i;:::-;35741:19;36021:23;;:::i;:::-;36152:19;;:::i;:::-;35763:6;:4;:6::i;:::-;35741:28;;35874:11;35847:23;;:38;35843:100;;;35902:29;;;;;;;;;35917:13;35902:29;;;;;;;;;35910:5;;-1:-1:-1;35902:29:25;-1:-1:-1;35902:29:25;;35843:100;36047:22;:20;:22::i;:::-;36152:35;;;;;;;;;36174:13;36152:35;;;;;;;;;;36202:9;;36021:48;;-1:-1:-1;36152:35:25;;-1:-1:-1;36202:18:25;:40;;;;;36237:3;:5;;;36224:7;:9;;;:18;36202:40;36198:96;;;36267:5;36274:7;36259:23;;;;;;36198:96;36306:23;;:13;:23;;;;;;;36340;:37;;;36390:11;:9;:11::i;:::-;-1:-1:-1;36422:4:25;;36428:7;;-1:-1:-1;35662:782:25;-1:-1:-1;;35662:782:25:o;101:1297:37:-;;;;;;;;;-1:-1:-1;101:1297:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;101:1297:37;;;;;;;;:::o;:::-;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;-1:-1;101:1297:37;;;-1:-1:-1;;101:1297:37:o" - }, - "methodIdentifiers": { - "acceptAnchorOwnership()": "cdc91c69", - "acceptOwnership()": "79ba5097", - "acceptTokenOwnership()": "38a5e016", - "activate(address,address,address)": "119b90cd", - "addLiquidity(address,uint256,uint256)": "55776b77", - "addReserve(address,uint32)": "6a49d2c4", - "amplificationFactor()": "d64c5a1a", - "anchor()": "d3fb73b4", - "calculateFeeToEquilibriumTest(uint256,uint256,uint256,uint256,uint256,uint256,uint256)": "0f0fb407", - "connectorTokenCount()": "71f52bf3", - "connectorTokens(uint256)": "19b64015", - "connectors(address)": "0e53aae9", - "conversionFee()": "579cd3ca", - "conversionWhitelist()": "c45d3d92", - "conversionsEnabled()": "bf754558", - "convert(address,address,uint256,address,address)": "e8dc12ff", - "converterType()": "3e8ff43f", - "currentTime()": "d18e81b3", - "disableMaxStakedBalances()": "16912f96", - "dynamicFeeFactor()": "e8104af9", - "effectiveReserveWeights()": "ec2240f5", - "effectiveTokensRate()": "db2830a4", - "getConnectorBalance(address)": "d8959512", - "getReturn(address,address,uint256)": "1e1401f8", - "hasETHReserve()": "12c2aca4", - "isActive()": "22f3e2d4", - "isV28OrHigher()": "d260529c", - "lastConversionRate()": "f9cddde2", - "liquidationLimit(address)": "2bf0c985", - "maxConversionFee()": "94c275ad", - "maxStakedBalanceEnabled()": "0a55fb3d", - "maxStakedBalances(address)": "98a71dcb", - "newOwner()": "d4ee1d90", - "onlyOwnerCanUpdateRegistry()": "2fe8a6ad", - "owner()": "8da5cb5b", - "poolToken(address)": "5768adcf", - "prevRegistry()": "61cd756e", - "priceOracle()": "2630c12f", - "primaryReserveToken()": "0337e3fb", - "referenceRate()": "a32bff44", - "referenceRateUpdateTime()": "c3321fb0", - "registry()": "7b103999", - "removeLiquidity(address,uint256,uint256)": "e38192e3", - "removeLiquidityReturnAndFee(address,uint256)": "69067d95", - "reserveAmplifiedBalance(address)": "2bd3c107", - "reserveBalance(address)": "dc8de379", - "reserveRatio()": "0c7d5cd8", - "reserveStakedBalance(address)": "005e319c", - "reserveTokenCount()": "9b99a8e2", - "reserveTokens(uint256)": "d031370b", - "reserveWeight(address)": "1cfab290", - "reserves(address)": "d66bd524", - "restoreRegistry()": "b4a176d3", - "restrictRegistryUpdate(bool)": "024c7ec7", - "secondaryReserveToken()": "dc75eb9a", - "setConversionFee(uint32)": "ecbca55d", - "setConversionWhitelist(address)": "4af80f0e", - "setDynamicFeeFactor(uint256)": "69d1354a", - "setMaxStakedBalances(uint256,uint256)": "46749468", - "setReferenceRateUpdateTime(uint256)": "f1ff40d9", - "setReserveStakedBalance(address,uint256)": "bf7da6ba", - "setReserveWeight(address,uint32)": "59cd4eec", - "setTime(uint256)": "3beb26c4", - "targetAmountAndFee(address,address,uint256)": "af94b8d8", - "token()": "fc0c546a", - "transferAnchorOwnership(address)": "67b6d57c", - "transferOwnership(address)": "f2fde38b", - "transferTokenOwnership(address)": "21e6b53d", - "updateRegistry()": "49d10b64", - "upgrade()": "d55ec697", - "version()": "54fd4d50", - "withdrawETH(address)": "690d8320", - "withdrawFromAnchor(address,address,uint256)": "395900d4", - "withdrawTokens(address,address,uint256)": "5e35359e" - } - }, - "userdoc": { - "methods": {} - } - } - }, - "solidity/contracts/helpers/TestReentrancyGuard.sol": { - "TestReentrancyGuard": { - "abi": [ - { - "constant": false, - "inputs": [], - "name": "protectedMethod", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "calls", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "unprotectedMethod", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - } - ], - "devdoc": { - "methods": {} - }, - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "608060405260016000556101ea806100186000396000f3006080604052600436106100565763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416632d4d800c811461005b578063305f72b714610072578063f86485d914610099575b600080fd5b34801561006757600080fd5b506100706100ae565b005b34801561007e57600080fd5b506100876100ca565b60408051918252519081900360200190f35b3480156100a557600080fd5b506100706100d0565b6100b66100da565b60026000556100c361014b565b6001600055565b60015481565b6100d861014b565b565b6000546001146100d857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f4552525f5245454e5452414e4359000000000000000000000000000000000000604482015290519081900360640190fd5b6001805481019055604080517f083b27320000000000000000000000000000000000000000000000000000000081529051339163083b273291600480830192600092919082900301818387803b1580156101a457600080fd5b505af11580156101b8573d6000803e3d6000fd5b505050505600a165627a7a7230582013b9bbc507902321b050b016568c5eb7870008b8feb261f0645cc98075a4302e0029", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x1 PUSH1 0x0 SSTORE PUSH2 0x1EA DUP1 PUSH2 0x18 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x56 JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x2D4D800C DUP2 EQ PUSH2 0x5B JUMPI DUP1 PUSH4 0x305F72B7 EQ PUSH2 0x72 JUMPI DUP1 PUSH4 0xF86485D9 EQ PUSH2 0x99 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x67 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x70 PUSH2 0xAE JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x87 PUSH2 0xCA JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x70 PUSH2 0xD0 JUMP JUMPDEST PUSH2 0xB6 PUSH2 0xDA JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 SSTORE PUSH2 0xC3 PUSH2 0x14B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x0 SSTORE JUMP JUMPDEST PUSH1 0x1 SLOAD DUP2 JUMP JUMPDEST PUSH2 0xD8 PUSH2 0x14B JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 EQ PUSH2 0xD8 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5245454E5452414E4359000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD DUP2 ADD SWAP1 SSTORE PUSH1 0x40 DUP1 MLOAD PUSH32 0x83B273200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD CALLER SWAP2 PUSH4 0x83B2732 SWAP2 PUSH1 0x4 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1A4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1B8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 SGT 0xb9 0xbb 0xc5 SMOD SWAP1 0x23 0x21 0xb0 POP 0xb0 AND JUMP DUP13 0x5e 0xb7 DUP8 STOP ADDMOD 0xb8 INVALID 0xb2 PUSH2 0xF064 0x5c 0xc9 DUP1 PUSH22 0xA4302E00290000000000000000000000000000000000 ", - "sourceMap": "767:286:38:-;;;249:1:68;362:32;;767:286:38;;;;;;" - }, - "deployedBytecode": { - "linkReferences": {}, - "object": "6080604052600436106100565763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416632d4d800c811461005b578063305f72b714610072578063f86485d914610099575b600080fd5b34801561006757600080fd5b506100706100ae565b005b34801561007e57600080fd5b506100876100ca565b60408051918252519081900360200190f35b3480156100a557600080fd5b506100706100d0565b6100b66100da565b60026000556100c361014b565b6001600055565b60015481565b6100d861014b565b565b6000546001146100d857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f4552525f5245454e5452414e4359000000000000000000000000000000000000604482015290519081900360640190fd5b6001805481019055604080517f083b27320000000000000000000000000000000000000000000000000000000081529051339163083b273291600480830192600092919082900301818387803b1580156101a457600080fd5b505af11580156101b8573d6000803e3d6000fd5b505050505600a165627a7a7230582013b9bbc507902321b050b016568c5eb7870008b8feb261f0645cc98075a4302e0029", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x56 JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x2D4D800C DUP2 EQ PUSH2 0x5B JUMPI DUP1 PUSH4 0x305F72B7 EQ PUSH2 0x72 JUMPI DUP1 PUSH4 0xF86485D9 EQ PUSH2 0x99 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x67 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x70 PUSH2 0xAE JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x87 PUSH2 0xCA JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x70 PUSH2 0xD0 JUMP JUMPDEST PUSH2 0xB6 PUSH2 0xDA JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 SSTORE PUSH2 0xC3 PUSH2 0x14B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x0 SSTORE JUMP JUMPDEST PUSH1 0x1 SLOAD DUP2 JUMP JUMPDEST PUSH2 0xD8 PUSH2 0x14B JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 EQ PUSH2 0xD8 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5245454E5452414E4359000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD DUP2 ADD SWAP1 SSTORE PUSH1 0x40 DUP1 MLOAD PUSH32 0x83B273200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD CALLER SWAP2 PUSH4 0x83B2732 SWAP2 PUSH1 0x4 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1A4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1B8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 SGT 0xb9 0xbb 0xc5 SMOD SWAP1 0x23 0x21 0xb0 POP 0xb0 AND JUMP DUP13 0x5e 0xb7 DUP8 STOP ADDMOD 0xb8 INVALID 0xb2 PUSH2 0xF064 0x5c 0xc9 DUP1 PUSH22 0xA4302E00290000000000000000000000000000000000 ", - "sourceMap": "767:286:38:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;842:59;;8:9:-1;5:2;;;30:1;27;20:12;5:2;842:59:38;;;;;;818:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;818:20:38;;;;;;;;;;;;;;;;;;;;904:51;;8:9:-1;5:2;;;30:1;27;20:12;5:2;904:51:38;;;;842:59;565:12:68;:10;:12::i;:::-;287:1;581:5;:14;892:5:38;:3;:5::i;:::-;249:1:68;604:5;:16;842:59:38:o;818:20::-;;;;:::o;904:51::-;946:5;:3;:5::i;:::-;904:51::o;670:88:68:-;718:5;;249:1;718:17;710:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;958:93:38;985:5;:7;;;;;;997:50;;;;;;;;1025:10;;997:48;;:50;;;;;985:5;;997:50;;;;;;;985:5;1025:10;997:50;;;5:2:-1;;;;30:1;27;20:12;5:2;997:50:38;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;997:50:38;;;;958:93::o" - }, - "methodIdentifiers": { - "calls()": "305f72b7", - "protectedMethod()": "2d4d800c", - "unprotectedMethod()": "f86485d9" - } - }, - "userdoc": { - "methods": {} - } - }, - "TestReentrancyGuardAttacker": { - "abi": [ - { - "constant": false, - "inputs": [], - "name": "callback", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "callProtectedMethod", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_reentrancy", - "type": "bool" - } - ], - "name": "setReentrancy", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "attacking", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_callProtectedMethod", - "type": "bool" - } - ], - "name": "setCallProtectedMethod", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "run", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "target", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "reentrancy", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "name": "_target", - "type": "address" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor" - } - ], - "devdoc": { - "methods": {} - }, - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "608060405234801561001057600080fd5b506040516020806104e0833981016040525160008054600160a060020a03909216600160a060020a031990921691909117905561048e806100526000396000f30060806040526004361061008d5763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663083b2732811461009257806317846e39146100a9578063322d5010146100d25780633c0bbcd9146100ec57806399563f1014610101578063c04062261461011b578063d4b8399214610130578063e11f493e1461016e575b600080fd5b34801561009e57600080fd5b506100a7610183565b005b3480156100b557600080fd5b506100be610236565b604080519115158252519081900360200190f35b3480156100de57600080fd5b506100a76004351515610258565b3480156100f857600080fd5b506100be610298565b34801561010d57600080fd5b506100a760043515156102bb565b34801561012757600080fd5b506100a76102fd565b34801561013c57600080fd5b50610145610425565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b34801561017a57600080fd5b506100be610441565b60005474010000000000000000000000000000000000000000900460ff1615156101ac57610234565b600054760100000000000000000000000000000000000000000000900460ff161515610213576000805476ff0000000000000000000000000000000000000000000019167601000000000000000000000000000000000000000000001790556102136102fd565b6000805476ff00000000000000000000000000000000000000000000191690555b565b6000547501000000000000000000000000000000000000000000900460ff1681565b60008054911515740100000000000000000000000000000000000000000274ff000000000000000000000000000000000000000019909216919091179055565b600054760100000000000000000000000000000000000000000000900460ff1681565b6000805491151575010000000000000000000000000000000000000000000275ff00000000000000000000000000000000000000000019909216919091179055565b6000547501000000000000000000000000000000000000000000900460ff166103a45760008054604080517ff86485d9000000000000000000000000000000000000000000000000000000008152905173ffffffffffffffffffffffffffffffffffffffff9092169263f86485d99260048084019382900301818387803b15801561038757600080fd5b505af115801561039b573d6000803e3d6000fd5b50505050610234565b60008054604080517f2d4d800c000000000000000000000000000000000000000000000000000000008152905173ffffffffffffffffffffffffffffffffffffffff90921692632d4d800c9260048084019382900301818387803b15801561040b57600080fd5b505af115801561041f573d6000803e3d6000fd5b50505050565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b60005474010000000000000000000000000000000000000000900460ff16815600a165627a7a72305820b022b45b8f978904638fc84ce5d93340e43c79f95171ba5115ce816b25fb0e020029", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP1 PUSH2 0x4E0 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 MSTORE MLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x48E DUP1 PUSH2 0x52 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x8D JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x83B2732 DUP2 EQ PUSH2 0x92 JUMPI DUP1 PUSH4 0x17846E39 EQ PUSH2 0xA9 JUMPI DUP1 PUSH4 0x322D5010 EQ PUSH2 0xD2 JUMPI DUP1 PUSH4 0x3C0BBCD9 EQ PUSH2 0xEC JUMPI DUP1 PUSH4 0x99563F10 EQ PUSH2 0x101 JUMPI DUP1 PUSH4 0xC0406226 EQ PUSH2 0x11B JUMPI DUP1 PUSH4 0xD4B83992 EQ PUSH2 0x130 JUMPI DUP1 PUSH4 0xE11F493E EQ PUSH2 0x16E JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xA7 PUSH2 0x183 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xB5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xBE PUSH2 0x236 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xDE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xA7 PUSH1 0x4 CALLDATALOAD ISZERO ISZERO PUSH2 0x258 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xF8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xBE PUSH2 0x298 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x10D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xA7 PUSH1 0x4 CALLDATALOAD ISZERO ISZERO PUSH2 0x2BB JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x127 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xA7 PUSH2 0x2FD JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x13C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x145 PUSH2 0x425 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x17A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xBE PUSH2 0x441 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO PUSH2 0x1AC JUMPI PUSH2 0x234 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH23 0x100000000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO PUSH2 0x213 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH23 0xFF00000000000000000000000000000000000000000000 NOT AND PUSH23 0x100000000000000000000000000000000000000000000 OR SWAP1 SSTORE PUSH2 0x213 PUSH2 0x2FD JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH23 0xFF00000000000000000000000000000000000000000000 NOT AND SWAP1 SSTORE JUMPDEST JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH22 0x1000000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP2 ISZERO ISZERO PUSH21 0x10000000000000000000000000000000000000000 MUL PUSH21 0xFF0000000000000000000000000000000000000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH23 0x100000000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP2 ISZERO ISZERO PUSH22 0x1000000000000000000000000000000000000000000 MUL PUSH22 0xFF000000000000000000000000000000000000000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH22 0x1000000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x3A4 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xF86485D900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND SWAP3 PUSH4 0xF86485D9 SWAP3 PUSH1 0x4 DUP1 DUP5 ADD SWAP4 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x387 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x39B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x234 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x2D4D800C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND SWAP3 PUSH4 0x2D4D800C SWAP3 PUSH1 0x4 DUP1 DUP5 ADD SWAP4 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x40B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x41F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 0xb0 0x22 0xb4 JUMPDEST DUP16 SWAP8 DUP10 DIV PUSH4 0x8FC84CE5 0xd9 CALLER BLOCKHASH 0xe4 EXTCODECOPY PUSH26 0xF95171BA5115CE816B25FB0E0200290000000000000000000000 ", - "sourceMap": "66:699:38:-;;;226:72;8:9:-1;5:2;;;30:1;27;20:12;5:2;226:72:38;;;;;;;;;;;;;278:6;:16;;-1:-1:-1;;;;;278:16:38;;;-1:-1:-1;;;;;;278:16:38;;;;;;;;;66:699;;;;;;" - }, - "deployedBytecode": { - "linkReferences": {}, - "object": "60806040526004361061008d5763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663083b2732811461009257806317846e39146100a9578063322d5010146100d25780633c0bbcd9146100ec57806399563f1014610101578063c04062261461011b578063d4b8399214610130578063e11f493e1461016e575b600080fd5b34801561009e57600080fd5b506100a7610183565b005b3480156100b557600080fd5b506100be610236565b604080519115158252519081900360200190f35b3480156100de57600080fd5b506100a76004351515610258565b3480156100f857600080fd5b506100be610298565b34801561010d57600080fd5b506100a760043515156102bb565b34801561012757600080fd5b506100a76102fd565b34801561013c57600080fd5b50610145610425565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b34801561017a57600080fd5b506100be610441565b60005474010000000000000000000000000000000000000000900460ff1615156101ac57610234565b600054760100000000000000000000000000000000000000000000900460ff161515610213576000805476ff0000000000000000000000000000000000000000000019167601000000000000000000000000000000000000000000001790556102136102fd565b6000805476ff00000000000000000000000000000000000000000000191690555b565b6000547501000000000000000000000000000000000000000000900460ff1681565b60008054911515740100000000000000000000000000000000000000000274ff000000000000000000000000000000000000000019909216919091179055565b600054760100000000000000000000000000000000000000000000900460ff1681565b6000805491151575010000000000000000000000000000000000000000000275ff00000000000000000000000000000000000000000019909216919091179055565b6000547501000000000000000000000000000000000000000000900460ff166103a45760008054604080517ff86485d9000000000000000000000000000000000000000000000000000000008152905173ffffffffffffffffffffffffffffffffffffffff9092169263f86485d99260048084019382900301818387803b15801561038757600080fd5b505af115801561039b573d6000803e3d6000fd5b50505050610234565b60008054604080517f2d4d800c000000000000000000000000000000000000000000000000000000008152905173ffffffffffffffffffffffffffffffffffffffff90921692632d4d800c9260048084019382900301818387803b15801561040b57600080fd5b505af115801561041f573d6000803e3d6000fd5b50505050565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b60005474010000000000000000000000000000000000000000900460ff16815600a165627a7a72305820b022b45b8f978904638fc84ce5d93340e43c79f95171ba5115ce816b25fb0e020029", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x8D JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x83B2732 DUP2 EQ PUSH2 0x92 JUMPI DUP1 PUSH4 0x17846E39 EQ PUSH2 0xA9 JUMPI DUP1 PUSH4 0x322D5010 EQ PUSH2 0xD2 JUMPI DUP1 PUSH4 0x3C0BBCD9 EQ PUSH2 0xEC JUMPI DUP1 PUSH4 0x99563F10 EQ PUSH2 0x101 JUMPI DUP1 PUSH4 0xC0406226 EQ PUSH2 0x11B JUMPI DUP1 PUSH4 0xD4B83992 EQ PUSH2 0x130 JUMPI DUP1 PUSH4 0xE11F493E EQ PUSH2 0x16E JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xA7 PUSH2 0x183 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xB5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xBE PUSH2 0x236 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xDE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xA7 PUSH1 0x4 CALLDATALOAD ISZERO ISZERO PUSH2 0x258 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xF8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xBE PUSH2 0x298 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x10D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xA7 PUSH1 0x4 CALLDATALOAD ISZERO ISZERO PUSH2 0x2BB JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x127 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xA7 PUSH2 0x2FD JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x13C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x145 PUSH2 0x425 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x17A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xBE PUSH2 0x441 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO PUSH2 0x1AC JUMPI PUSH2 0x234 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH23 0x100000000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO PUSH2 0x213 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH23 0xFF00000000000000000000000000000000000000000000 NOT AND PUSH23 0x100000000000000000000000000000000000000000000 OR SWAP1 SSTORE PUSH2 0x213 PUSH2 0x2FD JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH23 0xFF00000000000000000000000000000000000000000000 NOT AND SWAP1 SSTORE JUMPDEST JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH22 0x1000000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP2 ISZERO ISZERO PUSH21 0x10000000000000000000000000000000000000000 MUL PUSH21 0xFF0000000000000000000000000000000000000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH23 0x100000000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP2 ISZERO ISZERO PUSH22 0x1000000000000000000000000000000000000000000 MUL PUSH22 0xFF000000000000000000000000000000000000000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH22 0x1000000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x3A4 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xF86485D900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND SWAP3 PUSH4 0xF86485D9 SWAP3 PUSH1 0x4 DUP1 DUP5 ADD SWAP4 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x387 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x39B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x234 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x2D4D800C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND SWAP3 PUSH4 0x2D4D800C SWAP3 PUSH1 0x4 DUP1 DUP5 ADD SWAP4 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x40B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x41F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 0xb0 0x22 0xb4 JUMPDEST DUP16 SWAP8 DUP10 DIV PUSH4 0x8FC84CE5 0xd9 CALLER BLOCKHASH 0xe4 EXTCODECOPY PUSH26 0xF95171BA5115CE816B25FB0E0200290000000000000000000000 ", - "sourceMap": "66:699:38:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;615:148;;8:9:-1;5:2;;;30:1;27;20:12;5:2;615:148:38;;;;;;167:31;;8:9:-1;5:2;;;30:1;27;20:12;5:2;167:31:38;;;;;;;;;;;;;;;;;;;;;;301:82;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;301:82:38;;;;;;;201:21;;8:9:-1;5:2;;;30:1;27;20:12;5:2;201:21:38;;;;386:118;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;386:118:38;;;;;;;507:105;;8:9:-1;5:2;;;30:1;27;20:12;5:2;507:105:38;;;;106:33;;8:9:-1;5:2;;;30:1;27;20:12;5:2;106:33:38;;;;;;;;;;;;;;;;;;;;;;;142:22;;8:9:-1;5:2;;;30:1;27;20:12;5:2;142:22:38;;;;615:148;653:10;;;;;;;652:11;648:33;;;670:7;;648:33;690:9;;;;;;;689:10;685:53;;;706:9;:16;;-1:-1:-1;;706:16:38;;;;;728:5;:3;:5::i;:::-;754;742:17;;-1:-1:-1;;742:17:38;;;615:148;:::o;167:31::-;;;;;;;;;:::o;301:82::-;355:10;:24;;;;;;;-1:-1:-1;;355:24:38;;;;;;;;;301:82::o;201:21::-;;;;;;;;;:::o;386:118::-;458:19;:42;;;;;;;-1:-1:-1;;458:42:38;;;;;;;;;386:118::o;507:105::-;533:19;;;;;;;:75;;582:6;;;:26;;;;;;;;:6;;;;;:24;;:26;;;;;;;;;;:6;;:26;;;5:2:-1;;;;30:1;27;20:12;5:2;582:26:38;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;582:26:38;;;;533:75;;;555:6;;;:24;;;;;;;;:6;;;;;:22;;:24;;;;;;;;;;:6;;:24;;;5:2:-1;;;;30:1;27;20:12;5:2;555:24:38;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;555:24:38;;;;507:105::o;106:33::-;;;;;;:::o;142:22::-;;;;;;;;;:::o" - }, - "methodIdentifiers": { - "attacking()": "3c0bbcd9", - "callProtectedMethod()": "17846e39", - "callback()": "083b2732", - "reentrancy()": "e11f493e", - "run()": "c0406226", - "setCallProtectedMethod(bool)": "99563f10", - "setReentrancy(bool)": "322d5010", - "target()": "d4b83992" - } - }, - "userdoc": { - "methods": {} - } - } - }, - "solidity/contracts/helpers/TestSafeMath.sol": { - "TestSafeMath": { - "abi": [ - { - "constant": true, - "inputs": [ - { - "name": "_x", - "type": "uint256" - }, - { - "name": "_y", - "type": "uint256" - } - ], - "name": "testSafeDiv", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "pure", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_x", - "type": "uint256" - }, - { - "name": "_y", - "type": "uint256" - } - ], - "name": "testSafeMul", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "pure", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_x", - "type": "uint256" - }, - { - "name": "_y", - "type": "uint256" - } - ], - "name": "testSafeAdd", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "pure", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_x", - "type": "uint256" - }, - { - "name": "_y", - "type": "uint256" - } - ], - "name": "testSafeSub", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "pure", - "type": "function" - } - ], - "devdoc": { - "methods": {} - }, - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "608060405234801561001057600080fd5b50610308806100206000396000f3006080604052600436106100615763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416635e47381d81146100665780639ee6ff7014610093578063de47864c146100ae578063ec0da330146100c9575b600080fd5b34801561007257600080fd5b506100816004356024356100e4565b60408051918252519081900360200190f35b34801561009f57600080fd5b506100816004356024356100fd565b3480156100ba57600080fd5b5061008160043560243561010f565b3480156100d557600080fd5b50610081600435602435610121565b60006100f6838363ffffffff61013316565b9392505050565b60006100f6838363ffffffff6101a616565b60006100f6838363ffffffff61021f16565b60006100f6838363ffffffff61027c16565b60008080831161018d576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f4449564944455f42595f5a45524f0000000000000000000000000000604482015290519081900360640190fd5b828481151561019857fe5b0490508091505b5092915050565b6000808315156101b9576000915061019f565b508282028284828115156101c957fe5b04146100f6576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b6000828201838110156100f6576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b6000818310156102d6576040805160e560020a62461bcd02815260206004820152600d60248201527f4552525f554e444552464c4f5700000000000000000000000000000000000000604482015290519081900360640190fd5b509003905600a165627a7a7230582052e74fdc4364f4ff7467db12347b22713d35e2b282f8244180d58e5855ef53310029", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x308 DUP1 PUSH2 0x20 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x61 JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x5E47381D DUP2 EQ PUSH2 0x66 JUMPI DUP1 PUSH4 0x9EE6FF70 EQ PUSH2 0x93 JUMPI DUP1 PUSH4 0xDE47864C EQ PUSH2 0xAE JUMPI DUP1 PUSH4 0xEC0DA330 EQ PUSH2 0xC9 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x72 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x81 PUSH1 0x4 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH2 0xE4 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x81 PUSH1 0x4 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH2 0xFD JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xBA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x81 PUSH1 0x4 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH2 0x10F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xD5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x81 PUSH1 0x4 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH2 0x121 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xF6 DUP4 DUP4 PUSH4 0xFFFFFFFF PUSH2 0x133 AND JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xF6 DUP4 DUP4 PUSH4 0xFFFFFFFF PUSH2 0x1A6 AND JUMP JUMPDEST PUSH1 0x0 PUSH2 0xF6 DUP4 DUP4 PUSH4 0xFFFFFFFF PUSH2 0x21F AND JUMP JUMPDEST PUSH1 0x0 PUSH2 0xF6 DUP4 DUP4 PUSH4 0xFFFFFFFF PUSH2 0x27C AND JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP4 GT PUSH2 0x18D JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4449564944455F42595F5A45524F0000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP3 DUP5 DUP2 ISZERO ISZERO PUSH2 0x198 JUMPI INVALID JUMPDEST DIV SWAP1 POP DUP1 SWAP2 POP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 ISZERO ISZERO PUSH2 0x1B9 JUMPI PUSH1 0x0 SWAP2 POP PUSH2 0x19F JUMP JUMPDEST POP DUP3 DUP3 MUL DUP3 DUP5 DUP3 DUP2 ISZERO ISZERO PUSH2 0x1C9 JUMPI INVALID JUMPDEST DIV EQ PUSH2 0xF6 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP3 DUP3 ADD DUP4 DUP2 LT ISZERO PUSH2 0xF6 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 DUP4 LT ISZERO PUSH2 0x2D6 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F554E444552464C4F5700000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP SWAP1 SUB SWAP1 JUMP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 MSTORE 0xe7 0x4f 0xdc NUMBER PUSH5 0xF4FF7467DB SLT CALLVALUE PUSH28 0x22713D35E2B282F8244180D58E5855EF533100290000000000000000 ", - "sourceMap": "124:466:39:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;124:466:39;;;;;;;" - }, - "deployedBytecode": { - "linkReferences": {}, - "object": "6080604052600436106100615763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416635e47381d81146100665780639ee6ff7014610093578063de47864c146100ae578063ec0da330146100c9575b600080fd5b34801561007257600080fd5b506100816004356024356100e4565b60408051918252519081900360200190f35b34801561009f57600080fd5b506100816004356024356100fd565b3480156100ba57600080fd5b5061008160043560243561010f565b3480156100d557600080fd5b50610081600435602435610121565b60006100f6838363ffffffff61013316565b9392505050565b60006100f6838363ffffffff6101a616565b60006100f6838363ffffffff61021f16565b60006100f6838363ffffffff61027c16565b60008080831161018d576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f4449564944455f42595f5a45524f0000000000000000000000000000604482015290519081900360640190fd5b828481151561019857fe5b0490508091505b5092915050565b6000808315156101b9576000915061019f565b508282028284828115156101c957fe5b04146100f6576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b6000828201838110156100f6576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b6000818310156102d6576040805160e560020a62461bcd02815260206004820152600d60248201527f4552525f554e444552464c4f5700000000000000000000000000000000000000604482015290519081900360640190fd5b509003905600a165627a7a7230582052e74fdc4364f4ff7467db12347b22713d35e2b282f8244180d58e5855ef53310029", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x61 JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x5E47381D DUP2 EQ PUSH2 0x66 JUMPI DUP1 PUSH4 0x9EE6FF70 EQ PUSH2 0x93 JUMPI DUP1 PUSH4 0xDE47864C EQ PUSH2 0xAE JUMPI DUP1 PUSH4 0xEC0DA330 EQ PUSH2 0xC9 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x72 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x81 PUSH1 0x4 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH2 0xE4 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x81 PUSH1 0x4 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH2 0xFD JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xBA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x81 PUSH1 0x4 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH2 0x10F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xD5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x81 PUSH1 0x4 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH2 0x121 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xF6 DUP4 DUP4 PUSH4 0xFFFFFFFF PUSH2 0x133 AND JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xF6 DUP4 DUP4 PUSH4 0xFFFFFFFF PUSH2 0x1A6 AND JUMP JUMPDEST PUSH1 0x0 PUSH2 0xF6 DUP4 DUP4 PUSH4 0xFFFFFFFF PUSH2 0x21F AND JUMP JUMPDEST PUSH1 0x0 PUSH2 0xF6 DUP4 DUP4 PUSH4 0xFFFFFFFF PUSH2 0x27C AND JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP4 GT PUSH2 0x18D JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4449564944455F42595F5A45524F0000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP3 DUP5 DUP2 ISZERO ISZERO PUSH2 0x198 JUMPI INVALID JUMPDEST DIV SWAP1 POP DUP1 SWAP2 POP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 ISZERO ISZERO PUSH2 0x1B9 JUMPI PUSH1 0x0 SWAP2 POP PUSH2 0x19F JUMP JUMPDEST POP DUP3 DUP3 MUL DUP3 DUP5 DUP3 DUP2 ISZERO ISZERO PUSH2 0x1C9 JUMPI INVALID JUMPDEST DIV EQ PUSH2 0xF6 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP3 DUP3 ADD DUP4 DUP2 LT ISZERO PUSH2 0xF6 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 DUP4 LT ISZERO PUSH2 0x2D6 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F554E444552464C4F5700000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP SWAP1 SUB SWAP1 JUMP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 MSTORE 0xe7 0x4f 0xdc NUMBER PUSH5 0xF4FF7467DB SLT CALLVALUE PUSH28 0x22713D35E2B282F8244180D58E5855EF533100290000000000000000 ", - "sourceMap": "124:466:39:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;488:100;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;488:100:39;;;;;;;;;;;;;;;;;;;;;;;385;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;385:100:39;;;;;;;179;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;179:100:39;;;;;;;282;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;282:100:39;;;;;;;488;554:7;574:10;:2;581;574:10;:6;:10;:::i;:::-;567:17;488:100;-1:-1:-1;;;488:100:39:o;385:::-;451:7;471:10;:2;478;471:10;:6;:10;:::i;179:100::-;245:7;265:10;:2;272;265:10;:6;:10;:::i;282:100::-;348:7;368:10;:2;375;368:10;:6;:10;:::i;1307:149:69:-;1367:7;;1388:6;;;1380:37;;;;;-1:-1:-1;;;;;1380:37:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;1438:2;1433;:7;;;;;;;;1421:19;;1451:1;1444:8;;1307:149;;;;;;:::o;924:197::-;984:7;;1023;;1019:21;;;1039:1;1032:8;;;;1019:21;-1:-1:-1;1057:7:69;;;1062:2;1057;:7;1076:6;;;;;;;;:12;1068:37;;;;;-1:-1:-1;;;;;1068:37:69;;;;;;;;;;;;;;;;;;;;;;;;;;;288:144;348:7;373;;;392;;;;384:32;;;;;-1:-1:-1;;;;;384:32:69;;;;;;;;;;;;;;;;;;;;;;;;;;;613:129;673:7;694:8;;;;686:34;;;;;-1:-1:-1;;;;;686:34:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;731:7:69;;;613:129::o" - }, - "methodIdentifiers": { - "testSafeAdd(uint256,uint256)": "de47864c", - "testSafeDiv(uint256,uint256)": "5e47381d", - "testSafeMul(uint256,uint256)": "9ee6ff70", - "testSafeSub(uint256,uint256)": "ec0da330" - } - }, - "userdoc": { - "methods": {} - } - } - }, - "solidity/contracts/helpers/TestSovrynSwapFormula.sol": { - "TestSovrynSwapFormula": { - "abi": [ - { - "constant": true, - "inputs": [ - { - "name": "_supply", - "type": "uint256" - }, - { - "name": "_reserveBalance", - "type": "uint256" - }, - { - "name": "_reserveRatio", - "type": "uint32" - }, - { - "name": "_amount", - "type": "uint256" - } - ], - "name": "calculateFundCost", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_supply", - "type": "uint256" - }, - { - "name": "_reserveBalance", - "type": "uint256" - }, - { - "name": "_reserveWeight", - "type": "uint32" - }, - { - "name": "_amount", - "type": "uint256" - } - ], - "name": "calculatePurchaseReturn", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_supply", - "type": "uint256" - }, - { - "name": "_reserveBalance", - "type": "uint256" - }, - { - "name": "_reserveRatio", - "type": "uint32" - }, - { - "name": "_amount", - "type": "uint256" - } - ], - "name": "fundSupplyAmount", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_supply", - "type": "uint256" - }, - { - "name": "_reserveBalance", - "type": "uint256" - }, - { - "name": "_reserveRatio", - "type": "uint32" - }, - { - "name": "_amount", - "type": "uint256" - } - ], - "name": "liquidateRate", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_a", - "type": "uint256" - }, - { - "name": "_b", - "type": "uint256" - } - ], - "name": "normalizedWeightsTest", - "outputs": [ - { - "name": "", - "type": "uint32" - }, - { - "name": "", - "type": "uint32" - } - ], - "payable": false, - "stateMutability": "pure", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "x", - "type": "uint256" - } - ], - "name": "optimalLogTest", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "pure", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_n", - "type": "uint256" - }, - { - "name": "_d", - "type": "uint256" - } - ], - "name": "roundDivTest", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "pure", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_supply", - "type": "uint256" - }, - { - "name": "_reserveBalance", - "type": "uint256" - }, - { - "name": "_reserveWeight", - "type": "uint32" - }, - { - "name": "_amount", - "type": "uint256" - } - ], - "name": "purchaseRate", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "x", - "type": "uint256" - } - ], - "name": "generalLogTest", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "pure", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_supply", - "type": "uint256" - }, - { - "name": "_reserveBalance", - "type": "uint256" - }, - { - "name": "_reserveWeight", - "type": "uint32" - }, - { - "name": "_amount", - "type": "uint256" - } - ], - "name": "calculateSaleReturn", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "version", - "outputs": [ - { - "name": "", - "type": "uint16" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_sourceReserveBalance", - "type": "uint256" - }, - { - "name": "_sourceReserveWeight", - "type": "uint32" - }, - { - "name": "_targetReserveBalance", - "type": "uint256" - }, - { - "name": "_targetReserveWeight", - "type": "uint32" - }, - { - "name": "_amount", - "type": "uint256" - } - ], - "name": "calculateCrossConnectorReturn", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_x", - "type": "uint256" - }, - { - "name": "_precision", - "type": "uint8" - } - ], - "name": "generalExpTest", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "pure", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_supply", - "type": "uint256" - }, - { - "name": "_reserveBalance", - "type": "uint256" - }, - { - "name": "_reserveWeight", - "type": "uint32" - }, - { - "name": "_amount", - "type": "uint256" - } - ], - "name": "saleTargetAmount", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_sourceReserveBalance", - "type": "uint256" - }, - { - "name": "_sourceReserveWeight", - "type": "uint32" - }, - { - "name": "_targetReserveBalance", - "type": "uint256" - }, - { - "name": "_targetReserveWeight", - "type": "uint32" - }, - { - "name": "_amount", - "type": "uint256" - } - ], - "name": "calculateCrossReserveReturn", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_supply", - "type": "uint256" - }, - { - "name": "_reserveBalance", - "type": "uint256" - }, - { - "name": "_reserveRatio", - "type": "uint32" - }, - { - "name": "_amount", - "type": "uint256" - } - ], - "name": "liquidateReserveAmount", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_baseN", - "type": "uint256" - }, - { - "name": "_baseD", - "type": "uint256" - }, - { - "name": "_expN", - "type": "uint32" - }, - { - "name": "_expD", - "type": "uint32" - } - ], - "name": "powerTest", - "outputs": [ - { - "name": "", - "type": "uint256" - }, - { - "name": "", - "type": "uint8" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_sourceReserveBalance", - "type": "uint256" - }, - { - "name": "_sourceReserveWeight", - "type": "uint32" - }, - { - "name": "_targetReserveBalance", - "type": "uint256" - }, - { - "name": "_targetReserveWeight", - "type": "uint32" - }, - { - "name": "_amount", - "type": "uint256" - } - ], - "name": "crossReserveTargetAmount", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_sourceReserveBalance", - "type": "uint256" - }, - { - "name": "_sourceReserveWeight", - "type": "uint32" - }, - { - "name": "_targetReserveBalance", - "type": "uint256" - }, - { - "name": "_targetReserveWeight", - "type": "uint32" - }, - { - "name": "_amount", - "type": "uint256" - } - ], - "name": "crossReserveRate", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_primaryReserveStakedBalance", - "type": "uint256" - }, - { - "name": "_primaryReserveBalance", - "type": "uint256" - }, - { - "name": "_secondaryReserveBalance", - "type": "uint256" - }, - { - "name": "_reserveRateNumerator", - "type": "uint256" - }, - { - "name": "_reserveRateDenominator", - "type": "uint256" - } - ], - "name": "balancedWeights", - "outputs": [ - { - "name": "", - "type": "uint32" - }, - { - "name": "", - "type": "uint32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_x", - "type": "uint256" - } - ], - "name": "findPositionInMaxExpArrayTest", - "outputs": [ - { - "name": "", - "type": "uint8" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_supply", - "type": "uint256" - }, - { - "name": "_reserveBalance", - "type": "uint256" - }, - { - "name": "_reserveRatio", - "type": "uint32" - }, - { - "name": "_amount", - "type": "uint256" - } - ], - "name": "calculateLiquidateReturn", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "x", - "type": "uint256" - } - ], - "name": "optimalExpTest", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "pure", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_n", - "type": "uint256" - } - ], - "name": "floorLog2Test", - "outputs": [ - { - "name": "", - "type": "uint8" - } - ], - "payable": false, - "stateMutability": "pure", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "init", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_a", - "type": "uint256" - }, - { - "name": "_b", - "type": "uint256" - } - ], - "name": "accurateWeightsTest", - "outputs": [ - { - "name": "", - "type": "uint32" - }, - { - "name": "", - "type": "uint32" - } - ], - "payable": false, - "stateMutability": "pure", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_supply", - "type": "uint256" - }, - { - "name": "_reserveBalance", - "type": "uint256" - }, - { - "name": "_reserveRatio", - "type": "uint32" - }, - { - "name": "_amount", - "type": "uint256" - } - ], - "name": "fundCost", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_supply", - "type": "uint256" - }, - { - "name": "_reserveBalance", - "type": "uint256" - }, - { - "name": "_reserveWeight", - "type": "uint32" - }, - { - "name": "_amount", - "type": "uint256" - } - ], - "name": "purchaseTargetAmount", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_supply", - "type": "uint256" - }, - { - "name": "_reserveBalance", - "type": "uint256" - }, - { - "name": "_reserveWeight", - "type": "uint32" - }, - { - "name": "_amount", - "type": "uint256" - } - ], - "name": "saleRate", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - } - ], - "devdoc": { - "methods": { - "balancedWeights(uint256,uint256,uint256,uint256,uint256)": { - "details": "The arbitrage incentive is to convert to the point where the on-chain price is equal to the off-chain price. We want this operation to also impact the primary reserve balance becoming equal to the primary reserve staked balance. In other words, we want the arbitrager to convert the difference between the reserve balance and the reserve staked balance.\t * Formula input: - let t denote the primary reserve token staked balance - let s denote the primary reserve token balance - let r denote the secondary reserve token balance - let q denote the numerator of the rate between the tokens - let p denote the denominator of the rate between the tokens Where p primary tokens are equal to q secondary tokens\t * Formula output: - compute x = W(t / r * q / p * log(s / t)) / log(s / t) - return x / (1 + x) as the weight of the primary reserve token - return 1 / (1 + x) as the weight of the secondary reserve token Where W is the Lambert W Function\t * If the rate-provider provides the rates for a common unit, for example: - P = 2 ==> 2 primary reserve tokens = 1 ether - Q = 3 ==> 3 secondary reserve tokens = 1 ether Then you can simply use p = P and q = Q\t * If the rate-provider provides the rates for a single unit, for example: - P = 2 ==> 1 primary reserve token = 2 ethers - Q = 3 ==> 1 secondary reserve token = 3 ethers Then you can simply use p = Q and q = P", - "params": { - "_primaryReserveBalance": "the primary reserve token balance", - "_primaryReserveStakedBalance": "the primary reserve token staked balance", - "_reserveRateDenominator": "the denominator of the rate between the tokens\t * Note that `numerator / denominator` should represent the amount of secondary tokens equal to one primary token", - "_reserveRateNumerator": "the numerator of the rate between the tokens", - "_secondaryReserveBalance": "the secondary reserve token balance" - }, - "return": "the weight of the primary reserve token and the weight of the secondary reserve token, both in ppm (0-1000000)" - }, - "calculateCrossConnectorReturn(uint256,uint32,uint256,uint32,uint256)": { - "details": "deprecated, backward compatibility" - }, - "calculateCrossReserveReturn(uint256,uint32,uint256,uint32,uint256)": { - "details": "deprecated, backward compatibility" - }, - "calculateFundCost(uint256,uint256,uint32,uint256)": { - "details": "deprecated, backward compatibility" - }, - "calculateLiquidateReturn(uint256,uint256,uint32,uint256)": { - "details": "deprecated, backward compatibility" - }, - "calculatePurchaseReturn(uint256,uint256,uint32,uint256)": { - "details": "deprecated, backward compatibility" - }, - "calculateSaleReturn(uint256,uint256,uint32,uint256)": { - "details": "deprecated, backward compatibility" - }, - "crossReserveRate(uint256,uint32,uint256,uint32,uint256)": { - "details": "deprecated, backward compatibility" - }, - "crossReserveTargetAmount(uint256,uint32,uint256,uint32,uint256)": { - "details": "given two reserve balances/weights and a sell amount (in the first reserve token), calculates the target amount for a conversion from the source reserve token to the target reserve token\t * Formula: return = _targetReserveBalance * (1 - (_sourceReserveBalance / (_sourceReserveBalance + _amount)) ^ (_sourceReserveWeight / _targetReserveWeight))", - "params": { - "_amount": "source reserve amount", - "_sourceReserveBalance": "source reserve balance", - "_sourceReserveWeight": "source reserve weight, represented in ppm (1-1000000)", - "_targetReserveBalance": "target reserve balance", - "_targetReserveWeight": "target reserve weight, represented in ppm (1-1000000)" - }, - "return": "target reserve amount" - }, - "fundCost(uint256,uint256,uint32,uint256)": { - "details": "given a smart token supply, reserve balance, reserve ratio and an amount of requested smart tokens, calculates the amount of reserve tokens required for purchasing the given amount of smart tokens\t * Formula: return = _reserveBalance * (((_supply + _amount) / _supply) ^ (MAX_WEIGHT / _reserveRatio) - 1)", - "params": { - "_amount": "requested amount of smart tokens", - "_reserveBalance": "reserve balance", - "_reserveRatio": "reserve ratio, represented in ppm (2-2000000)", - "_supply": "smart token supply" - }, - "return": "reserve token amount" - }, - "fundSupplyAmount(uint256,uint256,uint32,uint256)": { - "details": "given a smart token supply, reserve balance, reserve ratio and an amount of reserve tokens to fund with, calculates the amount of smart tokens received for purchasing with the given amount of reserve tokens\t * Formula: return = _supply * ((_amount / _reserveBalance + 1) ^ (_reserveRatio / MAX_WEIGHT) - 1)", - "params": { - "_amount": "amount of reserve tokens to fund with", - "_reserveBalance": "reserve balance", - "_reserveRatio": "reserve ratio, represented in ppm (2-2000000)", - "_supply": "smart token supply" - }, - "return": "smart token amount" - }, - "init()": { - "details": "should be executed after construction (too large for the constructor)" - }, - "liquidateRate(uint256,uint256,uint32,uint256)": { - "details": "deprecated, backward compatibility" - }, - "liquidateReserveAmount(uint256,uint256,uint32,uint256)": { - "details": "given a smart token supply, reserve balance, reserve ratio and an amount of smart tokens to liquidate, calculates the amount of reserve tokens received for selling the given amount of smart tokens\t * Formula: return = _reserveBalance * (1 - ((_supply - _amount) / _supply) ^ (MAX_WEIGHT / _reserveRatio))", - "params": { - "_amount": "amount of smart tokens to liquidate", - "_reserveBalance": "reserve balance", - "_reserveRatio": "reserve ratio, represented in ppm (2-2000000)", - "_supply": "smart token supply" - }, - "return": "reserve token amount" - }, - "purchaseRate(uint256,uint256,uint32,uint256)": { - "details": "deprecated, backward compatibility" - }, - "purchaseTargetAmount(uint256,uint256,uint32,uint256)": { - "details": "given a token supply, reserve balance, weight and a deposit amount (in the reserve token), calculates the target amount for a given conversion (in the main token)\t * Formula: return = _supply * ((1 + _amount / _reserveBalance) ^ (_reserveWeight / 1000000) - 1)", - "params": { - "_amount": "amount of reserve tokens to get the target amount for", - "_reserveBalance": "reserve balance", - "_reserveWeight": "reserve weight, represented in ppm (1-1000000)", - "_supply": "smart token supply" - }, - "return": "smart token amount" - }, - "saleRate(uint256,uint256,uint32,uint256)": { - "details": "deprecated, backward compatibility" - }, - "saleTargetAmount(uint256,uint256,uint32,uint256)": { - "details": "given a token supply, reserve balance, weight and a sell amount (in the main token), calculates the target amount for a given conversion (in the reserve token)\t * Formula: return = _reserveBalance * (1 - (1 - _amount / _supply) ^ (1000000 / _reserveWeight))", - "params": { - "_amount": "amount of smart tokens to get the target amount for", - "_reserveBalance": "reserve balance", - "_reserveWeight": "reserve weight, represented in ppm (1-1000000)", - "_supply": "smart token supply" - }, - "return": "reserve token amount" - } - } - }, - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "608060405234801561001057600080fd5b506140e7806100206000396000f3006080604052600436106101745763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631da6bbfb811461017957806329a00e7c146101b25780632f55bdb5146101d957806335b49af4146102005780633e75c6ca146102275780633e8a38ab1461026557806347d0b6861461027d57806348d73fed146101b25780634982d52d1461029857806349f9b0f7146102b057806354fd4d50146102d757806365098bb3146103035780636cab50551461033157806376cf0b561461034f57806379c1b450146103035780638074590a146103765780638c5ce82a1461039d57806394491fab146103e25780639d11410814610303578063a11aa1b414610410578063a25a34b114610434578063abfd231d14610200578063acdee8cb14610462578063ce782e081461047a578063e1c7392a14610492578063e4883121146104a9578063ebbb2158146104c4578063f3250fe2146104eb578063f732f1c9146102b0575b600080fd5b34801561018557600080fd5b506101a060043560243563ffffffff60443516606435610512565b60408051918252519081900360200190f35b3480156101be57600080fd5b506101a060043560243563ffffffff60443516606435610529565b3480156101e557600080fd5b506101a060043560243563ffffffff60443516606435610537565b34801561020c57600080fd5b506101a060043560243563ffffffff604435166064356106d4565b34801561023357600080fd5b506102426004356024356106e2565b6040805163ffffffff938416815291909216602082015281519081900390910190f35b34801561027157600080fd5b506101a06004356106fa565b34801561028957600080fd5b506101a060043560243561070d565b3480156102a457600080fd5b506101a0600435610720565b3480156102bc57600080fd5b506101a060043560243563ffffffff6044351660643561072b565b3480156102e357600080fd5b506102ec610739565b6040805161ffff9092168252519081900360200190f35b34801561030f57600080fd5b506101a060043563ffffffff602435811690604435906064351660843561073e565b34801561033d57600080fd5b506101a060043560ff60243516610757565b34801561035b57600080fd5b506101a060043560243563ffffffff60443516606435610763565b34801561038257600080fd5b506101a060043560243563ffffffff60443516606435610968565b3480156103a957600080fd5b506103c760043560243563ffffffff60443581169060643516610b09565b6040805192835260ff90911660208301528051918290030190f35b3480156103ee57600080fd5b506101a060043563ffffffff6024358116906044359060643516608435610b25565b34801561041c57600080fd5b50610242600435602435604435606435608435610cc1565b34801561044057600080fd5b5061044c600435610e61565b6040805160ff9092168252519081900360200190f35b34801561046e57600080fd5b506101a0600435610e6c565b34801561048657600080fd5b5061044c600435610e77565b34801561049e57600080fd5b506104a7610e82565b005b3480156104b557600080fd5b50610242600435602435610e94565b3480156104d057600080fd5b506101a060043560243563ffffffff60443516606435610ea1565b3480156104f757600080fd5b506101a060043560243563ffffffff60443516606435611048565b600061052085858585610ea1565b95945050505050565b600061052085858585611048565b600080808080808911610582576040805160e560020a62461bcd028152602060048201526012602482015260008051602061407c833981519152604482015290519081900360640190fd5b600088116105c8576040805160e560020a62461bcd02815260206004820152601b602482015260008051602061409c833981519152604482015290519081900360640190fd5b60018763ffffffff161180156105e75750621e848063ffffffff881611155b151561063d576040805160e560020a62461bcd02815260206004820152601960248201527f4552525f494e56414c49445f524553455256455f524154494f00000000000000604482015290519081900360640190fd5b85151561064d57600094506106c8565b63ffffffff8716620f42401415610680578761066f878b63ffffffff61119016565b81151561067857fe5b0494506106c8565b610690888763ffffffff61121416565b91506106a1828989620f4240611271565b909450925060ff83166106ba8a8663ffffffff61119016565b9060020a9004905088810394505b50505050949350505050565b600061052085858585610968565b6000806106ef848461135b565b915091509250929050565b600061070582611398565b90505b919050565b600061071983836117b0565b9392505050565b6000610705826117e2565b600061052085858585610763565b600881565b600061074d8686868686610b25565b9695505050505050565b6000610719838361189c565b60008080808080808a116107af576040805160e560020a62461bcd028152602060048201526012602482015260008051602061407c833981519152604482015290519081900360640190fd5b600089116107f5576040805160e560020a62461bcd02815260206004820152601b602482015260008051602061409c833981519152604482015290519081900360640190fd5b60008863ffffffff161180156108145750620f424063ffffffff891611155b151561086a576040805160e560020a62461bcd02815260206004820152601a60248201527f4552525f494e56414c49445f524553455256455f574549474854000000000000604482015290519081900360640190fd5b898711156108c2576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f494e56414c49445f414d4f554e540000000000000000000000000000604482015290519081900360640190fd5b8615156108d2576000955061095b565b898714156108e25788955061095b565b63ffffffff8816620f4240141561091557896109048a8963ffffffff61119016565b81151561090d57fe5b04955061095b565b868a0392506109298a84620f42408b611271565b909550935061093e898663ffffffff61119016565b91505060ff831660020a88028481830381151561095757fe5b0495505b5050505050949350505050565b60008080808080808a116109b4576040805160e560020a62461bcd028152602060048201526012602482015260008051602061407c833981519152604482015290519081900360640190fd5b600089116109fa576040805160e560020a62461bcd02815260206004820152601b602482015260008051602061409c833981519152604482015290519081900360640190fd5b60018863ffffffff16118015610a195750621e848063ffffffff891611155b1515610a6f576040805160e560020a62461bcd02815260206004820152601960248201527f4552525f494e56414c49445f524553455256455f524154494f00000000000000604482015290519081900360640190fd5b89871115610ac7576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f494e56414c49445f414d4f554e540000000000000000000000000000604482015290519081900360640190fd5b861515610ad7576000955061095b565b89871415610ae75788955061095b565b63ffffffff8816620f424014156109155789610904888b63ffffffff61119016565b600080610b1886868686611271565b9150915094509492505050565b60008060008060008060008b118015610b3e5750600089115b1515610b82576040805160e560020a62461bcd02815260206004820152601b602482015260008051602061409c833981519152604482015290519081900360640190fd5b60008a63ffffffff16118015610ba15750620f424063ffffffff8b1611155b8015610bb3575060008863ffffffff16115b8015610bc85750620f424063ffffffff891611155b1515610c1e576040805160e560020a62461bcd02815260206004820152601a60248201527f4552525f494e56414c49445f524553455256455f574549474854000000000000604482015290519081900360640190fd5b8763ffffffff168a63ffffffff161415610c6357610c428b8863ffffffff61121416565b610c528a8963ffffffff61119016565b811515610c5b57fe5b049550610cb3565b610c738b8863ffffffff61121416565b9250610c81838c8c8b611271565b9095509350610c96898663ffffffff61119016565b91505060ff831660020a880284818303811515610caf57fe5b0495505b505050505095945050505050565b60008060008087891415610d27576000891180610cde5750600087115b1515610d22576040805160e560020a62461bcd02815260206004820152601b602482015260008051602061409c833981519152604482015290519081900360640190fd5b610d87565b600089118015610d375750600088115b8015610d435750600087115b1515610d87576040805160e560020a62461bcd02815260206004820152601b602482015260008051602061409c833981519152604482015290519081900360640190fd5b600086118015610d975750600085115b1515610ded576040805160e560020a62461bcd02815260206004820152601860248201527f4552525f494e56414c49445f524553455256455f524154450000000000000000604482015290519081900360640190fd5b610dfd898763ffffffff61119016565b9150610e0f878663ffffffff61119016565b905087891015610e3057610e27888a84846001611cbf565b93509350610e55565b87891115610e4657610e27898984846000611cbf565b610e50828261135b565b935093505b50509550959350505050565b600061070582611da2565b600061070582611e2f565b60006107058261222f565b610e8a612298565b610e92612a6e565b565b6000806106ef8484613475565b600080808080808911610eec576040805160e560020a62461bcd028152602060048201526012602482015260008051602061407c833981519152604482015290519081900360640190fd5b60008811610f32576040805160e560020a62461bcd02815260206004820152601b602482015260008051602061409c833981519152604482015290519081900360640190fd5b60018763ffffffff16118015610f515750621e848063ffffffff881611155b1515610fa7576040805160e560020a62461bcd02815260206004820152601960248201527f4552525f494e56414c49445f524553455256455f524154494f00000000000000604482015290519081900360640190fd5b851515610fb757600094506106c8565b63ffffffff8716620f42401415610ff057886001610fdb888b63ffffffff61119016565b03811515610fe557fe5b0460010194506106c8565b611000898763ffffffff61121416565b9150611011828a620f42408a611271565b909450925060ff8316600161102c8a8763ffffffff61119016565b60029290920a9103049790970360010198975050505050505050565b600080808080808911611093576040805160e560020a62461bcd028152602060048201526012602482015260008051602061407c833981519152604482015290519081900360640190fd5b600088116110d9576040805160e560020a62461bcd02815260206004820152601b602482015260008051602061409c833981519152604482015290519081900360640190fd5b60008763ffffffff161180156110f85750620f424063ffffffff881611155b151561114e576040805160e560020a62461bcd02815260206004820152601a60248201527f4552525f494e56414c49445f524553455256455f574549474854000000000000604482015290519081900360640190fd5b85151561115e57600094506106c8565b63ffffffff8716620f42401415611180578761066f8a8863ffffffff61119016565b610690868963ffffffff61121416565b6000808315156111a3576000915061120d565b508282028284828115156111b357fe5b0414611209576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b8091505b5092915050565b600082820183811015611209576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b600080808080807002000000000000000000000000000000008a1061129557600080fd5b88607f60020a8b028115156112a657fe5b04925070015bf0a8b1457695355fb8ac404e7a79e38310156112d2576112cb83611398565b93506112de565b6112db836117e2565b93505b8663ffffffff168863ffffffff1685028115156112f757fe5b0491507008000000000000000000000000000000008210156113275761131c82611e2f565b607f9550955061134e565b61133082611da2565b905061134860ff607f8390031660020a83048261189c565b81955095505b5050505094509492505050565b600080808084861161137a576113718686613475565b9350935061138f565b6113848587613475565b915091508082935093505b50509250929050565b6000808080806fd3094c70f034de4b96ff7d5b6f99fcd886106113e7576f4000000000000000000000000000000093909301926fd3094c70f034de4b96ff7d5b6f99fcd8607f60020a87020495505b6fa45af1e1f40c333b3de1db4dd55f29a78610611430576f2000000000000000000000000000000093909301926fa45af1e1f40c333b3de1db4dd55f29a7607f60020a87020495505b6f910b022db7ae67ce76b441c27035c6a18610611479576f1000000000000000000000000000000093909301926f910b022db7ae67ce76b441c27035c6a1607f60020a87020495505b6f88415abbe9a76bead8d00cf112e4d4a886106114c2576f0800000000000000000000000000000093909301926f88415abbe9a76bead8d00cf112e4d4a8607f60020a87020495505b6f84102b00893f64c705e841d5d4064bd3861061150b576f0400000000000000000000000000000093909301926f84102b00893f64c705e841d5d4064bd3607f60020a87020495505b6f8204055aaef1c8bd5c3259f4822735a28610611554576f0200000000000000000000000000000093909301926f8204055aaef1c8bd5c3259f4822735a2607f60020a87020495505b6f810100ab00222d861931c15e39b44e99861061159d576f0100000000000000000000000000000093909301926f810100ab00222d861931c15e39b44e99607f60020a87020495505b6f808040155aabbbe9451521693554f73386106115e5576e80000000000000000000000000000093909301926f808040155aabbbe9451521693554f733607f60020a87020495505b6f7fffffffffffffffffffffffffffffff1986019250829150607f60020a828002049050608060020a8381038302049390930192607f60020a8282020491507002000000000000000000000000000000006faaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa8490038302049390930192607f60020a8282020491507003000000000000000000000000000000006f999999999999999999999999999999998490038302049390930192607f60020a8282020491507004000000000000000000000000000000006f924924924924924924924924924924928490038302049390930192607f60020a8282020491507005000000000000000000000000000000006f8e38e38e38e38e38e38e38e38e38e38e8490038302049390930192607f60020a8282020491507006000000000000000000000000000000006f8ba2e8ba2e8ba2e8ba2e8ba2e8ba2e8b8490038302049390930192607f60020a8282020491507007000000000000000000000000000000006f89d89d89d89d89d89d89d89d89d89d898490038302049390930192607f60020a8282020491507008000000000000000000000000000000006f888888888888888888888888888888888490038302049390930195945050505050565b600060028204820382848115156117c357fe5b068115156117cd57fe5b0482848115156117d957fe5b04019392505050565b6000808080608060020a851061181a57611802607f60020a865b0461222f565b60ff8116600281900a90960495607f60020a02935091505b607f60020a85111561186c5750607f5b60008160ff16111561186c57607f60020a858002049450608060020a8510611863576002948590049460ff600019830116900a92909201915b6000190161182a565b6f05b9de1d10bf4103d647b0955897ba806f03f80fe03f80fe03f80fe03f80fe03f884020493505b505050919050565b6000806000849150600090508360ff168583029060020a90049150816f03442c4e6074a82f1797f72ac000000002810190508360ff168583029060020a90049150816f0116b96f757c380fb287fd0e4000000002810190508360ff168583029060020a90049150816e45ae5bdd5f0e03eca1ff439000000002810190508360ff168583029060020a90049150816e0defabf91302cd95b9ffda5000000002810190508360ff168583029060020a90049150816e02529ca9832b22439efff9b800000002810190508360ff168583029060020a90049150816d54f1cf12bd04e516b6da8800000002810190508360ff168583029060020a90049150816d0a9e39e257a09ca2d6db5100000002810190508360ff168583029060020a90049150816d012e066e7b839fa050c30900000002810190508360ff168583029060020a90049150816c1e33d7d926c329a1ad1a80000002810190508360ff168583029060020a90049150816c02bee513bdb4a6b19b5f80000002810190508360ff168583029060020a90049150816b3a9316fa79b88eccf2a0000002810190508360ff168583029060020a90049150816b048177ebe1fa81237520000002810190508360ff168583029060020a90049150816a5263fe90242dcbacf0000002810190508360ff168583029060020a90049150816a057e22099c030d9410000002810190508360ff168583029060020a90049150816957e22099c030d941000002810190508360ff168583029060020a900491508169052b6b5456997631000002810190508360ff168583029060020a9004915081684985f67696bf74800002810190508360ff168583029060020a90049150816803dea12ea99e49800002810190508360ff168583029060020a90049150816731880f2214b6e00002810190508360ff168583029060020a900491508167025bcff56eb3600002810190508360ff168583029060020a9004915081661b722e10ab100002810190508360ff168583029060020a90049150816601317c7007700002810190508360ff168583029060020a9004915081650cba84aafa0002810190508360ff168583029060020a90049150816482573a0a0002810190508360ff168583029060020a90049150816405035ad90002810190508360ff168583029060020a9004915081632f881b0002810190508360ff168583029060020a90049150816301b2934002810190508360ff168583029060020a9004915081620efc4002810190508360ff168583029060020a9004915081617fe002810190508360ff168583029060020a900491508161042002810190508360ff168583029060020a9004915081602102810190508360ff168583029060020a9004915081600102810190508360ff1660019060020a02856f0688589cc0e9505e2f2fee558000000083811515611cb357fe5b04010195945050505050565b600080600080600080611cd28989613511565b909950975089611cec8c607f60020a63ffffffff61119016565b811515611cf557fe5b04935070015bf0a8b1457695355fb8ac404e7a79e38410611d1e57611d19846117e2565b611d27565b611d2784611398565b925087611d3a848b63ffffffff61119016565b811515611d4357fe5b04915086611d5957611d54826135cd565b611d62565b611d6282613628565b9050611d90611d77828b63ffffffff61119016565b611d8b8a607f60020a63ffffffff61119016565b61135b565b95509550505050509550959350505050565b60006020607f825b8160ff168360010160ff161015611def57600260ff8484011604905084600060ff831660808110611dd757fe5b015410611de657809250611dea565b8091505b611daa565b84600060ff841660808110611e0057fe5b015410611e0f57819350611894565b84600060ff851660808110611e2057fe5b01541061017457829350611894565b6000670168244fdac78000607f60020a6f0fffffffffffffffffffffffffffffff84168080028290048082028390048083028490049485026710e1b3be415a00009092026705a0913f6b1e000091909102010192909181830204905080664807432bc180000283019250607f60020a828202811515611eaa57fe5b04905080660c0135dca040000283019250607f60020a828202811515611ecc57fe5b049050806601b707b1cdc0000283019250607f60020a828202811515611eee57fe5b049050806536e0f639b8000283019250607f60020a828202811515611f0f57fe5b04905080650618fee9f8000283019250607f60020a828202811515611f3057fe5b04905080649c197dcc000283019250607f60020a828202811515611f5057fe5b04905080640e30dce4000283019250607f60020a828202811515611f7057fe5b0490508064012ebd13000283019250607f60020a828202811515611f9057fe5b049050806317499f000283019250607f60020a828202811515611faf57fe5b049050806301a9d4800283019250607f60020a828202811515611fce57fe5b04905080621c63800283019250607f60020a828202811515611fec57fe5b049050806201c6380283019250607f60020a82820281151561200a57fe5b04905080611ab80283019250607f60020a82820281151561202757fe5b0490508061017c0283019250607f60020a82820281151561204457fe5b0490508060140283019250607f60020a82820281151561206057fe5b6721c3677c82b40000919004938401048201607f60020a019290506f100000000000000000000000000000008516156120bd5770018ebef9eac820ae8682b9793ac6d1e7767001c3d6a24ed82218787d624d3e5eba95f984020492505b6f200000000000000000000000000000008516156120ff577001368b2fc6f9609fe7aceb46aa619baed470018ebef9eac820ae8682b9793ac6d1e77884020492505b6f40000000000000000000000000000000851615612140576fbc5ab1b16779be3575bd8f0520a9f21f7001368b2fc6f9609fe7aceb46aa619baed584020492505b607f60020a851615612174576f454aaa8efe072e7f6ddbab84b40a55c96fbc5ab1b16779be3575bd8f0520a9f21e84020492505b608060020a8516156121a8576f0960aadc109e7a3bf4578099615711ea6f454aaa8efe072e7f6ddbab84b40a55c584020492505b7002000000000000000000000000000000008516156121e8576e2bf84208204f5977f9a8cf01fdce3d6f0960aadc109e7a3bf4578099615711d784020492505b700400000000000000000000000000000000851615612226576d03c6ab775dd0b95b4cbee7e65d116e2bf84208204f5977f9a8cf01fdc30784020492505b50909392505050565b6000808061010084101561225e575b6001841115612259576002909304926001919091019061223e565b61120d565b5060805b60008160ff16111561120d5760ff811660020a841061228b5760ff811660020a90930492908117905b600260ff90911604612262565b701c35fedd14ffffffffffffffffffffffff602055701b0ce43b323fffffffffffffffffffffff6021557019f0028ec1ffffffffffffffffffffffff6022557018ded91f0e7fffffffffffffffffffffff6023557017d8ec7f0417ffffffffffffffffffffff6024557016ddc6556cdbffffffffffffffffffffff6025557015ecf52776a1ffffffffffffffffffffff6026557015060c256cb2ffffffffffffffffffffff602755701428a2f98d72ffffffffffffffffffffff6028557013545598e5c23fffffffffffffffffffff602955701288c4161ce1dfffffffffffffffffffff602a557011c592761c666fffffffffffffffffffff602b5570110a688680a757ffffffffffffffffffff602c55701056f1b5bedf77ffffffffffffffffffff602d55700faadceceeff8bffffffffffffffffffff602e55700f05dc6b27edadffffffffffffffffffff602f55700e67a5a25da4107fffffffffffffffffff603055700dcff115b14eedffffffffffffffffffff603155700d3e7a392431239fffffffffffffffffff603255700cb2ff529eb71e4fffffffffffffffffff603355700c2d415c3db974afffffffffffffffffff603455700bad03e7d883f69bffffffffffffffffff603555700b320d03b2c343d5ffffffffffffffffff603655700abc25204e02828dffffffffffffffffff603755700a4b16f74ee4bb207fffffffffffffffff6038557009deaf736ac1f569ffffffffffffffffff603955700976bd9952c7aa957fffffffffffffffff603a557009131271922eaa606fffffffffffffffff603b557008b380f3558668c46fffffffffffffffff603c55700857ddf0117efa215bffffffffffffffff603d557007ffffffffffffffffffffffffffffffff603e557007abbf6f6abb9d087fffffffffffffffff603f5570075af62cbac95f7dfa7fffffffffffffff60405570070d7fb7452e187ac13fffffffffffffff6041557006c3390ecc8af379295fffffffffffffff60425570067c00a3b07ffc01fd6fffffffffffffff604355700637b647c39cbb9d3d27ffffffffffffff6044557005f63b1fc104dbd39587ffffffffffffff6045557005b771955b36e12f7235ffffffffffffff60465570057b3d49dda84556d6f6ffffffffffffff60475570054183095b2c8ececf30ffffffffffffff60485570050a28be635ca2b888f77fffffffffffff6049557004d5156639708c9db33c3fffffffffffff604a557004a23105873875bd52dfdfffffffffffff604b55700471649d87199aa990756fffffffffffff604c557004429a21a029d4c1457cfbffffffffffff604d55700415bc6d6fb7dd71af2cb3ffffffffffff604e557003eab73b3bbfe282243ce1ffffffffffff604f557003c1771ac9fb6b4c18e229ffffffffffff605055700399e96897690418f785257fffffffffff605155700373fc456c53bb779bf0ea9fffffffffff60525570034f9e8e490c48e67e6ab8bfffffffffff60535570032cbfd4a7adc790560b3337ffffffffff60545570030b50570f6e5d2acca94613ffffffffff6055557002eb40f9f620fda6b56c2861ffffffffff6056557002cc8340ecb0d0f520a6af58ffffffffff6057557002af09481380a0a35cf1ba02ffffffffff605855700292c5bdd3b92ec810287b1b3fffffffff605955700277abdcdab07d5a77ac6d6b9fffffffff605a5570025daf6654b1eaa55fd64df5efffffffff605b55700244c49c648baa98192dce88b7ffffffff605c5570022ce03cd5619a311b2471268bffffffff605d55700215f77c045fbe885654a44a0fffffffff605e557001ffffffffffffffffffffffffffffffff605f557001eaefdbdaaee7421fc4d3ede5ffffffff6060557001d6bd8b2eb257df7e8ca57b09bfffffff6061557001c35fedd14b861eb0443f7f133fffffff6062557001b0ce43b322bcde4a56e8ada5afffffff60635570019f0028ec1fff007f5a195a39dfffffff60645570018ded91f0e72ee74f49b15ba527ffffff60655570017d8ec7f04136f4e5615fd41a63ffffff60665570016ddc6556cdb84bdc8d12d22e6fffffff60675570015ecf52776a1155b5bd8395814f7fffff60685570015060c256cb23b3b3cc3754cf40ffffff6069557001428a2f98d728ae223ddab715be3fffff606a5570013545598e5c23276ccf0ede68034fffff606b557001288c4161ce1d6f54b7f61081194fffff606c5570011c592761c666aa641d5a01a40f17ffff606d55700110a688680a7530515f3e6e6cfdcdffff606e557001056f1b5bedf75c6bcb2ce8aed428ffff606f556ffaadceceeff8a0890f3875f008277fff6070556ff05dc6b27edad306388a600f6ba0bfff6071556fe67a5a25da41063de1495d5b18cdbfff6072556fdcff115b14eedde6fc3aa5353f2e4fff6073556fd3e7a3924312399f9aae2e0f868f8fff6074556fcb2ff529eb71e41582cccd5a1ee26fff6075556fc2d415c3db974ab32a51840c0b67edff6076556fbad03e7d883f69ad5b0a186184e06bff6077556fb320d03b2c343d4829abd6075f0cc5ff6078556fabc25204e02828d73c6e80bcdb1a95bf6079556fa4b16f74ee4bb2040a1ec6c15fbbf2df607a556f9deaf736ac1f569deb1b5ae3f36c130f607b556f976bd9952c7aa957f5937d790ef65037607c556f9131271922eaa6064b73a22d0bd4f2bf607d556f8b380f3558668c46c91c49a2f8e967b9607e556f857ddf0117efa215952912839f6473e66000607f5b0155565b6f60e393c68d20b1bd09deaabc0373b9c560809081556f5f8f46e4854120989ed94719fb4c20116081556f5e479ebb9129fb1b7e72a648f992b6066082556f5d0bd23fe42dfedde2e9586be12b85fe6083556f5bdb29ddee979308ddfca81aeeb8095a6084556f5ab4fd8a260d2c7e2c0d2afcf0009dad6085556f5998b31359a55d48724c65cf090012216086556f5885bcad2b322dfc43e8860f9c018cf56087556f577b97aa1fe222bb452fdf111b1f0be26088556f5679cb5e3575632e5baa27e2b949f7046089556f557fe8241b3a31c83c732f1cdff4a1c5608a556f548d868026504875d6e59bbe95fc2a6b608b556f53a2465ce347cf34d05a867c17dd3088608c556f52bdce5dcd4faed59c7f5511cf8f8acc608d556f51dfcb453c07f8da817606e7885f7c3e608e556f5107ef6b0a5a2be8f8ff15590daa3cce608f556f5035f241d6eae0cd7bacba119993de7b6090556f4f698fe90d5b53d532171e1210164c666091556f4ea288ca297a0e6a09a0eee240e16c856092556f4de0a13fdcf5d4213fc398ba6e3becde6093556f4d23a145eef91fec06b06140804c48086094556f4c6b5430d4c1ee5526473db4ae0f11de6095556f4bb7886c240562eba11f4963a53b42406096556f4b080f3f1cb491d2d521e0ea4583521e6097556f4a5cbc96a05589cb4d86be1db31683646098556f49b566d40243517658d78c33162d6ece6099556f4911e6a02e5507a30f947383fd9a3276609a556f487216c2b31be4adc41db8a8d5cc0c88609b556f47d5d3fc4a7a1b188cd3d788b5c5e9fc609c556f473cfce4871a2c40bc4f9e1c32b955d0609d556f46a771ca578ab878485810e285e31c67609e556f4615149718aed4c258c373dc676aa72d609f556f4585c8b3f8fe489c6e1833ca4787138460a0556f44f972f174e41e5efb7e9d63c29ce73560a1556f446ff970ba86d8b00beb05ecebf3c4dc60a2556f43e9438ec88971812d6f198b5ccaad9660a3556f436539d11ff7bea657aeddb394e809ef60a4556f42e3c5d3e5a913401d86f66db5d81c2c60a5556f4264d2395303070ea726cbe98df6217460a6556f41e84a9a593bb7194c3a6349ecae4eea60a7556f416e1b785d13eba07a08f3f18876a5ab60a8556f40f6322ff389d423ba9dd7e7e7b7e80960a9556f40807cec8a466880ecf4184545d240a460aa556f400cea9ce88a8d3ae668e8ea0d9bf07f60ab556f3f9b6ae8772d4c55091e0ed7dfea0ac160ac556f3f2bee253fd84594f54bcaafac383a1360ad556f3ebe654e95208bb9210c575c081c595860ae556f3e52c1fc5665635b78ce1f05ad53c08660af556f3de8f65ac388101ddf718a6f5c1eff6560b0556f3d80f522d59bd0b328ca012df4cd2d4960b1556f3d1ab193129ea72b23648a161163a85a60b2556f3cb61f68d32576c135b95cfb53f76d7560b3556f3c5332d9f1aae851a3619e77e4cc847360b4556f3bf1e08edbe2aa109e1525f65759ef7360b5556f3b921d9cff13fa2c197746a3dfc4918f60b6556f3b33df818910bfc1a5aefb8f63ae2ac460b7556f3ad71c1c77e34fa32a9f184967eccbf660b8556f3a7bc9abf2c5bb53e2f7384a8a16521a60b9556f3a21dec7e76369783a68a0c6385a1c5760ba556f39c9525de6c9cdf7c1c157ca4a7a6ee360bb556f39721bad3dc85d1240ff0190e0adaac360bc556f391c324344d3248f0469eb28dd3d77e060bd556f38c78df7e3c796279fb4ff84394ab3da60be556f387426ea4638ae9aae08049d3554c20a60bf556f3821f57dbd2763256c1a99bbd205137860c0556f37d0f256cb46a8c92ff62fbbef28969860c1556f37811658591ffc7abdd1feaf3cef9b7360c2556f37325aa10e9e82f7df0f380f7997154b60c3556f36e4b888cfb408d873b9a80d439311c660c4556f3698299e59f4bb9de645fc9b08c64cca60c5556f364ca7a5012cb603023b57dd3ebfd50d60c6556f36022c928915b778ab1b06aaee7e61d460c7556f35b8b28d1a73dc27500ffe35559cc02860c8556f357033e951fe250ec5eb4e60955132d760c9556f3528ab2867934e3a21b5412e4c4f888160ca556f34e212f66c55057f9676c80094a61d5960cb556f349c66289e5b3c4b540c24f42fa4b9bb60cc556f34579fbbd0c733a9c8d6af6b0f7d00f760cd556f3413bad2e712288b924b5882b5b369bf60ce556f33d0b2b56286510ef730e213f71f12e960cf556f338e82ce00e2496262c64457535ba1a160d0556f334d26a96b373bb7c2f8ea1827f27a9260d1556f330c99f4f4211469e00b3e18c31475ea60d2556f32ccd87d6486094999c7d5e6f33237d860d3556f328dde2dd617b6665a2e8556f250c1af60d4556f324fa70e9adc270f8262755af5a99af960d5556f32122f443110611ca51040f41fa6e1e360d6556f31d5730e42c0831482f0f1485c4263d860d7556f31996ec6b07b4a83421b5ebc4ab4e1f160d8556f315e1ee0a68ff46bb43ec2b85032e87660d9556f31237fe7bc4deacf6775b9efa1a145f860da556f30e98e7f1cc5a356e44627a6972ea2ff60db556f30b04760b8917ec74205a3002650ec0560dc556f3077a75c803468e9132ce0cf3224241d60dd556f303fab57a6a275c36f19cda9bace667a60de556f3008504beb8dcbd2cf3bc1f6d5a064f060df556f2fd19346ed17dac61219ce0c2c5ac4b060e0556f2f9b7169808c324b5852fd3d54ba971460e1556f2f65e7e711cf4b064eea9c08cbdad57460e2556f2f30f405093042ddff8a251b6bf6d10360e3556f2efc931a3750f2e8bfe323edfe03757460e4556f2ec8c28e46dbe56d98685278339400cb60e5556f2e957fd933c3926d8a599b602379b85160e6556f2e62c882c7c9ed4473412702f08ba0e560e7556f2e309a221c12ba361e3ed695167feee260e8556f2dfef25d1f865ae18dd07cfea4bcea1060e9556f2dcdcee821cdc80decc02c44344aeb3160ea556f2d9d2d8562b34944d0b201bb87260c8360eb556f2d6d0c04a5b62a2c42636308669b729a60ec556f2d3d6842c9a235517fc5a0332691528f60ed556f2d0e402963fe1ea2834abc408c437c1060ee556f2cdf91ae602647908aff975e4d6a2a8c60ef556f2cb15ad3a1eb65f6d74a75da09a1b6c560f0556f2c8399a6ab8e9774d6fcff373d21072760f1556f2c564c4046f64edba6883ca06bbc453560f2556f2c2970c431f952641e05cb493e23eed360f3556f2bfd0560cd9eb14563bc7c0732856c1860f4556f2bd1084ed0332f7ff4150f9d0ef41a2c60f5556f2ba577d0fa1628b76d040b12a82492fb60f6556f2b7a5233cd21581e855e89dc2f1e8a9260f7556f2b4f95cd46904d05d72bdcde337d9cc760f8556f2b2540fc9b4d9abba3faca669191467560f9556f2afb5229f68d0830d8be8adb0a0db70f60fa556f2ad1c7c63a9b294c5bc73a3ba3ab7a2b60fb556f2aa8a04ac3cbe1ee1c9c86361465dbb860fc556f2a7fda392d725a44a2c8aeb9ab35430d60fd556f2a57741b18cde618717792b4faa216db60fe556f2a2f6c81f5d84dd950a35626d6d5503a90607f612a6a565b60008060008060007d10c6f7a0b5ed8d36b4c7f34938583621fafc8b0079a2834d26fa3fcc9ea98711156134e6577d10c6f7a0b5ed8d36b4c7f34938583621fafc8b0079a2834d26fa3fcc9eaa8704600101925082878115156134d457fe5b04965082868115156134e257fe5b0495505b6134fe620f424088026134f98989611214565b6117b0565b97620f4240899003975095505050505050565b600080600080608060020a861115801561352f5750608060020a8511155b1561353f5785859350935061138f565b608060020a86101561356b5784608060020a870281151561355c57fe5b04608060020a9350935061138f565b608060020a85101561359757608060020a86608060020a870281151561358d57fe5b049350935061138f565b8486116135a457846135a6565b855b91506135b6607f60020a836117fc565b60ff1660020a958690049695909404949350505050565b60006f2f16ac6c59de6f8d5d6f63c1482a7c8682116135f6576135ef8261368c565b9050610708565b817f400000000000000000000000000000000000000000000000000000000000000081151561362157fe5b0492915050565b60006f2f16ac6c59de6f8d5d6f63c1482a7c86821161364a576135ef82613aef565b7001af16ac6c59de6f8d5d6f63c1482a7c80821161366b576135ef82613f70565b706b22d43e72c326539cceeef8bb48f255ff8211610174576135ef82613fee565b60008181607f60020a82800204915070014d29a73a6e7b02c3668c7b0880000000820201607f60020a8483020491507002504a0cd9a7f7215b60f9be4800000000820201607f60020a848302049150700484d0a1191c0ead267967c7a4a0000000820201607f60020a84830204915070095ec580d7e8427a4baf26a90a00000000820201607f60020a848302049150701440b0be1615a47dba6e5b3b1f10000000820201607f60020a848302049150702d207601f46a99b4112418400000000000820201607f60020a8483020491507066ebaac4c37c622dd8288a7eb1b2000000820201607f60020a84830204915070ef17240135f7dbd43a1ba10cf200000000820201607f60020a848302049150710233c33c676a5eb2416094a87b3657000000820201607f60020a848302049150710541cde48bc0254bed49a9f8700000000000820201607f60020a848302049150710cae1fad2cdd4d4cb8d73abca0d19a400000820201607f60020a848302049150711edb2aa2f760d15c41ceedba956400000000820201607f60020a848302049150714ba8d20d2dabd386c9529659841a2e200000820201607f60020a84830204915071bac08546b867cdaa20000000000000000000820201607f60020a8483020491507201cfa8e70c03625b9db76c8ebf5bbf24820000820201607f60020a8483020491507204851d99f82060df265f3309b26f8200000000820201607f60020a848302049150720b550d19b129d270c44f6f55f027723cbb0000820201607f60020a848302049150721c877dadc761dc272deb65d4b0000000000000820201607f60020a8483020491507248178ece97479f33a77f2ad22a81b64406c000820201607f60020a84830204915072b6ca8268b9d810fedf6695ef2f8a6c00000000820201607f60020a8483020491507301d0e76631a5b05d007b8cb72a7c7f11ec36e000820201607f60020a8483020491507304a1c37bd9f85fd9c6c780000000000000000000820201607f60020a848302049150730bd8369f1b702bf491e2ebfcee08250313b65400820201607f60020a848302049150731e5c7c32a9f6c70ab2cb59d9225764d400000000820201607f60020a848302049150734dff5820e165e910f95120a708e742496221e600820201607f60020a84830204915073c8c8f66db1fced378ee50e536000000000000000820201607f60020a848302049150740205db8dffff45bfa2938f128f599dbf16eb11d880820201607f60020a84830204915074053a044ebd984351493e1786af38d39a0800000000820201607f60020a848302049150740d86dae2a4cc0f47633a544479735869b487b59c40820201607f60020a84830204915074231000000000000000000000000000000000000000820201607f60020a848302049150745b0485a76f6646c2039db1507cdd51b08649680822820201607f60020a84830204915074ec983c46c49545bc17efa6b5b0055e242200000000820201607f60020a846fde1bc4d19efcac82445da75b0000000083040101949350505050565b600081607f60020a8181036fde1bc4d19efcac82445da75b00000000029082800204915070014d29a73a6e7b02c3668c7b0880000000820201607f60020a8483020491507002504a0cd9a7f7215b60f9be480000000082029003607f60020a848302049150700484d0a1191c0ead267967c7a4a0000000820201607f60020a84830204915070095ec580d7e8427a4baf26a90a0000000082029003607f60020a848302049150701440b0be1615a47dba6e5b3b1f10000000820201607f60020a848302049150702d207601f46a99b411241840000000000082029003607f60020a8483020491507066ebaac4c37c622dd8288a7eb1b2000000820201607f60020a84830204915070ef17240135f7dbd43a1ba10cf20000000082029003607f60020a848302049150710233c33c676a5eb2416094a87b3657000000820201607f60020a848302049150710541cde48bc0254bed49a9f870000000000082029003607f60020a848302049150710cae1fad2cdd4d4cb8d73abca0d19a400000820201607f60020a848302049150711edb2aa2f760d15c41ceedba95640000000082029003607f60020a848302049150714ba8d20d2dabd386c9529659841a2e200000820201607f60020a84830204915071bac08546b867cdaa2000000000000000000082029003607f60020a8483020491507201cfa8e70c03625b9db76c8ebf5bbf24820000820201607f60020a8483020491507204851d99f82060df265f3309b26f820000000082029003607f60020a848302049150720b550d19b129d270c44f6f55f027723cbb0000820201607f60020a848302049150721c877dadc761dc272deb65d4b000000000000082029003607f60020a8483020491507248178ece97479f33a77f2ad22a81b64406c000820201607f60020a84830204915072b6ca8268b9d810fedf6695ef2f8a6c0000000082029003607f60020a8483020491507301d0e76631a5b05d007b8cb72a7c7f11ec36e000820201607f60020a8483020491507304a1c37bd9f85fd9c6c78000000000000000000082029003607f60020a848302049150730bd8369f1b702bf491e2ebfcee08250313b65400820201607f60020a848302049150731e5c7c32a9f6c70ab2cb59d9225764d40000000082029003607f60020a848302049150734dff5820e165e910f95120a708e742496221e600820201607f60020a84830204915073c8c8f66db1fced378ee50e53600000000000000082029003607f60020a848302049150740205db8dffff45bfa2938f128f599dbf16eb11d880820201607f60020a84830204915074053a044ebd984351493e1786af38d39a080000000082029003607f60020a848302049150740d86dae2a4cc0f47633a544479735869b487b59c40820201607f60020a8483020491507423100000000000000000000000000000000000000082029003607f60020a848302049150745b0485a76f6646c2039db1507cdd51b08649680822820201607f60020a84830204915074ec983c46c49545bc17efa6b5b0055e242200000000820290036fde1bc4d19efcac82445da75b00000000815b04949350505050565b60006f2f16ac6c59de6f8d5d6f63c1482a7c861982016f03060c183060c183060c183060c18306808204908181029060018301028480608085818110613fb257fe5b01549150608060018601818110613fc557fe5b01546f03060c183060c183060c183060c183069487030295909203029390930104949350505050565b600080600070015bf0a8b1457695355fb8ac404e7a79e3841061401957614014846117e2565b614022565b61402284611398565b915070015bf0a8b1457695355fb8ac404e7a79e3821061404a57614045826117e2565b614053565b61405382611398565b905083607f60020a83607f60020a840281151561406c57fe5b048385030102811515613f6757fe004552525f494e56414c49445f535550504c5900000000000000000000000000004552525f494e56414c49445f524553455256455f42414c414e43450000000000a165627a7a7230582044f02762b5e42ac5c4daf454d158a089ec58a9a518279e70025d2514a1c9b3920029", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x40E7 DUP1 PUSH2 0x20 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x174 JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x1DA6BBFB DUP2 EQ PUSH2 0x179 JUMPI DUP1 PUSH4 0x29A00E7C EQ PUSH2 0x1B2 JUMPI DUP1 PUSH4 0x2F55BDB5 EQ PUSH2 0x1D9 JUMPI DUP1 PUSH4 0x35B49AF4 EQ PUSH2 0x200 JUMPI DUP1 PUSH4 0x3E75C6CA EQ PUSH2 0x227 JUMPI DUP1 PUSH4 0x3E8A38AB EQ PUSH2 0x265 JUMPI DUP1 PUSH4 0x47D0B686 EQ PUSH2 0x27D JUMPI DUP1 PUSH4 0x48D73FED EQ PUSH2 0x1B2 JUMPI DUP1 PUSH4 0x4982D52D EQ PUSH2 0x298 JUMPI DUP1 PUSH4 0x49F9B0F7 EQ PUSH2 0x2B0 JUMPI DUP1 PUSH4 0x54FD4D50 EQ PUSH2 0x2D7 JUMPI DUP1 PUSH4 0x65098BB3 EQ PUSH2 0x303 JUMPI DUP1 PUSH4 0x6CAB5055 EQ PUSH2 0x331 JUMPI DUP1 PUSH4 0x76CF0B56 EQ PUSH2 0x34F JUMPI DUP1 PUSH4 0x79C1B450 EQ PUSH2 0x303 JUMPI DUP1 PUSH4 0x8074590A EQ PUSH2 0x376 JUMPI DUP1 PUSH4 0x8C5CE82A EQ PUSH2 0x39D JUMPI DUP1 PUSH4 0x94491FAB EQ PUSH2 0x3E2 JUMPI DUP1 PUSH4 0x9D114108 EQ PUSH2 0x303 JUMPI DUP1 PUSH4 0xA11AA1B4 EQ PUSH2 0x410 JUMPI DUP1 PUSH4 0xA25A34B1 EQ PUSH2 0x434 JUMPI DUP1 PUSH4 0xABFD231D EQ PUSH2 0x200 JUMPI DUP1 PUSH4 0xACDEE8CB EQ PUSH2 0x462 JUMPI DUP1 PUSH4 0xCE782E08 EQ PUSH2 0x47A JUMPI DUP1 PUSH4 0xE1C7392A EQ PUSH2 0x492 JUMPI DUP1 PUSH4 0xE4883121 EQ PUSH2 0x4A9 JUMPI DUP1 PUSH4 0xEBBB2158 EQ PUSH2 0x4C4 JUMPI DUP1 PUSH4 0xF3250FE2 EQ PUSH2 0x4EB JUMPI DUP1 PUSH4 0xF732F1C9 EQ PUSH2 0x2B0 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x185 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A0 PUSH1 0x4 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH4 0xFFFFFFFF PUSH1 0x44 CALLDATALOAD AND PUSH1 0x64 CALLDATALOAD PUSH2 0x512 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1BE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A0 PUSH1 0x4 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH4 0xFFFFFFFF PUSH1 0x44 CALLDATALOAD AND PUSH1 0x64 CALLDATALOAD PUSH2 0x529 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1E5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A0 PUSH1 0x4 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH4 0xFFFFFFFF PUSH1 0x44 CALLDATALOAD AND PUSH1 0x64 CALLDATALOAD PUSH2 0x537 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x20C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A0 PUSH1 0x4 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH4 0xFFFFFFFF PUSH1 0x44 CALLDATALOAD AND PUSH1 0x64 CALLDATALOAD PUSH2 0x6D4 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x233 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x242 PUSH1 0x4 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH2 0x6E2 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH4 0xFFFFFFFF SWAP4 DUP5 AND DUP2 MSTORE SWAP2 SWAP1 SWAP3 AND PUSH1 0x20 DUP3 ADD MSTORE DUP2 MLOAD SWAP1 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x271 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A0 PUSH1 0x4 CALLDATALOAD PUSH2 0x6FA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x289 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A0 PUSH1 0x4 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH2 0x70D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2A4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A0 PUSH1 0x4 CALLDATALOAD PUSH2 0x720 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2BC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A0 PUSH1 0x4 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH4 0xFFFFFFFF PUSH1 0x44 CALLDATALOAD AND PUSH1 0x64 CALLDATALOAD PUSH2 0x72B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2E3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2EC PUSH2 0x739 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0xFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x30F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A0 PUSH1 0x4 CALLDATALOAD PUSH4 0xFFFFFFFF PUSH1 0x24 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x44 CALLDATALOAD SWAP1 PUSH1 0x64 CALLDATALOAD AND PUSH1 0x84 CALLDATALOAD PUSH2 0x73E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x33D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A0 PUSH1 0x4 CALLDATALOAD PUSH1 0xFF PUSH1 0x24 CALLDATALOAD AND PUSH2 0x757 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x35B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A0 PUSH1 0x4 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH4 0xFFFFFFFF PUSH1 0x44 CALLDATALOAD AND PUSH1 0x64 CALLDATALOAD PUSH2 0x763 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x382 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A0 PUSH1 0x4 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH4 0xFFFFFFFF PUSH1 0x44 CALLDATALOAD AND PUSH1 0x64 CALLDATALOAD PUSH2 0x968 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3A9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3C7 PUSH1 0x4 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH4 0xFFFFFFFF PUSH1 0x44 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x64 CALLDATALOAD AND PUSH2 0xB09 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0xFF SWAP1 SWAP2 AND PUSH1 0x20 DUP4 ADD MSTORE DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3EE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A0 PUSH1 0x4 CALLDATALOAD PUSH4 0xFFFFFFFF PUSH1 0x24 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x44 CALLDATALOAD SWAP1 PUSH1 0x64 CALLDATALOAD AND PUSH1 0x84 CALLDATALOAD PUSH2 0xB25 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x41C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x242 PUSH1 0x4 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH1 0x44 CALLDATALOAD PUSH1 0x64 CALLDATALOAD PUSH1 0x84 CALLDATALOAD PUSH2 0xCC1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x440 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x44C PUSH1 0x4 CALLDATALOAD PUSH2 0xE61 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x46E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A0 PUSH1 0x4 CALLDATALOAD PUSH2 0xE6C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x486 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x44C PUSH1 0x4 CALLDATALOAD PUSH2 0xE77 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x49E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4A7 PUSH2 0xE82 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4B5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x242 PUSH1 0x4 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH2 0xE94 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4D0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A0 PUSH1 0x4 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH4 0xFFFFFFFF PUSH1 0x44 CALLDATALOAD AND PUSH1 0x64 CALLDATALOAD PUSH2 0xEA1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4F7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A0 PUSH1 0x4 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH4 0xFFFFFFFF PUSH1 0x44 CALLDATALOAD AND PUSH1 0x64 CALLDATALOAD PUSH2 0x1048 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x520 DUP6 DUP6 DUP6 DUP6 PUSH2 0xEA1 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x520 DUP6 DUP6 DUP6 DUP6 PUSH2 0x1048 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP1 DUP1 DUP1 DUP10 GT PUSH2 0x582 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x407C DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP9 GT PUSH2 0x5C8 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x409C DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP8 PUSH4 0xFFFFFFFF AND GT DUP1 ISZERO PUSH2 0x5E7 JUMPI POP PUSH3 0x1E8480 PUSH4 0xFFFFFFFF DUP9 AND GT ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x63D JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F524154494F00000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP6 ISZERO ISZERO PUSH2 0x64D JUMPI PUSH1 0x0 SWAP5 POP PUSH2 0x6C8 JUMP JUMPDEST PUSH4 0xFFFFFFFF DUP8 AND PUSH3 0xF4240 EQ ISZERO PUSH2 0x680 JUMPI DUP8 PUSH2 0x66F DUP8 DUP12 PUSH4 0xFFFFFFFF PUSH2 0x1190 AND JUMP JUMPDEST DUP2 ISZERO ISZERO PUSH2 0x678 JUMPI INVALID JUMPDEST DIV SWAP5 POP PUSH2 0x6C8 JUMP JUMPDEST PUSH2 0x690 DUP9 DUP8 PUSH4 0xFFFFFFFF PUSH2 0x1214 AND JUMP JUMPDEST SWAP2 POP PUSH2 0x6A1 DUP3 DUP10 DUP10 PUSH3 0xF4240 PUSH2 0x1271 JUMP JUMPDEST SWAP1 SWAP5 POP SWAP3 POP PUSH1 0xFF DUP4 AND PUSH2 0x6BA DUP11 DUP7 PUSH4 0xFFFFFFFF PUSH2 0x1190 AND JUMP JUMPDEST SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP1 POP DUP9 DUP2 SUB SWAP5 POP JUMPDEST POP POP POP POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x520 DUP6 DUP6 DUP6 DUP6 PUSH2 0x968 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x6EF DUP5 DUP5 PUSH2 0x135B JUMP JUMPDEST SWAP2 POP SWAP2 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x705 DUP3 PUSH2 0x1398 JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x719 DUP4 DUP4 PUSH2 0x17B0 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x705 DUP3 PUSH2 0x17E2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x520 DUP6 DUP6 DUP6 DUP6 PUSH2 0x763 JUMP JUMPDEST PUSH1 0x8 DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x74D DUP7 DUP7 DUP7 DUP7 DUP7 PUSH2 0xB25 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x719 DUP4 DUP4 PUSH2 0x189C JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP1 DUP1 DUP1 DUP1 DUP11 GT PUSH2 0x7AF JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x407C DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP10 GT PUSH2 0x7F5 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x409C DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP9 PUSH4 0xFFFFFFFF AND GT DUP1 ISZERO PUSH2 0x814 JUMPI POP PUSH3 0xF4240 PUSH4 0xFFFFFFFF DUP10 AND GT ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x86A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F574549474854000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP10 DUP8 GT ISZERO PUSH2 0x8C2 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F414D4F554E540000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP7 ISZERO ISZERO PUSH2 0x8D2 JUMPI PUSH1 0x0 SWAP6 POP PUSH2 0x95B JUMP JUMPDEST DUP10 DUP8 EQ ISZERO PUSH2 0x8E2 JUMPI DUP9 SWAP6 POP PUSH2 0x95B JUMP JUMPDEST PUSH4 0xFFFFFFFF DUP9 AND PUSH3 0xF4240 EQ ISZERO PUSH2 0x915 JUMPI DUP10 PUSH2 0x904 DUP11 DUP10 PUSH4 0xFFFFFFFF PUSH2 0x1190 AND JUMP JUMPDEST DUP2 ISZERO ISZERO PUSH2 0x90D JUMPI INVALID JUMPDEST DIV SWAP6 POP PUSH2 0x95B JUMP JUMPDEST DUP7 DUP11 SUB SWAP3 POP PUSH2 0x929 DUP11 DUP5 PUSH3 0xF4240 DUP12 PUSH2 0x1271 JUMP JUMPDEST SWAP1 SWAP6 POP SWAP4 POP PUSH2 0x93E DUP10 DUP7 PUSH4 0xFFFFFFFF PUSH2 0x1190 AND JUMP JUMPDEST SWAP2 POP POP PUSH1 0xFF DUP4 AND PUSH1 0x2 EXP DUP9 MUL DUP5 DUP2 DUP4 SUB DUP2 ISZERO ISZERO PUSH2 0x957 JUMPI INVALID JUMPDEST DIV SWAP6 POP JUMPDEST POP POP POP POP POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP1 DUP1 DUP1 DUP1 DUP11 GT PUSH2 0x9B4 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x407C DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP10 GT PUSH2 0x9FA JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x409C DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP9 PUSH4 0xFFFFFFFF AND GT DUP1 ISZERO PUSH2 0xA19 JUMPI POP PUSH3 0x1E8480 PUSH4 0xFFFFFFFF DUP10 AND GT ISZERO JUMPDEST ISZERO ISZERO PUSH2 0xA6F JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F524154494F00000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP10 DUP8 GT ISZERO PUSH2 0xAC7 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F414D4F554E540000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP7 ISZERO ISZERO PUSH2 0xAD7 JUMPI PUSH1 0x0 SWAP6 POP PUSH2 0x95B JUMP JUMPDEST DUP10 DUP8 EQ ISZERO PUSH2 0xAE7 JUMPI DUP9 SWAP6 POP PUSH2 0x95B JUMP JUMPDEST PUSH4 0xFFFFFFFF DUP9 AND PUSH3 0xF4240 EQ ISZERO PUSH2 0x915 JUMPI DUP10 PUSH2 0x904 DUP9 DUP12 PUSH4 0xFFFFFFFF PUSH2 0x1190 AND JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xB18 DUP7 DUP7 DUP7 DUP7 PUSH2 0x1271 JUMP JUMPDEST SWAP2 POP SWAP2 POP SWAP5 POP SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP12 GT DUP1 ISZERO PUSH2 0xB3E JUMPI POP PUSH1 0x0 DUP10 GT JUMPDEST ISZERO ISZERO PUSH2 0xB82 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x409C DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP11 PUSH4 0xFFFFFFFF AND GT DUP1 ISZERO PUSH2 0xBA1 JUMPI POP PUSH3 0xF4240 PUSH4 0xFFFFFFFF DUP12 AND GT ISZERO JUMPDEST DUP1 ISZERO PUSH2 0xBB3 JUMPI POP PUSH1 0x0 DUP9 PUSH4 0xFFFFFFFF AND GT JUMPDEST DUP1 ISZERO PUSH2 0xBC8 JUMPI POP PUSH3 0xF4240 PUSH4 0xFFFFFFFF DUP10 AND GT ISZERO JUMPDEST ISZERO ISZERO PUSH2 0xC1E JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F574549474854000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP8 PUSH4 0xFFFFFFFF AND DUP11 PUSH4 0xFFFFFFFF AND EQ ISZERO PUSH2 0xC63 JUMPI PUSH2 0xC42 DUP12 DUP9 PUSH4 0xFFFFFFFF PUSH2 0x1214 AND JUMP JUMPDEST PUSH2 0xC52 DUP11 DUP10 PUSH4 0xFFFFFFFF PUSH2 0x1190 AND JUMP JUMPDEST DUP2 ISZERO ISZERO PUSH2 0xC5B JUMPI INVALID JUMPDEST DIV SWAP6 POP PUSH2 0xCB3 JUMP JUMPDEST PUSH2 0xC73 DUP12 DUP9 PUSH4 0xFFFFFFFF PUSH2 0x1214 AND JUMP JUMPDEST SWAP3 POP PUSH2 0xC81 DUP4 DUP13 DUP13 DUP12 PUSH2 0x1271 JUMP JUMPDEST SWAP1 SWAP6 POP SWAP4 POP PUSH2 0xC96 DUP10 DUP7 PUSH4 0xFFFFFFFF PUSH2 0x1190 AND JUMP JUMPDEST SWAP2 POP POP PUSH1 0xFF DUP4 AND PUSH1 0x2 EXP DUP9 MUL DUP5 DUP2 DUP4 SUB DUP2 ISZERO ISZERO PUSH2 0xCAF JUMPI INVALID JUMPDEST DIV SWAP6 POP JUMPDEST POP POP POP POP POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 DUP8 DUP10 EQ ISZERO PUSH2 0xD27 JUMPI PUSH1 0x0 DUP10 GT DUP1 PUSH2 0xCDE JUMPI POP PUSH1 0x0 DUP8 GT JUMPDEST ISZERO ISZERO PUSH2 0xD22 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x409C DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0xD87 JUMP JUMPDEST PUSH1 0x0 DUP10 GT DUP1 ISZERO PUSH2 0xD37 JUMPI POP PUSH1 0x0 DUP9 GT JUMPDEST DUP1 ISZERO PUSH2 0xD43 JUMPI POP PUSH1 0x0 DUP8 GT JUMPDEST ISZERO ISZERO PUSH2 0xD87 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x409C DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP7 GT DUP1 ISZERO PUSH2 0xD97 JUMPI POP PUSH1 0x0 DUP6 GT JUMPDEST ISZERO ISZERO PUSH2 0xDED JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F524154450000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0xDFD DUP10 DUP8 PUSH4 0xFFFFFFFF PUSH2 0x1190 AND JUMP JUMPDEST SWAP2 POP PUSH2 0xE0F DUP8 DUP7 PUSH4 0xFFFFFFFF PUSH2 0x1190 AND JUMP JUMPDEST SWAP1 POP DUP8 DUP10 LT ISZERO PUSH2 0xE30 JUMPI PUSH2 0xE27 DUP9 DUP11 DUP5 DUP5 PUSH1 0x1 PUSH2 0x1CBF JUMP JUMPDEST SWAP4 POP SWAP4 POP PUSH2 0xE55 JUMP JUMPDEST DUP8 DUP10 GT ISZERO PUSH2 0xE46 JUMPI PUSH2 0xE27 DUP10 DUP10 DUP5 DUP5 PUSH1 0x0 PUSH2 0x1CBF JUMP JUMPDEST PUSH2 0xE50 DUP3 DUP3 PUSH2 0x135B JUMP JUMPDEST SWAP4 POP SWAP4 POP JUMPDEST POP POP SWAP6 POP SWAP6 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x705 DUP3 PUSH2 0x1DA2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x705 DUP3 PUSH2 0x1E2F JUMP JUMPDEST PUSH1 0x0 PUSH2 0x705 DUP3 PUSH2 0x222F JUMP JUMPDEST PUSH2 0xE8A PUSH2 0x2298 JUMP JUMPDEST PUSH2 0xE92 PUSH2 0x2A6E JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x6EF DUP5 DUP5 PUSH2 0x3475 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP1 DUP1 DUP1 DUP10 GT PUSH2 0xEEC JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x407C DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP9 GT PUSH2 0xF32 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x409C DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP8 PUSH4 0xFFFFFFFF AND GT DUP1 ISZERO PUSH2 0xF51 JUMPI POP PUSH3 0x1E8480 PUSH4 0xFFFFFFFF DUP9 AND GT ISZERO JUMPDEST ISZERO ISZERO PUSH2 0xFA7 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F524154494F00000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP6 ISZERO ISZERO PUSH2 0xFB7 JUMPI PUSH1 0x0 SWAP5 POP PUSH2 0x6C8 JUMP JUMPDEST PUSH4 0xFFFFFFFF DUP8 AND PUSH3 0xF4240 EQ ISZERO PUSH2 0xFF0 JUMPI DUP9 PUSH1 0x1 PUSH2 0xFDB DUP9 DUP12 PUSH4 0xFFFFFFFF PUSH2 0x1190 AND JUMP JUMPDEST SUB DUP2 ISZERO ISZERO PUSH2 0xFE5 JUMPI INVALID JUMPDEST DIV PUSH1 0x1 ADD SWAP5 POP PUSH2 0x6C8 JUMP JUMPDEST PUSH2 0x1000 DUP10 DUP8 PUSH4 0xFFFFFFFF PUSH2 0x1214 AND JUMP JUMPDEST SWAP2 POP PUSH2 0x1011 DUP3 DUP11 PUSH3 0xF4240 DUP11 PUSH2 0x1271 JUMP JUMPDEST SWAP1 SWAP5 POP SWAP3 POP PUSH1 0xFF DUP4 AND PUSH1 0x1 PUSH2 0x102C DUP11 DUP8 PUSH4 0xFFFFFFFF PUSH2 0x1190 AND JUMP JUMPDEST PUSH1 0x2 SWAP3 SWAP1 SWAP3 EXP SWAP2 SUB DIV SWAP8 SWAP1 SWAP8 SUB PUSH1 0x1 ADD SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP1 DUP1 DUP1 DUP10 GT PUSH2 0x1093 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x407C DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP9 GT PUSH2 0x10D9 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x409C DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP8 PUSH4 0xFFFFFFFF AND GT DUP1 ISZERO PUSH2 0x10F8 JUMPI POP PUSH3 0xF4240 PUSH4 0xFFFFFFFF DUP9 AND GT ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x114E JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F574549474854000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP6 ISZERO ISZERO PUSH2 0x115E JUMPI PUSH1 0x0 SWAP5 POP PUSH2 0x6C8 JUMP JUMPDEST PUSH4 0xFFFFFFFF DUP8 AND PUSH3 0xF4240 EQ ISZERO PUSH2 0x1180 JUMPI DUP8 PUSH2 0x66F DUP11 DUP9 PUSH4 0xFFFFFFFF PUSH2 0x1190 AND JUMP JUMPDEST PUSH2 0x690 DUP7 DUP10 PUSH4 0xFFFFFFFF PUSH2 0x1214 AND JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 ISZERO ISZERO PUSH2 0x11A3 JUMPI PUSH1 0x0 SWAP2 POP PUSH2 0x120D JUMP JUMPDEST POP DUP3 DUP3 MUL DUP3 DUP5 DUP3 DUP2 ISZERO ISZERO PUSH2 0x11B3 JUMPI INVALID JUMPDEST DIV EQ PUSH2 0x1209 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP1 SWAP2 POP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 ADD DUP4 DUP2 LT ISZERO PUSH2 0x1209 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP1 DUP1 DUP1 PUSH17 0x200000000000000000000000000000000 DUP11 LT PUSH2 0x1295 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP9 PUSH1 0x7F PUSH1 0x2 EXP DUP12 MUL DUP2 ISZERO ISZERO PUSH2 0x12A6 JUMPI INVALID JUMPDEST DIV SWAP3 POP PUSH17 0x15BF0A8B1457695355FB8AC404E7A79E3 DUP4 LT ISZERO PUSH2 0x12D2 JUMPI PUSH2 0x12CB DUP4 PUSH2 0x1398 JUMP JUMPDEST SWAP4 POP PUSH2 0x12DE JUMP JUMPDEST PUSH2 0x12DB DUP4 PUSH2 0x17E2 JUMP JUMPDEST SWAP4 POP JUMPDEST DUP7 PUSH4 0xFFFFFFFF AND DUP9 PUSH4 0xFFFFFFFF AND DUP6 MUL DUP2 ISZERO ISZERO PUSH2 0x12F7 JUMPI INVALID JUMPDEST DIV SWAP2 POP PUSH17 0x800000000000000000000000000000000 DUP3 LT ISZERO PUSH2 0x1327 JUMPI PUSH2 0x131C DUP3 PUSH2 0x1E2F JUMP JUMPDEST PUSH1 0x7F SWAP6 POP SWAP6 POP PUSH2 0x134E JUMP JUMPDEST PUSH2 0x1330 DUP3 PUSH2 0x1DA2 JUMP JUMPDEST SWAP1 POP PUSH2 0x1348 PUSH1 0xFF PUSH1 0x7F DUP4 SWAP1 SUB AND PUSH1 0x2 EXP DUP4 DIV DUP3 PUSH2 0x189C JUMP JUMPDEST DUP2 SWAP6 POP SWAP6 POP JUMPDEST POP POP POP POP SWAP5 POP SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP1 DUP5 DUP7 GT PUSH2 0x137A JUMPI PUSH2 0x1371 DUP7 DUP7 PUSH2 0x3475 JUMP JUMPDEST SWAP4 POP SWAP4 POP PUSH2 0x138F JUMP JUMPDEST PUSH2 0x1384 DUP6 DUP8 PUSH2 0x3475 JUMP JUMPDEST SWAP2 POP SWAP2 POP DUP1 DUP3 SWAP4 POP SWAP4 POP JUMPDEST POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP1 DUP1 PUSH16 0xD3094C70F034DE4B96FF7D5B6F99FCD8 DUP7 LT PUSH2 0x13E7 JUMPI PUSH16 0x40000000000000000000000000000000 SWAP4 SWAP1 SWAP4 ADD SWAP3 PUSH16 0xD3094C70F034DE4B96FF7D5B6F99FCD8 PUSH1 0x7F PUSH1 0x2 EXP DUP8 MUL DIV SWAP6 POP JUMPDEST PUSH16 0xA45AF1E1F40C333B3DE1DB4DD55F29A7 DUP7 LT PUSH2 0x1430 JUMPI PUSH16 0x20000000000000000000000000000000 SWAP4 SWAP1 SWAP4 ADD SWAP3 PUSH16 0xA45AF1E1F40C333B3DE1DB4DD55F29A7 PUSH1 0x7F PUSH1 0x2 EXP DUP8 MUL DIV SWAP6 POP JUMPDEST PUSH16 0x910B022DB7AE67CE76B441C27035C6A1 DUP7 LT PUSH2 0x1479 JUMPI PUSH16 0x10000000000000000000000000000000 SWAP4 SWAP1 SWAP4 ADD SWAP3 PUSH16 0x910B022DB7AE67CE76B441C27035C6A1 PUSH1 0x7F PUSH1 0x2 EXP DUP8 MUL DIV SWAP6 POP JUMPDEST PUSH16 0x88415ABBE9A76BEAD8D00CF112E4D4A8 DUP7 LT PUSH2 0x14C2 JUMPI PUSH16 0x8000000000000000000000000000000 SWAP4 SWAP1 SWAP4 ADD SWAP3 PUSH16 0x88415ABBE9A76BEAD8D00CF112E4D4A8 PUSH1 0x7F PUSH1 0x2 EXP DUP8 MUL DIV SWAP6 POP JUMPDEST PUSH16 0x84102B00893F64C705E841D5D4064BD3 DUP7 LT PUSH2 0x150B JUMPI PUSH16 0x4000000000000000000000000000000 SWAP4 SWAP1 SWAP4 ADD SWAP3 PUSH16 0x84102B00893F64C705E841D5D4064BD3 PUSH1 0x7F PUSH1 0x2 EXP DUP8 MUL DIV SWAP6 POP JUMPDEST PUSH16 0x8204055AAEF1C8BD5C3259F4822735A2 DUP7 LT PUSH2 0x1554 JUMPI PUSH16 0x2000000000000000000000000000000 SWAP4 SWAP1 SWAP4 ADD SWAP3 PUSH16 0x8204055AAEF1C8BD5C3259F4822735A2 PUSH1 0x7F PUSH1 0x2 EXP DUP8 MUL DIV SWAP6 POP JUMPDEST PUSH16 0x810100AB00222D861931C15E39B44E99 DUP7 LT PUSH2 0x159D JUMPI PUSH16 0x1000000000000000000000000000000 SWAP4 SWAP1 SWAP4 ADD SWAP3 PUSH16 0x810100AB00222D861931C15E39B44E99 PUSH1 0x7F PUSH1 0x2 EXP DUP8 MUL DIV SWAP6 POP JUMPDEST PUSH16 0x808040155AABBBE9451521693554F733 DUP7 LT PUSH2 0x15E5 JUMPI PUSH15 0x800000000000000000000000000000 SWAP4 SWAP1 SWAP4 ADD SWAP3 PUSH16 0x808040155AABBBE9451521693554F733 PUSH1 0x7F PUSH1 0x2 EXP DUP8 MUL DIV SWAP6 POP JUMPDEST PUSH16 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT DUP7 ADD SWAP3 POP DUP3 SWAP2 POP PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP1 MUL DIV SWAP1 POP PUSH1 0x80 PUSH1 0x2 EXP DUP4 DUP2 SUB DUP4 MUL DIV SWAP4 SWAP1 SWAP4 ADD SWAP3 PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DIV SWAP2 POP PUSH17 0x200000000000000000000000000000000 PUSH16 0xAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA DUP5 SWAP1 SUB DUP4 MUL DIV SWAP4 SWAP1 SWAP4 ADD SWAP3 PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DIV SWAP2 POP PUSH17 0x300000000000000000000000000000000 PUSH16 0x99999999999999999999999999999999 DUP5 SWAP1 SUB DUP4 MUL DIV SWAP4 SWAP1 SWAP4 ADD SWAP3 PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DIV SWAP2 POP PUSH17 0x400000000000000000000000000000000 PUSH16 0x92492492492492492492492492492492 DUP5 SWAP1 SUB DUP4 MUL DIV SWAP4 SWAP1 SWAP4 ADD SWAP3 PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DIV SWAP2 POP PUSH17 0x500000000000000000000000000000000 PUSH16 0x8E38E38E38E38E38E38E38E38E38E38E DUP5 SWAP1 SUB DUP4 MUL DIV SWAP4 SWAP1 SWAP4 ADD SWAP3 PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DIV SWAP2 POP PUSH17 0x600000000000000000000000000000000 PUSH16 0x8BA2E8BA2E8BA2E8BA2E8BA2E8BA2E8B DUP5 SWAP1 SUB DUP4 MUL DIV SWAP4 SWAP1 SWAP4 ADD SWAP3 PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DIV SWAP2 POP PUSH17 0x700000000000000000000000000000000 PUSH16 0x89D89D89D89D89D89D89D89D89D89D89 DUP5 SWAP1 SUB DUP4 MUL DIV SWAP4 SWAP1 SWAP4 ADD SWAP3 PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DIV SWAP2 POP PUSH17 0x800000000000000000000000000000000 PUSH16 0x88888888888888888888888888888888 DUP5 SWAP1 SUB DUP4 MUL DIV SWAP4 SWAP1 SWAP4 ADD SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV DUP3 SUB DUP3 DUP5 DUP2 ISZERO ISZERO PUSH2 0x17C3 JUMPI INVALID JUMPDEST MOD DUP2 ISZERO ISZERO PUSH2 0x17CD JUMPI INVALID JUMPDEST DIV DUP3 DUP5 DUP2 ISZERO ISZERO PUSH2 0x17D9 JUMPI INVALID JUMPDEST DIV ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP1 PUSH1 0x80 PUSH1 0x2 EXP DUP6 LT PUSH2 0x181A JUMPI PUSH2 0x1802 PUSH1 0x7F PUSH1 0x2 EXP DUP7 JUMPDEST DIV PUSH2 0x222F JUMP JUMPDEST PUSH1 0xFF DUP2 AND PUSH1 0x2 DUP2 SWAP1 EXP SWAP1 SWAP7 DIV SWAP6 PUSH1 0x7F PUSH1 0x2 EXP MUL SWAP4 POP SWAP2 POP JUMPDEST PUSH1 0x7F PUSH1 0x2 EXP DUP6 GT ISZERO PUSH2 0x186C JUMPI POP PUSH1 0x7F JUMPDEST PUSH1 0x0 DUP2 PUSH1 0xFF AND GT ISZERO PUSH2 0x186C JUMPI PUSH1 0x7F PUSH1 0x2 EXP DUP6 DUP1 MUL DIV SWAP5 POP PUSH1 0x80 PUSH1 0x2 EXP DUP6 LT PUSH2 0x1863 JUMPI PUSH1 0x2 SWAP5 DUP6 SWAP1 DIV SWAP5 PUSH1 0xFF PUSH1 0x0 NOT DUP4 ADD AND SWAP1 EXP SWAP3 SWAP1 SWAP3 ADD SWAP2 JUMPDEST PUSH1 0x0 NOT ADD PUSH2 0x182A JUMP JUMPDEST PUSH16 0x5B9DE1D10BF4103D647B0955897BA80 PUSH16 0x3F80FE03F80FE03F80FE03F80FE03F8 DUP5 MUL DIV SWAP4 POP JUMPDEST POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP5 SWAP2 POP PUSH1 0x0 SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH16 0x3442C4E6074A82F1797F72AC0000000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH16 0x116B96F757C380FB287FD0E40000000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH15 0x45AE5BDD5F0E03ECA1FF4390000000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH15 0xDEFABF91302CD95B9FFDA50000000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH15 0x2529CA9832B22439EFFF9B8000000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH14 0x54F1CF12BD04E516B6DA88000000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH14 0xA9E39E257A09CA2D6DB51000000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH14 0x12E066E7B839FA050C309000000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH13 0x1E33D7D926C329A1AD1A800000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH13 0x2BEE513BDB4A6B19B5F800000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH12 0x3A9316FA79B88ECCF2A00000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH12 0x48177EBE1FA812375200000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH11 0x5263FE90242DCBACF00000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH11 0x57E22099C030D94100000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH10 0x57E22099C030D9410000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH10 0x52B6B54569976310000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH9 0x4985F67696BF748000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH9 0x3DEA12EA99E498000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH8 0x31880F2214B6E000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH8 0x25BCFF56EB36000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH7 0x1B722E10AB1000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH7 0x1317C70077000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH6 0xCBA84AAFA00 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH5 0x82573A0A00 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH5 0x5035AD900 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH4 0x2F881B00 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH4 0x1B29340 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH3 0xEFC40 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH2 0x7FE0 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH2 0x420 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH1 0x21 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH1 0x1 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND PUSH1 0x1 SWAP1 PUSH1 0x2 EXP MUL DUP6 PUSH16 0x688589CC0E9505E2F2FEE5580000000 DUP4 DUP2 ISZERO ISZERO PUSH2 0x1CB3 JUMPI INVALID JUMPDEST DIV ADD ADD SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x1CD2 DUP10 DUP10 PUSH2 0x3511 JUMP JUMPDEST SWAP1 SWAP10 POP SWAP8 POP DUP10 PUSH2 0x1CEC DUP13 PUSH1 0x7F PUSH1 0x2 EXP PUSH4 0xFFFFFFFF PUSH2 0x1190 AND JUMP JUMPDEST DUP2 ISZERO ISZERO PUSH2 0x1CF5 JUMPI INVALID JUMPDEST DIV SWAP4 POP PUSH17 0x15BF0A8B1457695355FB8AC404E7A79E3 DUP5 LT PUSH2 0x1D1E JUMPI PUSH2 0x1D19 DUP5 PUSH2 0x17E2 JUMP JUMPDEST PUSH2 0x1D27 JUMP JUMPDEST PUSH2 0x1D27 DUP5 PUSH2 0x1398 JUMP JUMPDEST SWAP3 POP DUP8 PUSH2 0x1D3A DUP5 DUP12 PUSH4 0xFFFFFFFF PUSH2 0x1190 AND JUMP JUMPDEST DUP2 ISZERO ISZERO PUSH2 0x1D43 JUMPI INVALID JUMPDEST DIV SWAP2 POP DUP7 PUSH2 0x1D59 JUMPI PUSH2 0x1D54 DUP3 PUSH2 0x35CD JUMP JUMPDEST PUSH2 0x1D62 JUMP JUMPDEST PUSH2 0x1D62 DUP3 PUSH2 0x3628 JUMP JUMPDEST SWAP1 POP PUSH2 0x1D90 PUSH2 0x1D77 DUP3 DUP12 PUSH4 0xFFFFFFFF PUSH2 0x1190 AND JUMP JUMPDEST PUSH2 0x1D8B DUP11 PUSH1 0x7F PUSH1 0x2 EXP PUSH4 0xFFFFFFFF PUSH2 0x1190 AND JUMP JUMPDEST PUSH2 0x135B JUMP JUMPDEST SWAP6 POP SWAP6 POP POP POP POP POP SWAP6 POP SWAP6 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 PUSH1 0x7F DUP3 JUMPDEST DUP2 PUSH1 0xFF AND DUP4 PUSH1 0x1 ADD PUSH1 0xFF AND LT ISZERO PUSH2 0x1DEF JUMPI PUSH1 0x2 PUSH1 0xFF DUP5 DUP5 ADD AND DIV SWAP1 POP DUP5 PUSH1 0x0 PUSH1 0xFF DUP4 AND PUSH1 0x80 DUP2 LT PUSH2 0x1DD7 JUMPI INVALID JUMPDEST ADD SLOAD LT PUSH2 0x1DE6 JUMPI DUP1 SWAP3 POP PUSH2 0x1DEA JUMP JUMPDEST DUP1 SWAP2 POP JUMPDEST PUSH2 0x1DAA JUMP JUMPDEST DUP5 PUSH1 0x0 PUSH1 0xFF DUP5 AND PUSH1 0x80 DUP2 LT PUSH2 0x1E00 JUMPI INVALID JUMPDEST ADD SLOAD LT PUSH2 0x1E0F JUMPI DUP2 SWAP4 POP PUSH2 0x1894 JUMP JUMPDEST DUP5 PUSH1 0x0 PUSH1 0xFF DUP6 AND PUSH1 0x80 DUP2 LT PUSH2 0x1E20 JUMPI INVALID JUMPDEST ADD SLOAD LT PUSH2 0x174 JUMPI DUP3 SWAP4 POP PUSH2 0x1894 JUMP JUMPDEST PUSH1 0x0 PUSH8 0x168244FDAC78000 PUSH1 0x7F PUSH1 0x2 EXP PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP5 AND DUP1 DUP1 MUL DUP3 SWAP1 DIV DUP1 DUP3 MUL DUP4 SWAP1 DIV DUP1 DUP4 MUL DUP5 SWAP1 DIV SWAP5 DUP6 MUL PUSH8 0x10E1B3BE415A0000 SWAP1 SWAP3 MUL PUSH8 0x5A0913F6B1E0000 SWAP2 SWAP1 SWAP2 MUL ADD ADD SWAP3 SWAP1 SWAP2 DUP2 DUP4 MUL DIV SWAP1 POP DUP1 PUSH7 0x4807432BC18000 MUL DUP4 ADD SWAP3 POP PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DUP2 ISZERO ISZERO PUSH2 0x1EAA JUMPI INVALID JUMPDEST DIV SWAP1 POP DUP1 PUSH7 0xC0135DCA04000 MUL DUP4 ADD SWAP3 POP PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DUP2 ISZERO ISZERO PUSH2 0x1ECC JUMPI INVALID JUMPDEST DIV SWAP1 POP DUP1 PUSH7 0x1B707B1CDC000 MUL DUP4 ADD SWAP3 POP PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DUP2 ISZERO ISZERO PUSH2 0x1EEE JUMPI INVALID JUMPDEST DIV SWAP1 POP DUP1 PUSH6 0x36E0F639B800 MUL DUP4 ADD SWAP3 POP PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DUP2 ISZERO ISZERO PUSH2 0x1F0F JUMPI INVALID JUMPDEST DIV SWAP1 POP DUP1 PUSH6 0x618FEE9F800 MUL DUP4 ADD SWAP3 POP PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DUP2 ISZERO ISZERO PUSH2 0x1F30 JUMPI INVALID JUMPDEST DIV SWAP1 POP DUP1 PUSH5 0x9C197DCC00 MUL DUP4 ADD SWAP3 POP PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DUP2 ISZERO ISZERO PUSH2 0x1F50 JUMPI INVALID JUMPDEST DIV SWAP1 POP DUP1 PUSH5 0xE30DCE400 MUL DUP4 ADD SWAP3 POP PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DUP2 ISZERO ISZERO PUSH2 0x1F70 JUMPI INVALID JUMPDEST DIV SWAP1 POP DUP1 PUSH5 0x12EBD1300 MUL DUP4 ADD SWAP3 POP PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DUP2 ISZERO ISZERO PUSH2 0x1F90 JUMPI INVALID JUMPDEST DIV SWAP1 POP DUP1 PUSH4 0x17499F00 MUL DUP4 ADD SWAP3 POP PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DUP2 ISZERO ISZERO PUSH2 0x1FAF JUMPI INVALID JUMPDEST DIV SWAP1 POP DUP1 PUSH4 0x1A9D480 MUL DUP4 ADD SWAP3 POP PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DUP2 ISZERO ISZERO PUSH2 0x1FCE JUMPI INVALID JUMPDEST DIV SWAP1 POP DUP1 PUSH3 0x1C6380 MUL DUP4 ADD SWAP3 POP PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DUP2 ISZERO ISZERO PUSH2 0x1FEC JUMPI INVALID JUMPDEST DIV SWAP1 POP DUP1 PUSH3 0x1C638 MUL DUP4 ADD SWAP3 POP PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DUP2 ISZERO ISZERO PUSH2 0x200A JUMPI INVALID JUMPDEST DIV SWAP1 POP DUP1 PUSH2 0x1AB8 MUL DUP4 ADD SWAP3 POP PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DUP2 ISZERO ISZERO PUSH2 0x2027 JUMPI INVALID JUMPDEST DIV SWAP1 POP DUP1 PUSH2 0x17C MUL DUP4 ADD SWAP3 POP PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DUP2 ISZERO ISZERO PUSH2 0x2044 JUMPI INVALID JUMPDEST DIV SWAP1 POP DUP1 PUSH1 0x14 MUL DUP4 ADD SWAP3 POP PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DUP2 ISZERO ISZERO PUSH2 0x2060 JUMPI INVALID JUMPDEST PUSH8 0x21C3677C82B40000 SWAP2 SWAP1 DIV SWAP4 DUP5 ADD DIV DUP3 ADD PUSH1 0x7F PUSH1 0x2 EXP ADD SWAP3 SWAP1 POP PUSH16 0x10000000000000000000000000000000 DUP6 AND ISZERO PUSH2 0x20BD JUMPI PUSH17 0x18EBEF9EAC820AE8682B9793AC6D1E776 PUSH17 0x1C3D6A24ED82218787D624D3E5EBA95F9 DUP5 MUL DIV SWAP3 POP JUMPDEST PUSH16 0x20000000000000000000000000000000 DUP6 AND ISZERO PUSH2 0x20FF JUMPI PUSH17 0x1368B2FC6F9609FE7ACEB46AA619BAED4 PUSH17 0x18EBEF9EAC820AE8682B9793AC6D1E778 DUP5 MUL DIV SWAP3 POP JUMPDEST PUSH16 0x40000000000000000000000000000000 DUP6 AND ISZERO PUSH2 0x2140 JUMPI PUSH16 0xBC5AB1B16779BE3575BD8F0520A9F21F PUSH17 0x1368B2FC6F9609FE7ACEB46AA619BAED5 DUP5 MUL DIV SWAP3 POP JUMPDEST PUSH1 0x7F PUSH1 0x2 EXP DUP6 AND ISZERO PUSH2 0x2174 JUMPI PUSH16 0x454AAA8EFE072E7F6DDBAB84B40A55C9 PUSH16 0xBC5AB1B16779BE3575BD8F0520A9F21E DUP5 MUL DIV SWAP3 POP JUMPDEST PUSH1 0x80 PUSH1 0x2 EXP DUP6 AND ISZERO PUSH2 0x21A8 JUMPI PUSH16 0x960AADC109E7A3BF4578099615711EA PUSH16 0x454AAA8EFE072E7F6DDBAB84B40A55C5 DUP5 MUL DIV SWAP3 POP JUMPDEST PUSH17 0x200000000000000000000000000000000 DUP6 AND ISZERO PUSH2 0x21E8 JUMPI PUSH15 0x2BF84208204F5977F9A8CF01FDCE3D PUSH16 0x960AADC109E7A3BF4578099615711D7 DUP5 MUL DIV SWAP3 POP JUMPDEST PUSH17 0x400000000000000000000000000000000 DUP6 AND ISZERO PUSH2 0x2226 JUMPI PUSH14 0x3C6AB775DD0B95B4CBEE7E65D11 PUSH15 0x2BF84208204F5977F9A8CF01FDC307 DUP5 MUL DIV SWAP3 POP JUMPDEST POP SWAP1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 PUSH2 0x100 DUP5 LT ISZERO PUSH2 0x225E JUMPI JUMPDEST PUSH1 0x1 DUP5 GT ISZERO PUSH2 0x2259 JUMPI PUSH1 0x2 SWAP1 SWAP4 DIV SWAP3 PUSH1 0x1 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x223E JUMP JUMPDEST PUSH2 0x120D JUMP JUMPDEST POP PUSH1 0x80 JUMPDEST PUSH1 0x0 DUP2 PUSH1 0xFF AND GT ISZERO PUSH2 0x120D JUMPI PUSH1 0xFF DUP2 AND PUSH1 0x2 EXP DUP5 LT PUSH2 0x228B JUMPI PUSH1 0xFF DUP2 AND PUSH1 0x2 EXP SWAP1 SWAP4 DIV SWAP3 SWAP1 DUP2 OR SWAP1 JUMPDEST PUSH1 0x2 PUSH1 0xFF SWAP1 SWAP2 AND DIV PUSH2 0x2262 JUMP JUMPDEST PUSH17 0x1C35FEDD14FFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x20 SSTORE PUSH17 0x1B0CE43B323FFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x21 SSTORE PUSH17 0x19F0028EC1FFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x22 SSTORE PUSH17 0x18DED91F0E7FFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x23 SSTORE PUSH17 0x17D8EC7F0417FFFFFFFFFFFFFFFFFFFFFF PUSH1 0x24 SSTORE PUSH17 0x16DDC6556CDBFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x25 SSTORE PUSH17 0x15ECF52776A1FFFFFFFFFFFFFFFFFFFFFF PUSH1 0x26 SSTORE PUSH17 0x15060C256CB2FFFFFFFFFFFFFFFFFFFFFF PUSH1 0x27 SSTORE PUSH17 0x1428A2F98D72FFFFFFFFFFFFFFFFFFFFFF PUSH1 0x28 SSTORE PUSH17 0x13545598E5C23FFFFFFFFFFFFFFFFFFFFF PUSH1 0x29 SSTORE PUSH17 0x1288C4161CE1DFFFFFFFFFFFFFFFFFFFFF PUSH1 0x2A SSTORE PUSH17 0x11C592761C666FFFFFFFFFFFFFFFFFFFFF PUSH1 0x2B SSTORE PUSH17 0x110A688680A757FFFFFFFFFFFFFFFFFFFF PUSH1 0x2C SSTORE PUSH17 0x1056F1B5BEDF77FFFFFFFFFFFFFFFFFFFF PUSH1 0x2D SSTORE PUSH17 0xFAADCECEEFF8BFFFFFFFFFFFFFFFFFFFF PUSH1 0x2E SSTORE PUSH17 0xF05DC6B27EDADFFFFFFFFFFFFFFFFFFFF PUSH1 0x2F SSTORE PUSH17 0xE67A5A25DA4107FFFFFFFFFFFFFFFFFFF PUSH1 0x30 SSTORE PUSH17 0xDCFF115B14EEDFFFFFFFFFFFFFFFFFFFF PUSH1 0x31 SSTORE PUSH17 0xD3E7A392431239FFFFFFFFFFFFFFFFFFF PUSH1 0x32 SSTORE PUSH17 0xCB2FF529EB71E4FFFFFFFFFFFFFFFFFFF PUSH1 0x33 SSTORE PUSH17 0xC2D415C3DB974AFFFFFFFFFFFFFFFFFFF PUSH1 0x34 SSTORE PUSH17 0xBAD03E7D883F69BFFFFFFFFFFFFFFFFFF PUSH1 0x35 SSTORE PUSH17 0xB320D03B2C343D5FFFFFFFFFFFFFFFFFF PUSH1 0x36 SSTORE PUSH17 0xABC25204E02828DFFFFFFFFFFFFFFFFFF PUSH1 0x37 SSTORE PUSH17 0xA4B16F74EE4BB207FFFFFFFFFFFFFFFFF PUSH1 0x38 SSTORE PUSH17 0x9DEAF736AC1F569FFFFFFFFFFFFFFFFFF PUSH1 0x39 SSTORE PUSH17 0x976BD9952C7AA957FFFFFFFFFFFFFFFFF PUSH1 0x3A SSTORE PUSH17 0x9131271922EAA606FFFFFFFFFFFFFFFFF PUSH1 0x3B SSTORE PUSH17 0x8B380F3558668C46FFFFFFFFFFFFFFFFF PUSH1 0x3C SSTORE PUSH17 0x857DDF0117EFA215BFFFFFFFFFFFFFFFF PUSH1 0x3D SSTORE PUSH17 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x3E SSTORE PUSH17 0x7ABBF6F6ABB9D087FFFFFFFFFFFFFFFFF PUSH1 0x3F SSTORE PUSH17 0x75AF62CBAC95F7DFA7FFFFFFFFFFFFFFF PUSH1 0x40 SSTORE PUSH17 0x70D7FB7452E187AC13FFFFFFFFFFFFFFF PUSH1 0x41 SSTORE PUSH17 0x6C3390ECC8AF379295FFFFFFFFFFFFFFF PUSH1 0x42 SSTORE PUSH17 0x67C00A3B07FFC01FD6FFFFFFFFFFFFFFF PUSH1 0x43 SSTORE PUSH17 0x637B647C39CBB9D3D27FFFFFFFFFFFFFF PUSH1 0x44 SSTORE PUSH17 0x5F63B1FC104DBD39587FFFFFFFFFFFFFF PUSH1 0x45 SSTORE PUSH17 0x5B771955B36E12F7235FFFFFFFFFFFFFF PUSH1 0x46 SSTORE PUSH17 0x57B3D49DDA84556D6F6FFFFFFFFFFFFFF PUSH1 0x47 SSTORE PUSH17 0x54183095B2C8ECECF30FFFFFFFFFFFFFF PUSH1 0x48 SSTORE PUSH17 0x50A28BE635CA2B888F77FFFFFFFFFFFFF PUSH1 0x49 SSTORE PUSH17 0x4D5156639708C9DB33C3FFFFFFFFFFFFF PUSH1 0x4A SSTORE PUSH17 0x4A23105873875BD52DFDFFFFFFFFFFFFF PUSH1 0x4B SSTORE PUSH17 0x471649D87199AA990756FFFFFFFFFFFFF PUSH1 0x4C SSTORE PUSH17 0x4429A21A029D4C1457CFBFFFFFFFFFFFF PUSH1 0x4D SSTORE PUSH17 0x415BC6D6FB7DD71AF2CB3FFFFFFFFFFFF PUSH1 0x4E SSTORE PUSH17 0x3EAB73B3BBFE282243CE1FFFFFFFFFFFF PUSH1 0x4F SSTORE PUSH17 0x3C1771AC9FB6B4C18E229FFFFFFFFFFFF PUSH1 0x50 SSTORE PUSH17 0x399E96897690418F785257FFFFFFFFFFF PUSH1 0x51 SSTORE PUSH17 0x373FC456C53BB779BF0EA9FFFFFFFFFFF PUSH1 0x52 SSTORE PUSH17 0x34F9E8E490C48E67E6AB8BFFFFFFFFFFF PUSH1 0x53 SSTORE PUSH17 0x32CBFD4A7ADC790560B3337FFFFFFFFFF PUSH1 0x54 SSTORE PUSH17 0x30B50570F6E5D2ACCA94613FFFFFFFFFF PUSH1 0x55 SSTORE PUSH17 0x2EB40F9F620FDA6B56C2861FFFFFFFFFF PUSH1 0x56 SSTORE PUSH17 0x2CC8340ECB0D0F520A6AF58FFFFFFFFFF PUSH1 0x57 SSTORE PUSH17 0x2AF09481380A0A35CF1BA02FFFFFFFFFF PUSH1 0x58 SSTORE PUSH17 0x292C5BDD3B92EC810287B1B3FFFFFFFFF PUSH1 0x59 SSTORE PUSH17 0x277ABDCDAB07D5A77AC6D6B9FFFFFFFFF PUSH1 0x5A SSTORE PUSH17 0x25DAF6654B1EAA55FD64DF5EFFFFFFFFF PUSH1 0x5B SSTORE PUSH17 0x244C49C648BAA98192DCE88B7FFFFFFFF PUSH1 0x5C SSTORE PUSH17 0x22CE03CD5619A311B2471268BFFFFFFFF PUSH1 0x5D SSTORE PUSH17 0x215F77C045FBE885654A44A0FFFFFFFFF PUSH1 0x5E SSTORE PUSH17 0x1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x5F SSTORE PUSH17 0x1EAEFDBDAAEE7421FC4D3EDE5FFFFFFFF PUSH1 0x60 SSTORE PUSH17 0x1D6BD8B2EB257DF7E8CA57B09BFFFFFFF PUSH1 0x61 SSTORE PUSH17 0x1C35FEDD14B861EB0443F7F133FFFFFFF PUSH1 0x62 SSTORE PUSH17 0x1B0CE43B322BCDE4A56E8ADA5AFFFFFFF PUSH1 0x63 SSTORE PUSH17 0x19F0028EC1FFF007F5A195A39DFFFFFFF PUSH1 0x64 SSTORE PUSH17 0x18DED91F0E72EE74F49B15BA527FFFFFF PUSH1 0x65 SSTORE PUSH17 0x17D8EC7F04136F4E5615FD41A63FFFFFF PUSH1 0x66 SSTORE PUSH17 0x16DDC6556CDB84BDC8D12D22E6FFFFFFF PUSH1 0x67 SSTORE PUSH17 0x15ECF52776A1155B5BD8395814F7FFFFF PUSH1 0x68 SSTORE PUSH17 0x15060C256CB23B3B3CC3754CF40FFFFFF PUSH1 0x69 SSTORE PUSH17 0x1428A2F98D728AE223DDAB715BE3FFFFF PUSH1 0x6A SSTORE PUSH17 0x13545598E5C23276CCF0EDE68034FFFFF PUSH1 0x6B SSTORE PUSH17 0x1288C4161CE1D6F54B7F61081194FFFFF PUSH1 0x6C SSTORE PUSH17 0x11C592761C666AA641D5A01A40F17FFFF PUSH1 0x6D SSTORE PUSH17 0x110A688680A7530515F3E6E6CFDCDFFFF PUSH1 0x6E SSTORE PUSH17 0x1056F1B5BEDF75C6BCB2CE8AED428FFFF PUSH1 0x6F SSTORE PUSH16 0xFAADCECEEFF8A0890F3875F008277FFF PUSH1 0x70 SSTORE PUSH16 0xF05DC6B27EDAD306388A600F6BA0BFFF PUSH1 0x71 SSTORE PUSH16 0xE67A5A25DA41063DE1495D5B18CDBFFF PUSH1 0x72 SSTORE PUSH16 0xDCFF115B14EEDDE6FC3AA5353F2E4FFF PUSH1 0x73 SSTORE PUSH16 0xD3E7A3924312399F9AAE2E0F868F8FFF PUSH1 0x74 SSTORE PUSH16 0xCB2FF529EB71E41582CCCD5A1EE26FFF PUSH1 0x75 SSTORE PUSH16 0xC2D415C3DB974AB32A51840C0B67EDFF PUSH1 0x76 SSTORE PUSH16 0xBAD03E7D883F69AD5B0A186184E06BFF PUSH1 0x77 SSTORE PUSH16 0xB320D03B2C343D4829ABD6075F0CC5FF PUSH1 0x78 SSTORE PUSH16 0xABC25204E02828D73C6E80BCDB1A95BF PUSH1 0x79 SSTORE PUSH16 0xA4B16F74EE4BB2040A1EC6C15FBBF2DF PUSH1 0x7A SSTORE PUSH16 0x9DEAF736AC1F569DEB1B5AE3F36C130F PUSH1 0x7B SSTORE PUSH16 0x976BD9952C7AA957F5937D790EF65037 PUSH1 0x7C SSTORE PUSH16 0x9131271922EAA6064B73A22D0BD4F2BF PUSH1 0x7D SSTORE PUSH16 0x8B380F3558668C46C91C49A2F8E967B9 PUSH1 0x7E SSTORE PUSH16 0x857DDF0117EFA215952912839F6473E6 PUSH1 0x0 PUSH1 0x7F JUMPDEST ADD SSTORE JUMP JUMPDEST PUSH16 0x60E393C68D20B1BD09DEAABC0373B9C5 PUSH1 0x80 SWAP1 DUP2 SSTORE PUSH16 0x5F8F46E4854120989ED94719FB4C2011 PUSH1 0x81 SSTORE PUSH16 0x5E479EBB9129FB1B7E72A648F992B606 PUSH1 0x82 SSTORE PUSH16 0x5D0BD23FE42DFEDDE2E9586BE12B85FE PUSH1 0x83 SSTORE PUSH16 0x5BDB29DDEE979308DDFCA81AEEB8095A PUSH1 0x84 SSTORE PUSH16 0x5AB4FD8A260D2C7E2C0D2AFCF0009DAD PUSH1 0x85 SSTORE PUSH16 0x5998B31359A55D48724C65CF09001221 PUSH1 0x86 SSTORE PUSH16 0x5885BCAD2B322DFC43E8860F9C018CF5 PUSH1 0x87 SSTORE PUSH16 0x577B97AA1FE222BB452FDF111B1F0BE2 PUSH1 0x88 SSTORE PUSH16 0x5679CB5E3575632E5BAA27E2B949F704 PUSH1 0x89 SSTORE PUSH16 0x557FE8241B3A31C83C732F1CDFF4A1C5 PUSH1 0x8A SSTORE PUSH16 0x548D868026504875D6E59BBE95FC2A6B PUSH1 0x8B SSTORE PUSH16 0x53A2465CE347CF34D05A867C17DD3088 PUSH1 0x8C SSTORE PUSH16 0x52BDCE5DCD4FAED59C7F5511CF8F8ACC PUSH1 0x8D SSTORE PUSH16 0x51DFCB453C07F8DA817606E7885F7C3E PUSH1 0x8E SSTORE PUSH16 0x5107EF6B0A5A2BE8F8FF15590DAA3CCE PUSH1 0x8F SSTORE PUSH16 0x5035F241D6EAE0CD7BACBA119993DE7B PUSH1 0x90 SSTORE PUSH16 0x4F698FE90D5B53D532171E1210164C66 PUSH1 0x91 SSTORE PUSH16 0x4EA288CA297A0E6A09A0EEE240E16C85 PUSH1 0x92 SSTORE PUSH16 0x4DE0A13FDCF5D4213FC398BA6E3BECDE PUSH1 0x93 SSTORE PUSH16 0x4D23A145EEF91FEC06B06140804C4808 PUSH1 0x94 SSTORE PUSH16 0x4C6B5430D4C1EE5526473DB4AE0F11DE PUSH1 0x95 SSTORE PUSH16 0x4BB7886C240562EBA11F4963A53B4240 PUSH1 0x96 SSTORE PUSH16 0x4B080F3F1CB491D2D521E0EA4583521E PUSH1 0x97 SSTORE PUSH16 0x4A5CBC96A05589CB4D86BE1DB3168364 PUSH1 0x98 SSTORE PUSH16 0x49B566D40243517658D78C33162D6ECE PUSH1 0x99 SSTORE PUSH16 0x4911E6A02E5507A30F947383FD9A3276 PUSH1 0x9A SSTORE PUSH16 0x487216C2B31BE4ADC41DB8A8D5CC0C88 PUSH1 0x9B SSTORE PUSH16 0x47D5D3FC4A7A1B188CD3D788B5C5E9FC PUSH1 0x9C SSTORE PUSH16 0x473CFCE4871A2C40BC4F9E1C32B955D0 PUSH1 0x9D SSTORE PUSH16 0x46A771CA578AB878485810E285E31C67 PUSH1 0x9E SSTORE PUSH16 0x4615149718AED4C258C373DC676AA72D PUSH1 0x9F SSTORE PUSH16 0x4585C8B3F8FE489C6E1833CA47871384 PUSH1 0xA0 SSTORE PUSH16 0x44F972F174E41E5EFB7E9D63C29CE735 PUSH1 0xA1 SSTORE PUSH16 0x446FF970BA86D8B00BEB05ECEBF3C4DC PUSH1 0xA2 SSTORE PUSH16 0x43E9438EC88971812D6F198B5CCAAD96 PUSH1 0xA3 SSTORE PUSH16 0x436539D11FF7BEA657AEDDB394E809EF PUSH1 0xA4 SSTORE PUSH16 0x42E3C5D3E5A913401D86F66DB5D81C2C PUSH1 0xA5 SSTORE PUSH16 0x4264D2395303070EA726CBE98DF62174 PUSH1 0xA6 SSTORE PUSH16 0x41E84A9A593BB7194C3A6349ECAE4EEA PUSH1 0xA7 SSTORE PUSH16 0x416E1B785D13EBA07A08F3F18876A5AB PUSH1 0xA8 SSTORE PUSH16 0x40F6322FF389D423BA9DD7E7E7B7E809 PUSH1 0xA9 SSTORE PUSH16 0x40807CEC8A466880ECF4184545D240A4 PUSH1 0xAA SSTORE PUSH16 0x400CEA9CE88A8D3AE668E8EA0D9BF07F PUSH1 0xAB SSTORE PUSH16 0x3F9B6AE8772D4C55091E0ED7DFEA0AC1 PUSH1 0xAC SSTORE PUSH16 0x3F2BEE253FD84594F54BCAAFAC383A13 PUSH1 0xAD SSTORE PUSH16 0x3EBE654E95208BB9210C575C081C5958 PUSH1 0xAE SSTORE PUSH16 0x3E52C1FC5665635B78CE1F05AD53C086 PUSH1 0xAF SSTORE PUSH16 0x3DE8F65AC388101DDF718A6F5C1EFF65 PUSH1 0xB0 SSTORE PUSH16 0x3D80F522D59BD0B328CA012DF4CD2D49 PUSH1 0xB1 SSTORE PUSH16 0x3D1AB193129EA72B23648A161163A85A PUSH1 0xB2 SSTORE PUSH16 0x3CB61F68D32576C135B95CFB53F76D75 PUSH1 0xB3 SSTORE PUSH16 0x3C5332D9F1AAE851A3619E77E4CC8473 PUSH1 0xB4 SSTORE PUSH16 0x3BF1E08EDBE2AA109E1525F65759EF73 PUSH1 0xB5 SSTORE PUSH16 0x3B921D9CFF13FA2C197746A3DFC4918F PUSH1 0xB6 SSTORE PUSH16 0x3B33DF818910BFC1A5AEFB8F63AE2AC4 PUSH1 0xB7 SSTORE PUSH16 0x3AD71C1C77E34FA32A9F184967ECCBF6 PUSH1 0xB8 SSTORE PUSH16 0x3A7BC9ABF2C5BB53E2F7384A8A16521A PUSH1 0xB9 SSTORE PUSH16 0x3A21DEC7E76369783A68A0C6385A1C57 PUSH1 0xBA SSTORE PUSH16 0x39C9525DE6C9CDF7C1C157CA4A7A6EE3 PUSH1 0xBB SSTORE PUSH16 0x39721BAD3DC85D1240FF0190E0ADAAC3 PUSH1 0xBC SSTORE PUSH16 0x391C324344D3248F0469EB28DD3D77E0 PUSH1 0xBD SSTORE PUSH16 0x38C78DF7E3C796279FB4FF84394AB3DA PUSH1 0xBE SSTORE PUSH16 0x387426EA4638AE9AAE08049D3554C20A PUSH1 0xBF SSTORE PUSH16 0x3821F57DBD2763256C1A99BBD2051378 PUSH1 0xC0 SSTORE PUSH16 0x37D0F256CB46A8C92FF62FBBEF289698 PUSH1 0xC1 SSTORE PUSH16 0x37811658591FFC7ABDD1FEAF3CEF9B73 PUSH1 0xC2 SSTORE PUSH16 0x37325AA10E9E82F7DF0F380F7997154B PUSH1 0xC3 SSTORE PUSH16 0x36E4B888CFB408D873B9A80D439311C6 PUSH1 0xC4 SSTORE PUSH16 0x3698299E59F4BB9DE645FC9B08C64CCA PUSH1 0xC5 SSTORE PUSH16 0x364CA7A5012CB603023B57DD3EBFD50D PUSH1 0xC6 SSTORE PUSH16 0x36022C928915B778AB1B06AAEE7E61D4 PUSH1 0xC7 SSTORE PUSH16 0x35B8B28D1A73DC27500FFE35559CC028 PUSH1 0xC8 SSTORE PUSH16 0x357033E951FE250EC5EB4E60955132D7 PUSH1 0xC9 SSTORE PUSH16 0x3528AB2867934E3A21B5412E4C4F8881 PUSH1 0xCA SSTORE PUSH16 0x34E212F66C55057F9676C80094A61D59 PUSH1 0xCB SSTORE PUSH16 0x349C66289E5B3C4B540C24F42FA4B9BB PUSH1 0xCC SSTORE PUSH16 0x34579FBBD0C733A9C8D6AF6B0F7D00F7 PUSH1 0xCD SSTORE PUSH16 0x3413BAD2E712288B924B5882B5B369BF PUSH1 0xCE SSTORE PUSH16 0x33D0B2B56286510EF730E213F71F12E9 PUSH1 0xCF SSTORE PUSH16 0x338E82CE00E2496262C64457535BA1A1 PUSH1 0xD0 SSTORE PUSH16 0x334D26A96B373BB7C2F8EA1827F27A92 PUSH1 0xD1 SSTORE PUSH16 0x330C99F4F4211469E00B3E18C31475EA PUSH1 0xD2 SSTORE PUSH16 0x32CCD87D6486094999C7D5E6F33237D8 PUSH1 0xD3 SSTORE PUSH16 0x328DDE2DD617B6665A2E8556F250C1AF PUSH1 0xD4 SSTORE PUSH16 0x324FA70E9ADC270F8262755AF5A99AF9 PUSH1 0xD5 SSTORE PUSH16 0x32122F443110611CA51040F41FA6E1E3 PUSH1 0xD6 SSTORE PUSH16 0x31D5730E42C0831482F0F1485C4263D8 PUSH1 0xD7 SSTORE PUSH16 0x31996EC6B07B4A83421B5EBC4AB4E1F1 PUSH1 0xD8 SSTORE PUSH16 0x315E1EE0A68FF46BB43EC2B85032E876 PUSH1 0xD9 SSTORE PUSH16 0x31237FE7BC4DEACF6775B9EFA1A145F8 PUSH1 0xDA SSTORE PUSH16 0x30E98E7F1CC5A356E44627A6972EA2FF PUSH1 0xDB SSTORE PUSH16 0x30B04760B8917EC74205A3002650EC05 PUSH1 0xDC SSTORE PUSH16 0x3077A75C803468E9132CE0CF3224241D PUSH1 0xDD SSTORE PUSH16 0x303FAB57A6A275C36F19CDA9BACE667A PUSH1 0xDE SSTORE PUSH16 0x3008504BEB8DCBD2CF3BC1F6D5A064F0 PUSH1 0xDF SSTORE PUSH16 0x2FD19346ED17DAC61219CE0C2C5AC4B0 PUSH1 0xE0 SSTORE PUSH16 0x2F9B7169808C324B5852FD3D54BA9714 PUSH1 0xE1 SSTORE PUSH16 0x2F65E7E711CF4B064EEA9C08CBDAD574 PUSH1 0xE2 SSTORE PUSH16 0x2F30F405093042DDFF8A251B6BF6D103 PUSH1 0xE3 SSTORE PUSH16 0x2EFC931A3750F2E8BFE323EDFE037574 PUSH1 0xE4 SSTORE PUSH16 0x2EC8C28E46DBE56D98685278339400CB PUSH1 0xE5 SSTORE PUSH16 0x2E957FD933C3926D8A599B602379B851 PUSH1 0xE6 SSTORE PUSH16 0x2E62C882C7C9ED4473412702F08BA0E5 PUSH1 0xE7 SSTORE PUSH16 0x2E309A221C12BA361E3ED695167FEEE2 PUSH1 0xE8 SSTORE PUSH16 0x2DFEF25D1F865AE18DD07CFEA4BCEA10 PUSH1 0xE9 SSTORE PUSH16 0x2DCDCEE821CDC80DECC02C44344AEB31 PUSH1 0xEA SSTORE PUSH16 0x2D9D2D8562B34944D0B201BB87260C83 PUSH1 0xEB SSTORE PUSH16 0x2D6D0C04A5B62A2C42636308669B729A PUSH1 0xEC SSTORE PUSH16 0x2D3D6842C9A235517FC5A0332691528F PUSH1 0xED SSTORE PUSH16 0x2D0E402963FE1EA2834ABC408C437C10 PUSH1 0xEE SSTORE PUSH16 0x2CDF91AE602647908AFF975E4D6A2A8C PUSH1 0xEF SSTORE PUSH16 0x2CB15AD3A1EB65F6D74A75DA09A1B6C5 PUSH1 0xF0 SSTORE PUSH16 0x2C8399A6AB8E9774D6FCFF373D210727 PUSH1 0xF1 SSTORE PUSH16 0x2C564C4046F64EDBA6883CA06BBC4535 PUSH1 0xF2 SSTORE PUSH16 0x2C2970C431F952641E05CB493E23EED3 PUSH1 0xF3 SSTORE PUSH16 0x2BFD0560CD9EB14563BC7C0732856C18 PUSH1 0xF4 SSTORE PUSH16 0x2BD1084ED0332F7FF4150F9D0EF41A2C PUSH1 0xF5 SSTORE PUSH16 0x2BA577D0FA1628B76D040B12A82492FB PUSH1 0xF6 SSTORE PUSH16 0x2B7A5233CD21581E855E89DC2F1E8A92 PUSH1 0xF7 SSTORE PUSH16 0x2B4F95CD46904D05D72BDCDE337D9CC7 PUSH1 0xF8 SSTORE PUSH16 0x2B2540FC9B4D9ABBA3FACA6691914675 PUSH1 0xF9 SSTORE PUSH16 0x2AFB5229F68D0830D8BE8ADB0A0DB70F PUSH1 0xFA SSTORE PUSH16 0x2AD1C7C63A9B294C5BC73A3BA3AB7A2B PUSH1 0xFB SSTORE PUSH16 0x2AA8A04AC3CBE1EE1C9C86361465DBB8 PUSH1 0xFC SSTORE PUSH16 0x2A7FDA392D725A44A2C8AEB9AB35430D PUSH1 0xFD SSTORE PUSH16 0x2A57741B18CDE618717792B4FAA216DB PUSH1 0xFE SSTORE PUSH16 0x2A2F6C81F5D84DD950A35626D6D5503A SWAP1 PUSH1 0x7F PUSH2 0x2A6A JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH30 0x10C6F7A0B5ED8D36B4C7F34938583621FAFC8B0079A2834D26FA3FCC9EA9 DUP8 GT ISZERO PUSH2 0x34E6 JUMPI PUSH30 0x10C6F7A0B5ED8D36B4C7F34938583621FAFC8B0079A2834D26FA3FCC9EAA DUP8 DIV PUSH1 0x1 ADD SWAP3 POP DUP3 DUP8 DUP2 ISZERO ISZERO PUSH2 0x34D4 JUMPI INVALID JUMPDEST DIV SWAP7 POP DUP3 DUP7 DUP2 ISZERO ISZERO PUSH2 0x34E2 JUMPI INVALID JUMPDEST DIV SWAP6 POP JUMPDEST PUSH2 0x34FE PUSH3 0xF4240 DUP9 MUL PUSH2 0x34F9 DUP10 DUP10 PUSH2 0x1214 JUMP JUMPDEST PUSH2 0x17B0 JUMP JUMPDEST SWAP8 PUSH3 0xF4240 DUP10 SWAP1 SUB SWAP8 POP SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 PUSH1 0x2 EXP DUP7 GT ISZERO DUP1 ISZERO PUSH2 0x352F JUMPI POP PUSH1 0x80 PUSH1 0x2 EXP DUP6 GT ISZERO JUMPDEST ISZERO PUSH2 0x353F JUMPI DUP6 DUP6 SWAP4 POP SWAP4 POP PUSH2 0x138F JUMP JUMPDEST PUSH1 0x80 PUSH1 0x2 EXP DUP7 LT ISZERO PUSH2 0x356B JUMPI DUP5 PUSH1 0x80 PUSH1 0x2 EXP DUP8 MUL DUP2 ISZERO ISZERO PUSH2 0x355C JUMPI INVALID JUMPDEST DIV PUSH1 0x80 PUSH1 0x2 EXP SWAP4 POP SWAP4 POP PUSH2 0x138F JUMP JUMPDEST PUSH1 0x80 PUSH1 0x2 EXP DUP6 LT ISZERO PUSH2 0x3597 JUMPI PUSH1 0x80 PUSH1 0x2 EXP DUP7 PUSH1 0x80 PUSH1 0x2 EXP DUP8 MUL DUP2 ISZERO ISZERO PUSH2 0x358D JUMPI INVALID JUMPDEST DIV SWAP4 POP SWAP4 POP PUSH2 0x138F JUMP JUMPDEST DUP5 DUP7 GT PUSH2 0x35A4 JUMPI DUP5 PUSH2 0x35A6 JUMP JUMPDEST DUP6 JUMPDEST SWAP2 POP PUSH2 0x35B6 PUSH1 0x7F PUSH1 0x2 EXP DUP4 PUSH2 0x17FC JUMP JUMPDEST PUSH1 0xFF AND PUSH1 0x2 EXP SWAP6 DUP7 SWAP1 DIV SWAP7 SWAP6 SWAP1 SWAP5 DIV SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH16 0x2F16AC6C59DE6F8D5D6F63C1482A7C86 DUP3 GT PUSH2 0x35F6 JUMPI PUSH2 0x35EF DUP3 PUSH2 0x368C JUMP JUMPDEST SWAP1 POP PUSH2 0x708 JUMP JUMPDEST DUP2 PUSH32 0x4000000000000000000000000000000000000000000000000000000000000000 DUP2 ISZERO ISZERO PUSH2 0x3621 JUMPI INVALID JUMPDEST DIV SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH16 0x2F16AC6C59DE6F8D5D6F63C1482A7C86 DUP3 GT PUSH2 0x364A JUMPI PUSH2 0x35EF DUP3 PUSH2 0x3AEF JUMP JUMPDEST PUSH17 0x1AF16AC6C59DE6F8D5D6F63C1482A7C80 DUP3 GT PUSH2 0x366B JUMPI PUSH2 0x35EF DUP3 PUSH2 0x3F70 JUMP JUMPDEST PUSH17 0x6B22D43E72C326539CCEEEF8BB48F255FF DUP3 GT PUSH2 0x174 JUMPI PUSH2 0x35EF DUP3 PUSH2 0x3FEE JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP1 MUL DIV SWAP2 POP PUSH17 0x14D29A73A6E7B02C3668C7B0880000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH17 0x2504A0CD9A7F7215B60F9BE4800000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH17 0x484D0A1191C0EAD267967C7A4A0000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH17 0x95EC580D7E8427A4BAF26A90A00000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH17 0x1440B0BE1615A47DBA6E5B3B1F10000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH17 0x2D207601F46A99B4112418400000000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH17 0x66EBAAC4C37C622DD8288A7EB1B2000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH17 0xEF17240135F7DBD43A1BA10CF200000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH18 0x233C33C676A5EB2416094A87B3657000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH18 0x541CDE48BC0254BED49A9F8700000000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH18 0xCAE1FAD2CDD4D4CB8D73ABCA0D19A400000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH18 0x1EDB2AA2F760D15C41CEEDBA956400000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH18 0x4BA8D20D2DABD386C9529659841A2E200000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH18 0xBAC08546B867CDAA20000000000000000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH19 0x1CFA8E70C03625B9DB76C8EBF5BBF24820000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH19 0x4851D99F82060DF265F3309B26F8200000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH19 0xB550D19B129D270C44F6F55F027723CBB0000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH19 0x1C877DADC761DC272DEB65D4B0000000000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH19 0x48178ECE97479F33A77F2AD22A81B64406C000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH19 0xB6CA8268B9D810FEDF6695EF2F8A6C00000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH20 0x1D0E76631A5B05D007B8CB72A7C7F11EC36E000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH20 0x4A1C37BD9F85FD9C6C780000000000000000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH20 0xBD8369F1B702BF491E2EBFCEE08250313B65400 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH20 0x1E5C7C32A9F6C70AB2CB59D9225764D400000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH20 0x4DFF5820E165E910F95120A708E742496221E600 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH20 0xC8C8F66DB1FCED378EE50E536000000000000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH21 0x205DB8DFFFF45BFA2938F128F599DBF16EB11D880 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH21 0x53A044EBD984351493E1786AF38D39A0800000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH21 0xD86DAE2A4CC0F47633A544479735869B487B59C40 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH21 0x231000000000000000000000000000000000000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH21 0x5B0485A76F6646C2039DB1507CDD51B08649680822 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH21 0xEC983C46C49545BC17EFA6B5B0055E242200000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 PUSH16 0xDE1BC4D19EFCAC82445DA75B00000000 DUP4 DIV ADD ADD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x7F PUSH1 0x2 EXP DUP2 DUP2 SUB PUSH16 0xDE1BC4D19EFCAC82445DA75B00000000 MUL SWAP1 DUP3 DUP1 MUL DIV SWAP2 POP PUSH17 0x14D29A73A6E7B02C3668C7B0880000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH17 0x2504A0CD9A7F7215B60F9BE4800000000 DUP3 MUL SWAP1 SUB PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH17 0x484D0A1191C0EAD267967C7A4A0000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH17 0x95EC580D7E8427A4BAF26A90A00000000 DUP3 MUL SWAP1 SUB PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH17 0x1440B0BE1615A47DBA6E5B3B1F10000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH17 0x2D207601F46A99B4112418400000000000 DUP3 MUL SWAP1 SUB PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH17 0x66EBAAC4C37C622DD8288A7EB1B2000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH17 0xEF17240135F7DBD43A1BA10CF200000000 DUP3 MUL SWAP1 SUB PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH18 0x233C33C676A5EB2416094A87B3657000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH18 0x541CDE48BC0254BED49A9F8700000000000 DUP3 MUL SWAP1 SUB PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH18 0xCAE1FAD2CDD4D4CB8D73ABCA0D19A400000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH18 0x1EDB2AA2F760D15C41CEEDBA956400000000 DUP3 MUL SWAP1 SUB PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH18 0x4BA8D20D2DABD386C9529659841A2E200000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH18 0xBAC08546B867CDAA20000000000000000000 DUP3 MUL SWAP1 SUB PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH19 0x1CFA8E70C03625B9DB76C8EBF5BBF24820000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH19 0x4851D99F82060DF265F3309B26F8200000000 DUP3 MUL SWAP1 SUB PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH19 0xB550D19B129D270C44F6F55F027723CBB0000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH19 0x1C877DADC761DC272DEB65D4B0000000000000 DUP3 MUL SWAP1 SUB PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH19 0x48178ECE97479F33A77F2AD22A81B64406C000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH19 0xB6CA8268B9D810FEDF6695EF2F8A6C00000000 DUP3 MUL SWAP1 SUB PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH20 0x1D0E76631A5B05D007B8CB72A7C7F11EC36E000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH20 0x4A1C37BD9F85FD9C6C780000000000000000000 DUP3 MUL SWAP1 SUB PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH20 0xBD8369F1B702BF491E2EBFCEE08250313B65400 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH20 0x1E5C7C32A9F6C70AB2CB59D9225764D400000000 DUP3 MUL SWAP1 SUB PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH20 0x4DFF5820E165E910F95120A708E742496221E600 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH20 0xC8C8F66DB1FCED378EE50E536000000000000000 DUP3 MUL SWAP1 SUB PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH21 0x205DB8DFFFF45BFA2938F128F599DBF16EB11D880 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH21 0x53A044EBD984351493E1786AF38D39A0800000000 DUP3 MUL SWAP1 SUB PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH21 0xD86DAE2A4CC0F47633A544479735869B487B59C40 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH21 0x231000000000000000000000000000000000000000 DUP3 MUL SWAP1 SUB PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH21 0x5B0485A76F6646C2039DB1507CDD51B08649680822 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH21 0xEC983C46C49545BC17EFA6B5B0055E242200000000 DUP3 MUL SWAP1 SUB PUSH16 0xDE1BC4D19EFCAC82445DA75B00000000 DUP2 JUMPDEST DIV SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH16 0x2F16AC6C59DE6F8D5D6F63C1482A7C86 NOT DUP3 ADD PUSH16 0x3060C183060C183060C183060C18306 DUP1 DUP3 DIV SWAP1 DUP2 DUP2 MUL SWAP1 PUSH1 0x1 DUP4 ADD MUL DUP5 DUP1 PUSH1 0x80 DUP6 DUP2 DUP2 LT PUSH2 0x3FB2 JUMPI INVALID JUMPDEST ADD SLOAD SWAP2 POP PUSH1 0x80 PUSH1 0x1 DUP7 ADD DUP2 DUP2 LT PUSH2 0x3FC5 JUMPI INVALID JUMPDEST ADD SLOAD PUSH16 0x3060C183060C183060C183060C18306 SWAP5 DUP8 SUB MUL SWAP6 SWAP1 SWAP3 SUB MUL SWAP4 SWAP1 SWAP4 ADD DIV SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH17 0x15BF0A8B1457695355FB8AC404E7A79E3 DUP5 LT PUSH2 0x4019 JUMPI PUSH2 0x4014 DUP5 PUSH2 0x17E2 JUMP JUMPDEST PUSH2 0x4022 JUMP JUMPDEST PUSH2 0x4022 DUP5 PUSH2 0x1398 JUMP JUMPDEST SWAP2 POP PUSH17 0x15BF0A8B1457695355FB8AC404E7A79E3 DUP3 LT PUSH2 0x404A JUMPI PUSH2 0x4045 DUP3 PUSH2 0x17E2 JUMP JUMPDEST PUSH2 0x4053 JUMP JUMPDEST PUSH2 0x4053 DUP3 PUSH2 0x1398 JUMP JUMPDEST SWAP1 POP DUP4 PUSH1 0x7F PUSH1 0x2 EXP DUP4 PUSH1 0x7F PUSH1 0x2 EXP DUP5 MUL DUP2 ISZERO ISZERO PUSH2 0x406C JUMPI INVALID JUMPDEST DIV DUP4 DUP6 SUB ADD MUL DUP2 ISZERO ISZERO PUSH2 0x3F67 JUMPI INVALID STOP GASLIMIT MSTORE MSTORE 0x5f 0x49 0x4e JUMP COINBASE 0x4c 0x49 DIFFICULTY 0x5f MSTORE8 SSTORE POP POP 0x4c MSIZE STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP GASLIMIT MSTORE MSTORE 0x5f 0x49 0x4e JUMP COINBASE 0x4c 0x49 DIFFICULTY 0x5f MSTORE GASLIMIT MSTORE8 GASLIMIT MSTORE JUMP GASLIMIT 0x5f TIMESTAMP COINBASE 0x4c COINBASE 0x4e NUMBER GASLIMIT STOP STOP STOP STOP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 DIFFICULTY CREATE 0x27 PUSH3 0xB5E42A 0xc5 0xc4 0xda DELEGATECALL SLOAD 0xd1 PC LOG0 DUP10 0xec PC 0xa9 0xa5 XOR 0x27 SWAP15 PUSH17 0x25D2514A1C9B392002900000000000000 ", - "sourceMap": "156:1326:40:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;156:1326:40;;;;;;;" - }, - "deployedBytecode": { - "linkReferences": {}, - "object": "6080604052600436106101745763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631da6bbfb811461017957806329a00e7c146101b25780632f55bdb5146101d957806335b49af4146102005780633e75c6ca146102275780633e8a38ab1461026557806347d0b6861461027d57806348d73fed146101b25780634982d52d1461029857806349f9b0f7146102b057806354fd4d50146102d757806365098bb3146103035780636cab50551461033157806376cf0b561461034f57806379c1b450146103035780638074590a146103765780638c5ce82a1461039d57806394491fab146103e25780639d11410814610303578063a11aa1b414610410578063a25a34b114610434578063abfd231d14610200578063acdee8cb14610462578063ce782e081461047a578063e1c7392a14610492578063e4883121146104a9578063ebbb2158146104c4578063f3250fe2146104eb578063f732f1c9146102b0575b600080fd5b34801561018557600080fd5b506101a060043560243563ffffffff60443516606435610512565b60408051918252519081900360200190f35b3480156101be57600080fd5b506101a060043560243563ffffffff60443516606435610529565b3480156101e557600080fd5b506101a060043560243563ffffffff60443516606435610537565b34801561020c57600080fd5b506101a060043560243563ffffffff604435166064356106d4565b34801561023357600080fd5b506102426004356024356106e2565b6040805163ffffffff938416815291909216602082015281519081900390910190f35b34801561027157600080fd5b506101a06004356106fa565b34801561028957600080fd5b506101a060043560243561070d565b3480156102a457600080fd5b506101a0600435610720565b3480156102bc57600080fd5b506101a060043560243563ffffffff6044351660643561072b565b3480156102e357600080fd5b506102ec610739565b6040805161ffff9092168252519081900360200190f35b34801561030f57600080fd5b506101a060043563ffffffff602435811690604435906064351660843561073e565b34801561033d57600080fd5b506101a060043560ff60243516610757565b34801561035b57600080fd5b506101a060043560243563ffffffff60443516606435610763565b34801561038257600080fd5b506101a060043560243563ffffffff60443516606435610968565b3480156103a957600080fd5b506103c760043560243563ffffffff60443581169060643516610b09565b6040805192835260ff90911660208301528051918290030190f35b3480156103ee57600080fd5b506101a060043563ffffffff6024358116906044359060643516608435610b25565b34801561041c57600080fd5b50610242600435602435604435606435608435610cc1565b34801561044057600080fd5b5061044c600435610e61565b6040805160ff9092168252519081900360200190f35b34801561046e57600080fd5b506101a0600435610e6c565b34801561048657600080fd5b5061044c600435610e77565b34801561049e57600080fd5b506104a7610e82565b005b3480156104b557600080fd5b50610242600435602435610e94565b3480156104d057600080fd5b506101a060043560243563ffffffff60443516606435610ea1565b3480156104f757600080fd5b506101a060043560243563ffffffff60443516606435611048565b600061052085858585610ea1565b95945050505050565b600061052085858585611048565b600080808080808911610582576040805160e560020a62461bcd028152602060048201526012602482015260008051602061407c833981519152604482015290519081900360640190fd5b600088116105c8576040805160e560020a62461bcd02815260206004820152601b602482015260008051602061409c833981519152604482015290519081900360640190fd5b60018763ffffffff161180156105e75750621e848063ffffffff881611155b151561063d576040805160e560020a62461bcd02815260206004820152601960248201527f4552525f494e56414c49445f524553455256455f524154494f00000000000000604482015290519081900360640190fd5b85151561064d57600094506106c8565b63ffffffff8716620f42401415610680578761066f878b63ffffffff61119016565b81151561067857fe5b0494506106c8565b610690888763ffffffff61121416565b91506106a1828989620f4240611271565b909450925060ff83166106ba8a8663ffffffff61119016565b9060020a9004905088810394505b50505050949350505050565b600061052085858585610968565b6000806106ef848461135b565b915091509250929050565b600061070582611398565b90505b919050565b600061071983836117b0565b9392505050565b6000610705826117e2565b600061052085858585610763565b600881565b600061074d8686868686610b25565b9695505050505050565b6000610719838361189c565b60008080808080808a116107af576040805160e560020a62461bcd028152602060048201526012602482015260008051602061407c833981519152604482015290519081900360640190fd5b600089116107f5576040805160e560020a62461bcd02815260206004820152601b602482015260008051602061409c833981519152604482015290519081900360640190fd5b60008863ffffffff161180156108145750620f424063ffffffff891611155b151561086a576040805160e560020a62461bcd02815260206004820152601a60248201527f4552525f494e56414c49445f524553455256455f574549474854000000000000604482015290519081900360640190fd5b898711156108c2576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f494e56414c49445f414d4f554e540000000000000000000000000000604482015290519081900360640190fd5b8615156108d2576000955061095b565b898714156108e25788955061095b565b63ffffffff8816620f4240141561091557896109048a8963ffffffff61119016565b81151561090d57fe5b04955061095b565b868a0392506109298a84620f42408b611271565b909550935061093e898663ffffffff61119016565b91505060ff831660020a88028481830381151561095757fe5b0495505b5050505050949350505050565b60008080808080808a116109b4576040805160e560020a62461bcd028152602060048201526012602482015260008051602061407c833981519152604482015290519081900360640190fd5b600089116109fa576040805160e560020a62461bcd02815260206004820152601b602482015260008051602061409c833981519152604482015290519081900360640190fd5b60018863ffffffff16118015610a195750621e848063ffffffff891611155b1515610a6f576040805160e560020a62461bcd02815260206004820152601960248201527f4552525f494e56414c49445f524553455256455f524154494f00000000000000604482015290519081900360640190fd5b89871115610ac7576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f494e56414c49445f414d4f554e540000000000000000000000000000604482015290519081900360640190fd5b861515610ad7576000955061095b565b89871415610ae75788955061095b565b63ffffffff8816620f424014156109155789610904888b63ffffffff61119016565b600080610b1886868686611271565b9150915094509492505050565b60008060008060008060008b118015610b3e5750600089115b1515610b82576040805160e560020a62461bcd02815260206004820152601b602482015260008051602061409c833981519152604482015290519081900360640190fd5b60008a63ffffffff16118015610ba15750620f424063ffffffff8b1611155b8015610bb3575060008863ffffffff16115b8015610bc85750620f424063ffffffff891611155b1515610c1e576040805160e560020a62461bcd02815260206004820152601a60248201527f4552525f494e56414c49445f524553455256455f574549474854000000000000604482015290519081900360640190fd5b8763ffffffff168a63ffffffff161415610c6357610c428b8863ffffffff61121416565b610c528a8963ffffffff61119016565b811515610c5b57fe5b049550610cb3565b610c738b8863ffffffff61121416565b9250610c81838c8c8b611271565b9095509350610c96898663ffffffff61119016565b91505060ff831660020a880284818303811515610caf57fe5b0495505b505050505095945050505050565b60008060008087891415610d27576000891180610cde5750600087115b1515610d22576040805160e560020a62461bcd02815260206004820152601b602482015260008051602061409c833981519152604482015290519081900360640190fd5b610d87565b600089118015610d375750600088115b8015610d435750600087115b1515610d87576040805160e560020a62461bcd02815260206004820152601b602482015260008051602061409c833981519152604482015290519081900360640190fd5b600086118015610d975750600085115b1515610ded576040805160e560020a62461bcd02815260206004820152601860248201527f4552525f494e56414c49445f524553455256455f524154450000000000000000604482015290519081900360640190fd5b610dfd898763ffffffff61119016565b9150610e0f878663ffffffff61119016565b905087891015610e3057610e27888a84846001611cbf565b93509350610e55565b87891115610e4657610e27898984846000611cbf565b610e50828261135b565b935093505b50509550959350505050565b600061070582611da2565b600061070582611e2f565b60006107058261222f565b610e8a612298565b610e92612a6e565b565b6000806106ef8484613475565b600080808080808911610eec576040805160e560020a62461bcd028152602060048201526012602482015260008051602061407c833981519152604482015290519081900360640190fd5b60008811610f32576040805160e560020a62461bcd02815260206004820152601b602482015260008051602061409c833981519152604482015290519081900360640190fd5b60018763ffffffff16118015610f515750621e848063ffffffff881611155b1515610fa7576040805160e560020a62461bcd02815260206004820152601960248201527f4552525f494e56414c49445f524553455256455f524154494f00000000000000604482015290519081900360640190fd5b851515610fb757600094506106c8565b63ffffffff8716620f42401415610ff057886001610fdb888b63ffffffff61119016565b03811515610fe557fe5b0460010194506106c8565b611000898763ffffffff61121416565b9150611011828a620f42408a611271565b909450925060ff8316600161102c8a8763ffffffff61119016565b60029290920a9103049790970360010198975050505050505050565b600080808080808911611093576040805160e560020a62461bcd028152602060048201526012602482015260008051602061407c833981519152604482015290519081900360640190fd5b600088116110d9576040805160e560020a62461bcd02815260206004820152601b602482015260008051602061409c833981519152604482015290519081900360640190fd5b60008763ffffffff161180156110f85750620f424063ffffffff881611155b151561114e576040805160e560020a62461bcd02815260206004820152601a60248201527f4552525f494e56414c49445f524553455256455f574549474854000000000000604482015290519081900360640190fd5b85151561115e57600094506106c8565b63ffffffff8716620f42401415611180578761066f8a8863ffffffff61119016565b610690868963ffffffff61121416565b6000808315156111a3576000915061120d565b508282028284828115156111b357fe5b0414611209576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b8091505b5092915050565b600082820183811015611209576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b600080808080807002000000000000000000000000000000008a1061129557600080fd5b88607f60020a8b028115156112a657fe5b04925070015bf0a8b1457695355fb8ac404e7a79e38310156112d2576112cb83611398565b93506112de565b6112db836117e2565b93505b8663ffffffff168863ffffffff1685028115156112f757fe5b0491507008000000000000000000000000000000008210156113275761131c82611e2f565b607f9550955061134e565b61133082611da2565b905061134860ff607f8390031660020a83048261189c565b81955095505b5050505094509492505050565b600080808084861161137a576113718686613475565b9350935061138f565b6113848587613475565b915091508082935093505b50509250929050565b6000808080806fd3094c70f034de4b96ff7d5b6f99fcd886106113e7576f4000000000000000000000000000000093909301926fd3094c70f034de4b96ff7d5b6f99fcd8607f60020a87020495505b6fa45af1e1f40c333b3de1db4dd55f29a78610611430576f2000000000000000000000000000000093909301926fa45af1e1f40c333b3de1db4dd55f29a7607f60020a87020495505b6f910b022db7ae67ce76b441c27035c6a18610611479576f1000000000000000000000000000000093909301926f910b022db7ae67ce76b441c27035c6a1607f60020a87020495505b6f88415abbe9a76bead8d00cf112e4d4a886106114c2576f0800000000000000000000000000000093909301926f88415abbe9a76bead8d00cf112e4d4a8607f60020a87020495505b6f84102b00893f64c705e841d5d4064bd3861061150b576f0400000000000000000000000000000093909301926f84102b00893f64c705e841d5d4064bd3607f60020a87020495505b6f8204055aaef1c8bd5c3259f4822735a28610611554576f0200000000000000000000000000000093909301926f8204055aaef1c8bd5c3259f4822735a2607f60020a87020495505b6f810100ab00222d861931c15e39b44e99861061159d576f0100000000000000000000000000000093909301926f810100ab00222d861931c15e39b44e99607f60020a87020495505b6f808040155aabbbe9451521693554f73386106115e5576e80000000000000000000000000000093909301926f808040155aabbbe9451521693554f733607f60020a87020495505b6f7fffffffffffffffffffffffffffffff1986019250829150607f60020a828002049050608060020a8381038302049390930192607f60020a8282020491507002000000000000000000000000000000006faaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa8490038302049390930192607f60020a8282020491507003000000000000000000000000000000006f999999999999999999999999999999998490038302049390930192607f60020a8282020491507004000000000000000000000000000000006f924924924924924924924924924924928490038302049390930192607f60020a8282020491507005000000000000000000000000000000006f8e38e38e38e38e38e38e38e38e38e38e8490038302049390930192607f60020a8282020491507006000000000000000000000000000000006f8ba2e8ba2e8ba2e8ba2e8ba2e8ba2e8b8490038302049390930192607f60020a8282020491507007000000000000000000000000000000006f89d89d89d89d89d89d89d89d89d89d898490038302049390930192607f60020a8282020491507008000000000000000000000000000000006f888888888888888888888888888888888490038302049390930195945050505050565b600060028204820382848115156117c357fe5b068115156117cd57fe5b0482848115156117d957fe5b04019392505050565b6000808080608060020a851061181a57611802607f60020a865b0461222f565b60ff8116600281900a90960495607f60020a02935091505b607f60020a85111561186c5750607f5b60008160ff16111561186c57607f60020a858002049450608060020a8510611863576002948590049460ff600019830116900a92909201915b6000190161182a565b6f05b9de1d10bf4103d647b0955897ba806f03f80fe03f80fe03f80fe03f80fe03f884020493505b505050919050565b6000806000849150600090508360ff168583029060020a90049150816f03442c4e6074a82f1797f72ac000000002810190508360ff168583029060020a90049150816f0116b96f757c380fb287fd0e4000000002810190508360ff168583029060020a90049150816e45ae5bdd5f0e03eca1ff439000000002810190508360ff168583029060020a90049150816e0defabf91302cd95b9ffda5000000002810190508360ff168583029060020a90049150816e02529ca9832b22439efff9b800000002810190508360ff168583029060020a90049150816d54f1cf12bd04e516b6da8800000002810190508360ff168583029060020a90049150816d0a9e39e257a09ca2d6db5100000002810190508360ff168583029060020a90049150816d012e066e7b839fa050c30900000002810190508360ff168583029060020a90049150816c1e33d7d926c329a1ad1a80000002810190508360ff168583029060020a90049150816c02bee513bdb4a6b19b5f80000002810190508360ff168583029060020a90049150816b3a9316fa79b88eccf2a0000002810190508360ff168583029060020a90049150816b048177ebe1fa81237520000002810190508360ff168583029060020a90049150816a5263fe90242dcbacf0000002810190508360ff168583029060020a90049150816a057e22099c030d9410000002810190508360ff168583029060020a90049150816957e22099c030d941000002810190508360ff168583029060020a900491508169052b6b5456997631000002810190508360ff168583029060020a9004915081684985f67696bf74800002810190508360ff168583029060020a90049150816803dea12ea99e49800002810190508360ff168583029060020a90049150816731880f2214b6e00002810190508360ff168583029060020a900491508167025bcff56eb3600002810190508360ff168583029060020a9004915081661b722e10ab100002810190508360ff168583029060020a90049150816601317c7007700002810190508360ff168583029060020a9004915081650cba84aafa0002810190508360ff168583029060020a90049150816482573a0a0002810190508360ff168583029060020a90049150816405035ad90002810190508360ff168583029060020a9004915081632f881b0002810190508360ff168583029060020a90049150816301b2934002810190508360ff168583029060020a9004915081620efc4002810190508360ff168583029060020a9004915081617fe002810190508360ff168583029060020a900491508161042002810190508360ff168583029060020a9004915081602102810190508360ff168583029060020a9004915081600102810190508360ff1660019060020a02856f0688589cc0e9505e2f2fee558000000083811515611cb357fe5b04010195945050505050565b600080600080600080611cd28989613511565b909950975089611cec8c607f60020a63ffffffff61119016565b811515611cf557fe5b04935070015bf0a8b1457695355fb8ac404e7a79e38410611d1e57611d19846117e2565b611d27565b611d2784611398565b925087611d3a848b63ffffffff61119016565b811515611d4357fe5b04915086611d5957611d54826135cd565b611d62565b611d6282613628565b9050611d90611d77828b63ffffffff61119016565b611d8b8a607f60020a63ffffffff61119016565b61135b565b95509550505050509550959350505050565b60006020607f825b8160ff168360010160ff161015611def57600260ff8484011604905084600060ff831660808110611dd757fe5b015410611de657809250611dea565b8091505b611daa565b84600060ff841660808110611e0057fe5b015410611e0f57819350611894565b84600060ff851660808110611e2057fe5b01541061017457829350611894565b6000670168244fdac78000607f60020a6f0fffffffffffffffffffffffffffffff84168080028290048082028390048083028490049485026710e1b3be415a00009092026705a0913f6b1e000091909102010192909181830204905080664807432bc180000283019250607f60020a828202811515611eaa57fe5b04905080660c0135dca040000283019250607f60020a828202811515611ecc57fe5b049050806601b707b1cdc0000283019250607f60020a828202811515611eee57fe5b049050806536e0f639b8000283019250607f60020a828202811515611f0f57fe5b04905080650618fee9f8000283019250607f60020a828202811515611f3057fe5b04905080649c197dcc000283019250607f60020a828202811515611f5057fe5b04905080640e30dce4000283019250607f60020a828202811515611f7057fe5b0490508064012ebd13000283019250607f60020a828202811515611f9057fe5b049050806317499f000283019250607f60020a828202811515611faf57fe5b049050806301a9d4800283019250607f60020a828202811515611fce57fe5b04905080621c63800283019250607f60020a828202811515611fec57fe5b049050806201c6380283019250607f60020a82820281151561200a57fe5b04905080611ab80283019250607f60020a82820281151561202757fe5b0490508061017c0283019250607f60020a82820281151561204457fe5b0490508060140283019250607f60020a82820281151561206057fe5b6721c3677c82b40000919004938401048201607f60020a019290506f100000000000000000000000000000008516156120bd5770018ebef9eac820ae8682b9793ac6d1e7767001c3d6a24ed82218787d624d3e5eba95f984020492505b6f200000000000000000000000000000008516156120ff577001368b2fc6f9609fe7aceb46aa619baed470018ebef9eac820ae8682b9793ac6d1e77884020492505b6f40000000000000000000000000000000851615612140576fbc5ab1b16779be3575bd8f0520a9f21f7001368b2fc6f9609fe7aceb46aa619baed584020492505b607f60020a851615612174576f454aaa8efe072e7f6ddbab84b40a55c96fbc5ab1b16779be3575bd8f0520a9f21e84020492505b608060020a8516156121a8576f0960aadc109e7a3bf4578099615711ea6f454aaa8efe072e7f6ddbab84b40a55c584020492505b7002000000000000000000000000000000008516156121e8576e2bf84208204f5977f9a8cf01fdce3d6f0960aadc109e7a3bf4578099615711d784020492505b700400000000000000000000000000000000851615612226576d03c6ab775dd0b95b4cbee7e65d116e2bf84208204f5977f9a8cf01fdc30784020492505b50909392505050565b6000808061010084101561225e575b6001841115612259576002909304926001919091019061223e565b61120d565b5060805b60008160ff16111561120d5760ff811660020a841061228b5760ff811660020a90930492908117905b600260ff90911604612262565b701c35fedd14ffffffffffffffffffffffff602055701b0ce43b323fffffffffffffffffffffff6021557019f0028ec1ffffffffffffffffffffffff6022557018ded91f0e7fffffffffffffffffffffff6023557017d8ec7f0417ffffffffffffffffffffff6024557016ddc6556cdbffffffffffffffffffffff6025557015ecf52776a1ffffffffffffffffffffff6026557015060c256cb2ffffffffffffffffffffff602755701428a2f98d72ffffffffffffffffffffff6028557013545598e5c23fffffffffffffffffffff602955701288c4161ce1dfffffffffffffffffffff602a557011c592761c666fffffffffffffffffffff602b5570110a688680a757ffffffffffffffffffff602c55701056f1b5bedf77ffffffffffffffffffff602d55700faadceceeff8bffffffffffffffffffff602e55700f05dc6b27edadffffffffffffffffffff602f55700e67a5a25da4107fffffffffffffffffff603055700dcff115b14eedffffffffffffffffffff603155700d3e7a392431239fffffffffffffffffff603255700cb2ff529eb71e4fffffffffffffffffff603355700c2d415c3db974afffffffffffffffffff603455700bad03e7d883f69bffffffffffffffffff603555700b320d03b2c343d5ffffffffffffffffff603655700abc25204e02828dffffffffffffffffff603755700a4b16f74ee4bb207fffffffffffffffff6038557009deaf736ac1f569ffffffffffffffffff603955700976bd9952c7aa957fffffffffffffffff603a557009131271922eaa606fffffffffffffffff603b557008b380f3558668c46fffffffffffffffff603c55700857ddf0117efa215bffffffffffffffff603d557007ffffffffffffffffffffffffffffffff603e557007abbf6f6abb9d087fffffffffffffffff603f5570075af62cbac95f7dfa7fffffffffffffff60405570070d7fb7452e187ac13fffffffffffffff6041557006c3390ecc8af379295fffffffffffffff60425570067c00a3b07ffc01fd6fffffffffffffff604355700637b647c39cbb9d3d27ffffffffffffff6044557005f63b1fc104dbd39587ffffffffffffff6045557005b771955b36e12f7235ffffffffffffff60465570057b3d49dda84556d6f6ffffffffffffff60475570054183095b2c8ececf30ffffffffffffff60485570050a28be635ca2b888f77fffffffffffff6049557004d5156639708c9db33c3fffffffffffff604a557004a23105873875bd52dfdfffffffffffff604b55700471649d87199aa990756fffffffffffff604c557004429a21a029d4c1457cfbffffffffffff604d55700415bc6d6fb7dd71af2cb3ffffffffffff604e557003eab73b3bbfe282243ce1ffffffffffff604f557003c1771ac9fb6b4c18e229ffffffffffff605055700399e96897690418f785257fffffffffff605155700373fc456c53bb779bf0ea9fffffffffff60525570034f9e8e490c48e67e6ab8bfffffffffff60535570032cbfd4a7adc790560b3337ffffffffff60545570030b50570f6e5d2acca94613ffffffffff6055557002eb40f9f620fda6b56c2861ffffffffff6056557002cc8340ecb0d0f520a6af58ffffffffff6057557002af09481380a0a35cf1ba02ffffffffff605855700292c5bdd3b92ec810287b1b3fffffffff605955700277abdcdab07d5a77ac6d6b9fffffffff605a5570025daf6654b1eaa55fd64df5efffffffff605b55700244c49c648baa98192dce88b7ffffffff605c5570022ce03cd5619a311b2471268bffffffff605d55700215f77c045fbe885654a44a0fffffffff605e557001ffffffffffffffffffffffffffffffff605f557001eaefdbdaaee7421fc4d3ede5ffffffff6060557001d6bd8b2eb257df7e8ca57b09bfffffff6061557001c35fedd14b861eb0443f7f133fffffff6062557001b0ce43b322bcde4a56e8ada5afffffff60635570019f0028ec1fff007f5a195a39dfffffff60645570018ded91f0e72ee74f49b15ba527ffffff60655570017d8ec7f04136f4e5615fd41a63ffffff60665570016ddc6556cdb84bdc8d12d22e6fffffff60675570015ecf52776a1155b5bd8395814f7fffff60685570015060c256cb23b3b3cc3754cf40ffffff6069557001428a2f98d728ae223ddab715be3fffff606a5570013545598e5c23276ccf0ede68034fffff606b557001288c4161ce1d6f54b7f61081194fffff606c5570011c592761c666aa641d5a01a40f17ffff606d55700110a688680a7530515f3e6e6cfdcdffff606e557001056f1b5bedf75c6bcb2ce8aed428ffff606f556ffaadceceeff8a0890f3875f008277fff6070556ff05dc6b27edad306388a600f6ba0bfff6071556fe67a5a25da41063de1495d5b18cdbfff6072556fdcff115b14eedde6fc3aa5353f2e4fff6073556fd3e7a3924312399f9aae2e0f868f8fff6074556fcb2ff529eb71e41582cccd5a1ee26fff6075556fc2d415c3db974ab32a51840c0b67edff6076556fbad03e7d883f69ad5b0a186184e06bff6077556fb320d03b2c343d4829abd6075f0cc5ff6078556fabc25204e02828d73c6e80bcdb1a95bf6079556fa4b16f74ee4bb2040a1ec6c15fbbf2df607a556f9deaf736ac1f569deb1b5ae3f36c130f607b556f976bd9952c7aa957f5937d790ef65037607c556f9131271922eaa6064b73a22d0bd4f2bf607d556f8b380f3558668c46c91c49a2f8e967b9607e556f857ddf0117efa215952912839f6473e66000607f5b0155565b6f60e393c68d20b1bd09deaabc0373b9c560809081556f5f8f46e4854120989ed94719fb4c20116081556f5e479ebb9129fb1b7e72a648f992b6066082556f5d0bd23fe42dfedde2e9586be12b85fe6083556f5bdb29ddee979308ddfca81aeeb8095a6084556f5ab4fd8a260d2c7e2c0d2afcf0009dad6085556f5998b31359a55d48724c65cf090012216086556f5885bcad2b322dfc43e8860f9c018cf56087556f577b97aa1fe222bb452fdf111b1f0be26088556f5679cb5e3575632e5baa27e2b949f7046089556f557fe8241b3a31c83c732f1cdff4a1c5608a556f548d868026504875d6e59bbe95fc2a6b608b556f53a2465ce347cf34d05a867c17dd3088608c556f52bdce5dcd4faed59c7f5511cf8f8acc608d556f51dfcb453c07f8da817606e7885f7c3e608e556f5107ef6b0a5a2be8f8ff15590daa3cce608f556f5035f241d6eae0cd7bacba119993de7b6090556f4f698fe90d5b53d532171e1210164c666091556f4ea288ca297a0e6a09a0eee240e16c856092556f4de0a13fdcf5d4213fc398ba6e3becde6093556f4d23a145eef91fec06b06140804c48086094556f4c6b5430d4c1ee5526473db4ae0f11de6095556f4bb7886c240562eba11f4963a53b42406096556f4b080f3f1cb491d2d521e0ea4583521e6097556f4a5cbc96a05589cb4d86be1db31683646098556f49b566d40243517658d78c33162d6ece6099556f4911e6a02e5507a30f947383fd9a3276609a556f487216c2b31be4adc41db8a8d5cc0c88609b556f47d5d3fc4a7a1b188cd3d788b5c5e9fc609c556f473cfce4871a2c40bc4f9e1c32b955d0609d556f46a771ca578ab878485810e285e31c67609e556f4615149718aed4c258c373dc676aa72d609f556f4585c8b3f8fe489c6e1833ca4787138460a0556f44f972f174e41e5efb7e9d63c29ce73560a1556f446ff970ba86d8b00beb05ecebf3c4dc60a2556f43e9438ec88971812d6f198b5ccaad9660a3556f436539d11ff7bea657aeddb394e809ef60a4556f42e3c5d3e5a913401d86f66db5d81c2c60a5556f4264d2395303070ea726cbe98df6217460a6556f41e84a9a593bb7194c3a6349ecae4eea60a7556f416e1b785d13eba07a08f3f18876a5ab60a8556f40f6322ff389d423ba9dd7e7e7b7e80960a9556f40807cec8a466880ecf4184545d240a460aa556f400cea9ce88a8d3ae668e8ea0d9bf07f60ab556f3f9b6ae8772d4c55091e0ed7dfea0ac160ac556f3f2bee253fd84594f54bcaafac383a1360ad556f3ebe654e95208bb9210c575c081c595860ae556f3e52c1fc5665635b78ce1f05ad53c08660af556f3de8f65ac388101ddf718a6f5c1eff6560b0556f3d80f522d59bd0b328ca012df4cd2d4960b1556f3d1ab193129ea72b23648a161163a85a60b2556f3cb61f68d32576c135b95cfb53f76d7560b3556f3c5332d9f1aae851a3619e77e4cc847360b4556f3bf1e08edbe2aa109e1525f65759ef7360b5556f3b921d9cff13fa2c197746a3dfc4918f60b6556f3b33df818910bfc1a5aefb8f63ae2ac460b7556f3ad71c1c77e34fa32a9f184967eccbf660b8556f3a7bc9abf2c5bb53e2f7384a8a16521a60b9556f3a21dec7e76369783a68a0c6385a1c5760ba556f39c9525de6c9cdf7c1c157ca4a7a6ee360bb556f39721bad3dc85d1240ff0190e0adaac360bc556f391c324344d3248f0469eb28dd3d77e060bd556f38c78df7e3c796279fb4ff84394ab3da60be556f387426ea4638ae9aae08049d3554c20a60bf556f3821f57dbd2763256c1a99bbd205137860c0556f37d0f256cb46a8c92ff62fbbef28969860c1556f37811658591ffc7abdd1feaf3cef9b7360c2556f37325aa10e9e82f7df0f380f7997154b60c3556f36e4b888cfb408d873b9a80d439311c660c4556f3698299e59f4bb9de645fc9b08c64cca60c5556f364ca7a5012cb603023b57dd3ebfd50d60c6556f36022c928915b778ab1b06aaee7e61d460c7556f35b8b28d1a73dc27500ffe35559cc02860c8556f357033e951fe250ec5eb4e60955132d760c9556f3528ab2867934e3a21b5412e4c4f888160ca556f34e212f66c55057f9676c80094a61d5960cb556f349c66289e5b3c4b540c24f42fa4b9bb60cc556f34579fbbd0c733a9c8d6af6b0f7d00f760cd556f3413bad2e712288b924b5882b5b369bf60ce556f33d0b2b56286510ef730e213f71f12e960cf556f338e82ce00e2496262c64457535ba1a160d0556f334d26a96b373bb7c2f8ea1827f27a9260d1556f330c99f4f4211469e00b3e18c31475ea60d2556f32ccd87d6486094999c7d5e6f33237d860d3556f328dde2dd617b6665a2e8556f250c1af60d4556f324fa70e9adc270f8262755af5a99af960d5556f32122f443110611ca51040f41fa6e1e360d6556f31d5730e42c0831482f0f1485c4263d860d7556f31996ec6b07b4a83421b5ebc4ab4e1f160d8556f315e1ee0a68ff46bb43ec2b85032e87660d9556f31237fe7bc4deacf6775b9efa1a145f860da556f30e98e7f1cc5a356e44627a6972ea2ff60db556f30b04760b8917ec74205a3002650ec0560dc556f3077a75c803468e9132ce0cf3224241d60dd556f303fab57a6a275c36f19cda9bace667a60de556f3008504beb8dcbd2cf3bc1f6d5a064f060df556f2fd19346ed17dac61219ce0c2c5ac4b060e0556f2f9b7169808c324b5852fd3d54ba971460e1556f2f65e7e711cf4b064eea9c08cbdad57460e2556f2f30f405093042ddff8a251b6bf6d10360e3556f2efc931a3750f2e8bfe323edfe03757460e4556f2ec8c28e46dbe56d98685278339400cb60e5556f2e957fd933c3926d8a599b602379b85160e6556f2e62c882c7c9ed4473412702f08ba0e560e7556f2e309a221c12ba361e3ed695167feee260e8556f2dfef25d1f865ae18dd07cfea4bcea1060e9556f2dcdcee821cdc80decc02c44344aeb3160ea556f2d9d2d8562b34944d0b201bb87260c8360eb556f2d6d0c04a5b62a2c42636308669b729a60ec556f2d3d6842c9a235517fc5a0332691528f60ed556f2d0e402963fe1ea2834abc408c437c1060ee556f2cdf91ae602647908aff975e4d6a2a8c60ef556f2cb15ad3a1eb65f6d74a75da09a1b6c560f0556f2c8399a6ab8e9774d6fcff373d21072760f1556f2c564c4046f64edba6883ca06bbc453560f2556f2c2970c431f952641e05cb493e23eed360f3556f2bfd0560cd9eb14563bc7c0732856c1860f4556f2bd1084ed0332f7ff4150f9d0ef41a2c60f5556f2ba577d0fa1628b76d040b12a82492fb60f6556f2b7a5233cd21581e855e89dc2f1e8a9260f7556f2b4f95cd46904d05d72bdcde337d9cc760f8556f2b2540fc9b4d9abba3faca669191467560f9556f2afb5229f68d0830d8be8adb0a0db70f60fa556f2ad1c7c63a9b294c5bc73a3ba3ab7a2b60fb556f2aa8a04ac3cbe1ee1c9c86361465dbb860fc556f2a7fda392d725a44a2c8aeb9ab35430d60fd556f2a57741b18cde618717792b4faa216db60fe556f2a2f6c81f5d84dd950a35626d6d5503a90607f612a6a565b60008060008060007d10c6f7a0b5ed8d36b4c7f34938583621fafc8b0079a2834d26fa3fcc9ea98711156134e6577d10c6f7a0b5ed8d36b4c7f34938583621fafc8b0079a2834d26fa3fcc9eaa8704600101925082878115156134d457fe5b04965082868115156134e257fe5b0495505b6134fe620f424088026134f98989611214565b6117b0565b97620f4240899003975095505050505050565b600080600080608060020a861115801561352f5750608060020a8511155b1561353f5785859350935061138f565b608060020a86101561356b5784608060020a870281151561355c57fe5b04608060020a9350935061138f565b608060020a85101561359757608060020a86608060020a870281151561358d57fe5b049350935061138f565b8486116135a457846135a6565b855b91506135b6607f60020a836117fc565b60ff1660020a958690049695909404949350505050565b60006f2f16ac6c59de6f8d5d6f63c1482a7c8682116135f6576135ef8261368c565b9050610708565b817f400000000000000000000000000000000000000000000000000000000000000081151561362157fe5b0492915050565b60006f2f16ac6c59de6f8d5d6f63c1482a7c86821161364a576135ef82613aef565b7001af16ac6c59de6f8d5d6f63c1482a7c80821161366b576135ef82613f70565b706b22d43e72c326539cceeef8bb48f255ff8211610174576135ef82613fee565b60008181607f60020a82800204915070014d29a73a6e7b02c3668c7b0880000000820201607f60020a8483020491507002504a0cd9a7f7215b60f9be4800000000820201607f60020a848302049150700484d0a1191c0ead267967c7a4a0000000820201607f60020a84830204915070095ec580d7e8427a4baf26a90a00000000820201607f60020a848302049150701440b0be1615a47dba6e5b3b1f10000000820201607f60020a848302049150702d207601f46a99b4112418400000000000820201607f60020a8483020491507066ebaac4c37c622dd8288a7eb1b2000000820201607f60020a84830204915070ef17240135f7dbd43a1ba10cf200000000820201607f60020a848302049150710233c33c676a5eb2416094a87b3657000000820201607f60020a848302049150710541cde48bc0254bed49a9f8700000000000820201607f60020a848302049150710cae1fad2cdd4d4cb8d73abca0d19a400000820201607f60020a848302049150711edb2aa2f760d15c41ceedba956400000000820201607f60020a848302049150714ba8d20d2dabd386c9529659841a2e200000820201607f60020a84830204915071bac08546b867cdaa20000000000000000000820201607f60020a8483020491507201cfa8e70c03625b9db76c8ebf5bbf24820000820201607f60020a8483020491507204851d99f82060df265f3309b26f8200000000820201607f60020a848302049150720b550d19b129d270c44f6f55f027723cbb0000820201607f60020a848302049150721c877dadc761dc272deb65d4b0000000000000820201607f60020a8483020491507248178ece97479f33a77f2ad22a81b64406c000820201607f60020a84830204915072b6ca8268b9d810fedf6695ef2f8a6c00000000820201607f60020a8483020491507301d0e76631a5b05d007b8cb72a7c7f11ec36e000820201607f60020a8483020491507304a1c37bd9f85fd9c6c780000000000000000000820201607f60020a848302049150730bd8369f1b702bf491e2ebfcee08250313b65400820201607f60020a848302049150731e5c7c32a9f6c70ab2cb59d9225764d400000000820201607f60020a848302049150734dff5820e165e910f95120a708e742496221e600820201607f60020a84830204915073c8c8f66db1fced378ee50e536000000000000000820201607f60020a848302049150740205db8dffff45bfa2938f128f599dbf16eb11d880820201607f60020a84830204915074053a044ebd984351493e1786af38d39a0800000000820201607f60020a848302049150740d86dae2a4cc0f47633a544479735869b487b59c40820201607f60020a84830204915074231000000000000000000000000000000000000000820201607f60020a848302049150745b0485a76f6646c2039db1507cdd51b08649680822820201607f60020a84830204915074ec983c46c49545bc17efa6b5b0055e242200000000820201607f60020a846fde1bc4d19efcac82445da75b0000000083040101949350505050565b600081607f60020a8181036fde1bc4d19efcac82445da75b00000000029082800204915070014d29a73a6e7b02c3668c7b0880000000820201607f60020a8483020491507002504a0cd9a7f7215b60f9be480000000082029003607f60020a848302049150700484d0a1191c0ead267967c7a4a0000000820201607f60020a84830204915070095ec580d7e8427a4baf26a90a0000000082029003607f60020a848302049150701440b0be1615a47dba6e5b3b1f10000000820201607f60020a848302049150702d207601f46a99b411241840000000000082029003607f60020a8483020491507066ebaac4c37c622dd8288a7eb1b2000000820201607f60020a84830204915070ef17240135f7dbd43a1ba10cf20000000082029003607f60020a848302049150710233c33c676a5eb2416094a87b3657000000820201607f60020a848302049150710541cde48bc0254bed49a9f870000000000082029003607f60020a848302049150710cae1fad2cdd4d4cb8d73abca0d19a400000820201607f60020a848302049150711edb2aa2f760d15c41ceedba95640000000082029003607f60020a848302049150714ba8d20d2dabd386c9529659841a2e200000820201607f60020a84830204915071bac08546b867cdaa2000000000000000000082029003607f60020a8483020491507201cfa8e70c03625b9db76c8ebf5bbf24820000820201607f60020a8483020491507204851d99f82060df265f3309b26f820000000082029003607f60020a848302049150720b550d19b129d270c44f6f55f027723cbb0000820201607f60020a848302049150721c877dadc761dc272deb65d4b000000000000082029003607f60020a8483020491507248178ece97479f33a77f2ad22a81b64406c000820201607f60020a84830204915072b6ca8268b9d810fedf6695ef2f8a6c0000000082029003607f60020a8483020491507301d0e76631a5b05d007b8cb72a7c7f11ec36e000820201607f60020a8483020491507304a1c37bd9f85fd9c6c78000000000000000000082029003607f60020a848302049150730bd8369f1b702bf491e2ebfcee08250313b65400820201607f60020a848302049150731e5c7c32a9f6c70ab2cb59d9225764d40000000082029003607f60020a848302049150734dff5820e165e910f95120a708e742496221e600820201607f60020a84830204915073c8c8f66db1fced378ee50e53600000000000000082029003607f60020a848302049150740205db8dffff45bfa2938f128f599dbf16eb11d880820201607f60020a84830204915074053a044ebd984351493e1786af38d39a080000000082029003607f60020a848302049150740d86dae2a4cc0f47633a544479735869b487b59c40820201607f60020a8483020491507423100000000000000000000000000000000000000082029003607f60020a848302049150745b0485a76f6646c2039db1507cdd51b08649680822820201607f60020a84830204915074ec983c46c49545bc17efa6b5b0055e242200000000820290036fde1bc4d19efcac82445da75b00000000815b04949350505050565b60006f2f16ac6c59de6f8d5d6f63c1482a7c861982016f03060c183060c183060c183060c18306808204908181029060018301028480608085818110613fb257fe5b01549150608060018601818110613fc557fe5b01546f03060c183060c183060c183060c183069487030295909203029390930104949350505050565b600080600070015bf0a8b1457695355fb8ac404e7a79e3841061401957614014846117e2565b614022565b61402284611398565b915070015bf0a8b1457695355fb8ac404e7a79e3821061404a57614045826117e2565b614053565b61405382611398565b905083607f60020a83607f60020a840281151561406c57fe5b048385030102811515613f6757fe004552525f494e56414c49445f535550504c5900000000000000000000000000004552525f494e56414c49445f524553455256455f42414c414e43450000000000a165627a7a7230582044f02762b5e42ac5c4daf454d158a089ec58a9a518279e70025d2514a1c9b3920029", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x174 JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x1DA6BBFB DUP2 EQ PUSH2 0x179 JUMPI DUP1 PUSH4 0x29A00E7C EQ PUSH2 0x1B2 JUMPI DUP1 PUSH4 0x2F55BDB5 EQ PUSH2 0x1D9 JUMPI DUP1 PUSH4 0x35B49AF4 EQ PUSH2 0x200 JUMPI DUP1 PUSH4 0x3E75C6CA EQ PUSH2 0x227 JUMPI DUP1 PUSH4 0x3E8A38AB EQ PUSH2 0x265 JUMPI DUP1 PUSH4 0x47D0B686 EQ PUSH2 0x27D JUMPI DUP1 PUSH4 0x48D73FED EQ PUSH2 0x1B2 JUMPI DUP1 PUSH4 0x4982D52D EQ PUSH2 0x298 JUMPI DUP1 PUSH4 0x49F9B0F7 EQ PUSH2 0x2B0 JUMPI DUP1 PUSH4 0x54FD4D50 EQ PUSH2 0x2D7 JUMPI DUP1 PUSH4 0x65098BB3 EQ PUSH2 0x303 JUMPI DUP1 PUSH4 0x6CAB5055 EQ PUSH2 0x331 JUMPI DUP1 PUSH4 0x76CF0B56 EQ PUSH2 0x34F JUMPI DUP1 PUSH4 0x79C1B450 EQ PUSH2 0x303 JUMPI DUP1 PUSH4 0x8074590A EQ PUSH2 0x376 JUMPI DUP1 PUSH4 0x8C5CE82A EQ PUSH2 0x39D JUMPI DUP1 PUSH4 0x94491FAB EQ PUSH2 0x3E2 JUMPI DUP1 PUSH4 0x9D114108 EQ PUSH2 0x303 JUMPI DUP1 PUSH4 0xA11AA1B4 EQ PUSH2 0x410 JUMPI DUP1 PUSH4 0xA25A34B1 EQ PUSH2 0x434 JUMPI DUP1 PUSH4 0xABFD231D EQ PUSH2 0x200 JUMPI DUP1 PUSH4 0xACDEE8CB EQ PUSH2 0x462 JUMPI DUP1 PUSH4 0xCE782E08 EQ PUSH2 0x47A JUMPI DUP1 PUSH4 0xE1C7392A EQ PUSH2 0x492 JUMPI DUP1 PUSH4 0xE4883121 EQ PUSH2 0x4A9 JUMPI DUP1 PUSH4 0xEBBB2158 EQ PUSH2 0x4C4 JUMPI DUP1 PUSH4 0xF3250FE2 EQ PUSH2 0x4EB JUMPI DUP1 PUSH4 0xF732F1C9 EQ PUSH2 0x2B0 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x185 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A0 PUSH1 0x4 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH4 0xFFFFFFFF PUSH1 0x44 CALLDATALOAD AND PUSH1 0x64 CALLDATALOAD PUSH2 0x512 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1BE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A0 PUSH1 0x4 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH4 0xFFFFFFFF PUSH1 0x44 CALLDATALOAD AND PUSH1 0x64 CALLDATALOAD PUSH2 0x529 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1E5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A0 PUSH1 0x4 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH4 0xFFFFFFFF PUSH1 0x44 CALLDATALOAD AND PUSH1 0x64 CALLDATALOAD PUSH2 0x537 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x20C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A0 PUSH1 0x4 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH4 0xFFFFFFFF PUSH1 0x44 CALLDATALOAD AND PUSH1 0x64 CALLDATALOAD PUSH2 0x6D4 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x233 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x242 PUSH1 0x4 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH2 0x6E2 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH4 0xFFFFFFFF SWAP4 DUP5 AND DUP2 MSTORE SWAP2 SWAP1 SWAP3 AND PUSH1 0x20 DUP3 ADD MSTORE DUP2 MLOAD SWAP1 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x271 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A0 PUSH1 0x4 CALLDATALOAD PUSH2 0x6FA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x289 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A0 PUSH1 0x4 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH2 0x70D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2A4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A0 PUSH1 0x4 CALLDATALOAD PUSH2 0x720 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2BC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A0 PUSH1 0x4 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH4 0xFFFFFFFF PUSH1 0x44 CALLDATALOAD AND PUSH1 0x64 CALLDATALOAD PUSH2 0x72B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2E3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2EC PUSH2 0x739 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0xFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x30F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A0 PUSH1 0x4 CALLDATALOAD PUSH4 0xFFFFFFFF PUSH1 0x24 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x44 CALLDATALOAD SWAP1 PUSH1 0x64 CALLDATALOAD AND PUSH1 0x84 CALLDATALOAD PUSH2 0x73E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x33D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A0 PUSH1 0x4 CALLDATALOAD PUSH1 0xFF PUSH1 0x24 CALLDATALOAD AND PUSH2 0x757 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x35B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A0 PUSH1 0x4 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH4 0xFFFFFFFF PUSH1 0x44 CALLDATALOAD AND PUSH1 0x64 CALLDATALOAD PUSH2 0x763 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x382 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A0 PUSH1 0x4 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH4 0xFFFFFFFF PUSH1 0x44 CALLDATALOAD AND PUSH1 0x64 CALLDATALOAD PUSH2 0x968 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3A9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3C7 PUSH1 0x4 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH4 0xFFFFFFFF PUSH1 0x44 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x64 CALLDATALOAD AND PUSH2 0xB09 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0xFF SWAP1 SWAP2 AND PUSH1 0x20 DUP4 ADD MSTORE DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3EE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A0 PUSH1 0x4 CALLDATALOAD PUSH4 0xFFFFFFFF PUSH1 0x24 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x44 CALLDATALOAD SWAP1 PUSH1 0x64 CALLDATALOAD AND PUSH1 0x84 CALLDATALOAD PUSH2 0xB25 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x41C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x242 PUSH1 0x4 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH1 0x44 CALLDATALOAD PUSH1 0x64 CALLDATALOAD PUSH1 0x84 CALLDATALOAD PUSH2 0xCC1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x440 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x44C PUSH1 0x4 CALLDATALOAD PUSH2 0xE61 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x46E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A0 PUSH1 0x4 CALLDATALOAD PUSH2 0xE6C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x486 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x44C PUSH1 0x4 CALLDATALOAD PUSH2 0xE77 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x49E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4A7 PUSH2 0xE82 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4B5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x242 PUSH1 0x4 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH2 0xE94 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4D0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A0 PUSH1 0x4 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH4 0xFFFFFFFF PUSH1 0x44 CALLDATALOAD AND PUSH1 0x64 CALLDATALOAD PUSH2 0xEA1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4F7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A0 PUSH1 0x4 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH4 0xFFFFFFFF PUSH1 0x44 CALLDATALOAD AND PUSH1 0x64 CALLDATALOAD PUSH2 0x1048 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x520 DUP6 DUP6 DUP6 DUP6 PUSH2 0xEA1 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x520 DUP6 DUP6 DUP6 DUP6 PUSH2 0x1048 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP1 DUP1 DUP1 DUP10 GT PUSH2 0x582 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x407C DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP9 GT PUSH2 0x5C8 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x409C DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP8 PUSH4 0xFFFFFFFF AND GT DUP1 ISZERO PUSH2 0x5E7 JUMPI POP PUSH3 0x1E8480 PUSH4 0xFFFFFFFF DUP9 AND GT ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x63D JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F524154494F00000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP6 ISZERO ISZERO PUSH2 0x64D JUMPI PUSH1 0x0 SWAP5 POP PUSH2 0x6C8 JUMP JUMPDEST PUSH4 0xFFFFFFFF DUP8 AND PUSH3 0xF4240 EQ ISZERO PUSH2 0x680 JUMPI DUP8 PUSH2 0x66F DUP8 DUP12 PUSH4 0xFFFFFFFF PUSH2 0x1190 AND JUMP JUMPDEST DUP2 ISZERO ISZERO PUSH2 0x678 JUMPI INVALID JUMPDEST DIV SWAP5 POP PUSH2 0x6C8 JUMP JUMPDEST PUSH2 0x690 DUP9 DUP8 PUSH4 0xFFFFFFFF PUSH2 0x1214 AND JUMP JUMPDEST SWAP2 POP PUSH2 0x6A1 DUP3 DUP10 DUP10 PUSH3 0xF4240 PUSH2 0x1271 JUMP JUMPDEST SWAP1 SWAP5 POP SWAP3 POP PUSH1 0xFF DUP4 AND PUSH2 0x6BA DUP11 DUP7 PUSH4 0xFFFFFFFF PUSH2 0x1190 AND JUMP JUMPDEST SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP1 POP DUP9 DUP2 SUB SWAP5 POP JUMPDEST POP POP POP POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x520 DUP6 DUP6 DUP6 DUP6 PUSH2 0x968 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x6EF DUP5 DUP5 PUSH2 0x135B JUMP JUMPDEST SWAP2 POP SWAP2 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x705 DUP3 PUSH2 0x1398 JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x719 DUP4 DUP4 PUSH2 0x17B0 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x705 DUP3 PUSH2 0x17E2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x520 DUP6 DUP6 DUP6 DUP6 PUSH2 0x763 JUMP JUMPDEST PUSH1 0x8 DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x74D DUP7 DUP7 DUP7 DUP7 DUP7 PUSH2 0xB25 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x719 DUP4 DUP4 PUSH2 0x189C JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP1 DUP1 DUP1 DUP1 DUP11 GT PUSH2 0x7AF JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x407C DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP10 GT PUSH2 0x7F5 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x409C DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP9 PUSH4 0xFFFFFFFF AND GT DUP1 ISZERO PUSH2 0x814 JUMPI POP PUSH3 0xF4240 PUSH4 0xFFFFFFFF DUP10 AND GT ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x86A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F574549474854000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP10 DUP8 GT ISZERO PUSH2 0x8C2 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F414D4F554E540000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP7 ISZERO ISZERO PUSH2 0x8D2 JUMPI PUSH1 0x0 SWAP6 POP PUSH2 0x95B JUMP JUMPDEST DUP10 DUP8 EQ ISZERO PUSH2 0x8E2 JUMPI DUP9 SWAP6 POP PUSH2 0x95B JUMP JUMPDEST PUSH4 0xFFFFFFFF DUP9 AND PUSH3 0xF4240 EQ ISZERO PUSH2 0x915 JUMPI DUP10 PUSH2 0x904 DUP11 DUP10 PUSH4 0xFFFFFFFF PUSH2 0x1190 AND JUMP JUMPDEST DUP2 ISZERO ISZERO PUSH2 0x90D JUMPI INVALID JUMPDEST DIV SWAP6 POP PUSH2 0x95B JUMP JUMPDEST DUP7 DUP11 SUB SWAP3 POP PUSH2 0x929 DUP11 DUP5 PUSH3 0xF4240 DUP12 PUSH2 0x1271 JUMP JUMPDEST SWAP1 SWAP6 POP SWAP4 POP PUSH2 0x93E DUP10 DUP7 PUSH4 0xFFFFFFFF PUSH2 0x1190 AND JUMP JUMPDEST SWAP2 POP POP PUSH1 0xFF DUP4 AND PUSH1 0x2 EXP DUP9 MUL DUP5 DUP2 DUP4 SUB DUP2 ISZERO ISZERO PUSH2 0x957 JUMPI INVALID JUMPDEST DIV SWAP6 POP JUMPDEST POP POP POP POP POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP1 DUP1 DUP1 DUP1 DUP11 GT PUSH2 0x9B4 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x407C DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP10 GT PUSH2 0x9FA JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x409C DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP9 PUSH4 0xFFFFFFFF AND GT DUP1 ISZERO PUSH2 0xA19 JUMPI POP PUSH3 0x1E8480 PUSH4 0xFFFFFFFF DUP10 AND GT ISZERO JUMPDEST ISZERO ISZERO PUSH2 0xA6F JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F524154494F00000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP10 DUP8 GT ISZERO PUSH2 0xAC7 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F414D4F554E540000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP7 ISZERO ISZERO PUSH2 0xAD7 JUMPI PUSH1 0x0 SWAP6 POP PUSH2 0x95B JUMP JUMPDEST DUP10 DUP8 EQ ISZERO PUSH2 0xAE7 JUMPI DUP9 SWAP6 POP PUSH2 0x95B JUMP JUMPDEST PUSH4 0xFFFFFFFF DUP9 AND PUSH3 0xF4240 EQ ISZERO PUSH2 0x915 JUMPI DUP10 PUSH2 0x904 DUP9 DUP12 PUSH4 0xFFFFFFFF PUSH2 0x1190 AND JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xB18 DUP7 DUP7 DUP7 DUP7 PUSH2 0x1271 JUMP JUMPDEST SWAP2 POP SWAP2 POP SWAP5 POP SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP12 GT DUP1 ISZERO PUSH2 0xB3E JUMPI POP PUSH1 0x0 DUP10 GT JUMPDEST ISZERO ISZERO PUSH2 0xB82 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x409C DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP11 PUSH4 0xFFFFFFFF AND GT DUP1 ISZERO PUSH2 0xBA1 JUMPI POP PUSH3 0xF4240 PUSH4 0xFFFFFFFF DUP12 AND GT ISZERO JUMPDEST DUP1 ISZERO PUSH2 0xBB3 JUMPI POP PUSH1 0x0 DUP9 PUSH4 0xFFFFFFFF AND GT JUMPDEST DUP1 ISZERO PUSH2 0xBC8 JUMPI POP PUSH3 0xF4240 PUSH4 0xFFFFFFFF DUP10 AND GT ISZERO JUMPDEST ISZERO ISZERO PUSH2 0xC1E JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F574549474854000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP8 PUSH4 0xFFFFFFFF AND DUP11 PUSH4 0xFFFFFFFF AND EQ ISZERO PUSH2 0xC63 JUMPI PUSH2 0xC42 DUP12 DUP9 PUSH4 0xFFFFFFFF PUSH2 0x1214 AND JUMP JUMPDEST PUSH2 0xC52 DUP11 DUP10 PUSH4 0xFFFFFFFF PUSH2 0x1190 AND JUMP JUMPDEST DUP2 ISZERO ISZERO PUSH2 0xC5B JUMPI INVALID JUMPDEST DIV SWAP6 POP PUSH2 0xCB3 JUMP JUMPDEST PUSH2 0xC73 DUP12 DUP9 PUSH4 0xFFFFFFFF PUSH2 0x1214 AND JUMP JUMPDEST SWAP3 POP PUSH2 0xC81 DUP4 DUP13 DUP13 DUP12 PUSH2 0x1271 JUMP JUMPDEST SWAP1 SWAP6 POP SWAP4 POP PUSH2 0xC96 DUP10 DUP7 PUSH4 0xFFFFFFFF PUSH2 0x1190 AND JUMP JUMPDEST SWAP2 POP POP PUSH1 0xFF DUP4 AND PUSH1 0x2 EXP DUP9 MUL DUP5 DUP2 DUP4 SUB DUP2 ISZERO ISZERO PUSH2 0xCAF JUMPI INVALID JUMPDEST DIV SWAP6 POP JUMPDEST POP POP POP POP POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 DUP8 DUP10 EQ ISZERO PUSH2 0xD27 JUMPI PUSH1 0x0 DUP10 GT DUP1 PUSH2 0xCDE JUMPI POP PUSH1 0x0 DUP8 GT JUMPDEST ISZERO ISZERO PUSH2 0xD22 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x409C DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0xD87 JUMP JUMPDEST PUSH1 0x0 DUP10 GT DUP1 ISZERO PUSH2 0xD37 JUMPI POP PUSH1 0x0 DUP9 GT JUMPDEST DUP1 ISZERO PUSH2 0xD43 JUMPI POP PUSH1 0x0 DUP8 GT JUMPDEST ISZERO ISZERO PUSH2 0xD87 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x409C DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP7 GT DUP1 ISZERO PUSH2 0xD97 JUMPI POP PUSH1 0x0 DUP6 GT JUMPDEST ISZERO ISZERO PUSH2 0xDED JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F524154450000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0xDFD DUP10 DUP8 PUSH4 0xFFFFFFFF PUSH2 0x1190 AND JUMP JUMPDEST SWAP2 POP PUSH2 0xE0F DUP8 DUP7 PUSH4 0xFFFFFFFF PUSH2 0x1190 AND JUMP JUMPDEST SWAP1 POP DUP8 DUP10 LT ISZERO PUSH2 0xE30 JUMPI PUSH2 0xE27 DUP9 DUP11 DUP5 DUP5 PUSH1 0x1 PUSH2 0x1CBF JUMP JUMPDEST SWAP4 POP SWAP4 POP PUSH2 0xE55 JUMP JUMPDEST DUP8 DUP10 GT ISZERO PUSH2 0xE46 JUMPI PUSH2 0xE27 DUP10 DUP10 DUP5 DUP5 PUSH1 0x0 PUSH2 0x1CBF JUMP JUMPDEST PUSH2 0xE50 DUP3 DUP3 PUSH2 0x135B JUMP JUMPDEST SWAP4 POP SWAP4 POP JUMPDEST POP POP SWAP6 POP SWAP6 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x705 DUP3 PUSH2 0x1DA2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x705 DUP3 PUSH2 0x1E2F JUMP JUMPDEST PUSH1 0x0 PUSH2 0x705 DUP3 PUSH2 0x222F JUMP JUMPDEST PUSH2 0xE8A PUSH2 0x2298 JUMP JUMPDEST PUSH2 0xE92 PUSH2 0x2A6E JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x6EF DUP5 DUP5 PUSH2 0x3475 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP1 DUP1 DUP1 DUP10 GT PUSH2 0xEEC JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x407C DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP9 GT PUSH2 0xF32 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x409C DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP8 PUSH4 0xFFFFFFFF AND GT DUP1 ISZERO PUSH2 0xF51 JUMPI POP PUSH3 0x1E8480 PUSH4 0xFFFFFFFF DUP9 AND GT ISZERO JUMPDEST ISZERO ISZERO PUSH2 0xFA7 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F524154494F00000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP6 ISZERO ISZERO PUSH2 0xFB7 JUMPI PUSH1 0x0 SWAP5 POP PUSH2 0x6C8 JUMP JUMPDEST PUSH4 0xFFFFFFFF DUP8 AND PUSH3 0xF4240 EQ ISZERO PUSH2 0xFF0 JUMPI DUP9 PUSH1 0x1 PUSH2 0xFDB DUP9 DUP12 PUSH4 0xFFFFFFFF PUSH2 0x1190 AND JUMP JUMPDEST SUB DUP2 ISZERO ISZERO PUSH2 0xFE5 JUMPI INVALID JUMPDEST DIV PUSH1 0x1 ADD SWAP5 POP PUSH2 0x6C8 JUMP JUMPDEST PUSH2 0x1000 DUP10 DUP8 PUSH4 0xFFFFFFFF PUSH2 0x1214 AND JUMP JUMPDEST SWAP2 POP PUSH2 0x1011 DUP3 DUP11 PUSH3 0xF4240 DUP11 PUSH2 0x1271 JUMP JUMPDEST SWAP1 SWAP5 POP SWAP3 POP PUSH1 0xFF DUP4 AND PUSH1 0x1 PUSH2 0x102C DUP11 DUP8 PUSH4 0xFFFFFFFF PUSH2 0x1190 AND JUMP JUMPDEST PUSH1 0x2 SWAP3 SWAP1 SWAP3 EXP SWAP2 SUB DIV SWAP8 SWAP1 SWAP8 SUB PUSH1 0x1 ADD SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP1 DUP1 DUP1 DUP10 GT PUSH2 0x1093 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x407C DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP9 GT PUSH2 0x10D9 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x409C DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP8 PUSH4 0xFFFFFFFF AND GT DUP1 ISZERO PUSH2 0x10F8 JUMPI POP PUSH3 0xF4240 PUSH4 0xFFFFFFFF DUP9 AND GT ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x114E JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F524553455256455F574549474854000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP6 ISZERO ISZERO PUSH2 0x115E JUMPI PUSH1 0x0 SWAP5 POP PUSH2 0x6C8 JUMP JUMPDEST PUSH4 0xFFFFFFFF DUP8 AND PUSH3 0xF4240 EQ ISZERO PUSH2 0x1180 JUMPI DUP8 PUSH2 0x66F DUP11 DUP9 PUSH4 0xFFFFFFFF PUSH2 0x1190 AND JUMP JUMPDEST PUSH2 0x690 DUP7 DUP10 PUSH4 0xFFFFFFFF PUSH2 0x1214 AND JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 ISZERO ISZERO PUSH2 0x11A3 JUMPI PUSH1 0x0 SWAP2 POP PUSH2 0x120D JUMP JUMPDEST POP DUP3 DUP3 MUL DUP3 DUP5 DUP3 DUP2 ISZERO ISZERO PUSH2 0x11B3 JUMPI INVALID JUMPDEST DIV EQ PUSH2 0x1209 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP1 SWAP2 POP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 ADD DUP4 DUP2 LT ISZERO PUSH2 0x1209 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP1 DUP1 DUP1 PUSH17 0x200000000000000000000000000000000 DUP11 LT PUSH2 0x1295 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP9 PUSH1 0x7F PUSH1 0x2 EXP DUP12 MUL DUP2 ISZERO ISZERO PUSH2 0x12A6 JUMPI INVALID JUMPDEST DIV SWAP3 POP PUSH17 0x15BF0A8B1457695355FB8AC404E7A79E3 DUP4 LT ISZERO PUSH2 0x12D2 JUMPI PUSH2 0x12CB DUP4 PUSH2 0x1398 JUMP JUMPDEST SWAP4 POP PUSH2 0x12DE JUMP JUMPDEST PUSH2 0x12DB DUP4 PUSH2 0x17E2 JUMP JUMPDEST SWAP4 POP JUMPDEST DUP7 PUSH4 0xFFFFFFFF AND DUP9 PUSH4 0xFFFFFFFF AND DUP6 MUL DUP2 ISZERO ISZERO PUSH2 0x12F7 JUMPI INVALID JUMPDEST DIV SWAP2 POP PUSH17 0x800000000000000000000000000000000 DUP3 LT ISZERO PUSH2 0x1327 JUMPI PUSH2 0x131C DUP3 PUSH2 0x1E2F JUMP JUMPDEST PUSH1 0x7F SWAP6 POP SWAP6 POP PUSH2 0x134E JUMP JUMPDEST PUSH2 0x1330 DUP3 PUSH2 0x1DA2 JUMP JUMPDEST SWAP1 POP PUSH2 0x1348 PUSH1 0xFF PUSH1 0x7F DUP4 SWAP1 SUB AND PUSH1 0x2 EXP DUP4 DIV DUP3 PUSH2 0x189C JUMP JUMPDEST DUP2 SWAP6 POP SWAP6 POP JUMPDEST POP POP POP POP SWAP5 POP SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP1 DUP5 DUP7 GT PUSH2 0x137A JUMPI PUSH2 0x1371 DUP7 DUP7 PUSH2 0x3475 JUMP JUMPDEST SWAP4 POP SWAP4 POP PUSH2 0x138F JUMP JUMPDEST PUSH2 0x1384 DUP6 DUP8 PUSH2 0x3475 JUMP JUMPDEST SWAP2 POP SWAP2 POP DUP1 DUP3 SWAP4 POP SWAP4 POP JUMPDEST POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP1 DUP1 PUSH16 0xD3094C70F034DE4B96FF7D5B6F99FCD8 DUP7 LT PUSH2 0x13E7 JUMPI PUSH16 0x40000000000000000000000000000000 SWAP4 SWAP1 SWAP4 ADD SWAP3 PUSH16 0xD3094C70F034DE4B96FF7D5B6F99FCD8 PUSH1 0x7F PUSH1 0x2 EXP DUP8 MUL DIV SWAP6 POP JUMPDEST PUSH16 0xA45AF1E1F40C333B3DE1DB4DD55F29A7 DUP7 LT PUSH2 0x1430 JUMPI PUSH16 0x20000000000000000000000000000000 SWAP4 SWAP1 SWAP4 ADD SWAP3 PUSH16 0xA45AF1E1F40C333B3DE1DB4DD55F29A7 PUSH1 0x7F PUSH1 0x2 EXP DUP8 MUL DIV SWAP6 POP JUMPDEST PUSH16 0x910B022DB7AE67CE76B441C27035C6A1 DUP7 LT PUSH2 0x1479 JUMPI PUSH16 0x10000000000000000000000000000000 SWAP4 SWAP1 SWAP4 ADD SWAP3 PUSH16 0x910B022DB7AE67CE76B441C27035C6A1 PUSH1 0x7F PUSH1 0x2 EXP DUP8 MUL DIV SWAP6 POP JUMPDEST PUSH16 0x88415ABBE9A76BEAD8D00CF112E4D4A8 DUP7 LT PUSH2 0x14C2 JUMPI PUSH16 0x8000000000000000000000000000000 SWAP4 SWAP1 SWAP4 ADD SWAP3 PUSH16 0x88415ABBE9A76BEAD8D00CF112E4D4A8 PUSH1 0x7F PUSH1 0x2 EXP DUP8 MUL DIV SWAP6 POP JUMPDEST PUSH16 0x84102B00893F64C705E841D5D4064BD3 DUP7 LT PUSH2 0x150B JUMPI PUSH16 0x4000000000000000000000000000000 SWAP4 SWAP1 SWAP4 ADD SWAP3 PUSH16 0x84102B00893F64C705E841D5D4064BD3 PUSH1 0x7F PUSH1 0x2 EXP DUP8 MUL DIV SWAP6 POP JUMPDEST PUSH16 0x8204055AAEF1C8BD5C3259F4822735A2 DUP7 LT PUSH2 0x1554 JUMPI PUSH16 0x2000000000000000000000000000000 SWAP4 SWAP1 SWAP4 ADD SWAP3 PUSH16 0x8204055AAEF1C8BD5C3259F4822735A2 PUSH1 0x7F PUSH1 0x2 EXP DUP8 MUL DIV SWAP6 POP JUMPDEST PUSH16 0x810100AB00222D861931C15E39B44E99 DUP7 LT PUSH2 0x159D JUMPI PUSH16 0x1000000000000000000000000000000 SWAP4 SWAP1 SWAP4 ADD SWAP3 PUSH16 0x810100AB00222D861931C15E39B44E99 PUSH1 0x7F PUSH1 0x2 EXP DUP8 MUL DIV SWAP6 POP JUMPDEST PUSH16 0x808040155AABBBE9451521693554F733 DUP7 LT PUSH2 0x15E5 JUMPI PUSH15 0x800000000000000000000000000000 SWAP4 SWAP1 SWAP4 ADD SWAP3 PUSH16 0x808040155AABBBE9451521693554F733 PUSH1 0x7F PUSH1 0x2 EXP DUP8 MUL DIV SWAP6 POP JUMPDEST PUSH16 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT DUP7 ADD SWAP3 POP DUP3 SWAP2 POP PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP1 MUL DIV SWAP1 POP PUSH1 0x80 PUSH1 0x2 EXP DUP4 DUP2 SUB DUP4 MUL DIV SWAP4 SWAP1 SWAP4 ADD SWAP3 PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DIV SWAP2 POP PUSH17 0x200000000000000000000000000000000 PUSH16 0xAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA DUP5 SWAP1 SUB DUP4 MUL DIV SWAP4 SWAP1 SWAP4 ADD SWAP3 PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DIV SWAP2 POP PUSH17 0x300000000000000000000000000000000 PUSH16 0x99999999999999999999999999999999 DUP5 SWAP1 SUB DUP4 MUL DIV SWAP4 SWAP1 SWAP4 ADD SWAP3 PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DIV SWAP2 POP PUSH17 0x400000000000000000000000000000000 PUSH16 0x92492492492492492492492492492492 DUP5 SWAP1 SUB DUP4 MUL DIV SWAP4 SWAP1 SWAP4 ADD SWAP3 PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DIV SWAP2 POP PUSH17 0x500000000000000000000000000000000 PUSH16 0x8E38E38E38E38E38E38E38E38E38E38E DUP5 SWAP1 SUB DUP4 MUL DIV SWAP4 SWAP1 SWAP4 ADD SWAP3 PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DIV SWAP2 POP PUSH17 0x600000000000000000000000000000000 PUSH16 0x8BA2E8BA2E8BA2E8BA2E8BA2E8BA2E8B DUP5 SWAP1 SUB DUP4 MUL DIV SWAP4 SWAP1 SWAP4 ADD SWAP3 PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DIV SWAP2 POP PUSH17 0x700000000000000000000000000000000 PUSH16 0x89D89D89D89D89D89D89D89D89D89D89 DUP5 SWAP1 SUB DUP4 MUL DIV SWAP4 SWAP1 SWAP4 ADD SWAP3 PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DIV SWAP2 POP PUSH17 0x800000000000000000000000000000000 PUSH16 0x88888888888888888888888888888888 DUP5 SWAP1 SUB DUP4 MUL DIV SWAP4 SWAP1 SWAP4 ADD SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV DUP3 SUB DUP3 DUP5 DUP2 ISZERO ISZERO PUSH2 0x17C3 JUMPI INVALID JUMPDEST MOD DUP2 ISZERO ISZERO PUSH2 0x17CD JUMPI INVALID JUMPDEST DIV DUP3 DUP5 DUP2 ISZERO ISZERO PUSH2 0x17D9 JUMPI INVALID JUMPDEST DIV ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP1 PUSH1 0x80 PUSH1 0x2 EXP DUP6 LT PUSH2 0x181A JUMPI PUSH2 0x1802 PUSH1 0x7F PUSH1 0x2 EXP DUP7 JUMPDEST DIV PUSH2 0x222F JUMP JUMPDEST PUSH1 0xFF DUP2 AND PUSH1 0x2 DUP2 SWAP1 EXP SWAP1 SWAP7 DIV SWAP6 PUSH1 0x7F PUSH1 0x2 EXP MUL SWAP4 POP SWAP2 POP JUMPDEST PUSH1 0x7F PUSH1 0x2 EXP DUP6 GT ISZERO PUSH2 0x186C JUMPI POP PUSH1 0x7F JUMPDEST PUSH1 0x0 DUP2 PUSH1 0xFF AND GT ISZERO PUSH2 0x186C JUMPI PUSH1 0x7F PUSH1 0x2 EXP DUP6 DUP1 MUL DIV SWAP5 POP PUSH1 0x80 PUSH1 0x2 EXP DUP6 LT PUSH2 0x1863 JUMPI PUSH1 0x2 SWAP5 DUP6 SWAP1 DIV SWAP5 PUSH1 0xFF PUSH1 0x0 NOT DUP4 ADD AND SWAP1 EXP SWAP3 SWAP1 SWAP3 ADD SWAP2 JUMPDEST PUSH1 0x0 NOT ADD PUSH2 0x182A JUMP JUMPDEST PUSH16 0x5B9DE1D10BF4103D647B0955897BA80 PUSH16 0x3F80FE03F80FE03F80FE03F80FE03F8 DUP5 MUL DIV SWAP4 POP JUMPDEST POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP5 SWAP2 POP PUSH1 0x0 SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH16 0x3442C4E6074A82F1797F72AC0000000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH16 0x116B96F757C380FB287FD0E40000000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH15 0x45AE5BDD5F0E03ECA1FF4390000000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH15 0xDEFABF91302CD95B9FFDA50000000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH15 0x2529CA9832B22439EFFF9B8000000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH14 0x54F1CF12BD04E516B6DA88000000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH14 0xA9E39E257A09CA2D6DB51000000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH14 0x12E066E7B839FA050C309000000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH13 0x1E33D7D926C329A1AD1A800000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH13 0x2BEE513BDB4A6B19B5F800000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH12 0x3A9316FA79B88ECCF2A00000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH12 0x48177EBE1FA812375200000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH11 0x5263FE90242DCBACF00000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH11 0x57E22099C030D94100000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH10 0x57E22099C030D9410000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH10 0x52B6B54569976310000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH9 0x4985F67696BF748000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH9 0x3DEA12EA99E498000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH8 0x31880F2214B6E000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH8 0x25BCFF56EB36000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH7 0x1B722E10AB1000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH7 0x1317C70077000 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH6 0xCBA84AAFA00 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH5 0x82573A0A00 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH5 0x5035AD900 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH4 0x2F881B00 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH4 0x1B29340 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH3 0xEFC40 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH2 0x7FE0 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH2 0x420 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH1 0x21 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND DUP6 DUP4 MUL SWAP1 PUSH1 0x2 EXP SWAP1 DIV SWAP2 POP DUP2 PUSH1 0x1 MUL DUP2 ADD SWAP1 POP DUP4 PUSH1 0xFF AND PUSH1 0x1 SWAP1 PUSH1 0x2 EXP MUL DUP6 PUSH16 0x688589CC0E9505E2F2FEE5580000000 DUP4 DUP2 ISZERO ISZERO PUSH2 0x1CB3 JUMPI INVALID JUMPDEST DIV ADD ADD SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x1CD2 DUP10 DUP10 PUSH2 0x3511 JUMP JUMPDEST SWAP1 SWAP10 POP SWAP8 POP DUP10 PUSH2 0x1CEC DUP13 PUSH1 0x7F PUSH1 0x2 EXP PUSH4 0xFFFFFFFF PUSH2 0x1190 AND JUMP JUMPDEST DUP2 ISZERO ISZERO PUSH2 0x1CF5 JUMPI INVALID JUMPDEST DIV SWAP4 POP PUSH17 0x15BF0A8B1457695355FB8AC404E7A79E3 DUP5 LT PUSH2 0x1D1E JUMPI PUSH2 0x1D19 DUP5 PUSH2 0x17E2 JUMP JUMPDEST PUSH2 0x1D27 JUMP JUMPDEST PUSH2 0x1D27 DUP5 PUSH2 0x1398 JUMP JUMPDEST SWAP3 POP DUP8 PUSH2 0x1D3A DUP5 DUP12 PUSH4 0xFFFFFFFF PUSH2 0x1190 AND JUMP JUMPDEST DUP2 ISZERO ISZERO PUSH2 0x1D43 JUMPI INVALID JUMPDEST DIV SWAP2 POP DUP7 PUSH2 0x1D59 JUMPI PUSH2 0x1D54 DUP3 PUSH2 0x35CD JUMP JUMPDEST PUSH2 0x1D62 JUMP JUMPDEST PUSH2 0x1D62 DUP3 PUSH2 0x3628 JUMP JUMPDEST SWAP1 POP PUSH2 0x1D90 PUSH2 0x1D77 DUP3 DUP12 PUSH4 0xFFFFFFFF PUSH2 0x1190 AND JUMP JUMPDEST PUSH2 0x1D8B DUP11 PUSH1 0x7F PUSH1 0x2 EXP PUSH4 0xFFFFFFFF PUSH2 0x1190 AND JUMP JUMPDEST PUSH2 0x135B JUMP JUMPDEST SWAP6 POP SWAP6 POP POP POP POP POP SWAP6 POP SWAP6 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 PUSH1 0x7F DUP3 JUMPDEST DUP2 PUSH1 0xFF AND DUP4 PUSH1 0x1 ADD PUSH1 0xFF AND LT ISZERO PUSH2 0x1DEF JUMPI PUSH1 0x2 PUSH1 0xFF DUP5 DUP5 ADD AND DIV SWAP1 POP DUP5 PUSH1 0x0 PUSH1 0xFF DUP4 AND PUSH1 0x80 DUP2 LT PUSH2 0x1DD7 JUMPI INVALID JUMPDEST ADD SLOAD LT PUSH2 0x1DE6 JUMPI DUP1 SWAP3 POP PUSH2 0x1DEA JUMP JUMPDEST DUP1 SWAP2 POP JUMPDEST PUSH2 0x1DAA JUMP JUMPDEST DUP5 PUSH1 0x0 PUSH1 0xFF DUP5 AND PUSH1 0x80 DUP2 LT PUSH2 0x1E00 JUMPI INVALID JUMPDEST ADD SLOAD LT PUSH2 0x1E0F JUMPI DUP2 SWAP4 POP PUSH2 0x1894 JUMP JUMPDEST DUP5 PUSH1 0x0 PUSH1 0xFF DUP6 AND PUSH1 0x80 DUP2 LT PUSH2 0x1E20 JUMPI INVALID JUMPDEST ADD SLOAD LT PUSH2 0x174 JUMPI DUP3 SWAP4 POP PUSH2 0x1894 JUMP JUMPDEST PUSH1 0x0 PUSH8 0x168244FDAC78000 PUSH1 0x7F PUSH1 0x2 EXP PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP5 AND DUP1 DUP1 MUL DUP3 SWAP1 DIV DUP1 DUP3 MUL DUP4 SWAP1 DIV DUP1 DUP4 MUL DUP5 SWAP1 DIV SWAP5 DUP6 MUL PUSH8 0x10E1B3BE415A0000 SWAP1 SWAP3 MUL PUSH8 0x5A0913F6B1E0000 SWAP2 SWAP1 SWAP2 MUL ADD ADD SWAP3 SWAP1 SWAP2 DUP2 DUP4 MUL DIV SWAP1 POP DUP1 PUSH7 0x4807432BC18000 MUL DUP4 ADD SWAP3 POP PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DUP2 ISZERO ISZERO PUSH2 0x1EAA JUMPI INVALID JUMPDEST DIV SWAP1 POP DUP1 PUSH7 0xC0135DCA04000 MUL DUP4 ADD SWAP3 POP PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DUP2 ISZERO ISZERO PUSH2 0x1ECC JUMPI INVALID JUMPDEST DIV SWAP1 POP DUP1 PUSH7 0x1B707B1CDC000 MUL DUP4 ADD SWAP3 POP PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DUP2 ISZERO ISZERO PUSH2 0x1EEE JUMPI INVALID JUMPDEST DIV SWAP1 POP DUP1 PUSH6 0x36E0F639B800 MUL DUP4 ADD SWAP3 POP PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DUP2 ISZERO ISZERO PUSH2 0x1F0F JUMPI INVALID JUMPDEST DIV SWAP1 POP DUP1 PUSH6 0x618FEE9F800 MUL DUP4 ADD SWAP3 POP PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DUP2 ISZERO ISZERO PUSH2 0x1F30 JUMPI INVALID JUMPDEST DIV SWAP1 POP DUP1 PUSH5 0x9C197DCC00 MUL DUP4 ADD SWAP3 POP PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DUP2 ISZERO ISZERO PUSH2 0x1F50 JUMPI INVALID JUMPDEST DIV SWAP1 POP DUP1 PUSH5 0xE30DCE400 MUL DUP4 ADD SWAP3 POP PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DUP2 ISZERO ISZERO PUSH2 0x1F70 JUMPI INVALID JUMPDEST DIV SWAP1 POP DUP1 PUSH5 0x12EBD1300 MUL DUP4 ADD SWAP3 POP PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DUP2 ISZERO ISZERO PUSH2 0x1F90 JUMPI INVALID JUMPDEST DIV SWAP1 POP DUP1 PUSH4 0x17499F00 MUL DUP4 ADD SWAP3 POP PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DUP2 ISZERO ISZERO PUSH2 0x1FAF JUMPI INVALID JUMPDEST DIV SWAP1 POP DUP1 PUSH4 0x1A9D480 MUL DUP4 ADD SWAP3 POP PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DUP2 ISZERO ISZERO PUSH2 0x1FCE JUMPI INVALID JUMPDEST DIV SWAP1 POP DUP1 PUSH3 0x1C6380 MUL DUP4 ADD SWAP3 POP PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DUP2 ISZERO ISZERO PUSH2 0x1FEC JUMPI INVALID JUMPDEST DIV SWAP1 POP DUP1 PUSH3 0x1C638 MUL DUP4 ADD SWAP3 POP PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DUP2 ISZERO ISZERO PUSH2 0x200A JUMPI INVALID JUMPDEST DIV SWAP1 POP DUP1 PUSH2 0x1AB8 MUL DUP4 ADD SWAP3 POP PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DUP2 ISZERO ISZERO PUSH2 0x2027 JUMPI INVALID JUMPDEST DIV SWAP1 POP DUP1 PUSH2 0x17C MUL DUP4 ADD SWAP3 POP PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DUP2 ISZERO ISZERO PUSH2 0x2044 JUMPI INVALID JUMPDEST DIV SWAP1 POP DUP1 PUSH1 0x14 MUL DUP4 ADD SWAP3 POP PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP3 MUL DUP2 ISZERO ISZERO PUSH2 0x2060 JUMPI INVALID JUMPDEST PUSH8 0x21C3677C82B40000 SWAP2 SWAP1 DIV SWAP4 DUP5 ADD DIV DUP3 ADD PUSH1 0x7F PUSH1 0x2 EXP ADD SWAP3 SWAP1 POP PUSH16 0x10000000000000000000000000000000 DUP6 AND ISZERO PUSH2 0x20BD JUMPI PUSH17 0x18EBEF9EAC820AE8682B9793AC6D1E776 PUSH17 0x1C3D6A24ED82218787D624D3E5EBA95F9 DUP5 MUL DIV SWAP3 POP JUMPDEST PUSH16 0x20000000000000000000000000000000 DUP6 AND ISZERO PUSH2 0x20FF JUMPI PUSH17 0x1368B2FC6F9609FE7ACEB46AA619BAED4 PUSH17 0x18EBEF9EAC820AE8682B9793AC6D1E778 DUP5 MUL DIV SWAP3 POP JUMPDEST PUSH16 0x40000000000000000000000000000000 DUP6 AND ISZERO PUSH2 0x2140 JUMPI PUSH16 0xBC5AB1B16779BE3575BD8F0520A9F21F PUSH17 0x1368B2FC6F9609FE7ACEB46AA619BAED5 DUP5 MUL DIV SWAP3 POP JUMPDEST PUSH1 0x7F PUSH1 0x2 EXP DUP6 AND ISZERO PUSH2 0x2174 JUMPI PUSH16 0x454AAA8EFE072E7F6DDBAB84B40A55C9 PUSH16 0xBC5AB1B16779BE3575BD8F0520A9F21E DUP5 MUL DIV SWAP3 POP JUMPDEST PUSH1 0x80 PUSH1 0x2 EXP DUP6 AND ISZERO PUSH2 0x21A8 JUMPI PUSH16 0x960AADC109E7A3BF4578099615711EA PUSH16 0x454AAA8EFE072E7F6DDBAB84B40A55C5 DUP5 MUL DIV SWAP3 POP JUMPDEST PUSH17 0x200000000000000000000000000000000 DUP6 AND ISZERO PUSH2 0x21E8 JUMPI PUSH15 0x2BF84208204F5977F9A8CF01FDCE3D PUSH16 0x960AADC109E7A3BF4578099615711D7 DUP5 MUL DIV SWAP3 POP JUMPDEST PUSH17 0x400000000000000000000000000000000 DUP6 AND ISZERO PUSH2 0x2226 JUMPI PUSH14 0x3C6AB775DD0B95B4CBEE7E65D11 PUSH15 0x2BF84208204F5977F9A8CF01FDC307 DUP5 MUL DIV SWAP3 POP JUMPDEST POP SWAP1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 PUSH2 0x100 DUP5 LT ISZERO PUSH2 0x225E JUMPI JUMPDEST PUSH1 0x1 DUP5 GT ISZERO PUSH2 0x2259 JUMPI PUSH1 0x2 SWAP1 SWAP4 DIV SWAP3 PUSH1 0x1 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x223E JUMP JUMPDEST PUSH2 0x120D JUMP JUMPDEST POP PUSH1 0x80 JUMPDEST PUSH1 0x0 DUP2 PUSH1 0xFF AND GT ISZERO PUSH2 0x120D JUMPI PUSH1 0xFF DUP2 AND PUSH1 0x2 EXP DUP5 LT PUSH2 0x228B JUMPI PUSH1 0xFF DUP2 AND PUSH1 0x2 EXP SWAP1 SWAP4 DIV SWAP3 SWAP1 DUP2 OR SWAP1 JUMPDEST PUSH1 0x2 PUSH1 0xFF SWAP1 SWAP2 AND DIV PUSH2 0x2262 JUMP JUMPDEST PUSH17 0x1C35FEDD14FFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x20 SSTORE PUSH17 0x1B0CE43B323FFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x21 SSTORE PUSH17 0x19F0028EC1FFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x22 SSTORE PUSH17 0x18DED91F0E7FFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x23 SSTORE PUSH17 0x17D8EC7F0417FFFFFFFFFFFFFFFFFFFFFF PUSH1 0x24 SSTORE PUSH17 0x16DDC6556CDBFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x25 SSTORE PUSH17 0x15ECF52776A1FFFFFFFFFFFFFFFFFFFFFF PUSH1 0x26 SSTORE PUSH17 0x15060C256CB2FFFFFFFFFFFFFFFFFFFFFF PUSH1 0x27 SSTORE PUSH17 0x1428A2F98D72FFFFFFFFFFFFFFFFFFFFFF PUSH1 0x28 SSTORE PUSH17 0x13545598E5C23FFFFFFFFFFFFFFFFFFFFF PUSH1 0x29 SSTORE PUSH17 0x1288C4161CE1DFFFFFFFFFFFFFFFFFFFFF PUSH1 0x2A SSTORE PUSH17 0x11C592761C666FFFFFFFFFFFFFFFFFFFFF PUSH1 0x2B SSTORE PUSH17 0x110A688680A757FFFFFFFFFFFFFFFFFFFF PUSH1 0x2C SSTORE PUSH17 0x1056F1B5BEDF77FFFFFFFFFFFFFFFFFFFF PUSH1 0x2D SSTORE PUSH17 0xFAADCECEEFF8BFFFFFFFFFFFFFFFFFFFF PUSH1 0x2E SSTORE PUSH17 0xF05DC6B27EDADFFFFFFFFFFFFFFFFFFFF PUSH1 0x2F SSTORE PUSH17 0xE67A5A25DA4107FFFFFFFFFFFFFFFFFFF PUSH1 0x30 SSTORE PUSH17 0xDCFF115B14EEDFFFFFFFFFFFFFFFFFFFF PUSH1 0x31 SSTORE PUSH17 0xD3E7A392431239FFFFFFFFFFFFFFFFFFF PUSH1 0x32 SSTORE PUSH17 0xCB2FF529EB71E4FFFFFFFFFFFFFFFFFFF PUSH1 0x33 SSTORE PUSH17 0xC2D415C3DB974AFFFFFFFFFFFFFFFFFFF PUSH1 0x34 SSTORE PUSH17 0xBAD03E7D883F69BFFFFFFFFFFFFFFFFFF PUSH1 0x35 SSTORE PUSH17 0xB320D03B2C343D5FFFFFFFFFFFFFFFFFF PUSH1 0x36 SSTORE PUSH17 0xABC25204E02828DFFFFFFFFFFFFFFFFFF PUSH1 0x37 SSTORE PUSH17 0xA4B16F74EE4BB207FFFFFFFFFFFFFFFFF PUSH1 0x38 SSTORE PUSH17 0x9DEAF736AC1F569FFFFFFFFFFFFFFFFFF PUSH1 0x39 SSTORE PUSH17 0x976BD9952C7AA957FFFFFFFFFFFFFFFFF PUSH1 0x3A SSTORE PUSH17 0x9131271922EAA606FFFFFFFFFFFFFFFFF PUSH1 0x3B SSTORE PUSH17 0x8B380F3558668C46FFFFFFFFFFFFFFFFF PUSH1 0x3C SSTORE PUSH17 0x857DDF0117EFA215BFFFFFFFFFFFFFFFF PUSH1 0x3D SSTORE PUSH17 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x3E SSTORE PUSH17 0x7ABBF6F6ABB9D087FFFFFFFFFFFFFFFFF PUSH1 0x3F SSTORE PUSH17 0x75AF62CBAC95F7DFA7FFFFFFFFFFFFFFF PUSH1 0x40 SSTORE PUSH17 0x70D7FB7452E187AC13FFFFFFFFFFFFFFF PUSH1 0x41 SSTORE PUSH17 0x6C3390ECC8AF379295FFFFFFFFFFFFFFF PUSH1 0x42 SSTORE PUSH17 0x67C00A3B07FFC01FD6FFFFFFFFFFFFFFF PUSH1 0x43 SSTORE PUSH17 0x637B647C39CBB9D3D27FFFFFFFFFFFFFF PUSH1 0x44 SSTORE PUSH17 0x5F63B1FC104DBD39587FFFFFFFFFFFFFF PUSH1 0x45 SSTORE PUSH17 0x5B771955B36E12F7235FFFFFFFFFFFFFF PUSH1 0x46 SSTORE PUSH17 0x57B3D49DDA84556D6F6FFFFFFFFFFFFFF PUSH1 0x47 SSTORE PUSH17 0x54183095B2C8ECECF30FFFFFFFFFFFFFF PUSH1 0x48 SSTORE PUSH17 0x50A28BE635CA2B888F77FFFFFFFFFFFFF PUSH1 0x49 SSTORE PUSH17 0x4D5156639708C9DB33C3FFFFFFFFFFFFF PUSH1 0x4A SSTORE PUSH17 0x4A23105873875BD52DFDFFFFFFFFFFFFF PUSH1 0x4B SSTORE PUSH17 0x471649D87199AA990756FFFFFFFFFFFFF PUSH1 0x4C SSTORE PUSH17 0x4429A21A029D4C1457CFBFFFFFFFFFFFF PUSH1 0x4D SSTORE PUSH17 0x415BC6D6FB7DD71AF2CB3FFFFFFFFFFFF PUSH1 0x4E SSTORE PUSH17 0x3EAB73B3BBFE282243CE1FFFFFFFFFFFF PUSH1 0x4F SSTORE PUSH17 0x3C1771AC9FB6B4C18E229FFFFFFFFFFFF PUSH1 0x50 SSTORE PUSH17 0x399E96897690418F785257FFFFFFFFFFF PUSH1 0x51 SSTORE PUSH17 0x373FC456C53BB779BF0EA9FFFFFFFFFFF PUSH1 0x52 SSTORE PUSH17 0x34F9E8E490C48E67E6AB8BFFFFFFFFFFF PUSH1 0x53 SSTORE PUSH17 0x32CBFD4A7ADC790560B3337FFFFFFFFFF PUSH1 0x54 SSTORE PUSH17 0x30B50570F6E5D2ACCA94613FFFFFFFFFF PUSH1 0x55 SSTORE PUSH17 0x2EB40F9F620FDA6B56C2861FFFFFFFFFF PUSH1 0x56 SSTORE PUSH17 0x2CC8340ECB0D0F520A6AF58FFFFFFFFFF PUSH1 0x57 SSTORE PUSH17 0x2AF09481380A0A35CF1BA02FFFFFFFFFF PUSH1 0x58 SSTORE PUSH17 0x292C5BDD3B92EC810287B1B3FFFFFFFFF PUSH1 0x59 SSTORE PUSH17 0x277ABDCDAB07D5A77AC6D6B9FFFFFFFFF PUSH1 0x5A SSTORE PUSH17 0x25DAF6654B1EAA55FD64DF5EFFFFFFFFF PUSH1 0x5B SSTORE PUSH17 0x244C49C648BAA98192DCE88B7FFFFFFFF PUSH1 0x5C SSTORE PUSH17 0x22CE03CD5619A311B2471268BFFFFFFFF PUSH1 0x5D SSTORE PUSH17 0x215F77C045FBE885654A44A0FFFFFFFFF PUSH1 0x5E SSTORE PUSH17 0x1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x5F SSTORE PUSH17 0x1EAEFDBDAAEE7421FC4D3EDE5FFFFFFFF PUSH1 0x60 SSTORE PUSH17 0x1D6BD8B2EB257DF7E8CA57B09BFFFFFFF PUSH1 0x61 SSTORE PUSH17 0x1C35FEDD14B861EB0443F7F133FFFFFFF PUSH1 0x62 SSTORE PUSH17 0x1B0CE43B322BCDE4A56E8ADA5AFFFFFFF PUSH1 0x63 SSTORE PUSH17 0x19F0028EC1FFF007F5A195A39DFFFFFFF PUSH1 0x64 SSTORE PUSH17 0x18DED91F0E72EE74F49B15BA527FFFFFF PUSH1 0x65 SSTORE PUSH17 0x17D8EC7F04136F4E5615FD41A63FFFFFF PUSH1 0x66 SSTORE PUSH17 0x16DDC6556CDB84BDC8D12D22E6FFFFFFF PUSH1 0x67 SSTORE PUSH17 0x15ECF52776A1155B5BD8395814F7FFFFF PUSH1 0x68 SSTORE PUSH17 0x15060C256CB23B3B3CC3754CF40FFFFFF PUSH1 0x69 SSTORE PUSH17 0x1428A2F98D728AE223DDAB715BE3FFFFF PUSH1 0x6A SSTORE PUSH17 0x13545598E5C23276CCF0EDE68034FFFFF PUSH1 0x6B SSTORE PUSH17 0x1288C4161CE1D6F54B7F61081194FFFFF PUSH1 0x6C SSTORE PUSH17 0x11C592761C666AA641D5A01A40F17FFFF PUSH1 0x6D SSTORE PUSH17 0x110A688680A7530515F3E6E6CFDCDFFFF PUSH1 0x6E SSTORE PUSH17 0x1056F1B5BEDF75C6BCB2CE8AED428FFFF PUSH1 0x6F SSTORE PUSH16 0xFAADCECEEFF8A0890F3875F008277FFF PUSH1 0x70 SSTORE PUSH16 0xF05DC6B27EDAD306388A600F6BA0BFFF PUSH1 0x71 SSTORE PUSH16 0xE67A5A25DA41063DE1495D5B18CDBFFF PUSH1 0x72 SSTORE PUSH16 0xDCFF115B14EEDDE6FC3AA5353F2E4FFF PUSH1 0x73 SSTORE PUSH16 0xD3E7A3924312399F9AAE2E0F868F8FFF PUSH1 0x74 SSTORE PUSH16 0xCB2FF529EB71E41582CCCD5A1EE26FFF PUSH1 0x75 SSTORE PUSH16 0xC2D415C3DB974AB32A51840C0B67EDFF PUSH1 0x76 SSTORE PUSH16 0xBAD03E7D883F69AD5B0A186184E06BFF PUSH1 0x77 SSTORE PUSH16 0xB320D03B2C343D4829ABD6075F0CC5FF PUSH1 0x78 SSTORE PUSH16 0xABC25204E02828D73C6E80BCDB1A95BF PUSH1 0x79 SSTORE PUSH16 0xA4B16F74EE4BB2040A1EC6C15FBBF2DF PUSH1 0x7A SSTORE PUSH16 0x9DEAF736AC1F569DEB1B5AE3F36C130F PUSH1 0x7B SSTORE PUSH16 0x976BD9952C7AA957F5937D790EF65037 PUSH1 0x7C SSTORE PUSH16 0x9131271922EAA6064B73A22D0BD4F2BF PUSH1 0x7D SSTORE PUSH16 0x8B380F3558668C46C91C49A2F8E967B9 PUSH1 0x7E SSTORE PUSH16 0x857DDF0117EFA215952912839F6473E6 PUSH1 0x0 PUSH1 0x7F JUMPDEST ADD SSTORE JUMP JUMPDEST PUSH16 0x60E393C68D20B1BD09DEAABC0373B9C5 PUSH1 0x80 SWAP1 DUP2 SSTORE PUSH16 0x5F8F46E4854120989ED94719FB4C2011 PUSH1 0x81 SSTORE PUSH16 0x5E479EBB9129FB1B7E72A648F992B606 PUSH1 0x82 SSTORE PUSH16 0x5D0BD23FE42DFEDDE2E9586BE12B85FE PUSH1 0x83 SSTORE PUSH16 0x5BDB29DDEE979308DDFCA81AEEB8095A PUSH1 0x84 SSTORE PUSH16 0x5AB4FD8A260D2C7E2C0D2AFCF0009DAD PUSH1 0x85 SSTORE PUSH16 0x5998B31359A55D48724C65CF09001221 PUSH1 0x86 SSTORE PUSH16 0x5885BCAD2B322DFC43E8860F9C018CF5 PUSH1 0x87 SSTORE PUSH16 0x577B97AA1FE222BB452FDF111B1F0BE2 PUSH1 0x88 SSTORE PUSH16 0x5679CB5E3575632E5BAA27E2B949F704 PUSH1 0x89 SSTORE PUSH16 0x557FE8241B3A31C83C732F1CDFF4A1C5 PUSH1 0x8A SSTORE PUSH16 0x548D868026504875D6E59BBE95FC2A6B PUSH1 0x8B SSTORE PUSH16 0x53A2465CE347CF34D05A867C17DD3088 PUSH1 0x8C SSTORE PUSH16 0x52BDCE5DCD4FAED59C7F5511CF8F8ACC PUSH1 0x8D SSTORE PUSH16 0x51DFCB453C07F8DA817606E7885F7C3E PUSH1 0x8E SSTORE PUSH16 0x5107EF6B0A5A2BE8F8FF15590DAA3CCE PUSH1 0x8F SSTORE PUSH16 0x5035F241D6EAE0CD7BACBA119993DE7B PUSH1 0x90 SSTORE PUSH16 0x4F698FE90D5B53D532171E1210164C66 PUSH1 0x91 SSTORE PUSH16 0x4EA288CA297A0E6A09A0EEE240E16C85 PUSH1 0x92 SSTORE PUSH16 0x4DE0A13FDCF5D4213FC398BA6E3BECDE PUSH1 0x93 SSTORE PUSH16 0x4D23A145EEF91FEC06B06140804C4808 PUSH1 0x94 SSTORE PUSH16 0x4C6B5430D4C1EE5526473DB4AE0F11DE PUSH1 0x95 SSTORE PUSH16 0x4BB7886C240562EBA11F4963A53B4240 PUSH1 0x96 SSTORE PUSH16 0x4B080F3F1CB491D2D521E0EA4583521E PUSH1 0x97 SSTORE PUSH16 0x4A5CBC96A05589CB4D86BE1DB3168364 PUSH1 0x98 SSTORE PUSH16 0x49B566D40243517658D78C33162D6ECE PUSH1 0x99 SSTORE PUSH16 0x4911E6A02E5507A30F947383FD9A3276 PUSH1 0x9A SSTORE PUSH16 0x487216C2B31BE4ADC41DB8A8D5CC0C88 PUSH1 0x9B SSTORE PUSH16 0x47D5D3FC4A7A1B188CD3D788B5C5E9FC PUSH1 0x9C SSTORE PUSH16 0x473CFCE4871A2C40BC4F9E1C32B955D0 PUSH1 0x9D SSTORE PUSH16 0x46A771CA578AB878485810E285E31C67 PUSH1 0x9E SSTORE PUSH16 0x4615149718AED4C258C373DC676AA72D PUSH1 0x9F SSTORE PUSH16 0x4585C8B3F8FE489C6E1833CA47871384 PUSH1 0xA0 SSTORE PUSH16 0x44F972F174E41E5EFB7E9D63C29CE735 PUSH1 0xA1 SSTORE PUSH16 0x446FF970BA86D8B00BEB05ECEBF3C4DC PUSH1 0xA2 SSTORE PUSH16 0x43E9438EC88971812D6F198B5CCAAD96 PUSH1 0xA3 SSTORE PUSH16 0x436539D11FF7BEA657AEDDB394E809EF PUSH1 0xA4 SSTORE PUSH16 0x42E3C5D3E5A913401D86F66DB5D81C2C PUSH1 0xA5 SSTORE PUSH16 0x4264D2395303070EA726CBE98DF62174 PUSH1 0xA6 SSTORE PUSH16 0x41E84A9A593BB7194C3A6349ECAE4EEA PUSH1 0xA7 SSTORE PUSH16 0x416E1B785D13EBA07A08F3F18876A5AB PUSH1 0xA8 SSTORE PUSH16 0x40F6322FF389D423BA9DD7E7E7B7E809 PUSH1 0xA9 SSTORE PUSH16 0x40807CEC8A466880ECF4184545D240A4 PUSH1 0xAA SSTORE PUSH16 0x400CEA9CE88A8D3AE668E8EA0D9BF07F PUSH1 0xAB SSTORE PUSH16 0x3F9B6AE8772D4C55091E0ED7DFEA0AC1 PUSH1 0xAC SSTORE PUSH16 0x3F2BEE253FD84594F54BCAAFAC383A13 PUSH1 0xAD SSTORE PUSH16 0x3EBE654E95208BB9210C575C081C5958 PUSH1 0xAE SSTORE PUSH16 0x3E52C1FC5665635B78CE1F05AD53C086 PUSH1 0xAF SSTORE PUSH16 0x3DE8F65AC388101DDF718A6F5C1EFF65 PUSH1 0xB0 SSTORE PUSH16 0x3D80F522D59BD0B328CA012DF4CD2D49 PUSH1 0xB1 SSTORE PUSH16 0x3D1AB193129EA72B23648A161163A85A PUSH1 0xB2 SSTORE PUSH16 0x3CB61F68D32576C135B95CFB53F76D75 PUSH1 0xB3 SSTORE PUSH16 0x3C5332D9F1AAE851A3619E77E4CC8473 PUSH1 0xB4 SSTORE PUSH16 0x3BF1E08EDBE2AA109E1525F65759EF73 PUSH1 0xB5 SSTORE PUSH16 0x3B921D9CFF13FA2C197746A3DFC4918F PUSH1 0xB6 SSTORE PUSH16 0x3B33DF818910BFC1A5AEFB8F63AE2AC4 PUSH1 0xB7 SSTORE PUSH16 0x3AD71C1C77E34FA32A9F184967ECCBF6 PUSH1 0xB8 SSTORE PUSH16 0x3A7BC9ABF2C5BB53E2F7384A8A16521A PUSH1 0xB9 SSTORE PUSH16 0x3A21DEC7E76369783A68A0C6385A1C57 PUSH1 0xBA SSTORE PUSH16 0x39C9525DE6C9CDF7C1C157CA4A7A6EE3 PUSH1 0xBB SSTORE PUSH16 0x39721BAD3DC85D1240FF0190E0ADAAC3 PUSH1 0xBC SSTORE PUSH16 0x391C324344D3248F0469EB28DD3D77E0 PUSH1 0xBD SSTORE PUSH16 0x38C78DF7E3C796279FB4FF84394AB3DA PUSH1 0xBE SSTORE PUSH16 0x387426EA4638AE9AAE08049D3554C20A PUSH1 0xBF SSTORE PUSH16 0x3821F57DBD2763256C1A99BBD2051378 PUSH1 0xC0 SSTORE PUSH16 0x37D0F256CB46A8C92FF62FBBEF289698 PUSH1 0xC1 SSTORE PUSH16 0x37811658591FFC7ABDD1FEAF3CEF9B73 PUSH1 0xC2 SSTORE PUSH16 0x37325AA10E9E82F7DF0F380F7997154B PUSH1 0xC3 SSTORE PUSH16 0x36E4B888CFB408D873B9A80D439311C6 PUSH1 0xC4 SSTORE PUSH16 0x3698299E59F4BB9DE645FC9B08C64CCA PUSH1 0xC5 SSTORE PUSH16 0x364CA7A5012CB603023B57DD3EBFD50D PUSH1 0xC6 SSTORE PUSH16 0x36022C928915B778AB1B06AAEE7E61D4 PUSH1 0xC7 SSTORE PUSH16 0x35B8B28D1A73DC27500FFE35559CC028 PUSH1 0xC8 SSTORE PUSH16 0x357033E951FE250EC5EB4E60955132D7 PUSH1 0xC9 SSTORE PUSH16 0x3528AB2867934E3A21B5412E4C4F8881 PUSH1 0xCA SSTORE PUSH16 0x34E212F66C55057F9676C80094A61D59 PUSH1 0xCB SSTORE PUSH16 0x349C66289E5B3C4B540C24F42FA4B9BB PUSH1 0xCC SSTORE PUSH16 0x34579FBBD0C733A9C8D6AF6B0F7D00F7 PUSH1 0xCD SSTORE PUSH16 0x3413BAD2E712288B924B5882B5B369BF PUSH1 0xCE SSTORE PUSH16 0x33D0B2B56286510EF730E213F71F12E9 PUSH1 0xCF SSTORE PUSH16 0x338E82CE00E2496262C64457535BA1A1 PUSH1 0xD0 SSTORE PUSH16 0x334D26A96B373BB7C2F8EA1827F27A92 PUSH1 0xD1 SSTORE PUSH16 0x330C99F4F4211469E00B3E18C31475EA PUSH1 0xD2 SSTORE PUSH16 0x32CCD87D6486094999C7D5E6F33237D8 PUSH1 0xD3 SSTORE PUSH16 0x328DDE2DD617B6665A2E8556F250C1AF PUSH1 0xD4 SSTORE PUSH16 0x324FA70E9ADC270F8262755AF5A99AF9 PUSH1 0xD5 SSTORE PUSH16 0x32122F443110611CA51040F41FA6E1E3 PUSH1 0xD6 SSTORE PUSH16 0x31D5730E42C0831482F0F1485C4263D8 PUSH1 0xD7 SSTORE PUSH16 0x31996EC6B07B4A83421B5EBC4AB4E1F1 PUSH1 0xD8 SSTORE PUSH16 0x315E1EE0A68FF46BB43EC2B85032E876 PUSH1 0xD9 SSTORE PUSH16 0x31237FE7BC4DEACF6775B9EFA1A145F8 PUSH1 0xDA SSTORE PUSH16 0x30E98E7F1CC5A356E44627A6972EA2FF PUSH1 0xDB SSTORE PUSH16 0x30B04760B8917EC74205A3002650EC05 PUSH1 0xDC SSTORE PUSH16 0x3077A75C803468E9132CE0CF3224241D PUSH1 0xDD SSTORE PUSH16 0x303FAB57A6A275C36F19CDA9BACE667A PUSH1 0xDE SSTORE PUSH16 0x3008504BEB8DCBD2CF3BC1F6D5A064F0 PUSH1 0xDF SSTORE PUSH16 0x2FD19346ED17DAC61219CE0C2C5AC4B0 PUSH1 0xE0 SSTORE PUSH16 0x2F9B7169808C324B5852FD3D54BA9714 PUSH1 0xE1 SSTORE PUSH16 0x2F65E7E711CF4B064EEA9C08CBDAD574 PUSH1 0xE2 SSTORE PUSH16 0x2F30F405093042DDFF8A251B6BF6D103 PUSH1 0xE3 SSTORE PUSH16 0x2EFC931A3750F2E8BFE323EDFE037574 PUSH1 0xE4 SSTORE PUSH16 0x2EC8C28E46DBE56D98685278339400CB PUSH1 0xE5 SSTORE PUSH16 0x2E957FD933C3926D8A599B602379B851 PUSH1 0xE6 SSTORE PUSH16 0x2E62C882C7C9ED4473412702F08BA0E5 PUSH1 0xE7 SSTORE PUSH16 0x2E309A221C12BA361E3ED695167FEEE2 PUSH1 0xE8 SSTORE PUSH16 0x2DFEF25D1F865AE18DD07CFEA4BCEA10 PUSH1 0xE9 SSTORE PUSH16 0x2DCDCEE821CDC80DECC02C44344AEB31 PUSH1 0xEA SSTORE PUSH16 0x2D9D2D8562B34944D0B201BB87260C83 PUSH1 0xEB SSTORE PUSH16 0x2D6D0C04A5B62A2C42636308669B729A PUSH1 0xEC SSTORE PUSH16 0x2D3D6842C9A235517FC5A0332691528F PUSH1 0xED SSTORE PUSH16 0x2D0E402963FE1EA2834ABC408C437C10 PUSH1 0xEE SSTORE PUSH16 0x2CDF91AE602647908AFF975E4D6A2A8C PUSH1 0xEF SSTORE PUSH16 0x2CB15AD3A1EB65F6D74A75DA09A1B6C5 PUSH1 0xF0 SSTORE PUSH16 0x2C8399A6AB8E9774D6FCFF373D210727 PUSH1 0xF1 SSTORE PUSH16 0x2C564C4046F64EDBA6883CA06BBC4535 PUSH1 0xF2 SSTORE PUSH16 0x2C2970C431F952641E05CB493E23EED3 PUSH1 0xF3 SSTORE PUSH16 0x2BFD0560CD9EB14563BC7C0732856C18 PUSH1 0xF4 SSTORE PUSH16 0x2BD1084ED0332F7FF4150F9D0EF41A2C PUSH1 0xF5 SSTORE PUSH16 0x2BA577D0FA1628B76D040B12A82492FB PUSH1 0xF6 SSTORE PUSH16 0x2B7A5233CD21581E855E89DC2F1E8A92 PUSH1 0xF7 SSTORE PUSH16 0x2B4F95CD46904D05D72BDCDE337D9CC7 PUSH1 0xF8 SSTORE PUSH16 0x2B2540FC9B4D9ABBA3FACA6691914675 PUSH1 0xF9 SSTORE PUSH16 0x2AFB5229F68D0830D8BE8ADB0A0DB70F PUSH1 0xFA SSTORE PUSH16 0x2AD1C7C63A9B294C5BC73A3BA3AB7A2B PUSH1 0xFB SSTORE PUSH16 0x2AA8A04AC3CBE1EE1C9C86361465DBB8 PUSH1 0xFC SSTORE PUSH16 0x2A7FDA392D725A44A2C8AEB9AB35430D PUSH1 0xFD SSTORE PUSH16 0x2A57741B18CDE618717792B4FAA216DB PUSH1 0xFE SSTORE PUSH16 0x2A2F6C81F5D84DD950A35626D6D5503A SWAP1 PUSH1 0x7F PUSH2 0x2A6A JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH30 0x10C6F7A0B5ED8D36B4C7F34938583621FAFC8B0079A2834D26FA3FCC9EA9 DUP8 GT ISZERO PUSH2 0x34E6 JUMPI PUSH30 0x10C6F7A0B5ED8D36B4C7F34938583621FAFC8B0079A2834D26FA3FCC9EAA DUP8 DIV PUSH1 0x1 ADD SWAP3 POP DUP3 DUP8 DUP2 ISZERO ISZERO PUSH2 0x34D4 JUMPI INVALID JUMPDEST DIV SWAP7 POP DUP3 DUP7 DUP2 ISZERO ISZERO PUSH2 0x34E2 JUMPI INVALID JUMPDEST DIV SWAP6 POP JUMPDEST PUSH2 0x34FE PUSH3 0xF4240 DUP9 MUL PUSH2 0x34F9 DUP10 DUP10 PUSH2 0x1214 JUMP JUMPDEST PUSH2 0x17B0 JUMP JUMPDEST SWAP8 PUSH3 0xF4240 DUP10 SWAP1 SUB SWAP8 POP SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 PUSH1 0x2 EXP DUP7 GT ISZERO DUP1 ISZERO PUSH2 0x352F JUMPI POP PUSH1 0x80 PUSH1 0x2 EXP DUP6 GT ISZERO JUMPDEST ISZERO PUSH2 0x353F JUMPI DUP6 DUP6 SWAP4 POP SWAP4 POP PUSH2 0x138F JUMP JUMPDEST PUSH1 0x80 PUSH1 0x2 EXP DUP7 LT ISZERO PUSH2 0x356B JUMPI DUP5 PUSH1 0x80 PUSH1 0x2 EXP DUP8 MUL DUP2 ISZERO ISZERO PUSH2 0x355C JUMPI INVALID JUMPDEST DIV PUSH1 0x80 PUSH1 0x2 EXP SWAP4 POP SWAP4 POP PUSH2 0x138F JUMP JUMPDEST PUSH1 0x80 PUSH1 0x2 EXP DUP6 LT ISZERO PUSH2 0x3597 JUMPI PUSH1 0x80 PUSH1 0x2 EXP DUP7 PUSH1 0x80 PUSH1 0x2 EXP DUP8 MUL DUP2 ISZERO ISZERO PUSH2 0x358D JUMPI INVALID JUMPDEST DIV SWAP4 POP SWAP4 POP PUSH2 0x138F JUMP JUMPDEST DUP5 DUP7 GT PUSH2 0x35A4 JUMPI DUP5 PUSH2 0x35A6 JUMP JUMPDEST DUP6 JUMPDEST SWAP2 POP PUSH2 0x35B6 PUSH1 0x7F PUSH1 0x2 EXP DUP4 PUSH2 0x17FC JUMP JUMPDEST PUSH1 0xFF AND PUSH1 0x2 EXP SWAP6 DUP7 SWAP1 DIV SWAP7 SWAP6 SWAP1 SWAP5 DIV SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH16 0x2F16AC6C59DE6F8D5D6F63C1482A7C86 DUP3 GT PUSH2 0x35F6 JUMPI PUSH2 0x35EF DUP3 PUSH2 0x368C JUMP JUMPDEST SWAP1 POP PUSH2 0x708 JUMP JUMPDEST DUP2 PUSH32 0x4000000000000000000000000000000000000000000000000000000000000000 DUP2 ISZERO ISZERO PUSH2 0x3621 JUMPI INVALID JUMPDEST DIV SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH16 0x2F16AC6C59DE6F8D5D6F63C1482A7C86 DUP3 GT PUSH2 0x364A JUMPI PUSH2 0x35EF DUP3 PUSH2 0x3AEF JUMP JUMPDEST PUSH17 0x1AF16AC6C59DE6F8D5D6F63C1482A7C80 DUP3 GT PUSH2 0x366B JUMPI PUSH2 0x35EF DUP3 PUSH2 0x3F70 JUMP JUMPDEST PUSH17 0x6B22D43E72C326539CCEEEF8BB48F255FF DUP3 GT PUSH2 0x174 JUMPI PUSH2 0x35EF DUP3 PUSH2 0x3FEE JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 PUSH1 0x7F PUSH1 0x2 EXP DUP3 DUP1 MUL DIV SWAP2 POP PUSH17 0x14D29A73A6E7B02C3668C7B0880000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH17 0x2504A0CD9A7F7215B60F9BE4800000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH17 0x484D0A1191C0EAD267967C7A4A0000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH17 0x95EC580D7E8427A4BAF26A90A00000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH17 0x1440B0BE1615A47DBA6E5B3B1F10000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH17 0x2D207601F46A99B4112418400000000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH17 0x66EBAAC4C37C622DD8288A7EB1B2000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH17 0xEF17240135F7DBD43A1BA10CF200000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH18 0x233C33C676A5EB2416094A87B3657000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH18 0x541CDE48BC0254BED49A9F8700000000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH18 0xCAE1FAD2CDD4D4CB8D73ABCA0D19A400000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH18 0x1EDB2AA2F760D15C41CEEDBA956400000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH18 0x4BA8D20D2DABD386C9529659841A2E200000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH18 0xBAC08546B867CDAA20000000000000000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH19 0x1CFA8E70C03625B9DB76C8EBF5BBF24820000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH19 0x4851D99F82060DF265F3309B26F8200000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH19 0xB550D19B129D270C44F6F55F027723CBB0000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH19 0x1C877DADC761DC272DEB65D4B0000000000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH19 0x48178ECE97479F33A77F2AD22A81B64406C000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH19 0xB6CA8268B9D810FEDF6695EF2F8A6C00000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH20 0x1D0E76631A5B05D007B8CB72A7C7F11EC36E000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH20 0x4A1C37BD9F85FD9C6C780000000000000000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH20 0xBD8369F1B702BF491E2EBFCEE08250313B65400 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH20 0x1E5C7C32A9F6C70AB2CB59D9225764D400000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH20 0x4DFF5820E165E910F95120A708E742496221E600 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH20 0xC8C8F66DB1FCED378EE50E536000000000000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH21 0x205DB8DFFFF45BFA2938F128F599DBF16EB11D880 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH21 0x53A044EBD984351493E1786AF38D39A0800000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH21 0xD86DAE2A4CC0F47633A544479735869B487B59C40 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH21 0x231000000000000000000000000000000000000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH21 0x5B0485A76F6646C2039DB1507CDD51B08649680822 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH21 0xEC983C46C49545BC17EFA6B5B0055E242200000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 PUSH16 0xDE1BC4D19EFCAC82445DA75B00000000 DUP4 DIV ADD ADD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x7F PUSH1 0x2 EXP DUP2 DUP2 SUB PUSH16 0xDE1BC4D19EFCAC82445DA75B00000000 MUL SWAP1 DUP3 DUP1 MUL DIV SWAP2 POP PUSH17 0x14D29A73A6E7B02C3668C7B0880000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH17 0x2504A0CD9A7F7215B60F9BE4800000000 DUP3 MUL SWAP1 SUB PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH17 0x484D0A1191C0EAD267967C7A4A0000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH17 0x95EC580D7E8427A4BAF26A90A00000000 DUP3 MUL SWAP1 SUB PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH17 0x1440B0BE1615A47DBA6E5B3B1F10000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH17 0x2D207601F46A99B4112418400000000000 DUP3 MUL SWAP1 SUB PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH17 0x66EBAAC4C37C622DD8288A7EB1B2000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH17 0xEF17240135F7DBD43A1BA10CF200000000 DUP3 MUL SWAP1 SUB PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH18 0x233C33C676A5EB2416094A87B3657000000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH18 0x541CDE48BC0254BED49A9F8700000000000 DUP3 MUL SWAP1 SUB PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH18 0xCAE1FAD2CDD4D4CB8D73ABCA0D19A400000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH18 0x1EDB2AA2F760D15C41CEEDBA956400000000 DUP3 MUL SWAP1 SUB PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH18 0x4BA8D20D2DABD386C9529659841A2E200000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH18 0xBAC08546B867CDAA20000000000000000000 DUP3 MUL SWAP1 SUB PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH19 0x1CFA8E70C03625B9DB76C8EBF5BBF24820000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH19 0x4851D99F82060DF265F3309B26F8200000000 DUP3 MUL SWAP1 SUB PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH19 0xB550D19B129D270C44F6F55F027723CBB0000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH19 0x1C877DADC761DC272DEB65D4B0000000000000 DUP3 MUL SWAP1 SUB PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH19 0x48178ECE97479F33A77F2AD22A81B64406C000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH19 0xB6CA8268B9D810FEDF6695EF2F8A6C00000000 DUP3 MUL SWAP1 SUB PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH20 0x1D0E76631A5B05D007B8CB72A7C7F11EC36E000 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH20 0x4A1C37BD9F85FD9C6C780000000000000000000 DUP3 MUL SWAP1 SUB PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH20 0xBD8369F1B702BF491E2EBFCEE08250313B65400 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH20 0x1E5C7C32A9F6C70AB2CB59D9225764D400000000 DUP3 MUL SWAP1 SUB PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH20 0x4DFF5820E165E910F95120A708E742496221E600 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH20 0xC8C8F66DB1FCED378EE50E536000000000000000 DUP3 MUL SWAP1 SUB PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH21 0x205DB8DFFFF45BFA2938F128F599DBF16EB11D880 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH21 0x53A044EBD984351493E1786AF38D39A0800000000 DUP3 MUL SWAP1 SUB PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH21 0xD86DAE2A4CC0F47633A544479735869B487B59C40 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH21 0x231000000000000000000000000000000000000000 DUP3 MUL SWAP1 SUB PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH21 0x5B0485A76F6646C2039DB1507CDD51B08649680822 DUP3 MUL ADD PUSH1 0x7F PUSH1 0x2 EXP DUP5 DUP4 MUL DIV SWAP2 POP PUSH21 0xEC983C46C49545BC17EFA6B5B0055E242200000000 DUP3 MUL SWAP1 SUB PUSH16 0xDE1BC4D19EFCAC82445DA75B00000000 DUP2 JUMPDEST DIV SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH16 0x2F16AC6C59DE6F8D5D6F63C1482A7C86 NOT DUP3 ADD PUSH16 0x3060C183060C183060C183060C18306 DUP1 DUP3 DIV SWAP1 DUP2 DUP2 MUL SWAP1 PUSH1 0x1 DUP4 ADD MUL DUP5 DUP1 PUSH1 0x80 DUP6 DUP2 DUP2 LT PUSH2 0x3FB2 JUMPI INVALID JUMPDEST ADD SLOAD SWAP2 POP PUSH1 0x80 PUSH1 0x1 DUP7 ADD DUP2 DUP2 LT PUSH2 0x3FC5 JUMPI INVALID JUMPDEST ADD SLOAD PUSH16 0x3060C183060C183060C183060C18306 SWAP5 DUP8 SUB MUL SWAP6 SWAP1 SWAP3 SUB MUL SWAP4 SWAP1 SWAP4 ADD DIV SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH17 0x15BF0A8B1457695355FB8AC404E7A79E3 DUP5 LT PUSH2 0x4019 JUMPI PUSH2 0x4014 DUP5 PUSH2 0x17E2 JUMP JUMPDEST PUSH2 0x4022 JUMP JUMPDEST PUSH2 0x4022 DUP5 PUSH2 0x1398 JUMP JUMPDEST SWAP2 POP PUSH17 0x15BF0A8B1457695355FB8AC404E7A79E3 DUP3 LT PUSH2 0x404A JUMPI PUSH2 0x4045 DUP3 PUSH2 0x17E2 JUMP JUMPDEST PUSH2 0x4053 JUMP JUMPDEST PUSH2 0x4053 DUP3 PUSH2 0x1398 JUMP JUMPDEST SWAP1 POP DUP4 PUSH1 0x7F PUSH1 0x2 EXP DUP4 PUSH1 0x7F PUSH1 0x2 EXP DUP5 MUL DUP2 ISZERO ISZERO PUSH2 0x406C JUMPI INVALID JUMPDEST DIV DUP4 DUP6 SUB ADD MUL DUP2 ISZERO ISZERO PUSH2 0x3F67 JUMPI INVALID STOP GASLIMIT MSTORE MSTORE 0x5f 0x49 0x4e JUMP COINBASE 0x4c 0x49 DIFFICULTY 0x5f MSTORE8 SSTORE POP POP 0x4c MSIZE STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP GASLIMIT MSTORE MSTORE 0x5f 0x49 0x4e JUMP COINBASE 0x4c 0x49 DIFFICULTY 0x5f MSTORE GASLIMIT MSTORE8 GASLIMIT MSTORE JUMP GASLIMIT 0x5f TIMESTAMP COINBASE 0x4c COINBASE 0x4e NUMBER GASLIMIT STOP STOP STOP STOP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 DIFFICULTY CREATE 0x27 PUSH3 0xB5E42A 0xc5 0xc4 0xda DELEGATECALL SLOAD 0xd1 PC LOG0 DUP10 0xec PC 0xa9 0xa5 XOR 0x27 SWAP15 PUSH17 0x25D2514A1C9B392002900000000000000 ", - "sourceMap": "156:1326:40:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;59263:222:10;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;59263:222:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;57847:242;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;57847:242:10;;;;;;;;;;;;;23900:810;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;23900:810:10;;;;;;;;;;;;;60811:232;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;60811:232:10;;;;;;;;;;;;;1083:140:40;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1083:140:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;875:101;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;875:101:40;;;;;1365:115;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1365:115:40;;;;;;;399:101;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;399:101:40;;;;;58146:234:10;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;58146:234:10;;;;;;;;;;;;;187:34;;8:9:-1;5:2;;;30:1;27;20:12;5:2;187:34:10;;;;;;;;;;;;;;;;;;;;;;;58849:357;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;58849:357:10;;;;;;;;;;;;;;;;;;;739:133:40;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;739:133:40;;;;;;;;;19056:997:10;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;19056:997:10;;;;;;;;;;;;;25320:1007;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;25320:1007:10;;;;;;;;;;;;;211:185:40;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;211:185:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20832:1025:10;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;20832:1025:10;;;;;;;;;;;;;;;;;;;28461:1167;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;28461:1167:10;;;;;;;;;;;;;605:131:40;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;605:131:40;;;;;;;;;;;;;;;;;;;;;;;;979:101;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;979:101:40;;;;;503:99;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;503:99:40;;;;;17006:70:10;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17006:70:10;;;;;;1226:136:40;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1226:136:40;;;;;;;22464:824:10;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;22464:824:10;;;;;;;;;;;;;17659:817;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;17659:817:10;;;;;;;;;;;;;59263:222;59403:7;59423:58;59432:7;59441:15;59458:13;59473:7;59423:8;:58::i;:::-;59416:65;59263:222;-1:-1:-1;;;;;59263:222:10:o;57847:242::-;57994:7;58014:71;58035:7;58044:15;58061:14;58077:7;58014:20;:71::i;23900:810::-;24039:7;;;;;24080:11;;;24072:42;;;;;-1:-1:-1;;;;;24072:42:10;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;24072:42:10;;;;;;;;;;;;;;;24144:1;24126:19;;24118:59;;;;;-1:-1:-1;;;;;24118:59:10;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;24118:59:10;;;;;;;;;;;;;;;24205:1;24189:13;:17;;;:52;;;;-1:-1:-1;24227:14:10;24210:31;;;;;24189:52;24181:90;;;;;;;-1:-1:-1;;;;;24181:90:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;24311:12;;24307:26;;;24332:1;24325:8;;;;24307:26;24388:27;;;297:7;24388:27;24384:78;;;24447:15;24424:20;:7;24436;24424:20;:11;:20;:::i;:::-;:38;;;;;;;;24417:45;;;;24384:78;24520:28;:15;24540:7;24520:28;:19;:28;:::i;:::-;24504:44;;24574:56;24580:5;24587:15;24604:13;297:7;24574:5;:56::i;:::-;24552:78;;-1:-1:-1;24552:78:10;-1:-1:-1;24649:32:10;;;:19;:7;24552:78;24649:19;:11;:19;:::i;:::-;:32;;;;;24634:47;;24699:7;24692:4;:14;24685:21;;23900:810;;;;;;;;;;;:::o;60811:232::-;60947:7;60967:72;60990:7;60999:15;61016:13;61031:7;60967:22;:72::i;1083:140:40:-;1161:6;1169;1188:31;1212:2;1216;1188:23;:31::i;:::-;1181:38;;;;1083:140;;;;;:::o;875:101::-;933:7;953:19;970:1;953:16;:19::i;:::-;946:26;;875:101;;;;:::o;1365:115::-;1434:7;1454:22;1469:2;1473;1454:14;:22::i;:::-;1447:29;1365:115;-1:-1:-1;;;1365:115:40:o;399:101::-;457:7;477:19;494:1;477:16;:19::i;58146:234:10:-;58289:7;58309:67;58326:7;58335:15;58352:14;58368:7;58309:16;:67::i;187:34::-;220:1;187:34;:::o;58849:357::-;59059:7;59079:123;59104:21;59127:20;59149:21;59172:20;59194:7;59079:24;:123::i;:::-;59072:130;58849:357;-1:-1:-1;;;;;;58849:357:10:o;739:133:40:-;816:7;836:32;853:2;857:10;836:16;:32::i;19056:997:10:-;19196:7;;;;;;19237:11;;;19229:42;;;;;-1:-1:-1;;;;;19229:42:10;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;19229:42:10;;;;;;;;;;;;;;;19301:1;19283:19;;19275:59;;;;;-1:-1:-1;;;;;19275:59:10;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;19275:59:10;;;;;;;;;;;;;;;19363:1;19346:14;:18;;;:50;;;;-1:-1:-1;297:7:10;19368:28;;;;;19346:50;19338:89;;;;;;;-1:-1:-1;;;;;19338:89:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;19439:18;;;;19431:49;;;;;-1:-1:-1;;;;;19431:49:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;19525:12;;19521:26;;;19546:1;19539:8;;;;19521:26;19615:7;19604;:18;19600:46;;;19631:15;19624:22;;;;19600:46;19694:28;;;297:7;19694:28;19690:79;;;19762:7;19731:28;:15;19751:7;19731:28;:19;:28;:::i;:::-;:38;;;;;;;;19724:45;;;;19690:79;19837:7;19827;:17;19811:33;;19870:49;19876:7;19885:5;297:7;19904:14;19870:5;:49::i;:::-;19848:71;;-1:-1:-1;19848:71:10;-1:-1:-1;19939:27:10;:15;19848:71;19939:27;:19;:27;:::i;:::-;19923:43;-1:-1:-1;;19986:28:10;;;;;;;20043:6;20026:13;;;20025:24;;;;;;;;20018:31;;19056:997;;;;;;;;;;;;:::o;25320:1007::-;25465:7;;;;;;25506:11;;;25498:42;;;;;-1:-1:-1;;;;;25498:42:10;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;25498:42:10;;;;;;;;;;;;;;;25570:1;25552:19;;25544:59;;;;;-1:-1:-1;;;;;25544:59:10;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;25544:59:10;;;;;;;;;;;;;;;25631:1;25615:13;:17;;;:52;;;;-1:-1:-1;25653:14:10;25636:31;;;;;25615:52;25607:90;;;;;;;-1:-1:-1;;;;;25607:90:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;25709:18;;;;25701:49;;;;;-1:-1:-1;;;;;25701:49:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;25790:12;;25786:26;;;25811:1;25804:8;;;;25786:26;25884:7;25873;:18;25869:46;;;25900:15;25893:22;;;;25869:46;25970:27;;;297:7;25970:27;25966:78;;;26037:7;26006:28;:7;26018:15;26006:28;:11;:28;:::i;211:185:40:-;324:7;333:5;351:41;363:6;371;379:5;386;351:11;:41::i;:::-;344:48;;;;211:185;;;;;;;:::o;20832:1025:10:-;21037:7;21519:14;21537:15;21556:13;21715;21768;21102:1;21078:21;:25;:54;;;;;21131:1;21107:21;:25;21078:54;21070:94;;;;;;;-1:-1:-1;;;;;21070:94:10;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;21070:94:10;;;;;;;;;;;;;;;21203:1;21180:20;:24;;;:62;;;;-1:-1:-1;297:7:10;21208:34;;;;;21180:62;:90;;;;;21269:1;21246:20;:24;;;21180:90;:128;;;;-1:-1:-1;297:7:10;21274:34;;;;;21180:128;21168:177;;;;;;;-1:-1:-1;;;;;21168:177:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;21414:20;21390:44;;:20;:44;;;21386:128;;;21480:34;:21;21506:7;21480:34;:25;:34;:::i;:::-;21443;:21;21469:7;21443:34;:25;:34;:::i;:::-;:71;;;;;;;;21436:78;;;;21386:128;21572:34;:21;21598:7;21572:34;:25;:34;:::i;:::-;21556:50;;21632:79;21638:5;21645:21;21668:20;21690;21632:5;:79::i;:::-;21610:101;;-1:-1:-1;21610:101:10;-1:-1:-1;21731:33:10;:21;21610:101;21731:33;:25;:33;:::i;:::-;21715:49;-1:-1:-1;;21784:34:10;;;;;;;21847:6;21830:13;;;21829:24;;;;;;;;21822:31;;20832:1025;;;;;;;;;;;;;:::o;28461:1167::-;28688:6;28696;29120:10;29192;28744:22;28712:28;:54;28708:310;;;28810:1;28779:28;:32;:64;;;;28842:1;28815:24;:28;28779:64;28771:104;;;;;;;-1:-1:-1;;;;;28771:104:10;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;28771:104:10;;;;;;;;;;;;;;;28708:310;;;28923:1;28892:28;:32;:62;;;;;28953:1;28928:22;:26;28892:62;:94;;;;;28985:1;28958:24;:28;28892:94;28884:134;;;;;;;-1:-1:-1;;;;;28884:134:10;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;28884:134:10;;;;;;;;;;;;;;;29054:1;29030:21;:25;:56;;;;;29085:1;29059:23;:27;29030:56;29022:93;;;;;;;-1:-1:-1;;;;;29022:93:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;29133:55;:28;29166:21;29133:55;:32;:55;:::i;:::-;29120:68;-1:-1:-1;29205:53:10;:24;29234:23;29205:53;:28;:53;:::i;:::-;29192:66;;29298:22;29267:28;:53;29263:159;;;29332:90;29355:22;29379:28;29409:2;29413;29417:4;29332:22;:90::i;:::-;29325:97;;;;;;29263:159;29462:22;29431:28;:53;29427:160;;;29496:91;29519:28;29549:22;29573:2;29577;29581:5;29496:22;:91::i;29427:160::-;29599:25;29617:2;29621;29599:17;:25::i;:::-;29592:32;;;;28461:1167;;;;;;;;;;;:::o;605:131:40:-;679:5;697:35;729:2;697:31;:35::i;979:101::-;1037:7;1057:19;1074:1;1057:16;:19::i;503:99::-;561:5;579:19;595:2;579:15;:19::i;17006:70:10:-;17033:17;:15;:17::i;:::-;17054:18;:16;:18::i;:::-;17006:70::o;1226:136:40:-;1302:6;1310;1329:29;1351:2;1355;1329:21;:29::i;22464:824:10:-;22595:7;;;;;22636:11;;;22628:42;;;;;-1:-1:-1;;;;;22628:42:10;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;22628:42:10;;;;;;;;;;;;;;;22700:1;22682:19;;22674:59;;;;;-1:-1:-1;;;;;22674:59:10;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;22674:59:10;;;;;;;;;;;;;;;22761:1;22745:13;:17;;;:52;;;;-1:-1:-1;22783:14:10;22766:31;;;;;22745:52;22737:90;;;;;;;-1:-1:-1;;;;;22737:90:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;22867:12;;22863:26;;;22888:1;22881:8;;;;22863:26;22944:27;;;297:7;22944:27;22940:88;;;23017:7;23012:1;22981:28;:7;22993:15;22981:28;:11;:28;:::i;:::-;:32;22980:44;;;;;;;;23027:1;22980:48;22973:55;;;;22940:88;23086:20;:7;23098;23086:20;:11;:20;:::i;:::-;23070:36;;23132:48;23138:5;23145:7;297;23166:13;23132:5;:48::i;:::-;23110:70;;-1:-1:-1;23110:70:10;-1:-1:-1;23200:46:10;;;23231:1;23201:27;:15;23110:70;23201:27;:19;:27;:::i;:::-;23200:46;;;;;23201:31;;23200:46;23262:22;;;;23250:1;23262:22;;22464:824;-1:-1:-1;;;;;;;;22464:824:10:o;17659:817::-;17803:7;;;;;17844:11;;;17836:42;;;;;-1:-1:-1;;;;;17836:42:10;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;17836:42:10;;;;;;;;;;;;;;;17908:1;17890:19;;17882:59;;;;;-1:-1:-1;;;;;17882:59:10;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;17882:59:10;;;;;;;;;;;;;;;17970:1;17953:14;:18;;;:50;;;;-1:-1:-1;297:7:10;17975:28;;;;;17953:50;17945:89;;;;;;;-1:-1:-1;;;;;17945:89:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;18082:12;;18078:26;;;18103:1;18096:8;;;;18078:26;18152:28;;;297:7;18152:28;18148:79;;;18212:15;18189:20;:7;18201;18189:20;:11;:20;:::i;18148:79::-;18285:28;:7;18297:15;18285:28;:11;:28;:::i;924:197:69:-;984:7;;1023;;1019:21;;;1039:1;1032:8;;;;1019:21;-1:-1:-1;1057:7:69;;;1062:2;1057;:7;1076:6;;;;;;;;:12;1068:37;;;;;-1:-1:-1;;;;;1068:37:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;1116:1;1109:8;;924:197;;;;;;:::o;288:144::-;348:7;373;;;392;;;;384:32;;;;;-1:-1:-1;;;;;384:32:69;;;;;;;;;;;;;;;;;;;;;;;;;;;31126:662:10;31235:7;;;;;;639:35;31263:16;;31255:25;;;;;;31340:6;-1:-1:-1;;;31320:6:10;:16;31319:27;;;;;;;;31304:42;;1034:35;31354:4;:22;31350:106;;;31393:16;31404:4;31393:10;:16::i;:::-;31383:26;;31350:106;;;31435:16;31446:4;31435:10;:16::i;:::-;31425:26;;31350:106;31506:5;31486:25;;31497:5;31487:15;;:7;:15;31486:25;;;;;;;;31460:51;;1115:35;31519:15;:33;31515:270;;;31567:27;31578:15;31567:10;:27::i;:::-;390:3;31559:51;;;;;;31515:270;31644:42;31670:15;31644:25;:42::i;:::-;31626:60;-1:-1:-1;31699:69:10;31710:46;390:3;31730:25;;;31710:46;;;;;31626:60;31699:10;:69::i;:::-;31770:9;31691:89;;;;31515:270;31126:662;;;;;;;;;;;:::o;56924:209::-;56998:6;;;;57022:8;;;57018:44;;57039:23;57055:2;57059;57039:15;:23::i;:::-;57032:30;;;;;;57018:44;57089:23;57105:2;57109;57089:15;:23::i;:::-;57066:46;;;;57124:1;57127;57116:13;;;;56924:209;;;;;;;;:::o;38641:2750::-;38695:7;;;;;38777:34;38772:39;;38768:155;;38825:34;38818:41;;;;;38884:34;-1:-1:-1;;;38869:11:10;;38868:50;38864:54;;38768:155;38950:34;38945:39;;38941:155;;38998:34;38991:41;;;;;39057:34;-1:-1:-1;;;39042:11:10;;39041:50;39037:54;;38941:155;39123:34;39118:39;;39114:155;;39171:34;39164:41;;;;;39230:34;-1:-1:-1;;;39215:11:10;;39214:50;39210:54;;39114:155;39296:34;39291:39;;39287:155;;39344:34;39337:41;;;;;39403:34;-1:-1:-1;;;39388:11:10;;39387:50;39383:54;;39287:155;39469:34;39464:39;;39460:155;;39517:34;39510:41;;;;;39576:34;-1:-1:-1;;;39561:11:10;;39560:50;39556:54;;39460:155;39642:34;39637:39;;39633:155;;39690:34;39683:41;;;;;39749:34;-1:-1:-1;;;39734:11:10;;39733:50;39729:54;;39633:155;39815:34;39810:39;;39806:155;;39863:34;39856:41;;;;;39922:34;-1:-1:-1;;;39907:11:10;;39906:50;39902:54;;39806:155;39988:34;39983:39;;39979:155;;40036:34;40029:41;;;;;40095:34;-1:-1:-1;;;40080:11:10;;40079:50;40075:54;;39979:155;-1:-1:-1;;40161:11:10;;;-1:-1:-1;40161:11:10;;-1:-1:-1;;;;40181:5:10;;;40180:17;;-1:-1:-1;;;;40214:39:10;;;40209:45;;40208:85;40201:92;;;;;-1:-1:-1;;;40302:5:10;;;40301:17;;-1:-1:-1;40408:35:10;40364;:39;;;40359:45;;40358:85;40351:92;;;;;-1:-1:-1;;;40452:5:10;;;40451:17;;-1:-1:-1;40558:35:10;40514;:39;;;40509:45;;40508:85;40501:92;;;;;-1:-1:-1;;;40602:5:10;;;40601:17;;-1:-1:-1;40708:35:10;40664;:39;;;40659:45;;40658:85;40651:92;;;;;-1:-1:-1;;;40752:5:10;;;40751:17;;-1:-1:-1;40858:35:10;40814;:39;;;40809:45;;40808:85;40801:92;;;;;-1:-1:-1;;;40902:5:10;;;40901:17;;-1:-1:-1;41008:35:10;40964;:39;;;40959:45;;40958:85;40951:92;;;;;-1:-1:-1;;;41052:5:10;;;41051:17;;-1:-1:-1;41158:35:10;41114;:39;;;41109:45;;41108:85;41101:92;;;;;-1:-1:-1;;;41202:5:10;;;41201:17;;-1:-1:-1;41308:35:10;41264;:39;;;41259:45;;41258:85;41251:92;;;;;38641:2750;-1:-1:-1;;;;;38641:2750:10:o;57666:124::-;57731:7;57784:1;57779:2;:6;57774:2;:11;57767:2;57762;:7;;;;;;;;57761:25;;;;;;;;57756:2;57751;:7;;;;;;;;:35;;57666:124;-1:-1:-1;;;57666:124:10:o;31943:641::-;31997:7;;;;-1:-1:-1;;;32119:12:10;;32115:119;;32152:22;-1:-1:-1;;;32162:1:10;:11;;32152:9;:22::i;:::-;32179:11;;;;;;;;;;;-1:-1:-1;;;32214:15:10;;-1:-1:-1;32138:36:10;-1:-1:-1;32115:119:10;-1:-1:-1;;;32327:1:10;:11;32323:207;;;-1:-1:-1;390:3:10;32345:181;32379:1;32375;:5;;;32345:181;;;-1:-1:-1;;;32398:5:10;;;32397:17;;-1:-1:-1;;;;32441:12:10;;32437:84;;32462:7;;;;;;32500:14;-1:-1:-1;;32508:5:10;;32500:14;;;32493:21;;;;;32437:84;-1:-1:-1;;32382:3:10;32345:181;;;859:33;780;32542:19;;32541:39;32534:46;;31943:641;;;;;;;:::o;34279:3677::-;34352:7;34365:10;34384:11;34378:2;34365:15;;34398:1;34384:15;;34422:10;34409:23;;34415:2;34410;:7;34409:23;;;;;34404:28;;34443:2;34448:33;34443:38;34436:45;;;;34529:10;34516:23;;34522:2;34517;:7;34516:23;;;;;34511:28;;34550:2;34555:33;34550:38;34543:45;;;;34636:10;34623:23;;34629:2;34624;:7;34623:23;;;;;34618:28;;34657:2;34662:33;34657:38;34650:45;;;;34743:10;34730:23;;34736:2;34731;:7;34730:23;;;;;34725:28;;34764:2;34769:33;34764:38;34757:45;;;;34850:10;34837:23;;34843:2;34838;:7;34837:23;;;;;34832:28;;34871:2;34876:33;34871:38;34864:45;;;;34957:10;34944:23;;34950:2;34945;:7;34944:23;;;;;34939:28;;34978:2;34983:33;34978:38;34971:45;;;;35064:10;35051:23;;35057:2;35052;:7;35051:23;;;;;35046:28;;35085:2;35090:33;35085:38;35078:45;;;;35171:10;35158:23;;35164:2;35159;:7;35158:23;;;;;35153:28;;35192:2;35197:33;35192:38;35185:45;;;;35278:10;35265:23;;35271:2;35266;:7;35265:23;;;;;35260:28;;35299:2;35304:33;35299:38;35292:45;;;;35385:10;35372:23;;35378:2;35373;:7;35372:23;;;;;35367:28;;35406:2;35411:33;35406:38;35399:45;;;;35492:10;35479:23;;35485:2;35480;:7;35479:23;;;;;35474:28;;35513:2;35518:33;35513:38;35506:45;;;;35599:10;35586:23;;35592:2;35587;:7;35586:23;;;;;35581:28;;35620:2;35625:33;35620:38;35613:45;;;;35706:10;35693:23;;35699:2;35694;:7;35693:23;;;;;35688:28;;35727:2;35732:33;35727:38;35720:45;;;;35813:10;35800:23;;35806:2;35801;:7;35800:23;;;;;35795:28;;35834:2;35839:33;35834:38;35827:45;;;;35920:10;35907:23;;35913:2;35908;:7;35907:23;;;;;35902:28;;35941:2;35946:33;35941:38;35934:45;;;;36027:10;36014:23;;36020:2;36015;:7;36014:23;;;;;36009:28;;36048:2;36053:33;36048:38;36041:45;;;;36134:10;36121:23;;36127:2;36122;:7;36121:23;;;;;36116:28;;36155:2;36160:33;36155:38;36148:45;;;;36241:10;36228:23;;36234:2;36229;:7;36228:23;;;;;36223:28;;36262:2;36267:33;36262:38;36255:45;;;;36348:10;36335:23;;36341:2;36336;:7;36335:23;;;;;36330:28;;36369:2;36374:33;36369:38;36362:45;;;;36455:10;36442:23;;36448:2;36443;:7;36442:23;;;;;36437:28;;36476:2;36481:33;36476:38;36469:45;;;;36562:10;36549:23;;36555:2;36550;:7;36549:23;;;;;36544:28;;36583:2;36588:33;36583:38;36576:45;;;;36669:10;36656:23;;36662:2;36657;:7;36656:23;;;;;36651:28;;36690:2;36695:33;36690:38;36683:45;;;;36776:10;36763:23;;36769:2;36764;:7;36763:23;;;;;36758:28;;36797:2;36802:33;36797:38;36790:45;;;;36883:10;36870:23;;36876:2;36871;:7;36870:23;;;;;36865:28;;36904:2;36909:33;36904:38;36897:45;;;;36990:10;36977:23;;36983:2;36978;:7;36977:23;;;;;36972:28;;37011:2;37016:33;37011:38;37004:45;;;;37097:10;37084:23;;37090:2;37085;:7;37084:23;;;;;37079:28;;37118:2;37123:33;37118:38;37111:45;;;;37204:10;37191:23;;37197:2;37192;:7;37191:23;;;;;37186:28;;37225:2;37230:33;37225:38;37218:45;;;;37311:10;37298:23;;37304:2;37299;:7;37298:23;;;;;37293:28;;37332:2;37337:33;37332:38;37325:45;;;;37418:10;37405:23;;37411:2;37406;:7;37405:23;;;;;37400:28;;37439:2;37444:33;37439:38;37432:45;;;;37525:10;37512:23;;37518:2;37513;:7;37512:23;;;;;37507:28;;37546:2;37551:33;37546:38;37539:45;;;;37632:10;37619:23;;37625:2;37620;:7;37619:23;;;;;37614:28;;37653:2;37658:33;37653:38;37646:45;;;;37739:10;37726:23;;37732:2;37727;:7;37726:23;;;;;37721:28;;37760:2;37765:33;37760:38;37753:45;;;;37891:10;37884:17;;256:1;37884:17;;;;37878:2;37842:33;37836:3;:39;;;;;;;;:44;:66;;34279:3677;-1:-1:-1;;;;;34279:3677:10:o;55947:451::-;56085:6;56093;56143:9;56181;56248;56280;56118:21;56130:3;56135;56118:11;:21::i;:::-;56105:34;;-1:-1:-1;56105:34:10;-1:-1:-1;56174:3:10;56155:16;:3;-1:-1:-1;;;56155:16:10;:7;:16;:::i;:::-;:22;;;;;;;;56143:34;;1034:35;56193:1;:19;:51;;56231:13;56242:1;56231:10;:13::i;:::-;56193:51;;;56215:13;56226:1;56215:10;:13::i;:::-;56181:63;-1:-1:-1;56273:3:10;56260:10;56181:63;56266:3;56260:10;:5;:10;:::i;:::-;:16;;;;;;;;56248:28;;56292:11;:44;;56322:14;56334:1;56322:11;:14::i;:::-;56292:44;;;56306:13;56317:1;56306:10;:13::i;:::-;56280:56;-1:-1:-1;56347:47:10;56365:10;56280:56;56371:3;56365:10;:5;:10;:::i;:::-;56377:16;:3;-1:-1:-1;;;56377:16:10;:7;:16;:::i;:::-;56347:17;:47::i;:::-;56340:54;;;;55947:451;;;;;;;;;;;;:::o;33389:355::-;33459:5;346:2;390:3;33459:5;33527:114;33543:2;33534:11;;:2;33539:1;33534:6;:11;;;33527:114;;;33576:1;33564:13;33565:7;;;33564:13;;;-1:-1:-1;33606:2:10;33586:11;:16;;;;;;;;;;;;:22;33582:54;;33615:3;33610:8;;33582:54;;;33633:3;33628:8;;33582:54;33527:114;;;33668:2;33649:11;:15;;;;;;;;;;;;:21;33645:36;;33679:2;33672:9;;;;33645:36;33708:2;33689:11;:15;;;;;;;;;;;;:21;33685:36;;33719:2;33712:9;;;;42031:3074;42085:7;42430:18;-1:-1:-1;;;42153:38:10;;;42231:5;;;42230:17;;;42315:5;;;42314:17;;;42399:5;;;42398:17;;;42426:22;;;42262:18;42258:22;;;42346:18;42342:22;;;;42335:29;42419;;42153:38;;42483:5;;;42482:17;42478:21;;42510:1;42514:18;42510:22;42503:29;;;;-1:-1:-1;;;42571:1:10;42567;:5;42566:17;;;;;;;;42562:21;;42594:1;42598:18;42594:22;42587:29;;;;-1:-1:-1;;;42655:1:10;42651;:5;42650:17;;;;;;;;42646:21;;42678:1;42682:18;42678:22;42671:29;;;;-1:-1:-1;;;42739:1:10;42735;:5;42734:17;;;;;;;;42730:21;;42762:1;42766:18;42762:22;42755:29;;;;-1:-1:-1;;;42823:1:10;42819;:5;42818:17;;;;;;;;42814:21;;42846:1;42850:18;42846:22;42839:29;;;;-1:-1:-1;;;42907:1:10;42903;:5;42902:17;;;;;;;;42898:21;;42930:1;42934:18;42930:22;42923:29;;;;-1:-1:-1;;;42991:1:10;42987;:5;42986:17;;;;;;;;42982:21;;43014:1;43018:18;43014:22;43007:29;;;;-1:-1:-1;;;43075:1:10;43071;:5;43070:17;;;;;;;;43066:21;;43098:1;43102:18;43098:22;43091:29;;;;-1:-1:-1;;;43159:1:10;43155;:5;43154:17;;;;;;;;43150:21;;43182:1;43186:18;43182:22;43175:29;;;;-1:-1:-1;;;43243:1:10;43239;:5;43238:17;;;;;;;;43234:21;;43266:1;43270:18;43266:22;43259:29;;;;-1:-1:-1;;;43327:1:10;43323;:5;43322:17;;;;;;;;43318:21;;43350:1;43354:18;43350:22;43343:29;;;;-1:-1:-1;;;43411:1:10;43407;:5;43406:17;;;;;;;;43402:21;;43434:1;43438:18;43434:22;43427:29;;;;-1:-1:-1;;;43495:1:10;43491;:5;43490:17;;;;;;;;43486:21;;43518:1;43522:18;43518:22;43511:29;;;;-1:-1:-1;;;43579:1:10;43575;:5;43574:17;;;;;;;;43570:21;;43602:1;43606:18;43602:22;43595:29;;;;-1:-1:-1;;;43663:1:10;43659;:5;43658:17;;;;;;;;43654:21;;43686:1;43690:18;43686:22;43679:29;;;;-1:-1:-1;;;43747:1:10;43743;:5;43742:17;;;;;;;43834:18;43742:17;;;43763:29;;;43828:24;:28;;-1:-1:-1;;;43828:38:10;;43742:17;-1:-1:-1;43930:35:10;43926:39;;43925:46;43921:139;;44025:35;43986;43980:41;;43979:81;43973:87;;43921:139;44097:35;44093:39;;44092:46;44088:139;;44192:35;44153;44147:41;;44146:81;44140:87;;44088:139;44264:35;44260:39;;44259:46;44255:139;;44359:35;44320;44314:41;;44313:81;44307:87;;44255:139;-1:-1:-1;;;44427:39:10;;44426:46;44422:139;;44526:35;44487;44481:41;;44480:81;44474:87;;44422:139;-1:-1:-1;;;44594:39:10;;44593:46;44589:139;;44693:35;44654;44648:41;;44647:81;44641:87;;44589:139;44765:35;44761:39;;44760:46;44756:139;;44860:35;44821;44815:41;;44814:81;44808:87;;44756:139;44932:35;44928:39;;44927:46;44923:139;;45027:35;44988;44982:41;;44981:81;44975:87;;44923:139;-1:-1:-1;45098:3:10;;42031:3074;-1:-1:-1;;;42031:3074:10:o;32695:348::-;32749:5;;;32787:3;32782:8;;32778:247;;;32824:49;32836:1;32831:2;:6;32824:49;;;32845:8;;;;;32852:1;32859:8;;;;;32824:49;;;32778:247;;;-1:-1:-1;32930:3:10;32915:106;32939:1;32935;:5;;;32915:106;;;32968:8;;;;;32961:16;;32957:59;;32986:8;;;;;;;;;33001;;;;32957:59;32942:7;;;;;;32915:106;;1813:7651;3886:36;3880:2;3868:54;3944:36;3938:2;3926:54;4002:36;3996:2;3984:54;4060:36;4054:2;4042:54;4118:36;4112:2;4100:54;4176:36;4170:2;4158:54;4234:36;4228:2;4216:54;4292:36;4286:2;4274:54;4350:36;4344:2;4332:54;4408:36;4402:2;4390:54;4466:36;4460:2;4448:54;4524:36;4518:2;4506:54;4582:36;4576:2;4564:54;4640:36;4634:2;4622:54;4698:36;4692:2;4680:54;4756:36;4750:2;4738:54;4814:36;4808:2;4796:54;4872:36;4866:2;4854:54;4930:36;4924:2;4912:54;4988:36;4982:2;4970:54;5046:36;5040:2;5028:54;5104:36;5098:2;5086:54;5162:36;5156:2;5144:54;5220:36;5214:2;5202:54;5278:36;5272:2;5260:54;5336:36;5330:2;5318:54;5394:36;5388:2;5376:54;5452:36;5446:2;5434:54;5510:36;5504:2;5492:54;5568:36;5562:2;5550:54;5626:36;5620:2;5608:54;5684:36;5678:2;5666:54;5742:36;5736:2;5724:54;5800:36;5794:2;5782:54;5858:36;5852:2;5840:54;5916:36;5910:2;5898:54;5974:36;5968:2;5956:54;6032:36;6026:2;6014:54;6090:36;6084:2;6072:54;6148:36;6142:2;6130:54;6206:36;6200:2;6188:54;6264:36;6258:2;6246:54;6322:36;6316:2;6304:54;6380:36;6374:2;6362:54;6438:36;6432:2;6420:54;6496:36;6490:2;6478:54;6554:36;6548:2;6536:54;6612:36;6606:2;6594:54;6670:36;6664:2;6652:54;6728:36;6722:2;6710:54;6786:36;6780:2;6768:54;6844:36;6838:2;6826:54;6902:36;6896:2;6884:54;6960:36;6954:2;6942:54;7018:36;7012:2;7000:54;7076:36;7070:2;7058:54;7134:36;7128:2;7116:54;7192:36;7186:2;7174:54;7250:36;7244:2;7232:54;7308:36;7302:2;7290:54;7366:36;7360:2;7348:54;7424:36;7418:2;7406:54;7482:36;7476:2;7464:54;7540:36;7534:2;7522:54;7598:36;7592:2;7580:54;7656:36;7650:2;7638:54;7714:36;7708:2;7696:54;7772:36;7766:2;7754:54;7831:36;7824:3;7812:55;7890:36;7883:3;7871:55;7949:36;7942:3;7930:55;8008:36;8001:3;7989:55;8067:36;8060:3;8048:55;8126:36;8119:3;8107:55;8185:36;8178:3;8166:55;8244:36;8237:3;8225:55;8303:36;8296:3;8284:55;8362:36;8355:3;8343:55;8421:36;8414:3;8402:55;8480:36;8473:3;8461:55;8539:36;8532:3;8520:55;8598:36;8591:3;8579:55;8657:36;8650:3;8638:55;8716:36;8709:3;8697:55;8775:36;8768:3;8756:55;8834:36;8827:3;8815:55;8893:36;8886:3;8874:55;8952:36;8945:3;8933:55;9011:36;9004:3;8992:55;9070:36;9063:3;9051:55;9129:36;9122:3;9110:55;9188:36;9181:3;9169:55;9247:36;9240:3;9228:55;9306:36;9299:3;9287:55;9365:36;9358:3;9346:55;9424:36;3868:11;9417:3;9405:16;;:55;1813:7651::o;9560:7354::-;9618:34;9600:12;:52;;;9674:34;9656:15;:52;9730:34;9712:15;:52;9786:34;9768:15;:52;9842:34;9824:15;:52;9898:34;9880:15;:52;9954:34;9936:15;:52;10010:34;9992:15;:52;10066:34;10048:15;:52;10122:34;10104:15;:52;10179:34;10160:16;:53;10236:34;10217:16;:53;10293:34;10274:16;:53;10350:34;10331:16;:53;10407:34;10388:16;:53;10464:34;10445:16;:53;10521:34;10502:16;:53;10578:34;10559:16;:53;10635:34;10616:16;:53;10692:34;10673:16;:53;10749:34;10730:16;:53;10806:34;10787:16;:53;10863:34;10844:16;:53;10920:34;10901:16;:53;10977:34;10958:16;:53;11034:34;11015:16;:53;11091:34;11072:16;:53;11148:34;11129:16;:53;11205:34;11186:16;:53;11262:34;11243:16;:53;11319:34;11300:16;:53;11376:34;11357:16;:53;11433:34;11414:16;:53;11490:34;11471:16;:53;11547:34;11528:16;:53;11604:34;11585:16;:53;11661:34;11642:16;:53;11718:34;11699:16;:53;11775:34;11756:16;:53;11832:34;11813:16;:53;11889:34;11870:16;:53;11946:34;11927:16;:53;12003:34;11984:16;:53;12060:34;12041:16;:53;12117:34;12098:16;:53;12174:34;12155:16;:53;12231:34;12212:16;:53;12288:34;12269:16;:53;12345:34;12326:16;:53;12402:34;12383:16;:53;12459:34;12440:16;:53;12516:34;12497:16;:53;12573:34;12554:16;:53;12630:34;12611:16;:53;12687:34;12668:16;:53;12744:34;12725:16;:53;12801:34;12782:16;:53;12858:34;12839:16;:53;12915:34;12896:16;:53;12972:34;12953:16;:53;13029:34;13010:16;:53;13086:34;13067:16;:53;13143:34;13124:16;:53;13200:34;13181:16;:53;13257:34;13238:16;:53;13314:34;13295:16;:53;13371:34;13352:16;:53;13428:34;13409:16;:53;13485:34;13466:16;:53;13542:34;13523:16;:53;13599:34;13580:16;:53;13656:34;13637:16;:53;13713:34;13694:16;:53;13770:34;13751:16;:53;13827:34;13808:16;:53;13884:34;13865:16;:53;13941:34;13922:16;:53;13998:34;13979:16;:53;14055:34;14036:16;:53;14112:34;14093:16;:53;14169:34;14150:16;:53;14226:34;14207:16;:53;14283:34;14264:16;:53;14340:34;14321:16;:53;14397:34;14378:16;:53;14454:34;14435:16;:53;14511:34;14492:16;:53;14568:34;14549:16;:53;14625:34;14606:16;:53;14682:34;14663:16;:53;14739:34;14720:16;:53;14796:34;14777:16;:53;14853:34;14834:16;:53;14910:34;14891:16;:53;14967:34;14948:16;:53;15024:34;15005:16;:53;15081:34;15062:16;:53;15138:34;15119:16;:53;15195:34;15176:16;:53;15252:34;15233:16;:53;15310:34;15290:17;:54;15368:34;15348:17;:54;15426:34;15406:17;:54;15484:34;15464:17;:54;15542:34;15522:17;:54;15600:34;15580:17;:54;15658:34;15638:17;:54;15716:34;15696:17;:54;15774:34;15754:17;:54;15832:34;15812:17;:54;15890:34;15870:17;:54;15948:34;15928:17;:54;16006:34;15986:17;:54;16064:34;16044:17;:54;16122:34;16102:17;:54;16180:34;16160:17;:54;16238:34;16218:17;:54;16296:34;16276:17;:54;16354:34;16334:17;:54;16412:34;16392:17;:54;16470:34;16450:17;:54;16528:34;16508:17;:54;16586:34;16566:17;:54;16644:34;16624:17;:54;16702:34;16682:17;:54;16760:34;16740:17;:54;16818:34;16798:17;:54;16876:34;;16869:3;16856:17;;57247:311;57319:6;57327;57369:9;57442;57495;1656:62;57343:2;:19;57339:100;;;57387:18;57381:2;:25;57409:1;57381:29;57369:41;;57421:1;57415:7;;;;;;;;;;;57433:1;57427:7;;;;;;;;;;;57339:100;57454:37;297:7;57463:15;;57480:10;57463:2;57487;57480:6;:10::i;:::-;57454:8;:37::i;:::-;57442:49;297:7;57507:14;;;;-1:-1:-1;57247:311:10;-1:-1:-1;;;;;;57247:311:10:o;56471:363::-;56539:7;56548;56734:9;56767;-1:-1:-1;;;56565:2:10;:13;;:30;;;;;-1:-1:-1;;;56582:2:10;:13;;56565:30;56561:51;;;56605:2;56609;56597:15;;;;;;56561:51;-1:-1:-1;;;56620:2:10;:12;56616:55;;;56659:2;-1:-1:-1;;;56643:2:10;:12;56642:19;;;;;;;;-1:-1:-1;;;56634:37:10;;;;;;56616:55;-1:-1:-1;;;56679:2:10;:12;56675:55;;;-1:-1:-1;;;56727:2:10;-1:-1:-1;;;56711:2:10;:12;56710:19;;;;;;;;56693:37;;;;;;56675:55;56751:2;56746;:7;:17;;56761:2;56746:17;;;56756:2;56746:17;56734:29;-1:-1:-1;56779:22:10;-1:-1:-1;;;56734:29:10;56789:11;;56779:22;56767:34;;56813:7;;;;;;;56822;;;;;56471:363;-1:-1:-1;;;;56471:363:10:o;45508:161::-;45564:7;1259:36;45581:25;;45577:53;;45615:15;45627:2;45615:11;:15::i;:::-;45608:22;;;;45577:53;45663:2;45642:17;45641:24;;;;;;;;;45508:161;-1:-1:-1;;45508:161:10:o;45177:257::-;45232:7;1259:36;45249:25;;45245:53;;45283:15;45295:2;45283:11;:15::i;45245:53::-;1431:36;45306:25;;45302:53;;45340:15;45352:2;45340:11;:15::i;45302:53::-;1517:36;45363:25;;45359:53;;45397:15;45409:2;45397:11;:15::i;51375:4429::-;51431:7;51457:2;51431:7;-1:-1:-1;;;51489:7:10;;;51488:19;;-1:-1:-1;51523:44:10;51518:49;;51511:56;-1:-1:-1;;;51619:7:10;;;51618:19;;-1:-1:-1;51653:44:10;51648:49;;51641:56;-1:-1:-1;;;51749:7:10;;;51748:19;;-1:-1:-1;51783:44:10;51778:49;;51771:56;-1:-1:-1;;;51879:7:10;;;51878:19;;-1:-1:-1;51913:44:10;51908:49;;51901:56;-1:-1:-1;;;52009:7:10;;;52008:19;;-1:-1:-1;52043:44:10;52038:49;;52031:56;-1:-1:-1;;;52139:7:10;;;52138:19;;-1:-1:-1;52173:44:10;52168:49;;52161:56;-1:-1:-1;;;52269:7:10;;;52268:19;;-1:-1:-1;52303:44:10;52298:49;;52291:56;-1:-1:-1;;;52399:7:10;;;52398:19;;-1:-1:-1;52433:44:10;52428:49;;52421:56;-1:-1:-1;;;52529:7:10;;;52528:19;;-1:-1:-1;52563:44:10;52558:49;;52551:56;-1:-1:-1;;;52659:7:10;;;52658:19;;-1:-1:-1;52693:44:10;52688:49;;52681:56;-1:-1:-1;;;52789:7:10;;;52788:19;;-1:-1:-1;52823:44:10;52818:49;;52811:56;-1:-1:-1;;;52919:7:10;;;52918:19;;-1:-1:-1;52953:44:10;52948:49;;52941:56;-1:-1:-1;;;53049:7:10;;;53048:19;;-1:-1:-1;53083:44:10;53078:49;;53071:56;-1:-1:-1;;;53179:7:10;;;53178:19;;-1:-1:-1;53213:44:10;53208:49;;53201:56;-1:-1:-1;;;53309:7:10;;;53308:19;;-1:-1:-1;53343:44:10;53338:49;;53331:56;-1:-1:-1;;;53439:7:10;;;53438:19;;-1:-1:-1;53473:44:10;53468:49;;53461:56;-1:-1:-1;;;53569:7:10;;;53568:19;;-1:-1:-1;53603:44:10;53598:49;;53591:56;-1:-1:-1;;;53699:7:10;;;53698:19;;-1:-1:-1;53733:44:10;53728:49;;53721:56;-1:-1:-1;;;53829:7:10;;;53828:19;;-1:-1:-1;53863:44:10;53858:49;;53851:56;-1:-1:-1;;;53959:7:10;;;53958:19;;-1:-1:-1;53993:44:10;53988:49;;53981:56;-1:-1:-1;;;54089:7:10;;;54088:19;;-1:-1:-1;54123:44:10;54118:49;;54111:56;-1:-1:-1;;;54219:7:10;;;54218:19;;-1:-1:-1;54253:44:10;54248:49;;54241:56;-1:-1:-1;;;54349:7:10;;;54348:19;;-1:-1:-1;54383:44:10;54378:49;;54371:56;-1:-1:-1;;;54479:7:10;;;54478:19;;-1:-1:-1;54513:44:10;54508:49;;54501:56;-1:-1:-1;;;54609:7:10;;;54608:19;;-1:-1:-1;54643:44:10;54638:49;;54631:56;-1:-1:-1;;;54739:7:10;;;54738:19;;-1:-1:-1;54773:44:10;54768:49;;54761:56;-1:-1:-1;;;54869:7:10;;;54868:19;;-1:-1:-1;54903:44:10;54898:49;;54891:56;-1:-1:-1;;;54999:7:10;;;54998:19;;-1:-1:-1;55033:44:10;55028:49;;55021:56;-1:-1:-1;;;55129:7:10;;;55128:19;;-1:-1:-1;55163:44:10;55158:49;;55151:56;-1:-1:-1;;;55259:7:10;;;55258:19;;-1:-1:-1;55293:44:10;55288:49;;55281:56;-1:-1:-1;;;55389:7:10;;;55388:19;;-1:-1:-1;55423:44:10;55418:49;;55411:56;-1:-1:-1;;;55519:7:10;;;55518:19;;-1:-1:-1;55553:44:10;55548:49;;55541:56;-1:-1:-1;;;55694:2:10;55657:34;55541:56;55651:40;:45;:55;;51375:4429;-1:-1:-1;;;;51375:4429:10:o;45837:4454::-;45893:7;45919:2;-1:-1:-1;;;45940:12:10;;;45956:34;45939:51;;46068:7;;;46067:19;;-1:-1:-1;46102:44:10;46097:49;;46090:56;-1:-1:-1;;;46198:7:10;;;46197:19;;-1:-1:-1;46232:44:10;46227:49;;46220:56;;-1:-1:-1;;;46328:7:10;;;46327:19;;-1:-1:-1;46362:44:10;46357:49;;46350:56;-1:-1:-1;;;46458:7:10;;;46457:19;;-1:-1:-1;46492:44:10;46487:49;;46480:56;;-1:-1:-1;;;46588:7:10;;;46587:19;;-1:-1:-1;46622:44:10;46617:49;;46610:56;-1:-1:-1;;;46718:7:10;;;46717:19;;-1:-1:-1;46752:44:10;46747:49;;46740:56;;-1:-1:-1;;;46848:7:10;;;46847:19;;-1:-1:-1;46882:44:10;46877:49;;46870:56;-1:-1:-1;;;46978:7:10;;;46977:19;;-1:-1:-1;47012:44:10;47007:49;;47000:56;;-1:-1:-1;;;47108:7:10;;;47107:19;;-1:-1:-1;47142:44:10;47137:49;;47130:56;-1:-1:-1;;;47238:7:10;;;47237:19;;-1:-1:-1;47272:44:10;47267:49;;47260:56;;-1:-1:-1;;;47368:7:10;;;47367:19;;-1:-1:-1;47402:44:10;47397:49;;47390:56;-1:-1:-1;;;47498:7:10;;;47497:19;;-1:-1:-1;47532:44:10;47527:49;;47520:56;;-1:-1:-1;;;47628:7:10;;;47627:19;;-1:-1:-1;47662:44:10;47657:49;;47650:56;-1:-1:-1;;;47758:7:10;;;47757:19;;-1:-1:-1;47792:44:10;47787:49;;47780:56;;-1:-1:-1;;;47888:7:10;;;47887:19;;-1:-1:-1;47922:44:10;47917:49;;47910:56;-1:-1:-1;;;48018:7:10;;;48017:19;;-1:-1:-1;48052:44:10;48047:49;;48040:56;;-1:-1:-1;;;48148:7:10;;;48147:19;;-1:-1:-1;48182:44:10;48177:49;;48170:56;-1:-1:-1;;;48278:7:10;;;48277:19;;-1:-1:-1;48312:44:10;48307:49;;48300:56;;-1:-1:-1;;;48408:7:10;;;48407:19;;-1:-1:-1;48442:44:10;48437:49;;48430:56;-1:-1:-1;;;48538:7:10;;;48537:19;;-1:-1:-1;48572:44:10;48567:49;;48560:56;;-1:-1:-1;;;48668:7:10;;;48667:19;;-1:-1:-1;48702:44:10;48697:49;;48690:56;-1:-1:-1;;;48798:7:10;;;48797:19;;-1:-1:-1;48832:44:10;48827:49;;48820:56;;-1:-1:-1;;;48928:7:10;;;48927:19;;-1:-1:-1;48962:44:10;48957:49;;48950:56;-1:-1:-1;;;49058:7:10;;;49057:19;;-1:-1:-1;49092:44:10;49087:49;;49080:56;;-1:-1:-1;;;49188:7:10;;;49187:19;;-1:-1:-1;49222:44:10;49217:49;;49210:56;-1:-1:-1;;;49318:7:10;;;49317:19;;-1:-1:-1;49352:44:10;49347:49;;49340:56;;-1:-1:-1;;;49448:7:10;;;49447:19;;-1:-1:-1;49482:44:10;49477:49;;49470:56;-1:-1:-1;;;49578:7:10;;;49577:19;;-1:-1:-1;49612:44:10;49607:49;;49600:56;;-1:-1:-1;;;49708:7:10;;;49707:19;;-1:-1:-1;49742:44:10;49737:49;;49730:56;-1:-1:-1;;;49838:7:10;;;49837:19;;-1:-1:-1;49872:44:10;49867:49;;49860:56;;-1:-1:-1;;;49968:7:10;;;49967:19;;-1:-1:-1;50002:44:10;49997:49;;49990:56;-1:-1:-1;;;50098:7:10;;;50097:19;;-1:-1:-1;50132:44:10;50127:49;;50120:56;;50236:34;50120:56;50230:40;;;45837:4454;-1:-1:-1;;;;45837:4454:10:o;50432:362::-;50488:7;-1:-1:-1;;50513:28:10;;1345:36;50557:23;;;;50596;;;;50662:1;50658:5;;50635:29;50488:7;;50680:12;50557:23;50680:15;;;;;;;;;;-1:-1:-1;50711:12:10;50728:1;50724:5;;50711:19;;;;;;;;;1345:36;50761:5;;;50756:11;50747:5;;;;50742:11;:25;;;;50741:49;;;-1:-1:-1;;;;50432:362:10:o;50935:270::-;50991:7;51004:10;51075;1034:35;51017:2;:20;:54;;51057:14;51068:2;51057:10;:14::i;:::-;51017:54;;;51040:14;51051:2;51040:10;:14::i;:::-;51004:67;;1034:35;51088:2;:20;:54;;51128:14;51139:2;51128:10;:14::i;:::-;51088:54;;;51111:14;51122:2;51111:10;:14::i;:::-;51075:67;;51199:2;-1:-1:-1;;;51182:2:10;-1:-1:-1;;;51166:2:10;:12;51165:19;;;;;;;;51160:2;51155;:7;:29;51154:41;51153:48;;;;;" - }, - "methodIdentifiers": { - "accurateWeightsTest(uint256,uint256)": "e4883121", - "balancedWeights(uint256,uint256,uint256,uint256,uint256)": "a11aa1b4", - "calculateCrossConnectorReturn(uint256,uint32,uint256,uint32,uint256)": "65098bb3", - "calculateCrossReserveReturn(uint256,uint32,uint256,uint32,uint256)": "79c1b450", - "calculateFundCost(uint256,uint256,uint32,uint256)": "1da6bbfb", - "calculateLiquidateReturn(uint256,uint256,uint32,uint256)": "abfd231d", - "calculatePurchaseReturn(uint256,uint256,uint32,uint256)": "29a00e7c", - "calculateSaleReturn(uint256,uint256,uint32,uint256)": "49f9b0f7", - "crossReserveRate(uint256,uint32,uint256,uint32,uint256)": "9d114108", - "crossReserveTargetAmount(uint256,uint32,uint256,uint32,uint256)": "94491fab", - "findPositionInMaxExpArrayTest(uint256)": "a25a34b1", - "floorLog2Test(uint256)": "ce782e08", - "fundCost(uint256,uint256,uint32,uint256)": "ebbb2158", - "fundSupplyAmount(uint256,uint256,uint32,uint256)": "2f55bdb5", - "generalExpTest(uint256,uint8)": "6cab5055", - "generalLogTest(uint256)": "4982d52d", - "init()": "e1c7392a", - "liquidateRate(uint256,uint256,uint32,uint256)": "35b49af4", - "liquidateReserveAmount(uint256,uint256,uint32,uint256)": "8074590a", - "normalizedWeightsTest(uint256,uint256)": "3e75c6ca", - "optimalExpTest(uint256)": "acdee8cb", - "optimalLogTest(uint256)": "3e8a38ab", - "powerTest(uint256,uint256,uint32,uint32)": "8c5ce82a", - "purchaseRate(uint256,uint256,uint32,uint256)": "48d73fed", - "purchaseTargetAmount(uint256,uint256,uint32,uint256)": "f3250fe2", - "roundDivTest(uint256,uint256)": "47d0b686", - "saleRate(uint256,uint256,uint32,uint256)": "f732f1c9", - "saleTargetAmount(uint256,uint256,uint32,uint256)": "76cf0b56", - "version()": "54fd4d50" - } - }, - "userdoc": { - "methods": {} - } - } - }, - "solidity/contracts/helpers/TestSovrynSwapNetwork.sol": { - "ConverterV27OrLowerWithFallback": { - "abi": [ - { - "payable": true, - "stateMutability": "payable", - "type": "fallback" - } - ], - "devdoc": { - "methods": {} - }, - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "6080604052348015600f57600080fd5b50603280601d6000396000f30060806040520000a165627a7a7230582048f6102a582c8f9fff1f9bbfa7670e249983982b4737248649cc5a0f07e16faf0029", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x32 DUP1 PUSH1 0x1D PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE STOP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 0x48 0xf6 LT 0x2a PC 0x2c DUP16 SWAP16 SELFDESTRUCT 0x1f SWAP12 0xbf 0xa7 PUSH8 0xE249983982B4737 0x24 DUP7 0x49 0xcc GAS 0xf SMOD 0xe1 PUSH16 0xAF002900000000000000000000000000 ", - "sourceMap": "798:76:41:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;798:76:41;;;;;;;" - }, - "deployedBytecode": { - "linkReferences": {}, - "object": "60806040520000a165627a7a7230582048f6102a582c8f9fff1f9bbfa7670e249983982b4737248649cc5a0f07e16faf0029", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE STOP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 0x48 0xf6 LT 0x2a PC 0x2c DUP16 SWAP16 SELFDESTRUCT 0x1f SWAP12 0xbf 0xa7 PUSH8 0xE249983982B4737 0x24 DUP7 0x49 0xcc GAS 0xf SMOD 0xe1 PUSH16 0xAF002900000000000000000000000000 ", - "sourceMap": "798:76:41:-;;;" - }, - "methodIdentifiers": {} - }, - "userdoc": { - "methods": {} - } - }, - "ConverterV27OrLowerWithoutFallback": { - "abi": [], - "devdoc": { - "methods": {} - }, - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "6080604052348015600f57600080fd5b50603580601d6000396000f3006080604052600080fd00a165627a7a723058201fabf330eaeac588cf9f8d7d48ed60d750a559be392a90196066ab5c431e38920029", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x35 DUP1 PUSH1 0x1D PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 0x1f 0xab RETURN ADDRESS 0xea 0xea 0xc5 DUP9 0xcf SWAP16 DUP14 PUSH30 0x48ED60D750A559BE392A90196066AB5C431E389200290000000000000000 ", - "sourceMap": "750:46:41:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;750:46:41;;;;;;;" - }, - "deployedBytecode": { - "linkReferences": {}, - "object": "6080604052600080fd00a165627a7a723058201fabf330eaeac588cf9f8d7d48ed60d750a559be392a90196066ab5c431e38920029", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 0x1f 0xab RETURN ADDRESS 0xea 0xea 0xc5 DUP9 0xcf SWAP16 DUP14 PUSH30 0x48ED60D750A559BE392A90196066AB5C431E389200290000000000000000 ", - "sourceMap": "750:46:41:-;;;;;" - }, - "methodIdentifiers": {} - }, - "userdoc": { - "methods": {} - } - }, - "ConverterV28OrHigherWithFallback": { - "abi": [ - { - "constant": true, - "inputs": [], - "name": "isV28OrHigher", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "pure", - "type": "function" - }, - { - "payable": true, - "stateMutability": "payable", - "type": "fallback" - } - ], - "devdoc": { - "methods": {} - }, - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "6080604052348015600f57600080fd5b50609a8061001e6000396000f300608060405260043610603e5763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663d260529c81146043575b600080fd5b348015604e57600080fd5b5060556069565b604080519115158252519081900360200190f35b6001905600a165627a7a72305820a8cebff575d5dd85e4baca0197b3aaad5425779935ce6638666d078cc82efd820029", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x9A DUP1 PUSH2 0x1E PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH1 0x3E JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0xD260529C DUP2 EQ PUSH1 0x43 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH1 0x4E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x55 PUSH1 0x69 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH1 0x1 SWAP1 JUMP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 0xa8 0xce 0xbf 0xf5 PUSH22 0xD5DD85E4BACA0197B3AAAD5425779935CE6638666D07 DUP13 0xc8 0x2e REVERT DUP3 STOP 0x29 ", - "sourceMap": "999:165:41:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;999:165:41;;;;;;;" - }, - "deployedBytecode": { - "linkReferences": {}, - "object": "608060405260043610603e5763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663d260529c81146043575b600080fd5b348015604e57600080fd5b5060556069565b604080519115158252519081900360200190f35b6001905600a165627a7a72305820a8cebff575d5dd85e4baca0197b3aaad5425779935ce6638666d078cc82efd820029", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH1 0x3E JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0xD260529C DUP2 EQ PUSH1 0x43 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH1 0x4E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x55 PUSH1 0x69 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH1 0x1 SWAP1 JUMP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 0xa8 0xce 0xbf 0xf5 PUSH22 0xD5DD85E4BACA0197B3AAAD5425779935CE6638666D07 DUP13 0xc8 0x2e REVERT DUP3 STOP 0x29 ", - "sourceMap": "999:165:41:-;;;;;;;;;;;;;;;;;;;;1150:8;;;1044:71;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1044:71:41;;;;;;;;;;;;;;;;;;;;;;;1107:4;1044:71;:::o" - }, - "methodIdentifiers": { - "isV28OrHigher()": "d260529c" - } - }, - "userdoc": { - "methods": {} - } - }, - "ConverterV28OrHigherWithoutFallback": { - "abi": [ - { - "constant": true, - "inputs": [], - "name": "isV28OrHigher", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "pure", - "type": "function" - } - ], - "devdoc": { - "methods": {} - }, - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "6080604052348015600f57600080fd5b50609a8061001e6000396000f300608060405260043610603e5763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663d260529c81146043575b600080fd5b348015604e57600080fd5b5060556069565b604080519115158252519081900360200190f35b6001905600a165627a7a72305820c1ca1bff38144be6e62222d73e6e0a0a0a89c432c118c1f28a2534952344a97d0029", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x9A DUP1 PUSH2 0x1E PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH1 0x3E JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0xD260529C DUP2 EQ PUSH1 0x43 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH1 0x4E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x55 PUSH1 0x69 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH1 0x1 SWAP1 JUMP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 0xc1 0xca SHL SELFDESTRUCT CODESIZE EQ 0x4b 0xe6 0xe6 0x22 0x22 0xd7 RETURNDATACOPY PUSH15 0xA0A0A89C432C118C1F28A25349523 DIFFICULTY 0xa9 PUSH30 0x2900000000000000000000000000000000000000000000000000000000 ", - "sourceMap": "876:121:41:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;876:121:41;;;;;;;" - }, - "deployedBytecode": { - "linkReferences": {}, - "object": "608060405260043610603e5763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663d260529c81146043575b600080fd5b348015604e57600080fd5b5060556069565b604080519115158252519081900360200190f35b6001905600a165627a7a72305820c1ca1bff38144be6e62222d73e6e0a0a0a89c432c118c1f28a2534952344a97d0029", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH1 0x3E JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0xD260529C DUP2 EQ PUSH1 0x43 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH1 0x4E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x55 PUSH1 0x69 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH1 0x1 SWAP1 JUMP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 0xc1 0xca SHL SELFDESTRUCT CODESIZE EQ 0x4b 0xe6 0xe6 0x22 0x22 0xd7 RETURNDATACOPY PUSH15 0xA0A0A89C432C118C1F28A25349523 DIFFICULTY 0xa9 PUSH30 0x2900000000000000000000000000000000000000000000000000000000 ", - "sourceMap": "876:121:41:-;;;;;;;;;;;;;;;;;;;;;;;924:71;;8:9:-1;5:2;;;30:1;27;20:12;5:2;924:71:41;;;;;;;;;;;;;;;;;;;;;;;987:4;924:71;:::o" - }, - "methodIdentifiers": { - "isV28OrHigher()": "d260529c" - } - }, - "userdoc": { - "methods": {} - } - }, - "NewConverter": { - "abi": [ - { - "constant": true, - "inputs": [ - { - "name": "_sourceToken", - "type": "address" - }, - { - "name": "_targetToken", - "type": "address" - }, - { - "name": "_amount", - "type": "uint256" - } - ], - "name": "getReturn", - "outputs": [ - { - "name": "", - "type": "uint256" - }, - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "name": "_amount", - "type": "uint256" - }, - { - "name": "_fee", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor" - } - ], - "devdoc": { - "methods": {} - }, - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "608060405234801561001057600080fd5b5060405160408061010a83398101604052805160209091015160009190915560015560ca806100406000396000f300608060405260043610603e5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631e1401f881146043575b600080fd5b348015604e57600080fd5b50607773ffffffffffffffffffffffffffffffffffffffff600435811690602435166044356090565b6040805192835260208301919091528051918290030190f35b6000546001549350939150505600a165627a7a72305820f59a5f0499e84fadcd06e28530c74fe29488cdbfd8ab3b949df60f2e7c4958fe0029", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH1 0x40 DUP1 PUSH2 0x10A DUP4 CODECOPY DUP2 ADD PUSH1 0x40 MSTORE DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD MLOAD PUSH1 0x0 SWAP2 SWAP1 SWAP2 SSTORE PUSH1 0x1 SSTORE PUSH1 0xCA DUP1 PUSH2 0x40 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH1 0x3E JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x1E1401F8 DUP2 EQ PUSH1 0x43 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH1 0x4E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x77 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH1 0x90 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB ADD SWAP1 RETURN JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 SLOAD SWAP4 POP SWAP4 SWAP2 POP POP JUMP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 0xf5 SWAP11 0x5f DIV SWAP10 0xe8 0x4f 0xad 0xcd MOD 0xe2 DUP6 ADDRESS 0xc7 0x4f 0xe2 SWAP5 DUP9 0xcd 0xbf 0xd8 0xab EXTCODESIZE SWAP5 SWAP14 0xf6 0xf 0x2e PUSH29 0x4958FE0029000000000000000000000000000000000000000000000000 ", - "sourceMap": "373:375:41:-;;;446:88;8:9:-1;5:2;;;30:1;27;20:12;5:2;446:88:41;;;;;;;;;;;;;;;;;;;500:6;:16;;;;520:3;:10;373:375;;;;;;" - }, - "deployedBytecode": { - "linkReferences": {}, - "object": "608060405260043610603e5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631e1401f881146043575b600080fd5b348015604e57600080fd5b50607773ffffffffffffffffffffffffffffffffffffffff600435811690602435166044356090565b6040805192835260208301919091528051918290030190f35b6000546001549350939150505600a165627a7a72305820f59a5f0499e84fadcd06e28530c74fe29488cdbfd8ab3b949df60f2e7c4958fe0029", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH1 0x3E JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x1E1401F8 DUP2 EQ PUSH1 0x43 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH1 0x4E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x77 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH1 0x90 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB ADD SWAP1 RETURN JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 SLOAD SWAP4 POP SWAP4 SWAP2 POP POP JUMP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 0xf5 SWAP11 0x5f DIV SWAP10 0xe8 0x4f 0xad 0xcd MOD 0xe2 DUP6 ADDRESS 0xc7 0x4f 0xe2 SWAP5 DUP9 0xcd 0xbf 0xd8 0xab EXTCODESIZE SWAP5 SWAP14 0xf6 0xf 0x2e PUSH29 0x4958FE0029000000000000000000000000000000000000000000000000 ", - "sourceMap": "373:375:41:-;;;;;;;;;;;;;;;;;;;;;;;537:209;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;537:209:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;657:7;730:6;738:3;;537:209;;;;;;:::o" - }, - "methodIdentifiers": { - "getReturn(address,address,uint256)": "1e1401f8" - } - }, - "userdoc": { - "methods": {} - } - }, - "OldConverter": { - "abi": [ - { - "constant": true, - "inputs": [ - { - "name": "_sourceToken", - "type": "address" - }, - { - "name": "_targetToken", - "type": "address" - }, - { - "name": "_amount", - "type": "uint256" - } - ], - "name": "getReturn", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "name": "_amount", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor" - } - ], - "devdoc": { - "methods": {} - }, - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "608060405234801561001057600080fd5b506040516020806100f2833981016040525160005560bf806100336000396000f300608060405260043610603e5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631e1401f881146043575b600080fd5b348015604e57600080fd5b50607773ffffffffffffffffffffffffffffffffffffffff600435811690602435166044356089565b60408051918252519081900360200190f35b60005493925050505600a165627a7a72305820c6573e4c7b6ab6a4aec09194599f94bc00b98e755e2dc8bad25f2a0a020244fc0029", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP1 PUSH2 0xF2 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 MSTORE MLOAD PUSH1 0x0 SSTORE PUSH1 0xBF DUP1 PUSH2 0x33 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH1 0x3E JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x1E1401F8 DUP2 EQ PUSH1 0x43 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH1 0x4E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x77 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH1 0x89 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH1 0x0 SLOAD SWAP4 SWAP3 POP POP POP JUMP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 0xc6 JUMPI RETURNDATACOPY 0x4c PUSH28 0x6AB6A4AEC09194599F94BC00B98E755E2DC8BAD25F2A0A020244FC00 0x29 ", - "sourceMap": "60:311:41:-;;;111:60;8:9:-1;5:2;;;30:1;27;20:12;5:2;111:60:41;;;;;;;;;;;;;151:6;:16;60:311;;;;;;" - }, - "deployedBytecode": { - "linkReferences": {}, - "object": "608060405260043610603e5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631e1401f881146043575b600080fd5b348015604e57600080fd5b50607773ffffffffffffffffffffffffffffffffffffffff600435811690602435166044356089565b60408051918252519081900360200190f35b60005493925050505600a165627a7a72305820c6573e4c7b6ab6a4aec09194599f94bc00b98e755e2dc8bad25f2a0a020244fc0029", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH1 0x3E JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x1E1401F8 DUP2 EQ PUSH1 0x43 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH1 0x4E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x77 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH1 0x89 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH1 0x0 SLOAD SWAP4 SWAP3 POP POP POP JUMP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 0xc6 JUMPI RETURNDATACOPY 0x4c PUSH28 0x6AB6A4AEC09194599F94BC00B98E755E2DC8BAD25F2A0A020244FC00 0x29 ", - "sourceMap": "60:311:41:-;;;;;;;;;;;;;;;;;;;;;;;174:195;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;174:195:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;294:7;358:6;174:195;;;;;:::o" - }, - "methodIdentifiers": { - "getReturn(address,address,uint256)": "1e1401f8" - } - }, - "userdoc": { - "methods": {} - } - }, - "TestSovrynSwapNetwork": { - "abi": [ - { - "constant": false, - "inputs": [ - { - "name": "_onlyOwnerCanUpdateRegistry", - "type": "bool" - } - ], - "name": "restrictRegistryUpdate", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_token", - "type": "address" - }, - { - "name": "_register", - "type": "bool" - } - ], - "name": "registerEtherToken", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_converter", - "type": "address" - } - ], - "name": "isV28OrHigherConverterExternal", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_path", - "type": "address[]" - }, - { - "name": "_amount", - "type": "uint256" - } - ], - "name": "getReturnByPath", - "outputs": [ - { - "name": "", - "type": "uint256" - }, - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_path", - "type": "address[]" - }, - { - "name": "_amount", - "type": "uint256" - }, - { - "name": "_minReturn", - "type": "uint256" - }, - { - "name": "_beneficiary", - "type": "address" - }, - { - "name": "_affiliateAccount", - "type": "address" - }, - { - "name": "_affiliateFee", - "type": "uint256" - } - ], - "name": "claimAndConvertFor2", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "onlyOwnerCanUpdateRegistry", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "updateRegistry", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_path", - "type": "address[]" - }, - { - "name": "_amount", - "type": "uint256" - }, - { - "name": "_minReturn", - "type": "uint256" - }, - { - "name": "_affiliateAccount", - "type": "address" - }, - { - "name": "_affiliateFee", - "type": "uint256" - } - ], - "name": "convert2", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": true, - "stateMutability": "payable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "maxAffiliateFee", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_token", - "type": "address" - }, - { - "name": "_to", - "type": "address" - }, - { - "name": "_amount", - "type": "uint256" - } - ], - "name": "withdrawTokens", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "prevRegistry", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getReturnNew", - "outputs": [ - { - "name": "", - "type": "uint256" - }, - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "acceptOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "registry", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_path", - "type": "address[]" - }, - { - "name": "_amount", - "type": "uint256" - } - ], - "name": "rateByPath", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "", - "type": "address" - } - ], - "name": "etherTokens", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_path", - "type": "address[]" - }, - { - "name": "_sovrynSwapX", - "type": "address" - }, - { - "name": "_conversionId", - "type": "uint256" - }, - { - "name": "_minReturn", - "type": "uint256" - }, - { - "name": "_beneficiary", - "type": "address" - } - ], - "name": "completeXConversion", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "owner", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getReturnOld", - "outputs": [ - { - "name": "", - "type": "uint256" - }, - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_path", - "type": "address[]" - }, - { - "name": "_amount", - "type": "uint256" - }, - { - "name": "_minReturn", - "type": "uint256" - }, - { - "name": "_beneficiary", - "type": "address" - }, - { - "name": "_affiliateAccount", - "type": "address" - }, - { - "name": "_affiliateFee", - "type": "uint256" - } - ], - "name": "convertFor2", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": true, - "stateMutability": "payable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_path", - "type": "address[]" - }, - { - "name": "_amount", - "type": "uint256" - }, - { - "name": "_minReturn", - "type": "uint256" - }, - { - "name": "_beneficiary", - "type": "address" - } - ], - "name": "claimAndConvertFor", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "restoreRegistry", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_path", - "type": "address[]" - }, - { - "name": "_amount", - "type": "uint256" - }, - { - "name": "_minReturn", - "type": "uint256" - }, - { - "name": "_beneficiary", - "type": "address" - }, - { - "name": "_affiliateAccount", - "type": "address" - }, - { - "name": "_affiliateFee", - "type": "uint256" - } - ], - "name": "convertByPath", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": true, - "stateMutability": "payable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_path", - "type": "address[]" - }, - { - "name": "_amount", - "type": "uint256" - }, - { - "name": "_minReturn", - "type": "uint256" - }, - { - "name": "_targetBlockchain", - "type": "bytes32" - }, - { - "name": "_targetAccount", - "type": "bytes32" - }, - { - "name": "_conversionId", - "type": "uint256" - } - ], - "name": "xConvert", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": true, - "stateMutability": "payable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_path", - "type": "address[]" - }, - { - "name": "_amount", - "type": "uint256" - }, - { - "name": "_minReturn", - "type": "uint256" - } - ], - "name": "claimAndConvert", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_path", - "type": "address[]" - }, - { - "name": "_amount", - "type": "uint256" - }, - { - "name": "_minReturn", - "type": "uint256" - }, - { - "name": "_beneficiary", - "type": "address" - } - ], - "name": "convertFor", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": true, - "stateMutability": "payable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_path", - "type": "address[]" - }, - { - "name": "_amount", - "type": "uint256" - }, - { - "name": "_minReturn", - "type": "uint256" - }, - { - "name": "_targetBlockchain", - "type": "bytes32" - }, - { - "name": "_targetAccount", - "type": "bytes32" - }, - { - "name": "_conversionId", - "type": "uint256" - }, - { - "name": "_affiliateAccount", - "type": "address" - }, - { - "name": "_affiliateFee", - "type": "uint256" - } - ], - "name": "xConvert2", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": true, - "stateMutability": "payable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "newOwner", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_sourceToken", - "type": "address" - }, - { - "name": "_targetToken", - "type": "address" - } - ], - "name": "conversionPath", - "outputs": [ - { - "name": "", - "type": "address[]" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_path", - "type": "address[]" - }, - { - "name": "_amount", - "type": "uint256" - }, - { - "name": "_minReturn", - "type": "uint256" - }, - { - "name": "_affiliateAccount", - "type": "address" - }, - { - "name": "_affiliateFee", - "type": "uint256" - } - ], - "name": "claimAndConvert2", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_path", - "type": "address[]" - }, - { - "name": "_amount", - "type": "uint256" - }, - { - "name": "_minReturn", - "type": "uint256" - } - ], - "name": "convert", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": true, - "stateMutability": "payable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_maxAffiliateFee", - "type": "uint256" - } - ], - "name": "setMaxAffiliateFee", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "name": "_amount", - "type": "uint256" - }, - { - "name": "_fee", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "_smartToken", - "type": "address" - }, - { - "indexed": true, - "name": "_fromToken", - "type": "address" - }, - { - "indexed": true, - "name": "_toToken", - "type": "address" - }, - { - "indexed": false, - "name": "_fromAmount", - "type": "uint256" - }, - { - "indexed": false, - "name": "_toAmount", - "type": "uint256" - }, - { - "indexed": false, - "name": "_trader", - "type": "address" - } - ], - "name": "Conversion", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "_prevOwner", - "type": "address" - }, - { - "indexed": true, - "name": "_newOwner", - "type": "address" - } - ], - "name": "OwnerUpdate", - "type": "event" - } - ], - "devdoc": { - "methods": { - "acceptOwnership()": { - "details": "used by a new owner to accept an ownership transfer" - }, - "claimAndConvert(address[],uint256,uint256)": { - "details": "deprecated, backward compatibility" - }, - "claimAndConvert2(address[],uint256,uint256,address,uint256)": { - "details": "deprecated, backward compatibility" - }, - "claimAndConvertFor(address[],uint256,uint256,address)": { - "details": "deprecated, backward compatibility" - }, - "claimAndConvertFor2(address[],uint256,uint256,address,address,uint256)": { - "details": "deprecated, backward compatibility" - }, - "completeXConversion(address[],address,uint256,uint256,address)": { - "details": "allows a user to convert a token that was sent from another blockchain into any other token on the SovrynSwapNetwork ideally this transaction is created before the previous conversion is even complete, so so the input amount isn't known at that point - the amount is actually take from the SovrynSwapX contract directly by specifying the conversion id", - "params": { - "_beneficiary": "wallet to receive the conversion result", - "_conversionId": "pre-determined unique (if non zero) id which refers to this conversion", - "_minReturn": "if the conversion results in an amount smaller than the minimum return - it is cancelled, must be nonzero", - "_path": "conversion path", - "_sovrynSwapX": "address of the SovrynSwapX contract for the source token" - }, - "return": "amount of tokens received from the conversion" - }, - "conversionPath(address,address)": { - "details": "returns the conversion path between two tokens in the network note that this method is quite expensive in terms of gas and should generally be called off-chain", - "params": { - "_sourceToken": "source token address", - "_targetToken": "target token address" - }, - "return": "conversion path between the two tokens" - }, - "convert(address[],uint256,uint256)": { - "details": "deprecated, backward compatibility" - }, - "convert2(address[],uint256,uint256,address,uint256)": { - "details": "deprecated, backward compatibility" - }, - "convertByPath(address[],uint256,uint256,address,address,uint256)": { - "details": "converts the token to any other token in the sovrynSwap network by following a predefined conversion path and transfers the result tokens to a target account affiliate account/fee can also be passed in to receive a conversion fee (on top of the liquidity provider fees) note that the network should already have been given allowance of the source token (if not ETH)", - "params": { - "_affiliateAccount": "wallet address to receive the affiliate fee or 0x0 to disable affiliate fee", - "_affiliateFee": "affiliate fee in PPM or 0 to disable affiliate fee", - "_amount": "amount to convert from, in the source token", - "_beneficiary": "account that will receive the conversion result or 0x0 to send the result to the sender account", - "_minReturn": "if the conversion results in an amount smaller than the minimum return - it is cancelled, must be greater than zero", - "_path": "conversion path, see conversion path format above" - }, - "return": "amount of tokens received from the conversion" - }, - "convertFor(address[],uint256,uint256,address)": { - "details": "deprecated, backward compatibility" - }, - "convertFor2(address[],uint256,uint256,address,address,uint256)": { - "details": "deprecated, backward compatibility" - }, - "getReturnByPath(address[],uint256)": { - "details": "deprecated, backward compatibility" - }, - "rateByPath(address[],uint256)": { - "details": "returns the expected target amount of converting a given amount on a given path note that there is no support for circular paths", - "params": { - "_amount": "amount of _path[0] tokens received from the sender", - "_path": "conversion path (see conversion path format above)" - }, - "return": "expected target amount" - }, - "registerEtherToken(address,bool)": { - "details": "allows the owner to register/unregister ether tokens", - "params": { - "_register": "true to register, false to unregister", - "_token": "ether token contract address" - } - }, - "restoreRegistry()": { - "details": "restores the previous contract-registry" - }, - "restrictRegistryUpdate(bool)": { - "details": "restricts the permission to update the contract-registry", - "params": { - "_onlyOwnerCanUpdateRegistry": "indicates whether or not permission is restricted to owner only" - } - }, - "setMaxAffiliateFee(uint256)": { - "details": "allows the owner to update the maximum affiliate-fee", - "params": { - "_maxAffiliateFee": "maximum affiliate-fee" - } - }, - "transferOwnership(address)": { - "details": "allows transferring the contract ownership the new owner still needs to accept the transfer can only be called by the contract owner", - "params": { - "_newOwner": "new contract owner" - } - }, - "updateRegistry()": { - "details": "updates to the new contract-registry" - }, - "withdrawTokens(address,address,uint256)": { - "details": "withdraws tokens held by the contract and sends them to an account can only be called by the owner", - "params": { - "_amount": "amount to withdraw", - "_to": "account to receive the new amount", - "_token": "ERC20 token contract address" - } - }, - "xConvert(address[],uint256,uint256,bytes32,bytes32,uint256)": { - "details": "converts any other token to BNT in the sovrynSwap network by following a predefined conversion path and transfers the result to an account on a different blockchain note that the network should already have been given allowance of the source token (if not ETH)", - "params": { - "_amount": "amount to convert from, in the source token", - "_conversionId": "pre-determined unique (if non zero) id which refers to this transaction", - "_minReturn": "if the conversion results in an amount smaller than the minimum return - it is cancelled, must be greater than zero", - "_path": "conversion path, see conversion path format above", - "_targetAccount": "address/account on the target blockchain to send the BNT to", - "_targetBlockchain": "blockchain BNT will be issued on" - }, - "return": "the amount of BNT received from this conversion" - }, - "xConvert2(address[],uint256,uint256,bytes32,bytes32,uint256,address,uint256)": { - "details": "converts any other token to BNT in the sovrynSwap network by following a predefined conversion path and transfers the result to an account on a different blockchain note that the network should already have been given allowance of the source token (if not ETH)", - "params": { - "_affiliateAccount": "affiliate account", - "_affiliateFee": "affiliate fee in PPM", - "_amount": "amount to convert from, in the source token", - "_conversionId": "pre-determined unique (if non zero) id which refers to this transaction", - "_minReturn": "if the conversion results in an amount smaller than the minimum return - it is cancelled, must be greater than zero", - "_path": "conversion path, see conversion path format above", - "_targetAccount": "address/account on the target blockchain to send the BNT to", - "_targetBlockchain": "blockchain BNT will be issued on" - }, - "return": "the amount of BNT received from this conversion" - } - } - }, - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "608060405260016004556175306005553480156200001c57600080fd5b5060405160408062003aa483398101604052805160209091015160008054600160a060020a0319163317905560018080620000608164010000000062000183810204565b5060028054600160a060020a03909216600160a060020a03199283168117909155600380549092161790555073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee60005260066020527fa2e5aefc6e2cbe2917a296f0fd89c5f915c487c803db1d98eccb43f14012d711805460ff1916600117905581620000e0620001fe565b90815260405190819003602001906000f08015801562000104573d6000803e3d6000fd5b5060078054600160a060020a031916600160a060020a03929092169190911790558181620001316200020e565b9182526020820152604080519182900301906000f08015801562000159573d6000803e3d6000fd5b5060088054600160a060020a031916600160a060020a0392909216919091179055506200021f9050565b600160a060020a0381161515620001fb57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b50565b60405160f280620038a883390190565b60405161010a806200399a83390190565b613679806200022f6000396000f3006080604052600436106101875763ffffffff60e060020a600035041663024c7ec7811461018c57806302ef521e146101a857806303613f39146101ce5780630c8496cc146102035780632978c10e146102735780632fe8a6ad146102fc57806349d10b6414610311578063569706eb146103265780635d732ff2146103895780635e35359e1461039e57806361cd756e146103c8578063699e7546146103f957806379ba50971461040e5780637b103999146104235780637f9c0ecd146104385780638077ccf71461048f57806389f9cc61146104b05780638da5cb5b1461052357806398e9574014610538578063ab6214ce1461054d578063b1e9932b146105b7578063b4a176d314610622578063b77d239b14610637578063c52173de146106a1578063c7ba24bc14610700578063c98fefed1461075e578063cb32564e146107bc578063d4ee1d9014610830578063d734fa1914610845578063e57738e5146108bc578063f2fde38b1461092c578063f3898a971461094d578063f3bc7d2a1461099e575b600080fd5b34801561019857600080fd5b506101a660043515156109b6565b005b3480156101b457600080fd5b506101a6600160a060020a036004351660243515156109fe565b3480156101da57600080fd5b506101ef600160a060020a0360043516610a47565b604080519115158252519081900360200190f35b34801561020f57600080fd5b506040805160206004803580820135838102808601850190965280855261025a953695939460249493850192918291850190849080828437509497505093359450610a589350505050565b6040805192835260208301919091528051918290030190f35b34801561027f57600080fd5b50604080516020600480358082013583810280860185019096528085526102ea9536959394602494938501929182918501908490808284375094975050843595505050602083013592600160a060020a03604082013581169350606082013516915060800135610a70565b60408051918252519081900360200190f35b34801561030857600080fd5b506101ef610a8b565b34801561031d57600080fd5b506101a6610aac565b604080516020600480358082013583810280860185019096528085526102ea9536959394602494938501929182918501908490808284375094975050843595505050602083013592600160a060020a036040820135169250606001359050610d2b565b34801561039557600080fd5b506102ea610d46565b3480156103aa57600080fd5b506101a6600160a060020a0360043581169060243516604435610d4c565b3480156103d457600080fd5b506103dd610d85565b60408051600160a060020a039092168252519081900360200190f35b34801561040557600080fd5b5061025a610d94565b34801561041a57600080fd5b506101a6610db9565b34801561042f57600080fd5b506103dd610e8c565b34801561044457600080fd5b50604080516020600480358082013583810280860185019096528085526102ea953695939460249493850192918291850190849080828437509497505093359450610e9b9350505050565b34801561049b57600080fd5b506101ef600160a060020a03600435166116ca565b3480156104bc57600080fd5b50604080516020600480358082013583810280860185019096528085526102ea9536959394602494938501929182918501908490808284375094975050600160a060020a0385358116965060208601359560408101359550606001351692506116df915050565b34801561052f57600080fd5b506103dd611874565b34801561054457600080fd5b5061025a611883565b604080516020600480358082013583810280860185019096528085526102ea9536959394602494938501929182918501908490808284375094975050843595505050602083013592600160a060020a036040820135811693506060820135169150608001356118a0565b3480156105c357600080fd5b50604080516020600480358082013583810280860185019096528085526102ea953695939460249493850192918291850190849080828437509497505084359550505060208301359260400135600160a060020a031691506118c69050565b34801561062e57600080fd5b506101a66118e0565b604080516020600480358082013583810280860185019096528085526102ea9536959394602494938501929182918501908490808284375094975050843595505050602083013592600160a060020a03604082013581169350606082013516915060800135611919565b604080516020600480358082013583810280860185019096528085526102ea9536959394602494938501929182918501908490808284375094975050843595505050602083013592604081013592506060810135915060800135611b0d565b34801561070c57600080fd5b50604080516020600480358082013583810280860185019096528085526102ea95369593946024949385019291829185019084908082843750949750508435955050506020909201359150611b209050565b604080516020600480358082013583810280860185019096528085526102ea953695939460249493850192918291850190849080828437509497505084359550505060208301359260400135600160a060020a031691506118c69050565b604080516020600480358082013583810280860185019096528085526102ea95369593946024949385019291829185019084908082843750949750508435955050506020830135926040810135925060608101359150608081013590600160a060020a0360a0820135169060c00135611b3a565b34801561083c57600080fd5b506103dd611cd8565b34801561085157600080fd5b5061086c600160a060020a0360043581169060243516611ce7565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156108a8578181015183820152602001610890565b505050509050019250505060405180910390f35b3480156108c857600080fd5b50604080516020600480358082013583810280860185019096528085526102ea9536959394602494938501929182918501908490808284375094975050843595505050602083013592600160a060020a036040820135169250606001359050610d2b565b34801561093857600080fd5b506101a6600160a060020a0360043516611e18565b604080516020600480358082013583810280860185019096528085526102ea95369593946024949385019291829185019084908082843750949750508435955050506020909201359150611b209050565b3480156109aa57600080fd5b506101a6600435611eb5565b6109be611f1d565b60038054911515740100000000000000000000000000000000000000000274ff000000000000000000000000000000000000000019909216919091179055565b610a06611f1d565b81610a1081611f81565b82610a1a81611fe4565b5050600160a060020a03919091166000908152600660205260409020805460ff1916911515919091179055565b6000610a5282612045565b92915050565b600080610a658484610e9b565b946000945092505050565b6000610a80878787878787611919565b979650505050505050565b60035474010000000000000000000000000000000000000000900460ff1681565b60008054600160a060020a0316331480610ae1575060035474010000000000000000000000000000000000000000900460ff16155b1515610b37576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b610b607f436f6e74726163745265676973747279000000000000000000000000000000006120d6565b600254909150600160a060020a03808316911614801590610b895750600160a060020a03811615155b1515610bdf576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e56414c49445f5245474953545259000000000000000000000000604482015290519081900360640190fd5b604080517fbb34534c0000000000000000000000000000000000000000000000000000000081527f436f6e747261637452656769737472790000000000000000000000000000000060048201529051600091600160a060020a0384169163bb34534c9160248082019260209290919082900301818787803b158015610c6357600080fd5b505af1158015610c77573d6000803e3d6000fd5b505050506040513d6020811015610c8d57600080fd5b5051600160a060020a03161415610cee576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e56414c49445f5245474953545259000000000000000000000000604482015290519081900360640190fd5b6002805460038054600160a060020a0380841673ffffffffffffffffffffffffffffffffffffffff19928316179092559091169216919091179055565b6000610d3c86868660008787611919565b9695505050505050565b60055481565b610d54611f1d565b82610d5e81611f81565b82610d6881611f81565b83610d7281611fe4565b610d7d86868661216e565b505050505050565b600354600160a060020a031681565b6008546000908190610db190600160a060020a03168280806121fb565b915091509091565b600154600160a060020a03163314610e1b576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b60015460008054604051600160a060020a0393841693909116917f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91a3600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b600254600160a060020a031681565b600080600080600080600080600080600080610ed67f536f7672796e53776170466f726d756c610000000000000000000000000000006120d6565b94508c9a5060028e51118015610ef157508d51600290066001145b1515610f47576040805160e560020a62461bcd02815260206004820152601060248201527f4552525f494e56414c49445f5041544800000000000000000000000000000000604482015290519081900360640190fd5b600293505b8d518410156116b8578d60028503815181101515610f6657fe5b9060200190602002015192508d60018503815181101515610f8357fe5b9060200190602002015191508d84815181101515610f9d57fe5b90602001906020020151905081600160a060020a0316638da5cb5b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610fe757600080fd5b505af1158015610ffb573d6000803e3d6000fd5b505050506040513d602081101561101157600080fd5b5051955061101f86846122df565b925061102b86826122df565b905081600160a060020a031681600160a060020a0316141561138c57600384108061108257508d6003850381518110151561106257fe5b90602001906020020151600160a060020a031682600160a060020a031614155b156110f45781600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156110c557600080fd5b505af11580156110d9573d6000803e3d6000fd5b505050506040513d60208110156110ef57600080fd5b505198505b85600160a060020a031663d8959512846040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b15801561114f57600080fd5b505af1158015611163573d6000803e3d6000fd5b505050506040513d602081101561117957600080fd5b5051604080517f0e53aae9000000000000000000000000000000000000000000000000000000008152600160a060020a0386811660048301529151929a5090881691630e53aae99160248082019260a0929091908290030181600087803b1580156111e357600080fd5b505af11580156111f7573d6000803e3d6000fd5b505050506040513d60a081101561120d57600080fd5b50602090810151604080517ff3250fe2000000000000000000000000000000000000000000000000000000008152600481018d9052602481018c905263ffffffff83166044820152606481018f90529051919950600160a060020a0388169263f3250fe2926084808401938290030181600087803b15801561128e57600080fd5b505af11580156112a2573d6000803e3d6000fd5b505050506040513d60208110156112b857600080fd5b5051604080517f579cd3ca0000000000000000000000000000000000000000000000000000000081529051919c5061136e91620f42409161136291600160a060020a038b169163579cd3ca9160048083019260209291908290030181600087803b15801561132557600080fd5b505af1158015611339573d6000803e3d6000fd5b505050506040513d602081101561134f57600080fd5b50518e9063ffffffff9081169061234116565b9063ffffffff6123ba16565b9a8b90039a9950611385898c63ffffffff61242816565b98506116ad565b81600160a060020a031683600160a060020a0316141561169b5760038410806113e157508d600385038151811015156113c157fe5b90602001906020020151600160a060020a031682600160a060020a031614155b156114535781600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561142457600080fd5b505af1158015611438573d6000803e3d6000fd5b505050506040513d602081101561144e57600080fd5b505198505b85600160a060020a031663d8959512826040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b1580156114ae57600080fd5b505af11580156114c2573d6000803e3d6000fd5b505050506040513d60208110156114d857600080fd5b5051604080517f0e53aae9000000000000000000000000000000000000000000000000000000008152600160a060020a0384811660048301529151929a5090881691630e53aae99160248082019260a0929091908290030181600087803b15801561154257600080fd5b505af1158015611556573d6000803e3d6000fd5b505050506040513d60a081101561156c57600080fd5b50602090810151604080517f76cf0b56000000000000000000000000000000000000000000000000000000008152600481018d9052602481018c905263ffffffff83166044820152606481018f90529051919950600160a060020a038816926376cf0b56926084808401938290030181600087803b1580156115ed57600080fd5b505af1158015611601573d6000803e3d6000fd5b505050506040513d602081101561161757600080fd5b5051604080517f579cd3ca0000000000000000000000000000000000000000000000000000000081529051919c5061168491620f42409161136291600160a060020a038b169163579cd3ca9160048083019260209291908290030181600087803b15801561132557600080fd5b9a8b90039a9950611385898c63ffffffff61248516565b6116a78684838e6121fb565b909b5099505b600284019350610f4c565b50989c9b505050505050505050505050565b60066020526000908152604090205460ff1681565b60008085600160a060020a031663fc0c546a6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561172057600080fd5b505af1158015611734573d6000803e3d6000fd5b505050506040513d602081101561174a57600080fd5b50518751600160a060020a03909116908890600090811061176757fe5b60209081029091010151600160a060020a0316146117cf576040805160e560020a62461bcd02815260206004820152601860248201527f4552525f494e56414c49445f534f555243455f544f4b454e0000000000000000604482015290519081900360640190fd5b604080517faafd6b76000000000000000000000000000000000000000000000000000000008152600481018790523360248201529051600160a060020a0388169163aafd6b769160448083019260209291908290030181600087803b15801561183757600080fd5b505af115801561184b573d6000803e3d6000fd5b505050506040513d602081101561186157600080fd5b50519050610a8087828686600080611919565b600054600160a060020a031681565b6007546000908190610db190600160a060020a03168280806121fb565b6000846118ac816124e5565b6118ba888888888888611919565b98975050505050505050565b60006118d785858585600080611919565b95945050505050565b6118e8611f1d565b6003546002805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055565b60008060006060600061192a61253d565b600260045588611939816124e5565b60028c5111801561194f57508b51600290066001145b15156119a5576040805160e560020a62461bcd02815260206004820152601060248201527f4552525f494e56414c49445f5041544800000000000000000000000000000000604482015290519081900360640190fd5b6119e08c60008151811015156119b757fe5b906020019060200201518d60018151811015156119d057fe5b906020019060200201518d612597565b60009450600160a060020a0388161515611a4f578615611a4a576040805160e560020a62461bcd02815260206004820152601960248201527f4552525f494e56414c49445f414646494c494154455f46454500000000000000604482015290519081900360640190fd5b611abc565b866000108015611a6157506005548711155b1515611ab7576040805160e560020a62461bcd02815260206004820152601960248201527f4552525f494e56414c49445f414646494c494154455f46454500000000000000604482015290519081900360640190fd5b600194505b339350600160a060020a03891615611ad2578893505b611add8c858761279b565b9250611aec838c8c8b8b612bb2565b9150611af9838386613112565b5060016004559a9950505050505050505050565b6000610a80878787878787600080611b3a565b6000611b328484846000806000611919565b949350505050565b60008060008089611b4a816124e5565b8c518d906000198101908110611b5c57fe5b906020019060200201519350611b917f536f7672796e53776170580000000000000000000000000000000000000000006120d6565b9250611bbc7f424e54546f6b656e0000000000000000000000000000000000000000000000006120d6565b600160a060020a03858116911614611c1e576040805160e560020a62461bcd02815260206004820152601860248201527f4552525f494e56414c49445f5441524745545f544f4b454e0000000000000000604482015290519081900360640190fd5b611c2c8d8d8d308b8b611919565b9150611c398484846131f5565b604080517f427c0374000000000000000000000000000000000000000000000000000000008152600481018c9052602481018b905260448101849052606481018a90529051600160a060020a0385169163427c037491608480830192600092919082900301818387803b158015611caf57600080fd5b505af1158015611cc3573d6000803e3d6000fd5b50939f9e505050505050505050505050505050565b600154600160a060020a031681565b60606000611d147f436f6e76657273696f6e5061746846696e6465720000000000000000000000006120d6565b604080517fa1c421cd000000000000000000000000000000000000000000000000000000008152600160a060020a038781166004830152868116602483015291519293509083169163a1c421cd9160448082019260009290919082900301818387803b158015611d8357600080fd5b505af1158015611d97573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526020811015611dc057600080fd5b810190808051640100000000811115611dd857600080fd5b82016020810184811115611deb57600080fd5b8151856020820283011164010000000082111715611e0857600080fd5b50909550505050505b5092915050565b611e20611f1d565b600054600160a060020a0382811691161415611e86576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f53414d455f4f574e4552000000000000000000000000000000000000604482015290519081900360640190fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b611ebd611f1d565b620f4240811115611f18576040805160e560020a62461bcd02815260206004820152601960248201527f4552525f494e56414c49445f414646494c494154455f46454500000000000000604482015290519081900360640190fd5b600555565b600054600160a060020a03163314611f7f576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b565b600160a060020a0381161515611fe1576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b50565b600160a060020a038116301415611fe1576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f414444524553535f49535f53454c4600000000000000000000000000604482015290519081900360640190fd5b6000806120506135d7565b604080517f69735632384f72486967686572282900000000000000000000000000000000008152815190819003600f018120600482526024820190925260208082018051600160e060020a0316600160e060020a0319909416939093178352815191929091849188611388fa92508280156120cb5750815115155b93505b505050919050565b600254604080517fbb34534c000000000000000000000000000000000000000000000000000000008152600481018490529051600092600160a060020a03169163bb34534c91602480830192602092919082900301818787803b15801561213c57600080fd5b505af1158015612150573d6000803e3d6000fd5b505050506040513d602081101561216657600080fd5b505192915050565b604080517f7472616e7366657228616464726573732c75696e74323536290000000000000081528151908190036019018120600160a060020a03851660248301526044808301859052835180840390910181526064909201909252602081018051600160e060020a0316600160e060020a0319909316929092179091526121f69084906132bc565b505050565b6000806122066135f6565b604080517f67657452657475726e28616464726573732c616464726573732c75696e74323581527f36290000000000000000000000000000000000000000000000000000000000006020808301919091528251918290036022018220600160a060020a03808b16602485015289166044840152606480840189905284518085039091018152608490930184529082018051600160e060020a0316600160e060020a0319909216919091178152815191929184918b5afa8015156122c857600080fd5b505080516020909101519097909650945050505050565b600160a060020a03811660009081526006602052604081205460ff161515612308575080610a52565b61231183612045565b15612331575073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee610a52565b61233a8361334a565b9392505050565b6000808315156123545760009150611e11565b5082820282848281151561236457fe5b041461233a576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b600080808311612414576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f4449564944455f42595f5a45524f0000000000000000000000000000604482015290519081900360640190fd5b828481151561241f57fe5b04949350505050565b60008282018381101561233a576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b6000818310156124df576040805160e560020a62461bcd02815260206004820152600d60248201527f4552525f554e444552464c4f5700000000000000000000000000000000000000604482015290519081900360640190fd5b50900390565b60008111611fe1576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f5a45524f5f56414c5545000000000000000000000000000000000000604482015290519081900360640190fd5b600454600114611f7f576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f5245454e5452414e4359000000000000000000000000000000000000604482015290519081900360640190fd5b60008083600160a060020a0316638da5cb5b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156125d857600080fd5b505af11580156125ec573d6000803e3d6000fd5b505050506040513d602081101561260257600080fd5b5051915061260f82612045565b905060003411156126dd57348314612671576040805160e560020a62461bcd02815260206004820152601760248201527f4552525f4554485f414d4f554e545f4d49534d41544348000000000000000000604482015290519081900360640190fd5b8015156126d8576126818261334a565b600160a060020a031663d0e30db0346040518263ffffffff1660e060020a0281526004016000604051808303818588803b1580156126be57600080fd5b505af11580156126d2573d6000803e3d6000fd5b50505050505b612794565b600160a060020a03851660009081526006602052604090205460ff16156127765761270a85333086613497565b80156126d85784600160a060020a0316632e1a7d4d846040518263ffffffff1660e060020a02815260040180828152602001915050600060405180830381600087803b15801561275957600080fd5b505af115801561276d573d6000803e3d6000fd5b50505050612794565b8015612788576126d885338486613497565b61279485333086613497565b5050505050565b60608060008060008060008060006127b1613611565b8c51600290046040519080825280602002602001820160405280156127f057816020015b6127dd613611565b8152602001906001900390816127d55790505b509850600097506128207f424e54546f6b656e0000000000000000000000000000000000000000000000006120d6565b9650600095505b60018d51038610156129bb578c8660010181518110151561284457fe5b90602001906020020151945084600160a060020a0316638da5cb5b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561288e57600080fd5b505af11580156128a2573d6000803e3d6000fd5b505050506040513d60208110156128b857600080fd5b50518d519094508d90600288019081106128ce57fe5b9060200190602002015192508a80156128e5575087155b8015612902575086600160a060020a031683600160a060020a0316145b9150811561290f57600197505b60e06040519081016040528085600160a060020a0316815260200186600160a060020a031681526020018e8881518110151561294757fe5b90602001906020020151600160a060020a0316815260200184600160a060020a031681526020016000600160a060020a0316815260200161298786612045565b1515815283151560209091015289600288048151811015156129a557fe5b6020908102909101015260029590950194612827565b8860008151811015156129ca57fe5b6020908102909101810151604080820151600160a060020a0316600090815260069093529091205490915060ff1615612a40578060a0015115612a265773eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6040820152612a40565b8051612a319061334a565b600160a060020a031660408201525b885189906000198101908110612a5257fe5b60209081029091018101516060810151600160a060020a03166000908152600690925260409091205490915060ff1615612ac9578060a0015115612aaf5773eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6060820152612ac9565b8051612aba9061334a565b600160a060020a031660608201525b600095505b8851861015612ba1578886815181101515612ae557fe5b9060200190602002015190508060a0015115612b8f578060c0015115612b1057306080820152612b8a565b6001895103861415612b3057600160a060020a038c166080820152612b8a565b8886600101815181101515612b4157fe5b9060200190602002015160a0015115612b83578886600101815181101515612b6557fe5b6020908102909101015151600160a060020a03166080820152612b8a565b3060808201525b612b96565b3060808201525b600190950194612ace565b50969b9a5050505050505050505050565b600080600080612bc0613611565b6000899350600092505b8a518310156130ab578a83815181101515612be157fe5b9060200190602002015191508160a0015115612c72578215801590612c2e57508a5130908c906000198601908110612c1557fe5b9060200190602002015160800151600160a060020a0316145b8015612c555750604080830151600160a060020a031660009081526006602052205460ff16155b15612c6d57612c6d826040015183600001518661216e565b612ca8565b8160200151600160a060020a03168260400151600160a060020a0316141515612ca857612ca882604001518360000151866131f5565b8160a001511515612d6b578151604080840151606085015182517f5e5144eb000000000000000000000000000000000000000000000000000000008152600160a060020a039283166004820152908216602482015260448101889052600160648201529151921691635e5144eb916084808201926020929091908290030181600087803b158015612d3857600080fd5b505af1158015612d4c573d6000803e3d6000fd5b505050506040513d6020811015612d6257600080fd5b50519450612f08565b604080830151600160a060020a031660009081526006602052205460ff1615612e495781516040808401516060850151608086015183517fe8dc12ff000000000000000000000000000000000000000000000000000000008152600160a060020a03938416600482015291831660248301526044820189905233606483015282166084820152915192169163e8dc12ff91349160a480830192602092919082900301818588803b158015612e1e57600080fd5b505af1158015612e32573d6000803e3d6000fd5b50505050506040513d6020811015612d6257600080fd5b81516040808401516060850151608086015183517fe8dc12ff000000000000000000000000000000000000000000000000000000008152600160a060020a03938416600482015291831660248301526044820189905233606483015282166084820152915192169163e8dc12ff9160a4808201926020929091908290030181600087803b158015612ed957600080fd5b505af1158015612eed573d6000803e3d6000fd5b505050506040513d6020811015612f0357600080fd5b505194505b8160c001511561301a57612f29620f4240611362878a63ffffffff61234116565b90508160600151600160a060020a031663a9059cbb89836040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b158015612f9257600080fd5b505af1158015612fa6573d6000803e3d6000fd5b505050506040513d6020811015612fbc57600080fd5b50511515613014576040805160e560020a62461bcd02815260206004820152601760248201527f4552525f4645455f5452414e534645525f4641494c4544000000000000000000604482015290519081900360640190fd5b80850394505b8160600151600160a060020a03168260400151600160a060020a03168360200151600160a060020a03167f7154b38b5dd31bb3122436a96d4e09aba5b323ae1fd580025fab55074334c0958789336040518084815260200183815260200182600160a060020a0316600160a060020a03168152602001935050505060405180910390a4849350600190920191612bca565b88851015613103576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f52455455524e5f544f4f5f4c4f570000000000000000000000000000604482015290519081900360640190fd5b50929998505050505050505050565b61311a613611565b600084600186510381518110151561312e57fe5b602090810290910101516080810151909250600160a060020a0316301461315457612794565b506060810151600160a060020a03811660009081526006602052604090205460ff16156131ea5760a08201511561318757fe5b80600160a060020a031663205c287884866040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050600060405180830381600087803b15801561275957600080fd5b61279481848661216e565b604080517fdd62ed3e000000000000000000000000000000000000000000000000000000008152306004820152600160a060020a038481166024830152915160009286169163dd62ed3e91604480830192602092919082900301818787803b15801561326057600080fd5b505af1158015613274573d6000803e3d6000fd5b505050506040513d602081101561328a57600080fd5b50519050818110156132b65760008111156132ab576132ab8484600061354f565b6132b684848461354f565b50505050565b6132c46135d7565b602060405190810160405280600181525090506020818351602085016000875af18015156132f157600080fd5b50805115156121f6576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f5452414e534645525f4641494c454400000000000000000000000000604482015290519081900360640190fd5b60008060008084600160a060020a03166371f52bf36040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561338e57600080fd5b505af11580156133a2573d6000803e3d6000fd5b505050506040513d60208110156133b857600080fd5b505161ffff169250600091505b828210156134795784600160a060020a03166319b64015836040518263ffffffff1660e060020a02815260040180828152602001915050602060405180830381600087803b15801561341657600080fd5b505af115801561342a573d6000803e3d6000fd5b505050506040513d602081101561344057600080fd5b5051600160a060020a03811660009081526006602052604090205490915060ff161561346e578093506120ce565b6001909101906133c5565b5073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee949350505050565b604080517f7472616e7366657246726f6d28616464726573732c616464726573732c75696e81527f74323536290000000000000000000000000000000000000000000000000000006020808301919091528251918290036025018220600160a060020a03808816602485015286166044840152606480840186905284518085039091018152608490930190935281018051600160e060020a0316600160e060020a0319909316929092179091526132b69085906132bc565b604080517f617070726f766528616464726573732c75696e7432353629000000000000000081528151908190036018018120600160a060020a03851660248301526044808301859052835180840390910181526064909201909252602081018051600160e060020a0316600160e060020a0319909316929092179091526121f69084906132bc565b6020604051908101604052806001906020820280388339509192915050565b60408051808201825290600290829080388339509192915050565b6040805160e081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810191909152905600a165627a7a72305820c663caccd0f92dedd66f87b5b8167fe490551f2bec97adf4d32a21482d8a8ac00029608060405234801561001057600080fd5b506040516020806100f2833981016040525160005560bf806100336000396000f300608060405260043610603e5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631e1401f881146043575b600080fd5b348015604e57600080fd5b50607773ffffffffffffffffffffffffffffffffffffffff600435811690602435166044356089565b60408051918252519081900360200190f35b60005493925050505600a165627a7a72305820c6573e4c7b6ab6a4aec09194599f94bc00b98e755e2dc8bad25f2a0a020244fc0029608060405234801561001057600080fd5b5060405160408061010a83398101604052805160209091015160009190915560015560ca806100406000396000f300608060405260043610603e5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631e1401f881146043575b600080fd5b348015604e57600080fd5b50607773ffffffffffffffffffffffffffffffffffffffff600435811690602435166044356090565b6040805192835260208301919091528051918290030190f35b6000546001549350939150505600a165627a7a72305820f59a5f0499e84fadcd06e28530c74fe29488cdbfd8ab3b949df60f2e7c4958fe0029", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x1 PUSH1 0x4 SSTORE PUSH2 0x7530 PUSH1 0x5 SSTORE CALLVALUE DUP1 ISZERO PUSH3 0x1C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH1 0x40 DUP1 PUSH3 0x3AA4 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 MSTORE DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD MLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND CALLER OR SWAP1 SSTORE PUSH1 0x1 DUP1 DUP1 PUSH3 0x60 DUP2 PUSH5 0x100000000 PUSH3 0x183 DUP2 MUL DIV JUMP JUMPDEST POP PUSH1 0x2 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT SWAP3 DUP4 AND DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x3 DUP1 SLOAD SWAP1 SWAP3 AND OR SWAP1 SSTORE POP PUSH20 0xEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE PUSH1 0x0 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH32 0xA2E5AEFC6E2CBE2917A296F0FD89C5F915C487C803DB1D98ECCB43F14012D711 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE DUP2 PUSH3 0xE0 PUSH3 0x1FE JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 PUSH1 0x0 CREATE DUP1 ISZERO DUP1 ISZERO PUSH3 0x104 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH1 0x7 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE DUP2 DUP2 PUSH3 0x131 PUSH3 0x20E JUMP JUMPDEST SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB ADD SWAP1 PUSH1 0x0 CREATE DUP1 ISZERO DUP1 ISZERO PUSH3 0x159 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH1 0x8 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE POP PUSH3 0x21F SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH3 0x1FB JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0xF2 DUP1 PUSH3 0x38A8 DUP4 CODECOPY ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x10A DUP1 PUSH3 0x399A DUP4 CODECOPY ADD SWAP1 JUMP JUMPDEST PUSH2 0x3679 DUP1 PUSH3 0x22F PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x187 JUMPI PUSH4 0xFFFFFFFF PUSH1 0xE0 PUSH1 0x2 EXP PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x24C7EC7 DUP2 EQ PUSH2 0x18C JUMPI DUP1 PUSH4 0x2EF521E EQ PUSH2 0x1A8 JUMPI DUP1 PUSH4 0x3613F39 EQ PUSH2 0x1CE JUMPI DUP1 PUSH4 0xC8496CC EQ PUSH2 0x203 JUMPI DUP1 PUSH4 0x2978C10E EQ PUSH2 0x273 JUMPI DUP1 PUSH4 0x2FE8A6AD EQ PUSH2 0x2FC JUMPI DUP1 PUSH4 0x49D10B64 EQ PUSH2 0x311 JUMPI DUP1 PUSH4 0x569706EB EQ PUSH2 0x326 JUMPI DUP1 PUSH4 0x5D732FF2 EQ PUSH2 0x389 JUMPI DUP1 PUSH4 0x5E35359E EQ PUSH2 0x39E JUMPI DUP1 PUSH4 0x61CD756E EQ PUSH2 0x3C8 JUMPI DUP1 PUSH4 0x699E7546 EQ PUSH2 0x3F9 JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x40E JUMPI DUP1 PUSH4 0x7B103999 EQ PUSH2 0x423 JUMPI DUP1 PUSH4 0x7F9C0ECD EQ PUSH2 0x438 JUMPI DUP1 PUSH4 0x8077CCF7 EQ PUSH2 0x48F JUMPI DUP1 PUSH4 0x89F9CC61 EQ PUSH2 0x4B0 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x523 JUMPI DUP1 PUSH4 0x98E95740 EQ PUSH2 0x538 JUMPI DUP1 PUSH4 0xAB6214CE EQ PUSH2 0x54D JUMPI DUP1 PUSH4 0xB1E9932B EQ PUSH2 0x5B7 JUMPI DUP1 PUSH4 0xB4A176D3 EQ PUSH2 0x622 JUMPI DUP1 PUSH4 0xB77D239B EQ PUSH2 0x637 JUMPI DUP1 PUSH4 0xC52173DE EQ PUSH2 0x6A1 JUMPI DUP1 PUSH4 0xC7BA24BC EQ PUSH2 0x700 JUMPI DUP1 PUSH4 0xC98FEFED EQ PUSH2 0x75E JUMPI DUP1 PUSH4 0xCB32564E EQ PUSH2 0x7BC JUMPI DUP1 PUSH4 0xD4EE1D90 EQ PUSH2 0x830 JUMPI DUP1 PUSH4 0xD734FA19 EQ PUSH2 0x845 JUMPI DUP1 PUSH4 0xE57738E5 EQ PUSH2 0x8BC JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x92C JUMPI DUP1 PUSH4 0xF3898A97 EQ PUSH2 0x94D JUMPI DUP1 PUSH4 0xF3BC7D2A EQ PUSH2 0x99E JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x198 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A6 PUSH1 0x4 CALLDATALOAD ISZERO ISZERO PUSH2 0x9B6 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1B4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A6 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD ISZERO ISZERO PUSH2 0x9FE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1DA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1EF PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0xA47 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x20F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x25A SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP POP SWAP4 CALLDATALOAD SWAP5 POP PUSH2 0xA58 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x27F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x2EA SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP POP DUP5 CALLDATALOAD SWAP6 POP POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD SWAP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x40 DUP3 ADD CALLDATALOAD DUP2 AND SWAP4 POP PUSH1 0x60 DUP3 ADD CALLDATALOAD AND SWAP2 POP PUSH1 0x80 ADD CALLDATALOAD PUSH2 0xA70 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x308 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1EF PUSH2 0xA8B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x31D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A6 PUSH2 0xAAC JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x2EA SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP POP DUP5 CALLDATALOAD SWAP6 POP POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD SWAP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x40 DUP3 ADD CALLDATALOAD AND SWAP3 POP PUSH1 0x60 ADD CALLDATALOAD SWAP1 POP PUSH2 0xD2B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x395 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2EA PUSH2 0xD46 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3AA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A6 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0xD4C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3D4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3DD PUSH2 0xD85 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x405 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x25A PUSH2 0xD94 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x41A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A6 PUSH2 0xDB9 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x42F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3DD PUSH2 0xE8C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x444 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x2EA SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP POP SWAP4 CALLDATALOAD SWAP5 POP PUSH2 0xE9B SWAP4 POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x49B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1EF PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x16CA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4BC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x2EA SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 CALLDATALOAD DUP2 AND SWAP7 POP PUSH1 0x20 DUP7 ADD CALLDATALOAD SWAP6 PUSH1 0x40 DUP2 ADD CALLDATALOAD SWAP6 POP PUSH1 0x60 ADD CALLDATALOAD AND SWAP3 POP PUSH2 0x16DF SWAP2 POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x52F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3DD PUSH2 0x1874 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x544 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x25A PUSH2 0x1883 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x2EA SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP POP DUP5 CALLDATALOAD SWAP6 POP POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD SWAP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x40 DUP3 ADD CALLDATALOAD DUP2 AND SWAP4 POP PUSH1 0x60 DUP3 ADD CALLDATALOAD AND SWAP2 POP PUSH1 0x80 ADD CALLDATALOAD PUSH2 0x18A0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5C3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x2EA SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP POP DUP5 CALLDATALOAD SWAP6 POP POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD SWAP3 PUSH1 0x40 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP2 POP PUSH2 0x18C6 SWAP1 POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x62E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A6 PUSH2 0x18E0 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x2EA SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP POP DUP5 CALLDATALOAD SWAP6 POP POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD SWAP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x40 DUP3 ADD CALLDATALOAD DUP2 AND SWAP4 POP PUSH1 0x60 DUP3 ADD CALLDATALOAD AND SWAP2 POP PUSH1 0x80 ADD CALLDATALOAD PUSH2 0x1919 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x2EA SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP POP DUP5 CALLDATALOAD SWAP6 POP POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD SWAP3 PUSH1 0x40 DUP2 ADD CALLDATALOAD SWAP3 POP PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP2 POP PUSH1 0x80 ADD CALLDATALOAD PUSH2 0x1B0D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x70C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x2EA SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP POP DUP5 CALLDATALOAD SWAP6 POP POP POP PUSH1 0x20 SWAP1 SWAP3 ADD CALLDATALOAD SWAP2 POP PUSH2 0x1B20 SWAP1 POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x2EA SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP POP DUP5 CALLDATALOAD SWAP6 POP POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD SWAP3 PUSH1 0x40 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP2 POP PUSH2 0x18C6 SWAP1 POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x2EA SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP POP DUP5 CALLDATALOAD SWAP6 POP POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD SWAP3 PUSH1 0x40 DUP2 ADD CALLDATALOAD SWAP3 POP PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP2 POP PUSH1 0x80 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0xA0 DUP3 ADD CALLDATALOAD AND SWAP1 PUSH1 0xC0 ADD CALLDATALOAD PUSH2 0x1B3A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x83C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3DD PUSH2 0x1CD8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x851 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x86C PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH2 0x1CE7 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP4 MLOAD DUP2 DUP4 ADD MSTORE DUP4 MLOAD SWAP2 SWAP3 DUP4 SWAP3 SWAP1 DUP4 ADD SWAP2 DUP6 DUP2 ADD SWAP2 MUL DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x8A8 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x890 JUMP JUMPDEST POP POP POP POP SWAP1 POP ADD SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8C8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x2EA SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP POP DUP5 CALLDATALOAD SWAP6 POP POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD SWAP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x40 DUP3 ADD CALLDATALOAD AND SWAP3 POP PUSH1 0x60 ADD CALLDATALOAD SWAP1 POP PUSH2 0xD2B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x938 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A6 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x1E18 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x2EA SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP POP DUP5 CALLDATALOAD SWAP6 POP POP POP PUSH1 0x20 SWAP1 SWAP3 ADD CALLDATALOAD SWAP2 POP PUSH2 0x1B20 SWAP1 POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9AA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A6 PUSH1 0x4 CALLDATALOAD PUSH2 0x1EB5 JUMP JUMPDEST PUSH2 0x9BE PUSH2 0x1F1D JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD SWAP2 ISZERO ISZERO PUSH21 0x10000000000000000000000000000000000000000 MUL PUSH21 0xFF0000000000000000000000000000000000000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0xA06 PUSH2 0x1F1D JUMP JUMPDEST DUP2 PUSH2 0xA10 DUP2 PUSH2 0x1F81 JUMP JUMPDEST DUP3 PUSH2 0xA1A DUP2 PUSH2 0x1FE4 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP2 SWAP1 SWAP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP2 ISZERO ISZERO SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA52 DUP3 PUSH2 0x2045 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xA65 DUP5 DUP5 PUSH2 0xE9B JUMP JUMPDEST SWAP5 PUSH1 0x0 SWAP5 POP SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA80 DUP8 DUP8 DUP8 DUP8 DUP8 DUP8 PUSH2 0x1919 JUMP JUMPDEST SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ DUP1 PUSH2 0xAE1 JUMPI POP PUSH1 0x3 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST ISZERO ISZERO PUSH2 0xB37 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0xB60 PUSH32 0x436F6E7472616374526567697374727900000000000000000000000000000000 PUSH2 0x20D6 JUMP JUMPDEST PUSH1 0x2 SLOAD SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP4 AND SWAP2 AND EQ DUP1 ISZERO SWAP1 PUSH2 0xB89 JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO JUMPDEST ISZERO ISZERO PUSH2 0xBDF JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245474953545259000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0xBB34534C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH32 0x436F6E7472616374526567697374727900000000000000000000000000000000 PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP2 PUSH4 0xBB34534C SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC63 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xC77 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xC8D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ ISZERO PUSH2 0xCEE JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245474953545259000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP5 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP3 DUP4 AND OR SWAP1 SWAP3 SSTORE SWAP1 SWAP2 AND SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH2 0xD3C DUP7 DUP7 DUP7 PUSH1 0x0 DUP8 DUP8 PUSH2 0x1919 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x5 SLOAD DUP2 JUMP JUMPDEST PUSH2 0xD54 PUSH2 0x1F1D JUMP JUMPDEST DUP3 PUSH2 0xD5E DUP2 PUSH2 0x1F81 JUMP JUMPDEST DUP3 PUSH2 0xD68 DUP2 PUSH2 0x1F81 JUMP JUMPDEST DUP4 PUSH2 0xD72 DUP2 PUSH2 0x1FE4 JUMP JUMPDEST PUSH2 0xD7D DUP7 DUP7 DUP7 PUSH2 0x216E JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x0 SWAP1 DUP2 SWAP1 PUSH2 0xDB1 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP3 DUP1 DUP1 PUSH2 0x21FB JUMP JUMPDEST SWAP2 POP SWAP2 POP SWAP1 SWAP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0xE1B JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND SWAP4 SWAP1 SWAP2 AND SWAP2 PUSH32 0x343765429AEA5A34B3FF6A3785A98A5ABB2597ACA87BFBB58632C173D585373A SWAP2 LOG3 PUSH1 0x1 DUP1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND OR SWAP1 SWAP2 SSTORE AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0xED6 PUSH32 0x536F7672796E53776170466F726D756C61000000000000000000000000000000 PUSH2 0x20D6 JUMP JUMPDEST SWAP5 POP DUP13 SWAP11 POP PUSH1 0x2 DUP15 MLOAD GT DUP1 ISZERO PUSH2 0xEF1 JUMPI POP DUP14 MLOAD PUSH1 0x2 SWAP1 MOD PUSH1 0x1 EQ JUMPDEST ISZERO ISZERO PUSH2 0xF47 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5041544800000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x2 SWAP4 POP JUMPDEST DUP14 MLOAD DUP5 LT ISZERO PUSH2 0x16B8 JUMPI DUP14 PUSH1 0x2 DUP6 SUB DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xF66 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD SWAP3 POP DUP14 PUSH1 0x1 DUP6 SUB DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xF83 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD SWAP2 POP DUP14 DUP5 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xF9D JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD SWAP1 POP DUP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x8DA5CB5B PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xFE7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xFFB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1011 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP6 POP PUSH2 0x101F DUP7 DUP5 PUSH2 0x22DF JUMP JUMPDEST SWAP3 POP PUSH2 0x102B DUP7 DUP3 PUSH2 0x22DF JUMP JUMPDEST SWAP1 POP DUP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ ISZERO PUSH2 0x138C JUMPI PUSH1 0x3 DUP5 LT DUP1 PUSH2 0x1082 JUMPI POP DUP14 PUSH1 0x3 DUP6 SUB DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x1062 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ ISZERO JUMPDEST ISZERO PUSH2 0x10F4 JUMPI DUP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x18160DDD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x10C5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x10D9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x10EF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP9 POP JUMPDEST DUP6 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xD8959512 DUP5 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x114F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1163 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1179 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xE53AAE900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 MLOAD SWAP3 SWAP11 POP SWAP1 DUP9 AND SWAP2 PUSH4 0xE53AAE9 SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0xA0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x11E3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x11F7 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0xA0 DUP2 LT ISZERO PUSH2 0x120D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x20 SWAP1 DUP2 ADD MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xF3250FE200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP14 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP13 SWAP1 MSTORE PUSH4 0xFFFFFFFF DUP4 AND PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 DUP2 ADD DUP16 SWAP1 MSTORE SWAP1 MLOAD SWAP2 SWAP10 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 AND SWAP3 PUSH4 0xF3250FE2 SWAP3 PUSH1 0x84 DUP1 DUP5 ADD SWAP4 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x128E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x12A2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x12B8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x579CD3CA00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP13 POP PUSH2 0x136E SWAP2 PUSH3 0xF4240 SWAP2 PUSH2 0x1362 SWAP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND SWAP2 PUSH4 0x579CD3CA SWAP2 PUSH1 0x4 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1325 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1339 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x134F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD DUP15 SWAP1 PUSH4 0xFFFFFFFF SWAP1 DUP2 AND SWAP1 PUSH2 0x2341 AND JUMP JUMPDEST SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x23BA AND JUMP JUMPDEST SWAP11 DUP12 SWAP1 SUB SWAP11 SWAP10 POP PUSH2 0x1385 DUP10 DUP13 PUSH4 0xFFFFFFFF PUSH2 0x2428 AND JUMP JUMPDEST SWAP9 POP PUSH2 0x16AD JUMP JUMPDEST DUP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ ISZERO PUSH2 0x169B JUMPI PUSH1 0x3 DUP5 LT DUP1 PUSH2 0x13E1 JUMPI POP DUP14 PUSH1 0x3 DUP6 SUB DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x13C1 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ ISZERO JUMPDEST ISZERO PUSH2 0x1453 JUMPI DUP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x18160DDD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1424 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1438 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x144E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP9 POP JUMPDEST DUP6 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xD8959512 DUP3 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x14AE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x14C2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x14D8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xE53AAE900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 MLOAD SWAP3 SWAP11 POP SWAP1 DUP9 AND SWAP2 PUSH4 0xE53AAE9 SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0xA0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1542 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1556 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0xA0 DUP2 LT ISZERO PUSH2 0x156C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x20 SWAP1 DUP2 ADD MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x76CF0B5600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP14 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP13 SWAP1 MSTORE PUSH4 0xFFFFFFFF DUP4 AND PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 DUP2 ADD DUP16 SWAP1 MSTORE SWAP1 MLOAD SWAP2 SWAP10 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 AND SWAP3 PUSH4 0x76CF0B56 SWAP3 PUSH1 0x84 DUP1 DUP5 ADD SWAP4 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x15ED JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1601 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1617 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x579CD3CA00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP13 POP PUSH2 0x1684 SWAP2 PUSH3 0xF4240 SWAP2 PUSH2 0x1362 SWAP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND SWAP2 PUSH4 0x579CD3CA SWAP2 PUSH1 0x4 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1325 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP11 DUP12 SWAP1 SUB SWAP11 SWAP10 POP PUSH2 0x1385 DUP10 DUP13 PUSH4 0xFFFFFFFF PUSH2 0x2485 AND JUMP JUMPDEST PUSH2 0x16A7 DUP7 DUP5 DUP4 DUP15 PUSH2 0x21FB JUMP JUMPDEST SWAP1 SWAP12 POP SWAP10 POP JUMPDEST PUSH1 0x2 DUP5 ADD SWAP4 POP PUSH2 0xF4C JUMP JUMPDEST POP SWAP9 SWAP13 SWAP12 POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP6 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xFC0C546A PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1720 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1734 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x174A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD DUP8 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP2 AND SWAP1 DUP9 SWAP1 PUSH1 0x0 SWAP1 DUP2 LT PUSH2 0x1767 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ PUSH2 0x17CF JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F534F555243455F544F4B454E0000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0xAAFD6B7600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP8 SWAP1 MSTORE CALLER PUSH1 0x24 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 AND SWAP2 PUSH4 0xAAFD6B76 SWAP2 PUSH1 0x44 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1837 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x184B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1861 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 POP PUSH2 0xA80 DUP8 DUP3 DUP7 DUP7 PUSH1 0x0 DUP1 PUSH2 0x1919 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x0 SWAP1 DUP2 SWAP1 PUSH2 0xDB1 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP3 DUP1 DUP1 PUSH2 0x21FB JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH2 0x18AC DUP2 PUSH2 0x24E5 JUMP JUMPDEST PUSH2 0x18BA DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 PUSH2 0x1919 JUMP JUMPDEST SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x18D7 DUP6 DUP6 DUP6 DUP6 PUSH1 0x0 DUP1 PUSH2 0x1919 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH2 0x18E8 PUSH2 0x1F1D JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x2 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 PUSH1 0x0 PUSH2 0x192A PUSH2 0x253D JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE DUP9 PUSH2 0x1939 DUP2 PUSH2 0x24E5 JUMP JUMPDEST PUSH1 0x2 DUP13 MLOAD GT DUP1 ISZERO PUSH2 0x194F JUMPI POP DUP12 MLOAD PUSH1 0x2 SWAP1 MOD PUSH1 0x1 EQ JUMPDEST ISZERO ISZERO PUSH2 0x19A5 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5041544800000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x19E0 DUP13 PUSH1 0x0 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x19B7 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD DUP14 PUSH1 0x1 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x19D0 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD DUP14 PUSH2 0x2597 JUMP JUMPDEST PUSH1 0x0 SWAP5 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 AND ISZERO ISZERO PUSH2 0x1A4F JUMPI DUP7 ISZERO PUSH2 0x1A4A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F414646494C494154455F46454500000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x1ABC JUMP JUMPDEST DUP7 PUSH1 0x0 LT DUP1 ISZERO PUSH2 0x1A61 JUMPI POP PUSH1 0x5 SLOAD DUP8 GT ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x1AB7 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F414646494C494154455F46454500000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SWAP5 POP JUMPDEST CALLER SWAP4 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP10 AND ISZERO PUSH2 0x1AD2 JUMPI DUP9 SWAP4 POP JUMPDEST PUSH2 0x1ADD DUP13 DUP6 DUP8 PUSH2 0x279B JUMP JUMPDEST SWAP3 POP PUSH2 0x1AEC DUP4 DUP13 DUP13 DUP12 DUP12 PUSH2 0x2BB2 JUMP JUMPDEST SWAP2 POP PUSH2 0x1AF9 DUP4 DUP4 DUP7 PUSH2 0x3112 JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x4 SSTORE SWAP11 SWAP10 POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA80 DUP8 DUP8 DUP8 DUP8 DUP8 DUP8 PUSH1 0x0 DUP1 PUSH2 0x1B3A JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1B32 DUP5 DUP5 DUP5 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x1919 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 DUP10 PUSH2 0x1B4A DUP2 PUSH2 0x24E5 JUMP JUMPDEST DUP13 MLOAD DUP14 SWAP1 PUSH1 0x0 NOT DUP2 ADD SWAP1 DUP2 LT PUSH2 0x1B5C JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD SWAP4 POP PUSH2 0x1B91 PUSH32 0x536F7672796E5377617058000000000000000000000000000000000000000000 PUSH2 0x20D6 JUMP JUMPDEST SWAP3 POP PUSH2 0x1BBC PUSH32 0x424E54546F6B656E000000000000000000000000000000000000000000000000 PUSH2 0x20D6 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 DUP2 AND SWAP2 AND EQ PUSH2 0x1C1E JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5441524745545F544F4B454E0000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x1C2C DUP14 DUP14 DUP14 ADDRESS DUP12 DUP12 PUSH2 0x1919 JUMP JUMPDEST SWAP2 POP PUSH2 0x1C39 DUP5 DUP5 DUP5 PUSH2 0x31F5 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x427C037400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP13 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP12 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x64 DUP2 ADD DUP11 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND SWAP2 PUSH4 0x427C0374 SWAP2 PUSH1 0x84 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1CAF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1CC3 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP SWAP4 SWAP16 SWAP15 POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0x1D14 PUSH32 0x436F6E76657273696F6E5061746846696E646572000000000000000000000000 PUSH2 0x20D6 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0xA1C421CD00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP7 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE SWAP2 MLOAD SWAP3 SWAP4 POP SWAP1 DUP4 AND SWAP2 PUSH4 0xA1C421CD SWAP2 PUSH1 0x44 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1D83 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1D97 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1DC0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 MLOAD PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x1DD8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD PUSH1 0x20 DUP2 ADD DUP5 DUP2 GT ISZERO PUSH2 0x1DEB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP6 PUSH1 0x20 DUP3 MUL DUP4 ADD GT PUSH5 0x100000000 DUP3 GT OR ISZERO PUSH2 0x1E08 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP SWAP1 SWAP6 POP POP POP POP POP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1E20 PUSH2 0x1F1D JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x1E86 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F4F574E4552000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x1EBD PUSH2 0x1F1D JUMP JUMPDEST PUSH3 0xF4240 DUP2 GT ISZERO PUSH2 0x1F18 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F414646494C494154455F46454500000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x5 SSTORE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x1F7F JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0x1FE1 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ADDRESS EQ ISZERO PUSH2 0x1FE1 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F414444524553535F49535F53454C4600000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2050 PUSH2 0x35D7 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x69735632384F7248696768657228290000000000000000000000000000000000 DUP2 MSTORE DUP2 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0xF ADD DUP2 KECCAK256 PUSH1 0x4 DUP3 MSTORE PUSH1 0x24 DUP3 ADD SWAP1 SWAP3 MSTORE PUSH1 0x20 DUP1 DUP3 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0xE0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xE0 PUSH1 0x2 EXP SUB NOT SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 OR DUP4 MSTORE DUP2 MLOAD SWAP2 SWAP3 SWAP1 SWAP2 DUP5 SWAP2 DUP9 PUSH2 0x1388 STATICCALL SWAP3 POP DUP3 DUP1 ISZERO PUSH2 0x20CB JUMPI POP DUP2 MLOAD ISZERO ISZERO JUMPDEST SWAP4 POP JUMPDEST POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xBB34534C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP2 PUSH4 0xBB34534C SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x213C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2150 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2166 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x7472616E7366657228616464726573732C75696E743235362900000000000000 DUP2 MSTORE DUP2 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x19 ADD DUP2 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x64 SWAP1 SWAP3 ADD SWAP1 SWAP3 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0xE0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xE0 PUSH1 0x2 EXP SUB NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE PUSH2 0x21F6 SWAP1 DUP5 SWAP1 PUSH2 0x32BC JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2206 PUSH2 0x35F6 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x67657452657475726E28616464726573732C616464726573732C75696E743235 DUP2 MSTORE PUSH32 0x3629000000000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP3 MLOAD SWAP2 DUP3 SWAP1 SUB PUSH1 0x22 ADD DUP3 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP12 AND PUSH1 0x24 DUP6 ADD MSTORE DUP10 AND PUSH1 0x44 DUP5 ADD MSTORE PUSH1 0x64 DUP1 DUP5 ADD DUP10 SWAP1 MSTORE DUP5 MLOAD DUP1 DUP6 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x84 SWAP1 SWAP4 ADD DUP5 MSTORE SWAP1 DUP3 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0xE0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xE0 PUSH1 0x2 EXP SUB NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR DUP2 MSTORE DUP2 MLOAD SWAP2 SWAP3 SWAP2 DUP5 SWAP2 DUP12 GAS STATICCALL DUP1 ISZERO ISZERO PUSH2 0x22C8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD MLOAD SWAP1 SWAP8 SWAP1 SWAP7 POP SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO ISZERO PUSH2 0x2308 JUMPI POP DUP1 PUSH2 0xA52 JUMP JUMPDEST PUSH2 0x2311 DUP4 PUSH2 0x2045 JUMP JUMPDEST ISZERO PUSH2 0x2331 JUMPI POP PUSH20 0xEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE PUSH2 0xA52 JUMP JUMPDEST PUSH2 0x233A DUP4 PUSH2 0x334A JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 ISZERO ISZERO PUSH2 0x2354 JUMPI PUSH1 0x0 SWAP2 POP PUSH2 0x1E11 JUMP JUMPDEST POP DUP3 DUP3 MUL DUP3 DUP5 DUP3 DUP2 ISZERO ISZERO PUSH2 0x2364 JUMPI INVALID JUMPDEST DIV EQ PUSH2 0x233A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP4 GT PUSH2 0x2414 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4449564944455F42595F5A45524F0000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP3 DUP5 DUP2 ISZERO ISZERO PUSH2 0x241F JUMPI INVALID JUMPDEST DIV SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 ADD DUP4 DUP2 LT ISZERO PUSH2 0x233A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 DUP4 LT ISZERO PUSH2 0x24DF JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F554E444552464C4F5700000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP SWAP1 SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 GT PUSH2 0x1FE1 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5A45524F5F56414C5545000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x4 SLOAD PUSH1 0x1 EQ PUSH2 0x1F7F JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5245454E5452414E4359000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x8DA5CB5B PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x25D8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x25EC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2602 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 POP PUSH2 0x260F DUP3 PUSH2 0x2045 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 CALLVALUE GT ISZERO PUSH2 0x26DD JUMPI CALLVALUE DUP4 EQ PUSH2 0x2671 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4554485F414D4F554E545F4D49534D41544348000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP1 ISZERO ISZERO PUSH2 0x26D8 JUMPI PUSH2 0x2681 DUP3 PUSH2 0x334A JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xD0E30DB0 CALLVALUE PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x26BE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x26D2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP JUMPDEST PUSH2 0x2794 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x2776 JUMPI PUSH2 0x270A DUP6 CALLER ADDRESS DUP7 PUSH2 0x3497 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x26D8 JUMPI DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x2E1A7D4D DUP5 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2759 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x276D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x2794 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2788 JUMPI PUSH2 0x26D8 DUP6 CALLER DUP5 DUP7 PUSH2 0x3497 JUMP JUMPDEST PUSH2 0x2794 DUP6 CALLER ADDRESS DUP7 PUSH2 0x3497 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x27B1 PUSH2 0x3611 JUMP JUMPDEST DUP13 MLOAD PUSH1 0x2 SWAP1 DIV PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x27F0 JUMPI DUP2 PUSH1 0x20 ADD JUMPDEST PUSH2 0x27DD PUSH2 0x3611 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 SWAP1 SUB SWAP1 DUP2 PUSH2 0x27D5 JUMPI SWAP1 POP JUMPDEST POP SWAP9 POP PUSH1 0x0 SWAP8 POP PUSH2 0x2820 PUSH32 0x424E54546F6B656E000000000000000000000000000000000000000000000000 PUSH2 0x20D6 JUMP JUMPDEST SWAP7 POP PUSH1 0x0 SWAP6 POP JUMPDEST PUSH1 0x1 DUP14 MLOAD SUB DUP7 LT ISZERO PUSH2 0x29BB JUMPI DUP13 DUP7 PUSH1 0x1 ADD DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x2844 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD SWAP5 POP DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x8DA5CB5B PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x288E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x28A2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x28B8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD DUP14 MLOAD SWAP1 SWAP5 POP DUP14 SWAP1 PUSH1 0x2 DUP9 ADD SWAP1 DUP2 LT PUSH2 0x28CE JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD SWAP3 POP DUP11 DUP1 ISZERO PUSH2 0x28E5 JUMPI POP DUP8 ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x2902 JUMPI POP DUP7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ JUMPDEST SWAP2 POP DUP2 ISZERO PUSH2 0x290F JUMPI PUSH1 0x1 SWAP8 POP JUMPDEST PUSH1 0xE0 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 DUP6 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP15 DUP9 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x2947 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x2987 DUP7 PUSH2 0x2045 JUMP JUMPDEST ISZERO ISZERO DUP2 MSTORE DUP4 ISZERO ISZERO PUSH1 0x20 SWAP1 SWAP2 ADD MSTORE DUP10 PUSH1 0x2 DUP9 DIV DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x29A5 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MSTORE PUSH1 0x2 SWAP6 SWAP1 SWAP6 ADD SWAP5 PUSH2 0x2827 JUMP JUMPDEST DUP9 PUSH1 0x0 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x29CA JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x40 DUP1 DUP3 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 SWAP1 SWAP4 MSTORE SWAP1 SWAP2 KECCAK256 SLOAD SWAP1 SWAP2 POP PUSH1 0xFF AND ISZERO PUSH2 0x2A40 JUMPI DUP1 PUSH1 0xA0 ADD MLOAD ISZERO PUSH2 0x2A26 JUMPI PUSH20 0xEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE PUSH1 0x40 DUP3 ADD MSTORE PUSH2 0x2A40 JUMP JUMPDEST DUP1 MLOAD PUSH2 0x2A31 SWAP1 PUSH2 0x334A JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x40 DUP3 ADD MSTORE JUMPDEST DUP9 MLOAD DUP10 SWAP1 PUSH1 0x0 NOT DUP2 ADD SWAP1 DUP2 LT PUSH2 0x2A52 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x60 DUP2 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 SWAP1 SWAP3 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 SLOAD SWAP1 SWAP2 POP PUSH1 0xFF AND ISZERO PUSH2 0x2AC9 JUMPI DUP1 PUSH1 0xA0 ADD MLOAD ISZERO PUSH2 0x2AAF JUMPI PUSH20 0xEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE PUSH1 0x60 DUP3 ADD MSTORE PUSH2 0x2AC9 JUMP JUMPDEST DUP1 MLOAD PUSH2 0x2ABA SWAP1 PUSH2 0x334A JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x60 DUP3 ADD MSTORE JUMPDEST PUSH1 0x0 SWAP6 POP JUMPDEST DUP9 MLOAD DUP7 LT ISZERO PUSH2 0x2BA1 JUMPI DUP9 DUP7 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x2AE5 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD SWAP1 POP DUP1 PUSH1 0xA0 ADD MLOAD ISZERO PUSH2 0x2B8F JUMPI DUP1 PUSH1 0xC0 ADD MLOAD ISZERO PUSH2 0x2B10 JUMPI ADDRESS PUSH1 0x80 DUP3 ADD MSTORE PUSH2 0x2B8A JUMP JUMPDEST PUSH1 0x1 DUP10 MLOAD SUB DUP7 EQ ISZERO PUSH2 0x2B30 JUMPI PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP13 AND PUSH1 0x80 DUP3 ADD MSTORE PUSH2 0x2B8A JUMP JUMPDEST DUP9 DUP7 PUSH1 0x1 ADD DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x2B41 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0xA0 ADD MLOAD ISZERO PUSH2 0x2B83 JUMPI DUP9 DUP7 PUSH1 0x1 ADD DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x2B65 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MLOAD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x80 DUP3 ADD MSTORE PUSH2 0x2B8A JUMP JUMPDEST ADDRESS PUSH1 0x80 DUP3 ADD MSTORE JUMPDEST PUSH2 0x2B96 JUMP JUMPDEST ADDRESS PUSH1 0x80 DUP3 ADD MSTORE JUMPDEST PUSH1 0x1 SWAP1 SWAP6 ADD SWAP5 PUSH2 0x2ACE JUMP JUMPDEST POP SWAP7 SWAP12 SWAP11 POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x2BC0 PUSH2 0x3611 JUMP JUMPDEST PUSH1 0x0 DUP10 SWAP4 POP PUSH1 0x0 SWAP3 POP JUMPDEST DUP11 MLOAD DUP4 LT ISZERO PUSH2 0x30AB JUMPI DUP11 DUP4 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x2BE1 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD SWAP2 POP DUP2 PUSH1 0xA0 ADD MLOAD ISZERO PUSH2 0x2C72 JUMPI DUP3 ISZERO DUP1 ISZERO SWAP1 PUSH2 0x2C2E JUMPI POP DUP11 MLOAD ADDRESS SWAP1 DUP13 SWAP1 PUSH1 0x0 NOT DUP7 ADD SWAP1 DUP2 LT PUSH2 0x2C15 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x80 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ JUMPDEST DUP1 ISZERO PUSH2 0x2C55 JUMPI POP PUSH1 0x40 DUP1 DUP4 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE KECCAK256 SLOAD PUSH1 0xFF AND ISZERO JUMPDEST ISZERO PUSH2 0x2C6D JUMPI PUSH2 0x2C6D DUP3 PUSH1 0x40 ADD MLOAD DUP4 PUSH1 0x0 ADD MLOAD DUP7 PUSH2 0x216E JUMP JUMPDEST PUSH2 0x2CA8 JUMP JUMPDEST DUP2 PUSH1 0x20 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP3 PUSH1 0x40 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ ISZERO ISZERO PUSH2 0x2CA8 JUMPI PUSH2 0x2CA8 DUP3 PUSH1 0x40 ADD MLOAD DUP4 PUSH1 0x0 ADD MLOAD DUP7 PUSH2 0x31F5 JUMP JUMPDEST DUP2 PUSH1 0xA0 ADD MLOAD ISZERO ISZERO PUSH2 0x2D6B JUMPI DUP2 MLOAD PUSH1 0x40 DUP1 DUP5 ADD MLOAD PUSH1 0x60 DUP6 ADD MLOAD DUP3 MLOAD PUSH32 0x5E5144EB00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 DUP4 AND PUSH1 0x4 DUP3 ADD MSTORE SWAP1 DUP3 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 DUP2 ADD DUP9 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x64 DUP3 ADD MSTORE SWAP2 MLOAD SWAP3 AND SWAP2 PUSH4 0x5E5144EB SWAP2 PUSH1 0x84 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2D38 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2D4C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2D62 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP5 POP PUSH2 0x2F08 JUMP JUMPDEST PUSH1 0x40 DUP1 DUP4 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x2E49 JUMPI DUP2 MLOAD PUSH1 0x40 DUP1 DUP5 ADD MLOAD PUSH1 0x60 DUP6 ADD MLOAD PUSH1 0x80 DUP7 ADD MLOAD DUP4 MLOAD PUSH32 0xE8DC12FF00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND PUSH1 0x4 DUP3 ADD MSTORE SWAP2 DUP4 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP3 ADD DUP10 SWAP1 MSTORE CALLER PUSH1 0x64 DUP4 ADD MSTORE DUP3 AND PUSH1 0x84 DUP3 ADD MSTORE SWAP2 MLOAD SWAP3 AND SWAP2 PUSH4 0xE8DC12FF SWAP2 CALLVALUE SWAP2 PUSH1 0xA4 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP6 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2E1E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2E32 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2D62 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x40 DUP1 DUP5 ADD MLOAD PUSH1 0x60 DUP6 ADD MLOAD PUSH1 0x80 DUP7 ADD MLOAD DUP4 MLOAD PUSH32 0xE8DC12FF00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND PUSH1 0x4 DUP3 ADD MSTORE SWAP2 DUP4 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP3 ADD DUP10 SWAP1 MSTORE CALLER PUSH1 0x64 DUP4 ADD MSTORE DUP3 AND PUSH1 0x84 DUP3 ADD MSTORE SWAP2 MLOAD SWAP3 AND SWAP2 PUSH4 0xE8DC12FF SWAP2 PUSH1 0xA4 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2ED9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2EED JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2F03 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP5 POP JUMPDEST DUP2 PUSH1 0xC0 ADD MLOAD ISZERO PUSH2 0x301A JUMPI PUSH2 0x2F29 PUSH3 0xF4240 PUSH2 0x1362 DUP8 DUP11 PUSH4 0xFFFFFFFF PUSH2 0x2341 AND JUMP JUMPDEST SWAP1 POP DUP2 PUSH1 0x60 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xA9059CBB DUP10 DUP4 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2F92 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2FA6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2FBC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD ISZERO ISZERO PUSH2 0x3014 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4645455F5452414E534645525F4641494C4544000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP1 DUP6 SUB SWAP5 POP JUMPDEST DUP2 PUSH1 0x60 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP3 PUSH1 0x40 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP4 PUSH1 0x20 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH32 0x7154B38B5DD31BB3122436A96D4E09ABA5B323AE1FD580025FAB55074334C095 DUP8 DUP10 CALLER PUSH1 0x40 MLOAD DUP1 DUP5 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP4 POP POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 DUP5 SWAP4 POP PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 PUSH2 0x2BCA JUMP JUMPDEST DUP9 DUP6 LT ISZERO PUSH2 0x3103 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F52455455524E5F544F4F5F4C4F570000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP SWAP3 SWAP10 SWAP9 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x311A PUSH2 0x3611 JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH1 0x1 DUP7 MLOAD SUB DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x312E JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MLOAD PUSH1 0x80 DUP2 ADD MLOAD SWAP1 SWAP3 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND ADDRESS EQ PUSH2 0x3154 JUMPI PUSH2 0x2794 JUMP JUMPDEST POP PUSH1 0x60 DUP2 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x31EA JUMPI PUSH1 0xA0 DUP3 ADD MLOAD ISZERO PUSH2 0x3187 JUMPI INVALID JUMPDEST DUP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x205C2878 DUP5 DUP7 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2759 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2794 DUP2 DUP5 DUP7 PUSH2 0x216E JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0xDD62ED3E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE SWAP2 MLOAD PUSH1 0x0 SWAP3 DUP7 AND SWAP2 PUSH4 0xDD62ED3E SWAP2 PUSH1 0x44 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3260 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3274 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x328A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 POP DUP2 DUP2 LT ISZERO PUSH2 0x32B6 JUMPI PUSH1 0x0 DUP2 GT ISZERO PUSH2 0x32AB JUMPI PUSH2 0x32AB DUP5 DUP5 PUSH1 0x0 PUSH2 0x354F JUMP JUMPDEST PUSH2 0x32B6 DUP5 DUP5 DUP5 PUSH2 0x354F JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0x32C4 PUSH2 0x35D7 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE POP SWAP1 POP PUSH1 0x20 DUP2 DUP4 MLOAD PUSH1 0x20 DUP6 ADD PUSH1 0x0 DUP8 GAS CALL DUP1 ISZERO ISZERO PUSH2 0x32F1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD ISZERO ISZERO PUSH2 0x21F6 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5452414E534645525F4641494C454400000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x71F52BF3 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x338E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x33A2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x33B8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH2 0xFFFF AND SWAP3 POP PUSH1 0x0 SWAP2 POP JUMPDEST DUP3 DUP3 LT ISZERO PUSH2 0x3479 JUMPI DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x19B64015 DUP4 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3416 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x342A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x3440 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 SWAP2 POP PUSH1 0xFF AND ISZERO PUSH2 0x346E JUMPI DUP1 SWAP4 POP PUSH2 0x20CE JUMP JUMPDEST PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x33C5 JUMP JUMPDEST POP PUSH20 0xEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x7472616E7366657246726F6D28616464726573732C616464726573732C75696E DUP2 MSTORE PUSH32 0x7432353629000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP3 MLOAD SWAP2 DUP3 SWAP1 SUB PUSH1 0x25 ADD DUP3 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP9 AND PUSH1 0x24 DUP6 ADD MSTORE DUP7 AND PUSH1 0x44 DUP5 ADD MSTORE PUSH1 0x64 DUP1 DUP5 ADD DUP7 SWAP1 MSTORE DUP5 MLOAD DUP1 DUP6 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x84 SWAP1 SWAP4 ADD SWAP1 SWAP4 MSTORE DUP2 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0xE0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xE0 PUSH1 0x2 EXP SUB NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE PUSH2 0x32B6 SWAP1 DUP6 SWAP1 PUSH2 0x32BC JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x617070726F766528616464726573732C75696E74323536290000000000000000 DUP2 MSTORE DUP2 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x18 ADD DUP2 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x64 SWAP1 SWAP3 ADD SWAP1 SWAP3 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0xE0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xE0 PUSH1 0x2 EXP SUB NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE PUSH2 0x21F6 SWAP1 DUP5 SWAP1 PUSH2 0x32BC JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 SWAP1 PUSH1 0x20 DUP3 MUL DUP1 CODESIZE DUP4 CODECOPY POP SWAP2 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD DUP3 MSTORE SWAP1 PUSH1 0x2 SWAP1 DUP3 SWAP1 DUP1 CODESIZE DUP4 CODECOPY POP SWAP2 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xE0 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE SWAP2 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x60 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0xA0 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0xC0 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP1 JUMP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 0xc6 PUSH4 0xCACCD0F9 0x2d 0xed 0xd6 PUSH16 0x87B5B8167FE490551F2BEC97ADF4D32A 0x21 0x48 0x2d DUP11 DUP11 0xc0 STOP 0x29 PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP1 PUSH2 0xF2 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 MSTORE MLOAD PUSH1 0x0 SSTORE PUSH1 0xBF DUP1 PUSH2 0x33 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH1 0x3E JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x1E1401F8 DUP2 EQ PUSH1 0x43 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH1 0x4E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x77 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH1 0x89 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH1 0x0 SLOAD SWAP4 SWAP3 POP POP POP JUMP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 0xc6 JUMPI RETURNDATACOPY 0x4c PUSH28 0x6AB6A4AEC09194599F94BC00B98E755E2DC8BAD25F2A0A020244FC00 0x29 PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH1 0x40 DUP1 PUSH2 0x10A DUP4 CODECOPY DUP2 ADD PUSH1 0x40 MSTORE DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD MLOAD PUSH1 0x0 SWAP2 SWAP1 SWAP2 SSTORE PUSH1 0x1 SSTORE PUSH1 0xCA DUP1 PUSH2 0x40 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH1 0x3E JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x1E1401F8 DUP2 EQ PUSH1 0x43 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH1 0x4E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x77 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH1 0x90 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB ADD SWAP1 RETURN JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 SLOAD SWAP4 POP SWAP4 SWAP2 POP POP JUMP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 0xf5 SWAP11 0x5f DIV SWAP10 0xe8 0x4f 0xad 0xcd MOD 0xe2 DUP6 ADDRESS 0xc7 0x4f 0xe2 SWAP5 DUP9 0xcd 0xbf 0xd8 0xab EXTCODESIZE SWAP5 SWAP14 0xf6 0xf 0x2e PUSH29 0x4958FE0029000000000000000000000000000000000000000000000000 ", - "sourceMap": "1166:795:41:-;;;249:1:68;362:32;;2522:5:3;2489:38;;1294:197:41;8:9:-1;5:2;;;30:1;27;20:12;5:2;1294:197:41;;;;;;;;;;;;;;;;;;;488:5:66;:18;;-1:-1:-1;;;;;;488:18:66;496:10;488:18;;;1388:1:41;;;475:23:72;1388:1:41;475:13:72;;;;:23;:::i;:::-;-1:-1:-1;1931:8:60;:39;;-1:-1:-1;;;;;1931:39:60;;;-1:-1:-1;;;;;;1931:39:60;;;;;;;;1974:12;:43;;;;;;;;-1:-1:-1;2227:42:3;1931:8:60;3434:32:3;:11;:32;;;:39;;-1:-1:-1;;3434:39:3;1931::60;3434::3;;;1429:7:41;1412:25;;:::i;:::-;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;1397:12:41;:40;;-1:-1:-1;;;;;;1397:40:41;-1:-1:-1;;;;;1397:40:41;;;;;;;;;;1473:7;1482:4;1456:31;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;1456:31:41;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;1441:12:41;:46;;-1:-1:-1;;;;;;1441:46:41;-1:-1:-1;;;;;1441:46:41;;;;;;;;;;-1:-1:-1;1166:795:41;;-1:-1:-1;1166:795:41;553:117:72;-1:-1:-1;;;;;620:22:72;;;;612:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;553:117;:::o;1166:795:41:-;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;" - }, - "deployedBytecode": { - "linkReferences": {}, - "object": "6080604052600436106101875763ffffffff60e060020a600035041663024c7ec7811461018c57806302ef521e146101a857806303613f39146101ce5780630c8496cc146102035780632978c10e146102735780632fe8a6ad146102fc57806349d10b6414610311578063569706eb146103265780635d732ff2146103895780635e35359e1461039e57806361cd756e146103c8578063699e7546146103f957806379ba50971461040e5780637b103999146104235780637f9c0ecd146104385780638077ccf71461048f57806389f9cc61146104b05780638da5cb5b1461052357806398e9574014610538578063ab6214ce1461054d578063b1e9932b146105b7578063b4a176d314610622578063b77d239b14610637578063c52173de146106a1578063c7ba24bc14610700578063c98fefed1461075e578063cb32564e146107bc578063d4ee1d9014610830578063d734fa1914610845578063e57738e5146108bc578063f2fde38b1461092c578063f3898a971461094d578063f3bc7d2a1461099e575b600080fd5b34801561019857600080fd5b506101a660043515156109b6565b005b3480156101b457600080fd5b506101a6600160a060020a036004351660243515156109fe565b3480156101da57600080fd5b506101ef600160a060020a0360043516610a47565b604080519115158252519081900360200190f35b34801561020f57600080fd5b506040805160206004803580820135838102808601850190965280855261025a953695939460249493850192918291850190849080828437509497505093359450610a589350505050565b6040805192835260208301919091528051918290030190f35b34801561027f57600080fd5b50604080516020600480358082013583810280860185019096528085526102ea9536959394602494938501929182918501908490808284375094975050843595505050602083013592600160a060020a03604082013581169350606082013516915060800135610a70565b60408051918252519081900360200190f35b34801561030857600080fd5b506101ef610a8b565b34801561031d57600080fd5b506101a6610aac565b604080516020600480358082013583810280860185019096528085526102ea9536959394602494938501929182918501908490808284375094975050843595505050602083013592600160a060020a036040820135169250606001359050610d2b565b34801561039557600080fd5b506102ea610d46565b3480156103aa57600080fd5b506101a6600160a060020a0360043581169060243516604435610d4c565b3480156103d457600080fd5b506103dd610d85565b60408051600160a060020a039092168252519081900360200190f35b34801561040557600080fd5b5061025a610d94565b34801561041a57600080fd5b506101a6610db9565b34801561042f57600080fd5b506103dd610e8c565b34801561044457600080fd5b50604080516020600480358082013583810280860185019096528085526102ea953695939460249493850192918291850190849080828437509497505093359450610e9b9350505050565b34801561049b57600080fd5b506101ef600160a060020a03600435166116ca565b3480156104bc57600080fd5b50604080516020600480358082013583810280860185019096528085526102ea9536959394602494938501929182918501908490808284375094975050600160a060020a0385358116965060208601359560408101359550606001351692506116df915050565b34801561052f57600080fd5b506103dd611874565b34801561054457600080fd5b5061025a611883565b604080516020600480358082013583810280860185019096528085526102ea9536959394602494938501929182918501908490808284375094975050843595505050602083013592600160a060020a036040820135811693506060820135169150608001356118a0565b3480156105c357600080fd5b50604080516020600480358082013583810280860185019096528085526102ea953695939460249493850192918291850190849080828437509497505084359550505060208301359260400135600160a060020a031691506118c69050565b34801561062e57600080fd5b506101a66118e0565b604080516020600480358082013583810280860185019096528085526102ea9536959394602494938501929182918501908490808284375094975050843595505050602083013592600160a060020a03604082013581169350606082013516915060800135611919565b604080516020600480358082013583810280860185019096528085526102ea9536959394602494938501929182918501908490808284375094975050843595505050602083013592604081013592506060810135915060800135611b0d565b34801561070c57600080fd5b50604080516020600480358082013583810280860185019096528085526102ea95369593946024949385019291829185019084908082843750949750508435955050506020909201359150611b209050565b604080516020600480358082013583810280860185019096528085526102ea953695939460249493850192918291850190849080828437509497505084359550505060208301359260400135600160a060020a031691506118c69050565b604080516020600480358082013583810280860185019096528085526102ea95369593946024949385019291829185019084908082843750949750508435955050506020830135926040810135925060608101359150608081013590600160a060020a0360a0820135169060c00135611b3a565b34801561083c57600080fd5b506103dd611cd8565b34801561085157600080fd5b5061086c600160a060020a0360043581169060243516611ce7565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156108a8578181015183820152602001610890565b505050509050019250505060405180910390f35b3480156108c857600080fd5b50604080516020600480358082013583810280860185019096528085526102ea9536959394602494938501929182918501908490808284375094975050843595505050602083013592600160a060020a036040820135169250606001359050610d2b565b34801561093857600080fd5b506101a6600160a060020a0360043516611e18565b604080516020600480358082013583810280860185019096528085526102ea95369593946024949385019291829185019084908082843750949750508435955050506020909201359150611b209050565b3480156109aa57600080fd5b506101a6600435611eb5565b6109be611f1d565b60038054911515740100000000000000000000000000000000000000000274ff000000000000000000000000000000000000000019909216919091179055565b610a06611f1d565b81610a1081611f81565b82610a1a81611fe4565b5050600160a060020a03919091166000908152600660205260409020805460ff1916911515919091179055565b6000610a5282612045565b92915050565b600080610a658484610e9b565b946000945092505050565b6000610a80878787878787611919565b979650505050505050565b60035474010000000000000000000000000000000000000000900460ff1681565b60008054600160a060020a0316331480610ae1575060035474010000000000000000000000000000000000000000900460ff16155b1515610b37576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b610b607f436f6e74726163745265676973747279000000000000000000000000000000006120d6565b600254909150600160a060020a03808316911614801590610b895750600160a060020a03811615155b1515610bdf576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e56414c49445f5245474953545259000000000000000000000000604482015290519081900360640190fd5b604080517fbb34534c0000000000000000000000000000000000000000000000000000000081527f436f6e747261637452656769737472790000000000000000000000000000000060048201529051600091600160a060020a0384169163bb34534c9160248082019260209290919082900301818787803b158015610c6357600080fd5b505af1158015610c77573d6000803e3d6000fd5b505050506040513d6020811015610c8d57600080fd5b5051600160a060020a03161415610cee576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e56414c49445f5245474953545259000000000000000000000000604482015290519081900360640190fd5b6002805460038054600160a060020a0380841673ffffffffffffffffffffffffffffffffffffffff19928316179092559091169216919091179055565b6000610d3c86868660008787611919565b9695505050505050565b60055481565b610d54611f1d565b82610d5e81611f81565b82610d6881611f81565b83610d7281611fe4565b610d7d86868661216e565b505050505050565b600354600160a060020a031681565b6008546000908190610db190600160a060020a03168280806121fb565b915091509091565b600154600160a060020a03163314610e1b576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b60015460008054604051600160a060020a0393841693909116917f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91a3600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b600254600160a060020a031681565b600080600080600080600080600080600080610ed67f536f7672796e53776170466f726d756c610000000000000000000000000000006120d6565b94508c9a5060028e51118015610ef157508d51600290066001145b1515610f47576040805160e560020a62461bcd02815260206004820152601060248201527f4552525f494e56414c49445f5041544800000000000000000000000000000000604482015290519081900360640190fd5b600293505b8d518410156116b8578d60028503815181101515610f6657fe5b9060200190602002015192508d60018503815181101515610f8357fe5b9060200190602002015191508d84815181101515610f9d57fe5b90602001906020020151905081600160a060020a0316638da5cb5b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610fe757600080fd5b505af1158015610ffb573d6000803e3d6000fd5b505050506040513d602081101561101157600080fd5b5051955061101f86846122df565b925061102b86826122df565b905081600160a060020a031681600160a060020a0316141561138c57600384108061108257508d6003850381518110151561106257fe5b90602001906020020151600160a060020a031682600160a060020a031614155b156110f45781600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156110c557600080fd5b505af11580156110d9573d6000803e3d6000fd5b505050506040513d60208110156110ef57600080fd5b505198505b85600160a060020a031663d8959512846040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b15801561114f57600080fd5b505af1158015611163573d6000803e3d6000fd5b505050506040513d602081101561117957600080fd5b5051604080517f0e53aae9000000000000000000000000000000000000000000000000000000008152600160a060020a0386811660048301529151929a5090881691630e53aae99160248082019260a0929091908290030181600087803b1580156111e357600080fd5b505af11580156111f7573d6000803e3d6000fd5b505050506040513d60a081101561120d57600080fd5b50602090810151604080517ff3250fe2000000000000000000000000000000000000000000000000000000008152600481018d9052602481018c905263ffffffff83166044820152606481018f90529051919950600160a060020a0388169263f3250fe2926084808401938290030181600087803b15801561128e57600080fd5b505af11580156112a2573d6000803e3d6000fd5b505050506040513d60208110156112b857600080fd5b5051604080517f579cd3ca0000000000000000000000000000000000000000000000000000000081529051919c5061136e91620f42409161136291600160a060020a038b169163579cd3ca9160048083019260209291908290030181600087803b15801561132557600080fd5b505af1158015611339573d6000803e3d6000fd5b505050506040513d602081101561134f57600080fd5b50518e9063ffffffff9081169061234116565b9063ffffffff6123ba16565b9a8b90039a9950611385898c63ffffffff61242816565b98506116ad565b81600160a060020a031683600160a060020a0316141561169b5760038410806113e157508d600385038151811015156113c157fe5b90602001906020020151600160a060020a031682600160a060020a031614155b156114535781600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561142457600080fd5b505af1158015611438573d6000803e3d6000fd5b505050506040513d602081101561144e57600080fd5b505198505b85600160a060020a031663d8959512826040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b1580156114ae57600080fd5b505af11580156114c2573d6000803e3d6000fd5b505050506040513d60208110156114d857600080fd5b5051604080517f0e53aae9000000000000000000000000000000000000000000000000000000008152600160a060020a0384811660048301529151929a5090881691630e53aae99160248082019260a0929091908290030181600087803b15801561154257600080fd5b505af1158015611556573d6000803e3d6000fd5b505050506040513d60a081101561156c57600080fd5b50602090810151604080517f76cf0b56000000000000000000000000000000000000000000000000000000008152600481018d9052602481018c905263ffffffff83166044820152606481018f90529051919950600160a060020a038816926376cf0b56926084808401938290030181600087803b1580156115ed57600080fd5b505af1158015611601573d6000803e3d6000fd5b505050506040513d602081101561161757600080fd5b5051604080517f579cd3ca0000000000000000000000000000000000000000000000000000000081529051919c5061168491620f42409161136291600160a060020a038b169163579cd3ca9160048083019260209291908290030181600087803b15801561132557600080fd5b9a8b90039a9950611385898c63ffffffff61248516565b6116a78684838e6121fb565b909b5099505b600284019350610f4c565b50989c9b505050505050505050505050565b60066020526000908152604090205460ff1681565b60008085600160a060020a031663fc0c546a6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561172057600080fd5b505af1158015611734573d6000803e3d6000fd5b505050506040513d602081101561174a57600080fd5b50518751600160a060020a03909116908890600090811061176757fe5b60209081029091010151600160a060020a0316146117cf576040805160e560020a62461bcd02815260206004820152601860248201527f4552525f494e56414c49445f534f555243455f544f4b454e0000000000000000604482015290519081900360640190fd5b604080517faafd6b76000000000000000000000000000000000000000000000000000000008152600481018790523360248201529051600160a060020a0388169163aafd6b769160448083019260209291908290030181600087803b15801561183757600080fd5b505af115801561184b573d6000803e3d6000fd5b505050506040513d602081101561186157600080fd5b50519050610a8087828686600080611919565b600054600160a060020a031681565b6007546000908190610db190600160a060020a03168280806121fb565b6000846118ac816124e5565b6118ba888888888888611919565b98975050505050505050565b60006118d785858585600080611919565b95945050505050565b6118e8611f1d565b6003546002805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055565b60008060006060600061192a61253d565b600260045588611939816124e5565b60028c5111801561194f57508b51600290066001145b15156119a5576040805160e560020a62461bcd02815260206004820152601060248201527f4552525f494e56414c49445f5041544800000000000000000000000000000000604482015290519081900360640190fd5b6119e08c60008151811015156119b757fe5b906020019060200201518d60018151811015156119d057fe5b906020019060200201518d612597565b60009450600160a060020a0388161515611a4f578615611a4a576040805160e560020a62461bcd02815260206004820152601960248201527f4552525f494e56414c49445f414646494c494154455f46454500000000000000604482015290519081900360640190fd5b611abc565b866000108015611a6157506005548711155b1515611ab7576040805160e560020a62461bcd02815260206004820152601960248201527f4552525f494e56414c49445f414646494c494154455f46454500000000000000604482015290519081900360640190fd5b600194505b339350600160a060020a03891615611ad2578893505b611add8c858761279b565b9250611aec838c8c8b8b612bb2565b9150611af9838386613112565b5060016004559a9950505050505050505050565b6000610a80878787878787600080611b3a565b6000611b328484846000806000611919565b949350505050565b60008060008089611b4a816124e5565b8c518d906000198101908110611b5c57fe5b906020019060200201519350611b917f536f7672796e53776170580000000000000000000000000000000000000000006120d6565b9250611bbc7f424e54546f6b656e0000000000000000000000000000000000000000000000006120d6565b600160a060020a03858116911614611c1e576040805160e560020a62461bcd02815260206004820152601860248201527f4552525f494e56414c49445f5441524745545f544f4b454e0000000000000000604482015290519081900360640190fd5b611c2c8d8d8d308b8b611919565b9150611c398484846131f5565b604080517f427c0374000000000000000000000000000000000000000000000000000000008152600481018c9052602481018b905260448101849052606481018a90529051600160a060020a0385169163427c037491608480830192600092919082900301818387803b158015611caf57600080fd5b505af1158015611cc3573d6000803e3d6000fd5b50939f9e505050505050505050505050505050565b600154600160a060020a031681565b60606000611d147f436f6e76657273696f6e5061746846696e6465720000000000000000000000006120d6565b604080517fa1c421cd000000000000000000000000000000000000000000000000000000008152600160a060020a038781166004830152868116602483015291519293509083169163a1c421cd9160448082019260009290919082900301818387803b158015611d8357600080fd5b505af1158015611d97573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526020811015611dc057600080fd5b810190808051640100000000811115611dd857600080fd5b82016020810184811115611deb57600080fd5b8151856020820283011164010000000082111715611e0857600080fd5b50909550505050505b5092915050565b611e20611f1d565b600054600160a060020a0382811691161415611e86576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f53414d455f4f574e4552000000000000000000000000000000000000604482015290519081900360640190fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b611ebd611f1d565b620f4240811115611f18576040805160e560020a62461bcd02815260206004820152601960248201527f4552525f494e56414c49445f414646494c494154455f46454500000000000000604482015290519081900360640190fd5b600555565b600054600160a060020a03163314611f7f576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b565b600160a060020a0381161515611fe1576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b50565b600160a060020a038116301415611fe1576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f414444524553535f49535f53454c4600000000000000000000000000604482015290519081900360640190fd5b6000806120506135d7565b604080517f69735632384f72486967686572282900000000000000000000000000000000008152815190819003600f018120600482526024820190925260208082018051600160e060020a0316600160e060020a0319909416939093178352815191929091849188611388fa92508280156120cb5750815115155b93505b505050919050565b600254604080517fbb34534c000000000000000000000000000000000000000000000000000000008152600481018490529051600092600160a060020a03169163bb34534c91602480830192602092919082900301818787803b15801561213c57600080fd5b505af1158015612150573d6000803e3d6000fd5b505050506040513d602081101561216657600080fd5b505192915050565b604080517f7472616e7366657228616464726573732c75696e74323536290000000000000081528151908190036019018120600160a060020a03851660248301526044808301859052835180840390910181526064909201909252602081018051600160e060020a0316600160e060020a0319909316929092179091526121f69084906132bc565b505050565b6000806122066135f6565b604080517f67657452657475726e28616464726573732c616464726573732c75696e74323581527f36290000000000000000000000000000000000000000000000000000000000006020808301919091528251918290036022018220600160a060020a03808b16602485015289166044840152606480840189905284518085039091018152608490930184529082018051600160e060020a0316600160e060020a0319909216919091178152815191929184918b5afa8015156122c857600080fd5b505080516020909101519097909650945050505050565b600160a060020a03811660009081526006602052604081205460ff161515612308575080610a52565b61231183612045565b15612331575073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee610a52565b61233a8361334a565b9392505050565b6000808315156123545760009150611e11565b5082820282848281151561236457fe5b041461233a576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b600080808311612414576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f4449564944455f42595f5a45524f0000000000000000000000000000604482015290519081900360640190fd5b828481151561241f57fe5b04949350505050565b60008282018381101561233a576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b6000818310156124df576040805160e560020a62461bcd02815260206004820152600d60248201527f4552525f554e444552464c4f5700000000000000000000000000000000000000604482015290519081900360640190fd5b50900390565b60008111611fe1576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f5a45524f5f56414c5545000000000000000000000000000000000000604482015290519081900360640190fd5b600454600114611f7f576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f5245454e5452414e4359000000000000000000000000000000000000604482015290519081900360640190fd5b60008083600160a060020a0316638da5cb5b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156125d857600080fd5b505af11580156125ec573d6000803e3d6000fd5b505050506040513d602081101561260257600080fd5b5051915061260f82612045565b905060003411156126dd57348314612671576040805160e560020a62461bcd02815260206004820152601760248201527f4552525f4554485f414d4f554e545f4d49534d41544348000000000000000000604482015290519081900360640190fd5b8015156126d8576126818261334a565b600160a060020a031663d0e30db0346040518263ffffffff1660e060020a0281526004016000604051808303818588803b1580156126be57600080fd5b505af11580156126d2573d6000803e3d6000fd5b50505050505b612794565b600160a060020a03851660009081526006602052604090205460ff16156127765761270a85333086613497565b80156126d85784600160a060020a0316632e1a7d4d846040518263ffffffff1660e060020a02815260040180828152602001915050600060405180830381600087803b15801561275957600080fd5b505af115801561276d573d6000803e3d6000fd5b50505050612794565b8015612788576126d885338486613497565b61279485333086613497565b5050505050565b60608060008060008060008060006127b1613611565b8c51600290046040519080825280602002602001820160405280156127f057816020015b6127dd613611565b8152602001906001900390816127d55790505b509850600097506128207f424e54546f6b656e0000000000000000000000000000000000000000000000006120d6565b9650600095505b60018d51038610156129bb578c8660010181518110151561284457fe5b90602001906020020151945084600160a060020a0316638da5cb5b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561288e57600080fd5b505af11580156128a2573d6000803e3d6000fd5b505050506040513d60208110156128b857600080fd5b50518d519094508d90600288019081106128ce57fe5b9060200190602002015192508a80156128e5575087155b8015612902575086600160a060020a031683600160a060020a0316145b9150811561290f57600197505b60e06040519081016040528085600160a060020a0316815260200186600160a060020a031681526020018e8881518110151561294757fe5b90602001906020020151600160a060020a0316815260200184600160a060020a031681526020016000600160a060020a0316815260200161298786612045565b1515815283151560209091015289600288048151811015156129a557fe5b6020908102909101015260029590950194612827565b8860008151811015156129ca57fe5b6020908102909101810151604080820151600160a060020a0316600090815260069093529091205490915060ff1615612a40578060a0015115612a265773eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6040820152612a40565b8051612a319061334a565b600160a060020a031660408201525b885189906000198101908110612a5257fe5b60209081029091018101516060810151600160a060020a03166000908152600690925260409091205490915060ff1615612ac9578060a0015115612aaf5773eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6060820152612ac9565b8051612aba9061334a565b600160a060020a031660608201525b600095505b8851861015612ba1578886815181101515612ae557fe5b9060200190602002015190508060a0015115612b8f578060c0015115612b1057306080820152612b8a565b6001895103861415612b3057600160a060020a038c166080820152612b8a565b8886600101815181101515612b4157fe5b9060200190602002015160a0015115612b83578886600101815181101515612b6557fe5b6020908102909101015151600160a060020a03166080820152612b8a565b3060808201525b612b96565b3060808201525b600190950194612ace565b50969b9a5050505050505050505050565b600080600080612bc0613611565b6000899350600092505b8a518310156130ab578a83815181101515612be157fe5b9060200190602002015191508160a0015115612c72578215801590612c2e57508a5130908c906000198601908110612c1557fe5b9060200190602002015160800151600160a060020a0316145b8015612c555750604080830151600160a060020a031660009081526006602052205460ff16155b15612c6d57612c6d826040015183600001518661216e565b612ca8565b8160200151600160a060020a03168260400151600160a060020a0316141515612ca857612ca882604001518360000151866131f5565b8160a001511515612d6b578151604080840151606085015182517f5e5144eb000000000000000000000000000000000000000000000000000000008152600160a060020a039283166004820152908216602482015260448101889052600160648201529151921691635e5144eb916084808201926020929091908290030181600087803b158015612d3857600080fd5b505af1158015612d4c573d6000803e3d6000fd5b505050506040513d6020811015612d6257600080fd5b50519450612f08565b604080830151600160a060020a031660009081526006602052205460ff1615612e495781516040808401516060850151608086015183517fe8dc12ff000000000000000000000000000000000000000000000000000000008152600160a060020a03938416600482015291831660248301526044820189905233606483015282166084820152915192169163e8dc12ff91349160a480830192602092919082900301818588803b158015612e1e57600080fd5b505af1158015612e32573d6000803e3d6000fd5b50505050506040513d6020811015612d6257600080fd5b81516040808401516060850151608086015183517fe8dc12ff000000000000000000000000000000000000000000000000000000008152600160a060020a03938416600482015291831660248301526044820189905233606483015282166084820152915192169163e8dc12ff9160a4808201926020929091908290030181600087803b158015612ed957600080fd5b505af1158015612eed573d6000803e3d6000fd5b505050506040513d6020811015612f0357600080fd5b505194505b8160c001511561301a57612f29620f4240611362878a63ffffffff61234116565b90508160600151600160a060020a031663a9059cbb89836040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b158015612f9257600080fd5b505af1158015612fa6573d6000803e3d6000fd5b505050506040513d6020811015612fbc57600080fd5b50511515613014576040805160e560020a62461bcd02815260206004820152601760248201527f4552525f4645455f5452414e534645525f4641494c4544000000000000000000604482015290519081900360640190fd5b80850394505b8160600151600160a060020a03168260400151600160a060020a03168360200151600160a060020a03167f7154b38b5dd31bb3122436a96d4e09aba5b323ae1fd580025fab55074334c0958789336040518084815260200183815260200182600160a060020a0316600160a060020a03168152602001935050505060405180910390a4849350600190920191612bca565b88851015613103576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f52455455524e5f544f4f5f4c4f570000000000000000000000000000604482015290519081900360640190fd5b50929998505050505050505050565b61311a613611565b600084600186510381518110151561312e57fe5b602090810290910101516080810151909250600160a060020a0316301461315457612794565b506060810151600160a060020a03811660009081526006602052604090205460ff16156131ea5760a08201511561318757fe5b80600160a060020a031663205c287884866040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050600060405180830381600087803b15801561275957600080fd5b61279481848661216e565b604080517fdd62ed3e000000000000000000000000000000000000000000000000000000008152306004820152600160a060020a038481166024830152915160009286169163dd62ed3e91604480830192602092919082900301818787803b15801561326057600080fd5b505af1158015613274573d6000803e3d6000fd5b505050506040513d602081101561328a57600080fd5b50519050818110156132b65760008111156132ab576132ab8484600061354f565b6132b684848461354f565b50505050565b6132c46135d7565b602060405190810160405280600181525090506020818351602085016000875af18015156132f157600080fd5b50805115156121f6576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f5452414e534645525f4641494c454400000000000000000000000000604482015290519081900360640190fd5b60008060008084600160a060020a03166371f52bf36040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561338e57600080fd5b505af11580156133a2573d6000803e3d6000fd5b505050506040513d60208110156133b857600080fd5b505161ffff169250600091505b828210156134795784600160a060020a03166319b64015836040518263ffffffff1660e060020a02815260040180828152602001915050602060405180830381600087803b15801561341657600080fd5b505af115801561342a573d6000803e3d6000fd5b505050506040513d602081101561344057600080fd5b5051600160a060020a03811660009081526006602052604090205490915060ff161561346e578093506120ce565b6001909101906133c5565b5073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee949350505050565b604080517f7472616e7366657246726f6d28616464726573732c616464726573732c75696e81527f74323536290000000000000000000000000000000000000000000000000000006020808301919091528251918290036025018220600160a060020a03808816602485015286166044840152606480840186905284518085039091018152608490930190935281018051600160e060020a0316600160e060020a0319909316929092179091526132b69085906132bc565b604080517f617070726f766528616464726573732c75696e7432353629000000000000000081528151908190036018018120600160a060020a03851660248301526044808301859052835180840390910181526064909201909252602081018051600160e060020a0316600160e060020a0319909316929092179091526121f69084906132bc565b6020604051908101604052806001906020820280388339509192915050565b60408051808201825290600290829080388339509192915050565b6040805160e081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810191909152905600a165627a7a72305820c663caccd0f92dedd66f87b5b8167fe490551f2bec97adf4d32a21482d8a8ac00029", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x187 JUMPI PUSH4 0xFFFFFFFF PUSH1 0xE0 PUSH1 0x2 EXP PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x24C7EC7 DUP2 EQ PUSH2 0x18C JUMPI DUP1 PUSH4 0x2EF521E EQ PUSH2 0x1A8 JUMPI DUP1 PUSH4 0x3613F39 EQ PUSH2 0x1CE JUMPI DUP1 PUSH4 0xC8496CC EQ PUSH2 0x203 JUMPI DUP1 PUSH4 0x2978C10E EQ PUSH2 0x273 JUMPI DUP1 PUSH4 0x2FE8A6AD EQ PUSH2 0x2FC JUMPI DUP1 PUSH4 0x49D10B64 EQ PUSH2 0x311 JUMPI DUP1 PUSH4 0x569706EB EQ PUSH2 0x326 JUMPI DUP1 PUSH4 0x5D732FF2 EQ PUSH2 0x389 JUMPI DUP1 PUSH4 0x5E35359E EQ PUSH2 0x39E JUMPI DUP1 PUSH4 0x61CD756E EQ PUSH2 0x3C8 JUMPI DUP1 PUSH4 0x699E7546 EQ PUSH2 0x3F9 JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x40E JUMPI DUP1 PUSH4 0x7B103999 EQ PUSH2 0x423 JUMPI DUP1 PUSH4 0x7F9C0ECD EQ PUSH2 0x438 JUMPI DUP1 PUSH4 0x8077CCF7 EQ PUSH2 0x48F JUMPI DUP1 PUSH4 0x89F9CC61 EQ PUSH2 0x4B0 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x523 JUMPI DUP1 PUSH4 0x98E95740 EQ PUSH2 0x538 JUMPI DUP1 PUSH4 0xAB6214CE EQ PUSH2 0x54D JUMPI DUP1 PUSH4 0xB1E9932B EQ PUSH2 0x5B7 JUMPI DUP1 PUSH4 0xB4A176D3 EQ PUSH2 0x622 JUMPI DUP1 PUSH4 0xB77D239B EQ PUSH2 0x637 JUMPI DUP1 PUSH4 0xC52173DE EQ PUSH2 0x6A1 JUMPI DUP1 PUSH4 0xC7BA24BC EQ PUSH2 0x700 JUMPI DUP1 PUSH4 0xC98FEFED EQ PUSH2 0x75E JUMPI DUP1 PUSH4 0xCB32564E EQ PUSH2 0x7BC JUMPI DUP1 PUSH4 0xD4EE1D90 EQ PUSH2 0x830 JUMPI DUP1 PUSH4 0xD734FA19 EQ PUSH2 0x845 JUMPI DUP1 PUSH4 0xE57738E5 EQ PUSH2 0x8BC JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x92C JUMPI DUP1 PUSH4 0xF3898A97 EQ PUSH2 0x94D JUMPI DUP1 PUSH4 0xF3BC7D2A EQ PUSH2 0x99E JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x198 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A6 PUSH1 0x4 CALLDATALOAD ISZERO ISZERO PUSH2 0x9B6 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1B4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A6 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD ISZERO ISZERO PUSH2 0x9FE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1DA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1EF PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0xA47 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x20F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x25A SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP POP SWAP4 CALLDATALOAD SWAP5 POP PUSH2 0xA58 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x27F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x2EA SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP POP DUP5 CALLDATALOAD SWAP6 POP POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD SWAP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x40 DUP3 ADD CALLDATALOAD DUP2 AND SWAP4 POP PUSH1 0x60 DUP3 ADD CALLDATALOAD AND SWAP2 POP PUSH1 0x80 ADD CALLDATALOAD PUSH2 0xA70 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x308 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1EF PUSH2 0xA8B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x31D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A6 PUSH2 0xAAC JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x2EA SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP POP DUP5 CALLDATALOAD SWAP6 POP POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD SWAP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x40 DUP3 ADD CALLDATALOAD AND SWAP3 POP PUSH1 0x60 ADD CALLDATALOAD SWAP1 POP PUSH2 0xD2B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x395 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2EA PUSH2 0xD46 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3AA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A6 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0xD4C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3D4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3DD PUSH2 0xD85 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x405 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x25A PUSH2 0xD94 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x41A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A6 PUSH2 0xDB9 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x42F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3DD PUSH2 0xE8C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x444 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x2EA SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP POP SWAP4 CALLDATALOAD SWAP5 POP PUSH2 0xE9B SWAP4 POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x49B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1EF PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x16CA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4BC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x2EA SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 CALLDATALOAD DUP2 AND SWAP7 POP PUSH1 0x20 DUP7 ADD CALLDATALOAD SWAP6 PUSH1 0x40 DUP2 ADD CALLDATALOAD SWAP6 POP PUSH1 0x60 ADD CALLDATALOAD AND SWAP3 POP PUSH2 0x16DF SWAP2 POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x52F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3DD PUSH2 0x1874 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x544 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x25A PUSH2 0x1883 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x2EA SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP POP DUP5 CALLDATALOAD SWAP6 POP POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD SWAP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x40 DUP3 ADD CALLDATALOAD DUP2 AND SWAP4 POP PUSH1 0x60 DUP3 ADD CALLDATALOAD AND SWAP2 POP PUSH1 0x80 ADD CALLDATALOAD PUSH2 0x18A0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5C3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x2EA SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP POP DUP5 CALLDATALOAD SWAP6 POP POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD SWAP3 PUSH1 0x40 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP2 POP PUSH2 0x18C6 SWAP1 POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x62E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A6 PUSH2 0x18E0 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x2EA SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP POP DUP5 CALLDATALOAD SWAP6 POP POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD SWAP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x40 DUP3 ADD CALLDATALOAD DUP2 AND SWAP4 POP PUSH1 0x60 DUP3 ADD CALLDATALOAD AND SWAP2 POP PUSH1 0x80 ADD CALLDATALOAD PUSH2 0x1919 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x2EA SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP POP DUP5 CALLDATALOAD SWAP6 POP POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD SWAP3 PUSH1 0x40 DUP2 ADD CALLDATALOAD SWAP3 POP PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP2 POP PUSH1 0x80 ADD CALLDATALOAD PUSH2 0x1B0D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x70C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x2EA SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP POP DUP5 CALLDATALOAD SWAP6 POP POP POP PUSH1 0x20 SWAP1 SWAP3 ADD CALLDATALOAD SWAP2 POP PUSH2 0x1B20 SWAP1 POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x2EA SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP POP DUP5 CALLDATALOAD SWAP6 POP POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD SWAP3 PUSH1 0x40 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP2 POP PUSH2 0x18C6 SWAP1 POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x2EA SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP POP DUP5 CALLDATALOAD SWAP6 POP POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD SWAP3 PUSH1 0x40 DUP2 ADD CALLDATALOAD SWAP3 POP PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP2 POP PUSH1 0x80 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0xA0 DUP3 ADD CALLDATALOAD AND SWAP1 PUSH1 0xC0 ADD CALLDATALOAD PUSH2 0x1B3A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x83C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3DD PUSH2 0x1CD8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x851 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x86C PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH2 0x1CE7 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP4 MLOAD DUP2 DUP4 ADD MSTORE DUP4 MLOAD SWAP2 SWAP3 DUP4 SWAP3 SWAP1 DUP4 ADD SWAP2 DUP6 DUP2 ADD SWAP2 MUL DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x8A8 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x890 JUMP JUMPDEST POP POP POP POP SWAP1 POP ADD SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8C8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x2EA SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP POP DUP5 CALLDATALOAD SWAP6 POP POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD SWAP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x40 DUP3 ADD CALLDATALOAD AND SWAP3 POP PUSH1 0x60 ADD CALLDATALOAD SWAP1 POP PUSH2 0xD2B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x938 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A6 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x1E18 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x2EA SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP POP DUP5 CALLDATALOAD SWAP6 POP POP POP PUSH1 0x20 SWAP1 SWAP3 ADD CALLDATALOAD SWAP2 POP PUSH2 0x1B20 SWAP1 POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9AA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A6 PUSH1 0x4 CALLDATALOAD PUSH2 0x1EB5 JUMP JUMPDEST PUSH2 0x9BE PUSH2 0x1F1D JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD SWAP2 ISZERO ISZERO PUSH21 0x10000000000000000000000000000000000000000 MUL PUSH21 0xFF0000000000000000000000000000000000000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0xA06 PUSH2 0x1F1D JUMP JUMPDEST DUP2 PUSH2 0xA10 DUP2 PUSH2 0x1F81 JUMP JUMPDEST DUP3 PUSH2 0xA1A DUP2 PUSH2 0x1FE4 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP2 SWAP1 SWAP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP2 ISZERO ISZERO SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA52 DUP3 PUSH2 0x2045 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xA65 DUP5 DUP5 PUSH2 0xE9B JUMP JUMPDEST SWAP5 PUSH1 0x0 SWAP5 POP SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA80 DUP8 DUP8 DUP8 DUP8 DUP8 DUP8 PUSH2 0x1919 JUMP JUMPDEST SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ DUP1 PUSH2 0xAE1 JUMPI POP PUSH1 0x3 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST ISZERO ISZERO PUSH2 0xB37 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0xB60 PUSH32 0x436F6E7472616374526567697374727900000000000000000000000000000000 PUSH2 0x20D6 JUMP JUMPDEST PUSH1 0x2 SLOAD SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP4 AND SWAP2 AND EQ DUP1 ISZERO SWAP1 PUSH2 0xB89 JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO JUMPDEST ISZERO ISZERO PUSH2 0xBDF JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245474953545259000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0xBB34534C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH32 0x436F6E7472616374526567697374727900000000000000000000000000000000 PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP2 PUSH4 0xBB34534C SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC63 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xC77 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xC8D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ ISZERO PUSH2 0xCEE JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245474953545259000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP5 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP3 DUP4 AND OR SWAP1 SWAP3 SSTORE SWAP1 SWAP2 AND SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH2 0xD3C DUP7 DUP7 DUP7 PUSH1 0x0 DUP8 DUP8 PUSH2 0x1919 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x5 SLOAD DUP2 JUMP JUMPDEST PUSH2 0xD54 PUSH2 0x1F1D JUMP JUMPDEST DUP3 PUSH2 0xD5E DUP2 PUSH2 0x1F81 JUMP JUMPDEST DUP3 PUSH2 0xD68 DUP2 PUSH2 0x1F81 JUMP JUMPDEST DUP4 PUSH2 0xD72 DUP2 PUSH2 0x1FE4 JUMP JUMPDEST PUSH2 0xD7D DUP7 DUP7 DUP7 PUSH2 0x216E JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x0 SWAP1 DUP2 SWAP1 PUSH2 0xDB1 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP3 DUP1 DUP1 PUSH2 0x21FB JUMP JUMPDEST SWAP2 POP SWAP2 POP SWAP1 SWAP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0xE1B JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND SWAP4 SWAP1 SWAP2 AND SWAP2 PUSH32 0x343765429AEA5A34B3FF6A3785A98A5ABB2597ACA87BFBB58632C173D585373A SWAP2 LOG3 PUSH1 0x1 DUP1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND OR SWAP1 SWAP2 SSTORE AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0xED6 PUSH32 0x536F7672796E53776170466F726D756C61000000000000000000000000000000 PUSH2 0x20D6 JUMP JUMPDEST SWAP5 POP DUP13 SWAP11 POP PUSH1 0x2 DUP15 MLOAD GT DUP1 ISZERO PUSH2 0xEF1 JUMPI POP DUP14 MLOAD PUSH1 0x2 SWAP1 MOD PUSH1 0x1 EQ JUMPDEST ISZERO ISZERO PUSH2 0xF47 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5041544800000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x2 SWAP4 POP JUMPDEST DUP14 MLOAD DUP5 LT ISZERO PUSH2 0x16B8 JUMPI DUP14 PUSH1 0x2 DUP6 SUB DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xF66 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD SWAP3 POP DUP14 PUSH1 0x1 DUP6 SUB DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xF83 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD SWAP2 POP DUP14 DUP5 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xF9D JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD SWAP1 POP DUP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x8DA5CB5B PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xFE7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xFFB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1011 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP6 POP PUSH2 0x101F DUP7 DUP5 PUSH2 0x22DF JUMP JUMPDEST SWAP3 POP PUSH2 0x102B DUP7 DUP3 PUSH2 0x22DF JUMP JUMPDEST SWAP1 POP DUP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ ISZERO PUSH2 0x138C JUMPI PUSH1 0x3 DUP5 LT DUP1 PUSH2 0x1082 JUMPI POP DUP14 PUSH1 0x3 DUP6 SUB DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x1062 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ ISZERO JUMPDEST ISZERO PUSH2 0x10F4 JUMPI DUP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x18160DDD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x10C5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x10D9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x10EF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP9 POP JUMPDEST DUP6 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xD8959512 DUP5 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x114F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1163 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1179 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xE53AAE900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 MLOAD SWAP3 SWAP11 POP SWAP1 DUP9 AND SWAP2 PUSH4 0xE53AAE9 SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0xA0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x11E3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x11F7 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0xA0 DUP2 LT ISZERO PUSH2 0x120D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x20 SWAP1 DUP2 ADD MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xF3250FE200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP14 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP13 SWAP1 MSTORE PUSH4 0xFFFFFFFF DUP4 AND PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 DUP2 ADD DUP16 SWAP1 MSTORE SWAP1 MLOAD SWAP2 SWAP10 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 AND SWAP3 PUSH4 0xF3250FE2 SWAP3 PUSH1 0x84 DUP1 DUP5 ADD SWAP4 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x128E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x12A2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x12B8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x579CD3CA00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP13 POP PUSH2 0x136E SWAP2 PUSH3 0xF4240 SWAP2 PUSH2 0x1362 SWAP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND SWAP2 PUSH4 0x579CD3CA SWAP2 PUSH1 0x4 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1325 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1339 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x134F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD DUP15 SWAP1 PUSH4 0xFFFFFFFF SWAP1 DUP2 AND SWAP1 PUSH2 0x2341 AND JUMP JUMPDEST SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x23BA AND JUMP JUMPDEST SWAP11 DUP12 SWAP1 SUB SWAP11 SWAP10 POP PUSH2 0x1385 DUP10 DUP13 PUSH4 0xFFFFFFFF PUSH2 0x2428 AND JUMP JUMPDEST SWAP9 POP PUSH2 0x16AD JUMP JUMPDEST DUP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ ISZERO PUSH2 0x169B JUMPI PUSH1 0x3 DUP5 LT DUP1 PUSH2 0x13E1 JUMPI POP DUP14 PUSH1 0x3 DUP6 SUB DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x13C1 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ ISZERO JUMPDEST ISZERO PUSH2 0x1453 JUMPI DUP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x18160DDD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1424 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1438 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x144E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP9 POP JUMPDEST DUP6 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xD8959512 DUP3 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x14AE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x14C2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x14D8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xE53AAE900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 MLOAD SWAP3 SWAP11 POP SWAP1 DUP9 AND SWAP2 PUSH4 0xE53AAE9 SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0xA0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1542 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1556 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0xA0 DUP2 LT ISZERO PUSH2 0x156C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x20 SWAP1 DUP2 ADD MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x76CF0B5600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP14 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP13 SWAP1 MSTORE PUSH4 0xFFFFFFFF DUP4 AND PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 DUP2 ADD DUP16 SWAP1 MSTORE SWAP1 MLOAD SWAP2 SWAP10 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 AND SWAP3 PUSH4 0x76CF0B56 SWAP3 PUSH1 0x84 DUP1 DUP5 ADD SWAP4 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x15ED JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1601 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1617 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x579CD3CA00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP13 POP PUSH2 0x1684 SWAP2 PUSH3 0xF4240 SWAP2 PUSH2 0x1362 SWAP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP12 AND SWAP2 PUSH4 0x579CD3CA SWAP2 PUSH1 0x4 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1325 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP11 DUP12 SWAP1 SUB SWAP11 SWAP10 POP PUSH2 0x1385 DUP10 DUP13 PUSH4 0xFFFFFFFF PUSH2 0x2485 AND JUMP JUMPDEST PUSH2 0x16A7 DUP7 DUP5 DUP4 DUP15 PUSH2 0x21FB JUMP JUMPDEST SWAP1 SWAP12 POP SWAP10 POP JUMPDEST PUSH1 0x2 DUP5 ADD SWAP4 POP PUSH2 0xF4C JUMP JUMPDEST POP SWAP9 SWAP13 SWAP12 POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP6 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xFC0C546A PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1720 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1734 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x174A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD DUP8 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP2 AND SWAP1 DUP9 SWAP1 PUSH1 0x0 SWAP1 DUP2 LT PUSH2 0x1767 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ PUSH2 0x17CF JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F534F555243455F544F4B454E0000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0xAAFD6B7600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP8 SWAP1 MSTORE CALLER PUSH1 0x24 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 AND SWAP2 PUSH4 0xAAFD6B76 SWAP2 PUSH1 0x44 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1837 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x184B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1861 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 POP PUSH2 0xA80 DUP8 DUP3 DUP7 DUP7 PUSH1 0x0 DUP1 PUSH2 0x1919 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x0 SWAP1 DUP2 SWAP1 PUSH2 0xDB1 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP3 DUP1 DUP1 PUSH2 0x21FB JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH2 0x18AC DUP2 PUSH2 0x24E5 JUMP JUMPDEST PUSH2 0x18BA DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 PUSH2 0x1919 JUMP JUMPDEST SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x18D7 DUP6 DUP6 DUP6 DUP6 PUSH1 0x0 DUP1 PUSH2 0x1919 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH2 0x18E8 PUSH2 0x1F1D JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x2 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 PUSH1 0x0 PUSH2 0x192A PUSH2 0x253D JUMP JUMPDEST PUSH1 0x2 PUSH1 0x4 SSTORE DUP9 PUSH2 0x1939 DUP2 PUSH2 0x24E5 JUMP JUMPDEST PUSH1 0x2 DUP13 MLOAD GT DUP1 ISZERO PUSH2 0x194F JUMPI POP DUP12 MLOAD PUSH1 0x2 SWAP1 MOD PUSH1 0x1 EQ JUMPDEST ISZERO ISZERO PUSH2 0x19A5 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5041544800000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x19E0 DUP13 PUSH1 0x0 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x19B7 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD DUP14 PUSH1 0x1 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x19D0 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD DUP14 PUSH2 0x2597 JUMP JUMPDEST PUSH1 0x0 SWAP5 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 AND ISZERO ISZERO PUSH2 0x1A4F JUMPI DUP7 ISZERO PUSH2 0x1A4A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F414646494C494154455F46454500000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x1ABC JUMP JUMPDEST DUP7 PUSH1 0x0 LT DUP1 ISZERO PUSH2 0x1A61 JUMPI POP PUSH1 0x5 SLOAD DUP8 GT ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x1AB7 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F414646494C494154455F46454500000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SWAP5 POP JUMPDEST CALLER SWAP4 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP10 AND ISZERO PUSH2 0x1AD2 JUMPI DUP9 SWAP4 POP JUMPDEST PUSH2 0x1ADD DUP13 DUP6 DUP8 PUSH2 0x279B JUMP JUMPDEST SWAP3 POP PUSH2 0x1AEC DUP4 DUP13 DUP13 DUP12 DUP12 PUSH2 0x2BB2 JUMP JUMPDEST SWAP2 POP PUSH2 0x1AF9 DUP4 DUP4 DUP7 PUSH2 0x3112 JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x4 SSTORE SWAP11 SWAP10 POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA80 DUP8 DUP8 DUP8 DUP8 DUP8 DUP8 PUSH1 0x0 DUP1 PUSH2 0x1B3A JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1B32 DUP5 DUP5 DUP5 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x1919 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 DUP10 PUSH2 0x1B4A DUP2 PUSH2 0x24E5 JUMP JUMPDEST DUP13 MLOAD DUP14 SWAP1 PUSH1 0x0 NOT DUP2 ADD SWAP1 DUP2 LT PUSH2 0x1B5C JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD SWAP4 POP PUSH2 0x1B91 PUSH32 0x536F7672796E5377617058000000000000000000000000000000000000000000 PUSH2 0x20D6 JUMP JUMPDEST SWAP3 POP PUSH2 0x1BBC PUSH32 0x424E54546F6B656E000000000000000000000000000000000000000000000000 PUSH2 0x20D6 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 DUP2 AND SWAP2 AND EQ PUSH2 0x1C1E JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5441524745545F544F4B454E0000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x1C2C DUP14 DUP14 DUP14 ADDRESS DUP12 DUP12 PUSH2 0x1919 JUMP JUMPDEST SWAP2 POP PUSH2 0x1C39 DUP5 DUP5 DUP5 PUSH2 0x31F5 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x427C037400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP13 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP12 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x64 DUP2 ADD DUP11 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND SWAP2 PUSH4 0x427C0374 SWAP2 PUSH1 0x84 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1CAF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1CC3 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP SWAP4 SWAP16 SWAP15 POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0x1D14 PUSH32 0x436F6E76657273696F6E5061746846696E646572000000000000000000000000 PUSH2 0x20D6 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0xA1C421CD00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP7 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE SWAP2 MLOAD SWAP3 SWAP4 POP SWAP1 DUP4 AND SWAP2 PUSH4 0xA1C421CD SWAP2 PUSH1 0x44 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1D83 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1D97 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1DC0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 MLOAD PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x1DD8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD PUSH1 0x20 DUP2 ADD DUP5 DUP2 GT ISZERO PUSH2 0x1DEB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP6 PUSH1 0x20 DUP3 MUL DUP4 ADD GT PUSH5 0x100000000 DUP3 GT OR ISZERO PUSH2 0x1E08 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP SWAP1 SWAP6 POP POP POP POP POP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1E20 PUSH2 0x1F1D JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x1E86 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F4F574E4552000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x1EBD PUSH2 0x1F1D JUMP JUMPDEST PUSH3 0xF4240 DUP2 GT ISZERO PUSH2 0x1F18 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F414646494C494154455F46454500000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x5 SSTORE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x1F7F JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0x1FE1 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ADDRESS EQ ISZERO PUSH2 0x1FE1 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F414444524553535F49535F53454C4600000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2050 PUSH2 0x35D7 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x69735632384F7248696768657228290000000000000000000000000000000000 DUP2 MSTORE DUP2 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0xF ADD DUP2 KECCAK256 PUSH1 0x4 DUP3 MSTORE PUSH1 0x24 DUP3 ADD SWAP1 SWAP3 MSTORE PUSH1 0x20 DUP1 DUP3 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0xE0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xE0 PUSH1 0x2 EXP SUB NOT SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 OR DUP4 MSTORE DUP2 MLOAD SWAP2 SWAP3 SWAP1 SWAP2 DUP5 SWAP2 DUP9 PUSH2 0x1388 STATICCALL SWAP3 POP DUP3 DUP1 ISZERO PUSH2 0x20CB JUMPI POP DUP2 MLOAD ISZERO ISZERO JUMPDEST SWAP4 POP JUMPDEST POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xBB34534C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP2 PUSH4 0xBB34534C SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x213C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2150 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2166 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x7472616E7366657228616464726573732C75696E743235362900000000000000 DUP2 MSTORE DUP2 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x19 ADD DUP2 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x64 SWAP1 SWAP3 ADD SWAP1 SWAP3 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0xE0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xE0 PUSH1 0x2 EXP SUB NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE PUSH2 0x21F6 SWAP1 DUP5 SWAP1 PUSH2 0x32BC JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2206 PUSH2 0x35F6 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x67657452657475726E28616464726573732C616464726573732C75696E743235 DUP2 MSTORE PUSH32 0x3629000000000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP3 MLOAD SWAP2 DUP3 SWAP1 SUB PUSH1 0x22 ADD DUP3 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP12 AND PUSH1 0x24 DUP6 ADD MSTORE DUP10 AND PUSH1 0x44 DUP5 ADD MSTORE PUSH1 0x64 DUP1 DUP5 ADD DUP10 SWAP1 MSTORE DUP5 MLOAD DUP1 DUP6 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x84 SWAP1 SWAP4 ADD DUP5 MSTORE SWAP1 DUP3 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0xE0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xE0 PUSH1 0x2 EXP SUB NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR DUP2 MSTORE DUP2 MLOAD SWAP2 SWAP3 SWAP2 DUP5 SWAP2 DUP12 GAS STATICCALL DUP1 ISZERO ISZERO PUSH2 0x22C8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD MLOAD SWAP1 SWAP8 SWAP1 SWAP7 POP SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO ISZERO PUSH2 0x2308 JUMPI POP DUP1 PUSH2 0xA52 JUMP JUMPDEST PUSH2 0x2311 DUP4 PUSH2 0x2045 JUMP JUMPDEST ISZERO PUSH2 0x2331 JUMPI POP PUSH20 0xEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE PUSH2 0xA52 JUMP JUMPDEST PUSH2 0x233A DUP4 PUSH2 0x334A JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 ISZERO ISZERO PUSH2 0x2354 JUMPI PUSH1 0x0 SWAP2 POP PUSH2 0x1E11 JUMP JUMPDEST POP DUP3 DUP3 MUL DUP3 DUP5 DUP3 DUP2 ISZERO ISZERO PUSH2 0x2364 JUMPI INVALID JUMPDEST DIV EQ PUSH2 0x233A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP4 GT PUSH2 0x2414 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4449564944455F42595F5A45524F0000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP3 DUP5 DUP2 ISZERO ISZERO PUSH2 0x241F JUMPI INVALID JUMPDEST DIV SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 ADD DUP4 DUP2 LT ISZERO PUSH2 0x233A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 DUP4 LT ISZERO PUSH2 0x24DF JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F554E444552464C4F5700000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP SWAP1 SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 GT PUSH2 0x1FE1 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5A45524F5F56414C5545000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x4 SLOAD PUSH1 0x1 EQ PUSH2 0x1F7F JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5245454E5452414E4359000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x8DA5CB5B PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x25D8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x25EC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2602 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 POP PUSH2 0x260F DUP3 PUSH2 0x2045 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 CALLVALUE GT ISZERO PUSH2 0x26DD JUMPI CALLVALUE DUP4 EQ PUSH2 0x2671 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4554485F414D4F554E545F4D49534D41544348000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP1 ISZERO ISZERO PUSH2 0x26D8 JUMPI PUSH2 0x2681 DUP3 PUSH2 0x334A JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xD0E30DB0 CALLVALUE PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x26BE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x26D2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP JUMPDEST PUSH2 0x2794 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x2776 JUMPI PUSH2 0x270A DUP6 CALLER ADDRESS DUP7 PUSH2 0x3497 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x26D8 JUMPI DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x2E1A7D4D DUP5 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2759 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x276D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x2794 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2788 JUMPI PUSH2 0x26D8 DUP6 CALLER DUP5 DUP7 PUSH2 0x3497 JUMP JUMPDEST PUSH2 0x2794 DUP6 CALLER ADDRESS DUP7 PUSH2 0x3497 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x27B1 PUSH2 0x3611 JUMP JUMPDEST DUP13 MLOAD PUSH1 0x2 SWAP1 DIV PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x27F0 JUMPI DUP2 PUSH1 0x20 ADD JUMPDEST PUSH2 0x27DD PUSH2 0x3611 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 SWAP1 SUB SWAP1 DUP2 PUSH2 0x27D5 JUMPI SWAP1 POP JUMPDEST POP SWAP9 POP PUSH1 0x0 SWAP8 POP PUSH2 0x2820 PUSH32 0x424E54546F6B656E000000000000000000000000000000000000000000000000 PUSH2 0x20D6 JUMP JUMPDEST SWAP7 POP PUSH1 0x0 SWAP6 POP JUMPDEST PUSH1 0x1 DUP14 MLOAD SUB DUP7 LT ISZERO PUSH2 0x29BB JUMPI DUP13 DUP7 PUSH1 0x1 ADD DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x2844 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD SWAP5 POP DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x8DA5CB5B PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x288E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x28A2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x28B8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD DUP14 MLOAD SWAP1 SWAP5 POP DUP14 SWAP1 PUSH1 0x2 DUP9 ADD SWAP1 DUP2 LT PUSH2 0x28CE JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD SWAP3 POP DUP11 DUP1 ISZERO PUSH2 0x28E5 JUMPI POP DUP8 ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x2902 JUMPI POP DUP7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ JUMPDEST SWAP2 POP DUP2 ISZERO PUSH2 0x290F JUMPI PUSH1 0x1 SWAP8 POP JUMPDEST PUSH1 0xE0 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 DUP6 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP15 DUP9 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x2947 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x2987 DUP7 PUSH2 0x2045 JUMP JUMPDEST ISZERO ISZERO DUP2 MSTORE DUP4 ISZERO ISZERO PUSH1 0x20 SWAP1 SWAP2 ADD MSTORE DUP10 PUSH1 0x2 DUP9 DIV DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x29A5 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MSTORE PUSH1 0x2 SWAP6 SWAP1 SWAP6 ADD SWAP5 PUSH2 0x2827 JUMP JUMPDEST DUP9 PUSH1 0x0 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x29CA JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x40 DUP1 DUP3 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 SWAP1 SWAP4 MSTORE SWAP1 SWAP2 KECCAK256 SLOAD SWAP1 SWAP2 POP PUSH1 0xFF AND ISZERO PUSH2 0x2A40 JUMPI DUP1 PUSH1 0xA0 ADD MLOAD ISZERO PUSH2 0x2A26 JUMPI PUSH20 0xEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE PUSH1 0x40 DUP3 ADD MSTORE PUSH2 0x2A40 JUMP JUMPDEST DUP1 MLOAD PUSH2 0x2A31 SWAP1 PUSH2 0x334A JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x40 DUP3 ADD MSTORE JUMPDEST DUP9 MLOAD DUP10 SWAP1 PUSH1 0x0 NOT DUP2 ADD SWAP1 DUP2 LT PUSH2 0x2A52 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x60 DUP2 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 SWAP1 SWAP3 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 SLOAD SWAP1 SWAP2 POP PUSH1 0xFF AND ISZERO PUSH2 0x2AC9 JUMPI DUP1 PUSH1 0xA0 ADD MLOAD ISZERO PUSH2 0x2AAF JUMPI PUSH20 0xEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE PUSH1 0x60 DUP3 ADD MSTORE PUSH2 0x2AC9 JUMP JUMPDEST DUP1 MLOAD PUSH2 0x2ABA SWAP1 PUSH2 0x334A JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x60 DUP3 ADD MSTORE JUMPDEST PUSH1 0x0 SWAP6 POP JUMPDEST DUP9 MLOAD DUP7 LT ISZERO PUSH2 0x2BA1 JUMPI DUP9 DUP7 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x2AE5 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD SWAP1 POP DUP1 PUSH1 0xA0 ADD MLOAD ISZERO PUSH2 0x2B8F JUMPI DUP1 PUSH1 0xC0 ADD MLOAD ISZERO PUSH2 0x2B10 JUMPI ADDRESS PUSH1 0x80 DUP3 ADD MSTORE PUSH2 0x2B8A JUMP JUMPDEST PUSH1 0x1 DUP10 MLOAD SUB DUP7 EQ ISZERO PUSH2 0x2B30 JUMPI PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP13 AND PUSH1 0x80 DUP3 ADD MSTORE PUSH2 0x2B8A JUMP JUMPDEST DUP9 DUP7 PUSH1 0x1 ADD DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x2B41 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0xA0 ADD MLOAD ISZERO PUSH2 0x2B83 JUMPI DUP9 DUP7 PUSH1 0x1 ADD DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x2B65 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MLOAD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x80 DUP3 ADD MSTORE PUSH2 0x2B8A JUMP JUMPDEST ADDRESS PUSH1 0x80 DUP3 ADD MSTORE JUMPDEST PUSH2 0x2B96 JUMP JUMPDEST ADDRESS PUSH1 0x80 DUP3 ADD MSTORE JUMPDEST PUSH1 0x1 SWAP1 SWAP6 ADD SWAP5 PUSH2 0x2ACE JUMP JUMPDEST POP SWAP7 SWAP12 SWAP11 POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x2BC0 PUSH2 0x3611 JUMP JUMPDEST PUSH1 0x0 DUP10 SWAP4 POP PUSH1 0x0 SWAP3 POP JUMPDEST DUP11 MLOAD DUP4 LT ISZERO PUSH2 0x30AB JUMPI DUP11 DUP4 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x2BE1 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD SWAP2 POP DUP2 PUSH1 0xA0 ADD MLOAD ISZERO PUSH2 0x2C72 JUMPI DUP3 ISZERO DUP1 ISZERO SWAP1 PUSH2 0x2C2E JUMPI POP DUP11 MLOAD ADDRESS SWAP1 DUP13 SWAP1 PUSH1 0x0 NOT DUP7 ADD SWAP1 DUP2 LT PUSH2 0x2C15 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x80 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ JUMPDEST DUP1 ISZERO PUSH2 0x2C55 JUMPI POP PUSH1 0x40 DUP1 DUP4 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE KECCAK256 SLOAD PUSH1 0xFF AND ISZERO JUMPDEST ISZERO PUSH2 0x2C6D JUMPI PUSH2 0x2C6D DUP3 PUSH1 0x40 ADD MLOAD DUP4 PUSH1 0x0 ADD MLOAD DUP7 PUSH2 0x216E JUMP JUMPDEST PUSH2 0x2CA8 JUMP JUMPDEST DUP2 PUSH1 0x20 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP3 PUSH1 0x40 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ ISZERO ISZERO PUSH2 0x2CA8 JUMPI PUSH2 0x2CA8 DUP3 PUSH1 0x40 ADD MLOAD DUP4 PUSH1 0x0 ADD MLOAD DUP7 PUSH2 0x31F5 JUMP JUMPDEST DUP2 PUSH1 0xA0 ADD MLOAD ISZERO ISZERO PUSH2 0x2D6B JUMPI DUP2 MLOAD PUSH1 0x40 DUP1 DUP5 ADD MLOAD PUSH1 0x60 DUP6 ADD MLOAD DUP3 MLOAD PUSH32 0x5E5144EB00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 DUP4 AND PUSH1 0x4 DUP3 ADD MSTORE SWAP1 DUP3 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 DUP2 ADD DUP9 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x64 DUP3 ADD MSTORE SWAP2 MLOAD SWAP3 AND SWAP2 PUSH4 0x5E5144EB SWAP2 PUSH1 0x84 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2D38 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2D4C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2D62 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP5 POP PUSH2 0x2F08 JUMP JUMPDEST PUSH1 0x40 DUP1 DUP4 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x2E49 JUMPI DUP2 MLOAD PUSH1 0x40 DUP1 DUP5 ADD MLOAD PUSH1 0x60 DUP6 ADD MLOAD PUSH1 0x80 DUP7 ADD MLOAD DUP4 MLOAD PUSH32 0xE8DC12FF00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND PUSH1 0x4 DUP3 ADD MSTORE SWAP2 DUP4 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP3 ADD DUP10 SWAP1 MSTORE CALLER PUSH1 0x64 DUP4 ADD MSTORE DUP3 AND PUSH1 0x84 DUP3 ADD MSTORE SWAP2 MLOAD SWAP3 AND SWAP2 PUSH4 0xE8DC12FF SWAP2 CALLVALUE SWAP2 PUSH1 0xA4 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP6 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2E1E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2E32 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2D62 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x40 DUP1 DUP5 ADD MLOAD PUSH1 0x60 DUP6 ADD MLOAD PUSH1 0x80 DUP7 ADD MLOAD DUP4 MLOAD PUSH32 0xE8DC12FF00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND PUSH1 0x4 DUP3 ADD MSTORE SWAP2 DUP4 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP3 ADD DUP10 SWAP1 MSTORE CALLER PUSH1 0x64 DUP4 ADD MSTORE DUP3 AND PUSH1 0x84 DUP3 ADD MSTORE SWAP2 MLOAD SWAP3 AND SWAP2 PUSH4 0xE8DC12FF SWAP2 PUSH1 0xA4 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2ED9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2EED JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2F03 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP5 POP JUMPDEST DUP2 PUSH1 0xC0 ADD MLOAD ISZERO PUSH2 0x301A JUMPI PUSH2 0x2F29 PUSH3 0xF4240 PUSH2 0x1362 DUP8 DUP11 PUSH4 0xFFFFFFFF PUSH2 0x2341 AND JUMP JUMPDEST SWAP1 POP DUP2 PUSH1 0x60 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xA9059CBB DUP10 DUP4 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2F92 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2FA6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2FBC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD ISZERO ISZERO PUSH2 0x3014 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4645455F5452414E534645525F4641494C4544000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP1 DUP6 SUB SWAP5 POP JUMPDEST DUP2 PUSH1 0x60 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP3 PUSH1 0x40 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP4 PUSH1 0x20 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH32 0x7154B38B5DD31BB3122436A96D4E09ABA5B323AE1FD580025FAB55074334C095 DUP8 DUP10 CALLER PUSH1 0x40 MLOAD DUP1 DUP5 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP4 POP POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 DUP5 SWAP4 POP PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 PUSH2 0x2BCA JUMP JUMPDEST DUP9 DUP6 LT ISZERO PUSH2 0x3103 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F52455455524E5F544F4F5F4C4F570000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP SWAP3 SWAP10 SWAP9 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x311A PUSH2 0x3611 JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH1 0x1 DUP7 MLOAD SUB DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x312E JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MLOAD PUSH1 0x80 DUP2 ADD MLOAD SWAP1 SWAP3 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND ADDRESS EQ PUSH2 0x3154 JUMPI PUSH2 0x2794 JUMP JUMPDEST POP PUSH1 0x60 DUP2 ADD MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x31EA JUMPI PUSH1 0xA0 DUP3 ADD MLOAD ISZERO PUSH2 0x3187 JUMPI INVALID JUMPDEST DUP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x205C2878 DUP5 DUP7 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2759 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2794 DUP2 DUP5 DUP7 PUSH2 0x216E JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0xDD62ED3E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE SWAP2 MLOAD PUSH1 0x0 SWAP3 DUP7 AND SWAP2 PUSH4 0xDD62ED3E SWAP2 PUSH1 0x44 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3260 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3274 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x328A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 POP DUP2 DUP2 LT ISZERO PUSH2 0x32B6 JUMPI PUSH1 0x0 DUP2 GT ISZERO PUSH2 0x32AB JUMPI PUSH2 0x32AB DUP5 DUP5 PUSH1 0x0 PUSH2 0x354F JUMP JUMPDEST PUSH2 0x32B6 DUP5 DUP5 DUP5 PUSH2 0x354F JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0x32C4 PUSH2 0x35D7 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE POP SWAP1 POP PUSH1 0x20 DUP2 DUP4 MLOAD PUSH1 0x20 DUP6 ADD PUSH1 0x0 DUP8 GAS CALL DUP1 ISZERO ISZERO PUSH2 0x32F1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD ISZERO ISZERO PUSH2 0x21F6 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5452414E534645525F4641494C454400000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x71F52BF3 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x338E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x33A2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x33B8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH2 0xFFFF AND SWAP3 POP PUSH1 0x0 SWAP2 POP JUMPDEST DUP3 DUP3 LT ISZERO PUSH2 0x3479 JUMPI DUP5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x19B64015 DUP4 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3416 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x342A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x3440 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 SWAP2 POP PUSH1 0xFF AND ISZERO PUSH2 0x346E JUMPI DUP1 SWAP4 POP PUSH2 0x20CE JUMP JUMPDEST PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x33C5 JUMP JUMPDEST POP PUSH20 0xEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x7472616E7366657246726F6D28616464726573732C616464726573732C75696E DUP2 MSTORE PUSH32 0x7432353629000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP3 MLOAD SWAP2 DUP3 SWAP1 SUB PUSH1 0x25 ADD DUP3 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP9 AND PUSH1 0x24 DUP6 ADD MSTORE DUP7 AND PUSH1 0x44 DUP5 ADD MSTORE PUSH1 0x64 DUP1 DUP5 ADD DUP7 SWAP1 MSTORE DUP5 MLOAD DUP1 DUP6 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x84 SWAP1 SWAP4 ADD SWAP1 SWAP4 MSTORE DUP2 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0xE0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xE0 PUSH1 0x2 EXP SUB NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE PUSH2 0x32B6 SWAP1 DUP6 SWAP1 PUSH2 0x32BC JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x617070726F766528616464726573732C75696E74323536290000000000000000 DUP2 MSTORE DUP2 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x18 ADD DUP2 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x64 SWAP1 SWAP3 ADD SWAP1 SWAP3 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0xE0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xE0 PUSH1 0x2 EXP SUB NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE PUSH2 0x21F6 SWAP1 DUP5 SWAP1 PUSH2 0x32BC JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 SWAP1 PUSH1 0x20 DUP3 MUL DUP1 CODESIZE DUP4 CODECOPY POP SWAP2 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD DUP3 MSTORE SWAP1 PUSH1 0x2 SWAP1 DUP3 SWAP1 DUP1 CODESIZE DUP4 CODECOPY POP SWAP2 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xE0 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE SWAP2 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x60 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0xA0 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0xC0 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP1 JUMP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 0xc6 PUSH4 0xCACCD0F9 0x2d 0xed 0xd6 PUSH16 0x87B5B8167FE490551F2BEC97ADF4D32A 0x21 0x48 0x2d DUP11 DUP11 0xc0 STOP 0x29 ", - "sourceMap": "1166:795:41:-;;;;;;;;;-1:-1:-1;;;1166:795:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3280:206:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3280:206:60;;;;;;;;;4001:157:3;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4001:157:3;-1:-1:-1;;;;;4001:157:3;;;;;;;;;1494:147:41;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1494:147:41;-1:-1:-1;;;;;1494:147:41;;;;;;;;;;;;;;;;;;;;;;;27386:148:3;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;27386:148:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;27386:148:3;;-1:-1:-1;;27386:148:3;;;-1:-1:-1;27386:148:3;;-1:-1:-1;;;;27386:148:3;;;;;;;;;;;;;;;;;;;;;;;;29727:303;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;29727:303:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;29727:303:3;;-1:-1:-1;;29727:303:3;;;-1:-1:-1;;;29727:303:3;;;;;-1:-1:-1;;;;;29727:303:3;;;;;;;-1:-1:-1;29727:303:3;;;;;;-1:-1:-1;29727:303:3;;;;;;;;;;;;;;;;;;;;;1250:38:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1250:38:60;;;;2080:832;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2080:832:60;;;;27848:274:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;27848:274:3;;-1:-1:-1;;27848:274:3;;;-1:-1:-1;;;27848:274:3;;;;;-1:-1:-1;;;;;27848:274:3;;;;;;-1:-1:-1;27848:274:3;;;;-1:-1:-1;27848:274:3;;2489:38;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2489:38:3;;;;1077:194:71;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1077:194:71;-1:-1:-1;;;;;1077:194:71;;;;;;;;;;;;1165:37:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1165:37:60;;;;;;;;-1:-1:-1;;;;;1165:37:60;;;;;;;;;;;;;;1803:156:41;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1803:156:41;;;;1159:176:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1159:176:66;;;;1085:33:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1085:33:60;;;;5106:2283:3;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;5106:2283:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5106:2283:3;;-1:-1:-1;;5106:2283:3;;;-1:-1:-1;5106:2283:3;;-1:-1:-1;;;;5106:2283:3;2556:43;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2556:43:3;-1:-1:-1;;;;;2556:43:3;;;;;14007:558;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;14007:558:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;14007:558:3;;-1:-1:-1;;;;;;;14007:558:3;;;;;-1:-1:-1;14007:558:3;;;;;;;;;;-1:-1:-1;14007:558:3;;;;;-1:-1:-1;14007:558:3;;-1:-1:-1;;14007:558:3;157:20:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;157:20:66;;;;1644:156:41;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1644:156:41;;;;28465:331:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;28465:331:3;;-1:-1:-1;;28465:331:3;;;-1:-1:-1;;;28465:331:3;;;;;-1:-1:-1;;;;;28465:331:3;;;;;;;-1:-1:-1;28465:331:3;;;;;;-1:-1:-1;28465:331:3;;;;;29441:229;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;29441:229:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;29441:229:3;;-1:-1:-1;;29441:229:3;;;-1:-1:-1;;;29441:229:3;;;;;;;;-1:-1:-1;;;;;29441:229:3;;-1:-1:-1;29441:229:3;;-1:-1:-1;29441:229:3;2974:119:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2974:119:60;;;;8480:1350:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8480:1350:3;;-1:-1:-1;;8480:1350:3;;;-1:-1:-1;;;8480:1350:3;;;;;-1:-1:-1;;;;;8480:1350:3;;;;;;;-1:-1:-1;8480:1350:3;;;;;;-1:-1:-1;8480:1350:3;;;;;10804:315;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;10804:315:3;;-1:-1:-1;;10804:315:3;;;-1:-1:-1;;;10804:315:3;;;;;;;;;;-1:-1:-1;10804:315:3;;;;;-1:-1:-1;10804:315:3;;;;;28853:200;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;28853:200:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;28853:200:3;;-1:-1:-1;;28853:200:3;;;-1:-1:-1;;;28853:200:3;;;;;;-1:-1:-1;28853:200:3;;-1:-1:-1;28853:200:3;28179:229;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;28179:229:3;;-1:-1:-1;;28179:229:3;;;-1:-1:-1;;;28179:229:3;;;;;;;;-1:-1:-1;;;;;28179:229:3;;-1:-1:-1;28179:229:3;;-1:-1:-1;28179:229:3;12204:913;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12204:913:3;;-1:-1:-1;;12204:913:3;;;-1:-1:-1;;;12204:913:3;;;;;;;;;;-1:-1:-1;12204:913:3;;;;;-1:-1:-1;12204:913:3;;;;;-1:-1:-1;;;;;12204:913:3;;;;;;;;;;;180:23:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;180:23:66;;;;4493:265:3;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4493:265:3;-1:-1:-1;;;;;4493:265:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;4493:265:3;;;;;;;;;;;;;;;;;29110:274;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;29110:274:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;29110:274:3;;-1:-1:-1;;29110:274:3;;;-1:-1:-1;;;29110:274:3;;;;;-1:-1:-1;;;;;29110:274:3;;;;;;-1:-1:-1;29110:274:3;;;;-1:-1:-1;29110:274:3;;945:140:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;945:140:66;-1:-1:-1;;;;;945:140:66;;;;;27591:200:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;27591:200:3;;-1:-1:-1;;27591:200:3;;;-1:-1:-1;;;27591:200:3;;;;;;-1:-1:-1;27591:200:3;;-1:-1:-1;27591:200:3;3608:199;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3608:199:3;;;;;3280:206:60;575:12:66;:10;:12::i;:::-;3426:26:60;:56;;;;;;;-1:-1:-1;;3426:56:60;;;;;;;;;3280:206::o;4001:157:3:-;575:12:66;:10;:12::i;:::-;4095:6:3;475:23:72;489:8;475:13;:23::i;:::-;4111:6:3;782:18:72;791:8;782;:18::i;:::-;-1:-1:-1;;;;;;;4123:19:3;;;;;;;;:11;:19;;;;;:31;;-1:-1:-1;;4123:31:3;;;;;;;;;;4001:157::o;1494:147:41:-;1580:4;1597:40;1626:10;1597:28;:40::i;:::-;1590:47;1494:147;-1:-1:-1;;1494:147:41:o;27386:148:3:-;27470:7;27479;27500:26;27511:5;27518:7;27500:10;:26::i;:::-;27492:38;27528:1;;-1:-1:-1;27386:148:3;-1:-1:-1;;;27386:148:3:o;29727:303::-;29917:7;29937:89;29951:5;29958:7;29967:10;29979:12;29993:17;30012:13;29937;:89::i;:::-;29930:96;29727:303;-1:-1:-1;;;;;;;29727:303:3:o;1250:38:60:-;;;;;;;;;:::o;2080:832::-;2281:29;2183:5;;-1:-1:-1;;;;;2183:5:60;2169:10;:19;;:50;;-1:-1:-1;2193:26:60;;;;;;;2192:27;2169:50;2161:80;;;;;;;-1:-1:-1;;;;;2161:80:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;2331:28;2341:17;2331:9;:28::i;:::-;2465:8;;2281:79;;-1:-1:-1;;;;;;2442:32:60;;;2465:8;;2442:32;;;;:61;;-1:-1:-1;;;;;;2478:25:60;;;;2442:61;2434:94;;;;;;;-1:-1:-1;;;;;2434:94:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;2628:40;;;;;;2650:17;2628:40;;;;;;2680:1;;-1:-1:-1;;;;;2628:21:60;;;;;:40;;;;;;;;;;;;;;;2680:1;2628:21;:40;;;5:2:-1;;;;30:1;27;20:12;5:2;2628:40:60;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2628:40:60;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2628:40:60;-1:-1:-1;;;;;2628:54:60;;;2620:87;;;;;-1:-1:-1;;;;;2620:87:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;2799:8;;;2784:12;:23;;-1:-1:-1;;;;;2799:8:60;;;-1:-1:-1;;2784:23:60;;;;;;;2886:22;;;;;;;;;;;2080:832::o;27848:274:3:-;28011:7;28031:87;28045:5;28052:7;28061:10;28081:1;28085:17;28104:13;28031;:87::i;:::-;28024:94;27848:274;-1:-1:-1;;;;;;27848:274:3:o;2489:38::-;;;;:::o;1077:194:71:-;575:12:66;:10;:12::i;:::-;1190:6:71;475:23:72;489:8;475:13;:23::i;:::-;1211:3:71;475:23:72;489:8;475:13;:23::i;:::-;1224:3:71;782:18:72;791:8;782;:18::i;:::-;1233:34:71;1246:6;1254:3;1259:7;1233:12;:34::i;:::-;502:1:72;;591::66;1077:194:71;;;:::o;1165:37:60:-;;;-1:-1:-1;;;;;1165:37:60;;:::o;1803:156:41:-;1897:12;;1850:7;;;;1879:76;;-1:-1:-1;;;;;1897:12:41;1850:7;;;1879:9;:76::i;:::-;1872:83;;;;1803:156;;:::o;1159:176:66:-;1219:8;;-1:-1:-1;;;;;1219:8:66;1205:10;:22;1197:52;;;;;-1:-1:-1;;;;;1197:52:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;1277:8;;;1270:5;;1258:28;;-1:-1:-1;;;;;1277:8:66;;;;1270:5;;;;1258:28;;;1298:8;;;;1290:16;;-1:-1:-1;;1290:16:66;;;-1:-1:-1;;;;;1298:8:66;;1290:16;;;;1310:21;;;1159:176::o;1085:33:60:-;;;-1:-1:-1;;;;;1085:33:60;;:::o;5106:2283:3:-;5185:7;5198:14;5216:11;5231:14;5249:15;5268:13;5285:20;5309:26;5596:9;5642:23;5685:18;5723:23;5357:29;5367:18;5357:9;:29::i;:::-;5309:78;;5401:7;5392:16;;5501:1;5486:5;:12;:16;:41;;;;-1:-1:-1;5506:12:3;;5521:1;;5506:16;5526:1;5506:21;5486:41;5478:70;;;;;;;-1:-1:-1;;;;;5478:70:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;5608:1;5596:13;;5591:1777;5615:5;:12;5611:1;:16;5591:1777;;;5668:5;5678:1;5674;:5;5668:12;;;;;;;;;;;;;;;;;;5642:38;;5706:5;5716:1;5712;:5;5706:12;;;;;;;;;;;;;;;;;;5685:33;;5749:5;5755:1;5749:8;;;;;;;;;;;;;;;;;;5723:34;;5803:6;-1:-1:-1;;;;;5786:30:3;;:32;;;;;-1:-1:-1;;;5786:32:3;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5786:32:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5786:32:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5786:32:3;;-1:-1:-1;5868:48:3;5786:32;5904:11;5868:24;:48::i;:::-;5854:62;;5935:48;5960:9;5971:11;5935:24;:48::i;:::-;5921:62;;6008:6;-1:-1:-1;;;;;5993:21:3;:11;-1:-1:-1;;;;;5993:21:3;;5989:1375;;;6109:1;6105;:5;:31;;;;6124:5;6134:1;6130;:5;6124:12;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6114:22:3;:6;-1:-1:-1;;;;;6114:22:3;;;6105:31;6101:79;;;6159:6;-1:-1:-1;;;;;6147:31:3;;:33;;;;;-1:-1:-1;;;6147:33:3;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6147:33:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6147:33:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6147:33:3;;-1:-1:-1;6101:79:3;6240:9;-1:-1:-1;;;;;6240:29:3;;6270:11;6240:42;;;;;-1:-1:-1;;;6240:42:3;;;;;;;-1:-1:-1;;;;;6240:42:3;-1:-1:-1;;;;;6240:42:3;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6240:42:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6240:42:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6240:42:3;6307:33;;;;;;-1:-1:-1;;;;;6307:33:3;;;;;;;;;6240:42;;-1:-1:-1;6307:20:3;;;;;;:33;;;;;;;;;;;;;;;-1:-1:-1;6307:20:3;:33;;;5:2:-1;;;;30:1;27;20:12;5:2;6307:33:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6307:33:3;;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;6307:33:3;;;;;;6355:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6307:33;;-1:-1:-1;;;;;;6355:28:3;;;;;:61;;;;;;;;;;-1:-1:-1;6355:28:3;:61;;;5:2:-1;;;;30:1;27;20:12;5:2;6355:61:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6355:61:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6355:61:3;6439:25;;;;;;;;6355:61;;-1:-1:-1;6428:68:3;;2108:7;;6428:37;;-1:-1:-1;;;;;6439:23:3;;;;;:25;;;;;6355:61;;6439:25;;;;;;;;:23;:25;;;5:2:-1;;;;30:1;27;20:12;5:2;6439:25:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6439:25:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6439:25:3;6428:6;;:37;;;;;:10;:37;:::i;:::-;:41;:68;:41;:68;:::i;:::-;6502:13;;;;;6422:74;-1:-1:-1;6591:18:3;:6;6502:13;6591:18;:10;:18;:::i;:::-;6582:27;;5989:1375;;;6640:6;-1:-1:-1;;;;;6625:21:3;:11;-1:-1:-1;;;;;6625:21:3;;6621:743;;;6742:1;6738;:5;:31;;;;6757:5;6767:1;6763;:5;6757:12;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6747:22:3;:6;-1:-1:-1;;;;;6747:22:3;;;6738:31;6734:79;;;6792:6;-1:-1:-1;;;;;6780:31:3;;:33;;;;;-1:-1:-1;;;6780:33:3;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6780:33:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6780:33:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6780:33:3;;-1:-1:-1;6734:79:3;6873:9;-1:-1:-1;;;;;6873:29:3;;6903:11;6873:42;;;;;-1:-1:-1;;;6873:42:3;;;;;;;-1:-1:-1;;;;;6873:42:3;-1:-1:-1;;;;;6873:42:3;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6873:42:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6873:42:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6873:42:3;6940:33;;;;;;-1:-1:-1;;;;;6940:33:3;;;;;;;;;6873:42;;-1:-1:-1;6940:20:3;;;;;;:33;;;;;;;;;;;;;;;-1:-1:-1;6940:20:3;:33;;;5:2:-1;;;;30:1;27;20:12;5:2;6940:33:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6940:33:3;;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;6940:33:3;;;;;;6988:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6940:33;;-1:-1:-1;;;;;;6988:24:3;;;;;:57;;;;;;;;;;-1:-1:-1;6988:24:3;:57;;;5:2:-1;;;;30:1;27;20:12;5:2;6988:57:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6988:57:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6988:57:3;7068:25;;;;;;;;6988:57;;-1:-1:-1;7057:68:3;;2108:7;;7057:37;;-1:-1:-1;;;;;7068:23:3;;;;;:25;;;;;6988:57;;7068:25;;;;;;;;:23;:25;;;5:2:-1;;;;30:1;27;20:12;7057:68:3;7131:13;;;;;7051:74;-1:-1:-1;7220:18:3;:6;7131:13;7220:18;:10;:18;:::i;6621:743::-;7304:54;7314:9;7325:11;7338;7351:6;7304:9;:54::i;:::-;7288:70;;-1:-1:-1;7288:70:3;-1:-1:-1;6621:743:3;5634:1;5629:6;;;;5591:1777;;;-1:-1:-1;7379:6:3;;5106:2283;-1:-1:-1;;;;;;;;;;;;5106:2283:3:o;2556:43::-;;;;;;;;;;;;;;;:::o;14007:558::-;14178:7;14377:14;14270:12;-1:-1:-1;;;;;14270:18:3;;:20;;;;;-1:-1:-1;;;14270:20:3;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14270:20:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14270:20:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;14270:20:3;14258:8;;-1:-1:-1;;;;;14258:32:3;;;;:5;;14264:1;;14258:8;;;;;;;;;;;;;;;-1:-1:-1;;;;;14258:32:3;;14250:69;;;;;-1:-1:-1;;;;;14250:69:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;14394:58;;;;;;;;;;;;14441:10;14394:58;;;;;;-1:-1:-1;;;;;14394:31:3;;;;;:58;;;;;;;;;;;;;;-1:-1:-1;14394:31:3;:58;;;5:2:-1;;;;30:1;27;20:12;5:2;14394:58:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14394:58:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;14394:58:3;;-1:-1:-1;14492:69:3;14506:5;14394:58;14521:10;14533:12;14555:1;;14492:13;:69::i;157:20:66:-;;;-1:-1:-1;;;;;157:20:66;;:::o;1644:156:41:-;1738:12;;1691:7;;;;1720:76;;-1:-1:-1;;;;;1738:12:41;1691:7;;;1720:9;:76::i;28465:331:3:-;28683:7;28662:10;180:24:72;197:6;180:16;:24::i;:::-;28703:89:3;28717:5;28724:7;28733:10;28745:12;28759:17;28778:13;28703;:89::i;:::-;28696:96;28465:331;-1:-1:-1;;;;;;;;28465:331:3:o;29441:229::-;29576:7;29596:70;29610:5;29617:7;29626:10;29638:12;29660:1;29664;29596:13;:70::i;:::-;29589:77;29441:229;-1:-1:-1;;;;;29441:229:3:o;2974:119:60:-;575:12:66;:10;:12::i;:::-;3077::60;;3066:8;:23;;-1:-1:-1;;3066:23:60;-1:-1:-1;;;;;3077:12:60;;;3066:23;;;;;;2974:119::o;8480:1350:3:-;8710:7;9077:24;9391:19;9532:28;9628:14;565:12:68;:10;:12::i;:::-;287:1;581:5;:14;8689:10:3;180:24:72;8689:10:3;180:16:72;:24::i;:::-;8845:1:3;8830:5;:12;:16;:41;;;;-1:-1:-1;8850:12:3;;8865:1;;8850:16;8870:1;8850:21;8830:41;8822:70;;;;;;;-1:-1:-1;;;;;8822:70:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;8969:64;8987:5;8993:1;8987:8;;;;;;;;;;;;;;;;;;9014:5;9020:1;9014:8;;;;;;;;;;;;;;;;;;9025:7;8969:17;:64::i;:::-;9104:5;;-1:-1:-1;;;;;;9117:31:3;;;9113:241;;;9163:18;;9155:56;;;;;-1:-1:-1;;;;;9155:56:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;9113:241;;;9239:13;9235:1;:17;:53;;;;;9273:15;;9256:13;:32;;9235:53;9227:91;;;;;;;-1:-1:-1;;;;;9227:91:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;9345:4;9323:26;;9113:241;9413:10;;-1:-1:-1;;;;;;9431:26:3;;;9427:58;;9473:12;9459:26;;9427:58;9563:61;9584:5;9591:11;9604:19;9563:20;:61::i;:::-;9532:92;;9645:73;9658:4;9664:7;9673:10;9685:17;9704:13;9645:12;:73::i;:::-;9628:90;;9764:44;9782:4;9788:6;9796:11;9764:17;:44::i;:::-;-1:-1:-1;249:1:68;604:5;:16;9820:6:3;8480:1350;-1:-1:-1;;;;;;;;;;8480:1350:3:o;10804:315::-;10993:7;11013:102;11023:5;11030:7;11039:10;11051:17;11070:14;11086:13;11109:1;11113;11013:9;:102::i;28853:200::-;28961:7;28981:68;28995:5;29002:7;29011:10;29031:1;29043;29047;28981:13;:68::i;:::-;28974:75;28853:200;-1:-1:-1;;;;28853:200:3:o;12204:913::-;12476:7;12489:23;12542:24;12776:14;12455:10;180:24:72;197:6;180:16;:24::i;:::-;12521:12:3;;12515:5;;-1:-1:-1;;12521:16:3;;;12515:23;;;;;;;;;;;;;;12489:49;;12582:23;12592:12;12582:9;:23::i;:::-;12542:64;;12680:20;12690:9;12680;:20::i;:::-;-1:-1:-1;;;;;12665:35:3;;;;;;12657:72;;;;;-1:-1:-1;;;;;12657:72:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;12793:81;12807:5;12814:7;12823:10;12835:4;12841:17;12860:13;12793;:81::i;:::-;12776:98;;12912:49;12928:11;12941;12954:6;12912:15;:49::i;:::-;13016:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13016:21:3;;;;;:79;;;;;;;;;;;;;;;:21;:79;;;5:2:-1;;;;30:1;27;20:12;5:2;13016:79:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;13107:6:3;;12204:913;-1:-1:-1;;;;;;;;;;;;;;;12204:913:3:o;180:23:66:-;;;-1:-1:-1;;;;;180:23:66;;:::o;4493:265:3:-;4590:9;4605:32;4662:33;4672:22;4662:9;:33::i;:::-;4707:47;;;;;;-1:-1:-1;;;;;4707:47:3;;;;;;;;;;;;;;;;4605:91;;-1:-1:-1;4707:19:3;;;;;;:47;;;;;-1:-1:-1;;4707:47:3;;;;;;;;-1:-1:-1;4707:19:3;:47;;;5:2:-1;;;;30:1;27;20:12;5:2;4707:47:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4707:47:3;;;;;;39:16:-1;36:1;17:17;2:54;101:4;4707:47:3;80:15:-1;;;-1:-1;;76:31;65:43;;120:4;113:20;13:2;5:11;;2:2;;;29:1;26;19:12;2:2;4707:47:3;;;;;;20:11:-1;15:3;12:20;9:2;;;45:1;42;35:12;9:2;64:21;;126:4;117:14;;142:31;;;139:2;;;186:1;183;176:12;139:2;224:3;218:10;339:9;333:2;319:12;315:21;297:16;293:44;290:59;268:11;254:12;251:29;239:119;236:2;;;371:1;368;361:12;236:2;-1:-1;4707:47:3;;-1:-1:-1;;;;;4493:265:3;;;;;;:::o;945:140:66:-;575:12;:10;:12::i;:::-;1033:5;;-1:-1:-1;;;;;1020:18:66;;;1033:5;;1020:18;;1012:45;;;;;-1:-1:-1;;;;;1012:45:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;1061:8;:20;;-1:-1:-1;;1061:20:66;-1:-1:-1;;;;;1061:20:66;;;;;;;;;;945:140::o;3608:199:3:-;575:12:66;:10;:12::i;:::-;2170:7:3;3691:44;;;3683:82;;;;;-1:-1:-1;;;;;3683:82:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;3769:15;:34;3608:199::o;642:93:66:-;704:5;;-1:-1:-1;;;;;704:5:66;690:10;:19;682:49;;;;;-1:-1:-1;;;;;682:49:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;642:93::o;553:117:72:-;-1:-1:-1;;;;;620:22:72;;;;612:54;;;;;-1:-1:-1;;;;;612:54:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;553:117;:::o;855:115::-;-1:-1:-1;;;;;917:25:72;;937:4;917:25;;909:57;;;;;-1:-1:-1;;;;;909:57:72;;;;;;;;;;;;;;;;;;;;;;;;;;;26704:625:3;26782:4;26792:12;26808:21;;:::i;:::-;26515:28;;;;;;;;;;;;;;;;22:32:-1;6:49;;26853:54:3;;;;;;49:4:-1;25:18;;;61:17;;-1:-1;;;;;182:15;-1:-1;;;;;;26853:54:3;;;179:29:-1;;;;160:49;;27152:11:3;;26515:28;;49:4:-1;;27238:3:3;;27024:10;26953:4;26937:351;26926:362;;27303:7;:22;;;;-1:-1:-1;27314:6:3;;:11;;27303:22;27296:29;;26704:625;;;;;;;:::o;3647:122:60:-;3732:8;;:33;;;;;;;;;;;;;;3712:7;;-1:-1:-1;;;;;3732:8:60;;:18;;:33;;;;;;;;;;;;;;3712:7;3732:8;:33;;;5:2:-1;;;;30:1;27;20:12;5:2;3732:33:60;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3732:33:60;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3732:33:60;;3647:122;-1:-1:-1;;3647:122:60:o;1214:173:70:-;248:38;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1323:59:70;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;1323:59:70;;;;;;;;25:18:-1;;61:17;;-1:-1;;;;;182:15;-1:-1;;;;;;1323:59:70;;;179:29:-1;;;;160:49;;;1307:76:70;;1315:6;;1307:7;:76::i;:::-;1214:173;;;:::o;25751:697:3:-;25880:7;25889;25902:21;;:::i;:::-;25615:47;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;25947:85:3;;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;25947:85:3;;;;;;25:18:-1;;;61:17;;-1:-1;;;;;182:15;-1:-1;;;;;;25947:85:3;;;179:29:-1;;;;160:49;;26231:11:3;;25947:85;;25615:47;26317:3;;26108:5;26082:3;26066:301;26381:7;26374:15;26371:2;;;26406:1;26403;26396:12;26371:2;-1:-1:-1;;26429:6:3;;;26437;;;;26429;;26437;;-1:-1:-1;25751:697:3;-1:-1:-1;;;;;25751:697:3:o;25245:309::-;-1:-1:-1;;;;;25366:19:3;;25344:11;25366:19;;;:11;:19;;;;;;;;25365:20;25361:39;;;-1:-1:-1;25394:6:3;25387:13;;25361:39;25409:34;25432:10;25409:22;:34::i;:::-;25405:79;;;-1:-1:-1;2227:42:3;25445:39;;25405:79;25508:41;25538:10;25508:29;:41::i;:::-;25489:61;25245:309;-1:-1:-1;;;25245:309:3:o;924:197:69:-;984:7;;1023;;1019:21;;;1039:1;1032:8;;;;1019:21;-1:-1:-1;1057:7:69;;;1062:2;1057;:7;1076:6;;;;;;;;:12;1068:37;;;;;-1:-1:-1;;;;;1068:37:69;;;;;;;;;;;;;;;;;;;;;;;;;;;1307:149;1367:7;;1388:6;;;1380:37;;;;;-1:-1:-1;;;;;1380:37:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;1438:2;1433;:7;;;;;;;;;1307:149;-1:-1:-1;;;;1307:149:69:o;288:144::-;348:7;373;;;392;;;;384:32;;;;;-1:-1:-1;;;;;384:32:69;;;;;;;;;;;;;;;;;;;;;;;;;;;613:129;673:7;694:8;;;;686:34;;;;;-1:-1:-1;;;;;686:34:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;731:7:69;;;613:129::o;259:101:72:-;336:1;327:10;;319:37;;;;;-1:-1:-1;;;;;319:37:72;;;;;;;;;;;;;;;;;;;;;;;;;;;670:88:68;718:5;;249:1;718:17;710:44;;;;;-1:-1:-1;;;;;710:44:68;;;;;;;;;;;;;;;;;;;;;;;;;;;17692:1360:3;17809:25;17868:21;17848:7;-1:-1:-1;;;;;17848:13:3;;:15;;;;;-1:-1:-1;;;17848:15:3;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17848:15:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17848:15:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;17848:15:3;;-1:-1:-1;17892:38:3;17848:15;17892:22;:38::i;:::-;17868:62;;17960:1;17948:9;:13;17944:1105;;;18001:9;:20;;17993:56;;;;;-1:-1:-1;;;;;17993:56:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;18243:16;18242:17;18238:108;;;18273:45;18303:14;18273:29;:45::i;:::-;-1:-1:-1;;;;;18261:66:3;;18334:9;18261:85;;;;;-1:-1:-1;;;18261:85:3;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18261:85:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;18261:85:3;;;;;18238:108;17944:1105;;;-1:-1:-1;;;;;18379:25:3;;;;;;:11;:25;;;;;;;;18375:674;;;18561:57;18578:12;18592:10;18604:4;18610:7;18561:16;:57::i;:::-;18667:16;18663:65;;;18697:12;-1:-1:-1;;;;;18685:34:3;;18720:7;18685:43;;;;;-1:-1:-1;;;18685:43:3;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18685:43:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;18685:43:3;;;;18375:674;;;18892:16;18888:156;;;18910:67;18927:12;18941:10;18953:14;18969:7;18910:16;:67::i;18888:156::-;18987:57;19004:12;19018:10;19030:4;19036:7;18987:16;:57::i;:::-;17692:1360;;;;;:::o;20566:3379::-;20707:16;20729:28;20813:26;20851:16;20972:9;21042:23;21113:20;21167:23;21287:24;21971:30;;:::i;:::-;20781:22;;20806:1;;20781:26;20760:48;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;20729:79;;20842:5;20813:34;;20870:20;20880:9;20870;:20::i;:::-;20851:39;;20994:1;20990:5;;20985:946;21026:1;21001:15;:22;:26;20997:1;:30;20985:946;;;21085:15;21101:1;21105;21101:5;21085:22;;;;;;;;;;;;;;;;;;21042:66;;21147:6;-1:-1:-1;;;;;21147:12:3;;:14;;;;;-1:-1:-1;;;21147:14:3;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;21147:14:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;21147:14:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;21147:14:3;21193:22;;21147:14;;-1:-1:-1;21193:15:3;;21213:1;21209:5;;;21193:22;;;;;;;;;;;;;;21167:48;;21314:20;:46;;;;;21339:21;21338:22;21314:46;:73;;;;;21379:8;-1:-1:-1;;;;;21364:23:3;:11;-1:-1:-1;;;;;21364:23:3;;21314:73;21287:100;;21396:19;21392:53;;;21441:4;21417:28;;21392:53;21465:461;;;;;;;;;21574:9;-1:-1:-1;;;;;21465:461:3;;;;;21526:6;-1:-1:-1;;;;;21465:461:3;;;;;21638:15;21654:1;21638:18;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;21465:461:3;;;;;21675:11;-1:-1:-1;;;;;21465:461:3;;;;;21792:1;-1:-1:-1;;;;;21465:461:3;;;;;21841:33;21864:9;21841:22;:33::i;:::-;21465:461;;;;;;;;;;;;21451:4;21460:1;21456;:5;21451:11;;;;;;;;;;;;;;;;;;:475;21034:1;21029:6;;;;;20985:946;;;22004:4;22009:1;22004:7;;;;;;;;;;;;;;;;;;;;22031:20;;;;;-1:-1:-1;;;;;22019:33:3;;;;;:11;:33;;;;;;;22004:7;;-1:-1:-1;22019:33:3;;22015:422;;;22145:8;:31;;;22141:291;;;2227:42;22182:20;;;:55;22141:291;;;22412:18;;22382:49;;:29;:49::i;:::-;-1:-1:-1;;;;;22347:85:3;:20;;;:85;22141:291;22476:11;;22471:4;;-1:-1:-1;;22476:15:3;;;22471:21;;;;;;;;;;;;;;;;22512:20;;;;-1:-1:-1;;;;;22500:33:3;;;;;:11;:33;;;;;;;;22471:21;;-1:-1:-1;22500:33:3;;22496:422;;;22626:8;:31;;;22622:291;;;2227:42;22663:20;;;:55;22622:291;;;22893:18;;22863:49;;:29;:49::i;:::-;-1:-1:-1;;;;;22828:85:3;:20;;;:85;22622:291;22970:1;22966:5;;22961:965;22977:4;:11;22973:1;:15;22961:965;;;23011:4;23016:1;23011:7;;;;;;;;;;;;;;;;;;23000:18;;23149:8;:31;;;23145:777;;;23279:8;:28;;;23275:520;;;23337:4;23314:20;;;:27;23275:520;;;23443:1;23429:4;:11;:15;23424:1;:20;23420:375;;;-1:-1:-1;;;;;23451:35:3;;:20;;;:35;23420:375;;;23587:4;23592:1;23596;23592:5;23587:11;;;;;;;;;;;;;;;;;;:34;;;23583:212;;;23651:4;23656:1;23660;23656:5;23651:11;;;;;;;;;;;;;;;;;;;:21;-1:-1:-1;;;;;23628:44:3;:20;;;:44;23583:212;;;23791:4;23768:20;;;:27;23583:212;23145:777;;;23912:4;23889:20;;;:27;23145:777;22990:3;;;;;22961:965;;;-1:-1:-1;23937:4:3;;20566:3379;-1:-1:-1;;;;;;;;;;;20566:3379:3:o;15125:2257::-;15288:7;15301:16;15321:18;15397:9;15440:30;;:::i;:::-;16869:23;15342:7;15321:28;;15409:1;15397:13;;15392:1852;15416:5;:12;15412:1;:16;15392:1852;;;15473:5;15479:1;15473:8;;;;;;;;;;;;;;;;;;15440:41;;15513:8;:31;;;15509:731;;;15720:6;;;;;:51;;-1:-1:-1;15730:12:3;;15766:4;;15730:5;;-1:-1:-1;;15736:5:3;;;15730:12;;;;;;;;;;;;;;:24;;;-1:-1:-1;;;;;15730:41:3;;15720:51;:89;;;;-1:-1:-1;15788:20:3;;;;;-1:-1:-1;;;;;15776:33:3;;;;;:11;:33;;;;;;15775:34;15720:89;15716:166;;;15816:66;15829:8;:20;;;15851:8;:18;;;15871:10;15816:12;:66::i;:::-;15509:731;;;16062:8;:15;;;-1:-1:-1;;;;;16026:52:3;:8;:20;;;-1:-1:-1;;;;;16026:52:3;;;16022:218;;;16165:69;16181:8;:20;;;16203:8;:18;;;16223:10;16165:15;:69::i;:::-;16274:8;:31;;;16273:32;16269:520;;;16339:18;;16366:20;;;;;16388;;;;16322:102;;;;;-1:-1:-1;;;;;16322:102:3;;;;;;;;;;;;;;;;;;;;16422:1;16322:102;;;;;;:43;;;;;:102;;;;;;;;;;;;;;;16339:18;16322:43;:102;;;5:2:-1;;;;30:1;27;20:12;5:2;16322:102:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16322:102:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;16322:102:3;;-1:-1:-1;16269:520:3;;;16450:20;;;;;-1:-1:-1;;;;;16438:33:3;;;;;:11;:33;;;;;;16434:355;;;16488:18;;16538:20;;;;;16565;;;;16626;;;;16488:164;;;;;-1:-1:-1;;;;;16488:164:3;;;;;;;;;;;;;;;;;;;;16609:10;16488:164;;;;;;;;;;;;:26;;;;;16521:9;;16488:164;;;;;;;;;;;;;;16521:9;16488:26;:164;;;5:2:-1;;;;30:1;27;20:12;5:2;16488:164:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16488:164:3;;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;16434:355:3;16673:18;;16700:20;;;;;16722;;;;16768;;;;16673:116;;;;;-1:-1:-1;;;;;16673:116:3;;;;;;;;;;;;;;;;;;;;16756:10;16673:116;;;;;;;;;;;;:26;;;;;:116;;;;;;;;;;;;;;;:18;:26;:116;;;5:2:-1;;;;30:1;27;20:12;5:2;16673:116:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16673:116:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;16673:116:3;;-1:-1:-1;16434:355:3;16833:8;:28;;;16829:269;;;16895:57;2170:7;16895:27;:8;16908:13;16895:27;:12;:27;:::i;:57::-;16869:83;;16966:8;:20;;;-1:-1:-1;;;;;16966:29:3;;16996:17;17015:15;16966:65;;;;;-1:-1:-1;;;16966:65:3;;;;;;;-1:-1:-1;;;;;16966:65:3;-1:-1:-1;;;;;16966:65:3;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16966:65:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16966:65:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;16966:65:3;16958:101;;;;;;;-1:-1:-1;;;;;16958:101:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;17077:15;17065:27;;;;16829:269;17158:8;:20;;;-1:-1:-1;;;;;17108:105:3;17136:8;:20;;;-1:-1:-1;;;;;17108:105:3;17119:8;:15;;;-1:-1:-1;;;;;17108:105:3;;17180:10;17192:8;17202:10;17108:105;;;;;;;;;;;;;;-1:-1:-1;;;;;17108:105:3;-1:-1:-1;;;;;17108:105:3;;;;;;;;;;;;;;;;;17231:8;;-1:-1:-1;15430:3:3;;;;;15392:1852;;;17313:22;;;;17305:53;;;;;-1:-1:-1;;;;;17305:53:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;17370:8:3;;15125:2257;-1:-1:-1;;;;;;;;;15125:2257:3:o;19359:737::-;19470:30;;:::i;:::-;19643:23;19503:5;19524:1;19509:5;:12;:16;19503:23;;;;;;;;;;;;;;;;;;;19593:20;;;;19503:23;;-1:-1:-1;;;;;;19593:37:3;19625:4;19593:37;19589:50;;19632:7;;19589:50;-1:-1:-1;19669:20:3;;;;-1:-1:-1;;;;;19720:24:3;;;;;;:11;:24;;;;;;;;19716:377;;;19825:31;;;;19824:32;19817:40;;;;19953:11;-1:-1:-1;;;;;19941:35:3;;19977:12;19991:7;19941:58;;;;;-1:-1:-1;;;19941:58:3;;;;;;;-1:-1:-1;;;;;19941:58:3;-1:-1:-1;;;;;19941:58:3;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;19716:377:3;20040:48;20053:11;20066:12;20080:7;20040:12;:48::i;24364:286::-;24484:32;;;;;;24501:4;24484:32;;;;-1:-1:-1;;;;;24484:32:3;;;;;;;;;24464:17;;24484:16;;;;;:32;;;;;;;;;;;;;;24464:17;24484:16;:32;;;5:2:-1;;;;30:1;27;20:12;5:2;24484:32:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;24484:32:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;24484:32:3;;-1:-1:-1;24524:18:3;;;24520:127;;;24565:1;24553:9;:13;24549:51;;;24568:32;24580:6;24588:8;24598:1;24568:11;:32::i;:::-;24605:37;24617:6;24625:8;24635:6;24605:11;:37::i;:::-;24364:286;;;;:::o;2255:557:70:-;2324:21;;:::i;:::-;:36;;;;;;;;;2357:1;2324:36;;;;;2687:2;2661:3;2580:5;2574:12;2495:2;2488:5;2484:14;2465:1;2430:6;2404:3;2394:317;2725:7;2718:15;2715:2;;;2750:1;2747;2740:12;2715:2;-1:-1:-1;2773:6:70;;:11;;2765:43;;;;;-1:-1:-1;;;;;2765:43:70;;;;;;;;;;;;;;;;;;;;;;;;;;;24725:371:3;24809:7;24822:20;24886:9;24929:27;24845:10;-1:-1:-1;;;;;24845:30:3;;:32;;;;;-1:-1:-1;;;24845:32:3;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;24845:32:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;24845:32:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;24845:32:3;24822:55;;;-1:-1:-1;24898:1:3;;-1:-1:-1;24881:181:3;24905:12;24901:1;:16;24881:181;;;24959:10;-1:-1:-1;;;;;24959:26:3;;24986:1;24959:29;;;;;-1:-1:-1;;;24959:29:3;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;24959:29:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;24959:29:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;24959:29:3;-1:-1:-1;;;;;24997:32:3;;;;;;:11;24959:29;24997:32;;;;;24959:29;;-1:-1:-1;24997:32:3;;24993:64;;;25038:19;25031:26;;;;24993:64;24919:3;;;;;24881:181;;;-1:-1:-1;2227:42:3;;24725:371;-1:-1:-1;;;;24725:371:3:o;1740:206:70:-;351:50;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1870:71:70;;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;1870:71:70;;;;;;;25:18:-1;;61:17;;-1:-1;;;;;182:15;-1:-1;;;;;;1870:71:70;;;179:29:-1;;;;160:49;;;1854:88:70;;1862:6;;1854:7;:88::i;719:181::-;151:37;;;;;;;;;;;;;;;;-1:-1:-1;;;;;832:63:70;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;832:63:70;;;;;;;;25:18:-1;;61:17;;-1:-1;;;;;182:15;-1:-1;;;;;;832:63:70;;;179:29:-1;;;;160:49;;;816:80:70;;824:6;;816:7;:80::i;1166:795:41:-;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;-1:-1;1166:795:41;;;-1:-1:-1;;1166:795:41:o;:::-;;;;;;;;;;;;;;;105:10:-1;1166:795:41;88:34:-1;-1:-1;1166:795:41;;;-1:-1:-1;;1166:795:41:o;:::-;;;;;;;;;-1:-1:-1;1166:795:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o" - }, - "methodIdentifiers": { - "acceptOwnership()": "79ba5097", - "claimAndConvert(address[],uint256,uint256)": "c7ba24bc", - "claimAndConvert2(address[],uint256,uint256,address,uint256)": "e57738e5", - "claimAndConvertFor(address[],uint256,uint256,address)": "b1e9932b", - "claimAndConvertFor2(address[],uint256,uint256,address,address,uint256)": "2978c10e", - "completeXConversion(address[],address,uint256,uint256,address)": "89f9cc61", - "conversionPath(address,address)": "d734fa19", - "convert(address[],uint256,uint256)": "f3898a97", - "convert2(address[],uint256,uint256,address,uint256)": "569706eb", - "convertByPath(address[],uint256,uint256,address,address,uint256)": "b77d239b", - "convertFor(address[],uint256,uint256,address)": "c98fefed", - "convertFor2(address[],uint256,uint256,address,address,uint256)": "ab6214ce", - "etherTokens(address)": "8077ccf7", - "getReturnByPath(address[],uint256)": "0c8496cc", - "getReturnNew()": "699e7546", - "getReturnOld()": "98e95740", - "isV28OrHigherConverterExternal(address)": "03613f39", - "maxAffiliateFee()": "5d732ff2", - "newOwner()": "d4ee1d90", - "onlyOwnerCanUpdateRegistry()": "2fe8a6ad", - "owner()": "8da5cb5b", - "prevRegistry()": "61cd756e", - "rateByPath(address[],uint256)": "7f9c0ecd", - "registerEtherToken(address,bool)": "02ef521e", - "registry()": "7b103999", - "restoreRegistry()": "b4a176d3", - "restrictRegistryUpdate(bool)": "024c7ec7", - "setMaxAffiliateFee(uint256)": "f3bc7d2a", - "transferOwnership(address)": "f2fde38b", - "updateRegistry()": "49d10b64", - "withdrawTokens(address,address,uint256)": "5e35359e", - "xConvert(address[],uint256,uint256,bytes32,bytes32,uint256)": "c52173de", - "xConvert2(address[],uint256,uint256,bytes32,bytes32,uint256,address,uint256)": "cb32564e" - } - }, - "userdoc": { - "methods": {} - } - } - }, - "solidity/contracts/helpers/TestTokenHandler.sol": { - "TestTokenHandler": { - "abi": [ - { - "constant": false, - "inputs": [ - { - "name": "_token", - "type": "address" - }, - { - "name": "_spender", - "type": "address" - }, - { - "name": "_value", - "type": "uint256" - } - ], - "name": "testSafeApprove", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_token", - "type": "address" - }, - { - "name": "_from", - "type": "address" - }, - { - "name": "_to", - "type": "address" - }, - { - "name": "_value", - "type": "uint256" - } - ], - "name": "testSafeTransferFrom", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_token", - "type": "address" - }, - { - "name": "_to", - "type": "address" - }, - { - "name": "_value", - "type": "uint256" - } - ], - "name": "testSafeTransfer", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - } - ], - "devdoc": { - "methods": {} - }, - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "608060405234801561001057600080fd5b5061048e806100206000396000f3006080604052600436106100565763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166308315314811461005b57806375231e6114610094578063f705d961146100d1575b600080fd5b34801561006757600080fd5b5061009273ffffffffffffffffffffffffffffffffffffffff60043581169060243516604435610108565b005b3480156100a057600080fd5b5061009273ffffffffffffffffffffffffffffffffffffffff60043581169060243581169060443516606435610118565b3480156100dd57600080fd5b5061009273ffffffffffffffffffffffffffffffffffffffff6004358116906024351660443561012a565b610113838383610135565b505050565b610124848484846101f4565b50505050565b6101138383836102e3565b604080517f617070726f766528616464726573732c75696e743235362900000000000000008152815190819003601801812073ffffffffffffffffffffffffffffffffffffffff8516602483015260448083018590528351808403909101815260649092019092526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff199093169290921790915261011390849061039e565b604080517f7472616e7366657246726f6d28616464726573732c616464726573732c75696e81527f7432353629000000000000000000000000000000000000000000000000000000602080830191909152825191829003602501822073ffffffffffffffffffffffffffffffffffffffff8088166024850152861660448401526064808401869052845180850390910181526084909301909352810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff199093169290921790915261012490859061039e565b604080517f7472616e7366657228616464726573732c75696e7432353629000000000000008152815190819003601901812073ffffffffffffffffffffffffffffffffffffffff8516602483015260448083018590528351808403909101815260649092019092526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19909316929092179091526101139084905b6103a6610443565b602060405190810160405280600181525090506020818351602085016000875af18015156103d357600080fd5b508051151561011357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4552525f5452414e534645525f4641494c454400000000000000000000000000604482015290519081900360640190fd5b60206040519081016040528060019060208202803883395091929150505600a165627a7a72305820f6ec6c0069e8270f1e4993ac559d452ae33da18131d27a925955e67aaf3fa82f0029", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x48E DUP1 PUSH2 0x20 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x56 JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x8315314 DUP2 EQ PUSH2 0x5B JUMPI DUP1 PUSH4 0x75231E61 EQ PUSH2 0x94 JUMPI DUP1 PUSH4 0xF705D961 EQ PUSH2 0xD1 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x67 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x92 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x108 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x92 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x44 CALLDATALOAD AND PUSH1 0x64 CALLDATALOAD PUSH2 0x118 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xDD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x92 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x12A JUMP JUMPDEST PUSH2 0x113 DUP4 DUP4 DUP4 PUSH2 0x135 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x124 DUP5 DUP5 DUP5 DUP5 PUSH2 0x1F4 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0x113 DUP4 DUP4 DUP4 PUSH2 0x2E3 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x617070726F766528616464726573732C75696E74323536290000000000000000 DUP2 MSTORE DUP2 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x18 ADD DUP2 KECCAK256 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP6 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x64 SWAP1 SWAP3 ADD SWAP1 SWAP3 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE PUSH2 0x113 SWAP1 DUP5 SWAP1 PUSH2 0x39E JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x7472616E7366657246726F6D28616464726573732C616464726573732C75696E DUP2 MSTORE PUSH32 0x7432353629000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP3 MLOAD SWAP2 DUP3 SWAP1 SUB PUSH1 0x25 ADD DUP3 KECCAK256 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP9 AND PUSH1 0x24 DUP6 ADD MSTORE DUP7 AND PUSH1 0x44 DUP5 ADD MSTORE PUSH1 0x64 DUP1 DUP5 ADD DUP7 SWAP1 MSTORE DUP5 MLOAD DUP1 DUP6 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x84 SWAP1 SWAP4 ADD SWAP1 SWAP4 MSTORE DUP2 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE PUSH2 0x124 SWAP1 DUP6 SWAP1 PUSH2 0x39E JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x7472616E7366657228616464726573732C75696E743235362900000000000000 DUP2 MSTORE DUP2 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x19 ADD DUP2 KECCAK256 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP6 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x64 SWAP1 SWAP3 ADD SWAP1 SWAP3 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE PUSH2 0x113 SWAP1 DUP5 SWAP1 JUMPDEST PUSH2 0x3A6 PUSH2 0x443 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE POP SWAP1 POP PUSH1 0x20 DUP2 DUP4 MLOAD PUSH1 0x20 DUP6 ADD PUSH1 0x0 DUP8 GAS CALL DUP1 ISZERO ISZERO PUSH2 0x3D3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD ISZERO ISZERO PUSH2 0x113 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5452414E534645525F4641494C454400000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 SWAP1 PUSH1 0x20 DUP3 MUL DUP1 CODESIZE DUP4 CODECOPY POP SWAP2 SWAP3 SWAP2 POP POP JUMP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 0xf6 0xec PUSH13 0x69E8270F1E4993AC559D452A 0xe3 RETURNDATASIZE LOG1 DUP2 BALANCE 0xd2 PUSH27 0x925955E67AAF3FA82F002900000000000000000000000000000000 ", - "sourceMap": "132:489:42:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;132:489:42;;;;;;;" - }, - "deployedBytecode": { - "linkReferences": {}, - "object": "6080604052600436106100565763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166308315314811461005b57806375231e6114610094578063f705d961146100d1575b600080fd5b34801561006757600080fd5b5061009273ffffffffffffffffffffffffffffffffffffffff60043581169060243516604435610108565b005b3480156100a057600080fd5b5061009273ffffffffffffffffffffffffffffffffffffffff60043581169060243581169060443516606435610118565b3480156100dd57600080fd5b5061009273ffffffffffffffffffffffffffffffffffffffff6004358116906024351660443561012a565b610113838383610135565b505050565b610124848484846101f4565b50505050565b6101138383836102e3565b604080517f617070726f766528616464726573732c75696e743235362900000000000000008152815190819003601801812073ffffffffffffffffffffffffffffffffffffffff8516602483015260448083018590528351808403909101815260649092019092526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff199093169290921790915261011390849061039e565b604080517f7472616e7366657246726f6d28616464726573732c616464726573732c75696e81527f7432353629000000000000000000000000000000000000000000000000000000602080830191909152825191829003602501822073ffffffffffffffffffffffffffffffffffffffff8088166024850152861660448401526064808401869052845180850390910181526084909301909352810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff199093169290921790915261012490859061039e565b604080517f7472616e7366657228616464726573732c75696e7432353629000000000000008152815190819003601901812073ffffffffffffffffffffffffffffffffffffffff8516602483015260448083018590528351808403909101815260649092019092526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19909316929092179091526101139084905b6103a6610443565b602060405190810160405280600181525090506020818351602085016000875af18015156103d357600080fd5b508051151561011357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4552525f5452414e534645525f4641494c454400000000000000000000000000604482015290519081900360640190fd5b60206040519081016040528060019060208202803883395091929150505600a165627a7a72305820f6ec6c0069e8270f1e4993ac559d452ae33da18131d27a925955e67aaf3fa82f0029", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x56 JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x8315314 DUP2 EQ PUSH2 0x5B JUMPI DUP1 PUSH4 0x75231E61 EQ PUSH2 0x94 JUMPI DUP1 PUSH4 0xF705D961 EQ PUSH2 0xD1 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x67 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x92 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x108 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x92 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x44 CALLDATALOAD AND PUSH1 0x64 CALLDATALOAD PUSH2 0x118 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xDD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x92 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x12A JUMP JUMPDEST PUSH2 0x113 DUP4 DUP4 DUP4 PUSH2 0x135 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x124 DUP5 DUP5 DUP5 DUP5 PUSH2 0x1F4 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0x113 DUP4 DUP4 DUP4 PUSH2 0x2E3 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x617070726F766528616464726573732C75696E74323536290000000000000000 DUP2 MSTORE DUP2 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x18 ADD DUP2 KECCAK256 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP6 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x64 SWAP1 SWAP3 ADD SWAP1 SWAP3 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE PUSH2 0x113 SWAP1 DUP5 SWAP1 PUSH2 0x39E JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x7472616E7366657246726F6D28616464726573732C616464726573732C75696E DUP2 MSTORE PUSH32 0x7432353629000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP3 MLOAD SWAP2 DUP3 SWAP1 SUB PUSH1 0x25 ADD DUP3 KECCAK256 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP9 AND PUSH1 0x24 DUP6 ADD MSTORE DUP7 AND PUSH1 0x44 DUP5 ADD MSTORE PUSH1 0x64 DUP1 DUP5 ADD DUP7 SWAP1 MSTORE DUP5 MLOAD DUP1 DUP6 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x84 SWAP1 SWAP4 ADD SWAP1 SWAP4 MSTORE DUP2 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE PUSH2 0x124 SWAP1 DUP6 SWAP1 PUSH2 0x39E JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x7472616E7366657228616464726573732C75696E743235362900000000000000 DUP2 MSTORE DUP2 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x19 ADD DUP2 KECCAK256 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP6 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x64 SWAP1 SWAP3 ADD SWAP1 SWAP3 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE PUSH2 0x113 SWAP1 DUP5 SWAP1 JUMPDEST PUSH2 0x3A6 PUSH2 0x443 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE POP SWAP1 POP PUSH1 0x20 DUP2 DUP4 MLOAD PUSH1 0x20 DUP6 ADD PUSH1 0x0 DUP8 GAS CALL DUP1 ISZERO ISZERO PUSH2 0x3D3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD ISZERO ISZERO PUSH2 0x113 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5452414E534645525F4641494C454400000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 SWAP1 PUSH1 0x20 DUP3 MUL DUP1 CODESIZE DUP4 CODECOPY POP SWAP2 SWAP3 SWAP2 POP POP JUMP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 0xf6 0xec PUSH13 0x69E8270F1E4993AC559D452A 0xe3 RETURNDATASIZE LOG1 DUP2 BALANCE 0xd2 PUSH27 0x925955E67AAF3FA82F002900000000000000000000000000000000 ", - "sourceMap": "132:489:42:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;177:140;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;177:140:42;;;;;;;;;;;;;;;;455:164;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;455:164:42;;;;;;;;;;;;;;;;;;;320:132;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;320:132:42;;;;;;;;;;;;;;177:140;276:37;288:6;296:8;306:6;276:11;:37::i;:::-;177:140;;;:::o;455:164::-;571:44;588:6;596:5;603:3;608:6;571:16;:44::i;:::-;455:164;;;;:::o;320:132::-;415:33;428:6;436:3;441:6;415:12;:33::i;719:181:70:-;151:37;;;;;;;;;;;;;;;;832:63;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;832:63:70;;;;;;;;25:18:-1;;61:17;;832:63:70;182:15:-1;-1:-1;;832:63:70;;;179:29:-1;;;;160:49;;;816:80:70;;824:6;;816:7;:80::i;1740:206::-;351:50;;;;;;;;;;;;;;;;;;;;;;;;;1870:71;;;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;1870:71:70;;;;;;;25:18:-1;;61:17;;1870:71:70;182:15:-1;-1:-1;;1870:71:70;;;179:29:-1;;;;160:49;;;1854:88:70;;1862:6;;1854:7;:88::i;1214:173::-;248:38;;;;;;;;;;;;;;;;1323:59;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;1323:59:70;;;;;;;;25:18:-1;;61:17;;1323:59:70;182:15:-1;-1:-1;;1323:59:70;;;179:29:-1;;;;160:49;;;1307:76:70;;1315:6;;2255:557;2324:21;;:::i;:::-;:36;;;;;;;;;2357:1;2324:36;;;;;2687:2;2661:3;2580:5;2574:12;2495:2;2488:5;2484:14;2465:1;2430:6;2404:3;2394:317;2725:7;2718:15;2715:2;;;2750:1;2747;2740:12;2715:2;-1:-1:-1;2773:6:70;;:11;;2765:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;132:489:42;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;-1:-1;132:489:42;;;-1:-1:-1;;132:489:42:o" - }, - "methodIdentifiers": { - "testSafeApprove(address,address,uint256)": "08315314", - "testSafeTransfer(address,address,uint256)": "f705d961", - "testSafeTransferFrom(address,address,address,uint256)": "75231e61" - } - }, - "userdoc": { - "methods": {} - } - } - }, - "solidity/contracts/helpers/TestTokens.sol": { - "NonStandardToken": { - "abi": [ - { - "constant": true, - "inputs": [], - "name": "totalSupply", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "", - "type": "address" - }, - { - "name": "", - "type": "address" - } - ], - "name": "allowance", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "name": "_supply", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "_from", - "type": "address" - }, - { - "indexed": true, - "name": "_to", - "type": "address" - }, - { - "indexed": false, - "name": "_value", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "_owner", - "type": "address" - }, - { - "indexed": true, - "name": "_spender", - "type": "address" - }, - { - "indexed": false, - "name": "_value", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - } - ], - "devdoc": { - "methods": {} - }, - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "deployedBytecode": { - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "methodIdentifiers": { - "allowance(address,address)": "dd62ed3e", - "balanceOf(address)": "70a08231", - "totalSupply()": "18160ddd" - } - }, - "userdoc": { - "methods": {} - } - }, - "NonStandardTokenDetailed": { - "abi": [ - { - "constant": true, - "inputs": [], - "name": "name", - "outputs": [ - { - "name": "", - "type": "string" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "totalSupply", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "decimals", - "outputs": [ - { - "name": "", - "type": "uint8" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "symbol", - "outputs": [ - { - "name": "", - "type": "string" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "", - "type": "address" - }, - { - "name": "", - "type": "address" - } - ], - "name": "allowance", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "name": "_name", - "type": "string" - }, - { - "name": "_symbol", - "type": "string" - }, - { - "name": "_decimals", - "type": "uint8" - }, - { - "name": "_supply", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "_from", - "type": "address" - }, - { - "indexed": true, - "name": "_to", - "type": "address" - }, - { - "indexed": false, - "name": "_value", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "_owner", - "type": "address" - }, - { - "indexed": true, - "name": "_spender", - "type": "address" - }, - { - "indexed": false, - "name": "_value", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - } - ], - "devdoc": { - "methods": {} - }, - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "deployedBytecode": { - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "methodIdentifiers": { - "allowance(address,address)": "dd62ed3e", - "balanceOf(address)": "70a08231", - "decimals()": "313ce567", - "name()": "06fdde03", - "symbol()": "95d89b41", - "totalSupply()": "18160ddd" - } - }, - "userdoc": { - "methods": {} - } - }, - "TestNonStandardToken": { - "abi": [ - { - "constant": true, - "inputs": [], - "name": "name", - "outputs": [ - { - "name": "", - "type": "string" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_spender", - "type": "address" - }, - { - "name": "_value", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "totalSupply", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_from", - "type": "address" - }, - { - "name": "_to", - "type": "address" - }, - { - "name": "_value", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "decimals", - "outputs": [ - { - "name": "", - "type": "uint8" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_ok", - "type": "bool" - } - ], - "name": "set", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "symbol", - "outputs": [ - { - "name": "", - "type": "string" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_to", - "type": "address" - }, - { - "name": "_value", - "type": "uint256" - } - ], - "name": "transfer", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "ok", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "", - "type": "address" - }, - { - "name": "", - "type": "address" - } - ], - "name": "allowance", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "name": "_name", - "type": "string" - }, - { - "name": "_symbol", - "type": "string" - }, - { - "name": "_decimals", - "type": "uint8" - }, - { - "name": "_supply", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "_from", - "type": "address" - }, - { - "indexed": true, - "name": "_to", - "type": "address" - }, - { - "indexed": false, - "name": "_value", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "_owner", - "type": "address" - }, - { - "indexed": true, - "name": "_spender", - "type": "address" - }, - { - "indexed": false, - "name": "_value", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - } - ], - "devdoc": { - "methods": {} - }, - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "608060405234801561001057600080fd5b506040516109d13803806109d183398101604090815281516020808401518385015160608601516000818155338152600185529590952085905592850180519095919091019391859185918591859161006e916003918701906100d1565b5082516100829060049060208601906100d1565b50506005805460ff191660ff92909216919091179055506100ae905060016401000000006100b7810204565b5050505061016c565b600580549115156101000261ff0019909216919091179055565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061011257805160ff191683800117855561013f565b8280016001018555821561013f579182015b8281111561013f578251825591602001919060010190610124565b5061014b92915061014f565b5090565b61016991905b8082111561014b5760008155600101610155565b90565b6108568061017b6000396000f3006080604052600436106100ae5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde0381146100b3578063095ea7b31461013d57806318160ddd1461016357806323b872dd1461018a578063313ce567146101b45780635f76f6ab146101df57806370a08231146101f957806395d89b411461021a578063a9059cbb1461022f578063d909b40314610253578063dd62ed3e1461027c575b600080fd5b3480156100bf57600080fd5b506100c86102a3565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101025781810151838201526020016100ea565b50505050905090810190601f16801561012f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561014957600080fd5b50610161600160a060020a0360043516602435610331565b005b34801561016f57600080fd5b50610178610355565b60408051918252519081900360200190f35b34801561019657600080fd5b50610161600160a060020a036004358116906024351660443561035b565b3480156101c057600080fd5b506101c9610381565b6040805160ff9092168252519081900360200190f35b3480156101eb57600080fd5b50610161600435151561038a565b34801561020557600080fd5b50610178600160a060020a03600435166103a4565b34801561022657600080fd5b506100c86103b6565b34801561023b57600080fd5b50610161600160a060020a0360043516602435610411565b34801561025f57600080fd5b5061026861041b565b604080519115158252519081900360200190f35b34801561028857600080fd5b50610178600160a060020a0360043581169060243516610429565b6003805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156103295780601f106102fe57610100808354040283529160200191610329565b820191906000526020600020905b81548152906001019060200180831161030c57829003601f168201915b505050505081565b61033b8282610446565b600554610100900460ff16151561035157600080fd5b5050565b60005481565b6103668383836104ec565b600554610100900460ff16151561037c57600080fd5b505050565b60055460ff1681565b600580549115156101000261ff0019909216919091179055565b60016020526000908152604090205481565b6004805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156103295780601f106102fe57610100808354040283529160200191610329565b61033b8282610608565b600554610100900460ff1681565b600260209081526000928352604080842090915290825290205481565b81610450816106be565b81158061047e5750336000908152600260209081526040808320600160a060020a0387168452909152902054155b151561048957600080fd5b336000818152600260209081526040808320600160a060020a03881680855290835292819020869055805186815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a3505050565b826104f6816106be565b82610500816106be565b600160a060020a0385166000908152600260209081526040808320338452909152902054610534908463ffffffff61073816565b600160a060020a038616600081815260026020908152604080832033845282528083209490945591815260019091522054610575908463ffffffff61073816565b600160a060020a0380871660009081526001602052604080822093909355908616815220546105aa908463ffffffff6107af16565b600160a060020a0380861660008181526001602090815260409182902094909455805187815290519193928916927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a35050505050565b81610612816106be565b33600090815260016020526040902054610632908363ffffffff61073816565b3360009081526001602052604080822092909255600160a060020a03851681522054610664908363ffffffff6107af16565b600160a060020a0384166000818152600160209081526040918290209390935580518581529051919233927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a3505050565b600160a060020a038116151561073557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b50565b6000818310156107a957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600d60248201527f4552525f554e444552464c4f5700000000000000000000000000000000000000604482015290519081900360640190fd5b50900390565b60008282018381101561082357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b93925050505600a165627a7a723058200afe9dcf575813beb0bb8cd2c37b1629ef7b9236a5a0f87d712e8c3132df3b220029", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x9D1 CODESIZE SUB DUP1 PUSH2 0x9D1 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 SWAP1 DUP2 MSTORE DUP2 MLOAD PUSH1 0x20 DUP1 DUP5 ADD MLOAD DUP4 DUP6 ADD MLOAD PUSH1 0x60 DUP7 ADD MLOAD PUSH1 0x0 DUP2 DUP2 SSTORE CALLER DUP2 MSTORE PUSH1 0x1 DUP6 MSTORE SWAP6 SWAP1 SWAP6 KECCAK256 DUP6 SWAP1 SSTORE SWAP3 DUP6 ADD DUP1 MLOAD SWAP1 SWAP6 SWAP2 SWAP1 SWAP2 ADD SWAP4 SWAP2 DUP6 SWAP2 DUP6 SWAP2 DUP6 SWAP2 DUP6 SWAP2 PUSH2 0x6E SWAP2 PUSH1 0x3 SWAP2 DUP8 ADD SWAP1 PUSH2 0xD1 JUMP JUMPDEST POP DUP3 MLOAD PUSH2 0x82 SWAP1 PUSH1 0x4 SWAP1 PUSH1 0x20 DUP7 ADD SWAP1 PUSH2 0xD1 JUMP JUMPDEST POP POP PUSH1 0x5 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0xFF SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE POP PUSH2 0xAE SWAP1 POP PUSH1 0x1 PUSH5 0x100000000 PUSH2 0xB7 DUP2 MUL DIV JUMP JUMPDEST POP POP POP POP PUSH2 0x16C JUMP JUMPDEST PUSH1 0x5 DUP1 SLOAD SWAP2 ISZERO ISZERO PUSH2 0x100 MUL PUSH2 0xFF00 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH1 0x1F LT PUSH2 0x112 JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH2 0x13F JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x13F JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x13F JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x124 JUMP JUMPDEST POP PUSH2 0x14B SWAP3 SWAP2 POP PUSH2 0x14F JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH2 0x169 SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x14B JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x155 JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH2 0x856 DUP1 PUSH2 0x17B PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0xAE JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x6FDDE03 DUP2 EQ PUSH2 0xB3 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x13D JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x163 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x18A JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x1B4 JUMPI DUP1 PUSH4 0x5F76F6AB EQ PUSH2 0x1DF JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x1F9 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x21A JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x22F JUMPI DUP1 PUSH4 0xD909B403 EQ PUSH2 0x253 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x27C JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xBF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xC8 PUSH2 0x2A3 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP4 MLOAD DUP2 DUP4 ADD MSTORE DUP4 MLOAD SWAP2 SWAP3 DUP4 SWAP3 SWAP1 DUP4 ADD SWAP2 DUP6 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x102 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0xEA JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x12F JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x149 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x161 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x331 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x16F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x178 PUSH2 0x355 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x196 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x161 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x35B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1C0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1C9 PUSH2 0x381 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1EB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x161 PUSH1 0x4 CALLDATALOAD ISZERO ISZERO PUSH2 0x38A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x205 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x178 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x3A4 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x226 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xC8 PUSH2 0x3B6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x23B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x161 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x411 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x25F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x268 PUSH2 0x41B JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x288 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x178 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH2 0x429 JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x2 PUSH1 0x1 DUP6 AND ISZERO PUSH2 0x100 MUL PUSH1 0x0 NOT ADD SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 DIV PUSH1 0x1F DUP2 ADD DUP5 SWAP1 DIV DUP5 MUL DUP3 ADD DUP5 ADD SWAP1 SWAP3 MSTORE DUP2 DUP2 MSTORE SWAP3 SWAP2 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x329 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x2FE JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x329 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x30C JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH2 0x33B DUP3 DUP3 PUSH2 0x446 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO PUSH2 0x351 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x366 DUP4 DUP4 DUP4 PUSH2 0x4EC JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO PUSH2 0x37C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x5 DUP1 SLOAD SWAP2 ISZERO ISZERO PUSH2 0x100 MUL PUSH2 0xFF00 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x4 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x2 PUSH1 0x1 DUP6 AND ISZERO PUSH2 0x100 MUL PUSH1 0x0 NOT ADD SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 DIV PUSH1 0x1F DUP2 ADD DUP5 SWAP1 DIV DUP5 MUL DUP3 ADD DUP5 ADD SWAP1 SWAP3 MSTORE DUP2 DUP2 MSTORE SWAP3 SWAP2 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x329 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x2FE JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x329 JUMP JUMPDEST PUSH2 0x33B DUP3 DUP3 PUSH2 0x608 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST DUP2 PUSH2 0x450 DUP2 PUSH2 0x6BE JUMP JUMPDEST DUP2 ISZERO DUP1 PUSH2 0x47E JUMPI POP CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x489 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST CALLER PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 AND DUP1 DUP6 MSTORE SWAP1 DUP4 MSTORE SWAP3 DUP2 SWAP1 KECCAK256 DUP7 SWAP1 SSTORE DUP1 MLOAD DUP7 DUP2 MSTORE SWAP1 MLOAD SWAP3 SWAP4 SWAP3 PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP3 SWAP2 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP POP POP JUMP JUMPDEST DUP3 PUSH2 0x4F6 DUP2 PUSH2 0x6BE JUMP JUMPDEST DUP3 PUSH2 0x500 DUP2 PUSH2 0x6BE JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH2 0x534 SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0x738 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE DUP3 MSTORE DUP1 DUP4 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE SWAP2 DUP2 MSTORE PUSH1 0x1 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD PUSH2 0x575 SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0x738 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE SWAP1 DUP7 AND DUP2 MSTORE KECCAK256 SLOAD PUSH2 0x5AA SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0x7AF AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP7 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE DUP1 MLOAD DUP8 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP4 SWAP3 DUP10 AND SWAP3 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP3 SWAP2 DUP3 SWAP1 SUB ADD SWAP1 LOG3 POP POP POP POP POP JUMP JUMPDEST DUP2 PUSH2 0x612 DUP2 PUSH2 0x6BE JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x632 SWAP1 DUP4 PUSH4 0xFFFFFFFF PUSH2 0x738 AND JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP3 SWAP1 SWAP3 SSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND DUP2 MSTORE KECCAK256 SLOAD PUSH2 0x664 SWAP1 DUP4 PUSH4 0xFFFFFFFF PUSH2 0x7AF AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE DUP1 MLOAD DUP6 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP3 CALLER SWAP3 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0x735 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT ISZERO PUSH2 0x7A9 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F554E444552464C4F5700000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP SWAP1 SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 ADD DUP4 DUP2 LT ISZERO PUSH2 0x823 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 EXP INVALID SWAP14 0xcf JUMPI PC SGT 0xbe 0xb0 0xbb DUP13 0xd2 0xc3 PUSH28 0x1629EF7B9236A5A0F87D712E8C3132DF3B2200290000000000000000 ", - "sourceMap": "3417:655:43:-;;;3496:172;8:9:-1;5:2;;;30:1;27;20:12;5:2;3496:172:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;662:11;:21;;;697:10;687:21;;:9;:21;;;;;;:31;;;3496:172;;;3353:12;;3496:172;;;;;;;;;;;;;;;;3353:12;;:4;;:12;;;;:::i;:::-;-1:-1:-1;3369:16:43;;;;:6;;:16;;;;;:::i;:::-;-1:-1:-1;;3389:8:43;:20;;-1:-1:-1;;3389:20:43;;;;;;;;;;;;-1:-1:-1;3655:9:43;;-1:-1:-1;;3655:3:43;;;;:9;:::i;:::-;3496:172;;;;3417:655;;3671:46;3705:2;:8;;;;;;;-1:-1:-1;;3705:8:43;;;;;;;;;3671:46::o;3417:655::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3417:655:43;;;-1:-1:-1;3417:655:43;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;" - }, - "deployedBytecode": { - "linkReferences": {}, - "object": "6080604052600436106100ae5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde0381146100b3578063095ea7b31461013d57806318160ddd1461016357806323b872dd1461018a578063313ce567146101b45780635f76f6ab146101df57806370a08231146101f957806395d89b411461021a578063a9059cbb1461022f578063d909b40314610253578063dd62ed3e1461027c575b600080fd5b3480156100bf57600080fd5b506100c86102a3565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101025781810151838201526020016100ea565b50505050905090810190601f16801561012f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561014957600080fd5b50610161600160a060020a0360043516602435610331565b005b34801561016f57600080fd5b50610178610355565b60408051918252519081900360200190f35b34801561019657600080fd5b50610161600160a060020a036004358116906024351660443561035b565b3480156101c057600080fd5b506101c9610381565b6040805160ff9092168252519081900360200190f35b3480156101eb57600080fd5b50610161600435151561038a565b34801561020557600080fd5b50610178600160a060020a03600435166103a4565b34801561022657600080fd5b506100c86103b6565b34801561023b57600080fd5b50610161600160a060020a0360043516602435610411565b34801561025f57600080fd5b5061026861041b565b604080519115158252519081900360200190f35b34801561028857600080fd5b50610178600160a060020a0360043581169060243516610429565b6003805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156103295780601f106102fe57610100808354040283529160200191610329565b820191906000526020600020905b81548152906001019060200180831161030c57829003601f168201915b505050505081565b61033b8282610446565b600554610100900460ff16151561035157600080fd5b5050565b60005481565b6103668383836104ec565b600554610100900460ff16151561037c57600080fd5b505050565b60055460ff1681565b600580549115156101000261ff0019909216919091179055565b60016020526000908152604090205481565b6004805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156103295780601f106102fe57610100808354040283529160200191610329565b61033b8282610608565b600554610100900460ff1681565b600260209081526000928352604080842090915290825290205481565b81610450816106be565b81158061047e5750336000908152600260209081526040808320600160a060020a0387168452909152902054155b151561048957600080fd5b336000818152600260209081526040808320600160a060020a03881680855290835292819020869055805186815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a3505050565b826104f6816106be565b82610500816106be565b600160a060020a0385166000908152600260209081526040808320338452909152902054610534908463ffffffff61073816565b600160a060020a038616600081815260026020908152604080832033845282528083209490945591815260019091522054610575908463ffffffff61073816565b600160a060020a0380871660009081526001602052604080822093909355908616815220546105aa908463ffffffff6107af16565b600160a060020a0380861660008181526001602090815260409182902094909455805187815290519193928916927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a35050505050565b81610612816106be565b33600090815260016020526040902054610632908363ffffffff61073816565b3360009081526001602052604080822092909255600160a060020a03851681522054610664908363ffffffff6107af16565b600160a060020a0384166000818152600160209081526040918290209390935580518581529051919233927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a3505050565b600160a060020a038116151561073557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b50565b6000818310156107a957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600d60248201527f4552525f554e444552464c4f5700000000000000000000000000000000000000604482015290519081900360640190fd5b50900390565b60008282018381101561082357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b93925050505600a165627a7a723058200afe9dcf575813beb0bb8cd2c37b1629ef7b9236a5a0f87d712e8c3132df3b220029", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0xAE JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x6FDDE03 DUP2 EQ PUSH2 0xB3 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x13D JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x163 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x18A JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x1B4 JUMPI DUP1 PUSH4 0x5F76F6AB EQ PUSH2 0x1DF JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x1F9 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x21A JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x22F JUMPI DUP1 PUSH4 0xD909B403 EQ PUSH2 0x253 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x27C JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xBF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xC8 PUSH2 0x2A3 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP4 MLOAD DUP2 DUP4 ADD MSTORE DUP4 MLOAD SWAP2 SWAP3 DUP4 SWAP3 SWAP1 DUP4 ADD SWAP2 DUP6 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x102 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0xEA JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x12F JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x149 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x161 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x331 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x16F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x178 PUSH2 0x355 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x196 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x161 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x35B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1C0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1C9 PUSH2 0x381 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1EB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x161 PUSH1 0x4 CALLDATALOAD ISZERO ISZERO PUSH2 0x38A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x205 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x178 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x3A4 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x226 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xC8 PUSH2 0x3B6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x23B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x161 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x411 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x25F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x268 PUSH2 0x41B JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x288 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x178 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH2 0x429 JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x2 PUSH1 0x1 DUP6 AND ISZERO PUSH2 0x100 MUL PUSH1 0x0 NOT ADD SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 DIV PUSH1 0x1F DUP2 ADD DUP5 SWAP1 DIV DUP5 MUL DUP3 ADD DUP5 ADD SWAP1 SWAP3 MSTORE DUP2 DUP2 MSTORE SWAP3 SWAP2 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x329 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x2FE JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x329 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x30C JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH2 0x33B DUP3 DUP3 PUSH2 0x446 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO PUSH2 0x351 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x366 DUP4 DUP4 DUP4 PUSH2 0x4EC JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO PUSH2 0x37C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x5 DUP1 SLOAD SWAP2 ISZERO ISZERO PUSH2 0x100 MUL PUSH2 0xFF00 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x4 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x2 PUSH1 0x1 DUP6 AND ISZERO PUSH2 0x100 MUL PUSH1 0x0 NOT ADD SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 DIV PUSH1 0x1F DUP2 ADD DUP5 SWAP1 DIV DUP5 MUL DUP3 ADD DUP5 ADD SWAP1 SWAP3 MSTORE DUP2 DUP2 MSTORE SWAP3 SWAP2 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x329 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x2FE JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x329 JUMP JUMPDEST PUSH2 0x33B DUP3 DUP3 PUSH2 0x608 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST DUP2 PUSH2 0x450 DUP2 PUSH2 0x6BE JUMP JUMPDEST DUP2 ISZERO DUP1 PUSH2 0x47E JUMPI POP CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x489 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST CALLER PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 AND DUP1 DUP6 MSTORE SWAP1 DUP4 MSTORE SWAP3 DUP2 SWAP1 KECCAK256 DUP7 SWAP1 SSTORE DUP1 MLOAD DUP7 DUP2 MSTORE SWAP1 MLOAD SWAP3 SWAP4 SWAP3 PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP3 SWAP2 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP POP POP JUMP JUMPDEST DUP3 PUSH2 0x4F6 DUP2 PUSH2 0x6BE JUMP JUMPDEST DUP3 PUSH2 0x500 DUP2 PUSH2 0x6BE JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH2 0x534 SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0x738 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE DUP3 MSTORE DUP1 DUP4 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE SWAP2 DUP2 MSTORE PUSH1 0x1 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD PUSH2 0x575 SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0x738 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE SWAP1 DUP7 AND DUP2 MSTORE KECCAK256 SLOAD PUSH2 0x5AA SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0x7AF AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP7 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE DUP1 MLOAD DUP8 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP4 SWAP3 DUP10 AND SWAP3 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP3 SWAP2 DUP3 SWAP1 SUB ADD SWAP1 LOG3 POP POP POP POP POP JUMP JUMPDEST DUP2 PUSH2 0x612 DUP2 PUSH2 0x6BE JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x632 SWAP1 DUP4 PUSH4 0xFFFFFFFF PUSH2 0x738 AND JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP3 SWAP1 SWAP3 SSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND DUP2 MSTORE KECCAK256 SLOAD PUSH2 0x664 SWAP1 DUP4 PUSH4 0xFFFFFFFF PUSH2 0x7AF AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE DUP1 MLOAD DUP6 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP3 CALLER SWAP3 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0x735 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT ISZERO PUSH2 0x7A9 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F554E444552464C4F5700000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP SWAP1 SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 ADD DUP4 DUP2 LT ISZERO PUSH2 0x823 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 EXP INVALID SWAP14 0xcf JUMPI PC SGT 0xbe 0xb0 0xbb DUP13 0xd2 0xc3 PUSH28 0x1629EF7B9236A5A0F87D712E8C3132DF3B2200290000000000000000 ", - "sourceMap": "3417:655:43:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2941:18;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2941:18:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;2941:18:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3720:107;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3720:107:43;-1:-1:-1;;;;;3720:107:43;;;;;;;;;209:26;;8:9:-1;5:2;;;30:1;27;20:12;5:2;209:26:43;;;;;;;;;;;;;;;;;;;;3932:138;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3932:138:43;-1:-1:-1;;;;;3932:138:43;;;;;;;;;;;;2985:21;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2985:21:43;;;;;;;;;;;;;;;;;;;;;;;3671:46;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3671:46:43;;;;;;;238:44;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;238:44:43;-1:-1:-1;;;;;238:44:43;;;;;2962:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2962:20:43;;;;3830:99;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3830:99:43;-1:-1:-1;;;;;3830:99:43;;;;;;;3478:14;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3478:14:43;;;;;;;;;;;;;;;;;;;;;;285:64;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;285:64:43;-1:-1:-1;;;;;285:64:43;;;;;;;;;;2941:18;;;;;;;;;;;;;;;-1:-1:-1;;2941:18:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;3720:107::-;3782:26;3791:8;3801:6;3782:8;:26::i;:::-;3820:2;;;;;;;3812:11;;;;;;;;3720:107;;:::o;209:26::-;;;;:::o;3932:138::-;4018:33;4032:5;4039:3;4044:6;4018:13;:33::i;:::-;4063:2;;;;;;;4055:11;;;;;;;;3932:138;;;:::o;2985:21::-;;;;;;:::o;3671:46::-;3705:2;:8;;;;;;;-1:-1:-1;;3705:8:43;;;;;;;;;3671:46::o;238:44::-;;;;;;;;;;;;;:::o;2962:20::-;;;;;;;;;;;;;;;-1:-1:-1;;2962:20:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3830:99;3888:22;3898:3;3903:6;3888:9;:22::i;3478:14::-;;;;;;;;;:::o;285:64::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;2517:363::-;2591:8;475:23:72;489:8;475:13;:23::i;:::-;2732:11:43;;;:51;;-1:-1:-1;2757:10:43;2747:21;;;;:9;:21;;;;;;;;-1:-1:-1;;;;;2747:31:43;;;;;;;;;;:36;2732:51;2724:60;;;;;;;;2799:10;2789:21;;;;:9;:21;;;;;;;;-1:-1:-1;;;;;2789:31:43;;;;;;;;;;;;:40;;;2838:38;;;;;;;2789:31;;2799:10;2838:38;;;;;;;;;;;2517:363;;;:::o;1541:337::-;1639:5;475:23:72;489:8;475:13;:23::i;:::-;1659:3:43;475:23:72;489:8;475:13;:23::i;:::-;-1:-1:-1;;;;;1699:16:43;;;;;;:9;:16;;;;;;;;1716:10;1699:28;;;;;;;;:40;;1732:6;1699:40;:32;:40;:::i;:::-;-1:-1:-1;;;;;1668:16:43;;;;;;:9;:16;;;;;;;;1685:10;1668:28;;;;;;;:71;;;;1762:16;;;:9;:16;;;;;:28;;1783:6;1762:28;:20;:28;:::i;:::-;-1:-1:-1;;;;;1743:16:43;;;;;;;:9;:16;;;;;;:47;;;;1811:14;;;;;;;:26;;1830:6;1811:26;:18;:26;:::i;:::-;-1:-1:-1;;;;;1794:14:43;;;;;;;:9;:14;;;;;;;;;:43;;;;1846:28;;;;;;;1794:14;;1846:28;;;;;;;;;;;;;502:1:72;1541:337:43;;;;:::o;982:229::-;1052:3;475:23:72;489:8;475:13;:23::i;:::-;1095:10:43;1085:21;;;;:9;:21;;;;;;:33;;1111:6;1085:33;:25;:33;:::i;:::-;1071:10;1061:21;;;;:9;:21;;;;;;:57;;;;-1:-1:-1;;;;;1139:14:43;;;;;;:26;;1158:6;1139:26;:18;:26;:::i;:::-;-1:-1:-1;;;;;1122:14:43;;;;;;:9;:14;;;;;;;;;:43;;;;1174:33;;;;;;;1122:14;;1183:10;;1174:33;;;;;;;;;;982:229;;;:::o;553:117:72:-;-1:-1:-1;;;;;620:22:72;;;;612:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;553:117;:::o;613:129:69:-;673:7;694:8;;;;686:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;731:7:69;;;613:129::o;288:144::-;348:7;373;;;392;;;;384:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;427:1;288:144;-1:-1:-1;;;288:144:69:o" - }, - "methodIdentifiers": { - "allowance(address,address)": "dd62ed3e", - "approve(address,uint256)": "095ea7b3", - "balanceOf(address)": "70a08231", - "decimals()": "313ce567", - "name()": "06fdde03", - "ok()": "d909b403", - "set(bool)": "5f76f6ab", - "symbol()": "95d89b41", - "totalSupply()": "18160ddd", - "transfer(address,uint256)": "a9059cbb", - "transferFrom(address,address,uint256)": "23b872dd" - } - }, - "userdoc": { - "methods": {} - } - }, - "TestNonStandardTokenWithoutDecimals": { - "abi": [ - { - "constant": true, - "inputs": [], - "name": "name", - "outputs": [ - { - "name": "", - "type": "string" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_spender", - "type": "address" - }, - { - "name": "_value", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "totalSupply", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_from", - "type": "address" - }, - { - "name": "_to", - "type": "address" - }, - { - "name": "_value", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "symbol", - "outputs": [ - { - "name": "", - "type": "string" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_to", - "type": "address" - }, - { - "name": "_value", - "type": "uint256" - } - ], - "name": "transfer", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "", - "type": "address" - }, - { - "name": "", - "type": "address" - } - ], - "name": "allowance", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "name": "_name", - "type": "string" - }, - { - "name": "_symbol", - "type": "string" - }, - { - "name": "_supply", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "_from", - "type": "address" - }, - { - "indexed": true, - "name": "_to", - "type": "address" - }, - { - "indexed": false, - "name": "_value", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "_owner", - "type": "address" - }, - { - "indexed": true, - "name": "_spender", - "type": "address" - }, - { - "indexed": false, - "name": "_value", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - } - ], - "devdoc": { - "methods": {} - }, - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "608060405234801561001057600080fd5b506040516108933803806108938339810160409081528151602080840151838501516000818155338152600184529490942084905591840180519094929092019291610062916003919086019061007f565b50815161007690600490602085019061007f565b5050505061011a565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106100c057805160ff19168380011785556100ed565b828001600101855582156100ed579182015b828111156100ed5782518255916020019190600101906100d2565b506100f99291506100fd565b5090565b61011791905b808211156100f95760008155600101610103565b90565b61076a806101296000396000f30060806040526004361061008d5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde038114610092578063095ea7b31461011c57806318160ddd1461014257806323b872dd1461016957806370a082311461019357806395d89b41146101b4578063a9059cbb146101c9578063dd62ed3e146101ed575b600080fd5b34801561009e57600080fd5b506100a7610214565b6040805160208082528351818301528351919283929083019185019080838360005b838110156100e15781810151838201526020016100c9565b50505050905090810190601f16801561010e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561012857600080fd5b50610140600160a060020a03600435166024356102a2565b005b34801561014e57600080fd5b506101576102b0565b60408051918252519081900360200190f35b34801561017557600080fd5b50610140600160a060020a03600435811690602435166044356102b6565b34801561019f57600080fd5b50610157600160a060020a03600435166102c6565b3480156101c057600080fd5b506100a76102d8565b3480156101d557600080fd5b50610140600160a060020a0360043516602435610333565b3480156101f957600080fd5b50610157600160a060020a036004358116906024351661033d565b6003805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561029a5780601f1061026f5761010080835404028352916020019161029a565b820191906000526020600020905b81548152906001019060200180831161027d57829003601f168201915b505050505081565b6102ac828261035a565b5050565b60005481565b6102c1838383610400565b505050565b60016020526000908152604090205481565b6004805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561029a5780601f1061026f5761010080835404028352916020019161029a565b6102ac828261051c565b600260209081526000928352604080842090915290825290205481565b81610364816105d2565b8115806103925750336000908152600260209081526040808320600160a060020a0387168452909152902054155b151561039d57600080fd5b336000818152600260209081526040808320600160a060020a03881680855290835292819020869055805186815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a3505050565b8261040a816105d2565b82610414816105d2565b600160a060020a0385166000908152600260209081526040808320338452909152902054610448908463ffffffff61064c16565b600160a060020a038616600081815260026020908152604080832033845282528083209490945591815260019091522054610489908463ffffffff61064c16565b600160a060020a0380871660009081526001602052604080822093909355908616815220546104be908463ffffffff6106c316565b600160a060020a0380861660008181526001602090815260409182902094909455805187815290519193928916927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a35050505050565b81610526816105d2565b33600090815260016020526040902054610546908363ffffffff61064c16565b3360009081526001602052604080822092909255600160a060020a03851681522054610578908363ffffffff6106c316565b600160a060020a0384166000818152600160209081526040918290209390935580518581529051919233927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a3505050565b600160a060020a038116151561064957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b50565b6000818310156106bd57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600d60248201527f4552525f554e444552464c4f5700000000000000000000000000000000000000604482015290519081900360640190fd5b50900390565b60008282018381101561073757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b93925050505600a165627a7a723058208ea6fd181893953ddad17d77c8cc38a5c9a1bb7d61b87c7a780ec4c82055c5ee0029", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x893 CODESIZE SUB DUP1 PUSH2 0x893 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 SWAP1 DUP2 MSTORE DUP2 MLOAD PUSH1 0x20 DUP1 DUP5 ADD MLOAD DUP4 DUP6 ADD MLOAD PUSH1 0x0 DUP2 DUP2 SSTORE CALLER DUP2 MSTORE PUSH1 0x1 DUP5 MSTORE SWAP5 SWAP1 SWAP5 KECCAK256 DUP5 SWAP1 SSTORE SWAP2 DUP5 ADD DUP1 MLOAD SWAP1 SWAP5 SWAP3 SWAP1 SWAP3 ADD SWAP3 SWAP2 PUSH2 0x62 SWAP2 PUSH1 0x3 SWAP2 SWAP1 DUP7 ADD SWAP1 PUSH2 0x7F JUMP JUMPDEST POP DUP2 MLOAD PUSH2 0x76 SWAP1 PUSH1 0x4 SWAP1 PUSH1 0x20 DUP6 ADD SWAP1 PUSH2 0x7F JUMP JUMPDEST POP POP POP POP PUSH2 0x11A JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH1 0x1F LT PUSH2 0xC0 JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH2 0xED JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0xED JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0xED JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0xD2 JUMP JUMPDEST POP PUSH2 0xF9 SWAP3 SWAP2 POP PUSH2 0xFD JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH2 0x117 SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0xF9 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x103 JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH2 0x76A DUP1 PUSH2 0x129 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x8D JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x6FDDE03 DUP2 EQ PUSH2 0x92 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x11C JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x142 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x169 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x193 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x1B4 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x1C9 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x1ED JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xA7 PUSH2 0x214 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP4 MLOAD DUP2 DUP4 ADD MSTORE DUP4 MLOAD SWAP2 SWAP3 DUP4 SWAP3 SWAP1 DUP4 ADD SWAP2 DUP6 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xE1 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0xC9 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x10E JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x128 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x140 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x2A2 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x14E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x157 PUSH2 0x2B0 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x175 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x140 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x2B6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x19F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x157 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x2C6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1C0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xA7 PUSH2 0x2D8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1D5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x140 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x333 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1F9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x157 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH2 0x33D JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x2 PUSH1 0x1 DUP6 AND ISZERO PUSH2 0x100 MUL PUSH1 0x0 NOT ADD SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 DIV PUSH1 0x1F DUP2 ADD DUP5 SWAP1 DIV DUP5 MUL DUP3 ADD DUP5 ADD SWAP1 SWAP3 MSTORE DUP2 DUP2 MSTORE SWAP3 SWAP2 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x29A JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x26F JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x29A JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x27D JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH2 0x2AC DUP3 DUP3 PUSH2 0x35A JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x2C1 DUP4 DUP4 DUP4 PUSH2 0x400 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x4 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x2 PUSH1 0x1 DUP6 AND ISZERO PUSH2 0x100 MUL PUSH1 0x0 NOT ADD SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 DIV PUSH1 0x1F DUP2 ADD DUP5 SWAP1 DIV DUP5 MUL DUP3 ADD DUP5 ADD SWAP1 SWAP3 MSTORE DUP2 DUP2 MSTORE SWAP3 SWAP2 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x29A JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x26F JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x29A JUMP JUMPDEST PUSH2 0x2AC DUP3 DUP3 PUSH2 0x51C JUMP JUMPDEST PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST DUP2 PUSH2 0x364 DUP2 PUSH2 0x5D2 JUMP JUMPDEST DUP2 ISZERO DUP1 PUSH2 0x392 JUMPI POP CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x39D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST CALLER PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 AND DUP1 DUP6 MSTORE SWAP1 DUP4 MSTORE SWAP3 DUP2 SWAP1 KECCAK256 DUP7 SWAP1 SSTORE DUP1 MLOAD DUP7 DUP2 MSTORE SWAP1 MLOAD SWAP3 SWAP4 SWAP3 PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP3 SWAP2 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP POP POP JUMP JUMPDEST DUP3 PUSH2 0x40A DUP2 PUSH2 0x5D2 JUMP JUMPDEST DUP3 PUSH2 0x414 DUP2 PUSH2 0x5D2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH2 0x448 SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0x64C AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE DUP3 MSTORE DUP1 DUP4 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE SWAP2 DUP2 MSTORE PUSH1 0x1 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD PUSH2 0x489 SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0x64C AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE SWAP1 DUP7 AND DUP2 MSTORE KECCAK256 SLOAD PUSH2 0x4BE SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0x6C3 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP7 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE DUP1 MLOAD DUP8 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP4 SWAP3 DUP10 AND SWAP3 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP3 SWAP2 DUP3 SWAP1 SUB ADD SWAP1 LOG3 POP POP POP POP POP JUMP JUMPDEST DUP2 PUSH2 0x526 DUP2 PUSH2 0x5D2 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x546 SWAP1 DUP4 PUSH4 0xFFFFFFFF PUSH2 0x64C AND JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP3 SWAP1 SWAP3 SSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND DUP2 MSTORE KECCAK256 SLOAD PUSH2 0x578 SWAP1 DUP4 PUSH4 0xFFFFFFFF PUSH2 0x6C3 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE DUP1 MLOAD DUP6 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP3 CALLER SWAP3 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0x649 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT ISZERO PUSH2 0x6BD JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F554E444552464C4F5700000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP SWAP1 SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 ADD DUP4 DUP2 LT ISZERO PUSH2 0x737 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 DUP15 0xa6 REVERT XOR XOR SWAP4 SWAP6 RETURNDATASIZE 0xda 0xd1 PUSH30 0x77C8CC38A5C9A1BB7D61B87C7A780EC4C82055C5EE002900000000000000 ", - "sourceMap": "4074:564:43:-;;;4187:141;8:9:-1;5:2;;;30:1;27;20:12;5:2;4187:141:43;;;;;;;;;;;;;;;;;;;;;;;;;;;662:11;:21;;;697:10;687:21;;:9;:21;;;;;;:31;;;4187:141;;;4292:12;;4187:141;;;;;;;;4292:12;;:4;;:12;;;;;:::i;:::-;-1:-1:-1;4308:16:43;;;;:6;;:16;;;;;:::i;:::-;;4187:141;;;4074:564;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4074:564:43;;;-1:-1:-1;4074:564:43;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;" - }, - "deployedBytecode": { - "linkReferences": {}, - "object": "60806040526004361061008d5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde038114610092578063095ea7b31461011c57806318160ddd1461014257806323b872dd1461016957806370a082311461019357806395d89b41146101b4578063a9059cbb146101c9578063dd62ed3e146101ed575b600080fd5b34801561009e57600080fd5b506100a7610214565b6040805160208082528351818301528351919283929083019185019080838360005b838110156100e15781810151838201526020016100c9565b50505050905090810190601f16801561010e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561012857600080fd5b50610140600160a060020a03600435166024356102a2565b005b34801561014e57600080fd5b506101576102b0565b60408051918252519081900360200190f35b34801561017557600080fd5b50610140600160a060020a03600435811690602435166044356102b6565b34801561019f57600080fd5b50610157600160a060020a03600435166102c6565b3480156101c057600080fd5b506100a76102d8565b3480156101d557600080fd5b50610140600160a060020a0360043516602435610333565b3480156101f957600080fd5b50610157600160a060020a036004358116906024351661033d565b6003805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561029a5780601f1061026f5761010080835404028352916020019161029a565b820191906000526020600020905b81548152906001019060200180831161027d57829003601f168201915b505050505081565b6102ac828261035a565b5050565b60005481565b6102c1838383610400565b505050565b60016020526000908152604090205481565b6004805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561029a5780601f1061026f5761010080835404028352916020019161029a565b6102ac828261051c565b600260209081526000928352604080842090915290825290205481565b81610364816105d2565b8115806103925750336000908152600260209081526040808320600160a060020a0387168452909152902054155b151561039d57600080fd5b336000818152600260209081526040808320600160a060020a03881680855290835292819020869055805186815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a3505050565b8261040a816105d2565b82610414816105d2565b600160a060020a0385166000908152600260209081526040808320338452909152902054610448908463ffffffff61064c16565b600160a060020a038616600081815260026020908152604080832033845282528083209490945591815260019091522054610489908463ffffffff61064c16565b600160a060020a0380871660009081526001602052604080822093909355908616815220546104be908463ffffffff6106c316565b600160a060020a0380861660008181526001602090815260409182902094909455805187815290519193928916927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a35050505050565b81610526816105d2565b33600090815260016020526040902054610546908363ffffffff61064c16565b3360009081526001602052604080822092909255600160a060020a03851681522054610578908363ffffffff6106c316565b600160a060020a0384166000818152600160209081526040918290209390935580518581529051919233927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a3505050565b600160a060020a038116151561064957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b50565b6000818310156106bd57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600d60248201527f4552525f554e444552464c4f5700000000000000000000000000000000000000604482015290519081900360640190fd5b50900390565b60008282018381101561073757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b93925050505600a165627a7a723058208ea6fd181893953ddad17d77c8cc38a5c9a1bb7d61b87c7a780ec4c82055c5ee0029", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x8D JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x6FDDE03 DUP2 EQ PUSH2 0x92 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x11C JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x142 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x169 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x193 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x1B4 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x1C9 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x1ED JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xA7 PUSH2 0x214 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP4 MLOAD DUP2 DUP4 ADD MSTORE DUP4 MLOAD SWAP2 SWAP3 DUP4 SWAP3 SWAP1 DUP4 ADD SWAP2 DUP6 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xE1 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0xC9 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x10E JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x128 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x140 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x2A2 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x14E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x157 PUSH2 0x2B0 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x175 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x140 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x2B6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x19F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x157 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x2C6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1C0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xA7 PUSH2 0x2D8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1D5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x140 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x333 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1F9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x157 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH2 0x33D JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x2 PUSH1 0x1 DUP6 AND ISZERO PUSH2 0x100 MUL PUSH1 0x0 NOT ADD SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 DIV PUSH1 0x1F DUP2 ADD DUP5 SWAP1 DIV DUP5 MUL DUP3 ADD DUP5 ADD SWAP1 SWAP3 MSTORE DUP2 DUP2 MSTORE SWAP3 SWAP2 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x29A JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x26F JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x29A JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x27D JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH2 0x2AC DUP3 DUP3 PUSH2 0x35A JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x2C1 DUP4 DUP4 DUP4 PUSH2 0x400 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x4 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x2 PUSH1 0x1 DUP6 AND ISZERO PUSH2 0x100 MUL PUSH1 0x0 NOT ADD SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 DIV PUSH1 0x1F DUP2 ADD DUP5 SWAP1 DIV DUP5 MUL DUP3 ADD DUP5 ADD SWAP1 SWAP3 MSTORE DUP2 DUP2 MSTORE SWAP3 SWAP2 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x29A JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x26F JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x29A JUMP JUMPDEST PUSH2 0x2AC DUP3 DUP3 PUSH2 0x51C JUMP JUMPDEST PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST DUP2 PUSH2 0x364 DUP2 PUSH2 0x5D2 JUMP JUMPDEST DUP2 ISZERO DUP1 PUSH2 0x392 JUMPI POP CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x39D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST CALLER PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 AND DUP1 DUP6 MSTORE SWAP1 DUP4 MSTORE SWAP3 DUP2 SWAP1 KECCAK256 DUP7 SWAP1 SSTORE DUP1 MLOAD DUP7 DUP2 MSTORE SWAP1 MLOAD SWAP3 SWAP4 SWAP3 PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP3 SWAP2 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP POP POP JUMP JUMPDEST DUP3 PUSH2 0x40A DUP2 PUSH2 0x5D2 JUMP JUMPDEST DUP3 PUSH2 0x414 DUP2 PUSH2 0x5D2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH2 0x448 SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0x64C AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE DUP3 MSTORE DUP1 DUP4 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE SWAP2 DUP2 MSTORE PUSH1 0x1 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD PUSH2 0x489 SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0x64C AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE SWAP1 DUP7 AND DUP2 MSTORE KECCAK256 SLOAD PUSH2 0x4BE SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0x6C3 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP7 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE DUP1 MLOAD DUP8 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP4 SWAP3 DUP10 AND SWAP3 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP3 SWAP2 DUP3 SWAP1 SUB ADD SWAP1 LOG3 POP POP POP POP POP JUMP JUMPDEST DUP2 PUSH2 0x526 DUP2 PUSH2 0x5D2 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x546 SWAP1 DUP4 PUSH4 0xFFFFFFFF PUSH2 0x64C AND JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP3 SWAP1 SWAP3 SSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND DUP2 MSTORE KECCAK256 SLOAD PUSH2 0x578 SWAP1 DUP4 PUSH4 0xFFFFFFFF PUSH2 0x6C3 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE DUP1 MLOAD DUP6 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP3 CALLER SWAP3 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0x649 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT ISZERO PUSH2 0x6BD JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F554E444552464C4F5700000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP SWAP1 SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 ADD DUP4 DUP2 LT ISZERO PUSH2 0x737 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 DUP15 0xa6 REVERT XOR XOR SWAP4 SWAP6 RETURNDATASIZE 0xda 0xd1 PUSH30 0x77C8CC38A5C9A1BB7D61B87C7A780EC4C82055C5EE002900000000000000 ", - "sourceMap": "4074:564:43:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4142:18;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4142:18:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;4142:18:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4331:92;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4331:92:43;-1:-1:-1;;;;;4331:92:43;;;;;;;;;209:26;;8:9:-1;5:2;;;30:1;27;20:12;5:2;209:26:43;;;;;;;;;;;;;;;;;;;;4513:123;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4513:123:43;-1:-1:-1;;;;;4513:123:43;;;;;;;;;;;;238:44;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;238:44:43;-1:-1:-1;;;;;238:44:43;;;;;4163:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4163:20:43;;;;4426:84;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4426:84:43;-1:-1:-1;;;;;4426:84:43;;;;;;;285:64;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;285:64:43;-1:-1:-1;;;;;285:64:43;;;;;;;;;;4142:18;;;;;;;;;;;;;;;-1:-1:-1;;4142:18:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;4331:92::-;4393:26;4402:8;4412:6;4393:8;:26::i;:::-;4331:92;;:::o;209:26::-;;;;:::o;4513:123::-;4599:33;4613:5;4620:3;4625:6;4599:13;:33::i;:::-;4513:123;;;:::o;238:44::-;;;;;;;;;;;;;:::o;4163:20::-;;;;;;;;;;;;;;;-1:-1:-1;;4163:20:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4426:84;4484:22;4494:3;4499:6;4484:9;:22::i;285:64::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;2517:363::-;2591:8;475:23:72;489:8;475:13;:23::i;:::-;2732:11:43;;;:51;;-1:-1:-1;2757:10:43;2747:21;;;;:9;:21;;;;;;;;-1:-1:-1;;;;;2747:31:43;;;;;;;;;;:36;2732:51;2724:60;;;;;;;;2799:10;2789:21;;;;:9;:21;;;;;;;;-1:-1:-1;;;;;2789:31:43;;;;;;;;;;;;:40;;;2838:38;;;;;;;2789:31;;2799:10;2838:38;;;;;;;;;;;2517:363;;;:::o;1541:337::-;1639:5;475:23:72;489:8;475:13;:23::i;:::-;1659:3:43;475:23:72;489:8;475:13;:23::i;:::-;-1:-1:-1;;;;;1699:16:43;;;;;;:9;:16;;;;;;;;1716:10;1699:28;;;;;;;;:40;;1732:6;1699:40;:32;:40;:::i;:::-;-1:-1:-1;;;;;1668:16:43;;;;;;:9;:16;;;;;;;;1685:10;1668:28;;;;;;;:71;;;;1762:16;;;:9;:16;;;;;:28;;1783:6;1762:28;:20;:28;:::i;:::-;-1:-1:-1;;;;;1743:16:43;;;;;;;:9;:16;;;;;;:47;;;;1811:14;;;;;;;:26;;1830:6;1811:26;:18;:26;:::i;:::-;-1:-1:-1;;;;;1794:14:43;;;;;;;:9;:14;;;;;;;;;:43;;;;1846:28;;;;;;;1794:14;;1846:28;;;;;;;;;;;;;502:1:72;1541:337:43;;;;:::o;982:229::-;1052:3;475:23:72;489:8;475:13;:23::i;:::-;1095:10:43;1085:21;;;;:9;:21;;;;;;:33;;1111:6;1085:33;:25;:33;:::i;:::-;1071:10;1061:21;;;;:9;:21;;;;;;:57;;;;-1:-1:-1;;;;;1139:14:43;;;;;;:26;;1158:6;1139:26;:18;:26;:::i;:::-;-1:-1:-1;;;;;1122:14:43;;;;;;:9;:14;;;;;;;;;:43;;;;1174:33;;;;;;;1122:14;;1183:10;;1174:33;;;;;;;;;;982:229;;;:::o;553:117:72:-;-1:-1:-1;;;;;620:22:72;;;;612:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;553:117;:::o;613:129:69:-;673:7;694:8;;;;686:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;731:7:69;;;613:129::o;288:144::-;348:7;373;;;392;;;;384:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;427:1;288:144;-1:-1:-1;;;288:144:69:o" - }, - "methodIdentifiers": { - "allowance(address,address)": "dd62ed3e", - "approve(address,uint256)": "095ea7b3", - "balanceOf(address)": "70a08231", - "name()": "06fdde03", - "symbol()": "95d89b41", - "totalSupply()": "18160ddd", - "transfer(address,uint256)": "a9059cbb", - "transferFrom(address,address,uint256)": "23b872dd" - } - }, - "userdoc": { - "methods": {} - } - }, - "TestStandardToken": { - "abi": [ - { - "constant": true, - "inputs": [], - "name": "name", - "outputs": [ - { - "name": "", - "type": "string" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_spender", - "type": "address" - }, - { - "name": "_value", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "totalSupply", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "ret", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_from", - "type": "address" - }, - { - "name": "_to", - "type": "address" - }, - { - "name": "_value", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "decimals", - "outputs": [ - { - "name": "", - "type": "uint8" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "symbol", - "outputs": [ - { - "name": "", - "type": "string" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_to", - "type": "address" - }, - { - "name": "_value", - "type": "uint256" - } - ], - "name": "transfer", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "ok", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "", - "type": "address" - }, - { - "name": "", - "type": "address" - } - ], - "name": "allowance", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_ok", - "type": "bool" - }, - { - "name": "_ret", - "type": "bool" - } - ], - "name": "set", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "name": "_name", - "type": "string" - }, - { - "name": "_symbol", - "type": "string" - }, - { - "name": "_decimals", - "type": "uint8" - }, - { - "name": "_supply", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "_from", - "type": "address" - }, - { - "indexed": true, - "name": "_to", - "type": "address" - }, - { - "indexed": false, - "name": "_value", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "_owner", - "type": "address" - }, - { - "indexed": true, - "name": "_spender", - "type": "address" - }, - { - "indexed": false, - "name": "_value", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - } - ], - "devdoc": { - "methods": {} - }, - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "608060405234801561001057600080fd5b50604051610a4e380380610a4e83398101604090815281516020808401518385015160608601516000818155338152600185529590952085905592850180519095919091019391859185918591859161006e916003918701906100e4565b5082516100829060049060208601906100e4565b50506005805460ff191660ff92909216919091179055506100af90506001806401000000006100b8810204565b5050505061017f565b60058054911515620100000262ff0000199315156101000261ff00199093169290921792909216179055565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061012557805160ff1916838001178555610152565b82800160010185558215610152579182015b82811115610152578251825591602001919060010190610137565b5061015e929150610162565b5090565b61017c91905b8082111561015e5760008155600101610168565b90565b6108c08061018e6000396000f3006080604052600436106100b95763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde0381146100be578063095ea7b31461014857806318160ddd146101805780631b08d96f146101a757806323b872dd146101bc578063313ce567146101e657806370a082311461021157806395d89b4114610232578063a9059cbb14610247578063d909b4031461026b578063dd62ed3e14610280578063f907191a146102a7575b600080fd5b3480156100ca57600080fd5b506100d36102c8565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561010d5781810151838201526020016100f5565b50505050905090810190601f16801561013a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561015457600080fd5b5061016c600160a060020a0360043516602435610356565b604080519115158252519081900360200190f35b34801561018c57600080fd5b5061019561038b565b60408051918252519081900360200190f35b3480156101b357600080fd5b5061016c610391565b3480156101c857600080fd5b5061016c600160a060020a03600435811690602435166044356103a0565b3480156101f257600080fd5b506101fb6103d7565b6040805160ff9092168252519081900360200190f35b34801561021d57600080fd5b50610195600160a060020a03600435166103e0565b34801561023e57600080fd5b506100d36103f2565b34801561025357600080fd5b5061016c600160a060020a036004351660243561044d565b34801561027757600080fd5b5061016c610459565b34801561028c57600080fd5b50610195600160a060020a0360043581169060243516610467565b3480156102b357600080fd5b506102c660043515156024351515610484565b005b6003805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561034e5780601f106103235761010080835404028352916020019161034e565b820191906000526020600020905b81548152906001019060200180831161033157829003601f168201915b505050505081565b600061036283836104b0565b600554610100900460ff16151561037857600080fd5b505060055462010000900460ff16919050565b60005481565b60055462010000900460ff1681565b60006103ad848484610556565b600554610100900460ff1615156103c357600080fd5b505060055462010000900460ff1692915050565b60055460ff1681565b60016020526000908152604090205481565b6004805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561034e5780601f106103235761010080835404028352916020019161034e565b60006103628383610672565b600554610100900460ff1681565b600260209081526000928352604080842090915290825290205481565b60058054911515620100000262ff0000199315156101000261ff00199093169290921792909216179055565b816104ba81610728565b8115806104e85750336000908152600260209081526040808320600160a060020a0387168452909152902054155b15156104f357600080fd5b336000818152600260209081526040808320600160a060020a03881680855290835292819020869055805186815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a3505050565b8261056081610728565b8261056a81610728565b600160a060020a038516600090815260026020908152604080832033845290915290205461059e908463ffffffff6107a216565b600160a060020a0386166000818152600260209081526040808320338452825280832094909455918152600190915220546105df908463ffffffff6107a216565b600160a060020a038087166000908152600160205260408082209390935590861681522054610614908463ffffffff61081916565b600160a060020a0380861660008181526001602090815260409182902094909455805187815290519193928916927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a35050505050565b8161067c81610728565b3360009081526001602052604090205461069c908363ffffffff6107a216565b3360009081526001602052604080822092909255600160a060020a038516815220546106ce908363ffffffff61081916565b600160a060020a0384166000818152600160209081526040918290209390935580518581529051919233927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a3505050565b600160a060020a038116151561079f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b50565b60008183101561081357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600d60248201527f4552525f554e444552464c4f5700000000000000000000000000000000000000604482015290519081900360640190fd5b50900390565b60008282018381101561088d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b93925050505600a165627a7a72305820edafaf3a955d04caae72138a446cb28ee6a87ad170c277045dc197d87a246aa20029", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0xA4E CODESIZE SUB DUP1 PUSH2 0xA4E DUP4 CODECOPY DUP2 ADD PUSH1 0x40 SWAP1 DUP2 MSTORE DUP2 MLOAD PUSH1 0x20 DUP1 DUP5 ADD MLOAD DUP4 DUP6 ADD MLOAD PUSH1 0x60 DUP7 ADD MLOAD PUSH1 0x0 DUP2 DUP2 SSTORE CALLER DUP2 MSTORE PUSH1 0x1 DUP6 MSTORE SWAP6 SWAP1 SWAP6 KECCAK256 DUP6 SWAP1 SSTORE SWAP3 DUP6 ADD DUP1 MLOAD SWAP1 SWAP6 SWAP2 SWAP1 SWAP2 ADD SWAP4 SWAP2 DUP6 SWAP2 DUP6 SWAP2 DUP6 SWAP2 DUP6 SWAP2 PUSH2 0x6E SWAP2 PUSH1 0x3 SWAP2 DUP8 ADD SWAP1 PUSH2 0xE4 JUMP JUMPDEST POP DUP3 MLOAD PUSH2 0x82 SWAP1 PUSH1 0x4 SWAP1 PUSH1 0x20 DUP7 ADD SWAP1 PUSH2 0xE4 JUMP JUMPDEST POP POP PUSH1 0x5 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0xFF SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE POP PUSH2 0xAF SWAP1 POP PUSH1 0x1 DUP1 PUSH5 0x100000000 PUSH2 0xB8 DUP2 MUL DIV JUMP JUMPDEST POP POP POP POP PUSH2 0x17F JUMP JUMPDEST PUSH1 0x5 DUP1 SLOAD SWAP2 ISZERO ISZERO PUSH3 0x10000 MUL PUSH3 0xFF0000 NOT SWAP4 ISZERO ISZERO PUSH2 0x100 MUL PUSH2 0xFF00 NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP3 SWAP1 SWAP3 AND OR SWAP1 SSTORE JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH1 0x1F LT PUSH2 0x125 JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH2 0x152 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x152 JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x152 JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x137 JUMP JUMPDEST POP PUSH2 0x15E SWAP3 SWAP2 POP PUSH2 0x162 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH2 0x17C SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x15E JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x168 JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH2 0x8C0 DUP1 PUSH2 0x18E PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0xB9 JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x6FDDE03 DUP2 EQ PUSH2 0xBE JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x148 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x180 JUMPI DUP1 PUSH4 0x1B08D96F EQ PUSH2 0x1A7 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x1BC JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x1E6 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x211 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x232 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x247 JUMPI DUP1 PUSH4 0xD909B403 EQ PUSH2 0x26B JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x280 JUMPI DUP1 PUSH4 0xF907191A EQ PUSH2 0x2A7 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xCA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xD3 PUSH2 0x2C8 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP4 MLOAD DUP2 DUP4 ADD MSTORE DUP4 MLOAD SWAP2 SWAP3 DUP4 SWAP3 SWAP1 DUP4 ADD SWAP2 DUP6 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x10D JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0xF5 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x13A JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x154 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x16C PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x356 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x18C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x195 PUSH2 0x38B JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1B3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x16C PUSH2 0x391 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1C8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x16C PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x3A0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1F2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1FB PUSH2 0x3D7 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x21D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x195 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x3E0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x23E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xD3 PUSH2 0x3F2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x253 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x16C PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x44D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x277 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x16C PUSH2 0x459 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x28C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x195 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH2 0x467 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2B3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C6 PUSH1 0x4 CALLDATALOAD ISZERO ISZERO PUSH1 0x24 CALLDATALOAD ISZERO ISZERO PUSH2 0x484 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x3 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x2 PUSH1 0x1 DUP6 AND ISZERO PUSH2 0x100 MUL PUSH1 0x0 NOT ADD SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 DIV PUSH1 0x1F DUP2 ADD DUP5 SWAP1 DIV DUP5 MUL DUP3 ADD DUP5 ADD SWAP1 SWAP3 MSTORE DUP2 DUP2 MSTORE SWAP3 SWAP2 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x34E JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x323 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x34E JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x331 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x362 DUP4 DUP4 PUSH2 0x4B0 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO PUSH2 0x378 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP PUSH1 0x5 SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0xFF AND SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3AD DUP5 DUP5 DUP5 PUSH2 0x556 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO PUSH2 0x3C3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP PUSH1 0x5 SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0xFF AND SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x4 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x2 PUSH1 0x1 DUP6 AND ISZERO PUSH2 0x100 MUL PUSH1 0x0 NOT ADD SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 DIV PUSH1 0x1F DUP2 ADD DUP5 SWAP1 DIV DUP5 MUL DUP3 ADD DUP5 ADD SWAP1 SWAP3 MSTORE DUP2 DUP2 MSTORE SWAP3 SWAP2 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x34E JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x323 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x34E JUMP JUMPDEST PUSH1 0x0 PUSH2 0x362 DUP4 DUP4 PUSH2 0x672 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x5 DUP1 SLOAD SWAP2 ISZERO ISZERO PUSH3 0x10000 MUL PUSH3 0xFF0000 NOT SWAP4 ISZERO ISZERO PUSH2 0x100 MUL PUSH2 0xFF00 NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP3 SWAP1 SWAP3 AND OR SWAP1 SSTORE JUMP JUMPDEST DUP2 PUSH2 0x4BA DUP2 PUSH2 0x728 JUMP JUMPDEST DUP2 ISZERO DUP1 PUSH2 0x4E8 JUMPI POP CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x4F3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST CALLER PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 AND DUP1 DUP6 MSTORE SWAP1 DUP4 MSTORE SWAP3 DUP2 SWAP1 KECCAK256 DUP7 SWAP1 SSTORE DUP1 MLOAD DUP7 DUP2 MSTORE SWAP1 MLOAD SWAP3 SWAP4 SWAP3 PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP3 SWAP2 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP POP POP JUMP JUMPDEST DUP3 PUSH2 0x560 DUP2 PUSH2 0x728 JUMP JUMPDEST DUP3 PUSH2 0x56A DUP2 PUSH2 0x728 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH2 0x59E SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0x7A2 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE DUP3 MSTORE DUP1 DUP4 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE SWAP2 DUP2 MSTORE PUSH1 0x1 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD PUSH2 0x5DF SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0x7A2 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE SWAP1 DUP7 AND DUP2 MSTORE KECCAK256 SLOAD PUSH2 0x614 SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0x819 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP7 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE DUP1 MLOAD DUP8 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP4 SWAP3 DUP10 AND SWAP3 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP3 SWAP2 DUP3 SWAP1 SUB ADD SWAP1 LOG3 POP POP POP POP POP JUMP JUMPDEST DUP2 PUSH2 0x67C DUP2 PUSH2 0x728 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x69C SWAP1 DUP4 PUSH4 0xFFFFFFFF PUSH2 0x7A2 AND JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP3 SWAP1 SWAP3 SSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND DUP2 MSTORE KECCAK256 SLOAD PUSH2 0x6CE SWAP1 DUP4 PUSH4 0xFFFFFFFF PUSH2 0x819 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE DUP1 MLOAD DUP6 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP3 CALLER SWAP3 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0x79F JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT ISZERO PUSH2 0x813 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F554E444552464C4F5700000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP SWAP1 SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 ADD DUP4 DUP2 LT ISZERO PUSH2 0x88D JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 0xed 0xaf 0xaf GASPRICE SWAP6 0x5d DIV 0xca 0xae PUSH19 0x138A446CB28EE6A87AD170C277045DC197D87A 0x24 PUSH11 0xA200290000000000000000 ", - "sourceMap": "4640:788:43:-;;;4734:178;8:9:-1;5:2;;;30:1;27;20:12;5:2;4734:178:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;662:11;:21;;;697:10;687:21;;:9;:21;;;;;;:31;;;4734:178;;;3353:12;;4734:178;;;;;;;;;;;;;;;;3353:12;;:4;;:12;;;;:::i;:::-;-1:-1:-1;3369:16:43;;;;:6;;:16;;;;;:::i;:::-;-1:-1:-1;;3389:8:43;:20;;-1:-1:-1;;3389:20:43;;;;;;;;;;;;-1:-1:-1;4893:15:43;;-1:-1:-1;;;4893:3:43;;;;:15;:::i;:::-;4734:178;;;;4640:788;;4915:71;4960:2;:8;;4972:10;;;;;-1:-1:-1;;4960:8:43;;;;;-1:-1:-1;;4960:8:43;;;;;;;4972:10;;;;;;;4915:71::o;4640:788::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4640:788:43;;;-1:-1:-1;4640:788:43;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;" - }, - "deployedBytecode": { - "linkReferences": {}, - "object": "6080604052600436106100b95763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde0381146100be578063095ea7b31461014857806318160ddd146101805780631b08d96f146101a757806323b872dd146101bc578063313ce567146101e657806370a082311461021157806395d89b4114610232578063a9059cbb14610247578063d909b4031461026b578063dd62ed3e14610280578063f907191a146102a7575b600080fd5b3480156100ca57600080fd5b506100d36102c8565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561010d5781810151838201526020016100f5565b50505050905090810190601f16801561013a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561015457600080fd5b5061016c600160a060020a0360043516602435610356565b604080519115158252519081900360200190f35b34801561018c57600080fd5b5061019561038b565b60408051918252519081900360200190f35b3480156101b357600080fd5b5061016c610391565b3480156101c857600080fd5b5061016c600160a060020a03600435811690602435166044356103a0565b3480156101f257600080fd5b506101fb6103d7565b6040805160ff9092168252519081900360200190f35b34801561021d57600080fd5b50610195600160a060020a03600435166103e0565b34801561023e57600080fd5b506100d36103f2565b34801561025357600080fd5b5061016c600160a060020a036004351660243561044d565b34801561027757600080fd5b5061016c610459565b34801561028c57600080fd5b50610195600160a060020a0360043581169060243516610467565b3480156102b357600080fd5b506102c660043515156024351515610484565b005b6003805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561034e5780601f106103235761010080835404028352916020019161034e565b820191906000526020600020905b81548152906001019060200180831161033157829003601f168201915b505050505081565b600061036283836104b0565b600554610100900460ff16151561037857600080fd5b505060055462010000900460ff16919050565b60005481565b60055462010000900460ff1681565b60006103ad848484610556565b600554610100900460ff1615156103c357600080fd5b505060055462010000900460ff1692915050565b60055460ff1681565b60016020526000908152604090205481565b6004805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561034e5780601f106103235761010080835404028352916020019161034e565b60006103628383610672565b600554610100900460ff1681565b600260209081526000928352604080842090915290825290205481565b60058054911515620100000262ff0000199315156101000261ff00199093169290921792909216179055565b816104ba81610728565b8115806104e85750336000908152600260209081526040808320600160a060020a0387168452909152902054155b15156104f357600080fd5b336000818152600260209081526040808320600160a060020a03881680855290835292819020869055805186815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a3505050565b8261056081610728565b8261056a81610728565b600160a060020a038516600090815260026020908152604080832033845290915290205461059e908463ffffffff6107a216565b600160a060020a0386166000818152600260209081526040808320338452825280832094909455918152600190915220546105df908463ffffffff6107a216565b600160a060020a038087166000908152600160205260408082209390935590861681522054610614908463ffffffff61081916565b600160a060020a0380861660008181526001602090815260409182902094909455805187815290519193928916927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a35050505050565b8161067c81610728565b3360009081526001602052604090205461069c908363ffffffff6107a216565b3360009081526001602052604080822092909255600160a060020a038516815220546106ce908363ffffffff61081916565b600160a060020a0384166000818152600160209081526040918290209390935580518581529051919233927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a3505050565b600160a060020a038116151561079f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b50565b60008183101561081357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600d60248201527f4552525f554e444552464c4f5700000000000000000000000000000000000000604482015290519081900360640190fd5b50900390565b60008282018381101561088d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b93925050505600a165627a7a72305820edafaf3a955d04caae72138a446cb28ee6a87ad170c277045dc197d87a246aa20029", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0xB9 JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x6FDDE03 DUP2 EQ PUSH2 0xBE JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x148 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x180 JUMPI DUP1 PUSH4 0x1B08D96F EQ PUSH2 0x1A7 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x1BC JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x1E6 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x211 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x232 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x247 JUMPI DUP1 PUSH4 0xD909B403 EQ PUSH2 0x26B JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x280 JUMPI DUP1 PUSH4 0xF907191A EQ PUSH2 0x2A7 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xCA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xD3 PUSH2 0x2C8 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP4 MLOAD DUP2 DUP4 ADD MSTORE DUP4 MLOAD SWAP2 SWAP3 DUP4 SWAP3 SWAP1 DUP4 ADD SWAP2 DUP6 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x10D JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0xF5 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x13A JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x154 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x16C PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x356 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x18C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x195 PUSH2 0x38B JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1B3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x16C PUSH2 0x391 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1C8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x16C PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x3A0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1F2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1FB PUSH2 0x3D7 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x21D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x195 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x3E0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x23E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xD3 PUSH2 0x3F2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x253 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x16C PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x44D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x277 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x16C PUSH2 0x459 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x28C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x195 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH2 0x467 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2B3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C6 PUSH1 0x4 CALLDATALOAD ISZERO ISZERO PUSH1 0x24 CALLDATALOAD ISZERO ISZERO PUSH2 0x484 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x3 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x2 PUSH1 0x1 DUP6 AND ISZERO PUSH2 0x100 MUL PUSH1 0x0 NOT ADD SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 DIV PUSH1 0x1F DUP2 ADD DUP5 SWAP1 DIV DUP5 MUL DUP3 ADD DUP5 ADD SWAP1 SWAP3 MSTORE DUP2 DUP2 MSTORE SWAP3 SWAP2 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x34E JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x323 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x34E JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x331 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x362 DUP4 DUP4 PUSH2 0x4B0 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO PUSH2 0x378 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP PUSH1 0x5 SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0xFF AND SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3AD DUP5 DUP5 DUP5 PUSH2 0x556 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO PUSH2 0x3C3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP PUSH1 0x5 SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0xFF AND SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x4 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x2 PUSH1 0x1 DUP6 AND ISZERO PUSH2 0x100 MUL PUSH1 0x0 NOT ADD SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 DIV PUSH1 0x1F DUP2 ADD DUP5 SWAP1 DIV DUP5 MUL DUP3 ADD DUP5 ADD SWAP1 SWAP3 MSTORE DUP2 DUP2 MSTORE SWAP3 SWAP2 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x34E JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x323 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x34E JUMP JUMPDEST PUSH1 0x0 PUSH2 0x362 DUP4 DUP4 PUSH2 0x672 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x5 DUP1 SLOAD SWAP2 ISZERO ISZERO PUSH3 0x10000 MUL PUSH3 0xFF0000 NOT SWAP4 ISZERO ISZERO PUSH2 0x100 MUL PUSH2 0xFF00 NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP3 SWAP1 SWAP3 AND OR SWAP1 SSTORE JUMP JUMPDEST DUP2 PUSH2 0x4BA DUP2 PUSH2 0x728 JUMP JUMPDEST DUP2 ISZERO DUP1 PUSH2 0x4E8 JUMPI POP CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x4F3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST CALLER PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 AND DUP1 DUP6 MSTORE SWAP1 DUP4 MSTORE SWAP3 DUP2 SWAP1 KECCAK256 DUP7 SWAP1 SSTORE DUP1 MLOAD DUP7 DUP2 MSTORE SWAP1 MLOAD SWAP3 SWAP4 SWAP3 PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP3 SWAP2 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP POP POP JUMP JUMPDEST DUP3 PUSH2 0x560 DUP2 PUSH2 0x728 JUMP JUMPDEST DUP3 PUSH2 0x56A DUP2 PUSH2 0x728 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH2 0x59E SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0x7A2 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE DUP3 MSTORE DUP1 DUP4 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE SWAP2 DUP2 MSTORE PUSH1 0x1 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD PUSH2 0x5DF SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0x7A2 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE SWAP1 DUP7 AND DUP2 MSTORE KECCAK256 SLOAD PUSH2 0x614 SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0x819 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP7 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE DUP1 MLOAD DUP8 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP4 SWAP3 DUP10 AND SWAP3 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP3 SWAP2 DUP3 SWAP1 SUB ADD SWAP1 LOG3 POP POP POP POP POP JUMP JUMPDEST DUP2 PUSH2 0x67C DUP2 PUSH2 0x728 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x69C SWAP1 DUP4 PUSH4 0xFFFFFFFF PUSH2 0x7A2 AND JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP3 SWAP1 SWAP3 SSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND DUP2 MSTORE KECCAK256 SLOAD PUSH2 0x6CE SWAP1 DUP4 PUSH4 0xFFFFFFFF PUSH2 0x819 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE DUP1 MLOAD DUP6 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP3 CALLER SWAP3 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0x79F JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT ISZERO PUSH2 0x813 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F554E444552464C4F5700000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP SWAP1 SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 ADD DUP4 DUP2 LT ISZERO PUSH2 0x88D JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 0xed 0xaf 0xaf GASPRICE SWAP6 0x5d DIV 0xca 0xae PUSH19 0x138A446CB28EE6A87AD170C277045DC197D87A 0x24 PUSH11 0xA200290000000000000000 ", - "sourceMap": "4640:788:43:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2941:18;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2941:18:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;2941:18:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4989:136;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4989:136:43;-1:-1:-1;;;;;4989:136:43;;;;;;;;;;;;;;;;;;;;;;;;;209:26;;8:9:-1;5:2;;;30:1;27;20:12;5:2;209:26:43;;;;;;;;;;;;;;;;;;;;4715:15;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4715:15:43;;;;5259:167;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;5259:167:43;-1:-1:-1;;;;;5259:167:43;;;;;;;;;;;;2985:21;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2985:21:43;;;;;;;;;;;;;;;;;;;;;;;238:44;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;238:44:43;-1:-1:-1;;;;;238:44:43;;;;;2962:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2962:20:43;;;;5128:128;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;5128:128:43;-1:-1:-1;;;;;5128:128:43;;;;;;;4698:14;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4698:14:43;;;;285:64;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;285:64:43;-1:-1:-1;;;;;285:64:43;;;;;;;;;;4915:71;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4915:71:43;;;;;;;;;;;;;2941:18;;;;;;;;;;;;;;;-1:-1:-1;;2941:18:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;4989:136::-;5056:4;5066:26;5075:8;5085:6;5066:8;:26::i;:::-;5104:2;;;;;;;5096:11;;;;;;;;-1:-1:-1;;5118:3:43;;;;;;;;4989:136;-1:-1:-1;4989:136:43:o;209:26::-;;;;:::o;4715:15::-;;;;;;;;;:::o;5259:167::-;5350:4;5360:33;5374:5;5381:3;5386:6;5360:13;:33::i;:::-;5405:2;;;;;;;5397:11;;;;;;;;-1:-1:-1;;5419:3:43;;;;;;;;5259:167;-1:-1:-1;;5259:167:43:o;2985:21::-;;;;;;:::o;238:44::-;;;;;;;;;;;;;:::o;2962:20::-;;;;;;;;;;;;;;;-1:-1:-1;;2962:20:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5128:128;5191:4;5201:22;5211:3;5216:6;5201:9;:22::i;4698:14::-;;;;;;;;;:::o;285:64::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;4915:71::-;4960:2;:8;;4972:10;;;;;-1:-1:-1;;4960:8:43;;;;;-1:-1:-1;;4960:8:43;;;;;;;4972:10;;;;;;;4915:71::o;2517:363::-;2591:8;475:23:72;489:8;475:13;:23::i;:::-;2732:11:43;;;:51;;-1:-1:-1;2757:10:43;2747:21;;;;:9;:21;;;;;;;;-1:-1:-1;;;;;2747:31:43;;;;;;;;;;:36;2732:51;2724:60;;;;;;;;2799:10;2789:21;;;;:9;:21;;;;;;;;-1:-1:-1;;;;;2789:31:43;;;;;;;;;;;;:40;;;2838:38;;;;;;;2789:31;;2799:10;2838:38;;;;;;;;;;;2517:363;;;:::o;1541:337::-;1639:5;475:23:72;489:8;475:13;:23::i;:::-;1659:3:43;475:23:72;489:8;475:13;:23::i;:::-;-1:-1:-1;;;;;1699:16:43;;;;;;:9;:16;;;;;;;;1716:10;1699:28;;;;;;;;:40;;1732:6;1699:40;:32;:40;:::i;:::-;-1:-1:-1;;;;;1668:16:43;;;;;;:9;:16;;;;;;;;1685:10;1668:28;;;;;;;:71;;;;1762:16;;;:9;:16;;;;;:28;;1783:6;1762:28;:20;:28;:::i;:::-;-1:-1:-1;;;;;1743:16:43;;;;;;;:9;:16;;;;;;:47;;;;1811:14;;;;;;;:26;;1830:6;1811:26;:18;:26;:::i;:::-;-1:-1:-1;;;;;1794:14:43;;;;;;;:9;:14;;;;;;;;;:43;;;;1846:28;;;;;;;1794:14;;1846:28;;;;;;;;;;;;;502:1:72;1541:337:43;;;;:::o;982:229::-;1052:3;475:23:72;489:8;475:13;:23::i;:::-;1095:10:43;1085:21;;;;:9;:21;;;;;;:33;;1111:6;1085:33;:25;:33;:::i;:::-;1071:10;1061:21;;;;:9;:21;;;;;;:57;;;;-1:-1:-1;;;;;1139:14:43;;;;;;:26;;1158:6;1139:26;:18;:26;:::i;:::-;-1:-1:-1;;;;;1122:14:43;;;;;;:9;:14;;;;;;;;;:43;;;;1174:33;;;;;;;1122:14;;1183:10;;1174:33;;;;;;;;;;982:229;;;:::o;553:117:72:-;-1:-1:-1;;;;;620:22:72;;;;612:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;553:117;:::o;613:129:69:-;673:7;694:8;;;;686:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;731:7:69;;;613:129::o;288:144::-;348:7;373;;;392;;;;384:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;427:1;288:144;-1:-1:-1;;;288:144:69:o" - }, - "methodIdentifiers": { - "allowance(address,address)": "dd62ed3e", - "approve(address,uint256)": "095ea7b3", - "balanceOf(address)": "70a08231", - "decimals()": "313ce567", - "name()": "06fdde03", - "ok()": "d909b403", - "ret()": "1b08d96f", - "set(bool,bool)": "f907191a", - "symbol()": "95d89b41", - "totalSupply()": "18160ddd", - "transfer(address,uint256)": "a9059cbb", - "transferFrom(address,address,uint256)": "23b872dd" - } - }, - "userdoc": { - "methods": {} - } - } - }, - "solidity/contracts/helpers/TestTypedConverterAnchorFactory.sol": { - "TestTypedConverterAnchorFactory": { - "abi": [ - { - "constant": true, - "inputs": [], - "name": "name", - "outputs": [ - { - "name": "", - "type": "string" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "converterType", - "outputs": [ - { - "name": "", - "type": "uint16" - } - ], - "payable": false, - "stateMutability": "pure", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "", - "type": "string" - }, - { - "name": "_symbol", - "type": "string" - }, - { - "name": "_decimals", - "type": "uint8" - } - ], - "name": "createAnchor", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "name": "_name", - "type": "string" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor" - } - ], - "devdoc": { - "methods": {} - }, - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "608060405234801561001057600080fd5b5060405161176338038061176383398101604052805101805161003a906000906020840190610041565b50506100dc565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061008257805160ff19168380011785556100af565b828001600101855582156100af579182015b828111156100af578251825591602001919060010190610094565b506100bb9291506100bf565b5090565b6100d991905b808211156100bb57600081556001016100c5565b90565b611678806100eb6000396000f3006080604052600436106100565763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde03811461005b5780633e8ff43f146100e5578063a9fd4a2a14610111575b600080fd5b34801561006757600080fd5b506100706101d6565b6040805160208082528351818301528351919283929083019185019080838360005b838110156100aa578181015183820152602001610092565b50505050905090810190601f1680156100d75780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156100f157600080fd5b506100fa610264565b6040805161ffff9092168252519081900360200190f35b34801561011d57600080fd5b506040805160206004803580820135601f81018490048402850184019095528484526101ad94369492936024939284019190819084018382808284375050604080516020601f89358b018035918201839004830284018301909452808352979a9998810197919650918201945092508291508401838280828437509497505050923560ff16935061026992505050565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6000805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561025c5780601f106102315761010080835404028352916020019161025c565b820191906000526020600020905b81548152906001019060200180831161023f57829003601f168201915b505050505081565b600890565b60008060008484610278610414565b60ff821660408201526060808252845460026000196101006001841615020190911604908201819052819060208201906080830190879080156102fc5780601f106102d1576101008083540402835291602001916102fc565b820191906000526020600020905b8154815290600101906020018083116102df57829003601f168201915b5050838103825285518152855160209182019187019080838360005b83811015610330578181015183820152602001610318565b50505050905090810190601f16801561035d5780820380516001836020036101000a031916815260200191505b5095505050505050604051809103906000f080158015610381573d6000803e3d6000fd5b50604080517ff2fde38b000000000000000000000000000000000000000000000000000000008152336004820152905191925073ffffffffffffffffffffffffffffffffffffffff83169163f2fde38b9160248082019260009290919082900301818387803b1580156103f357600080fd5b505af1158015610407573d6000803e3d6000fd5b5092979650505050505050565b6040516112288061042583390190560060806040526008805460ff191660011790553480156200001e57600080fd5b506040516200122838038062001228833981016040908152815160208301519183015160008054600160a060020a0319163317815591840180519094939093019290918491849184918110620000d557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f4552525f494e56414c49445f4e414d4500000000000000000000000000000000604482015290519081900360640190fd5b82516000106200014657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f4552525f494e56414c49445f53594d424f4c0000000000000000000000000000604482015290519081900360640190fd5b83516200015b906002906020870190620001a8565b50825162000171906003906020860190620001a8565b506004805460ff191660ff9390931692909217909155600581905533600090815260066020526040902055506200024d9350505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620001eb57805160ff19168380011785556200021b565b828001600101855582156200021b579182015b828111156200021b578251825591602001919060010190620001fe565b50620002299291506200022d565b5090565b6200024a91905b8082111562000229576000815560010162000234565b90565b610fcb806200025d6000396000f3006080604052600436106101065763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde03811461010b578063095ea7b3146101955780631608f18f146101cd57806318160ddd146101e957806323b872dd14610210578063313ce5671461023a57806354fd4d50146102655780635e35359e1461029157806370a08231146102bb57806379ba5097146102dc578063867904b4146102f15780638da5cb5b1461031557806395d89b4114610346578063a24835d11461035b578063a9059cbb1461037f578063bef97c87146103a3578063d4ee1d90146103b8578063dd62ed3e146103cd578063f2fde38b146103f4575b600080fd5b34801561011757600080fd5b50610120610415565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561015a578181015183820152602001610142565b50505050905090810190601f1680156101875780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101a157600080fd5b506101b9600160a060020a03600435166024356104a0565b604080519115158252519081900360200190f35b3480156101d957600080fd5b506101e76004351515610598565b005b3480156101f557600080fd5b506101fe6105b2565b60408051918252519081900360200190f35b34801561021c57600080fd5b506101b9600160a060020a03600435811690602435166044356105b8565b34801561024657600080fd5b5061024f6105df565b6040805160ff9092168252519081900360200190f35b34801561027157600080fd5b5061027a6105e8565b6040805161ffff9092168252519081900360200190f35b34801561029d57600080fd5b506101e7600160a060020a03600435811690602435166044356105ed565b3480156102c757600080fd5b506101fe600160a060020a0360043516610626565b3480156102e857600080fd5b506101e7610638565b3480156102fd57600080fd5b506101e7600160a060020a036004351660243561070b565b34801561032157600080fd5b5061032a6107ed565b60408051600160a060020a039092168252519081900360200190f35b34801561035257600080fd5b506101206107fc565b34801561036757600080fd5b506101e7600160a060020a0360043516602435610857565b34801561038b57600080fd5b506101b9600160a060020a036004351660243561091d565b3480156103af57600080fd5b506101b9610942565b3480156103c457600080fd5b5061032a61094b565b3480156103d957600080fd5b506101fe600160a060020a036004358116906024351661095a565b34801561040057600080fd5b506101e7600160a060020a0360043516610977565b6002805460408051602060018416156101000260001901909316849004601f810184900484028201840190925281815292918301828280156104985780601f1061046d57610100808354040283529160200191610498565b820191906000526020600020905b81548152906001019060200180831161047b57829003601f168201915b505050505081565b6000826104ac81610a14565b8215806104da5750336000908152600760209081526040808320600160a060020a0388168452909152902054155b1515610530576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f494e56414c49445f414d4f554e540000000000000000000000000000604482015290519081900360640190fd5b336000818152600760209081526040808320600160a060020a03891680855290835292819020879055805187815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060019392505050565b6105a0610a77565b6008805460ff19169115919091179055565b60055481565b60006105c2610adb565b6105cd848484610b37565b15156105d557fe5b5060019392505050565b60045460ff1681565b600481565b6105f5610a77565b826105ff81610a14565b8261060981610a14565b8361061381610c48565b61061e868686610ca9565b505050505050565b60066020526000908152604090205481565b600154600160a060020a0316331461069a576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b60015460008054604051600160a060020a0393841693909116917f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91a3600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b610713610a77565b8161071d81610a14565b8261072781610c48565b60055461073a908463ffffffff610d6316565b600555600160a060020a038416600090815260066020526040902054610766908463ffffffff610d6316565b600160a060020a03851660009081526006602090815260409182902092909255805185815290517f9386c90217c323f58030f9dadcbc938f807a940f4ff41cd4cead9562f5da7dc3929181900390910190a1604080518481529051600160a060020a03861691600091600080516020610f808339815191529181900360200190a350505050565b600054600160a060020a031681565b6003805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156104985780601f1061046d57610100808354040283529160200191610498565b61085f610a77565b600160a060020a038216600090815260066020526040902054610888908263ffffffff610dc716565b600160a060020a0383166000908152600660205260409020556005546108b4908263ffffffff610dc716565b600555604080518281529051600091600160a060020a03851691600080516020610f808339815191529181900360200190a36040805182815290517f9a1b418bc061a5d80270261562e6986a35d995f8051145f277be16103abd34539181900360200190a15050565b6000610927610adb565b6109318383610e27565b151561093957fe5b50600192915050565b60085460ff1681565b600154600160a060020a031681565b600760209081526000928352604080842090915290825290205481565b61097f610a77565b600054600160a060020a03828116911614156109e5576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f53414d455f4f574e4552000000000000000000000000000000000000604482015290519081900360640190fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600160a060020a0381161515610a74576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b50565b600054600160a060020a03163314610ad9576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b565b60085460ff161515610ad9576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f5452414e53464552535f44495341424c454400000000000000000000604482015290519081900360640190fd5b600083610b4381610a14565b83610b4d81610a14565b600160a060020a0386166000908152600760209081526040808320338452909152902054610b81908563ffffffff610dc716565b600160a060020a038716600081815260076020908152604080832033845282528083209490945591815260069091522054610bc2908563ffffffff610dc716565b600160a060020a038088166000908152600660205260408082209390935590871681522054610bf7908563ffffffff610d6316565b600160a060020a0380871660008181526006602090815260409182902094909455805188815290519193928a1692600080516020610f8083398151915292918290030190a350600195945050505050565b600160a060020a038116301415610a74576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f414444524553535f49535f53454c4600000000000000000000000000604482015290519081900360640190fd5b604080517f7472616e7366657228616464726573732c75696e74323536290000000000000081528151908190036019018120600160a060020a038516602483015260448083018590528351808403909101815260649092019092526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152610d5e908490610ed2565b505050565b600082820183811015610dc0576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b9392505050565b600081831015610e21576040805160e560020a62461bcd02815260206004820152600d60248201527f4552525f554e444552464c4f5700000000000000000000000000000000000000604482015290519081900360640190fd5b50900390565b600082610e3381610a14565b33600090815260066020526040902054610e53908463ffffffff610dc716565b3360009081526006602052604080822092909255600160a060020a03861681522054610e85908463ffffffff610d6316565b600160a060020a038516600081815260066020908152604091829020939093558051868152905191923392600080516020610f808339815191529281900390910190a35060019392505050565b610eda610f60565b602060405190810160405280600181525090506020818351602085016000875af1801515610f0757600080fd5b5080511515610d5e576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f5452414e534645525f4641494c454400000000000000000000000000604482015290519081900360640190fd5b60206040519081016040528060019060208202803883395091929150505600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a7230582031b56aebc8336b547b3e1346f50c2f44f70def554ed4cba4c81bcf2e092d047f0029a165627a7a7230582097488304562bb3686d468c1f6c1c2362931404ba307d8528a280012f8e9f0a3c0029", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x1763 CODESIZE SUB DUP1 PUSH2 0x1763 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 MSTORE DUP1 MLOAD ADD DUP1 MLOAD PUSH2 0x3A SWAP1 PUSH1 0x0 SWAP1 PUSH1 0x20 DUP5 ADD SWAP1 PUSH2 0x41 JUMP JUMPDEST POP POP PUSH2 0xDC JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH1 0x1F LT PUSH2 0x82 JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH2 0xAF JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0xAF JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0xAF JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x94 JUMP JUMPDEST POP PUSH2 0xBB SWAP3 SWAP2 POP PUSH2 0xBF JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH2 0xD9 SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0xBB JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0xC5 JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH2 0x1678 DUP1 PUSH2 0xEB PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x56 JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x6FDDE03 DUP2 EQ PUSH2 0x5B JUMPI DUP1 PUSH4 0x3E8FF43F EQ PUSH2 0xE5 JUMPI DUP1 PUSH4 0xA9FD4A2A EQ PUSH2 0x111 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x67 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x70 PUSH2 0x1D6 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP4 MLOAD DUP2 DUP4 ADD MSTORE DUP4 MLOAD SWAP2 SWAP3 DUP4 SWAP3 SWAP1 DUP4 ADD SWAP2 DUP6 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xAA JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x92 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0xD7 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xF1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xFA PUSH2 0x264 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0xFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x11D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD PUSH1 0x1F DUP2 ADD DUP5 SWAP1 DIV DUP5 MUL DUP6 ADD DUP5 ADD SWAP1 SWAP6 MSTORE DUP5 DUP5 MSTORE PUSH2 0x1AD SWAP5 CALLDATASIZE SWAP5 SWAP3 SWAP4 PUSH1 0x24 SWAP4 SWAP3 DUP5 ADD SWAP2 SWAP1 DUP2 SWAP1 DUP5 ADD DUP4 DUP3 DUP1 DUP3 DUP5 CALLDATACOPY POP POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x1F DUP10 CALLDATALOAD DUP12 ADD DUP1 CALLDATALOAD SWAP2 DUP3 ADD DUP4 SWAP1 DIV DUP4 MUL DUP5 ADD DUP4 ADD SWAP1 SWAP5 MSTORE DUP1 DUP4 MSTORE SWAP8 SWAP11 SWAP10 SWAP9 DUP2 ADD SWAP8 SWAP2 SWAP7 POP SWAP2 DUP3 ADD SWAP5 POP SWAP3 POP DUP3 SWAP2 POP DUP5 ADD DUP4 DUP3 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP POP POP SWAP3 CALLDATALOAD PUSH1 0xFF AND SWAP4 POP PUSH2 0x269 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x2 PUSH1 0x1 DUP6 AND ISZERO PUSH2 0x100 MUL PUSH1 0x0 NOT ADD SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 DIV PUSH1 0x1F DUP2 ADD DUP5 SWAP1 DIV DUP5 MUL DUP3 ADD DUP5 ADD SWAP1 SWAP3 MSTORE DUP2 DUP2 MSTORE SWAP3 SWAP2 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x25C JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x231 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x25C JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x23F JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH1 0x8 SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP5 DUP5 PUSH2 0x278 PUSH2 0x414 JUMP JUMPDEST PUSH1 0xFF DUP3 AND PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP1 DUP3 MSTORE DUP5 SLOAD PUSH1 0x2 PUSH1 0x0 NOT PUSH2 0x100 PUSH1 0x1 DUP5 AND ISZERO MUL ADD SWAP1 SWAP2 AND DIV SWAP1 DUP3 ADD DUP2 SWAP1 MSTORE DUP2 SWAP1 PUSH1 0x20 DUP3 ADD SWAP1 PUSH1 0x80 DUP4 ADD SWAP1 DUP8 SWAP1 DUP1 ISZERO PUSH2 0x2FC JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x2D1 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x2FC JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x2DF JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP DUP4 DUP2 SUB DUP3 MSTORE DUP6 MLOAD DUP2 MSTORE DUP6 MLOAD PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 DUP8 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x330 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x318 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x35D JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP6 POP POP POP POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 PUSH1 0x0 CREATE DUP1 ISZERO DUP1 ISZERO PUSH2 0x381 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH32 0xF2FDE38B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD SWAP2 SWAP3 POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND SWAP2 PUSH4 0xF2FDE38B SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3F3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x407 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP SWAP3 SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1228 DUP1 PUSH2 0x425 DUP4 CODECOPY ADD SWAP1 JUMP STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x8 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE CALLVALUE DUP1 ISZERO PUSH3 0x1E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x1228 CODESIZE SUB DUP1 PUSH3 0x1228 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 SWAP1 DUP2 MSTORE DUP2 MLOAD PUSH1 0x20 DUP4 ADD MLOAD SWAP2 DUP4 ADD MLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND CALLER OR DUP2 SSTORE SWAP2 DUP5 ADD DUP1 MLOAD SWAP1 SWAP5 SWAP4 SWAP1 SWAP4 ADD SWAP3 SWAP1 SWAP2 DUP5 SWAP2 DUP5 SWAP2 DUP5 SWAP2 DUP2 LT PUSH3 0xD5 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4E414D4500000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP3 MLOAD PUSH1 0x0 LT PUSH3 0x146 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F53594D424F4C0000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP4 MLOAD PUSH3 0x15B SWAP1 PUSH1 0x2 SWAP1 PUSH1 0x20 DUP8 ADD SWAP1 PUSH3 0x1A8 JUMP JUMPDEST POP DUP3 MLOAD PUSH3 0x171 SWAP1 PUSH1 0x3 SWAP1 PUSH1 0x20 DUP7 ADD SWAP1 PUSH3 0x1A8 JUMP JUMPDEST POP PUSH1 0x4 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0xFF SWAP4 SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 SSTORE PUSH1 0x5 DUP2 SWAP1 SSTORE CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE POP PUSH3 0x24D SWAP4 POP POP POP POP JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH1 0x1F LT PUSH3 0x1EB JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH3 0x21B JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH3 0x21B JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH3 0x21B JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH3 0x1FE JUMP JUMPDEST POP PUSH3 0x229 SWAP3 SWAP2 POP PUSH3 0x22D JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH3 0x24A SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH3 0x229 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH3 0x234 JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH2 0xFCB DUP1 PUSH3 0x25D PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x106 JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x6FDDE03 DUP2 EQ PUSH2 0x10B JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x195 JUMPI DUP1 PUSH4 0x1608F18F EQ PUSH2 0x1CD JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x1E9 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x210 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x23A JUMPI DUP1 PUSH4 0x54FD4D50 EQ PUSH2 0x265 JUMPI DUP1 PUSH4 0x5E35359E EQ PUSH2 0x291 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x2BB JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x2DC JUMPI DUP1 PUSH4 0x867904B4 EQ PUSH2 0x2F1 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x315 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x346 JUMPI DUP1 PUSH4 0xA24835D1 EQ PUSH2 0x35B JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x37F JUMPI DUP1 PUSH4 0xBEF97C87 EQ PUSH2 0x3A3 JUMPI DUP1 PUSH4 0xD4EE1D90 EQ PUSH2 0x3B8 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x3CD JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x3F4 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x117 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x120 PUSH2 0x415 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP4 MLOAD DUP2 DUP4 ADD MSTORE DUP4 MLOAD SWAP2 SWAP3 DUP4 SWAP3 SWAP1 DUP4 ADD SWAP2 DUP6 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x15A JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x142 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x187 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1A1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B9 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x4A0 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1D9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH1 0x4 CALLDATALOAD ISZERO ISZERO PUSH2 0x598 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1FE PUSH2 0x5B2 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x21C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B9 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x5B8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x246 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x24F PUSH2 0x5DF JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x271 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x27A PUSH2 0x5E8 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0xFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x29D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x5ED JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2C7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1FE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x626 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2E8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH2 0x638 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2FD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x70B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x321 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x32A PUSH2 0x7ED JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x352 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x120 PUSH2 0x7FC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x367 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x857 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x38B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B9 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x91D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3AF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B9 PUSH2 0x942 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3C4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x32A PUSH2 0x94B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3D9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1FE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH2 0x95A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x400 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x977 JUMP JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x1 DUP5 AND ISZERO PUSH2 0x100 MUL PUSH1 0x0 NOT ADD SWAP1 SWAP4 AND DUP5 SWAP1 DIV PUSH1 0x1F DUP2 ADD DUP5 SWAP1 DIV DUP5 MUL DUP3 ADD DUP5 ADD SWAP1 SWAP3 MSTORE DUP2 DUP2 MSTORE SWAP3 SWAP2 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x498 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x46D JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x498 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x47B JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x4AC DUP2 PUSH2 0xA14 JUMP JUMPDEST DUP3 ISZERO DUP1 PUSH2 0x4DA JUMPI POP CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x530 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F414D4F554E540000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST CALLER PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP10 AND DUP1 DUP6 MSTORE SWAP1 DUP4 MSTORE SWAP3 DUP2 SWAP1 KECCAK256 DUP8 SWAP1 SSTORE DUP1 MLOAD DUP8 DUP2 MSTORE SWAP1 MLOAD SWAP3 SWAP4 SWAP3 PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP3 SWAP2 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x5A0 PUSH2 0xA77 JUMP JUMPDEST PUSH1 0x8 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP2 ISZERO SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x5 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5C2 PUSH2 0xADB JUMP JUMPDEST PUSH2 0x5CD DUP5 DUP5 DUP5 PUSH2 0xB37 JUMP JUMPDEST ISZERO ISZERO PUSH2 0x5D5 JUMPI INVALID JUMPDEST POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x4 DUP2 JUMP JUMPDEST PUSH2 0x5F5 PUSH2 0xA77 JUMP JUMPDEST DUP3 PUSH2 0x5FF DUP2 PUSH2 0xA14 JUMP JUMPDEST DUP3 PUSH2 0x609 DUP2 PUSH2 0xA14 JUMP JUMPDEST DUP4 PUSH2 0x613 DUP2 PUSH2 0xC48 JUMP JUMPDEST PUSH2 0x61E DUP7 DUP7 DUP7 PUSH2 0xCA9 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x69A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND SWAP4 SWAP1 SWAP2 AND SWAP2 PUSH32 0x343765429AEA5A34B3FF6A3785A98A5ABB2597ACA87BFBB58632C173D585373A SWAP2 LOG3 PUSH1 0x1 DUP1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND OR SWAP1 SWAP2 SSTORE AND SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x713 PUSH2 0xA77 JUMP JUMPDEST DUP2 PUSH2 0x71D DUP2 PUSH2 0xA14 JUMP JUMPDEST DUP3 PUSH2 0x727 DUP2 PUSH2 0xC48 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH2 0x73A SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0xD63 AND JUMP JUMPDEST PUSH1 0x5 SSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x766 SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0xD63 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SWAP3 SWAP1 SWAP3 SSTORE DUP1 MLOAD DUP6 DUP2 MSTORE SWAP1 MLOAD PUSH32 0x9386C90217C323F58030F9DADCBC938F807A940F4FF41CD4CEAD9562F5DA7DC3 SWAP3 SWAP2 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG1 PUSH1 0x40 DUP1 MLOAD DUP5 DUP2 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND SWAP2 PUSH1 0x0 SWAP2 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xF80 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP2 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 LOG3 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x2 PUSH1 0x1 DUP6 AND ISZERO PUSH2 0x100 MUL PUSH1 0x0 NOT ADD SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 DIV PUSH1 0x1F DUP2 ADD DUP5 SWAP1 DIV DUP5 MUL DUP3 ADD DUP5 ADD SWAP1 SWAP3 MSTORE DUP2 DUP2 MSTORE SWAP3 SWAP2 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x498 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x46D JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x498 JUMP JUMPDEST PUSH2 0x85F PUSH2 0xA77 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x888 SWAP1 DUP3 PUSH4 0xFFFFFFFF PUSH2 0xDC7 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE PUSH1 0x5 SLOAD PUSH2 0x8B4 SWAP1 DUP3 PUSH4 0xFFFFFFFF PUSH2 0xDC7 AND JUMP JUMPDEST PUSH1 0x5 SSTORE PUSH1 0x40 DUP1 MLOAD DUP3 DUP2 MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND SWAP2 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xF80 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP2 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 LOG3 PUSH1 0x40 DUP1 MLOAD DUP3 DUP2 MSTORE SWAP1 MLOAD PUSH32 0x9A1B418BC061A5D80270261562E6986A35D995F8051145F277BE16103ABD3453 SWAP2 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x927 PUSH2 0xADB JUMP JUMPDEST PUSH2 0x931 DUP4 DUP4 PUSH2 0xE27 JUMP JUMPDEST ISZERO ISZERO PUSH2 0x939 JUMPI INVALID JUMPDEST POP PUSH1 0x1 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x97F PUSH2 0xA77 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x9E5 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F4F574E4552000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0xA74 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0xAD9 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0xFF AND ISZERO ISZERO PUSH2 0xAD9 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5452414E53464552535F44495341424C454400000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP4 PUSH2 0xB43 DUP2 PUSH2 0xA14 JUMP JUMPDEST DUP4 PUSH2 0xB4D DUP2 PUSH2 0xA14 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH2 0xB81 SWAP1 DUP6 PUSH4 0xFFFFFFFF PUSH2 0xDC7 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE DUP3 MSTORE DUP1 DUP4 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE SWAP2 DUP2 MSTORE PUSH1 0x6 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD PUSH2 0xBC2 SWAP1 DUP6 PUSH4 0xFFFFFFFF PUSH2 0xDC7 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE SWAP1 DUP8 AND DUP2 MSTORE KECCAK256 SLOAD PUSH2 0xBF7 SWAP1 DUP6 PUSH4 0xFFFFFFFF PUSH2 0xD63 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP8 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE DUP1 MLOAD DUP9 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP4 SWAP3 DUP11 AND SWAP3 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xF80 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP3 SWAP2 DUP3 SWAP1 SUB ADD SWAP1 LOG3 POP PUSH1 0x1 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ADDRESS EQ ISZERO PUSH2 0xA74 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F414444524553535F49535F53454C4600000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x7472616E7366657228616464726573732C75696E743235362900000000000000 DUP2 MSTORE DUP2 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x19 ADD DUP2 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x64 SWAP1 SWAP3 ADD SWAP1 SWAP3 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE PUSH2 0xD5E SWAP1 DUP5 SWAP1 PUSH2 0xED2 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 ADD DUP4 DUP2 LT ISZERO PUSH2 0xDC0 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT ISZERO PUSH2 0xE21 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F554E444552464C4F5700000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP SWAP1 SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0xE33 DUP2 PUSH2 0xA14 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0xE53 SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0xDC7 AND JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP3 SWAP1 SWAP3 SSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND DUP2 MSTORE KECCAK256 SLOAD PUSH2 0xE85 SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0xD63 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE DUP1 MLOAD DUP7 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP3 CALLER SWAP3 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xF80 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0xEDA PUSH2 0xF60 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE POP SWAP1 POP PUSH1 0x20 DUP2 DUP4 MLOAD PUSH1 0x20 DUP6 ADD PUSH1 0x0 DUP8 GAS CALL DUP1 ISZERO ISZERO PUSH2 0xF07 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD ISZERO ISZERO PUSH2 0xD5E JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5452414E534645525F4641494C454400000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 SWAP1 PUSH1 0x20 DUP3 MUL DUP1 CODESIZE DUP4 CODECOPY POP SWAP2 SWAP3 SWAP2 POP POP JUMP STOP 0xdd CALLCODE MSTORE 0xad SHL 0xe2 0xc8 SWAP12 PUSH10 0xC2B068FC378DAA952BA7 CALL PUSH4 0xC4A11628 0xf5 GAS 0x4d 0xf5 0x23 0xb3 0xef LOG1 PUSH6 0x627A7A723058 KECCAK256 BALANCE 0xb5 PUSH11 0xEBC8336B547B3E1346F50C 0x2f DIFFICULTY 0xf7 0xd 0xef SSTORE 0x4e 0xd4 0xcb LOG4 0xc8 SHL 0xcf 0x2e MULMOD 0x2d DIV PUSH32 0x29A165627A7A7230582097488304562BB3686D468C1F6C1C2362931404BA30 PUSH30 0x8528A280012F8E9F0A3C0029000000000000000000000000000000000000 ", - "sourceMap": "181:479:44:-;;;279:53;8:9:-1;5:2;;;30:1;27;20:12;5:2;279:53:44;;;;;;;;;;;;;;;;;316:12;;;;:4;;:12;;;;;:::i;:::-;;279:53;181:479;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;181:479:44;;;-1:-1:-1;181:479:44;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;" - }, - "deployedBytecode": { - "linkReferences": {}, - "object": "6080604052600436106100565763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde03811461005b5780633e8ff43f146100e5578063a9fd4a2a14610111575b600080fd5b34801561006757600080fd5b506100706101d6565b6040805160208082528351818301528351919283929083019185019080838360005b838110156100aa578181015183820152602001610092565b50505050905090810190601f1680156100d75780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156100f157600080fd5b506100fa610264565b6040805161ffff9092168252519081900360200190f35b34801561011d57600080fd5b506040805160206004803580820135601f81018490048402850184019095528484526101ad94369492936024939284019190819084018382808284375050604080516020601f89358b018035918201839004830284018301909452808352979a9998810197919650918201945092508291508401838280828437509497505050923560ff16935061026992505050565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6000805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561025c5780601f106102315761010080835404028352916020019161025c565b820191906000526020600020905b81548152906001019060200180831161023f57829003601f168201915b505050505081565b600890565b60008060008484610278610414565b60ff821660408201526060808252845460026000196101006001841615020190911604908201819052819060208201906080830190879080156102fc5780601f106102d1576101008083540402835291602001916102fc565b820191906000526020600020905b8154815290600101906020018083116102df57829003601f168201915b5050838103825285518152855160209182019187019080838360005b83811015610330578181015183820152602001610318565b50505050905090810190601f16801561035d5780820380516001836020036101000a031916815260200191505b5095505050505050604051809103906000f080158015610381573d6000803e3d6000fd5b50604080517ff2fde38b000000000000000000000000000000000000000000000000000000008152336004820152905191925073ffffffffffffffffffffffffffffffffffffffff83169163f2fde38b9160248082019260009290919082900301818387803b1580156103f357600080fd5b505af1158015610407573d6000803e3d6000fd5b5092979650505050505050565b6040516112288061042583390190560060806040526008805460ff191660011790553480156200001e57600080fd5b506040516200122838038062001228833981016040908152815160208301519183015160008054600160a060020a0319163317815591840180519094939093019290918491849184918110620000d557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f4552525f494e56414c49445f4e414d4500000000000000000000000000000000604482015290519081900360640190fd5b82516000106200014657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f4552525f494e56414c49445f53594d424f4c0000000000000000000000000000604482015290519081900360640190fd5b83516200015b906002906020870190620001a8565b50825162000171906003906020860190620001a8565b506004805460ff191660ff9390931692909217909155600581905533600090815260066020526040902055506200024d9350505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620001eb57805160ff19168380011785556200021b565b828001600101855582156200021b579182015b828111156200021b578251825591602001919060010190620001fe565b50620002299291506200022d565b5090565b6200024a91905b8082111562000229576000815560010162000234565b90565b610fcb806200025d6000396000f3006080604052600436106101065763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde03811461010b578063095ea7b3146101955780631608f18f146101cd57806318160ddd146101e957806323b872dd14610210578063313ce5671461023a57806354fd4d50146102655780635e35359e1461029157806370a08231146102bb57806379ba5097146102dc578063867904b4146102f15780638da5cb5b1461031557806395d89b4114610346578063a24835d11461035b578063a9059cbb1461037f578063bef97c87146103a3578063d4ee1d90146103b8578063dd62ed3e146103cd578063f2fde38b146103f4575b600080fd5b34801561011757600080fd5b50610120610415565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561015a578181015183820152602001610142565b50505050905090810190601f1680156101875780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101a157600080fd5b506101b9600160a060020a03600435166024356104a0565b604080519115158252519081900360200190f35b3480156101d957600080fd5b506101e76004351515610598565b005b3480156101f557600080fd5b506101fe6105b2565b60408051918252519081900360200190f35b34801561021c57600080fd5b506101b9600160a060020a03600435811690602435166044356105b8565b34801561024657600080fd5b5061024f6105df565b6040805160ff9092168252519081900360200190f35b34801561027157600080fd5b5061027a6105e8565b6040805161ffff9092168252519081900360200190f35b34801561029d57600080fd5b506101e7600160a060020a03600435811690602435166044356105ed565b3480156102c757600080fd5b506101fe600160a060020a0360043516610626565b3480156102e857600080fd5b506101e7610638565b3480156102fd57600080fd5b506101e7600160a060020a036004351660243561070b565b34801561032157600080fd5b5061032a6107ed565b60408051600160a060020a039092168252519081900360200190f35b34801561035257600080fd5b506101206107fc565b34801561036757600080fd5b506101e7600160a060020a0360043516602435610857565b34801561038b57600080fd5b506101b9600160a060020a036004351660243561091d565b3480156103af57600080fd5b506101b9610942565b3480156103c457600080fd5b5061032a61094b565b3480156103d957600080fd5b506101fe600160a060020a036004358116906024351661095a565b34801561040057600080fd5b506101e7600160a060020a0360043516610977565b6002805460408051602060018416156101000260001901909316849004601f810184900484028201840190925281815292918301828280156104985780601f1061046d57610100808354040283529160200191610498565b820191906000526020600020905b81548152906001019060200180831161047b57829003601f168201915b505050505081565b6000826104ac81610a14565b8215806104da5750336000908152600760209081526040808320600160a060020a0388168452909152902054155b1515610530576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f494e56414c49445f414d4f554e540000000000000000000000000000604482015290519081900360640190fd5b336000818152600760209081526040808320600160a060020a03891680855290835292819020879055805187815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060019392505050565b6105a0610a77565b6008805460ff19169115919091179055565b60055481565b60006105c2610adb565b6105cd848484610b37565b15156105d557fe5b5060019392505050565b60045460ff1681565b600481565b6105f5610a77565b826105ff81610a14565b8261060981610a14565b8361061381610c48565b61061e868686610ca9565b505050505050565b60066020526000908152604090205481565b600154600160a060020a0316331461069a576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b60015460008054604051600160a060020a0393841693909116917f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91a3600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b610713610a77565b8161071d81610a14565b8261072781610c48565b60055461073a908463ffffffff610d6316565b600555600160a060020a038416600090815260066020526040902054610766908463ffffffff610d6316565b600160a060020a03851660009081526006602090815260409182902092909255805185815290517f9386c90217c323f58030f9dadcbc938f807a940f4ff41cd4cead9562f5da7dc3929181900390910190a1604080518481529051600160a060020a03861691600091600080516020610f808339815191529181900360200190a350505050565b600054600160a060020a031681565b6003805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156104985780601f1061046d57610100808354040283529160200191610498565b61085f610a77565b600160a060020a038216600090815260066020526040902054610888908263ffffffff610dc716565b600160a060020a0383166000908152600660205260409020556005546108b4908263ffffffff610dc716565b600555604080518281529051600091600160a060020a03851691600080516020610f808339815191529181900360200190a36040805182815290517f9a1b418bc061a5d80270261562e6986a35d995f8051145f277be16103abd34539181900360200190a15050565b6000610927610adb565b6109318383610e27565b151561093957fe5b50600192915050565b60085460ff1681565b600154600160a060020a031681565b600760209081526000928352604080842090915290825290205481565b61097f610a77565b600054600160a060020a03828116911614156109e5576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f53414d455f4f574e4552000000000000000000000000000000000000604482015290519081900360640190fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600160a060020a0381161515610a74576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b50565b600054600160a060020a03163314610ad9576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b565b60085460ff161515610ad9576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f5452414e53464552535f44495341424c454400000000000000000000604482015290519081900360640190fd5b600083610b4381610a14565b83610b4d81610a14565b600160a060020a0386166000908152600760209081526040808320338452909152902054610b81908563ffffffff610dc716565b600160a060020a038716600081815260076020908152604080832033845282528083209490945591815260069091522054610bc2908563ffffffff610dc716565b600160a060020a038088166000908152600660205260408082209390935590871681522054610bf7908563ffffffff610d6316565b600160a060020a0380871660008181526006602090815260409182902094909455805188815290519193928a1692600080516020610f8083398151915292918290030190a350600195945050505050565b600160a060020a038116301415610a74576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f414444524553535f49535f53454c4600000000000000000000000000604482015290519081900360640190fd5b604080517f7472616e7366657228616464726573732c75696e74323536290000000000000081528151908190036019018120600160a060020a038516602483015260448083018590528351808403909101815260649092019092526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152610d5e908490610ed2565b505050565b600082820183811015610dc0576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b9392505050565b600081831015610e21576040805160e560020a62461bcd02815260206004820152600d60248201527f4552525f554e444552464c4f5700000000000000000000000000000000000000604482015290519081900360640190fd5b50900390565b600082610e3381610a14565b33600090815260066020526040902054610e53908463ffffffff610dc716565b3360009081526006602052604080822092909255600160a060020a03861681522054610e85908463ffffffff610d6316565b600160a060020a038516600081815260066020908152604091829020939093558051868152905191923392600080516020610f808339815191529281900390910190a35060019392505050565b610eda610f60565b602060405190810160405280600181525090506020818351602085016000875af1801515610f0757600080fd5b5080511515610d5e576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f5452414e534645525f4641494c454400000000000000000000000000604482015290519081900360640190fd5b60206040519081016040528060019060208202803883395091929150505600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a7230582031b56aebc8336b547b3e1346f50c2f44f70def554ed4cba4c81bcf2e092d047f0029a165627a7a7230582097488304562bb3686d468c1f6c1c2362931404ba307d8528a280012f8e9f0a3c0029", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x56 JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x6FDDE03 DUP2 EQ PUSH2 0x5B JUMPI DUP1 PUSH4 0x3E8FF43F EQ PUSH2 0xE5 JUMPI DUP1 PUSH4 0xA9FD4A2A EQ PUSH2 0x111 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x67 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x70 PUSH2 0x1D6 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP4 MLOAD DUP2 DUP4 ADD MSTORE DUP4 MLOAD SWAP2 SWAP3 DUP4 SWAP3 SWAP1 DUP4 ADD SWAP2 DUP6 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xAA JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x92 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0xD7 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xF1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xFA PUSH2 0x264 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0xFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x11D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD PUSH1 0x1F DUP2 ADD DUP5 SWAP1 DIV DUP5 MUL DUP6 ADD DUP5 ADD SWAP1 SWAP6 MSTORE DUP5 DUP5 MSTORE PUSH2 0x1AD SWAP5 CALLDATASIZE SWAP5 SWAP3 SWAP4 PUSH1 0x24 SWAP4 SWAP3 DUP5 ADD SWAP2 SWAP1 DUP2 SWAP1 DUP5 ADD DUP4 DUP3 DUP1 DUP3 DUP5 CALLDATACOPY POP POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x1F DUP10 CALLDATALOAD DUP12 ADD DUP1 CALLDATALOAD SWAP2 DUP3 ADD DUP4 SWAP1 DIV DUP4 MUL DUP5 ADD DUP4 ADD SWAP1 SWAP5 MSTORE DUP1 DUP4 MSTORE SWAP8 SWAP11 SWAP10 SWAP9 DUP2 ADD SWAP8 SWAP2 SWAP7 POP SWAP2 DUP3 ADD SWAP5 POP SWAP3 POP DUP3 SWAP2 POP DUP5 ADD DUP4 DUP3 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP POP POP SWAP3 CALLDATALOAD PUSH1 0xFF AND SWAP4 POP PUSH2 0x269 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x2 PUSH1 0x1 DUP6 AND ISZERO PUSH2 0x100 MUL PUSH1 0x0 NOT ADD SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 DIV PUSH1 0x1F DUP2 ADD DUP5 SWAP1 DIV DUP5 MUL DUP3 ADD DUP5 ADD SWAP1 SWAP3 MSTORE DUP2 DUP2 MSTORE SWAP3 SWAP2 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x25C JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x231 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x25C JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x23F JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH1 0x8 SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP5 DUP5 PUSH2 0x278 PUSH2 0x414 JUMP JUMPDEST PUSH1 0xFF DUP3 AND PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP1 DUP3 MSTORE DUP5 SLOAD PUSH1 0x2 PUSH1 0x0 NOT PUSH2 0x100 PUSH1 0x1 DUP5 AND ISZERO MUL ADD SWAP1 SWAP2 AND DIV SWAP1 DUP3 ADD DUP2 SWAP1 MSTORE DUP2 SWAP1 PUSH1 0x20 DUP3 ADD SWAP1 PUSH1 0x80 DUP4 ADD SWAP1 DUP8 SWAP1 DUP1 ISZERO PUSH2 0x2FC JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x2D1 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x2FC JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x2DF JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP DUP4 DUP2 SUB DUP3 MSTORE DUP6 MLOAD DUP2 MSTORE DUP6 MLOAD PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 DUP8 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x330 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x318 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x35D JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP6 POP POP POP POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 PUSH1 0x0 CREATE DUP1 ISZERO DUP1 ISZERO PUSH2 0x381 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH32 0xF2FDE38B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD SWAP2 SWAP3 POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND SWAP2 PUSH4 0xF2FDE38B SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3F3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x407 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP SWAP3 SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1228 DUP1 PUSH2 0x425 DUP4 CODECOPY ADD SWAP1 JUMP STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x8 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE CALLVALUE DUP1 ISZERO PUSH3 0x1E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x1228 CODESIZE SUB DUP1 PUSH3 0x1228 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 SWAP1 DUP2 MSTORE DUP2 MLOAD PUSH1 0x20 DUP4 ADD MLOAD SWAP2 DUP4 ADD MLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND CALLER OR DUP2 SSTORE SWAP2 DUP5 ADD DUP1 MLOAD SWAP1 SWAP5 SWAP4 SWAP1 SWAP4 ADD SWAP3 SWAP1 SWAP2 DUP5 SWAP2 DUP5 SWAP2 DUP5 SWAP2 DUP2 LT PUSH3 0xD5 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4E414D4500000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP3 MLOAD PUSH1 0x0 LT PUSH3 0x146 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F53594D424F4C0000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP4 MLOAD PUSH3 0x15B SWAP1 PUSH1 0x2 SWAP1 PUSH1 0x20 DUP8 ADD SWAP1 PUSH3 0x1A8 JUMP JUMPDEST POP DUP3 MLOAD PUSH3 0x171 SWAP1 PUSH1 0x3 SWAP1 PUSH1 0x20 DUP7 ADD SWAP1 PUSH3 0x1A8 JUMP JUMPDEST POP PUSH1 0x4 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0xFF SWAP4 SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 SSTORE PUSH1 0x5 DUP2 SWAP1 SSTORE CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE POP PUSH3 0x24D SWAP4 POP POP POP POP JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH1 0x1F LT PUSH3 0x1EB JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH3 0x21B JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH3 0x21B JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH3 0x21B JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH3 0x1FE JUMP JUMPDEST POP PUSH3 0x229 SWAP3 SWAP2 POP PUSH3 0x22D JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH3 0x24A SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH3 0x229 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH3 0x234 JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH2 0xFCB DUP1 PUSH3 0x25D PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x106 JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x6FDDE03 DUP2 EQ PUSH2 0x10B JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x195 JUMPI DUP1 PUSH4 0x1608F18F EQ PUSH2 0x1CD JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x1E9 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x210 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x23A JUMPI DUP1 PUSH4 0x54FD4D50 EQ PUSH2 0x265 JUMPI DUP1 PUSH4 0x5E35359E EQ PUSH2 0x291 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x2BB JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x2DC JUMPI DUP1 PUSH4 0x867904B4 EQ PUSH2 0x2F1 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x315 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x346 JUMPI DUP1 PUSH4 0xA24835D1 EQ PUSH2 0x35B JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x37F JUMPI DUP1 PUSH4 0xBEF97C87 EQ PUSH2 0x3A3 JUMPI DUP1 PUSH4 0xD4EE1D90 EQ PUSH2 0x3B8 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x3CD JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x3F4 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x117 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x120 PUSH2 0x415 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP4 MLOAD DUP2 DUP4 ADD MSTORE DUP4 MLOAD SWAP2 SWAP3 DUP4 SWAP3 SWAP1 DUP4 ADD SWAP2 DUP6 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x15A JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x142 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x187 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1A1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B9 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x4A0 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1D9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH1 0x4 CALLDATALOAD ISZERO ISZERO PUSH2 0x598 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1FE PUSH2 0x5B2 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x21C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B9 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x5B8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x246 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x24F PUSH2 0x5DF JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x271 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x27A PUSH2 0x5E8 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0xFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x29D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x5ED JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2C7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1FE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x626 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2E8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH2 0x638 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2FD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x70B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x321 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x32A PUSH2 0x7ED JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x352 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x120 PUSH2 0x7FC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x367 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x857 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x38B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B9 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x91D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3AF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B9 PUSH2 0x942 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3C4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x32A PUSH2 0x94B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3D9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1FE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH2 0x95A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x400 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x977 JUMP JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x1 DUP5 AND ISZERO PUSH2 0x100 MUL PUSH1 0x0 NOT ADD SWAP1 SWAP4 AND DUP5 SWAP1 DIV PUSH1 0x1F DUP2 ADD DUP5 SWAP1 DIV DUP5 MUL DUP3 ADD DUP5 ADD SWAP1 SWAP3 MSTORE DUP2 DUP2 MSTORE SWAP3 SWAP2 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x498 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x46D JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x498 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x47B JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x4AC DUP2 PUSH2 0xA14 JUMP JUMPDEST DUP3 ISZERO DUP1 PUSH2 0x4DA JUMPI POP CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x530 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F414D4F554E540000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST CALLER PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP10 AND DUP1 DUP6 MSTORE SWAP1 DUP4 MSTORE SWAP3 DUP2 SWAP1 KECCAK256 DUP8 SWAP1 SSTORE DUP1 MLOAD DUP8 DUP2 MSTORE SWAP1 MLOAD SWAP3 SWAP4 SWAP3 PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP3 SWAP2 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x5A0 PUSH2 0xA77 JUMP JUMPDEST PUSH1 0x8 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP2 ISZERO SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x5 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5C2 PUSH2 0xADB JUMP JUMPDEST PUSH2 0x5CD DUP5 DUP5 DUP5 PUSH2 0xB37 JUMP JUMPDEST ISZERO ISZERO PUSH2 0x5D5 JUMPI INVALID JUMPDEST POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x4 DUP2 JUMP JUMPDEST PUSH2 0x5F5 PUSH2 0xA77 JUMP JUMPDEST DUP3 PUSH2 0x5FF DUP2 PUSH2 0xA14 JUMP JUMPDEST DUP3 PUSH2 0x609 DUP2 PUSH2 0xA14 JUMP JUMPDEST DUP4 PUSH2 0x613 DUP2 PUSH2 0xC48 JUMP JUMPDEST PUSH2 0x61E DUP7 DUP7 DUP7 PUSH2 0xCA9 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x69A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND SWAP4 SWAP1 SWAP2 AND SWAP2 PUSH32 0x343765429AEA5A34B3FF6A3785A98A5ABB2597ACA87BFBB58632C173D585373A SWAP2 LOG3 PUSH1 0x1 DUP1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND OR SWAP1 SWAP2 SSTORE AND SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x713 PUSH2 0xA77 JUMP JUMPDEST DUP2 PUSH2 0x71D DUP2 PUSH2 0xA14 JUMP JUMPDEST DUP3 PUSH2 0x727 DUP2 PUSH2 0xC48 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH2 0x73A SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0xD63 AND JUMP JUMPDEST PUSH1 0x5 SSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x766 SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0xD63 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SWAP3 SWAP1 SWAP3 SSTORE DUP1 MLOAD DUP6 DUP2 MSTORE SWAP1 MLOAD PUSH32 0x9386C90217C323F58030F9DADCBC938F807A940F4FF41CD4CEAD9562F5DA7DC3 SWAP3 SWAP2 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG1 PUSH1 0x40 DUP1 MLOAD DUP5 DUP2 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND SWAP2 PUSH1 0x0 SWAP2 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xF80 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP2 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 LOG3 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x2 PUSH1 0x1 DUP6 AND ISZERO PUSH2 0x100 MUL PUSH1 0x0 NOT ADD SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 DIV PUSH1 0x1F DUP2 ADD DUP5 SWAP1 DIV DUP5 MUL DUP3 ADD DUP5 ADD SWAP1 SWAP3 MSTORE DUP2 DUP2 MSTORE SWAP3 SWAP2 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x498 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x46D JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x498 JUMP JUMPDEST PUSH2 0x85F PUSH2 0xA77 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x888 SWAP1 DUP3 PUSH4 0xFFFFFFFF PUSH2 0xDC7 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE PUSH1 0x5 SLOAD PUSH2 0x8B4 SWAP1 DUP3 PUSH4 0xFFFFFFFF PUSH2 0xDC7 AND JUMP JUMPDEST PUSH1 0x5 SSTORE PUSH1 0x40 DUP1 MLOAD DUP3 DUP2 MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND SWAP2 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xF80 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP2 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 LOG3 PUSH1 0x40 DUP1 MLOAD DUP3 DUP2 MSTORE SWAP1 MLOAD PUSH32 0x9A1B418BC061A5D80270261562E6986A35D995F8051145F277BE16103ABD3453 SWAP2 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x927 PUSH2 0xADB JUMP JUMPDEST PUSH2 0x931 DUP4 DUP4 PUSH2 0xE27 JUMP JUMPDEST ISZERO ISZERO PUSH2 0x939 JUMPI INVALID JUMPDEST POP PUSH1 0x1 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x97F PUSH2 0xA77 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x9E5 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F4F574E4552000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0xA74 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0xAD9 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0xFF AND ISZERO ISZERO PUSH2 0xAD9 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5452414E53464552535F44495341424C454400000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP4 PUSH2 0xB43 DUP2 PUSH2 0xA14 JUMP JUMPDEST DUP4 PUSH2 0xB4D DUP2 PUSH2 0xA14 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH2 0xB81 SWAP1 DUP6 PUSH4 0xFFFFFFFF PUSH2 0xDC7 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE DUP3 MSTORE DUP1 DUP4 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE SWAP2 DUP2 MSTORE PUSH1 0x6 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD PUSH2 0xBC2 SWAP1 DUP6 PUSH4 0xFFFFFFFF PUSH2 0xDC7 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE SWAP1 DUP8 AND DUP2 MSTORE KECCAK256 SLOAD PUSH2 0xBF7 SWAP1 DUP6 PUSH4 0xFFFFFFFF PUSH2 0xD63 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP8 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE DUP1 MLOAD DUP9 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP4 SWAP3 DUP11 AND SWAP3 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xF80 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP3 SWAP2 DUP3 SWAP1 SUB ADD SWAP1 LOG3 POP PUSH1 0x1 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ADDRESS EQ ISZERO PUSH2 0xA74 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F414444524553535F49535F53454C4600000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x7472616E7366657228616464726573732C75696E743235362900000000000000 DUP2 MSTORE DUP2 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x19 ADD DUP2 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x64 SWAP1 SWAP3 ADD SWAP1 SWAP3 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE PUSH2 0xD5E SWAP1 DUP5 SWAP1 PUSH2 0xED2 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 ADD DUP4 DUP2 LT ISZERO PUSH2 0xDC0 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT ISZERO PUSH2 0xE21 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F554E444552464C4F5700000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP SWAP1 SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0xE33 DUP2 PUSH2 0xA14 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0xE53 SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0xDC7 AND JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP3 SWAP1 SWAP3 SSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND DUP2 MSTORE KECCAK256 SLOAD PUSH2 0xE85 SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0xD63 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE DUP1 MLOAD DUP7 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP3 CALLER SWAP3 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xF80 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0xEDA PUSH2 0xF60 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE POP SWAP1 POP PUSH1 0x20 DUP2 DUP4 MLOAD PUSH1 0x20 DUP6 ADD PUSH1 0x0 DUP8 GAS CALL DUP1 ISZERO ISZERO PUSH2 0xF07 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD ISZERO ISZERO PUSH2 0xD5E JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5452414E534645525F4641494C454400000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 SWAP1 PUSH1 0x20 DUP3 MUL DUP1 CODESIZE DUP4 CODECOPY POP SWAP2 SWAP3 SWAP2 POP POP JUMP STOP 0xdd CALLCODE MSTORE 0xad SHL 0xe2 0xc8 SWAP12 PUSH10 0xC2B068FC378DAA952BA7 CALL PUSH4 0xC4A11628 0xf5 GAS 0x4d 0xf5 0x23 0xb3 0xef LOG1 PUSH6 0x627A7A723058 KECCAK256 BALANCE 0xb5 PUSH11 0xEBC8336B547B3E1346F50C 0x2f DIFFICULTY 0xf7 0xd 0xef SSTORE 0x4e 0xd4 0xcb LOG4 0xc8 SHL 0xcf 0x2e MULMOD 0x2d DIV PUSH32 0x29A165627A7A7230582097488304562BB3686D468C1F6C1C2362931404BA30 PUSH30 0x8528A280012F8E9F0A3C0029000000000000000000000000000000000000 ", - "sourceMap": "181:479:44:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;257:18;;8:9:-1;5:2;;;30:1;27;20:12;5:2;257:18:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;257:18:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;335:70;;8:9:-1;5:2;;;30:1;27;20:12;5:2;335:70:44;;;;;;;;;;;;;;;;;;;;;;;408:250;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;408:250:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;408:250:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;408:250:44;;;;-1:-1:-1;408:250:44;-1:-1:-1;408:250:44;;-1:-1:-1;408:250:44;;;;;;;;-1:-1:-1;408:250:44;;-1:-1:-1;;;408:250:44;;;;;-1:-1:-1;408:250:44;;-1:-1:-1;;;408:250:44;;;;;;;;;;;;;;;;;;;;257:18;;;;;;;;;;;;;;;-1:-1:-1;;257:18:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;335:70::-;400:1;335:70;:::o;408:250::-;507:16;529:23;570:4;576:7;585:9;555:40;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;555:40:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;555:40:44;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;555:40:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;600:36:44;;;;;;625:10;600:36;;;;;;529:66;;-1:-1:-1;600:24:44;;;;;;:36;;;;;-1:-1:-1;;600:36:44;;;;;;;;-1:-1:-1;600:24:44;:36;;;5:2:-1;;;;30:1;27;20:12;5:2;600:36:44;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;648:6:44;;408:250;-1:-1:-1;;;;;;;408:250:44:o;181:479::-;;;;;;;;;;:::o" - }, - "methodIdentifiers": { - "converterType()": "3e8ff43f", - "createAnchor(string,string,uint8)": "a9fd4a2a", - "name()": "06fdde03" - } - }, - "userdoc": { - "methods": {} - } - } - }, - "solidity/contracts/sovrynswapx/SovrynSwapX.sol": { - "SovrynSwapX": { - "abi": [ - { - "constant": false, - "inputs": [ - { - "name": "_reporters", - "type": "address[]" - } - ], - "name": "upgrade", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_onlyOwnerCanUpdateRegistry", - "type": "bool" - } - ], - "name": "restrictRegistryUpdate", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "prevLockLimit", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getCurrentLockLimit", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "prevLockBlockNumber", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getCurrentReleaseLimit", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "minLimit", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "", - "type": "address" - } - ], - "name": "reporters", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "onlyOwnerCanUpdateRegistry", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_toBlockchain", - "type": "bytes32" - }, - { - "name": "_to", - "type": "bytes32" - }, - { - "name": "_amount", - "type": "uint256" - }, - { - "name": "_id", - "type": "uint256" - } - ], - "name": "xTransfer", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_toBlockchain", - "type": "bytes32" - }, - { - "name": "_to", - "type": "bytes32" - }, - { - "name": "_amount", - "type": "uint256" - } - ], - "name": "xTransfer", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "updateRegistry", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "prevReleaseBlockNumber", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "maxReleaseLimit", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "version", - "outputs": [ - { - "name": "", - "type": "uint16" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_token", - "type": "address" - }, - { - "name": "_to", - "type": "address" - }, - { - "name": "_amount", - "type": "uint256" - } - ], - "name": "withdrawTokens", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "prevRegistry", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_fromBlockchain", - "type": "bytes32" - }, - { - "name": "_txId", - "type": "uint256" - }, - { - "name": "_to", - "type": "address" - }, - { - "name": "_amount", - "type": "uint256" - }, - { - "name": "_xTransferId", - "type": "uint256" - } - ], - "name": "reportTx", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_minLimit", - "type": "uint256" - } - ], - "name": "setMinLimit", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "limitIncPerBlock", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "acceptOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "registry", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_minRequiredReports", - "type": "uint8" - } - ], - "name": "setMinRequiredReports", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "", - "type": "uint256" - }, - { - "name": "", - "type": "address" - } - ], - "name": "reportedTxs", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "owner", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "reportingEnabled", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "", - "type": "uint256" - } - ], - "name": "transactions", - "outputs": [ - { - "name": "amount", - "type": "uint256" - }, - { - "name": "fromBlockchain", - "type": "bytes32" - }, - { - "name": "to", - "type": "address" - }, - { - "name": "numOfReports", - "type": "uint8" - }, - { - "name": "completed", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_limitIncPerBlock", - "type": "uint256" - } - ], - "name": "setLimitIncPerBlock", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_enable", - "type": "bool" - } - ], - "name": "enableXTransfers", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "maxLockLimit", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_xTransferId", - "type": "uint256" - }, - { - "name": "_for", - "type": "address" - } - ], - "name": "getXTransferAmount", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_maxLockLimit", - "type": "uint256" - } - ], - "name": "setMaxLockLimit", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "restoreRegistry", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_maxReleaseLimit", - "type": "uint256" - } - ], - "name": "setMaxReleaseLimit", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "minRequiredReports", - "outputs": [ - { - "name": "", - "type": "uint8" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "newOwner", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_reporter", - "type": "address" - }, - { - "name": "_active", - "type": "bool" - } - ], - "name": "setReporter", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "", - "type": "uint256" - } - ], - "name": "transactionIds", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_enable", - "type": "bool" - } - ], - "name": "enableReporting", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "prevReleaseLimit", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "xTransfersEnabled", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "token", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "name": "_maxLockLimit", - "type": "uint256" - }, - { - "name": "_maxReleaseLimit", - "type": "uint256" - }, - { - "name": "_minLimit", - "type": "uint256" - }, - { - "name": "_limitIncPerBlock", - "type": "uint256" - }, - { - "name": "_minRequiredReports", - "type": "uint8" - }, - { - "name": "_registry", - "type": "address" - }, - { - "name": "_token", - "type": "address" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "_from", - "type": "address" - }, - { - "indexed": false, - "name": "_amount", - "type": "uint256" - } - ], - "name": "TokensLock", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "_to", - "type": "address" - }, - { - "indexed": false, - "name": "_amount", - "type": "uint256" - } - ], - "name": "TokensRelease", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "_from", - "type": "address" - }, - { - "indexed": false, - "name": "_toBlockchain", - "type": "bytes32" - }, - { - "indexed": true, - "name": "_to", - "type": "bytes32" - }, - { - "indexed": false, - "name": "_amount", - "type": "uint256" - }, - { - "indexed": false, - "name": "_id", - "type": "uint256" - } - ], - "name": "XTransfer", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "_reporter", - "type": "address" - }, - { - "indexed": false, - "name": "_fromBlockchain", - "type": "bytes32" - }, - { - "indexed": false, - "name": "_txId", - "type": "uint256" - }, - { - "indexed": false, - "name": "_to", - "type": "address" - }, - { - "indexed": false, - "name": "_amount", - "type": "uint256" - }, - { - "indexed": false, - "name": "_xTransferId", - "type": "uint256" - } - ], - "name": "TxReport", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "_to", - "type": "address" - }, - { - "indexed": false, - "name": "_id", - "type": "uint256" - } - ], - "name": "XTransferComplete", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "_prevOwner", - "type": "address" - }, - { - "indexed": true, - "name": "_newOwner", - "type": "address" - } - ], - "name": "OwnerUpdate", - "type": "event" - } - ], - "devdoc": { - "methods": { - "acceptOwnership()": { - "details": "used by a new owner to accept an ownership transfer" - }, - "enableReporting(bool)": { - "details": "allows the owner enable/disable the reportTransaction method", - "params": { - "_enable": "true to enable, false to disable" - } - }, - "enableXTransfers(bool)": { - "details": "allows the owner enable/disable the xTransfer method", - "params": { - "_enable": "true to enable, false to disable" - } - }, - "getCurrentLockLimit()": { - "details": "method for calculating current lock limit", - "return": "the current maximum limit of tokens that can be locked" - }, - "getCurrentReleaseLimit()": { - "details": "method for calculating current release limit", - "return": "the current maximum limit of tokens that can be released" - }, - "getXTransferAmount(uint256,address)": { - "details": "gets x transfer amount by xTransferId (not txId)", - "params": { - "_for": "address corresponding to xTransferId", - "_xTransferId": "unique (if non zero) pre-determined id (unlike _txId which is determined after the transactions been broadcasted)" - }, - "return": "amount that was sent in xTransfer corresponding to _xTransferId" - }, - "reportTx(bytes32,uint256,address,uint256,uint256)": { - "details": "allows reporter to report transaction which occured on another blockchain", - "params": { - "_amount": "amount of tokens destroyed on another blockchain", - "_fromBlockchain": "blockchain in which tokens were destroyed", - "_to": "address to receive tokens", - "_txId": "transactionId of transaction thats being reported", - "_xTransferId": "unique (if non zero) pre-determined id (unlike _txId which is determined after the transactions been mined)" - } - }, - "restoreRegistry()": { - "details": "restores the previous contract-registry" - }, - "restrictRegistryUpdate(bool)": { - "details": "restricts the permission to update the contract-registry", - "params": { - "_onlyOwnerCanUpdateRegistry": "indicates whether or not permission is restricted to owner only" - } - }, - "setLimitIncPerBlock(uint256)": { - "details": "setter", - "params": { - "_limitIncPerBlock": "new limitIncPerBlock" - } - }, - "setMaxLockLimit(uint256)": { - "details": "setter", - "params": { - "_maxLockLimit": "new maxLockLimit" - } - }, - "setMaxReleaseLimit(uint256)": { - "details": "setter", - "params": { - "_maxReleaseLimit": "new maxReleaseLimit" - } - }, - "setMinLimit(uint256)": { - "details": "setter", - "params": { - "_minLimit": "new minLimit" - } - }, - "setMinRequiredReports(uint8)": { - "details": "setter", - "params": { - "_minRequiredReports": "new minRequiredReports" - } - }, - "setReporter(address,bool)": { - "details": "allows the owner to set/remove reporters", - "params": { - "_active": "true if the reporter is approved, false otherwise", - "_reporter": "reporter whos status is to be set" - } - }, - "transferOwnership(address)": { - "details": "allows transferring the contract ownership the new owner still needs to accept the transfer can only be called by the contract owner", - "params": { - "_newOwner": "new contract owner" - } - }, - "updateRegistry()": { - "details": "updates to the new contract-registry" - }, - "upgrade(address[])": { - "details": "upgrades the contract to the latest version can only be called by the owner note that the owner needs to call acceptOwnership on the new contract after the upgrade", - "params": { - "_reporters": "new list of reporters" - } - }, - "withdrawTokens(address,address,uint256)": { - "details": "withdraws tokens held by the contract and sends them to an account can only be called by the owner", - "params": { - "_amount": "amount to withdraw", - "_to": "account to receive the new amount", - "_token": "ERC20 token contract address" - } - }, - "xTransfer(bytes32,bytes32,uint256)": { - "details": "claims tokens from msg.sender to be converted to tokens on another blockchain", - "params": { - "_amount": "the amount of tokens to transfer", - "_to": "address to send the tokens to", - "_toBlockchain": "blockchain on which tokens will be issued" - } - }, - "xTransfer(bytes32,bytes32,uint256,uint256)": { - "details": "claims tokens from msg.sender to be converted to tokens on another blockchain", - "params": { - "_amount": "the amount of tokens to transfer", - "_id": "pre-determined unique (if non zero) id which refers to this transaction", - "_to": "address to send the tokens to", - "_toBlockchain": "blockchain on which tokens will be issued" - } - } - } - }, - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "6080604052600c805460b060020a60ff021960a860020a60ff0219909116750100000000000000000000000000000000000000000017167601000000000000000000000000000000000000000000001790553480156200005e57600080fd5b5060405160e0806200237383398101604090815281516020830151918301516060840151608085015160a086015160c09096015160008054600160a060020a0319163317905593959293919290918180620000c2816401000000006200026e810204565b5060028054600160a060020a03909216600160a060020a0319928316811790915560038054909216179055866200010281640100000000620002e9810204565b866200011781640100000000620002e9810204565b866200012c81640100000000620002e9810204565b866200014181640100000000620002e9810204565b60ff87166200015981640100000000620002e9810204565b856200016e816401000000006200026e810204565b86620001838164010000000062000359810204565b8d8c111580156200019457508c8c11155b15156200020257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f4552525f494e56414c49445f4d494e5f4c494d49540000000000000000000000604482015290519081900360640190fd5b50505060048b905550505060058790555060069490945550600991909155600c805460079590955560089390935543600a819055600b55600160a060020a039091166101000261010060a860020a031960ff90921660ff199094169390931716919091179055620003d2565b600160a060020a0381161515620002e657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b50565b60008111620002e657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f4552525f5a45524f5f56414c5545000000000000000000000000000000000000604482015290519081900360640190fd5b600160a060020a038116301415620002e657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4552525f414444524553535f49535f53454c4600000000000000000000000000604482015290519081900360640190fd5b611f9180620003e26000396000f30060806040526004361061020e5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630183592b8114610213578063024c7ec71461026a57806316c76c271461028457806319967439146102ab5780631aff29eb146102c05780631e04a593146102d55780631fd8088d146102ea5780632cc1cd9e146102ff5780632fe8a6ad14610334578063427c037414610349578063492825381461036a57806349d10b64146103885780634b3e475c1461039d57806352e94ce3146103b257806354fd4d50146103c75780635e35359e146103f357806361cd756e1461041d5780636dc6a01b1461044e5780636ec6d4a61461047b57806372f43d191461049357806379ba5097146104a85780637b103999146104bd5780637b15879c146104d25780638544c52d146104ed5780638da5cb5b146105115780639390701c146105265780639ace38c21461053b578063a50c326c1461058b578063a5c670ca146105a3578063a8c36a90146105bd578063aafd6b76146105d2578063af2b9618146105f6578063b4a176d31461060e578063bf28ece414610623578063ca27e0111461063b578063d4ee1d9014610666578063e1bb51331461067b578063e36f8dc5146106a1578063ed1d73a6146106b9578063f2fde38b146106d3578063f7385f76146106f4578063fbb2469214610709578063fc0c546a1461071e575b600080fd5b34801561021f57600080fd5b5060408051602060048035808201358381028086018501909652808552610268953695939460249493850192918291850190849080828437509497506107339650505050505050565b005b34801561027657600080fd5b506102686004351515610839565b34801561029057600080fd5b50610299610870565b60408051918252519081900360200190f35b3480156102b757600080fd5b50610299610876565b3480156102cc57600080fd5b506102996108d0565b3480156102e157600080fd5b506102996108d6565b3480156102f657600080fd5b5061029961091c565b34801561030b57600080fd5b50610320600160a060020a0360043516610922565b604080519115158252519081900360200190f35b34801561034057600080fd5b50610320610937565b34801561035557600080fd5b50610268600435602435604435606435610947565b34801561037657600080fd5b50610268600435602435604435610a2e565b34801561039457600080fd5b50610268610b14565b3480156103a957600080fd5b50610299610d70565b3480156103be57600080fd5b50610299610d76565b3480156103d357600080fd5b506103dc610d7c565b6040805161ffff9092168252519081900360200190f35b3480156103ff57600080fd5b50610268600160a060020a0360043581169060243516604435610d81565b34801561042957600080fd5b50610432610dba565b60408051600160a060020a039092168252519081900360200190f35b34801561045a57600080fd5b50610268600435602435600160a060020a0360443516606435608435610dc9565b34801561048757600080fd5b506102686004356111f6565b34801561049f57600080fd5b50610299611278565b3480156104b457600080fd5b5061026861127e565b3480156104c957600080fd5b5061043261133f565b3480156104de57600080fd5b5061026860ff6004351661134e565b3480156104f957600080fd5b50610320600435600160a060020a036024351661137a565b34801561051d57600080fd5b5061043261139a565b34801561053257600080fd5b506103206113a9565b34801561054757600080fd5b506105536004356113cc565b604080519586526020860194909452600160a060020a039092168484015260ff16606084015215156080830152519081900360a00190f35b34801561059757600080fd5b5061026860043561140c565b3480156105af57600080fd5b506102686004351515611424565b3480156105c957600080fd5b5061029961145c565b3480156105de57600080fd5b50610299600435600160a060020a0360243516611462565b34801561060257600080fd5b5061026860043561153e565b34801561061a57600080fd5b50610268611556565b34801561062f57600080fd5b5061026860043561158f565b34801561064757600080fd5b506106506115a7565b6040805160ff9092168252519081900360200190f35b34801561067257600080fd5b506104326115b0565b34801561068757600080fd5b50610268600160a060020a036004351660243515156115bf565b3480156106ad57600080fd5b506102996004356115f2565b3480156106c557600080fd5b506102686004351515611604565b3480156106df57600080fd5b50610268600160a060020a0360043516611650565b34801561070057600080fd5b506102996116ed565b34801561071557600080fd5b506103206116f3565b34801561072a57600080fd5b50610432611703565b600061073d611717565b6107667f536f7672796e5377617058557067726164657200000000000000000000000000611769565b905061077181611650565b604080517f546872cc000000000000000000000000000000000000000000000000000000008152600481810181815260248301938452855160448401528551600160a060020a0386169463546872cc948893926064909101906020808601910280838360005b838110156107ef5781810151838201526020016107d7565b505050509050019350505050600060405180830381600087803b15801561081557600080fd5b505af1158015610829573d6000803e3d6000fd5b5050505061083561127e565b5050565b610841611717565b6003805491151560a060020a0274ff000000000000000000000000000000000000000019909216919091179055565b60075481565b6000806108b26108a3600954610897600a544361180190919063ffffffff16565b9063ffffffff61186116565b6007549063ffffffff6118e116565b90506004548111156108c85760045491506108cc565b8091505b5090565b600a5481565b6000806109066108f7600954610897600b544361180190919063ffffffff16565b6008549063ffffffff6118e116565b90506005548111156108c85760055491506108cc565b60065481565b60106020526000908152604090205460ff1681565b60035460a060020a900460ff1681565b600061095161193e565b610959610876565b9050600654831015801561096d5750808311155b15156109c3576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f414d4f554e545f544f4f5f4849474800000000000000000000000000604482015290519081900360640190fd5b6109cc836119a1565b6109dc818463ffffffff61180116565b60075543600a5560408051868152602081018590528082018490529051859133917f4780f3edc9124597ede658e04ed3d8887b58c86943b2a805dc961cf512570b629181900360600190a35050505050565b6000610a3861193e565b610a40610876565b90506006548210158015610a545750808211155b1515610aaa576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f414d4f554e545f544f4f5f4849474800000000000000000000000000604482015290519081900360640190fd5b610ab3826119a1565b610ac3818363ffffffff61180116565b60075543600a5560408051858152602081018490526000818301529051849133917f4780f3edc9124597ede658e04ed3d8887b58c86943b2a805dc961cf512570b629181900360600190a350505050565b60008054600160a060020a0316331480610b38575060035460a060020a900460ff16155b1515610b7c576040805160e560020a62461bcd0281526020600482015260116024820152600080516020611f46833981519152604482015290519081900360640190fd5b610ba57f436f6e7472616374526567697374727900000000000000000000000000000000611769565b600254909150600160a060020a03808316911614801590610bce5750600160a060020a03811615155b1515610c24576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e56414c49445f5245474953545259000000000000000000000000604482015290519081900360640190fd5b604080517fbb34534c0000000000000000000000000000000000000000000000000000000081527f436f6e747261637452656769737472790000000000000000000000000000000060048201529051600091600160a060020a0384169163bb34534c9160248082019260209290919082900301818787803b158015610ca857600080fd5b505af1158015610cbc573d6000803e3d6000fd5b505050506040513d6020811015610cd257600080fd5b5051600160a060020a03161415610d33576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e56414c49445f5245474953545259000000000000000000000000604482015290519081900360640190fd5b6002805460038054600160a060020a0380841673ffffffffffffffffffffffffffffffffffffffff19928316179092559091169216919091179055565b600b5481565b60055481565b600481565b610d89611717565b82610d93816119f7565b82610d9d816119f7565b83610da781611a5a565b610db2868686611abb565b505050505050565b600354600160a060020a031681565b6000610dd3611b72565b610ddb611bc9565b83610de5816119f7565b83610def81611c3f565b6000878152600f6020908152604080832033845290915290205460ff1615610e61576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f414c52454144595f5245504f52544544000000000000000000000000604482015290519081900360640190fd5b6000878152600f602090815260408083203384528252808320805460ff19166001179055898352600d9091529020600281015490935060a060020a900460ff161515610f5c5760028301805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038816179055848355600183018890558315610f57576000848152600e602052604090205415610f45576040805160e560020a62461bcd02815260206004820152601560248201527f4552525f54585f414c52454144595f4558495354530000000000000000000000604482015290519081900360640190fd5b6000848152600e602052604090208790555b61104b565b6002830154600160a060020a038781169116148015610f7b5750825485145b8015610f8a5750600183015488145b1515610fe0576040805160e560020a62461bcd02815260206004820152600f60248201527f4552525f54585f4d49534d415443480000000000000000000000000000000000604482015290519081900360640190fd5b831561104b576000848152600e6020526040902054871461104b576040805160e560020a62461bcd02815260206004820152601560248201527f4552525f54585f414c52454144595f4558495354530000000000000000000000604482015290519081900360640190fd5b600283018054600160ff60a060020a808404821692909201160274ff0000000000000000000000000000000000000000199091161790556040805189815260208101899052600160a060020a038816818301526060810187905260808101869052905133917f5e77831e701760f7f4a1e61a8e9834d773b52c45d91ba9006b7d2afb7a144739919081900360a00190a2600c54600284015460ff91821660a060020a909104909116106111ec576000878152600d602052604090206002015460a860020a900460ff1615611169576040805160e560020a62461bcd02815260206004820152601860248201527f4552525f54585f414c52454144595f434f4d504c455445440000000000000000604482015290519081900360640190fd5b6000878152600d6020908152604091829020600201805475ff000000000000000000000000000000000000000000191660a860020a1790558151600160a060020a038916815290810186905281517fd87906b7fce534fc5e6dde30064e777d92d0aaf3a28c72315de8ef2e4134dfef929181900390910190a16111ec8686611c97565b5050505050505050565b6111fe611717565b8061120881611c3f565b600454821115801561121c57506005548211155b1515611272576040805160e560020a62461bcd02815260206004820152601560248201527f4552525f494e56414c49445f4d494e5f4c494d49540000000000000000000000604482015290519081900360640190fd5b50600655565b60095481565b600154600160a060020a031633146112ce576040805160e560020a62461bcd0281526020600482015260116024820152600080516020611f46833981519152604482015290519081900360640190fd5b60015460008054604051600160a060020a0393841693909116917f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91a3600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b600254600160a060020a031681565b611356611717565b8060ff1661136381611c3f565b50600c805460ff191660ff92909216919091179055565b600f60209081526000928352604080842090915290825290205460ff1681565b600054600160a060020a031681565b600c54760100000000000000000000000000000000000000000000900460ff1681565b600d60205260009081526040902080546001820154600290920154909190600160a060020a0381169060ff60a060020a820481169160a860020a90041685565b611414611717565b8061141e81611c3f565b50600955565b61142c611717565b600c805491151560a860020a0275ff00000000000000000000000000000000000000000019909216919091179055565b60045481565b600061146c611ef8565b506000838152600e60209081526040808320548352600d825291829020825160a0810184528154815260018201549281019290925260020154600160a060020a0380821693830184905260ff60a060020a83048116606085015260a860020a90920490911615156080830152909190841614611532576040805160e560020a62461bcd02815260206004820152600f60248201527f4552525f54585f4d49534d415443480000000000000000000000000000000000604482015290519081900360640190fd5b805191505b5092915050565b611546611717565b8061155081611c3f565b50600455565b61155e611717565b6003546002805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055565b611597611717565b806115a181611c3f565b50600555565b600c5460ff1681565b600154600160a060020a031681565b6115c7611717565b600160a060020a03919091166000908152601060205260409020805460ff1916911515919091179055565b600e6020526000908152604090205481565b61160c611717565b600c80549115157601000000000000000000000000000000000000000000000276ff0000000000000000000000000000000000000000000019909216919091179055565b611658611717565b600054600160a060020a03828116911614156116be576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f53414d455f4f574e4552000000000000000000000000000000000000604482015290519081900360640190fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60085481565b600c5460a860020a900460ff1681565b600c546101009004600160a060020a031681565b600054600160a060020a03163314611767576040805160e560020a62461bcd0281526020600482015260116024820152600080516020611f46833981519152604482015290519081900360640190fd5b565b600254604080517fbb34534c000000000000000000000000000000000000000000000000000000008152600481018490529051600092600160a060020a03169163bb34534c91602480830192602092919082900301818787803b1580156117cf57600080fd5b505af11580156117e3573d6000803e3d6000fd5b505050506040513d60208110156117f957600080fd5b505192915050565b60008183101561185b576040805160e560020a62461bcd02815260206004820152600d60248201527f4552525f554e444552464c4f5700000000000000000000000000000000000000604482015290519081900360640190fd5b50900390565b6000808315156118745760009150611537565b5082820282848281151561188457fe5b04146118da576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b9392505050565b6000828201838110156118da576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b600c5460a860020a900460ff161515611767576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f44495341424c45440000000000000000000000000000000000000000604482015290519081900360640190fd5b600c546119be906101009004600160a060020a0316333084611d82565b60408051828152905133917ff5d7535a395393675f56d066384113754ca9cf4abd37298469934e2e9c2ec902919081900360200190a250565b600160a060020a0381161515611a57576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b50565b600160a060020a038116301415611a57576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f414444524553535f49535f53454c4600000000000000000000000000604482015290519081900360640190fd5b604080517f7472616e7366657228616464726573732c75696e74323536290000000000000081528151908190036019018120600160a060020a038516602483015260448083018590528351808403909101815260649092019092526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1990931692909217909152611b6d908490611e6a565b505050565b3360009081526010602052604090205460ff161515611767576040805160e560020a62461bcd0281526020600482015260116024820152600080516020611f46833981519152604482015290519081900360640190fd5b600c54760100000000000000000000000000000000000000000000900460ff161515611767576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f44495341424c45440000000000000000000000000000000000000000604482015290519081900360640190fd5b60008111611a57576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f5a45524f5f56414c5545000000000000000000000000000000000000604482015290519081900360640190fd5b6000611ca16108d6565b90506006548210158015611cb55750808211155b1515611d0b576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f414d4f554e545f544f4f5f4849474800000000000000000000000000604482015290519081900360640190fd5b611d1b818363ffffffff61180116565b60085543600b55600c54611d3e906101009004600160a060020a03168484611abb565b604080518381529051600160a060020a038516917fbfdc1f3c02b4715077e0be4a262f967d53d4d0fcd76c6987fa2ad6e2257d7c8f919081900360200190a2505050565b604080517f7472616e7366657246726f6d28616464726573732c616464726573732c75696e81527f74323536290000000000000000000000000000000000000000000000000000006020808301919091528251918290036025018220600160a060020a038088166024850152861660448401526064808401869052845180850390910181526084909301909352810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1990931692909217909152611e64908590611e6a565b50505050565b611e72611f26565b602060405190810160405280600181525090506020818351602085016000875af1801515611e9f57600080fd5b5080511515611b6d576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f5452414e534645525f4641494c454400000000000000000000000000604482015290519081900360640190fd5b6040805160a08101825260008082526020820181905291810182905260608101829052608081019190915290565b602060405190810160405280600190602082028038833950919291505056004552525f4143434553535f44454e494544000000000000000000000000000000a165627a7a72305820569010e6ee8ceb676c8764611af1b7a6593834eec0d3636f2accc21eb2c327b90029", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0xC DUP1 SLOAD PUSH1 0xB0 PUSH1 0x2 EXP PUSH1 0xFF MUL NOT PUSH1 0xA8 PUSH1 0x2 EXP PUSH1 0xFF MUL NOT SWAP1 SWAP2 AND PUSH22 0x1000000000000000000000000000000000000000000 OR AND PUSH23 0x100000000000000000000000000000000000000000000 OR SWAP1 SSTORE CALLVALUE DUP1 ISZERO PUSH3 0x5E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH1 0xE0 DUP1 PUSH3 0x2373 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 SWAP1 DUP2 MSTORE DUP2 MLOAD PUSH1 0x20 DUP4 ADD MLOAD SWAP2 DUP4 ADD MLOAD PUSH1 0x60 DUP5 ADD MLOAD PUSH1 0x80 DUP6 ADD MLOAD PUSH1 0xA0 DUP7 ADD MLOAD PUSH1 0xC0 SWAP1 SWAP7 ADD MLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND CALLER OR SWAP1 SSTORE SWAP4 SWAP6 SWAP3 SWAP4 SWAP2 SWAP3 SWAP1 SWAP2 DUP2 DUP1 PUSH3 0xC2 DUP2 PUSH5 0x100000000 PUSH3 0x26E DUP2 MUL DIV JUMP JUMPDEST POP PUSH1 0x2 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT SWAP3 DUP4 AND DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x3 DUP1 SLOAD SWAP1 SWAP3 AND OR SWAP1 SSTORE DUP7 PUSH3 0x102 DUP2 PUSH5 0x100000000 PUSH3 0x2E9 DUP2 MUL DIV JUMP JUMPDEST DUP7 PUSH3 0x117 DUP2 PUSH5 0x100000000 PUSH3 0x2E9 DUP2 MUL DIV JUMP JUMPDEST DUP7 PUSH3 0x12C DUP2 PUSH5 0x100000000 PUSH3 0x2E9 DUP2 MUL DIV JUMP JUMPDEST DUP7 PUSH3 0x141 DUP2 PUSH5 0x100000000 PUSH3 0x2E9 DUP2 MUL DIV JUMP JUMPDEST PUSH1 0xFF DUP8 AND PUSH3 0x159 DUP2 PUSH5 0x100000000 PUSH3 0x2E9 DUP2 MUL DIV JUMP JUMPDEST DUP6 PUSH3 0x16E DUP2 PUSH5 0x100000000 PUSH3 0x26E DUP2 MUL DIV JUMP JUMPDEST DUP7 PUSH3 0x183 DUP2 PUSH5 0x100000000 PUSH3 0x359 DUP2 MUL DIV JUMP JUMPDEST DUP14 DUP13 GT ISZERO DUP1 ISZERO PUSH3 0x194 JUMPI POP DUP13 DUP13 GT ISZERO JUMPDEST ISZERO ISZERO PUSH3 0x202 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4D494E5F4C494D49540000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP POP POP PUSH1 0x4 DUP12 SWAP1 SSTORE POP POP POP PUSH1 0x5 DUP8 SWAP1 SSTORE POP PUSH1 0x6 SWAP5 SWAP1 SWAP5 SSTORE POP PUSH1 0x9 SWAP2 SWAP1 SWAP2 SSTORE PUSH1 0xC DUP1 SLOAD PUSH1 0x7 SWAP6 SWAP1 SWAP6 SSTORE PUSH1 0x8 SWAP4 SWAP1 SWAP4 SSTORE NUMBER PUSH1 0xA DUP2 SWAP1 SSTORE PUSH1 0xB SSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP2 AND PUSH2 0x100 MUL PUSH2 0x100 PUSH1 0xA8 PUSH1 0x2 EXP SUB NOT PUSH1 0xFF SWAP1 SWAP3 AND PUSH1 0xFF NOT SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 OR AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH3 0x3D2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH3 0x2E6 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 GT PUSH3 0x2E6 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5A45524F5F56414C5545000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ADDRESS EQ ISZERO PUSH3 0x2E6 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F414444524553535F49535F53454C4600000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x1F91 DUP1 PUSH3 0x3E2 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x20E JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x183592B DUP2 EQ PUSH2 0x213 JUMPI DUP1 PUSH4 0x24C7EC7 EQ PUSH2 0x26A JUMPI DUP1 PUSH4 0x16C76C27 EQ PUSH2 0x284 JUMPI DUP1 PUSH4 0x19967439 EQ PUSH2 0x2AB JUMPI DUP1 PUSH4 0x1AFF29EB EQ PUSH2 0x2C0 JUMPI DUP1 PUSH4 0x1E04A593 EQ PUSH2 0x2D5 JUMPI DUP1 PUSH4 0x1FD8088D EQ PUSH2 0x2EA JUMPI DUP1 PUSH4 0x2CC1CD9E EQ PUSH2 0x2FF JUMPI DUP1 PUSH4 0x2FE8A6AD EQ PUSH2 0x334 JUMPI DUP1 PUSH4 0x427C0374 EQ PUSH2 0x349 JUMPI DUP1 PUSH4 0x49282538 EQ PUSH2 0x36A JUMPI DUP1 PUSH4 0x49D10B64 EQ PUSH2 0x388 JUMPI DUP1 PUSH4 0x4B3E475C EQ PUSH2 0x39D JUMPI DUP1 PUSH4 0x52E94CE3 EQ PUSH2 0x3B2 JUMPI DUP1 PUSH4 0x54FD4D50 EQ PUSH2 0x3C7 JUMPI DUP1 PUSH4 0x5E35359E EQ PUSH2 0x3F3 JUMPI DUP1 PUSH4 0x61CD756E EQ PUSH2 0x41D JUMPI DUP1 PUSH4 0x6DC6A01B EQ PUSH2 0x44E JUMPI DUP1 PUSH4 0x6EC6D4A6 EQ PUSH2 0x47B JUMPI DUP1 PUSH4 0x72F43D19 EQ PUSH2 0x493 JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x4A8 JUMPI DUP1 PUSH4 0x7B103999 EQ PUSH2 0x4BD JUMPI DUP1 PUSH4 0x7B15879C EQ PUSH2 0x4D2 JUMPI DUP1 PUSH4 0x8544C52D EQ PUSH2 0x4ED JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x511 JUMPI DUP1 PUSH4 0x9390701C EQ PUSH2 0x526 JUMPI DUP1 PUSH4 0x9ACE38C2 EQ PUSH2 0x53B JUMPI DUP1 PUSH4 0xA50C326C EQ PUSH2 0x58B JUMPI DUP1 PUSH4 0xA5C670CA EQ PUSH2 0x5A3 JUMPI DUP1 PUSH4 0xA8C36A90 EQ PUSH2 0x5BD JUMPI DUP1 PUSH4 0xAAFD6B76 EQ PUSH2 0x5D2 JUMPI DUP1 PUSH4 0xAF2B9618 EQ PUSH2 0x5F6 JUMPI DUP1 PUSH4 0xB4A176D3 EQ PUSH2 0x60E JUMPI DUP1 PUSH4 0xBF28ECE4 EQ PUSH2 0x623 JUMPI DUP1 PUSH4 0xCA27E011 EQ PUSH2 0x63B JUMPI DUP1 PUSH4 0xD4EE1D90 EQ PUSH2 0x666 JUMPI DUP1 PUSH4 0xE1BB5133 EQ PUSH2 0x67B JUMPI DUP1 PUSH4 0xE36F8DC5 EQ PUSH2 0x6A1 JUMPI DUP1 PUSH4 0xED1D73A6 EQ PUSH2 0x6B9 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x6D3 JUMPI DUP1 PUSH4 0xF7385F76 EQ PUSH2 0x6F4 JUMPI DUP1 PUSH4 0xFBB24692 EQ PUSH2 0x709 JUMPI DUP1 PUSH4 0xFC0C546A EQ PUSH2 0x71E JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x21F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x268 SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP PUSH2 0x733 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x276 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x268 PUSH1 0x4 CALLDATALOAD ISZERO ISZERO PUSH2 0x839 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x290 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x299 PUSH2 0x870 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2B7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x299 PUSH2 0x876 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2CC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x299 PUSH2 0x8D0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2E1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x299 PUSH2 0x8D6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2F6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x299 PUSH2 0x91C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x30B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x320 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x922 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x340 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x320 PUSH2 0x937 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x355 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x268 PUSH1 0x4 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH1 0x44 CALLDATALOAD PUSH1 0x64 CALLDATALOAD PUSH2 0x947 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x376 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x268 PUSH1 0x4 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH1 0x44 CALLDATALOAD PUSH2 0xA2E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x394 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x268 PUSH2 0xB14 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3A9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x299 PUSH2 0xD70 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3BE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x299 PUSH2 0xD76 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3D3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3DC PUSH2 0xD7C JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0xFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3FF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x268 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0xD81 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x429 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x432 PUSH2 0xDBA JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x45A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x268 PUSH1 0x4 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x44 CALLDATALOAD AND PUSH1 0x64 CALLDATALOAD PUSH1 0x84 CALLDATALOAD PUSH2 0xDC9 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x487 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x268 PUSH1 0x4 CALLDATALOAD PUSH2 0x11F6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x49F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x299 PUSH2 0x1278 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4B4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x268 PUSH2 0x127E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4C9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x432 PUSH2 0x133F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4DE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x268 PUSH1 0xFF PUSH1 0x4 CALLDATALOAD AND PUSH2 0x134E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4F9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x320 PUSH1 0x4 CALLDATALOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x24 CALLDATALOAD AND PUSH2 0x137A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x51D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x432 PUSH2 0x139A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x532 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x320 PUSH2 0x13A9 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x547 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x553 PUSH1 0x4 CALLDATALOAD PUSH2 0x13CC JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP6 DUP7 MSTORE PUSH1 0x20 DUP7 ADD SWAP5 SWAP1 SWAP5 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP5 DUP5 ADD MSTORE PUSH1 0xFF AND PUSH1 0x60 DUP5 ADD MSTORE ISZERO ISZERO PUSH1 0x80 DUP4 ADD MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0xA0 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x597 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x268 PUSH1 0x4 CALLDATALOAD PUSH2 0x140C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5AF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x268 PUSH1 0x4 CALLDATALOAD ISZERO ISZERO PUSH2 0x1424 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5C9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x299 PUSH2 0x145C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5DE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x299 PUSH1 0x4 CALLDATALOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x24 CALLDATALOAD AND PUSH2 0x1462 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x602 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x268 PUSH1 0x4 CALLDATALOAD PUSH2 0x153E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x61A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x268 PUSH2 0x1556 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x62F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x268 PUSH1 0x4 CALLDATALOAD PUSH2 0x158F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x647 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x650 PUSH2 0x15A7 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x672 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x432 PUSH2 0x15B0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x687 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x268 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD ISZERO ISZERO PUSH2 0x15BF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6AD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x299 PUSH1 0x4 CALLDATALOAD PUSH2 0x15F2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6C5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x268 PUSH1 0x4 CALLDATALOAD ISZERO ISZERO PUSH2 0x1604 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6DF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x268 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x1650 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x700 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x299 PUSH2 0x16ED JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x715 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x320 PUSH2 0x16F3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x72A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x432 PUSH2 0x1703 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x73D PUSH2 0x1717 JUMP JUMPDEST PUSH2 0x766 PUSH32 0x536F7672796E5377617058557067726164657200000000000000000000000000 PUSH2 0x1769 JUMP JUMPDEST SWAP1 POP PUSH2 0x771 DUP2 PUSH2 0x1650 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x546872CC00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 DUP2 ADD DUP2 DUP2 MSTORE PUSH1 0x24 DUP4 ADD SWAP4 DUP5 MSTORE DUP6 MLOAD PUSH1 0x44 DUP5 ADD MSTORE DUP6 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND SWAP5 PUSH4 0x546872CC SWAP5 DUP9 SWAP4 SWAP3 PUSH1 0x64 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x20 DUP1 DUP7 ADD SWAP2 MUL DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x7EF JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x7D7 JUMP JUMPDEST POP POP POP POP SWAP1 POP ADD SWAP4 POP POP POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x815 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x829 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x835 PUSH2 0x127E JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x841 PUSH2 0x1717 JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD SWAP2 ISZERO ISZERO PUSH1 0xA0 PUSH1 0x2 EXP MUL PUSH21 0xFF0000000000000000000000000000000000000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x7 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x8B2 PUSH2 0x8A3 PUSH1 0x9 SLOAD PUSH2 0x897 PUSH1 0xA SLOAD NUMBER PUSH2 0x1801 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x1861 AND JUMP JUMPDEST PUSH1 0x7 SLOAD SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x18E1 AND JUMP JUMPDEST SWAP1 POP PUSH1 0x4 SLOAD DUP2 GT ISZERO PUSH2 0x8C8 JUMPI PUSH1 0x4 SLOAD SWAP2 POP PUSH2 0x8CC JUMP JUMPDEST DUP1 SWAP2 POP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH1 0xA SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x906 PUSH2 0x8F7 PUSH1 0x9 SLOAD PUSH2 0x897 PUSH1 0xB SLOAD NUMBER PUSH2 0x1801 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x8 SLOAD SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x18E1 AND JUMP JUMPDEST SWAP1 POP PUSH1 0x5 SLOAD DUP2 GT ISZERO PUSH2 0x8C8 JUMPI PUSH1 0x5 SLOAD SWAP2 POP PUSH2 0x8CC JUMP JUMPDEST PUSH1 0x6 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x10 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0xA0 PUSH1 0x2 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x951 PUSH2 0x193E JUMP JUMPDEST PUSH2 0x959 PUSH2 0x876 JUMP JUMPDEST SWAP1 POP PUSH1 0x6 SLOAD DUP4 LT ISZERO DUP1 ISZERO PUSH2 0x96D JUMPI POP DUP1 DUP4 GT ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x9C3 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F414D4F554E545F544F4F5F4849474800000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x9CC DUP4 PUSH2 0x19A1 JUMP JUMPDEST PUSH2 0x9DC DUP2 DUP5 PUSH4 0xFFFFFFFF PUSH2 0x1801 AND JUMP JUMPDEST PUSH1 0x7 SSTORE NUMBER PUSH1 0xA SSTORE PUSH1 0x40 DUP1 MLOAD DUP7 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP6 SWAP1 MSTORE DUP1 DUP3 ADD DUP5 SWAP1 MSTORE SWAP1 MLOAD DUP6 SWAP2 CALLER SWAP2 PUSH32 0x4780F3EDC9124597EDE658E04ED3D8887B58C86943B2A805DC961CF512570B62 SWAP2 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG3 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA38 PUSH2 0x193E JUMP JUMPDEST PUSH2 0xA40 PUSH2 0x876 JUMP JUMPDEST SWAP1 POP PUSH1 0x6 SLOAD DUP3 LT ISZERO DUP1 ISZERO PUSH2 0xA54 JUMPI POP DUP1 DUP3 GT ISZERO JUMPDEST ISZERO ISZERO PUSH2 0xAAA JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F414D4F554E545F544F4F5F4849474800000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0xAB3 DUP3 PUSH2 0x19A1 JUMP JUMPDEST PUSH2 0xAC3 DUP2 DUP4 PUSH4 0xFFFFFFFF PUSH2 0x1801 AND JUMP JUMPDEST PUSH1 0x7 SSTORE NUMBER PUSH1 0xA SSTORE PUSH1 0x40 DUP1 MLOAD DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x0 DUP2 DUP4 ADD MSTORE SWAP1 MLOAD DUP5 SWAP2 CALLER SWAP2 PUSH32 0x4780F3EDC9124597EDE658E04ED3D8887B58C86943B2A805DC961CF512570B62 SWAP2 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG3 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ DUP1 PUSH2 0xB38 JUMPI POP PUSH1 0x3 SLOAD PUSH1 0xA0 PUSH1 0x2 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST ISZERO ISZERO PUSH2 0xB7C JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1F46 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0xBA5 PUSH32 0x436F6E7472616374526567697374727900000000000000000000000000000000 PUSH2 0x1769 JUMP JUMPDEST PUSH1 0x2 SLOAD SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP4 AND SWAP2 AND EQ DUP1 ISZERO SWAP1 PUSH2 0xBCE JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO JUMPDEST ISZERO ISZERO PUSH2 0xC24 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245474953545259000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0xBB34534C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH32 0x436F6E7472616374526567697374727900000000000000000000000000000000 PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP2 PUSH4 0xBB34534C SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xCA8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xCBC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xCD2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ ISZERO PUSH2 0xD33 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245474953545259000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP5 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP3 DUP4 AND OR SWAP1 SWAP3 SSTORE SWAP1 SWAP2 AND SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0xB SLOAD DUP2 JUMP JUMPDEST PUSH1 0x5 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x4 DUP2 JUMP JUMPDEST PUSH2 0xD89 PUSH2 0x1717 JUMP JUMPDEST DUP3 PUSH2 0xD93 DUP2 PUSH2 0x19F7 JUMP JUMPDEST DUP3 PUSH2 0xD9D DUP2 PUSH2 0x19F7 JUMP JUMPDEST DUP4 PUSH2 0xDA7 DUP2 PUSH2 0x1A5A JUMP JUMPDEST PUSH2 0xDB2 DUP7 DUP7 DUP7 PUSH2 0x1ABB JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xDD3 PUSH2 0x1B72 JUMP JUMPDEST PUSH2 0xDDB PUSH2 0x1BC9 JUMP JUMPDEST DUP4 PUSH2 0xDE5 DUP2 PUSH2 0x19F7 JUMP JUMPDEST DUP4 PUSH2 0xDEF DUP2 PUSH2 0x1C3F JUMP JUMPDEST PUSH1 0x0 DUP8 DUP2 MSTORE PUSH1 0xF PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0xE61 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F414C52454144595F5245504F52544544000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP8 DUP2 MSTORE PUSH1 0xF PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE DUP3 MSTORE DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE DUP10 DUP4 MSTORE PUSH1 0xD SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 PUSH1 0x2 DUP2 ADD SLOAD SWAP1 SWAP4 POP PUSH1 0xA0 PUSH1 0x2 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO PUSH2 0xF5C JUMPI PUSH1 0x2 DUP4 ADD DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 AND OR SWAP1 SSTORE DUP5 DUP4 SSTORE PUSH1 0x1 DUP4 ADD DUP9 SWAP1 SSTORE DUP4 ISZERO PUSH2 0xF57 JUMPI PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD ISZERO PUSH2 0xF45 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F54585F414C52454144595F4558495354530000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP8 SWAP1 SSTORE JUMPDEST PUSH2 0x104B JUMP JUMPDEST PUSH1 0x2 DUP4 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 DUP2 AND SWAP2 AND EQ DUP1 ISZERO PUSH2 0xF7B JUMPI POP DUP3 SLOAD DUP6 EQ JUMPDEST DUP1 ISZERO PUSH2 0xF8A JUMPI POP PUSH1 0x1 DUP4 ADD SLOAD DUP9 EQ JUMPDEST ISZERO ISZERO PUSH2 0xFE0 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xF PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F54585F4D49534D415443480000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP4 ISZERO PUSH2 0x104B JUMPI PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP8 EQ PUSH2 0x104B JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F54585F414C52454144595F4558495354530000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x2 DUP4 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0xFF PUSH1 0xA0 PUSH1 0x2 EXP DUP1 DUP5 DIV DUP3 AND SWAP3 SWAP1 SWAP3 ADD AND MUL PUSH21 0xFF0000000000000000000000000000000000000000 NOT SWAP1 SWAP2 AND OR SWAP1 SSTORE PUSH1 0x40 DUP1 MLOAD DUP10 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP10 SWAP1 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 AND DUP2 DUP4 ADD MSTORE PUSH1 0x60 DUP2 ADD DUP8 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD DUP7 SWAP1 MSTORE SWAP1 MLOAD CALLER SWAP2 PUSH32 0x5E77831E701760F7F4A1E61A8E9834D773B52C45D91BA9006B7D2AFB7A144739 SWAP2 SWAP1 DUP2 SWAP1 SUB PUSH1 0xA0 ADD SWAP1 LOG2 PUSH1 0xC SLOAD PUSH1 0x2 DUP5 ADD SLOAD PUSH1 0xFF SWAP2 DUP3 AND PUSH1 0xA0 PUSH1 0x2 EXP SWAP1 SWAP2 DIV SWAP1 SWAP2 AND LT PUSH2 0x11EC JUMPI PUSH1 0x0 DUP8 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x2 ADD SLOAD PUSH1 0xA8 PUSH1 0x2 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x1169 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F54585F414C52454144595F434F4D504C455445440000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP8 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 PUSH1 0x2 ADD DUP1 SLOAD PUSH22 0xFF000000000000000000000000000000000000000000 NOT AND PUSH1 0xA8 PUSH1 0x2 EXP OR SWAP1 SSTORE DUP2 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP10 AND DUP2 MSTORE SWAP1 DUP2 ADD DUP7 SWAP1 MSTORE DUP2 MLOAD PUSH32 0xD87906B7FCE534FC5E6DDE30064E777D92D0AAF3A28C72315DE8EF2E4134DFEF SWAP3 SWAP2 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG1 PUSH2 0x11EC DUP7 DUP7 PUSH2 0x1C97 JUMP JUMPDEST POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x11FE PUSH2 0x1717 JUMP JUMPDEST DUP1 PUSH2 0x1208 DUP2 PUSH2 0x1C3F JUMP JUMPDEST PUSH1 0x4 SLOAD DUP3 GT ISZERO DUP1 ISZERO PUSH2 0x121C JUMPI POP PUSH1 0x5 SLOAD DUP3 GT ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x1272 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4D494E5F4C494D49540000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP PUSH1 0x6 SSTORE JUMP JUMPDEST PUSH1 0x9 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x12CE JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1F46 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND SWAP4 SWAP1 SWAP2 AND SWAP2 PUSH32 0x343765429AEA5A34B3FF6A3785A98A5ABB2597ACA87BFBB58632C173D585373A SWAP2 LOG3 PUSH1 0x1 DUP1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND OR SWAP1 SWAP2 SSTORE AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH2 0x1356 PUSH2 0x1717 JUMP JUMPDEST DUP1 PUSH1 0xFF AND PUSH2 0x1363 DUP2 PUSH2 0x1C3F JUMP JUMPDEST POP PUSH1 0xC DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0xFF SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0xF PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0xC SLOAD PUSH23 0x100000000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0xD PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0x2 SWAP1 SWAP3 ADD SLOAD SWAP1 SWAP2 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND SWAP1 PUSH1 0xFF PUSH1 0xA0 PUSH1 0x2 EXP DUP3 DIV DUP2 AND SWAP2 PUSH1 0xA8 PUSH1 0x2 EXP SWAP1 DIV AND DUP6 JUMP JUMPDEST PUSH2 0x1414 PUSH2 0x1717 JUMP JUMPDEST DUP1 PUSH2 0x141E DUP2 PUSH2 0x1C3F JUMP JUMPDEST POP PUSH1 0x9 SSTORE JUMP JUMPDEST PUSH2 0x142C PUSH2 0x1717 JUMP JUMPDEST PUSH1 0xC DUP1 SLOAD SWAP2 ISZERO ISZERO PUSH1 0xA8 PUSH1 0x2 EXP MUL PUSH22 0xFF000000000000000000000000000000000000000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x4 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x146C PUSH2 0x1EF8 JUMP JUMPDEST POP PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD DUP4 MSTORE PUSH1 0xD DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD PUSH1 0xA0 DUP2 ADD DUP5 MSTORE DUP2 SLOAD DUP2 MSTORE PUSH1 0x1 DUP3 ADD SLOAD SWAP3 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x2 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP3 AND SWAP4 DUP4 ADD DUP5 SWAP1 MSTORE PUSH1 0xFF PUSH1 0xA0 PUSH1 0x2 EXP DUP4 DIV DUP2 AND PUSH1 0x60 DUP6 ADD MSTORE PUSH1 0xA8 PUSH1 0x2 EXP SWAP1 SWAP3 DIV SWAP1 SWAP2 AND ISZERO ISZERO PUSH1 0x80 DUP4 ADD MSTORE SWAP1 SWAP2 SWAP1 DUP5 AND EQ PUSH2 0x1532 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xF PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F54585F4D49534D415443480000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP1 MLOAD SWAP2 POP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1546 PUSH2 0x1717 JUMP JUMPDEST DUP1 PUSH2 0x1550 DUP2 PUSH2 0x1C3F JUMP JUMPDEST POP PUSH1 0x4 SSTORE JUMP JUMPDEST PUSH2 0x155E PUSH2 0x1717 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x2 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x1597 PUSH2 0x1717 JUMP JUMPDEST DUP1 PUSH2 0x15A1 DUP2 PUSH2 0x1C3F JUMP JUMPDEST POP PUSH1 0x5 SSTORE JUMP JUMPDEST PUSH1 0xC SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH2 0x15C7 PUSH2 0x1717 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP2 SWAP1 SWAP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x10 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP2 ISZERO ISZERO SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0xE PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x160C PUSH2 0x1717 JUMP JUMPDEST PUSH1 0xC DUP1 SLOAD SWAP2 ISZERO ISZERO PUSH23 0x100000000000000000000000000000000000000000000 MUL PUSH23 0xFF00000000000000000000000000000000000000000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x1658 PUSH2 0x1717 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x16BE JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F4F574E4552000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x8 SLOAD DUP2 JUMP JUMPDEST PUSH1 0xC SLOAD PUSH1 0xA8 PUSH1 0x2 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0xC SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x1767 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1F46 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xBB34534C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP2 PUSH4 0xBB34534C SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x17CF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x17E3 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x17F9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT ISZERO PUSH2 0x185B JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F554E444552464C4F5700000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP SWAP1 SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 ISZERO ISZERO PUSH2 0x1874 JUMPI PUSH1 0x0 SWAP2 POP PUSH2 0x1537 JUMP JUMPDEST POP DUP3 DUP3 MUL DUP3 DUP5 DUP3 DUP2 ISZERO ISZERO PUSH2 0x1884 JUMPI INVALID JUMPDEST DIV EQ PUSH2 0x18DA JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 ADD DUP4 DUP2 LT ISZERO PUSH2 0x18DA JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0xC SLOAD PUSH1 0xA8 PUSH1 0x2 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO PUSH2 0x1767 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F44495341424C45440000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0xC SLOAD PUSH2 0x19BE SWAP1 PUSH2 0x100 SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER ADDRESS DUP5 PUSH2 0x1D82 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP3 DUP2 MSTORE SWAP1 MLOAD CALLER SWAP2 PUSH32 0xF5D7535A395393675F56D066384113754CA9CF4ABD37298469934E2E9C2EC902 SWAP2 SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 LOG2 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0x1A57 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ADDRESS EQ ISZERO PUSH2 0x1A57 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F414444524553535F49535F53454C4600000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x7472616E7366657228616464726573732C75696E743235362900000000000000 DUP2 MSTORE DUP2 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x19 ADD DUP2 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x64 SWAP1 SWAP3 ADD SWAP1 SWAP3 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE PUSH2 0x1B6D SWAP1 DUP5 SWAP1 PUSH2 0x1E6A JUMP JUMPDEST POP POP POP JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x10 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO ISZERO PUSH2 0x1767 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1F46 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0xC SLOAD PUSH23 0x100000000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO PUSH2 0x1767 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F44495341424C45440000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 GT PUSH2 0x1A57 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5A45524F5F56414C5545000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1CA1 PUSH2 0x8D6 JUMP JUMPDEST SWAP1 POP PUSH1 0x6 SLOAD DUP3 LT ISZERO DUP1 ISZERO PUSH2 0x1CB5 JUMPI POP DUP1 DUP3 GT ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x1D0B JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F414D4F554E545F544F4F5F4849474800000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x1D1B DUP2 DUP4 PUSH4 0xFFFFFFFF PUSH2 0x1801 AND JUMP JUMPDEST PUSH1 0x8 SSTORE NUMBER PUSH1 0xB SSTORE PUSH1 0xC SLOAD PUSH2 0x1D3E SWAP1 PUSH2 0x100 SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP5 DUP5 PUSH2 0x1ABB JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP4 DUP2 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND SWAP2 PUSH32 0xBFDC1F3C02B4715077E0BE4A262F967D53D4D0FCD76C6987FA2AD6E2257D7C8F SWAP2 SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 LOG2 POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x7472616E7366657246726F6D28616464726573732C616464726573732C75696E DUP2 MSTORE PUSH32 0x7432353629000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP3 MLOAD SWAP2 DUP3 SWAP1 SUB PUSH1 0x25 ADD DUP3 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP9 AND PUSH1 0x24 DUP6 ADD MSTORE DUP7 AND PUSH1 0x44 DUP5 ADD MSTORE PUSH1 0x64 DUP1 DUP5 ADD DUP7 SWAP1 MSTORE DUP5 MLOAD DUP1 DUP6 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x84 SWAP1 SWAP4 ADD SWAP1 SWAP4 MSTORE DUP2 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE PUSH2 0x1E64 SWAP1 DUP6 SWAP1 PUSH2 0x1E6A JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0x1E72 PUSH2 0x1F26 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE POP SWAP1 POP PUSH1 0x20 DUP2 DUP4 MLOAD PUSH1 0x20 DUP6 ADD PUSH1 0x0 DUP8 GAS CALL DUP1 ISZERO ISZERO PUSH2 0x1E9F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD ISZERO ISZERO PUSH2 0x1B6D JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5452414E534645525F4641494C454400000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xA0 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE SWAP2 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x60 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 SWAP1 PUSH1 0x20 DUP3 MUL DUP1 CODESIZE DUP4 CODECOPY POP SWAP2 SWAP3 SWAP2 POP POP JUMP STOP GASLIMIT MSTORE MSTORE 0x5f COINBASE NUMBER NUMBER GASLIMIT MSTORE8 MSTORE8 0x5f DIFFICULTY GASLIMIT 0x4e 0x49 GASLIMIT DIFFICULTY STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 JUMP SWAP1 LT 0xe6 0xee DUP13 0xeb PUSH8 0x6C8764611AF1B7A6 MSIZE CODESIZE CALLVALUE 0xee 0xc0 0xd3 PUSH4 0x6F2ACCC2 0x1e 0xb2 0xc3 0x27 0xb9 STOP 0x29 ", - "sourceMap": "835:15088:45:-;;;2060:36;;;-1:-1:-1;;;;;;;;;;;;2060:36:45;;;;;2148:35;;;;;4847:1085;5:2:-1;;;;30:1;27;20:12;5:2;4847:1085:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;488:5:66;:18;;-1:-1:-1;;;;;;488:18:66;496:10;488:18;;;4847:1085:45;;;;;;;;;;475:23:72;4847:1085:45;475:13:72;;;;:23;:::i;:::-;-1:-1:-1;1931:8:60;:39;;-1:-1:-1;;;;;1931:39:60;;;-1:-1:-1;;;;;;1931:39:60;;;;;;;;1974:12;:43;;;;;;;;5110:13:45;180:24:72;5110:13:45;180:16:72;;;;:24;:::i;:::-;5143:16:45;180:24:72;5143:16:45;180::72;;;;:24;:::i;:::-;5179:9:45;180:24:72;5179:9:45;180:16:72;;;;:24;:::i;:::-;5208:17:45;180:24:72;5208:17:45;180:16:72;;;;:24;:::i;:::-;135:78;;;180:24;135:78;180:16;;;;:24;:::i;:::-;5281:6:45;475:23:72;5281:6:45;475:13:72;;;;:23;:::i;:::-;5299:6:45;782:18:72;5299:6:45;782:8:72;;;;:18;:::i;:::-;5353:13:45;5340:9;:26;;:59;;;;;5383:16;5370:9;:29;;5340:59;5332:93;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5499:12:45;:28;;;-1:-1:-1;;;5531:15:45;:34;;;-1:-1:-1;5569:8:45;:20;;;;-1:-1:-1;5593:16:45;:36;;;;5633:18;:40;;5762:13;:29;;;;5795:16;:35;;;;5856:12;5834:19;:34;;;5872:22;:37;-1:-1:-1;;;;;5914:14:45;;;5633:40;5914:14;-1:-1:-1;;;;;;5633:40:45;;;;-1:-1:-1;;5633:40:45;;;;;;;5914:14;;;;;;;835:15088;;553:117:72;-1:-1:-1;;;;;620:22:72;;;;612:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;553:117;:::o;259:101::-;336:1;327:10;;319:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;855:115;-1:-1:-1;;;;;917:25:72;;937:4;917:25;;909:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;835:15088:45;;;;;;;" - }, - "deployedBytecode": { - "linkReferences": {}, - "object": "60806040526004361061020e5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630183592b8114610213578063024c7ec71461026a57806316c76c271461028457806319967439146102ab5780631aff29eb146102c05780631e04a593146102d55780631fd8088d146102ea5780632cc1cd9e146102ff5780632fe8a6ad14610334578063427c037414610349578063492825381461036a57806349d10b64146103885780634b3e475c1461039d57806352e94ce3146103b257806354fd4d50146103c75780635e35359e146103f357806361cd756e1461041d5780636dc6a01b1461044e5780636ec6d4a61461047b57806372f43d191461049357806379ba5097146104a85780637b103999146104bd5780637b15879c146104d25780638544c52d146104ed5780638da5cb5b146105115780639390701c146105265780639ace38c21461053b578063a50c326c1461058b578063a5c670ca146105a3578063a8c36a90146105bd578063aafd6b76146105d2578063af2b9618146105f6578063b4a176d31461060e578063bf28ece414610623578063ca27e0111461063b578063d4ee1d9014610666578063e1bb51331461067b578063e36f8dc5146106a1578063ed1d73a6146106b9578063f2fde38b146106d3578063f7385f76146106f4578063fbb2469214610709578063fc0c546a1461071e575b600080fd5b34801561021f57600080fd5b5060408051602060048035808201358381028086018501909652808552610268953695939460249493850192918291850190849080828437509497506107339650505050505050565b005b34801561027657600080fd5b506102686004351515610839565b34801561029057600080fd5b50610299610870565b60408051918252519081900360200190f35b3480156102b757600080fd5b50610299610876565b3480156102cc57600080fd5b506102996108d0565b3480156102e157600080fd5b506102996108d6565b3480156102f657600080fd5b5061029961091c565b34801561030b57600080fd5b50610320600160a060020a0360043516610922565b604080519115158252519081900360200190f35b34801561034057600080fd5b50610320610937565b34801561035557600080fd5b50610268600435602435604435606435610947565b34801561037657600080fd5b50610268600435602435604435610a2e565b34801561039457600080fd5b50610268610b14565b3480156103a957600080fd5b50610299610d70565b3480156103be57600080fd5b50610299610d76565b3480156103d357600080fd5b506103dc610d7c565b6040805161ffff9092168252519081900360200190f35b3480156103ff57600080fd5b50610268600160a060020a0360043581169060243516604435610d81565b34801561042957600080fd5b50610432610dba565b60408051600160a060020a039092168252519081900360200190f35b34801561045a57600080fd5b50610268600435602435600160a060020a0360443516606435608435610dc9565b34801561048757600080fd5b506102686004356111f6565b34801561049f57600080fd5b50610299611278565b3480156104b457600080fd5b5061026861127e565b3480156104c957600080fd5b5061043261133f565b3480156104de57600080fd5b5061026860ff6004351661134e565b3480156104f957600080fd5b50610320600435600160a060020a036024351661137a565b34801561051d57600080fd5b5061043261139a565b34801561053257600080fd5b506103206113a9565b34801561054757600080fd5b506105536004356113cc565b604080519586526020860194909452600160a060020a039092168484015260ff16606084015215156080830152519081900360a00190f35b34801561059757600080fd5b5061026860043561140c565b3480156105af57600080fd5b506102686004351515611424565b3480156105c957600080fd5b5061029961145c565b3480156105de57600080fd5b50610299600435600160a060020a0360243516611462565b34801561060257600080fd5b5061026860043561153e565b34801561061a57600080fd5b50610268611556565b34801561062f57600080fd5b5061026860043561158f565b34801561064757600080fd5b506106506115a7565b6040805160ff9092168252519081900360200190f35b34801561067257600080fd5b506104326115b0565b34801561068757600080fd5b50610268600160a060020a036004351660243515156115bf565b3480156106ad57600080fd5b506102996004356115f2565b3480156106c557600080fd5b506102686004351515611604565b3480156106df57600080fd5b50610268600160a060020a0360043516611650565b34801561070057600080fd5b506102996116ed565b34801561071557600080fd5b506103206116f3565b34801561072a57600080fd5b50610432611703565b600061073d611717565b6107667f536f7672796e5377617058557067726164657200000000000000000000000000611769565b905061077181611650565b604080517f546872cc000000000000000000000000000000000000000000000000000000008152600481810181815260248301938452855160448401528551600160a060020a0386169463546872cc948893926064909101906020808601910280838360005b838110156107ef5781810151838201526020016107d7565b505050509050019350505050600060405180830381600087803b15801561081557600080fd5b505af1158015610829573d6000803e3d6000fd5b5050505061083561127e565b5050565b610841611717565b6003805491151560a060020a0274ff000000000000000000000000000000000000000019909216919091179055565b60075481565b6000806108b26108a3600954610897600a544361180190919063ffffffff16565b9063ffffffff61186116565b6007549063ffffffff6118e116565b90506004548111156108c85760045491506108cc565b8091505b5090565b600a5481565b6000806109066108f7600954610897600b544361180190919063ffffffff16565b6008549063ffffffff6118e116565b90506005548111156108c85760055491506108cc565b60065481565b60106020526000908152604090205460ff1681565b60035460a060020a900460ff1681565b600061095161193e565b610959610876565b9050600654831015801561096d5750808311155b15156109c3576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f414d4f554e545f544f4f5f4849474800000000000000000000000000604482015290519081900360640190fd5b6109cc836119a1565b6109dc818463ffffffff61180116565b60075543600a5560408051868152602081018590528082018490529051859133917f4780f3edc9124597ede658e04ed3d8887b58c86943b2a805dc961cf512570b629181900360600190a35050505050565b6000610a3861193e565b610a40610876565b90506006548210158015610a545750808211155b1515610aaa576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f414d4f554e545f544f4f5f4849474800000000000000000000000000604482015290519081900360640190fd5b610ab3826119a1565b610ac3818363ffffffff61180116565b60075543600a5560408051858152602081018490526000818301529051849133917f4780f3edc9124597ede658e04ed3d8887b58c86943b2a805dc961cf512570b629181900360600190a350505050565b60008054600160a060020a0316331480610b38575060035460a060020a900460ff16155b1515610b7c576040805160e560020a62461bcd0281526020600482015260116024820152600080516020611f46833981519152604482015290519081900360640190fd5b610ba57f436f6e7472616374526567697374727900000000000000000000000000000000611769565b600254909150600160a060020a03808316911614801590610bce5750600160a060020a03811615155b1515610c24576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e56414c49445f5245474953545259000000000000000000000000604482015290519081900360640190fd5b604080517fbb34534c0000000000000000000000000000000000000000000000000000000081527f436f6e747261637452656769737472790000000000000000000000000000000060048201529051600091600160a060020a0384169163bb34534c9160248082019260209290919082900301818787803b158015610ca857600080fd5b505af1158015610cbc573d6000803e3d6000fd5b505050506040513d6020811015610cd257600080fd5b5051600160a060020a03161415610d33576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f494e56414c49445f5245474953545259000000000000000000000000604482015290519081900360640190fd5b6002805460038054600160a060020a0380841673ffffffffffffffffffffffffffffffffffffffff19928316179092559091169216919091179055565b600b5481565b60055481565b600481565b610d89611717565b82610d93816119f7565b82610d9d816119f7565b83610da781611a5a565b610db2868686611abb565b505050505050565b600354600160a060020a031681565b6000610dd3611b72565b610ddb611bc9565b83610de5816119f7565b83610def81611c3f565b6000878152600f6020908152604080832033845290915290205460ff1615610e61576040805160e560020a62461bcd02815260206004820152601460248201527f4552525f414c52454144595f5245504f52544544000000000000000000000000604482015290519081900360640190fd5b6000878152600f602090815260408083203384528252808320805460ff19166001179055898352600d9091529020600281015490935060a060020a900460ff161515610f5c5760028301805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038816179055848355600183018890558315610f57576000848152600e602052604090205415610f45576040805160e560020a62461bcd02815260206004820152601560248201527f4552525f54585f414c52454144595f4558495354530000000000000000000000604482015290519081900360640190fd5b6000848152600e602052604090208790555b61104b565b6002830154600160a060020a038781169116148015610f7b5750825485145b8015610f8a5750600183015488145b1515610fe0576040805160e560020a62461bcd02815260206004820152600f60248201527f4552525f54585f4d49534d415443480000000000000000000000000000000000604482015290519081900360640190fd5b831561104b576000848152600e6020526040902054871461104b576040805160e560020a62461bcd02815260206004820152601560248201527f4552525f54585f414c52454144595f4558495354530000000000000000000000604482015290519081900360640190fd5b600283018054600160ff60a060020a808404821692909201160274ff0000000000000000000000000000000000000000199091161790556040805189815260208101899052600160a060020a038816818301526060810187905260808101869052905133917f5e77831e701760f7f4a1e61a8e9834d773b52c45d91ba9006b7d2afb7a144739919081900360a00190a2600c54600284015460ff91821660a060020a909104909116106111ec576000878152600d602052604090206002015460a860020a900460ff1615611169576040805160e560020a62461bcd02815260206004820152601860248201527f4552525f54585f414c52454144595f434f4d504c455445440000000000000000604482015290519081900360640190fd5b6000878152600d6020908152604091829020600201805475ff000000000000000000000000000000000000000000191660a860020a1790558151600160a060020a038916815290810186905281517fd87906b7fce534fc5e6dde30064e777d92d0aaf3a28c72315de8ef2e4134dfef929181900390910190a16111ec8686611c97565b5050505050505050565b6111fe611717565b8061120881611c3f565b600454821115801561121c57506005548211155b1515611272576040805160e560020a62461bcd02815260206004820152601560248201527f4552525f494e56414c49445f4d494e5f4c494d49540000000000000000000000604482015290519081900360640190fd5b50600655565b60095481565b600154600160a060020a031633146112ce576040805160e560020a62461bcd0281526020600482015260116024820152600080516020611f46833981519152604482015290519081900360640190fd5b60015460008054604051600160a060020a0393841693909116917f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91a3600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b600254600160a060020a031681565b611356611717565b8060ff1661136381611c3f565b50600c805460ff191660ff92909216919091179055565b600f60209081526000928352604080842090915290825290205460ff1681565b600054600160a060020a031681565b600c54760100000000000000000000000000000000000000000000900460ff1681565b600d60205260009081526040902080546001820154600290920154909190600160a060020a0381169060ff60a060020a820481169160a860020a90041685565b611414611717565b8061141e81611c3f565b50600955565b61142c611717565b600c805491151560a860020a0275ff00000000000000000000000000000000000000000019909216919091179055565b60045481565b600061146c611ef8565b506000838152600e60209081526040808320548352600d825291829020825160a0810184528154815260018201549281019290925260020154600160a060020a0380821693830184905260ff60a060020a83048116606085015260a860020a90920490911615156080830152909190841614611532576040805160e560020a62461bcd02815260206004820152600f60248201527f4552525f54585f4d49534d415443480000000000000000000000000000000000604482015290519081900360640190fd5b805191505b5092915050565b611546611717565b8061155081611c3f565b50600455565b61155e611717565b6003546002805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055565b611597611717565b806115a181611c3f565b50600555565b600c5460ff1681565b600154600160a060020a031681565b6115c7611717565b600160a060020a03919091166000908152601060205260409020805460ff1916911515919091179055565b600e6020526000908152604090205481565b61160c611717565b600c80549115157601000000000000000000000000000000000000000000000276ff0000000000000000000000000000000000000000000019909216919091179055565b611658611717565b600054600160a060020a03828116911614156116be576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f53414d455f4f574e4552000000000000000000000000000000000000604482015290519081900360640190fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60085481565b600c5460a860020a900460ff1681565b600c546101009004600160a060020a031681565b600054600160a060020a03163314611767576040805160e560020a62461bcd0281526020600482015260116024820152600080516020611f46833981519152604482015290519081900360640190fd5b565b600254604080517fbb34534c000000000000000000000000000000000000000000000000000000008152600481018490529051600092600160a060020a03169163bb34534c91602480830192602092919082900301818787803b1580156117cf57600080fd5b505af11580156117e3573d6000803e3d6000fd5b505050506040513d60208110156117f957600080fd5b505192915050565b60008183101561185b576040805160e560020a62461bcd02815260206004820152600d60248201527f4552525f554e444552464c4f5700000000000000000000000000000000000000604482015290519081900360640190fd5b50900390565b6000808315156118745760009150611537565b5082820282848281151561188457fe5b04146118da576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b9392505050565b6000828201838110156118da576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b600c5460a860020a900460ff161515611767576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f44495341424c45440000000000000000000000000000000000000000604482015290519081900360640190fd5b600c546119be906101009004600160a060020a0316333084611d82565b60408051828152905133917ff5d7535a395393675f56d066384113754ca9cf4abd37298469934e2e9c2ec902919081900360200190a250565b600160a060020a0381161515611a57576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b50565b600160a060020a038116301415611a57576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f414444524553535f49535f53454c4600000000000000000000000000604482015290519081900360640190fd5b604080517f7472616e7366657228616464726573732c75696e74323536290000000000000081528151908190036019018120600160a060020a038516602483015260448083018590528351808403909101815260649092019092526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1990931692909217909152611b6d908490611e6a565b505050565b3360009081526010602052604090205460ff161515611767576040805160e560020a62461bcd0281526020600482015260116024820152600080516020611f46833981519152604482015290519081900360640190fd5b600c54760100000000000000000000000000000000000000000000900460ff161515611767576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f44495341424c45440000000000000000000000000000000000000000604482015290519081900360640190fd5b60008111611a57576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f5a45524f5f56414c5545000000000000000000000000000000000000604482015290519081900360640190fd5b6000611ca16108d6565b90506006548210158015611cb55750808211155b1515611d0b576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f414d4f554e545f544f4f5f4849474800000000000000000000000000604482015290519081900360640190fd5b611d1b818363ffffffff61180116565b60085543600b55600c54611d3e906101009004600160a060020a03168484611abb565b604080518381529051600160a060020a038516917fbfdc1f3c02b4715077e0be4a262f967d53d4d0fcd76c6987fa2ad6e2257d7c8f919081900360200190a2505050565b604080517f7472616e7366657246726f6d28616464726573732c616464726573732c75696e81527f74323536290000000000000000000000000000000000000000000000000000006020808301919091528251918290036025018220600160a060020a038088166024850152861660448401526064808401869052845180850390910181526084909301909352810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1990931692909217909152611e64908590611e6a565b50505050565b611e72611f26565b602060405190810160405280600181525090506020818351602085016000875af1801515611e9f57600080fd5b5080511515611b6d576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f5452414e534645525f4641494c454400000000000000000000000000604482015290519081900360640190fd5b6040805160a08101825260008082526020820181905291810182905260608101829052608081019190915290565b602060405190810160405280600190602082028038833950919291505056004552525f4143434553535f44454e494544000000000000000000000000000000a165627a7a72305820569010e6ee8ceb676c8764611af1b7a6593834eec0d3636f2accc21eb2c327b90029", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x20E JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x183592B DUP2 EQ PUSH2 0x213 JUMPI DUP1 PUSH4 0x24C7EC7 EQ PUSH2 0x26A JUMPI DUP1 PUSH4 0x16C76C27 EQ PUSH2 0x284 JUMPI DUP1 PUSH4 0x19967439 EQ PUSH2 0x2AB JUMPI DUP1 PUSH4 0x1AFF29EB EQ PUSH2 0x2C0 JUMPI DUP1 PUSH4 0x1E04A593 EQ PUSH2 0x2D5 JUMPI DUP1 PUSH4 0x1FD8088D EQ PUSH2 0x2EA JUMPI DUP1 PUSH4 0x2CC1CD9E EQ PUSH2 0x2FF JUMPI DUP1 PUSH4 0x2FE8A6AD EQ PUSH2 0x334 JUMPI DUP1 PUSH4 0x427C0374 EQ PUSH2 0x349 JUMPI DUP1 PUSH4 0x49282538 EQ PUSH2 0x36A JUMPI DUP1 PUSH4 0x49D10B64 EQ PUSH2 0x388 JUMPI DUP1 PUSH4 0x4B3E475C EQ PUSH2 0x39D JUMPI DUP1 PUSH4 0x52E94CE3 EQ PUSH2 0x3B2 JUMPI DUP1 PUSH4 0x54FD4D50 EQ PUSH2 0x3C7 JUMPI DUP1 PUSH4 0x5E35359E EQ PUSH2 0x3F3 JUMPI DUP1 PUSH4 0x61CD756E EQ PUSH2 0x41D JUMPI DUP1 PUSH4 0x6DC6A01B EQ PUSH2 0x44E JUMPI DUP1 PUSH4 0x6EC6D4A6 EQ PUSH2 0x47B JUMPI DUP1 PUSH4 0x72F43D19 EQ PUSH2 0x493 JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x4A8 JUMPI DUP1 PUSH4 0x7B103999 EQ PUSH2 0x4BD JUMPI DUP1 PUSH4 0x7B15879C EQ PUSH2 0x4D2 JUMPI DUP1 PUSH4 0x8544C52D EQ PUSH2 0x4ED JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x511 JUMPI DUP1 PUSH4 0x9390701C EQ PUSH2 0x526 JUMPI DUP1 PUSH4 0x9ACE38C2 EQ PUSH2 0x53B JUMPI DUP1 PUSH4 0xA50C326C EQ PUSH2 0x58B JUMPI DUP1 PUSH4 0xA5C670CA EQ PUSH2 0x5A3 JUMPI DUP1 PUSH4 0xA8C36A90 EQ PUSH2 0x5BD JUMPI DUP1 PUSH4 0xAAFD6B76 EQ PUSH2 0x5D2 JUMPI DUP1 PUSH4 0xAF2B9618 EQ PUSH2 0x5F6 JUMPI DUP1 PUSH4 0xB4A176D3 EQ PUSH2 0x60E JUMPI DUP1 PUSH4 0xBF28ECE4 EQ PUSH2 0x623 JUMPI DUP1 PUSH4 0xCA27E011 EQ PUSH2 0x63B JUMPI DUP1 PUSH4 0xD4EE1D90 EQ PUSH2 0x666 JUMPI DUP1 PUSH4 0xE1BB5133 EQ PUSH2 0x67B JUMPI DUP1 PUSH4 0xE36F8DC5 EQ PUSH2 0x6A1 JUMPI DUP1 PUSH4 0xED1D73A6 EQ PUSH2 0x6B9 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x6D3 JUMPI DUP1 PUSH4 0xF7385F76 EQ PUSH2 0x6F4 JUMPI DUP1 PUSH4 0xFBB24692 EQ PUSH2 0x709 JUMPI DUP1 PUSH4 0xFC0C546A EQ PUSH2 0x71E JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x21F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0x268 SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP PUSH2 0x733 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x276 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x268 PUSH1 0x4 CALLDATALOAD ISZERO ISZERO PUSH2 0x839 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x290 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x299 PUSH2 0x870 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2B7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x299 PUSH2 0x876 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2CC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x299 PUSH2 0x8D0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2E1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x299 PUSH2 0x8D6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2F6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x299 PUSH2 0x91C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x30B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x320 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x922 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x340 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x320 PUSH2 0x937 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x355 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x268 PUSH1 0x4 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH1 0x44 CALLDATALOAD PUSH1 0x64 CALLDATALOAD PUSH2 0x947 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x376 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x268 PUSH1 0x4 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH1 0x44 CALLDATALOAD PUSH2 0xA2E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x394 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x268 PUSH2 0xB14 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3A9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x299 PUSH2 0xD70 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3BE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x299 PUSH2 0xD76 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3D3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3DC PUSH2 0xD7C JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0xFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3FF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x268 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0xD81 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x429 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x432 PUSH2 0xDBA JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x45A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x268 PUSH1 0x4 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x44 CALLDATALOAD AND PUSH1 0x64 CALLDATALOAD PUSH1 0x84 CALLDATALOAD PUSH2 0xDC9 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x487 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x268 PUSH1 0x4 CALLDATALOAD PUSH2 0x11F6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x49F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x299 PUSH2 0x1278 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4B4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x268 PUSH2 0x127E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4C9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x432 PUSH2 0x133F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4DE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x268 PUSH1 0xFF PUSH1 0x4 CALLDATALOAD AND PUSH2 0x134E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4F9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x320 PUSH1 0x4 CALLDATALOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x24 CALLDATALOAD AND PUSH2 0x137A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x51D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x432 PUSH2 0x139A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x532 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x320 PUSH2 0x13A9 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x547 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x553 PUSH1 0x4 CALLDATALOAD PUSH2 0x13CC JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP6 DUP7 MSTORE PUSH1 0x20 DUP7 ADD SWAP5 SWAP1 SWAP5 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP5 DUP5 ADD MSTORE PUSH1 0xFF AND PUSH1 0x60 DUP5 ADD MSTORE ISZERO ISZERO PUSH1 0x80 DUP4 ADD MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0xA0 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x597 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x268 PUSH1 0x4 CALLDATALOAD PUSH2 0x140C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5AF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x268 PUSH1 0x4 CALLDATALOAD ISZERO ISZERO PUSH2 0x1424 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5C9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x299 PUSH2 0x145C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5DE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x299 PUSH1 0x4 CALLDATALOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x24 CALLDATALOAD AND PUSH2 0x1462 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x602 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x268 PUSH1 0x4 CALLDATALOAD PUSH2 0x153E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x61A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x268 PUSH2 0x1556 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x62F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x268 PUSH1 0x4 CALLDATALOAD PUSH2 0x158F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x647 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x650 PUSH2 0x15A7 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x672 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x432 PUSH2 0x15B0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x687 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x268 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD ISZERO ISZERO PUSH2 0x15BF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6AD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x299 PUSH1 0x4 CALLDATALOAD PUSH2 0x15F2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6C5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x268 PUSH1 0x4 CALLDATALOAD ISZERO ISZERO PUSH2 0x1604 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6DF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x268 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x1650 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x700 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x299 PUSH2 0x16ED JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x715 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x320 PUSH2 0x16F3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x72A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x432 PUSH2 0x1703 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x73D PUSH2 0x1717 JUMP JUMPDEST PUSH2 0x766 PUSH32 0x536F7672796E5377617058557067726164657200000000000000000000000000 PUSH2 0x1769 JUMP JUMPDEST SWAP1 POP PUSH2 0x771 DUP2 PUSH2 0x1650 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x546872CC00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 DUP2 ADD DUP2 DUP2 MSTORE PUSH1 0x24 DUP4 ADD SWAP4 DUP5 MSTORE DUP6 MLOAD PUSH1 0x44 DUP5 ADD MSTORE DUP6 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND SWAP5 PUSH4 0x546872CC SWAP5 DUP9 SWAP4 SWAP3 PUSH1 0x64 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x20 DUP1 DUP7 ADD SWAP2 MUL DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x7EF JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x7D7 JUMP JUMPDEST POP POP POP POP SWAP1 POP ADD SWAP4 POP POP POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x815 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x829 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x835 PUSH2 0x127E JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x841 PUSH2 0x1717 JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD SWAP2 ISZERO ISZERO PUSH1 0xA0 PUSH1 0x2 EXP MUL PUSH21 0xFF0000000000000000000000000000000000000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x7 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x8B2 PUSH2 0x8A3 PUSH1 0x9 SLOAD PUSH2 0x897 PUSH1 0xA SLOAD NUMBER PUSH2 0x1801 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x1861 AND JUMP JUMPDEST PUSH1 0x7 SLOAD SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x18E1 AND JUMP JUMPDEST SWAP1 POP PUSH1 0x4 SLOAD DUP2 GT ISZERO PUSH2 0x8C8 JUMPI PUSH1 0x4 SLOAD SWAP2 POP PUSH2 0x8CC JUMP JUMPDEST DUP1 SWAP2 POP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH1 0xA SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x906 PUSH2 0x8F7 PUSH1 0x9 SLOAD PUSH2 0x897 PUSH1 0xB SLOAD NUMBER PUSH2 0x1801 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x8 SLOAD SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x18E1 AND JUMP JUMPDEST SWAP1 POP PUSH1 0x5 SLOAD DUP2 GT ISZERO PUSH2 0x8C8 JUMPI PUSH1 0x5 SLOAD SWAP2 POP PUSH2 0x8CC JUMP JUMPDEST PUSH1 0x6 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x10 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0xA0 PUSH1 0x2 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x951 PUSH2 0x193E JUMP JUMPDEST PUSH2 0x959 PUSH2 0x876 JUMP JUMPDEST SWAP1 POP PUSH1 0x6 SLOAD DUP4 LT ISZERO DUP1 ISZERO PUSH2 0x96D JUMPI POP DUP1 DUP4 GT ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x9C3 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F414D4F554E545F544F4F5F4849474800000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x9CC DUP4 PUSH2 0x19A1 JUMP JUMPDEST PUSH2 0x9DC DUP2 DUP5 PUSH4 0xFFFFFFFF PUSH2 0x1801 AND JUMP JUMPDEST PUSH1 0x7 SSTORE NUMBER PUSH1 0xA SSTORE PUSH1 0x40 DUP1 MLOAD DUP7 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP6 SWAP1 MSTORE DUP1 DUP3 ADD DUP5 SWAP1 MSTORE SWAP1 MLOAD DUP6 SWAP2 CALLER SWAP2 PUSH32 0x4780F3EDC9124597EDE658E04ED3D8887B58C86943B2A805DC961CF512570B62 SWAP2 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG3 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA38 PUSH2 0x193E JUMP JUMPDEST PUSH2 0xA40 PUSH2 0x876 JUMP JUMPDEST SWAP1 POP PUSH1 0x6 SLOAD DUP3 LT ISZERO DUP1 ISZERO PUSH2 0xA54 JUMPI POP DUP1 DUP3 GT ISZERO JUMPDEST ISZERO ISZERO PUSH2 0xAAA JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F414D4F554E545F544F4F5F4849474800000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0xAB3 DUP3 PUSH2 0x19A1 JUMP JUMPDEST PUSH2 0xAC3 DUP2 DUP4 PUSH4 0xFFFFFFFF PUSH2 0x1801 AND JUMP JUMPDEST PUSH1 0x7 SSTORE NUMBER PUSH1 0xA SSTORE PUSH1 0x40 DUP1 MLOAD DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x0 DUP2 DUP4 ADD MSTORE SWAP1 MLOAD DUP5 SWAP2 CALLER SWAP2 PUSH32 0x4780F3EDC9124597EDE658E04ED3D8887B58C86943B2A805DC961CF512570B62 SWAP2 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG3 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ DUP1 PUSH2 0xB38 JUMPI POP PUSH1 0x3 SLOAD PUSH1 0xA0 PUSH1 0x2 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST ISZERO ISZERO PUSH2 0xB7C JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1F46 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0xBA5 PUSH32 0x436F6E7472616374526567697374727900000000000000000000000000000000 PUSH2 0x1769 JUMP JUMPDEST PUSH1 0x2 SLOAD SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP4 AND SWAP2 AND EQ DUP1 ISZERO SWAP1 PUSH2 0xBCE JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO JUMPDEST ISZERO ISZERO PUSH2 0xC24 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245474953545259000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0xBB34534C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH32 0x436F6E7472616374526567697374727900000000000000000000000000000000 PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP2 PUSH4 0xBB34534C SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xCA8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xCBC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xCD2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND EQ ISZERO PUSH2 0xD33 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F5245474953545259000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP5 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP3 DUP4 AND OR SWAP1 SWAP3 SSTORE SWAP1 SWAP2 AND SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0xB SLOAD DUP2 JUMP JUMPDEST PUSH1 0x5 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x4 DUP2 JUMP JUMPDEST PUSH2 0xD89 PUSH2 0x1717 JUMP JUMPDEST DUP3 PUSH2 0xD93 DUP2 PUSH2 0x19F7 JUMP JUMPDEST DUP3 PUSH2 0xD9D DUP2 PUSH2 0x19F7 JUMP JUMPDEST DUP4 PUSH2 0xDA7 DUP2 PUSH2 0x1A5A JUMP JUMPDEST PUSH2 0xDB2 DUP7 DUP7 DUP7 PUSH2 0x1ABB JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xDD3 PUSH2 0x1B72 JUMP JUMPDEST PUSH2 0xDDB PUSH2 0x1BC9 JUMP JUMPDEST DUP4 PUSH2 0xDE5 DUP2 PUSH2 0x19F7 JUMP JUMPDEST DUP4 PUSH2 0xDEF DUP2 PUSH2 0x1C3F JUMP JUMPDEST PUSH1 0x0 DUP8 DUP2 MSTORE PUSH1 0xF PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0xE61 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F414C52454144595F5245504F52544544000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP8 DUP2 MSTORE PUSH1 0xF PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE DUP3 MSTORE DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE DUP10 DUP4 MSTORE PUSH1 0xD SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 PUSH1 0x2 DUP2 ADD SLOAD SWAP1 SWAP4 POP PUSH1 0xA0 PUSH1 0x2 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO PUSH2 0xF5C JUMPI PUSH1 0x2 DUP4 ADD DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 AND OR SWAP1 SSTORE DUP5 DUP4 SSTORE PUSH1 0x1 DUP4 ADD DUP9 SWAP1 SSTORE DUP4 ISZERO PUSH2 0xF57 JUMPI PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD ISZERO PUSH2 0xF45 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F54585F414C52454144595F4558495354530000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP8 SWAP1 SSTORE JUMPDEST PUSH2 0x104B JUMP JUMPDEST PUSH1 0x2 DUP4 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 DUP2 AND SWAP2 AND EQ DUP1 ISZERO PUSH2 0xF7B JUMPI POP DUP3 SLOAD DUP6 EQ JUMPDEST DUP1 ISZERO PUSH2 0xF8A JUMPI POP PUSH1 0x1 DUP4 ADD SLOAD DUP9 EQ JUMPDEST ISZERO ISZERO PUSH2 0xFE0 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xF PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F54585F4D49534D415443480000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP4 ISZERO PUSH2 0x104B JUMPI PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP8 EQ PUSH2 0x104B JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F54585F414C52454144595F4558495354530000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x2 DUP4 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0xFF PUSH1 0xA0 PUSH1 0x2 EXP DUP1 DUP5 DIV DUP3 AND SWAP3 SWAP1 SWAP3 ADD AND MUL PUSH21 0xFF0000000000000000000000000000000000000000 NOT SWAP1 SWAP2 AND OR SWAP1 SSTORE PUSH1 0x40 DUP1 MLOAD DUP10 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP10 SWAP1 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 AND DUP2 DUP4 ADD MSTORE PUSH1 0x60 DUP2 ADD DUP8 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD DUP7 SWAP1 MSTORE SWAP1 MLOAD CALLER SWAP2 PUSH32 0x5E77831E701760F7F4A1E61A8E9834D773B52C45D91BA9006B7D2AFB7A144739 SWAP2 SWAP1 DUP2 SWAP1 SUB PUSH1 0xA0 ADD SWAP1 LOG2 PUSH1 0xC SLOAD PUSH1 0x2 DUP5 ADD SLOAD PUSH1 0xFF SWAP2 DUP3 AND PUSH1 0xA0 PUSH1 0x2 EXP SWAP1 SWAP2 DIV SWAP1 SWAP2 AND LT PUSH2 0x11EC JUMPI PUSH1 0x0 DUP8 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x2 ADD SLOAD PUSH1 0xA8 PUSH1 0x2 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x1169 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F54585F414C52454144595F434F4D504C455445440000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP8 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 PUSH1 0x2 ADD DUP1 SLOAD PUSH22 0xFF000000000000000000000000000000000000000000 NOT AND PUSH1 0xA8 PUSH1 0x2 EXP OR SWAP1 SSTORE DUP2 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP10 AND DUP2 MSTORE SWAP1 DUP2 ADD DUP7 SWAP1 MSTORE DUP2 MLOAD PUSH32 0xD87906B7FCE534FC5E6DDE30064E777D92D0AAF3A28C72315DE8EF2E4134DFEF SWAP3 SWAP2 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG1 PUSH2 0x11EC DUP7 DUP7 PUSH2 0x1C97 JUMP JUMPDEST POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x11FE PUSH2 0x1717 JUMP JUMPDEST DUP1 PUSH2 0x1208 DUP2 PUSH2 0x1C3F JUMP JUMPDEST PUSH1 0x4 SLOAD DUP3 GT ISZERO DUP1 ISZERO PUSH2 0x121C JUMPI POP PUSH1 0x5 SLOAD DUP3 GT ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x1272 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4D494E5F4C494D49540000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP PUSH1 0x6 SSTORE JUMP JUMPDEST PUSH1 0x9 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x12CE JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1F46 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND SWAP4 SWAP1 SWAP2 AND SWAP2 PUSH32 0x343765429AEA5A34B3FF6A3785A98A5ABB2597ACA87BFBB58632C173D585373A SWAP2 LOG3 PUSH1 0x1 DUP1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND OR SWAP1 SWAP2 SSTORE AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH2 0x1356 PUSH2 0x1717 JUMP JUMPDEST DUP1 PUSH1 0xFF AND PUSH2 0x1363 DUP2 PUSH2 0x1C3F JUMP JUMPDEST POP PUSH1 0xC DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0xFF SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0xF PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0xC SLOAD PUSH23 0x100000000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0xD PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0x2 SWAP1 SWAP3 ADD SLOAD SWAP1 SWAP2 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND SWAP1 PUSH1 0xFF PUSH1 0xA0 PUSH1 0x2 EXP DUP3 DIV DUP2 AND SWAP2 PUSH1 0xA8 PUSH1 0x2 EXP SWAP1 DIV AND DUP6 JUMP JUMPDEST PUSH2 0x1414 PUSH2 0x1717 JUMP JUMPDEST DUP1 PUSH2 0x141E DUP2 PUSH2 0x1C3F JUMP JUMPDEST POP PUSH1 0x9 SSTORE JUMP JUMPDEST PUSH2 0x142C PUSH2 0x1717 JUMP JUMPDEST PUSH1 0xC DUP1 SLOAD SWAP2 ISZERO ISZERO PUSH1 0xA8 PUSH1 0x2 EXP MUL PUSH22 0xFF000000000000000000000000000000000000000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x4 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x146C PUSH2 0x1EF8 JUMP JUMPDEST POP PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD DUP4 MSTORE PUSH1 0xD DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD PUSH1 0xA0 DUP2 ADD DUP5 MSTORE DUP2 SLOAD DUP2 MSTORE PUSH1 0x1 DUP3 ADD SLOAD SWAP3 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x2 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP3 AND SWAP4 DUP4 ADD DUP5 SWAP1 MSTORE PUSH1 0xFF PUSH1 0xA0 PUSH1 0x2 EXP DUP4 DIV DUP2 AND PUSH1 0x60 DUP6 ADD MSTORE PUSH1 0xA8 PUSH1 0x2 EXP SWAP1 SWAP3 DIV SWAP1 SWAP2 AND ISZERO ISZERO PUSH1 0x80 DUP4 ADD MSTORE SWAP1 SWAP2 SWAP1 DUP5 AND EQ PUSH2 0x1532 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xF PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F54585F4D49534D415443480000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP1 MLOAD SWAP2 POP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1546 PUSH2 0x1717 JUMP JUMPDEST DUP1 PUSH2 0x1550 DUP2 PUSH2 0x1C3F JUMP JUMPDEST POP PUSH1 0x4 SSTORE JUMP JUMPDEST PUSH2 0x155E PUSH2 0x1717 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x2 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x1597 PUSH2 0x1717 JUMP JUMPDEST DUP1 PUSH2 0x15A1 DUP2 PUSH2 0x1C3F JUMP JUMPDEST POP PUSH1 0x5 SSTORE JUMP JUMPDEST PUSH1 0xC SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH2 0x15C7 PUSH2 0x1717 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP2 SWAP1 SWAP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x10 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP2 ISZERO ISZERO SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0xE PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x160C PUSH2 0x1717 JUMP JUMPDEST PUSH1 0xC DUP1 SLOAD SWAP2 ISZERO ISZERO PUSH23 0x100000000000000000000000000000000000000000000 MUL PUSH23 0xFF00000000000000000000000000000000000000000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x1658 PUSH2 0x1717 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x16BE JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F4F574E4552000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x8 SLOAD DUP2 JUMP JUMPDEST PUSH1 0xC SLOAD PUSH1 0xA8 PUSH1 0x2 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0xC SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x1767 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1F46 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xBB34534C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP2 PUSH4 0xBB34534C SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x17CF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x17E3 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x17F9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT ISZERO PUSH2 0x185B JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F554E444552464C4F5700000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP SWAP1 SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 ISZERO ISZERO PUSH2 0x1874 JUMPI PUSH1 0x0 SWAP2 POP PUSH2 0x1537 JUMP JUMPDEST POP DUP3 DUP3 MUL DUP3 DUP5 DUP3 DUP2 ISZERO ISZERO PUSH2 0x1884 JUMPI INVALID JUMPDEST DIV EQ PUSH2 0x18DA JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 ADD DUP4 DUP2 LT ISZERO PUSH2 0x18DA JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0xC SLOAD PUSH1 0xA8 PUSH1 0x2 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO PUSH2 0x1767 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F44495341424C45440000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0xC SLOAD PUSH2 0x19BE SWAP1 PUSH2 0x100 SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER ADDRESS DUP5 PUSH2 0x1D82 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP3 DUP2 MSTORE SWAP1 MLOAD CALLER SWAP2 PUSH32 0xF5D7535A395393675F56D066384113754CA9CF4ABD37298469934E2E9C2EC902 SWAP2 SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 LOG2 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0x1A57 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ADDRESS EQ ISZERO PUSH2 0x1A57 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F414444524553535F49535F53454C4600000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x7472616E7366657228616464726573732C75696E743235362900000000000000 DUP2 MSTORE DUP2 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x19 ADD DUP2 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x64 SWAP1 SWAP3 ADD SWAP1 SWAP3 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE PUSH2 0x1B6D SWAP1 DUP5 SWAP1 PUSH2 0x1E6A JUMP JUMPDEST POP POP POP JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x10 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO ISZERO PUSH2 0x1767 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1F46 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0xC SLOAD PUSH23 0x100000000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO PUSH2 0x1767 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F44495341424C45440000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 GT PUSH2 0x1A57 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5A45524F5F56414C5545000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1CA1 PUSH2 0x8D6 JUMP JUMPDEST SWAP1 POP PUSH1 0x6 SLOAD DUP3 LT ISZERO DUP1 ISZERO PUSH2 0x1CB5 JUMPI POP DUP1 DUP3 GT ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x1D0B JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F414D4F554E545F544F4F5F4849474800000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x1D1B DUP2 DUP4 PUSH4 0xFFFFFFFF PUSH2 0x1801 AND JUMP JUMPDEST PUSH1 0x8 SSTORE NUMBER PUSH1 0xB SSTORE PUSH1 0xC SLOAD PUSH2 0x1D3E SWAP1 PUSH2 0x100 SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP5 DUP5 PUSH2 0x1ABB JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP4 DUP2 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND SWAP2 PUSH32 0xBFDC1F3C02B4715077E0BE4A262F967D53D4D0FCD76C6987FA2AD6E2257D7C8F SWAP2 SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 LOG2 POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x7472616E7366657246726F6D28616464726573732C616464726573732C75696E DUP2 MSTORE PUSH32 0x7432353629000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP3 MLOAD SWAP2 DUP3 SWAP1 SUB PUSH1 0x25 ADD DUP3 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP9 AND PUSH1 0x24 DUP6 ADD MSTORE DUP7 AND PUSH1 0x44 DUP5 ADD MSTORE PUSH1 0x64 DUP1 DUP5 ADD DUP7 SWAP1 MSTORE DUP5 MLOAD DUP1 DUP6 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x84 SWAP1 SWAP4 ADD SWAP1 SWAP4 MSTORE DUP2 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE PUSH2 0x1E64 SWAP1 DUP6 SWAP1 PUSH2 0x1E6A JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0x1E72 PUSH2 0x1F26 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE POP SWAP1 POP PUSH1 0x20 DUP2 DUP4 MLOAD PUSH1 0x20 DUP6 ADD PUSH1 0x0 DUP8 GAS CALL DUP1 ISZERO ISZERO PUSH2 0x1E9F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD ISZERO ISZERO PUSH2 0x1B6D JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5452414E534645525F4641494C454400000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xA0 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE SWAP2 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x60 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 SWAP1 PUSH1 0x20 DUP3 MUL DUP1 CODESIZE DUP4 CODECOPY POP SWAP2 SWAP3 SWAP2 POP POP JUMP STOP GASLIMIT MSTORE MSTORE 0x5f COINBASE NUMBER NUMBER GASLIMIT MSTORE8 MSTORE8 0x5f DIFFICULTY GASLIMIT 0x4e 0x49 GASLIMIT DIFFICULTY STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 JUMP SWAP1 LT 0xe6 0xee DUP13 0xeb PUSH8 0x6C8764611AF1B7A6 MSIZE CODESIZE CALLVALUE 0xee 0xc0 0xd3 PUSH4 0x6F2ACCC2 0x1e 0xb2 0xc3 0x27 0xb9 STOP 0x29 ", - "sourceMap": "835:15088:45:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8922:277;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;8922:277:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8922:277:45;;-1:-1:-1;8922:277:45;;-1:-1:-1;;;;;;;8922:277:45;;;3280:206:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3280:206:60;;;;;;;1510:28:45;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1510:28:45;;;;;;;;;;;;;;;;;;;;14037:347;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14037:347:45;;;;1748:34;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1748:34:45;;;;14524:377;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14524:377:45;;;;1409:23;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1409:23:45;;;;2562:41;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2562:41:45;-1:-1:-1;;;;;2562:41:45;;;;;;;;;;;;;;;;;;;;;;;1250:38:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1250:38:60;;;;10453:608:45;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;10453:608:45;;;;;;;;;;;9492:568;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;9492:568:45;;;;;;;;;2080:832:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2080:832:60;;;;1834:37:45;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1834:37:45;;;;1304:30;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1304:30:45;;;;1166:34;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1166:34:45;;;;;;;;;;;;;;;;;;;;;;;1077:194:71;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1077:194:71;-1:-1:-1;;;;;1077:194:71;;;;;;;;;;;;1165:37:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1165:37:60;;;;;;;;-1:-1:-1;;;;;1165:37:60;;;;;;;;;;;;;;11576:1619:45;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;11576:1619:45;;;;;-1:-1:-1;;;;;11576:1619:45;;;;;;;;;7193:228;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;7193:228:45;;;;;1672:31;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1672:31:45;;;;1159:176:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1159:176:66;;;;1085:33:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1085:33:60;;;;7749:160:45;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;7749:160:45;;;;;;;2452:63;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2452:63:45;;;-1:-1:-1;;;;;2452:63:45;;;;;157:20:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;157:20:66;;;;2148:35:45;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2148:35:45;;;;2257:51;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2257:51:45;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2257:51:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;7507:152;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;7507:152:45;;;;;8352:92;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;8352:92:45;;;;;;;1204:27;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1204:27:45;;;;13555:347;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;13555:347:45;;;-1:-1:-1;;;;;13555:347:45;;;;;6760:132;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;6760:132:45;;;;;2974:119:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2974:119:60;;;;6976:147:45;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;6976:147:45;;;;;1926:31;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1926:31:45;;;;;;;;;;;;;;;;;;;;;;;180:23:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;180:23:66;;;;8108:109:45;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;8108:109:45;-1:-1:-1;;;;;8108:109:45;;;;;;;;;2336:49;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2336:49:45;;;;;8587:90;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;8587:90:45;;;;;;;945:140:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;945:140:66;-1:-1:-1;;;;;945:140:66;;;;;1588:31:45;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1588:31:45;;;;2060:36;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2060:36:45;;;;2017:24;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2017:24:45;;;;8922:277;8982:40;575:12:66;:10;:12::i;:::-;9046:32:45;9056:21;9046:9;:32::i;:::-;8982:97;;9084:38;9102:19;9084:17;:38::i;:::-;9126:48;;;;;;1199:1;9126:48;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9126:27:45;;;;;9163:10;;9126:48;;;;;;;;;;;;;;;-1:-1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;9126:48:45;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9126:48:45;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9126:48:45;;;;9178:17;:15;:17::i;:::-;8922:277;;:::o;3280:206:60:-;575:12:66;:10;:12::i;:::-;3426:26:60;:56;;;;;-1:-1:-1;;;3426:56:60;-1:-1:-1;;3426:56:60;;;;;;;;;3280:206::o;1510:28:45:-;;;;:::o;14037:347::-;14089:7;14184:24;14211:82;14229:63;14275:16;;14230:39;14249:19;;14231:12;14230:18;;:39;;;;:::i;:::-;14229:45;:63;:45;:63;:::i;:::-;14211:13;;;:82;:17;:82;:::i;:::-;14184:109;;14320:12;;14301:16;:31;14297:56;;;14341:12;;14334:19;;;;14297:56;14364:16;14357:23;;14037:347;;;:::o;1748:34::-;;;;:::o;14524:377::-;14579:7;14680:27;14710:88;14731:66;14780:16;;14732:42;14751:22;;14733:12;14732:18;;:42;;;;:::i;14731:66::-;14710:16;;;:88;:20;:88;:::i;:::-;14680:118;;14828:15;;14806:19;:37;14802:65;;;14852:15;;14845:22;;;;1409:23;;;;:::o;2562:41::-;;;;;;;;;;;;;;;:::o;1250:38:60:-;;;-1:-1:-1;;;1250:38:60;;;;;:::o;10453:608:45:-;10610:24;6262:20;:18;:20::i;:::-;10637:21;:19;:21::i;:::-;10610:48;;10741:8;;10730:7;:19;;:50;;;;;10764:16;10753:7;:27;;10730:50;10722:82;;;;;;;-1:-1:-1;;;;;10722:82:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;10809:19;10820:7;10809:10;:19::i;:::-;10899:29;:16;10920:7;10899:29;:20;:29;:::i;:::-;10883:13;:45;10954:12;10932:19;:34;11002:55;;;;;;;;;;;;;;;;;;;;11039:3;;11012:10;;11002:55;;;;;;;;;10453:608;;;;;:::o;9492:568::-;9634:24;6262:20;:18;:20::i;:::-;9661:21;:19;:21::i;:::-;9634:48;;9729:8;;9718:7;:19;;:50;;;;;9752:16;9741:7;:27;;9718:50;9710:82;;;;;;;-1:-1:-1;;;;;9710:82:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;9797:19;9808:7;9797:10;:19::i;:::-;9887:29;:16;9908:7;9887:29;:20;:29;:::i;:::-;9871:13;:45;9942:12;9920:19;:34;10003:53;;;;;;;;;;;;-1:-1:-1;10003:53:45;;;;;;10040:3;;10013:10;;10003:53;;;;;;;;;9492:568;;;;:::o;2080:832:60:-;2281:29;2183:5;;-1:-1:-1;;;;;2183:5:60;2169:10;:19;;:50;;-1:-1:-1;2193:26:60;;-1:-1:-1;;;2193:26:60;;;;2192:27;2169:50;2161:80;;;;;;;-1:-1:-1;;;;;2161:80:60;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2161:80:60;;;;;;;;;;;;;;;2331:28;2341:17;2331:9;:28::i;:::-;2465:8;;2281:79;;-1:-1:-1;;;;;;2442:32:60;;;2465:8;;2442:32;;;;:61;;-1:-1:-1;;;;;;2478:25:60;;;;2442:61;2434:94;;;;;;;-1:-1:-1;;;;;2434:94:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;2628:40;;;;;;2650:17;2628:40;;;;;;2680:1;;-1:-1:-1;;;;;2628:21:60;;;;;:40;;;;;;;;;;;;;;;2680:1;2628:21;:40;;;5:2:-1;;;;30:1;27;20:12;5:2;2628:40:60;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2628:40:60;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2628:40:60;-1:-1:-1;;;;;2628:54:60;;;2620:87;;;;;-1:-1:-1;;;;;2620:87:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;2799:8;;;2784:12;:23;;-1:-1:-1;;;;;2799:8:60;;;-1:-1:-1;;2784:23:60;;;;;;;2886:22;;;;;;;;;;;2080:832::o;1834:37:45:-;;;;:::o;1304:30::-;;;;:::o;1166:34::-;1199:1;1166:34;:::o;1077:194:71:-;575:12:66;:10;:12::i;:::-;1190:6:71;475:23:72;489:8;475:13;:23::i;:::-;1211:3:71;475:23:72;489:8;475:13;:23::i;:::-;1224:3:71;782:18:72;791:8;782;:18::i;:::-;1233:34:71;1246:6;1254:3;1259:7;1233:12;:34::i;:::-;502:1:72;;591::66;1077:194:71;;;:::o;1165:37:60:-;;;-1:-1:-1;;;;;1165:37:60;;:::o;11576:1619:45:-;11996:23;6005:15;:13;:15::i;:::-;6516:19;:17;:19::i;:::-;11749:3;475:23:72;489:8;475:13;:23::i;:::-;11770:7:45;180:24:72;197:6;180:16;:24::i;:::-;11868:18:45;;;;:11;:18;;;;;;;;11887:10;11868:30;;;;;;;;;;11867:31;11859:64;;;;;-1:-1:-1;;;;;11859:64:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;11954:18;;;;:11;:18;;;;;;;;11973:10;11954:30;;;;;;;:37;;-1:-1:-1;;11954:37:45;11987:4;11954:37;;;12022:19;;;:12;:19;;;;;12120:16;;;;12022:19;;-1:-1:-1;;;;12120:16:45;;11954:37;12120:16;:21;12116:595;;;12148:6;;;:12;;-1:-1:-1;;12148:12:45;-1:-1:-1;;;;;12148:12:45;;;;;12165:20;;;-1:-1:-1;12190:18:45;;:36;;;12236:17;;12232:208;;12333:28;;;;:14;:28;;;;;;:33;12325:67;;;;;-1:-1:-1;;;;;12325:67:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;12398:28;;;;:14;:28;;;;;:36;;;12232:208;12116:595;;;12507:6;;;;-1:-1:-1;;;;;12507:13:45;;;:6;;:13;:38;;;;-1:-1:-1;12524:10:45;;:21;;12507:38;:79;;;;-1:-1:-1;12549:18:45;;;;:37;;12507:79;12499:107;;;;;;;-1:-1:-1;;;;;12499:107:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;12616:17;;12612:94;;12643:28;;;;:14;:28;;;;;;:37;;12635:71;;;;;-1:-1:-1;;;;;12635:71:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;12752:16;;;:18;;;;-1:-1:-1;;;12752:18:45;;;;;;;;;;;-1:-1:-1;;12752:18:45;;;;;;12780:72;;;;;;;;;;;;-1:-1:-1;;;;;12780:72:45;;;;;;;;;;;;;;;;;;;;12789:10;;12780:72;;;;;;;;;;12934:18;;12914:16;;;;12934:18;;;;-1:-1:-1;;;12914:16:45;;;;;;:38;12910:282;;12968:19;;;;:12;:19;;;;;:29;;;-1:-1:-1;;;12968:29:45;;;;12967:30;12959:67;;;;;-1:-1:-1;;;;;12959:67:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;13071:19;;;;:12;:19;;;;;;;;;:29;;:36;;-1:-1:-1;;13071:36:45;-1:-1:-1;;;13071:36:45;;;13118;;-1:-1:-1;;;;;13118:36:45;;;;;;;;;;;;;;;;;;;;;;;13160:27;13174:3;13179:7;13160:13;:27::i;:::-;502:1:72;6539::45;11576:1619;;;;;;:::o;7193:228::-;575:12:66;:10;:12::i;:::-;7266:9:45;180:24:72;197:6;180:16;:24::i;:::-;7322:12:45;;7309:9;:25;;:57;;;;;7351:15;;7338:9;:28;;7309:57;7301:91;;;;;;;-1:-1:-1;;;;;7301:91:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7397:8:45;:20;7193:228::o;1672:31::-;;;;:::o;1159:176:66:-;1219:8;;-1:-1:-1;;;;;1219:8:66;1205:10;:22;1197:52;;;;;-1:-1:-1;;;;;1197:52:66;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1197:52:66;;;;;;;;;;;;;;;1277:8;;;1270:5;;1258:28;;-1:-1:-1;;;;;1277:8:66;;;;1270:5;;;;1258:28;;;1298:8;;;;1290:16;;-1:-1:-1;;1290:16:66;;;-1:-1:-1;;;;;1298:8:66;;1290:16;;;;1310:21;;;1159:176::o;1085:33:60:-;;;-1:-1:-1;;;;;1085:33:60;;:::o;7749:160:45:-;575:12:66;:10;:12::i;:::-;7840:19:45;135:78:72;;180:24;197:6;180:16;:24::i;:::-;-1:-1:-1;7865:18:45;:40;;-1:-1:-1;;7865:40:45;;;;;;;;;;;;7749:160::o;2452:63::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;157:20:66:-;;;-1:-1:-1;;;;;157:20:66;;:::o;2148:35:45:-;;;;;;;;;:::o;2257:51::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2257:51:45;;;;-1:-1:-1;;;2257:51:45;;;;;-1:-1:-1;;;2257:51:45;;;;:::o;7507:152::-;575:12:66;:10;:12::i;:::-;7596:17:45;180:24:72;197:6;180:16;:24::i;:::-;-1:-1:-1;7619:16:45;:36;7507:152::o;8352:92::-;575:12:66;:10;:12::i;:::-;8413:17:45;:27;;;;;-1:-1:-1;;;8413:27:45;-1:-1:-1;;8413:27:45;;;;;;;;;8352:92::o;1204:27::-;;;;:::o;13555:347::-;13640:7;13693:30;;:::i;:::-;-1:-1:-1;13726:42:45;13739:28;;;:14;:28;;;;;;;;;13726:42;;:12;:42;;;;;;13693:75;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13693:75:45;;;;;;;;;;-1:-1:-1;;;13693:75:45;;;;;;;;-1:-1:-1;;;13693:75:45;;;;;;;;;;;;;;13826:22;;;;13818:50;;;;;-1:-1:-1;;;;;13818:50:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;13880:18;;;-1:-1:-1;13555:347:45;;;;;;:::o;6760:132::-;575:12:66;:10;:12::i;:::-;6841:13:45;180:24:72;197:6;180:16;:24::i;:::-;-1:-1:-1;6860:12:45;:28;6760:132::o;2974:119:60:-;575:12:66;:10;:12::i;:::-;3077::60;;3066:8;:23;;-1:-1:-1;;3066:23:60;-1:-1:-1;;;;;3077:12:60;;;3066:23;;;;;;2974:119::o;6976:147:45:-;575:12:66;:10;:12::i;:::-;7063:16:45;180:24:72;197:6;180:16;:24::i;:::-;-1:-1:-1;7085:15:45;:34;6976:147::o;1926:31::-;;;;;;:::o;180:23:66:-;;;-1:-1:-1;;;;;180:23:66;;:::o;8108:109:45:-;575:12:66;:10;:12::i;:::-;-1:-1:-1;;;;;8183:20:45;;;;;;;;:9;:20;;;;;:30;;-1:-1:-1;;8183:30:45;;;;;;;;;;8108:109::o;2336:49::-;;;;;;;;;;;;;:::o;8587:90::-;575:12:66;:10;:12::i;:::-;8647:16:45;:26;;;;;;;-1:-1:-1;;8647:26:45;;;;;;;;;8587:90::o;945:140:66:-;575:12;:10;:12::i;:::-;1033:5;;-1:-1:-1;;;;;1020:18:66;;;1033:5;;1020:18;;1012:45;;;;;-1:-1:-1;;;;;1012:45:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;1061:8;:20;;-1:-1:-1;;1061:20:66;-1:-1:-1;;;;;1061:20:66;;;;;;;;;;945:140::o;1588:31:45:-;;;;:::o;2060:36::-;;;-1:-1:-1;;;2060:36:45;;;;;:::o;2017:24::-;;;;;;-1:-1:-1;;;;;2017:24:45;;:::o;642:93:66:-;704:5;;-1:-1:-1;;;;;704:5:66;690:10;:19;682:49;;;;;-1:-1:-1;;;;;682:49:66;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;682:49:66;;;;;;;;;;;;;;;642:93::o;3647:122:60:-;3732:8;;:33;;;;;;;;;;;;;;3712:7;;-1:-1:-1;;;;;3732:8:60;;:18;;:33;;;;;;;;;;;;;;3712:7;3732:8;:33;;;5:2:-1;;;;30:1;27;20:12;5:2;3732:33:60;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3732:33:60;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3732:33:60;;3647:122;-1:-1:-1;;3647:122:60:o;613:129:69:-;673:7;694:8;;;;686:34;;;;;-1:-1:-1;;;;;686:34:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;731:7:69;;;613:129::o;924:197::-;984:7;;1023;;1019:21;;;1039:1;1032:8;;;;1019:21;-1:-1:-1;1057:7:69;;;1062:2;1057;:7;1076:6;;;;;;;;:12;1068:37;;;;;-1:-1:-1;;;;;1068:37:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;1116:1;924:197;-1:-1:-1;;;924:197:69:o;288:144::-;348:7;373;;;392;;;;384:32;;;;;-1:-1:-1;;;;;384:32:69;;;;;;;;;;;;;;;;;;;;;;;;;;;6337:94:45;6393:17;;-1:-1:-1;;;6393:17:45;;;;6385:42;;;;;;;-1:-1:-1;;;;;6385:42:45;;;;;;;;;;;;;;;;;;;;;;;;;;;15064:152;15130:5;;15113:59;;15130:5;;;-1:-1:-1;;;;;15130:5:45;15137:10;15157:4;15164:7;15113:16;:59::i;:::-;15181:31;;;;;;;;15192:10;;15181:31;;;;;;;;;;15064:152;:::o;553:117:72:-;-1:-1:-1;;;;;620:22:72;;;;612:54;;;;;-1:-1:-1;;;;;612:54:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;553:117;:::o;855:115::-;-1:-1:-1;;;;;917:25:72;;937:4;917:25;;909:57;;;;;-1:-1:-1;;;;;909:57:72;;;;;;;;;;;;;;;;;;;;;;;;;;;1214:173:70;248:38;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1323:59:70;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;1323:59:70;;;;;;;;25:18:-1;;61:17;;1323:59:70;182:15:-1;-1:-1;;1323:59:70;;;179:29:-1;;;;160:49;;;1307:76:70;;1315:6;;1307:7;:76::i;:::-;1214:173;;;:::o;6075:98:45:-;6136:10;6126:21;;;;:9;:21;;;;;;;;6118:51;;;;;;;-1:-1:-1;;;;;6118:51:45;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;6118:51:45;;;;;;;;;;;;;;6590:92;6645:16;;;;;;;6637:41;;;;;;;-1:-1:-1;;;;;6637:41:45;;;;;;;;;;;;;;;;;;;;;;;;;;;259:101:72;336:1;327:10;;319:37;;;;;-1:-1:-1;;;;;319:37:72;;;;;;;;;;;;;;;;;;;;;;;;;;;15401:520:45;15501:27;15531:24;:22;:24::i;:::-;15501:54;;15579:8;;15568:7;:19;;:53;;;;;15602:19;15591:7;:30;;15568:53;15560:85;;;;;;;-1:-1:-1;;;;;15560:85:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;15725:32;:19;15749:7;15725:32;:23;:32;:::i;:::-;15706:16;:51;15786:12;15761:22;:37;15860:5;;15847:33;;15860:5;;;-1:-1:-1;;;;;15860:5:45;15867:3;15872:7;15847:12;:33::i;:::-;15890:27;;;;;;;;-1:-1:-1;;;;;15890:27:45;;;;;;;;;;;;;15401:520;;;:::o;1740:206:70:-;351:50;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1870:71:70;;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;1870:71:70;;;;;;;25:18:-1;;61:17;;1870:71:70;182:15:-1;-1:-1;;1870:71:70;;;179:29:-1;;;;160:49;;;1854:88:70;;1862:6;;1854:7;:88::i;:::-;1740:206;;;;:::o;2255:557::-;2324:21;;:::i;:::-;:36;;;;;;;;;2357:1;2324:36;;;;;2687:2;2661:3;2580:5;2574:12;2495:2;2488:5;2484:14;2465:1;2430:6;2404:3;2394:317;2725:7;2718:15;2715:2;;;2750:1;2747;2740:12;2715:2;-1:-1:-1;2773:6:70;;:11;;2765:43;;;;;-1:-1:-1;;;;;2765:43:70;;;;;;;;;;;;;;;;;;;;;;;;;;;835:15088:45;;;;;;;;;-1:-1:-1;835:15088:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;-1:-1;835:15088:45;;;-1:-1:-1;;835:15088:45:o" - }, - "methodIdentifiers": { - "acceptOwnership()": "79ba5097", - "enableReporting(bool)": "ed1d73a6", - "enableXTransfers(bool)": "a5c670ca", - "getCurrentLockLimit()": "19967439", - "getCurrentReleaseLimit()": "1e04a593", - "getXTransferAmount(uint256,address)": "aafd6b76", - "limitIncPerBlock()": "72f43d19", - "maxLockLimit()": "a8c36a90", - "maxReleaseLimit()": "52e94ce3", - "minLimit()": "1fd8088d", - "minRequiredReports()": "ca27e011", - "newOwner()": "d4ee1d90", - "onlyOwnerCanUpdateRegistry()": "2fe8a6ad", - "owner()": "8da5cb5b", - "prevLockBlockNumber()": "1aff29eb", - "prevLockLimit()": "16c76c27", - "prevRegistry()": "61cd756e", - "prevReleaseBlockNumber()": "4b3e475c", - "prevReleaseLimit()": "f7385f76", - "registry()": "7b103999", - "reportTx(bytes32,uint256,address,uint256,uint256)": "6dc6a01b", - "reportedTxs(uint256,address)": "8544c52d", - "reporters(address)": "2cc1cd9e", - "reportingEnabled()": "9390701c", - "restoreRegistry()": "b4a176d3", - "restrictRegistryUpdate(bool)": "024c7ec7", - "setLimitIncPerBlock(uint256)": "a50c326c", - "setMaxLockLimit(uint256)": "af2b9618", - "setMaxReleaseLimit(uint256)": "bf28ece4", - "setMinLimit(uint256)": "6ec6d4a6", - "setMinRequiredReports(uint8)": "7b15879c", - "setReporter(address,bool)": "e1bb5133", - "token()": "fc0c546a", - "transactionIds(uint256)": "e36f8dc5", - "transactions(uint256)": "9ace38c2", - "transferOwnership(address)": "f2fde38b", - "updateRegistry()": "49d10b64", - "upgrade(address[])": "0183592b", - "version()": "54fd4d50", - "withdrawTokens(address,address,uint256)": "5e35359e", - "xTransfer(bytes32,bytes32,uint256)": "49282538", - "xTransfer(bytes32,bytes32,uint256,uint256)": "427c0374", - "xTransfersEnabled()": "fbb24692" - } - }, - "userdoc": { - "methods": {} - } - } - }, - "solidity/contracts/sovrynswapx/XTransferRerouter.sol": { - "XTransferRerouter": { - "abi": [ - { - "constant": false, - "inputs": [], - "name": "acceptOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "owner", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_enable", - "type": "bool" - } - ], - "name": "enableRerouting", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "newOwner", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_txId", - "type": "uint256" - }, - { - "name": "_blockchain", - "type": "bytes32" - }, - { - "name": "_to", - "type": "bytes32" - } - ], - "name": "rerouteTx", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "reroutingEnabled", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "name": "_reroutingEnabled", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "_txId", - "type": "uint256" - }, - { - "indexed": false, - "name": "_toBlockchain", - "type": "bytes32" - }, - { - "indexed": false, - "name": "_to", - "type": "bytes32" - } - ], - "name": "TxReroute", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "_prevOwner", - "type": "address" - }, - { - "indexed": true, - "name": "_newOwner", - "type": "address" - } - ], - "name": "OwnerUpdate", - "type": "event" - } - ], - "devdoc": { - "methods": { - "acceptOwnership()": { - "details": "used by a new owner to accept an ownership transfer" - }, - "enableRerouting(bool)": { - "details": "allows the owner to disable/enable rerouting", - "params": { - "_enable": "true to enable, false to disable" - } - }, - "rerouteTx(uint256,bytes32,bytes32)": { - "details": "allows a user to reroute a transaction to a new blockchain/target address", - "params": { - "_blockchain": "the new blockchain name", - "_to": "the new target address/account", - "_txId": "the original transaction id" - } - }, - "transferOwnership(address)": { - "details": "allows transferring the contract ownership the new owner still needs to accept the transfer can only be called by the contract owner", - "params": { - "_newOwner": "new contract owner" - } - } - } - }, - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "608060405234801561001057600080fd5b5060405160208061051b833981016040525160008054600160a060020a0319163317905560018054911515740100000000000000000000000000000000000000000260a060020a60ff02199092169190911790556104a8806100736000396000f3006080604052600436106100825763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166379ba509781146100875780638da5cb5b1461009e578063a3ebe71c146100cf578063d4ee1d90146100e9578063e3db16f7146100fe578063edd63c351461011c578063f2fde38b14610145575b600080fd5b34801561009357600080fd5b5061009c610166565b005b3480156100aa57600080fd5b506100b3610239565b60408051600160a060020a039092168252519081900360200190f35b3480156100db57600080fd5b5061009c6004351515610248565b3480156100f557600080fd5b506100b3610290565b34801561010a57600080fd5b5061009c60043560243560443561029f565b34801561012857600080fd5b506101316102e6565b604080519115158252519081900360200190f35b34801561015157600080fd5b5061009c600160a060020a0360043516610307565b600154600160a060020a031633146101c8576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b60015460008054604051600160a060020a0393841693909116917f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91a3600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b600054600160a060020a031681565b6102506103a4565b60018054911515740100000000000000000000000000000000000000000274ff000000000000000000000000000000000000000019909216919091179055565b600154600160a060020a031681565b6102a7610408565b6040805183815260208101839052815185927fb5c80f971fb729e469ffa874c60425659ce82cb4adcfba9731af35ef87b6e619928290030190a2505050565b60015474010000000000000000000000000000000000000000900460ff1681565b61030f6103a4565b600054600160a060020a0382811691161415610375576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f53414d455f4f574e4552000000000000000000000000000000000000604482015290519081900360640190fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600054600160a060020a03163314610406576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b565b60015474010000000000000000000000000000000000000000900460ff161515610406576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f44495341424c45440000000000000000000000000000000000000000604482015290519081900360640190fd00a165627a7a723058202be84313e0e97231d23ea0292a2be1ddf372aa1933ccbb2d64443ecbf191ccf70029", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP1 PUSH2 0x51B DUP4 CODECOPY DUP2 ADD PUSH1 0x40 MSTORE MLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND CALLER OR SWAP1 SSTORE PUSH1 0x1 DUP1 SLOAD SWAP2 ISZERO ISZERO PUSH21 0x10000000000000000000000000000000000000000 MUL PUSH1 0xA0 PUSH1 0x2 EXP PUSH1 0xFF MUL NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x4A8 DUP1 PUSH2 0x73 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x82 JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x79BA5097 DUP2 EQ PUSH2 0x87 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x9E JUMPI DUP1 PUSH4 0xA3EBE71C EQ PUSH2 0xCF JUMPI DUP1 PUSH4 0xD4EE1D90 EQ PUSH2 0xE9 JUMPI DUP1 PUSH4 0xE3DB16F7 EQ PUSH2 0xFE JUMPI DUP1 PUSH4 0xEDD63C35 EQ PUSH2 0x11C JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x145 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x93 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x9C PUSH2 0x166 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xAA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB3 PUSH2 0x239 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xDB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x9C PUSH1 0x4 CALLDATALOAD ISZERO ISZERO PUSH2 0x248 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xF5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB3 PUSH2 0x290 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x10A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x9C PUSH1 0x4 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH1 0x44 CALLDATALOAD PUSH2 0x29F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x128 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x131 PUSH2 0x2E6 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x151 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x9C PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x307 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x1C8 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND SWAP4 SWAP1 SWAP2 AND SWAP2 PUSH32 0x343765429AEA5A34B3FF6A3785A98A5ABB2597ACA87BFBB58632C173D585373A SWAP2 LOG3 PUSH1 0x1 DUP1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND OR SWAP1 SWAP2 SSTORE AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH2 0x250 PUSH2 0x3A4 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD SWAP2 ISZERO ISZERO PUSH21 0x10000000000000000000000000000000000000000 MUL PUSH21 0xFF0000000000000000000000000000000000000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH2 0x2A7 PUSH2 0x408 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP4 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP4 SWAP1 MSTORE DUP2 MLOAD DUP6 SWAP3 PUSH32 0xB5C80F971FB729E469FFA874C60425659CE82CB4ADCFBA9731AF35EF87B6E619 SWAP3 DUP3 SWAP1 SUB ADD SWAP1 LOG2 POP POP POP JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH2 0x30F PUSH2 0x3A4 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x375 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F4F574E4552000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x406 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO PUSH2 0x406 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F44495341424C45440000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 0x2b 0xe8 NUMBER SGT 0xe0 0xe9 PUSH19 0x31D23EA0292A2BE1DDF372AA1933CCBB2D6444 RETURNDATACOPY 0xcb CALL SWAP2 0xcc 0xf7 STOP 0x29 ", - "sourceMap": "56:1302:46:-;;;398:87;8:9:-1;5:2;;;30:1;27;20:12;5:2;398:87:46;;;;;;;;;;;;;488:5:66;:18;;-1:-1:-1;;;;;;488:18:66;496:10;488:18;;;;445:36:46;;;;;;;-1:-1:-1;;;;;;445:36:46;;;;;;;;;56:1302;;;;;;" - }, - "deployedBytecode": { - "linkReferences": {}, - "object": "6080604052600436106100825763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166379ba509781146100875780638da5cb5b1461009e578063a3ebe71c146100cf578063d4ee1d90146100e9578063e3db16f7146100fe578063edd63c351461011c578063f2fde38b14610145575b600080fd5b34801561009357600080fd5b5061009c610166565b005b3480156100aa57600080fd5b506100b3610239565b60408051600160a060020a039092168252519081900360200190f35b3480156100db57600080fd5b5061009c6004351515610248565b3480156100f557600080fd5b506100b3610290565b34801561010a57600080fd5b5061009c60043560243560443561029f565b34801561012857600080fd5b506101316102e6565b604080519115158252519081900360200190f35b34801561015157600080fd5b5061009c600160a060020a0360043516610307565b600154600160a060020a031633146101c8576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b60015460008054604051600160a060020a0393841693909116917f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91a3600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b600054600160a060020a031681565b6102506103a4565b60018054911515740100000000000000000000000000000000000000000274ff000000000000000000000000000000000000000019909216919091179055565b600154600160a060020a031681565b6102a7610408565b6040805183815260208101839052815185927fb5c80f971fb729e469ffa874c60425659ce82cb4adcfba9731af35ef87b6e619928290030190a2505050565b60015474010000000000000000000000000000000000000000900460ff1681565b61030f6103a4565b600054600160a060020a0382811691161415610375576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f53414d455f4f574e4552000000000000000000000000000000000000604482015290519081900360640190fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600054600160a060020a03163314610406576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b565b60015474010000000000000000000000000000000000000000900460ff161515610406576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f44495341424c45440000000000000000000000000000000000000000604482015290519081900360640190fd00a165627a7a723058202be84313e0e97231d23ea0292a2be1ddf372aa1933ccbb2d64443ecbf191ccf70029", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x82 JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x79BA5097 DUP2 EQ PUSH2 0x87 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x9E JUMPI DUP1 PUSH4 0xA3EBE71C EQ PUSH2 0xCF JUMPI DUP1 PUSH4 0xD4EE1D90 EQ PUSH2 0xE9 JUMPI DUP1 PUSH4 0xE3DB16F7 EQ PUSH2 0xFE JUMPI DUP1 PUSH4 0xEDD63C35 EQ PUSH2 0x11C JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x145 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x93 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x9C PUSH2 0x166 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xAA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB3 PUSH2 0x239 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xDB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x9C PUSH1 0x4 CALLDATALOAD ISZERO ISZERO PUSH2 0x248 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xF5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB3 PUSH2 0x290 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x10A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x9C PUSH1 0x4 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH1 0x44 CALLDATALOAD PUSH2 0x29F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x128 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x131 PUSH2 0x2E6 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x151 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x9C PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x307 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x1C8 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND SWAP4 SWAP1 SWAP2 AND SWAP2 PUSH32 0x343765429AEA5A34B3FF6A3785A98A5ABB2597ACA87BFBB58632C173D585373A SWAP2 LOG3 PUSH1 0x1 DUP1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND OR SWAP1 SWAP2 SSTORE AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH2 0x250 PUSH2 0x3A4 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD SWAP2 ISZERO ISZERO PUSH21 0x10000000000000000000000000000000000000000 MUL PUSH21 0xFF0000000000000000000000000000000000000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH2 0x2A7 PUSH2 0x408 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP4 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP4 SWAP1 MSTORE DUP2 MLOAD DUP6 SWAP3 PUSH32 0xB5C80F971FB729E469FFA874C60425659CE82CB4ADCFBA9731AF35EF87B6E619 SWAP3 DUP3 SWAP1 SUB ADD SWAP1 LOG2 POP POP POP JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH2 0x30F PUSH2 0x3A4 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x375 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F4F574E4552000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x406 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO PUSH2 0x406 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F44495341424C45440000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 0x2b 0xe8 NUMBER SGT 0xe0 0xe9 PUSH19 0x31D23EA0292A2BE1DDF372AA1933CCBB2D6444 RETURNDATACOPY 0xcb CALL SWAP2 0xcc 0xf7 STOP 0x29 ", - "sourceMap": "56:1302:46:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1159:176:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1159:176:66;;;;;;157:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;157:20:66;;;;;;;;-1:-1:-1;;;;;157:20:66;;;;;;;;;;;;;;612:90:46;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;612:90:46;;;;;;;180:23:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;180:23:66;;;;1208:148:46;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1208:148:46;;;;;;;;;95:28;;8:9:-1;5:2;;;30:1;27;20:12;5:2;95:28:46;;;;;;;;;;;;;;;;;;;;;;945:140:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;945:140:66;-1:-1:-1;;;;;945:140:66;;;;;1159:176;1219:8;;-1:-1:-1;;;;;1219:8:66;1205:10;:22;1197:52;;;;;-1:-1:-1;;;;;1197:52:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;1277:8;;;1270:5;;1258:28;;-1:-1:-1;;;;;1277:8:66;;;;1270:5;;;;1258:28;;;1298:8;;;;1290:16;;-1:-1:-1;;1290:16:66;;;-1:-1:-1;;;;;1298:8:66;;1290:16;;;;1310:21;;;1159:176::o;157:20::-;;;-1:-1:-1;;;;;157:20:66;;:::o;612:90:46:-;575:12:66;:10;:12::i;:::-;672:16:46;:26;;;;;;;-1:-1:-1;;672:26:46;;;;;;;;;612:90::o;180:23:66:-;;;-1:-1:-1;;;;;180:23:66;;:::o;1208:148:46:-;784:19;:17;:19::i;:::-;1318:34;;;;;;;;;;;;;;1328:5;;1318:34;;;;;;;;1208:148;;;:::o;95:28::-;;;;;;;;;:::o;945:140:66:-;575:12;:10;:12::i;:::-;1033:5;;-1:-1:-1;;;;;1020:18:66;;;1033:5;;1020:18;;1012:45;;;;;-1:-1:-1;;;;;1012:45:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;1061:8;:20;;-1:-1:-1;;1061:20:66;-1:-1:-1;;;;;1061:20:66;;;;;;;;;;945:140::o;642:93::-;704:5;;-1:-1:-1;;;;;704:5:66;690:10;:19;682:49;;;;;-1:-1:-1;;;;;682:49:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;642:93::o;858:92:46:-;913:16;;;;;;;905:41;;;;;;;-1:-1:-1;;;;;905:41:46;;;;;;;;;;;;;;;;;;;;;;;;;;" - }, - "methodIdentifiers": { - "acceptOwnership()": "79ba5097", - "enableRerouting(bool)": "a3ebe71c", - "newOwner()": "d4ee1d90", - "owner()": "8da5cb5b", - "rerouteTx(uint256,bytes32,bytes32)": "e3db16f7", - "reroutingEnabled()": "edd63c35", - "transferOwnership(address)": "f2fde38b" - } - }, - "userdoc": { - "methods": {} - } - } - }, - "solidity/contracts/sovrynswapx/interfaces/ISovrynSwapX.sol": { - "ISovrynSwapX": { - "abi": [ - { - "constant": false, - "inputs": [ - { - "name": "_toBlockchain", - "type": "bytes32" - }, - { - "name": "_to", - "type": "bytes32" - }, - { - "name": "_amount", - "type": "uint256" - }, - { - "name": "_id", - "type": "uint256" - } - ], - "name": "xTransfer", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_xTransferId", - "type": "uint256" - }, - { - "name": "_for", - "type": "address" - } - ], - "name": "getXTransferAmount", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "token", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - } - ], - "devdoc": { - "methods": {} - }, - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "deployedBytecode": { - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "methodIdentifiers": { - "getXTransferAmount(uint256,address)": "aafd6b76", - "token()": "fc0c546a", - "xTransfer(bytes32,bytes32,uint256,uint256)": "427c0374" - } - }, - "userdoc": { - "methods": {} - } - } - }, - "solidity/contracts/sovrynswapx/interfaces/ISovrynSwapXUpgrader.sol": { - "ISovrynSwapXUpgrader": { - "abi": [ - { - "constant": false, - "inputs": [ - { - "name": "_version", - "type": "uint16" - }, - { - "name": "_reporters", - "type": "address[]" - } - ], - "name": "upgrade", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - } - ], - "devdoc": { - "methods": {} - }, - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "deployedBytecode": { - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "methodIdentifiers": { - "upgrade(uint16,address[])": "546872cc" - } - }, - "userdoc": { - "methods": {} - } - } - }, - "solidity/contracts/token/ERC20Token.sol": { - "ERC20Token": { - "abi": [ - { - "constant": true, - "inputs": [], - "name": "name", - "outputs": [ - { - "name": "", - "type": "string" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_spender", - "type": "address" - }, - { - "name": "_value", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [ - { - "name": "success", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "totalSupply", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_from", - "type": "address" - }, - { - "name": "_to", - "type": "address" - }, - { - "name": "_value", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [ - { - "name": "success", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "decimals", - "outputs": [ - { - "name": "", - "type": "uint8" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "symbol", - "outputs": [ - { - "name": "", - "type": "string" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_to", - "type": "address" - }, - { - "name": "_value", - "type": "uint256" - } - ], - "name": "transfer", - "outputs": [ - { - "name": "success", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "", - "type": "address" - }, - { - "name": "", - "type": "address" - } - ], - "name": "allowance", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "name": "_name", - "type": "string" - }, - { - "name": "_symbol", - "type": "string" - }, - { - "name": "_decimals", - "type": "uint8" - }, - { - "name": "_totalSupply", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "_from", - "type": "address" - }, - { - "indexed": true, - "name": "_to", - "type": "address" - }, - { - "indexed": false, - "name": "_value", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "_owner", - "type": "address" - }, - { - "indexed": true, - "name": "_spender", - "type": "address" - }, - { - "indexed": false, - "name": "_value", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - } - ], - "devdoc": { - "methods": { - "approve(address,uint256)": { - "details": "allows another account/contract to transfers tokens on behalf of the caller throws on any error rather then return a false flag to minimize user errors\t * also, to minimize the risk of the approve/transferFrom attack vector (see https://docs.google.com/document/d/1YLPtQxZu1UAvO9cZ1O2RPXBbT0mooh4DYKjA_jp-RLM/), approve has to be called twice in 2 separate transactions - once to change the allowance to 0 and secondly to change it to the new allowance value", - "params": { - "_spender": "approved address", - "_value": "allowance amount" - }, - "return": "true if the approval was successful, false if it wasn't" - }, - "transfer(address,uint256)": { - "details": "transfers tokens to a given address throws on any error rather then return a false flag to minimize user errors", - "params": { - "_to": "target address", - "_value": "transfer amount" - }, - "return": "true if the transfer was successful, false if it wasn't" - }, - "transferFrom(address,address,uint256)": { - "details": "transfers tokens to a given address on behalf of another address throws on any error rather then return a false flag to minimize user errors", - "params": { - "_from": "source address", - "_to": "target address", - "_value": "transfer amount" - }, - "return": "true if the transfer was successful, false if it wasn't" - } - } - }, - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "608060405234801561001057600080fd5b506040516109d43803806109d4833981016040908152815160208301519183015160608401519184018051909493909301929091906000106100b357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f4552525f494e56414c49445f4e414d4500000000000000000000000000000000604482015290519081900360640190fd5b825160001061012357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f4552525f494e56414c49445f53594d424f4c0000000000000000000000000000604482015290519081900360640190fd5b835161013690600090602087019061017d565b50825161014a90600190602086019061017d565b506002805460ff191660ff9390931692909217909155600381905533600090815260046020526040902055506102189050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106101be57805160ff19168380011785556101eb565b828001600101855582156101eb579182015b828111156101eb5782518255916020019190600101906101d0565b506101f79291506101fb565b5090565b61021591905b808211156101f75760008155600101610201565b90565b6107ad806102276000396000f3006080604052600436106100985763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde03811461009d578063095ea7b31461012757806318160ddd1461015f57806323b872dd14610186578063313ce567146101b057806370a08231146101db57806395d89b41146101fc578063a9059cbb14610211578063dd62ed3e14610235575b600080fd5b3480156100a957600080fd5b506100b261025c565b6040805160208082528351818301528351919283929083019185019080838360005b838110156100ec5781810151838201526020016100d4565b50505050905090810190601f1680156101195780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561013357600080fd5b5061014b600160a060020a03600435166024356102ea565b604080519115158252519081900360200190f35b34801561016b57600080fd5b506101746103e2565b60408051918252519081900360200190f35b34801561019257600080fd5b5061014b600160a060020a03600435811690602435166044356103e8565b3480156101bc57600080fd5b506101c561050b565b6040805160ff9092168252519081900360200190f35b3480156101e757600080fd5b50610174600160a060020a0360043516610514565b34801561020857600080fd5b506100b2610526565b34801561021d57600080fd5b5061014b600160a060020a0360043516602435610580565b34801561024157600080fd5b50610174600160a060020a036004358116906024351661063d565b6000805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156102e25780601f106102b7576101008083540402835291602001916102e2565b820191906000526020600020905b8154815290600101906020018083116102c557829003601f168201915b505050505081565b6000826102f68161065a565b8215806103245750336000908152600560209081526040808320600160a060020a0388168452909152902054155b151561037a576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f494e56414c49445f414d4f554e540000000000000000000000000000604482015290519081900360640190fd5b336000818152600560209081526040808320600160a060020a03891680855290835292819020879055805187815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060019392505050565b60035481565b6000836103f48161065a565b836103fe8161065a565b600160a060020a0386166000908152600560209081526040808320338452909152902054610432908563ffffffff6106bd16565b600160a060020a038716600081815260056020908152604080832033845282528083209490945591815260049091522054610473908563ffffffff6106bd16565b600160a060020a0380881660009081526004602052604080822093909355908716815220546104a8908563ffffffff61071d16565b600160a060020a0380871660008181526004602090815260409182902094909455805188815290519193928a16927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a350600195945050505050565b60025460ff1681565b60046020526000908152604090205481565b60018054604080516020600284861615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156102e25780601f106102b7576101008083540402835291602001916102e2565b60008261058c8161065a565b336000908152600460205260409020546105ac908463ffffffff6106bd16565b3360009081526004602052604080822092909255600160a060020a038616815220546105de908463ffffffff61071d16565b600160a060020a0385166000818152600460209081526040918290209390935580518681529051919233927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35060019392505050565b600560209081526000928352604080842090915290825290205481565b600160a060020a03811615156106ba576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b50565b600081831015610717576040805160e560020a62461bcd02815260206004820152600d60248201527f4552525f554e444552464c4f5700000000000000000000000000000000000000604482015290519081900360640190fd5b50900390565b60008282018381101561077a576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b93925050505600a165627a7a72305820f983e55dd5027ec2e284b0b3f527b365b85a38996efb27c657a54a4a308d06d40029", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x9D4 CODESIZE SUB DUP1 PUSH2 0x9D4 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 SWAP1 DUP2 MSTORE DUP2 MLOAD PUSH1 0x20 DUP4 ADD MLOAD SWAP2 DUP4 ADD MLOAD PUSH1 0x60 DUP5 ADD MLOAD SWAP2 DUP5 ADD DUP1 MLOAD SWAP1 SWAP5 SWAP4 SWAP1 SWAP4 ADD SWAP3 SWAP1 SWAP2 SWAP1 PUSH1 0x0 LT PUSH2 0xB3 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4E414D4500000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP3 MLOAD PUSH1 0x0 LT PUSH2 0x123 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F53594D424F4C0000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP4 MLOAD PUSH2 0x136 SWAP1 PUSH1 0x0 SWAP1 PUSH1 0x20 DUP8 ADD SWAP1 PUSH2 0x17D JUMP JUMPDEST POP DUP3 MLOAD PUSH2 0x14A SWAP1 PUSH1 0x1 SWAP1 PUSH1 0x20 DUP7 ADD SWAP1 PUSH2 0x17D JUMP JUMPDEST POP PUSH1 0x2 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0xFF SWAP4 SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 SSTORE PUSH1 0x3 DUP2 SWAP1 SSTORE CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE POP PUSH2 0x218 SWAP1 POP JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH1 0x1F LT PUSH2 0x1BE JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH2 0x1EB JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x1EB JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x1EB JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x1D0 JUMP JUMPDEST POP PUSH2 0x1F7 SWAP3 SWAP2 POP PUSH2 0x1FB JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH2 0x215 SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x1F7 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x201 JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH2 0x7AD DUP1 PUSH2 0x227 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x98 JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x6FDDE03 DUP2 EQ PUSH2 0x9D JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x127 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x15F JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x186 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x1B0 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x1DB JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x1FC JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x211 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x235 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB2 PUSH2 0x25C JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP4 MLOAD DUP2 DUP4 ADD MSTORE DUP4 MLOAD SWAP2 SWAP3 DUP4 SWAP3 SWAP1 DUP4 ADD SWAP2 DUP6 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xEC JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0xD4 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x119 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x133 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x14B PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x2EA JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x16B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x174 PUSH2 0x3E2 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x192 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x14B PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x3E8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1BC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1C5 PUSH2 0x50B JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1E7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x174 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x514 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x208 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB2 PUSH2 0x526 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x21D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x14B PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x580 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x241 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x174 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH2 0x63D JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x2 PUSH1 0x1 DUP6 AND ISZERO PUSH2 0x100 MUL PUSH1 0x0 NOT ADD SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 DIV PUSH1 0x1F DUP2 ADD DUP5 SWAP1 DIV DUP5 MUL DUP3 ADD DUP5 ADD SWAP1 SWAP3 MSTORE DUP2 DUP2 MSTORE SWAP3 SWAP2 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x2E2 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x2B7 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x2E2 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x2C5 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x2F6 DUP2 PUSH2 0x65A JUMP JUMPDEST DUP3 ISZERO DUP1 PUSH2 0x324 JUMPI POP CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x37A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F414D4F554E540000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST CALLER PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP10 AND DUP1 DUP6 MSTORE SWAP1 DUP4 MSTORE SWAP3 DUP2 SWAP1 KECCAK256 DUP8 SWAP1 SSTORE DUP1 MLOAD DUP8 DUP2 MSTORE SWAP1 MLOAD SWAP3 SWAP4 SWAP3 PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP3 SWAP2 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 DUP4 PUSH2 0x3F4 DUP2 PUSH2 0x65A JUMP JUMPDEST DUP4 PUSH2 0x3FE DUP2 PUSH2 0x65A JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH2 0x432 SWAP1 DUP6 PUSH4 0xFFFFFFFF PUSH2 0x6BD AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE DUP3 MSTORE DUP1 DUP4 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE SWAP2 DUP2 MSTORE PUSH1 0x4 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD PUSH2 0x473 SWAP1 DUP6 PUSH4 0xFFFFFFFF PUSH2 0x6BD AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE SWAP1 DUP8 AND DUP2 MSTORE KECCAK256 SLOAD PUSH2 0x4A8 SWAP1 DUP6 PUSH4 0xFFFFFFFF PUSH2 0x71D AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP8 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE DUP1 MLOAD DUP9 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP4 SWAP3 DUP11 AND SWAP3 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP3 SWAP2 DUP3 SWAP1 SUB ADD SWAP1 LOG3 POP PUSH1 0x1 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x2 DUP5 DUP7 AND ISZERO PUSH2 0x100 MUL PUSH1 0x0 NOT ADD SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 DIV PUSH1 0x1F DUP2 ADD DUP5 SWAP1 DIV DUP5 MUL DUP3 ADD DUP5 ADD SWAP1 SWAP3 MSTORE DUP2 DUP2 MSTORE SWAP3 SWAP2 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x2E2 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x2B7 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x2E2 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x58C DUP2 PUSH2 0x65A JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x5AC SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0x6BD AND JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP3 SWAP1 SWAP3 SSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND DUP2 MSTORE KECCAK256 SLOAD PUSH2 0x5DE SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0x71D AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE DUP1 MLOAD DUP7 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP3 CALLER SWAP3 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0x6BA JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT ISZERO PUSH2 0x717 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F554E444552464C4F5700000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP SWAP1 SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 ADD DUP4 DUP2 LT ISZERO PUSH2 0x77A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 0xf9 DUP4 0xe5 0x5d 0xd5 MUL PUSH31 0xC2E284B0B3F527B365B85A38996EFB27C657A54A4A308D06D4002900000000 ", - "sourceMap": "181:3842:49:-;;;1313:370;8:9:-1;5:2;;;30:1;27;20:12;5:2;1313:370:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1444:19;;1313:370;;;;;;;;;;1466:1;-1:-1:-1;1436:52:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1500:21;;1524:1;-1:-1:-1;1492:56:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1553:12;;;;:4;;:12;;;;;:::i;:::-;-1:-1:-1;1569:16:49;;;;:6;;:16;;;;;:::i;:::-;-1:-1:-1;1589:8:49;:20;;-1:-1:-1;;1589:20:49;;;;;;;;;;;;;1613:11;:26;;;1653:10;-1:-1:-1;1643:21:49;;;:9;:21;;;;;:36;-1:-1:-1;181:3842:49;;-1:-1:-1;181:3842:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;181:3842:49;;;-1:-1:-1;181:3842:49;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;" - }, - "deployedBytecode": { - "linkReferences": {}, - "object": "6080604052600436106100985763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde03811461009d578063095ea7b31461012757806318160ddd1461015f57806323b872dd14610186578063313ce567146101b057806370a08231146101db57806395d89b41146101fc578063a9059cbb14610211578063dd62ed3e14610235575b600080fd5b3480156100a957600080fd5b506100b261025c565b6040805160208082528351818301528351919283929083019185019080838360005b838110156100ec5781810151838201526020016100d4565b50505050905090810190601f1680156101195780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561013357600080fd5b5061014b600160a060020a03600435166024356102ea565b604080519115158252519081900360200190f35b34801561016b57600080fd5b506101746103e2565b60408051918252519081900360200190f35b34801561019257600080fd5b5061014b600160a060020a03600435811690602435166044356103e8565b3480156101bc57600080fd5b506101c561050b565b6040805160ff9092168252519081900360200190f35b3480156101e757600080fd5b50610174600160a060020a0360043516610514565b34801561020857600080fd5b506100b2610526565b34801561021d57600080fd5b5061014b600160a060020a0360043516602435610580565b34801561024157600080fd5b50610174600160a060020a036004358116906024351661063d565b6000805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156102e25780601f106102b7576101008083540402835291602001916102e2565b820191906000526020600020905b8154815290600101906020018083116102c557829003601f168201915b505050505081565b6000826102f68161065a565b8215806103245750336000908152600560209081526040808320600160a060020a0388168452909152902054155b151561037a576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f494e56414c49445f414d4f554e540000000000000000000000000000604482015290519081900360640190fd5b336000818152600560209081526040808320600160a060020a03891680855290835292819020879055805187815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060019392505050565b60035481565b6000836103f48161065a565b836103fe8161065a565b600160a060020a0386166000908152600560209081526040808320338452909152902054610432908563ffffffff6106bd16565b600160a060020a038716600081815260056020908152604080832033845282528083209490945591815260049091522054610473908563ffffffff6106bd16565b600160a060020a0380881660009081526004602052604080822093909355908716815220546104a8908563ffffffff61071d16565b600160a060020a0380871660008181526004602090815260409182902094909455805188815290519193928a16927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a350600195945050505050565b60025460ff1681565b60046020526000908152604090205481565b60018054604080516020600284861615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156102e25780601f106102b7576101008083540402835291602001916102e2565b60008261058c8161065a565b336000908152600460205260409020546105ac908463ffffffff6106bd16565b3360009081526004602052604080822092909255600160a060020a038616815220546105de908463ffffffff61071d16565b600160a060020a0385166000818152600460209081526040918290209390935580518681529051919233927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35060019392505050565b600560209081526000928352604080842090915290825290205481565b600160a060020a03811615156106ba576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b50565b600081831015610717576040805160e560020a62461bcd02815260206004820152600d60248201527f4552525f554e444552464c4f5700000000000000000000000000000000000000604482015290519081900360640190fd5b50900390565b60008282018381101561077a576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b93925050505600a165627a7a72305820f983e55dd5027ec2e284b0b3f527b365b85a38996efb27c657a54a4a308d06d40029", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x98 JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x6FDDE03 DUP2 EQ PUSH2 0x9D JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x127 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x15F JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x186 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x1B0 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x1DB JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x1FC JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x211 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x235 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB2 PUSH2 0x25C JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP4 MLOAD DUP2 DUP4 ADD MSTORE DUP4 MLOAD SWAP2 SWAP3 DUP4 SWAP3 SWAP1 DUP4 ADD SWAP2 DUP6 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xEC JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0xD4 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x119 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x133 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x14B PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x2EA JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x16B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x174 PUSH2 0x3E2 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x192 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x14B PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x3E8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1BC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1C5 PUSH2 0x50B JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1E7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x174 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x514 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x208 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB2 PUSH2 0x526 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x21D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x14B PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x580 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x241 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x174 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH2 0x63D JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x2 PUSH1 0x1 DUP6 AND ISZERO PUSH2 0x100 MUL PUSH1 0x0 NOT ADD SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 DIV PUSH1 0x1F DUP2 ADD DUP5 SWAP1 DIV DUP5 MUL DUP3 ADD DUP5 ADD SWAP1 SWAP3 MSTORE DUP2 DUP2 MSTORE SWAP3 SWAP2 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x2E2 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x2B7 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x2E2 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x2C5 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x2F6 DUP2 PUSH2 0x65A JUMP JUMPDEST DUP3 ISZERO DUP1 PUSH2 0x324 JUMPI POP CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x37A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F414D4F554E540000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST CALLER PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP10 AND DUP1 DUP6 MSTORE SWAP1 DUP4 MSTORE SWAP3 DUP2 SWAP1 KECCAK256 DUP8 SWAP1 SSTORE DUP1 MLOAD DUP8 DUP2 MSTORE SWAP1 MLOAD SWAP3 SWAP4 SWAP3 PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP3 SWAP2 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 DUP4 PUSH2 0x3F4 DUP2 PUSH2 0x65A JUMP JUMPDEST DUP4 PUSH2 0x3FE DUP2 PUSH2 0x65A JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH2 0x432 SWAP1 DUP6 PUSH4 0xFFFFFFFF PUSH2 0x6BD AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE DUP3 MSTORE DUP1 DUP4 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE SWAP2 DUP2 MSTORE PUSH1 0x4 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD PUSH2 0x473 SWAP1 DUP6 PUSH4 0xFFFFFFFF PUSH2 0x6BD AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE SWAP1 DUP8 AND DUP2 MSTORE KECCAK256 SLOAD PUSH2 0x4A8 SWAP1 DUP6 PUSH4 0xFFFFFFFF PUSH2 0x71D AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP8 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE DUP1 MLOAD DUP9 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP4 SWAP3 DUP11 AND SWAP3 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP3 SWAP2 DUP3 SWAP1 SUB ADD SWAP1 LOG3 POP PUSH1 0x1 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x2 DUP5 DUP7 AND ISZERO PUSH2 0x100 MUL PUSH1 0x0 NOT ADD SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 DIV PUSH1 0x1F DUP2 ADD DUP5 SWAP1 DIV DUP5 MUL DUP3 ADD DUP5 ADD SWAP1 SWAP3 MSTORE DUP2 DUP2 MSTORE SWAP3 SWAP2 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x2E2 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x2B7 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x2E2 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x58C DUP2 PUSH2 0x65A JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x5AC SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0x6BD AND JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP3 SWAP1 SWAP3 SSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND DUP2 MSTORE KECCAK256 SLOAD PUSH2 0x5DE SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0x71D AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE DUP1 MLOAD DUP7 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP3 CALLER SWAP3 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0x6BA JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT ISZERO PUSH2 0x717 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F554E444552464C4F5700000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP SWAP1 SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 ADD DUP4 DUP2 LT ISZERO PUSH2 0x77A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 0xf9 DUP4 0xe5 0x5d 0xd5 MUL PUSH31 0xC2E284B0B3F527B365B85A38996EFB27C657A54A4A308D06D4002900000000 ", - "sourceMap": "181:3842:49:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;256:18;;8:9:-1;5:2;;;30:1;27;20:12;5:2;256:18:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;256:18:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3601:420;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3601:420:49;-1:-1:-1;;;;;3601:420:49;;;;;;;;;;;;;;;;;;;;;;;;;324:26;;8:9:-1;5:2;;;30:1;27;20:12;5:2;324:26:49;;;;;;;;;;;;;;;;;;;;2581:372;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2581:372:49;-1:-1:-1;;;;;2581:372:49;;;;;;;;;;;;300:21;;8:9:-1;5:2;;;30:1;27;20:12;5:2;300:21:49;;;;;;;;;;;;;;;;;;;;;;;353:44;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;353:44:49;-1:-1:-1;;;;;353:44:49;;;;;277:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;277:20:49;;;;1968:264;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1968:264:49;-1:-1:-1;;;;;1968:264:49;;;;;;;400:64;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;400:64:49;-1:-1:-1;;;;;400:64:49;;;;;;;;;;256:18;;;;;;;;;;;;;;;-1:-1:-1;;256:18:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;3601:420::-;3691:12;3672:8;475:23:72;489:8;475:13;:23::i;:::-;3836:11:49;;;:51;;-1:-1:-1;3861:10:49;3851:21;;;;:9;:21;;;;;;;;-1:-1:-1;;;;;3851:31:49;;;;;;;;;;:36;3836:51;3828:82;;;;;;;-1:-1:-1;;;;;3828:82:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;3925:10;3915:21;;;;:9;:21;;;;;;;;-1:-1:-1;;;;;3915:31:49;;;;;;;;;;;;:40;;;3964:38;;;;;;;3915:31;;3925:10;3964:38;;;;;;;;;;;-1:-1:-1;4013:4:49;;3601:420;-1:-1:-1;;;3601:420:49:o;324:26::-;;;;:::o;2581:372::-;2710:12;2676:5;475:23:72;489:8;475:13;:23::i;:::-;2696:3:49;475:23:72;489:8;475:13;:23::i;:::-;-1:-1:-1;;;;;2759:16:49;;;;;;:9;:16;;;;;;;;2776:10;2759:28;;;;;;;;:40;;2792:6;2759:40;:32;:40;:::i;:::-;-1:-1:-1;;;;;2728:16:49;;;;;;:9;:16;;;;;;;;2745:10;2728:28;;;;;;;:71;;;;2822:16;;;:9;:16;;;;;:28;;2843:6;2822:28;:20;:28;:::i;:::-;-1:-1:-1;;;;;2803:16:49;;;;;;;:9;:16;;;;;;:47;;;;2871:14;;;;;;;:26;;2890:6;2871:26;:18;:26;:::i;:::-;-1:-1:-1;;;;;2854:14:49;;;;;;;:9;:14;;;;;;;;;:43;;;;2906:28;;;;;;;2854:14;;2906:28;;;;;;;;;;;;;-1:-1:-1;2945:4:49;;2581:372;-1:-1:-1;;;;;2581:372:49:o;300:21::-;;;;;;:::o;353:44::-;;;;;;;;;;;;;:::o;277:20::-;;;;;;;;;;;;;;;-1:-1:-1;;277:20:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1968:264;2049:12;2035:3;475:23:72;489:8;475:13;:23::i;:::-;2101:10:49;2091:21;;;;:9;:21;;;;;;:33;;2117:6;2091:33;:25;:33;:::i;:::-;2077:10;2067:21;;;;:9;:21;;;;;;:57;;;;-1:-1:-1;;;;;2145:14:49;;;;;;:26;;2164:6;2145:26;:18;:26;:::i;:::-;-1:-1:-1;;;;;2128:14:49;;;;;;:9;:14;;;;;;;;;:43;;;;2180:33;;;;;;;2128:14;;2189:10;;2180:33;;;;;;;;;;-1:-1:-1;2224:4:49;;1968:264;-1:-1:-1;;;1968:264:49:o;400:64::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;553:117:72:-;-1:-1:-1;;;;;620:22:72;;;;612:54;;;;;-1:-1:-1;;;;;612:54:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;553:117;:::o;613:129:69:-;673:7;694:8;;;;686:34;;;;;-1:-1:-1;;;;;686:34:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;731:7:69;;;613:129::o;288:144::-;348:7;373;;;392;;;;384:32;;;;;-1:-1:-1;;;;;384:32:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;427:1;288:144;-1:-1:-1;;;288:144:69:o" - }, - "methodIdentifiers": { - "allowance(address,address)": "dd62ed3e", - "approve(address,uint256)": "095ea7b3", - "balanceOf(address)": "70a08231", - "decimals()": "313ce567", - "name()": "06fdde03", - "symbol()": "95d89b41", - "totalSupply()": "18160ddd", - "transfer(address,uint256)": "a9059cbb", - "transferFrom(address,address,uint256)": "23b872dd" - } - }, - "userdoc": { - "methods": {} - } - } - }, - "solidity/contracts/token/EtherToken.sol": { - "EtherToken": { - "abi": [ - { - "constant": true, - "inputs": [], - "name": "name", - "outputs": [ - { - "name": "", - "type": "string" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_spender", - "type": "address" - }, - { - "name": "_value", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [ - { - "name": "success", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "totalSupply", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_to", - "type": "address" - }, - { - "name": "_amount", - "type": "uint256" - } - ], - "name": "withdrawTo", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_from", - "type": "address" - }, - { - "name": "_to", - "type": "address" - }, - { - "name": "_value", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [ - { - "name": "success", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_amount", - "type": "uint256" - } - ], - "name": "withdraw", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "decimals", - "outputs": [ - { - "name": "", - "type": "uint8" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "symbol", - "outputs": [ - { - "name": "", - "type": "string" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_to", - "type": "address" - }, - { - "name": "_value", - "type": "uint256" - } - ], - "name": "transfer", - "outputs": [ - { - "name": "success", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_to", - "type": "address" - } - ], - "name": "depositTo", - "outputs": [], - "payable": true, - "stateMutability": "payable", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "deposit", - "outputs": [], - "payable": true, - "stateMutability": "payable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "", - "type": "address" - }, - { - "name": "", - "type": "address" - } - ], - "name": "allowance", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "name": "_name", - "type": "string" - }, - { - "name": "_symbol", - "type": "string" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "payable": true, - "stateMutability": "payable", - "type": "fallback" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "_amount", - "type": "uint256" - } - ], - "name": "Issuance", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "_amount", - "type": "uint256" - } - ], - "name": "Destruction", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "_from", - "type": "address" - }, - { - "indexed": true, - "name": "_to", - "type": "address" - }, - { - "indexed": false, - "name": "_value", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "_owner", - "type": "address" - }, - { - "indexed": true, - "name": "_spender", - "type": "address" - }, - { - "indexed": false, - "name": "_value", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - } - ], - "devdoc": { - "methods": { - "approve(address,uint256)": { - "details": "allows another account/contract to transfers tokens on behalf of the caller throws on any error rather then return a false flag to minimize user errors\t * also, to minimize the risk of the approve/transferFrom attack vector (see https://docs.google.com/document/d/1YLPtQxZu1UAvO9cZ1O2RPXBbT0mooh4DYKjA_jp-RLM/), approve has to be called twice in 2 separate transactions - once to change the allowance to 0 and secondly to change it to the new allowance value", - "params": { - "_spender": "approved address", - "_value": "allowance amount" - }, - "return": "true if the approval was successful, false if it wasn't" - }, - "deposit()": { - "details": "deposit ether on behalf of the sender" - }, - "depositTo(address)": { - "details": "deposit ether to be entitled for a given account", - "params": { - "_to": "account to be entitled for the ether" - } - }, - "transfer(address,uint256)": { - "details": "send coins throws on any error rather then return a false flag to minimize user errors", - "params": { - "_to": "target address", - "_value": "transfer amount" - }, - "return": "true if the transfer was successful, false if it wasn't" - }, - "transferFrom(address,address,uint256)": { - "details": "an account/contract attempts to get the coins throws on any error rather then return a false flag to minimize user errors", - "params": { - "_from": "source address", - "_to": "target address", - "_value": "transfer amount" - }, - "return": "true if the transfer was successful, false if it wasn't" - }, - "withdraw(uint256)": { - "details": "withdraw ether to the sender's account", - "params": { - "_amount": "amount of ether to withdraw" - } - }, - "withdrawTo(address,uint256)": { - "details": "withdraw ether entitled by the sender to a given account", - "params": { - "_amount": "amount of ether to withdraw", - "_to": "account to receive the ether" - } - } - } - }, - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "608060405234801561001057600080fd5b50604051610cc1380380610cc183398101604052805160208201519082018051909291909101908290829060129060009081106100ae57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f4552525f494e56414c49445f4e414d4500000000000000000000000000000000604482015290519081900360640190fd5b825160001061011e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f4552525f494e56414c49445f53594d424f4c0000000000000000000000000000604482015290519081900360640190fd5b835161013190600090602087019061017a565b50825161014590600190602086019061017a565b506002805460ff191660ff93909316929092179091556003819055336000908152600460205260409020555061021592505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106101bb57805160ff19168380011785556101e8565b828001600101855582156101e8579182015b828111156101e85782518255916020019190600101906101cd565b506101f49291506101f8565b5090565b61021291905b808211156101f457600081556001016101fe565b90565b610a9d806102246000396000f3006080604052600436106100c45763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde0381146100ce578063095ea7b31461015857806318160ddd14610190578063205c2878146101b757806323b872dd146101db5780632e1a7d4d14610205578063313ce5671461021d57806370a082311461024857806395d89b4114610269578063a9059cbb1461027e578063b760faf9146102a2578063d0e30db0146100c4578063dd62ed3e146102b6575b6100cc6102dd565b005b3480156100da57600080fd5b506100e36102e8565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561011d578181015183820152602001610105565b50505050905090810190601f16801561014a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561016457600080fd5b5061017c600160a060020a0360043516602435610376565b604080519115158252519081900360200190f35b34801561019c57600080fd5b506101a561046e565b60408051918252519081900360200190f35b3480156101c357600080fd5b506100cc600160a060020a0360043516602435610474565b3480156101e757600080fd5b5061017c600160a060020a0360043581169060243516604435610558565b34801561021157600080fd5b506100cc600435610582565b34801561022957600080fd5b5061023261058f565b6040805160ff9092168252519081900360200190f35b34801561025457600080fd5b506101a5600160a060020a0360043516610598565b34801561027557600080fd5b506100e36105aa565b34801561028a57600080fd5b5061017c600160a060020a0360043516602435610604565b6100cc600160a060020a036004351661062c565b3480156102c257600080fd5b506101a5600160a060020a03600435811690602435166106f3565b6102e63361062c565b565b6000805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561036e5780601f106103435761010080835404028352916020019161036e565b820191906000526020600020905b81548152906001019060200180831161035157829003601f168201915b505050505081565b60008261038281610710565b8215806103b05750336000908152600560209081526040808320600160a060020a0388168452909152902054155b1515610406576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f494e56414c49445f414d4f554e540000000000000000000000000000604482015290519081900360640190fd5b336000818152600560209081526040808320600160a060020a03891680855290835292819020879055805187815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060019392505050565b60035481565b8161047e81610770565b3360009081526004602052604090205461049e908363ffffffff6107d116565b336000908152600460205260409020556003546104c1908363ffffffff6107d116565b600355604051600160a060020a0384169083156108fc029084906000818181858888f193505050501580156104fa573d6000803e3d6000fd5b5060408051838152905130913391600080516020610a528339815191529181900360200190a36040805183815290517f9a1b418bc061a5d80270261562e6986a35d995f8051145f277be16103abd34539181900360200190a1505050565b60008261056481610770565b61056f858585610831565b151561057757fe5b506001949350505050565b61058c3382610474565b50565b60025460ff1681565b60046020526000908152604090205481565b60018054604080516020600284861615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561036e5780601f106103435761010080835404028352916020019161036e565b60008261061081610770565b61061a8484610942565b151561062257fe5b5060019392505050565b8061063681610770565b600160a060020a03821660009081526004602052604090205461065f903463ffffffff6109ed16565b600160a060020a03831660009081526004602052604090205560035461068b903463ffffffff6109ed16565b6003556040805134815290517f9386c90217c323f58030f9dadcbc938f807a940f4ff41cd4cead9562f5da7dc39181900360200190a1604080513481529051600160a060020a038416913091600080516020610a528339815191529181900360200190a35050565b600560209081526000928352604080842090915290825290205481565b600160a060020a038116151561058c576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b600160a060020a03811630141561058c576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f414444524553535f49535f53454c4600000000000000000000000000604482015290519081900360640190fd5b60008183101561082b576040805160e560020a62461bcd02815260206004820152600d60248201527f4552525f554e444552464c4f5700000000000000000000000000000000000000604482015290519081900360640190fd5b50900390565b60008361083d81610710565b8361084781610710565b600160a060020a038616600090815260056020908152604080832033845290915290205461087b908563ffffffff6107d116565b600160a060020a0387166000818152600560209081526040808320338452825280832094909455918152600490915220546108bc908563ffffffff6107d116565b600160a060020a0380881660009081526004602052604080822093909355908716815220546108f1908563ffffffff6109ed16565b600160a060020a0380871660008181526004602090815260409182902094909455805188815290519193928a1692600080516020610a5283398151915292918290030190a350600195945050505050565b60008261094e81610710565b3360009081526004602052604090205461096e908463ffffffff6107d116565b3360009081526004602052604080822092909255600160a060020a038616815220546109a0908463ffffffff6109ed16565b600160a060020a038516600081815260046020908152604091829020939093558051868152905191923392600080516020610a528339815191529281900390910190a35060019392505050565b600082820183811015610a4a576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b93925050505600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a723058209b194fe681270843ec21d4151855ee409d3da2083b0350689914f351617de1240029", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0xCC1 CODESIZE SUB DUP1 PUSH2 0xCC1 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 MSTORE DUP1 MLOAD PUSH1 0x20 DUP3 ADD MLOAD SWAP1 DUP3 ADD DUP1 MLOAD SWAP1 SWAP3 SWAP2 SWAP1 SWAP2 ADD SWAP1 DUP3 SWAP1 DUP3 SWAP1 PUSH1 0x12 SWAP1 PUSH1 0x0 SWAP1 DUP2 LT PUSH2 0xAE JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4E414D4500000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP3 MLOAD PUSH1 0x0 LT PUSH2 0x11E JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F53594D424F4C0000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP4 MLOAD PUSH2 0x131 SWAP1 PUSH1 0x0 SWAP1 PUSH1 0x20 DUP8 ADD SWAP1 PUSH2 0x17A JUMP JUMPDEST POP DUP3 MLOAD PUSH2 0x145 SWAP1 PUSH1 0x1 SWAP1 PUSH1 0x20 DUP7 ADD SWAP1 PUSH2 0x17A JUMP JUMPDEST POP PUSH1 0x2 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0xFF SWAP4 SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 SSTORE PUSH1 0x3 DUP2 SWAP1 SSTORE CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE POP PUSH2 0x215 SWAP3 POP POP POP JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH1 0x1F LT PUSH2 0x1BB JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH2 0x1E8 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x1E8 JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x1E8 JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x1CD JUMP JUMPDEST POP PUSH2 0x1F4 SWAP3 SWAP2 POP PUSH2 0x1F8 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH2 0x212 SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x1F4 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x1FE JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH2 0xA9D DUP1 PUSH2 0x224 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0xC4 JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x6FDDE03 DUP2 EQ PUSH2 0xCE JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x158 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x190 JUMPI DUP1 PUSH4 0x205C2878 EQ PUSH2 0x1B7 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x1DB JUMPI DUP1 PUSH4 0x2E1A7D4D EQ PUSH2 0x205 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x21D JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x248 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x269 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x27E JUMPI DUP1 PUSH4 0xB760FAF9 EQ PUSH2 0x2A2 JUMPI DUP1 PUSH4 0xD0E30DB0 EQ PUSH2 0xC4 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x2B6 JUMPI JUMPDEST PUSH2 0xCC PUSH2 0x2DD JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xDA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xE3 PUSH2 0x2E8 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP4 MLOAD DUP2 DUP4 ADD MSTORE DUP4 MLOAD SWAP2 SWAP3 DUP4 SWAP3 SWAP1 DUP4 ADD SWAP2 DUP6 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x11D JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x105 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x14A JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x164 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x17C PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x376 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x19C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A5 PUSH2 0x46E JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1C3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xCC PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x474 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1E7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x17C PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x558 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x211 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xCC PUSH1 0x4 CALLDATALOAD PUSH2 0x582 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x229 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x232 PUSH2 0x58F JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x254 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x598 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x275 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xE3 PUSH2 0x5AA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x28A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x17C PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x604 JUMP JUMPDEST PUSH2 0xCC PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x62C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2C2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH2 0x6F3 JUMP JUMPDEST PUSH2 0x2E6 CALLER PUSH2 0x62C JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x2 PUSH1 0x1 DUP6 AND ISZERO PUSH2 0x100 MUL PUSH1 0x0 NOT ADD SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 DIV PUSH1 0x1F DUP2 ADD DUP5 SWAP1 DIV DUP5 MUL DUP3 ADD DUP5 ADD SWAP1 SWAP3 MSTORE DUP2 DUP2 MSTORE SWAP3 SWAP2 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x36E JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x343 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x36E JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x351 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x382 DUP2 PUSH2 0x710 JUMP JUMPDEST DUP3 ISZERO DUP1 PUSH2 0x3B0 JUMPI POP CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x406 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F414D4F554E540000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST CALLER PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP10 AND DUP1 DUP6 MSTORE SWAP1 DUP4 MSTORE SWAP3 DUP2 SWAP1 KECCAK256 DUP8 SWAP1 SSTORE DUP1 MLOAD DUP8 DUP2 MSTORE SWAP1 MLOAD SWAP3 SWAP4 SWAP3 PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP3 SWAP2 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST DUP2 PUSH2 0x47E DUP2 PUSH2 0x770 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x49E SWAP1 DUP4 PUSH4 0xFFFFFFFF PUSH2 0x7D1 AND JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE PUSH1 0x3 SLOAD PUSH2 0x4C1 SWAP1 DUP4 PUSH4 0xFFFFFFFF PUSH2 0x7D1 AND JUMP JUMPDEST PUSH1 0x3 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP1 DUP4 ISZERO PUSH2 0x8FC MUL SWAP1 DUP5 SWAP1 PUSH1 0x0 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x4FA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD DUP4 DUP2 MSTORE SWAP1 MLOAD ADDRESS SWAP2 CALLER SWAP2 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xA52 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP2 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 LOG3 PUSH1 0x40 DUP1 MLOAD DUP4 DUP2 MSTORE SWAP1 MLOAD PUSH32 0x9A1B418BC061A5D80270261562E6986A35D995F8051145F277BE16103ABD3453 SWAP2 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 LOG1 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x564 DUP2 PUSH2 0x770 JUMP JUMPDEST PUSH2 0x56F DUP6 DUP6 DUP6 PUSH2 0x831 JUMP JUMPDEST ISZERO ISZERO PUSH2 0x577 JUMPI INVALID JUMPDEST POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0x58C CALLER DUP3 PUSH2 0x474 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x2 DUP5 DUP7 AND ISZERO PUSH2 0x100 MUL PUSH1 0x0 NOT ADD SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 DIV PUSH1 0x1F DUP2 ADD DUP5 SWAP1 DIV DUP5 MUL DUP3 ADD DUP5 ADD SWAP1 SWAP3 MSTORE DUP2 DUP2 MSTORE SWAP3 SWAP2 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x36E JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x343 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x36E JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x610 DUP2 PUSH2 0x770 JUMP JUMPDEST PUSH2 0x61A DUP5 DUP5 PUSH2 0x942 JUMP JUMPDEST ISZERO ISZERO PUSH2 0x622 JUMPI INVALID JUMPDEST POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST DUP1 PUSH2 0x636 DUP2 PUSH2 0x770 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x65F SWAP1 CALLVALUE PUSH4 0xFFFFFFFF PUSH2 0x9ED AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE PUSH1 0x3 SLOAD PUSH2 0x68B SWAP1 CALLVALUE PUSH4 0xFFFFFFFF PUSH2 0x9ED AND JUMP JUMPDEST PUSH1 0x3 SSTORE PUSH1 0x40 DUP1 MLOAD CALLVALUE DUP2 MSTORE SWAP1 MLOAD PUSH32 0x9386C90217C323F58030F9DADCBC938F807A940F4FF41CD4CEAD9562F5DA7DC3 SWAP2 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 LOG1 PUSH1 0x40 DUP1 MLOAD CALLVALUE DUP2 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP2 ADDRESS SWAP2 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xA52 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP2 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0x58C JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ADDRESS EQ ISZERO PUSH2 0x58C JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F414444524553535F49535F53454C4600000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 DUP4 LT ISZERO PUSH2 0x82B JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F554E444552464C4F5700000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP SWAP1 SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP4 PUSH2 0x83D DUP2 PUSH2 0x710 JUMP JUMPDEST DUP4 PUSH2 0x847 DUP2 PUSH2 0x710 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH2 0x87B SWAP1 DUP6 PUSH4 0xFFFFFFFF PUSH2 0x7D1 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE DUP3 MSTORE DUP1 DUP4 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE SWAP2 DUP2 MSTORE PUSH1 0x4 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD PUSH2 0x8BC SWAP1 DUP6 PUSH4 0xFFFFFFFF PUSH2 0x7D1 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE SWAP1 DUP8 AND DUP2 MSTORE KECCAK256 SLOAD PUSH2 0x8F1 SWAP1 DUP6 PUSH4 0xFFFFFFFF PUSH2 0x9ED AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP8 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE DUP1 MLOAD DUP9 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP4 SWAP3 DUP11 AND SWAP3 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xA52 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP3 SWAP2 DUP3 SWAP1 SUB ADD SWAP1 LOG3 POP PUSH1 0x1 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x94E DUP2 PUSH2 0x710 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x96E SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0x7D1 AND JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP3 SWAP1 SWAP3 SSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND DUP2 MSTORE KECCAK256 SLOAD PUSH2 0x9A0 SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0x9ED AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE DUP1 MLOAD DUP7 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP3 CALLER SWAP3 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xA52 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 ADD DUP4 DUP2 LT ISZERO PUSH2 0xA4A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP STOP 0xdd CALLCODE MSTORE 0xad SHL 0xe2 0xc8 SWAP12 PUSH10 0xC2B068FC378DAA952BA7 CALL PUSH4 0xC4A11628 0xf5 GAS 0x4d 0xf5 0x23 0xb3 0xef LOG1 PUSH6 0x627A7A723058 KECCAK256 SWAP12 NOT 0x4f 0xe6 DUP2 0x27 ADDMOD NUMBER 0xec 0x21 0xd4 ISZERO XOR SSTORE 0xee BLOCKHASH SWAP14 RETURNDATASIZE LOG2 ADDMOD EXTCODESIZE SUB POP PUSH9 0x9914F351617DE12400 0x29 ", - "sourceMap": "225:3029:50:-;;;765:85;8:9:-1;5:2;;;30:1;27;20:12;5:2;765:85:50;;;;;;;;;;;;;;;;;;;;;;;1444:19:49;;765:85:50;;;;;;;;;;;841:2;;845:1;;1444:23:49;-1:-1:-1;1436:52:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1500:21;;1524:1;-1:-1:-1;1492:56:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1553:12;;;;:4;;:12;;;;;:::i;:::-;-1:-1:-1;1569:16:49;;;;:6;;:16;;;;;:::i;:::-;-1:-1:-1;1589:8:49;:20;;-1:-1:-1;;1589:20:49;;;;;;;;;;;;;1613:11;:26;;;1653:10;-1:-1:-1;1643:21:49;;;:9;:21;;;;;:36;-1:-1:-1;225:3029:50;;-1:-1:-1;;;225:3029:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;225:3029:50;;;-1:-1:-1;225:3029:50;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;" - }, - "deployedBytecode": { - "linkReferences": {}, - "object": "6080604052600436106100c45763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde0381146100ce578063095ea7b31461015857806318160ddd14610190578063205c2878146101b757806323b872dd146101db5780632e1a7d4d14610205578063313ce5671461021d57806370a082311461024857806395d89b4114610269578063a9059cbb1461027e578063b760faf9146102a2578063d0e30db0146100c4578063dd62ed3e146102b6575b6100cc6102dd565b005b3480156100da57600080fd5b506100e36102e8565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561011d578181015183820152602001610105565b50505050905090810190601f16801561014a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561016457600080fd5b5061017c600160a060020a0360043516602435610376565b604080519115158252519081900360200190f35b34801561019c57600080fd5b506101a561046e565b60408051918252519081900360200190f35b3480156101c357600080fd5b506100cc600160a060020a0360043516602435610474565b3480156101e757600080fd5b5061017c600160a060020a0360043581169060243516604435610558565b34801561021157600080fd5b506100cc600435610582565b34801561022957600080fd5b5061023261058f565b6040805160ff9092168252519081900360200190f35b34801561025457600080fd5b506101a5600160a060020a0360043516610598565b34801561027557600080fd5b506100e36105aa565b34801561028a57600080fd5b5061017c600160a060020a0360043516602435610604565b6100cc600160a060020a036004351661062c565b3480156102c257600080fd5b506101a5600160a060020a03600435811690602435166106f3565b6102e63361062c565b565b6000805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561036e5780601f106103435761010080835404028352916020019161036e565b820191906000526020600020905b81548152906001019060200180831161035157829003601f168201915b505050505081565b60008261038281610710565b8215806103b05750336000908152600560209081526040808320600160a060020a0388168452909152902054155b1515610406576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f494e56414c49445f414d4f554e540000000000000000000000000000604482015290519081900360640190fd5b336000818152600560209081526040808320600160a060020a03891680855290835292819020879055805187815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060019392505050565b60035481565b8161047e81610770565b3360009081526004602052604090205461049e908363ffffffff6107d116565b336000908152600460205260409020556003546104c1908363ffffffff6107d116565b600355604051600160a060020a0384169083156108fc029084906000818181858888f193505050501580156104fa573d6000803e3d6000fd5b5060408051838152905130913391600080516020610a528339815191529181900360200190a36040805183815290517f9a1b418bc061a5d80270261562e6986a35d995f8051145f277be16103abd34539181900360200190a1505050565b60008261056481610770565b61056f858585610831565b151561057757fe5b506001949350505050565b61058c3382610474565b50565b60025460ff1681565b60046020526000908152604090205481565b60018054604080516020600284861615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561036e5780601f106103435761010080835404028352916020019161036e565b60008261061081610770565b61061a8484610942565b151561062257fe5b5060019392505050565b8061063681610770565b600160a060020a03821660009081526004602052604090205461065f903463ffffffff6109ed16565b600160a060020a03831660009081526004602052604090205560035461068b903463ffffffff6109ed16565b6003556040805134815290517f9386c90217c323f58030f9dadcbc938f807a940f4ff41cd4cead9562f5da7dc39181900360200190a1604080513481529051600160a060020a038416913091600080516020610a528339815191529181900360200190a35050565b600560209081526000928352604080842090915290825290205481565b600160a060020a038116151561058c576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b600160a060020a03811630141561058c576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f414444524553535f49535f53454c4600000000000000000000000000604482015290519081900360640190fd5b60008183101561082b576040805160e560020a62461bcd02815260206004820152600d60248201527f4552525f554e444552464c4f5700000000000000000000000000000000000000604482015290519081900360640190fd5b50900390565b60008361083d81610710565b8361084781610710565b600160a060020a038616600090815260056020908152604080832033845290915290205461087b908563ffffffff6107d116565b600160a060020a0387166000818152600560209081526040808320338452825280832094909455918152600490915220546108bc908563ffffffff6107d116565b600160a060020a0380881660009081526004602052604080822093909355908716815220546108f1908563ffffffff6109ed16565b600160a060020a0380871660008181526004602090815260409182902094909455805188815290519193928a1692600080516020610a5283398151915292918290030190a350600195945050505050565b60008261094e81610710565b3360009081526004602052604090205461096e908463ffffffff6107d116565b3360009081526004602052604080822092909255600160a060020a038616815220546109a0908463ffffffff6109ed16565b600160a060020a038516600081815260046020908152604091829020939093558051868152905191923392600080516020610a528339815191529281900390910190a35060019392505050565b600082820183811015610a4a576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b93925050505600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a723058209b194fe681270843ec21d4151855ee409d3da2083b0350689914f351617de1240029", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0xC4 JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x6FDDE03 DUP2 EQ PUSH2 0xCE JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x158 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x190 JUMPI DUP1 PUSH4 0x205C2878 EQ PUSH2 0x1B7 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x1DB JUMPI DUP1 PUSH4 0x2E1A7D4D EQ PUSH2 0x205 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x21D JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x248 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x269 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x27E JUMPI DUP1 PUSH4 0xB760FAF9 EQ PUSH2 0x2A2 JUMPI DUP1 PUSH4 0xD0E30DB0 EQ PUSH2 0xC4 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x2B6 JUMPI JUMPDEST PUSH2 0xCC PUSH2 0x2DD JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xDA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xE3 PUSH2 0x2E8 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP4 MLOAD DUP2 DUP4 ADD MSTORE DUP4 MLOAD SWAP2 SWAP3 DUP4 SWAP3 SWAP1 DUP4 ADD SWAP2 DUP6 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x11D JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x105 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x14A JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x164 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x17C PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x376 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x19C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A5 PUSH2 0x46E JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1C3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xCC PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x474 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1E7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x17C PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x558 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x211 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xCC PUSH1 0x4 CALLDATALOAD PUSH2 0x582 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x229 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x232 PUSH2 0x58F JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x254 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x598 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x275 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xE3 PUSH2 0x5AA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x28A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x17C PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x604 JUMP JUMPDEST PUSH2 0xCC PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x62C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2C2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH2 0x6F3 JUMP JUMPDEST PUSH2 0x2E6 CALLER PUSH2 0x62C JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x2 PUSH1 0x1 DUP6 AND ISZERO PUSH2 0x100 MUL PUSH1 0x0 NOT ADD SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 DIV PUSH1 0x1F DUP2 ADD DUP5 SWAP1 DIV DUP5 MUL DUP3 ADD DUP5 ADD SWAP1 SWAP3 MSTORE DUP2 DUP2 MSTORE SWAP3 SWAP2 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x36E JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x343 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x36E JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x351 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x382 DUP2 PUSH2 0x710 JUMP JUMPDEST DUP3 ISZERO DUP1 PUSH2 0x3B0 JUMPI POP CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x406 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F414D4F554E540000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST CALLER PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP10 AND DUP1 DUP6 MSTORE SWAP1 DUP4 MSTORE SWAP3 DUP2 SWAP1 KECCAK256 DUP8 SWAP1 SSTORE DUP1 MLOAD DUP8 DUP2 MSTORE SWAP1 MLOAD SWAP3 SWAP4 SWAP3 PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP3 SWAP2 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST DUP2 PUSH2 0x47E DUP2 PUSH2 0x770 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x49E SWAP1 DUP4 PUSH4 0xFFFFFFFF PUSH2 0x7D1 AND JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE PUSH1 0x3 SLOAD PUSH2 0x4C1 SWAP1 DUP4 PUSH4 0xFFFFFFFF PUSH2 0x7D1 AND JUMP JUMPDEST PUSH1 0x3 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP1 DUP4 ISZERO PUSH2 0x8FC MUL SWAP1 DUP5 SWAP1 PUSH1 0x0 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x4FA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD DUP4 DUP2 MSTORE SWAP1 MLOAD ADDRESS SWAP2 CALLER SWAP2 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xA52 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP2 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 LOG3 PUSH1 0x40 DUP1 MLOAD DUP4 DUP2 MSTORE SWAP1 MLOAD PUSH32 0x9A1B418BC061A5D80270261562E6986A35D995F8051145F277BE16103ABD3453 SWAP2 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 LOG1 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x564 DUP2 PUSH2 0x770 JUMP JUMPDEST PUSH2 0x56F DUP6 DUP6 DUP6 PUSH2 0x831 JUMP JUMPDEST ISZERO ISZERO PUSH2 0x577 JUMPI INVALID JUMPDEST POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0x58C CALLER DUP3 PUSH2 0x474 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x2 DUP5 DUP7 AND ISZERO PUSH2 0x100 MUL PUSH1 0x0 NOT ADD SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 DIV PUSH1 0x1F DUP2 ADD DUP5 SWAP1 DIV DUP5 MUL DUP3 ADD DUP5 ADD SWAP1 SWAP3 MSTORE DUP2 DUP2 MSTORE SWAP3 SWAP2 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x36E JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x343 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x36E JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x610 DUP2 PUSH2 0x770 JUMP JUMPDEST PUSH2 0x61A DUP5 DUP5 PUSH2 0x942 JUMP JUMPDEST ISZERO ISZERO PUSH2 0x622 JUMPI INVALID JUMPDEST POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST DUP1 PUSH2 0x636 DUP2 PUSH2 0x770 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x65F SWAP1 CALLVALUE PUSH4 0xFFFFFFFF PUSH2 0x9ED AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE PUSH1 0x3 SLOAD PUSH2 0x68B SWAP1 CALLVALUE PUSH4 0xFFFFFFFF PUSH2 0x9ED AND JUMP JUMPDEST PUSH1 0x3 SSTORE PUSH1 0x40 DUP1 MLOAD CALLVALUE DUP2 MSTORE SWAP1 MLOAD PUSH32 0x9386C90217C323F58030F9DADCBC938F807A940F4FF41CD4CEAD9562F5DA7DC3 SWAP2 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 LOG1 PUSH1 0x40 DUP1 MLOAD CALLVALUE DUP2 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND SWAP2 ADDRESS SWAP2 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xA52 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP2 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0x58C JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ADDRESS EQ ISZERO PUSH2 0x58C JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F414444524553535F49535F53454C4600000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 DUP4 LT ISZERO PUSH2 0x82B JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F554E444552464C4F5700000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP SWAP1 SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP4 PUSH2 0x83D DUP2 PUSH2 0x710 JUMP JUMPDEST DUP4 PUSH2 0x847 DUP2 PUSH2 0x710 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH2 0x87B SWAP1 DUP6 PUSH4 0xFFFFFFFF PUSH2 0x7D1 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE DUP3 MSTORE DUP1 DUP4 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE SWAP2 DUP2 MSTORE PUSH1 0x4 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD PUSH2 0x8BC SWAP1 DUP6 PUSH4 0xFFFFFFFF PUSH2 0x7D1 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE SWAP1 DUP8 AND DUP2 MSTORE KECCAK256 SLOAD PUSH2 0x8F1 SWAP1 DUP6 PUSH4 0xFFFFFFFF PUSH2 0x9ED AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP8 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE DUP1 MLOAD DUP9 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP4 SWAP3 DUP11 AND SWAP3 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xA52 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP3 SWAP2 DUP3 SWAP1 SUB ADD SWAP1 LOG3 POP PUSH1 0x1 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x94E DUP2 PUSH2 0x710 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x96E SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0x7D1 AND JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP3 SWAP1 SWAP3 SSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND DUP2 MSTORE KECCAK256 SLOAD PUSH2 0x9A0 SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0x9ED AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE DUP1 MLOAD DUP7 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP3 CALLER SWAP3 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xA52 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 ADD DUP4 DUP2 LT ISZERO PUSH2 0xA4A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP STOP 0xdd CALLCODE MSTORE 0xad SHL 0xe2 0xc8 SWAP12 PUSH10 0xC2B068FC378DAA952BA7 CALL PUSH4 0xC4A11628 0xf5 GAS 0x4d 0xf5 0x23 0xb3 0xef LOG1 PUSH6 0x627A7A723058 KECCAK256 SWAP12 NOT 0x4f 0xe6 DUP2 0x27 ADDMOD NUMBER 0xec 0x21 0xd4 ISZERO XOR SSTORE 0xee BLOCKHASH SWAP14 RETURNDATASIZE LOG2 ADDMOD EXTCODESIZE SUB POP PUSH9 0x9914F351617DE12400 0x29 ", - "sourceMap": "225:3029:50:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3239:9;:7;:9::i;:::-;225:3029;256:18:49;;8:9:-1;5:2;;;30:1;27;20:12;5:2;256:18:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;256:18:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3601:420;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3601:420:49;-1:-1:-1;;;;;3601:420:49;;;;;;;;;;;;;;;;;;;;;;;;;324:26;;8:9:-1;5:2;;;30:1;27;20:12;5:2;324:26:49;;;;;;;;;;;;;;;;;;;;1774:393:50;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1774:393:50;-1:-1:-1;;;;;1774:393:50;;;;;;;2969:187;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2969:187:50;-1:-1:-1;;;;;2969:187:50;;;;;;;;;;;;1086:81;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1086:81:50;;;;;300:21:49;;8:9:-1;5:2;;;30:1;27;20:12;5:2;300:21:49;;;;;;;;;;;;;;;;;;;;;;;353:44;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;353:44:49;-1:-1:-1;;;;;353:44:49;;;;;277:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;277:20:49;;;;2491:148:50;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2491:148:50;-1:-1:-1;;;;;2491:148:50;;;;;;;1299:295;;-1:-1:-1;;;;;1299:295:50;;;;;400:64:49;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;400:64:49;-1:-1:-1;;;;;400:64:49;;;;;;;;;;910:63:50;948:21;958:10;948:9;:21::i;:::-;910:63::o;256:18:49:-;;;;;;;;;;;;;;;-1:-1:-1;;256:18:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;3601:420::-;3691:12;3672:8;475:23:72;489:8;475:13;:23::i;:::-;3836:11:49;;;:51;;-1:-1:-1;3861:10:49;3851:21;;;;:9;:21;;;;;;;;-1:-1:-1;;;;;3851:31:49;;;;;;;;;;:36;3836:51;3828:82;;;;;;;-1:-1:-1;;;;;3828:82:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;3925:10;3915:21;;;;:9;:21;;;;;;;;-1:-1:-1;;;;;3915:31:49;;;;;;;;;;;;:40;;;3964:38;;;;;;;3915:31;;3925:10;3964:38;;;;;;;;;;;-1:-1:-1;4013:4:49;;3601:420;-1:-1:-1;;;3601:420:49:o;324:26::-;;;;:::o;1774:393:50:-;1839:3;782:18:72;791:8;782;:18::i;:::-;1882:10:50;1872:21;;;;:9;:21;;;;;;:34;;1898:7;1872:34;:25;:34;:::i;:::-;1858:10;1848:21;;;;:9;:21;;;;;:58;1970:11;;:24;;1986:7;1970:24;:15;:24;:::i;:::-;1956:11;:38;2027:21;;-1:-1:-1;;;;;2027:12:50;;;:21;;;;;2040:7;;2027:21;;;;2040:7;2027:12;:21;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;2099:35:50;;;;;;;;2120:4;;2108:10;;-1:-1:-1;;;;;;;;;;;2099:35:50;;;;;;;;2143:20;;;;;;;;;;;;;;;;;1774:393;;;:::o;2969:187::-;3073:12;3059:3;782:18:72;791:8;782;:18::i;:::-;3098:38:50;3117:5;3124:3;3129:6;3098:18;:38::i;:::-;3091:46;;;;;;-1:-1:-1;3148:4:50;;2969:187;-1:-1:-1;;;;2969:187:50:o;1086:81::-;1132:31;1143:10;1155:7;1132:10;:31::i;:::-;1086:81;:::o;300:21:49:-;;;;;;:::o;353:44::-;;;;;;;;;;;;;:::o;277:20::-;;;;;;;;;;;;;;;-1:-1:-1;;277:20:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2491:148:50;2567:12;2553:3;782:18:72;791:8;782;:18::i;:::-;2592:27:50;2607:3;2612:6;2592:14;:27::i;:::-;2585:35;;;;;;-1:-1:-1;2631:4:50;;2491:148;-1:-1:-1;;;2491:148:50:o;1299:295::-;1354:3;782:18:72;791:8;782;:18::i;:::-;-1:-1:-1;;;;;1380:14:50;;;;;;:9;:14;;;;;;:29;;1399:9;1380:29;:18;:29;:::i;:::-;-1:-1:-1;;;;;1363:14:50;;;;;;:9;:14;;;;;:46;1467:11;;:26;;1483:9;1467:26;:15;:26;:::i;:::-;1453:11;:40;1532:19;;;1541:9;1532:19;;;;;;;;;;;;;1560:30;;;1580:9;1560:30;;;;-1:-1:-1;;;;;1560:30:50;;;1569:4;;-1:-1:-1;;;;;;;;;;;1560:30:50;;;;;;;;1299:295;;:::o;400:64:49:-;;;;;;;;;;;;;;;;;;;;;;;;:::o;553:117:72:-;-1:-1:-1;;;;;620:22:72;;;;612:54;;;;;-1:-1:-1;;;;;612:54:72;;;;;;;;;;;;;;;;;;;;;;;;;;;855:115;-1:-1:-1;;;;;917:25:72;;937:4;917:25;;909:57;;;;;-1:-1:-1;;;;;909:57:72;;;;;;;;;;;;;;;;;;;;;;;;;;;613:129:69;673:7;694:8;;;;686:34;;;;;-1:-1:-1;;;;;686:34:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;731:7:69;;;613:129::o;2581:372:49:-;2710:12;2676:5;475:23:72;489:8;475:13;:23::i;:::-;2696:3:49;475:23:72;489:8;475:13;:23::i;:::-;-1:-1:-1;;;;;2759:16:49;;;;;;:9;:16;;;;;;;;2776:10;2759:28;;;;;;;;:40;;2792:6;2759:40;:32;:40;:::i;:::-;-1:-1:-1;;;;;2728:16:49;;;;;;:9;:16;;;;;;;;2745:10;2728:28;;;;;;;:71;;;;2822:16;;;:9;:16;;;;;:28;;2843:6;2822:28;:20;:28;:::i;:::-;-1:-1:-1;;;;;2803:16:49;;;;;;;:9;:16;;;;;;:47;;;;2871:14;;;;;;;:26;;2890:6;2871:26;:18;:26;:::i;:::-;-1:-1:-1;;;;;2854:14:49;;;;;;;:9;:14;;;;;;;;;:43;;;;2906:28;;;;;;;2854:14;;2906:28;;;;-1:-1:-1;;;;;;;;;;;2906:28:49;;;;;;;;-1:-1:-1;2945:4:49;;2581:372;-1:-1:-1;;;;;2581:372:49:o;1968:264::-;2049:12;2035:3;475:23:72;489:8;475:13;:23::i;:::-;2101:10:49;2091:21;;;;:9;:21;;;;;;:33;;2117:6;2091:33;:25;:33;:::i;:::-;2077:10;2067:21;;;;:9;:21;;;;;;:57;;;;-1:-1:-1;;;;;2145:14:49;;;;;;:26;;2164:6;2145:26;:18;:26;:::i;:::-;-1:-1:-1;;;;;2128:14:49;;;;;;:9;:14;;;;;;;;;:43;;;;2180:33;;;;;;;2128:14;;2189:10;;-1:-1:-1;;;;;;;;;;;2180:33:49;;;;;;;;;-1:-1:-1;2224:4:49;;1968:264;-1:-1:-1;;;1968:264:49:o;288:144:69:-;348:7;373;;;392;;;;384:32;;;;;-1:-1:-1;;;;;384:32:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;427:1;288:144;-1:-1:-1;;;288:144:69:o" - }, - "methodIdentifiers": { - "allowance(address,address)": "dd62ed3e", - "approve(address,uint256)": "095ea7b3", - "balanceOf(address)": "70a08231", - "decimals()": "313ce567", - "deposit()": "d0e30db0", - "depositTo(address)": "b760faf9", - "name()": "06fdde03", - "symbol()": "95d89b41", - "totalSupply()": "18160ddd", - "transfer(address,uint256)": "a9059cbb", - "transferFrom(address,address,uint256)": "23b872dd", - "withdraw(uint256)": "2e1a7d4d", - "withdrawTo(address,uint256)": "205c2878" - } - }, - "userdoc": { - "methods": {} - } - } - }, - "solidity/contracts/token/SmartToken.sol": { - "SmartToken": { - "abi": [ - { - "constant": true, - "inputs": [], - "name": "name", - "outputs": [ - { - "name": "", - "type": "string" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_spender", - "type": "address" - }, - { - "name": "_value", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [ - { - "name": "success", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_disable", - "type": "bool" - } - ], - "name": "disableTransfers", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "totalSupply", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_from", - "type": "address" - }, - { - "name": "_to", - "type": "address" - }, - { - "name": "_value", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [ - { - "name": "success", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "decimals", - "outputs": [ - { - "name": "", - "type": "uint8" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "version", - "outputs": [ - { - "name": "", - "type": "uint16" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_token", - "type": "address" - }, - { - "name": "_to", - "type": "address" - }, - { - "name": "_amount", - "type": "uint256" - } - ], - "name": "withdrawTokens", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "acceptOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_to", - "type": "address" - }, - { - "name": "_amount", - "type": "uint256" - } - ], - "name": "issue", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "owner", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "symbol", - "outputs": [ - { - "name": "", - "type": "string" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_from", - "type": "address" - }, - { - "name": "_amount", - "type": "uint256" - } - ], - "name": "destroy", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_to", - "type": "address" - }, - { - "name": "_value", - "type": "uint256" - } - ], - "name": "transfer", - "outputs": [ - { - "name": "success", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "transfersEnabled", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "newOwner", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "", - "type": "address" - }, - { - "name": "", - "type": "address" - } - ], - "name": "allowance", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "name": "_name", - "type": "string" - }, - { - "name": "_symbol", - "type": "string" - }, - { - "name": "_decimals", - "type": "uint8" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "_amount", - "type": "uint256" - } - ], - "name": "Issuance", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "_amount", - "type": "uint256" - } - ], - "name": "Destruction", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "_from", - "type": "address" - }, - { - "indexed": true, - "name": "_to", - "type": "address" - }, - { - "indexed": false, - "name": "_value", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "_owner", - "type": "address" - }, - { - "indexed": true, - "name": "_spender", - "type": "address" - }, - { - "indexed": false, - "name": "_value", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "_prevOwner", - "type": "address" - }, - { - "indexed": true, - "name": "_newOwner", - "type": "address" - } - ], - "name": "OwnerUpdate", - "type": "event" - } - ], - "devdoc": { - "methods": { - "acceptOwnership()": { - "details": "used by a new owner to accept an ownership transfer" - }, - "approve(address,uint256)": { - "details": "allows another account/contract to transfers tokens on behalf of the caller throws on any error rather then return a false flag to minimize user errors\t * also, to minimize the risk of the approve/transferFrom attack vector (see https://docs.google.com/document/d/1YLPtQxZu1UAvO9cZ1O2RPXBbT0mooh4DYKjA_jp-RLM/), approve has to be called twice in 2 separate transactions - once to change the allowance to 0 and secondly to change it to the new allowance value", - "params": { - "_spender": "approved address", - "_value": "allowance amount" - }, - "return": "true if the approval was successful, false if it wasn't" - }, - "destroy(address,uint256)": { - "details": "removes tokens from the given account and decreases the token supply can only be called by the contract owner", - "params": { - "_amount": "amount to decrease the supply by", - "_from": "account to remove the amount from" - } - }, - "disableTransfers(bool)": { - "details": "disables/enables transfers can only be called by the contract owner", - "params": { - "_disable": "true to disable transfers, false to enable them" - } - }, - "issue(address,uint256)": { - "details": "increases the token supply and sends the new tokens to the given account can only be called by the contract owner", - "params": { - "_amount": "amount to increase the supply by", - "_to": "account to receive the new amount" - } - }, - "transfer(address,uint256)": { - "details": "send coins throws on any error rather then return a false flag to minimize user errors in addition to the standard checks, the function throws if transfers are disabled", - "params": { - "_to": "target address", - "_value": "transfer amount" - }, - "return": "true if the transfer was successful, false if it wasn't" - }, - "transferFrom(address,address,uint256)": { - "details": "an account/contract attempts to get the coins throws on any error rather then return a false flag to minimize user errors in addition to the standard checks, the function throws if transfers are disabled", - "params": { - "_from": "source address", - "_to": "target address", - "_value": "transfer amount" - }, - "return": "true if the transfer was successful, false if it wasn't" - }, - "transferOwnership(address)": { - "details": "allows transferring the contract ownership the new owner still needs to accept the transfer can only be called by the contract owner", - "params": { - "_newOwner": "new contract owner" - } - }, - "withdrawTokens(address,address,uint256)": { - "details": "withdraws tokens held by the contract and sends them to an account can only be called by the owner", - "params": { - "_amount": "amount to withdraw", - "_to": "account to receive the new amount", - "_token": "ERC20 token contract address" - } - } - } - }, - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "60806040526008805460ff191660011790553480156200001e57600080fd5b506040516200122838038062001228833981016040908152815160208301519183015160008054600160a060020a0319163317815591840180519094939093019290918491849184918110620000d557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f4552525f494e56414c49445f4e414d4500000000000000000000000000000000604482015290519081900360640190fd5b82516000106200014657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f4552525f494e56414c49445f53594d424f4c0000000000000000000000000000604482015290519081900360640190fd5b83516200015b906002906020870190620001a8565b50825162000171906003906020860190620001a8565b506004805460ff191660ff9390931692909217909155600581905533600090815260066020526040902055506200024d9350505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620001eb57805160ff19168380011785556200021b565b828001600101855582156200021b579182015b828111156200021b578251825591602001919060010190620001fe565b50620002299291506200022d565b5090565b6200024a91905b8082111562000229576000815560010162000234565b90565b610fcb806200025d6000396000f3006080604052600436106101065763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde03811461010b578063095ea7b3146101955780631608f18f146101cd57806318160ddd146101e957806323b872dd14610210578063313ce5671461023a57806354fd4d50146102655780635e35359e1461029157806370a08231146102bb57806379ba5097146102dc578063867904b4146102f15780638da5cb5b1461031557806395d89b4114610346578063a24835d11461035b578063a9059cbb1461037f578063bef97c87146103a3578063d4ee1d90146103b8578063dd62ed3e146103cd578063f2fde38b146103f4575b600080fd5b34801561011757600080fd5b50610120610415565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561015a578181015183820152602001610142565b50505050905090810190601f1680156101875780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101a157600080fd5b506101b9600160a060020a03600435166024356104a0565b604080519115158252519081900360200190f35b3480156101d957600080fd5b506101e76004351515610598565b005b3480156101f557600080fd5b506101fe6105b2565b60408051918252519081900360200190f35b34801561021c57600080fd5b506101b9600160a060020a03600435811690602435166044356105b8565b34801561024657600080fd5b5061024f6105df565b6040805160ff9092168252519081900360200190f35b34801561027157600080fd5b5061027a6105e8565b6040805161ffff9092168252519081900360200190f35b34801561029d57600080fd5b506101e7600160a060020a03600435811690602435166044356105ed565b3480156102c757600080fd5b506101fe600160a060020a0360043516610626565b3480156102e857600080fd5b506101e7610638565b3480156102fd57600080fd5b506101e7600160a060020a036004351660243561070b565b34801561032157600080fd5b5061032a6107ed565b60408051600160a060020a039092168252519081900360200190f35b34801561035257600080fd5b506101206107fc565b34801561036757600080fd5b506101e7600160a060020a0360043516602435610857565b34801561038b57600080fd5b506101b9600160a060020a036004351660243561091d565b3480156103af57600080fd5b506101b9610942565b3480156103c457600080fd5b5061032a61094b565b3480156103d957600080fd5b506101fe600160a060020a036004358116906024351661095a565b34801561040057600080fd5b506101e7600160a060020a0360043516610977565b6002805460408051602060018416156101000260001901909316849004601f810184900484028201840190925281815292918301828280156104985780601f1061046d57610100808354040283529160200191610498565b820191906000526020600020905b81548152906001019060200180831161047b57829003601f168201915b505050505081565b6000826104ac81610a14565b8215806104da5750336000908152600760209081526040808320600160a060020a0388168452909152902054155b1515610530576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f494e56414c49445f414d4f554e540000000000000000000000000000604482015290519081900360640190fd5b336000818152600760209081526040808320600160a060020a03891680855290835292819020879055805187815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060019392505050565b6105a0610a77565b6008805460ff19169115919091179055565b60055481565b60006105c2610adb565b6105cd848484610b37565b15156105d557fe5b5060019392505050565b60045460ff1681565b600481565b6105f5610a77565b826105ff81610a14565b8261060981610a14565b8361061381610c48565b61061e868686610ca9565b505050505050565b60066020526000908152604090205481565b600154600160a060020a0316331461069a576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b60015460008054604051600160a060020a0393841693909116917f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91a3600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b610713610a77565b8161071d81610a14565b8261072781610c48565b60055461073a908463ffffffff610d6316565b600555600160a060020a038416600090815260066020526040902054610766908463ffffffff610d6316565b600160a060020a03851660009081526006602090815260409182902092909255805185815290517f9386c90217c323f58030f9dadcbc938f807a940f4ff41cd4cead9562f5da7dc3929181900390910190a1604080518481529051600160a060020a03861691600091600080516020610f808339815191529181900360200190a350505050565b600054600160a060020a031681565b6003805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156104985780601f1061046d57610100808354040283529160200191610498565b61085f610a77565b600160a060020a038216600090815260066020526040902054610888908263ffffffff610dc716565b600160a060020a0383166000908152600660205260409020556005546108b4908263ffffffff610dc716565b600555604080518281529051600091600160a060020a03851691600080516020610f808339815191529181900360200190a36040805182815290517f9a1b418bc061a5d80270261562e6986a35d995f8051145f277be16103abd34539181900360200190a15050565b6000610927610adb565b6109318383610e27565b151561093957fe5b50600192915050565b60085460ff1681565b600154600160a060020a031681565b600760209081526000928352604080842090915290825290205481565b61097f610a77565b600054600160a060020a03828116911614156109e5576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f53414d455f4f574e4552000000000000000000000000000000000000604482015290519081900360640190fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600160a060020a0381161515610a74576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b50565b600054600160a060020a03163314610ad9576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b565b60085460ff161515610ad9576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f5452414e53464552535f44495341424c454400000000000000000000604482015290519081900360640190fd5b600083610b4381610a14565b83610b4d81610a14565b600160a060020a0386166000908152600760209081526040808320338452909152902054610b81908563ffffffff610dc716565b600160a060020a038716600081815260076020908152604080832033845282528083209490945591815260069091522054610bc2908563ffffffff610dc716565b600160a060020a038088166000908152600660205260408082209390935590871681522054610bf7908563ffffffff610d6316565b600160a060020a0380871660008181526006602090815260409182902094909455805188815290519193928a1692600080516020610f8083398151915292918290030190a350600195945050505050565b600160a060020a038116301415610a74576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f414444524553535f49535f53454c4600000000000000000000000000604482015290519081900360640190fd5b604080517f7472616e7366657228616464726573732c75696e74323536290000000000000081528151908190036019018120600160a060020a038516602483015260448083018590528351808403909101815260649092019092526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152610d5e908490610ed2565b505050565b600082820183811015610dc0576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b9392505050565b600081831015610e21576040805160e560020a62461bcd02815260206004820152600d60248201527f4552525f554e444552464c4f5700000000000000000000000000000000000000604482015290519081900360640190fd5b50900390565b600082610e3381610a14565b33600090815260066020526040902054610e53908463ffffffff610dc716565b3360009081526006602052604080822092909255600160a060020a03861681522054610e85908463ffffffff610d6316565b600160a060020a038516600081815260066020908152604091829020939093558051868152905191923392600080516020610f808339815191529281900390910190a35060019392505050565b610eda610f60565b602060405190810160405280600181525090506020818351602085016000875af1801515610f0757600080fd5b5080511515610d5e576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f5452414e534645525f4641494c454400000000000000000000000000604482015290519081900360640190fd5b60206040519081016040528060019060208202803883395091929150505600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a7230582031b56aebc8336b547b3e1346f50c2f44f70def554ed4cba4c81bcf2e092d047f0029", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x8 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE CALLVALUE DUP1 ISZERO PUSH3 0x1E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x1228 CODESIZE SUB DUP1 PUSH3 0x1228 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 SWAP1 DUP2 MSTORE DUP2 MLOAD PUSH1 0x20 DUP4 ADD MLOAD SWAP2 DUP4 ADD MLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND CALLER OR DUP2 SSTORE SWAP2 DUP5 ADD DUP1 MLOAD SWAP1 SWAP5 SWAP4 SWAP1 SWAP4 ADD SWAP3 SWAP1 SWAP2 DUP5 SWAP2 DUP5 SWAP2 DUP5 SWAP2 DUP2 LT PUSH3 0xD5 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4E414D4500000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP3 MLOAD PUSH1 0x0 LT PUSH3 0x146 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F53594D424F4C0000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP4 MLOAD PUSH3 0x15B SWAP1 PUSH1 0x2 SWAP1 PUSH1 0x20 DUP8 ADD SWAP1 PUSH3 0x1A8 JUMP JUMPDEST POP DUP3 MLOAD PUSH3 0x171 SWAP1 PUSH1 0x3 SWAP1 PUSH1 0x20 DUP7 ADD SWAP1 PUSH3 0x1A8 JUMP JUMPDEST POP PUSH1 0x4 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0xFF SWAP4 SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 SSTORE PUSH1 0x5 DUP2 SWAP1 SSTORE CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE POP PUSH3 0x24D SWAP4 POP POP POP POP JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH1 0x1F LT PUSH3 0x1EB JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH3 0x21B JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH3 0x21B JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH3 0x21B JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH3 0x1FE JUMP JUMPDEST POP PUSH3 0x229 SWAP3 SWAP2 POP PUSH3 0x22D JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH3 0x24A SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH3 0x229 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH3 0x234 JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH2 0xFCB DUP1 PUSH3 0x25D PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x106 JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x6FDDE03 DUP2 EQ PUSH2 0x10B JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x195 JUMPI DUP1 PUSH4 0x1608F18F EQ PUSH2 0x1CD JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x1E9 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x210 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x23A JUMPI DUP1 PUSH4 0x54FD4D50 EQ PUSH2 0x265 JUMPI DUP1 PUSH4 0x5E35359E EQ PUSH2 0x291 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x2BB JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x2DC JUMPI DUP1 PUSH4 0x867904B4 EQ PUSH2 0x2F1 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x315 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x346 JUMPI DUP1 PUSH4 0xA24835D1 EQ PUSH2 0x35B JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x37F JUMPI DUP1 PUSH4 0xBEF97C87 EQ PUSH2 0x3A3 JUMPI DUP1 PUSH4 0xD4EE1D90 EQ PUSH2 0x3B8 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x3CD JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x3F4 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x117 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x120 PUSH2 0x415 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP4 MLOAD DUP2 DUP4 ADD MSTORE DUP4 MLOAD SWAP2 SWAP3 DUP4 SWAP3 SWAP1 DUP4 ADD SWAP2 DUP6 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x15A JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x142 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x187 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1A1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B9 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x4A0 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1D9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH1 0x4 CALLDATALOAD ISZERO ISZERO PUSH2 0x598 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1FE PUSH2 0x5B2 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x21C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B9 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x5B8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x246 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x24F PUSH2 0x5DF JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x271 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x27A PUSH2 0x5E8 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0xFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x29D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x5ED JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2C7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1FE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x626 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2E8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH2 0x638 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2FD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x70B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x321 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x32A PUSH2 0x7ED JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x352 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x120 PUSH2 0x7FC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x367 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x857 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x38B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B9 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x91D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3AF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B9 PUSH2 0x942 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3C4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x32A PUSH2 0x94B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3D9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1FE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH2 0x95A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x400 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x977 JUMP JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x1 DUP5 AND ISZERO PUSH2 0x100 MUL PUSH1 0x0 NOT ADD SWAP1 SWAP4 AND DUP5 SWAP1 DIV PUSH1 0x1F DUP2 ADD DUP5 SWAP1 DIV DUP5 MUL DUP3 ADD DUP5 ADD SWAP1 SWAP3 MSTORE DUP2 DUP2 MSTORE SWAP3 SWAP2 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x498 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x46D JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x498 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x47B JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x4AC DUP2 PUSH2 0xA14 JUMP JUMPDEST DUP3 ISZERO DUP1 PUSH2 0x4DA JUMPI POP CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x530 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F414D4F554E540000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST CALLER PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP10 AND DUP1 DUP6 MSTORE SWAP1 DUP4 MSTORE SWAP3 DUP2 SWAP1 KECCAK256 DUP8 SWAP1 SSTORE DUP1 MLOAD DUP8 DUP2 MSTORE SWAP1 MLOAD SWAP3 SWAP4 SWAP3 PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP3 SWAP2 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x5A0 PUSH2 0xA77 JUMP JUMPDEST PUSH1 0x8 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP2 ISZERO SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x5 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5C2 PUSH2 0xADB JUMP JUMPDEST PUSH2 0x5CD DUP5 DUP5 DUP5 PUSH2 0xB37 JUMP JUMPDEST ISZERO ISZERO PUSH2 0x5D5 JUMPI INVALID JUMPDEST POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x4 DUP2 JUMP JUMPDEST PUSH2 0x5F5 PUSH2 0xA77 JUMP JUMPDEST DUP3 PUSH2 0x5FF DUP2 PUSH2 0xA14 JUMP JUMPDEST DUP3 PUSH2 0x609 DUP2 PUSH2 0xA14 JUMP JUMPDEST DUP4 PUSH2 0x613 DUP2 PUSH2 0xC48 JUMP JUMPDEST PUSH2 0x61E DUP7 DUP7 DUP7 PUSH2 0xCA9 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x69A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND SWAP4 SWAP1 SWAP2 AND SWAP2 PUSH32 0x343765429AEA5A34B3FF6A3785A98A5ABB2597ACA87BFBB58632C173D585373A SWAP2 LOG3 PUSH1 0x1 DUP1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND OR SWAP1 SWAP2 SSTORE AND SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x713 PUSH2 0xA77 JUMP JUMPDEST DUP2 PUSH2 0x71D DUP2 PUSH2 0xA14 JUMP JUMPDEST DUP3 PUSH2 0x727 DUP2 PUSH2 0xC48 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH2 0x73A SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0xD63 AND JUMP JUMPDEST PUSH1 0x5 SSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x766 SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0xD63 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SWAP3 SWAP1 SWAP3 SSTORE DUP1 MLOAD DUP6 DUP2 MSTORE SWAP1 MLOAD PUSH32 0x9386C90217C323F58030F9DADCBC938F807A940F4FF41CD4CEAD9562F5DA7DC3 SWAP3 SWAP2 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG1 PUSH1 0x40 DUP1 MLOAD DUP5 DUP2 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND SWAP2 PUSH1 0x0 SWAP2 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xF80 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP2 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 LOG3 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x2 PUSH1 0x1 DUP6 AND ISZERO PUSH2 0x100 MUL PUSH1 0x0 NOT ADD SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 DIV PUSH1 0x1F DUP2 ADD DUP5 SWAP1 DIV DUP5 MUL DUP3 ADD DUP5 ADD SWAP1 SWAP3 MSTORE DUP2 DUP2 MSTORE SWAP3 SWAP2 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x498 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x46D JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x498 JUMP JUMPDEST PUSH2 0x85F PUSH2 0xA77 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x888 SWAP1 DUP3 PUSH4 0xFFFFFFFF PUSH2 0xDC7 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE PUSH1 0x5 SLOAD PUSH2 0x8B4 SWAP1 DUP3 PUSH4 0xFFFFFFFF PUSH2 0xDC7 AND JUMP JUMPDEST PUSH1 0x5 SSTORE PUSH1 0x40 DUP1 MLOAD DUP3 DUP2 MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND SWAP2 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xF80 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP2 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 LOG3 PUSH1 0x40 DUP1 MLOAD DUP3 DUP2 MSTORE SWAP1 MLOAD PUSH32 0x9A1B418BC061A5D80270261562E6986A35D995F8051145F277BE16103ABD3453 SWAP2 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x927 PUSH2 0xADB JUMP JUMPDEST PUSH2 0x931 DUP4 DUP4 PUSH2 0xE27 JUMP JUMPDEST ISZERO ISZERO PUSH2 0x939 JUMPI INVALID JUMPDEST POP PUSH1 0x1 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x97F PUSH2 0xA77 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x9E5 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F4F574E4552000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0xA74 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0xAD9 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0xFF AND ISZERO ISZERO PUSH2 0xAD9 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5452414E53464552535F44495341424C454400000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP4 PUSH2 0xB43 DUP2 PUSH2 0xA14 JUMP JUMPDEST DUP4 PUSH2 0xB4D DUP2 PUSH2 0xA14 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH2 0xB81 SWAP1 DUP6 PUSH4 0xFFFFFFFF PUSH2 0xDC7 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE DUP3 MSTORE DUP1 DUP4 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE SWAP2 DUP2 MSTORE PUSH1 0x6 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD PUSH2 0xBC2 SWAP1 DUP6 PUSH4 0xFFFFFFFF PUSH2 0xDC7 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE SWAP1 DUP8 AND DUP2 MSTORE KECCAK256 SLOAD PUSH2 0xBF7 SWAP1 DUP6 PUSH4 0xFFFFFFFF PUSH2 0xD63 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP8 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE DUP1 MLOAD DUP9 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP4 SWAP3 DUP11 AND SWAP3 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xF80 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP3 SWAP2 DUP3 SWAP1 SUB ADD SWAP1 LOG3 POP PUSH1 0x1 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ADDRESS EQ ISZERO PUSH2 0xA74 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F414444524553535F49535F53454C4600000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x7472616E7366657228616464726573732C75696E743235362900000000000000 DUP2 MSTORE DUP2 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x19 ADD DUP2 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x64 SWAP1 SWAP3 ADD SWAP1 SWAP3 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE PUSH2 0xD5E SWAP1 DUP5 SWAP1 PUSH2 0xED2 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 ADD DUP4 DUP2 LT ISZERO PUSH2 0xDC0 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT ISZERO PUSH2 0xE21 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F554E444552464C4F5700000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP SWAP1 SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0xE33 DUP2 PUSH2 0xA14 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0xE53 SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0xDC7 AND JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP3 SWAP1 SWAP3 SSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND DUP2 MSTORE KECCAK256 SLOAD PUSH2 0xE85 SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0xD63 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE DUP1 MLOAD DUP7 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP3 CALLER SWAP3 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xF80 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0xEDA PUSH2 0xF60 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE POP SWAP1 POP PUSH1 0x20 DUP2 DUP4 MLOAD PUSH1 0x20 DUP6 ADD PUSH1 0x0 DUP8 GAS CALL DUP1 ISZERO ISZERO PUSH2 0xF07 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD ISZERO ISZERO PUSH2 0xD5E JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5452414E534645525F4641494C454400000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 SWAP1 PUSH1 0x20 DUP3 MUL DUP1 CODESIZE DUP4 CODECOPY POP SWAP2 SWAP3 SWAP2 POP POP JUMP STOP 0xdd CALLCODE MSTORE 0xad SHL 0xe2 0xc8 SWAP12 PUSH10 0xC2B068FC378DAA952BA7 CALL PUSH4 0xC4A11628 0xf5 GAS 0x4d 0xf5 0x23 0xb3 0xef LOG1 PUSH6 0x627A7A723058 KECCAK256 BALANCE 0xb5 PUSH11 0xEBC8336B547B3E1346F50C 0x2f DIFFICULTY 0xf7 0xd 0xef SSTORE 0x4e 0xd4 0xcb LOG4 0xc8 SHL 0xcf 0x2e MULMOD 0x2d DIV PUSH32 0x29000000000000000000000000000000000000000000000000000000000000 ", - "sourceMap": "243:3584:51:-;;;381:35;;;-1:-1:-1;;381:35:51;412:4;381:35;;;1016:118;5:2:-1;;;;30:1;27;20:12;5:2;1016:118:51;;;;;;;;;;;;;;;;;;;;;;;;;;1129:1;488:18:66;;-1:-1:-1;;;;;;488:18:66;496:10;488:18;;;1016:118:51;;;1444:19:49;;1016:118:51;;;;;;;;;;;;;;;1444:23:49;-1:-1:-1;1436:52:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1500:21;;1524:1;-1:-1:-1;1492:56:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1553:12;;;;:4;;:12;;;;;:::i;:::-;-1:-1:-1;1569:16:49;;;;:6;;:16;;;;;:::i;:::-;-1:-1:-1;1589:8:49;:20;;-1:-1:-1;;1589:20:49;;;;;;;;;;;;;1613:11;:26;;;1653:10;-1:-1:-1;1643:21:49;;;:9;:21;;;;;:36;-1:-1:-1;243:3584:51;;-1:-1:-1;;;;243:3584:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;243:3584:51;;;-1:-1:-1;243:3584:51;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;" - }, - "deployedBytecode": { - "linkReferences": {}, - "object": "6080604052600436106101065763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde03811461010b578063095ea7b3146101955780631608f18f146101cd57806318160ddd146101e957806323b872dd14610210578063313ce5671461023a57806354fd4d50146102655780635e35359e1461029157806370a08231146102bb57806379ba5097146102dc578063867904b4146102f15780638da5cb5b1461031557806395d89b4114610346578063a24835d11461035b578063a9059cbb1461037f578063bef97c87146103a3578063d4ee1d90146103b8578063dd62ed3e146103cd578063f2fde38b146103f4575b600080fd5b34801561011757600080fd5b50610120610415565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561015a578181015183820152602001610142565b50505050905090810190601f1680156101875780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101a157600080fd5b506101b9600160a060020a03600435166024356104a0565b604080519115158252519081900360200190f35b3480156101d957600080fd5b506101e76004351515610598565b005b3480156101f557600080fd5b506101fe6105b2565b60408051918252519081900360200190f35b34801561021c57600080fd5b506101b9600160a060020a03600435811690602435166044356105b8565b34801561024657600080fd5b5061024f6105df565b6040805160ff9092168252519081900360200190f35b34801561027157600080fd5b5061027a6105e8565b6040805161ffff9092168252519081900360200190f35b34801561029d57600080fd5b506101e7600160a060020a03600435811690602435166044356105ed565b3480156102c757600080fd5b506101fe600160a060020a0360043516610626565b3480156102e857600080fd5b506101e7610638565b3480156102fd57600080fd5b506101e7600160a060020a036004351660243561070b565b34801561032157600080fd5b5061032a6107ed565b60408051600160a060020a039092168252519081900360200190f35b34801561035257600080fd5b506101206107fc565b34801561036757600080fd5b506101e7600160a060020a0360043516602435610857565b34801561038b57600080fd5b506101b9600160a060020a036004351660243561091d565b3480156103af57600080fd5b506101b9610942565b3480156103c457600080fd5b5061032a61094b565b3480156103d957600080fd5b506101fe600160a060020a036004358116906024351661095a565b34801561040057600080fd5b506101e7600160a060020a0360043516610977565b6002805460408051602060018416156101000260001901909316849004601f810184900484028201840190925281815292918301828280156104985780601f1061046d57610100808354040283529160200191610498565b820191906000526020600020905b81548152906001019060200180831161047b57829003601f168201915b505050505081565b6000826104ac81610a14565b8215806104da5750336000908152600760209081526040808320600160a060020a0388168452909152902054155b1515610530576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f494e56414c49445f414d4f554e540000000000000000000000000000604482015290519081900360640190fd5b336000818152600760209081526040808320600160a060020a03891680855290835292819020879055805187815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060019392505050565b6105a0610a77565b6008805460ff19169115919091179055565b60055481565b60006105c2610adb565b6105cd848484610b37565b15156105d557fe5b5060019392505050565b60045460ff1681565b600481565b6105f5610a77565b826105ff81610a14565b8261060981610a14565b8361061381610c48565b61061e868686610ca9565b505050505050565b60066020526000908152604090205481565b600154600160a060020a0316331461069a576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b60015460008054604051600160a060020a0393841693909116917f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91a3600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b610713610a77565b8161071d81610a14565b8261072781610c48565b60055461073a908463ffffffff610d6316565b600555600160a060020a038416600090815260066020526040902054610766908463ffffffff610d6316565b600160a060020a03851660009081526006602090815260409182902092909255805185815290517f9386c90217c323f58030f9dadcbc938f807a940f4ff41cd4cead9562f5da7dc3929181900390910190a1604080518481529051600160a060020a03861691600091600080516020610f808339815191529181900360200190a350505050565b600054600160a060020a031681565b6003805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156104985780601f1061046d57610100808354040283529160200191610498565b61085f610a77565b600160a060020a038216600090815260066020526040902054610888908263ffffffff610dc716565b600160a060020a0383166000908152600660205260409020556005546108b4908263ffffffff610dc716565b600555604080518281529051600091600160a060020a03851691600080516020610f808339815191529181900360200190a36040805182815290517f9a1b418bc061a5d80270261562e6986a35d995f8051145f277be16103abd34539181900360200190a15050565b6000610927610adb565b6109318383610e27565b151561093957fe5b50600192915050565b60085460ff1681565b600154600160a060020a031681565b600760209081526000928352604080842090915290825290205481565b61097f610a77565b600054600160a060020a03828116911614156109e5576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f53414d455f4f574e4552000000000000000000000000000000000000604482015290519081900360640190fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600160a060020a0381161515610a74576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b50565b600054600160a060020a03163314610ad9576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b565b60085460ff161515610ad9576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f5452414e53464552535f44495341424c454400000000000000000000604482015290519081900360640190fd5b600083610b4381610a14565b83610b4d81610a14565b600160a060020a0386166000908152600760209081526040808320338452909152902054610b81908563ffffffff610dc716565b600160a060020a038716600081815260076020908152604080832033845282528083209490945591815260069091522054610bc2908563ffffffff610dc716565b600160a060020a038088166000908152600660205260408082209390935590871681522054610bf7908563ffffffff610d6316565b600160a060020a0380871660008181526006602090815260409182902094909455805188815290519193928a1692600080516020610f8083398151915292918290030190a350600195945050505050565b600160a060020a038116301415610a74576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f414444524553535f49535f53454c4600000000000000000000000000604482015290519081900360640190fd5b604080517f7472616e7366657228616464726573732c75696e74323536290000000000000081528151908190036019018120600160a060020a038516602483015260448083018590528351808403909101815260649092019092526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152610d5e908490610ed2565b505050565b600082820183811015610dc0576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b9392505050565b600081831015610e21576040805160e560020a62461bcd02815260206004820152600d60248201527f4552525f554e444552464c4f5700000000000000000000000000000000000000604482015290519081900360640190fd5b50900390565b600082610e3381610a14565b33600090815260066020526040902054610e53908463ffffffff610dc716565b3360009081526006602052604080822092909255600160a060020a03861681522054610e85908463ffffffff610d6316565b600160a060020a038516600081815260066020908152604091829020939093558051868152905191923392600080516020610f808339815191529281900390910190a35060019392505050565b610eda610f60565b602060405190810160405280600181525090506020818351602085016000875af1801515610f0757600080fd5b5080511515610d5e576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f5452414e534645525f4641494c454400000000000000000000000000604482015290519081900360640190fd5b60206040519081016040528060019060208202803883395091929150505600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a7230582031b56aebc8336b547b3e1346f50c2f44f70def554ed4cba4c81bcf2e092d047f0029", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x106 JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x6FDDE03 DUP2 EQ PUSH2 0x10B JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x195 JUMPI DUP1 PUSH4 0x1608F18F EQ PUSH2 0x1CD JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x1E9 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x210 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x23A JUMPI DUP1 PUSH4 0x54FD4D50 EQ PUSH2 0x265 JUMPI DUP1 PUSH4 0x5E35359E EQ PUSH2 0x291 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x2BB JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x2DC JUMPI DUP1 PUSH4 0x867904B4 EQ PUSH2 0x2F1 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x315 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x346 JUMPI DUP1 PUSH4 0xA24835D1 EQ PUSH2 0x35B JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x37F JUMPI DUP1 PUSH4 0xBEF97C87 EQ PUSH2 0x3A3 JUMPI DUP1 PUSH4 0xD4EE1D90 EQ PUSH2 0x3B8 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x3CD JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x3F4 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x117 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x120 PUSH2 0x415 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP4 MLOAD DUP2 DUP4 ADD MSTORE DUP4 MLOAD SWAP2 SWAP3 DUP4 SWAP3 SWAP1 DUP4 ADD SWAP2 DUP6 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x15A JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x142 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x187 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1A1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B9 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x4A0 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1D9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH1 0x4 CALLDATALOAD ISZERO ISZERO PUSH2 0x598 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1FE PUSH2 0x5B2 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x21C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B9 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x5B8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x246 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x24F PUSH2 0x5DF JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x271 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x27A PUSH2 0x5E8 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0xFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x29D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x5ED JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2C7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1FE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x626 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2E8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH2 0x638 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2FD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x70B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x321 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x32A PUSH2 0x7ED JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x352 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x120 PUSH2 0x7FC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x367 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x857 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x38B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B9 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x91D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3AF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B9 PUSH2 0x942 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3C4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x32A PUSH2 0x94B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3D9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1FE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH2 0x95A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x400 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x977 JUMP JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x1 DUP5 AND ISZERO PUSH2 0x100 MUL PUSH1 0x0 NOT ADD SWAP1 SWAP4 AND DUP5 SWAP1 DIV PUSH1 0x1F DUP2 ADD DUP5 SWAP1 DIV DUP5 MUL DUP3 ADD DUP5 ADD SWAP1 SWAP3 MSTORE DUP2 DUP2 MSTORE SWAP3 SWAP2 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x498 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x46D JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x498 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x47B JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x4AC DUP2 PUSH2 0xA14 JUMP JUMPDEST DUP3 ISZERO DUP1 PUSH2 0x4DA JUMPI POP CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x530 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F414D4F554E540000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST CALLER PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP10 AND DUP1 DUP6 MSTORE SWAP1 DUP4 MSTORE SWAP3 DUP2 SWAP1 KECCAK256 DUP8 SWAP1 SSTORE DUP1 MLOAD DUP8 DUP2 MSTORE SWAP1 MLOAD SWAP3 SWAP4 SWAP3 PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP3 SWAP2 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x5A0 PUSH2 0xA77 JUMP JUMPDEST PUSH1 0x8 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP2 ISZERO SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x5 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5C2 PUSH2 0xADB JUMP JUMPDEST PUSH2 0x5CD DUP5 DUP5 DUP5 PUSH2 0xB37 JUMP JUMPDEST ISZERO ISZERO PUSH2 0x5D5 JUMPI INVALID JUMPDEST POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x4 DUP2 JUMP JUMPDEST PUSH2 0x5F5 PUSH2 0xA77 JUMP JUMPDEST DUP3 PUSH2 0x5FF DUP2 PUSH2 0xA14 JUMP JUMPDEST DUP3 PUSH2 0x609 DUP2 PUSH2 0xA14 JUMP JUMPDEST DUP4 PUSH2 0x613 DUP2 PUSH2 0xC48 JUMP JUMPDEST PUSH2 0x61E DUP7 DUP7 DUP7 PUSH2 0xCA9 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x69A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND SWAP4 SWAP1 SWAP2 AND SWAP2 PUSH32 0x343765429AEA5A34B3FF6A3785A98A5ABB2597ACA87BFBB58632C173D585373A SWAP2 LOG3 PUSH1 0x1 DUP1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND OR SWAP1 SWAP2 SSTORE AND SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x713 PUSH2 0xA77 JUMP JUMPDEST DUP2 PUSH2 0x71D DUP2 PUSH2 0xA14 JUMP JUMPDEST DUP3 PUSH2 0x727 DUP2 PUSH2 0xC48 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH2 0x73A SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0xD63 AND JUMP JUMPDEST PUSH1 0x5 SSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x766 SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0xD63 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SWAP3 SWAP1 SWAP3 SSTORE DUP1 MLOAD DUP6 DUP2 MSTORE SWAP1 MLOAD PUSH32 0x9386C90217C323F58030F9DADCBC938F807A940F4FF41CD4CEAD9562F5DA7DC3 SWAP3 SWAP2 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG1 PUSH1 0x40 DUP1 MLOAD DUP5 DUP2 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND SWAP2 PUSH1 0x0 SWAP2 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xF80 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP2 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 LOG3 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x2 PUSH1 0x1 DUP6 AND ISZERO PUSH2 0x100 MUL PUSH1 0x0 NOT ADD SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 DIV PUSH1 0x1F DUP2 ADD DUP5 SWAP1 DIV DUP5 MUL DUP3 ADD DUP5 ADD SWAP1 SWAP3 MSTORE DUP2 DUP2 MSTORE SWAP3 SWAP2 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x498 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x46D JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x498 JUMP JUMPDEST PUSH2 0x85F PUSH2 0xA77 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x888 SWAP1 DUP3 PUSH4 0xFFFFFFFF PUSH2 0xDC7 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE PUSH1 0x5 SLOAD PUSH2 0x8B4 SWAP1 DUP3 PUSH4 0xFFFFFFFF PUSH2 0xDC7 AND JUMP JUMPDEST PUSH1 0x5 SSTORE PUSH1 0x40 DUP1 MLOAD DUP3 DUP2 MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND SWAP2 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xF80 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP2 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 LOG3 PUSH1 0x40 DUP1 MLOAD DUP3 DUP2 MSTORE SWAP1 MLOAD PUSH32 0x9A1B418BC061A5D80270261562E6986A35D995F8051145F277BE16103ABD3453 SWAP2 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x927 PUSH2 0xADB JUMP JUMPDEST PUSH2 0x931 DUP4 DUP4 PUSH2 0xE27 JUMP JUMPDEST ISZERO ISZERO PUSH2 0x939 JUMPI INVALID JUMPDEST POP PUSH1 0x1 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x97F PUSH2 0xA77 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x9E5 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F4F574E4552000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0xA74 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0xAD9 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0xFF AND ISZERO ISZERO PUSH2 0xAD9 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5452414E53464552535F44495341424C454400000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP4 PUSH2 0xB43 DUP2 PUSH2 0xA14 JUMP JUMPDEST DUP4 PUSH2 0xB4D DUP2 PUSH2 0xA14 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH2 0xB81 SWAP1 DUP6 PUSH4 0xFFFFFFFF PUSH2 0xDC7 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE DUP3 MSTORE DUP1 DUP4 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE SWAP2 DUP2 MSTORE PUSH1 0x6 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD PUSH2 0xBC2 SWAP1 DUP6 PUSH4 0xFFFFFFFF PUSH2 0xDC7 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE SWAP1 DUP8 AND DUP2 MSTORE KECCAK256 SLOAD PUSH2 0xBF7 SWAP1 DUP6 PUSH4 0xFFFFFFFF PUSH2 0xD63 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP8 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE DUP1 MLOAD DUP9 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP4 SWAP3 DUP11 AND SWAP3 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xF80 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP3 SWAP2 DUP3 SWAP1 SUB ADD SWAP1 LOG3 POP PUSH1 0x1 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ADDRESS EQ ISZERO PUSH2 0xA74 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F414444524553535F49535F53454C4600000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x7472616E7366657228616464726573732C75696E743235362900000000000000 DUP2 MSTORE DUP2 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x19 ADD DUP2 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x64 SWAP1 SWAP3 ADD SWAP1 SWAP3 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE PUSH2 0xD5E SWAP1 DUP5 SWAP1 PUSH2 0xED2 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 ADD DUP4 DUP2 LT ISZERO PUSH2 0xDC0 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT ISZERO PUSH2 0xE21 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F554E444552464C4F5700000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP SWAP1 SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0xE33 DUP2 PUSH2 0xA14 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0xE53 SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0xDC7 AND JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP3 SWAP1 SWAP3 SSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP7 AND DUP2 MSTORE KECCAK256 SLOAD PUSH2 0xE85 SWAP1 DUP5 PUSH4 0xFFFFFFFF PUSH2 0xD63 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE DUP1 MLOAD DUP7 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP3 CALLER SWAP3 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xF80 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0xEDA PUSH2 0xF60 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE POP SWAP1 POP PUSH1 0x20 DUP2 DUP4 MLOAD PUSH1 0x20 DUP6 ADD PUSH1 0x0 DUP8 GAS CALL DUP1 ISZERO ISZERO PUSH2 0xF07 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD ISZERO ISZERO PUSH2 0xD5E JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5452414E534645525F4641494C454400000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 SWAP1 PUSH1 0x20 DUP3 MUL DUP1 CODESIZE DUP4 CODECOPY POP SWAP2 SWAP3 SWAP2 POP POP JUMP STOP 0xdd CALLCODE MSTORE 0xad SHL 0xe2 0xc8 SWAP12 PUSH10 0xC2B068FC378DAA952BA7 CALL PUSH4 0xC4A11628 0xf5 GAS 0x4d 0xf5 0x23 0xb3 0xef LOG1 PUSH6 0x627A7A723058 KECCAK256 BALANCE 0xb5 PUSH11 0xEBC8336B547B3E1346F50C 0x2f DIFFICULTY 0xf7 0xd 0xef SSTORE 0x4e 0xd4 0xcb LOG4 0xc8 SHL 0xcf 0x2e MULMOD 0x2d DIV PUSH32 0x29000000000000000000000000000000000000000000000000000000000000 ", - "sourceMap": "243:3584:51:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;256:18:49;;8:9:-1;5:2;;;30:1;27;20:12;5:2;256:18:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;256:18:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3601:420;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3601:420:49;;;-1:-1:-1;;;;;3601:420:49;;;;;;;;;;;;;;;;;;;;;;;1565:94:51;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1565:94:51;;;;;;;;;324:26:49;;8:9:-1;5:2;;;30:1;27;20:12;5:2;324:26:49;;;;;;;;;;;;;;;;;;;;3634:191:51;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3634:191:51;-1:-1:-1;;;;;3634:191:51;;;;;;;;;;;;300:21:49;;8:9:-1;5:2;;;30:1;27;20:12;5:2;300:21:49;;;;;;;;;;;;;;;;;;;;;;;343:34:51;;8:9:-1;5:2;;;30:1;27;20:12;5:2;343:34:51;;;;;;;;;;;;;;;;;;;;;;;1077:194:71;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1077:194:71;-1:-1:-1;;;;;1077:194:71;;;;;;;;;;;;353:44:49;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;353:44:49;;;-1:-1:-1;;;;;353:44:49;;;1159:176:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1159:176:66;;;;1910:257:51;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1910:257:51;;;-1:-1:-1;;;;;1910:257:51;;;;;157:20:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;157:20:66;;;;;;;;-1:-1:-1;;;;;157:20:66;;;;;;;;;;;;;;277::49;;8:9:-1;5:2;;;30:1;27;20:12;5:2;277:20:49;;;;2414:239:51;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2414:239:51;;;-1:-1:-1;;;;;2414:239:51;;;;;3066:152;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3066:152:51;;;-1:-1:-1;;;;;3066:152:51;;;;;381:35;;8:9:-1;5:2;;;30:1;27;20:12;5:2;381:35:51;;;;180:23:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;180:23:66;;;;400:64:49;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;400:64:49;-1:-1:-1;;;;;400:64:49;;;;;;;;;;945:140:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;945:140:66;;;-1:-1:-1;;;;;945:140:66;;;256:18:49;;;;;;;;;;;;;;-1:-1:-1;;256:18:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;3601:420::-;3691:12;3672:8;475:23:72;489:8;475:13;:23::i;:::-;3836:11:49;;;:51;;-1:-1:-1;3861:10:49;3851:21;;;;:9;:21;;;;;;;;-1:-1:-1;;;;;3851:31:49;;;;;;;;;;:36;3836:51;3828:82;;;;;;;-1:-1:-1;;;;;3828:82:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;3925:10;3915:21;;;;:9;:21;;;;;;;;-1:-1:-1;;;;;3915:31:49;;;;;;;;;;;;:40;;;3964:38;;;;;;;3915:31;;3925:10;3964:38;;;;;;;;;;;-1:-1:-1;4013:4:49;;3601:420;-1:-1:-1;;;3601:420:49:o;1565:94:51:-;575:12:66;:10;:12::i;:::-;1627:16:51;:28;;-1:-1:-1;;1627:28:51;1646:9;;1627:28;;;;;;1565:94::o;324:26:49:-;;;;:::o;3634:191:51:-;3742:12;1220:19;:17;:19::i;:::-;3767:38;3786:5;3793:3;3798:6;3767:18;:38::i;:::-;3760:46;;;;;;-1:-1:-1;3817:4:51;3634:191;;;;;:::o;300:21:49:-;;;;;;:::o;343:34:51:-;376:1;343:34;:::o;1077:194:71:-;575:12:66;:10;:12::i;:::-;1190:6:71;475:23:72;489:8;475:13;:23::i;:::-;1211:3:71;475:23:72;489:8;475:13;:23::i;:::-;1224:3:71;782:18:72;791:8;782;:18::i;:::-;1233:34:71;1246:6;1254:3;1259:7;1233:12;:34::i;:::-;502:1:72;;591::66;1077:194:71;;;:::o;353:44:49:-;;;;;;;;;;;;;:::o;1159:176:66:-;1219:8;;-1:-1:-1;;;;;1219:8:66;1205:10;:22;1197:52;;;;;-1:-1:-1;;;;;1197:52:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;1277:8;;;1270:5;;1258:28;;-1:-1:-1;;;;;1277:8:66;;;;1270:5;;;;1258:28;;;1298:8;;;;1290:16;;-1:-1:-1;;;;;1298:8:66;;-1:-1:-1;;1290:16:66;;;;;;;1310:21;;;1159:176::o;1910:257:51:-;575:12:66;:10;:12::i;:::-;1985:3:51;475:23:72;489:8;475:13;:23::i;:::-;1998:3:51;782:18:72;791:8;782;:18::i;:::-;2021:11:51;;:24;;2037:7;2021:24;:15;:24;:::i;:::-;2007:11;:38;-1:-1:-1;;;;;2066:14:51;;;;;;:9;:14;;;;;;:27;;2085:7;2066:18;:27::i;:::-;-1:-1:-1;;;;;2049:14:51;;;;;;:9;:14;;;;;;;;;:44;;;;2103:17;;;;;;;;;;;;;;;;;;2129:34;;;;;;;;2146:1;-1:-1:-1;;;;;;;2129:34:51;;;2146:1;;2129:34;2146:1;;-1:-1:-1;;2146:1:51;-1:-1:-1;;;;;2129:34:51;;;;;;;;502:1:72;591::66;1910:257:51;;:::o;157:20:66:-;;;-1:-1:-1;;;;;157:20:66;;:::o;277::49:-;;;;;;;;;;;;;;;-1:-1:-1;;277:20:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2414:239:51;575:12:66;:10;:12::i;:::-;-1:-1:-1;;;;;2503:16:51;;;;;;:9;:16;;;;;;:29;;2524:7;2503:20;:29::i;:::-;-1:-1:-1;;;;;2484:16:51;;;;;;:9;:16;;;;;:48;2550:11;;:24;;2566:7;2550:15;:24::i;:::-;2536:11;:38;2584:36;;;;;;;;2608:1;;-1:-1:-1;;;;;2584:36:51;;;-1:-1:-1;;;;;;;;;;;2584:36:51;;;;;;;;2629:20;;;;;;;;;;;;;;;;;2414:239;;:::o;3066:152::-;3146:12;1220:19;:17;:19::i;:::-;3171:27;3186:3;3191:6;3171:14;:27::i;:::-;3164:35;;;;;;-1:-1:-1;3210:4:51;3066:152;;;;:::o;381:35::-;;;;;;:::o;180:23:66:-;;;-1:-1:-1;;;;;180:23:66;;:::o;400:64:49:-;;;;;;;;;;;;;;;;;;;;;;;;:::o;945:140:66:-;575:12;:10;:12::i;:::-;1033:5;;-1:-1:-1;;;;;1020:18:66;;;1033:5;;1020:18;;1012:45;;;;;-1:-1:-1;;;;;1012:45:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;1061:8;:20;;-1:-1:-1;;1061:20:66;-1:-1:-1;;;;;1061:20:66;;;;;;;;;;945:140::o;553:117:72:-;-1:-1:-1;;;;;620:22:72;;;;612:54;;;;;-1:-1:-1;;;;;612:54:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;553:117;:::o;642:93:66:-;704:5;;-1:-1:-1;;;;;704:5:66;690:10;:19;682:49;;;;;-1:-1:-1;;;;;682:49:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;642:93::o;1294:102:51:-;1349:16;;;;1341:51;;;;;;;-1:-1:-1;;;;;1341:51:51;;;;;;;;;;;;;;;;;;;;;;;;;;;2581:372:49;2710:12;2676:5;475:23:72;489:8;475:13;:23::i;:::-;2696:3:49;475:23:72;489:8;475:13;:23::i;:::-;-1:-1:-1;;;;;2759:16:49;;;;;;:9;:16;;;;;;;;2776:10;2759:28;;;;;;;;:40;;2792:6;2759:32;:40::i;:::-;-1:-1:-1;;;;;2728:16:49;;;;;;:9;:16;;;;;;;;2745:10;2728:28;;;;;;;:71;;;;2822:16;;;:9;:16;;;;;:28;;2843:6;2822:20;:28::i;:::-;-1:-1:-1;;;;;2803:16:49;;;;;;;:9;:16;;;;;;:47;;;;2871:14;;;;;;;:26;;2890:6;2871:18;:26::i;:::-;-1:-1:-1;;;;;2854:14:49;;;;;;;:9;:14;;;;;;;;:43;;;;2906:28;;;;;;;-1:-1:-1;;2854:14:49;;2906:28;;;;;;;;2854:14;;-1:-1:-1;2854:14:49;-1:-1:-1;;;;;2906:28:49;;;;;;;;-1:-1:-1;2945:4:49;;2581:372;-1:-1:-1;;;;;2581:372:49:o;855:115:72:-;937:4;-1:-1:-1;;;;;917:25:72;;;;909:57;;;;;-1:-1:-1;;;;;909:57:72;;;;;;;;;;;;;;;;;;;;;;;;;;;1214:173:70;248:38;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1323:59:70;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;1323:59:70;;;;;;;;25:18:-1;;61:17;;1323:59:70;182:15:-1;1323:59:70;;;;179:29:-1;;;;160:49;;;1307:76:70;;1315:6;;1307:7;:76::i;:::-;1214:173;;;:::o;288:144:69:-;348:7;373;;;392;;;;384:32;;;;;-1:-1:-1;;;;;384:32:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;427:1;288:144;-1:-1:-1;;;288:144:69:o;613:129::-;673:7;694:8;;;;686:34;;;;;-1:-1:-1;;;;;686:34:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;731:7:69;;;613:129::o;1968:264:49:-;2049:12;2035:3;475:23:72;489:8;475:13;:23::i;:::-;2101:10:49;2091:21;;;;:9;:21;;;;;;:33;;2117:6;2091:33;:25;:33;:::i;:::-;2077:10;2067:21;;;;:9;:21;;;;;;:57;;;;-1:-1:-1;;;;;2145:14:49;;;;;;:26;;2164:6;2145:18;:26::i;:::-;-1:-1:-1;;;;;2128:14:49;;;;;;:9;:14;;;;;;;;:43;;;;2180:33;;;;;;;-1:-1:-1;;2128:14:49;;2189:10;;2180:33;;2128:14;;-1:-1:-1;2128:14:49;-1:-1:-1;;;;;2180:33:49;;;;;;;;;-1:-1:-1;2224:4:49;;1968:264;-1:-1:-1;;;1968:264:49:o;2255:557:70:-;2324:21;;:::i;:::-;:36;;;;;;;;;2357:1;2324:36;;;;;2687:2;2661:3;2580:5;2574:12;2495:2;2488:5;2484:14;2465:1;2430:6;2404:3;2394:317;2725:7;2718:15;2715:2;;;2750:1;2747;2740:12;2715:2;-1:-1:-1;2773:6:70;;:11;;2765:43;;;;;-1:-1:-1;;;;;2765:43:70;;;;;;;;;;;;;;;;;;;;;;;;;;;243:3584:51;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;-1:-1;243:3584:51;;;-1:-1:-1;;243:3584:51:o" - }, - "methodIdentifiers": { - "acceptOwnership()": "79ba5097", - "allowance(address,address)": "dd62ed3e", - "approve(address,uint256)": "095ea7b3", - "balanceOf(address)": "70a08231", - "decimals()": "313ce567", - "destroy(address,uint256)": "a24835d1", - "disableTransfers(bool)": "1608f18f", - "issue(address,uint256)": "867904b4", - "name()": "06fdde03", - "newOwner()": "d4ee1d90", - "owner()": "8da5cb5b", - "symbol()": "95d89b41", - "totalSupply()": "18160ddd", - "transfer(address,uint256)": "a9059cbb", - "transferFrom(address,address,uint256)": "23b872dd", - "transferOwnership(address)": "f2fde38b", - "transfersEnabled()": "bef97c87", - "version()": "54fd4d50", - "withdrawTokens(address,address,uint256)": "5e35359e" - } - }, - "userdoc": { - "methods": {} - } - } - }, - "solidity/contracts/token/interfaces/IERC20Token.sol": { - "IERC20Token": { - "abi": [ - { - "constant": true, - "inputs": [], - "name": "name", - "outputs": [ - { - "name": "", - "type": "string" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_spender", - "type": "address" - }, - { - "name": "_value", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [ - { - "name": "success", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "totalSupply", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_from", - "type": "address" - }, - { - "name": "_to", - "type": "address" - }, - { - "name": "_value", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [ - { - "name": "success", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "decimals", - "outputs": [ - { - "name": "", - "type": "uint8" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_owner", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "symbol", - "outputs": [ - { - "name": "", - "type": "string" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_to", - "type": "address" - }, - { - "name": "_value", - "type": "uint256" - } - ], - "name": "transfer", - "outputs": [ - { - "name": "success", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_owner", - "type": "address" - }, - { - "name": "_spender", - "type": "address" - } - ], - "name": "allowance", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - } - ], - "devdoc": { - "methods": {} - }, - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "deployedBytecode": { - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "methodIdentifiers": { - "allowance(address,address)": "dd62ed3e", - "approve(address,uint256)": "095ea7b3", - "balanceOf(address)": "70a08231", - "decimals()": "313ce567", - "name()": "06fdde03", - "symbol()": "95d89b41", - "totalSupply()": "18160ddd", - "transfer(address,uint256)": "a9059cbb", - "transferFrom(address,address,uint256)": "23b872dd" - } - }, - "userdoc": { - "methods": {} - } - } - }, - "solidity/contracts/token/interfaces/IEtherToken.sol": { - "IEtherToken": { - "abi": [ - { - "constant": true, - "inputs": [], - "name": "name", - "outputs": [ - { - "name": "", - "type": "string" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_spender", - "type": "address" - }, - { - "name": "_value", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [ - { - "name": "success", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "totalSupply", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_to", - "type": "address" - }, - { - "name": "_amount", - "type": "uint256" - } - ], - "name": "withdrawTo", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_from", - "type": "address" - }, - { - "name": "_to", - "type": "address" - }, - { - "name": "_value", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [ - { - "name": "success", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_amount", - "type": "uint256" - } - ], - "name": "withdraw", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "decimals", - "outputs": [ - { - "name": "", - "type": "uint8" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_owner", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "symbol", - "outputs": [ - { - "name": "", - "type": "string" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_to", - "type": "address" - }, - { - "name": "_value", - "type": "uint256" - } - ], - "name": "transfer", - "outputs": [ - { - "name": "success", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_to", - "type": "address" - } - ], - "name": "depositTo", - "outputs": [], - "payable": true, - "stateMutability": "payable", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "deposit", - "outputs": [], - "payable": true, - "stateMutability": "payable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_owner", - "type": "address" - }, - { - "name": "_spender", - "type": "address" - } - ], - "name": "allowance", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - } - ], - "devdoc": { - "methods": {} - }, - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "deployedBytecode": { - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "methodIdentifiers": { - "allowance(address,address)": "dd62ed3e", - "approve(address,uint256)": "095ea7b3", - "balanceOf(address)": "70a08231", - "decimals()": "313ce567", - "deposit()": "d0e30db0", - "depositTo(address)": "b760faf9", - "name()": "06fdde03", - "symbol()": "95d89b41", - "totalSupply()": "18160ddd", - "transfer(address,uint256)": "a9059cbb", - "transferFrom(address,address,uint256)": "23b872dd", - "withdraw(uint256)": "2e1a7d4d", - "withdrawTo(address,uint256)": "205c2878" - } - }, - "userdoc": { - "methods": {} - } - } - }, - "solidity/contracts/token/interfaces/ISmartToken.sol": { - "ISmartToken": { - "abi": [ - { - "constant": true, - "inputs": [], - "name": "name", - "outputs": [ - { - "name": "", - "type": "string" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_spender", - "type": "address" - }, - { - "name": "_value", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [ - { - "name": "success", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_disable", - "type": "bool" - } - ], - "name": "disableTransfers", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "totalSupply", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_from", - "type": "address" - }, - { - "name": "_to", - "type": "address" - }, - { - "name": "_value", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [ - { - "name": "success", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "decimals", - "outputs": [ - { - "name": "", - "type": "uint8" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_token", - "type": "address" - }, - { - "name": "_to", - "type": "address" - }, - { - "name": "_amount", - "type": "uint256" - } - ], - "name": "withdrawTokens", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_owner", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "acceptOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_to", - "type": "address" - }, - { - "name": "_amount", - "type": "uint256" - } - ], - "name": "issue", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "owner", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "symbol", - "outputs": [ - { - "name": "", - "type": "string" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_from", - "type": "address" - }, - { - "name": "_amount", - "type": "uint256" - } - ], - "name": "destroy", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_to", - "type": "address" - }, - { - "name": "_value", - "type": "uint256" - } - ], - "name": "transfer", - "outputs": [ - { - "name": "success", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_owner", - "type": "address" - }, - { - "name": "_spender", - "type": "address" - } - ], - "name": "allowance", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - } - ], - "devdoc": { - "methods": {} - }, - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "deployedBytecode": { - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "methodIdentifiers": { - "acceptOwnership()": "79ba5097", - "allowance(address,address)": "dd62ed3e", - "approve(address,uint256)": "095ea7b3", - "balanceOf(address)": "70a08231", - "decimals()": "313ce567", - "destroy(address,uint256)": "a24835d1", - "disableTransfers(bool)": "1608f18f", - "issue(address,uint256)": "867904b4", - "name()": "06fdde03", - "owner()": "8da5cb5b", - "symbol()": "95d89b41", - "totalSupply()": "18160ddd", - "transfer(address,uint256)": "a9059cbb", - "transferFrom(address,address,uint256)": "23b872dd", - "transferOwnership(address)": "f2fde38b", - "withdrawTokens(address,address,uint256)": "5e35359e" - } - }, - "userdoc": { - "methods": {} - } - } - }, - "solidity/contracts/utility/BProOracle.sol": { - "BProOracle": { - "abi": [ - { - "constant": false, - "inputs": [ - { - "name": "_mocStateAddress", - "type": "address" - } - ], - "name": "setMoCStateAddress", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "latestAnswer", - "outputs": [ - { - "name": "", - "type": "int256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "acceptOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "latestTimestamp", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "owner", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "mocStateAddress", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "newOwner", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "name": "_mocStateAddress", - "type": "address" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "mocStateAddress", - "type": "address" - }, - { - "indexed": false, - "name": "changerAddress", - "type": "address" - } - ], - "name": "SetMoCStateAddress", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "_prevOwner", - "type": "address" - }, - { - "indexed": true, - "name": "_newOwner", - "type": "address" - } - ], - "name": "OwnerUpdate", - "type": "event" - } - ], - "devdoc": { - "methods": { - "acceptOwnership()": { - "details": "used by a new owner to accept an ownership transfer" - }, - "latestAnswer()": { - "details": "BPro USD PRICE", - "return": "the BPro USD Price [using mocPrecision]" - }, - "latestTimestamp()": { - "details": "returns the update time.", - "return": "always returns current block's timestamp" - }, - "setMoCStateAddress(address)": { - "details": "set MoC state address", - "params": { - "_mocStateAddress": "MoC state address" - } - }, - "transferOwnership(address)": { - "details": "allows transferring the contract ownership the new owner still needs to accept the transfer can only be called by the contract owner", - "params": { - "_newOwner": "new contract owner" - } - } - } - }, - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "608060405234801561001057600080fd5b50604051602080610720833981016040525160008054600160a060020a031916331790556100468164010000000061004c810204565b506101d2565b61005d640100000000610157810204565b600160a060020a03811615156100fa57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5f6d6f63537461746541646472657373207368616c6c206e6f74206265207a6560448201527f726f206164647265737300000000000000000000000000000000000000000000606482015290519081900360840190fd5b60028054600160a060020a031916600160a060020a03838116919091179182905560408051338152905192909116917faabf985d3e03e92a41537d04d0e369c7afc56183856290aa2c1a230768842ef4916020908290030190a250565b600054600160a060020a031633146101d057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b565b61053f806101e16000396000f30060806040526004361061008d5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166327bcc684811461009257806350d25bcd146100b557806379ba5097146100dc5780638205bf6a146100f15780638da5cb5b14610106578063ab5e3e5b14610137578063d4ee1d901461014c578063f2fde38b14610161575b600080fd5b34801561009e57600080fd5b506100b3600160a060020a0360043516610182565b005b3480156100c157600080fd5b506100ca61027a565b60408051918252519081900360200190f35b3480156100e857600080fd5b506100b361030e565b3480156100fd57600080fd5b506100ca6103e1565b34801561011257600080fd5b5061011b6103e5565b60408051600160a060020a039092168252519081900360200190f35b34801561014357600080fd5b5061011b6103f4565b34801561015857600080fd5b5061011b610403565b34801561016d57600080fd5b506100b3600160a060020a0360043516610412565b61018a6104af565b600160a060020a0381161515610210576040805160e560020a62461bcd02815260206004820152602a60248201527f5f6d6f63537461746541646472657373207368616c6c206e6f74206265207a6560448201527f726f206164647265737300000000000000000000000000000000000000000000606482015290519081900360840190fd5b6002805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03838116919091179182905560408051338152905192909116917faabf985d3e03e92a41537d04d0e369c7afc56183856290aa2c1a230768842ef4916020908290030190a250565b600254604080517f747a56630000000000000000000000000000000000000000000000000000000081529051600092600160a060020a031691829163747a56639160048082019260209290919082900301818887803b1580156102dc57600080fd5b505af11580156102f0573d6000803e3d6000fd5b505050506040513d602081101561030657600080fd5b505191505090565b600154600160a060020a03163314610370576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b60015460008054604051600160a060020a0393841693909116917f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91a3600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b4290565b600054600160a060020a031681565b600254600160a060020a031681565b600154600160a060020a031681565b61041a6104af565b600054600160a060020a0382811691161415610480576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f53414d455f4f574e4552000000000000000000000000000000000000604482015290519081900360640190fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600054600160a060020a03163314610511576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b5600a165627a7a7230582053b09a203fc6c1287331f418788e6c63719ea550dcf43c898bc7a59fb166c3b10029", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP1 PUSH2 0x720 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 MSTORE MLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND CALLER OR SWAP1 SSTORE PUSH2 0x46 DUP2 PUSH5 0x100000000 PUSH2 0x4C DUP2 MUL DIV JUMP JUMPDEST POP PUSH2 0x1D2 JUMP JUMPDEST PUSH2 0x5D PUSH5 0x100000000 PUSH2 0x157 DUP2 MUL DIV JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0xFA JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5F6D6F63537461746541646472657373207368616C6C206E6F74206265207A65 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x726F206164647265737300000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x84 ADD SWAP1 REVERT JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 DUP2 AND SWAP2 SWAP1 SWAP2 OR SWAP2 DUP3 SWAP1 SSTORE PUSH1 0x40 DUP1 MLOAD CALLER DUP2 MSTORE SWAP1 MLOAD SWAP3 SWAP1 SWAP2 AND SWAP2 PUSH32 0xAABF985D3E03E92A41537D04D0E369C7AFC56183856290AA2C1A230768842EF4 SWAP2 PUSH1 0x20 SWAP1 DUP3 SWAP1 SUB ADD SWAP1 LOG2 POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x1D0 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH2 0x53F DUP1 PUSH2 0x1E1 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x8D JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x27BCC684 DUP2 EQ PUSH2 0x92 JUMPI DUP1 PUSH4 0x50D25BCD EQ PUSH2 0xB5 JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0xDC JUMPI DUP1 PUSH4 0x8205BF6A EQ PUSH2 0xF1 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x106 JUMPI DUP1 PUSH4 0xAB5E3E5B EQ PUSH2 0x137 JUMPI DUP1 PUSH4 0xD4EE1D90 EQ PUSH2 0x14C JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x161 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x182 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xC1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xCA PUSH2 0x27A JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xE8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB3 PUSH2 0x30E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xFD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xCA PUSH2 0x3E1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x112 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x11B PUSH2 0x3E5 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x143 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x11B PUSH2 0x3F4 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x158 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x11B PUSH2 0x403 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x16D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x412 JUMP JUMPDEST PUSH2 0x18A PUSH2 0x4AF JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0x210 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5F6D6F63537461746541646472657373207368616C6C206E6F74206265207A65 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x726F206164647265737300000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x84 ADD SWAP1 REVERT JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 DUP2 AND SWAP2 SWAP1 SWAP2 OR SWAP2 DUP3 SWAP1 SSTORE PUSH1 0x40 DUP1 MLOAD CALLER DUP2 MSTORE SWAP1 MLOAD SWAP3 SWAP1 SWAP2 AND SWAP2 PUSH32 0xAABF985D3E03E92A41537D04D0E369C7AFC56183856290AA2C1A230768842EF4 SWAP2 PUSH1 0x20 SWAP1 DUP3 SWAP1 SUB ADD SWAP1 LOG2 POP JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x747A566300000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP2 DUP3 SWAP2 PUSH4 0x747A5663 SWAP2 PUSH1 0x4 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP9 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2DC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2F0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x306 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 POP POP SWAP1 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x370 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND SWAP4 SWAP1 SWAP2 AND SWAP2 PUSH32 0x343765429AEA5A34B3FF6A3785A98A5ABB2597ACA87BFBB58632C173D585373A SWAP2 LOG3 PUSH1 0x1 DUP1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND OR SWAP1 SWAP2 SSTORE AND SWAP1 SSTORE JUMP JUMPDEST TIMESTAMP SWAP1 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH2 0x41A PUSH2 0x4AF JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x480 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F4F574E4552000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x511 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST JUMP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 MSTORE8 0xb0 SWAP11 KECCAK256 0x3f 0xc6 0xc1 0x28 PUSH20 0x31F418788E6C63719EA550DCF43C898BC7A59FB1 PUSH7 0xC3B10029000000 ", - "sourceMap": "133:1182:55:-;;;403:89;8:9:-1;5:2;;;30:1;27;20:12;5:2;403:89:55;;;;;;;;;;;;;488:5:66;:18;;-1:-1:-1;;;;;;488:18:66;496:10;488:18;;;452:36:55;403:89;452:18;;;;:36;:::i;:::-;403:89;133:1182;;1055:258;575:12:66;:10;;;;:12;:::i;:::-;-1:-1:-1;;;;;1138:30:55;;;;1130:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1219:15;:34;;-1:-1:-1;;;;;;1219:34:55;-1:-1:-1;;;;;1219:34:55;;;;;;;;;;;1262:47;;;1298:10;1262:47;;;;1281:15;;;;;1262:47;;;;;;;;;;1055:258;:::o;642:93:66:-;704:5;;-1:-1:-1;;;;;704:5:66;690:10;:19;682:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;642:93::o;133:1182:55:-;;;;;;;" - }, - "deployedBytecode": { - "linkReferences": {}, - "object": "60806040526004361061008d5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166327bcc684811461009257806350d25bcd146100b557806379ba5097146100dc5780638205bf6a146100f15780638da5cb5b14610106578063ab5e3e5b14610137578063d4ee1d901461014c578063f2fde38b14610161575b600080fd5b34801561009e57600080fd5b506100b3600160a060020a0360043516610182565b005b3480156100c157600080fd5b506100ca61027a565b60408051918252519081900360200190f35b3480156100e857600080fd5b506100b361030e565b3480156100fd57600080fd5b506100ca6103e1565b34801561011257600080fd5b5061011b6103e5565b60408051600160a060020a039092168252519081900360200190f35b34801561014357600080fd5b5061011b6103f4565b34801561015857600080fd5b5061011b610403565b34801561016d57600080fd5b506100b3600160a060020a0360043516610412565b61018a6104af565b600160a060020a0381161515610210576040805160e560020a62461bcd02815260206004820152602a60248201527f5f6d6f63537461746541646472657373207368616c6c206e6f74206265207a6560448201527f726f206164647265737300000000000000000000000000000000000000000000606482015290519081900360840190fd5b6002805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03838116919091179182905560408051338152905192909116917faabf985d3e03e92a41537d04d0e369c7afc56183856290aa2c1a230768842ef4916020908290030190a250565b600254604080517f747a56630000000000000000000000000000000000000000000000000000000081529051600092600160a060020a031691829163747a56639160048082019260209290919082900301818887803b1580156102dc57600080fd5b505af11580156102f0573d6000803e3d6000fd5b505050506040513d602081101561030657600080fd5b505191505090565b600154600160a060020a03163314610370576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b60015460008054604051600160a060020a0393841693909116917f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91a3600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b4290565b600054600160a060020a031681565b600254600160a060020a031681565b600154600160a060020a031681565b61041a6104af565b600054600160a060020a0382811691161415610480576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f53414d455f4f574e4552000000000000000000000000000000000000604482015290519081900360640190fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600054600160a060020a03163314610511576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b5600a165627a7a7230582053b09a203fc6c1287331f418788e6c63719ea550dcf43c898bc7a59fb166c3b10029", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x8D JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x27BCC684 DUP2 EQ PUSH2 0x92 JUMPI DUP1 PUSH4 0x50D25BCD EQ PUSH2 0xB5 JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0xDC JUMPI DUP1 PUSH4 0x8205BF6A EQ PUSH2 0xF1 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x106 JUMPI DUP1 PUSH4 0xAB5E3E5B EQ PUSH2 0x137 JUMPI DUP1 PUSH4 0xD4EE1D90 EQ PUSH2 0x14C JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x161 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x182 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xC1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xCA PUSH2 0x27A JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xE8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB3 PUSH2 0x30E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xFD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xCA PUSH2 0x3E1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x112 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x11B PUSH2 0x3E5 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x143 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x11B PUSH2 0x3F4 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x158 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x11B PUSH2 0x403 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x16D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x412 JUMP JUMPDEST PUSH2 0x18A PUSH2 0x4AF JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0x210 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5F6D6F63537461746541646472657373207368616C6C206E6F74206265207A65 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x726F206164647265737300000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x84 ADD SWAP1 REVERT JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 DUP2 AND SWAP2 SWAP1 SWAP2 OR SWAP2 DUP3 SWAP1 SSTORE PUSH1 0x40 DUP1 MLOAD CALLER DUP2 MSTORE SWAP1 MLOAD SWAP3 SWAP1 SWAP2 AND SWAP2 PUSH32 0xAABF985D3E03E92A41537D04D0E369C7AFC56183856290AA2C1A230768842EF4 SWAP2 PUSH1 0x20 SWAP1 DUP3 SWAP1 SUB ADD SWAP1 LOG2 POP JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x747A566300000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP2 DUP3 SWAP2 PUSH4 0x747A5663 SWAP2 PUSH1 0x4 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP9 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2DC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2F0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x306 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 POP POP SWAP1 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x370 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND SWAP4 SWAP1 SWAP2 AND SWAP2 PUSH32 0x343765429AEA5A34B3FF6A3785A98A5ABB2597ACA87BFBB58632C173D585373A SWAP2 LOG3 PUSH1 0x1 DUP1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND OR SWAP1 SWAP2 SSTORE AND SWAP1 SSTORE JUMP JUMPDEST TIMESTAMP SWAP1 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH2 0x41A PUSH2 0x4AF JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x480 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F4F574E4552000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x511 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST JUMP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 MSTORE8 0xb0 SWAP11 KECCAK256 0x3f 0xc6 0xc1 0x28 PUSH20 0x31F418788E6C63719EA550DCF43C898BC7A59FB1 PUSH7 0xC3B10029000000 ", - "sourceMap": "133:1182:55:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1055:258;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1055:258:55;-1:-1:-1;;;;;1055:258:55;;;;;;;581:154;;8:9:-1;5:2;;;30:1;27;20:12;5:2;581:154:55;;;;;;;;;;;;;;;;;;;;1159:176:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1159:176:66;;;;839:122:55;;8:9:-1;5:2;;;30:1;27;20:12;5:2;839:122:55;;;;157:20:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;157:20:66;;;;;;;;-1:-1:-1;;;;;157:20:66;;;;;;;;;;;;;;187:30:55;;8:9:-1;5:2;;;30:1;27;20:12;5:2;187:30:55;;;;180:23:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;180:23:66;;;;945:140;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;945:140:66;-1:-1:-1;;;;;945:140:66;;;;;1055:258:55;575:12:66;:10;:12::i;:::-;-1:-1:-1;;;;;1138:30:55;;;;1130:85;;;;;-1:-1:-1;;;;;1130:85:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1219:15;:34;;-1:-1:-1;;1219:34:55;-1:-1:-1;;;;;1219:34:55;;;;;;;;;;;1262:47;;;1298:10;1262:47;;;;1281:15;;;;;1262:47;;;;;;;;;;1055:258;:::o;581:154::-;672:15;;706:24;;;;;;;;628:6;;-1:-1:-1;;;;;672:15:55;;;;706:22;;:24;;;;;;;;;;;;;;;628:6;672:15;706:24;;;5:2:-1;;;;30:1;27;20:12;5:2;706:24:55;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;706:24:55;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;706:24:55;;-1:-1:-1;581:154:55;;:::o;1159:176:66:-;1219:8;;-1:-1:-1;;;;;1219:8:66;1205:10;:22;1197:52;;;;;-1:-1:-1;;;;;1197:52:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;1277:8;;;1270:5;;1258:28;;-1:-1:-1;;;;;1277:8:66;;;;1270:5;;;;1258:28;;;1298:8;;;;1290:16;;-1:-1:-1;;1290:16:66;;;-1:-1:-1;;;;;1298:8:66;;1290:16;;;;1310:21;;;1159:176::o;839:122:55:-;909:3;839:122;:::o;157:20:66:-;;;-1:-1:-1;;;;;157:20:66;;:::o;187:30:55:-;;;-1:-1:-1;;;;;187:30:55;;:::o;180:23:66:-;;;-1:-1:-1;;;;;180:23:66;;:::o;945:140::-;575:12;:10;:12::i;:::-;1033:5;;-1:-1:-1;;;;;1020:18:66;;;1033:5;;1020:18;;1012:45;;;;;-1:-1:-1;;;;;1012:45:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;1061:8;:20;;-1:-1:-1;;1061:20:66;-1:-1:-1;;;;;1061:20:66;;;;;;;;;;945:140::o;642:93::-;704:5;;-1:-1:-1;;;;;704:5:66;690:10;:19;682:49;;;;;-1:-1:-1;;;;;682:49:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;642:93::o" - }, - "methodIdentifiers": { - "acceptOwnership()": "79ba5097", - "latestAnswer()": "50d25bcd", - "latestTimestamp()": "8205bf6a", - "mocStateAddress()": "ab5e3e5b", - "newOwner()": "d4ee1d90", - "owner()": "8da5cb5b", - "setMoCStateAddress(address)": "27bcc684", - "transferOwnership(address)": "f2fde38b" - } - }, - "userdoc": { - "methods": {} - } - } - }, - "solidity/contracts/utility/ChainlinkBTCToUSDOracle.sol": { - "ChainlinkBTCToUSDOracle": { - "abi": [ - { - "constant": true, - "inputs": [], - "name": "latestAnswer", - "outputs": [ - { - "name": "", - "type": "int256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "latestTimestamp", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - } - ], - "devdoc": { - "methods": { - "latestAnswer()": { - "details": "returns the BTC/USD rate.", - "return": "always returns the rate of 1" - }, - "latestTimestamp()": { - "details": "returns the BTC/USD update time.", - "return": "always returns current block's timestamp" - } - } - }, - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "608060405234801561001057600080fd5b5060b98061001f6000396000f30060806040526004361060485763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166350d25bcd8114604d5780638205bf6a146071575b600080fd5b348015605857600080fd5b50605f6083565b60408051918252519081900360200190f35b348015607c57600080fd5b50605f6089565b61271090565b42905600a165627a7a7230582017427c3651c6d2b7456e80db325cbd0fcf6119893a83e7518edde2578dda2cca0029", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0xB9 DUP1 PUSH2 0x1F PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH1 0x48 JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x50D25BCD DUP2 EQ PUSH1 0x4D JUMPI DUP1 PUSH4 0x8205BF6A EQ PUSH1 0x71 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH1 0x58 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x5F PUSH1 0x83 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH1 0x7C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x5F PUSH1 0x89 JUMP JUMPDEST PUSH2 0x2710 SWAP1 JUMP JUMPDEST TIMESTAMP SWAP1 JUMP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 OR TIMESTAMP PUSH29 0x3651C6D2B7456E80DB325CBD0FCF6119893A83E7518EDDE2578DDA2CCA STOP 0x29 ", - "sourceMap": "116:463:56:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;116:463:56;;;;;;;" - }, - "deployedBytecode": { - "linkReferences": {}, - "object": "60806040526004361060485763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166350d25bcd8114604d5780638205bf6a146071575b600080fd5b348015605857600080fd5b50605f6083565b60408051918252519081900360200190f35b348015607c57600080fd5b50605f6089565b61271090565b42905600a165627a7a7230582017427c3651c6d2b7456e80db325cbd0fcf6119893a83e7518edde2578dda2cca0029", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH1 0x48 JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x50D25BCD DUP2 EQ PUSH1 0x4D JUMPI DUP1 PUSH4 0x8205BF6A EQ PUSH1 0x71 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH1 0x58 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x5F PUSH1 0x83 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH1 0x7C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x5F PUSH1 0x89 JUMP JUMPDEST PUSH2 0x2710 SWAP1 JUMP JUMPDEST TIMESTAMP SWAP1 JUMP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 OR TIMESTAMP PUSH29 0x3651C6D2B7456E80DB325CBD0FCF6119893A83E7518EDDE2578DDA2CCA STOP 0x29 ", - "sourceMap": "116:463:56:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;310:78;;8:9:-1;5:2;;;30:1;27;20:12;5:2;310:78:56;;;;;;;;;;;;;;;;;;;;500:77;;8:9:-1;5:2;;;30:1;27;20:12;5:2;500:77:56;;;;310:78;211:5;310:78;:::o;500:77::-;570:3;500:77;:::o" - }, - "methodIdentifiers": { - "latestAnswer()": "50d25bcd", - "latestTimestamp()": "8205bf6a" - } - }, - "userdoc": { - "methods": {} - } - } - }, - "solidity/contracts/utility/ChainlinkETHToETHOracle.sol": { - "ChainlinkETHToETHOracle": { - "abi": [ - { - "constant": true, - "inputs": [], - "name": "latestAnswer", - "outputs": [ - { - "name": "", - "type": "int256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "latestTimestamp", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - } - ], - "devdoc": { - "methods": { - "latestAnswer()": { - "details": "returns the trivial ETH/ETH rate.", - "return": "always returns the trivial rate of 1" - }, - "latestTimestamp()": { - "details": "returns the trivial ETH/ETH update time.", - "return": "always returns current block's timestamp" - } - } - }, - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "608060405234801561001057600080fd5b5060b88061001f6000396000f30060806040526004361060485763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166350d25bcd8114604d5780638205bf6a146071575b600080fd5b348015605857600080fd5b50605f6083565b60408051918252519081900360200190f35b348015607c57600080fd5b50605f6088565b600190565b42905600a165627a7a72305820b982a034cefe2e36cd488c27cb03fb4263488a7ac3d3dc4d15cfd7518213d30c0029", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0xB8 DUP1 PUSH2 0x1F PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH1 0x48 JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x50D25BCD DUP2 EQ PUSH1 0x4D JUMPI DUP1 PUSH4 0x8205BF6A EQ PUSH1 0x71 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH1 0x58 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x5F PUSH1 0x83 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH1 0x7C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x5F PUSH1 0x88 JUMP JUMPDEST PUSH1 0x1 SWAP1 JUMP JUMPDEST TIMESTAMP SWAP1 JUMP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 0xb9 DUP3 LOG0 CALLVALUE 0xce INVALID 0x2e CALLDATASIZE 0xcd 0x48 DUP13 0x27 0xcb SUB CREATE2 TIMESTAMP PUSH4 0x488A7AC3 0xd3 0xdc 0x4d ISZERO 0xcf 0xd7 MLOAD DUP3 SGT 0xd3 0xc STOP 0x29 ", - "sourceMap": "160:483:57:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;160:483:57;;;;;;;" - }, - "deployedBytecode": { - "linkReferences": {}, - "object": "60806040526004361060485763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166350d25bcd8114604d5780638205bf6a146071575b600080fd5b348015605857600080fd5b50605f6083565b60408051918252519081900360200190f35b348015607c57600080fd5b50605f6088565b600190565b42905600a165627a7a72305820b982a034cefe2e36cd488c27cb03fb4263488a7ac3d3dc4d15cfd7518213d30c0029", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH1 0x48 JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x50D25BCD DUP2 EQ PUSH1 0x4D JUMPI DUP1 PUSH4 0x8205BF6A EQ PUSH1 0x71 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH1 0x58 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x5F PUSH1 0x83 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH1 0x7C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x5F PUSH1 0x88 JUMP JUMPDEST PUSH1 0x1 SWAP1 JUMP JUMPDEST TIMESTAMP SWAP1 JUMP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 0xb9 DUP3 LOG0 CALLVALUE 0xce INVALID 0x2e CALLDATASIZE 0xcd 0x48 DUP13 0x27 0xcb SUB CREATE2 TIMESTAMP PUSH4 0x488A7AC3 0xd3 0xdc 0x4d ISZERO 0xcf 0xd7 MLOAD DUP3 SGT 0xd3 0xc STOP 0x29 ", - "sourceMap": "160:483:57:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;366:78;;8:9:-1;5:2;;;30:1;27;20:12;5:2;366:78:57;;;;;;;;;;;;;;;;;;;;564:77;;8:9:-1;5:2;;;30:1;27;20:12;5:2;564:77:57;;;;366:78;255:1;366:78;:::o;564:77::-;634:3;564:77;:::o" - }, - "methodIdentifiers": { - "latestAnswer()": "50d25bcd", - "latestTimestamp()": "8205bf6a" - } - }, - "userdoc": { - "methods": {} - } - } - }, - "solidity/contracts/utility/ChainlinkUSDToBTCOracle.sol": { - "ChainlinkUSDToBTCOracle": { - "abi": [ - { - "constant": true, - "inputs": [], - "name": "latestAnswer", - "outputs": [ - { - "name": "", - "type": "int256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "latestTimestamp", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - } - ], - "devdoc": { - "methods": { - "latestAnswer()": { - "details": "returns the USD/BTC rate.", - "return": "always returns the rate of 10000" - }, - "latestTimestamp()": { - "details": "returns the USD/BTC update time.", - "return": "always returns current block's timestamp" - } - } - }, - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "608060405234801561001057600080fd5b5060b98061001f6000396000f30060806040526004361060485763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166350d25bcd8114604d5780638205bf6a146071575b600080fd5b348015605857600080fd5b50605f6083565b60408051918252519081900360200190f35b348015607c57600080fd5b50605f6089565b61271090565b42905600a165627a7a723058205163230a17581c29ef01f88cb68d01b1006c815c7d452027cbce2ebdbfc725560029", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0xB9 DUP1 PUSH2 0x1F PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH1 0x48 JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x50D25BCD DUP2 EQ PUSH1 0x4D JUMPI DUP1 PUSH4 0x8205BF6A EQ PUSH1 0x71 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH1 0x58 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x5F PUSH1 0x83 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH1 0x7C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x5F PUSH1 0x89 JUMP JUMPDEST PUSH2 0x2710 SWAP1 JUMP JUMPDEST TIMESTAMP SWAP1 JUMP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 MLOAD PUSH4 0x230A1758 SHR 0x29 0xef ADD 0xf8 DUP13 0xb6 DUP14 ADD 0xb1 STOP PUSH13 0x815C7D452027CBCE2EBDBFC725 JUMP STOP 0x29 ", - "sourceMap": "116:467:58:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;116:467:58;;;;;;;" - }, - "deployedBytecode": { - "linkReferences": {}, - "object": "60806040526004361060485763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166350d25bcd8114604d5780638205bf6a146071575b600080fd5b348015605857600080fd5b50605f6083565b60408051918252519081900360200190f35b348015607c57600080fd5b50605f6089565b61271090565b42905600a165627a7a723058205163230a17581c29ef01f88cb68d01b1006c815c7d452027cbce2ebdbfc725560029", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH1 0x48 JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x50D25BCD DUP2 EQ PUSH1 0x4D JUMPI DUP1 PUSH4 0x8205BF6A EQ PUSH1 0x71 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH1 0x58 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x5F PUSH1 0x83 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH1 0x7C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x5F PUSH1 0x89 JUMP JUMPDEST PUSH2 0x2710 SWAP1 JUMP JUMPDEST TIMESTAMP SWAP1 JUMP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 MLOAD PUSH4 0x230A1758 SHR 0x29 0xef ADD 0xf8 DUP13 0xb6 DUP14 ADD 0xb1 STOP PUSH13 0x815C7D452027CBCE2EBDBFC725 JUMP STOP 0x29 ", - "sourceMap": "116:467:58:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;314:78;;8:9:-1;5:2;;;30:1;27;20:12;5:2;314:78:58;;;;;;;;;;;;;;;;;;;;504:77;;8:9:-1;5:2;;;30:1;27;20:12;5:2;504:77:58;;;;314:78;211:5;314:78;:::o;504:77::-;574:3;504:77;:::o" - }, - "methodIdentifiers": { - "latestAnswer()": "50d25bcd", - "latestTimestamp()": "8205bf6a" - } - }, - "userdoc": { - "methods": {} - } - } - }, - "solidity/contracts/utility/ContractRegistry.sol": { - "ContractRegistry": { - "abi": [ - { - "constant": true, - "inputs": [ - { - "name": "_contractName", - "type": "bytes32" - } - ], - "name": "getAddress", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_contractName", - "type": "bytes32" - } - ], - "name": "unregisterAddress", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "", - "type": "uint256" - } - ], - "name": "contractNames", - "outputs": [ - { - "name": "", - "type": "string" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_contractName", - "type": "bytes32" - }, - { - "name": "_contractAddress", - "type": "address" - } - ], - "name": "registerAddress", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "itemCount", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "acceptOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "owner", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_contractName", - "type": "bytes32" - } - ], - "name": "addressOf", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "newOwner", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "_contractName", - "type": "bytes32" - }, - { - "indexed": false, - "name": "_contractAddress", - "type": "address" - } - ], - "name": "AddressUpdate", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "_prevOwner", - "type": "address" - }, - { - "indexed": true, - "name": "_newOwner", - "type": "address" - } - ], - "name": "OwnerUpdate", - "type": "event" - } - ], - "devdoc": { - "methods": { - "acceptOwnership()": { - "details": "used by a new owner to accept an ownership transfer" - }, - "addressOf(bytes32)": { - "details": "returns the address associated with the given contract name", - "params": { - "_contractName": "contract name" - }, - "return": "contract address" - }, - "getAddress(bytes32)": { - "details": "deprecated, backward compatibility" - }, - "itemCount()": { - "details": "returns the number of items in the registry", - "return": "number of items" - }, - "registerAddress(bytes32,address)": { - "details": "registers a new address for the contract name in the registry", - "params": { - "_contractAddress": "contract address", - "_contractName": "contract name" - } - }, - "transferOwnership(address)": { - "details": "allows transferring the contract ownership the new owner still needs to accept the transfer can only be called by the contract owner", - "params": { - "_newOwner": "new contract owner" - } - }, - "unregisterAddress(bytes32)": { - "details": "removes an existing contract address from the registry", - "params": { - "_contractName": "contract name" - } - } - } - }, - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "608060405260008054600160a060020a03191633179055610aba806100256000396000f3006080604052600436106100a35763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166321f8a72181146100a85780632bbd9530146100dc5780633ca6bb92146100f6578063662de379146101835780636bfb0d01146101a757806379ba5097146101ce5780638da5cb5b146101e3578063bb34534c146101f8578063d4ee1d9014610210578063f2fde38b14610225575b600080fd5b3480156100b457600080fd5b506100c0600435610246565b60408051600160a060020a039092168252519081900360200190f35b3480156100e857600080fd5b506100f4600435610257565b005b34801561010257600080fd5b5061010e60043561047c565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610148578181015183820152602001610130565b50505050905090810190601f1680156101755780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561018f57600080fd5b506100f4600435600160a060020a0360243516610523565b3480156101b357600080fd5b506101bc610637565b60408051918252519081900360200190f35b3480156101da57600080fd5b506100f461063e565b3480156101ef57600080fd5b506100c0610711565b34801561020457600080fd5b506100c0600435610720565b34801561021c57600080fd5b506100c061073b565b34801561023157600080fd5b506100f4600160a060020a036004351661074a565b600061025182610720565b92915050565b606060008060006102666107e7565b600085815260026020526040902054600160a060020a031615156102d4576040805160e560020a62461bcd02815260206004820152601060248201527f4552525f494e56414c49445f4e414d4500000000000000000000000000000000604482015290519081900360640190fd5b6000858152600260205260409020805473ffffffffffffffffffffffffffffffffffffffff19169055600354600110156104195760038054600019810190811061031a57fe5b600091825260209182902001805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156103a85780601f1061037d576101008083540402835291602001916103a8565b820191906000526020600020905b81548152906001019060200180831161038b57829003601f168201915b50505060008881526002602052604090206001015460038054949850909650879390925086915081106103d757fe5b9060005260206000200190805190602001906103f4929190610966565b506103fe8461084b565b60008181526002602052604090206001810185905590925090505b600380549061042c9060001983016109e4565b50600085815260026020908152604080832060010183905580519283525187927ffc08d1253c81bcd5444fc7056ef1f5a5df4c9220b6fd70d7449267f1f0f2991892908290030190a25050505050565b600380548290811061048a57fe5b600091825260209182902001805460408051601f600260001961010060018716150201909416939093049283018590048502810185019091528181529350909183018282801561051b5780601f106104f05761010080835404028352916020019161051b565b820191906000526020600020905b8154815290600101906020018083116104fe57829003601f168201915b505050505081565b60008061052e6107e7565b8261053881610852565b600085815260026020526040902054600160a060020a039081169350841683141561056257610630565b600160a060020a03831615156105c257600361057d866108b5565b8154600181018084556000938452602093849020835191946105a59491909301920190610966565b506000868152600260205260409020600019820160019091015591505b600085815260026020908152604091829020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0388169081179091558251908152915187927ffc08d1253c81bcd5444fc7056ef1f5a5df4c9220b6fd70d7449267f1f0f2991892908290030190a25b5050505050565b6003545b90565b600154600160a060020a031633146106a0576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b60015460008054604051600160a060020a0393841693909116917f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91a3600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b600054600160a060020a031681565b600090815260026020526040902054600160a060020a031690565b600154600160a060020a031681565b6107526107e7565b600054600160a060020a03828116911614156107b8576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f53414d455f4f574e4552000000000000000000000000000000000000604482015290519081900360640190fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600054600160a060020a03163314610849576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b565b6020015190565b600160a060020a03811615156108b2576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b50565b604080516020808252818301909252606091829160009180820161040080388339019050509150600090505b602081101561095f578381602081106108f657fe5b1a7f010000000000000000000000000000000000000000000000000000000000000002828281518110151561092757fe5b9060200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053506001016108e1565b5092915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106109a757805160ff19168380011785556109d4565b828001600101855582156109d4579182015b828111156109d45782518255916020019190600101906109b9565b506109e0929150610a0d565b5090565b815481835581811115610a0857600083815260209020610a08918101908301610a27565b505050565b61063b91905b808211156109e05760008155600101610a13565b61063b91905b808211156109e0576000610a418282610a4a565b50600101610a2d565b50805460018160011615610100020316600290046000825580601f10610a7057506108b2565b601f0160209004906000526020600020908101906108b29190610a0d5600a165627a7a72305820725bd5161c1217c7cb02b8b50cf5e635f08da97d20f1b1f802664034eade82c40029", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND CALLER OR SWAP1 SSTORE PUSH2 0xABA DUP1 PUSH2 0x25 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0xA3 JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x21F8A721 DUP2 EQ PUSH2 0xA8 JUMPI DUP1 PUSH4 0x2BBD9530 EQ PUSH2 0xDC JUMPI DUP1 PUSH4 0x3CA6BB92 EQ PUSH2 0xF6 JUMPI DUP1 PUSH4 0x662DE379 EQ PUSH2 0x183 JUMPI DUP1 PUSH4 0x6BFB0D01 EQ PUSH2 0x1A7 JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x1CE JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x1E3 JUMPI DUP1 PUSH4 0xBB34534C EQ PUSH2 0x1F8 JUMPI DUP1 PUSH4 0xD4EE1D90 EQ PUSH2 0x210 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x225 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xB4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xC0 PUSH1 0x4 CALLDATALOAD PUSH2 0x246 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xE8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xF4 PUSH1 0x4 CALLDATALOAD PUSH2 0x257 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x102 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x10E PUSH1 0x4 CALLDATALOAD PUSH2 0x47C JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP4 MLOAD DUP2 DUP4 ADD MSTORE DUP4 MLOAD SWAP2 SWAP3 DUP4 SWAP3 SWAP1 DUP4 ADD SWAP2 DUP6 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x148 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x130 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x175 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x18F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xF4 PUSH1 0x4 CALLDATALOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x24 CALLDATALOAD AND PUSH2 0x523 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1B3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1BC PUSH2 0x637 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1DA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xF4 PUSH2 0x63E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1EF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xC0 PUSH2 0x711 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x204 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xC0 PUSH1 0x4 CALLDATALOAD PUSH2 0x720 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x21C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xC0 PUSH2 0x73B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x231 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xF4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x74A JUMP JUMPDEST PUSH1 0x0 PUSH2 0x251 DUP3 PUSH2 0x720 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x266 PUSH2 0x7E7 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND ISZERO ISZERO PUSH2 0x2D4 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4E414D4500000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 SSTORE PUSH1 0x3 SLOAD PUSH1 0x1 LT ISZERO PUSH2 0x419 JUMPI PUSH1 0x3 DUP1 SLOAD PUSH1 0x0 NOT DUP2 ADD SWAP1 DUP2 LT PUSH2 0x31A JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP2 DUP3 SWAP1 KECCAK256 ADD DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F PUSH1 0x2 PUSH1 0x0 NOT PUSH2 0x100 PUSH1 0x1 DUP8 AND ISZERO MUL ADD SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 DIV SWAP3 DUP4 ADD DUP6 SWAP1 DIV DUP6 MUL DUP2 ADD DUP6 ADD SWAP1 SWAP2 MSTORE DUP2 DUP2 MSTORE SWAP3 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x3A8 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x37D JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x3A8 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x38B JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP PUSH1 0x0 DUP9 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH1 0x3 DUP1 SLOAD SWAP5 SWAP9 POP SWAP1 SWAP7 POP DUP8 SWAP4 SWAP1 SWAP3 POP DUP7 SWAP2 POP DUP2 LT PUSH2 0x3D7 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0x3F4 SWAP3 SWAP2 SWAP1 PUSH2 0x966 JUMP JUMPDEST POP PUSH2 0x3FE DUP5 PUSH2 0x84B JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 DUP2 ADD DUP6 SWAP1 SSTORE SWAP1 SWAP3 POP SWAP1 POP JUMPDEST PUSH1 0x3 DUP1 SLOAD SWAP1 PUSH2 0x42C SWAP1 PUSH1 0x0 NOT DUP4 ADD PUSH2 0x9E4 JUMP JUMPDEST POP PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 ADD DUP4 SWAP1 SSTORE DUP1 MLOAD SWAP3 DUP4 MSTORE MLOAD DUP8 SWAP3 PUSH32 0xFC08D1253C81BCD5444FC7056EF1F5A5DF4C9220B6FD70D7449267F1F0F29918 SWAP3 SWAP1 DUP3 SWAP1 SUB ADD SWAP1 LOG2 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD DUP3 SWAP1 DUP2 LT PUSH2 0x48A JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP2 DUP3 SWAP1 KECCAK256 ADD DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F PUSH1 0x2 PUSH1 0x0 NOT PUSH2 0x100 PUSH1 0x1 DUP8 AND ISZERO MUL ADD SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 DIV SWAP3 DUP4 ADD DUP6 SWAP1 DIV DUP6 MUL DUP2 ADD DUP6 ADD SWAP1 SWAP2 MSTORE DUP2 DUP2 MSTORE SWAP4 POP SWAP1 SWAP2 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x51B JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x4F0 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x51B JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x4FE JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x52E PUSH2 0x7E7 JUMP JUMPDEST DUP3 PUSH2 0x538 DUP2 PUSH2 0x852 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 DUP2 AND SWAP4 POP DUP5 AND DUP4 EQ ISZERO PUSH2 0x562 JUMPI PUSH2 0x630 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 AND ISZERO ISZERO PUSH2 0x5C2 JUMPI PUSH1 0x3 PUSH2 0x57D DUP7 PUSH2 0x8B5 JUMP JUMPDEST DUP2 SLOAD PUSH1 0x1 DUP2 ADD DUP1 DUP5 SSTORE PUSH1 0x0 SWAP4 DUP5 MSTORE PUSH1 0x20 SWAP4 DUP5 SWAP1 KECCAK256 DUP4 MLOAD SWAP2 SWAP5 PUSH2 0x5A5 SWAP5 SWAP2 SWAP1 SWAP4 ADD SWAP3 ADD SWAP1 PUSH2 0x966 JUMP JUMPDEST POP PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x0 NOT DUP3 ADD PUSH1 0x1 SWAP1 SWAP2 ADD SSTORE SWAP2 POP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE DUP3 MLOAD SWAP1 DUP2 MSTORE SWAP2 MLOAD DUP8 SWAP3 PUSH32 0xFC08D1253C81BCD5444FC7056EF1F5A5DF4C9220B6FD70D7449267F1F0F29918 SWAP3 SWAP1 DUP3 SWAP1 SUB ADD SWAP1 LOG2 JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x3 SLOAD JUMPDEST SWAP1 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x6A0 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND SWAP4 SWAP1 SWAP2 AND SWAP2 PUSH32 0x343765429AEA5A34B3FF6A3785A98A5ABB2597ACA87BFBB58632C173D585373A SWAP2 LOG3 PUSH1 0x1 DUP1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND OR SWAP1 SWAP2 SSTORE AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH2 0x752 PUSH2 0x7E7 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x7B8 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F4F574E4552000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x849 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x20 ADD MLOAD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0x8B2 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 DUP4 ADD SWAP1 SWAP3 MSTORE PUSH1 0x60 SWAP2 DUP3 SWAP2 PUSH1 0x0 SWAP2 DUP1 DUP3 ADD PUSH2 0x400 DUP1 CODESIZE DUP4 CODECOPY ADD SWAP1 POP POP SWAP2 POP PUSH1 0x0 SWAP1 POP JUMPDEST PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x95F JUMPI DUP4 DUP2 PUSH1 0x20 DUP2 LT PUSH2 0x8F6 JUMPI INVALID JUMPDEST BYTE PUSH32 0x100000000000000000000000000000000000000000000000000000000000000 MUL DUP3 DUP3 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x927 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD ADD SWAP1 PUSH31 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0x1 ADD PUSH2 0x8E1 JUMP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH1 0x1F LT PUSH2 0x9A7 JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH2 0x9D4 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x9D4 JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x9D4 JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x9B9 JUMP JUMPDEST POP PUSH2 0x9E0 SWAP3 SWAP2 POP PUSH2 0xA0D JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST DUP2 SLOAD DUP2 DUP4 SSTORE DUP2 DUP2 GT ISZERO PUSH2 0xA08 JUMPI PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 SWAP1 KECCAK256 PUSH2 0xA08 SWAP2 DUP2 ADD SWAP1 DUP4 ADD PUSH2 0xA27 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x63B SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x9E0 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0xA13 JUMP JUMPDEST PUSH2 0x63B SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x9E0 JUMPI PUSH1 0x0 PUSH2 0xA41 DUP3 DUP3 PUSH2 0xA4A JUMP JUMPDEST POP PUSH1 0x1 ADD PUSH2 0xA2D JUMP JUMPDEST POP DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV PUSH1 0x0 DUP3 SSTORE DUP1 PUSH1 0x1F LT PUSH2 0xA70 JUMPI POP PUSH2 0x8B2 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP1 PUSH2 0x8B2 SWAP2 SWAP1 PUSH2 0xA0D JUMP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 PUSH19 0x5BD5161C1217C7CB02B8B50CF5E635F08DA97D KECCAK256 CALL 0xb1 0xf8 MUL PUSH7 0x4034EADE82C400 0x29 ", - "sourceMap": "557:4370:59:-;;;488:5:66;:18;;-1:-1:-1;;;;;;488:18:66;496:10;488:18;;;557:4370:59;;;;;;" - }, - "deployedBytecode": { - "linkReferences": {}, - "object": "6080604052600436106100a35763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166321f8a72181146100a85780632bbd9530146100dc5780633ca6bb92146100f6578063662de379146101835780636bfb0d01146101a757806379ba5097146101ce5780638da5cb5b146101e3578063bb34534c146101f8578063d4ee1d9014610210578063f2fde38b14610225575b600080fd5b3480156100b457600080fd5b506100c0600435610246565b60408051600160a060020a039092168252519081900360200190f35b3480156100e857600080fd5b506100f4600435610257565b005b34801561010257600080fd5b5061010e60043561047c565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610148578181015183820152602001610130565b50505050905090810190601f1680156101755780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561018f57600080fd5b506100f4600435600160a060020a0360243516610523565b3480156101b357600080fd5b506101bc610637565b60408051918252519081900360200190f35b3480156101da57600080fd5b506100f461063e565b3480156101ef57600080fd5b506100c0610711565b34801561020457600080fd5b506100c0600435610720565b34801561021c57600080fd5b506100c061073b565b34801561023157600080fd5b506100f4600160a060020a036004351661074a565b600061025182610720565b92915050565b606060008060006102666107e7565b600085815260026020526040902054600160a060020a031615156102d4576040805160e560020a62461bcd02815260206004820152601060248201527f4552525f494e56414c49445f4e414d4500000000000000000000000000000000604482015290519081900360640190fd5b6000858152600260205260409020805473ffffffffffffffffffffffffffffffffffffffff19169055600354600110156104195760038054600019810190811061031a57fe5b600091825260209182902001805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156103a85780601f1061037d576101008083540402835291602001916103a8565b820191906000526020600020905b81548152906001019060200180831161038b57829003601f168201915b50505060008881526002602052604090206001015460038054949850909650879390925086915081106103d757fe5b9060005260206000200190805190602001906103f4929190610966565b506103fe8461084b565b60008181526002602052604090206001810185905590925090505b600380549061042c9060001983016109e4565b50600085815260026020908152604080832060010183905580519283525187927ffc08d1253c81bcd5444fc7056ef1f5a5df4c9220b6fd70d7449267f1f0f2991892908290030190a25050505050565b600380548290811061048a57fe5b600091825260209182902001805460408051601f600260001961010060018716150201909416939093049283018590048502810185019091528181529350909183018282801561051b5780601f106104f05761010080835404028352916020019161051b565b820191906000526020600020905b8154815290600101906020018083116104fe57829003601f168201915b505050505081565b60008061052e6107e7565b8261053881610852565b600085815260026020526040902054600160a060020a039081169350841683141561056257610630565b600160a060020a03831615156105c257600361057d866108b5565b8154600181018084556000938452602093849020835191946105a59491909301920190610966565b506000868152600260205260409020600019820160019091015591505b600085815260026020908152604091829020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0388169081179091558251908152915187927ffc08d1253c81bcd5444fc7056ef1f5a5df4c9220b6fd70d7449267f1f0f2991892908290030190a25b5050505050565b6003545b90565b600154600160a060020a031633146106a0576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b60015460008054604051600160a060020a0393841693909116917f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91a3600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b600054600160a060020a031681565b600090815260026020526040902054600160a060020a031690565b600154600160a060020a031681565b6107526107e7565b600054600160a060020a03828116911614156107b8576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f53414d455f4f574e4552000000000000000000000000000000000000604482015290519081900360640190fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600054600160a060020a03163314610849576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b565b6020015190565b600160a060020a03811615156108b2576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b50565b604080516020808252818301909252606091829160009180820161040080388339019050509150600090505b602081101561095f578381602081106108f657fe5b1a7f010000000000000000000000000000000000000000000000000000000000000002828281518110151561092757fe5b9060200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053506001016108e1565b5092915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106109a757805160ff19168380011785556109d4565b828001600101855582156109d4579182015b828111156109d45782518255916020019190600101906109b9565b506109e0929150610a0d565b5090565b815481835581811115610a0857600083815260209020610a08918101908301610a27565b505050565b61063b91905b808211156109e05760008155600101610a13565b61063b91905b808211156109e0576000610a418282610a4a565b50600101610a2d565b50805460018160011615610100020316600290046000825580601f10610a7057506108b2565b601f0160209004906000526020600020908101906108b29190610a0d5600a165627a7a72305820725bd5161c1217c7cb02b8b50cf5e635f08da97d20f1b1f802664034eade82c40029", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0xA3 JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x21F8A721 DUP2 EQ PUSH2 0xA8 JUMPI DUP1 PUSH4 0x2BBD9530 EQ PUSH2 0xDC JUMPI DUP1 PUSH4 0x3CA6BB92 EQ PUSH2 0xF6 JUMPI DUP1 PUSH4 0x662DE379 EQ PUSH2 0x183 JUMPI DUP1 PUSH4 0x6BFB0D01 EQ PUSH2 0x1A7 JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x1CE JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x1E3 JUMPI DUP1 PUSH4 0xBB34534C EQ PUSH2 0x1F8 JUMPI DUP1 PUSH4 0xD4EE1D90 EQ PUSH2 0x210 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x225 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xB4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xC0 PUSH1 0x4 CALLDATALOAD PUSH2 0x246 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xE8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xF4 PUSH1 0x4 CALLDATALOAD PUSH2 0x257 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x102 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x10E PUSH1 0x4 CALLDATALOAD PUSH2 0x47C JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP4 MLOAD DUP2 DUP4 ADD MSTORE DUP4 MLOAD SWAP2 SWAP3 DUP4 SWAP3 SWAP1 DUP4 ADD SWAP2 DUP6 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x148 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x130 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x175 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x18F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xF4 PUSH1 0x4 CALLDATALOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x24 CALLDATALOAD AND PUSH2 0x523 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1B3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1BC PUSH2 0x637 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1DA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xF4 PUSH2 0x63E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1EF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xC0 PUSH2 0x711 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x204 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xC0 PUSH1 0x4 CALLDATALOAD PUSH2 0x720 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x21C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xC0 PUSH2 0x73B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x231 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xF4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x74A JUMP JUMPDEST PUSH1 0x0 PUSH2 0x251 DUP3 PUSH2 0x720 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x266 PUSH2 0x7E7 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND ISZERO ISZERO PUSH2 0x2D4 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4E414D4500000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 SSTORE PUSH1 0x3 SLOAD PUSH1 0x1 LT ISZERO PUSH2 0x419 JUMPI PUSH1 0x3 DUP1 SLOAD PUSH1 0x0 NOT DUP2 ADD SWAP1 DUP2 LT PUSH2 0x31A JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP2 DUP3 SWAP1 KECCAK256 ADD DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F PUSH1 0x2 PUSH1 0x0 NOT PUSH2 0x100 PUSH1 0x1 DUP8 AND ISZERO MUL ADD SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 DIV SWAP3 DUP4 ADD DUP6 SWAP1 DIV DUP6 MUL DUP2 ADD DUP6 ADD SWAP1 SWAP2 MSTORE DUP2 DUP2 MSTORE SWAP3 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x3A8 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x37D JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x3A8 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x38B JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP PUSH1 0x0 DUP9 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH1 0x3 DUP1 SLOAD SWAP5 SWAP9 POP SWAP1 SWAP7 POP DUP8 SWAP4 SWAP1 SWAP3 POP DUP7 SWAP2 POP DUP2 LT PUSH2 0x3D7 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0x3F4 SWAP3 SWAP2 SWAP1 PUSH2 0x966 JUMP JUMPDEST POP PUSH2 0x3FE DUP5 PUSH2 0x84B JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 DUP2 ADD DUP6 SWAP1 SSTORE SWAP1 SWAP3 POP SWAP1 POP JUMPDEST PUSH1 0x3 DUP1 SLOAD SWAP1 PUSH2 0x42C SWAP1 PUSH1 0x0 NOT DUP4 ADD PUSH2 0x9E4 JUMP JUMPDEST POP PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 ADD DUP4 SWAP1 SSTORE DUP1 MLOAD SWAP3 DUP4 MSTORE MLOAD DUP8 SWAP3 PUSH32 0xFC08D1253C81BCD5444FC7056EF1F5A5DF4C9220B6FD70D7449267F1F0F29918 SWAP3 SWAP1 DUP3 SWAP1 SUB ADD SWAP1 LOG2 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD DUP3 SWAP1 DUP2 LT PUSH2 0x48A JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP2 DUP3 SWAP1 KECCAK256 ADD DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F PUSH1 0x2 PUSH1 0x0 NOT PUSH2 0x100 PUSH1 0x1 DUP8 AND ISZERO MUL ADD SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 DIV SWAP3 DUP4 ADD DUP6 SWAP1 DIV DUP6 MUL DUP2 ADD DUP6 ADD SWAP1 SWAP2 MSTORE DUP2 DUP2 MSTORE SWAP4 POP SWAP1 SWAP2 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x51B JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x4F0 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x51B JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x4FE JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x52E PUSH2 0x7E7 JUMP JUMPDEST DUP3 PUSH2 0x538 DUP2 PUSH2 0x852 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 DUP2 AND SWAP4 POP DUP5 AND DUP4 EQ ISZERO PUSH2 0x562 JUMPI PUSH2 0x630 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 AND ISZERO ISZERO PUSH2 0x5C2 JUMPI PUSH1 0x3 PUSH2 0x57D DUP7 PUSH2 0x8B5 JUMP JUMPDEST DUP2 SLOAD PUSH1 0x1 DUP2 ADD DUP1 DUP5 SSTORE PUSH1 0x0 SWAP4 DUP5 MSTORE PUSH1 0x20 SWAP4 DUP5 SWAP1 KECCAK256 DUP4 MLOAD SWAP2 SWAP5 PUSH2 0x5A5 SWAP5 SWAP2 SWAP1 SWAP4 ADD SWAP3 ADD SWAP1 PUSH2 0x966 JUMP JUMPDEST POP PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x0 NOT DUP3 ADD PUSH1 0x1 SWAP1 SWAP2 ADD SSTORE SWAP2 POP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP9 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE DUP3 MLOAD SWAP1 DUP2 MSTORE SWAP2 MLOAD DUP8 SWAP3 PUSH32 0xFC08D1253C81BCD5444FC7056EF1F5A5DF4C9220B6FD70D7449267F1F0F29918 SWAP3 SWAP1 DUP3 SWAP1 SUB ADD SWAP1 LOG2 JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x3 SLOAD JUMPDEST SWAP1 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x6A0 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND SWAP4 SWAP1 SWAP2 AND SWAP2 PUSH32 0x343765429AEA5A34B3FF6A3785A98A5ABB2597ACA87BFBB58632C173D585373A SWAP2 LOG3 PUSH1 0x1 DUP1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND OR SWAP1 SWAP2 SSTORE AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH2 0x752 PUSH2 0x7E7 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x7B8 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F4F574E4552000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x849 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x20 ADD MLOAD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0x8B2 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 DUP4 ADD SWAP1 SWAP3 MSTORE PUSH1 0x60 SWAP2 DUP3 SWAP2 PUSH1 0x0 SWAP2 DUP1 DUP3 ADD PUSH2 0x400 DUP1 CODESIZE DUP4 CODECOPY ADD SWAP1 POP POP SWAP2 POP PUSH1 0x0 SWAP1 POP JUMPDEST PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x95F JUMPI DUP4 DUP2 PUSH1 0x20 DUP2 LT PUSH2 0x8F6 JUMPI INVALID JUMPDEST BYTE PUSH32 0x100000000000000000000000000000000000000000000000000000000000000 MUL DUP3 DUP3 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x927 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD ADD SWAP1 PUSH31 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0x1 ADD PUSH2 0x8E1 JUMP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH1 0x1F LT PUSH2 0x9A7 JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH2 0x9D4 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x9D4 JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x9D4 JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x9B9 JUMP JUMPDEST POP PUSH2 0x9E0 SWAP3 SWAP2 POP PUSH2 0xA0D JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST DUP2 SLOAD DUP2 DUP4 SSTORE DUP2 DUP2 GT ISZERO PUSH2 0xA08 JUMPI PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 SWAP1 KECCAK256 PUSH2 0xA08 SWAP2 DUP2 ADD SWAP1 DUP4 ADD PUSH2 0xA27 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x63B SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x9E0 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0xA13 JUMP JUMPDEST PUSH2 0x63B SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x9E0 JUMPI PUSH1 0x0 PUSH2 0xA41 DUP3 DUP3 PUSH2 0xA4A JUMP JUMPDEST POP PUSH1 0x1 ADD PUSH2 0xA2D JUMP JUMPDEST POP DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV PUSH1 0x0 DUP3 SSTORE DUP1 PUSH1 0x1F LT PUSH2 0xA70 JUMPI POP PUSH2 0x8B2 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP1 PUSH2 0x8B2 SWAP2 SWAP1 PUSH2 0xA0D JUMP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 PUSH19 0x5BD5161C1217C7CB02B8B50CF5E635F08DA97D KECCAK256 CALL 0xb1 0xf8 MUL PUSH7 0x4034EADE82C400 0x29 ", - "sourceMap": "557:4370:59:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4813:112;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4813:112:59;;;;;;;;;-1:-1:-1;;;;;4813:112:59;;;;;;;;;;;;;;2735:1223;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2735:1223:59;;;;;;;848:29;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;848:29:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;848:29:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1826:789;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1826:789:59;;;-1:-1:-1;;;;;1826:789:59;;;;;1279:86;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1279:86:59;;;;;;;;;;;;;;;;;;;;1159:176:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1159:176:66;;;;157:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;157:20:66;;;;1526:123:59;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1526:123:59;;;;;180:23:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;180:23:66;;;;945:140;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;945:140:66;-1:-1:-1;;;;;945:140:66;;;;;4813:112:59;4877:7;4897:24;4907:13;4897:9;:24::i;:::-;4890:31;4813:112;-1:-1:-1;;4813:112:59:o;2735:1223::-;3330:36;3413:23;3535:24;3606:33;575:12:66;:10;:12::i;:::-;2939:1:59;2891:20;;;:5;:20;;;;;:36;-1:-1:-1;;;;;2891:36:59;:50;;2883:79;;;;;-1:-1:-1;;;;;2883:79:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;3056:1;3009:20;;;:5;:20;;;;;:49;;-1:-1:-1;;3009:49:59;;;3299:13;:20;3009:49;-1:-1:-1;3295:420:59;;;3369:13;3383:20;;-1:-1:-1;;3383:24:59;;;3369:39;;;;;;;;;;;;;;;;3330:78;;;;;;;-1:-1:-1;;3330:78:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3369:39;3330:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3439:20:59;;;;:5;:20;;;;;:30;;;3475:13;:30;;3330:78;;-1:-1:-1;3439:30:59;;-1:-1:-1;3330:78:59;;3475:13;;-1:-1:-1;3439:30:59;;-1:-1:-1;3475:30:59;;;;;;;;;;;;;:55;;;;;;;;;;;;:::i;:::-;;3562:39;3578:22;3562:15;:39::i;:::-;3642:23;;;;:5;:23;;;;;3670:22;;;:40;;;3535:66;;-1:-1:-1;3642:23:59;-1:-1:-1;3295:420:59;3767:13;:22;;;;;-1:-1:-1;;3767:22:59;;;:::i;:::-;-1:-1:-1;3864:1:59;3831:20;;;:5;:20;;;;;;;;:30;;:34;;;3914:40;;;;;;3837:13;;3914:40;;;;;;;;;2735:1223;;;;;:::o;848:29::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;848:29:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;848:29:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1826:789::-;2065:22;2265:9;575:12:66;:10;:12::i;:::-;1930:16:59;475:23:72;489:8;475:13;:23::i;:::-;2090:20:59;;;;:5;:20;;;;;:36;-1:-1:-1;;;;;2090:36:59;;;;-1:-1:-1;2134:34:59;;;;2130:47;;;2170:7;;2130:47;-1:-1:-1;;;;;2185:28:59;;;2181:236;;;2277:13;2296:30;2312:13;2296:15;:30::i;:::-;27:10:-1;;39:1;23:18;;45:23;;;-1:-1;2277:50:59;;;;;;;;;;23:18:-1;;2277:50:59;;;;;;;;;;:::i;:::-;-1:-1:-1;2374:20:59;;;;:5;:20;;;;;-1:-1:-1;;2407:5:59;;2411:1;2374:30;;;:38;2407:5;-1:-1:-1;2181:236:59;2461:20;;;;:5;:20;;;;;;;;;:55;;-1:-1:-1;;2461:55:59;-1:-1:-1;;;;;2461:55:59;;;;;;;;2565:46;;;;;;;2461:20;;2565:46;;;;;;;;;502:1:72;591::66;1826:789:59;;;;:::o;1279:86::-;1341:13;:20;1279:86;;:::o;1159:176:66:-;1219:8;;-1:-1:-1;;;;;1219:8:66;1205:10;:22;1197:52;;;;;-1:-1:-1;;;;;1197:52:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;1277:8;;;1270:5;;1258:28;;-1:-1:-1;;;;;1277:8:66;;;;1270:5;;;;1258:28;;;1298:8;;;;1290:16;;-1:-1:-1;;1290:16:66;;;-1:-1:-1;;;;;1298:8:66;;1290:16;;;;1310:21;;;1159:176::o;157:20::-;;;-1:-1:-1;;;;;157:20:66;;:::o;1526:123:59:-;1589:7;1609:20;;;:5;:20;;;;;:36;-1:-1:-1;;;;;1609:36:59;;1526:123::o;180:23:66:-;;;-1:-1:-1;;;;;180:23:66;;:::o;945:140::-;575:12;:10;:12::i;:::-;1033:5;;-1:-1:-1;;;;;1020:18:66;;;1033:5;;1020:18;;1012:45;;;;;-1:-1:-1;;;;;1012:45:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;1061:8;:20;;-1:-1:-1;;1061:20:66;-1:-1:-1;;;;;1061:20:66;;;;;;;;;;945:140::o;642:93::-;704:5;;-1:-1:-1;;;;;704:5:66;690:10;:19;682:49;;;;;-1:-1:-1;;;;;682:49:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;642:93::o;4584:172:59:-;4728:2;4715:16;4709:23;;4584:172::o;553:117:72:-;-1:-1:-1;;;;;620:22:72;;;;612:54;;;;;-1:-1:-1;;;;;612:54:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;553:117;:::o;4164:216:59:-;4264:13;;;4274:2;4264:13;;;;;;;;;4227:6;;;;4286:9;;4264:13;;;17:15:-1;;105:10;4264:13:59;88:34:-1;136:17;;-1:-1;4264:13:59;4239:38;;4298:1;4286:13;;4281:67;4305:2;4301:1;:6;4281:67;;;4334:6;4341:1;4334:9;;;;;;;;;;4319;4329:1;4319:12;;;;;;;;;;;;;;:24;;;;;;;;;;-1:-1:-1;4309:3:59;;4281:67;;;-1:-1:-1;4366:9:59;4164:216;-1:-1:-1;;4164:216:59:o;557:4370::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;557:4370:59;;;-1:-1:-1;557:4370:59;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i" - }, - "methodIdentifiers": { - "acceptOwnership()": "79ba5097", - "addressOf(bytes32)": "bb34534c", - "contractNames(uint256)": "3ca6bb92", - "getAddress(bytes32)": "21f8a721", - "itemCount()": "6bfb0d01", - "newOwner()": "d4ee1d90", - "owner()": "8da5cb5b", - "registerAddress(bytes32,address)": "662de379", - "transferOwnership(address)": "f2fde38b", - "unregisterAddress(bytes32)": "2bbd9530" - } - }, - "userdoc": { - "methods": {} - } - } - }, - "solidity/contracts/utility/ContractRegistryClient.sol": { - "ContractRegistryClient": { - "abi": [ - { - "constant": false, - "inputs": [ - { - "name": "_onlyOwnerCanUpdateRegistry", - "type": "bool" - } - ], - "name": "restrictRegistryUpdate", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "onlyOwnerCanUpdateRegistry", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "updateRegistry", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "prevRegistry", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "acceptOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "registry", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "owner", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "restoreRegistry", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "newOwner", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "name": "_registry", - "type": "address" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "_prevOwner", - "type": "address" - }, - { - "indexed": true, - "name": "_newOwner", - "type": "address" - } - ], - "name": "OwnerUpdate", - "type": "event" - } - ], - "devdoc": { - "methods": { - "acceptOwnership()": { - "details": "used by a new owner to accept an ownership transfer" - }, - "restoreRegistry()": { - "details": "restores the previous contract-registry" - }, - "restrictRegistryUpdate(bool)": { - "details": "restricts the permission to update the contract-registry", - "params": { - "_onlyOwnerCanUpdateRegistry": "indicates whether or not permission is restricted to owner only" - } - }, - "transferOwnership(address)": { - "details": "allows transferring the contract ownership the new owner still needs to accept the transfer can only be called by the contract owner", - "params": { - "_newOwner": "new contract owner" - } - }, - "updateRegistry()": { - "details": "updates to the new contract-registry" - } - } - }, - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "deployedBytecode": { - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "methodIdentifiers": { - "acceptOwnership()": "79ba5097", - "newOwner()": "d4ee1d90", - "onlyOwnerCanUpdateRegistry()": "2fe8a6ad", - "owner()": "8da5cb5b", - "prevRegistry()": "61cd756e", - "registry()": "7b103999", - "restoreRegistry()": "b4a176d3", - "restrictRegistryUpdate(bool)": "024c7ec7", - "transferOwnership(address)": "f2fde38b", - "updateRegistry()": "49d10b64" - } - }, - "userdoc": { - "methods": {} - } - } - }, - "solidity/contracts/utility/MoCMedianizerMock.sol": { - "MoCMedianizerMock": { - "abi": [ - { - "constant": true, - "inputs": [], - "name": "value", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_value", - "type": "uint256" - } - ], - "name": "setValue", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "peek", - "outputs": [ - { - "name": "", - "type": "bytes32" - }, - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_has", - "type": "bool" - } - ], - "name": "setHas", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "has", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - } - ], - "devdoc": { - "methods": {} - }, - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "608060405234801561001057600080fd5b50610183806100206000396000f30060806040526004361061006c5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416633fa4f2458114610071578063552410771461009857806359e02dd7146100b257806361da0693146100e0578063b689d5ac146100fa575b600080fd5b34801561007d57600080fd5b50610086610123565b60408051918252519081900360200190f35b3480156100a457600080fd5b506100b0600435610129565b005b3480156100be57600080fd5b506100c761012e565b6040805192835290151560208301528051918290030190f35b3480156100ec57600080fd5b506100b0600435151561013b565b34801561010657600080fd5b5061010f61014e565b604080519115158252519081900360200190f35b60005481565b600055565b60005460015460ff169091565b6001805460ff1916911515919091179055565b60015460ff16815600a165627a7a7230582007583151b494330547fa89c83fce333518d58f5d3e7d49004be6933bd8d6d3bb0029", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x183 DUP1 PUSH2 0x20 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x6C JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x3FA4F245 DUP2 EQ PUSH2 0x71 JUMPI DUP1 PUSH4 0x55241077 EQ PUSH2 0x98 JUMPI DUP1 PUSH4 0x59E02DD7 EQ PUSH2 0xB2 JUMPI DUP1 PUSH4 0x61DA0693 EQ PUSH2 0xE0 JUMPI DUP1 PUSH4 0xB689D5AC EQ PUSH2 0xFA JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x86 PUSH2 0x123 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB0 PUSH1 0x4 CALLDATALOAD PUSH2 0x129 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xBE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xC7 PUSH2 0x12E JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE SWAP1 ISZERO ISZERO PUSH1 0x20 DUP4 ADD MSTORE DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xEC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB0 PUSH1 0x4 CALLDATALOAD ISZERO ISZERO PUSH2 0x13B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x106 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x10F PUSH2 0x14E JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 SSTORE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 SLOAD PUSH1 0xFF AND SWAP1 SWAP2 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP2 ISZERO ISZERO SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0xFF AND DUP2 JUMP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 SMOD PC BALANCE MLOAD 0xb4 SWAP5 CALLER SDIV 0x47 STATICCALL DUP10 0xc8 0x3f 0xce CALLER CALLDATALOAD XOR 0xd5 DUP16 0x5d RETURNDATACOPY PUSH30 0x49004BE6933BD8D6D3BB0029000000000000000000000000000000000000 ", - "sourceMap": "204:299:61:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;204:299:61;;;;;;;" - }, - "deployedBytecode": { - "linkReferences": {}, - "object": "60806040526004361061006c5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416633fa4f2458114610071578063552410771461009857806359e02dd7146100b257806361da0693146100e0578063b689d5ac146100fa575b600080fd5b34801561007d57600080fd5b50610086610123565b60408051918252519081900360200190f35b3480156100a457600080fd5b506100b0600435610129565b005b3480156100be57600080fd5b506100c761012e565b6040805192835290151560208301528051918290030190f35b3480156100ec57600080fd5b506100b0600435151561013b565b34801561010657600080fd5b5061010f61014e565b604080519115158252519081900360200190f35b60005481565b600055565b60005460015460ff169091565b6001805460ff1916911515919091179055565b60015460ff16815600a165627a7a7230582007583151b494330547fa89c83fce333518d58f5d3e7d49004be6933bd8d6d3bb0029", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x6C JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x3FA4F245 DUP2 EQ PUSH2 0x71 JUMPI DUP1 PUSH4 0x55241077 EQ PUSH2 0x98 JUMPI DUP1 PUSH4 0x59E02DD7 EQ PUSH2 0xB2 JUMPI DUP1 PUSH4 0x61DA0693 EQ PUSH2 0xE0 JUMPI DUP1 PUSH4 0xB689D5AC EQ PUSH2 0xFA JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x86 PUSH2 0x123 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB0 PUSH1 0x4 CALLDATALOAD PUSH2 0x129 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xBE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xC7 PUSH2 0x12E JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE SWAP1 ISZERO ISZERO PUSH1 0x20 DUP4 ADD MSTORE DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xEC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB0 PUSH1 0x4 CALLDATALOAD ISZERO ISZERO PUSH2 0x13B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x106 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x10F PUSH2 0x14E JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 SSTORE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 SLOAD PUSH1 0xFF AND SWAP1 SWAP2 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP2 ISZERO ISZERO SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0xFF AND DUP2 JUMP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 SMOD PC BALANCE MLOAD 0xb4 SWAP5 CALLER SDIV 0x47 STATICCALL DUP10 0xc8 0x3f 0xce CALLER CALLDATALOAD XOR 0xd5 DUP16 0x5d RETURNDATACOPY PUSH30 0x49004BE6933BD8D6D3BB0029000000000000000000000000000000000000 ", - "sourceMap": "204:299:61:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;248:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;248:20:61;;;;;;;;;;;;;;;;;;;;383:63;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;383:63:61;;;;;;;290:90;;8:9:-1;5:2;;;30:1;27;20:12;5:2;290:90:61;;;;;;;;;;;;;;;;;;;;;;;;;;;449:52;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;449:52:61;;;;;;;271:15;;8:9:-1;5:2;;;30:1;27;20:12;5:2;271:15:61;;;;;;;;;;;;;;;;;;;;;;248:20;;;;:::o;383:63::-;428:5;:14;383:63::o;290:90::-;329:7;364:5;356:14;372:3;;;290:90;;:::o;449:52::-;487:3;:10;;-1:-1:-1;;487:10:61;;;;;;;;;;449:52::o;271:15::-;;;;;;:::o" - }, - "methodIdentifiers": { - "has()": "b689d5ac", - "peek()": "59e02dd7", - "setHas(bool)": "61da0693", - "setValue(uint256)": "55241077", - "value()": "3fa4f245" - } - }, - "userdoc": { - "methods": {} - } - } - }, - "solidity/contracts/utility/MoCStateMock.sol": { - "MoCStateMock": { - "abi": [ - { - "constant": true, - "inputs": [], - "name": "value", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_value", - "type": "uint256" - } - ], - "name": "setValue", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "bproUsdPrice", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - } - ], - "devdoc": { - "methods": {} - }, - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "608060405234801561001057600080fd5b5060e18061001f6000396000f30060806040526004361060525763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416633fa4f245811460575780635524107714607b578063747a5663146092575b600080fd5b348015606257600080fd5b50606960a4565b60408051918252519081900360200190f35b348015608657600080fd5b50609060043560aa565b005b348015609d57600080fd5b50606960af565b60005481565b600055565b600054905600a165627a7a723058202ebe593130f015ec45b96332b43be92bb07e705551b39cef2745f020258c0c940029", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0xE1 DUP1 PUSH2 0x1F PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH1 0x52 JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x3FA4F245 DUP2 EQ PUSH1 0x57 JUMPI DUP1 PUSH4 0x55241077 EQ PUSH1 0x7B JUMPI DUP1 PUSH4 0x747A5663 EQ PUSH1 0x92 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH1 0x62 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x69 PUSH1 0xA4 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH1 0x86 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x90 PUSH1 0x4 CALLDATALOAD PUSH1 0xAA JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH1 0x9D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x69 PUSH1 0xAF JUMP JUMPDEST PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 SSTORE JUMP JUMPDEST PUSH1 0x0 SLOAD SWAP1 JUMP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 0x2e 0xbe MSIZE BALANCE ADDRESS CREATE ISZERO 0xec GASLIMIT 0xb9 PUSH4 0x32B43BE9 0x2b 0xb0 PUSH31 0x705551B39CEF2745F020258C0C940029000000000000000000000000000000 ", - "sourceMap": "63:204:62:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;63:204:62;;;;;;;" - }, - "deployedBytecode": { - "linkReferences": {}, - "object": "60806040526004361060525763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416633fa4f245811460575780635524107714607b578063747a5663146092575b600080fd5b348015606257600080fd5b50606960a4565b60408051918252519081900360200190f35b348015608657600080fd5b50609060043560aa565b005b348015609d57600080fd5b50606960af565b60005481565b600055565b600054905600a165627a7a723058202ebe593130f015ec45b96332b43be92bb07e705551b39cef2745f020258c0c940029", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH1 0x52 JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x3FA4F245 DUP2 EQ PUSH1 0x57 JUMPI DUP1 PUSH4 0x55241077 EQ PUSH1 0x7B JUMPI DUP1 PUSH4 0x747A5663 EQ PUSH1 0x92 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH1 0x62 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x69 PUSH1 0xA4 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH1 0x86 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x90 PUSH1 0x4 CALLDATALOAD PUSH1 0xAA JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH1 0x9D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x69 PUSH1 0xAF JUMP JUMPDEST PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 SSTORE JUMP JUMPDEST PUSH1 0x0 SLOAD SWAP1 JUMP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 0x2e 0xbe MSIZE BALANCE ADDRESS CREATE ISZERO 0xec GASLIMIT 0xb9 PUSH4 0x32B43BE9 0x2b 0xb0 PUSH31 0x705551B39CEF2745F020258C0C940029000000000000000000000000000000 ", - "sourceMap": "63:204:62:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;101:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;101:20:62;;;;;;;;;;;;;;;;;;;;202:63;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;202:63:62;;;;;;;125:74;;8:9:-1;5:2;;;30:1;27;20:12;5:2;125:74:62;;;;101:20;;;;:::o;202:63::-;247:5;:14;202:63::o;125:74::-;170:7;190:5;125:74;:::o" - }, - "methodIdentifiers": { - "bproUsdPrice()": "747a5663", - "setValue(uint256)": "55241077", - "value()": "3fa4f245" - } - }, - "userdoc": { - "methods": {} - } - } - }, - "solidity/contracts/utility/MocBTCToBTCOracle.sol": { - "MocBTCToBTCOracle": { - "abi": [ - { - "constant": true, - "inputs": [], - "name": "latestAnswer", - "outputs": [ - { - "name": "", - "type": "int256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "latestTimestamp", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - } - ], - "devdoc": { - "methods": { - "latestAnswer()": { - "details": "returns the trivial ETH/ETH rate.", - "return": "always returns the trivial rate of 1" - }, - "latestTimestamp()": { - "details": "returns the trivial ETH/ETH update time.", - "return": "always returns current block's timestamp" - } - } - }, - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "608060405234801561001057600080fd5b5060b88061001f6000396000f30060806040526004361060485763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166350d25bcd8114604d5780638205bf6a146071575b600080fd5b348015605857600080fd5b50605f6083565b60408051918252519081900360200190f35b348015607c57600080fd5b50605f6088565b600190565b42905600a165627a7a7230582045a944b0900d5b4c55e19b0dd8df92b4c7875337eae5504ca7ed2a5fa5a242100029", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0xB8 DUP1 PUSH2 0x1F PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH1 0x48 JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x50D25BCD DUP2 EQ PUSH1 0x4D JUMPI DUP1 PUSH4 0x8205BF6A EQ PUSH1 0x71 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH1 0x58 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x5F PUSH1 0x83 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH1 0x7C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x5F PUSH1 0x88 JUMP JUMPDEST PUSH1 0x1 SWAP1 JUMP JUMPDEST TIMESTAMP SWAP1 JUMP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 GASLIMIT 0xa9 DIFFICULTY 0xb0 SWAP1 0xd JUMPDEST 0x4c SSTORE 0xe1 SWAP12 0xd 0xd8 0xdf SWAP3 0xb4 0xc7 DUP8 MSTORE8 CALLDATACOPY 0xea 0xe5 POP 0x4c 0xa7 0xed 0x2a 0x5f 0xa5 LOG2 TIMESTAMP LT STOP 0x29 ", - "sourceMap": "160:477:63:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;160:477:63;;;;;;;" - }, - "deployedBytecode": { - "linkReferences": {}, - "object": "60806040526004361060485763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166350d25bcd8114604d5780638205bf6a146071575b600080fd5b348015605857600080fd5b50605f6083565b60408051918252519081900360200190f35b348015607c57600080fd5b50605f6088565b600190565b42905600a165627a7a7230582045a944b0900d5b4c55e19b0dd8df92b4c7875337eae5504ca7ed2a5fa5a242100029", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH1 0x48 JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x50D25BCD DUP2 EQ PUSH1 0x4D JUMPI DUP1 PUSH4 0x8205BF6A EQ PUSH1 0x71 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH1 0x58 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x5F PUSH1 0x83 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH1 0x7C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x5F PUSH1 0x88 JUMP JUMPDEST PUSH1 0x1 SWAP1 JUMP JUMPDEST TIMESTAMP SWAP1 JUMP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 GASLIMIT 0xa9 DIFFICULTY 0xb0 SWAP1 0xd JUMPDEST 0x4c SSTORE 0xe1 SWAP12 0xd 0xd8 0xdf SWAP3 0xb4 0xc7 DUP8 MSTORE8 CALLDATACOPY 0xea 0xe5 POP 0x4c 0xa7 0xed 0x2a 0x5f 0xa5 LOG2 TIMESTAMP LT STOP 0x29 ", - "sourceMap": "160:477:63:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;360:78;;8:9:-1;5:2;;;30:1;27;20:12;5:2;360:78:63;;;;;;;;;;;;;;;;;;;;558:77;;8:9:-1;5:2;;;30:1;27;20:12;5:2;558:77:63;;;;360:78;249:1;360:78;:::o;558:77::-;628:3;558:77;:::o" - }, - "methodIdentifiers": { - "latestAnswer()": "50d25bcd", - "latestTimestamp()": "8205bf6a" - } - }, - "userdoc": { - "methods": {} - } - } - }, - "solidity/contracts/utility/MocBTCToUSDOracle.sol": { - "Medianizer": { - "abi": [ - { - "constant": true, - "inputs": [], - "name": "peek", - "outputs": [ - { - "name": "", - "type": "bytes32" - }, - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - } - ], - "devdoc": { - "methods": {} - }, - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "deployedBytecode": { - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "methodIdentifiers": { - "peek()": "59e02dd7" - } - }, - "userdoc": { - "methods": {} - } - }, - "MocBTCToUSDOracle": { - "abi": [ - { - "constant": false, - "inputs": [ - { - "name": "_mocOracleAddress", - "type": "address" - } - ], - "name": "setMoCOracleAddress", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "latestAnswer", - "outputs": [ - { - "name": "", - "type": "int256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "acceptOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "latestTimestamp", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "owner", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "newOwner", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "mocOracleAddress", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "name": "_mocOracleAddress", - "type": "address" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "mocOracleAddress", - "type": "address" - }, - { - "indexed": false, - "name": "changerAddress", - "type": "address" - } - ], - "name": "SetMoCOracleAddress", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "_prevOwner", - "type": "address" - }, - { - "indexed": true, - "name": "_newOwner", - "type": "address" - } - ], - "name": "OwnerUpdate", - "type": "event" - } - ], - "devdoc": { - "methods": { - "acceptOwnership()": { - "details": "used by a new owner to accept an ownership transfer" - }, - "latestAnswer()": { - "details": "returns the USD/BTC rate.", - "return": "MoC medianizer rate" - }, - "latestTimestamp()": { - "details": "returns the USD/BTC update time.", - "return": "always returns current block's timestamp" - }, - "setMoCOracleAddress(address)": { - "details": "set MoC oracle address", - "params": { - "_mocOracleAddress": "MoC oracle address" - } - }, - "transferOwnership(address)": { - "details": "allows transferring the contract ownership the new owner still needs to accept the transfer can only be called by the contract owner", - "params": { - "_newOwner": "new contract owner" - } - } - } - }, - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "608060405234801561001057600080fd5b50604051602080610791833981016040525160008054600160a060020a031916331790556100468164010000000061004c810204565b506101d2565b61005d640100000000610157810204565b600160a060020a03811615156100fa57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f5f6d6f634f7261636c6541646472657373207368616c6c206e6f74206265207a60448201527f65726f2061646472657373000000000000000000000000000000000000000000606482015290519081900360840190fd5b60028054600160a060020a031916600160a060020a03838116919091179182905560408051338152905192909116917f1275deefe41e3273f2a99545002cc8369a04b2dbd04b2557e428a712cb2d5117916020908290030190a250565b600054600160a060020a031633146101d057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b565b6105b0806101e16000396000f30060806040526004361061008d5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416634541b2e3811461009257806350d25bcd146100b557806379ba5097146100dc5780638205bf6a146100f15780638da5cb5b14610106578063d4ee1d9014610137578063f106b5f41461014c578063f2fde38b14610161575b600080fd5b34801561009e57600080fd5b506100b3600160a060020a0360043516610182565b005b3480156100c157600080fd5b506100ca61027a565b60408051918252519081900360200190f35b3480156100e857600080fd5b506100b361037f565b3480156100fd57600080fd5b506100ca610452565b34801561011257600080fd5b5061011b610456565b60408051600160a060020a039092168252519081900360200190f35b34801561014357600080fd5b5061011b610465565b34801561015857600080fd5b5061011b610474565b34801561016d57600080fd5b506100b3600160a060020a0360043516610483565b61018a610520565b600160a060020a0381161515610210576040805160e560020a62461bcd02815260206004820152602b60248201527f5f6d6f634f7261636c6541646472657373207368616c6c206e6f74206265207a60448201527f65726f2061646472657373000000000000000000000000000000000000000000606482015290519081900360840190fd5b6002805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03838116919091179182905560408051338152905192909116917f1275deefe41e3273f2a99545002cc8369a04b2dbd04b2557e428a712cb2d5117916020908290030190a250565b6000806000600260009054906101000a9004600160a060020a0316600160a060020a03166359e02dd76040518163ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004016040805180830381600087803b1580156102ea57600080fd5b505af11580156102fe573d6000803e3d6000fd5b505050506040513d604081101561031457600080fd5b5080516020909101519092509050801515610379576040805160e560020a62461bcd02815260206004820152601160248201527f446f65736e2774206861732076616c7565000000000000000000000000000000604482015290519081900360640190fd5b50919050565b600154600160a060020a031633146103e1576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b60015460008054604051600160a060020a0393841693909116917f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91a3600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b4290565b600054600160a060020a031681565b600154600160a060020a031681565b600254600160a060020a031681565b61048b610520565b600054600160a060020a03828116911614156104f1576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f53414d455f4f574e4552000000000000000000000000000000000000604482015290519081900360640190fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600054600160a060020a03163314610582576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b5600a165627a7a7230582074b529db0a6435438201ab07c58fc9707cc61f8b6e44a63fef6b6872fb9f27e80029", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP1 PUSH2 0x791 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 MSTORE MLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND CALLER OR SWAP1 SSTORE PUSH2 0x46 DUP2 PUSH5 0x100000000 PUSH2 0x4C DUP2 MUL DIV JUMP JUMPDEST POP PUSH2 0x1D2 JUMP JUMPDEST PUSH2 0x5D PUSH5 0x100000000 PUSH2 0x157 DUP2 MUL DIV JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0xFA JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5F6D6F634F7261636C6541646472657373207368616C6C206E6F74206265207A PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x65726F2061646472657373000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x84 ADD SWAP1 REVERT JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 DUP2 AND SWAP2 SWAP1 SWAP2 OR SWAP2 DUP3 SWAP1 SSTORE PUSH1 0x40 DUP1 MLOAD CALLER DUP2 MSTORE SWAP1 MLOAD SWAP3 SWAP1 SWAP2 AND SWAP2 PUSH32 0x1275DEEFE41E3273F2A99545002CC8369A04B2DBD04B2557E428A712CB2D5117 SWAP2 PUSH1 0x20 SWAP1 DUP3 SWAP1 SUB ADD SWAP1 LOG2 POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x1D0 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH2 0x5B0 DUP1 PUSH2 0x1E1 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x8D JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x4541B2E3 DUP2 EQ PUSH2 0x92 JUMPI DUP1 PUSH4 0x50D25BCD EQ PUSH2 0xB5 JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0xDC JUMPI DUP1 PUSH4 0x8205BF6A EQ PUSH2 0xF1 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x106 JUMPI DUP1 PUSH4 0xD4EE1D90 EQ PUSH2 0x137 JUMPI DUP1 PUSH4 0xF106B5F4 EQ PUSH2 0x14C JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x161 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x182 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xC1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xCA PUSH2 0x27A JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xE8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB3 PUSH2 0x37F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xFD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xCA PUSH2 0x452 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x112 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x11B PUSH2 0x456 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x143 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x11B PUSH2 0x465 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x158 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x11B PUSH2 0x474 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x16D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x483 JUMP JUMPDEST PUSH2 0x18A PUSH2 0x520 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0x210 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5F6D6F634F7261636C6541646472657373207368616C6C206E6F74206265207A PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x65726F2061646472657373000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x84 ADD SWAP1 REVERT JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 DUP2 AND SWAP2 SWAP1 SWAP2 OR SWAP2 DUP3 SWAP1 SSTORE PUSH1 0x40 DUP1 MLOAD CALLER DUP2 MSTORE SWAP1 MLOAD SWAP3 SWAP1 SWAP2 AND SWAP2 PUSH32 0x1275DEEFE41E3273F2A99545002CC8369A04B2DBD04B2557E428A712CB2D5117 SWAP2 PUSH1 0x20 SWAP1 DUP3 SWAP1 SUB ADD SWAP1 LOG2 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x59E02DD7 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH29 0x100000000000000000000000000000000000000000000000000000000 MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 DUP1 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2FE JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x314 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD MLOAD SWAP1 SWAP3 POP SWAP1 POP DUP1 ISZERO ISZERO PUSH2 0x379 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x446F65736E2774206861732076616C7565000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x3E1 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND SWAP4 SWAP1 SWAP2 AND SWAP2 PUSH32 0x343765429AEA5A34B3FF6A3785A98A5ABB2597ACA87BFBB58632C173D585373A SWAP2 LOG3 PUSH1 0x1 DUP1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND OR SWAP1 SWAP2 SSTORE AND SWAP1 SSTORE JUMP JUMPDEST TIMESTAMP SWAP1 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH2 0x48B PUSH2 0x520 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x4F1 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F4F574E4552000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x582 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST JUMP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 PUSH21 0xB529DB0A6435438201AB07C58FC9707CC61F8B6E44 0xa6 0x3f 0xef PUSH12 0x6872FB9F27E8002900000000 ", - "sourceMap": "178:1255:64:-;;;460:92;8:9:-1;5:2;;;30:1;27;20:12;5:2;460:92:64;;;;;;;;;;;;;488:5:66;:18;;-1:-1:-1;;;;;;488:18:66;496:10;488:18;;;510:38:64;460:92;510:19;;;;:38;:::i;:::-;460:92;178:1255;;1165:266;575:12:66;:10;;;;:12;:::i;:::-;-1:-1:-1;;;;;1250:31:64;;;;1242:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1333:16;:36;;-1:-1:-1;;;;;;1333:36:64;-1:-1:-1;;;;;1333:36:64;;;;;;;;;;;1378:49;;;1416:10;1378:49;;;;1398:16;;;;;1378:49;;;;;;;;;;1165:266;:::o;642:93:66:-;704:5;;-1:-1:-1;;;;;704:5:66;690:10;:19;682:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;642:93::o;178:1255:64:-;;;;;;;" - }, - "deployedBytecode": { - "linkReferences": {}, - "object": "60806040526004361061008d5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416634541b2e3811461009257806350d25bcd146100b557806379ba5097146100dc5780638205bf6a146100f15780638da5cb5b14610106578063d4ee1d9014610137578063f106b5f41461014c578063f2fde38b14610161575b600080fd5b34801561009e57600080fd5b506100b3600160a060020a0360043516610182565b005b3480156100c157600080fd5b506100ca61027a565b60408051918252519081900360200190f35b3480156100e857600080fd5b506100b361037f565b3480156100fd57600080fd5b506100ca610452565b34801561011257600080fd5b5061011b610456565b60408051600160a060020a039092168252519081900360200190f35b34801561014357600080fd5b5061011b610465565b34801561015857600080fd5b5061011b610474565b34801561016d57600080fd5b506100b3600160a060020a0360043516610483565b61018a610520565b600160a060020a0381161515610210576040805160e560020a62461bcd02815260206004820152602b60248201527f5f6d6f634f7261636c6541646472657373207368616c6c206e6f74206265207a60448201527f65726f2061646472657373000000000000000000000000000000000000000000606482015290519081900360840190fd5b6002805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03838116919091179182905560408051338152905192909116917f1275deefe41e3273f2a99545002cc8369a04b2dbd04b2557e428a712cb2d5117916020908290030190a250565b6000806000600260009054906101000a9004600160a060020a0316600160a060020a03166359e02dd76040518163ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004016040805180830381600087803b1580156102ea57600080fd5b505af11580156102fe573d6000803e3d6000fd5b505050506040513d604081101561031457600080fd5b5080516020909101519092509050801515610379576040805160e560020a62461bcd02815260206004820152601160248201527f446f65736e2774206861732076616c7565000000000000000000000000000000604482015290519081900360640190fd5b50919050565b600154600160a060020a031633146103e1576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b60015460008054604051600160a060020a0393841693909116917f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91a3600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b4290565b600054600160a060020a031681565b600154600160a060020a031681565b600254600160a060020a031681565b61048b610520565b600054600160a060020a03828116911614156104f1576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f53414d455f4f574e4552000000000000000000000000000000000000604482015290519081900360640190fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600054600160a060020a03163314610582576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b5600a165627a7a7230582074b529db0a6435438201ab07c58fc9707cc61f8b6e44a63fef6b6872fb9f27e80029", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x8D JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x4541B2E3 DUP2 EQ PUSH2 0x92 JUMPI DUP1 PUSH4 0x50D25BCD EQ PUSH2 0xB5 JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0xDC JUMPI DUP1 PUSH4 0x8205BF6A EQ PUSH2 0xF1 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x106 JUMPI DUP1 PUSH4 0xD4EE1D90 EQ PUSH2 0x137 JUMPI DUP1 PUSH4 0xF106B5F4 EQ PUSH2 0x14C JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x161 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x182 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xC1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xCA PUSH2 0x27A JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xE8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB3 PUSH2 0x37F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xFD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xCA PUSH2 0x452 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x112 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x11B PUSH2 0x456 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x143 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x11B PUSH2 0x465 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x158 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x11B PUSH2 0x474 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x16D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x483 JUMP JUMPDEST PUSH2 0x18A PUSH2 0x520 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0x210 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5F6D6F634F7261636C6541646472657373207368616C6C206E6F74206265207A PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x65726F2061646472657373000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x84 ADD SWAP1 REVERT JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 DUP2 AND SWAP2 SWAP1 SWAP2 OR SWAP2 DUP3 SWAP1 SSTORE PUSH1 0x40 DUP1 MLOAD CALLER DUP2 MSTORE SWAP1 MLOAD SWAP3 SWAP1 SWAP2 AND SWAP2 PUSH32 0x1275DEEFE41E3273F2A99545002CC8369A04B2DBD04B2557E428A712CB2D5117 SWAP2 PUSH1 0x20 SWAP1 DUP3 SWAP1 SUB ADD SWAP1 LOG2 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x59E02DD7 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH29 0x100000000000000000000000000000000000000000000000000000000 MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 DUP1 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2FE JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x314 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD MLOAD SWAP1 SWAP3 POP SWAP1 POP DUP1 ISZERO ISZERO PUSH2 0x379 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x446F65736E2774206861732076616C7565000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x3E1 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND SWAP4 SWAP1 SWAP2 AND SWAP2 PUSH32 0x343765429AEA5A34B3FF6A3785A98A5ABB2597ACA87BFBB58632C173D585373A SWAP2 LOG3 PUSH1 0x1 DUP1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND OR SWAP1 SWAP2 SSTORE AND SWAP1 SSTORE JUMP JUMPDEST TIMESTAMP SWAP1 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH2 0x48B PUSH2 0x520 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x4F1 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F4F574E4552000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x582 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST JUMP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 PUSH21 0xB529DB0A6435438201AB07C58FC9707CC61F8B6E44 0xa6 0x3f 0xef PUSH12 0x6872FB9F27E8002900000000 ", - "sourceMap": "178:1255:64:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1165:266;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1165:266:64;-1:-1:-1;;;;;1165:266:64;;;;;;;636:197;;8:9:-1;5:2;;;30:1;27;20:12;5:2;636:197:64;;;;;;;;;;;;;;;;;;;;1159:176:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1159:176:66;;;;945:123:64;;8:9:-1;5:2;;;30:1;27;20:12;5:2;945:123:64;;;;157:20:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;157:20:66;;;;;;;;-1:-1:-1;;;;;157:20:66;;;;;;;;;;;;;;180:23;;8:9:-1;5:2;;;30:1;27;20:12;5:2;180:23:66;;;;239:31:64;;8:9:-1;5:2;;;30:1;27;20:12;5:2;239:31:64;;;;945:140:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;945:140:66;-1:-1:-1;;;;;945:140:66;;;;;1165:266:64;575:12:66;:10;:12::i;:::-;-1:-1:-1;;;;;1250:31:64;;;;1242:87;;;;;-1:-1:-1;;;;;1242:87:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1333:16;:36;;-1:-1:-1;;1333:36:64;-1:-1:-1;;;;;1333:36:64;;;;;;;;;;;1378:49;;;1416:10;1378:49;;;;1398:16;;;;;1378:49;;;;;;;;;;1165:266;:::o;636:197::-;683:6;696:13;711;739:16;;;;;;;;;-1:-1:-1;;;;;739:16:64;-1:-1:-1;;;;;728:33:64;;:35;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;728:35:64;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;728:35:64;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;728:35:64;;;;;;;;;-1:-1:-1;728:35:64;-1:-1:-1;767:38:64;;;;;;;;-1:-1:-1;;;;;767:38:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;823:5:64;636:197;-1:-1:-1;636:197:64:o;1159:176:66:-;1219:8;;-1:-1:-1;;;;;1219:8:66;1205:10;:22;1197:52;;;;;-1:-1:-1;;;;;1197:52:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;1277:8;;;1270:5;;1258:28;;-1:-1:-1;;;;;1277:8:66;;;;1270:5;;;;1258:28;;;1298:8;;;;1290:16;;-1:-1:-1;;1290:16:66;;;-1:-1:-1;;;;;1298:8:66;;1290:16;;;;1310:21;;;1159:176::o;945:123:64:-;1015:3;945:123;:::o;157:20:66:-;;;-1:-1:-1;;;;;157:20:66;;:::o;180:23::-;;;-1:-1:-1;;;;;180:23:66;;:::o;239:31:64:-;;;-1:-1:-1;;;;;239:31:64;;:::o;945:140:66:-;575:12;:10;:12::i;:::-;1033:5;;-1:-1:-1;;;;;1020:18:66;;;1033:5;;1020:18;;1012:45;;;;;-1:-1:-1;;;;;1012:45:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;1061:8;:20;;-1:-1:-1;;1061:20:66;-1:-1:-1;;;;;1061:20:66;;;;;;;;;;945:140::o;642:93::-;704:5;;-1:-1:-1;;;;;704:5:66;690:10;:19;682:49;;;;;-1:-1:-1;;;;;682:49:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;642:93::o" - }, - "methodIdentifiers": { - "acceptOwnership()": "79ba5097", - "latestAnswer()": "50d25bcd", - "latestTimestamp()": "8205bf6a", - "mocOracleAddress()": "f106b5f4", - "newOwner()": "d4ee1d90", - "owner()": "8da5cb5b", - "setMoCOracleAddress(address)": "4541b2e3", - "transferOwnership(address)": "f2fde38b" - } - }, - "userdoc": { - "methods": {} - } - } - }, - "solidity/contracts/utility/MocUSDToBTCOracle.sol": { - "Medianizer": { - "abi": [ - { - "constant": true, - "inputs": [], - "name": "peek", - "outputs": [ - { - "name": "", - "type": "bytes32" - }, - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - } - ], - "devdoc": { - "methods": {} - }, - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "deployedBytecode": { - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "methodIdentifiers": { - "peek()": "59e02dd7" - } - }, - "userdoc": { - "methods": {} - } - }, - "MocUSDToBTCOracle": { - "abi": [ - { - "constant": true, - "inputs": [], - "name": "DECIMALS", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_mocOracleAddress", - "type": "address" - } - ], - "name": "setMoCOracleAddress", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "latestAnswer", - "outputs": [ - { - "name": "", - "type": "int256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "acceptOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "latestTimestamp", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "owner", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "newOwner", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "mocOracleAddress", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "name": "_mocOracleAddress", - "type": "address" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "mocOracleAddress", - "type": "address" - }, - { - "indexed": false, - "name": "changerAddress", - "type": "address" - } - ], - "name": "SetMoCOracleAddress", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "_prevOwner", - "type": "address" - }, - { - "indexed": true, - "name": "_newOwner", - "type": "address" - } - ], - "name": "OwnerUpdate", - "type": "event" - } - ], - "devdoc": { - "methods": { - "acceptOwnership()": { - "details": "used by a new owner to accept an ownership transfer" - }, - "latestAnswer()": { - "details": "returns the USD/BTC rate.", - "return": "always returns the rate of 10000" - }, - "latestTimestamp()": { - "details": "returns the USD/BTC update time.", - "return": "always returns current block's timestamp" - }, - "setMoCOracleAddress(address)": { - "details": "set MoC oracle address", - "params": { - "_mocOracleAddress": "MoC oracle address" - } - }, - "transferOwnership(address)": { - "details": "allows transferring the contract ownership the new owner still needs to accept the transfer can only be called by the contract owner", - "params": { - "_newOwner": "new contract owner" - } - } - } - }, - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "608060405234801561001057600080fd5b506040516020806108d9833981016040525160008054600160a060020a031916331790556100468164010000000061004c810204565b506101d2565b61005d640100000000610157810204565b600160a060020a03811615156100fa57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f5f6d6f634f7261636c6541646472657373207368616c6c206e6f74206265207a60448201527f65726f2061646472657373000000000000000000000000000000000000000000606482015290519081900360840190fd5b60028054600160a060020a031916600160a060020a03838116919091179182905560408051338152905192909116917f1275deefe41e3273f2a99545002cc8369a04b2dbd04b2557e428a712cb2d5117916020908290030190a250565b600054600160a060020a031633146101d057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b565b6106f8806101e16000396000f3006080604052600436106100985763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416632e0f2625811461009d5780634541b2e3146100c457806350d25bcd146100e757806379ba5097146100fc5780638205bf6a146101115780638da5cb5b14610126578063d4ee1d9014610157578063f106b5f41461016c578063f2fde38b14610181575b600080fd5b3480156100a957600080fd5b506100b26101a2565b60408051918252519081900360200190f35b3480156100d057600080fd5b506100e5600160a060020a03600435166101ae565b005b3480156100f357600080fd5b506100b26102a6565b34801561010857600080fd5b506100e56103d4565b34801561011d57600080fd5b506100b26104a7565b34801561013257600080fd5b5061013b6104ab565b60408051600160a060020a039092168252519081900360200190f35b34801561016357600080fd5b5061013b6104ba565b34801561017857600080fd5b5061013b6104c9565b34801561018d57600080fd5b506100e5600160a060020a03600435166104d8565b670de0b6b3a764000081565b6101b6610575565b600160a060020a038116151561023c576040805160e560020a62461bcd02815260206004820152602b60248201527f5f6d6f634f7261636c6541646472657373207368616c6c206e6f74206265207a60448201527f65726f2061646472657373000000000000000000000000000000000000000000606482015290519081900360840190fd5b6002805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03838116919091179182905560408051338152905192909116917f1275deefe41e3273f2a99545002cc8369a04b2dbd04b2557e428a712cb2d5117916020908290030190a250565b6000806000600260009054906101000a9004600160a060020a0316600160a060020a03166359e02dd76040518163ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004016040805180830381600087803b15801561031657600080fd5b505af115801561032a573d6000803e3d6000fd5b505050506040513d604081101561034057600080fd5b50805160209091015190925090508015156103a5576040805160e560020a62461bcd02815260206004820152601160248201527f446f65736e2774206861732076616c7565000000000000000000000000000000604482015290519081900360640190fd5b6103cd670de0b6b3a76400006103c1818563ffffffff6105d916565b9063ffffffff61064c16565b9250505090565b600154600160a060020a03163314610436576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b60015460008054604051600160a060020a0393841693909116917f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91a3600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b4290565b600054600160a060020a031681565b600154600160a060020a031681565b600254600160a060020a031681565b6104e0610575565b600054600160a060020a0382811691161415610546576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f53414d455f4f574e4552000000000000000000000000000000000000604482015290519081900360640190fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600054600160a060020a031633146105d7576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b565b600080808311610633576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f4449564944455f42595f5a45524f0000000000000000000000000000604482015290519081900360640190fd5b828481151561063e57fe5b0490508091505b5092915050565b60008083151561065f5760009150610645565b5082820282848281151561066f57fe5b04146106c5576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b93925050505600a165627a7a723058202b4d48ffa3c43a6820d3d413dc7f5873bdb3dbee8530e9378d294c9fde4bfdcf0029", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP1 PUSH2 0x8D9 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 MSTORE MLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND CALLER OR SWAP1 SSTORE PUSH2 0x46 DUP2 PUSH5 0x100000000 PUSH2 0x4C DUP2 MUL DIV JUMP JUMPDEST POP PUSH2 0x1D2 JUMP JUMPDEST PUSH2 0x5D PUSH5 0x100000000 PUSH2 0x157 DUP2 MUL DIV JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0xFA JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5F6D6F634F7261636C6541646472657373207368616C6C206E6F74206265207A PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x65726F2061646472657373000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x84 ADD SWAP1 REVERT JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 DUP2 AND SWAP2 SWAP1 SWAP2 OR SWAP2 DUP3 SWAP1 SSTORE PUSH1 0x40 DUP1 MLOAD CALLER DUP2 MSTORE SWAP1 MLOAD SWAP3 SWAP1 SWAP2 AND SWAP2 PUSH32 0x1275DEEFE41E3273F2A99545002CC8369A04B2DBD04B2557E428A712CB2D5117 SWAP2 PUSH1 0x20 SWAP1 DUP3 SWAP1 SUB ADD SWAP1 LOG2 POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x1D0 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH2 0x6F8 DUP1 PUSH2 0x1E1 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x98 JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x2E0F2625 DUP2 EQ PUSH2 0x9D JUMPI DUP1 PUSH4 0x4541B2E3 EQ PUSH2 0xC4 JUMPI DUP1 PUSH4 0x50D25BCD EQ PUSH2 0xE7 JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0xFC JUMPI DUP1 PUSH4 0x8205BF6A EQ PUSH2 0x111 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x126 JUMPI DUP1 PUSH4 0xD4EE1D90 EQ PUSH2 0x157 JUMPI DUP1 PUSH4 0xF106B5F4 EQ PUSH2 0x16C JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x181 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB2 PUSH2 0x1A2 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xD0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xE5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x1AE JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xF3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB2 PUSH2 0x2A6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x108 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xE5 PUSH2 0x3D4 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x11D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB2 PUSH2 0x4A7 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x132 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x13B PUSH2 0x4AB JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x163 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x13B PUSH2 0x4BA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x178 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x13B PUSH2 0x4C9 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x18D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xE5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x4D8 JUMP JUMPDEST PUSH8 0xDE0B6B3A7640000 DUP2 JUMP JUMPDEST PUSH2 0x1B6 PUSH2 0x575 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0x23C JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5F6D6F634F7261636C6541646472657373207368616C6C206E6F74206265207A PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x65726F2061646472657373000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x84 ADD SWAP1 REVERT JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 DUP2 AND SWAP2 SWAP1 SWAP2 OR SWAP2 DUP3 SWAP1 SSTORE PUSH1 0x40 DUP1 MLOAD CALLER DUP2 MSTORE SWAP1 MLOAD SWAP3 SWAP1 SWAP2 AND SWAP2 PUSH32 0x1275DEEFE41E3273F2A99545002CC8369A04B2DBD04B2557E428A712CB2D5117 SWAP2 PUSH1 0x20 SWAP1 DUP3 SWAP1 SUB ADD SWAP1 LOG2 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x59E02DD7 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH29 0x100000000000000000000000000000000000000000000000000000000 MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 DUP1 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x316 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x32A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x340 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD MLOAD SWAP1 SWAP3 POP SWAP1 POP DUP1 ISZERO ISZERO PUSH2 0x3A5 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x446F65736E2774206861732076616C7565000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x3CD PUSH8 0xDE0B6B3A7640000 PUSH2 0x3C1 DUP2 DUP6 PUSH4 0xFFFFFFFF PUSH2 0x5D9 AND JUMP JUMPDEST SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x64C AND JUMP JUMPDEST SWAP3 POP POP POP SWAP1 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x436 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND SWAP4 SWAP1 SWAP2 AND SWAP2 PUSH32 0x343765429AEA5A34B3FF6A3785A98A5ABB2597ACA87BFBB58632C173D585373A SWAP2 LOG3 PUSH1 0x1 DUP1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND OR SWAP1 SWAP2 SSTORE AND SWAP1 SSTORE JUMP JUMPDEST TIMESTAMP SWAP1 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH2 0x4E0 PUSH2 0x575 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x546 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F4F574E4552000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x5D7 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP4 GT PUSH2 0x633 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4449564944455F42595F5A45524F0000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP3 DUP5 DUP2 ISZERO ISZERO PUSH2 0x63E JUMPI INVALID JUMPDEST DIV SWAP1 POP DUP1 SWAP2 POP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 ISZERO ISZERO PUSH2 0x65F JUMPI PUSH1 0x0 SWAP2 POP PUSH2 0x645 JUMP JUMPDEST POP DUP3 DUP3 MUL DUP3 DUP5 DUP3 DUP2 ISZERO ISZERO PUSH2 0x66F JUMPI INVALID JUMPDEST DIV EQ PUSH2 0x6C5 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 0x2b 0x4d 0x48 SELFDESTRUCT LOG3 0xc4 GASPRICE PUSH9 0x20D3D413DC7F5873BD 0xb3 0xdb 0xee DUP6 ADDRESS 0xe9 CALLDATACOPY DUP14 0x29 0x4c SWAP16 0xde 0x4b REVERT 0xcf STOP 0x29 ", - "sourceMap": "203:1381:65:-;;;560:92;8:9:-1;5:2;;;30:1;27;20:12;5:2;560:92:65;;;;;;;;;;;;;488:5:66;:18;;-1:-1:-1;;;;;;488:18:66;496:10;488:18;;;610:38:65;560:92;610:19;;;;:38;:::i;:::-;560:92;203:1381;;1316:266;575:12:66;:10;;;;:12;:::i;:::-;-1:-1:-1;;;;;1401:31:65;;;;1393:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1484:16;:36;;-1:-1:-1;;;;;;1484:36:65;-1:-1:-1;;;;;1484:36:65;;;;;;;;;;;1529:49;;;1567:10;1529:49;;;;1549:16;;;;;1529:49;;;;;;;;;;1316:266;:::o;642:93:66:-;704:5;;-1:-1:-1;;;;;704:5:66;690:10;:19;682:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;642:93::o;203:1381:65:-;;;;;;;" - }, - "deployedBytecode": { - "linkReferences": {}, - "object": "6080604052600436106100985763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416632e0f2625811461009d5780634541b2e3146100c457806350d25bcd146100e757806379ba5097146100fc5780638205bf6a146101115780638da5cb5b14610126578063d4ee1d9014610157578063f106b5f41461016c578063f2fde38b14610181575b600080fd5b3480156100a957600080fd5b506100b26101a2565b60408051918252519081900360200190f35b3480156100d057600080fd5b506100e5600160a060020a03600435166101ae565b005b3480156100f357600080fd5b506100b26102a6565b34801561010857600080fd5b506100e56103d4565b34801561011d57600080fd5b506100b26104a7565b34801561013257600080fd5b5061013b6104ab565b60408051600160a060020a039092168252519081900360200190f35b34801561016357600080fd5b5061013b6104ba565b34801561017857600080fd5b5061013b6104c9565b34801561018d57600080fd5b506100e5600160a060020a03600435166104d8565b670de0b6b3a764000081565b6101b6610575565b600160a060020a038116151561023c576040805160e560020a62461bcd02815260206004820152602b60248201527f5f6d6f634f7261636c6541646472657373207368616c6c206e6f74206265207a60448201527f65726f2061646472657373000000000000000000000000000000000000000000606482015290519081900360840190fd5b6002805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03838116919091179182905560408051338152905192909116917f1275deefe41e3273f2a99545002cc8369a04b2dbd04b2557e428a712cb2d5117916020908290030190a250565b6000806000600260009054906101000a9004600160a060020a0316600160a060020a03166359e02dd76040518163ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004016040805180830381600087803b15801561031657600080fd5b505af115801561032a573d6000803e3d6000fd5b505050506040513d604081101561034057600080fd5b50805160209091015190925090508015156103a5576040805160e560020a62461bcd02815260206004820152601160248201527f446f65736e2774206861732076616c7565000000000000000000000000000000604482015290519081900360640190fd5b6103cd670de0b6b3a76400006103c1818563ffffffff6105d916565b9063ffffffff61064c16565b9250505090565b600154600160a060020a03163314610436576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b60015460008054604051600160a060020a0393841693909116917f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91a3600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b4290565b600054600160a060020a031681565b600154600160a060020a031681565b600254600160a060020a031681565b6104e0610575565b600054600160a060020a0382811691161415610546576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f53414d455f4f574e4552000000000000000000000000000000000000604482015290519081900360640190fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600054600160a060020a031633146105d7576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b565b600080808311610633576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f4449564944455f42595f5a45524f0000000000000000000000000000604482015290519081900360640190fd5b828481151561063e57fe5b0490508091505b5092915050565b60008083151561065f5760009150610645565b5082820282848281151561066f57fe5b04146106c5576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b93925050505600a165627a7a723058202b4d48ffa3c43a6820d3d413dc7f5873bdb3dbee8530e9378d294c9fde4bfdcf0029", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x98 JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x2E0F2625 DUP2 EQ PUSH2 0x9D JUMPI DUP1 PUSH4 0x4541B2E3 EQ PUSH2 0xC4 JUMPI DUP1 PUSH4 0x50D25BCD EQ PUSH2 0xE7 JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0xFC JUMPI DUP1 PUSH4 0x8205BF6A EQ PUSH2 0x111 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x126 JUMPI DUP1 PUSH4 0xD4EE1D90 EQ PUSH2 0x157 JUMPI DUP1 PUSH4 0xF106B5F4 EQ PUSH2 0x16C JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x181 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB2 PUSH2 0x1A2 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xD0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xE5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x1AE JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xF3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB2 PUSH2 0x2A6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x108 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xE5 PUSH2 0x3D4 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x11D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB2 PUSH2 0x4A7 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x132 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x13B PUSH2 0x4AB JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x163 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x13B PUSH2 0x4BA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x178 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x13B PUSH2 0x4C9 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x18D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xE5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x4D8 JUMP JUMPDEST PUSH8 0xDE0B6B3A7640000 DUP2 JUMP JUMPDEST PUSH2 0x1B6 PUSH2 0x575 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0x23C JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5F6D6F634F7261636C6541646472657373207368616C6C206E6F74206265207A PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x65726F2061646472657373000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x84 ADD SWAP1 REVERT JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 DUP2 AND SWAP2 SWAP1 SWAP2 OR SWAP2 DUP3 SWAP1 SSTORE PUSH1 0x40 DUP1 MLOAD CALLER DUP2 MSTORE SWAP1 MLOAD SWAP3 SWAP1 SWAP2 AND SWAP2 PUSH32 0x1275DEEFE41E3273F2A99545002CC8369A04B2DBD04B2557E428A712CB2D5117 SWAP2 PUSH1 0x20 SWAP1 DUP3 SWAP1 SUB ADD SWAP1 LOG2 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x59E02DD7 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH29 0x100000000000000000000000000000000000000000000000000000000 MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 DUP1 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x316 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x32A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x340 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD MLOAD SWAP1 SWAP3 POP SWAP1 POP DUP1 ISZERO ISZERO PUSH2 0x3A5 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x446F65736E2774206861732076616C7565000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x3CD PUSH8 0xDE0B6B3A7640000 PUSH2 0x3C1 DUP2 DUP6 PUSH4 0xFFFFFFFF PUSH2 0x5D9 AND JUMP JUMPDEST SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x64C AND JUMP JUMPDEST SWAP3 POP POP POP SWAP1 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x436 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND SWAP4 SWAP1 SWAP2 AND SWAP2 PUSH32 0x343765429AEA5A34B3FF6A3785A98A5ABB2597ACA87BFBB58632C173D585373A SWAP2 LOG3 PUSH1 0x1 DUP1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND OR SWAP1 SWAP2 SSTORE AND SWAP1 SSTORE JUMP JUMPDEST TIMESTAMP SWAP1 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH2 0x4E0 PUSH2 0x575 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x546 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F4F574E4552000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x5D7 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP4 GT PUSH2 0x633 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4449564944455F42595F5A45524F0000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP3 DUP5 DUP2 ISZERO ISZERO PUSH2 0x63E JUMPI INVALID JUMPDEST DIV SWAP1 POP DUP1 SWAP2 POP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 ISZERO ISZERO PUSH2 0x65F JUMPI PUSH1 0x0 SWAP2 POP PUSH2 0x645 JUMP JUMPDEST POP DUP3 DUP3 MUL DUP3 DUP5 DUP3 DUP2 ISZERO ISZERO PUSH2 0x66F JUMPI INVALID JUMPDEST DIV EQ PUSH2 0x6C5 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 0x2b 0x4d 0x48 SELFDESTRUCT LOG3 0xc4 GASPRICE PUSH9 0x20D3D413DC7F5873BD 0xb3 0xdb 0xee DUP6 ADDRESS 0xe9 CALLDATACOPY DUP14 0x29 0x4c SWAP16 0xde 0x4b REVERT 0xcf STOP 0x29 ", - "sourceMap": "203:1381:65:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;294:41;;8:9:-1;5:2;;;30:1;27;20:12;5:2;294:41:65;;;;;;;;;;;;;;;;;;;;1316:266;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1316:266:65;-1:-1:-1;;;;;1316:266:65;;;;;;;749:235;;8:9:-1;5:2;;;30:1;27;20:12;5:2;749:235:65;;;;1159:176:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1159:176:66;;;;1096:123:65;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1096:123:65;;;;157:20:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;157:20:66;;;;;;;;-1:-1:-1;;;;;157:20:66;;;;;;;;;;;;;;180:23;;8:9:-1;5:2;;;30:1;27;20:12;5:2;180:23:66;;;;339:31:65;;8:9:-1;5:2;;;30:1;27;20:12;5:2;339:31:65;;;;945:140:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;945:140:66;-1:-1:-1;;;;;945:140:66;;;;;294:41:65;329:6;294:41;:::o;1316:266::-;575:12:66;:10;:12::i;:::-;-1:-1:-1;;;;;1401:31:65;;;;1393:87;;;;;-1:-1:-1;;;;;1393:87:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1484:16;:36;;-1:-1:-1;;1484:36:65;-1:-1:-1;;;;;1484:36:65;;;;;;;;;;;1529:49;;;1567:10;1529:49;;;;1549:16;;;;;1529:49;;;;;;;;;;1316:266;:::o;749:235::-;796:6;809:13;824;852:16;;;;;;;;;-1:-1:-1;;;;;852:16:65;-1:-1:-1;;;;;841:33:65;;:35;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;841:35:65;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;841:35:65;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;841:35:65;;;;;;;;;-1:-1:-1;841:35:65;-1:-1:-1;880:38:65;;;;;;;;-1:-1:-1;;;;;880:38:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;937:42;329:6;937:28;329:6;958:5;937:28;:12;:28;:::i;:::-;:32;:42;:32;:42;:::i;:::-;923:57;;749:235;;;:::o;1159:176:66:-;1219:8;;-1:-1:-1;;;;;1219:8:66;1205:10;:22;1197:52;;;;;-1:-1:-1;;;;;1197:52:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;1277:8;;;1270:5;;1258:28;;-1:-1:-1;;;;;1277:8:66;;;;1270:5;;;;1258:28;;;1298:8;;;;1290:16;;-1:-1:-1;;1290:16:66;;;-1:-1:-1;;;;;1298:8:66;;1290:16;;;;1310:21;;;1159:176::o;1096:123:65:-;1166:3;1096:123;:::o;157:20:66:-;;;-1:-1:-1;;;;;157:20:66;;:::o;180:23::-;;;-1:-1:-1;;;;;180:23:66;;:::o;339:31:65:-;;;-1:-1:-1;;;;;339:31:65;;:::o;945:140:66:-;575:12;:10;:12::i;:::-;1033:5;;-1:-1:-1;;;;;1020:18:66;;;1033:5;;1020:18;;1012:45;;;;;-1:-1:-1;;;;;1012:45:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;1061:8;:20;;-1:-1:-1;;1061:20:66;-1:-1:-1;;;;;1061:20:66;;;;;;;;;;945:140::o;642:93::-;704:5;;-1:-1:-1;;;;;704:5:66;690:10;:19;682:49;;;;;-1:-1:-1;;;;;682:49:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;642:93::o;1307:149:69:-;1367:7;;1388:6;;;1380:37;;;;;-1:-1:-1;;;;;1380:37:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;1438:2;1433;:7;;;;;;;;1421:19;;1451:1;1444:8;;1307:149;;;;;;:::o;924:197::-;984:7;;1023;;1019:21;;;1039:1;1032:8;;;;1019:21;-1:-1:-1;1057:7:69;;;1062:2;1057;:7;1076:6;;;;;;;;:12;1068:37;;;;;-1:-1:-1;;;;;1068:37:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;1116:1;924:197;-1:-1:-1;;;924:197:69:o" - }, - "methodIdentifiers": { - "DECIMALS()": "2e0f2625", - "acceptOwnership()": "79ba5097", - "latestAnswer()": "50d25bcd", - "latestTimestamp()": "8205bf6a", - "mocOracleAddress()": "f106b5f4", - "newOwner()": "d4ee1d90", - "owner()": "8da5cb5b", - "setMoCOracleAddress(address)": "4541b2e3", - "transferOwnership(address)": "f2fde38b" - } - }, - "userdoc": { - "methods": {} - } - } - }, - "solidity/contracts/utility/Owned.sol": { - "Owned": { - "abi": [ - { - "constant": false, - "inputs": [], - "name": "acceptOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "owner", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "newOwner", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "_prevOwner", - "type": "address" - }, - { - "indexed": true, - "name": "_newOwner", - "type": "address" - } - ], - "name": "OwnerUpdate", - "type": "event" - } - ], - "devdoc": { - "methods": { - "acceptOwnership()": { - "details": "used by a new owner to accept an ownership transfer" - }, - "transferOwnership(address)": { - "details": "allows transferring the contract ownership the new owner still needs to accept the transfer can only be called by the contract owner", - "params": { - "_newOwner": "new contract owner" - } - } - } - }, - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "608060405234801561001057600080fd5b5060008054600160a060020a03191633179055610347806100326000396000f3006080604052600436106100615763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166379ba509781146100665780638da5cb5b1461007d578063d4ee1d90146100ae578063f2fde38b146100c3575b600080fd5b34801561007257600080fd5b5061007b6100e4565b005b34801561008957600080fd5b506100926101ce565b60408051600160a060020a039092168252519081900360200190f35b3480156100ba57600080fd5b506100926101dd565b3480156100cf57600080fd5b5061007b600160a060020a03600435166101ec565b600154600160a060020a0316331461015d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b60015460008054604051600160a060020a0393841693909116917f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91a3600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b600054600160a060020a031681565b600154600160a060020a031681565b6101f46102a0565b600054600160a060020a038281169116141561027157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f4552525f53414d455f4f574e4552000000000000000000000000000000000000604482015290519081900360640190fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600054600160a060020a0316331461031957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b5600a165627a7a72305820bbdeef54d2bab62aa3237d2bb16e59a02989a6361c89680a084491de23c79a460029", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND CALLER OR SWAP1 SSTORE PUSH2 0x347 DUP1 PUSH2 0x32 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x61 JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x79BA5097 DUP2 EQ PUSH2 0x66 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x7D JUMPI DUP1 PUSH4 0xD4EE1D90 EQ PUSH2 0xAE JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0xC3 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x72 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x7B PUSH2 0xE4 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x89 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x92 PUSH2 0x1CE JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xBA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x92 PUSH2 0x1DD JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xCF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x7B PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x1EC JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x15D JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND SWAP4 SWAP1 SWAP2 AND SWAP2 PUSH32 0x343765429AEA5A34B3FF6A3785A98A5ABB2597ACA87BFBB58632C173D585373A SWAP2 LOG3 PUSH1 0x1 DUP1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND OR SWAP1 SWAP2 SSTORE AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH2 0x1F4 PUSH2 0x2A0 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x271 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F4F574E4552000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x319 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST JUMP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 0xbb 0xde 0xef SLOAD 0xd2 0xba 0xb6 0x2a LOG3 0x23 PUSH30 0x2BB16E59A02989A6361C89680A084491DE23C79A46002900000000000000 ", - "sourceMap": "129:1208:66:-;;;463:47;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;488:5:66;:18;;-1:-1:-1;;;;;;488:18:66;496:10;488:18;;;129:1208;;;;;;" - }, - "deployedBytecode": { - "linkReferences": {}, - "object": "6080604052600436106100615763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166379ba509781146100665780638da5cb5b1461007d578063d4ee1d90146100ae578063f2fde38b146100c3575b600080fd5b34801561007257600080fd5b5061007b6100e4565b005b34801561008957600080fd5b506100926101ce565b60408051600160a060020a039092168252519081900360200190f35b3480156100ba57600080fd5b506100926101dd565b3480156100cf57600080fd5b5061007b600160a060020a03600435166101ec565b600154600160a060020a0316331461015d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b60015460008054604051600160a060020a0393841693909116917f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91a3600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b600054600160a060020a031681565b600154600160a060020a031681565b6101f46102a0565b600054600160a060020a038281169116141561027157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f4552525f53414d455f4f574e4552000000000000000000000000000000000000604482015290519081900360640190fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600054600160a060020a0316331461031957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b5600a165627a7a72305820bbdeef54d2bab62aa3237d2bb16e59a02989a6361c89680a084491de23c79a460029", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x61 JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x79BA5097 DUP2 EQ PUSH2 0x66 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x7D JUMPI DUP1 PUSH4 0xD4EE1D90 EQ PUSH2 0xAE JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0xC3 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x72 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x7B PUSH2 0xE4 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x89 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x92 PUSH2 0x1CE JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xBA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x92 PUSH2 0x1DD JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xCF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x7B PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x1EC JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x15D JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND SWAP4 SWAP1 SWAP2 AND SWAP2 PUSH32 0x343765429AEA5A34B3FF6A3785A98A5ABB2597ACA87BFBB58632C173D585373A SWAP2 LOG3 PUSH1 0x1 DUP1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND OR SWAP1 SWAP2 SSTORE AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH2 0x1F4 PUSH2 0x2A0 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x271 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F4F574E4552000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x319 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST JUMP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 0xbb 0xde 0xef SLOAD 0xd2 0xba 0xb6 0x2a LOG3 0x23 PUSH30 0x2BB16E59A02989A6361C89680A084491DE23C79A46002900000000000000 ", - "sourceMap": "129:1208:66:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1159:176;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1159:176:66;;;;;;157:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;157:20:66;;;;;;;;-1:-1:-1;;;;;157:20:66;;;;;;;;;;;;;;180:23;;8:9:-1;5:2;;;30:1;27;20:12;5:2;180:23:66;;;;945:140;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;945:140:66;-1:-1:-1;;;;;945:140:66;;;;;1159:176;1219:8;;-1:-1:-1;;;;;1219:8:66;1205:10;:22;1197:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1277:8;;;1270:5;;1258:28;;-1:-1:-1;;;;;1277:8:66;;;;1270:5;;;;1258:28;;;1298:8;;;;1290:16;;-1:-1:-1;;1290:16:66;;;-1:-1:-1;;;;;1298:8:66;;1290:16;;;;1310:21;;;1159:176::o;157:20::-;;;-1:-1:-1;;;;;157:20:66;;:::o;180:23::-;;;-1:-1:-1;;;;;180:23:66;;:::o;945:140::-;575:12;:10;:12::i;:::-;1033:5;;-1:-1:-1;;;;;1020:18:66;;;1033:5;;1020:18;;1012:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1061:8;:20;;-1:-1:-1;;1061:20:66;-1:-1:-1;;;;;1061:20:66;;;;;;;;;;945:140::o;642:93::-;704:5;;-1:-1:-1;;;;;704:5:66;690:10;:19;682:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;642:93::o" - }, - "methodIdentifiers": { - "acceptOwnership()": "79ba5097", - "newOwner()": "d4ee1d90", - "owner()": "8da5cb5b", - "transferOwnership(address)": "f2fde38b" - } - }, - "userdoc": { - "methods": {} - } - } - }, - "solidity/contracts/utility/PriceOracle.sol": { - "PriceOracle": { - "abi": [ - { - "constant": true, - "inputs": [], - "name": "tokenA", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "tokenB", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "", - "type": "address" - } - ], - "name": "tokenDecimals", - "outputs": [ - { - "name": "", - "type": "uint8" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_tokenA", - "type": "address" - }, - { - "name": "_tokenB", - "type": "address" - } - ], - "name": "latestRate", - "outputs": [ - { - "name": "", - "type": "uint256" - }, - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_tokenA", - "type": "address" - }, - { - "name": "_tokenB", - "type": "address" - } - ], - "name": "latestRateAndUpdateTime", - "outputs": [ - { - "name": "", - "type": "uint256" - }, - { - "name": "", - "type": "uint256" - }, - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "tokenAOracle", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "lastUpdateTime", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "", - "type": "address" - } - ], - "name": "tokensToOracles", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "tokenBOracle", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "name": "_tokenA", - "type": "address" - }, - { - "name": "_tokenB", - "type": "address" - }, - { - "name": "_tokenAOracle", - "type": "address" - }, - { - "name": "_tokenBOracle", - "type": "address" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor" - } - ], - "devdoc": { - "methods": { - "lastUpdateTime()": { - "details": "returns the timestamp of the last price update", - "return": "timestamp" - }, - "latestRate(address,address)": { - "details": "returns the latest known rate between the two given tokens for a given pair of tokens A and B, returns the rate of A / B (the number of B units equivalent to a single A unit) the rate is returned as a fraction (numerator / denominator) for accuracy", - "params": { - "_tokenA": "token to get the rate of 1 unit of", - "_tokenB": "token to get the rate of 1 `_tokenA` against" - }, - "return": "numeratordenominator" - }, - "latestRateAndUpdateTime(address,address)": { - "details": "returns both the rate and the timestamp of the last update in a single call (gas optimization)", - "params": { - "_tokenA": "token to get the rate of 1 unit of", - "_tokenB": "token to get the rate of 1 `_tokenA` against" - }, - "return": "numeratordenominatortimestamp of the last update" - } - } - }, - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "608060405234801561001057600080fd5b50604051608080610b408339810160409081528151602083015191830151606090930151909290838361004c8282640100000000610168810204565b83836100618282640100000000610168810204565b60008054600160a060020a03808b16600160a060020a03199283161790925560018054928a16929091169190911790556100a38864010000000061020b810204565b600160a060020a0389166000908152600260205260409020805460ff191660ff929092169190911790556100df8764010000000061020b810204565b600160a060020a039788166000818152600260209081526040808320805460ff9690961660ff1990961695909517909455600380549a8c16600160a060020a03199b8c168117909155600480549a8d169a8c168b1790559b909a168152600590995281892080548916909a1790995597875250505093909220805490911690911790555061033f565b61017a826401000000006102c5810204565b61018c816401000000006102c5810204565b600160a060020a03828116908216141561020757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f4552525f53414d455f4144445245535300000000000000000000000000000000604482015290519081900360640190fd5b5050565b6000600160a060020a03821673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee141561023a575060126102c0565b81600160a060020a031663313ce5676040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561029157600080fd5b505af11580156102a5573d6000803e3d6000fd5b505050506040513d60208110156102bb57600080fd5b505190505b919050565b600160a060020a038116151561033c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b50565b6107f28061034e6000396000f3006080604052600436106100985763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630fc63d10811461009d5780635f64b55b146100ce5780638ee573ac146100e3578063ae8180041461011a578063b1772d7a1461015a578063b9e1715b1461019f578063c8f33c91146101b4578063cbd962d1146101db578063f997fda7146101fc575b600080fd5b3480156100a957600080fd5b506100b2610211565b60408051600160a060020a039092168252519081900360200190f35b3480156100da57600080fd5b506100b2610220565b3480156100ef57600080fd5b50610104600160a060020a036004351661022f565b6040805160ff9092168252519081900360200190f35b34801561012657600080fd5b50610141600160a060020a0360043581169060243516610244565b6040805192835260208301919091528051918290030190f35b34801561016657600080fd5b50610181600160a060020a0360043581169060243516610419565b60408051938452602084019290925282820152519081900360600190f35b3480156101ab57600080fd5b506100b2610448565b3480156101c057600080fd5b506101c9610457565b60408051918252519081900360200190f35b3480156101e757600080fd5b506100b2600160a060020a0360043516610599565b34801561020857600080fd5b506100b26105b4565b600054600160a060020a031681565b600154600160a060020a031681565b60026020526000908152604090205460ff1681565b600080600080600080878761025982826105c3565b600160a060020a03808b1660009081526005602090815260408083205481517f50d25bcd00000000000000000000000000000000000000000000000000000000815291519416936350d25bcd93600480840194938390030190829087803b1580156102c357600080fd5b505af11580156102d7573d6000803e3d6000fd5b505050506040513d60208110156102ed57600080fd5b5051600160a060020a03808b1660009081526005602090815260408083205481517f50d25bcd0000000000000000000000000000000000000000000000000000000081529151959b50909316936350d25bcd93600480820194918390030190829087803b15801561035d57600080fd5b505af1158015610371573d6000803e3d6000fd5b505050506040513d602081101561038757600080fd5b5051600160a060020a03808c1660009081526002602052604080822054928d16825290205491965060ff9081169550169250828411156103e0576103d98560ff85870316600a0a63ffffffff61066916565b9450610409565b8260ff168460ff161015610409576104068660ff86860316600a0a63ffffffff61066916565b95505b5093989297509195505050505050565b600080600080600061042b8787610244565b915091508181610439610457565b94509450945050509250925092565b600354600160a060020a031681565b6000806000600360009054906101000a9004600160a060020a0316600160a060020a0316638205bf6a6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156104c857600080fd5b505af11580156104dc573d6000803e3d6000fd5b505050506040513d60208110156104f257600080fd5b505160048054604080517f8205bf6a0000000000000000000000000000000000000000000000000000000081529051939550600160a060020a0390911692638205bf6a928281019260209291908290030181600087803b15801561055557600080fd5b505af1158015610569573d6000803e3d6000fd5b505050506040513d602081101561057f57600080fd5b505190508082116105905780610592565b815b9250505090565b600560205260009081526040902054600160a060020a031681565b600454600160a060020a031681565b6105cd82826106ed565b600160a060020a03828116600090815260056020526040902054161580159061060f5750600160a060020a038181166000908152600560205260409020541615155b1515610665576040805160e560020a62461bcd02815260206004820152601560248201527f4552525f554e535550504f525445445f544f4b454e0000000000000000000000604482015290519081900360640190fd5b5050565b60008083151561067c57600091506106e6565b5082820282848281151561068c57fe5b04146106e2576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b8091505b5092915050565b6106f682610763565b6106ff81610763565b600160a060020a038281169082161415610665576040805160e560020a62461bcd02815260206004820152601060248201527f4552525f53414d455f4144445245535300000000000000000000000000000000604482015290519081900360640190fd5b600160a060020a03811615156107c3576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b505600a165627a7a72305820cbe01ca5d8106253df6f9a272819eaf7073655d80bfe9974cf71d48b1af26f530029", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH1 0x80 DUP1 PUSH2 0xB40 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 SWAP1 DUP2 MSTORE DUP2 MLOAD PUSH1 0x20 DUP4 ADD MLOAD SWAP2 DUP4 ADD MLOAD PUSH1 0x60 SWAP1 SWAP4 ADD MLOAD SWAP1 SWAP3 SWAP1 DUP4 DUP4 PUSH2 0x4C DUP3 DUP3 PUSH5 0x100000000 PUSH2 0x168 DUP2 MUL DIV JUMP JUMPDEST DUP4 DUP4 PUSH2 0x61 DUP3 DUP3 PUSH5 0x100000000 PUSH2 0x168 DUP2 MUL DIV JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP12 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT SWAP3 DUP4 AND OR SWAP1 SWAP3 SSTORE PUSH1 0x1 DUP1 SLOAD SWAP3 DUP11 AND SWAP3 SWAP1 SWAP2 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0xA3 DUP9 PUSH5 0x100000000 PUSH2 0x20B DUP2 MUL DIV JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP10 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0xFF SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0xDF DUP8 PUSH5 0x100000000 PUSH2 0x20B DUP2 MUL DIV JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP8 DUP9 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH1 0xFF SWAP7 SWAP1 SWAP7 AND PUSH1 0xFF NOT SWAP1 SWAP7 AND SWAP6 SWAP1 SWAP6 OR SWAP1 SWAP5 SSTORE PUSH1 0x3 DUP1 SLOAD SWAP11 DUP13 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT SWAP12 DUP13 AND DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x4 DUP1 SLOAD SWAP11 DUP14 AND SWAP11 DUP13 AND DUP12 OR SWAP1 SSTORE SWAP12 SWAP1 SWAP11 AND DUP2 MSTORE PUSH1 0x5 SWAP1 SWAP10 MSTORE DUP2 DUP10 KECCAK256 DUP1 SLOAD DUP10 AND SWAP1 SWAP11 OR SWAP1 SWAP10 SSTORE SWAP8 DUP8 MSTORE POP POP POP SWAP4 SWAP1 SWAP3 KECCAK256 DUP1 SLOAD SWAP1 SWAP2 AND SWAP1 SWAP2 OR SWAP1 SSTORE POP PUSH2 0x33F JUMP JUMPDEST PUSH2 0x17A DUP3 PUSH5 0x100000000 PUSH2 0x2C5 DUP2 MUL DIV JUMP JUMPDEST PUSH2 0x18C DUP2 PUSH5 0x100000000 PUSH2 0x2C5 DUP2 MUL DIV JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP1 DUP3 AND EQ ISZERO PUSH2 0x207 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F4144445245535300000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 AND PUSH20 0xEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE EQ ISZERO PUSH2 0x23A JUMPI POP PUSH1 0x12 PUSH2 0x2C0 JUMP JUMPDEST DUP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x313CE567 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH29 0x100000000000000000000000000000000000000000000000000000000 MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x291 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2A5 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2BB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0x33C JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x7F2 DUP1 PUSH2 0x34E PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x98 JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0xFC63D10 DUP2 EQ PUSH2 0x9D JUMPI DUP1 PUSH4 0x5F64B55B EQ PUSH2 0xCE JUMPI DUP1 PUSH4 0x8EE573AC EQ PUSH2 0xE3 JUMPI DUP1 PUSH4 0xAE818004 EQ PUSH2 0x11A JUMPI DUP1 PUSH4 0xB1772D7A EQ PUSH2 0x15A JUMPI DUP1 PUSH4 0xB9E1715B EQ PUSH2 0x19F JUMPI DUP1 PUSH4 0xC8F33C91 EQ PUSH2 0x1B4 JUMPI DUP1 PUSH4 0xCBD962D1 EQ PUSH2 0x1DB JUMPI DUP1 PUSH4 0xF997FDA7 EQ PUSH2 0x1FC JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB2 PUSH2 0x211 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xDA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB2 PUSH2 0x220 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xEF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x104 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x22F JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x126 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x141 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH2 0x244 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x166 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x181 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH2 0x419 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP4 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP3 SWAP1 SWAP3 MSTORE DUP3 DUP3 ADD MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1AB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB2 PUSH2 0x448 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1C0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1C9 PUSH2 0x457 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1E7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x599 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x208 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB2 PUSH2 0x5B4 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 DUP8 DUP8 PUSH2 0x259 DUP3 DUP3 PUSH2 0x5C3 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD DUP2 MLOAD PUSH32 0x50D25BCD00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP2 MLOAD SWAP5 AND SWAP4 PUSH4 0x50D25BCD SWAP4 PUSH1 0x4 DUP1 DUP5 ADD SWAP5 SWAP4 DUP4 SWAP1 SUB ADD SWAP1 DUP3 SWAP1 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2C3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2D7 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2ED JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD DUP2 MLOAD PUSH32 0x50D25BCD00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP2 MLOAD SWAP6 SWAP12 POP SWAP1 SWAP4 AND SWAP4 PUSH4 0x50D25BCD SWAP4 PUSH1 0x4 DUP1 DUP3 ADD SWAP5 SWAP2 DUP4 SWAP1 SUB ADD SWAP1 DUP3 SWAP1 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x35D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x371 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x387 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP13 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SLOAD SWAP3 DUP14 AND DUP3 MSTORE SWAP1 KECCAK256 SLOAD SWAP2 SWAP7 POP PUSH1 0xFF SWAP1 DUP2 AND SWAP6 POP AND SWAP3 POP DUP3 DUP5 GT ISZERO PUSH2 0x3E0 JUMPI PUSH2 0x3D9 DUP6 PUSH1 0xFF DUP6 DUP8 SUB AND PUSH1 0xA EXP PUSH4 0xFFFFFFFF PUSH2 0x669 AND JUMP JUMPDEST SWAP5 POP PUSH2 0x409 JUMP JUMPDEST DUP3 PUSH1 0xFF AND DUP5 PUSH1 0xFF AND LT ISZERO PUSH2 0x409 JUMPI PUSH2 0x406 DUP7 PUSH1 0xFF DUP7 DUP7 SUB AND PUSH1 0xA EXP PUSH4 0xFFFFFFFF PUSH2 0x669 AND JUMP JUMPDEST SWAP6 POP JUMPDEST POP SWAP4 SWAP9 SWAP3 SWAP8 POP SWAP2 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x42B DUP8 DUP8 PUSH2 0x244 JUMP JUMPDEST SWAP2 POP SWAP2 POP DUP2 DUP2 PUSH2 0x439 PUSH2 0x457 JUMP JUMPDEST SWAP5 POP SWAP5 POP SWAP5 POP POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x3 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x8205BF6A PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH29 0x100000000000000000000000000000000000000000000000000000000 MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x4C8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x4DC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x4F2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x4 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x8205BF6A00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD SWAP4 SWAP6 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP2 AND SWAP3 PUSH4 0x8205BF6A SWAP3 DUP3 DUP2 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x555 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x569 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x57F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 POP DUP1 DUP3 GT PUSH2 0x590 JUMPI DUP1 PUSH2 0x592 JUMP JUMPDEST DUP2 JUMPDEST SWAP3 POP POP POP SWAP1 JUMP JUMPDEST PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH2 0x5CD DUP3 DUP3 PUSH2 0x6ED JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD AND ISZERO DUP1 ISZERO SWAP1 PUSH2 0x60F JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD AND ISZERO ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x665 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F554E535550504F525445445F544F4B454E0000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 ISZERO ISZERO PUSH2 0x67C JUMPI PUSH1 0x0 SWAP2 POP PUSH2 0x6E6 JUMP JUMPDEST POP DUP3 DUP3 MUL DUP3 DUP5 DUP3 DUP2 ISZERO ISZERO PUSH2 0x68C JUMPI INVALID JUMPDEST DIV EQ PUSH2 0x6E2 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP1 SWAP2 POP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x6F6 DUP3 PUSH2 0x763 JUMP JUMPDEST PUSH2 0x6FF DUP2 PUSH2 0x763 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP1 DUP3 AND EQ ISZERO PUSH2 0x665 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F4144445245535300000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0x7C3 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP JUMP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 0xcb 0xe0 SHR 0xa5 0xd8 LT PUSH3 0x53DF6F SWAP11 0x27 0x28 NOT 0xea 0xf7 SMOD CALLDATASIZE SSTORE 0xd8 SIGNEXTEND INVALID SWAP10 PUSH21 0xCF71D48B1AF26F5300290000000000000000000000 ", - "sourceMap": "450:5492:67:-;;;1466:523;8:9:-1;5:2;;;30:1;27;20:12;5:2;1466:523:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2121:43;1466:523;;2121:21;;;;:43;:::i;:::-;1670:13;1685;2121:43;1670:13;1685;2121:21;;;;:43;:::i;:::-;1704:6;:16;;-1:-1:-1;;;;;1704:16:67;;;-1:-1:-1;;;;;;1704:16:67;;;;;;;;1724;;;;;;;;;;;;;;;1769:17;1713:7;1769:8;;;;:17;:::i;:::-;-1:-1:-1;;;;;1744:22:67;;;;;;:13;:22;;;;;:42;;-1:-1:-1;;1744:42:67;;;;;;;;;;;;1815:17;1824:7;1815:8;;;;:17;:::i;:::-;-1:-1:-1;;;;;1790:22:67;;;;;;;:13;:22;;;;;;;;:42;;;;;;;-1:-1:-1;;1790:42:67;;;;;;;;;;1837:12;:28;;;;;-1:-1:-1;;;;;;1837:28:67;;;;;;;;1869:12;:28;;;;;;;;;;;;1901:24;;;;;;:15;:24;;;;;;:40;;;;;;;;;;1945:24;;;-1:-1:-1;;;1945:24:67;;;;:40;;;;;;;;;;-1:-1:-1;450:5492:67;;2219:198;2306:24;2320:9;2306:13;;;;:24;:::i;:::-;2334;2348:9;2334:13;;;;:24;:::i;:::-;-1:-1:-1;;;;;2370:22:67;;;;;;;;2362:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2219:198;;:::o;5781:159::-;5841:5;-1:-1:-1;;;;;5856:21:67;;566:42;5856:21;5852:56;;;-1:-1:-1;649:2:67;5884:19;;5852:56;5919:6;-1:-1:-1;;;;;5919:15:67;;:17;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5919:17:67;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5919:17:67;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5919:17:67;;-1:-1:-1;5781:159:67;;;;:::o;553:117:72:-;-1:-1:-1;;;;;620:22:72;;;;612:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;553:117;:::o;450:5492:67:-;;;;;;;" - }, - "deployedBytecode": { - "linkReferences": {}, - "object": "6080604052600436106100985763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630fc63d10811461009d5780635f64b55b146100ce5780638ee573ac146100e3578063ae8180041461011a578063b1772d7a1461015a578063b9e1715b1461019f578063c8f33c91146101b4578063cbd962d1146101db578063f997fda7146101fc575b600080fd5b3480156100a957600080fd5b506100b2610211565b60408051600160a060020a039092168252519081900360200190f35b3480156100da57600080fd5b506100b2610220565b3480156100ef57600080fd5b50610104600160a060020a036004351661022f565b6040805160ff9092168252519081900360200190f35b34801561012657600080fd5b50610141600160a060020a0360043581169060243516610244565b6040805192835260208301919091528051918290030190f35b34801561016657600080fd5b50610181600160a060020a0360043581169060243516610419565b60408051938452602084019290925282820152519081900360600190f35b3480156101ab57600080fd5b506100b2610448565b3480156101c057600080fd5b506101c9610457565b60408051918252519081900360200190f35b3480156101e757600080fd5b506100b2600160a060020a0360043516610599565b34801561020857600080fd5b506100b26105b4565b600054600160a060020a031681565b600154600160a060020a031681565b60026020526000908152604090205460ff1681565b600080600080600080878761025982826105c3565b600160a060020a03808b1660009081526005602090815260408083205481517f50d25bcd00000000000000000000000000000000000000000000000000000000815291519416936350d25bcd93600480840194938390030190829087803b1580156102c357600080fd5b505af11580156102d7573d6000803e3d6000fd5b505050506040513d60208110156102ed57600080fd5b5051600160a060020a03808b1660009081526005602090815260408083205481517f50d25bcd0000000000000000000000000000000000000000000000000000000081529151959b50909316936350d25bcd93600480820194918390030190829087803b15801561035d57600080fd5b505af1158015610371573d6000803e3d6000fd5b505050506040513d602081101561038757600080fd5b5051600160a060020a03808c1660009081526002602052604080822054928d16825290205491965060ff9081169550169250828411156103e0576103d98560ff85870316600a0a63ffffffff61066916565b9450610409565b8260ff168460ff161015610409576104068660ff86860316600a0a63ffffffff61066916565b95505b5093989297509195505050505050565b600080600080600061042b8787610244565b915091508181610439610457565b94509450945050509250925092565b600354600160a060020a031681565b6000806000600360009054906101000a9004600160a060020a0316600160a060020a0316638205bf6a6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156104c857600080fd5b505af11580156104dc573d6000803e3d6000fd5b505050506040513d60208110156104f257600080fd5b505160048054604080517f8205bf6a0000000000000000000000000000000000000000000000000000000081529051939550600160a060020a0390911692638205bf6a928281019260209291908290030181600087803b15801561055557600080fd5b505af1158015610569573d6000803e3d6000fd5b505050506040513d602081101561057f57600080fd5b505190508082116105905780610592565b815b9250505090565b600560205260009081526040902054600160a060020a031681565b600454600160a060020a031681565b6105cd82826106ed565b600160a060020a03828116600090815260056020526040902054161580159061060f5750600160a060020a038181166000908152600560205260409020541615155b1515610665576040805160e560020a62461bcd02815260206004820152601560248201527f4552525f554e535550504f525445445f544f4b454e0000000000000000000000604482015290519081900360640190fd5b5050565b60008083151561067c57600091506106e6565b5082820282848281151561068c57fe5b04146106e2576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b8091505b5092915050565b6106f682610763565b6106ff81610763565b600160a060020a038281169082161415610665576040805160e560020a62461bcd02815260206004820152601060248201527f4552525f53414d455f4144445245535300000000000000000000000000000000604482015290519081900360640190fd5b600160a060020a03811615156107c3576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b505600a165627a7a72305820cbe01ca5d8106253df6f9a272819eaf7073655d80bfe9974cf71d48b1af26f530029", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x98 JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0xFC63D10 DUP2 EQ PUSH2 0x9D JUMPI DUP1 PUSH4 0x5F64B55B EQ PUSH2 0xCE JUMPI DUP1 PUSH4 0x8EE573AC EQ PUSH2 0xE3 JUMPI DUP1 PUSH4 0xAE818004 EQ PUSH2 0x11A JUMPI DUP1 PUSH4 0xB1772D7A EQ PUSH2 0x15A JUMPI DUP1 PUSH4 0xB9E1715B EQ PUSH2 0x19F JUMPI DUP1 PUSH4 0xC8F33C91 EQ PUSH2 0x1B4 JUMPI DUP1 PUSH4 0xCBD962D1 EQ PUSH2 0x1DB JUMPI DUP1 PUSH4 0xF997FDA7 EQ PUSH2 0x1FC JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB2 PUSH2 0x211 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xDA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB2 PUSH2 0x220 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xEF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x104 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x22F JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x126 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x141 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH2 0x244 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x166 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x181 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH2 0x419 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP4 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP3 SWAP1 SWAP3 MSTORE DUP3 DUP3 ADD MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1AB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB2 PUSH2 0x448 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1C0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1C9 PUSH2 0x457 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1E7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x599 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x208 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB2 PUSH2 0x5B4 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 DUP8 DUP8 PUSH2 0x259 DUP3 DUP3 PUSH2 0x5C3 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD DUP2 MLOAD PUSH32 0x50D25BCD00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP2 MLOAD SWAP5 AND SWAP4 PUSH4 0x50D25BCD SWAP4 PUSH1 0x4 DUP1 DUP5 ADD SWAP5 SWAP4 DUP4 SWAP1 SUB ADD SWAP1 DUP3 SWAP1 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2C3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2D7 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2ED JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD DUP2 MLOAD PUSH32 0x50D25BCD00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP2 MLOAD SWAP6 SWAP12 POP SWAP1 SWAP4 AND SWAP4 PUSH4 0x50D25BCD SWAP4 PUSH1 0x4 DUP1 DUP3 ADD SWAP5 SWAP2 DUP4 SWAP1 SUB ADD SWAP1 DUP3 SWAP1 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x35D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x371 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x387 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP13 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SLOAD SWAP3 DUP14 AND DUP3 MSTORE SWAP1 KECCAK256 SLOAD SWAP2 SWAP7 POP PUSH1 0xFF SWAP1 DUP2 AND SWAP6 POP AND SWAP3 POP DUP3 DUP5 GT ISZERO PUSH2 0x3E0 JUMPI PUSH2 0x3D9 DUP6 PUSH1 0xFF DUP6 DUP8 SUB AND PUSH1 0xA EXP PUSH4 0xFFFFFFFF PUSH2 0x669 AND JUMP JUMPDEST SWAP5 POP PUSH2 0x409 JUMP JUMPDEST DUP3 PUSH1 0xFF AND DUP5 PUSH1 0xFF AND LT ISZERO PUSH2 0x409 JUMPI PUSH2 0x406 DUP7 PUSH1 0xFF DUP7 DUP7 SUB AND PUSH1 0xA EXP PUSH4 0xFFFFFFFF PUSH2 0x669 AND JUMP JUMPDEST SWAP6 POP JUMPDEST POP SWAP4 SWAP9 SWAP3 SWAP8 POP SWAP2 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x42B DUP8 DUP8 PUSH2 0x244 JUMP JUMPDEST SWAP2 POP SWAP2 POP DUP2 DUP2 PUSH2 0x439 PUSH2 0x457 JUMP JUMPDEST SWAP5 POP SWAP5 POP SWAP5 POP POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x3 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x8205BF6A PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH29 0x100000000000000000000000000000000000000000000000000000000 MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x4C8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x4DC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x4F2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x4 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x8205BF6A00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD SWAP4 SWAP6 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP2 AND SWAP3 PUSH4 0x8205BF6A SWAP3 DUP3 DUP2 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x555 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x569 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x57F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 POP DUP1 DUP3 GT PUSH2 0x590 JUMPI DUP1 PUSH2 0x592 JUMP JUMPDEST DUP2 JUMPDEST SWAP3 POP POP POP SWAP1 JUMP JUMPDEST PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH2 0x5CD DUP3 DUP3 PUSH2 0x6ED JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD AND ISZERO DUP1 ISZERO SWAP1 PUSH2 0x60F JUMPI POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD AND ISZERO ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x665 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F554E535550504F525445445F544F4B454E0000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 ISZERO ISZERO PUSH2 0x67C JUMPI PUSH1 0x0 SWAP2 POP PUSH2 0x6E6 JUMP JUMPDEST POP DUP3 DUP3 MUL DUP3 DUP5 DUP3 DUP2 ISZERO ISZERO PUSH2 0x68C JUMPI INVALID JUMPDEST DIV EQ PUSH2 0x6E2 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4F564552464C4F570000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP1 SWAP2 POP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x6F6 DUP3 PUSH2 0x763 JUMP JUMPDEST PUSH2 0x6FF DUP2 PUSH2 0x763 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP1 DUP3 AND EQ ISZERO PUSH2 0x665 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F4144445245535300000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0x7C3 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP JUMP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 0xcb 0xe0 SHR 0xa5 0xd8 LT PUSH3 0x53DF6F SWAP11 0x27 0x28 NOT 0xea 0xf7 SMOD CALLDATASIZE SSTORE 0xd8 SIGNEXTEND INVALID SWAP10 PUSH21 0xCF71D48B1AF26F5300290000000000000000000000 ", - "sourceMap": "450:5492:67:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;655:25;;8:9:-1;5:2;;;30:1;27;20:12;5:2;655:25:67;;;;;;;;-1:-1:-1;;;;;655:25:67;;;;;;;;;;;;;;714;;8:9:-1;5:2;;;30:1;27;20:12;5:2;714:25:67;;;;773:46;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;773:46:67;;;-1:-1:-1;;;;;773:46:67;;;;;;;;;;;;;;;;;;;;;;3349:1394;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3349:1394:67;-1:-1:-1;;;;;3349:1394:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5451:276;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;5451:276:67;-1:-1:-1;;;;;5451:276:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;850:40;;8:9:-1;5:2;;;30:1;27;20:12;5:2;850:40:67;;;;4838:281;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4838:281:67;;;;;;;;;;;;;;;;;;;;1004:63;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1004:63:67;;;-1:-1:-1;;;;;1004:63:67;;;927:40;;8:9:-1;5:2;;;30:1;27;20:12;5:2;927:40:67;;;;655:25;;;-1:-1:-1;;;;;655:25:67;;:::o;714:::-;;;-1:-1:-1;;;;;714:25:67;;:::o;773:46::-;;;;;;;;;;;;;;;:::o;3349:1394::-;3466:7;3475;3488:18;3561;3634:20;3683;3439:7;3448;2556:34;2573:7;2582;2556:16;:34::i;:::-;-1:-1:-1;;;;;3517:24:67;;;;;;;:15;:24;;;;;;;;;:39;;;;;;;:24;;;:37;;:39;;;;;:24;:39;;;;;;;:24;:39;;;5:2:-1;;;;30:1;27;20:12;5:2;3517:39:67;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3517:39:67;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3517:39:67;-1:-1:-1;;;;;3590:24:67;;;;;;;:15;3517:39;3590:24;;;;;;;;:39;;;;;;;3517;;-1:-1:-1;3590:24:67;;;;:37;;:39;;;;;;;;;;;;;:24;:39;;;5:2:-1;;;;30:1;27;20:12;5:2;3590:39:67;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3590:39:67;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3590:39:67;-1:-1:-1;;;;;3657:22:67;;;;;;;-1:-1:-1;3590:39:67;3657:22;;;;;;3706;;;;;;;;3590:39;;-1:-1:-1;3657:22:67;;;;;-1:-1:-1;3706:22:67;;-1:-1:-1;4458:31:67;;;4454:250;;;4509:62;:10;4524:46;4538:31;;;4524:46;4532:2;4524:46;4509:62;:14;:62;:::i;:::-;4496:75;;4454:250;;;4603:14;4586:31;;:14;:31;;;4582:122;;;4637:62;:10;4652:46;4666:31;;;4652:46;4660:2;4652:46;4637:62;:14;:62;:::i;:::-;4624:75;;4582:122;-1:-1:-1;4716:10:67;;4728;;-1:-1:-1;3349:1394:67;;-1:-1:-1;;;;;;3349:1394:67:o;5451:276::-;5557:7;5569;5581;5599:17;5618:19;5641:28;5652:7;5661;5641:10;:28::i;:::-;5598:71;;;;5682:9;5693:11;5706:16;:14;:16::i;:::-;5674:49;;;;;;5451:276;;;;;;;:::o;850:40::-;;;-1:-1:-1;;;;;850:40:67;;:::o;4838:281::-;4969:12;;:30;;;;;;;;4885:7;;;;;;-1:-1:-1;;;;;4969:12:67;;;;:28;;:30;;;;;;;;;;;;;;;4885:7;4969:12;:30;;;5:2:-1;;;;30:1;27;20:12;5:2;4969:30:67;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4969:30:67;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4969:30:67;5024:12;;;:30;;;;;;;;4969;;-1:-1:-1;;;;;;5024:12:67;;;;:28;;:30;;;;4969;;5024;;;;;;;:12;;:30;;;5:2:-1;;;;30:1;27;20:12;5:2;5024:30:67;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5024:30:67;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5024:30:67;;-1:-1:-1;5066:23:67;;;:49;;5105:10;5066:49;;;5092:10;5066:49;5059:56;;4838:281;;;:::o;1004:63::-;;;;;;;;;;;;-1:-1:-1;;;;;1004:63:67;;:::o;927:40::-;;;-1:-1:-1;;;;;927:40:67;;:::o;2645:247::-;2731:39;2753:7;2762;2731:21;:39::i;:::-;-1:-1:-1;;;;;2782:24:67;;;2818:1;2782:24;;;:15;:24;;;;;;;:38;;;;:80;;-1:-1:-1;;;;;;2824:24:67;;;2860:1;2824:24;;;:15;:24;;;;;;;:38;;2782:80;2774:114;;;;;;;-1:-1:-1;;;;;2774:114:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;2645:247;;:::o;924:197:69:-;984:7;;1023;;1019:21;;;1039:1;1032:8;;;;1019:21;-1:-1:-1;1057:7:69;;;1062:2;1057;:7;1076:6;;;;;;;;:12;1068:37;;;;;-1:-1:-1;;;;;1068:37:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;1116:1;1109:8;;924:197;;;;;;:::o;2219:198:67:-;2306:24;2320:9;2306:13;:24::i;:::-;2334;2348:9;2334:13;:24::i;:::-;-1:-1:-1;;;;;2370:22:67;;;;;;;;2362:51;;;;;-1:-1:-1;;;;;2362:51:67;;;;;;;;;;;;;;;;;;;;;;;;;;;553:117:72;-1:-1:-1;;;;;620:22:72;;;;612:54;;;;;-1:-1:-1;;;;;612:54:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;553:117;:::o" - }, - "methodIdentifiers": { - "lastUpdateTime()": "c8f33c91", - "latestRate(address,address)": "ae818004", - "latestRateAndUpdateTime(address,address)": "b1772d7a", - "tokenA()": "0fc63d10", - "tokenAOracle()": "b9e1715b", - "tokenB()": "5f64b55b", - "tokenBOracle()": "f997fda7", - "tokenDecimals(address)": "8ee573ac", - "tokensToOracles(address)": "cbd962d1" - } - }, - "userdoc": { - "methods": {} - } - } - }, - "solidity/contracts/utility/ReentrancyGuard.sol": { - "ReentrancyGuard": { - "abi": [ - { - "inputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor" - } - ], - "devdoc": { - "methods": {} - }, - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "deployedBytecode": { - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "methodIdentifiers": {} - }, - "userdoc": { - "methods": {} - } - } - }, - "solidity/contracts/utility/SafeMath.sol": { - "SafeMath": { - "abi": [], - "devdoc": { - "methods": {} - }, - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "604c602c600b82828239805160001a60731460008114601c57601e565bfe5b5030600052607381538281f30073000000000000000000000000000000000000000030146080604052600080fd00a165627a7a72305820513d6be17ce9fda0c1394082456cdb0f5d36103b4b20ca72ec0dcdfe1a03e0260029", - "opcodes": "PUSH1 0x4C PUSH1 0x2C PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x0 DUP2 EQ PUSH1 0x1C JUMPI PUSH1 0x1E JUMP JUMPDEST INVALID JUMPDEST POP ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN STOP PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 MLOAD RETURNDATASIZE PUSH12 0xE17CE9FDA0C1394082456CDB 0xf 0x5d CALLDATASIZE LT EXTCODESIZE 0x4b KECCAK256 0xca PUSH19 0xEC0DCDFE1A03E0260029000000000000000000 ", - "sourceMap": "110:1348:69:-;;132:2:-1;166:7;155:9;146:7;137:37;252:7;246:14;243:1;238:23;232:4;229:33;270:1;265:20;;;;222:63;;265:20;274:9;222:63;;298:9;295:1;288:20;328:4;319:7;311:22;352:7;343;336:24" - }, - "deployedBytecode": { - "linkReferences": {}, - "object": "73000000000000000000000000000000000000000030146080604052600080fd00a165627a7a72305820513d6be17ce9fda0c1394082456cdb0f5d36103b4b20ca72ec0dcdfe1a03e0260029", - "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 MLOAD RETURNDATASIZE PUSH12 0xE17CE9FDA0C1394082456CDB 0xf 0x5d CALLDATASIZE LT EXTCODESIZE 0x4b KECCAK256 0xca PUSH19 0xEC0DCDFE1A03E0260029000000000000000000 ", - "sourceMap": "110:1348:69:-;;;;;;;;" - }, - "methodIdentifiers": {} - }, - "userdoc": { - "methods": {} - } - } - }, - "solidity/contracts/utility/TokenHandler.sol": { - "TokenHandler": { - "abi": [], - "devdoc": { - "methods": {} - }, - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "6080604052348015600f57600080fd5b50603580601d6000396000f3006080604052600080fd00a165627a7a7230582082f148d7bc6acce6729510281d97ccbf0c0bb988cd546017d8510576d56bc2520029", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x35 DUP1 PUSH1 0x1D PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 DUP3 CALL 0x48 0xd7 0xbc PUSH11 0xCCE6729510281D97CCBF0C SIGNEXTEND 0xb9 DUP9 0xcd SLOAD PUSH1 0x17 0xd8 MLOAD SDIV PUSH23 0xD56BC25200290000000000000000000000000000000000 ", - "sourceMap": "71:2743:70:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;71:2743:70;;;;;;;" - }, - "deployedBytecode": { - "linkReferences": {}, - "object": "6080604052600080fd00a165627a7a7230582082f148d7bc6acce6729510281d97ccbf0c0bb988cd546017d8510576d56bc2520029", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 DUP3 CALL 0x48 0xd7 0xbc PUSH11 0xCCE6729510281D97CCBF0C SIGNEXTEND 0xb9 DUP9 0xcd SLOAD PUSH1 0x17 0xd8 MLOAD SDIV PUSH23 0xD56BC25200290000000000000000000000000000000000 ", - "sourceMap": "71:2743:70:-;;;;;" - }, - "methodIdentifiers": {} - }, - "userdoc": { - "methods": {} - } - } - }, - "solidity/contracts/utility/TokenHolder.sol": { - "TokenHolder": { - "abi": [ - { - "constant": false, - "inputs": [ - { - "name": "_token", - "type": "address" - }, - { - "name": "_to", - "type": "address" - }, - { - "name": "_amount", - "type": "uint256" - } - ], - "name": "withdrawTokens", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "acceptOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "owner", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "newOwner", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "_prevOwner", - "type": "address" - }, - { - "indexed": true, - "name": "_newOwner", - "type": "address" - } - ], - "name": "OwnerUpdate", - "type": "event" - } - ], - "devdoc": { - "methods": { - "acceptOwnership()": { - "details": "used by a new owner to accept an ownership transfer" - }, - "transferOwnership(address)": { - "details": "allows transferring the contract ownership the new owner still needs to accept the transfer can only be called by the contract owner", - "params": { - "_newOwner": "new contract owner" - } - }, - "withdrawTokens(address,address,uint256)": { - "details": "withdraws tokens held by the contract and sends them to an account can only be called by the owner", - "params": { - "_amount": "amount to withdraw", - "_to": "account to receive the new amount", - "_token": "ERC20 token contract address" - } - } - } - }, - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "608060405260008054600160a060020a0319163317905561059b806100256000396000f30060806040526004361061006c5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416635e35359e811461007157806379ba50971461009d5780638da5cb5b146100b2578063d4ee1d90146100e3578063f2fde38b146100f8575b600080fd5b34801561007d57600080fd5b5061009b600160a060020a0360043581169060243516604435610119565b005b3480156100a957600080fd5b5061009b610152565b3480156100be57600080fd5b506100c7610225565b60408051600160a060020a039092168252519081900360200190f35b3480156100ef57600080fd5b506100c7610234565b34801561010457600080fd5b5061009b600160a060020a0360043516610243565b6101216102e0565b8261012b81610344565b8261013581610344565b8361013f816103a7565b61014a868686610408565b505050505050565b600154600160a060020a031633146101b4576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b60015460008054604051600160a060020a0393841693909116917f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91a3600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b600054600160a060020a031681565b600154600160a060020a031681565b61024b6102e0565b600054600160a060020a03828116911614156102b1576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f53414d455f4f574e4552000000000000000000000000000000000000604482015290519081900360640190fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600054600160a060020a03163314610342576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b565b600160a060020a03811615156103a4576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b50565b600160a060020a0381163014156103a4576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f414444524553535f49535f53454c4600000000000000000000000000604482015290519081900360640190fd5b604080517f7472616e7366657228616464726573732c75696e74323536290000000000000081528151908190036019018120600160a060020a038516602483015260448083018590528351808403909101815260649092019092526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909316929092179091526104bd9084906104c2565b505050565b6104ca610550565b602060405190810160405280600181525090506020818351602085016000875af18015156104f757600080fd5b50805115156104bd576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f5452414e534645525f4641494c454400000000000000000000000000604482015290519081900360640190fd5b60206040519081016040528060019060208202803883395091929150505600a165627a7a72305820a0d36593d4e84a593c8e4f7455ca835ffa0dcbc557f96ffd38452ccd890c23bb0029", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND CALLER OR SWAP1 SSTORE PUSH2 0x59B DUP1 PUSH2 0x25 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x6C JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x5E35359E DUP2 EQ PUSH2 0x71 JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x9D JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0xB2 JUMPI DUP1 PUSH4 0xD4EE1D90 EQ PUSH2 0xE3 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0xF8 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x9B PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x119 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x9B PUSH2 0x152 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xBE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xC7 PUSH2 0x225 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xEF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xC7 PUSH2 0x234 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x104 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x9B PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x243 JUMP JUMPDEST PUSH2 0x121 PUSH2 0x2E0 JUMP JUMPDEST DUP3 PUSH2 0x12B DUP2 PUSH2 0x344 JUMP JUMPDEST DUP3 PUSH2 0x135 DUP2 PUSH2 0x344 JUMP JUMPDEST DUP4 PUSH2 0x13F DUP2 PUSH2 0x3A7 JUMP JUMPDEST PUSH2 0x14A DUP7 DUP7 DUP7 PUSH2 0x408 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x1B4 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND SWAP4 SWAP1 SWAP2 AND SWAP2 PUSH32 0x343765429AEA5A34B3FF6A3785A98A5ABB2597ACA87BFBB58632C173D585373A SWAP2 LOG3 PUSH1 0x1 DUP1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND OR SWAP1 SWAP2 SSTORE AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH2 0x24B PUSH2 0x2E0 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x2B1 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F4F574E4552000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x342 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0x3A4 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ADDRESS EQ ISZERO PUSH2 0x3A4 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F414444524553535F49535F53454C4600000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x7472616E7366657228616464726573732C75696E743235362900000000000000 DUP2 MSTORE DUP2 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x19 ADD DUP2 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x64 SWAP1 SWAP3 ADD SWAP1 SWAP3 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE PUSH2 0x4BD SWAP1 DUP5 SWAP1 PUSH2 0x4C2 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x4CA PUSH2 0x550 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE POP SWAP1 POP PUSH1 0x20 DUP2 DUP4 MLOAD PUSH1 0x20 DUP6 ADD PUSH1 0x0 DUP8 GAS CALL DUP1 ISZERO ISZERO PUSH2 0x4F7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD ISZERO ISZERO PUSH2 0x4BD JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5452414E534645525F4641494C454400000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 SWAP1 PUSH1 0x20 DUP3 MUL DUP1 CODESIZE DUP4 CODECOPY POP SWAP2 SWAP3 SWAP2 POP POP JUMP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 LOG0 0xd3 PUSH6 0x93D4E84A593C DUP15 0x4f PUSH21 0x55CA835FFA0DCBC557F96FFD38452CCD890C23BB00 0x29 ", - "sourceMap": "741:532:71:-;;;488:5:66;:18;;-1:-1:-1;;;;;;488:18:66;496:10;488:18;;;741:532:71;;;;;;" - }, - "deployedBytecode": { - "linkReferences": {}, - "object": "60806040526004361061006c5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416635e35359e811461007157806379ba50971461009d5780638da5cb5b146100b2578063d4ee1d90146100e3578063f2fde38b146100f8575b600080fd5b34801561007d57600080fd5b5061009b600160a060020a0360043581169060243516604435610119565b005b3480156100a957600080fd5b5061009b610152565b3480156100be57600080fd5b506100c7610225565b60408051600160a060020a039092168252519081900360200190f35b3480156100ef57600080fd5b506100c7610234565b34801561010457600080fd5b5061009b600160a060020a0360043516610243565b6101216102e0565b8261012b81610344565b8261013581610344565b8361013f816103a7565b61014a868686610408565b505050505050565b600154600160a060020a031633146101b4576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b60015460008054604051600160a060020a0393841693909116917f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91a3600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b600054600160a060020a031681565b600154600160a060020a031681565b61024b6102e0565b600054600160a060020a03828116911614156102b1576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f53414d455f4f574e4552000000000000000000000000000000000000604482015290519081900360640190fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600054600160a060020a03163314610342576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b565b600160a060020a03811615156103a4576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b50565b600160a060020a0381163014156103a4576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f414444524553535f49535f53454c4600000000000000000000000000604482015290519081900360640190fd5b604080517f7472616e7366657228616464726573732c75696e74323536290000000000000081528151908190036019018120600160a060020a038516602483015260448083018590528351808403909101815260649092019092526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909316929092179091526104bd9084906104c2565b505050565b6104ca610550565b602060405190810160405280600181525090506020818351602085016000875af18015156104f757600080fd5b50805115156104bd576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f5452414e534645525f4641494c454400000000000000000000000000604482015290519081900360640190fd5b60206040519081016040528060019060208202803883395091929150505600a165627a7a72305820a0d36593d4e84a593c8e4f7455ca835ffa0dcbc557f96ffd38452ccd890c23bb0029", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x6C JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x5E35359E DUP2 EQ PUSH2 0x71 JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x9D JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0xB2 JUMPI DUP1 PUSH4 0xD4EE1D90 EQ PUSH2 0xE3 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0xF8 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x9B PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x119 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x9B PUSH2 0x152 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xBE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xC7 PUSH2 0x225 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xEF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xC7 PUSH2 0x234 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x104 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x9B PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x243 JUMP JUMPDEST PUSH2 0x121 PUSH2 0x2E0 JUMP JUMPDEST DUP3 PUSH2 0x12B DUP2 PUSH2 0x344 JUMP JUMPDEST DUP3 PUSH2 0x135 DUP2 PUSH2 0x344 JUMP JUMPDEST DUP4 PUSH2 0x13F DUP2 PUSH2 0x3A7 JUMP JUMPDEST PUSH2 0x14A DUP7 DUP7 DUP7 PUSH2 0x408 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x1B4 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND SWAP4 SWAP1 SWAP2 AND SWAP2 PUSH32 0x343765429AEA5A34B3FF6A3785A98A5ABB2597ACA87BFBB58632C173D585373A SWAP2 LOG3 PUSH1 0x1 DUP1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND OR SWAP1 SWAP2 SSTORE AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH2 0x24B PUSH2 0x2E0 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x2B1 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F4F574E4552000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x342 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0x3A4 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ADDRESS EQ ISZERO PUSH2 0x3A4 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F414444524553535F49535F53454C4600000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x7472616E7366657228616464726573732C75696E743235362900000000000000 DUP2 MSTORE DUP2 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x19 ADD DUP2 KECCAK256 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP6 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP1 DUP4 ADD DUP6 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x64 SWAP1 SWAP3 ADD SWAP1 SWAP3 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE PUSH2 0x4BD SWAP1 DUP5 SWAP1 PUSH2 0x4C2 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x4CA PUSH2 0x550 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE POP SWAP1 POP PUSH1 0x20 DUP2 DUP4 MLOAD PUSH1 0x20 DUP6 ADD PUSH1 0x0 DUP8 GAS CALL DUP1 ISZERO ISZERO PUSH2 0x4F7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD ISZERO ISZERO PUSH2 0x4BD JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F5452414E534645525F4641494C454400000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 SWAP1 PUSH1 0x20 DUP3 MUL DUP1 CODESIZE DUP4 CODECOPY POP SWAP2 SWAP3 SWAP2 POP POP JUMP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 LOG0 0xd3 PUSH6 0x93D4E84A593C DUP15 0x4f PUSH21 0x55CA835FFA0DCBC557F96FFD38452CCD890C23BB00 0x29 ", - "sourceMap": "741:532:71:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1077:194;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1077:194:71;-1:-1:-1;;;;;1077:194:71;;;;;;;;;;;;;;1159:176:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1159:176:66;;;;157:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;157:20:66;;;;;;;;-1:-1:-1;;;;;157:20:66;;;;;;;;;;;;;;180:23;;8:9:-1;5:2;;;30:1;27;20:12;5:2;180:23:66;;;;945:140;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;945:140:66;-1:-1:-1;;;;;945:140:66;;;;;1077:194:71;575:12:66;:10;:12::i;:::-;1190:6:71;475:23:72;489:8;475:13;:23::i;:::-;1211:3:71;475:23:72;489:8;475:13;:23::i;:::-;1224:3:71;782:18:72;791:8;782;:18::i;:::-;1233:34:71;1246:6;1254:3;1259:7;1233:12;:34::i;:::-;502:1:72;;591::66;1077:194:71;;;:::o;1159:176:66:-;1219:8;;-1:-1:-1;;;;;1219:8:66;1205:10;:22;1197:52;;;;;-1:-1:-1;;;;;1197:52:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;1277:8;;;1270:5;;1258:28;;-1:-1:-1;;;;;1277:8:66;;;;1270:5;;;;1258:28;;;1298:8;;;;1290:16;;-1:-1:-1;;1290:16:66;;;-1:-1:-1;;;;;1298:8:66;;1290:16;;;;1310:21;;;1159:176::o;157:20::-;;;-1:-1:-1;;;;;157:20:66;;:::o;180:23::-;;;-1:-1:-1;;;;;180:23:66;;:::o;945:140::-;575:12;:10;:12::i;:::-;1033:5;;-1:-1:-1;;;;;1020:18:66;;;1033:5;;1020:18;;1012:45;;;;;-1:-1:-1;;;;;1012:45:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;1061:8;:20;;-1:-1:-1;;1061:20:66;-1:-1:-1;;;;;1061:20:66;;;;;;;;;;945:140::o;642:93::-;704:5;;-1:-1:-1;;;;;704:5:66;690:10;:19;682:49;;;;;-1:-1:-1;;;;;682:49:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;642:93::o;553:117:72:-;-1:-1:-1;;;;;620:22:72;;;;612:54;;;;;-1:-1:-1;;;;;612:54:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;553:117;:::o;855:115::-;-1:-1:-1;;;;;917:25:72;;937:4;917:25;;909:57;;;;;-1:-1:-1;;;;;909:57:72;;;;;;;;;;;;;;;;;;;;;;;;;;;1214:173:70;248:38;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1323:59:70;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;1323:59:70;;;;;;;;25:18:-1;;61:17;;1323:59:70;182:15:-1;1323:59:70;;;;179:29:-1;;;;160:49;;;1307:76:70;;1315:6;;1307:7;:76::i;:::-;1214:173;;;:::o;2255:557::-;2324:21;;:::i;:::-;:36;;;;;;;;;2357:1;2324:36;;;;;2687:2;2661:3;2580:5;2574:12;2495:2;2488:5;2484:14;2465:1;2430:6;2404:3;2394:317;2725:7;2718:15;2715:2;;;2750:1;2747;2740:12;2715:2;-1:-1:-1;2773:6:70;;:11;;2765:43;;;;;-1:-1:-1;;;;;2765:43:70;;;;;;;;;;;;;;;;;;;;;;;;;;;741:532:71;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;-1:-1;741:532:71;;;-1:-1:-1;;741:532:71:o" - }, - "methodIdentifiers": { - "acceptOwnership()": "79ba5097", - "newOwner()": "d4ee1d90", - "owner()": "8da5cb5b", - "transferOwnership(address)": "f2fde38b", - "withdrawTokens(address,address,uint256)": "5e35359e" - } - }, - "userdoc": { - "methods": {} - } - } - }, - "solidity/contracts/utility/Utils.sol": { - "Utils": { - "abi": [], - "devdoc": { - "methods": {} - }, - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "6080604052348015600f57600080fd5b50603580601d6000396000f3006080604052600080fd00a165627a7a723058200976d1ac93d5f2fa6ad54a01fdc41c7f24f585ab0bfff1b62d58b1890a6dda940029", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x35 DUP1 PUSH1 0x1D PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 MULMOD PUSH23 0xD1AC93D5F2FA6AD54A01FDC41C7F24F585AB0BFFF1B62D PC 0xb1 DUP10 EXP PUSH14 0xDA94002900000000000000000000 ", - "sourceMap": "70:902:72:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;70:902:72;;;;;;;" - }, - "deployedBytecode": { - "linkReferences": {}, - "object": "6080604052600080fd00a165627a7a723058200976d1ac93d5f2fa6ad54a01fdc41c7f24f585ab0bfff1b62d58b1890a6dda940029", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 MULMOD PUSH23 0xD1AC93D5F2FA6AD54A01FDC41C7F24F585AB0BFFF1B62D PC 0xb1 DUP10 EXP PUSH14 0xDA94002900000000000000000000 ", - "sourceMap": "70:902:72:-;;;;;" - }, - "methodIdentifiers": {} - }, - "userdoc": { - "methods": {} - } - } - }, - "solidity/contracts/utility/Whitelist.sol": { - "Whitelist": { - "abi": [ - { - "constant": false, - "inputs": [ - { - "name": "_addresses", - "type": "address[]" - } - ], - "name": "addAddresses", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_address", - "type": "address" - } - ], - "name": "addAddress", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_address", - "type": "address" - } - ], - "name": "isWhitelisted", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_address", - "type": "address" - } - ], - "name": "removeAddress", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "acceptOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "owner", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_addresses", - "type": "address[]" - } - ], - "name": "removeAddresses", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "newOwner", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "_address", - "type": "address" - } - ], - "name": "AddressAddition", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "_address", - "type": "address" - } - ], - "name": "AddressRemoval", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "_prevOwner", - "type": "address" - }, - { - "indexed": true, - "name": "_newOwner", - "type": "address" - } - ], - "name": "OwnerUpdate", - "type": "event" - } - ], - "devdoc": { - "methods": { - "acceptOwnership()": { - "details": "used by a new owner to accept an ownership transfer" - }, - "addAddress(address)": { - "details": "adds a given address to the whitelist", - "params": { - "_address": "address to add" - } - }, - "addAddresses(address[])": { - "details": "adds a list of addresses to the whitelist", - "params": { - "_addresses": "addresses to add" - } - }, - "isWhitelisted(address)": { - "details": "returns true if a given address is whitelisted, false if not", - "params": { - "_address": "address to check" - }, - "return": "true if the address is whitelisted, false if not" - }, - "removeAddress(address)": { - "details": "removes a given address from the whitelist", - "params": { - "_address": "address to remove" - } - }, - "removeAddresses(address[])": { - "details": "removes a list of addresses from the whitelist", - "params": { - "_addresses": "addresses to remove" - } - }, - "transferOwnership(address)": { - "details": "allows transferring the contract ownership the new owner still needs to accept the transfer can only be called by the contract owner", - "params": { - "_newOwner": "new contract owner" - } - } - } - }, - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "608060405260008054600160a060020a03191633179055610642806100256000396000f3006080604052600436106100985763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416633628731c811461009d57806338eada1c146100f45780633af32abf146101155780634ba79dfe1461014a57806379ba50971461016b5780638da5cb5b14610180578063a84eb999146101b1578063d4ee1d9014610206578063f2fde38b1461021b575b600080fd5b3480156100a957600080fd5b50604080516020600480358082013583810280860185019096528085526100f29536959394602494938501929182918501908490808284375094975061023c9650505050505050565b005b34801561010057600080fd5b506100f2600160a060020a0360043516610274565b34801561012157600080fd5b50610136600160a060020a03600435166102f9565b604080519115158252519081900360200190f35b34801561015657600080fd5b506100f2600160a060020a0360043516610317565b34801561017757600080fd5b506100f2610390565b34801561018c57600080fd5b50610195610463565b60408051600160a060020a039092168252519081900360200190f35b3480156101bd57600080fd5b50604080516020600480358082013583810280860185019096528085526100f2953695939460249493850192918291850190849080828437509497506104729650505050505050565b34801561021257600080fd5b506101956104a6565b34801561022757600080fd5b506100f2600160a060020a03600435166104b5565b60005b815181101561027057610268828281518110151561025957fe5b90602001906020020151610274565b60010161023f565b5050565b61027c610552565b80610286816105b6565b600160a060020a03821660009081526002602052604090205460ff16156102ac57610270565b600160a060020a038216600081815260026020526040808220805460ff19166001179055517f2c51f80053e9ee7518567e43b2f8e8b48f50cf10daede6d11893df9ad49e4a8a9190a25050565b600160a060020a031660009081526002602052604090205460ff1690565b61031f610552565b600160a060020a03811660009081526002602052604090205460ff1615156103465761038d565b600160a060020a038116600081815260026020526040808220805460ff19169055517f7ec2df28665f8610f9b1d2f74faae35dbc6bd58684a1194a6dfc31584953f03b9190a25b50565b600154600160a060020a031633146103f2576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b60015460008054604051600160a060020a0393841693909116917f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91a3600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b600054600160a060020a031681565b60005b81518110156102705761049e828281518110151561048f57fe5b90602001906020020151610317565b600101610475565b600154600160a060020a031681565b6104bd610552565b600054600160a060020a0382811691161415610523576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f53414d455f4f574e4552000000000000000000000000000000000000604482015290519081900360640190fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600054600160a060020a031633146105b4576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b565b600160a060020a038116151561038d576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd00a165627a7a72305820276dee7d5aa59f5cd7bfdfbf62a11f1964822181078b41e2ba38ed0b6236c5780029", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND CALLER OR SWAP1 SSTORE PUSH2 0x642 DUP1 PUSH2 0x25 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x98 JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x3628731C DUP2 EQ PUSH2 0x9D JUMPI DUP1 PUSH4 0x38EADA1C EQ PUSH2 0xF4 JUMPI DUP1 PUSH4 0x3AF32ABF EQ PUSH2 0x115 JUMPI DUP1 PUSH4 0x4BA79DFE EQ PUSH2 0x14A JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x16B JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x180 JUMPI DUP1 PUSH4 0xA84EB999 EQ PUSH2 0x1B1 JUMPI DUP1 PUSH4 0xD4EE1D90 EQ PUSH2 0x206 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x21B JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0xF2 SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP PUSH2 0x23C SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x100 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xF2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x274 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x121 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x136 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x2F9 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x156 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xF2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x317 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x177 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xF2 PUSH2 0x390 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x18C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x195 PUSH2 0x463 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1BD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0xF2 SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP PUSH2 0x472 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x212 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x195 PUSH2 0x4A6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x227 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xF2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x4B5 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP2 MLOAD DUP2 LT ISZERO PUSH2 0x270 JUMPI PUSH2 0x268 DUP3 DUP3 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x259 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH2 0x274 JUMP JUMPDEST PUSH1 0x1 ADD PUSH2 0x23F JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x27C PUSH2 0x552 JUMP JUMPDEST DUP1 PUSH2 0x286 DUP2 PUSH2 0x5B6 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x2AC JUMPI PUSH2 0x270 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE MLOAD PUSH32 0x2C51F80053E9EE7518567E43B2F8E8B48F50CF10DAEDE6D11893DF9AD49E4A8A SWAP2 SWAP1 LOG2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH2 0x31F PUSH2 0x552 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO ISZERO PUSH2 0x346 JUMPI PUSH2 0x38D JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE MLOAD PUSH32 0x7EC2DF28665F8610F9B1D2F74FAAE35DBC6BD58684A1194A6DFC31584953F03B SWAP2 SWAP1 LOG2 JUMPDEST POP JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x3F2 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND SWAP4 SWAP1 SWAP2 AND SWAP2 PUSH32 0x343765429AEA5A34B3FF6A3785A98A5ABB2597ACA87BFBB58632C173D585373A SWAP2 LOG3 PUSH1 0x1 DUP1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND OR SWAP1 SWAP2 SSTORE AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP2 MLOAD DUP2 LT ISZERO PUSH2 0x270 JUMPI PUSH2 0x49E DUP3 DUP3 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x48F JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH2 0x317 JUMP JUMPDEST PUSH1 0x1 ADD PUSH2 0x475 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH2 0x4BD PUSH2 0x552 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x523 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F4F574E4552000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x5B4 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0x38D JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 0x27 PUSH14 0xEE7D5AA59F5CD7BFDFBF62A11F19 PUSH5 0x822181078B COINBASE 0xe2 0xba CODESIZE 0xed SIGNEXTEND PUSH3 0x36C578 STOP 0x29 ", - "sourceMap": "176:1933:73:-;;;488:5:66;:18;;-1:-1:-1;;;;;;488:18:66;496:10;488:18;;;176:1933:73;;;;;;" - }, - "deployedBytecode": { - "linkReferences": {}, - "object": "6080604052600436106100985763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416633628731c811461009d57806338eada1c146100f45780633af32abf146101155780634ba79dfe1461014a57806379ba50971461016b5780638da5cb5b14610180578063a84eb999146101b1578063d4ee1d9014610206578063f2fde38b1461021b575b600080fd5b3480156100a957600080fd5b50604080516020600480358082013583810280860185019096528085526100f29536959394602494938501929182918501908490808284375094975061023c9650505050505050565b005b34801561010057600080fd5b506100f2600160a060020a0360043516610274565b34801561012157600080fd5b50610136600160a060020a03600435166102f9565b604080519115158252519081900360200190f35b34801561015657600080fd5b506100f2600160a060020a0360043516610317565b34801561017757600080fd5b506100f2610390565b34801561018c57600080fd5b50610195610463565b60408051600160a060020a039092168252519081900360200190f35b3480156101bd57600080fd5b50604080516020600480358082013583810280860185019096528085526100f2953695939460249493850192918291850190849080828437509497506104729650505050505050565b34801561021257600080fd5b506101956104a6565b34801561022757600080fd5b506100f2600160a060020a03600435166104b5565b60005b815181101561027057610268828281518110151561025957fe5b90602001906020020151610274565b60010161023f565b5050565b61027c610552565b80610286816105b6565b600160a060020a03821660009081526002602052604090205460ff16156102ac57610270565b600160a060020a038216600081815260026020526040808220805460ff19166001179055517f2c51f80053e9ee7518567e43b2f8e8b48f50cf10daede6d11893df9ad49e4a8a9190a25050565b600160a060020a031660009081526002602052604090205460ff1690565b61031f610552565b600160a060020a03811660009081526002602052604090205460ff1615156103465761038d565b600160a060020a038116600081815260026020526040808220805460ff19169055517f7ec2df28665f8610f9b1d2f74faae35dbc6bd58684a1194a6dfc31584953f03b9190a25b50565b600154600160a060020a031633146103f2576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b60015460008054604051600160a060020a0393841693909116917f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91a3600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b600054600160a060020a031681565b60005b81518110156102705761049e828281518110151561048f57fe5b90602001906020020151610317565b600101610475565b600154600160a060020a031681565b6104bd610552565b600054600160a060020a0382811691161415610523576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f53414d455f4f574e4552000000000000000000000000000000000000604482015290519081900360640190fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600054600160a060020a031633146105b4576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b565b600160a060020a038116151561038d576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd00a165627a7a72305820276dee7d5aa59f5cd7bfdfbf62a11f1964822181078b41e2ba38ed0b6236c5780029", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x98 JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x3628731C DUP2 EQ PUSH2 0x9D JUMPI DUP1 PUSH4 0x38EADA1C EQ PUSH2 0xF4 JUMPI DUP1 PUSH4 0x3AF32ABF EQ PUSH2 0x115 JUMPI DUP1 PUSH4 0x4BA79DFE EQ PUSH2 0x14A JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x16B JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x180 JUMPI DUP1 PUSH4 0xA84EB999 EQ PUSH2 0x1B1 JUMPI DUP1 PUSH4 0xD4EE1D90 EQ PUSH2 0x206 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x21B JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0xF2 SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP PUSH2 0x23C SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x100 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xF2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x274 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x121 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x136 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x2F9 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x156 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xF2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x317 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x177 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xF2 PUSH2 0x390 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x18C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x195 PUSH2 0x463 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1BD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x4 DUP1 CALLDATALOAD DUP1 DUP3 ADD CALLDATALOAD DUP4 DUP2 MUL DUP1 DUP7 ADD DUP6 ADD SWAP1 SWAP7 MSTORE DUP1 DUP6 MSTORE PUSH2 0xF2 SWAP6 CALLDATASIZE SWAP6 SWAP4 SWAP5 PUSH1 0x24 SWAP5 SWAP4 DUP6 ADD SWAP3 SWAP2 DUP3 SWAP2 DUP6 ADD SWAP1 DUP5 SWAP1 DUP1 DUP3 DUP5 CALLDATACOPY POP SWAP5 SWAP8 POP PUSH2 0x472 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x212 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x195 PUSH2 0x4A6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x227 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xF2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x4B5 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP2 MLOAD DUP2 LT ISZERO PUSH2 0x270 JUMPI PUSH2 0x268 DUP3 DUP3 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x259 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH2 0x274 JUMP JUMPDEST PUSH1 0x1 ADD PUSH2 0x23F JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x27C PUSH2 0x552 JUMP JUMPDEST DUP1 PUSH2 0x286 DUP2 PUSH2 0x5B6 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x2AC JUMPI PUSH2 0x270 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE MLOAD PUSH32 0x2C51F80053E9EE7518567E43B2F8E8B48F50CF10DAEDE6D11893DF9AD49E4A8A SWAP2 SWAP1 LOG2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH2 0x31F PUSH2 0x552 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO ISZERO PUSH2 0x346 JUMPI PUSH2 0x38D JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE MLOAD PUSH32 0x7EC2DF28665F8610F9B1D2F74FAAE35DBC6BD58684A1194A6DFC31584953F03B SWAP2 SWAP1 LOG2 JUMPDEST POP JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x3F2 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND SWAP4 SWAP1 SWAP2 AND SWAP2 PUSH32 0x343765429AEA5A34B3FF6A3785A98A5ABB2597ACA87BFBB58632C173D585373A SWAP2 LOG3 PUSH1 0x1 DUP1 SLOAD PUSH1 0x0 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND OR SWAP1 SWAP2 SSTORE AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP2 MLOAD DUP2 LT ISZERO PUSH2 0x270 JUMPI PUSH2 0x49E DUP3 DUP3 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x48F JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH2 0x317 JUMP JUMPDEST PUSH1 0x1 ADD PUSH2 0x475 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH2 0x4BD PUSH2 0x552 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 DUP2 AND SWAP2 AND EQ ISZERO PUSH2 0x523 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F53414D455F4F574E4552000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x5B4 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F4143434553535F44454E494544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0x38D JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552525F494E56414C49445F4144445245535300000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 0x27 PUSH14 0xEE7D5AA59F5CD7BFDFBF62A11F19 PUSH5 0x822181078B COINBASE 0xe2 0xba CODESIZE 0xed SIGNEXTEND PUSH3 0x36C578 STOP 0x29 ", - "sourceMap": "176:1933:73:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1379:141;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1379:141:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1379:141:73;;-1:-1:-1;1379:141:73;;-1:-1:-1;;;;;;;1379:141:73;;;1036:236;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1036:236:73;-1:-1:-1;;;;;1036:236:73;;;;;835:102;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;835:102:73;-1:-1:-1;;;;;835:102:73;;;;;;;;;;;;;;;;;;;;;;;1627:218;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1627:218:73;-1:-1:-1;;;;;1627:218:73;;;;;1159:176:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1159:176:66;;;;157:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;157:20:66;;;;;;;;-1:-1:-1;;;;;157:20:66;;;;;;;;;;;;;;1960:147:73;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1960:147:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1960:147:73;;-1:-1:-1;1960:147:73;;-1:-1:-1;;;;;;;1960:147:73;180:23:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;180:23:66;;;;945:140;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;945:140:66;-1:-1:-1;;;;;945:140:66;;;;;1379:141:73;1439:9;1434:83;1458:10;:17;1454:1;:21;1434:83;;;1487:25;1498:10;1509:1;1498:13;;;;;;;;;;;;;;;;;;1487:10;:25::i;:::-;1477:3;;1434:83;;;1379:141;;:::o;1036:236::-;575:12:66;:10;:12::i;:::-;1104:8:73;475:23:72;489:8;475:13;:23::i;:::-;-1:-1:-1;;;;;1122:19:73;;;;;;:9;:19;;;;;;;;1118:86;;;1197:7;;1118:86;-1:-1:-1;;;;;1208:19:73;;;;;;:9;:19;;;;;;:26;;-1:-1:-1;;1208:26:73;1230:4;1208:26;;;1243:25;;;1208:19;1243:25;591:1:66;1036:236:73;:::o;835:102::-;-1:-1:-1;;;;;914:19:73;897:4;914:19;;;:9;:19;;;;;;;;;835:102::o;1627:218::-;575:12:66;:10;:12::i;:::-;-1:-1:-1;;;;;1694:19:73;;;;;;:9;:19;;;;;;;;1693:20;1689:88;;;1770:7;;1689:88;-1:-1:-1;;;;;1781:19:73;;1803:5;1781:19;;;:9;:19;;;;;;:27;;-1:-1:-1;;1781:27:73;;;1817:24;;;1803:5;1817:24;591:1:66;1627:218:73;:::o;1159:176:66:-;1219:8;;-1:-1:-1;;;;;1219:8:66;1205:10;:22;1197:52;;;;;-1:-1:-1;;;;;1197:52:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;1277:8;;;1270:5;;1258:28;;-1:-1:-1;;;;;1277:8:66;;;;1270:5;;;;1258:28;;;1298:8;;;;1290:16;;-1:-1:-1;;1290:16:66;;;-1:-1:-1;;;;;1298:8:66;;1290:16;;;;1310:21;;;1159:176::o;157:20::-;;;-1:-1:-1;;;;;157:20:66;;:::o;1960:147:73:-;2023:9;2018:86;2042:10;:17;2038:1;:21;2018:86;;;2071:28;2085:10;2096:1;2085:13;;;;;;;;;;;;;;;;;;2071;:28::i;:::-;2061:3;;2018:86;;180:23:66;;;-1:-1:-1;;;;;180:23:66;;:::o;945:140::-;575:12;:10;:12::i;:::-;1033:5;;-1:-1:-1;;;;;1020:18:66;;;1033:5;;1020:18;;1012:45;;;;;-1:-1:-1;;;;;1012:45:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;1061:8;:20;;-1:-1:-1;;1061:20:66;-1:-1:-1;;;;;1061:20:66;;;;;;;;;;945:140::o;642:93::-;704:5;;-1:-1:-1;;;;;704:5:66;690:10;:19;682:49;;;;;-1:-1:-1;;;;;682:49:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;642:93::o;553:117:72:-;-1:-1:-1;;;;;620:22:72;;;;612:54;;;;;-1:-1:-1;;;;;612:54:72;;;;;;;;;;;;;;;;;;;;;;;;;;" - }, - "methodIdentifiers": { - "acceptOwnership()": "79ba5097", - "addAddress(address)": "38eada1c", - "addAddresses(address[])": "3628731c", - "isWhitelisted(address)": "3af32abf", - "newOwner()": "d4ee1d90", - "owner()": "8da5cb5b", - "removeAddress(address)": "4ba79dfe", - "removeAddresses(address[])": "a84eb999", - "transferOwnership(address)": "f2fde38b" - } - }, - "userdoc": { - "methods": {} - } - } - }, - "solidity/contracts/utility/interfaces/IConsumerPriceOracle.sol": { - "IConsumerPriceOracle": { - "abi": [ - { - "constant": true, - "inputs": [], - "name": "latestAnswer", - "outputs": [ - { - "name": "", - "type": "int256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "latestTimestamp", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - } - ], - "devdoc": { - "methods": {} - }, - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "deployedBytecode": { - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "methodIdentifiers": { - "latestAnswer()": "50d25bcd", - "latestTimestamp()": "8205bf6a" - } - }, - "userdoc": { - "methods": {} - } - } - }, - "solidity/contracts/utility/interfaces/IContractRegistry.sol": { - "IContractRegistry": { - "abi": [ - { - "constant": true, - "inputs": [ - { - "name": "_contractName", - "type": "bytes32" - } - ], - "name": "getAddress", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_contractName", - "type": "bytes32" - } - ], - "name": "addressOf", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - } - ], - "devdoc": { - "methods": {} - }, - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "deployedBytecode": { - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "methodIdentifiers": { - "addressOf(bytes32)": "bb34534c", - "getAddress(bytes32)": "21f8a721" - } - }, - "userdoc": { - "methods": {} - } - } - }, - "solidity/contracts/utility/interfaces/IMoCState.sol": { - "IMoCState": { - "abi": [ - { - "constant": true, - "inputs": [], - "name": "bproUsdPrice", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - } - ], - "devdoc": { - "methods": {} - }, - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "deployedBytecode": { - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "methodIdentifiers": { - "bproUsdPrice()": "747a5663" - } - }, - "userdoc": { - "methods": {} - } - } - }, - "solidity/contracts/utility/interfaces/IOwned.sol": { - "IOwned": { - "abi": [ - { - "constant": false, - "inputs": [], - "name": "acceptOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "owner", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - } - ], - "devdoc": { - "methods": {} - }, - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "deployedBytecode": { - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "methodIdentifiers": { - "acceptOwnership()": "79ba5097", - "owner()": "8da5cb5b", - "transferOwnership(address)": "f2fde38b" - } - }, - "userdoc": { - "methods": {} - } - } - }, - "solidity/contracts/utility/interfaces/IPriceOracle.sol": { - "IPriceOracle": { - "abi": [ - { - "constant": true, - "inputs": [ - { - "name": "_tokenA", - "type": "address" - }, - { - "name": "_tokenB", - "type": "address" - } - ], - "name": "latestRate", - "outputs": [ - { - "name": "", - "type": "uint256" - }, - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_tokenA", - "type": "address" - }, - { - "name": "_tokenB", - "type": "address" - } - ], - "name": "latestRateAndUpdateTime", - "outputs": [ - { - "name": "", - "type": "uint256" - }, - { - "name": "", - "type": "uint256" - }, - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "tokenAOracle", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "lastUpdateTime", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "tokenBOracle", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - } - ], - "devdoc": { - "methods": {} - }, - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "deployedBytecode": { - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "methodIdentifiers": { - "lastUpdateTime()": "c8f33c91", - "latestRate(address,address)": "ae818004", - "latestRateAndUpdateTime(address,address)": "b1772d7a", - "tokenAOracle()": "b9e1715b", - "tokenBOracle()": "f997fda7" - } - }, - "userdoc": { - "methods": {} - } - } - }, - "solidity/contracts/utility/interfaces/ITokenHolder.sol": { - "ITokenHolder": { - "abi": [ - { - "constant": false, - "inputs": [ - { - "name": "_token", - "type": "address" - }, - { - "name": "_to", - "type": "address" - }, - { - "name": "_amount", - "type": "uint256" - } - ], - "name": "withdrawTokens", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "acceptOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "owner", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - } - ], - "devdoc": { - "methods": {} - }, - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "deployedBytecode": { - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "methodIdentifiers": { - "acceptOwnership()": "79ba5097", - "owner()": "8da5cb5b", - "transferOwnership(address)": "f2fde38b", - "withdrawTokens(address,address,uint256)": "5e35359e" - } - }, - "userdoc": { - "methods": {} - } - } - }, - "solidity/contracts/utility/interfaces/IWhitelist.sol": { - "IWhitelist": { - "abi": [ - { - "constant": true, - "inputs": [ - { - "name": "_address", - "type": "address" - } - ], - "name": "isWhitelisted", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - } - ], - "devdoc": { - "methods": {} - }, - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "deployedBytecode": { - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "methodIdentifiers": { - "isWhitelisted(address)": "3af32abf" - } - }, - "userdoc": { - "methods": {} - } - } - } - }, - "sources": { - "solidity/contracts/ConversionPathFinder.sol": { - "ast": { - "absolutePath": "solidity/contracts/ConversionPathFinder.sol", - "exportedSymbols": { - "ConversionPathFinder": [ - 523 - ] - }, - "id": 524, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 1, - "literals": [ - "solidity", - "0.4", - ".26" - ], - "nodeType": "PragmaDirective", - "src": "0:23:0" - }, - { - "absolutePath": "solidity/contracts/IConversionPathFinder.sol", - "file": "./IConversionPathFinder.sol", - "id": 2, - "nodeType": "ImportDirective", - "scope": 524, - "sourceUnit": 538, - "src": "24:37:0", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "solidity/contracts/utility/ContractRegistryClient.sol", - "file": "./utility/ContractRegistryClient.sol", - "id": 3, - "nodeType": "ImportDirective", - "scope": 524, - "sourceUnit": 20933, - "src": "62:46:0", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "solidity/contracts/converter/interfaces/IConverter.sol", - "file": "./converter/interfaces/IConverter.sol", - "id": 4, - "nodeType": "ImportDirective", - "scope": 524, - "sourceUnit": 11818, - "src": "109:47:0", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "solidity/contracts/converter/interfaces/IConverterAnchor.sol", - "file": "./converter/interfaces/IConverterAnchor.sol", - "id": 5, - "nodeType": "ImportDirective", - "scope": 524, - "sourceUnit": 11827, - "src": "157:53:0", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "solidity/contracts/converter/interfaces/IConverterRegistry.sol", - "file": "./converter/interfaces/IConverterRegistry.sol", - "id": 6, - "nodeType": "ImportDirective", - "scope": 524, - "sourceUnit": 11983, - "src": "211:55:0", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 7, - "name": "IConversionPathFinder", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 537, - "src": "591:21:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConversionPathFinder_$537", - "typeString": "contract IConversionPathFinder" - } - }, - "id": 8, - "nodeType": "InheritanceSpecifier", - "src": "591:21:0" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 9, - "name": "ContractRegistryClient", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20932, - "src": "614:22:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ContractRegistryClient_$20932", - "typeString": "contract ContractRegistryClient" - } - }, - "id": 10, - "nodeType": "InheritanceSpecifier", - "src": "614:22:0" - } - ], - "contractDependencies": [ - 537, - 20932, - 21324, - 22052, - 22247 - ], - "contractKind": "contract", - "documentation": "@dev The ConversionPathFinder contract allows generating a conversion path between any token pair in the SovrynSwap Network.\nThe path can then be used in various functions in the SovrynSwapNetwork contract.\n * See the SovrynSwapNetwork contract for conversion path format.", - "fullyImplemented": true, - "id": 523, - "linearizedBaseContracts": [ - 523, - 20932, - 22052, - 21324, - 22247, - 537 - ], - "name": "ConversionPathFinder", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 12, - "name": "anchorToken", - "nodeType": "VariableDeclaration", - "scope": 523, - "src": "640:26:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 11, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "640:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "public" - }, - { - "body": { - "id": 20, - "nodeType": "Block", - "src": "884:2:0", - "statements": [] - }, - "documentation": "@dev initializes a new ConversionPathFinder instance\n\t * @param _registry address of a contract registry contract", - "id": 21, - "implemented": true, - "isConstructor": true, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 17, - "name": "_registry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14, - "src": "873:9:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IContractRegistry_$22220", - "typeString": "contract IContractRegistry" - } - } - ], - "id": 18, - "modifierName": { - "argumentTypes": null, - "id": 16, - "name": "ContractRegistryClient", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20932, - "src": "850:22:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ContractRegistryClient_$20932_$", - "typeString": "type(contract ContractRegistryClient)" - } - }, - "nodeType": "ModifierInvocation", - "src": "850:33:0" - } - ], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 15, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 14, - "name": "_registry", - "nodeType": "VariableDeclaration", - "scope": 21, - "src": "814:27:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IContractRegistry_$22220", - "typeString": "contract IContractRegistry" - }, - "typeName": { - "contractScope": null, - "id": 13, - "name": "IContractRegistry", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 22220, - "src": "814:17:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IContractRegistry_$22220", - "typeString": "contract IContractRegistry" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "813:29:0" - }, - "payable": false, - "returnParameters": { - "id": 19, - "nodeType": "ParameterList", - "parameters": [], - "src": "884:0:0" - }, - "scope": 523, - "src": "802:84:0", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 32, - "nodeType": "Block", - "src": "1052:34:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 30, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 28, - "name": "anchorToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12, - "src": "1056:11:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 29, - "name": "_anchorToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 23, - "src": "1070:12:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "1056:26:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 31, - "nodeType": "ExpressionStatement", - "src": "1056:26:0" - } - ] - }, - "documentation": "@dev updates the anchor token\n\t * @param _anchorToken address of the anchor token", - "id": 33, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 26, - "modifierName": { - "argumentTypes": null, - "id": 25, - "name": "ownerOnly", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21265, - "src": "1042:9:0", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "1042:9:0" - } - ], - "name": "setAnchorToken", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 24, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 23, - "name": "_anchorToken", - "nodeType": "VariableDeclaration", - "scope": 33, - "src": "1013:20:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 22, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1013:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1012:22:0" - }, - "payable": false, - "returnParameters": { - "id": 27, - "nodeType": "ParameterList", - "parameters": [], - "src": "1052:0:0" - }, - "scope": 523, - "src": "989:97:0", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 74, - "nodeType": "Block", - "src": "1467:294:0", - "statements": [ - { - "assignments": [ - 44 - ], - "declarations": [ - { - "constant": false, - "id": 44, - "name": "converterRegistry", - "nodeType": "VariableDeclaration", - "scope": 75, - "src": "1471:36:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterRegistry_$11982", - "typeString": "contract IConverterRegistry" - }, - "typeName": { - "contractScope": null, - "id": 43, - "name": "IConverterRegistry", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 11982, - "src": "1471:18:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterRegistry_$11982", - "typeString": "contract IConverterRegistry" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 50, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 47, - "name": "CONVERTER_REGISTRY", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20770, - "src": "1539:18:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 46, - "name": "addressOf", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20931, - "src": "1529:9:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$", - "typeString": "function (bytes32) view returns (address)" - } - }, - "id": 48, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1529:29:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 45, - "name": "IConverterRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11982, - "src": "1510:18:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IConverterRegistry_$11982_$", - "typeString": "type(contract IConverterRegistry)" - } - }, - "id": 49, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1510:49:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterRegistry_$11982", - "typeString": "contract IConverterRegistry" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1471:88:0" - }, - { - "assignments": [ - 54 - ], - "declarations": [ - { - "constant": false, - "id": 54, - "name": "sourcePath", - "nodeType": "VariableDeclaration", - "scope": 75, - "src": "1563:27:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 52, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1563:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 53, - "length": null, - "nodeType": "ArrayTypeName", - "src": "1563:9:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 59, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 56, - "name": "_sourceToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35, - "src": "1601:12:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 57, - "name": "converterRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 44, - "src": "1615:17:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterRegistry_$11982", - "typeString": "contract IConverterRegistry" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_contract$_IConverterRegistry_$11982", - "typeString": "contract IConverterRegistry" - } - ], - "id": 55, - "name": "getPath", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 200, - "src": "1593:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_contract$_IConverterRegistry_$11982_$returns$_t_array$_t_address_$dyn_memory_ptr_$", - "typeString": "function (address,contract IConverterRegistry) view returns (address[] memory)" - } - }, - "id": 58, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1593:40:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1563:70:0" - }, - { - "assignments": [ - 63 - ], - "declarations": [ - { - "constant": false, - "id": 63, - "name": "targetPath", - "nodeType": "VariableDeclaration", - "scope": 75, - "src": "1637:27:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 61, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1637:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 62, - "length": null, - "nodeType": "ArrayTypeName", - "src": "1637:9:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 68, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 65, - "name": "_targetToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 37, - "src": "1675:12:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 66, - "name": "converterRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 44, - "src": "1689:17:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterRegistry_$11982", - "typeString": "contract IConverterRegistry" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_contract$_IConverterRegistry_$11982", - "typeString": "contract IConverterRegistry" - } - ], - "id": 64, - "name": "getPath", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 200, - "src": "1667:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_contract$_IConverterRegistry_$11982_$returns$_t_array$_t_address_$dyn_memory_ptr_$", - "typeString": "function (address,contract IConverterRegistry) view returns (address[] memory)" - } - }, - "id": 67, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1667:40:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1637:70:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 70, - "name": "sourcePath", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 54, - "src": "1734:10:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - { - "argumentTypes": null, - "id": 71, - "name": "targetPath", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 63, - "src": "1746:10:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - }, - { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - ], - "id": 69, - "name": "getShortestPath", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 389, - "src": "1718:15:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$returns$_t_array$_t_address_$dyn_memory_ptr_$", - "typeString": "function (address[] memory,address[] memory) pure returns (address[] memory)" - } - }, - "id": 72, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1718:39:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "functionReturnParameters": 42, - "id": 73, - "nodeType": "Return", - "src": "1711:46:0" - } - ] - }, - "documentation": "@dev generates a conversion path between a given pair of tokens in the SovrynSwap Network\n\t * @param _sourceToken address of the source token\n@param _targetToken address of the target token\n\t * @return a path from the source token to the target token", - "id": 75, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "findPath", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 38, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 35, - "name": "_sourceToken", - "nodeType": "VariableDeclaration", - "scope": 75, - "src": "1384:20:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 34, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1384:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 37, - "name": "_targetToken", - "nodeType": "VariableDeclaration", - "scope": 75, - "src": "1406:20:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 36, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1406:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1383:44:0" - }, - "payable": false, - "returnParameters": { - "id": 42, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 41, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 75, - "src": "1449:9:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 39, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1449:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 40, - "length": null, - "nodeType": "ArrayTypeName", - "src": "1449:9:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1448:18:0" - }, - "scope": 523, - "src": "1366:395:0", - "stateMutability": "view", - "superFunction": 536, - "visibility": "public" - }, - { - "body": { - "id": 199, - "nodeType": "Block", - "src": "2153:780:0", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 87, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 85, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77, - "src": "2161:6:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 86, - "name": "anchorToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12, - "src": "2171:11:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2161:21:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 92, - "nodeType": "IfStatement", - "src": "2157:57:0", - "trueBody": { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 89, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77, - "src": "2207:6:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 88, - "name": "getInitialArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 416, - "src": "2191:15:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_address_$returns$_t_array$_t_address_$dyn_memory_ptr_$", - "typeString": "function (address) pure returns (address[] memory)" - } - }, - "id": 90, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2191:23:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "functionReturnParameters": 84, - "id": 91, - "nodeType": "Return", - "src": "2184:30:0" - } - }, - { - "assignments": [], - "declarations": [ - { - "constant": false, - "id": 96, - "name": "anchors", - "nodeType": "VariableDeclaration", - "scope": 200, - "src": "2219:24:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 94, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2219:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 95, - "length": null, - "nodeType": "ArrayTypeName", - "src": "2219:9:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 97, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "2219:24:0" - }, - { - "condition": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 100, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77, - "src": "2279:6:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 98, - "name": "_converterRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 79, - "src": "2251:18:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterRegistry_$11982", - "typeString": "contract IConverterRegistry" - } - }, - "id": 99, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isAnchor", - "nodeType": "MemberAccess", - "referencedDeclaration": 11898, - "src": "2251:27:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view external returns (bool)" - } - }, - "id": 101, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2251:35:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "expression": { - "argumentTypes": null, - "id": 113, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 108, - "name": "anchors", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 96, - "src": "2330:7:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 111, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77, - "src": "2386:6:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 109, - "name": "_converterRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 79, - "src": "2340:18:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterRegistry_$11982", - "typeString": "contract IConverterRegistry" - } - }, - "id": 110, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getConvertibleTokenAnchors", - "nodeType": "MemberAccess", - "referencedDeclaration": 11963, - "src": "2340:45:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_array$_t_address_$dyn_memory_ptr_$", - "typeString": "function (address) view external returns (address[] memory)" - } - }, - "id": 112, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2340:53:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "src": "2330:63:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 114, - "nodeType": "ExpressionStatement", - "src": "2330:63:0" - }, - "id": 115, - "nodeType": "IfStatement", - "src": "2247:146:0", - "trueBody": { - "expression": { - "argumentTypes": null, - "id": 106, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 102, - "name": "anchors", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 96, - "src": "2288:7:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 104, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77, - "src": "2314:6:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 103, - "name": "getInitialArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 416, - "src": "2298:15:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_address_$returns$_t_array$_t_address_$dyn_memory_ptr_$", - "typeString": "function (address) pure returns (address[] memory)" - } - }, - "id": 105, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2298:23:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "src": "2288:33:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 107, - "nodeType": "ExpressionStatement", - "src": "2288:33:0" - } - }, - { - "body": { - "id": 191, - "nodeType": "Block", - "src": "2443:459:0", - "statements": [ - { - "assignments": [ - 128 - ], - "declarations": [ - { - "constant": false, - "id": 128, - "name": "converter", - "nodeType": "VariableDeclaration", - "scope": 200, - "src": "2448:20:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - }, - "typeName": { - "contractScope": null, - "id": 127, - "name": "IConverter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 11817, - "src": "2448:10:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 138, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 131, - "name": "anchors", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 96, - "src": "2499:7:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 133, - "indexExpression": { - "argumentTypes": null, - "id": 132, - "name": "n", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 117, - "src": "2507:1:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2499:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 130, - "name": "IConverterAnchor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11826, - "src": "2482:16:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IConverterAnchor_$11826_$", - "typeString": "type(contract IConverterAnchor)" - } - }, - "id": 134, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2482:28:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - }, - "id": 135, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "owner", - "nodeType": "MemberAccess", - "referencedDeclaration": 22238, - "src": "2482:34:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", - "typeString": "function () view external returns (address)" - } - }, - "id": 136, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2482:36:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 129, - "name": "IConverter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11817, - "src": "2471:10:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IConverter_$11817_$", - "typeString": "type(contract IConverter)" - } - }, - "id": 137, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2471:48:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2448:71:0" - }, - { - "assignments": [ - 140 - ], - "declarations": [ - { - "constant": false, - "id": 140, - "name": "connectorTokenCount", - "nodeType": "VariableDeclaration", - "scope": 200, - "src": "2524:27:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 139, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2524:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 144, - "initialValue": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 141, - "name": "converter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 128, - "src": "2554:9:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - "id": 142, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "connectorTokenCount", - "nodeType": "MemberAccess", - "referencedDeclaration": 11816, - "src": "2554:29:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_uint16_$", - "typeString": "function () view external returns (uint16)" - } - }, - "id": 143, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2554:31:0", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2524:61:0" - }, - { - "body": { - "id": 189, - "nodeType": "Block", - "src": "2640:258:0", - "statements": [ - { - "assignments": [ - 156 - ], - "declarations": [ - { - "constant": false, - "id": 156, - "name": "connectorToken", - "nodeType": "VariableDeclaration", - "scope": 200, - "src": "2646:22:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 155, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2646:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 161, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 159, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 146, - "src": "2697:1:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 157, - "name": "converter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 128, - "src": "2671:9:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - "id": 158, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "connectorTokens", - "nodeType": "MemberAccess", - "referencedDeclaration": 11811, - "src": "2671:25:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_contract$_IERC20Token_$20240_$", - "typeString": "function (uint256) view external returns (contract IERC20Token)" - } - }, - "id": 160, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2671:28:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2646:53:0" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 164, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 162, - "name": "connectorToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 156, - "src": "2709:14:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 163, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77, - "src": "2727:6:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2709:24:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 188, - "nodeType": "IfStatement", - "src": "2705:188:0", - "trueBody": { - "id": 187, - "nodeType": "Block", - "src": "2735:158:0", - "statements": [ - { - "assignments": [ - 168 - ], - "declarations": [ - { - "constant": false, - "id": 168, - "name": "path", - "nodeType": "VariableDeclaration", - "scope": 200, - "src": "2742:21:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 166, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2742:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 167, - "length": null, - "nodeType": "ArrayTypeName", - "src": "2742:9:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 173, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 170, - "name": "connectorToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 156, - "src": "2774:14:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 171, - "name": "_converterRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 79, - "src": "2790:18:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterRegistry_$11982", - "typeString": "contract IConverterRegistry" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_contract$_IConverterRegistry_$11982", - "typeString": "contract IConverterRegistry" - } - ], - "id": 169, - "name": "getPath", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 200, - "src": "2766:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_contract$_IConverterRegistry_$11982_$returns$_t_array$_t_address_$dyn_memory_ptr_$", - "typeString": "function (address,contract IConverterRegistry) view returns (address[] memory)" - } - }, - "id": 172, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2766:43:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2742:67:0" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 177, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 174, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 168, - "src": "2820:4:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 175, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2820:11:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 176, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2834:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "2820:15:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 186, - "nodeType": "IfStatement", - "src": "2816:70:0", - "trueBody": { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 179, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77, - "src": "2861:6:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 180, - "name": "anchors", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 96, - "src": "2869:7:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 182, - "indexExpression": { - "argumentTypes": null, - "id": 181, - "name": "n", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 117, - "src": "2877:1:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2869:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 183, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 168, - "src": "2881:4:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - ], - "id": 178, - "name": "getExtendedArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 479, - "src": "2844:16:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_address_$_t_address_$_t_array$_t_address_$dyn_memory_ptr_$returns$_t_array$_t_address_$dyn_memory_ptr_$", - "typeString": "function (address,address,address[] memory) pure returns (address[] memory)" - } - }, - "id": 184, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2844:42:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "functionReturnParameters": 84, - "id": 185, - "nodeType": "Return", - "src": "2837:49:0" - } - } - ] - } - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 151, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 149, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 146, - "src": "2610:1:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "id": 150, - "name": "connectorTokenCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 140, - "src": "2614:19:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2610:23:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 190, - "initializationExpression": { - "assignments": [ - 146 - ], - "declarations": [ - { - "constant": false, - "id": 146, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 200, - "src": "2595:9:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 145, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2595:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 148, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 147, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2607:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "2595:13:0" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 153, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "2635:3:0", - "subExpression": { - "argumentTypes": null, - "id": 152, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 146, - "src": "2635:1:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 154, - "nodeType": "ExpressionStatement", - "src": "2635:3:0" - }, - "nodeType": "ForStatement", - "src": "2590:308:0" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 123, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 120, - "name": "n", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 117, - "src": "2418:1:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 121, - "name": "anchors", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 96, - "src": "2422:7:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 122, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2422:14:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2418:18:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 192, - "initializationExpression": { - "assignments": [ - 117 - ], - "declarations": [ - { - "constant": false, - "id": 117, - "name": "n", - "nodeType": "VariableDeclaration", - "scope": 200, - "src": "2403:9:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 116, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2403:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 119, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 118, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2415:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "2403:13:0" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 125, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "2438:3:0", - "subExpression": { - "argumentTypes": null, - "id": 124, - "name": "n", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 117, - "src": "2438:1:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 126, - "nodeType": "ExpressionStatement", - "src": "2438:3:0" - }, - "nodeType": "ForStatement", - "src": "2398:504:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 196, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2927:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 195, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "2913:13:0", - "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_$", - "typeString": "function (uint256) pure returns (address[] memory)" - }, - "typeName": { - "baseType": { - "id": 193, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2917:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 194, - "length": null, - "nodeType": "ArrayTypeName", - "src": "2917:9:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - } - }, - "id": 197, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2913:16:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory", - "typeString": "address[] memory" - } - }, - "functionReturnParameters": 84, - "id": 198, - "nodeType": "Return", - "src": "2906:23:0" - } - ] - }, - "documentation": "@dev generates a conversion path between a given token and the anchor token\n\t * @param _token address of the token\n@param _converterRegistry address of the converter registry\n\t * @return a path from the input token to the anchor token", - "id": 200, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getPath", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 80, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 77, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 200, - "src": "2058:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 76, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2058:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 79, - "name": "_converterRegistry", - "nodeType": "VariableDeclaration", - "scope": 200, - "src": "2074:37:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterRegistry_$11982", - "typeString": "contract IConverterRegistry" - }, - "typeName": { - "contractScope": null, - "id": 78, - "name": "IConverterRegistry", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 11982, - "src": "2074:18:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterRegistry_$11982", - "typeString": "contract IConverterRegistry" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2057:55:0" - }, - "payable": false, - "returnParameters": { - "id": 84, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 83, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 200, - "src": "2135:9:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 81, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2135:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 82, - "length": null, - "nodeType": "ArrayTypeName", - "src": "2135:9:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2134:18:0" - }, - "scope": 523, - "src": "2041:892:0", - "stateMutability": "view", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 388, - "nodeType": "Block", - "src": "3259:712:0", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 220, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 215, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 212, - "name": "_sourcePath", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 203, - "src": "3267:11:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 213, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3267:18:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 214, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3288:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "3267:22:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 219, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 216, - "name": "_targetPath", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 206, - "src": "3293:11:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 217, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3293:18:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 218, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3314:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "3293:22:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "3267:48:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 381, - "nodeType": "IfStatement", - "src": "3263:677:0", - "trueBody": { - "id": 380, - "nodeType": "Block", - "src": "3317:623:0", - "statements": [ - { - "assignments": [ - 222 - ], - "declarations": [ - { - "constant": false, - "id": 222, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 389, - "src": "3322:9:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 221, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3322:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 225, - "initialValue": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 223, - "name": "_sourcePath", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 203, - "src": "3334:11:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 224, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3334:18:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3322:30:0" - }, - { - "assignments": [ - 227 - ], - "declarations": [ - { - "constant": false, - "id": 227, - "name": "j", - "nodeType": "VariableDeclaration", - "scope": 389, - "src": "3357:9:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 226, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3357:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 230, - "initialValue": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 228, - "name": "_targetPath", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 206, - "src": "3369:11:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 229, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3369:18:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3357:30:0" - }, - { - "body": { - "id": 256, - "nodeType": "Block", - "src": "3459:24:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 251, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "--", - "prefix": false, - "src": "3465:3:0", - "subExpression": { - "argumentTypes": null, - "id": 250, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 222, - "src": "3465:1:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 252, - "nodeType": "ExpressionStatement", - "src": "3465:3:0" - }, - { - "expression": { - "argumentTypes": null, - "id": 254, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "--", - "prefix": false, - "src": "3474:3:0", - "subExpression": { - "argumentTypes": null, - "id": 253, - "name": "j", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 227, - "src": "3474:1:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 255, - "nodeType": "ExpressionStatement", - "src": "3474:3:0" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 249, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 237, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 233, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 231, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 222, - "src": "3399:1:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 232, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3403:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "3399:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 236, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 234, - "name": "j", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 227, - "src": "3408:1:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 235, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3412:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "3408:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "3399:14:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 248, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 238, - "name": "_sourcePath", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 203, - "src": "3417:11:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 242, - "indexExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 241, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 239, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 222, - "src": "3429:1:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 240, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3433:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "3429:5:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3417:18:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 243, - "name": "_targetPath", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 206, - "src": "3439:11:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 247, - "indexExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 246, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 244, - "name": "j", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 227, - "src": "3451:1:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 245, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3455:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "3451:5:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3439:18:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3417:40:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "3399:58:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 257, - "nodeType": "WhileStatement", - "src": "3392:91:0" - }, - { - "assignments": [ - 261 - ], - "declarations": [ - { - "constant": false, - "id": 261, - "name": "path", - "nodeType": "VariableDeclaration", - "scope": 389, - "src": "3488:21:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 259, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3488:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 260, - "length": null, - "nodeType": "ArrayTypeName", - "src": "3488:9:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 271, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 269, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 267, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 265, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 222, - "src": "3526:1:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "id": 266, - "name": "j", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 227, - "src": "3530:1:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3526:5:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 268, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3534:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "3526:9:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 264, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "3512:13:0", - "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_$", - "typeString": "function (uint256) pure returns (address[] memory)" - }, - "typeName": { - "baseType": { - "id": 262, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3516:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 263, - "length": null, - "nodeType": "ArrayTypeName", - "src": "3516:9:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - } - }, - "id": 270, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3512:24:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory", - "typeString": "address[] memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3488:48:0" - }, - { - "body": { - "expression": { - "argumentTypes": null, - "id": 288, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 282, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 261, - "src": "3574:4:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 284, - "indexExpression": { - "argumentTypes": null, - "id": 283, - "name": "m", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 273, - "src": "3579:1:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "3574:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 285, - "name": "_sourcePath", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 203, - "src": "3584:11:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 287, - "indexExpression": { - "argumentTypes": null, - "id": 286, - "name": "m", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 273, - "src": "3596:1:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3584:14:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3574:24:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 289, - "nodeType": "ExpressionStatement", - "src": "3574:24:0" - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 278, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 276, - "name": "m", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 273, - "src": "3561:1:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "id": 277, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 222, - "src": "3566:1:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3561:6:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 290, - "initializationExpression": { - "assignments": [ - 273 - ], - "declarations": [ - { - "constant": false, - "id": 273, - "name": "m", - "nodeType": "VariableDeclaration", - "scope": 389, - "src": "3546:9:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 272, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3546:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 275, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 274, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3558:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "3546:13:0" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 280, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "3569:3:0", - "subExpression": { - "argumentTypes": null, - "id": 279, - "name": "m", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 273, - "src": "3569:1:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 281, - "nodeType": "ExpressionStatement", - "src": "3569:3:0" - }, - "nodeType": "ForStatement", - "src": "3541:57:0" - }, - { - "body": { - "expression": { - "argumentTypes": null, - "id": 312, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 301, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 261, - "src": "3635:4:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 306, - "indexExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 305, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 302, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 261, - "src": "3640:4:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 303, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3640:11:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "id": 304, - "name": "n", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 292, - "src": "3654:1:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3640:15:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "3635:21:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 307, - "name": "_targetPath", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 206, - "src": "3659:11:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 311, - "indexExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 310, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 308, - "name": "n", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 292, - "src": "3671:1:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 309, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3675:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "3671:5:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3659:18:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3635:42:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 313, - "nodeType": "ExpressionStatement", - "src": "3635:42:0" - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 297, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 295, - "name": "n", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 292, - "src": "3623:1:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 296, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3627:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "3623:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 314, - "initializationExpression": { - "assignments": [ - 292 - ], - "declarations": [ - { - "constant": false, - "id": 292, - "name": "n", - "nodeType": "VariableDeclaration", - "scope": 389, - "src": "3608:9:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 291, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3608:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 294, - "initialValue": { - "argumentTypes": null, - "id": 293, - "name": "j", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 227, - "src": "3620:1:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3608:13:0" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 299, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "--", - "prefix": false, - "src": "3630:3:0", - "subExpression": { - "argumentTypes": null, - "id": 298, - "name": "n", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 292, - "src": "3630:1:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 300, - "nodeType": "ExpressionStatement", - "src": "3630:3:0" - }, - "nodeType": "ForStatement", - "src": "3603:74:0" - }, - { - "assignments": [ - 316 - ], - "declarations": [ - { - "constant": false, - "id": 316, - "name": "length", - "nodeType": "VariableDeclaration", - "scope": 389, - "src": "3683:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 315, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3683:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 318, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 317, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3700:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "3683:18:0" - }, - { - "body": { - "id": 373, - "nodeType": "Block", - "src": "3751:143:0", - "statements": [ - { - "body": { - "id": 362, - "nodeType": "Block", - "src": "3816:43:0", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 356, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 350, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 261, - "src": "3827:4:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 352, - "indexExpression": { - "argumentTypes": null, - "id": 351, - "name": "p", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 320, - "src": "3832:1:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3827:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 353, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 261, - "src": "3838:4:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 355, - "indexExpression": { - "argumentTypes": null, - "id": 354, - "name": "q", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 332, - "src": "3843:1:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3838:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3827:18:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 361, - "nodeType": "IfStatement", - "src": "3823:29:0", - "trueBody": { - "expression": { - "argumentTypes": null, - "id": 359, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 357, - "name": "p", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 320, - "src": "3847:1:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 358, - "name": "q", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 332, - "src": "3851:1:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3847:5:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 360, - "nodeType": "ExpressionStatement", - "src": "3847:5:0" - } - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 345, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 337, - "name": "q", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 332, - "src": "3781:1:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 344, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 338, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 261, - "src": "3785:4:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 339, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3785:11:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 342, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 340, - "name": "p", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 320, - "src": "3800:1:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "%", - "rightExpression": { - "argumentTypes": null, - "hexValue": "32", - "id": 341, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3804:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "src": "3800:5:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 343, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "3799:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3785:21:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3781:25:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 363, - "initializationExpression": { - "assignments": [ - 332 - ], - "declarations": [ - { - "constant": false, - "id": 332, - "name": "q", - "nodeType": "VariableDeclaration", - "scope": 389, - "src": "3762:9:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 331, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3762:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 336, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 335, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 333, - "name": "p", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 320, - "src": "3774:1:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "hexValue": "32", - "id": 334, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3778:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "src": "3774:5:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3762:17:0" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 348, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 346, - "name": "q", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 332, - "src": "3808:1:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "32", - "id": 347, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3813:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "src": "3808:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 349, - "nodeType": "ExpressionStatement", - "src": "3808:6:0" - }, - "nodeType": "ForStatement", - "src": "3757:102:0" - }, - { - "expression": { - "argumentTypes": null, - "id": 371, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 364, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 261, - "src": "3864:4:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 367, - "indexExpression": { - "argumentTypes": null, - "id": 366, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "3869:8:0", - "subExpression": { - "argumentTypes": null, - "id": 365, - "name": "length", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 316, - "src": "3869:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "3864:14:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 368, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 261, - "src": "3881:4:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 370, - "indexExpression": { - "argumentTypes": null, - "id": 369, - "name": "p", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 320, - "src": "3886:1:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3881:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3864:24:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 372, - "nodeType": "ExpressionStatement", - "src": "3864:24:0" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 326, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 323, - "name": "p", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 320, - "src": "3726:1:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 324, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 261, - "src": "3730:4:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 325, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3730:11:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3726:15:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 374, - "initializationExpression": { - "assignments": [ - 320 - ], - "declarations": [ - { - "constant": false, - "id": 320, - "name": "p", - "nodeType": "VariableDeclaration", - "scope": 389, - "src": "3711:9:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 319, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3711:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 322, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 321, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3723:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "3711:13:0" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 329, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 327, - "name": "p", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 320, - "src": "3743:1:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 328, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3748:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "3743:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 330, - "nodeType": "ExpressionStatement", - "src": "3743:6:0" - }, - "nodeType": "ForStatement", - "src": "3706:188:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 376, - "name": "path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 261, - "src": "3922:4:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - { - "argumentTypes": null, - "id": 377, - "name": "length", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 316, - "src": "3928:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 375, - "name": "getPartialArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 522, - "src": "3906:15:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_array$_t_address_$dyn_memory_ptr_$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$", - "typeString": "function (address[] memory,uint256) pure returns (address[] memory)" - } - }, - "id": 378, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3906:29:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "functionReturnParameters": 211, - "id": 379, - "nodeType": "Return", - "src": "3899:36:0" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 385, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3965:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 384, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "3951:13:0", - "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_$", - "typeString": "function (uint256) pure returns (address[] memory)" - }, - "typeName": { - "baseType": { - "id": 382, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3955:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 383, - "length": null, - "nodeType": "ArrayTypeName", - "src": "3955:9:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - } - }, - "id": 386, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3951:16:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory", - "typeString": "address[] memory" - } - }, - "functionReturnParameters": 211, - "id": 387, - "nodeType": "Return", - "src": "3944:23:0" - } - ] - }, - "documentation": "@dev merges two paths with a common suffix into one\n\t * @param _sourcePath address of the source path\n@param _targetPath address of the target path\n\t * @return merged path", - "id": 389, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getShortestPath", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 207, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 203, - "name": "_sourcePath", - "nodeType": "VariableDeclaration", - "scope": 389, - "src": "3159:28:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 201, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3159:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 202, - "length": null, - "nodeType": "ArrayTypeName", - "src": "3159:9:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 206, - "name": "_targetPath", - "nodeType": "VariableDeclaration", - "scope": 389, - "src": "3189:28:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 204, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3189:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 205, - "length": null, - "nodeType": "ArrayTypeName", - "src": "3189:9:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3158:60:0" - }, - "payable": false, - "returnParameters": { - "id": 211, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 210, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 389, - "src": "3241:9:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 208, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3241:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 209, - "length": null, - "nodeType": "ArrayTypeName", - "src": "3241:9:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3240:18:0" - }, - "scope": 523, - "src": "3134:837:0", - "stateMutability": "pure", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 415, - "nodeType": "Block", - "src": "4174:85:0", - "statements": [ - { - "assignments": [ - 400 - ], - "declarations": [ - { - "constant": false, - "id": 400, - "name": "array", - "nodeType": "VariableDeclaration", - "scope": 416, - "src": "4178:22:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 398, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4178:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 399, - "length": null, - "nodeType": "ArrayTypeName", - "src": "4178:9:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 406, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 404, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4217:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "id": 403, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "4203:13:0", - "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_$", - "typeString": "function (uint256) pure returns (address[] memory)" - }, - "typeName": { - "baseType": { - "id": 401, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4207:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 402, - "length": null, - "nodeType": "ArrayTypeName", - "src": "4207:9:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - } - }, - "id": 405, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4203:16:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory", - "typeString": "address[] memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4178:41:0" - }, - { - "expression": { - "argumentTypes": null, - "id": 411, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 407, - "name": "array", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 400, - "src": "4223:5:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 409, - "indexExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 408, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4229:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4223:8:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 410, - "name": "_item", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 391, - "src": "4234:5:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "4223:16:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 412, - "nodeType": "ExpressionStatement", - "src": "4223:16:0" - }, - { - "expression": { - "argumentTypes": null, - "id": 413, - "name": "array", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 400, - "src": "4250:5:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "functionReturnParameters": 396, - "id": 414, - "nodeType": "Return", - "src": "4243:12:0" - } - ] - }, - "documentation": "@dev creates a new array containing a single item\n\t * @param _item item\n\t * @return initial array", - "id": 416, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getInitialArray", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 392, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 391, - "name": "_item", - "nodeType": "VariableDeclaration", - "scope": 416, - "src": "4119:13:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 390, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4119:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4118:15:0" - }, - "payable": false, - "returnParameters": { - "id": 396, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 395, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 416, - "src": "4156:9:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 393, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4156:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 394, - "length": null, - "nodeType": "ArrayTypeName", - "src": "4156:9:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4155:18:0" - }, - "scope": 523, - "src": "4094:165:0", - "stateMutability": "pure", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 478, - "nodeType": "Block", - "src": "4587:195:0", - "statements": [ - { - "assignments": [ - 432 - ], - "declarations": [ - { - "constant": false, - "id": 432, - "name": "array", - "nodeType": "VariableDeclaration", - "scope": 479, - "src": "4591:22:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 430, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4591:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 431, - "length": null, - "nodeType": "ArrayTypeName", - "src": "4591:9:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 441, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 439, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "hexValue": "32", - "id": 436, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4630:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 437, - "name": "_array", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 423, - "src": "4634:6:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 438, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4634:13:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4630:17:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 435, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "4616:13:0", - "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_$", - "typeString": "function (uint256) pure returns (address[] memory)" - }, - "typeName": { - "baseType": { - "id": 433, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4620:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 434, - "length": null, - "nodeType": "ArrayTypeName", - "src": "4620:9:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - } - }, - "id": 440, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4616:32:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory", - "typeString": "address[] memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4591:57:0" - }, - { - "expression": { - "argumentTypes": null, - "id": 446, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 442, - "name": "array", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 432, - "src": "4652:5:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 444, - "indexExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 443, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4658:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4652:8:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 445, - "name": "_item0", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 418, - "src": "4663:6:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "4652:17:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 447, - "nodeType": "ExpressionStatement", - "src": "4652:17:0" - }, - { - "expression": { - "argumentTypes": null, - "id": 452, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 448, - "name": "array", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 432, - "src": "4673:5:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 450, - "indexExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 449, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4679:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4673:8:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 451, - "name": "_item1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 420, - "src": "4684:6:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "4673:17:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 453, - "nodeType": "ExpressionStatement", - "src": "4673:17:0" - }, - { - "body": { - "expression": { - "argumentTypes": null, - "id": 473, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 465, - "name": "array", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 432, - "src": "4738:5:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 469, - "indexExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 468, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "hexValue": "32", - "id": 466, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4744:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "id": 467, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 455, - "src": "4748:1:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4744:5:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4738:12:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 470, - "name": "_array", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 423, - "src": "4753:6:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 472, - "indexExpression": { - "argumentTypes": null, - "id": 471, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 455, - "src": "4760:1:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4753:9:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "4738:24:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 474, - "nodeType": "ExpressionStatement", - "src": "4738:24:0" - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 461, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 458, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 455, - "src": "4714:1:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 459, - "name": "_array", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 423, - "src": "4718:6:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 460, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4718:13:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4714:17:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 475, - "initializationExpression": { - "assignments": [ - 455 - ], - "declarations": [ - { - "constant": false, - "id": 455, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 479, - "src": "4699:9:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 454, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4699:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 457, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 456, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4711:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "4699:13:0" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 463, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "4733:3:0", - "subExpression": { - "argumentTypes": null, - "id": 462, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 455, - "src": "4733:1:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 464, - "nodeType": "ExpressionStatement", - "src": "4733:3:0" - }, - "nodeType": "ForStatement", - "src": "4694:68:0" - }, - { - "expression": { - "argumentTypes": null, - "id": 476, - "name": "array", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 432, - "src": "4773:5:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "functionReturnParameters": 428, - "id": 477, - "nodeType": "Return", - "src": "4766:12:0" - } - ] - }, - "documentation": "@dev prepends two items to the beginning of an array\n\t * @param _item0 first item\n@param _item1 second item\n@param _array initial array\n\t * @return extended array", - "id": 479, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getExtendedArray", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 424, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 418, - "name": "_item0", - "nodeType": "VariableDeclaration", - "scope": 479, - "src": "4484:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 417, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4484:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 420, - "name": "_item1", - "nodeType": "VariableDeclaration", - "scope": 479, - "src": "4502:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 419, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4502:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 423, - "name": "_array", - "nodeType": "VariableDeclaration", - "scope": 479, - "src": "4520:23:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 421, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4520:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 422, - "length": null, - "nodeType": "ArrayTypeName", - "src": "4520:9:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4480:66:0" - }, - "payable": false, - "returnParameters": { - "id": 428, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 427, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 479, - "src": "4569:9:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 425, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4569:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 426, - "length": null, - "nodeType": "ArrayTypeName", - "src": "4569:9:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4568:18:0" - }, - "scope": 523, - "src": "4455:327:0", - "stateMutability": "pure", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 521, - "nodeType": "Block", - "src": "5045:133:0", - "statements": [ - { - "assignments": [ - 493 - ], - "declarations": [ - { - "constant": false, - "id": 493, - "name": "array", - "nodeType": "VariableDeclaration", - "scope": 522, - "src": "5049:22:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 491, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5049:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 492, - "length": null, - "nodeType": "ArrayTypeName", - "src": "5049:9:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 499, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 497, - "name": "_length", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 484, - "src": "5088:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 496, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "5074:13:0", - "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_$", - "typeString": "function (uint256) pure returns (address[] memory)" - }, - "typeName": { - "baseType": { - "id": 494, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5078:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 495, - "length": null, - "nodeType": "ArrayTypeName", - "src": "5078:9:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - } - }, - "id": 498, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5074:22:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory", - "typeString": "address[] memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5049:47:0" - }, - { - "body": { - "expression": { - "argumentTypes": null, - "id": 516, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 510, - "name": "array", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 493, - "src": "5138:5:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 512, - "indexExpression": { - "argumentTypes": null, - "id": 511, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 501, - "src": "5144:1:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5138:8:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 513, - "name": "_array", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 482, - "src": "5149:6:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 515, - "indexExpression": { - "argumentTypes": null, - "id": 514, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 501, - "src": "5156:1:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5149:9:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "5138:20:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 517, - "nodeType": "ExpressionStatement", - "src": "5138:20:0" - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 506, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 504, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 501, - "src": "5120:1:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "id": 505, - "name": "_length", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 484, - "src": "5124:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5120:11:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 518, - "initializationExpression": { - "assignments": [ - 501 - ], - "declarations": [ - { - "constant": false, - "id": 501, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 522, - "src": "5105:9:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 500, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5105:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 503, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 502, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5117:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "5105:13:0" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 508, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "5133:3:0", - "subExpression": { - "argumentTypes": null, - "id": 507, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 501, - "src": "5133:1:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 509, - "nodeType": "ExpressionStatement", - "src": "5133:3:0" - }, - "nodeType": "ForStatement", - "src": "5100:58:0" - }, - { - "expression": { - "argumentTypes": null, - "id": 519, - "name": "array", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 493, - "src": "5169:5:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "functionReturnParameters": 489, - "id": 520, - "nodeType": "Return", - "src": "5162:12:0" - } - ] - }, - "documentation": "@dev extracts the prefix of a given array\n\t * @param _array given array\n@param _length prefix length\n\t * @return partial array", - "id": 522, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getPartialArray", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 485, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 482, - "name": "_array", - "nodeType": "VariableDeclaration", - "scope": 522, - "src": "4963:23:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 480, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4963:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 481, - "length": null, - "nodeType": "ArrayTypeName", - "src": "4963:9:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 484, - "name": "_length", - "nodeType": "VariableDeclaration", - "scope": 522, - "src": "4988:15:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 483, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4988:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4962:42:0" - }, - "payable": false, - "returnParameters": { - "id": 489, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 488, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 522, - "src": "5027:9:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 486, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5027:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 487, - "length": null, - "nodeType": "ArrayTypeName", - "src": "5027:9:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5026:18:0" - }, - "scope": 523, - "src": "4938:240:0", - "stateMutability": "pure", - "superFunction": null, - "visibility": "private" - } - ], - "scope": 524, - "src": "558:4622:0" - } - ], - "src": "0:5181:0" - }, - "id": 0 - }, - "solidity/contracts/IConversionPathFinder.sol": { - "ast": { - "absolutePath": "solidity/contracts/IConversionPathFinder.sol", - "exportedSymbols": { - "IConversionPathFinder": [ - 537 - ] - }, - "id": 538, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 525, - "literals": [ - "solidity", - "0.4", - ".26" - ], - "nodeType": "PragmaDirective", - "src": "0:23:1" - }, - { - "absolutePath": "solidity/contracts/token/interfaces/IERC20Token.sol", - "file": "./token/interfaces/IERC20Token.sol", - "id": 526, - "nodeType": "ImportDirective", - "scope": 538, - "sourceUnit": 20241, - "src": "24:44:1", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": false, - "id": 537, - "linearizedBaseContracts": [ - 537 - ], - "name": "IConversionPathFinder", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": null, - "id": 536, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "findPath", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 531, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 528, - "name": "_sourceToken", - "nodeType": "VariableDeclaration", - "scope": 536, - "src": "165:20:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 527, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "165:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 530, - "name": "_targetToken", - "nodeType": "VariableDeclaration", - "scope": 536, - "src": "187:20:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 529, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "187:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "164:44:1" - }, - "payable": false, - "returnParameters": { - "id": 535, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 534, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 536, - "src": "230:9:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 532, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "230:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 533, - "length": null, - "nodeType": "ArrayTypeName", - "src": "230:9:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "229:18:1" - }, - "scope": 537, - "src": "147:101:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 538, - "src": "113:137:1" - } - ], - "src": "0:251:1" - }, - "id": 1 - }, - "solidity/contracts/ISovrynSwapNetwork.sol": { - "ast": { - "absolutePath": "solidity/contracts/ISovrynSwapNetwork.sol", - "exportedSymbols": { - "ISovrynSwapNetwork": [ - 661 - ] - }, - "id": 662, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 539, - "literals": [ - "solidity", - "0.4", - ".26" - ], - "nodeType": "PragmaDirective", - "src": "0:23:2" - }, - { - "absolutePath": "solidity/contracts/token/interfaces/IERC20Token.sol", - "file": "./token/interfaces/IERC20Token.sol", - "id": 540, - "nodeType": "ImportDirective", - "scope": 662, - "sourceUnit": 20241, - "src": "24:44:2", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": false, - "id": 661, - "linearizedBaseContracts": [ - 661 - ], - "name": "ISovrynSwapNetwork", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": null, - "id": 556, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "convert2", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 552, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 543, - "name": "_path", - "nodeType": "VariableDeclaration", - "scope": 556, - "src": "161:19:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", - "typeString": "contract IERC20Token[]" - }, - "typeName": { - "baseType": { - "contractScope": null, - "id": 541, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "161:11:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "id": 542, - "length": null, - "nodeType": "ArrayTypeName", - "src": "161:13:2", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_storage_ptr", - "typeString": "contract IERC20Token[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 545, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 556, - "src": "184:15:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 544, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "184:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 547, - "name": "_minReturn", - "nodeType": "VariableDeclaration", - "scope": 556, - "src": "203:18:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 546, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "203:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 549, - "name": "_affiliateAccount", - "nodeType": "VariableDeclaration", - "scope": 556, - "src": "225:25:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 548, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "225:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 551, - "name": "_affiliateFee", - "nodeType": "VariableDeclaration", - "scope": 556, - "src": "254:21:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 550, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "254:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "157:121:2" - }, - "payable": true, - "returnParameters": { - "id": 555, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 554, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 556, - "src": "303:7:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 553, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "303:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "302:9:2" - }, - "scope": 661, - "src": "140:172:2", - "stateMutability": "payable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 572, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "claimAndConvert2", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 568, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 559, - "name": "_path", - "nodeType": "VariableDeclaration", - "scope": 572, - "src": "344:19:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", - "typeString": "contract IERC20Token[]" - }, - "typeName": { - "baseType": { - "contractScope": null, - "id": 557, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "344:11:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "id": 558, - "length": null, - "nodeType": "ArrayTypeName", - "src": "344:13:2", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_storage_ptr", - "typeString": "contract IERC20Token[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 561, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 572, - "src": "367:15:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 560, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "367:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 563, - "name": "_minReturn", - "nodeType": "VariableDeclaration", - "scope": 572, - "src": "386:18:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 562, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "386:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 565, - "name": "_affiliateAccount", - "nodeType": "VariableDeclaration", - "scope": 572, - "src": "408:25:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 564, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "408:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 567, - "name": "_affiliateFee", - "nodeType": "VariableDeclaration", - "scope": 572, - "src": "437:21:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 566, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "437:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "340:121:2" - }, - "payable": false, - "returnParameters": { - "id": 571, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 570, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 572, - "src": "478:7:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 569, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "478:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "477:9:2" - }, - "scope": 661, - "src": "315:172:2", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 590, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "convertFor2", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 586, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 575, - "name": "_path", - "nodeType": "VariableDeclaration", - "scope": 590, - "src": "514:19:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", - "typeString": "contract IERC20Token[]" - }, - "typeName": { - "baseType": { - "contractScope": null, - "id": 573, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "514:11:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "id": 574, - "length": null, - "nodeType": "ArrayTypeName", - "src": "514:13:2", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_storage_ptr", - "typeString": "contract IERC20Token[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 577, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 590, - "src": "537:15:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 576, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "537:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 579, - "name": "_minReturn", - "nodeType": "VariableDeclaration", - "scope": 590, - "src": "556:18:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 578, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "556:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 581, - "name": "_for", - "nodeType": "VariableDeclaration", - "scope": 590, - "src": "578:12:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 580, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "578:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 583, - "name": "_affiliateAccount", - "nodeType": "VariableDeclaration", - "scope": 590, - "src": "594:25:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 582, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "594:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 585, - "name": "_affiliateFee", - "nodeType": "VariableDeclaration", - "scope": 590, - "src": "623:21:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 584, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "623:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "510:137:2" - }, - "payable": true, - "returnParameters": { - "id": 589, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 588, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 590, - "src": "672:7:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 587, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "672:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "671:9:2" - }, - "scope": 661, - "src": "490:191:2", - "stateMutability": "payable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 608, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "claimAndConvertFor2", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 604, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 593, - "name": "_path", - "nodeType": "VariableDeclaration", - "scope": 608, - "src": "716:19:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", - "typeString": "contract IERC20Token[]" - }, - "typeName": { - "baseType": { - "contractScope": null, - "id": 591, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "716:11:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "id": 592, - "length": null, - "nodeType": "ArrayTypeName", - "src": "716:13:2", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_storage_ptr", - "typeString": "contract IERC20Token[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 595, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 608, - "src": "739:15:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 594, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "739:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 597, - "name": "_minReturn", - "nodeType": "VariableDeclaration", - "scope": 608, - "src": "758:18:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 596, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "758:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 599, - "name": "_for", - "nodeType": "VariableDeclaration", - "scope": 608, - "src": "780:12:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 598, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "780:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 601, - "name": "_affiliateAccount", - "nodeType": "VariableDeclaration", - "scope": 608, - "src": "796:25:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 600, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "796:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 603, - "name": "_affiliateFee", - "nodeType": "VariableDeclaration", - "scope": 608, - "src": "825:21:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 602, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "825:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "712:137:2" - }, - "payable": false, - "returnParameters": { - "id": 607, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 606, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 608, - "src": "866:7:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 605, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "866:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "865:9:2" - }, - "scope": 661, - "src": "684:191:2", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 620, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "convert", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 616, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 611, - "name": "_path", - "nodeType": "VariableDeclaration", - "scope": 620, - "src": "937:19:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", - "typeString": "contract IERC20Token[]" - }, - "typeName": { - "baseType": { - "contractScope": null, - "id": 609, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "937:11:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "id": 610, - "length": null, - "nodeType": "ArrayTypeName", - "src": "937:13:2", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_storage_ptr", - "typeString": "contract IERC20Token[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 613, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 620, - "src": "960:15:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 612, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "960:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 615, - "name": "_minReturn", - "nodeType": "VariableDeclaration", - "scope": 620, - "src": "979:18:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 614, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "979:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "933:67:2" - }, - "payable": true, - "returnParameters": { - "id": 619, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 618, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 620, - "src": "1025:7:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 617, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1025:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1024:9:2" - }, - "scope": 661, - "src": "917:117:2", - "stateMutability": "payable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 632, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "claimAndConvert", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 628, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 623, - "name": "_path", - "nodeType": "VariableDeclaration", - "scope": 632, - "src": "1104:19:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", - "typeString": "contract IERC20Token[]" - }, - "typeName": { - "baseType": { - "contractScope": null, - "id": 621, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "1104:11:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "id": 622, - "length": null, - "nodeType": "ArrayTypeName", - "src": "1104:13:2", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_storage_ptr", - "typeString": "contract IERC20Token[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 625, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 632, - "src": "1127:15:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 624, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1127:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 627, - "name": "_minReturn", - "nodeType": "VariableDeclaration", - "scope": 632, - "src": "1146:18:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 626, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1146:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1100:67:2" - }, - "payable": false, - "returnParameters": { - "id": 631, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 630, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 632, - "src": "1184:7:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 629, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1184:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1183:9:2" - }, - "scope": 661, - "src": "1076:117:2", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 646, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "convertFor", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 642, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 635, - "name": "_path", - "nodeType": "VariableDeclaration", - "scope": 646, - "src": "1258:19:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", - "typeString": "contract IERC20Token[]" - }, - "typeName": { - "baseType": { - "contractScope": null, - "id": 633, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "1258:11:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "id": 634, - "length": null, - "nodeType": "ArrayTypeName", - "src": "1258:13:2", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_storage_ptr", - "typeString": "contract IERC20Token[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 637, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 646, - "src": "1281:15:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 636, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1281:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 639, - "name": "_minReturn", - "nodeType": "VariableDeclaration", - "scope": 646, - "src": "1300:18:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 638, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1300:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 641, - "name": "_for", - "nodeType": "VariableDeclaration", - "scope": 646, - "src": "1322:12:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 640, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1322:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1254:83:2" - }, - "payable": true, - "returnParameters": { - "id": 645, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 644, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 646, - "src": "1362:7:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 643, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1362:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1361:9:2" - }, - "scope": 661, - "src": "1235:136:2", - "stateMutability": "payable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 660, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "claimAndConvertFor", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 656, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 649, - "name": "_path", - "nodeType": "VariableDeclaration", - "scope": 660, - "src": "1444:19:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", - "typeString": "contract IERC20Token[]" - }, - "typeName": { - "baseType": { - "contractScope": null, - "id": 647, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "1444:11:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "id": 648, - "length": null, - "nodeType": "ArrayTypeName", - "src": "1444:13:2", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_storage_ptr", - "typeString": "contract IERC20Token[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 651, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 660, - "src": "1467:15:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 650, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1467:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 653, - "name": "_minReturn", - "nodeType": "VariableDeclaration", - "scope": 660, - "src": "1486:18:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 652, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1486:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 655, - "name": "_for", - "nodeType": "VariableDeclaration", - "scope": 660, - "src": "1508:12:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 654, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1508:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1440:83:2" - }, - "payable": false, - "returnParameters": { - "id": 659, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 658, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 660, - "src": "1540:7:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 657, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1540:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1539:9:2" - }, - "scope": 661, - "src": "1413:136:2", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 662, - "src": "109:1442:2" - } - ], - "src": "0:1552:2" - }, - "id": 2 - }, - "solidity/contracts/SovrynSwapNetwork.sol": { - "ast": { - "absolutePath": "solidity/contracts/SovrynSwapNetwork.sol", - "exportedSymbols": { - "ILegacyConverter": [ - 689 - ], - "SovrynSwapNetwork": [ - 2459 - ] - }, - "id": 2460, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 663, - "literals": [ - "solidity", - "0.4", - ".26" - ], - "nodeType": "PragmaDirective", - "src": "0:23:3" - }, - { - "absolutePath": "solidity/contracts/ISovrynSwapNetwork.sol", - "file": "./ISovrynSwapNetwork.sol", - "id": 664, - "nodeType": "ImportDirective", - "scope": 2460, - "sourceUnit": 662, - "src": "24:34:3", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "solidity/contracts/IConversionPathFinder.sol", - "file": "./IConversionPathFinder.sol", - "id": 665, - "nodeType": "ImportDirective", - "scope": 2460, - "sourceUnit": 538, - "src": "59:37:3", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "solidity/contracts/converter/interfaces/IConverter.sol", - "file": "./converter/interfaces/IConverter.sol", - "id": 666, - "nodeType": "ImportDirective", - "scope": 2460, - "sourceUnit": 11818, - "src": "97:47:3", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "solidity/contracts/converter/interfaces/IConverterAnchor.sol", - "file": "./converter/interfaces/IConverterAnchor.sol", - "id": 667, - "nodeType": "ImportDirective", - "scope": 2460, - "sourceUnit": 11827, - "src": "145:53:3", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "solidity/contracts/converter/interfaces/ISovrynSwapFormula.sol", - "file": "./converter/interfaces/ISovrynSwapFormula.sol", - "id": 668, - "nodeType": "ImportDirective", - "scope": 2460, - "sourceUnit": 12241, - "src": "199:55:3", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "solidity/contracts/utility/ContractRegistryClient.sol", - "file": "./utility/ContractRegistryClient.sol", - "id": 669, - "nodeType": "ImportDirective", - "scope": 2460, - "sourceUnit": 20933, - "src": "255:46:3", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "solidity/contracts/utility/ReentrancyGuard.sol", - "file": "./utility/ReentrancyGuard.sol", - "id": 670, - "nodeType": "ImportDirective", - "scope": 2460, - "sourceUnit": 21711, - "src": "302:39:3", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "solidity/contracts/utility/TokenHolder.sol", - "file": "./utility/TokenHolder.sol", - "id": 671, - "nodeType": "ImportDirective", - "scope": 2460, - "sourceUnit": 21977, - "src": "342:35:3", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "solidity/contracts/utility/SafeMath.sol", - "file": "./utility/SafeMath.sol", - "id": 672, - "nodeType": "ImportDirective", - "scope": 2460, - "sourceUnit": 21818, - "src": "378:32:3", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "solidity/contracts/token/interfaces/IEtherToken.sol", - "file": "./token/interfaces/IEtherToken.sol", - "id": 673, - "nodeType": "ImportDirective", - "scope": 2460, - "sourceUnit": 20267, - "src": "411:44:3", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "solidity/contracts/token/interfaces/ISmartToken.sol", - "file": "./token/interfaces/ISmartToken.sol", - "id": 674, - "nodeType": "ImportDirective", - "scope": 2460, - "sourceUnit": 20296, - "src": "456:44:3", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "solidity/contracts/sovrynswapx/interfaces/ISovrynSwapX.sol", - "file": "./sovrynswapx/interfaces/ISovrynSwapX.sol", - "id": 675, - "nodeType": "ImportDirective", - "scope": 2460, - "sourceUnit": 19467, - "src": "501:51:3", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": false, - "id": 689, - "linearizedBaseContracts": [ - 689 - ], - "name": "ILegacyConverter", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": null, - "id": 688, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "change", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 684, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 677, - "name": "_sourceToken", - "nodeType": "VariableDeclaration", - "scope": 688, - "src": "662:24:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - "typeName": { - "contractScope": null, - "id": 676, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "662:11:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 679, - "name": "_targetToken", - "nodeType": "VariableDeclaration", - "scope": 688, - "src": "690:24:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - "typeName": { - "contractScope": null, - "id": 678, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "690:11:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 681, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 688, - "src": "718:15:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 680, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "718:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 683, - "name": "_minReturn", - "nodeType": "VariableDeclaration", - "scope": 688, - "src": "737:18:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 682, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "737:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "658:100:3" - }, - "payable": false, - "returnParameters": { - "id": 687, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 686, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 688, - "src": "775:7:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 685, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "775:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "774:9:3" - }, - "scope": 689, - "src": "643:141:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 2460, - "src": "614:172:3" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 690, - "name": "ISovrynSwapNetwork", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 661, - "src": "1949:18:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISovrynSwapNetwork_$661", - "typeString": "contract ISovrynSwapNetwork" - } - }, - "id": 691, - "nodeType": "InheritanceSpecifier", - "src": "1949:18:3" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 692, - "name": "TokenHolder", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 21976, - "src": "1969:11:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_TokenHolder_$21976", - "typeString": "contract TokenHolder" - } - }, - "id": 693, - "nodeType": "InheritanceSpecifier", - "src": "1969:11:3" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 694, - "name": "ContractRegistryClient", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20932, - "src": "1982:22:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ContractRegistryClient_$20932", - "typeString": "contract ContractRegistryClient" - } - }, - "id": 695, - "nodeType": "InheritanceSpecifier", - "src": "1982:22:3" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 696, - "name": "ReentrancyGuard", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 21710, - "src": "2006:15:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ReentrancyGuard_$21710", - "typeString": "contract ReentrancyGuard" - } - }, - "id": 697, - "nodeType": "InheritanceSpecifier", - "src": "2006:15:3" - } - ], - "contractDependencies": [ - 661, - 20932, - 21324, - 21710, - 21933, - 21976, - 22052, - 22247, - 22313 - ], - "contractKind": "contract", - "documentation": "@dev The SovrynSwapNetwork contract is the main entry point for SovrynSwap token conversions.\nIt also allows for the conversion of any token in the SovrynSwap Network to any other token in a single\ntransaction by providing a conversion path.\n * A note on Conversion Path: Conversion path is a data structure that is used when converting a token\nto another token in the SovrynSwap Network, when the conversion cannot necessarily be done by a single\nconverter and might require multiple 'hops'.\nThe path defines which converters should be used and what kind of conversion should be done in each step.\n * The path format doesn't include complex structure; instead, it is represented by a single array\nin which each 'hop' is represented by a 2-tuple - converter anchor & target token.\nIn addition, the first element is always the source token.\nThe converter anchor is only used as a pointer to a converter (since converter addresses are more\nlikely to change as opposed to anchor addresses).\n * Format:\n[source token, converter anchor, target token, converter anchor, target token...]", - "fullyImplemented": true, - "id": 2459, - "linearizedBaseContracts": [ - 2459, - 21710, - 20932, - 21976, - 22052, - 21324, - 21933, - 22313, - 22247, - 661 - ], - "name": "SovrynSwapNetwork", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 700, - "libraryName": { - "contractScope": null, - "id": 698, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 21817, - "src": "2031:8:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$21817", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "2025:27:3", - "typeName": { - "id": 699, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2044:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "constant": true, - "id": 703, - "name": "CONVERSION_FEE_RESOLUTION", - "nodeType": "VariableDeclaration", - "scope": 2459, - "src": "2055:60:3", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 701, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2055:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "31303030303030", - "id": 702, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2108:7:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1000000_by_1", - "typeString": "int_const 1000000" - }, - "value": "1000000" - }, - "visibility": "private" - }, - { - "constant": true, - "id": 706, - "name": "AFFILIATE_FEE_RESOLUTION", - "nodeType": "VariableDeclaration", - "scope": 2459, - "src": "2118:59:3", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 704, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2118:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "31303030303030", - "id": 705, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2170:7:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1000000_by_1", - "typeString": "int_const 1000000" - }, - "value": "1000000" - }, - "visibility": "private" - }, - { - "constant": true, - "id": 709, - "name": "ETH_RESERVE_ADDRESS", - "nodeType": "VariableDeclaration", - "scope": 2459, - "src": "2180:89:3", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 707, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2180:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "307845656565654565656545654565654565456545656545454565656565456565656565656545456545", - "id": 708, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2227:42:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "value": "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE" - }, - "visibility": "private" - }, - { - "canonicalName": "SovrynSwapNetwork.ConversionStep", - "id": 724, - "members": [ - { - "constant": false, - "id": 711, - "name": "converter", - "nodeType": "VariableDeclaration", - "scope": 724, - "src": "2299:20:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - }, - "typeName": { - "contractScope": null, - "id": 710, - "name": "IConverter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 11817, - "src": "2299:10:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 713, - "name": "anchor", - "nodeType": "VariableDeclaration", - "scope": 724, - "src": "2323:23:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - }, - "typeName": { - "contractScope": null, - "id": 712, - "name": "IConverterAnchor", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 11826, - "src": "2323:16:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 715, - "name": "sourceToken", - "nodeType": "VariableDeclaration", - "scope": 724, - "src": "2350:23:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - "typeName": { - "contractScope": null, - "id": 714, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "2350:11:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 717, - "name": "targetToken", - "nodeType": "VariableDeclaration", - "scope": 724, - "src": "2377:23:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - "typeName": { - "contractScope": null, - "id": 716, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "2377:11:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 719, - "name": "beneficiary", - "nodeType": "VariableDeclaration", - "scope": 724, - "src": "2404:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 718, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2404:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 721, - "name": "isV28OrHigherConverter", - "nodeType": "VariableDeclaration", - "scope": 724, - "src": "2427:27:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 720, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2427:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 723, - "name": "processAffiliateFee", - "nodeType": "VariableDeclaration", - "scope": 724, - "src": "2458:24:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 722, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2458:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "name": "ConversionStep", - "nodeType": "StructDefinition", - "scope": 2459, - "src": "2273:213:3", - "visibility": "public" - }, - { - "constant": false, - "id": 727, - "name": "maxAffiliateFee", - "nodeType": "VariableDeclaration", - "scope": 2459, - "src": "2489:38:3", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 725, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2489:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "3330303030", - "id": 726, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2522:5:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_30000_by_1", - "typeString": "int_const 30000" - }, - "value": "30000" - }, - "visibility": "public" - }, - { - "constant": false, - "id": 731, - "name": "etherTokens", - "nodeType": "VariableDeclaration", - "scope": 2459, - "src": "2556:43:3", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - }, - "typeName": { - "id": 730, - "keyType": { - "id": 728, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2564:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "2556:24:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - }, - "valueType": { - "id": 729, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2575:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "anonymous": false, - "documentation": "@dev triggered when a conversion between two tokens occurs\n\t * @param _smartToken anchor governed by the converter\n@param _fromToken source ERC20 token\n@param _toToken target ERC20 token\n@param _fromAmount amount converted, in the source token\n@param _toAmount amount returned, minus conversion fee\n@param _trader wallet that initiated the trade", - "id": 745, - "name": "Conversion", - "nodeType": "EventDefinition", - "parameters": { - "id": 744, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 733, - "indexed": true, - "name": "_smartToken", - "nodeType": "VariableDeclaration", - "scope": 745, - "src": "3061:27:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 732, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3061:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 735, - "indexed": true, - "name": "_fromToken", - "nodeType": "VariableDeclaration", - "scope": 745, - "src": "3092:26:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 734, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3092:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 737, - "indexed": true, - "name": "_toToken", - "nodeType": "VariableDeclaration", - "scope": 745, - "src": "3122:24:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 736, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3122:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 739, - "indexed": false, - "name": "_fromAmount", - "nodeType": "VariableDeclaration", - "scope": 745, - "src": "3150:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 738, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3150:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 741, - "indexed": false, - "name": "_toAmount", - "nodeType": "VariableDeclaration", - "scope": 745, - "src": "3173:17:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 740, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3173:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 743, - "indexed": false, - "name": "_trader", - "nodeType": "VariableDeclaration", - "scope": 745, - "src": "3194:15:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 742, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3194:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3057:155:3" - }, - "src": "3041:172:3" - }, - { - "body": { - "id": 759, - "nodeType": "Block", - "src": "3430:47:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 757, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 753, - "name": "etherTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 731, - "src": "3434:11:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 755, - "indexExpression": { - "argumentTypes": null, - "id": 754, - "name": "ETH_RESERVE_ADDRESS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 709, - "src": "3446:19:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "3434:32:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 756, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3469:4:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "3434:39:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 758, - "nodeType": "ExpressionStatement", - "src": "3434:39:3" - } - ] - }, - "documentation": "@dev initializes a new SovrynSwapNetwork instance\n\t * @param _registry address of a contract registry contract", - "id": 760, - "implemented": true, - "isConstructor": true, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 750, - "name": "_registry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 747, - "src": "3419:9:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IContractRegistry_$22220", - "typeString": "contract IContractRegistry" - } - } - ], - "id": 751, - "modifierName": { - "argumentTypes": null, - "id": 749, - "name": "ContractRegistryClient", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20932, - "src": "3396:22:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ContractRegistryClient_$20932_$", - "typeString": "type(contract ContractRegistryClient)" - } - }, - "nodeType": "ModifierInvocation", - "src": "3396:33:3" - } - ], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 748, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 747, - "name": "_registry", - "nodeType": "VariableDeclaration", - "scope": 760, - "src": "3360:27:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IContractRegistry_$22220", - "typeString": "contract IContractRegistry" - }, - "typeName": { - "contractScope": null, - "id": 746, - "name": "IContractRegistry", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 22220, - "src": "3360:17:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IContractRegistry_$22220", - "typeString": "contract IContractRegistry" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3359:29:3" - }, - "payable": false, - "returnParameters": { - "id": 752, - "nodeType": "ParameterList", - "parameters": [], - "src": "3430:0:3" - }, - "scope": 2459, - "src": "3348:129:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 778, - "nodeType": "Block", - "src": "3679:128:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 770, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 768, - "name": "_maxAffiliateFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 762, - "src": "3691:16:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "id": 769, - "name": "AFFILIATE_FEE_RESOLUTION", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 706, - "src": "3711:24:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3691:44:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552525f494e56414c49445f414646494c494154455f464545", - "id": 771, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3737:27:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_5421a6ae0116cbc310697cd7899b77d6a7bc1fb10cd896c84c63fd20f8fbd382", - "typeString": "literal_string \"ERR_INVALID_AFFILIATE_FEE\"" - }, - "value": "ERR_INVALID_AFFILIATE_FEE" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_5421a6ae0116cbc310697cd7899b77d6a7bc1fb10cd896c84c63fd20f8fbd382", - "typeString": "literal_string \"ERR_INVALID_AFFILIATE_FEE\"" - } - ], - "id": 767, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 22341, - 22342 - ], - "referencedDeclaration": 22342, - "src": "3683:7:3", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 772, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3683:82:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 773, - "nodeType": "ExpressionStatement", - "src": "3683:82:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 776, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 774, - "name": "maxAffiliateFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 727, - "src": "3769:15:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 775, - "name": "_maxAffiliateFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 762, - "src": "3787:16:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3769:34:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 777, - "nodeType": "ExpressionStatement", - "src": "3769:34:3" - } - ] - }, - "documentation": "@dev allows the owner to update the maximum affiliate-fee\n\t * @param _maxAffiliateFee maximum affiliate-fee", - "id": 779, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 765, - "modifierName": { - "argumentTypes": null, - "id": 764, - "name": "ownerOnly", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21265, - "src": "3669:9:3", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "3669:9:3" - } - ], - "name": "setMaxAffiliateFee", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 763, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 762, - "name": "_maxAffiliateFee", - "nodeType": "VariableDeclaration", - "scope": 779, - "src": "3636:24:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 761, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3636:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3635:26:3" - }, - "payable": false, - "returnParameters": { - "id": 766, - "nodeType": "ParameterList", - "parameters": [], - "src": "3679:0:3" - }, - "scope": 2459, - "src": "3608:199:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 800, - "nodeType": "Block", - "src": "4119:39:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 798, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 794, - "name": "etherTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 731, - "src": "4123:11:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 796, - "indexExpression": { - "argumentTypes": null, - "id": 795, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 781, - "src": "4135:6:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IEtherToken_$20266", - "typeString": "contract IEtherToken" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4123:19:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 797, - "name": "_register", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 783, - "src": "4145:9:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "4123:31:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 799, - "nodeType": "ExpressionStatement", - "src": "4123:31:3" - } - ] - }, - "documentation": "@dev allows the owner to register/unregister ether tokens\n\t * @param _token ether token contract address\n@param _register true to register, false to unregister", - "id": 801, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 786, - "modifierName": { - "argumentTypes": null, - "id": 785, - "name": "ownerOnly", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21265, - "src": "4072:9:3", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "4072:9:3" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 788, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 781, - "src": "4095:6:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IEtherToken_$20266", - "typeString": "contract IEtherToken" - } - } - ], - "id": 789, - "modifierName": { - "argumentTypes": null, - "id": 787, - "name": "validAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22011, - "src": "4082:12:3", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$", - "typeString": "modifier (address)" - } - }, - "nodeType": "ModifierInvocation", - "src": "4082:20:3" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 791, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 781, - "src": "4111:6:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IEtherToken_$20266", - "typeString": "contract IEtherToken" - } - } - ], - "id": 792, - "modifierName": { - "argumentTypes": null, - "id": 790, - "name": "notThis", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22036, - "src": "4103:7:3", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$", - "typeString": "modifier (address)" - } - }, - "nodeType": "ModifierInvocation", - "src": "4103:15:3" - } - ], - "name": "registerEtherToken", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 784, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 781, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 801, - "src": "4029:18:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IEtherToken_$20266", - "typeString": "contract IEtherToken" - }, - "typeName": { - "contractScope": null, - "id": 780, - "name": "IEtherToken", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20266, - "src": "4029:11:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IEtherToken_$20266", - "typeString": "contract IEtherToken" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 783, - "name": "_register", - "nodeType": "VariableDeclaration", - "scope": 801, - "src": "4049:14:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 782, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "4049:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4028:36:3" - }, - "payable": false, - "returnParameters": { - "id": 793, - "nodeType": "ParameterList", - "parameters": [], - "src": "4119:0:3" - }, - "scope": 2459, - "src": "4001:157:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 825, - "nodeType": "Block", - "src": "4601:157:3", - "statements": [ - { - "assignments": [ - 812 - ], - "declarations": [ - { - "constant": false, - "id": 812, - "name": "pathFinder", - "nodeType": "VariableDeclaration", - "scope": 826, - "src": "4605:32:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConversionPathFinder_$537", - "typeString": "contract IConversionPathFinder" - }, - "typeName": { - "contractScope": null, - "id": 811, - "name": "IConversionPathFinder", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 537, - "src": "4605:21:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConversionPathFinder_$537", - "typeString": "contract IConversionPathFinder" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 818, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 815, - "name": "CONVERSION_PATH_FINDER", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20764, - "src": "4672:22:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 814, - "name": "addressOf", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20931, - "src": "4662:9:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$", - "typeString": "function (bytes32) view returns (address)" - } - }, - "id": 816, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4662:33:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 813, - "name": "IConversionPathFinder", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 537, - "src": "4640:21:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IConversionPathFinder_$537_$", - "typeString": "type(contract IConversionPathFinder)" - } - }, - "id": 817, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4640:56:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConversionPathFinder_$537", - "typeString": "contract IConversionPathFinder" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4605:91:3" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 821, - "name": "_sourceToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 803, - "src": "4727:12:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - { - "argumentTypes": null, - "id": 822, - "name": "_targetToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 805, - "src": "4741:12:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - ], - "expression": { - "argumentTypes": null, - "id": 819, - "name": "pathFinder", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 812, - "src": "4707:10:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConversionPathFinder_$537", - "typeString": "contract IConversionPathFinder" - } - }, - "id": 820, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "findPath", - "nodeType": "MemberAccess", - "referencedDeclaration": 536, - "src": "4707:19:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_array$_t_address_$dyn_memory_ptr_$", - "typeString": "function (address,address) view external returns (address[] memory)" - } - }, - "id": 823, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4707:47:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "functionReturnParameters": 810, - "id": 824, - "nodeType": "Return", - "src": "4700:54:3" - } - ] - }, - "documentation": "@dev returns the conversion path between two tokens in the network\nnote that this method is quite expensive in terms of gas and should generally be called off-chain\n\t * @param _sourceToken source token address\n@param _targetToken target token address\n\t * @return conversion path between the two tokens", - "id": 826, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "conversionPath", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 806, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 803, - "name": "_sourceToken", - "nodeType": "VariableDeclaration", - "scope": 826, - "src": "4517:24:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - "typeName": { - "contractScope": null, - "id": 802, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "4517:11:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 805, - "name": "_targetToken", - "nodeType": "VariableDeclaration", - "scope": 826, - "src": "4543:24:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - "typeName": { - "contractScope": null, - "id": 804, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "4543:11:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4516:52:3" - }, - "payable": false, - "returnParameters": { - "id": 810, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 809, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 826, - "src": "4590:9:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 807, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4590:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 808, - "length": null, - "nodeType": "ArrayTypeName", - "src": "4590:9:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4589:11:3" - }, - "scope": 2459, - "src": "4493:265:3", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1101, - "nodeType": "Block", - "src": "5194:2195:3", - "statements": [ - { - "assignments": [], - "declarations": [ - { - "constant": false, - "id": 837, - "name": "amount", - "nodeType": "VariableDeclaration", - "scope": 1102, - "src": "5198:14:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 836, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5198:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 838, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "5198:14:3" - }, - { - "assignments": [], - "declarations": [ - { - "constant": false, - "id": 840, - "name": "fee", - "nodeType": "VariableDeclaration", - "scope": 1102, - "src": "5216:11:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 839, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5216:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 841, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "5216:11:3" - }, - { - "assignments": [], - "declarations": [ - { - "constant": false, - "id": 843, - "name": "supply", - "nodeType": "VariableDeclaration", - "scope": 1102, - "src": "5231:14:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 842, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5231:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 844, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "5231:14:3" - }, - { - "assignments": [], - "declarations": [ - { - "constant": false, - "id": 846, - "name": "balance", - "nodeType": "VariableDeclaration", - "scope": 1102, - "src": "5249:15:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 845, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5249:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 847, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "5249:15:3" - }, - { - "assignments": [], - "declarations": [ - { - "constant": false, - "id": 849, - "name": "weight", - "nodeType": "VariableDeclaration", - "scope": 1102, - "src": "5268:13:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 848, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "5268:6:3", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 850, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "5268:13:3" - }, - { - "assignments": [], - "declarations": [ - { - "constant": false, - "id": 852, - "name": "converter", - "nodeType": "VariableDeclaration", - "scope": 1102, - "src": "5285:20:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - }, - "typeName": { - "contractScope": null, - "id": 851, - "name": "IConverter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 11817, - "src": "5285:10:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 853, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "5285:20:3" - }, - { - "assignments": [ - 855 - ], - "declarations": [ - { - "constant": false, - "id": 855, - "name": "formula", - "nodeType": "VariableDeclaration", - "scope": 1102, - "src": "5309:26:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISovrynSwapFormula_$12240", - "typeString": "contract ISovrynSwapFormula" - }, - "typeName": { - "contractScope": null, - "id": 854, - "name": "ISovrynSwapFormula", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 12240, - "src": "5309:18:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISovrynSwapFormula_$12240", - "typeString": "contract ISovrynSwapFormula" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 861, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 858, - "name": "SOVRYNSWAP_FORMULA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20758, - "src": "5367:18:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 857, - "name": "addressOf", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20931, - "src": "5357:9:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$", - "typeString": "function (bytes32) view returns (address)" - } - }, - "id": 859, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5357:29:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 856, - "name": "ISovrynSwapFormula", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12240, - "src": "5338:18:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ISovrynSwapFormula_$12240_$", - "typeString": "type(contract ISovrynSwapFormula)" - } - }, - "id": 860, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5338:49:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISovrynSwapFormula_$12240", - "typeString": "contract ISovrynSwapFormula" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5309:78:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 864, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 862, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 837, - "src": "5392:6:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 863, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 831, - "src": "5401:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5392:16:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 865, - "nodeType": "ExpressionStatement", - "src": "5392:16:3" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 877, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 870, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 867, - "name": "_path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 829, - "src": "5486:5:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", - "typeString": "contract IERC20Token[] memory" - } - }, - "id": 868, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5486:12:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "32", - "id": 869, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5501:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "src": "5486:16:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 876, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 874, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 871, - "name": "_path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 829, - "src": "5506:5:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", - "typeString": "contract IERC20Token[] memory" - } - }, - "id": 872, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5506:12:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "%", - "rightExpression": { - "argumentTypes": null, - "hexValue": "32", - "id": 873, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5521:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "src": "5506:16:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 875, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5526:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "5506:21:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "5486:41:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552525f494e56414c49445f50415448", - "id": 878, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5529:18:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_db637d0ca669449dd352e97481d5a38953b8126ef5f657bdd830d33ff33d5b16", - "typeString": "literal_string \"ERR_INVALID_PATH\"" - }, - "value": "ERR_INVALID_PATH" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_db637d0ca669449dd352e97481d5a38953b8126ef5f657bdd830d33ff33d5b16", - "typeString": "literal_string \"ERR_INVALID_PATH\"" - } - ], - "id": 866, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 22341, - 22342 - ], - "referencedDeclaration": 22342, - "src": "5478:7:3", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 879, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5478:70:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 880, - "nodeType": "ExpressionStatement", - "src": "5478:70:3" - }, - { - "body": { - "id": 1097, - "nodeType": "Block", - "src": "5637:1731:3", - "statements": [ - { - "assignments": [ - 894 - ], - "declarations": [ - { - "constant": false, - "id": 894, - "name": "sourceToken", - "nodeType": "VariableDeclaration", - "scope": 1102, - "src": "5642:23:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - "typeName": { - "contractScope": null, - "id": 893, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "5642:11:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 900, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 895, - "name": "_path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 829, - "src": "5668:5:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", - "typeString": "contract IERC20Token[] memory" - } - }, - "id": 899, - "indexExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 898, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 896, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 882, - "src": "5674:1:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "hexValue": "32", - "id": 897, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5678:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "src": "5674:5:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5668:12:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5642:38:3" - }, - { - "assignments": [ - 902 - ], - "declarations": [ - { - "constant": false, - "id": 902, - "name": "anchor", - "nodeType": "VariableDeclaration", - "scope": 1102, - "src": "5685:18:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - "typeName": { - "contractScope": null, - "id": 901, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "5685:11:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 908, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 903, - "name": "_path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 829, - "src": "5706:5:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", - "typeString": "contract IERC20Token[] memory" - } - }, - "id": 907, - "indexExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 906, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 904, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 882, - "src": "5712:1:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 905, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5716:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "5712:5:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5706:12:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5685:33:3" - }, - { - "assignments": [ - 910 - ], - "declarations": [ - { - "constant": false, - "id": 910, - "name": "targetToken", - "nodeType": "VariableDeclaration", - "scope": 1102, - "src": "5723:23:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - "typeName": { - "contractScope": null, - "id": 909, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "5723:11:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 914, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 911, - "name": "_path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 829, - "src": "5749:5:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", - "typeString": "contract IERC20Token[] memory" - } - }, - "id": 913, - "indexExpression": { - "argumentTypes": null, - "id": 912, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 882, - "src": "5755:1:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5749:8:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5723:34:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 923, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 915, - "name": "converter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 852, - "src": "5763:9:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 918, - "name": "anchor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 902, - "src": "5803:6:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - ], - "id": 917, - "name": "IConverterAnchor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11826, - "src": "5786:16:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IConverterAnchor_$11826_$", - "typeString": "type(contract IConverterAnchor)" - } - }, - "id": 919, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5786:24:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - }, - "id": 920, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "owner", - "nodeType": "MemberAccess", - "referencedDeclaration": 22238, - "src": "5786:30:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", - "typeString": "function () view external returns (address)" - } - }, - "id": 921, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5786:32:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 916, - "name": "IConverter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11817, - "src": "5775:10:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IConverter_$11817_$", - "typeString": "type(contract IConverter)" - } - }, - "id": 922, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5775:44:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - "src": "5763:56:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - "id": 924, - "nodeType": "ExpressionStatement", - "src": "5763:56:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 930, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 925, - "name": "sourceToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 894, - "src": "5854:11:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 927, - "name": "converter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 852, - "src": "5893:9:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - { - "argumentTypes": null, - "id": 928, - "name": "sourceToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 894, - "src": "5904:11:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - }, - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - ], - "id": 926, - "name": "getConverterTokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2131, - "src": "5868:24:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_contract$_IConverter_$11817_$_t_contract$_IERC20Token_$20240_$returns$_t_contract$_IERC20Token_$20240_$", - "typeString": "function (contract IConverter,contract IERC20Token) view returns (contract IERC20Token)" - } - }, - "id": 929, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5868:48:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "src": "5854:62:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "id": 931, - "nodeType": "ExpressionStatement", - "src": "5854:62:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 937, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 932, - "name": "targetToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 910, - "src": "5921:11:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 934, - "name": "converter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 852, - "src": "5960:9:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - { - "argumentTypes": null, - "id": 935, - "name": "targetToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 910, - "src": "5971:11:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - }, - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - ], - "id": 933, - "name": "getConverterTokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2131, - "src": "5935:24:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_contract$_IConverter_$11817_$_t_contract$_IERC20Token_$20240_$returns$_t_contract$_IERC20Token_$20240_$", - "typeString": "function (contract IConverter,contract IERC20Token) view returns (contract IERC20Token)" - } - }, - "id": 936, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5935:48:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "src": "5921:62:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "id": 938, - "nodeType": "ExpressionStatement", - "src": "5921:62:3" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - "id": 941, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 939, - "name": "targetToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 910, - "src": "5993:11:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 940, - "name": "anchor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 902, - "src": "6008:6:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "src": "5993:21:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - "id": 1013, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1011, - "name": "sourceToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 894, - "src": "6625:11:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 1012, - "name": "anchor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 902, - "src": "6640:6:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "src": "6625:21:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 1094, - "nodeType": "Block", - "src": "7250:114:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1092, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "id": 1083, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 837, - "src": "7289:6:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1084, - "name": "fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 840, - "src": "7297:3:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 1085, - "isConstant": false, - "isInlineArray": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "TupleExpression", - "src": "7288:13:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", - "typeString": "tuple(uint256,uint256)" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1087, - "name": "converter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 852, - "src": "7314:9:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - { - "argumentTypes": null, - "id": 1088, - "name": "sourceToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 894, - "src": "7325:11:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - { - "argumentTypes": null, - "id": 1089, - "name": "targetToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 910, - "src": "7338:11:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - { - "argumentTypes": null, - "id": 1090, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 837, - "src": "7351:6:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - }, - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1086, - "name": "getReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2179, - "src": "7304:9:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$_t_address_$_t_uint256_$returns$_t_uint256_$_t_uint256_$", - "typeString": "function (address,address,address,uint256) view returns (uint256,uint256)" - } - }, - "id": 1091, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7304:54:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", - "typeString": "tuple(uint256,uint256)" - } - }, - "src": "7288:70:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1093, - "nodeType": "ExpressionStatement", - "src": "7288:70:3" - } - ] - }, - "id": 1095, - "nodeType": "IfStatement", - "src": "6621:743:3", - "trueBody": { - "id": 1082, - "nodeType": "Block", - "src": "6648:596:3", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 1024, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1016, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1014, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 882, - "src": "6738:1:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "hexValue": "33", - "id": 1015, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6742:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_3_by_1", - "typeString": "int_const 3" - }, - "value": "3" - }, - "src": "6738:5:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - "id": 1023, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1017, - "name": "anchor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 902, - "src": "6747:6:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1018, - "name": "_path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 829, - "src": "6757:5:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", - "typeString": "contract IERC20Token[] memory" - } - }, - "id": 1022, - "indexExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1021, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1019, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 882, - "src": "6763:1:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "hexValue": "33", - "id": 1020, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6767:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_3_by_1", - "typeString": "int_const 3" - }, - "value": "3" - }, - "src": "6763:5:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6757:12:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "src": "6747:22:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "6738:31:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1033, - "nodeType": "IfStatement", - "src": "6734:79:3", - "trueBody": { - "expression": { - "argumentTypes": null, - "id": 1031, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1025, - "name": "supply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 843, - "src": "6771:6:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1027, - "name": "anchor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 902, - "src": "6792:6:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - ], - "id": 1026, - "name": "ISmartToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20295, - "src": "6780:11:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ISmartToken_$20295_$", - "typeString": "type(contract ISmartToken)" - } - }, - "id": 1028, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6780:19:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISmartToken_$20295", - "typeString": "contract ISmartToken" - } - }, - "id": 1029, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "totalSupply", - "nodeType": "MemberAccess", - "referencedDeclaration": 20182, - "src": "6780:31:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", - "typeString": "function () view external returns (uint256)" - } - }, - "id": 1030, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6780:33:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6771:42:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1032, - "nodeType": "ExpressionStatement", - "src": "6771:42:3" - } - }, - { - "expression": { - "argumentTypes": null, - "id": 1039, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1034, - "name": "balance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 846, - "src": "6863:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1037, - "name": "targetToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 910, - "src": "6903:11:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - ], - "expression": { - "argumentTypes": null, - "id": 1035, - "name": "converter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 852, - "src": "6873:9:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - "id": 1036, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getConnectorBalance", - "nodeType": "MemberAccess", - "referencedDeclaration": 11804, - "src": "6873:29:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_contract$_IERC20Token_$20240_$returns$_t_uint256_$", - "typeString": "function (contract IERC20Token) view external returns (uint256)" - } - }, - "id": 1038, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6873:42:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6863:52:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1040, - "nodeType": "ExpressionStatement", - "src": "6863:52:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 1047, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "components": [ - null, - { - "argumentTypes": null, - "id": 1041, - "name": "weight", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 849, - "src": "6924:6:3", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - null, - null, - null - ], - "id": 1042, - "isConstant": false, - "isInlineArray": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "TupleExpression", - "src": "6921:16:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$_t_uint32_$__$__$__$", - "typeString": "tuple(,uint32,,,)" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1045, - "name": "targetToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 910, - "src": "6961:11:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - ], - "expression": { - "argumentTypes": null, - "id": 1043, - "name": "converter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 852, - "src": "6940:9:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - "id": 1044, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "connectors", - "nodeType": "MemberAccess", - "referencedDeclaration": 11797, - "src": "6940:20:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$_t_uint32_$_t_bool_$_t_bool_$_t_bool_$", - "typeString": "function (address) view external returns (uint256,uint32,bool,bool,bool)" - } - }, - "id": 1046, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6940:33:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint32_$_t_bool_$_t_bool_$_t_bool_$", - "typeString": "tuple(uint256,uint32,bool,bool,bool)" - } - }, - "src": "6921:52:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1048, - "nodeType": "ExpressionStatement", - "src": "6921:52:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 1057, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1049, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 837, - "src": "6979:6:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1052, - "name": "supply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 843, - "src": "7013:6:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1053, - "name": "balance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 846, - "src": "7021:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1054, - "name": "weight", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 849, - "src": "7030:6:3", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - { - "argumentTypes": null, - "id": 1055, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 837, - "src": "7038:6:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1050, - "name": "formula", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 855, - "src": "6988:7:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISovrynSwapFormula_$12240", - "typeString": "contract ISovrynSwapFormula" - } - }, - "id": 1051, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "saleTargetAmount", - "nodeType": "MemberAccess", - "referencedDeclaration": 12168, - "src": "6988:24:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_uint256_$_t_uint256_$_t_uint32_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256,uint256,uint32,uint256) view external returns (uint256)" - } - }, - "id": 1056, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6988:57:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6979:66:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1058, - "nodeType": "ExpressionStatement", - "src": "6979:66:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 1069, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1059, - "name": "fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 840, - "src": "7051:3:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1067, - "name": "CONVERSION_FEE_RESOLUTION", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 703, - "src": "7099:25:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 1062, - "name": "converter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 852, - "src": "7068:9:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - "id": 1063, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "conversionFee", - "nodeType": "MemberAccess", - "referencedDeclaration": 11712, - "src": "7068:23:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_uint32_$", - "typeString": "function () view external returns (uint32)" - } - }, - "id": 1064, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7068:25:3", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - ], - "expression": { - "argumentTypes": null, - "id": 1060, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 837, - "src": "7057:6:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1061, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 21791, - "src": "7057:10:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 1065, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7057:37:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1066, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "div", - "nodeType": "MemberAccess", - "referencedDeclaration": 21816, - "src": "7057:41:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 1068, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7057:68:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7051:74:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1070, - "nodeType": "ExpressionStatement", - "src": "7051:74:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 1073, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1071, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 837, - "src": "7131:6:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "-=", - "rightHandSide": { - "argumentTypes": null, - "id": 1072, - "name": "fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 840, - "src": "7141:3:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7131:13:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1074, - "nodeType": "ExpressionStatement", - "src": "7131:13:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 1080, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1075, - "name": "supply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 843, - "src": "7211:6:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1078, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 837, - "src": "7231:6:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1076, - "name": "supply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 843, - "src": "7220:6:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1077, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 21758, - "src": "7220:10:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 1079, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7220:18:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7211:27:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1081, - "nodeType": "ExpressionStatement", - "src": "7211:27:3" - } - ] - } - }, - "id": 1096, - "nodeType": "IfStatement", - "src": "5989:1375:3", - "trueBody": { - "id": 1010, - "nodeType": "Block", - "src": "6016:599:3", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 952, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 944, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 942, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 882, - "src": "6105:1:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "hexValue": "33", - "id": 943, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6109:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_3_by_1", - "typeString": "int_const 3" - }, - "value": "3" - }, - "src": "6105:5:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - "id": 951, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 945, - "name": "anchor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 902, - "src": "6114:6:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 946, - "name": "_path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 829, - "src": "6124:5:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", - "typeString": "contract IERC20Token[] memory" - } - }, - "id": 950, - "indexExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 949, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 947, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 882, - "src": "6130:1:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "hexValue": "33", - "id": 948, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6134:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_3_by_1", - "typeString": "int_const 3" - }, - "value": "3" - }, - "src": "6130:5:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6124:12:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "src": "6114:22:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "6105:31:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 961, - "nodeType": "IfStatement", - "src": "6101:79:3", - "trueBody": { - "expression": { - "argumentTypes": null, - "id": 959, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 953, - "name": "supply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 843, - "src": "6138:6:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 955, - "name": "anchor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 902, - "src": "6159:6:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - ], - "id": 954, - "name": "ISmartToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20295, - "src": "6147:11:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ISmartToken_$20295_$", - "typeString": "type(contract ISmartToken)" - } - }, - "id": 956, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6147:19:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISmartToken_$20295", - "typeString": "contract ISmartToken" - } - }, - "id": 957, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "totalSupply", - "nodeType": "MemberAccess", - "referencedDeclaration": 20182, - "src": "6147:31:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", - "typeString": "function () view external returns (uint256)" - } - }, - "id": 958, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6147:33:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6138:42:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 960, - "nodeType": "ExpressionStatement", - "src": "6138:42:3" - } - }, - { - "expression": { - "argumentTypes": null, - "id": 967, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 962, - "name": "balance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 846, - "src": "6230:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 965, - "name": "sourceToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 894, - "src": "6270:11:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - ], - "expression": { - "argumentTypes": null, - "id": 963, - "name": "converter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 852, - "src": "6240:9:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - "id": 964, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getConnectorBalance", - "nodeType": "MemberAccess", - "referencedDeclaration": 11804, - "src": "6240:29:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_contract$_IERC20Token_$20240_$returns$_t_uint256_$", - "typeString": "function (contract IERC20Token) view external returns (uint256)" - } - }, - "id": 966, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6240:42:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6230:52:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 968, - "nodeType": "ExpressionStatement", - "src": "6230:52:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 975, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "components": [ - null, - { - "argumentTypes": null, - "id": 969, - "name": "weight", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 849, - "src": "6291:6:3", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - null, - null, - null - ], - "id": 970, - "isConstant": false, - "isInlineArray": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "TupleExpression", - "src": "6288:16:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$_t_uint32_$__$__$__$", - "typeString": "tuple(,uint32,,,)" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 973, - "name": "sourceToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 894, - "src": "6328:11:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - ], - "expression": { - "argumentTypes": null, - "id": 971, - "name": "converter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 852, - "src": "6307:9:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - "id": 972, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "connectors", - "nodeType": "MemberAccess", - "referencedDeclaration": 11797, - "src": "6307:20:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$_t_uint32_$_t_bool_$_t_bool_$_t_bool_$", - "typeString": "function (address) view external returns (uint256,uint32,bool,bool,bool)" - } - }, - "id": 974, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6307:33:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint32_$_t_bool_$_t_bool_$_t_bool_$", - "typeString": "tuple(uint256,uint32,bool,bool,bool)" - } - }, - "src": "6288:52:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 976, - "nodeType": "ExpressionStatement", - "src": "6288:52:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 985, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 977, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 837, - "src": "6346:6:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 980, - "name": "supply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 843, - "src": "6384:6:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 981, - "name": "balance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 846, - "src": "6392:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 982, - "name": "weight", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 849, - "src": "6401:6:3", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - { - "argumentTypes": null, - "id": 983, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 837, - "src": "6409:6:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 978, - "name": "formula", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 855, - "src": "6355:7:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISovrynSwapFormula_$12240", - "typeString": "contract ISovrynSwapFormula" - } - }, - "id": 979, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "purchaseTargetAmount", - "nodeType": "MemberAccess", - "referencedDeclaration": 12155, - "src": "6355:28:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_uint256_$_t_uint256_$_t_uint32_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256,uint256,uint32,uint256) view external returns (uint256)" - } - }, - "id": 984, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6355:61:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6346:70:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 986, - "nodeType": "ExpressionStatement", - "src": "6346:70:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 997, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 987, - "name": "fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 840, - "src": "6422:3:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 995, - "name": "CONVERSION_FEE_RESOLUTION", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 703, - "src": "6470:25:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 990, - "name": "converter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 852, - "src": "6439:9:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - "id": 991, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "conversionFee", - "nodeType": "MemberAccess", - "referencedDeclaration": 11712, - "src": "6439:23:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_uint32_$", - "typeString": "function () view external returns (uint32)" - } - }, - "id": 992, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6439:25:3", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - ], - "expression": { - "argumentTypes": null, - "id": 988, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 837, - "src": "6428:6:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 989, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 21791, - "src": "6428:10:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 993, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6428:37:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 994, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "div", - "nodeType": "MemberAccess", - "referencedDeclaration": 21816, - "src": "6428:41:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 996, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6428:68:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6422:74:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 998, - "nodeType": "ExpressionStatement", - "src": "6422:74:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 1001, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 999, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 837, - "src": "6502:6:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "-=", - "rightHandSide": { - "argumentTypes": null, - "id": 1000, - "name": "fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 840, - "src": "6512:3:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6502:13:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1002, - "nodeType": "ExpressionStatement", - "src": "6502:13:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 1008, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1003, - "name": "supply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 843, - "src": "6582:6:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1006, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 837, - "src": "6602:6:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1004, - "name": "supply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 843, - "src": "6591:6:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1005, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 21737, - "src": "6591:10:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 1007, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6591:18:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6582:27:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1009, - "nodeType": "ExpressionStatement", - "src": "6582:27:3" - } - ] - } - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 888, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 885, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 882, - "src": "5611:1:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 886, - "name": "_path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 829, - "src": "5615:5:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", - "typeString": "contract IERC20Token[] memory" - } - }, - "id": 887, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5615:12:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5611:16:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 1098, - "initializationExpression": { - "assignments": [ - 882 - ], - "declarations": [ - { - "constant": false, - "id": 882, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 1102, - "src": "5596:9:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 881, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5596:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 884, - "initialValue": { - "argumentTypes": null, - "hexValue": "32", - "id": 883, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5608:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "nodeType": "VariableDeclarationStatement", - "src": "5596:13:3" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 891, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 889, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 882, - "src": "5629:1:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "32", - "id": 890, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5634:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "src": "5629:6:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 892, - "nodeType": "ExpressionStatement", - "src": "5629:6:3" - }, - "nodeType": "ForStatement", - "src": "5591:1777:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 1099, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 837, - "src": "7379:6:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 835, - "id": 1100, - "nodeType": "Return", - "src": "7372:13:3" - } - ] - }, - "documentation": "@dev returns the expected target amount of converting a given amount on a given path\nnote that there is no support for circular paths\n\t * @param _path conversion path (see conversion path format above)\n@param _amount amount of _path[0] tokens received from the sender\n\t * @return expected target amount", - "id": 1102, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "rateByPath", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 832, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 829, - "name": "_path", - "nodeType": "VariableDeclaration", - "scope": 1102, - "src": "5126:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", - "typeString": "contract IERC20Token[]" - }, - "typeName": { - "baseType": { - "contractScope": null, - "id": 827, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "5126:11:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "id": 828, - "length": null, - "nodeType": "ArrayTypeName", - "src": "5126:13:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_storage_ptr", - "typeString": "contract IERC20Token[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 831, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 1102, - "src": "5147:15:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 830, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5147:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5125:38:3" - }, - "payable": false, - "returnParameters": { - "id": 835, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 834, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1102, - "src": "5185:7:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 833, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5185:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5184:9:3" - }, - "scope": 2459, - "src": "5106:2283:3", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1229, - "nodeType": "Block", - "src": "8719:1111:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 1136, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1129, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1126, - "name": "_path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1105, - "src": "8830:5:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", - "typeString": "contract IERC20Token[] memory" - } - }, - "id": 1127, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8830:12:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "32", - "id": 1128, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8845:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "src": "8830:16:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1135, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1133, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1130, - "name": "_path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1105, - "src": "8850:5:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", - "typeString": "contract IERC20Token[] memory" - } - }, - "id": 1131, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8850:12:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "%", - "rightExpression": { - "argumentTypes": null, - "hexValue": "32", - "id": 1132, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8865:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "src": "8850:16:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 1134, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8870:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "8850:21:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "8830:41:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552525f494e56414c49445f50415448", - "id": 1137, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8873:18:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_db637d0ca669449dd352e97481d5a38953b8126ef5f657bdd830d33ff33d5b16", - "typeString": "literal_string \"ERR_INVALID_PATH\"" - }, - "value": "ERR_INVALID_PATH" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_db637d0ca669449dd352e97481d5a38953b8126ef5f657bdd830d33ff33d5b16", - "typeString": "literal_string \"ERR_INVALID_PATH\"" - } - ], - "id": 1125, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 22341, - 22342 - ], - "referencedDeclaration": 22342, - "src": "8822:7:3", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1138, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8822:70:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1139, - "nodeType": "ExpressionStatement", - "src": "8822:70:3" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1141, - "name": "_path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1105, - "src": "8987:5:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", - "typeString": "contract IERC20Token[] memory" - } - }, - "id": 1143, - "indexExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1142, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8993:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "8987:8:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1145, - "name": "_path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1105, - "src": "9014:5:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", - "typeString": "contract IERC20Token[] memory" - } - }, - "id": 1147, - "indexExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 1146, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9020:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9014:8:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - ], - "id": 1144, - "name": "IConverterAnchor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11826, - "src": "8997:16:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IConverterAnchor_$11826_$", - "typeString": "type(contract IConverterAnchor)" - } - }, - "id": 1148, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8997:26:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - }, - { - "argumentTypes": null, - "id": 1149, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1107, - "src": "9025:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1140, - "name": "handleSourceToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1691, - "src": "8969:17:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20Token_$20240_$_t_contract$_IConverterAnchor_$11826_$_t_uint256_$returns$__$", - "typeString": "function (contract IERC20Token,contract IConverterAnchor,uint256)" - } - }, - "id": 1150, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8969:64:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1151, - "nodeType": "ExpressionStatement", - "src": "8969:64:3" - }, - { - "assignments": [ - 1153 - ], - "declarations": [ - { - "constant": false, - "id": 1153, - "name": "affiliateFeeEnabled", - "nodeType": "VariableDeclaration", - "scope": 1230, - "src": "9077:24:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1152, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "9077:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1155, - "initialValue": { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 1154, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9104:5:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "nodeType": "VariableDeclarationStatement", - "src": "9077:32:3" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1160, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1157, - "name": "_affiliateAccount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1113, - "src": "9125:17:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1156, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "9117:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1158, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9117:26:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1159, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9147:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "9117:31:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 1184, - "nodeType": "Block", - "src": "9222:132:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 1176, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1172, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1170, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9235:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "id": 1171, - "name": "_affiliateFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1115, - "src": "9239:13:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9235:17:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1175, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1173, - "name": "_affiliateFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1115, - "src": "9256:13:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "id": 1174, - "name": "maxAffiliateFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 727, - "src": "9273:15:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9256:32:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "9235:53:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552525f494e56414c49445f414646494c494154455f464545", - "id": 1177, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9290:27:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_5421a6ae0116cbc310697cd7899b77d6a7bc1fb10cd896c84c63fd20f8fbd382", - "typeString": "literal_string \"ERR_INVALID_AFFILIATE_FEE\"" - }, - "value": "ERR_INVALID_AFFILIATE_FEE" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_5421a6ae0116cbc310697cd7899b77d6a7bc1fb10cd896c84c63fd20f8fbd382", - "typeString": "literal_string \"ERR_INVALID_AFFILIATE_FEE\"" - } - ], - "id": 1169, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 22341, - 22342 - ], - "referencedDeclaration": 22342, - "src": "9227:7:3", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1178, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9227:91:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1179, - "nodeType": "ExpressionStatement", - "src": "9227:91:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 1182, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1180, - "name": "affiliateFeeEnabled", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1153, - "src": "9323:19:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 1181, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9345:4:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "9323:26:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 1183, - "nodeType": "ExpressionStatement", - "src": "9323:26:3" - } - ] - }, - "id": 1185, - "nodeType": "IfStatement", - "src": "9113:241:3", - "trueBody": { - "id": 1168, - "nodeType": "Block", - "src": "9150:66:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1164, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1162, - "name": "_affiliateFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1115, - "src": "9163:13:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1163, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9180:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "9163:18:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552525f494e56414c49445f414646494c494154455f464545", - "id": 1165, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9183:27:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_5421a6ae0116cbc310697cd7899b77d6a7bc1fb10cd896c84c63fd20f8fbd382", - "typeString": "literal_string \"ERR_INVALID_AFFILIATE_FEE\"" - }, - "value": "ERR_INVALID_AFFILIATE_FEE" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_5421a6ae0116cbc310697cd7899b77d6a7bc1fb10cd896c84c63fd20f8fbd382", - "typeString": "literal_string \"ERR_INVALID_AFFILIATE_FEE\"" - } - ], - "id": 1161, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 22341, - 22342 - ], - "referencedDeclaration": 22342, - "src": "9155:7:3", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1166, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9155:56:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1167, - "nodeType": "ExpressionStatement", - "src": "9155:56:3" - } - ] - } - }, - { - "assignments": [ - 1187 - ], - "declarations": [ - { - "constant": false, - "id": 1187, - "name": "beneficiary", - "nodeType": "VariableDeclaration", - "scope": 1230, - "src": "9391:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1186, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "9391:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1190, - "initialValue": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1188, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22338, - "src": "9413:3:3", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1189, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "9413:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "9391:32:3" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1195, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1191, - "name": "_beneficiary", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1111, - "src": "9431:12:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 1193, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9455:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 1192, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "9447:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1194, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9447:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "9431:26:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1200, - "nodeType": "IfStatement", - "src": "9427:58:3", - "trueBody": { - "expression": { - "argumentTypes": null, - "id": 1198, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1196, - "name": "beneficiary", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1187, - "src": "9459:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1197, - "name": "_beneficiary", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1111, - "src": "9473:12:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "9459:26:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1199, - "nodeType": "ExpressionStatement", - "src": "9459:26:3" - } - }, - { - "assignments": [ - 1204 - ], - "declarations": [ - { - "constant": false, - "id": 1204, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 1230, - "src": "9532:28:3", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ConversionStep_$724_memory_$dyn_memory_ptr", - "typeString": "struct SovrynSwapNetwork.ConversionStep[]" - }, - "typeName": { - "baseType": { - "contractScope": null, - "id": 1202, - "name": "ConversionStep", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 724, - "src": "9532:14:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ConversionStep_$724_storage_ptr", - "typeString": "struct SovrynSwapNetwork.ConversionStep" - } - }, - "id": 1203, - "length": null, - "nodeType": "ArrayTypeName", - "src": "9532:16:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ConversionStep_$724_storage_$dyn_storage_ptr", - "typeString": "struct SovrynSwapNetwork.ConversionStep[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1210, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1206, - "name": "_path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1105, - "src": "9584:5:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", - "typeString": "contract IERC20Token[] memory" - } - }, - { - "argumentTypes": null, - "id": 1207, - "name": "beneficiary", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1187, - "src": "9591:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1208, - "name": "affiliateFeeEnabled", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1153, - "src": "9604:19:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", - "typeString": "contract IERC20Token[] memory" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 1205, - "name": "createConversionData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2020, - "src": "9563:20:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr_$_t_address_$_t_bool_$returns$_t_array$_t_struct$_ConversionStep_$724_memory_$dyn_memory_ptr_$", - "typeString": "function (contract IERC20Token[] memory,address,bool) view returns (struct SovrynSwapNetwork.ConversionStep memory[] memory)" - } - }, - "id": 1209, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9563:61:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ConversionStep_$724_memory_$dyn_memory_ptr", - "typeString": "struct SovrynSwapNetwork.ConversionStep memory[] memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "9532:92:3" - }, - { - "assignments": [ - 1212 - ], - "declarations": [ - { - "constant": false, - "id": 1212, - "name": "amount", - "nodeType": "VariableDeclaration", - "scope": 1230, - "src": "9628:14:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1211, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9628:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1220, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1214, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1204, - "src": "9658:4:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ConversionStep_$724_memory_$dyn_memory_ptr", - "typeString": "struct SovrynSwapNetwork.ConversionStep memory[] memory" - } - }, - { - "argumentTypes": null, - "id": 1215, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1107, - "src": "9664:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1216, - "name": "_minReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1109, - "src": "9673:10:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1217, - "name": "_affiliateAccount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1113, - "src": "9685:17:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1218, - "name": "_affiliateFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1115, - "src": "9704:13:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_array$_t_struct$_ConversionStep_$724_memory_$dyn_memory_ptr", - "typeString": "struct SovrynSwapNetwork.ConversionStep memory[] memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1213, - "name": "doConversion", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1597, - "src": "9645:12:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_struct$_ConversionStep_$724_memory_$dyn_memory_ptr_$_t_uint256_$_t_uint256_$_t_address_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (struct SovrynSwapNetwork.ConversionStep memory[] memory,uint256,uint256,address,uint256) returns (uint256)" - } - }, - "id": 1219, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9645:73:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "9628:90:3" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1222, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1204, - "src": "9782:4:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ConversionStep_$724_memory_$dyn_memory_ptr", - "typeString": "struct SovrynSwapNetwork.ConversionStep memory[] memory" - } - }, - { - "argumentTypes": null, - "id": 1223, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1212, - "src": "9788:6:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1224, - "name": "beneficiary", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1187, - "src": "9796:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_array$_t_struct$_ConversionStep_$724_memory_$dyn_memory_ptr", - "typeString": "struct SovrynSwapNetwork.ConversionStep memory[] memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1221, - "name": "handleTargetToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1750, - "src": "9764:17:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_struct$_ConversionStep_$724_memory_$dyn_memory_ptr_$_t_uint256_$_t_address_$returns$__$", - "typeString": "function (struct SovrynSwapNetwork.ConversionStep memory[] memory,uint256,address)" - } - }, - "id": 1225, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9764:44:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1226, - "nodeType": "ExpressionStatement", - "src": "9764:44:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 1227, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1212, - "src": "9820:6:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 1124, - "id": 1228, - "nodeType": "Return", - "src": "9813:13:3" - } - ] - }, - "documentation": "@dev converts the token to any other token in the sovrynSwap network by following\na predefined conversion path and transfers the result tokens to a target account\naffiliate account/fee can also be passed in to receive a conversion fee (on top of the liquidity provider fees)\nnote that the network should already have been given allowance of the source token (if not ETH)\n\t * @param _path conversion path, see conversion path format above\n@param _amount amount to convert from, in the source token\n@param _minReturn if the conversion results in an amount smaller than the minimum return - it is cancelled, must be greater than zero\n@param _beneficiary account that will receive the conversion result or 0x0 to send the result to the sender account\n@param _affiliateAccount wallet address to receive the affiliate fee or 0x0 to disable affiliate fee\n@param _affiliateFee affiliate fee in PPM or 0 to disable affiliate fee\n\t * @return amount of tokens received from the conversion", - "id": 1230, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 1118, - "modifierName": { - "argumentTypes": null, - "id": 1117, - "name": "protected", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21698, - "src": "8663:9:3", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "8663:9:3" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 1120, - "name": "_minReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1109, - "src": "8689:10:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 1121, - "modifierName": { - "argumentTypes": null, - "id": 1119, - "name": "greaterThanZero", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21988, - "src": "8673:15:3", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$", - "typeString": "modifier (uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "8673:27:3" - } - ], - "name": "convertByPath", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1116, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1105, - "name": "_path", - "nodeType": "VariableDeclaration", - "scope": 1230, - "src": "8506:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", - "typeString": "contract IERC20Token[]" - }, - "typeName": { - "baseType": { - "contractScope": null, - "id": 1103, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "8506:11:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "id": 1104, - "length": null, - "nodeType": "ArrayTypeName", - "src": "8506:13:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_storage_ptr", - "typeString": "contract IERC20Token[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1107, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 1230, - "src": "8529:15:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1106, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8529:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1109, - "name": "_minReturn", - "nodeType": "VariableDeclaration", - "scope": 1230, - "src": "8548:18:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1108, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8548:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1111, - "name": "_beneficiary", - "nodeType": "VariableDeclaration", - "scope": 1230, - "src": "8570:20:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1110, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8570:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1113, - "name": "_affiliateAccount", - "nodeType": "VariableDeclaration", - "scope": 1230, - "src": "8594:25:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1112, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8594:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1115, - "name": "_affiliateFee", - "nodeType": "VariableDeclaration", - "scope": 1230, - "src": "8623:21:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1114, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8623:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8502:145:3" - }, - "payable": true, - "returnParameters": { - "id": 1124, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1123, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1230, - "src": "8710:7:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1122, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8710:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8709:9:3" - }, - "scope": 2459, - "src": "8480:1350:3", - "stateMutability": "payable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1261, - "nodeType": "Block", - "src": "11002:117:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1249, - "name": "_path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1233, - "src": "11023:5:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", - "typeString": "contract IERC20Token[] memory" - } - }, - { - "argumentTypes": null, - "id": 1250, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1235, - "src": "11030:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1251, - "name": "_minReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1237, - "src": "11039:10:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1252, - "name": "_targetBlockchain", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1239, - "src": "11051:17:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 1253, - "name": "_targetAccount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1241, - "src": "11070:14:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 1254, - "name": "_conversionId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1243, - "src": "11086:13:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 1256, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11109:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 1255, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "11101:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1257, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11101:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "hexValue": "30", - "id": 1258, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11113:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", - "typeString": "contract IERC20Token[] memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 1248, - "name": "xConvert2", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1342, - "src": "11013:9:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr_$_t_uint256_$_t_uint256_$_t_bytes32_$_t_bytes32_$_t_uint256_$_t_address_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (contract IERC20Token[] memory,uint256,uint256,bytes32,bytes32,uint256,address,uint256) returns (uint256)" - } - }, - "id": 1259, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11013:102:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 1247, - "id": 1260, - "nodeType": "Return", - "src": "11006:109:3" - } - ] - }, - "documentation": "@dev converts any other token to BNT in the sovrynSwap network by following\na predefined conversion path and transfers the result to an account on a different blockchain\nnote that the network should already have been given allowance of the source token (if not ETH)\n * @param _path conversion path, see conversion path format above\n@param _amount amount to convert from, in the source token\n@param _minReturn if the conversion results in an amount smaller than the minimum return - it is cancelled, must be greater than zero\n@param _targetBlockchain blockchain BNT will be issued on\n@param _targetAccount address/account on the target blockchain to send the BNT to\n@param _conversionId pre-determined unique (if non zero) id which refers to this transaction\n * @return the amount of BNT received from this conversion", - "id": 1262, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "xConvert", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1244, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1233, - "name": "_path", - "nodeType": "VariableDeclaration", - "scope": 1262, - "src": "10825:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", - "typeString": "contract IERC20Token[]" - }, - "typeName": { - "baseType": { - "contractScope": null, - "id": 1231, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "10825:11:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "id": 1232, - "length": null, - "nodeType": "ArrayTypeName", - "src": "10825:13:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_storage_ptr", - "typeString": "contract IERC20Token[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1235, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 1262, - "src": "10848:15:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1234, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10848:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1237, - "name": "_minReturn", - "nodeType": "VariableDeclaration", - "scope": 1262, - "src": "10867:18:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1236, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10867:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1239, - "name": "_targetBlockchain", - "nodeType": "VariableDeclaration", - "scope": 1262, - "src": "10889:25:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 1238, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "10889:7:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1241, - "name": "_targetAccount", - "nodeType": "VariableDeclaration", - "scope": 1262, - "src": "10918:22:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 1240, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "10918:7:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1243, - "name": "_conversionId", - "nodeType": "VariableDeclaration", - "scope": 1262, - "src": "10944:21:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1242, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10944:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10821:147:3" - }, - "payable": true, - "returnParameters": { - "id": 1247, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1246, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1262, - "src": "10993:7:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1245, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10993:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10992:9:3" - }, - "scope": 2459, - "src": "10804:315:3", - "stateMutability": "payable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1341, - "nodeType": "Block", - "src": "12485:632:3", - "statements": [ - { - "assignments": [ - 1288 - ], - "declarations": [ - { - "constant": false, - "id": 1288, - "name": "targetToken", - "nodeType": "VariableDeclaration", - "scope": 1342, - "src": "12489:23:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - "typeName": { - "contractScope": null, - "id": 1287, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "12489:11:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1295, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1289, - "name": "_path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1265, - "src": "12515:5:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", - "typeString": "contract IERC20Token[] memory" - } - }, - "id": 1294, - "indexExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1293, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1290, - "name": "_path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1265, - "src": "12521:5:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", - "typeString": "contract IERC20Token[] memory" - } - }, - "id": 1291, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "12521:12:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 1292, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12536:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "12521:16:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "12515:23:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "12489:49:3" - }, - { - "assignments": [ - 1297 - ], - "declarations": [ - { - "constant": false, - "id": 1297, - "name": "sovrynSwapX", - "nodeType": "VariableDeclaration", - "scope": 1342, - "src": "12542:24:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISovrynSwapX_$19466", - "typeString": "contract ISovrynSwapX" - }, - "typeName": { - "contractScope": null, - "id": 1296, - "name": "ISovrynSwapX", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 19466, - "src": "12542:12:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISovrynSwapX_$19466", - "typeString": "contract ISovrynSwapX" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1303, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1300, - "name": "SOVRYNSWAP_X", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20779, - "src": "12592:12:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 1299, - "name": "addressOf", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20931, - "src": "12582:9:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$", - "typeString": "function (bytes32) view returns (address)" - } - }, - "id": 1301, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12582:23:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1298, - "name": "ISovrynSwapX", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19466, - "src": "12569:12:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ISovrynSwapX_$19466_$", - "typeString": "type(contract ISovrynSwapX)" - } - }, - "id": 1302, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12569:37:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISovrynSwapX_$19466", - "typeString": "contract ISovrynSwapX" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "12542:64:3" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1309, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1305, - "name": "targetToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1288, - "src": "12665:11:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1307, - "name": "BNT_TOKEN", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20776, - "src": "12690:9:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 1306, - "name": "addressOf", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20931, - "src": "12680:9:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$", - "typeString": "function (bytes32) view returns (address)" - } - }, - "id": 1308, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12680:20:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "12665:35:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552525f494e56414c49445f5441524745545f544f4b454e", - "id": 1310, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12702:26:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_506dba30f9da1ed4da3626f556faadafab0575131908ae8223c813a59e0707f3", - "typeString": "literal_string \"ERR_INVALID_TARGET_TOKEN\"" - }, - "value": "ERR_INVALID_TARGET_TOKEN" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_506dba30f9da1ed4da3626f556faadafab0575131908ae8223c813a59e0707f3", - "typeString": "literal_string \"ERR_INVALID_TARGET_TOKEN\"" - } - ], - "id": 1304, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 22341, - 22342 - ], - "referencedDeclaration": 22342, - "src": "12657:7:3", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1311, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12657:72:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1312, - "nodeType": "ExpressionStatement", - "src": "12657:72:3" - }, - { - "assignments": [ - 1314 - ], - "declarations": [ - { - "constant": false, - "id": 1314, - "name": "amount", - "nodeType": "VariableDeclaration", - "scope": 1342, - "src": "12776:14:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1313, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12776:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1323, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1316, - "name": "_path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1265, - "src": "12807:5:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", - "typeString": "contract IERC20Token[] memory" - } - }, - { - "argumentTypes": null, - "id": 1317, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1267, - "src": "12814:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1318, - "name": "_minReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1269, - "src": "12823:10:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1319, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22397, - "src": "12835:4:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SovrynSwapNetwork_$2459", - "typeString": "contract SovrynSwapNetwork" - } - }, - { - "argumentTypes": null, - "id": 1320, - "name": "_affiliateAccount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1277, - "src": "12841:17:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1321, - "name": "_affiliateFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1279, - "src": "12860:13:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", - "typeString": "contract IERC20Token[] memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_contract$_SovrynSwapNetwork_$2459", - "typeString": "contract SovrynSwapNetwork" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1315, - "name": "convertByPath", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1230, - "src": "12793:13:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr_$_t_uint256_$_t_uint256_$_t_address_$_t_address_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (contract IERC20Token[] memory,uint256,uint256,address,address,uint256) returns (uint256)" - } - }, - "id": 1322, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12793:81:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "12776:98:3" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1325, - "name": "targetToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1288, - "src": "12928:11:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - { - "argumentTypes": null, - "id": 1326, - "name": "sovrynSwapX", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1297, - "src": "12941:11:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISovrynSwapX_$19466", - "typeString": "contract ISovrynSwapX" - } - }, - { - "argumentTypes": null, - "id": 1327, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1314, - "src": "12954:6:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - { - "typeIdentifier": "t_contract$_ISovrynSwapX_$19466", - "typeString": "contract ISovrynSwapX" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1324, - "name": "ensureAllowance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2059, - "src": "12912:15:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20Token_$20240_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (contract IERC20Token,address,uint256)" - } - }, - "id": 1328, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12912:49:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1329, - "nodeType": "ExpressionStatement", - "src": "12912:49:3" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1333, - "name": "_targetBlockchain", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1271, - "src": "13038:17:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 1334, - "name": "_targetAccount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1273, - "src": "13057:14:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 1335, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1314, - "src": "13073:6:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1336, - "name": "_conversionId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1275, - "src": "13081:13:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1330, - "name": "sovrynSwapX", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1297, - "src": "13016:11:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISovrynSwapX_$19466", - "typeString": "contract ISovrynSwapX" - } - }, - "id": 1332, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "xTransfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 19456, - "src": "13016:21:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_bytes32_$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (bytes32,bytes32,uint256,uint256) external" - } - }, - "id": 1337, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13016:79:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1338, - "nodeType": "ExpressionStatement", - "src": "13016:79:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 1339, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1314, - "src": "13107:6:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 1286, - "id": 1340, - "nodeType": "Return", - "src": "13100:13:3" - } - ] - }, - "documentation": "@dev converts any other token to BNT in the sovrynSwap network by following\na predefined conversion path and transfers the result to an account on a different blockchain\nnote that the network should already have been given allowance of the source token (if not ETH)\n * @param _path conversion path, see conversion path format above\n@param _amount amount to convert from, in the source token\n@param _minReturn if the conversion results in an amount smaller than the minimum return - it is cancelled, must be greater than zero\n@param _targetBlockchain blockchain BNT will be issued on\n@param _targetAccount address/account on the target blockchain to send the BNT to\n@param _conversionId pre-determined unique (if non zero) id which refers to this transaction\n@param _affiliateAccount affiliate account\n@param _affiliateFee affiliate fee in PPM\n * @return the amount of BNT received from this conversion", - "id": 1342, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 1282, - "name": "_minReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1269, - "src": "12455:10:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 1283, - "modifierName": { - "argumentTypes": null, - "id": 1281, - "name": "greaterThanZero", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21988, - "src": "12439:15:3", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$", - "typeString": "modifier (uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "12439:27:3" - } - ], - "name": "xConvert2", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1280, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1265, - "name": "_path", - "nodeType": "VariableDeclaration", - "scope": 1342, - "src": "12226:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", - "typeString": "contract IERC20Token[]" - }, - "typeName": { - "baseType": { - "contractScope": null, - "id": 1263, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "12226:11:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "id": 1264, - "length": null, - "nodeType": "ArrayTypeName", - "src": "12226:13:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_storage_ptr", - "typeString": "contract IERC20Token[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1267, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 1342, - "src": "12249:15:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1266, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12249:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1269, - "name": "_minReturn", - "nodeType": "VariableDeclaration", - "scope": 1342, - "src": "12268:18:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1268, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12268:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1271, - "name": "_targetBlockchain", - "nodeType": "VariableDeclaration", - "scope": 1342, - "src": "12290:25:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 1270, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "12290:7:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1273, - "name": "_targetAccount", - "nodeType": "VariableDeclaration", - "scope": 1342, - "src": "12319:22:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 1272, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "12319:7:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1275, - "name": "_conversionId", - "nodeType": "VariableDeclaration", - "scope": 1342, - "src": "12345:21:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1274, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12345:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1277, - "name": "_affiliateAccount", - "nodeType": "VariableDeclaration", - "scope": 1342, - "src": "12370:25:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1276, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12370:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1279, - "name": "_affiliateFee", - "nodeType": "VariableDeclaration", - "scope": 1342, - "src": "12399:21:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1278, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12399:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "12222:201:3" - }, - "payable": true, - "returnParameters": { - "id": 1286, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1285, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1342, - "src": "12476:7:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1284, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12476:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "12475:9:3" - }, - "scope": 2459, - "src": "12204:913:3", - "stateMutability": "payable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1389, - "nodeType": "Block", - "src": "14187:378:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - "id": 1365, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1359, - "name": "_path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1345, - "src": "14258:5:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", - "typeString": "contract IERC20Token[] memory" - } - }, - "id": 1361, - "indexExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1360, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14264:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "14258:8:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 1362, - "name": "_sovrynSwapX", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1347, - "src": "14270:12:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISovrynSwapX_$19466", - "typeString": "contract ISovrynSwapX" - } - }, - "id": 1363, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "token", - "nodeType": "MemberAccess", - "referencedDeclaration": 19445, - "src": "14270:18:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_IERC20Token_$20240_$", - "typeString": "function () view external returns (contract IERC20Token)" - } - }, - "id": 1364, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14270:20:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "src": "14258:32:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552525f494e56414c49445f534f555243455f544f4b454e", - "id": 1366, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14292:26:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_0f690a2bdb8b25e0198ca38056ef0e9f045e379ec977ffdcb1486f3c53b6e8fa", - "typeString": "literal_string \"ERR_INVALID_SOURCE_TOKEN\"" - }, - "value": "ERR_INVALID_SOURCE_TOKEN" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_0f690a2bdb8b25e0198ca38056ef0e9f045e379ec977ffdcb1486f3c53b6e8fa", - "typeString": "literal_string \"ERR_INVALID_SOURCE_TOKEN\"" - } - ], - "id": 1358, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 22341, - 22342 - ], - "referencedDeclaration": 22342, - "src": "14250:7:3", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1367, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14250:69:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1368, - "nodeType": "ExpressionStatement", - "src": "14250:69:3" - }, - { - "assignments": [ - 1370 - ], - "declarations": [ - { - "constant": false, - "id": 1370, - "name": "amount", - "nodeType": "VariableDeclaration", - "scope": 1390, - "src": "14377:14:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1369, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "14377:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1377, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1373, - "name": "_conversionId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1349, - "src": "14426:13:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1374, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22338, - "src": "14441:3:3", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1375, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "14441:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 1371, - "name": "_sovrynSwapX", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1347, - "src": "14394:12:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISovrynSwapX_$19466", - "typeString": "contract ISovrynSwapX" - } - }, - "id": 1372, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getXTransferAmount", - "nodeType": "MemberAccess", - "referencedDeclaration": 19465, - "src": "14394:31:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_uint256_$_t_address_$returns$_t_uint256_$", - "typeString": "function (uint256,address) view external returns (uint256)" - } - }, - "id": 1376, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14394:58:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "14377:75:3" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1379, - "name": "_path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1345, - "src": "14506:5:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", - "typeString": "contract IERC20Token[] memory" - } - }, - { - "argumentTypes": null, - "id": 1380, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1370, - "src": "14513:6:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1381, - "name": "_minReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1351, - "src": "14521:10:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1382, - "name": "_beneficiary", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1353, - "src": "14533:12:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 1384, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14555:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 1383, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "14547:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1385, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14547:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "hexValue": "30", - "id": 1386, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14559:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", - "typeString": "contract IERC20Token[] memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 1378, - "name": "convertByPath", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1230, - "src": "14492:13:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr_$_t_uint256_$_t_uint256_$_t_address_$_t_address_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (contract IERC20Token[] memory,uint256,uint256,address,address,uint256) returns (uint256)" - } - }, - "id": 1387, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14492:69:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 1357, - "id": 1388, - "nodeType": "Return", - "src": "14485:76:3" - } - ] - }, - "documentation": "@dev allows a user to convert a token that was sent from another blockchain into any other\ntoken on the SovrynSwapNetwork\nideally this transaction is created before the previous conversion is even complete, so\nso the input amount isn't known at that point - the amount is actually take from the\nSovrynSwapX contract directly by specifying the conversion id\n\t * @param _path conversion path\n@param _sovrynSwapX address of the SovrynSwapX contract for the source token\n@param _conversionId pre-determined unique (if non zero) id which refers to this conversion\n@param _minReturn if the conversion results in an amount smaller than the minimum return - it is cancelled, must be nonzero\n@param _beneficiary wallet to receive the conversion result\n\t * @return amount of tokens received from the conversion", - "id": 1390, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "completeXConversion", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1354, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1345, - "name": "_path", - "nodeType": "VariableDeclaration", - "scope": 1390, - "src": "14039:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", - "typeString": "contract IERC20Token[]" - }, - "typeName": { - "baseType": { - "contractScope": null, - "id": 1343, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "14039:11:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "id": 1344, - "length": null, - "nodeType": "ArrayTypeName", - "src": "14039:13:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_storage_ptr", - "typeString": "contract IERC20Token[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1347, - "name": "_sovrynSwapX", - "nodeType": "VariableDeclaration", - "scope": 1390, - "src": "14062:25:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISovrynSwapX_$19466", - "typeString": "contract ISovrynSwapX" - }, - "typeName": { - "contractScope": null, - "id": 1346, - "name": "ISovrynSwapX", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 19466, - "src": "14062:12:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISovrynSwapX_$19466", - "typeString": "contract ISovrynSwapX" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1349, - "name": "_conversionId", - "nodeType": "VariableDeclaration", - "scope": 1390, - "src": "14091:21:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1348, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "14091:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1351, - "name": "_minReturn", - "nodeType": "VariableDeclaration", - "scope": 1390, - "src": "14116:18:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1350, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "14116:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1353, - "name": "_beneficiary", - "nodeType": "VariableDeclaration", - "scope": 1390, - "src": "14138:20:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1352, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14138:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14035:126:3" - }, - "payable": false, - "returnParameters": { - "id": 1357, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1356, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1390, - "src": "14178:7:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1355, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "14178:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14177:9:3" - }, - "scope": 2459, - "src": "14007:558:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1596, - "nodeType": "Block", - "src": "15297:2085:3", - "statements": [ - { - "assignments": [], - "declarations": [ - { - "constant": false, - "id": 1407, - "name": "toAmount", - "nodeType": "VariableDeclaration", - "scope": 1597, - "src": "15301:16:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1406, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15301:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1408, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "15301:16:3" - }, - { - "assignments": [ - 1410 - ], - "declarations": [ - { - "constant": false, - "id": 1410, - "name": "fromAmount", - "nodeType": "VariableDeclaration", - "scope": 1597, - "src": "15321:18:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1409, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15321:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1412, - "initialValue": { - "argumentTypes": null, - "id": 1411, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1395, - "src": "15342:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "15321:28:3" - }, - { - "body": { - "id": 1585, - "nodeType": "Block", - "src": "15435:1809:3", - "statements": [ - { - "assignments": [ - 1425 - ], - "declarations": [ - { - "constant": false, - "id": 1425, - "name": "stepData", - "nodeType": "VariableDeclaration", - "scope": 1597, - "src": "15440:30:3", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ConversionStep_$724_memory_ptr", - "typeString": "struct SovrynSwapNetwork.ConversionStep" - }, - "typeName": { - "contractScope": null, - "id": 1424, - "name": "ConversionStep", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 724, - "src": "15440:14:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ConversionStep_$724_storage_ptr", - "typeString": "struct SovrynSwapNetwork.ConversionStep" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1429, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1426, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1393, - "src": "15473:5:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ConversionStep_$724_memory_$dyn_memory_ptr", - "typeString": "struct SovrynSwapNetwork.ConversionStep memory[] memory" - } - }, - "id": 1428, - "indexExpression": { - "argumentTypes": null, - "id": 1427, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1414, - "src": "15479:1:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "15473:8:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ConversionStep_$724_memory", - "typeString": "struct SovrynSwapNetwork.ConversionStep memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "15440:41:3" - }, - { - "condition": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1430, - "name": "stepData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1425, - "src": "15513:8:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ConversionStep_$724_memory_ptr", - "typeString": "struct SovrynSwapNetwork.ConversionStep memory" - } - }, - "id": 1431, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "isV28OrHigherConverter", - "nodeType": "MemberAccess", - "referencedDeclaration": 721, - "src": "15513:31:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - "id": 1468, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1462, - "name": "stepData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1425, - "src": "16026:8:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ConversionStep_$724_memory_ptr", - "typeString": "struct SovrynSwapNetwork.ConversionStep memory" - } - }, - "id": 1463, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "sourceToken", - "nodeType": "MemberAccess", - "referencedDeclaration": 715, - "src": "16026:20:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1465, - "name": "stepData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1425, - "src": "16062:8:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ConversionStep_$724_memory_ptr", - "typeString": "struct SovrynSwapNetwork.ConversionStep memory" - } - }, - "id": 1466, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "anchor", - "nodeType": "MemberAccess", - "referencedDeclaration": 713, - "src": "16062:15:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - ], - "id": 1464, - "name": "ISmartToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20295, - "src": "16050:11:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ISmartToken_$20295_$", - "typeString": "type(contract ISmartToken)" - } - }, - "id": 1467, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16050:28:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISmartToken_$20295", - "typeString": "contract ISmartToken" - } - }, - "src": "16026:52:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1478, - "nodeType": "IfStatement", - "src": "16022:218:3", - "trueBody": { - "id": 1477, - "nodeType": "Block", - "src": "16080:160:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1470, - "name": "stepData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1425, - "src": "16181:8:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ConversionStep_$724_memory_ptr", - "typeString": "struct SovrynSwapNetwork.ConversionStep memory" - } - }, - "id": 1471, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "sourceToken", - "nodeType": "MemberAccess", - "referencedDeclaration": 715, - "src": "16181:20:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1472, - "name": "stepData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1425, - "src": "16203:8:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ConversionStep_$724_memory_ptr", - "typeString": "struct SovrynSwapNetwork.ConversionStep memory" - } - }, - "id": 1473, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "converter", - "nodeType": "MemberAccess", - "referencedDeclaration": 711, - "src": "16203:18:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - { - "argumentTypes": null, - "id": 1474, - "name": "fromAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1410, - "src": "16223:10:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1469, - "name": "ensureAllowance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2059, - "src": "16165:15:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20Token_$20240_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (contract IERC20Token,address,uint256)" - } - }, - "id": 1475, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16165:69:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1476, - "nodeType": "ExpressionStatement", - "src": "16165:69:3" - } - ] - } - }, - "id": 1479, - "nodeType": "IfStatement", - "src": "15509:731:3", - "trueBody": { - "id": 1461, - "nodeType": "Block", - "src": "15546:342:3", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 1451, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 1445, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1434, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1432, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1414, - "src": "15720:1:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1433, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15725:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "15720:6:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1444, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1435, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1393, - "src": "15730:5:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ConversionStep_$724_memory_$dyn_memory_ptr", - "typeString": "struct SovrynSwapNetwork.ConversionStep memory[] memory" - } - }, - "id": 1439, - "indexExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1438, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1436, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1414, - "src": "15736:1:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 1437, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15740:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "15736:5:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "15730:12:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ConversionStep_$724_memory", - "typeString": "struct SovrynSwapNetwork.ConversionStep memory" - } - }, - "id": 1440, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "beneficiary", - "nodeType": "MemberAccess", - "referencedDeclaration": 719, - "src": "15730:24:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1442, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22397, - "src": "15766:4:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SovrynSwapNetwork_$2459", - "typeString": "contract SovrynSwapNetwork" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_SovrynSwapNetwork_$2459", - "typeString": "contract SovrynSwapNetwork" - } - ], - "id": 1441, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "15758:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1443, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15758:13:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "15730:41:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "15720:51:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "id": 1450, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "15775:34:3", - "subExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1446, - "name": "etherTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 731, - "src": "15776:11:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 1449, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1447, - "name": "stepData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1425, - "src": "15788:8:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ConversionStep_$724_memory_ptr", - "typeString": "struct SovrynSwapNetwork.ConversionStep memory" - } - }, - "id": 1448, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "sourceToken", - "nodeType": "MemberAccess", - "referencedDeclaration": 715, - "src": "15788:20:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "15776:33:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "15720:89:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1460, - "nodeType": "IfStatement", - "src": "15716:166:3", - "trueBody": { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1453, - "name": "stepData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1425, - "src": "15829:8:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ConversionStep_$724_memory_ptr", - "typeString": "struct SovrynSwapNetwork.ConversionStep memory" - } - }, - "id": 1454, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "sourceToken", - "nodeType": "MemberAccess", - "referencedDeclaration": 715, - "src": "15829:20:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1455, - "name": "stepData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1425, - "src": "15851:8:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ConversionStep_$724_memory_ptr", - "typeString": "struct SovrynSwapNetwork.ConversionStep memory" - } - }, - "id": 1456, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "converter", - "nodeType": "MemberAccess", - "referencedDeclaration": 711, - "src": "15851:18:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - { - "argumentTypes": null, - "id": 1457, - "name": "fromAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1410, - "src": "15871:10:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1452, - "name": "safeTransfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21881, - "src": "15816:12:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20Token_$20240_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (contract IERC20Token,address,uint256)" - } - }, - "id": 1458, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15816:66:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1459, - "nodeType": "ExpressionStatement", - "src": "15816:66:3" - } - } - ] - } - }, - { - "condition": { - "argumentTypes": null, - "id": 1482, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "16273:32:3", - "subExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1480, - "name": "stepData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1425, - "src": "16274:8:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ConversionStep_$724_memory_ptr", - "typeString": "struct SovrynSwapNetwork.ConversionStep memory" - } - }, - "id": 1481, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "isV28OrHigherConverter", - "nodeType": "MemberAccess", - "referencedDeclaration": 721, - "src": "16274:31:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "condition": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1498, - "name": "etherTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 731, - "src": "16438:11:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 1501, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1499, - "name": "stepData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1425, - "src": "16450:8:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ConversionStep_$724_memory_ptr", - "typeString": "struct SovrynSwapNetwork.ConversionStep memory" - } - }, - "id": 1500, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "sourceToken", - "nodeType": "MemberAccess", - "referencedDeclaration": 715, - "src": "16450:20:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16438:33:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "expression": { - "argumentTypes": null, - "id": 1536, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1522, - "name": "toAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1407, - "src": "16662:8:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1526, - "name": "stepData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1425, - "src": "16700:8:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ConversionStep_$724_memory_ptr", - "typeString": "struct SovrynSwapNetwork.ConversionStep memory" - } - }, - "id": 1527, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "sourceToken", - "nodeType": "MemberAccess", - "referencedDeclaration": 715, - "src": "16700:20:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1528, - "name": "stepData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1425, - "src": "16722:8:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ConversionStep_$724_memory_ptr", - "typeString": "struct SovrynSwapNetwork.ConversionStep memory" - } - }, - "id": 1529, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "targetToken", - "nodeType": "MemberAccess", - "referencedDeclaration": 717, - "src": "16722:20:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - { - "argumentTypes": null, - "id": 1530, - "name": "fromAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1410, - "src": "16744:10:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1531, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22338, - "src": "16756:3:3", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1532, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "16756:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1533, - "name": "stepData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1425, - "src": "16768:8:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ConversionStep_$724_memory_ptr", - "typeString": "struct SovrynSwapNetwork.ConversionStep memory" - } - }, - "id": 1534, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "beneficiary", - "nodeType": "MemberAccess", - "referencedDeclaration": 719, - "src": "16768:20:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1523, - "name": "stepData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1425, - "src": "16673:8:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ConversionStep_$724_memory_ptr", - "typeString": "struct SovrynSwapNetwork.ConversionStep memory" - } - }, - "id": 1524, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "converter", - "nodeType": "MemberAccess", - "referencedDeclaration": 711, - "src": "16673:18:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - "id": 1525, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "convert", - "nodeType": "MemberAccess", - "referencedDeclaration": 11696, - "src": "16673:26:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_payable$_t_contract$_IERC20Token_$20240_$_t_contract$_IERC20Token_$20240_$_t_uint256_$_t_address_$_t_address_$returns$_t_uint256_$", - "typeString": "function (contract IERC20Token,contract IERC20Token,uint256,address,address) payable external returns (uint256)" - } - }, - "id": 1535, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16673:116:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "16662:127:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1537, - "nodeType": "ExpressionStatement", - "src": "16662:127:3" - }, - "id": 1538, - "nodeType": "IfStatement", - "src": "16434:355:3", - "trueBody": { - "expression": { - "argumentTypes": null, - "id": 1520, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1502, - "name": "toAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1407, - "src": "16477:8:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1510, - "name": "stepData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1425, - "src": "16538:8:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ConversionStep_$724_memory_ptr", - "typeString": "struct SovrynSwapNetwork.ConversionStep memory" - } - }, - "id": 1511, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "sourceToken", - "nodeType": "MemberAccess", - "referencedDeclaration": 715, - "src": "16538:20:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1512, - "name": "stepData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1425, - "src": "16565:8:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ConversionStep_$724_memory_ptr", - "typeString": "struct SovrynSwapNetwork.ConversionStep memory" - } - }, - "id": 1513, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "targetToken", - "nodeType": "MemberAccess", - "referencedDeclaration": 717, - "src": "16565:20:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - { - "argumentTypes": null, - "id": 1514, - "name": "fromAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1410, - "src": "16592:10:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1515, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22338, - "src": "16609:3:3", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1516, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "16609:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1517, - "name": "stepData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1425, - "src": "16626:8:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ConversionStep_$724_memory_ptr", - "typeString": "struct SovrynSwapNetwork.ConversionStep memory" - } - }, - "id": 1518, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "beneficiary", - "nodeType": "MemberAccess", - "referencedDeclaration": 719, - "src": "16626:20:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1507, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22338, - "src": "16521:3:3", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1508, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "16521:9:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1503, - "name": "stepData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1425, - "src": "16488:8:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ConversionStep_$724_memory_ptr", - "typeString": "struct SovrynSwapNetwork.ConversionStep memory" - } - }, - "id": 1504, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "converter", - "nodeType": "MemberAccess", - "referencedDeclaration": 711, - "src": "16488:18:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - "id": 1505, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "convert", - "nodeType": "MemberAccess", - "referencedDeclaration": 11696, - "src": "16488:26:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_payable$_t_contract$_IERC20Token_$20240_$_t_contract$_IERC20Token_$20240_$_t_uint256_$_t_address_$_t_address_$returns$_t_uint256_$", - "typeString": "function (contract IERC20Token,contract IERC20Token,uint256,address,address) payable external returns (uint256)" - } - }, - "id": 1506, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "16488:32:3", - "typeDescriptions": { - "typeIdentifier": "t_function_setvalue_nonpayable$_t_uint256_$returns$_t_function_external_payable$_t_contract$_IERC20Token_$20240_$_t_contract$_IERC20Token_$20240_$_t_uint256_$_t_address_$_t_address_$returns$_t_uint256_$value_$", - "typeString": "function (uint256) returns (function (contract IERC20Token,contract IERC20Token,uint256,address,address) payable external returns (uint256))" - } - }, - "id": 1509, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16488:43:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_payable$_t_contract$_IERC20Token_$20240_$_t_contract$_IERC20Token_$20240_$_t_uint256_$_t_address_$_t_address_$returns$_t_uint256_$value", - "typeString": "function (contract IERC20Token,contract IERC20Token,uint256,address,address) payable external returns (uint256)" - } - }, - "id": 1519, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16488:164:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "16477:175:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1521, - "nodeType": "ExpressionStatement", - "src": "16477:175:3" - } - }, - "id": 1539, - "nodeType": "IfStatement", - "src": "16269:520:3", - "trueBody": { - "expression": { - "argumentTypes": null, - "id": 1496, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1483, - "name": "toAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1407, - "src": "16311:8:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1489, - "name": "stepData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1425, - "src": "16366:8:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ConversionStep_$724_memory_ptr", - "typeString": "struct SovrynSwapNetwork.ConversionStep memory" - } - }, - "id": 1490, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "sourceToken", - "nodeType": "MemberAccess", - "referencedDeclaration": 715, - "src": "16366:20:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1491, - "name": "stepData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1425, - "src": "16388:8:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ConversionStep_$724_memory_ptr", - "typeString": "struct SovrynSwapNetwork.ConversionStep memory" - } - }, - "id": 1492, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "targetToken", - "nodeType": "MemberAccess", - "referencedDeclaration": 717, - "src": "16388:20:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - { - "argumentTypes": null, - "id": 1493, - "name": "fromAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1410, - "src": "16410:10:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "hexValue": "31", - "id": 1494, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16422:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1485, - "name": "stepData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1425, - "src": "16339:8:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ConversionStep_$724_memory_ptr", - "typeString": "struct SovrynSwapNetwork.ConversionStep memory" - } - }, - "id": 1486, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "converter", - "nodeType": "MemberAccess", - "referencedDeclaration": 711, - "src": "16339:18:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - ], - "id": 1484, - "name": "ILegacyConverter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 689, - "src": "16322:16:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ILegacyConverter_$689_$", - "typeString": "type(contract ILegacyConverter)" - } - }, - "id": 1487, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16322:36:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ILegacyConverter_$689", - "typeString": "contract ILegacyConverter" - } - }, - "id": 1488, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "change", - "nodeType": "MemberAccess", - "referencedDeclaration": 688, - "src": "16322:43:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_contract$_IERC20Token_$20240_$_t_contract$_IERC20Token_$20240_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (contract IERC20Token,contract IERC20Token,uint256,uint256) external returns (uint256)" - } - }, - "id": 1495, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16322:102:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "16311:113:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1497, - "nodeType": "ExpressionStatement", - "src": "16311:113:3" - } - }, - { - "condition": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1540, - "name": "stepData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1425, - "src": "16833:8:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ConversionStep_$724_memory_ptr", - "typeString": "struct SovrynSwapNetwork.ConversionStep memory" - } - }, - "id": 1541, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "processAffiliateFee", - "nodeType": "MemberAccess", - "referencedDeclaration": 723, - "src": "16833:28:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1567, - "nodeType": "IfStatement", - "src": "16829:269:3", - "trueBody": { - "id": 1566, - "nodeType": "Block", - "src": "16863:235:3", - "statements": [ - { - "assignments": [ - 1543 - ], - "declarations": [ - { - "constant": false, - "id": 1543, - "name": "affiliateAmount", - "nodeType": "VariableDeclaration", - "scope": 1597, - "src": "16869:23:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1542, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "16869:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1551, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1549, - "name": "AFFILIATE_FEE_RESOLUTION", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 706, - "src": "16927:24:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1546, - "name": "_affiliateFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1401, - "src": "16908:13:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1544, - "name": "toAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1407, - "src": "16895:8:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1545, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 21791, - "src": "16895:12:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 1547, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16895:27:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1548, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "div", - "nodeType": "MemberAccess", - "referencedDeclaration": 21816, - "src": "16895:31:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 1550, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16895:57:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "16869:83:3" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1556, - "name": "_affiliateAccount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1399, - "src": "16996:17:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1557, - "name": "affiliateAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1543, - "src": "17015:15:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1553, - "name": "stepData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1425, - "src": "16966:8:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ConversionStep_$724_memory_ptr", - "typeString": "struct SovrynSwapNetwork.ConversionStep memory" - } - }, - "id": 1554, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "targetToken", - "nodeType": "MemberAccess", - "referencedDeclaration": 717, - "src": "16966:20:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "id": 1555, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 20219, - "src": "16966:29:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) external returns (bool)" - } - }, - "id": 1558, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16966:65:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552525f4645455f5452414e534645525f4641494c4544", - "id": 1559, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17033:25:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_adc6d664872bc68defa0e975019744f9c0f552331af13f5f130791cee181d10c", - "typeString": "literal_string \"ERR_FEE_TRANSFER_FAILED\"" - }, - "value": "ERR_FEE_TRANSFER_FAILED" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_adc6d664872bc68defa0e975019744f9c0f552331af13f5f130791cee181d10c", - "typeString": "literal_string \"ERR_FEE_TRANSFER_FAILED\"" - } - ], - "id": 1552, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 22341, - 22342 - ], - "referencedDeclaration": 22342, - "src": "16958:7:3", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1560, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16958:101:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1561, - "nodeType": "ExpressionStatement", - "src": "16958:101:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 1564, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1562, - "name": "toAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1407, - "src": "17065:8:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "-=", - "rightHandSide": { - "argumentTypes": null, - "id": 1563, - "name": "affiliateAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1543, - "src": "17077:15:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "17065:27:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1565, - "nodeType": "ExpressionStatement", - "src": "17065:27:3" - } - ] - } - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1569, - "name": "stepData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1425, - "src": "17119:8:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ConversionStep_$724_memory_ptr", - "typeString": "struct SovrynSwapNetwork.ConversionStep memory" - } - }, - "id": 1570, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "anchor", - "nodeType": "MemberAccess", - "referencedDeclaration": 713, - "src": "17119:15:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1571, - "name": "stepData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1425, - "src": "17136:8:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ConversionStep_$724_memory_ptr", - "typeString": "struct SovrynSwapNetwork.ConversionStep memory" - } - }, - "id": 1572, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "sourceToken", - "nodeType": "MemberAccess", - "referencedDeclaration": 715, - "src": "17136:20:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1573, - "name": "stepData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1425, - "src": "17158:8:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ConversionStep_$724_memory_ptr", - "typeString": "struct SovrynSwapNetwork.ConversionStep memory" - } - }, - "id": 1574, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "targetToken", - "nodeType": "MemberAccess", - "referencedDeclaration": 717, - "src": "17158:20:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - { - "argumentTypes": null, - "id": 1575, - "name": "fromAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1410, - "src": "17180:10:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1576, - "name": "toAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1407, - "src": "17192:8:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1577, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22338, - "src": "17202:3:3", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1578, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "17202:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - }, - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1568, - "name": "Conversion", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 745, - "src": "17108:10:3", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_address_$returns$__$", - "typeString": "function (address,address,address,uint256,uint256,address)" - } - }, - "id": 1579, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17108:105:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1580, - "nodeType": "EmitStatement", - "src": "17103:110:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 1583, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1581, - "name": "fromAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1410, - "src": "17218:10:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1582, - "name": "toAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1407, - "src": "17231:8:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "17218:21:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1584, - "nodeType": "ExpressionStatement", - "src": "17218:21:3" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1420, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1417, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1414, - "src": "15412:1:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1418, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1393, - "src": "15416:5:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ConversionStep_$724_memory_$dyn_memory_ptr", - "typeString": "struct SovrynSwapNetwork.ConversionStep memory[] memory" - } - }, - "id": 1419, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "15416:12:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "15412:16:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 1586, - "initializationExpression": { - "assignments": [ - 1414 - ], - "declarations": [ - { - "constant": false, - "id": 1414, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 1597, - "src": "15397:9:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1413, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15397:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1416, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 1415, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15409:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "15397:13:3" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 1422, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "15430:3:3", - "subExpression": { - "argumentTypes": null, - "id": 1421, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1414, - "src": "15430:1:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1423, - "nodeType": "ExpressionStatement", - "src": "15430:3:3" - }, - "nodeType": "ForStatement", - "src": "15392:1852:3" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1590, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1588, - "name": "toAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1407, - "src": "17313:8:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 1589, - "name": "_minReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1397, - "src": "17325:10:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "17313:22:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552525f52455455524e5f544f4f5f4c4f57", - "id": 1591, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17337:20:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c3237cc40443cfd1e0e9492ef35b7447eab6349fb6eac5eb1ec626edd3c555aa", - "typeString": "literal_string \"ERR_RETURN_TOO_LOW\"" - }, - "value": "ERR_RETURN_TOO_LOW" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_c3237cc40443cfd1e0e9492ef35b7447eab6349fb6eac5eb1ec626edd3c555aa", - "typeString": "literal_string \"ERR_RETURN_TOO_LOW\"" - } - ], - "id": 1587, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 22341, - 22342 - ], - "referencedDeclaration": 22342, - "src": "17305:7:3", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1592, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17305:53:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1593, - "nodeType": "ExpressionStatement", - "src": "17305:53:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 1594, - "name": "toAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1407, - "src": "17370:8:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 1405, - "id": 1595, - "nodeType": "Return", - "src": "17363:15:3" - } - ] - }, - "documentation": "@dev executes the actual conversion by following the conversion path\n\t * @param _data conversion data, see ConversionStep struct above\n@param _amount amount to convert from, in the source token\n@param _minReturn if the conversion results in an amount smaller than the minimum return - it is cancelled, must be greater than zero\n@param _affiliateAccount affiliate account\n@param _affiliateFee affiliate fee in PPM\n\t * @return amount of tokens received from the conversion", - "id": 1597, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "doConversion", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1402, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1393, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 1597, - "src": "15150:22:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ConversionStep_$724_memory_$dyn_memory_ptr", - "typeString": "struct SovrynSwapNetwork.ConversionStep[]" - }, - "typeName": { - "baseType": { - "contractScope": null, - "id": 1391, - "name": "ConversionStep", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 724, - "src": "15150:14:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ConversionStep_$724_storage_ptr", - "typeString": "struct SovrynSwapNetwork.ConversionStep" - } - }, - "id": 1392, - "length": null, - "nodeType": "ArrayTypeName", - "src": "15150:16:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ConversionStep_$724_storage_$dyn_storage_ptr", - "typeString": "struct SovrynSwapNetwork.ConversionStep[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1395, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 1597, - "src": "15176:15:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1394, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15176:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1397, - "name": "_minReturn", - "nodeType": "VariableDeclaration", - "scope": 1597, - "src": "15195:18:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1396, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15195:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1399, - "name": "_affiliateAccount", - "nodeType": "VariableDeclaration", - "scope": 1597, - "src": "15217:25:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1398, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15217:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1401, - "name": "_affiliateFee", - "nodeType": "VariableDeclaration", - "scope": 1597, - "src": "15246:21:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1400, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15246:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15146:124:3" - }, - "payable": false, - "returnParameters": { - "id": 1405, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1404, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1597, - "src": "15288:7:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1403, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15288:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15287:9:3" - }, - "scope": 2459, - "src": "15125:2257:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 1690, - "nodeType": "Block", - "src": "17805:1247:3", - "statements": [ - { - "assignments": [ - 1607 - ], - "declarations": [ - { - "constant": false, - "id": 1607, - "name": "firstConverter", - "nodeType": "VariableDeclaration", - "scope": 1691, - "src": "17809:25:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - }, - "typeName": { - "contractScope": null, - "id": 1606, - "name": "IConverter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 11817, - "src": "17809:10:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1613, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 1609, - "name": "_anchor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1601, - "src": "17848:7:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - }, - "id": 1610, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "owner", - "nodeType": "MemberAccess", - "referencedDeclaration": 22238, - "src": "17848:13:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", - "typeString": "function () view external returns (address)" - } - }, - "id": 1611, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17848:15:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1608, - "name": "IConverter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11817, - "src": "17837:10:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IConverter_$11817_$", - "typeString": "type(contract IConverter)" - } - }, - "id": 1612, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17837:27:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "17809:55:3" - }, - { - "assignments": [ - 1615 - ], - "declarations": [ - { - "constant": false, - "id": 1615, - "name": "isNewerConverter", - "nodeType": "VariableDeclaration", - "scope": 1691, - "src": "17868:21:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1614, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "17868:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1619, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1617, - "name": "firstConverter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1607, - "src": "17915:14:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - ], - "id": 1616, - "name": "isV28OrHigherConverter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2219, - "src": "17892:22:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_contract$_IConverter_$11817_$returns$_t_bool_$", - "typeString": "function (contract IConverter) view returns (bool)" - } - }, - "id": 1618, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17892:38:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "17868:62:3" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1623, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1620, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22338, - "src": "17948:3:3", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1621, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "17948:9:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1622, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17960:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "17948:13:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "condition": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1648, - "name": "etherTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 731, - "src": "18379:11:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 1650, - "indexExpression": { - "argumentTypes": null, - "id": 1649, - "name": "_sourceToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1599, - "src": "18391:12:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "18379:25:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 1687, - "nodeType": "Block", - "src": "18764:285:3", - "statements": [ - { - "condition": { - "argumentTypes": null, - "id": 1669, - "name": "isNewerConverter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1615, - "src": "18892:16:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1679, - "name": "_sourceToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1599, - "src": "19004:12:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1680, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22338, - "src": "19018:3:3", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1681, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "19018:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1682, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22397, - "src": "19030:4:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SovrynSwapNetwork_$2459", - "typeString": "contract SovrynSwapNetwork" - } - }, - { - "argumentTypes": null, - "id": 1683, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1603, - "src": "19036:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_contract$_SovrynSwapNetwork_$2459", - "typeString": "contract SovrynSwapNetwork" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1678, - "name": "safeTransferFrom", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21904, - "src": "18987:16:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20Token_$20240_$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (contract IERC20Token,address,address,uint256)" - } - }, - "id": 1684, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18987:57:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1685, - "nodeType": "ExpressionStatement", - "src": "18987:57:3" - }, - "id": 1686, - "nodeType": "IfStatement", - "src": "18888:156:3", - "trueBody": { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1671, - "name": "_sourceToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1599, - "src": "18927:12:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1672, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22338, - "src": "18941:3:3", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1673, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "18941:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1674, - "name": "firstConverter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1607, - "src": "18953:14:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - { - "argumentTypes": null, - "id": 1675, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1603, - "src": "18969:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1670, - "name": "safeTransferFrom", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21904, - "src": "18910:16:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20Token_$20240_$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (contract IERC20Token,address,address,uint256)" - } - }, - "id": 1676, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18910:67:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1677, - "nodeType": "ExpressionStatement", - "src": "18910:67:3" - } - } - ] - }, - "id": 1688, - "nodeType": "IfStatement", - "src": "18375:674:3", - "trueBody": { - "id": 1668, - "nodeType": "Block", - "src": "18406:327:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1652, - "name": "_sourceToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1599, - "src": "18578:12:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1653, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22338, - "src": "18592:3:3", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1654, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "18592:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1655, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22397, - "src": "18604:4:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SovrynSwapNetwork_$2459", - "typeString": "contract SovrynSwapNetwork" - } - }, - { - "argumentTypes": null, - "id": 1656, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1603, - "src": "18610:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_contract$_SovrynSwapNetwork_$2459", - "typeString": "contract SovrynSwapNetwork" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1651, - "name": "safeTransferFrom", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21904, - "src": "18561:16:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20Token_$20240_$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (contract IERC20Token,address,address,uint256)" - } - }, - "id": 1657, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18561:57:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1658, - "nodeType": "ExpressionStatement", - "src": "18561:57:3" - }, - { - "condition": { - "argumentTypes": null, - "id": 1659, - "name": "isNewerConverter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1615, - "src": "18667:16:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1667, - "nodeType": "IfStatement", - "src": "18663:65:3", - "trueBody": { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1664, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1603, - "src": "18720:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1661, - "name": "_sourceToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1599, - "src": "18697:12:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - ], - "id": 1660, - "name": "IEtherToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20266, - "src": "18685:11:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IEtherToken_$20266_$", - "typeString": "type(contract IEtherToken)" - } - }, - "id": 1662, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18685:25:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IEtherToken_$20266", - "typeString": "contract IEtherToken" - } - }, - "id": 1663, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "withdraw", - "nodeType": "MemberAccess", - "referencedDeclaration": 20253, - "src": "18685:34:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256) external" - } - }, - "id": 1665, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18685:43:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1666, - "nodeType": "ExpressionStatement", - "src": "18685:43:3" - } - } - ] - } - }, - "id": 1689, - "nodeType": "IfStatement", - "src": "17944:1105:3", - "trueBody": { - "id": 1647, - "nodeType": "Block", - "src": "17963:388:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1628, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1625, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22338, - "src": "18001:3:3", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1626, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "18001:9:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 1627, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1603, - "src": "18014:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "18001:20:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552525f4554485f414d4f554e545f4d49534d41544348", - "id": 1629, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "18023:25:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_b27c160ac497b67c4fef6b5554e0b1a41f3c9b44e4bd8482662df760b76c093b", - "typeString": "literal_string \"ERR_ETH_AMOUNT_MISMATCH\"" - }, - "value": "ERR_ETH_AMOUNT_MISMATCH" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_b27c160ac497b67c4fef6b5554e0b1a41f3c9b44e4bd8482662df760b76c093b", - "typeString": "literal_string \"ERR_ETH_AMOUNT_MISMATCH\"" - } - ], - "id": 1624, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 22341, - 22342 - ], - "referencedDeclaration": 22342, - "src": "17993:7:3", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1630, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17993:56:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1631, - "nodeType": "ExpressionStatement", - "src": "17993:56:3" - }, - { - "condition": { - "argumentTypes": null, - "id": 1633, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "18242:17:3", - "subExpression": { - "argumentTypes": null, - "id": 1632, - "name": "isNewerConverter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1615, - "src": "18243:16:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1646, - "nodeType": "IfStatement", - "src": "18238:108:3", - "trueBody": { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1641, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22338, - "src": "18334:3:3", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1642, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "18334:9:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1636, - "name": "firstConverter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1607, - "src": "18303:14:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - ], - "id": 1635, - "name": "getConverterEtherTokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2100, - "src": "18273:29:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_contract$_IConverter_$11817_$returns$_t_address_$", - "typeString": "function (contract IConverter) view returns (address)" - } - }, - "id": 1637, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18273:45:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1634, - "name": "IEtherToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20266, - "src": "18261:11:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IEtherToken_$20266_$", - "typeString": "type(contract IEtherToken)" - } - }, - "id": 1638, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18261:58:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IEtherToken_$20266", - "typeString": "contract IEtherToken" - } - }, - "id": 1639, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "deposit", - "nodeType": "MemberAccess", - "referencedDeclaration": 20248, - "src": "18261:66:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_payable$__$returns$__$", - "typeString": "function () payable external" - } - }, - "id": 1640, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "18261:72:3", - "typeDescriptions": { - "typeIdentifier": "t_function_setvalue_nonpayable$_t_uint256_$returns$_t_function_external_payable$__$returns$__$value_$", - "typeString": "function (uint256) returns (function () payable external)" - } - }, - "id": 1643, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18261:83:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_payable$__$returns$__$value", - "typeString": "function () payable external" - } - }, - "id": 1644, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18261:85:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1645, - "nodeType": "ExpressionStatement", - "src": "18261:85:3" - } - } - ] - } - } - ] - }, - "documentation": "@dev validates msg.value and prepares the conversion source token for the conversion\n\t * @param _sourceToken source token of the first conversion step\n@param _anchor converter anchor of the first conversion step\n@param _amount amount to convert from, in the source token", - "id": 1691, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "handleSourceToken", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1604, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1599, - "name": "_sourceToken", - "nodeType": "VariableDeclaration", - "scope": 1691, - "src": "17722:24:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - "typeName": { - "contractScope": null, - "id": 1598, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "17722:11:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1601, - "name": "_anchor", - "nodeType": "VariableDeclaration", - "scope": 1691, - "src": "17750:24:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - }, - "typeName": { - "contractScope": null, - "id": 1600, - "name": "IConverterAnchor", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 11826, - "src": "17750:16:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1603, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 1691, - "src": "17778:15:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1602, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "17778:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "17718:78:3" - }, - "payable": false, - "returnParameters": { - "id": 1605, - "nodeType": "ParameterList", - "parameters": [], - "src": "17805:0:3" - }, - "scope": 2459, - "src": "17692:1360:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 1749, - "nodeType": "Block", - "src": "19466:630:3", - "statements": [ - { - "assignments": [ - 1702 - ], - "declarations": [ - { - "constant": false, - "id": 1702, - "name": "stepData", - "nodeType": "VariableDeclaration", - "scope": 1750, - "src": "19470:30:3", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ConversionStep_$724_memory_ptr", - "typeString": "struct SovrynSwapNetwork.ConversionStep" - }, - "typeName": { - "contractScope": null, - "id": 1701, - "name": "ConversionStep", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 724, - "src": "19470:14:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ConversionStep_$724_storage_ptr", - "typeString": "struct SovrynSwapNetwork.ConversionStep" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1709, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1703, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1694, - "src": "19503:5:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ConversionStep_$724_memory_$dyn_memory_ptr", - "typeString": "struct SovrynSwapNetwork.ConversionStep memory[] memory" - } - }, - "id": 1708, - "indexExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1707, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1704, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1694, - "src": "19509:5:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ConversionStep_$724_memory_$dyn_memory_ptr", - "typeString": "struct SovrynSwapNetwork.ConversionStep memory[] memory" - } - }, - "id": 1705, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "19509:12:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 1706, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19524:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "19509:16:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "19503:23:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ConversionStep_$724_memory", - "typeString": "struct SovrynSwapNetwork.ConversionStep memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "19470:56:3" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1715, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1710, - "name": "stepData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1702, - "src": "19593:8:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ConversionStep_$724_memory_ptr", - "typeString": "struct SovrynSwapNetwork.ConversionStep memory" - } - }, - "id": 1711, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "beneficiary", - "nodeType": "MemberAccess", - "referencedDeclaration": 719, - "src": "19593:20:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1713, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22397, - "src": "19625:4:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SovrynSwapNetwork_$2459", - "typeString": "contract SovrynSwapNetwork" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_SovrynSwapNetwork_$2459", - "typeString": "contract SovrynSwapNetwork" - } - ], - "id": 1712, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "19617:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1714, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19617:13:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "19593:37:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1717, - "nodeType": "IfStatement", - "src": "19589:50:3", - "trueBody": { - "expression": null, - "functionReturnParameters": 1700, - "id": 1716, - "nodeType": "Return", - "src": "19632:7:3" - } - }, - { - "assignments": [ - 1719 - ], - "declarations": [ - { - "constant": false, - "id": 1719, - "name": "targetToken", - "nodeType": "VariableDeclaration", - "scope": 1750, - "src": "19643:23:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - "typeName": { - "contractScope": null, - "id": 1718, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "19643:11:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1722, - "initialValue": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1720, - "name": "stepData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1702, - "src": "19669:8:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ConversionStep_$724_memory_ptr", - "typeString": "struct SovrynSwapNetwork.ConversionStep memory" - } - }, - "id": 1721, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "targetToken", - "nodeType": "MemberAccess", - "referencedDeclaration": 717, - "src": "19669:20:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "19643:46:3" - }, - { - "condition": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1723, - "name": "etherTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 731, - "src": "19720:11:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 1725, - "indexExpression": { - "argumentTypes": null, - "id": 1724, - "name": "targetToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1719, - "src": "19732:11:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "19720:24:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 1747, - "nodeType": "Block", - "src": "20035:58:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1742, - "name": "targetToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1719, - "src": "20053:11:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - { - "argumentTypes": null, - "id": 1743, - "name": "_beneficiary", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1698, - "src": "20066:12:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1744, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1696, - "src": "20080:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1741, - "name": "safeTransfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21881, - "src": "20040:12:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20Token_$20240_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (contract IERC20Token,address,uint256)" - } - }, - "id": 1745, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20040:48:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1746, - "nodeType": "ExpressionStatement", - "src": "20040:48:3" - } - ] - }, - "id": 1748, - "nodeType": "IfStatement", - "src": "19716:377:3", - "trueBody": { - "id": 1740, - "nodeType": "Block", - "src": "19746:258:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1729, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "19824:32:3", - "subExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1727, - "name": "stepData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1702, - "src": "19825:8:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ConversionStep_$724_memory_ptr", - "typeString": "struct SovrynSwapNetwork.ConversionStep memory" - } - }, - "id": 1728, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "isV28OrHigherConverter", - "nodeType": "MemberAccess", - "referencedDeclaration": 721, - "src": "19825:31:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 1726, - "name": "assert", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22327, - "src": "19817:6:3", - "typeDescriptions": { - "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 1730, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19817:40:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1731, - "nodeType": "ExpressionStatement", - "src": "19817:40:3" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1736, - "name": "_beneficiary", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1698, - "src": "19977:12:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1737, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1696, - "src": "19991:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1733, - "name": "targetToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1719, - "src": "19953:11:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - ], - "id": 1732, - "name": "IEtherToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20266, - "src": "19941:11:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IEtherToken_$20266_$", - "typeString": "type(contract IEtherToken)" - } - }, - "id": 1734, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19941:24:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IEtherToken_$20266", - "typeString": "contract IEtherToken" - } - }, - "id": 1735, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "withdrawTo", - "nodeType": "MemberAccess", - "referencedDeclaration": 20265, - "src": "19941:35:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256) external" - } - }, - "id": 1738, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19941:58:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1739, - "nodeType": "ExpressionStatement", - "src": "19941:58:3" - } - ] - } - } - ] - }, - "documentation": "@dev handles the conversion target token if the network still holds it at the end of the conversion\n\t * @param _data conversion data, see ConversionStep struct above\n@param _amount conversion target amount\n@param _beneficiary wallet to receive the conversion result", - "id": 1750, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "handleTargetToken", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1699, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1694, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 1750, - "src": "19389:22:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ConversionStep_$724_memory_$dyn_memory_ptr", - "typeString": "struct SovrynSwapNetwork.ConversionStep[]" - }, - "typeName": { - "baseType": { - "contractScope": null, - "id": 1692, - "name": "ConversionStep", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 724, - "src": "19389:14:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ConversionStep_$724_storage_ptr", - "typeString": "struct SovrynSwapNetwork.ConversionStep" - } - }, - "id": 1693, - "length": null, - "nodeType": "ArrayTypeName", - "src": "19389:16:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ConversionStep_$724_storage_$dyn_storage_ptr", - "typeString": "struct SovrynSwapNetwork.ConversionStep[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1696, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 1750, - "src": "19415:15:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1695, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "19415:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1698, - "name": "_beneficiary", - "nodeType": "VariableDeclaration", - "scope": 1750, - "src": "19434:20:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1697, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "19434:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "19385:72:3" - }, - "payable": false, - "returnParameters": { - "id": 1700, - "nodeType": "ParameterList", - "parameters": [], - "src": "19466:0:3" - }, - "scope": 2459, - "src": "19359:737:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 2019, - "nodeType": "Block", - "src": "20725:3220:3", - "statements": [ - { - "assignments": [ - 1766 - ], - "declarations": [ - { - "constant": false, - "id": 1766, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 2020, - "src": "20729:28:3", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ConversionStep_$724_memory_$dyn_memory_ptr", - "typeString": "struct SovrynSwapNetwork.ConversionStep[]" - }, - "typeName": { - "baseType": { - "contractScope": null, - "id": 1764, - "name": "ConversionStep", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 724, - "src": "20729:14:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ConversionStep_$724_storage_ptr", - "typeString": "struct SovrynSwapNetwork.ConversionStep" - } - }, - "id": 1765, - "length": null, - "nodeType": "ArrayTypeName", - "src": "20729:16:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ConversionStep_$724_storage_$dyn_storage_ptr", - "typeString": "struct SovrynSwapNetwork.ConversionStep[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1775, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1773, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1770, - "name": "_conversionPath", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1753, - "src": "20781:15:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", - "typeString": "contract IERC20Token[] memory" - } - }, - "id": 1771, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "20781:22:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "hexValue": "32", - "id": 1772, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20806:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "src": "20781:26:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1769, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "20760:20:3", - "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_ConversionStep_$724_memory_$dyn_memory_$", - "typeString": "function (uint256) pure returns (struct SovrynSwapNetwork.ConversionStep memory[] memory)" - }, - "typeName": { - "baseType": { - "contractScope": null, - "id": 1767, - "name": "ConversionStep", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 724, - "src": "20764:14:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ConversionStep_$724_storage_ptr", - "typeString": "struct SovrynSwapNetwork.ConversionStep" - } - }, - "id": 1768, - "length": null, - "nodeType": "ArrayTypeName", - "src": "20764:16:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ConversionStep_$724_storage_$dyn_storage_ptr", - "typeString": "struct SovrynSwapNetwork.ConversionStep[]" - } - } - }, - "id": 1774, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20760:48:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ConversionStep_$724_memory_$dyn_memory", - "typeString": "struct SovrynSwapNetwork.ConversionStep memory[] memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "20729:79:3" - }, - { - "assignments": [ - 1777 - ], - "declarations": [ - { - "constant": false, - "id": 1777, - "name": "affiliateFeeProcessed", - "nodeType": "VariableDeclaration", - "scope": 2020, - "src": "20813:26:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1776, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "20813:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1779, - "initialValue": { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 1778, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20842:5:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "nodeType": "VariableDeclarationStatement", - "src": "20813:34:3" - }, - { - "assignments": [ - 1781 - ], - "declarations": [ - { - "constant": false, - "id": 1781, - "name": "bntToken", - "nodeType": "VariableDeclaration", - "scope": 2020, - "src": "20851:16:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1780, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "20851:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1785, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1783, - "name": "BNT_TOKEN", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20776, - "src": "20880:9:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 1782, - "name": "addressOf", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20931, - "src": "20870:9:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$", - "typeString": "function (bytes32) view returns (address)" - } - }, - "id": 1784, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20870:20:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "20851:39:3" - }, - { - "assignments": [], - "declarations": [ - { - "constant": false, - "id": 1787, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 2020, - "src": "20972:9:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1786, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "20972:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1788, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "20972:9:3" - }, - { - "body": { - "id": 1868, - "nodeType": "Block", - "src": "21037:894:3", - "statements": [ - { - "assignments": [ - 1804 - ], - "declarations": [ - { - "constant": false, - "id": 1804, - "name": "anchor", - "nodeType": "VariableDeclaration", - "scope": 2020, - "src": "21042:23:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - }, - "typeName": { - "contractScope": null, - "id": 1803, - "name": "IConverterAnchor", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 11826, - "src": "21042:16:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1812, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1806, - "name": "_conversionPath", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1753, - "src": "21085:15:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", - "typeString": "contract IERC20Token[] memory" - } - }, - "id": 1810, - "indexExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1809, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1807, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1787, - "src": "21101:1:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 1808, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21105:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "21101:5:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "21085:22:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - ], - "id": 1805, - "name": "IConverterAnchor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11826, - "src": "21068:16:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IConverterAnchor_$11826_$", - "typeString": "type(contract IConverterAnchor)" - } - }, - "id": 1811, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21068:40:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "21042:66:3" - }, - { - "assignments": [ - 1814 - ], - "declarations": [ - { - "constant": false, - "id": 1814, - "name": "converter", - "nodeType": "VariableDeclaration", - "scope": 2020, - "src": "21113:20:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - }, - "typeName": { - "contractScope": null, - "id": 1813, - "name": "IConverter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 11817, - "src": "21113:10:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1820, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 1816, - "name": "anchor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1804, - "src": "21147:6:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - }, - "id": 1817, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "owner", - "nodeType": "MemberAccess", - "referencedDeclaration": 22238, - "src": "21147:12:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", - "typeString": "function () view external returns (address)" - } - }, - "id": 1818, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21147:14:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1815, - "name": "IConverter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11817, - "src": "21136:10:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IConverter_$11817_$", - "typeString": "type(contract IConverter)" - } - }, - "id": 1819, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21136:26:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "21113:49:3" - }, - { - "assignments": [ - 1822 - ], - "declarations": [ - { - "constant": false, - "id": 1822, - "name": "targetToken", - "nodeType": "VariableDeclaration", - "scope": 2020, - "src": "21167:23:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - "typeName": { - "contractScope": null, - "id": 1821, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "21167:11:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1828, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1823, - "name": "_conversionPath", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1753, - "src": "21193:15:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", - "typeString": "contract IERC20Token[] memory" - } - }, - "id": 1827, - "indexExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1826, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1824, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1787, - "src": "21209:1:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "hexValue": "32", - "id": 1825, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21213:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "src": "21209:5:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "21193:22:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "21167:48:3" - }, - { - "assignments": [ - 1830 - ], - "declarations": [ - { - "constant": false, - "id": 1830, - "name": "processAffiliateFee", - "nodeType": "VariableDeclaration", - "scope": 2020, - "src": "21287:24:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1829, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "21287:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1839, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 1838, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 1834, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1831, - "name": "_affiliateFeeEnabled", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1757, - "src": "21314:20:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "id": 1833, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "21338:22:3", - "subExpression": { - "argumentTypes": null, - "id": 1832, - "name": "affiliateFeeProcessed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1777, - "src": "21339:21:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "21314:46:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1837, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1835, - "name": "targetToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1822, - "src": "21364:11:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 1836, - "name": "bntToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1781, - "src": "21379:8:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "21364:23:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "21314:73:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "21287:100:3" - }, - { - "condition": { - "argumentTypes": null, - "id": 1840, - "name": "processAffiliateFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1830, - "src": "21396:19:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1845, - "nodeType": "IfStatement", - "src": "21392:53:3", - "trueBody": { - "expression": { - "argumentTypes": null, - "id": 1843, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1841, - "name": "affiliateFeeProcessed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1777, - "src": "21417:21:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 1842, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21441:4:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "21417:28:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 1844, - "nodeType": "ExpressionStatement", - "src": "21417:28:3" - } - }, - { - "expression": { - "argumentTypes": null, - "id": 1866, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1846, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1766, - "src": "21451:4:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ConversionStep_$724_memory_$dyn_memory_ptr", - "typeString": "struct SovrynSwapNetwork.ConversionStep memory[] memory" - } - }, - "id": 1850, - "indexExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1849, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1847, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1787, - "src": "21456:1:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "hexValue": "32", - "id": 1848, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21460:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "src": "21456:5:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "21451:11:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ConversionStep_$724_memory", - "typeString": "struct SovrynSwapNetwork.ConversionStep memory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1852, - "name": "anchor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1804, - "src": "21526:6:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - }, - { - "argumentTypes": null, - "id": 1853, - "name": "converter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1814, - "src": "21574:9:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1854, - "name": "_conversionPath", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1753, - "src": "21638:15:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", - "typeString": "contract IERC20Token[] memory" - } - }, - "id": 1856, - "indexExpression": { - "argumentTypes": null, - "id": 1855, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1787, - "src": "21654:1:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "21638:18:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - { - "argumentTypes": null, - "id": 1857, - "name": "targetToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1822, - "src": "21675:11:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 1859, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21792:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 1858, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "21784:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1860, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21784:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1862, - "name": "converter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1814, - "src": "21864:9:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - ], - "id": 1861, - "name": "isV28OrHigherConverter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2219, - "src": "21841:22:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_contract$_IConverter_$11817_$returns$_t_bool_$", - "typeString": "function (contract IConverter) view returns (bool)" - } - }, - "id": 1863, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21841:33:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "id": 1864, - "name": "processAffiliateFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1830, - "src": "21901:19:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": null, - "id": 1851, - "name": "ConversionStep", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 724, - "src": "21465:14:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_ConversionStep_$724_storage_ptr_$", - "typeString": "type(struct SovrynSwapNetwork.ConversionStep storage pointer)" - } - }, - "id": 1865, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "names": [ - "anchor", - "converter", - "sourceToken", - "targetToken", - "beneficiary", - "isV28OrHigherConverter", - "processAffiliateFee" - ], - "nodeType": "FunctionCall", - "src": "21465:461:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ConversionStep_$724_memory", - "typeString": "struct SovrynSwapNetwork.ConversionStep memory" - } - }, - "src": "21451:475:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ConversionStep_$724_memory", - "typeString": "struct SovrynSwapNetwork.ConversionStep memory" - } - }, - "id": 1867, - "nodeType": "ExpressionStatement", - "src": "21451:475:3" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1798, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1793, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1787, - "src": "20997:1:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1797, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1794, - "name": "_conversionPath", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1753, - "src": "21001:15:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", - "typeString": "contract IERC20Token[] memory" - } - }, - "id": 1795, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "21001:22:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 1796, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21026:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "21001:26:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "20997:30:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 1869, - "initializationExpression": { - "expression": { - "argumentTypes": null, - "id": 1791, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1789, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1787, - "src": "20990:1:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 1790, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20994:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "20990:5:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1792, - "nodeType": "ExpressionStatement", - "src": "20990:5:3" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 1801, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1799, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1787, - "src": "21029:1:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "32", - "id": 1800, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21034:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "src": "21029:6:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1802, - "nodeType": "ExpressionStatement", - "src": "21029:6:3" - }, - "nodeType": "ForStatement", - "src": "20985:946:3" - }, - { - "assignments": [ - 1871 - ], - "declarations": [ - { - "constant": false, - "id": 1871, - "name": "stepData", - "nodeType": "VariableDeclaration", - "scope": 2020, - "src": "21971:30:3", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ConversionStep_$724_memory_ptr", - "typeString": "struct SovrynSwapNetwork.ConversionStep" - }, - "typeName": { - "contractScope": null, - "id": 1870, - "name": "ConversionStep", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 724, - "src": "21971:14:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ConversionStep_$724_storage_ptr", - "typeString": "struct SovrynSwapNetwork.ConversionStep" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1875, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1872, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1766, - "src": "22004:4:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ConversionStep_$724_memory_$dyn_memory_ptr", - "typeString": "struct SovrynSwapNetwork.ConversionStep memory[] memory" - } - }, - "id": 1874, - "indexExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1873, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22009:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "22004:7:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ConversionStep_$724_memory", - "typeString": "struct SovrynSwapNetwork.ConversionStep memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "21971:40:3" - }, - { - "condition": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1876, - "name": "etherTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 731, - "src": "22019:11:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 1879, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1877, - "name": "stepData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1871, - "src": "22031:8:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ConversionStep_$724_memory_ptr", - "typeString": "struct SovrynSwapNetwork.ConversionStep memory" - } - }, - "id": 1878, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "sourceToken", - "nodeType": "MemberAccess", - "referencedDeclaration": 715, - "src": "22031:20:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "22019:33:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1903, - "nodeType": "IfStatement", - "src": "22015:422:3", - "trueBody": { - "id": 1902, - "nodeType": "Block", - "src": "22054:383:3", - "statements": [ - { - "condition": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1880, - "name": "stepData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1871, - "src": "22145:8:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ConversionStep_$724_memory_ptr", - "typeString": "struct SovrynSwapNetwork.ConversionStep memory" - } - }, - "id": 1881, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "isV28OrHigherConverter", - "nodeType": "MemberAccess", - "referencedDeclaration": 721, - "src": "22145:31:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "expression": { - "argumentTypes": null, - "id": 1899, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1890, - "name": "stepData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1871, - "src": "22347:8:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ConversionStep_$724_memory_ptr", - "typeString": "struct SovrynSwapNetwork.ConversionStep memory" - } - }, - "id": 1892, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "sourceToken", - "nodeType": "MemberAccess", - "referencedDeclaration": 715, - "src": "22347:20:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1895, - "name": "stepData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1871, - "src": "22412:8:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ConversionStep_$724_memory_ptr", - "typeString": "struct SovrynSwapNetwork.ConversionStep memory" - } - }, - "id": 1896, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "converter", - "nodeType": "MemberAccess", - "referencedDeclaration": 711, - "src": "22412:18:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - ], - "id": 1894, - "name": "getConverterEtherTokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2100, - "src": "22382:29:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_contract$_IConverter_$11817_$returns$_t_address_$", - "typeString": "function (contract IConverter) view returns (address)" - } - }, - "id": 1897, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22382:49:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1893, - "name": "IERC20Token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20240, - "src": "22370:11:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20Token_$20240_$", - "typeString": "type(contract IERC20Token)" - } - }, - "id": 1898, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22370:62:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "src": "22347:85:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "id": 1900, - "nodeType": "ExpressionStatement", - "src": "22347:85:3" - }, - "id": 1901, - "nodeType": "IfStatement", - "src": "22141:291:3", - "trueBody": { - "expression": { - "argumentTypes": null, - "id": 1888, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1882, - "name": "stepData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1871, - "src": "22182:8:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ConversionStep_$724_memory_ptr", - "typeString": "struct SovrynSwapNetwork.ConversionStep memory" - } - }, - "id": 1884, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "sourceToken", - "nodeType": "MemberAccess", - "referencedDeclaration": 715, - "src": "22182:20:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1886, - "name": "ETH_RESERVE_ADDRESS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 709, - "src": "22217:19:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1885, - "name": "IERC20Token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20240, - "src": "22205:11:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20Token_$20240_$", - "typeString": "type(contract IERC20Token)" - } - }, - "id": 1887, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22205:32:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "src": "22182:55:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "id": 1889, - "nodeType": "ExpressionStatement", - "src": "22182:55:3" - } - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "id": 1911, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1904, - "name": "stepData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1871, - "src": "22460:8:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ConversionStep_$724_memory_ptr", - "typeString": "struct SovrynSwapNetwork.ConversionStep memory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1905, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1766, - "src": "22471:4:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ConversionStep_$724_memory_$dyn_memory_ptr", - "typeString": "struct SovrynSwapNetwork.ConversionStep memory[] memory" - } - }, - "id": 1910, - "indexExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1909, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1906, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1766, - "src": "22476:4:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ConversionStep_$724_memory_$dyn_memory_ptr", - "typeString": "struct SovrynSwapNetwork.ConversionStep memory[] memory" - } - }, - "id": 1907, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "22476:11:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 1908, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22490:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "22476:15:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "22471:21:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ConversionStep_$724_memory", - "typeString": "struct SovrynSwapNetwork.ConversionStep memory" - } - }, - "src": "22460:32:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ConversionStep_$724_memory_ptr", - "typeString": "struct SovrynSwapNetwork.ConversionStep memory" - } - }, - "id": 1912, - "nodeType": "ExpressionStatement", - "src": "22460:32:3" - }, - { - "condition": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1913, - "name": "etherTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 731, - "src": "22500:11:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 1916, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1914, - "name": "stepData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1871, - "src": "22512:8:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ConversionStep_$724_memory_ptr", - "typeString": "struct SovrynSwapNetwork.ConversionStep memory" - } - }, - "id": 1915, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "targetToken", - "nodeType": "MemberAccess", - "referencedDeclaration": 717, - "src": "22512:20:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "22500:33:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1940, - "nodeType": "IfStatement", - "src": "22496:422:3", - "trueBody": { - "id": 1939, - "nodeType": "Block", - "src": "22535:383:3", - "statements": [ - { - "condition": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1917, - "name": "stepData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1871, - "src": "22626:8:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ConversionStep_$724_memory_ptr", - "typeString": "struct SovrynSwapNetwork.ConversionStep memory" - } - }, - "id": 1918, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "isV28OrHigherConverter", - "nodeType": "MemberAccess", - "referencedDeclaration": 721, - "src": "22626:31:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "expression": { - "argumentTypes": null, - "id": 1936, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1927, - "name": "stepData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1871, - "src": "22828:8:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ConversionStep_$724_memory_ptr", - "typeString": "struct SovrynSwapNetwork.ConversionStep memory" - } - }, - "id": 1929, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "targetToken", - "nodeType": "MemberAccess", - "referencedDeclaration": 717, - "src": "22828:20:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1932, - "name": "stepData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1871, - "src": "22893:8:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ConversionStep_$724_memory_ptr", - "typeString": "struct SovrynSwapNetwork.ConversionStep memory" - } - }, - "id": 1933, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "converter", - "nodeType": "MemberAccess", - "referencedDeclaration": 711, - "src": "22893:18:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - ], - "id": 1931, - "name": "getConverterEtherTokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2100, - "src": "22863:29:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_contract$_IConverter_$11817_$returns$_t_address_$", - "typeString": "function (contract IConverter) view returns (address)" - } - }, - "id": 1934, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22863:49:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1930, - "name": "IERC20Token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20240, - "src": "22851:11:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20Token_$20240_$", - "typeString": "type(contract IERC20Token)" - } - }, - "id": 1935, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22851:62:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "src": "22828:85:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "id": 1937, - "nodeType": "ExpressionStatement", - "src": "22828:85:3" - }, - "id": 1938, - "nodeType": "IfStatement", - "src": "22622:291:3", - "trueBody": { - "expression": { - "argumentTypes": null, - "id": 1925, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1919, - "name": "stepData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1871, - "src": "22663:8:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ConversionStep_$724_memory_ptr", - "typeString": "struct SovrynSwapNetwork.ConversionStep memory" - } - }, - "id": 1921, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "targetToken", - "nodeType": "MemberAccess", - "referencedDeclaration": 717, - "src": "22663:20:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1923, - "name": "ETH_RESERVE_ADDRESS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 709, - "src": "22698:19:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1922, - "name": "IERC20Token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20240, - "src": "22686:11:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20Token_$20240_$", - "typeString": "type(contract IERC20Token)" - } - }, - "id": 1924, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22686:32:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "src": "22663:55:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "id": 1926, - "nodeType": "ExpressionStatement", - "src": "22663:55:3" - } - } - ] - } - }, - { - "body": { - "id": 2015, - "nodeType": "Block", - "src": "22995:931:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1956, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1952, - "name": "stepData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1871, - "src": "23000:8:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ConversionStep_$724_memory_ptr", - "typeString": "struct SovrynSwapNetwork.ConversionStep memory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1953, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1766, - "src": "23011:4:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ConversionStep_$724_memory_$dyn_memory_ptr", - "typeString": "struct SovrynSwapNetwork.ConversionStep memory[] memory" - } - }, - "id": 1955, - "indexExpression": { - "argumentTypes": null, - "id": 1954, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1787, - "src": "23016:1:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "23011:7:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ConversionStep_$724_memory", - "typeString": "struct SovrynSwapNetwork.ConversionStep memory" - } - }, - "src": "23000:18:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ConversionStep_$724_memory_ptr", - "typeString": "struct SovrynSwapNetwork.ConversionStep memory" - } - }, - "id": 1957, - "nodeType": "ExpressionStatement", - "src": "23000:18:3" - }, - { - "condition": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1958, - "name": "stepData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1871, - "src": "23149:8:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ConversionStep_$724_memory_ptr", - "typeString": "struct SovrynSwapNetwork.ConversionStep memory" - } - }, - "id": 1959, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "isV28OrHigherConverter", - "nodeType": "MemberAccess", - "referencedDeclaration": 721, - "src": "23149:31:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 2013, - "nodeType": "Block", - "src": "23807:115:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 2011, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2007, - "name": "stepData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1871, - "src": "23889:8:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ConversionStep_$724_memory_ptr", - "typeString": "struct SovrynSwapNetwork.ConversionStep memory" - } - }, - "id": 2009, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "beneficiary", - "nodeType": "MemberAccess", - "referencedDeclaration": 719, - "src": "23889:20:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2010, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22397, - "src": "23912:4:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SovrynSwapNetwork_$2459", - "typeString": "contract SovrynSwapNetwork" - } - }, - "src": "23889:27:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2012, - "nodeType": "ExpressionStatement", - "src": "23889:27:3" - } - ] - }, - "id": 2014, - "nodeType": "IfStatement", - "src": "23145:777:3", - "trueBody": { - "id": 2006, - "nodeType": "Block", - "src": "23182:619:3", - "statements": [ - { - "condition": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1960, - "name": "stepData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1871, - "src": "23279:8:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ConversionStep_$724_memory_ptr", - "typeString": "struct SovrynSwapNetwork.ConversionStep memory" - } - }, - "id": 1961, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "processAffiliateFee", - "nodeType": "MemberAccess", - "referencedDeclaration": 723, - "src": "23279:28:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1973, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1968, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1787, - "src": "23424:1:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1972, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1969, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1766, - "src": "23429:4:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ConversionStep_$724_memory_$dyn_memory_ptr", - "typeString": "struct SovrynSwapNetwork.ConversionStep memory[] memory" - } - }, - "id": 1970, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "23429:11:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 1971, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "23443:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "23429:15:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "23424:20:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "condition": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1980, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1766, - "src": "23587:4:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ConversionStep_$724_memory_$dyn_memory_ptr", - "typeString": "struct SovrynSwapNetwork.ConversionStep memory[] memory" - } - }, - "id": 1984, - "indexExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1983, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1981, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1787, - "src": "23592:1:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 1982, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "23596:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "23592:5:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "23587:11:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ConversionStep_$724_memory", - "typeString": "struct SovrynSwapNetwork.ConversionStep memory" - } - }, - "id": 1985, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "isV28OrHigherConverter", - "nodeType": "MemberAccess", - "referencedDeclaration": 721, - "src": "23587:34:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "expression": { - "argumentTypes": null, - "id": 2001, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1997, - "name": "stepData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1871, - "src": "23768:8:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ConversionStep_$724_memory_ptr", - "typeString": "struct SovrynSwapNetwork.ConversionStep memory" - } - }, - "id": 1999, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "beneficiary", - "nodeType": "MemberAccess", - "referencedDeclaration": 719, - "src": "23768:20:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2000, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22397, - "src": "23791:4:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SovrynSwapNetwork_$2459", - "typeString": "contract SovrynSwapNetwork" - } - }, - "src": "23768:27:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2002, - "nodeType": "ExpressionStatement", - "src": "23768:27:3" - }, - "id": 2003, - "nodeType": "IfStatement", - "src": "23583:212:3", - "trueBody": { - "expression": { - "argumentTypes": null, - "id": 1995, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1986, - "name": "stepData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1871, - "src": "23628:8:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ConversionStep_$724_memory_ptr", - "typeString": "struct SovrynSwapNetwork.ConversionStep memory" - } - }, - "id": 1988, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "beneficiary", - "nodeType": "MemberAccess", - "referencedDeclaration": 719, - "src": "23628:20:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1989, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1766, - "src": "23651:4:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ConversionStep_$724_memory_$dyn_memory_ptr", - "typeString": "struct SovrynSwapNetwork.ConversionStep memory[] memory" - } - }, - "id": 1993, - "indexExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1992, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1990, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1787, - "src": "23656:1:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 1991, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "23660:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "23656:5:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "23651:11:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ConversionStep_$724_memory", - "typeString": "struct SovrynSwapNetwork.ConversionStep memory" - } - }, - "id": 1994, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "converter", - "nodeType": "MemberAccess", - "referencedDeclaration": 711, - "src": "23651:21:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - "src": "23628:44:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1996, - "nodeType": "ExpressionStatement", - "src": "23628:44:3" - } - }, - "id": 2004, - "nodeType": "IfStatement", - "src": "23420:375:3", - "trueBody": { - "expression": { - "argumentTypes": null, - "id": 1978, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1974, - "name": "stepData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1871, - "src": "23451:8:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ConversionStep_$724_memory_ptr", - "typeString": "struct SovrynSwapNetwork.ConversionStep memory" - } - }, - "id": 1976, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "beneficiary", - "nodeType": "MemberAccess", - "referencedDeclaration": 719, - "src": "23451:20:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1977, - "name": "_beneficiary", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1755, - "src": "23474:12:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "23451:35:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1979, - "nodeType": "ExpressionStatement", - "src": "23451:35:3" - } - }, - "id": 2005, - "nodeType": "IfStatement", - "src": "23275:520:3", - "trueBody": { - "expression": { - "argumentTypes": null, - "id": 1966, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1962, - "name": "stepData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1871, - "src": "23314:8:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ConversionStep_$724_memory_ptr", - "typeString": "struct SovrynSwapNetwork.ConversionStep memory" - } - }, - "id": 1964, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "beneficiary", - "nodeType": "MemberAccess", - "referencedDeclaration": 719, - "src": "23314:20:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1965, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22397, - "src": "23337:4:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SovrynSwapNetwork_$2459", - "typeString": "contract SovrynSwapNetwork" - } - }, - "src": "23314:27:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1967, - "nodeType": "ExpressionStatement", - "src": "23314:27:3" - } - } - ] - } - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1948, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1945, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1787, - "src": "22973:1:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1946, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1766, - "src": "22977:4:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ConversionStep_$724_memory_$dyn_memory_ptr", - "typeString": "struct SovrynSwapNetwork.ConversionStep memory[] memory" - } - }, - "id": 1947, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "22977:11:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "22973:15:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 2016, - "initializationExpression": { - "expression": { - "argumentTypes": null, - "id": 1943, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1941, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1787, - "src": "22966:1:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 1942, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22970:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "22966:5:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1944, - "nodeType": "ExpressionStatement", - "src": "22966:5:3" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 1950, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "22990:3:3", - "subExpression": { - "argumentTypes": null, - "id": 1949, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1787, - "src": "22990:1:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1951, - "nodeType": "ExpressionStatement", - "src": "22990:3:3" - }, - "nodeType": "ForStatement", - "src": "22961:965:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 2017, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1766, - "src": "23937:4:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ConversionStep_$724_memory_$dyn_memory_ptr", - "typeString": "struct SovrynSwapNetwork.ConversionStep memory[] memory" - } - }, - "functionReturnParameters": 1762, - "id": 2018, - "nodeType": "Return", - "src": "23930:11:3" - } - ] - }, - "documentation": "@dev creates a memory cache of all conversion steps data to minimize logic and external calls during conversions\n\t * @param _conversionPath conversion path, see conversion path format above\n@param _beneficiary wallet to receive the conversion result\n@param _affiliateFeeEnabled true if affiliate fee was requested by the sender, false if not\n\t * @return cached conversion data to be ingested later on by the conversion flow", - "id": 2020, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "createConversionData", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1758, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1753, - "name": "_conversionPath", - "nodeType": "VariableDeclaration", - "scope": 2020, - "src": "20599:29:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", - "typeString": "contract IERC20Token[]" - }, - "typeName": { - "baseType": { - "contractScope": null, - "id": 1751, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "20599:11:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "id": 1752, - "length": null, - "nodeType": "ArrayTypeName", - "src": "20599:13:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_storage_ptr", - "typeString": "contract IERC20Token[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1755, - "name": "_beneficiary", - "nodeType": "VariableDeclaration", - "scope": 2020, - "src": "20632:20:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1754, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "20632:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1757, - "name": "_affiliateFeeEnabled", - "nodeType": "VariableDeclaration", - "scope": 2020, - "src": "20656:25:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1756, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "20656:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "20595:89:3" - }, - "payable": false, - "returnParameters": { - "id": 1762, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1761, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2020, - "src": "20707:16:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ConversionStep_$724_memory_$dyn_memory_ptr", - "typeString": "struct SovrynSwapNetwork.ConversionStep[]" - }, - "typeName": { - "baseType": { - "contractScope": null, - "id": 1759, - "name": "ConversionStep", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 724, - "src": "20707:14:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ConversionStep_$724_storage_ptr", - "typeString": "struct SovrynSwapNetwork.ConversionStep" - } - }, - "id": 1760, - "length": null, - "nodeType": "ArrayTypeName", - "src": "20707:16:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ConversionStep_$724_storage_$dyn_storage_ptr", - "typeString": "struct SovrynSwapNetwork.ConversionStep[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "20706:18:3" - }, - "scope": 2459, - "src": "20566:3379:3", - "stateMutability": "view", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 2058, - "nodeType": "Block", - "src": "24460:190:3", - "statements": [ - { - "assignments": [ - 2030 - ], - "declarations": [ - { - "constant": false, - "id": 2030, - "name": "allowance", - "nodeType": "VariableDeclaration", - "scope": 2059, - "src": "24464:17:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2029, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24464:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2036, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2033, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22397, - "src": "24501:4:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SovrynSwapNetwork_$2459", - "typeString": "contract SovrynSwapNetwork" - } - }, - { - "argumentTypes": null, - "id": 2034, - "name": "_spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2024, - "src": "24507:8:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_SovrynSwapNetwork_$2459", - "typeString": "contract SovrynSwapNetwork" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 2031, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2022, - "src": "24484:6:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "id": 2032, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "allowance", - "nodeType": "MemberAccess", - "referencedDeclaration": 20210, - "src": "24484:16:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", - "typeString": "function (address,address) view external returns (uint256)" - } - }, - "id": 2035, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "24484:32:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "24464:52:3" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2039, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2037, - "name": "allowance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2030, - "src": "24524:9:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "id": 2038, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2026, - "src": "24536:6:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "24524:18:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 2057, - "nodeType": "IfStatement", - "src": "24520:127:3", - "trueBody": { - "id": 2056, - "nodeType": "Block", - "src": "24544:103:3", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2042, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2040, - "name": "allowance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2030, - "src": "24553:9:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2041, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "24565:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "24553:13:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 2049, - "nodeType": "IfStatement", - "src": "24549:51:3", - "trueBody": { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2044, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2022, - "src": "24580:6:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - { - "argumentTypes": null, - "id": 2045, - "name": "_spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2024, - "src": "24588:8:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "hexValue": "30", - "id": 2046, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "24598:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 2043, - "name": "safeApprove", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21861, - "src": "24568:11:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20Token_$20240_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (contract IERC20Token,address,uint256)" - } - }, - "id": 2047, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "24568:32:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2048, - "nodeType": "ExpressionStatement", - "src": "24568:32:3" - } - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2051, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2022, - "src": "24617:6:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - { - "argumentTypes": null, - "id": 2052, - "name": "_spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2024, - "src": "24625:8:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2053, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2026, - "src": "24635:6:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 2050, - "name": "safeApprove", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21861, - "src": "24605:11:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20Token_$20240_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (contract IERC20Token,address,uint256)" - } - }, - "id": 2054, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "24605:37:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2055, - "nodeType": "ExpressionStatement", - "src": "24605:37:3" - } - ] - } - } - ] - }, - "documentation": "@dev utility, checks whether allowance for the given spender exists and approves one if it doesn't.\nNote that we use the non standard erc-20 interface in which `approve` has no return value so that\nthis function will work for both standard and non standard tokens\n\t * @param _token token to check the allowance in\n@param _spender approved address\n@param _value allowance amount", - "id": 2059, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "ensureAllowance", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2027, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2022, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 2059, - "src": "24392:18:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - "typeName": { - "contractScope": null, - "id": 2021, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "24392:11:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2024, - "name": "_spender", - "nodeType": "VariableDeclaration", - "scope": 2059, - "src": "24414:16:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2023, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "24414:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2026, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 2059, - "src": "24434:14:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2025, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24434:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "24388:63:3" - }, - "payable": false, - "returnParameters": { - "id": 2028, - "nodeType": "ParameterList", - "parameters": [], - "src": "24460:0:3" - }, - "scope": 2459, - "src": "24364:286:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 2099, - "nodeType": "Block", - "src": "24818:278:3", - "statements": [ - { - "assignments": [ - 2067 - ], - "declarations": [ - { - "constant": false, - "id": 2067, - "name": "reserveCount", - "nodeType": "VariableDeclaration", - "scope": 2100, - "src": "24822:20:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2066, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24822:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2071, - "initialValue": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 2068, - "name": "_converter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2061, - "src": "24845:10:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - "id": 2069, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "connectorTokenCount", - "nodeType": "MemberAccess", - "referencedDeclaration": 11816, - "src": "24845:30:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_uint16_$", - "typeString": "function () view external returns (uint16)" - } - }, - "id": 2070, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "24845:32:3", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "24822:55:3" - }, - { - "body": { - "id": 2095, - "nodeType": "Block", - "src": "24924:138:3", - "statements": [ - { - "assignments": [ - 2083 - ], - "declarations": [ - { - "constant": false, - "id": 2083, - "name": "reserveTokenAddress", - "nodeType": "VariableDeclaration", - "scope": 2100, - "src": "24929:27:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2082, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "24929:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2088, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2086, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2073, - "src": "24986:1:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 2084, - "name": "_converter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2061, - "src": "24959:10:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - "id": 2085, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "connectorTokens", - "nodeType": "MemberAccess", - "referencedDeclaration": 11811, - "src": "24959:26:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_contract$_IERC20Token_$20240_$", - "typeString": "function (uint256) view external returns (contract IERC20Token)" - } - }, - "id": 2087, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "24959:29:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "24929:59:3" - }, - { - "condition": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2089, - "name": "etherTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 731, - "src": "24997:11:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 2091, - "indexExpression": { - "argumentTypes": null, - "id": 2090, - "name": "reserveTokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2083, - "src": "25009:19:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "24997:32:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 2094, - "nodeType": "IfStatement", - "src": "24993:64:3", - "trueBody": { - "expression": { - "argumentTypes": null, - "id": 2092, - "name": "reserveTokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2083, - "src": "25038:19:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 2065, - "id": 2093, - "nodeType": "Return", - "src": "25031:26:3" - } - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2078, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2076, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2073, - "src": "24901:1:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "id": 2077, - "name": "reserveCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2067, - "src": "24905:12:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "24901:16:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 2096, - "initializationExpression": { - "assignments": [ - 2073 - ], - "declarations": [ - { - "constant": false, - "id": 2073, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 2100, - "src": "24886:9:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2072, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24886:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2075, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 2074, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "24898:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "24886:13:3" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 2080, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "24919:3:3", - "subExpression": { - "argumentTypes": null, - "id": 2079, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2073, - "src": "24919:1:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2081, - "nodeType": "ExpressionStatement", - "src": "24919:3:3" - }, - "nodeType": "ForStatement", - "src": "24881:181:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 2097, - "name": "ETH_RESERVE_ADDRESS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 709, - "src": "25073:19:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 2065, - "id": 2098, - "nodeType": "Return", - "src": "25066:26:3" - } - ] - }, - "documentation": null, - "id": 2100, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getConverterEtherTokenAddress", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2062, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2061, - "name": "_converter", - "nodeType": "VariableDeclaration", - "scope": 2100, - "src": "24764:21:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - }, - "typeName": { - "contractScope": null, - "id": 2060, - "name": "IConverter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 11817, - "src": "24764:10:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "24763:23:3" - }, - "payable": false, - "returnParameters": { - "id": 2065, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2064, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2100, - "src": "24809:7:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2063, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "24809:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "24808:9:3" - }, - "scope": 2459, - "src": "24725:371:3", - "stateMutability": "view", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 2130, - "nodeType": "Block", - "src": "25357:197:3", - "statements": [ - { - "condition": { - "argumentTypes": null, - "id": 2112, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "25365:20:3", - "subExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2109, - "name": "etherTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 731, - "src": "25366:11:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 2111, - "indexExpression": { - "argumentTypes": null, - "id": 2110, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2104, - "src": "25378:6:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "25366:19:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 2115, - "nodeType": "IfStatement", - "src": "25361:39:3", - "trueBody": { - "expression": { - "argumentTypes": null, - "id": 2113, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2104, - "src": "25394:6:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "functionReturnParameters": 2108, - "id": 2114, - "nodeType": "Return", - "src": "25387:13:3" - } - }, - { - "condition": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2117, - "name": "_converter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2102, - "src": "25432:10:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - ], - "id": 2116, - "name": "isV28OrHigherConverter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2219, - "src": "25409:22:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_contract$_IConverter_$11817_$returns$_t_bool_$", - "typeString": "function (contract IConverter) view returns (bool)" - } - }, - "id": 2118, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "25409:34:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 2123, - "nodeType": "IfStatement", - "src": "25405:79:3", - "trueBody": { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2120, - "name": "ETH_RESERVE_ADDRESS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 709, - "src": "25464:19:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 2119, - "name": "IERC20Token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20240, - "src": "25452:11:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20Token_$20240_$", - "typeString": "type(contract IERC20Token)" - } - }, - "id": 2121, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "25452:32:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "functionReturnParameters": 2108, - "id": 2122, - "nodeType": "Return", - "src": "25445:39:3" - } - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2126, - "name": "_converter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2102, - "src": "25538:10:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - ], - "id": 2125, - "name": "getConverterEtherTokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2100, - "src": "25508:29:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_contract$_IConverter_$11817_$returns$_t_address_$", - "typeString": "function (contract IConverter) view returns (address)" - } - }, - "id": 2127, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "25508:41:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 2124, - "name": "IERC20Token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20240, - "src": "25496:11:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20Token_$20240_$", - "typeString": "type(contract IERC20Token)" - } - }, - "id": 2128, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "25496:54:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "functionReturnParameters": 2108, - "id": 2129, - "nodeType": "Return", - "src": "25489:61:3" - } - ] - }, - "documentation": null, - "id": 2131, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getConverterTokenAddress", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2105, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2102, - "name": "_converter", - "nodeType": "VariableDeclaration", - "scope": 2131, - "src": "25279:21:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - }, - "typeName": { - "contractScope": null, - "id": 2101, - "name": "IConverter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 11817, - "src": "25279:10:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2104, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 2131, - "src": "25302:18:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - "typeName": { - "contractScope": null, - "id": 2103, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "25302:11:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "25278:43:3" - }, - "payable": false, - "returnParameters": { - "id": 2108, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2107, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2131, - "src": "25344:11:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - "typeName": { - "contractScope": null, - "id": 2106, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "25344:11:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "25343:13:3" - }, - "scope": 2459, - "src": "25245:309:3", - "stateMutability": "view", - "superFunction": null, - "visibility": "private" - }, - { - "constant": true, - "id": 2138, - "name": "GET_RETURN_FUNC_SELECTOR", - "nodeType": "VariableDeclaration", - "scope": 2459, - "src": "25557:106:3", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 2132, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "25557:6:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "67657452657475726e28616464726573732c616464726573732c75696e7432353629", - "id": 2135, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "25625:36:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_1e1401f8329fe5eb5c7e76277d3c971ffeee3a41a0eef7c00afeb0a286cef0af", - "typeString": "literal_string \"getReturn(address,address,uint256)\"" - }, - "value": "getReturn(address,address,uint256)" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_stringliteral_1e1401f8329fe5eb5c7e76277d3c971ffeee3a41a0eef7c00afeb0a286cef0af", - "typeString": "literal_string \"getReturn(address,address,uint256)\"" - } - ], - "id": 2134, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22332, - "src": "25615:9:3", - "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" - } - }, - "id": 2136, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "25615:47:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 2133, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "25608:6:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes4_$", - "typeString": "type(bytes4)" - }, - "typeName": "bytes4" - }, - "id": 2137, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "25608:55:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "visibility": "private" - }, - { - "body": { - "id": 2178, - "nodeType": "Block", - "src": "25898:550:3", - "statements": [ - { - "assignments": [], - "declarations": [ - { - "constant": false, - "id": 2157, - "name": "ret", - "nodeType": "VariableDeclaration", - "scope": 2179, - "src": "25902:21:3", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2]" - }, - "typeName": { - "baseType": { - "id": 2155, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25902:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2156, - "length": { - "argumentTypes": null, - "hexValue": "32", - "id": 2154, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "25910:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - }, - "value": "2" - }, - "nodeType": "ArrayTypeName", - "src": "25902:10:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr", - "typeString": "uint256[2]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2158, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "25902:21:3" - }, - { - "assignments": [ - 2160 - ], - "declarations": [ - { - "constant": false, - "id": 2160, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 2179, - "src": "25927:17:3", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2159, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "25927:5:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2168, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2163, - "name": "GET_RETURN_FUNC_SELECTOR", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2138, - "src": "25970:24:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - { - "argumentTypes": null, - "id": 2164, - "name": "_sourceToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2142, - "src": "25996:12:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2165, - "name": "_targetToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2144, - "src": "26010:12:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2166, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2146, - "src": "26024:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 2161, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22325, - "src": "25947:3:3", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 2162, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encodeWithSelector", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "25947:22:3", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (bytes4) pure returns (bytes memory)" - } - }, - "id": 2167, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "25947:85:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "25927:105:3" - }, - { - "externalReferences": [ - { - "data": { - "declaration": 2160, - "isOffset": false, - "isSlot": false, - "src": "26237:4:3", - "valueSize": 1 - } - }, - { - "data": { - "declaration": 2160, - "isOffset": false, - "isSlot": false, - "src": "26146:4:3", - "valueSize": 1 - } - }, - { - "_dest": { - "declaration": 2140, - "isOffset": false, - "isSlot": false, - "src": "26108:5:3", - "valueSize": 1 - } - }, - { - "ret": { - "declaration": 2157, - "isOffset": false, - "isSlot": false, - "src": "26317:3:3", - "valueSize": 1 - } - } - ], - "id": 2169, - "nodeType": "InlineAssembly", - "operations": "{\n let success := staticcall(gas(), _dest, add(data, 32), mload(data), ret, 64)\n if iszero(success)\n {\n revert(0, 0)\n }\n}", - "src": "26037:390:3" - }, - { - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2170, - "name": "ret", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2157, - "src": "26429:3:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - } - }, - "id": 2172, - "indexExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2171, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "26433:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "26429:6:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2173, - "name": "ret", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2157, - "src": "26437:3:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - } - }, - "id": 2175, - "indexExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 2174, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "26441:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "26437:6:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 2176, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "26428:16:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", - "typeString": "tuple(uint256,uint256)" - } - }, - "functionReturnParameters": 2152, - "id": 2177, - "nodeType": "Return", - "src": "26421:23:3" - } - ] - }, - "documentation": null, - "id": 2179, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getReturn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2147, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2140, - "name": "_dest", - "nodeType": "VariableDeclaration", - "scope": 2179, - "src": "25773:13:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2139, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "25773:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2142, - "name": "_sourceToken", - "nodeType": "VariableDeclaration", - "scope": 2179, - "src": "25790:20:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2141, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "25790:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2144, - "name": "_targetToken", - "nodeType": "VariableDeclaration", - "scope": 2179, - "src": "25814:20:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2143, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "25814:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2146, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 2179, - "src": "25838:15:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2145, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25838:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "25769:87:3" - }, - "payable": false, - "returnParameters": { - "id": 2152, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2149, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2179, - "src": "25880:7:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2148, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25880:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2151, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2179, - "src": "25889:7:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2150, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25889:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "25879:18:3" - }, - "scope": 2459, - "src": "25751:697:3", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "constant": true, - "id": 2186, - "name": "IS_V28_OR_HIGHER_FUNC_SELECTOR", - "nodeType": "VariableDeclaration", - "scope": 2459, - "src": "26451:93:3", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 2180, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "26451:6:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "69735632384f724869676865722829", - "id": 2183, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "26525:17:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_d260529c8620a59d78f2e58cfd1294673bb6cba228ad1f34ac7731003ab870dd", - "typeString": "literal_string \"isV28OrHigher()\"" - }, - "value": "isV28OrHigher()" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_stringliteral_d260529c8620a59d78f2e58cfd1294673bb6cba228ad1f34ac7731003ab870dd", - "typeString": "literal_string \"isV28OrHigher()\"" - } - ], - "id": 2182, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22332, - "src": "26515:9:3", - "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" - } - }, - "id": 2184, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "26515:28:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 2181, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "26508:6:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes4_$", - "typeString": "type(bytes4)" - }, - "typeName": "bytes4" - }, - "id": 2185, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "26508:36:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "visibility": "private" - }, - { - "body": { - "id": 2218, - "nodeType": "Block", - "src": "26788:541:3", - "statements": [ - { - "assignments": [], - "declarations": [ - { - "constant": false, - "id": 2194, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 2219, - "src": "26792:12:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2193, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "26792:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2195, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "26792:12:3" - }, - { - "assignments": [], - "declarations": [ - { - "constant": false, - "id": 2200, - "name": "ret", - "nodeType": "VariableDeclaration", - "scope": 2219, - "src": "26808:21:3", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$1_memory_ptr", - "typeString": "uint256[1]" - }, - "typeName": { - "baseType": { - "id": 2198, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "26808:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2199, - "length": { - "argumentTypes": null, - "hexValue": "31", - "id": 2197, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "26816:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - }, - "value": "1" - }, - "nodeType": "ArrayTypeName", - "src": "26808:10:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$1_storage_ptr", - "typeString": "uint256[1]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2201, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "26808:21:3" - }, - { - "assignments": [ - 2203 - ], - "declarations": [ - { - "constant": false, - "id": 2203, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 2219, - "src": "26833:17:3", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2202, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "26833:5:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2208, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2206, - "name": "IS_V28_OR_HIGHER_FUNC_SELECTOR", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2186, - "src": "26876:30:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "expression": { - "argumentTypes": null, - "id": 2204, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22325, - "src": "26853:3:3", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 2205, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encodeWithSelector", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "26853:22:3", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (bytes4) pure returns (bytes memory)" - } - }, - "id": 2207, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "26853:54:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "26833:74:3" - }, - { - "externalReferences": [ - { - "success": { - "declaration": 2194, - "isOffset": false, - "isSlot": false, - "src": "26926:7:3", - "valueSize": 1 - } - }, - { - "data": { - "declaration": 2203, - "isOffset": false, - "isSlot": false, - "src": "27158:4:3", - "valueSize": 1 - } - }, - { - "data": { - "declaration": 2203, - "isOffset": false, - "isSlot": false, - "src": "27067:4:3", - "valueSize": 1 - } - }, - { - "_converter": { - "declaration": 2188, - "isOffset": false, - "isSlot": false, - "src": "27024:10:3", - "valueSize": 1 - } - }, - { - "ret": { - "declaration": 2200, - "isOffset": false, - "isSlot": false, - "src": "27238:3:3", - "valueSize": 1 - } - } - ], - "id": 2209, - "nodeType": "InlineAssembly", - "operations": "{\n success := staticcall(5000, _converter, add(data, 32), mload(data), ret, 32)\n}", - "src": "26912:390:3" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 2216, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2210, - "name": "success", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2194, - "src": "27303:7:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2215, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2211, - "name": "ret", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2200, - "src": "27314:3:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$1_memory_ptr", - "typeString": "uint256[1] memory" - } - }, - "id": 2213, - "indexExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2212, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "27318:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "27314:6:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2214, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "27324:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "27314:11:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "27303:22:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 2192, - "id": 2217, - "nodeType": "Return", - "src": "27296:29:3" - } - ] - }, - "documentation": null, - "id": 2219, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "isV28OrHigherConverter", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2189, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2188, - "name": "_converter", - "nodeType": "VariableDeclaration", - "scope": 2219, - "src": "26736:21:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - }, - "typeName": { - "contractScope": null, - "id": 2187, - "name": "IConverter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 11817, - "src": "26736:10:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "26735:23:3" - }, - "payable": false, - "returnParameters": { - "id": 2192, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2191, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2219, - "src": "26782:4:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2190, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "26782:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "26781:6:3" - }, - "scope": 2459, - "src": "26704:625:3", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 2238, - "nodeType": "Block", - "src": "27488:46:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2232, - "name": "_path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2222, - "src": "27511:5:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", - "typeString": "contract IERC20Token[] memory" - } - }, - { - "argumentTypes": null, - "id": 2233, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2224, - "src": "27518:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", - "typeString": "contract IERC20Token[] memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 2231, - "name": "rateByPath", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1102, - "src": "27500:10:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (contract IERC20Token[] memory,uint256) view returns (uint256)" - } - }, - "id": 2234, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27500:26:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "hexValue": "30", - "id": 2235, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "27528:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "id": 2236, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "27499:31:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_rational_0_by_1_$", - "typeString": "tuple(uint256,int_const 0)" - } - }, - "functionReturnParameters": 2230, - "id": 2237, - "nodeType": "Return", - "src": "27492:38:3" - } - ] - }, - "documentation": "@dev deprecated, backward compatibility", - "id": 2239, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getReturnByPath", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2225, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2222, - "name": "_path", - "nodeType": "VariableDeclaration", - "scope": 2239, - "src": "27411:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", - "typeString": "contract IERC20Token[]" - }, - "typeName": { - "baseType": { - "contractScope": null, - "id": 2220, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "27411:11:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "id": 2221, - "length": null, - "nodeType": "ArrayTypeName", - "src": "27411:13:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_storage_ptr", - "typeString": "contract IERC20Token[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2224, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 2239, - "src": "27432:15:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2223, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "27432:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "27410:38:3" - }, - "payable": false, - "returnParameters": { - "id": 2230, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2227, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2239, - "src": "27470:7:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2226, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "27470:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2229, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2239, - "src": "27479:7:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2228, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "27479:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "27469:18:3" - }, - "scope": 2459, - "src": "27386:148:3", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2264, - "nodeType": "Block", - "src": "27708:83:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2252, - "name": "_path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2242, - "src": "27733:5:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", - "typeString": "contract IERC20Token[] memory" - } - }, - { - "argumentTypes": null, - "id": 2253, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2244, - "src": "27740:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 2254, - "name": "_minReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2246, - "src": "27749:10:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 2256, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "27769:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 2255, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "27761:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 2257, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27761:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 2259, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "27781:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 2258, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "27773:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 2260, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27773:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "hexValue": "30", - "id": 2261, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "27785:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", - "typeString": "contract IERC20Token[] memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 2251, - "name": "convertByPath", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1230, - "src": "27719:13:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr_$_t_uint256_$_t_uint256_$_t_address_$_t_address_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (contract IERC20Token[] memory,uint256,uint256,address,address,uint256) returns (uint256)" - } - }, - "id": 2262, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27719:68:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 2250, - "id": 2263, - "nodeType": "Return", - "src": "27712:75:3" - } - ] - }, - "documentation": "@dev deprecated, backward compatibility", - "id": 2265, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "convert", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2247, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2242, - "name": "_path", - "nodeType": "VariableDeclaration", - "scope": 2265, - "src": "27611:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", - "typeString": "contract IERC20Token[]" - }, - "typeName": { - "baseType": { - "contractScope": null, - "id": 2240, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "27611:11:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "id": 2241, - "length": null, - "nodeType": "ArrayTypeName", - "src": "27611:13:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_storage_ptr", - "typeString": "contract IERC20Token[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2244, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 2265, - "src": "27634:15:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2243, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "27634:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2246, - "name": "_minReturn", - "nodeType": "VariableDeclaration", - "scope": 2265, - "src": "27653:18:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2245, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "27653:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "27607:67:3" - }, - "payable": true, - "returnParameters": { - "id": 2250, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2249, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2265, - "src": "27699:7:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2248, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "27699:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "27698:9:3" - }, - "scope": 2459, - "src": "27591:200:3", - "stateMutability": "payable", - "superFunction": 620, - "visibility": "public" - }, - { - "body": { - "id": 2292, - "nodeType": "Block", - "src": "28020:102:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2282, - "name": "_path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2268, - "src": "28045:5:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", - "typeString": "contract IERC20Token[] memory" - } - }, - { - "argumentTypes": null, - "id": 2283, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2270, - "src": "28052:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 2284, - "name": "_minReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2272, - "src": "28061:10:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 2286, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "28081:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 2285, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "28073:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 2287, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28073:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2288, - "name": "_affiliateAccount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2274, - "src": "28085:17:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2289, - "name": "_affiliateFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2276, - "src": "28104:13:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", - "typeString": "contract IERC20Token[] memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 2281, - "name": "convertByPath", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1230, - "src": "28031:13:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr_$_t_uint256_$_t_uint256_$_t_address_$_t_address_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (contract IERC20Token[] memory,uint256,uint256,address,address,uint256) returns (uint256)" - } - }, - "id": 2290, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28031:87:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 2280, - "id": 2291, - "nodeType": "Return", - "src": "28024:94:3" - } - ] - }, - "documentation": "@dev deprecated, backward compatibility", - "id": 2293, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "convert2", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2277, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2268, - "name": "_path", - "nodeType": "VariableDeclaration", - "scope": 2293, - "src": "27869:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", - "typeString": "contract IERC20Token[]" - }, - "typeName": { - "baseType": { - "contractScope": null, - "id": 2266, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "27869:11:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "id": 2267, - "length": null, - "nodeType": "ArrayTypeName", - "src": "27869:13:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_storage_ptr", - "typeString": "contract IERC20Token[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2270, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 2293, - "src": "27892:15:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2269, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "27892:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2272, - "name": "_minReturn", - "nodeType": "VariableDeclaration", - "scope": 2293, - "src": "27911:18:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2271, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "27911:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2274, - "name": "_affiliateAccount", - "nodeType": "VariableDeclaration", - "scope": 2293, - "src": "27933:25:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2273, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "27933:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2276, - "name": "_affiliateFee", - "nodeType": "VariableDeclaration", - "scope": 2293, - "src": "27962:21:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2275, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "27962:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "27865:121:3" - }, - "payable": true, - "returnParameters": { - "id": 2280, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2279, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2293, - "src": "28011:7:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2278, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "28011:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "28010:9:3" - }, - "scope": 2459, - "src": "27848:274:3", - "stateMutability": "payable", - "superFunction": 556, - "visibility": "public" - }, - { - "body": { - "id": 2318, - "nodeType": "Block", - "src": "28323:85:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2308, - "name": "_path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2296, - "src": "28348:5:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", - "typeString": "contract IERC20Token[] memory" - } - }, - { - "argumentTypes": null, - "id": 2309, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2298, - "src": "28355:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 2310, - "name": "_minReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2300, - "src": "28364:10:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 2311, - "name": "_beneficiary", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2302, - "src": "28376:12:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 2313, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "28398:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 2312, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "28390:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 2314, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28390:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "hexValue": "30", - "id": 2315, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "28402:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", - "typeString": "contract IERC20Token[] memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 2307, - "name": "convertByPath", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1230, - "src": "28334:13:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr_$_t_uint256_$_t_uint256_$_t_address_$_t_address_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (contract IERC20Token[] memory,uint256,uint256,address,address,uint256) returns (uint256)" - } - }, - "id": 2316, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28334:70:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 2306, - "id": 2317, - "nodeType": "Return", - "src": "28327:77:3" - } - ] - }, - "documentation": "@dev deprecated, backward compatibility", - "id": 2319, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "convertFor", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2303, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2296, - "name": "_path", - "nodeType": "VariableDeclaration", - "scope": 2319, - "src": "28202:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", - "typeString": "contract IERC20Token[]" - }, - "typeName": { - "baseType": { - "contractScope": null, - "id": 2294, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "28202:11:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "id": 2295, - "length": null, - "nodeType": "ArrayTypeName", - "src": "28202:13:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_storage_ptr", - "typeString": "contract IERC20Token[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2298, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 2319, - "src": "28225:15:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2297, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "28225:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2300, - "name": "_minReturn", - "nodeType": "VariableDeclaration", - "scope": 2319, - "src": "28244:18:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2299, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "28244:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2302, - "name": "_beneficiary", - "nodeType": "VariableDeclaration", - "scope": 2319, - "src": "28266:20:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2301, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "28266:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "28198:91:3" - }, - "payable": true, - "returnParameters": { - "id": 2306, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2305, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2319, - "src": "28314:7:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2304, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "28314:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "28313:9:3" - }, - "scope": 2459, - "src": "28179:229:3", - "stateMutability": "payable", - "superFunction": 646, - "visibility": "public" - }, - { - "body": { - "id": 2349, - "nodeType": "Block", - "src": "28692:104:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2341, - "name": "_path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2322, - "src": "28717:5:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", - "typeString": "contract IERC20Token[] memory" - } - }, - { - "argumentTypes": null, - "id": 2342, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2324, - "src": "28724:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 2343, - "name": "_minReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2326, - "src": "28733:10:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 2344, - "name": "_beneficiary", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2328, - "src": "28745:12:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2345, - "name": "_affiliateAccount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2330, - "src": "28759:17:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2346, - "name": "_affiliateFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2332, - "src": "28778:13:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", - "typeString": "contract IERC20Token[] memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 2340, - "name": "convertByPath", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1230, - "src": "28703:13:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr_$_t_uint256_$_t_uint256_$_t_address_$_t_address_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (contract IERC20Token[] memory,uint256,uint256,address,address,uint256) returns (uint256)" - } - }, - "id": 2347, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28703:89:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 2339, - "id": 2348, - "nodeType": "Return", - "src": "28696:96:3" - } - ] - }, - "documentation": "@dev deprecated, backward compatibility", - "id": 2350, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 2335, - "name": "_minReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2326, - "src": "28662:10:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 2336, - "modifierName": { - "argumentTypes": null, - "id": 2334, - "name": "greaterThanZero", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21988, - "src": "28646:15:3", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$", - "typeString": "modifier (uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "28646:27:3" - } - ], - "name": "convertFor2", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2333, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2322, - "name": "_path", - "nodeType": "VariableDeclaration", - "scope": 2350, - "src": "28489:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", - "typeString": "contract IERC20Token[]" - }, - "typeName": { - "baseType": { - "contractScope": null, - "id": 2320, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "28489:11:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "id": 2321, - "length": null, - "nodeType": "ArrayTypeName", - "src": "28489:13:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_storage_ptr", - "typeString": "contract IERC20Token[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2324, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 2350, - "src": "28512:15:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2323, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "28512:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2326, - "name": "_minReturn", - "nodeType": "VariableDeclaration", - "scope": 2350, - "src": "28531:18:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2325, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "28531:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2328, - "name": "_beneficiary", - "nodeType": "VariableDeclaration", - "scope": 2350, - "src": "28553:20:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2327, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "28553:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2330, - "name": "_affiliateAccount", - "nodeType": "VariableDeclaration", - "scope": 2350, - "src": "28577:25:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2329, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "28577:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2332, - "name": "_affiliateFee", - "nodeType": "VariableDeclaration", - "scope": 2350, - "src": "28606:21:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2331, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "28606:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "28485:145:3" - }, - "payable": true, - "returnParameters": { - "id": 2339, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2338, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2350, - "src": "28683:7:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2337, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "28683:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "28682:9:3" - }, - "scope": 2459, - "src": "28465:331:3", - "stateMutability": "payable", - "superFunction": 590, - "visibility": "public" - }, - { - "body": { - "id": 2375, - "nodeType": "Block", - "src": "28970:83:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2363, - "name": "_path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2353, - "src": "28995:5:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", - "typeString": "contract IERC20Token[] memory" - } - }, - { - "argumentTypes": null, - "id": 2364, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2355, - "src": "29002:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 2365, - "name": "_minReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2357, - "src": "29011:10:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 2367, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "29031:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 2366, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "29023:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 2368, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "29023:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 2370, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "29043:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 2369, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "29035:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 2371, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "29035:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "hexValue": "30", - "id": 2372, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "29047:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", - "typeString": "contract IERC20Token[] memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 2362, - "name": "convertByPath", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1230, - "src": "28981:13:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr_$_t_uint256_$_t_uint256_$_t_address_$_t_address_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (contract IERC20Token[] memory,uint256,uint256,address,address,uint256) returns (uint256)" - } - }, - "id": 2373, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28981:68:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 2361, - "id": 2374, - "nodeType": "Return", - "src": "28974:75:3" - } - ] - }, - "documentation": "@dev deprecated, backward compatibility", - "id": 2376, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "claimAndConvert", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2358, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2353, - "name": "_path", - "nodeType": "VariableDeclaration", - "scope": 2376, - "src": "28881:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", - "typeString": "contract IERC20Token[]" - }, - "typeName": { - "baseType": { - "contractScope": null, - "id": 2351, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "28881:11:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "id": 2352, - "length": null, - "nodeType": "ArrayTypeName", - "src": "28881:13:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_storage_ptr", - "typeString": "contract IERC20Token[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2355, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 2376, - "src": "28904:15:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2354, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "28904:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2357, - "name": "_minReturn", - "nodeType": "VariableDeclaration", - "scope": 2376, - "src": "28923:18:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2356, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "28923:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "28877:67:3" - }, - "payable": false, - "returnParameters": { - "id": 2361, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2360, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2376, - "src": "28961:7:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2359, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "28961:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "28960:9:3" - }, - "scope": 2459, - "src": "28853:200:3", - "stateMutability": "nonpayable", - "superFunction": 632, - "visibility": "public" - }, - { - "body": { - "id": 2403, - "nodeType": "Block", - "src": "29282:102:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2393, - "name": "_path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2379, - "src": "29307:5:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", - "typeString": "contract IERC20Token[] memory" - } - }, - { - "argumentTypes": null, - "id": 2394, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2381, - "src": "29314:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 2395, - "name": "_minReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2383, - "src": "29323:10:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 2397, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "29343:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 2396, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "29335:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 2398, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "29335:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2399, - "name": "_affiliateAccount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2385, - "src": "29347:17:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2400, - "name": "_affiliateFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2387, - "src": "29366:13:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", - "typeString": "contract IERC20Token[] memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 2392, - "name": "convertByPath", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1230, - "src": "29293:13:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr_$_t_uint256_$_t_uint256_$_t_address_$_t_address_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (contract IERC20Token[] memory,uint256,uint256,address,address,uint256) returns (uint256)" - } - }, - "id": 2401, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "29293:87:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 2391, - "id": 2402, - "nodeType": "Return", - "src": "29286:94:3" - } - ] - }, - "documentation": "@dev deprecated, backward compatibility", - "id": 2404, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "claimAndConvert2", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2388, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2379, - "name": "_path", - "nodeType": "VariableDeclaration", - "scope": 2404, - "src": "29139:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", - "typeString": "contract IERC20Token[]" - }, - "typeName": { - "baseType": { - "contractScope": null, - "id": 2377, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "29139:11:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "id": 2378, - "length": null, - "nodeType": "ArrayTypeName", - "src": "29139:13:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_storage_ptr", - "typeString": "contract IERC20Token[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2381, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 2404, - "src": "29162:15:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2380, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "29162:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2383, - "name": "_minReturn", - "nodeType": "VariableDeclaration", - "scope": 2404, - "src": "29181:18:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2382, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "29181:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2385, - "name": "_affiliateAccount", - "nodeType": "VariableDeclaration", - "scope": 2404, - "src": "29203:25:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2384, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "29203:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2387, - "name": "_affiliateFee", - "nodeType": "VariableDeclaration", - "scope": 2404, - "src": "29232:21:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2386, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "29232:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "29135:121:3" - }, - "payable": false, - "returnParameters": { - "id": 2391, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2390, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2404, - "src": "29273:7:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2389, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "29273:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "29272:9:3" - }, - "scope": 2459, - "src": "29110:274:3", - "stateMutability": "nonpayable", - "superFunction": 572, - "visibility": "public" - }, - { - "body": { - "id": 2429, - "nodeType": "Block", - "src": "29585:85:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2419, - "name": "_path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2407, - "src": "29610:5:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", - "typeString": "contract IERC20Token[] memory" - } - }, - { - "argumentTypes": null, - "id": 2420, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2409, - "src": "29617:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 2421, - "name": "_minReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2411, - "src": "29626:10:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 2422, - "name": "_beneficiary", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2413, - "src": "29638:12:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 2424, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "29660:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 2423, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "29652:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 2425, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "29652:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "hexValue": "30", - "id": 2426, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "29664:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", - "typeString": "contract IERC20Token[] memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 2418, - "name": "convertByPath", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1230, - "src": "29596:13:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr_$_t_uint256_$_t_uint256_$_t_address_$_t_address_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (contract IERC20Token[] memory,uint256,uint256,address,address,uint256) returns (uint256)" - } - }, - "id": 2427, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "29596:70:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 2417, - "id": 2428, - "nodeType": "Return", - "src": "29589:77:3" - } - ] - }, - "documentation": "@dev deprecated, backward compatibility", - "id": 2430, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "claimAndConvertFor", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2414, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2407, - "name": "_path", - "nodeType": "VariableDeclaration", - "scope": 2430, - "src": "29472:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", - "typeString": "contract IERC20Token[]" - }, - "typeName": { - "baseType": { - "contractScope": null, - "id": 2405, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "29472:11:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "id": 2406, - "length": null, - "nodeType": "ArrayTypeName", - "src": "29472:13:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_storage_ptr", - "typeString": "contract IERC20Token[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2409, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 2430, - "src": "29495:15:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2408, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "29495:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2411, - "name": "_minReturn", - "nodeType": "VariableDeclaration", - "scope": 2430, - "src": "29514:18:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2410, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "29514:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2413, - "name": "_beneficiary", - "nodeType": "VariableDeclaration", - "scope": 2430, - "src": "29536:20:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2412, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "29536:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "29468:91:3" - }, - "payable": false, - "returnParameters": { - "id": 2417, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2416, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2430, - "src": "29576:7:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2415, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "29576:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "29575:9:3" - }, - "scope": 2459, - "src": "29441:229:3", - "stateMutability": "nonpayable", - "superFunction": 660, - "visibility": "public" - }, - { - "body": { - "id": 2457, - "nodeType": "Block", - "src": "29926:104:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2449, - "name": "_path", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2433, - "src": "29951:5:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", - "typeString": "contract IERC20Token[] memory" - } - }, - { - "argumentTypes": null, - "id": 2450, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2435, - "src": "29958:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 2451, - "name": "_minReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2437, - "src": "29967:10:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 2452, - "name": "_beneficiary", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2439, - "src": "29979:12:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2453, - "name": "_affiliateAccount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2441, - "src": "29993:17:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2454, - "name": "_affiliateFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2443, - "src": "30012:13:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", - "typeString": "contract IERC20Token[] memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 2448, - "name": "convertByPath", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1230, - "src": "29937:13:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr_$_t_uint256_$_t_uint256_$_t_address_$_t_address_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (contract IERC20Token[] memory,uint256,uint256,address,address,uint256) returns (uint256)" - } - }, - "id": 2455, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "29937:89:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 2447, - "id": 2456, - "nodeType": "Return", - "src": "29930:96:3" - } - ] - }, - "documentation": "@dev deprecated, backward compatibility", - "id": 2458, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "claimAndConvertFor2", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2444, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2433, - "name": "_path", - "nodeType": "VariableDeclaration", - "scope": 2458, - "src": "29759:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", - "typeString": "contract IERC20Token[]" - }, - "typeName": { - "baseType": { - "contractScope": null, - "id": 2431, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "29759:11:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "id": 2432, - "length": null, - "nodeType": "ArrayTypeName", - "src": "29759:13:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_storage_ptr", - "typeString": "contract IERC20Token[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2435, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 2458, - "src": "29782:15:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2434, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "29782:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2437, - "name": "_minReturn", - "nodeType": "VariableDeclaration", - "scope": 2458, - "src": "29801:18:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2436, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "29801:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2439, - "name": "_beneficiary", - "nodeType": "VariableDeclaration", - "scope": 2458, - "src": "29823:20:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2438, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "29823:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2441, - "name": "_affiliateAccount", - "nodeType": "VariableDeclaration", - "scope": 2458, - "src": "29847:25:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2440, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "29847:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2443, - "name": "_affiliateFee", - "nodeType": "VariableDeclaration", - "scope": 2458, - "src": "29876:21:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2442, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "29876:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "29755:145:3" - }, - "payable": false, - "returnParameters": { - "id": 2447, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2446, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2458, - "src": "29917:7:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2445, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "29917:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "29916:9:3" - }, - "scope": 2459, - "src": "29727:303:3", - "stateMutability": "nonpayable", - "superFunction": 608, - "visibility": "public" - } - ], - "scope": 2460, - "src": "1919:28113:3" - } - ], - "src": "0:30033:3" - }, - "id": 3 - }, - "solidity/contracts/converter/ConverterBase.sol": { - "ast": { - "absolutePath": "solidity/contracts/converter/ConverterBase.sol", - "exportedSymbols": { - "ConverterBase": [ - 3414 - ] - }, - "id": 3415, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 2461, - "literals": [ - "solidity", - "0.4", - ".26" - ], - "nodeType": "PragmaDirective", - "src": "0:23:4" - }, - { - "absolutePath": "solidity/contracts/converter/interfaces/IConverter.sol", - "file": "./interfaces/IConverter.sol", - "id": 2462, - "nodeType": "ImportDirective", - "scope": 3415, - "sourceUnit": 11818, - "src": "24:37:4", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "solidity/contracts/converter/interfaces/IConverterAnchor.sol", - "file": "./interfaces/IConverterAnchor.sol", - "id": 2463, - "nodeType": "ImportDirective", - "scope": 3415, - "sourceUnit": 11827, - "src": "62:43:4", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "solidity/contracts/converter/interfaces/IConverterUpgrader.sol", - "file": "./interfaces/IConverterUpgrader.sol", - "id": 2464, - "nodeType": "ImportDirective", - "scope": 3415, - "sourceUnit": 12141, - "src": "106:45:4", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "solidity/contracts/converter/interfaces/ISovrynSwapFormula.sol", - "file": "./interfaces/ISovrynSwapFormula.sol", - "id": 2465, - "nodeType": "ImportDirective", - "scope": 3415, - "sourceUnit": 12241, - "src": "152:45:4", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "solidity/contracts/ISovrynSwapNetwork.sol", - "file": "../ISovrynSwapNetwork.sol", - "id": 2466, - "nodeType": "ImportDirective", - "scope": 3415, - "sourceUnit": 662, - "src": "198:35:4", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "solidity/contracts/utility/ContractRegistryClient.sol", - "file": "../utility/ContractRegistryClient.sol", - "id": 2467, - "nodeType": "ImportDirective", - "scope": 3415, - "sourceUnit": 20933, - "src": "234:47:4", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "solidity/contracts/utility/ReentrancyGuard.sol", - "file": "../utility/ReentrancyGuard.sol", - "id": 2468, - "nodeType": "ImportDirective", - "scope": 3415, - "sourceUnit": 21711, - "src": "282:40:4", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "solidity/contracts/utility/SafeMath.sol", - "file": "../utility/SafeMath.sol", - "id": 2469, - "nodeType": "ImportDirective", - "scope": 3415, - "sourceUnit": 21818, - "src": "323:33:4", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "solidity/contracts/utility/TokenHandler.sol", - "file": "../utility/TokenHandler.sol", - "id": 2470, - "nodeType": "ImportDirective", - "scope": 3415, - "sourceUnit": 21934, - "src": "357:37:4", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "solidity/contracts/utility/TokenHolder.sol", - "file": "../utility/TokenHolder.sol", - "id": 2471, - "nodeType": "ImportDirective", - "scope": 3415, - "sourceUnit": 21977, - "src": "395:36:4", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "solidity/contracts/token/interfaces/IEtherToken.sol", - "file": "../token/interfaces/IEtherToken.sol", - "id": 2472, - "nodeType": "ImportDirective", - "scope": 3415, - "sourceUnit": 20267, - "src": "432:45:4", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "solidity/contracts/sovrynswapx/interfaces/ISovrynSwapX.sol", - "file": "../sovrynswapx/interfaces/ISovrynSwapX.sol", - "id": 2473, - "nodeType": "ImportDirective", - "scope": 3415, - "sourceUnit": 19467, - "src": "478:52:4", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 2474, - "name": "IConverter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 11817, - "src": "1606:10:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - "id": 2475, - "nodeType": "InheritanceSpecifier", - "src": "1606:10:4" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 2476, - "name": "TokenHandler", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 21933, - "src": "1618:12:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_TokenHandler_$21933", - "typeString": "contract TokenHandler" - } - }, - "id": 2477, - "nodeType": "InheritanceSpecifier", - "src": "1618:12:4" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 2478, - "name": "TokenHolder", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 21976, - "src": "1632:11:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_TokenHolder_$21976", - "typeString": "contract TokenHolder" - } - }, - "id": 2479, - "nodeType": "InheritanceSpecifier", - "src": "1632:11:4" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 2480, - "name": "ContractRegistryClient", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20932, - "src": "1645:22:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ContractRegistryClient_$20932", - "typeString": "contract ContractRegistryClient" - } - }, - "id": 2481, - "nodeType": "InheritanceSpecifier", - "src": "1645:22:4" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 2482, - "name": "ReentrancyGuard", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 21710, - "src": "1669:15:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ReentrancyGuard_$21710", - "typeString": "contract ReentrancyGuard" - } - }, - "id": 2483, - "nodeType": "InheritanceSpecifier", - "src": "1669:15:4" - } - ], - "contractDependencies": [ - 11817, - 20932, - 21324, - 21710, - 21933, - 21976, - 22052, - 22247, - 22313 - ], - "contractKind": "contract", - "documentation": "@dev ConverterBase\n * The converter contains the main logic for conversions between different ERC20 tokens.\n * It is also the upgradable part of the mechanism (note that upgrades are opt-in).\n * The anchor must be set on construction and cannot be changed afterwards.\nWrappers are provided for some of the anchor's functions, for easier access.\n * Once the converter accepts ownership of the anchor, it becomes the anchor's sole controller\nand can execute any of its functions.\n * To upgrade the converter, anchor ownership must be transferred to a new converter, along with\nany relevant data.\n * Note that the converter can transfer anchor ownership to a new converter that\ndoesn't allow upgrades anymore, for finalizing the relationship between the converter\nand the anchor.\n * Converter types (defined as uint16 type) -\n0 = liquid token converter\n1 = liquidity pool v1 converter\n2 = liquidity pool v2 converter\n * Note that converters don't currently support tokens with transfer fees.", - "fullyImplemented": false, - "id": 3414, - "linearizedBaseContracts": [ - 3414, - 21710, - 20932, - 21976, - 22052, - 21324, - 21933, - 22313, - 11817, - 22247 - ], - "name": "ConverterBase", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 2486, - "libraryName": { - "contractScope": null, - "id": 2484, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 21817, - "src": "1694:8:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$21817", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "1688:27:4", - "typeName": { - "id": 2485, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1707:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "constant": true, - "id": 2489, - "name": "WEIGHT_RESOLUTION", - "nodeType": "VariableDeclaration", - "scope": 3414, - "src": "1718:52:4", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 2487, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "1718:6:4", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "31303030303030", - "id": 2488, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1763:7:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1000000_by_1", - "typeString": "int_const 1000000" - }, - "value": "1000000" - }, - "visibility": "internal" - }, - { - "constant": true, - "id": 2492, - "name": "CONVERSION_FEE_RESOLUTION", - "nodeType": "VariableDeclaration", - "scope": 3414, - "src": "1773:60:4", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 2490, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "1773:6:4", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "31303030303030", - "id": 2491, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1826:7:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1000000_by_1", - "typeString": "int_const 1000000" - }, - "value": "1000000" - }, - "visibility": "internal" - }, - { - "constant": true, - "id": 2495, - "name": "ETH_RESERVE_ADDRESS", - "nodeType": "VariableDeclaration", - "scope": 3414, - "src": "1836:90:4", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2493, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1836:7:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "307845656565654565656545654565654565456545656545454565656565456565656565656545456545", - "id": 2494, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1884:42:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "value": "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE" - }, - "visibility": "internal" - }, - { - "canonicalName": "ConverterBase.Reserve", - "id": 2506, - "members": [ - { - "constant": false, - "id": 2497, - "name": "balance", - "nodeType": "VariableDeclaration", - "scope": 2506, - "src": "1949:15:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2496, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1949:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2499, - "name": "weight", - "nodeType": "VariableDeclaration", - "scope": 2506, - "src": "1987:13:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 2498, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "1987:6:4", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2501, - "name": "deprecated1", - "nodeType": "VariableDeclaration", - "scope": 2506, - "src": "2053:16:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2500, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2053:4:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2503, - "name": "deprecated2", - "nodeType": "VariableDeclaration", - "scope": 2506, - "src": "2087:16:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2502, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2087:4:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2505, - "name": "isSet", - "nodeType": "VariableDeclaration", - "scope": 2506, - "src": "2121:10:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2504, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2121:4:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "name": "Reserve", - "nodeType": "StructDefinition", - "scope": 3414, - "src": "1930:254:4", - "visibility": "public" - }, - { - "constant": true, - "id": 2509, - "name": "version", - "nodeType": "VariableDeclaration", - "scope": 3414, - "src": "2221:35:4", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 2507, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "2221:6:4", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "3332", - "id": 2508, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2254:2:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_32_by_1", - "typeString": "int_const 32" - }, - "value": "32" - }, - "visibility": "public" - }, - { - "constant": false, - "id": 2511, - "name": "anchor", - "nodeType": "VariableDeclaration", - "scope": 3414, - "src": "2260:30:4", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - }, - "typeName": { - "contractScope": null, - "id": 2510, - "name": "IConverterAnchor", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 11826, - "src": "2260:16:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 2513, - "name": "conversionWhitelist", - "nodeType": "VariableDeclaration", - "scope": 3414, - "src": "2322:37:4", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IWhitelist_$22323", - "typeString": "contract IWhitelist" - }, - "typeName": { - "contractScope": null, - "id": 2512, - "name": "IWhitelist", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 22323, - "src": "2322:10:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IWhitelist_$22323", - "typeString": "contract IWhitelist" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 2516, - "name": "reserveTokens", - "nodeType": "VariableDeclaration", - "scope": 3414, - "src": "2445:34:4", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_storage", - "typeString": "contract IERC20Token[]" - }, - "typeName": { - "baseType": { - "contractScope": null, - "id": 2514, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "2445:11:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "id": 2515, - "length": null, - "nodeType": "ArrayTypeName", - "src": "2445:13:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_storage_ptr", - "typeString": "contract IERC20Token[]" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 2520, - "name": "reserves", - "nodeType": "VariableDeclaration", - "scope": 3414, - "src": "2566:43:4", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Reserve_$2506_storage_$", - "typeString": "mapping(address => struct ConverterBase.Reserve)" - }, - "typeName": { - "id": 2519, - "keyType": { - "id": 2517, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2574:7:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "2566:27:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Reserve_$2506_storage_$", - "typeString": "mapping(address => struct ConverterBase.Reserve)" - }, - "valueType": { - "contractScope": null, - "id": 2518, - "name": "Reserve", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2506, - "src": "2585:7:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Reserve_$2506_storage_ptr", - "typeString": "struct ConverterBase.Reserve" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 2523, - "name": "reserveRatio", - "nodeType": "VariableDeclaration", - "scope": 3414, - "src": "2700:30:4", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 2521, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "2700:6:4", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30", - "id": 2522, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2729:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "visibility": "public" - }, - { - "constant": false, - "id": 2526, - "name": "maxConversionFee", - "nodeType": "VariableDeclaration", - "scope": 3414, - "src": "2818:34:4", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 2524, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "2818:6:4", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30", - "id": 2525, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2851:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "visibility": "public" - }, - { - "constant": false, - "id": 2529, - "name": "conversionFee", - "nodeType": "VariableDeclaration", - "scope": 3414, - "src": "2993:31:4", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 2527, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "2993:6:4", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30", - "id": 2528, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3023:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "visibility": "public" - }, - { - "constant": true, - "id": 2532, - "name": "conversionsEnabled", - "nodeType": "VariableDeclaration", - "scope": 3414, - "src": "3095:46:4", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2530, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "3095:4:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 2531, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3137:4:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "visibility": "public" - }, - { - "anonymous": false, - "documentation": "@dev triggered when the converter is activated\n\t * @param _type converter type\n@param _anchor converter anchor\n@param _activated true if the converter was activated, false if it was deactivated", - "id": 2540, - "name": "Activation", - "nodeType": "EventDefinition", - "parameters": { - "id": 2539, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2534, - "indexed": true, - "name": "_type", - "nodeType": "VariableDeclaration", - "scope": 2540, - "src": "3434:20:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 2533, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "3434:6:4", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2536, - "indexed": true, - "name": "_anchor", - "nodeType": "VariableDeclaration", - "scope": 2540, - "src": "3456:32:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - }, - "typeName": { - "contractScope": null, - "id": 2535, - "name": "IConverterAnchor", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 11826, - "src": "3456:16:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2538, - "indexed": true, - "name": "_activated", - "nodeType": "VariableDeclaration", - "scope": 2540, - "src": "3490:23:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2537, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "3490:4:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3433:81:4" - }, - "src": "3417:98:4" - }, - { - "anonymous": false, - "documentation": "@dev triggered when a conversion between two tokens occurs\n\t * @param _fromToken source ERC20 token\n@param _toToken target ERC20 token\n@param _trader wallet that initiated the trade\n@param _amount amount converted, in the source token\n@param _return amount returned, minus conversion fee\n@param _conversionFee conversion fee", - "id": 2554, - "name": "Conversion", - "nodeType": "EventDefinition", - "parameters": { - "id": 2553, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2542, - "indexed": true, - "name": "_fromToken", - "nodeType": "VariableDeclaration", - "scope": 2554, - "src": "3944:26:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2541, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3944:7:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2544, - "indexed": true, - "name": "_toToken", - "nodeType": "VariableDeclaration", - "scope": 2554, - "src": "3974:24:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2543, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3974:7:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2546, - "indexed": true, - "name": "_trader", - "nodeType": "VariableDeclaration", - "scope": 2554, - "src": "4002:23:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2545, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4002:7:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2548, - "indexed": false, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 2554, - "src": "4029:15:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2547, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4029:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2550, - "indexed": false, - "name": "_return", - "nodeType": "VariableDeclaration", - "scope": 2554, - "src": "4048:15:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2549, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4048:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2552, - "indexed": false, - "name": "_conversionFee", - "nodeType": "VariableDeclaration", - "scope": 2554, - "src": "4067:21:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "typeName": { - "id": 2551, - "name": "int256", - "nodeType": "ElementaryTypeName", - "src": "4067:6:4", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3940:151:4" - }, - "src": "3924:168:4" - }, - { - "anonymous": false, - "documentation": "@dev triggered when the rate between two tokens in the converter changes\nnote that the event might be dispatched for rate updates between any two tokens in the converter\nnote that prior to version 28, you should use the 'PriceDataUpdate' event instead\n\t * @param _token1 address of the first token\n@param _token2 address of the second token\n@param _rateN rate of 1 unit of `_token1` in `_token2` (numerator)\n@param _rateD rate of 1 unit of `_token1` in `_token2` (denominator)", - "id": 2564, - "name": "TokenRateUpdate", - "nodeType": "EventDefinition", - "parameters": { - "id": 2563, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2556, - "indexed": true, - "name": "_token1", - "nodeType": "VariableDeclaration", - "scope": 2564, - "src": "4638:23:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2555, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4638:7:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2558, - "indexed": true, - "name": "_token2", - "nodeType": "VariableDeclaration", - "scope": 2564, - "src": "4663:23:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2557, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4663:7:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2560, - "indexed": false, - "name": "_rateN", - "nodeType": "VariableDeclaration", - "scope": 2564, - "src": "4688:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2559, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4688:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2562, - "indexed": false, - "name": "_rateD", - "nodeType": "VariableDeclaration", - "scope": 2564, - "src": "4704:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2561, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4704:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4637:82:4" - }, - "src": "4616:104:4" - }, - { - "anonymous": false, - "documentation": "@dev triggered when the conversion fee is updated\n\t * @param _prevFee previous fee percentage, represented in ppm\n@param _newFee new fee percentage, represented in ppm", - "id": 2570, - "name": "ConversionFeeUpdate", - "nodeType": "EventDefinition", - "parameters": { - "id": 2569, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2566, - "indexed": false, - "name": "_prevFee", - "nodeType": "VariableDeclaration", - "scope": 2570, - "src": "4948:15:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 2565, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "4948:6:4", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2568, - "indexed": false, - "name": "_newFee", - "nodeType": "VariableDeclaration", - "scope": 2570, - "src": "4965:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 2567, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "4965:6:4", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4947:33:4" - }, - "src": "4922:59:4" - }, - { - "body": { - "id": 2596, - "nodeType": "Block", - "src": "5476:64:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 2590, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2588, - "name": "anchor", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2511 - ], - "referencedDeclaration": 2511, - "src": "5480:6:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2589, - "name": "_anchor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2572, - "src": "5489:7:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - }, - "src": "5480:16:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - }, - "id": 2591, - "nodeType": "ExpressionStatement", - "src": "5480:16:4" - }, - { - "expression": { - "argumentTypes": null, - "id": 2594, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2592, - "name": "maxConversionFee", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2526 - ], - "referencedDeclaration": 2526, - "src": "5500:16:4", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2593, - "name": "_maxConversionFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2576, - "src": "5519:17:4", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "src": "5500:36:4", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "id": 2595, - "nodeType": "ExpressionStatement", - "src": "5500:36:4" - } - ] - }, - "documentation": "@dev used by sub-contracts to initialize a new converter\n\t * @param _anchor anchor governed by the converter\n@param _registry address of a contract registry contract\n@param _maxConversionFee maximum conversion fee, represented in ppm", - "id": 2597, - "implemented": true, - "isConstructor": true, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 2579, - "name": "_anchor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2572, - "src": "5395:7:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - } - ], - "id": 2580, - "modifierName": { - "argumentTypes": null, - "id": 2578, - "name": "validAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22011, - "src": "5382:12:4", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$", - "typeString": "modifier (address)" - } - }, - "nodeType": "ModifierInvocation", - "src": "5382:21:4" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 2582, - "name": "_registry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2574, - "src": "5427:9:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IContractRegistry_$22220", - "typeString": "contract IContractRegistry" - } - } - ], - "id": 2583, - "modifierName": { - "argumentTypes": null, - "id": 2581, - "name": "ContractRegistryClient", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20932, - "src": "5404:22:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ContractRegistryClient_$20932_$", - "typeString": "type(contract ContractRegistryClient)" - } - }, - "nodeType": "ModifierInvocation", - "src": "5404:33:4" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 2585, - "name": "_maxConversionFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2576, - "src": "5457:17:4", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "id": 2586, - "modifierName": { - "argumentTypes": null, - "id": 2584, - "name": "validConversionFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2666, - "src": "5438:18:4", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint32_$", - "typeString": "modifier (uint32)" - } - }, - "nodeType": "ModifierInvocation", - "src": "5438:37:4" - } - ], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2577, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2572, - "name": "_anchor", - "nodeType": "VariableDeclaration", - "scope": 2597, - "src": "5286:24:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - }, - "typeName": { - "contractScope": null, - "id": 2571, - "name": "IConverterAnchor", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 11826, - "src": "5286:16:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2574, - "name": "_registry", - "nodeType": "VariableDeclaration", - "scope": 2597, - "src": "5314:27:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IContractRegistry_$22220", - "typeString": "contract IContractRegistry" - }, - "typeName": { - "contractScope": null, - "id": 2573, - "name": "IContractRegistry", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 22220, - "src": "5314:17:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IContractRegistry_$22220", - "typeString": "contract IContractRegistry" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2576, - "name": "_maxConversionFee", - "nodeType": "VariableDeclaration", - "scope": 2597, - "src": "5345:24:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 2575, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "5345:6:4", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5282:90:4" - }, - "payable": false, - "returnParameters": { - "id": 2587, - "nodeType": "ParameterList", - "parameters": [], - "src": "5476:0:4" - }, - "scope": 3414, - "src": "5271:269:4", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 2603, - "nodeType": "Block", - "src": "5602:22:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 2599, - "name": "_active", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2614, - "src": "5606:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$__$", - "typeString": "function () view" - } - }, - "id": 2600, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5606:9:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2601, - "nodeType": "ExpressionStatement", - "src": "5606:9:4" - }, - { - "id": 2602, - "nodeType": "PlaceholderStatement", - "src": "5619:1:4" - } - ] - }, - "documentation": null, - "id": 2604, - "name": "active", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 2598, - "nodeType": "ParameterList", - "parameters": [], - "src": "5599:2:4" - }, - "src": "5584:40:4", - "visibility": "internal" - }, - { - "body": { - "id": 2613, - "nodeType": "Block", - "src": "5703:43:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 2608, - "name": "isActive", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2802 - ], - "referencedDeclaration": 2802, - "src": "5715:8:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$", - "typeString": "function () view returns (bool)" - } - }, - "id": 2609, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5715:10:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552525f494e414354495645", - "id": 2610, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5727:14:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_a22dd8039fb80c8642cf17389b806c873aa9fbdbf3f2bd8746d8ce373ef50f9e", - "typeString": "literal_string \"ERR_INACTIVE\"" - }, - "value": "ERR_INACTIVE" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_a22dd8039fb80c8642cf17389b806c873aa9fbdbf3f2bd8746d8ce373ef50f9e", - "typeString": "literal_string \"ERR_INACTIVE\"" - } - ], - "id": 2607, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 22341, - 22342 - ], - "referencedDeclaration": 22342, - "src": "5707:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2611, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5707:35:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2612, - "nodeType": "ExpressionStatement", - "src": "5707:35:4" - } - ] - }, - "documentation": null, - "id": 2614, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "_active", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2605, - "nodeType": "ParameterList", - "parameters": [], - "src": "5686:2:4" - }, - "payable": false, - "returnParameters": { - "id": 2606, - "nodeType": "ParameterList", - "parameters": [], - "src": "5703:0:4" - }, - "scope": 3414, - "src": "5670:76:4", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 2620, - "nodeType": "Block", - "src": "5814:24:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 2616, - "name": "_inactive", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2632, - "src": "5818:9:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$__$", - "typeString": "function () view" - } - }, - "id": 2617, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5818:11:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2618, - "nodeType": "ExpressionStatement", - "src": "5818:11:4" - }, - { - "id": 2619, - "nodeType": "PlaceholderStatement", - "src": "5833:1:4" - } - ] - }, - "documentation": null, - "id": 2621, - "name": "inactive", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 2615, - "nodeType": "ParameterList", - "parameters": [], - "src": "5811:2:4" - }, - "src": "5794:44:4", - "visibility": "internal" - }, - { - "body": { - "id": 2631, - "nodeType": "Block", - "src": "5919:42:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2627, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "5931:11:4", - "subExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 2625, - "name": "isActive", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2802 - ], - "referencedDeclaration": 2802, - "src": "5932:8:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$", - "typeString": "function () view returns (bool)" - } - }, - "id": 2626, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5932:10:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552525f414354495645", - "id": 2628, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5944:12:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_181d3d32638945611c2cb46b623de141c5e74a32dcd850864f64837aa849ee3f", - "typeString": "literal_string \"ERR_ACTIVE\"" - }, - "value": "ERR_ACTIVE" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_181d3d32638945611c2cb46b623de141c5e74a32dcd850864f64837aa849ee3f", - "typeString": "literal_string \"ERR_ACTIVE\"" - } - ], - "id": 2624, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 22341, - 22342 - ], - "referencedDeclaration": 22342, - "src": "5923:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2629, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5923:34:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2630, - "nodeType": "ExpressionStatement", - "src": "5923:34:4" - } - ] - }, - "documentation": null, - "id": 2632, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "_inactive", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2622, - "nodeType": "ParameterList", - "parameters": [], - "src": "5902:2:4" - }, - "payable": false, - "returnParameters": { - "id": 2623, - "nodeType": "ParameterList", - "parameters": [], - "src": "5919:0:4" - }, - "scope": 3414, - "src": "5884:77:4", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 2641, - "nodeType": "Block", - "src": "6111:36:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2637, - "name": "_address", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2634, - "src": "6129:8:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - ], - "id": 2636, - "name": "_validReserve", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2656, - "src": "6115:13:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_contract$_IERC20Token_$20240_$returns$__$", - "typeString": "function (contract IERC20Token) view" - } - }, - "id": 2638, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6115:23:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2639, - "nodeType": "ExpressionStatement", - "src": "6115:23:4" - }, - { - "id": 2640, - "nodeType": "PlaceholderStatement", - "src": "6142:1:4" - } - ] - }, - "documentation": null, - "id": 2642, - "name": "validReserve", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 2635, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2634, - "name": "_address", - "nodeType": "VariableDeclaration", - "scope": 2642, - "src": "6089:20:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - "typeName": { - "contractScope": null, - "id": 2633, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "6089:11:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6088:22:4" - }, - "src": "6067:80:4", - "visibility": "internal" - }, - { - "body": { - "id": 2655, - "nodeType": "Block", - "src": "6252:64:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2648, - "name": "reserves", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2520, - "src": "6264:8:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Reserve_$2506_storage_$", - "typeString": "mapping(address => struct ConverterBase.Reserve storage ref)" - } - }, - "id": 2650, - "indexExpression": { - "argumentTypes": null, - "id": 2649, - "name": "_address", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2644, - "src": "6273:8:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6264:18:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Reserve_$2506_storage", - "typeString": "struct ConverterBase.Reserve storage ref" - } - }, - "id": 2651, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "isSet", - "nodeType": "MemberAccess", - "referencedDeclaration": 2505, - "src": "6264:24:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552525f494e56414c49445f52455345525645", - "id": 2652, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6290:21:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_2f153897d46b1410527faf37dfe95496d4a79980282840ba17da0adc4406792c", - "typeString": "literal_string \"ERR_INVALID_RESERVE\"" - }, - "value": "ERR_INVALID_RESERVE" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_2f153897d46b1410527faf37dfe95496d4a79980282840ba17da0adc4406792c", - "typeString": "literal_string \"ERR_INVALID_RESERVE\"" - } - ], - "id": 2647, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 22341, - 22342 - ], - "referencedDeclaration": 22342, - "src": "6256:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2653, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6256:56:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2654, - "nodeType": "ExpressionStatement", - "src": "6256:56:4" - } - ] - }, - "documentation": null, - "id": 2656, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "_validReserve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2645, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2644, - "name": "_address", - "nodeType": "VariableDeclaration", - "scope": 2656, - "src": "6216:20:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - "typeName": { - "contractScope": null, - "id": 2643, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "6216:11:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6215:22:4" - }, - "payable": false, - "returnParameters": { - "id": 2646, - "nodeType": "ParameterList", - "parameters": [], - "src": "6252:0:4" - }, - "scope": 3414, - "src": "6193:123:4", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 2665, - "nodeType": "Block", - "src": "6399:48:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2661, - "name": "_conversionFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2658, - "src": "6423:14:4", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - ], - "id": 2660, - "name": "_validConversionFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2679, - "src": "6403:19:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint32_$returns$__$", - "typeString": "function (uint32) pure" - } - }, - "id": 2662, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6403:35:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2663, - "nodeType": "ExpressionStatement", - "src": "6403:35:4" - }, - { - "id": 2664, - "nodeType": "PlaceholderStatement", - "src": "6442:1:4" - } - ] - }, - "documentation": null, - "id": 2666, - "name": "validConversionFee", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 2659, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2658, - "name": "_conversionFee", - "nodeType": "VariableDeclaration", - "scope": 2666, - "src": "6376:21:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 2657, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "6376:6:4", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6375:23:4" - }, - "src": "6348:99:4", - "visibility": "internal" - }, - { - "body": { - "id": 2678, - "nodeType": "Block", - "src": "6559:90:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "id": 2674, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2672, - "name": "_conversionFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2668, - "src": "6571:14:4", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "id": 2673, - "name": "CONVERSION_FEE_RESOLUTION", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2492, - "src": "6589:25:4", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "src": "6571:43:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552525f494e56414c49445f434f4e56455253494f4e5f464545", - "id": 2675, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6616:28:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_ae729833ea0b2cfd1b35fa1d075ae330e76860b5ab276fa04bde88b85e5c4d00", - "typeString": "literal_string \"ERR_INVALID_CONVERSION_FEE\"" - }, - "value": "ERR_INVALID_CONVERSION_FEE" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_ae729833ea0b2cfd1b35fa1d075ae330e76860b5ab276fa04bde88b85e5c4d00", - "typeString": "literal_string \"ERR_INVALID_CONVERSION_FEE\"" - } - ], - "id": 2671, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 22341, - 22342 - ], - "referencedDeclaration": 22342, - "src": "6563:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2676, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6563:82:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2677, - "nodeType": "ExpressionStatement", - "src": "6563:82:4" - } - ] - }, - "documentation": null, - "id": 2679, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "_validConversionFee", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2669, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2668, - "name": "_conversionFee", - "nodeType": "VariableDeclaration", - "scope": 2679, - "src": "6522:21:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 2667, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "6522:6:4", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6521:23:4" - }, - "payable": false, - "returnParameters": { - "id": 2670, - "nodeType": "ParameterList", - "parameters": [], - "src": "6559:0:4" - }, - "scope": 3414, - "src": "6493:156:4", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 2688, - "nodeType": "Block", - "src": "6725:41:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2684, - "name": "_weight", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2681, - "src": "6749:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - ], - "id": 2683, - "name": "_validReserveWeight", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2706, - "src": "6729:19:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint32_$returns$__$", - "typeString": "function (uint32) pure" - } - }, - "id": 2685, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6729:28:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2686, - "nodeType": "ExpressionStatement", - "src": "6729:28:4" - }, - { - "id": 2687, - "nodeType": "PlaceholderStatement", - "src": "6761:1:4" - } - ] - }, - "documentation": null, - "id": 2689, - "name": "validReserveWeight", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 2682, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2681, - "name": "_weight", - "nodeType": "VariableDeclaration", - "scope": 2689, - "src": "6709:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 2680, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "6709:6:4", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6708:16:4" - }, - "src": "6681:85:4", - "visibility": "internal" - }, - { - "body": { - "id": 2705, - "nodeType": "Block", - "src": "6871:90:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 2701, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "id": 2697, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2695, - "name": "_weight", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2691, - "src": "6883:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2696, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6893:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "6883:11:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "id": 2700, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2698, - "name": "_weight", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2691, - "src": "6898:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "id": 2699, - "name": "WEIGHT_RESOLUTION", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2489, - "src": "6909:17:4", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "src": "6898:28:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "6883:43:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552525f494e56414c49445f524553455256455f574549474854", - "id": 2702, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6928:28:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_e4e4c57eb13b428a7fc031dc1f6f2c3e13b61f7d7b93994b2d17f8dc75658178", - "typeString": "literal_string \"ERR_INVALID_RESERVE_WEIGHT\"" - }, - "value": "ERR_INVALID_RESERVE_WEIGHT" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_e4e4c57eb13b428a7fc031dc1f6f2c3e13b61f7d7b93994b2d17f8dc75658178", - "typeString": "literal_string \"ERR_INVALID_RESERVE_WEIGHT\"" - } - ], - "id": 2694, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 22341, - 22342 - ], - "referencedDeclaration": 22342, - "src": "6875:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2703, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6875:82:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2704, - "nodeType": "ExpressionStatement", - "src": "6875:82:4" - } - ] - }, - "documentation": null, - "id": 2706, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "_validReserveWeight", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2692, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2691, - "name": "_weight", - "nodeType": "VariableDeclaration", - "scope": 2706, - "src": "6841:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 2690, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "6841:6:4", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6840:16:4" - }, - "payable": false, - "returnParameters": { - "id": 2693, - "nodeType": "ParameterList", - "parameters": [], - "src": "6871:0:4" - }, - "scope": 3414, - "src": "6812:149:4", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 2717, - "nodeType": "Block", - "src": "7085:256:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2710, - "name": "reserves", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2520, - "src": "7097:8:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Reserve_$2506_storage_$", - "typeString": "mapping(address => struct ConverterBase.Reserve storage ref)" - } - }, - "id": 2712, - "indexExpression": { - "argumentTypes": null, - "id": 2711, - "name": "ETH_RESERVE_ADDRESS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2495, - "src": "7106:19:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7097:29:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Reserve_$2506_storage", - "typeString": "struct ConverterBase.Reserve storage ref" - } - }, - "id": 2713, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "isSet", - "nodeType": "MemberAccess", - "referencedDeclaration": 2505, - "src": "7097:35:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552525f494e56414c49445f52455345525645", - "id": 2714, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7134:21:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_2f153897d46b1410527faf37dfe95496d4a79980282840ba17da0adc4406792c", - "typeString": "literal_string \"ERR_INVALID_RESERVE\"" - }, - "value": "ERR_INVALID_RESERVE" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_2f153897d46b1410527faf37dfe95496d4a79980282840ba17da0adc4406792c", - "typeString": "literal_string \"ERR_INVALID_RESERVE\"" - } - ], - "id": 2709, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 22341, - 22342 - ], - "referencedDeclaration": 22342, - "src": "7089:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2715, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7089:67:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2716, - "nodeType": "ExpressionStatement", - "src": "7089:67:4" - } - ] - }, - "documentation": "@dev deposits ether\ncan only be called if the converter has an ETH reserve", - "id": 2718, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2707, - "nodeType": "ParameterList", - "parameters": [], - "src": "7065:2:4" - }, - "payable": true, - "returnParameters": { - "id": 2708, - "nodeType": "ParameterList", - "parameters": [], - "src": "7085:0:4" - }, - "scope": 3414, - "src": "7057:284:4", - "stateMutability": "payable", - "superFunction": 11730, - "visibility": "external" - }, - { - "body": { - "id": 2764, - "nodeType": "Block", - "src": "7777:357:4", - "statements": [ - { - "assignments": [ - 2733 - ], - "declarations": [ - { - "constant": false, - "id": 2733, - "name": "converterUpgrader", - "nodeType": "VariableDeclaration", - "scope": 2765, - "src": "7781:25:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2732, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7781:7:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2737, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2735, - "name": "CONVERTER_UPGRADER", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20767, - "src": "7819:18:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 2734, - "name": "addressOf", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20931, - "src": "7809:9:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$", - "typeString": "function (bytes32) view returns (address)" - } - }, - "id": 2736, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7809:29:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "7781:57:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 2745, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2741, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "7937:11:4", - "subExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 2739, - "name": "isActive", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2802 - ], - "referencedDeclaration": 2802, - "src": "7938:8:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$", - "typeString": "function () view returns (bool)" - } - }, - "id": 2740, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7938:10:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 2744, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2742, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 21241 - ], - "referencedDeclaration": 21241, - "src": "7952:5:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 2743, - "name": "converterUpgrader", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2733, - "src": "7961:17:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "7952:26:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "7937:41:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552525f4143434553535f44454e494544", - "id": 2746, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7980:19:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_f5894269650d3e1726ed81a4f48c5b62c7dd6fa025b89d639952a7012960d666", - "typeString": "literal_string \"ERR_ACCESS_DENIED\"" - }, - "value": "ERR_ACCESS_DENIED" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_f5894269650d3e1726ed81a4f48c5b62c7dd6fa025b89d639952a7012960d666", - "typeString": "literal_string \"ERR_ACCESS_DENIED\"" - } - ], - "id": 2738, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 22341, - 22342 - ], - "referencedDeclaration": 22342, - "src": "7929:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2747, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7929:71:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2748, - "nodeType": "ExpressionStatement", - "src": "7929:71:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2753, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22401, - "src": "8025:4:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ConverterBase_$3414", - "typeString": "contract ConverterBase" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_ConverterBase_$3414", - "typeString": "contract ConverterBase" - } - ], - "id": 2752, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "8017:7:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 2754, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8017:13:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2755, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "balance", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8017:21:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 2749, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2720, - "src": "8004:3:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2751, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8004:12:4", - "typeDescriptions": { - "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 2756, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8004:35:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2757, - "nodeType": "ExpressionStatement", - "src": "8004:35:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2760, - "name": "ETH_RESERVE_ADDRESS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2495, - "src": "8109:19:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 2759, - "name": "IERC20Token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20240, - "src": "8097:11:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20Token_$20240_$", - "typeString": "type(contract IERC20Token)" - } - }, - "id": 2761, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8097:32:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - ], - "id": 2758, - "name": "syncReserveBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3237, - "src": "8078:18:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20Token_$20240_$returns$__$", - "typeString": "function (contract IERC20Token)" - } - }, - "id": 2762, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8078:52:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2763, - "nodeType": "ExpressionStatement", - "src": "8078:52:4" - } - ] - }, - "documentation": "@dev withdraws ether\ncan only be called by the owner if the converter is inactive or by upgrader contract\ncan only be called after the upgrader contract has accepted the ownership of this contract\ncan only be called if the converter has an ETH reserve\n\t * @param _to address to send the ETH to", - "id": 2765, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 2723, - "modifierName": { - "argumentTypes": null, - "id": 2722, - "name": "protected", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21698, - "src": "7710:9:4", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "7710:9:4" - }, - { - "arguments": null, - "id": 2725, - "modifierName": { - "argumentTypes": null, - "id": 2724, - "name": "ownerOnly", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21265, - "src": "7720:9:4", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "7720:9:4" - }, - { - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2728, - "name": "ETH_RESERVE_ADDRESS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2495, - "src": "7755:19:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 2727, - "name": "IERC20Token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20240, - "src": "7743:11:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20Token_$20240_$", - "typeString": "type(contract IERC20Token)" - } - }, - "id": 2729, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7743:32:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - } - ], - "id": 2730, - "modifierName": { - "argumentTypes": null, - "id": 2726, - "name": "validReserve", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2642, - "src": "7730:12:4", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_contract$_IERC20Token_$20240_$", - "typeString": "modifier (contract IERC20Token)" - } - }, - "nodeType": "ModifierInvocation", - "src": "7730:46:4" - } - ], - "name": "withdrawETH", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2721, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2720, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 2765, - "src": "7690:11:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2719, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7690:7:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7689:13:4" - }, - "payable": false, - "returnParameters": { - "id": 2731, - "nodeType": "ParameterList", - "parameters": [], - "src": "7777:0:4" - }, - "scope": 3414, - "src": "7669:465:4", - "stateMutability": "nonpayable", - "superFunction": 11762, - "visibility": "public" - }, - { - "body": { - "id": 2772, - "nodeType": "Block", - "src": "8334:19:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 2770, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8345:4:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 2769, - "id": 2771, - "nodeType": "Return", - "src": "8338:11:4" - } - ] - }, - "documentation": "@dev checks whether or not the converter version is 28 or higher\n\t * @return true, since the converter version is 28 or higher", - "id": 2773, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "isV28OrHigher", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2766, - "nodeType": "ParameterList", - "parameters": [], - "src": "8304:2:4" - }, - "payable": false, - "returnParameters": { - "id": 2769, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2768, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2773, - "src": "8328:4:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2767, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "8328:4:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8327:6:4" - }, - "scope": 3414, - "src": "8282:71:4", - "stateMutability": "pure", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2787, - "nodeType": "Block", - "src": "8783:40:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 2785, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2783, - "name": "conversionWhitelist", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2513 - ], - "referencedDeclaration": 2513, - "src": "8787:19:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IWhitelist_$22323", - "typeString": "contract IWhitelist" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2784, - "name": "_whitelist", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2775, - "src": "8809:10:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IWhitelist_$22323", - "typeString": "contract IWhitelist" - } - }, - "src": "8787:32:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IWhitelist_$22323", - "typeString": "contract IWhitelist" - } - }, - "id": 2786, - "nodeType": "ExpressionStatement", - "src": "8787:32:4" - } - ] - }, - "documentation": "@dev allows the owner to update & enable the conversion whitelist contract address\nwhen set, only addresses that are whitelisted are actually allowed to use the converter\nnote that the whitelist check is actually done by the SovrynSwapNetwork contract\n\t * @param _whitelist address of a whitelist contract", - "id": 2788, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 2778, - "modifierName": { - "argumentTypes": null, - "id": 2777, - "name": "ownerOnly", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21265, - "src": "8753:9:4", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "8753:9:4" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 2780, - "name": "_whitelist", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2775, - "src": "8771:10:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IWhitelist_$22323", - "typeString": "contract IWhitelist" - } - } - ], - "id": 2781, - "modifierName": { - "argumentTypes": null, - "id": 2779, - "name": "notThis", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22036, - "src": "8763:7:4", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$", - "typeString": "modifier (address)" - } - }, - "nodeType": "ModifierInvocation", - "src": "8763:19:4" - } - ], - "name": "setConversionWhitelist", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2776, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2775, - "name": "_whitelist", - "nodeType": "VariableDeclaration", - "scope": 2788, - "src": "8723:21:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IWhitelist_$22323", - "typeString": "contract IWhitelist" - }, - "typeName": { - "contractScope": null, - "id": 2774, - "name": "IWhitelist", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 22323, - "src": "8723:10:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IWhitelist_$22323", - "typeString": "contract IWhitelist" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8722:23:4" - }, - "payable": false, - "returnParameters": { - "id": 2782, - "nodeType": "ParameterList", - "parameters": [], - "src": "8783:0:4" - }, - "scope": 3414, - "src": "8691:132:4", - "stateMutability": "nonpayable", - "superFunction": 11748, - "visibility": "public" - }, - { - "body": { - "id": 2801, - "nodeType": "Block", - "src": "9014:46:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 2799, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 2793, - "name": "anchor", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2511 - ], - "referencedDeclaration": 2511, - "src": "9025:6:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - }, - "id": 2794, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "owner", - "nodeType": "MemberAccess", - "referencedDeclaration": 22238, - "src": "9025:12:4", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", - "typeString": "function () view external returns (address)" - } - }, - "id": 2795, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9025:14:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2797, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22401, - "src": "9051:4:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ConverterBase_$3414", - "typeString": "contract ConverterBase" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_ConverterBase_$3414", - "typeString": "contract ConverterBase" - } - ], - "id": 2796, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "9043:7:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 2798, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9043:13:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "9025:31:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 2792, - "id": 2800, - "nodeType": "Return", - "src": "9018:38:4" - } - ] - }, - "documentation": "@dev returns true if the converter is active, false otherwise\n\t * @return true if the converter is active, false otherwise", - "id": 2802, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "isActive", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2789, - "nodeType": "ParameterList", - "parameters": [], - "src": "8984:2:4" - }, - "payable": false, - "returnParameters": { - "id": 2792, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2791, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2802, - "src": "9008:4:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2790, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "9008:4:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9007:6:4" - }, - "scope": 3414, - "src": "8967:93:4", - "stateMutability": "view", - "superFunction": 11668, - "visibility": "public" - }, - { - "body": { - "id": 2818, - "nodeType": "Block", - "src": "9462:43:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2815, - "name": "_newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2804, - "src": "9491:9:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 2812, - "name": "anchor", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2511 - ], - "referencedDeclaration": 2511, - "src": "9466:6:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - }, - "id": 2814, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transferOwnership", - "nodeType": "MemberAccess", - "referencedDeclaration": 22243, - "src": "9466:24:4", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$", - "typeString": "function (address) external" - } - }, - "id": 2816, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9466:35:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2817, - "nodeType": "ExpressionStatement", - "src": "9466:35:4" - } - ] - }, - "documentation": "@dev transfers the anchor ownership\nthe new owner needs to accept the transfer\ncan only be called by the converter upgrder while the upgrader is the owner\nnote that prior to version 28, you should use 'transferAnchorOwnership' instead\n\t * @param _newOwner new token owner", - "id": 2819, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 2807, - "modifierName": { - "argumentTypes": null, - "id": 2806, - "name": "ownerOnly", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21265, - "src": "9427:9:4", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "9427:9:4" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 2809, - "name": "CONVERTER_UPGRADER", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20767, - "src": "9442:18:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "id": 2810, - "modifierName": { - "argumentTypes": null, - "id": 2808, - "name": "only", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20801, - "src": "9437:4:4", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_bytes32_$", - "typeString": "modifier (bytes32)" - } - }, - "nodeType": "ModifierInvocation", - "src": "9437:24:4" - } - ], - "name": "transferAnchorOwnership", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2805, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2804, - "name": "_newOwner", - "nodeType": "VariableDeclaration", - "scope": 2819, - "src": "9401:17:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2803, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "9401:7:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9400:19:4" - }, - "payable": false, - "returnParameters": { - "id": 2811, - "nodeType": "ParameterList", - "parameters": [], - "src": "9462:0:4" - }, - "scope": 3414, - "src": "9368:137:4", - "stateMutability": "nonpayable", - "superFunction": 11735, - "visibility": "public" - }, - { - "body": { - "id": 2840, - "nodeType": "Block", - "src": "9846:177:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "id": 2828, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 2825, - "name": "reserveTokenCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2984, - "src": "9913:17:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_uint16_$", - "typeString": "function () view returns (uint16)" - } - }, - "id": 2826, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9913:19:4", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2827, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9935:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "9913:23:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552525f494e56414c49445f524553455256455f434f554e54", - "id": 2829, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9938:27:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_ed94f14d8dcbb423a259b4072978fc0c494c6af1fea066a19023afb1a76ac87f", - "typeString": "literal_string \"ERR_INVALID_RESERVE_COUNT\"" - }, - "value": "ERR_INVALID_RESERVE_COUNT" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_ed94f14d8dcbb423a259b4072978fc0c494c6af1fea066a19023afb1a76ac87f", - "typeString": "literal_string \"ERR_INVALID_RESERVE_COUNT\"" - } - ], - "id": 2824, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 22341, - 22342 - ], - "referencedDeclaration": 22342, - "src": "9905:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2830, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9905:61:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2831, - "nodeType": "ExpressionStatement", - "src": "9905:61:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 2832, - "name": "anchor", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2511 - ], - "referencedDeclaration": 2511, - "src": "9970:6:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - }, - "id": 2834, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "acceptOwnership", - "nodeType": "MemberAccess", - "referencedDeclaration": 22246, - "src": "9970:22:4", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$__$returns$__$", - "typeString": "function () external" - } - }, - "id": 2835, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9970:24:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2836, - "nodeType": "ExpressionStatement", - "src": "9970:24:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 2837, - "name": "syncReserveBalances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3263, - "src": "9998:19:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", - "typeString": "function ()" - } - }, - "id": 2838, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9998:21:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2839, - "nodeType": "ExpressionStatement", - "src": "9998:21:4" - } - ] - }, - "documentation": "@dev accepts ownership of the anchor after an ownership transfer\nmost converters are also activated as soon as they accept the anchor ownership\ncan only be called by the contract owner\nnote that prior to version 28, you should use 'acceptTokenOwnership' instead", - "id": 2841, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 2822, - "modifierName": { - "argumentTypes": null, - "id": 2821, - "name": "ownerOnly", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21265, - "src": "9836:9:4", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "9836:9:4" - } - ], - "name": "acceptAnchorOwnership", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2820, - "nodeType": "ParameterList", - "parameters": [], - "src": "9826:2:4" - }, - "payable": false, - "returnParameters": { - "id": 2823, - "nodeType": "ParameterList", - "parameters": [], - "src": "9846:0:4" - }, - "scope": 3414, - "src": "9796:227:4", - "stateMutability": "nonpayable", - "superFunction": 11738, - "visibility": "public" - }, - { - "body": { - "id": 2860, - "nodeType": "Block", - "src": "10396:51:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2855, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2843, - "src": "10422:6:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - { - "argumentTypes": null, - "id": 2856, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2845, - "src": "10430:3:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2857, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2847, - "src": "10435:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 2852, - "name": "anchor", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2511 - ], - "referencedDeclaration": 2511, - "src": "10400:6:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - }, - "id": 2854, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "withdrawTokens", - "nodeType": "MemberAccess", - "referencedDeclaration": 22312, - "src": "10400:21:4", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_contract$_IERC20Token_$20240_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (contract IERC20Token,address,uint256) external" - } - }, - "id": 2858, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10400:43:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2859, - "nodeType": "ExpressionStatement", - "src": "10400:43:4" - } - ] - }, - "documentation": "@dev withdraws tokens held by the anchor and sends them to an account\ncan only be called by the owner\n\t * @param _token ERC20 token contract address\n@param _to account to receive the new amount\n@param _amount amount to withdraw", - "id": 2861, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 2850, - "modifierName": { - "argumentTypes": null, - "id": 2849, - "name": "ownerOnly", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21265, - "src": "10386:9:4", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "10386:9:4" - } - ], - "name": "withdrawFromAnchor", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2848, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2843, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 2861, - "src": "10323:18:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - "typeName": { - "contractScope": null, - "id": 2842, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "10323:11:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2845, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 2861, - "src": "10345:11:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2844, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "10345:7:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2847, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 2861, - "src": "10360:15:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2846, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10360:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10319:59:4" - }, - "payable": false, - "returnParameters": { - "id": 2851, - "nodeType": "ParameterList", - "parameters": [], - "src": "10396:0:4" - }, - "scope": 3414, - "src": "10292:155:4", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2884, - "nodeType": "Block", - "src": "10684:174:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "id": 2871, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2869, - "name": "_conversionFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2863, - "src": "10696:14:4", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "id": 2870, - "name": "maxConversionFee", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2526 - ], - "referencedDeclaration": 2526, - "src": "10714:16:4", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "src": "10696:34:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552525f494e56414c49445f434f4e56455253494f4e5f464545", - "id": 2872, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10732:28:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_ae729833ea0b2cfd1b35fa1d075ae330e76860b5ab276fa04bde88b85e5c4d00", - "typeString": "literal_string \"ERR_INVALID_CONVERSION_FEE\"" - }, - "value": "ERR_INVALID_CONVERSION_FEE" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_ae729833ea0b2cfd1b35fa1d075ae330e76860b5ab276fa04bde88b85e5c4d00", - "typeString": "literal_string \"ERR_INVALID_CONVERSION_FEE\"" - } - ], - "id": 2868, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 22341, - 22342 - ], - "referencedDeclaration": 22342, - "src": "10688:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2873, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10688:73:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2874, - "nodeType": "ExpressionStatement", - "src": "10688:73:4" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2876, - "name": "conversionFee", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2529 - ], - "referencedDeclaration": 2529, - "src": "10790:13:4", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - { - "argumentTypes": null, - "id": 2877, - "name": "_conversionFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2863, - "src": "10805:14:4", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - ], - "id": 2875, - "name": "ConversionFeeUpdate", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2570, - "src": "10770:19:4", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint32_$_t_uint32_$returns$__$", - "typeString": "function (uint32,uint32)" - } - }, - "id": 2878, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10770:50:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2879, - "nodeType": "EmitStatement", - "src": "10765:55:4" - }, - { - "expression": { - "argumentTypes": null, - "id": 2882, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2880, - "name": "conversionFee", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2529 - ], - "referencedDeclaration": 2529, - "src": "10824:13:4", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2881, - "name": "_conversionFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2863, - "src": "10840:14:4", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "src": "10824:30:4", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "id": 2883, - "nodeType": "ExpressionStatement", - "src": "10824:30:4" - } - ] - }, - "documentation": "@dev updates the current conversion fee\ncan only be called by the contract owner\n\t * @param _conversionFee new conversion fee, represented in ppm", - "id": 2885, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 2866, - "modifierName": { - "argumentTypes": null, - "id": 2865, - "name": "ownerOnly", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21265, - "src": "10674:9:4", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "10674:9:4" - } - ], - "name": "setConversionFee", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2864, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2863, - "name": "_conversionFee", - "nodeType": "VariableDeclaration", - "scope": 2885, - "src": "10644:21:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 2862, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "10644:6:4", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10643:23:4" - }, - "payable": false, - "returnParameters": { - "id": 2867, - "nodeType": "ParameterList", - "parameters": [], - "src": "10684:0:4" - }, - "scope": 3414, - "src": "10618:240:4", - "stateMutability": "nonpayable", - "superFunction": 11743, - "visibility": "public" - }, - { - "body": { - "id": 2938, - "nodeType": "Block", - "src": "11392:491:4", - "statements": [ - { - "assignments": [ - 2899 - ], - "declarations": [ - { - "constant": false, - "id": 2899, - "name": "converterUpgrader", - "nodeType": "VariableDeclaration", - "scope": 2939, - "src": "11396:25:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2898, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "11396:7:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2903, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2901, - "name": "CONVERTER_UPGRADER", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20767, - "src": "11434:18:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 2900, - "name": "addressOf", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20931, - "src": "11424:9:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$", - "typeString": "function (bytes32) view returns (address)" - } - }, - "id": 2902, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11424:29:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "11396:57:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 2917, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 2913, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2909, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "11621:23:4", - "subExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2905, - "name": "reserves", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2520, - "src": "11622:8:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Reserve_$2506_storage_$", - "typeString": "mapping(address => struct ConverterBase.Reserve storage ref)" - } - }, - "id": 2907, - "indexExpression": { - "argumentTypes": null, - "id": 2906, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2887, - "src": "11631:6:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11622:16:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Reserve_$2506_storage", - "typeString": "struct ConverterBase.Reserve storage ref" - } - }, - "id": 2908, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "isSet", - "nodeType": "MemberAccess", - "referencedDeclaration": 2505, - "src": "11622:22:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "id": 2912, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "11648:11:4", - "subExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 2910, - "name": "isActive", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2802 - ], - "referencedDeclaration": 2802, - "src": "11649:8:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$", - "typeString": "function () view returns (bool)" - } - }, - "id": 2911, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11649:10:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "11621:38:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 2916, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2914, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 21241 - ], - "referencedDeclaration": 21241, - "src": "11663:5:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 2915, - "name": "converterUpgrader", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2899, - "src": "11672:17:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "11663:26:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "11621:68:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552525f4143434553535f44454e494544", - "id": 2918, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11691:19:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_f5894269650d3e1726ed81a4f48c5b62c7dd6fa025b89d639952a7012960d666", - "typeString": "literal_string \"ERR_ACCESS_DENIED\"" - }, - "value": "ERR_ACCESS_DENIED" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_f5894269650d3e1726ed81a4f48c5b62c7dd6fa025b89d639952a7012960d666", - "typeString": "literal_string \"ERR_ACCESS_DENIED\"" - } - ], - "id": 2904, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 22341, - 22342 - ], - "referencedDeclaration": 22342, - "src": "11613:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2919, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11613:98:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2920, - "nodeType": "ExpressionStatement", - "src": "11613:98:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2924, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2887, - "src": "11736:6:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - { - "argumentTypes": null, - "id": 2925, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2889, - "src": "11744:3:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2926, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2891, - "src": "11749:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 2921, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22402, - "src": "11715:5:4", - "typeDescriptions": { - "typeIdentifier": "t_super$_ConverterBase_$3414", - "typeString": "contract super ConverterBase" - } - }, - "id": 2923, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "withdrawTokens", - "nodeType": "MemberAccess", - "referencedDeclaration": 21975, - "src": "11715:20:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20Token_$20240_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (contract IERC20Token,address,uint256)" - } - }, - "id": 2927, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11715:42:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2928, - "nodeType": "ExpressionStatement", - "src": "11715:42:4" - }, - { - "condition": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2929, - "name": "reserves", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2520, - "src": "11829:8:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Reserve_$2506_storage_$", - "typeString": "mapping(address => struct ConverterBase.Reserve storage ref)" - } - }, - "id": 2931, - "indexExpression": { - "argumentTypes": null, - "id": 2930, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2887, - "src": "11838:6:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11829:16:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Reserve_$2506_storage", - "typeString": "struct ConverterBase.Reserve storage ref" - } - }, - "id": 2932, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "isSet", - "nodeType": "MemberAccess", - "referencedDeclaration": 2505, - "src": "11829:22:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 2937, - "nodeType": "IfStatement", - "src": "11825:54:4", - "trueBody": { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2934, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2887, - "src": "11872:6:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - ], - "id": 2933, - "name": "syncReserveBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3237, - "src": "11853:18:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20Token_$20240_$returns$__$", - "typeString": "function (contract IERC20Token)" - } - }, - "id": 2935, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11853:26:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2936, - "nodeType": "ExpressionStatement", - "src": "11853:26:4" - } - } - ] - }, - "documentation": "@dev withdraws tokens held by the converter and sends them to an account\ncan only be called by the owner\nnote that reserve tokens can only be withdrawn by the owner while the converter is inactive\nunless the owner is the converter upgrader contract\n\t * @param _token ERC20 token contract address\n@param _to account to receive the new amount\n@param _amount amount to withdraw", - "id": 2939, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 2894, - "modifierName": { - "argumentTypes": null, - "id": 2893, - "name": "protected", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21698, - "src": "11372:9:4", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "11372:9:4" - }, - { - "arguments": null, - "id": 2896, - "modifierName": { - "argumentTypes": null, - "id": 2895, - "name": "ownerOnly", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21265, - "src": "11382:9:4", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "11382:9:4" - } - ], - "name": "withdrawTokens", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2892, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2887, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 2939, - "src": "11309:18:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - "typeName": { - "contractScope": null, - "id": 2886, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "11309:11:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2889, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 2939, - "src": "11331:11:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2888, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "11331:7:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2891, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 2939, - "src": "11346:15:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2890, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "11346:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11305:59:4" - }, - "payable": false, - "returnParameters": { - "id": 2897, - "nodeType": "ParameterList", - "parameters": [], - "src": "11392:0:4" - }, - "scope": 3414, - "src": "11282:601:4", - "stateMutability": "nonpayable", - "superFunction": 21975, - "visibility": "public" - }, - { - "body": { - "id": 2972, - "nodeType": "Block", - "src": "12115:281:4", - "statements": [ - { - "assignments": [ - 2945 - ], - "declarations": [ - { - "constant": false, - "id": 2945, - "name": "converterUpgrader", - "nodeType": "VariableDeclaration", - "scope": 2973, - "src": "12119:36:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterUpgrader_$12140", - "typeString": "contract IConverterUpgrader" - }, - "typeName": { - "contractScope": null, - "id": 2944, - "name": "IConverterUpgrader", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 12140, - "src": "12119:18:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterUpgrader_$12140", - "typeString": "contract IConverterUpgrader" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2951, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2948, - "name": "CONVERTER_UPGRADER", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20767, - "src": "12187:18:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 2947, - "name": "addressOf", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20931, - "src": "12177:9:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$", - "typeString": "function (bytes32) view returns (address)" - } - }, - "id": 2949, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12177:29:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 2946, - "name": "IConverterUpgrader", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12140, - "src": "12158:18:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IConverterUpgrader_$12140_$", - "typeString": "type(contract IConverterUpgrader)" - } - }, - "id": 2950, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12158:49:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterUpgrader_$12140", - "typeString": "contract IConverterUpgrader" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "12119:88:4" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 2953, - "name": "converterType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11655, - "src": "12261:13:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$__$returns$_t_uint16_$", - "typeString": "function () pure returns (uint16)" - } - }, - "id": 2954, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12261:15:4", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - { - "argumentTypes": null, - "id": 2955, - "name": "anchor", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2511 - ], - "referencedDeclaration": 2511, - "src": "12278:6:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - }, - { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 2956, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12286:5:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - }, - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 2952, - "name": "Activation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2540, - "src": "12250:10:4", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint16_$_t_contract$_IConverterAnchor_$11826_$_t_bool_$returns$__$", - "typeString": "function (uint16,contract IConverterAnchor,bool)" - } - }, - "id": 2957, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12250:42:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2958, - "nodeType": "EmitStatement", - "src": "12245:47:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2960, - "name": "converterUpgrader", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2945, - "src": "12315:17:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterUpgrader_$12140", - "typeString": "contract IConverterUpgrader" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IConverterUpgrader_$12140", - "typeString": "contract IConverterUpgrader" - } - ], - "id": 2959, - "name": "transferOwnership", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 21296 - ], - "referencedDeclaration": 21296, - "src": "12297:17:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 2961, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12297:36:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2962, - "nodeType": "ExpressionStatement", - "src": "12297:36:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2966, - "name": "version", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2509, - "src": "12363:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - ], - "expression": { - "argumentTypes": null, - "id": 2963, - "name": "converterUpgrader", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2945, - "src": "12337:17:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterUpgrader_$12140", - "typeString": "contract IConverterUpgrader" - } - }, - "id": 2965, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "upgrade", - "nodeType": "MemberAccess", - "referencedDeclaration": 12139, - "src": "12337:25:4", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_uint16_$returns$__$", - "typeString": "function (uint16) external" - } - }, - "id": 2967, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12337:34:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2968, - "nodeType": "ExpressionStatement", - "src": "12337:34:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 2969, - "name": "acceptOwnership", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 21323 - ], - "referencedDeclaration": 21323, - "src": "12375:15:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", - "typeString": "function ()" - } - }, - "id": 2970, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12375:17:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2971, - "nodeType": "ExpressionStatement", - "src": "12375:17:4" - } - ] - }, - "documentation": "@dev upgrades the converter to the latest version\ncan only be called by the owner\nnote that the owner needs to call acceptOwnership on the new converter after the upgrade", - "id": 2973, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 2942, - "modifierName": { - "argumentTypes": null, - "id": 2941, - "name": "ownerOnly", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21265, - "src": "12105:9:4", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "12105:9:4" - } - ], - "name": "upgrade", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2940, - "nodeType": "ParameterList", - "parameters": [], - "src": "12095:2:4" - }, - "payable": false, - "returnParameters": { - "id": 2943, - "nodeType": "ParameterList", - "parameters": [], - "src": "12115:0:4" - }, - "scope": 3414, - "src": "12079:317:4", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2983, - "nodeType": "Block", - "src": "12642:43:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2979, - "name": "reserveTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2516, - "src": "12660:13:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_storage", - "typeString": "contract IERC20Token[] storage ref" - } - }, - "id": 2980, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "12660:20:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 2978, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "12653:6:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint16_$", - "typeString": "type(uint16)" - }, - "typeName": "uint16" - }, - "id": 2981, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12653:28:4", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "functionReturnParameters": 2977, - "id": 2982, - "nodeType": "Return", - "src": "12646:35:4" - } - ] - }, - "documentation": "@dev returns the number of reserve tokens defined\nnote that prior to version 17, you should use 'connectorTokenCount' instead\n\t * @return number of reserve tokens", - "id": 2984, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "reserveTokenCount", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2974, - "nodeType": "ParameterList", - "parameters": [], - "src": "12610:2:4" - }, - "payable": false, - "returnParameters": { - "id": 2977, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2976, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2984, - "src": "12634:6:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 2975, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "12634:6:4", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "12633:8:4" - }, - "scope": 3414, - "src": "12584:101:4", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3073, - "nodeType": "Block", - "src": "13100:463:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 3015, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 3009, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3005, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2986, - "src": "13132:6:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3007, - "name": "anchor", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2511 - ], - "referencedDeclaration": 2511, - "src": "13150:6:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - ], - "id": 3006, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "13142:7:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3008, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13142:15:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "13132:25:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "id": 3014, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "13161:23:4", - "subExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3010, - "name": "reserves", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2520, - "src": "13162:8:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Reserve_$2506_storage_$", - "typeString": "mapping(address => struct ConverterBase.Reserve storage ref)" - } - }, - "id": 3012, - "indexExpression": { - "argumentTypes": null, - "id": 3011, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2986, - "src": "13171:6:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "13162:16:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Reserve_$2506_storage", - "typeString": "struct ConverterBase.Reserve storage ref" - } - }, - "id": 3013, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "isSet", - "nodeType": "MemberAccess", - "referencedDeclaration": 2505, - "src": "13162:22:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "13132:52:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552525f494e56414c49445f52455345525645", - "id": 3016, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13186:21:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_2f153897d46b1410527faf37dfe95496d4a79980282840ba17da0adc4406792c", - "typeString": "literal_string \"ERR_INVALID_RESERVE\"" - }, - "value": "ERR_INVALID_RESERVE" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_2f153897d46b1410527faf37dfe95496d4a79980282840ba17da0adc4406792c", - "typeString": "literal_string \"ERR_INVALID_RESERVE\"" - } - ], - "id": 3004, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 22341, - 22342 - ], - "referencedDeclaration": 22342, - "src": "13124:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 3017, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13124:84:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3018, - "nodeType": "ExpressionStatement", - "src": "13124:84:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "id": 3024, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3020, - "name": "_weight", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2988, - "src": "13220:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "id": 3023, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3021, - "name": "WEIGHT_RESOLUTION", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2489, - "src": "13231:17:4", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "id": 3022, - "name": "reserveRatio", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2523, - "src": "13251:12:4", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "src": "13231:32:4", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "src": "13220:43:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552525f494e56414c49445f524553455256455f574549474854", - "id": 3025, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13265:28:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_e4e4c57eb13b428a7fc031dc1f6f2c3e13b61f7d7b93994b2d17f8dc75658178", - "typeString": "literal_string \"ERR_INVALID_RESERVE_WEIGHT\"" - }, - "value": "ERR_INVALID_RESERVE_WEIGHT" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_e4e4c57eb13b428a7fc031dc1f6f2c3e13b61f7d7b93994b2d17f8dc75658178", - "typeString": "literal_string \"ERR_INVALID_RESERVE_WEIGHT\"" - } - ], - "id": 3019, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 22341, - 22342 - ], - "referencedDeclaration": 22342, - "src": "13212:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 3026, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13212:82:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3027, - "nodeType": "ExpressionStatement", - "src": "13212:82:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "id": 3035, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 3029, - "name": "reserveTokenCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2984, - "src": "13306:17:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_uint16_$", - "typeString": "function () view returns (uint16)" - } - }, - "id": 3030, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13306:19:4", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3033, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "-", - "prefix": true, - "src": "13335:2:4", - "subExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 3032, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13336:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "typeDescriptions": { - "typeIdentifier": "t_rational_-1_by_1", - "typeString": "int_const -1" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_-1_by_1", - "typeString": "int_const -1" - } - ], - "id": 3031, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "13328:6:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint16_$", - "typeString": "type(uint16)" - }, - "typeName": "uint16" - }, - "id": 3034, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13328:10:4", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "src": "13306:32:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552525f494e56414c49445f524553455256455f434f554e54", - "id": 3036, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13340:27:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_ed94f14d8dcbb423a259b4072978fc0c494c6af1fea066a19023afb1a76ac87f", - "typeString": "literal_string \"ERR_INVALID_RESERVE_COUNT\"" - }, - "value": "ERR_INVALID_RESERVE_COUNT" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_ed94f14d8dcbb423a259b4072978fc0c494c6af1fea066a19023afb1a76ac87f", - "typeString": "literal_string \"ERR_INVALID_RESERVE_COUNT\"" - } - ], - "id": 3028, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 22341, - 22342 - ], - "referencedDeclaration": 22342, - "src": "13298:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 3037, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13298:70:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3038, - "nodeType": "ExpressionStatement", - "src": "13298:70:4" - }, - { - "assignments": [ - 3040 - ], - "declarations": [ - { - "constant": false, - "id": 3040, - "name": "newReserve", - "nodeType": "VariableDeclaration", - "scope": 3074, - "src": "13373:26:4", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Reserve_$2506_storage_ptr", - "typeString": "struct ConverterBase.Reserve" - }, - "typeName": { - "contractScope": null, - "id": 3039, - "name": "Reserve", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2506, - "src": "13373:7:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Reserve_$2506_storage_ptr", - "typeString": "struct ConverterBase.Reserve" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3044, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3041, - "name": "reserves", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2520, - "src": "13402:8:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Reserve_$2506_storage_$", - "typeString": "mapping(address => struct ConverterBase.Reserve storage ref)" - } - }, - "id": 3043, - "indexExpression": { - "argumentTypes": null, - "id": 3042, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2986, - "src": "13411:6:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "13402:16:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Reserve_$2506_storage", - "typeString": "struct ConverterBase.Reserve storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "13373:45:4" - }, - { - "expression": { - "argumentTypes": null, - "id": 3049, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3045, - "name": "newReserve", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3040, - "src": "13422:10:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Reserve_$2506_storage_ptr", - "typeString": "struct ConverterBase.Reserve storage pointer" - } - }, - "id": 3047, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "balance", - "nodeType": "MemberAccess", - "referencedDeclaration": 2497, - "src": "13422:18:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 3048, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13443:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "13422:22:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3050, - "nodeType": "ExpressionStatement", - "src": "13422:22:4" - }, - { - "expression": { - "argumentTypes": null, - "id": 3055, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3051, - "name": "newReserve", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3040, - "src": "13448:10:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Reserve_$2506_storage_ptr", - "typeString": "struct ConverterBase.Reserve storage pointer" - } - }, - "id": 3053, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "weight", - "nodeType": "MemberAccess", - "referencedDeclaration": 2499, - "src": "13448:17:4", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3054, - "name": "_weight", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2988, - "src": "13468:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "src": "13448:27:4", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "id": 3056, - "nodeType": "ExpressionStatement", - "src": "13448:27:4" - }, - { - "expression": { - "argumentTypes": null, - "id": 3061, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3057, - "name": "newReserve", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3040, - "src": "13479:10:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Reserve_$2506_storage_ptr", - "typeString": "struct ConverterBase.Reserve storage pointer" - } - }, - "id": 3059, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "isSet", - "nodeType": "MemberAccess", - "referencedDeclaration": 2505, - "src": "13479:16:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 3060, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13498:4:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "13479:23:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 3062, - "nodeType": "ExpressionStatement", - "src": "13479:23:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3066, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2986, - "src": "13525:6:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - ], - "expression": { - "argumentTypes": null, - "id": 3063, - "name": "reserveTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2516, - "src": "13506:13:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_storage", - "typeString": "contract IERC20Token[] storage ref" - } - }, - "id": 3065, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "push", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "13506:18:4", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_contract$_IERC20Token_$20240_$returns$_t_uint256_$", - "typeString": "function (contract IERC20Token) returns (uint256)" - } - }, - "id": 3067, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13506:26:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3068, - "nodeType": "ExpressionStatement", - "src": "13506:26:4" - }, - { - "expression": { - "argumentTypes": null, - "id": 3071, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3069, - "name": "reserveRatio", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2523, - "src": "13536:12:4", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "id": 3070, - "name": "_weight", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2988, - "src": "13552:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "src": "13536:23:4", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "id": 3072, - "nodeType": "ExpressionStatement", - "src": "13536:23:4" - } - ] - }, - "documentation": "@dev defines a new reserve token for the converter\ncan only be called by the owner while the converter is inactive\n\t * @param _token address of the reserve token\n@param _weight reserve weight, represented in ppm, 1-1000000", - "id": 3074, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 2991, - "modifierName": { - "argumentTypes": null, - "id": 2990, - "name": "ownerOnly", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21265, - "src": "13007:9:4", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "13007:9:4" - }, - { - "arguments": null, - "id": 2993, - "modifierName": { - "argumentTypes": null, - "id": 2992, - "name": "inactive", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2621, - "src": "13019:8:4", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "13019:8:4" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 2995, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2986, - "src": "13043:6:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - } - ], - "id": 2996, - "modifierName": { - "argumentTypes": null, - "id": 2994, - "name": "validAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22011, - "src": "13030:12:4", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$", - "typeString": "modifier (address)" - } - }, - "nodeType": "ModifierInvocation", - "src": "13030:20:4" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 2998, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2986, - "src": "13061:6:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - } - ], - "id": 2999, - "modifierName": { - "argumentTypes": null, - "id": 2997, - "name": "notThis", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22036, - "src": "13053:7:4", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$", - "typeString": "modifier (address)" - } - }, - "nodeType": "ModifierInvocation", - "src": "13053:15:4" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 3001, - "name": "_weight", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2988, - "src": "13090:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "id": 3002, - "modifierName": { - "argumentTypes": null, - "id": 3000, - "name": "validReserveWeight", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2689, - "src": "13071:18:4", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint32_$", - "typeString": "modifier (uint32)" - } - }, - "nodeType": "ModifierInvocation", - "src": "13071:27:4" - } - ], - "name": "addReserve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2989, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2986, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 3074, - "src": "12960:18:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - "typeName": { - "contractScope": null, - "id": 2985, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "12960:11:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2988, - "name": "_weight", - "nodeType": "VariableDeclaration", - "scope": 3074, - "src": "12980:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 2987, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "12980:6:4", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "12959:36:4" - }, - "payable": false, - "returnParameters": { - "id": 3003, - "nodeType": "ParameterList", - "parameters": [], - "src": "13100:0:4" - }, - "scope": 3414, - "src": "12940:623:4", - "stateMutability": "nonpayable", - "superFunction": 11769, - "visibility": "public" - }, - { - "body": { - "id": 3089, - "nodeType": "Block", - "src": "13839:45:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3084, - "name": "reserves", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2520, - "src": "13850:8:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Reserve_$2506_storage_$", - "typeString": "mapping(address => struct ConverterBase.Reserve storage ref)" - } - }, - "id": 3086, - "indexExpression": { - "argumentTypes": null, - "id": 3085, - "name": "_reserveToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3076, - "src": "13859:13:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "13850:23:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Reserve_$2506_storage", - "typeString": "struct ConverterBase.Reserve storage ref" - } - }, - "id": 3087, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "weight", - "nodeType": "MemberAccess", - "referencedDeclaration": 2499, - "src": "13850:30:4", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "functionReturnParameters": 3083, - "id": 3088, - "nodeType": "Return", - "src": "13843:37:4" - } - ] - }, - "documentation": "@dev returns the reserve's weight\nadded in version 28\n\t * @param _reserveToken reserve token contract address\n\t * @return reserve weight", - "id": 3090, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 3079, - "name": "_reserveToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3076, - "src": "13807:13:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - } - ], - "id": 3080, - "modifierName": { - "argumentTypes": null, - "id": 3078, - "name": "validReserve", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2642, - "src": "13794:12:4", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_contract$_IERC20Token_$20240_$", - "typeString": "modifier (contract IERC20Token)" - } - }, - "nodeType": "ModifierInvocation", - "src": "13794:27:4" - } - ], - "name": "reserveWeight", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3077, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3076, - "name": "_reserveToken", - "nodeType": "VariableDeclaration", - "scope": 3090, - "src": "13755:25:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - "typeName": { - "contractScope": null, - "id": 3075, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "13755:11:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "13754:27:4" - }, - "payable": false, - "returnParameters": { - "id": 3083, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3082, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3090, - "src": "13831:6:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 3081, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "13831:6:4", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "13830:8:4" - }, - "scope": 3414, - "src": "13732:152:4", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3105, - "nodeType": "Block", - "src": "14220:46:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3100, - "name": "reserves", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2520, - "src": "14231:8:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Reserve_$2506_storage_$", - "typeString": "mapping(address => struct ConverterBase.Reserve storage ref)" - } - }, - "id": 3102, - "indexExpression": { - "argumentTypes": null, - "id": 3101, - "name": "_reserveToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3092, - "src": "14240:13:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "14231:23:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Reserve_$2506_storage", - "typeString": "struct ConverterBase.Reserve storage ref" - } - }, - "id": 3103, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "balance", - "nodeType": "MemberAccess", - "referencedDeclaration": 2497, - "src": "14231:31:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3099, - "id": 3104, - "nodeType": "Return", - "src": "14224:38:4" - } - ] - }, - "documentation": "@dev returns the reserve's balance\nnote that prior to version 17, you should use 'getConnectorBalance' instead\n\t * @param _reserveToken reserve token contract address\n\t * @return reserve balance", - "id": 3106, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 3095, - "name": "_reserveToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3092, - "src": "14187:13:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - } - ], - "id": 3096, - "modifierName": { - "argumentTypes": null, - "id": 3094, - "name": "validReserve", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2642, - "src": "14174:12:4", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_contract$_IERC20Token_$20240_$", - "typeString": "modifier (contract IERC20Token)" - } - }, - "nodeType": "ModifierInvocation", - "src": "14174:27:4" - } - ], - "name": "reserveBalance", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3093, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3092, - "name": "_reserveToken", - "nodeType": "VariableDeclaration", - "scope": 3106, - "src": "14135:25:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - "typeName": { - "contractScope": null, - "id": 3091, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "14135:11:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14134:27:4" - }, - "payable": false, - "returnParameters": { - "id": 3099, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3098, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3106, - "src": "14211:7:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3097, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "14211:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14210:9:4" - }, - "scope": 3414, - "src": "14111:155:4", - "stateMutability": "view", - "superFunction": 11727, - "visibility": "public" - }, - { - "body": { - "id": 3116, - "nodeType": "Block", - "src": "14469:50:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3111, - "name": "reserves", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2520, - "src": "14480:8:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Reserve_$2506_storage_$", - "typeString": "mapping(address => struct ConverterBase.Reserve storage ref)" - } - }, - "id": 3113, - "indexExpression": { - "argumentTypes": null, - "id": 3112, - "name": "ETH_RESERVE_ADDRESS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2495, - "src": "14489:19:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "14480:29:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Reserve_$2506_storage", - "typeString": "struct ConverterBase.Reserve storage ref" - } - }, - "id": 3114, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "isSet", - "nodeType": "MemberAccess", - "referencedDeclaration": 2505, - "src": "14480:35:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 3110, - "id": 3115, - "nodeType": "Return", - "src": "14473:42:4" - } - ] - }, - "documentation": "@dev checks whether or not the converter has an ETH reserve\n\t * @return true if the converter has an ETH reserve, false otherwise", - "id": 3117, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "hasETHReserve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3107, - "nodeType": "ParameterList", - "parameters": [], - "src": "14439:2:4" - }, - "payable": false, - "returnParameters": { - "id": 3110, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3109, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3117, - "src": "14463:4:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3108, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "14463:4:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14462:6:4" - }, - "scope": 3414, - "src": "14417:102:4", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3172, - "nodeType": "Block", - "src": "15250:443:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - "id": 3140, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3138, - "name": "_sourceToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3119, - "src": "15282:12:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 3139, - "name": "_targetToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3121, - "src": "15298:12:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "src": "15282:28:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552525f53414d455f534f555243455f544152474554", - "id": 3141, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15312:24:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_238302f57e4481fe6a4c903e930919efa155f2aabe0b5da37da1448cea5fd634", - "typeString": "literal_string \"ERR_SAME_SOURCE_TARGET\"" - }, - "value": "ERR_SAME_SOURCE_TARGET" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_238302f57e4481fe6a4c903e930919efa155f2aabe0b5da37da1448cea5fd634", - "typeString": "literal_string \"ERR_SAME_SOURCE_TARGET\"" - } - ], - "id": 3137, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 22341, - 22342 - ], - "referencedDeclaration": 22342, - "src": "15274:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 3142, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15274:63:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3143, - "nodeType": "ExpressionStatement", - "src": "15274:63:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 3160, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 3149, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3145, - "name": "conversionWhitelist", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2513 - ], - "referencedDeclaration": 2513, - "src": "15446:19:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IWhitelist_$22323", - "typeString": "contract IWhitelist" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 3147, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15477:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 3146, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "15469:7:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3148, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15469:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "15446:33:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 3158, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3152, - "name": "_trader", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3125, - "src": "15518:7:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 3150, - "name": "conversionWhitelist", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2513 - ], - "referencedDeclaration": 2513, - "src": "15484:19:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IWhitelist_$22323", - "typeString": "contract IWhitelist" - } - }, - "id": 3151, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isWhitelisted", - "nodeType": "MemberAccess", - "referencedDeclaration": 22322, - "src": "15484:33:4", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view external returns (bool)" - } - }, - "id": 3153, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15484:42:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3156, - "name": "_beneficiary", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3127, - "src": "15564:12:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 3154, - "name": "conversionWhitelist", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2513 - ], - "referencedDeclaration": 2513, - "src": "15530:19:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IWhitelist_$22323", - "typeString": "contract IWhitelist" - } - }, - "id": 3155, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isWhitelisted", - "nodeType": "MemberAccess", - "referencedDeclaration": 22322, - "src": "15530:33:4", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view external returns (bool)" - } - }, - "id": 3157, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15530:47:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "15484:93:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "id": 3159, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "15483:95:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "15446:132:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552525f4e4f545f57484954454c4953544544", - "id": 3161, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15583:21:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_d03711a645ac13b3887baa10c28f347997e96617340d7ffae036e653d4c59185", - "typeString": "literal_string \"ERR_NOT_WHITELISTED\"" - }, - "value": "ERR_NOT_WHITELISTED" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_d03711a645ac13b3887baa10c28f347997e96617340d7ffae036e653d4c59185", - "typeString": "literal_string \"ERR_NOT_WHITELISTED\"" - } - ], - "id": 3144, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 22341, - 22342 - ], - "referencedDeclaration": 22342, - "src": "15434:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 3162, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15434:174:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3163, - "nodeType": "ExpressionStatement", - "src": "15434:174:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3165, - "name": "_sourceToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3119, - "src": "15630:12:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - { - "argumentTypes": null, - "id": 3166, - "name": "_targetToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3121, - "src": "15644:12:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - { - "argumentTypes": null, - "id": 3167, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3123, - "src": "15658:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3168, - "name": "_trader", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3125, - "src": "15667:7:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3169, - "name": "_beneficiary", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3127, - "src": "15676:12:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3164, - "name": "doConvert", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3188, - "src": "15620:9:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20Token_$20240_$_t_contract$_IERC20Token_$20240_$_t_uint256_$_t_address_$_t_address_$returns$_t_uint256_$", - "typeString": "function (contract IERC20Token,contract IERC20Token,uint256,address,address) returns (uint256)" - } - }, - "id": 3170, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15620:69:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3136, - "id": 3171, - "nodeType": "Return", - "src": "15613:76:4" - } - ] - }, - "documentation": "@dev converts a specific amount of source tokens to target tokens\ncan only be called by the SovrynSwap network contract\n\t * @param _sourceToken source ERC20 token\n@param _targetToken target ERC20 token\n@param _amount amount of tokens to convert (in units of the source token)\n@param _trader address of the caller who executed the conversion\n@param _beneficiary wallet to receive the conversion result\n\t * @return amount of tokens received (in units of the target token)", - "id": 3173, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 3130, - "modifierName": { - "argumentTypes": null, - "id": 3129, - "name": "protected", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21698, - "src": "15197:9:4", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "15197:9:4" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 3132, - "name": "SOVRYNSWAP_NETWORK", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20755, - "src": "15212:18:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "id": 3133, - "modifierName": { - "argumentTypes": null, - "id": 3131, - "name": "only", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20801, - "src": "15207:4:4", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_bytes32_$", - "typeString": "modifier (bytes32)" - } - }, - "nodeType": "ModifierInvocation", - "src": "15207:24:4" - } - ], - "name": "convert", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3128, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3119, - "name": "_sourceToken", - "nodeType": "VariableDeclaration", - "scope": 3173, - "src": "15064:24:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - "typeName": { - "contractScope": null, - "id": 3118, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "15064:11:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3121, - "name": "_targetToken", - "nodeType": "VariableDeclaration", - "scope": 3173, - "src": "15092:24:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - "typeName": { - "contractScope": null, - "id": 3120, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "15092:11:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3123, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 3173, - "src": "15120:15:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3122, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15120:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3125, - "name": "_trader", - "nodeType": "VariableDeclaration", - "scope": 3173, - "src": "15139:15:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3124, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15139:7:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3127, - "name": "_beneficiary", - "nodeType": "VariableDeclaration", - "scope": 3173, - "src": "15158:20:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3126, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15158:7:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15060:121:4" - }, - "payable": true, - "returnParameters": { - "id": 3136, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3135, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3173, - "src": "15241:7:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3134, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15241:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15240:9:4" - }, - "scope": 3414, - "src": "15044:649:4", - "stateMutability": "payable", - "superFunction": 11696, - "visibility": "public" - }, - { - "body": null, - "documentation": "@dev converts a specific amount of source tokens to target tokens\ncalled by ConverterBase and allows the inherited contracts to implement custom conversion logic\n\t * @param _sourceToken source ERC20 token\n@param _targetToken target ERC20 token\n@param _amount amount of tokens to convert (in units of the source token)\n@param _trader address of the caller who executed the conversion\n@param _beneficiary wallet to receive the conversion result\n\t * @return amount of tokens received (in units of the target token)", - "id": 3188, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "doConvert", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3184, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3175, - "name": "_sourceToken", - "nodeType": "VariableDeclaration", - "scope": 3188, - "src": "16282:24:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - "typeName": { - "contractScope": null, - "id": 3174, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "16282:11:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3177, - "name": "_targetToken", - "nodeType": "VariableDeclaration", - "scope": 3188, - "src": "16310:24:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - "typeName": { - "contractScope": null, - "id": 3176, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "16310:11:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3179, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 3188, - "src": "16338:15:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3178, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "16338:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3181, - "name": "_trader", - "nodeType": "VariableDeclaration", - "scope": 3188, - "src": "16357:15:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3180, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16357:7:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3183, - "name": "_beneficiary", - "nodeType": "VariableDeclaration", - "scope": 3188, - "src": "16376:20:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3182, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16376:7:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16278:121:4" - }, - "payable": false, - "returnParameters": { - "id": 3187, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3186, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3188, - "src": "16418:7:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3185, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "16418:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16417:9:4" - }, - "scope": 3414, - "src": "16260:167:4", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 3203, - "nodeType": "Block", - "src": "16654:78:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3200, - "name": "CONVERSION_FEE_RESOLUTION", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2492, - "src": "16702:25:4", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3197, - "name": "conversionFee", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2529 - ], - "referencedDeclaration": 2529, - "src": "16683:13:4", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - ], - "expression": { - "argumentTypes": null, - "id": 3195, - "name": "_targetAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3190, - "src": "16665:13:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3196, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 21791, - "src": "16665:17:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3198, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16665:32:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3199, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "div", - "nodeType": "MemberAccess", - "referencedDeclaration": 21816, - "src": "16665:36:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3201, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16665:63:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3194, - "id": 3202, - "nodeType": "Return", - "src": "16658:70:4" - } - ] - }, - "documentation": "@dev returns the conversion fee for a given target amount\n\t * @param _targetAmount target amount\n\t * @return conversion fee", - "id": 3204, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "calculateFee", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3191, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3190, - "name": "_targetAmount", - "nodeType": "VariableDeclaration", - "scope": 3204, - "src": "16599:21:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3189, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "16599:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16598:23:4" - }, - "payable": false, - "returnParameters": { - "id": 3194, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3193, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3204, - "src": "16645:7:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3192, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "16645:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16644:9:4" - }, - "scope": 3414, - "src": "16577:155:4", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 3236, - "nodeType": "Block", - "src": "16990:177:4", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 3214, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3212, - "name": "_reserveToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3206, - "src": "16998:13:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 3213, - "name": "ETH_RESERVE_ADDRESS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2495, - "src": "17015:19:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "16998:36:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "expression": { - "argumentTypes": null, - "id": 3233, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3225, - "name": "reserves", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2520, - "src": "17100:8:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Reserve_$2506_storage_$", - "typeString": "mapping(address => struct ConverterBase.Reserve storage ref)" - } - }, - "id": 3227, - "indexExpression": { - "argumentTypes": null, - "id": 3226, - "name": "_reserveToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3206, - "src": "17109:13:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "17100:23:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Reserve_$2506_storage", - "typeString": "struct ConverterBase.Reserve storage ref" - } - }, - "id": 3228, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "balance", - "nodeType": "MemberAccess", - "referencedDeclaration": 2497, - "src": "17100:31:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3231, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22401, - "src": "17158:4:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ConverterBase_$3414", - "typeString": "contract ConverterBase" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_ConverterBase_$3414", - "typeString": "contract ConverterBase" - } - ], - "expression": { - "argumentTypes": null, - "id": 3229, - "name": "_reserveToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3206, - "src": "17134:13:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "id": 3230, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "balanceOf", - "nodeType": "MemberAccess", - "referencedDeclaration": 20194, - "src": "17134:23:4", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 3232, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17134:29:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "17100:63:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3234, - "nodeType": "ExpressionStatement", - "src": "17100:63:4" - }, - "id": 3235, - "nodeType": "IfStatement", - "src": "16994:169:4", - "trueBody": { - "expression": { - "argumentTypes": null, - "id": 3223, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3215, - "name": "reserves", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2520, - "src": "17036:8:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Reserve_$2506_storage_$", - "typeString": "mapping(address => struct ConverterBase.Reserve storage ref)" - } - }, - "id": 3217, - "indexExpression": { - "argumentTypes": null, - "id": 3216, - "name": "_reserveToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3206, - "src": "17045:13:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "17036:23:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Reserve_$2506_storage", - "typeString": "struct ConverterBase.Reserve storage ref" - } - }, - "id": 3218, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "balance", - "nodeType": "MemberAccess", - "referencedDeclaration": 2497, - "src": "17036:31:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3220, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22401, - "src": "17078:4:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ConverterBase_$3414", - "typeString": "contract ConverterBase" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_ConverterBase_$3414", - "typeString": "contract ConverterBase" - } - ], - "id": 3219, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "17070:7:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3221, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17070:13:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3222, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "balance", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "17070:21:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "17036:55:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3224, - "nodeType": "ExpressionStatement", - "src": "17036:55:4" - } - } - ] - }, - "documentation": "@dev syncs the stored reserve balance for a given reserve with the real reserve balance\n\t * @param _reserveToken address of the reserve token", - "id": 3237, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 3209, - "name": "_reserveToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3206, - "src": "16975:13:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - } - ], - "id": 3210, - "modifierName": { - "argumentTypes": null, - "id": 3208, - "name": "validReserve", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2642, - "src": "16962:12:4", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_contract$_IERC20Token_$20240_$", - "typeString": "modifier (contract IERC20Token)" - } - }, - "nodeType": "ModifierInvocation", - "src": "16962:27:4" - } - ], - "name": "syncReserveBalance", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3207, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3206, - "name": "_reserveToken", - "nodeType": "VariableDeclaration", - "scope": 3237, - "src": "16926:25:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - "typeName": { - "contractScope": null, - "id": 3205, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "16926:11:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16925:27:4" - }, - "payable": false, - "returnParameters": { - "id": 3211, - "nodeType": "ParameterList", - "parameters": [], - "src": "16990:0:4" - }, - "scope": 3414, - "src": "16898:269:4", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 3262, - "nodeType": "Block", - "src": "17263:134:4", - "statements": [ - { - "assignments": [ - 3241 - ], - "declarations": [ - { - "constant": false, - "id": 3241, - "name": "reserveCount", - "nodeType": "VariableDeclaration", - "scope": 3263, - "src": "17267:20:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3240, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "17267:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3244, - "initialValue": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3242, - "name": "reserveTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2516, - "src": "17290:13:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_storage", - "typeString": "contract IERC20Token[] storage ref" - } - }, - "id": 3243, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "17290:20:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "17267:43:4" - }, - { - "body": { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3256, - "name": "reserveTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2516, - "src": "17376:13:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_storage", - "typeString": "contract IERC20Token[] storage ref" - } - }, - "id": 3258, - "indexExpression": { - "argumentTypes": null, - "id": 3257, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3246, - "src": "17390:1:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "17376:16:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - ], - "id": 3255, - "name": "syncReserveBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3237, - "src": "17357:18:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20Token_$20240_$returns$__$", - "typeString": "function (contract IERC20Token)" - } - }, - "id": 3259, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17357:36:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3260, - "nodeType": "ExpressionStatement", - "src": "17357:36:4" - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3251, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3249, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3246, - "src": "17334:1:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "id": 3250, - "name": "reserveCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3241, - "src": "17338:12:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "17334:16:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 3261, - "initializationExpression": { - "assignments": [ - 3246 - ], - "declarations": [ - { - "constant": false, - "id": 3246, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 3263, - "src": "17319:9:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3245, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "17319:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3248, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 3247, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17331:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "17319:13:4" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 3253, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "17352:3:4", - "subExpression": { - "argumentTypes": null, - "id": 3252, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3246, - "src": "17352:1:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3254, - "nodeType": "ExpressionStatement", - "src": "17352:3:4" - }, - "nodeType": "ForStatement", - "src": "17314:79:4" - } - ] - }, - "documentation": "@dev syncs all stored reserve balances", - "id": 3263, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "syncReserveBalances", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3238, - "nodeType": "ParameterList", - "parameters": [], - "src": "17251:2:4" - }, - "payable": false, - "returnParameters": { - "id": 3239, - "nodeType": "ParameterList", - "parameters": [], - "src": "17263:0:4" - }, - "scope": 3414, - "src": "17223:174:4", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 3297, - "nodeType": "Block", - "src": "17959:470:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3283, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3279, - "name": "_feeAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3275, - "src": "18305:10:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_rational_57896044618658097711785492504343953926634992332820282019728792003956564819968_by_1", - "typeString": "int_const 5789...(69 digits omitted)...9968" - }, - "id": 3282, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "hexValue": "32", - "id": 3280, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "18318:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "nodeType": "BinaryOperation", - "operator": "**", - "rightExpression": { - "argumentTypes": null, - "hexValue": "323535", - "id": 3281, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "18321:3:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_255_by_1", - "typeString": "int_const 255" - }, - "value": "255" - }, - "src": "18318:6:4", - "typeDescriptions": { - "typeIdentifier": "t_rational_57896044618658097711785492504343953926634992332820282019728792003956564819968_by_1", - "typeString": "int_const 5789...(69 digits omitted)...9968" - } - }, - "src": "18305:19:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3278, - "name": "assert", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22327, - "src": "18298:6:4", - "typeDescriptions": { - "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3284, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18298:27:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3285, - "nodeType": "ExpressionStatement", - "src": "18298:27:4" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3287, - "name": "_sourceToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3265, - "src": "18345:12:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - { - "argumentTypes": null, - "id": 3288, - "name": "_targetToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3267, - "src": "18359:12:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - { - "argumentTypes": null, - "id": 3289, - "name": "_trader", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3269, - "src": "18373:7:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3290, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3271, - "src": "18382:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3291, - "name": "_returnAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3273, - "src": "18391:13:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3293, - "name": "_feeAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3275, - "src": "18413:10:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3292, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "18406:6:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_int256_$", - "typeString": "type(int256)" - }, - "typeName": "int256" - }, - "id": 3294, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18406:18:4", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - ], - "id": 3286, - "name": "Conversion", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2554, - "src": "18334:10:4", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_int256_$returns$__$", - "typeString": "function (address,address,address,uint256,uint256,int256)" - } - }, - "id": 3295, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18334:91:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3296, - "nodeType": "EmitStatement", - "src": "18329:96:4" - } - ] - }, - "documentation": "@dev helper, dispatches the Conversion event\n\t * @param _sourceToken source ERC20 token\n@param _targetToken target ERC20 token\n@param _trader address of the caller who executed the conversion\n@param _amount amount purchased/sold (in the source token)\n@param _returnAmount amount returned (in the target token)", - "id": 3298, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "dispatchConversionEvent", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3276, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3265, - "name": "_sourceToken", - "nodeType": "VariableDeclaration", - "scope": 3298, - "src": "17809:24:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - "typeName": { - "contractScope": null, - "id": 3264, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "17809:11:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3267, - "name": "_targetToken", - "nodeType": "VariableDeclaration", - "scope": 3298, - "src": "17837:24:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - "typeName": { - "contractScope": null, - "id": 3266, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "17837:11:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3269, - "name": "_trader", - "nodeType": "VariableDeclaration", - "scope": 3298, - "src": "17865:15:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3268, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "17865:7:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3271, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 3298, - "src": "17884:15:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3270, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "17884:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3273, - "name": "_returnAmount", - "nodeType": "VariableDeclaration", - "scope": 3298, - "src": "17903:21:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3272, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "17903:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3275, - "name": "_feeAmount", - "nodeType": "VariableDeclaration", - "scope": 3298, - "src": "17928:18:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3274, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "17928:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "17805:144:4" - }, - "payable": false, - "returnParameters": { - "id": 3277, - "nodeType": "ParameterList", - "parameters": [], - "src": "17959:0:4" - }, - "scope": 3414, - "src": "17773:656:4", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 3305, - "nodeType": "Block", - "src": "18591:21:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3303, - "name": "anchor", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2511 - ], - "referencedDeclaration": 2511, - "src": "18602:6:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - }, - "functionReturnParameters": 3302, - "id": 3304, - "nodeType": "Return", - "src": "18595:13:4" - } - ] - }, - "documentation": "@dev deprecated since version 28, backward compatibility - use only for earlier versions", - "id": 3306, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "token", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3299, - "nodeType": "ParameterList", - "parameters": [], - "src": "18549:2:4" - }, - "payable": false, - "returnParameters": { - "id": 3302, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3301, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3306, - "src": "18573:16:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - }, - "typeName": { - "contractScope": null, - "id": 3300, - "name": "IConverterAnchor", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 11826, - "src": "18573:16:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "18572:18:4" - }, - "scope": 3414, - "src": "18535:77:4", - "stateMutability": "view", - "superFunction": 11774, - "visibility": "public" - }, - { - "body": { - "id": 3317, - "nodeType": "Block", - "src": "18737:42:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3314, - "name": "_newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3308, - "src": "18765:9:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3313, - "name": "transferAnchorOwnership", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2819 - ], - "referencedDeclaration": 2819, - "src": "18741:23:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 3315, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18741:34:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3316, - "nodeType": "ExpressionStatement", - "src": "18741:34:4" - } - ] - }, - "documentation": "@dev deprecated, backward compatibility", - "id": 3318, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 3311, - "modifierName": { - "argumentTypes": null, - "id": 3310, - "name": "ownerOnly", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21265, - "src": "18727:9:4", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "18727:9:4" - } - ], - "name": "transferTokenOwnership", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3309, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3308, - "name": "_newOwner", - "nodeType": "VariableDeclaration", - "scope": 3318, - "src": "18701:17:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3307, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "18701:7:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "18700:19:4" - }, - "payable": false, - "returnParameters": { - "id": 3312, - "nodeType": "ParameterList", - "parameters": [], - "src": "18737:0:4" - }, - "scope": 3414, - "src": "18669:110:4", - "stateMutability": "nonpayable", - "superFunction": 11779, - "visibility": "public" - }, - { - "body": { - "id": 3326, - "nodeType": "Block", - "src": "18885:31:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 3323, - "name": "acceptAnchorOwnership", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2841 - ], - "referencedDeclaration": 2841, - "src": "18889:21:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", - "typeString": "function ()" - } - }, - "id": 3324, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18889:23:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3325, - "nodeType": "ExpressionStatement", - "src": "18889:23:4" - } - ] - }, - "documentation": "@dev deprecated, backward compatibility", - "id": 3327, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 3321, - "modifierName": { - "argumentTypes": null, - "id": 3320, - "name": "ownerOnly", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21265, - "src": "18875:9:4", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "18875:9:4" - } - ], - "name": "acceptTokenOwnership", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3319, - "nodeType": "ParameterList", - "parameters": [], - "src": "18865:2:4" - }, - "payable": false, - "returnParameters": { - "id": 3322, - "nodeType": "ParameterList", - "parameters": [], - "src": "18885:0:4" - }, - "scope": 3414, - "src": "18836:80:4", - "stateMutability": "nonpayable", - "superFunction": 11782, - "visibility": "public" - }, - { - "body": { - "id": 3358, - "nodeType": "Block", - "src": "19093:124:4", - "statements": [ - { - "assignments": [ - 3343 - ], - "declarations": [ - { - "constant": false, - "id": 3343, - "name": "reserve", - "nodeType": "VariableDeclaration", - "scope": 3359, - "src": "19097:22:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Reserve_$2506_memory_ptr", - "typeString": "struct ConverterBase.Reserve" - }, - "typeName": { - "contractScope": null, - "id": 3342, - "name": "Reserve", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2506, - "src": "19097:7:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Reserve_$2506_storage_ptr", - "typeString": "struct ConverterBase.Reserve" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3347, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3344, - "name": "reserves", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2520, - "src": "19122:8:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Reserve_$2506_storage_$", - "typeString": "mapping(address => struct ConverterBase.Reserve storage ref)" - } - }, - "id": 3346, - "indexExpression": { - "argumentTypes": null, - "id": 3345, - "name": "_address", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3329, - "src": "19131:8:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "19122:18:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Reserve_$2506_storage", - "typeString": "struct ConverterBase.Reserve storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "19097:43:4" - }, - { - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3348, - "name": "reserve", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3343, - "src": "19152:7:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Reserve_$2506_memory_ptr", - "typeString": "struct ConverterBase.Reserve memory" - } - }, - "id": 3349, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "balance", - "nodeType": "MemberAccess", - "referencedDeclaration": 2497, - "src": "19152:15:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3350, - "name": "reserve", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3343, - "src": "19169:7:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Reserve_$2506_memory_ptr", - "typeString": "struct ConverterBase.Reserve memory" - } - }, - "id": 3351, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "weight", - "nodeType": "MemberAccess", - "referencedDeclaration": 2499, - "src": "19169:14:4", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 3352, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19185:5:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 3353, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19192:5:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3354, - "name": "reserve", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3343, - "src": "19199:7:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Reserve_$2506_memory_ptr", - "typeString": "struct ConverterBase.Reserve memory" - } - }, - "id": 3355, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "isSet", - "nodeType": "MemberAccess", - "referencedDeclaration": 2505, - "src": "19199:13:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "id": 3356, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "19151:62:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint32_$_t_bool_$_t_bool_$_t_bool_$", - "typeString": "tuple(uint256,uint32,bool,bool,bool)" - } - }, - "functionReturnParameters": 3341, - "id": 3357, - "nodeType": "Return", - "src": "19144:69:4" - } - ] - }, - "documentation": "@dev deprecated, backward compatibility", - "id": 3359, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "connectors", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3330, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3329, - "name": "_address", - "nodeType": "VariableDeclaration", - "scope": 3359, - "src": "18993:16:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3328, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "18993:7:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "18992:18:4" - }, - "payable": false, - "returnParameters": { - "id": 3341, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3332, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3359, - "src": "19042:7:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3331, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "19042:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3334, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3359, - "src": "19054:6:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 3333, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "19054:6:4", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3336, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3359, - "src": "19065:4:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3335, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "19065:4:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3338, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3359, - "src": "19074:4:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3337, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "19074:4:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3340, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3359, - "src": "19083:4:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3339, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "19083:4:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "19037:54:4" - }, - "scope": 3414, - "src": "18973:244:4", - "stateMutability": "view", - "superFunction": 11797, - "visibility": "public" - }, - { - "body": { - "id": 3371, - "nodeType": "Block", - "src": "19349:50:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3366, - "name": "ConverterBase", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3414, - "src": "19360:13:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ConverterBase_$3414_$", - "typeString": "type(contract ConverterBase)" - } - }, - "id": 3367, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "reserveTokens", - "nodeType": "MemberAccess", - "referencedDeclaration": 2516, - "src": "19360:27:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_storage", - "typeString": "contract IERC20Token[] storage ref" - } - }, - "id": 3369, - "indexExpression": { - "argumentTypes": null, - "id": 3368, - "name": "_index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3361, - "src": "19388:6:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "19360:35:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "functionReturnParameters": 3365, - "id": 3370, - "nodeType": "Return", - "src": "19353:42:4" - } - ] - }, - "documentation": "@dev deprecated, backward compatibility", - "id": 3372, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "connectorTokens", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3362, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3361, - "name": "_index", - "nodeType": "VariableDeclaration", - "scope": 3372, - "src": "19299:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3360, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "19299:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "19298:16:4" - }, - "payable": false, - "returnParameters": { - "id": 3365, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3364, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3372, - "src": "19336:11:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - "typeName": { - "contractScope": null, - "id": 3363, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "19336:11:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "19335:13:4" - }, - "scope": 3414, - "src": "19274:125:4", - "stateMutability": "view", - "superFunction": 11811, - "visibility": "public" - }, - { - "body": { - "id": 3380, - "nodeType": "Block", - "src": "19516:34:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 3377, - "name": "reserveTokenCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2984, - "src": "19527:17:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_uint16_$", - "typeString": "function () view returns (uint16)" - } - }, - "id": 3378, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19527:19:4", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "functionReturnParameters": 3376, - "id": 3379, - "nodeType": "Return", - "src": "19520:26:4" - } - ] - }, - "documentation": "@dev deprecated, backward compatibility", - "id": 3381, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "connectorTokenCount", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3373, - "nodeType": "ParameterList", - "parameters": [], - "src": "19484:2:4" - }, - "payable": false, - "returnParameters": { - "id": 3376, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3375, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3381, - "src": "19508:6:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 3374, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "19508:6:4", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "19507:8:4" - }, - "scope": 3414, - "src": "19456:94:4", - "stateMutability": "view", - "superFunction": 11816, - "visibility": "public" - }, - { - "body": { - "id": 3392, - "nodeType": "Block", - "src": "19695:46:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3389, - "name": "_connectorToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3383, - "src": "19721:15:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - ], - "id": 3388, - "name": "reserveBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 3106 - ], - "referencedDeclaration": 3106, - "src": "19706:14:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_contract$_IERC20Token_$20240_$returns$_t_uint256_$", - "typeString": "function (contract IERC20Token) view returns (uint256)" - } - }, - "id": 3390, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19706:31:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3387, - "id": 3391, - "nodeType": "Return", - "src": "19699:38:4" - } - ] - }, - "documentation": "@dev deprecated, backward compatibility", - "id": 3393, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getConnectorBalance", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3384, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3383, - "name": "_connectorToken", - "nodeType": "VariableDeclaration", - "scope": 3393, - "src": "19636:27:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - "typeName": { - "contractScope": null, - "id": 3382, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "19636:11:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "19635:29:4" - }, - "payable": false, - "returnParameters": { - "id": 3387, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3386, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3393, - "src": "19686:7:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3385, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "19686:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "19685:9:4" - }, - "scope": 3414, - "src": "19607:134:4", - "stateMutability": "view", - "superFunction": 11804, - "visibility": "public" - }, - { - "body": { - "id": 3412, - "nodeType": "Block", - "src": "19934:70:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3407, - "name": "_sourceToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3395, - "src": "19964:12:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - { - "argumentTypes": null, - "id": 3408, - "name": "_targetToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3397, - "src": "19978:12:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - { - "argumentTypes": null, - "id": 3409, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3399, - "src": "19992:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3406, - "name": "targetAmountAndFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11681, - "src": "19945:18:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_contract$_IERC20Token_$20240_$_t_contract$_IERC20Token_$20240_$_t_uint256_$returns$_t_uint256_$_t_uint256_$", - "typeString": "function (contract IERC20Token,contract IERC20Token,uint256) view returns (uint256,uint256)" - } - }, - "id": 3410, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19945:55:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", - "typeString": "tuple(uint256,uint256)" - } - }, - "functionReturnParameters": 3405, - "id": 3411, - "nodeType": "Return", - "src": "19938:62:4" - } - ] - }, - "documentation": "@dev deprecated, backward compatibility", - "id": 3413, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getReturn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3400, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3395, - "name": "_sourceToken", - "nodeType": "VariableDeclaration", - "scope": 3413, - "src": "19820:24:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - "typeName": { - "contractScope": null, - "id": 3394, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "19820:11:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3397, - "name": "_targetToken", - "nodeType": "VariableDeclaration", - "scope": 3413, - "src": "19848:24:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - "typeName": { - "contractScope": null, - "id": 3396, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "19848:11:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3399, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 3413, - "src": "19876:15:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3398, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "19876:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "19816:78:4" - }, - "payable": false, - "returnParameters": { - "id": 3405, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3402, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3413, - "src": "19916:7:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3401, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "19916:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3404, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3413, - "src": "19925:7:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3403, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "19925:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "19915:18:4" - }, - "scope": 3414, - "src": "19798:206:4", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 3415, - "src": "1580:18426:4" - } - ], - "src": "0:20007:4" - }, - "id": 4 - }, - "solidity/contracts/converter/ConverterFactory.sol": { - "ast": { - "absolutePath": "solidity/contracts/converter/ConverterFactory.sol", - "exportedSymbols": { - "ConverterFactory": [ - 3606 - ] - }, - "id": 3607, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 3416, - "literals": [ - "solidity", - "0.4", - ".26" - ], - "nodeType": "PragmaDirective", - "src": "0:23:5" - }, - { - "absolutePath": "solidity/contracts/converter/interfaces/IConverter.sol", - "file": "./interfaces/IConverter.sol", - "id": 3417, - "nodeType": "ImportDirective", - "scope": 3607, - "sourceUnit": 11818, - "src": "24:37:5", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "solidity/contracts/converter/interfaces/IConverterFactory.sol", - "file": "./interfaces/IConverterFactory.sol", - "id": 3418, - "nodeType": "ImportDirective", - "scope": 3607, - "sourceUnit": 11872, - "src": "62:44:5", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "solidity/contracts/converter/interfaces/ITypedConverterFactory.sol", - "file": "./interfaces/ITypedConverterFactory.sol", - "id": 3419, - "nodeType": "ImportDirective", - "scope": 3607, - "sourceUnit": 12291, - "src": "107:49:5", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "solidity/contracts/converter/interfaces/ITypedConverterAnchorFactory.sol", - "file": "./interfaces/ITypedConverterAnchorFactory.sol", - "id": 3420, - "nodeType": "ImportDirective", - "scope": 3607, - "sourceUnit": 12261, - "src": "157:55:5", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "solidity/contracts/converter/interfaces/ITypedConverterCustomFactory.sol", - "file": "./interfaces/ITypedConverterCustomFactory.sol", - "id": 3421, - "nodeType": "ImportDirective", - "scope": 3607, - "sourceUnit": 12269, - "src": "213:55:5", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "solidity/contracts/utility/Owned.sol", - "file": "../utility/Owned.sol", - "id": 3422, - "nodeType": "ImportDirective", - "scope": 3607, - "sourceUnit": 21325, - "src": "269:30:5", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "solidity/contracts/utility/interfaces/IContractRegistry.sol", - "file": "../utility/interfaces/IContractRegistry.sol", - "id": 3423, - "nodeType": "ImportDirective", - "scope": 3607, - "sourceUnit": 22221, - "src": "300:53:5", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "solidity/contracts/token/SmartToken.sol", - "file": "../token/SmartToken.sol", - "id": 3424, - "nodeType": "ImportDirective", - "scope": 3607, - "sourceUnit": 20149, - "src": "354:33:5", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 3425, - "name": "IConverterFactory", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 11871, - "src": "446:17:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterFactory_$11871", - "typeString": "contract IConverterFactory" - } - }, - "id": 3426, - "nodeType": "InheritanceSpecifier", - "src": "446:17:5" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 3427, - "name": "Owned", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 21324, - "src": "465:5:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Owned_$21324", - "typeString": "contract Owned" - } - }, - "id": 3428, - "nodeType": "InheritanceSpecifier", - "src": "465:5:5" - } - ], - "contractDependencies": [ - 11871, - 20148, - 21324, - 22247 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 3606, - "linearizedBaseContracts": [ - 3606, - 21324, - 22247, - 11871 - ], - "name": "ConverterFactory", - "nodeType": "ContractDefinition", - "nodes": [ - { - "anonymous": false, - "documentation": "@dev triggered when a new converter is created\n\t * @param _type converter type, see ConverterBase contract main doc\n@param _converter new converter address\n@param _owner converter owner address", - "id": 3436, - "name": "NewConverter", - "nodeType": "EventDefinition", - "parameters": { - "id": 3435, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3430, - "indexed": true, - "name": "_type", - "nodeType": "VariableDeclaration", - "scope": 3436, - "src": "728:20:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 3429, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "728:6:5", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3432, - "indexed": true, - "name": "_converter", - "nodeType": "VariableDeclaration", - "scope": 3436, - "src": "750:26:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3431, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "750:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3434, - "indexed": true, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 3436, - "src": "778:22:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3433, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "778:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "727:74:5" - }, - "src": "709:93:5" - }, - { - "constant": false, - "id": 3440, - "name": "converterFactories", - "nodeType": "VariableDeclaration", - "scope": 3606, - "src": "805:67:5", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint16_$_t_contract$_ITypedConverterFactory_$12290_$", - "typeString": "mapping(uint16 => contract ITypedConverterFactory)" - }, - "typeName": { - "id": 3439, - "keyType": { - "id": 3437, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "813:6:5", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "nodeType": "Mapping", - "src": "805:41:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint16_$_t_contract$_ITypedConverterFactory_$12290_$", - "typeString": "mapping(uint16 => contract ITypedConverterFactory)" - }, - "valueType": { - "contractScope": null, - "id": 3438, - "name": "ITypedConverterFactory", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 12290, - "src": "823:22:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ITypedConverterFactory_$12290", - "typeString": "contract ITypedConverterFactory" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 3444, - "name": "anchorFactories", - "nodeType": "VariableDeclaration", - "scope": 3606, - "src": "875:70:5", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint16_$_t_contract$_ITypedConverterAnchorFactory_$12260_$", - "typeString": "mapping(uint16 => contract ITypedConverterAnchorFactory)" - }, - "typeName": { - "id": 3443, - "keyType": { - "id": 3441, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "883:6:5", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "nodeType": "Mapping", - "src": "875:47:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint16_$_t_contract$_ITypedConverterAnchorFactory_$12260_$", - "typeString": "mapping(uint16 => contract ITypedConverterAnchorFactory)" - }, - "valueType": { - "contractScope": null, - "id": 3442, - "name": "ITypedConverterAnchorFactory", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 12260, - "src": "893:28:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ITypedConverterAnchorFactory_$12260", - "typeString": "contract ITypedConverterAnchorFactory" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 3448, - "name": "customFactories", - "nodeType": "VariableDeclaration", - "scope": 3606, - "src": "948:70:5", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint16_$_t_contract$_ITypedConverterCustomFactory_$12268_$", - "typeString": "mapping(uint16 => contract ITypedConverterCustomFactory)" - }, - "typeName": { - "id": 3447, - "keyType": { - "id": 3445, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "956:6:5", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "nodeType": "Mapping", - "src": "948:47:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint16_$_t_contract$_ITypedConverterCustomFactory_$12268_$", - "typeString": "mapping(uint16 => contract ITypedConverterCustomFactory)" - }, - "valueType": { - "contractScope": null, - "id": 3446, - "name": "ITypedConverterCustomFactory", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 12268, - "src": "966:28:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ITypedConverterCustomFactory_$12268", - "typeString": "contract ITypedConverterCustomFactory" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "body": { - "id": 3463, - "nodeType": "Block", - "src": "1278:63:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3461, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3455, - "name": "converterFactories", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3440, - "src": "1282:18:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint16_$_t_contract$_ITypedConverterFactory_$12290_$", - "typeString": "mapping(uint16 => contract ITypedConverterFactory)" - } - }, - "id": 3459, - "indexExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 3456, - "name": "_factory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3450, - "src": "1301:8:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ITypedConverterFactory_$12290", - "typeString": "contract ITypedConverterFactory" - } - }, - "id": 3457, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "converterType", - "nodeType": "MemberAccess", - "referencedDeclaration": 12278, - "src": "1301:22:5", - "typeDescriptions": { - "typeIdentifier": "t_function_external_pure$__$returns$_t_uint16_$", - "typeString": "function () pure external returns (uint16)" - } - }, - "id": 3458, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1301:24:5", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "1282:44:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ITypedConverterFactory_$12290", - "typeString": "contract ITypedConverterFactory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3460, - "name": "_factory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3450, - "src": "1329:8:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ITypedConverterFactory_$12290", - "typeString": "contract ITypedConverterFactory" - } - }, - "src": "1282:55:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ITypedConverterFactory_$12290", - "typeString": "contract ITypedConverterFactory" - } - }, - "id": 3462, - "nodeType": "ExpressionStatement", - "src": "1282:55:5" - } - ] - }, - "documentation": "@dev initializes the factory with a specific typed converter factory\ncan only be called by the owner\n\t * @param _factory typed converter factory", - "id": 3464, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 3453, - "modifierName": { - "argumentTypes": null, - "id": 3452, - "name": "ownerOnly", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21265, - "src": "1268:9:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "1268:9:5" - } - ], - "name": "registerTypedConverterFactory", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3451, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3450, - "name": "_factory", - "nodeType": "VariableDeclaration", - "scope": 3464, - "src": "1228:31:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ITypedConverterFactory_$12290", - "typeString": "contract ITypedConverterFactory" - }, - "typeName": { - "contractScope": null, - "id": 3449, - "name": "ITypedConverterFactory", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 12290, - "src": "1228:22:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ITypedConverterFactory_$12290", - "typeString": "contract ITypedConverterFactory" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1227:33:5" - }, - "payable": false, - "returnParameters": { - "id": 3454, - "nodeType": "ParameterList", - "parameters": [], - "src": "1278:0:5" - }, - "scope": 3606, - "src": "1189:152:5", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3479, - "nodeType": "Block", - "src": "1626:60:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3477, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3471, - "name": "anchorFactories", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3444, - "src": "1630:15:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint16_$_t_contract$_ITypedConverterAnchorFactory_$12260_$", - "typeString": "mapping(uint16 => contract ITypedConverterAnchorFactory)" - } - }, - "id": 3475, - "indexExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 3472, - "name": "_factory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3466, - "src": "1646:8:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ITypedConverterAnchorFactory_$12260", - "typeString": "contract ITypedConverterAnchorFactory" - } - }, - "id": 3473, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "converterType", - "nodeType": "MemberAccess", - "referencedDeclaration": 12248, - "src": "1646:22:5", - "typeDescriptions": { - "typeIdentifier": "t_function_external_pure$__$returns$_t_uint16_$", - "typeString": "function () pure external returns (uint16)" - } - }, - "id": 3474, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1646:24:5", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "1630:41:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ITypedConverterAnchorFactory_$12260", - "typeString": "contract ITypedConverterAnchorFactory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3476, - "name": "_factory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3466, - "src": "1674:8:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ITypedConverterAnchorFactory_$12260", - "typeString": "contract ITypedConverterAnchorFactory" - } - }, - "src": "1630:52:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ITypedConverterAnchorFactory_$12260", - "typeString": "contract ITypedConverterAnchorFactory" - } - }, - "id": 3478, - "nodeType": "ExpressionStatement", - "src": "1630:52:5" - } - ] - }, - "documentation": "@dev initializes the factory with a specific typed converter anchor factory\ncan only be called by the owner\n\t * @param _factory typed converter anchor factory", - "id": 3480, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 3469, - "modifierName": { - "argumentTypes": null, - "id": 3468, - "name": "ownerOnly", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21265, - "src": "1616:9:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "1616:9:5" - } - ], - "name": "registerTypedConverterAnchorFactory", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3467, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3466, - "name": "_factory", - "nodeType": "VariableDeclaration", - "scope": 3480, - "src": "1570:37:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ITypedConverterAnchorFactory_$12260", - "typeString": "contract ITypedConverterAnchorFactory" - }, - "typeName": { - "contractScope": null, - "id": 3465, - "name": "ITypedConverterAnchorFactory", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 12260, - "src": "1570:28:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ITypedConverterAnchorFactory_$12260", - "typeString": "contract ITypedConverterAnchorFactory" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1569:39:5" - }, - "payable": false, - "returnParameters": { - "id": 3470, - "nodeType": "ParameterList", - "parameters": [], - "src": "1626:0:5" - }, - "scope": 3606, - "src": "1525:161:5", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3495, - "nodeType": "Block", - "src": "1971:60:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3493, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3487, - "name": "customFactories", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 3448 - ], - "referencedDeclaration": 3448, - "src": "1975:15:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint16_$_t_contract$_ITypedConverterCustomFactory_$12268_$", - "typeString": "mapping(uint16 => contract ITypedConverterCustomFactory)" - } - }, - "id": 3491, - "indexExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 3488, - "name": "_factory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3482, - "src": "1991:8:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ITypedConverterCustomFactory_$12268", - "typeString": "contract ITypedConverterCustomFactory" - } - }, - "id": 3489, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "converterType", - "nodeType": "MemberAccess", - "referencedDeclaration": 12267, - "src": "1991:22:5", - "typeDescriptions": { - "typeIdentifier": "t_function_external_pure$__$returns$_t_uint16_$", - "typeString": "function () pure external returns (uint16)" - } - }, - "id": 3490, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1991:24:5", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "1975:41:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ITypedConverterCustomFactory_$12268", - "typeString": "contract ITypedConverterCustomFactory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3492, - "name": "_factory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3482, - "src": "2019:8:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ITypedConverterCustomFactory_$12268", - "typeString": "contract ITypedConverterCustomFactory" - } - }, - "src": "1975:52:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ITypedConverterCustomFactory_$12268", - "typeString": "contract ITypedConverterCustomFactory" - } - }, - "id": 3494, - "nodeType": "ExpressionStatement", - "src": "1975:52:5" - } - ] - }, - "documentation": "@dev initializes the factory with a specific typed converter custom factory\ncan only be called by the owner\n\t * @param _factory typed converter custom factory", - "id": 3496, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 3485, - "modifierName": { - "argumentTypes": null, - "id": 3484, - "name": "ownerOnly", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21265, - "src": "1961:9:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "1961:9:5" - } - ], - "name": "registerTypedConverterCustomFactory", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3483, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3482, - "name": "_factory", - "nodeType": "VariableDeclaration", - "scope": 3496, - "src": "1915:37:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ITypedConverterCustomFactory_$12268", - "typeString": "contract ITypedConverterCustomFactory" - }, - "typeName": { - "contractScope": null, - "id": 3481, - "name": "ITypedConverterCustomFactory", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 12268, - "src": "1915:28:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ITypedConverterCustomFactory_$12268", - "typeString": "contract ITypedConverterCustomFactory" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1914:39:5" - }, - "payable": false, - "returnParameters": { - "id": 3486, - "nodeType": "ParameterList", - "parameters": [], - "src": "1971:0:5" - }, - "scope": 3606, - "src": "1870:161:5", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3558, - "nodeType": "Block", - "src": "2518:423:5", - "statements": [ - { - "assignments": [], - "declarations": [ - { - "constant": false, - "id": 3510, - "name": "anchor", - "nodeType": "VariableDeclaration", - "scope": 3559, - "src": "2522:23:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - }, - "typeName": { - "contractScope": null, - "id": 3509, - "name": "IConverterAnchor", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 11826, - "src": "2522:16:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3511, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "2522:23:5" - }, - { - "assignments": [ - 3513 - ], - "declarations": [ - { - "constant": false, - "id": 3513, - "name": "factory", - "nodeType": "VariableDeclaration", - "scope": 3559, - "src": "2549:36:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ITypedConverterAnchorFactory_$12260", - "typeString": "contract ITypedConverterAnchorFactory" - }, - "typeName": { - "contractScope": null, - "id": 3512, - "name": "ITypedConverterAnchorFactory", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 12260, - "src": "2549:28:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ITypedConverterAnchorFactory_$12260", - "typeString": "contract ITypedConverterAnchorFactory" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3517, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3514, - "name": "anchorFactories", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3444, - "src": "2588:15:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint16_$_t_contract$_ITypedConverterAnchorFactory_$12260_$", - "typeString": "mapping(uint16 => contract ITypedConverterAnchorFactory)" - } - }, - "id": 3516, - "indexExpression": { - "argumentTypes": null, - "id": 3515, - "name": "_converterType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3498, - "src": "2604:14:5", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2588:31:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ITypedConverterAnchorFactory_$12260", - "typeString": "contract ITypedConverterAnchorFactory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2549:70:5" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 3522, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3518, - "name": "factory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3513, - "src": "2628:7:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ITypedConverterAnchorFactory_$12260", - "typeString": "contract ITypedConverterAnchorFactory" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 3520, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2647:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 3519, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2639:7:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3521, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2639:10:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2628:21:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 3547, - "nodeType": "Block", - "src": "2758:122:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3540, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3533, - "name": "anchor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3510, - "src": "2790:6:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3536, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3500, - "src": "2820:5:5", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 3537, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3502, - "src": "2827:7:5", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 3538, - "name": "_decimals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3504, - "src": "2836:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - ], - "expression": { - "argumentTypes": null, - "id": 3534, - "name": "factory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3513, - "src": "2799:7:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ITypedConverterAnchorFactory_$12260", - "typeString": "contract ITypedConverterAnchorFactory" - } - }, - "id": 3535, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "createAnchor", - "nodeType": "MemberAccess", - "referencedDeclaration": 12259, - "src": "2799:20:5", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_uint8_$returns$_t_contract$_IConverterAnchor_$11826_$", - "typeString": "function (string memory,string memory,uint8) external returns (contract IConverterAnchor)" - } - }, - "id": 3539, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2799:47:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - }, - "src": "2790:56:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - }, - "id": 3541, - "nodeType": "ExpressionStatement", - "src": "2790:56:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 3542, - "name": "anchor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3510, - "src": "2851:6:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - }, - "id": 3544, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "acceptOwnership", - "nodeType": "MemberAccess", - "referencedDeclaration": 22246, - "src": "2851:22:5", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$__$returns$__$", - "typeString": "function () external" - } - }, - "id": 3545, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2851:24:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3546, - "nodeType": "ExpressionStatement", - "src": "2851:24:5" - } - ] - }, - "id": 3548, - "nodeType": "IfStatement", - "src": "2624:256:5", - "trueBody": { - "id": 3532, - "nodeType": "Block", - "src": "2651:101:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3530, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3523, - "name": "anchor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3510, - "src": "2697:6:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3526, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3500, - "src": "2721:5:5", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 3527, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3502, - "src": "2728:7:5", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 3528, - "name": "_decimals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3504, - "src": "2737:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - ], - "id": 3525, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "2706:14:5", - "typeDescriptions": { - "typeIdentifier": "t_function_creation_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_uint8_$returns$_t_contract$_SmartToken_$20148_$", - "typeString": "function (string memory,string memory,uint8) returns (contract SmartToken)" - }, - "typeName": { - "contractScope": null, - "id": 3524, - "name": "SmartToken", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20148, - "src": "2710:10:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SmartToken_$20148", - "typeString": "contract SmartToken" - } - } - }, - "id": 3529, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2706:41:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SmartToken_$20148", - "typeString": "contract SmartToken" - } - }, - "src": "2697:50:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - }, - "id": 3531, - "nodeType": "ExpressionStatement", - "src": "2697:50:5" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3552, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22338, - "src": "2909:3:5", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3553, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2909:10:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 3549, - "name": "anchor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3510, - "src": "2884:6:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - }, - "id": 3551, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transferOwnership", - "nodeType": "MemberAccess", - "referencedDeclaration": 22243, - "src": "2884:24:5", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$", - "typeString": "function (address) external" - } - }, - "id": 3554, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2884:36:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3555, - "nodeType": "ExpressionStatement", - "src": "2884:36:5" - }, - { - "expression": { - "argumentTypes": null, - "id": 3556, - "name": "anchor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3510, - "src": "2931:6:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - }, - "functionReturnParameters": 3508, - "id": 3557, - "nodeType": "Return", - "src": "2924:13:5" - } - ] - }, - "documentation": "@dev creates a new converter anchor with the given arguments and transfers\nthe ownership to the caller\n\t * @param _converterType converter type, see ConverterBase contract main doc\n@param _name name\n@param _symbol symbol\n@param _decimals decimals\n\t * @return new converter anchor", - "id": 3559, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "createAnchor", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3505, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3498, - "name": "_converterType", - "nodeType": "VariableDeclaration", - "scope": 3559, - "src": "2406:21:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 3497, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "2406:6:5", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3500, - "name": "_name", - "nodeType": "VariableDeclaration", - "scope": 3559, - "src": "2431:12:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 3499, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "2431:6:5", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3502, - "name": "_symbol", - "nodeType": "VariableDeclaration", - "scope": 3559, - "src": "2447:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 3501, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "2447:6:5", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3504, - "name": "_decimals", - "nodeType": "VariableDeclaration", - "scope": 3559, - "src": "2465:15:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 3503, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "2465:5:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2402:81:5" - }, - "payable": false, - "returnParameters": { - "id": 3508, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3507, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3559, - "src": "2500:16:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - }, - "typeName": { - "contractScope": null, - "id": 3506, - "name": "IConverterAnchor", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 11826, - "src": "2500:16:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2499:18:5" - }, - "scope": 3606, - "src": "2381:560:5", - "stateMutability": "nonpayable", - "superFunction": 11845, - "visibility": "public" - }, - { - "body": { - "id": 3604, - "nodeType": "Block", - "src": "3539:257:5", - "statements": [ - { - "assignments": [ - 3573 - ], - "declarations": [ - { - "constant": false, - "id": 3573, - "name": "converter", - "nodeType": "VariableDeclaration", - "scope": 3605, - "src": "3543:20:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - }, - "typeName": { - "contractScope": null, - "id": 3572, - "name": "IConverter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 11817, - "src": "3543:10:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3582, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3578, - "name": "_anchor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3563, - "src": "3608:7:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - }, - { - "argumentTypes": null, - "id": 3579, - "name": "_registry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3565, - "src": "3617:9:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IContractRegistry_$22220", - "typeString": "contract IContractRegistry" - } - }, - { - "argumentTypes": null, - "id": 3580, - "name": "_maxConversionFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3567, - "src": "3628:17:5", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - }, - { - "typeIdentifier": "t_contract$_IContractRegistry_$22220", - "typeString": "contract IContractRegistry" - }, - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3574, - "name": "converterFactories", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3440, - "src": "3566:18:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint16_$_t_contract$_ITypedConverterFactory_$12290_$", - "typeString": "mapping(uint16 => contract ITypedConverterFactory)" - } - }, - "id": 3576, - "indexExpression": { - "argumentTypes": null, - "id": 3575, - "name": "_type", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3561, - "src": "3585:5:5", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3566:25:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ITypedConverterFactory_$12290", - "typeString": "contract ITypedConverterFactory" - } - }, - "id": 3577, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "createConverter", - "nodeType": "MemberAccess", - "referencedDeclaration": 12289, - "src": "3566:41:5", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_contract$_IConverterAnchor_$11826_$_t_contract$_IContractRegistry_$22220_$_t_uint32_$returns$_t_contract$_IConverter_$11817_$", - "typeString": "function (contract IConverterAnchor,contract IContractRegistry,uint32) external returns (contract IConverter)" - } - }, - "id": 3581, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3566:80:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3543:103:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 3583, - "name": "converter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3573, - "src": "3650:9:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - "id": 3585, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "acceptOwnership", - "nodeType": "MemberAccess", - "referencedDeclaration": 22246, - "src": "3650:25:5", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$__$returns$__$", - "typeString": "function () external" - } - }, - "id": 3586, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3650:27:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3587, - "nodeType": "ExpressionStatement", - "src": "3650:27:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3591, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22338, - "src": "3709:3:5", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3592, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3709:10:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 3588, - "name": "converter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3573, - "src": "3681:9:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - "id": 3590, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transferOwnership", - "nodeType": "MemberAccess", - "referencedDeclaration": 22243, - "src": "3681:27:5", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$", - "typeString": "function (address) external" - } - }, - "id": 3593, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3681:39:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3594, - "nodeType": "ExpressionStatement", - "src": "3681:39:5" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3596, - "name": "_type", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3561, - "src": "3743:5:5", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - { - "argumentTypes": null, - "id": 3597, - "name": "converter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3573, - "src": "3750:9:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3598, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22338, - "src": "3761:3:5", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3599, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3761:10:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3595, - "name": "NewConverter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3436, - "src": "3730:12:5", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint16_$_t_address_$_t_address_$returns$__$", - "typeString": "function (uint16,address,address)" - } - }, - "id": 3600, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3730:42:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3601, - "nodeType": "EmitStatement", - "src": "3725:47:5" - }, - { - "expression": { - "argumentTypes": null, - "id": 3602, - "name": "converter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3573, - "src": "3783:9:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - "functionReturnParameters": 3571, - "id": 3603, - "nodeType": "Return", - "src": "3776:16:5" - } - ] - }, - "documentation": "@dev creates a new converter with the given arguments and transfers\nthe ownership to the caller\n\t * @param _type converter type, see ConverterBase contract main doc\n@param _anchor anchor governed by the converter\n@param _registry address of a contract registry contract\n@param _maxConversionFee maximum conversion fee, represented in ppm\n\t * @return new converter", - "id": 3605, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "createConverter", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3568, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3561, - "name": "_type", - "nodeType": "VariableDeclaration", - "scope": 3605, - "src": "3408:12:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 3560, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "3408:6:5", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3563, - "name": "_anchor", - "nodeType": "VariableDeclaration", - "scope": 3605, - "src": "3424:24:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - }, - "typeName": { - "contractScope": null, - "id": 3562, - "name": "IConverterAnchor", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 11826, - "src": "3424:16:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3565, - "name": "_registry", - "nodeType": "VariableDeclaration", - "scope": 3605, - "src": "3452:27:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IContractRegistry_$22220", - "typeString": "contract IContractRegistry" - }, - "typeName": { - "contractScope": null, - "id": 3564, - "name": "IContractRegistry", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 22220, - "src": "3452:17:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IContractRegistry_$22220", - "typeString": "contract IContractRegistry" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3567, - "name": "_maxConversionFee", - "nodeType": "VariableDeclaration", - "scope": 3605, - "src": "3483:24:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 3566, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "3483:6:5", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3404:106:5" - }, - "payable": false, - "returnParameters": { - "id": 3571, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3570, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3605, - "src": "3527:10:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - }, - "typeName": { - "contractScope": null, - "id": 3569, - "name": "IConverter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 11817, - "src": "3527:10:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3526:12:5" - }, - "scope": 3606, - "src": "3380:416:5", - "stateMutability": "nonpayable", - "superFunction": 11858, - "visibility": "public" - } - ], - "scope": 3607, - "src": "417:3381:5" - } - ], - "src": "0:3799:5" - }, - "id": 5 - }, - "solidity/contracts/converter/ConverterRegistry.sol": { - "ast": { - "absolutePath": "solidity/contracts/converter/ConverterRegistry.sol", - "exportedSymbols": { - "ConverterRegistry": [ - 4965 - ] - }, - "id": 4966, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 3608, - "literals": [ - "solidity", - "0.4", - ".26" - ], - "nodeType": "PragmaDirective", - "src": "0:23:6" - }, - { - "absolutePath": "solidity/contracts/utility/TokenHandler.sol", - "file": "../utility/TokenHandler.sol", - "id": 3609, - "nodeType": "ImportDirective", - "scope": 4966, - "sourceUnit": 21934, - "src": "24:37:6", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "solidity/contracts/utility/ContractRegistryClient.sol", - "file": "../utility/ContractRegistryClient.sol", - "id": 3610, - "nodeType": "ImportDirective", - "scope": 4966, - "sourceUnit": 20933, - "src": "62:47:6", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "solidity/contracts/converter/interfaces/IConverter.sol", - "file": "./interfaces/IConverter.sol", - "id": 3611, - "nodeType": "ImportDirective", - "scope": 4966, - "sourceUnit": 11818, - "src": "110:37:6", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "solidity/contracts/converter/interfaces/IConverterFactory.sol", - "file": "./interfaces/IConverterFactory.sol", - "id": 3612, - "nodeType": "ImportDirective", - "scope": 4966, - "sourceUnit": 11872, - "src": "148:44:6", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "solidity/contracts/converter/interfaces/IConverterRegistry.sol", - "file": "./interfaces/IConverterRegistry.sol", - "id": 3613, - "nodeType": "ImportDirective", - "scope": 4966, - "sourceUnit": 11983, - "src": "193:45:6", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "solidity/contracts/converter/interfaces/IConverterRegistryData.sol", - "file": "./interfaces/IConverterRegistryData.sol", - "id": 3614, - "nodeType": "ImportDirective", - "scope": 4966, - "sourceUnit": 12128, - "src": "239:49:6", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 3615, - "name": "IConverterRegistry", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 11982, - "src": "1308:18:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterRegistry_$11982", - "typeString": "contract IConverterRegistry" - } - }, - "id": 3616, - "nodeType": "InheritanceSpecifier", - "src": "1308:18:6" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 3617, - "name": "ContractRegistryClient", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20932, - "src": "1328:22:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ContractRegistryClient_$20932", - "typeString": "contract ContractRegistryClient" - } - }, - "id": 3618, - "nodeType": "InheritanceSpecifier", - "src": "1328:22:6" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 3619, - "name": "TokenHandler", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 21933, - "src": "1352:12:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_TokenHandler_$21933", - "typeString": "contract TokenHandler" - } - }, - "id": 3620, - "nodeType": "InheritanceSpecifier", - "src": "1352:12:6" - } - ], - "contractDependencies": [ - 11982, - 20932, - 21324, - 21933, - 22052, - 22247 - ], - "contractKind": "contract", - "documentation": "@dev The ConverterRegistry maintains a list of all active converters in the SovrynSwap Network.\n * Since converters can be upgraded and thus their address can change, the registry actually keeps\nconverter anchors internally and not the converters themselves.\nThe active converter for each anchor can be easily accessed by querying the anchor's owner.\n * The registry exposes 3 differnet lists that can be accessed and iterated, based on the use-case of the caller:\n- Anchors - can be used to get all the latest / historical data in the network\n- Liquidity pools - can be used to get all liquidity pools for funding, liquidation etc.\n- Convertible tokens - can be used to get all tokens that can be converted in the network (excluding pool\n tokens), and for each one - all anchors that hold it in their reserves\n *\nThe contract fires events whenever one of the primitives is added to or removed from the registry\n * The contract is upgradable.", - "fullyImplemented": true, - "id": 4965, - "linearizedBaseContracts": [ - 4965, - 21933, - 20932, - 22052, - 21324, - 22247, - 11982 - ], - "name": "ConverterRegistry", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": true, - "id": 3623, - "name": "ETH_RESERVE_ADDRESS", - "nodeType": "VariableDeclaration", - "scope": 4965, - "src": "1368:89:6", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3621, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1368:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "307845656565654565656545654565654565456545656545454565656565456565656565656545456545", - "id": 3622, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1415:42:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "value": "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE" - }, - "visibility": "private" - }, - { - "constant": false, - "id": 3627, - "name": "deployer", - "nodeType": "VariableDeclaration", - "scope": 4965, - "src": "1460:44:6", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - }, - "typeName": { - "id": 3626, - "keyType": { - "id": 3624, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1468:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "1460:27:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - }, - "valueType": { - "id": 3625, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1479:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "anonymous": false, - "documentation": "@dev triggered when a converter anchor is added to the registry\n\t * @param _anchor smart token", - "id": 3631, - "name": "ConverterAnchorAdded", - "nodeType": "EventDefinition", - "parameters": { - "id": 3630, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3629, - "indexed": true, - "name": "_anchor", - "nodeType": "VariableDeclaration", - "scope": 3631, - "src": "1648:23:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3628, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1648:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1647:25:6" - }, - "src": "1621:52:6" - }, - { - "anonymous": false, - "documentation": "@dev triggered when a converter anchor is removed from the registry\n\t * @param _anchor smart token", - "id": 3635, - "name": "ConverterAnchorRemoved", - "nodeType": "EventDefinition", - "parameters": { - "id": 3634, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3633, - "indexed": true, - "name": "_anchor", - "nodeType": "VariableDeclaration", - "scope": 3635, - "src": "1822:23:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3632, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1822:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1821:25:6" - }, - "src": "1793:54:6" - }, - { - "anonymous": false, - "documentation": "@dev triggered when a liquidity pool is added to the registry\n\t * @param _liquidityPool liquidity pool", - "id": 3639, - "name": "LiquidityPoolAdded", - "nodeType": "EventDefinition", - "parameters": { - "id": 3638, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3637, - "indexed": true, - "name": "_liquidityPool", - "nodeType": "VariableDeclaration", - "scope": 3639, - "src": "1996:30:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3636, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1996:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1995:32:6" - }, - "src": "1971:57:6" - }, - { - "anonymous": false, - "documentation": "@dev triggered when a liquidity pool is removed from the registry\n\t * @param _liquidityPool liquidity pool", - "id": 3643, - "name": "LiquidityPoolRemoved", - "nodeType": "EventDefinition", - "parameters": { - "id": 3642, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3641, - "indexed": true, - "name": "_liquidityPool", - "nodeType": "VariableDeclaration", - "scope": 3643, - "src": "2183:30:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3640, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2183:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2182:32:6" - }, - "src": "2156:59:6" - }, - { - "anonymous": false, - "documentation": "@dev triggered when a convertible token is added to the registry\n\t * @param _convertibleToken convertible token\n@param _smartToken associated smart token", - "id": 3649, - "name": "ConvertibleTokenAdded", - "nodeType": "EventDefinition", - "parameters": { - "id": 3648, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3645, - "indexed": true, - "name": "_convertibleToken", - "nodeType": "VariableDeclaration", - "scope": 3649, - "src": "2422:33:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3644, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2422:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3647, - "indexed": true, - "name": "_smartToken", - "nodeType": "VariableDeclaration", - "scope": 3649, - "src": "2457:27:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3646, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2457:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2421:64:6" - }, - "src": "2394:92:6" - }, - { - "anonymous": false, - "documentation": "@dev triggered when a convertible token is removed from the registry\n\t * @param _convertibleToken convertible token\n@param _smartToken associated smart token", - "id": 3655, - "name": "ConvertibleTokenRemoved", - "nodeType": "EventDefinition", - "parameters": { - "id": 3654, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3651, - "indexed": true, - "name": "_convertibleToken", - "nodeType": "VariableDeclaration", - "scope": 3655, - "src": "2699:33:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3650, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2699:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3653, - "indexed": true, - "name": "_smartToken", - "nodeType": "VariableDeclaration", - "scope": 3655, - "src": "2734:27:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3652, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2734:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2698:64:6" - }, - "src": "2669:94:6" - }, - { - "anonymous": false, - "documentation": "@dev deprecated, backward compatibility, use `ConverterAnchorAdded`", - "id": 3659, - "name": "SmartTokenAdded", - "nodeType": "EventDefinition", - "parameters": { - "id": 3658, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3657, - "indexed": true, - "name": "_smartToken", - "nodeType": "VariableDeclaration", - "scope": 3659, - "src": "2870:27:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3656, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2870:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2869:29:6" - }, - "src": "2848:51:6" - }, - { - "anonymous": false, - "documentation": "@dev deprecated, backward compatibility, use `ConverterAnchorRemoved`", - "id": 3663, - "name": "SmartTokenRemoved", - "nodeType": "EventDefinition", - "parameters": { - "id": 3662, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3661, - "indexed": true, - "name": "_smartToken", - "nodeType": "VariableDeclaration", - "scope": 3663, - "src": "3010:27:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3660, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3010:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3009:29:6" - }, - "src": "2986:53:6" - }, - { - "body": { - "id": 3671, - "nodeType": "Block", - "src": "3253:2:6", - "statements": [] - }, - "documentation": "@dev initializes a new ConverterRegistry instance\n\t * @param _registry address of a contract registry contract", - "id": 3672, - "implemented": true, - "isConstructor": true, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 3668, - "name": "_registry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3665, - "src": "3242:9:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IContractRegistry_$22220", - "typeString": "contract IContractRegistry" - } - } - ], - "id": 3669, - "modifierName": { - "argumentTypes": null, - "id": 3667, - "name": "ContractRegistryClient", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20932, - "src": "3219:22:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ContractRegistryClient_$20932_$", - "typeString": "type(contract ContractRegistryClient)" - } - }, - "nodeType": "ModifierInvocation", - "src": "3219:33:6" - } - ], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3666, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3665, - "name": "_registry", - "nodeType": "VariableDeclaration", - "scope": 3672, - "src": "3183:27:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IContractRegistry_$22220", - "typeString": "contract IContractRegistry" - }, - "typeName": { - "contractScope": null, - "id": 3664, - "name": "IContractRegistry", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 22220, - "src": "3183:17:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IContractRegistry_$22220", - "typeString": "contract IContractRegistry" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3182:29:6" - }, - "payable": false, - "returnParameters": { - "id": 3670, - "nodeType": "ParameterList", - "parameters": [], - "src": "3253:0:6" - }, - "scope": 4965, - "src": "3171:84:6", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3760, - "nodeType": "Block", - "src": "4022:678:6", - "statements": [ - { - "assignments": [ - 3694 - ], - "declarations": [ - { - "constant": false, - "id": 3694, - "name": "length", - "nodeType": "VariableDeclaration", - "scope": 3761, - "src": "4026:14:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3693, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4026:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3697, - "initialValue": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3695, - "name": "_reserveTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3685, - "src": "4043:14:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", - "typeString": "contract IERC20Token[] memory" - } - }, - "id": 3696, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4043:21:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4026:38:6" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3702, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3699, - "name": "length", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3694, - "src": "4076:6:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3700, - "name": "_reserveWeights", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3688, - "src": "4086:15:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint32_$dyn_memory_ptr", - "typeString": "uint32[] memory" - } - }, - "id": 3701, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4086:22:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4076:32:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552525f494e56414c49445f5245534552564553", - "id": 3703, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4110:22:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_d9402087dd8193cd0dfdf2ea32d5d892390e5da6cfb95c2d9c82b55c80bcce77", - "typeString": "literal_string \"ERR_INVALID_RESERVES\"" - }, - "value": "ERR_INVALID_RESERVES" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_d9402087dd8193cd0dfdf2ea32d5d892390e5da6cfb95c2d9c82b55c80bcce77", - "typeString": "literal_string \"ERR_INVALID_RESERVES\"" - } - ], - "id": 3698, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 22341, - 22342 - ], - "referencedDeclaration": 22342, - "src": "4068:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 3704, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4068:65:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3705, - "nodeType": "ExpressionStatement", - "src": "4068:65:6" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - }, - "id": 3715, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3708, - "name": "_type", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3674, - "src": "4170:5:6", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - { - "argumentTypes": null, - "id": 3709, - "name": "_reserveTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3685, - "src": "4177:14:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", - "typeString": "contract IERC20Token[] memory" - } - }, - { - "argumentTypes": null, - "id": 3710, - "name": "_reserveWeights", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3688, - "src": "4193:15:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint32_$dyn_memory_ptr", - "typeString": "uint32[] memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", - "typeString": "contract IERC20Token[] memory" - }, - { - "typeIdentifier": "t_array$_t_uint32_$dyn_memory_ptr", - "typeString": "uint32[] memory" - } - ], - "id": 3707, - "name": "getLiquidityPoolByConfig", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4402, - "src": "4145:24:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint16_$_t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr_$_t_array$_t_uint32_$dyn_memory_ptr_$returns$_t_contract$_IConverterAnchor_$11826_$", - "typeString": "function (uint16,contract IERC20Token[] memory,uint32[] memory) view returns (contract IConverterAnchor)" - } - }, - "id": 3711, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4145:64:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 3713, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4230:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 3712, - "name": "IConverterAnchor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11826, - "src": "4213:16:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IConverterAnchor_$11826_$", - "typeString": "type(contract IConverterAnchor)" - } - }, - "id": 3714, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4213:19:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - }, - "src": "4145:87:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552525f414c52454144595f455849535453", - "id": 3716, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4234:20:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_dee3679442264532ea8006772293a0d73a73c45dea71a562b7f372acad036a5c", - "typeString": "literal_string \"ERR_ALREADY_EXISTS\"" - }, - "value": "ERR_ALREADY_EXISTS" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_dee3679442264532ea8006772293a0d73a73c45dea71a562b7f372acad036a5c", - "typeString": "literal_string \"ERR_ALREADY_EXISTS\"" - } - ], - "id": 3706, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 22341, - 22342 - ], - "referencedDeclaration": 22342, - "src": "4137:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 3717, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4137:118:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3718, - "nodeType": "ExpressionStatement", - "src": "4137:118:6" - }, - { - "assignments": [ - 3720 - ], - "declarations": [ - { - "constant": false, - "id": 3720, - "name": "factory", - "nodeType": "VariableDeclaration", - "scope": 3761, - "src": "4260:25:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterFactory_$11871", - "typeString": "contract IConverterFactory" - }, - "typeName": { - "contractScope": null, - "id": 3719, - "name": "IConverterFactory", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 11871, - "src": "4260:17:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterFactory_$11871", - "typeString": "contract IConverterFactory" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3726, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3723, - "name": "CONVERTER_FACTORY", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20761, - "src": "4316:17:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 3722, - "name": "addressOf", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20931, - "src": "4306:9:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$", - "typeString": "function (bytes32) view returns (address)" - } - }, - "id": 3724, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4306:28:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3721, - "name": "IConverterFactory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11871, - "src": "4288:17:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IConverterFactory_$11871_$", - "typeString": "type(contract IConverterFactory)" - } - }, - "id": 3725, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4288:47:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterFactory_$11871", - "typeString": "contract IConverterFactory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4260:75:6" - }, - { - "assignments": [ - 3728 - ], - "declarations": [ - { - "constant": false, - "id": 3728, - "name": "anchor", - "nodeType": "VariableDeclaration", - "scope": 3761, - "src": "4339:23:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - }, - "typeName": { - "contractScope": null, - "id": 3727, - "name": "IConverterAnchor", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 11826, - "src": "4339:16:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3738, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3732, - "name": "_type", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3674, - "src": "4403:5:6", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - { - "argumentTypes": null, - "id": 3733, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3676, - "src": "4410:5:6", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 3734, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3678, - "src": "4417:7:6", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 3735, - "name": "_decimals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3680, - "src": "4426:9:6", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - ], - "expression": { - "argumentTypes": null, - "id": 3730, - "name": "factory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3720, - "src": "4382:7:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterFactory_$11871", - "typeString": "contract IConverterFactory" - } - }, - "id": 3731, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "createAnchor", - "nodeType": "MemberAccess", - "referencedDeclaration": 11845, - "src": "4382:20:6", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_uint16_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_uint8_$returns$_t_contract$_IConverterAnchor_$11826_$", - "typeString": "function (uint16,string memory,string memory,uint8) external returns (contract IConverterAnchor)" - } - }, - "id": 3736, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4382:54:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - ], - "id": 3729, - "name": "IConverterAnchor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11826, - "src": "4365:16:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IConverterAnchor_$11826_$", - "typeString": "type(contract IConverterAnchor)" - } - }, - "id": 3737, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4365:72:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4339:98:6" - }, - { - "assignments": [ - 3740 - ], - "declarations": [ - { - "constant": false, - "id": 3740, - "name": "converter", - "nodeType": "VariableDeclaration", - "scope": 3761, - "src": "4441:20:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - }, - "typeName": { - "contractScope": null, - "id": 3739, - "name": "IConverter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 11817, - "src": "4441:10:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3750, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3744, - "name": "_type", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3674, - "src": "4499:5:6", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - { - "argumentTypes": null, - "id": 3745, - "name": "anchor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3728, - "src": "4506:6:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - }, - { - "argumentTypes": null, - "id": 3746, - "name": "registry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20787, - "src": "4514:8:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IContractRegistry_$22220", - "typeString": "contract IContractRegistry" - } - }, - { - "argumentTypes": null, - "id": 3747, - "name": "_maxConversionFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3682, - "src": "4524:17:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - }, - { - "typeIdentifier": "t_contract$_IContractRegistry_$22220", - "typeString": "contract IContractRegistry" - }, - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - ], - "expression": { - "argumentTypes": null, - "id": 3742, - "name": "factory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3720, - "src": "4475:7:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterFactory_$11871", - "typeString": "contract IConverterFactory" - } - }, - "id": 3743, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "createConverter", - "nodeType": "MemberAccess", - "referencedDeclaration": 11858, - "src": "4475:23:6", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_uint16_$_t_contract$_IConverterAnchor_$11826_$_t_contract$_IContractRegistry_$22220_$_t_uint32_$returns$_t_contract$_IConverter_$11817_$", - "typeString": "function (uint16,contract IConverterAnchor,contract IContractRegistry,uint32) external returns (contract IConverter)" - } - }, - "id": 3748, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4475:67:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - ], - "id": 3741, - "name": "IConverter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11817, - "src": "4464:10:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IConverter_$11817_$", - "typeString": "type(contract IConverter)" - } - }, - "id": 3749, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4464:79:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4441:102:6" - }, - { - "expression": { - "argumentTypes": null, - "id": 3756, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3751, - "name": "deployer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3627, - "src": "4643:8:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 3753, - "indexExpression": { - "argumentTypes": null, - "id": 3752, - "name": "converter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3740, - "src": "4652:9:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4643:19:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3754, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22338, - "src": "4665:3:6", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3755, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4665:10:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "4643:32:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3757, - "nodeType": "ExpressionStatement", - "src": "4643:32:6" - }, - { - "expression": { - "argumentTypes": null, - "id": 3758, - "name": "converter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3740, - "src": "4687:9:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - "functionReturnParameters": 3692, - "id": 3759, - "nodeType": "Return", - "src": "4680:16:6" - } - ] - }, - "documentation": "@dev creates a zero supply liquid token / empty liquidity pool and adds its converter to the registry\n\t * @param _type converter type, see ConverterBase contract main doc\n@param _name token / pool name\n@param _symbol token / pool symbol\n@param _decimals token / pool decimals\n@param _maxConversionFee maximum conversion-fee\n@param _reserveTokens reserve tokens\n@param _reserveWeights reserve weights\n\t * @return new converter", - "id": 3761, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "newConverter", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3689, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3674, - "name": "_type", - "nodeType": "VariableDeclaration", - "scope": 3761, - "src": "3823:12:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 3673, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "3823:6:6", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3676, - "name": "_name", - "nodeType": "VariableDeclaration", - "scope": 3761, - "src": "3839:12:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 3675, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "3839:6:6", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3678, - "name": "_symbol", - "nodeType": "VariableDeclaration", - "scope": 3761, - "src": "3855:14:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 3677, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "3855:6:6", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3680, - "name": "_decimals", - "nodeType": "VariableDeclaration", - "scope": 3761, - "src": "3873:15:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 3679, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "3873:5:6", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3682, - "name": "_maxConversionFee", - "nodeType": "VariableDeclaration", - "scope": 3761, - "src": "3892:24:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 3681, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "3892:6:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3685, - "name": "_reserveTokens", - "nodeType": "VariableDeclaration", - "scope": 3761, - "src": "3920:35:6", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", - "typeString": "contract IERC20Token[]" - }, - "typeName": { - "baseType": { - "contractScope": null, - "id": 3683, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "3920:11:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "id": 3684, - "length": null, - "nodeType": "ArrayTypeName", - "src": "3920:13:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_storage_ptr", - "typeString": "contract IERC20Token[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3688, - "name": "_reserveWeights", - "nodeType": "VariableDeclaration", - "scope": 3761, - "src": "3959:31:6", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint32_$dyn_memory_ptr", - "typeString": "uint32[]" - }, - "typeName": { - "baseType": { - "id": 3686, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "3959:6:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "id": 3687, - "length": null, - "nodeType": "ArrayTypeName", - "src": "3959:8:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint32_$dyn_storage_ptr", - "typeString": "uint32[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3819:174:6" - }, - "payable": false, - "returnParameters": { - "id": 3692, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3691, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3761, - "src": "4010:10:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - }, - "typeName": { - "contractScope": null, - "id": 3690, - "name": "IConverter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 11817, - "src": "4010:10:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4009:12:6" - }, - "scope": 4965, - "src": "3798:902:6", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3874, - "nodeType": "Block", - "src": "5238:731:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 3782, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3777, - "name": "deployer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3627, - "src": "5250:8:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 3779, - "indexExpression": { - "argumentTypes": null, - "id": 3778, - "name": "_converter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3771, - "src": "5259:10:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5250:20:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3780, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22338, - "src": "5274:3:6", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3781, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5274:10:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "5250:34:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6f6e6c7920746865206465706c6f796572206d61792066696e6973682074686520636f6e766572746572207365747570", - "id": 3783, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5286:50:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_1926632051886f5b909fae0d6be4ec37b8e0904a01f29ae4da4a1e48e9fa0f71", - "typeString": "literal_string \"only the deployer may finish the converter setup\"" - }, - "value": "only the deployer may finish the converter setup" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_1926632051886f5b909fae0d6be4ec37b8e0904a01f29ae4da4a1e48e9fa0f71", - "typeString": "literal_string \"only the deployer may finish the converter setup\"" - } - ], - "id": 3776, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 22341, - 22342 - ], - "referencedDeclaration": 22342, - "src": "5242:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 3784, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5242:95:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3785, - "nodeType": "ExpressionStatement", - "src": "5242:95:6" - }, - { - "assignments": [ - 3787 - ], - "declarations": [ - { - "constant": false, - "id": 3787, - "name": "length", - "nodeType": "VariableDeclaration", - "scope": 3875, - "src": "5342:14:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3786, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5342:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3790, - "initialValue": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3788, - "name": "_reserveTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3766, - "src": "5359:14:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", - "typeString": "contract IERC20Token[] memory" - } - }, - "id": 3789, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5359:21:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5342:38:6" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3795, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3792, - "name": "length", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3787, - "src": "5392:6:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3793, - "name": "_reserveWeights", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3769, - "src": "5402:15:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint32_$dyn_memory_ptr", - "typeString": "uint32[] memory" - } - }, - "id": 3794, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5402:22:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5392:32:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552525f494e56414c49445f5245534552564553", - "id": 3796, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5426:22:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_d9402087dd8193cd0dfdf2ea32d5d892390e5da6cfb95c2d9c82b55c80bcce77", - "typeString": "literal_string \"ERR_INVALID_RESERVES\"" - }, - "value": "ERR_INVALID_RESERVES" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_d9402087dd8193cd0dfdf2ea32d5d892390e5da6cfb95c2d9c82b55c80bcce77", - "typeString": "literal_string \"ERR_INVALID_RESERVES\"" - } - ], - "id": 3791, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 22341, - 22342 - ], - "referencedDeclaration": 22342, - "src": "5384:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 3797, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5384:65:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3798, - "nodeType": "ExpressionStatement", - "src": "5384:65:6" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - }, - "id": 3808, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3801, - "name": "_type", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3763, - "src": "5486:5:6", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - { - "argumentTypes": null, - "id": 3802, - "name": "_reserveTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3766, - "src": "5493:14:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", - "typeString": "contract IERC20Token[] memory" - } - }, - { - "argumentTypes": null, - "id": 3803, - "name": "_reserveWeights", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3769, - "src": "5509:15:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint32_$dyn_memory_ptr", - "typeString": "uint32[] memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", - "typeString": "contract IERC20Token[] memory" - }, - { - "typeIdentifier": "t_array$_t_uint32_$dyn_memory_ptr", - "typeString": "uint32[] memory" - } - ], - "id": 3800, - "name": "getLiquidityPoolByConfig", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4402, - "src": "5461:24:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint16_$_t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr_$_t_array$_t_uint32_$dyn_memory_ptr_$returns$_t_contract$_IConverterAnchor_$11826_$", - "typeString": "function (uint16,contract IERC20Token[] memory,uint32[] memory) view returns (contract IConverterAnchor)" - } - }, - "id": 3804, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5461:64:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 3806, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5546:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 3805, - "name": "IConverterAnchor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11826, - "src": "5529:16:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IConverterAnchor_$11826_$", - "typeString": "type(contract IConverterAnchor)" - } - }, - "id": 3807, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5529:19:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - }, - "src": "5461:87:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552525f414c52454144595f455849535453", - "id": 3809, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5550:20:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_dee3679442264532ea8006772293a0d73a73c45dea71a562b7f372acad036a5c", - "typeString": "literal_string \"ERR_ALREADY_EXISTS\"" - }, - "value": "ERR_ALREADY_EXISTS" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_dee3679442264532ea8006772293a0d73a73c45dea71a562b7f372acad036a5c", - "typeString": "literal_string \"ERR_ALREADY_EXISTS\"" - } - ], - "id": 3799, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 22341, - 22342 - ], - "referencedDeclaration": 22342, - "src": "5453:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 3810, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5453:118:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3811, - "nodeType": "ExpressionStatement", - "src": "5453:118:6" - }, - { - "assignments": [ - 3813 - ], - "declarations": [ - { - "constant": false, - "id": 3813, - "name": "anchor", - "nodeType": "VariableDeclaration", - "scope": 3875, - "src": "5576:23:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - }, - "typeName": { - "contractScope": null, - "id": 3812, - "name": "IConverterAnchor", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 11826, - "src": "5576:16:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3817, - "initialValue": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 3814, - "name": "_converter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3771, - "src": "5602:10:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - "id": 3815, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "anchor", - "nodeType": "MemberAccess", - "referencedDeclaration": 11663, - "src": "5602:17:6", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_IConverterAnchor_$11826_$", - "typeString": "function () view external returns (contract IConverterAnchor)" - } - }, - "id": 3816, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5602:19:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5576:45:6" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 3818, - "name": "anchor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3813, - "src": "5626:6:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - }, - "id": 3820, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "acceptOwnership", - "nodeType": "MemberAccess", - "referencedDeclaration": 22246, - "src": "5626:22:6", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$__$returns$__$", - "typeString": "function () external" - } - }, - "id": 3821, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5626:24:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3822, - "nodeType": "ExpressionStatement", - "src": "5626:24:6" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 3823, - "name": "_converter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3771, - "src": "5654:10:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - "id": 3825, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "acceptOwnership", - "nodeType": "MemberAccess", - "referencedDeclaration": 22246, - "src": "5654:26:6", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$__$returns$__$", - "typeString": "function () external" - } - }, - "id": 3826, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5654:28:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3827, - "nodeType": "ExpressionStatement", - "src": "5654:28:6" - }, - { - "body": { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3841, - "name": "_reserveTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3766, - "src": "5746:14:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", - "typeString": "contract IERC20Token[] memory" - } - }, - "id": 3843, - "indexExpression": { - "argumentTypes": null, - "id": 3842, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3829, - "src": "5761:1:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5746:17:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3844, - "name": "_reserveWeights", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3769, - "src": "5765:15:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint32_$dyn_memory_ptr", - "typeString": "uint32[] memory" - } - }, - "id": 3846, - "indexExpression": { - "argumentTypes": null, - "id": 3845, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3829, - "src": "5781:1:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5765:18:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - ], - "expression": { - "argumentTypes": null, - "id": 3838, - "name": "_converter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3771, - "src": "5724:10:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - "id": 3840, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "addReserve", - "nodeType": "MemberAccess", - "referencedDeclaration": 11769, - "src": "5724:21:6", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_contract$_IERC20Token_$20240_$_t_uint32_$returns$__$", - "typeString": "function (contract IERC20Token,uint32) external" - } - }, - "id": 3847, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5724:60:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3848, - "nodeType": "ExpressionStatement", - "src": "5724:60:6" - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3834, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3832, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3829, - "src": "5707:1:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "id": 3833, - "name": "length", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3787, - "src": "5711:6:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5707:10:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 3849, - "initializationExpression": { - "assignments": [ - 3829 - ], - "declarations": [ - { - "constant": false, - "id": 3829, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 3875, - "src": "5692:9:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3828, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5692:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3831, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 3830, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5704:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "5692:13:6" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 3836, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "5719:3:6", - "subExpression": { - "argumentTypes": null, - "id": 3835, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3829, - "src": "5719:1:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3837, - "nodeType": "ExpressionStatement", - "src": "5719:3:6" - }, - "nodeType": "ForStatement", - "src": "5687:97:6" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3853, - "name": "_converter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3771, - "src": "5814:10:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - ], - "expression": { - "argumentTypes": null, - "id": 3850, - "name": "anchor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3813, - "src": "5789:6:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - }, - "id": 3852, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transferOwnership", - "nodeType": "MemberAccess", - "referencedDeclaration": 22243, - "src": "5789:24:6", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$", - "typeString": "function (address) external" - } - }, - "id": 3854, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5789:36:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3855, - "nodeType": "ExpressionStatement", - "src": "5789:36:6" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 3856, - "name": "_converter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3771, - "src": "5829:10:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - "id": 3858, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "acceptAnchorOwnership", - "nodeType": "MemberAccess", - "referencedDeclaration": 11738, - "src": "5829:32:6", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$__$returns$__$", - "typeString": "function () external" - } - }, - "id": 3859, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5829:34:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3860, - "nodeType": "ExpressionStatement", - "src": "5829:34:6" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3864, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22338, - "src": "5896:3:6", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3865, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5896:10:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 3861, - "name": "_converter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3771, - "src": "5867:10:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - "id": 3863, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transferOwnership", - "nodeType": "MemberAccess", - "referencedDeclaration": 22243, - "src": "5867:28:6", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$", - "typeString": "function (address) external" - } - }, - "id": 3866, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5867:40:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3867, - "nodeType": "ExpressionStatement", - "src": "5867:40:6" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3869, - "name": "_converter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3771, - "src": "5933:10:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - ], - "id": 3868, - "name": "addConverterInternal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4594, - "src": "5912:20:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IConverter_$11817_$returns$__$", - "typeString": "function (contract IConverter)" - } - }, - "id": 3870, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5912:32:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3871, - "nodeType": "ExpressionStatement", - "src": "5912:32:6" - }, - { - "expression": { - "argumentTypes": null, - "id": 3872, - "name": "_converter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3771, - "src": "5955:10:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - "functionReturnParameters": 3775, - "id": 3873, - "nodeType": "Return", - "src": "5948:17:6" - } - ] - }, - "documentation": "@dev completes the configuration for a converter\n\t * @param _type converter type, see ConverterBase contract main doc\n@param _reserveTokens reserve tokens\n@param _reserveWeights reserve weights\n@param _converter the converter previously created through newConverter method\n\t * @return converter", - "id": 3875, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "setupConverter", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3772, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3763, - "name": "_type", - "nodeType": "VariableDeclaration", - "scope": 3875, - "src": "5095:12:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 3762, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "5095:6:6", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3766, - "name": "_reserveTokens", - "nodeType": "VariableDeclaration", - "scope": 3875, - "src": "5111:35:6", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", - "typeString": "contract IERC20Token[]" - }, - "typeName": { - "baseType": { - "contractScope": null, - "id": 3764, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "5111:11:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "id": 3765, - "length": null, - "nodeType": "ArrayTypeName", - "src": "5111:13:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_storage_ptr", - "typeString": "contract IERC20Token[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3769, - "name": "_reserveWeights", - "nodeType": "VariableDeclaration", - "scope": 3875, - "src": "5150:31:6", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint32_$dyn_memory_ptr", - "typeString": "uint32[]" - }, - "typeName": { - "baseType": { - "id": 3767, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "5150:6:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "id": 3768, - "length": null, - "nodeType": "ArrayTypeName", - "src": "5150:8:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint32_$dyn_storage_ptr", - "typeString": "uint32[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3771, - "name": "_converter", - "nodeType": "VariableDeclaration", - "scope": 3875, - "src": "5185:21:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - }, - "typeName": { - "contractScope": null, - "id": 3770, - "name": "IConverter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 11817, - "src": "5185:10:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5091:118:6" - }, - "payable": false, - "returnParameters": { - "id": 3775, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3774, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3875, - "src": "5226:10:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - }, - "typeName": { - "contractScope": null, - "id": 3773, - "name": "IConverter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 11817, - "src": "5226:10:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5225:12:6" - }, - "scope": 4965, - "src": "5068:901:6", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3893, - "nodeType": "Block", - "src": "6168:106:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3884, - "name": "_converter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3877, - "src": "6197:10:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - ], - "id": 3883, - "name": "isConverterValid", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4246, - "src": "6180:16:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_contract$_IConverter_$11817_$returns$_t_bool_$", - "typeString": "function (contract IConverter) view returns (bool)" - } - }, - "id": 3885, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6180:28:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552525f494e56414c49445f434f4e564552544552", - "id": 3886, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6210:23:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_29b07c9e09ddb3e03f778b1e41e2a2ddb5432c5f4862b4c497de9268b6aaf6bf", - "typeString": "literal_string \"ERR_INVALID_CONVERTER\"" - }, - "value": "ERR_INVALID_CONVERTER" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_29b07c9e09ddb3e03f778b1e41e2a2ddb5432c5f4862b4c497de9268b6aaf6bf", - "typeString": "literal_string \"ERR_INVALID_CONVERTER\"" - } - ], - "id": 3882, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 22341, - 22342 - ], - "referencedDeclaration": 22342, - "src": "6172:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 3887, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6172:62:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3888, - "nodeType": "ExpressionStatement", - "src": "6172:62:6" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3890, - "name": "_converter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3877, - "src": "6259:10:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - ], - "id": 3889, - "name": "addConverterInternal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4594, - "src": "6238:20:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IConverter_$11817_$returns$__$", - "typeString": "function (contract IConverter)" - } - }, - "id": 3891, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6238:32:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3892, - "nodeType": "ExpressionStatement", - "src": "6238:32:6" - } - ] - }, - "documentation": "@dev adds an existing converter to the registry\ncan only be called by the owner\n\t * @param _converter converter", - "id": 3894, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 3880, - "modifierName": { - "argumentTypes": null, - "id": 3879, - "name": "ownerOnly", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21265, - "src": "6158:9:6", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "6158:9:6" - } - ], - "name": "addConverter", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3878, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3877, - "name": "_converter", - "nodeType": "VariableDeclaration", - "scope": 3894, - "src": "6128:21:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - }, - "typeName": { - "contractScope": null, - "id": 3876, - "name": "IConverter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 11817, - "src": "6128:10:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6127:23:6" - }, - "payable": false, - "returnParameters": { - "id": 3881, - "nodeType": "ParameterList", - "parameters": [], - "src": "6168:0:6" - }, - "scope": 4965, - "src": "6106:168:6", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3916, - "nodeType": "Block", - "src": "6581:129:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 3908, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 3903, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3900, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22338, - "src": "6593:3:6", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3901, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6593:10:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 3902, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 21241 - ], - "referencedDeclaration": 21241, - "src": "6607:5:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "6593:19:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "id": 3907, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "6616:29:6", - "subExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3905, - "name": "_converter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3896, - "src": "6634:10:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - ], - "id": 3904, - "name": "isConverterValid", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4246, - "src": "6617:16:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_contract$_IConverter_$11817_$returns$_t_bool_$", - "typeString": "function (contract IConverter) view returns (bool)" - } - }, - "id": 3906, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6617:28:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "6593:52:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552525f4143434553535f44454e494544", - "id": 3909, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6647:19:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_f5894269650d3e1726ed81a4f48c5b62c7dd6fa025b89d639952a7012960d666", - "typeString": "literal_string \"ERR_ACCESS_DENIED\"" - }, - "value": "ERR_ACCESS_DENIED" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_f5894269650d3e1726ed81a4f48c5b62c7dd6fa025b89d639952a7012960d666", - "typeString": "literal_string \"ERR_ACCESS_DENIED\"" - } - ], - "id": 3899, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 22341, - 22342 - ], - "referencedDeclaration": 22342, - "src": "6585:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 3910, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6585:82:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3911, - "nodeType": "ExpressionStatement", - "src": "6585:82:6" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3913, - "name": "_converter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3896, - "src": "6695:10:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - ], - "id": 3912, - "name": "removeConverterInternal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4662, - "src": "6671:23:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IConverter_$11817_$returns$__$", - "typeString": "function (contract IConverter)" - } - }, - "id": 3914, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6671:35:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3915, - "nodeType": "ExpressionStatement", - "src": "6671:35:6" - } - ] - }, - "documentation": "@dev removes a converter from the registry\nanyone can remove an existing converter from the registry, as long as the converter is invalid\nnote that the owner can also remove valid converters\n\t * @param _converter converter", - "id": 3917, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "removeConverter", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3897, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3896, - "name": "_converter", - "nodeType": "VariableDeclaration", - "scope": 3917, - "src": "6551:21:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - }, - "typeName": { - "contractScope": null, - "id": 3895, - "name": "IConverter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 11817, - "src": "6551:10:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6550:23:6" - }, - "payable": false, - "returnParameters": { - "id": 3898, - "nodeType": "ParameterList", - "parameters": [], - "src": "6581:0:6" - }, - "scope": 4965, - "src": "6526:184:6", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3930, - "nodeType": "Block", - "src": "6878:94:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3924, - "name": "CONVERTER_REGISTRY_DATA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20773, - "src": "6922:23:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 3923, - "name": "addressOf", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20931, - "src": "6912:9:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$", - "typeString": "function (bytes32) view returns (address)" - } - }, - "id": 3925, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6912:34:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3922, - "name": "IConverterRegistryData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12127, - "src": "6889:22:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IConverterRegistryData_$12127_$", - "typeString": "type(contract IConverterRegistryData)" - } - }, - "id": 3926, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6889:58:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterRegistryData_$12127", - "typeString": "contract IConverterRegistryData" - } - }, - "id": 3927, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getSmartTokenCount", - "nodeType": "MemberAccess", - "referencedDeclaration": 12023, - "src": "6889:77:6", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", - "typeString": "function () view external returns (uint256)" - } - }, - "id": 3928, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6889:79:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3921, - "id": 3929, - "nodeType": "Return", - "src": "6882:86:6" - } - ] - }, - "documentation": "@dev returns the number of converter anchors in the registry\n\t * @return number of anchors", - "id": 3931, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getAnchorCount", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3918, - "nodeType": "ParameterList", - "parameters": [], - "src": "6845:2:6" - }, - "payable": false, - "returnParameters": { - "id": 3921, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3920, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3931, - "src": "6869:7:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3919, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6869:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6868:9:6" - }, - "scope": 4965, - "src": "6822:150:6", - "stateMutability": "view", - "superFunction": 11878, - "visibility": "public" - }, - { - "body": { - "id": 3945, - "nodeType": "Block", - "src": "7134:90:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3939, - "name": "CONVERTER_REGISTRY_DATA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20773, - "src": "7178:23:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 3938, - "name": "addressOf", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20931, - "src": "7168:9:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$", - "typeString": "function (bytes32) view returns (address)" - } - }, - "id": 3940, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7168:34:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3937, - "name": "IConverterRegistryData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12127, - "src": "7145:22:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IConverterRegistryData_$12127_$", - "typeString": "type(contract IConverterRegistryData)" - } - }, - "id": 3941, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7145:58:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterRegistryData_$12127", - "typeString": "contract IConverterRegistryData" - } - }, - "id": 3942, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getSmartTokens", - "nodeType": "MemberAccess", - "referencedDeclaration": 12029, - "src": "7145:73:6", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_array$_t_address_$dyn_memory_ptr_$", - "typeString": "function () view external returns (address[] memory)" - } - }, - "id": 3943, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7145:75:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "functionReturnParameters": 3936, - "id": 3944, - "nodeType": "Return", - "src": "7138:82:6" - } - ] - }, - "documentation": "@dev returns the list of converter anchors in the registry\n\t * @return list of anchors", - "id": 3946, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getAnchors", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3932, - "nodeType": "ParameterList", - "parameters": [], - "src": "7099:2:6" - }, - "payable": false, - "returnParameters": { - "id": 3936, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3935, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3946, - "src": "7123:9:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 3933, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7123:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3934, - "length": null, - "nodeType": "ArrayTypeName", - "src": "7123:9:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7122:11:6" - }, - "scope": 4965, - "src": "7080:144:6", - "stateMutability": "view", - "superFunction": 11884, - "visibility": "public" - }, - { - "body": { - "id": 3962, - "nodeType": "Block", - "src": "7423:95:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3959, - "name": "_index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3948, - "src": "7507:6:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3955, - "name": "CONVERTER_REGISTRY_DATA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20773, - "src": "7467:23:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 3954, - "name": "addressOf", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20931, - "src": "7457:9:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$", - "typeString": "function (bytes32) view returns (address)" - } - }, - "id": 3956, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7457:34:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3953, - "name": "IConverterRegistryData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12127, - "src": "7434:22:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IConverterRegistryData_$12127_$", - "typeString": "type(contract IConverterRegistryData)" - } - }, - "id": 3957, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7434:58:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterRegistryData_$12127", - "typeString": "contract IConverterRegistryData" - } - }, - "id": 3958, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getSmartToken", - "nodeType": "MemberAccess", - "referencedDeclaration": 12036, - "src": "7434:72:6", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view external returns (address)" - } - }, - "id": 3960, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7434:80:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 3952, - "id": 3961, - "nodeType": "Return", - "src": "7427:87:6" - } - ] - }, - "documentation": "@dev returns the converter anchor at a given index\n\t * @param _index index\n@return anchor at the given index", - "id": 3963, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getAnchor", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3949, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3948, - "name": "_index", - "nodeType": "VariableDeclaration", - "scope": 3963, - "src": "7377:14:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3947, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7377:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7376:16:6" - }, - "payable": false, - "returnParameters": { - "id": 3952, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3951, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3963, - "src": "7414:7:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3950, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7414:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7413:9:6" - }, - "scope": 4965, - "src": "7358:160:6", - "stateMutability": "view", - "superFunction": 11891, - "visibility": "public" - }, - { - "body": { - "id": 3979, - "nodeType": "Block", - "src": "7750:94:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3976, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3965, - "src": "7833:6:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3972, - "name": "CONVERTER_REGISTRY_DATA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20773, - "src": "7794:23:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 3971, - "name": "addressOf", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20931, - "src": "7784:9:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$", - "typeString": "function (bytes32) view returns (address)" - } - }, - "id": 3973, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7784:34:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3970, - "name": "IConverterRegistryData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12127, - "src": "7761:22:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IConverterRegistryData_$12127_$", - "typeString": "type(contract IConverterRegistryData)" - } - }, - "id": 3974, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7761:58:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterRegistryData_$12127", - "typeString": "contract IConverterRegistryData" - } - }, - "id": 3975, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isSmartToken", - "nodeType": "MemberAccess", - "referencedDeclaration": 12043, - "src": "7761:71:6", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view external returns (bool)" - } - }, - "id": 3977, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7761:79:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 3969, - "id": 3978, - "nodeType": "Return", - "src": "7754:86:6" - } - ] - }, - "documentation": "@dev checks whether or not a given value is a converter anchor\n\t * @param _value value\n@return true if the given value is an anchor, false if not", - "id": 3980, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "isAnchor", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3966, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3965, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 3980, - "src": "7707:14:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3964, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7707:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7706:16:6" - }, - "payable": false, - "returnParameters": { - "id": 3969, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3968, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3980, - "src": "7744:4:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3967, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "7744:4:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7743:6:6" - }, - "scope": 4965, - "src": "7689:155:6", - "stateMutability": "view", - "superFunction": 11898, - "visibility": "public" - }, - { - "body": { - "id": 3993, - "nodeType": "Block", - "src": "8025:97:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3987, - "name": "CONVERTER_REGISTRY_DATA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20773, - "src": "8069:23:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 3986, - "name": "addressOf", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20931, - "src": "8059:9:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$", - "typeString": "function (bytes32) view returns (address)" - } - }, - "id": 3988, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8059:34:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3985, - "name": "IConverterRegistryData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12127, - "src": "8036:22:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IConverterRegistryData_$12127_$", - "typeString": "type(contract IConverterRegistryData)" - } - }, - "id": 3989, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8036:58:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterRegistryData_$12127", - "typeString": "contract IConverterRegistryData" - } - }, - "id": 3990, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getLiquidityPoolCount", - "nodeType": "MemberAccess", - "referencedDeclaration": 12048, - "src": "8036:80:6", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", - "typeString": "function () view external returns (uint256)" - } - }, - "id": 3991, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8036:82:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3984, - "id": 3992, - "nodeType": "Return", - "src": "8029:89:6" - } - ] - }, - "documentation": "@dev returns the number of liquidity pools in the registry\n\t * @return number of liquidity pools", - "id": 3994, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getLiquidityPoolCount", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3981, - "nodeType": "ParameterList", - "parameters": [], - "src": "7992:2:6" - }, - "payable": false, - "returnParameters": { - "id": 3984, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3983, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3994, - "src": "8016:7:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3982, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8016:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8015:9:6" - }, - "scope": 4965, - "src": "7962:160:6", - "stateMutability": "view", - "superFunction": 11903, - "visibility": "public" - }, - { - "body": { - "id": 4008, - "nodeType": "Block", - "src": "8297:93:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4002, - "name": "CONVERTER_REGISTRY_DATA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20773, - "src": "8341:23:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 4001, - "name": "addressOf", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20931, - "src": "8331:9:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$", - "typeString": "function (bytes32) view returns (address)" - } - }, - "id": 4003, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8331:34:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 4000, - "name": "IConverterRegistryData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12127, - "src": "8308:22:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IConverterRegistryData_$12127_$", - "typeString": "type(contract IConverterRegistryData)" - } - }, - "id": 4004, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8308:58:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterRegistryData_$12127", - "typeString": "contract IConverterRegistryData" - } - }, - "id": 4005, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getLiquidityPools", - "nodeType": "MemberAccess", - "referencedDeclaration": 12054, - "src": "8308:76:6", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_array$_t_address_$dyn_memory_ptr_$", - "typeString": "function () view external returns (address[] memory)" - } - }, - "id": 4006, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8308:78:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "functionReturnParameters": 3999, - "id": 4007, - "nodeType": "Return", - "src": "8301:85:6" - } - ] - }, - "documentation": "@dev returns the list of liquidity pools in the registry\n\t * @return list of liquidity pools", - "id": 4009, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getLiquidityPools", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3995, - "nodeType": "ParameterList", - "parameters": [], - "src": "8262:2:6" - }, - "payable": false, - "returnParameters": { - "id": 3999, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3998, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 4009, - "src": "8286:9:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 3996, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8286:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3997, - "length": null, - "nodeType": "ArrayTypeName", - "src": "8286:9:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8285:11:6" - }, - "scope": 4965, - "src": "8236:154:6", - "stateMutability": "view", - "superFunction": 11909, - "visibility": "public" - }, - { - "body": { - "id": 4025, - "nodeType": "Block", - "src": "8602:98:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4022, - "name": "_index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4011, - "src": "8689:6:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4018, - "name": "CONVERTER_REGISTRY_DATA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20773, - "src": "8646:23:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 4017, - "name": "addressOf", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20931, - "src": "8636:9:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$", - "typeString": "function (bytes32) view returns (address)" - } - }, - "id": 4019, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8636:34:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 4016, - "name": "IConverterRegistryData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12127, - "src": "8613:22:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IConverterRegistryData_$12127_$", - "typeString": "type(contract IConverterRegistryData)" - } - }, - "id": 4020, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8613:58:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterRegistryData_$12127", - "typeString": "contract IConverterRegistryData" - } - }, - "id": 4021, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getLiquidityPool", - "nodeType": "MemberAccess", - "referencedDeclaration": 12061, - "src": "8613:75:6", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view external returns (address)" - } - }, - "id": 4023, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8613:83:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 4015, - "id": 4024, - "nodeType": "Return", - "src": "8606:90:6" - } - ] - }, - "documentation": "@dev returns the liquidity pool at a given index\n\t * @param _index index\n@return liquidity pool at the given index", - "id": 4026, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getLiquidityPool", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4012, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4011, - "name": "_index", - "nodeType": "VariableDeclaration", - "scope": 4026, - "src": "8556:14:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4010, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8556:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8555:16:6" - }, - "payable": false, - "returnParameters": { - "id": 4015, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4014, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 4026, - "src": "8593:7:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4013, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8593:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8592:9:6" - }, - "scope": 4965, - "src": "8530:170:6", - "stateMutability": "view", - "superFunction": 11916, - "visibility": "public" - }, - { - "body": { - "id": 4042, - "nodeType": "Block", - "src": "8944:97:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4039, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4028, - "src": "9030:6:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4035, - "name": "CONVERTER_REGISTRY_DATA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20773, - "src": "8988:23:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 4034, - "name": "addressOf", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20931, - "src": "8978:9:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$", - "typeString": "function (bytes32) view returns (address)" - } - }, - "id": 4036, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8978:34:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 4033, - "name": "IConverterRegistryData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12127, - "src": "8955:22:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IConverterRegistryData_$12127_$", - "typeString": "type(contract IConverterRegistryData)" - } - }, - "id": 4037, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8955:58:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterRegistryData_$12127", - "typeString": "contract IConverterRegistryData" - } - }, - "id": 4038, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isLiquidityPool", - "nodeType": "MemberAccess", - "referencedDeclaration": 12068, - "src": "8955:74:6", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view external returns (bool)" - } - }, - "id": 4040, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8955:82:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 4032, - "id": 4041, - "nodeType": "Return", - "src": "8948:89:6" - } - ] - }, - "documentation": "@dev checks whether or not a given value is a liquidity pool\n\t * @param _value value\n@return true if the given value is a liquidity pool, false if not", - "id": 4043, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "isLiquidityPool", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4029, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4028, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 4043, - "src": "8901:14:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4027, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8901:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8900:16:6" - }, - "payable": false, - "returnParameters": { - "id": 4032, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4031, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 4043, - "src": "8938:4:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 4030, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "8938:4:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8937:6:6" - }, - "scope": 4965, - "src": "8876:165:6", - "stateMutability": "view", - "superFunction": 11923, - "visibility": "public" - }, - { - "body": { - "id": 4056, - "nodeType": "Block", - "src": "9231:100:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4050, - "name": "CONVERTER_REGISTRY_DATA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20773, - "src": "9275:23:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 4049, - "name": "addressOf", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20931, - "src": "9265:9:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$", - "typeString": "function (bytes32) view returns (address)" - } - }, - "id": 4051, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9265:34:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 4048, - "name": "IConverterRegistryData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12127, - "src": "9242:22:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IConverterRegistryData_$12127_$", - "typeString": "type(contract IConverterRegistryData)" - } - }, - "id": 4052, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9242:58:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterRegistryData_$12127", - "typeString": "contract IConverterRegistryData" - } - }, - "id": 4053, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getConvertibleTokenCount", - "nodeType": "MemberAccess", - "referencedDeclaration": 12073, - "src": "9242:83:6", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", - "typeString": "function () view external returns (uint256)" - } - }, - "id": 4054, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9242:85:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 4047, - "id": 4055, - "nodeType": "Return", - "src": "9235:92:6" - } - ] - }, - "documentation": "@dev returns the number of convertible tokens in the registry\n\t * @return number of convertible tokens", - "id": 4057, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getConvertibleTokenCount", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4044, - "nodeType": "ParameterList", - "parameters": [], - "src": "9198:2:6" - }, - "payable": false, - "returnParameters": { - "id": 4047, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4046, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 4057, - "src": "9222:7:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4045, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9222:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9221:9:6" - }, - "scope": 4965, - "src": "9165:166:6", - "stateMutability": "view", - "superFunction": 11928, - "visibility": "public" - }, - { - "body": { - "id": 4071, - "nodeType": "Block", - "src": "9515:96:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4065, - "name": "CONVERTER_REGISTRY_DATA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20773, - "src": "9559:23:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 4064, - "name": "addressOf", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20931, - "src": "9549:9:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$", - "typeString": "function (bytes32) view returns (address)" - } - }, - "id": 4066, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9549:34:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 4063, - "name": "IConverterRegistryData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12127, - "src": "9526:22:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IConverterRegistryData_$12127_$", - "typeString": "type(contract IConverterRegistryData)" - } - }, - "id": 4067, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9526:58:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterRegistryData_$12127", - "typeString": "contract IConverterRegistryData" - } - }, - "id": 4068, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getConvertibleTokens", - "nodeType": "MemberAccess", - "referencedDeclaration": 12079, - "src": "9526:79:6", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_array$_t_address_$dyn_memory_ptr_$", - "typeString": "function () view external returns (address[] memory)" - } - }, - "id": 4069, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9526:81:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "functionReturnParameters": 4062, - "id": 4070, - "nodeType": "Return", - "src": "9519:88:6" - } - ] - }, - "documentation": "@dev returns the list of convertible tokens in the registry\n\t * @return list of convertible tokens", - "id": 4072, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getConvertibleTokens", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4058, - "nodeType": "ParameterList", - "parameters": [], - "src": "9480:2:6" - }, - "payable": false, - "returnParameters": { - "id": 4062, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4061, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 4072, - "src": "9504:9:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 4059, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "9504:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 4060, - "length": null, - "nodeType": "ArrayTypeName", - "src": "9504:9:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9503:11:6" - }, - "scope": 4965, - "src": "9451:160:6", - "stateMutability": "view", - "superFunction": 11934, - "visibility": "public" - }, - { - "body": { - "id": 4088, - "nodeType": "Block", - "src": "9832:101:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4085, - "name": "_index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4074, - "src": "9922:6:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4081, - "name": "CONVERTER_REGISTRY_DATA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20773, - "src": "9876:23:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 4080, - "name": "addressOf", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20931, - "src": "9866:9:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$", - "typeString": "function (bytes32) view returns (address)" - } - }, - "id": 4082, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9866:34:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 4079, - "name": "IConverterRegistryData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12127, - "src": "9843:22:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IConverterRegistryData_$12127_$", - "typeString": "type(contract IConverterRegistryData)" - } - }, - "id": 4083, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9843:58:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterRegistryData_$12127", - "typeString": "contract IConverterRegistryData" - } - }, - "id": 4084, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getConvertibleToken", - "nodeType": "MemberAccess", - "referencedDeclaration": 12086, - "src": "9843:78:6", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view external returns (address)" - } - }, - "id": 4086, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9843:86:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 4078, - "id": 4087, - "nodeType": "Return", - "src": "9836:93:6" - } - ] - }, - "documentation": "@dev returns the convertible token at a given index\n\t * @param _index index\n@return convertible token at the given index", - "id": 4089, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getConvertibleToken", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4075, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4074, - "name": "_index", - "nodeType": "VariableDeclaration", - "scope": 4089, - "src": "9786:14:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4073, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9786:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9785:16:6" - }, - "payable": false, - "returnParameters": { - "id": 4078, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4077, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 4089, - "src": "9823:7:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4076, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "9823:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9822:9:6" - }, - "scope": 4965, - "src": "9757:176:6", - "stateMutability": "view", - "superFunction": 11941, - "visibility": "public" - }, - { - "body": { - "id": 4105, - "nodeType": "Block", - "src": "10186:100:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4102, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4091, - "src": "10275:6:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4098, - "name": "CONVERTER_REGISTRY_DATA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20773, - "src": "10230:23:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 4097, - "name": "addressOf", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20931, - "src": "10220:9:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$", - "typeString": "function (bytes32) view returns (address)" - } - }, - "id": 4099, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10220:34:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 4096, - "name": "IConverterRegistryData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12127, - "src": "10197:22:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IConverterRegistryData_$12127_$", - "typeString": "type(contract IConverterRegistryData)" - } - }, - "id": 4100, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10197:58:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterRegistryData_$12127", - "typeString": "contract IConverterRegistryData" - } - }, - "id": 4101, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isConvertibleToken", - "nodeType": "MemberAccess", - "referencedDeclaration": 12093, - "src": "10197:77:6", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view external returns (bool)" - } - }, - "id": 4103, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10197:85:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 4095, - "id": 4104, - "nodeType": "Return", - "src": "10190:92:6" - } - ] - }, - "documentation": "@dev checks whether or not a given value is a convertible token\n\t * @param _value value\n@return true if the given value is a convertible token, false if not", - "id": 4106, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "isConvertibleToken", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4092, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4091, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 4106, - "src": "10143:14:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4090, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "10143:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10142:16:6" - }, - "payable": false, - "returnParameters": { - "id": 4095, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4094, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 4106, - "src": "10180:4:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 4093, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "10180:4:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10179:6:6" - }, - "scope": 4965, - "src": "10115:171:6", - "stateMutability": "view", - "superFunction": 11948, - "visibility": "public" - }, - { - "body": { - "id": 4122, - "nodeType": "Block", - "src": "10612:127:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4119, - "name": "_convertibleToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4108, - "src": "10717:17:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4115, - "name": "CONVERTER_REGISTRY_DATA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20773, - "src": "10656:23:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 4114, - "name": "addressOf", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20931, - "src": "10646:9:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$", - "typeString": "function (bytes32) view returns (address)" - } - }, - "id": 4116, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10646:34:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 4113, - "name": "IConverterRegistryData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12127, - "src": "10623:22:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IConverterRegistryData_$12127_$", - "typeString": "type(contract IConverterRegistryData)" - } - }, - "id": 4117, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10623:58:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterRegistryData_$12127", - "typeString": "contract IConverterRegistryData" - } - }, - "id": 4118, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getConvertibleTokenSmartTokenCount", - "nodeType": "MemberAccess", - "referencedDeclaration": 12100, - "src": "10623:93:6", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 4120, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10623:112:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 4112, - "id": 4121, - "nodeType": "Return", - "src": "10616:119:6" - } - ] - }, - "documentation": "@dev returns the number of converter anchors associated with a given convertible token\n\t * @param _convertibleToken convertible token\n@return number of anchors associated with the given convertible token", - "id": 4123, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getConvertibleTokenAnchorCount", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4109, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4108, - "name": "_convertibleToken", - "nodeType": "VariableDeclaration", - "scope": 4123, - "src": "10555:25:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4107, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "10555:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10554:27:6" - }, - "payable": false, - "returnParameters": { - "id": 4112, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4111, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 4123, - "src": "10603:7:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4110, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10603:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10602:9:6" - }, - "scope": 4965, - "src": "10515:224:6", - "stateMutability": "view", - "superFunction": 11955, - "visibility": "public" - }, - { - "body": { - "id": 4140, - "nodeType": "Block", - "src": "11059:123:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4137, - "name": "_convertibleToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4125, - "src": "11160:17:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4133, - "name": "CONVERTER_REGISTRY_DATA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20773, - "src": "11103:23:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 4132, - "name": "addressOf", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20931, - "src": "11093:9:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$", - "typeString": "function (bytes32) view returns (address)" - } - }, - "id": 4134, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11093:34:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 4131, - "name": "IConverterRegistryData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12127, - "src": "11070:22:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IConverterRegistryData_$12127_$", - "typeString": "type(contract IConverterRegistryData)" - } - }, - "id": 4135, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11070:58:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterRegistryData_$12127", - "typeString": "contract IConverterRegistryData" - } - }, - "id": 4136, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getConvertibleTokenSmartTokens", - "nodeType": "MemberAccess", - "referencedDeclaration": 12108, - "src": "11070:89:6", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_array$_t_address_$dyn_memory_ptr_$", - "typeString": "function (address) view external returns (address[] memory)" - } - }, - "id": 4138, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11070:108:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "functionReturnParameters": 4130, - "id": 4139, - "nodeType": "Return", - "src": "11063:115:6" - } - ] - }, - "documentation": "@dev returns the list of converter anchors associated with a given convertible token\n\t * @param _convertibleToken convertible token\n@return list of anchors associated with the given convertible token", - "id": 4141, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getConvertibleTokenAnchors", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4126, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4125, - "name": "_convertibleToken", - "nodeType": "VariableDeclaration", - "scope": 4141, - "src": "11000:25:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4124, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "11000:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10999:27:6" - }, - "payable": false, - "returnParameters": { - "id": 4130, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4129, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 4141, - "src": "11048:9:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 4127, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "11048:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 4128, - "length": null, - "nodeType": "ArrayTypeName", - "src": "11048:9:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11047:11:6" - }, - "scope": 4965, - "src": "10964:218:6", - "stateMutability": "view", - "superFunction": 11963, - "visibility": "public" - }, - { - "body": { - "id": 4160, - "nodeType": "Block", - "src": "11557:130:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4156, - "name": "_convertibleToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4143, - "src": "11657:17:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 4157, - "name": "_index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4145, - "src": "11676:6:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4152, - "name": "CONVERTER_REGISTRY_DATA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20773, - "src": "11601:23:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 4151, - "name": "addressOf", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20931, - "src": "11591:9:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$", - "typeString": "function (bytes32) view returns (address)" - } - }, - "id": 4153, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11591:34:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 4150, - "name": "IConverterRegistryData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12127, - "src": "11568:22:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IConverterRegistryData_$12127_$", - "typeString": "type(contract IConverterRegistryData)" - } - }, - "id": 4154, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11568:58:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterRegistryData_$12127", - "typeString": "contract IConverterRegistryData" - } - }, - "id": 4155, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getConvertibleTokenSmartToken", - "nodeType": "MemberAccess", - "referencedDeclaration": 12117, - "src": "11568:88:6", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$_t_uint256_$returns$_t_address_$", - "typeString": "function (address,uint256) view external returns (address)" - } - }, - "id": 4158, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11568:115:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 4149, - "id": 4159, - "nodeType": "Return", - "src": "11561:122:6" - } - ] - }, - "documentation": "@dev returns the converter anchor associated with a given convertible token at a given index\n\t * @param _convertibleToken convertible token\n@param _index index\n@return anchor associated with the given convertible token at the given index", - "id": 4161, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getConvertibleTokenAnchor", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4146, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4143, - "name": "_convertibleToken", - "nodeType": "VariableDeclaration", - "scope": 4161, - "src": "11484:25:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4142, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "11484:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4145, - "name": "_index", - "nodeType": "VariableDeclaration", - "scope": 4161, - "src": "11511:14:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4144, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "11511:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11483:43:6" - }, - "payable": false, - "returnParameters": { - "id": 4149, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4148, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 4161, - "src": "11548:7:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4147, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "11548:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11547:9:6" - }, - "scope": 4965, - "src": "11449:238:6", - "stateMutability": "view", - "superFunction": 11972, - "visibility": "public" - }, - { - "body": { - "id": 4180, - "nodeType": "Block", - "src": "12069:129:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4176, - "name": "_convertibleToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4163, - "src": "12168:17:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 4177, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4165, - "src": "12187:6:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4172, - "name": "CONVERTER_REGISTRY_DATA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20773, - "src": "12113:23:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 4171, - "name": "addressOf", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20931, - "src": "12103:9:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$", - "typeString": "function (bytes32) view returns (address)" - } - }, - "id": 4173, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12103:34:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 4170, - "name": "IConverterRegistryData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12127, - "src": "12080:22:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IConverterRegistryData_$12127_$", - "typeString": "type(contract IConverterRegistryData)" - } - }, - "id": 4174, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12080:58:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterRegistryData_$12127", - "typeString": "contract IConverterRegistryData" - } - }, - "id": 4175, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isConvertibleTokenSmartToken", - "nodeType": "MemberAccess", - "referencedDeclaration": 12126, - "src": "12080:87:6", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_bool_$", - "typeString": "function (address,address) view external returns (bool)" - } - }, - "id": 4178, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12080:114:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 4169, - "id": 4179, - "nodeType": "Return", - "src": "12073:121:6" - } - ] - }, - "documentation": "@dev checks whether or not a given value is a converter anchor of a given convertible token\n\t * @param _convertibleToken convertible token\n@param _value value\n@return true if the given value is an anchor of the given convertible token, false if not", - "id": 4181, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "isConvertibleTokenAnchor", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4166, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4163, - "name": "_convertibleToken", - "nodeType": "VariableDeclaration", - "scope": 4181, - "src": "11999:25:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4162, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "11999:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4165, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 4181, - "src": "12026:14:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4164, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12026:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11998:43:6" - }, - "payable": false, - "returnParameters": { - "id": 4169, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4168, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 4181, - "src": "12063:4:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 4167, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "12063:4:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "12062:6:6" - }, - "scope": 4965, - "src": "11965:233:6", - "stateMutability": "view", - "superFunction": 11981, - "visibility": "public" - }, - { - "body": { - "id": 4227, - "nodeType": "Block", - "src": "12536:194:6", - "statements": [ - { - "assignments": [ - 4193 - ], - "declarations": [ - { - "constant": false, - "id": 4193, - "name": "converters", - "nodeType": "VariableDeclaration", - "scope": 4228, - "src": "12540:27:6", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 4191, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12540:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 4192, - "length": null, - "nodeType": "ArrayTypeName", - "src": "12540:9:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 4200, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4197, - "name": "_anchors", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4184, - "src": "12584:8:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 4198, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "12584:15:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 4196, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "12570:13:6", - "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_$", - "typeString": "function (uint256) pure returns (address[] memory)" - }, - "typeName": { - "baseType": { - "id": 4194, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12574:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 4195, - "length": null, - "nodeType": "ArrayTypeName", - "src": "12574:9:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - } - }, - "id": 4199, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12570:30:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory", - "typeString": "address[] memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "12540:60:6" - }, - { - "body": { - "expression": { - "argumentTypes": null, - "id": 4222, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4212, - "name": "converters", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4193, - "src": "12651:10:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 4214, - "indexExpression": { - "argumentTypes": null, - "id": 4213, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4202, - "src": "12662:1:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "12651:13:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4216, - "name": "_anchors", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4184, - "src": "12684:8:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 4218, - "indexExpression": { - "argumentTypes": null, - "id": 4217, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4202, - "src": "12693:1:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "12684:11:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 4215, - "name": "IConverterAnchor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11826, - "src": "12667:16:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IConverterAnchor_$11826_$", - "typeString": "type(contract IConverterAnchor)" - } - }, - "id": 4219, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12667:29:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - }, - "id": 4220, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "owner", - "nodeType": "MemberAccess", - "referencedDeclaration": 22238, - "src": "12667:35:6", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", - "typeString": "function () view external returns (address)" - } - }, - "id": 4221, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12667:37:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "12651:53:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 4223, - "nodeType": "ExpressionStatement", - "src": "12651:53:6" - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4208, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 4205, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4202, - "src": "12625:1:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4206, - "name": "_anchors", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4184, - "src": "12629:8:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 4207, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "12629:15:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "12625:19:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 4224, - "initializationExpression": { - "assignments": [ - 4202 - ], - "declarations": [ - { - "constant": false, - "id": 4202, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 4228, - "src": "12610:9:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4201, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12610:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 4204, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 4203, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12622:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "12610:13:6" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 4210, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "12646:3:6", - "subExpression": { - "argumentTypes": null, - "id": 4209, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4202, - "src": "12646:1:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4211, - "nodeType": "ExpressionStatement", - "src": "12646:3:6" - }, - "nodeType": "ForStatement", - "src": "12605:99:6" - }, - { - "expression": { - "argumentTypes": null, - "id": 4225, - "name": "converters", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4193, - "src": "12716:10:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "functionReturnParameters": 4189, - "id": 4226, - "nodeType": "Return", - "src": "12709:17:6" - } - ] - }, - "documentation": "@dev returns a list of converters for a given list of anchors\nthis is a utility function that can be used to reduce the number of calls to the contract\n\t * @param _anchors list of converter anchors\n@return list of converters", - "id": 4228, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getConvertersByAnchors", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4185, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4184, - "name": "_anchors", - "nodeType": "VariableDeclaration", - "scope": 4228, - "src": "12484:18:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 4182, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12484:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 4183, - "length": null, - "nodeType": "ArrayTypeName", - "src": "12484:9:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "12483:20:6" - }, - "payable": false, - "returnParameters": { - "id": 4189, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4188, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 4228, - "src": "12525:9:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 4186, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12525:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 4187, - "length": null, - "nodeType": "ArrayTypeName", - "src": "12525:9:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "12524:11:6" - }, - "scope": 4965, - "src": "12452:278:6", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 4245, - "nodeType": "Block", - "src": "12976:105:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 4243, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 4235, - "name": "_converter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4230, - "src": "13028:10:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - "id": 4236, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "token", - "nodeType": "MemberAccess", - "referencedDeclaration": 11774, - "src": "13028:16:6", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_IConverterAnchor_$11826_$", - "typeString": "function () view external returns (contract IConverterAnchor)" - } - }, - "id": 4237, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13028:18:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - }, - "id": 4238, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "owner", - "nodeType": "MemberAccess", - "referencedDeclaration": 22238, - "src": "13028:24:6", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", - "typeString": "function () view external returns (address)" - } - }, - "id": 4239, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13028:26:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4241, - "name": "_converter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4230, - "src": "13066:10:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - ], - "id": 4240, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "13058:7:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 4242, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13058:19:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "13028:49:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 4234, - "id": 4244, - "nodeType": "Return", - "src": "13021:56:6" - } - ] - }, - "documentation": "@dev checks whether or not a given converter is valid\n\t * @param _converter converter\n@return true if the given converter is valid, false if not", - "id": 4246, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "isConverterValid", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4231, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4230, - "name": "_converter", - "nodeType": "VariableDeclaration", - "scope": 4246, - "src": "12926:21:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - }, - "typeName": { - "contractScope": null, - "id": 4229, - "name": "IConverter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 11817, - "src": "12926:10:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "12925:23:6" - }, - "payable": false, - "returnParameters": { - "id": 4234, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4233, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 4246, - "src": "12970:4:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 4232, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "12970:4:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "12969:6:6" - }, - "scope": 4965, - "src": "12900:181:6", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 4325, - "nodeType": "Block", - "src": "13415:686:6", - "statements": [ - { - "assignments": [ - 4254 - ], - "declarations": [ - { - "constant": false, - "id": 4254, - "name": "reserveTokenCount", - "nodeType": "VariableDeclaration", - "scope": 4326, - "src": "13419:25:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4253, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "13419:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 4258, - "initialValue": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 4255, - "name": "_converter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4248, - "src": "13447:10:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - "id": 4256, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "connectorTokenCount", - "nodeType": "MemberAccess", - "referencedDeclaration": 11816, - "src": "13447:30:6", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_uint16_$", - "typeString": "function () view external returns (uint16)" - } - }, - "id": 4257, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13447:32:6", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "13419:60:6" - }, - { - "assignments": [ - 4262 - ], - "declarations": [ - { - "constant": false, - "id": 4262, - "name": "reserveTokens", - "nodeType": "VariableDeclaration", - "scope": 4326, - "src": "13483:34:6", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", - "typeString": "contract IERC20Token[]" - }, - "typeName": { - "baseType": { - "contractScope": null, - "id": 4260, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "13483:11:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "id": 4261, - "length": null, - "nodeType": "ArrayTypeName", - "src": "13483:13:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_storage_ptr", - "typeString": "contract IERC20Token[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 4268, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4266, - "name": "reserveTokenCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4254, - "src": "13538:17:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 4265, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "13520:17:6", - "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_$", - "typeString": "function (uint256) pure returns (contract IERC20Token[] memory)" - }, - "typeName": { - "baseType": { - "contractScope": null, - "id": 4263, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "13524:11:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "id": 4264, - "length": null, - "nodeType": "ArrayTypeName", - "src": "13524:13:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_storage_ptr", - "typeString": "contract IERC20Token[]" - } - } - }, - "id": 4267, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13520:36:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory", - "typeString": "contract IERC20Token[] memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "13483:73:6" - }, - { - "assignments": [ - 4272 - ], - "declarations": [ - { - "constant": false, - "id": 4272, - "name": "reserveWeights", - "nodeType": "VariableDeclaration", - "scope": 4326, - "src": "13560:30:6", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint32_$dyn_memory_ptr", - "typeString": "uint32[]" - }, - "typeName": { - "baseType": { - "id": 4270, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "13560:6:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "id": 4271, - "length": null, - "nodeType": "ArrayTypeName", - "src": "13560:8:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint32_$dyn_storage_ptr", - "typeString": "uint32[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 4278, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4276, - "name": "reserveTokenCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4254, - "src": "13606:17:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 4275, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "13593:12:6", - "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint32_$dyn_memory_$", - "typeString": "function (uint256) pure returns (uint32[] memory)" - }, - "typeName": { - "baseType": { - "id": 4273, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "13597:6:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "id": 4274, - "length": null, - "nodeType": "ArrayTypeName", - "src": "13597:8:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint32_$dyn_storage_ptr", - "typeString": "uint32[]" - } - } - }, - "id": 4277, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13593:31:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint32_$dyn_memory", - "typeString": "uint32[] memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "13560:64:6" - }, - { - "body": { - "id": 4311, - "nodeType": "Block", - "src": "13729:169:6", - "statements": [ - { - "assignments": [ - 4290 - ], - "declarations": [ - { - "constant": false, - "id": 4290, - "name": "reserveToken", - "nodeType": "VariableDeclaration", - "scope": 4326, - "src": "13734:24:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - "typeName": { - "contractScope": null, - "id": 4289, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "13734:11:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 4295, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4293, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4280, - "src": "13788:1:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 4291, - "name": "_converter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4248, - "src": "13761:10:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - "id": 4292, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "connectorTokens", - "nodeType": "MemberAccess", - "referencedDeclaration": 11811, - "src": "13761:26:6", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_contract$_IERC20Token_$20240_$", - "typeString": "function (uint256) view external returns (contract IERC20Token)" - } - }, - "id": 4294, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13761:29:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "13734:56:6" - }, - { - "expression": { - "argumentTypes": null, - "id": 4300, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4296, - "name": "reserveTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4262, - "src": "13795:13:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", - "typeString": "contract IERC20Token[] memory" - } - }, - "id": 4298, - "indexExpression": { - "argumentTypes": null, - "id": 4297, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4280, - "src": "13809:1:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "13795:16:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 4299, - "name": "reserveToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4290, - "src": "13814:12:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "src": "13795:31:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "id": 4301, - "nodeType": "ExpressionStatement", - "src": "13795:31:6" - }, - { - "expression": { - "argumentTypes": null, - "id": 4309, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4302, - "name": "reserveWeights", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4272, - "src": "13831:14:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint32_$dyn_memory_ptr", - "typeString": "uint32[] memory" - } - }, - "id": 4304, - "indexExpression": { - "argumentTypes": null, - "id": 4303, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4280, - "src": "13846:1:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "13831:17:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4306, - "name": "_converter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4248, - "src": "13868:10:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - { - "argumentTypes": null, - "id": 4307, - "name": "reserveToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4290, - "src": "13880:12:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - }, - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - ], - "id": 4305, - "name": "getReserveWeight", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4834, - "src": "13851:16:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_uint32_$", - "typeString": "function (address,address) view returns (uint32)" - } - }, - "id": 4308, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13851:42:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "src": "13831:62:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "id": 4310, - "nodeType": "ExpressionStatement", - "src": "13831:62:6" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4285, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 4283, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4280, - "src": "13701:1:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "id": 4284, - "name": "reserveTokenCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4254, - "src": "13705:17:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "13701:21:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 4312, - "initializationExpression": { - "assignments": [ - 4280 - ], - "declarations": [ - { - "constant": false, - "id": 4280, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 4326, - "src": "13686:9:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4279, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "13686:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 4282, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 4281, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13698:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "13686:13:6" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 4287, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "13724:3:6", - "subExpression": { - "argumentTypes": null, - "id": 4286, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4280, - "src": "13724:1:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4288, - "nodeType": "ExpressionStatement", - "src": "13724:3:6" - }, - "nodeType": "ForStatement", - "src": "13681:217:6" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - }, - "id": 4323, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 4314, - "name": "_converter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4248, - "src": "14016:10:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - "id": 4315, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "converterType", - "nodeType": "MemberAccess", - "referencedDeclaration": 11655, - "src": "14016:24:6", - "typeDescriptions": { - "typeIdentifier": "t_function_external_pure$__$returns$_t_uint16_$", - "typeString": "function () pure external returns (uint16)" - } - }, - "id": 4316, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14016:26:6", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - { - "argumentTypes": null, - "id": 4317, - "name": "reserveTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4262, - "src": "14044:13:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", - "typeString": "contract IERC20Token[] memory" - } - }, - { - "argumentTypes": null, - "id": 4318, - "name": "reserveWeights", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4272, - "src": "14059:14:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint32_$dyn_memory_ptr", - "typeString": "uint32[] memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", - "typeString": "contract IERC20Token[] memory" - }, - { - "typeIdentifier": "t_array$_t_uint32_$dyn_memory_ptr", - "typeString": "uint32[] memory" - } - ], - "id": 4313, - "name": "getLiquidityPoolByConfig", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4402, - "src": "13991:24:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint16_$_t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr_$_t_array$_t_uint32_$dyn_memory_ptr_$returns$_t_contract$_IConverterAnchor_$11826_$", - "typeString": "function (uint16,contract IERC20Token[] memory,uint32[] memory) view returns (contract IConverterAnchor)" - } - }, - "id": 4319, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13991:83:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 4321, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14095:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 4320, - "name": "IConverterAnchor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11826, - "src": "14078:16:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IConverterAnchor_$11826_$", - "typeString": "type(contract IConverterAnchor)" - } - }, - "id": 4322, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14078:19:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - }, - "src": "13991:106:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 4252, - "id": 4324, - "nodeType": "Return", - "src": "13984:113:6" - } - ] - }, - "documentation": "@dev checks if a liquidity pool with given configuration is already registered\n\t * @param _converter converter with specific configuration\n@return if a liquidity pool with the same configuration is already registered", - "id": 4326, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "isSimilarLiquidityPoolRegistered", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4249, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4248, - "name": "_converter", - "nodeType": "VariableDeclaration", - "scope": 4326, - "src": "13365:21:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - }, - "typeName": { - "contractScope": null, - "id": 4247, - "name": "IConverter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 11817, - "src": "13365:10:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "13364:23:6" - }, - "payable": false, - "returnParameters": { - "id": 4252, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4251, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 4326, - "src": "13409:4:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 4250, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "13409:4:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "13408:6:6" - }, - "scope": 4965, - "src": "13323:778:6", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 4401, - "nodeType": "Block", - "src": "14591:717:6", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 4348, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4343, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4339, - "name": "_reserveTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4331, - "src": "14670:14:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", - "typeString": "contract IERC20Token[] memory" - } - }, - "id": 4340, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "14670:21:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4341, - "name": "_reserveWeights", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4334, - "src": "14695:15:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint32_$dyn_memory_ptr", - "typeString": "uint32[] memory" - } - }, - "id": 4342, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "14695:22:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "14670:47:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4347, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4344, - "name": "_reserveTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4331, - "src": "14721:14:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", - "typeString": "contract IERC20Token[] memory" - } - }, - "id": 4345, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "14721:21:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 4346, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14745:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "14721:25:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "14670:76:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 4396, - "nodeType": "IfStatement", - "src": "14666:608:6", - "trueBody": { - "id": 4395, - "nodeType": "Block", - "src": "14748:526:6", - "statements": [ - { - "assignments": [ - 4352 - ], - "declarations": [ - { - "constant": false, - "id": 4352, - "name": "convertibleTokenAnchors", - "nodeType": "VariableDeclaration", - "scope": 4402, - "src": "14818:40:6", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 4350, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14818:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 4351, - "length": null, - "nodeType": "ArrayTypeName", - "src": "14818:9:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 4356, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4354, - "name": "_reserveTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4331, - "src": "14890:14:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", - "typeString": "contract IERC20Token[] memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", - "typeString": "contract IERC20Token[] memory" - } - ], - "id": 4353, - "name": "getLeastFrequentTokenAnchors", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4735, - "src": "14861:28:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr_$returns$_t_array$_t_address_$dyn_memory_ptr_$", - "typeString": "function (contract IERC20Token[] memory) view returns (address[] memory)" - } - }, - "id": 4355, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14861:44:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "14818:87:6" - }, - { - "body": { - "id": 4393, - "nodeType": "Block", - "src": "15028:242:6", - "statements": [ - { - "assignments": [ - 4369 - ], - "declarations": [ - { - "constant": false, - "id": 4369, - "name": "anchor", - "nodeType": "VariableDeclaration", - "scope": 4402, - "src": "15034:23:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - }, - "typeName": { - "contractScope": null, - "id": 4368, - "name": "IConverterAnchor", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 11826, - "src": "15034:16:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 4375, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4371, - "name": "convertibleTokenAnchors", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4352, - "src": "15077:23:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 4373, - "indexExpression": { - "argumentTypes": null, - "id": 4372, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4358, - "src": "15101:1:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "15077:26:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 4370, - "name": "IConverterAnchor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11826, - "src": "15060:16:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IConverterAnchor_$11826_$", - "typeString": "type(contract IConverterAnchor)" - } - }, - "id": 4374, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15060:44:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "15034:70:6" - }, - { - "assignments": [ - 4377 - ], - "declarations": [ - { - "constant": false, - "id": 4377, - "name": "converter", - "nodeType": "VariableDeclaration", - "scope": 4402, - "src": "15110:20:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - }, - "typeName": { - "contractScope": null, - "id": 4376, - "name": "IConverter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 11817, - "src": "15110:10:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 4383, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 4379, - "name": "anchor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4369, - "src": "15144:6:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - }, - "id": 4380, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "owner", - "nodeType": "MemberAccess", - "referencedDeclaration": 22238, - "src": "15144:12:6", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", - "typeString": "function () view external returns (address)" - } - }, - "id": 4381, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15144:14:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 4378, - "name": "IConverter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11817, - "src": "15133:10:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IConverter_$11817_$", - "typeString": "type(contract IConverter)" - } - }, - "id": 4382, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15133:26:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "15110:49:6" - }, - { - "condition": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4385, - "name": "converter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4377, - "src": "15199:9:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - { - "argumentTypes": null, - "id": 4386, - "name": "_type", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4328, - "src": "15210:5:6", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - { - "argumentTypes": null, - "id": 4387, - "name": "_reserveTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4331, - "src": "15217:14:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", - "typeString": "contract IERC20Token[] memory" - } - }, - { - "argumentTypes": null, - "id": 4388, - "name": "_reserveWeights", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4334, - "src": "15233:15:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint32_$dyn_memory_ptr", - "typeString": "uint32[] memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - }, - { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", - "typeString": "contract IERC20Token[] memory" - }, - { - "typeIdentifier": "t_array$_t_uint32_$dyn_memory_ptr", - "typeString": "uint32[] memory" - } - ], - "id": 4384, - "name": "isConverterReserveConfigEqual", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4796, - "src": "15169:29:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_contract$_IConverter_$11817_$_t_uint16_$_t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr_$_t_array$_t_uint32_$dyn_memory_ptr_$returns$_t_bool_$", - "typeString": "function (contract IConverter,uint16,contract IERC20Token[] memory,uint32[] memory) view returns (bool)" - } - }, - "id": 4389, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15169:80:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 4392, - "nodeType": "IfStatement", - "src": "15165:99:6", - "trueBody": { - "expression": { - "argumentTypes": null, - "id": 4390, - "name": "anchor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4369, - "src": "15258:6:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - }, - "functionReturnParameters": 4338, - "id": 4391, - "nodeType": "Return", - "src": "15251:13:6" - } - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4364, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 4361, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4358, - "src": "14987:1:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4362, - "name": "convertibleTokenAnchors", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4352, - "src": "14991:23:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 4363, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "14991:30:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "14987:34:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 4394, - "initializationExpression": { - "assignments": [ - 4358 - ], - "declarations": [ - { - "constant": false, - "id": 4358, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 4402, - "src": "14972:9:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4357, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "14972:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 4360, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 4359, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14984:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "14972:13:6" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 4366, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "15023:3:6", - "subExpression": { - "argumentTypes": null, - "id": 4365, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4358, - "src": "15023:1:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4367, - "nodeType": "ExpressionStatement", - "src": "15023:3:6" - }, - "nodeType": "ForStatement", - "src": "14967:303:6" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 4398, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15302:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 4397, - "name": "IConverterAnchor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11826, - "src": "15285:16:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IConverterAnchor_$11826_$", - "typeString": "type(contract IConverterAnchor)" - } - }, - "id": 4399, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15285:19:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - }, - "functionReturnParameters": 4338, - "id": 4400, - "nodeType": "Return", - "src": "15278:26:6" - } - ] - }, - "documentation": "@dev searches for a liquidity pool with specific configuration\n\t * @param _type converter type, see ConverterBase contract main doc\n@param _reserveTokens reserve tokens\n@param _reserveWeights reserve weights\n@return the liquidity pool, or zero if no such liquidity pool exists", - "id": 4402, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getLiquidityPoolByConfig", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4335, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4328, - "name": "_type", - "nodeType": "VariableDeclaration", - "scope": 4402, - "src": "14462:12:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 4327, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "14462:6:6", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4331, - "name": "_reserveTokens", - "nodeType": "VariableDeclaration", - "scope": 4402, - "src": "14478:35:6", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", - "typeString": "contract IERC20Token[]" - }, - "typeName": { - "baseType": { - "contractScope": null, - "id": 4329, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "14478:11:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "id": 4330, - "length": null, - "nodeType": "ArrayTypeName", - "src": "14478:13:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_storage_ptr", - "typeString": "contract IERC20Token[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4334, - "name": "_reserveWeights", - "nodeType": "VariableDeclaration", - "scope": 4402, - "src": "14517:31:6", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint32_$dyn_memory_ptr", - "typeString": "uint32[]" - }, - "typeName": { - "baseType": { - "id": 4332, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "14517:6:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "id": 4333, - "length": null, - "nodeType": "ArrayTypeName", - "src": "14517:8:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint32_$dyn_storage_ptr", - "typeString": "uint32[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14458:93:6" - }, - "payable": false, - "returnParameters": { - "id": 4338, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4337, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 4402, - "src": "14573:16:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - }, - "typeName": { - "contractScope": null, - "id": 4336, - "name": "IConverterAnchor", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 11826, - "src": "14573:16:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14572:18:6" - }, - "scope": 4965, - "src": "14425:883:6", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 4423, - "nodeType": "Block", - "src": "15568:124:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4412, - "name": "_anchor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4406, - "src": "15609:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 4409, - "name": "_converterRegistryData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4404, - "src": "15572:22:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterRegistryData_$12127", - "typeString": "contract IConverterRegistryData" - } - }, - "id": 4411, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "addSmartToken", - "nodeType": "MemberAccess", - "referencedDeclaration": 11989, - "src": "15572:36:6", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$", - "typeString": "function (address) external" - } - }, - "id": 4413, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15572:45:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4414, - "nodeType": "ExpressionStatement", - "src": "15572:45:6" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4416, - "name": "_anchor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4406, - "src": "15647:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 4415, - "name": "ConverterAnchorAdded", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3631, - "src": "15626:20:6", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 4417, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15626:29:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4418, - "nodeType": "EmitStatement", - "src": "15621:34:6" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4420, - "name": "_anchor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4406, - "src": "15680:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 4419, - "name": "SmartTokenAdded", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3659, - "src": "15664:15:6", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 4421, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15664:24:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4422, - "nodeType": "EmitStatement", - "src": "15659:29:6" - } - ] - }, - "documentation": "@dev adds a converter anchor to the registry\n\t * @param _converterRegistryData Converter Registry Data Address\n@param _anchor converter anchor", - "id": 4424, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "addAnchor", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4407, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4404, - "name": "_converterRegistryData", - "nodeType": "VariableDeclaration", - "scope": 4424, - "src": "15495:45:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterRegistryData_$12127", - "typeString": "contract IConverterRegistryData" - }, - "typeName": { - "contractScope": null, - "id": 4403, - "name": "IConverterRegistryData", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 12127, - "src": "15495:22:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterRegistryData_$12127", - "typeString": "contract IConverterRegistryData" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4406, - "name": "_anchor", - "nodeType": "VariableDeclaration", - "scope": 4424, - "src": "15542:15:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4405, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15542:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15494:64:6" - }, - "payable": false, - "returnParameters": { - "id": 4408, - "nodeType": "ParameterList", - "parameters": [], - "src": "15568:0:6" - }, - "scope": 4965, - "src": "15476:216:6", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 4445, - "nodeType": "Block", - "src": "15960:131:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4434, - "name": "_anchor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4428, - "src": "16004:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 4431, - "name": "_converterRegistryData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4426, - "src": "15964:22:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterRegistryData_$12127", - "typeString": "contract IConverterRegistryData" - } - }, - "id": 4433, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "removeSmartToken", - "nodeType": "MemberAccess", - "referencedDeclaration": 11994, - "src": "15964:39:6", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$", - "typeString": "function (address) external" - } - }, - "id": 4435, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15964:48:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4436, - "nodeType": "ExpressionStatement", - "src": "15964:48:6" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4438, - "name": "_anchor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4428, - "src": "16044:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 4437, - "name": "ConverterAnchorRemoved", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3635, - "src": "16021:22:6", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 4439, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16021:31:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4440, - "nodeType": "EmitStatement", - "src": "16016:36:6" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4442, - "name": "_anchor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4428, - "src": "16079:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 4441, - "name": "SmartTokenRemoved", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3663, - "src": "16061:17:6", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 4443, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16061:26:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4444, - "nodeType": "EmitStatement", - "src": "16056:31:6" - } - ] - }, - "documentation": "@dev removes a converter anchor from the registry\n\t * @param _converterRegistryData Converter Registry Data Address\n@param _anchor converter anchor", - "id": 4446, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "removeAnchor", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4429, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4426, - "name": "_converterRegistryData", - "nodeType": "VariableDeclaration", - "scope": 4446, - "src": "15887:45:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterRegistryData_$12127", - "typeString": "contract IConverterRegistryData" - }, - "typeName": { - "contractScope": null, - "id": 4425, - "name": "IConverterRegistryData", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 12127, - "src": "15887:22:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterRegistryData_$12127", - "typeString": "contract IConverterRegistryData" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4428, - "name": "_anchor", - "nodeType": "VariableDeclaration", - "scope": 4446, - "src": "15934:15:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4427, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15934:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15886:64:6" - }, - "payable": false, - "returnParameters": { - "id": 4430, - "nodeType": "ParameterList", - "parameters": [], - "src": "15960:0:6" - }, - "scope": 4965, - "src": "15865:226:6", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 4463, - "nodeType": "Block", - "src": "16368:106:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4456, - "name": "_liquidityPool", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4450, - "src": "16412:14:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 4453, - "name": "_converterRegistryData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4448, - "src": "16372:22:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterRegistryData_$12127", - "typeString": "contract IConverterRegistryData" - } - }, - "id": 4455, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "addLiquidityPool", - "nodeType": "MemberAccess", - "referencedDeclaration": 11999, - "src": "16372:39:6", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$", - "typeString": "function (address) external" - } - }, - "id": 4457, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16372:55:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4458, - "nodeType": "ExpressionStatement", - "src": "16372:55:6" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4460, - "name": "_liquidityPool", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4450, - "src": "16455:14:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 4459, - "name": "LiquidityPoolAdded", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3639, - "src": "16436:18:6", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 4461, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16436:34:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4462, - "nodeType": "EmitStatement", - "src": "16431:39:6" - } - ] - }, - "documentation": "@dev adds a liquidity pool to the registry\n\t * @param _converterRegistryData Converter Registry Data Address\n@param _liquidityPool liquidity pool", - "id": 4464, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "addLiquidityPool", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4451, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4448, - "name": "_converterRegistryData", - "nodeType": "VariableDeclaration", - "scope": 4464, - "src": "16288:45:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterRegistryData_$12127", - "typeString": "contract IConverterRegistryData" - }, - "typeName": { - "contractScope": null, - "id": 4447, - "name": "IConverterRegistryData", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 12127, - "src": "16288:22:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterRegistryData_$12127", - "typeString": "contract IConverterRegistryData" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4450, - "name": "_liquidityPool", - "nodeType": "VariableDeclaration", - "scope": 4464, - "src": "16335:22:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4449, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16335:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16287:71:6" - }, - "payable": false, - "returnParameters": { - "id": 4452, - "nodeType": "ParameterList", - "parameters": [], - "src": "16368:0:6" - }, - "scope": 4965, - "src": "16262:212:6", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 4481, - "nodeType": "Block", - "src": "16759:111:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4474, - "name": "_liquidityPool", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4468, - "src": "16806:14:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 4471, - "name": "_converterRegistryData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4466, - "src": "16763:22:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterRegistryData_$12127", - "typeString": "contract IConverterRegistryData" - } - }, - "id": 4473, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "removeLiquidityPool", - "nodeType": "MemberAccess", - "referencedDeclaration": 12004, - "src": "16763:42:6", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$", - "typeString": "function (address) external" - } - }, - "id": 4475, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16763:58:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4476, - "nodeType": "ExpressionStatement", - "src": "16763:58:6" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4478, - "name": "_liquidityPool", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4468, - "src": "16851:14:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 4477, - "name": "LiquidityPoolRemoved", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3643, - "src": "16830:20:6", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 4479, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16830:36:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4480, - "nodeType": "EmitStatement", - "src": "16825:41:6" - } - ] - }, - "documentation": "@dev removes a liquidity pool from the registry\n\t * @param _converterRegistryData Converter Registry Data Address\n@param _liquidityPool liquidity pool", - "id": 4482, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "removeLiquidityPool", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4469, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4466, - "name": "_converterRegistryData", - "nodeType": "VariableDeclaration", - "scope": 4482, - "src": "16679:45:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterRegistryData_$12127", - "typeString": "contract IConverterRegistryData" - }, - "typeName": { - "contractScope": null, - "id": 4465, - "name": "IConverterRegistryData", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 12127, - "src": "16679:22:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterRegistryData_$12127", - "typeString": "contract IConverterRegistryData" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4468, - "name": "_liquidityPool", - "nodeType": "VariableDeclaration", - "scope": 4482, - "src": "16726:22:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4467, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16726:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16678:71:6" - }, - "payable": false, - "returnParameters": { - "id": 4470, - "nodeType": "ParameterList", - "parameters": [], - "src": "16759:0:6" - }, - "scope": 4965, - "src": "16650:220:6", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 4503, - "nodeType": "Block", - "src": "17251:136:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4494, - "name": "_convertibleToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4486, - "src": "17298:17:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 4495, - "name": "_anchor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4488, - "src": "17317:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 4491, - "name": "_converterRegistryData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4484, - "src": "17255:22:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterRegistryData_$12127", - "typeString": "contract IConverterRegistryData" - } - }, - "id": 4493, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "addConvertibleToken", - "nodeType": "MemberAccess", - "referencedDeclaration": 12011, - "src": "17255:42:6", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$returns$__$", - "typeString": "function (address,address) external" - } - }, - "id": 4496, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17255:70:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4497, - "nodeType": "ExpressionStatement", - "src": "17255:70:6" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4499, - "name": "_convertibleToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4486, - "src": "17356:17:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 4500, - "name": "_anchor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4488, - "src": "17375:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 4498, - "name": "ConvertibleTokenAdded", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3649, - "src": "17334:21:6", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", - "typeString": "function (address,address)" - } - }, - "id": 4501, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17334:49:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4502, - "nodeType": "EmitStatement", - "src": "17329:54:6" - } - ] - }, - "documentation": "@dev adds a convertible token to the registry\n\t * @param _converterRegistryData Converter Registry Data Address\n@param _convertibleToken convertible token\n@param _anchor associated converter anchor", - "id": 4504, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "addConvertibleToken", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4489, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4484, - "name": "_converterRegistryData", - "nodeType": "VariableDeclaration", - "scope": 4504, - "src": "17145:45:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterRegistryData_$12127", - "typeString": "contract IConverterRegistryData" - }, - "typeName": { - "contractScope": null, - "id": 4483, - "name": "IConverterRegistryData", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 12127, - "src": "17145:22:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterRegistryData_$12127", - "typeString": "contract IConverterRegistryData" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4486, - "name": "_convertibleToken", - "nodeType": "VariableDeclaration", - "scope": 4504, - "src": "17194:25:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4485, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "17194:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4488, - "name": "_anchor", - "nodeType": "VariableDeclaration", - "scope": 4504, - "src": "17223:15:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4487, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "17223:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "17141:100:6" - }, - "payable": false, - "returnParameters": { - "id": 4490, - "nodeType": "ParameterList", - "parameters": [], - "src": "17251:0:6" - }, - "scope": 4965, - "src": "17113:274:6", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 4525, - "nodeType": "Block", - "src": "17776:141:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4516, - "name": "_convertibleToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4508, - "src": "17826:17:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 4517, - "name": "_anchor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4510, - "src": "17845:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 4513, - "name": "_converterRegistryData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4506, - "src": "17780:22:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterRegistryData_$12127", - "typeString": "contract IConverterRegistryData" - } - }, - "id": 4515, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "removeConvertibleToken", - "nodeType": "MemberAccess", - "referencedDeclaration": 12018, - "src": "17780:45:6", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$returns$__$", - "typeString": "function (address,address) external" - } - }, - "id": 4518, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17780:73:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4519, - "nodeType": "ExpressionStatement", - "src": "17780:73:6" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4521, - "name": "_convertibleToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4508, - "src": "17886:17:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 4522, - "name": "_anchor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4510, - "src": "17905:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 4520, - "name": "ConvertibleTokenRemoved", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3655, - "src": "17862:23:6", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", - "typeString": "function (address,address)" - } - }, - "id": 4523, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17862:51:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4524, - "nodeType": "EmitStatement", - "src": "17857:56:6" - } - ] - }, - "documentation": "@dev removes a convertible token from the registry\n\t * @param _converterRegistryData Converter Registry Data Address\n@param _convertibleToken convertible token\n@param _anchor associated converter anchor", - "id": 4526, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "removeConvertibleToken", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4511, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4506, - "name": "_converterRegistryData", - "nodeType": "VariableDeclaration", - "scope": 4526, - "src": "17670:45:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterRegistryData_$12127", - "typeString": "contract IConverterRegistryData" - }, - "typeName": { - "contractScope": null, - "id": 4505, - "name": "IConverterRegistryData", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 12127, - "src": "17670:22:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterRegistryData_$12127", - "typeString": "contract IConverterRegistryData" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4508, - "name": "_convertibleToken", - "nodeType": "VariableDeclaration", - "scope": 4526, - "src": "17719:25:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4507, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "17719:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4510, - "name": "_anchor", - "nodeType": "VariableDeclaration", - "scope": 4526, - "src": "17748:15:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4509, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "17748:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "17666:100:6" - }, - "payable": false, - "returnParameters": { - "id": 4512, - "nodeType": "ParameterList", - "parameters": [], - "src": "17776:0:6" - }, - "scope": 4965, - "src": "17635:282:6", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 4593, - "nodeType": "Block", - "src": "17981:619:6", - "statements": [ - { - "assignments": [ - 4532 - ], - "declarations": [ - { - "constant": false, - "id": 4532, - "name": "converterRegistryData", - "nodeType": "VariableDeclaration", - "scope": 4594, - "src": "17985:44:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterRegistryData_$12127", - "typeString": "contract IConverterRegistryData" - }, - "typeName": { - "contractScope": null, - "id": 4531, - "name": "IConverterRegistryData", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 12127, - "src": "17985:22:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterRegistryData_$12127", - "typeString": "contract IConverterRegistryData" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 4538, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4535, - "name": "CONVERTER_REGISTRY_DATA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20773, - "src": "18065:23:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 4534, - "name": "addressOf", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20931, - "src": "18055:9:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$", - "typeString": "function (bytes32) view returns (address)" - } - }, - "id": 4536, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18055:34:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 4533, - "name": "IConverterRegistryData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12127, - "src": "18032:22:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IConverterRegistryData_$12127_$", - "typeString": "type(contract IConverterRegistryData)" - } - }, - "id": 4537, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18032:58:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterRegistryData_$12127", - "typeString": "contract IConverterRegistryData" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "17985:105:6" - }, - { - "assignments": [ - 4540 - ], - "declarations": [ - { - "constant": false, - "id": 4540, - "name": "anchor", - "nodeType": "VariableDeclaration", - "scope": 4594, - "src": "18094:23:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - }, - "typeName": { - "contractScope": null, - "id": 4539, - "name": "IConverterAnchor", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 11826, - "src": "18094:16:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 4546, - "initialValue": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4542, - "name": "_converter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4528, - "src": "18131:10:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - ], - "id": 4541, - "name": "IConverter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11817, - "src": "18120:10:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IConverter_$11817_$", - "typeString": "type(contract IConverter)" - } - }, - "id": 4543, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18120:22:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - "id": 4544, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "token", - "nodeType": "MemberAccess", - "referencedDeclaration": 11774, - "src": "18120:28:6", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_IConverterAnchor_$11826_$", - "typeString": "function () view external returns (contract IConverterAnchor)" - } - }, - "id": 4545, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18120:30:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "18094:56:6" - }, - { - "assignments": [ - 4548 - ], - "declarations": [ - { - "constant": false, - "id": 4548, - "name": "reserveTokenCount", - "nodeType": "VariableDeclaration", - "scope": 4594, - "src": "18154:25:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4547, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "18154:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 4552, - "initialValue": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 4549, - "name": "_converter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4528, - "src": "18182:10:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - "id": 4550, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "connectorTokenCount", - "nodeType": "MemberAccess", - "referencedDeclaration": 11816, - "src": "18182:30:6", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_uint16_$", - "typeString": "function () view external returns (uint16)" - } - }, - "id": 4551, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18182:32:6", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "18154:60:6" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4554, - "name": "converterRegistryData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4532, - "src": "18259:21:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterRegistryData_$12127", - "typeString": "contract IConverterRegistryData" - } - }, - { - "argumentTypes": null, - "id": 4555, - "name": "anchor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4540, - "src": "18282:6:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IConverterRegistryData_$12127", - "typeString": "contract IConverterRegistryData" - }, - { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - ], - "id": 4553, - "name": "addAnchor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4424, - "src": "18249:9:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IConverterRegistryData_$12127_$_t_address_$returns$__$", - "typeString": "function (contract IConverterRegistryData,address)" - } - }, - "id": 4556, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18249:40:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4557, - "nodeType": "ExpressionStatement", - "src": "18249:40:6" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4560, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 4558, - "name": "reserveTokenCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4548, - "src": "18297:17:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 4559, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "18317:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "18297:21:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4567, - "name": "converterRegistryData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4532, - "src": "18396:21:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterRegistryData_$12127", - "typeString": "contract IConverterRegistryData" - } - }, - { - "argumentTypes": null, - "id": 4568, - "name": "anchor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4540, - "src": "18419:6:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - }, - { - "argumentTypes": null, - "id": 4569, - "name": "anchor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4540, - "src": "18427:6:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IConverterRegistryData_$12127", - "typeString": "contract IConverterRegistryData" - }, - { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - }, - { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - ], - "id": 4566, - "name": "addConvertibleToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4504, - "src": "18376:19:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IConverterRegistryData_$12127_$_t_address_$_t_address_$returns$__$", - "typeString": "function (contract IConverterRegistryData,address,address)" - } - }, - "id": 4570, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18376:58:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4571, - "nodeType": "ExpressionStatement", - "src": "18376:58:6" - }, - "id": 4572, - "nodeType": "IfStatement", - "src": "18293:141:6", - "trueBody": { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4562, - "name": "converterRegistryData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4532, - "src": "18337:21:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterRegistryData_$12127", - "typeString": "contract IConverterRegistryData" - } - }, - { - "argumentTypes": null, - "id": 4563, - "name": "anchor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4540, - "src": "18360:6:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IConverterRegistryData_$12127", - "typeString": "contract IConverterRegistryData" - }, - { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - ], - "id": 4561, - "name": "addLiquidityPool", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4464, - "src": "18320:16:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IConverterRegistryData_$12127_$_t_address_$returns$__$", - "typeString": "function (contract IConverterRegistryData,address)" - } - }, - "id": 4564, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18320:47:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4565, - "nodeType": "ExpressionStatement", - "src": "18320:47:6" - } - }, - { - "body": { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4584, - "name": "converterRegistryData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4532, - "src": "18535:21:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterRegistryData_$12127", - "typeString": "contract IConverterRegistryData" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4587, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4574, - "src": "18585:1:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 4585, - "name": "_converter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4528, - "src": "18558:10:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - "id": 4586, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "connectorTokens", - "nodeType": "MemberAccess", - "referencedDeclaration": 11811, - "src": "18558:26:6", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_contract$_IERC20Token_$20240_$", - "typeString": "function (uint256) view external returns (contract IERC20Token)" - } - }, - "id": 4588, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18558:29:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - { - "argumentTypes": null, - "id": 4589, - "name": "anchor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4540, - "src": "18589:6:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IConverterRegistryData_$12127", - "typeString": "contract IConverterRegistryData" - }, - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - ], - "id": 4583, - "name": "addConvertibleToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4504, - "src": "18515:19:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IConverterRegistryData_$12127_$_t_address_$_t_address_$returns$__$", - "typeString": "function (contract IConverterRegistryData,address,address)" - } - }, - "id": 4590, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18515:81:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4591, - "nodeType": "ExpressionStatement", - "src": "18515:81:6" - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4579, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 4577, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4574, - "src": "18487:1:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "id": 4578, - "name": "reserveTokenCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4548, - "src": "18491:17:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "18487:21:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 4592, - "initializationExpression": { - "assignments": [ - 4574 - ], - "declarations": [ - { - "constant": false, - "id": 4574, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 4594, - "src": "18472:9:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4573, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "18472:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 4576, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 4575, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "18484:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "18472:13:6" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 4581, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "18510:3:6", - "subExpression": { - "argumentTypes": null, - "id": 4580, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4574, - "src": "18510:1:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4582, - "nodeType": "ExpressionStatement", - "src": "18510:3:6" - }, - "nodeType": "ForStatement", - "src": "18467:129:6" - } - ] - }, - "documentation": null, - "id": 4594, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "addConverterInternal", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4529, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4528, - "name": "_converter", - "nodeType": "VariableDeclaration", - "scope": 4594, - "src": "17950:21:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - }, - "typeName": { - "contractScope": null, - "id": 4527, - "name": "IConverter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 11817, - "src": "17950:10:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "17949:23:6" - }, - "payable": false, - "returnParameters": { - "id": 4530, - "nodeType": "ParameterList", - "parameters": [], - "src": "17981:0:6" - }, - "scope": 4965, - "src": "17920:680:6", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 4661, - "nodeType": "Block", - "src": "18667:637:6", - "statements": [ - { - "assignments": [ - 4600 - ], - "declarations": [ - { - "constant": false, - "id": 4600, - "name": "converterRegistryData", - "nodeType": "VariableDeclaration", - "scope": 4662, - "src": "18671:44:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterRegistryData_$12127", - "typeString": "contract IConverterRegistryData" - }, - "typeName": { - "contractScope": null, - "id": 4599, - "name": "IConverterRegistryData", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 12127, - "src": "18671:22:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterRegistryData_$12127", - "typeString": "contract IConverterRegistryData" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 4606, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4603, - "name": "CONVERTER_REGISTRY_DATA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20773, - "src": "18751:23:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 4602, - "name": "addressOf", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20931, - "src": "18741:9:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$", - "typeString": "function (bytes32) view returns (address)" - } - }, - "id": 4604, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18741:34:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 4601, - "name": "IConverterRegistryData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12127, - "src": "18718:22:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IConverterRegistryData_$12127_$", - "typeString": "type(contract IConverterRegistryData)" - } - }, - "id": 4605, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18718:58:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterRegistryData_$12127", - "typeString": "contract IConverterRegistryData" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "18671:105:6" - }, - { - "assignments": [ - 4608 - ], - "declarations": [ - { - "constant": false, - "id": 4608, - "name": "anchor", - "nodeType": "VariableDeclaration", - "scope": 4662, - "src": "18780:23:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - }, - "typeName": { - "contractScope": null, - "id": 4607, - "name": "IConverterAnchor", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 11826, - "src": "18780:16:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 4614, - "initialValue": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4610, - "name": "_converter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4596, - "src": "18817:10:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - ], - "id": 4609, - "name": "IConverter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11817, - "src": "18806:10:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IConverter_$11817_$", - "typeString": "type(contract IConverter)" - } - }, - "id": 4611, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18806:22:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - "id": 4612, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "token", - "nodeType": "MemberAccess", - "referencedDeclaration": 11774, - "src": "18806:28:6", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_IConverterAnchor_$11826_$", - "typeString": "function () view external returns (contract IConverterAnchor)" - } - }, - "id": 4613, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18806:30:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "18780:56:6" - }, - { - "assignments": [ - 4616 - ], - "declarations": [ - { - "constant": false, - "id": 4616, - "name": "reserveTokenCount", - "nodeType": "VariableDeclaration", - "scope": 4662, - "src": "18840:25:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4615, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "18840:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 4620, - "initialValue": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 4617, - "name": "_converter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4596, - "src": "18868:10:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - "id": 4618, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "connectorTokenCount", - "nodeType": "MemberAccess", - "referencedDeclaration": 11816, - "src": "18868:30:6", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_uint16_$", - "typeString": "function () view external returns (uint16)" - } - }, - "id": 4619, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18868:32:6", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "18840:60:6" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4622, - "name": "converterRegistryData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4600, - "src": "18951:21:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterRegistryData_$12127", - "typeString": "contract IConverterRegistryData" - } - }, - { - "argumentTypes": null, - "id": 4623, - "name": "anchor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4608, - "src": "18974:6:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IConverterRegistryData_$12127", - "typeString": "contract IConverterRegistryData" - }, - { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - ], - "id": 4621, - "name": "removeAnchor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4446, - "src": "18938:12:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IConverterRegistryData_$12127_$_t_address_$returns$__$", - "typeString": "function (contract IConverterRegistryData,address)" - } - }, - "id": 4624, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18938:43:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4625, - "nodeType": "ExpressionStatement", - "src": "18938:43:6" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4628, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 4626, - "name": "reserveTokenCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4616, - "src": "18989:17:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 4627, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19009:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "18989:21:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4635, - "name": "converterRegistryData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4600, - "src": "19094:21:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterRegistryData_$12127", - "typeString": "contract IConverterRegistryData" - } - }, - { - "argumentTypes": null, - "id": 4636, - "name": "anchor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4608, - "src": "19117:6:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - }, - { - "argumentTypes": null, - "id": 4637, - "name": "anchor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4608, - "src": "19125:6:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IConverterRegistryData_$12127", - "typeString": "contract IConverterRegistryData" - }, - { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - }, - { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - ], - "id": 4634, - "name": "removeConvertibleToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4526, - "src": "19071:22:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IConverterRegistryData_$12127_$_t_address_$_t_address_$returns$__$", - "typeString": "function (contract IConverterRegistryData,address,address)" - } - }, - "id": 4638, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19071:61:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4639, - "nodeType": "ExpressionStatement", - "src": "19071:61:6" - }, - "id": 4640, - "nodeType": "IfStatement", - "src": "18985:147:6", - "trueBody": { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4630, - "name": "converterRegistryData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4600, - "src": "19032:21:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterRegistryData_$12127", - "typeString": "contract IConverterRegistryData" - } - }, - { - "argumentTypes": null, - "id": 4631, - "name": "anchor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4608, - "src": "19055:6:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IConverterRegistryData_$12127", - "typeString": "contract IConverterRegistryData" - }, - { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - ], - "id": 4629, - "name": "removeLiquidityPool", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4482, - "src": "19012:19:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IConverterRegistryData_$12127_$_t_address_$returns$__$", - "typeString": "function (contract IConverterRegistryData,address)" - } - }, - "id": 4632, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19012:50:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4633, - "nodeType": "ExpressionStatement", - "src": "19012:50:6" - } - }, - { - "body": { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4652, - "name": "converterRegistryData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4600, - "src": "19239:21:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterRegistryData_$12127", - "typeString": "contract IConverterRegistryData" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4655, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4642, - "src": "19289:1:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 4653, - "name": "_converter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4596, - "src": "19262:10:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - "id": 4654, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "connectorTokens", - "nodeType": "MemberAccess", - "referencedDeclaration": 11811, - "src": "19262:26:6", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_contract$_IERC20Token_$20240_$", - "typeString": "function (uint256) view external returns (contract IERC20Token)" - } - }, - "id": 4656, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19262:29:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - { - "argumentTypes": null, - "id": 4657, - "name": "anchor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4608, - "src": "19293:6:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IConverterRegistryData_$12127", - "typeString": "contract IConverterRegistryData" - }, - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - ], - "id": 4651, - "name": "removeConvertibleToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4526, - "src": "19216:22:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IConverterRegistryData_$12127_$_t_address_$_t_address_$returns$__$", - "typeString": "function (contract IConverterRegistryData,address,address)" - } - }, - "id": 4658, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19216:84:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4659, - "nodeType": "ExpressionStatement", - "src": "19216:84:6" - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4647, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 4645, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4642, - "src": "19188:1:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "id": 4646, - "name": "reserveTokenCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4616, - "src": "19192:17:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "19188:21:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 4660, - "initializationExpression": { - "assignments": [ - 4642 - ], - "declarations": [ - { - "constant": false, - "id": 4642, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 4662, - "src": "19173:9:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4641, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "19173:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 4644, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 4643, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19185:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "19173:13:6" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 4649, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "19211:3:6", - "subExpression": { - "argumentTypes": null, - "id": 4648, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4642, - "src": "19211:1:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4650, - "nodeType": "ExpressionStatement", - "src": "19211:3:6" - }, - "nodeType": "ForStatement", - "src": "19168:132:6" - } - ] - }, - "documentation": null, - "id": 4662, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "removeConverterInternal", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4597, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4596, - "name": "_converter", - "nodeType": "VariableDeclaration", - "scope": 4662, - "src": "18636:21:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - }, - "typeName": { - "contractScope": null, - "id": 4595, - "name": "IConverter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 11817, - "src": "18636:10:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "18635:23:6" - }, - "payable": false, - "returnParameters": { - "id": 4598, - "nodeType": "ParameterList", - "parameters": [], - "src": "18667:0:6" - }, - "scope": 4965, - "src": "18603:701:6", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 4734, - "nodeType": "Block", - "src": "19422:708:6", - "statements": [ - { - "assignments": [ - 4672 - ], - "declarations": [ - { - "constant": false, - "id": 4672, - "name": "converterRegistryData", - "nodeType": "VariableDeclaration", - "scope": 4735, - "src": "19426:44:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterRegistryData_$12127", - "typeString": "contract IConverterRegistryData" - }, - "typeName": { - "contractScope": null, - "id": 4671, - "name": "IConverterRegistryData", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 12127, - "src": "19426:22:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterRegistryData_$12127", - "typeString": "contract IConverterRegistryData" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 4678, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4675, - "name": "CONVERTER_REGISTRY_DATA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20773, - "src": "19506:23:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 4674, - "name": "addressOf", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20931, - "src": "19496:9:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$", - "typeString": "function (bytes32) view returns (address)" - } - }, - "id": 4676, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19496:34:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 4673, - "name": "IConverterRegistryData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12127, - "src": "19473:22:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IConverterRegistryData_$12127_$", - "typeString": "type(contract IConverterRegistryData)" - } - }, - "id": 4677, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19473:58:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterRegistryData_$12127", - "typeString": "contract IConverterRegistryData" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "19426:105:6" - }, - { - "assignments": [ - 4680 - ], - "declarations": [ - { - "constant": false, - "id": 4680, - "name": "minAnchorCount", - "nodeType": "VariableDeclaration", - "scope": 4735, - "src": "19535:22:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4679, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "19535:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 4687, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4683, - "name": "_reserveTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4665, - "src": "19617:14:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", - "typeString": "contract IERC20Token[] memory" - } - }, - "id": 4685, - "indexExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 4684, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19632:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "19617:17:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - ], - "expression": { - "argumentTypes": null, - "id": 4681, - "name": "converterRegistryData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4672, - "src": "19560:21:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterRegistryData_$12127", - "typeString": "contract IConverterRegistryData" - } - }, - "id": 4682, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getConvertibleTokenSmartTokenCount", - "nodeType": "MemberAccess", - "referencedDeclaration": 12100, - "src": "19560:56:6", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 4686, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19560:75:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "19535:100:6" - }, - { - "assignments": [ - 4689 - ], - "declarations": [ - { - "constant": false, - "id": 4689, - "name": "index", - "nodeType": "VariableDeclaration", - "scope": 4735, - "src": "19639:13:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4688, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "19639:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 4691, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 4690, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19655:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "19639:17:6" - }, - { - "body": { - "id": 4725, - "nodeType": "Block", - "src": "19792:248:6", - "statements": [ - { - "assignments": [ - 4704 - ], - "declarations": [ - { - "constant": false, - "id": 4704, - "name": "convertibleTokenAnchorCount", - "nodeType": "VariableDeclaration", - "scope": 4735, - "src": "19797:35:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4703, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "19797:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 4711, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4707, - "name": "_reserveTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4665, - "src": "19892:14:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", - "typeString": "contract IERC20Token[] memory" - } - }, - "id": 4709, - "indexExpression": { - "argumentTypes": null, - "id": 4708, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4693, - "src": "19907:1:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "19892:17:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - ], - "expression": { - "argumentTypes": null, - "id": 4705, - "name": "converterRegistryData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4672, - "src": "19835:21:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterRegistryData_$12127", - "typeString": "contract IConverterRegistryData" - } - }, - "id": 4706, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getConvertibleTokenSmartTokenCount", - "nodeType": "MemberAccess", - "referencedDeclaration": 12100, - "src": "19835:56:6", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 4710, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19835:75:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "19797:113:6" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4714, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 4712, - "name": "minAnchorCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4680, - "src": "19919:14:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "id": 4713, - "name": "convertibleTokenAnchorCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4704, - "src": "19936:27:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "19919:44:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 4724, - "nodeType": "IfStatement", - "src": "19915:121:6", - "trueBody": { - "id": 4723, - "nodeType": "Block", - "src": "19965:71:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 4717, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 4715, - "name": "minAnchorCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4680, - "src": "19971:14:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 4716, - "name": "convertibleTokenAnchorCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4704, - "src": "19988:27:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "19971:44:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4718, - "nodeType": "ExpressionStatement", - "src": "19971:44:6" - }, - { - "expression": { - "argumentTypes": null, - "id": 4721, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 4719, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4689, - "src": "20021:5:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 4720, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4693, - "src": "20029:1:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "20021:9:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4722, - "nodeType": "ExpressionStatement", - "src": "20021:9:6" - } - ] - } - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4699, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 4696, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4693, - "src": "19760:1:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4697, - "name": "_reserveTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4665, - "src": "19764:14:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", - "typeString": "contract IERC20Token[] memory" - } - }, - "id": 4698, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "19764:21:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "19760:25:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 4726, - "initializationExpression": { - "assignments": [ - 4693 - ], - "declarations": [ - { - "constant": false, - "id": 4693, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 4735, - "src": "19745:9:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4692, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "19745:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 4695, - "initialValue": { - "argumentTypes": null, - "hexValue": "31", - "id": 4694, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19757:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "nodeType": "VariableDeclarationStatement", - "src": "19745:13:6" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 4701, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "19787:3:6", - "subExpression": { - "argumentTypes": null, - "id": 4700, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4693, - "src": "19787:1:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4702, - "nodeType": "ExpressionStatement", - "src": "19787:3:6" - }, - "nodeType": "ForStatement", - "src": "19740:300:6" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4729, - "name": "_reserveTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4665, - "src": "20104:14:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", - "typeString": "contract IERC20Token[] memory" - } - }, - "id": 4731, - "indexExpression": { - "argumentTypes": null, - "id": 4730, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4689, - "src": "20119:5:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "20104:21:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - ], - "expression": { - "argumentTypes": null, - "id": 4727, - "name": "converterRegistryData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4672, - "src": "20051:21:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterRegistryData_$12127", - "typeString": "contract IConverterRegistryData" - } - }, - "id": 4728, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getConvertibleTokenSmartTokens", - "nodeType": "MemberAccess", - "referencedDeclaration": 12108, - "src": "20051:52:6", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_array$_t_address_$dyn_memory_ptr_$", - "typeString": "function (address) view external returns (address[] memory)" - } - }, - "id": 4732, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20051:75:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "functionReturnParameters": 4670, - "id": 4733, - "nodeType": "Return", - "src": "20044:82:6" - } - ] - }, - "documentation": null, - "id": 4735, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getLeastFrequentTokenAnchors", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4666, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4665, - "name": "_reserveTokens", - "nodeType": "VariableDeclaration", - "scope": 4735, - "src": "19345:35:6", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", - "typeString": "contract IERC20Token[]" - }, - "typeName": { - "baseType": { - "contractScope": null, - "id": 4663, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "19345:11:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "id": 4664, - "length": null, - "nodeType": "ArrayTypeName", - "src": "19345:13:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_storage_ptr", - "typeString": "contract IERC20Token[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "19344:37:6" - }, - "payable": false, - "returnParameters": { - "id": 4670, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4669, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 4735, - "src": "19404:9:6", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 4667, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "19404:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 4668, - "length": null, - "nodeType": "ArrayTypeName", - "src": "19404:9:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "19403:18:6" - }, - "scope": 4965, - "src": "19307:823:6", - "stateMutability": "view", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 4795, - "nodeType": "Block", - "src": "20318:310:6", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "id": 4754, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 4750, - "name": "_type", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4739, - "src": "20326:5:6", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 4751, - "name": "_converter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4737, - "src": "20335:10:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - "id": 4752, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "converterType", - "nodeType": "MemberAccess", - "referencedDeclaration": 11655, - "src": "20335:24:6", - "typeDescriptions": { - "typeIdentifier": "t_function_external_pure$__$returns$_t_uint16_$", - "typeString": "function () pure external returns (uint16)" - } - }, - "id": 4753, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20335:26:6", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "src": "20326:35:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 4757, - "nodeType": "IfStatement", - "src": "20322:53:6", - "trueBody": { - "expression": { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 4755, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20370:5:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "functionReturnParameters": 4749, - "id": 4756, - "nodeType": "Return", - "src": "20363:12:6" - } - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4763, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4758, - "name": "_reserveTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4742, - "src": "20384:14:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", - "typeString": "contract IERC20Token[] memory" - } - }, - "id": 4759, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "20384:21:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 4760, - "name": "_converter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4737, - "src": "20409:10:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - "id": 4761, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "connectorTokenCount", - "nodeType": "MemberAccess", - "referencedDeclaration": 11816, - "src": "20409:30:6", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_uint16_$", - "typeString": "function () view external returns (uint16)" - } - }, - "id": 4762, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20409:32:6", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "src": "20384:57:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 4766, - "nodeType": "IfStatement", - "src": "20380:75:6", - "trueBody": { - "expression": { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 4764, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20450:5:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "functionReturnParameters": 4749, - "id": 4765, - "nodeType": "Return", - "src": "20443:12:6" - } - }, - { - "body": { - "id": 4791, - "nodeType": "Block", - "src": "20512:97:6", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "id": 4787, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4778, - "name": "_reserveWeights", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4745, - "src": "20521:15:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint32_$dyn_memory_ptr", - "typeString": "uint32[] memory" - } - }, - "id": 4780, - "indexExpression": { - "argumentTypes": null, - "id": 4779, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4768, - "src": "20537:1:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "20521:18:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4782, - "name": "_converter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4737, - "src": "20560:10:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4783, - "name": "_reserveTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4742, - "src": "20572:14:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", - "typeString": "contract IERC20Token[] memory" - } - }, - "id": 4785, - "indexExpression": { - "argumentTypes": null, - "id": 4784, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4768, - "src": "20587:1:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "20572:17:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - }, - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - ], - "id": 4781, - "name": "getReserveWeight", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4834, - "src": "20543:16:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_uint32_$", - "typeString": "function (address,address) view returns (uint32)" - } - }, - "id": 4786, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20543:47:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "src": "20521:69:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 4790, - "nodeType": "IfStatement", - "src": "20517:87:6", - "trueBody": { - "expression": { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 4788, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20599:5:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "functionReturnParameters": 4749, - "id": 4789, - "nodeType": "Return", - "src": "20592:12:6" - } - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4774, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 4771, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4768, - "src": "20480:1:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4772, - "name": "_reserveTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4742, - "src": "20484:14:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", - "typeString": "contract IERC20Token[] memory" - } - }, - "id": 4773, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "20484:21:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "20480:25:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 4792, - "initializationExpression": { - "assignments": [ - 4768 - ], - "declarations": [ - { - "constant": false, - "id": 4768, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 4796, - "src": "20465:9:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4767, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "20465:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 4770, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 4769, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20477:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "20465:13:6" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 4776, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "20507:3:6", - "subExpression": { - "argumentTypes": null, - "id": 4775, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4768, - "src": "20507:1:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4777, - "nodeType": "ExpressionStatement", - "src": "20507:3:6" - }, - "nodeType": "ForStatement", - "src": "20460:149:6" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 4793, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20620:4:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 4749, - "id": 4794, - "nodeType": "Return", - "src": "20613:11:6" - } - ] - }, - "documentation": null, - "id": 4796, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "isConverterReserveConfigEqual", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4746, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4737, - "name": "_converter", - "nodeType": "VariableDeclaration", - "scope": 4796, - "src": "20175:21:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - }, - "typeName": { - "contractScope": null, - "id": 4736, - "name": "IConverter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 11817, - "src": "20175:10:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4739, - "name": "_type", - "nodeType": "VariableDeclaration", - "scope": 4796, - "src": "20200:12:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 4738, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "20200:6:6", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4742, - "name": "_reserveTokens", - "nodeType": "VariableDeclaration", - "scope": 4796, - "src": "20216:35:6", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", - "typeString": "contract IERC20Token[]" - }, - "typeName": { - "baseType": { - "contractScope": null, - "id": 4740, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "20216:11:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "id": 4741, - "length": null, - "nodeType": "ArrayTypeName", - "src": "20216:13:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_storage_ptr", - "typeString": "contract IERC20Token[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4745, - "name": "_reserveWeights", - "nodeType": "VariableDeclaration", - "scope": 4796, - "src": "20255:31:6", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint32_$dyn_memory_ptr", - "typeString": "uint32[]" - }, - "typeName": { - "baseType": { - "id": 4743, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "20255:6:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "id": 4744, - "length": null, - "nodeType": "ArrayTypeName", - "src": "20255:8:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint32_$dyn_storage_ptr", - "typeString": "uint32[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "20171:118:6" - }, - "payable": false, - "returnParameters": { - "id": 4749, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4748, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 4796, - "src": "20312:4:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 4747, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "20312:4:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "20311:6:6" - }, - "scope": 4965, - "src": "20133:495:6", - "stateMutability": "view", - "superFunction": null, - "visibility": "private" - }, - { - "constant": true, - "id": 4803, - "name": "CONNECTORS_FUNC_SELECTOR", - "nodeType": "VariableDeclaration", - "scope": 4965, - "src": "20631:91:6", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 4797, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "20631:6:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "636f6e6e6563746f7273286164647265737329", - "id": 4800, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20699:21:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_0e53aae97787976ff3e17f0e93a0423377140d489f6c292432ee1e420ce38fa9", - "typeString": "literal_string \"connectors(address)\"" - }, - "value": "connectors(address)" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_stringliteral_0e53aae97787976ff3e17f0e93a0423377140d489f6c292432ee1e420ce38fa9", - "typeString": "literal_string \"connectors(address)\"" - } - ], - "id": 4799, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22332, - "src": "20689:9:6", - "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" - } - }, - "id": 4801, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20689:32:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 4798, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "20682:6:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes4_$", - "typeString": "type(bytes4)" - }, - "typeName": "bytes4" - }, - "id": 4802, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20682:40:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "visibility": "private" - }, - { - "body": { - "id": 4833, - "nodeType": "Block", - "src": "21100:531:6", - "statements": [ - { - "assignments": [], - "declarations": [ - { - "constant": false, - "id": 4816, - "name": "ret", - "nodeType": "VariableDeclaration", - "scope": 4834, - "src": "21104:21:6", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2]" - }, - "typeName": { - "baseType": { - "id": 4814, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "21104:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4815, - "length": { - "argumentTypes": null, - "hexValue": "32", - "id": 4813, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21112:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - }, - "value": "2" - }, - "nodeType": "ArrayTypeName", - "src": "21104:10:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr", - "typeString": "uint256[2]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 4817, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "21104:21:6" - }, - { - "assignments": [ - 4819 - ], - "declarations": [ - { - "constant": false, - "id": 4819, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 4834, - "src": "21129:17:6", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 4818, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "21129:5:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 4825, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4822, - "name": "CONNECTORS_FUNC_SELECTOR", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4803, - "src": "21172:24:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - { - "argumentTypes": null, - "id": 4823, - "name": "_reserveToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4807, - "src": "21198:13:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 4820, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22325, - "src": "21149:3:6", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 4821, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encodeWithSelector", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "21149:22:6", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (bytes4) pure returns (bytes memory)" - } - }, - "id": 4824, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21149:63:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "21129:83:6" - }, - { - "externalReferences": [ - { - "data": { - "declaration": 4819, - "isOffset": false, - "isSlot": false, - "src": "21422:4:6", - "valueSize": 1 - } - }, - { - "data": { - "declaration": 4819, - "isOffset": false, - "isSlot": false, - "src": "21331:4:6", - "valueSize": 1 - } - }, - { - "_converter": { - "declaration": 4805, - "isOffset": false, - "isSlot": false, - "src": "21288:10:6", - "valueSize": 1 - } - }, - { - "ret": { - "declaration": 4816, - "isOffset": false, - "isSlot": false, - "src": "21502:3:6", - "valueSize": 1 - } - } - ], - "id": 4826, - "nodeType": "InlineAssembly", - "operations": "{\n let success := staticcall(gas(), _converter, add(data, 32), mload(data), ret, 64)\n if iszero(success)\n {\n revert(0, 0)\n }\n}", - "src": "21217:395:6" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4828, - "name": "ret", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4816, - "src": "21620:3:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - } - }, - "id": 4830, - "indexExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 4829, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21624:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "21620:6:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 4827, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "21613:6:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint32_$", - "typeString": "type(uint32)" - }, - "typeName": "uint32" - }, - "id": 4831, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21613:14:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "functionReturnParameters": 4811, - "id": 4832, - "nodeType": "Return", - "src": "21606:21:6" - } - ] - }, - "documentation": null, - "id": 4834, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getReserveWeight", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4808, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4805, - "name": "_converter", - "nodeType": "VariableDeclaration", - "scope": 4834, - "src": "21027:18:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4804, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "21027:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4807, - "name": "_reserveToken", - "nodeType": "VariableDeclaration", - "scope": 4834, - "src": "21047:21:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4806, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "21047:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "21026:43:6" - }, - "payable": false, - "returnParameters": { - "id": 4811, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4810, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 4834, - "src": "21092:6:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 4809, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "21092:6:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "21091:8:6" - }, - "scope": 4965, - "src": "21001:630:6", - "stateMutability": "view", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 4842, - "nodeType": "Block", - "src": "21770:31:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 4839, - "name": "getAnchorCount", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 3931 - ], - "referencedDeclaration": 3931, - "src": "21781:14:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", - "typeString": "function () view returns (uint256)" - } - }, - "id": 4840, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21781:16:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 4838, - "id": 4841, - "nodeType": "Return", - "src": "21774:23:6" - } - ] - }, - "documentation": "@dev deprecated, backward compatibility, use `getAnchorCount`", - "id": 4843, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getSmartTokenCount", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4835, - "nodeType": "ParameterList", - "parameters": [], - "src": "21737:2:6" - }, - "payable": false, - "returnParameters": { - "id": 4838, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4837, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 4843, - "src": "21761:7:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4836, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "21761:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "21760:9:6" - }, - "scope": 4965, - "src": "21710:91:6", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 4852, - "nodeType": "Block", - "src": "21934:27:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 4849, - "name": "getAnchors", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 3946 - ], - "referencedDeclaration": 3946, - "src": "21945:10:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_array$_t_address_$dyn_memory_ptr_$", - "typeString": "function () view returns (address[] memory)" - } - }, - "id": 4850, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21945:12:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "functionReturnParameters": 4848, - "id": 4851, - "nodeType": "Return", - "src": "21938:19:6" - } - ] - }, - "documentation": "@dev deprecated, backward compatibility, use `getAnchors`", - "id": 4853, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getSmartTokens", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4844, - "nodeType": "ParameterList", - "parameters": [], - "src": "21899:2:6" - }, - "payable": false, - "returnParameters": { - "id": 4848, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4847, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 4853, - "src": "21923:9:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 4845, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "21923:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 4846, - "length": null, - "nodeType": "ArrayTypeName", - "src": "21923:9:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "21922:11:6" - }, - "scope": 4965, - "src": "21876:85:6", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 4864, - "nodeType": "Block", - "src": "22104:32:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4861, - "name": "_index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4855, - "src": "22125:6:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 4860, - "name": "getAnchor", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 3963 - ], - "referencedDeclaration": 3963, - "src": "22115:9:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 4862, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22115:17:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 4859, - "id": 4863, - "nodeType": "Return", - "src": "22108:24:6" - } - ] - }, - "documentation": "@dev deprecated, backward compatibility, use `getAnchor`", - "id": 4865, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getSmartToken", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4856, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4855, - "name": "_index", - "nodeType": "VariableDeclaration", - "scope": 4865, - "src": "22058:14:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4854, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "22058:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "22057:16:6" - }, - "payable": false, - "returnParameters": { - "id": 4859, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4858, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 4865, - "src": "22095:7:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4857, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "22095:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "22094:9:6" - }, - "scope": 4965, - "src": "22035:101:6", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 4876, - "nodeType": "Block", - "src": "22274:31:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4873, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4867, - "src": "22294:6:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 4872, - "name": "isAnchor", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 3980 - ], - "referencedDeclaration": 3980, - "src": "22285:8:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 4874, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22285:16:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 4871, - "id": 4875, - "nodeType": "Return", - "src": "22278:23:6" - } - ] - }, - "documentation": "@dev deprecated, backward compatibility, use `isAnchor`", - "id": 4877, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "isSmartToken", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4868, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4867, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 4877, - "src": "22231:14:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4866, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "22231:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "22230:16:6" - }, - "payable": false, - "returnParameters": { - "id": 4871, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4870, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 4877, - "src": "22268:4:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 4869, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "22268:4:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "22267:6:6" - }, - "scope": 4965, - "src": "22209:96:6", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 4888, - "nodeType": "Block", - "src": "22501:64:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4885, - "name": "_convertibleToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4879, - "src": "22543:17:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 4884, - "name": "getConvertibleTokenAnchorCount", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4123 - ], - "referencedDeclaration": 4123, - "src": "22512:30:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view returns (uint256)" - } - }, - "id": 4886, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22512:49:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 4883, - "id": 4887, - "nodeType": "Return", - "src": "22505:56:6" - } - ] - }, - "documentation": "@dev deprecated, backward compatibility, use `getConvertibleTokenAnchorCount`", - "id": 4889, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getConvertibleTokenSmartTokenCount", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4880, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4879, - "name": "_convertibleToken", - "nodeType": "VariableDeclaration", - "scope": 4889, - "src": "22444:25:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4878, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "22444:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "22443:27:6" - }, - "payable": false, - "returnParameters": { - "id": 4883, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4882, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 4889, - "src": "22492:7:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4881, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "22492:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "22491:9:6" - }, - "scope": 4965, - "src": "22400:165:6", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 4901, - "nodeType": "Block", - "src": "22755:60:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4898, - "name": "_convertibleToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4891, - "src": "22793:17:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 4897, - "name": "getConvertibleTokenAnchors", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4141 - ], - "referencedDeclaration": 4141, - "src": "22766:26:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_array$_t_address_$dyn_memory_ptr_$", - "typeString": "function (address) view returns (address[] memory)" - } - }, - "id": 4899, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22766:45:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "functionReturnParameters": 4896, - "id": 4900, - "nodeType": "Return", - "src": "22759:52:6" - } - ] - }, - "documentation": "@dev deprecated, backward compatibility, use `getConvertibleTokenAnchors`", - "id": 4902, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getConvertibleTokenSmartTokens", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4892, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4891, - "name": "_convertibleToken", - "nodeType": "VariableDeclaration", - "scope": 4902, - "src": "22696:25:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4890, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "22696:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "22695:27:6" - }, - "payable": false, - "returnParameters": { - "id": 4896, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4895, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 4902, - "src": "22744:9:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 4893, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "22744:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 4894, - "length": null, - "nodeType": "ArrayTypeName", - "src": "22744:9:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "22743:11:6" - }, - "scope": 4965, - "src": "22656:159:6", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 4916, - "nodeType": "Block", - "src": "23017:67:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4912, - "name": "_convertibleToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4904, - "src": "23054:17:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 4913, - "name": "_index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4906, - "src": "23073:6:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 4911, - "name": "getConvertibleTokenAnchor", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4161 - ], - "referencedDeclaration": 4161, - "src": "23028:25:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_address_$", - "typeString": "function (address,uint256) view returns (address)" - } - }, - "id": 4914, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "23028:52:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 4910, - "id": 4915, - "nodeType": "Return", - "src": "23021:59:6" - } - ] - }, - "documentation": "@dev deprecated, backward compatibility, use `getConvertibleTokenAnchor`", - "id": 4917, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getConvertibleTokenSmartToken", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4907, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4904, - "name": "_convertibleToken", - "nodeType": "VariableDeclaration", - "scope": 4917, - "src": "22944:25:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4903, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "22944:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4906, - "name": "_index", - "nodeType": "VariableDeclaration", - "scope": 4917, - "src": "22971:14:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4905, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "22971:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "22943:43:6" - }, - "payable": false, - "returnParameters": { - "id": 4910, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4909, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 4917, - "src": "23008:7:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4908, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "23008:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "23007:9:6" - }, - "scope": 4965, - "src": "22905:179:6", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 4931, - "nodeType": "Block", - "src": "23281:66:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4927, - "name": "_convertibleToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4919, - "src": "23317:17:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 4928, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4921, - "src": "23336:6:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 4926, - "name": "isConvertibleTokenAnchor", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4181 - ], - "referencedDeclaration": 4181, - "src": "23292:24:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", - "typeString": "function (address,address) view returns (bool)" - } - }, - "id": 4929, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "23292:51:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 4925, - "id": 4930, - "nodeType": "Return", - "src": "23285:58:6" - } - ] - }, - "documentation": "@dev deprecated, backward compatibility, use `isConvertibleTokenAnchor`", - "id": 4932, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "isConvertibleTokenSmartToken", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4922, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4919, - "name": "_convertibleToken", - "nodeType": "VariableDeclaration", - "scope": 4932, - "src": "23211:25:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4918, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "23211:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4921, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 4932, - "src": "23238:14:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4920, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "23238:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "23210:43:6" - }, - "payable": false, - "returnParameters": { - "id": 4925, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4924, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 4932, - "src": "23275:4:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 4923, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "23275:4:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "23274:6:6" - }, - "scope": 4965, - "src": "23173:174:6", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 4945, - "nodeType": "Block", - "src": "23526:51:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4942, - "name": "_smartTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4935, - "src": "23560:12:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - ], - "id": 4941, - "name": "getConvertersByAnchors", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4228, - "src": "23537:22:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_array$_t_address_$dyn_memory_ptr_$returns$_t_array$_t_address_$dyn_memory_ptr_$", - "typeString": "function (address[] memory) view returns (address[] memory)" - } - }, - "id": 4943, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "23537:36:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "functionReturnParameters": 4940, - "id": 4944, - "nodeType": "Return", - "src": "23530:43:6" - } - ] - }, - "documentation": "@dev deprecated, backward compatibility, use `getConvertersByAnchors`", - "id": 4946, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getConvertersBySmartTokens", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4936, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4935, - "name": "_smartTokens", - "nodeType": "VariableDeclaration", - "scope": 4946, - "src": "23470:22:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 4933, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "23470:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 4934, - "length": null, - "nodeType": "ArrayTypeName", - "src": "23470:9:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "23469:24:6" - }, - "payable": false, - "returnParameters": { - "id": 4940, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4939, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 4946, - "src": "23515:9:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 4937, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "23515:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 4938, - "length": null, - "nodeType": "ArrayTypeName", - "src": "23515:9:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "23514:11:6" - }, - "scope": 4965, - "src": "23434:143:6", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 4963, - "nodeType": "Block", - "src": "23823:75:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 4958, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "23859:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - { - "argumentTypes": null, - "id": 4959, - "name": "_reserveTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4949, - "src": "23862:14:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", - "typeString": "contract IERC20Token[] memory" - } - }, - { - "argumentTypes": null, - "id": 4960, - "name": "_reserveWeights", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4952, - "src": "23878:15:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint32_$dyn_memory_ptr", - "typeString": "uint32[] memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", - "typeString": "contract IERC20Token[] memory" - }, - { - "typeIdentifier": "t_array$_t_uint32_$dyn_memory_ptr", - "typeString": "uint32[] memory" - } - ], - "id": 4957, - "name": "getLiquidityPoolByConfig", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4402, - "src": "23834:24:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint16_$_t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr_$_t_array$_t_uint32_$dyn_memory_ptr_$returns$_t_contract$_IConverterAnchor_$11826_$", - "typeString": "function (uint16,contract IERC20Token[] memory,uint32[] memory) view returns (contract IConverterAnchor)" - } - }, - "id": 4961, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "23834:60:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - }, - "functionReturnParameters": 4956, - "id": 4962, - "nodeType": "Return", - "src": "23827:67:6" - } - ] - }, - "documentation": "@dev deprecated, backward compatibility, use `getLiquidityPoolByConfig`", - "id": 4964, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getLiquidityPoolByReserveConfig", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4953, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4949, - "name": "_reserveTokens", - "nodeType": "VariableDeclaration", - "scope": 4964, - "src": "23707:35:6", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", - "typeString": "contract IERC20Token[]" - }, - "typeName": { - "baseType": { - "contractScope": null, - "id": 4947, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "23707:11:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "id": 4948, - "length": null, - "nodeType": "ArrayTypeName", - "src": "23707:13:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_storage_ptr", - "typeString": "contract IERC20Token[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4952, - "name": "_reserveWeights", - "nodeType": "VariableDeclaration", - "scope": 4964, - "src": "23744:31:6", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint32_$dyn_memory_ptr", - "typeString": "uint32[]" - }, - "typeName": { - "baseType": { - "id": 4950, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "23744:6:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "id": 4951, - "length": null, - "nodeType": "ArrayTypeName", - "src": "23744:8:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint32_$dyn_storage_ptr", - "typeString": "uint32[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "23706:70:6" - }, - "payable": false, - "returnParameters": { - "id": 4956, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4955, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 4964, - "src": "23804:16:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - }, - "typeName": { - "contractScope": null, - "id": 4954, - "name": "IConverterAnchor", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 11826, - "src": "23804:16:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "23803:18:6" - }, - "scope": 4965, - "src": "23666:232:6", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 4966, - "src": "1278:22622:6" - } - ], - "src": "0:23901:6" - }, - "id": 6 - }, - "solidity/contracts/converter/ConverterRegistryData.sol": { - "ast": { - "absolutePath": "solidity/contracts/converter/ConverterRegistryData.sol", - "exportedSymbols": { - "ConverterRegistryData": [ - 5516 - ] - }, - "id": 5517, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 4967, - "literals": [ - "solidity", - "0.4", - ".26" - ], - "nodeType": "PragmaDirective", - "src": "0:23:7" - }, - { - "absolutePath": "solidity/contracts/utility/ContractRegistryClient.sol", - "file": "../utility/ContractRegistryClient.sol", - "id": 4968, - "nodeType": "ImportDirective", - "scope": 5517, - "sourceUnit": 20933, - "src": "24:47:7", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "solidity/contracts/converter/interfaces/IConverterRegistryData.sol", - "file": "./interfaces/IConverterRegistryData.sol", - "id": 4969, - "nodeType": "ImportDirective", - "scope": 5517, - "sourceUnit": 12128, - "src": "72:49:7", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 4970, - "name": "IConverterRegistryData", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 12127, - "src": "711:22:7", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterRegistryData_$12127", - "typeString": "contract IConverterRegistryData" - } - }, - "id": 4971, - "nodeType": "InheritanceSpecifier", - "src": "711:22:7" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 4972, - "name": "ContractRegistryClient", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20932, - "src": "735:22:7", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ContractRegistryClient_$20932", - "typeString": "contract ContractRegistryClient" - } - }, - "id": 4973, - "nodeType": "InheritanceSpecifier", - "src": "735:22:7" - } - ], - "contractDependencies": [ - 12127, - 20932, - 21324, - 22052, - 22247 - ], - "contractKind": "contract", - "documentation": "@dev The ConverterRegistryData contract is an integral part of the converter registry\nas it serves as the database contract that holds all registry data.\n * The registry is separated into two different contracts for upgradability - the data contract\nis harder to upgrade as it requires migrating all registry data into a new contract, while\nthe registry contract itself can be easily upgraded.\n * For that same reason, the data contract is simple and contains no logic beyond the basic data\naccess utilities that it exposes.", - "fullyImplemented": true, - "id": 5516, - "linearizedBaseContracts": [ - 5516, - 20932, - 22052, - 21324, - 22247, - 12127 - ], - "name": "ConverterRegistryData", - "nodeType": "ContractDefinition", - "nodes": [ - { - "canonicalName": "ConverterRegistryData.Item", - "id": 4978, - "members": [ - { - "constant": false, - "id": 4975, - "name": "valid", - "nodeType": "VariableDeclaration", - "scope": 4978, - "src": "777:10:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 4974, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "777:4:7", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4977, - "name": "index", - "nodeType": "VariableDeclaration", - "scope": 4978, - "src": "791:13:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4976, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "791:7:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "name": "Item", - "nodeType": "StructDefinition", - "scope": 5516, - "src": "761:47:7", - "visibility": "public" - }, - { - "canonicalName": "ConverterRegistryData.Items", - "id": 4986, - "members": [ - { - "constant": false, - "id": 4981, - "name": "array", - "nodeType": "VariableDeclaration", - "scope": 4986, - "src": "828:15:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 4979, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "828:7:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 4980, - "length": null, - "nodeType": "ArrayTypeName", - "src": "828:9:7", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4985, - "name": "table", - "nodeType": "VariableDeclaration", - "scope": 4986, - "src": "847:30:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Item_$4978_storage_$", - "typeString": "mapping(address => struct ConverterRegistryData.Item)" - }, - "typeName": { - "id": 4984, - "keyType": { - "id": 4982, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "855:7:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "847:24:7", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Item_$4978_storage_$", - "typeString": "mapping(address => struct ConverterRegistryData.Item)" - }, - "valueType": { - "contractScope": null, - "id": 4983, - "name": "Item", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4978, - "src": "866:4:7", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Item_$4978_storage_ptr", - "typeString": "struct ConverterRegistryData.Item" - } - } - }, - "value": null, - "visibility": "internal" - } - ], - "name": "Items", - "nodeType": "StructDefinition", - "scope": 5516, - "src": "811:70:7", - "visibility": "public" - }, - { - "canonicalName": "ConverterRegistryData.List", - "id": 4991, - "members": [ - { - "constant": false, - "id": 4988, - "name": "index", - "nodeType": "VariableDeclaration", - "scope": 4991, - "src": "900:13:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4987, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "900:7:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4990, - "name": "items", - "nodeType": "VariableDeclaration", - "scope": 4991, - "src": "917:11:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Items_$4986_storage_ptr", - "typeString": "struct ConverterRegistryData.Items" - }, - "typeName": { - "contractScope": null, - "id": 4989, - "name": "Items", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4986, - "src": "917:5:7", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Items_$4986_storage_ptr", - "typeString": "struct ConverterRegistryData.Items" - } - }, - "value": null, - "visibility": "internal" - } - ], - "name": "List", - "nodeType": "StructDefinition", - "scope": 5516, - "src": "884:48:7", - "visibility": "public" - }, - { - "canonicalName": "ConverterRegistryData.Lists", - "id": 4999, - "members": [ - { - "constant": false, - "id": 4994, - "name": "array", - "nodeType": "VariableDeclaration", - "scope": 4999, - "src": "952:15:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 4992, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "952:7:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 4993, - "length": null, - "nodeType": "ArrayTypeName", - "src": "952:9:7", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4998, - "name": "table", - "nodeType": "VariableDeclaration", - "scope": 4999, - "src": "971:30:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_List_$4991_storage_$", - "typeString": "mapping(address => struct ConverterRegistryData.List)" - }, - "typeName": { - "id": 4997, - "keyType": { - "id": 4995, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "979:7:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "971:24:7", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_List_$4991_storage_$", - "typeString": "mapping(address => struct ConverterRegistryData.List)" - }, - "valueType": { - "contractScope": null, - "id": 4996, - "name": "List", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4991, - "src": "990:4:7", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$4991_storage_ptr", - "typeString": "struct ConverterRegistryData.List" - } - } - }, - "value": null, - "visibility": "internal" - } - ], - "name": "Lists", - "nodeType": "StructDefinition", - "scope": 5516, - "src": "935:70:7", - "visibility": "public" - }, - { - "constant": false, - "id": 5001, - "name": "smartTokens", - "nodeType": "VariableDeclaration", - "scope": 5516, - "src": "1008:25:7", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Items_$4986_storage", - "typeString": "struct ConverterRegistryData.Items" - }, - "typeName": { - "contractScope": null, - "id": 5000, - "name": "Items", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4986, - "src": "1008:5:7", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Items_$4986_storage_ptr", - "typeString": "struct ConverterRegistryData.Items" - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 5003, - "name": "liquidityPools", - "nodeType": "VariableDeclaration", - "scope": 5516, - "src": "1036:28:7", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Items_$4986_storage", - "typeString": "struct ConverterRegistryData.Items" - }, - "typeName": { - "contractScope": null, - "id": 5002, - "name": "Items", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4986, - "src": "1036:5:7", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Items_$4986_storage_ptr", - "typeString": "struct ConverterRegistryData.Items" - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 5005, - "name": "convertibleTokens", - "nodeType": "VariableDeclaration", - "scope": 5516, - "src": "1067:31:7", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Lists_$4999_storage", - "typeString": "struct ConverterRegistryData.Lists" - }, - "typeName": { - "contractScope": null, - "id": 5004, - "name": "Lists", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4999, - "src": "1067:5:7", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Lists_$4999_storage_ptr", - "typeString": "struct ConverterRegistryData.Lists" - } - }, - "value": null, - "visibility": "private" - }, - { - "body": { - "id": 5013, - "nodeType": "Block", - "src": "1317:2:7", - "statements": [] - }, - "documentation": "@dev initializes a new ConverterRegistryData instance\n\t * @param _registry address of a contract registry contract", - "id": 5014, - "implemented": true, - "isConstructor": true, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 5010, - "name": "_registry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5007, - "src": "1306:9:7", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IContractRegistry_$22220", - "typeString": "contract IContractRegistry" - } - } - ], - "id": 5011, - "modifierName": { - "argumentTypes": null, - "id": 5009, - "name": "ContractRegistryClient", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20932, - "src": "1283:22:7", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ContractRegistryClient_$20932_$", - "typeString": "type(contract ContractRegistryClient)" - } - }, - "nodeType": "ModifierInvocation", - "src": "1283:33:7" - } - ], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5008, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5007, - "name": "_registry", - "nodeType": "VariableDeclaration", - "scope": 5014, - "src": "1247:27:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IContractRegistry_$22220", - "typeString": "contract IContractRegistry" - }, - "typeName": { - "contractScope": null, - "id": 5006, - "name": "IContractRegistry", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 22220, - "src": "1247:17:7", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IContractRegistry_$22220", - "typeString": "contract IContractRegistry" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1246:29:7" - }, - "payable": false, - "returnParameters": { - "id": 5012, - "nodeType": "ParameterList", - "parameters": [], - "src": "1317:0:7" - }, - "scope": 5516, - "src": "1235:84:7", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 5027, - "nodeType": "Block", - "src": "1477:41:7", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5023, - "name": "smartTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5001, - "src": "1489:11:7", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Items_$4986_storage", - "typeString": "struct ConverterRegistryData.Items storage ref" - } - }, - { - "argumentTypes": null, - "id": 5024, - "name": "_smartToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5016, - "src": "1502:11:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_Items_$4986_storage", - "typeString": "struct ConverterRegistryData.Items storage ref" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 5022, - "name": "addItem", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5448, - "src": "1481:7:7", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Items_$4986_storage_ptr_$_t_address_$returns$__$", - "typeString": "function (struct ConverterRegistryData.Items storage pointer,address)" - } - }, - "id": 5025, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1481:33:7", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5026, - "nodeType": "ExpressionStatement", - "src": "1481:33:7" - } - ] - }, - "documentation": "@dev adds a smart token\n\t * @param _smartToken smart token", - "id": 5028, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 5019, - "name": "CONVERTER_REGISTRY", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20770, - "src": "1457:18:7", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "id": 5020, - "modifierName": { - "argumentTypes": null, - "id": 5018, - "name": "only", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20801, - "src": "1452:4:7", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_bytes32_$", - "typeString": "modifier (bytes32)" - } - }, - "nodeType": "ModifierInvocation", - "src": "1452:24:7" - } - ], - "name": "addSmartToken", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5017, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5016, - "name": "_smartToken", - "nodeType": "VariableDeclaration", - "scope": 5028, - "src": "1422:19:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5015, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1422:7:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1421:21:7" - }, - "payable": false, - "returnParameters": { - "id": 5021, - "nodeType": "ParameterList", - "parameters": [], - "src": "1477:0:7" - }, - "scope": 5516, - "src": "1399:119:7", - "stateMutability": "nonpayable", - "superFunction": 11989, - "visibility": "external" - }, - { - "body": { - "id": 5041, - "nodeType": "Block", - "src": "1682:44:7", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5037, - "name": "smartTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5001, - "src": "1697:11:7", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Items_$4986_storage", - "typeString": "struct ConverterRegistryData.Items storage ref" - } - }, - { - "argumentTypes": null, - "id": 5038, - "name": "_smartToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5030, - "src": "1710:11:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_Items_$4986_storage", - "typeString": "struct ConverterRegistryData.Items storage ref" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 5036, - "name": "removeItem", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5515, - "src": "1686:10:7", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Items_$4986_storage_ptr_$_t_address_$returns$__$", - "typeString": "function (struct ConverterRegistryData.Items storage pointer,address)" - } - }, - "id": 5039, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1686:36:7", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5040, - "nodeType": "ExpressionStatement", - "src": "1686:36:7" - } - ] - }, - "documentation": "@dev removes a smart token\n\t * @param _smartToken smart token", - "id": 5042, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 5033, - "name": "CONVERTER_REGISTRY", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20770, - "src": "1662:18:7", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "id": 5034, - "modifierName": { - "argumentTypes": null, - "id": 5032, - "name": "only", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20801, - "src": "1657:4:7", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_bytes32_$", - "typeString": "modifier (bytes32)" - } - }, - "nodeType": "ModifierInvocation", - "src": "1657:24:7" - } - ], - "name": "removeSmartToken", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5031, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5030, - "name": "_smartToken", - "nodeType": "VariableDeclaration", - "scope": 5042, - "src": "1627:19:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5029, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1627:7:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1626:21:7" - }, - "payable": false, - "returnParameters": { - "id": 5035, - "nodeType": "ParameterList", - "parameters": [], - "src": "1682:0:7" - }, - "scope": 5516, - "src": "1601:125:7", - "stateMutability": "nonpayable", - "superFunction": 11994, - "visibility": "external" - }, - { - "body": { - "id": 5055, - "nodeType": "Block", - "src": "1899:47:7", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5051, - "name": "liquidityPools", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5003, - "src": "1911:14:7", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Items_$4986_storage", - "typeString": "struct ConverterRegistryData.Items storage ref" - } - }, - { - "argumentTypes": null, - "id": 5052, - "name": "_liquidityPool", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5044, - "src": "1927:14:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_Items_$4986_storage", - "typeString": "struct ConverterRegistryData.Items storage ref" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 5050, - "name": "addItem", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5448, - "src": "1903:7:7", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Items_$4986_storage_ptr_$_t_address_$returns$__$", - "typeString": "function (struct ConverterRegistryData.Items storage pointer,address)" - } - }, - "id": 5053, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1903:39:7", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5054, - "nodeType": "ExpressionStatement", - "src": "1903:39:7" - } - ] - }, - "documentation": "@dev adds a liquidity pool\n\t * @param _liquidityPool liquidity pool", - "id": 5056, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 5047, - "name": "CONVERTER_REGISTRY", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20770, - "src": "1879:18:7", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "id": 5048, - "modifierName": { - "argumentTypes": null, - "id": 5046, - "name": "only", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20801, - "src": "1874:4:7", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_bytes32_$", - "typeString": "modifier (bytes32)" - } - }, - "nodeType": "ModifierInvocation", - "src": "1874:24:7" - } - ], - "name": "addLiquidityPool", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5045, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5044, - "name": "_liquidityPool", - "nodeType": "VariableDeclaration", - "scope": 5056, - "src": "1841:22:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5043, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1841:7:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1840:24:7" - }, - "payable": false, - "returnParameters": { - "id": 5049, - "nodeType": "ParameterList", - "parameters": [], - "src": "1899:0:7" - }, - "scope": 5516, - "src": "1815:131:7", - "stateMutability": "nonpayable", - "superFunction": 11999, - "visibility": "external" - }, - { - "body": { - "id": 5069, - "nodeType": "Block", - "src": "2125:50:7", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5065, - "name": "liquidityPools", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5003, - "src": "2140:14:7", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Items_$4986_storage", - "typeString": "struct ConverterRegistryData.Items storage ref" - } - }, - { - "argumentTypes": null, - "id": 5066, - "name": "_liquidityPool", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5058, - "src": "2156:14:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_Items_$4986_storage", - "typeString": "struct ConverterRegistryData.Items storage ref" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 5064, - "name": "removeItem", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5515, - "src": "2129:10:7", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Items_$4986_storage_ptr_$_t_address_$returns$__$", - "typeString": "function (struct ConverterRegistryData.Items storage pointer,address)" - } - }, - "id": 5067, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2129:42:7", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5068, - "nodeType": "ExpressionStatement", - "src": "2129:42:7" - } - ] - }, - "documentation": "@dev removes a liquidity pool\n\t * @param _liquidityPool liquidity pool", - "id": 5070, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 5061, - "name": "CONVERTER_REGISTRY", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20770, - "src": "2105:18:7", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "id": 5062, - "modifierName": { - "argumentTypes": null, - "id": 5060, - "name": "only", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20801, - "src": "2100:4:7", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_bytes32_$", - "typeString": "modifier (bytes32)" - } - }, - "nodeType": "ModifierInvocation", - "src": "2100:24:7" - } - ], - "name": "removeLiquidityPool", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5059, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5058, - "name": "_liquidityPool", - "nodeType": "VariableDeclaration", - "scope": 5070, - "src": "2067:22:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5057, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2067:7:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2066:24:7" - }, - "payable": false, - "returnParameters": { - "id": 5063, - "nodeType": "ParameterList", - "parameters": [], - "src": "2125:0:7" - }, - "scope": 5516, - "src": "2038:137:7", - "stateMutability": "nonpayable", - "superFunction": 12004, - "visibility": "external" - }, - { - "body": { - "id": 5113, - "nodeType": "Block", - "src": "2430:217:7", - "statements": [ - { - "assignments": [ - 5081 - ], - "declarations": [ - { - "constant": false, - "id": 5081, - "name": "list", - "nodeType": "VariableDeclaration", - "scope": 5114, - "src": "2434:17:7", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$4991_storage_ptr", - "typeString": "struct ConverterRegistryData.List" - }, - "typeName": { - "contractScope": null, - "id": 5080, - "name": "List", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4991, - "src": "2434:4:7", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$4991_storage_ptr", - "typeString": "struct ConverterRegistryData.List" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 5086, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5082, - "name": "convertibleTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5005, - "src": "2454:17:7", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Lists_$4999_storage", - "typeString": "struct ConverterRegistryData.Lists storage ref" - } - }, - "id": 5083, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "table", - "nodeType": "MemberAccess", - "referencedDeclaration": 4998, - "src": "2454:23:7", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_List_$4991_storage_$", - "typeString": "mapping(address => struct ConverterRegistryData.List storage ref)" - } - }, - "id": 5085, - "indexExpression": { - "argumentTypes": null, - "id": 5084, - "name": "_convertibleToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5072, - "src": "2478:17:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2454:42:7", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$4991_storage", - "typeString": "struct ConverterRegistryData.List storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2434:62:7" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5092, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5087, - "name": "list", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5081, - "src": "2504:4:7", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$4991_storage_ptr", - "typeString": "struct ConverterRegistryData.List storage pointer" - } - }, - "id": 5088, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "items", - "nodeType": "MemberAccess", - "referencedDeclaration": 4990, - "src": "2504:10:7", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Items_$4986_storage", - "typeString": "struct ConverterRegistryData.Items storage ref" - } - }, - "id": 5089, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "array", - "nodeType": "MemberAccess", - "referencedDeclaration": 4981, - "src": "2504:16:7", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 5090, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2504:23:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 5091, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2531:1:7", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "2504:28:7", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 5106, - "nodeType": "IfStatement", - "src": "2500:108:7", - "trueBody": { - "id": 5105, - "nodeType": "Block", - "src": "2534:74:7", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 5103, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5093, - "name": "list", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5081, - "src": "2539:4:7", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$4991_storage_ptr", - "typeString": "struct ConverterRegistryData.List storage pointer" - } - }, - "id": 5095, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "index", - "nodeType": "MemberAccess", - "referencedDeclaration": 4988, - "src": "2539:10:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5102, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5099, - "name": "_convertibleToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5072, - "src": "2581:17:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5096, - "name": "convertibleTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5005, - "src": "2552:17:7", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Lists_$4999_storage", - "typeString": "struct ConverterRegistryData.Lists storage ref" - } - }, - "id": 5097, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "array", - "nodeType": "MemberAccess", - "referencedDeclaration": 4994, - "src": "2552:23:7", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 5098, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "push", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2552:28:7", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) returns (uint256)" - } - }, - "id": 5100, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2552:47:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 5101, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2602:1:7", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "2552:51:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2539:64:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 5104, - "nodeType": "ExpressionStatement", - "src": "2539:64:7" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5108, - "name": "list", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5081, - "src": "2619:4:7", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$4991_storage_ptr", - "typeString": "struct ConverterRegistryData.List storage pointer" - } - }, - "id": 5109, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "items", - "nodeType": "MemberAccess", - "referencedDeclaration": 4990, - "src": "2619:10:7", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Items_$4986_storage", - "typeString": "struct ConverterRegistryData.Items storage ref" - } - }, - { - "argumentTypes": null, - "id": 5110, - "name": "_smartToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5074, - "src": "2631:11:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_Items_$4986_storage", - "typeString": "struct ConverterRegistryData.Items storage ref" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 5107, - "name": "addItem", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5448, - "src": "2611:7:7", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Items_$4986_storage_ptr_$_t_address_$returns$__$", - "typeString": "function (struct ConverterRegistryData.Items storage pointer,address)" - } - }, - "id": 5111, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2611:32:7", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5112, - "nodeType": "ExpressionStatement", - "src": "2611:32:7" - } - ] - }, - "documentation": "@dev adds a convertible token\n\t * @param _convertibleToken convertible token\n@param _smartToken associated smart token", - "id": 5114, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 5077, - "name": "CONVERTER_REGISTRY", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20770, - "src": "2410:18:7", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "id": 5078, - "modifierName": { - "argumentTypes": null, - "id": 5076, - "name": "only", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20801, - "src": "2405:4:7", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_bytes32_$", - "typeString": "modifier (bytes32)" - } - }, - "nodeType": "ModifierInvocation", - "src": "2405:24:7" - } - ], - "name": "addConvertibleToken", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5075, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5072, - "name": "_convertibleToken", - "nodeType": "VariableDeclaration", - "scope": 5114, - "src": "2348:25:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5071, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2348:7:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5074, - "name": "_smartToken", - "nodeType": "VariableDeclaration", - "scope": 5114, - "src": "2375:19:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5073, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2375:7:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2347:48:7" - }, - "payable": false, - "returnParameters": { - "id": 5079, - "nodeType": "ParameterList", - "parameters": [], - "src": "2430:0:7" - }, - "scope": 5516, - "src": "2319:328:7", - "stateMutability": "nonpayable", - "superFunction": 12011, - "visibility": "external" - }, - { - "body": { - "id": 5188, - "nodeType": "Block", - "src": "2908:469:7", - "statements": [ - { - "assignments": [ - 5125 - ], - "declarations": [ - { - "constant": false, - "id": 5125, - "name": "list", - "nodeType": "VariableDeclaration", - "scope": 5189, - "src": "2912:17:7", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$4991_storage_ptr", - "typeString": "struct ConverterRegistryData.List" - }, - "typeName": { - "contractScope": null, - "id": 5124, - "name": "List", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4991, - "src": "2912:4:7", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$4991_storage_ptr", - "typeString": "struct ConverterRegistryData.List" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 5130, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5126, - "name": "convertibleTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5005, - "src": "2932:17:7", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Lists_$4999_storage", - "typeString": "struct ConverterRegistryData.Lists storage ref" - } - }, - "id": 5127, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "table", - "nodeType": "MemberAccess", - "referencedDeclaration": 4998, - "src": "2932:23:7", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_List_$4991_storage_$", - "typeString": "mapping(address => struct ConverterRegistryData.List storage ref)" - } - }, - "id": 5129, - "indexExpression": { - "argumentTypes": null, - "id": 5128, - "name": "_convertibleToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5116, - "src": "2956:17:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2932:42:7", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$4991_storage", - "typeString": "struct ConverterRegistryData.List storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2912:62:7" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5132, - "name": "list", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5125, - "src": "2989:4:7", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$4991_storage_ptr", - "typeString": "struct ConverterRegistryData.List storage pointer" - } - }, - "id": 5133, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "items", - "nodeType": "MemberAccess", - "referencedDeclaration": 4990, - "src": "2989:10:7", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Items_$4986_storage", - "typeString": "struct ConverterRegistryData.Items storage ref" - } - }, - { - "argumentTypes": null, - "id": 5134, - "name": "_smartToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5118, - "src": "3001:11:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_Items_$4986_storage", - "typeString": "struct ConverterRegistryData.Items storage ref" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 5131, - "name": "removeItem", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5515, - "src": "2978:10:7", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Items_$4986_storage_ptr_$_t_address_$returns$__$", - "typeString": "function (struct ConverterRegistryData.Items storage pointer,address)" - } - }, - "id": 5135, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2978:35:7", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5136, - "nodeType": "ExpressionStatement", - "src": "2978:35:7" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5142, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5137, - "name": "list", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5125, - "src": "3021:4:7", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$4991_storage_ptr", - "typeString": "struct ConverterRegistryData.List storage pointer" - } - }, - "id": 5138, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "items", - "nodeType": "MemberAccess", - "referencedDeclaration": 4990, - "src": "3021:10:7", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Items_$4986_storage", - "typeString": "struct ConverterRegistryData.Items storage ref" - } - }, - "id": 5139, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "array", - "nodeType": "MemberAccess", - "referencedDeclaration": 4981, - "src": "3021:16:7", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 5140, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3021:23:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 5141, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3048:1:7", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "3021:28:7", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 5187, - "nodeType": "IfStatement", - "src": "3017:357:7", - "trueBody": { - "id": 5186, - "nodeType": "Block", - "src": "3051:323:7", - "statements": [ - { - "assignments": [ - 5144 - ], - "declarations": [ - { - "constant": false, - "id": 5144, - "name": "lastConvertibleToken", - "nodeType": "VariableDeclaration", - "scope": 5189, - "src": "3056:28:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5143, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3056:7:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 5153, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5145, - "name": "convertibleTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5005, - "src": "3087:17:7", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Lists_$4999_storage", - "typeString": "struct ConverterRegistryData.Lists storage ref" - } - }, - "id": 5146, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "array", - "nodeType": "MemberAccess", - "referencedDeclaration": 4994, - "src": "3087:23:7", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 5152, - "indexExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5151, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5147, - "name": "convertibleTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5005, - "src": "3111:17:7", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Lists_$4999_storage", - "typeString": "struct ConverterRegistryData.Lists storage ref" - } - }, - "id": 5148, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "array", - "nodeType": "MemberAccess", - "referencedDeclaration": 4994, - "src": "3111:23:7", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 5149, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3111:30:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 5150, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3144:1:7", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "3111:34:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3087:59:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3056:90:7" - }, - { - "expression": { - "argumentTypes": null, - "id": 5162, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5154, - "name": "convertibleTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5005, - "src": "3151:17:7", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Lists_$4999_storage", - "typeString": "struct ConverterRegistryData.Lists storage ref" - } - }, - "id": 5157, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "table", - "nodeType": "MemberAccess", - "referencedDeclaration": 4998, - "src": "3151:23:7", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_List_$4991_storage_$", - "typeString": "mapping(address => struct ConverterRegistryData.List storage ref)" - } - }, - "id": 5158, - "indexExpression": { - "argumentTypes": null, - "id": 5156, - "name": "lastConvertibleToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5144, - "src": "3175:20:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3151:45:7", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$4991_storage", - "typeString": "struct ConverterRegistryData.List storage ref" - } - }, - "id": 5159, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "index", - "nodeType": "MemberAccess", - "referencedDeclaration": 4988, - "src": "3151:51:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5160, - "name": "list", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5125, - "src": "3205:4:7", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$4991_storage_ptr", - "typeString": "struct ConverterRegistryData.List storage pointer" - } - }, - "id": 5161, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "index", - "nodeType": "MemberAccess", - "referencedDeclaration": 4988, - "src": "3205:10:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3151:64:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 5163, - "nodeType": "ExpressionStatement", - "src": "3151:64:7" - }, - { - "expression": { - "argumentTypes": null, - "id": 5171, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5164, - "name": "convertibleTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5005, - "src": "3220:17:7", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Lists_$4999_storage", - "typeString": "struct ConverterRegistryData.Lists storage ref" - } - }, - "id": 5168, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "array", - "nodeType": "MemberAccess", - "referencedDeclaration": 4994, - "src": "3220:23:7", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 5169, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5166, - "name": "list", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5125, - "src": "3244:4:7", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$4991_storage_ptr", - "typeString": "struct ConverterRegistryData.List storage pointer" - } - }, - "id": 5167, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "index", - "nodeType": "MemberAccess", - "referencedDeclaration": 4988, - "src": "3244:10:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "3220:35:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 5170, - "name": "lastConvertibleToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5144, - "src": "3258:20:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3220:58:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 5172, - "nodeType": "ExpressionStatement", - "src": "3220:58:7" - }, - { - "expression": { - "argumentTypes": null, - "id": 5178, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "--", - "prefix": false, - "src": "3283:32:7", - "subExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5173, - "name": "convertibleTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5005, - "src": "3283:17:7", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Lists_$4999_storage", - "typeString": "struct ConverterRegistryData.Lists storage ref" - } - }, - "id": 5176, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "array", - "nodeType": "MemberAccess", - "referencedDeclaration": 4994, - "src": "3283:23:7", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 5177, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3283:30:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 5179, - "nodeType": "ExpressionStatement", - "src": "3283:32:7" - }, - { - "expression": { - "argumentTypes": null, - "id": 5184, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "delete", - "prefix": true, - "src": "3320:49:7", - "subExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5180, - "name": "convertibleTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5005, - "src": "3327:17:7", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Lists_$4999_storage", - "typeString": "struct ConverterRegistryData.Lists storage ref" - } - }, - "id": 5181, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "table", - "nodeType": "MemberAccess", - "referencedDeclaration": 4998, - "src": "3327:23:7", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_List_$4991_storage_$", - "typeString": "mapping(address => struct ConverterRegistryData.List storage ref)" - } - }, - "id": 5183, - "indexExpression": { - "argumentTypes": null, - "id": 5182, - "name": "_convertibleToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5116, - "src": "3351:17:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "3327:42:7", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$4991_storage", - "typeString": "struct ConverterRegistryData.List storage ref" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5185, - "nodeType": "ExpressionStatement", - "src": "3320:49:7" - } - ] - } - } - ] - }, - "documentation": "@dev removes a convertible token\n\t * @param _convertibleToken convertible token\n@param _smartToken associated smart token", - "id": 5189, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 5121, - "name": "CONVERTER_REGISTRY", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20770, - "src": "2888:18:7", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "id": 5122, - "modifierName": { - "argumentTypes": null, - "id": 5120, - "name": "only", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20801, - "src": "2883:4:7", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_bytes32_$", - "typeString": "modifier (bytes32)" - } - }, - "nodeType": "ModifierInvocation", - "src": "2883:24:7" - } - ], - "name": "removeConvertibleToken", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5119, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5116, - "name": "_convertibleToken", - "nodeType": "VariableDeclaration", - "scope": 5189, - "src": "2826:25:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5115, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2826:7:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5118, - "name": "_smartToken", - "nodeType": "VariableDeclaration", - "scope": 5189, - "src": "2853:19:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5117, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2853:7:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2825:48:7" - }, - "payable": false, - "returnParameters": { - "id": 5123, - "nodeType": "ParameterList", - "parameters": [], - "src": "2908:0:7" - }, - "scope": 5516, - "src": "2794:583:7", - "stateMutability": "nonpayable", - "superFunction": 12018, - "visibility": "external" - }, - { - "body": { - "id": 5198, - "nodeType": "Block", - "src": "3535:39:7", - "statements": [ - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5194, - "name": "smartTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5001, - "src": "3546:11:7", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Items_$4986_storage", - "typeString": "struct ConverterRegistryData.Items storage ref" - } - }, - "id": 5195, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "array", - "nodeType": "MemberAccess", - "referencedDeclaration": 4981, - "src": "3546:17:7", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 5196, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3546:24:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 5193, - "id": 5197, - "nodeType": "Return", - "src": "3539:31:7" - } - ] - }, - "documentation": "@dev returns the number of smart tokens\n\t * @return number of smart tokens", - "id": 5199, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getSmartTokenCount", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5190, - "nodeType": "ParameterList", - "parameters": [], - "src": "3500:2:7" - }, - "payable": false, - "returnParameters": { - "id": 5193, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5192, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5199, - "src": "3526:7:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5191, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3526:7:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3525:9:7" - }, - "scope": 5516, - "src": "3473:101:7", - "stateMutability": "view", - "superFunction": 12023, - "visibility": "external" - }, - { - "body": { - "id": 5208, - "nodeType": "Block", - "src": "3726:32:7", - "statements": [ - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5205, - "name": "smartTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5001, - "src": "3737:11:7", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Items_$4986_storage", - "typeString": "struct ConverterRegistryData.Items storage ref" - } - }, - "id": 5206, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "array", - "nodeType": "MemberAccess", - "referencedDeclaration": 4981, - "src": "3737:17:7", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "functionReturnParameters": 5204, - "id": 5207, - "nodeType": "Return", - "src": "3730:24:7" - } - ] - }, - "documentation": "@dev returns the list of smart tokens\n\t * @return list of smart tokens", - "id": 5209, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getSmartTokens", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5200, - "nodeType": "ParameterList", - "parameters": [], - "src": "3689:2:7" - }, - "payable": false, - "returnParameters": { - "id": 5204, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5203, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5209, - "src": "3715:9:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 5201, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3715:7:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 5202, - "length": null, - "nodeType": "ArrayTypeName", - "src": "3715:9:7", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3714:11:7" - }, - "scope": 5516, - "src": "3666:92:7", - "stateMutability": "view", - "superFunction": 12029, - "visibility": "external" - }, - { - "body": { - "id": 5221, - "nodeType": "Block", - "src": "3963:40:7", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5216, - "name": "smartTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5001, - "src": "3974:11:7", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Items_$4986_storage", - "typeString": "struct ConverterRegistryData.Items storage ref" - } - }, - "id": 5217, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "array", - "nodeType": "MemberAccess", - "referencedDeclaration": 4981, - "src": "3974:17:7", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 5219, - "indexExpression": { - "argumentTypes": null, - "id": 5218, - "name": "_index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5211, - "src": "3992:6:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3974:25:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 5215, - "id": 5220, - "nodeType": "Return", - "src": "3967:32:7" - } - ] - }, - "documentation": "@dev returns the smart token at a given index\n\t * @param _index index\n@return smart token at the given index", - "id": 5222, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getSmartToken", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5212, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5211, - "name": "_index", - "nodeType": "VariableDeclaration", - "scope": 5222, - "src": "3915:14:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5210, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3915:7:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3914:16:7" - }, - "payable": false, - "returnParameters": { - "id": 5215, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5214, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5222, - "src": "3954:7:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5213, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3954:7:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3953:9:7" - }, - "scope": 5516, - "src": "3892:111:7", - "stateMutability": "view", - "superFunction": 12036, - "visibility": "external" - }, - { - "body": { - "id": 5235, - "nodeType": "Block", - "src": "4240:46:7", - "statements": [ - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5229, - "name": "smartTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5001, - "src": "4251:11:7", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Items_$4986_storage", - "typeString": "struct ConverterRegistryData.Items storage ref" - } - }, - "id": 5230, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "table", - "nodeType": "MemberAccess", - "referencedDeclaration": 4985, - "src": "4251:17:7", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Item_$4978_storage_$", - "typeString": "mapping(address => struct ConverterRegistryData.Item storage ref)" - } - }, - "id": 5232, - "indexExpression": { - "argumentTypes": null, - "id": 5231, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5224, - "src": "4269:6:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4251:25:7", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Item_$4978_storage", - "typeString": "struct ConverterRegistryData.Item storage ref" - } - }, - "id": 5233, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "valid", - "nodeType": "MemberAccess", - "referencedDeclaration": 4975, - "src": "4251:31:7", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 5228, - "id": 5234, - "nodeType": "Return", - "src": "4244:38:7" - } - ] - }, - "documentation": "@dev checks whether or not a given value is a smart token\n\t * @param _value value\n@return true if the given value is a smart token, false if not", - "id": 5236, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "isSmartToken", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5225, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5224, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 5236, - "src": "4195:14:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5223, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4195:7:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4194:16:7" - }, - "payable": false, - "returnParameters": { - "id": 5228, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5227, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5236, - "src": "4234:4:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5226, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "4234:4:7", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4233:6:7" - }, - "scope": 5516, - "src": "4173:113:7", - "stateMutability": "view", - "superFunction": 12043, - "visibility": "external" - }, - { - "body": { - "id": 5245, - "nodeType": "Block", - "src": "4453:42:7", - "statements": [ - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5241, - "name": "liquidityPools", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5003, - "src": "4464:14:7", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Items_$4986_storage", - "typeString": "struct ConverterRegistryData.Items storage ref" - } - }, - "id": 5242, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "array", - "nodeType": "MemberAccess", - "referencedDeclaration": 4981, - "src": "4464:20:7", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 5243, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4464:27:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 5240, - "id": 5244, - "nodeType": "Return", - "src": "4457:34:7" - } - ] - }, - "documentation": "@dev returns the number of liquidity pools\n\t * @return number of liquidity pools", - "id": 5246, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getLiquidityPoolCount", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5237, - "nodeType": "ParameterList", - "parameters": [], - "src": "4418:2:7" - }, - "payable": false, - "returnParameters": { - "id": 5240, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5239, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5246, - "src": "4444:7:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5238, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4444:7:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4443:9:7" - }, - "scope": 5516, - "src": "4388:107:7", - "stateMutability": "view", - "superFunction": 12048, - "visibility": "external" - }, - { - "body": { - "id": 5255, - "nodeType": "Block", - "src": "4656:35:7", - "statements": [ - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5252, - "name": "liquidityPools", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5003, - "src": "4667:14:7", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Items_$4986_storage", - "typeString": "struct ConverterRegistryData.Items storage ref" - } - }, - "id": 5253, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "array", - "nodeType": "MemberAccess", - "referencedDeclaration": 4981, - "src": "4667:20:7", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "functionReturnParameters": 5251, - "id": 5254, - "nodeType": "Return", - "src": "4660:27:7" - } - ] - }, - "documentation": "@dev returns the list of liquidity pools\n\t * @return list of liquidity pools", - "id": 5256, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getLiquidityPools", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5247, - "nodeType": "ParameterList", - "parameters": [], - "src": "4619:2:7" - }, - "payable": false, - "returnParameters": { - "id": 5251, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5250, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5256, - "src": "4645:9:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 5248, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4645:7:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 5249, - "length": null, - "nodeType": "ArrayTypeName", - "src": "4645:9:7", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4644:11:7" - }, - "scope": 5516, - "src": "4593:98:7", - "stateMutability": "view", - "superFunction": 12054, - "visibility": "external" - }, - { - "body": { - "id": 5268, - "nodeType": "Block", - "src": "4905:43:7", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5263, - "name": "liquidityPools", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5003, - "src": "4916:14:7", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Items_$4986_storage", - "typeString": "struct ConverterRegistryData.Items storage ref" - } - }, - "id": 5264, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "array", - "nodeType": "MemberAccess", - "referencedDeclaration": 4981, - "src": "4916:20:7", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 5266, - "indexExpression": { - "argumentTypes": null, - "id": 5265, - "name": "_index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5258, - "src": "4937:6:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4916:28:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 5262, - "id": 5267, - "nodeType": "Return", - "src": "4909:35:7" - } - ] - }, - "documentation": "@dev returns the liquidity pool at a given index\n\t * @param _index index\n@return liquidity pool at the given index", - "id": 5269, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getLiquidityPool", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5259, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5258, - "name": "_index", - "nodeType": "VariableDeclaration", - "scope": 5269, - "src": "4857:14:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5257, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4857:7:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4856:16:7" - }, - "payable": false, - "returnParameters": { - "id": 5262, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5261, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5269, - "src": "4896:7:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5260, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4896:7:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4895:9:7" - }, - "scope": 5516, - "src": "4831:117:7", - "stateMutability": "view", - "superFunction": 12061, - "visibility": "external" - }, - { - "body": { - "id": 5282, - "nodeType": "Block", - "src": "5194:49:7", - "statements": [ - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5276, - "name": "liquidityPools", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5003, - "src": "5205:14:7", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Items_$4986_storage", - "typeString": "struct ConverterRegistryData.Items storage ref" - } - }, - "id": 5277, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "table", - "nodeType": "MemberAccess", - "referencedDeclaration": 4985, - "src": "5205:20:7", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Item_$4978_storage_$", - "typeString": "mapping(address => struct ConverterRegistryData.Item storage ref)" - } - }, - "id": 5279, - "indexExpression": { - "argumentTypes": null, - "id": 5278, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5271, - "src": "5226:6:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5205:28:7", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Item_$4978_storage", - "typeString": "struct ConverterRegistryData.Item storage ref" - } - }, - "id": 5280, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "valid", - "nodeType": "MemberAccess", - "referencedDeclaration": 4975, - "src": "5205:34:7", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 5275, - "id": 5281, - "nodeType": "Return", - "src": "5198:41:7" - } - ] - }, - "documentation": "@dev checks whether or not a given value is a liquidity pool\n\t * @param _value value\n@return true if the given value is a liquidity pool, false if not", - "id": 5283, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "isLiquidityPool", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5272, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5271, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 5283, - "src": "5149:14:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5270, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5149:7:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5148:16:7" - }, - "payable": false, - "returnParameters": { - "id": 5275, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5274, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5283, - "src": "5188:4:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5273, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "5188:4:7", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5187:6:7" - }, - "scope": 5516, - "src": "5124:119:7", - "stateMutability": "view", - "superFunction": 12068, - "visibility": "external" - }, - { - "body": { - "id": 5292, - "nodeType": "Block", - "src": "5419:45:7", - "statements": [ - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5288, - "name": "convertibleTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5005, - "src": "5430:17:7", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Lists_$4999_storage", - "typeString": "struct ConverterRegistryData.Lists storage ref" - } - }, - "id": 5289, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "array", - "nodeType": "MemberAccess", - "referencedDeclaration": 4994, - "src": "5430:23:7", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 5290, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5430:30:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 5287, - "id": 5291, - "nodeType": "Return", - "src": "5423:37:7" - } - ] - }, - "documentation": "@dev returns the number of convertible tokens\n\t * @return number of convertible tokens", - "id": 5293, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getConvertibleTokenCount", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5284, - "nodeType": "ParameterList", - "parameters": [], - "src": "5384:2:7" - }, - "payable": false, - "returnParameters": { - "id": 5287, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5286, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5293, - "src": "5410:7:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5285, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5410:7:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5409:9:7" - }, - "scope": 5516, - "src": "5351:113:7", - "stateMutability": "view", - "superFunction": 12073, - "visibility": "external" - }, - { - "body": { - "id": 5302, - "nodeType": "Block", - "src": "5634:38:7", - "statements": [ - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5299, - "name": "convertibleTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5005, - "src": "5645:17:7", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Lists_$4999_storage", - "typeString": "struct ConverterRegistryData.Lists storage ref" - } - }, - "id": 5300, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "array", - "nodeType": "MemberAccess", - "referencedDeclaration": 4994, - "src": "5645:23:7", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "functionReturnParameters": 5298, - "id": 5301, - "nodeType": "Return", - "src": "5638:30:7" - } - ] - }, - "documentation": "@dev returns the list of convertible tokens\n\t * @return list of convertible tokens", - "id": 5303, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getConvertibleTokens", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5294, - "nodeType": "ParameterList", - "parameters": [], - "src": "5597:2:7" - }, - "payable": false, - "returnParameters": { - "id": 5298, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5297, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5303, - "src": "5623:9:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 5295, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5623:7:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 5296, - "length": null, - "nodeType": "ArrayTypeName", - "src": "5623:9:7", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5622:11:7" - }, - "scope": 5516, - "src": "5568:104:7", - "stateMutability": "view", - "superFunction": 12079, - "visibility": "external" - }, - { - "body": { - "id": 5315, - "nodeType": "Block", - "src": "5895:46:7", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5310, - "name": "convertibleTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5005, - "src": "5906:17:7", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Lists_$4999_storage", - "typeString": "struct ConverterRegistryData.Lists storage ref" - } - }, - "id": 5311, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "array", - "nodeType": "MemberAccess", - "referencedDeclaration": 4994, - "src": "5906:23:7", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 5313, - "indexExpression": { - "argumentTypes": null, - "id": 5312, - "name": "_index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5305, - "src": "5930:6:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5906:31:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 5309, - "id": 5314, - "nodeType": "Return", - "src": "5899:38:7" - } - ] - }, - "documentation": "@dev returns the convertible token at a given index\n\t * @param _index index\n@return convertible token at the given index", - "id": 5316, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getConvertibleToken", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5306, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5305, - "name": "_index", - "nodeType": "VariableDeclaration", - "scope": 5316, - "src": "5847:14:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5304, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5847:7:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5846:16:7" - }, - "payable": false, - "returnParameters": { - "id": 5309, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5308, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5316, - "src": "5886:7:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5307, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5886:7:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5885:9:7" - }, - "scope": 5516, - "src": "5818:123:7", - "stateMutability": "view", - "superFunction": 12086, - "visibility": "external" - }, - { - "body": { - "id": 5333, - "nodeType": "Block", - "src": "6196:69:7", - "statements": [ - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5331, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5323, - "name": "convertibleTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5005, - "src": "6207:17:7", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Lists_$4999_storage", - "typeString": "struct ConverterRegistryData.Lists storage ref" - } - }, - "id": 5324, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "table", - "nodeType": "MemberAccess", - "referencedDeclaration": 4998, - "src": "6207:23:7", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_List_$4991_storage_$", - "typeString": "mapping(address => struct ConverterRegistryData.List storage ref)" - } - }, - "id": 5326, - "indexExpression": { - "argumentTypes": null, - "id": 5325, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5318, - "src": "6231:6:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6207:31:7", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$4991_storage", - "typeString": "struct ConverterRegistryData.List storage ref" - } - }, - "id": 5327, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "items", - "nodeType": "MemberAccess", - "referencedDeclaration": 4990, - "src": "6207:37:7", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Items_$4986_storage", - "typeString": "struct ConverterRegistryData.Items storage ref" - } - }, - "id": 5328, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "array", - "nodeType": "MemberAccess", - "referencedDeclaration": 4981, - "src": "6207:43:7", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 5329, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6207:50:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 5330, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6260:1:7", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "6207:54:7", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 5322, - "id": 5332, - "nodeType": "Return", - "src": "6200:61:7" - } - ] - }, - "documentation": "@dev checks whether or not a given value is a convertible token\n\t * @param _value value\n@return true if the given value is a convertible token, false if not", - "id": 5334, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "isConvertibleToken", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5319, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5318, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 5334, - "src": "6151:14:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5317, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6151:7:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6150:16:7" - }, - "payable": false, - "returnParameters": { - "id": 5322, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5321, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5334, - "src": "6190:4:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5320, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "6190:4:7", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6189:6:7" - }, - "scope": 5516, - "src": "6123:142:7", - "stateMutability": "view", - "superFunction": 12093, - "visibility": "external" - }, - { - "body": { - "id": 5349, - "nodeType": "Block", - "src": "6597:76:7", - "statements": [ - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5341, - "name": "convertibleTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5005, - "src": "6608:17:7", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Lists_$4999_storage", - "typeString": "struct ConverterRegistryData.Lists storage ref" - } - }, - "id": 5342, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "table", - "nodeType": "MemberAccess", - "referencedDeclaration": 4998, - "src": "6608:23:7", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_List_$4991_storage_$", - "typeString": "mapping(address => struct ConverterRegistryData.List storage ref)" - } - }, - "id": 5344, - "indexExpression": { - "argumentTypes": null, - "id": 5343, - "name": "_convertibleToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5336, - "src": "6632:17:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6608:42:7", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$4991_storage", - "typeString": "struct ConverterRegistryData.List storage ref" - } - }, - "id": 5345, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "items", - "nodeType": "MemberAccess", - "referencedDeclaration": 4990, - "src": "6608:48:7", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Items_$4986_storage", - "typeString": "struct ConverterRegistryData.Items storage ref" - } - }, - "id": 5346, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "array", - "nodeType": "MemberAccess", - "referencedDeclaration": 4981, - "src": "6608:54:7", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 5347, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6608:61:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 5340, - "id": 5348, - "nodeType": "Return", - "src": "6601:68:7" - } - ] - }, - "documentation": "@dev returns the number of smart tokens associated with a given convertible token\n\t * @param _convertibleToken convertible token\n@return number of smart tokens associated with the given convertible token", - "id": 5350, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getConvertibleTokenSmartTokenCount", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5337, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5336, - "name": "_convertibleToken", - "nodeType": "VariableDeclaration", - "scope": 5350, - "src": "6538:25:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5335, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6538:7:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6537:27:7" - }, - "payable": false, - "returnParameters": { - "id": 5340, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5339, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5350, - "src": "6588:7:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5338, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6588:7:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6587:9:7" - }, - "scope": 5516, - "src": "6494:179:7", - "stateMutability": "view", - "superFunction": 12100, - "visibility": "external" - }, - { - "body": { - "id": 5365, - "nodeType": "Block", - "src": "6999:69:7", - "statements": [ - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5358, - "name": "convertibleTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5005, - "src": "7010:17:7", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Lists_$4999_storage", - "typeString": "struct ConverterRegistryData.Lists storage ref" - } - }, - "id": 5359, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "table", - "nodeType": "MemberAccess", - "referencedDeclaration": 4998, - "src": "7010:23:7", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_List_$4991_storage_$", - "typeString": "mapping(address => struct ConverterRegistryData.List storage ref)" - } - }, - "id": 5361, - "indexExpression": { - "argumentTypes": null, - "id": 5360, - "name": "_convertibleToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5352, - "src": "7034:17:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7010:42:7", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$4991_storage", - "typeString": "struct ConverterRegistryData.List storage ref" - } - }, - "id": 5362, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "items", - "nodeType": "MemberAccess", - "referencedDeclaration": 4990, - "src": "7010:48:7", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Items_$4986_storage", - "typeString": "struct ConverterRegistryData.Items storage ref" - } - }, - "id": 5363, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "array", - "nodeType": "MemberAccess", - "referencedDeclaration": 4981, - "src": "7010:54:7", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "functionReturnParameters": 5357, - "id": 5364, - "nodeType": "Return", - "src": "7003:61:7" - } - ] - }, - "documentation": "@dev returns the list of smart tokens associated with a given convertible token\n\t * @param _convertibleToken convertible token\n@return list of smart tokens associated with the given convertible token", - "id": 5366, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getConvertibleTokenSmartTokens", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5353, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5352, - "name": "_convertibleToken", - "nodeType": "VariableDeclaration", - "scope": 5366, - "src": "6938:25:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5351, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6938:7:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6937:27:7" - }, - "payable": false, - "returnParameters": { - "id": 5357, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5356, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5366, - "src": "6988:9:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 5354, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6988:7:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 5355, - "length": null, - "nodeType": "ArrayTypeName", - "src": "6988:9:7", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6987:11:7" - }, - "scope": 5516, - "src": "6898:170:7", - "stateMutability": "view", - "superFunction": 12108, - "visibility": "external" - }, - { - "body": { - "id": 5384, - "nodeType": "Block", - "src": "7402:77:7", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5375, - "name": "convertibleTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5005, - "src": "7413:17:7", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Lists_$4999_storage", - "typeString": "struct ConverterRegistryData.Lists storage ref" - } - }, - "id": 5376, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "table", - "nodeType": "MemberAccess", - "referencedDeclaration": 4998, - "src": "7413:23:7", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_List_$4991_storage_$", - "typeString": "mapping(address => struct ConverterRegistryData.List storage ref)" - } - }, - "id": 5378, - "indexExpression": { - "argumentTypes": null, - "id": 5377, - "name": "_convertibleToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5368, - "src": "7437:17:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7413:42:7", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$4991_storage", - "typeString": "struct ConverterRegistryData.List storage ref" - } - }, - "id": 5379, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "items", - "nodeType": "MemberAccess", - "referencedDeclaration": 4990, - "src": "7413:48:7", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Items_$4986_storage", - "typeString": "struct ConverterRegistryData.Items storage ref" - } - }, - "id": 5380, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "array", - "nodeType": "MemberAccess", - "referencedDeclaration": 4981, - "src": "7413:54:7", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 5382, - "indexExpression": { - "argumentTypes": null, - "id": 5381, - "name": "_index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5370, - "src": "7468:6:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7413:62:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 5374, - "id": 5383, - "nodeType": "Return", - "src": "7406:69:7" - } - ] - }, - "documentation": "@dev returns the smart token associated with a given convertible token at a given index\n\t * @param _index index\n@return smart token associated with the given convertible token at the given index", - "id": 5385, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getConvertibleTokenSmartToken", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5371, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5368, - "name": "_convertibleToken", - "nodeType": "VariableDeclaration", - "scope": 5385, - "src": "7327:25:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5367, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7327:7:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5370, - "name": "_index", - "nodeType": "VariableDeclaration", - "scope": 5385, - "src": "7354:14:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5369, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7354:7:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7326:43:7" - }, - "payable": false, - "returnParameters": { - "id": 5374, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5373, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5385, - "src": "7393:7:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5372, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7393:7:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7392:9:7" - }, - "scope": 5516, - "src": "7288:191:7", - "stateMutability": "view", - "superFunction": 12117, - "visibility": "external" - }, - { - "body": { - "id": 5404, - "nodeType": "Block", - "src": "7866:83:7", - "statements": [ - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5394, - "name": "convertibleTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5005, - "src": "7877:17:7", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Lists_$4999_storage", - "typeString": "struct ConverterRegistryData.Lists storage ref" - } - }, - "id": 5395, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "table", - "nodeType": "MemberAccess", - "referencedDeclaration": 4998, - "src": "7877:23:7", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_List_$4991_storage_$", - "typeString": "mapping(address => struct ConverterRegistryData.List storage ref)" - } - }, - "id": 5397, - "indexExpression": { - "argumentTypes": null, - "id": 5396, - "name": "_convertibleToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5387, - "src": "7901:17:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7877:42:7", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$4991_storage", - "typeString": "struct ConverterRegistryData.List storage ref" - } - }, - "id": 5398, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "items", - "nodeType": "MemberAccess", - "referencedDeclaration": 4990, - "src": "7877:48:7", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Items_$4986_storage", - "typeString": "struct ConverterRegistryData.Items storage ref" - } - }, - "id": 5399, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "table", - "nodeType": "MemberAccess", - "referencedDeclaration": 4985, - "src": "7877:54:7", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Item_$4978_storage_$", - "typeString": "mapping(address => struct ConverterRegistryData.Item storage ref)" - } - }, - "id": 5401, - "indexExpression": { - "argumentTypes": null, - "id": 5400, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5389, - "src": "7932:6:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7877:62:7", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Item_$4978_storage", - "typeString": "struct ConverterRegistryData.Item storage ref" - } - }, - "id": 5402, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "valid", - "nodeType": "MemberAccess", - "referencedDeclaration": 4975, - "src": "7877:68:7", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 5393, - "id": 5403, - "nodeType": "Return", - "src": "7870:75:7" - } - ] - }, - "documentation": "@dev checks whether or not a given value is a smart token of a given convertible token\n\t * @param _convertibleToken convertible token\n@param _value value\n@return true if the given value is a smart token of the given convertible token, false it not", - "id": 5405, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "isConvertibleTokenSmartToken", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5390, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5387, - "name": "_convertibleToken", - "nodeType": "VariableDeclaration", - "scope": 5405, - "src": "7794:25:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5386, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7794:7:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5389, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 5405, - "src": "7821:14:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5388, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7821:7:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7793:43:7" - }, - "payable": false, - "returnParameters": { - "id": 5393, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5392, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5405, - "src": "7860:4:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5391, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "7860:4:7", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7859:6:7" - }, - "scope": 5516, - "src": "7756:193:7", - "stateMutability": "view", - "superFunction": 12126, - "visibility": "external" - }, - { - "body": { - "id": 5447, - "nodeType": "Block", - "src": "8155:160:7", - "statements": [ - { - "assignments": [ - 5416 - ], - "declarations": [ - { - "constant": false, - "id": 5416, - "name": "item", - "nodeType": "VariableDeclaration", - "scope": 5448, - "src": "8159:17:7", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Item_$4978_storage_ptr", - "typeString": "struct ConverterRegistryData.Item" - }, - "typeName": { - "contractScope": null, - "id": 5415, - "name": "Item", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4978, - "src": "8159:4:7", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Item_$4978_storage_ptr", - "typeString": "struct ConverterRegistryData.Item" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 5421, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5417, - "name": "_items", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5407, - "src": "8179:6:7", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Items_$4986_storage_ptr", - "typeString": "struct ConverterRegistryData.Items storage pointer" - } - }, - "id": 5418, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "table", - "nodeType": "MemberAccess", - "referencedDeclaration": 4985, - "src": "8179:12:7", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Item_$4978_storage_$", - "typeString": "mapping(address => struct ConverterRegistryData.Item storage ref)" - } - }, - "id": 5420, - "indexExpression": { - "argumentTypes": null, - "id": 5419, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5409, - "src": "8192:6:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "8179:20:7", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Item_$4978_storage", - "typeString": "struct ConverterRegistryData.Item storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "8159:40:7" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5425, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "8211:11:7", - "subExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5423, - "name": "item", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5416, - "src": "8212:4:7", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Item_$4978_storage_ptr", - "typeString": "struct ConverterRegistryData.Item storage pointer" - } - }, - "id": 5424, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "valid", - "nodeType": "MemberAccess", - "referencedDeclaration": 4975, - "src": "8212:10:7", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552525f494e56414c49445f4954454d", - "id": 5426, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8224:18:7", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_45c52aff26d012f687a90a37723f3c6469b3bdb8dce3fb6f14072d935b05b47b", - "typeString": "literal_string \"ERR_INVALID_ITEM\"" - }, - "value": "ERR_INVALID_ITEM" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_45c52aff26d012f687a90a37723f3c6469b3bdb8dce3fb6f14072d935b05b47b", - "typeString": "literal_string \"ERR_INVALID_ITEM\"" - } - ], - "id": 5422, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 22341, - 22342 - ], - "referencedDeclaration": 22342, - "src": "8203:7:7", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 5427, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8203:40:7", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5428, - "nodeType": "ExpressionStatement", - "src": "8203:40:7" - }, - { - "expression": { - "argumentTypes": null, - "id": 5439, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5429, - "name": "item", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5416, - "src": "8248:4:7", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Item_$4978_storage_ptr", - "typeString": "struct ConverterRegistryData.Item storage pointer" - } - }, - "id": 5431, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "index", - "nodeType": "MemberAccess", - "referencedDeclaration": 4977, - "src": "8248:10:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5438, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5435, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5409, - "src": "8279:6:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5432, - "name": "_items", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5407, - "src": "8261:6:7", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Items_$4986_storage_ptr", - "typeString": "struct ConverterRegistryData.Items storage pointer" - } - }, - "id": 5433, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "array", - "nodeType": "MemberAccess", - "referencedDeclaration": 4981, - "src": "8261:12:7", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 5434, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "push", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8261:17:7", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) returns (uint256)" - } - }, - "id": 5436, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8261:25:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 5437, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8289:1:7", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "8261:29:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8248:42:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 5440, - "nodeType": "ExpressionStatement", - "src": "8248:42:7" - }, - { - "expression": { - "argumentTypes": null, - "id": 5445, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5441, - "name": "item", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5416, - "src": "8294:4:7", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Item_$4978_storage_ptr", - "typeString": "struct ConverterRegistryData.Item storage pointer" - } - }, - "id": 5443, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "valid", - "nodeType": "MemberAccess", - "referencedDeclaration": 4975, - "src": "8294:10:7", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 5444, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8307:4:7", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "8294:17:7", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 5446, - "nodeType": "ExpressionStatement", - "src": "8294:17:7" - } - ] - }, - "documentation": "@dev adds an item to a list of items\n\t * @param _items list of items\n@param _value item's value", - "id": 5448, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 5412, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5409, - "src": "8147:6:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 5413, - "modifierName": { - "argumentTypes": null, - "id": 5411, - "name": "validAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22011, - "src": "8134:12:7", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$", - "typeString": "modifier (address)" - } - }, - "nodeType": "ModifierInvocation", - "src": "8134:20:7" - } - ], - "name": "addItem", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5410, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5407, - "name": "_items", - "nodeType": "VariableDeclaration", - "scope": 5448, - "src": "8087:20:7", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Items_$4986_storage_ptr", - "typeString": "struct ConverterRegistryData.Items" - }, - "typeName": { - "contractScope": null, - "id": 5406, - "name": "Items", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4986, - "src": "8087:5:7", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Items_$4986_storage_ptr", - "typeString": "struct ConverterRegistryData.Items" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5409, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 5448, - "src": "8109:14:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5408, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8109:7:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8086:38:7" - }, - "payable": false, - "returnParameters": { - "id": 5414, - "nodeType": "ParameterList", - "parameters": [], - "src": "8155:0:7" - }, - "scope": 5516, - "src": "8070:245:7", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 5514, - "nodeType": "Block", - "src": "8529:295:7", - "statements": [ - { - "assignments": [ - 5459 - ], - "declarations": [ - { - "constant": false, - "id": 5459, - "name": "item", - "nodeType": "VariableDeclaration", - "scope": 5515, - "src": "8533:17:7", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Item_$4978_storage_ptr", - "typeString": "struct ConverterRegistryData.Item" - }, - "typeName": { - "contractScope": null, - "id": 5458, - "name": "Item", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4978, - "src": "8533:4:7", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Item_$4978_storage_ptr", - "typeString": "struct ConverterRegistryData.Item" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 5464, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5460, - "name": "_items", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5450, - "src": "8553:6:7", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Items_$4986_storage_ptr", - "typeString": "struct ConverterRegistryData.Items storage pointer" - } - }, - "id": 5461, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "table", - "nodeType": "MemberAccess", - "referencedDeclaration": 4985, - "src": "8553:12:7", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Item_$4978_storage_$", - "typeString": "mapping(address => struct ConverterRegistryData.Item storage ref)" - } - }, - "id": 5463, - "indexExpression": { - "argumentTypes": null, - "id": 5462, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5452, - "src": "8566:6:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "8553:20:7", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Item_$4978_storage", - "typeString": "struct ConverterRegistryData.Item storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "8533:40:7" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5466, - "name": "item", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5459, - "src": "8585:4:7", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Item_$4978_storage_ptr", - "typeString": "struct ConverterRegistryData.Item storage pointer" - } - }, - "id": 5467, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "valid", - "nodeType": "MemberAccess", - "referencedDeclaration": 4975, - "src": "8585:10:7", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552525f494e56414c49445f4954454d", - "id": 5468, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8597:18:7", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_45c52aff26d012f687a90a37723f3c6469b3bdb8dce3fb6f14072d935b05b47b", - "typeString": "literal_string \"ERR_INVALID_ITEM\"" - }, - "value": "ERR_INVALID_ITEM" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_45c52aff26d012f687a90a37723f3c6469b3bdb8dce3fb6f14072d935b05b47b", - "typeString": "literal_string \"ERR_INVALID_ITEM\"" - } - ], - "id": 5465, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 22341, - 22342 - ], - "referencedDeclaration": 22342, - "src": "8577:7:7", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 5469, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8577:39:7", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5470, - "nodeType": "ExpressionStatement", - "src": "8577:39:7" - }, - { - "assignments": [ - 5472 - ], - "declarations": [ - { - "constant": false, - "id": 5472, - "name": "lastValue", - "nodeType": "VariableDeclaration", - "scope": 5515, - "src": "8621:17:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5471, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8621:7:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 5481, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5473, - "name": "_items", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5450, - "src": "8641:6:7", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Items_$4986_storage_ptr", - "typeString": "struct ConverterRegistryData.Items storage pointer" - } - }, - "id": 5474, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "array", - "nodeType": "MemberAccess", - "referencedDeclaration": 4981, - "src": "8641:12:7", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 5480, - "indexExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5479, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5475, - "name": "_items", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5450, - "src": "8654:6:7", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Items_$4986_storage_ptr", - "typeString": "struct ConverterRegistryData.Items storage pointer" - } - }, - "id": 5476, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "array", - "nodeType": "MemberAccess", - "referencedDeclaration": 4981, - "src": "8654:12:7", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 5477, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8654:19:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 5478, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8676:1:7", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "8654:23:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "8641:37:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "8621:57:7" - }, - { - "expression": { - "argumentTypes": null, - "id": 5490, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5482, - "name": "_items", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5450, - "src": "8682:6:7", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Items_$4986_storage_ptr", - "typeString": "struct ConverterRegistryData.Items storage pointer" - } - }, - "id": 5485, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "table", - "nodeType": "MemberAccess", - "referencedDeclaration": 4985, - "src": "8682:12:7", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Item_$4978_storage_$", - "typeString": "mapping(address => struct ConverterRegistryData.Item storage ref)" - } - }, - "id": 5486, - "indexExpression": { - "argumentTypes": null, - "id": 5484, - "name": "lastValue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5472, - "src": "8695:9:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "8682:23:7", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Item_$4978_storage", - "typeString": "struct ConverterRegistryData.Item storage ref" - } - }, - "id": 5487, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "index", - "nodeType": "MemberAccess", - "referencedDeclaration": 4977, - "src": "8682:29:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5488, - "name": "item", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5459, - "src": "8714:4:7", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Item_$4978_storage_ptr", - "typeString": "struct ConverterRegistryData.Item storage pointer" - } - }, - "id": 5489, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "index", - "nodeType": "MemberAccess", - "referencedDeclaration": 4977, - "src": "8714:10:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8682:42:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 5491, - "nodeType": "ExpressionStatement", - "src": "8682:42:7" - }, - { - "expression": { - "argumentTypes": null, - "id": 5499, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5492, - "name": "_items", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5450, - "src": "8728:6:7", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Items_$4986_storage_ptr", - "typeString": "struct ConverterRegistryData.Items storage pointer" - } - }, - "id": 5496, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "array", - "nodeType": "MemberAccess", - "referencedDeclaration": 4981, - "src": "8728:12:7", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 5497, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5494, - "name": "item", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5459, - "src": "8741:4:7", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Item_$4978_storage_ptr", - "typeString": "struct ConverterRegistryData.Item storage pointer" - } - }, - "id": 5495, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "index", - "nodeType": "MemberAccess", - "referencedDeclaration": 4977, - "src": "8741:10:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "8728:24:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 5498, - "name": "lastValue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5472, - "src": "8755:9:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "8728:36:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 5500, - "nodeType": "ExpressionStatement", - "src": "8728:36:7" - }, - { - "expression": { - "argumentTypes": null, - "id": 5506, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "--", - "prefix": false, - "src": "8768:21:7", - "subExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5501, - "name": "_items", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5450, - "src": "8768:6:7", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Items_$4986_storage_ptr", - "typeString": "struct ConverterRegistryData.Items storage pointer" - } - }, - "id": 5504, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "array", - "nodeType": "MemberAccess", - "referencedDeclaration": 4981, - "src": "8768:12:7", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 5505, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8768:19:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 5507, - "nodeType": "ExpressionStatement", - "src": "8768:21:7" - }, - { - "expression": { - "argumentTypes": null, - "id": 5512, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "delete", - "prefix": true, - "src": "8793:27:7", - "subExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5508, - "name": "_items", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5450, - "src": "8800:6:7", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Items_$4986_storage_ptr", - "typeString": "struct ConverterRegistryData.Items storage pointer" - } - }, - "id": 5509, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "table", - "nodeType": "MemberAccess", - "referencedDeclaration": 4985, - "src": "8800:12:7", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Item_$4978_storage_$", - "typeString": "mapping(address => struct ConverterRegistryData.Item storage ref)" - } - }, - "id": 5511, - "indexExpression": { - "argumentTypes": null, - "id": 5510, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5452, - "src": "8813:6:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "8800:20:7", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Item_$4978_storage", - "typeString": "struct ConverterRegistryData.Item storage ref" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5513, - "nodeType": "ExpressionStatement", - "src": "8793:27:7" - } - ] - }, - "documentation": "@dev removes an item from a list of items\n\t * @param _items list of items\n@param _value item's value", - "id": 5515, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 5455, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5452, - "src": "8521:6:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 5456, - "modifierName": { - "argumentTypes": null, - "id": 5454, - "name": "validAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22011, - "src": "8508:12:7", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$", - "typeString": "modifier (address)" - } - }, - "nodeType": "ModifierInvocation", - "src": "8508:20:7" - } - ], - "name": "removeItem", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5453, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5450, - "name": "_items", - "nodeType": "VariableDeclaration", - "scope": 5515, - "src": "8461:20:7", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Items_$4986_storage_ptr", - "typeString": "struct ConverterRegistryData.Items" - }, - "typeName": { - "contractScope": null, - "id": 5449, - "name": "Items", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4986, - "src": "8461:5:7", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Items_$4986_storage_ptr", - "typeString": "struct ConverterRegistryData.Items" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5452, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 5515, - "src": "8483:14:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5451, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8483:7:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8460:38:7" - }, - "payable": false, - "returnParameters": { - "id": 5457, - "nodeType": "ParameterList", - "parameters": [], - "src": "8529:0:7" - }, - "scope": 5516, - "src": "8441:383:7", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 5517, - "src": "677:8149:7" - } - ], - "src": "0:8827:7" - }, - "id": 7 - }, - "solidity/contracts/converter/ConverterUpgrader.sol": { - "ast": { - "absolutePath": "solidity/contracts/converter/ConverterUpgrader.sol", - "exportedSymbols": { - "ConverterUpgrader": [ - 6148 - ] - }, - "id": 6149, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 5518, - "literals": [ - "solidity", - "0.4", - ".26" - ], - "nodeType": "PragmaDirective", - "src": "0:23:8" - }, - { - "absolutePath": "solidity/contracts/converter/interfaces/IConverter.sol", - "file": "./interfaces/IConverter.sol", - "id": 5519, - "nodeType": "ImportDirective", - "scope": 6149, - "sourceUnit": 11818, - "src": "24:37:8", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "solidity/contracts/converter/interfaces/IConverterUpgrader.sol", - "file": "./interfaces/IConverterUpgrader.sol", - "id": 5520, - "nodeType": "ImportDirective", - "scope": 6149, - "sourceUnit": 12141, - "src": "62:45:8", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "solidity/contracts/converter/interfaces/IConverterFactory.sol", - "file": "./interfaces/IConverterFactory.sol", - "id": 5521, - "nodeType": "ImportDirective", - "scope": 6149, - "sourceUnit": 11872, - "src": "108:44:8", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "solidity/contracts/utility/ContractRegistryClient.sol", - "file": "../utility/ContractRegistryClient.sol", - "id": 5522, - "nodeType": "ImportDirective", - "scope": 6149, - "sourceUnit": 20933, - "src": "153:47:8", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "solidity/contracts/utility/interfaces/IWhitelist.sol", - "file": "../utility/interfaces/IWhitelist.sol", - "id": 5523, - "nodeType": "ImportDirective", - "scope": 6149, - "sourceUnit": 22324, - "src": "201:46:8", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "solidity/contracts/token/interfaces/IEtherToken.sol", - "file": "../token/interfaces/IEtherToken.sol", - "id": 5524, - "nodeType": "ImportDirective", - "scope": 6149, - "sourceUnit": 20267, - "src": "248:45:8", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "solidity/contracts/converter/types/liquidity-pool-v2/interfaces/ILiquidityPoolV2Converter.sol", - "file": "./types/liquidity-pool-v2/interfaces/ILiquidityPoolV2Converter.sol", - "id": 5525, - "nodeType": "ImportDirective", - "scope": 6149, - "sourceUnit": 16974, - "src": "294:76:8", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 5526, - "name": "IConverterUpgrader", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 12140, - "src": "1193:18:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterUpgrader_$12140", - "typeString": "contract IConverterUpgrader" - } - }, - "id": 5527, - "nodeType": "InheritanceSpecifier", - "src": "1193:18:8" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 5528, - "name": "ContractRegistryClient", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20932, - "src": "1213:22:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ContractRegistryClient_$20932", - "typeString": "contract ContractRegistryClient" - } - }, - "id": 5529, - "nodeType": "InheritanceSpecifier", - "src": "1213:22:8" - } - ], - "contractDependencies": [ - 12140, - 20932, - 21324, - 22052, - 22247 - ], - "contractKind": "contract", - "documentation": "@dev Converter Upgrader\n * The converter upgrader contract allows upgrading an older converter contract (0.4 and up)\nto the latest version.\nTo begin the upgrade process, simply execute the 'upgrade' function.\nAt the end of the process, the ownership of the newly upgraded converter will be transferred\nback to the original owner and the original owner will need to execute the 'acceptOwnership' function.\n * The address of the new converter is available in the ConverterUpgrade event.\n * Note that for older converters that don't yet have the 'upgrade' function, ownership should first\nbe transferred manually to the ConverterUpgrader contract using the 'transferOwnership' function\nand then the upgrader 'upgrade' function should be executed directly.", - "fullyImplemented": true, - "id": 6148, - "linearizedBaseContracts": [ - 6148, - 20932, - 22052, - 21324, - 22247, - 12140 - ], - "name": "ConverterUpgrader", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": true, - "id": 5532, - "name": "ETH_RESERVE_ADDRESS", - "nodeType": "VariableDeclaration", - "scope": 6148, - "src": "1239:89:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5530, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1239:7:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "307845656565654565656545654565654565456545656545454565656565456565656565656545456545", - "id": 5531, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1286:42:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "value": "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE" - }, - "visibility": "private" - }, - { - "constant": false, - "id": 5534, - "name": "etherToken", - "nodeType": "VariableDeclaration", - "scope": 6148, - "src": "1331:29:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IEtherToken_$20266", - "typeString": "contract IEtherToken" - }, - "typeName": { - "contractScope": null, - "id": 5533, - "name": "IEtherToken", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20266, - "src": "1331:11:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IEtherToken_$20266", - "typeString": "contract IEtherToken" - } - }, - "value": null, - "visibility": "public" - }, - { - "anonymous": false, - "documentation": "@dev triggered when the contract accept a converter ownership\n\t * @param _converter converter address\n@param _owner new owner - local upgrader address", - "id": 5540, - "name": "ConverterOwned", - "nodeType": "EventDefinition", - "parameters": { - "id": 5539, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5536, - "indexed": true, - "name": "_converter", - "nodeType": "VariableDeclaration", - "scope": 5540, - "src": "1566:26:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5535, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1566:7:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5538, - "indexed": true, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 5540, - "src": "1594:22:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5537, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1594:7:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1565:52:8" - }, - "src": "1545:73:8" - }, - { - "anonymous": false, - "documentation": "@dev triggered when the upgrading process is done\n\t * @param _oldConverter old converter address\n@param _newConverter new converter address", - "id": 5546, - "name": "ConverterUpgrade", - "nodeType": "EventDefinition", - "parameters": { - "id": 5545, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5542, - "indexed": true, - "name": "_oldConverter", - "nodeType": "VariableDeclaration", - "scope": 5546, - "src": "1812:29:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5541, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1812:7:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5544, - "indexed": true, - "name": "_newConverter", - "nodeType": "VariableDeclaration", - "scope": 5546, - "src": "1843:29:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5543, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1843:7:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1811:62:8" - }, - "src": "1789:85:8" - }, - { - "body": { - "id": 5560, - "nodeType": "Block", - "src": "2116:32:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 5558, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 5556, - "name": "etherToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5534, - "src": "2120:10:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IEtherToken_$20266", - "typeString": "contract IEtherToken" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 5557, - "name": "_etherToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5550, - "src": "2133:11:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IEtherToken_$20266", - "typeString": "contract IEtherToken" - } - }, - "src": "2120:24:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IEtherToken_$20266", - "typeString": "contract IEtherToken" - } - }, - "id": 5559, - "nodeType": "ExpressionStatement", - "src": "2120:24:8" - } - ] - }, - "documentation": "@dev initializes a new ConverterUpgrader instance\n\t * @param _registry address of a contract registry contract", - "id": 5561, - "implemented": true, - "isConstructor": true, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 5553, - "name": "_registry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5548, - "src": "2105:9:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IContractRegistry_$22220", - "typeString": "contract IContractRegistry" - } - } - ], - "id": 5554, - "modifierName": { - "argumentTypes": null, - "id": 5552, - "name": "ContractRegistryClient", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20932, - "src": "2082:22:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ContractRegistryClient_$20932_$", - "typeString": "type(contract ContractRegistryClient)" - } - }, - "nodeType": "ModifierInvocation", - "src": "2082:33:8" - } - ], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5551, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5548, - "name": "_registry", - "nodeType": "VariableDeclaration", - "scope": 5561, - "src": "2021:27:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IContractRegistry_$22220", - "typeString": "contract IContractRegistry" - }, - "typeName": { - "contractScope": null, - "id": 5547, - "name": "IContractRegistry", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 22220, - "src": "2021:17:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IContractRegistry_$22220", - "typeString": "contract IContractRegistry" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5550, - "name": "_etherToken", - "nodeType": "VariableDeclaration", - "scope": 5561, - "src": "2050:23:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IEtherToken_$20266", - "typeString": "contract IEtherToken" - }, - "typeName": { - "contractScope": null, - "id": 5549, - "name": "IEtherToken", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20266, - "src": "2050:11:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IEtherToken_$20266", - "typeString": "contract IEtherToken" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2020:54:8" - }, - "payable": false, - "returnParameters": { - "id": 5555, - "nodeType": "ParameterList", - "parameters": [], - "src": "2116:0:8" - }, - "scope": 6148, - "src": "2009:139:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 5574, - "nodeType": "Block", - "src": "2571:52:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5568, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22338, - "src": "2597:3:8", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 5569, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2597:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 5567, - "name": "IConverter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11817, - "src": "2586:10:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IConverter_$11817_$", - "typeString": "type(contract IConverter)" - } - }, - "id": 5570, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2586:22:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - { - "argumentTypes": null, - "id": 5571, - "name": "_version", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5563, - "src": "2610:8:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 5566, - "name": "upgradeOld", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5701, - "src": "2575:10:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IConverter_$11817_$_t_bytes32_$returns$__$", - "typeString": "function (contract IConverter,bytes32)" - } - }, - "id": 5572, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2575:44:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5573, - "nodeType": "ExpressionStatement", - "src": "2575:44:8" - } - ] - }, - "documentation": "@dev upgrades an old converter to the latest version\nwill throw if ownership wasn't transferred to the upgrader before calling this function.\nownership of the new converter will be transferred back to the original owner.\nfires the ConverterUpgrade event upon success.\ncan only be called by a converter\n\t * @param _version old converter version", - "id": 5575, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "upgrade", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5564, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5563, - "name": "_version", - "nodeType": "VariableDeclaration", - "scope": 5575, - "src": "2546:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 5562, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "2546:7:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2545:18:8" - }, - "payable": false, - "returnParameters": { - "id": 5565, - "nodeType": "ParameterList", - "parameters": [], - "src": "2571:0:8" - }, - "scope": 6148, - "src": "2529:94:8", - "stateMutability": "nonpayable", - "superFunction": 12134, - "visibility": "public" - }, - { - "body": { - "id": 5590, - "nodeType": "Block", - "src": "3045:61:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5582, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22338, - "src": "3071:3:8", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 5583, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3071:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 5581, - "name": "IConverter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11817, - "src": "3060:10:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IConverter_$11817_$", - "typeString": "type(contract IConverter)" - } - }, - "id": 5584, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3060:22:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5586, - "name": "_version", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5577, - "src": "3092:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - ], - "id": 5585, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3084:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes32_$", - "typeString": "type(bytes32)" - }, - "typeName": "bytes32" - }, - "id": 5587, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3084:17:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 5580, - "name": "upgradeOld", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5701, - "src": "3049:10:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IConverter_$11817_$_t_bytes32_$returns$__$", - "typeString": "function (contract IConverter,bytes32)" - } - }, - "id": 5588, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3049:53:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5589, - "nodeType": "ExpressionStatement", - "src": "3049:53:8" - } - ] - }, - "documentation": "@dev upgrades an old converter to the latest version\nwill throw if ownership wasn't transferred to the upgrader before calling this function.\nownership of the new converter will be transferred back to the original owner.\nfires the ConverterUpgrade event upon success.\ncan only be called by a converter\n\t * @param _version old converter version", - "id": 5591, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "upgrade", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5578, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5577, - "name": "_version", - "nodeType": "VariableDeclaration", - "scope": 5591, - "src": "3021:15:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 5576, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "3021:6:8", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3020:17:8" - }, - "payable": false, - "returnParameters": { - "id": 5579, - "nodeType": "ParameterList", - "parameters": [], - "src": "3045:0:8" - }, - "scope": 6148, - "src": "3004:102:8", - "stateMutability": "nonpayable", - "superFunction": 12139, - "visibility": "public" - }, - { - "body": { - "id": 5700, - "nodeType": "Block", - "src": "3576:888:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 5598, - "name": "_version", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5595, - "src": "3580:8:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "id": 5599, - "nodeType": "ExpressionStatement", - "src": "3580:8:8" - }, - { - "assignments": [ - 5601 - ], - "declarations": [ - { - "constant": false, - "id": 5601, - "name": "converter", - "nodeType": "VariableDeclaration", - "scope": 5701, - "src": "3592:20:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - }, - "typeName": { - "contractScope": null, - "id": 5600, - "name": "IConverter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 11817, - "src": "3592:10:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 5605, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5603, - "name": "_converter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5593, - "src": "3626:10:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - ], - "id": 5602, - "name": "IConverter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11817, - "src": "3615:10:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IConverter_$11817_$", - "typeString": "type(contract IConverter)" - } - }, - "id": 5604, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3615:22:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3592:45:8" - }, - { - "assignments": [ - 5607 - ], - "declarations": [ - { - "constant": false, - "id": 5607, - "name": "prevOwner", - "nodeType": "VariableDeclaration", - "scope": 5701, - "src": "3641:17:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5606, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3641:7:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 5611, - "initialValue": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 5608, - "name": "converter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5601, - "src": "3661:9:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - "id": 5609, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "owner", - "nodeType": "MemberAccess", - "referencedDeclaration": 22238, - "src": "3661:15:8", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", - "typeString": "function () view external returns (address)" - } - }, - "id": 5610, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3661:17:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3641:37:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5613, - "name": "converter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5601, - "src": "3707:9:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - ], - "id": 5612, - "name": "acceptConverterOwnership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5717, - "src": "3682:24:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IConverter_$11817_$returns$__$", - "typeString": "function (contract IConverter)" - } - }, - "id": 5614, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3682:35:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5615, - "nodeType": "ExpressionStatement", - "src": "3682:35:8" - }, - { - "assignments": [ - 5617 - ], - "declarations": [ - { - "constant": false, - "id": 5617, - "name": "newConverter", - "nodeType": "VariableDeclaration", - "scope": 5701, - "src": "3721:23:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - }, - "typeName": { - "contractScope": null, - "id": 5616, - "name": "IConverter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 11817, - "src": "3721:10:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 5621, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5619, - "name": "converter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5601, - "src": "3763:9:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - ], - "id": 5618, - "name": "createConverter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5790, - "src": "3747:15:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IConverter_$11817_$returns$_t_contract$_IConverter_$11817_$", - "typeString": "function (contract IConverter) returns (contract IConverter)" - } - }, - "id": 5620, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3747:26:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3721:52:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5623, - "name": "converter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5601, - "src": "3790:9:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - { - "argumentTypes": null, - "id": 5624, - "name": "newConverter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5617, - "src": "3801:12:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - }, - { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - ], - "id": 5622, - "name": "copyReserves", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5870, - "src": "3777:12:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IConverter_$11817_$_t_contract$_IConverter_$11817_$returns$__$", - "typeString": "function (contract IConverter,contract IConverter)" - } - }, - "id": 5625, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3777:37:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5626, - "nodeType": "ExpressionStatement", - "src": "3777:37:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5628, - "name": "converter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5601, - "src": "3836:9:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - { - "argumentTypes": null, - "id": 5629, - "name": "newConverter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5617, - "src": "3847:12:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - }, - { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - ], - "id": 5627, - "name": "copyConversionFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5890, - "src": "3818:17:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IConverter_$11817_$_t_contract$_IConverter_$11817_$returns$__$", - "typeString": "function (contract IConverter,contract IConverter)" - } - }, - "id": 5630, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3818:42:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5631, - "nodeType": "ExpressionStatement", - "src": "3818:42:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5633, - "name": "converter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5601, - "src": "3888:9:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - { - "argumentTypes": null, - "id": 5634, - "name": "newConverter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5617, - "src": "3899:12:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - }, - { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - ], - "id": 5632, - "name": "transferReserveBalances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5996, - "src": "3864:23:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IConverter_$11817_$_t_contract$_IConverter_$11817_$returns$__$", - "typeString": "function (contract IConverter,contract IConverter)" - } - }, - "id": 5635, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3864:48:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5636, - "nodeType": "ExpressionStatement", - "src": "3864:48:8" - }, - { - "assignments": [ - 5638 - ], - "declarations": [ - { - "constant": false, - "id": 5638, - "name": "anchor", - "nodeType": "VariableDeclaration", - "scope": 5701, - "src": "3916:23:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - }, - "typeName": { - "contractScope": null, - "id": 5637, - "name": "IConverterAnchor", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 11826, - "src": "3916:16:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 5642, - "initialValue": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 5639, - "name": "converter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5601, - "src": "3942:9:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - "id": 5640, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "token", - "nodeType": "MemberAccess", - "referencedDeclaration": 11774, - "src": "3942:15:8", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_IConverterAnchor_$11826_$", - "typeString": "function () view external returns (contract IConverterAnchor)" - } - }, - "id": 5641, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3942:17:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3916:43:8" - }, - { - "assignments": [ - 5644 - ], - "declarations": [ - { - "constant": false, - "id": 5644, - "name": "activate", - "nodeType": "VariableDeclaration", - "scope": 5701, - "src": "4025:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5643, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "4025:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 5652, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 5651, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5646, - "name": "converter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5601, - "src": "4064:9:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - ], - "id": 5645, - "name": "isV28OrHigherConverter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6147, - "src": "4041:22:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_contract$_IConverter_$11817_$returns$_t_bool_$", - "typeString": "function (contract IConverter) view returns (bool)" - } - }, - "id": 5647, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4041:33:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 5648, - "name": "converter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5601, - "src": "4078:9:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - "id": 5649, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isActive", - "nodeType": "MemberAccess", - "referencedDeclaration": 11668, - "src": "4078:18:8", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_bool_$", - "typeString": "function () view external returns (bool)" - } - }, - "id": 5650, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4078:20:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "4041:57:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4025:73:8" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5659, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 5653, - "name": "anchor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5638, - "src": "4107:6:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - }, - "id": 5654, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "owner", - "nodeType": "MemberAccess", - "referencedDeclaration": 22238, - "src": "4107:12:8", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", - "typeString": "function () view external returns (address)" - } - }, - "id": 5655, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4107:14:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5657, - "name": "converter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5601, - "src": "4133:9:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - ], - "id": 5656, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4125:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5658, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4125:18:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "4107:36:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 5672, - "nodeType": "IfStatement", - "src": "4103:139:8", - "trueBody": { - "id": 5671, - "nodeType": "Block", - "src": "4145:97:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5663, - "name": "newConverter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5617, - "src": "4183:12:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - ], - "expression": { - "argumentTypes": null, - "id": 5660, - "name": "converter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5601, - "src": "4150:9:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - "id": 5662, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transferTokenOwnership", - "nodeType": "MemberAccess", - "referencedDeclaration": 11779, - "src": "4150:32:8", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$", - "typeString": "function (address) external" - } - }, - "id": 5664, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4150:46:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5665, - "nodeType": "ExpressionStatement", - "src": "4150:46:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 5666, - "name": "newConverter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5617, - "src": "4201:12:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - "id": 5668, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "acceptAnchorOwnership", - "nodeType": "MemberAccess", - "referencedDeclaration": 11738, - "src": "4201:34:8", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$__$returns$__$", - "typeString": "function () external" - } - }, - "id": 5669, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4201:36:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5670, - "nodeType": "ExpressionStatement", - "src": "4201:36:8" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5674, - "name": "converter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5601, - "src": "4269:9:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - { - "argumentTypes": null, - "id": 5675, - "name": "newConverter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5617, - "src": "4280:12:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - { - "argumentTypes": null, - "id": 5676, - "name": "activate", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5644, - "src": "4294:8:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - }, - { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - }, - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5673, - "name": "handleTypeSpecificData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6107, - "src": "4246:22:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IConverter_$11817_$_t_contract$_IConverter_$11817_$_t_bool_$returns$__$", - "typeString": "function (contract IConverter,contract IConverter,bool)" - } - }, - "id": 5677, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4246:57:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5678, - "nodeType": "ExpressionStatement", - "src": "4246:57:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5682, - "name": "prevOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5607, - "src": "4336:9:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 5679, - "name": "converter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5601, - "src": "4308:9:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - "id": 5681, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transferOwnership", - "nodeType": "MemberAccess", - "referencedDeclaration": 22243, - "src": "4308:27:8", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$", - "typeString": "function (address) external" - } - }, - "id": 5683, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4308:38:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5684, - "nodeType": "ExpressionStatement", - "src": "4308:38:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5688, - "name": "prevOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5607, - "src": "4381:9:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 5685, - "name": "newConverter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5617, - "src": "4350:12:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - "id": 5687, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transferOwnership", - "nodeType": "MemberAccess", - "referencedDeclaration": 22243, - "src": "4350:30:8", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$", - "typeString": "function (address) external" - } - }, - "id": 5689, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4350:41:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5690, - "nodeType": "ExpressionStatement", - "src": "4350:41:8" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5693, - "name": "converter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5601, - "src": "4426:9:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - ], - "id": 5692, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4418:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5694, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4418:18:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5696, - "name": "newConverter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5617, - "src": "4446:12:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - ], - "id": 5695, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4438:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5697, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4438:21:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 5691, - "name": "ConverterUpgrade", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5546, - "src": "4401:16:8", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", - "typeString": "function (address,address)" - } - }, - "id": 5698, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4401:59:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5699, - "nodeType": "EmitStatement", - "src": "4396:64:8" - } - ] - }, - "documentation": "@dev upgrades an old converter to the latest version\nwill throw if ownership wasn't transferred to the upgrader before calling this function.\nownership of the new converter will be transferred back to the original owner.\nfires the ConverterUpgrade event upon success.\n\t * @param _converter old converter contract address\n@param _version old converter version", - "id": 5701, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "upgradeOld", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5596, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5593, - "name": "_converter", - "nodeType": "VariableDeclaration", - "scope": 5701, - "src": "3528:21:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - }, - "typeName": { - "contractScope": null, - "id": 5592, - "name": "IConverter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 11817, - "src": "3528:10:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5595, - "name": "_version", - "nodeType": "VariableDeclaration", - "scope": 5701, - "src": "3551:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 5594, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "3551:7:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3527:41:8" - }, - "payable": false, - "returnParameters": { - "id": 5597, - "nodeType": "ParameterList", - "parameters": [], - "src": "3576:0:8" - }, - "scope": 6148, - "src": "3508:956:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 5716, - "nodeType": "Block", - "src": "4877:83:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 5706, - "name": "_oldConverter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5703, - "src": "4881:13:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - "id": 5708, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "acceptOwnership", - "nodeType": "MemberAccess", - "referencedDeclaration": 22246, - "src": "4881:29:8", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$__$returns$__$", - "typeString": "function () external" - } - }, - "id": 5709, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4881:31:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5710, - "nodeType": "ExpressionStatement", - "src": "4881:31:8" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5712, - "name": "_oldConverter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5703, - "src": "4936:13:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - { - "argumentTypes": null, - "id": 5713, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22429, - "src": "4951:4:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ConverterUpgrader_$6148", - "typeString": "contract ConverterUpgrader" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - }, - { - "typeIdentifier": "t_contract$_ConverterUpgrader_$6148", - "typeString": "contract ConverterUpgrader" - } - ], - "id": 5711, - "name": "ConverterOwned", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5540, - "src": "4921:14:8", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", - "typeString": "function (address,address)" - } - }, - "id": 5714, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4921:35:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5715, - "nodeType": "EmitStatement", - "src": "4916:40:8" - } - ] - }, - "documentation": "@dev the first step when upgrading a converter is to transfer the ownership to the local contract.\nthe upgrader contract then needs to accept the ownership transfer before initiating\nthe upgrade process.\nfires the ConverterOwned event upon success\n\t * @param _oldConverter converter to accept ownership of", - "id": 5717, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "acceptConverterOwnership", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5704, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5703, - "name": "_oldConverter", - "nodeType": "VariableDeclaration", - "scope": 5717, - "src": "4843:24:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - }, - "typeName": { - "contractScope": null, - "id": 5702, - "name": "IConverter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 11817, - "src": "4843:10:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4842:26:8" - }, - "payable": false, - "returnParameters": { - "id": 5705, - "nodeType": "ParameterList", - "parameters": [], - "src": "4877:0:8" - }, - "scope": 6148, - "src": "4809:151:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 5789, - "nodeType": "Block", - "src": "5334:792:8", - "statements": [ - { - "assignments": [ - 5725 - ], - "declarations": [ - { - "constant": false, - "id": 5725, - "name": "anchor", - "nodeType": "VariableDeclaration", - "scope": 5790, - "src": "5338:23:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - }, - "typeName": { - "contractScope": null, - "id": 5724, - "name": "IConverterAnchor", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 11826, - "src": "5338:16:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 5729, - "initialValue": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 5726, - "name": "_oldConverter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5719, - "src": "5364:13:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - "id": 5727, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "token", - "nodeType": "MemberAccess", - "referencedDeclaration": 11774, - "src": "5364:19:8", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_IConverterAnchor_$11826_$", - "typeString": "function () view external returns (contract IConverterAnchor)" - } - }, - "id": 5728, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5364:21:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5338:47:8" - }, - { - "assignments": [ - 5731 - ], - "declarations": [ - { - "constant": false, - "id": 5731, - "name": "maxConversionFee", - "nodeType": "VariableDeclaration", - "scope": 5790, - "src": "5389:23:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 5730, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "5389:6:8", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 5735, - "initialValue": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 5732, - "name": "_oldConverter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5719, - "src": "5415:13:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - "id": 5733, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "maxConversionFee", - "nodeType": "MemberAccess", - "referencedDeclaration": 11720, - "src": "5415:30:8", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_uint32_$", - "typeString": "function () view external returns (uint32)" - } - }, - "id": 5734, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5415:32:8", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5389:58:8" - }, - { - "assignments": [ - 5737 - ], - "declarations": [ - { - "constant": false, - "id": 5737, - "name": "reserveTokenCount", - "nodeType": "VariableDeclaration", - "scope": 5790, - "src": "5451:24:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 5736, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "5451:6:8", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 5741, - "initialValue": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 5738, - "name": "_oldConverter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5719, - "src": "5478:13:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - "id": 5739, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "connectorTokenCount", - "nodeType": "MemberAccess", - "referencedDeclaration": 11816, - "src": "5478:33:8", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_uint16_$", - "typeString": "function () view external returns (uint16)" - } - }, - "id": 5740, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5478:35:8", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5451:62:8" - }, - { - "assignments": [ - 5743 - ], - "declarations": [ - { - "constant": false, - "id": 5743, - "name": "newType", - "nodeType": "VariableDeclaration", - "scope": 5790, - "src": "5552:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 5742, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "5552:6:8", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 5745, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 5744, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5569:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "5552:18:8" - }, - { - "condition": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5747, - "name": "_oldConverter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5719, - "src": "5661:13:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - ], - "id": 5746, - "name": "isV28OrHigherConverter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6147, - "src": "5638:22:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_contract$_IConverter_$11817_$returns$_t_bool_$", - "typeString": "function (contract IConverter) view returns (bool)" - } - }, - "id": 5748, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5638:37:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "id": 5757, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5755, - "name": "reserveTokenCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5737, - "src": "5843:17:8", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 5756, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5863:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "5843:21:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 5762, - "nodeType": "IfStatement", - "src": "5839:38:8", - "trueBody": { - "expression": { - "argumentTypes": null, - "id": 5760, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 5758, - "name": "newType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5743, - "src": "5866:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 5759, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5876:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "5866:11:8", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "id": 5761, - "nodeType": "ExpressionStatement", - "src": "5866:11:8" - } - }, - "id": 5763, - "nodeType": "IfStatement", - "src": "5634:243:8", - "trueBody": { - "expression": { - "argumentTypes": null, - "id": 5753, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 5749, - "name": "newType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5743, - "src": "5680:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 5750, - "name": "_oldConverter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5719, - "src": "5690:13:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - "id": 5751, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "converterType", - "nodeType": "MemberAccess", - "referencedDeclaration": 11655, - "src": "5690:27:8", - "typeDescriptions": { - "typeIdentifier": "t_function_external_pure$__$returns$_t_uint16_$", - "typeString": "function () pure external returns (uint16)" - } - }, - "id": 5752, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5690:29:8", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "src": "5680:39:8", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "id": 5754, - "nodeType": "ExpressionStatement", - "src": "5680:39:8" - } - }, - { - "assignments": [ - 5765 - ], - "declarations": [ - { - "constant": false, - "id": 5765, - "name": "converterFactory", - "nodeType": "VariableDeclaration", - "scope": 5790, - "src": "5882:34:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterFactory_$11871", - "typeString": "contract IConverterFactory" - }, - "typeName": { - "contractScope": null, - "id": 5764, - "name": "IConverterFactory", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 11871, - "src": "5882:17:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterFactory_$11871", - "typeString": "contract IConverterFactory" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 5771, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5768, - "name": "CONVERTER_FACTORY", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20761, - "src": "5947:17:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 5767, - "name": "addressOf", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20931, - "src": "5937:9:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$", - "typeString": "function (bytes32) view returns (address)" - } - }, - "id": 5769, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5937:28:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 5766, - "name": "IConverterFactory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11871, - "src": "5919:17:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IConverterFactory_$11871_$", - "typeString": "type(contract IConverterFactory)" - } - }, - "id": 5770, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5919:47:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterFactory_$11871", - "typeString": "contract IConverterFactory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5882:84:8" - }, - { - "assignments": [ - 5773 - ], - "declarations": [ - { - "constant": false, - "id": 5773, - "name": "converter", - "nodeType": "VariableDeclaration", - "scope": 5790, - "src": "5970:20:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - }, - "typeName": { - "contractScope": null, - "id": 5772, - "name": "IConverter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 11817, - "src": "5970:10:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 5781, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5776, - "name": "newType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5743, - "src": "6026:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - { - "argumentTypes": null, - "id": 5777, - "name": "anchor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5725, - "src": "6035:6:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - }, - { - "argumentTypes": null, - "id": 5778, - "name": "registry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20787, - "src": "6043:8:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IContractRegistry_$22220", - "typeString": "contract IContractRegistry" - } - }, - { - "argumentTypes": null, - "id": 5779, - "name": "maxConversionFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5731, - "src": "6053:16:8", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - }, - { - "typeIdentifier": "t_contract$_IContractRegistry_$22220", - "typeString": "contract IContractRegistry" - }, - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - ], - "expression": { - "argumentTypes": null, - "id": 5774, - "name": "converterFactory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5765, - "src": "5993:16:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterFactory_$11871", - "typeString": "contract IConverterFactory" - } - }, - "id": 5775, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "createConverter", - "nodeType": "MemberAccess", - "referencedDeclaration": 11858, - "src": "5993:32:8", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_uint16_$_t_contract$_IConverterAnchor_$11826_$_t_contract$_IContractRegistry_$22220_$_t_uint32_$returns$_t_contract$_IConverter_$11817_$", - "typeString": "function (uint16,contract IConverterAnchor,contract IContractRegistry,uint32) external returns (contract IConverter)" - } - }, - "id": 5780, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5993:77:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5970:100:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 5782, - "name": "converter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5773, - "src": "6075:9:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - "id": 5784, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "acceptOwnership", - "nodeType": "MemberAccess", - "referencedDeclaration": 22246, - "src": "6075:25:8", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$__$returns$__$", - "typeString": "function () external" - } - }, - "id": 5785, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6075:27:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5786, - "nodeType": "ExpressionStatement", - "src": "6075:27:8" - }, - { - "expression": { - "argumentTypes": null, - "id": 5787, - "name": "converter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5773, - "src": "6113:9:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - "functionReturnParameters": 5723, - "id": 5788, - "nodeType": "Return", - "src": "6106:16:8" - } - ] - }, - "documentation": "@dev creates a new converter with same basic data as the original old converter\nthe newly created converter will have no reserves at this step.\n\t * @param _oldConverter old converter contract address\n\t * @return the new converter new converter contract address", - "id": 5790, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "createConverter", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5720, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5719, - "name": "_oldConverter", - "nodeType": "VariableDeclaration", - "scope": 5790, - "src": "5279:24:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - }, - "typeName": { - "contractScope": null, - "id": 5718, - "name": "IConverter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 11817, - "src": "5279:10:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5278:26:8" - }, - "payable": false, - "returnParameters": { - "id": 5723, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5722, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5790, - "src": "5322:10:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - }, - "typeName": { - "contractScope": null, - "id": 5721, - "name": "IConverter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 11817, - "src": "5322:10:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5321:12:8" - }, - "scope": 6148, - "src": "5254:872:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 5869, - "nodeType": "Block", - "src": "6516:669:8", - "statements": [ - { - "assignments": [ - 5798 - ], - "declarations": [ - { - "constant": false, - "id": 5798, - "name": "reserveTokenCount", - "nodeType": "VariableDeclaration", - "scope": 5870, - "src": "6520:24:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 5797, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "6520:6:8", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 5802, - "initialValue": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 5799, - "name": "_oldConverter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5792, - "src": "6547:13:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - "id": 5800, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "connectorTokenCount", - "nodeType": "MemberAccess", - "referencedDeclaration": 11816, - "src": "6547:33:8", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_uint16_$", - "typeString": "function () view external returns (uint16)" - } - }, - "id": 5801, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6547:35:8", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6520:62:8" - }, - { - "body": { - "id": 5867, - "nodeType": "Block", - "src": "6634:548:8", - "statements": [ - { - "assignments": [ - 5814 - ], - "declarations": [ - { - "constant": false, - "id": 5814, - "name": "reserveAddress", - "nodeType": "VariableDeclaration", - "scope": 5870, - "src": "6639:22:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5813, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6639:7:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 5819, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5817, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5804, - "src": "6694:1:8", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - ], - "expression": { - "argumentTypes": null, - "id": 5815, - "name": "_oldConverter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5792, - "src": "6664:13:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - "id": 5816, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "connectorTokens", - "nodeType": "MemberAccess", - "referencedDeclaration": 11811, - "src": "6664:29:8", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_contract$_IERC20Token_$20240_$", - "typeString": "function (uint256) view external returns (contract IERC20Token)" - } - }, - "id": 5818, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6664:32:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6639:57:8" - }, - { - "assignments": [ - null, - 5821, - null, - null, - null - ], - "declarations": [ - null, - { - "constant": false, - "id": 5821, - "name": "weight", - "nodeType": "VariableDeclaration", - "scope": 5870, - "src": "6704:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 5820, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "6704:6:8", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - }, - null, - null, - null - ], - "id": 5826, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5824, - "name": "reserveAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5814, - "src": "6752:14:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 5822, - "name": "_oldConverter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5792, - "src": "6727:13:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - "id": 5823, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "connectors", - "nodeType": "MemberAccess", - "referencedDeclaration": 11797, - "src": "6727:24:8", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$_t_uint32_$_t_bool_$_t_bool_$_t_bool_$", - "typeString": "function (address) view external returns (uint256,uint32,bool,bool,bool)" - } - }, - "id": 5825, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6727:40:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint32_$_t_bool_$_t_bool_$_t_bool_$", - "typeString": "tuple(uint256,uint32,bool,bool,bool)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6701:66:8" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5829, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5827, - "name": "reserveAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5814, - "src": "6797:14:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 5828, - "name": "ETH_RESERVE_ADDRESS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5532, - "src": "6815:19:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "6797:37:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5844, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5840, - "name": "reserveAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5814, - "src": "6953:14:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5842, - "name": "etherToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5534, - "src": "6979:10:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IEtherToken_$20266", - "typeString": "contract IEtherToken" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IEtherToken_$20266", - "typeString": "contract IEtherToken" - } - ], - "id": 5841, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "6971:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5843, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6971:19:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "6953:37:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 5864, - "nodeType": "Block", - "src": "7105:73:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5859, - "name": "reserveAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5814, - "src": "7148:14:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 5858, - "name": "IERC20Token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20240, - "src": "7136:11:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20Token_$20240_$", - "typeString": "type(contract IERC20Token)" - } - }, - "id": 5860, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7136:27:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - { - "argumentTypes": null, - "id": 5861, - "name": "weight", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5821, - "src": "7165:6:8", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - ], - "expression": { - "argumentTypes": null, - "id": 5855, - "name": "_newConverter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5794, - "src": "7111:13:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - "id": 5857, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "addReserve", - "nodeType": "MemberAccess", - "referencedDeclaration": 11769, - "src": "7111:24:8", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_contract$_IERC20Token_$20240_$_t_uint32_$returns$__$", - "typeString": "function (contract IERC20Token,uint32) external" - } - }, - "id": 5862, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7111:61:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5863, - "nodeType": "ExpressionStatement", - "src": "7111:61:8" - } - ] - }, - "id": 5865, - "nodeType": "IfStatement", - "src": "6949:229:8", - "trueBody": { - "id": 5854, - "nodeType": "Block", - "src": "6992:78:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5849, - "name": "ETH_RESERVE_ADDRESS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5532, - "src": "7035:19:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 5848, - "name": "IERC20Token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20240, - "src": "7023:11:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20Token_$20240_$", - "typeString": "type(contract IERC20Token)" - } - }, - "id": 5850, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7023:32:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - { - "argumentTypes": null, - "id": 5851, - "name": "weight", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5821, - "src": "7057:6:8", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - ], - "expression": { - "argumentTypes": null, - "id": 5845, - "name": "_newConverter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5794, - "src": "6998:13:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - "id": 5847, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "addReserve", - "nodeType": "MemberAccess", - "referencedDeclaration": 11769, - "src": "6998:24:8", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_contract$_IERC20Token_$20240_$_t_uint32_$returns$__$", - "typeString": "function (contract IERC20Token,uint32) external" - } - }, - "id": 5852, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6998:66:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5853, - "nodeType": "ExpressionStatement", - "src": "6998:66:8" - } - ] - } - }, - "id": 5866, - "nodeType": "IfStatement", - "src": "6793:385:8", - "trueBody": { - "id": 5839, - "nodeType": "Block", - "src": "6836:78:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5834, - "name": "ETH_RESERVE_ADDRESS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5532, - "src": "6879:19:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 5833, - "name": "IERC20Token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20240, - "src": "6867:11:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20Token_$20240_$", - "typeString": "type(contract IERC20Token)" - } - }, - "id": 5835, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6867:32:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - { - "argumentTypes": null, - "id": 5836, - "name": "weight", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5821, - "src": "6901:6:8", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - ], - "expression": { - "argumentTypes": null, - "id": 5830, - "name": "_newConverter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5794, - "src": "6842:13:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - "id": 5832, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "addReserve", - "nodeType": "MemberAccess", - "referencedDeclaration": 11769, - "src": "6842:24:8", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_contract$_IERC20Token_$20240_$_t_uint32_$returns$__$", - "typeString": "function (contract IERC20Token,uint32) external" - } - }, - "id": 5837, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6842:66:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5838, - "nodeType": "ExpressionStatement", - "src": "6842:66:8" - } - ] - } - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "id": 5809, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5807, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5804, - "src": "6606:1:8", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "id": 5808, - "name": "reserveTokenCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5798, - "src": "6610:17:8", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "src": "6606:21:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 5868, - "initializationExpression": { - "assignments": [ - 5804 - ], - "declarations": [ - { - "constant": false, - "id": 5804, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 5870, - "src": "6592:8:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 5803, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "6592:6:8", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 5806, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 5805, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6603:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "6592:12:8" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 5811, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "6629:3:8", - "subExpression": { - "argumentTypes": null, - "id": 5810, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5804, - "src": "6629:1:8", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "id": 5812, - "nodeType": "ExpressionStatement", - "src": "6629:3:8" - }, - "nodeType": "ForStatement", - "src": "6587:595:8" - } - ] - }, - "documentation": "@dev copies the reserves from the old converter to the new one.\nnote that this will not work for an unlimited number of reserves due to block gas limit constraints.\n\t * @param _oldConverter old converter contract address\n@param _newConverter new converter contract address", - "id": 5870, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "copyReserves", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5795, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5792, - "name": "_oldConverter", - "nodeType": "VariableDeclaration", - "scope": 5870, - "src": "6456:24:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - }, - "typeName": { - "contractScope": null, - "id": 5791, - "name": "IConverter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 11817, - "src": "6456:10:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5794, - "name": "_newConverter", - "nodeType": "VariableDeclaration", - "scope": 5870, - "src": "6482:24:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - }, - "typeName": { - "contractScope": null, - "id": 5793, - "name": "IConverter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 11817, - "src": "6482:10:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6455:52:8" - }, - "payable": false, - "returnParameters": { - "id": 5796, - "nodeType": "ParameterList", - "parameters": [], - "src": "6516:0:8" - }, - "scope": 6148, - "src": "6434:751:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 5889, - "nodeType": "Block", - "src": "7480:109:8", - "statements": [ - { - "assignments": [ - 5878 - ], - "declarations": [ - { - "constant": false, - "id": 5878, - "name": "conversionFee", - "nodeType": "VariableDeclaration", - "scope": 5890, - "src": "7484:20:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 5877, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "7484:6:8", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 5882, - "initialValue": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 5879, - "name": "_oldConverter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5872, - "src": "7507:13:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - "id": 5880, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "conversionFee", - "nodeType": "MemberAccess", - "referencedDeclaration": 11712, - "src": "7507:27:8", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_uint32_$", - "typeString": "function () view external returns (uint32)" - } - }, - "id": 5881, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7507:29:8", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "7484:52:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5886, - "name": "conversionFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5878, - "src": "7571:13:8", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - ], - "expression": { - "argumentTypes": null, - "id": 5883, - "name": "_newConverter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5874, - "src": "7540:13:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - "id": 5885, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "setConversionFee", - "nodeType": "MemberAccess", - "referencedDeclaration": 11743, - "src": "7540:30:8", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_uint32_$returns$__$", - "typeString": "function (uint32) external" - } - }, - "id": 5887, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7540:45:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5888, - "nodeType": "ExpressionStatement", - "src": "7540:45:8" - } - ] - }, - "documentation": "@dev copies the conversion fee from the old converter to the new one\n\t * @param _oldConverter old converter contract address\n@param _newConverter new converter contract address", - "id": 5890, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "copyConversionFee", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5875, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5872, - "name": "_oldConverter", - "nodeType": "VariableDeclaration", - "scope": 5890, - "src": "7420:24:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - }, - "typeName": { - "contractScope": null, - "id": 5871, - "name": "IConverter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 11817, - "src": "7420:10:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5874, - "name": "_newConverter", - "nodeType": "VariableDeclaration", - "scope": 5890, - "src": "7446:24:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - }, - "typeName": { - "contractScope": null, - "id": 5873, - "name": "IConverter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 11817, - "src": "7446:10:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7419:52:8" - }, - "payable": false, - "returnParameters": { - "id": 5876, - "nodeType": "ParameterList", - "parameters": [], - "src": "7480:0:8" - }, - "scope": 6148, - "src": "7393:196:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 5995, - "nodeType": "Block", - "src": "8097:868:8", - "statements": [ - { - "assignments": [], - "declarations": [ - { - "constant": false, - "id": 5898, - "name": "reserveBalance", - "nodeType": "VariableDeclaration", - "scope": 5996, - "src": "8101:22:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5897, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8101:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 5899, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "8101:22:8" - }, - { - "assignments": [ - 5901 - ], - "declarations": [ - { - "constant": false, - "id": 5901, - "name": "reserveTokenCount", - "nodeType": "VariableDeclaration", - "scope": 5996, - "src": "8127:24:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 5900, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "8127:6:8", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 5905, - "initialValue": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 5902, - "name": "_oldConverter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5892, - "src": "8154:13:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - "id": 5903, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "connectorTokenCount", - "nodeType": "MemberAccess", - "referencedDeclaration": 11816, - "src": "8154:33:8", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_uint16_$", - "typeString": "function () view external returns (uint16)" - } - }, - "id": 5904, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8154:35:8", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "8127:62:8" - }, - { - "body": { - "id": 5993, - "nodeType": "Block", - "src": "8241:721:8", - "statements": [ - { - "assignments": [ - 5917 - ], - "declarations": [ - { - "constant": false, - "id": 5917, - "name": "reserveAddress", - "nodeType": "VariableDeclaration", - "scope": 5996, - "src": "8246:22:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5916, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8246:7:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 5922, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5920, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5907, - "src": "8301:1:8", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - ], - "expression": { - "argumentTypes": null, - "id": 5918, - "name": "_oldConverter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5892, - "src": "8271:13:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - "id": 5919, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "connectorTokens", - "nodeType": "MemberAccess", - "referencedDeclaration": 11811, - "src": "8271:29:8", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_contract$_IERC20Token_$20240_$", - "typeString": "function (uint256) view external returns (contract IERC20Token)" - } - }, - "id": 5921, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8271:32:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "8246:57:8" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5925, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5923, - "name": "reserveAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5917, - "src": "8332:14:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 5924, - "name": "ETH_RESERVE_ADDRESS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5532, - "src": "8350:19:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "8332:37:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5939, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5935, - "name": "reserveAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5917, - "src": "8471:14:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5937, - "name": "etherToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5534, - "src": "8497:10:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IEtherToken_$20266", - "typeString": "contract IEtherToken" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IEtherToken_$20266", - "typeString": "contract IEtherToken" - } - ], - "id": 5936, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "8489:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5938, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8489:19:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "8471:37:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 5990, - "nodeType": "Block", - "src": "8753:205:8", - "statements": [ - { - "assignments": [ - 5968 - ], - "declarations": [ - { - "constant": false, - "id": 5968, - "name": "connector", - "nodeType": "VariableDeclaration", - "scope": 5996, - "src": "8759:21:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - "typeName": { - "contractScope": null, - "id": 5967, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "8759:11:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 5972, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5970, - "name": "reserveAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5917, - "src": "8795:14:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 5969, - "name": "IERC20Token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20240, - "src": "8783:11:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20Token_$20240_$", - "typeString": "type(contract IERC20Token)" - } - }, - "id": 5971, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8783:27:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "8759:51:8" - }, - { - "expression": { - "argumentTypes": null, - "id": 5978, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 5973, - "name": "reserveBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5898, - "src": "8816:14:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5976, - "name": "_oldConverter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5892, - "src": "8853:13:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - ], - "expression": { - "argumentTypes": null, - "id": 5974, - "name": "connector", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5968, - "src": "8833:9:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "id": 5975, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "balanceOf", - "nodeType": "MemberAccess", - "referencedDeclaration": 20194, - "src": "8833:19:8", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 5977, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8833:34:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8816:51:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 5979, - "nodeType": "ExpressionStatement", - "src": "8816:51:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5983, - "name": "connector", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5968, - "src": "8902:9:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5985, - "name": "_newConverter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5894, - "src": "8921:13:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - ], - "id": 5984, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "8913:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5986, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8913:22:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5987, - "name": "reserveBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5898, - "src": "8937:14:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 5980, - "name": "_oldConverter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5892, - "src": "8873:13:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - "id": 5982, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "withdrawTokens", - "nodeType": "MemberAccess", - "referencedDeclaration": 11757, - "src": "8873:28:8", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_contract$_IERC20Token_$20240_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (contract IERC20Token,address,uint256) external" - } - }, - "id": 5988, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8873:79:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5989, - "nodeType": "ExpressionStatement", - "src": "8873:79:8" - } - ] - }, - "id": 5991, - "nodeType": "IfStatement", - "src": "8467:491:8", - "trueBody": { - "id": 5966, - "nodeType": "Block", - "src": "8510:208:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 5945, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 5940, - "name": "reserveBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5898, - "src": "8516:14:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5943, - "name": "_oldConverter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5892, - "src": "8554:13:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - ], - "expression": { - "argumentTypes": null, - "id": 5941, - "name": "etherToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5534, - "src": "8533:10:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IEtherToken_$20266", - "typeString": "contract IEtherToken" - } - }, - "id": 5942, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "balanceOf", - "nodeType": "MemberAccess", - "referencedDeclaration": 20194, - "src": "8533:20:8", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 5944, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8533:35:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8516:52:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 5946, - "nodeType": "ExpressionStatement", - "src": "8516:52:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5950, - "name": "etherToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5534, - "src": "8603:10:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IEtherToken_$20266", - "typeString": "contract IEtherToken" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5952, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22429, - "src": "8623:4:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ConverterUpgrader_$6148", - "typeString": "contract ConverterUpgrader" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_ConverterUpgrader_$6148", - "typeString": "contract ConverterUpgrader" - } - ], - "id": 5951, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "8615:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5953, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8615:13:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5954, - "name": "reserveBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5898, - "src": "8630:14:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IEtherToken_$20266", - "typeString": "contract IEtherToken" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 5947, - "name": "_oldConverter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5892, - "src": "8574:13:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - "id": 5949, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "withdrawTokens", - "nodeType": "MemberAccess", - "referencedDeclaration": 11757, - "src": "8574:28:8", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_contract$_IERC20Token_$20240_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (contract IERC20Token,address,uint256) external" - } - }, - "id": 5955, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8574:71:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5956, - "nodeType": "ExpressionStatement", - "src": "8574:71:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5961, - "name": "_newConverter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5894, - "src": "8681:13:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - ], - "id": 5960, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "8673:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5962, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8673:22:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5963, - "name": "reserveBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5898, - "src": "8697:14:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 5957, - "name": "etherToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5534, - "src": "8651:10:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IEtherToken_$20266", - "typeString": "contract IEtherToken" - } - }, - "id": 5959, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "withdrawTo", - "nodeType": "MemberAccess", - "referencedDeclaration": 20265, - "src": "8651:21:8", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256) external" - } - }, - "id": 5964, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8651:61:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5965, - "nodeType": "ExpressionStatement", - "src": "8651:61:8" - } - ] - } - }, - "id": 5992, - "nodeType": "IfStatement", - "src": "8328:630:8", - "trueBody": { - "id": 5934, - "nodeType": "Block", - "src": "8371:61:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5930, - "name": "_newConverter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5894, - "src": "8411:13:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - ], - "id": 5929, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "8403:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5931, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8403:22:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 5926, - "name": "_oldConverter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5892, - "src": "8377:13:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - "id": 5928, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "withdrawETH", - "nodeType": "MemberAccess", - "referencedDeclaration": 11762, - "src": "8377:25:8", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$", - "typeString": "function (address) external" - } - }, - "id": 5932, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8377:49:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5933, - "nodeType": "ExpressionStatement", - "src": "8377:49:8" - } - ] - } - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "id": 5912, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5910, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5907, - "src": "8213:1:8", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "id": 5911, - "name": "reserveTokenCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5901, - "src": "8217:17:8", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "src": "8213:21:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 5994, - "initializationExpression": { - "assignments": [ - 5907 - ], - "declarations": [ - { - "constant": false, - "id": 5907, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 5996, - "src": "8199:8:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 5906, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "8199:6:8", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 5909, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 5908, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8210:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "8199:12:8" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 5914, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "8236:3:8", - "subExpression": { - "argumentTypes": null, - "id": 5913, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5907, - "src": "8236:1:8", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "id": 5915, - "nodeType": "ExpressionStatement", - "src": "8236:3:8" - }, - "nodeType": "ForStatement", - "src": "8194:768:8" - } - ] - }, - "documentation": "@dev transfers the balance of each reserve in the old converter to the new one.\nnote that the function assumes that the new converter already has the exact same number of\nalso, this will not work for an unlimited number of reserves due to block gas limit constraints.\n\t * @param _oldConverter old converter contract address\n@param _newConverter new converter contract address", - "id": 5996, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "transferReserveBalances", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5895, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5892, - "name": "_oldConverter", - "nodeType": "VariableDeclaration", - "scope": 5996, - "src": "8037:24:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - }, - "typeName": { - "contractScope": null, - "id": 5891, - "name": "IConverter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 11817, - "src": "8037:10:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5894, - "name": "_newConverter", - "nodeType": "VariableDeclaration", - "scope": 5996, - "src": "8063:24:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - }, - "typeName": { - "contractScope": null, - "id": 5893, - "name": "IConverter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 11817, - "src": "8063:10:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8036:52:8" - }, - "payable": false, - "returnParameters": { - "id": 5896, - "nodeType": "ParameterList", - "parameters": [], - "src": "8097:0:8" - }, - "scope": 6148, - "src": "8004:961:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 6106, - "nodeType": "Block", - "src": "9365:1137:8", - "statements": [ - { - "condition": { - "argumentTypes": null, - "id": 6008, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "9373:38:8", - "subExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 6006, - "name": "_oldConverter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5998, - "src": "9397:13:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - ], - "id": 6005, - "name": "isV28OrHigherConverter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6147, - "src": "9374:22:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_contract$_IConverter_$11817_$returns$_t_bool_$", - "typeString": "function (contract IConverter) view returns (bool)" - } - }, - "id": 6007, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9374:37:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 6010, - "nodeType": "IfStatement", - "src": "9369:51:8", - "trueBody": { - "expression": null, - "functionReturnParameters": 6004, - "id": 6009, - "nodeType": "Return", - "src": "9413:7:8" - } - }, - { - "assignments": [ - 6012 - ], - "declarations": [ - { - "constant": false, - "id": 6012, - "name": "converterType", - "nodeType": "VariableDeclaration", - "scope": 6107, - "src": "9424:20:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 6011, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "9424:6:8", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 6016, - "initialValue": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 6013, - "name": "_oldConverter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5998, - "src": "9447:13:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - "id": 6014, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "converterType", - "nodeType": "MemberAccess", - "referencedDeclaration": 11655, - "src": "9447:27:8", - "typeDescriptions": { - "typeIdentifier": "t_function_external_pure$__$returns$_t_uint16_$", - "typeString": "function () pure external returns (uint16)" - } - }, - "id": 6015, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9447:29:8", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "9424:52:8" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "id": 6019, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 6017, - "name": "converterType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6012, - "src": "9484:13:8", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "32", - "id": 6018, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9501:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "src": "9484:18:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 6105, - "nodeType": "IfStatement", - "src": "9480:1019:8", - "trueBody": { - "id": 6104, - "nodeType": "Block", - "src": "9504:995:8", - "statements": [ - { - "assignments": [ - 6021 - ], - "declarations": [ - { - "constant": false, - "id": 6021, - "name": "reserveTokenCount", - "nodeType": "VariableDeclaration", - "scope": 6107, - "src": "9509:24:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 6020, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "9509:6:8", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 6025, - "initialValue": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 6022, - "name": "_oldConverter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5998, - "src": "9536:13:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - "id": 6023, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "connectorTokenCount", - "nodeType": "MemberAccess", - "referencedDeclaration": 11816, - "src": "9536:33:8", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_uint16_$", - "typeString": "function () view external returns (uint16)" - } - }, - "id": 6024, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9536:35:8", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "9509:62:8" - }, - { - "body": { - "id": 6060, - "nodeType": "Block", - "src": "9623:319:8", - "statements": [ - { - "assignments": [ - 6037 - ], - "declarations": [ - { - "constant": false, - "id": 6037, - "name": "reserveTokenAddress", - "nodeType": "VariableDeclaration", - "scope": 6107, - "src": "9664:31:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - "typeName": { - "contractScope": null, - "id": 6036, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "9664:11:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 6042, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 6040, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6027, - "src": "9728:1:8", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - ], - "expression": { - "argumentTypes": null, - "id": 6038, - "name": "_oldConverter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5998, - "src": "9698:13:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - "id": 6039, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "connectorTokens", - "nodeType": "MemberAccess", - "referencedDeclaration": 11811, - "src": "9698:29:8", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_contract$_IERC20Token_$20240_$", - "typeString": "function (uint256) view external returns (contract IERC20Token)" - } - }, - "id": 6041, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9698:32:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "9664:66:8" - }, - { - "assignments": [ - 6044 - ], - "declarations": [ - { - "constant": false, - "id": 6044, - "name": "balance", - "nodeType": "VariableDeclaration", - "scope": 6107, - "src": "9736:15:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6043, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9736:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 6051, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 6049, - "name": "reserveTokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6037, - "src": "9816:19:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 6046, - "name": "_oldConverter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5998, - "src": "9780:13:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - ], - "id": 6045, - "name": "ILiquidityPoolV2Converter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16973, - "src": "9754:25:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ILiquidityPoolV2Converter_$16973_$", - "typeString": "type(contract ILiquidityPoolV2Converter)" - } - }, - "id": 6047, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9754:40:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ILiquidityPoolV2Converter_$16973", - "typeString": "contract ILiquidityPoolV2Converter" - } - }, - "id": 6048, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "reserveStakedBalance", - "nodeType": "MemberAccess", - "referencedDeclaration": 16946, - "src": "9754:61:8", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_contract$_IERC20Token_$20240_$returns$_t_uint256_$", - "typeString": "function (contract IERC20Token) view external returns (uint256)" - } - }, - "id": 6050, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9754:82:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "9736:100:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 6056, - "name": "reserveTokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6037, - "src": "9907:19:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - { - "argumentTypes": null, - "id": 6057, - "name": "balance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6044, - "src": "9928:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 6053, - "name": "_newConverter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6000, - "src": "9868:13:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - ], - "id": 6052, - "name": "ILiquidityPoolV2Converter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16973, - "src": "9842:25:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ILiquidityPoolV2Converter_$16973_$", - "typeString": "type(contract ILiquidityPoolV2Converter)" - } - }, - "id": 6054, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9842:40:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ILiquidityPoolV2Converter_$16973", - "typeString": "contract ILiquidityPoolV2Converter" - } - }, - "id": 6055, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "setReserveStakedBalance", - "nodeType": "MemberAccess", - "referencedDeclaration": 16953, - "src": "9842:64:8", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_contract$_IERC20Token_$20240_$_t_uint256_$returns$__$", - "typeString": "function (contract IERC20Token,uint256) external" - } - }, - "id": 6058, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9842:94:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 6059, - "nodeType": "ExpressionStatement", - "src": "9842:94:8" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "id": 6032, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 6030, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6027, - "src": "9595:1:8", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "id": 6031, - "name": "reserveTokenCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6021, - "src": "9599:17:8", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "src": "9595:21:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 6061, - "initializationExpression": { - "assignments": [ - 6027 - ], - "declarations": [ - { - "constant": false, - "id": 6027, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 6107, - "src": "9581:8:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 6026, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "9581:6:8", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 6029, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 6028, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9592:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "9581:12:8" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 6034, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "9618:3:8", - "subExpression": { - "argumentTypes": null, - "id": 6033, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6027, - "src": "9618:1:8", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "id": 6035, - "nodeType": "ExpressionStatement", - "src": "9618:3:8" - }, - "nodeType": "ForStatement", - "src": "9576:366:8" - }, - { - "condition": { - "argumentTypes": null, - "id": 6063, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "9951:10:8", - "subExpression": { - "argumentTypes": null, - "id": 6062, - "name": "_activate", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6002, - "src": "9952:9:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 6066, - "nodeType": "IfStatement", - "src": "9947:34:8", - "trueBody": { - "id": 6065, - "nodeType": "Block", - "src": "9963:18:8", - "statements": [ - { - "expression": null, - "functionReturnParameters": 6004, - "id": 6064, - "nodeType": "Return", - "src": "9969:7:8" - } - ] - } - }, - { - "assignments": [ - 6068 - ], - "declarations": [ - { - "constant": false, - "id": 6068, - "name": "primaryReserveToken", - "nodeType": "VariableDeclaration", - "scope": 6107, - "src": "10022:31:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - "typeName": { - "contractScope": null, - "id": 6067, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "10022:11:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 6074, - "initialValue": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 6070, - "name": "_oldConverter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5998, - "src": "10082:13:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - ], - "id": 6069, - "name": "ILiquidityPoolV2Converter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16973, - "src": "10056:25:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ILiquidityPoolV2Converter_$16973_$", - "typeString": "type(contract ILiquidityPoolV2Converter)" - } - }, - "id": 6071, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10056:40:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ILiquidityPoolV2Converter_$16973", - "typeString": "contract ILiquidityPoolV2Converter" - } - }, - "id": 6072, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "primaryReserveToken", - "nodeType": "MemberAccess", - "referencedDeclaration": 16958, - "src": "10056:60:8", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_IERC20Token_$20240_$", - "typeString": "function () view external returns (contract IERC20Token)" - } - }, - "id": 6073, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10056:62:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "10022:96:8" - }, - { - "assignments": [ - 6076 - ], - "declarations": [ - { - "constant": false, - "id": 6076, - "name": "priceOracle", - "nodeType": "VariableDeclaration", - "scope": 6107, - "src": "10162:24:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IPriceOracle_$22297", - "typeString": "contract IPriceOracle" - }, - "typeName": { - "contractScope": null, - "id": 6075, - "name": "IPriceOracle", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 22297, - "src": "10162:12:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IPriceOracle_$22297", - "typeString": "contract IPriceOracle" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 6082, - "initialValue": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 6078, - "name": "_oldConverter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5998, - "src": "10215:13:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - ], - "id": 6077, - "name": "ILiquidityPoolV2Converter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16973, - "src": "10189:25:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ILiquidityPoolV2Converter_$16973_$", - "typeString": "type(contract ILiquidityPoolV2Converter)" - } - }, - "id": 6079, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10189:40:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ILiquidityPoolV2Converter_$16973", - "typeString": "contract ILiquidityPoolV2Converter" - } - }, - "id": 6080, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "priceOracle", - "nodeType": "MemberAccess", - "referencedDeclaration": 16963, - "src": "10189:52:8", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_IPriceOracle_$22297_$", - "typeString": "function () view external returns (contract IPriceOracle)" - } - }, - "id": 6081, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10189:54:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IPriceOracle_$22297", - "typeString": "contract IPriceOracle" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "10162:81:8" - }, - { - "assignments": [ - 6084 - ], - "declarations": [ - { - "constant": false, - "id": 6084, - "name": "oracleA", - "nodeType": "VariableDeclaration", - "scope": 6107, - "src": "10248:28:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", - "typeString": "contract IConsumerPriceOracle" - }, - "typeName": { - "contractScope": null, - "id": 6083, - "name": "IConsumerPriceOracle", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 22203, - "src": "10248:20:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", - "typeString": "contract IConsumerPriceOracle" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 6088, - "initialValue": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 6085, - "name": "priceOracle", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6076, - "src": "10279:11:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IPriceOracle_$22297", - "typeString": "contract IPriceOracle" - } - }, - "id": 6086, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "tokenAOracle", - "nodeType": "MemberAccess", - "referencedDeclaration": 22288, - "src": "10279:24:8", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_IConsumerPriceOracle_$22203_$", - "typeString": "function () view external returns (contract IConsumerPriceOracle)" - } - }, - "id": 6087, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10279:26:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", - "typeString": "contract IConsumerPriceOracle" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "10248:57:8" - }, - { - "assignments": [ - 6090 - ], - "declarations": [ - { - "constant": false, - "id": 6090, - "name": "oracleB", - "nodeType": "VariableDeclaration", - "scope": 6107, - "src": "10310:28:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", - "typeString": "contract IConsumerPriceOracle" - }, - "typeName": { - "contractScope": null, - "id": 6089, - "name": "IConsumerPriceOracle", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 22203, - "src": "10310:20:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", - "typeString": "contract IConsumerPriceOracle" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 6094, - "initialValue": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 6091, - "name": "priceOracle", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6076, - "src": "10341:11:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IPriceOracle_$22297", - "typeString": "contract IPriceOracle" - } - }, - "id": 6092, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "tokenBOracle", - "nodeType": "MemberAccess", - "referencedDeclaration": 22296, - "src": "10341:24:8", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_IConsumerPriceOracle_$22203_$", - "typeString": "function () view external returns (contract IConsumerPriceOracle)" - } - }, - "id": 6093, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10341:26:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", - "typeString": "contract IConsumerPriceOracle" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "10310:57:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 6099, - "name": "primaryReserveToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6068, - "src": "10456:19:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - { - "argumentTypes": null, - "id": 6100, - "name": "oracleA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6084, - "src": "10477:7:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", - "typeString": "contract IConsumerPriceOracle" - } - }, - { - "argumentTypes": null, - "id": 6101, - "name": "oracleB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6090, - "src": "10486:7:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", - "typeString": "contract IConsumerPriceOracle" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - { - "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", - "typeString": "contract IConsumerPriceOracle" - }, - { - "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", - "typeString": "contract IConsumerPriceOracle" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 6096, - "name": "_newConverter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6000, - "src": "10432:13:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - ], - "id": 6095, - "name": "ILiquidityPoolV2Converter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16973, - "src": "10406:25:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ILiquidityPoolV2Converter_$16973_$", - "typeString": "type(contract ILiquidityPoolV2Converter)" - } - }, - "id": 6097, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10406:40:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ILiquidityPoolV2Converter_$16973", - "typeString": "contract ILiquidityPoolV2Converter" - } - }, - "id": 6098, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "activate", - "nodeType": "MemberAccess", - "referencedDeclaration": 16972, - "src": "10406:49:8", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_contract$_IERC20Token_$20240_$_t_contract$_IConsumerPriceOracle_$22203_$_t_contract$_IConsumerPriceOracle_$22203_$returns$__$", - "typeString": "function (contract IERC20Token,contract IConsumerPriceOracle,contract IConsumerPriceOracle) external" - } - }, - "id": 6102, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10406:88:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 6103, - "nodeType": "ExpressionStatement", - "src": "10406:88:8" - } - ] - } - } - ] - }, - "documentation": "@dev handles upgrading custom (type specific) data from the old converter to the new one\n\t * @param _oldConverter old converter contract address\n@param _newConverter new converter contract address\n@param _activate activate the new converter", - "id": 6107, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "handleTypeSpecificData", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 6003, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5998, - "name": "_oldConverter", - "nodeType": "VariableDeclaration", - "scope": 6107, - "src": "9283:24:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - }, - "typeName": { - "contractScope": null, - "id": 5997, - "name": "IConverter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 11817, - "src": "9283:10:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6000, - "name": "_newConverter", - "nodeType": "VariableDeclaration", - "scope": 6107, - "src": "9311:24:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - }, - "typeName": { - "contractScope": null, - "id": 5999, - "name": "IConverter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 11817, - "src": "9311:10:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6002, - "name": "_activate", - "nodeType": "VariableDeclaration", - "scope": 6107, - "src": "9339:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 6001, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "9339:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9279:77:8" - }, - "payable": false, - "returnParameters": { - "id": 6004, - "nodeType": "ParameterList", - "parameters": [], - "src": "9365:0:8" - }, - "scope": 6148, - "src": "9248:1254:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "constant": true, - "id": 6114, - "name": "IS_V28_OR_HIGHER_FUNC_SELECTOR", - "nodeType": "VariableDeclaration", - "scope": 6148, - "src": "10505:93:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 6108, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "10505:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "69735632384f724869676865722829", - "id": 6111, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10579:17:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_d260529c8620a59d78f2e58cfd1294673bb6cba228ad1f34ac7731003ab870dd", - "typeString": "literal_string \"isV28OrHigher()\"" - }, - "value": "isV28OrHigher()" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_stringliteral_d260529c8620a59d78f2e58cfd1294673bb6cba228ad1f34ac7731003ab870dd", - "typeString": "literal_string \"isV28OrHigher()\"" - } - ], - "id": 6110, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22332, - "src": "10569:9:8", - "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" - } - }, - "id": 6112, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10569:28:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 6109, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "10562:6:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes4_$", - "typeString": "type(bytes4)" - }, - "typeName": "bytes4" - }, - "id": 6113, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10562:36:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "visibility": "private" - }, - { - "body": { - "id": 6146, - "nodeType": "Block", - "src": "10842:541:8", - "statements": [ - { - "assignments": [], - "declarations": [ - { - "constant": false, - "id": 6122, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 6147, - "src": "10846:12:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 6121, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "10846:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 6123, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "10846:12:8" - }, - { - "assignments": [], - "declarations": [ - { - "constant": false, - "id": 6128, - "name": "ret", - "nodeType": "VariableDeclaration", - "scope": 6147, - "src": "10862:21:8", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$1_memory_ptr", - "typeString": "uint256[1]" - }, - "typeName": { - "baseType": { - "id": 6126, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10862:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6127, - "length": { - "argumentTypes": null, - "hexValue": "31", - "id": 6125, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10870:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - }, - "value": "1" - }, - "nodeType": "ArrayTypeName", - "src": "10862:10:8", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$1_storage_ptr", - "typeString": "uint256[1]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 6129, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "10862:21:8" - }, - { - "assignments": [ - 6131 - ], - "declarations": [ - { - "constant": false, - "id": 6131, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 6147, - "src": "10887:17:8", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 6130, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "10887:5:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 6136, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 6134, - "name": "IS_V28_OR_HIGHER_FUNC_SELECTOR", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6114, - "src": "10930:30:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "expression": { - "argumentTypes": null, - "id": 6132, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22325, - "src": "10907:3:8", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 6133, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encodeWithSelector", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10907:22:8", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (bytes4) pure returns (bytes memory)" - } - }, - "id": 6135, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10907:54:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "10887:74:8" - }, - { - "externalReferences": [ - { - "success": { - "declaration": 6122, - "isOffset": false, - "isSlot": false, - "src": "10980:7:8", - "valueSize": 1 - } - }, - { - "data": { - "declaration": 6131, - "isOffset": false, - "isSlot": false, - "src": "11212:4:8", - "valueSize": 1 - } - }, - { - "data": { - "declaration": 6131, - "isOffset": false, - "isSlot": false, - "src": "11121:4:8", - "valueSize": 1 - } - }, - { - "_converter": { - "declaration": 6116, - "isOffset": false, - "isSlot": false, - "src": "11078:10:8", - "valueSize": 1 - } - }, - { - "ret": { - "declaration": 6128, - "isOffset": false, - "isSlot": false, - "src": "11292:3:8", - "valueSize": 1 - } - } - ], - "id": 6137, - "nodeType": "InlineAssembly", - "operations": "{\n success := staticcall(5000, _converter, add(data, 32), mload(data), ret, 32)\n}", - "src": "10966:390:8" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 6144, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 6138, - "name": "success", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6122, - "src": "11357:7:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 6143, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6139, - "name": "ret", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6128, - "src": "11368:3:8", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$1_memory_ptr", - "typeString": "uint256[1] memory" - } - }, - "id": 6141, - "indexExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 6140, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11372:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11368:6:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 6142, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11378:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "11368:11:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "11357:22:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 6120, - "id": 6145, - "nodeType": "Return", - "src": "11350:29:8" - } - ] - }, - "documentation": null, - "id": 6147, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "isV28OrHigherConverter", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 6117, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6116, - "name": "_converter", - "nodeType": "VariableDeclaration", - "scope": 6147, - "src": "10790:21:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - }, - "typeName": { - "contractScope": null, - "id": 6115, - "name": "IConverter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 11817, - "src": "10790:10:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10789:23:8" - }, - "payable": false, - "returnParameters": { - "id": 6120, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6119, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 6147, - "src": "10836:4:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 6118, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "10836:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10835:6:8" - }, - "scope": 6148, - "src": "10758:625:8", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 6149, - "src": "1163:10222:8" - } - ], - "src": "0:11386:8" - }, - "id": 8 - }, - "solidity/contracts/converter/LiquidityPoolConverter.sol": { - "ast": { - "absolutePath": "solidity/contracts/converter/LiquidityPoolConverter.sol", - "exportedSymbols": { - "LiquidityPoolConverter": [ - 6210 - ] - }, - "id": 6211, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 6150, - "literals": [ - "solidity", - "0.4", - ".26" - ], - "nodeType": "PragmaDirective", - "src": "0:23:9" - }, - { - "absolutePath": "solidity/contracts/converter/ConverterBase.sol", - "file": "./ConverterBase.sol", - "id": 6151, - "nodeType": "ImportDirective", - "scope": 6211, - "sourceUnit": 3415, - "src": "24:29:9", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 6152, - "name": "ConverterBase", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3414, - "src": "481:13:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ConverterBase_$3414", - "typeString": "contract ConverterBase" - } - }, - "id": 6153, - "nodeType": "InheritanceSpecifier", - "src": "481:13:9" - } - ], - "contractDependencies": [ - 3414, - 11817, - 20932, - 21324, - 21710, - 21933, - 21976, - 22052, - 22247, - 22313 - ], - "contractKind": "contract", - "documentation": "@dev Liquidity Pool Converter\n * The liquidity pool converter is the base contract for specific types of converters that\nmanage liquidity pools.\n * Liquidity pools have 2 reserves or more and they allow converting between them.\n * Note that TokenRateUpdate events are dispatched for pool tokens as well.\nThe pool token is the first token in the event in that case.", - "fullyImplemented": false, - "id": 6210, - "linearizedBaseContracts": [ - 6210, - 3414, - 21710, - 20932, - 21976, - 22052, - 21324, - 21933, - 22313, - 11817, - 22247 - ], - "name": "LiquidityPoolConverter", - "nodeType": "ContractDefinition", - "nodes": [ - { - "anonymous": false, - "documentation": "@dev triggered after liquidity is added\n\t * @param _provider liquidity provider\n@param _reserveToken reserve token address\n@param _amount reserve token amount\n@param _newBalance reserve token new balance\n@param _newSupply pool token new supply", - "id": 6165, - "name": "LiquidityAdded", - "nodeType": "EventDefinition", - "parameters": { - "id": 6164, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6155, - "indexed": true, - "name": "_provider", - "nodeType": "VariableDeclaration", - "scope": 6165, - "src": "827:25:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 6154, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "827:7:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6157, - "indexed": true, - "name": "_reserveToken", - "nodeType": "VariableDeclaration", - "scope": 6165, - "src": "854:29:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 6156, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "854:7:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6159, - "indexed": false, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 6165, - "src": "885:15:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6158, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "885:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6161, - "indexed": false, - "name": "_newBalance", - "nodeType": "VariableDeclaration", - "scope": 6165, - "src": "902:19:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6160, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "902:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6163, - "indexed": false, - "name": "_newSupply", - "nodeType": "VariableDeclaration", - "scope": 6165, - "src": "923:18:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6162, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "923:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "826:116:9" - }, - "src": "806:137:9" - }, - { - "anonymous": false, - "documentation": "@dev triggered after liquidity is removed\n\t * @param _provider liquidity provider\n@param _reserveToken reserve token address\n@param _amount reserve token amount\n@param _newBalance reserve token new balance\n@param _newSupply pool token new supply", - "id": 6177, - "name": "LiquidityRemoved", - "nodeType": "EventDefinition", - "parameters": { - "id": 6176, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6167, - "indexed": true, - "name": "_provider", - "nodeType": "VariableDeclaration", - "scope": 6177, - "src": "1279:25:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 6166, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1279:7:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6169, - "indexed": true, - "name": "_reserveToken", - "nodeType": "VariableDeclaration", - "scope": 6177, - "src": "1306:29:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 6168, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1306:7:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6171, - "indexed": false, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 6177, - "src": "1337:15:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6170, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1337:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6173, - "indexed": false, - "name": "_newBalance", - "nodeType": "VariableDeclaration", - "scope": 6177, - "src": "1354:19:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6172, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1354:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6175, - "indexed": false, - "name": "_newSupply", - "nodeType": "VariableDeclaration", - "scope": 6177, - "src": "1375:18:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6174, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1375:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1278:116:9" - }, - "src": "1256:139:9" - }, - { - "body": { - "id": 6191, - "nodeType": "Block", - "src": "1847:2:9", - "statements": [] - }, - "documentation": "@dev initializes a new LiquidityPoolConverter instance\n\t * @param _anchor anchor governed by the converter\n@param _registry address of a contract registry contract\n@param _maxConversionFee maximum conversion fee, represented in ppm", - "id": 6192, - "implemented": true, - "isConstructor": true, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 6186, - "name": "_anchor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6179, - "src": "1808:7:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - }, - { - "argumentTypes": null, - "id": 6187, - "name": "_registry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6181, - "src": "1817:9:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IContractRegistry_$22220", - "typeString": "contract IContractRegistry" - } - }, - { - "argumentTypes": null, - "id": 6188, - "name": "_maxConversionFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6183, - "src": "1828:17:9", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "id": 6189, - "modifierName": { - "argumentTypes": null, - "id": 6185, - "name": "ConverterBase", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3414, - "src": "1794:13:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ConverterBase_$3414_$", - "typeString": "type(contract ConverterBase)" - } - }, - "nodeType": "ModifierInvocation", - "src": "1794:52:9" - } - ], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 6184, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6179, - "name": "_anchor", - "nodeType": "VariableDeclaration", - "scope": 6192, - "src": "1698:24:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - }, - "typeName": { - "contractScope": null, - "id": 6178, - "name": "IConverterAnchor", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 11826, - "src": "1698:16:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6181, - "name": "_registry", - "nodeType": "VariableDeclaration", - "scope": 6192, - "src": "1726:27:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IContractRegistry_$22220", - "typeString": "contract IContractRegistry" - }, - "typeName": { - "contractScope": null, - "id": 6180, - "name": "IContractRegistry", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 22220, - "src": "1726:17:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IContractRegistry_$22220", - "typeString": "contract IContractRegistry" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6183, - "name": "_maxConversionFee", - "nodeType": "VariableDeclaration", - "scope": 6192, - "src": "1757:24:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 6182, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "1757:6:9", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1694:90:9" - }, - "payable": false, - "returnParameters": { - "id": 6190, - "nodeType": "ParameterList", - "parameters": [], - "src": "1847:0:9" - }, - "scope": 6210, - "src": "1683:166:9", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 6208, - "nodeType": "Block", - "src": "2130:157:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "id": 6199, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 6196, - "name": "reserveTokenCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2984, - "src": "2197:17:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_uint16_$", - "typeString": "function () view returns (uint16)" - } - }, - "id": 6197, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2197:19:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 6198, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2219:1:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "2197:23:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552525f494e56414c49445f524553455256455f434f554e54", - "id": 6200, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2222:27:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_ed94f14d8dcbb423a259b4072978fc0c494c6af1fea066a19023afb1a76ac87f", - "typeString": "literal_string \"ERR_INVALID_RESERVE_COUNT\"" - }, - "value": "ERR_INVALID_RESERVE_COUNT" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_ed94f14d8dcbb423a259b4072978fc0c494c6af1fea066a19023afb1a76ac87f", - "typeString": "literal_string \"ERR_INVALID_RESERVE_COUNT\"" - } - ], - "id": 6195, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 22341, - 22342 - ], - "referencedDeclaration": 22342, - "src": "2189:7:9", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 6201, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2189:61:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 6202, - "nodeType": "ExpressionStatement", - "src": "2189:61:9" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 6203, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22432, - "src": "2254:5:9", - "typeDescriptions": { - "typeIdentifier": "t_super$_LiquidityPoolConverter_$6210", - "typeString": "contract super LiquidityPoolConverter" - } - }, - "id": 6205, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "acceptAnchorOwnership", - "nodeType": "MemberAccess", - "referencedDeclaration": 2841, - "src": "2254:27:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", - "typeString": "function ()" - } - }, - "id": 6206, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2254:29:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 6207, - "nodeType": "ExpressionStatement", - "src": "2254:29:9" - } - ] - }, - "documentation": "@dev accepts ownership of the anchor after an ownership transfer\nalso activates the converter\ncan only be called by the contract owner\nnote that prior to version 28, you should use 'acceptTokenOwnership' instead", - "id": 6209, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "acceptAnchorOwnership", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 6193, - "nodeType": "ParameterList", - "parameters": [], - "src": "2120:2:9" - }, - "payable": false, - "returnParameters": { - "id": 6194, - "nodeType": "ParameterList", - "parameters": [], - "src": "2130:0:9" - }, - "scope": 6210, - "src": "2090:197:9", - "stateMutability": "nonpayable", - "superFunction": 2841, - "visibility": "public" - } - ], - "scope": 6211, - "src": "446:1843:9" - } - ], - "src": "0:2290:9" - }, - "id": 9 - }, - "solidity/contracts/converter/SovrynSwapFormula.sol": { - "ast": { - "absolutePath": "solidity/contracts/converter/SovrynSwapFormula.sol", - "exportedSymbols": { - "SovrynSwapFormula": [ - 11642 - ] - }, - "id": 11643, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 6212, - "literals": [ - "solidity", - "0.4", - ".26" - ], - "nodeType": "PragmaDirective", - "src": "0:23:10" - }, - { - "absolutePath": "solidity/contracts/converter/interfaces/ISovrynSwapFormula.sol", - "file": "./interfaces/ISovrynSwapFormula.sol", - "id": 6213, - "nodeType": "ImportDirective", - "scope": 11643, - "sourceUnit": 12241, - "src": "24:45:10", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "solidity/contracts/utility/SafeMath.sol", - "file": "../utility/SafeMath.sol", - "id": 6214, - "nodeType": "ImportDirective", - "scope": 11643, - "sourceUnit": 21818, - "src": "70:33:10", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 6215, - "name": "ISovrynSwapFormula", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 12240, - "src": "135:18:10", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISovrynSwapFormula_$12240", - "typeString": "contract ISovrynSwapFormula" - } - }, - "id": 6216, - "nodeType": "InheritanceSpecifier", - "src": "135:18:10" - } - ], - "contractDependencies": [ - 12240 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 11642, - "linearizedBaseContracts": [ - 11642, - 12240 - ], - "name": "SovrynSwapFormula", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 6219, - "libraryName": { - "contractScope": null, - "id": 6217, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 21817, - "src": "163:8:10", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$21817", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "157:27:10", - "typeName": { - "id": 6218, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "176:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "constant": true, - "id": 6222, - "name": "version", - "nodeType": "VariableDeclaration", - "scope": 11642, - "src": "187:34:10", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 6220, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "187:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "38", - "id": 6221, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "220:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_8_by_1", - "typeString": "int_const 8" - }, - "value": "8" - }, - "visibility": "public" - }, - { - "constant": true, - "id": 6225, - "name": "ONE", - "nodeType": "VariableDeclaration", - "scope": 11642, - "src": "225:32:10", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6223, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "225:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "31", - "id": 6224, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "256:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "visibility": "private" - }, - { - "constant": true, - "id": 6228, - "name": "MAX_WEIGHT", - "nodeType": "VariableDeclaration", - "scope": 11642, - "src": "260:44:10", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 6226, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "260:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "31303030303030", - "id": 6227, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "297:7:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1000000_by_1", - "typeString": "int_const 1000000" - }, - "value": "1000000" - }, - "visibility": "private" - }, - { - "constant": true, - "id": 6231, - "name": "MIN_PRECISION", - "nodeType": "VariableDeclaration", - "scope": 11642, - "src": "307:41:10", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 6229, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "307:5:10", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "3332", - "id": 6230, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "346:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_32_by_1", - "typeString": "int_const 32" - }, - "value": "32" - }, - "visibility": "private" - }, - { - "constant": true, - "id": 6234, - "name": "MAX_PRECISION", - "nodeType": "VariableDeclaration", - "scope": 11642, - "src": "351:42:10", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 6232, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "351:5:10", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "313237", - "id": 6233, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "390:3:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_127_by_1", - "typeString": "int_const 127" - }, - "value": "127" - }, - "visibility": "private" - }, - { - "constant": true, - "id": 6237, - "name": "FIXED_1", - "nodeType": "VariableDeclaration", - "scope": 11642, - "src": "458:70:10", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6235, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "458:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "3078303830303030303030303030303030303030303030303030303030303030303030", - "id": 6236, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "493:35:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_170141183460469231731687303715884105728_by_1", - "typeString": "int_const 1701...(31 digits omitted)...5728" - }, - "value": "0x080000000000000000000000000000000" - }, - "visibility": "private" - }, - { - "constant": true, - "id": 6240, - "name": "FIXED_2", - "nodeType": "VariableDeclaration", - "scope": 11642, - "src": "531:70:10", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6238, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "531:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "3078313030303030303030303030303030303030303030303030303030303030303030", - "id": 6239, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "566:35:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_340282366920938463463374607431768211456_by_1", - "typeString": "int_const 3402...(31 digits omitted)...1456" - }, - "value": "0x100000000000000000000000000000000" - }, - "visibility": "private" - }, - { - "constant": true, - "id": 6243, - "name": "MAX_NUM", - "nodeType": "VariableDeclaration", - "scope": 11642, - "src": "604:70:10", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6241, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "604:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "3078323030303030303030303030303030303030303030303030303030303030303030", - "id": 6242, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "639:35:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_680564733841876926926749214863536422912_by_1", - "typeString": "int_const 6805...(31 digits omitted)...2912" - }, - "value": "0x200000000000000000000000000000000" - }, - "visibility": "private" - }, - { - "constant": true, - "id": 6246, - "name": "LN2_NUMERATOR", - "nodeType": "VariableDeclaration", - "scope": 11642, - "src": "739:74:10", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6244, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "739:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "307833663830666530336638306665303366383066653033663830666530336638", - "id": 6245, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "780:33:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_5275695611177340518812009417546793976_by_1", - "typeString": "int_const 5275...(29 digits omitted)...3976" - }, - "value": "0x3f80fe03f80fe03f80fe03f80fe03f8" - }, - "visibility": "private" - }, - { - "constant": true, - "id": 6249, - "name": "LN2_DENOMINATOR", - "nodeType": "VariableDeclaration", - "scope": 11642, - "src": "816:76:10", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6247, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "816:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "307835623964653164313062663431303364363437623039353538393762613830", - "id": 6248, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "859:33:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_7611219895485218073587121647846406784_by_1", - "typeString": "int_const 7611...(29 digits omitted)...6784" - }, - "value": "0x5b9de1d10bf4103d647b0955897ba80" - }, - "visibility": "private" - }, - { - "constant": true, - "id": 6252, - "name": "OPT_LOG_MAX_VAL", - "nodeType": "VariableDeclaration", - "scope": 11642, - "src": "991:78:10", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6250, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "991:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "3078313562663061386231343537363935333535666238616334303465376137396533", - "id": 6251, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1034:35:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_462491687273110168575455517921668397539_by_1", - "typeString": "int_const 4624...(31 digits omitted)...7539" - }, - "value": "0x15bf0a8b1457695355fb8ac404e7a79e3" - }, - "visibility": "private" - }, - { - "constant": true, - "id": 6255, - "name": "OPT_EXP_MAX_VAL", - "nodeType": "VariableDeclaration", - "scope": 11642, - "src": "1072:78:10", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6253, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1072:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "3078383030303030303030303030303030303030303030303030303030303030303030", - "id": 6254, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1115:35:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2722258935367507707706996859454145691648_by_1", - "typeString": "int_const 2722...(32 digits omitted)...1648" - }, - "value": "0x800000000000000000000000000000000" - }, - "visibility": "private" - }, - { - "constant": true, - "id": 6258, - "name": "LAMBERT_CONV_RADIUS", - "nodeType": "VariableDeclaration", - "scope": 11642, - "src": "1212:83:10", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6256, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1212:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "307830303266313661633663353964653666386435643666363363313438326137633836", - "id": 6257, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1259:36:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_62591443491685266058625363149075414150_by_1", - "typeString": "int_const 6259...(30 digits omitted)...4150" - }, - "value": "0x002f16ac6c59de6f8d5d6f63c1482a7c86" - }, - "visibility": "private" - }, - { - "constant": true, - "id": 6261, - "name": "LAMBERT_POS2_SAMPLE", - "nodeType": "VariableDeclaration", - "scope": 11642, - "src": "1298:83:10", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6259, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1298:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "307830303033303630633138333036306331383330363063313833303630633138333036", - "id": 6260, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1345:36:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_4019083073869351930669778827934270214_by_1", - "typeString": "int_const 4019...(29 digits omitted)...0214" - }, - "value": "0x0003060c183060c183060c183060c18306" - }, - "visibility": "private" - }, - { - "constant": true, - "id": 6264, - "name": "LAMBERT_POS2_MAXVAL", - "nodeType": "VariableDeclaration", - "scope": 11642, - "src": "1384:83:10", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6262, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1384:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "307830316166313661633663353964653666386435643666363363313438326137633830", - "id": 6263, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1431:36:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_573014993873092961253687274296727731328_by_1", - "typeString": "int_const 5730...(31 digits omitted)...1328" - }, - "value": "0x01af16ac6c59de6f8d5d6f63c1482a7c80" - }, - "visibility": "private" - }, - { - "constant": true, - "id": 6267, - "name": "LAMBERT_POS3_MAXVAL", - "nodeType": "VariableDeclaration", - "scope": 11642, - "src": "1470:83:10", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6265, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1470:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "307836623232643433653732633332363533396363656565663862623438663235356666", - "id": 6266, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1517:36:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_36456509045932913977692090597752865707519_by_1", - "typeString": "int_const 3645...(33 digits omitted)...7519" - }, - "value": "0x6b22d43e72c326539cceeef8bb48f255ff" - }, - "visibility": "private" - }, - { - "constant": true, - "id": 6270, - "name": "MAX_UNF_WEIGHT", - "nodeType": "VariableDeclaration", - "scope": 11642, - "src": "1614:104:10", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6268, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1614:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "3078313063366637613062356564386433366234633766333439333835383336323166616663386230303739613238333464323666613366636339656139", - "id": 6269, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1656:62:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_115792089237316195423570985008687907853269984665640564039457584007913129_by_1", - "typeString": "int_const 1157...(64 digits omitted)...3129" - }, - "value": "0x10c6f7a0b5ed8d36b4c7f34938583621fafc8b0079a2834d26fa3fcc9ea9" - }, - "visibility": "private" - }, - { - "constant": false, - "id": 6274, - "name": "maxExpArray", - "nodeType": "VariableDeclaration", - "scope": 11642, - "src": "1777:32:10", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128]" - }, - "typeName": { - "baseType": { - "id": 6271, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1777:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6273, - "length": { - "argumentTypes": null, - "hexValue": "313238", - "id": 6272, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1785:3:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - }, - "value": "128" - }, - "nodeType": "ArrayTypeName", - "src": "1777:12:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage_ptr", - "typeString": "uint256[128]" - } - }, - "value": null, - "visibility": "private" - }, - { - "body": { - "id": 6853, - "nodeType": "Block", - "src": "1848:7616:10", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 6281, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6277, - "name": "maxExpArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6274, - "src": "3868:11:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 6279, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3332", - "id": 6278, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3880:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_32_by_1", - "typeString": "int_const 32" - }, - "value": "32" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "3868:15:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "307831633335666564643134666666666666666666666666666666666666666666666666", - "id": 6280, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3886:36:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_9599678685041259184274752310158947254271_by_1", - "typeString": "int_const 9599...(32 digits omitted)...4271" - }, - "value": "0x1c35fedd14ffffffffffffffffffffffff" - }, - "src": "3868:54:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6282, - "nodeType": "ExpressionStatement", - "src": "3868:54:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 6287, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6283, - "name": "maxExpArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6274, - "src": "3926:11:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 6285, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3333", - "id": 6284, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3938:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_33_by_1", - "typeString": "int_const 33" - }, - "value": "33" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "3926:15:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "307831623063653433623332336666666666666666666666666666666666666666666666", - "id": 6286, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3944:36:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_9204759687141885226475603015507577405439_by_1", - "typeString": "int_const 9204...(32 digits omitted)...5439" - }, - "value": "0x1b0ce43b323fffffffffffffffffffffff" - }, - "src": "3926:54:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6288, - "nodeType": "ExpressionStatement", - "src": "3926:54:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 6293, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6289, - "name": "maxExpArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6274, - "src": "3984:11:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 6291, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3334", - "id": 6290, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3996:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_34_by_1", - "typeString": "int_const 34" - }, - "value": "34" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "3984:15:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "307831396630303238656331666666666666666666666666666666666666666666666666", - "id": 6292, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4002:36:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_8826087172077985712041017634911355404287_by_1", - "typeString": "int_const 8826...(32 digits omitted)...4287" - }, - "value": "0x19f0028ec1ffffffffffffffffffffffff" - }, - "src": "3984:54:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6294, - "nodeType": "ExpressionStatement", - "src": "3984:54:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 6299, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6295, - "name": "maxExpArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6274, - "src": "4042:11:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 6297, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3335", - "id": 6296, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4054:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_35_by_1", - "typeString": "int_const 35" - }, - "value": "35" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4042:15:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "307831386465643931663065376666666666666666666666666666666666666666666666", - "id": 6298, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4060:36:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_8462992779488582574159642900919291478015_by_1", - "typeString": "int_const 8462...(32 digits omitted)...8015" - }, - "value": "0x18ded91f0e7fffffffffffffffffffffff" - }, - "src": "4042:54:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6300, - "nodeType": "ExpressionStatement", - "src": "4042:54:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 6305, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6301, - "name": "maxExpArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6274, - "src": "4100:11:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 6303, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3336", - "id": 6302, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4112:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_36_by_1", - "typeString": "int_const 36" - }, - "value": "36" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4100:15:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "307831376438656337663034313766666666666666666666666666666666666666666666", - "id": 6304, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4118:36:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_8114835644520100661580084966409403105279_by_1", - "typeString": "int_const 8114...(32 digits omitted)...5279" - }, - "value": "0x17d8ec7f0417ffffffffffffffffffffff" - }, - "src": "4100:54:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6306, - "nodeType": "ExpressionStatement", - "src": "4100:54:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 6311, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6307, - "name": "maxExpArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6274, - "src": "4158:11:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 6309, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3337", - "id": 6308, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4170:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_37_by_1", - "typeString": "int_const 37" - }, - "value": "37" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4158:15:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "307831366464633635353663646266666666666666666666666666666666666666666666", - "id": 6310, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4176:36:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_7781001266736647064069662172832600162303_by_1", - "typeString": "int_const 7781...(32 digits omitted)...2303" - }, - "value": "0x16ddc6556cdbffffffffffffffffffffff" - }, - "src": "4158:54:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6312, - "nodeType": "ExpressionStatement", - "src": "4158:54:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 6317, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6313, - "name": "maxExpArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6274, - "src": "4216:11:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 6315, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3338", - "id": 6314, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4228:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_38_by_1", - "typeString": "int_const 38" - }, - "value": "38" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4216:15:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "307831356563663532373736613166666666666666666666666666666666666666666666", - "id": 6316, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4234:36:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_7460900425488323202194551465008353509375_by_1", - "typeString": "int_const 7460...(32 digits omitted)...9375" - }, - "value": "0x15ecf52776a1ffffffffffffffffffffff" - }, - "src": "4216:54:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6318, - "nodeType": "ExpressionStatement", - "src": "4216:54:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 6323, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6319, - "name": "maxExpArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6274, - "src": "4274:11:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 6321, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3339", - "id": 6320, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4286:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_39_by_1", - "typeString": "int_const 39" - }, - "value": "39" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4274:15:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "307831353036306332353663623266666666666666666666666666666666666666666666", - "id": 6322, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4292:36:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_7153968139937914349310206877837545177087_by_1", - "typeString": "int_const 7153...(32 digits omitted)...7087" - }, - "value": "0x15060c256cb2ffffffffffffffffffffff" - }, - "src": "4274:54:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6324, - "nodeType": "ExpressionStatement", - "src": "4274:54:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 6329, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6325, - "name": "maxExpArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6274, - "src": "4332:11:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 6327, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3430", - "id": 6326, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4344:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_40_by_1", - "typeString": "int_const 40" - }, - "value": "40" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4332:15:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "307831343238613266393864373266666666666666666666666666666666666666666666", - "id": 6328, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4350:36:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_6859662671868001546166128217910528704511_by_1", - "typeString": "int_const 6859...(32 digits omitted)...4511" - }, - "value": "0x1428a2f98d72ffffffffffffffffffffff" - }, - "src": "4332:54:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6330, - "nodeType": "ExpressionStatement", - "src": "4332:54:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 6335, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6331, - "name": "maxExpArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6274, - "src": "4390:11:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 6333, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3431", - "id": 6332, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4402:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_41_by_1", - "typeString": "int_const 41" - }, - "value": "41" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4390:15:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "307831333534353539386535633233666666666666666666666666666666666666666666", - "id": 6334, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4408:36:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_6577464569506365633454696454958677491711_by_1", - "typeString": "int_const 6577...(32 digits omitted)...1711" - }, - "value": "0x13545598e5c23fffffffffffffffffffff" - }, - "src": "4390:54:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6336, - "nodeType": "ExpressionStatement", - "src": "4390:54:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 6341, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6337, - "name": "maxExpArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6274, - "src": "4448:11:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 6339, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3432", - "id": 6338, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4460:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_42_by_1", - "typeString": "int_const 42" - }, - "value": "42" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4448:15:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "307831323838633431363163653164666666666666666666666666666666666666666666", - "id": 6340, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4466:36:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_6306875750689218484600399768107450630143_by_1", - "typeString": "int_const 6306...(32 digits omitted)...0143" - }, - "value": "0x1288c4161ce1dfffffffffffffffffffff" - }, - "src": "4448:54:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6342, - "nodeType": "ExpressionStatement", - "src": "4448:54:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 6347, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6343, - "name": "maxExpArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6274, - "src": "4506:11:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 6345, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3433", - "id": 6344, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4518:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_43_by_1", - "typeString": "int_const 43" - }, - "value": "43" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4506:15:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "307831316335393237363163363636666666666666666666666666666666666666666666", - "id": 6346, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4524:36:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_6047418623741353042663269283551730728959_by_1", - "typeString": "int_const 6047...(32 digits omitted)...8959" - }, - "value": "0x11c592761c666fffffffffffffffffffff" - }, - "src": "4506:54:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6348, - "nodeType": "ExpressionStatement", - "src": "4506:54:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 6353, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6349, - "name": "maxExpArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6274, - "src": "4564:11:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 6351, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3434", - "id": 6350, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4576:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_44_by_1", - "typeString": "int_const 44" - }, - "value": "44" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4564:15:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "307831313061363838363830613735376666666666666666666666666666666666666666", - "id": 6352, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4582:36:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_5798635244522972732941736303310812479487_by_1", - "typeString": "int_const 5798...(32 digits omitted)...9487" - }, - "value": "0x110a688680a757ffffffffffffffffffff" - }, - "src": "4564:54:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6354, - "nodeType": "ExpressionStatement", - "src": "4564:54:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 6359, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6355, - "name": "maxExpArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6274, - "src": "4622:11:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 6357, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3435", - "id": 6356, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4634:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_45_by_1", - "typeString": "int_const 45" - }, - "value": "45" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4622:15:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "307831303536663162356265646637376666666666666666666666666666666666666666", - "id": 6358, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4640:36:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_5560086508154074440893281558760167309311_by_1", - "typeString": "int_const 5560...(32 digits omitted)...9311" - }, - "value": "0x1056f1b5bedf77ffffffffffffffffffff" - }, - "src": "4622:54:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6360, - "nodeType": "ExpressionStatement", - "src": "4622:54:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 6365, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6361, - "name": "maxExpArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6274, - "src": "4680:11:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 6363, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3436", - "id": 6362, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4692:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_46_by_1", - "typeString": "int_const 46" - }, - "value": "46" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4680:15:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "307830666161646365636565666638626666666666666666666666666666666666666666", - "id": 6364, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4698:36:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_5331351373990447379730864460340651884543_by_1", - "typeString": "int_const 5331...(32 digits omitted)...4543" - }, - "value": "0x0faadceceeff8bffffffffffffffffffff" - }, - "src": "4680:54:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6366, - "nodeType": "ExpressionStatement", - "src": "4680:54:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 6371, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6367, - "name": "maxExpArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6274, - "src": "4738:11:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 6369, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3437", - "id": 6368, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4750:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_47_by_1", - "typeString": "int_const 47" - }, - "value": "47" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4738:15:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "307830663035646336623237656461646666666666666666666666666666666666666666", - "id": 6370, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4756:36:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_5112026122483163422598731111238626967551_by_1", - "typeString": "int_const 5112...(32 digits omitted)...7551" - }, - "value": "0x0f05dc6b27edadffffffffffffffffffff" - }, - "src": "4738:54:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6372, - "nodeType": "ExpressionStatement", - "src": "4738:54:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 6377, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6373, - "name": "maxExpArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6274, - "src": "4796:11:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 6375, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3438", - "id": 6374, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4808:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_48_by_1", - "typeString": "int_const 48" - }, - "value": "48" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4796:15:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "307830653637613561323564613431303766666666666666666666666666666666666666", - "id": 6376, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4814:36:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_4901723642609993464238960471454494228479_by_1", - "typeString": "int_const 4901...(32 digits omitted)...8479" - }, - "value": "0x0e67a5a25da4107fffffffffffffffffff" - }, - "src": "4796:54:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6378, - "nodeType": "ExpressionStatement", - "src": "4796:54:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 6383, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6379, - "name": "maxExpArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6274, - "src": "4854:11:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 6381, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3439", - "id": 6380, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4866:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_49_by_1", - "typeString": "int_const 49" - }, - "value": "49" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4854:15:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "307830646366663131356231346565646666666666666666666666666666666666666666", - "id": 6382, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4872:36:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_4700072748620998500994433661760029327359_by_1", - "typeString": "int_const 4700...(32 digits omitted)...7359" - }, - "value": "0x0dcff115b14eedffffffffffffffffffff" - }, - "src": "4854:54:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6384, - "nodeType": "ExpressionStatement", - "src": "4854:54:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 6389, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6385, - "name": "maxExpArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6274, - "src": "4912:11:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 6387, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3530", - "id": 6386, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4924:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_50_by_1", - "typeString": "int_const 50" - }, - "value": "50" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4912:15:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "307830643365376133393234333132333966666666666666666666666666666666666666", - "id": 6388, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4930:36:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_4506717524892375150236886652795301658623_by_1", - "typeString": "int_const 4506...(32 digits omitted)...8623" - }, - "value": "0x0d3e7a392431239fffffffffffffffffff" - }, - "src": "4912:54:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6390, - "nodeType": "ExpressionStatement", - "src": "4912:54:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 6395, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6391, - "name": "maxExpArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6274, - "src": "4970:11:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 6393, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3531", - "id": 6392, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4982:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_51_by_1", - "typeString": "int_const 51" - }, - "value": "51" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4970:15:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "307830636232666635323965623731653466666666666666666666666666666666666666", - "id": 6394, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4988:36:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_4321316697732212547034601541953113817087_by_1", - "typeString": "int_const 4321...(32 digits omitted)...7087" - }, - "value": "0x0cb2ff529eb71e4fffffffffffffffffff" - }, - "src": "4970:54:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6396, - "nodeType": "ExpressionStatement", - "src": "4970:54:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 6401, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6397, - "name": "maxExpArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6274, - "src": "5028:11:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 6399, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3532", - "id": 6398, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5040:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_52_by_1", - "typeString": "int_const 52" - }, - "value": "52" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5028:15:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "307830633264343135633364623937346166666666666666666666666666666666666666", - "id": 6400, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5046:36:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_4143543033029384782309349805264440655871_by_1", - "typeString": "int_const 4143...(32 digits omitted)...5871" - }, - "value": "0x0c2d415c3db974afffffffffffffffffff" - }, - "src": "5028:54:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6402, - "nodeType": "ExpressionStatement", - "src": "5028:54:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 6407, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6403, - "name": "maxExpArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6274, - "src": "5086:11:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 6405, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3533", - "id": 6404, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5098:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_53_by_1", - "typeString": "int_const 53" - }, - "value": "53" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5086:15:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "307830626164303365376438383366363962666666666666666666666666666666666666", - "id": 6406, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5104:36:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_3973082758682431363936722477132055314431_by_1", - "typeString": "int_const 3973...(32 digits omitted)...4431" - }, - "value": "0x0bad03e7d883f69bffffffffffffffffff" - }, - "src": "5086:54:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6408, - "nodeType": "ExpressionStatement", - "src": "5086:54:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 6413, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6409, - "name": "maxExpArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6274, - "src": "5144:11:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 6411, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3534", - "id": 6410, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5156:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_54_by_1", - "typeString": "int_const 54" - }, - "value": "54" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5144:15:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "307830623332306430336232633334336435666666666666666666666666666666666666", - "id": 6412, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5162:36:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_3809635010789003168527049097368437784575_by_1", - "typeString": "int_const 3809...(32 digits omitted)...4575" - }, - "value": "0x0b320d03b2c343d5ffffffffffffffffff" - }, - "src": "5144:54:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6414, - "nodeType": "ExpressionStatement", - "src": "5144:54:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 6419, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6415, - "name": "maxExpArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6274, - "src": "5202:11:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 6417, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3535", - "id": 6416, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5214:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_55_by_1", - "typeString": "int_const 55" - }, - "value": "55" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5202:15:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "307830616263323532303465303238323864666666666666666666666666666666666666", - "id": 6418, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5220:36:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_3652911302618395401280222488042819026943_by_1", - "typeString": "int_const 3652...(32 digits omitted)...6943" - }, - "value": "0x0abc25204e02828dffffffffffffffffff" - }, - "src": "5202:54:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6420, - "nodeType": "ExpressionStatement", - "src": "5202:54:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 6425, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6421, - "name": "maxExpArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6274, - "src": "5260:11:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 6423, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3536", - "id": 6422, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5272:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_56_by_1", - "typeString": "int_const 56" - }, - "value": "56" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5260:15:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "307830613462313666373465653462623230376666666666666666666666666666666666", - "id": 6424, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5278:36:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_3502635015429898674229017626613836152831_by_1", - "typeString": "int_const 3502...(32 digits omitted)...2831" - }, - "value": "0x0a4b16f74ee4bb207fffffffffffffffff" - }, - "src": "5260:54:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6426, - "nodeType": "ExpressionStatement", - "src": "5260:54:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 6431, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6427, - "name": "maxExpArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6274, - "src": "5318:11:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 6429, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3537", - "id": 6428, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5330:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_57_by_1", - "typeString": "int_const 57" - }, - "value": "57" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5318:15:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "307830396465616637333661633166353639666666666666666666666666666666666666", - "id": 6430, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5336:36:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_3358540910238258030536300376569398951935_by_1", - "typeString": "int_const 3358...(32 digits omitted)...1935" - }, - "value": "0x09deaf736ac1f569ffffffffffffffffff" - }, - "src": "5318:54:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6432, - "nodeType": "ExpressionStatement", - "src": "5318:54:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 6437, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6433, - "name": "maxExpArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6274, - "src": "5376:11:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 6435, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3538", - "id": 6434, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5388:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_58_by_1", - "typeString": "int_const 58" - }, - "value": "58" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5376:15:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "307830393736626439393532633761613935376666666666666666666666666666666666", - "id": 6436, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5394:36:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_3220374659664501751807634855053158776831_by_1", - "typeString": "int_const 3220...(32 digits omitted)...6831" - }, - "value": "0x0976bd9952c7aa957fffffffffffffffff" - }, - "src": "5376:54:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6438, - "nodeType": "ExpressionStatement", - "src": "5376:54:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 6443, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6439, - "name": "maxExpArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6274, - "src": "5434:11:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 6441, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3539", - "id": 6440, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5446:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_59_by_1", - "typeString": "int_const 59" - }, - "value": "59" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5434:15:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "307830393133313237313932326561613630366666666666666666666666666666666666", - "id": 6442, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5452:36:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_3087892399045852422628542596524428754943_by_1", - "typeString": "int_const 3087...(32 digits omitted)...4943" - }, - "value": "0x09131271922eaa606fffffffffffffffff" - }, - "src": "5434:54:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6444, - "nodeType": "ExpressionStatement", - "src": "5434:54:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 6449, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6445, - "name": "maxExpArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6274, - "src": "5492:11:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 6447, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3630", - "id": 6446, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5504:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_60_by_1", - "typeString": "int_const 60" - }, - "value": "60" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5492:15:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "307830386233383066333535383636386334366666666666666666666666666666666666", - "id": 6448, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5510:36:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2960860296012425255212778080756987592703_by_1", - "typeString": "int_const 2960...(32 digits omitted)...2703" - }, - "value": "0x08b380f3558668c46fffffffffffffffff" - }, - "src": "5492:54:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6450, - "nodeType": "ExpressionStatement", - "src": "5492:54:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 6455, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6451, - "name": "maxExpArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6274, - "src": "5550:11:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 6453, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3631", - "id": 6452, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5562:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_61_by_1", - "typeString": "int_const 61" - }, - "value": "61" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5550:15:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "307830383537646466303131376566613231356266666666666666666666666666666666", - "id": 6454, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5568:36:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2839054137771012724926516325250418868223_by_1", - "typeString": "int_const 2839...(32 digits omitted)...8223" - }, - "value": "0x0857ddf0117efa215bffffffffffffffff" - }, - "src": "5550:54:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6456, - "nodeType": "ExpressionStatement", - "src": "5550:54:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 6461, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6457, - "name": "maxExpArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6274, - "src": "5608:11:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 6459, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3632", - "id": 6458, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5620:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_62_by_1", - "typeString": "int_const 62" - }, - "value": "62" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5608:15:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "307830376666666666666666666666666666666666666666666666666666666666666666", - "id": 6460, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5626:36:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2722258935367507707706996859454145691647_by_1", - "typeString": "int_const 2722...(32 digits omitted)...1647" - }, - "value": "0x07ffffffffffffffffffffffffffffffff" - }, - "src": "5608:54:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6462, - "nodeType": "ExpressionStatement", - "src": "5608:54:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 6467, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6463, - "name": "maxExpArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6274, - "src": "5666:11:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 6465, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3633", - "id": 6464, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5678:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_63_by_1", - "typeString": "int_const 63" - }, - "value": "63" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5666:15:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "307830376162626636663661626239643038376666666666666666666666666666666666", - "id": 6466, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5684:36:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2610268544229484780765045556213696167935_by_1", - "typeString": "int_const 2610...(32 digits omitted)...7935" - }, - "value": "0x07abbf6f6abb9d087fffffffffffffffff" - }, - "src": "5666:54:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6468, - "nodeType": "ExpressionStatement", - "src": "5666:54:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 6473, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6469, - "name": "maxExpArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6274, - "src": "5724:11:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 6471, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3634", - "id": 6470, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5736:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_64_by_1", - "typeString": "int_const 64" - }, - "value": "64" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5724:15:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "307830373561663632636261633935663764666137666666666666666666666666666666", - "id": 6472, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5742:36:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2502885300319193958571922333378000453631_by_1", - "typeString": "int_const 2502...(32 digits omitted)...3631" - }, - "value": "0x075af62cbac95f7dfa7fffffffffffffff" - }, - "src": "5724:54:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6474, - "nodeType": "ExpressionStatement", - "src": "5724:54:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 6479, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6475, - "name": "maxExpArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6274, - "src": "5782:11:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 6477, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3635", - "id": 6476, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5794:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_65_by_1", - "typeString": "int_const 65" - }, - "value": "65" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5782:15:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "307830373064376662373435326531383761633133666666666666666666666666666666", - "id": 6478, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5800:36:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2399919671254773659805118819743970623487_by_1", - "typeString": "int_const 2399...(32 digits omitted)...3487" - }, - "value": "0x070d7fb7452e187ac13fffffffffffffff" - }, - "src": "5782:54:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6480, - "nodeType": "ExpressionStatement", - "src": "5782:54:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 6485, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6481, - "name": "maxExpArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6274, - "src": "5840:11:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 6483, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3636", - "id": 6482, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5852:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_66_by_1", - "typeString": "int_const 66" - }, - "value": "66" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5840:15:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "307830366333333930656363386166333739323935666666666666666666666666666666", - "id": 6484, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5858:36:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2301189921783908737703717501630802821119_by_1", - "typeString": "int_const 2301...(32 digits omitted)...1119" - }, - "value": "0x06c3390ecc8af379295fffffffffffffff" - }, - "src": "5840:54:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6486, - "nodeType": "ExpressionStatement", - "src": "5840:54:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 6491, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6487, - "name": "maxExpArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6274, - "src": "5898:11:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 6489, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3637", - "id": 6488, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5910:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_67_by_1", - "typeString": "int_const 67" - }, - "value": "67" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5898:15:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "307830363763303061336230376666633031666436666666666666666666666666666666", - "id": 6490, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5916:36:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2206521793019491601704439134261549727743_by_1", - "typeString": "int_const 2206...(32 digits omitted)...7743" - }, - "value": "0x067c00a3b07ffc01fd6fffffffffffffff" - }, - "src": "5898:54:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6492, - "nodeType": "ExpressionStatement", - "src": "5898:54:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 6497, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6493, - "name": "maxExpArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6274, - "src": "5956:11:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 6495, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3638", - "id": 6494, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5968:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_68_by_1", - "typeString": "int_const 68" - }, - "value": "68" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5956:15:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "307830363337623634376333396362623964336432376666666666666666666666666666", - "id": 6496, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5974:36:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2115748194871134515168564783402692116479_by_1", - "typeString": "int_const 2115...(32 digits omitted)...6479" - }, - "value": "0x0637b647c39cbb9d3d27ffffffffffffff" - }, - "src": "5956:54:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6498, - "nodeType": "ExpressionStatement", - "src": "5956:54:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 6503, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6499, - "name": "maxExpArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6274, - "src": "6014:11:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 6501, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3639", - "id": 6500, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6026:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_69_by_1", - "typeString": "int_const 69" - }, - "value": "69" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6014:15:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "307830356636336231666331303464626433393538376666666666666666666666666666", - "id": 6502, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6032:36:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2028708911129671949307566740521183346687_by_1", - "typeString": "int_const 2028...(32 digits omitted)...6687" - }, - "value": "0x05f63b1fc104dbd39587ffffffffffffff" - }, - "src": "6014:54:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6504, - "nodeType": "ExpressionStatement", - "src": "6014:54:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 6509, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6505, - "name": "maxExpArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6274, - "src": "6072:11:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 6507, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3730", - "id": 6506, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6084:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_70_by_1", - "typeString": "int_const 70" - }, - "value": "70" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6072:15:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "307830356237373139353562333665313266373233356666666666666666666666666666", - "id": 6508, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6090:36:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1945250316684124513375052119057996185599_by_1", - "typeString": "int_const 1945...(32 digits omitted)...5599" - }, - "value": "0x05b771955b36e12f7235ffffffffffffff" - }, - "src": "6072:54:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6510, - "nodeType": "ExpressionStatement", - "src": "6072:54:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 6515, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6511, - "name": "maxExpArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6274, - "src": "6130:11:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 6513, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3731", - "id": 6512, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6142:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_71_by_1", - "typeString": "int_const 71" - }, - "value": "71" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6130:15:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "307830353762336434396464613834353536643666366666666666666666666666666666", - "id": 6514, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6148:36:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1865225106372009884014199587421481336831_by_1", - "typeString": "int_const 1865...(32 digits omitted)...6831" - }, - "value": "0x057b3d49dda84556d6f6ffffffffffffff" - }, - "src": "6130:54:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6516, - "nodeType": "ExpressionStatement", - "src": "6130:54:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 6521, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6517, - "name": "maxExpArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6274, - "src": "6188:11:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 6519, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3732", - "id": 6518, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6200:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_72_by_1", - "typeString": "int_const 72" - }, - "value": "72" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6188:15:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "307830353431383330393562326338656365636633306666666666666666666666666666", - "id": 6520, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6206:36:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1788492034984419117666073304513300660223_by_1", - "typeString": "int_const 1788...(32 digits omitted)...0223" - }, - "value": "0x054183095b2c8ececf30ffffffffffffff" - }, - "src": "6188:54:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6522, - "nodeType": "ExpressionStatement", - "src": "6188:54:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 6527, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6523, - "name": "maxExpArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6274, - "src": "6246:11:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 6525, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3733", - "id": 6524, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6258:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_73_by_1", - "typeString": "int_const 73" - }, - "value": "73" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6246:15:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "307830353061323862653633356361326238383866373766666666666666666666666666", - "id": 6526, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6264:36:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1714915667966964990208967912165996494847_by_1", - "typeString": "int_const 1714...(32 digits omitted)...4847" - }, - "value": "0x050a28be635ca2b888f77fffffffffffff" - }, - "src": "6246:54:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6528, - "nodeType": "ExpressionStatement", - "src": "6246:54:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 6533, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6529, - "name": "maxExpArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6274, - "src": "6304:11:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 6531, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3734", - "id": 6530, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6316:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_74_by_1", - "typeString": "int_const 74" - }, - "value": "74" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6304:15:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "307830346435313536363339373038633964623333633366666666666666666666666666", - "id": 6532, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6322:36:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1644366142376587317378242124992063995903_by_1", - "typeString": "int_const 1644...(32 digits omitted)...5903" - }, - "value": "0x04d5156639708c9db33c3fffffffffffff" - }, - "src": "6304:54:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6534, - "nodeType": "ExpressionStatement", - "src": "6304:54:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 6539, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6535, - "name": "maxExpArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6274, - "src": "6362:11:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 6537, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3735", - "id": 6536, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6374:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_75_by_1", - "typeString": "int_const 75" - }, - "value": "75" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6362:15:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "307830346132333130353837333837356264353264666466666666666666666666666666", - "id": 6538, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6380:36:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1576718937672301888428671268411708276735_by_1", - "typeString": "int_const 1576...(32 digits omitted)...6735" - }, - "value": "0x04a23105873875bd52dfdfffffffffffff" - }, - "src": "6362:54:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6540, - "nodeType": "ExpressionStatement", - "src": "6362:54:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 6545, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6541, - "name": "maxExpArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6274, - "src": "6420:11:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 6543, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3736", - "id": 6542, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6432:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_76_by_1", - "typeString": "int_const 76" - }, - "value": "76" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6420:15:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "307830343731363439643837313939616139393037353666666666666666666666666666", - "id": 6544, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6438:36:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1511854655935336643558907106913628979199_by_1", - "typeString": "int_const 1511...(32 digits omitted)...9199" - }, - "value": "0x0471649d87199aa990756fffffffffffff" - }, - "src": "6420:54:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6546, - "nodeType": "ExpressionStatement", - "src": "6420:54:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 6551, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6547, - "name": "maxExpArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6274, - "src": "6478:11:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 6549, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3737", - "id": 6548, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6490:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_77_by_1", - "typeString": "int_const 77" - }, - "value": "77" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6478:15:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "307830343432396132316130323964346331343537636662666666666666666666666666", - "id": 6550, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6496:36:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1449658811130741678082357454851673161727_by_1", - "typeString": "int_const 1449...(32 digits omitted)...1727" - }, - "value": "0x04429a21a029d4c1457cfbffffffffffff" - }, - "src": "6478:54:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6552, - "nodeType": "ExpressionStatement", - "src": "6478:54:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 6557, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6553, - "name": "maxExpArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6274, - "src": "6536:11:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 6555, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3738", - "id": 6554, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6548:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_78_by_1", - "typeString": "int_const 78" - }, - "value": "78" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6536:15:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "307830343135626336643666623764643731616632636233666666666666666666666666", - "id": 6556, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6554:36:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1390021627038517938156314751863424548863_by_1", - "typeString": "int_const 1390...(32 digits omitted)...8863" - }, - "value": "0x0415bc6d6fb7dd71af2cb3ffffffffffff" - }, - "src": "6536:54:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6558, - "nodeType": "ExpressionStatement", - "src": "6536:54:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 6563, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6559, - "name": "maxExpArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6274, - "src": "6594:11:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 6561, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3739", - "id": 6560, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6606:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_79_by_1", - "typeString": "int_const 79" - }, - "value": "79" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6594:15:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "307830336561623733623362626665323832323433636531666666666666666666666666", - "id": 6562, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6612:36:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1332837843497611250583009129150422188031_by_1", - "typeString": "int_const 1332...(32 digits omitted)...8031" - }, - "value": "0x03eab73b3bbfe282243ce1ffffffffffff" - }, - "src": "6594:54:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6564, - "nodeType": "ExpressionStatement", - "src": "6594:54:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 6569, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6565, - "name": "maxExpArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6274, - "src": "6652:11:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 6567, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3830", - "id": 6566, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6664:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_80_by_1", - "typeString": "int_const 80" - }, - "value": "80" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6652:15:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "307830336331373731616339666236623463313865323239666666666666666666666666", - "id": 6568, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6670:36:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1278006530620790610545644364558728429567_by_1", - "typeString": "int_const 1278...(32 digits omitted)...9567" - }, - "value": "0x03c1771ac9fb6b4c18e229ffffffffffff" - }, - "src": "6652:54:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6570, - "nodeType": "ExpressionStatement", - "src": "6652:54:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 6575, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6571, - "name": "maxExpArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6274, - "src": "6710:11:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 6573, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3831", - "id": 6572, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6722:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_81_by_1", - "typeString": "int_const 81" - }, - "value": "81" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6710:15:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "307830333939653936383937363930343138663738353235376666666666666666666666", - "id": 6574, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6728:36:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1225430910652498332846748256431392161791_by_1", - "typeString": "int_const 1225...(32 digits omitted)...1791" - }, - "value": "0x0399e96897690418f785257fffffffffff" - }, - "src": "6710:54:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6576, - "nodeType": "ExpressionStatement", - "src": "6710:54:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 6581, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6577, - "name": "maxExpArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6274, - "src": "6768:11:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 6579, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3832", - "id": 6578, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6780:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_82_by_1", - "typeString": "int_const 82" - }, - "value": "82" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6768:15:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "307830333733666334353663353362623737396266306561396666666666666666666666", - "id": 6580, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6786:36:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1175018187155249585623915264673694351359_by_1", - "typeString": "int_const 1175...(32 digits omitted)...1359" - }, - "value": "0x0373fc456c53bb779bf0ea9fffffffffff" - }, - "src": "6768:54:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6582, - "nodeType": "ExpressionStatement", - "src": "6768:54:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 6587, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6583, - "name": "maxExpArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6274, - "src": "6826:11:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 6585, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3833", - "id": 6584, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6838:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_83_by_1", - "typeString": "int_const 83" - }, - "value": "83" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6826:15:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "307830333466396538653439306334386536376536616238626666666666666666666666", - "id": 6586, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6844:36:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1126679381223093780446468558216906145791_by_1", - "typeString": "int_const 1126...(32 digits omitted)...5791" - }, - "value": "0x034f9e8e490c48e67e6ab8bfffffffffff" - }, - "src": "6826:54:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6588, - "nodeType": "ExpressionStatement", - "src": "6826:54:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 6593, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6589, - "name": "maxExpArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6274, - "src": "6884:11:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 6591, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3834", - "id": 6590, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6896:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_84_by_1", - "typeString": "int_const 84" - }, - "value": "84" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6884:15:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "307830333263626664346137616463373930353630623333333766666666666666666666", - "id": 6592, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6902:36:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1080329174433053119456411494679599644671_by_1", - "typeString": "int_const 1080...(32 digits omitted)...4671" - }, - "value": "0x032cbfd4a7adc790560b3337ffffffffff" - }, - "src": "6884:54:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6594, - "nodeType": "ExpressionStatement", - "src": "6884:54:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 6599, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6595, - "name": "maxExpArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6274, - "src": "6942:11:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 6597, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3835", - "id": 6596, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6954:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_85_by_1", - "typeString": "int_const 85" - }, - "value": "85" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6942:15:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "307830333062353035373066366535643261636361393436313366666666666666666666", - "id": 6598, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6960:36:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1035885758257346189907937735244580388863_by_1", - "typeString": "int_const 1035...(32 digits omitted)...8863" - }, - "value": "0x030b50570f6e5d2acca94613ffffffffff" - }, - "src": "6942:54:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6600, - "nodeType": "ExpressionStatement", - "src": "6942:54:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 6605, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6601, - "name": "maxExpArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6274, - "src": "7000:11:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 6603, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3836", - "id": 6602, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7012:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_86_by_1", - "typeString": "int_const 86" - }, - "value": "86" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "7000:15:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "307830326562343066396636323066646136623536633238363166666666666666666666", - "id": 6604, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7018:36:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_993270689670607839608468400662101622783_by_1", - "typeString": "int_const 9932...(31 digits omitted)...2783" - }, - "value": "0x02eb40f9f620fda6b56c2861ffffffffff" - }, - "src": "7000:54:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6606, - "nodeType": "ExpressionStatement", - "src": "7000:54:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 6611, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6607, - "name": "maxExpArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6274, - "src": "7058:11:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 6609, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3837", - "id": 6608, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7070:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_87_by_1", - "typeString": "int_const 87" - }, - "value": "87" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "7058:15:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "307830326363383334306563623064306635323061366166353866666666666666666666", - "id": 6610, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7076:36:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_952408752697250790372885759853747765247_by_1", - "typeString": "int_const 9524...(31 digits omitted)...5247" - }, - "value": "0x02cc8340ecb0d0f520a6af58ffffffffff" - }, - "src": "7058:54:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6612, - "nodeType": "ExpressionStatement", - "src": "7058:54:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 6617, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6613, - "name": "maxExpArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6274, - "src": "7116:11:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 6615, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3838", - "id": 6614, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7128:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_88_by_1", - "typeString": "int_const 88" - }, - "value": "88" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "7116:15:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "307830326166303934383133383061306133356366316261303266666666666666666666", - "id": 6616, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7134:36:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_913227825654598849673391073164504596479_by_1", - "typeString": "int_const 9132...(31 digits omitted)...6479" - }, - "value": "0x02af09481380a0a35cf1ba02ffffffffff" - }, - "src": "7116:54:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6618, - "nodeType": "ExpressionStatement", - "src": "7116:54:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 6623, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6619, - "name": "maxExpArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6274, - "src": "7174:11:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 6621, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3839", - "id": 6620, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7186:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_89_by_1", - "typeString": "int_const 89" - }, - "value": "89" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "7174:15:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "307830323932633562646433623932656338313032383762316233666666666666666666", - "id": 6622, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7192:36:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_875658753857474668265023456619450597375_by_1", - "typeString": "int_const 8756...(31 digits omitted)...7375" - }, - "value": "0x0292c5bdd3b92ec810287b1b3fffffffff" - }, - "src": "7174:54:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6624, - "nodeType": "ExpressionStatement", - "src": "7174:54:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 6629, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6625, - "name": "maxExpArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6274, - "src": "7232:11:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 6627, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3930", - "id": 6626, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7244:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_90_by_1", - "typeString": "int_const 90" - }, - "value": "90" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "7232:15:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "307830323737616264636461623037643561373761633664366239666666666666666666", - "id": 6628, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7250:36:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_839635227559564507480479102760887779327_by_1", - "typeString": "int_const 8396...(31 digits omitted)...9327" - }, - "value": "0x0277abdcdab07d5a77ac6d6b9fffffffff" - }, - "src": "7232:54:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6630, - "nodeType": "ExpressionStatement", - "src": "7232:54:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 6635, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6631, - "name": "maxExpArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6274, - "src": "7290:11:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 6633, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3931", - "id": 6632, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7302:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_91_by_1", - "typeString": "int_const 91" - }, - "value": "91" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "7290:15:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "307830323564616636363534623165616135356664363464663565666666666666666666", - "id": 6634, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7308:36:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_805093664916125437948904238798044397567_by_1", - "typeString": "int_const 8050...(31 digits omitted)...7567" - }, - "value": "0x025daf6654b1eaa55fd64df5efffffffff" - }, - "src": "7290:54:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6636, - "nodeType": "ExpressionStatement", - "src": "7290:54:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 6641, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6637, - "name": "maxExpArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6274, - "src": "7348:11:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 6639, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3932", - "id": 6638, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7360:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_92_by_1", - "typeString": "int_const 92" - }, - "value": "92" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "7348:15:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "307830323434633439633634386261613938313932646365383862376666666666666666", - "id": 6640, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7366:36:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_771973099761463105605096142810743046143_by_1", - "typeString": "int_const 7719...(31 digits omitted)...6143" - }, - "value": "0x0244c49c648baa98192dce88b7ffffffff" - }, - "src": "7348:54:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6642, - "nodeType": "ExpressionStatement", - "src": "7348:54:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 6647, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6643, - "name": "maxExpArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6274, - "src": "7406:11:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 6645, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3933", - "id": 6644, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7418:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_93_by_1", - "typeString": "int_const 93" - }, - "value": "93" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "7406:15:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "307830323263653033636435363139613331316232343731323638626666666666666666", - "id": 6646, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7424:36:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_740215074003106313787373698556008333311_by_1", - "typeString": "int_const 7402...(31 digits omitted)...3311" - }, - "value": "0x022ce03cd5619a311b2471268bffffffff" - }, - "src": "7406:54:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6648, - "nodeType": "ExpressionStatement", - "src": "7406:54:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 6653, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6649, - "name": "maxExpArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6274, - "src": "7464:11:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 6651, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3934", - "id": 6650, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7476:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_94_by_1", - "typeString": "int_const 94" - }, - "value": "94" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "7464:15:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "307830323135663737633034356662653838353635346134346130666666666666666666", - "id": 6652, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7482:36:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_709763534442753181219281418466841591807_by_1", - "typeString": "int_const 7097...(31 digits omitted)...1807" - }, - "value": "0x0215f77c045fbe885654a44a0fffffffff" - }, - "src": "7464:54:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6654, - "nodeType": "ExpressionStatement", - "src": "7464:54:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 6659, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6655, - "name": "maxExpArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6274, - "src": "7522:11:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 6657, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3935", - "id": 6656, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7534:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_95_by_1", - "typeString": "int_const 95" - }, - "value": "95" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "7522:15:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "307830316666666666666666666666666666666666666666666666666666666666666666", - "id": 6658, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7540:36:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_680564733841876926926749214863536422911_by_1", - "typeString": "int_const 6805...(31 digits omitted)...2911" - }, - "value": "0x01ffffffffffffffffffffffffffffffff" - }, - "src": "7522:54:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6660, - "nodeType": "ExpressionStatement", - "src": "7522:54:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 6665, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6661, - "name": "maxExpArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6274, - "src": "7580:11:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 6663, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3936", - "id": 6662, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7592:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_96_by_1", - "typeString": "int_const 96" - }, - "value": "96" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "7580:15:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "307830316561656664626461616565373432316663346433656465356666666666666666", - "id": 6664, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7598:36:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_652567136057371195186997586203332575231_by_1", - "typeString": "int_const 6525...(31 digits omitted)...5231" - }, - "value": "0x01eaefdbdaaee7421fc4d3ede5ffffffff" - }, - "src": "7580:54:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6666, - "nodeType": "ExpressionStatement", - "src": "7580:54:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 6671, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6667, - "name": "maxExpArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6274, - "src": "7638:11:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 6669, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3937", - "id": 6668, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7650:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_97_by_1", - "typeString": "int_const 97" - }, - "value": "97" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "7638:15:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "307830316436626438623265623235376466376538636135376230396266666666666666", - "id": 6670, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7656:36:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_625721325079798489641586010116704960511_by_1", - "typeString": "int_const 6257...(31 digits omitted)...0511" - }, - "value": "0x01d6bd8b2eb257df7e8ca57b09bfffffff" - }, - "src": "7638:54:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6672, - "nodeType": "ExpressionStatement", - "src": "7638:54:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 6677, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6673, - "name": "maxExpArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6274, - "src": "7696:11:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 6675, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3938", - "id": 6674, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7708:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_98_by_1", - "typeString": "int_const 98" - }, - "value": "98" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "7696:15:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "307830316333356665646431346238363165623034343366376631333366666666666666", - "id": 6676, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7714:36:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_599979917813693414950432886451725139967_by_1", - "typeString": "int_const 5999...(31 digits omitted)...9967" - }, - "value": "0x01c35fedd14b861eb0443f7f133fffffff" - }, - "src": "7696:54:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6678, - "nodeType": "ExpressionStatement", - "src": "7696:54:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 6683, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6679, - "name": "maxExpArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6274, - "src": "7754:11:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 6681, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3939", - "id": 6680, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7766:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_99_by_1", - "typeString": "int_const 99" - }, - "value": "99" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "7754:15:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "307830316230636534336233323262636465346135366538616461356166666666666666", - "id": 6682, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7772:36:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_575297480445977184425850753341355720703_by_1", - "typeString": "int_const 5752...(31 digits omitted)...0703" - }, - "value": "0x01b0ce43b322bcde4a56e8ada5afffffff" - }, - "src": "7754:54:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6684, - "nodeType": "ExpressionStatement", - "src": "7754:54:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 6689, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6685, - "name": "maxExpArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6274, - "src": "7812:11:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 6687, - "indexExpression": { - "argumentTypes": null, - "hexValue": "313030", - "id": 6686, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7824:3:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_100_by_1", - "typeString": "int_const 100" - }, - "value": "100" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "7812:16:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "307830313966303032386563316666663030376635613139356133396466666666666666", - "id": 6688, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7831:36:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_551630448254872900425972804456347074559_by_1", - "typeString": "int_const 5516...(31 digits omitted)...4559" - }, - "value": "0x019f0028ec1fff007f5a195a39dfffffff" - }, - "src": "7812:55:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6690, - "nodeType": "ExpressionStatement", - "src": "7812:55:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 6695, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6691, - "name": "maxExpArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6274, - "src": "7871:11:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 6693, - "indexExpression": { - "argumentTypes": null, - "hexValue": "313031", - "id": 6692, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7883:3:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_101_by_1", - "typeString": "int_const 101" - }, - "value": "101" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "7871:16:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "307830313864656439316630653732656537346634396231356261353237666666666666", - "id": 6694, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7890:36:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_528937048717783628792119060092411707391_by_1", - "typeString": "int_const 5289...(31 digits omitted)...7391" - }, - "value": "0x018ded91f0e72ee74f49b15ba527ffffff" - }, - "src": "7871:55:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6696, - "nodeType": "ExpressionStatement", - "src": "7871:55:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 6701, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6697, - "name": "maxExpArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6274, - "src": "7930:11:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 6699, - "indexExpression": { - "argumentTypes": null, - "hexValue": "313032", - "id": 6698, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7942:3:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_102_by_1", - "typeString": "int_const 102" - }, - "value": "102" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "7930:16:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "307830313764386563376630343133366634653536313566643431613633666666666666", - "id": 6700, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7949:36:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_507177227782417987326846600868857380863_by_1", - "typeString": "int_const 5071...(31 digits omitted)...0863" - }, - "value": "0x017d8ec7f04136f4e5615fd41a63ffffff" - }, - "src": "7930:55:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6702, - "nodeType": "ExpressionStatement", - "src": "7930:55:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 6707, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6703, - "name": "maxExpArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6274, - "src": "7989:11:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 6705, - "indexExpression": { - "argumentTypes": null, - "hexValue": "313033", - "id": 6704, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8001:3:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_103_by_1", - "typeString": "int_const 103" - }, - "value": "103" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "7989:16:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "307830313664646336353536636462383462646338643132643232653666666666666666", - "id": 6706, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8008:36:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_486312579171031128343732298613950251007_by_1", - "typeString": "int_const 4863...(31 digits omitted)...1007" - }, - "value": "0x016ddc6556cdb84bdc8d12d22e6fffffff" - }, - "src": "7989:55:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6708, - "nodeType": "ExpressionStatement", - "src": "7989:55:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 6713, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6709, - "name": "maxExpArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6274, - "src": "8048:11:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 6711, - "indexExpression": { - "argumentTypes": null, - "hexValue": "313034", - "id": 6710, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8060:3:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_104_by_1", - "typeString": "int_const 104" - }, - "value": "104" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "8048:16:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "307830313565636635323737366131313535623562643833393538313466376666666666", - "id": 6712, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8067:36:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_466306276593002471003532891264408092671_by_1", - "typeString": "int_const 4663...(31 digits omitted)...2671" - }, - "value": "0x015ecf52776a1155b5bd8395814f7fffff" - }, - "src": "8048:55:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6714, - "nodeType": "ExpressionStatement", - "src": "8048:55:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 6719, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6715, - "name": "maxExpArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6274, - "src": "8107:11:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 6717, - "indexExpression": { - "argumentTypes": null, - "hexValue": "313035", - "id": 6716, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8119:3:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_105_by_1", - "typeString": "int_const 105" - }, - "value": "105" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "8107:16:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "307830313530363063323536636232336233623363633337353463663430666666666666", - "id": 6718, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8126:36:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_447123008746104779416515886102660251647_by_1", - "typeString": "int_const 4471...(31 digits omitted)...1647" - }, - "value": "0x015060c256cb23b3b3cc3754cf40ffffff" - }, - "src": "8107:55:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6720, - "nodeType": "ExpressionStatement", - "src": "8107:55:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 6725, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6721, - "name": "maxExpArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6274, - "src": "8166:11:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 6723, - "indexExpression": { - "argumentTypes": null, - "hexValue": "313036", - "id": 6722, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8178:3:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_106_by_1", - "typeString": "int_const 106" - }, - "value": "106" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "8166:16:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "307830313432386132663938643732386165323233646461623731356265336666666666", - "id": 6724, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8185:36:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_428728916991741247552240490495652921343_by_1", - "typeString": "int_const 4287...(31 digits omitted)...1343" - }, - "value": "0x01428a2f98d728ae223ddab715be3fffff" - }, - "src": "8166:55:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6726, - "nodeType": "ExpressionStatement", - "src": "8166:55:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 6731, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6727, - "name": "maxExpArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6274, - "src": "8225:11:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 6729, - "indexExpression": { - "argumentTypes": null, - "hexValue": "313037", - "id": 6728, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8237:3:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_107_by_1", - "typeString": "int_const 107" - }, - "value": "107" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "8225:16:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "307830313335343535393865356332333237366363663065646536383033346666666666", - "id": 6730, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8244:36:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_411091535594146829344560212836376117247_by_1", - "typeString": "int_const 4110...(31 digits omitted)...7247" - }, - "value": "0x013545598e5c23276ccf0ede68034fffff" - }, - "src": "8225:55:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6732, - "nodeType": "ExpressionStatement", - "src": "8225:55:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 6737, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6733, - "name": "maxExpArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6274, - "src": "8284:11:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 6735, - "indexExpression": { - "argumentTypes": null, - "hexValue": "313038", - "id": 6734, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8296:3:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_108_by_1", - "typeString": "int_const 108" - }, - "value": "108" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "8284:16:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "307830313238386334313631636531643666353462376636313038313139346666666666", - "id": 6736, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8303:36:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_394179734418075472107167272299635146751_by_1", - "typeString": "int_const 3941...(31 digits omitted)...6751" - }, - "value": "0x01288c4161ce1d6f54b7f61081194fffff" - }, - "src": "8284:55:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6738, - "nodeType": "ExpressionStatement", - "src": "8284:55:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 6743, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6739, - "name": "maxExpArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6274, - "src": "8343:11:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 6741, - "indexExpression": { - "argumentTypes": null, - "hexValue": "313039", - "id": 6740, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8355:3:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_109_by_1", - "typeString": "int_const 109" - }, - "value": "109" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "8343:16:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "307830313163353932373631633636366161363431643561303161343066313766666666", - "id": 6742, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8362:36:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_377963663983834160889726215582593318911_by_1", - "typeString": "int_const 3779...(31 digits omitted)...8911" - }, - "value": "0x011c592761c666aa641d5a01a40f17ffff" - }, - "src": "8343:55:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6744, - "nodeType": "ExpressionStatement", - "src": "8343:55:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 6749, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6745, - "name": "maxExpArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6274, - "src": "8402:11:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 6747, - "indexExpression": { - "argumentTypes": null, - "hexValue": "313130", - "id": 6746, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8414:3:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_110_by_1", - "typeString": "int_const 110" - }, - "value": "110" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "8402:16:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "307830313130613638383638306137353330353135663365366536636664636466666666", - "id": 6748, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8421:36:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_362414702782685419520589203652335239167_by_1", - "typeString": "int_const 3624...(31 digits omitted)...9167" - }, - "value": "0x0110a688680a7530515f3e6e6cfdcdffff" - }, - "src": "8402:55:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6750, - "nodeType": "ExpressionStatement", - "src": "8402:55:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 6755, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6751, - "name": "maxExpArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6274, - "src": "8461:11:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 6753, - "indexExpression": { - "argumentTypes": null, - "hexValue": "313131", - "id": 6752, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8473:3:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_111_by_1", - "typeString": "int_const 111" - }, - "value": "111" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "8461:16:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "307830313035366631623562656466373563366263623263653861656434323866666666", - "id": 6754, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8480:36:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_347505406759629484539078662328460836863_by_1", - "typeString": "int_const 3475...(31 digits omitted)...6863" - }, - "value": "0x01056f1b5bedf75c6bcb2ce8aed428ffff" - }, - "src": "8461:55:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6756, - "nodeType": "ExpressionStatement", - "src": "8461:55:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 6761, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6757, - "name": "maxExpArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6274, - "src": "8520:11:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 6759, - "indexExpression": { - "argumentTypes": null, - "hexValue": "313132", - "id": 6758, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8532:3:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_112_by_1", - "typeString": "int_const 112" - }, - "value": "112" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "8520:16:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "307830306661616463656365656666386130383930663338373566303038323737666666", - "id": 6760, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8539:36:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_333209460874402812645752271223906598911_by_1", - "typeString": "int_const 3332...(31 digits omitted)...8911" - }, - "value": "0x00faadceceeff8a0890f3875f008277fff" - }, - "src": "8520:55:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6762, - "nodeType": "ExpressionStatement", - "src": "8520:55:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 6767, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6763, - "name": "maxExpArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6274, - "src": "8579:11:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 6765, - "indexExpression": { - "argumentTypes": null, - "hexValue": "313133", - "id": 6764, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8591:3:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_113_by_1", - "typeString": "int_const 113" - }, - "value": "113" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "8579:16:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "307830306630356463366232376564616433303633383861363030663662613062666666", - "id": 6766, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8598:36:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_319501632655197652636411056021540225023_by_1", - "typeString": "int_const 3195...(31 digits omitted)...5023" - }, - "value": "0x00f05dc6b27edad306388a600f6ba0bfff" - }, - "src": "8579:55:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6768, - "nodeType": "ExpressionStatement", - "src": "8579:55:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 6773, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6769, - "name": "maxExpArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6274, - "src": "8638:11:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 6771, - "indexExpression": { - "argumentTypes": null, - "hexValue": "313134", - "id": 6770, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8650:3:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_114_by_1", - "typeString": "int_const 114" - }, - "value": "114" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "8638:16:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "307830306536376135613235646134313036336465313439356435623138636462666666", - "id": 6772, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8657:36:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_306357727663124583211687061200571318271_by_1", - "typeString": "int_const 3063...(31 digits omitted)...8271" - }, - "value": "0x00e67a5a25da41063de1495d5b18cdbfff" - }, - "src": "8638:55:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6774, - "nodeType": "ExpressionStatement", - "src": "8638:55:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 6779, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6775, - "name": "maxExpArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6274, - "src": "8697:11:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 6777, - "indexExpression": { - "argumentTypes": null, - "hexValue": "313135", - "id": 6776, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8709:3:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_115_by_1", - "typeString": "int_const 115" - }, - "value": "115" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "8697:16:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "307830306463666631313562313465656464653666633361613533353366326534666666", - "id": 6778, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8716:36:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_293754546788812396405978813098581970943_by_1", - "typeString": "int_const 2937...(31 digits omitted)...0943" - }, - "value": "0x00dcff115b14eedde6fc3aa5353f2e4fff" - }, - "src": "8697:55:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6780, - "nodeType": "ExpressionStatement", - "src": "8697:55:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 6785, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6781, - "name": "maxExpArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6274, - "src": "8756:11:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 6783, - "indexExpression": { - "argumentTypes": null, - "hexValue": "313136", - "id": 6782, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8768:3:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_116_by_1", - "typeString": "int_const 116" - }, - "value": "116" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "8756:16:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "307830306433653761333932343331323339396639616165326530663836386638666666", - "id": 6784, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8775:36:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_281669845305773445111617137421885345791_by_1", - "typeString": "int_const 2816...(31 digits omitted)...5791" - }, - "value": "0x00d3e7a3924312399f9aae2e0f868f8fff" - }, - "src": "8756:55:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6786, - "nodeType": "ExpressionStatement", - "src": "8756:55:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 6791, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6787, - "name": "maxExpArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6274, - "src": "8815:11:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 6789, - "indexExpression": { - "argumentTypes": null, - "hexValue": "313137", - "id": 6788, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8827:3:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_117_by_1", - "typeString": "int_const 117" - }, - "value": "117" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "8815:16:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "307830306362326666353239656237316534313538326363636435613165653236666666", - "id": 6790, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8834:36:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_270082293608263279864102872957453496319_by_1", - "typeString": "int_const 2700...(31 digits omitted)...6319" - }, - "value": "0x00cb2ff529eb71e41582cccd5a1ee26fff" - }, - "src": "8815:55:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6792, - "nodeType": "ExpressionStatement", - "src": "8815:55:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 6797, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6793, - "name": "maxExpArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6274, - "src": "8874:11:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 6795, - "indexExpression": { - "argumentTypes": null, - "hexValue": "313138", - "id": 6794, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8886:3:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_118_by_1", - "typeString": "int_const 118" - }, - "value": "118" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "8874:16:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "307830306332643431356333646239373461623332613531383430633062363765646666", - "id": 6796, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8893:36:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_258971439564336547476984432763364437503_by_1", - "typeString": "int_const 2589...(31 digits omitted)...7503" - }, - "value": "0x00c2d415c3db974ab32a51840c0b67edff" - }, - "src": "8874:55:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6798, - "nodeType": "ExpressionStatement", - "src": "8874:55:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 6803, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6799, - "name": "maxExpArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6274, - "src": "8933:11:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 6801, - "indexExpression": { - "argumentTypes": null, - "hexValue": "313139", - "id": 6800, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8945:3:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_119_by_1", - "typeString": "int_const 119" - }, - "value": "119" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "8933:16:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "307830306261643033653764383833663639616435623061313836313834653036626666", - "id": 6802, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8952:36:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_248317672417651959902117100034610719743_by_1", - "typeString": "int_const 2483...(31 digits omitted)...9743" - }, - "value": "0x00bad03e7d883f69ad5b0a186184e06bff" - }, - "src": "8933:55:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6804, - "nodeType": "ExpressionStatement", - "src": "8933:55:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 6809, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6805, - "name": "maxExpArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6274, - "src": "8992:11:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 6807, - "indexExpression": { - "argumentTypes": null, - "hexValue": "313230", - "id": 6806, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9004:3:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_120_by_1", - "typeString": "int_const 120" - }, - "value": "120" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "8992:16:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "307830306233323064303362326333343364343832396162643630373566306363356666", - "id": 6808, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9011:36:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_238102188174312697593221439720218478079_by_1", - "typeString": "int_const 2381...(31 digits omitted)...8079" - }, - "value": "0x00b320d03b2c343d4829abd6075f0cc5ff" - }, - "src": "8992:55:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6810, - "nodeType": "ExpressionStatement", - "src": "8992:55:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 6815, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6811, - "name": "maxExpArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6274, - "src": "9051:11:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 6813, - "indexExpression": { - "argumentTypes": null, - "hexValue": "313231", - "id": 6812, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9063:3:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_121_by_1", - "typeString": "int_const 121" - }, - "value": "121" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "9051:16:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "307830306162633235323034653032383238643733633665383062636462316139356266", - "id": 6814, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9070:36:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_228306956413649712418347768277622232511_by_1", - "typeString": "int_const 2283...(31 digits omitted)...2511" - }, - "value": "0x00abc25204e02828d73c6e80bcdb1a95bf" - }, - "src": "9051:55:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6816, - "nodeType": "ExpressionStatement", - "src": "9051:55:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 6821, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6817, - "name": "maxExpArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6274, - "src": "9110:11:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 6819, - "indexExpression": { - "argumentTypes": null, - "hexValue": "313232", - "id": 6818, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9122:3:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_122_by_1", - "typeString": "int_const 122" - }, - "value": "122" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "9110:16:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "307830306134623136663734656534626232303430613165633663313566626266326466", - "id": 6820, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9129:36:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_218914688464368667066255864092044292831_by_1", - "typeString": "int_const 2189...(31 digits omitted)...2831" - }, - "value": "0x00a4b16f74ee4bb2040a1ec6c15fbbf2df" - }, - "src": "9110:55:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6822, - "nodeType": "ExpressionStatement", - "src": "9110:55:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 6827, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6823, - "name": "maxExpArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6274, - "src": "9169:11:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 6825, - "indexExpression": { - "argumentTypes": null, - "hexValue": "313233", - "id": 6824, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9181:3:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_123_by_1", - "typeString": "int_const 123" - }, - "value": "123" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "9169:16:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "307830303964656166373336616331663536396465623162356165336633366331333066", - "id": 6826, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9188:36:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_209908806889891126870119775672831054607_by_1", - "typeString": "int_const 2099...(31 digits omitted)...4607" - }, - "value": "0x009deaf736ac1f569deb1b5ae3f36c130f" - }, - "src": "9169:55:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6828, - "nodeType": "ExpressionStatement", - "src": "9169:55:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 6833, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6829, - "name": "maxExpArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6274, - "src": "9228:11:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 6831, - "indexExpression": { - "argumentTypes": null, - "hexValue": "313234", - "id": 6830, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9240:3:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_124_by_1", - "typeString": "int_const 124" - }, - "value": "124" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "9228:16:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "307830303937366264393935326337616139353766353933376437393065663635303337", - "id": 6832, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9247:36:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_201273416229031359487226059686877220919_by_1", - "typeString": "int_const 2012...(31 digits omitted)...0919" - }, - "value": "0x00976bd9952c7aa957f5937d790ef65037" - }, - "src": "9228:55:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6834, - "nodeType": "ExpressionStatement", - "src": "9228:55:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 6839, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6835, - "name": "maxExpArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6274, - "src": "9287:11:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 6837, - "indexExpression": { - "argumentTypes": null, - "hexValue": "313235", - "id": 6836, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9299:3:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_125_by_1", - "typeString": "int_const 125" - }, - "value": "125" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "9287:16:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "307830303931333132373139323265616136303634623733613232643062643466326266", - "id": 6838, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9306:36:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_192993274940365776401274035698589299391_by_1", - "typeString": "int_const 1929...(31 digits omitted)...9391" - }, - "value": "0x009131271922eaa6064b73a22d0bd4f2bf" - }, - "src": "9287:55:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6840, - "nodeType": "ExpressionStatement", - "src": "9287:55:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 6845, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6841, - "name": "maxExpArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6274, - "src": "9346:11:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 6843, - "indexExpression": { - "argumentTypes": null, - "hexValue": "313236", - "id": 6842, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9358:3:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_126_by_1", - "typeString": "int_const 126" - }, - "value": "126" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "9346:16:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "307830303862333830663335353836363863343663393163343961326638653936376239", - "id": 6844, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9365:36:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_185053768500776578446843424638883162041_by_1", - "typeString": "int_const 1850...(31 digits omitted)...2041" - }, - "value": "0x008b380f3558668c46c91c49a2f8e967b9" - }, - "src": "9346:55:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6846, - "nodeType": "ExpressionStatement", - "src": "9346:55:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 6851, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6847, - "name": "maxExpArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6274, - "src": "9405:11:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 6849, - "indexExpression": { - "argumentTypes": null, - "hexValue": "313237", - "id": 6848, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9417:3:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_127_by_1", - "typeString": "int_const 127" - }, - "value": "127" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "9405:16:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "307830303835376464663031313765666132313539353239313238333966363437336536", - "id": 6850, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9424:36:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_177440883610688295304820354615089591270_by_1", - "typeString": "int_const 1774...(31 digits omitted)...1270" - }, - "value": "0x00857ddf0117efa215952912839f6473e6" - }, - "src": "9405:55:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6852, - "nodeType": "ExpressionStatement", - "src": "9405:55:10" - } - ] - }, - "documentation": null, - "id": 6854, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "initMaxExpArray", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 6275, - "nodeType": "ParameterList", - "parameters": [], - "src": "1837:2:10" - }, - "payable": false, - "returnParameters": { - "id": 6276, - "nodeType": "ParameterList", - "parameters": [], - "src": "1848:0:10" - }, - "scope": 11642, - "src": "1813:7651:10", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "constant": false, - "id": 6858, - "name": "lambertArray", - "nodeType": "VariableDeclaration", - "scope": 11642, - "src": "9523:33:10", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128]" - }, - "typeName": { - "baseType": { - "id": 6855, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9523:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6857, - "length": { - "argumentTypes": null, - "hexValue": "313238", - "id": 6856, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9531:3:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - }, - "value": "128" - }, - "nodeType": "ArrayTypeName", - "src": "9523:12:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage_ptr", - "typeString": "uint256[128]" - } - }, - "value": null, - "visibility": "private" - }, - { - "body": { - "id": 7629, - "nodeType": "Block", - "src": "9596:7318:10", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 6865, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6861, - "name": "lambertArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6858, - "src": "9600:12:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 6863, - "indexExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 6862, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9613:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "9600:15:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30783630653339336336386432306231626430396465616162633033373362396335", - "id": 6864, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9618:34:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_128787536227304155647383678419039664581_by_1", - "typeString": "int_const 1287...(31 digits omitted)...4581" - }, - "value": "0x60e393c68d20b1bd09deaabc0373b9c5" - }, - "src": "9600:52:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6866, - "nodeType": "ExpressionStatement", - "src": "9600:52:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 6871, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6867, - "name": "lambertArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6858, - "src": "9656:12:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 6869, - "indexExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 6868, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9669:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "9656:15:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30783566386634366534383534313230393839656439343731396662346332303131", - "id": 6870, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9674:34:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_127020595924271037561532833511427022865_by_1", - "typeString": "int_const 1270...(31 digits omitted)...2865" - }, - "value": "0x5f8f46e4854120989ed94719fb4c2011" - }, - "src": "9656:52:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6872, - "nodeType": "ExpressionStatement", - "src": "9656:52:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 6877, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6873, - "name": "lambertArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6858, - "src": "9712:12:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 6875, - "indexExpression": { - "argumentTypes": null, - "hexValue": "32", - "id": 6874, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9725:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "9712:15:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30783565343739656262393132396662316237653732613634386639393262363036", - "id": 6876, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9730:34:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_125319304162047910149801695424990590470_by_1", - "typeString": "int_const 1253...(31 digits omitted)...0470" - }, - "value": "0x5e479ebb9129fb1b7e72a648f992b606" - }, - "src": "9712:52:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6878, - "nodeType": "ExpressionStatement", - "src": "9712:52:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 6883, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6879, - "name": "lambertArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6858, - "src": "9768:12:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 6881, - "indexExpression": { - "argumentTypes": null, - "hexValue": "33", - "id": 6880, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9781:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_3_by_1", - "typeString": "int_const 3" - }, - "value": "3" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "9768:15:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30783564306264323366653432646665646465326539353836626531326238356665", - "id": 6882, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9786:34:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_123679583241450252008727309686047213054_by_1", - "typeString": "int_const 1236...(31 digits omitted)...3054" - }, - "value": "0x5d0bd23fe42dfedde2e9586be12b85fe" - }, - "src": "9768:52:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6884, - "nodeType": "ExpressionStatement", - "src": "9768:52:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 6889, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6885, - "name": "lambertArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6858, - "src": "9824:12:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 6887, - "indexExpression": { - "argumentTypes": null, - "hexValue": "34", - "id": 6886, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9837:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_4_by_1", - "typeString": "int_const 4" - }, - "value": "4" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "9824:15:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30783562646232396464656539373933303864646663613831616565623830393561", - "id": 6888, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9842:34:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_122097709790504811543485325791668472154_by_1", - "typeString": "int_const 1220...(31 digits omitted)...2154" - }, - "value": "0x5bdb29ddee979308ddfca81aeeb8095a" - }, - "src": "9824:52:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6890, - "nodeType": "ExpressionStatement", - "src": "9824:52:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 6895, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6891, - "name": "lambertArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6858, - "src": "9880:12:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 6893, - "indexExpression": { - "argumentTypes": null, - "hexValue": "35", - "id": 6892, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9893:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_5_by_1", - "typeString": "int_const 5" - }, - "value": "5" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "9880:15:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30783561623466643861323630643263376532633064326166636630303039646164", - "id": 6894, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9898:34:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_120570275450071204896029314248949669293_by_1", - "typeString": "int_const 1205...(31 digits omitted)...9293" - }, - "value": "0x5ab4fd8a260d2c7e2c0d2afcf0009dad" - }, - "src": "9880:52:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6896, - "nodeType": "ExpressionStatement", - "src": "9880:52:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 6901, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6897, - "name": "lambertArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6858, - "src": "9936:12:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 6899, - "indexExpression": { - "argumentTypes": null, - "hexValue": "36", - "id": 6898, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9949:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_6_by_1", - "typeString": "int_const 6" - }, - "value": "6" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "9936:15:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30783539393862333133353961353564343837323463363563663039303031323231", - "id": 6900, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9954:34:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_119094152831753027058824439515169428001_by_1", - "typeString": "int_const 1190...(31 digits omitted)...8001" - }, - "value": "0x5998b31359a55d48724c65cf09001221" - }, - "src": "9936:52:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6902, - "nodeType": "ExpressionStatement", - "src": "9936:52:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 6907, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6903, - "name": "lambertArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6858, - "src": "9992:12:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 6905, - "indexExpression": { - "argumentTypes": null, - "hexValue": "37", - "id": 6904, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10005:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_7_by_1", - "typeString": "int_const 7" - }, - "value": "7" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "9992:15:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30783538383562636164326233323264666334336538383630663963303138636635", - "id": 6906, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10010:34:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_117666465924103849245162796602282314997_by_1", - "typeString": "int_const 1176...(31 digits omitted)...4997" - }, - "value": "0x5885bcad2b322dfc43e8860f9c018cf5" - }, - "src": "9992:52:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6908, - "nodeType": "ExpressionStatement", - "src": "9992:52:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 6913, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6909, - "name": "lambertArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6858, - "src": "10048:12:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 6911, - "indexExpression": { - "argumentTypes": null, - "hexValue": "38", - "id": 6910, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10061:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_8_by_1", - "typeString": "int_const 8" - }, - "value": "8" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "10048:15:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30783537376239376161316665323232626234353266646631313162316630626532", - "id": 6912, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10066:34:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_116284564269392660122793483482959907810_by_1", - "typeString": "int_const 1162...(31 digits omitted)...7810" - }, - "value": "0x577b97aa1fe222bb452fdf111b1f0be2" - }, - "src": "10048:52:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6914, - "nodeType": "ExpressionStatement", - "src": "10048:52:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 6919, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6915, - "name": "lambertArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6858, - "src": "10104:12:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 6917, - "indexExpression": { - "argumentTypes": null, - "hexValue": "39", - "id": 6916, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10117:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_9_by_1", - "typeString": "int_const 9" - }, - "value": "9" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "10104:15:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30783536373963623565333537353633326535626161323765326239343966373034", - "id": 6918, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10122:34:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_114946000350526915053586759724674184964_by_1", - "typeString": "int_const 1149...(31 digits omitted)...4964" - }, - "value": "0x5679cb5e3575632e5baa27e2b949f704" - }, - "src": "10104:52:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6920, - "nodeType": "ExpressionStatement", - "src": "10104:52:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 6925, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6921, - "name": "lambertArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6858, - "src": "10160:12:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 6923, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3130", - "id": 6922, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10173:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_10_by_1", - "typeString": "int_const 10" - }, - "value": "10" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "10160:16:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30783535376665383234316233613331633833633733326631636466663461316335", - "id": 6924, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10179:34:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_113648509722420118059077800055408992709_by_1", - "typeString": "int_const 1136...(31 digits omitted)...2709" - }, - "value": "0x557fe8241b3a31c83c732f1cdff4a1c5" - }, - "src": "10160:53:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6926, - "nodeType": "ExpressionStatement", - "src": "10160:53:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 6931, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6927, - "name": "lambertArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6858, - "src": "10217:12:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 6929, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3131", - "id": 6928, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10230:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_11_by_1", - "typeString": "int_const 11" - }, - "value": "11" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "10217:16:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30783534386438363830323635303438373564366535396262653935666332613662", - "id": 6930, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10236:34:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_112389993498935521792135674271903787627_by_1", - "typeString": "int_const 1123...(31 digits omitted)...7627" - }, - "value": "0x548d868026504875d6e59bbe95fc2a6b" - }, - "src": "10217:53:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6932, - "nodeType": "ExpressionStatement", - "src": "10217:53:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 6937, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6933, - "name": "lambertArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6858, - "src": "10274:12:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 6935, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3132", - "id": 6934, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10287:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_12_by_1", - "typeString": "int_const 12" - }, - "value": "12" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "10274:16:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30783533613234363563653334376366333464303561383637633137646433303838", - "id": 6936, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10293:34:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_111168502869233775922830736618948472968_by_1", - "typeString": "int_const 1111...(31 digits omitted)...2968" - }, - "value": "0x53a2465ce347cf34d05a867c17dd3088" - }, - "src": "10274:53:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6938, - "nodeType": "ExpressionStatement", - "src": "10274:53:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 6943, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6939, - "name": "lambertArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6858, - "src": "10331:12:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 6941, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3133", - "id": 6940, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10344:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_13_by_1", - "typeString": "int_const 13" - }, - "value": "13" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "10331:16:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30783532626463653564636434666165643539633766353531316366386638616363", - "id": 6942, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10350:34:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_109982225368764407855921799421290842828_by_1", - "typeString": "int_const 1099...(31 digits omitted)...2828" - }, - "value": "0x52bdce5dcd4faed59c7f5511cf8f8acc" - }, - "src": "10331:53:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6944, - "nodeType": "ExpressionStatement", - "src": "10331:53:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 6949, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6945, - "name": "lambertArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6858, - "src": "10388:12:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 6947, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3134", - "id": 6946, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10401:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_14_by_1", - "typeString": "int_const 14" - }, - "value": "14" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "10388:16:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30783531646663623435336330376638646138313736303665373838356637633365", - "id": 6948, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10407:34:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_108829472672502945287330645348712414270_by_1", - "typeString": "int_const 1088...(31 digits omitted)...4270" - }, - "value": "0x51dfcb453c07f8da817606e7885f7c3e" - }, - "src": "10388:53:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6950, - "nodeType": "ExpressionStatement", - "src": "10388:53:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 6955, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6951, - "name": "lambertArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6858, - "src": "10445:12:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 6953, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3135", - "id": 6952, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10458:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_15_by_1", - "typeString": "int_const 15" - }, - "value": "15" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "10445:16:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30783531303765663662306135613262653866386666313535393064616133636365", - "id": 6954, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10464:34:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_107708669713100452055447769980296903886_by_1", - "typeString": "int_const 1077...(31 digits omitted)...3886" - }, - "value": "0x5107ef6b0a5a2be8f8ff15590daa3cce" - }, - "src": "10445:53:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6956, - "nodeType": "ExpressionStatement", - "src": "10445:53:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 6961, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6957, - "name": "lambertArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6858, - "src": "10502:12:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 6959, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3136", - "id": 6958, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10515:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_16_by_1", - "typeString": "int_const 16" - }, - "value": "16" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "10502:16:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30783530333566323431643665616530636437626163626131313939393364653762", - "id": 6960, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10521:34:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_106618344955764005172185288135427743355_by_1", - "typeString": "int_const 1066...(31 digits omitted)...3355" - }, - "value": "0x5035f241d6eae0cd7bacba119993de7b" - }, - "src": "10502:53:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6962, - "nodeType": "ExpressionStatement", - "src": "10502:53:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 6967, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6963, - "name": "lambertArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6858, - "src": "10559:12:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 6965, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3137", - "id": 6964, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10572:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_17_by_1", - "typeString": "int_const 17" - }, - "value": "17" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "10559:16:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30783466363938666539306435623533643533323137316531323130313634633636", - "id": 6966, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10578:34:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_105557121686023412139304113347686190182_by_1", - "typeString": "int_const 1055...(31 digits omitted)...0182" - }, - "value": "0x4f698fe90d5b53d532171e1210164c66" - }, - "src": "10559:53:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6968, - "nodeType": "ExpressionStatement", - "src": "10559:53:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 6973, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6969, - "name": "lambertArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6858, - "src": "10616:12:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 6971, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3138", - "id": 6970, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10629:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_18_by_1", - "typeString": "int_const 18" - }, - "value": "18" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "10616:16:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30783465613238386361323937613065366130396130656565323430653136633835", - "id": 6972, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10635:34:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_104523710186937447092740323392662629509_by_1", - "typeString": "int_const 1045...(31 digits omitted)...9509" - }, - "value": "0x4ea288ca297a0e6a09a0eee240e16c85" - }, - "src": "10616:53:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6974, - "nodeType": "ExpressionStatement", - "src": "10616:53:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 6979, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6975, - "name": "lambertArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6858, - "src": "10673:12:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 6977, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3139", - "id": 6976, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10686:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_19_by_1", - "typeString": "int_const 19" - }, - "value": "19" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "10673:16:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30783464653061313366646366356434323133666333393862613665336265636465", - "id": 6978, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10692:34:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_103516900699454640661508604755841903838_by_1", - "typeString": "int_const 1035...(31 digits omitted)...3838" - }, - "value": "0x4de0a13fdcf5d4213fc398ba6e3becde" - }, - "src": "10673:53:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6980, - "nodeType": "ExpressionStatement", - "src": "10673:53:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 6985, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6981, - "name": "lambertArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6858, - "src": "10730:12:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 6983, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3230", - "id": 6982, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10743:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_20_by_1", - "typeString": "int_const 20" - }, - "value": "20" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "10730:16:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30783464323361313435656566393166656330366230363134303830346334383038", - "id": 6984, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10749:34:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_102535557074135248197607991940341319688_by_1", - "typeString": "int_const 1025...(31 digits omitted)...9688" - }, - "value": "0x4d23a145eef91fec06b06140804c4808" - }, - "src": "10730:53:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6986, - "nodeType": "ExpressionStatement", - "src": "10730:53:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 6991, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6987, - "name": "lambertArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6858, - "src": "10787:12:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 6989, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3231", - "id": 6988, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10800:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_21_by_1", - "typeString": "int_const 21" - }, - "value": "21" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "10787:16:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30783463366235343330643463316565353532363437336462346165306631316465", - "id": 6990, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10806:34:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_101578611034720610581211104132006351326_by_1", - "typeString": "int_const 1015...(31 digits omitted)...1326" - }, - "value": "0x4c6b5430d4c1ee5526473db4ae0f11de" - }, - "src": "10787:53:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6992, - "nodeType": "ExpressionStatement", - "src": "10787:53:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 6997, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6993, - "name": "lambertArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6858, - "src": "10844:12:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 6995, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3232", - "id": 6994, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10857:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_22_by_1", - "typeString": "int_const 22" - }, - "value": "22" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "10844:16:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30783462623738383663323430353632656261313166343936336135336234323430", - "id": 6996, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10863:34:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_100645056984476184212709480501843018304_by_1", - "typeString": "int_const 1006...(31 digits omitted)...8304" - }, - "value": "0x4bb7886c240562eba11f4963a53b4240" - }, - "src": "10844:53:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6998, - "nodeType": "ExpressionStatement", - "src": "10844:53:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 7003, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6999, - "name": "lambertArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6858, - "src": "10901:12:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 7001, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3233", - "id": 7000, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10914:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_23_by_1", - "typeString": "int_const 23" - }, - "value": "23" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "10901:16:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30783462303830663366316362343931643264353231653065613435383335323165", - "id": 7002, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10920:34:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_99733947295139137817365771348103877150_by_1", - "typeString": "int_const 9973...(30 digits omitted)...7150" - }, - "value": "0x4b080f3f1cb491d2d521e0ea4583521e" - }, - "src": "10901:53:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7004, - "nodeType": "ExpressionStatement", - "src": "10901:53:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 7009, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7005, - "name": "lambertArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6858, - "src": "10958:12:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 7007, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3234", - "id": 7006, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10971:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_24_by_1", - "typeString": "int_const 24" - }, - "value": "24" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "10958:16:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30783461356362633936613035353839636234643836626531646233313638333634", - "id": 7008, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10977:34:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_98844388025919853370962885240683922276_by_1", - "typeString": "int_const 9884...(30 digits omitted)...2276" - }, - "value": "0x4a5cbc96a05589cb4d86be1db3168364" - }, - "src": "10958:53:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7010, - "nodeType": "ExpressionStatement", - "src": "10958:53:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 7015, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7011, - "name": "lambertArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6858, - "src": "11015:12:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 7013, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3235", - "id": 7012, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11028:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_25_by_1", - "typeString": "int_const 25" - }, - "value": "25" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "11015:16:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30783439623536366434303234333531373635386437386333333136326436656365", - "id": 7014, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11034:34:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_97975535026544040761524270664520658638_by_1", - "typeString": "int_const 9797...(30 digits omitted)...8638" - }, - "value": "0x49b566d40243517658d78c33162d6ece" - }, - "src": "11015:53:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7016, - "nodeType": "ExpressionStatement", - "src": "11015:53:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 7021, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7017, - "name": "lambertArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6858, - "src": "11072:12:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 7019, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3236", - "id": 7018, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11085:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_26_by_1", - "typeString": "int_const 26" - }, - "value": "26" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "11072:16:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30783439313165366130326535353037613330663934373338336664396133323736", - "id": 7020, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11091:34:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_97126590383947898169110886634107843190_by_1", - "typeString": "int_const 9712...(30 digits omitted)...3190" - }, - "value": "0x4911e6a02e5507a30f947383fd9a3276" - }, - "src": "11072:53:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7022, - "nodeType": "ExpressionStatement", - "src": "11072:53:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 7027, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7023, - "name": "lambertArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6858, - "src": "11129:12:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 7025, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3237", - "id": 7024, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11142:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_27_by_1", - "typeString": "int_const 27" - }, - "value": "27" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "11129:16:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30783438373231366332623331626534616463343164623861386435636330633838", - "id": 7026, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11148:34:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_96296799177093258962884240470124006536_by_1", - "typeString": "int_const 9629...(30 digits omitted)...6536" - }, - "value": "0x487216c2b31be4adc41db8a8d5cc0c88" - }, - "src": "11129:53:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7028, - "nodeType": "ExpressionStatement", - "src": "11129:53:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 7033, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7029, - "name": "lambertArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6858, - "src": "11186:12:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 7031, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3238", - "id": 7030, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11199:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_28_by_1", - "typeString": "int_const 28" - }, - "value": "28" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "11186:16:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30783437643564336663346137613162313838636433643738386235633565396663", - "id": 7032, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11205:34:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_95485446508569776991656929903084169724_by_1", - "typeString": "int_const 9548...(30 digits omitted)...9724" - }, - "value": "0x47d5d3fc4a7a1b188cd3d788b5c5e9fc" - }, - "src": "11186:53:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7034, - "nodeType": "ExpressionStatement", - "src": "11186:53:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 7039, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7035, - "name": "lambertArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6858, - "src": "11243:12:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 7037, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3239", - "id": 7036, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11256:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_29_by_1", - "typeString": "int_const 29" - }, - "value": "29" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "11243:16:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30783437336366636534383731613263343062633466396531633332623935356430", - "id": 7038, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11262:34:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_94691854785294407482575606759428806096_by_1", - "typeString": "int_const 9469...(30 digits omitted)...6096" - }, - "value": "0x473cfce4871a2c40bc4f9e1c32b955d0" - }, - "src": "11243:53:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7040, - "nodeType": "ExpressionStatement", - "src": "11243:53:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 7045, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7041, - "name": "lambertArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6858, - "src": "11300:12:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 7043, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3330", - "id": 7042, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11313:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_30_by_1", - "typeString": "int_const 30" - }, - "value": "30" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "11300:16:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30783436613737316361353738616238373834383538313065323835653331633637", - "id": 7044, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11319:34:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_93915381223786366589204098840684338279_by_1", - "typeString": "int_const 9391...(30 digits omitted)...8279" - }, - "value": "0x46a771ca578ab878485810e285e31c67" - }, - "src": "11300:53:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7046, - "nodeType": "ExpressionStatement", - "src": "11300:53:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 7051, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7047, - "name": "lambertArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6858, - "src": "11357:12:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 7049, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3331", - "id": 7048, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11370:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_31_by_1", - "typeString": "int_const 31" - }, - "value": "31" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "11357:16:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30783436313531343937313861656434633235386333373364633637366161373264", - "id": 7050, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11376:34:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_93155415558256953225873119289193178925_by_1", - "typeString": "int_const 9315...(30 digits omitted)...8925" - }, - "value": "0x4615149718aed4c258c373dc676aa72d" - }, - "src": "11357:53:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7052, - "nodeType": "ExpressionStatement", - "src": "11357:53:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 7057, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7053, - "name": "lambertArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6858, - "src": "11414:12:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 7055, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3332", - "id": 7054, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11427:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_32_by_1", - "typeString": "int_const 32" - }, - "value": "32" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "11414:16:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30783435383563386233663866653438396336653138333363613437383731333834", - "id": 7056, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11433:34:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_92411377932165840182246144520510444420_by_1", - "typeString": "int_const 9241...(30 digits omitted)...4420" - }, - "value": "0x4585c8b3f8fe489c6e1833ca47871384" - }, - "src": "11414:53:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7058, - "nodeType": "ExpressionStatement", - "src": "11414:53:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 7063, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7059, - "name": "lambertArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6858, - "src": "11471:12:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 7061, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3333", - "id": 7060, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11484:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_33_by_1", - "typeString": "int_const 33" - }, - "value": "33" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "11471:16:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30783434663937326631373465343165356566623765396436336332396365373335", - "id": 7062, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11490:34:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_91682716956007473314355351160117585717_by_1", - "typeString": "int_const 9168...(30 digits omitted)...5717" - }, - "value": "0x44f972f174e41e5efb7e9d63c29ce735" - }, - "src": "11471:53:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7064, - "nodeType": "ExpressionStatement", - "src": "11471:53:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 7069, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7065, - "name": "lambertArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6858, - "src": "11528:12:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 7067, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3334", - "id": 7066, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11541:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_34_by_1", - "typeString": "int_const 34" - }, - "value": "34" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "11528:16:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30783434366666393730626138366438623030626562303565636562663363346463", - "id": 7068, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11547:34:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_90968907915944387253011725111639917788_by_1", - "typeString": "int_const 9096...(30 digits omitted)...7788" - }, - "value": "0x446ff970ba86d8b00beb05ecebf3c4dc" - }, - "src": "11528:53:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7070, - "nodeType": "ExpressionStatement", - "src": "11528:53:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 7075, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7071, - "name": "lambertArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6858, - "src": "11585:12:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 7073, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3335", - "id": 7072, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11598:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_35_by_1", - "typeString": "int_const 35" - }, - "value": "35" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "11585:16:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30783433653934333865633838393731383132643666313938623563636161643936", - "id": 7074, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11604:34:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_90269451119533660821329652693370318230_by_1", - "typeString": "int_const 9026...(30 digits omitted)...8230" - }, - "value": "0x43e9438ec88971812d6f198b5ccaad96" - }, - "src": "11585:53:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7076, - "nodeType": "ExpressionStatement", - "src": "11585:53:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 7081, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7077, - "name": "lambertArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6858, - "src": "11642:12:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 7079, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3336", - "id": 7078, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11655:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_36_by_1", - "typeString": "int_const 36" - }, - "value": "36" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "11642:16:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30783433363533396431316666376265613635376165646462333934653830396566", - "id": 7080, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11661:34:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_89583870366228295001513378307654552047_by_1", - "typeString": "int_const 8958...(30 digits omitted)...2047" - }, - "value": "0x436539d11ff7bea657aeddb394e809ef" - }, - "src": "11642:53:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7082, - "nodeType": "ExpressionStatement", - "src": "11642:53:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 7087, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7083, - "name": "lambertArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6858, - "src": "11699:12:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 7085, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3337", - "id": 7084, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11712:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_37_by_1", - "typeString": "int_const 37" - }, - "value": "37" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "11699:16:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30783432653363356433653561393133343031643836663636646235643831633263", - "id": 7086, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11718:34:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_88911711531602529992461785625724984364_by_1", - "typeString": "int_const 8891...(30 digits omitted)...4364" - }, - "value": "0x42e3c5d3e5a913401d86f66db5d81c2c" - }, - "src": "11699:53:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7088, - "nodeType": "ExpressionStatement", - "src": "11699:53:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 7093, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7089, - "name": "lambertArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6858, - "src": "11756:12:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 7091, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3338", - "id": 7090, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11769:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_38_by_1", - "typeString": "int_const 38" - }, - "value": "38" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "11756:16:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30783432363464323339353330333037306561373236636265393864663632313734", - "id": 7092, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11775:34:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_88252541255370876457855407534749655412_by_1", - "typeString": "int_const 8825...(30 digits omitted)...5412" - }, - "value": "0x4264d2395303070ea726cbe98df62174" - }, - "src": "11756:53:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7094, - "nodeType": "ExpressionStatement", - "src": "11756:53:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 7099, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7095, - "name": "lambertArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6858, - "src": "11813:12:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 7097, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3339", - "id": 7096, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11826:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_39_by_1", - "typeString": "int_const 39" - }, - "value": "39" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "11813:16:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30783431653834613961353933626237313934633361363334396563616534656561", - "id": 7098, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11832:34:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_87605945724263666326070648659277401834_by_1", - "typeString": "int_const 8760...(30 digits omitted)...1834" - }, - "value": "0x41e84a9a593bb7194c3a6349ecae4eea" - }, - "src": "11813:53:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7100, - "nodeType": "ExpressionStatement", - "src": "11813:53:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 7105, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7101, - "name": "lambertArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6858, - "src": "11870:12:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 7103, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3430", - "id": 7102, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11883:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_40_by_1", - "typeString": "int_const 40" - }, - "value": "40" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "11870:16:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30783431366531623738356431336562613037613038663366313838373661356162", - "id": 7104, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11889:34:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_86971529541703351305061613312515941803_by_1", - "typeString": "int_const 8697...(30 digits omitted)...1803" - }, - "value": "0x416e1b785d13eba07a08f3f18876a5ab" - }, - "src": "11870:53:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7106, - "nodeType": "ExpressionStatement", - "src": "11870:53:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 7111, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7107, - "name": "lambertArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6858, - "src": "11927:12:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 7109, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3431", - "id": 7108, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11940:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_41_by_1", - "typeString": "int_const 41" - }, - "value": "41" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "11927:16:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30783430663633323266663338396434323362613964643765376537623765383039", - "id": 7110, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11946:34:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_86348914677009486241058826509159491593_by_1", - "typeString": "int_const 8634...(30 digits omitted)...1593" - }, - "value": "0x40f6322ff389d423ba9dd7e7e7b7e809" - }, - "src": "11927:53:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7112, - "nodeType": "ExpressionStatement", - "src": "11927:53:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 7117, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7113, - "name": "lambertArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6858, - "src": "11984:12:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 7115, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3432", - "id": 7114, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11997:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_42_by_1", - "typeString": "int_const 42" - }, - "value": "42" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "11984:16:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30783430383037636563386134363638383065636634313834353435643234306134", - "id": 7116, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12003:34:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_85737739487558329642902199100859629732_by_1", - "typeString": "int_const 8573...(30 digits omitted)...9732" - }, - "value": "0x40807cec8a466880ecf4184545d240a4" - }, - "src": "11984:53:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7118, - "nodeType": "ExpressionStatement", - "src": "11984:53:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 7123, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7119, - "name": "lambertArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6858, - "src": "12041:12:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 7121, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3433", - "id": 7120, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12054:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_43_by_1", - "typeString": "int_const 43" - }, - "value": "43" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "12041:16:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30783430306365613963653838613864336165363638653865613064396266303766", - "id": 7122, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12060:34:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_85137657807945661495348777847187304575_by_1", - "typeString": "int_const 8513...(30 digits omitted)...4575" - }, - "value": "0x400cea9ce88a8d3ae668e8ea0d9bf07f" - }, - "src": "12041:53:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7124, - "nodeType": "ExpressionStatement", - "src": "12041:53:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 7129, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7125, - "name": "lambertArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6858, - "src": "12098:12:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 7127, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3434", - "id": 7126, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12111:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_44_by_1", - "typeString": "int_const 44" - }, - "value": "44" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "12098:16:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30783366396236616538373732643463353530393165306564376466656130616331", - "id": 7128, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12117:34:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_84548338100757766960858976604962556609_by_1", - "typeString": "int_const 8454...(30 digits omitted)...6609" - }, - "value": "0x3f9b6ae8772d4c55091e0ed7dfea0ac1" - }, - "src": "12098:53:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7130, - "nodeType": "ExpressionStatement", - "src": "12098:53:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 7135, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7131, - "name": "lambertArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6858, - "src": "12155:12:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 7133, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3435", - "id": 7132, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12168:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_45_by_1", - "typeString": "int_const 45" - }, - "value": "45" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "12155:16:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30783366326265653235336664383435393466353462636161666163333833613133", - "id": 7134, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12174:34:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_83969462664053391893170430711084628499_by_1", - "typeString": "int_const 8396...(30 digits omitted)...8499" - }, - "value": "0x3f2bee253fd84594f54bcaafac383a13" - }, - "src": "12155:53:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7136, - "nodeType": "ExpressionStatement", - "src": "12155:53:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 7141, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7137, - "name": "lambertArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6858, - "src": "12212:12:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 7139, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3436", - "id": 7138, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12225:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_46_by_1", - "typeString": "int_const 46" - }, - "value": "46" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "12212:16:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30783365626536353465393532303862623932313063353735633038316335393538", - "id": 7140, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12231:34:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_83400726891105658214366213255032756568_by_1", - "typeString": "int_const 8340...(30 digits omitted)...6568" - }, - "value": "0x3ebe654e95208bb9210c575c081c5958" - }, - "src": "12212:53:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7142, - "nodeType": "ExpressionStatement", - "src": "12212:53:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 7147, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7143, - "name": "lambertArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6858, - "src": "12269:12:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 7145, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3437", - "id": 7144, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12282:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_47_by_1", - "typeString": "int_const 47" - }, - "value": "47" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "12269:16:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30783365353263316663353636353633356237386365316630356164353363303836", - "id": 7146, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12288:34:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_82841838578353379906637631327369937030_by_1", - "typeString": "int_const 8284...(30 digits omitted)...7030" - }, - "value": "0x3e52c1fc5665635b78ce1f05ad53c086" - }, - "src": "12269:53:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7148, - "nodeType": "ExpressionStatement", - "src": "12269:53:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 7153, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7149, - "name": "lambertArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6858, - "src": "12326:12:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 7151, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3438", - "id": 7150, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12339:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_48_by_1", - "typeString": "int_const 48" - }, - "value": "48" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "12326:16:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30783364653866363561633338383130316464663731386136663563316566663635", - "id": 7152, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12345:34:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_82292517277871139787215964642962505573_by_1", - "typeString": "int_const 8229...(30 digits omitted)...5573" - }, - "value": "0x3de8f65ac388101ddf718a6f5c1eff65" - }, - "src": "12326:53:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7154, - "nodeType": "ExpressionStatement", - "src": "12326:53:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 7159, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7155, - "name": "lambertArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6858, - "src": "12383:12:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 7157, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3439", - "id": 7156, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12396:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_49_by_1", - "typeString": "int_const 49" - }, - "value": "49" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "12383:16:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30783364383066353232643539626430623332386361303132646634636432643439", - "id": 7158, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12402:34:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_81752493690991422478947035708677500233_by_1", - "typeString": "int_const 8175...(30 digits omitted)...0233" - }, - "value": "0x3d80f522d59bd0b328ca012df4cd2d49" - }, - "src": "12383:53:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7160, - "nodeType": "ExpressionStatement", - "src": "12383:53:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 7165, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7161, - "name": "lambertArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6858, - "src": "12440:12:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 7163, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3530", - "id": 7162, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12453:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_50_by_1", - "typeString": "int_const 50" - }, - "value": "50" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "12440:16:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30783364316162313933313239656137326232333634386131363131363361383561", - "id": 7164, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12459:34:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_81221509100004039595242960659394308186_by_1", - "typeString": "int_const 8122...(30 digits omitted)...8186" - }, - "value": "0x3d1ab193129ea72b23648a161163a85a" - }, - "src": "12440:53:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7166, - "nodeType": "ExpressionStatement", - "src": "12440:53:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 7171, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7167, - "name": "lambertArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6858, - "src": "12497:12:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 7169, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3531", - "id": 7168, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12510:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_51_by_1", - "typeString": "int_const 51" - }, - "value": "51" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "12497:16:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30783363623631663638643332353736633133356239356366623533663736643735", - "id": 7170, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12516:34:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_80699314835121533818862589255787965813_by_1", - "typeString": "int_const 8069...(30 digits omitted)...5813" - }, - "value": "0x3cb61f68d32576c135b95cfb53f76d75" - }, - "src": "12497:53:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7172, - "nodeType": "ExpressionStatement", - "src": "12497:53:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 7177, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7173, - "name": "lambertArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6858, - "src": "12554:12:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 7175, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3532", - "id": 7174, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12567:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_52_by_1", - "typeString": "int_const 52" - }, - "value": "52" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "12554:16:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30783363353333326439663161616538353161333631396537376534636338343733", - "id": 7176, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12573:34:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_80185671774137293097540719362983101555_by_1", - "typeString": "int_const 8018...(30 digits omitted)...1555" - }, - "value": "0x3c5332d9f1aae851a3619e77e4cc8473" - }, - "src": "12554:53:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7178, - "nodeType": "ExpressionStatement", - "src": "12554:53:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 7183, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7179, - "name": "lambertArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6858, - "src": "12611:12:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 7181, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3533", - "id": 7180, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12624:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_53_by_1", - "typeString": "int_const 53" - }, - "value": "53" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "12611:16:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30783362663165303865646265326161313039653135323566363537353965663733", - "id": 7182, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12630:34:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_79680349872418462454459890475122421619_by_1", - "typeString": "int_const 7968...(30 digits omitted)...1619" - }, - "value": "0x3bf1e08edbe2aa109e1525f65759ef73" - }, - "src": "12611:53:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7184, - "nodeType": "ExpressionStatement", - "src": "12611:53:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 7189, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7185, - "name": "lambertArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6858, - "src": "12668:12:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 7187, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3534", - "id": 7186, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12681:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_54_by_1", - "typeString": "int_const 54" - }, - "value": "54" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "12668:16:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30783362393231643963666631336661326331393737343661336466633439313866", - "id": 7188, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12687:34:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_79183127721070807958897168260236874127_by_1", - "typeString": "int_const 7918...(30 digits omitted)...4127" - }, - "value": "0x3b921d9cff13fa2c197746a3dfc4918f" - }, - "src": "12668:53:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7190, - "nodeType": "ExpressionStatement", - "src": "12668:53:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 7195, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7191, - "name": "lambertArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6858, - "src": "12725:12:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 7193, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3535", - "id": 7192, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12738:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_55_by_1", - "typeString": "int_const 55" - }, - "value": "55" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "12725:16:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30783362333364663831383931306266633161356165666238663633616532616334", - "id": 7194, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12744:34:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_78693792131289586075780460739283528388_by_1", - "typeString": "int_const 7869...(30 digits omitted)...8388" - }, - "value": "0x3b33df818910bfc1a5aefb8f63ae2ac4" - }, - "src": "12725:53:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7196, - "nodeType": "ExpressionStatement", - "src": "12725:53:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 7201, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7197, - "name": "lambertArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6858, - "src": "12782:12:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 7199, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3536", - "id": 7198, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12795:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_56_by_1", - "typeString": "int_const 56" - }, - "value": "56" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "12782:16:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30783361643731633163373765333466613332613966313834393637656363626636", - "id": 7200, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12801:34:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_78212137743071079621363404241290185718_by_1", - "typeString": "int_const 7821...(30 digits omitted)...5718" - }, - "value": "0x3ad71c1c77e34fa32a9f184967eccbf6" - }, - "src": "12782:53:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7202, - "nodeType": "ExpressionStatement", - "src": "12782:53:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 7207, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7203, - "name": "lambertArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6858, - "src": "12839:12:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 7205, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3537", - "id": 7204, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12852:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_57_by_1", - "typeString": "int_const 57" - }, - "value": "57" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "12839:16:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30783361376263396162663263356262353365326637333834613861313635323161", - "id": 7206, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12858:34:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_77737966656605443744883248223254630938_by_1", - "typeString": "int_const 7773...(30 digits omitted)...0938" - }, - "value": "0x3a7bc9abf2c5bb53e2f7384a8a16521a" - }, - "src": "12839:53:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7208, - "nodeType": "ExpressionStatement", - "src": "12839:53:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 7213, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7209, - "name": "lambertArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6858, - "src": "12896:12:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 7211, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3538", - "id": 7210, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12909:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_58_by_1", - "typeString": "int_const 58" - }, - "value": "58" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "12896:16:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30783361323164656337653736333639373833613638613063363338356131633537", - "id": 7212, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12915:34:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_77271088084804339940770953226756955223_by_1", - "typeString": "int_const 7727...(30 digits omitted)...5223" - }, - "value": "0x3a21dec7e76369783a68a0c6385a1c57" - }, - "src": "12896:53:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7214, - "nodeType": "ExpressionStatement", - "src": "12896:53:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 7219, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7215, - "name": "lambertArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6858, - "src": "12953:12:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 7217, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3539", - "id": 7216, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12966:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_59_by_1", - "typeString": "int_const 59" - }, - "value": "59" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "12953:16:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30783339633935323564653663396364663763316331353763613461376136656533", - "id": 7218, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12972:34:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_76811318025537837376498009672859152099_by_1", - "typeString": "int_const 7681...(30 digits omitted)...2099" - }, - "value": "0x39c9525de6c9cdf7c1c157ca4a7a6ee3" - }, - "src": "12953:53:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7220, - "nodeType": "ExpressionStatement", - "src": "12953:53:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 7225, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7221, - "name": "lambertArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6858, - "src": "13010:12:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 7223, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3630", - "id": 7222, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13023:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_60_by_1", - "typeString": "int_const 60" - }, - "value": "60" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "13010:16:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30783339373231626164336463383564313234306666303139306530616461616333", - "id": 7224, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13029:34:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_76358478952265398947834068366573546179_by_1", - "typeString": "int_const 7635...(30 digits omitted)...6179" - }, - "value": "0x39721bad3dc85d1240ff0190e0adaac3" - }, - "src": "13010:53:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7226, - "nodeType": "ExpressionStatement", - "src": "13010:53:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 7231, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7227, - "name": "lambertArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6858, - "src": "13067:12:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 7229, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3631", - "id": 7228, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13080:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_61_by_1", - "typeString": "int_const 61" - }, - "value": "61" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "13067:16:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30783339316333323433343464333234386630343639656232386464336437376530", - "id": 7230, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13086:34:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_75912399521846487627533653549497808864_by_1", - "typeString": "int_const 7591...(30 digits omitted)...8864" - }, - "value": "0x391c324344d3248f0469eb28dd3d77e0" - }, - "src": "13067:53:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7232, - "nodeType": "ExpressionStatement", - "src": "13067:53:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 7237, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7233, - "name": "lambertArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6858, - "src": "13124:12:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 7235, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3632", - "id": 7234, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13137:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_62_by_1", - "typeString": "int_const 62" - }, - "value": "62" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "13124:16:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30783338633738646637653363373936323739666234666638343339346162336461", - "id": 7236, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13143:34:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_75472914298408358042964121331947975642_by_1", - "typeString": "int_const 7547...(30 digits omitted)...5642" - }, - "value": "0x38c78df7e3c796279fb4ff84394ab3da" - }, - "src": "13124:53:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7238, - "nodeType": "ExpressionStatement", - "src": "13124:53:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 7243, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7239, - "name": "lambertArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6858, - "src": "13181:12:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 7241, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3633", - "id": 7240, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13194:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_63_by_1", - "typeString": "int_const 63" - }, - "value": "63" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "13181:16:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30783338373432366561343633386165396161653038303439643335353463323061", - "id": 7242, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13200:34:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_75039863492232771067353298784442696202_by_1", - "typeString": "int_const 7503...(30 digits omitted)...6202" - }, - "value": "0x387426ea4638ae9aae08049d3554c20a" - }, - "src": "13181:53:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7244, - "nodeType": "ExpressionStatement", - "src": "13181:53:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 7249, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7245, - "name": "lambertArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6858, - "src": "13238:12:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 7247, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3634", - "id": 7246, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13251:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_64_by_1", - "typeString": "int_const 64" - }, - "value": "64" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "13238:16:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30783338323166353764626432373633323536633161393962626432303531333738", - "id": 7248, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13257:34:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_74613092712700430304450998910501327736_by_1", - "typeString": "int_const 7461...(30 digits omitted)...7736" - }, - "value": "0x3821f57dbd2763256c1a99bbd2051378" - }, - "src": "13238:53:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7250, - "nodeType": "ExpressionStatement", - "src": "13238:53:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 7255, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7251, - "name": "lambertArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6858, - "src": "13295:12:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 7253, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3635", - "id": 7252, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13308:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_65_by_1", - "typeString": "int_const 65" - }, - "value": "65" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "13295:16:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30783337643066323536636234366138633932666636326662626566323839363938", - "id": 7254, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13314:34:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_74192452734402555957346115989134677656_by_1", - "typeString": "int_const 7419...(30 digits omitted)...7656" - }, - "value": "0x37d0f256cb46a8c92ff62fbbef289698" - }, - "src": "13295:53:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7256, - "nodeType": "ExpressionStatement", - "src": "13295:53:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 7261, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7257, - "name": "lambertArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6858, - "src": "13352:12:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 7259, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3636", - "id": 7258, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13365:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_66_by_1", - "typeString": "int_const 66" - }, - "value": "66" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "13352:16:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30783337383131363538353931666663376162646431666561663363656639623733", - "id": 7260, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13371:34:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_73777799275593782240843075749260794739_by_1", - "typeString": "int_const 7377...(30 digits omitted)...4739" - }, - "value": "0x37811658591ffc7abdd1feaf3cef9b73" - }, - "src": "13352:53:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7262, - "nodeType": "ExpressionStatement", - "src": "13352:53:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 7267, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7263, - "name": "lambertArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6858, - "src": "13409:12:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 7265, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3637", - "id": 7264, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13422:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_67_by_1", - "typeString": "int_const 67" - }, - "value": "67" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "13409:16:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30783337333235616131306539653832663764663066333830663739393731353462", - "id": 7266, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13428:34:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_73368992788220026735092049811183441227_by_1", - "typeString": "int_const 7336...(30 digits omitted)...1227" - }, - "value": "0x37325aa10e9e82f7df0f380f7997154b" - }, - "src": "13409:53:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7268, - "nodeType": "ExpressionStatement", - "src": "13409:53:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 7273, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7269, - "name": "lambertArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6858, - "src": "13466:12:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 7271, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3638", - "id": 7270, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13479:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_68_by_1", - "typeString": "int_const 68" - }, - "value": "68" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "13466:16:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30783336653462383838636662343038643837336239613830643433393331316336", - "id": 7272, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13485:34:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_72965898258809617135734979750291247558_by_1", - "typeString": "int_const 7296...(30 digits omitted)...7558" - }, - "value": "0x36e4b888cfb408d873b9a80d439311c6" - }, - "src": "13466:53:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7274, - "nodeType": "ExpressionStatement", - "src": "13466:53:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 7279, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7275, - "name": "lambertArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6858, - "src": "13523:12:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 7277, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3639", - "id": 7276, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13536:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_69_by_1", - "typeString": "int_const 69" - }, - "value": "69" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "13523:16:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30783336393832393965353966346262396465363435666339623038633634636361", - "id": 7278, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13542:34:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_72568385019566207677944681290529131722_by_1", - "typeString": "int_const 7256...(30 digits omitted)...1722" - }, - "value": "0x3698299e59f4bb9de645fc9b08c64cca" - }, - "src": "13523:53:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7280, - "nodeType": "ExpressionStatement", - "src": "13523:53:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 7285, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7281, - "name": "lambertArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6858, - "src": "13580:12:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 7283, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3730", - "id": 7282, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13593:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_70_by_1", - "typeString": "int_const 70" - }, - "value": "70" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "13580:16:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30783336346361376135303132636236303330323362353764643365626664353064", - "id": 7284, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13599:34:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_72176326569048265991235723170299237645_by_1", - "typeString": "int_const 7217...(30 digits omitted)...7645" - }, - "value": "0x364ca7a5012cb603023b57dd3ebfd50d" - }, - "src": "13580:53:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7286, - "nodeType": "ExpressionStatement", - "src": "13580:53:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 7291, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7287, - "name": "lambertArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6858, - "src": "13637:12:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 7289, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3731", - "id": 7288, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13650:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_71_by_1", - "typeString": "int_const 71" - }, - "value": "71" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "13637:16:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30783336303232633932383931356237373861623162303661616565376536316434", - "id": 7290, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13656:34:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_71789600401862514754895875938526847444_by_1", - "typeString": "int_const 7178...(30 digits omitted)...7444" - }, - "value": "0x36022c928915b778ab1b06aaee7e61d4" - }, - "src": "13637:53:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7292, - "nodeType": "ExpressionStatement", - "src": "13637:53:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 7297, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7293, - "name": "lambertArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6858, - "src": "13694:12:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 7295, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3732", - "id": 7294, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13707:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_72_by_1", - "typeString": "int_const 72" - }, - "value": "72" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "13694:16:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30783335623862323864316137336463323735303066666533353535396363303238", - "id": 7296, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13713:34:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_71408087846837990426587462311123664936_by_1", - "typeString": "int_const 7140...(30 digits omitted)...4936" - }, - "value": "0x35b8b28d1a73dc27500ffe35559cc028" - }, - "src": "13694:53:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7298, - "nodeType": "ExpressionStatement", - "src": "13694:53:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 7303, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7299, - "name": "lambertArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6858, - "src": "13751:12:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 7301, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3733", - "id": 7300, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13764:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_73_by_1", - "typeString": "int_const 73" - }, - "value": "73" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "13751:16:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30783335373033336539353166653235306563356562346536303935353133326437", - "id": 7302, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13770:34:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_71031673913183621970866398796903953111_by_1", - "typeString": "int_const 7103...(30 digits omitted)...3111" - }, - "value": "0x357033e951fe250ec5eb4e60955132d7" - }, - "src": "13751:53:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7304, - "nodeType": "ExpressionStatement", - "src": "13751:53:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 7309, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7305, - "name": "lambertArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6858, - "src": "13808:12:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 7307, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3734", - "id": 7306, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13821:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_74_by_1", - "typeString": "int_const 74" - }, - "value": "74" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "13808:16:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30783335323861623238363739333465336132316235343132653463346638383831", - "id": 7308, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13827:34:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_70660247144165696899266624685710739585_by_1", - "typeString": "int_const 7066...(30 digits omitted)...9585" - }, - "value": "0x3528ab2867934e3a21b5412e4c4f8881" - }, - "src": "13808:53:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7310, - "nodeType": "ExpressionStatement", - "src": "13808:53:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 7315, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7311, - "name": "lambertArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6858, - "src": "13865:12:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 7313, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3735", - "id": 7312, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13878:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_75_by_1", - "typeString": "int_const 75" - }, - "value": "75" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "13865:16:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30783334653231326636366335353035376639363736633830303934613631643539", - "id": 7314, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13884:34:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_70293699477872506394924034036542610777_by_1", - "typeString": "int_const 7029...(30 digits omitted)...0777" - }, - "value": "0x34e212f66c55057f9676c80094a61d59" - }, - "src": "13865:53:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7316, - "nodeType": "ExpressionStatement", - "src": "13865:53:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 7321, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7317, - "name": "lambertArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6858, - "src": "13922:12:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 7319, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3736", - "id": 7318, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13935:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_76_by_1", - "typeString": "int_const 76" - }, - "value": "76" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "13922:16:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30783334396336363238396535623363346235343063323466343266613462396262", - "id": 7320, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13941:34:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_69931926114662060074913956973764721083_by_1", - "typeString": "int_const 6993...(30 digits omitted)...1083" - }, - "value": "0x349c66289e5b3c4b540c24f42fa4b9bb" - }, - "src": "13922:53:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7322, - "nodeType": "ExpressionStatement", - "src": "13922:53:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 7327, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7323, - "name": "lambertArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6858, - "src": "13979:12:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 7325, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3737", - "id": 7324, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13992:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_77_by_1", - "typeString": "int_const 77" - }, - "value": "77" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "13979:16:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30783334353739666262643063373333613963386436616636623066376430306637", - "id": 7326, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13998:34:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_69574825390915228431314065557192245495_by_1", - "typeString": "int_const 6957...(30 digits omitted)...5495" - }, - "value": "0x34579fbbd0c733a9c8d6af6b0f7d00f7" - }, - "src": "13979:53:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7328, - "nodeType": "ExpressionStatement", - "src": "13979:53:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 7333, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7329, - "name": "lambertArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6858, - "src": "14036:12:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 7331, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3738", - "id": 7330, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14049:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_78_by_1", - "typeString": "int_const 78" - }, - "value": "78" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "14036:16:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30783334313362616432653731323238386239323462353838326235623336396266", - "id": 7332, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14055:34:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_69222298658741183724931927301015431615_by_1", - "typeString": "int_const 6922...(30 digits omitted)...1615" - }, - "value": "0x3413bad2e712288b924b5882b5b369bf" - }, - "src": "14036:53:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7334, - "nodeType": "ExpressionStatement", - "src": "14036:53:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 7339, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7335, - "name": "lambertArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6858, - "src": "14093:12:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 7337, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3739", - "id": 7336, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14106:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_79_by_1", - "typeString": "int_const 79" - }, - "value": "79" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "14093:16:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30783333643062326235363238363531306566373330653231336637316631326539", - "id": 7338, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14112:34:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_68874250171304728554080761972223054569_by_1", - "typeString": "int_const 6887...(30 digits omitted)...4569" - }, - "value": "0x33d0b2b56286510ef730e213f71f12e9" - }, - "src": "14093:53:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7340, - "nodeType": "ExpressionStatement", - "src": "14093:53:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 7345, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7341, - "name": "lambertArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6858, - "src": "14150:12:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 7343, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3830", - "id": 7342, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14163:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_80_by_1", - "typeString": "int_const 80" - }, - "value": "80" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "14150:16:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30783333386538326365303065323439363236326336343435373533356261316131", - "id": 7344, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14169:34:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_68530586973466171479838674269845037473_by_1", - "typeString": "int_const 6853...(30 digits omitted)...7473" - }, - "value": "0x338e82ce00e2496262c64457535ba1a1" - }, - "src": "14150:53:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7346, - "nodeType": "ExpressionStatement", - "src": "14150:53:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 7351, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7347, - "name": "lambertArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6858, - "src": "14207:12:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 7349, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3831", - "id": 7348, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14220:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_81_by_1", - "typeString": "int_const 81" - }, - "value": "81" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "14207:16:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30783333346432366139366233373362623763326638656131383237663237613932", - "id": 7350, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14226:34:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_68191218797443963900028789779252542098_by_1", - "typeString": "int_const 6819...(30 digits omitted)...2098" - }, - "value": "0x334d26a96b373bb7c2f8ea1827f27a92" - }, - "src": "14207:53:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7352, - "nodeType": "ExpressionStatement", - "src": "14207:53:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 7357, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7353, - "name": "lambertArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6858, - "src": "14264:12:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 7355, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3832", - "id": 7354, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14277:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_82_by_1", - "typeString": "int_const 82" - }, - "value": "82" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "14264:16:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30783333306339396634663432313134363965303062336531386333313437356561", - "id": 7356, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14283:34:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_67856057963228472984547093013750642154_by_1", - "typeString": "int_const 6785...(30 digits omitted)...2154" - }, - "value": "0x330c99f4f4211469e00b3e18c31475ea" - }, - "src": "14264:53:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7358, - "nodeType": "ExpressionStatement", - "src": "14264:53:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 7363, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7359, - "name": "lambertArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6858, - "src": "14321:12:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 7361, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3833", - "id": 7360, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14334:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_83_by_1", - "typeString": "int_const 83" - }, - "value": "83" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "14321:16:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30783332636364383764363438363039343939396337643565366633333233376438", - "id": 7362, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14340:34:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_67525019283492142426218937050010367960_by_1", - "typeString": "int_const 6752...(30 digits omitted)...7960" - }, - "value": "0x32ccd87d6486094999c7d5e6f33237d8" - }, - "src": "14321:53:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7364, - "nodeType": "ExpressionStatement", - "src": "14321:53:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 7369, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7365, - "name": "lambertArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6858, - "src": "14378:12:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 7367, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3834", - "id": 7366, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14391:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_84_by_1", - "typeString": "int_const 84" - }, - "value": "84" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "14378:16:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30783332386464653264643631376236363635613265383535366632353063316166", - "id": 7368, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14397:34:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_67198019972756986907927497888446333359_by_1", - "typeString": "int_const 6719...(30 digits omitted)...3359" - }, - "value": "0x328dde2dd617b6665a2e8556f250c1af" - }, - "src": "14378:53:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7370, - "nodeType": "ExpressionStatement", - "src": "14378:53:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 7375, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7371, - "name": "lambertArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6858, - "src": "14435:12:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 7373, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3835", - "id": 7372, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14448:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_85_by_1", - "typeString": "int_const 85" - }, - "value": "85" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "14435:16:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30783332346661373065396164633237306638323632373535616635613939616639", - "id": 7374, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14454:34:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_66874979560594969707697340554641251065_by_1", - "typeString": "int_const 6687...(30 digits omitted)...1065" - }, - "value": "0x324fa70e9adc270f8262755af5a99af9" - }, - "src": "14435:53:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7376, - "nodeType": "ExpressionStatement", - "src": "14435:53:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 7381, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7377, - "name": "lambertArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6858, - "src": "14492:12:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 7379, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3836", - "id": 7378, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14505:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_86_by_1", - "typeString": "int_const 86" - }, - "value": "86" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "14492:16:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30783332313232663434333131303631316361353130343066343166613665316533", - "id": 7380, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14511:34:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_66555819808650410033300276716637708771_by_1", - "typeString": "int_const 6655...(30 digits omitted)...8771" - }, - "value": "0x32122f443110611ca51040f41fa6e1e3" - }, - "src": "14492:53:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7382, - "nodeType": "ExpressionStatement", - "src": "14492:53:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 7387, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7383, - "name": "lambertArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6858, - "src": "14549:12:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 7385, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3837", - "id": 7384, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14562:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_87_by_1", - "typeString": "int_const 87" - }, - "value": "87" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "14549:16:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30783331643537333065343263303833313438326630663134383563343236336438", - "id": 7386, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14568:34:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_66240464631286234612917249162896106456_by_1", - "typeString": "int_const 6624...(30 digits omitted)...6456" - }, - "value": "0x31d5730e42c0831482f0f1485c4263d8" - }, - "src": "14549:53:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7388, - "nodeType": "ExpressionStatement", - "src": "14549:53:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 7393, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7389, - "name": "lambertArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6858, - "src": "14606:12:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 7391, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3838", - "id": 7390, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14619:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_88_by_1", - "typeString": "int_const 88" - }, - "value": "88" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "14606:16:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30783331393936656336623037623461383334323162356562633461623465316631", - "id": 7392, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14625:34:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_65928840019667697388313232298873250289_by_1", - "typeString": "int_const 6592...(30 digits omitted)...0289" - }, - "value": "0x31996ec6b07b4a83421b5ebc4ab4e1f1" - }, - "src": "14606:53:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7394, - "nodeType": "ExpressionStatement", - "src": "14606:53:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 7399, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7395, - "name": "lambertArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6858, - "src": "14663:12:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 7397, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3839", - "id": 7396, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14676:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_89_by_1", - "typeString": "int_const 89" - }, - "value": "89" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "14663:16:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30783331356531656530613638666634366262343365633262383530333265383736", - "id": 7398, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14682:34:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_65620873969108206581452393912976205942_by_1", - "typeString": "int_const 6562...(30 digits omitted)...5942" - }, - "value": "0x315e1ee0a68ff46bb43ec2b85032e876" - }, - "src": "14663:53:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7400, - "nodeType": "ExpressionStatement", - "src": "14663:53:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 7405, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7401, - "name": "lambertArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6858, - "src": "14720:12:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 7403, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3930", - "id": 7402, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14733:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_90_by_1", - "typeString": "int_const 90" - }, - "value": "90" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "14720:16:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30783331323337666537626334646561636636373735623965666131613134356638", - "id": 7404, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14739:34:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_65316496409512179290702222053435590136_by_1", - "typeString": "int_const 6531...(30 digits omitted)...0136" - }, - "value": "0x31237fe7bc4deacf6775b9efa1a145f8" - }, - "src": "14720:53:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7406, - "nodeType": "ExpressionStatement", - "src": "14720:53:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 7411, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7407, - "name": "lambertArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6858, - "src": "14777:12:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 7409, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3931", - "id": 7408, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14790:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_91_by_1", - "typeString": "int_const 91" - }, - "value": "91" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "14777:16:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30783330653938653766316363356133353665343436323761363937326561326666", - "id": 7410, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14796:34:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_65015639138759444595668739676303172351_by_1", - "typeString": "int_const 6501...(30 digits omitted)...2351" - }, - "value": "0x30e98e7f1cc5a356e44627a6972ea2ff" - }, - "src": "14777:53:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7412, - "nodeType": "ExpressionStatement", - "src": "14777:53:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 7417, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7413, - "name": "lambertArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6858, - "src": "14834:12:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 7415, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3932", - "id": 7414, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14847:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_92_by_1", - "typeString": "int_const 92" - }, - "value": "92" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "14834:16:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30783330623034373630623839313765633734323035613330303236353065633035", - "id": 7416, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14853:34:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_64718235758884686944788529404074585093_by_1", - "typeString": "int_const 6471...(30 digits omitted)...5093" - }, - "value": "0x30b04760b8917ec74205a3002650ec05" - }, - "src": "14834:53:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7418, - "nodeType": "ExpressionStatement", - "src": "14834:53:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 7423, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7419, - "name": "lambertArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6858, - "src": "14891:12:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 7421, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3933", - "id": 7420, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14904:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_93_by_1", - "typeString": "int_const 93" - }, - "value": "93" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "14891:16:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30783330373761373563383033343638653931333263653063663332323432343164", - "id": 7422, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14910:34:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_64424221614913808353797169251126354973_by_1", - "typeString": "int_const 6442...(30 digits omitted)...4973" - }, - "value": "0x3077a75c803468e9132ce0cf3224241d" - }, - "src": "14891:53:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7424, - "nodeType": "ExpressionStatement", - "src": "14891:53:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 7429, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7425, - "name": "lambertArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6858, - "src": "14948:12:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 7427, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3934", - "id": 7426, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14961:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_94_by_1", - "typeString": "int_const 94" - }, - "value": "94" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "14948:16:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30783330336661623537613661323735633336663139636461396261636536363761", - "id": 7428, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14967:34:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_64133533736226932951740123178454640250_by_1", - "typeString": "int_const 6413...(30 digits omitted)...0250" - }, - "value": "0x303fab57a6a275c36f19cda9bace667a" - }, - "src": "14948:53:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7430, - "nodeType": "ExpressionStatement", - "src": "14948:53:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 7435, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7431, - "name": "lambertArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6858, - "src": "15005:12:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 7433, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3935", - "id": 7432, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15018:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_95_by_1", - "typeString": "int_const 95" - }, - "value": "95" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "15005:16:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30783330303835303462656238646362643263663362633166366435613036346630", - "id": 7434, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15024:34:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_63846110780325119601596992296297981168_by_1", - "typeString": "int_const 6384...(30 digits omitted)...1168" - }, - "value": "0x3008504beb8dcbd2cf3bc1f6d5a064f0" - }, - "src": "15005:53:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7436, - "nodeType": "ExpressionStatement", - "src": "15005:53:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 7441, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7437, - "name": "lambertArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6858, - "src": "15062:12:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 7439, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3936", - "id": 7438, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15075:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_96_by_1", - "typeString": "int_const 96" - }, - "value": "96" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "15062:16:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30783266643139333436656431376461633631323139636530633263356163346230", - "id": 7440, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15081:34:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_63561892978884723546060567414717465776_by_1", - "typeString": "int_const 6356...(30 digits omitted)...5776" - }, - "value": "0x2fd19346ed17dac61219ce0c2c5ac4b0" - }, - "src": "15062:53:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7442, - "nodeType": "ExpressionStatement", - "src": "15062:53:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 7447, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7443, - "name": "lambertArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6858, - "src": "15119:12:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 7445, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3937", - "id": 7444, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15132:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_97_by_1", - "typeString": "int_const 97" - }, - "value": "97" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "15119:16:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30783266396237313639383038633332346235383532666433643534626139373134", - "id": 7446, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15138:34:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_63280822085989789325487105680707589908_by_1", - "typeString": "int_const 6328...(30 digits omitted)...9908" - }, - "value": "0x2f9b7169808c324b5852fd3d54ba9714" - }, - "src": "15119:53:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7448, - "nodeType": "ExpressionStatement", - "src": "15119:53:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 7453, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7449, - "name": "lambertArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6858, - "src": "15176:12:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 7451, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3938", - "id": 7450, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15189:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_98_by_1", - "typeString": "int_const 98" - }, - "value": "98" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "15176:16:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30783266363565376537313163663462303634656561396330386362646164353734", - "id": 7452, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15195:34:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_63002841328438895053366731000363275636_by_1", - "typeString": "int_const 6300...(30 digits omitted)...5636" - }, - "value": "0x2f65e7e711cf4b064eea9c08cbdad574" - }, - "src": "15176:53:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7454, - "nodeType": "ExpressionStatement", - "src": "15176:53:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 7459, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7455, - "name": "lambertArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6858, - "src": "15233:12:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 7457, - "indexExpression": { - "argumentTypes": null, - "hexValue": "3939", - "id": 7456, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15246:2:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_99_by_1", - "typeString": "int_const 99" - }, - "value": "99" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "15233:16:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30783266333066343035303933303432646466663861323531623662663664313033", - "id": 7458, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15252:34:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_62727895358028530630619015085479612675_by_1", - "typeString": "int_const 6272...(30 digits omitted)...2675" - }, - "value": "0x2f30f405093042ddff8a251b6bf6d103" - }, - "src": "15233:53:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7460, - "nodeType": "ExpressionStatement", - "src": "15233:53:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 7465, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7461, - "name": "lambertArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6858, - "src": "15290:12:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 7463, - "indexExpression": { - "argumentTypes": null, - "hexValue": "313030", - "id": 7462, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15303:3:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_100_by_1", - "typeString": "int_const 100" - }, - "value": "100" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "15290:17:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30783265666339333161333735306632653862666533323365646665303337353734", - "id": 7464, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15310:34:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_62455930205720405594293470980571624820_by_1", - "typeString": "int_const 6245...(30 digits omitted)...4820" - }, - "value": "0x2efc931a3750f2e8bfe323edfe037574" - }, - "src": "15290:54:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7466, - "nodeType": "ExpressionStatement", - "src": "15290:54:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 7471, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7467, - "name": "lambertArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6858, - "src": "15348:12:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 7469, - "indexExpression": { - "argumentTypes": null, - "hexValue": "313031", - "id": 7468, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15361:3:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_101_by_1", - "typeString": "int_const 101" - }, - "value": "101" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "15348:17:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30783265633863323865343664626535366439383638353237383333393430306362", - "id": 7470, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15368:34:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_62186893237605070014470966239378538699_by_1", - "typeString": "int_const 6218...(30 digits omitted)...8699" - }, - "value": "0x2ec8c28e46dbe56d98685278339400cb" - }, - "src": "15348:54:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7472, - "nodeType": "ExpressionStatement", - "src": "15348:54:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 7477, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7473, - "name": "lambertArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6858, - "src": "15406:12:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 7475, - "indexExpression": { - "argumentTypes": null, - "hexValue": "313032", - "id": 7474, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15419:3:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_102_by_1", - "typeString": "int_const 102" - }, - "value": "102" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "15406:17:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30783265393537666439333363333932366438613539396236303233373962383531", - "id": 7476, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15426:34:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_61920733112578916349615492109849704529_by_1", - "typeString": "int_const 6192...(30 digits omitted)...4529" - }, - "value": "0x2e957fd933c3926d8a599b602379b851" - }, - "src": "15406:54:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7478, - "nodeType": "ExpressionStatement", - "src": "15406:54:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 7483, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7479, - "name": "lambertArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6858, - "src": "15464:12:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 7481, - "indexExpression": { - "argumentTypes": null, - "hexValue": "313033", - "id": 7480, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15477:3:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_103_by_1", - "typeString": "int_const 103" - }, - "value": "103" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "15464:17:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30783265363263383832633763396564343437333431323730326630386261306535", - "id": 7482, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15484:34:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_61657399741656031957349998364069699813_by_1", - "typeString": "int_const 6165...(30 digits omitted)...9813" - }, - "value": "0x2e62c882c7c9ed4473412702f08ba0e5" - }, - "src": "15464:54:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7484, - "nodeType": "ExpressionStatement", - "src": "15464:54:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 7489, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7485, - "name": "lambertArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6858, - "src": "15522:12:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 7487, - "indexExpression": { - "argumentTypes": null, - "hexValue": "313034", - "id": 7486, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15535:3:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_104_by_1", - "typeString": "int_const 104" - }, - "value": "104" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "15522:17:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30783265333039613232316331326261333631653365643639353136376665656532", - "id": 7488, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15542:34:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_61396844248840510020197488843164741346_by_1", - "typeString": "int_const 6139...(30 digits omitted)...1346" - }, - "value": "0x2e309a221c12ba361e3ed695167feee2" - }, - "src": "15522:54:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7490, - "nodeType": "ExpressionStatement", - "src": "15522:54:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 7495, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7491, - "name": "lambertArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6858, - "src": "15580:12:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 7493, - "indexExpression": { - "argumentTypes": null, - "hexValue": "313035", - "id": 7492, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15593:3:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_105_by_1", - "typeString": "int_const 105" - }, - "value": "105" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "15580:17:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30783264666566323564316638363561653138646430376366656134626365613130", - "id": 7494, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15600:34:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_61139018933488718567153792494864230928_by_1", - "typeString": "int_const 6113...(30 digits omitted)...0928" - }, - "value": "0x2dfef25d1f865ae18dd07cfea4bcea10" - }, - "src": "15580:54:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7496, - "nodeType": "ExpressionStatement", - "src": "15580:54:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 7501, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7497, - "name": "lambertArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6858, - "src": "15638:12:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 7499, - "indexExpression": { - "argumentTypes": null, - "hexValue": "313036", - "id": 7498, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15651:3:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_106_by_1", - "typeString": "int_const 106" - }, - "value": "106" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "15638:17:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30783264636463656538323163646338306465636330326334343334346165623331", - "id": 7500, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15658:34:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_60883877234094689345243041491992636209_by_1", - "typeString": "int_const 6088...(30 digits omitted)...6209" - }, - "value": "0x2dcdcee821cdc80decc02c44344aeb31" - }, - "src": "15638:54:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7502, - "nodeType": "ExpressionStatement", - "src": "15638:54:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 7507, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7503, - "name": "lambertArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6858, - "src": "15696:12:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 7505, - "indexExpression": { - "argumentTypes": null, - "hexValue": "313037", - "id": 7504, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15709:3:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_107_by_1", - "typeString": "int_const 107" - }, - "value": "107" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "15696:17:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30783264396432643835363262333439343464306232303162623837323630633833", - "id": 7506, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15716:34:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_60631373693435235627049349068288822403_by_1", - "typeString": "int_const 6063...(30 digits omitted)...2403" - }, - "value": "0x2d9d2d8562b34944d0b201bb87260c83" - }, - "src": "15696:54:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7508, - "nodeType": "ExpressionStatement", - "src": "15696:54:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 7513, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7509, - "name": "lambertArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6858, - "src": "15754:12:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 7511, - "indexExpression": { - "argumentTypes": null, - "hexValue": "313038", - "id": 7510, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15767:3:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_108_by_1", - "typeString": "int_const 108" - }, - "value": "108" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "15754:17:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30783264366430633034613562363261326334323633363330383636396237323961", - "id": 7512, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15774:34:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_60381463925014654644808174288326324890_by_1", - "typeString": "int_const 6038...(30 digits omitted)...4890" - }, - "value": "0x2d6d0c04a5b62a2c42636308669b729a" - }, - "src": "15754:54:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7514, - "nodeType": "ExpressionStatement", - "src": "15754:54:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 7519, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7515, - "name": "lambertArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6858, - "src": "15812:12:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 7517, - "indexExpression": { - "argumentTypes": null, - "hexValue": "313039", - "id": 7516, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15825:3:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_109_by_1", - "typeString": "int_const 109" - }, - "value": "109" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "15812:17:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30783264336436383432633961323335353137666335613033333236393135323866", - "id": 7518, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15832:34:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_60134104580751929226866781633165480591_by_1", - "typeString": "int_const 6013...(30 digits omitted)...0591" - }, - "value": "0x2d3d6842c9a235517fc5a0332691528f" - }, - "src": "15812:54:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7520, - "nodeType": "ExpressionStatement", - "src": "15812:54:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 7525, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7521, - "name": "lambertArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6858, - "src": "15870:12:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 7523, - "indexExpression": { - "argumentTypes": null, - "hexValue": "313130", - "id": 7522, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15883:3:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_110_by_1", - "typeString": "int_const 110" - }, - "value": "110" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "15870:17:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30783264306534303239363366653165613238333461626334303863343337633130", - "id": 7524, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15890:34:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_59889253319856226458538603217703631888_by_1", - "typeString": "int_const 5988...(30 digits omitted)...1888" - }, - "value": "0x2d0e402963fe1ea2834abc408c437c10" - }, - "src": "15870:54:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7526, - "nodeType": "ExpressionStatement", - "src": "15870:54:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 7531, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7527, - "name": "lambertArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6858, - "src": "15928:12:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 7529, - "indexExpression": { - "argumentTypes": null, - "hexValue": "313131", - "id": 7528, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15941:3:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_111_by_1", - "typeString": "int_const 111" - }, - "value": "111" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "15928:17:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30783263646639316165363032363437393038616666393735653464366132613863", - "id": 7530, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15948:34:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_59646868778839210021497828354615290508_by_1", - "typeString": "int_const 5964...(30 digits omitted)...0508" - }, - "value": "0x2cdf91ae602647908aff975e4d6a2a8c" - }, - "src": "15928:54:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7532, - "nodeType": "ExpressionStatement", - "src": "15928:54:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 7537, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7533, - "name": "lambertArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6858, - "src": "15986:12:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 7535, - "indexExpression": { - "argumentTypes": null, - "hexValue": "313132", - "id": 7534, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15999:3:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_112_by_1", - "typeString": "int_const 112" - }, - "value": "112" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "15986:17:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30783263623135616433613165623635663664373461373564613039613162366335", - "id": 7536, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16006:34:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_59406910542615247719403943326214371013_by_1", - "typeString": "int_const 5940...(30 digits omitted)...1013" - }, - "value": "0x2cb15ad3a1eb65f6d74a75da09a1b6c5" - }, - "src": "15986:54:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7538, - "nodeType": "ExpressionStatement", - "src": "15986:54:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 7543, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7539, - "name": "lambertArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6858, - "src": "16044:12:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 7541, - "indexExpression": { - "argumentTypes": null, - "hexValue": "313133", - "id": 7540, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16057:3:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_113_by_1", - "typeString": "int_const 113" - }, - "value": "113" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "16044:17:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30783263383339396136616238653937373464366663666633373364323130373237", - "id": 7542, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16064:34:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_59169339116643016279047957521648125735_by_1", - "typeString": "int_const 5916...(30 digits omitted)...5735" - }, - "value": "0x2c8399a6ab8e9774d6fcff373d210727" - }, - "src": "16044:54:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7544, - "nodeType": "ExpressionStatement", - "src": "16044:54:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 7549, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7545, - "name": "lambertArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6858, - "src": "16102:12:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 7547, - "indexExpression": { - "argumentTypes": null, - "hexValue": "313134", - "id": 7546, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16115:3:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_114_by_1", - "typeString": "int_const 114" - }, - "value": "114" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "16102:17:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30783263353634633430343666363465646261363838336361303662626334353335", - "id": 7548, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16122:34:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_58934115900064290859232836743818134837_by_1", - "typeString": "int_const 5893...(30 digits omitted)...4837" - }, - "value": "0x2c564c4046f64edba6883ca06bbc4535" - }, - "src": "16102:54:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7550, - "nodeType": "ExpressionStatement", - "src": "16102:54:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 7555, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7551, - "name": "lambertArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6858, - "src": "16160:12:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 7553, - "indexExpression": { - "argumentTypes": null, - "hexValue": "313135", - "id": 7552, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16173:3:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_115_by_1", - "typeString": "int_const 115" - }, - "value": "115" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "16160:17:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30783263323937306334333166393532363431653035636234393365323365656433", - "id": 7554, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16180:34:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_58701203159797865214654223853927263955_by_1", - "typeString": "int_const 5870...(30 digits omitted)...3955" - }, - "value": "0x2c2970c431f952641e05cb493e23eed3" - }, - "src": "16160:54:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7556, - "nodeType": "ExpressionStatement", - "src": "16160:54:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 7561, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7557, - "name": "lambertArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6858, - "src": "16218:12:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 7559, - "indexExpression": { - "argumentTypes": null, - "hexValue": "313136", - "id": 7558, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16231:3:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_116_by_1", - "typeString": "int_const 116" - }, - "value": "116" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "16218:17:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30783262666430353630636439656231343536336263376330373332383536633138", - "id": 7560, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16238:34:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_58470564005548587984364862866899430424_by_1", - "typeString": "int_const 5847...(30 digits omitted)...0424" - }, - "value": "0x2bfd0560cd9eb14563bc7c0732856c18" - }, - "src": "16218:54:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7562, - "nodeType": "ExpressionStatement", - "src": "16218:54:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 7567, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7563, - "name": "lambertArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6858, - "src": "16276:12:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 7565, - "indexExpression": { - "argumentTypes": null, - "hexValue": "313137", - "id": 7564, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16289:3:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_117_by_1", - "typeString": "int_const 117" - }, - "value": "117" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "16276:17:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30783262643130383465643033333266376666343135306639643065663431613263", - "id": 7566, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16296:34:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_58242162365693428406397594903403305516_by_1", - "typeString": "int_const 5824...(30 digits omitted)...5516" - }, - "value": "0x2bd1084ed0332f7ff4150f9d0ef41a2c" - }, - "src": "16276:54:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7568, - "nodeType": "ExpressionStatement", - "src": "16276:54:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 7573, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7569, - "name": "lambertArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6858, - "src": "16334:12:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 7571, - "indexExpression": { - "argumentTypes": null, - "hexValue": "313138", - "id": 7570, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16347:3:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_118_by_1", - "typeString": "int_const 118" - }, - "value": "118" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "16334:17:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30783262613537376430666131363238623736643034306231326138323439326662", - "id": 7572, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16354:34:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_58015962964008307710970589788915405563_by_1", - "typeString": "int_const 5801...(30 digits omitted)...5563" - }, - "value": "0x2ba577d0fa1628b76d040b12a82492fb" - }, - "src": "16334:54:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7574, - "nodeType": "ExpressionStatement", - "src": "16334:54:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 7579, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7575, - "name": "lambertArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6858, - "src": "16392:12:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 7577, - "indexExpression": { - "argumentTypes": null, - "hexValue": "313139", - "id": 7576, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16405:3:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_119_by_1", - "typeString": "int_const 119" - }, - "value": "119" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "16392:17:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30783262376135323333636432313538316538353565383964633266316538613932", - "id": 7578, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16412:34:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_57791931297201156866686511914608921234_by_1", - "typeString": "int_const 5779...(30 digits omitted)...1234" - }, - "value": "0x2b7a5233cd21581e855e89dc2f1e8a92" - }, - "src": "16392:54:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7580, - "nodeType": "ExpressionStatement", - "src": "16392:54:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 7585, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7581, - "name": "lambertArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6858, - "src": "16450:12:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 7583, - "indexExpression": { - "argumentTypes": null, - "hexValue": "313230", - "id": 7582, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16463:3:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_120_by_1", - "typeString": "int_const 120" - }, - "value": "120" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "16450:17:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30783262346639356364343639303464303564373262646364653333376439636337", - "id": 7584, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16470:34:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_57570033613218293176076279351194000583_by_1", - "typeString": "int_const 5757...(30 digits omitted)...0583" - }, - "value": "0x2b4f95cd46904d05d72bdcde337d9cc7" - }, - "src": "16450:54:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7586, - "nodeType": "ExpressionStatement", - "src": "16450:54:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 7591, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7587, - "name": "lambertArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6858, - "src": "16508:12:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 7589, - "indexExpression": { - "argumentTypes": null, - "hexValue": "313231", - "id": 7588, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16521:3:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_121_by_1", - "typeString": "int_const 121" - }, - "value": "121" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "16508:17:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30783262323534306663396234643961626261336661636136363931393134363735", - "id": 7590, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16528:34:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_57350236890292752974853833075473860213_by_1", - "typeString": "int_const 5735...(30 digits omitted)...0213" - }, - "value": "0x2b2540fc9b4d9abba3faca6691914675" - }, - "src": "16508:54:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7592, - "nodeType": "ExpressionStatement", - "src": "16508:54:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 7597, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7593, - "name": "lambertArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6858, - "src": "16566:12:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 7595, - "indexExpression": { - "argumentTypes": null, - "hexValue": "313232", - "id": 7594, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16579:3:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_122_by_1", - "typeString": "int_const 122" - }, - "value": "122" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "16566:17:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30783261666235323239663638643038333064386265386164623061306462373066", - "id": 7596, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16586:34:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_57132508816704680555143857466604631823_by_1", - "typeString": "int_const 5713...(30 digits omitted)...1823" - }, - "value": "0x2afb5229f68d0830d8be8adb0a0db70f" - }, - "src": "16566:54:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7598, - "nodeType": "ExpressionStatement", - "src": "16566:54:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 7603, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7599, - "name": "lambertArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6858, - "src": "16624:12:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 7601, - "indexExpression": { - "argumentTypes": null, - "hexValue": "313233", - "id": 7600, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16637:3:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_123_by_1", - "typeString": "int_const 123" - }, - "value": "123" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "16624:17:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30783261643163376336336139623239346335626337336133626133616237613262", - "id": 7602, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16644:34:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_56916817771225259240345926660426267179_by_1", - "typeString": "int_const 5691...(30 digits omitted)...7179" - }, - "value": "0x2ad1c7c63a9b294c5bc73a3ba3ab7a2b" - }, - "src": "16624:54:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7604, - "nodeType": "ExpressionStatement", - "src": "16624:54:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 7609, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7605, - "name": "lambertArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6858, - "src": "16682:12:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 7607, - "indexExpression": { - "argumentTypes": null, - "hexValue": "313234", - "id": 7606, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16695:3:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_124_by_1", - "typeString": "int_const 124" - }, - "value": "124" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "16682:17:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30783261613861303461633363626531656531633963383633363134363564626238", - "id": 7608, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16702:34:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_56703132804216983807771297030642981816_by_1", - "typeString": "int_const 5670...(30 digits omitted)...1816" - }, - "value": "0x2aa8a04ac3cbe1ee1c9c86361465dbb8" - }, - "src": "16682:54:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7610, - "nodeType": "ExpressionStatement", - "src": "16682:54:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 7615, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7611, - "name": "lambertArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6858, - "src": "16740:12:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 7613, - "indexExpression": { - "argumentTypes": null, - "hexValue": "313235", - "id": 7612, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16753:3:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_125_by_1", - "typeString": "int_const 125" - }, - "value": "125" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "16740:17:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30783261376664613339326437323561343461326338616562396162333534333064", - "id": 7614, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16760:34:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_56491423619364318412491401339172373261_by_1", - "typeString": "int_const 5649...(30 digits omitted)...3261" - }, - "value": "0x2a7fda392d725a44a2c8aeb9ab35430d" - }, - "src": "16740:54:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7616, - "nodeType": "ExpressionStatement", - "src": "16740:54:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 7621, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7617, - "name": "lambertArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6858, - "src": "16798:12:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 7619, - "indexExpression": { - "argumentTypes": null, - "hexValue": "313236", - "id": 7618, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16811:3:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_126_by_1", - "typeString": "int_const 126" - }, - "value": "126" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "16798:17:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30783261353737343162313863646536313837313737393262346661613231366462", - "id": 7620, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16818:34:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_56281660556009964768470705991401477851_by_1", - "typeString": "int_const 5628...(30 digits omitted)...7851" - }, - "value": "0x2a57741b18cde618717792b4faa216db" - }, - "src": "16798:54:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7622, - "nodeType": "ExpressionStatement", - "src": "16798:54:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 7627, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7623, - "name": "lambertArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6858, - "src": "16856:12:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 7625, - "indexExpression": { - "argumentTypes": null, - "hexValue": "313237", - "id": 7624, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16869:3:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_127_by_1", - "typeString": "int_const 127" - }, - "value": "127" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "16856:17:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30783261326636633831663564383464643935306133353632366436643535303361", - "id": 7626, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16876:34:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_56073814572073085295245695095569469498_by_1", - "typeString": "int_const 5607...(30 digits omitted)...9498" - }, - "value": "0x2a2f6c81f5d84dd950a35626d6d5503a" - }, - "src": "16856:54:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7628, - "nodeType": "ExpressionStatement", - "src": "16856:54:10" - } - ] - }, - "documentation": null, - "id": 7630, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "initLambertArray", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 6859, - "nodeType": "ParameterList", - "parameters": [], - "src": "9585:2:10" - }, - "payable": false, - "returnParameters": { - "id": 6860, - "nodeType": "ParameterList", - "parameters": [], - "src": "9596:0:10" - }, - "scope": 11642, - "src": "9560:7354:10", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 7639, - "nodeType": "Block", - "src": "17029:47:10", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 7633, - "name": "initMaxExpArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6854, - "src": "17033:15:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", - "typeString": "function ()" - } - }, - "id": 7634, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17033:17:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 7635, - "nodeType": "ExpressionStatement", - "src": "17033:17:10" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 7636, - "name": "initLambertArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7630, - "src": "17054:16:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", - "typeString": "function ()" - } - }, - "id": 7637, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17054:18:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 7638, - "nodeType": "ExpressionStatement", - "src": "17054:18:10" - } - ] - }, - "documentation": "@dev should be executed after construction (too large for the constructor)", - "id": 7640, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "init", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7631, - "nodeType": "ParameterList", - "parameters": [], - "src": "17019:2:10" - }, - "payable": false, - "returnParameters": { - "id": 7632, - "nodeType": "ParameterList", - "parameters": [], - "src": "17029:0:10" - }, - "scope": 11642, - "src": "17006:70:10", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 7732, - "nodeType": "Block", - "src": "17812:664:10", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7656, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 7654, - "name": "_supply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7642, - "src": "17844:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 7655, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17854:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "17844:11:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552525f494e56414c49445f535550504c59", - "id": 7657, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17857:20:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_663f10355ba071616cc91891330bbbd56c18b20e7bda020baff58fa08722ec60", - "typeString": "literal_string \"ERR_INVALID_SUPPLY\"" - }, - "value": "ERR_INVALID_SUPPLY" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_663f10355ba071616cc91891330bbbd56c18b20e7bda020baff58fa08722ec60", - "typeString": "literal_string \"ERR_INVALID_SUPPLY\"" - } - ], - "id": 7653, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 22341, - 22342 - ], - "referencedDeclaration": 22342, - "src": "17836:7:10", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 7658, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17836:42:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 7659, - "nodeType": "ExpressionStatement", - "src": "17836:42:10" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7663, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 7661, - "name": "_reserveBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7644, - "src": "17890:15:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 7662, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17908:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "17890:19:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552525f494e56414c49445f524553455256455f42414c414e4345", - "id": 7664, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17911:29:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_50b448733a1d57cdd008d269297c4a2f50984605cb59e986bc2d98cee971e78d", - "typeString": "literal_string \"ERR_INVALID_RESERVE_BALANCE\"" - }, - "value": "ERR_INVALID_RESERVE_BALANCE" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_50b448733a1d57cdd008d269297c4a2f50984605cb59e986bc2d98cee971e78d", - "typeString": "literal_string \"ERR_INVALID_RESERVE_BALANCE\"" - } - ], - "id": 7660, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 22341, - 22342 - ], - "referencedDeclaration": 22342, - "src": "17882:7:10", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 7665, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17882:59:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 7666, - "nodeType": "ExpressionStatement", - "src": "17882:59:10" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 7674, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "id": 7670, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 7668, - "name": "_reserveWeight", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7646, - "src": "17953:14:10", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 7669, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17970:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "17953:18:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "id": 7673, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 7671, - "name": "_reserveWeight", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7646, - "src": "17975:14:10", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "id": 7672, - "name": "MAX_WEIGHT", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6228, - "src": "17993:10:10", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "src": "17975:28:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "17953:50:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552525f494e56414c49445f524553455256455f574549474854", - "id": 7675, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "18005:28:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_e4e4c57eb13b428a7fc031dc1f6f2c3e13b61f7d7b93994b2d17f8dc75658178", - "typeString": "literal_string \"ERR_INVALID_RESERVE_WEIGHT\"" - }, - "value": "ERR_INVALID_RESERVE_WEIGHT" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_e4e4c57eb13b428a7fc031dc1f6f2c3e13b61f7d7b93994b2d17f8dc75658178", - "typeString": "literal_string \"ERR_INVALID_RESERVE_WEIGHT\"" - } - ], - "id": 7667, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 22341, - 22342 - ], - "referencedDeclaration": 22342, - "src": "17945:7:10", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 7676, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17945:89:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 7677, - "nodeType": "ExpressionStatement", - "src": "17945:89:10" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7680, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 7678, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7648, - "src": "18082:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 7679, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "18093:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "18082:12:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 7683, - "nodeType": "IfStatement", - "src": "18078:26:10", - "trueBody": { - "expression": { - "argumentTypes": null, - "hexValue": "30", - "id": 7681, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "18103:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "functionReturnParameters": 7652, - "id": 7682, - "nodeType": "Return", - "src": "18096:8:10" - } - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "id": 7686, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 7684, - "name": "_reserveWeight", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7646, - "src": "18152:14:10", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 7685, - "name": "MAX_WEIGHT", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6228, - "src": "18170:10:10", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "src": "18152:28:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 7694, - "nodeType": "IfStatement", - "src": "18148:79:10", - "trueBody": { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7692, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 7689, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7648, - "src": "18201:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 7687, - "name": "_supply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7642, - "src": "18189:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7688, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 21791, - "src": "18189:11:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 7690, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18189:20:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 7691, - "name": "_reserveBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7644, - "src": "18212:15:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "18189:38:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 7652, - "id": 7693, - "nodeType": "Return", - "src": "18182:45:10" - } - }, - { - "assignments": [], - "declarations": [ - { - "constant": false, - "id": 7696, - "name": "result", - "nodeType": "VariableDeclaration", - "scope": 7733, - "src": "18232:14:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7695, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "18232:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 7697, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "18232:14:10" - }, - { - "assignments": [], - "declarations": [ - { - "constant": false, - "id": 7699, - "name": "precision", - "nodeType": "VariableDeclaration", - "scope": 7733, - "src": "18250:15:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 7698, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "18250:5:10", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 7700, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "18250:15:10" - }, - { - "assignments": [ - 7702 - ], - "declarations": [ - { - "constant": false, - "id": 7702, - "name": "baseN", - "nodeType": "VariableDeclaration", - "scope": 7733, - "src": "18269:13:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7701, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "18269:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 7707, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 7705, - "name": "_reserveBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7644, - "src": "18297:15:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 7703, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7648, - "src": "18285:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7704, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 21737, - "src": "18285:11:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 7706, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18285:28:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "18269:44:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 7717, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "id": 7708, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7696, - "src": "18318:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 7709, - "name": "precision", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7699, - "src": "18326:9:10", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - } - ], - "id": 7710, - "isConstant": false, - "isInlineArray": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "TupleExpression", - "src": "18317:19:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint8_$", - "typeString": "tuple(uint256,uint8)" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 7712, - "name": "baseN", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7702, - "src": "18345:5:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 7713, - "name": "_reserveBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7644, - "src": "18352:15:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 7714, - "name": "_reserveWeight", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7646, - "src": "18369:14:10", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - { - "argumentTypes": null, - "id": 7715, - "name": "MAX_WEIGHT", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6228, - "src": "18385:10:10", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - ], - "id": 7711, - "name": "power", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8457, - "src": "18339:5:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint256_$_t_uint32_$_t_uint32_$returns$_t_uint256_$_t_uint8_$", - "typeString": "function (uint256,uint256,uint32,uint32) view returns (uint256,uint8)" - } - }, - "id": 7716, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18339:57:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint8_$", - "typeString": "tuple(uint256,uint8)" - } - }, - "src": "18317:79:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 7718, - "nodeType": "ExpressionStatement", - "src": "18317:79:10" - }, - { - "assignments": [ - 7720 - ], - "declarations": [ - { - "constant": false, - "id": 7720, - "name": "temp", - "nodeType": "VariableDeclaration", - "scope": 7733, - "src": "18400:12:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7719, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "18400:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 7727, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7726, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 7723, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7696, - "src": "18427:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 7721, - "name": "_supply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7642, - "src": "18415:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7722, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 21791, - "src": "18415:11:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 7724, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18415:19:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">>", - "rightExpression": { - "argumentTypes": null, - "id": 7725, - "name": "precision", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7699, - "src": "18438:9:10", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "18415:32:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "18400:47:10" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7730, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 7728, - "name": "temp", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7720, - "src": "18458:4:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "id": 7729, - "name": "_supply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7642, - "src": "18465:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "18458:14:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 7652, - "id": 7731, - "nodeType": "Return", - "src": "18451:21:10" - } - ] - }, - "documentation": "@dev given a token supply, reserve balance, weight and a deposit amount (in the reserve token),\ncalculates the target amount for a given conversion (in the main token)\n\t * Formula:\nreturn = _supply * ((1 + _amount / _reserveBalance) ^ (_reserveWeight / 1000000) - 1)\n\t * @param _supply smart token supply\n@param _reserveBalance reserve balance\n@param _reserveWeight reserve weight, represented in ppm (1-1000000)\n@param _amount amount of reserve tokens to get the target amount for\n\t * @return smart token amount", - "id": 7733, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "purchaseTargetAmount", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7649, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7642, - "name": "_supply", - "nodeType": "VariableDeclaration", - "scope": 7733, - "src": "17692:15:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7641, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "17692:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7644, - "name": "_reserveBalance", - "nodeType": "VariableDeclaration", - "scope": 7733, - "src": "17711:23:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7643, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "17711:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7646, - "name": "_reserveWeight", - "nodeType": "VariableDeclaration", - "scope": 7733, - "src": "17738:21:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 7645, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "17738:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7648, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 7733, - "src": "17763:15:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7647, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "17763:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "17688:93:10" - }, - "payable": false, - "returnParameters": { - "id": 7652, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7651, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 7733, - "src": "17803:7:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7650, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "17803:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "17802:9:10" - }, - "scope": 11642, - "src": "17659:817:10", - "stateMutability": "view", - "superFunction": 12155, - "visibility": "public" - }, - { - "body": { - "id": 7844, - "nodeType": "Block", - "src": "19205:848:10", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7749, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 7747, - "name": "_supply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7735, - "src": "19237:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 7748, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19247:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "19237:11:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552525f494e56414c49445f535550504c59", - "id": 7750, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19250:20:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_663f10355ba071616cc91891330bbbd56c18b20e7bda020baff58fa08722ec60", - "typeString": "literal_string \"ERR_INVALID_SUPPLY\"" - }, - "value": "ERR_INVALID_SUPPLY" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_663f10355ba071616cc91891330bbbd56c18b20e7bda020baff58fa08722ec60", - "typeString": "literal_string \"ERR_INVALID_SUPPLY\"" - } - ], - "id": 7746, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 22341, - 22342 - ], - "referencedDeclaration": 22342, - "src": "19229:7:10", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 7751, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19229:42:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 7752, - "nodeType": "ExpressionStatement", - "src": "19229:42:10" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7756, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 7754, - "name": "_reserveBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7737, - "src": "19283:15:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 7755, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19301:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "19283:19:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552525f494e56414c49445f524553455256455f42414c414e4345", - "id": 7757, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19304:29:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_50b448733a1d57cdd008d269297c4a2f50984605cb59e986bc2d98cee971e78d", - "typeString": "literal_string \"ERR_INVALID_RESERVE_BALANCE\"" - }, - "value": "ERR_INVALID_RESERVE_BALANCE" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_50b448733a1d57cdd008d269297c4a2f50984605cb59e986bc2d98cee971e78d", - "typeString": "literal_string \"ERR_INVALID_RESERVE_BALANCE\"" - } - ], - "id": 7753, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 22341, - 22342 - ], - "referencedDeclaration": 22342, - "src": "19275:7:10", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 7758, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19275:59:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 7759, - "nodeType": "ExpressionStatement", - "src": "19275:59:10" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 7767, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "id": 7763, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 7761, - "name": "_reserveWeight", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7739, - "src": "19346:14:10", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 7762, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19363:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "19346:18:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "id": 7766, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 7764, - "name": "_reserveWeight", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7739, - "src": "19368:14:10", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "id": 7765, - "name": "MAX_WEIGHT", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6228, - "src": "19386:10:10", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "src": "19368:28:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "19346:50:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552525f494e56414c49445f524553455256455f574549474854", - "id": 7768, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19398:28:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_e4e4c57eb13b428a7fc031dc1f6f2c3e13b61f7d7b93994b2d17f8dc75658178", - "typeString": "literal_string \"ERR_INVALID_RESERVE_WEIGHT\"" - }, - "value": "ERR_INVALID_RESERVE_WEIGHT" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_e4e4c57eb13b428a7fc031dc1f6f2c3e13b61f7d7b93994b2d17f8dc75658178", - "typeString": "literal_string \"ERR_INVALID_RESERVE_WEIGHT\"" - } - ], - "id": 7760, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 22341, - 22342 - ], - "referencedDeclaration": 22342, - "src": "19338:7:10", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 7769, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19338:89:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 7770, - "nodeType": "ExpressionStatement", - "src": "19338:89:10" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7774, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 7772, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7741, - "src": "19439:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "id": 7773, - "name": "_supply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7735, - "src": "19450:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "19439:18:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552525f494e56414c49445f414d4f554e54", - "id": 7775, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19459:20:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c44007bfe4e704be0ed1393660a827b4f88825f4b6fe1bc10cd38fc3fcb7d839", - "typeString": "literal_string \"ERR_INVALID_AMOUNT\"" - }, - "value": "ERR_INVALID_AMOUNT" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_c44007bfe4e704be0ed1393660a827b4f88825f4b6fe1bc10cd38fc3fcb7d839", - "typeString": "literal_string \"ERR_INVALID_AMOUNT\"" - } - ], - "id": 7771, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 22341, - 22342 - ], - "referencedDeclaration": 22342, - "src": "19431:7:10", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 7776, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19431:49:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 7777, - "nodeType": "ExpressionStatement", - "src": "19431:49:10" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7780, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 7778, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7741, - "src": "19525:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 7779, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19536:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "19525:12:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 7783, - "nodeType": "IfStatement", - "src": "19521:26:10", - "trueBody": { - "expression": { - "argumentTypes": null, - "hexValue": "30", - "id": 7781, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19546:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "functionReturnParameters": 7745, - "id": 7782, - "nodeType": "Return", - "src": "19539:8:10" - } - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7786, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 7784, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7741, - "src": "19604:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 7785, - "name": "_supply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7735, - "src": "19615:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "19604:18:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 7789, - "nodeType": "IfStatement", - "src": "19600:46:10", - "trueBody": { - "expression": { - "argumentTypes": null, - "id": 7787, - "name": "_reserveBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7737, - "src": "19631:15:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 7745, - "id": 7788, - "nodeType": "Return", - "src": "19624:22:10" - } - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "id": 7792, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 7790, - "name": "_reserveWeight", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7739, - "src": "19694:14:10", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 7791, - "name": "MAX_WEIGHT", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6228, - "src": "19712:10:10", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "src": "19694:28:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 7800, - "nodeType": "IfStatement", - "src": "19690:79:10", - "trueBody": { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7798, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 7795, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7741, - "src": "19751:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 7793, - "name": "_reserveBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7737, - "src": "19731:15:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7794, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 21791, - "src": "19731:19:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 7796, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19731:28:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 7797, - "name": "_supply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7735, - "src": "19762:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "19731:38:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 7745, - "id": 7799, - "nodeType": "Return", - "src": "19724:45:10" - } - }, - { - "assignments": [], - "declarations": [ - { - "constant": false, - "id": 7802, - "name": "result", - "nodeType": "VariableDeclaration", - "scope": 7845, - "src": "19774:14:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7801, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "19774:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 7803, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "19774:14:10" - }, - { - "assignments": [], - "declarations": [ - { - "constant": false, - "id": 7805, - "name": "precision", - "nodeType": "VariableDeclaration", - "scope": 7845, - "src": "19792:15:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 7804, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "19792:5:10", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 7806, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "19792:15:10" - }, - { - "assignments": [ - 7808 - ], - "declarations": [ - { - "constant": false, - "id": 7808, - "name": "baseD", - "nodeType": "VariableDeclaration", - "scope": 7845, - "src": "19811:13:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7807, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "19811:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 7812, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7811, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 7809, - "name": "_supply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7735, - "src": "19827:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "id": 7810, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7741, - "src": "19837:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "19827:17:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "19811:33:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 7822, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "id": 7813, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7802, - "src": "19849:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 7814, - "name": "precision", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7805, - "src": "19857:9:10", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - } - ], - "id": 7815, - "isConstant": false, - "isInlineArray": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "TupleExpression", - "src": "19848:19:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint8_$", - "typeString": "tuple(uint256,uint8)" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 7817, - "name": "_supply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7735, - "src": "19876:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 7818, - "name": "baseD", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7808, - "src": "19885:5:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 7819, - "name": "MAX_WEIGHT", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6228, - "src": "19892:10:10", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - { - "argumentTypes": null, - "id": 7820, - "name": "_reserveWeight", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7739, - "src": "19904:14:10", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - ], - "id": 7816, - "name": "power", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8457, - "src": "19870:5:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint256_$_t_uint32_$_t_uint32_$returns$_t_uint256_$_t_uint8_$", - "typeString": "function (uint256,uint256,uint32,uint32) view returns (uint256,uint8)" - } - }, - "id": 7821, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19870:49:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint8_$", - "typeString": "tuple(uint256,uint8)" - } - }, - "src": "19848:71:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 7823, - "nodeType": "ExpressionStatement", - "src": "19848:71:10" - }, - { - "assignments": [ - 7825 - ], - "declarations": [ - { - "constant": false, - "id": 7825, - "name": "temp1", - "nodeType": "VariableDeclaration", - "scope": 7845, - "src": "19923:13:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7824, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "19923:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 7830, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 7828, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7802, - "src": "19959:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 7826, - "name": "_reserveBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7737, - "src": "19939:15:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7827, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 21791, - "src": "19939:19:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 7829, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19939:27:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "19923:43:10" - }, - { - "assignments": [ - 7832 - ], - "declarations": [ - { - "constant": false, - "id": 7832, - "name": "temp2", - "nodeType": "VariableDeclaration", - "scope": 7845, - "src": "19970:13:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7831, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "19970:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 7836, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7835, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 7833, - "name": "_reserveBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7737, - "src": "19986:15:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<<", - "rightExpression": { - "argumentTypes": null, - "id": 7834, - "name": "precision", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7805, - "src": "20005:9:10", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "19986:28:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "19970:44:10" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7842, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7839, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 7837, - "name": "temp1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7825, - "src": "20026:5:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "id": 7838, - "name": "temp2", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7832, - "src": "20034:5:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "20026:13:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 7840, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "20025:15:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 7841, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7802, - "src": "20043:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "20025:24:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 7745, - "id": 7843, - "nodeType": "Return", - "src": "20018:31:10" - } - ] - }, - "documentation": "@dev given a token supply, reserve balance, weight and a sell amount (in the main token),\ncalculates the target amount for a given conversion (in the reserve token)\n\t * Formula:\nreturn = _reserveBalance * (1 - (1 - _amount / _supply) ^ (1000000 / _reserveWeight))\n\t * @param _supply smart token supply\n@param _reserveBalance reserve balance\n@param _reserveWeight reserve weight, represented in ppm (1-1000000)\n@param _amount amount of smart tokens to get the target amount for\n\t * @return reserve token amount", - "id": 7845, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "saleTargetAmount", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7742, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7735, - "name": "_supply", - "nodeType": "VariableDeclaration", - "scope": 7845, - "src": "19085:15:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7734, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "19085:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7737, - "name": "_reserveBalance", - "nodeType": "VariableDeclaration", - "scope": 7845, - "src": "19104:23:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7736, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "19104:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7739, - "name": "_reserveWeight", - "nodeType": "VariableDeclaration", - "scope": 7845, - "src": "19131:21:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 7738, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "19131:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7741, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 7845, - "src": "19156:15:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7740, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "19156:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "19081:93:10" - }, - "payable": false, - "returnParameters": { - "id": 7745, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7744, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 7845, - "src": "19196:7:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7743, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "19196:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "19195:9:10" - }, - "scope": 11642, - "src": "19056:997:10", - "stateMutability": "view", - "superFunction": 12168, - "visibility": "public" - }, - { - "body": { - "id": 7948, - "nodeType": "Block", - "src": "21046:811:10", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 7867, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7863, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 7861, - "name": "_sourceReserveBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7847, - "src": "21078:21:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 7862, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21102:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "21078:25:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7866, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 7864, - "name": "_targetReserveBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7851, - "src": "21107:21:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 7865, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21131:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "21107:25:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "21078:54:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552525f494e56414c49445f524553455256455f42414c414e4345", - "id": 7868, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21134:29:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_50b448733a1d57cdd008d269297c4a2f50984605cb59e986bc2d98cee971e78d", - "typeString": "literal_string \"ERR_INVALID_RESERVE_BALANCE\"" - }, - "value": "ERR_INVALID_RESERVE_BALANCE" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_50b448733a1d57cdd008d269297c4a2f50984605cb59e986bc2d98cee971e78d", - "typeString": "literal_string \"ERR_INVALID_RESERVE_BALANCE\"" - } - ], - "id": 7860, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 22341, - 22342 - ], - "referencedDeclaration": 22342, - "src": "21070:7:10", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 7869, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21070:94:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 7870, - "nodeType": "ExpressionStatement", - "src": "21070:94:10" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 7886, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 7882, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 7878, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "id": 7874, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 7872, - "name": "_sourceReserveWeight", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7849, - "src": "21180:20:10", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 7873, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21203:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "21180:24:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "id": 7877, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 7875, - "name": "_sourceReserveWeight", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7849, - "src": "21208:20:10", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "id": 7876, - "name": "MAX_WEIGHT", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6228, - "src": "21232:10:10", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "src": "21208:34:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "21180:62:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "id": 7881, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 7879, - "name": "_targetReserveWeight", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7853, - "src": "21246:20:10", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 7880, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21269:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "21246:24:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "21180:90:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "id": 7885, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 7883, - "name": "_targetReserveWeight", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7853, - "src": "21274:20:10", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "id": 7884, - "name": "MAX_WEIGHT", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6228, - "src": "21298:10:10", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "src": "21274:34:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "21180:128:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552525f494e56414c49445f524553455256455f574549474854", - "id": 7887, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21313:28:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_e4e4c57eb13b428a7fc031dc1f6f2c3e13b61f7d7b93994b2d17f8dc75658178", - "typeString": "literal_string \"ERR_INVALID_RESERVE_WEIGHT\"" - }, - "value": "ERR_INVALID_RESERVE_WEIGHT" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_e4e4c57eb13b428a7fc031dc1f6f2c3e13b61f7d7b93994b2d17f8dc75658178", - "typeString": "literal_string \"ERR_INVALID_RESERVE_WEIGHT\"" - } - ], - "id": 7871, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 22341, - 22342 - ], - "referencedDeclaration": 22342, - "src": "21168:7:10", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 7888, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21168:177:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 7889, - "nodeType": "ExpressionStatement", - "src": "21168:177:10" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "id": 7892, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 7890, - "name": "_sourceReserveWeight", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7849, - "src": "21390:20:10", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 7891, - "name": "_targetReserveWeight", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7853, - "src": "21414:20:10", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "src": "21390:44:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 7903, - "nodeType": "IfStatement", - "src": "21386:128:10", - "trueBody": { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7901, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 7895, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7855, - "src": "21469:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 7893, - "name": "_targetReserveBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7851, - "src": "21443:21:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7894, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 21791, - "src": "21443:25:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 7896, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21443:34:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 7899, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7855, - "src": "21506:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 7897, - "name": "_sourceReserveBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7847, - "src": "21480:21:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7898, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 21737, - "src": "21480:25:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 7900, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21480:34:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "21443:71:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 7859, - "id": 7902, - "nodeType": "Return", - "src": "21436:78:10" - } - }, - { - "assignments": [], - "declarations": [ - { - "constant": false, - "id": 7905, - "name": "result", - "nodeType": "VariableDeclaration", - "scope": 7949, - "src": "21519:14:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7904, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "21519:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 7906, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "21519:14:10" - }, - { - "assignments": [], - "declarations": [ - { - "constant": false, - "id": 7908, - "name": "precision", - "nodeType": "VariableDeclaration", - "scope": 7949, - "src": "21537:15:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 7907, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "21537:5:10", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 7909, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "21537:15:10" - }, - { - "assignments": [ - 7911 - ], - "declarations": [ - { - "constant": false, - "id": 7911, - "name": "baseN", - "nodeType": "VariableDeclaration", - "scope": 7949, - "src": "21556:13:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7910, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "21556:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 7916, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 7914, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7855, - "src": "21598:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 7912, - "name": "_sourceReserveBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7847, - "src": "21572:21:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7913, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 21737, - "src": "21572:25:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 7915, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21572:34:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "21556:50:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 7926, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "id": 7917, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7905, - "src": "21611:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 7918, - "name": "precision", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7908, - "src": "21619:9:10", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - } - ], - "id": 7919, - "isConstant": false, - "isInlineArray": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "TupleExpression", - "src": "21610:19:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint8_$", - "typeString": "tuple(uint256,uint8)" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 7921, - "name": "baseN", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7911, - "src": "21638:5:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 7922, - "name": "_sourceReserveBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7847, - "src": "21645:21:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 7923, - "name": "_sourceReserveWeight", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7849, - "src": "21668:20:10", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - { - "argumentTypes": null, - "id": 7924, - "name": "_targetReserveWeight", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7853, - "src": "21690:20:10", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - ], - "id": 7920, - "name": "power", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8457, - "src": "21632:5:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint256_$_t_uint32_$_t_uint32_$returns$_t_uint256_$_t_uint8_$", - "typeString": "function (uint256,uint256,uint32,uint32) view returns (uint256,uint8)" - } - }, - "id": 7925, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21632:79:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint8_$", - "typeString": "tuple(uint256,uint8)" - } - }, - "src": "21610:101:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 7927, - "nodeType": "ExpressionStatement", - "src": "21610:101:10" - }, - { - "assignments": [ - 7929 - ], - "declarations": [ - { - "constant": false, - "id": 7929, - "name": "temp1", - "nodeType": "VariableDeclaration", - "scope": 7949, - "src": "21715:13:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7928, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "21715:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 7934, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 7932, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7905, - "src": "21757:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 7930, - "name": "_targetReserveBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7851, - "src": "21731:21:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7931, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 21791, - "src": "21731:25:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 7933, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21731:33:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "21715:49:10" - }, - { - "assignments": [ - 7936 - ], - "declarations": [ - { - "constant": false, - "id": 7936, - "name": "temp2", - "nodeType": "VariableDeclaration", - "scope": 7949, - "src": "21768:13:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7935, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "21768:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 7940, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7939, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 7937, - "name": "_targetReserveBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7851, - "src": "21784:21:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<<", - "rightExpression": { - "argumentTypes": null, - "id": 7938, - "name": "precision", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7908, - "src": "21809:9:10", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "21784:34:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "21768:50:10" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7946, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7943, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 7941, - "name": "temp1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7929, - "src": "21830:5:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "id": 7942, - "name": "temp2", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7936, - "src": "21838:5:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "21830:13:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 7944, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "21829:15:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 7945, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7905, - "src": "21847:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "21829:24:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 7859, - "id": 7947, - "nodeType": "Return", - "src": "21822:31:10" - } - ] - }, - "documentation": "@dev given two reserve balances/weights and a sell amount (in the first reserve token),\ncalculates the target amount for a conversion from the source reserve token to the target reserve token\n\t * Formula:\nreturn = _targetReserveBalance * (1 - (_sourceReserveBalance / (_sourceReserveBalance + _amount)) ^ (_sourceReserveWeight / _targetReserveWeight))\n\t * @param _sourceReserveBalance source reserve balance\n@param _sourceReserveWeight source reserve weight, represented in ppm (1-1000000)\n@param _targetReserveBalance target reserve balance\n@param _targetReserveWeight target reserve weight, represented in ppm (1-1000000)\n@param _amount source reserve amount\n\t * @return target reserve amount", - "id": 7949, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "crossReserveTargetAmount", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7856, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7847, - "name": "_sourceReserveBalance", - "nodeType": "VariableDeclaration", - "scope": 7949, - "src": "20869:29:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7846, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "20869:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7849, - "name": "_sourceReserveWeight", - "nodeType": "VariableDeclaration", - "scope": 7949, - "src": "20902:27:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 7848, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "20902:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7851, - "name": "_targetReserveBalance", - "nodeType": "VariableDeclaration", - "scope": 7949, - "src": "20933:29:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7850, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "20933:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7853, - "name": "_targetReserveWeight", - "nodeType": "VariableDeclaration", - "scope": 7949, - "src": "20966:27:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 7852, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "20966:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7855, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 7949, - "src": "20997:15:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7854, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "20997:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "20865:150:10" - }, - "payable": false, - "returnParameters": { - "id": 7859, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7858, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 7949, - "src": "21037:7:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7857, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "21037:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "21036:9:10" - }, - "scope": 11642, - "src": "20832:1025:10", - "stateMutability": "view", - "superFunction": 12183, - "visibility": "public" - }, - { - "body": { - "id": 8054, - "nodeType": "Block", - "src": "22604:684:10", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7965, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 7963, - "name": "_supply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7951, - "src": "22636:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 7964, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22646:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "22636:11:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552525f494e56414c49445f535550504c59", - "id": 7966, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22649:20:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_663f10355ba071616cc91891330bbbd56c18b20e7bda020baff58fa08722ec60", - "typeString": "literal_string \"ERR_INVALID_SUPPLY\"" - }, - "value": "ERR_INVALID_SUPPLY" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_663f10355ba071616cc91891330bbbd56c18b20e7bda020baff58fa08722ec60", - "typeString": "literal_string \"ERR_INVALID_SUPPLY\"" - } - ], - "id": 7962, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 22341, - 22342 - ], - "referencedDeclaration": 22342, - "src": "22628:7:10", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 7967, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22628:42:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 7968, - "nodeType": "ExpressionStatement", - "src": "22628:42:10" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7972, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 7970, - "name": "_reserveBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7953, - "src": "22682:15:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 7971, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22700:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "22682:19:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552525f494e56414c49445f524553455256455f42414c414e4345", - "id": 7973, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22703:29:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_50b448733a1d57cdd008d269297c4a2f50984605cb59e986bc2d98cee971e78d", - "typeString": "literal_string \"ERR_INVALID_RESERVE_BALANCE\"" - }, - "value": "ERR_INVALID_RESERVE_BALANCE" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_50b448733a1d57cdd008d269297c4a2f50984605cb59e986bc2d98cee971e78d", - "typeString": "literal_string \"ERR_INVALID_RESERVE_BALANCE\"" - } - ], - "id": 7969, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 22341, - 22342 - ], - "referencedDeclaration": 22342, - "src": "22674:7:10", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 7974, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22674:59:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 7975, - "nodeType": "ExpressionStatement", - "src": "22674:59:10" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 7985, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "id": 7979, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 7977, - "name": "_reserveRatio", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7955, - "src": "22745:13:10", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 7978, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22761:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "22745:17:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "id": 7984, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 7980, - "name": "_reserveRatio", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7955, - "src": "22766:13:10", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "id": 7983, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 7981, - "name": "MAX_WEIGHT", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6228, - "src": "22783:10:10", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "hexValue": "32", - "id": 7982, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22796:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "src": "22783:14:10", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "src": "22766:31:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "22745:52:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552525f494e56414c49445f524553455256455f524154494f", - "id": 7986, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22799:27:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_8a8172d57fd89f78d9ce572e7618cbce6e9962212a6741dcc1911f87bc706d73", - "typeString": "literal_string \"ERR_INVALID_RESERVE_RATIO\"" - }, - "value": "ERR_INVALID_RESERVE_RATIO" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_8a8172d57fd89f78d9ce572e7618cbce6e9962212a6741dcc1911f87bc706d73", - "typeString": "literal_string \"ERR_INVALID_RESERVE_RATIO\"" - } - ], - "id": 7976, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 22341, - 22342 - ], - "referencedDeclaration": 22342, - "src": "22737:7:10", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 7987, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22737:90:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 7988, - "nodeType": "ExpressionStatement", - "src": "22737:90:10" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7991, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 7989, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7957, - "src": "22867:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 7990, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22878:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "22867:12:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 7994, - "nodeType": "IfStatement", - "src": "22863:26:10", - "trueBody": { - "expression": { - "argumentTypes": null, - "hexValue": "30", - "id": 7992, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22888:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "functionReturnParameters": 7961, - "id": 7993, - "nodeType": "Return", - "src": "22881:8:10" - } - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "id": 7997, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 7995, - "name": "_reserveRatio", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7955, - "src": "22944:13:10", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 7996, - "name": "MAX_WEIGHT", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6228, - "src": "22961:10:10", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "src": "22944:27:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 8010, - "nodeType": "IfStatement", - "src": "22940:88:10", - "trueBody": { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8008, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8006, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8003, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8000, - "name": "_reserveBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7953, - "src": "22993:15:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 7998, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7957, - "src": "22981:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7999, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 21791, - "src": "22981:11:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 8001, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22981:28:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 8002, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "23012:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "22981:32:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 8004, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "22980:34:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 8005, - "name": "_supply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7951, - "src": "23017:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "22980:44:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 8007, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "23027:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "22980:48:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 7961, - "id": 8009, - "nodeType": "Return", - "src": "22973:55:10" - } - }, - { - "assignments": [], - "declarations": [ - { - "constant": false, - "id": 8012, - "name": "result", - "nodeType": "VariableDeclaration", - "scope": 8055, - "src": "23033:14:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8011, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "23033:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 8013, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "23033:14:10" - }, - { - "assignments": [], - "declarations": [ - { - "constant": false, - "id": 8015, - "name": "precision", - "nodeType": "VariableDeclaration", - "scope": 8055, - "src": "23051:15:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 8014, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "23051:5:10", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 8016, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "23051:15:10" - }, - { - "assignments": [ - 8018 - ], - "declarations": [ - { - "constant": false, - "id": 8018, - "name": "baseN", - "nodeType": "VariableDeclaration", - "scope": 8055, - "src": "23070:13:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8017, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "23070:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 8023, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8021, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7957, - "src": "23098:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 8019, - "name": "_supply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7951, - "src": "23086:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8020, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 21737, - "src": "23086:11:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 8022, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "23086:20:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "23070:36:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 8033, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "id": 8024, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8012, - "src": "23111:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 8025, - "name": "precision", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8015, - "src": "23119:9:10", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - } - ], - "id": 8026, - "isConstant": false, - "isInlineArray": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "TupleExpression", - "src": "23110:19:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint8_$", - "typeString": "tuple(uint256,uint8)" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8028, - "name": "baseN", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8018, - "src": "23138:5:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 8029, - "name": "_supply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7951, - "src": "23145:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 8030, - "name": "MAX_WEIGHT", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6228, - "src": "23154:10:10", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - { - "argumentTypes": null, - "id": 8031, - "name": "_reserveRatio", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7955, - "src": "23166:13:10", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - ], - "id": 8027, - "name": "power", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8457, - "src": "23132:5:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint256_$_t_uint32_$_t_uint32_$returns$_t_uint256_$_t_uint8_$", - "typeString": "function (uint256,uint256,uint32,uint32) view returns (uint256,uint8)" - } - }, - "id": 8032, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "23132:48:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint8_$", - "typeString": "tuple(uint256,uint8)" - } - }, - "src": "23110:70:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8034, - "nodeType": "ExpressionStatement", - "src": "23110:70:10" - }, - { - "assignments": [ - 8036 - ], - "declarations": [ - { - "constant": false, - "id": 8036, - "name": "temp", - "nodeType": "VariableDeclaration", - "scope": 8055, - "src": "23184:12:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8035, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "23184:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 8049, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8048, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8045, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8042, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8039, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8012, - "src": "23221:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 8037, - "name": "_reserveBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7953, - "src": "23201:15:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8038, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 21791, - "src": "23201:19:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 8040, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "23201:27:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 8041, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "23231:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "23201:31:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 8043, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "23200:33:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">>", - "rightExpression": { - "argumentTypes": null, - "id": 8044, - "name": "precision", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8015, - "src": "23237:9:10", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "23200:46:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 8046, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "23199:48:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 8047, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "23250:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "23199:52:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "23184:67:10" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8052, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8050, - "name": "temp", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8036, - "src": "23262:4:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "id": 8051, - "name": "_reserveBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7953, - "src": "23269:15:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "23262:22:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 7961, - "id": 8053, - "nodeType": "Return", - "src": "23255:29:10" - } - ] - }, - "documentation": "@dev given a smart token supply, reserve balance, reserve ratio and an amount of requested smart tokens,\ncalculates the amount of reserve tokens required for purchasing the given amount of smart tokens\n\t * Formula:\nreturn = _reserveBalance * (((_supply + _amount) / _supply) ^ (MAX_WEIGHT / _reserveRatio) - 1)\n\t * @param _supply smart token supply\n@param _reserveBalance reserve balance\n@param _reserveRatio reserve ratio, represented in ppm (2-2000000)\n@param _amount requested amount of smart tokens\n\t * @return reserve token amount", - "id": 8055, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "fundCost", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7958, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7951, - "name": "_supply", - "nodeType": "VariableDeclaration", - "scope": 8055, - "src": "22485:15:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7950, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "22485:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7953, - "name": "_reserveBalance", - "nodeType": "VariableDeclaration", - "scope": 8055, - "src": "22504:23:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7952, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "22504:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7955, - "name": "_reserveRatio", - "nodeType": "VariableDeclaration", - "scope": 8055, - "src": "22531:20:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 7954, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "22531:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7957, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 8055, - "src": "22555:15:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7956, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "22555:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "22481:92:10" - }, - "payable": false, - "returnParameters": { - "id": 7961, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7960, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 8055, - "src": "22595:7:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7959, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "22595:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "22594:9:10" - }, - "scope": 11642, - "src": "22464:824:10", - "stateMutability": "view", - "superFunction": 12196, - "visibility": "public" - }, - { - "body": { - "id": 8149, - "nodeType": "Block", - "src": "24048:662:10", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8071, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8069, - "name": "_supply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8057, - "src": "24080:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 8070, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "24090:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "24080:11:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552525f494e56414c49445f535550504c59", - "id": 8072, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "24093:20:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_663f10355ba071616cc91891330bbbd56c18b20e7bda020baff58fa08722ec60", - "typeString": "literal_string \"ERR_INVALID_SUPPLY\"" - }, - "value": "ERR_INVALID_SUPPLY" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_663f10355ba071616cc91891330bbbd56c18b20e7bda020baff58fa08722ec60", - "typeString": "literal_string \"ERR_INVALID_SUPPLY\"" - } - ], - "id": 8068, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 22341, - 22342 - ], - "referencedDeclaration": 22342, - "src": "24072:7:10", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 8073, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "24072:42:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8074, - "nodeType": "ExpressionStatement", - "src": "24072:42:10" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8078, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8076, - "name": "_reserveBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8059, - "src": "24126:15:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 8077, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "24144:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "24126:19:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552525f494e56414c49445f524553455256455f42414c414e4345", - "id": 8079, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "24147:29:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_50b448733a1d57cdd008d269297c4a2f50984605cb59e986bc2d98cee971e78d", - "typeString": "literal_string \"ERR_INVALID_RESERVE_BALANCE\"" - }, - "value": "ERR_INVALID_RESERVE_BALANCE" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_50b448733a1d57cdd008d269297c4a2f50984605cb59e986bc2d98cee971e78d", - "typeString": "literal_string \"ERR_INVALID_RESERVE_BALANCE\"" - } - ], - "id": 8075, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 22341, - 22342 - ], - "referencedDeclaration": 22342, - "src": "24118:7:10", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 8080, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "24118:59:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8081, - "nodeType": "ExpressionStatement", - "src": "24118:59:10" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 8091, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "id": 8085, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8083, - "name": "_reserveRatio", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8061, - "src": "24189:13:10", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 8084, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "24205:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "24189:17:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "id": 8090, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8086, - "name": "_reserveRatio", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8061, - "src": "24210:13:10", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "id": 8089, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8087, - "name": "MAX_WEIGHT", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6228, - "src": "24227:10:10", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "hexValue": "32", - "id": 8088, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "24240:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "src": "24227:14:10", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "src": "24210:31:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "24189:52:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552525f494e56414c49445f524553455256455f524154494f", - "id": 8092, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "24243:27:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_8a8172d57fd89f78d9ce572e7618cbce6e9962212a6741dcc1911f87bc706d73", - "typeString": "literal_string \"ERR_INVALID_RESERVE_RATIO\"" - }, - "value": "ERR_INVALID_RESERVE_RATIO" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_8a8172d57fd89f78d9ce572e7618cbce6e9962212a6741dcc1911f87bc706d73", - "typeString": "literal_string \"ERR_INVALID_RESERVE_RATIO\"" - } - ], - "id": 8082, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 22341, - 22342 - ], - "referencedDeclaration": 22342, - "src": "24181:7:10", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 8093, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "24181:90:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8094, - "nodeType": "ExpressionStatement", - "src": "24181:90:10" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8097, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8095, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8063, - "src": "24311:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 8096, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "24322:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "24311:12:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 8100, - "nodeType": "IfStatement", - "src": "24307:26:10", - "trueBody": { - "expression": { - "argumentTypes": null, - "hexValue": "30", - "id": 8098, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "24332:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "functionReturnParameters": 8067, - "id": 8099, - "nodeType": "Return", - "src": "24325:8:10" - } - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "id": 8103, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8101, - "name": "_reserveRatio", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8061, - "src": "24388:13:10", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 8102, - "name": "MAX_WEIGHT", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6228, - "src": "24405:10:10", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "src": "24388:27:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 8111, - "nodeType": "IfStatement", - "src": "24384:78:10", - "trueBody": { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8109, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8106, - "name": "_supply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8057, - "src": "24436:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 8104, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8063, - "src": "24424:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8105, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 21791, - "src": "24424:11:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 8107, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "24424:20:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 8108, - "name": "_reserveBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8059, - "src": "24447:15:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "24424:38:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 8067, - "id": 8110, - "nodeType": "Return", - "src": "24417:45:10" - } - }, - { - "assignments": [], - "declarations": [ - { - "constant": false, - "id": 8113, - "name": "result", - "nodeType": "VariableDeclaration", - "scope": 8150, - "src": "24467:14:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8112, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24467:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 8114, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "24467:14:10" - }, - { - "assignments": [], - "declarations": [ - { - "constant": false, - "id": 8116, - "name": "precision", - "nodeType": "VariableDeclaration", - "scope": 8150, - "src": "24485:15:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 8115, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "24485:5:10", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 8117, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "24485:15:10" - }, - { - "assignments": [ - 8119 - ], - "declarations": [ - { - "constant": false, - "id": 8119, - "name": "baseN", - "nodeType": "VariableDeclaration", - "scope": 8150, - "src": "24504:13:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8118, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24504:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 8124, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8122, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8063, - "src": "24540:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 8120, - "name": "_reserveBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8059, - "src": "24520:15:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8121, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 21737, - "src": "24520:19:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 8123, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "24520:28:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "24504:44:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 8134, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "id": 8125, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8113, - "src": "24553:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 8126, - "name": "precision", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8116, - "src": "24561:9:10", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - } - ], - "id": 8127, - "isConstant": false, - "isInlineArray": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "TupleExpression", - "src": "24552:19:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint8_$", - "typeString": "tuple(uint256,uint8)" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8129, - "name": "baseN", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8119, - "src": "24580:5:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 8130, - "name": "_reserveBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8059, - "src": "24587:15:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 8131, - "name": "_reserveRatio", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8061, - "src": "24604:13:10", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - { - "argumentTypes": null, - "id": 8132, - "name": "MAX_WEIGHT", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6228, - "src": "24619:10:10", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - ], - "id": 8128, - "name": "power", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8457, - "src": "24574:5:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint256_$_t_uint32_$_t_uint32_$returns$_t_uint256_$_t_uint8_$", - "typeString": "function (uint256,uint256,uint32,uint32) view returns (uint256,uint8)" - } - }, - "id": 8133, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "24574:56:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint8_$", - "typeString": "tuple(uint256,uint8)" - } - }, - "src": "24552:78:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8135, - "nodeType": "ExpressionStatement", - "src": "24552:78:10" - }, - { - "assignments": [ - 8137 - ], - "declarations": [ - { - "constant": false, - "id": 8137, - "name": "temp", - "nodeType": "VariableDeclaration", - "scope": 8150, - "src": "24634:12:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8136, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24634:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 8144, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8143, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8140, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8113, - "src": "24661:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 8138, - "name": "_supply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8057, - "src": "24649:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8139, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 21791, - "src": "24649:11:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 8141, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "24649:19:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">>", - "rightExpression": { - "argumentTypes": null, - "id": 8142, - "name": "precision", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8116, - "src": "24672:9:10", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "24649:32:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "24634:47:10" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8147, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8145, - "name": "temp", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8137, - "src": "24692:4:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "id": 8146, - "name": "_supply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8057, - "src": "24699:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "24692:14:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 8067, - "id": 8148, - "nodeType": "Return", - "src": "24685:21:10" - } - ] - }, - "documentation": "@dev given a smart token supply, reserve balance, reserve ratio and an amount of reserve tokens to fund with,\ncalculates the amount of smart tokens received for purchasing with the given amount of reserve tokens\n\t * Formula:\nreturn = _supply * ((_amount / _reserveBalance + 1) ^ (_reserveRatio / MAX_WEIGHT) - 1)\n\t * @param _supply smart token supply\n@param _reserveBalance reserve balance\n@param _reserveRatio reserve ratio, represented in ppm (2-2000000)\n@param _amount amount of reserve tokens to fund with\n\t * @return smart token amount", - "id": 8150, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "fundSupplyAmount", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 8064, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8057, - "name": "_supply", - "nodeType": "VariableDeclaration", - "scope": 8150, - "src": "23929:15:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8056, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "23929:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8059, - "name": "_reserveBalance", - "nodeType": "VariableDeclaration", - "scope": 8150, - "src": "23948:23:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8058, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "23948:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8061, - "name": "_reserveRatio", - "nodeType": "VariableDeclaration", - "scope": 8150, - "src": "23975:20:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 8060, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "23975:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8063, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 8150, - "src": "23999:15:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8062, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "23999:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "23925:92:10" - }, - "payable": false, - "returnParameters": { - "id": 8067, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8066, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 8150, - "src": "24039:7:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8065, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24039:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "24038:9:10" - }, - "scope": 11642, - "src": "23900:810:10", - "stateMutability": "view", - "superFunction": 12209, - "visibility": "public" - }, - { - "body": { - "id": 8263, - "nodeType": "Block", - "src": "25474:853:10", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8166, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8164, - "name": "_supply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8152, - "src": "25506:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 8165, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "25516:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "25506:11:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552525f494e56414c49445f535550504c59", - "id": 8167, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "25519:20:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_663f10355ba071616cc91891330bbbd56c18b20e7bda020baff58fa08722ec60", - "typeString": "literal_string \"ERR_INVALID_SUPPLY\"" - }, - "value": "ERR_INVALID_SUPPLY" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_663f10355ba071616cc91891330bbbd56c18b20e7bda020baff58fa08722ec60", - "typeString": "literal_string \"ERR_INVALID_SUPPLY\"" - } - ], - "id": 8163, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 22341, - 22342 - ], - "referencedDeclaration": 22342, - "src": "25498:7:10", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 8168, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "25498:42:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8169, - "nodeType": "ExpressionStatement", - "src": "25498:42:10" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8173, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8171, - "name": "_reserveBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8154, - "src": "25552:15:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 8172, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "25570:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "25552:19:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552525f494e56414c49445f524553455256455f42414c414e4345", - "id": 8174, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "25573:29:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_50b448733a1d57cdd008d269297c4a2f50984605cb59e986bc2d98cee971e78d", - "typeString": "literal_string \"ERR_INVALID_RESERVE_BALANCE\"" - }, - "value": "ERR_INVALID_RESERVE_BALANCE" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_50b448733a1d57cdd008d269297c4a2f50984605cb59e986bc2d98cee971e78d", - "typeString": "literal_string \"ERR_INVALID_RESERVE_BALANCE\"" - } - ], - "id": 8170, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 22341, - 22342 - ], - "referencedDeclaration": 22342, - "src": "25544:7:10", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 8175, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "25544:59:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8176, - "nodeType": "ExpressionStatement", - "src": "25544:59:10" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 8186, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "id": 8180, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8178, - "name": "_reserveRatio", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8156, - "src": "25615:13:10", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 8179, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "25631:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "25615:17:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "id": 8185, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8181, - "name": "_reserveRatio", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8156, - "src": "25636:13:10", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "id": 8184, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8182, - "name": "MAX_WEIGHT", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6228, - "src": "25653:10:10", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "hexValue": "32", - "id": 8183, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "25666:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "src": "25653:14:10", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "src": "25636:31:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "25615:52:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552525f494e56414c49445f524553455256455f524154494f", - "id": 8187, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "25669:27:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_8a8172d57fd89f78d9ce572e7618cbce6e9962212a6741dcc1911f87bc706d73", - "typeString": "literal_string \"ERR_INVALID_RESERVE_RATIO\"" - }, - "value": "ERR_INVALID_RESERVE_RATIO" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_8a8172d57fd89f78d9ce572e7618cbce6e9962212a6741dcc1911f87bc706d73", - "typeString": "literal_string \"ERR_INVALID_RESERVE_RATIO\"" - } - ], - "id": 8177, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 22341, - 22342 - ], - "referencedDeclaration": 22342, - "src": "25607:7:10", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 8188, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "25607:90:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8189, - "nodeType": "ExpressionStatement", - "src": "25607:90:10" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8193, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8191, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8158, - "src": "25709:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "id": 8192, - "name": "_supply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8152, - "src": "25720:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "25709:18:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552525f494e56414c49445f414d4f554e54", - "id": 8194, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "25729:20:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c44007bfe4e704be0ed1393660a827b4f88825f4b6fe1bc10cd38fc3fcb7d839", - "typeString": "literal_string \"ERR_INVALID_AMOUNT\"" - }, - "value": "ERR_INVALID_AMOUNT" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_c44007bfe4e704be0ed1393660a827b4f88825f4b6fe1bc10cd38fc3fcb7d839", - "typeString": "literal_string \"ERR_INVALID_AMOUNT\"" - } - ], - "id": 8190, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 22341, - 22342 - ], - "referencedDeclaration": 22342, - "src": "25701:7:10", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 8195, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "25701:49:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8196, - "nodeType": "ExpressionStatement", - "src": "25701:49:10" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8199, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8197, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8158, - "src": "25790:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 8198, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "25801:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "25790:12:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 8202, - "nodeType": "IfStatement", - "src": "25786:26:10", - "trueBody": { - "expression": { - "argumentTypes": null, - "hexValue": "30", - "id": 8200, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "25811:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "functionReturnParameters": 8162, - "id": 8201, - "nodeType": "Return", - "src": "25804:8:10" - } - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8205, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8203, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8158, - "src": "25873:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 8204, - "name": "_supply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8152, - "src": "25884:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "25873:18:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 8208, - "nodeType": "IfStatement", - "src": "25869:46:10", - "trueBody": { - "expression": { - "argumentTypes": null, - "id": 8206, - "name": "_reserveBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8154, - "src": "25900:15:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 8162, - "id": 8207, - "nodeType": "Return", - "src": "25893:22:10" - } - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "id": 8211, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8209, - "name": "_reserveRatio", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8156, - "src": "25970:13:10", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 8210, - "name": "MAX_WEIGHT", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6228, - "src": "25987:10:10", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "src": "25970:27:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 8219, - "nodeType": "IfStatement", - "src": "25966:78:10", - "trueBody": { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8217, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8214, - "name": "_reserveBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8154, - "src": "26018:15:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 8212, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8158, - "src": "26006:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8213, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 21791, - "src": "26006:11:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 8215, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "26006:28:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 8216, - "name": "_supply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8152, - "src": "26037:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "26006:38:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 8162, - "id": 8218, - "nodeType": "Return", - "src": "25999:45:10" - } - }, - { - "assignments": [], - "declarations": [ - { - "constant": false, - "id": 8221, - "name": "result", - "nodeType": "VariableDeclaration", - "scope": 8264, - "src": "26049:14:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8220, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "26049:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 8222, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "26049:14:10" - }, - { - "assignments": [], - "declarations": [ - { - "constant": false, - "id": 8224, - "name": "precision", - "nodeType": "VariableDeclaration", - "scope": 8264, - "src": "26067:15:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 8223, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "26067:5:10", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 8225, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "26067:15:10" - }, - { - "assignments": [ - 8227 - ], - "declarations": [ - { - "constant": false, - "id": 8227, - "name": "baseD", - "nodeType": "VariableDeclaration", - "scope": 8264, - "src": "26086:13:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8226, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "26086:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 8231, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8230, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8228, - "name": "_supply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8152, - "src": "26102:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "id": 8229, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8158, - "src": "26112:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "26102:17:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "26086:33:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 8241, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "id": 8232, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8221, - "src": "26124:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 8233, - "name": "precision", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8224, - "src": "26132:9:10", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - } - ], - "id": 8234, - "isConstant": false, - "isInlineArray": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "TupleExpression", - "src": "26123:19:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint8_$", - "typeString": "tuple(uint256,uint8)" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8236, - "name": "_supply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8152, - "src": "26151:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 8237, - "name": "baseD", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8227, - "src": "26160:5:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 8238, - "name": "MAX_WEIGHT", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6228, - "src": "26167:10:10", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - { - "argumentTypes": null, - "id": 8239, - "name": "_reserveRatio", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8156, - "src": "26179:13:10", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - ], - "id": 8235, - "name": "power", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8457, - "src": "26145:5:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint256_$_t_uint32_$_t_uint32_$returns$_t_uint256_$_t_uint8_$", - "typeString": "function (uint256,uint256,uint32,uint32) view returns (uint256,uint8)" - } - }, - "id": 8240, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "26145:48:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint8_$", - "typeString": "tuple(uint256,uint8)" - } - }, - "src": "26123:70:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8242, - "nodeType": "ExpressionStatement", - "src": "26123:70:10" - }, - { - "assignments": [ - 8244 - ], - "declarations": [ - { - "constant": false, - "id": 8244, - "name": "temp1", - "nodeType": "VariableDeclaration", - "scope": 8264, - "src": "26197:13:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8243, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "26197:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 8249, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8247, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8221, - "src": "26233:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 8245, - "name": "_reserveBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8154, - "src": "26213:15:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8246, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 21791, - "src": "26213:19:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 8248, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "26213:27:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "26197:43:10" - }, - { - "assignments": [ - 8251 - ], - "declarations": [ - { - "constant": false, - "id": 8251, - "name": "temp2", - "nodeType": "VariableDeclaration", - "scope": 8264, - "src": "26244:13:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8250, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "26244:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 8255, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8254, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8252, - "name": "_reserveBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8154, - "src": "26260:15:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<<", - "rightExpression": { - "argumentTypes": null, - "id": 8253, - "name": "precision", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8224, - "src": "26279:9:10", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "26260:28:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "26244:44:10" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8261, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8258, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8256, - "name": "temp1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8244, - "src": "26300:5:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "id": 8257, - "name": "temp2", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8251, - "src": "26308:5:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "26300:13:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 8259, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "26299:15:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 8260, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8221, - "src": "26317:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "26299:24:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 8162, - "id": 8262, - "nodeType": "Return", - "src": "26292:31:10" - } - ] - }, - "documentation": "@dev given a smart token supply, reserve balance, reserve ratio and an amount of smart tokens to liquidate,\ncalculates the amount of reserve tokens received for selling the given amount of smart tokens\n\t * Formula:\nreturn = _reserveBalance * (1 - ((_supply - _amount) / _supply) ^ (MAX_WEIGHT / _reserveRatio))\n\t * @param _supply smart token supply\n@param _reserveBalance reserve balance\n@param _reserveRatio reserve ratio, represented in ppm (2-2000000)\n@param _amount amount of smart tokens to liquidate\n\t * @return reserve token amount", - "id": 8264, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "liquidateReserveAmount", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 8159, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8152, - "name": "_supply", - "nodeType": "VariableDeclaration", - "scope": 8264, - "src": "25355:15:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8151, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25355:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8154, - "name": "_reserveBalance", - "nodeType": "VariableDeclaration", - "scope": 8264, - "src": "25374:23:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8153, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25374:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8156, - "name": "_reserveRatio", - "nodeType": "VariableDeclaration", - "scope": 8264, - "src": "25401:20:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 8155, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "25401:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8158, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 8264, - "src": "25425:15:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8157, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25425:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "25351:92:10" - }, - "payable": false, - "returnParameters": { - "id": 8162, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8161, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 8264, - "src": "25465:7:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8160, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25465:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "25464:9:10" - }, - "scope": 11642, - "src": "25320:1007:10", - "stateMutability": "view", - "superFunction": 12222, - "visibility": "public" - }, - { - "body": { - "id": 8365, - "nodeType": "Block", - "src": "28704:924:10", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8283, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8281, - "name": "_primaryReserveStakedBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8266, - "src": "28712:28:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 8282, - "name": "_primaryReserveBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8268, - "src": "28744:22:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "28712:54:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 8306, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 8302, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8298, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8296, - "name": "_primaryReserveStakedBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8266, - "src": "28892:28:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 8297, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "28923:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "28892:32:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8301, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8299, - "name": "_primaryReserveBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8268, - "src": "28928:22:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 8300, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "28953:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "28928:26:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "28892:62:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8305, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8303, - "name": "_secondaryReserveBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8270, - "src": "28958:24:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 8304, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "28985:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "28958:28:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "28892:94:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552525f494e56414c49445f524553455256455f42414c414e4345", - "id": 8307, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "28988:29:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_50b448733a1d57cdd008d269297c4a2f50984605cb59e986bc2d98cee971e78d", - "typeString": "literal_string \"ERR_INVALID_RESERVE_BALANCE\"" - }, - "value": "ERR_INVALID_RESERVE_BALANCE" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_50b448733a1d57cdd008d269297c4a2f50984605cb59e986bc2d98cee971e78d", - "typeString": "literal_string \"ERR_INVALID_RESERVE_BALANCE\"" - } - ], - "id": 8295, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 22341, - 22342 - ], - "referencedDeclaration": 22342, - "src": "28884:7:10", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 8308, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28884:134:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8309, - "nodeType": "ExpressionStatement", - "src": "28884:134:10" - }, - "id": 8310, - "nodeType": "IfStatement", - "src": "28708:310:10", - "trueBody": { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 8291, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8287, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8285, - "name": "_primaryReserveStakedBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8266, - "src": "28779:28:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 8286, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "28810:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "28779:32:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8290, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8288, - "name": "_secondaryReserveBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8270, - "src": "28815:24:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 8289, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "28842:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "28815:28:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "28779:64:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552525f494e56414c49445f524553455256455f42414c414e4345", - "id": 8292, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "28845:29:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_50b448733a1d57cdd008d269297c4a2f50984605cb59e986bc2d98cee971e78d", - "typeString": "literal_string \"ERR_INVALID_RESERVE_BALANCE\"" - }, - "value": "ERR_INVALID_RESERVE_BALANCE" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_50b448733a1d57cdd008d269297c4a2f50984605cb59e986bc2d98cee971e78d", - "typeString": "literal_string \"ERR_INVALID_RESERVE_BALANCE\"" - } - ], - "id": 8284, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 22341, - 22342 - ], - "referencedDeclaration": 22342, - "src": "28771:7:10", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 8293, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28771:104:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8294, - "nodeType": "ExpressionStatement", - "src": "28771:104:10" - } - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 8318, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8314, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8312, - "name": "_reserveRateNumerator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8272, - "src": "29030:21:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 8313, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "29054:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "29030:25:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8317, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8315, - "name": "_reserveRateDenominator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8274, - "src": "29059:23:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 8316, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "29085:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "29059:27:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "29030:56:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552525f494e56414c49445f524553455256455f52415445", - "id": 8319, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "29088:26:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_ef2ffbf1bb88550d8f6c1cbc448ef8c9b658c0125c3eaac6dd7d95fb505ee813", - "typeString": "literal_string \"ERR_INVALID_RESERVE_RATE\"" - }, - "value": "ERR_INVALID_RESERVE_RATE" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_ef2ffbf1bb88550d8f6c1cbc448ef8c9b658c0125c3eaac6dd7d95fb505ee813", - "typeString": "literal_string \"ERR_INVALID_RESERVE_RATE\"" - } - ], - "id": 8311, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 22341, - 22342 - ], - "referencedDeclaration": 22342, - "src": "29022:7:10", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 8320, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "29022:93:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8321, - "nodeType": "ExpressionStatement", - "src": "29022:93:10" - }, - { - "assignments": [ - 8323 - ], - "declarations": [ - { - "constant": false, - "id": 8323, - "name": "tq", - "nodeType": "VariableDeclaration", - "scope": 8366, - "src": "29120:10:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8322, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "29120:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 8328, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8326, - "name": "_reserveRateNumerator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8272, - "src": "29166:21:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 8324, - "name": "_primaryReserveStakedBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8266, - "src": "29133:28:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8325, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 21791, - "src": "29133:32:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 8327, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "29133:55:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "29120:68:10" - }, - { - "assignments": [ - 8330 - ], - "declarations": [ - { - "constant": false, - "id": 8330, - "name": "rp", - "nodeType": "VariableDeclaration", - "scope": 8366, - "src": "29192:10:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8329, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "29192:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 8335, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8333, - "name": "_reserveRateDenominator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8274, - "src": "29234:23:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 8331, - "name": "_secondaryReserveBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8270, - "src": "29205:24:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8332, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 21791, - "src": "29205:28:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 8334, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "29205:53:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "29192:66:10" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8338, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8336, - "name": "_primaryReserveStakedBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8266, - "src": "29267:28:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "id": 8337, - "name": "_primaryReserveBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8268, - "src": "29298:22:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "29267:53:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 8347, - "nodeType": "IfStatement", - "src": "29263:159:10", - "trueBody": { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8340, - "name": "_primaryReserveBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8268, - "src": "29355:22:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 8341, - "name": "_primaryReserveStakedBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8266, - "src": "29379:28:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 8342, - "name": "tq", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8323, - "src": "29409:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 8343, - "name": "rp", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8330, - "src": "29413:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "hexValue": "74727565", - "id": 8344, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "29417:4:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 8339, - "name": "balancedWeightsByStake", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11225, - "src": "29332:22:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_bool_$returns$_t_uint32_$_t_uint32_$", - "typeString": "function (uint256,uint256,uint256,uint256,bool) view returns (uint32,uint32)" - } - }, - "id": 8345, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "29332:90:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint32_$_t_uint32_$", - "typeString": "tuple(uint32,uint32)" - } - }, - "functionReturnParameters": 8280, - "id": 8346, - "nodeType": "Return", - "src": "29325:97:10" - } - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8350, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8348, - "name": "_primaryReserveStakedBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8266, - "src": "29431:28:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "id": 8349, - "name": "_primaryReserveBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8268, - "src": "29462:22:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "29431:53:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 8359, - "nodeType": "IfStatement", - "src": "29427:160:10", - "trueBody": { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8352, - "name": "_primaryReserveStakedBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8266, - "src": "29519:28:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 8353, - "name": "_primaryReserveBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8268, - "src": "29549:22:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 8354, - "name": "tq", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8323, - "src": "29573:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 8355, - "name": "rp", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8330, - "src": "29577:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 8356, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "29581:5:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 8351, - "name": "balancedWeightsByStake", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11225, - "src": "29496:22:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_bool_$returns$_t_uint32_$_t_uint32_$", - "typeString": "function (uint256,uint256,uint256,uint256,bool) view returns (uint32,uint32)" - } - }, - "id": 8357, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "29496:91:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint32_$_t_uint32_$", - "typeString": "tuple(uint32,uint32)" - } - }, - "functionReturnParameters": 8280, - "id": 8358, - "nodeType": "Return", - "src": "29489:98:10" - } - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8361, - "name": "tq", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8323, - "src": "29617:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 8362, - "name": "rp", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8330, - "src": "29621:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 8360, - "name": "normalizedWeights", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11334, - "src": "29599:17:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint32_$_t_uint32_$", - "typeString": "function (uint256,uint256) pure returns (uint32,uint32)" - } - }, - "id": 8363, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "29599:25:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint32_$_t_uint32_$", - "typeString": "tuple(uint32,uint32)" - } - }, - "functionReturnParameters": 8280, - "id": 8364, - "nodeType": "Return", - "src": "29592:32:10" - } - ] - }, - "documentation": "@dev The arbitrage incentive is to convert to the point where the on-chain price is equal to the off-chain price.\nWe want this operation to also impact the primary reserve balance becoming equal to the primary reserve staked balance.\nIn other words, we want the arbitrager to convert the difference between the reserve balance and the reserve staked balance.\n\t * Formula input:\n- let t denote the primary reserve token staked balance\n- let s denote the primary reserve token balance\n- let r denote the secondary reserve token balance\n- let q denote the numerator of the rate between the tokens\n- let p denote the denominator of the rate between the tokens\nWhere p primary tokens are equal to q secondary tokens\n\t * Formula output:\n- compute x = W(t / r * q / p * log(s / t)) / log(s / t)\n- return x / (1 + x) as the weight of the primary reserve token\n- return 1 / (1 + x) as the weight of the secondary reserve token\nWhere W is the Lambert W Function\n\t * If the rate-provider provides the rates for a common unit, for example:\n- P = 2 ==> 2 primary reserve tokens = 1 ether\n- Q = 3 ==> 3 secondary reserve tokens = 1 ether\nThen you can simply use p = P and q = Q\n\t * If the rate-provider provides the rates for a single unit, for example:\n- P = 2 ==> 1 primary reserve token = 2 ethers\n- Q = 3 ==> 1 secondary reserve token = 3 ethers\nThen you can simply use p = Q and q = P\n\t * @param _primaryReserveStakedBalance the primary reserve token staked balance\n@param _primaryReserveBalance the primary reserve token balance\n@param _secondaryReserveBalance the secondary reserve token balance\n@param _reserveRateNumerator the numerator of the rate between the tokens\n@param _reserveRateDenominator the denominator of the rate between the tokens\n\t * Note that `numerator / denominator` should represent the amount of secondary tokens equal to one primary token\n\t * @return the weight of the primary reserve token and the weight of the secondary reserve token, both in ppm (0-1000000)", - "id": 8366, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "balancedWeights", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 8275, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8266, - "name": "_primaryReserveStakedBalance", - "nodeType": "VariableDeclaration", - "scope": 8366, - "src": "28489:36:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8265, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "28489:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8268, - "name": "_primaryReserveBalance", - "nodeType": "VariableDeclaration", - "scope": 8366, - "src": "28529:30:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8267, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "28529:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8270, - "name": "_secondaryReserveBalance", - "nodeType": "VariableDeclaration", - "scope": 8366, - "src": "28563:32:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8269, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "28563:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8272, - "name": "_reserveRateNumerator", - "nodeType": "VariableDeclaration", - "scope": 8366, - "src": "28599:29:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8271, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "28599:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8274, - "name": "_reserveRateDenominator", - "nodeType": "VariableDeclaration", - "scope": 8366, - "src": "28632:31:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8273, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "28632:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "28485:181:10" - }, - "payable": false, - "returnParameters": { - "id": 8280, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8277, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 8366, - "src": "28688:6:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 8276, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "28688:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8279, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 8366, - "src": "28696:6:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 8278, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "28696:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "28687:16:10" - }, - "scope": 11642, - "src": "28461:1167:10", - "stateMutability": "view", - "superFunction": 12239, - "visibility": "public" - }, - { - "body": { - "id": 8456, - "nodeType": "Block", - "src": "31251:537:10", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8384, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8382, - "name": "_baseN", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8368, - "src": "31263:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "id": 8383, - "name": "MAX_NUM", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6243, - "src": "31272:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "31263:16:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 8381, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 22341, - 22342 - ], - "referencedDeclaration": 22341, - "src": "31255:7:10", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 8385, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "31255:25:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8386, - "nodeType": "ExpressionStatement", - "src": "31255:25:10" - }, - { - "assignments": [], - "declarations": [ - { - "constant": false, - "id": 8388, - "name": "baseLog", - "nodeType": "VariableDeclaration", - "scope": 8457, - "src": "31285:15:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8387, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "31285:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 8389, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "31285:15:10" - }, - { - "assignments": [ - 8391 - ], - "declarations": [ - { - "constant": false, - "id": 8391, - "name": "base", - "nodeType": "VariableDeclaration", - "scope": 8457, - "src": "31304:12:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8390, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "31304:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 8398, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8397, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8394, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8392, - "name": "_baseN", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8368, - "src": "31320:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 8393, - "name": "FIXED_1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6237, - "src": "31329:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "31320:16:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 8395, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "31319:18:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 8396, - "name": "_baseD", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8370, - "src": "31340:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "31319:27:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "31304:42:10" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8401, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8399, - "name": "base", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8391, - "src": "31354:4:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "id": 8400, - "name": "OPT_LOG_MAX_VAL", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6252, - "src": "31361:15:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "31354:22:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 8415, - "nodeType": "Block", - "src": "31420:36:10", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 8413, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 8409, - "name": "baseLog", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8388, - "src": "31425:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8411, - "name": "base", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8391, - "src": "31446:4:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 8410, - "name": "generalLog", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8543, - "src": "31435:10:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256) pure returns (uint256)" - } - }, - "id": 8412, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "31435:16:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "31425:26:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8414, - "nodeType": "ExpressionStatement", - "src": "31425:26:10" - } - ] - }, - "id": 8416, - "nodeType": "IfStatement", - "src": "31350:106:10", - "trueBody": { - "id": 8408, - "nodeType": "Block", - "src": "31378:36:10", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 8406, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 8402, - "name": "baseLog", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8388, - "src": "31383:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8404, - "name": "base", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8391, - "src": "31404:4:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 8403, - "name": "optimalLog", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9523, - "src": "31393:10:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256) pure returns (uint256)" - } - }, - "id": 8405, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "31393:16:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "31383:26:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8407, - "nodeType": "ExpressionStatement", - "src": "31383:26:10" - } - ] - } - }, - { - "assignments": [ - 8418 - ], - "declarations": [ - { - "constant": false, - "id": 8418, - "name": "baseLogTimesExp", - "nodeType": "VariableDeclaration", - "scope": 8457, - "src": "31460:23:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8417, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "31460:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 8425, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8424, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8421, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8419, - "name": "baseLog", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8388, - "src": "31487:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 8420, - "name": "_expN", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8372, - "src": "31497:5:10", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "src": "31487:15:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 8422, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "31486:17:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 8423, - "name": "_expD", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8374, - "src": "31506:5:10", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "src": "31486:25:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "31460:51:10" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8428, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8426, - "name": "baseLogTimesExp", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8418, - "src": "31519:15:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "id": 8427, - "name": "OPT_EXP_MAX_VAL", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6255, - "src": "31537:15:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "31519:33:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 8454, - "nodeType": "Block", - "src": "31621:164:10", - "statements": [ - { - "assignments": [ - 8437 - ], - "declarations": [ - { - "constant": false, - "id": 8437, - "name": "precision", - "nodeType": "VariableDeclaration", - "scope": 8457, - "src": "31626:15:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 8436, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "31626:5:10", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 8441, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8439, - "name": "baseLogTimesExp", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8418, - "src": "31670:15:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 8438, - "name": "findPositionInMaxExpArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8671, - "src": "31644:25:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint8_$", - "typeString": "function (uint256) view returns (uint8)" - } - }, - "id": 8440, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "31644:42:10", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "31626:60:10" - }, - { - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8448, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8443, - "name": "baseLogTimesExp", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8418, - "src": "31710:15:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">>", - "rightExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "id": 8446, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8444, - "name": "MAX_PRECISION", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6234, - "src": "31730:13:10", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "id": 8445, - "name": "precision", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8437, - "src": "31746:9:10", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "31730:25:10", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - } - ], - "id": 8447, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "31729:27:10", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "31710:46:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 8449, - "name": "precision", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8437, - "src": "31758:9:10", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - ], - "id": 8442, - "name": "generalExp", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9180, - "src": "31699:10:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint8_$returns$_t_uint256_$", - "typeString": "function (uint256,uint8) pure returns (uint256)" - } - }, - "id": 8450, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "31699:69:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 8451, - "name": "precision", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8437, - "src": "31770:9:10", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - } - ], - "id": 8452, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "31698:82:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint8_$", - "typeString": "tuple(uint256,uint8)" - } - }, - "functionReturnParameters": 8380, - "id": 8453, - "nodeType": "Return", - "src": "31691:89:10" - } - ] - }, - "id": 8455, - "nodeType": "IfStatement", - "src": "31515:270:10", - "trueBody": { - "id": 8435, - "nodeType": "Block", - "src": "31554:61:10", - "statements": [ - { - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8430, - "name": "baseLogTimesExp", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8418, - "src": "31578:15:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 8429, - "name": "optimalExp", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9958, - "src": "31567:10:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256) pure returns (uint256)" - } - }, - "id": 8431, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "31567:27:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 8432, - "name": "MAX_PRECISION", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6234, - "src": "31596:13:10", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - } - ], - "id": 8433, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "31566:44:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint8_$", - "typeString": "tuple(uint256,uint8)" - } - }, - "functionReturnParameters": 8380, - "id": 8434, - "nodeType": "Return", - "src": "31559:51:10" - } - ] - } - } - ] - }, - "documentation": "@dev General Description:\n Determine a value of precision.\n Calculate an integer approximation of (_baseN / _baseD) ^ (_expN / _expD) * 2 ^ precision.\n Return the result along with the precision used.\n\t * Detailed Description:\n Instead of calculating \"base ^ exp\", we calculate \"e ^ (log(base) * exp)\".\n The value of \"log(base)\" is represented with an integer slightly smaller than \"log(base) * 2 ^ precision\".\n The larger \"precision\" is, the more accurately this value represents the real value.\n However, the larger \"precision\" is, the more bits are required in order to store this value.\n And the exponentiation function, which takes \"x\" and calculates \"e ^ x\", is limited to a maximum exponent (maximum value of \"x\").\n This maximum exponent depends on the \"precision\" used, and it is given by \"maxExpArray[precision] >> (MAX_PRECISION - precision)\".\n Hence we need to determine the highest precision which can be used for the given input, before calling the exponentiation function.\n This allows us to compute \"base ^ exp\" with maximum accuracy and without exceeding 256 bits in any of the intermediate computations.\n This functions assumes that \"_expN < 2 ^ 256 / log(MAX_NUM - 1)\", otherwise the multiplication should be replaced with a \"safeMul\".\n Since we rely on unsigned-integer arithmetic and \"base < 1\" ==> \"log(base) < 0\", this function does not support \"_baseN < _baseD\".", - "id": 8457, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "power", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 8375, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8368, - "name": "_baseN", - "nodeType": "VariableDeclaration", - "scope": 8457, - "src": "31144:14:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8367, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "31144:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8370, - "name": "_baseD", - "nodeType": "VariableDeclaration", - "scope": 8457, - "src": "31162:14:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8369, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "31162:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8372, - "name": "_expN", - "nodeType": "VariableDeclaration", - "scope": 8457, - "src": "31180:12:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 8371, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "31180:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8374, - "name": "_expD", - "nodeType": "VariableDeclaration", - "scope": 8457, - "src": "31196:12:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 8373, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "31196:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "31140:71:10" - }, - "payable": false, - "returnParameters": { - "id": 8380, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8377, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 8457, - "src": "31235:7:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8376, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "31235:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8379, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 8457, - "src": "31244:5:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 8378, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "31244:5:10", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "31234:16:10" - }, - "scope": 11642, - "src": "31126:662:10", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 8542, - "nodeType": "Block", - "src": "32006:578:10", - "statements": [ - { - "assignments": [ - 8465 - ], - "declarations": [ - { - "constant": false, - "id": 8465, - "name": "res", - "nodeType": "VariableDeclaration", - "scope": 8543, - "src": "32010:11:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8464, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "32010:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 8467, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 8466, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "32024:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "32010:15:10" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8470, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8468, - "name": "x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8459, - "src": "32119:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 8469, - "name": "FIXED_2", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6240, - "src": "32124:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "32119:12:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 8490, - "nodeType": "IfStatement", - "src": "32115:119:10", - "trueBody": { - "id": 8489, - "nodeType": "Block", - "src": "32133:101:10", - "statements": [ - { - "assignments": [ - 8472 - ], - "declarations": [ - { - "constant": false, - "id": 8472, - "name": "count", - "nodeType": "VariableDeclaration", - "scope": 8543, - "src": "32138:11:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 8471, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "32138:5:10", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 8478, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8476, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8474, - "name": "x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8459, - "src": "32162:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 8475, - "name": "FIXED_1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6237, - "src": "32166:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "32162:11:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 8473, - "name": "floorLog2", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8605, - "src": "32152:9:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint8_$", - "typeString": "function (uint256) pure returns (uint8)" - } - }, - "id": 8477, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "32152:22:10", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "32138:36:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 8481, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 8479, - "name": "x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8459, - "src": "32179:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": ">>=", - "rightHandSide": { - "argumentTypes": null, - "id": 8480, - "name": "count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8472, - "src": "32185:5:10", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "32179:11:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8482, - "nodeType": "ExpressionStatement", - "src": "32179:11:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 8487, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 8483, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8465, - "src": "32208:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8486, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8484, - "name": "count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8472, - "src": "32214:5:10", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 8485, - "name": "FIXED_1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6237, - "src": "32222:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "32214:15:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "32208:21:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8488, - "nodeType": "ExpressionStatement", - "src": "32208:21:10" - } - ] - } - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8493, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8491, - "name": "x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8459, - "src": "32327:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "id": 8492, - "name": "FIXED_1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6237, - "src": "32331:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "32327:11:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 8534, - "nodeType": "IfStatement", - "src": "32323:207:10", - "trueBody": { - "id": 8533, - "nodeType": "Block", - "src": "32340:190:10", - "statements": [ - { - "body": { - "id": 8531, - "nodeType": "Block", - "src": "32387:139:10", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 8511, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 8504, - "name": "x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8459, - "src": "32393:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8510, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8507, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8505, - "name": "x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8459, - "src": "32398:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 8506, - "name": "x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8459, - "src": "32402:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "32398:5:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 8508, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "32397:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 8509, - "name": "FIXED_1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6237, - "src": "32407:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "32397:17:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "32393:21:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8512, - "nodeType": "ExpressionStatement", - "src": "32393:21:10" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8515, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8513, - "name": "x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8459, - "src": "32441:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 8514, - "name": "FIXED_2", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6240, - "src": "32446:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "32441:12:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 8530, - "nodeType": "IfStatement", - "src": "32437:84:10", - "trueBody": { - "id": 8529, - "nodeType": "Block", - "src": "32455:66:10", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 8518, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 8516, - "name": "x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8459, - "src": "32462:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": ">>=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 8517, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "32468:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "32462:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8519, - "nodeType": "ExpressionStatement", - "src": "32462:7:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 8527, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 8520, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8465, - "src": "32493:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8526, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8521, - "name": "ONE", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6225, - "src": "32500:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<<", - "rightExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "id": 8524, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8522, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8495, - "src": "32508:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 8523, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "32512:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "32508:5:10", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - } - ], - "id": 8525, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "32507:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "32500:14:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "32493:21:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8528, - "nodeType": "ExpressionStatement", - "src": "32493:21:10" - } - ] - } - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "id": 8500, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8498, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8495, - "src": "32375:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 8499, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "32379:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "32375:5:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 8532, - "initializationExpression": { - "assignments": [ - 8495 - ], - "declarations": [ - { - "constant": false, - "id": 8495, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 8543, - "src": "32350:7:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 8494, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "32350:5:10", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 8497, - "initialValue": { - "argumentTypes": null, - "id": 8496, - "name": "MAX_PRECISION", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6234, - "src": "32360:13:10", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "32350:23:10" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 8502, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "--", - "prefix": true, - "src": "32382:3:10", - "subExpression": { - "argumentTypes": null, - "id": 8501, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8495, - "src": "32384:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "id": 8503, - "nodeType": "ExpressionStatement", - "src": "32382:3:10" - }, - "nodeType": "ForStatement", - "src": "32345:181:10" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8540, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8537, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8535, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8465, - "src": "32542:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 8536, - "name": "LN2_NUMERATOR", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6246, - "src": "32548:13:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "32542:19:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 8538, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "32541:21:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 8539, - "name": "LN2_DENOMINATOR", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6249, - "src": "32565:15:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "32541:39:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 8463, - "id": 8541, - "nodeType": "Return", - "src": "32534:46:10" - } - ] - }, - "documentation": "@dev computes log(x / FIXED_1) * FIXED_1.\nThis functions assumes that \"x >= FIXED_1\", because the output would be negative otherwise.", - "id": 8543, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "generalLog", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 8460, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8459, - "name": "x", - "nodeType": "VariableDeclaration", - "scope": 8543, - "src": "31963:9:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8458, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "31963:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "31962:11:10" - }, - "payable": false, - "returnParameters": { - "id": 8463, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8462, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 8543, - "src": "31997:7:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8461, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "31997:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "31996:9:10" - }, - "scope": 11642, - "src": "31943:641:10", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 8604, - "nodeType": "Block", - "src": "32756:287:10", - "statements": [ - { - "assignments": [ - 8551 - ], - "declarations": [ - { - "constant": false, - "id": 8551, - "name": "res", - "nodeType": "VariableDeclaration", - "scope": 8605, - "src": "32760:9:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 8550, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "32760:5:10", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 8553, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 8552, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "32772:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "32760:13:10" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8556, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8554, - "name": "_n", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8545, - "src": "32782:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "hexValue": "323536", - "id": 8555, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "32787:3:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_256_by_1", - "typeString": "int_const 256" - }, - "value": "256" - }, - "src": "32782:8:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 8600, - "nodeType": "Block", - "src": "32883:142:10", - "statements": [ - { - "body": { - "id": 8598, - "nodeType": "Block", - "src": "32951:70:10", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8587, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8582, - "name": "_n", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8545, - "src": "32961:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8585, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8583, - "name": "ONE", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6225, - "src": "32968:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<<", - "rightExpression": { - "argumentTypes": null, - "id": 8584, - "name": "s", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8572, - "src": "32975:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "32968:8:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 8586, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "32967:10:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "32961:16:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 8597, - "nodeType": "IfStatement", - "src": "32957:59:10", - "trueBody": { - "id": 8596, - "nodeType": "Block", - "src": "32979:37:10", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 8590, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 8588, - "name": "_n", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8545, - "src": "32986:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": ">>=", - "rightHandSide": { - "argumentTypes": null, - "id": 8589, - "name": "s", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8572, - "src": "32993:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "32986:8:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8591, - "nodeType": "ExpressionStatement", - "src": "32986:8:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 8594, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 8592, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8551, - "src": "33001:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "Assignment", - "operator": "|=", - "rightHandSide": { - "argumentTypes": null, - "id": 8593, - "name": "s", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8572, - "src": "33008:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "33001:8:10", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "id": 8595, - "nodeType": "ExpressionStatement", - "src": "33001:8:10" - } - ] - } - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "id": 8577, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8575, - "name": "s", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8572, - "src": "32935:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 8576, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "32939:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "32935:5:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 8599, - "initializationExpression": { - "assignments": [ - 8572 - ], - "declarations": [ - { - "constant": false, - "id": 8572, - "name": "s", - "nodeType": "VariableDeclaration", - "scope": 8605, - "src": "32920:7:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 8571, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "32920:5:10", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 8574, - "initialValue": { - "argumentTypes": null, - "hexValue": "313238", - "id": 8573, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "32930:3:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_128_by_1", - "typeString": "int_const 128" - }, - "value": "128" - }, - "nodeType": "VariableDeclarationStatement", - "src": "32920:13:10" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 8580, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 8578, - "name": "s", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8572, - "src": "32942:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "Assignment", - "operator": ">>=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 8579, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "32948:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "32942:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "id": 8581, - "nodeType": "ExpressionStatement", - "src": "32942:7:10" - }, - "nodeType": "ForStatement", - "src": "32915:106:10" - } - ] - }, - "id": 8601, - "nodeType": "IfStatement", - "src": "32778:247:10", - "trueBody": { - "id": 8570, - "nodeType": "Block", - "src": "32792:85:10", - "statements": [ - { - "body": { - "id": 8568, - "nodeType": "Block", - "src": "32839:34:10", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 8562, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 8560, - "name": "_n", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8545, - "src": "32845:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": ">>=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 8561, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "32852:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "32845:8:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8563, - "nodeType": "ExpressionStatement", - "src": "32845:8:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 8566, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 8564, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8551, - "src": "32859:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 8565, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "32866:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "32859:8:10", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "id": 8567, - "nodeType": "ExpressionStatement", - "src": "32859:8:10" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8559, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8557, - "name": "_n", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8545, - "src": "32831:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 8558, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "32836:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "32831:6:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 8569, - "nodeType": "WhileStatement", - "src": "32824:49:10" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "id": 8602, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8551, - "src": "33036:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "functionReturnParameters": 8549, - "id": 8603, - "nodeType": "Return", - "src": "33029:10:10" - } - ] - }, - "documentation": "@dev computes the largest integer smaller than or equal to the binary logarithm of the input.", - "id": 8605, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "floorLog2", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 8546, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8545, - "name": "_n", - "nodeType": "VariableDeclaration", - "scope": 8605, - "src": "32714:10:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8544, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "32714:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "32713:12:10" - }, - "payable": false, - "returnParameters": { - "id": 8549, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8548, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 8605, - "src": "32749:5:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 8547, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "32749:5:10", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "32748:7:10" - }, - "scope": 11642, - "src": "32695:348:10", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 8670, - "nodeType": "Block", - "src": "33466:278:10", - "statements": [ - { - "assignments": [ - 8613 - ], - "declarations": [ - { - "constant": false, - "id": 8613, - "name": "lo", - "nodeType": "VariableDeclaration", - "scope": 8671, - "src": "33470:8:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 8612, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "33470:5:10", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 8615, - "initialValue": { - "argumentTypes": null, - "id": 8614, - "name": "MIN_PRECISION", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6231, - "src": "33481:13:10", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "33470:24:10" - }, - { - "assignments": [ - 8617 - ], - "declarations": [ - { - "constant": false, - "id": 8617, - "name": "hi", - "nodeType": "VariableDeclaration", - "scope": 8671, - "src": "33498:8:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 8616, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "33498:5:10", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 8619, - "initialValue": { - "argumentTypes": null, - "id": 8618, - "name": "MAX_PRECISION", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6234, - "src": "33509:13:10", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "33498:24:10" - }, - { - "body": { - "id": 8648, - "nodeType": "Block", - "src": "33547:94:10", - "statements": [ - { - "assignments": [ - 8626 - ], - "declarations": [ - { - "constant": false, - "id": 8626, - "name": "mid", - "nodeType": "VariableDeclaration", - "scope": 8671, - "src": "33552:9:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 8625, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "33552:5:10", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 8633, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "id": 8632, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "id": 8629, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8627, - "name": "lo", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8613, - "src": "33565:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "id": 8628, - "name": "hi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8617, - "src": "33570:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "33565:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - } - ], - "id": 8630, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "33564:9:10", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "hexValue": "32", - "id": 8631, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "33576:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "src": "33564:13:10", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "33552:25:10" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8638, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 8634, - "name": "maxExpArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6274, - "src": "33586:11:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 8636, - "indexExpression": { - "argumentTypes": null, - "id": 8635, - "name": "mid", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8626, - "src": "33598:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "33586:16:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 8637, - "name": "_x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8607, - "src": "33606:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "33586:22:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "expression": { - "argumentTypes": null, - "id": 8645, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 8643, - "name": "hi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8617, - "src": "33628:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 8644, - "name": "mid", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8626, - "src": "33633:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "33628:8:10", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "id": 8646, - "nodeType": "ExpressionStatement", - "src": "33628:8:10" - }, - "id": 8647, - "nodeType": "IfStatement", - "src": "33582:54:10", - "trueBody": { - "expression": { - "argumentTypes": null, - "id": 8641, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 8639, - "name": "lo", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8613, - "src": "33610:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 8640, - "name": "mid", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8626, - "src": "33615:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "33610:8:10", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "id": 8642, - "nodeType": "ExpressionStatement", - "src": "33610:8:10" - } - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "id": 8624, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "id": 8622, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8620, - "name": "lo", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8613, - "src": "33534:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 8621, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "33539:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "33534:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "id": 8623, - "name": "hi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8617, - "src": "33543:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "33534:11:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 8649, - "nodeType": "WhileStatement", - "src": "33527:114:10" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8654, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 8650, - "name": "maxExpArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6274, - "src": "33649:11:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 8652, - "indexExpression": { - "argumentTypes": null, - "id": 8651, - "name": "hi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8617, - "src": "33661:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "33649:15:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 8653, - "name": "_x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8607, - "src": "33668:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "33649:21:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 8657, - "nodeType": "IfStatement", - "src": "33645:36:10", - "trueBody": { - "expression": { - "argumentTypes": null, - "id": 8655, - "name": "hi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8617, - "src": "33679:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "functionReturnParameters": 8611, - "id": 8656, - "nodeType": "Return", - "src": "33672:9:10" - } - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8662, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 8658, - "name": "maxExpArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6274, - "src": "33689:11:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 8660, - "indexExpression": { - "argumentTypes": null, - "id": 8659, - "name": "lo", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8613, - "src": "33701:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "33689:15:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 8661, - "name": "_x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8607, - "src": "33708:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "33689:21:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 8665, - "nodeType": "IfStatement", - "src": "33685:36:10", - "trueBody": { - "expression": { - "argumentTypes": null, - "id": 8663, - "name": "lo", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8613, - "src": "33719:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "functionReturnParameters": 8611, - "id": 8664, - "nodeType": "Return", - "src": "33712:9:10" - } - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 8667, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "33734:5:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 8666, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 22341, - 22342 - ], - "referencedDeclaration": 22341, - "src": "33726:7:10", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 8668, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "33726:14:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8669, - "nodeType": "ExpressionStatement", - "src": "33726:14:10" - } - ] - }, - "documentation": "@dev the global \"maxExpArray\" is sorted in descending order, and therefore the following statements are equivalent:\n- This function finds the position of [the smallest value in \"maxExpArray\" larger than or equal to \"x\"]\n- This function finds the highest position of [a value in \"maxExpArray\" larger than or equal to \"x\"]", - "id": 8671, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "findPositionInMaxExpArray", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 8608, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8607, - "name": "_x", - "nodeType": "VariableDeclaration", - "scope": 8671, - "src": "33424:10:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8606, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "33424:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "33423:12:10" - }, - "payable": false, - "returnParameters": { - "id": 8611, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8610, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 8671, - "src": "33459:5:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 8609, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "33459:5:10", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "33458:7:10" - }, - "scope": 11642, - "src": "33389:355:10", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 9179, - "nodeType": "Block", - "src": "34361:3595:10", - "statements": [ - { - "assignments": [ - 8681 - ], - "declarations": [ - { - "constant": false, - "id": 8681, - "name": "xi", - "nodeType": "VariableDeclaration", - "scope": 9180, - "src": "34365:10:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8680, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "34365:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 8683, - "initialValue": { - "argumentTypes": null, - "id": 8682, - "name": "_x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8673, - "src": "34378:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "34365:15:10" - }, - { - "assignments": [ - 8685 - ], - "declarations": [ - { - "constant": false, - "id": 8685, - "name": "res", - "nodeType": "VariableDeclaration", - "scope": 9180, - "src": "34384:11:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8684, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "34384:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 8687, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 8686, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "34398:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "34384:15:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 8695, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 8688, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8681, - "src": "34404:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8694, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8691, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8689, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8681, - "src": "34410:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 8690, - "name": "_x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8673, - "src": "34415:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "34410:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 8692, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "34409:9:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">>", - "rightExpression": { - "argumentTypes": null, - "id": 8693, - "name": "_precision", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8675, - "src": "34422:10:10", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "34409:23:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "34404:28:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8696, - "nodeType": "ExpressionStatement", - "src": "34404:28:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 8701, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 8697, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8685, - "src": "34436:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8700, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8698, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8681, - "src": "34443:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "hexValue": "307833343432633465363037346138326631373937663732616330303030303030", - "id": 8699, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "34448:33:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_4341658809405943247759097200640000000_by_1", - "typeString": "int_const 4341...(29 digits omitted)...0000" - }, - "value": "0x3442c4e6074a82f1797f72ac0000000" - }, - "src": "34443:38:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "34436:45:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8702, - "nodeType": "ExpressionStatement", - "src": "34436:45:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 8710, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 8703, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8681, - "src": "34511:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8709, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8706, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8704, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8681, - "src": "34517:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 8705, - "name": "_x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8673, - "src": "34522:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "34517:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 8707, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "34516:9:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">>", - "rightExpression": { - "argumentTypes": null, - "id": 8708, - "name": "_precision", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8675, - "src": "34529:10:10", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "34516:23:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "34511:28:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8711, - "nodeType": "ExpressionStatement", - "src": "34511:28:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 8716, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 8712, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8685, - "src": "34543:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8715, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8713, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8681, - "src": "34550:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "hexValue": "307831313662393666373537633338306662323837666430653430303030303030", - "id": 8714, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "34555:33:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1447219603135314415919699066880000000_by_1", - "typeString": "int_const 1447...(29 digits omitted)...0000" - }, - "value": "0x116b96f757c380fb287fd0e40000000" - }, - "src": "34550:38:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "34543:45:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8717, - "nodeType": "ExpressionStatement", - "src": "34543:45:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 8725, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 8718, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8681, - "src": "34618:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8724, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8721, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8719, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8681, - "src": "34624:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 8720, - "name": "_x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8673, - "src": "34629:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "34624:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 8722, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "34623:9:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">>", - "rightExpression": { - "argumentTypes": null, - "id": 8723, - "name": "_precision", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8675, - "src": "34636:10:10", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "34623:23:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "34618:28:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8726, - "nodeType": "ExpressionStatement", - "src": "34618:28:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 8731, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 8727, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8685, - "src": "34650:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8730, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8728, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8681, - "src": "34657:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "hexValue": "307830343561653562646435663065303365636131666634333930303030303030", - "id": 8729, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "34662:33:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_361804900783828603979924766720000000_by_1", - "typeString": "int_const 3618...(28 digits omitted)...0000" - }, - "value": "0x045ae5bdd5f0e03eca1ff4390000000" - }, - "src": "34657:38:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "34650:45:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8732, - "nodeType": "ExpressionStatement", - "src": "34650:45:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 8740, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 8733, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8681, - "src": "34725:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8739, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8736, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8734, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8681, - "src": "34731:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 8735, - "name": "_x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8673, - "src": "34736:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "34731:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 8737, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "34730:9:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">>", - "rightExpression": { - "argumentTypes": null, - "id": 8738, - "name": "_precision", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8675, - "src": "34743:10:10", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "34730:23:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "34725:28:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8741, - "nodeType": "ExpressionStatement", - "src": "34725:28:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 8746, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 8742, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8685, - "src": "34757:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8745, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8743, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8681, - "src": "34764:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "hexValue": "307830306465666162663931333032636439356239666664613530303030303030", - "id": 8744, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "34769:33:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_72360980156765720795984953344000000_by_1", - "typeString": "int_const 7236...(27 digits omitted)...0000" - }, - "value": "0x00defabf91302cd95b9ffda50000000" - }, - "src": "34764:38:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "34757:45:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8747, - "nodeType": "ExpressionStatement", - "src": "34757:45:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 8755, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 8748, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8681, - "src": "34832:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8754, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8751, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8749, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8681, - "src": "34838:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 8750, - "name": "_x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8673, - "src": "34843:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "34838:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 8752, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "34837:9:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">>", - "rightExpression": { - "argumentTypes": null, - "id": 8753, - "name": "_precision", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8675, - "src": "34850:10:10", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "34837:23:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "34832:28:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8756, - "nodeType": "ExpressionStatement", - "src": "34832:28:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 8761, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 8757, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8685, - "src": "34864:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8760, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8758, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8681, - "src": "34871:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "hexValue": "307830303235323963613938333262323234333965666666396238303030303030", - "id": 8759, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "34876:33:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_12060163359460953465997492224000000_by_1", - "typeString": "int_const 1206...(27 digits omitted)...0000" - }, - "value": "0x002529ca9832b22439efff9b8000000" - }, - "src": "34871:38:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "34864:45:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8762, - "nodeType": "ExpressionStatement", - "src": "34864:45:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 8770, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 8763, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8681, - "src": "34939:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8769, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8766, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8764, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8681, - "src": "34945:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 8765, - "name": "_x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8673, - "src": "34950:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "34945:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 8767, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "34944:9:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">>", - "rightExpression": { - "argumentTypes": null, - "id": 8768, - "name": "_precision", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8675, - "src": "34957:10:10", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "34944:23:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "34939:28:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8771, - "nodeType": "ExpressionStatement", - "src": "34939:28:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 8776, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 8772, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8685, - "src": "34971:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8775, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8773, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8681, - "src": "34978:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "hexValue": "307830303035346631636631326264303465353136623664613838303030303030", - "id": 8774, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "34983:33:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1722880479922993352285356032000000_by_1", - "typeString": "int_const 1722...(26 digits omitted)...0000" - }, - "value": "0x00054f1cf12bd04e516b6da88000000" - }, - "src": "34978:38:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "34971:45:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8777, - "nodeType": "ExpressionStatement", - "src": "34971:45:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 8785, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 8778, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8681, - "src": "35046:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8784, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8781, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8779, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8681, - "src": "35052:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 8780, - "name": "_x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8673, - "src": "35057:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "35052:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 8782, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "35051:9:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">>", - "rightExpression": { - "argumentTypes": null, - "id": 8783, - "name": "_precision", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8675, - "src": "35064:10:10", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "35051:23:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "35046:28:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8786, - "nodeType": "ExpressionStatement", - "src": "35046:28:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 8791, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 8787, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8685, - "src": "35078:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8790, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8788, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8681, - "src": "35085:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "hexValue": "307830303030613965333965323537613039636132643664623531303030303030", - "id": 8789, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "35090:33:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_215360059990374169035669504000000_by_1", - "typeString": "int_const 2153...(25 digits omitted)...0000" - }, - "value": "0x0000a9e39e257a09ca2d6db51000000" - }, - "src": "35085:38:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "35078:45:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8792, - "nodeType": "ExpressionStatement", - "src": "35078:45:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 8800, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 8793, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8681, - "src": "35153:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8799, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8796, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8794, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8681, - "src": "35159:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 8795, - "name": "_x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8673, - "src": "35164:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "35159:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 8797, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "35158:9:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">>", - "rightExpression": { - "argumentTypes": null, - "id": 8798, - "name": "_precision", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8675, - "src": "35171:10:10", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "35158:23:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "35153:28:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8801, - "nodeType": "ExpressionStatement", - "src": "35153:28:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 8806, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 8802, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8685, - "src": "35185:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8805, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8803, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8681, - "src": "35192:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "hexValue": "307830303030313265303636653762383339666130353063333039303030303030", - "id": 8804, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "35197:33:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_23928895554486018781741056000000_by_1", - "typeString": "int_const 23928895554486018781741056000000" - }, - "value": "0x000012e066e7b839fa050c309000000" - }, - "src": "35192:38:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "35185:45:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8807, - "nodeType": "ExpressionStatement", - "src": "35185:45:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 8815, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 8808, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8681, - "src": "35260:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8814, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8811, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8809, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8681, - "src": "35266:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 8810, - "name": "_x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8673, - "src": "35271:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "35266:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 8812, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "35265:9:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">>", - "rightExpression": { - "argumentTypes": null, - "id": 8813, - "name": "_precision", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8675, - "src": "35278:10:10", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "35265:23:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "35260:28:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8816, - "nodeType": "ExpressionStatement", - "src": "35260:28:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 8821, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 8817, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8685, - "src": "35292:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8820, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8818, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8681, - "src": "35299:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "hexValue": "307830303030303165333364376439323663333239613161643161383030303030", - "id": 8819, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "35304:33:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2392889555448601878174105600000_by_1", - "typeString": "int_const 2392889555448601878174105600000" - }, - "value": "0x000001e33d7d926c329a1ad1a800000" - }, - "src": "35299:38:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "35292:45:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8822, - "nodeType": "ExpressionStatement", - "src": "35292:45:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 8830, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 8823, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8681, - "src": "35367:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8829, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8826, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8824, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8681, - "src": "35373:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 8825, - "name": "_x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8673, - "src": "35378:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "35373:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 8827, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "35372:9:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">>", - "rightExpression": { - "argumentTypes": null, - "id": 8828, - "name": "_precision", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8675, - "src": "35385:10:10", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "35372:23:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "35367:28:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8831, - "nodeType": "ExpressionStatement", - "src": "35367:28:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 8836, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 8832, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8685, - "src": "35399:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8835, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8833, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8681, - "src": "35406:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "hexValue": "307830303030303032626565353133626462346136623139623566383030303030", - "id": 8834, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "35411:33:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_217535414131691079834009600000_by_1", - "typeString": "int_const 217535414131691079834009600000" - }, - "value": "0x0000002bee513bdb4a6b19b5f800000" - }, - "src": "35406:38:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "35399:45:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8837, - "nodeType": "ExpressionStatement", - "src": "35399:45:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 8845, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 8838, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8681, - "src": "35474:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8844, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8841, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8839, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8681, - "src": "35480:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 8840, - "name": "_x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8673, - "src": "35485:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "35480:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 8842, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "35479:9:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">>", - "rightExpression": { - "argumentTypes": null, - "id": 8843, - "name": "_precision", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8675, - "src": "35492:10:10", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "35479:23:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "35474:28:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8846, - "nodeType": "ExpressionStatement", - "src": "35474:28:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 8851, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 8847, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8685, - "src": "35506:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8850, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8848, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8681, - "src": "35513:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "hexValue": "307830303030303030336139333136666137396238386563636632613030303030", - "id": 8849, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "35518:33:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_18127951177640923319500800000_by_1", - "typeString": "int_const 18127951177640923319500800000" - }, - "value": "0x00000003a9316fa79b88eccf2a00000" - }, - "src": "35513:38:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "35506:45:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8852, - "nodeType": "ExpressionStatement", - "src": "35506:45:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 8860, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 8853, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8681, - "src": "35581:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8859, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8856, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8854, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8681, - "src": "35587:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 8855, - "name": "_x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8673, - "src": "35592:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "35587:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 8857, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "35586:9:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">>", - "rightExpression": { - "argumentTypes": null, - "id": 8858, - "name": "_precision", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8675, - "src": "35599:10:10", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "35586:23:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "35581:28:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8861, - "nodeType": "ExpressionStatement", - "src": "35581:28:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 8866, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 8862, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8685, - "src": "35613:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8865, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8863, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8681, - "src": "35620:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "hexValue": "307830303030303030303438313737656265316661383132333735323030303030", - "id": 8864, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "35625:33:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1394457782895455639961600000_by_1", - "typeString": "int_const 1394457782895455639961600000" - }, - "value": "0x0000000048177ebe1fa812375200000" - }, - "src": "35620:38:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "35613:45:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8867, - "nodeType": "ExpressionStatement", - "src": "35613:45:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 8875, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 8868, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8681, - "src": "35688:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8874, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8871, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8869, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8681, - "src": "35694:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 8870, - "name": "_x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8673, - "src": "35699:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "35694:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 8872, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "35693:9:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">>", - "rightExpression": { - "argumentTypes": null, - "id": 8873, - "name": "_precision", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8675, - "src": "35706:10:10", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "35693:23:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "35688:28:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8876, - "nodeType": "ExpressionStatement", - "src": "35688:28:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 8881, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 8877, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8685, - "src": "35720:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8880, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8878, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8681, - "src": "35727:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "hexValue": "307830303030303030303035323633666539303234326463626163663030303030", - "id": 8879, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "35732:33:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_99604127349675402854400000_by_1", - "typeString": "int_const 99604127349675402854400000" - }, - "value": "0x0000000005263fe90242dcbacf00000" - }, - "src": "35727:38:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "35720:45:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8882, - "nodeType": "ExpressionStatement", - "src": "35720:45:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 8890, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 8883, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8681, - "src": "35795:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8889, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8886, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8884, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8681, - "src": "35801:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 8885, - "name": "_x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8673, - "src": "35806:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "35801:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 8887, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "35800:9:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">>", - "rightExpression": { - "argumentTypes": null, - "id": 8888, - "name": "_precision", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8675, - "src": "35813:10:10", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "35800:23:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "35795:28:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8891, - "nodeType": "ExpressionStatement", - "src": "35795:28:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 8896, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 8892, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8685, - "src": "35827:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8895, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8893, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8681, - "src": "35834:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "hexValue": "307830303030303030303030353765323230393963303330643934313030303030", - "id": 8894, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "35839:33:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_6640275156645026856960000_by_1", - "typeString": "int_const 6640275156645026856960000" - }, - "value": "0x000000000057e22099c030d94100000" - }, - "src": "35834:38:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "35827:45:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8897, - "nodeType": "ExpressionStatement", - "src": "35827:45:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 8905, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 8898, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8681, - "src": "35902:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8904, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8901, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8899, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8681, - "src": "35908:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 8900, - "name": "_x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8673, - "src": "35913:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "35908:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 8902, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "35907:9:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">>", - "rightExpression": { - "argumentTypes": null, - "id": 8903, - "name": "_precision", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8675, - "src": "35920:10:10", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "35907:23:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "35902:28:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8906, - "nodeType": "ExpressionStatement", - "src": "35902:28:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 8911, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 8907, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8685, - "src": "35934:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8910, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8908, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8681, - "src": "35941:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "hexValue": "307830303030303030303030303537653232303939633033306439343130303030", - "id": 8909, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "35946:33:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_415017197290314178560000_by_1", - "typeString": "int_const 415017197290314178560000" - }, - "value": "0x0000000000057e22099c030d9410000" - }, - "src": "35941:38:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "35934:45:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8912, - "nodeType": "ExpressionStatement", - "src": "35934:45:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 8920, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 8913, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8681, - "src": "36009:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8919, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8916, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8914, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8681, - "src": "36015:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 8915, - "name": "_x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8673, - "src": "36020:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "36015:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 8917, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "36014:9:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">>", - "rightExpression": { - "argumentTypes": null, - "id": 8918, - "name": "_precision", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8675, - "src": "36027:10:10", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "36014:23:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "36009:28:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8921, - "nodeType": "ExpressionStatement", - "src": "36009:28:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 8926, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 8922, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8685, - "src": "36041:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8925, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8923, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8681, - "src": "36048:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "hexValue": "307830303030303030303030303035326236623534353639393736333130303030", - "id": 8924, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "36053:33:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_24412776311194951680000_by_1", - "typeString": "int_const 24412776311194951680000" - }, - "value": "0x00000000000052b6b54569976310000" - }, - "src": "36048:38:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "36041:45:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8927, - "nodeType": "ExpressionStatement", - "src": "36041:45:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 8935, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 8928, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8681, - "src": "36116:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8934, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8931, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8929, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8681, - "src": "36122:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 8930, - "name": "_x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8673, - "src": "36127:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "36122:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 8932, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "36121:9:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">>", - "rightExpression": { - "argumentTypes": null, - "id": 8933, - "name": "_precision", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8675, - "src": "36134:10:10", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "36121:23:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "36116:28:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8936, - "nodeType": "ExpressionStatement", - "src": "36116:28:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 8941, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 8937, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8685, - "src": "36148:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8940, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8938, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8681, - "src": "36155:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "hexValue": "307830303030303030303030303030343938356636373639366266373438303030", - "id": 8939, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "36160:33:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1356265350621941760000_by_1", - "typeString": "int_const 1356265350621941760000" - }, - "value": "0x00000000000004985f67696bf748000" - }, - "src": "36155:38:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "36148:45:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8942, - "nodeType": "ExpressionStatement", - "src": "36148:45:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 8950, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 8943, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8681, - "src": "36223:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8949, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8946, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8944, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8681, - "src": "36229:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 8945, - "name": "_x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8673, - "src": "36234:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "36229:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 8947, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "36228:9:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">>", - "rightExpression": { - "argumentTypes": null, - "id": 8948, - "name": "_precision", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8675, - "src": "36241:10:10", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "36228:23:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "36223:28:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8951, - "nodeType": "ExpressionStatement", - "src": "36223:28:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 8956, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 8952, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8685, - "src": "36255:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8955, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8953, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8681, - "src": "36262:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "hexValue": "307830303030303030303030303030303364656131326561393965343938303030", - "id": 8954, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "36267:33:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_71382386874839040000_by_1", - "typeString": "int_const 71382386874839040000" - }, - "value": "0x000000000000003dea12ea99e498000" - }, - "src": "36262:38:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "36255:45:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8957, - "nodeType": "ExpressionStatement", - "src": "36255:45:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 8965, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 8958, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8681, - "src": "36330:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8964, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8961, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8959, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8681, - "src": "36336:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 8960, - "name": "_x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8673, - "src": "36341:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "36336:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 8962, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "36335:9:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">>", - "rightExpression": { - "argumentTypes": null, - "id": 8963, - "name": "_precision", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8675, - "src": "36348:10:10", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "36335:23:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "36330:28:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8966, - "nodeType": "ExpressionStatement", - "src": "36330:28:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 8971, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 8967, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8685, - "src": "36362:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8970, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8968, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8681, - "src": "36369:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "hexValue": "307830303030303030303030303030303033313838306632323134623665303030", - "id": 8969, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "36374:33:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_3569119343741952000_by_1", - "typeString": "int_const 3569119343741952000" - }, - "value": "0x00000000000000031880f2214b6e000" - }, - "src": "36369:38:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "36362:45:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8972, - "nodeType": "ExpressionStatement", - "src": "36362:45:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 8980, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 8973, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8681, - "src": "36437:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8979, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8976, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8974, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8681, - "src": "36443:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 8975, - "name": "_x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8673, - "src": "36448:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "36443:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 8977, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "36442:9:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">>", - "rightExpression": { - "argumentTypes": null, - "id": 8978, - "name": "_precision", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8675, - "src": "36455:10:10", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "36442:23:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "36437:28:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8981, - "nodeType": "ExpressionStatement", - "src": "36437:28:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 8986, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 8982, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8685, - "src": "36469:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8985, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8983, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8681, - "src": "36476:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "hexValue": "307830303030303030303030303030303030323562636666353665623336303030", - "id": 8984, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "36481:33:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_169958063987712000_by_1", - "typeString": "int_const 169958063987712000" - }, - "value": "0x000000000000000025bcff56eb36000" - }, - "src": "36476:38:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "36469:45:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8987, - "nodeType": "ExpressionStatement", - "src": "36469:45:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 8995, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 8988, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8681, - "src": "36544:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8994, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8991, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8989, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8681, - "src": "36550:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 8990, - "name": "_x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8673, - "src": "36555:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "36550:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 8992, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "36549:9:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">>", - "rightExpression": { - "argumentTypes": null, - "id": 8993, - "name": "_precision", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8675, - "src": "36562:10:10", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "36549:23:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "36544:28:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8996, - "nodeType": "ExpressionStatement", - "src": "36544:28:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 9001, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 8997, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8685, - "src": "36576:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9000, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8998, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8681, - "src": "36583:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "hexValue": "307830303030303030303030303030303030303162373232653130616231303030", - "id": 8999, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "36588:33:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_7725366544896000_by_1", - "typeString": "int_const 7725366544896000" - }, - "value": "0x000000000000000001b722e10ab1000" - }, - "src": "36583:38:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "36576:45:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9002, - "nodeType": "ExpressionStatement", - "src": "36576:45:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 9010, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9003, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8681, - "src": "36651:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9009, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9006, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9004, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8681, - "src": "36657:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 9005, - "name": "_x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8673, - "src": "36662:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "36657:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 9007, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "36656:9:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">>", - "rightExpression": { - "argumentTypes": null, - "id": 9008, - "name": "_precision", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8675, - "src": "36669:10:10", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "36656:23:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "36651:28:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9011, - "nodeType": "ExpressionStatement", - "src": "36651:28:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 9016, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9012, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8685, - "src": "36683:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9015, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9013, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8681, - "src": "36690:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "hexValue": "307830303030303030303030303030303030303031333137633730303737303030", - "id": 9014, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "36695:33:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_335885501952000_by_1", - "typeString": "int_const 335885501952000" - }, - "value": "0x0000000000000000001317c70077000" - }, - "src": "36690:38:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "36683:45:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9017, - "nodeType": "ExpressionStatement", - "src": "36683:45:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 9025, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9018, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8681, - "src": "36758:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9024, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9021, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9019, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8681, - "src": "36764:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 9020, - "name": "_x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8673, - "src": "36769:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "36764:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 9022, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "36763:9:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">>", - "rightExpression": { - "argumentTypes": null, - "id": 9023, - "name": "_precision", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8675, - "src": "36776:10:10", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "36763:23:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "36758:28:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9026, - "nodeType": "ExpressionStatement", - "src": "36758:28:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 9031, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9027, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8685, - "src": "36790:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9030, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9028, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8681, - "src": "36797:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "hexValue": "307830303030303030303030303030303030303030306362613834616166613030", - "id": 9029, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "36802:33:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_13995229248000_by_1", - "typeString": "int_const 13995229248000" - }, - "value": "0x00000000000000000000cba84aafa00" - }, - "src": "36797:38:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "36790:45:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9032, - "nodeType": "ExpressionStatement", - "src": "36790:45:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 9040, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9033, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8681, - "src": "36865:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9039, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9036, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9034, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8681, - "src": "36871:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 9035, - "name": "_x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8673, - "src": "36876:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "36871:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 9037, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "36870:9:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">>", - "rightExpression": { - "argumentTypes": null, - "id": 9038, - "name": "_precision", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8675, - "src": "36883:10:10", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "36870:23:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "36865:28:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9041, - "nodeType": "ExpressionStatement", - "src": "36865:28:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 9046, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9042, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8685, - "src": "36897:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9045, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9043, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8681, - "src": "36904:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "hexValue": "307830303030303030303030303030303030303030303038323537336130613030", - "id": 9044, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "36909:33:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_559809169920_by_1", - "typeString": "int_const 559809169920" - }, - "value": "0x00000000000000000000082573a0a00" - }, - "src": "36904:38:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "36897:45:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9047, - "nodeType": "ExpressionStatement", - "src": "36897:45:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 9055, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9048, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8681, - "src": "36972:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9054, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9051, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9049, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8681, - "src": "36978:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 9050, - "name": "_x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8673, - "src": "36983:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "36978:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 9052, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "36977:9:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">>", - "rightExpression": { - "argumentTypes": null, - "id": 9053, - "name": "_precision", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8675, - "src": "36990:10:10", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "36977:23:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "36972:28:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9056, - "nodeType": "ExpressionStatement", - "src": "36972:28:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 9061, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9057, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8685, - "src": "37004:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9060, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9058, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8681, - "src": "37011:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "hexValue": "307830303030303030303030303030303030303030303030353033356164393030", - "id": 9059, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "37016:33:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_21531121920_by_1", - "typeString": "int_const 21531121920" - }, - "value": "0x00000000000000000000005035ad900" - }, - "src": "37011:38:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "37004:45:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9062, - "nodeType": "ExpressionStatement", - "src": "37004:45:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 9070, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9063, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8681, - "src": "37079:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9069, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9066, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9064, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8681, - "src": "37085:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 9065, - "name": "_x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8673, - "src": "37090:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "37085:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 9067, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "37084:9:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">>", - "rightExpression": { - "argumentTypes": null, - "id": 9068, - "name": "_precision", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8675, - "src": "37097:10:10", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "37084:23:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "37079:28:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9071, - "nodeType": "ExpressionStatement", - "src": "37079:28:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 9076, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9072, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8685, - "src": "37111:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9075, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9073, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8681, - "src": "37118:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "hexValue": "307830303030303030303030303030303030303030303030303266383831623030", - "id": 9074, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "37123:33:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_797448960_by_1", - "typeString": "int_const 797448960" - }, - "value": "0x000000000000000000000002f881b00" - }, - "src": "37118:38:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "37111:45:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9077, - "nodeType": "ExpressionStatement", - "src": "37111:45:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 9085, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9078, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8681, - "src": "37186:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9084, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9081, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9079, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8681, - "src": "37192:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 9080, - "name": "_x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8673, - "src": "37197:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "37192:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 9082, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "37191:9:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">>", - "rightExpression": { - "argumentTypes": null, - "id": 9083, - "name": "_precision", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8675, - "src": "37204:10:10", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "37191:23:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "37186:28:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9086, - "nodeType": "ExpressionStatement", - "src": "37186:28:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 9091, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9087, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8685, - "src": "37218:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9090, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9088, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8681, - "src": "37225:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "hexValue": "307830303030303030303030303030303030303030303030303031623239333430", - "id": 9089, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "37230:33:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_28480320_by_1", - "typeString": "int_const 28480320" - }, - "value": "0x0000000000000000000000001b29340" - }, - "src": "37225:38:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "37218:45:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9092, - "nodeType": "ExpressionStatement", - "src": "37218:45:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 9100, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9093, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8681, - "src": "37293:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9099, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9096, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9094, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8681, - "src": "37299:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 9095, - "name": "_x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8673, - "src": "37304:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "37299:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 9097, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "37298:9:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">>", - "rightExpression": { - "argumentTypes": null, - "id": 9098, - "name": "_precision", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8675, - "src": "37311:10:10", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "37298:23:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "37293:28:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9101, - "nodeType": "ExpressionStatement", - "src": "37293:28:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 9106, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9102, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8685, - "src": "37325:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9105, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9103, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8681, - "src": "37332:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "hexValue": "307830303030303030303030303030303030303030303030303030306566633430", - "id": 9104, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "37337:33:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_982080_by_1", - "typeString": "int_const 982080" - }, - "value": "0x00000000000000000000000000efc40" - }, - "src": "37332:38:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "37325:45:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9107, - "nodeType": "ExpressionStatement", - "src": "37325:45:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 9115, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9108, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8681, - "src": "37400:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9114, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9111, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9109, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8681, - "src": "37406:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 9110, - "name": "_x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8673, - "src": "37411:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "37406:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 9112, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "37405:9:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">>", - "rightExpression": { - "argumentTypes": null, - "id": 9113, - "name": "_precision", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8675, - "src": "37418:10:10", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "37405:23:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "37400:28:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9116, - "nodeType": "ExpressionStatement", - "src": "37400:28:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 9121, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9117, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8685, - "src": "37432:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9120, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9118, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8681, - "src": "37439:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "hexValue": "307830303030303030303030303030303030303030303030303030303037666530", - "id": 9119, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "37444:33:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_32736_by_1", - "typeString": "int_const 32736" - }, - "value": "0x0000000000000000000000000007fe0" - }, - "src": "37439:38:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "37432:45:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9122, - "nodeType": "ExpressionStatement", - "src": "37432:45:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 9130, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9123, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8681, - "src": "37507:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9129, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9126, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9124, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8681, - "src": "37513:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 9125, - "name": "_x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8673, - "src": "37518:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "37513:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 9127, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "37512:9:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">>", - "rightExpression": { - "argumentTypes": null, - "id": 9128, - "name": "_precision", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8675, - "src": "37525:10:10", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "37512:23:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "37507:28:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9131, - "nodeType": "ExpressionStatement", - "src": "37507:28:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 9136, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9132, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8685, - "src": "37539:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9135, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9133, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8681, - "src": "37546:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "hexValue": "307830303030303030303030303030303030303030303030303030303030343230", - "id": 9134, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "37551:33:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1056_by_1", - "typeString": "int_const 1056" - }, - "value": "0x0000000000000000000000000000420" - }, - "src": "37546:38:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "37539:45:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9137, - "nodeType": "ExpressionStatement", - "src": "37539:45:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 9145, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9138, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8681, - "src": "37614:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9144, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9141, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9139, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8681, - "src": "37620:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 9140, - "name": "_x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8673, - "src": "37625:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "37620:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 9142, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "37619:9:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">>", - "rightExpression": { - "argumentTypes": null, - "id": 9143, - "name": "_precision", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8675, - "src": "37632:10:10", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "37619:23:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "37614:28:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9146, - "nodeType": "ExpressionStatement", - "src": "37614:28:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 9151, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9147, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8685, - "src": "37646:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9150, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9148, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8681, - "src": "37653:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "hexValue": "307830303030303030303030303030303030303030303030303030303030303231", - "id": 9149, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "37658:33:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_33_by_1", - "typeString": "int_const 33" - }, - "value": "0x0000000000000000000000000000021" - }, - "src": "37653:38:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "37646:45:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9152, - "nodeType": "ExpressionStatement", - "src": "37646:45:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 9160, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9153, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8681, - "src": "37721:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9159, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9156, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9154, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8681, - "src": "37727:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 9155, - "name": "_x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8673, - "src": "37732:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "37727:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 9157, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "37726:9:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">>", - "rightExpression": { - "argumentTypes": null, - "id": 9158, - "name": "_precision", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8675, - "src": "37739:10:10", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "37726:23:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "37721:28:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9161, - "nodeType": "ExpressionStatement", - "src": "37721:28:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 9166, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9162, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8685, - "src": "37753:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9165, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9163, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8681, - "src": "37760:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "hexValue": "307830303030303030303030303030303030303030303030303030303030303031", - "id": 9164, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "37765:33:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "0x0000000000000000000000000000001" - }, - "src": "37760:38:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "37753:45:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9167, - "nodeType": "ExpressionStatement", - "src": "37753:45:10" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9177, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9172, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9170, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9168, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8685, - "src": "37836:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "hexValue": "307836383835383963633065393530356532663266656535353830303030303030", - "id": 9169, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "37842:33:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_8683317618811886495518194401280000000_by_1", - "typeString": "int_const 8683...(29 digits omitted)...0000" - }, - "value": "0x688589cc0e9505e2f2fee5580000000" - }, - "src": "37836:39:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "id": 9171, - "name": "_x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8673, - "src": "37878:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "37836:44:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9175, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9173, - "name": "ONE", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6225, - "src": "37884:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<<", - "rightExpression": { - "argumentTypes": null, - "id": 9174, - "name": "_precision", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8675, - "src": "37891:10:10", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "37884:17:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 9176, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "37883:19:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "37836:66:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 8679, - "id": 9178, - "nodeType": "Return", - "src": "37829:73:10" - } - ] - }, - "documentation": "@dev this function can be auto-generated by the script 'PrintFunctionGeneralExp.py'.\nit approximates \"e ^ x\" via maclaurin summation: \"(x^0)/0! + (x^1)/1! + ... + (x^n)/n!\".\nit returns \"e ^ (x / 2 ^ precision) * 2 ^ precision\", that is, the result is upshifted for accuracy.\nthe global \"maxExpArray\" maps each \"precision\" to \"((maximumExponent + 1) << (MAX_PRECISION - precision)) - 1\".\nthe maximum permitted value for \"x\" is therefore given by \"maxExpArray[precision] >> (MAX_PRECISION - precision)\".", - "id": 9180, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "generalExp", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 8676, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8673, - "name": "_x", - "nodeType": "VariableDeclaration", - "scope": 9180, - "src": "34299:10:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8672, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "34299:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8675, - "name": "_precision", - "nodeType": "VariableDeclaration", - "scope": 9180, - "src": "34311:16:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 8674, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "34311:5:10", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "34298:30:10" - }, - "payable": false, - "returnParameters": { - "id": 8679, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8678, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 9180, - "src": "34352:7:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8677, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "34352:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "34351:9:10" - }, - "scope": 11642, - "src": "34279:3677:10", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 9522, - "nodeType": "Block", - "src": "38704:2687:10", - "statements": [ - { - "assignments": [ - 9188 - ], - "declarations": [ - { - "constant": false, - "id": 9188, - "name": "res", - "nodeType": "VariableDeclaration", - "scope": 9523, - "src": "38708:11:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9187, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "38708:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 9190, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 9189, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "38722:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "38708:15:10" - }, - { - "assignments": [], - "declarations": [ - { - "constant": false, - "id": 9192, - "name": "y", - "nodeType": "VariableDeclaration", - "scope": 9523, - "src": "38728:9:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9191, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "38728:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 9193, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "38728:9:10" - }, - { - "assignments": [], - "declarations": [ - { - "constant": false, - "id": 9195, - "name": "z", - "nodeType": "VariableDeclaration", - "scope": 9523, - "src": "38741:9:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9194, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "38741:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 9196, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "38741:9:10" - }, - { - "assignments": [], - "declarations": [ - { - "constant": false, - "id": 9198, - "name": "w", - "nodeType": "VariableDeclaration", - "scope": 9523, - "src": "38754:9:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9197, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "38754:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 9199, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "38754:9:10" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9202, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9200, - "name": "x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9182, - "src": "38772:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30786433303934633730663033346465346239366666376435623666393966636438", - "id": 9201, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "38777:34:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_280515388193368458015406427511040113880_by_1", - "typeString": "int_const 2805...(31 digits omitted)...3880" - }, - "value": "0xd3094c70f034de4b96ff7d5b6f99fcd8" - }, - "src": "38772:39:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 9217, - "nodeType": "IfStatement", - "src": "38768:155:10", - "trueBody": { - "id": 9216, - "nodeType": "Block", - "src": "38813:110:10", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 9205, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9203, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9188, - "src": "38818:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30783430303030303030303030303030303030303030303030303030303030303030", - "id": 9204, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "38825:34:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_85070591730234615865843651857942052864_by_1", - "typeString": "int_const 8507...(30 digits omitted)...2864" - }, - "value": "0x40000000000000000000000000000000" - }, - "src": "38818:41:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9206, - "nodeType": "ExpressionStatement", - "src": "38818:41:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 9214, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9207, - "name": "x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9182, - "src": "38864:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9213, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9210, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9208, - "name": "x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9182, - "src": "38869:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 9209, - "name": "FIXED_1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6237, - "src": "38873:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "38869:11:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 9211, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "38868:13:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30786433303934633730663033346465346239366666376435623666393966636438", - "id": 9212, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "38884:34:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_280515388193368458015406427511040113880_by_1", - "typeString": "int_const 2805...(31 digits omitted)...3880" - }, - "value": "0xd3094c70f034de4b96ff7d5b6f99fcd8" - }, - "src": "38868:50:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "38864:54:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9215, - "nodeType": "ExpressionStatement", - "src": "38864:54:10" - } - ] - } - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9220, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9218, - "name": "x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9182, - "src": "38945:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30786134356166316531663430633333336233646531646234646435356632396137", - "id": 9219, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "38950:34:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_218465603988574474844591417643679820199_by_1", - "typeString": "int_const 2184...(31 digits omitted)...0199" - }, - "value": "0xa45af1e1f40c333b3de1db4dd55f29a7" - }, - "src": "38945:39:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 9235, - "nodeType": "IfStatement", - "src": "38941:155:10", - "trueBody": { - "id": 9234, - "nodeType": "Block", - "src": "38986:110:10", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 9223, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9221, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9188, - "src": "38991:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30783230303030303030303030303030303030303030303030303030303030303030", - "id": 9222, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "38998:34:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_42535295865117307932921825928971026432_by_1", - "typeString": "int_const 4253...(30 digits omitted)...6432" - }, - "value": "0x20000000000000000000000000000000" - }, - "src": "38991:41:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9224, - "nodeType": "ExpressionStatement", - "src": "38991:41:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 9232, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9225, - "name": "x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9182, - "src": "39037:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9231, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9228, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9226, - "name": "x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9182, - "src": "39042:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 9227, - "name": "FIXED_1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6237, - "src": "39046:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "39042:11:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 9229, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "39041:13:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30786134356166316531663430633333336233646531646234646435356632396137", - "id": 9230, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "39057:34:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_218465603988574474844591417643679820199_by_1", - "typeString": "int_const 2184...(31 digits omitted)...0199" - }, - "value": "0xa45af1e1f40c333b3de1db4dd55f29a7" - }, - "src": "39041:50:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "39037:54:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9233, - "nodeType": "ExpressionStatement", - "src": "39037:54:10" - } - ] - } - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9238, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9236, - "name": "x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9182, - "src": "39118:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30783931306230323264623761653637636537366234343163323730333563366131", - "id": 9237, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "39123:34:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_192795218841189805222451540510555621025_by_1", - "typeString": "int_const 1927...(31 digits omitted)...1025" - }, - "value": "0x910b022db7ae67ce76b441c27035c6a1" - }, - "src": "39118:39:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 9253, - "nodeType": "IfStatement", - "src": "39114:155:10", - "trueBody": { - "id": 9252, - "nodeType": "Block", - "src": "39159:110:10", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 9241, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9239, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9188, - "src": "39164:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30783130303030303030303030303030303030303030303030303030303030303030", - "id": 9240, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "39171:34:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_21267647932558653966460912964485513216_by_1", - "typeString": "int_const 2126...(30 digits omitted)...3216" - }, - "value": "0x10000000000000000000000000000000" - }, - "src": "39164:41:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9242, - "nodeType": "ExpressionStatement", - "src": "39164:41:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 9250, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9243, - "name": "x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9182, - "src": "39210:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9249, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9246, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9244, - "name": "x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9182, - "src": "39215:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 9245, - "name": "FIXED_1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6237, - "src": "39219:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "39215:11:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 9247, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "39214:13:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30783931306230323264623761653637636537366234343163323730333563366131", - "id": 9248, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "39230:34:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_192795218841189805222451540510555621025_by_1", - "typeString": "int_const 1927...(31 digits omitted)...1025" - }, - "value": "0x910b022db7ae67ce76b441c27035c6a1" - }, - "src": "39214:50:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "39210:54:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9251, - "nodeType": "ExpressionStatement", - "src": "39210:54:10" - } - ] - } - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9256, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9254, - "name": "x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9182, - "src": "39291:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30783838343135616262653961373662656164386430306366313132653464346138", - "id": 9255, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "39296:34:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_181114347027396448854165353426875372712_by_1", - "typeString": "int_const 1811...(31 digits omitted)...2712" - }, - "value": "0x88415abbe9a76bead8d00cf112e4d4a8" - }, - "src": "39291:39:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 9271, - "nodeType": "IfStatement", - "src": "39287:155:10", - "trueBody": { - "id": 9270, - "nodeType": "Block", - "src": "39332:110:10", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 9259, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9257, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9188, - "src": "39337:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30783038303030303030303030303030303030303030303030303030303030303030", - "id": 9258, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "39344:34:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_10633823966279326983230456482242756608_by_1", - "typeString": "int_const 1063...(30 digits omitted)...6608" - }, - "value": "0x08000000000000000000000000000000" - }, - "src": "39337:41:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9260, - "nodeType": "ExpressionStatement", - "src": "39337:41:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 9268, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9261, - "name": "x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9182, - "src": "39383:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9267, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9264, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9262, - "name": "x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9182, - "src": "39388:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 9263, - "name": "FIXED_1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6237, - "src": "39392:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "39388:11:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 9265, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "39387:13:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30783838343135616262653961373662656164386430306366313132653464346138", - "id": 9266, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "39403:34:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_181114347027396448854165353426875372712_by_1", - "typeString": "int_const 1811...(31 digits omitted)...2712" - }, - "value": "0x88415abbe9a76bead8d00cf112e4d4a8" - }, - "src": "39387:50:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "39383:54:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9269, - "nodeType": "ExpressionStatement", - "src": "39383:54:10" - } - ] - } - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9274, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9272, - "name": "x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9182, - "src": "39464:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30783834313032623030383933663634633730356538343164356434303634626433", - "id": 9273, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "39469:34:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_175542044379434494067323265867529472979_by_1", - "typeString": "int_const 1755...(31 digits omitted)...2979" - }, - "value": "0x84102b00893f64c705e841d5d4064bd3" - }, - "src": "39464:39:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 9289, - "nodeType": "IfStatement", - "src": "39460:155:10", - "trueBody": { - "id": 9288, - "nodeType": "Block", - "src": "39505:110:10", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 9277, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9275, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9188, - "src": "39510:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30783034303030303030303030303030303030303030303030303030303030303030", - "id": 9276, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "39517:34:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_5316911983139663491615228241121378304_by_1", - "typeString": "int_const 5316...(29 digits omitted)...8304" - }, - "value": "0x04000000000000000000000000000000" - }, - "src": "39510:41:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9278, - "nodeType": "ExpressionStatement", - "src": "39510:41:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 9286, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9279, - "name": "x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9182, - "src": "39556:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9285, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9282, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9280, - "name": "x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9182, - "src": "39561:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 9281, - "name": "FIXED_1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6237, - "src": "39565:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "39561:11:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 9283, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "39560:13:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30783834313032623030383933663634633730356538343164356434303634626433", - "id": 9284, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "39576:34:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_175542044379434494067323265867529472979_by_1", - "typeString": "int_const 1755...(31 digits omitted)...2979" - }, - "value": "0x84102b00893f64c705e841d5d4064bd3" - }, - "src": "39560:50:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "39556:54:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9287, - "nodeType": "ExpressionStatement", - "src": "39556:54:10" - } - ] - } - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9292, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9290, - "name": "x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9182, - "src": "39637:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30783832303430353561616566316338626435633332353966343832323733356132", - "id": 9291, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "39642:34:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_172820517236198538127967385733353125282_by_1", - "typeString": "int_const 1728...(31 digits omitted)...5282" - }, - "value": "0x8204055aaef1c8bd5c3259f4822735a2" - }, - "src": "39637:39:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 9307, - "nodeType": "IfStatement", - "src": "39633:155:10", - "trueBody": { - "id": 9306, - "nodeType": "Block", - "src": "39678:110:10", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 9295, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9293, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9188, - "src": "39683:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30783032303030303030303030303030303030303030303030303030303030303030", - "id": 9294, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "39690:34:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2658455991569831745807614120560689152_by_1", - "typeString": "int_const 2658...(29 digits omitted)...9152" - }, - "value": "0x02000000000000000000000000000000" - }, - "src": "39683:41:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9296, - "nodeType": "ExpressionStatement", - "src": "39683:41:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 9304, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9297, - "name": "x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9182, - "src": "39729:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9303, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9300, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9298, - "name": "x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9182, - "src": "39734:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 9299, - "name": "FIXED_1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6237, - "src": "39738:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "39734:11:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 9301, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "39733:13:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30783832303430353561616566316338626435633332353966343832323733356132", - "id": 9302, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "39749:34:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_172820517236198538127967385733353125282_by_1", - "typeString": "int_const 1728...(31 digits omitted)...5282" - }, - "value": "0x8204055aaef1c8bd5c3259f4822735a2" - }, - "src": "39733:50:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "39729:54:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9305, - "nodeType": "ExpressionStatement", - "src": "39729:54:10" - } - ] - } - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9310, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9308, - "name": "x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9182, - "src": "39810:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30783831303130306162303032323264383631393331633135653339623434653939", - "id": 9309, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "39815:34:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_171475617301169790829459146906809945753_by_1", - "typeString": "int_const 1714...(31 digits omitted)...5753" - }, - "value": "0x810100ab00222d861931c15e39b44e99" - }, - "src": "39810:39:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 9325, - "nodeType": "IfStatement", - "src": "39806:155:10", - "trueBody": { - "id": 9324, - "nodeType": "Block", - "src": "39851:110:10", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 9313, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9311, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9188, - "src": "39856:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30783031303030303030303030303030303030303030303030303030303030303030", - "id": 9312, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "39863:34:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1329227995784915872903807060280344576_by_1", - "typeString": "int_const 1329...(29 digits omitted)...4576" - }, - "value": "0x01000000000000000000000000000000" - }, - "src": "39856:41:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9314, - "nodeType": "ExpressionStatement", - "src": "39856:41:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 9322, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9315, - "name": "x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9182, - "src": "39902:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9321, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9318, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9316, - "name": "x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9182, - "src": "39907:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 9317, - "name": "FIXED_1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6237, - "src": "39911:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "39907:11:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 9319, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "39906:13:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30783831303130306162303032323264383631393331633135653339623434653939", - "id": 9320, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "39922:34:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_171475617301169790829459146906809945753_by_1", - "typeString": "int_const 1714...(31 digits omitted)...5753" - }, - "value": "0x810100ab00222d861931c15e39b44e99" - }, - "src": "39906:50:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "39902:54:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9323, - "nodeType": "ExpressionStatement", - "src": "39902:54:10" - } - ] - } - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9328, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9326, - "name": "x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9182, - "src": "39983:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30783830383034303135356161626262653934353135323136393335353466373333", - "id": 9327, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "39988:34:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_170807097224429000759274174605493073715_by_1", - "typeString": "int_const 1708...(31 digits omitted)...3715" - }, - "value": "0x808040155aabbbe9451521693554f733" - }, - "src": "39983:39:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 9343, - "nodeType": "IfStatement", - "src": "39979:155:10", - "trueBody": { - "id": 9342, - "nodeType": "Block", - "src": "40024:110:10", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 9331, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9329, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9188, - "src": "40029:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30783030383030303030303030303030303030303030303030303030303030303030", - "id": 9330, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "40036:34:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_664613997892457936451903530140172288_by_1", - "typeString": "int_const 6646...(28 digits omitted)...2288" - }, - "value": "0x00800000000000000000000000000000" - }, - "src": "40029:41:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9332, - "nodeType": "ExpressionStatement", - "src": "40029:41:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 9340, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9333, - "name": "x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9182, - "src": "40075:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9339, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9336, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9334, - "name": "x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9182, - "src": "40080:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 9335, - "name": "FIXED_1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6237, - "src": "40084:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "40080:11:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 9337, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "40079:13:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30783830383034303135356161626262653934353135323136393335353466373333", - "id": 9338, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "40095:34:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_170807097224429000759274174605493073715_by_1", - "typeString": "int_const 1708...(31 digits omitted)...3715" - }, - "value": "0x808040155aabbbe9451521693554f733" - }, - "src": "40079:50:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "40075:54:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9341, - "nodeType": "ExpressionStatement", - "src": "40075:54:10" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "id": 9350, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9344, - "name": "z", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9195, - "src": "40153:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 9349, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9345, - "name": "y", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9192, - "src": "40157:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9348, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9346, - "name": "x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9182, - "src": "40161:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "id": 9347, - "name": "FIXED_1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6237, - "src": "40165:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "40161:11:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "40157:15:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "40153:19:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9351, - "nodeType": "ExpressionStatement", - "src": "40153:19:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 9359, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9352, - "name": "w", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9198, - "src": "40176:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9358, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9355, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9353, - "name": "y", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9192, - "src": "40181:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 9354, - "name": "y", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9192, - "src": "40185:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "40181:5:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 9356, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "40180:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 9357, - "name": "FIXED_1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6237, - "src": "40190:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "40180:17:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "40176:21:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9360, - "nodeType": "ExpressionStatement", - "src": "40176:21:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 9371, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9361, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9188, - "src": "40201:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9370, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9367, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9362, - "name": "z", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9195, - "src": "40209:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9365, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "hexValue": "3078313030303030303030303030303030303030303030303030303030303030303030", - "id": 9363, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "40214:35:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_340282366920938463463374607431768211456_by_1", - "typeString": "int_const 3402...(31 digits omitted)...1456" - }, - "value": "0x100000000000000000000000000000000" - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "id": 9364, - "name": "y", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9192, - "src": "40252:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "40214:39:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 9366, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "40213:41:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "40209:45:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 9368, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "40208:47:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "hexValue": "3078313030303030303030303030303030303030303030303030303030303030303030", - "id": 9369, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "40258:35:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_340282366920938463463374607431768211456_by_1", - "typeString": "int_const 3402...(31 digits omitted)...1456" - }, - "value": "0x100000000000000000000000000000000" - }, - "src": "40208:85:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "40201:92:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9372, - "nodeType": "ExpressionStatement", - "src": "40201:92:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 9380, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9373, - "name": "z", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9195, - "src": "40297:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9379, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9376, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9374, - "name": "z", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9195, - "src": "40302:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 9375, - "name": "w", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9198, - "src": "40306:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "40302:5:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 9377, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "40301:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 9378, - "name": "FIXED_1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6237, - "src": "40311:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "40301:17:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "40297:21:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9381, - "nodeType": "ExpressionStatement", - "src": "40297:21:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 9392, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9382, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9188, - "src": "40351:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9391, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9388, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9383, - "name": "z", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9195, - "src": "40359:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9386, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "hexValue": "3078306161616161616161616161616161616161616161616161616161616161616161", - "id": 9384, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "40364:35:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_226854911280625642308916404954512140970_by_1", - "typeString": "int_const 2268...(31 digits omitted)...0970" - }, - "value": "0x0aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "id": 9385, - "name": "y", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9192, - "src": "40402:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "40364:39:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 9387, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "40363:41:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "40359:45:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 9389, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "40358:47:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "hexValue": "3078323030303030303030303030303030303030303030303030303030303030303030", - "id": 9390, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "40408:35:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_680564733841876926926749214863536422912_by_1", - "typeString": "int_const 6805...(31 digits omitted)...2912" - }, - "value": "0x200000000000000000000000000000000" - }, - "src": "40358:85:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "40351:92:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9393, - "nodeType": "ExpressionStatement", - "src": "40351:92:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 9401, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9394, - "name": "z", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9195, - "src": "40447:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9400, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9397, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9395, - "name": "z", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9195, - "src": "40452:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 9396, - "name": "w", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9198, - "src": "40456:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "40452:5:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 9398, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "40451:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 9399, - "name": "FIXED_1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6237, - "src": "40461:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "40451:17:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "40447:21:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9402, - "nodeType": "ExpressionStatement", - "src": "40447:21:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 9413, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9403, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9188, - "src": "40501:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9412, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9409, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9404, - "name": "z", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9195, - "src": "40509:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9407, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "hexValue": "3078303939393939393939393939393939393939393939393939393939393939393939", - "id": 9405, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "40514:35:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_204169420152563078078024764459060926873_by_1", - "typeString": "int_const 2041...(31 digits omitted)...6873" - }, - "value": "0x099999999999999999999999999999999" - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "id": 9406, - "name": "y", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9192, - "src": "40552:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "40514:39:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 9408, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "40513:41:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "40509:45:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 9410, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "40508:47:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "hexValue": "3078333030303030303030303030303030303030303030303030303030303030303030", - "id": 9411, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "40558:35:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1020847100762815390390123822295304634368_by_1", - "typeString": "int_const 1020...(32 digits omitted)...4368" - }, - "value": "0x300000000000000000000000000000000" - }, - "src": "40508:85:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "40501:92:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9414, - "nodeType": "ExpressionStatement", - "src": "40501:92:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 9422, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9415, - "name": "z", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9195, - "src": "40597:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9421, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9418, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9416, - "name": "z", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9195, - "src": "40602:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 9417, - "name": "w", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9198, - "src": "40606:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "40602:5:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 9419, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "40601:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 9420, - "name": "FIXED_1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6237, - "src": "40611:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "40601:17:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "40597:21:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9423, - "nodeType": "ExpressionStatement", - "src": "40597:21:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 9434, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9424, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9188, - "src": "40651:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9433, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9430, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9425, - "name": "z", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9195, - "src": "40659:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9428, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "hexValue": "3078303932343932343932343932343932343932343932343932343932343932343932", - "id": 9426, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "40664:35:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_194447066811964836264785489961010406546_by_1", - "typeString": "int_const 1944...(31 digits omitted)...6546" - }, - "value": "0x092492492492492492492492492492492" - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "id": 9427, - "name": "y", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9192, - "src": "40702:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "40664:39:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 9429, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "40663:41:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "40659:45:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 9431, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "40658:47:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "hexValue": "3078343030303030303030303030303030303030303030303030303030303030303030", - "id": 9432, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "40708:35:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1361129467683753853853498429727072845824_by_1", - "typeString": "int_const 1361...(32 digits omitted)...5824" - }, - "value": "0x400000000000000000000000000000000" - }, - "src": "40658:85:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "40651:92:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9435, - "nodeType": "ExpressionStatement", - "src": "40651:92:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 9443, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9436, - "name": "z", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9195, - "src": "40747:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9442, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9439, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9437, - "name": "z", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9195, - "src": "40752:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 9438, - "name": "w", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9198, - "src": "40756:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "40752:5:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 9440, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "40751:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 9441, - "name": "FIXED_1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6237, - "src": "40761:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "40751:17:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "40747:21:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9444, - "nodeType": "ExpressionStatement", - "src": "40747:21:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 9455, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9445, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9188, - "src": "40801:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9454, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9451, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9446, - "name": "z", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9195, - "src": "40809:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9449, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "hexValue": "3078303865333865333865333865333865333865333865333865333865333865333865", - "id": 9447, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "40814:35:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_189045759400521368590763670795426784142_by_1", - "typeString": "int_const 1890...(31 digits omitted)...4142" - }, - "value": "0x08e38e38e38e38e38e38e38e38e38e38e" - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "id": 9448, - "name": "y", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9192, - "src": "40852:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "40814:39:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 9450, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "40813:41:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "40809:45:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 9452, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "40808:47:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "hexValue": "3078353030303030303030303030303030303030303030303030303030303030303030", - "id": 9453, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "40858:35:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1701411834604692317316873037158841057280_by_1", - "typeString": "int_const 1701...(32 digits omitted)...7280" - }, - "value": "0x500000000000000000000000000000000" - }, - "src": "40808:85:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "40801:92:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9456, - "nodeType": "ExpressionStatement", - "src": "40801:92:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 9464, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9457, - "name": "z", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9195, - "src": "40897:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9463, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9460, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9458, - "name": "z", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9195, - "src": "40902:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 9459, - "name": "w", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9198, - "src": "40906:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "40902:5:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 9461, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "40901:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 9462, - "name": "FIXED_1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6237, - "src": "40911:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "40901:17:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "40897:21:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9465, - "nodeType": "ExpressionStatement", - "src": "40897:21:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 9476, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9466, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9188, - "src": "40951:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9475, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9472, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9467, - "name": "z", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9195, - "src": "40959:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9470, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "hexValue": "3078303862613265386261326538626132653862613265386261326538626132653862", - "id": 9468, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "40964:35:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_185608563775057343707295240417328115339_by_1", - "typeString": "int_const 1856...(31 digits omitted)...5339" - }, - "value": "0x08ba2e8ba2e8ba2e8ba2e8ba2e8ba2e8b" - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "id": 9469, - "name": "y", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9192, - "src": "41002:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "40964:39:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 9471, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "40963:41:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "40959:45:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 9473, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "40958:47:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "hexValue": "3078363030303030303030303030303030303030303030303030303030303030303030", - "id": 9474, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "41008:35:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2041694201525630780780247644590609268736_by_1", - "typeString": "int_const 2041...(32 digits omitted)...8736" - }, - "value": "0x600000000000000000000000000000000" - }, - "src": "40958:85:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "40951:92:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9477, - "nodeType": "ExpressionStatement", - "src": "40951:92:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 9485, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9478, - "name": "z", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9195, - "src": "41047:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9484, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9481, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9479, - "name": "z", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9195, - "src": "41052:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 9480, - "name": "w", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9198, - "src": "41056:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "41052:5:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 9482, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "41051:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 9483, - "name": "FIXED_1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6237, - "src": "41061:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "41051:17:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "41047:21:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9486, - "nodeType": "ExpressionStatement", - "src": "41047:21:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 9497, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9487, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9188, - "src": "41101:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9496, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9493, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9488, - "name": "z", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9195, - "src": "41109:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9491, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "hexValue": "3078303839643839643839643839643839643839643839643839643839643839643839", - "id": 9489, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "41114:35:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_183228966803582249557201711694029036937_by_1", - "typeString": "int_const 1832...(31 digits omitted)...6937" - }, - "value": "0x089d89d89d89d89d89d89d89d89d89d89" - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "id": 9490, - "name": "y", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9192, - "src": "41152:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "41114:39:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 9492, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "41113:41:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "41109:45:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 9494, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "41108:47:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "hexValue": "3078373030303030303030303030303030303030303030303030303030303030303030", - "id": 9495, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "41158:35:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2381976568446569244243622252022377480192_by_1", - "typeString": "int_const 2381...(32 digits omitted)...0192" - }, - "value": "0x700000000000000000000000000000000" - }, - "src": "41108:85:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "41101:92:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9498, - "nodeType": "ExpressionStatement", - "src": "41101:92:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 9506, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9499, - "name": "z", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9195, - "src": "41197:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9505, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9502, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9500, - "name": "z", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9195, - "src": "41202:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 9501, - "name": "w", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9198, - "src": "41206:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "41202:5:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 9503, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "41201:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 9504, - "name": "FIXED_1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6237, - "src": "41211:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "41201:17:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "41197:21:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9507, - "nodeType": "ExpressionStatement", - "src": "41197:21:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 9518, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9508, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9188, - "src": "41251:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9517, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9514, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9509, - "name": "z", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9195, - "src": "41259:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9512, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "hexValue": "3078303838383838383838383838383838383838383838383838383838383838383838", - "id": 9510, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "41264:35:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_181483929024500513847133123963609712776_by_1", - "typeString": "int_const 1814...(31 digits omitted)...2776" - }, - "value": "0x088888888888888888888888888888888" - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "id": 9511, - "name": "y", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9192, - "src": "41302:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "41264:39:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 9513, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "41263:41:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "41259:45:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 9515, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "41258:47:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "hexValue": "3078383030303030303030303030303030303030303030303030303030303030303030", - "id": 9516, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "41308:35:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2722258935367507707706996859454145691648_by_1", - "typeString": "int_const 2722...(32 digits omitted)...1648" - }, - "value": "0x800000000000000000000000000000000" - }, - "src": "41258:85:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "41251:92:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9519, - "nodeType": "ExpressionStatement", - "src": "41251:92:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 9520, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9188, - "src": "41384:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 9186, - "id": 9521, - "nodeType": "Return", - "src": "41377:10:10" - } - ] - }, - "documentation": "@dev computes log(x / FIXED_1) * FIXED_1\nInput range: FIXED_1 <= x <= OPT_LOG_MAX_VAL - 1\nAuto-generated via 'PrintFunctionOptimalLog.py'\nDetailed description:\n- Rewrite the input as a product of natural exponents and a single residual r, such that 1 < r < 2\n- The natural logarithm of each (pre-calculated) exponent is the degree of the exponent\n- The natural logarithm of r is calculated via Taylor series for log(1 + x), where x = r - 1\n- The natural logarithm of the input is calculated by summing up the intermediate results above\n- For example: log(250) = log(e^4 * e^1 * e^0.5 * 1.021692859) = 4 + 1 + 0.5 + log(1 + 0.021692859)", - "id": 9523, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "optimalLog", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 9183, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9182, - "name": "x", - "nodeType": "VariableDeclaration", - "scope": 9523, - "src": "38661:9:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9181, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "38661:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "38660:11:10" - }, - "payable": false, - "returnParameters": { - "id": 9186, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9185, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 9523, - "src": "38695:7:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9184, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "38695:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "38694:9:10" - }, - "scope": 11642, - "src": "38641:2750:10", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 9957, - "nodeType": "Block", - "src": "42094:3011:10", - "statements": [ - { - "assignments": [ - 9531 - ], - "declarations": [ - { - "constant": false, - "id": 9531, - "name": "res", - "nodeType": "VariableDeclaration", - "scope": 9958, - "src": "42098:11:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9530, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "42098:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 9533, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 9532, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "42112:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "42098:15:10" - }, - { - "assignments": [], - "declarations": [ - { - "constant": false, - "id": 9535, - "name": "y", - "nodeType": "VariableDeclaration", - "scope": 9958, - "src": "42118:9:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9534, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "42118:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 9536, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "42118:9:10" - }, - { - "assignments": [], - "declarations": [ - { - "constant": false, - "id": 9538, - "name": "z", - "nodeType": "VariableDeclaration", - "scope": 9958, - "src": "42131:9:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9537, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "42131:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 9539, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "42131:9:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 9546, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9540, - "name": "z", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9538, - "src": "42145:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 9545, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9541, - "name": "y", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9535, - "src": "42149:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9544, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9542, - "name": "x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9525, - "src": "42153:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "%", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30783130303030303030303030303030303030303030303030303030303030303030", - "id": 9543, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "42157:34:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_21267647932558653966460912964485513216_by_1", - "typeString": "int_const 2126...(30 digits omitted)...3216" - }, - "value": "0x10000000000000000000000000000000" - }, - "src": "42153:38:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "42149:42:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "42145:46:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9547, - "nodeType": "ExpressionStatement", - "src": "42145:46:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 9555, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9548, - "name": "z", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9538, - "src": "42226:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9554, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9551, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9549, - "name": "z", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9538, - "src": "42231:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 9550, - "name": "y", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9535, - "src": "42235:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "42231:5:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 9552, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "42230:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 9553, - "name": "FIXED_1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6237, - "src": "42240:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "42230:17:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "42226:21:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9556, - "nodeType": "ExpressionStatement", - "src": "42226:21:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 9561, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9557, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9531, - "src": "42251:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9560, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9558, - "name": "z", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9538, - "src": "42258:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "hexValue": "307831306531623362653431356130303030", - "id": 9559, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "42262:18:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1216451004088320000_by_1", - "typeString": "int_const 1216451004088320000" - }, - "value": "0x10e1b3be415a0000" - }, - "src": "42258:22:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "42251:29:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9562, - "nodeType": "ExpressionStatement", - "src": "42251:29:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 9570, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9563, - "name": "z", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9538, - "src": "42310:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9569, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9566, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9564, - "name": "z", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9538, - "src": "42315:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 9565, - "name": "y", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9535, - "src": "42319:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "42315:5:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 9567, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "42314:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 9568, - "name": "FIXED_1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6237, - "src": "42324:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "42314:17:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "42310:21:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9571, - "nodeType": "ExpressionStatement", - "src": "42310:21:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 9576, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9572, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9531, - "src": "42335:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9575, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9573, - "name": "z", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9538, - "src": "42342:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "hexValue": "307830356130393133663662316530303030", - "id": 9574, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "42346:18:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_405483668029440000_by_1", - "typeString": "int_const 405483668029440000" - }, - "value": "0x05a0913f6b1e0000" - }, - "src": "42342:22:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "42335:29:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9577, - "nodeType": "ExpressionStatement", - "src": "42335:29:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 9585, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9578, - "name": "z", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9538, - "src": "42394:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9584, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9581, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9579, - "name": "z", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9538, - "src": "42399:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 9580, - "name": "y", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9535, - "src": "42403:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "42399:5:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 9582, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "42398:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 9583, - "name": "FIXED_1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6237, - "src": "42408:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "42398:17:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "42394:21:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9586, - "nodeType": "ExpressionStatement", - "src": "42394:21:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 9591, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9587, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9531, - "src": "42419:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9590, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9588, - "name": "z", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9538, - "src": "42426:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "hexValue": "307830313638323434666461633738303030", - "id": 9589, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "42430:18:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_101370917007360000_by_1", - "typeString": "int_const 101370917007360000" - }, - "value": "0x0168244fdac78000" - }, - "src": "42426:22:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "42419:29:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9592, - "nodeType": "ExpressionStatement", - "src": "42419:29:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 9600, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9593, - "name": "z", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9538, - "src": "42478:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9599, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9596, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9594, - "name": "z", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9538, - "src": "42483:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 9595, - "name": "y", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9535, - "src": "42487:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "42483:5:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 9597, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "42482:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 9598, - "name": "FIXED_1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6237, - "src": "42492:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "42482:17:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "42478:21:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9601, - "nodeType": "ExpressionStatement", - "src": "42478:21:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 9606, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9602, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9531, - "src": "42503:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9605, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9603, - "name": "z", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9538, - "src": "42510:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "hexValue": "307830303438303734333262633138303030", - "id": 9604, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "42514:18:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_20274183401472000_by_1", - "typeString": "int_const 20274183401472000" - }, - "value": "0x004807432bc18000" - }, - "src": "42510:22:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "42503:29:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9607, - "nodeType": "ExpressionStatement", - "src": "42503:29:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 9615, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9608, - "name": "z", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9538, - "src": "42562:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9614, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9611, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9609, - "name": "z", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9538, - "src": "42567:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 9610, - "name": "y", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9535, - "src": "42571:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "42567:5:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 9612, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "42566:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 9613, - "name": "FIXED_1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6237, - "src": "42576:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "42566:17:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "42562:21:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9616, - "nodeType": "ExpressionStatement", - "src": "42562:21:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 9621, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9617, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9531, - "src": "42587:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9620, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9618, - "name": "z", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9538, - "src": "42594:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "hexValue": "307830303063303133356463613034303030", - "id": 9619, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "42598:18:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_3379030566912000_by_1", - "typeString": "int_const 3379030566912000" - }, - "value": "0x000c0135dca04000" - }, - "src": "42594:22:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "42587:29:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9622, - "nodeType": "ExpressionStatement", - "src": "42587:29:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 9630, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9623, - "name": "z", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9538, - "src": "42646:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9629, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9626, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9624, - "name": "z", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9538, - "src": "42651:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 9625, - "name": "y", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9535, - "src": "42655:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "42651:5:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 9627, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "42650:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 9628, - "name": "FIXED_1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6237, - "src": "42660:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "42650:17:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "42646:21:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9631, - "nodeType": "ExpressionStatement", - "src": "42646:21:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 9636, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9632, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9531, - "src": "42671:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9635, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9633, - "name": "z", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9538, - "src": "42678:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "hexValue": "307830303031623730376231636463303030", - "id": 9634, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "42682:18:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_482718652416000_by_1", - "typeString": "int_const 482718652416000" - }, - "value": "0x0001b707b1cdc000" - }, - "src": "42678:22:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "42671:29:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9637, - "nodeType": "ExpressionStatement", - "src": "42671:29:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 9645, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9638, - "name": "z", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9538, - "src": "42730:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9644, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9641, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9639, - "name": "z", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9538, - "src": "42735:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 9640, - "name": "y", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9535, - "src": "42739:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "42735:5:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 9642, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "42734:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 9643, - "name": "FIXED_1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6237, - "src": "42744:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "42734:17:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "42730:21:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9646, - "nodeType": "ExpressionStatement", - "src": "42730:21:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 9651, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9647, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9531, - "src": "42755:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9650, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9648, - "name": "z", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9538, - "src": "42762:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "hexValue": "307830303030333665306636333962383030", - "id": 9649, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "42766:18:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_60339831552000_by_1", - "typeString": "int_const 60339831552000" - }, - "value": "0x000036e0f639b800" - }, - "src": "42762:22:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "42755:29:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9652, - "nodeType": "ExpressionStatement", - "src": "42755:29:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 9660, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9653, - "name": "z", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9538, - "src": "42814:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9659, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9656, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9654, - "name": "z", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9538, - "src": "42819:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 9655, - "name": "y", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9535, - "src": "42823:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "42819:5:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 9657, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "42818:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 9658, - "name": "FIXED_1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6237, - "src": "42828:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "42818:17:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "42814:21:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9661, - "nodeType": "ExpressionStatement", - "src": "42814:21:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 9666, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9662, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9531, - "src": "42839:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9665, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9663, - "name": "z", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9538, - "src": "42846:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "hexValue": "307830303030303631386665653966383030", - "id": 9664, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "42850:18:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_6704425728000_by_1", - "typeString": "int_const 6704425728000" - }, - "value": "0x00000618fee9f800" - }, - "src": "42846:22:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "42839:29:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9667, - "nodeType": "ExpressionStatement", - "src": "42839:29:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 9675, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9668, - "name": "z", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9538, - "src": "42898:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9674, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9671, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9669, - "name": "z", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9538, - "src": "42903:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 9670, - "name": "y", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9535, - "src": "42907:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "42903:5:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 9672, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "42902:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 9673, - "name": "FIXED_1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6237, - "src": "42912:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "42902:17:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "42898:21:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9676, - "nodeType": "ExpressionStatement", - "src": "42898:21:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 9681, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9677, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9531, - "src": "42923:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9680, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9678, - "name": "z", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9538, - "src": "42930:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "hexValue": "307830303030303039633139376463633030", - "id": 9679, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "42934:18:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_670442572800_by_1", - "typeString": "int_const 670442572800" - }, - "value": "0x0000009c197dcc00" - }, - "src": "42930:22:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "42923:29:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9682, - "nodeType": "ExpressionStatement", - "src": "42923:29:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 9690, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9683, - "name": "z", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9538, - "src": "42982:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9689, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9686, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9684, - "name": "z", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9538, - "src": "42987:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 9685, - "name": "y", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9535, - "src": "42991:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "42987:5:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 9687, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "42986:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 9688, - "name": "FIXED_1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6237, - "src": "42996:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "42986:17:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "42982:21:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9691, - "nodeType": "ExpressionStatement", - "src": "42982:21:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 9696, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9692, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9531, - "src": "43007:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9695, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9693, - "name": "z", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9538, - "src": "43014:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "hexValue": "307830303030303030653330646365343030", - "id": 9694, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "43018:18:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_60949324800_by_1", - "typeString": "int_const 60949324800" - }, - "value": "0x0000000e30dce400" - }, - "src": "43014:22:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "43007:29:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9697, - "nodeType": "ExpressionStatement", - "src": "43007:29:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 9705, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9698, - "name": "z", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9538, - "src": "43066:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9704, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9701, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9699, - "name": "z", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9538, - "src": "43071:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 9700, - "name": "y", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9535, - "src": "43075:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "43071:5:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 9702, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "43070:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 9703, - "name": "FIXED_1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6237, - "src": "43080:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "43070:17:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "43066:21:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9706, - "nodeType": "ExpressionStatement", - "src": "43066:21:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 9711, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9707, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9531, - "src": "43091:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9710, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9708, - "name": "z", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9538, - "src": "43098:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "hexValue": "307830303030303030313265626431333030", - "id": 9709, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "43102:18:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_5079110400_by_1", - "typeString": "int_const 5079110400" - }, - "value": "0x000000012ebd1300" - }, - "src": "43098:22:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "43091:29:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9712, - "nodeType": "ExpressionStatement", - "src": "43091:29:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 9720, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9713, - "name": "z", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9538, - "src": "43150:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9719, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9716, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9714, - "name": "z", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9538, - "src": "43155:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 9715, - "name": "y", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9535, - "src": "43159:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "43155:5:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 9717, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "43154:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 9718, - "name": "FIXED_1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6237, - "src": "43164:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "43154:17:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "43150:21:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9721, - "nodeType": "ExpressionStatement", - "src": "43150:21:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 9726, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9722, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9531, - "src": "43175:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9725, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9723, - "name": "z", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9538, - "src": "43182:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "hexValue": "307830303030303030303137343939663030", - "id": 9724, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "43186:18:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_390700800_by_1", - "typeString": "int_const 390700800" - }, - "value": "0x0000000017499f00" - }, - "src": "43182:22:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "43175:29:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9727, - "nodeType": "ExpressionStatement", - "src": "43175:29:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 9735, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9728, - "name": "z", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9538, - "src": "43234:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9734, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9731, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9729, - "name": "z", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9538, - "src": "43239:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 9730, - "name": "y", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9535, - "src": "43243:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "43239:5:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 9732, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "43238:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 9733, - "name": "FIXED_1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6237, - "src": "43248:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "43238:17:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "43234:21:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9736, - "nodeType": "ExpressionStatement", - "src": "43234:21:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 9741, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9737, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9531, - "src": "43259:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9740, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9738, - "name": "z", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9538, - "src": "43266:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "hexValue": "307830303030303030303031613964343830", - "id": 9739, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "43270:18:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_27907200_by_1", - "typeString": "int_const 27907200" - }, - "value": "0x0000000001a9d480" - }, - "src": "43266:22:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "43259:29:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9742, - "nodeType": "ExpressionStatement", - "src": "43259:29:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 9750, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9743, - "name": "z", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9538, - "src": "43318:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9749, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9746, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9744, - "name": "z", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9538, - "src": "43323:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 9745, - "name": "y", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9535, - "src": "43327:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "43323:5:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 9747, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "43322:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 9748, - "name": "FIXED_1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6237, - "src": "43332:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "43322:17:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "43318:21:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9751, - "nodeType": "ExpressionStatement", - "src": "43318:21:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 9756, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9752, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9531, - "src": "43343:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9755, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9753, - "name": "z", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9538, - "src": "43350:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "hexValue": "307830303030303030303030316336333830", - "id": 9754, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "43354:18:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1860480_by_1", - "typeString": "int_const 1860480" - }, - "value": "0x00000000001c6380" - }, - "src": "43350:22:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "43343:29:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9757, - "nodeType": "ExpressionStatement", - "src": "43343:29:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 9765, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9758, - "name": "z", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9538, - "src": "43402:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9764, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9761, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9759, - "name": "z", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9538, - "src": "43407:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 9760, - "name": "y", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9535, - "src": "43411:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "43407:5:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 9762, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "43406:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 9763, - "name": "FIXED_1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6237, - "src": "43416:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "43406:17:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "43402:21:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9766, - "nodeType": "ExpressionStatement", - "src": "43402:21:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 9771, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9767, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9531, - "src": "43427:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9770, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9768, - "name": "z", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9538, - "src": "43434:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "hexValue": "307830303030303030303030303163363338", - "id": 9769, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "43438:18:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_116280_by_1", - "typeString": "int_const 116280" - }, - "value": "0x000000000001c638" - }, - "src": "43434:22:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "43427:29:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9772, - "nodeType": "ExpressionStatement", - "src": "43427:29:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 9780, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9773, - "name": "z", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9538, - "src": "43486:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9779, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9776, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9774, - "name": "z", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9538, - "src": "43491:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 9775, - "name": "y", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9535, - "src": "43495:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "43491:5:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 9777, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "43490:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 9778, - "name": "FIXED_1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6237, - "src": "43500:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "43490:17:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "43486:21:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9781, - "nodeType": "ExpressionStatement", - "src": "43486:21:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 9786, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9782, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9531, - "src": "43511:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9785, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9783, - "name": "z", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9538, - "src": "43518:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "hexValue": "307830303030303030303030303031616238", - "id": 9784, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "43522:18:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_6840_by_1", - "typeString": "int_const 6840" - }, - "value": "0x0000000000001ab8" - }, - "src": "43518:22:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "43511:29:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9787, - "nodeType": "ExpressionStatement", - "src": "43511:29:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 9795, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9788, - "name": "z", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9538, - "src": "43570:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9794, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9791, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9789, - "name": "z", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9538, - "src": "43575:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 9790, - "name": "y", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9535, - "src": "43579:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "43575:5:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 9792, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "43574:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 9793, - "name": "FIXED_1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6237, - "src": "43584:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "43574:17:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "43570:21:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9796, - "nodeType": "ExpressionStatement", - "src": "43570:21:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 9801, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9797, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9531, - "src": "43595:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9800, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9798, - "name": "z", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9538, - "src": "43602:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "hexValue": "307830303030303030303030303030313763", - "id": 9799, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "43606:18:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_380_by_1", - "typeString": "int_const 380" - }, - "value": "0x000000000000017c" - }, - "src": "43602:22:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "43595:29:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9802, - "nodeType": "ExpressionStatement", - "src": "43595:29:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 9810, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9803, - "name": "z", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9538, - "src": "43654:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9809, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9806, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9804, - "name": "z", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9538, - "src": "43659:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 9805, - "name": "y", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9535, - "src": "43663:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "43659:5:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 9807, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "43658:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 9808, - "name": "FIXED_1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6237, - "src": "43668:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "43658:17:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "43654:21:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9811, - "nodeType": "ExpressionStatement", - "src": "43654:21:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 9816, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9812, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9531, - "src": "43679:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9815, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9813, - "name": "z", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9538, - "src": "43686:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "hexValue": "307830303030303030303030303030303134", - "id": 9814, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "43690:18:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_20_by_1", - "typeString": "int_const 20" - }, - "value": "0x0000000000000014" - }, - "src": "43686:22:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "43679:29:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9817, - "nodeType": "ExpressionStatement", - "src": "43679:29:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 9825, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9818, - "name": "z", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9538, - "src": "43738:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9824, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9821, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9819, - "name": "z", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9538, - "src": "43743:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 9820, - "name": "y", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9535, - "src": "43747:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "43743:5:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 9822, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "43742:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 9823, - "name": "FIXED_1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6237, - "src": "43752:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "43742:17:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "43738:21:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9826, - "nodeType": "ExpressionStatement", - "src": "43738:21:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 9831, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9827, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9531, - "src": "43763:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9830, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9828, - "name": "z", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9538, - "src": "43770:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "hexValue": "307830303030303030303030303030303031", - "id": 9829, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "43774:18:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "0x0000000000000001" - }, - "src": "43770:22:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "43763:29:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9832, - "nodeType": "ExpressionStatement", - "src": "43763:29:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 9841, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9833, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9531, - "src": "43822:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9840, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9838, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9836, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9834, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9531, - "src": "43828:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "hexValue": "307832316333363737633832623430303030", - "id": 9835, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "43834:18:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2432902008176640000_by_1", - "typeString": "int_const 2432902008176640000" - }, - "value": "0x21c3677c82b40000" - }, - "src": "43828:24:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "id": 9837, - "name": "y", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9535, - "src": "43855:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "43828:28:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "id": 9839, - "name": "FIXED_1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6237, - "src": "43859:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "43828:38:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "43822:44:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9842, - "nodeType": "ExpressionStatement", - "src": "43822:44:10" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9848, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9845, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9843, - "name": "x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9525, - "src": "43926:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "&", - "rightExpression": { - "argumentTypes": null, - "hexValue": "3078303130303030303030303030303030303030303030303030303030303030303030", - "id": 9844, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "43930:35:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_21267647932558653966460912964485513216_by_1", - "typeString": "int_const 2126...(30 digits omitted)...3216" - }, - "value": "0x010000000000000000000000000000000" - }, - "src": "43926:39:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 9846, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "43925:41:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 9847, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "43970:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "43925:46:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 9858, - "nodeType": "IfStatement", - "src": "43921:139:10", - "trueBody": { - "expression": { - "argumentTypes": null, - "id": 9856, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9849, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9531, - "src": "43973:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9855, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9852, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9850, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9531, - "src": "43980:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "hexValue": "3078316333643661323465643832323138373837643632346433653565626139356639", - "id": 9851, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "43986:35:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_600596269623765960634066700837880239609_by_1", - "typeString": "int_const 6005...(31 digits omitted)...9609" - }, - "value": "0x1c3d6a24ed82218787d624d3e5eba95f9" - }, - "src": "43980:41:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 9853, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "43979:43:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "hexValue": "3078313865626566396561633832306165383638326239373933616336643165373736", - "id": 9854, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "44025:35:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_530024347646835984032474664511850276726_by_1", - "typeString": "int_const 5300...(31 digits omitted)...6726" - }, - "value": "0x18ebef9eac820ae8682b9793ac6d1e776" - }, - "src": "43979:81:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "43973:87:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9857, - "nodeType": "ExpressionStatement", - "src": "43973:87:10" - } - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9864, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9861, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9859, - "name": "x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9525, - "src": "44093:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "&", - "rightExpression": { - "argumentTypes": null, - "hexValue": "3078303230303030303030303030303030303030303030303030303030303030303030", - "id": 9860, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "44097:35:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_42535295865117307932921825928971026432_by_1", - "typeString": "int_const 4253...(30 digits omitted)...6432" - }, - "value": "0x020000000000000000000000000000000" - }, - "src": "44093:39:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 9862, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "44092:41:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 9863, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "44137:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "44092:46:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 9874, - "nodeType": "IfStatement", - "src": "44088:139:10", - "trueBody": { - "expression": { - "argumentTypes": null, - "id": 9872, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9865, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9531, - "src": "44140:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9871, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9868, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9866, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9531, - "src": "44147:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "hexValue": "3078313865626566396561633832306165383638326239373933616336643165373738", - "id": 9867, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "44153:35:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_530024347646835984032474664511850276728_by_1", - "typeString": "int_const 5300...(31 digits omitted)...6728" - }, - "value": "0x18ebef9eac820ae8682b9793ac6d1e778" - }, - "src": "44147:41:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 9869, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "44146:43:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "hexValue": "3078313336386232666336663936303966653761636562343661613631396261656434", - "id": 9870, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "44192:35:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_412783376994266390547521411024565284564_by_1", - "typeString": "int_const 4127...(31 digits omitted)...4564" - }, - "value": "0x1368b2fc6f9609fe7aceb46aa619baed4" - }, - "src": "44146:81:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "44140:87:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9873, - "nodeType": "ExpressionStatement", - "src": "44140:87:10" - } - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9880, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9877, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9875, - "name": "x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9525, - "src": "44260:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "&", - "rightExpression": { - "argumentTypes": null, - "hexValue": "3078303430303030303030303030303030303030303030303030303030303030303030", - "id": 9876, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "44264:35:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_85070591730234615865843651857942052864_by_1", - "typeString": "int_const 8507...(30 digits omitted)...2864" - }, - "value": "0x040000000000000000000000000000000" - }, - "src": "44260:39:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 9878, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "44259:41:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 9879, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "44304:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "44259:46:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 9890, - "nodeType": "IfStatement", - "src": "44255:139:10", - "trueBody": { - "expression": { - "argumentTypes": null, - "id": 9888, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9881, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9531, - "src": "44307:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9887, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9884, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9882, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9531, - "src": "44314:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "hexValue": "3078313336386232666336663936303966653761636562343661613631396261656435", - "id": 9883, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "44320:35:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_412783376994266390547521411024565284565_by_1", - "typeString": "int_const 4127...(31 digits omitted)...4565" - }, - "value": "0x1368b2fc6f9609fe7aceb46aa619baed5" - }, - "src": "44314:41:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 9885, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "44313:43:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "hexValue": "3078306263356162316231363737396265333537356264386630353230613966323166", - "id": 9886, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "44359:35:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_250365773966741064234501452596301656607_by_1", - "typeString": "int_const 2503...(31 digits omitted)...6607" - }, - "value": "0x0bc5ab1b16779be3575bd8f0520a9f21f" - }, - "src": "44313:81:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "44307:87:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9889, - "nodeType": "ExpressionStatement", - "src": "44307:87:10" - } - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9896, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9893, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9891, - "name": "x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9525, - "src": "44427:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "&", - "rightExpression": { - "argumentTypes": null, - "hexValue": "3078303830303030303030303030303030303030303030303030303030303030303030", - "id": 9892, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "44431:35:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_170141183460469231731687303715884105728_by_1", - "typeString": "int_const 1701...(31 digits omitted)...5728" - }, - "value": "0x080000000000000000000000000000000" - }, - "src": "44427:39:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 9894, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "44426:41:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 9895, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "44471:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "44426:46:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 9906, - "nodeType": "IfStatement", - "src": "44422:139:10", - "trueBody": { - "expression": { - "argumentTypes": null, - "id": 9904, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9897, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9531, - "src": "44474:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9903, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9900, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9898, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9531, - "src": "44481:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "hexValue": "3078306263356162316231363737396265333537356264386630353230613966323165", - "id": 9899, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "44487:35:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_250365773966741064234501452596301656606_by_1", - "typeString": "int_const 2503...(31 digits omitted)...6606" - }, - "value": "0x0bc5ab1b16779be3575bd8f0520a9f21e" - }, - "src": "44481:41:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 9901, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "44480:43:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "hexValue": "3078303435346161613865666530373265376636646462616238346234306135356339", - "id": 9902, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "44526:35:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_92104421015340344839251721785254237641_by_1", - "typeString": "int_const 9210...(30 digits omitted)...7641" - }, - "value": "0x0454aaa8efe072e7f6ddbab84b40a55c9" - }, - "src": "44480:81:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "44474:87:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9905, - "nodeType": "ExpressionStatement", - "src": "44474:87:10" - } - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9912, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9909, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9907, - "name": "x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9525, - "src": "44594:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "&", - "rightExpression": { - "argumentTypes": null, - "hexValue": "3078313030303030303030303030303030303030303030303030303030303030303030", - "id": 9908, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "44598:35:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_340282366920938463463374607431768211456_by_1", - "typeString": "int_const 3402...(31 digits omitted)...1456" - }, - "value": "0x100000000000000000000000000000000" - }, - "src": "44594:39:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 9910, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "44593:41:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 9911, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "44638:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "44593:46:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 9922, - "nodeType": "IfStatement", - "src": "44589:139:10", - "trueBody": { - "expression": { - "argumentTypes": null, - "id": 9920, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9913, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9531, - "src": "44641:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9919, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9916, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9914, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9531, - "src": "44648:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "hexValue": "3078303435346161613865666530373265376636646462616238346234306135356335", - "id": 9915, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "44654:35:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_92104421015340344839251721785254237637_by_1", - "typeString": "int_const 9210...(30 digits omitted)...7637" - }, - "value": "0x0454aaa8efe072e7f6ddbab84b40a55c5" - }, - "src": "44648:41:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 9917, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "44647:43:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "hexValue": "3078303039363061616463313039653761336266343537383039393631353731316561", - "id": 9918, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "44693:35:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_12464977905455307901915658421775307242_by_1", - "typeString": "int_const 1246...(30 digits omitted)...7242" - }, - "value": "0x00960aadc109e7a3bf4578099615711ea" - }, - "src": "44647:81:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "44641:87:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9921, - "nodeType": "ExpressionStatement", - "src": "44641:87:10" - } - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9928, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9925, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9923, - "name": "x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9525, - "src": "44761:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "&", - "rightExpression": { - "argumentTypes": null, - "hexValue": "3078323030303030303030303030303030303030303030303030303030303030303030", - "id": 9924, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "44765:35:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_680564733841876926926749214863536422912_by_1", - "typeString": "int_const 6805...(31 digits omitted)...2912" - }, - "value": "0x200000000000000000000000000000000" - }, - "src": "44761:39:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 9926, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "44760:41:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 9927, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "44805:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "44760:46:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 9938, - "nodeType": "IfStatement", - "src": "44756:139:10", - "trueBody": { - "expression": { - "argumentTypes": null, - "id": 9936, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9929, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9531, - "src": "44808:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9935, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9932, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9930, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9531, - "src": "44815:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "hexValue": "3078303039363061616463313039653761336266343537383039393631353731316437", - "id": 9931, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "44821:35:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_12464977905455307901915658421775307223_by_1", - "typeString": "int_const 1246...(30 digits omitted)...7223" - }, - "value": "0x00960aadc109e7a3bf4578099615711d7" - }, - "src": "44815:41:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 9933, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "44814:43:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "hexValue": "3078303030326266383432303832303466353937376639613863663031666463653364", - "id": 9934, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "44860:35:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_228304034072369565894155946646425149_by_1", - "typeString": "int_const 2283...(28 digits omitted)...5149" - }, - "value": "0x0002bf84208204f5977f9a8cf01fdce3d" - }, - "src": "44814:81:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "44808:87:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9937, - "nodeType": "ExpressionStatement", - "src": "44808:87:10" - } - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9944, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9941, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9939, - "name": "x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9525, - "src": "44928:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "&", - "rightExpression": { - "argumentTypes": null, - "hexValue": "3078343030303030303030303030303030303030303030303030303030303030303030", - "id": 9940, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "44932:35:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1361129467683753853853498429727072845824_by_1", - "typeString": "int_const 1361...(32 digits omitted)...5824" - }, - "value": "0x400000000000000000000000000000000" - }, - "src": "44928:39:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 9942, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "44927:41:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 9943, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "44972:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "44927:46:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 9954, - "nodeType": "IfStatement", - "src": "44923:139:10", - "trueBody": { - "expression": { - "argumentTypes": null, - "id": 9952, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9945, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9531, - "src": "44975:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9951, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9948, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9946, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9531, - "src": "44982:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "hexValue": "3078303030326266383432303832303466353937376639613863663031666463333037", - "id": 9947, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "44988:35:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_228304034072369565894155946646422279_by_1", - "typeString": "int_const 2283...(28 digits omitted)...2279" - }, - "value": "0x0002bf84208204f5977f9a8cf01fdc307" - }, - "src": "44982:41:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 9949, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "44981:43:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "hexValue": "3078303030303030336336616237373564643062393562346362656537653635643131", - "id": 9950, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "45027:35:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_76587471230661696290698490699025_by_1", - "typeString": "int_const 76587471230661696290698490699025" - }, - "value": "0x0000003c6ab775dd0b95b4cbee7e65d11" - }, - "src": "44981:81:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "44975:87:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9953, - "nodeType": "ExpressionStatement", - "src": "44975:87:10" - } - }, - { - "expression": { - "argumentTypes": null, - "id": 9955, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9531, - "src": "45098:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 9529, - "id": 9956, - "nodeType": "Return", - "src": "45091:10:10" - } - ] - }, - "documentation": "@dev computes e ^ (x / FIXED_1) * FIXED_1\ninput range: 0 <= x <= OPT_EXP_MAX_VAL - 1\nauto-generated via 'PrintFunctionOptimalExp.py'\nDetailed description:\n- Rewrite the input as a sum of binary exponents and a single residual r, as small as possible\n- The exponentiation of each binary exponent is given (pre-calculated)\n- The exponentiation of r is calculated via Taylor series for e^x, where x = r\n- The exponentiation of the input is calculated by multiplying the intermediate results above\n- For example: e^5.521692859 = e^(4 + 1 + 0.5 + 0.021692859) = e^4 * e^1 * e^0.5 * e^0.021692859", - "id": 9958, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "optimalExp", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 9526, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9525, - "name": "x", - "nodeType": "VariableDeclaration", - "scope": 9958, - "src": "42051:9:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9524, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "42051:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "42050:11:10" - }, - "payable": false, - "returnParameters": { - "id": 9529, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9528, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 9958, - "src": "42085:7:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9527, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "42085:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "42084:9:10" - }, - "scope": 11642, - "src": "42031:3074:10", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 9993, - "nodeType": "Block", - "src": "45241:193:10", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9967, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9965, - "name": "_x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9960, - "src": "45249:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "id": 9966, - "name": "LAMBERT_CONV_RADIUS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6258, - "src": "45255:19:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "45249:25:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 9972, - "nodeType": "IfStatement", - "src": "45245:53:10", - "trueBody": { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 9969, - "name": "_x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9960, - "src": "45295:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 9968, - "name": "lambertPos1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10522, - "src": "45283:11:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256) pure returns (uint256)" - } - }, - "id": 9970, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "45283:15:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 9964, - "id": 9971, - "nodeType": "Return", - "src": "45276:22:10" - } - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9975, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9973, - "name": "_x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9960, - "src": "45306:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "id": 9974, - "name": "LAMBERT_POS2_MAXVAL", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6264, - "src": "45312:19:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "45306:25:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 9980, - "nodeType": "IfStatement", - "src": "45302:53:10", - "trueBody": { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 9977, - "name": "_x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9960, - "src": "45352:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 9976, - "name": "lambertPos2", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10590, - "src": "45340:11:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256) view returns (uint256)" - } - }, - "id": 9978, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "45340:15:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 9964, - "id": 9979, - "nodeType": "Return", - "src": "45333:22:10" - } - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9983, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9981, - "name": "_x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9960, - "src": "45363:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "id": 9982, - "name": "LAMBERT_POS3_MAXVAL", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6267, - "src": "45369:19:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "45363:25:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 9988, - "nodeType": "IfStatement", - "src": "45359:53:10", - "trueBody": { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 9985, - "name": "_x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9960, - "src": "45409:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 9984, - "name": "lambertPos3", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10641, - "src": "45397:11:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256) pure returns (uint256)" - } - }, - "id": 9986, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "45397:15:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 9964, - "id": 9987, - "nodeType": "Return", - "src": "45390:22:10" - } - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 9990, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "45424:5:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 9989, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 22341, - 22342 - ], - "referencedDeclaration": 22341, - "src": "45416:7:10", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 9991, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "45416:14:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 9992, - "nodeType": "ExpressionStatement", - "src": "45416:14:10" - } - ] - }, - "documentation": "@dev computes W(x / FIXED_1) / (x / FIXED_1) * FIXED_1", - "id": 9994, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "lowerStake", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 9961, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9960, - "name": "_x", - "nodeType": "VariableDeclaration", - "scope": 9994, - "src": "45197:10:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9959, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "45197:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "45196:12:10" - }, - "payable": false, - "returnParameters": { - "id": 9964, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9963, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 9994, - "src": "45232:7:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9962, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "45232:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "45231:9:10" - }, - "scope": 11642, - "src": "45177:257:10", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 10016, - "nodeType": "Block", - "src": "45573:96:10", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10003, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 10001, - "name": "_x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9996, - "src": "45581:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "id": 10002, - "name": "LAMBERT_CONV_RADIUS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6258, - "src": "45587:19:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "45581:25:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 10008, - "nodeType": "IfStatement", - "src": "45577:53:10", - "trueBody": { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 10005, - "name": "_x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9996, - "src": "45627:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 10004, - "name": "lambertNeg1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11145, - "src": "45615:11:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256) pure returns (uint256)" - } - }, - "id": 10006, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "45615:15:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 10000, - "id": 10007, - "nodeType": "Return", - "src": "45608:22:10" - } - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10014, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10011, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 10009, - "name": "FIXED_1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6237, - "src": "45642:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 10010, - "name": "FIXED_1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6237, - "src": "45652:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "45642:17:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 10012, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "45641:19:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 10013, - "name": "_x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9996, - "src": "45663:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "45641:24:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 10000, - "id": 10015, - "nodeType": "Return", - "src": "45634:31:10" - } - ] - }, - "documentation": "@dev computes W(-x / FIXED_1) / (-x / FIXED_1) * FIXED_1", - "id": 10017, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "higherStake", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 9997, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9996, - "name": "_x", - "nodeType": "VariableDeclaration", - "scope": 10017, - "src": "45529:10:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9995, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "45529:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "45528:12:10" - }, - "payable": false, - "returnParameters": { - "id": 10000, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9999, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 10017, - "src": "45564:7:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9998, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "45564:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "45563:9:10" - }, - "scope": 11642, - "src": "45508:161:10", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 10521, - "nodeType": "Block", - "src": "45902:4389:10", - "statements": [ - { - "assignments": [ - 10025 - ], - "declarations": [ - { - "constant": false, - "id": 10025, - "name": "xi", - "nodeType": "VariableDeclaration", - "scope": 10522, - "src": "45906:10:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10024, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "45906:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 10027, - "initialValue": { - "argumentTypes": null, - "id": 10026, - "name": "_x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10019, - "src": "45919:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "45906:15:10" - }, - { - "assignments": [ - 10029 - ], - "declarations": [ - { - "constant": false, - "id": 10029, - "name": "res", - "nodeType": "VariableDeclaration", - "scope": 10522, - "src": "45925:11:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10028, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "45925:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 10036, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10035, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10032, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 10030, - "name": "FIXED_1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6237, - "src": "45940:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "id": 10031, - "name": "_x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10019, - "src": "45950:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "45940:12:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 10033, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "45939:14:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30786465316263346431396566636163383234343564613735623030303030303030", - "id": 10034, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "45956:34:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_295232799039604140847618609643520000000_by_1", - "typeString": "int_const 2952...(31 digits omitted)...0000" - }, - "value": "0xde1bc4d19efcac82445da75b00000000" - }, - "src": "45939:51:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "45925:65:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 10044, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 10037, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10025, - "src": "46062:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10043, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10040, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 10038, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10025, - "src": "46068:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 10039, - "name": "_x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10019, - "src": "46073:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "46068:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 10041, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "46067:9:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 10042, - "name": "FIXED_1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6237, - "src": "46079:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "46067:19:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "46062:24:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10045, - "nodeType": "ExpressionStatement", - "src": "46062:24:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 10050, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 10046, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10029, - "src": "46090:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10049, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 10047, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10025, - "src": "46097:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "hexValue": "3078303030303030303030313464323961373361366537623032633336363863376230383830303030303030", - "id": 10048, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "46102:44:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_442849198559406211271427914465280000000_by_1", - "typeString": "int_const 4428...(31 digits omitted)...0000" - }, - "value": "0x00000000014d29a73a6e7b02c3668c7b0880000000" - }, - "src": "46097:49:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "46090:56:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10051, - "nodeType": "ExpressionStatement", - "src": "46090:56:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 10059, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 10052, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10025, - "src": "46192:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10058, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10055, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 10053, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10025, - "src": "46198:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 10054, - "name": "_x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10019, - "src": "46203:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "46198:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 10056, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "46197:9:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 10057, - "name": "FIXED_1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6237, - "src": "46209:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "46197:19:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "46192:24:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10060, - "nodeType": "ExpressionStatement", - "src": "46192:24:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 10065, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 10061, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10029, - "src": "46220:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "-=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10064, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 10062, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10025, - "src": "46227:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "hexValue": "3078303030303030303030323530346130636439613766373231356236306639626534383030303030303030", - "id": 10063, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "46232:44:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_787287464105611042260316292382720000000_by_1", - "typeString": "int_const 7872...(31 digits omitted)...0000" - }, - "value": "0x0000000002504a0cd9a7f7215b60f9be4800000000" - }, - "src": "46227:49:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "46220:56:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10066, - "nodeType": "ExpressionStatement", - "src": "46220:56:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 10074, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 10067, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10025, - "src": "46322:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10073, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10070, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 10068, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10025, - "src": "46328:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 10069, - "name": "_x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10019, - "src": "46333:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "46328:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 10071, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "46327:9:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 10072, - "name": "FIXED_1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6237, - "src": "46339:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "46327:19:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "46322:24:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10075, - "nodeType": "ExpressionStatement", - "src": "46322:24:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 10080, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 10076, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10029, - "src": "46350:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10079, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 10077, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10025, - "src": "46357:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "hexValue": "3078303030303030303030343834643061313139316330656164323637393637633761346130303030303030", - "id": 10078, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "46362:44:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1537670828331271566914680258560000000000_by_1", - "typeString": "int_const 1537...(32 digits omitted)...0000" - }, - "value": "0x000000000484d0a1191c0ead267967c7a4a0000000" - }, - "src": "46357:49:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "46350:56:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10081, - "nodeType": "ExpressionStatement", - "src": "46350:56:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 10089, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 10082, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10025, - "src": "46452:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10088, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10085, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 10083, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10025, - "src": "46458:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 10084, - "name": "_x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10019, - "src": "46463:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "46458:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 10086, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "46457:9:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 10087, - "name": "FIXED_1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6237, - "src": "46469:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "46457:19:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "46452:24:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10090, - "nodeType": "ExpressionStatement", - "src": "46452:24:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 10095, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 10091, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10029, - "src": "46480:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "-=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10094, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 10092, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10025, - "src": "46487:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "hexValue": "3078303030303030303030393565633538306437653834323761346261663236613930613030303030303030", - "id": 10093, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "46492:44:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_3188514229627724721154280984150016000000_by_1", - "typeString": "int_const 3188...(32 digits omitted)...0000" - }, - "value": "0x00000000095ec580d7e8427a4baf26a90a00000000" - }, - "src": "46487:49:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "46480:56:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10096, - "nodeType": "ExpressionStatement", - "src": "46480:56:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 10104, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 10097, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10025, - "src": "46582:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10103, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10100, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 10098, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10025, - "src": "46588:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 10099, - "name": "_x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10019, - "src": "46593:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "46588:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 10101, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "46587:9:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 10102, - "name": "FIXED_1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6237, - "src": "46599:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "46587:19:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "46582:24:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10105, - "nodeType": "ExpressionStatement", - "src": "46582:24:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 10110, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 10106, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10029, - "src": "46610:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10109, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 10107, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10025, - "src": "46617:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "hexValue": "3078303030303030303031343430623062653136313561343764626136653562336231663130303030303030", - "id": 10108, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "46622:44:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_6891635629803648326702674961498112000000_by_1", - "typeString": "int_const 6891...(32 digits omitted)...0000" - }, - "value": "0x000000001440b0be1615a47dba6e5b3b1f10000000" - }, - "src": "46617:49:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "46610:56:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10111, - "nodeType": "ExpressionStatement", - "src": "46610:56:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 10119, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 10112, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10025, - "src": "46712:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10118, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10115, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 10113, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10025, - "src": "46718:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 10114, - "name": "_x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10019, - "src": "46723:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "46718:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 10116, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "46717:9:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 10117, - "name": "FIXED_1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6237, - "src": "46729:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "46717:19:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "46712:24:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10120, - "nodeType": "ExpressionStatement", - "src": "46712:24:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 10125, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 10121, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10029, - "src": "46740:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "-=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10124, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 10122, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10025, - "src": "46747:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "hexValue": "3078303030303030303032643230373630316634366139396234313132343138343030303030303030303030", - "id": 10123, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "46752:44:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_15355854537983727757610740636188672000000_by_1", - "typeString": "int_const 1535...(33 digits omitted)...0000" - }, - "value": "0x000000002d207601f46a99b4112418400000000000" - }, - "src": "46747:49:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "46740:56:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10126, - "nodeType": "ExpressionStatement", - "src": "46740:56:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 10134, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 10127, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10025, - "src": "46842:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10133, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10130, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 10128, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10025, - "src": "46848:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 10129, - "name": "_x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10019, - "src": "46853:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "46848:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 10131, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "46847:9:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 10132, - "name": "FIXED_1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6237, - "src": "46859:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "46847:19:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "46842:24:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10135, - "nodeType": "ExpressionStatement", - "src": "46842:24:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 10140, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 10136, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10029, - "src": "46870:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10139, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 10137, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10025, - "src": "46877:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "hexValue": "3078303030303030303036366562616163346333376336323264643832383861376562316232303030303030", - "id": 10138, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "46882:44:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_35022056686251398262544482483830784000000_by_1", - "typeString": "int_const 3502...(33 digits omitted)...0000" - }, - "value": "0x0000000066ebaac4c37c622dd8288a7eb1b2000000" - }, - "src": "46877:49:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "46870:56:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10141, - "nodeType": "ExpressionStatement", - "src": "46870:56:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 10149, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 10142, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10025, - "src": "46972:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10148, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10145, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 10143, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10025, - "src": "46978:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 10144, - "name": "_x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10019, - "src": "46983:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "46978:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 10146, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "46977:9:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 10147, - "name": "FIXED_1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6237, - "src": "46989:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "46977:19:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "46972:24:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10150, - "nodeType": "ExpressionStatement", - "src": "46972:24:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 10155, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 10151, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10029, - "src": "47000:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "-=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10154, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 10152, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10025, - "src": "47007:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "hexValue": "3078303030303030303065663137323430313335663764626434336131626131306366323030303030303030", - "id": 10153, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "47012:44:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_81358244885252463857919590400000000000000_by_1", - "typeString": "int_const 8135...(33 digits omitted)...0000" - }, - "value": "0x00000000ef17240135f7dbd43a1ba10cf200000000" - }, - "src": "47007:49:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "47000:56:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10156, - "nodeType": "ExpressionStatement", - "src": "47000:56:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 10164, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 10157, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10025, - "src": "47102:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10163, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10160, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 10158, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10025, - "src": "47108:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 10159, - "name": "_x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10019, - "src": "47113:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "47108:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 10161, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "47107:9:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 10162, - "name": "FIXED_1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6237, - "src": "47119:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "47107:19:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "47102:24:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10165, - "nodeType": "ExpressionStatement", - "src": "47102:24:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 10170, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 10166, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10029, - "src": "47130:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10169, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 10167, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10025, - "src": "47137:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "hexValue": "3078303030303030303233336333336336373661356562323431363039346138376233363537303030303030", - "id": 10168, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "47142:44:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_191838485670993607105842450247345766400000_by_1", - "typeString": "int_const 1918...(34 digits omitted)...0000" - }, - "value": "0x0000000233c33c676a5eb2416094a87b3657000000" - }, - "src": "47137:49:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "47130:56:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10171, - "nodeType": "ExpressionStatement", - "src": "47130:56:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 10179, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 10172, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10025, - "src": "47232:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10178, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10175, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 10173, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10025, - "src": "47238:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 10174, - "name": "_x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10019, - "src": "47243:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "47238:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 10176, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "47237:9:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 10177, - "name": "FIXED_1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6237, - "src": "47249:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "47237:19:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "47232:24:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10180, - "nodeType": "ExpressionStatement", - "src": "47232:24:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 10185, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 10181, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10029, - "src": "47260:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "-=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10184, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 10182, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10025, - "src": "47267:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "hexValue": "3078303030303030303534316364653438626330323534626564343961396638373030303030303030303030", - "id": 10183, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "47272:44:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_457953461925960171898563951427426713600000_by_1", - "typeString": "int_const 4579...(34 digits omitted)...0000" - }, - "value": "0x0000000541cde48bc0254bed49a9f8700000000000" - }, - "src": "47267:49:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "47260:56:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10186, - "nodeType": "ExpressionStatement", - "src": "47260:56:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 10194, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 10187, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10025, - "src": "47362:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10193, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10190, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 10188, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10025, - "src": "47368:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 10189, - "name": "_x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10019, - "src": "47373:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "47368:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 10191, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "47367:9:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 10192, - "name": "FIXED_1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6237, - "src": "47379:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "47367:19:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "47362:24:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10195, - "nodeType": "ExpressionStatement", - "src": "47362:24:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 10200, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 10196, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10029, - "src": "47390:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10199, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 10197, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10025, - "src": "47397:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "hexValue": "3078303030303030306361653166616432636464346434636238643733616263613064313961343030303030", - "id": 10198, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "47402:44:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1104598668270551480892683896320648806400000_by_1", - "typeString": "int_const 1104...(35 digits omitted)...0000" - }, - "value": "0x0000000cae1fad2cdd4d4cb8d73abca0d19a400000" - }, - "src": "47397:49:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "47390:56:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10201, - "nodeType": "ExpressionStatement", - "src": "47390:56:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 10209, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 10202, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10025, - "src": "47492:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10208, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10205, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 10203, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10025, - "src": "47498:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 10204, - "name": "_x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10019, - "src": "47503:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "47498:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 10206, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "47497:9:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 10207, - "name": "FIXED_1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6237, - "src": "47509:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "47497:19:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "47492:24:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10210, - "nodeType": "ExpressionStatement", - "src": "47492:24:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 10215, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 10211, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10029, - "src": "47520:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "-=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10214, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 10212, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10025, - "src": "47527:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "hexValue": "3078303030303030316564623261613266373630643135633431636565646261393536343030303030303030", - "id": 10213, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "47532:44:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2687947090053832841608264823563773542400000_by_1", - "typeString": "int_const 2687...(35 digits omitted)...0000" - }, - "value": "0x0000001edb2aa2f760d15c41ceedba956400000000" - }, - "src": "47527:49:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "47520:56:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10216, - "nodeType": "ExpressionStatement", - "src": "47520:56:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 10224, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 10217, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10025, - "src": "47622:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10223, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10220, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 10218, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10025, - "src": "47628:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 10219, - "name": "_x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10019, - "src": "47633:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "47628:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 10221, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "47627:9:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 10222, - "name": "FIXED_1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6237, - "src": "47639:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "47627:19:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "47622:24:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10225, - "nodeType": "ExpressionStatement", - "src": "47622:24:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 10230, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 10226, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10029, - "src": "47650:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10229, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 10227, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10025, - "src": "47657:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "hexValue": "3078303030303030346261386432306432646162643338366339353239363539383431613265323030303030", - "id": 10228, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "47662:44:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_6590868088830032065882824000000000000000000_by_1", - "typeString": "int_const 6590...(35 digits omitted)...0000" - }, - "value": "0x0000004ba8d20d2dabd386c9529659841a2e200000" - }, - "src": "47657:49:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "47650:56:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10231, - "nodeType": "ExpressionStatement", - "src": "47650:56:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 10239, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 10232, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10025, - "src": "47752:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10238, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10235, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 10233, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10025, - "src": "47758:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 10234, - "name": "_x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10019, - "src": "47763:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "47758:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 10236, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "47757:9:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 10237, - "name": "FIXED_1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6237, - "src": "47769:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "47757:19:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "47752:24:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10240, - "nodeType": "ExpressionStatement", - "src": "47752:24:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 10245, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 10241, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10029, - "src": "47780:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "-=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10244, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 10242, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10025, - "src": "47787:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "hexValue": "3078303030303030626163303835343662383637636461613230303030303030303030303030303030303030", - "id": 10243, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "47792:44:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_16268396552280633070412438458028041175040000_by_1", - "typeString": "int_const 1626...(36 digits omitted)...0000" - }, - "value": "0x000000bac08546b867cdaa20000000000000000000" - }, - "src": "47787:49:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "47780:56:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10246, - "nodeType": "ExpressionStatement", - "src": "47780:56:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 10254, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 10247, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10025, - "src": "47882:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10253, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10250, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 10248, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10025, - "src": "47888:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 10249, - "name": "_x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10019, - "src": "47893:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "47888:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 10251, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "47887:9:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 10252, - "name": "FIXED_1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6237, - "src": "47899:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "47887:19:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "47882:24:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10255, - "nodeType": "ExpressionStatement", - "src": "47882:24:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 10260, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 10256, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10029, - "src": "47910:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10259, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 10257, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10025, - "src": "47917:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "hexValue": "3078303030303031636661386537306330333632356239646237366338656266356262663234383230303030", - "id": 10258, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "47922:44:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_40390462938090940419774080664538139934720000_by_1", - "typeString": "int_const 4039...(36 digits omitted)...0000" - }, - "value": "0x000001cfa8e70c03625b9db76c8ebf5bbf24820000" - }, - "src": "47917:49:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "47910:56:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10261, - "nodeType": "ExpressionStatement", - "src": "47910:56:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 10269, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 10262, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10025, - "src": "48012:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10268, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10265, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 10263, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10025, - "src": "48018:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 10264, - "name": "_x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10019, - "src": "48023:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "48018:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 10266, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "48017:9:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 10267, - "name": "FIXED_1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6237, - "src": "48029:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "48017:19:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "48012:24:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10270, - "nodeType": "ExpressionStatement", - "src": "48012:24:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 10275, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 10271, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10029, - "src": "48040:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "-=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10274, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 10272, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10025, - "src": "48047:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "hexValue": "3078303030303034383531643939663832303630646632363566333330396232366638323030303030303030", - "id": 10273, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "48052:44:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_100798987671917000666814256179934522245120000_by_1", - "typeString": "int_const 1007...(37 digits omitted)...0000" - }, - "value": "0x000004851d99f82060df265f3309b26f8200000000" - }, - "src": "48047:49:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "48040:56:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10276, - "nodeType": "ExpressionStatement", - "src": "48040:56:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 10284, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 10277, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10025, - "src": "48142:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10283, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10280, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 10278, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10025, - "src": "48148:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 10279, - "name": "_x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10019, - "src": "48153:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "48148:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 10281, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "48147:9:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 10282, - "name": "FIXED_1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6237, - "src": "48159:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "48147:19:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "48142:24:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10285, - "nodeType": "ExpressionStatement", - "src": "48142:24:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 10290, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 10286, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10029, - "src": "48170:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10289, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 10287, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10025, - "src": "48177:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "hexValue": "3078303030303062353530643139623132396432373063343466366635356630323737323363626230303030", - "id": 10288, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "48182:44:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_252717199309391137912965664538441463029760000_by_1", - "typeString": "int_const 2527...(37 digits omitted)...0000" - }, - "value": "0x00000b550d19b129d270c44f6f55f027723cbb0000" - }, - "src": "48177:49:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "48170:56:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10291, - "nodeType": "ExpressionStatement", - "src": "48170:56:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 10299, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 10292, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10025, - "src": "48272:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10298, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10295, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 10293, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10025, - "src": "48278:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 10294, - "name": "_x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10019, - "src": "48283:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "48278:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 10296, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "48277:9:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 10297, - "name": "FIXED_1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6237, - "src": "48289:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "48277:19:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "48272:24:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10300, - "nodeType": "ExpressionStatement", - "src": "48272:24:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 10305, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 10301, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10029, - "src": "48300:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "-=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10304, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 10302, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10025, - "src": "48307:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "hexValue": "3078303030303163383737646164633736316463323732646562363564346230303030303030303030303030", - "id": 10303, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "48312:44:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_636223790447205380259840000000000000000000000_by_1", - "typeString": "int_const 6362...(37 digits omitted)...0000" - }, - "value": "0x00001c877dadc761dc272deb65d4b0000000000000" - }, - "src": "48307:49:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "48300:56:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10306, - "nodeType": "ExpressionStatement", - "src": "48300:56:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 10314, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 10307, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10025, - "src": "48402:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10313, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10310, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 10308, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10025, - "src": "48408:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 10309, - "name": "_x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10019, - "src": "48413:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "48408:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 10311, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "48407:9:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 10312, - "name": "FIXED_1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6237, - "src": "48419:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "48407:19:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "48402:24:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10315, - "nodeType": "ExpressionStatement", - "src": "48402:24:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 10320, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 10316, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10029, - "src": "48430:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10319, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 10317, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10025, - "src": "48437:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "hexValue": "3078303030303438313738656365393734373966333361373766326164323261383162363434303663303030", - "id": 10318, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "48442:44:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1607705831573194746802610334450509017233408000_by_1", - "typeString": "int_const 1607...(38 digits omitted)...8000" - }, - "value": "0x000048178ece97479f33a77f2ad22a81b64406c000" - }, - "src": "48437:49:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "48430:56:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10321, - "nodeType": "ExpressionStatement", - "src": "48430:56:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 10329, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 10322, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10025, - "src": "48532:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10328, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10325, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 10323, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10025, - "src": "48538:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 10324, - "name": "_x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10019, - "src": "48543:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "48538:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 10326, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "48537:9:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 10327, - "name": "FIXED_1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6237, - "src": "48549:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "48537:19:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "48532:24:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10330, - "nodeType": "ExpressionStatement", - "src": "48532:24:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 10335, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 10331, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10029, - "src": "48560:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "-=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10334, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 10332, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10025, - "src": "48567:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "hexValue": "3078303030306236636138323638623964383130666564663636393565663266386136633030303030303030", - "id": 10333, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "48572:44:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_4076376683803157531046819273912505658769408000_by_1", - "typeString": "int_const 4076...(38 digits omitted)...8000" - }, - "value": "0x0000b6ca8268b9d810fedf6695ef2f8a6c00000000" - }, - "src": "48567:49:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "48560:56:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10336, - "nodeType": "ExpressionStatement", - "src": "48560:56:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 10344, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 10337, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10025, - "src": "48662:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10343, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10340, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 10338, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10025, - "src": "48668:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 10339, - "name": "_x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10019, - "src": "48673:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "48668:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 10341, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "48667:9:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 10342, - "name": "FIXED_1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6237, - "src": "48679:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "48667:19:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "48662:24:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10345, - "nodeType": "ExpressionStatement", - "src": "48662:24:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 10350, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 10346, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10029, - "src": "48690:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10349, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 10347, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10025, - "src": "48697:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "hexValue": "3078303030316430653736363331613562303564303037623863623732613763376631316563333665303030", - "id": 10348, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "48702:44:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_10367703484962349537949059901011799777283072000_by_1", - "typeString": "int_const 1036...(39 digits omitted)...2000" - }, - "value": "0x0001d0e76631a5b05d007b8cb72a7c7f11ec36e000" - }, - "src": "48697:49:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "48690:56:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10351, - "nodeType": "ExpressionStatement", - "src": "48690:56:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 10359, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 10352, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10025, - "src": "48792:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10358, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10355, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 10353, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10025, - "src": "48798:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 10354, - "name": "_x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10019, - "src": "48803:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "48798:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 10356, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "48797:9:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 10357, - "name": "FIXED_1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6237, - "src": "48809:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "48797:19:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "48792:24:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10360, - "nodeType": "ExpressionStatement", - "src": "48792:24:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 10365, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 10361, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10029, - "src": "48820:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "-=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10364, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 10362, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10025, - "src": "48827:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "hexValue": "3078303030346131633337626439663835666439633663373830303030303030303030303030303030303030", - "id": 10363, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "48832:44:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_26443412100478721735433130630260686447443968000_by_1", - "typeString": "int_const 2644...(39 digits omitted)...8000" - }, - "value": "0x0004a1c37bd9f85fd9c6c780000000000000000000" - }, - "src": "48827:49:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "48820:56:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10366, - "nodeType": "ExpressionStatement", - "src": "48820:56:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 10374, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 10367, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10025, - "src": "48922:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10373, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10370, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 10368, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10025, - "src": "48928:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 10369, - "name": "_x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10019, - "src": "48933:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "48928:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 10371, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "48927:9:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 10372, - "name": "FIXED_1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6237, - "src": "48939:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "48927:19:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "48922:24:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10375, - "nodeType": "ExpressionStatement", - "src": "48922:24:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 10380, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 10376, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10029, - "src": "48950:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10379, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 10377, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10025, - "src": "48957:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "hexValue": "3078303030626438333639663162373032626634393165326562666365653038323530333133623635343030", - "id": 10378, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "48962:44:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_67620617646753089502453804016113281250000000000_by_1", - "typeString": "int_const 6762...(39 digits omitted)...0000" - }, - "value": "0x000bd8369f1b702bf491e2ebfcee08250313b65400" - }, - "src": "48957:49:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "48950:56:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10381, - "nodeType": "ExpressionStatement", - "src": "48950:56:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 10389, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 10382, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10025, - "src": "49052:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10388, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10385, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 10383, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10025, - "src": "49058:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 10384, - "name": "_x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10019, - "src": "49063:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "49058:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 10386, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "49057:9:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 10387, - "name": "FIXED_1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6237, - "src": "49069:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "49057:19:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "49052:24:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10390, - "nodeType": "ExpressionStatement", - "src": "49052:24:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 10395, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 10391, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10029, - "src": "49080:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "-=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10394, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 10392, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10025, - "src": "49087:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "hexValue": "3078303031653563376333326139663663373061623263623539643932323537363464343030303030303030", - "id": 10393, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "49092:44:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_173332210846474760735500226875327576716638945280_by_1", - "typeString": "int_const 1733...(40 digits omitted)...5280" - }, - "value": "0x001e5c7c32a9f6c70ab2cb59d9225764d400000000" - }, - "src": "49087:49:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "49080:56:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10396, - "nodeType": "ExpressionStatement", - "src": "49080:56:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 10404, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 10397, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10025, - "src": "49182:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10403, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10400, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 10398, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10025, - "src": "49188:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 10399, - "name": "_x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10019, - "src": "49193:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "49188:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 10401, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "49187:9:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 10402, - "name": "FIXED_1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6237, - "src": "49199:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "49187:19:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "49182:24:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10405, - "nodeType": "ExpressionStatement", - "src": "49182:24:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 10410, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 10406, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10029, - "src": "49210:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10409, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 10407, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10025, - "src": "49217:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "hexValue": "3078303034646666353832306531363565393130663935313230613730386537343234393632323165363030", - "id": 10408, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "49222:44:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_445286656448864136819345605176268818347976680960_by_1", - "typeString": "int_const 4452...(40 digits omitted)...0960" - }, - "value": "0x004dff5820e165e910f95120a708e742496221e600" - }, - "src": "49217:49:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "49210:56:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10411, - "nodeType": "ExpressionStatement", - "src": "49210:56:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 10419, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 10412, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10025, - "src": "49312:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10418, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10415, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 10413, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10025, - "src": "49318:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 10414, - "name": "_x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10019, - "src": "49323:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "49318:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 10416, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "49317:9:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 10417, - "name": "FIXED_1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6237, - "src": "49329:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "49317:19:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "49312:24:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10420, - "nodeType": "ExpressionStatement", - "src": "49312:24:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 10425, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 10421, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10029, - "src": "49340:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "-=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10424, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 10422, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10025, - "src": "49347:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "hexValue": "3078303063386338663636646231666365643337386565353065353336303030303030303030303030303030", - "id": 10423, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "49352:44:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1146279770154177862273033179056478989553563074560_by_1", - "typeString": "int_const 1146...(41 digits omitted)...4560" - }, - "value": "0x00c8c8f66db1fced378ee50e536000000000000000" - }, - "src": "49347:49:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "49340:56:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10426, - "nodeType": "ExpressionStatement", - "src": "49340:56:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 10434, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 10427, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10025, - "src": "49442:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10433, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10430, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 10428, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10025, - "src": "49448:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 10429, - "name": "_x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10019, - "src": "49453:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "49448:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 10431, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "49447:9:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 10432, - "name": "FIXED_1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6237, - "src": "49459:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "49447:19:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "49442:24:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10435, - "nodeType": "ExpressionStatement", - "src": "49442:24:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 10440, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 10436, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10029, - "src": "49470:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10439, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 10437, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10025, - "src": "49477:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "hexValue": "3078303230356462386466666666343562666132393338663132386635393964626631366562313164383830", - "id": 10438, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "49482:44:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2956444461658038477759873400213214992927382689920_by_1", - "typeString": "int_const 2956...(41 digits omitted)...9920" - }, - "value": "0x0205db8dffff45bfa2938f128f599dbf16eb11d880" - }, - "src": "49477:49:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "49470:56:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10441, - "nodeType": "ExpressionStatement", - "src": "49470:56:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 10449, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 10442, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10025, - "src": "49572:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10448, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10445, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 10443, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10025, - "src": "49578:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 10444, - "name": "_x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10019, - "src": "49583:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "49578:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 10446, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "49577:9:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 10447, - "name": "FIXED_1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6237, - "src": "49589:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "49577:19:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "49572:24:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10450, - "nodeType": "ExpressionStatement", - "src": "49572:24:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 10455, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 10451, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10029, - "src": "49600:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "-=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10454, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 10452, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10025, - "src": "49607:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "hexValue": "3078303533613034346562643938343335313439336531373836616633386433396130383030303030303030", - "id": 10453, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "49612:44:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_7638725713617153619200000000000000000000000000000_by_1", - "typeString": "int_const 7638...(41 digits omitted)...0000" - }, - "value": "0x053a044ebd984351493e1786af38d39a0800000000" - }, - "src": "49607:49:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "49600:56:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10456, - "nodeType": "ExpressionStatement", - "src": "49600:56:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 10464, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 10457, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10025, - "src": "49702:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10463, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10460, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 10458, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10025, - "src": "49708:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 10459, - "name": "_x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10019, - "src": "49713:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "49708:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 10461, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "49707:9:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 10462, - "name": "FIXED_1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6237, - "src": "49719:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "49707:19:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "49702:24:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10465, - "nodeType": "ExpressionStatement", - "src": "49702:24:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 10470, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 10466, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10029, - "src": "49730:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10469, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 10467, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10025, - "src": "49737:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "hexValue": "3078306438366461653261346363306634373633336135343434373937333538363962343837623539633430", - "id": 10468, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "49742:44:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_19769407354499582705095371848882117322613875645504_by_1", - "typeString": "int_const 1976...(42 digits omitted)...5504" - }, - "value": "0x0d86dae2a4cc0f47633a544479735869b487b59c40" - }, - "src": "49737:49:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "49730:56:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10471, - "nodeType": "ExpressionStatement", - "src": "49730:56:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 10479, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 10472, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10025, - "src": "49832:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10478, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10475, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 10473, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10025, - "src": "49838:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 10474, - "name": "_x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10019, - "src": "49843:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "49838:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 10476, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "49837:9:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 10477, - "name": "FIXED_1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6237, - "src": "49849:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "49837:19:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "49832:24:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10480, - "nodeType": "ExpressionStatement", - "src": "49832:24:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 10485, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 10481, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10029, - "src": "49860:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "-=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10484, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 10482, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10025, - "src": "49867:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "hexValue": "3078323331303030303030303030303030303030303030303030303030303030303030303030303030303030", - "id": 10483, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "49872:44:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_51243901158914783569516699447114673376686134788096_by_1", - "typeString": "int_const 5124...(42 digits omitted)...8096" - }, - "value": "0x231000000000000000000000000000000000000000" - }, - "src": "49867:49:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "49860:56:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10486, - "nodeType": "ExpressionStatement", - "src": "49860:56:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 10494, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 10487, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10025, - "src": "49962:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10493, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10490, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 10488, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10025, - "src": "49968:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 10489, - "name": "_x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10019, - "src": "49973:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "49968:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 10491, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "49967:9:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 10492, - "name": "FIXED_1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6237, - "src": "49979:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "49967:19:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "49962:24:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10495, - "nodeType": "ExpressionStatement", - "src": "49962:24:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 10500, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 10496, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10029, - "src": "49990:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10499, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 10497, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10025, - "src": "49997:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "hexValue": "3078356230343835613736663636343663323033396462313530376364643531623038363439363830383232", - "id": 10498, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "50002:44:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_133022465544965907471119545993290733585983764695074_by_1", - "typeString": "int_const 1330...(43 digits omitted)...5074" - }, - "value": "0x5b0485a76f6646c2039db1507cdd51b08649680822" - }, - "src": "49997:49:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "49990:56:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10501, - "nodeType": "ExpressionStatement", - "src": "49990:56:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 10509, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 10502, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10025, - "src": "50092:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10508, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10505, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 10503, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10025, - "src": "50098:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 10504, - "name": "_x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10019, - "src": "50103:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "50098:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 10506, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "50097:9:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 10507, - "name": "FIXED_1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6237, - "src": "50109:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "50097:19:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "50092:24:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10510, - "nodeType": "ExpressionStatement", - "src": "50092:24:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 10515, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 10511, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10029, - "src": "50120:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "-=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10514, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 10512, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10025, - "src": "50127:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "hexValue": "3078656339383363343663343935343562633137656661366235623030353565323432323030303030303030", - "id": 10513, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "50132:44:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_345783497216724000335707367685598692782880644399104_by_1", - "typeString": "int_const 3457...(43 digits omitted)...9104" - }, - "value": "0xec983c46c49545bc17efa6b5b0055e242200000000" - }, - "src": "50127:49:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "50120:56:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10516, - "nodeType": "ExpressionStatement", - "src": "50120:56:10" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10519, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 10517, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10029, - "src": "50230:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30786465316263346431396566636163383234343564613735623030303030303030", - "id": 10518, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "50236:34:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_295232799039604140847618609643520000000_by_1", - "typeString": "int_const 2952...(31 digits omitted)...0000" - }, - "value": "0xde1bc4d19efcac82445da75b00000000" - }, - "src": "50230:40:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 10023, - "id": 10520, - "nodeType": "Return", - "src": "50223:47:10" - } - ] - }, - "documentation": "@dev computes W(x / FIXED_1) / (x / FIXED_1) * FIXED_1\ninput range: 1 <= x <= 1 / e * FIXED_1\nauto-generated via 'PrintFunctionLambertPos1.py'", - "id": 10522, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "lambertPos1", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 10020, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10019, - "name": "_x", - "nodeType": "VariableDeclaration", - "scope": 10522, - "src": "45858:10:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10018, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "45858:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "45857:12:10" - }, - "payable": false, - "returnParameters": { - "id": 10023, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10022, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 10522, - "src": "45893:7:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10021, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "45893:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "45892:9:10" - }, - "scope": 11642, - "src": "45837:4454:10", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 10589, - "nodeType": "Block", - "src": "50497:297:10", - "statements": [ - { - "assignments": [ - 10530 - ], - "declarations": [ - { - "constant": false, - "id": 10530, - "name": "x", - "nodeType": "VariableDeclaration", - "scope": 10590, - "src": "50501:9:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10529, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "50501:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 10536, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10535, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10533, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 10531, - "name": "_x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10524, - "src": "50513:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "id": 10532, - "name": "LAMBERT_CONV_RADIUS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6258, - "src": "50518:19:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "50513:24:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 10534, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "50540:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "50513:28:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "50501:40:10" - }, - { - "assignments": [ - 10538 - ], - "declarations": [ - { - "constant": false, - "id": 10538, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 10590, - "src": "50545:9:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10537, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "50545:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 10542, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10541, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 10539, - "name": "x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10530, - "src": "50557:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 10540, - "name": "LAMBERT_POS2_SAMPLE", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6261, - "src": "50561:19:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "50557:23:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "50545:35:10" - }, - { - "assignments": [ - 10544 - ], - "declarations": [ - { - "constant": false, - "id": 10544, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 10590, - "src": "50584:9:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10543, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "50584:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 10548, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10547, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 10545, - "name": "LAMBERT_POS2_SAMPLE", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6261, - "src": "50596:19:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 10546, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10538, - "src": "50618:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "50596:23:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "50584:35:10" - }, - { - "assignments": [ - 10550 - ], - "declarations": [ - { - "constant": false, - "id": 10550, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 10590, - "src": "50623:9:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10549, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "50623:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 10557, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10556, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 10551, - "name": "LAMBERT_POS2_SAMPLE", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6261, - "src": "50635:19:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10554, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 10552, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10538, - "src": "50658:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 10553, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "50662:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "50658:5:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 10555, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "50657:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "50635:29:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "50623:41:10" - }, - { - "assignments": [ - 10559 - ], - "declarations": [ - { - "constant": false, - "id": 10559, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 10590, - "src": "50668:9:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10558, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "50668:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 10563, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 10560, - "name": "lambertArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6858, - "src": "50680:12:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 10562, - "indexExpression": { - "argumentTypes": null, - "id": 10561, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10538, - "src": "50693:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "50680:15:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "50668:27:10" - }, - { - "assignments": [ - 10565 - ], - "declarations": [ - { - "constant": false, - "id": 10565, - "name": "d", - "nodeType": "VariableDeclaration", - "scope": 10590, - "src": "50699:9:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10564, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "50699:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 10571, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 10566, - "name": "lambertArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6858, - "src": "50711:12:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$128_storage", - "typeString": "uint256[128] storage ref" - } - }, - "id": 10570, - "indexExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10569, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 10567, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10538, - "src": "50724:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 10568, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "50728:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "50724:5:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "50711:19:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "50699:31:10" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10587, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10584, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10577, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 10572, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10559, - "src": "50742:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10575, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 10573, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10550, - "src": "50747:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "id": 10574, - "name": "x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10530, - "src": "50751:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "50747:5:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 10576, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "50746:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "50742:11:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10583, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 10578, - "name": "d", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10565, - "src": "50756:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10581, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 10579, - "name": "x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10530, - "src": "50761:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "id": 10580, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10544, - "src": "50765:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "50761:5:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 10582, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "50760:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "50756:11:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "50742:25:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 10585, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "50741:27:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 10586, - "name": "LAMBERT_POS2_SAMPLE", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6261, - "src": "50771:19:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "50741:49:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 10528, - "id": 10588, - "nodeType": "Return", - "src": "50734:56:10" - } - ] - }, - "documentation": "@dev computes W(x / FIXED_1) / (x / FIXED_1) * FIXED_1\ninput range: LAMBERT_CONV_RADIUS + 1 <= x <= LAMBERT_POS2_MAXVAL", - "id": 10590, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "lambertPos2", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 10525, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10524, - "name": "_x", - "nodeType": "VariableDeclaration", - "scope": 10590, - "src": "50453:10:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10523, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "50453:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "50452:12:10" - }, - "payable": false, - "returnParameters": { - "id": 10528, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10527, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 10590, - "src": "50488:7:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10526, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "50488:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "50487:9:10" - }, - "scope": 11642, - "src": "50432:362:10", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 10640, - "nodeType": "Block", - "src": "51000:205:10", - "statements": [ - { - "assignments": [ - 10598 - ], - "declarations": [ - { - "constant": false, - "id": 10598, - "name": "l1", - "nodeType": "VariableDeclaration", - "scope": 10641, - "src": "51004:10:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10597, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "51004:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 10609, - "initialValue": { - "argumentTypes": null, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10601, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 10599, - "name": "_x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10592, - "src": "51017:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "id": 10600, - "name": "OPT_LOG_MAX_VAL", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6252, - "src": "51022:15:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "51017:20:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 10606, - "name": "_x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10592, - "src": "51068:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 10605, - "name": "generalLog", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8543, - "src": "51057:10:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256) pure returns (uint256)" - } - }, - "id": 10607, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "51057:14:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10608, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "51017:54:10", - "trueExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 10603, - "name": "_x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10592, - "src": "51051:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 10602, - "name": "optimalLog", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9523, - "src": "51040:10:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256) pure returns (uint256)" - } - }, - "id": 10604, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "51040:14:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "51004:67:10" - }, - { - "assignments": [ - 10611 - ], - "declarations": [ - { - "constant": false, - "id": 10611, - "name": "l2", - "nodeType": "VariableDeclaration", - "scope": 10641, - "src": "51075:10:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10610, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "51075:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 10622, - "initialValue": { - "argumentTypes": null, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10614, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 10612, - "name": "l1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10598, - "src": "51088:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "id": 10613, - "name": "OPT_LOG_MAX_VAL", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6252, - "src": "51093:15:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "51088:20:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 10619, - "name": "l1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10598, - "src": "51139:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 10618, - "name": "generalLog", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8543, - "src": "51128:10:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256) pure returns (uint256)" - } - }, - "id": 10620, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "51128:14:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10621, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "51088:54:10", - "trueExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 10616, - "name": "l1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10598, - "src": "51122:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 10615, - "name": "optimalLog", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9523, - "src": "51111:10:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256) pure returns (uint256)" - } - }, - "id": 10617, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "51111:14:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "51075:67:10" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10638, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10635, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10632, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10625, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 10623, - "name": "l1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10598, - "src": "51155:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "id": 10624, - "name": "l2", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10611, - "src": "51160:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "51155:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10631, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10628, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 10626, - "name": "l2", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10611, - "src": "51166:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 10627, - "name": "FIXED_1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6237, - "src": "51171:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "51166:12:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 10629, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "51165:14:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 10630, - "name": "l1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10598, - "src": "51182:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "51165:19:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "51155:29:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 10633, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "51154:31:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 10634, - "name": "FIXED_1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6237, - "src": "51188:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "51154:41:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 10636, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "51153:43:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 10637, - "name": "_x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10592, - "src": "51199:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "51153:48:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 10596, - "id": 10639, - "nodeType": "Return", - "src": "51146:55:10" - } - ] - }, - "documentation": "@dev computes W(x / FIXED_1) / (x / FIXED_1) * FIXED_1\ninput range: LAMBERT_POS2_MAXVAL + 1 <= x <= LAMBERT_POS3_MAXVAL", - "id": 10641, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "lambertPos3", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 10593, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10592, - "name": "_x", - "nodeType": "VariableDeclaration", - "scope": 10641, - "src": "50956:10:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10591, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "50956:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "50955:12:10" - }, - "payable": false, - "returnParameters": { - "id": 10596, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10595, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 10641, - "src": "50991:7:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10594, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "50991:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "50990:9:10" - }, - "scope": 11642, - "src": "50935:270:10", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 11144, - "nodeType": "Block", - "src": "51440:4364:10", - "statements": [ - { - "assignments": [ - 10649 - ], - "declarations": [ - { - "constant": false, - "id": 10649, - "name": "xi", - "nodeType": "VariableDeclaration", - "scope": 11145, - "src": "51444:10:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10648, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "51444:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 10651, - "initialValue": { - "argumentTypes": null, - "id": 10650, - "name": "_x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10643, - "src": "51457:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "51444:15:10" - }, - { - "assignments": [ - 10653 - ], - "declarations": [ - { - "constant": false, - "id": 10653, - "name": "res", - "nodeType": "VariableDeclaration", - "scope": 11145, - "src": "51463:11:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10652, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "51463:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 10655, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 10654, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "51477:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "51463:15:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 10663, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 10656, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10649, - "src": "51483:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10662, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10659, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 10657, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10649, - "src": "51489:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 10658, - "name": "_x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10643, - "src": "51494:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "51489:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 10660, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "51488:9:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 10661, - "name": "FIXED_1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6237, - "src": "51500:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "51488:19:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "51483:24:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10664, - "nodeType": "ExpressionStatement", - "src": "51483:24:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 10669, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 10665, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10653, - "src": "51511:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10668, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 10666, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10649, - "src": "51518:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "hexValue": "3078303030303030303030313464323961373361366537623032633336363863376230383830303030303030", - "id": 10667, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "51523:44:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_442849198559406211271427914465280000000_by_1", - "typeString": "int_const 4428...(31 digits omitted)...0000" - }, - "value": "0x00000000014d29a73a6e7b02c3668c7b0880000000" - }, - "src": "51518:49:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "51511:56:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10670, - "nodeType": "ExpressionStatement", - "src": "51511:56:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 10678, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 10671, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10649, - "src": "51613:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10677, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10674, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 10672, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10649, - "src": "51619:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 10673, - "name": "_x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10643, - "src": "51624:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "51619:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 10675, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "51618:9:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 10676, - "name": "FIXED_1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6237, - "src": "51630:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "51618:19:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "51613:24:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10679, - "nodeType": "ExpressionStatement", - "src": "51613:24:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 10684, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 10680, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10653, - "src": "51641:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10683, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 10681, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10649, - "src": "51648:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "hexValue": "3078303030303030303030323530346130636439613766373231356236306639626534383030303030303030", - "id": 10682, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "51653:44:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_787287464105611042260316292382720000000_by_1", - "typeString": "int_const 7872...(31 digits omitted)...0000" - }, - "value": "0x0000000002504a0cd9a7f7215b60f9be4800000000" - }, - "src": "51648:49:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "51641:56:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10685, - "nodeType": "ExpressionStatement", - "src": "51641:56:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 10693, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 10686, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10649, - "src": "51743:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10692, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10689, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 10687, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10649, - "src": "51749:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 10688, - "name": "_x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10643, - "src": "51754:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "51749:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 10690, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "51748:9:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 10691, - "name": "FIXED_1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6237, - "src": "51760:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "51748:19:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "51743:24:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10694, - "nodeType": "ExpressionStatement", - "src": "51743:24:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 10699, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 10695, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10653, - "src": "51771:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10698, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 10696, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10649, - "src": "51778:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "hexValue": "3078303030303030303030343834643061313139316330656164323637393637633761346130303030303030", - "id": 10697, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "51783:44:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1537670828331271566914680258560000000000_by_1", - "typeString": "int_const 1537...(32 digits omitted)...0000" - }, - "value": "0x000000000484d0a1191c0ead267967c7a4a0000000" - }, - "src": "51778:49:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "51771:56:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10700, - "nodeType": "ExpressionStatement", - "src": "51771:56:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 10708, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 10701, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10649, - "src": "51873:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10707, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10704, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 10702, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10649, - "src": "51879:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 10703, - "name": "_x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10643, - "src": "51884:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "51879:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 10705, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "51878:9:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 10706, - "name": "FIXED_1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6237, - "src": "51890:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "51878:19:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "51873:24:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10709, - "nodeType": "ExpressionStatement", - "src": "51873:24:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 10714, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 10710, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10653, - "src": "51901:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10713, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 10711, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10649, - "src": "51908:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "hexValue": "3078303030303030303030393565633538306437653834323761346261663236613930613030303030303030", - "id": 10712, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "51913:44:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_3188514229627724721154280984150016000000_by_1", - "typeString": "int_const 3188...(32 digits omitted)...0000" - }, - "value": "0x00000000095ec580d7e8427a4baf26a90a00000000" - }, - "src": "51908:49:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "51901:56:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10715, - "nodeType": "ExpressionStatement", - "src": "51901:56:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 10723, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 10716, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10649, - "src": "52003:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10722, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10719, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 10717, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10649, - "src": "52009:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 10718, - "name": "_x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10643, - "src": "52014:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "52009:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 10720, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "52008:9:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 10721, - "name": "FIXED_1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6237, - "src": "52020:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "52008:19:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "52003:24:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10724, - "nodeType": "ExpressionStatement", - "src": "52003:24:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 10729, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 10725, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10653, - "src": "52031:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10728, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 10726, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10649, - "src": "52038:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "hexValue": "3078303030303030303031343430623062653136313561343764626136653562336231663130303030303030", - "id": 10727, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "52043:44:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_6891635629803648326702674961498112000000_by_1", - "typeString": "int_const 6891...(32 digits omitted)...0000" - }, - "value": "0x000000001440b0be1615a47dba6e5b3b1f10000000" - }, - "src": "52038:49:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "52031:56:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10730, - "nodeType": "ExpressionStatement", - "src": "52031:56:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 10738, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 10731, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10649, - "src": "52133:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10737, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10734, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 10732, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10649, - "src": "52139:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 10733, - "name": "_x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10643, - "src": "52144:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "52139:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 10735, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "52138:9:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 10736, - "name": "FIXED_1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6237, - "src": "52150:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "52138:19:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "52133:24:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10739, - "nodeType": "ExpressionStatement", - "src": "52133:24:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 10744, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 10740, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10653, - "src": "52161:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10743, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 10741, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10649, - "src": "52168:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "hexValue": "3078303030303030303032643230373630316634366139396234313132343138343030303030303030303030", - "id": 10742, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "52173:44:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_15355854537983727757610740636188672000000_by_1", - "typeString": "int_const 1535...(33 digits omitted)...0000" - }, - "value": "0x000000002d207601f46a99b4112418400000000000" - }, - "src": "52168:49:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "52161:56:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10745, - "nodeType": "ExpressionStatement", - "src": "52161:56:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 10753, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 10746, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10649, - "src": "52263:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10752, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10749, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 10747, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10649, - "src": "52269:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 10748, - "name": "_x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10643, - "src": "52274:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "52269:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 10750, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "52268:9:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 10751, - "name": "FIXED_1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6237, - "src": "52280:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "52268:19:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "52263:24:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10754, - "nodeType": "ExpressionStatement", - "src": "52263:24:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 10759, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 10755, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10653, - "src": "52291:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10758, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 10756, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10649, - "src": "52298:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "hexValue": "3078303030303030303036366562616163346333376336323264643832383861376562316232303030303030", - "id": 10757, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "52303:44:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_35022056686251398262544482483830784000000_by_1", - "typeString": "int_const 3502...(33 digits omitted)...0000" - }, - "value": "0x0000000066ebaac4c37c622dd8288a7eb1b2000000" - }, - "src": "52298:49:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "52291:56:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10760, - "nodeType": "ExpressionStatement", - "src": "52291:56:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 10768, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 10761, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10649, - "src": "52393:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10767, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10764, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 10762, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10649, - "src": "52399:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 10763, - "name": "_x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10643, - "src": "52404:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "52399:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 10765, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "52398:9:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 10766, - "name": "FIXED_1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6237, - "src": "52410:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "52398:19:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "52393:24:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10769, - "nodeType": "ExpressionStatement", - "src": "52393:24:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 10774, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 10770, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10653, - "src": "52421:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10773, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 10771, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10649, - "src": "52428:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "hexValue": "3078303030303030303065663137323430313335663764626434336131626131306366323030303030303030", - "id": 10772, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "52433:44:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_81358244885252463857919590400000000000000_by_1", - "typeString": "int_const 8135...(33 digits omitted)...0000" - }, - "value": "0x00000000ef17240135f7dbd43a1ba10cf200000000" - }, - "src": "52428:49:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "52421:56:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10775, - "nodeType": "ExpressionStatement", - "src": "52421:56:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 10783, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 10776, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10649, - "src": "52523:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10782, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10779, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 10777, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10649, - "src": "52529:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 10778, - "name": "_x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10643, - "src": "52534:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "52529:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 10780, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "52528:9:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 10781, - "name": "FIXED_1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6237, - "src": "52540:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "52528:19:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "52523:24:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10784, - "nodeType": "ExpressionStatement", - "src": "52523:24:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 10789, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 10785, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10653, - "src": "52551:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10788, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 10786, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10649, - "src": "52558:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "hexValue": "3078303030303030303233336333336336373661356562323431363039346138376233363537303030303030", - "id": 10787, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "52563:44:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_191838485670993607105842450247345766400000_by_1", - "typeString": "int_const 1918...(34 digits omitted)...0000" - }, - "value": "0x0000000233c33c676a5eb2416094a87b3657000000" - }, - "src": "52558:49:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "52551:56:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10790, - "nodeType": "ExpressionStatement", - "src": "52551:56:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 10798, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 10791, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10649, - "src": "52653:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10797, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10794, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 10792, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10649, - "src": "52659:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 10793, - "name": "_x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10643, - "src": "52664:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "52659:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 10795, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "52658:9:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 10796, - "name": "FIXED_1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6237, - "src": "52670:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "52658:19:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "52653:24:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10799, - "nodeType": "ExpressionStatement", - "src": "52653:24:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 10804, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 10800, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10653, - "src": "52681:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10803, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 10801, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10649, - "src": "52688:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "hexValue": "3078303030303030303534316364653438626330323534626564343961396638373030303030303030303030", - "id": 10802, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "52693:44:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_457953461925960171898563951427426713600000_by_1", - "typeString": "int_const 4579...(34 digits omitted)...0000" - }, - "value": "0x0000000541cde48bc0254bed49a9f8700000000000" - }, - "src": "52688:49:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "52681:56:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10805, - "nodeType": "ExpressionStatement", - "src": "52681:56:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 10813, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 10806, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10649, - "src": "52783:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10812, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10809, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 10807, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10649, - "src": "52789:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 10808, - "name": "_x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10643, - "src": "52794:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "52789:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 10810, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "52788:9:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 10811, - "name": "FIXED_1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6237, - "src": "52800:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "52788:19:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "52783:24:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10814, - "nodeType": "ExpressionStatement", - "src": "52783:24:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 10819, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 10815, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10653, - "src": "52811:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10818, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 10816, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10649, - "src": "52818:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "hexValue": "3078303030303030306361653166616432636464346434636238643733616263613064313961343030303030", - "id": 10817, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "52823:44:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1104598668270551480892683896320648806400000_by_1", - "typeString": "int_const 1104...(35 digits omitted)...0000" - }, - "value": "0x0000000cae1fad2cdd4d4cb8d73abca0d19a400000" - }, - "src": "52818:49:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "52811:56:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10820, - "nodeType": "ExpressionStatement", - "src": "52811:56:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 10828, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 10821, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10649, - "src": "52913:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10827, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10824, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 10822, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10649, - "src": "52919:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 10823, - "name": "_x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10643, - "src": "52924:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "52919:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 10825, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "52918:9:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 10826, - "name": "FIXED_1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6237, - "src": "52930:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "52918:19:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "52913:24:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10829, - "nodeType": "ExpressionStatement", - "src": "52913:24:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 10834, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 10830, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10653, - "src": "52941:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10833, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 10831, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10649, - "src": "52948:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "hexValue": "3078303030303030316564623261613266373630643135633431636565646261393536343030303030303030", - "id": 10832, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "52953:44:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2687947090053832841608264823563773542400000_by_1", - "typeString": "int_const 2687...(35 digits omitted)...0000" - }, - "value": "0x0000001edb2aa2f760d15c41ceedba956400000000" - }, - "src": "52948:49:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "52941:56:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10835, - "nodeType": "ExpressionStatement", - "src": "52941:56:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 10843, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 10836, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10649, - "src": "53043:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10842, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10839, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 10837, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10649, - "src": "53049:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 10838, - "name": "_x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10643, - "src": "53054:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "53049:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 10840, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "53048:9:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 10841, - "name": "FIXED_1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6237, - "src": "53060:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "53048:19:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "53043:24:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10844, - "nodeType": "ExpressionStatement", - "src": "53043:24:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 10849, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 10845, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10653, - "src": "53071:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10848, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 10846, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10649, - "src": "53078:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "hexValue": "3078303030303030346261386432306432646162643338366339353239363539383431613265323030303030", - "id": 10847, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "53083:44:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_6590868088830032065882824000000000000000000_by_1", - "typeString": "int_const 6590...(35 digits omitted)...0000" - }, - "value": "0x0000004ba8d20d2dabd386c9529659841a2e200000" - }, - "src": "53078:49:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "53071:56:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10850, - "nodeType": "ExpressionStatement", - "src": "53071:56:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 10858, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 10851, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10649, - "src": "53173:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10857, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10854, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 10852, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10649, - "src": "53179:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 10853, - "name": "_x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10643, - "src": "53184:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "53179:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 10855, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "53178:9:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 10856, - "name": "FIXED_1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6237, - "src": "53190:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "53178:19:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "53173:24:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10859, - "nodeType": "ExpressionStatement", - "src": "53173:24:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 10864, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 10860, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10653, - "src": "53201:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10863, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 10861, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10649, - "src": "53208:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "hexValue": "3078303030303030626163303835343662383637636461613230303030303030303030303030303030303030", - "id": 10862, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "53213:44:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_16268396552280633070412438458028041175040000_by_1", - "typeString": "int_const 1626...(36 digits omitted)...0000" - }, - "value": "0x000000bac08546b867cdaa20000000000000000000" - }, - "src": "53208:49:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "53201:56:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10865, - "nodeType": "ExpressionStatement", - "src": "53201:56:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 10873, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 10866, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10649, - "src": "53303:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10872, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10869, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 10867, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10649, - "src": "53309:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 10868, - "name": "_x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10643, - "src": "53314:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "53309:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 10870, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "53308:9:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 10871, - "name": "FIXED_1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6237, - "src": "53320:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "53308:19:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "53303:24:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10874, - "nodeType": "ExpressionStatement", - "src": "53303:24:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 10879, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 10875, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10653, - "src": "53331:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10878, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 10876, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10649, - "src": "53338:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "hexValue": "3078303030303031636661386537306330333632356239646237366338656266356262663234383230303030", - "id": 10877, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "53343:44:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_40390462938090940419774080664538139934720000_by_1", - "typeString": "int_const 4039...(36 digits omitted)...0000" - }, - "value": "0x000001cfa8e70c03625b9db76c8ebf5bbf24820000" - }, - "src": "53338:49:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "53331:56:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10880, - "nodeType": "ExpressionStatement", - "src": "53331:56:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 10888, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 10881, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10649, - "src": "53433:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10887, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10884, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 10882, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10649, - "src": "53439:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 10883, - "name": "_x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10643, - "src": "53444:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "53439:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 10885, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "53438:9:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 10886, - "name": "FIXED_1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6237, - "src": "53450:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "53438:19:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "53433:24:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10889, - "nodeType": "ExpressionStatement", - "src": "53433:24:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 10894, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 10890, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10653, - "src": "53461:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10893, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 10891, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10649, - "src": "53468:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "hexValue": "3078303030303034383531643939663832303630646632363566333330396232366638323030303030303030", - "id": 10892, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "53473:44:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_100798987671917000666814256179934522245120000_by_1", - "typeString": "int_const 1007...(37 digits omitted)...0000" - }, - "value": "0x000004851d99f82060df265f3309b26f8200000000" - }, - "src": "53468:49:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "53461:56:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10895, - "nodeType": "ExpressionStatement", - "src": "53461:56:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 10903, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 10896, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10649, - "src": "53563:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10902, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10899, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 10897, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10649, - "src": "53569:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 10898, - "name": "_x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10643, - "src": "53574:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "53569:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 10900, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "53568:9:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 10901, - "name": "FIXED_1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6237, - "src": "53580:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "53568:19:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "53563:24:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10904, - "nodeType": "ExpressionStatement", - "src": "53563:24:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 10909, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 10905, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10653, - "src": "53591:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10908, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 10906, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10649, - "src": "53598:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "hexValue": "3078303030303062353530643139623132396432373063343466366635356630323737323363626230303030", - "id": 10907, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "53603:44:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_252717199309391137912965664538441463029760000_by_1", - "typeString": "int_const 2527...(37 digits omitted)...0000" - }, - "value": "0x00000b550d19b129d270c44f6f55f027723cbb0000" - }, - "src": "53598:49:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "53591:56:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10910, - "nodeType": "ExpressionStatement", - "src": "53591:56:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 10918, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 10911, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10649, - "src": "53693:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10917, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10914, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 10912, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10649, - "src": "53699:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 10913, - "name": "_x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10643, - "src": "53704:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "53699:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 10915, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "53698:9:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 10916, - "name": "FIXED_1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6237, - "src": "53710:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "53698:19:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "53693:24:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10919, - "nodeType": "ExpressionStatement", - "src": "53693:24:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 10924, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 10920, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10653, - "src": "53721:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10923, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 10921, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10649, - "src": "53728:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "hexValue": "3078303030303163383737646164633736316463323732646562363564346230303030303030303030303030", - "id": 10922, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "53733:44:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_636223790447205380259840000000000000000000000_by_1", - "typeString": "int_const 6362...(37 digits omitted)...0000" - }, - "value": "0x00001c877dadc761dc272deb65d4b0000000000000" - }, - "src": "53728:49:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "53721:56:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10925, - "nodeType": "ExpressionStatement", - "src": "53721:56:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 10933, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 10926, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10649, - "src": "53823:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10932, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10929, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 10927, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10649, - "src": "53829:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 10928, - "name": "_x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10643, - "src": "53834:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "53829:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 10930, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "53828:9:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 10931, - "name": "FIXED_1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6237, - "src": "53840:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "53828:19:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "53823:24:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10934, - "nodeType": "ExpressionStatement", - "src": "53823:24:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 10939, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 10935, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10653, - "src": "53851:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10938, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 10936, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10649, - "src": "53858:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "hexValue": "3078303030303438313738656365393734373966333361373766326164323261383162363434303663303030", - "id": 10937, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "53863:44:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1607705831573194746802610334450509017233408000_by_1", - "typeString": "int_const 1607...(38 digits omitted)...8000" - }, - "value": "0x000048178ece97479f33a77f2ad22a81b64406c000" - }, - "src": "53858:49:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "53851:56:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10940, - "nodeType": "ExpressionStatement", - "src": "53851:56:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 10948, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 10941, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10649, - "src": "53953:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10947, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10944, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 10942, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10649, - "src": "53959:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 10943, - "name": "_x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10643, - "src": "53964:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "53959:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 10945, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "53958:9:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 10946, - "name": "FIXED_1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6237, - "src": "53970:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "53958:19:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "53953:24:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10949, - "nodeType": "ExpressionStatement", - "src": "53953:24:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 10954, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 10950, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10653, - "src": "53981:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10953, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 10951, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10649, - "src": "53988:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "hexValue": "3078303030306236636138323638623964383130666564663636393565663266386136633030303030303030", - "id": 10952, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "53993:44:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_4076376683803157531046819273912505658769408000_by_1", - "typeString": "int_const 4076...(38 digits omitted)...8000" - }, - "value": "0x0000b6ca8268b9d810fedf6695ef2f8a6c00000000" - }, - "src": "53988:49:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "53981:56:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10955, - "nodeType": "ExpressionStatement", - "src": "53981:56:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 10963, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 10956, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10649, - "src": "54083:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10962, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10959, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 10957, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10649, - "src": "54089:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 10958, - "name": "_x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10643, - "src": "54094:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "54089:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 10960, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "54088:9:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 10961, - "name": "FIXED_1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6237, - "src": "54100:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "54088:19:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "54083:24:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10964, - "nodeType": "ExpressionStatement", - "src": "54083:24:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 10969, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 10965, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10653, - "src": "54111:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10968, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 10966, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10649, - "src": "54118:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "hexValue": "3078303030316430653736363331613562303564303037623863623732613763376631316563333665303030", - "id": 10967, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "54123:44:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_10367703484962349537949059901011799777283072000_by_1", - "typeString": "int_const 1036...(39 digits omitted)...2000" - }, - "value": "0x0001d0e76631a5b05d007b8cb72a7c7f11ec36e000" - }, - "src": "54118:49:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "54111:56:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10970, - "nodeType": "ExpressionStatement", - "src": "54111:56:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 10978, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 10971, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10649, - "src": "54213:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10977, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10974, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 10972, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10649, - "src": "54219:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 10973, - "name": "_x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10643, - "src": "54224:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "54219:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 10975, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "54218:9:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 10976, - "name": "FIXED_1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6237, - "src": "54230:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "54218:19:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "54213:24:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10979, - "nodeType": "ExpressionStatement", - "src": "54213:24:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 10984, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 10980, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10653, - "src": "54241:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10983, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 10981, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10649, - "src": "54248:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "hexValue": "3078303030346131633337626439663835666439633663373830303030303030303030303030303030303030", - "id": 10982, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "54253:44:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_26443412100478721735433130630260686447443968000_by_1", - "typeString": "int_const 2644...(39 digits omitted)...8000" - }, - "value": "0x0004a1c37bd9f85fd9c6c780000000000000000000" - }, - "src": "54248:49:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "54241:56:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10985, - "nodeType": "ExpressionStatement", - "src": "54241:56:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 10993, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 10986, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10649, - "src": "54343:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10992, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10989, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 10987, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10649, - "src": "54349:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 10988, - "name": "_x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10643, - "src": "54354:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "54349:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 10990, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "54348:9:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 10991, - "name": "FIXED_1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6237, - "src": "54360:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "54348:19:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "54343:24:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10994, - "nodeType": "ExpressionStatement", - "src": "54343:24:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 10999, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 10995, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10653, - "src": "54371:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10998, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 10996, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10649, - "src": "54378:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "hexValue": "3078303030626438333639663162373032626634393165326562666365653038323530333133623635343030", - "id": 10997, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "54383:44:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_67620617646753089502453804016113281250000000000_by_1", - "typeString": "int_const 6762...(39 digits omitted)...0000" - }, - "value": "0x000bd8369f1b702bf491e2ebfcee08250313b65400" - }, - "src": "54378:49:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "54371:56:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 11000, - "nodeType": "ExpressionStatement", - "src": "54371:56:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 11008, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 11001, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10649, - "src": "54473:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 11007, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 11004, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 11002, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10649, - "src": "54479:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 11003, - "name": "_x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10643, - "src": "54484:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "54479:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 11005, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "54478:9:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 11006, - "name": "FIXED_1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6237, - "src": "54490:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "54478:19:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "54473:24:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 11009, - "nodeType": "ExpressionStatement", - "src": "54473:24:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 11014, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 11010, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10653, - "src": "54501:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 11013, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 11011, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10649, - "src": "54508:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "hexValue": "3078303031653563376333326139663663373061623263623539643932323537363464343030303030303030", - "id": 11012, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "54513:44:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_173332210846474760735500226875327576716638945280_by_1", - "typeString": "int_const 1733...(40 digits omitted)...5280" - }, - "value": "0x001e5c7c32a9f6c70ab2cb59d9225764d400000000" - }, - "src": "54508:49:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "54501:56:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 11015, - "nodeType": "ExpressionStatement", - "src": "54501:56:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 11023, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 11016, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10649, - "src": "54603:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 11022, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 11019, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 11017, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10649, - "src": "54609:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 11018, - "name": "_x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10643, - "src": "54614:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "54609:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 11020, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "54608:9:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 11021, - "name": "FIXED_1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6237, - "src": "54620:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "54608:19:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "54603:24:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 11024, - "nodeType": "ExpressionStatement", - "src": "54603:24:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 11029, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 11025, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10653, - "src": "54631:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 11028, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 11026, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10649, - "src": "54638:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "hexValue": "3078303034646666353832306531363565393130663935313230613730386537343234393632323165363030", - "id": 11027, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "54643:44:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_445286656448864136819345605176268818347976680960_by_1", - "typeString": "int_const 4452...(40 digits omitted)...0960" - }, - "value": "0x004dff5820e165e910f95120a708e742496221e600" - }, - "src": "54638:49:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "54631:56:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 11030, - "nodeType": "ExpressionStatement", - "src": "54631:56:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 11038, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 11031, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10649, - "src": "54733:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 11037, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 11034, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 11032, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10649, - "src": "54739:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 11033, - "name": "_x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10643, - "src": "54744:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "54739:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 11035, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "54738:9:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 11036, - "name": "FIXED_1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6237, - "src": "54750:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "54738:19:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "54733:24:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 11039, - "nodeType": "ExpressionStatement", - "src": "54733:24:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 11044, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 11040, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10653, - "src": "54761:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 11043, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 11041, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10649, - "src": "54768:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "hexValue": "3078303063386338663636646231666365643337386565353065353336303030303030303030303030303030", - "id": 11042, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "54773:44:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1146279770154177862273033179056478989553563074560_by_1", - "typeString": "int_const 1146...(41 digits omitted)...4560" - }, - "value": "0x00c8c8f66db1fced378ee50e536000000000000000" - }, - "src": "54768:49:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "54761:56:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 11045, - "nodeType": "ExpressionStatement", - "src": "54761:56:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 11053, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 11046, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10649, - "src": "54863:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 11052, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 11049, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 11047, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10649, - "src": "54869:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 11048, - "name": "_x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10643, - "src": "54874:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "54869:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 11050, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "54868:9:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 11051, - "name": "FIXED_1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6237, - "src": "54880:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "54868:19:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "54863:24:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 11054, - "nodeType": "ExpressionStatement", - "src": "54863:24:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 11059, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 11055, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10653, - "src": "54891:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 11058, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 11056, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10649, - "src": "54898:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "hexValue": "3078303230356462386466666666343562666132393338663132386635393964626631366562313164383830", - "id": 11057, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "54903:44:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2956444461658038477759873400213214992927382689920_by_1", - "typeString": "int_const 2956...(41 digits omitted)...9920" - }, - "value": "0x0205db8dffff45bfa2938f128f599dbf16eb11d880" - }, - "src": "54898:49:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "54891:56:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 11060, - "nodeType": "ExpressionStatement", - "src": "54891:56:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 11068, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 11061, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10649, - "src": "54993:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 11067, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 11064, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 11062, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10649, - "src": "54999:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 11063, - "name": "_x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10643, - "src": "55004:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "54999:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 11065, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "54998:9:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 11066, - "name": "FIXED_1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6237, - "src": "55010:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "54998:19:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "54993:24:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 11069, - "nodeType": "ExpressionStatement", - "src": "54993:24:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 11074, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 11070, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10653, - "src": "55021:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 11073, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 11071, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10649, - "src": "55028:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "hexValue": "3078303533613034346562643938343335313439336531373836616633386433396130383030303030303030", - "id": 11072, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "55033:44:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_7638725713617153619200000000000000000000000000000_by_1", - "typeString": "int_const 7638...(41 digits omitted)...0000" - }, - "value": "0x053a044ebd984351493e1786af38d39a0800000000" - }, - "src": "55028:49:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "55021:56:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 11075, - "nodeType": "ExpressionStatement", - "src": "55021:56:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 11083, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 11076, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10649, - "src": "55123:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 11082, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 11079, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 11077, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10649, - "src": "55129:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 11078, - "name": "_x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10643, - "src": "55134:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "55129:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 11080, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "55128:9:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 11081, - "name": "FIXED_1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6237, - "src": "55140:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "55128:19:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "55123:24:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 11084, - "nodeType": "ExpressionStatement", - "src": "55123:24:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 11089, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 11085, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10653, - "src": "55151:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 11088, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 11086, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10649, - "src": "55158:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "hexValue": "3078306438366461653261346363306634373633336135343434373937333538363962343837623539633430", - "id": 11087, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "55163:44:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_19769407354499582705095371848882117322613875645504_by_1", - "typeString": "int_const 1976...(42 digits omitted)...5504" - }, - "value": "0x0d86dae2a4cc0f47633a544479735869b487b59c40" - }, - "src": "55158:49:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "55151:56:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 11090, - "nodeType": "ExpressionStatement", - "src": "55151:56:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 11098, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 11091, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10649, - "src": "55253:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 11097, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 11094, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 11092, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10649, - "src": "55259:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 11093, - "name": "_x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10643, - "src": "55264:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "55259:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 11095, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "55258:9:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 11096, - "name": "FIXED_1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6237, - "src": "55270:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "55258:19:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "55253:24:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 11099, - "nodeType": "ExpressionStatement", - "src": "55253:24:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 11104, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 11100, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10653, - "src": "55281:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 11103, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 11101, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10649, - "src": "55288:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "hexValue": "3078323331303030303030303030303030303030303030303030303030303030303030303030303030303030", - "id": 11102, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "55293:44:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_51243901158914783569516699447114673376686134788096_by_1", - "typeString": "int_const 5124...(42 digits omitted)...8096" - }, - "value": "0x231000000000000000000000000000000000000000" - }, - "src": "55288:49:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "55281:56:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 11105, - "nodeType": "ExpressionStatement", - "src": "55281:56:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 11113, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 11106, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10649, - "src": "55383:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 11112, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 11109, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 11107, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10649, - "src": "55389:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 11108, - "name": "_x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10643, - "src": "55394:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "55389:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 11110, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "55388:9:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 11111, - "name": "FIXED_1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6237, - "src": "55400:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "55388:19:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "55383:24:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 11114, - "nodeType": "ExpressionStatement", - "src": "55383:24:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 11119, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 11115, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10653, - "src": "55411:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 11118, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 11116, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10649, - "src": "55418:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "hexValue": "3078356230343835613736663636343663323033396462313530376364643531623038363439363830383232", - "id": 11117, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "55423:44:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_133022465544965907471119545993290733585983764695074_by_1", - "typeString": "int_const 1330...(43 digits omitted)...5074" - }, - "value": "0x5b0485a76f6646c2039db1507cdd51b08649680822" - }, - "src": "55418:49:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "55411:56:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 11120, - "nodeType": "ExpressionStatement", - "src": "55411:56:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 11128, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 11121, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10649, - "src": "55513:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 11127, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 11124, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 11122, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10649, - "src": "55519:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 11123, - "name": "_x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10643, - "src": "55524:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "55519:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 11125, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "55518:9:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 11126, - "name": "FIXED_1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6237, - "src": "55530:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "55518:19:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "55513:24:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 11129, - "nodeType": "ExpressionStatement", - "src": "55513:24:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 11134, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 11130, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10653, - "src": "55541:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 11133, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 11131, - "name": "xi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10649, - "src": "55548:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "hexValue": "3078656339383363343663343935343562633137656661366235623030353565323432323030303030303030", - "id": 11132, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "55553:44:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_345783497216724000335707367685598692782880644399104_by_1", - "typeString": "int_const 3457...(43 digits omitted)...9104" - }, - "value": "0xec983c46c49545bc17efa6b5b0055e242200000000" - }, - "src": "55548:49:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "55541:56:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 11135, - "nodeType": "ExpressionStatement", - "src": "55541:56:10" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 11142, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 11140, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 11138, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 11136, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10653, - "src": "55651:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30786465316263346431396566636163383234343564613735623030303030303030", - "id": 11137, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "55657:34:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_295232799039604140847618609643520000000_by_1", - "typeString": "int_const 2952...(31 digits omitted)...0000" - }, - "value": "0xde1bc4d19efcac82445da75b00000000" - }, - "src": "55651:40:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "id": 11139, - "name": "_x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10643, - "src": "55694:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "55651:45:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "id": 11141, - "name": "FIXED_1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6237, - "src": "55699:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "55651:55:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 10647, - "id": 11143, - "nodeType": "Return", - "src": "55644:62:10" - } - ] - }, - "documentation": "@dev computes W(-x / FIXED_1) / (-x / FIXED_1) * FIXED_1\ninput range: 1 <= x <= 1 / e * FIXED_1\nauto-generated via 'PrintFunctionLambertNeg1.py'", - "id": 11145, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "lambertNeg1", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 10644, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10643, - "name": "_x", - "nodeType": "VariableDeclaration", - "scope": 11145, - "src": "51396:10:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10642, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "51396:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "51395:12:10" - }, - "payable": false, - "returnParameters": { - "id": 10647, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10646, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 11145, - "src": "51431:7:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10645, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "51431:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "51430:9:10" - }, - "scope": 11642, - "src": "51375:4429:10", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 11224, - "nodeType": "Block", - "src": "56101:297:10", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 11169, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "id": 11162, - "name": "_tq", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11151, - "src": "56106:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 11163, - "name": "_rp", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11153, - "src": "56111:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 11164, - "isConstant": false, - "isInlineArray": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "TupleExpression", - "src": "56105:10:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", - "typeString": "tuple(uint256,uint256)" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 11166, - "name": "_tq", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11151, - "src": "56130:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 11167, - "name": "_rp", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11153, - "src": "56135:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 11165, - "name": "safeFactors", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11300, - "src": "56118:11:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256,uint256)" - } - }, - "id": 11168, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "56118:21:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", - "typeString": "tuple(uint256,uint256)" - } - }, - "src": "56105:34:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 11170, - "nodeType": "ExpressionStatement", - "src": "56105:34:10" - }, - { - "assignments": [ - 11172 - ], - "declarations": [ - { - "constant": false, - "id": 11172, - "name": "f", - "nodeType": "VariableDeclaration", - "scope": 11225, - "src": "56143:9:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11171, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "56143:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 11179, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 11178, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 11175, - "name": "FIXED_1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6237, - "src": "56163:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 11173, - "name": "_hi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11147, - "src": "56155:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 11174, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 21791, - "src": "56155:7:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 11176, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "56155:16:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 11177, - "name": "_lo", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11149, - "src": "56174:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "56155:22:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "56143:34:10" - }, - { - "assignments": [ - 11181 - ], - "declarations": [ - { - "constant": false, - "id": 11181, - "name": "g", - "nodeType": "VariableDeclaration", - "scope": 11225, - "src": "56181:9:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11180, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "56181:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 11192, - "initialValue": { - "argumentTypes": null, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 11184, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 11182, - "name": "f", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11172, - "src": "56193:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "id": 11183, - "name": "OPT_LOG_MAX_VAL", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6252, - "src": "56197:15:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "56193:19:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 11189, - "name": "f", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11172, - "src": "56242:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 11188, - "name": "generalLog", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8543, - "src": "56231:10:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256) pure returns (uint256)" - } - }, - "id": 11190, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "56231:13:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 11191, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "56193:51:10", - "trueExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 11186, - "name": "f", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11172, - "src": "56226:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 11185, - "name": "optimalLog", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9523, - "src": "56215:10:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256) pure returns (uint256)" - } - }, - "id": 11187, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "56215:13:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "56181:63:10" - }, - { - "assignments": [ - 11194 - ], - "declarations": [ - { - "constant": false, - "id": 11194, - "name": "x", - "nodeType": "VariableDeclaration", - "scope": 11225, - "src": "56248:9:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11193, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "56248:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 11201, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 11200, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 11197, - "name": "_tq", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11151, - "src": "56266:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 11195, - "name": "g", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11181, - "src": "56260:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 11196, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 21791, - "src": "56260:5:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 11198, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "56260:10:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 11199, - "name": "_rp", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11153, - "src": "56273:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "56260:16:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "56248:28:10" - }, - { - "assignments": [ - 11203 - ], - "declarations": [ - { - "constant": false, - "id": 11203, - "name": "y", - "nodeType": "VariableDeclaration", - "scope": 11225, - "src": "56280:9:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11202, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "56280:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 11212, - "initialValue": { - "argumentTypes": null, - "condition": { - "argumentTypes": null, - "id": 11204, - "name": "_lowerStake", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11155, - "src": "56292:11:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 11209, - "name": "x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11194, - "src": "56334:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 11208, - "name": "higherStake", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10017, - "src": "56322:11:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256) pure returns (uint256)" - } - }, - "id": 11210, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "56322:14:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 11211, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "56292:44:10", - "trueExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 11206, - "name": "x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11194, - "src": "56317:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 11205, - "name": "lowerStake", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9994, - "src": "56306:10:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256) view returns (uint256)" - } - }, - "id": 11207, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "56306:13:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "56280:56:10" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 11216, - "name": "_tq", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11151, - "src": "56371:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 11214, - "name": "y", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11203, - "src": "56365:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 11215, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 21791, - "src": "56365:5:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 11217, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "56365:10:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 11220, - "name": "FIXED_1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6237, - "src": "56385:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 11218, - "name": "_rp", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11153, - "src": "56377:3:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 11219, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 21791, - "src": "56377:7:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 11221, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "56377:16:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 11213, - "name": "normalizedWeights", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11334, - "src": "56347:17:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint32_$_t_uint32_$", - "typeString": "function (uint256,uint256) pure returns (uint32,uint32)" - } - }, - "id": 11222, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "56347:47:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint32_$_t_uint32_$", - "typeString": "tuple(uint32,uint32)" - } - }, - "functionReturnParameters": 11161, - "id": 11223, - "nodeType": "Return", - "src": "56340:54:10" - } - ] - }, - "documentation": "@dev computes the weights based on \"W(log(hi / lo) * tq / rp) * tq / rp\", where \"W\" is a variation of the Lambert W function.", - "id": 11225, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "balancedWeightsByStake", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 11156, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11147, - "name": "_hi", - "nodeType": "VariableDeclaration", - "scope": 11225, - "src": "55982:11:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11146, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "55982:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 11149, - "name": "_lo", - "nodeType": "VariableDeclaration", - "scope": 11225, - "src": "55997:11:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11148, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "55997:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 11151, - "name": "_tq", - "nodeType": "VariableDeclaration", - "scope": 11225, - "src": "56012:11:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11150, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "56012:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 11153, - "name": "_rp", - "nodeType": "VariableDeclaration", - "scope": 11225, - "src": "56027:11:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11152, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "56027:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 11155, - "name": "_lowerStake", - "nodeType": "VariableDeclaration", - "scope": 11225, - "src": "56042:16:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 11154, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "56042:4:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "55978:83:10" - }, - "payable": false, - "returnParameters": { - "id": 11161, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11158, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 11225, - "src": "56085:6:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 11157, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "56085:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 11160, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 11225, - "src": "56093:6:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 11159, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "56093:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "56084:16:10" - }, - "scope": 11642, - "src": "55947:451:10", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 11299, - "nodeType": "Block", - "src": "56557:277:10", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 11242, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 11238, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 11236, - "name": "_a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11227, - "src": "56565:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "id": 11237, - "name": "FIXED_2", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6240, - "src": "56571:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "56565:13:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 11241, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 11239, - "name": "_b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11229, - "src": "56582:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "id": 11240, - "name": "FIXED_2", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6240, - "src": "56588:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "56582:13:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "56565:30:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 11247, - "nodeType": "IfStatement", - "src": "56561:51:10", - "trueBody": { - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "id": 11243, - "name": "_a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11227, - "src": "56605:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 11244, - "name": "_b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11229, - "src": "56609:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 11245, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "56604:8:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", - "typeString": "tuple(uint256,uint256)" - } - }, - "functionReturnParameters": 11235, - "id": 11246, - "nodeType": "Return", - "src": "56597:15:10" - } - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 11250, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 11248, - "name": "_a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11227, - "src": "56620:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "id": 11249, - "name": "FIXED_2", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6240, - "src": "56625:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "56620:12:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 11260, - "nodeType": "IfStatement", - "src": "56616:55:10", - "trueBody": { - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 11256, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 11253, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 11251, - "name": "_a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11227, - "src": "56643:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 11252, - "name": "FIXED_2", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6240, - "src": "56648:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "56643:12:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 11254, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "56642:14:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 11255, - "name": "_b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11229, - "src": "56659:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "56642:19:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 11257, - "name": "FIXED_2", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6240, - "src": "56663:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 11258, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "56641:30:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", - "typeString": "tuple(uint256,uint256)" - } - }, - "functionReturnParameters": 11235, - "id": 11259, - "nodeType": "Return", - "src": "56634:37:10" - } - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 11263, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 11261, - "name": "_b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11229, - "src": "56679:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "id": 11262, - "name": "FIXED_2", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6240, - "src": "56684:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "56679:12:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 11273, - "nodeType": "IfStatement", - "src": "56675:55:10", - "trueBody": { - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "id": 11264, - "name": "FIXED_2", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6240, - "src": "56701:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 11270, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 11267, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 11265, - "name": "_b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11229, - "src": "56711:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 11266, - "name": "FIXED_2", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6240, - "src": "56716:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "56711:12:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 11268, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "56710:14:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 11269, - "name": "_a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11227, - "src": "56727:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "56710:19:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 11271, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "56700:30:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", - "typeString": "tuple(uint256,uint256)" - } - }, - "functionReturnParameters": 11235, - "id": 11272, - "nodeType": "Return", - "src": "56693:37:10" - } - }, - { - "assignments": [ - 11275 - ], - "declarations": [ - { - "constant": false, - "id": 11275, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 11300, - "src": "56734:9:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11274, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "56734:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 11282, - "initialValue": { - "argumentTypes": null, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 11278, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 11276, - "name": "_a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11227, - "src": "56746:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "id": 11277, - "name": "_b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11229, - "src": "56751:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "56746:7:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "argumentTypes": null, - "id": 11280, - "name": "_b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11229, - "src": "56761:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 11281, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "56746:17:10", - "trueExpression": { - "argumentTypes": null, - "id": 11279, - "name": "_a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11227, - "src": "56756:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "56734:29:10" - }, - { - "assignments": [ - 11284 - ], - "declarations": [ - { - "constant": false, - "id": 11284, - "name": "n", - "nodeType": "VariableDeclaration", - "scope": 11300, - "src": "56767:9:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11283, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "56767:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 11290, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 11288, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 11286, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11275, - "src": "56789:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 11287, - "name": "FIXED_1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6237, - "src": "56793:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "56789:11:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 11285, - "name": "floorLog2", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8605, - "src": "56779:9:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint8_$", - "typeString": "function (uint256) pure returns (uint8)" - } - }, - "id": 11289, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "56779:22:10", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "56767:34:10" - }, - { - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 11293, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 11291, - "name": "_a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11227, - "src": "56813:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">>", - "rightExpression": { - "argumentTypes": null, - "id": 11292, - "name": "n", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11284, - "src": "56819:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "56813:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 11296, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 11294, - "name": "_b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11229, - "src": "56822:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">>", - "rightExpression": { - "argumentTypes": null, - "id": 11295, - "name": "n", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11284, - "src": "56828:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "56822:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 11297, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "56812:18:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", - "typeString": "tuple(uint256,uint256)" - } - }, - "functionReturnParameters": 11235, - "id": 11298, - "nodeType": "Return", - "src": "56805:25:10" - } - ] - }, - "documentation": "@dev reduces \"a\" and \"b\" while maintaining their ratio.", - "id": 11300, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "safeFactors", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 11230, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11227, - "name": "_a", - "nodeType": "VariableDeclaration", - "scope": 11300, - "src": "56492:10:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11226, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "56492:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 11229, - "name": "_b", - "nodeType": "VariableDeclaration", - "scope": 11300, - "src": "56504:10:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11228, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "56504:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "56491:24:10" - }, - "payable": false, - "returnParameters": { - "id": 11235, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11232, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 11300, - "src": "56539:7:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11231, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "56539:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 11234, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 11300, - "src": "56548:7:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11233, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "56548:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "56538:18:10" - }, - "scope": 11642, - "src": "56471:363:10", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 11333, - "nodeType": "Block", - "src": "57014:119:10", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 11313, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 11311, - "name": "_a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11302, - "src": "57022:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "id": 11312, - "name": "_b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11304, - "src": "57028:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "57022:8:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 11319, - "nodeType": "IfStatement", - "src": "57018:44:10", - "trueBody": { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 11315, - "name": "_a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11302, - "src": "57055:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 11316, - "name": "_b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11304, - "src": "57059:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 11314, - "name": "accurateWeights", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11396, - "src": "57039:15:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint32_$_t_uint32_$", - "typeString": "function (uint256,uint256) pure returns (uint32,uint32)" - } - }, - "id": 11317, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "57039:23:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint32_$_t_uint32_$", - "typeString": "tuple(uint32,uint32)" - } - }, - "functionReturnParameters": 11310, - "id": 11318, - "nodeType": "Return", - "src": "57032:30:10" - } - }, - { - "assignments": [ - 11321, - 11323 - ], - "declarations": [ - { - "constant": false, - "id": 11321, - "name": "y", - "nodeType": "VariableDeclaration", - "scope": 11334, - "src": "57067:8:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 11320, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "57067:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 11323, - "name": "x", - "nodeType": "VariableDeclaration", - "scope": 11334, - "src": "57077:8:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 11322, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "57077:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 11328, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 11325, - "name": "_b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11304, - "src": "57105:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 11326, - "name": "_a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11302, - "src": "57109:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 11324, - "name": "accurateWeights", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11396, - "src": "57089:15:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint32_$_t_uint32_$", - "typeString": "function (uint256,uint256) pure returns (uint32,uint32)" - } - }, - "id": 11327, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "57089:23:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint32_$_t_uint32_$", - "typeString": "tuple(uint32,uint32)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "57066:46:10" - }, - { - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "id": 11329, - "name": "x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11323, - "src": "57124:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - { - "argumentTypes": null, - "id": 11330, - "name": "y", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11321, - "src": "57127:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "id": 11331, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "57123:6:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint32_$_t_uint32_$", - "typeString": "tuple(uint32,uint32)" - } - }, - "functionReturnParameters": 11310, - "id": 11332, - "nodeType": "Return", - "src": "57116:13:10" - } - ] - }, - "documentation": "@dev computes \"MAX_WEIGHT * a / (a + b)\" and \"MAX_WEIGHT * b / (a + b)\".", - "id": 11334, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "normalizedWeights", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 11305, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11302, - "name": "_a", - "nodeType": "VariableDeclaration", - "scope": 11334, - "src": "56951:10:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11301, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "56951:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 11304, - "name": "_b", - "nodeType": "VariableDeclaration", - "scope": 11334, - "src": "56963:10:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11303, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "56963:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "56950:24:10" - }, - "payable": false, - "returnParameters": { - "id": 11310, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11307, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 11334, - "src": "56998:6:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 11306, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "56998:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 11309, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 11334, - "src": "57006:6:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 11308, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "57006:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "56997:16:10" - }, - "scope": 11642, - "src": "56924:209:10", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 11395, - "nodeType": "Block", - "src": "57335:223:10", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 11347, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 11345, - "name": "_a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11336, - "src": "57343:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "id": 11346, - "name": "MAX_UNF_WEIGHT", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6270, - "src": "57348:14:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "57343:19:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 11368, - "nodeType": "IfStatement", - "src": "57339:100:10", - "trueBody": { - "id": 11367, - "nodeType": "Block", - "src": "57364:75:10", - "statements": [ - { - "assignments": [ - 11349 - ], - "declarations": [ - { - "constant": false, - "id": 11349, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 11396, - "src": "57369:9:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11348, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "57369:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 11358, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 11357, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 11355, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 11350, - "name": "_a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11336, - "src": "57381:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 11353, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 11351, - "name": "MAX_UNF_WEIGHT", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6270, - "src": "57387:14:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 11352, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "57404:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "57387:18:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 11354, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "57386:20:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "57381:25:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 11356, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "57409:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "57381:29:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "57369:41:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 11361, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 11359, - "name": "_a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11336, - "src": "57415:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "/=", - "rightHandSide": { - "argumentTypes": null, - "id": 11360, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11349, - "src": "57421:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "57415:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 11362, - "nodeType": "ExpressionStatement", - "src": "57415:7:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 11365, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 11363, - "name": "_b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11338, - "src": "57427:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "/=", - "rightHandSide": { - "argumentTypes": null, - "id": 11364, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11349, - "src": "57433:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "57427:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 11366, - "nodeType": "ExpressionStatement", - "src": "57427:7:10" - } - ] - } - }, - { - "assignments": [ - 11370 - ], - "declarations": [ - { - "constant": false, - "id": 11370, - "name": "x", - "nodeType": "VariableDeclaration", - "scope": 11396, - "src": "57442:9:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11369, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "57442:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 11380, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 11374, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 11372, - "name": "_a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11336, - "src": "57463:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 11373, - "name": "MAX_WEIGHT", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6228, - "src": "57468:10:10", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "src": "57463:15:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 11377, - "name": "_b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11338, - "src": "57487:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 11375, - "name": "_a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11336, - "src": "57480:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 11376, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 21737, - "src": "57480:6:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 11378, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "57480:10:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 11371, - "name": "roundDiv", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11422, - "src": "57454:8:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 11379, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "57454:37:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "57442:49:10" - }, - { - "assignments": [ - 11382 - ], - "declarations": [ - { - "constant": false, - "id": 11382, - "name": "y", - "nodeType": "VariableDeclaration", - "scope": 11396, - "src": "57495:9:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11381, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "57495:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 11386, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 11385, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 11383, - "name": "MAX_WEIGHT", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6228, - "src": "57507:10:10", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "id": 11384, - "name": "x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11370, - "src": "57520:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "57507:14:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "57495:26:10" - }, - { - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 11388, - "name": "x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11370, - "src": "57540:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 11387, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "57533:6:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint32_$", - "typeString": "type(uint32)" - }, - "typeName": "uint32" - }, - "id": 11389, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "57533:9:10", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 11391, - "name": "y", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11382, - "src": "57551:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 11390, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "57544:6:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint32_$", - "typeString": "type(uint32)" - }, - "typeName": "uint32" - }, - "id": 11392, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "57544:9:10", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "id": 11393, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "57532:22:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint32_$_t_uint32_$", - "typeString": "tuple(uint32,uint32)" - } - }, - "functionReturnParameters": 11344, - "id": 11394, - "nodeType": "Return", - "src": "57525:29:10" - } - ] - }, - "documentation": "@dev computes \"MAX_WEIGHT * a / (a + b)\" and \"MAX_WEIGHT * b / (a + b)\", assuming that \"a <= b\".", - "id": 11396, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "accurateWeights", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 11339, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11336, - "name": "_a", - "nodeType": "VariableDeclaration", - "scope": 11396, - "src": "57272:10:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11335, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "57272:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 11338, - "name": "_b", - "nodeType": "VariableDeclaration", - "scope": 11396, - "src": "57284:10:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11337, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "57284:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "57271:24:10" - }, - "payable": false, - "returnParameters": { - "id": 11344, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11341, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 11396, - "src": "57319:6:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 11340, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "57319:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 11343, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 11396, - "src": "57327:6:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 11342, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "57327:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "57318:16:10" - }, - "scope": 11642, - "src": "57247:311:10", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 11421, - "nodeType": "Block", - "src": "57740:50:10", - "statements": [ - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 11419, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 11407, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 11405, - "name": "_n", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11398, - "src": "57751:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 11406, - "name": "_d", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11400, - "src": "57756:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "57751:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 11418, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 11410, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 11408, - "name": "_n", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11398, - "src": "57762:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "%", - "rightExpression": { - "argumentTypes": null, - "id": 11409, - "name": "_d", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11400, - "src": "57767:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "57762:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 11411, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "57761:9:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 11416, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 11412, - "name": "_d", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11400, - "src": "57774:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 11415, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 11413, - "name": "_d", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11400, - "src": "57779:2:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "hexValue": "32", - "id": 11414, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "57784:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "src": "57779:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "57774:11:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 11417, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "57773:13:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "57761:25:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "57751:35:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 11404, - "id": 11420, - "nodeType": "Return", - "src": "57744:42:10" - } - ] - }, - "documentation": "@dev computes the nearest integer to a given quotient without overflowing or underflowing.", - "id": 11422, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "roundDiv", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 11401, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11398, - "name": "_n", - "nodeType": "VariableDeclaration", - "scope": 11422, - "src": "57684:10:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11397, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "57684:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 11400, - "name": "_d", - "nodeType": "VariableDeclaration", - "scope": 11422, - "src": "57696:10:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11399, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "57696:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "57683:24:10" - }, - "payable": false, - "returnParameters": { - "id": 11404, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11403, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 11422, - "src": "57731:7:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11402, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "57731:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "57730:9:10" - }, - "scope": 11642, - "src": "57666:124:10", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 11442, - "nodeType": "Block", - "src": "58003:86:10", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 11436, - "name": "_supply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11424, - "src": "58035:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 11437, - "name": "_reserveBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11426, - "src": "58044:15:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 11438, - "name": "_reserveWeight", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11428, - "src": "58061:14:10", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - { - "argumentTypes": null, - "id": 11439, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11430, - "src": "58077:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 11435, - "name": "purchaseTargetAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 7733 - ], - "referencedDeclaration": 7733, - "src": "58014:20:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint256_$_t_uint32_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256,uint256,uint32,uint256) view returns (uint256)" - } - }, - "id": 11440, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "58014:71:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 11434, - "id": 11441, - "nodeType": "Return", - "src": "58007:78:10" - } - ] - }, - "documentation": "@dev deprecated, backward compatibility", - "id": 11443, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "calculatePurchaseReturn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 11431, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11424, - "name": "_supply", - "nodeType": "VariableDeclaration", - "scope": 11443, - "src": "57883:15:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11423, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "57883:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 11426, - "name": "_reserveBalance", - "nodeType": "VariableDeclaration", - "scope": 11443, - "src": "57902:23:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11425, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "57902:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 11428, - "name": "_reserveWeight", - "nodeType": "VariableDeclaration", - "scope": 11443, - "src": "57929:21:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 11427, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "57929:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 11430, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 11443, - "src": "57954:15:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11429, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "57954:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "57879:93:10" - }, - "payable": false, - "returnParameters": { - "id": 11434, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11433, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 11443, - "src": "57994:7:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11432, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "57994:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "57993:9:10" - }, - "scope": 11642, - "src": "57847:242:10", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 11463, - "nodeType": "Block", - "src": "58298:82:10", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 11457, - "name": "_supply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11445, - "src": "58326:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 11458, - "name": "_reserveBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11447, - "src": "58335:15:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 11459, - "name": "_reserveWeight", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11449, - "src": "58352:14:10", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - { - "argumentTypes": null, - "id": 11460, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11451, - "src": "58368:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 11456, - "name": "saleTargetAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 7845 - ], - "referencedDeclaration": 7845, - "src": "58309:16:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint256_$_t_uint32_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256,uint256,uint32,uint256) view returns (uint256)" - } - }, - "id": 11461, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "58309:67:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 11455, - "id": 11462, - "nodeType": "Return", - "src": "58302:74:10" - } - ] - }, - "documentation": "@dev deprecated, backward compatibility", - "id": 11464, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "calculateSaleReturn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 11452, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11445, - "name": "_supply", - "nodeType": "VariableDeclaration", - "scope": 11464, - "src": "58178:15:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11444, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "58178:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 11447, - "name": "_reserveBalance", - "nodeType": "VariableDeclaration", - "scope": 11464, - "src": "58197:23:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11446, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "58197:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 11449, - "name": "_reserveWeight", - "nodeType": "VariableDeclaration", - "scope": 11464, - "src": "58224:21:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 11448, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "58224:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 11451, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 11464, - "src": "58249:15:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11450, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "58249:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "58174:93:10" - }, - "payable": false, - "returnParameters": { - "id": 11455, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11454, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 11464, - "src": "58289:7:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11453, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "58289:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "58288:9:10" - }, - "scope": 11642, - "src": "58146:234:10", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 11487, - "nodeType": "Block", - "src": "58654:138:10", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 11480, - "name": "_sourceReserveBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11466, - "src": "58690:21:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 11481, - "name": "_sourceReserveWeight", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11468, - "src": "58713:20:10", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - { - "argumentTypes": null, - "id": 11482, - "name": "_targetReserveBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11470, - "src": "58735:21:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 11483, - "name": "_targetReserveWeight", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11472, - "src": "58758:20:10", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - { - "argumentTypes": null, - "id": 11484, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11474, - "src": "58780:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 11479, - "name": "crossReserveTargetAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 7949 - ], - "referencedDeclaration": 7949, - "src": "58665:24:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint32_$_t_uint256_$_t_uint32_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256,uint32,uint256,uint32,uint256) view returns (uint256)" - } - }, - "id": 11485, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "58665:123:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 11478, - "id": 11486, - "nodeType": "Return", - "src": "58658:130:10" - } - ] - }, - "documentation": "@dev deprecated, backward compatibility", - "id": 11488, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "calculateCrossReserveReturn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 11475, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11466, - "name": "_sourceReserveBalance", - "nodeType": "VariableDeclaration", - "scope": 11488, - "src": "58477:29:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11465, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "58477:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 11468, - "name": "_sourceReserveWeight", - "nodeType": "VariableDeclaration", - "scope": 11488, - "src": "58510:27:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 11467, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "58510:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 11470, - "name": "_targetReserveBalance", - "nodeType": "VariableDeclaration", - "scope": 11488, - "src": "58541:29:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11469, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "58541:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 11472, - "name": "_targetReserveWeight", - "nodeType": "VariableDeclaration", - "scope": 11488, - "src": "58574:27:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 11471, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "58574:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 11474, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 11488, - "src": "58605:15:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11473, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "58605:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "58473:150:10" - }, - "payable": false, - "returnParameters": { - "id": 11478, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11477, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 11488, - "src": "58645:7:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11476, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "58645:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "58644:9:10" - }, - "scope": 11642, - "src": "58437:355:10", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 11511, - "nodeType": "Block", - "src": "59068:138:10", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 11504, - "name": "_sourceReserveBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11490, - "src": "59104:21:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 11505, - "name": "_sourceReserveWeight", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11492, - "src": "59127:20:10", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - { - "argumentTypes": null, - "id": 11506, - "name": "_targetReserveBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11494, - "src": "59149:21:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 11507, - "name": "_targetReserveWeight", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11496, - "src": "59172:20:10", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - { - "argumentTypes": null, - "id": 11508, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11498, - "src": "59194:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 11503, - "name": "crossReserveTargetAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 7949 - ], - "referencedDeclaration": 7949, - "src": "59079:24:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint32_$_t_uint256_$_t_uint32_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256,uint32,uint256,uint32,uint256) view returns (uint256)" - } - }, - "id": 11509, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "59079:123:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 11502, - "id": 11510, - "nodeType": "Return", - "src": "59072:130:10" - } - ] - }, - "documentation": "@dev deprecated, backward compatibility", - "id": 11512, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "calculateCrossConnectorReturn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 11499, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11490, - "name": "_sourceReserveBalance", - "nodeType": "VariableDeclaration", - "scope": 11512, - "src": "58891:29:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11489, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "58891:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 11492, - "name": "_sourceReserveWeight", - "nodeType": "VariableDeclaration", - "scope": 11512, - "src": "58924:27:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 11491, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "58924:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 11494, - "name": "_targetReserveBalance", - "nodeType": "VariableDeclaration", - "scope": 11512, - "src": "58955:29:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11493, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "58955:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 11496, - "name": "_targetReserveWeight", - "nodeType": "VariableDeclaration", - "scope": 11512, - "src": "58988:27:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 11495, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "58988:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 11498, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 11512, - "src": "59019:15:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11497, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "59019:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "58887:150:10" - }, - "payable": false, - "returnParameters": { - "id": 11502, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11501, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 11512, - "src": "59059:7:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11500, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "59059:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "59058:9:10" - }, - "scope": 11642, - "src": "58849:357:10", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 11532, - "nodeType": "Block", - "src": "59412:73:10", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 11526, - "name": "_supply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11514, - "src": "59432:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 11527, - "name": "_reserveBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11516, - "src": "59441:15:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 11528, - "name": "_reserveRatio", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11518, - "src": "59458:13:10", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - { - "argumentTypes": null, - "id": 11529, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11520, - "src": "59473:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 11525, - "name": "fundCost", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8055 - ], - "referencedDeclaration": 8055, - "src": "59423:8:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint256_$_t_uint32_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256,uint256,uint32,uint256) view returns (uint256)" - } - }, - "id": 11530, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "59423:58:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 11524, - "id": 11531, - "nodeType": "Return", - "src": "59416:65:10" - } - ] - }, - "documentation": "@dev deprecated, backward compatibility", - "id": 11533, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "calculateFundCost", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 11521, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11514, - "name": "_supply", - "nodeType": "VariableDeclaration", - "scope": 11533, - "src": "59293:15:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11513, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "59293:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 11516, - "name": "_reserveBalance", - "nodeType": "VariableDeclaration", - "scope": 11533, - "src": "59312:23:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11515, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "59312:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 11518, - "name": "_reserveRatio", - "nodeType": "VariableDeclaration", - "scope": 11533, - "src": "59339:20:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 11517, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "59339:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 11520, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 11533, - "src": "59363:15:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11519, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "59363:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "59289:92:10" - }, - "payable": false, - "returnParameters": { - "id": 11524, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11523, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 11533, - "src": "59403:7:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11522, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "59403:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "59402:9:10" - }, - "scope": 11642, - "src": "59263:222:10", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 11553, - "nodeType": "Block", - "src": "59698:87:10", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 11547, - "name": "_supply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11535, - "src": "59732:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 11548, - "name": "_reserveBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11537, - "src": "59741:15:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 11549, - "name": "_reserveRatio", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11539, - "src": "59758:13:10", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - { - "argumentTypes": null, - "id": 11550, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11541, - "src": "59773:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 11546, - "name": "liquidateReserveAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8264 - ], - "referencedDeclaration": 8264, - "src": "59709:22:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint256_$_t_uint32_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256,uint256,uint32,uint256) view returns (uint256)" - } - }, - "id": 11551, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "59709:72:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 11545, - "id": 11552, - "nodeType": "Return", - "src": "59702:79:10" - } - ] - }, - "documentation": "@dev deprecated, backward compatibility", - "id": 11554, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "calculateLiquidateReturn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 11542, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11535, - "name": "_supply", - "nodeType": "VariableDeclaration", - "scope": 11554, - "src": "59579:15:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11534, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "59579:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 11537, - "name": "_reserveBalance", - "nodeType": "VariableDeclaration", - "scope": 11554, - "src": "59598:23:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11536, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "59598:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 11539, - "name": "_reserveRatio", - "nodeType": "VariableDeclaration", - "scope": 11554, - "src": "59625:20:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 11538, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "59625:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 11541, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 11554, - "src": "59649:15:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11540, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "59649:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "59575:92:10" - }, - "payable": false, - "returnParameters": { - "id": 11545, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11544, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 11554, - "src": "59689:7:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11543, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "59689:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "59688:9:10" - }, - "scope": 11642, - "src": "59542:243:10", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 11574, - "nodeType": "Block", - "src": "59987:86:10", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 11568, - "name": "_supply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11556, - "src": "60019:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 11569, - "name": "_reserveBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11558, - "src": "60028:15:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 11570, - "name": "_reserveWeight", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11560, - "src": "60045:14:10", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - { - "argumentTypes": null, - "id": 11571, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11562, - "src": "60061:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 11567, - "name": "purchaseTargetAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 7733 - ], - "referencedDeclaration": 7733, - "src": "59998:20:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint256_$_t_uint32_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256,uint256,uint32,uint256) view returns (uint256)" - } - }, - "id": 11572, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "59998:71:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 11566, - "id": 11573, - "nodeType": "Return", - "src": "59991:78:10" - } - ] - }, - "documentation": "@dev deprecated, backward compatibility", - "id": 11575, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "purchaseRate", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 11563, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11556, - "name": "_supply", - "nodeType": "VariableDeclaration", - "scope": 11575, - "src": "59867:15:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11555, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "59867:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 11558, - "name": "_reserveBalance", - "nodeType": "VariableDeclaration", - "scope": 11575, - "src": "59886:23:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11557, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "59886:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 11560, - "name": "_reserveWeight", - "nodeType": "VariableDeclaration", - "scope": 11575, - "src": "59913:21:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 11559, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "59913:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 11562, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 11575, - "src": "59938:15:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11561, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "59938:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "59863:93:10" - }, - "payable": false, - "returnParameters": { - "id": 11566, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11565, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 11575, - "src": "59978:7:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11564, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "59978:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "59977:9:10" - }, - "scope": 11642, - "src": "59842:231:10", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 11595, - "nodeType": "Block", - "src": "60271:82:10", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 11589, - "name": "_supply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11577, - "src": "60299:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 11590, - "name": "_reserveBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11579, - "src": "60308:15:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 11591, - "name": "_reserveWeight", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11581, - "src": "60325:14:10", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - { - "argumentTypes": null, - "id": 11592, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11583, - "src": "60341:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 11588, - "name": "saleTargetAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 7845 - ], - "referencedDeclaration": 7845, - "src": "60282:16:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint256_$_t_uint32_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256,uint256,uint32,uint256) view returns (uint256)" - } - }, - "id": 11593, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "60282:67:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 11587, - "id": 11594, - "nodeType": "Return", - "src": "60275:74:10" - } - ] - }, - "documentation": "@dev deprecated, backward compatibility", - "id": 11596, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "saleRate", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 11584, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11577, - "name": "_supply", - "nodeType": "VariableDeclaration", - "scope": 11596, - "src": "60151:15:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11576, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "60151:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 11579, - "name": "_reserveBalance", - "nodeType": "VariableDeclaration", - "scope": 11596, - "src": "60170:23:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11578, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "60170:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 11581, - "name": "_reserveWeight", - "nodeType": "VariableDeclaration", - "scope": 11596, - "src": "60197:21:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 11580, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "60197:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 11583, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 11596, - "src": "60222:15:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11582, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "60222:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "60147:93:10" - }, - "payable": false, - "returnParameters": { - "id": 11587, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11586, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 11596, - "src": "60262:7:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11585, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "60262:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "60261:9:10" - }, - "scope": 11642, - "src": "60130:223:10", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 11619, - "nodeType": "Block", - "src": "60616:138:10", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 11612, - "name": "_sourceReserveBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11598, - "src": "60652:21:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 11613, - "name": "_sourceReserveWeight", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11600, - "src": "60675:20:10", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - { - "argumentTypes": null, - "id": 11614, - "name": "_targetReserveBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11602, - "src": "60697:21:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 11615, - "name": "_targetReserveWeight", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11604, - "src": "60720:20:10", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - { - "argumentTypes": null, - "id": 11616, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11606, - "src": "60742:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 11611, - "name": "crossReserveTargetAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 7949 - ], - "referencedDeclaration": 7949, - "src": "60627:24:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint32_$_t_uint256_$_t_uint32_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256,uint32,uint256,uint32,uint256) view returns (uint256)" - } - }, - "id": 11617, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "60627:123:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 11610, - "id": 11618, - "nodeType": "Return", - "src": "60620:130:10" - } - ] - }, - "documentation": "@dev deprecated, backward compatibility", - "id": 11620, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "crossReserveRate", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 11607, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11598, - "name": "_sourceReserveBalance", - "nodeType": "VariableDeclaration", - "scope": 11620, - "src": "60439:29:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11597, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "60439:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 11600, - "name": "_sourceReserveWeight", - "nodeType": "VariableDeclaration", - "scope": 11620, - "src": "60472:27:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 11599, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "60472:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 11602, - "name": "_targetReserveBalance", - "nodeType": "VariableDeclaration", - "scope": 11620, - "src": "60503:29:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11601, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "60503:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 11604, - "name": "_targetReserveWeight", - "nodeType": "VariableDeclaration", - "scope": 11620, - "src": "60536:27:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 11603, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "60536:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 11606, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 11620, - "src": "60567:15:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11605, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "60567:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "60435:150:10" - }, - "payable": false, - "returnParameters": { - "id": 11610, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11609, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 11620, - "src": "60607:7:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11608, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "60607:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "60606:9:10" - }, - "scope": 11642, - "src": "60410:344:10", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 11640, - "nodeType": "Block", - "src": "60956:87:10", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 11634, - "name": "_supply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11622, - "src": "60990:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 11635, - "name": "_reserveBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11624, - "src": "60999:15:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 11636, - "name": "_reserveRatio", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11626, - "src": "61016:13:10", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - { - "argumentTypes": null, - "id": 11637, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11628, - "src": "61031:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 11633, - "name": "liquidateReserveAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8264 - ], - "referencedDeclaration": 8264, - "src": "60967:22:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint256_$_t_uint32_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256,uint256,uint32,uint256) view returns (uint256)" - } - }, - "id": 11638, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "60967:72:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 11632, - "id": 11639, - "nodeType": "Return", - "src": "60960:79:10" - } - ] - }, - "documentation": "@dev deprecated, backward compatibility", - "id": 11641, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "liquidateRate", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 11629, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11622, - "name": "_supply", - "nodeType": "VariableDeclaration", - "scope": 11641, - "src": "60837:15:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11621, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "60837:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 11624, - "name": "_reserveBalance", - "nodeType": "VariableDeclaration", - "scope": 11641, - "src": "60856:23:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11623, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "60856:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 11626, - "name": "_reserveRatio", - "nodeType": "VariableDeclaration", - "scope": 11641, - "src": "60883:20:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 11625, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "60883:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 11628, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 11641, - "src": "60907:15:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11627, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "60907:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "60833:92:10" - }, - "payable": false, - "returnParameters": { - "id": 11632, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11631, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 11641, - "src": "60947:7:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11630, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "60947:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "60946:9:10" - }, - "scope": 11642, - "src": "60811:232:10", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 11643, - "src": "105:60940:10" - } - ], - "src": "0:61046:10" - }, - "id": 10 - }, - "solidity/contracts/converter/interfaces/IConverter.sol": { - "ast": { - "absolutePath": "solidity/contracts/converter/interfaces/IConverter.sol", - "exportedSymbols": { - "IConverter": [ - 11817 - ] - }, - "id": 11818, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 11644, - "literals": [ - "solidity", - "0.4", - ".26" - ], - "nodeType": "PragmaDirective", - "src": "0:23:11" - }, - { - "absolutePath": "solidity/contracts/converter/interfaces/IConverterAnchor.sol", - "file": "./IConverterAnchor.sol", - "id": 11645, - "nodeType": "ImportDirective", - "scope": 11818, - "sourceUnit": 11827, - "src": "24:32:11", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "solidity/contracts/token/interfaces/IERC20Token.sol", - "file": "../../token/interfaces/IERC20Token.sol", - "id": 11646, - "nodeType": "ImportDirective", - "scope": 11818, - "sourceUnit": 20241, - "src": "57:48:11", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "solidity/contracts/utility/interfaces/IOwned.sol", - "file": "../../utility/interfaces/IOwned.sol", - "id": 11647, - "nodeType": "ImportDirective", - "scope": 11818, - "sourceUnit": 22248, - "src": "106:45:11", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "solidity/contracts/utility/interfaces/IWhitelist.sol", - "file": "../../utility/interfaces/IWhitelist.sol", - "id": 11648, - "nodeType": "ImportDirective", - "scope": 11818, - "sourceUnit": 22324, - "src": "152:49:11", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 11649, - "name": "IOwned", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 22247, - "src": "256:6:11", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IOwned_$22247", - "typeString": "contract IOwned" - } - }, - "id": 11650, - "nodeType": "InheritanceSpecifier", - "src": "256:6:11" - } - ], - "contractDependencies": [ - 22247 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": false, - "id": 11817, - "linearizedBaseContracts": [ - 11817, - 22247 - ], - "name": "IConverter", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": null, - "id": 11655, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "converterType", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 11651, - "nodeType": "ParameterList", - "parameters": [], - "src": "288:2:11" - }, - "payable": false, - "returnParameters": { - "id": 11654, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11653, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 11655, - "src": "312:6:11", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 11652, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "312:6:11", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "311:8:11" - }, - "scope": 11817, - "src": "266:54:11", - "stateMutability": "pure", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 11662, - "nodeType": "Block", - "src": "380:12:11", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 11660, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22371, - "src": "384:4:11", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - "id": 11661, - "nodeType": "ExpressionStatement", - "src": "384:4:11" - } - ] - }, - "documentation": null, - "id": 11663, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "anchor", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 11656, - "nodeType": "ParameterList", - "parameters": [], - "src": "338:2:11" - }, - "payable": false, - "returnParameters": { - "id": 11659, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11658, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 11663, - "src": "362:16:11", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - }, - "typeName": { - "contractScope": null, - "id": 11657, - "name": "IConverterAnchor", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 11826, - "src": "362:16:11", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "361:18:11" - }, - "scope": 11817, - "src": "323:69:11", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 11668, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "isActive", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 11664, - "nodeType": "ParameterList", - "parameters": [], - "src": "412:2:11" - }, - "payable": false, - "returnParameters": { - "id": 11667, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11666, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 11668, - "src": "436:4:11", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 11665, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "436:4:11", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "435:6:11" - }, - "scope": 11817, - "src": "395:47:11", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 11681, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "targetAmountAndFee", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 11675, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11670, - "name": "_sourceToken", - "nodeType": "VariableDeclaration", - "scope": 11681, - "src": "476:24:11", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - "typeName": { - "contractScope": null, - "id": 11669, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "476:11:11", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 11672, - "name": "_targetToken", - "nodeType": "VariableDeclaration", - "scope": 11681, - "src": "504:24:11", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - "typeName": { - "contractScope": null, - "id": 11671, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "504:11:11", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 11674, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 11681, - "src": "532:15:11", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11673, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "532:7:11", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "472:78:11" - }, - "payable": false, - "returnParameters": { - "id": 11680, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11677, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 11681, - "src": "572:7:11", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11676, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "572:7:11", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 11679, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 11681, - "src": "581:7:11", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11678, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "581:7:11", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "571:18:11" - }, - "scope": 11817, - "src": "445:145:11", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 11696, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "convert", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 11692, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11683, - "name": "_sourceToken", - "nodeType": "VariableDeclaration", - "scope": 11696, - "src": "613:24:11", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - "typeName": { - "contractScope": null, - "id": 11682, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "613:11:11", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 11685, - "name": "_targetToken", - "nodeType": "VariableDeclaration", - "scope": 11696, - "src": "641:24:11", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - "typeName": { - "contractScope": null, - "id": 11684, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "641:11:11", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 11687, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 11696, - "src": "669:15:11", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11686, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "669:7:11", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 11689, - "name": "_trader", - "nodeType": "VariableDeclaration", - "scope": 11696, - "src": "688:15:11", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 11688, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "688:7:11", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 11691, - "name": "_beneficiary", - "nodeType": "VariableDeclaration", - "scope": 11696, - "src": "707:20:11", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 11690, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "707:7:11", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "609:121:11" - }, - "payable": true, - "returnParameters": { - "id": 11695, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11694, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 11696, - "src": "755:7:11", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11693, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "755:7:11", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "754:9:11" - }, - "scope": 11817, - "src": "593:171:11", - "stateMutability": "payable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 11703, - "nodeType": "Block", - "src": "831:12:11", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 11701, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22371, - "src": "835:4:11", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - "id": 11702, - "nodeType": "ExpressionStatement", - "src": "835:4:11" - } - ] - }, - "documentation": null, - "id": 11704, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "conversionWhitelist", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 11697, - "nodeType": "ParameterList", - "parameters": [], - "src": "795:2:11" - }, - "payable": false, - "returnParameters": { - "id": 11700, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11699, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 11704, - "src": "819:10:11", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IWhitelist_$22323", - "typeString": "contract IWhitelist" - }, - "typeName": { - "contractScope": null, - "id": 11698, - "name": "IWhitelist", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 22323, - "src": "819:10:11", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IWhitelist_$22323", - "typeString": "contract IWhitelist" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "818:12:11" - }, - "scope": 11817, - "src": "767:76:11", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 11711, - "nodeType": "Block", - "src": "900:12:11", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 11709, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22371, - "src": "904:4:11", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - "id": 11710, - "nodeType": "ExpressionStatement", - "src": "904:4:11" - } - ] - }, - "documentation": null, - "id": 11712, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "conversionFee", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 11705, - "nodeType": "ParameterList", - "parameters": [], - "src": "868:2:11" - }, - "payable": false, - "returnParameters": { - "id": 11708, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11707, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 11712, - "src": "892:6:11", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 11706, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "892:6:11", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "891:8:11" - }, - "scope": 11817, - "src": "846:66:11", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 11719, - "nodeType": "Block", - "src": "972:12:11", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 11717, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22371, - "src": "976:4:11", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - "id": 11718, - "nodeType": "ExpressionStatement", - "src": "976:4:11" - } - ] - }, - "documentation": null, - "id": 11720, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "maxConversionFee", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 11713, - "nodeType": "ParameterList", - "parameters": [], - "src": "940:2:11" - }, - "payable": false, - "returnParameters": { - "id": 11716, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11715, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 11720, - "src": "964:6:11", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 11714, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "964:6:11", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "963:8:11" - }, - "scope": 11817, - "src": "915:69:11", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 11727, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "reserveBalance", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 11723, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11722, - "name": "_reserveToken", - "nodeType": "VariableDeclaration", - "scope": 11727, - "src": "1011:25:11", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - "typeName": { - "contractScope": null, - "id": 11721, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "1011:11:11", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1010:27:11" - }, - "payable": false, - "returnParameters": { - "id": 11726, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11725, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 11727, - "src": "1059:7:11", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11724, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1059:7:11", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1058:9:11" - }, - "scope": 11817, - "src": "987:81:11", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 11730, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 11728, - "nodeType": "ParameterList", - "parameters": [], - "src": "1079:2:11" - }, - "payable": true, - "returnParameters": { - "id": 11729, - "nodeType": "ParameterList", - "parameters": [], - "src": "1098:0:11" - }, - "scope": 11817, - "src": "1071:28:11", - "stateMutability": "payable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 11735, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "transferAnchorOwnership", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 11733, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11732, - "name": "_newOwner", - "nodeType": "VariableDeclaration", - "scope": 11735, - "src": "1135:17:11", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 11731, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1135:7:11", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1134:19:11" - }, - "payable": false, - "returnParameters": { - "id": 11734, - "nodeType": "ParameterList", - "parameters": [], - "src": "1160:0:11" - }, - "scope": 11817, - "src": "1102:59:11", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 11738, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "acceptAnchorOwnership", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 11736, - "nodeType": "ParameterList", - "parameters": [], - "src": "1194:2:11" - }, - "payable": false, - "returnParameters": { - "id": 11737, - "nodeType": "ParameterList", - "parameters": [], - "src": "1203:0:11" - }, - "scope": 11817, - "src": "1164:40:11", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 11743, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "setConversionFee", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 11741, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11740, - "name": "_conversionFee", - "nodeType": "VariableDeclaration", - "scope": 11743, - "src": "1233:21:11", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 11739, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "1233:6:11", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1232:23:11" - }, - "payable": false, - "returnParameters": { - "id": 11742, - "nodeType": "ParameterList", - "parameters": [], - "src": "1262:0:11" - }, - "scope": 11817, - "src": "1207:56:11", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 11748, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "setConversionWhitelist", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 11746, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11745, - "name": "_whitelist", - "nodeType": "VariableDeclaration", - "scope": 11748, - "src": "1298:21:11", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IWhitelist_$22323", - "typeString": "contract IWhitelist" - }, - "typeName": { - "contractScope": null, - "id": 11744, - "name": "IWhitelist", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 22323, - "src": "1298:10:11", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IWhitelist_$22323", - "typeString": "contract IWhitelist" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1297:23:11" - }, - "payable": false, - "returnParameters": { - "id": 11747, - "nodeType": "ParameterList", - "parameters": [], - "src": "1327:0:11" - }, - "scope": 11817, - "src": "1266:62:11", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 11757, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "withdrawTokens", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 11755, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11750, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 11757, - "src": "1358:18:11", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - "typeName": { - "contractScope": null, - "id": 11749, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "1358:11:11", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 11752, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 11757, - "src": "1380:11:11", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 11751, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1380:7:11", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 11754, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 11757, - "src": "1395:15:11", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11753, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1395:7:11", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1354:59:11" - }, - "payable": false, - "returnParameters": { - "id": 11756, - "nodeType": "ParameterList", - "parameters": [], - "src": "1420:0:11" - }, - "scope": 11817, - "src": "1331:90:11", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 11762, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "withdrawETH", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 11760, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11759, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 11762, - "src": "1445:11:11", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 11758, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1445:7:11", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1444:13:11" - }, - "payable": false, - "returnParameters": { - "id": 11761, - "nodeType": "ParameterList", - "parameters": [], - "src": "1464:0:11" - }, - "scope": 11817, - "src": "1424:41:11", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 11769, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "addReserve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 11767, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11764, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 11769, - "src": "1488:18:11", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - "typeName": { - "contractScope": null, - "id": 11763, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "1488:11:11", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 11766, - "name": "_ratio", - "nodeType": "VariableDeclaration", - "scope": 11769, - "src": "1508:13:11", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 11765, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "1508:6:11", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1487:35:11" - }, - "payable": false, - "returnParameters": { - "id": 11768, - "nodeType": "ParameterList", - "parameters": [], - "src": "1529:0:11" - }, - "scope": 11817, - "src": "1468:62:11", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 11774, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "token", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 11770, - "nodeType": "ParameterList", - "parameters": [], - "src": "1586:2:11" - }, - "payable": false, - "returnParameters": { - "id": 11773, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11772, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 11774, - "src": "1610:16:11", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - }, - "typeName": { - "contractScope": null, - "id": 11771, - "name": "IConverterAnchor", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 11826, - "src": "1610:16:11", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1609:18:11" - }, - "scope": 11817, - "src": "1572:56:11", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 11779, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "transferTokenOwnership", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 11777, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11776, - "name": "_newOwner", - "nodeType": "VariableDeclaration", - "scope": 11779, - "src": "1663:17:11", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 11775, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1663:7:11", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1662:19:11" - }, - "payable": false, - "returnParameters": { - "id": 11778, - "nodeType": "ParameterList", - "parameters": [], - "src": "1688:0:11" - }, - "scope": 11817, - "src": "1631:58:11", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 11782, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "acceptTokenOwnership", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 11780, - "nodeType": "ParameterList", - "parameters": [], - "src": "1721:2:11" - }, - "payable": false, - "returnParameters": { - "id": 11781, - "nodeType": "ParameterList", - "parameters": [], - "src": "1730:0:11" - }, - "scope": 11817, - "src": "1692:39:11", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 11797, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "connectors", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 11785, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11784, - "name": "_address", - "nodeType": "VariableDeclaration", - "scope": 11797, - "src": "1754:16:11", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 11783, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1754:7:11", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1753:18:11" - }, - "payable": false, - "returnParameters": { - "id": 11796, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11787, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 11797, - "src": "1803:7:11", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11786, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1803:7:11", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 11789, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 11797, - "src": "1815:6:11", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 11788, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "1815:6:11", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 11791, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 11797, - "src": "1826:4:11", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 11790, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1826:4:11", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 11793, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 11797, - "src": "1835:4:11", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 11792, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1835:4:11", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 11795, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 11797, - "src": "1844:4:11", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 11794, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1844:4:11", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1798:54:11" - }, - "scope": 11817, - "src": "1734:119:11", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 11804, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getConnectorBalance", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 11800, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11799, - "name": "_connectorToken", - "nodeType": "VariableDeclaration", - "scope": 11804, - "src": "1885:27:11", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - "typeName": { - "contractScope": null, - "id": 11798, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "1885:11:11", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1884:29:11" - }, - "payable": false, - "returnParameters": { - "id": 11803, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11802, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 11804, - "src": "1935:7:11", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11801, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1935:7:11", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1934:9:11" - }, - "scope": 11817, - "src": "1856:88:11", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 11811, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "connectorTokens", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 11807, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11806, - "name": "_index", - "nodeType": "VariableDeclaration", - "scope": 11811, - "src": "1972:14:11", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11805, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1972:7:11", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1971:16:11" - }, - "payable": false, - "returnParameters": { - "id": 11810, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11809, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 11811, - "src": "2009:11:11", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - "typeName": { - "contractScope": null, - "id": 11808, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "2009:11:11", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2008:13:11" - }, - "scope": 11817, - "src": "1947:75:11", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 11816, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "connectorTokenCount", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 11812, - "nodeType": "ParameterList", - "parameters": [], - "src": "2053:2:11" - }, - "payable": false, - "returnParameters": { - "id": 11815, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11814, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 11816, - "src": "2077:6:11", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 11813, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "2077:6:11", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2076:8:11" - }, - "scope": 11817, - "src": "2025:60:11", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 11818, - "src": "233:1854:11" - } - ], - "src": "0:2088:11" - }, - "id": 11 - }, - "solidity/contracts/converter/interfaces/IConverterAnchor.sol": { - "ast": { - "absolutePath": "solidity/contracts/converter/interfaces/IConverterAnchor.sol", - "exportedSymbols": { - "IConverterAnchor": [ - 11826 - ] - }, - "id": 11827, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 11819, - "literals": [ - "solidity", - "0.4", - ".26" - ], - "nodeType": "PragmaDirective", - "src": "0:23:12" - }, - { - "absolutePath": "solidity/contracts/utility/interfaces/IOwned.sol", - "file": "../../utility/interfaces/IOwned.sol", - "id": 11820, - "nodeType": "ImportDirective", - "scope": 11827, - "sourceUnit": 22248, - "src": "24:45:12", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "solidity/contracts/utility/interfaces/ITokenHolder.sol", - "file": "../../utility/interfaces/ITokenHolder.sol", - "id": 11821, - "nodeType": "ImportDirective", - "scope": 11827, - "sourceUnit": 22314, - "src": "70:51:12", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 11822, - "name": "IOwned", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 22247, - "src": "189:6:12", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IOwned_$22247", - "typeString": "contract IOwned" - } - }, - "id": 11823, - "nodeType": "InheritanceSpecifier", - "src": "189:6:12" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 11824, - "name": "ITokenHolder", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 22313, - "src": "197:12:12", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ITokenHolder_$22313", - "typeString": "contract ITokenHolder" - } - }, - "id": 11825, - "nodeType": "InheritanceSpecifier", - "src": "197:12:12" - } - ], - "contractDependencies": [ - 22247, - 22313 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": false, - "id": 11826, - "linearizedBaseContracts": [ - 11826, - 22313, - 22247 - ], - "name": "IConverterAnchor", - "nodeType": "ContractDefinition", - "nodes": [], - "scope": 11827, - "src": "160:54:12" - } - ], - "src": "0:215:12" - }, - "id": 12 - }, - "solidity/contracts/converter/interfaces/IConverterFactory.sol": { - "ast": { - "absolutePath": "solidity/contracts/converter/interfaces/IConverterFactory.sol", - "exportedSymbols": { - "IConverterFactory": [ - 11871 - ] - }, - "id": 11872, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 11828, - "literals": [ - "solidity", - "0.4", - ".26" - ], - "nodeType": "PragmaDirective", - "src": "0:23:13" - }, - { - "absolutePath": "solidity/contracts/converter/interfaces/IConverter.sol", - "file": "./IConverter.sol", - "id": 11829, - "nodeType": "ImportDirective", - "scope": 11872, - "sourceUnit": 11818, - "src": "24:26:13", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "solidity/contracts/converter/interfaces/IConverterAnchor.sol", - "file": "./IConverterAnchor.sol", - "id": 11830, - "nodeType": "ImportDirective", - "scope": 11872, - "sourceUnit": 11827, - "src": "51:32:13", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "solidity/contracts/converter/interfaces/ITypedConverterCustomFactory.sol", - "file": "./ITypedConverterCustomFactory.sol", - "id": 11831, - "nodeType": "ImportDirective", - "scope": 11872, - "sourceUnit": 12269, - "src": "84:44:13", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "solidity/contracts/utility/interfaces/IContractRegistry.sol", - "file": "../../utility/interfaces/IContractRegistry.sol", - "id": 11832, - "nodeType": "ImportDirective", - "scope": 11872, - "sourceUnit": 22221, - "src": "129:56:13", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": false, - "id": 11871, - "linearizedBaseContracts": [ - 11871 - ], - "name": "IConverterFactory", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": null, - "id": 11845, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "createAnchor", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 11841, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11834, - "name": "_type", - "nodeType": "VariableDeclaration", - "scope": 11845, - "src": "280:12:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 11833, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "280:6:13", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 11836, - "name": "_name", - "nodeType": "VariableDeclaration", - "scope": 11845, - "src": "296:12:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 11835, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "296:6:13", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 11838, - "name": "_symbol", - "nodeType": "VariableDeclaration", - "scope": 11845, - "src": "312:14:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 11837, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "312:6:13", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 11840, - "name": "_decimals", - "nodeType": "VariableDeclaration", - "scope": 11845, - "src": "330:15:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 11839, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "330:5:13", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "276:72:13" - }, - "payable": false, - "returnParameters": { - "id": 11844, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11843, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 11845, - "src": "365:16:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - }, - "typeName": { - "contractScope": null, - "id": 11842, - "name": "IConverterAnchor", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 11826, - "src": "365:16:13", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "364:18:13" - }, - "scope": 11871, - "src": "255:128:13", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 11858, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "createConverter", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 11854, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11847, - "name": "_type", - "nodeType": "VariableDeclaration", - "scope": 11858, - "src": "414:12:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 11846, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "414:6:13", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 11849, - "name": "_anchor", - "nodeType": "VariableDeclaration", - "scope": 11858, - "src": "430:24:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - }, - "typeName": { - "contractScope": null, - "id": 11848, - "name": "IConverterAnchor", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 11826, - "src": "430:16:13", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 11851, - "name": "_registry", - "nodeType": "VariableDeclaration", - "scope": 11858, - "src": "458:27:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IContractRegistry_$22220", - "typeString": "contract IContractRegistry" - }, - "typeName": { - "contractScope": null, - "id": 11850, - "name": "IContractRegistry", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 22220, - "src": "458:17:13", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IContractRegistry_$22220", - "typeString": "contract IContractRegistry" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 11853, - "name": "_maxConversionFee", - "nodeType": "VariableDeclaration", - "scope": 11858, - "src": "489:24:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 11852, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "489:6:13", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "410:106:13" - }, - "payable": false, - "returnParameters": { - "id": 11857, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11856, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 11858, - "src": "533:10:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - }, - "typeName": { - "contractScope": null, - "id": 11855, - "name": "IConverter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 11817, - "src": "533:10:13", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "532:12:13" - }, - "scope": 11871, - "src": "386:159:13", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 11869, - "nodeType": "Block", - "src": "638:21:13", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 11865, - "name": "_type", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11860, - "src": "642:5:13", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "id": 11866, - "nodeType": "ExpressionStatement", - "src": "642:5:13" - }, - { - "expression": { - "argumentTypes": null, - "id": 11867, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22405, - "src": "651:4:13", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterFactory_$11871", - "typeString": "contract IConverterFactory" - } - }, - "id": 11868, - "nodeType": "ExpressionStatement", - "src": "651:4:13" - } - ] - }, - "documentation": null, - "id": 11870, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "customFactories", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 11861, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11860, - "name": "_type", - "nodeType": "VariableDeclaration", - "scope": 11870, - "src": "573:12:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 11859, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "573:6:13", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "572:14:13" - }, - "payable": false, - "returnParameters": { - "id": 11864, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11863, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 11870, - "src": "608:28:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ITypedConverterCustomFactory_$12268", - "typeString": "contract ITypedConverterCustomFactory" - }, - "typeName": { - "contractScope": null, - "id": 11862, - "name": "ITypedConverterCustomFactory", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 12268, - "src": "608:28:13", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ITypedConverterCustomFactory_$12268", - "typeString": "contract ITypedConverterCustomFactory" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "607:30:13" - }, - "scope": 11871, - "src": "548:111:13", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 11872, - "src": "225:436:13" - } - ], - "src": "0:662:13" - }, - "id": 13 - }, - "solidity/contracts/converter/interfaces/IConverterRegistry.sol": { - "ast": { - "absolutePath": "solidity/contracts/converter/interfaces/IConverterRegistry.sol", - "exportedSymbols": { - "IConverterRegistry": [ - 11982 - ] - }, - "id": 11983, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 11873, - "literals": [ - "solidity", - "0.4", - ".26" - ], - "nodeType": "PragmaDirective", - "src": "0:23:14" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": false, - "id": 11982, - "linearizedBaseContracts": [ - 11982 - ], - "name": "IConverterRegistry", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": null, - "id": 11878, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getAnchorCount", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 11874, - "nodeType": "ParameterList", - "parameters": [], - "src": "79:2:14" - }, - "payable": false, - "returnParameters": { - "id": 11877, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11876, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 11878, - "src": "103:7:14", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11875, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "103:7:14", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "102:9:14" - }, - "scope": 11982, - "src": "56:56:14", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 11884, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getAnchors", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 11879, - "nodeType": "ParameterList", - "parameters": [], - "src": "134:2:14" - }, - "payable": false, - "returnParameters": { - "id": 11883, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11882, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 11884, - "src": "158:9:14", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 11880, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "158:7:14", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 11881, - "length": null, - "nodeType": "ArrayTypeName", - "src": "158:9:14", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "157:11:14" - }, - "scope": 11982, - "src": "115:54:14", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 11891, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getAnchor", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 11887, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11886, - "name": "_index", - "nodeType": "VariableDeclaration", - "scope": 11891, - "src": "191:14:14", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11885, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "191:7:14", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "190:16:14" - }, - "payable": false, - "returnParameters": { - "id": 11890, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11889, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 11891, - "src": "228:7:14", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 11888, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "228:7:14", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "227:9:14" - }, - "scope": 11982, - "src": "172:65:14", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 11898, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "isAnchor", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 11894, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11893, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 11898, - "src": "258:14:14", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 11892, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "258:7:14", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "257:16:14" - }, - "payable": false, - "returnParameters": { - "id": 11897, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11896, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 11898, - "src": "295:4:14", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 11895, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "295:4:14", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "294:6:14" - }, - "scope": 11982, - "src": "240:61:14", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 11903, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getLiquidityPoolCount", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 11899, - "nodeType": "ParameterList", - "parameters": [], - "src": "334:2:14" - }, - "payable": false, - "returnParameters": { - "id": 11902, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11901, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 11903, - "src": "358:7:14", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11900, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "358:7:14", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "357:9:14" - }, - "scope": 11982, - "src": "304:63:14", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 11909, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getLiquidityPools", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 11904, - "nodeType": "ParameterList", - "parameters": [], - "src": "396:2:14" - }, - "payable": false, - "returnParameters": { - "id": 11908, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11907, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 11909, - "src": "420:9:14", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 11905, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "420:7:14", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 11906, - "length": null, - "nodeType": "ArrayTypeName", - "src": "420:9:14", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "419:11:14" - }, - "scope": 11982, - "src": "370:61:14", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 11916, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getLiquidityPool", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 11912, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11911, - "name": "_index", - "nodeType": "VariableDeclaration", - "scope": 11916, - "src": "460:14:14", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11910, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "460:7:14", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "459:16:14" - }, - "payable": false, - "returnParameters": { - "id": 11915, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11914, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 11916, - "src": "497:7:14", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 11913, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "497:7:14", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "496:9:14" - }, - "scope": 11982, - "src": "434:72:14", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 11923, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "isLiquidityPool", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 11919, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11918, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 11923, - "src": "534:14:14", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 11917, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "534:7:14", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "533:16:14" - }, - "payable": false, - "returnParameters": { - "id": 11922, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11921, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 11923, - "src": "571:4:14", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 11920, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "571:4:14", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "570:6:14" - }, - "scope": 11982, - "src": "509:68:14", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 11928, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getConvertibleTokenCount", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 11924, - "nodeType": "ParameterList", - "parameters": [], - "src": "613:2:14" - }, - "payable": false, - "returnParameters": { - "id": 11927, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11926, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 11928, - "src": "637:7:14", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11925, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "637:7:14", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "636:9:14" - }, - "scope": 11982, - "src": "580:66:14", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 11934, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getConvertibleTokens", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 11929, - "nodeType": "ParameterList", - "parameters": [], - "src": "678:2:14" - }, - "payable": false, - "returnParameters": { - "id": 11933, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11932, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 11934, - "src": "702:9:14", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 11930, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "702:7:14", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 11931, - "length": null, - "nodeType": "ArrayTypeName", - "src": "702:9:14", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "701:11:14" - }, - "scope": 11982, - "src": "649:64:14", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 11941, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getConvertibleToken", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 11937, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11936, - "name": "_index", - "nodeType": "VariableDeclaration", - "scope": 11941, - "src": "745:14:14", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11935, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "745:7:14", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "744:16:14" - }, - "payable": false, - "returnParameters": { - "id": 11940, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11939, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 11941, - "src": "782:7:14", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 11938, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "782:7:14", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "781:9:14" - }, - "scope": 11982, - "src": "716:75:14", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 11948, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "isConvertibleToken", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 11944, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11943, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 11948, - "src": "822:14:14", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 11942, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "822:7:14", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "821:16:14" - }, - "payable": false, - "returnParameters": { - "id": 11947, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11946, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 11948, - "src": "859:4:14", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 11945, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "859:4:14", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "858:6:14" - }, - "scope": 11982, - "src": "794:71:14", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 11955, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getConvertibleTokenAnchorCount", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 11951, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11950, - "name": "_convertibleToken", - "nodeType": "VariableDeclaration", - "scope": 11955, - "src": "908:25:14", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 11949, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "908:7:14", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "907:27:14" - }, - "payable": false, - "returnParameters": { - "id": 11954, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11953, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 11955, - "src": "956:7:14", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11952, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "956:7:14", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "955:9:14" - }, - "scope": 11982, - "src": "868:97:14", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 11963, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getConvertibleTokenAnchors", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 11958, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11957, - "name": "_convertibleToken", - "nodeType": "VariableDeclaration", - "scope": 11963, - "src": "1004:25:14", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 11956, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1004:7:14", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1003:27:14" - }, - "payable": false, - "returnParameters": { - "id": 11962, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11961, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 11963, - "src": "1052:9:14", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 11959, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1052:7:14", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 11960, - "length": null, - "nodeType": "ArrayTypeName", - "src": "1052:9:14", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1051:11:14" - }, - "scope": 11982, - "src": "968:95:14", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 11972, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getConvertibleTokenAnchor", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 11968, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11965, - "name": "_convertibleToken", - "nodeType": "VariableDeclaration", - "scope": 11972, - "src": "1101:25:14", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 11964, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1101:7:14", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 11967, - "name": "_index", - "nodeType": "VariableDeclaration", - "scope": 11972, - "src": "1128:14:14", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11966, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1128:7:14", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1100:43:14" - }, - "payable": false, - "returnParameters": { - "id": 11971, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11970, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 11972, - "src": "1165:7:14", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 11969, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1165:7:14", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1164:9:14" - }, - "scope": 11982, - "src": "1066:108:14", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 11981, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "isConvertibleTokenAnchor", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 11977, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11974, - "name": "_convertibleToken", - "nodeType": "VariableDeclaration", - "scope": 11981, - "src": "1211:25:14", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 11973, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1211:7:14", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 11976, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 11981, - "src": "1238:14:14", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 11975, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1238:7:14", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1210:43:14" - }, - "payable": false, - "returnParameters": { - "id": 11980, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11979, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 11981, - "src": "1275:4:14", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 11978, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1275:4:14", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1274:6:14" - }, - "scope": 11982, - "src": "1177:104:14", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 11983, - "src": "25:1258:14" - } - ], - "src": "0:1284:14" - }, - "id": 14 - }, - "solidity/contracts/converter/interfaces/IConverterRegistryData.sol": { - "ast": { - "absolutePath": "solidity/contracts/converter/interfaces/IConverterRegistryData.sol", - "exportedSymbols": { - "IConverterRegistryData": [ - 12127 - ] - }, - "id": 12128, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 11984, - "literals": [ - "solidity", - "0.4", - ".26" - ], - "nodeType": "PragmaDirective", - "src": "0:23:15" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "interface", - "documentation": null, - "fullyImplemented": false, - "id": 12127, - "linearizedBaseContracts": [ - 12127 - ], - "name": "IConverterRegistryData", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": null, - "id": 11989, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "addSmartToken", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 11987, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11986, - "name": "_smartToken", - "nodeType": "VariableDeclaration", - "scope": 11989, - "src": "84:19:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 11985, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "84:7:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "83:21:15" - }, - "payable": false, - "returnParameters": { - "id": 11988, - "nodeType": "ParameterList", - "parameters": [], - "src": "113:0:15" - }, - "scope": 12127, - "src": "61:53:15", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 11994, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "removeSmartToken", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 11992, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11991, - "name": "_smartToken", - "nodeType": "VariableDeclaration", - "scope": 11994, - "src": "143:19:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 11990, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "143:7:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "142:21:15" - }, - "payable": false, - "returnParameters": { - "id": 11993, - "nodeType": "ParameterList", - "parameters": [], - "src": "172:0:15" - }, - "scope": 12127, - "src": "117:56:15", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 11999, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "addLiquidityPool", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 11997, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11996, - "name": "_liquidityPool", - "nodeType": "VariableDeclaration", - "scope": 11999, - "src": "202:22:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 11995, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "202:7:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "201:24:15" - }, - "payable": false, - "returnParameters": { - "id": 11998, - "nodeType": "ParameterList", - "parameters": [], - "src": "234:0:15" - }, - "scope": 12127, - "src": "176:59:15", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 12004, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "removeLiquidityPool", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 12002, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12001, - "name": "_liquidityPool", - "nodeType": "VariableDeclaration", - "scope": 12004, - "src": "267:22:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 12000, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "267:7:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "266:24:15" - }, - "payable": false, - "returnParameters": { - "id": 12003, - "nodeType": "ParameterList", - "parameters": [], - "src": "299:0:15" - }, - "scope": 12127, - "src": "238:62:15", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 12011, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "addConvertibleToken", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 12009, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12006, - "name": "_convertibleToken", - "nodeType": "VariableDeclaration", - "scope": 12011, - "src": "332:25:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 12005, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "332:7:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 12008, - "name": "_smartToken", - "nodeType": "VariableDeclaration", - "scope": 12011, - "src": "359:19:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 12007, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "359:7:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "331:48:15" - }, - "payable": false, - "returnParameters": { - "id": 12010, - "nodeType": "ParameterList", - "parameters": [], - "src": "388:0:15" - }, - "scope": 12127, - "src": "303:86:15", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 12018, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "removeConvertibleToken", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 12016, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12013, - "name": "_convertibleToken", - "nodeType": "VariableDeclaration", - "scope": 12018, - "src": "424:25:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 12012, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "424:7:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 12015, - "name": "_smartToken", - "nodeType": "VariableDeclaration", - "scope": 12018, - "src": "451:19:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 12014, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "451:7:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "423:48:15" - }, - "payable": false, - "returnParameters": { - "id": 12017, - "nodeType": "ParameterList", - "parameters": [], - "src": "480:0:15" - }, - "scope": 12127, - "src": "392:89:15", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 12023, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getSmartTokenCount", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 12019, - "nodeType": "ParameterList", - "parameters": [], - "src": "511:2:15" - }, - "payable": false, - "returnParameters": { - "id": 12022, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12021, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 12023, - "src": "537:7:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 12020, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "537:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "536:9:15" - }, - "scope": 12127, - "src": "484:62:15", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 12029, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getSmartTokens", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 12024, - "nodeType": "ParameterList", - "parameters": [], - "src": "572:2:15" - }, - "payable": false, - "returnParameters": { - "id": 12028, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12027, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 12029, - "src": "598:9:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 12025, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "598:7:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 12026, - "length": null, - "nodeType": "ArrayTypeName", - "src": "598:9:15", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "597:11:15" - }, - "scope": 12127, - "src": "549:60:15", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 12036, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getSmartToken", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 12032, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12031, - "name": "_index", - "nodeType": "VariableDeclaration", - "scope": 12036, - "src": "635:14:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 12030, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "635:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "634:16:15" - }, - "payable": false, - "returnParameters": { - "id": 12035, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12034, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 12036, - "src": "674:7:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 12033, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "674:7:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "673:9:15" - }, - "scope": 12127, - "src": "612:71:15", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 12043, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "isSmartToken", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 12039, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12038, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 12043, - "src": "708:14:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 12037, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "708:7:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "707:16:15" - }, - "payable": false, - "returnParameters": { - "id": 12042, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12041, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 12043, - "src": "747:4:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 12040, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "747:4:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "746:6:15" - }, - "scope": 12127, - "src": "686:67:15", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 12048, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getLiquidityPoolCount", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 12044, - "nodeType": "ParameterList", - "parameters": [], - "src": "786:2:15" - }, - "payable": false, - "returnParameters": { - "id": 12047, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12046, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 12048, - "src": "812:7:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 12045, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "812:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "811:9:15" - }, - "scope": 12127, - "src": "756:65:15", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 12054, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getLiquidityPools", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 12049, - "nodeType": "ParameterList", - "parameters": [], - "src": "850:2:15" - }, - "payable": false, - "returnParameters": { - "id": 12053, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12052, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 12054, - "src": "876:9:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 12050, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "876:7:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 12051, - "length": null, - "nodeType": "ArrayTypeName", - "src": "876:9:15", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "875:11:15" - }, - "scope": 12127, - "src": "824:63:15", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 12061, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getLiquidityPool", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 12057, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12056, - "name": "_index", - "nodeType": "VariableDeclaration", - "scope": 12061, - "src": "916:14:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 12055, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "916:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "915:16:15" - }, - "payable": false, - "returnParameters": { - "id": 12060, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12059, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 12061, - "src": "955:7:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 12058, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "955:7:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "954:9:15" - }, - "scope": 12127, - "src": "890:74:15", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 12068, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "isLiquidityPool", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 12064, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12063, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 12068, - "src": "992:14:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 12062, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "992:7:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "991:16:15" - }, - "payable": false, - "returnParameters": { - "id": 12067, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12066, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 12068, - "src": "1031:4:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 12065, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1031:4:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1030:6:15" - }, - "scope": 12127, - "src": "967:70:15", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 12073, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getConvertibleTokenCount", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 12069, - "nodeType": "ParameterList", - "parameters": [], - "src": "1073:2:15" - }, - "payable": false, - "returnParameters": { - "id": 12072, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12071, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 12073, - "src": "1099:7:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 12070, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1099:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1098:9:15" - }, - "scope": 12127, - "src": "1040:68:15", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 12079, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getConvertibleTokens", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 12074, - "nodeType": "ParameterList", - "parameters": [], - "src": "1140:2:15" - }, - "payable": false, - "returnParameters": { - "id": 12078, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12077, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 12079, - "src": "1166:9:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 12075, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1166:7:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 12076, - "length": null, - "nodeType": "ArrayTypeName", - "src": "1166:9:15", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1165:11:15" - }, - "scope": 12127, - "src": "1111:66:15", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 12086, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getConvertibleToken", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 12082, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12081, - "name": "_index", - "nodeType": "VariableDeclaration", - "scope": 12086, - "src": "1209:14:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 12080, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1209:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1208:16:15" - }, - "payable": false, - "returnParameters": { - "id": 12085, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12084, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 12086, - "src": "1248:7:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 12083, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1248:7:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1247:9:15" - }, - "scope": 12127, - "src": "1180:77:15", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 12093, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "isConvertibleToken", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 12089, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12088, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 12093, - "src": "1288:14:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 12087, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1288:7:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1287:16:15" - }, - "payable": false, - "returnParameters": { - "id": 12092, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12091, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 12093, - "src": "1327:4:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 12090, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1327:4:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1326:6:15" - }, - "scope": 12127, - "src": "1260:73:15", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 12100, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getConvertibleTokenSmartTokenCount", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 12096, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12095, - "name": "_convertibleToken", - "nodeType": "VariableDeclaration", - "scope": 12100, - "src": "1380:25:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 12094, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1380:7:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1379:27:15" - }, - "payable": false, - "returnParameters": { - "id": 12099, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12098, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 12100, - "src": "1430:7:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 12097, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1430:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1429:9:15" - }, - "scope": 12127, - "src": "1336:103:15", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 12108, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getConvertibleTokenSmartTokens", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 12103, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12102, - "name": "_convertibleToken", - "nodeType": "VariableDeclaration", - "scope": 12108, - "src": "1482:25:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 12101, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1482:7:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1481:27:15" - }, - "payable": false, - "returnParameters": { - "id": 12107, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12106, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 12108, - "src": "1532:9:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 12104, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1532:7:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 12105, - "length": null, - "nodeType": "ArrayTypeName", - "src": "1532:9:15", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1531:11:15" - }, - "scope": 12127, - "src": "1442:101:15", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 12117, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getConvertibleTokenSmartToken", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 12113, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12110, - "name": "_convertibleToken", - "nodeType": "VariableDeclaration", - "scope": 12117, - "src": "1585:25:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 12109, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1585:7:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 12112, - "name": "_index", - "nodeType": "VariableDeclaration", - "scope": 12117, - "src": "1612:14:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 12111, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1612:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1584:43:15" - }, - "payable": false, - "returnParameters": { - "id": 12116, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12115, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 12117, - "src": "1651:7:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 12114, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1651:7:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1650:9:15" - }, - "scope": 12127, - "src": "1546:114:15", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 12126, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "isConvertibleTokenSmartToken", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 12122, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12119, - "name": "_convertibleToken", - "nodeType": "VariableDeclaration", - "scope": 12126, - "src": "1701:25:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 12118, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1701:7:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 12121, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 12126, - "src": "1728:14:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 12120, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1728:7:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1700:43:15" - }, - "payable": false, - "returnParameters": { - "id": 12125, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12124, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 12126, - "src": "1767:4:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 12123, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1767:4:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1766:6:15" - }, - "scope": 12127, - "src": "1663:110:15", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - } - ], - "scope": 12128, - "src": "25:1750:15" - } - ], - "src": "0:1776:15" - }, - "id": 15 - }, - "solidity/contracts/converter/interfaces/IConverterUpgrader.sol": { - "ast": { - "absolutePath": "solidity/contracts/converter/interfaces/IConverterUpgrader.sol", - "exportedSymbols": { - "IConverterUpgrader": [ - 12140 - ] - }, - "id": 12141, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 12129, - "literals": [ - "solidity", - "0.4", - ".26" - ], - "nodeType": "PragmaDirective", - "src": "0:23:16" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": false, - "id": 12140, - "linearizedBaseContracts": [ - 12140 - ], - "name": "IConverterUpgrader", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": null, - "id": 12134, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "upgrade", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 12132, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12131, - "name": "_version", - "nodeType": "VariableDeclaration", - "scope": 12134, - "src": "112:16:16", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 12130, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "112:7:16", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "111:18:16" - }, - "payable": false, - "returnParameters": { - "id": 12133, - "nodeType": "ParameterList", - "parameters": [], - "src": "136:0:16" - }, - "scope": 12140, - "src": "95:42:16", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 12139, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "upgrade", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 12137, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12136, - "name": "_version", - "nodeType": "VariableDeclaration", - "scope": 12139, - "src": "157:15:16", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 12135, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "157:6:16", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "156:17:16" - }, - "payable": false, - "returnParameters": { - "id": 12138, - "nodeType": "ParameterList", - "parameters": [], - "src": "180:0:16" - }, - "scope": 12140, - "src": "140:41:16", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 12141, - "src": "64:119:16" - } - ], - "src": "0:184:16" - }, - "id": 16 - }, - "solidity/contracts/converter/interfaces/ISovrynSwapFormula.sol": { - "ast": { - "absolutePath": "solidity/contracts/converter/interfaces/ISovrynSwapFormula.sol", - "exportedSymbols": { - "ISovrynSwapFormula": [ - 12240 - ] - }, - "id": 12241, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 12142, - "literals": [ - "solidity", - "0.4", - ".26" - ], - "nodeType": "PragmaDirective", - "src": "0:23:17" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": false, - "id": 12240, - "linearizedBaseContracts": [ - 12240 - ], - "name": "ISovrynSwapFormula", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": null, - "id": 12155, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "purchaseTargetAmount", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 12151, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12144, - "name": "_supply", - "nodeType": "VariableDeclaration", - "scope": 12155, - "src": "128:15:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 12143, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "128:7:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 12146, - "name": "_reserveBalance", - "nodeType": "VariableDeclaration", - "scope": 12155, - "src": "147:23:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 12145, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "147:7:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 12148, - "name": "_reserveWeight", - "nodeType": "VariableDeclaration", - "scope": 12155, - "src": "174:21:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 12147, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "174:6:17", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 12150, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 12155, - "src": "199:15:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 12149, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "199:7:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "124:93:17" - }, - "payable": false, - "returnParameters": { - "id": 12154, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12153, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 12155, - "src": "239:7:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 12152, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "239:7:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "238:9:17" - }, - "scope": 12240, - "src": "95:153:17", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 12168, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "saleTargetAmount", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 12164, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12157, - "name": "_supply", - "nodeType": "VariableDeclaration", - "scope": 12168, - "src": "280:15:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 12156, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "280:7:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 12159, - "name": "_reserveBalance", - "nodeType": "VariableDeclaration", - "scope": 12168, - "src": "299:23:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 12158, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "299:7:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 12161, - "name": "_reserveWeight", - "nodeType": "VariableDeclaration", - "scope": 12168, - "src": "326:21:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 12160, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "326:6:17", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 12163, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 12168, - "src": "351:15:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 12162, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "351:7:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "276:93:17" - }, - "payable": false, - "returnParameters": { - "id": 12167, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12166, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 12168, - "src": "391:7:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 12165, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "391:7:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "390:9:17" - }, - "scope": 12240, - "src": "251:149:17", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 12183, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "crossReserveTargetAmount", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 12179, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12170, - "name": "_sourceReserveBalance", - "nodeType": "VariableDeclaration", - "scope": 12183, - "src": "440:29:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 12169, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "440:7:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 12172, - "name": "_sourceReserveWeight", - "nodeType": "VariableDeclaration", - "scope": 12183, - "src": "473:27:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 12171, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "473:6:17", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 12174, - "name": "_targetReserveBalance", - "nodeType": "VariableDeclaration", - "scope": 12183, - "src": "504:29:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 12173, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "504:7:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 12176, - "name": "_targetReserveWeight", - "nodeType": "VariableDeclaration", - "scope": 12183, - "src": "537:27:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 12175, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "537:6:17", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 12178, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 12183, - "src": "568:15:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 12177, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "568:7:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "436:150:17" - }, - "payable": false, - "returnParameters": { - "id": 12182, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12181, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 12183, - "src": "608:7:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 12180, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "608:7:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "607:9:17" - }, - "scope": 12240, - "src": "403:214:17", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 12196, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "fundCost", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 12192, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12185, - "name": "_supply", - "nodeType": "VariableDeclaration", - "scope": 12196, - "src": "641:15:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 12184, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "641:7:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 12187, - "name": "_reserveBalance", - "nodeType": "VariableDeclaration", - "scope": 12196, - "src": "660:23:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 12186, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "660:7:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 12189, - "name": "_reserveRatio", - "nodeType": "VariableDeclaration", - "scope": 12196, - "src": "687:20:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 12188, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "687:6:17", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 12191, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 12196, - "src": "711:15:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 12190, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "711:7:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "637:92:17" - }, - "payable": false, - "returnParameters": { - "id": 12195, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12194, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 12196, - "src": "751:7:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 12193, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "751:7:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "750:9:17" - }, - "scope": 12240, - "src": "620:140:17", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 12209, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "fundSupplyAmount", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 12205, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12198, - "name": "_supply", - "nodeType": "VariableDeclaration", - "scope": 12209, - "src": "792:15:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 12197, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "792:7:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 12200, - "name": "_reserveBalance", - "nodeType": "VariableDeclaration", - "scope": 12209, - "src": "811:23:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 12199, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "811:7:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 12202, - "name": "_reserveRatio", - "nodeType": "VariableDeclaration", - "scope": 12209, - "src": "838:20:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 12201, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "838:6:17", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 12204, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 12209, - "src": "862:15:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 12203, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "862:7:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "788:92:17" - }, - "payable": false, - "returnParameters": { - "id": 12208, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12207, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 12209, - "src": "902:7:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 12206, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "902:7:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "901:9:17" - }, - "scope": 12240, - "src": "763:148:17", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 12222, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "liquidateReserveAmount", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 12218, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12211, - "name": "_supply", - "nodeType": "VariableDeclaration", - "scope": 12222, - "src": "949:15:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 12210, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "949:7:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 12213, - "name": "_reserveBalance", - "nodeType": "VariableDeclaration", - "scope": 12222, - "src": "968:23:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 12212, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "968:7:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 12215, - "name": "_reserveRatio", - "nodeType": "VariableDeclaration", - "scope": 12222, - "src": "995:20:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 12214, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "995:6:17", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 12217, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 12222, - "src": "1019:15:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 12216, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1019:7:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "945:92:17" - }, - "payable": false, - "returnParameters": { - "id": 12221, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12220, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 12222, - "src": "1059:7:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 12219, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1059:7:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1058:9:17" - }, - "scope": 12240, - "src": "914:154:17", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 12239, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "balancedWeights", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 12233, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12224, - "name": "_primaryReserveStakedBalance", - "nodeType": "VariableDeclaration", - "scope": 12239, - "src": "1099:36:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 12223, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1099:7:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 12226, - "name": "_primaryReserveBalance", - "nodeType": "VariableDeclaration", - "scope": 12239, - "src": "1139:30:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 12225, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1139:7:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 12228, - "name": "_secondaryReserveBalance", - "nodeType": "VariableDeclaration", - "scope": 12239, - "src": "1173:32:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 12227, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1173:7:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 12230, - "name": "_reserveRateNumerator", - "nodeType": "VariableDeclaration", - "scope": 12239, - "src": "1209:29:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 12229, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1209:7:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 12232, - "name": "_reserveRateDenominator", - "nodeType": "VariableDeclaration", - "scope": 12239, - "src": "1242:31:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 12231, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1242:7:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1095:181:17" - }, - "payable": false, - "returnParameters": { - "id": 12238, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12235, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 12239, - "src": "1298:6:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 12234, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "1298:6:17", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 12237, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 12239, - "src": "1306:6:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 12236, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "1306:6:17", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1297:16:17" - }, - "scope": 12240, - "src": "1071:243:17", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 12241, - "src": "64:1252:17" - } - ], - "src": "0:1317:17" - }, - "id": 17 - }, - "solidity/contracts/converter/interfaces/ITypedConverterAnchorFactory.sol": { - "ast": { - "absolutePath": "solidity/contracts/converter/interfaces/ITypedConverterAnchorFactory.sol", - "exportedSymbols": { - "ITypedConverterAnchorFactory": [ - 12260 - ] - }, - "id": 12261, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 12242, - "literals": [ - "solidity", - "0.4", - ".26" - ], - "nodeType": "PragmaDirective", - "src": "0:23:18" - }, - { - "absolutePath": "solidity/contracts/converter/interfaces/IConverterAnchor.sol", - "file": "./IConverterAnchor.sol", - "id": 12243, - "nodeType": "ImportDirective", - "scope": 12261, - "sourceUnit": 11827, - "src": "24:32:18", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": false, - "id": 12260, - "linearizedBaseContracts": [ - 12260 - ], - "name": "ITypedConverterAnchorFactory", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": null, - "id": 12248, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "converterType", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 12244, - "nodeType": "ParameterList", - "parameters": [], - "src": "172:2:18" - }, - "payable": false, - "returnParameters": { - "id": 12247, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12246, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 12248, - "src": "196:6:18", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 12245, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "196:6:18", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "195:8:18" - }, - "scope": 12260, - "src": "150:54:18", - "stateMutability": "pure", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 12259, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "createAnchor", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 12255, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12250, - "name": "_name", - "nodeType": "VariableDeclaration", - "scope": 12259, - "src": "232:12:18", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 12249, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "232:6:18", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 12252, - "name": "_symbol", - "nodeType": "VariableDeclaration", - "scope": 12259, - "src": "248:14:18", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 12251, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "248:6:18", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 12254, - "name": "_decimals", - "nodeType": "VariableDeclaration", - "scope": 12259, - "src": "266:15:18", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 12253, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "266:5:18", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "228:56:18" - }, - "payable": false, - "returnParameters": { - "id": 12258, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12257, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 12259, - "src": "301:16:18", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - }, - "typeName": { - "contractScope": null, - "id": 12256, - "name": "IConverterAnchor", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 11826, - "src": "301:16:18", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "300:18:18" - }, - "scope": 12260, - "src": "207:112:18", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 12261, - "src": "109:212:18" - } - ], - "src": "0:322:18" - }, - "id": 18 - }, - "solidity/contracts/converter/interfaces/ITypedConverterCustomFactory.sol": { - "ast": { - "absolutePath": "solidity/contracts/converter/interfaces/ITypedConverterCustomFactory.sol", - "exportedSymbols": { - "ITypedConverterCustomFactory": [ - 12268 - ] - }, - "id": 12269, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 12262, - "literals": [ - "solidity", - "0.4", - ".26" - ], - "nodeType": "PragmaDirective", - "src": "0:23:19" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": false, - "id": 12268, - "linearizedBaseContracts": [ - 12268 - ], - "name": "ITypedConverterCustomFactory", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": null, - "id": 12267, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "converterType", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 12263, - "nodeType": "ParameterList", - "parameters": [], - "src": "139:2:19" - }, - "payable": false, - "returnParameters": { - "id": 12266, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12265, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 12267, - "src": "163:6:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 12264, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "163:6:19", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "162:8:19" - }, - "scope": 12268, - "src": "117:54:19", - "stateMutability": "pure", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 12269, - "src": "76:97:19" - } - ], - "src": "0:174:19" - }, - "id": 19 - }, - "solidity/contracts/converter/interfaces/ITypedConverterFactory.sol": { - "ast": { - "absolutePath": "solidity/contracts/converter/interfaces/ITypedConverterFactory.sol", - "exportedSymbols": { - "ITypedConverterFactory": [ - 12290 - ] - }, - "id": 12291, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 12270, - "literals": [ - "solidity", - "0.4", - ".26" - ], - "nodeType": "PragmaDirective", - "src": "0:23:20" - }, - { - "absolutePath": "solidity/contracts/converter/interfaces/IConverter.sol", - "file": "./IConverter.sol", - "id": 12271, - "nodeType": "ImportDirective", - "scope": 12291, - "sourceUnit": 11818, - "src": "24:26:20", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "solidity/contracts/converter/interfaces/IConverterAnchor.sol", - "file": "./IConverterAnchor.sol", - "id": 12272, - "nodeType": "ImportDirective", - "scope": 12291, - "sourceUnit": 11827, - "src": "51:32:20", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "solidity/contracts/utility/interfaces/IContractRegistry.sol", - "file": "../../utility/interfaces/IContractRegistry.sol", - "id": 12273, - "nodeType": "ImportDirective", - "scope": 12291, - "sourceUnit": 22221, - "src": "84:56:20", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": false, - "id": 12290, - "linearizedBaseContracts": [ - 12290 - ], - "name": "ITypedConverterFactory", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": null, - "id": 12278, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "converterType", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 12274, - "nodeType": "ParameterList", - "parameters": [], - "src": "243:2:20" - }, - "payable": false, - "returnParameters": { - "id": 12277, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12276, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 12278, - "src": "267:6:20", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 12275, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "267:6:20", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "266:8:20" - }, - "scope": 12290, - "src": "221:54:20", - "stateMutability": "pure", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 12289, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "createConverter", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 12285, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12280, - "name": "_anchor", - "nodeType": "VariableDeclaration", - "scope": 12289, - "src": "306:24:20", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - }, - "typeName": { - "contractScope": null, - "id": 12279, - "name": "IConverterAnchor", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 11826, - "src": "306:16:20", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 12282, - "name": "_registry", - "nodeType": "VariableDeclaration", - "scope": 12289, - "src": "334:27:20", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IContractRegistry_$22220", - "typeString": "contract IContractRegistry" - }, - "typeName": { - "contractScope": null, - "id": 12281, - "name": "IContractRegistry", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 22220, - "src": "334:17:20", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IContractRegistry_$22220", - "typeString": "contract IContractRegistry" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 12284, - "name": "_maxConversionFee", - "nodeType": "VariableDeclaration", - "scope": 12289, - "src": "365:24:20", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 12283, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "365:6:20", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "302:90:20" - }, - "payable": false, - "returnParameters": { - "id": 12288, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12287, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 12289, - "src": "409:10:20", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - }, - "typeName": { - "contractScope": null, - "id": 12286, - "name": "IConverter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 11817, - "src": "409:10:20", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "408:12:20" - }, - "scope": 12290, - "src": "278:143:20", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 12291, - "src": "186:237:20" - } - ], - "src": "0:424:20" - }, - "id": 20 - }, - "solidity/contracts/converter/types/liquid-token/LiquidTokenConverter.sol": { - "ast": { - "absolutePath": "solidity/contracts/converter/types/liquid-token/LiquidTokenConverter.sol", - "exportedSymbols": { - "LiquidTokenConverter": [ - 12871 - ] - }, - "id": 12872, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 12292, - "literals": [ - "solidity", - "0.4", - ".26" - ], - "nodeType": "PragmaDirective", - "src": "0:23:21" - }, - { - "absolutePath": "solidity/contracts/converter/ConverterBase.sol", - "file": "../../ConverterBase.sol", - "id": 12293, - "nodeType": "ImportDirective", - "scope": 12872, - "sourceUnit": 3415, - "src": "25:33:21", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "solidity/contracts/token/interfaces/ISmartToken.sol", - "file": "../../../token/interfaces/ISmartToken.sol", - "id": 12294, - "nodeType": "ImportDirective", - "scope": 12872, - "sourceUnit": 20296, - "src": "60:51:21", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 12295, - "name": "ConverterBase", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3414, - "src": "482:13:21", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ConverterBase_$3414", - "typeString": "contract ConverterBase" - } - }, - "id": 12296, - "nodeType": "InheritanceSpecifier", - "src": "482:13:21" - } - ], - "contractDependencies": [ - 3414, - 11817, - 20932, - 21324, - 21710, - 21933, - 21976, - 22052, - 22247, - 22313 - ], - "contractKind": "contract", - "documentation": "@dev Liquid Token Converter\r\n\n * The liquid token converter is a specialized version of a converter that manages a liquid token.\r\n\n * The converters govern a token with a single reserve and allow converting between the two.\r\nLiquid tokens usually have fractional reserve (reserve ratio smaller than 100%).\r", - "fullyImplemented": true, - "id": 12871, - "linearizedBaseContracts": [ - 12871, - 3414, - 21710, - 20932, - 21976, - 22052, - 21324, - 21933, - 22313, - 11817, - 22247 - ], - "name": "LiquidTokenConverter", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 12310, - "nodeType": "Block", - "src": "1027:8:21", - "statements": [] - }, - "documentation": "@dev initializes a new LiquidTokenConverter instance\r\n\n * @param _token liquid token governed by the converter\r\n@param _registry address of a contract registry contract\r\n@param _maxConversionFee maximum conversion fee, represented in ppm\r", - "id": 12311, - "implemented": true, - "isConstructor": true, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 12305, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12298, - "src": "968:6:21", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISmartToken_$20295", - "typeString": "contract ISmartToken" - } - }, - { - "argumentTypes": null, - "id": 12306, - "name": "_registry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12300, - "src": "976:9:21", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IContractRegistry_$22220", - "typeString": "contract IContractRegistry" - } - }, - { - "argumentTypes": null, - "id": 12307, - "name": "_maxConversionFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12302, - "src": "987:17:21", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "id": 12308, - "modifierName": { - "argumentTypes": null, - "id": 12304, - "name": "ConverterBase", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3414, - "src": "954:13:21", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ConverterBase_$3414_$", - "typeString": "type(contract ConverterBase)" - } - }, - "nodeType": "ModifierInvocation", - "src": "954:51:21" - } - ], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 12303, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12298, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 12311, - "src": "846:18:21", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISmartToken_$20295", - "typeString": "contract ISmartToken" - }, - "typeName": { - "contractScope": null, - "id": 12297, - "name": "ISmartToken", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20295, - "src": "846:11:21", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISmartToken_$20295", - "typeString": "contract ISmartToken" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 12300, - "name": "_registry", - "nodeType": "VariableDeclaration", - "scope": 12311, - "src": "875:27:21", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IContractRegistry_$22220", - "typeString": "contract IContractRegistry" - }, - "typeName": { - "contractScope": null, - "id": 12299, - "name": "IContractRegistry", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 22220, - "src": "875:17:21", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IContractRegistry_$22220", - "typeString": "contract IContractRegistry" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 12302, - "name": "_maxConversionFee", - "nodeType": "VariableDeclaration", - "scope": 12311, - "src": "913:24:21", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 12301, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "913:6:21", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "835:109:21" - }, - "payable": false, - "returnParameters": { - "id": 12309, - "nodeType": "ParameterList", - "parameters": [], - "src": "1027:0:21" - }, - "scope": 12871, - "src": "824:211:21", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 12318, - "nodeType": "Block", - "src": "1234:27:21", - "statements": [ - { - "expression": { - "argumentTypes": null, - "hexValue": "30", - "id": 12316, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1252:1:21", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "functionReturnParameters": 12315, - "id": 12317, - "nodeType": "Return", - "src": "1245:8:21" - } - ] - }, - "documentation": "@dev returns the converter type\r\n\n * @return see the converter types in the the main contract doc\r", - "id": 12319, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "converterType", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 12312, - "nodeType": "ParameterList", - "parameters": [], - "src": "1202:2:21" - }, - "payable": false, - "returnParameters": { - "id": 12315, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12314, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 12319, - "src": "1226:6:21", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 12313, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "1226:6:21", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1225:8:21" - }, - "scope": 12871, - "src": "1180:81:21", - "stateMutability": "pure", - "superFunction": 11655, - "visibility": "public" - }, - { - "body": { - "id": 12336, - "nodeType": "Block", - "src": "1584:107:21", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 12324, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22436, - "src": "1595:5:21", - "typeDescriptions": { - "typeIdentifier": "t_super$_LiquidTokenConverter_$12871", - "typeString": "contract super LiquidTokenConverter" - } - }, - "id": 12326, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "acceptAnchorOwnership", - "nodeType": "MemberAccess", - "referencedDeclaration": 2841, - "src": "1595:27:21", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", - "typeString": "function ()" - } - }, - "id": 12327, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1595:29:21", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 12328, - "nodeType": "ExpressionStatement", - "src": "1595:29:21" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 12330, - "name": "converterType", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 12319 - ], - "referencedDeclaration": 12319, - "src": "1653:13:21", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$__$returns$_t_uint16_$", - "typeString": "function () pure returns (uint16)" - } - }, - "id": 12331, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1653:15:21", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - { - "argumentTypes": null, - "id": 12332, - "name": "anchor", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2511 - ], - "referencedDeclaration": 2511, - "src": "1670:6:21", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - }, - { - "argumentTypes": null, - "hexValue": "74727565", - "id": 12333, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1678:4:21", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - }, - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 12329, - "name": "Activation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2540, - "src": "1642:10:21", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint16_$_t_contract$_IConverterAnchor_$11826_$_t_bool_$returns$__$", - "typeString": "function (uint16,contract IConverterAnchor,bool)" - } - }, - "id": 12334, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1642:41:21", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 12335, - "nodeType": "EmitStatement", - "src": "1637:46:21" - } - ] - }, - "documentation": "@dev accepts ownership of the anchor after an ownership transfer\r\nalso activates the converter\r\ncan only be called by the contract owner\r\nnote that prior to version 28, you should use 'acceptTokenOwnership' instead\r", - "id": 12337, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 12322, - "modifierName": { - "argumentTypes": null, - "id": 12321, - "name": "ownerOnly", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21265, - "src": "1574:9:21", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "1574:9:21" - } - ], - "name": "acceptAnchorOwnership", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 12320, - "nodeType": "ParameterList", - "parameters": [], - "src": "1564:2:21" - }, - "payable": false, - "returnParameters": { - "id": 12323, - "nodeType": "ParameterList", - "parameters": [], - "src": "1584:0:21" - }, - "scope": 12871, - "src": "1534:157:21", - "stateMutability": "nonpayable", - "superFunction": 2841, - "visibility": "public" - }, - { - "body": { - "id": 12359, - "nodeType": "Block", - "src": "2088:190:21", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "id": 12348, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 12345, - "name": "reserveTokenCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2984, - "src": "2172:17:21", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_uint16_$", - "typeString": "function () view returns (uint16)" - } - }, - "id": 12346, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2172:19:21", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 12347, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2195:1:21", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "2172:24:21", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552525f494e56414c49445f524553455256455f434f554e54", - "id": 12349, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2198:27:21", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_ed94f14d8dcbb423a259b4072978fc0c494c6af1fea066a19023afb1a76ac87f", - "typeString": "literal_string \"ERR_INVALID_RESERVE_COUNT\"" - }, - "value": "ERR_INVALID_RESERVE_COUNT" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_ed94f14d8dcbb423a259b4072978fc0c494c6af1fea066a19023afb1a76ac87f", - "typeString": "literal_string \"ERR_INVALID_RESERVE_COUNT\"" - } - ], - "id": 12344, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 22341, - 22342 - ], - "referencedDeclaration": 22342, - "src": "2164:7:21", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 12350, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2164:62:21", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 12351, - "nodeType": "ExpressionStatement", - "src": "2164:62:21" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 12355, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12339, - "src": "2254:6:21", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - { - "argumentTypes": null, - "id": 12356, - "name": "_weight", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12341, - "src": "2262:7:21", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - ], - "expression": { - "argumentTypes": null, - "id": 12352, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22436, - "src": "2237:5:21", - "typeDescriptions": { - "typeIdentifier": "t_super$_LiquidTokenConverter_$12871", - "typeString": "contract super LiquidTokenConverter" - } - }, - "id": 12354, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "addReserve", - "nodeType": "MemberAccess", - "referencedDeclaration": 3074, - "src": "2237:16:21", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20Token_$20240_$_t_uint32_$returns$__$", - "typeString": "function (contract IERC20Token,uint32)" - } - }, - "id": 12357, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2237:33:21", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 12358, - "nodeType": "ExpressionStatement", - "src": "2237:33:21" - } - ] - }, - "documentation": "@dev defines the reserve token for the converter\r\ncan only be called by the owner while the converter is inactive and the\r\nreserve wasn't defined yet\r\n\n * @param _token address of the reserve token\r\n@param _weight reserve weight, represented in ppm, 1-1000000\r", - "id": 12360, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "addReserve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 12342, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12339, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 12360, - "src": "2045:18:21", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - "typeName": { - "contractScope": null, - "id": 12338, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "2045:11:21", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 12341, - "name": "_weight", - "nodeType": "VariableDeclaration", - "scope": 12360, - "src": "2065:14:21", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 12340, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "2065:6:21", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2044:36:21" - }, - "payable": false, - "returnParameters": { - "id": 12343, - "nodeType": "ParameterList", - "parameters": [], - "src": "2088:0:21" - }, - "scope": 12871, - "src": "2025:253:21", - "stateMutability": "nonpayable", - "superFunction": 3074, - "visibility": "public" - }, - { - "body": { - "id": 12407, - "nodeType": "Block", - "src": "2856:336:21", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 12382, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - "id": 12377, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 12373, - "name": "_targetToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12364, - "src": "2871:12:21", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 12375, - "name": "anchor", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2511 - ], - "referencedDeclaration": 2511, - "src": "2899:6:21", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - ], - "id": 12374, - "name": "ISmartToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20295, - "src": "2887:11:21", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ISmartToken_$20295_$", - "typeString": "type(contract ISmartToken)" - } - }, - "id": 12376, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2887:19:21", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISmartToken_$20295", - "typeString": "contract ISmartToken" - } - }, - "src": "2871:35:21", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 12378, - "name": "reserves", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2520, - "src": "2910:8:21", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Reserve_$2506_storage_$", - "typeString": "mapping(address => struct ConverterBase.Reserve storage ref)" - } - }, - "id": 12380, - "indexExpression": { - "argumentTypes": null, - "id": 12379, - "name": "_sourceToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12362, - "src": "2919:12:21", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2910:22:21", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Reserve_$2506_storage", - "typeString": "struct ConverterBase.Reserve storage ref" - } - }, - "id": 12381, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "isSet", - "nodeType": "MemberAccess", - "referencedDeclaration": 2505, - "src": "2910:28:21", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "2871:67:21", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 12387, - "nodeType": "IfStatement", - "src": "2867:122:21", - "trueBody": { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 12384, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12366, - "src": "2981:7:21", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 12383, - "name": "purchaseTargetAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12589, - "src": "2960:20:21", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$_t_uint256_$", - "typeString": "function (uint256) view returns (uint256,uint256)" - } - }, - "id": 12385, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2960:29:21", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", - "typeString": "tuple(uint256,uint256)" - } - }, - "functionReturnParameters": 12372, - "id": 12386, - "nodeType": "Return", - "src": "2953:36:21" - } - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 12397, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - "id": 12392, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 12388, - "name": "_sourceToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12362, - "src": "3004:12:21", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 12390, - "name": "anchor", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2511 - ], - "referencedDeclaration": 2511, - "src": "3032:6:21", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - ], - "id": 12389, - "name": "ISmartToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20295, - "src": "3020:11:21", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ISmartToken_$20295_$", - "typeString": "type(contract ISmartToken)" - } - }, - "id": 12391, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3020:19:21", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISmartToken_$20295", - "typeString": "contract ISmartToken" - } - }, - "src": "3004:35:21", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 12393, - "name": "reserves", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2520, - "src": "3043:8:21", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Reserve_$2506_storage_$", - "typeString": "mapping(address => struct ConverterBase.Reserve storage ref)" - } - }, - "id": 12395, - "indexExpression": { - "argumentTypes": null, - "id": 12394, - "name": "_targetToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12364, - "src": "3052:12:21", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3043:22:21", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Reserve_$2506_storage", - "typeString": "struct ConverterBase.Reserve storage ref" - } - }, - "id": 12396, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "isSet", - "nodeType": "MemberAccess", - "referencedDeclaration": 2505, - "src": "3043:28:21", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "3004:67:21", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 12402, - "nodeType": "IfStatement", - "src": "3000:118:21", - "trueBody": { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 12399, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12366, - "src": "3110:7:21", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 12398, - "name": "saleTargetAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12656, - "src": "3093:16:21", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$_t_uint256_$", - "typeString": "function (uint256) view returns (uint256,uint256)" - } - }, - "id": 12400, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3093:25:21", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", - "typeString": "tuple(uint256,uint256)" - } - }, - "functionReturnParameters": 12372, - "id": 12401, - "nodeType": "Return", - "src": "3086:32:21" - } - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "4552525f494e56414c49445f544f4b454e", - "id": 12404, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3164:19:21", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_ebb7677ef55bf004ceacedca2d0ee2121b64fc0fddbb89e9252a1965146107fb", - "typeString": "literal_string \"ERR_INVALID_TOKEN\"" - }, - "value": "ERR_INVALID_TOKEN" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_stringliteral_ebb7677ef55bf004ceacedca2d0ee2121b64fc0fddbb89e9252a1965146107fb", - "typeString": "literal_string \"ERR_INVALID_TOKEN\"" - } - ], - "id": 12403, - "name": "revert", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 22343, - 22344 - ], - "referencedDeclaration": 22344, - "src": "3157:6:21", - "typeDescriptions": { - "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", - "typeString": "function (string memory) pure" - } - }, - "id": 12405, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3157:27:21", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 12406, - "nodeType": "ExpressionStatement", - "src": "3157:27:21" - } - ] - }, - "documentation": "@dev returns the expected target amount of converting the source token to the\r\ntarget token along with the fee\r\n\n * @param _sourceToken contract address of the source token\r\n@param _targetToken contract address of the target token\r\n@param _amount amount of tokens received from the user\r\n\n * @return expected target amount\r\n@return expected fee\r", - "id": 12408, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "targetAmountAndFee", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 12367, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12362, - "name": "_sourceToken", - "nodeType": "VariableDeclaration", - "scope": 12408, - "src": "2748:24:21", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - "typeName": { - "contractScope": null, - "id": 12361, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "2748:11:21", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 12364, - "name": "_targetToken", - "nodeType": "VariableDeclaration", - "scope": 12408, - "src": "2774:24:21", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - "typeName": { - "contractScope": null, - "id": 12363, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "2774:11:21", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 12366, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 12408, - "src": "2800:15:21", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 12365, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2800:7:21", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2747:69:21" - }, - "payable": false, - "returnParameters": { - "id": 12372, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12369, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 12408, - "src": "2838:7:21", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 12368, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2838:7:21", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 12371, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 12408, - "src": "2847:7:21", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 12370, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2847:7:21", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2837:18:21" - }, - "scope": 12871, - "src": "2720:472:21", - "stateMutability": "view", - "superFunction": 11681, - "visibility": "public" - }, - { - "body": { - "id": 12514, - "nodeType": "Block", - "src": "3945:940:21", - "statements": [ - { - "assignments": [], - "declarations": [ - { - "constant": false, - "id": 12424, - "name": "targetAmount", - "nodeType": "VariableDeclaration", - "scope": 12515, - "src": "3956:20:21", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 12423, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3956:7:21", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 12425, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "3956:20:21" - }, - { - "assignments": [], - "declarations": [ - { - "constant": false, - "id": 12427, - "name": "reserveToken", - "nodeType": "VariableDeclaration", - "scope": 12515, - "src": "3987:24:21", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - "typeName": { - "contractScope": null, - "id": 12426, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "3987:11:21", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 12428, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "3987:24:21" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 12438, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - "id": 12433, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 12429, - "name": "_targetToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12412, - "src": "4028:12:21", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 12431, - "name": "anchor", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2511 - ], - "referencedDeclaration": 2511, - "src": "4056:6:21", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - ], - "id": 12430, - "name": "ISmartToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20295, - "src": "4044:11:21", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ISmartToken_$20295_$", - "typeString": "type(contract ISmartToken)" - } - }, - "id": 12432, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4044:19:21", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISmartToken_$20295", - "typeString": "contract ISmartToken" - } - }, - "src": "4028:35:21", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 12434, - "name": "reserves", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2520, - "src": "4067:8:21", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Reserve_$2506_storage_$", - "typeString": "mapping(address => struct ConverterBase.Reserve storage ref)" - } - }, - "id": 12436, - "indexExpression": { - "argumentTypes": null, - "id": 12435, - "name": "_sourceToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12410, - "src": "4076:12:21", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4067:22:21", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Reserve_$2506_storage", - "typeString": "struct ConverterBase.Reserve storage ref" - } - }, - "id": 12437, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "isSet", - "nodeType": "MemberAccess", - "referencedDeclaration": 2505, - "src": "4067:28:21", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "4028:67:21", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 12461, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - "id": 12456, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 12452, - "name": "_sourceToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12410, - "src": "4235:12:21", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 12454, - "name": "anchor", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2511 - ], - "referencedDeclaration": 2511, - "src": "4263:6:21", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - ], - "id": 12453, - "name": "ISmartToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20295, - "src": "4251:11:21", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ISmartToken_$20295_$", - "typeString": "type(contract ISmartToken)" - } - }, - "id": 12455, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4251:19:21", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISmartToken_$20295", - "typeString": "contract ISmartToken" - } - }, - "src": "4235:35:21", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 12457, - "name": "reserves", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2520, - "src": "4274:8:21", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Reserve_$2506_storage_$", - "typeString": "mapping(address => struct ConverterBase.Reserve storage ref)" - } - }, - "id": 12459, - "indexExpression": { - "argumentTypes": null, - "id": 12458, - "name": "_targetToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12412, - "src": "4283:12:21", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4274:22:21", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Reserve_$2506_storage", - "typeString": "struct ConverterBase.Reserve storage ref" - } - }, - "id": 12460, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "isSet", - "nodeType": "MemberAccess", - "referencedDeclaration": 2505, - "src": "4274:28:21", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "4235:67:21", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 12479, - "nodeType": "Block", - "src": "4439:84:21", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "4552525f494e56414c49445f544f4b454e", - "id": 12476, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4491:19:21", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_ebb7677ef55bf004ceacedca2d0ee2121b64fc0fddbb89e9252a1965146107fb", - "typeString": "literal_string \"ERR_INVALID_TOKEN\"" - }, - "value": "ERR_INVALID_TOKEN" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_stringliteral_ebb7677ef55bf004ceacedca2d0ee2121b64fc0fddbb89e9252a1965146107fb", - "typeString": "literal_string \"ERR_INVALID_TOKEN\"" - } - ], - "id": 12475, - "name": "revert", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 22343, - 22344 - ], - "referencedDeclaration": 22344, - "src": "4484:6:21", - "typeDescriptions": { - "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", - "typeString": "function (string memory) pure" - } - }, - "id": 12477, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4484:27:21", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 12478, - "nodeType": "ExpressionStatement", - "src": "4484:27:21" - } - ] - }, - "id": 12480, - "nodeType": "IfStatement", - "src": "4231:292:21", - "trueBody": { - "id": 12474, - "nodeType": "Block", - "src": "4304:120:21", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 12464, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 12462, - "name": "reserveToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12427, - "src": "4319:12:21", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 12463, - "name": "_targetToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12412, - "src": "4334:12:21", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "src": "4319:27:21", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "id": 12465, - "nodeType": "ExpressionStatement", - "src": "4319:27:21" - }, - { - "expression": { - "argumentTypes": null, - "id": 12472, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 12466, - "name": "targetAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12424, - "src": "4361:12:21", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 12468, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12414, - "src": "4381:7:21", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 12469, - "name": "_trader", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12416, - "src": "4390:7:21", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 12470, - "name": "_beneficiary", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12418, - "src": "4399:12:21", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 12467, - "name": "sell", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12870, - "src": "4376:4:21", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_address_$_t_address_$returns$_t_uint256_$", - "typeString": "function (uint256,address,address) returns (uint256)" - } - }, - "id": 12471, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4376:36:21", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4361:51:21", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 12473, - "nodeType": "ExpressionStatement", - "src": "4361:51:21" - } - ] - } - }, - "id": 12481, - "nodeType": "IfStatement", - "src": "4024:499:21", - "trueBody": { - "id": 12451, - "nodeType": "Block", - "src": "4097:119:21", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 12441, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 12439, - "name": "reserveToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12427, - "src": "4112:12:21", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 12440, - "name": "_sourceToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12410, - "src": "4127:12:21", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "src": "4112:27:21", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "id": 12442, - "nodeType": "ExpressionStatement", - "src": "4112:27:21" - }, - { - "expression": { - "argumentTypes": null, - "id": 12449, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 12443, - "name": "targetAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12424, - "src": "4154:12:21", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 12445, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12414, - "src": "4173:7:21", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 12446, - "name": "_trader", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12416, - "src": "4182:7:21", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 12447, - "name": "_beneficiary", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12418, - "src": "4191:12:21", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 12444, - "name": "buy", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12746, - "src": "4169:3:21", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_address_$_t_address_$returns$_t_uint256_$", - "typeString": "function (uint256,address,address) returns (uint256)" - } - }, - "id": 12448, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4169:35:21", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4154:50:21", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 12450, - "nodeType": "ExpressionStatement", - "src": "4154:50:21" - } - ] - } - }, - { - "assignments": [ - 12483 - ], - "declarations": [ - { - "constant": false, - "id": 12483, - "name": "totalSupply", - "nodeType": "VariableDeclaration", - "scope": 12515, - "src": "4589:19:21", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 12482, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4589:7:21", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 12489, - "initialValue": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 12485, - "name": "anchor", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2511 - ], - "referencedDeclaration": 2511, - "src": "4623:6:21", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - ], - "id": 12484, - "name": "ISmartToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20295, - "src": "4611:11:21", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ISmartToken_$20295_$", - "typeString": "type(contract ISmartToken)" - } - }, - "id": 12486, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4611:19:21", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISmartToken_$20295", - "typeString": "contract ISmartToken" - } - }, - "id": 12487, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "totalSupply", - "nodeType": "MemberAccess", - "referencedDeclaration": 20182, - "src": "4611:31:21", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", - "typeString": "function () view external returns (uint256)" - } - }, - "id": 12488, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4611:33:21", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4589:55:21" - }, - { - "assignments": [ - 12491 - ], - "declarations": [ - { - "constant": false, - "id": 12491, - "name": "reserveWeight", - "nodeType": "VariableDeclaration", - "scope": 12515, - "src": "4655:20:21", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 12490, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "4655:6:21", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 12496, - "initialValue": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 12492, - "name": "reserves", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2520, - "src": "4678:8:21", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Reserve_$2506_storage_$", - "typeString": "mapping(address => struct ConverterBase.Reserve storage ref)" - } - }, - "id": 12494, - "indexExpression": { - "argumentTypes": null, - "id": 12493, - "name": "reserveToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12427, - "src": "4687:12:21", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4678:22:21", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Reserve_$2506_storage", - "typeString": "struct ConverterBase.Reserve storage ref" - } - }, - "id": 12495, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "weight", - "nodeType": "MemberAccess", - "referencedDeclaration": 2499, - "src": "4678:29:21", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4655:52:21" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 12498, - "name": "anchor", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2511 - ], - "referencedDeclaration": 2511, - "src": "4739:6:21", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - }, - { - "argumentTypes": null, - "id": 12499, - "name": "reserveToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12427, - "src": "4747:12:21", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 12504, - "name": "WEIGHT_RESOLUTION", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2489, - "src": "4794:17:21", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 12501, - "name": "reserveToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12427, - "src": "4776:12:21", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - ], - "id": 12500, - "name": "reserveBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 3106 - ], - "referencedDeclaration": 3106, - "src": "4761:14:21", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_contract$_IERC20Token_$20240_$returns$_t_uint256_$", - "typeString": "function (contract IERC20Token) view returns (uint256)" - } - }, - "id": 12502, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4761:28:21", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 12503, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 21791, - "src": "4761:32:21", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 12505, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4761:51:21", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 12508, - "name": "reserveWeight", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12491, - "src": "4830:13:21", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - ], - "expression": { - "argumentTypes": null, - "id": 12506, - "name": "totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12483, - "src": "4814:11:21", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 12507, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 21791, - "src": "4814:15:21", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 12509, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4814:30:21", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - }, - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 12497, - "name": "TokenRateUpdate", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2564, - "src": "4723:15:21", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256,uint256)" - } - }, - "id": 12510, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4723:122:21", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 12511, - "nodeType": "EmitStatement", - "src": "4718:127:21" - }, - { - "expression": { - "argumentTypes": null, - "id": 12512, - "name": "targetAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12424, - "src": "4865:12:21", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 12422, - "id": 12513, - "nodeType": "Return", - "src": "4858:19:21" - } - ] - }, - "documentation": "@dev converts between the liquid token and its reserve\r\ncan only be called by the SovrynSwap network contract\r\n\n * @param _sourceToken source ERC20 token\r\n@param _targetToken target ERC20 token\r\n@param _amount amount of tokens to convert (in units of the source token)\r\n@param _trader address of the caller who executed the conversion\r\n@param _beneficiary wallet to receive the conversion result\r\n\n * @return amount of tokens received (in units of the target token)\r", - "id": 12515, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "doConvert", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 12419, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12410, - "name": "_sourceToken", - "nodeType": "VariableDeclaration", - "scope": 12515, - "src": "3787:24:21", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - "typeName": { - "contractScope": null, - "id": 12409, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "3787:11:21", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 12412, - "name": "_targetToken", - "nodeType": "VariableDeclaration", - "scope": 12515, - "src": "3813:24:21", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - "typeName": { - "contractScope": null, - "id": 12411, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "3813:11:21", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 12414, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 12515, - "src": "3839:15:21", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 12413, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3839:7:21", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 12416, - "name": "_trader", - "nodeType": "VariableDeclaration", - "scope": 12515, - "src": "3856:15:21", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 12415, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3856:7:21", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 12418, - "name": "_beneficiary", - "nodeType": "VariableDeclaration", - "scope": 12515, - "src": "3873:20:21", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 12417, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3873:7:21", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3786:108:21" - }, - "payable": false, - "returnParameters": { - "id": 12422, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12421, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 12515, - "src": "3931:7:21", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 12420, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3931:7:21", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3930:9:21" - }, - "scope": 12871, - "src": "3768:1117:21", - "stateMutability": "nonpayable", - "superFunction": 3188, - "visibility": "internal" - }, - { - "body": { - "id": 12588, - "nodeType": "Block", - "src": "5371:774:21", - "statements": [ - { - "assignments": [ - 12527 - ], - "declarations": [ - { - "constant": false, - "id": 12527, - "name": "totalSupply", - "nodeType": "VariableDeclaration", - "scope": 12589, - "src": "5382:19:21", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 12526, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5382:7:21", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 12533, - "initialValue": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 12529, - "name": "anchor", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2511 - ], - "referencedDeclaration": 2511, - "src": "5416:6:21", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - ], - "id": 12528, - "name": "ISmartToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20295, - "src": "5404:11:21", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ISmartToken_$20295_$", - "typeString": "type(contract ISmartToken)" - } - }, - "id": 12530, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5404:19:21", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISmartToken_$20295", - "typeString": "contract ISmartToken" - } - }, - "id": 12531, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "totalSupply", - "nodeType": "MemberAccess", - "referencedDeclaration": 20182, - "src": "5404:31:21", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", - "typeString": "function () view external returns (uint256)" - } - }, - "id": 12532, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5404:33:21", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5382:55:21" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 12536, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 12534, - "name": "totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12527, - "src": "5567:11:21", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 12535, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5582:1:21", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "5567:16:21", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 12550, - "nodeType": "IfStatement", - "src": "5563:112:21", - "trueBody": { - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 12542, - "name": "reserves", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2520, - "src": "5641:8:21", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Reserve_$2506_storage_$", - "typeString": "mapping(address => struct ConverterBase.Reserve storage ref)" - } - }, - "id": 12544, - "indexExpression": { - "argumentTypes": null, - "id": 12543, - "name": "reserveToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12552, - "src": "5650:12:21", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5641:22:21", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Reserve_$2506_storage", - "typeString": "struct ConverterBase.Reserve storage ref" - } - }, - "id": 12545, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "weight", - "nodeType": "MemberAccess", - "referencedDeclaration": 2499, - "src": "5641:29:21", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 12539, - "name": "WEIGHT_RESOLUTION", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2489, - "src": "5618:17:21", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - ], - "expression": { - "argumentTypes": null, - "id": 12537, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12517, - "src": "5606:7:21", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 12538, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 21791, - "src": "5606:11:21", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 12540, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5606:30:21", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 12541, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "div", - "nodeType": "MemberAccess", - "referencedDeclaration": 21816, - "src": "5606:34:21", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 12546, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5606:65:21", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "hexValue": "30", - "id": 12547, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5673:1:21", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "id": 12548, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "5605:70:21", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_rational_0_by_1_$", - "typeString": "tuple(uint256,int_const 0)" - } - }, - "functionReturnParameters": 12525, - "id": 12549, - "nodeType": "Return", - "src": "5598:77:21" - } - }, - { - "assignments": [ - 12552 - ], - "declarations": [ - { - "constant": false, - "id": 12552, - "name": "reserveToken", - "nodeType": "VariableDeclaration", - "scope": 12589, - "src": "5688:24:21", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - "typeName": { - "contractScope": null, - "id": 12551, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "5688:11:21", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 12556, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 12553, - "name": "reserveTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2516, - "src": "5715:13:21", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_storage", - "typeString": "contract IERC20Token[] storage ref" - } - }, - "id": 12555, - "indexExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 12554, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5729:1:21", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5715:16:21", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5688:43:21" - }, - { - "assignments": [ - 12558 - ], - "declarations": [ - { - "constant": false, - "id": 12558, - "name": "amount", - "nodeType": "VariableDeclaration", - "scope": 12589, - "src": "5742:14:21", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 12557, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5742:7:21", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 12575, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 12565, - "name": "totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12527, - "src": "5844:11:21", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 12567, - "name": "reserveToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12552, - "src": "5885:12:21", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - ], - "id": 12566, - "name": "reserveBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 3106 - ], - "referencedDeclaration": 3106, - "src": "5870:14:21", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_contract$_IERC20Token_$20240_$returns$_t_uint256_$", - "typeString": "function (contract IERC20Token) view returns (uint256)" - } - }, - "id": 12568, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5870:28:21", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 12569, - "name": "reserves", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2520, - "src": "5913:8:21", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Reserve_$2506_storage_$", - "typeString": "mapping(address => struct ConverterBase.Reserve storage ref)" - } - }, - "id": 12571, - "indexExpression": { - "argumentTypes": null, - "id": 12570, - "name": "reserveToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12552, - "src": "5922:12:21", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5913:22:21", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Reserve_$2506_storage", - "typeString": "struct ConverterBase.Reserve storage ref" - } - }, - "id": 12572, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "weight", - "nodeType": "MemberAccess", - "referencedDeclaration": 2499, - "src": "5913:29:21", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - { - "argumentTypes": null, - "id": 12573, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12517, - "src": "5957:7:21", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 12561, - "name": "SOVRYNSWAP_FORMULA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20758, - "src": "5788:18:21", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 12560, - "name": "addressOf", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20931, - "src": "5778:9:21", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$", - "typeString": "function (bytes32) view returns (address)" - } - }, - "id": 12562, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5778:29:21", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 12559, - "name": "ISovrynSwapFormula", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12240, - "src": "5759:18:21", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ISovrynSwapFormula_$12240_$", - "typeString": "type(contract ISovrynSwapFormula)" - } - }, - "id": 12563, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5759:49:21", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISovrynSwapFormula_$12240", - "typeString": "contract ISovrynSwapFormula" - } - }, - "id": 12564, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "purchaseTargetAmount", - "nodeType": "MemberAccess", - "referencedDeclaration": 12155, - "src": "5759:70:21", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_uint256_$_t_uint256_$_t_uint32_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256,uint256,uint32,uint256) view external returns (uint256)" - } - }, - "id": 12574, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5759:216:21", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5742:233:21" - }, - { - "assignments": [ - 12577 - ], - "declarations": [ - { - "constant": false, - "id": 12577, - "name": "fee", - "nodeType": "VariableDeclaration", - "scope": 12589, - "src": "6066:11:21", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 12576, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6066:7:21", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 12581, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 12579, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12558, - "src": "6093:6:21", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 12578, - "name": "calculateFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3204, - "src": "6080:12:21", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256) view returns (uint256)" - } - }, - "id": 12580, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6080:20:21", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6066:34:21" - }, - { - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 12584, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 12582, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12558, - "src": "6119:6:21", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "id": 12583, - "name": "fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12577, - "src": "6128:3:21", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6119:12:21", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 12585, - "name": "fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12577, - "src": "6133:3:21", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 12586, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "6118:19:21", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", - "typeString": "tuple(uint256,uint256)" - } - }, - "functionReturnParameters": 12525, - "id": 12587, - "nodeType": "Return", - "src": "6111:26:21" - } - ] - }, - "documentation": "@dev returns the expected target amount of buying with a given amount of tokens\r\n\n * @param _amount amount of reserve tokens to get the target amount for\r\n\n * @return amount of liquid tokens that the user will receive\r\n@return amount of liquid tokens that the user will pay as fee\r", - "id": 12589, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [ - { - "arguments": null, - "id": 12520, - "modifierName": { - "argumentTypes": null, - "id": 12519, - "name": "active", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2604, - "src": "5323:6:21", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "5323:6:21" - } - ], - "name": "purchaseTargetAmount", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 12518, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12517, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 12589, - "src": "5265:15:21", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 12516, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5265:7:21", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5264:17:21" - }, - "payable": false, - "returnParameters": { - "id": 12525, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12522, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 12589, - "src": "5348:7:21", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 12521, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5348:7:21", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 12524, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 12589, - "src": "5357:7:21", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 12523, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5357:7:21", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5347:18:21" - }, - "scope": 12871, - "src": "5235:910:21", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 12655, - "nodeType": "Block", - "src": "6554:711:21", - "statements": [ - { - "assignments": [ - 12601 - ], - "declarations": [ - { - "constant": false, - "id": 12601, - "name": "totalSupply", - "nodeType": "VariableDeclaration", - "scope": 12656, - "src": "6565:19:21", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 12600, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6565:7:21", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 12607, - "initialValue": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 12603, - "name": "anchor", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2511 - ], - "referencedDeclaration": 2511, - "src": "6599:6:21", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - ], - "id": 12602, - "name": "ISmartToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20295, - "src": "6587:11:21", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ISmartToken_$20295_$", - "typeString": "type(contract ISmartToken)" - } - }, - "id": 12604, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6587:19:21", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISmartToken_$20295", - "typeString": "contract ISmartToken" - } - }, - "id": 12605, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "totalSupply", - "nodeType": "MemberAccess", - "referencedDeclaration": 20182, - "src": "6587:31:21", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", - "typeString": "function () view external returns (uint256)" - } - }, - "id": 12606, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6587:33:21", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6565:55:21" - }, - { - "assignments": [ - 12609 - ], - "declarations": [ - { - "constant": false, - "id": 12609, - "name": "reserveToken", - "nodeType": "VariableDeclaration", - "scope": 12656, - "src": "6633:24:21", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - "typeName": { - "contractScope": null, - "id": 12608, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "6633:11:21", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 12613, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 12610, - "name": "reserveTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2516, - "src": "6660:13:21", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_storage", - "typeString": "contract IERC20Token[] storage ref" - } - }, - "id": 12612, - "indexExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 12611, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6674:1:21", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6660:16:21", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6633:43:21" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 12616, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 12614, - "name": "totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12601, - "src": "6776:11:21", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 12615, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12591, - "src": "6791:7:21", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6776:22:21", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 12623, - "nodeType": "IfStatement", - "src": "6772:81:21", - "trueBody": { - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 12618, - "name": "reserveToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12609, - "src": "6836:12:21", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - ], - "id": 12617, - "name": "reserveBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 3106 - ], - "referencedDeclaration": 3106, - "src": "6821:14:21", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_contract$_IERC20Token_$20240_$returns$_t_uint256_$", - "typeString": "function (contract IERC20Token) view returns (uint256)" - } - }, - "id": 12619, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6821:28:21", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "hexValue": "30", - "id": 12620, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6851:1:21", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "id": 12621, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "6820:33:21", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_rational_0_by_1_$", - "typeString": "tuple(uint256,int_const 0)" - } - }, - "functionReturnParameters": 12599, - "id": 12622, - "nodeType": "Return", - "src": "6813:40:21" - } - }, - { - "assignments": [ - 12625 - ], - "declarations": [ - { - "constant": false, - "id": 12625, - "name": "amount", - "nodeType": "VariableDeclaration", - "scope": 12656, - "src": "6866:14:21", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 12624, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6866:7:21", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 12642, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 12632, - "name": "totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12601, - "src": "6964:11:21", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 12634, - "name": "reserveToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12609, - "src": "7005:12:21", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - ], - "id": 12633, - "name": "reserveBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 3106 - ], - "referencedDeclaration": 3106, - "src": "6990:14:21", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_contract$_IERC20Token_$20240_$returns$_t_uint256_$", - "typeString": "function (contract IERC20Token) view returns (uint256)" - } - }, - "id": 12635, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6990:28:21", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 12636, - "name": "reserves", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2520, - "src": "7033:8:21", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Reserve_$2506_storage_$", - "typeString": "mapping(address => struct ConverterBase.Reserve storage ref)" - } - }, - "id": 12638, - "indexExpression": { - "argumentTypes": null, - "id": 12637, - "name": "reserveToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12609, - "src": "7042:12:21", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7033:22:21", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Reserve_$2506_storage", - "typeString": "struct ConverterBase.Reserve storage ref" - } - }, - "id": 12639, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "weight", - "nodeType": "MemberAccess", - "referencedDeclaration": 2499, - "src": "7033:29:21", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - { - "argumentTypes": null, - "id": 12640, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12591, - "src": "7077:7:21", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 12628, - "name": "SOVRYNSWAP_FORMULA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20758, - "src": "6912:18:21", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 12627, - "name": "addressOf", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20931, - "src": "6902:9:21", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$", - "typeString": "function (bytes32) view returns (address)" - } - }, - "id": 12629, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6902:29:21", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 12626, - "name": "ISovrynSwapFormula", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12240, - "src": "6883:18:21", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ISovrynSwapFormula_$12240_$", - "typeString": "type(contract ISovrynSwapFormula)" - } - }, - "id": 12630, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6883:49:21", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISovrynSwapFormula_$12240", - "typeString": "contract ISovrynSwapFormula" - } - }, - "id": 12631, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "saleTargetAmount", - "nodeType": "MemberAccess", - "referencedDeclaration": 12168, - "src": "6883:66:21", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_uint256_$_t_uint256_$_t_uint32_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256,uint256,uint32,uint256) view external returns (uint256)" - } - }, - "id": 12641, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6883:212:21", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6866:229:21" - }, - { - "assignments": [ - 12644 - ], - "declarations": [ - { - "constant": false, - "id": 12644, - "name": "fee", - "nodeType": "VariableDeclaration", - "scope": 12656, - "src": "7186:11:21", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 12643, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7186:7:21", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 12648, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 12646, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12625, - "src": "7213:6:21", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 12645, - "name": "calculateFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3204, - "src": "7200:12:21", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256) view returns (uint256)" - } - }, - "id": 12647, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7200:20:21", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "7186:34:21" - }, - { - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 12651, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 12649, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12625, - "src": "7239:6:21", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "id": 12650, - "name": "fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12644, - "src": "7248:3:21", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7239:12:21", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 12652, - "name": "fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12644, - "src": "7253:3:21", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 12653, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "7238:19:21", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", - "typeString": "tuple(uint256,uint256)" - } - }, - "functionReturnParameters": 12599, - "id": 12654, - "nodeType": "Return", - "src": "7231:26:21" - } - ] - }, - "documentation": "@dev returns the expected target amount of selling a given amount of tokens\r\n\n * @param _amount amount of liquid tokens to get the target amount for\r\n\n * @return expected reserve tokens\r\n@return expected fee\r", - "id": 12656, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [ - { - "arguments": null, - "id": 12594, - "modifierName": { - "argumentTypes": null, - "id": 12593, - "name": "active", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2604, - "src": "6506:6:21", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "6506:6:21" - } - ], - "name": "saleTargetAmount", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 12592, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12591, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 12656, - "src": "6448:15:21", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 12590, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6448:7:21", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6447:17:21" - }, - "payable": false, - "returnParameters": { - "id": 12599, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12596, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 12656, - "src": "6531:7:21", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 12595, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6531:7:21", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 12598, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 12656, - "src": "6540:7:21", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 12597, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6540:7:21", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6530:18:21" - }, - "scope": 12871, - "src": "6422:843:21", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 12745, - "nodeType": "Block", - "src": "7741:1013:21", - "statements": [ - { - "assignments": [ - 12668, - 12670 - ], - "declarations": [ - { - "constant": false, - "id": 12668, - "name": "amount", - "nodeType": "VariableDeclaration", - "scope": 12746, - "src": "7800:14:21", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 12667, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7800:7:21", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 12670, - "name": "fee", - "nodeType": "VariableDeclaration", - "scope": 12746, - "src": "7816:11:21", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 12669, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7816:7:21", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 12674, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 12672, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12658, - "src": "7852:7:21", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 12671, - "name": "purchaseTargetAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12589, - "src": "7831:20:21", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$_t_uint256_$", - "typeString": "function (uint256) view returns (uint256,uint256)" - } - }, - "id": 12673, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7831:29:21", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", - "typeString": "tuple(uint256,uint256)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "7799:61:21" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 12678, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 12676, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12668, - "src": "7936:6:21", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 12677, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7946:1:21", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "7936:11:21", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552525f5a45524f5f5441524745545f414d4f554e54", - "id": 12679, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7949:24:21", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_29cb0846c2d5a859f661a5b4c4a8be47a80ca27c24af6f007bda101871b53e03", - "typeString": "literal_string \"ERR_ZERO_TARGET_AMOUNT\"" - }, - "value": "ERR_ZERO_TARGET_AMOUNT" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_29cb0846c2d5a859f661a5b4c4a8be47a80ca27c24af6f007bda101871b53e03", - "typeString": "literal_string \"ERR_ZERO_TARGET_AMOUNT\"" - } - ], - "id": 12675, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 22341, - 22342 - ], - "referencedDeclaration": 22342, - "src": "7928:7:21", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 12680, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7928:46:21", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 12681, - "nodeType": "ExpressionStatement", - "src": "7928:46:21" - }, - { - "assignments": [ - 12683 - ], - "declarations": [ - { - "constant": false, - "id": 12683, - "name": "reserveToken", - "nodeType": "VariableDeclaration", - "scope": 12746, - "src": "7987:24:21", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - "typeName": { - "contractScope": null, - "id": 12682, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "7987:11:21", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 12687, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 12684, - "name": "reserveTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2516, - "src": "8014:13:21", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_storage", - "typeString": "contract IERC20Token[] storage ref" - } - }, - "id": 12686, - "indexExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 12685, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8028:1:21", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "8014:16:21", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "7987:43:21" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 12690, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 12688, - "name": "reserveToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12683, - "src": "8110:12:21", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 12689, - "name": "ETH_RESERVE_ADDRESS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2495, - "src": "8126:19:21", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "8110:35:21", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 12715, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 12703, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 12700, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22338, - "src": "8253:3:21", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 12701, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8253:9:21", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 12702, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8266:1:21", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "8253:14:21", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 12714, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 12710, - "name": "reserveToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12683, - "src": "8319:12:21", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - ], - "id": 12709, - "name": "reserveBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 3106 - ], - "referencedDeclaration": 3106, - "src": "8304:14:21", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_contract$_IERC20Token_$20240_$returns$_t_uint256_$", - "typeString": "function (contract IERC20Token) view returns (uint256)" - } - }, - "id": 12711, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8304:28:21", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 12706, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22435, - "src": "8294:4:21", - "typeDescriptions": { - "typeIdentifier": "t_contract$_LiquidTokenConverter_$12871", - "typeString": "contract LiquidTokenConverter" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_LiquidTokenConverter_$12871", - "typeString": "contract LiquidTokenConverter" - } - ], - "expression": { - "argumentTypes": null, - "id": 12704, - "name": "reserveToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12683, - "src": "8271:12:21", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "id": 12705, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "balanceOf", - "nodeType": "MemberAccess", - "referencedDeclaration": 20194, - "src": "8271:22:21", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 12707, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8271:28:21", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 12708, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 21758, - "src": "8271:32:21", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 12712, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8271:62:21", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 12713, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12658, - "src": "8337:7:21", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8271:73:21", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "8253:91:21", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552525f494e56414c49445f414d4f554e54", - "id": 12716, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8346:20:21", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c44007bfe4e704be0ed1393660a827b4f88825f4b6fe1bc10cd38fc3fcb7d839", - "typeString": "literal_string \"ERR_INVALID_AMOUNT\"" - }, - "value": "ERR_INVALID_AMOUNT" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_c44007bfe4e704be0ed1393660a827b4f88825f4b6fe1bc10cd38fc3fcb7d839", - "typeString": "literal_string \"ERR_INVALID_AMOUNT\"" - } - ], - "id": 12699, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 22341, - 22342 - ], - "referencedDeclaration": 22342, - "src": "8245:7:21", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 12717, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8245:122:21", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 12718, - "nodeType": "ExpressionStatement", - "src": "8245:122:21" - }, - "id": 12719, - "nodeType": "IfStatement", - "src": "8106:261:21", - "trueBody": { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 12695, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 12692, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22338, - "src": "8168:3:21", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 12693, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8168:9:21", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 12694, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12658, - "src": "8181:7:21", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8168:20:21", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552525f4554485f414d4f554e545f4d49534d41544348", - "id": 12696, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8190:25:21", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_b27c160ac497b67c4fef6b5554e0b1a41f3c9b44e4bd8482662df760b76c093b", - "typeString": "literal_string \"ERR_ETH_AMOUNT_MISMATCH\"" - }, - "value": "ERR_ETH_AMOUNT_MISMATCH" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_b27c160ac497b67c4fef6b5554e0b1a41f3c9b44e4bd8482662df760b76c093b", - "typeString": "literal_string \"ERR_ETH_AMOUNT_MISMATCH\"" - } - ], - "id": 12691, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 22341, - 22342 - ], - "referencedDeclaration": 22342, - "src": "8160:7:21", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 12697, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8160:56:21", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 12698, - "nodeType": "ExpressionStatement", - "src": "8160:56:21" - } - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 12721, - "name": "reserveToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12683, - "src": "8436:12:21", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - ], - "id": 12720, - "name": "syncReserveBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3237, - "src": "8417:18:21", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20Token_$20240_$returns$__$", - "typeString": "function (contract IERC20Token)" - } - }, - "id": 12722, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8417:32:21", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 12723, - "nodeType": "ExpressionStatement", - "src": "8417:32:21" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 12728, - "name": "_beneficiary", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12662, - "src": "8555:12:21", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 12729, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12668, - "src": "8569:6:21", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 12725, - "name": "anchor", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2511 - ], - "referencedDeclaration": 2511, - "src": "8541:6:21", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - ], - "id": 12724, - "name": "ISmartToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20295, - "src": "8529:11:21", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ISmartToken_$20295_$", - "typeString": "type(contract ISmartToken)" - } - }, - "id": 12726, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8529:19:21", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISmartToken_$20295", - "typeString": "contract ISmartToken" - } - }, - "id": 12727, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "issue", - "nodeType": "MemberAccess", - "referencedDeclaration": 20287, - "src": "8529:25:21", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256) external" - } - }, - "id": 12730, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8529:47:21", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 12731, - "nodeType": "ExpressionStatement", - "src": "8529:47:21" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 12733, - "name": "reserveToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12683, - "src": "8655:12:21", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 12735, - "name": "anchor", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2511 - ], - "referencedDeclaration": 2511, - "src": "8681:6:21", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - ], - "id": 12734, - "name": "ISmartToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20295, - "src": "8669:11:21", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ISmartToken_$20295_$", - "typeString": "type(contract ISmartToken)" - } - }, - "id": 12736, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8669:19:21", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISmartToken_$20295", - "typeString": "contract ISmartToken" - } - }, - { - "argumentTypes": null, - "id": 12737, - "name": "_trader", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12660, - "src": "8690:7:21", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 12738, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12658, - "src": "8699:7:21", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 12739, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12668, - "src": "8708:6:21", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 12740, - "name": "fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12670, - "src": "8716:3:21", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - { - "typeIdentifier": "t_contract$_ISmartToken_$20295", - "typeString": "contract ISmartToken" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 12732, - "name": "dispatchConversionEvent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3298, - "src": "8631:23:21", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20Token_$20240_$_t_contract$_IERC20Token_$20240_$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (contract IERC20Token,contract IERC20Token,address,uint256,uint256,uint256)" - } - }, - "id": 12741, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8631:89:21", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 12742, - "nodeType": "ExpressionStatement", - "src": "8631:89:21" - }, - { - "expression": { - "argumentTypes": null, - "id": 12743, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12668, - "src": "8740:6:21", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 12666, - "id": 12744, - "nodeType": "Return", - "src": "8733:13:21" - } - ] - }, - "documentation": "@dev buys the liquid token by depositing in its reserve\r\n\n * @param _amount amount of reserve token to buy the token for\r\n@param _trader address of the caller who executed the conversion\r\n@param _beneficiary wallet to receive the conversion result\r\n\n * @return amount of liquid tokens received\r", - "id": 12746, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "buy", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 12663, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12658, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 12746, - "src": "7658:15:21", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 12657, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7658:7:21", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 12660, - "name": "_trader", - "nodeType": "VariableDeclaration", - "scope": 12746, - "src": "7675:15:21", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 12659, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7675:7:21", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 12662, - "name": "_beneficiary", - "nodeType": "VariableDeclaration", - "scope": 12746, - "src": "7692:20:21", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 12661, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7692:7:21", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7657:56:21" - }, - "payable": false, - "returnParameters": { - "id": 12666, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12665, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 12746, - "src": "7732:7:21", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 12664, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7732:7:21", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7731:9:21" - }, - "scope": 12871, - "src": "7645:1109:21", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 12869, - "nodeType": "Block", - "src": "9223:1446:21", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 12765, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 12758, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12748, - "src": "9305:7:21", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 12763, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22435, - "src": "9346:4:21", - "typeDescriptions": { - "typeIdentifier": "t_contract$_LiquidTokenConverter_$12871", - "typeString": "contract LiquidTokenConverter" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_LiquidTokenConverter_$12871", - "typeString": "contract LiquidTokenConverter" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 12760, - "name": "anchor", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2511 - ], - "referencedDeclaration": 2511, - "src": "9328:6:21", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - ], - "id": 12759, - "name": "ISmartToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20295, - "src": "9316:11:21", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ISmartToken_$20295_$", - "typeString": "type(contract ISmartToken)" - } - }, - "id": 12761, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9316:19:21", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISmartToken_$20295", - "typeString": "contract ISmartToken" - } - }, - "id": 12762, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "balanceOf", - "nodeType": "MemberAccess", - "referencedDeclaration": 20194, - "src": "9316:29:21", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 12764, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9316:35:21", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9305:46:21", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552525f494e56414c49445f414d4f554e54", - "id": 12766, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9353:20:21", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c44007bfe4e704be0ed1393660a827b4f88825f4b6fe1bc10cd38fc3fcb7d839", - "typeString": "literal_string \"ERR_INVALID_AMOUNT\"" - }, - "value": "ERR_INVALID_AMOUNT" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_c44007bfe4e704be0ed1393660a827b4f88825f4b6fe1bc10cd38fc3fcb7d839", - "typeString": "literal_string \"ERR_INVALID_AMOUNT\"" - } - ], - "id": 12757, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 22341, - 22342 - ], - "referencedDeclaration": 22342, - "src": "9297:7:21", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 12767, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9297:77:21", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 12768, - "nodeType": "ExpressionStatement", - "src": "9297:77:21" - }, - { - "assignments": [ - 12770, - 12772 - ], - "declarations": [ - { - "constant": false, - "id": 12770, - "name": "amount", - "nodeType": "VariableDeclaration", - "scope": 12870, - "src": "9435:14:21", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 12769, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9435:7:21", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 12772, - "name": "fee", - "nodeType": "VariableDeclaration", - "scope": 12870, - "src": "9451:11:21", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 12771, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9451:7:21", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 12776, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 12774, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12748, - "src": "9483:7:21", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 12773, - "name": "saleTargetAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12656, - "src": "9466:16:21", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$_t_uint256_$", - "typeString": "function (uint256) view returns (uint256,uint256)" - } - }, - "id": 12775, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9466:25:21", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", - "typeString": "tuple(uint256,uint256)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "9434:57:21" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 12780, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 12778, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12770, - "src": "9567:6:21", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 12779, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9577:1:21", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "9567:11:21", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552525f5a45524f5f5441524745545f414d4f554e54", - "id": 12781, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9580:24:21", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_29cb0846c2d5a859f661a5b4c4a8be47a80ca27c24af6f007bda101871b53e03", - "typeString": "literal_string \"ERR_ZERO_TARGET_AMOUNT\"" - }, - "value": "ERR_ZERO_TARGET_AMOUNT" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_29cb0846c2d5a859f661a5b4c4a8be47a80ca27c24af6f007bda101871b53e03", - "typeString": "literal_string \"ERR_ZERO_TARGET_AMOUNT\"" - } - ], - "id": 12777, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 22341, - 22342 - ], - "referencedDeclaration": 22342, - "src": "9559:7:21", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 12782, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9559:46:21", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 12783, - "nodeType": "ExpressionStatement", - "src": "9559:46:21" - }, - { - "assignments": [ - 12785 - ], - "declarations": [ - { - "constant": false, - "id": 12785, - "name": "reserveToken", - "nodeType": "VariableDeclaration", - "scope": 12870, - "src": "9618:24:21", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - "typeName": { - "contractScope": null, - "id": 12784, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "9618:11:21", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 12789, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 12786, - "name": "reserveTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2516, - "src": "9645:13:21", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_storage", - "typeString": "contract IERC20Token[] storage ref" - } - }, - "id": 12788, - "indexExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 12787, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9659:1:21", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9645:16:21", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "9618:43:21" - }, - { - "assignments": [ - 12791 - ], - "declarations": [ - { - "constant": false, - "id": 12791, - "name": "tokenSupply", - "nodeType": "VariableDeclaration", - "scope": 12870, - "src": "9786:19:21", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 12790, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9786:7:21", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 12797, - "initialValue": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 12793, - "name": "anchor", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2511 - ], - "referencedDeclaration": 2511, - "src": "9820:6:21", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - ], - "id": 12792, - "name": "ISmartToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20295, - "src": "9808:11:21", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ISmartToken_$20295_$", - "typeString": "type(contract ISmartToken)" - } - }, - "id": 12794, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9808:19:21", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISmartToken_$20295", - "typeString": "contract ISmartToken" - } - }, - "id": 12795, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "totalSupply", - "nodeType": "MemberAccess", - "referencedDeclaration": 20182, - "src": "9808:31:21", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", - "typeString": "function () view external returns (uint256)" - } - }, - "id": 12796, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9808:33:21", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "9786:55:21" - }, - { - "assignments": [ - 12799 - ], - "declarations": [ - { - "constant": false, - "id": 12799, - "name": "rsvBalance", - "nodeType": "VariableDeclaration", - "scope": 12870, - "src": "9852:18:21", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 12798, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9852:7:21", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 12803, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 12801, - "name": "reserveToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12785, - "src": "9888:12:21", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - ], - "id": 12800, - "name": "reserveBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 3106 - ], - "referencedDeclaration": 3106, - "src": "9873:14:21", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_contract$_IERC20Token_$20240_$returns$_t_uint256_$", - "typeString": "function (contract IERC20Token) view returns (uint256)" - } - }, - "id": 12802, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9873:28:21", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "9852:49:21" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 12816, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 12807, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 12805, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12770, - "src": "9919:6:21", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "id": 12806, - "name": "rsvBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12799, - "src": "9928:10:21", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9919:19:21", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 12814, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 12810, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 12808, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12770, - "src": "9943:6:21", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 12809, - "name": "rsvBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12799, - "src": "9953:10:21", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9943:20:21", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 12813, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 12811, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12748, - "src": "9967:7:21", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 12812, - "name": "tokenSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12791, - "src": "9978:11:21", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9967:22:21", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "9943:46:21", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "id": 12815, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "9942:48:21", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "9919:71:21", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 12804, - "name": "assert", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22327, - "src": "9912:6:21", - "typeDescriptions": { - "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 12817, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9912:79:21", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 12818, - "nodeType": "ExpressionStatement", - "src": "9912:79:21" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 12823, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22435, - "src": "10110:4:21", - "typeDescriptions": { - "typeIdentifier": "t_contract$_LiquidTokenConverter_$12871", - "typeString": "contract LiquidTokenConverter" - } - }, - { - "argumentTypes": null, - "id": 12824, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12748, - "src": "10116:7:21", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_LiquidTokenConverter_$12871", - "typeString": "contract LiquidTokenConverter" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 12820, - "name": "anchor", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2511 - ], - "referencedDeclaration": 2511, - "src": "10094:6:21", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - ], - "id": 12819, - "name": "ISmartToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20295, - "src": "10082:11:21", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ISmartToken_$20295_$", - "typeString": "type(contract ISmartToken)" - } - }, - "id": 12821, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10082:19:21", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISmartToken_$20295", - "typeString": "contract ISmartToken" - } - }, - "id": 12822, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "destroy", - "nodeType": "MemberAccess", - "referencedDeclaration": 20294, - "src": "10082:27:21", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256) external" - } - }, - "id": 12825, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10082:42:21", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 12826, - "nodeType": "ExpressionStatement", - "src": "10082:42:21" - }, - { - "expression": { - "argumentTypes": null, - "id": 12838, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 12827, - "name": "reserves", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2520, - "src": "10176:8:21", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Reserve_$2506_storage_$", - "typeString": "mapping(address => struct ConverterBase.Reserve storage ref)" - } - }, - "id": 12829, - "indexExpression": { - "argumentTypes": null, - "id": 12828, - "name": "reserveToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12785, - "src": "10185:12:21", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "10176:22:21", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Reserve_$2506_storage", - "typeString": "struct ConverterBase.Reserve storage ref" - } - }, - "id": 12830, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "balance", - "nodeType": "MemberAccess", - "referencedDeclaration": 2497, - "src": "10176:30:21", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 12836, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12770, - "src": "10244:6:21", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 12831, - "name": "reserves", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2520, - "src": "10209:8:21", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Reserve_$2506_storage_$", - "typeString": "mapping(address => struct ConverterBase.Reserve storage ref)" - } - }, - "id": 12833, - "indexExpression": { - "argumentTypes": null, - "id": 12832, - "name": "reserveToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12785, - "src": "10218:12:21", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "10209:22:21", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Reserve_$2506_storage", - "typeString": "struct ConverterBase.Reserve storage ref" - } - }, - "id": 12834, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "balance", - "nodeType": "MemberAccess", - "referencedDeclaration": 2497, - "src": "10209:30:21", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 12835, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 21758, - "src": "10209:34:21", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 12837, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10209:42:21", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "10176:75:21", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 12839, - "nodeType": "ExpressionStatement", - "src": "10176:75:21" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 12842, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 12840, - "name": "reserveToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12785, - "src": "10335:12:21", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 12841, - "name": "ETH_RESERVE_ADDRESS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2495, - "src": "10351:19:21", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "10335:35:21", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 12850, - "name": "reserveToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12785, - "src": "10456:12:21", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - { - "argumentTypes": null, - "id": 12851, - "name": "_beneficiary", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12752, - "src": "10470:12:21", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 12852, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12770, - "src": "10484:6:21", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 12849, - "name": "safeTransfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21881, - "src": "10443:12:21", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20Token_$20240_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (contract IERC20Token,address,uint256)" - } - }, - "id": 12853, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10443:48:21", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 12854, - "nodeType": "ExpressionStatement", - "src": "10443:48:21" - }, - "id": 12855, - "nodeType": "IfStatement", - "src": "10331:160:21", - "trueBody": { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 12846, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12770, - "src": "10407:6:21", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 12843, - "name": "_beneficiary", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12752, - "src": "10385:12:21", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 12845, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10385:21:21", - "typeDescriptions": { - "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 12847, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10385:29:21", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 12848, - "nodeType": "ExpressionStatement", - "src": "10385:29:21" - } - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 12858, - "name": "anchor", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2511 - ], - "referencedDeclaration": 2511, - "src": "10582:6:21", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - ], - "id": 12857, - "name": "ISmartToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20295, - "src": "10570:11:21", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ISmartToken_$20295_$", - "typeString": "type(contract ISmartToken)" - } - }, - "id": 12859, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10570:19:21", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISmartToken_$20295", - "typeString": "contract ISmartToken" - } - }, - { - "argumentTypes": null, - "id": 12860, - "name": "reserveToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12785, - "src": "10591:12:21", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - { - "argumentTypes": null, - "id": 12861, - "name": "_trader", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12750, - "src": "10605:7:21", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 12862, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12748, - "src": "10614:7:21", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 12863, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12770, - "src": "10623:6:21", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 12864, - "name": "fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12772, - "src": "10631:3:21", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_ISmartToken_$20295", - "typeString": "contract ISmartToken" - }, - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 12856, - "name": "dispatchConversionEvent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3298, - "src": "10546:23:21", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20Token_$20240_$_t_contract$_IERC20Token_$20240_$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (contract IERC20Token,contract IERC20Token,address,uint256,uint256,uint256)" - } - }, - "id": 12865, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10546:89:21", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 12866, - "nodeType": "ExpressionStatement", - "src": "10546:89:21" - }, - { - "expression": { - "argumentTypes": null, - "id": 12867, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12770, - "src": "10655:6:21", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 12756, - "id": 12868, - "nodeType": "Return", - "src": "10648:13:21" - } - ] - }, - "documentation": "@dev sells the liquid token by withdrawing from its reserve\r\n\n * @param _amount amount of liquid tokens to sell\r\n@param _trader address of the caller who executed the conversion\r\n@param _beneficiary wallet to receive the conversion result\r\n\n * @return amount of reserve tokens received\r", - "id": 12870, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "sell", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 12753, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12748, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 12870, - "src": "9140:15:21", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 12747, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9140:7:21", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 12750, - "name": "_trader", - "nodeType": "VariableDeclaration", - "scope": 12870, - "src": "9157:15:21", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 12749, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "9157:7:21", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 12752, - "name": "_beneficiary", - "nodeType": "VariableDeclaration", - "scope": 12870, - "src": "9174:20:21", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 12751, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "9174:7:21", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9139:56:21" - }, - "payable": false, - "returnParameters": { - "id": 12756, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12755, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 12870, - "src": "9214:7:21", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 12754, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9214:7:21", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9213:9:21" - }, - "scope": 12871, - "src": "9126:1543:21", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 12872, - "src": "449:10223:21" - } - ], - "src": "0:10674:21" - }, - "id": 21 - }, - "solidity/contracts/converter/types/liquid-token/LiquidTokenConverterFactory.sol": { - "ast": { - "absolutePath": "solidity/contracts/converter/types/liquid-token/LiquidTokenConverterFactory.sol", - "exportedSymbols": { - "LiquidTokenConverterFactory": [ - 12920 - ] - }, - "id": 12921, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 12873, - "literals": [ - "solidity", - "0.4", - ".26" - ], - "nodeType": "PragmaDirective", - "src": "0:23:22" - }, - { - "absolutePath": "solidity/contracts/converter/types/liquid-token/LiquidTokenConverter.sol", - "file": "./LiquidTokenConverter.sol", - "id": 12874, - "nodeType": "ImportDirective", - "scope": 12921, - "sourceUnit": 12872, - "src": "25:36:22", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "solidity/contracts/converter/interfaces/IConverter.sol", - "file": "../../interfaces/IConverter.sol", - "id": 12875, - "nodeType": "ImportDirective", - "scope": 12921, - "sourceUnit": 11818, - "src": "63:41:22", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "solidity/contracts/converter/interfaces/ITypedConverterFactory.sol", - "file": "../../interfaces/ITypedConverterFactory.sol", - "id": 12876, - "nodeType": "ImportDirective", - "scope": 12921, - "sourceUnit": 12291, - "src": "106:53:22", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "solidity/contracts/token/interfaces/ISmartToken.sol", - "file": "../../../token/interfaces/ISmartToken.sol", - "id": 12877, - "nodeType": "ImportDirective", - "scope": 12921, - "sourceUnit": 20296, - "src": "161:51:22", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 12878, - "name": "ITypedConverterFactory", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 12290, - "src": "298:22:22", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ITypedConverterFactory_$12290", - "typeString": "contract ITypedConverterFactory" - } - }, - "id": 12879, - "nodeType": "InheritanceSpecifier", - "src": "298:22:22" - } - ], - "contractDependencies": [ - 12290, - 12871 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 12920, - "linearizedBaseContracts": [ - 12920, - 12290 - ], - "name": "LiquidTokenConverterFactory", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 12886, - "nodeType": "Block", - "src": "512:27:22", - "statements": [ - { - "expression": { - "argumentTypes": null, - "hexValue": "30", - "id": 12884, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "530:1:22", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "functionReturnParameters": 12883, - "id": 12885, - "nodeType": "Return", - "src": "523:8:22" - } - ] - }, - "documentation": "@dev returns the converter type the factory is associated with\r\n\n * @return converter type\r", - "id": 12887, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "converterType", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 12880, - "nodeType": "ParameterList", - "parameters": [], - "src": "480:2:22" - }, - "payable": false, - "returnParameters": { - "id": 12883, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12882, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 12887, - "src": "504:6:22", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 12881, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "504:6:22", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "503:8:22" - }, - "scope": 12920, - "src": "458:81:22", - "stateMutability": "pure", - "superFunction": 12278, - "visibility": "public" - }, - { - "body": { - "id": 12918, - "nodeType": "Block", - "src": "1084:195:22", - "statements": [ - { - "assignments": [ - 12899 - ], - "declarations": [ - { - "constant": false, - "id": 12899, - "name": "converter", - "nodeType": "VariableDeclaration", - "scope": 12919, - "src": "1095:20:22", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - }, - "typeName": { - "contractScope": null, - "id": 12898, - "name": "IConverter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 11817, - "src": "1095:10:22", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 12908, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 12903, - "name": "_anchor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12889, - "src": "1155:7:22", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - ], - "id": 12902, - "name": "ISmartToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20295, - "src": "1143:11:22", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ISmartToken_$20295_$", - "typeString": "type(contract ISmartToken)" - } - }, - "id": 12904, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1143:20:22", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISmartToken_$20295", - "typeString": "contract ISmartToken" - } - }, - { - "argumentTypes": null, - "id": 12905, - "name": "_registry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12891, - "src": "1165:9:22", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IContractRegistry_$22220", - "typeString": "contract IContractRegistry" - } - }, - { - "argumentTypes": null, - "id": 12906, - "name": "_maxConversionFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12893, - "src": "1176:17:22", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_ISmartToken_$20295", - "typeString": "contract ISmartToken" - }, - { - "typeIdentifier": "t_contract$_IContractRegistry_$22220", - "typeString": "contract IContractRegistry" - }, - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - ], - "id": 12901, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "1118:24:22", - "typeDescriptions": { - "typeIdentifier": "t_function_creation_nonpayable$_t_contract$_ISmartToken_$20295_$_t_contract$_IContractRegistry_$22220_$_t_uint32_$returns$_t_contract$_LiquidTokenConverter_$12871_$", - "typeString": "function (contract ISmartToken,contract IContractRegistry,uint32) returns (contract LiquidTokenConverter)" - }, - "typeName": { - "contractScope": null, - "id": 12900, - "name": "LiquidTokenConverter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 12871, - "src": "1122:20:22", - "typeDescriptions": { - "typeIdentifier": "t_contract$_LiquidTokenConverter_$12871", - "typeString": "contract LiquidTokenConverter" - } - } - }, - "id": 12907, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1118:76:22", - "typeDescriptions": { - "typeIdentifier": "t_contract$_LiquidTokenConverter_$12871", - "typeString": "contract LiquidTokenConverter" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1095:99:22" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 12912, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22338, - "src": "1233:3:22", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 12913, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1233:10:22", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 12909, - "name": "converter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12899, - "src": "1205:9:22", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - "id": 12911, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transferOwnership", - "nodeType": "MemberAccess", - "referencedDeclaration": 22243, - "src": "1205:27:22", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$", - "typeString": "function (address) external" - } - }, - "id": 12914, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1205:39:22", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 12915, - "nodeType": "ExpressionStatement", - "src": "1205:39:22" - }, - { - "expression": { - "argumentTypes": null, - "id": 12916, - "name": "converter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12899, - "src": "1262:9:22", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - "functionReturnParameters": 12897, - "id": 12917, - "nodeType": "Return", - "src": "1255:16:22" - } - ] - }, - "documentation": "@dev creates a new converter with the given arguments and transfers\r\nthe ownership to the caller\r\n\n * @param _anchor anchor governed by the converter\r\n@param _registry address of a contract registry contract\r\n@param _maxConversionFee maximum conversion fee, represented in ppm\r\n\n * @return a new converter\r", - "id": 12919, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "createConverter", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 12894, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12889, - "name": "_anchor", - "nodeType": "VariableDeclaration", - "scope": 12919, - "src": "975:24:22", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - }, - "typeName": { - "contractScope": null, - "id": 12888, - "name": "IConverterAnchor", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 11826, - "src": "975:16:22", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 12891, - "name": "_registry", - "nodeType": "VariableDeclaration", - "scope": 12919, - "src": "1001:27:22", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IContractRegistry_$22220", - "typeString": "contract IContractRegistry" - }, - "typeName": { - "contractScope": null, - "id": 12890, - "name": "IContractRegistry", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 22220, - "src": "1001:17:22", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IContractRegistry_$22220", - "typeString": "contract IContractRegistry" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 12893, - "name": "_maxConversionFee", - "nodeType": "VariableDeclaration", - "scope": 12919, - "src": "1030:24:22", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 12892, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "1030:6:22", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "974:81:22" - }, - "payable": false, - "returnParameters": { - "id": 12897, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12896, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 12919, - "src": "1072:10:22", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - }, - "typeName": { - "contractScope": null, - "id": 12895, - "name": "IConverter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 11817, - "src": "1072:10:22", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1071:12:22" - }, - "scope": 12920, - "src": "950:329:22", - "stateMutability": "nonpayable", - "superFunction": 12289, - "visibility": "public" - } - ], - "scope": 12921, - "src": "258:1024:22" - } - ], - "src": "0:1284:22" - }, - "id": 22 - }, - "solidity/contracts/converter/types/liquidity-pool-v1/LiquidityPoolV1Converter.sol": { - "ast": { - "absolutePath": "solidity/contracts/converter/types/liquidity-pool-v1/LiquidityPoolV1Converter.sol", - "exportedSymbols": { - "LiquidityPoolV1Converter": [ - 14409 - ] - }, - "id": 14410, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 12922, - "literals": [ - "solidity", - "0.4", - ".26" - ], - "nodeType": "PragmaDirective", - "src": "0:23:23" - }, - { - "absolutePath": "solidity/contracts/converter/LiquidityPoolConverter.sol", - "file": "../../LiquidityPoolConverter.sol", - "id": 12923, - "nodeType": "ImportDirective", - "scope": 14410, - "sourceUnit": 6211, - "src": "25:42:23", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "solidity/contracts/token/interfaces/ISmartToken.sol", - "file": "../../../token/interfaces/ISmartToken.sol", - "id": 12924, - "nodeType": "ImportDirective", - "scope": 14410, - "sourceUnit": 20296, - "src": "69:51:23", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 12925, - "name": "LiquidityPoolConverter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6210, - "src": "489:22:23", - "typeDescriptions": { - "typeIdentifier": "t_contract$_LiquidityPoolConverter_$6210", - "typeString": "contract LiquidityPoolConverter" - } - }, - "id": 12926, - "nodeType": "InheritanceSpecifier", - "src": "489:22:23" - } - ], - "contractDependencies": [ - 3414, - 6210, - 11817, - 20932, - 21324, - 21710, - 21933, - 21976, - 22052, - 22247, - 22313 - ], - "contractKind": "contract", - "documentation": "@dev Liquidity Pool v1 Converter\r\n\n * The liquidity pool v1 converter is a specialized version of a converter that manages\r\na classic SovrynSwap liquidity pool.\r\n\n * Even though classic pools can have many reserves, the most common configuration of\r\nthe pool has 2 reserves with 50%/50% weights.\r", - "fullyImplemented": true, - "id": 14409, - "linearizedBaseContracts": [ - 14409, - 6210, - 3414, - 21710, - 20932, - 21976, - 22052, - 21324, - 21933, - 22313, - 11817, - 22247 - ], - "name": "LiquidityPoolV1Converter", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 12931, - "name": "etherToken", - "nodeType": "VariableDeclaration", - "scope": 14409, - "src": "519:89:23", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IEtherToken_$20266", - "typeString": "contract IEtherToken" - }, - "typeName": { - "contractScope": null, - "id": 12927, - "name": "IEtherToken", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20266, - "src": "519:11:23", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IEtherToken_$20266", - "typeString": "contract IEtherToken" - } - }, - "value": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "307863303832393432314331643236304244336342334530463036636645324435326462326345333135", - "id": 12929, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "565:42:23", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "value": "0xc0829421C1d260BD3cB3E0F06cfE2D52db2cE315" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 12928, - "name": "IEtherToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20266, - "src": "553:11:23", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IEtherToken_$20266_$", - "typeString": "type(contract IEtherToken)" - } - }, - "id": 12930, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "553:55:23", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IEtherToken_$20266", - "typeString": "contract IEtherToken" - } - }, - "visibility": "internal" - }, - { - "anonymous": false, - "documentation": "@dev triggered after a conversion with new price data\r\ndeprecated, use `TokenRateUpdate` from version 28 and up\r\n\n * @param _connectorToken reserve token\r\n@param _tokenSupply smart token supply\r\n@param _connectorBalance reserve balance\r\n@param _connectorWeight reserve weight\r", - "id": 12941, - "name": "PriceDataUpdate", - "nodeType": "EventDefinition", - "parameters": { - "id": 12940, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12933, - "indexed": true, - "name": "_connectorToken", - "nodeType": "VariableDeclaration", - "scope": 12941, - "src": "1016:31:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 12932, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1016:7:23", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 12935, - "indexed": false, - "name": "_tokenSupply", - "nodeType": "VariableDeclaration", - "scope": 12941, - "src": "1058:20:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 12934, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1058:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 12937, - "indexed": false, - "name": "_connectorBalance", - "nodeType": "VariableDeclaration", - "scope": 12941, - "src": "1089:25:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 12936, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1089:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 12939, - "indexed": false, - "name": "_connectorWeight", - "nodeType": "VariableDeclaration", - "scope": 12941, - "src": "1125:23:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 12938, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "1125:6:23", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1005:150:23" - }, - "src": "984:172:23" - }, - { - "body": { - "id": 12955, - "nodeType": "Block", - "src": "1699:8:23", - "statements": [] - }, - "documentation": "@dev initializes a new LiquidityPoolV1Converter instance\r\n\n * @param _token pool token governed by the converter\r\n@param _registry address of a contract registry contract\r\n@param _maxConversionFee maximum conversion fee, represented in ppm\r", - "id": 12956, - "implemented": true, - "isConstructor": true, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 12950, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12943, - "src": "1640:6:23", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISmartToken_$20295", - "typeString": "contract ISmartToken" - } - }, - { - "argumentTypes": null, - "id": 12951, - "name": "_registry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12945, - "src": "1648:9:23", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IContractRegistry_$22220", - "typeString": "contract IContractRegistry" - } - }, - { - "argumentTypes": null, - "id": 12952, - "name": "_maxConversionFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12947, - "src": "1659:17:23", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "id": 12953, - "modifierName": { - "argumentTypes": null, - "id": 12949, - "name": "LiquidityPoolConverter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6210, - "src": "1617:22:23", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_LiquidityPoolConverter_$6210_$", - "typeString": "type(contract LiquidityPoolConverter)" - } - }, - "nodeType": "ModifierInvocation", - "src": "1617:60:23" - } - ], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 12948, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12943, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 12956, - "src": "1509:18:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISmartToken_$20295", - "typeString": "contract ISmartToken" - }, - "typeName": { - "contractScope": null, - "id": 12942, - "name": "ISmartToken", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20295, - "src": "1509:11:23", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISmartToken_$20295", - "typeString": "contract ISmartToken" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 12945, - "name": "_registry", - "nodeType": "VariableDeclaration", - "scope": 12956, - "src": "1538:27:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IContractRegistry_$22220", - "typeString": "contract IContractRegistry" - }, - "typeName": { - "contractScope": null, - "id": 12944, - "name": "IContractRegistry", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 22220, - "src": "1538:17:23", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IContractRegistry_$22220", - "typeString": "contract IContractRegistry" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 12947, - "name": "_maxConversionFee", - "nodeType": "VariableDeclaration", - "scope": 12956, - "src": "1576:24:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 12946, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "1576:6:23", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1498:109:23" - }, - "payable": false, - "returnParameters": { - "id": 12954, - "nodeType": "ParameterList", - "parameters": [], - "src": "1699:0:23" - }, - "scope": 14409, - "src": "1487:220:23", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 12963, - "nodeType": "Block", - "src": "1906:27:23", - "statements": [ - { - "expression": { - "argumentTypes": null, - "hexValue": "31", - "id": 12961, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1924:1:23", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "functionReturnParameters": 12960, - "id": 12962, - "nodeType": "Return", - "src": "1917:8:23" - } - ] - }, - "documentation": "@dev returns the converter type\r\n\n * @return see the converter types in the the main contract doc\r", - "id": 12964, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "converterType", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 12957, - "nodeType": "ParameterList", - "parameters": [], - "src": "1874:2:23" - }, - "payable": false, - "returnParameters": { - "id": 12960, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12959, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 12964, - "src": "1898:6:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 12958, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "1898:6:23", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1897:8:23" - }, - "scope": 14409, - "src": "1852:81:23", - "stateMutability": "pure", - "superFunction": 11655, - "visibility": "public" - }, - { - "body": { - "id": 12981, - "nodeType": "Block", - "src": "2256:107:23", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 12969, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22440, - "src": "2267:5:23", - "typeDescriptions": { - "typeIdentifier": "t_super$_LiquidityPoolV1Converter_$14409", - "typeString": "contract super LiquidityPoolV1Converter" - } - }, - "id": 12971, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "acceptAnchorOwnership", - "nodeType": "MemberAccess", - "referencedDeclaration": 6209, - "src": "2267:27:23", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", - "typeString": "function ()" - } - }, - "id": 12972, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2267:29:23", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 12973, - "nodeType": "ExpressionStatement", - "src": "2267:29:23" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 12975, - "name": "converterType", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 12964 - ], - "referencedDeclaration": 12964, - "src": "2325:13:23", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$__$returns$_t_uint16_$", - "typeString": "function () pure returns (uint16)" - } - }, - "id": 12976, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2325:15:23", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - { - "argumentTypes": null, - "id": 12977, - "name": "anchor", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2511 - ], - "referencedDeclaration": 2511, - "src": "2342:6:23", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - }, - { - "argumentTypes": null, - "hexValue": "74727565", - "id": 12978, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2350:4:23", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - }, - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 12974, - "name": "Activation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2540, - "src": "2314:10:23", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint16_$_t_contract$_IConverterAnchor_$11826_$_t_bool_$returns$__$", - "typeString": "function (uint16,contract IConverterAnchor,bool)" - } - }, - "id": 12979, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2314:41:23", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 12980, - "nodeType": "EmitStatement", - "src": "2309:46:23" - } - ] - }, - "documentation": "@dev accepts ownership of the anchor after an ownership transfer\r\nalso activates the converter\r\ncan only be called by the contract owner\r\nnote that prior to version 28, you should use 'acceptTokenOwnership' instead\r", - "id": 12982, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 12967, - "modifierName": { - "argumentTypes": null, - "id": 12966, - "name": "ownerOnly", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21265, - "src": "2246:9:23", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "2246:9:23" - } - ], - "name": "acceptAnchorOwnership", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 12965, - "nodeType": "ParameterList", - "parameters": [], - "src": "2236:2:23" - }, - "payable": false, - "returnParameters": { - "id": 12968, - "nodeType": "ParameterList", - "parameters": [], - "src": "2256:0:23" - }, - "scope": 14409, - "src": "2206:157:23", - "stateMutability": "nonpayable", - "superFunction": 6209, - "visibility": "public" - }, - { - "body": { - "id": 13047, - "nodeType": "Block", - "src": "3054:582:23", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - "id": 13006, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 13004, - "name": "_sourceToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12984, - "src": "3100:12:23", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 13005, - "name": "_targetToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12986, - "src": "3116:12:23", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "src": "3100:28:23", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552525f53414d455f534f555243455f544152474554", - "id": 13007, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3130:24:23", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_238302f57e4481fe6a4c903e930919efa155f2aabe0b5da37da1448cea5fd634", - "typeString": "literal_string \"ERR_SAME_SOURCE_TARGET\"" - }, - "value": "ERR_SAME_SOURCE_TARGET" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_238302f57e4481fe6a4c903e930919efa155f2aabe0b5da37da1448cea5fd634", - "typeString": "literal_string \"ERR_SAME_SOURCE_TARGET\"" - } - ], - "id": 13003, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 22341, - 22342 - ], - "referencedDeclaration": 22342, - "src": "3092:7:23", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 13008, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3092:63:23", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 13009, - "nodeType": "ExpressionStatement", - "src": "3092:63:23" - }, - { - "assignments": [ - 13011 - ], - "declarations": [ - { - "constant": false, - "id": 13011, - "name": "amount", - "nodeType": "VariableDeclaration", - "scope": 13048, - "src": "3168:14:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 13010, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3168:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 13034, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 13019, - "name": "_sourceToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12984, - "src": "3289:12:23", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - ], - "id": 13018, - "name": "reserveBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 3106 - ], - "referencedDeclaration": 3106, - "src": "3274:14:23", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_contract$_IERC20Token_$20240_$returns$_t_uint256_$", - "typeString": "function (contract IERC20Token) view returns (uint256)" - } - }, - "id": 13020, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3274:28:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 13021, - "name": "reserves", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2520, - "src": "3317:8:23", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Reserve_$2506_storage_$", - "typeString": "mapping(address => struct ConverterBase.Reserve storage ref)" - } - }, - "id": 13023, - "indexExpression": { - "argumentTypes": null, - "id": 13022, - "name": "_sourceToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12984, - "src": "3326:12:23", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3317:22:23", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Reserve_$2506_storage", - "typeString": "struct ConverterBase.Reserve storage ref" - } - }, - "id": 13024, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "weight", - "nodeType": "MemberAccess", - "referencedDeclaration": 2499, - "src": "3317:29:23", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 13026, - "name": "_targetToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12986, - "src": "3376:12:23", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - ], - "id": 13025, - "name": "reserveBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 3106 - ], - "referencedDeclaration": 3106, - "src": "3361:14:23", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_contract$_IERC20Token_$20240_$returns$_t_uint256_$", - "typeString": "function (contract IERC20Token) view returns (uint256)" - } - }, - "id": 13027, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3361:28:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 13028, - "name": "reserves", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2520, - "src": "3404:8:23", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Reserve_$2506_storage_$", - "typeString": "mapping(address => struct ConverterBase.Reserve storage ref)" - } - }, - "id": 13030, - "indexExpression": { - "argumentTypes": null, - "id": 13029, - "name": "_targetToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12986, - "src": "3413:12:23", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3404:22:23", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Reserve_$2506_storage", - "typeString": "struct ConverterBase.Reserve storage ref" - } - }, - "id": 13031, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "weight", - "nodeType": "MemberAccess", - "referencedDeclaration": 2499, - "src": "3404:29:23", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - { - "argumentTypes": null, - "id": 13032, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12988, - "src": "3448:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 13014, - "name": "SOVRYNSWAP_FORMULA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20758, - "src": "3214:18:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 13013, - "name": "addressOf", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20931, - "src": "3204:9:23", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$", - "typeString": "function (bytes32) view returns (address)" - } - }, - "id": 13015, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3204:29:23", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 13012, - "name": "ISovrynSwapFormula", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12240, - "src": "3185:18:23", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ISovrynSwapFormula_$12240_$", - "typeString": "type(contract ISovrynSwapFormula)" - } - }, - "id": 13016, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3185:49:23", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISovrynSwapFormula_$12240", - "typeString": "contract ISovrynSwapFormula" - } - }, - "id": 13017, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "crossReserveTargetAmount", - "nodeType": "MemberAccess", - "referencedDeclaration": 12183, - "src": "3185:74:23", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_uint256_$_t_uint32_$_t_uint256_$_t_uint32_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256,uint32,uint256,uint32,uint256) view external returns (uint256)" - } - }, - "id": 13033, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3185:281:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3168:298:23" - }, - { - "assignments": [ - 13036 - ], - "declarations": [ - { - "constant": false, - "id": 13036, - "name": "fee", - "nodeType": "VariableDeclaration", - "scope": 13048, - "src": "3557:11:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 13035, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3557:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 13040, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 13038, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13011, - "src": "3584:6:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 13037, - "name": "calculateFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3204, - "src": "3571:12:23", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256) view returns (uint256)" - } - }, - "id": 13039, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3571:20:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3557:34:23" - }, - { - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 13043, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 13041, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13011, - "src": "3610:6:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "id": 13042, - "name": "fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13036, - "src": "3619:3:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3610:12:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 13044, - "name": "fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13036, - "src": "3624:3:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 13045, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "3609:19:23", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", - "typeString": "tuple(uint256,uint256)" - } - }, - "functionReturnParameters": 13002, - "id": 13046, - "nodeType": "Return", - "src": "3602:26:23" - } - ] - }, - "documentation": "@dev returns the expected target amount of converting one reserve to another along with the fee\r\n\n * @param _sourceToken contract address of the source reserve token\r\n@param _targetToken contract address of the target reserve token\r\n@param _amount amount of tokens received from the user\r\n\n * @return expected target amount\r\n@return expected fee\r", - "id": 13048, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [ - { - "arguments": null, - "id": 12991, - "modifierName": { - "argumentTypes": null, - "id": 12990, - "name": "active", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2604, - "src": "2934:6:23", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "2934:6:23" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 12993, - "name": "_sourceToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12984, - "src": "2963:12:23", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - } - ], - "id": 12994, - "modifierName": { - "argumentTypes": null, - "id": 12992, - "name": "validReserve", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2642, - "src": "2950:12:23", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_contract$_IERC20Token_$20240_$", - "typeString": "modifier (contract IERC20Token)" - } - }, - "nodeType": "ModifierInvocation", - "src": "2950:26:23" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 12996, - "name": "_targetToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12986, - "src": "2999:12:23", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - } - ], - "id": 12997, - "modifierName": { - "argumentTypes": null, - "id": 12995, - "name": "validReserve", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2642, - "src": "2986:12:23", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_contract$_IERC20Token_$20240_$", - "typeString": "modifier (contract IERC20Token)" - } - }, - "nodeType": "ModifierInvocation", - "src": "2986:26:23" - } - ], - "name": "targetAmountAndFee", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 12989, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12984, - "name": "_sourceToken", - "nodeType": "VariableDeclaration", - "scope": 13048, - "src": "2826:24:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - "typeName": { - "contractScope": null, - "id": 12983, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "2826:11:23", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 12986, - "name": "_targetToken", - "nodeType": "VariableDeclaration", - "scope": 13048, - "src": "2852:24:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - "typeName": { - "contractScope": null, - "id": 12985, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "2852:11:23", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 12988, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 13048, - "src": "2878:15:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 12987, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2878:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2825:69:23" - }, - "payable": false, - "returnParameters": { - "id": 13002, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12999, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 13048, - "src": "3031:7:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 12998, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3031:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 13001, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 13048, - "src": "3040:7:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 13000, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3040:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3030:18:23" - }, - "scope": 14409, - "src": "2798:838:23", - "stateMutability": "view", - "superFunction": 11681, - "visibility": "public" - }, - { - "body": { - "id": 13173, - "nodeType": "Block", - "src": "4400:1465:23", - "statements": [ - { - "assignments": [ - 13064, - 13066 - ], - "declarations": [ - { - "constant": false, - "id": 13064, - "name": "amount", - "nodeType": "VariableDeclaration", - "scope": 13174, - "src": "4459:14:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 13063, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4459:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 13066, - "name": "fee", - "nodeType": "VariableDeclaration", - "scope": 13174, - "src": "4475:11:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 13065, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4475:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 13072, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 13068, - "name": "_sourceToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13050, - "src": "4509:12:23", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - { - "argumentTypes": null, - "id": 13069, - "name": "_targetToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13052, - "src": "4523:12:23", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - { - "argumentTypes": null, - "id": 13070, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13054, - "src": "4537:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 13067, - "name": "targetAmountAndFee", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 13048 - ], - "referencedDeclaration": 13048, - "src": "4490:18:23", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_contract$_IERC20Token_$20240_$_t_contract$_IERC20Token_$20240_$_t_uint256_$returns$_t_uint256_$_t_uint256_$", - "typeString": "function (contract IERC20Token,contract IERC20Token,uint256) view returns (uint256,uint256)" - } - }, - "id": 13071, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4490:55:23", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", - "typeString": "tuple(uint256,uint256)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4458:87:23" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 13076, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 13074, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13064, - "src": "4626:6:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 13075, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4636:1:23", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "4626:11:23", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552525f5a45524f5f5441524745545f414d4f554e54", - "id": 13077, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4639:24:23", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_29cb0846c2d5a859f661a5b4c4a8be47a80ca27c24af6f007bda101871b53e03", - "typeString": "literal_string \"ERR_ZERO_TARGET_AMOUNT\"" - }, - "value": "ERR_ZERO_TARGET_AMOUNT" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_29cb0846c2d5a859f661a5b4c4a8be47a80ca27c24af6f007bda101871b53e03", - "typeString": "literal_string \"ERR_ZERO_TARGET_AMOUNT\"" - } - ], - "id": 13073, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 22341, - 22342 - ], - "referencedDeclaration": 22342, - "src": "4618:7:23", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 13078, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4618:46:23", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 13079, - "nodeType": "ExpressionStatement", - "src": "4618:46:23" - }, - { - "assignments": [ - 13081 - ], - "declarations": [ - { - "constant": false, - "id": 13081, - "name": "targetReserveBalance", - "nodeType": "VariableDeclaration", - "scope": 13174, - "src": "4745:28:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 13080, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4745:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 13085, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 13083, - "name": "_targetToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13052, - "src": "4791:12:23", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - ], - "id": 13082, - "name": "reserveBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 3106 - ], - "referencedDeclaration": 3106, - "src": "4776:14:23", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_contract$_IERC20Token_$20240_$returns$_t_uint256_$", - "typeString": "function (contract IERC20Token) view returns (uint256)" - } - }, - "id": 13084, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4776:28:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4745:59:23" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 13089, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 13087, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13064, - "src": "4822:6:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "id": 13088, - "name": "targetReserveBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13081, - "src": "4831:20:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4822:29:23", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 13086, - "name": "assert", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22327, - "src": "4815:6:23", - "typeDescriptions": { - "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 13090, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4815:37:23", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 13091, - "nodeType": "ExpressionStatement", - "src": "4815:37:23" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 13094, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 13092, - "name": "_sourceToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13050, - "src": "4932:12:23", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 13093, - "name": "ETH_RESERVE_ADDRESS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2495, - "src": "4948:19:23", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "4932:35:23", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 13119, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 13107, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 13104, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22338, - "src": "5075:3:23", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 13105, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5075:9:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 13106, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5088:1:23", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "5075:14:23", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 13118, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 13114, - "name": "_sourceToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13050, - "src": "5141:12:23", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - ], - "id": 13113, - "name": "reserveBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 3106 - ], - "referencedDeclaration": 3106, - "src": "5126:14:23", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_contract$_IERC20Token_$20240_$returns$_t_uint256_$", - "typeString": "function (contract IERC20Token) view returns (uint256)" - } - }, - "id": 13115, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5126:28:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 13110, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22439, - "src": "5116:4:23", - "typeDescriptions": { - "typeIdentifier": "t_contract$_LiquidityPoolV1Converter_$14409", - "typeString": "contract LiquidityPoolV1Converter" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_LiquidityPoolV1Converter_$14409", - "typeString": "contract LiquidityPoolV1Converter" - } - ], - "expression": { - "argumentTypes": null, - "id": 13108, - "name": "_sourceToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13050, - "src": "5093:12:23", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "id": 13109, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "balanceOf", - "nodeType": "MemberAccess", - "referencedDeclaration": 20194, - "src": "5093:22:23", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 13111, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5093:28:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 13112, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 21758, - "src": "5093:32:23", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 13116, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5093:62:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 13117, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13054, - "src": "5159:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5093:73:23", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "5075:91:23", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552525f494e56414c49445f414d4f554e54", - "id": 13120, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5168:20:23", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c44007bfe4e704be0ed1393660a827b4f88825f4b6fe1bc10cd38fc3fcb7d839", - "typeString": "literal_string \"ERR_INVALID_AMOUNT\"" - }, - "value": "ERR_INVALID_AMOUNT" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_c44007bfe4e704be0ed1393660a827b4f88825f4b6fe1bc10cd38fc3fcb7d839", - "typeString": "literal_string \"ERR_INVALID_AMOUNT\"" - } - ], - "id": 13103, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 22341, - 22342 - ], - "referencedDeclaration": 22342, - "src": "5067:7:23", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 13121, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5067:122:23", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 13122, - "nodeType": "ExpressionStatement", - "src": "5067:122:23" - }, - "id": 13123, - "nodeType": "IfStatement", - "src": "4928:261:23", - "trueBody": { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 13099, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 13096, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22338, - "src": "4990:3:23", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 13097, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4990:9:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 13098, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13054, - "src": "5003:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4990:20:23", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552525f4554485f414d4f554e545f4d49534d41544348", - "id": 13100, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5012:25:23", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_b27c160ac497b67c4fef6b5554e0b1a41f3c9b44e4bd8482662df760b76c093b", - "typeString": "literal_string \"ERR_ETH_AMOUNT_MISMATCH\"" - }, - "value": "ERR_ETH_AMOUNT_MISMATCH" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_b27c160ac497b67c4fef6b5554e0b1a41f3c9b44e4bd8482662df760b76c093b", - "typeString": "literal_string \"ERR_ETH_AMOUNT_MISMATCH\"" - } - ], - "id": 13095, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 22341, - 22342 - ], - "referencedDeclaration": 22342, - "src": "4982:7:23", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 13101, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4982:56:23", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 13102, - "nodeType": "ExpressionStatement", - "src": "4982:56:23" - } - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 13125, - "name": "_sourceToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13050, - "src": "5259:12:23", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - ], - "id": 13124, - "name": "syncReserveBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3237, - "src": "5240:18:23", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20Token_$20240_$returns$__$", - "typeString": "function (contract IERC20Token)" - } - }, - "id": 13126, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5240:32:23", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 13127, - "nodeType": "ExpressionStatement", - "src": "5240:32:23" - }, - { - "expression": { - "argumentTypes": null, - "id": 13139, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 13128, - "name": "reserves", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2520, - "src": "5283:8:23", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Reserve_$2506_storage_$", - "typeString": "mapping(address => struct ConverterBase.Reserve storage ref)" - } - }, - "id": 13130, - "indexExpression": { - "argumentTypes": null, - "id": 13129, - "name": "_targetToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13052, - "src": "5292:12:23", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5283:22:23", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Reserve_$2506_storage", - "typeString": "struct ConverterBase.Reserve storage ref" - } - }, - "id": 13131, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "balance", - "nodeType": "MemberAccess", - "referencedDeclaration": 2497, - "src": "5283:30:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 13137, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13064, - "src": "5351:6:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 13132, - "name": "reserves", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2520, - "src": "5316:8:23", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Reserve_$2506_storage_$", - "typeString": "mapping(address => struct ConverterBase.Reserve storage ref)" - } - }, - "id": 13134, - "indexExpression": { - "argumentTypes": null, - "id": 13133, - "name": "_targetToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13052, - "src": "5325:12:23", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5316:22:23", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Reserve_$2506_storage", - "typeString": "struct ConverterBase.Reserve storage ref" - } - }, - "id": 13135, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "balance", - "nodeType": "MemberAccess", - "referencedDeclaration": 2497, - "src": "5316:30:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 13136, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 21758, - "src": "5316:34:23", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 13138, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5316:42:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5283:75:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 13140, - "nodeType": "ExpressionStatement", - "src": "5283:75:23" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 13143, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 13141, - "name": "_targetToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13052, - "src": "5445:12:23", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 13142, - "name": "ETH_RESERVE_ADDRESS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2495, - "src": "5461:19:23", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "5445:35:23", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 13151, - "name": "_targetToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13052, - "src": "5566:12:23", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - { - "argumentTypes": null, - "id": 13152, - "name": "_beneficiary", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13058, - "src": "5580:12:23", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 13153, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13064, - "src": "5594:6:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 13150, - "name": "safeTransfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21881, - "src": "5553:12:23", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20Token_$20240_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (contract IERC20Token,address,uint256)" - } - }, - "id": 13154, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5553:48:23", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 13155, - "nodeType": "ExpressionStatement", - "src": "5553:48:23" - }, - "id": 13156, - "nodeType": "IfStatement", - "src": "5441:160:23", - "trueBody": { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 13147, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13064, - "src": "5517:6:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 13144, - "name": "_beneficiary", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13058, - "src": "5495:12:23", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 13146, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5495:21:23", - "typeDescriptions": { - "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 13148, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5495:29:23", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 13149, - "nodeType": "ExpressionStatement", - "src": "5495:29:23" - } - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 13158, - "name": "_sourceToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13050, - "src": "5680:12:23", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - { - "argumentTypes": null, - "id": 13159, - "name": "_targetToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13052, - "src": "5694:12:23", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - { - "argumentTypes": null, - "id": 13160, - "name": "_trader", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13056, - "src": "5708:7:23", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 13161, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13054, - "src": "5717:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 13162, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13064, - "src": "5726:6:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 13163, - "name": "fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13066, - "src": "5734:3:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 13157, - "name": "dispatchConversionEvent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3298, - "src": "5656:23:23", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20Token_$20240_$_t_contract$_IERC20Token_$20240_$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (contract IERC20Token,contract IERC20Token,address,uint256,uint256,uint256)" - } - }, - "id": 13164, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5656:82:23", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 13165, - "nodeType": "ExpressionStatement", - "src": "5656:82:23" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 13167, - "name": "_sourceToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13050, - "src": "5804:12:23", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - { - "argumentTypes": null, - "id": 13168, - "name": "_targetToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13052, - "src": "5818:12:23", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - ], - "id": 13166, - "name": "dispatchRateEvents", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14383, - "src": "5785:18:23", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20Token_$20240_$_t_contract$_IERC20Token_$20240_$returns$__$", - "typeString": "function (contract IERC20Token,contract IERC20Token)" - } - }, - "id": 13169, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5785:46:23", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 13170, - "nodeType": "ExpressionStatement", - "src": "5785:46:23" - }, - { - "expression": { - "argumentTypes": null, - "id": 13171, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13064, - "src": "5851:6:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 13062, - "id": 13172, - "nodeType": "Return", - "src": "5844:13:23" - } - ] - }, - "documentation": "@dev converts a specific amount of source tokens to target tokens\r\ncan only be called by the SovrynSwap network contract\r\n\n * @param _sourceToken source ERC20 token\r\n@param _targetToken target ERC20 token\r\n@param _amount amount of tokens to convert (in units of the source token)\r\n@param _trader address of the caller who executed the conversion\r\n@param _beneficiary wallet to receive the conversion result\r\n\n * @return amount of tokens received (in units of the target token)\r", - "id": 13174, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "doConvert", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 13059, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 13050, - "name": "_sourceToken", - "nodeType": "VariableDeclaration", - "scope": 13174, - "src": "4242:24:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - "typeName": { - "contractScope": null, - "id": 13049, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "4242:11:23", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 13052, - "name": "_targetToken", - "nodeType": "VariableDeclaration", - "scope": 13174, - "src": "4268:24:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - "typeName": { - "contractScope": null, - "id": 13051, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "4268:11:23", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 13054, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 13174, - "src": "4294:15:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 13053, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4294:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 13056, - "name": "_trader", - "nodeType": "VariableDeclaration", - "scope": 13174, - "src": "4311:15:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 13055, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4311:7:23", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 13058, - "name": "_beneficiary", - "nodeType": "VariableDeclaration", - "scope": 13174, - "src": "4328:20:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 13057, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4328:7:23", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4241:108:23" - }, - "payable": false, - "returnParameters": { - "id": 13062, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 13061, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 13174, - "src": "4386:7:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 13060, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4386:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4385:9:23" - }, - "scope": 14409, - "src": "4223:1642:23", - "stateMutability": "nonpayable", - "superFunction": 3188, - "visibility": "internal" - }, - { - "body": { - "id": 13268, - "nodeType": "Block", - "src": "6433:1216:23", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 13190, - "name": "_reserveTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13177, - "src": "6499:14:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", - "typeString": "contract IERC20Token[] memory" - } - }, - { - "argumentTypes": null, - "id": 13191, - "name": "_reserveAmounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13180, - "src": "6515:15:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - { - "argumentTypes": null, - "id": 13192, - "name": "_minReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13182, - "src": "6532:10:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", - "typeString": "contract IERC20Token[] memory" - }, - { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 13189, - "name": "verifyLiquidityInput", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13681, - "src": "6478:20:23", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_uint256_$returns$__$", - "typeString": "function (contract IERC20Token[] memory,uint256[] memory,uint256) view" - } - }, - "id": 13193, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6478:65:23", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 13194, - "nodeType": "ExpressionStatement", - "src": "6478:65:23" - }, - { - "body": { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 13210, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 13206, - "name": "_reserveTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13177, - "src": "6744:14:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", - "typeString": "contract IERC20Token[] memory" - } - }, - "id": 13208, - "indexExpression": { - "argumentTypes": null, - "id": 13207, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13196, - "src": "6759:1:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6744:17:23", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 13209, - "name": "ETH_RESERVE_ADDRESS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2495, - "src": "6765:19:23", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "6744:40:23", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 13221, - "nodeType": "IfStatement", - "src": "6740:130:23", - "trueBody": { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 13217, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 13212, - "name": "_reserveAmounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13180, - "src": "6811:15:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 13214, - "indexExpression": { - "argumentTypes": null, - "id": 13213, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13196, - "src": "6827:1:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6811:18:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 13215, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22338, - "src": "6833:3:23", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 13216, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6833:9:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6811:31:23", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552525f4554485f414d4f554e545f4d49534d41544348", - "id": 13218, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6844:25:23", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_b27c160ac497b67c4fef6b5554e0b1a41f3c9b44e4bd8482662df760b76c093b", - "typeString": "literal_string \"ERR_ETH_AMOUNT_MISMATCH\"" - }, - "value": "ERR_ETH_AMOUNT_MISMATCH" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_b27c160ac497b67c4fef6b5554e0b1a41f3c9b44e4bd8482662df760b76c093b", - "typeString": "literal_string \"ERR_ETH_AMOUNT_MISMATCH\"" - } - ], - "id": 13211, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 22341, - 22342 - ], - "referencedDeclaration": 22342, - "src": "6803:7:23", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 13219, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6803:67:23", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 13220, - "nodeType": "ExpressionStatement", - "src": "6803:67:23" - } - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 13202, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 13199, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13196, - "src": "6695:1:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 13200, - "name": "_reserveTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13177, - "src": "6699:14:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", - "typeString": "contract IERC20Token[] memory" - } - }, - "id": 13201, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6699:21:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6695:25:23", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 13222, - "initializationExpression": { - "assignments": [ - 13196 - ], - "declarations": [ - { - "constant": false, - "id": 13196, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 13269, - "src": "6680:9:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 13195, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6680:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 13198, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 13197, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6692:1:23", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "6680:13:23" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 13204, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "6722:3:23", - "subExpression": { - "argumentTypes": null, - "id": 13203, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13196, - "src": "6722:1:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 13205, - "nodeType": "ExpressionStatement", - "src": "6722:3:23" - }, - "nodeType": "ForStatement", - "src": "6675:195:23" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 13226, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 13223, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22338, - "src": "6990:3:23", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 13224, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6990:9:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 13225, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7002:1:23", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "6990:13:23", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 13235, - "nodeType": "IfStatement", - "src": "6986:98:23", - "trueBody": { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 13228, - "name": "reserves", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2520, - "src": "7026:8:23", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Reserve_$2506_storage_$", - "typeString": "mapping(address => struct ConverterBase.Reserve storage ref)" - } - }, - "id": 13230, - "indexExpression": { - "argumentTypes": null, - "id": 13229, - "name": "ETH_RESERVE_ADDRESS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2495, - "src": "7035:19:23", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7026:29:23", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Reserve_$2506_storage", - "typeString": "struct ConverterBase.Reserve storage ref" - } - }, - "id": 13231, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "isSet", - "nodeType": "MemberAccess", - "referencedDeclaration": 2505, - "src": "7026:35:23", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552525f4e4f5f4554485f52455345525645", - "id": 13232, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7063:20:23", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_467f328539cc1e1b7e8c0e459b4245a158bd2d844c358525ec924cd65d4df604", - "typeString": "literal_string \"ERR_NO_ETH_RESERVE\"" - }, - "value": "ERR_NO_ETH_RESERVE" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_467f328539cc1e1b7e8c0e459b4245a158bd2d844c358525ec924cd65d4df604", - "typeString": "literal_string \"ERR_NO_ETH_RESERVE\"" - } - ], - "id": 13227, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 22341, - 22342 - ], - "referencedDeclaration": 22342, - "src": "7018:7:23", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 13233, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7018:66:23", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 13234, - "nodeType": "ExpressionStatement", - "src": "7018:66:23" - } - }, - { - "assignments": [ - 13237 - ], - "declarations": [ - { - "constant": false, - "id": 13237, - "name": "totalSupply", - "nodeType": "VariableDeclaration", - "scope": 13269, - "src": "7130:19:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 13236, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7130:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 13243, - "initialValue": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 13239, - "name": "anchor", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2511 - ], - "referencedDeclaration": 2511, - "src": "7164:6:23", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - ], - "id": 13238, - "name": "ISmartToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20295, - "src": "7152:11:23", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ISmartToken_$20295_$", - "typeString": "type(contract ISmartToken)" - } - }, - "id": 13240, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7152:19:23", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISmartToken_$20295", - "typeString": "contract ISmartToken" - } - }, - "id": 13241, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "totalSupply", - "nodeType": "MemberAccess", - "referencedDeclaration": 20182, - "src": "7152:31:23", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", - "typeString": "function () view external returns (uint256)" - } - }, - "id": 13242, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7152:33:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "7130:55:23" - }, - { - "assignments": [ - 13245 - ], - "declarations": [ - { - "constant": false, - "id": 13245, - "name": "amount", - "nodeType": "VariableDeclaration", - "scope": 13269, - "src": "7291:14:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 13244, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7291:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 13251, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 13247, - "name": "_reserveTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13177, - "src": "7327:14:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", - "typeString": "contract IERC20Token[] memory" - } - }, - { - "argumentTypes": null, - "id": 13248, - "name": "_reserveAmounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13180, - "src": "7343:15:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - { - "argumentTypes": null, - "id": 13249, - "name": "totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13237, - "src": "7360:11:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", - "typeString": "contract IERC20Token[] memory" - }, - { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 13246, - "name": "addLiquidityToPool", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13710, - "src": "7308:18:23", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (contract IERC20Token[] memory,uint256[] memory,uint256) returns (uint256)" - } - }, - "id": 13250, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7308:64:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "7291:81:23" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 13255, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 13253, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13245, - "src": "7499:6:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 13254, - "name": "_minReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13182, - "src": "7509:10:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7499:20:23", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552525f52455455524e5f544f4f5f4c4f57", - "id": 13256, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7521:20:23", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c3237cc40443cfd1e0e9492ef35b7447eab6349fb6eac5eb1ec626edd3c555aa", - "typeString": "literal_string \"ERR_RETURN_TOO_LOW\"" - }, - "value": "ERR_RETURN_TOO_LOW" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_c3237cc40443cfd1e0e9492ef35b7447eab6349fb6eac5eb1ec626edd3c555aa", - "typeString": "literal_string \"ERR_RETURN_TOO_LOW\"" - } - ], - "id": 13252, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 22341, - 22342 - ], - "referencedDeclaration": 22342, - "src": "7491:7:23", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 13257, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7491:51:23", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 13258, - "nodeType": "ExpressionStatement", - "src": "7491:51:23" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 13263, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22338, - "src": "7622:3:23", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 13264, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7622:10:23", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 13265, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13245, - "src": "7634:6:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 13260, - "name": "anchor", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2511 - ], - "referencedDeclaration": 2511, - "src": "7608:6:23", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - ], - "id": 13259, - "name": "ISmartToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20295, - "src": "7596:11:23", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ISmartToken_$20295_$", - "typeString": "type(contract ISmartToken)" - } - }, - "id": 13261, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7596:19:23", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISmartToken_$20295", - "typeString": "contract ISmartToken" - } - }, - "id": 13262, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "issue", - "nodeType": "MemberAccess", - "referencedDeclaration": 20287, - "src": "7596:25:23", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256) external" - } - }, - "id": 13266, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7596:45:23", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 13267, - "nodeType": "ExpressionStatement", - "src": "7596:45:23" - } - ] - }, - "documentation": "@dev increases the pool's liquidity and mints new shares in the pool to the caller\r\nnote that prior to version 28, you should use 'fund' instead\r\n\n * @param _reserveTokens address of each reserve token\r\n@param _reserveAmounts amount of each reserve token\r\n@param _minReturn token minimum return-amount\r", - "id": 13269, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 13185, - "modifierName": { - "argumentTypes": null, - "id": 13184, - "name": "protected", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21698, - "src": "6402:9:23", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "6402:9:23" - }, - { - "arguments": null, - "id": 13187, - "modifierName": { - "argumentTypes": null, - "id": 13186, - "name": "active", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2604, - "src": "6421:6:23", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "6421:6:23" - } - ], - "name": "addLiquidity", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 13183, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 13177, - "name": "_reserveTokens", - "nodeType": "VariableDeclaration", - "scope": 13269, - "src": "6269:35:23", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", - "typeString": "contract IERC20Token[]" - }, - "typeName": { - "baseType": { - "contractScope": null, - "id": 13175, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "6269:11:23", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "id": 13176, - "length": null, - "nodeType": "ArrayTypeName", - "src": "6269:13:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_storage_ptr", - "typeString": "contract IERC20Token[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 13180, - "name": "_reserveAmounts", - "nodeType": "VariableDeclaration", - "scope": 13269, - "src": "6306:32:23", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 13178, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6306:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 13179, - "length": null, - "nodeType": "ArrayTypeName", - "src": "6306:9:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 13182, - "name": "_minReturn", - "nodeType": "VariableDeclaration", - "scope": 13269, - "src": "6340:18:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 13181, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6340:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6268:91:23" - }, - "payable": true, - "returnParameters": { - "id": 13188, - "nodeType": "ParameterList", - "parameters": [], - "src": "6433:0:23" - }, - "scope": 14409, - "src": "6247:1402:23", - "stateMutability": "payable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 13314, - "nodeType": "Block", - "src": "8233:544:23", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 13285, - "name": "_reserveTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13274, - "src": "8299:14:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", - "typeString": "contract IERC20Token[] memory" - } - }, - { - "argumentTypes": null, - "id": 13286, - "name": "_reserveMinReturnAmounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13277, - "src": "8315:24:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - { - "argumentTypes": null, - "id": 13287, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13271, - "src": "8341:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", - "typeString": "contract IERC20Token[] memory" - }, - { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 13284, - "name": "verifyLiquidityInput", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13681, - "src": "8278:20:23", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_uint256_$returns$__$", - "typeString": "function (contract IERC20Token[] memory,uint256[] memory,uint256) view" - } - }, - "id": 13288, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8278:71:23", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 13289, - "nodeType": "ExpressionStatement", - "src": "8278:71:23" - }, - { - "assignments": [ - 13291 - ], - "declarations": [ - { - "constant": false, - "id": 13291, - "name": "totalSupply", - "nodeType": "VariableDeclaration", - "scope": 13315, - "src": "8429:19:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 13290, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8429:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 13297, - "initialValue": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 13293, - "name": "anchor", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2511 - ], - "referencedDeclaration": 2511, - "src": "8463:6:23", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - ], - "id": 13292, - "name": "ISmartToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20295, - "src": "8451:11:23", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ISmartToken_$20295_$", - "typeString": "type(contract ISmartToken)" - } - }, - "id": 13294, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8451:19:23", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISmartToken_$20295", - "typeString": "contract ISmartToken" - } - }, - "id": 13295, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "totalSupply", - "nodeType": "MemberAccess", - "referencedDeclaration": 20182, - "src": "8451:31:23", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", - "typeString": "function () view external returns (uint256)" - } - }, - "id": 13296, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8451:33:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "8429:55:23" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 13302, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22338, - "src": "8561:3:23", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 13303, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8561:10:23", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 13304, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13271, - "src": "8573:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 13299, - "name": "anchor", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2511 - ], - "referencedDeclaration": 2511, - "src": "8545:6:23", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - ], - "id": 13298, - "name": "ISmartToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20295, - "src": "8533:11:23", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ISmartToken_$20295_$", - "typeString": "type(contract ISmartToken)" - } - }, - "id": 13300, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8533:19:23", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISmartToken_$20295", - "typeString": "contract ISmartToken" - } - }, - "id": 13301, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "destroy", - "nodeType": "MemberAccess", - "referencedDeclaration": 20294, - "src": "8533:27:23", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256) external" - } - }, - "id": 13305, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8533:48:23", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 13306, - "nodeType": "ExpressionStatement", - "src": "8533:48:23" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 13308, - "name": "_reserveTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13274, - "src": "8706:14:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", - "typeString": "contract IERC20Token[] memory" - } - }, - { - "argumentTypes": null, - "id": 13309, - "name": "_reserveMinReturnAmounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13277, - "src": "8722:24:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - { - "argumentTypes": null, - "id": 13310, - "name": "totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13291, - "src": "8748:11:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 13311, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13271, - "src": "8761:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", - "typeString": "contract IERC20Token[] memory" - }, - { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 13307, - "name": "removeLiquidityFromPool", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14119, - "src": "8682:23:23", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (contract IERC20Token[] memory,uint256[] memory,uint256,uint256)" - } - }, - "id": 13312, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8682:87:23", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 13313, - "nodeType": "ExpressionStatement", - "src": "8682:87:23" - } - ] - }, - "documentation": "@dev decreases the pool's liquidity and burns the caller's shares in the pool\r\nnote that prior to version 28, you should use 'liquidate' instead\r\n\n * @param _amount token amount\r\n@param _reserveTokens address of each reserve token\r\n@param _reserveMinReturnAmounts minimum return-amount of each reserve token\r", - "id": 13315, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 13280, - "modifierName": { - "argumentTypes": null, - "id": 13279, - "name": "protected", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21698, - "src": "8202:9:23", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "8202:9:23" - }, - { - "arguments": null, - "id": 13282, - "modifierName": { - "argumentTypes": null, - "id": 13281, - "name": "active", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2604, - "src": "8221:6:23", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "8221:6:23" - } - ], - "name": "removeLiquidity", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 13278, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 13271, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 13315, - "src": "8080:15:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 13270, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8080:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 13274, - "name": "_reserveTokens", - "nodeType": "VariableDeclaration", - "scope": 13315, - "src": "8097:35:23", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", - "typeString": "contract IERC20Token[]" - }, - "typeName": { - "baseType": { - "contractScope": null, - "id": 13272, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "8097:11:23", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "id": 13273, - "length": null, - "nodeType": "ArrayTypeName", - "src": "8097:13:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_storage_ptr", - "typeString": "contract IERC20Token[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 13277, - "name": "_reserveMinReturnAmounts", - "nodeType": "VariableDeclaration", - "scope": 13315, - "src": "8134:41:23", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 13275, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8134:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 13276, - "length": null, - "nodeType": "ArrayTypeName", - "src": "8134:9:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8079:97:23" - }, - "payable": false, - "returnParameters": { - "id": 13283, - "nodeType": "ParameterList", - "parameters": [], - "src": "8233:0:23" - }, - "scope": 14409, - "src": "8055:722:23", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 13507, - "nodeType": "Block", - "src": "9265:2310:23", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 13322, - "name": "syncReserveBalances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3263, - "src": "9276:19:23", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", - "typeString": "function ()" - } - }, - "id": 13323, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9276:21:23", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 13324, - "nodeType": "ExpressionStatement", - "src": "9276:21:23" - }, - { - "expression": { - "argumentTypes": null, - "id": 13337, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 13325, - "name": "reserves", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2520, - "src": "9308:8:23", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Reserve_$2506_storage_$", - "typeString": "mapping(address => struct ConverterBase.Reserve storage ref)" - } - }, - "id": 13327, - "indexExpression": { - "argumentTypes": null, - "id": 13326, - "name": "ETH_RESERVE_ADDRESS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2495, - "src": "9317:19:23", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9308:29:23", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Reserve_$2506_storage", - "typeString": "struct ConverterBase.Reserve storage ref" - } - }, - "id": 13328, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "balance", - "nodeType": "MemberAccess", - "referencedDeclaration": 2497, - "src": "9308:37:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 13334, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22338, - "src": "9390:3:23", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 13335, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "9390:9:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 13329, - "name": "reserves", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2520, - "src": "9348:8:23", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Reserve_$2506_storage_$", - "typeString": "mapping(address => struct ConverterBase.Reserve storage ref)" - } - }, - "id": 13331, - "indexExpression": { - "argumentTypes": null, - "id": 13330, - "name": "ETH_RESERVE_ADDRESS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2495, - "src": "9357:19:23", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9348:29:23", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Reserve_$2506_storage", - "typeString": "struct ConverterBase.Reserve storage ref" - } - }, - "id": 13332, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "balance", - "nodeType": "MemberAccess", - "referencedDeclaration": 2497, - "src": "9348:37:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 13333, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 21758, - "src": "9348:41:23", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 13336, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9348:52:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9308:92:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 13338, - "nodeType": "ExpressionStatement", - "src": "9308:92:23" - }, - { - "assignments": [ - 13340 - ], - "declarations": [ - { - "constant": false, - "id": 13340, - "name": "supply", - "nodeType": "VariableDeclaration", - "scope": 13508, - "src": "9413:14:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 13339, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9413:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 13346, - "initialValue": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 13342, - "name": "anchor", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2511 - ], - "referencedDeclaration": 2511, - "src": "9442:6:23", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - ], - "id": 13341, - "name": "ISmartToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20295, - "src": "9430:11:23", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ISmartToken_$20295_$", - "typeString": "type(contract ISmartToken)" - } - }, - "id": 13343, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9430:19:23", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISmartToken_$20295", - "typeString": "contract ISmartToken" - } - }, - "id": 13344, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "totalSupply", - "nodeType": "MemberAccess", - "referencedDeclaration": 20182, - "src": "9430:31:23", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", - "typeString": "function () view external returns (uint256)" - } - }, - "id": 13345, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9430:33:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "9413:50:23" - }, - { - "assignments": [ - 13348 - ], - "declarations": [ - { - "constant": false, - "id": 13348, - "name": "formula", - "nodeType": "VariableDeclaration", - "scope": 13508, - "src": "9474:26:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISovrynSwapFormula_$12240", - "typeString": "contract ISovrynSwapFormula" - }, - "typeName": { - "contractScope": null, - "id": 13347, - "name": "ISovrynSwapFormula", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 12240, - "src": "9474:18:23", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISovrynSwapFormula_$12240", - "typeString": "contract ISovrynSwapFormula" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 13354, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 13351, - "name": "SOVRYNSWAP_FORMULA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20758, - "src": "9532:18:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 13350, - "name": "addressOf", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20931, - "src": "9522:9:23", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$", - "typeString": "function (bytes32) view returns (address)" - } - }, - "id": 13352, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9522:29:23", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 13349, - "name": "ISovrynSwapFormula", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12240, - "src": "9503:18:23", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ISovrynSwapFormula_$12240_$", - "typeString": "type(contract ISovrynSwapFormula)" - } - }, - "id": 13353, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9503:49:23", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISovrynSwapFormula_$12240", - "typeString": "contract ISovrynSwapFormula" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "9474:78:23" - }, - { - "assignments": [ - 13356 - ], - "declarations": [ - { - "constant": false, - "id": 13356, - "name": "reserveCount", - "nodeType": "VariableDeclaration", - "scope": 13508, - "src": "9756:20:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 13355, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9756:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 13359, - "initialValue": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 13357, - "name": "reserveTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2516, - "src": "9779:13:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_storage", - "typeString": "contract IERC20Token[] storage ref" - } - }, - "id": 13358, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "9779:20:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "9756:43:23" - }, - { - "body": { - "id": 13496, - "nodeType": "Block", - "src": "9853:1596:23", - "statements": [ - { - "assignments": [ - 13371 - ], - "declarations": [ - { - "constant": false, - "id": 13371, - "name": "reserveToken", - "nodeType": "VariableDeclaration", - "scope": 13508, - "src": "9868:24:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - "typeName": { - "contractScope": null, - "id": 13370, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "9868:11:23", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 13375, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 13372, - "name": "reserveTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2516, - "src": "9895:13:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_storage", - "typeString": "contract IERC20Token[] storage ref" - } - }, - "id": 13374, - "indexExpression": { - "argumentTypes": null, - "id": 13373, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13361, - "src": "9909:1:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9895:16:23", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "9868:43:23" - }, - { - "assignments": [ - 13377 - ], - "declarations": [ - { - "constant": false, - "id": 13377, - "name": "rsvBalance", - "nodeType": "VariableDeclaration", - "scope": 13508, - "src": "9926:18:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 13376, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9926:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 13382, - "initialValue": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 13378, - "name": "reserves", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2520, - "src": "9947:8:23", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Reserve_$2506_storage_$", - "typeString": "mapping(address => struct ConverterBase.Reserve storage ref)" - } - }, - "id": 13380, - "indexExpression": { - "argumentTypes": null, - "id": 13379, - "name": "reserveToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13371, - "src": "9956:12:23", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9947:22:23", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Reserve_$2506_storage", - "typeString": "struct ConverterBase.Reserve storage ref" - } - }, - "id": 13381, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "balance", - "nodeType": "MemberAccess", - "referencedDeclaration": 2497, - "src": "9947:30:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "9926:51:23" - }, - { - "assignments": [ - 13384 - ], - "declarations": [ - { - "constant": false, - "id": 13384, - "name": "reserveAmount", - "nodeType": "VariableDeclaration", - "scope": 13508, - "src": "9992:21:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 13383, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9992:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 13392, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 13387, - "name": "supply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13340, - "src": "10033:6:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 13388, - "name": "rsvBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13377, - "src": "10041:10:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 13389, - "name": "reserveRatio", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2523, - "src": "10053:12:23", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - { - "argumentTypes": null, - "id": 13390, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13317, - "src": "10067:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 13385, - "name": "formula", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13348, - "src": "10016:7:23", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISovrynSwapFormula_$12240", - "typeString": "contract ISovrynSwapFormula" - } - }, - "id": 13386, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "fundCost", - "nodeType": "MemberAccess", - "referencedDeclaration": 12196, - "src": "10016:16:23", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_uint256_$_t_uint256_$_t_uint32_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256,uint256,uint32,uint256) view external returns (uint256)" - } - }, - "id": 13391, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10016:59:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "9992:83:23" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 13395, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 13393, - "name": "reserveToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13371, - "src": "10164:12:23", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 13394, - "name": "ETH_RESERVE_ADDRESS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2495, - "src": "10180:19:23", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "10164:35:23", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 13450, - "nodeType": "Block", - "src": "10660:98:23", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 13443, - "name": "reserveToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13371, - "src": "10696:12:23", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 13444, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22338, - "src": "10710:3:23", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 13445, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10710:10:23", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 13446, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22439, - "src": "10722:4:23", - "typeDescriptions": { - "typeIdentifier": "t_contract$_LiquidityPoolV1Converter_$14409", - "typeString": "contract LiquidityPoolV1Converter" - } - }, - { - "argumentTypes": null, - "id": 13447, - "name": "reserveAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13384, - "src": "10728:13:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_contract$_LiquidityPoolV1Converter_$14409", - "typeString": "contract LiquidityPoolV1Converter" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 13442, - "name": "safeTransferFrom", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21904, - "src": "10679:16:23", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20Token_$20240_$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (contract IERC20Token,address,address,uint256)" - } - }, - "id": 13448, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10679:63:23", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 13449, - "nodeType": "ExpressionStatement", - "src": "10679:63:23" - } - ] - }, - "id": 13451, - "nodeType": "IfStatement", - "src": "10160:598:23", - "trueBody": { - "id": 13441, - "nodeType": "Block", - "src": "10201:440:23", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 13399, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 13396, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22338, - "src": "10224:3:23", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 13397, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10224:9:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "id": 13398, - "name": "reserveAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13384, - "src": "10236:13:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "10224:25:23", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 13415, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 13412, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22338, - "src": "10367:3:23", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 13413, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10367:9:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "id": 13414, - "name": "reserveAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13384, - "src": "10379:13:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "10367:25:23", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 13439, - "nodeType": "IfStatement", - "src": "10363:263:23", - "trueBody": { - "id": 13438, - "nodeType": "Block", - "src": "10394:232:23", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 13420, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 13417, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22338, - "src": "10425:3:23", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 13418, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10425:9:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 13419, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10438:1:23", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "10425:14:23", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552525f494e56414c49445f4554485f56414c5545", - "id": 13421, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10441:23:23", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_e220b3a28f19681b7484bf734e3fcd080dc85319844b89942d75a3bc56505e89", - "typeString": "literal_string \"ERR_INVALID_ETH_VALUE\"" - }, - "value": "ERR_INVALID_ETH_VALUE" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_e220b3a28f19681b7484bf734e3fcd080dc85319844b89942d75a3bc56505e89", - "typeString": "literal_string \"ERR_INVALID_ETH_VALUE\"" - } - ], - "id": 13416, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 22341, - 22342 - ], - "referencedDeclaration": 22342, - "src": "10417:7:23", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 13422, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10417:48:23", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 13423, - "nodeType": "ExpressionStatement", - "src": "10417:48:23" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 13425, - "name": "etherToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12931, - "src": "10505:10:23", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IEtherToken_$20266", - "typeString": "contract IEtherToken" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 13426, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22338, - "src": "10517:3:23", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 13427, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10517:10:23", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 13428, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22439, - "src": "10529:4:23", - "typeDescriptions": { - "typeIdentifier": "t_contract$_LiquidityPoolV1Converter_$14409", - "typeString": "contract LiquidityPoolV1Converter" - } - }, - { - "argumentTypes": null, - "id": 13429, - "name": "reserveAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13384, - "src": "10535:13:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IEtherToken_$20266", - "typeString": "contract IEtherToken" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_contract$_LiquidityPoolV1Converter_$14409", - "typeString": "contract LiquidityPoolV1Converter" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 13424, - "name": "safeTransferFrom", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21904, - "src": "10488:16:23", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20Token_$20240_$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (contract IERC20Token,address,address,uint256)" - } - }, - "id": 13430, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10488:61:23", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 13431, - "nodeType": "ExpressionStatement", - "src": "10488:61:23" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 13435, - "name": "reserveAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13384, - "src": "10592:13:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 13432, - "name": "etherToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12931, - "src": "10572:10:23", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IEtherToken_$20266", - "typeString": "contract IEtherToken" - } - }, - "id": 13434, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "withdraw", - "nodeType": "MemberAccess", - "referencedDeclaration": 20253, - "src": "10572:19:23", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256) external" - } - }, - "id": 13436, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10572:34:23", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 13437, - "nodeType": "ExpressionStatement", - "src": "10572:34:23" - } - ] - } - }, - "id": 13440, - "nodeType": "IfStatement", - "src": "10220:406:23", - "trueBody": { - "id": 13411, - "nodeType": "Block", - "src": "10251:89:23", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 13408, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 13405, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22338, - "src": "10294:3:23", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 13406, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10294:9:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "id": 13407, - "name": "reserveAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13384, - "src": "10306:13:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "10294:25:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 13400, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22338, - "src": "10274:3:23", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 13403, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10274:10:23", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 13404, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10274:19:23", - "typeDescriptions": { - "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 13409, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10274:46:23", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 13410, - "nodeType": "ExpressionStatement", - "src": "10274:46:23" - } - ] - } - } - ] - } - }, - { - "assignments": [ - 13453 - ], - "declarations": [ - { - "constant": false, - "id": 13453, - "name": "newReserveBalance", - "nodeType": "VariableDeclaration", - "scope": 13508, - "src": "10815:25:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 13452, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10815:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 13458, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 13456, - "name": "reserveAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13384, - "src": "10858:13:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 13454, - "name": "rsvBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13377, - "src": "10843:10:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 13455, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 21737, - "src": "10843:14:23", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 13457, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10843:29:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "10815:57:23" - }, - { - "expression": { - "argumentTypes": null, - "id": 13464, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 13459, - "name": "reserves", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2520, - "src": "10887:8:23", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Reserve_$2506_storage_$", - "typeString": "mapping(address => struct ConverterBase.Reserve storage ref)" - } - }, - "id": 13461, - "indexExpression": { - "argumentTypes": null, - "id": 13460, - "name": "reserveToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13371, - "src": "10896:12:23", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "10887:22:23", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Reserve_$2506_storage", - "typeString": "struct ConverterBase.Reserve storage ref" - } - }, - "id": 13462, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "balance", - "nodeType": "MemberAccess", - "referencedDeclaration": 2497, - "src": "10887:30:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 13463, - "name": "newReserveBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13453, - "src": "10920:17:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "10887:50:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 13465, - "nodeType": "ExpressionStatement", - "src": "10887:50:23" - }, - { - "assignments": [ - 13467 - ], - "declarations": [ - { - "constant": false, - "id": 13467, - "name": "newPoolTokenSupply", - "nodeType": "VariableDeclaration", - "scope": 13508, - "src": "10954:26:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 13466, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10954:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 13472, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 13470, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13317, - "src": "10994:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 13468, - "name": "supply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13340, - "src": "10983:6:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 13469, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 21737, - "src": "10983:10:23", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 13471, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10983:19:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "10954:48:23" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 13474, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22338, - "src": "11108:3:23", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 13475, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11108:10:23", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 13476, - "name": "reserveToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13371, - "src": "11120:12:23", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - { - "argumentTypes": null, - "id": 13477, - "name": "reserveAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13384, - "src": "11134:13:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 13478, - "name": "newReserveBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13453, - "src": "11149:17:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 13479, - "name": "newPoolTokenSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13467, - "src": "11168:18:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 13473, - "name": "LiquidityAdded", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6165, - "src": "11093:14:23", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256,uint256,uint256)" - } - }, - "id": 13480, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11093:94:23", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 13481, - "nodeType": "EmitStatement", - "src": "11088:99:23" - }, - { - "assignments": [ - 13483 - ], - "declarations": [ - { - "constant": false, - "id": 13483, - "name": "reserveWeight", - "nodeType": "VariableDeclaration", - "scope": 13508, - "src": "11276:20:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 13482, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "11276:6:23", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 13488, - "initialValue": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 13484, - "name": "reserves", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2520, - "src": "11299:8:23", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Reserve_$2506_storage_$", - "typeString": "mapping(address => struct ConverterBase.Reserve storage ref)" - } - }, - "id": 13486, - "indexExpression": { - "argumentTypes": null, - "id": 13485, - "name": "reserveToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13371, - "src": "11308:12:23", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11299:22:23", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Reserve_$2506_storage", - "typeString": "struct ConverterBase.Reserve storage ref" - } - }, - "id": 13487, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "weight", - "nodeType": "MemberAccess", - "referencedDeclaration": 2499, - "src": "11299:29:23", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "11276:52:23" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 13490, - "name": "newPoolTokenSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13467, - "src": "11370:18:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 13491, - "name": "reserveToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13371, - "src": "11390:12:23", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - { - "argumentTypes": null, - "id": 13492, - "name": "newReserveBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13453, - "src": "11404:17:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 13493, - "name": "reserveWeight", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13483, - "src": "11423:13:23", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - ], - "id": 13489, - "name": "dispatchPoolTokenRateEvent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14408, - "src": "11343:26:23", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_contract$_IERC20Token_$20240_$_t_uint256_$_t_uint32_$returns$__$", - "typeString": "function (uint256,contract IERC20Token,uint256,uint32)" - } - }, - "id": 13494, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11343:94:23", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 13495, - "nodeType": "ExpressionStatement", - "src": "11343:94:23" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 13366, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 13364, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13361, - "src": "9830:1:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "id": 13365, - "name": "reserveCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13356, - "src": "9834:12:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9830:16:23", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 13497, - "initializationExpression": { - "assignments": [ - 13361 - ], - "declarations": [ - { - "constant": false, - "id": 13361, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 13508, - "src": "9815:9:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 13360, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9815:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 13363, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 13362, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9827:1:23", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "9815:13:23" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 13368, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "9848:3:23", - "subExpression": { - "argumentTypes": null, - "id": 13367, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13361, - "src": "9848:1:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 13369, - "nodeType": "ExpressionStatement", - "src": "9848:3:23" - }, - "nodeType": "ForStatement", - "src": "9810:1639:23" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 13502, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22338, - "src": "11547:3:23", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 13503, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11547:10:23", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 13504, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13317, - "src": "11559:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 13499, - "name": "anchor", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2511 - ], - "referencedDeclaration": 2511, - "src": "11533:6:23", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - ], - "id": 13498, - "name": "ISmartToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20295, - "src": "11521:11:23", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ISmartToken_$20295_$", - "typeString": "type(contract ISmartToken)" - } - }, - "id": 13500, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11521:19:23", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISmartToken_$20295", - "typeString": "contract ISmartToken" - } - }, - "id": 13501, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "issue", - "nodeType": "MemberAccess", - "referencedDeclaration": 20287, - "src": "11521:25:23", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256) external" - } - }, - "id": 13505, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11521:46:23", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 13506, - "nodeType": "ExpressionStatement", - "src": "11521:46:23" - } - ] - }, - "documentation": "@dev increases the pool's liquidity and mints new shares in the pool to the caller\r\nfor example, if the caller increases the supply by 10%,\r\nthen it will cost an amount equal to 10% of each reserve token balance\r\nnote that starting from version 28, you should use 'addLiquidity' instead\r\n\n * @param _amount amount to increase the supply by (in the pool token)\r", - "id": 13508, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 13320, - "modifierName": { - "argumentTypes": null, - "id": 13319, - "name": "protected", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21698, - "src": "9255:9:23", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "9255:9:23" - } - ], - "name": "fund", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 13318, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 13317, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 13508, - "src": "9223:15:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 13316, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9223:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9222:17:23" - }, - "payable": true, - "returnParameters": { - "id": 13321, - "nodeType": "ParameterList", - "parameters": [], - "src": "9265:0:23" - }, - "scope": 14409, - "src": "9209:2366:23", - "stateMutability": "payable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 13575, - "nodeType": "Block", - "src": "12037:489:23", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 13518, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 13516, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13510, - "src": "12056:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 13517, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12066:1:23", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "12056:11:23", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552525f5a45524f5f414d4f554e54", - "id": 13519, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12069:17:23", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_7361098e42735bca910fe31e755673f84106720004757c7a37e5f52f92430b9e", - "typeString": "literal_string \"ERR_ZERO_AMOUNT\"" - }, - "value": "ERR_ZERO_AMOUNT" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_7361098e42735bca910fe31e755673f84106720004757c7a37e5f52f92430b9e", - "typeString": "literal_string \"ERR_ZERO_AMOUNT\"" - } - ], - "id": 13515, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 22341, - 22342 - ], - "referencedDeclaration": 22342, - "src": "12048:7:23", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 13520, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12048:39:23", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 13521, - "nodeType": "ExpressionStatement", - "src": "12048:39:23" - }, - { - "assignments": [ - 13523 - ], - "declarations": [ - { - "constant": false, - "id": 13523, - "name": "totalSupply", - "nodeType": "VariableDeclaration", - "scope": 13576, - "src": "12100:19:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 13522, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12100:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 13529, - "initialValue": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 13525, - "name": "anchor", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2511 - ], - "referencedDeclaration": 2511, - "src": "12134:6:23", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - ], - "id": 13524, - "name": "ISmartToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20295, - "src": "12122:11:23", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ISmartToken_$20295_$", - "typeString": "type(contract ISmartToken)" - } - }, - "id": 13526, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12122:19:23", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISmartToken_$20295", - "typeString": "contract ISmartToken" - } - }, - "id": 13527, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "totalSupply", - "nodeType": "MemberAccess", - "referencedDeclaration": 20182, - "src": "12122:31:23", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", - "typeString": "function () view external returns (uint256)" - } - }, - "id": 13528, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12122:33:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "12100:55:23" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 13534, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22338, - "src": "12194:3:23", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 13535, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "12194:10:23", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 13536, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13510, - "src": "12206:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 13531, - "name": "anchor", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2511 - ], - "referencedDeclaration": 2511, - "src": "12178:6:23", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - ], - "id": 13530, - "name": "ISmartToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20295, - "src": "12166:11:23", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ISmartToken_$20295_$", - "typeString": "type(contract ISmartToken)" - } - }, - "id": 13532, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12166:19:23", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISmartToken_$20295", - "typeString": "contract ISmartToken" - } - }, - "id": 13533, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "destroy", - "nodeType": "MemberAccess", - "referencedDeclaration": 20294, - "src": "12166:27:23", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256) external" - } - }, - "id": 13537, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12166:48:23", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 13538, - "nodeType": "ExpressionStatement", - "src": "12166:48:23" - }, - { - "assignments": [ - 13542 - ], - "declarations": [ - { - "constant": false, - "id": 13542, - "name": "reserveMinReturnAmounts", - "nodeType": "VariableDeclaration", - "scope": 13576, - "src": "12227:40:23", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 13540, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12227:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 13541, - "length": null, - "nodeType": "ArrayTypeName", - "src": "12227:9:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 13549, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 13546, - "name": "reserveTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2516, - "src": "12284:13:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_storage", - "typeString": "contract IERC20Token[] storage ref" - } - }, - "id": 13547, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "12284:20:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 13545, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "12270:13:23", - "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_$", - "typeString": "function (uint256) pure returns (uint256[] memory)" - }, - "typeName": { - "baseType": { - "id": 13543, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12274:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 13544, - "length": null, - "nodeType": "ArrayTypeName", - "src": "12274:9:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - } - }, - "id": 13548, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12270:35:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory", - "typeString": "uint256[] memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "12227:78:23" - }, - { - "body": { - "expression": { - "argumentTypes": null, - "id": 13565, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 13561, - "name": "reserveMinReturnAmounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13542, - "src": "12390:23:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 13563, - "indexExpression": { - "argumentTypes": null, - "id": 13562, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13551, - "src": "12414:1:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "12390:26:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 13564, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12419:1:23", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "12390:30:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 13566, - "nodeType": "ExpressionStatement", - "src": "12390:30:23" - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 13557, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 13554, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13551, - "src": "12336:1:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 13555, - "name": "reserveMinReturnAmounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13542, - "src": "12340:23:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 13556, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "12340:30:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "12336:34:23", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 13567, - "initializationExpression": { - "assignments": [ - 13551 - ], - "declarations": [ - { - "constant": false, - "id": 13551, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 13576, - "src": "12321:9:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 13550, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12321:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 13553, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 13552, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12333:1:23", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "12321:13:23" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 13559, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "12372:3:23", - "subExpression": { - "argumentTypes": null, - "id": 13558, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13551, - "src": "12372:1:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 13560, - "nodeType": "ExpressionStatement", - "src": "12372:3:23" - }, - "nodeType": "ForStatement", - "src": "12316:104:23" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 13569, - "name": "reserveTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2516, - "src": "12457:13:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_storage", - "typeString": "contract IERC20Token[] storage ref" - } - }, - { - "argumentTypes": null, - "id": 13570, - "name": "reserveMinReturnAmounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13542, - "src": "12472:23:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - { - "argumentTypes": null, - "id": 13571, - "name": "totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13523, - "src": "12497:11:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 13572, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13510, - "src": "12510:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_storage", - "typeString": "contract IERC20Token[] storage ref" - }, - { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 13568, - "name": "removeLiquidityFromPool", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14119, - "src": "12433:23:23", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (contract IERC20Token[] memory,uint256[] memory,uint256,uint256)" - } - }, - "id": 13573, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12433:85:23", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 13574, - "nodeType": "ExpressionStatement", - "src": "12433:85:23" - } - ] - }, - "documentation": "@dev decreases the pool's liquidity and burns the caller's shares in the pool\r\nfor example, if the holder sells 10% of the supply,\r\nthen they will receive 10% of each reserve token balance in return\r\nnote that starting from version 28, you should use 'removeLiquidity' instead\r\n\n * @param _amount amount to liquidate (in the pool token)\r", - "id": 13576, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 13513, - "modifierName": { - "argumentTypes": null, - "id": 13512, - "name": "protected", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21698, - "src": "12027:9:23", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "12027:9:23" - } - ], - "name": "liquidate", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 13511, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 13510, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 13576, - "src": "12003:15:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 13509, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12003:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "12002:17:23" - }, - "payable": false, - "returnParameters": { - "id": 13514, - "nodeType": "ParameterList", - "parameters": [], - "src": "12037:0:23" - }, - "scope": 14409, - "src": "11984:542:23", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 13680, - "nodeType": "Block", - "src": "13064:1027:23", - "statements": [ - { - "assignments": [], - "declarations": [ - { - "constant": false, - "id": 13588, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 13681, - "src": "13075:9:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 13587, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "13075:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 13589, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "13075:9:23" - }, - { - "assignments": [], - "declarations": [ - { - "constant": false, - "id": 13591, - "name": "j", - "nodeType": "VariableDeclaration", - "scope": 13681, - "src": "13095:9:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 13590, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "13095:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 13592, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "13095:9:23" - }, - { - "assignments": [ - 13594 - ], - "declarations": [ - { - "constant": false, - "id": 13594, - "name": "length", - "nodeType": "VariableDeclaration", - "scope": 13681, - "src": "13117:14:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 13593, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "13117:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 13597, - "initialValue": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 13595, - "name": "reserveTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2516, - "src": "13134:13:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_storage", - "typeString": "contract IERC20Token[] storage ref" - } - }, - "id": 13596, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "13134:20:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "13117:37:23" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 13602, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 13599, - "name": "length", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13594, - "src": "13173:6:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 13600, - "name": "_reserveTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13579, - "src": "13183:14:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", - "typeString": "contract IERC20Token[] memory" - } - }, - "id": 13601, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "13183:21:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "13173:31:23", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552525f494e56414c49445f52455345525645", - "id": 13603, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13206:21:23", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_2f153897d46b1410527faf37dfe95496d4a79980282840ba17da0adc4406792c", - "typeString": "literal_string \"ERR_INVALID_RESERVE\"" - }, - "value": "ERR_INVALID_RESERVE" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_2f153897d46b1410527faf37dfe95496d4a79980282840ba17da0adc4406792c", - "typeString": "literal_string \"ERR_INVALID_RESERVE\"" - } - ], - "id": 13598, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 22341, - 22342 - ], - "referencedDeclaration": 22342, - "src": "13165:7:23", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 13604, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13165:63:23", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 13605, - "nodeType": "ExpressionStatement", - "src": "13165:63:23" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 13610, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 13607, - "name": "length", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13594, - "src": "13247:6:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 13608, - "name": "_reserveAmounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13582, - "src": "13257:15:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 13609, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "13257:22:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "13247:32:23", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552525f494e56414c49445f414d4f554e54", - "id": 13611, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13281:20:23", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c44007bfe4e704be0ed1393660a827b4f88825f4b6fe1bc10cd38fc3fcb7d839", - "typeString": "literal_string \"ERR_INVALID_AMOUNT\"" - }, - "value": "ERR_INVALID_AMOUNT" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_c44007bfe4e704be0ed1393660a827b4f88825f4b6fe1bc10cd38fc3fcb7d839", - "typeString": "literal_string \"ERR_INVALID_AMOUNT\"" - } - ], - "id": 13606, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 22341, - 22342 - ], - "referencedDeclaration": 22342, - "src": "13239:7:23", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 13612, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13239:63:23", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 13613, - "nodeType": "ExpressionStatement", - "src": "13239:63:23" - }, - { - "body": { - "id": 13671, - "nodeType": "Block", - "src": "13344:621:23", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 13625, - "name": "reserves", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2520, - "src": "13455:8:23", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Reserve_$2506_storage_$", - "typeString": "mapping(address => struct ConverterBase.Reserve storage ref)" - } - }, - "id": 13629, - "indexExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 13626, - "name": "_reserveTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13579, - "src": "13464:14:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", - "typeString": "contract IERC20Token[] memory" - } - }, - "id": 13628, - "indexExpression": { - "argumentTypes": null, - "id": 13627, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13588, - "src": "13479:1:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "13464:17:23", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "13455:27:23", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Reserve_$2506_storage", - "typeString": "struct ConverterBase.Reserve storage ref" - } - }, - "id": 13630, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "isSet", - "nodeType": "MemberAccess", - "referencedDeclaration": 2505, - "src": "13455:33:23", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552525f494e56414c49445f52455345525645", - "id": 13631, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13490:21:23", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_2f153897d46b1410527faf37dfe95496d4a79980282840ba17da0adc4406792c", - "typeString": "literal_string \"ERR_INVALID_RESERVE\"" - }, - "value": "ERR_INVALID_RESERVE" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_2f153897d46b1410527faf37dfe95496d4a79980282840ba17da0adc4406792c", - "typeString": "literal_string \"ERR_INVALID_RESERVE\"" - } - ], - "id": 13624, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 22341, - 22342 - ], - "referencedDeclaration": 22342, - "src": "13447:7:23", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 13632, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13447:65:23", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 13633, - "nodeType": "ExpressionStatement", - "src": "13447:65:23" - }, - { - "body": { - "id": 13653, - "nodeType": "Block", - "src": "13556:104:23", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - "id": 13650, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 13644, - "name": "reserveTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2516, - "src": "13579:13:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_storage", - "typeString": "contract IERC20Token[] storage ref" - } - }, - "id": 13646, - "indexExpression": { - "argumentTypes": null, - "id": 13645, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13588, - "src": "13593:1:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "13579:16:23", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 13647, - "name": "_reserveTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13579, - "src": "13599:14:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", - "typeString": "contract IERC20Token[] memory" - } - }, - "id": 13649, - "indexExpression": { - "argumentTypes": null, - "id": 13648, - "name": "j", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13591, - "src": "13614:1:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "13599:17:23", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "src": "13579:37:23", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 13652, - "nodeType": "IfStatement", - "src": "13575:69:23", - "trueBody": { - "id": 13651, - "nodeType": "Break", - "src": "13639:5:23" - } - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 13640, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 13638, - "name": "j", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13591, - "src": "13539:1:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "id": 13639, - "name": "length", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13594, - "src": "13543:6:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "13539:10:23", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 13654, - "initializationExpression": { - "expression": { - "argumentTypes": null, - "id": 13636, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 13634, - "name": "j", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13591, - "src": "13532:1:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 13635, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13536:1:23", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "13532:5:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 13637, - "nodeType": "ExpressionStatement", - "src": "13532:5:23" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 13642, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "13551:3:23", - "subExpression": { - "argumentTypes": null, - "id": 13641, - "name": "j", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13591, - "src": "13551:1:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 13643, - "nodeType": "ExpressionStatement", - "src": "13551:3:23" - }, - "nodeType": "ForStatement", - "src": "13527:133:23" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 13658, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 13656, - "name": "j", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13591, - "src": "13770:1:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "id": 13657, - "name": "length", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13594, - "src": "13774:6:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "13770:10:23", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552525f494e56414c49445f52455345525645", - "id": 13659, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13782:21:23", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_2f153897d46b1410527faf37dfe95496d4a79980282840ba17da0adc4406792c", - "typeString": "literal_string \"ERR_INVALID_RESERVE\"" - }, - "value": "ERR_INVALID_RESERVE" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_2f153897d46b1410527faf37dfe95496d4a79980282840ba17da0adc4406792c", - "typeString": "literal_string \"ERR_INVALID_RESERVE\"" - } - ], - "id": 13655, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 22341, - 22342 - ], - "referencedDeclaration": 22342, - "src": "13762:7:23", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 13660, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13762:42:23", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 13661, - "nodeType": "ExpressionStatement", - "src": "13762:42:23" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 13667, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 13663, - "name": "_reserveAmounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13582, - "src": "13908:15:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 13665, - "indexExpression": { - "argumentTypes": null, - "id": 13664, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13588, - "src": "13924:1:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "13908:18:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 13666, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13929:1:23", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "13908:22:23", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552525f494e56414c49445f414d4f554e54", - "id": 13668, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13932:20:23", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c44007bfe4e704be0ed1393660a827b4f88825f4b6fe1bc10cd38fc3fcb7d839", - "typeString": "literal_string \"ERR_INVALID_AMOUNT\"" - }, - "value": "ERR_INVALID_AMOUNT" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_c44007bfe4e704be0ed1393660a827b4f88825f4b6fe1bc10cd38fc3fcb7d839", - "typeString": "literal_string \"ERR_INVALID_AMOUNT\"" - } - ], - "id": 13662, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 22341, - 22342 - ], - "referencedDeclaration": 22342, - "src": "13900:7:23", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 13669, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13900:53:23", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 13670, - "nodeType": "ExpressionStatement", - "src": "13900:53:23" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 13620, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 13618, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13588, - "src": "13327:1:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "id": 13619, - "name": "length", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13594, - "src": "13331:6:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "13327:10:23", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 13672, - "initializationExpression": { - "expression": { - "argumentTypes": null, - "id": 13616, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 13614, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13588, - "src": "13320:1:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 13615, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13324:1:23", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "13320:5:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 13617, - "nodeType": "ExpressionStatement", - "src": "13320:5:23" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 13622, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "13339:3:23", - "subExpression": { - "argumentTypes": null, - "id": 13621, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13588, - "src": "13339:1:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 13623, - "nodeType": "ExpressionStatement", - "src": "13339:3:23" - }, - "nodeType": "ForStatement", - "src": "13315:650:23" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 13676, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 13674, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13584, - "src": "14052:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 13675, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14062:1:23", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "14052:11:23", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552525f5a45524f5f414d4f554e54", - "id": 13677, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14065:17:23", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_7361098e42735bca910fe31e755673f84106720004757c7a37e5f52f92430b9e", - "typeString": "literal_string \"ERR_ZERO_AMOUNT\"" - }, - "value": "ERR_ZERO_AMOUNT" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_7361098e42735bca910fe31e755673f84106720004757c7a37e5f52f92430b9e", - "typeString": "literal_string \"ERR_ZERO_AMOUNT\"" - } - ], - "id": 13673, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 22341, - 22342 - ], - "referencedDeclaration": 22342, - "src": "14044:7:23", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 13678, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14044:39:23", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 13679, - "nodeType": "ExpressionStatement", - "src": "14044:39:23" - } - ] - }, - "documentation": "@dev verifies that a given array of tokens is identical to the converter's array of reserve tokens\r\nwe take this input in order to allow specifying the corresponding reserve amounts in any order\r\n\n * @param _reserveTokens array of reserve tokens\r\n@param _reserveAmounts array of reserve amounts\r\n@param _amount token amount\r", - "id": 13681, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "verifyLiquidityInput", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 13585, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 13579, - "name": "_reserveTokens", - "nodeType": "VariableDeclaration", - "scope": 13681, - "src": "12963:35:23", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", - "typeString": "contract IERC20Token[]" - }, - "typeName": { - "baseType": { - "contractScope": null, - "id": 13577, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "12963:11:23", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "id": 13578, - "length": null, - "nodeType": "ArrayTypeName", - "src": "12963:13:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_storage_ptr", - "typeString": "contract IERC20Token[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 13582, - "name": "_reserveAmounts", - "nodeType": "VariableDeclaration", - "scope": 13681, - "src": "13000:32:23", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 13580, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "13000:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 13581, - "length": null, - "nodeType": "ArrayTypeName", - "src": "13000:9:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 13584, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 13681, - "src": "13034:15:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 13583, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "13034:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "12962:88:23" - }, - "payable": false, - "returnParameters": { - "id": 13586, - "nodeType": "ParameterList", - "parameters": [], - "src": "13064:0:23" - }, - "scope": 14409, - "src": "12933:1158:23", - "stateMutability": "view", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 13709, - "nodeType": "Block", - "src": "14523:209:23", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 13696, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 13694, - "name": "_totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13689, - "src": "14538:12:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 13695, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14554:1:23", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "14538:17:23", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 13702, - "nodeType": "IfStatement", - "src": "14534:99:23", - "trueBody": { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 13698, - "name": "_reserveTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13684, - "src": "14601:14:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", - "typeString": "contract IERC20Token[] memory" - } - }, - { - "argumentTypes": null, - "id": 13699, - "name": "_reserveAmounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13687, - "src": "14617:15:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", - "typeString": "contract IERC20Token[] memory" - }, - { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - ], - "id": 13697, - "name": "addLiquidityToEmptyPool", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13807, - "src": "14577:23:23", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$_t_uint256_$", - "typeString": "function (contract IERC20Token[] memory,uint256[] memory) returns (uint256)" - } - }, - "id": 13700, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14577:56:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 13693, - "id": 13701, - "nodeType": "Return", - "src": "14570:63:23" - } - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 13704, - "name": "_reserveTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13684, - "src": "14678:14:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", - "typeString": "contract IERC20Token[] memory" - } - }, - { - "argumentTypes": null, - "id": 13705, - "name": "_reserveAmounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13687, - "src": "14694:15:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - { - "argumentTypes": null, - "id": 13706, - "name": "_totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13689, - "src": "14711:12:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", - "typeString": "contract IERC20Token[] memory" - }, - { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 13703, - "name": "addLiquidityToNonEmptyPool", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13986, - "src": "14651:26:23", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (contract IERC20Token[] memory,uint256[] memory,uint256) returns (uint256)" - } - }, - "id": 13707, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14651:73:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 13693, - "id": 13708, - "nodeType": "Return", - "src": "14644:80:23" - } - ] - }, - "documentation": "@dev adds liquidity (reserve) to the pool\r\n\n * @param _reserveTokens address of each reserve token\r\n@param _reserveAmounts amount of each reserve token\r\n@param _totalSupply token total supply\r", - "id": 13710, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "addLiquidityToPool", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 13690, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 13684, - "name": "_reserveTokens", - "nodeType": "VariableDeclaration", - "scope": 13710, - "src": "14381:35:23", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", - "typeString": "contract IERC20Token[]" - }, - "typeName": { - "baseType": { - "contractScope": null, - "id": 13682, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "14381:11:23", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "id": 13683, - "length": null, - "nodeType": "ArrayTypeName", - "src": "14381:13:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_storage_ptr", - "typeString": "contract IERC20Token[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 13687, - "name": "_reserveAmounts", - "nodeType": "VariableDeclaration", - "scope": 13710, - "src": "14418:32:23", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 13685, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "14418:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 13686, - "length": null, - "nodeType": "ArrayTypeName", - "src": "14418:9:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 13689, - "name": "_totalSupply", - "nodeType": "VariableDeclaration", - "scope": 13710, - "src": "14452:20:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 13688, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "14452:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14380:93:23" - }, - "payable": false, - "returnParameters": { - "id": 13693, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 13692, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 13710, - "src": "14509:7:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 13691, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "14509:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14508:9:23" - }, - "scope": 14409, - "src": "14353:379:23", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 13806, - "nodeType": "Block", - "src": "15111:983:23", - "statements": [ - { - "assignments": [ - 13722 - ], - "declarations": [ - { - "constant": false, - "id": 13722, - "name": "amount", - "nodeType": "VariableDeclaration", - "scope": 13807, - "src": "15207:14:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 13721, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15207:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 13726, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 13724, - "name": "_reserveAmounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13716, - "src": "15238:15:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - ], - "id": 13723, - "name": "geometricMean", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14292, - "src": "15224:13:23", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_array$_t_uint256_$dyn_memory_ptr_$returns$_t_uint256_$", - "typeString": "function (uint256[] memory) pure returns (uint256)" - } - }, - "id": 13725, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15224:30:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "15207:47:23" - }, - { - "body": { - "id": 13802, - "nodeType": "Block", - "src": "15398:663:23", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 13742, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 13738, - "name": "_reserveTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13713, - "src": "15417:14:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", - "typeString": "contract IERC20Token[] memory" - } - }, - "id": 13740, - "indexExpression": { - "argumentTypes": null, - "id": 13739, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13728, - "src": "15432:1:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "15417:17:23", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 13741, - "name": "ETH_RESERVE_ADDRESS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2495, - "src": "15438:19:23", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "15417:40:23", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 13755, - "nodeType": "IfStatement", - "src": "15413:199:23", - "trueBody": { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 13744, - "name": "_reserveTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13713, - "src": "15556:14:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", - "typeString": "contract IERC20Token[] memory" - } - }, - "id": 13746, - "indexExpression": { - "argumentTypes": null, - "id": 13745, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13728, - "src": "15571:1:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "15556:17:23", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 13747, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22338, - "src": "15575:3:23", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 13748, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "15575:10:23", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 13749, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22439, - "src": "15587:4:23", - "typeDescriptions": { - "typeIdentifier": "t_contract$_LiquidityPoolV1Converter_$14409", - "typeString": "contract LiquidityPoolV1Converter" - } - }, - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 13750, - "name": "_reserveAmounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13716, - "src": "15593:15:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 13752, - "indexExpression": { - "argumentTypes": null, - "id": 13751, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13728, - "src": "15609:1:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "15593:18:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_contract$_LiquidityPoolV1Converter_$14409", - "typeString": "contract LiquidityPoolV1Converter" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 13743, - "name": "safeTransferFrom", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21904, - "src": "15539:16:23", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20Token_$20240_$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (contract IERC20Token,address,address,uint256)" - } - }, - "id": 13753, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15539:73:23", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 13754, - "nodeType": "ExpressionStatement", - "src": "15539:73:23" - } - }, - { - "expression": { - "argumentTypes": null, - "id": 13765, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 13756, - "name": "reserves", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2520, - "src": "15629:8:23", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Reserve_$2506_storage_$", - "typeString": "mapping(address => struct ConverterBase.Reserve storage ref)" - } - }, - "id": 13760, - "indexExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 13757, - "name": "_reserveTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13713, - "src": "15638:14:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", - "typeString": "contract IERC20Token[] memory" - } - }, - "id": 13759, - "indexExpression": { - "argumentTypes": null, - "id": 13758, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13728, - "src": "15653:1:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "15638:17:23", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "15629:27:23", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Reserve_$2506_storage", - "typeString": "struct ConverterBase.Reserve storage ref" - } - }, - "id": 13761, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "balance", - "nodeType": "MemberAccess", - "referencedDeclaration": 2497, - "src": "15629:35:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 13762, - "name": "_reserveAmounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13716, - "src": "15667:15:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 13764, - "indexExpression": { - "argumentTypes": null, - "id": 13763, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13728, - "src": "15683:1:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "15667:18:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "15629:56:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 13766, - "nodeType": "ExpressionStatement", - "src": "15629:56:23" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 13768, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22338, - "src": "15722:3:23", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 13769, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "15722:10:23", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 13770, - "name": "_reserveTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13713, - "src": "15734:14:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", - "typeString": "contract IERC20Token[] memory" - } - }, - "id": 13772, - "indexExpression": { - "argumentTypes": null, - "id": 13771, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13728, - "src": "15749:1:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "15734:17:23", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 13773, - "name": "_reserveAmounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13716, - "src": "15753:15:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 13775, - "indexExpression": { - "argumentTypes": null, - "id": 13774, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13728, - "src": "15769:1:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "15753:18:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 13776, - "name": "_reserveAmounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13716, - "src": "15773:15:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 13778, - "indexExpression": { - "argumentTypes": null, - "id": 13777, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13728, - "src": "15789:1:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "15773:18:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 13779, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13722, - "src": "15793:6:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 13767, - "name": "LiquidityAdded", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6165, - "src": "15707:14:23", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256,uint256,uint256)" - } - }, - "id": 13780, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15707:93:23", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 13781, - "nodeType": "EmitStatement", - "src": "15702:98:23" - }, - { - "assignments": [ - 13783 - ], - "declarations": [ - { - "constant": false, - "id": 13783, - "name": "reserveWeight", - "nodeType": "VariableDeclaration", - "scope": 13807, - "src": "15889:20:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 13782, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "15889:6:23", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 13790, - "initialValue": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 13784, - "name": "reserves", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2520, - "src": "15912:8:23", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Reserve_$2506_storage_$", - "typeString": "mapping(address => struct ConverterBase.Reserve storage ref)" - } - }, - "id": 13788, - "indexExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 13785, - "name": "_reserveTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13713, - "src": "15921:14:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", - "typeString": "contract IERC20Token[] memory" - } - }, - "id": 13787, - "indexExpression": { - "argumentTypes": null, - "id": 13786, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13728, - "src": "15936:1:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "15921:17:23", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "15912:27:23", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Reserve_$2506_storage", - "typeString": "struct ConverterBase.Reserve storage ref" - } - }, - "id": 13789, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "weight", - "nodeType": "MemberAccess", - "referencedDeclaration": 2499, - "src": "15912:34:23", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "15889:57:23" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 13792, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13722, - "src": "15988:6:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 13793, - "name": "_reserveTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13713, - "src": "15996:14:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", - "typeString": "contract IERC20Token[] memory" - } - }, - "id": 13795, - "indexExpression": { - "argumentTypes": null, - "id": 13794, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13728, - "src": "16011:1:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "15996:17:23", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 13796, - "name": "_reserveAmounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13716, - "src": "16015:15:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 13798, - "indexExpression": { - "argumentTypes": null, - "id": 13797, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13728, - "src": "16031:1:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16015:18:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 13799, - "name": "reserveWeight", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13783, - "src": "16035:13:23", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - ], - "id": 13791, - "name": "dispatchPoolTokenRateEvent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14408, - "src": "15961:26:23", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_contract$_IERC20Token_$20240_$_t_uint256_$_t_uint32_$returns$__$", - "typeString": "function (uint256,contract IERC20Token,uint256,uint32)" - } - }, - "id": 13800, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15961:88:23", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 13801, - "nodeType": "ExpressionStatement", - "src": "15961:88:23" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 13734, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 13731, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13728, - "src": "15366:1:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 13732, - "name": "_reserveTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13713, - "src": "15370:14:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", - "typeString": "contract IERC20Token[] memory" - } - }, - "id": 13733, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "15370:21:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "15366:25:23", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 13803, - "initializationExpression": { - "assignments": [ - 13728 - ], - "declarations": [ - { - "constant": false, - "id": 13728, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 13807, - "src": "15351:9:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 13727, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15351:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 13730, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 13729, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15363:1:23", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "15351:13:23" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 13736, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "15393:3:23", - "subExpression": { - "argumentTypes": null, - "id": 13735, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13728, - "src": "15393:1:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 13737, - "nodeType": "ExpressionStatement", - "src": "15393:3:23" - }, - "nodeType": "ForStatement", - "src": "15346:715:23" - }, - { - "expression": { - "argumentTypes": null, - "id": 13804, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13722, - "src": "16080:6:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 13720, - "id": 13805, - "nodeType": "Return", - "src": "16073:13:23" - } - ] - }, - "documentation": "@dev adds liquidity (reserve) to the pool when it's empty\r\n\n * @param _reserveTokens address of each reserve token\r\n@param _reserveAmounts amount of each reserve token\r", - "id": 13807, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "addLiquidityToEmptyPool", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 13717, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 13713, - "name": "_reserveTokens", - "nodeType": "VariableDeclaration", - "scope": 13807, - "src": "14991:35:23", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", - "typeString": "contract IERC20Token[]" - }, - "typeName": { - "baseType": { - "contractScope": null, - "id": 13711, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "14991:11:23", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "id": 13712, - "length": null, - "nodeType": "ArrayTypeName", - "src": "14991:13:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_storage_ptr", - "typeString": "contract IERC20Token[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 13716, - "name": "_reserveAmounts", - "nodeType": "VariableDeclaration", - "scope": 13807, - "src": "15028:32:23", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 13714, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15028:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 13715, - "length": null, - "nodeType": "ArrayTypeName", - "src": "15028:9:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14990:71:23" - }, - "payable": false, - "returnParameters": { - "id": 13720, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 13719, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 13807, - "src": "15097:7:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 13718, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15097:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15096:9:23" - }, - "scope": 14409, - "src": "14958:1136:23", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 13985, - "nodeType": "Block", - "src": "16554:1832:23", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 13820, - "name": "syncReserveBalances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3263, - "src": "16565:19:23", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", - "typeString": "function ()" - } - }, - "id": 13821, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16565:21:23", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 13822, - "nodeType": "ExpressionStatement", - "src": "16565:21:23" - }, - { - "expression": { - "argumentTypes": null, - "id": 13835, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 13823, - "name": "reserves", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2520, - "src": "16597:8:23", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Reserve_$2506_storage_$", - "typeString": "mapping(address => struct ConverterBase.Reserve storage ref)" - } - }, - "id": 13825, - "indexExpression": { - "argumentTypes": null, - "id": 13824, - "name": "ETH_RESERVE_ADDRESS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2495, - "src": "16606:19:23", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16597:29:23", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Reserve_$2506_storage", - "typeString": "struct ConverterBase.Reserve storage ref" - } - }, - "id": 13826, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "balance", - "nodeType": "MemberAccess", - "referencedDeclaration": 2497, - "src": "16597:37:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 13832, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22338, - "src": "16679:3:23", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 13833, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "16679:9:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 13827, - "name": "reserves", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2520, - "src": "16637:8:23", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Reserve_$2506_storage_$", - "typeString": "mapping(address => struct ConverterBase.Reserve storage ref)" - } - }, - "id": 13829, - "indexExpression": { - "argumentTypes": null, - "id": 13828, - "name": "ETH_RESERVE_ADDRESS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2495, - "src": "16646:19:23", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16637:29:23", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Reserve_$2506_storage", - "typeString": "struct ConverterBase.Reserve storage ref" - } - }, - "id": 13830, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "balance", - "nodeType": "MemberAccess", - "referencedDeclaration": 2497, - "src": "16637:37:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 13831, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 21758, - "src": "16637:41:23", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 13834, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16637:52:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "16597:92:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 13836, - "nodeType": "ExpressionStatement", - "src": "16597:92:23" - }, - { - "assignments": [ - 13838 - ], - "declarations": [ - { - "constant": false, - "id": 13838, - "name": "formula", - "nodeType": "VariableDeclaration", - "scope": 13986, - "src": "16702:26:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISovrynSwapFormula_$12240", - "typeString": "contract ISovrynSwapFormula" - }, - "typeName": { - "contractScope": null, - "id": 13837, - "name": "ISovrynSwapFormula", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 12240, - "src": "16702:18:23", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISovrynSwapFormula_$12240", - "typeString": "contract ISovrynSwapFormula" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 13844, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 13841, - "name": "SOVRYNSWAP_FORMULA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20758, - "src": "16760:18:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 13840, - "name": "addressOf", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20931, - "src": "16750:9:23", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$", - "typeString": "function (bytes32) view returns (address)" - } - }, - "id": 13842, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16750:29:23", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 13839, - "name": "ISovrynSwapFormula", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12240, - "src": "16731:18:23", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ISovrynSwapFormula_$12240_$", - "typeString": "type(contract ISovrynSwapFormula)" - } - }, - "id": 13843, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16731:49:23", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISovrynSwapFormula_$12240", - "typeString": "contract ISovrynSwapFormula" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "16702:78:23" - }, - { - "assignments": [ - 13846 - ], - "declarations": [ - { - "constant": false, - "id": 13846, - "name": "amount", - "nodeType": "VariableDeclaration", - "scope": 13986, - "src": "16791:14:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 13845, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "16791:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 13853, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 13848, - "name": "formula", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13838, - "src": "16820:7:23", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISovrynSwapFormula_$12240", - "typeString": "contract ISovrynSwapFormula" - } - }, - { - "argumentTypes": null, - "id": 13849, - "name": "_totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13815, - "src": "16829:12:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 13850, - "name": "_reserveTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13810, - "src": "16843:14:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", - "typeString": "contract IERC20Token[] memory" - } - }, - { - "argumentTypes": null, - "id": 13851, - "name": "_reserveAmounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13813, - "src": "16859:15:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_ISovrynSwapFormula_$12240", - "typeString": "contract ISovrynSwapFormula" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", - "typeString": "contract IERC20Token[] memory" - }, - { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - ], - "id": 13847, - "name": "getMinShare", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14195, - "src": "16808:11:23", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_contract$_ISovrynSwapFormula_$12240_$_t_uint256_$_t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$_t_uint256_$", - "typeString": "function (contract ISovrynSwapFormula,uint256,contract IERC20Token[] memory,uint256[] memory) view returns (uint256)" - } - }, - "id": 13852, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16808:67:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "16791:84:23" - }, - { - "assignments": [ - 13855 - ], - "declarations": [ - { - "constant": false, - "id": 13855, - "name": "newPoolTokenSupply", - "nodeType": "VariableDeclaration", - "scope": 13986, - "src": "16886:26:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 13854, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "16886:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 13860, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 13858, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13846, - "src": "16932:6:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 13856, - "name": "_totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13815, - "src": "16915:12:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 13857, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 21737, - "src": "16915:16:23", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 13859, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16915:24:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "16886:53:23" - }, - { - "body": { - "id": 13981, - "nodeType": "Block", - "src": "17004:1349:23", - "statements": [ - { - "assignments": [ - 13873 - ], - "declarations": [ - { - "constant": false, - "id": 13873, - "name": "reserveToken", - "nodeType": "VariableDeclaration", - "scope": 13986, - "src": "17019:24:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - "typeName": { - "contractScope": null, - "id": 13872, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "17019:11:23", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 13877, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 13874, - "name": "_reserveTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13810, - "src": "17046:14:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", - "typeString": "contract IERC20Token[] memory" - } - }, - "id": 13876, - "indexExpression": { - "argumentTypes": null, - "id": 13875, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13862, - "src": "17061:1:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "17046:17:23", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "17019:44:23" - }, - { - "assignments": [ - 13879 - ], - "declarations": [ - { - "constant": false, - "id": 13879, - "name": "rsvBalance", - "nodeType": "VariableDeclaration", - "scope": 13986, - "src": "17078:18:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 13878, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "17078:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 13884, - "initialValue": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 13880, - "name": "reserves", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2520, - "src": "17099:8:23", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Reserve_$2506_storage_$", - "typeString": "mapping(address => struct ConverterBase.Reserve storage ref)" - } - }, - "id": 13882, - "indexExpression": { - "argumentTypes": null, - "id": 13881, - "name": "reserveToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13873, - "src": "17108:12:23", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "17099:22:23", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Reserve_$2506_storage", - "typeString": "struct ConverterBase.Reserve storage ref" - } - }, - "id": 13883, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "balance", - "nodeType": "MemberAccess", - "referencedDeclaration": 2497, - "src": "17099:30:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "17078:51:23" - }, - { - "assignments": [ - 13886 - ], - "declarations": [ - { - "constant": false, - "id": 13886, - "name": "reserveAmount", - "nodeType": "VariableDeclaration", - "scope": 13986, - "src": "17144:21:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 13885, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "17144:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 13894, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 13889, - "name": "_totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13815, - "src": "17185:12:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 13890, - "name": "rsvBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13879, - "src": "17199:10:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 13891, - "name": "reserveRatio", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2523, - "src": "17211:12:23", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - { - "argumentTypes": null, - "id": 13892, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13846, - "src": "17225:6:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 13887, - "name": "formula", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13838, - "src": "17168:7:23", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISovrynSwapFormula_$12240", - "typeString": "contract ISovrynSwapFormula" - } - }, - "id": 13888, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "fundCost", - "nodeType": "MemberAccess", - "referencedDeclaration": 12196, - "src": "17168:16:23", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_uint256_$_t_uint256_$_t_uint32_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256,uint256,uint32,uint256) view external returns (uint256)" - } - }, - "id": 13893, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17168:64:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "17144:88:23" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 13898, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 13896, - "name": "reserveAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13886, - "src": "17255:13:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 13897, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17271:1:23", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "17255:17:23", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552525f5a45524f5f5441524745545f414d4f554e54", - "id": 13899, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17274:24:23", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_29cb0846c2d5a859f661a5b4c4a8be47a80ca27c24af6f007bda101871b53e03", - "typeString": "literal_string \"ERR_ZERO_TARGET_AMOUNT\"" - }, - "value": "ERR_ZERO_TARGET_AMOUNT" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_29cb0846c2d5a859f661a5b4c4a8be47a80ca27c24af6f007bda101871b53e03", - "typeString": "literal_string \"ERR_ZERO_TARGET_AMOUNT\"" - } - ], - "id": 13895, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 22341, - 22342 - ], - "referencedDeclaration": 22342, - "src": "17247:7:23", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 13900, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17247:52:23", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 13901, - "nodeType": "ExpressionStatement", - "src": "17247:52:23" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 13907, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 13903, - "name": "reserveAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13886, - "src": "17321:13:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 13904, - "name": "_reserveAmounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13813, - "src": "17338:15:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 13906, - "indexExpression": { - "argumentTypes": null, - "id": 13905, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13862, - "src": "17354:1:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "17338:18:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "17321:35:23", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 13902, - "name": "assert", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22327, - "src": "17314:6:23", - "typeDescriptions": { - "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 13908, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17314:43:23", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 13909, - "nodeType": "ExpressionStatement", - "src": "17314:43:23" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 13912, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 13910, - "name": "reserveToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13873, - "src": "17461:12:23", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 13911, - "name": "ETH_RESERVE_ADDRESS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2495, - "src": "17477:19:23", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "17461:35:23", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 13925, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 13921, - "name": "_reserveAmounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13813, - "src": "17665:15:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 13923, - "indexExpression": { - "argumentTypes": null, - "id": 13922, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13862, - "src": "17681:1:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "17665:18:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "id": 13924, - "name": "reserveAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13886, - "src": "17686:13:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "17665:34:23", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 13938, - "nodeType": "IfStatement", - "src": "17661:165:23", - "trueBody": { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 13935, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 13931, - "name": "_reserveAmounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13813, - "src": "17791:15:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 13933, - "indexExpression": { - "argumentTypes": null, - "id": 13932, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13862, - "src": "17807:1:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "17791:18:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "id": 13934, - "name": "reserveAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13886, - "src": "17812:13:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "17791:34:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 13926, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22338, - "src": "17771:3:23", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 13929, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "17771:10:23", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 13930, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "17771:19:23", - "typeDescriptions": { - "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 13936, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17771:55:23", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 13937, - "nodeType": "ExpressionStatement", - "src": "17771:55:23" - } - }, - "id": 13939, - "nodeType": "IfStatement", - "src": "17457:369:23", - "trueBody": { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 13914, - "name": "reserveToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13873, - "src": "17595:12:23", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 13915, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22338, - "src": "17609:3:23", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 13916, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "17609:10:23", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 13917, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22439, - "src": "17621:4:23", - "typeDescriptions": { - "typeIdentifier": "t_contract$_LiquidityPoolV1Converter_$14409", - "typeString": "contract LiquidityPoolV1Converter" - } - }, - { - "argumentTypes": null, - "id": 13918, - "name": "reserveAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13886, - "src": "17627:13:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_contract$_LiquidityPoolV1Converter_$14409", - "typeString": "contract LiquidityPoolV1Converter" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 13913, - "name": "safeTransferFrom", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21904, - "src": "17578:16:23", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20Token_$20240_$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (contract IERC20Token,address,address,uint256)" - } - }, - "id": 13919, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17578:63:23", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 13920, - "nodeType": "ExpressionStatement", - "src": "17578:63:23" - } - }, - { - "assignments": [ - 13941 - ], - "declarations": [ - { - "constant": false, - "id": 13941, - "name": "newReserveBalance", - "nodeType": "VariableDeclaration", - "scope": 13986, - "src": "17843:25:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 13940, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "17843:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 13946, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 13944, - "name": "reserveAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13886, - "src": "17886:13:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 13942, - "name": "rsvBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13879, - "src": "17871:10:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 13943, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 21737, - "src": "17871:14:23", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 13945, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17871:29:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "17843:57:23" - }, - { - "expression": { - "argumentTypes": null, - "id": 13952, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 13947, - "name": "reserves", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2520, - "src": "17915:8:23", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Reserve_$2506_storage_$", - "typeString": "mapping(address => struct ConverterBase.Reserve storage ref)" - } - }, - "id": 13949, - "indexExpression": { - "argumentTypes": null, - "id": 13948, - "name": "reserveToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13873, - "src": "17924:12:23", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "17915:22:23", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Reserve_$2506_storage", - "typeString": "struct ConverterBase.Reserve storage ref" - } - }, - "id": 13950, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "balance", - "nodeType": "MemberAccess", - "referencedDeclaration": 2497, - "src": "17915:30:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 13951, - "name": "newReserveBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13941, - "src": "17948:17:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "17915:50:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 13953, - "nodeType": "ExpressionStatement", - "src": "17915:50:23" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 13955, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22338, - "src": "18002:3:23", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 13956, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "18002:10:23", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 13957, - "name": "reserveToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13873, - "src": "18014:12:23", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - { - "argumentTypes": null, - "id": 13958, - "name": "reserveAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13886, - "src": "18028:13:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 13959, - "name": "newReserveBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13941, - "src": "18043:17:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 13960, - "name": "newPoolTokenSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13855, - "src": "18062:18:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 13954, - "name": "LiquidityAdded", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6165, - "src": "17987:14:23", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256,uint256,uint256)" - } - }, - "id": 13961, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17987:94:23", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 13962, - "nodeType": "EmitStatement", - "src": "17982:99:23" - }, - { - "assignments": [ - 13964 - ], - "declarations": [ - { - "constant": false, - "id": 13964, - "name": "reserveWeight", - "nodeType": "VariableDeclaration", - "scope": 13986, - "src": "18170:20:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 13963, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "18170:6:23", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 13971, - "initialValue": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 13965, - "name": "reserves", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2520, - "src": "18193:8:23", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Reserve_$2506_storage_$", - "typeString": "mapping(address => struct ConverterBase.Reserve storage ref)" - } - }, - "id": 13969, - "indexExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 13966, - "name": "_reserveTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13810, - "src": "18202:14:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", - "typeString": "contract IERC20Token[] memory" - } - }, - "id": 13968, - "indexExpression": { - "argumentTypes": null, - "id": 13967, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13862, - "src": "18217:1:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "18202:17:23", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "18193:27:23", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Reserve_$2506_storage", - "typeString": "struct ConverterBase.Reserve storage ref" - } - }, - "id": 13970, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "weight", - "nodeType": "MemberAccess", - "referencedDeclaration": 2499, - "src": "18193:34:23", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "18170:57:23" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 13973, - "name": "newPoolTokenSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13855, - "src": "18269:18:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 13974, - "name": "_reserveTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13810, - "src": "18289:14:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", - "typeString": "contract IERC20Token[] memory" - } - }, - "id": 13976, - "indexExpression": { - "argumentTypes": null, - "id": 13975, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13862, - "src": "18304:1:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "18289:17:23", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - { - "argumentTypes": null, - "id": 13977, - "name": "newReserveBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13941, - "src": "18308:17:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 13978, - "name": "reserveWeight", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13964, - "src": "18327:13:23", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - ], - "id": 13972, - "name": "dispatchPoolTokenRateEvent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14408, - "src": "18242:26:23", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_contract$_IERC20Token_$20240_$_t_uint256_$_t_uint32_$returns$__$", - "typeString": "function (uint256,contract IERC20Token,uint256,uint32)" - } - }, - "id": 13979, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18242:99:23", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 13980, - "nodeType": "ExpressionStatement", - "src": "18242:99:23" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 13868, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 13865, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13862, - "src": "16972:1:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 13866, - "name": "_reserveTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13810, - "src": "16976:14:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", - "typeString": "contract IERC20Token[] memory" - } - }, - "id": 13867, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "16976:21:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "16972:25:23", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 13982, - "initializationExpression": { - "assignments": [ - 13862 - ], - "declarations": [ - { - "constant": false, - "id": 13862, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 13986, - "src": "16957:9:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 13861, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "16957:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 13864, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 13863, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16969:1:23", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "16957:13:23" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 13870, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "16999:3:23", - "subExpression": { - "argumentTypes": null, - "id": 13869, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13862, - "src": "16999:1:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 13871, - "nodeType": "ExpressionStatement", - "src": "16999:3:23" - }, - "nodeType": "ForStatement", - "src": "16952:1401:23" - }, - { - "expression": { - "argumentTypes": null, - "id": 13983, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13846, - "src": "18372:6:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 13819, - "id": 13984, - "nodeType": "Return", - "src": "18365:13:23" - } - ] - }, - "documentation": "@dev adds liquidity (reserve) to the pool when it's not empty\r\n\n * @param _reserveTokens address of each reserve token\r\n@param _reserveAmounts amount of each reserve token\r\n@param _totalSupply token total supply\r", - "id": 13986, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "addLiquidityToNonEmptyPool", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 13816, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 13810, - "name": "_reserveTokens", - "nodeType": "VariableDeclaration", - "scope": 13986, - "src": "16412:35:23", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", - "typeString": "contract IERC20Token[]" - }, - "typeName": { - "baseType": { - "contractScope": null, - "id": 13808, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "16412:11:23", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "id": 13809, - "length": null, - "nodeType": "ArrayTypeName", - "src": "16412:13:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_storage_ptr", - "typeString": "contract IERC20Token[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 13813, - "name": "_reserveAmounts", - "nodeType": "VariableDeclaration", - "scope": 13986, - "src": "16449:32:23", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 13811, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "16449:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 13812, - "length": null, - "nodeType": "ArrayTypeName", - "src": "16449:9:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 13815, - "name": "_totalSupply", - "nodeType": "VariableDeclaration", - "scope": 13986, - "src": "16483:20:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 13814, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "16483:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16411:93:23" - }, - "payable": false, - "returnParameters": { - "id": 13819, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 13818, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 13986, - "src": "16540:7:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 13817, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "16540:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16539:9:23" - }, - "scope": 14409, - "src": "16376:2010:23", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 14118, - "nodeType": "Block", - "src": "18920:1398:23", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 13999, - "name": "syncReserveBalances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3263, - "src": "18931:19:23", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", - "typeString": "function ()" - } - }, - "id": 14000, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18931:21:23", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 14001, - "nodeType": "ExpressionStatement", - "src": "18931:21:23" - }, - { - "assignments": [ - 14003 - ], - "declarations": [ - { - "constant": false, - "id": 14003, - "name": "formula", - "nodeType": "VariableDeclaration", - "scope": 14119, - "src": "18965:26:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISovrynSwapFormula_$12240", - "typeString": "contract ISovrynSwapFormula" - }, - "typeName": { - "contractScope": null, - "id": 14002, - "name": "ISovrynSwapFormula", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 12240, - "src": "18965:18:23", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISovrynSwapFormula_$12240", - "typeString": "contract ISovrynSwapFormula" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 14009, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 14006, - "name": "SOVRYNSWAP_FORMULA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20758, - "src": "19023:18:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 14005, - "name": "addressOf", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20931, - "src": "19013:9:23", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$", - "typeString": "function (bytes32) view returns (address)" - } - }, - "id": 14007, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19013:29:23", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 14004, - "name": "ISovrynSwapFormula", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12240, - "src": "18994:18:23", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ISovrynSwapFormula_$12240_$", - "typeString": "type(contract ISovrynSwapFormula)" - } - }, - "id": 14008, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18994:49:23", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISovrynSwapFormula_$12240", - "typeString": "contract ISovrynSwapFormula" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "18965:78:23" - }, - { - "assignments": [ - 14011 - ], - "declarations": [ - { - "constant": false, - "id": 14011, - "name": "newPoolTokenSupply", - "nodeType": "VariableDeclaration", - "scope": 14119, - "src": "19054:26:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 14010, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "19054:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 14016, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 14014, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13996, - "src": "19100:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 14012, - "name": "_totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13994, - "src": "19083:12:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 14013, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 21758, - "src": "19083:16:23", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 14015, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19083:25:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "19054:54:23" - }, - { - "body": { - "id": 14116, - "nodeType": "Block", - "src": "19173:1138:23", - "statements": [ - { - "assignments": [ - 14029 - ], - "declarations": [ - { - "constant": false, - "id": 14029, - "name": "reserveToken", - "nodeType": "VariableDeclaration", - "scope": 14119, - "src": "19188:24:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - "typeName": { - "contractScope": null, - "id": 14028, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "19188:11:23", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 14033, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 14030, - "name": "_reserveTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13989, - "src": "19215:14:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", - "typeString": "contract IERC20Token[] memory" - } - }, - "id": 14032, - "indexExpression": { - "argumentTypes": null, - "id": 14031, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14018, - "src": "19230:1:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "19215:17:23", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "19188:44:23" - }, - { - "assignments": [ - 14035 - ], - "declarations": [ - { - "constant": false, - "id": 14035, - "name": "rsvBalance", - "nodeType": "VariableDeclaration", - "scope": 14119, - "src": "19247:18:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 14034, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "19247:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 14040, - "initialValue": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 14036, - "name": "reserves", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2520, - "src": "19268:8:23", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Reserve_$2506_storage_$", - "typeString": "mapping(address => struct ConverterBase.Reserve storage ref)" - } - }, - "id": 14038, - "indexExpression": { - "argumentTypes": null, - "id": 14037, - "name": "reserveToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14029, - "src": "19277:12:23", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "19268:22:23", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Reserve_$2506_storage", - "typeString": "struct ConverterBase.Reserve storage ref" - } - }, - "id": 14039, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "balance", - "nodeType": "MemberAccess", - "referencedDeclaration": 2497, - "src": "19268:30:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "19247:51:23" - }, - { - "assignments": [ - 14042 - ], - "declarations": [ - { - "constant": false, - "id": 14042, - "name": "reserveAmount", - "nodeType": "VariableDeclaration", - "scope": 14119, - "src": "19313:21:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 14041, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "19313:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 14050, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 14045, - "name": "_totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13994, - "src": "19368:12:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 14046, - "name": "rsvBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14035, - "src": "19382:10:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 14047, - "name": "reserveRatio", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2523, - "src": "19394:12:23", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - { - "argumentTypes": null, - "id": 14048, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13996, - "src": "19408:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 14043, - "name": "formula", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14003, - "src": "19337:7:23", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISovrynSwapFormula_$12240", - "typeString": "contract ISovrynSwapFormula" - } - }, - "id": 14044, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "liquidateReserveAmount", - "nodeType": "MemberAccess", - "referencedDeclaration": 12222, - "src": "19337:30:23", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_uint256_$_t_uint256_$_t_uint32_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256,uint256,uint32,uint256) view external returns (uint256)" - } - }, - "id": 14049, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19337:79:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "19313:103:23" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 14056, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 14052, - "name": "reserveAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14042, - "src": "19439:13:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 14053, - "name": "_reserveMinReturnAmounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13992, - "src": "19456:24:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 14055, - "indexExpression": { - "argumentTypes": null, - "id": 14054, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14018, - "src": "19481:1:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "19456:27:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "19439:44:23", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552525f5a45524f5f5441524745545f414d4f554e54", - "id": 14057, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19485:24:23", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_29cb0846c2d5a859f661a5b4c4a8be47a80ca27c24af6f007bda101871b53e03", - "typeString": "literal_string \"ERR_ZERO_TARGET_AMOUNT\"" - }, - "value": "ERR_ZERO_TARGET_AMOUNT" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_29cb0846c2d5a859f661a5b4c4a8be47a80ca27c24af6f007bda101871b53e03", - "typeString": "literal_string \"ERR_ZERO_TARGET_AMOUNT\"" - } - ], - "id": 14051, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 22341, - 22342 - ], - "referencedDeclaration": 22342, - "src": "19431:7:23", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 14058, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19431:79:23", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 14059, - "nodeType": "ExpressionStatement", - "src": "19431:79:23" - }, - { - "assignments": [ - 14061 - ], - "declarations": [ - { - "constant": false, - "id": 14061, - "name": "newReserveBalance", - "nodeType": "VariableDeclaration", - "scope": 14119, - "src": "19527:25:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 14060, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "19527:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 14066, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 14064, - "name": "reserveAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14042, - "src": "19570:13:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 14062, - "name": "rsvBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14035, - "src": "19555:10:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 14063, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 21758, - "src": "19555:14:23", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 14065, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19555:29:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "19527:57:23" - }, - { - "expression": { - "argumentTypes": null, - "id": 14072, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 14067, - "name": "reserves", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2520, - "src": "19599:8:23", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Reserve_$2506_storage_$", - "typeString": "mapping(address => struct ConverterBase.Reserve storage ref)" - } - }, - "id": 14069, - "indexExpression": { - "argumentTypes": null, - "id": 14068, - "name": "reserveToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14029, - "src": "19608:12:23", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "19599:22:23", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Reserve_$2506_storage", - "typeString": "struct ConverterBase.Reserve storage ref" - } - }, - "id": 14070, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "balance", - "nodeType": "MemberAccess", - "referencedDeclaration": 2497, - "src": "19599:30:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 14071, - "name": "newReserveBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14061, - "src": "19632:17:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "19599:50:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 14073, - "nodeType": "ExpressionStatement", - "src": "19599:50:23" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 14076, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 14074, - "name": "reserveToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14029, - "src": "19753:12:23", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 14075, - "name": "ETH_RESERVE_ADDRESS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2495, - "src": "19769:19:23", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "19753:35:23", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 14086, - "name": "reserveToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14029, - "src": "19891:12:23", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 14087, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22338, - "src": "19905:3:23", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 14088, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "19905:10:23", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 14089, - "name": "reserveAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14042, - "src": "19917:13:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 14085, - "name": "safeTransfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21881, - "src": "19878:12:23", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20Token_$20240_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (contract IERC20Token,address,uint256)" - } - }, - "id": 14090, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19878:53:23", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 14091, - "nodeType": "ExpressionStatement", - "src": "19878:53:23" - }, - "id": 14092, - "nodeType": "IfStatement", - "src": "19749:182:23", - "trueBody": { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 14082, - "name": "reserveAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14042, - "src": "19827:13:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 14077, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22338, - "src": "19807:3:23", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 14080, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "19807:10:23", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 14081, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "19807:19:23", - "typeDescriptions": { - "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 14083, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19807:34:23", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 14084, - "nodeType": "ExpressionStatement", - "src": "19807:34:23" - } - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 14094, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22338, - "src": "19970:3:23", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 14095, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "19970:10:23", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 14096, - "name": "reserveToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14029, - "src": "19982:12:23", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - { - "argumentTypes": null, - "id": 14097, - "name": "reserveAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14042, - "src": "19996:13:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 14098, - "name": "newReserveBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14061, - "src": "20011:17:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 14099, - "name": "newPoolTokenSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14011, - "src": "20030:18:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 14093, - "name": "LiquidityRemoved", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6177, - "src": "19953:16:23", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256,uint256,uint256)" - } - }, - "id": 14100, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19953:96:23", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 14101, - "nodeType": "EmitStatement", - "src": "19948:101:23" - }, - { - "assignments": [ - 14103 - ], - "declarations": [ - { - "constant": false, - "id": 14103, - "name": "reserveWeight", - "nodeType": "VariableDeclaration", - "scope": 14119, - "src": "20138:20:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 14102, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "20138:6:23", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 14108, - "initialValue": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 14104, - "name": "reserves", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2520, - "src": "20161:8:23", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Reserve_$2506_storage_$", - "typeString": "mapping(address => struct ConverterBase.Reserve storage ref)" - } - }, - "id": 14106, - "indexExpression": { - "argumentTypes": null, - "id": 14105, - "name": "reserveToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14029, - "src": "20170:12:23", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "20161:22:23", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Reserve_$2506_storage", - "typeString": "struct ConverterBase.Reserve storage ref" - } - }, - "id": 14107, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "weight", - "nodeType": "MemberAccess", - "referencedDeclaration": 2499, - "src": "20161:29:23", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "20138:52:23" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 14110, - "name": "newPoolTokenSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14011, - "src": "20232:18:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 14111, - "name": "reserveToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14029, - "src": "20252:12:23", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - { - "argumentTypes": null, - "id": 14112, - "name": "newReserveBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14061, - "src": "20266:17:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 14113, - "name": "reserveWeight", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14103, - "src": "20285:13:23", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - ], - "id": 14109, - "name": "dispatchPoolTokenRateEvent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14408, - "src": "20205:26:23", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_contract$_IERC20Token_$20240_$_t_uint256_$_t_uint32_$returns$__$", - "typeString": "function (uint256,contract IERC20Token,uint256,uint32)" - } - }, - "id": 14114, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20205:94:23", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 14115, - "nodeType": "ExpressionStatement", - "src": "20205:94:23" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 14024, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 14021, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14018, - "src": "19141:1:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 14022, - "name": "_reserveTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13989, - "src": "19145:14:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", - "typeString": "contract IERC20Token[] memory" - } - }, - "id": 14023, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "19145:21:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "19141:25:23", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 14117, - "initializationExpression": { - "assignments": [ - 14018 - ], - "declarations": [ - { - "constant": false, - "id": 14018, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 14119, - "src": "19126:9:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 14017, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "19126:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 14020, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 14019, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19138:1:23", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "19126:13:23" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 14026, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "19168:3:23", - "subExpression": { - "argumentTypes": null, - "id": 14025, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14018, - "src": "19168:1:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 14027, - "nodeType": "ExpressionStatement", - "src": "19168:3:23" - }, - "nodeType": "ForStatement", - "src": "19121:1190:23" - } - ] - }, - "documentation": "@dev removes liquidity (reserve) from the pool\r\n\n * @param _reserveTokens address of each reserve token\r\n@param _reserveMinReturnAmounts minimum return-amount of each reserve token\r\n@param _totalSupply token total supply\r\n@param _amount token amount\r", - "id": 14119, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "removeLiquidityFromPool", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 13997, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 13989, - "name": "_reserveTokens", - "nodeType": "VariableDeclaration", - "scope": 14119, - "src": "18779:35:23", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", - "typeString": "contract IERC20Token[]" - }, - "typeName": { - "baseType": { - "contractScope": null, - "id": 13987, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "18779:11:23", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "id": 13988, - "length": null, - "nodeType": "ArrayTypeName", - "src": "18779:13:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_storage_ptr", - "typeString": "contract IERC20Token[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 13992, - "name": "_reserveMinReturnAmounts", - "nodeType": "VariableDeclaration", - "scope": 14119, - "src": "18816:41:23", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 13990, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "18816:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 13991, - "length": null, - "nodeType": "ArrayTypeName", - "src": "18816:9:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 13994, - "name": "_totalSupply", - "nodeType": "VariableDeclaration", - "scope": 14119, - "src": "18859:20:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 13993, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "18859:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 13996, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 14119, - "src": "18881:15:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 13995, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "18881:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "18778:119:23" - }, - "payable": false, - "returnParameters": { - "id": 13998, - "nodeType": "ParameterList", - "parameters": [], - "src": "18920:0:23" - }, - "scope": 14409, - "src": "18746:1572:23", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 14194, - "nodeType": "Block", - "src": "20499:439:23", - "statements": [ - { - "assignments": [ - 14135 - ], - "declarations": [ - { - "constant": false, - "id": 14135, - "name": "minIndex", - "nodeType": "VariableDeclaration", - "scope": 14195, - "src": "20510:16:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 14134, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "20510:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 14137, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 14136, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20529:1:23", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "20510:20:23" - }, - { - "body": { - "id": 14177, - "nodeType": "Block", - "src": "20593:197:23", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 14171, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 14153, - "name": "reserves", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2520, - "src": "20635:8:23", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Reserve_$2506_storage_$", - "typeString": "mapping(address => struct ConverterBase.Reserve storage ref)" - } - }, - "id": 14157, - "indexExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 14154, - "name": "_reserveTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14126, - "src": "20644:14:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", - "typeString": "contract IERC20Token[] memory" - } - }, - "id": 14156, - "indexExpression": { - "argumentTypes": null, - "id": 14155, - "name": "minIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14135, - "src": "20659:8:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "20644:24:23", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "20635:34:23", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Reserve_$2506_storage", - "typeString": "struct ConverterBase.Reserve storage ref" - } - }, - "id": 14158, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "balance", - "nodeType": "MemberAccess", - "referencedDeclaration": 2497, - "src": "20635:42:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 14149, - "name": "_reserveAmounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14129, - "src": "20612:15:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 14151, - "indexExpression": { - "argumentTypes": null, - "id": 14150, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14139, - "src": "20628:1:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "20612:18:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 14152, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 21791, - "src": "20612:22:23", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 14159, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20612:66:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 14164, - "name": "reserves", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2520, - "src": "20711:8:23", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Reserve_$2506_storage_$", - "typeString": "mapping(address => struct ConverterBase.Reserve storage ref)" - } - }, - "id": 14168, - "indexExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 14165, - "name": "_reserveTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14126, - "src": "20720:14:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", - "typeString": "contract IERC20Token[] memory" - } - }, - "id": 14167, - "indexExpression": { - "argumentTypes": null, - "id": 14166, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14139, - "src": "20735:1:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "20720:17:23", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "20711:27:23", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Reserve_$2506_storage", - "typeString": "struct ConverterBase.Reserve storage ref" - } - }, - "id": 14169, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "balance", - "nodeType": "MemberAccess", - "referencedDeclaration": 2497, - "src": "20711:35:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 14160, - "name": "_reserveAmounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14129, - "src": "20681:15:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 14162, - "indexExpression": { - "argumentTypes": null, - "id": 14161, - "name": "minIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14135, - "src": "20697:8:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "20681:25:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 14163, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 21791, - "src": "20681:29:23", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 14170, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20681:66:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "20612:135:23", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 14176, - "nodeType": "IfStatement", - "src": "20608:170:23", - "trueBody": { - "expression": { - "argumentTypes": null, - "id": 14174, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 14172, - "name": "minIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14135, - "src": "20766:8:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 14173, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14139, - "src": "20777:1:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "20766:12:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 14175, - "nodeType": "ExpressionStatement", - "src": "20766:12:23" - } - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 14145, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 14142, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14139, - "src": "20561:1:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 14143, - "name": "_reserveTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14126, - "src": "20565:14:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", - "typeString": "contract IERC20Token[] memory" - } - }, - "id": 14144, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "20565:21:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "20561:25:23", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 14178, - "initializationExpression": { - "assignments": [ - 14139 - ], - "declarations": [ - { - "constant": false, - "id": 14139, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 14195, - "src": "20546:9:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 14138, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "20546:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 14141, - "initialValue": { - "argumentTypes": null, - "hexValue": "31", - "id": 14140, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20558:1:23", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "nodeType": "VariableDeclarationStatement", - "src": "20546:13:23" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 14147, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "20588:3:23", - "subExpression": { - "argumentTypes": null, - "id": 14146, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14139, - "src": "20588:1:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 14148, - "nodeType": "ExpressionStatement", - "src": "20588:3:23" - }, - "nodeType": "ForStatement", - "src": "20541:249:23" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 14181, - "name": "_totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14123, - "src": "20832:12:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 14182, - "name": "reserves", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2520, - "src": "20846:8:23", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Reserve_$2506_storage_$", - "typeString": "mapping(address => struct ConverterBase.Reserve storage ref)" - } - }, - "id": 14186, - "indexExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 14183, - "name": "_reserveTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14126, - "src": "20855:14:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", - "typeString": "contract IERC20Token[] memory" - } - }, - "id": 14185, - "indexExpression": { - "argumentTypes": null, - "id": 14184, - "name": "minIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14135, - "src": "20870:8:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "20855:24:23", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "20846:34:23", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Reserve_$2506_storage", - "typeString": "struct ConverterBase.Reserve storage ref" - } - }, - "id": 14187, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "balance", - "nodeType": "MemberAccess", - "referencedDeclaration": 2497, - "src": "20846:42:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 14188, - "name": "reserveRatio", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2523, - "src": "20890:12:23", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 14189, - "name": "_reserveAmounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14129, - "src": "20904:15:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 14191, - "indexExpression": { - "argumentTypes": null, - "id": 14190, - "name": "minIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14135, - "src": "20920:8:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "20904:25:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 14179, - "name": "formula", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14121, - "src": "20807:7:23", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISovrynSwapFormula_$12240", - "typeString": "contract ISovrynSwapFormula" - } - }, - "id": 14180, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "fundSupplyAmount", - "nodeType": "MemberAccess", - "referencedDeclaration": 12209, - "src": "20807:24:23", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_uint256_$_t_uint256_$_t_uint32_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256,uint256,uint32,uint256) view external returns (uint256)" - } - }, - "id": 14192, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20807:123:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 14133, - "id": 14193, - "nodeType": "Return", - "src": "20800:130:23" - } - ] - }, - "documentation": null, - "id": 14195, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getMinShare", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 14130, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 14121, - "name": "formula", - "nodeType": "VariableDeclaration", - "scope": 14195, - "src": "20347:26:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISovrynSwapFormula_$12240", - "typeString": "contract ISovrynSwapFormula" - }, - "typeName": { - "contractScope": null, - "id": 14120, - "name": "ISovrynSwapFormula", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 12240, - "src": "20347:18:23", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISovrynSwapFormula_$12240", - "typeString": "contract ISovrynSwapFormula" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 14123, - "name": "_totalSupply", - "nodeType": "VariableDeclaration", - "scope": 14195, - "src": "20375:20:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 14122, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "20375:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 14126, - "name": "_reserveTokens", - "nodeType": "VariableDeclaration", - "scope": 14195, - "src": "20397:35:23", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", - "typeString": "contract IERC20Token[]" - }, - "typeName": { - "baseType": { - "contractScope": null, - "id": 14124, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "20397:11:23", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "id": 14125, - "length": null, - "nodeType": "ArrayTypeName", - "src": "20397:13:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_storage_ptr", - "typeString": "contract IERC20Token[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 14129, - "name": "_reserveAmounts", - "nodeType": "VariableDeclaration", - "scope": 14195, - "src": "20434:32:23", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 14127, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "20434:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 14128, - "length": null, - "nodeType": "ArrayTypeName", - "src": "20434:9:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "20346:121:23" - }, - "payable": false, - "returnParameters": { - "id": 14133, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 14132, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 14195, - "src": "20490:7:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 14131, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "20490:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "20489:9:23" - }, - "scope": 14409, - "src": "20326:612:23", - "stateMutability": "view", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 14223, - "nodeType": "Block", - "src": "21219:115:23", - "statements": [ - { - "assignments": [ - 14203 - ], - "declarations": [ - { - "constant": false, - "id": 14203, - "name": "y", - "nodeType": "VariableDeclaration", - "scope": 14224, - "src": "21230:9:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 14202, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "21230:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 14205, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 14204, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21242:1:23", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "21230:13:23" - }, - { - "body": { - "expression": { - "argumentTypes": null, - "id": 14218, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "21304:3:23", - "subExpression": { - "argumentTypes": null, - "id": 14217, - "name": "y", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14203, - "src": "21304:1:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 14219, - "nodeType": "ExpressionStatement", - "src": "21304:3:23" - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 14212, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 14210, - "name": "x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14207, - "src": "21275:1:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 14211, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21279:1:23", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "21275:5:23", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 14220, - "initializationExpression": { - "assignments": [ - 14207 - ], - "declarations": [ - { - "constant": false, - "id": 14207, - "name": "x", - "nodeType": "VariableDeclaration", - "scope": 14224, - "src": "21259:9:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 14206, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "21259:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 14209, - "initialValue": { - "argumentTypes": null, - "id": 14208, - "name": "_x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14197, - "src": "21271:2:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "21259:14:23" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 14215, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 14213, - "name": "x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14207, - "src": "21282:1:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "/=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "3130", - "id": 14214, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21287:2:23", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_10_by_1", - "typeString": "int_const 10" - }, - "value": "10" - }, - "src": "21282:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 14216, - "nodeType": "ExpressionStatement", - "src": "21282:7:23" - }, - "nodeType": "ForStatement", - "src": "21254:53:23" - }, - { - "expression": { - "argumentTypes": null, - "id": 14221, - "name": "y", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14203, - "src": "21325:1:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 14201, - "id": 14222, - "nodeType": "Return", - "src": "21318:8:23" - } - ] - }, - "documentation": "@dev calculates the number of decimal digits in a given value\r\n\n * @param _x value (assumed positive)\r\n@return the number of decimal digits in the given value\r", - "id": 14224, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "decimalLength", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 14198, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 14197, - "name": "_x", - "nodeType": "VariableDeclaration", - "scope": 14224, - "src": "21177:10:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 14196, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "21177:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "21176:12:23" - }, - "payable": false, - "returnParameters": { - "id": 14201, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 14200, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 14224, - "src": "21210:7:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 14199, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "21210:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "21209:9:23" - }, - "scope": 14409, - "src": "21154:180:23", - "stateMutability": "pure", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 14242, - "nodeType": "Block", - "src": "21646:44:23", - "statements": [ - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 14240, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 14237, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 14233, - "name": "_n", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14226, - "src": "21665:2:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 14236, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 14234, - "name": "_d", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14228, - "src": "21670:2:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "hexValue": "32", - "id": 14235, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21675:1:23", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "src": "21670:6:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "21665:11:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 14238, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "21664:13:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 14239, - "name": "_d", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14228, - "src": "21680:2:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "21664:18:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 14232, - "id": 14241, - "nodeType": "Return", - "src": "21657:25:23" - } - ] - }, - "documentation": "@dev calculates the nearest integer to a given quotient\r\n\n * @param _n quotient numerator\r\n@param _d quotient denominator\r\n@return the nearest integer to the given quotient\r", - "id": 14243, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "roundDiv", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 14229, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 14226, - "name": "_n", - "nodeType": "VariableDeclaration", - "scope": 14243, - "src": "21592:10:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 14225, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "21592:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 14228, - "name": "_d", - "nodeType": "VariableDeclaration", - "scope": 14243, - "src": "21604:10:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 14227, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "21604:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "21591:24:23" - }, - "payable": false, - "returnParameters": { - "id": 14232, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 14231, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 14243, - "src": "21637:7:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 14230, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "21637:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "21636:9:23" - }, - "scope": 14409, - "src": "21574:116:23", - "stateMutability": "pure", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 14291, - "nodeType": "Block", - "src": "22046:253:23", - "statements": [ - { - "assignments": [ - 14252 - ], - "declarations": [ - { - "constant": false, - "id": 14252, - "name": "numOfDigits", - "nodeType": "VariableDeclaration", - "scope": 14292, - "src": "22057:19:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 14251, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "22057:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 14254, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 14253, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22079:1:23", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "22057:23:23" - }, - { - "assignments": [ - 14256 - ], - "declarations": [ - { - "constant": false, - "id": 14256, - "name": "length", - "nodeType": "VariableDeclaration", - "scope": 14292, - "src": "22091:14:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 14255, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "22091:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 14259, - "initialValue": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 14257, - "name": "_values", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14246, - "src": "22108:7:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 14258, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "22108:14:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "22091:31:23" - }, - { - "body": { - "expression": { - "argumentTypes": null, - "id": 14276, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 14270, - "name": "numOfDigits", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14252, - "src": "22183:11:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 14272, - "name": "_values", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14246, - "src": "22212:7:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 14274, - "indexExpression": { - "argumentTypes": null, - "id": 14273, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14261, - "src": "22220:1:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "22212:10:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 14271, - "name": "decimalLength", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14224, - "src": "22198:13:23", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256) pure returns (uint256)" - } - }, - "id": 14275, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22198:25:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "22183:40:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 14277, - "nodeType": "ExpressionStatement", - "src": "22183:40:23" - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 14266, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 14264, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14261, - "src": "22153:1:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "id": 14265, - "name": "length", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14256, - "src": "22157:6:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "22153:10:23", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 14278, - "initializationExpression": { - "assignments": [ - 14261 - ], - "declarations": [ - { - "constant": false, - "id": 14261, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 14292, - "src": "22138:9:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 14260, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "22138:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 14263, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 14262, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22150:1:23", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "22138:13:23" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 14268, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "22165:3:23", - "subExpression": { - "argumentTypes": null, - "id": 14267, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14261, - "src": "22165:1:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 14269, - "nodeType": "ExpressionStatement", - "src": "22165:3:23" - }, - "nodeType": "ForStatement", - "src": "22133:90:23" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 14289, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "3130", - "id": 14280, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22249:2:23", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_10_by_1", - "typeString": "int_const 10" - }, - "value": "10" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_10_by_1", - "typeString": "int_const 10" - } - ], - "id": 14279, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "22241:7:23", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": "uint256" - }, - "id": 14281, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22241:11:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "**", - "rightExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 14287, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 14283, - "name": "numOfDigits", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14252, - "src": "22266:11:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 14284, - "name": "length", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14256, - "src": "22279:6:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 14282, - "name": "roundDiv", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14243, - "src": "22257:8:23", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 14285, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22257:29:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 14286, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22289:1:23", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "22257:33:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 14288, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "22256:35:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "22241:50:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 14250, - "id": 14290, - "nodeType": "Return", - "src": "22234:57:23" - } - ] - }, - "documentation": "@dev calculates the average number of decimal digits in a given list of values\r\n\n * @param _values list of values (each of which assumed positive)\r\n@return the average number of decimal digits in the given list of values\r", - "id": 14292, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "geometricMean", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 14247, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 14246, - "name": "_values", - "nodeType": "VariableDeclaration", - "scope": 14292, - "src": "21990:24:23", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 14244, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "21990:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 14245, - "length": null, - "nodeType": "ArrayTypeName", - "src": "21990:9:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "21989:26:23" - }, - "payable": false, - "returnParameters": { - "id": 14250, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 14249, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 14292, - "src": "22037:7:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 14248, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "22037:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "22036:9:23" - }, - "scope": 14409, - "src": "21967:332:23", - "stateMutability": "pure", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 14382, - "nodeType": "Block", - "src": "22690:1190:23", - "statements": [ - { - "assignments": [ - 14300 - ], - "declarations": [ - { - "constant": false, - "id": 14300, - "name": "poolTokenSupply", - "nodeType": "VariableDeclaration", - "scope": 14383, - "src": "22701:23:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 14299, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "22701:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 14306, - "initialValue": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 14302, - "name": "anchor", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2511 - ], - "referencedDeclaration": 2511, - "src": "22739:6:23", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - ], - "id": 14301, - "name": "ISmartToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20295, - "src": "22727:11:23", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ISmartToken_$20295_$", - "typeString": "type(contract ISmartToken)" - } - }, - "id": 14303, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22727:19:23", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISmartToken_$20295", - "typeString": "contract ISmartToken" - } - }, - "id": 14304, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "totalSupply", - "nodeType": "MemberAccess", - "referencedDeclaration": 20182, - "src": "22727:31:23", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", - "typeString": "function () view external returns (uint256)" - } - }, - "id": 14305, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22727:33:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "22701:59:23" - }, - { - "assignments": [ - 14308 - ], - "declarations": [ - { - "constant": false, - "id": 14308, - "name": "sourceReserveBalance", - "nodeType": "VariableDeclaration", - "scope": 14383, - "src": "22771:28:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 14307, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "22771:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 14312, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 14310, - "name": "_sourceToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14294, - "src": "22817:12:23", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - ], - "id": 14309, - "name": "reserveBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 3106 - ], - "referencedDeclaration": 3106, - "src": "22802:14:23", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_contract$_IERC20Token_$20240_$returns$_t_uint256_$", - "typeString": "function (contract IERC20Token) view returns (uint256)" - } - }, - "id": 14311, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22802:28:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "22771:59:23" - }, - { - "assignments": [ - 14314 - ], - "declarations": [ - { - "constant": false, - "id": 14314, - "name": "targetReserveBalance", - "nodeType": "VariableDeclaration", - "scope": 14383, - "src": "22841:28:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 14313, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "22841:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 14318, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 14316, - "name": "_targetToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14296, - "src": "22887:12:23", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - ], - "id": 14315, - "name": "reserveBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 3106 - ], - "referencedDeclaration": 3106, - "src": "22872:14:23", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_contract$_IERC20Token_$20240_$returns$_t_uint256_$", - "typeString": "function (contract IERC20Token) view returns (uint256)" - } - }, - "id": 14317, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22872:28:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "22841:59:23" - }, - { - "assignments": [ - 14320 - ], - "declarations": [ - { - "constant": false, - "id": 14320, - "name": "sourceReserveWeight", - "nodeType": "VariableDeclaration", - "scope": 14383, - "src": "22911:26:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 14319, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "22911:6:23", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 14325, - "initialValue": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 14321, - "name": "reserves", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2520, - "src": "22940:8:23", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Reserve_$2506_storage_$", - "typeString": "mapping(address => struct ConverterBase.Reserve storage ref)" - } - }, - "id": 14323, - "indexExpression": { - "argumentTypes": null, - "id": 14322, - "name": "_sourceToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14294, - "src": "22949:12:23", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "22940:22:23", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Reserve_$2506_storage", - "typeString": "struct ConverterBase.Reserve storage ref" - } - }, - "id": 14324, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "weight", - "nodeType": "MemberAccess", - "referencedDeclaration": 2499, - "src": "22940:29:23", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "22911:58:23" - }, - { - "assignments": [ - 14327 - ], - "declarations": [ - { - "constant": false, - "id": 14327, - "name": "targetReserveWeight", - "nodeType": "VariableDeclaration", - "scope": 14383, - "src": "22980:26:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 14326, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "22980:6:23", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 14332, - "initialValue": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 14328, - "name": "reserves", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2520, - "src": "23009:8:23", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Reserve_$2506_storage_$", - "typeString": "mapping(address => struct ConverterBase.Reserve storage ref)" - } - }, - "id": 14330, - "indexExpression": { - "argumentTypes": null, - "id": 14329, - "name": "_targetToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14296, - "src": "23018:12:23", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "23009:22:23", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Reserve_$2506_storage", - "typeString": "struct ConverterBase.Reserve storage ref" - } - }, - "id": 14331, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "weight", - "nodeType": "MemberAccess", - "referencedDeclaration": 2499, - "src": "23009:29:23", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "22980:58:23" - }, - { - "assignments": [ - 14334 - ], - "declarations": [ - { - "constant": false, - "id": 14334, - "name": "rateN", - "nodeType": "VariableDeclaration", - "scope": 14383, - "src": "23096:13:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 14333, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "23096:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 14339, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 14337, - "name": "sourceReserveWeight", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14320, - "src": "23137:19:23", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - ], - "expression": { - "argumentTypes": null, - "id": 14335, - "name": "targetReserveBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14314, - "src": "23112:20:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 14336, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 21791, - "src": "23112:24:23", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 14338, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "23112:45:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "23096:61:23" - }, - { - "assignments": [ - 14341 - ], - "declarations": [ - { - "constant": false, - "id": 14341, - "name": "rateD", - "nodeType": "VariableDeclaration", - "scope": 14383, - "src": "23168:13:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 14340, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "23168:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 14346, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 14344, - "name": "targetReserveWeight", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14327, - "src": "23209:19:23", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - ], - "expression": { - "argumentTypes": null, - "id": 14342, - "name": "sourceReserveBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14308, - "src": "23184:20:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 14343, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 21791, - "src": "23184:24:23", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 14345, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "23184:45:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "23168:61:23" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 14348, - "name": "_sourceToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14294, - "src": "23261:12:23", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - { - "argumentTypes": null, - "id": 14349, - "name": "_targetToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14296, - "src": "23275:12:23", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - { - "argumentTypes": null, - "id": 14350, - "name": "rateN", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14334, - "src": "23289:5:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 14351, - "name": "rateD", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14341, - "src": "23296:5:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 14347, - "name": "TokenRateUpdate", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2564, - "src": "23245:15:23", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256,uint256)" - } - }, - "id": 14352, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "23245:57:23", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 14353, - "nodeType": "EmitStatement", - "src": "23240:62:23" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 14355, - "name": "poolTokenSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14300, - "src": "23410:15:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 14356, - "name": "_sourceToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14294, - "src": "23427:12:23", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - { - "argumentTypes": null, - "id": 14357, - "name": "sourceReserveBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14308, - "src": "23441:20:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 14358, - "name": "sourceReserveWeight", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14320, - "src": "23463:19:23", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - ], - "id": 14354, - "name": "dispatchPoolTokenRateEvent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14408, - "src": "23383:26:23", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_contract$_IERC20Token_$20240_$_t_uint256_$_t_uint32_$returns$__$", - "typeString": "function (uint256,contract IERC20Token,uint256,uint32)" - } - }, - "id": 14359, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "23383:100:23", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 14360, - "nodeType": "ExpressionStatement", - "src": "23383:100:23" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 14362, - "name": "poolTokenSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14300, - "src": "23521:15:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 14363, - "name": "_targetToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14296, - "src": "23538:12:23", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - { - "argumentTypes": null, - "id": 14364, - "name": "targetReserveBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14314, - "src": "23552:20:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 14365, - "name": "targetReserveWeight", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14327, - "src": "23574:19:23", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - ], - "id": 14361, - "name": "dispatchPoolTokenRateEvent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14408, - "src": "23494:26:23", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_contract$_IERC20Token_$20240_$_t_uint256_$_t_uint32_$returns$__$", - "typeString": "function (uint256,contract IERC20Token,uint256,uint32)" - } - }, - "id": 14366, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "23494:100:23", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 14367, - "nodeType": "ExpressionStatement", - "src": "23494:100:23" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 14369, - "name": "_sourceToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14294, - "src": "23694:12:23", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - { - "argumentTypes": null, - "id": 14370, - "name": "poolTokenSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14300, - "src": "23708:15:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 14371, - "name": "sourceReserveBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14308, - "src": "23725:20:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 14372, - "name": "sourceReserveWeight", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14320, - "src": "23747:19:23", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - ], - "id": 14368, - "name": "PriceDataUpdate", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12941, - "src": "23678:15:23", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_uint32_$returns$__$", - "typeString": "function (address,uint256,uint256,uint32)" - } - }, - "id": 14373, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "23678:89:23", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 14374, - "nodeType": "EmitStatement", - "src": "23673:94:23" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 14376, - "name": "_targetToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14296, - "src": "23799:12:23", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - { - "argumentTypes": null, - "id": 14377, - "name": "poolTokenSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14300, - "src": "23813:15:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 14378, - "name": "targetReserveBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14314, - "src": "23830:20:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 14379, - "name": "targetReserveWeight", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14327, - "src": "23852:19:23", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - ], - "id": 14375, - "name": "PriceDataUpdate", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12941, - "src": "23783:15:23", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_uint32_$returns$__$", - "typeString": "function (address,uint256,uint256,uint32)" - } - }, - "id": 14380, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "23783:89:23", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 14381, - "nodeType": "EmitStatement", - "src": "23778:94:23" - } - ] - }, - "documentation": "@dev dispatches rate events for both reserves / pool tokens\r\nonly used to circumvent the `stack too deep` compiler error\r\n\n * @param _sourceToken address of the source reserve token\r\n@param _targetToken address of the target reserve token\r", - "id": 14383, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "dispatchRateEvents", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 14297, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 14294, - "name": "_sourceToken", - "nodeType": "VariableDeclaration", - "scope": 14383, - "src": "22630:24:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - "typeName": { - "contractScope": null, - "id": 14293, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "22630:11:23", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 14296, - "name": "_targetToken", - "nodeType": "VariableDeclaration", - "scope": 14383, - "src": "22656:24:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - "typeName": { - "contractScope": null, - "id": 14295, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "22656:11:23", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "22629:52:23" - }, - "payable": false, - "returnParameters": { - "id": 14298, - "nodeType": "ParameterList", - "parameters": [], - "src": "22690:0:23" - }, - "scope": 14409, - "src": "22602:1278:23", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 14407, - "nodeType": "Block", - "src": "24410:140:23", - "statements": [ - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 14395, - "name": "anchor", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2511 - ], - "referencedDeclaration": 2511, - "src": "24442:6:23", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - }, - { - "argumentTypes": null, - "id": 14396, - "name": "_reserveToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14387, - "src": "24450:13:23", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 14399, - "name": "WEIGHT_RESOLUTION", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2489, - "src": "24485:17:23", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - ], - "expression": { - "argumentTypes": null, - "id": 14397, - "name": "_reserveBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14389, - "src": "24465:15:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 14398, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 21791, - "src": "24465:19:23", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 14400, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "24465:38:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 14403, - "name": "_reserveWeight", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14391, - "src": "24526:14:23", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - ], - "expression": { - "argumentTypes": null, - "id": 14401, - "name": "_poolTokenSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14385, - "src": "24505:16:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 14402, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 21791, - "src": "24505:20:23", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 14404, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "24505:36:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - }, - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 14394, - "name": "TokenRateUpdate", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2564, - "src": "24426:15:23", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256,uint256)" - } - }, - "id": 14405, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "24426:116:23", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 14406, - "nodeType": "EmitStatement", - "src": "24421:121:23" - } - ] - }, - "documentation": "@dev dispatches the `TokenRateUpdate` for the pool token\r\nonly used to circumvent the `stack too deep` compiler error\r\n\n * @param _poolTokenSupply total pool token supply\r\n@param _reserveToken address of the reserve token\r\n@param _reserveBalance reserve balance\r\n@param _reserveWeight reserve weight\r", - "id": 14408, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "dispatchPoolTokenRateEvent", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 14392, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 14385, - "name": "_poolTokenSupply", - "nodeType": "VariableDeclaration", - "scope": 14408, - "src": "24301:24:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 14384, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24301:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 14387, - "name": "_reserveToken", - "nodeType": "VariableDeclaration", - "scope": 14408, - "src": "24327:25:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - "typeName": { - "contractScope": null, - "id": 14386, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "24327:11:23", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 14389, - "name": "_reserveBalance", - "nodeType": "VariableDeclaration", - "scope": 14408, - "src": "24354:23:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 14388, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24354:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 14391, - "name": "_reserveWeight", - "nodeType": "VariableDeclaration", - "scope": 14408, - "src": "24379:21:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 14390, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "24379:6:23", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "24300:101:23" - }, - "payable": false, - "returnParameters": { - "id": 14393, - "nodeType": "ParameterList", - "parameters": [], - "src": "24410:0:23" - }, - "scope": 14409, - "src": "24265:285:23", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - } - ], - "scope": 14410, - "src": "452:24101:23" - } - ], - "src": "0:24555:23" - }, - "id": 23 - }, - "solidity/contracts/converter/types/liquidity-pool-v1/LiquidityPoolV1ConverterFactory.sol": { - "ast": { - "absolutePath": "solidity/contracts/converter/types/liquidity-pool-v1/LiquidityPoolV1ConverterFactory.sol", - "exportedSymbols": { - "LiquidityPoolV1ConverterFactory": [ - 14458 - ] - }, - "id": 14459, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 14411, - "literals": [ - "solidity", - "0.4", - ".26" - ], - "nodeType": "PragmaDirective", - "src": "0:23:24" - }, - { - "absolutePath": "solidity/contracts/converter/types/liquidity-pool-v1/LiquidityPoolV1Converter.sol", - "file": "./LiquidityPoolV1Converter.sol", - "id": 14412, - "nodeType": "ImportDirective", - "scope": 14459, - "sourceUnit": 14410, - "src": "25:40:24", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "solidity/contracts/converter/interfaces/IConverter.sol", - "file": "../../interfaces/IConverter.sol", - "id": 14413, - "nodeType": "ImportDirective", - "scope": 14459, - "sourceUnit": 11818, - "src": "67:41:24", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "solidity/contracts/converter/interfaces/ITypedConverterFactory.sol", - "file": "../../interfaces/ITypedConverterFactory.sol", - "id": 14414, - "nodeType": "ImportDirective", - "scope": 14459, - "sourceUnit": 12291, - "src": "110:53:24", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "solidity/contracts/token/interfaces/ISmartToken.sol", - "file": "../../../token/interfaces/ISmartToken.sol", - "id": 14415, - "nodeType": "ImportDirective", - "scope": 14459, - "sourceUnit": 20296, - "src": "165:51:24", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 14416, - "name": "ITypedConverterFactory", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 12290, - "src": "310:22:24", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ITypedConverterFactory_$12290", - "typeString": "contract ITypedConverterFactory" - } - }, - "id": 14417, - "nodeType": "InheritanceSpecifier", - "src": "310:22:24" - } - ], - "contractDependencies": [ - 12290, - 14409 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 14458, - "linearizedBaseContracts": [ - 14458, - 12290 - ], - "name": "LiquidityPoolV1ConverterFactory", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 14424, - "nodeType": "Block", - "src": "524:27:24", - "statements": [ - { - "expression": { - "argumentTypes": null, - "hexValue": "31", - "id": 14422, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "542:1:24", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "functionReturnParameters": 14421, - "id": 14423, - "nodeType": "Return", - "src": "535:8:24" - } - ] - }, - "documentation": "@dev returns the converter type the factory is associated with\r\n\n * @return converter type\r", - "id": 14425, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "converterType", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 14418, - "nodeType": "ParameterList", - "parameters": [], - "src": "492:2:24" - }, - "payable": false, - "returnParameters": { - "id": 14421, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 14420, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 14425, - "src": "516:6:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 14419, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "516:6:24", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "515:8:24" - }, - "scope": 14458, - "src": "470:81:24", - "stateMutability": "pure", - "superFunction": 12278, - "visibility": "public" - }, - { - "body": { - "id": 14456, - "nodeType": "Block", - "src": "1096:199:24", - "statements": [ - { - "assignments": [ - 14437 - ], - "declarations": [ - { - "constant": false, - "id": 14437, - "name": "converter", - "nodeType": "VariableDeclaration", - "scope": 14457, - "src": "1107:20:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - }, - "typeName": { - "contractScope": null, - "id": 14436, - "name": "IConverter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 11817, - "src": "1107:10:24", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 14446, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 14441, - "name": "_anchor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14427, - "src": "1171:7:24", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - ], - "id": 14440, - "name": "ISmartToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20295, - "src": "1159:11:24", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ISmartToken_$20295_$", - "typeString": "type(contract ISmartToken)" - } - }, - "id": 14442, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1159:20:24", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISmartToken_$20295", - "typeString": "contract ISmartToken" - } - }, - { - "argumentTypes": null, - "id": 14443, - "name": "_registry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14429, - "src": "1181:9:24", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IContractRegistry_$22220", - "typeString": "contract IContractRegistry" - } - }, - { - "argumentTypes": null, - "id": 14444, - "name": "_maxConversionFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14431, - "src": "1192:17:24", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_ISmartToken_$20295", - "typeString": "contract ISmartToken" - }, - { - "typeIdentifier": "t_contract$_IContractRegistry_$22220", - "typeString": "contract IContractRegistry" - }, - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - ], - "id": 14439, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "1130:28:24", - "typeDescriptions": { - "typeIdentifier": "t_function_creation_nonpayable$_t_contract$_ISmartToken_$20295_$_t_contract$_IContractRegistry_$22220_$_t_uint32_$returns$_t_contract$_LiquidityPoolV1Converter_$14409_$", - "typeString": "function (contract ISmartToken,contract IContractRegistry,uint32) returns (contract LiquidityPoolV1Converter)" - }, - "typeName": { - "contractScope": null, - "id": 14438, - "name": "LiquidityPoolV1Converter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 14409, - "src": "1134:24:24", - "typeDescriptions": { - "typeIdentifier": "t_contract$_LiquidityPoolV1Converter_$14409", - "typeString": "contract LiquidityPoolV1Converter" - } - } - }, - "id": 14445, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1130:80:24", - "typeDescriptions": { - "typeIdentifier": "t_contract$_LiquidityPoolV1Converter_$14409", - "typeString": "contract LiquidityPoolV1Converter" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1107:103:24" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 14450, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22338, - "src": "1249:3:24", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 14451, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1249:10:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 14447, - "name": "converter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14437, - "src": "1221:9:24", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - "id": 14449, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transferOwnership", - "nodeType": "MemberAccess", - "referencedDeclaration": 22243, - "src": "1221:27:24", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$", - "typeString": "function (address) external" - } - }, - "id": 14452, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1221:39:24", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 14453, - "nodeType": "ExpressionStatement", - "src": "1221:39:24" - }, - { - "expression": { - "argumentTypes": null, - "id": 14454, - "name": "converter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14437, - "src": "1278:9:24", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - "functionReturnParameters": 14435, - "id": 14455, - "nodeType": "Return", - "src": "1271:16:24" - } - ] - }, - "documentation": "@dev creates a new converter with the given arguments and transfers\r\nthe ownership to the caller\r\n\n * @param _anchor anchor governed by the converter\r\n@param _registry address of a contract registry contract\r\n@param _maxConversionFee maximum conversion fee, represented in ppm\r\n\n * @return a new converter\r", - "id": 14457, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "createConverter", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 14432, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 14427, - "name": "_anchor", - "nodeType": "VariableDeclaration", - "scope": 14457, - "src": "987:24:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - }, - "typeName": { - "contractScope": null, - "id": 14426, - "name": "IConverterAnchor", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 11826, - "src": "987:16:24", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 14429, - "name": "_registry", - "nodeType": "VariableDeclaration", - "scope": 14457, - "src": "1013:27:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IContractRegistry_$22220", - "typeString": "contract IContractRegistry" - }, - "typeName": { - "contractScope": null, - "id": 14428, - "name": "IContractRegistry", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 22220, - "src": "1013:17:24", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IContractRegistry_$22220", - "typeString": "contract IContractRegistry" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 14431, - "name": "_maxConversionFee", - "nodeType": "VariableDeclaration", - "scope": 14457, - "src": "1042:24:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 14430, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "1042:6:24", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "986:81:24" - }, - "payable": false, - "returnParameters": { - "id": 14435, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 14434, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 14457, - "src": "1084:10:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - }, - "typeName": { - "contractScope": null, - "id": 14433, - "name": "IConverter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 11817, - "src": "1084:10:24", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1083:12:24" - }, - "scope": 14458, - "src": "962:333:24", - "stateMutability": "nonpayable", - "superFunction": 12289, - "visibility": "public" - } - ], - "scope": 14459, - "src": "266:1032:24" - } - ], - "src": "0:1300:24" - }, - "id": 24 - }, - "solidity/contracts/converter/types/liquidity-pool-v2/LiquidityPoolV2Converter.sol": { - "ast": { - "absolutePath": "solidity/contracts/converter/types/liquidity-pool-v2/LiquidityPoolV2Converter.sol", - "exportedSymbols": { - "LiquidityPoolV2Converter": [ - 16610 - ] - }, - "id": 16611, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 14460, - "literals": [ - "solidity", - "0.4", - ".26" - ], - "nodeType": "PragmaDirective", - "src": "0:23:25" - }, - { - "absolutePath": "solidity/contracts/converter/types/liquidity-pool-v2/PoolTokensContainer.sol", - "file": "./PoolTokensContainer.sol", - "id": 14461, - "nodeType": "ImportDirective", - "scope": 16611, - "sourceUnit": 16936, - "src": "25:35:25", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "solidity/contracts/converter/types/liquidity-pool-v2/LiquidityPoolV2ConverterCustomFactory.sol", - "file": "./LiquidityPoolV2ConverterCustomFactory.sol", - "id": 14462, - "nodeType": "ImportDirective", - "scope": 16611, - "sourceUnit": 16693, - "src": "62:53:25", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "solidity/contracts/converter/LiquidityPoolConverter.sol", - "file": "../../LiquidityPoolConverter.sol", - "id": 14463, - "nodeType": "ImportDirective", - "scope": 16611, - "sourceUnit": 6211, - "src": "117:42:25", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "solidity/contracts/converter/interfaces/IConverterFactory.sol", - "file": "../../interfaces/IConverterFactory.sol", - "id": 14464, - "nodeType": "ImportDirective", - "scope": 16611, - "sourceUnit": 11872, - "src": "161:48:25", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "solidity/contracts/utility/interfaces/IPriceOracle.sol", - "file": "../../../utility/interfaces/IPriceOracle.sol", - "id": 14465, - "nodeType": "ImportDirective", - "scope": 16611, - "sourceUnit": 22298, - "src": "211:54:25", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 14466, - "name": "LiquidityPoolConverter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6210, - "src": "688:22:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_LiquidityPoolConverter_$6210", - "typeString": "contract LiquidityPoolConverter" - } - }, - "id": 14467, - "nodeType": "InheritanceSpecifier", - "src": "688:22:25" - } - ], - "contractDependencies": [ - 3414, - 6210, - 11817, - 20932, - 21324, - 21710, - 21933, - 21976, - 22052, - 22247, - 22313 - ], - "contractKind": "contract", - "documentation": "@dev Liquidity Pool v2 Converter\r\n\n * The liquidity pool v2 converter is a specialized version of a converter that uses\r\nprice oracles to rebalance the reserve weights in such a way that the primary token\r\nbalance always strives to match the staked balance.\r\n\n * This type of liquidity pool always has 2 reserves and the reserve weights are dynamic.\r", - "fullyImplemented": true, - "id": 16610, - "linearizedBaseContracts": [ - 16610, - 6210, - 3414, - 21710, - 20932, - 21976, - 22052, - 21324, - 21933, - 22313, - 11817, - 22247 - ], - "name": "LiquidityPoolV2Converter", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": true, - "id": 14470, - "name": "AMPLIFICATION_FACTOR", - "nodeType": "VariableDeclaration", - "scope": 16610, - "src": "718:49:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 14468, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "718:5:25", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "3230", - "id": 14469, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "765:2:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_20_by_1", - "typeString": "int_const 20" - }, - "value": "20" - }, - "visibility": "internal" - }, - { - "constant": true, - "id": 14473, - "name": "MAX_DYNAMIC_FEE_FACTOR", - "nodeType": "VariableDeclaration", - "scope": 16610, - "src": "839:56:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 14471, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "839:6:25", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "313030303030", - "id": 14472, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "889:6:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_100000_by_1", - "typeString": "int_const 100000" - }, - "value": "100000" - }, - "visibility": "internal" - }, - { - "canonicalName": "LiquidityPoolV2Converter.Fraction", - "id": 14478, - "members": [ - { - "constant": false, - "id": 14475, - "name": "n", - "nodeType": "VariableDeclaration", - "scope": 14478, - "src": "999:9:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 14474, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "999:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 14477, - "name": "d", - "nodeType": "VariableDeclaration", - "scope": 14478, - "src": "1033:9:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 14476, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1033:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "name": "Fraction", - "nodeType": "StructDefinition", - "scope": 16610, - "src": "972:94:25", - "visibility": "public" - }, - { - "constant": false, - "id": 14480, - "name": "priceOracle", - "nodeType": "VariableDeclaration", - "scope": 16610, - "src": "1074:31:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IPriceOracle_$22297", - "typeString": "contract IPriceOracle" - }, - "typeName": { - "contractScope": null, - "id": 14479, - "name": "IPriceOracle", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 22297, - "src": "1074:12:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IPriceOracle_$22297", - "typeString": "contract IPriceOracle" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 14482, - "name": "primaryReserveToken", - "nodeType": "VariableDeclaration", - "scope": 16610, - "src": "1168:38:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - "typeName": { - "contractScope": null, - "id": 14481, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "1168:11:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 14484, - "name": "secondaryReserveToken", - "nodeType": "VariableDeclaration", - "scope": 16610, - "src": "1268:40:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - "typeName": { - "contractScope": null, - "id": 14483, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "1268:11:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 14488, - "name": "stakedBalances", - "nodeType": "VariableDeclaration", - "scope": 16610, - "src": "1378:51:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "typeName": { - "id": 14487, - "keyType": { - "id": 14485, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1387:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "1378:28:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 14486, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1398:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 14492, - "name": "reservesToPoolTokens", - "nodeType": "VariableDeclaration", - "scope": 16610, - "src": "1504:61:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_contract$_ISmartToken_$20295_$", - "typeString": "mapping(address => contract ISmartToken)" - }, - "typeName": { - "id": 14491, - "keyType": { - "id": 14489, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1513:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "1504:32:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_contract$_ISmartToken_$20295_$", - "typeString": "mapping(address => contract ISmartToken)" - }, - "valueType": { - "contractScope": null, - "id": 14490, - "name": "ISmartToken", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20295, - "src": "1524:11:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISmartToken_$20295", - "typeString": "contract ISmartToken" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 14496, - "name": "poolTokensToReserves", - "nodeType": "VariableDeclaration", - "scope": 16610, - "src": "1612:61:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_contract$_IERC20Token_$20240_$", - "typeString": "mapping(address => contract IERC20Token)" - }, - "typeName": { - "id": 14495, - "keyType": { - "id": 14493, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1621:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "1612:32:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_contract$_IERC20Token_$20240_$", - "typeString": "mapping(address => contract IERC20Token)" - }, - "valueType": { - "contractScope": null, - "id": 14494, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "1632:11:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": true, - "id": 14499, - "name": "RATE_PROPAGATION_PERIOD", - "nodeType": "VariableDeclaration", - "scope": 16610, - "src": "1796:61:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 14497, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1796:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "3130", - "id": 14498, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1847:10:25", - "subdenomination": "minutes", - "typeDescriptions": { - "typeIdentifier": "t_rational_600_by_1", - "typeString": "int_const 600" - }, - "value": "10" - }, - "visibility": "private" - }, - { - "constant": false, - "id": 14501, - "name": "referenceRate", - "nodeType": "VariableDeclaration", - "scope": 16610, - "src": "1866:29:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Fraction_$14478_storage", - "typeString": "struct LiquidityPoolV2Converter.Fraction" - }, - "typeName": { - "contractScope": null, - "id": 14500, - "name": "Fraction", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 14478, - "src": "1866:8:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Fraction_$14478_storage_ptr", - "typeString": "struct LiquidityPoolV2Converter.Fraction" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 14503, - "name": "referenceRateUpdateTime", - "nodeType": "VariableDeclaration", - "scope": 16610, - "src": "1999:38:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 14502, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1999:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 14505, - "name": "lastConversionRate", - "nodeType": "VariableDeclaration", - "scope": 16610, - "src": "2112:34:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Fraction_$14478_storage", - "typeString": "struct LiquidityPoolV2Converter.Fraction" - }, - "typeName": { - "contractScope": null, - "id": 14504, - "name": "Fraction", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 14478, - "src": "2112:8:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Fraction_$14478_storage_ptr", - "typeString": "struct LiquidityPoolV2Converter.Fraction" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 14509, - "name": "maxStakedBalances", - "nodeType": "VariableDeclaration", - "scope": 16610, - "src": "2294:53:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "typeName": { - "id": 14508, - "keyType": { - "id": 14506, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2303:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "2294:28:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 14507, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2314:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 14512, - "name": "maxStakedBalanceEnabled", - "nodeType": "VariableDeclaration", - "scope": 16610, - "src": "2354:42:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 14510, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2354:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 14511, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2392:4:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "visibility": "public" - }, - { - "constant": false, - "id": 14515, - "name": "dynamicFeeFactor", - "nodeType": "VariableDeclaration", - "scope": 16610, - "src": "2405:39:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 14513, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2405:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "3730303030", - "id": 14514, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2439:5:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_70000_by_1", - "typeString": "int_const 70000" - }, - "value": "70000" - }, - "visibility": "public" - }, - { - "anonymous": false, - "documentation": "@dev triggered when the dynamic fee factor is updated\r\n\n * @param _prevFactor previous factor percentage, represented in ppm\r\n@param _newFactor new factor percentage, represented in ppm\r", - "id": 14521, - "name": "DynamicFeeFactorUpdate", - "nodeType": "EventDefinition", - "parameters": { - "id": 14520, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 14517, - "indexed": false, - "name": "_prevFactor", - "nodeType": "VariableDeclaration", - "scope": 14521, - "src": "2780:19:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 14516, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2780:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 14519, - "indexed": false, - "name": "_newFactor", - "nodeType": "VariableDeclaration", - "scope": 14521, - "src": "2801:18:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 14518, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2801:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2779:41:25" - }, - "src": "2751:70:25" - }, - { - "body": { - "id": 14535, - "nodeType": "Block", - "src": "3381:8:25", - "statements": [] - }, - "documentation": "@dev initializes a new LiquidityPoolV2Converter instance\r\n\n * @param _poolTokensContainer pool tokens container governed by the converter\r\n@param _registry address of a contract registry contract\r\n@param _maxConversionFee maximum conversion fee, represented in ppm\r", - "id": 14536, - "implemented": true, - "isConstructor": true, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 14530, - "name": "_poolTokensContainer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14523, - "src": "3324:20:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IPoolTokensContainer_$17009", - "typeString": "contract IPoolTokensContainer" - } - }, - { - "argumentTypes": null, - "id": 14531, - "name": "_registry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14525, - "src": "3346:9:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IContractRegistry_$22220", - "typeString": "contract IContractRegistry" - } - }, - { - "argumentTypes": null, - "id": 14532, - "name": "_maxConversionFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14527, - "src": "3357:17:25", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "id": 14533, - "modifierName": { - "argumentTypes": null, - "id": 14529, - "name": "LiquidityPoolConverter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6210, - "src": "3301:22:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_LiquidityPoolConverter_$6210_$", - "typeString": "type(contract LiquidityPoolConverter)" - } - }, - "nodeType": "ModifierInvocation", - "src": "3301:74:25" - } - ], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 14528, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 14523, - "name": "_poolTokensContainer", - "nodeType": "VariableDeclaration", - "scope": 14536, - "src": "3187:41:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IPoolTokensContainer_$17009", - "typeString": "contract IPoolTokensContainer" - }, - "typeName": { - "contractScope": null, - "id": 14522, - "name": "IPoolTokensContainer", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 17009, - "src": "3187:20:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IPoolTokensContainer_$17009", - "typeString": "contract IPoolTokensContainer" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 14525, - "name": "_registry", - "nodeType": "VariableDeclaration", - "scope": 14536, - "src": "3230:27:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IContractRegistry_$22220", - "typeString": "contract IContractRegistry" - }, - "typeName": { - "contractScope": null, - "id": 14524, - "name": "IContractRegistry", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 22220, - "src": "3230:17:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IContractRegistry_$22220", - "typeString": "contract IContractRegistry" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 14527, - "name": "_maxConversionFee", - "nodeType": "VariableDeclaration", - "scope": 14536, - "src": "3259:24:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 14526, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "3259:6:25", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3186:98:25" - }, - "payable": false, - "returnParameters": { - "id": 14534, - "nodeType": "ParameterList", - "parameters": [], - "src": "3381:0:25" - }, - "scope": 16610, - "src": "3175:214:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 14545, - "nodeType": "Block", - "src": "3487:56:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 14541, - "name": "_address", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14538, - "src": "3514:8:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISmartToken_$20295", - "typeString": "contract ISmartToken" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_ISmartToken_$20295", - "typeString": "contract ISmartToken" - } - ], - "id": 14540, - "name": "_validPoolToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14563, - "src": "3498:15:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_contract$_ISmartToken_$20295_$returns$__$", - "typeString": "function (contract ISmartToken) view" - } - }, - "id": 14542, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3498:25:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 14543, - "nodeType": "ExpressionStatement", - "src": "3498:25:25" - }, - { - "id": 14544, - "nodeType": "PlaceholderStatement", - "src": "3534:1:25" - } - ] - }, - "documentation": null, - "id": 14546, - "name": "validPoolToken", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 14539, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 14538, - "name": "_address", - "nodeType": "VariableDeclaration", - "scope": 14546, - "src": "3465:20:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISmartToken_$20295", - "typeString": "contract ISmartToken" - }, - "typeName": { - "contractScope": null, - "id": 14537, - "name": "ISmartToken", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20295, - "src": "3465:11:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISmartToken_$20295", - "typeString": "contract ISmartToken" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3464:22:25" - }, - "src": "3441:102:25", - "visibility": "internal" - }, - { - "body": { - "id": 14562, - "nodeType": "Block", - "src": "3659:98:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 14558, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 14552, - "name": "poolTokensToReserves", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14496, - "src": "3678:20:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_contract$_IERC20Token_$20240_$", - "typeString": "mapping(address => contract IERC20Token)" - } - }, - "id": 14554, - "indexExpression": { - "argumentTypes": null, - "id": 14553, - "name": "_address", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14548, - "src": "3699:8:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISmartToken_$20295", - "typeString": "contract ISmartToken" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3678:30:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 14556, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3720:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 14555, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3712:7:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 14557, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3712:10:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3678:44:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552525f494e56414c49445f504f4f4c5f544f4b454e", - "id": 14559, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3724:24:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_eed1b5de9a98cde04e371329406f26607f5671e3e7b23ea150ebcb6d35102f1f", - "typeString": "literal_string \"ERR_INVALID_POOL_TOKEN\"" - }, - "value": "ERR_INVALID_POOL_TOKEN" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_eed1b5de9a98cde04e371329406f26607f5671e3e7b23ea150ebcb6d35102f1f", - "typeString": "literal_string \"ERR_INVALID_POOL_TOKEN\"" - } - ], - "id": 14551, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 22341, - 22342 - ], - "referencedDeclaration": 22342, - "src": "3670:7:25", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 14560, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3670:79:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 14561, - "nodeType": "ExpressionStatement", - "src": "3670:79:25" - } - ] - }, - "documentation": null, - "id": 14563, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "_validPoolToken", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 14549, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 14548, - "name": "_address", - "nodeType": "VariableDeclaration", - "scope": 14563, - "src": "3623:20:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISmartToken_$20295", - "typeString": "contract ISmartToken" - }, - "typeName": { - "contractScope": null, - "id": 14547, - "name": "ISmartToken", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20295, - "src": "3623:11:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISmartToken_$20295", - "typeString": "contract ISmartToken" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3622:22:25" - }, - "payable": false, - "returnParameters": { - "id": 14550, - "nodeType": "ParameterList", - "parameters": [], - "src": "3659:0:25" - }, - "scope": 16610, - "src": "3598:159:25", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 14570, - "nodeType": "Block", - "src": "3956:27:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "hexValue": "32", - "id": 14568, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3974:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "functionReturnParameters": 14567, - "id": 14569, - "nodeType": "Return", - "src": "3967:8:25" - } - ] - }, - "documentation": "@dev returns the converter type\r\n\n * @return see the converter types in the the main contract doc\r", - "id": 14571, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "converterType", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 14564, - "nodeType": "ParameterList", - "parameters": [], - "src": "3924:2:25" - }, - "payable": false, - "returnParameters": { - "id": 14567, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 14566, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 14571, - "src": "3948:6:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 14565, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "3948:6:25", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3947:8:25" - }, - "scope": 16610, - "src": "3902:81:25", - "stateMutability": "pure", - "superFunction": 11655, - "visibility": "public" - }, - { - "body": { - "id": 14586, - "nodeType": "Block", - "src": "4201:71:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 14584, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 14576, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22452, - "src": "4219:5:25", - "typeDescriptions": { - "typeIdentifier": "t_super$_LiquidityPoolV2Converter_$16610", - "typeString": "contract super LiquidityPoolV2Converter" - } - }, - "id": 14577, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isActive", - "nodeType": "MemberAccess", - "referencedDeclaration": 2802, - "src": "4219:14:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$", - "typeString": "function () view returns (bool)" - } - }, - "id": 14578, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4219:16:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 14583, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 14579, - "name": "priceOracle", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14480, - "src": "4239:11:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IPriceOracle_$22297", - "typeString": "contract IPriceOracle" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 14581, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4262:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 14580, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4254:7:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 14582, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4254:10:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "4239:25:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "4219:45:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 14575, - "id": 14585, - "nodeType": "Return", - "src": "4212:52:25" - } - ] - }, - "documentation": "@dev returns true if the converter is active, false otherwise\r\n\n * @return true if the converter is active, false otherwise\r", - "id": 14587, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "isActive", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 14572, - "nodeType": "ParameterList", - "parameters": [], - "src": "4171:2:25" - }, - "payable": false, - "returnParameters": { - "id": 14575, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 14574, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 14587, - "src": "4195:4:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 14573, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "4195:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4194:6:25" - }, - "scope": 16610, - "src": "4154:118:25", - "stateMutability": "view", - "superFunction": 2802, - "visibility": "public" - }, - { - "body": { - "id": 14594, - "nodeType": "Block", - "src": "4482:46:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 14592, - "name": "AMPLIFICATION_FACTOR", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14470, - "src": "4500:20:25", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "functionReturnParameters": 14591, - "id": 14593, - "nodeType": "Return", - "src": "4493:27:25" - } - ] - }, - "documentation": "@dev returns the liquidity amplification factor in the pool\r\n\n * @return liquidity amplification factor\r", - "id": 14595, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "amplificationFactor", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 14588, - "nodeType": "ParameterList", - "parameters": [], - "src": "4451:2:25" - }, - "payable": false, - "returnParameters": { - "id": 14591, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 14590, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 14595, - "src": "4475:5:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 14589, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "4475:5:25", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4474:7:25" - }, - "scope": 16610, - "src": "4423:105:25", - "stateMutability": "pure", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 14787, - "nodeType": "Block", - "src": "5585:2242:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 14630, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 14624, - "name": "anchor", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2511 - ], - "referencedDeclaration": 2511, - "src": "5642:6:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - }, - "id": 14625, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "owner", - "nodeType": "MemberAccess", - "referencedDeclaration": 22238, - "src": "5642:12:25", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", - "typeString": "function () view external returns (address)" - } - }, - "id": 14626, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5642:14:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 14628, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22451, - "src": "5668:4:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_LiquidityPoolV2Converter_$16610", - "typeString": "contract LiquidityPoolV2Converter" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_LiquidityPoolV2Converter_$16610", - "typeString": "contract LiquidityPoolV2Converter" - } - ], - "id": 14627, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "5660:7:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 14629, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5660:13:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "5642:31:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552525f414e43484f525f4e4f545f4f574e4544", - "id": 14631, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5675:22:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_177ebf4a5417e29571b85651bfed4f759bbb0c457a65f31f55950233ecfaf584", - "typeString": "literal_string \"ERR_ANCHOR_NOT_OWNED\"" - }, - "value": "ERR_ANCHOR_NOT_OWNED" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_177ebf4a5417e29571b85651bfed4f759bbb0c457a65f31f55950233ecfaf584", - "typeString": "literal_string \"ERR_ANCHOR_NOT_OWNED\"" - } - ], - "id": 14623, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 22341, - 22342 - ], - "referencedDeclaration": 22342, - "src": "5634:7:25", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 14632, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5634:64:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 14633, - "nodeType": "ExpressionStatement", - "src": "5634:64:25" - }, - { - "assignments": [ - 14635 - ], - "declarations": [ - { - "constant": false, - "id": 14635, - "name": "oracleWhitelist", - "nodeType": "VariableDeclaration", - "scope": 14788, - "src": "5740:26:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IWhitelist_$22323", - "typeString": "contract IWhitelist" - }, - "typeName": { - "contractScope": null, - "id": 14634, - "name": "IWhitelist", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 22323, - "src": "5740:10:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IWhitelist_$22323", - "typeString": "contract IWhitelist" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 14641, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 14638, - "name": "CHAINLINK_ORACLE_WHITELIST", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20785, - "src": "5790:26:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 14637, - "name": "addressOf", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20931, - "src": "5780:9:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$", - "typeString": "function (bytes32) view returns (address)" - } - }, - "id": 14639, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5780:37:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 14636, - "name": "IWhitelist", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22323, - "src": "5769:10:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IWhitelist_$22323_$", - "typeString": "type(contract IWhitelist)" - } - }, - "id": 14640, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5769:49:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IWhitelist_$22323", - "typeString": "contract IWhitelist" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5740:78:25" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 14645, - "name": "_primaryReserveOracle", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14599, - "src": "5867:21:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", - "typeString": "contract IConsumerPriceOracle" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", - "typeString": "contract IConsumerPriceOracle" - } - ], - "expression": { - "argumentTypes": null, - "id": 14643, - "name": "oracleWhitelist", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14635, - "src": "5837:15:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IWhitelist_$22323", - "typeString": "contract IWhitelist" - } - }, - "id": 14644, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isWhitelisted", - "nodeType": "MemberAccess", - "referencedDeclaration": 22322, - "src": "5837:29:25", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view external returns (bool)" - } - }, - "id": 14646, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5837:52:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552525f494e56414c49445f4f5241434c45", - "id": 14647, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5891:20:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_838cc927fcaf7c7c6b40a2418c9d314e4eaed53a6395fa4bccbb5e6a4666df25", - "typeString": "literal_string \"ERR_INVALID_ORACLE\"" - }, - "value": "ERR_INVALID_ORACLE" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_838cc927fcaf7c7c6b40a2418c9d314e4eaed53a6395fa4bccbb5e6a4666df25", - "typeString": "literal_string \"ERR_INVALID_ORACLE\"" - } - ], - "id": 14642, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 22341, - 22342 - ], - "referencedDeclaration": 22342, - "src": "5829:7:25", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 14648, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5829:83:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 14649, - "nodeType": "ExpressionStatement", - "src": "5829:83:25" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 14653, - "name": "_secondaryReserveOracle", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14601, - "src": "5961:23:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", - "typeString": "contract IConsumerPriceOracle" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", - "typeString": "contract IConsumerPriceOracle" - } - ], - "expression": { - "argumentTypes": null, - "id": 14651, - "name": "oracleWhitelist", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14635, - "src": "5931:15:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IWhitelist_$22323", - "typeString": "contract IWhitelist" - } - }, - "id": 14652, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isWhitelisted", - "nodeType": "MemberAccess", - "referencedDeclaration": 22322, - "src": "5931:29:25", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view external returns (bool)" - } - }, - "id": 14654, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5931:54:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552525f494e56414c49445f4f5241434c45", - "id": 14655, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5987:20:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_838cc927fcaf7c7c6b40a2418c9d314e4eaed53a6395fa4bccbb5e6a4666df25", - "typeString": "literal_string \"ERR_INVALID_ORACLE\"" - }, - "value": "ERR_INVALID_ORACLE" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_838cc927fcaf7c7c6b40a2418c9d314e4eaed53a6395fa4bccbb5e6a4666df25", - "typeString": "literal_string \"ERR_INVALID_ORACLE\"" - } - ], - "id": 14650, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 22341, - 22342 - ], - "referencedDeclaration": 22342, - "src": "5923:7:25", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 14656, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5923:85:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 14657, - "nodeType": "ExpressionStatement", - "src": "5923:85:25" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 14658, - "name": "createPoolTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16123, - "src": "6096:16:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", - "typeString": "function ()" - } - }, - "id": 14659, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6096:18:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 14660, - "nodeType": "ExpressionStatement", - "src": "6096:18:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 14663, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 14661, - "name": "primaryReserveToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14482, - "src": "6183:19:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 14662, - "name": "_primaryReserveToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14597, - "src": "6205:20:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "src": "6183:42:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "id": 14664, - "nodeType": "ExpressionStatement", - "src": "6183:42:25" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - "id": 14669, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 14665, - "name": "_primaryReserveToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14597, - "src": "6240:20:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 14666, - "name": "reserveTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2516, - "src": "6264:13:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_storage", - "typeString": "contract IERC20Token[] storage ref" - } - }, - "id": 14668, - "indexExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 14667, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6278:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6264:16:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "src": "6240:40:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "expression": { - "argumentTypes": null, - "id": 14680, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 14676, - "name": "secondaryReserveToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14484, - "src": "6364:21:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 14677, - "name": "reserveTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2516, - "src": "6388:13:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_storage", - "typeString": "contract IERC20Token[] storage ref" - } - }, - "id": 14679, - "indexExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 14678, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6402:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6388:16:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "src": "6364:40:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "id": 14681, - "nodeType": "ExpressionStatement", - "src": "6364:40:25" - }, - "id": 14682, - "nodeType": "IfStatement", - "src": "6236:168:25", - "trueBody": { - "expression": { - "argumentTypes": null, - "id": 14674, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 14670, - "name": "secondaryReserveToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14484, - "src": "6295:21:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 14671, - "name": "reserveTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2516, - "src": "6319:13:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_storage", - "typeString": "contract IERC20Token[] storage ref" - } - }, - "id": 14673, - "indexExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 14672, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6333:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6319:16:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "src": "6295:40:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "id": 14675, - "nodeType": "ExpressionStatement", - "src": "6295:40:25" - } - }, - { - "assignments": [ - 14684 - ], - "declarations": [ - { - "constant": false, - "id": 14684, - "name": "customFactory", - "nodeType": "VariableDeclaration", - "scope": 14788, - "src": "6492:51:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_LiquidityPoolV2ConverterCustomFactory_$16692", - "typeString": "contract LiquidityPoolV2ConverterCustomFactory" - }, - "typeName": { - "contractScope": null, - "id": 14683, - "name": "LiquidityPoolV2ConverterCustomFactory", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 16692, - "src": "6492:37:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_LiquidityPoolV2ConverterCustomFactory_$16692", - "typeString": "contract LiquidityPoolV2ConverterCustomFactory" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 14696, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 14692, - "name": "converterType", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 14571 - ], - "referencedDeclaration": 14571, - "src": "6661:13:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$__$returns$_t_uint16_$", - "typeString": "function () pure returns (uint16)" - } - }, - "id": 14693, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6661:15:25", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 14688, - "name": "CONVERTER_FACTORY", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20761, - "src": "6625:17:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 14687, - "name": "addressOf", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20931, - "src": "6615:9:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$", - "typeString": "function (bytes32) view returns (address)" - } - }, - "id": 14689, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6615:28:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 14686, - "name": "IConverterFactory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11871, - "src": "6597:17:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IConverterFactory_$11871_$", - "typeString": "type(contract IConverterFactory)" - } - }, - "id": 14690, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6597:47:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterFactory_$11871", - "typeString": "contract IConverterFactory" - } - }, - "id": 14691, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "customFactories", - "nodeType": "MemberAccess", - "referencedDeclaration": 11870, - "src": "6597:63:25", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_uint16_$returns$_t_contract$_ITypedConverterCustomFactory_$12268_$", - "typeString": "function (uint16) view external returns (contract ITypedConverterCustomFactory)" - } - }, - "id": 14694, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6597:80:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ITypedConverterCustomFactory_$12268", - "typeString": "contract ITypedConverterCustomFactory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_ITypedConverterCustomFactory_$12268", - "typeString": "contract ITypedConverterCustomFactory" - } - ], - "id": 14685, - "name": "LiquidityPoolV2ConverterCustomFactory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16692, - "src": "6559:37:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_LiquidityPoolV2ConverterCustomFactory_$16692_$", - "typeString": "type(contract LiquidityPoolV2ConverterCustomFactory)" - } - }, - "id": 14695, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6559:119:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_LiquidityPoolV2ConverterCustomFactory_$16692", - "typeString": "contract LiquidityPoolV2ConverterCustomFactory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6492:186:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 14705, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 14697, - "name": "priceOracle", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14480, - "src": "6689:11:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IPriceOracle_$22297", - "typeString": "contract IPriceOracle" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 14700, - "name": "_primaryReserveToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14597, - "src": "6735:20:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - { - "argumentTypes": null, - "id": 14701, - "name": "secondaryReserveToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14484, - "src": "6757:21:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - { - "argumentTypes": null, - "id": 14702, - "name": "_primaryReserveOracle", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14599, - "src": "6780:21:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", - "typeString": "contract IConsumerPriceOracle" - } - }, - { - "argumentTypes": null, - "id": 14703, - "name": "_secondaryReserveOracle", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14601, - "src": "6803:23:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", - "typeString": "contract IConsumerPriceOracle" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - { - "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", - "typeString": "contract IConsumerPriceOracle" - }, - { - "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", - "typeString": "contract IConsumerPriceOracle" - } - ], - "expression": { - "argumentTypes": null, - "id": 14698, - "name": "customFactory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14684, - "src": "6703:13:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_LiquidityPoolV2ConverterCustomFactory_$16692", - "typeString": "contract LiquidityPoolV2ConverterCustomFactory" - } - }, - "id": 14699, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "createPriceOracle", - "nodeType": "MemberAccess", - "referencedDeclaration": 16691, - "src": "6703:31:25", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_contract$_IERC20Token_$20240_$_t_contract$_IERC20Token_$20240_$_t_contract$_IConsumerPriceOracle_$22203_$_t_contract$_IConsumerPriceOracle_$22203_$returns$_t_contract$_IPriceOracle_$22297_$", - "typeString": "function (contract IERC20Token,contract IERC20Token,contract IConsumerPriceOracle,contract IConsumerPriceOracle) external returns (contract IPriceOracle)" - } - }, - "id": 14704, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6703:124:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IPriceOracle_$22297", - "typeString": "contract IPriceOracle" - } - }, - "src": "6689:138:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IPriceOracle_$22297", - "typeString": "contract IPriceOracle" - } - }, - "id": 14706, - "nodeType": "ExpressionStatement", - "src": "6689:138:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 14718, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 14707, - "name": "referenceRate", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14501, - "src": "6841:13:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Fraction_$14478_storage", - "typeString": "struct LiquidityPoolV2Converter.Fraction storage ref" - } - }, - "id": 14709, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "n", - "nodeType": "MemberAccess", - "referencedDeclaration": 14475, - "src": "6841:15:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 14710, - "name": "referenceRate", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14501, - "src": "6858:13:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Fraction_$14478_storage", - "typeString": "struct LiquidityPoolV2Converter.Fraction storage ref" - } - }, - "id": 14711, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "d", - "nodeType": "MemberAccess", - "referencedDeclaration": 14477, - "src": "6858:15:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 14712, - "isConstant": false, - "isInlineArray": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "TupleExpression", - "src": "6840:34:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", - "typeString": "tuple(uint256,uint256)" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 14715, - "name": "primaryReserveToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14482, - "src": "6900:19:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - { - "argumentTypes": null, - "id": 14716, - "name": "secondaryReserveToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14484, - "src": "6921:21:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - ], - "expression": { - "argumentTypes": null, - "id": 14713, - "name": "priceOracle", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14480, - "src": "6877:11:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IPriceOracle_$22297", - "typeString": "contract IPriceOracle" - } - }, - "id": 14714, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "latestRate", - "nodeType": "MemberAccess", - "referencedDeclaration": 22262, - "src": "6877:22:25", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_contract$_IERC20Token_$20240_$_t_contract$_IERC20Token_$20240_$returns$_t_uint256_$_t_uint256_$", - "typeString": "function (contract IERC20Token,contract IERC20Token) view external returns (uint256,uint256)" - } - }, - "id": 14717, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6877:66:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", - "typeString": "tuple(uint256,uint256)" - } - }, - "src": "6840:103:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 14719, - "nodeType": "ExpressionStatement", - "src": "6840:103:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 14722, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 14720, - "name": "lastConversionRate", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14505, - "src": "6954:18:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Fraction_$14478_storage", - "typeString": "struct LiquidityPoolV2Converter.Fraction storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 14721, - "name": "referenceRate", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14501, - "src": "6975:13:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Fraction_$14478_storage", - "typeString": "struct LiquidityPoolV2Converter.Fraction storage ref" - } - }, - "src": "6954:34:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Fraction_$14478_storage", - "typeString": "struct LiquidityPoolV2Converter.Fraction storage ref" - } - }, - "id": 14723, - "nodeType": "ExpressionStatement", - "src": "6954:34:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 14727, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 14724, - "name": "referenceRateUpdateTime", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14503, - "src": "7001:23:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 14725, - "name": "time", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16520, - "src": "7027:4:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", - "typeString": "function () view returns (uint256)" - } - }, - "id": 14726, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7027:6:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7001:32:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 14728, - "nodeType": "ExpressionStatement", - "src": "7001:32:25" - }, - { - "assignments": [ - 14730 - ], - "declarations": [ - { - "constant": false, - "id": 14730, - "name": "primaryReserveStakedBalance", - "nodeType": "VariableDeclaration", - "scope": 14788, - "src": "7161:35:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 14729, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7161:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 14734, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 14732, - "name": "primaryReserveToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14482, - "src": "7220:19:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - ], - "id": 14731, - "name": "reserveStakedBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14827, - "src": "7199:20:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_contract$_IERC20Token_$20240_$returns$_t_uint256_$", - "typeString": "function (contract IERC20Token) view returns (uint256)" - } - }, - "id": 14733, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7199:41:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "7161:79:25" - }, - { - "assignments": [ - 14736 - ], - "declarations": [ - { - "constant": false, - "id": 14736, - "name": "primaryReserveBalance", - "nodeType": "VariableDeclaration", - "scope": 14788, - "src": "7251:29:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 14735, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7251:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 14740, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 14738, - "name": "primaryReserveToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14482, - "src": "7298:19:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - ], - "id": 14737, - "name": "reserveBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 3106 - ], - "referencedDeclaration": 3106, - "src": "7283:14:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_contract$_IERC20Token_$20240_$returns$_t_uint256_$", - "typeString": "function (contract IERC20Token) view returns (uint256)" - } - }, - "id": 14739, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7283:35:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "7251:67:25" - }, - { - "assignments": [ - 14742 - ], - "declarations": [ - { - "constant": false, - "id": 14742, - "name": "secondaryReserveBalance", - "nodeType": "VariableDeclaration", - "scope": 14788, - "src": "7329:31:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 14741, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7329:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 14746, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 14744, - "name": "secondaryReserveToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14484, - "src": "7378:21:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - ], - "id": 14743, - "name": "reserveBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 3106 - ], - "referencedDeclaration": 3106, - "src": "7363:14:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_contract$_IERC20Token_$20240_$returns$_t_uint256_$", - "typeString": "function (contract IERC20Token) view returns (uint256)" - } - }, - "id": 14745, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7363:37:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "7329:71:25" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 14749, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 14747, - "name": "primaryReserveStakedBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14730, - "src": "7417:27:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 14748, - "name": "primaryReserveBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14736, - "src": "7448:21:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7417:52:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 14773, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 14769, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 14765, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 14763, - "name": "primaryReserveStakedBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14730, - "src": "7630:27:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 14764, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7660:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "7630:31:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 14768, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 14766, - "name": "primaryReserveBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14736, - "src": "7665:21:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 14767, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7689:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "7665:25:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "7630:60:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 14772, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 14770, - "name": "secondaryReserveBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14742, - "src": "7694:23:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 14771, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7720:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "7694:27:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "7630:91:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 14778, - "nodeType": "IfStatement", - "src": "7626:135:25", - "trueBody": { - "id": 14777, - "nodeType": "Block", - "src": "7723:38:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 14774, - "name": "rebalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16319, - "src": "7738:9:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", - "typeString": "function ()" - } - }, - "id": 14775, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7738:11:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 14776, - "nodeType": "ExpressionStatement", - "src": "7738:11:25" - } - ] - } - }, - "id": 14779, - "nodeType": "IfStatement", - "src": "7413:348:25", - "trueBody": { - "id": 14762, - "nodeType": "Block", - "src": "7471:140:25", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 14756, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 14752, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 14750, - "name": "primaryReserveStakedBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14730, - "src": "7490:27:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 14751, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7520:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "7490:31:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 14755, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 14753, - "name": "secondaryReserveBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14742, - "src": "7525:23:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 14754, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7551:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "7525:27:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "7490:62:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 14761, - "nodeType": "IfStatement", - "src": "7486:114:25", - "trueBody": { - "id": 14760, - "nodeType": "Block", - "src": "7554:46:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 14757, - "name": "rebalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16319, - "src": "7573:9:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", - "typeString": "function ()" - } - }, - "id": 14758, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7573:11:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 14759, - "nodeType": "ExpressionStatement", - "src": "7573:11:25" - } - ] - } - } - ] - } - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 14781, - "name": "converterType", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 14571 - ], - "referencedDeclaration": 14571, - "src": "7789:13:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$__$returns$_t_uint16_$", - "typeString": "function () pure returns (uint16)" - } - }, - "id": 14782, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7789:15:25", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - { - "argumentTypes": null, - "id": 14783, - "name": "anchor", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2511 - ], - "referencedDeclaration": 2511, - "src": "7806:6:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - }, - { - "argumentTypes": null, - "hexValue": "74727565", - "id": 14784, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7814:4:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - }, - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 14780, - "name": "Activation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2540, - "src": "7778:10:25", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint16_$_t_contract$_IConverterAnchor_$11826_$_t_bool_$returns$__$", - "typeString": "function (uint16,contract IConverterAnchor,bool)" - } - }, - "id": 14785, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7778:41:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 14786, - "nodeType": "EmitStatement", - "src": "7773:46:25" - } - ] - }, - "documentation": "@dev sets the pool's primary reserve token / price oracles and activates the pool\r\neach oracle must be able to provide the rate for each reserve token\r\nnote that the oracle must be whitelisted prior to the call\r\ncan only be called by the owner while the pool is inactive\r\n\n * @param _primaryReserveToken address of the pool's primary reserve token\r\n@param _primaryReserveOracle address of a chainlink price oracle for the primary reserve token\r\n@param _secondaryReserveOracle address of a chainlink price oracle for the secondary reserve token\r", - "id": 14788, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 14604, - "modifierName": { - "argumentTypes": null, - "id": 14603, - "name": "inactive", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2621, - "src": "5334:8:25", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "5334:8:25" - }, - { - "arguments": null, - "id": 14606, - "modifierName": { - "argumentTypes": null, - "id": 14605, - "name": "ownerOnly", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21265, - "src": "5352:9:25", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "5352:9:25" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 14608, - "name": "_primaryReserveToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14597, - "src": "5384:20:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - } - ], - "id": 14609, - "modifierName": { - "argumentTypes": null, - "id": 14607, - "name": "validReserve", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2642, - "src": "5371:12:25", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_contract$_IERC20Token_$20240_$", - "typeString": "modifier (contract IERC20Token)" - } - }, - "nodeType": "ModifierInvocation", - "src": "5371:34:25" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 14611, - "name": "_primaryReserveOracle", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14599, - "src": "5423:21:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", - "typeString": "contract IConsumerPriceOracle" - } - } - ], - "id": 14612, - "modifierName": { - "argumentTypes": null, - "id": 14610, - "name": "notThis", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22036, - "src": "5415:7:25", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$", - "typeString": "modifier (address)" - } - }, - "nodeType": "ModifierInvocation", - "src": "5415:30:25" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 14614, - "name": "_secondaryReserveOracle", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14601, - "src": "5463:23:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", - "typeString": "contract IConsumerPriceOracle" - } - } - ], - "id": 14615, - "modifierName": { - "argumentTypes": null, - "id": 14613, - "name": "notThis", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22036, - "src": "5455:7:25", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$", - "typeString": "modifier (address)" - } - }, - "nodeType": "ModifierInvocation", - "src": "5455:32:25" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 14617, - "name": "_primaryReserveOracle", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14599, - "src": "5510:21:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", - "typeString": "contract IConsumerPriceOracle" - } - } - ], - "id": 14618, - "modifierName": { - "argumentTypes": null, - "id": 14616, - "name": "validAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22011, - "src": "5497:12:25", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$", - "typeString": "modifier (address)" - } - }, - "nodeType": "ModifierInvocation", - "src": "5497:35:25" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 14620, - "name": "_secondaryReserveOracle", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14601, - "src": "5555:23:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", - "typeString": "contract IConsumerPriceOracle" - } - } - ], - "id": 14621, - "modifierName": { - "argumentTypes": null, - "id": 14619, - "name": "validAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22011, - "src": "5542:12:25", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$", - "typeString": "modifier (address)" - } - }, - "nodeType": "ModifierInvocation", - "src": "5542:37:25" - } - ], - "name": "activate", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 14602, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 14597, - "name": "_primaryReserveToken", - "nodeType": "VariableDeclaration", - "scope": 14788, - "src": "5185:32:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - "typeName": { - "contractScope": null, - "id": 14596, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "5185:11:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 14599, - "name": "_primaryReserveOracle", - "nodeType": "VariableDeclaration", - "scope": 14788, - "src": "5219:42:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", - "typeString": "contract IConsumerPriceOracle" - }, - "typeName": { - "contractScope": null, - "id": 14598, - "name": "IConsumerPriceOracle", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 22203, - "src": "5219:20:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", - "typeString": "contract IConsumerPriceOracle" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 14601, - "name": "_secondaryReserveOracle", - "nodeType": "VariableDeclaration", - "scope": 14788, - "src": "5263:44:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", - "typeString": "contract IConsumerPriceOracle" - }, - "typeName": { - "contractScope": null, - "id": 14600, - "name": "IConsumerPriceOracle", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 22203, - "src": "5263:20:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", - "typeString": "contract IConsumerPriceOracle" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5184:124:25" - }, - "payable": false, - "returnParameters": { - "id": 14622, - "nodeType": "ParameterList", - "parameters": [], - "src": "5585:0:25" - }, - "scope": 16610, - "src": "5167:2660:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 14811, - "nodeType": "Block", - "src": "8114:227:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 14798, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 14796, - "name": "_dynamicFeeFactor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14790, - "src": "8133:17:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "id": 14797, - "name": "MAX_DYNAMIC_FEE_FACTOR", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14473, - "src": "8154:22:25", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "src": "8133:43:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552525f494e56414c49445f44594e414d49435f4645455f464143544f52", - "id": 14799, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8178:32:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_bfbeafcc230428463508fd5aed9a7d20792bf8f54e2a5ce8c99f30d8e8a7812d", - "typeString": "literal_string \"ERR_INVALID_DYNAMIC_FEE_FACTOR\"" - }, - "value": "ERR_INVALID_DYNAMIC_FEE_FACTOR" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_bfbeafcc230428463508fd5aed9a7d20792bf8f54e2a5ce8c99f30d8e8a7812d", - "typeString": "literal_string \"ERR_INVALID_DYNAMIC_FEE_FACTOR\"" - } - ], - "id": 14795, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 22341, - 22342 - ], - "referencedDeclaration": 22342, - "src": "8125:7:25", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 14800, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8125:86:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 14801, - "nodeType": "ExpressionStatement", - "src": "8125:86:25" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 14803, - "name": "dynamicFeeFactor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14515, - "src": "8250:16:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 14804, - "name": "_dynamicFeeFactor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14790, - "src": "8268:17:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 14802, - "name": "DynamicFeeFactorUpdate", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14521, - "src": "8227:22:25", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (uint256,uint256)" - } - }, - "id": 14805, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8227:59:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 14806, - "nodeType": "EmitStatement", - "src": "8222:64:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 14809, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 14807, - "name": "dynamicFeeFactor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14515, - "src": "8297:16:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 14808, - "name": "_dynamicFeeFactor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14790, - "src": "8316:17:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8297:36:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 14810, - "nodeType": "ExpressionStatement", - "src": "8297:36:25" - } - ] - }, - "documentation": "@dev updates the current dynamic fee factor\r\ncan only be called by the contract owner\r\n\n * @param _dynamicFeeFactor new dynamic fee factor, represented in ppm\r", - "id": 14812, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 14793, - "modifierName": { - "argumentTypes": null, - "id": 14792, - "name": "ownerOnly", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21265, - "src": "8104:9:25", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "8104:9:25" - } - ], - "name": "setDynamicFeeFactor", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 14791, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 14790, - "name": "_dynamicFeeFactor", - "nodeType": "VariableDeclaration", - "scope": 14812, - "src": "8070:25:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 14789, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8070:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8069:27:25" - }, - "payable": false, - "returnParameters": { - "id": 14794, - "nodeType": "ParameterList", - "parameters": [], - "src": "8114:0:25" - }, - "scope": 16610, - "src": "8041:300:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 14826, - "nodeType": "Block", - "src": "8693:55:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 14822, - "name": "stakedBalances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14488, - "src": "8711:14:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 14824, - "indexExpression": { - "argumentTypes": null, - "id": 14823, - "name": "_reserveToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14814, - "src": "8726:13:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "8711:29:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 14821, - "id": 14825, - "nodeType": "Return", - "src": "8704:36:25" - } - ] - }, - "documentation": "@dev returns the staked balance of a given reserve token\r\n\n * @param _reserveToken reserve token address\r\n\n * @return staked balance\r", - "id": 14827, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 14817, - "name": "_reserveToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14814, - "src": "8646:13:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - } - ], - "id": 14818, - "modifierName": { - "argumentTypes": null, - "id": 14816, - "name": "validReserve", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2642, - "src": "8633:12:25", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_contract$_IERC20Token_$20240_$", - "typeString": "modifier (contract IERC20Token)" - } - }, - "nodeType": "ModifierInvocation", - "src": "8633:27:25" - } - ], - "name": "reserveStakedBalance", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 14815, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 14814, - "name": "_reserveToken", - "nodeType": "VariableDeclaration", - "scope": 14827, - "src": "8567:25:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - "typeName": { - "contractScope": null, - "id": 14813, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "8567:11:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8566:27:25" - }, - "payable": false, - "returnParameters": { - "id": 14821, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 14820, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 14827, - "src": "8679:7:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 14819, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8679:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8678:9:25" - }, - "scope": 16610, - "src": "8537:211:25", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 14851, - "nodeType": "Block", - "src": "9108:120:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 14847, - "name": "_reserveToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14829, - "src": "9205:13:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - ], - "id": 14846, - "name": "reserveBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 3106 - ], - "referencedDeclaration": 3106, - "src": "9190:14:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_contract$_IERC20Token_$20240_$returns$_t_uint256_$", - "typeString": "function (contract IERC20Token) view returns (uint256)" - } - }, - "id": 14848, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9190:29:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "id": 14843, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 14841, - "name": "AMPLIFICATION_FACTOR", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14470, - "src": "9160:20:25", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 14842, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9183:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "9160:24:25", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 14837, - "name": "stakedBalances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14488, - "src": "9126:14:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 14839, - "indexExpression": { - "argumentTypes": null, - "id": 14838, - "name": "_reserveToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14829, - "src": "9141:13:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9126:29:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 14840, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 21791, - "src": "9126:33:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 14844, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9126:59:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 14845, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 21737, - "src": "9126:63:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 14849, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9126:94:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 14836, - "id": 14850, - "nodeType": "Return", - "src": "9119:101:25" - } - ] - }, - "documentation": "@dev returns the amplified balance of a given reserve token\r\n\n * @param _reserveToken reserve token address\r\n\n * @return amplified balance\r", - "id": 14852, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 14832, - "name": "_reserveToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14829, - "src": "9061:13:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - } - ], - "id": 14833, - "modifierName": { - "argumentTypes": null, - "id": 14831, - "name": "validReserve", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2642, - "src": "9048:12:25", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_contract$_IERC20Token_$20240_$", - "typeString": "modifier (contract IERC20Token)" - } - }, - "nodeType": "ModifierInvocation", - "src": "9048:27:25" - } - ], - "name": "reserveAmplifiedBalance", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 14830, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 14829, - "name": "_reserveToken", - "nodeType": "VariableDeclaration", - "scope": 14852, - "src": "8982:25:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - "typeName": { - "contractScope": null, - "id": 14828, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "8982:11:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8981:27:25" - }, - "payable": false, - "returnParameters": { - "id": 14836, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 14835, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 14852, - "src": "9094:7:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 14834, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9094:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9093:9:25" - }, - "scope": 16610, - "src": "8949:279:25", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 14873, - "nodeType": "Block", - "src": "9699:59:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 14871, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 14867, - "name": "stakedBalances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14488, - "src": "9710:14:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 14869, - "indexExpression": { - "argumentTypes": null, - "id": 14868, - "name": "_reserveToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14854, - "src": "9725:13:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "9710:29:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 14870, - "name": "_balance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14856, - "src": "9742:8:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9710:40:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 14872, - "nodeType": "ExpressionStatement", - "src": "9710:40:25" - } - ] - }, - "documentation": "@dev sets the reserve's staked balance\r\ncan only be called by the upgrader contract while the upgrader is the owner\r\n\n * @param _reserveToken reserve token address\r\n@param _balance new reserve staked balance\r", - "id": 14874, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 14859, - "modifierName": { - "argumentTypes": null, - "id": 14858, - "name": "ownerOnly", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21265, - "src": "9613:9:25", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "9613:9:25" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 14861, - "name": "CONVERTER_UPGRADER", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20767, - "src": "9637:18:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "id": 14862, - "modifierName": { - "argumentTypes": null, - "id": 14860, - "name": "only", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20801, - "src": "9632:4:25", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_bytes32_$", - "typeString": "modifier (bytes32)" - } - }, - "nodeType": "ModifierInvocation", - "src": "9632:24:25" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 14864, - "name": "_reserveToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14854, - "src": "9679:13:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - } - ], - "id": 14865, - "modifierName": { - "argumentTypes": null, - "id": 14863, - "name": "validReserve", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2642, - "src": "9666:12:25", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_contract$_IERC20Token_$20240_$", - "typeString": "modifier (contract IERC20Token)" - } - }, - "nodeType": "ModifierInvocation", - "src": "9666:27:25" - } - ], - "name": "setReserveStakedBalance", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 14857, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 14854, - "name": "_reserveToken", - "nodeType": "VariableDeclaration", - "scope": 14874, - "src": "9543:25:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - "typeName": { - "contractScope": null, - "id": 14853, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "9543:11:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 14856, - "name": "_balance", - "nodeType": "VariableDeclaration", - "scope": 14874, - "src": "9570:16:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 14855, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9570:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9542:45:25" - }, - "payable": false, - "returnParameters": { - "id": 14866, - "nodeType": "ParameterList", - "parameters": [], - "src": "9699:0:25" - }, - "scope": 16610, - "src": "9510:248:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 14899, - "nodeType": "Block", - "src": "10227:156:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 14889, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 14883, - "name": "maxStakedBalances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14509, - "src": "10238:17:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 14887, - "indexExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 14884, - "name": "reserveTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2516, - "src": "10256:13:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_storage", - "typeString": "contract IERC20Token[] storage ref" - } - }, - "id": 14886, - "indexExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 14885, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10270:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "10256:16:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "10238:35:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 14888, - "name": "_reserve1MaxStakedBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14876, - "src": "10276:25:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "10238:63:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 14890, - "nodeType": "ExpressionStatement", - "src": "10238:63:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 14897, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 14891, - "name": "maxStakedBalances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14509, - "src": "10312:17:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 14895, - "indexExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 14892, - "name": "reserveTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2516, - "src": "10330:13:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_storage", - "typeString": "contract IERC20Token[] storage ref" - } - }, - "id": 14894, - "indexExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 14893, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10344:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "10330:16:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "10312:35:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 14896, - "name": "_reserve2MaxStakedBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14878, - "src": "10350:25:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "10312:63:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 14898, - "nodeType": "ExpressionStatement", - "src": "10312:63:25" - } - ] - }, - "documentation": "@dev sets the max staked balance for both reserves\r\navailable as a temporary mechanism during the pilot\r\ncan only be called by the owner\r\n\n * @param _reserve1MaxStakedBalance max staked balance for reserve 1\r\n@param _reserve2MaxStakedBalance max staked balance for reserve 2\r", - "id": 14900, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 14881, - "modifierName": { - "argumentTypes": null, - "id": 14880, - "name": "ownerOnly", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21265, - "src": "10217:9:25", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "10217:9:25" - } - ], - "name": "setMaxStakedBalances", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 14879, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 14876, - "name": "_reserve1MaxStakedBalance", - "nodeType": "VariableDeclaration", - "scope": 14900, - "src": "10140:33:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 14875, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10140:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 14878, - "name": "_reserve2MaxStakedBalance", - "nodeType": "VariableDeclaration", - "scope": 14900, - "src": "10175:33:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 14877, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10175:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10139:70:25" - }, - "payable": false, - "returnParameters": { - "id": 14882, - "nodeType": "ParameterList", - "parameters": [], - "src": "10227:0:25" - }, - "scope": 16610, - "src": "10110:273:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 14909, - "nodeType": "Block", - "src": "10667:50:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 14907, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 14905, - "name": "maxStakedBalanceEnabled", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14512, - "src": "10678:23:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 14906, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10704:5:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "src": "10678:31:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 14908, - "nodeType": "ExpressionStatement", - "src": "10678:31:25" - } - ] - }, - "documentation": "@dev disables the max staked balance mechanism\r\navailable as a temporary mechanism during the pilot\r\nonce disabled, it cannot be re-enabled\r\ncan only be called by the owner\r", - "id": 14910, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 14903, - "modifierName": { - "argumentTypes": null, - "id": 14902, - "name": "ownerOnly", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21265, - "src": "10657:9:25", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "10657:9:25" - } - ], - "name": "disableMaxStakedBalances", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 14901, - "nodeType": "ParameterList", - "parameters": [], - "src": "10647:2:25" - }, - "payable": false, - "returnParameters": { - "id": 14904, - "nodeType": "ParameterList", - "parameters": [], - "src": "10667:0:25" - }, - "scope": 16610, - "src": "10614:103:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 14921, - "nodeType": "Block", - "src": "11005:61:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 14917, - "name": "reservesToPoolTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14492, - "src": "11023:20:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_contract$_ISmartToken_$20295_$", - "typeString": "mapping(address => contract ISmartToken)" - } - }, - "id": 14919, - "indexExpression": { - "argumentTypes": null, - "id": 14918, - "name": "_reserveToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14912, - "src": "11044:13:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11023:35:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISmartToken_$20295", - "typeString": "contract ISmartToken" - } - }, - "functionReturnParameters": 14916, - "id": 14920, - "nodeType": "Return", - "src": "11016:42:25" - } - ] - }, - "documentation": "@dev returns the pool token address by the reserve token address\r\n\n * @param _reserveToken reserve token address\r\n\n * @return pool token address\r", - "id": 14922, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "poolToken", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 14913, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 14912, - "name": "_reserveToken", - "nodeType": "VariableDeclaration", - "scope": 14922, - "src": "10944:25:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - "typeName": { - "contractScope": null, - "id": 14911, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "10944:11:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10943:27:25" - }, - "payable": false, - "returnParameters": { - "id": 14916, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 14915, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 14922, - "src": "10992:11:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISmartToken_$20295", - "typeString": "contract ISmartToken" - }, - "typeName": { - "contractScope": null, - "id": 14914, - "name": "ISmartToken", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20295, - "src": "10992:11:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISmartToken_$20295", - "typeString": "contract ISmartToken" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10991:13:25" - }, - "scope": 16610, - "src": "10925:141:25", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 14961, - "nodeType": "Block", - "src": "11368:530:25", - "statements": [ - { - "assignments": [ - 14930 - ], - "declarations": [ - { - "constant": false, - "id": 14930, - "name": "poolTokenSupply", - "nodeType": "VariableDeclaration", - "scope": 14962, - "src": "11417:23:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 14929, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "11417:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 14934, - "initialValue": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 14931, - "name": "_poolToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14924, - "src": "11443:10:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISmartToken_$20295", - "typeString": "contract ISmartToken" - } - }, - "id": 14932, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "totalSupply", - "nodeType": "MemberAccess", - "referencedDeclaration": 20182, - "src": "11443:22:25", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", - "typeString": "function () view external returns (uint256)" - } - }, - "id": 14933, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11443:24:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "11417:50:25" - }, - { - "assignments": [ - 14936 - ], - "declarations": [ - { - "constant": false, - "id": 14936, - "name": "reserveToken", - "nodeType": "VariableDeclaration", - "scope": 14962, - "src": "11578:24:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - "typeName": { - "contractScope": null, - "id": 14935, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "11578:11:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 14940, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 14937, - "name": "poolTokensToReserves", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14496, - "src": "11605:20:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_contract$_IERC20Token_$20240_$", - "typeString": "mapping(address => contract IERC20Token)" - } - }, - "id": 14939, - "indexExpression": { - "argumentTypes": null, - "id": 14938, - "name": "_poolToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14924, - "src": "11626:10:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISmartToken_$20295", - "typeString": "contract ISmartToken" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11605:32:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "11578:59:25" - }, - { - "assignments": [ - 14942 - ], - "declarations": [ - { - "constant": false, - "id": 14942, - "name": "balance", - "nodeType": "VariableDeclaration", - "scope": 14962, - "src": "11648:15:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 14941, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "11648:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 14946, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 14944, - "name": "reserveToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14936, - "src": "11681:12:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - ], - "id": 14943, - "name": "reserveBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 3106 - ], - "referencedDeclaration": 3106, - "src": "11666:14:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_contract$_IERC20Token_$20240_$returns$_t_uint256_$", - "typeString": "function (contract IERC20Token) view returns (uint256)" - } - }, - "id": 14945, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11666:28:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "11648:46:25" - }, - { - "assignments": [ - 14948 - ], - "declarations": [ - { - "constant": false, - "id": 14948, - "name": "stakedBalance", - "nodeType": "VariableDeclaration", - "scope": 14962, - "src": "11705:21:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 14947, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "11705:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 14952, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 14949, - "name": "stakedBalances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14488, - "src": "11729:14:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 14951, - "indexExpression": { - "argumentTypes": null, - "id": 14950, - "name": "reserveToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14936, - "src": "11744:12:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11729:28:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "11705:52:25" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 14958, - "name": "stakedBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14948, - "src": "11876:13:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 14955, - "name": "poolTokenSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14930, - "src": "11855:15:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 14953, - "name": "balance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14942, - "src": "11843:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 14954, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 21791, - "src": "11843:11:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 14956, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11843:28:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 14957, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "div", - "nodeType": "MemberAccess", - "referencedDeclaration": 21816, - "src": "11843:32:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 14959, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11843:47:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 14928, - "id": 14960, - "nodeType": "Return", - "src": "11836:54:25" - } - ] - }, - "documentation": "@dev returns the maximum number of pool tokens that can currently be liquidated\r\n\n * @param _poolToken address of the pool token\r\n\n * @return liquidation limit\r", - "id": 14962, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "liquidationLimit", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 14925, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 14924, - "name": "_poolToken", - "nodeType": "VariableDeclaration", - "scope": 14962, - "src": "11314:22:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISmartToken_$20295", - "typeString": "contract ISmartToken" - }, - "typeName": { - "contractScope": null, - "id": 14923, - "name": "ISmartToken", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20295, - "src": "11314:11:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISmartToken_$20295", - "typeString": "contract ISmartToken" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11313:24:25" - }, - "payable": false, - "returnParameters": { - "id": 14928, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 14927, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 14962, - "src": "11359:7:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 14926, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "11359:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11358:9:25" - }, - "scope": 16610, - "src": "11288:610:25", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 14984, - "nodeType": "Block", - "src": "12296:190:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "id": 14973, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 14970, - "name": "reserveTokenCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2984, - "src": "12381:17:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_uint16_$", - "typeString": "function () view returns (uint16)" - } - }, - "id": 14971, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12381:19:25", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "hexValue": "32", - "id": 14972, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12403:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "src": "12381:23:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552525f494e56414c49445f524553455256455f434f554e54", - "id": 14974, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12406:27:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_ed94f14d8dcbb423a259b4072978fc0c494c6af1fea066a19023afb1a76ac87f", - "typeString": "literal_string \"ERR_INVALID_RESERVE_COUNT\"" - }, - "value": "ERR_INVALID_RESERVE_COUNT" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_ed94f14d8dcbb423a259b4072978fc0c494c6af1fea066a19023afb1a76ac87f", - "typeString": "literal_string \"ERR_INVALID_RESERVE_COUNT\"" - } - ], - "id": 14969, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 22341, - 22342 - ], - "referencedDeclaration": 22342, - "src": "12373:7:25", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 14975, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12373:61:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 14976, - "nodeType": "ExpressionStatement", - "src": "12373:61:25" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 14980, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14964, - "src": "12462:6:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - { - "argumentTypes": null, - "id": 14981, - "name": "_weight", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14966, - "src": "12470:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - ], - "expression": { - "argumentTypes": null, - "id": 14977, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22452, - "src": "12445:5:25", - "typeDescriptions": { - "typeIdentifier": "t_super$_LiquidityPoolV2Converter_$16610", - "typeString": "contract super LiquidityPoolV2Converter" - } - }, - "id": 14979, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "addReserve", - "nodeType": "MemberAccess", - "referencedDeclaration": 3074, - "src": "12445:16:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20Token_$20240_$_t_uint32_$returns$__$", - "typeString": "function (contract IERC20Token,uint32)" - } - }, - "id": 14982, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12445:33:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 14983, - "nodeType": "ExpressionStatement", - "src": "12445:33:25" - } - ] - }, - "documentation": "@dev defines a new reserve token for the converter\r\ncan only be called by the owner while the converter is inactive and\r\n2 reserves aren't defined yet\r\n\n * @param _token address of the reserve token\r\n@param _weight reserve weight, represented in ppm, 1-1000000\r", - "id": 14985, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "addReserve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 14967, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 14964, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 14985, - "src": "12253:18:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - "typeName": { - "contractScope": null, - "id": 14963, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "12253:11:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 14966, - "name": "_weight", - "nodeType": "VariableDeclaration", - "scope": 14985, - "src": "12273:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 14965, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "12273:6:25", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "12252:36:25" - }, - "payable": false, - "returnParameters": { - "id": 14968, - "nodeType": "ParameterList", - "parameters": [], - "src": "12296:0:25" - }, - "scope": 16610, - "src": "12233:253:25", - "stateMutability": "nonpayable", - "superFunction": 3074, - "visibility": "public" - }, - { - "body": { - "id": 15003, - "nodeType": "Block", - "src": "12818:98:25", - "statements": [ - { - "assignments": [ - 14993 - ], - "declarations": [ - { - "constant": false, - "id": 14993, - "name": "rate", - "nodeType": "VariableDeclaration", - "scope": 15004, - "src": "12829:20:25", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Fraction_$14478_memory_ptr", - "typeString": "struct LiquidityPoolV2Converter.Fraction" - }, - "typeName": { - "contractScope": null, - "id": 14992, - "name": "Fraction", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 14478, - "src": "12829:8:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Fraction_$14478_storage_ptr", - "typeString": "struct LiquidityPoolV2Converter.Fraction" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 14996, - "initialValue": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 14994, - "name": "_effectiveTokensRate", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16230, - "src": "12852:20:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_struct$_Fraction_$14478_memory_ptr_$", - "typeString": "function () view returns (struct LiquidityPoolV2Converter.Fraction memory)" - } - }, - "id": 14995, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12852:22:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Fraction_$14478_memory_ptr", - "typeString": "struct LiquidityPoolV2Converter.Fraction memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "12829:45:25" - }, - { - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 14997, - "name": "rate", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14993, - "src": "12893:4:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Fraction_$14478_memory_ptr", - "typeString": "struct LiquidityPoolV2Converter.Fraction memory" - } - }, - "id": 14998, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "n", - "nodeType": "MemberAccess", - "referencedDeclaration": 14475, - "src": "12893:6:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 14999, - "name": "rate", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14993, - "src": "12901:4:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Fraction_$14478_memory_ptr", - "typeString": "struct LiquidityPoolV2Converter.Fraction memory" - } - }, - "id": 15000, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "d", - "nodeType": "MemberAccess", - "referencedDeclaration": 14477, - "src": "12901:6:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 15001, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "12892:16:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", - "typeString": "tuple(uint256,uint256)" - } - }, - "functionReturnParameters": 14991, - "id": 15002, - "nodeType": "Return", - "src": "12885:23:25" - } - ] - }, - "documentation": "@dev returns the effective rate of 1 primary token in secondary tokens\r\n\n * @return rate of 1 primary token in secondary tokens (numerator)\r\n@return rate of 1 primary token in secondary tokens (denominator)\r", - "id": 15004, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "effectiveTokensRate", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 14986, - "nodeType": "ParameterList", - "parameters": [], - "src": "12776:2:25" - }, - "payable": false, - "returnParameters": { - "id": 14991, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 14988, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 15004, - "src": "12800:7:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 14987, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12800:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 14990, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 15004, - "src": "12809:7:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 14989, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12809:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "12799:18:25" - }, - "scope": 16610, - "src": "12748:168:25", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 15039, - "nodeType": "Block", - "src": "13149:370:25", - "statements": [ - { - "assignments": [ - 15012 - ], - "declarations": [ - { - "constant": false, - "id": 15012, - "name": "rate", - "nodeType": "VariableDeclaration", - "scope": 15040, - "src": "13160:20:25", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Fraction_$14478_memory_ptr", - "typeString": "struct LiquidityPoolV2Converter.Fraction" - }, - "typeName": { - "contractScope": null, - "id": 15011, - "name": "Fraction", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 14478, - "src": "13160:8:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Fraction_$14478_storage_ptr", - "typeString": "struct LiquidityPoolV2Converter.Fraction" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 15015, - "initialValue": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 15013, - "name": "_effectiveTokensRate", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16230, - "src": "13183:20:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_struct$_Fraction_$14478_memory_ptr_$", - "typeString": "function () view returns (struct LiquidityPoolV2Converter.Fraction memory)" - } - }, - "id": 15014, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13183:22:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Fraction_$14478_memory_ptr", - "typeString": "struct LiquidityPoolV2Converter.Fraction memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "13160:45:25" - }, - { - "assignments": [ - 15017, - 15019 - ], - "declarations": [ - { - "constant": false, - "id": 15017, - "name": "primaryReserveWeight", - "nodeType": "VariableDeclaration", - "scope": 15040, - "src": "13217:27:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 15016, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "13217:6:25", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 15019, - "name": "secondaryReserveWeight", - "nodeType": "VariableDeclaration", - "scope": 15040, - "src": "13246:29:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 15018, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "13246:6:25", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 15023, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 15021, - "name": "rate", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15012, - "src": "13303:4:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Fraction_$14478_memory_ptr", - "typeString": "struct LiquidityPoolV2Converter.Fraction memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_Fraction_$14478_memory_ptr", - "typeString": "struct LiquidityPoolV2Converter.Fraction memory" - } - ], - "id": 15020, - "name": "effectiveReserveWeights", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 15040, - 16365 - ], - "referencedDeclaration": 16365, - "src": "13279:23:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Fraction_$14478_memory_ptr_$returns$_t_uint32_$_t_uint32_$", - "typeString": "function (struct LiquidityPoolV2Converter.Fraction memory) view returns (uint32,uint32)" - } - }, - "id": 15022, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13279:29:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint32_$_t_uint32_$", - "typeString": "tuple(uint32,uint32)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "13216:92:25" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - "id": 15028, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 15024, - "name": "primaryReserveToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14482, - "src": "13325:19:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 15025, - "name": "reserveTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2516, - "src": "13348:13:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_storage", - "typeString": "contract IERC20Token[] storage ref" - } - }, - "id": 15027, - "indexExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 15026, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13362:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "13348:16:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "src": "13325:39:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 15034, - "nodeType": "IfStatement", - "src": "13321:125:25", - "trueBody": { - "id": 15033, - "nodeType": "Block", - "src": "13366:80:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "id": 15029, - "name": "primaryReserveWeight", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15017, - "src": "13389:20:25", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - { - "argumentTypes": null, - "id": 15030, - "name": "secondaryReserveWeight", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15019, - "src": "13411:22:25", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "id": 15031, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "13388:46:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint32_$_t_uint32_$", - "typeString": "tuple(uint32,uint32)" - } - }, - "functionReturnParameters": 15010, - "id": 15032, - "nodeType": "Return", - "src": "13381:53:25" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "id": 15035, - "name": "secondaryReserveWeight", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15019, - "src": "13466:22:25", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - { - "argumentTypes": null, - "id": 15036, - "name": "primaryReserveWeight", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15017, - "src": "13490:20:25", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "id": 15037, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "13465:46:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint32_$_t_uint32_$", - "typeString": "tuple(uint32,uint32)" - } - }, - "functionReturnParameters": 15010, - "id": 15038, - "nodeType": "Return", - "src": "13458:53:25" - } - ] - }, - "documentation": "@dev returns the effective reserve tokens weights\r\n\n * @return reserve1 weight\r\n@return reserve2 weight\r", - "id": 15040, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "effectiveReserveWeights", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 15005, - "nodeType": "ParameterList", - "parameters": [], - "src": "13107:2:25" - }, - "payable": false, - "returnParameters": { - "id": 15010, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 15007, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 15040, - "src": "13131:7:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 15006, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "13131:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 15009, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 15040, - "src": "13140:7:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 15008, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "13140:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "13130:18:25" - }, - "scope": 16610, - "src": "13075:444:25", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 15156, - "nodeType": "Block", - "src": "14138:1696:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 15056, - "name": "_sourceToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15042, - "src": "14286:12:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - ], - "id": 15055, - "name": "_validReserve", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2656, - "src": "14272:13:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_contract$_IERC20Token_$20240_$returns$__$", - "typeString": "function (contract IERC20Token) view" - } - }, - "id": 15057, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14272:27:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 15058, - "nodeType": "ExpressionStatement", - "src": "14272:27:25" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 15060, - "name": "_targetToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15044, - "src": "14324:12:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - ], - "id": 15059, - "name": "_validReserve", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2656, - "src": "14310:13:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_contract$_IERC20Token_$20240_$returns$__$", - "typeString": "function (contract IERC20Token) view" - } - }, - "id": 15061, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14310:27:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 15062, - "nodeType": "ExpressionStatement", - "src": "14310:27:25" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - "id": 15066, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 15064, - "name": "_sourceToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15042, - "src": "14356:12:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 15065, - "name": "_targetToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15044, - "src": "14372:12:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "src": "14356:28:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552525f53414d455f534f555243455f544152474554", - "id": 15067, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14386:24:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_238302f57e4481fe6a4c903e930919efa155f2aabe0b5da37da1448cea5fd634", - "typeString": "literal_string \"ERR_SAME_SOURCE_TARGET\"" - }, - "value": "ERR_SAME_SOURCE_TARGET" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_238302f57e4481fe6a4c903e930919efa155f2aabe0b5da37da1448cea5fd634", - "typeString": "literal_string \"ERR_SAME_SOURCE_TARGET\"" - } - ], - "id": 15063, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 22341, - 22342 - ], - "referencedDeclaration": 22342, - "src": "14348:7:25", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 15068, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14348:63:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 15069, - "nodeType": "ExpressionStatement", - "src": "14348:63:25" - }, - { - "assignments": [], - "declarations": [ - { - "constant": false, - "id": 15071, - "name": "sourceTokenWeight", - "nodeType": "VariableDeclaration", - "scope": 15157, - "src": "14522:24:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 15070, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "14522:6:25", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 15072, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "14522:24:25" - }, - { - "assignments": [], - "declarations": [ - { - "constant": false, - "id": 15074, - "name": "targetTokenWeight", - "nodeType": "VariableDeclaration", - "scope": 15157, - "src": "14557:24:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 15073, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "14557:6:25", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 15075, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "14557:24:25" - }, - { - "assignments": [], - "declarations": [ - { - "constant": false, - "id": 15077, - "name": "rate", - "nodeType": "VariableDeclaration", - "scope": 15157, - "src": "14721:20:25", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Fraction_$14478_memory_ptr", - "typeString": "struct LiquidityPoolV2Converter.Fraction" - }, - "typeName": { - "contractScope": null, - "id": 15076, - "name": "Fraction", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 14478, - "src": "14721:8:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Fraction_$14478_storage_ptr", - "typeString": "struct LiquidityPoolV2Converter.Fraction" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 15078, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "14721:20:25" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 15082, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 15079, - "name": "referenceRateUpdateTime", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14503, - "src": "14756:23:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 15080, - "name": "time", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16520, - "src": "14783:4:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", - "typeString": "function () view returns (uint256)" - } - }, - "id": 15081, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14783:6:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "14756:33:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 15137, - "nodeType": "Block", - "src": "14981:562:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 15105, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 15102, - "name": "rate", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15077, - "src": "15047:4:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Fraction_$14478_memory_ptr", - "typeString": "struct LiquidityPoolV2Converter.Fraction memory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 15103, - "name": "_effectiveTokensRate", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16230, - "src": "15054:20:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_struct$_Fraction_$14478_memory_ptr_$", - "typeString": "function () view returns (struct LiquidityPoolV2Converter.Fraction memory)" - } - }, - "id": 15104, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15054:22:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Fraction_$14478_memory_ptr", - "typeString": "struct LiquidityPoolV2Converter.Fraction memory" - } - }, - "src": "15047:29:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Fraction_$14478_memory_ptr", - "typeString": "struct LiquidityPoolV2Converter.Fraction memory" - } - }, - "id": 15106, - "nodeType": "ExpressionStatement", - "src": "15047:29:25" - }, - { - "assignments": [ - 15108, - 15110 - ], - "declarations": [ - { - "constant": false, - "id": 15108, - "name": "primaryReserveWeight", - "nodeType": "VariableDeclaration", - "scope": 15157, - "src": "15092:27:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 15107, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "15092:6:25", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 15110, - "name": "secondaryReserveWeight", - "nodeType": "VariableDeclaration", - "scope": 15157, - "src": "15121:29:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 15109, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "15121:6:25", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 15114, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 15112, - "name": "rate", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15077, - "src": "15178:4:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Fraction_$14478_memory_ptr", - "typeString": "struct LiquidityPoolV2Converter.Fraction memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_Fraction_$14478_memory_ptr", - "typeString": "struct LiquidityPoolV2Converter.Fraction memory" - } - ], - "id": 15111, - "name": "effectiveReserveWeights", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 15040, - 16365 - ], - "referencedDeclaration": 16365, - "src": "15154:23:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Fraction_$14478_memory_ptr_$returns$_t_uint32_$_t_uint32_$", - "typeString": "function (struct LiquidityPoolV2Converter.Fraction memory) view returns (uint32,uint32)" - } - }, - "id": 15113, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15154:29:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint32_$_t_uint32_$", - "typeString": "tuple(uint32,uint32)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "15091:92:25" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - "id": 15117, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 15115, - "name": "_sourceToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15042, - "src": "15204:12:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 15116, - "name": "primaryReserveToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14482, - "src": "15220:19:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "src": "15204:35:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 15135, - "nodeType": "Block", - "src": "15396:136:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 15129, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 15127, - "name": "sourceTokenWeight", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15071, - "src": "15415:17:25", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 15128, - "name": "secondaryReserveWeight", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15110, - "src": "15435:22:25", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "src": "15415:42:25", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "id": 15130, - "nodeType": "ExpressionStatement", - "src": "15415:42:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 15133, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 15131, - "name": "targetTokenWeight", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15074, - "src": "15476:17:25", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 15132, - "name": "primaryReserveWeight", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15108, - "src": "15496:20:25", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "src": "15476:40:25", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "id": 15134, - "nodeType": "ExpressionStatement", - "src": "15476:40:25" - } - ] - }, - "id": 15136, - "nodeType": "IfStatement", - "src": "15200:332:25", - "trueBody": { - "id": 15126, - "nodeType": "Block", - "src": "15241:136:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 15120, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 15118, - "name": "sourceTokenWeight", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15071, - "src": "15260:17:25", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 15119, - "name": "primaryReserveWeight", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15108, - "src": "15280:20:25", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "src": "15260:40:25", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "id": 15121, - "nodeType": "ExpressionStatement", - "src": "15260:40:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 15124, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 15122, - "name": "targetTokenWeight", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15074, - "src": "15319:17:25", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 15123, - "name": "secondaryReserveWeight", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15110, - "src": "15339:22:25", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "src": "15319:42:25", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "id": 15125, - "nodeType": "ExpressionStatement", - "src": "15319:42:25" - } - ] - } - } - ] - }, - "id": 15138, - "nodeType": "IfStatement", - "src": "14752:791:25", - "trueBody": { - "id": 15101, - "nodeType": "Block", - "src": "14791:175:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 15085, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 15083, - "name": "rate", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15077, - "src": "14806:4:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Fraction_$14478_memory_ptr", - "typeString": "struct LiquidityPoolV2Converter.Fraction memory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 15084, - "name": "referenceRate", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14501, - "src": "14813:13:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Fraction_$14478_storage", - "typeString": "struct LiquidityPoolV2Converter.Fraction storage ref" - } - }, - "src": "14806:20:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Fraction_$14478_memory_ptr", - "typeString": "struct LiquidityPoolV2Converter.Fraction memory" - } - }, - "id": 15086, - "nodeType": "ExpressionStatement", - "src": "14806:20:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 15092, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 15087, - "name": "sourceTokenWeight", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15071, - "src": "14841:17:25", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 15088, - "name": "reserves", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2520, - "src": "14861:8:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Reserve_$2506_storage_$", - "typeString": "mapping(address => struct ConverterBase.Reserve storage ref)" - } - }, - "id": 15090, - "indexExpression": { - "argumentTypes": null, - "id": 15089, - "name": "_sourceToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15042, - "src": "14870:12:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "14861:22:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Reserve_$2506_storage", - "typeString": "struct ConverterBase.Reserve storage ref" - } - }, - "id": 15091, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "weight", - "nodeType": "MemberAccess", - "referencedDeclaration": 2499, - "src": "14861:29:25", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "src": "14841:49:25", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "id": 15093, - "nodeType": "ExpressionStatement", - "src": "14841:49:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 15099, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 15094, - "name": "targetTokenWeight", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15074, - "src": "14905:17:25", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 15095, - "name": "reserves", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2520, - "src": "14925:8:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Reserve_$2506_storage_$", - "typeString": "mapping(address => struct ConverterBase.Reserve storage ref)" - } - }, - "id": 15097, - "indexExpression": { - "argumentTypes": null, - "id": 15096, - "name": "_targetToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15044, - "src": "14934:12:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "14925:22:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Reserve_$2506_storage", - "typeString": "struct ConverterBase.Reserve storage ref" - } - }, - "id": 15098, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "weight", - "nodeType": "MemberAccess", - "referencedDeclaration": 2499, - "src": "14925:29:25", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "src": "14905:49:25", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "id": 15100, - "nodeType": "ExpressionStatement", - "src": "14905:49:25" - } - ] - } - }, - { - "assignments": [ - 15140, - null, - 15142 - ], - "declarations": [ - { - "constant": false, - "id": 15140, - "name": "targetAmount", - "nodeType": "VariableDeclaration", - "scope": 15157, - "src": "15650:20:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 15139, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15650:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - null, - { - "constant": false, - "id": 15142, - "name": "fee", - "nodeType": "VariableDeclaration", - "scope": 15157, - "src": "15674:11:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 15141, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15674:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 15151, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 15144, - "name": "_sourceToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15042, - "src": "15709:12:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - { - "argumentTypes": null, - "id": 15145, - "name": "_targetToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15044, - "src": "15723:12:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - { - "argumentTypes": null, - "id": 15146, - "name": "sourceTokenWeight", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15071, - "src": "15737:17:25", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - { - "argumentTypes": null, - "id": 15147, - "name": "targetTokenWeight", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15074, - "src": "15756:17:25", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - { - "argumentTypes": null, - "id": 15148, - "name": "rate", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15077, - "src": "15775:4:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Fraction_$14478_memory_ptr", - "typeString": "struct LiquidityPoolV2Converter.Fraction memory" - } - }, - { - "argumentTypes": null, - "id": 15149, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15046, - "src": "15781:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - { - "typeIdentifier": "t_struct$_Fraction_$14478_memory_ptr", - "typeString": "struct LiquidityPoolV2Converter.Fraction memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 15143, - "name": "targetAmountAndFees", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15917, - "src": "15689:19:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_contract$_IERC20Token_$20240_$_t_contract$_IERC20Token_$20240_$_t_uint32_$_t_uint32_$_t_struct$_Fraction_$14478_memory_ptr_$_t_uint256_$returns$_t_uint256_$_t_uint256_$_t_uint256_$", - "typeString": "function (contract IERC20Token,contract IERC20Token,uint32,uint32,struct LiquidityPoolV2Converter.Fraction memory,uint256) view returns (uint256,uint256,uint256)" - } - }, - "id": 15150, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15689:100:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$", - "typeString": "tuple(uint256,uint256,uint256)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "15649:140:25" - }, - { - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "id": 15152, - "name": "targetAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15140, - "src": "15808:12:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 15153, - "name": "fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15142, - "src": "15822:3:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 15154, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "15807:19:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", - "typeString": "tuple(uint256,uint256)" - } - }, - "functionReturnParameters": 15054, - "id": 15155, - "nodeType": "Return", - "src": "15800:26:25" - } - ] - }, - "documentation": "@dev returns the expected target amount of converting one reserve to another along with the fee\r\n\n * @param _sourceToken contract address of the source reserve token\r\n@param _targetToken contract address of the target reserve token\r\n@param _amount amount of tokens received from the user\r\n\n * @return expected target amount\r\n@return expected fee\r", - "id": 15157, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [ - { - "arguments": null, - "id": 15049, - "modifierName": { - "argumentTypes": null, - "id": 15048, - "name": "active", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2604, - "src": "14090:6:25", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "14090:6:25" - } - ], - "name": "targetAmountAndFee", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 15047, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 15042, - "name": "_sourceToken", - "nodeType": "VariableDeclaration", - "scope": 15157, - "src": "13982:24:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - "typeName": { - "contractScope": null, - "id": 15041, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "13982:11:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 15044, - "name": "_targetToken", - "nodeType": "VariableDeclaration", - "scope": 15157, - "src": "14008:24:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - "typeName": { - "contractScope": null, - "id": 15043, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "14008:11:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 15046, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 15157, - "src": "14034:15:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 15045, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "14034:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "13981:69:25" - }, - "payable": false, - "returnParameters": { - "id": 15054, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 15051, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 15157, - "src": "14115:7:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 15050, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "14115:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 15053, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 15157, - "src": "14124:7:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 15052, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "14124:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14114:18:25" - }, - "scope": 16610, - "src": "13954:1880:25", - "stateMutability": "view", - "superFunction": 11681, - "visibility": "public" - }, - { - "body": { - "id": 15232, - "nodeType": "Block", - "src": "16686:832:25", - "statements": [ - { - "assignments": [ - 15181, - 15183 - ], - "declarations": [ - { - "constant": false, - "id": 15181, - "name": "amount", - "nodeType": "VariableDeclaration", - "scope": 15233, - "src": "16768:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 15180, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "16768:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 15183, - "name": "fee", - "nodeType": "VariableDeclaration", - "scope": 15233, - "src": "16784:11:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 15182, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "16784:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 15189, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 15185, - "name": "_sourceToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15159, - "src": "16809:12:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - { - "argumentTypes": null, - "id": 15186, - "name": "_targetToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15161, - "src": "16823:12:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - { - "argumentTypes": null, - "id": 15187, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15163, - "src": "16837:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 15184, - "name": "doConvert", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 15233, - 15362 - ], - "referencedDeclaration": 15362, - "src": "16799:9:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20Token_$20240_$_t_contract$_IERC20Token_$20240_$_t_uint256_$returns$_t_uint256_$_t_uint256_$", - "typeString": "function (contract IERC20Token,contract IERC20Token,uint256) returns (uint256,uint256)" - } - }, - "id": 15188, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16799:46:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", - "typeString": "tuple(uint256,uint256)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "16767:78:25" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 15192, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 15190, - "name": "_targetToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15161, - "src": "16932:12:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 15191, - "name": "ETH_RESERVE_ADDRESS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2495, - "src": "16948:19:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "16932:35:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 15206, - "nodeType": "Block", - "src": "17040:75:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 15201, - "name": "_targetToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15161, - "src": "17068:12:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - { - "argumentTypes": null, - "id": 15202, - "name": "_beneficiary", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15167, - "src": "17082:12:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 15203, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15181, - "src": "17096:6:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 15200, - "name": "safeTransfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21881, - "src": "17055:12:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20Token_$20240_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (contract IERC20Token,address,uint256)" - } - }, - "id": 15204, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17055:48:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 15205, - "nodeType": "ExpressionStatement", - "src": "17055:48:25" - } - ] - }, - "id": 15207, - "nodeType": "IfStatement", - "src": "16928:187:25", - "trueBody": { - "id": 15199, - "nodeType": "Block", - "src": "16969:56:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 15196, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15181, - "src": "17006:6:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 15193, - "name": "_beneficiary", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15167, - "src": "16984:12:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 15195, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "16984:21:25", - "typeDescriptions": { - "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 15197, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16984:29:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 15198, - "nodeType": "ExpressionStatement", - "src": "16984:29:25" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 15209, - "name": "_sourceToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15159, - "src": "17193:12:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - { - "argumentTypes": null, - "id": 15210, - "name": "_targetToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15161, - "src": "17207:12:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - { - "argumentTypes": null, - "id": 15211, - "name": "_trader", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15165, - "src": "17221:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 15212, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15163, - "src": "17230:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 15213, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15181, - "src": "17239:6:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 15214, - "name": "fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15183, - "src": "17247:3:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 15208, - "name": "dispatchConversionEvent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3298, - "src": "17169:23:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20Token_$20240_$_t_contract$_IERC20Token_$20240_$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (contract IERC20Token,contract IERC20Token,address,uint256,uint256,uint256)" - } - }, - "id": 15215, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17169:82:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 15216, - "nodeType": "ExpressionStatement", - "src": "17169:82:25" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 15218, - "name": "_sourceToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15159, - "src": "17347:12:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - { - "argumentTypes": null, - "id": 15219, - "name": "_targetToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15161, - "src": "17361:12:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 15220, - "name": "reserves", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2520, - "src": "17375:8:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Reserve_$2506_storage_$", - "typeString": "mapping(address => struct ConverterBase.Reserve storage ref)" - } - }, - "id": 15222, - "indexExpression": { - "argumentTypes": null, - "id": 15221, - "name": "_sourceToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15159, - "src": "17384:12:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "17375:22:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Reserve_$2506_storage", - "typeString": "struct ConverterBase.Reserve storage ref" - } - }, - "id": 15223, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "weight", - "nodeType": "MemberAccess", - "referencedDeclaration": 2499, - "src": "17375:29:25", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 15224, - "name": "reserves", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2520, - "src": "17406:8:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Reserve_$2506_storage_$", - "typeString": "mapping(address => struct ConverterBase.Reserve storage ref)" - } - }, - "id": 15226, - "indexExpression": { - "argumentTypes": null, - "id": 15225, - "name": "_targetToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15161, - "src": "17415:12:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "17406:22:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Reserve_$2506_storage", - "typeString": "struct ConverterBase.Reserve storage ref" - } - }, - "id": 15227, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "weight", - "nodeType": "MemberAccess", - "referencedDeclaration": 2499, - "src": "17406:29:25", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - ], - "id": 15217, - "name": "dispatchRateEvents", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16463, - "src": "17328:18:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20Token_$20240_$_t_contract$_IERC20Token_$20240_$_t_uint32_$_t_uint32_$returns$__$", - "typeString": "function (contract IERC20Token,contract IERC20Token,uint32,uint32)" - } - }, - "id": 15228, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17328:108:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 15229, - "nodeType": "ExpressionStatement", - "src": "17328:108:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 15230, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15181, - "src": "17504:6:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 15179, - "id": 15231, - "nodeType": "Return", - "src": "17497:13:25" - } - ] - }, - "documentation": "@dev converts a specific amount of source tokens to target tokens\r\ncan only be called by the SovrynSwap network contract\r\n\n * @param _sourceToken source ERC20 token\r\n@param _targetToken target ERC20 token\r\n@param _amount amount of tokens to convert (in units of the source token)\r\n@param _trader address of the caller who executed the conversion\r\n@param _beneficiary wallet to receive the conversion result\r\n\n * @return amount of tokens received (in units of the target token)\r", - "id": 15233, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 15170, - "modifierName": { - "argumentTypes": null, - "id": 15169, - "name": "active", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2604, - "src": "16575:6:25", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "16575:6:25" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 15172, - "name": "_sourceToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15159, - "src": "16604:12:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - } - ], - "id": 15173, - "modifierName": { - "argumentTypes": null, - "id": 15171, - "name": "validReserve", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2642, - "src": "16591:12:25", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_contract$_IERC20Token_$20240_$", - "typeString": "modifier (contract IERC20Token)" - } - }, - "nodeType": "ModifierInvocation", - "src": "16591:26:25" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 15175, - "name": "_targetToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15161, - "src": "16640:12:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - } - ], - "id": 15176, - "modifierName": { - "argumentTypes": null, - "id": 15174, - "name": "validReserve", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2642, - "src": "16627:12:25", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_contract$_IERC20Token_$20240_$", - "typeString": "modifier (contract IERC20Token)" - } - }, - "nodeType": "ModifierInvocation", - "src": "16627:26:25" - } - ], - "name": "doConvert", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 15168, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 15159, - "name": "_sourceToken", - "nodeType": "VariableDeclaration", - "scope": 15233, - "src": "16440:24:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - "typeName": { - "contractScope": null, - "id": 15158, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "16440:11:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 15161, - "name": "_targetToken", - "nodeType": "VariableDeclaration", - "scope": 15233, - "src": "16466:24:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - "typeName": { - "contractScope": null, - "id": 15160, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "16466:11:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 15163, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 15233, - "src": "16492:15:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 15162, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "16492:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 15165, - "name": "_trader", - "nodeType": "VariableDeclaration", - "scope": 15233, - "src": "16509:15:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 15164, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16509:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 15167, - "name": "_beneficiary", - "nodeType": "VariableDeclaration", - "scope": 15233, - "src": "16526:20:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 15166, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16526:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16439:108:25" - }, - "payable": false, - "returnParameters": { - "id": 15179, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 15178, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 15233, - "src": "16672:7:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 15177, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "16672:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16671:9:25" - }, - "scope": 16610, - "src": "16421:1097:25", - "stateMutability": "nonpayable", - "superFunction": 3188, - "visibility": "internal" - }, - { - "body": { - "id": 15361, - "nodeType": "Block", - "src": "18110:1564:25", - "statements": [ - { - "assignments": [ - 15247, - 15249 - ], - "declarations": [ - { - "constant": false, - "id": 15247, - "name": "rateUpdated", - "nodeType": "VariableDeclaration", - "scope": 15362, - "src": "18215:16:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 15246, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "18215:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 15249, - "name": "rate", - "nodeType": "VariableDeclaration", - "scope": 15362, - "src": "18233:20:25", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Fraction_$14478_memory_ptr", - "typeString": "struct LiquidityPoolV2Converter.Fraction" - }, - "typeName": { - "contractScope": null, - "id": 15248, - "name": "Fraction", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 14478, - "src": "18233:8:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Fraction_$14478_storage_ptr", - "typeString": "struct LiquidityPoolV2Converter.Fraction" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 15252, - "initialValue": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 15250, - "name": "handleRateChange", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16293, - "src": "18257:16:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$_t_bool_$_t_struct$_Fraction_$14478_memory_ptr_$", - "typeString": "function () returns (bool,struct LiquidityPoolV2Converter.Fraction memory)" - } - }, - "id": 15251, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18257:18:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_struct$_Fraction_$14478_memory_ptr_$", - "typeString": "tuple(bool,struct LiquidityPoolV2Converter.Fraction memory)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "18214:61:25" - }, - { - "assignments": [ - 15254, - 15256, - 15258 - ], - "declarations": [ - { - "constant": false, - "id": 15254, - "name": "amount", - "nodeType": "VariableDeclaration", - "scope": 15362, - "src": "18337:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 15253, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "18337:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 15256, - "name": "standardFee", - "nodeType": "VariableDeclaration", - "scope": 15362, - "src": "18353:19:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 15255, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "18353:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 15258, - "name": "dynamicFee", - "nodeType": "VariableDeclaration", - "scope": 15362, - "src": "18374:18:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 15257, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "18374:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 15267, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 15260, - "name": "_sourceToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15235, - "src": "18416:12:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - { - "argumentTypes": null, - "id": 15261, - "name": "_targetToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15237, - "src": "18430:12:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - { - "argumentTypes": null, - "hexValue": "30", - "id": 15262, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "18444:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - { - "argumentTypes": null, - "hexValue": "30", - "id": 15263, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "18447:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - { - "argumentTypes": null, - "id": 15264, - "name": "rate", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15249, - "src": "18450:4:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Fraction_$14478_memory_ptr", - "typeString": "struct LiquidityPoolV2Converter.Fraction memory" - } - }, - { - "argumentTypes": null, - "id": 15265, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15239, - "src": "18456:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - { - "typeIdentifier": "t_struct$_Fraction_$14478_memory_ptr", - "typeString": "struct LiquidityPoolV2Converter.Fraction memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 15259, - "name": "targetAmountAndFees", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15917, - "src": "18396:19:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_contract$_IERC20Token_$20240_$_t_contract$_IERC20Token_$20240_$_t_uint32_$_t_uint32_$_t_struct$_Fraction_$14478_memory_ptr_$_t_uint256_$returns$_t_uint256_$_t_uint256_$_t_uint256_$", - "typeString": "function (contract IERC20Token,contract IERC20Token,uint32,uint32,struct LiquidityPoolV2Converter.Fraction memory,uint256) view returns (uint256,uint256,uint256)" - } - }, - "id": 15266, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18396:68:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$", - "typeString": "tuple(uint256,uint256,uint256)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "18336:128:25" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 15271, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 15269, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15254, - "src": "18545:6:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 15270, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "18555:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "18545:11:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552525f5a45524f5f5441524745545f414d4f554e54", - "id": 15272, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "18558:24:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_29cb0846c2d5a859f661a5b4c4a8be47a80ca27c24af6f007bda101871b53e03", - "typeString": "literal_string \"ERR_ZERO_TARGET_AMOUNT\"" - }, - "value": "ERR_ZERO_TARGET_AMOUNT" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_29cb0846c2d5a859f661a5b4c4a8be47a80ca27c24af6f007bda101871b53e03", - "typeString": "literal_string \"ERR_ZERO_TARGET_AMOUNT\"" - } - ], - "id": 15268, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 22341, - 22342 - ], - "referencedDeclaration": 22342, - "src": "18537:7:25", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 15273, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18537:46:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 15274, - "nodeType": "ExpressionStatement", - "src": "18537:46:25" - }, - { - "assignments": [ - 15276 - ], - "declarations": [ - { - "constant": false, - "id": 15276, - "name": "targetReserveBalance", - "nodeType": "VariableDeclaration", - "scope": 15362, - "src": "18664:28:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 15275, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "18664:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 15280, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 15278, - "name": "_targetToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15237, - "src": "18710:12:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - ], - "id": 15277, - "name": "reserveBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 3106 - ], - "referencedDeclaration": 3106, - "src": "18695:14:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_contract$_IERC20Token_$20240_$returns$_t_uint256_$", - "typeString": "function (contract IERC20Token) view returns (uint256)" - } - }, - "id": 15279, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18695:28:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "18664:59:25" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 15284, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 15282, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15254, - "src": "18742:6:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "id": 15283, - "name": "targetReserveBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15276, - "src": "18751:20:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "18742:29:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552525f5441524745545f414d4f554e545f544f4f5f48494748", - "id": 15285, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "18773:28:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_fdc80d750d844401c1a232f04c3112deb2cc8ccc9669c5f3a5374f1631159f12", - "typeString": "literal_string \"ERR_TARGET_AMOUNT_TOO_HIGH\"" - }, - "value": "ERR_TARGET_AMOUNT_TOO_HIGH" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_fdc80d750d844401c1a232f04c3112deb2cc8ccc9669c5f3a5374f1631159f12", - "typeString": "literal_string \"ERR_TARGET_AMOUNT_TOO_HIGH\"" - } - ], - "id": 15281, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 22341, - 22342 - ], - "referencedDeclaration": 22342, - "src": "18734:7:25", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 15286, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18734:68:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 15287, - "nodeType": "ExpressionStatement", - "src": "18734:68:25" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 15290, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 15288, - "name": "_sourceToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15235, - "src": "18882:12:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 15289, - "name": "ETH_RESERVE_ADDRESS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2495, - "src": "18898:19:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "18882:35:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 15315, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 15303, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 15300, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22338, - "src": "19025:3:25", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 15301, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "19025:9:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 15302, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19038:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "19025:14:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 15314, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 15310, - "name": "_sourceToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15235, - "src": "19091:12:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - ], - "id": 15309, - "name": "reserveBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 3106 - ], - "referencedDeclaration": 3106, - "src": "19076:14:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_contract$_IERC20Token_$20240_$returns$_t_uint256_$", - "typeString": "function (contract IERC20Token) view returns (uint256)" - } - }, - "id": 15311, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19076:28:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 15306, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22451, - "src": "19066:4:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_LiquidityPoolV2Converter_$16610", - "typeString": "contract LiquidityPoolV2Converter" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_LiquidityPoolV2Converter_$16610", - "typeString": "contract LiquidityPoolV2Converter" - } - ], - "expression": { - "argumentTypes": null, - "id": 15304, - "name": "_sourceToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15235, - "src": "19043:12:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "id": 15305, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "balanceOf", - "nodeType": "MemberAccess", - "referencedDeclaration": 20194, - "src": "19043:22:25", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 15307, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19043:28:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 15308, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 21758, - "src": "19043:32:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 15312, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19043:62:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 15313, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15239, - "src": "19109:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "19043:73:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "19025:91:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552525f494e56414c49445f414d4f554e54", - "id": 15316, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19118:20:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c44007bfe4e704be0ed1393660a827b4f88825f4b6fe1bc10cd38fc3fcb7d839", - "typeString": "literal_string \"ERR_INVALID_AMOUNT\"" - }, - "value": "ERR_INVALID_AMOUNT" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_c44007bfe4e704be0ed1393660a827b4f88825f4b6fe1bc10cd38fc3fcb7d839", - "typeString": "literal_string \"ERR_INVALID_AMOUNT\"" - } - ], - "id": 15299, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 22341, - 22342 - ], - "referencedDeclaration": 22342, - "src": "19017:7:25", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 15317, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19017:122:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 15318, - "nodeType": "ExpressionStatement", - "src": "19017:122:25" - }, - "id": 15319, - "nodeType": "IfStatement", - "src": "18878:261:25", - "trueBody": { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 15295, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 15292, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22338, - "src": "18940:3:25", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 15293, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "18940:9:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 15294, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15239, - "src": "18953:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "18940:20:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552525f4554485f414d4f554e545f4d49534d41544348", - "id": 15296, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "18962:25:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_b27c160ac497b67c4fef6b5554e0b1a41f3c9b44e4bd8482662df760b76c093b", - "typeString": "literal_string \"ERR_ETH_AMOUNT_MISMATCH\"" - }, - "value": "ERR_ETH_AMOUNT_MISMATCH" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_b27c160ac497b67c4fef6b5554e0b1a41f3c9b44e4bd8482662df760b76c093b", - "typeString": "literal_string \"ERR_ETH_AMOUNT_MISMATCH\"" - } - ], - "id": 15291, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 22341, - 22342 - ], - "referencedDeclaration": 22342, - "src": "18932:7:25", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 15297, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18932:56:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 15298, - "nodeType": "ExpressionStatement", - "src": "18932:56:25" - } - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 15321, - "name": "_sourceToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15235, - "src": "19209:12:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - ], - "id": 15320, - "name": "syncReserveBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3237, - "src": "19190:18:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20Token_$20240_$returns$__$", - "typeString": "function (contract IERC20Token)" - } - }, - "id": 15322, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19190:32:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 15323, - "nodeType": "ExpressionStatement", - "src": "19190:32:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 15332, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 15324, - "name": "reserves", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2520, - "src": "19233:8:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Reserve_$2506_storage_$", - "typeString": "mapping(address => struct ConverterBase.Reserve storage ref)" - } - }, - "id": 15326, - "indexExpression": { - "argumentTypes": null, - "id": 15325, - "name": "_targetToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15237, - "src": "19242:12:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "19233:22:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Reserve_$2506_storage", - "typeString": "struct ConverterBase.Reserve storage ref" - } - }, - "id": 15327, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "balance", - "nodeType": "MemberAccess", - "referencedDeclaration": 2497, - "src": "19233:30:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 15330, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15254, - "src": "19291:6:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 15328, - "name": "targetReserveBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15276, - "src": "19266:20:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 15329, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 21758, - "src": "19266:24:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 15331, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19266:32:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "19233:65:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 15333, - "nodeType": "ExpressionStatement", - "src": "19233:65:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 15343, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 15334, - "name": "stakedBalances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14488, - "src": "19369:14:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 15336, - "indexExpression": { - "argumentTypes": null, - "id": 15335, - "name": "_targetToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15237, - "src": "19384:12:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "19369:28:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 15341, - "name": "standardFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15256, - "src": "19433:11:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 15337, - "name": "stakedBalances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14488, - "src": "19400:14:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 15339, - "indexExpression": { - "argumentTypes": null, - "id": 15338, - "name": "_targetToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15237, - "src": "19415:12:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "19400:28:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 15340, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 21737, - "src": "19400:32:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 15342, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19400:45:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "19369:76:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 15344, - "nodeType": "ExpressionStatement", - "src": "19369:76:25" - }, - { - "condition": { - "argumentTypes": null, - "id": 15345, - "name": "rateUpdated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15247, - "src": "19506:11:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 15356, - "nodeType": "IfStatement", - "src": "19502:125:25", - "trueBody": { - "id": 15355, - "nodeType": "Block", - "src": "19519:108:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 15353, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 15346, - "name": "lastConversionRate", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14505, - "src": "19534:18:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Fraction_$14478_storage", - "typeString": "struct LiquidityPoolV2Converter.Fraction storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 15348, - "name": "primaryReserveToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14482, - "src": "19566:19:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - { - "argumentTypes": null, - "id": 15349, - "name": "secondaryReserveToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14484, - "src": "19587:21:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - { - "argumentTypes": null, - "hexValue": "30", - "id": 15350, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19610:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - { - "argumentTypes": null, - "hexValue": "30", - "id": 15351, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19613:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 15347, - "name": "tokensRate", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16426, - "src": "19555:10:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_contract$_IERC20Token_$20240_$_t_contract$_IERC20Token_$20240_$_t_uint32_$_t_uint32_$returns$_t_struct$_Fraction_$14478_memory_ptr_$", - "typeString": "function (contract IERC20Token,contract IERC20Token,uint32,uint32) view returns (struct LiquidityPoolV2Converter.Fraction memory)" - } - }, - "id": 15352, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19555:60:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Fraction_$14478_memory_ptr", - "typeString": "struct LiquidityPoolV2Converter.Fraction memory" - } - }, - "src": "19534:81:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Fraction_$14478_storage", - "typeString": "struct LiquidityPoolV2Converter.Fraction storage ref" - } - }, - "id": 15354, - "nodeType": "ExpressionStatement", - "src": "19534:81:25" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "id": 15357, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15254, - "src": "19647:6:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 15358, - "name": "dynamicFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15258, - "src": "19655:10:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 15359, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "19646:20:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", - "typeString": "tuple(uint256,uint256)" - } - }, - "functionReturnParameters": 15245, - "id": 15360, - "nodeType": "Return", - "src": "19639:27:25" - } - ] - }, - "documentation": "@dev converts a specific amount of source tokens to target tokens\r\ncan only be called by the SovrynSwap network contract\r\n\n * @param _sourceToken source ERC20 token\r\n@param _targetToken target ERC20 token\r\n@param _amount amount of tokens to convert (in units of the source token)\r\n\n * @return amount of tokens received (in units of the target token)\r\n@return expected fee\r", - "id": 15362, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "doConvert", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 15240, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 15235, - "name": "_sourceToken", - "nodeType": "VariableDeclaration", - "scope": 15362, - "src": "18006:24:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - "typeName": { - "contractScope": null, - "id": 15234, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "18006:11:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 15237, - "name": "_targetToken", - "nodeType": "VariableDeclaration", - "scope": 15362, - "src": "18032:24:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - "typeName": { - "contractScope": null, - "id": 15236, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "18032:11:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 15239, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 15362, - "src": "18058:15:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 15238, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "18058:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "18005:69:25" - }, - "payable": false, - "returnParameters": { - "id": 15245, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 15242, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 15362, - "src": "18092:7:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 15241, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "18092:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 15244, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 15362, - "src": "18101:7:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 15243, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "18101:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "18091:18:25" - }, - "scope": 16610, - "src": "17987:1687:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 15579, - "nodeType": "Block", - "src": "20361:3047:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 15389, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 15387, - "name": "_reserveToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15364, - "src": "20482:13:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 15388, - "name": "ETH_RESERVE_ADDRESS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2495, - "src": "20499:19:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "20482:36:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 15397, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 15394, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22338, - "src": "20544:3:25", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 15395, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "20544:9:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 15396, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20557:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "20544:14:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 15398, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "20482:76:25", - "trueExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 15393, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 15390, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22338, - "src": "20521:3:25", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 15391, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "20521:9:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 15392, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15366, - "src": "20534:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "20521:20:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552525f4554485f414d4f554e545f4d49534d41544348", - "id": 15399, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20560:25:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_b27c160ac497b67c4fef6b5554e0b1a41f3c9b44e4bd8482662df760b76c093b", - "typeString": "literal_string \"ERR_ETH_AMOUNT_MISMATCH\"" - }, - "value": "ERR_ETH_AMOUNT_MISMATCH" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_b27c160ac497b67c4fef6b5554e0b1a41f3c9b44e4bd8482662df760b76c093b", - "typeString": "literal_string \"ERR_ETH_AMOUNT_MISMATCH\"" - } - ], - "id": 15386, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 22341, - 22342 - ], - "referencedDeclaration": 22342, - "src": "20474:7:25", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 15400, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20474:112:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 15401, - "nodeType": "ExpressionStatement", - "src": "20474:112:25" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 15402, - "name": "syncReserveBalances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3263, - "src": "20650:19:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", - "typeString": "function ()" - } - }, - "id": 15403, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20650:21:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 15404, - "nodeType": "ExpressionStatement", - "src": "20650:21:25" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 15407, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 15405, - "name": "_reserveToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15364, - "src": "20794:13:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 15406, - "name": "ETH_RESERVE_ADDRESS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2495, - "src": "20811:19:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "20794:36:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 15422, - "nodeType": "IfStatement", - "src": "20790:147:25", - "trueBody": { - "expression": { - "argumentTypes": null, - "id": 15420, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 15408, - "name": "reserves", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2520, - "src": "20845:8:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Reserve_$2506_storage_$", - "typeString": "mapping(address => struct ConverterBase.Reserve storage ref)" - } - }, - "id": 15410, - "indexExpression": { - "argumentTypes": null, - "id": 15409, - "name": "ETH_RESERVE_ADDRESS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2495, - "src": "20854:19:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "20845:29:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Reserve_$2506_storage", - "typeString": "struct ConverterBase.Reserve storage ref" - } - }, - "id": 15411, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "balance", - "nodeType": "MemberAccess", - "referencedDeclaration": 2497, - "src": "20845:37:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 15417, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22338, - "src": "20927:3:25", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 15418, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "20927:9:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 15412, - "name": "reserves", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2520, - "src": "20885:8:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Reserve_$2506_storage_$", - "typeString": "mapping(address => struct ConverterBase.Reserve storage ref)" - } - }, - "id": 15414, - "indexExpression": { - "argumentTypes": null, - "id": 15413, - "name": "ETH_RESERVE_ADDRESS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2495, - "src": "20894:19:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "20885:29:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Reserve_$2506_storage", - "typeString": "struct ConverterBase.Reserve storage ref" - } - }, - "id": 15415, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "balance", - "nodeType": "MemberAccess", - "referencedDeclaration": 2497, - "src": "20885:37:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 15416, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 21758, - "src": "20885:41:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 15419, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20885:52:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "20845:92:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 15421, - "nodeType": "ExpressionStatement", - "src": "20845:92:25" - } - }, - { - "assignments": [ - 15424 - ], - "declarations": [ - { - "constant": false, - "id": 15424, - "name": "initialStakedBalance", - "nodeType": "VariableDeclaration", - "scope": 15580, - "src": "21027:28:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 15423, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "21027:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 15428, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 15425, - "name": "stakedBalances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14488, - "src": "21058:14:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 15427, - "indexExpression": { - "argumentTypes": null, - "id": 15426, - "name": "_reserveToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15364, - "src": "21073:13:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "21058:29:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "21027:60:25" - }, - { - "condition": { - "argumentTypes": null, - "id": 15429, - "name": "maxStakedBalanceEnabled", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14512, - "src": "21202:23:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 15449, - "nodeType": "IfStatement", - "src": "21198:209:25", - "trueBody": { - "id": 15448, - "nodeType": "Block", - "src": "21227:180:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 15444, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 15435, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 15431, - "name": "maxStakedBalances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14509, - "src": "21250:17:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 15433, - "indexExpression": { - "argumentTypes": null, - "id": 15432, - "name": "_reserveToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15364, - "src": "21268:13:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "21250:32:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 15434, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21286:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "21250:37:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 15443, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 15438, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15366, - "src": "21316:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 15436, - "name": "initialStakedBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15424, - "src": "21291:20:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 15437, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 21737, - "src": "21291:24:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 15439, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21291:33:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 15440, - "name": "maxStakedBalances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14509, - "src": "21328:17:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 15442, - "indexExpression": { - "argumentTypes": null, - "id": 15441, - "name": "_reserveToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15364, - "src": "21346:13:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "21328:32:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "21291:69:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "21250:110:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552525f4d41585f5354414b45445f42414c414e43455f52454143484544", - "id": 15445, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21362:32:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_e71abaa0836b516acb5bcc1418977bbb31101745086dfce64d3b60d38c4171f5", - "typeString": "literal_string \"ERR_MAX_STAKED_BALANCE_REACHED\"" - }, - "value": "ERR_MAX_STAKED_BALANCE_REACHED" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_e71abaa0836b516acb5bcc1418977bbb31101745086dfce64d3b60d38c4171f5", - "typeString": "literal_string \"ERR_MAX_STAKED_BALANCE_REACHED\"" - } - ], - "id": 15430, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 22341, - 22342 - ], - "referencedDeclaration": 22342, - "src": "21242:7:25", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 15446, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21242:153:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 15447, - "nodeType": "ExpressionStatement", - "src": "21242:153:25" - } - ] - } - }, - { - "assignments": [ - 15451 - ], - "declarations": [ - { - "constant": false, - "id": 15451, - "name": "reservePoolToken", - "nodeType": "VariableDeclaration", - "scope": 15580, - "src": "21493:28:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISmartToken_$20295", - "typeString": "contract ISmartToken" - }, - "typeName": { - "contractScope": null, - "id": 15450, - "name": "ISmartToken", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20295, - "src": "21493:11:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISmartToken_$20295", - "typeString": "contract ISmartToken" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 15455, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 15452, - "name": "reservesToPoolTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14492, - "src": "21524:20:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_contract$_ISmartToken_$20295_$", - "typeString": "mapping(address => contract ISmartToken)" - } - }, - "id": 15454, - "indexExpression": { - "argumentTypes": null, - "id": 15453, - "name": "_reserveToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15364, - "src": "21545:13:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "21524:35:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISmartToken_$20295", - "typeString": "contract ISmartToken" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "21493:66:25" - }, - { - "assignments": [ - 15457 - ], - "declarations": [ - { - "constant": false, - "id": 15457, - "name": "poolTokenSupply", - "nodeType": "VariableDeclaration", - "scope": 15580, - "src": "21570:23:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 15456, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "21570:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 15461, - "initialValue": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 15458, - "name": "reservePoolToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15451, - "src": "21596:16:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISmartToken_$20295", - "typeString": "contract ISmartToken" - } - }, - "id": 15459, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "totalSupply", - "nodeType": "MemberAccess", - "referencedDeclaration": 20182, - "src": "21596:28:25", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", - "typeString": "function () view external returns (uint256)" - } - }, - "id": 15460, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21596:30:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "21570:56:25" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 15464, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 15462, - "name": "_reserveToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15364, - "src": "21721:13:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 15463, - "name": "ETH_RESERVE_ADDRESS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2495, - "src": "21738:19:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "21721:36:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 15473, - "nodeType": "IfStatement", - "src": "21717:113:25", - "trueBody": { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 15466, - "name": "_reserveToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15364, - "src": "21789:13:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 15467, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22338, - "src": "21804:3:25", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 15468, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "21804:10:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 15469, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22451, - "src": "21816:4:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_LiquidityPoolV2Converter_$16610", - "typeString": "contract LiquidityPoolV2Converter" - } - }, - { - "argumentTypes": null, - "id": 15470, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15366, - "src": "21822:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_contract$_LiquidityPoolV2Converter_$16610", - "typeString": "contract LiquidityPoolV2Converter" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 15465, - "name": "safeTransferFrom", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21904, - "src": "21772:16:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20Token_$20240_$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (contract IERC20Token,address,address,uint256)" - } - }, - "id": 15471, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21772:58:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 15472, - "nodeType": "ExpressionStatement", - "src": "21772:58:25" - } - }, - { - "expression": { - "argumentTypes": null, - "id": 15485, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 15474, - "name": "reserves", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2520, - "src": "21897:8:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Reserve_$2506_storage_$", - "typeString": "mapping(address => struct ConverterBase.Reserve storage ref)" - } - }, - "id": 15476, - "indexExpression": { - "argumentTypes": null, - "id": 15475, - "name": "_reserveToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15364, - "src": "21906:13:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "21897:23:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Reserve_$2506_storage", - "typeString": "struct ConverterBase.Reserve storage ref" - } - }, - "id": 15477, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "balance", - "nodeType": "MemberAccess", - "referencedDeclaration": 2497, - "src": "21897:31:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 15483, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15366, - "src": "21967:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 15478, - "name": "reserves", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2520, - "src": "21931:8:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Reserve_$2506_storage_$", - "typeString": "mapping(address => struct ConverterBase.Reserve storage ref)" - } - }, - "id": 15480, - "indexExpression": { - "argumentTypes": null, - "id": 15479, - "name": "_reserveToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15364, - "src": "21940:13:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "21931:23:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Reserve_$2506_storage", - "typeString": "struct ConverterBase.Reserve storage ref" - } - }, - "id": 15481, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "balance", - "nodeType": "MemberAccess", - "referencedDeclaration": 2497, - "src": "21931:31:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 15482, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 21737, - "src": "21931:35:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 15484, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21931:44:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "21897:78:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 15486, - "nodeType": "ExpressionStatement", - "src": "21897:78:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 15494, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 15487, - "name": "stakedBalances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14488, - "src": "21986:14:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 15489, - "indexExpression": { - "argumentTypes": null, - "id": 15488, - "name": "_reserveToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15364, - "src": "22001:13:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "21986:29:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 15492, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15366, - "src": "22043:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 15490, - "name": "initialStakedBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15424, - "src": "22018:20:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 15491, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 21737, - "src": "22018:24:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 15493, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22018:33:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "21986:65:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 15495, - "nodeType": "ExpressionStatement", - "src": "21986:65:25" - }, - { - "assignments": [ - 15497 - ], - "declarations": [ - { - "constant": false, - "id": 15497, - "name": "poolTokenAmount", - "nodeType": "VariableDeclaration", - "scope": 15580, - "src": "22271:23:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 15496, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "22271:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 15499, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 15498, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22297:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "22271:27:25" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 15506, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 15502, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 15500, - "name": "initialStakedBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15424, - "src": "22313:20:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 15501, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22337:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "22313:25:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 15505, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 15503, - "name": "poolTokenSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15457, - "src": "22342:15:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 15504, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22361:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "22342:20:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "22313:49:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "expression": { - "argumentTypes": null, - "id": 15519, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 15511, - "name": "poolTokenAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15497, - "src": "22431:15:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 15517, - "name": "initialStakedBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15424, - "src": "22482:20:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 15514, - "name": "poolTokenSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15457, - "src": "22461:15:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 15512, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15366, - "src": "22449:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 15513, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 21791, - "src": "22449:11:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 15515, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22449:28:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 15516, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "div", - "nodeType": "MemberAccess", - "referencedDeclaration": 21816, - "src": "22449:32:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 15518, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22449:54:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "22431:72:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 15520, - "nodeType": "ExpressionStatement", - "src": "22431:72:25" - }, - "id": 15521, - "nodeType": "IfStatement", - "src": "22309:194:25", - "trueBody": { - "expression": { - "argumentTypes": null, - "id": 15509, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 15507, - "name": "poolTokenAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15497, - "src": "22377:15:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 15508, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15366, - "src": "22395:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "22377:25:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 15510, - "nodeType": "ExpressionStatement", - "src": "22377:25:25" - } - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 15525, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 15523, - "name": "poolTokenAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15497, - "src": "22522:15:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 15524, - "name": "_minReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15368, - "src": "22541:10:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "22522:29:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552525f52455455524e5f544f4f5f4c4f57", - "id": 15526, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22553:20:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c3237cc40443cfd1e0e9492ef35b7447eab6349fb6eac5eb1ec626edd3c555aa", - "typeString": "literal_string \"ERR_RETURN_TOO_LOW\"" - }, - "value": "ERR_RETURN_TOO_LOW" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_c3237cc40443cfd1e0e9492ef35b7447eab6349fb6eac5eb1ec626edd3c555aa", - "typeString": "literal_string \"ERR_RETURN_TOO_LOW\"" - } - ], - "id": 15522, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 22341, - 22342 - ], - "referencedDeclaration": 22342, - "src": "22514:7:25", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 15527, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22514:60:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 15528, - "nodeType": "ExpressionStatement", - "src": "22514:60:25" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 15533, - "name": "reservePoolToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15451, - "src": "22668:16:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISmartToken_$20295", - "typeString": "contract ISmartToken" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 15534, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22338, - "src": "22686:3:25", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 15535, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "22686:10:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 15536, - "name": "poolTokenAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15497, - "src": "22698:15:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_ISmartToken_$20295", - "typeString": "contract ISmartToken" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 15530, - "name": "anchor", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2511 - ], - "referencedDeclaration": 2511, - "src": "22655:6:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - ], - "id": 15529, - "name": "IPoolTokensContainer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17009, - "src": "22634:20:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IPoolTokensContainer_$17009_$", - "typeString": "type(contract IPoolTokensContainer)" - } - }, - "id": 15531, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22634:28:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IPoolTokensContainer_$17009", - "typeString": "contract IPoolTokensContainer" - } - }, - "id": 15532, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mint", - "nodeType": "MemberAccess", - "referencedDeclaration": 16999, - "src": "22634:33:25", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_contract$_ISmartToken_$20295_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (contract ISmartToken,address,uint256) external" - } - }, - "id": 15537, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22634:80:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 15538, - "nodeType": "ExpressionStatement", - "src": "22634:80:25" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 15539, - "name": "rebalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16319, - "src": "22776:9:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", - "typeString": "function ()" - } - }, - "id": 15540, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22776:11:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 15541, - "nodeType": "ExpressionStatement", - "src": "22776:11:25" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 15543, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22338, - "src": "22866:3:25", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 15544, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "22866:10:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 15545, - "name": "_reserveToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15364, - "src": "22878:13:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - { - "argumentTypes": null, - "id": 15546, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15366, - "src": "22893:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 15549, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15366, - "src": "22927:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 15547, - "name": "initialStakedBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15424, - "src": "22902:20:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 15548, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 21737, - "src": "22902:24:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 15550, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22902:33:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 15553, - "name": "poolTokenAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15497, - "src": "22957:15:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 15551, - "name": "poolTokenSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15457, - "src": "22937:15:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 15552, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 21737, - "src": "22937:19:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 15554, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22937:36:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 15542, - "name": "LiquidityAdded", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6165, - "src": "22851:14:25", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256,uint256,uint256)" - } - }, - "id": 15555, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22851:123:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 15556, - "nodeType": "EmitStatement", - "src": "22846:128:25" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 15558, - "name": "reservePoolToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15451, - "src": "23088:16:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISmartToken_$20295", - "typeString": "contract ISmartToken" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 15561, - "name": "poolTokenAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15497, - "src": "23126:15:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 15559, - "name": "poolTokenSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15457, - "src": "23106:15:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 15560, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 21737, - "src": "23106:19:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 15562, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "23106:36:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 15563, - "name": "_reserveToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15364, - "src": "23144:13:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_ISmartToken_$20295", - "typeString": "contract ISmartToken" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - ], - "id": 15557, - "name": "dispatchPoolTokenRateUpdateEvent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16512, - "src": "23055:32:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_ISmartToken_$20295_$_t_uint256_$_t_contract$_IERC20Token_$20240_$returns$__$", - "typeString": "function (contract ISmartToken,uint256,contract IERC20Token)" - } - }, - "id": 15564, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "23055:103:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 15565, - "nodeType": "ExpressionStatement", - "src": "23055:103:25" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 15567, - "name": "reserveTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2516, - "src": "23272:13:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_storage", - "typeString": "contract IERC20Token[] storage ref" - } - }, - "id": 15569, - "indexExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 15568, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "23286:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "23272:16:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 15570, - "name": "reserveTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2516, - "src": "23290:13:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_storage", - "typeString": "contract IERC20Token[] storage ref" - } - }, - "id": 15572, - "indexExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 15571, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "23304:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "23290:16:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - { - "argumentTypes": null, - "hexValue": "30", - "id": 15573, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "23308:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - { - "argumentTypes": null, - "hexValue": "30", - "id": 15574, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "23311:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 15566, - "name": "dispatchTokenRateUpdateEvent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16493, - "src": "23243:28:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20Token_$20240_$_t_contract$_IERC20Token_$20240_$_t_uint32_$_t_uint32_$returns$__$", - "typeString": "function (contract IERC20Token,contract IERC20Token,uint32,uint32)" - } - }, - "id": 15575, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "23243:70:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 15576, - "nodeType": "ExpressionStatement", - "src": "23243:70:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 15577, - "name": "poolTokenAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15497, - "src": "23385:15:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 15385, - "id": 15578, - "nodeType": "Return", - "src": "23378:22:25" - } - ] - }, - "documentation": "@dev increases the pool's liquidity and mints new shares in the pool to the caller\r\n\n * @param _reserveToken address of the reserve token to add liquidity to\r\n@param _amount amount of liquidity to add\r\n@param _minReturn minimum return-amount of pool tokens\r\n\n * @return amount of pool tokens minted\r", - "id": 15580, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 15371, - "modifierName": { - "argumentTypes": null, - "id": 15370, - "name": "protected", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21698, - "src": "20195:9:25", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "20195:9:25" - }, - { - "arguments": null, - "id": 15373, - "modifierName": { - "argumentTypes": null, - "id": 15372, - "name": "active", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2604, - "src": "20214:6:25", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "20214:6:25" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 15375, - "name": "_reserveToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15364, - "src": "20243:13:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - } - ], - "id": 15376, - "modifierName": { - "argumentTypes": null, - "id": 15374, - "name": "validReserve", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2642, - "src": "20230:12:25", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_contract$_IERC20Token_$20240_$", - "typeString": "modifier (contract IERC20Token)" - } - }, - "nodeType": "ModifierInvocation", - "src": "20230:27:25" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 15378, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15366, - "src": "20283:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 15379, - "modifierName": { - "argumentTypes": null, - "id": 15377, - "name": "greaterThanZero", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21988, - "src": "20267:15:25", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$", - "typeString": "modifier (uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "20267:24:25" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 15381, - "name": "_minReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15368, - "src": "20317:10:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 15382, - "modifierName": { - "argumentTypes": null, - "id": 15380, - "name": "greaterThanZero", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21988, - "src": "20301:15:25", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$", - "typeString": "modifier (uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "20301:27:25" - } - ], - "name": "addLiquidity", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 15369, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 15364, - "name": "_reserveToken", - "nodeType": "VariableDeclaration", - "scope": 15580, - "src": "20089:25:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - "typeName": { - "contractScope": null, - "id": 15363, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "20089:11:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 15366, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 15580, - "src": "20116:15:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 15365, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "20116:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 15368, - "name": "_minReturn", - "nodeType": "VariableDeclaration", - "scope": 15580, - "src": "20133:18:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 15367, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "20133:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "20088:64:25" - }, - "payable": true, - "returnParameters": { - "id": 15385, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 15384, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 15580, - "src": "20347:7:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 15383, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "20347:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "20346:9:25" - }, - "scope": 16610, - "src": "20067:3341:25", - "stateMutability": "payable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 15728, - "nodeType": "Block", - "src": "24042:1954:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 15604, - "name": "syncReserveBalances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3263, - "src": "24104:19:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", - "typeString": "function ()" - } - }, - "id": 15605, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "24104:21:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 15606, - "nodeType": "ExpressionStatement", - "src": "24104:21:25" - }, - { - "assignments": [ - 15608 - ], - "declarations": [ - { - "constant": false, - "id": 15608, - "name": "initialPoolSupply", - "nodeType": "VariableDeclaration", - "scope": 15729, - "src": "24211:25:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 15607, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24211:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 15612, - "initialValue": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 15609, - "name": "_poolToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15582, - "src": "24239:10:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISmartToken_$20295", - "typeString": "contract ISmartToken" - } - }, - "id": 15610, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "totalSupply", - "nodeType": "MemberAccess", - "referencedDeclaration": 20182, - "src": "24239:22:25", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", - "typeString": "function () view external returns (uint256)" - } - }, - "id": 15611, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "24239:24:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "24211:52:25" - }, - { - "assignments": [ - 15614, - null - ], - "declarations": [ - { - "constant": false, - "id": 15614, - "name": "reserveAmount", - "nodeType": "VariableDeclaration", - "scope": 15729, - "src": "24353:21:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 15613, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24353:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - null - ], - "id": 15619, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 15616, - "name": "_poolToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15582, - "src": "24408:10:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISmartToken_$20295", - "typeString": "contract ISmartToken" - } - }, - { - "argumentTypes": null, - "id": 15617, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15584, - "src": "24420:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_ISmartToken_$20295", - "typeString": "contract ISmartToken" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 15615, - "name": "removeLiquidityReturnAndFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15820, - "src": "24380:27:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_contract$_ISmartToken_$20295_$_t_uint256_$returns$_t_uint256_$_t_uint256_$", - "typeString": "function (contract ISmartToken,uint256) view returns (uint256,uint256)" - } - }, - "id": 15618, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "24380:48:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", - "typeString": "tuple(uint256,uint256)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "24352:76:25" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 15623, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 15621, - "name": "reserveAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15614, - "src": "24447:13:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 15622, - "name": "_minReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15586, - "src": "24464:10:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "24447:27:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552525f52455455524e5f544f4f5f4c4f57", - "id": 15624, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "24476:20:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c3237cc40443cfd1e0e9492ef35b7447eab6349fb6eac5eb1ec626edd3c555aa", - "typeString": "literal_string \"ERR_RETURN_TOO_LOW\"" - }, - "value": "ERR_RETURN_TOO_LOW" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_c3237cc40443cfd1e0e9492ef35b7447eab6349fb6eac5eb1ec626edd3c555aa", - "typeString": "literal_string \"ERR_RETURN_TOO_LOW\"" - } - ], - "id": 15620, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 22341, - 22342 - ], - "referencedDeclaration": 22342, - "src": "24439:7:25", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 15625, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "24439:58:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 15626, - "nodeType": "ExpressionStatement", - "src": "24439:58:25" - }, - { - "assignments": [ - 15628 - ], - "declarations": [ - { - "constant": false, - "id": 15628, - "name": "reserveToken", - "nodeType": "VariableDeclaration", - "scope": 15729, - "src": "24575:24:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - "typeName": { - "contractScope": null, - "id": 15627, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "24575:11:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 15632, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 15629, - "name": "poolTokensToReserves", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14496, - "src": "24602:20:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_contract$_IERC20Token_$20240_$", - "typeString": "mapping(address => contract IERC20Token)" - } - }, - "id": 15631, - "indexExpression": { - "argumentTypes": null, - "id": 15630, - "name": "_poolToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15582, - "src": "24623:10:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISmartToken_$20295", - "typeString": "contract ISmartToken" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "24602:32:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "24575:59:25" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 15637, - "name": "_poolToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15582, - "src": "24723:10:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISmartToken_$20295", - "typeString": "contract ISmartToken" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 15638, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22338, - "src": "24735:3:25", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 15639, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "24735:10:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 15640, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15584, - "src": "24747:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_ISmartToken_$20295", - "typeString": "contract ISmartToken" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 15634, - "name": "anchor", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2511 - ], - "referencedDeclaration": 2511, - "src": "24710:6:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - ], - "id": 15633, - "name": "IPoolTokensContainer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17009, - "src": "24689:20:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IPoolTokensContainer_$17009_$", - "typeString": "type(contract IPoolTokensContainer)" - } - }, - "id": 15635, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "24689:28:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IPoolTokensContainer_$17009", - "typeString": "contract IPoolTokensContainer" - } - }, - "id": 15636, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "burn", - "nodeType": "MemberAccess", - "referencedDeclaration": 17008, - "src": "24689:33:25", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_contract$_ISmartToken_$20295_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (contract ISmartToken,address,uint256) external" - } - }, - "id": 15641, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "24689:66:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 15642, - "nodeType": "ExpressionStatement", - "src": "24689:66:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 15654, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 15643, - "name": "reserves", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2520, - "src": "24822:8:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Reserve_$2506_storage_$", - "typeString": "mapping(address => struct ConverterBase.Reserve storage ref)" - } - }, - "id": 15645, - "indexExpression": { - "argumentTypes": null, - "id": 15644, - "name": "reserveToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15628, - "src": "24831:12:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "24822:22:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Reserve_$2506_storage", - "typeString": "struct ConverterBase.Reserve storage ref" - } - }, - "id": 15646, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "balance", - "nodeType": "MemberAccess", - "referencedDeclaration": 2497, - "src": "24822:30:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 15652, - "name": "reserveAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15614, - "src": "24890:13:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 15647, - "name": "reserves", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2520, - "src": "24855:8:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Reserve_$2506_storage_$", - "typeString": "mapping(address => struct ConverterBase.Reserve storage ref)" - } - }, - "id": 15649, - "indexExpression": { - "argumentTypes": null, - "id": 15648, - "name": "reserveToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15628, - "src": "24864:12:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "24855:22:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Reserve_$2506_storage", - "typeString": "struct ConverterBase.Reserve storage ref" - } - }, - "id": 15650, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "balance", - "nodeType": "MemberAccess", - "referencedDeclaration": 2497, - "src": "24855:30:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 15651, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 21758, - "src": "24855:34:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 15653, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "24855:49:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "24822:82:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 15655, - "nodeType": "ExpressionStatement", - "src": "24822:82:25" - }, - { - "assignments": [ - 15657 - ], - "declarations": [ - { - "constant": false, - "id": 15657, - "name": "newStakedBalance", - "nodeType": "VariableDeclaration", - "scope": 15729, - "src": "24915:24:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 15656, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24915:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 15664, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 15662, - "name": "reserveAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15614, - "src": "24975:13:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 15658, - "name": "stakedBalances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14488, - "src": "24942:14:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 15660, - "indexExpression": { - "argumentTypes": null, - "id": 15659, - "name": "reserveToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15628, - "src": "24957:12:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "24942:28:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 15661, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 21758, - "src": "24942:32:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 15663, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "24942:47:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "24915:74:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 15669, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 15665, - "name": "stakedBalances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14488, - "src": "25000:14:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 15667, - "indexExpression": { - "argumentTypes": null, - "id": 15666, - "name": "reserveToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15628, - "src": "25015:12:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "25000:28:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 15668, - "name": "newStakedBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15657, - "src": "25031:16:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "25000:47:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 15670, - "nodeType": "ExpressionStatement", - "src": "25000:47:25" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 15673, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 15671, - "name": "reserveToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15628, - "src": "25118:12:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 15672, - "name": "ETH_RESERVE_ADDRESS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2495, - "src": "25134:19:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "25118:35:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 15683, - "name": "reserveToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15628, - "src": "25244:12:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 15684, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22338, - "src": "25258:3:25", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 15685, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "25258:10:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 15686, - "name": "reserveAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15614, - "src": "25270:13:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 15682, - "name": "safeTransfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21881, - "src": "25231:12:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20Token_$20240_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (contract IERC20Token,address,uint256)" - } - }, - "id": 15687, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "25231:53:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 15688, - "nodeType": "ExpressionStatement", - "src": "25231:53:25" - }, - "id": 15689, - "nodeType": "IfStatement", - "src": "25114:170:25", - "trueBody": { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 15679, - "name": "reserveAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15614, - "src": "25188:13:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 15674, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22338, - "src": "25168:3:25", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 15677, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "25168:10:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 15678, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "25168:19:25", - "typeDescriptions": { - "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 15680, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "25168:34:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 15681, - "nodeType": "ExpressionStatement", - "src": "25168:34:25" - } - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 15690, - "name": "rebalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16319, - "src": "25346:9:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", - "typeString": "function ()" - } - }, - "id": 15691, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "25346:11:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 15692, - "nodeType": "ExpressionStatement", - "src": "25346:11:25" - }, - { - "assignments": [ - 15694 - ], - "declarations": [ - { - "constant": false, - "id": 15694, - "name": "newPoolTokenSupply", - "nodeType": "VariableDeclaration", - "scope": 15729, - "src": "25370:26:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 15693, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25370:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 15699, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 15697, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15584, - "src": "25421:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 15695, - "name": "initialPoolSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15608, - "src": "25399:17:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 15696, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 21758, - "src": "25399:21:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 15698, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "25399:30:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "25370:59:25" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 15701, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22338, - "src": "25512:3:25", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 15702, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "25512:10:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 15703, - "name": "reserveToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15628, - "src": "25524:12:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - { - "argumentTypes": null, - "id": 15704, - "name": "reserveAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15614, - "src": "25538:13:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 15705, - "name": "newStakedBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15657, - "src": "25553:16:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 15706, - "name": "newPoolTokenSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15694, - "src": "25571:18:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 15700, - "name": "LiquidityRemoved", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6177, - "src": "25495:16:25", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256,uint256,uint256)" - } - }, - "id": 15707, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "25495:95:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 15708, - "nodeType": "EmitStatement", - "src": "25490:100:25" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 15710, - "name": "_poolToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15582, - "src": "25704:10:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISmartToken_$20295", - "typeString": "contract ISmartToken" - } - }, - { - "argumentTypes": null, - "id": 15711, - "name": "newPoolTokenSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15694, - "src": "25716:18:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 15712, - "name": "reserveToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15628, - "src": "25736:12:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_ISmartToken_$20295", - "typeString": "contract ISmartToken" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - ], - "id": 15709, - "name": "dispatchPoolTokenRateUpdateEvent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16512, - "src": "25671:32:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_ISmartToken_$20295_$_t_uint256_$_t_contract$_IERC20Token_$20240_$returns$__$", - "typeString": "function (contract ISmartToken,uint256,contract IERC20Token)" - } - }, - "id": 15713, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "25671:78:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 15714, - "nodeType": "ExpressionStatement", - "src": "25671:78:25" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 15716, - "name": "reserveTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2516, - "src": "25863:13:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_storage", - "typeString": "contract IERC20Token[] storage ref" - } - }, - "id": 15718, - "indexExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 15717, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "25877:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "25863:16:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 15719, - "name": "reserveTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2516, - "src": "25881:13:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_storage", - "typeString": "contract IERC20Token[] storage ref" - } - }, - "id": 15721, - "indexExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 15720, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "25895:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "25881:16:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - { - "argumentTypes": null, - "hexValue": "30", - "id": 15722, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "25899:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - { - "argumentTypes": null, - "hexValue": "30", - "id": 15723, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "25902:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 15715, - "name": "dispatchTokenRateUpdateEvent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16493, - "src": "25834:28:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20Token_$20240_$_t_contract$_IERC20Token_$20240_$_t_uint32_$_t_uint32_$returns$__$", - "typeString": "function (contract IERC20Token,contract IERC20Token,uint32,uint32)" - } - }, - "id": 15724, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "25834:70:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 15725, - "nodeType": "ExpressionStatement", - "src": "25834:70:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 15726, - "name": "reserveAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15614, - "src": "25975:13:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 15603, - "id": 15727, - "nodeType": "Return", - "src": "25968:20:25" - } - ] - }, - "documentation": "@dev decreases the pool's liquidity and burns the caller's shares in the pool\r\n\n * @param _poolToken address of the pool token\r\n@param _amount amount of pool tokens to burn\r\n@param _minReturn minimum return-amount of reserve tokens\r\n\n * @return amount of liquidity removed\r", - "id": 15729, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 15589, - "modifierName": { - "argumentTypes": null, - "id": 15588, - "name": "protected", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21698, - "src": "23877:9:25", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "23877:9:25" - }, - { - "arguments": null, - "id": 15591, - "modifierName": { - "argumentTypes": null, - "id": 15590, - "name": "active", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2604, - "src": "23896:6:25", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "23896:6:25" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 15593, - "name": "_poolToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15582, - "src": "23927:10:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISmartToken_$20295", - "typeString": "contract ISmartToken" - } - } - ], - "id": 15594, - "modifierName": { - "argumentTypes": null, - "id": 15592, - "name": "validPoolToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14546, - "src": "23912:14:25", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_contract$_ISmartToken_$20295_$", - "typeString": "modifier (contract ISmartToken)" - } - }, - "nodeType": "ModifierInvocation", - "src": "23912:26:25" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 15596, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15584, - "src": "23964:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 15597, - "modifierName": { - "argumentTypes": null, - "id": 15595, - "name": "greaterThanZero", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21988, - "src": "23948:15:25", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$", - "typeString": "modifier (uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "23948:24:25" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 15599, - "name": "_minReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15586, - "src": "23998:10:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 15600, - "modifierName": { - "argumentTypes": null, - "id": 15598, - "name": "greaterThanZero", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21988, - "src": "23982:15:25", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$", - "typeString": "modifier (uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "23982:27:25" - } - ], - "name": "removeLiquidity", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 15587, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 15582, - "name": "_poolToken", - "nodeType": "VariableDeclaration", - "scope": 15729, - "src": "23791:22:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISmartToken_$20295", - "typeString": "contract ISmartToken" - }, - "typeName": { - "contractScope": null, - "id": 15581, - "name": "ISmartToken", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20295, - "src": "23791:11:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISmartToken_$20295", - "typeString": "contract ISmartToken" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 15584, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 15729, - "src": "23815:15:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 15583, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "23815:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 15586, - "name": "_minReturn", - "nodeType": "VariableDeclaration", - "scope": 15729, - "src": "23832:18:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 15585, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "23832:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "23790:61:25" - }, - "payable": false, - "returnParameters": { - "id": 15603, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 15602, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 15729, - "src": "24028:7:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 15601, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24028:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "24027:9:25" - }, - "scope": 16610, - "src": "23766:2230:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 15819, - "nodeType": "Block", - "src": "26557:690:25", - "statements": [ - { - "assignments": [ - 15741 - ], - "declarations": [ - { - "constant": false, - "id": 15741, - "name": "totalSupply", - "nodeType": "VariableDeclaration", - "scope": 15820, - "src": "26568:19:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 15740, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "26568:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 15745, - "initialValue": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 15742, - "name": "_poolToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15731, - "src": "26590:10:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISmartToken_$20295", - "typeString": "contract ISmartToken" - } - }, - "id": 15743, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "totalSupply", - "nodeType": "MemberAccess", - "referencedDeclaration": 20182, - "src": "26590:22:25", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", - "typeString": "function () view external returns (uint256)" - } - }, - "id": 15744, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "26590:24:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "26568:46:25" - }, - { - "assignments": [ - 15747 - ], - "declarations": [ - { - "constant": false, - "id": 15747, - "name": "stakedBalance", - "nodeType": "VariableDeclaration", - "scope": 15820, - "src": "26625:21:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 15746, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "26625:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 15753, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 15748, - "name": "stakedBalances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14488, - "src": "26649:14:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 15752, - "indexExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 15749, - "name": "poolTokensToReserves", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14496, - "src": "26664:20:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_contract$_IERC20Token_$20240_$", - "typeString": "mapping(address => contract IERC20Token)" - } - }, - "id": 15751, - "indexExpression": { - "argumentTypes": null, - "id": 15750, - "name": "_poolToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15731, - "src": "26685:10:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISmartToken_$20295", - "typeString": "contract ISmartToken" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "26664:32:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "26649:48:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "26625:72:25" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 15756, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 15754, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15733, - "src": "26714:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "id": 15755, - "name": "totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15741, - "src": "26724:11:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "26714:21:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 15814, - "nodeType": "IfStatement", - "src": "26710:494:25", - "trueBody": { - "id": 15813, - "nodeType": "Block", - "src": "26737:467:25", - "statements": [ - { - "assignments": [ - 15758 - ], - "declarations": [ - { - "constant": false, - "id": 15758, - "name": "x", - "nodeType": "VariableDeclaration", - "scope": 15820, - "src": "26752:9:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 15757, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "26752:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 15765, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 15763, - "name": "AMPLIFICATION_FACTOR", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14470, - "src": "26804:20:25", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 15759, - "name": "stakedBalances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14488, - "src": "26764:14:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 15761, - "indexExpression": { - "argumentTypes": null, - "id": 15760, - "name": "primaryReserveToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14482, - "src": "26779:19:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "26764:35:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 15762, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 21791, - "src": "26764:39:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 15764, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "26764:61:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "26752:73:25" - }, - { - "assignments": [ - 15767 - ], - "declarations": [ - { - "constant": false, - "id": 15767, - "name": "y", - "nodeType": "VariableDeclaration", - "scope": 15820, - "src": "26840:9:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 15766, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "26840:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 15771, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 15769, - "name": "primaryReserveToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14482, - "src": "26876:19:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - ], - "id": 15768, - "name": "reserveAmplifiedBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14852, - "src": "26852:23:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_contract$_IERC20Token_$20240_$returns$_t_uint256_$", - "typeString": "function (contract IERC20Token) view returns (uint256)" - } - }, - "id": 15770, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "26852:44:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "26840:56:25" - }, - { - "assignments": [ - 15773, - 15775 - ], - "declarations": [ - { - "constant": false, - "id": 15773, - "name": "min", - "nodeType": "VariableDeclaration", - "scope": 15820, - "src": "26912:11:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 15772, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "26912:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 15775, - "name": "max", - "nodeType": "VariableDeclaration", - "scope": 15820, - "src": "26925:11:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 15774, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "26925:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 15786, - "initialValue": { - "argumentTypes": null, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 15778, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 15776, - "name": "x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15758, - "src": "26940:1:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "id": 15777, - "name": "y", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15767, - "src": "26944:1:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "26940:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "id": 15782, - "name": "y", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15767, - "src": "26958:1:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 15783, - "name": "x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15758, - "src": "26961:1:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 15784, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "26957:6:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", - "typeString": "tuple(uint256,uint256)" - } - }, - "id": 15785, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "26940:23:25", - "trueExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "id": 15779, - "name": "x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15758, - "src": "26949:1:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 15780, - "name": "y", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15767, - "src": "26952:1:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 15781, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "26948:6:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", - "typeString": "tuple(uint256,uint256)" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", - "typeString": "tuple(uint256,uint256)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "26911:52:25" - }, - { - "assignments": [ - 15788 - ], - "declarations": [ - { - "constant": false, - "id": 15788, - "name": "amountBeforeFee", - "nodeType": "VariableDeclaration", - "scope": 15820, - "src": "26978:23:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 15787, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "26978:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 15796, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 15794, - "name": "totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15741, - "src": "27035:11:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 15791, - "name": "stakedBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15747, - "src": "27016:13:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 15789, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15733, - "src": "27004:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 15790, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 21791, - "src": "27004:11:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 15792, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27004:26:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 15793, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "div", - "nodeType": "MemberAccess", - "referencedDeclaration": 21816, - "src": "27004:30:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 15795, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27004:43:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "26978:69:25" - }, - { - "assignments": [ - 15798 - ], - "declarations": [ - { - "constant": false, - "id": 15798, - "name": "amountAfterFee", - "nodeType": "VariableDeclaration", - "scope": 15820, - "src": "27062:22:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 15797, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "27062:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 15806, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 15804, - "name": "max", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15775, - "src": "27116:3:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 15801, - "name": "min", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15773, - "src": "27107:3:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 15799, - "name": "amountBeforeFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15788, - "src": "27087:15:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 15800, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 21791, - "src": "27087:19:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 15802, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27087:24:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 15803, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "div", - "nodeType": "MemberAccess", - "referencedDeclaration": 21816, - "src": "27087:28:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 15805, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27087:33:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "27062:58:25" - }, - { - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "id": 15807, - "name": "amountAfterFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15798, - "src": "27143:14:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 15810, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 15808, - "name": "amountBeforeFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15788, - "src": "27159:15:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "id": 15809, - "name": "amountAfterFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15798, - "src": "27177:14:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "27159:32:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 15811, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "27142:50:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", - "typeString": "tuple(uint256,uint256)" - } - }, - "functionReturnParameters": 15739, - "id": 15812, - "nodeType": "Return", - "src": "27135:57:25" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "id": 15815, - "name": "stakedBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15747, - "src": "27222:13:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "hexValue": "30", - "id": 15816, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "27237:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "id": 15817, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "27221:18:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_rational_0_by_1_$", - "typeString": "tuple(uint256,int_const 0)" - } - }, - "functionReturnParameters": 15739, - "id": 15818, - "nodeType": "Return", - "src": "27214:25:25" - } - ] - }, - "documentation": "@dev calculates the amount of reserve tokens entitled for a given amount of pool tokens\r\nnote that a fee is applied according to the equilibrium level of the primary reserve token\r\n\n * @param _poolToken address of the pool token\r\n@param _amount amount of pool tokens\r\n\n * @return amount after fee and fee, in reserve token units\r", - "id": 15820, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "removeLiquidityReturnAndFee", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 15734, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 15731, - "name": "_poolToken", - "nodeType": "VariableDeclaration", - "scope": 15820, - "src": "26445:22:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISmartToken_$20295", - "typeString": "contract ISmartToken" - }, - "typeName": { - "contractScope": null, - "id": 15730, - "name": "ISmartToken", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20295, - "src": "26445:11:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISmartToken_$20295", - "typeString": "contract ISmartToken" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 15733, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 15820, - "src": "26469:15:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 15732, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "26469:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "26444:41:25" - }, - "payable": false, - "returnParameters": { - "id": 15739, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 15736, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 15820, - "src": "26534:7:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 15735, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "26534:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 15738, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 15820, - "src": "26543:7:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 15737, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "26543:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "26533:18:25" - }, - "scope": 16610, - "src": "26408:839:25", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 15916, - "nodeType": "Block", - "src": "28443:1023:25", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "id": 15843, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 15841, - "name": "_sourceWeight", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15826, - "src": "28458:13:25", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 15842, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "28475:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "28458:18:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 15851, - "nodeType": "IfStatement", - "src": "28454:82:25", - "trueBody": { - "expression": { - "argumentTypes": null, - "id": 15849, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 15844, - "name": "_sourceWeight", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15826, - "src": "28491:13:25", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 15845, - "name": "reserves", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2520, - "src": "28507:8:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Reserve_$2506_storage_$", - "typeString": "mapping(address => struct ConverterBase.Reserve storage ref)" - } - }, - "id": 15847, - "indexExpression": { - "argumentTypes": null, - "id": 15846, - "name": "_sourceToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15822, - "src": "28516:12:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "28507:22:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Reserve_$2506_storage", - "typeString": "struct ConverterBase.Reserve storage ref" - } - }, - "id": 15848, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "weight", - "nodeType": "MemberAccess", - "referencedDeclaration": 2499, - "src": "28507:29:25", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "src": "28491:45:25", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "id": 15850, - "nodeType": "ExpressionStatement", - "src": "28491:45:25" - } - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "id": 15854, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 15852, - "name": "_targetWeight", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15828, - "src": "28551:13:25", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 15853, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "28568:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "28551:18:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 15862, - "nodeType": "IfStatement", - "src": "28547:82:25", - "trueBody": { - "expression": { - "argumentTypes": null, - "id": 15860, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 15855, - "name": "_targetWeight", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15828, - "src": "28584:13:25", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 15856, - "name": "reserves", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2520, - "src": "28600:8:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Reserve_$2506_storage_$", - "typeString": "mapping(address => struct ConverterBase.Reserve storage ref)" - } - }, - "id": 15858, - "indexExpression": { - "argumentTypes": null, - "id": 15857, - "name": "_targetToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15824, - "src": "28609:12:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "28600:22:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Reserve_$2506_storage", - "typeString": "struct ConverterBase.Reserve storage ref" - } - }, - "id": 15859, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "weight", - "nodeType": "MemberAccess", - "referencedDeclaration": 2499, - "src": "28600:29:25", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "src": "28584:45:25", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "id": 15861, - "nodeType": "ExpressionStatement", - "src": "28584:45:25" - } - }, - { - "assignments": [ - 15864 - ], - "declarations": [ - { - "constant": false, - "id": 15864, - "name": "sourceBalance", - "nodeType": "VariableDeclaration", - "scope": 15917, - "src": "28688:21:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 15863, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "28688:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 15868, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 15866, - "name": "_sourceToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15822, - "src": "28736:12:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - ], - "id": 15865, - "name": "reserveAmplifiedBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14852, - "src": "28712:23:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_contract$_IERC20Token_$20240_$returns$_t_uint256_$", - "typeString": "function (contract IERC20Token) view returns (uint256)" - } - }, - "id": 15867, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28712:37:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "28688:61:25" - }, - { - "assignments": [ - 15870 - ], - "declarations": [ - { - "constant": false, - "id": 15870, - "name": "targetBalance", - "nodeType": "VariableDeclaration", - "scope": 15917, - "src": "28760:21:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 15869, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "28760:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 15874, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 15872, - "name": "_targetToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15824, - "src": "28808:12:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - ], - "id": 15871, - "name": "reserveAmplifiedBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14852, - "src": "28784:23:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_contract$_IERC20Token_$20240_$returns$_t_uint256_$", - "typeString": "function (contract IERC20Token) view returns (uint256)" - } - }, - "id": 15873, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28784:37:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "28760:61:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 15888, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 15875, - "name": "targetAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15835, - "src": "28868:12:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 15882, - "name": "sourceBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15864, - "src": "28972:13:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 15883, - "name": "_sourceWeight", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15826, - "src": "29000:13:25", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - { - "argumentTypes": null, - "id": 15884, - "name": "targetBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15870, - "src": "29028:13:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 15885, - "name": "_targetWeight", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15828, - "src": "29056:13:25", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - { - "argumentTypes": null, - "id": 15886, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15832, - "src": "29084:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 15878, - "name": "SOVRYNSWAP_FORMULA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20758, - "src": "28912:18:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 15877, - "name": "addressOf", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20931, - "src": "28902:9:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$", - "typeString": "function (bytes32) view returns (address)" - } - }, - "id": 15879, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28902:29:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 15876, - "name": "ISovrynSwapFormula", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12240, - "src": "28883:18:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ISovrynSwapFormula_$12240_$", - "typeString": "type(contract ISovrynSwapFormula)" - } - }, - "id": 15880, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28883:49:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISovrynSwapFormula_$12240", - "typeString": "contract ISovrynSwapFormula" - } - }, - "id": 15881, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "crossReserveTargetAmount", - "nodeType": "MemberAccess", - "referencedDeclaration": 12183, - "src": "28883:74:25", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_uint256_$_t_uint32_$_t_uint256_$_t_uint32_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256,uint32,uint256,uint32,uint256) view external returns (uint256)" - } - }, - "id": 15887, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28883:219:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "28868:234:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 15889, - "nodeType": "ExpressionStatement", - "src": "28868:234:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 15894, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 15890, - "name": "standardFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15837, - "src": "29239:11:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 15892, - "name": "targetAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15835, - "src": "29266:12:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 15891, - "name": "calculateFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3204, - "src": "29253:12:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256) view returns (uint256)" - } - }, - "id": 15893, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "29253:26:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "29239:40:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 15895, - "nodeType": "ExpressionStatement", - "src": "29239:40:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 15907, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 15896, - "name": "dynamicFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15839, - "src": "29290:10:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 15905, - "name": "standardFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15837, - "src": "29392:11:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 15898, - "name": "_targetToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15824, - "src": "29323:12:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - { - "argumentTypes": null, - "id": 15899, - "name": "_sourceWeight", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15826, - "src": "29337:13:25", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - { - "argumentTypes": null, - "id": 15900, - "name": "_targetWeight", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15828, - "src": "29352:13:25", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - { - "argumentTypes": null, - "id": 15901, - "name": "_rate", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15830, - "src": "29367:5:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Fraction_$14478_memory_ptr", - "typeString": "struct LiquidityPoolV2Converter.Fraction memory" - } - }, - { - "argumentTypes": null, - "id": 15902, - "name": "targetAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15835, - "src": "29374:12:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - { - "typeIdentifier": "t_struct$_Fraction_$14478_memory_ptr", - "typeString": "struct LiquidityPoolV2Converter.Fraction memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 15897, - "name": "calculateDynamicFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15986, - "src": "29303:19:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_contract$_IERC20Token_$20240_$_t_uint32_$_t_uint32_$_t_struct$_Fraction_$14478_memory_ptr_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (contract IERC20Token,uint32,uint32,struct LiquidityPoolV2Converter.Fraction memory,uint256) view returns (uint256)" - } - }, - "id": 15903, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "29303:84:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 15904, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 21737, - "src": "29303:88:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 15906, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "29303:101:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "29290:114:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 15908, - "nodeType": "ExpressionStatement", - "src": "29290:114:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 15914, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 15909, - "name": "targetAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15835, - "src": "29415:12:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 15912, - "name": "dynamicFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15839, - "src": "29447:10:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 15910, - "name": "targetAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15835, - "src": "29430:12:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 15911, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 21758, - "src": "29430:16:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 15913, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "29430:28:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "29415:43:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 15915, - "nodeType": "ExpressionStatement", - "src": "29415:43:25" - } - ] - }, - "documentation": "@dev returns the expected target amount of converting one reserve to another along with the fees\r\nthis version of the function expects the reserve weights as an input (gas optimization)\r\n\n * @param _sourceToken contract address of the source reserve token\r\n@param _targetToken contract address of the target reserve token\r\n@param _sourceWeight source reserve token weight or 0 to read it from storage\r\n@param _targetWeight target reserve token weight or 0 to read it from storage\r\n@param _rate rate between the reserve tokens\r\n@param _amount amount of tokens received from the user\r\n\n * @return expected target amount\r\n@return expected standard conversion fee\r\n@return expected dynamic conversion fee\r", - "id": 15917, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "targetAmountAndFees", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 15833, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 15822, - "name": "_sourceToken", - "nodeType": "VariableDeclaration", - "scope": 15917, - "src": "28145:24:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - "typeName": { - "contractScope": null, - "id": 15821, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "28145:11:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 15824, - "name": "_targetToken", - "nodeType": "VariableDeclaration", - "scope": 15917, - "src": "28180:24:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - "typeName": { - "contractScope": null, - "id": 15823, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "28180:11:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 15826, - "name": "_sourceWeight", - "nodeType": "VariableDeclaration", - "scope": 15917, - "src": "28215:20:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 15825, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "28215:6:25", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 15828, - "name": "_targetWeight", - "nodeType": "VariableDeclaration", - "scope": 15917, - "src": "28246:20:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 15827, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "28246:6:25", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 15830, - "name": "_rate", - "nodeType": "VariableDeclaration", - "scope": 15917, - "src": "28277:21:25", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Fraction_$14478_memory_ptr", - "typeString": "struct LiquidityPoolV2Converter.Fraction" - }, - "typeName": { - "contractScope": null, - "id": 15829, - "name": "Fraction", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 14478, - "src": "28277:8:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Fraction_$14478_storage_ptr", - "typeString": "struct LiquidityPoolV2Converter.Fraction" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 15832, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 15917, - "src": "28309:15:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 15831, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "28309:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "28134:191:25" - }, - "payable": false, - "returnParameters": { - "id": 15840, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 15835, - "name": "targetAmount", - "nodeType": "VariableDeclaration", - "scope": 15917, - "src": "28375:20:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 15834, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "28375:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 15837, - "name": "standardFee", - "nodeType": "VariableDeclaration", - "scope": 15917, - "src": "28397:19:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 15836, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "28397:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 15839, - "name": "dynamicFee", - "nodeType": "VariableDeclaration", - "scope": 15917, - "src": "28418:18:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 15838, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "28418:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "28374:63:25" - }, - "scope": 16610, - "src": "28106:1360:25", - "stateMutability": "view", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 15985, - "nodeType": "Block", - "src": "30163:813:25", - "statements": [ - { - "assignments": [], - "declarations": [ - { - "constant": false, - "id": 15933, - "name": "fee", - "nodeType": "VariableDeclaration", - "scope": 15986, - "src": "30174:11:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 15932, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "30174:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 15934, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "30174:11:25" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - "id": 15937, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 15935, - "name": "_targetToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15919, - "src": "30202:12:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 15936, - "name": "secondaryReserveToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14484, - "src": "30218:21:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "src": "30202:37:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 15975, - "nodeType": "Block", - "src": "30576:320:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 15973, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 15957, - "name": "fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15933, - "src": "30591:3:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 15959, - "name": "stakedBalances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14488, - "src": "30641:14:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 15961, - "indexExpression": { - "argumentTypes": null, - "id": 15960, - "name": "primaryReserveToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14482, - "src": "30656:19:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "30641:35:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 15962, - "name": "stakedBalances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14488, - "src": "30695:14:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 15964, - "indexExpression": { - "argumentTypes": null, - "id": 15963, - "name": "secondaryReserveToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14484, - "src": "30710:21:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "30695:37:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 15965, - "name": "_targetWeight", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15923, - "src": "30751:13:25", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - { - "argumentTypes": null, - "id": 15966, - "name": "_sourceWeight", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15921, - "src": "30783:13:25", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 15967, - "name": "_rate", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15925, - "src": "30815:5:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Fraction_$14478_memory_ptr", - "typeString": "struct LiquidityPoolV2Converter.Fraction memory" - } - }, - "id": 15968, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "n", - "nodeType": "MemberAccess", - "referencedDeclaration": 14475, - "src": "30815:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 15969, - "name": "_rate", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15925, - "src": "30841:5:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Fraction_$14478_memory_ptr", - "typeString": "struct LiquidityPoolV2Converter.Fraction memory" - } - }, - "id": 15970, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "d", - "nodeType": "MemberAccess", - "referencedDeclaration": 14477, - "src": "30841:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 15971, - "name": "dynamicFeeFactor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14515, - "src": "30867:16:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 15958, - "name": "calculateFeeToEquilibrium", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16046, - "src": "30597:25:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256,uint256,uint256,uint256,uint256,uint256,uint256) pure returns (uint256)" - } - }, - "id": 15972, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "30597:287:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "30591:293:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 15974, - "nodeType": "ExpressionStatement", - "src": "30591:293:25" - } - ] - }, - "id": 15976, - "nodeType": "IfStatement", - "src": "30198:698:25", - "trueBody": { - "id": 15956, - "nodeType": "Block", - "src": "30241:320:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 15954, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 15938, - "name": "fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15933, - "src": "30256:3:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 15940, - "name": "stakedBalances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14488, - "src": "30306:14:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 15942, - "indexExpression": { - "argumentTypes": null, - "id": 15941, - "name": "primaryReserveToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14482, - "src": "30321:19:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "30306:35:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 15943, - "name": "stakedBalances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14488, - "src": "30360:14:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 15945, - "indexExpression": { - "argumentTypes": null, - "id": 15944, - "name": "secondaryReserveToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14484, - "src": "30375:21:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "30360:37:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 15946, - "name": "_sourceWeight", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15921, - "src": "30416:13:25", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - { - "argumentTypes": null, - "id": 15947, - "name": "_targetWeight", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15923, - "src": "30448:13:25", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 15948, - "name": "_rate", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15925, - "src": "30480:5:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Fraction_$14478_memory_ptr", - "typeString": "struct LiquidityPoolV2Converter.Fraction memory" - } - }, - "id": 15949, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "n", - "nodeType": "MemberAccess", - "referencedDeclaration": 14475, - "src": "30480:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 15950, - "name": "_rate", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15925, - "src": "30506:5:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Fraction_$14478_memory_ptr", - "typeString": "struct LiquidityPoolV2Converter.Fraction memory" - } - }, - "id": 15951, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "d", - "nodeType": "MemberAccess", - "referencedDeclaration": 14477, - "src": "30506:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 15952, - "name": "dynamicFeeFactor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14515, - "src": "30532:16:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 15939, - "name": "calculateFeeToEquilibrium", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16046, - "src": "30262:25:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256,uint256,uint256,uint256,uint256,uint256,uint256) pure returns (uint256)" - } - }, - "id": 15953, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "30262:287:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "30256:293:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 15955, - "nodeType": "ExpressionStatement", - "src": "30256:293:25" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 15982, - "name": "CONVERSION_FEE_RESOLUTION", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2492, - "src": "30942:25:25", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 15979, - "name": "fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15933, - "src": "30933:3:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 15977, - "name": "_targetAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15927, - "src": "30915:13:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 15978, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 21791, - "src": "30915:17:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 15980, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "30915:22:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 15981, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "div", - "nodeType": "MemberAccess", - "referencedDeclaration": 21816, - "src": "30915:26:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 15983, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "30915:53:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 15931, - "id": 15984, - "nodeType": "Return", - "src": "30908:60:25" - } - ] - }, - "documentation": "@dev returns the dynamic fee for a given target amount\r\n\n * @param _targetToken contract address of the target reserve token\r\n@param _sourceWeight source reserve token weight\r\n@param _targetWeight target reserve token weight\r\n@param _rate rate of 1 primary token in secondary tokens\r\n@param _targetAmount target amount\r\n\n * @return dynamic fee\r", - "id": 15986, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "calculateDynamicFee", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 15928, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 15919, - "name": "_targetToken", - "nodeType": "VariableDeclaration", - "scope": 15986, - "src": "29965:24:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - "typeName": { - "contractScope": null, - "id": 15918, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "29965:11:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 15921, - "name": "_sourceWeight", - "nodeType": "VariableDeclaration", - "scope": 15986, - "src": "30000:20:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 15920, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "30000:6:25", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 15923, - "name": "_targetWeight", - "nodeType": "VariableDeclaration", - "scope": 15986, - "src": "30031:20:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 15922, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "30031:6:25", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 15925, - "name": "_rate", - "nodeType": "VariableDeclaration", - "scope": 15986, - "src": "30062:21:25", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Fraction_$14478_memory_ptr", - "typeString": "struct LiquidityPoolV2Converter.Fraction" - }, - "typeName": { - "contractScope": null, - "id": 15924, - "name": "Fraction", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 14478, - "src": "30062:8:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Fraction_$14478_storage_ptr", - "typeString": "struct LiquidityPoolV2Converter.Fraction" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 15927, - "name": "_targetAmount", - "nodeType": "VariableDeclaration", - "scope": 15986, - "src": "30094:21:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 15926, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "30094:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "29954:162:25" - }, - "payable": false, - "returnParameters": { - "id": 15931, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 15930, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 15986, - "src": "30149:7:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 15929, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "30149:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "30148:9:25" - }, - "scope": 16610, - "src": "29926:1050:25", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 16045, - "nodeType": "Block", - "src": "32020:330:25", - "statements": [ - { - "assignments": [ - 16006 - ], - "declarations": [ - { - "constant": false, - "id": 16006, - "name": "x", - "nodeType": "VariableDeclaration", - "scope": 16046, - "src": "32031:9:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 16005, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "32031:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 16014, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 16012, - "name": "_secondaryReserveWeight", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15994, - "src": "32094:23:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 16009, - "name": "_primaryReserveRate", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15996, - "src": "32069:19:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 16007, - "name": "_primaryReserveStaked", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15988, - "src": "32043:21:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 16008, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 21791, - "src": "32043:25:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 16010, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "32043:46:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 16011, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 21791, - "src": "32043:50:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 16013, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "32043:75:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "32031:87:25" - }, - { - "assignments": [ - 16016 - ], - "declarations": [ - { - "constant": false, - "id": 16016, - "name": "y", - "nodeType": "VariableDeclaration", - "scope": 16046, - "src": "32129:9:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 16015, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "32129:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 16024, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 16022, - "name": "_primaryReserveWeight", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15992, - "src": "32196:21:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 16019, - "name": "_secondaryReserveRate", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15998, - "src": "32169:21:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 16017, - "name": "_secondaryReserveStaked", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15990, - "src": "32141:23:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 16018, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 21791, - "src": "32141:27:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 16020, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "32141:50:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 16021, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 21791, - "src": "32141:54:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 16023, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "32141:77:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "32129:89:25" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 16027, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 16025, - "name": "y", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16016, - "src": "32233:1:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "id": 16026, - "name": "x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16006, - "src": "32237:1:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "32233:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 16042, - "nodeType": "IfStatement", - "src": "32229:94:25", - "trueBody": { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 16039, - "name": "y", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16016, - "src": "32321:1:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 16036, - "name": "AMPLIFICATION_FACTOR", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14470, - "src": "32295:20:25", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 16033, - "name": "_dynamicFeeFactor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16000, - "src": "32272:17:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 16030, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 16028, - "name": "y", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16016, - "src": "32261:1:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "id": 16029, - "name": "x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16006, - "src": "32265:1:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "32261:5:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 16031, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "32260:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 16032, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 21791, - "src": "32260:11:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 16034, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "32260:30:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 16035, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 21791, - "src": "32260:34:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 16037, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "32260:56:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 16038, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "div", - "nodeType": "MemberAccess", - "referencedDeclaration": 21816, - "src": "32260:60:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 16040, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "32260:63:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 16004, - "id": 16041, - "nodeType": "Return", - "src": "32253:70:25" - } - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "30", - "id": 16043, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "32341:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "functionReturnParameters": 16004, - "id": 16044, - "nodeType": "Return", - "src": "32334:8:25" - } - ] - }, - "documentation": "@dev returns the relative fee required for mitigating the secondary reserve distance from equilibrium\r\n\n * @param _primaryReserveStaked primary reserve staked balance\r\n@param _secondaryReserveStaked secondary reserve staked balance\r\n@param _primaryReserveWeight primary reserve weight\r\n@param _secondaryReserveWeight secondary reserve weight\r\n@param _primaryReserveRate primary reserve rate\r\n@param _secondaryReserveRate secondary reserve rate\r\n@param _dynamicFeeFactor dynamic fee factor\r\n\n * @return relative fee, represented in ppm\r", - "id": 16046, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "calculateFeeToEquilibrium", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 16001, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 15988, - "name": "_primaryReserveStaked", - "nodeType": "VariableDeclaration", - "scope": 16046, - "src": "31687:29:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 15987, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "31687:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 15990, - "name": "_secondaryReserveStaked", - "nodeType": "VariableDeclaration", - "scope": 16046, - "src": "31727:31:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 15989, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "31727:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 15992, - "name": "_primaryReserveWeight", - "nodeType": "VariableDeclaration", - "scope": 16046, - "src": "31769:29:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 15991, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "31769:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 15994, - "name": "_secondaryReserveWeight", - "nodeType": "VariableDeclaration", - "scope": 16046, - "src": "31809:31:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 15993, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "31809:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 15996, - "name": "_primaryReserveRate", - "nodeType": "VariableDeclaration", - "scope": 16046, - "src": "31851:27:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 15995, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "31851:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 15998, - "name": "_secondaryReserveRate", - "nodeType": "VariableDeclaration", - "scope": 16046, - "src": "31889:29:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 15997, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "31889:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 16000, - "name": "_dynamicFeeFactor", - "nodeType": "VariableDeclaration", - "scope": 16046, - "src": "31929:25:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 15999, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "31929:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "31676:279:25" - }, - "payable": false, - "returnParameters": { - "id": 16004, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 16003, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 16046, - "src": "32006:7:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 16002, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "32006:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "32005:9:25" - }, - "scope": 16610, - "src": "31642:708:25", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 16122, - "nodeType": "Block", - "src": "32635:769:25", - "statements": [ - { - "assignments": [ - 16050 - ], - "declarations": [ - { - "constant": false, - "id": 16050, - "name": "container", - "nodeType": "VariableDeclaration", - "scope": 16123, - "src": "32646:30:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IPoolTokensContainer_$17009", - "typeString": "contract IPoolTokensContainer" - }, - "typeName": { - "contractScope": null, - "id": 16049, - "name": "IPoolTokensContainer", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 17009, - "src": "32646:20:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IPoolTokensContainer_$17009", - "typeString": "contract IPoolTokensContainer" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 16054, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 16052, - "name": "anchor", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2511 - ], - "referencedDeclaration": 2511, - "src": "32700:6:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - ], - "id": 16051, - "name": "IPoolTokensContainer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17009, - "src": "32679:20:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IPoolTokensContainer_$17009_$", - "typeString": "type(contract IPoolTokensContainer)" - } - }, - "id": 16053, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "32679:28:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IPoolTokensContainer_$17009", - "typeString": "contract IPoolTokensContainer" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "32646:61:25" - }, - { - "assignments": [ - 16058 - ], - "declarations": [ - { - "constant": false, - "id": 16058, - "name": "poolTokens", - "nodeType": "VariableDeclaration", - "scope": 16123, - "src": "32718:31:25", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_ISmartToken_$20295_$dyn_memory_ptr", - "typeString": "contract ISmartToken[]" - }, - "typeName": { - "baseType": { - "contractScope": null, - "id": 16056, - "name": "ISmartToken", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20295, - "src": "32718:11:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISmartToken_$20295", - "typeString": "contract ISmartToken" - } - }, - "id": 16057, - "length": null, - "nodeType": "ArrayTypeName", - "src": "32718:13:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_ISmartToken_$20295_$dyn_storage_ptr", - "typeString": "contract ISmartToken[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 16062, - "initialValue": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 16059, - "name": "container", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16050, - "src": "32752:9:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IPoolTokensContainer_$17009", - "typeString": "contract IPoolTokensContainer" - } - }, - "id": 16060, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "poolTokens", - "nodeType": "MemberAccess", - "referencedDeclaration": 16985, - "src": "32752:20:25", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_array$_t_contract$_ISmartToken_$20295_$dyn_memory_ptr_$", - "typeString": "function () view external returns (contract ISmartToken[] memory)" - } - }, - "id": 16061, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "32752:22:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_ISmartToken_$20295_$dyn_memory_ptr", - "typeString": "contract ISmartToken[] memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "32718:56:25" - }, - { - "assignments": [ - 16064 - ], - "declarations": [ - { - "constant": false, - "id": 16064, - "name": "initialSetup", - "nodeType": "VariableDeclaration", - "scope": 16123, - "src": "32785:17:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 16063, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "32785:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 16069, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 16068, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 16065, - "name": "poolTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16058, - "src": "32805:10:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_ISmartToken_$20295_$dyn_memory_ptr", - "typeString": "contract ISmartToken[] memory" - } - }, - "id": 16066, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "32805:17:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 16067, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "32826:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "32805:22:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "32785:42:25" - }, - { - "assignments": [ - 16071 - ], - "declarations": [ - { - "constant": false, - "id": 16071, - "name": "reserveCount", - "nodeType": "VariableDeclaration", - "scope": 16123, - "src": "32840:20:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 16070, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "32840:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 16074, - "initialValue": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 16072, - "name": "reserveTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2516, - "src": "32863:13:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_storage", - "typeString": "contract IERC20Token[] storage ref" - } - }, - "id": 16073, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "32863:20:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "32840:43:25" - }, - { - "body": { - "id": 16120, - "nodeType": "Block", - "src": "32937:460:25", - "statements": [ - { - "assignments": [], - "declarations": [ - { - "constant": false, - "id": 16086, - "name": "reservePoolToken", - "nodeType": "VariableDeclaration", - "scope": 16123, - "src": "32952:28:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISmartToken_$20295", - "typeString": "contract ISmartToken" - }, - "typeName": { - "contractScope": null, - "id": 16085, - "name": "ISmartToken", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20295, - "src": "32952:11:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISmartToken_$20295", - "typeString": "contract ISmartToken" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 16087, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "32952:28:25" - }, - { - "condition": { - "argumentTypes": null, - "id": 16088, - "name": "initialSetup", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16064, - "src": "32999:12:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 16102, - "nodeType": "Block", - "src": "33109:67:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 16100, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 16096, - "name": "reservePoolToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16086, - "src": "33128:16:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISmartToken_$20295", - "typeString": "contract ISmartToken" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 16097, - "name": "poolTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16058, - "src": "33147:10:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_ISmartToken_$20295_$dyn_memory_ptr", - "typeString": "contract ISmartToken[] memory" - } - }, - "id": 16099, - "indexExpression": { - "argumentTypes": null, - "id": 16098, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16076, - "src": "33158:1:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "33147:13:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISmartToken_$20295", - "typeString": "contract ISmartToken" - } - }, - "src": "33128:32:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISmartToken_$20295", - "typeString": "contract ISmartToken" - } - }, - "id": 16101, - "nodeType": "ExpressionStatement", - "src": "33128:32:25" - } - ] - }, - "id": 16103, - "nodeType": "IfStatement", - "src": "32995:181:25", - "trueBody": { - "id": 16095, - "nodeType": "Block", - "src": "33013:77:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 16093, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 16089, - "name": "reservePoolToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16086, - "src": "33032:16:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISmartToken_$20295", - "typeString": "contract ISmartToken" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 16090, - "name": "container", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16050, - "src": "33051:9:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IPoolTokensContainer_$17009", - "typeString": "contract IPoolTokensContainer" - } - }, - "id": 16091, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "createToken", - "nodeType": "MemberAccess", - "referencedDeclaration": 16990, - "src": "33051:21:25", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$__$returns$_t_contract$_ISmartToken_$20295_$", - "typeString": "function () external returns (contract ISmartToken)" - } - }, - "id": 16092, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "33051:23:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISmartToken_$20295", - "typeString": "contract ISmartToken" - } - }, - "src": "33032:42:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISmartToken_$20295", - "typeString": "contract ISmartToken" - } - }, - "id": 16094, - "nodeType": "ExpressionStatement", - "src": "33032:42:25" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "id": 16110, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 16104, - "name": "reservesToPoolTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14492, - "src": "33256:20:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_contract$_ISmartToken_$20295_$", - "typeString": "mapping(address => contract ISmartToken)" - } - }, - "id": 16108, - "indexExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 16105, - "name": "reserveTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2516, - "src": "33277:13:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_storage", - "typeString": "contract IERC20Token[] storage ref" - } - }, - "id": 16107, - "indexExpression": { - "argumentTypes": null, - "id": 16106, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16076, - "src": "33291:1:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "33277:16:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "33256:38:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISmartToken_$20295", - "typeString": "contract ISmartToken" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 16109, - "name": "reservePoolToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16086, - "src": "33297:16:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISmartToken_$20295", - "typeString": "contract ISmartToken" - } - }, - "src": "33256:57:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISmartToken_$20295", - "typeString": "contract ISmartToken" - } - }, - "id": 16111, - "nodeType": "ExpressionStatement", - "src": "33256:57:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 16118, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 16112, - "name": "poolTokensToReserves", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14496, - "src": "33328:20:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_contract$_IERC20Token_$20240_$", - "typeString": "mapping(address => contract IERC20Token)" - } - }, - "id": 16114, - "indexExpression": { - "argumentTypes": null, - "id": 16113, - "name": "reservePoolToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16086, - "src": "33349:16:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISmartToken_$20295", - "typeString": "contract ISmartToken" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "33328:38:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 16115, - "name": "reserveTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2516, - "src": "33369:13:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_storage", - "typeString": "contract IERC20Token[] storage ref" - } - }, - "id": 16117, - "indexExpression": { - "argumentTypes": null, - "id": 16116, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16076, - "src": "33383:1:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "33369:16:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "src": "33328:57:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "id": 16119, - "nodeType": "ExpressionStatement", - "src": "33328:57:25" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 16081, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 16079, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16076, - "src": "32914:1:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "id": 16080, - "name": "reserveCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16071, - "src": "32918:12:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "32914:16:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 16121, - "initializationExpression": { - "assignments": [ - 16076 - ], - "declarations": [ - { - "constant": false, - "id": 16076, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 16123, - "src": "32899:9:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 16075, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "32899:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 16078, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 16077, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "32911:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "32899:13:25" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 16083, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "32932:3:25", - "subExpression": { - "argumentTypes": null, - "id": 16082, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16076, - "src": "32932:1:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 16084, - "nodeType": "ExpressionStatement", - "src": "32932:3:25" - }, - "nodeType": "ForStatement", - "src": "32894:503:25" - } - ] - }, - "documentation": "@dev creates the converter's pool tokens\r\nnote that technically pool tokens can be created on deployment but gas limit\r\nmight get too high for a block, so creating them on first activation\r\n\n ", - "id": 16123, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "createPoolTokens", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 16047, - "nodeType": "ParameterList", - "parameters": [], - "src": "32623:2:25" - }, - "payable": false, - "returnParameters": { - "id": 16048, - "nodeType": "ParameterList", - "parameters": [], - "src": "32635:0:25" - }, - "scope": 16610, - "src": "32598:806:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 16229, - "nodeType": "Block", - "src": "33603:1771:25", - "statements": [ - { - "assignments": [ - 16129, - 16131, - 16133 - ], - "declarations": [ - { - "constant": false, - "id": 16129, - "name": "externalRateN", - "nodeType": "VariableDeclaration", - "scope": 16230, - "src": "33670:21:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 16128, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "33670:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 16131, - "name": "externalRateD", - "nodeType": "VariableDeclaration", - "scope": 16230, - "src": "33693:21:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 16130, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "33693:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 16133, - "name": "updateTime", - "nodeType": "VariableDeclaration", - "scope": 16230, - "src": "33716:18:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 16132, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "33716:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 16139, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 16136, - "name": "primaryReserveToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14482, - "src": "33774:19:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - { - "argumentTypes": null, - "id": 16137, - "name": "secondaryReserveToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14484, - "src": "33795:21:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - ], - "expression": { - "argumentTypes": null, - "id": 16134, - "name": "priceOracle", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14480, - "src": "33738:11:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IPriceOracle_$22297", - "typeString": "contract IPriceOracle" - } - }, - "id": 16135, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "latestRateAndUpdateTime", - "nodeType": "MemberAccess", - "referencedDeclaration": 22280, - "src": "33738:35:25", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_contract$_IERC20Token_$20240_$_t_contract$_IERC20Token_$20240_$returns$_t_uint256_$_t_uint256_$_t_uint256_$", - "typeString": "function (contract IERC20Token,contract IERC20Token) view external returns (uint256,uint256,uint256)" - } - }, - "id": 16138, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "33738:79:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$", - "typeString": "tuple(uint256,uint256,uint256)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "33669:148:25" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 16142, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 16140, - "name": "updateTime", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16133, - "src": "33923:10:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "id": 16141, - "name": "referenceRateUpdateTime", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14503, - "src": "33936:23:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "33923:36:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 16149, - "nodeType": "IfStatement", - "src": "33919:124:25", - "trueBody": { - "id": 16148, - "nodeType": "Block", - "src": "33961:82:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 16144, - "name": "externalRateN", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16129, - "src": "33997:13:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 16145, - "name": "externalRateD", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16131, - "src": "34015:13:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": null, - "id": 16143, - "name": "Fraction", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14478, - "src": "33983:8:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_Fraction_$14478_storage_ptr_$", - "typeString": "type(struct LiquidityPoolV2Converter.Fraction storage pointer)" - } - }, - "id": 16146, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "names": [ - "n", - "d" - ], - "nodeType": "FunctionCall", - "src": "33983:48:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Fraction_$14478_memory", - "typeString": "struct LiquidityPoolV2Converter.Fraction memory" - } - }, - "functionReturnParameters": 16127, - "id": 16147, - "nodeType": "Return", - "src": "33976:55:25" - } - ] - } - }, - { - "assignments": [ - 16151 - ], - "declarations": [ - { - "constant": false, - "id": 16151, - "name": "timeElapsed", - "nodeType": "VariableDeclaration", - "scope": 16230, - "src": "34132:19:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 16150, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "34132:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 16156, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 16155, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 16152, - "name": "time", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16520, - "src": "34154:4:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", - "typeString": "function () view returns (uint256)" - } - }, - "id": 16153, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "34154:6:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "id": 16154, - "name": "referenceRateUpdateTime", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14503, - "src": "34163:23:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "34154:32:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "34132:54:25" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 16159, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 16157, - "name": "timeElapsed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16151, - "src": "34289:11:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 16158, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "34304:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "34289:16:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 16163, - "nodeType": "IfStatement", - "src": "34285:69:25", - "trueBody": { - "id": 16162, - "nodeType": "Block", - "src": "34307:47:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 16160, - "name": "referenceRate", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14501, - "src": "34329:13:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Fraction_$14478_storage", - "typeString": "struct LiquidityPoolV2Converter.Fraction storage ref" - } - }, - "functionReturnParameters": 16127, - "id": 16161, - "nodeType": "Return", - "src": "34322:20:25" - } - ] - } - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 16166, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 16164, - "name": "timeElapsed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16151, - "src": "34696:11:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 16165, - "name": "RATE_PROPAGATION_PERIOD", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14499, - "src": "34711:23:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "34696:38:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 16170, - "nodeType": "IfStatement", - "src": "34692:96:25", - "trueBody": { - "id": 16169, - "nodeType": "Block", - "src": "34736:52:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 16167, - "name": "lastConversionRate", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14505, - "src": "34758:18:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Fraction_$14478_storage", - "typeString": "struct LiquidityPoolV2Converter.Fraction storage ref" - } - }, - "functionReturnParameters": 16127, - "id": 16168, - "nodeType": "Return", - "src": "34751:25:25" - } - ] - } - }, - { - "assignments": [ - 16172 - ], - "declarations": [ - { - "constant": false, - "id": 16172, - "name": "ref", - "nodeType": "VariableDeclaration", - "scope": 16230, - "src": "34872:19:25", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Fraction_$14478_memory_ptr", - "typeString": "struct LiquidityPoolV2Converter.Fraction" - }, - "typeName": { - "contractScope": null, - "id": 16171, - "name": "Fraction", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 14478, - "src": "34872:8:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Fraction_$14478_storage_ptr", - "typeString": "struct LiquidityPoolV2Converter.Fraction" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 16174, - "initialValue": { - "argumentTypes": null, - "id": 16173, - "name": "referenceRate", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14501, - "src": "34894:13:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Fraction_$14478_storage", - "typeString": "struct LiquidityPoolV2Converter.Fraction storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "34872:35:25" - }, - { - "assignments": [ - 16176 - ], - "declarations": [ - { - "constant": false, - "id": 16176, - "name": "last", - "nodeType": "VariableDeclaration", - "scope": 16230, - "src": "34918:20:25", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Fraction_$14478_memory_ptr", - "typeString": "struct LiquidityPoolV2Converter.Fraction" - }, - "typeName": { - "contractScope": null, - "id": 16175, - "name": "Fraction", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 14478, - "src": "34918:8:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Fraction_$14478_storage_ptr", - "typeString": "struct LiquidityPoolV2Converter.Fraction" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 16178, - "initialValue": { - "argumentTypes": null, - "id": 16177, - "name": "lastConversionRate", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14505, - "src": "34941:18:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Fraction_$14478_storage", - "typeString": "struct LiquidityPoolV2Converter.Fraction storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "34918:41:25" - }, - { - "assignments": [ - 16180 - ], - "declarations": [ - { - "constant": false, - "id": 16180, - "name": "x", - "nodeType": "VariableDeclaration", - "scope": 16230, - "src": "34972:9:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 16179, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "34972:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 16187, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 16184, - "name": "last", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16176, - "src": "34994:4:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Fraction_$14478_memory_ptr", - "typeString": "struct LiquidityPoolV2Converter.Fraction memory" - } - }, - "id": 16185, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "n", - "nodeType": "MemberAccess", - "referencedDeclaration": 14475, - "src": "34994:6:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 16181, - "name": "ref", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16172, - "src": "34984:3:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Fraction_$14478_memory_ptr", - "typeString": "struct LiquidityPoolV2Converter.Fraction memory" - } - }, - "id": 16182, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "d", - "nodeType": "MemberAccess", - "referencedDeclaration": 14477, - "src": "34984:5:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 16183, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 21791, - "src": "34984:9:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 16186, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "34984:17:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "34972:29:25" - }, - { - "assignments": [ - 16189 - ], - "declarations": [ - { - "constant": false, - "id": 16189, - "name": "y", - "nodeType": "VariableDeclaration", - "scope": 16230, - "src": "35012:9:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 16188, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "35012:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 16196, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 16193, - "name": "last", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16176, - "src": "35034:4:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Fraction_$14478_memory_ptr", - "typeString": "struct LiquidityPoolV2Converter.Fraction memory" - } - }, - "id": 16194, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "d", - "nodeType": "MemberAccess", - "referencedDeclaration": 14477, - "src": "35034:6:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 16190, - "name": "ref", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16172, - "src": "35024:3:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Fraction_$14478_memory_ptr", - "typeString": "struct LiquidityPoolV2Converter.Fraction memory" - } - }, - "id": 16191, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "n", - "nodeType": "MemberAccess", - "referencedDeclaration": 14475, - "src": "35024:5:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 16192, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 21791, - "src": "35024:9:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 16195, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "35024:17:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "35012:29:25" - }, - { - "assignments": [ - 16198 - ], - "declarations": [ - { - "constant": false, - "id": 16198, - "name": "newRateN", - "nodeType": "VariableDeclaration", - "scope": 16230, - "src": "35153:16:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 16197, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "35153:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 16211, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 16208, - "name": "timeElapsed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16151, - "src": "35227:11:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 16206, - "name": "x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16180, - "src": "35221:1:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 16207, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 21791, - "src": "35221:5:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 16209, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "35221:18:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 16203, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 16201, - "name": "RATE_PROPAGATION_PERIOD", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14499, - "src": "35178:23:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "id": 16202, - "name": "timeElapsed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16151, - "src": "35204:11:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "35178:37:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 16199, - "name": "y", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16189, - "src": "35172:1:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 16200, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 21791, - "src": "35172:5:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 16204, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "35172:44:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 16205, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 21737, - "src": "35172:48:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 16210, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "35172:68:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "35153:87:25" - }, - { - "assignments": [ - 16213 - ], - "declarations": [ - { - "constant": false, - "id": 16213, - "name": "newRateD", - "nodeType": "VariableDeclaration", - "scope": 16230, - "src": "35251:16:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 16212, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "35251:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 16223, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 16221, - "name": "RATE_PROPAGATION_PERIOD", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14499, - "src": "35292:23:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 16217, - "name": "last", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16176, - "src": "35280:4:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Fraction_$14478_memory_ptr", - "typeString": "struct LiquidityPoolV2Converter.Fraction memory" - } - }, - "id": 16218, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "d", - "nodeType": "MemberAccess", - "referencedDeclaration": 14477, - "src": "35280:6:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 16214, - "name": "ref", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16172, - "src": "35270:3:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Fraction_$14478_memory_ptr", - "typeString": "struct LiquidityPoolV2Converter.Fraction memory" - } - }, - "id": 16215, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "d", - "nodeType": "MemberAccess", - "referencedDeclaration": 14477, - "src": "35270:5:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 16216, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 21791, - "src": "35270:9:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 16219, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "35270:17:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 16220, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 21791, - "src": "35270:21:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 16222, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "35270:46:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "35251:65:25" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 16225, - "name": "newRateN", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16198, - "src": "35347:8:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 16226, - "name": "newRateD", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16213, - "src": "35357:8:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 16224, - "name": "reduceRate", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16565, - "src": "35336:10:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_struct$_Fraction_$14478_memory_ptr_$", - "typeString": "function (uint256,uint256) pure returns (struct LiquidityPoolV2Converter.Fraction memory)" - } - }, - "id": 16227, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "35336:30:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Fraction_$14478_memory_ptr", - "typeString": "struct LiquidityPoolV2Converter.Fraction memory" - } - }, - "functionReturnParameters": 16127, - "id": 16228, - "nodeType": "Return", - "src": "35329:37:25" - } - ] - }, - "documentation": "@dev returns the effective rate between the two reserve tokens\r\n\n * @return rate\r", - "id": 16230, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "_effectiveTokensRate", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 16124, - "nodeType": "ParameterList", - "parameters": [], - "src": "33561:2:25" - }, - "payable": false, - "returnParameters": { - "id": 16127, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 16126, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 16230, - "src": "33586:8:25", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Fraction_$14478_memory_ptr", - "typeString": "struct LiquidityPoolV2Converter.Fraction" - }, - "typeName": { - "contractScope": null, - "id": 16125, - "name": "Fraction", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 14478, - "src": "33586:8:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Fraction_$14478_storage_ptr", - "typeString": "struct LiquidityPoolV2Converter.Fraction" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "33585:17:25" - }, - "scope": 16610, - "src": "33532:1842:25", - "stateMutability": "view", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 16292, - "nodeType": "Block", - "src": "35730:714:25", - "statements": [ - { - "assignments": [ - 16238 - ], - "declarations": [ - { - "constant": false, - "id": 16238, - "name": "currentTime", - "nodeType": "VariableDeclaration", - "scope": 16293, - "src": "35741:19:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 16237, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "35741:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 16241, - "initialValue": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 16239, - "name": "time", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16520, - "src": "35763:4:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", - "typeString": "function () view returns (uint256)" - } - }, - "id": 16240, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "35763:6:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "35741:28:25" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 16244, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 16242, - "name": "referenceRateUpdateTime", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14503, - "src": "35847:23:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 16243, - "name": "currentTime", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16238, - "src": "35874:11:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "35847:38:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 16250, - "nodeType": "IfStatement", - "src": "35843:100:25", - "trueBody": { - "id": 16249, - "nodeType": "Block", - "src": "35887:56:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 16245, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "35910:5:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - { - "argumentTypes": null, - "id": 16246, - "name": "referenceRate", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14501, - "src": "35917:13:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Fraction_$14478_storage", - "typeString": "struct LiquidityPoolV2Converter.Fraction storage ref" - } - } - ], - "id": 16247, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "35909:22:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_struct$_Fraction_$14478_storage_$", - "typeString": "tuple(bool,struct LiquidityPoolV2Converter.Fraction storage ref)" - } - }, - "functionReturnParameters": 16236, - "id": 16248, - "nodeType": "Return", - "src": "35902:29:25" - } - ] - } - }, - { - "assignments": [ - 16252 - ], - "declarations": [ - { - "constant": false, - "id": 16252, - "name": "newRate", - "nodeType": "VariableDeclaration", - "scope": 16293, - "src": "36021:23:25", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Fraction_$14478_memory_ptr", - "typeString": "struct LiquidityPoolV2Converter.Fraction" - }, - "typeName": { - "contractScope": null, - "id": 16251, - "name": "Fraction", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 14478, - "src": "36021:8:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Fraction_$14478_storage_ptr", - "typeString": "struct LiquidityPoolV2Converter.Fraction" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 16255, - "initialValue": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 16253, - "name": "_effectiveTokensRate", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16230, - "src": "36047:20:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_struct$_Fraction_$14478_memory_ptr_$", - "typeString": "function () view returns (struct LiquidityPoolV2Converter.Fraction memory)" - } - }, - "id": 16254, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "36047:22:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Fraction_$14478_memory_ptr", - "typeString": "struct LiquidityPoolV2Converter.Fraction memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "36021:48:25" - }, - { - "assignments": [ - 16257 - ], - "declarations": [ - { - "constant": false, - "id": 16257, - "name": "ref", - "nodeType": "VariableDeclaration", - "scope": 16293, - "src": "36152:19:25", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Fraction_$14478_memory_ptr", - "typeString": "struct LiquidityPoolV2Converter.Fraction" - }, - "typeName": { - "contractScope": null, - "id": 16256, - "name": "Fraction", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 14478, - "src": "36152:8:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Fraction_$14478_storage_ptr", - "typeString": "struct LiquidityPoolV2Converter.Fraction" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 16259, - "initialValue": { - "argumentTypes": null, - "id": 16258, - "name": "referenceRate", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14501, - "src": "36174:13:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Fraction_$14478_storage", - "typeString": "struct LiquidityPoolV2Converter.Fraction storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "36152:35:25" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 16270, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 16264, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 16260, - "name": "newRate", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16252, - "src": "36202:7:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Fraction_$14478_memory_ptr", - "typeString": "struct LiquidityPoolV2Converter.Fraction memory" - } - }, - "id": 16261, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "n", - "nodeType": "MemberAccess", - "referencedDeclaration": 14475, - "src": "36202:9:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 16262, - "name": "ref", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16257, - "src": "36215:3:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Fraction_$14478_memory_ptr", - "typeString": "struct LiquidityPoolV2Converter.Fraction memory" - } - }, - "id": 16263, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "n", - "nodeType": "MemberAccess", - "referencedDeclaration": 14475, - "src": "36215:5:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "36202:18:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 16269, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 16265, - "name": "newRate", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16252, - "src": "36224:7:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Fraction_$14478_memory_ptr", - "typeString": "struct LiquidityPoolV2Converter.Fraction memory" - } - }, - "id": 16266, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "d", - "nodeType": "MemberAccess", - "referencedDeclaration": 14477, - "src": "36224:9:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 16267, - "name": "ref", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16257, - "src": "36237:3:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Fraction_$14478_memory_ptr", - "typeString": "struct LiquidityPoolV2Converter.Fraction memory" - } - }, - "id": 16268, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "d", - "nodeType": "MemberAccess", - "referencedDeclaration": 14477, - "src": "36237:5:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "36224:18:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "36202:40:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 16276, - "nodeType": "IfStatement", - "src": "36198:96:25", - "trueBody": { - "id": 16275, - "nodeType": "Block", - "src": "36244:50:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 16271, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "36267:5:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - { - "argumentTypes": null, - "id": 16272, - "name": "newRate", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16252, - "src": "36274:7:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Fraction_$14478_memory_ptr", - "typeString": "struct LiquidityPoolV2Converter.Fraction memory" - } - } - ], - "id": 16273, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "36266:16:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_struct$_Fraction_$14478_memory_ptr_$", - "typeString": "tuple(bool,struct LiquidityPoolV2Converter.Fraction memory)" - } - }, - "functionReturnParameters": 16236, - "id": 16274, - "nodeType": "Return", - "src": "36259:23:25" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "id": 16279, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 16277, - "name": "referenceRate", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14501, - "src": "36306:13:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Fraction_$14478_storage", - "typeString": "struct LiquidityPoolV2Converter.Fraction storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 16278, - "name": "newRate", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16252, - "src": "36322:7:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Fraction_$14478_memory_ptr", - "typeString": "struct LiquidityPoolV2Converter.Fraction memory" - } - }, - "src": "36306:23:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Fraction_$14478_storage", - "typeString": "struct LiquidityPoolV2Converter.Fraction storage ref" - } - }, - "id": 16280, - "nodeType": "ExpressionStatement", - "src": "36306:23:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 16283, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 16281, - "name": "referenceRateUpdateTime", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14503, - "src": "36340:23:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 16282, - "name": "currentTime", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16238, - "src": "36366:11:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "36340:37:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 16284, - "nodeType": "ExpressionStatement", - "src": "36340:37:25" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 16285, - "name": "rebalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16319, - "src": "36390:9:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", - "typeString": "function ()" - } - }, - "id": 16286, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "36390:11:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 16287, - "nodeType": "ExpressionStatement", - "src": "36390:11:25" - }, - { - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "hexValue": "74727565", - "id": 16288, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "36422:4:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - { - "argumentTypes": null, - "id": 16289, - "name": "newRate", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16252, - "src": "36428:7:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Fraction_$14478_memory_ptr", - "typeString": "struct LiquidityPoolV2Converter.Fraction memory" - } - } - ], - "id": 16290, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "36421:15:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_struct$_Fraction_$14478_memory_ptr_$", - "typeString": "tuple(bool,struct LiquidityPoolV2Converter.Fraction memory)" - } - }, - "functionReturnParameters": 16236, - "id": 16291, - "nodeType": "Return", - "src": "36414:22:25" - } - ] - }, - "documentation": "@dev checks if the rate has changed and if so, rebalances the weights\r\nnote that rebalancing based on rate change only happens once per block\r\n\n * @return whether the rate was updated\r\n@return rate between the reserve tokens\r", - "id": 16293, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "handleRateChange", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 16231, - "nodeType": "ParameterList", - "parameters": [], - "src": "35687:2:25" - }, - "payable": false, - "returnParameters": { - "id": 16236, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 16233, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 16293, - "src": "35707:4:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 16232, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "35707:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 16235, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 16293, - "src": "35713:8:25", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Fraction_$14478_memory_ptr", - "typeString": "struct LiquidityPoolV2Converter.Fraction" - }, - "typeName": { - "contractScope": null, - "id": 16234, - "name": "Fraction", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 14478, - "src": "35713:8:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Fraction_$14478_storage_ptr", - "typeString": "struct LiquidityPoolV2Converter.Fraction" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "35706:23:25" - }, - "scope": 16610, - "src": "35662:782:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 16318, - "nodeType": "Block", - "src": "36653:365:25", - "statements": [ - { - "assignments": [ - 16297, - 16299 - ], - "declarations": [ - { - "constant": false, - "id": 16297, - "name": "primaryReserveWeight", - "nodeType": "VariableDeclaration", - "scope": 16319, - "src": "36705:27:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 16296, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "36705:6:25", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 16299, - "name": "secondaryReserveWeight", - "nodeType": "VariableDeclaration", - "scope": 16319, - "src": "36734:29:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 16298, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "36734:6:25", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 16303, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 16301, - "name": "referenceRate", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14501, - "src": "36791:13:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Fraction_$14478_storage", - "typeString": "struct LiquidityPoolV2Converter.Fraction storage ref" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_Fraction_$14478_storage", - "typeString": "struct LiquidityPoolV2Converter.Fraction storage ref" - } - ], - "id": 16300, - "name": "effectiveReserveWeights", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 15040, - 16365 - ], - "referencedDeclaration": 16365, - "src": "36767:23:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Fraction_$14478_memory_ptr_$returns$_t_uint32_$_t_uint32_$", - "typeString": "function (struct LiquidityPoolV2Converter.Fraction memory) view returns (uint32,uint32)" - } - }, - "id": 16302, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "36767:38:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint32_$_t_uint32_$", - "typeString": "tuple(uint32,uint32)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "36704:101:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 16309, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 16304, - "name": "reserves", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2520, - "src": "36877:8:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Reserve_$2506_storage_$", - "typeString": "mapping(address => struct ConverterBase.Reserve storage ref)" - } - }, - "id": 16306, - "indexExpression": { - "argumentTypes": null, - "id": 16305, - "name": "primaryReserveToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14482, - "src": "36886:19:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "36877:29:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Reserve_$2506_storage", - "typeString": "struct ConverterBase.Reserve storage ref" - } - }, - "id": 16307, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "weight", - "nodeType": "MemberAccess", - "referencedDeclaration": 2499, - "src": "36877:36:25", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 16308, - "name": "primaryReserveWeight", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16297, - "src": "36916:20:25", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "src": "36877:59:25", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "id": 16310, - "nodeType": "ExpressionStatement", - "src": "36877:59:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 16316, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 16311, - "name": "reserves", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2520, - "src": "36947:8:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Reserve_$2506_storage_$", - "typeString": "mapping(address => struct ConverterBase.Reserve storage ref)" - } - }, - "id": 16313, - "indexExpression": { - "argumentTypes": null, - "id": 16312, - "name": "secondaryReserveToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14484, - "src": "36956:21:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "36947:31:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Reserve_$2506_storage", - "typeString": "struct ConverterBase.Reserve storage ref" - } - }, - "id": 16314, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "weight", - "nodeType": "MemberAccess", - "referencedDeclaration": 2499, - "src": "36947:38:25", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 16315, - "name": "secondaryReserveWeight", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16299, - "src": "36988:22:25", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "src": "36947:63:25", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "id": 16317, - "nodeType": "ExpressionStatement", - "src": "36947:63:25" - } - ] - }, - "documentation": "@dev updates the pool's reserve weights with new values in order to push the current primary\r\nreserve token balance to its staked balance\r", - "id": 16319, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "rebalance", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 16294, - "nodeType": "ParameterList", - "parameters": [], - "src": "36642:2:25" - }, - "payable": false, - "returnParameters": { - "id": 16295, - "nodeType": "ParameterList", - "parameters": [], - "src": "36653:0:25" - }, - "scope": 16610, - "src": "36624:394:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 16364, - "nodeType": "Block", - "src": "37416:631:25", - "statements": [ - { - "assignments": [ - 16329 - ], - "declarations": [ - { - "constant": false, - "id": 16329, - "name": "primaryStakedBalance", - "nodeType": "VariableDeclaration", - "scope": 16365, - "src": "37478:28:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 16328, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "37478:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 16333, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 16330, - "name": "stakedBalances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14488, - "src": "37509:14:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 16332, - "indexExpression": { - "argumentTypes": null, - "id": 16331, - "name": "primaryReserveToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14482, - "src": "37524:19:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "37509:35:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "37478:66:25" - }, - { - "assignments": [ - 16335 - ], - "declarations": [ - { - "constant": false, - "id": 16335, - "name": "primaryBalance", - "nodeType": "VariableDeclaration", - "scope": 16365, - "src": "37603:22:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 16334, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "37603:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 16339, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 16337, - "name": "primaryReserveToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14482, - "src": "37652:19:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - ], - "id": 16336, - "name": "reserveAmplifiedBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14852, - "src": "37628:23:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_contract$_IERC20Token_$20240_$returns$_t_uint256_$", - "typeString": "function (contract IERC20Token) view returns (uint256)" - } - }, - "id": 16338, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "37628:44:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "37603:69:25" - }, - { - "assignments": [ - 16341 - ], - "declarations": [ - { - "constant": false, - "id": 16341, - "name": "secondaryBalance", - "nodeType": "VariableDeclaration", - "scope": 16365, - "src": "37683:24:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 16340, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "37683:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 16345, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 16343, - "name": "secondaryReserveToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14484, - "src": "37734:21:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - ], - "id": 16342, - "name": "reserveAmplifiedBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14852, - "src": "37710:23:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_contract$_IERC20Token_$20240_$returns$_t_uint256_$", - "typeString": "function (contract IERC20Token) view returns (uint256)" - } - }, - "id": 16344, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "37710:46:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "37683:73:25" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 16354, - "name": "AMPLIFICATION_FACTOR", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14470, - "src": "37913:20:25", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - ], - "expression": { - "argumentTypes": null, - "id": 16352, - "name": "primaryStakedBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16329, - "src": "37888:20:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 16353, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 21791, - "src": "37888:24:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 16355, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "37888:46:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 16356, - "name": "primaryBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16335, - "src": "37949:14:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 16357, - "name": "secondaryBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16341, - "src": "37978:16:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 16358, - "name": "_rate", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16321, - "src": "38009:5:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Fraction_$14478_memory_ptr", - "typeString": "struct LiquidityPoolV2Converter.Fraction memory" - } - }, - "id": 16359, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "n", - "nodeType": "MemberAccess", - "referencedDeclaration": 14475, - "src": "38009:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 16360, - "name": "_rate", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16321, - "src": "38031:5:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Fraction_$14478_memory_ptr", - "typeString": "struct LiquidityPoolV2Converter.Fraction memory" - } - }, - "id": 16361, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "d", - "nodeType": "MemberAccess", - "referencedDeclaration": 14477, - "src": "38031:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 16348, - "name": "SOVRYNSWAP_FORMULA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20758, - "src": "37837:18:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 16347, - "name": "addressOf", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20931, - "src": "37827:9:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$", - "typeString": "function (bytes32) view returns (address)" - } - }, - "id": 16349, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "37827:29:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 16346, - "name": "ISovrynSwapFormula", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12240, - "src": "37808:18:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ISovrynSwapFormula_$12240_$", - "typeString": "type(contract ISovrynSwapFormula)" - } - }, - "id": 16350, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "37808:49:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISovrynSwapFormula_$12240", - "typeString": "contract ISovrynSwapFormula" - } - }, - "id": 16351, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "balancedWeights", - "nodeType": "MemberAccess", - "referencedDeclaration": 12239, - "src": "37808:65:25", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint32_$_t_uint32_$", - "typeString": "function (uint256,uint256,uint256,uint256,uint256) view external returns (uint32,uint32)" - } - }, - "id": 16362, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "37808:231:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint32_$_t_uint32_$", - "typeString": "tuple(uint32,uint32)" - } - }, - "functionReturnParameters": 16327, - "id": 16363, - "nodeType": "Return", - "src": "37801:238:25" - } - ] - }, - "documentation": "@dev returns the effective reserve weights based on the staked balance, current balance and oracle price\r\n\n * @param _rate rate between the reserve tokens\r\n\n * @return new primary reserve weight\r\n@return new secondary reserve weight\r", - "id": 16365, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "effectiveReserveWeights", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 16322, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 16321, - "name": "_rate", - "nodeType": "VariableDeclaration", - "scope": 16365, - "src": "37355:21:25", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Fraction_$14478_memory_ptr", - "typeString": "struct LiquidityPoolV2Converter.Fraction" - }, - "typeName": { - "contractScope": null, - "id": 16320, - "name": "Fraction", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 14478, - "src": "37355:8:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Fraction_$14478_storage_ptr", - "typeString": "struct LiquidityPoolV2Converter.Fraction" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "37354:23:25" - }, - "payable": false, - "returnParameters": { - "id": 16327, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 16324, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 16365, - "src": "37400:6:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 16323, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "37400:6:25", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 16326, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 16365, - "src": "37408:6:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 16325, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "37408:6:25", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "37399:16:25" - }, - "scope": 16610, - "src": "37322:725:25", - "stateMutability": "view", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 16425, - "nodeType": "Block", - "src": "38656:529:25", - "statements": [ - { - "assignments": [ - 16379 - ], - "declarations": [ - { - "constant": false, - "id": 16379, - "name": "token1Balance", - "nodeType": "VariableDeclaration", - "scope": 16426, - "src": "38710:21:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 16378, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "38710:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 16383, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 16381, - "name": "_token1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16367, - "src": "38758:7:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - ], - "id": 16380, - "name": "reserveAmplifiedBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14852, - "src": "38734:23:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_contract$_IERC20Token_$20240_$returns$_t_uint256_$", - "typeString": "function (contract IERC20Token) view returns (uint256)" - } - }, - "id": 16382, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "38734:32:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "38710:56:25" - }, - { - "assignments": [ - 16385 - ], - "declarations": [ - { - "constant": false, - "id": 16385, - "name": "token2Balance", - "nodeType": "VariableDeclaration", - "scope": 16426, - "src": "38777:21:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 16384, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "38777:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 16389, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 16387, - "name": "_token2", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16369, - "src": "38825:7:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - ], - "id": 16386, - "name": "reserveAmplifiedBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14852, - "src": "38801:23:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_contract$_IERC20Token_$20240_$returns$_t_uint256_$", - "typeString": "function (contract IERC20Token) view returns (uint256)" - } - }, - "id": 16388, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "38801:32:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "38777:56:25" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "id": 16392, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 16390, - "name": "_token1Weight", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16371, - "src": "38882:13:25", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 16391, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "38899:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "38882:18:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 16401, - "nodeType": "IfStatement", - "src": "38878:91:25", - "trueBody": { - "id": 16400, - "nodeType": "Block", - "src": "38902:67:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 16398, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 16393, - "name": "_token1Weight", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16371, - "src": "38917:13:25", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 16394, - "name": "reserves", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2520, - "src": "38933:8:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Reserve_$2506_storage_$", - "typeString": "mapping(address => struct ConverterBase.Reserve storage ref)" - } - }, - "id": 16396, - "indexExpression": { - "argumentTypes": null, - "id": 16395, - "name": "_token1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16367, - "src": "38942:7:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "38933:17:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Reserve_$2506_storage", - "typeString": "struct ConverterBase.Reserve storage ref" - } - }, - "id": 16397, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "weight", - "nodeType": "MemberAccess", - "referencedDeclaration": 2499, - "src": "38933:24:25", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "src": "38917:40:25", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "id": 16399, - "nodeType": "ExpressionStatement", - "src": "38917:40:25" - } - ] - } - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "id": 16404, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 16402, - "name": "_token2Weight", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16373, - "src": "38985:13:25", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 16403, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "39002:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "38985:18:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 16413, - "nodeType": "IfStatement", - "src": "38981:91:25", - "trueBody": { - "id": 16412, - "nodeType": "Block", - "src": "39005:67:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 16410, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 16405, - "name": "_token2Weight", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16373, - "src": "39020:13:25", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 16406, - "name": "reserves", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2520, - "src": "39036:8:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Reserve_$2506_storage_$", - "typeString": "mapping(address => struct ConverterBase.Reserve storage ref)" - } - }, - "id": 16408, - "indexExpression": { - "argumentTypes": null, - "id": 16407, - "name": "_token2", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16369, - "src": "39045:7:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "39036:17:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Reserve_$2506_storage", - "typeString": "struct ConverterBase.Reserve storage ref" - } - }, - "id": 16409, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "weight", - "nodeType": "MemberAccess", - "referencedDeclaration": 2499, - "src": "39036:24:25", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "src": "39020:40:25", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "id": 16411, - "nodeType": "ExpressionStatement", - "src": "39020:40:25" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 16417, - "name": "_token1Weight", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16371, - "src": "39123:13:25", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - ], - "expression": { - "argumentTypes": null, - "id": 16415, - "name": "token2Balance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16385, - "src": "39105:13:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 16416, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 21791, - "src": "39105:17:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 16418, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "39105:32:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 16421, - "name": "_token2Weight", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16373, - "src": "39160:13:25", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - ], - "expression": { - "argumentTypes": null, - "id": 16419, - "name": "token1Balance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16379, - "src": "39142:13:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 16420, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 21791, - "src": "39142:17:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 16422, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "39142:32:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": null, - "id": 16414, - "name": "Fraction", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14478, - "src": "39091:8:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_Fraction_$14478_storage_ptr_$", - "typeString": "type(struct LiquidityPoolV2Converter.Fraction storage pointer)" - } - }, - "id": 16423, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "names": [ - "n", - "d" - ], - "nodeType": "FunctionCall", - "src": "39091:86:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Fraction_$14478_memory", - "typeString": "struct LiquidityPoolV2Converter.Fraction memory" - } - }, - "functionReturnParameters": 16377, - "id": 16424, - "nodeType": "Return", - "src": "39084:93:25" - } - ] - }, - "documentation": "@dev calculates and returns the rate between two reserve tokens\r\n\n * @param _token1 contract address of the token to calculate the rate of one unit of\r\n@param _token2 contract address of the token to calculate the rate of one `_token1` unit in\r\n@param _token1Weight reserve weight of token1\r\n@param _token2Weight reserve weight of token2\r\n\n * @return rate\r", - "id": 16426, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "tokensRate", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 16374, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 16367, - "name": "_token1", - "nodeType": "VariableDeclaration", - "scope": 16426, - "src": "38531:19:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - "typeName": { - "contractScope": null, - "id": 16366, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "38531:11:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 16369, - "name": "_token2", - "nodeType": "VariableDeclaration", - "scope": 16426, - "src": "38552:19:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - "typeName": { - "contractScope": null, - "id": 16368, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "38552:11:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 16371, - "name": "_token1Weight", - "nodeType": "VariableDeclaration", - "scope": 16426, - "src": "38573:20:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 16370, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "38573:6:25", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 16373, - "name": "_token2Weight", - "nodeType": "VariableDeclaration", - "scope": 16426, - "src": "38595:20:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 16372, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "38595:6:25", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "38530:86:25" - }, - "payable": false, - "returnParameters": { - "id": 16377, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 16376, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 16426, - "src": "38639:8:25", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Fraction_$14478_memory_ptr", - "typeString": "struct LiquidityPoolV2Converter.Fraction" - }, - "typeName": { - "contractScope": null, - "id": 16375, - "name": "Fraction", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 14478, - "src": "38639:8:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Fraction_$14478_storage_ptr", - "typeString": "struct LiquidityPoolV2Converter.Fraction" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "38638:17:25" - }, - "scope": 16610, - "src": "38511:674:25", - "stateMutability": "view", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 16462, - "nodeType": "Block", - "src": "39789:570:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 16438, - "name": "_sourceToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16428, - "src": "39829:12:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - { - "argumentTypes": null, - "id": 16439, - "name": "_targetToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16430, - "src": "39843:12:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - { - "argumentTypes": null, - "id": 16440, - "name": "_sourceWeight", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16432, - "src": "39857:13:25", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - { - "argumentTypes": null, - "id": 16441, - "name": "_targetWeight", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16434, - "src": "39872:13:25", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - ], - "id": 16437, - "name": "dispatchTokenRateUpdateEvent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16493, - "src": "39800:28:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20Token_$20240_$_t_contract$_IERC20Token_$20240_$_t_uint32_$_t_uint32_$returns$__$", - "typeString": "function (contract IERC20Token,contract IERC20Token,uint32,uint32)" - } - }, - "id": 16442, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "39800:86:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 16443, - "nodeType": "ExpressionStatement", - "src": "39800:86:25" - }, - { - "assignments": [ - 16445 - ], - "declarations": [ - { - "constant": false, - "id": 16445, - "name": "targetPoolToken", - "nodeType": "VariableDeclaration", - "scope": 16463, - "src": "40129:27:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISmartToken_$20295", - "typeString": "contract ISmartToken" - }, - "typeName": { - "contractScope": null, - "id": 16444, - "name": "ISmartToken", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20295, - "src": "40129:11:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISmartToken_$20295", - "typeString": "contract ISmartToken" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 16449, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 16447, - "name": "_targetToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16430, - "src": "40169:12:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - ], - "id": 16446, - "name": "poolToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14922, - "src": "40159:9:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_contract$_IERC20Token_$20240_$returns$_t_contract$_ISmartToken_$20295_$", - "typeString": "function (contract IERC20Token) view returns (contract ISmartToken)" - } - }, - "id": 16448, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "40159:23:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISmartToken_$20295", - "typeString": "contract ISmartToken" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "40129:53:25" - }, - { - "assignments": [ - 16451 - ], - "declarations": [ - { - "constant": false, - "id": 16451, - "name": "targetPoolTokenSupply", - "nodeType": "VariableDeclaration", - "scope": 16463, - "src": "40193:29:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 16450, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "40193:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 16455, - "initialValue": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 16452, - "name": "targetPoolToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16445, - "src": "40225:15:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISmartToken_$20295", - "typeString": "contract ISmartToken" - } - }, - "id": 16453, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "totalSupply", - "nodeType": "MemberAccess", - "referencedDeclaration": 20182, - "src": "40225:27:25", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", - "typeString": "function () view external returns (uint256)" - } - }, - "id": 16454, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "40225:29:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "40193:61:25" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 16457, - "name": "targetPoolToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16445, - "src": "40298:15:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISmartToken_$20295", - "typeString": "contract ISmartToken" - } - }, - { - "argumentTypes": null, - "id": 16458, - "name": "targetPoolTokenSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16451, - "src": "40315:21:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 16459, - "name": "_targetToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16430, - "src": "40338:12:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_ISmartToken_$20295", - "typeString": "contract ISmartToken" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - ], - "id": 16456, - "name": "dispatchPoolTokenRateUpdateEvent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16512, - "src": "40265:32:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_ISmartToken_$20295_$_t_uint256_$_t_contract$_IERC20Token_$20240_$returns$__$", - "typeString": "function (contract ISmartToken,uint256,contract IERC20Token)" - } - }, - "id": 16460, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "40265:86:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 16461, - "nodeType": "ExpressionStatement", - "src": "40265:86:25" - } - ] - }, - "documentation": "@dev dispatches rate events for both reserve tokens and for the target pool token\r\nonly used to circumvent the `stack too deep` compiler error\r\n\n * @param _sourceToken contract address of the source reserve token\r\n@param _targetToken contract address of the target reserve token\r\n@param _sourceWeight source reserve token weight\r\n@param _targetWeight target reserve token weight\r", - "id": 16463, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "dispatchRateEvents", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 16435, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 16428, - "name": "_sourceToken", - "nodeType": "VariableDeclaration", - "scope": 16463, - "src": "39685:24:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - "typeName": { - "contractScope": null, - "id": 16427, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "39685:11:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 16430, - "name": "_targetToken", - "nodeType": "VariableDeclaration", - "scope": 16463, - "src": "39711:24:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - "typeName": { - "contractScope": null, - "id": 16429, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "39711:11:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 16432, - "name": "_sourceWeight", - "nodeType": "VariableDeclaration", - "scope": 16463, - "src": "39737:20:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 16431, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "39737:6:25", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 16434, - "name": "_targetWeight", - "nodeType": "VariableDeclaration", - "scope": 16463, - "src": "39759:20:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 16433, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "39759:6:25", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "39684:96:25" - }, - "payable": false, - "returnParameters": { - "id": 16436, - "nodeType": "ParameterList", - "parameters": [], - "src": "39789:0:25" - }, - "scope": 16610, - "src": "39657:702:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 16492, - "nodeType": "Block", - "src": "40969:212:25", - "statements": [ - { - "assignments": [ - 16475 - ], - "declarations": [ - { - "constant": false, - "id": 16475, - "name": "rate", - "nodeType": "VariableDeclaration", - "scope": 16493, - "src": "41025:20:25", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Fraction_$14478_memory_ptr", - "typeString": "struct LiquidityPoolV2Converter.Fraction" - }, - "typeName": { - "contractScope": null, - "id": 16474, - "name": "Fraction", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 14478, - "src": "41025:8:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Fraction_$14478_storage_ptr", - "typeString": "struct LiquidityPoolV2Converter.Fraction" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 16482, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 16477, - "name": "_token1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16465, - "src": "41059:7:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - { - "argumentTypes": null, - "id": 16478, - "name": "_token2", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16467, - "src": "41068:7:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - { - "argumentTypes": null, - "id": 16479, - "name": "_token1Weight", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16469, - "src": "41077:13:25", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - { - "argumentTypes": null, - "id": 16480, - "name": "_token2Weight", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16471, - "src": "41092:13:25", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - ], - "id": 16476, - "name": "tokensRate", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16426, - "src": "41048:10:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_contract$_IERC20Token_$20240_$_t_contract$_IERC20Token_$20240_$_t_uint32_$_t_uint32_$returns$_t_struct$_Fraction_$14478_memory_ptr_$", - "typeString": "function (contract IERC20Token,contract IERC20Token,uint32,uint32) view returns (struct LiquidityPoolV2Converter.Fraction memory)" - } - }, - "id": 16481, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "41048:58:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Fraction_$14478_memory_ptr", - "typeString": "struct LiquidityPoolV2Converter.Fraction memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "41025:81:25" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 16484, - "name": "_token1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16465, - "src": "41140:7:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - { - "argumentTypes": null, - "id": 16485, - "name": "_token2", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16467, - "src": "41149:7:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 16486, - "name": "rate", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16475, - "src": "41158:4:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Fraction_$14478_memory_ptr", - "typeString": "struct LiquidityPoolV2Converter.Fraction memory" - } - }, - "id": 16487, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "n", - "nodeType": "MemberAccess", - "referencedDeclaration": 14475, - "src": "41158:6:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 16488, - "name": "rate", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16475, - "src": "41166:4:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Fraction_$14478_memory_ptr", - "typeString": "struct LiquidityPoolV2Converter.Fraction memory" - } - }, - "id": 16489, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "d", - "nodeType": "MemberAccess", - "referencedDeclaration": 14477, - "src": "41166:6:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 16483, - "name": "TokenRateUpdate", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2564, - "src": "41124:15:25", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256,uint256)" - } - }, - "id": 16490, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "41124:49:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 16491, - "nodeType": "EmitStatement", - "src": "41119:54:25" - } - ] - }, - "documentation": "@dev dispatches token rate update event\r\nonly used to circumvent the `stack too deep` compiler error\r\n\n * @param _token1 contract address of the token to calculate the rate of one unit of\r\n@param _token2 contract address of the token to calculate the rate of one `_token1` unit in\r\n@param _token1Weight reserve weight of token1\r\n@param _token2Weight reserve weight of token2\r", - "id": 16493, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "dispatchTokenRateUpdateEvent", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 16472, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 16465, - "name": "_token1", - "nodeType": "VariableDeclaration", - "scope": 16493, - "src": "40875:19:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - "typeName": { - "contractScope": null, - "id": 16464, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "40875:11:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 16467, - "name": "_token2", - "nodeType": "VariableDeclaration", - "scope": 16493, - "src": "40896:19:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - "typeName": { - "contractScope": null, - "id": 16466, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "40896:11:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 16469, - "name": "_token1Weight", - "nodeType": "VariableDeclaration", - "scope": 16493, - "src": "40917:20:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 16468, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "40917:6:25", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 16471, - "name": "_token2Weight", - "nodeType": "VariableDeclaration", - "scope": 16493, - "src": "40939:20:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 16470, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "40939:6:25", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "40874:86:25" - }, - "payable": false, - "returnParameters": { - "id": 16473, - "nodeType": "ParameterList", - "parameters": [], - "src": "40969:0:25" - }, - "scope": 16610, - "src": "40837:344:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 16511, - "nodeType": "Block", - "src": "41655:115:25", - "statements": [ - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 16503, - "name": "_poolToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16495, - "src": "41687:10:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISmartToken_$20295", - "typeString": "contract ISmartToken" - } - }, - { - "argumentTypes": null, - "id": 16504, - "name": "_reserveToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16499, - "src": "41699:13:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 16505, - "name": "stakedBalances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14488, - "src": "41714:14:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 16507, - "indexExpression": { - "argumentTypes": null, - "id": 16506, - "name": "_reserveToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16499, - "src": "41729:13:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "41714:29:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 16508, - "name": "_poolTokenSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16497, - "src": "41745:16:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_ISmartToken_$20295", - "typeString": "contract ISmartToken" - }, - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 16502, - "name": "TokenRateUpdate", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2564, - "src": "41671:15:25", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256,uint256)" - } - }, - "id": 16509, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "41671:91:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 16510, - "nodeType": "EmitStatement", - "src": "41666:96:25" - } - ] - }, - "documentation": "@dev dispatches the `TokenRateUpdate` for the pool token\r\nonly used to circumvent the `stack too deep` compiler error\r\n\n * @param _poolToken address of the pool token\r\n@param _poolTokenSupply total pool token supply\r\n@param _reserveToken address of the reserve token\r", - "id": 16512, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "dispatchPoolTokenRateUpdateEvent", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 16500, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 16495, - "name": "_poolToken", - "nodeType": "VariableDeclaration", - "scope": 16512, - "src": "41570:22:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISmartToken_$20295", - "typeString": "contract ISmartToken" - }, - "typeName": { - "contractScope": null, - "id": 16494, - "name": "ISmartToken", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20295, - "src": "41570:11:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISmartToken_$20295", - "typeString": "contract ISmartToken" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 16497, - "name": "_poolTokenSupply", - "nodeType": "VariableDeclaration", - "scope": 16512, - "src": "41594:24:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 16496, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "41594:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 16499, - "name": "_reserveToken", - "nodeType": "VariableDeclaration", - "scope": 16512, - "src": "41620:25:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - "typeName": { - "contractScope": null, - "id": 16498, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "41620:11:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "41569:77:25" - }, - "payable": false, - "returnParameters": { - "id": 16501, - "nodeType": "ParameterList", - "parameters": [], - "src": "41655:0:25" - }, - "scope": 16610, - "src": "41528:242:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 16519, - "nodeType": "Block", - "src": "41882:29:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 16517, - "name": "now", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22340, - "src": "41900:3:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 16516, - "id": 16518, - "nodeType": "Return", - "src": "41893:10:25" - } - ] - }, - "documentation": "@dev returns the current time\r", - "id": 16520, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "time", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 16513, - "nodeType": "ParameterList", - "parameters": [], - "src": "41847:2:25" - }, - "payable": false, - "returnParameters": { - "id": 16516, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 16515, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 16520, - "src": "41873:7:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 16514, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "41873:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "41872:9:25" - }, - "scope": 16610, - "src": "41834:77:25", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "constant": true, - "id": 16523, - "name": "MAX_RATE_FACTOR_LOWER_BOUND", - "nodeType": "VariableDeclaration", - "scope": 16610, - "src": "41919:59:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 16521, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "41919:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "31653330", - "id": 16522, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "41974:4:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1000000000000000000000000000000_by_1", - "typeString": "int_const 1000000000000000000000000000000" - }, - "value": "1e30" - }, - "visibility": "private" - }, - { - "constant": true, - "id": 16531, - "name": "MAX_RATE_FACTOR_UPPER_BOUND", - "nodeType": "VariableDeclaration", - "scope": 16610, - "src": "41985:96:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 16524, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "41985:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 16530, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 16527, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "-", - "prefix": true, - "src": "42048:2:25", - "subExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 16526, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "42049:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "typeDescriptions": { - "typeIdentifier": "t_rational_-1_by_1", - "typeString": "int_const -1" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_-1_by_1", - "typeString": "int_const -1" - } - ], - "id": 16525, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "42040:7:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": "uint256" - }, - "id": 16528, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "42040:11:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 16529, - "name": "MAX_RATE_FACTOR_LOWER_BOUND", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16523, - "src": "42054:27:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "42040:41:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "private" - }, - { - "body": { - "id": 16564, - "nodeType": "Block", - "src": "42310:196:25", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 16542, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 16540, - "name": "_n", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16533, - "src": "42325:2:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 16541, - "name": "_d", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16535, - "src": "42331:2:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "42325:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 16549, - "nodeType": "IfStatement", - "src": "42321:69:25", - "trueBody": { - "id": 16548, - "nodeType": "Block", - "src": "42335:55:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 16544, - "name": "_n", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16533, - "src": "42371:2:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 16545, - "name": "_d", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16535, - "src": "42375:2:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 16543, - "name": "reduceFactors", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16609, - "src": "42357:13:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_struct$_Fraction_$14478_memory_ptr_$", - "typeString": "function (uint256,uint256) pure returns (struct LiquidityPoolV2Converter.Fraction memory)" - } - }, - "id": 16546, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "42357:21:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Fraction_$14478_memory_ptr", - "typeString": "struct LiquidityPoolV2Converter.Fraction memory" - } - }, - "functionReturnParameters": 16539, - "id": 16547, - "nodeType": "Return", - "src": "42350:28:25" - } - ] - } - }, - { - "assignments": [ - 16551 - ], - "declarations": [ - { - "constant": false, - "id": 16551, - "name": "rate", - "nodeType": "VariableDeclaration", - "scope": 16565, - "src": "42402:20:25", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Fraction_$14478_memory_ptr", - "typeString": "struct LiquidityPoolV2Converter.Fraction" - }, - "typeName": { - "contractScope": null, - "id": 16550, - "name": "Fraction", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 14478, - "src": "42402:8:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Fraction_$14478_storage_ptr", - "typeString": "struct LiquidityPoolV2Converter.Fraction" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 16556, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 16553, - "name": "_d", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16535, - "src": "42439:2:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 16554, - "name": "_n", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16533, - "src": "42443:2:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 16552, - "name": "reduceFactors", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16609, - "src": "42425:13:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_struct$_Fraction_$14478_memory_ptr_$", - "typeString": "function (uint256,uint256) pure returns (struct LiquidityPoolV2Converter.Fraction memory)" - } - }, - "id": 16555, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "42425:21:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Fraction_$14478_memory_ptr", - "typeString": "struct LiquidityPoolV2Converter.Fraction memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "42402:44:25" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 16558, - "name": "rate", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16551, - "src": "42478:4:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Fraction_$14478_memory_ptr", - "typeString": "struct LiquidityPoolV2Converter.Fraction memory" - } - }, - "id": 16559, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "d", - "nodeType": "MemberAccess", - "referencedDeclaration": 14477, - "src": "42478:6:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 16560, - "name": "rate", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16551, - "src": "42489:4:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Fraction_$14478_memory_ptr", - "typeString": "struct LiquidityPoolV2Converter.Fraction memory" - } - }, - "id": 16561, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "n", - "nodeType": "MemberAccess", - "referencedDeclaration": 14475, - "src": "42489:6:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": null, - "id": 16557, - "name": "Fraction", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14478, - "src": "42464:8:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_Fraction_$14478_storage_ptr_$", - "typeString": "type(struct LiquidityPoolV2Converter.Fraction storage pointer)" - } - }, - "id": 16562, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "names": [ - "n", - "d" - ], - "nodeType": "FunctionCall", - "src": "42464:34:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Fraction_$14478_memory", - "typeString": "struct LiquidityPoolV2Converter.Fraction memory" - } - }, - "functionReturnParameters": 16539, - "id": 16563, - "nodeType": "Return", - "src": "42457:41:25" - } - ] - }, - "documentation": "@dev reduces the numerator and denominator while maintaining the ratio between them as accurately as possible\r", - "id": 16565, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "reduceRate", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 16536, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 16533, - "name": "_n", - "nodeType": "VariableDeclaration", - "scope": 16565, - "src": "42246:10:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 16532, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "42246:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 16535, - "name": "_d", - "nodeType": "VariableDeclaration", - "scope": 16565, - "src": "42258:10:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 16534, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "42258:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "42245:24:25" - }, - "payable": false, - "returnParameters": { - "id": 16539, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 16538, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 16565, - "src": "42293:8:25", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Fraction_$14478_memory_ptr", - "typeString": "struct LiquidityPoolV2Converter.Fraction" - }, - "typeName": { - "contractScope": null, - "id": 16537, - "name": "Fraction", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 14478, - "src": "42293:8:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Fraction_$14478_storage_ptr", - "typeString": "struct LiquidityPoolV2Converter.Fraction" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "42292:17:25" - }, - "scope": 16610, - "src": "42226:280:25", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 16608, - "nodeType": "Block", - "src": "42723:504:25", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 16576, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 16574, - "name": "_min", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16569, - "src": "42738:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "id": 16575, - "name": "MAX_RATE_FACTOR_UPPER_BOUND", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16531, - "src": "42745:27:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "42738:34:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 16588, - "nodeType": "IfStatement", - "src": "42734:213:25", - "trueBody": { - "id": 16587, - "nodeType": "Block", - "src": "42774:173:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 16578, - "name": "MAX_RATE_FACTOR_LOWER_BOUND", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16523, - "src": "42827:27:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 16584, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 16579, - "name": "_min", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16569, - "src": "42876:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 16582, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 16580, - "name": "_max", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16567, - "src": "42884:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 16581, - "name": "MAX_RATE_FACTOR_LOWER_BOUND", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16523, - "src": "42891:27:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "42884:34:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 16583, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "42883:36:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "42876:43:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": null, - "id": 16577, - "name": "Fraction", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14478, - "src": "42796:8:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_Fraction_$14478_storage_ptr_$", - "typeString": "type(struct LiquidityPoolV2Converter.Fraction storage pointer)" - } - }, - "id": 16585, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "names": [ - "n", - "d" - ], - "nodeType": "FunctionCall", - "src": "42796:139:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Fraction_$14478_memory", - "typeString": "struct LiquidityPoolV2Converter.Fraction memory" - } - }, - "functionReturnParameters": 16573, - "id": 16586, - "nodeType": "Return", - "src": "42789:146:25" - } - ] - } - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 16591, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 16589, - "name": "_max", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16567, - "src": "42963:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "id": 16590, - "name": "MAX_RATE_FACTOR_LOWER_BOUND", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16523, - "src": "42970:27:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "42963:34:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 16602, - "nodeType": "IfStatement", - "src": "42959:211:25", - "trueBody": { - "id": 16601, - "nodeType": "Block", - "src": "42999:171:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 16593, - "name": "MAX_RATE_FACTOR_LOWER_BOUND", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16523, - "src": "43052:27:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 16598, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 16596, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 16594, - "name": "_min", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16569, - "src": "43101:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 16595, - "name": "MAX_RATE_FACTOR_LOWER_BOUND", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16523, - "src": "43108:27:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "43101:34:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 16597, - "name": "_max", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16567, - "src": "43138:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "43101:41:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": null, - "id": 16592, - "name": "Fraction", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14478, - "src": "43021:8:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_Fraction_$14478_storage_ptr_$", - "typeString": "type(struct LiquidityPoolV2Converter.Fraction storage pointer)" - } - }, - "id": 16599, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "names": [ - "n", - "d" - ], - "nodeType": "FunctionCall", - "src": "43021:137:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Fraction_$14478_memory", - "typeString": "struct LiquidityPoolV2Converter.Fraction memory" - } - }, - "functionReturnParameters": 16573, - "id": 16600, - "nodeType": "Return", - "src": "43014:144:25" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 16604, - "name": "_max", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16567, - "src": "43203:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 16605, - "name": "_min", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16569, - "src": "43212:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": null, - "id": 16603, - "name": "Fraction", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14478, - "src": "43189:8:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_Fraction_$14478_storage_ptr_$", - "typeString": "type(struct LiquidityPoolV2Converter.Fraction storage pointer)" - } - }, - "id": 16606, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "names": [ - "n", - "d" - ], - "nodeType": "FunctionCall", - "src": "43189:30:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Fraction_$14478_memory", - "typeString": "struct LiquidityPoolV2Converter.Fraction memory" - } - }, - "functionReturnParameters": 16573, - "id": 16607, - "nodeType": "Return", - "src": "43182:37:25" - } - ] - }, - "documentation": "@dev reduces the factors while maintaining the ratio between them as accurately as possible\r", - "id": 16609, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "reduceFactors", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 16570, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 16567, - "name": "_max", - "nodeType": "VariableDeclaration", - "scope": 16609, - "src": "42655:12:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 16566, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "42655:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 16569, - "name": "_min", - "nodeType": "VariableDeclaration", - "scope": 16609, - "src": "42669:12:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 16568, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "42669:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "42654:28:25" - }, - "payable": false, - "returnParameters": { - "id": 16573, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 16572, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 16609, - "src": "42706:8:25", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Fraction_$14478_memory_ptr", - "typeString": "struct LiquidityPoolV2Converter.Fraction" - }, - "typeName": { - "contractScope": null, - "id": 16571, - "name": "Fraction", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 14478, - "src": "42706:8:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Fraction_$14478_storage_ptr", - "typeString": "struct LiquidityPoolV2Converter.Fraction" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "42705:17:25" - }, - "scope": 16610, - "src": "42632:595:25", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 16611, - "src": "651:42579:25" - } - ], - "src": "0:43232:25" - }, - "id": 25 - }, - "solidity/contracts/converter/types/liquidity-pool-v2/LiquidityPoolV2ConverterAnchorFactory.sol": { - "ast": { - "absolutePath": "solidity/contracts/converter/types/liquidity-pool-v2/LiquidityPoolV2ConverterAnchorFactory.sol", - "exportedSymbols": { - "LiquidityPoolV2ConverterAnchorFactory": [ - 16655 - ] - }, - "id": 16656, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 16612, - "literals": [ - "solidity", - "0.4", - ".26" - ], - "nodeType": "PragmaDirective", - "src": "0:23:26" - }, - { - "absolutePath": "solidity/contracts/converter/types/liquidity-pool-v2/PoolTokensContainer.sol", - "file": "./PoolTokensContainer.sol", - "id": 16613, - "nodeType": "ImportDirective", - "scope": 16656, - "sourceUnit": 16936, - "src": "25:35:26", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "solidity/contracts/converter/interfaces/ITypedConverterAnchorFactory.sol", - "file": "../../interfaces/ITypedConverterAnchorFactory.sol", - "id": 16614, - "nodeType": "ImportDirective", - "scope": 16656, - "sourceUnit": 12261, - "src": "62:59:26", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 16615, - "name": "ITypedConverterAnchorFactory", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 12260, - "src": "234:28:26", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ITypedConverterAnchorFactory_$12260", - "typeString": "contract ITypedConverterAnchorFactory" - } - }, - "id": 16616, - "nodeType": "InheritanceSpecifier", - "src": "234:28:26" - } - ], - "contractDependencies": [ - 12260, - 16935 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 16655, - "linearizedBaseContracts": [ - 16655, - 12260 - ], - "name": "LiquidityPoolV2ConverterAnchorFactory", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 16623, - "nodeType": "Block", - "src": "454:27:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "hexValue": "32", - "id": 16621, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "472:1:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "functionReturnParameters": 16620, - "id": 16622, - "nodeType": "Return", - "src": "465:8:26" - } - ] - }, - "documentation": "@dev returns the converter type the factory is associated with\r\n\n * @return converter type\r", - "id": 16624, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "converterType", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 16617, - "nodeType": "ParameterList", - "parameters": [], - "src": "422:2:26" - }, - "payable": false, - "returnParameters": { - "id": 16620, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 16619, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 16624, - "src": "446:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 16618, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "446:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "445:8:26" - }, - "scope": 16655, - "src": "400:81:26", - "stateMutability": "pure", - "superFunction": 12248, - "visibility": "public" - }, - { - "body": { - "id": 16653, - "nodeType": "Block", - "src": "899:179:26", - "statements": [ - { - "assignments": [ - 16636 - ], - "declarations": [ - { - "constant": false, - "id": 16636, - "name": "container", - "nodeType": "VariableDeclaration", - "scope": 16654, - "src": "910:30:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IPoolTokensContainer_$17009", - "typeString": "contract IPoolTokensContainer" - }, - "typeName": { - "contractScope": null, - "id": 16635, - "name": "IPoolTokensContainer", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 17009, - "src": "910:20:26", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IPoolTokensContainer_$17009", - "typeString": "contract IPoolTokensContainer" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 16643, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 16639, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16626, - "src": "967:5:26", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 16640, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16628, - "src": "974:7:26", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 16641, - "name": "_decimals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16630, - "src": "983:9:26", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - ], - "id": 16638, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "943:23:26", - "typeDescriptions": { - "typeIdentifier": "t_function_creation_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_uint8_$returns$_t_contract$_PoolTokensContainer_$16935_$", - "typeString": "function (string memory,string memory,uint8) returns (contract PoolTokensContainer)" - }, - "typeName": { - "contractScope": null, - "id": 16637, - "name": "PoolTokensContainer", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 16935, - "src": "947:19:26", - "typeDescriptions": { - "typeIdentifier": "t_contract$_PoolTokensContainer_$16935", - "typeString": "contract PoolTokensContainer" - } - } - }, - "id": 16642, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "943:50:26", - "typeDescriptions": { - "typeIdentifier": "t_contract$_PoolTokensContainer_$16935", - "typeString": "contract PoolTokensContainer" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "910:83:26" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 16647, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22338, - "src": "1032:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 16648, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1032:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 16644, - "name": "container", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16636, - "src": "1004:9:26", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IPoolTokensContainer_$17009", - "typeString": "contract IPoolTokensContainer" - } - }, - "id": 16646, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transferOwnership", - "nodeType": "MemberAccess", - "referencedDeclaration": 22243, - "src": "1004:27:26", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$", - "typeString": "function (address) external" - } - }, - "id": 16649, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1004:39:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 16650, - "nodeType": "ExpressionStatement", - "src": "1004:39:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 16651, - "name": "container", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16636, - "src": "1061:9:26", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IPoolTokensContainer_$17009", - "typeString": "contract IPoolTokensContainer" - } - }, - "functionReturnParameters": 16634, - "id": 16652, - "nodeType": "Return", - "src": "1054:16:26" - } - ] - }, - "documentation": "@dev creates a new converter anchor with the given arguments and transfers\r\nthe ownership to the caller\r\n\n * @param _name pool name\r\n@param _symbol pool symbol\r\n@param _decimals pool decimals\r\n\n * @return new anchor\r", - "id": 16654, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "createAnchor", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 16631, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 16626, - "name": "_name", - "nodeType": "VariableDeclaration", - "scope": 16654, - "src": "818:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 16625, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "818:6:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 16628, - "name": "_symbol", - "nodeType": "VariableDeclaration", - "scope": 16654, - "src": "832:14:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 16627, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "832:6:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 16630, - "name": "_decimals", - "nodeType": "VariableDeclaration", - "scope": 16654, - "src": "848:15:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 16629, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "848:5:26", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "817:47:26" - }, - "payable": false, - "returnParameters": { - "id": 16634, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 16633, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 16654, - "src": "881:16:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - }, - "typeName": { - "contractScope": null, - "id": 16632, - "name": "IConverterAnchor", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 11826, - "src": "881:16:26", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "880:18:26" - }, - "scope": 16655, - "src": "796:282:26", - "stateMutability": "nonpayable", - "superFunction": 12259, - "visibility": "public" - } - ], - "scope": 16656, - "src": "184:897:26" - } - ], - "src": "0:1083:26" - }, - "id": 26 - }, - "solidity/contracts/converter/types/liquidity-pool-v2/LiquidityPoolV2ConverterCustomFactory.sol": { - "ast": { - "absolutePath": "solidity/contracts/converter/types/liquidity-pool-v2/LiquidityPoolV2ConverterCustomFactory.sol", - "exportedSymbols": { - "LiquidityPoolV2ConverterCustomFactory": [ - 16692 - ] - }, - "id": 16693, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 16657, - "literals": [ - "solidity", - "0.4", - ".26" - ], - "nodeType": "PragmaDirective", - "src": "0:23:27" - }, - { - "absolutePath": "solidity/contracts/converter/interfaces/ITypedConverterCustomFactory.sol", - "file": "../../interfaces/ITypedConverterCustomFactory.sol", - "id": 16658, - "nodeType": "ImportDirective", - "scope": 16693, - "sourceUnit": 12269, - "src": "25:59:27", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "solidity/contracts/utility/PriceOracle.sol", - "file": "../../../utility/PriceOracle.sol", - "id": 16659, - "nodeType": "ImportDirective", - "scope": 16693, - "sourceUnit": 21669, - "src": "86:42:27", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 16660, - "name": "ITypedConverterCustomFactory", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 12268, - "src": "241:28:27", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ITypedConverterCustomFactory_$12268", - "typeString": "contract ITypedConverterCustomFactory" - } - }, - "id": 16661, - "nodeType": "InheritanceSpecifier", - "src": "241:28:27" - } - ], - "contractDependencies": [ - 12268, - 21668 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 16692, - "linearizedBaseContracts": [ - 16692, - 12268 - ], - "name": "LiquidityPoolV2ConverterCustomFactory", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 16668, - "nodeType": "Block", - "src": "461:27:27", - "statements": [ - { - "expression": { - "argumentTypes": null, - "hexValue": "32", - "id": 16666, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "479:1:27", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "functionReturnParameters": 16665, - "id": 16667, - "nodeType": "Return", - "src": "472:8:27" - } - ] - }, - "documentation": "@dev returns the converter type the factory is associated with\r\n\n * @return converter type\r", - "id": 16669, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "converterType", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 16662, - "nodeType": "ParameterList", - "parameters": [], - "src": "429:2:27" - }, - "payable": false, - "returnParameters": { - "id": 16665, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 16664, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 16669, - "src": "453:6:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 16663, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "453:6:27", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "452:8:27" - }, - "scope": 16692, - "src": "407:81:27", - "stateMutability": "pure", - "superFunction": 12267, - "visibility": "public" - }, - { - "body": { - "id": 16690, - "nodeType": "Block", - "src": "1215:135:27", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 16684, - "name": "_primaryReserveToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16671, - "src": "1249:20:27", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - { - "argumentTypes": null, - "id": 16685, - "name": "_secondaryReserveToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16673, - "src": "1271:22:27", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - { - "argumentTypes": null, - "id": 16686, - "name": "_primaryReserveOracle", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16675, - "src": "1295:21:27", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", - "typeString": "contract IConsumerPriceOracle" - } - }, - { - "argumentTypes": null, - "id": 16687, - "name": "_secondaryReserveOracle", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16677, - "src": "1318:23:27", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", - "typeString": "contract IConsumerPriceOracle" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - { - "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", - "typeString": "contract IConsumerPriceOracle" - }, - { - "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", - "typeString": "contract IConsumerPriceOracle" - } - ], - "id": 16683, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "1233:15:27", - "typeDescriptions": { - "typeIdentifier": "t_function_creation_nonpayable$_t_contract$_IERC20Token_$20240_$_t_contract$_IERC20Token_$20240_$_t_contract$_IConsumerPriceOracle_$22203_$_t_contract$_IConsumerPriceOracle_$22203_$returns$_t_contract$_PriceOracle_$21668_$", - "typeString": "function (contract IERC20Token,contract IERC20Token,contract IConsumerPriceOracle,contract IConsumerPriceOracle) returns (contract PriceOracle)" - }, - "typeName": { - "contractScope": null, - "id": 16682, - "name": "PriceOracle", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 21668, - "src": "1237:11:27", - "typeDescriptions": { - "typeIdentifier": "t_contract$_PriceOracle_$21668", - "typeString": "contract PriceOracle" - } - } - }, - "id": 16688, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1233:109:27", - "typeDescriptions": { - "typeIdentifier": "t_contract$_PriceOracle_$21668", - "typeString": "contract PriceOracle" - } - }, - "functionReturnParameters": 16681, - "id": 16689, - "nodeType": "Return", - "src": "1226:116:27" - } - ] - }, - "documentation": "@dev creates a new price oracle\r\nnote that the oracles must have the same common denominator (USD, ETH etc.)\r\n\n * @param _primaryReserveToken primary reserve token address\r\n@param _secondaryReserveToken secondary reserve token address\r\n@param _primaryReserveOracle primary reserve oracle address\r\n@param _secondaryReserveOracle secondary reserve oracle address\r", - "id": 16691, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "createPriceOracle", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 16678, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 16671, - "name": "_primaryReserveToken", - "nodeType": "VariableDeclaration", - "scope": 16691, - "src": "975:32:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - "typeName": { - "contractScope": null, - "id": 16670, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "975:11:27", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 16673, - "name": "_secondaryReserveToken", - "nodeType": "VariableDeclaration", - "scope": 16691, - "src": "1018:34:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - "typeName": { - "contractScope": null, - "id": 16672, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "1018:11:27", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 16675, - "name": "_primaryReserveOracle", - "nodeType": "VariableDeclaration", - "scope": 16691, - "src": "1063:42:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", - "typeString": "contract IConsumerPriceOracle" - }, - "typeName": { - "contractScope": null, - "id": 16674, - "name": "IConsumerPriceOracle", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 22203, - "src": "1063:20:27", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", - "typeString": "contract IConsumerPriceOracle" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 16677, - "name": "_secondaryReserveOracle", - "nodeType": "VariableDeclaration", - "scope": 16691, - "src": "1116:44:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", - "typeString": "contract IConsumerPriceOracle" - }, - "typeName": { - "contractScope": null, - "id": 16676, - "name": "IConsumerPriceOracle", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 22203, - "src": "1116:20:27", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", - "typeString": "contract IConsumerPriceOracle" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "964:197:27" - }, - "payable": false, - "returnParameters": { - "id": 16681, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 16680, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 16691, - "src": "1196:12:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IPriceOracle_$22297", - "typeString": "contract IPriceOracle" - }, - "typeName": { - "contractScope": null, - "id": 16679, - "name": "IPriceOracle", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 22297, - "src": "1196:12:27", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IPriceOracle_$22297", - "typeString": "contract IPriceOracle" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1195:14:27" - }, - "scope": 16692, - "src": "938:412:27", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 16693, - "src": "191:1162:27" - } - ], - "src": "0:1355:27" - }, - "id": 27 - }, - "solidity/contracts/converter/types/liquidity-pool-v2/LiquidityPoolV2ConverterFactory.sol": { - "ast": { - "absolutePath": "solidity/contracts/converter/types/liquidity-pool-v2/LiquidityPoolV2ConverterFactory.sol", - "exportedSymbols": { - "LiquidityPoolV2ConverterFactory": [ - 16740 - ] - }, - "id": 16741, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 16694, - "literals": [ - "solidity", - "0.4", - ".26" - ], - "nodeType": "PragmaDirective", - "src": "0:23:28" - }, - { - "absolutePath": "solidity/contracts/converter/types/liquidity-pool-v2/LiquidityPoolV2Converter.sol", - "file": "./LiquidityPoolV2Converter.sol", - "id": 16695, - "nodeType": "ImportDirective", - "scope": 16741, - "sourceUnit": 16611, - "src": "25:40:28", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "solidity/contracts/converter/types/liquidity-pool-v2/interfaces/IPoolTokensContainer.sol", - "file": "./interfaces/IPoolTokensContainer.sol", - "id": 16696, - "nodeType": "ImportDirective", - "scope": 16741, - "sourceUnit": 17010, - "src": "67:47:28", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "solidity/contracts/converter/interfaces/ITypedConverterFactory.sol", - "file": "../../interfaces/ITypedConverterFactory.sol", - "id": 16697, - "nodeType": "ImportDirective", - "scope": 16741, - "sourceUnit": 12291, - "src": "116:53:28", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 16698, - "name": "ITypedConverterFactory", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 12290, - "src": "263:22:28", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ITypedConverterFactory_$12290", - "typeString": "contract ITypedConverterFactory" - } - }, - "id": 16699, - "nodeType": "InheritanceSpecifier", - "src": "263:22:28" - } - ], - "contractDependencies": [ - 12290, - 16610 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 16740, - "linearizedBaseContracts": [ - 16740, - 12290 - ], - "name": "LiquidityPoolV2ConverterFactory", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 16706, - "nodeType": "Block", - "src": "477:27:28", - "statements": [ - { - "expression": { - "argumentTypes": null, - "hexValue": "32", - "id": 16704, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "495:1:28", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "functionReturnParameters": 16703, - "id": 16705, - "nodeType": "Return", - "src": "488:8:28" - } - ] - }, - "documentation": "@dev returns the converter type the factory is associated with\r\n\n * @return converter type\r", - "id": 16707, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "converterType", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 16700, - "nodeType": "ParameterList", - "parameters": [], - "src": "445:2:28" - }, - "payable": false, - "returnParameters": { - "id": 16703, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 16702, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 16707, - "src": "469:6:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 16701, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "469:6:28", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "468:8:28" - }, - "scope": 16740, - "src": "423:81:28", - "stateMutability": "pure", - "superFunction": 12278, - "visibility": "public" - }, - { - "body": { - "id": 16738, - "nodeType": "Block", - "src": "1047:211:28", - "statements": [ - { - "assignments": [ - 16719 - ], - "declarations": [ - { - "constant": false, - "id": 16719, - "name": "converter", - "nodeType": "VariableDeclaration", - "scope": 16739, - "src": "1058:23:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ConverterBase_$3414", - "typeString": "contract ConverterBase" - }, - "typeName": { - "contractScope": null, - "id": 16718, - "name": "ConverterBase", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3414, - "src": "1058:13:28", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ConverterBase_$3414", - "typeString": "contract ConverterBase" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 16728, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 16723, - "name": "_anchor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16709, - "src": "1134:7:28", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - ], - "id": 16722, - "name": "IPoolTokensContainer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17009, - "src": "1113:20:28", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IPoolTokensContainer_$17009_$", - "typeString": "type(contract IPoolTokensContainer)" - } - }, - "id": 16724, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1113:29:28", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IPoolTokensContainer_$17009", - "typeString": "contract IPoolTokensContainer" - } - }, - { - "argumentTypes": null, - "id": 16725, - "name": "_registry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16711, - "src": "1144:9:28", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IContractRegistry_$22220", - "typeString": "contract IContractRegistry" - } - }, - { - "argumentTypes": null, - "id": 16726, - "name": "_maxConversionFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16713, - "src": "1155:17:28", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IPoolTokensContainer_$17009", - "typeString": "contract IPoolTokensContainer" - }, - { - "typeIdentifier": "t_contract$_IContractRegistry_$22220", - "typeString": "contract IContractRegistry" - }, - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - ], - "id": 16721, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "1084:28:28", - "typeDescriptions": { - "typeIdentifier": "t_function_creation_nonpayable$_t_contract$_IPoolTokensContainer_$17009_$_t_contract$_IContractRegistry_$22220_$_t_uint32_$returns$_t_contract$_LiquidityPoolV2Converter_$16610_$", - "typeString": "function (contract IPoolTokensContainer,contract IContractRegistry,uint32) returns (contract LiquidityPoolV2Converter)" - }, - "typeName": { - "contractScope": null, - "id": 16720, - "name": "LiquidityPoolV2Converter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 16610, - "src": "1088:24:28", - "typeDescriptions": { - "typeIdentifier": "t_contract$_LiquidityPoolV2Converter_$16610", - "typeString": "contract LiquidityPoolV2Converter" - } - } - }, - "id": 16727, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1084:89:28", - "typeDescriptions": { - "typeIdentifier": "t_contract$_LiquidityPoolV2Converter_$16610", - "typeString": "contract LiquidityPoolV2Converter" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1058:115:28" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 16732, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22338, - "src": "1212:3:28", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 16733, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1212:10:28", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 16729, - "name": "converter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16719, - "src": "1184:9:28", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ConverterBase_$3414", - "typeString": "contract ConverterBase" - } - }, - "id": 16731, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transferOwnership", - "nodeType": "MemberAccess", - "referencedDeclaration": 21296, - "src": "1184:27:28", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$", - "typeString": "function (address) external" - } - }, - "id": 16734, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1184:39:28", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 16735, - "nodeType": "ExpressionStatement", - "src": "1184:39:28" - }, - { - "expression": { - "argumentTypes": null, - "id": 16736, - "name": "converter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16719, - "src": "1241:9:28", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ConverterBase_$3414", - "typeString": "contract ConverterBase" - } - }, - "functionReturnParameters": 16717, - "id": 16737, - "nodeType": "Return", - "src": "1234:16:28" - } - ] - }, - "documentation": "@dev creates a new converter with the given arguments and transfers\r\nthe ownership to the caller\r\n\n * @param _anchor anchor governed by the converter\r\n@param _registry address of a contract registry contract\r\n@param _maxConversionFee maximum conversion fee, represented in ppm\r\n\n * @return new converter\r", - "id": 16739, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "createConverter", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 16714, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 16709, - "name": "_anchor", - "nodeType": "VariableDeclaration", - "scope": 16739, - "src": "938:24:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - }, - "typeName": { - "contractScope": null, - "id": 16708, - "name": "IConverterAnchor", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 11826, - "src": "938:16:28", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 16711, - "name": "_registry", - "nodeType": "VariableDeclaration", - "scope": 16739, - "src": "964:27:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IContractRegistry_$22220", - "typeString": "contract IContractRegistry" - }, - "typeName": { - "contractScope": null, - "id": 16710, - "name": "IContractRegistry", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 22220, - "src": "964:17:28", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IContractRegistry_$22220", - "typeString": "contract IContractRegistry" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 16713, - "name": "_maxConversionFee", - "nodeType": "VariableDeclaration", - "scope": 16739, - "src": "993:24:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 16712, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "993:6:28", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "937:81:28" - }, - "payable": false, - "returnParameters": { - "id": 16717, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 16716, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 16739, - "src": "1035:10:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - }, - "typeName": { - "contractScope": null, - "id": 16715, - "name": "IConverter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 11817, - "src": "1035:10:28", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1034:12:28" - }, - "scope": 16740, - "src": "913:345:28", - "stateMutability": "nonpayable", - "superFunction": 12289, - "visibility": "public" - } - ], - "scope": 16741, - "src": "219:1042:28" - } - ], - "src": "0:1263:28" - }, - "id": 28 - }, - "solidity/contracts/converter/types/liquidity-pool-v2/PoolTokensContainer.sol": { - "ast": { - "absolutePath": "solidity/contracts/converter/types/liquidity-pool-v2/PoolTokensContainer.sol", - "exportedSymbols": { - "PoolTokensContainer": [ - 16935 - ] - }, - "id": 16936, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 16742, - "literals": [ - "solidity", - "0.4", - ".26" - ], - "nodeType": "PragmaDirective", - "src": "0:23:29" - }, - { - "absolutePath": "solidity/contracts/converter/types/liquidity-pool-v2/interfaces/IPoolTokensContainer.sol", - "file": "./interfaces/IPoolTokensContainer.sol", - "id": 16743, - "nodeType": "ImportDirective", - "scope": 16936, - "sourceUnit": 17010, - "src": "25:47:29", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "solidity/contracts/utility/Owned.sol", - "file": "../../../utility/Owned.sol", - "id": 16744, - "nodeType": "ImportDirective", - "scope": 16936, - "sourceUnit": 21325, - "src": "74:36:29", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "solidity/contracts/utility/TokenHolder.sol", - "file": "../../../utility/TokenHolder.sol", - "id": 16745, - "nodeType": "ImportDirective", - "scope": 16936, - "sourceUnit": 21977, - "src": "112:42:29", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "solidity/contracts/token/SmartToken.sol", - "file": "../../../token/SmartToken.sol", - "id": 16746, - "nodeType": "ImportDirective", - "scope": 16936, - "sourceUnit": 20149, - "src": "156:39:29", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 16747, - "name": "IPoolTokensContainer", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 17009, - "src": "572:20:29", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IPoolTokensContainer_$17009", - "typeString": "contract IPoolTokensContainer" - } - }, - "id": 16748, - "nodeType": "InheritanceSpecifier", - "src": "572:20:29" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 16749, - "name": "Owned", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 21324, - "src": "594:5:29", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Owned_$21324", - "typeString": "contract Owned" - } - }, - "id": 16750, - "nodeType": "InheritanceSpecifier", - "src": "594:5:29" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 16751, - "name": "TokenHolder", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 21976, - "src": "601:11:29", - "typeDescriptions": { - "typeIdentifier": "t_contract$_TokenHolder_$21976", - "typeString": "contract TokenHolder" - } - }, - "id": 16752, - "nodeType": "InheritanceSpecifier", - "src": "601:11:29" - } - ], - "contractDependencies": [ - 11826, - 17009, - 20148, - 21324, - 21933, - 21976, - 22052, - 22247, - 22313 - ], - "contractKind": "contract", - "documentation": "@dev The PoolTokensContainer contract serves as a container for multiple pool tokens.\r\nIt is used by specific liquidity pool types that require more than a single pool token,\r\nwhile still maintaining the single converter / anchor relationship.\r\n\n * It maintains and provides a list of the underlying pool tokens.\r", - "fullyImplemented": true, - "id": 16935, - "linearizedBaseContracts": [ - 16935, - 21976, - 22052, - 21324, - 21933, - 17009, - 11826, - 22313, - 22247 - ], - "name": "PoolTokensContainer", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": true, - "id": 16755, - "name": "MAX_POOL_TOKENS", - "nodeType": "VariableDeclaration", - "scope": 16935, - "src": "620:43:29", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 16753, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "620:5:29", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "35", - "id": 16754, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "662:1:29", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_5_by_1", - "typeString": "int_const 5" - }, - "value": "5" - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 16757, - "name": "name", - "nodeType": "VariableDeclaration", - "scope": 16935, - "src": "715:18:29", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 16756, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "715:6:29", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 16759, - "name": "symbol", - "nodeType": "VariableDeclaration", - "scope": 16935, - "src": "769:20:29", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 16758, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "769:6:29", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 16761, - "name": "decimals", - "nodeType": "VariableDeclaration", - "scope": 16935, - "src": "825:21:29", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 16760, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "825:5:29", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 16764, - "name": "_poolTokens", - "nodeType": "VariableDeclaration", - "scope": 16935, - "src": "901:33:29", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_ISmartToken_$20295_$dyn_storage", - "typeString": "contract ISmartToken[]" - }, - "typeName": { - "baseType": { - "contractScope": null, - "id": 16762, - "name": "ISmartToken", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20295, - "src": "901:11:29", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISmartToken_$20295", - "typeString": "contract ISmartToken" - } - }, - "id": 16763, - "length": null, - "nodeType": "ArrayTypeName", - "src": "901:13:29", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_ISmartToken_$20295_$dyn_storage_ptr", - "typeString": "contract ISmartToken[]" - } - }, - "value": null, - "visibility": "private" - }, - { - "body": { - "id": 16805, - "nodeType": "Block", - "src": "1396:249:29", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 16779, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 16775, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16766, - "src": "1449:5:29", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 16774, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1443:5:29", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", - "typeString": "type(bytes storage pointer)" - }, - "typeName": "bytes" - }, - "id": 16776, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1443:12:29", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory", - "typeString": "bytes memory" - } - }, - "id": 16777, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1443:19:29", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 16778, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1465:1:29", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "1443:23:29", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552525f494e56414c49445f4e414d45", - "id": 16780, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1468:18:29", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_8c31b897cf1b4c41d9a3a2c9019700f5d8d0c36c906997985403c8f4610f8246", - "typeString": "literal_string \"ERR_INVALID_NAME\"" - }, - "value": "ERR_INVALID_NAME" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_8c31b897cf1b4c41d9a3a2c9019700f5d8d0c36c906997985403c8f4610f8246", - "typeString": "literal_string \"ERR_INVALID_NAME\"" - } - ], - "id": 16773, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 22341, - 22342 - ], - "referencedDeclaration": 22342, - "src": "1435:7:29", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 16781, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1435:52:29", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 16782, - "nodeType": "ExpressionStatement", - "src": "1435:52:29" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 16789, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 16785, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16768, - "src": "1512:7:29", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 16784, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1506:5:29", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", - "typeString": "type(bytes storage pointer)" - }, - "typeName": "bytes" - }, - "id": 16786, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1506:14:29", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory", - "typeString": "bytes memory" - } - }, - "id": 16787, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1506:21:29", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 16788, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1530:1:29", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "1506:25:29", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552525f494e56414c49445f53594d424f4c", - "id": 16790, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1533:20:29", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_8cbe13dffb618f268f4d803a75787a665744c462e7a6ba0f32e015df7f7a2fda", - "typeString": "literal_string \"ERR_INVALID_SYMBOL\"" - }, - "value": "ERR_INVALID_SYMBOL" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_8cbe13dffb618f268f4d803a75787a665744c462e7a6ba0f32e015df7f7a2fda", - "typeString": "literal_string \"ERR_INVALID_SYMBOL\"" - } - ], - "id": 16783, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 22341, - 22342 - ], - "referencedDeclaration": 22342, - "src": "1498:7:29", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 16791, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1498:56:29", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 16792, - "nodeType": "ExpressionStatement", - "src": "1498:56:29" - }, - { - "expression": { - "argumentTypes": null, - "id": 16795, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 16793, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16757, - "src": "1567:4:29", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 16794, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16766, - "src": "1574:5:29", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "1567:12:29", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 16796, - "nodeType": "ExpressionStatement", - "src": "1567:12:29" - }, - { - "expression": { - "argumentTypes": null, - "id": 16799, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 16797, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16759, - "src": "1590:6:29", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 16798, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16768, - "src": "1599:7:29", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "1590:16:29", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 16800, - "nodeType": "ExpressionStatement", - "src": "1590:16:29" - }, - { - "expression": { - "argumentTypes": null, - "id": 16803, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 16801, - "name": "decimals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16761, - "src": "1617:8:29", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 16802, - "name": "_decimals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16770, - "src": "1628:9:29", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "1617:20:29", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "id": 16804, - "nodeType": "ExpressionStatement", - "src": "1617:20:29" - } - ] - }, - "documentation": "@dev initializes a new PoolTokensContainer instance\r\n\n * @param _name pool name, also used as a prefix for the underlying pool token names\r\n@param _symbol pool symbol, also used as a prefix for the underlying pool token symbols\r\n@param _decimals used for the underlying pool token decimals\r", - "id": 16806, - "implemented": true, - "isConstructor": true, - "isDeclaredConst": false, - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 16771, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 16766, - "name": "_name", - "nodeType": "VariableDeclaration", - "scope": 16806, - "src": "1342:12:29", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 16765, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1342:6:29", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 16768, - "name": "_symbol", - "nodeType": "VariableDeclaration", - "scope": 16806, - "src": "1356:14:29", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 16767, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1356:6:29", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 16770, - "name": "_decimals", - "nodeType": "VariableDeclaration", - "scope": 16806, - "src": "1372:15:29", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 16769, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "1372:5:29", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1341:47:29" - }, - "payable": false, - "returnParameters": { - "id": 16772, - "nodeType": "ParameterList", - "parameters": [], - "src": "1396:0:29" - }, - "scope": 16935, - "src": "1330:315:29", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 16814, - "nodeType": "Block", - "src": "1827:37:29", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 16812, - "name": "_poolTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16764, - "src": "1845:11:29", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_ISmartToken_$20295_$dyn_storage", - "typeString": "contract ISmartToken[] storage ref" - } - }, - "functionReturnParameters": 16811, - "id": 16813, - "nodeType": "Return", - "src": "1838:18:29" - } - ] - }, - "documentation": "@dev returns the list of pool tokens\r\n\n * @return list of pool tokens\r", - "id": 16815, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "poolTokens", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 16807, - "nodeType": "ParameterList", - "parameters": [], - "src": "1781:2:29" - }, - "payable": false, - "returnParameters": { - "id": 16811, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 16810, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 16815, - "src": "1805:13:29", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_ISmartToken_$20295_$dyn_memory_ptr", - "typeString": "contract ISmartToken[]" - }, - "typeName": { - "baseType": { - "contractScope": null, - "id": 16808, - "name": "ISmartToken", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20295, - "src": "1805:11:29", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISmartToken_$20295", - "typeString": "contract ISmartToken" - } - }, - "id": 16809, - "length": null, - "nodeType": "ArrayTypeName", - "src": "1805:13:29", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_ISmartToken_$20295_$dyn_storage_ptr", - "typeString": "contract ISmartToken[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1804:22:29" - }, - "scope": 16935, - "src": "1762:102:29", - "stateMutability": "view", - "superFunction": 16985, - "visibility": "public" - }, - { - "body": { - "id": 16871, - "nodeType": "Block", - "src": "2063:457:29", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 16826, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 16823, - "name": "_poolTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16764, - "src": "2135:11:29", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_ISmartToken_$20295_$dyn_storage", - "typeString": "contract ISmartToken[] storage ref" - } - }, - "id": 16824, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2135:18:29", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "id": 16825, - "name": "MAX_POOL_TOKENS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16755, - "src": "2156:15:29", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "2135:36:29", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552525f4d41585f4c494d49545f52454143484544", - "id": 16827, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2173:23:29", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_65600c00f67ab34f2203e92774a46e26e7dd32d8502d3f07241456a23d1290f8", - "typeString": "literal_string \"ERR_MAX_LIMIT_REACHED\"" - }, - "value": "ERR_MAX_LIMIT_REACHED" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_65600c00f67ab34f2203e92774a46e26e7dd32d8502d3f07241456a23d1290f8", - "typeString": "literal_string \"ERR_MAX_LIMIT_REACHED\"" - } - ], - "id": 16822, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 22341, - 22342 - ], - "referencedDeclaration": 22342, - "src": "2127:7:29", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 16828, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2127:70:29", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 16829, - "nodeType": "ExpressionStatement", - "src": "2127:70:29" - }, - { - "assignments": [ - 16831 - ], - "declarations": [ - { - "constant": false, - "id": 16831, - "name": "poolName", - "nodeType": "VariableDeclaration", - "scope": 16872, - "src": "2210:22:29", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 16830, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "2210:6:29", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 16841, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 16833, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16757, - "src": "2250:4:29", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 16838, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 16835, - "name": "_poolTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16764, - "src": "2262:11:29", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_ISmartToken_$20295_$dyn_storage", - "typeString": "contract ISmartToken[] storage ref" - } - }, - "id": 16836, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2262:18:29", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 16837, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2283:1:29", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "2262:22:29", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 16834, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2256:5:29", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint8_$", - "typeString": "type(uint8)" - }, - "typeName": "uint8" - }, - "id": 16839, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2256:29:29", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - }, - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - ], - "id": 16832, - "name": "concatStrDigit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16934, - "src": "2235:14:29", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$_t_uint8_$returns$_t_string_memory_ptr_$", - "typeString": "function (string memory,uint8) pure returns (string memory)" - } - }, - "id": 16840, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2235:51:29", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2210:76:29" - }, - { - "assignments": [ - 16843 - ], - "declarations": [ - { - "constant": false, - "id": 16843, - "name": "poolSymbol", - "nodeType": "VariableDeclaration", - "scope": 16872, - "src": "2297:24:29", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 16842, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "2297:6:29", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 16853, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 16845, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16759, - "src": "2339:6:29", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 16850, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 16847, - "name": "_poolTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16764, - "src": "2353:11:29", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_ISmartToken_$20295_$dyn_storage", - "typeString": "contract ISmartToken[] storage ref" - } - }, - "id": 16848, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2353:18:29", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 16849, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2374:1:29", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "2353:22:29", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 16846, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2347:5:29", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint8_$", - "typeString": "type(uint8)" - }, - "typeName": "uint8" - }, - "id": 16851, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2347:29:29", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - }, - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - ], - "id": 16844, - "name": "concatStrDigit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16934, - "src": "2324:14:29", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$_t_uint8_$returns$_t_string_memory_ptr_$", - "typeString": "function (string memory,uint8) pure returns (string memory)" - } - }, - "id": 16852, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2324:53:29", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2297:80:29" - }, - { - "assignments": [ - 16855 - ], - "declarations": [ - { - "constant": false, - "id": 16855, - "name": "token", - "nodeType": "VariableDeclaration", - "scope": 16872, - "src": "2390:16:29", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SmartToken_$20148", - "typeString": "contract SmartToken" - }, - "typeName": { - "contractScope": null, - "id": 16854, - "name": "SmartToken", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20148, - "src": "2390:10:29", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SmartToken_$20148", - "typeString": "contract SmartToken" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 16862, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 16858, - "name": "poolName", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16831, - "src": "2424:8:29", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 16859, - "name": "poolSymbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16843, - "src": "2434:10:29", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 16860, - "name": "decimals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16761, - "src": "2446:8:29", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - ], - "id": 16857, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "2409:14:29", - "typeDescriptions": { - "typeIdentifier": "t_function_creation_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_uint8_$returns$_t_contract$_SmartToken_$20148_$", - "typeString": "function (string memory,string memory,uint8) returns (contract SmartToken)" - }, - "typeName": { - "contractScope": null, - "id": 16856, - "name": "SmartToken", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20148, - "src": "2413:10:29", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SmartToken_$20148", - "typeString": "contract SmartToken" - } - } - }, - "id": 16861, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2409:46:29", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SmartToken_$20148", - "typeString": "contract SmartToken" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2390:65:29" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 16866, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16855, - "src": "2483:5:29", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SmartToken_$20148", - "typeString": "contract SmartToken" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_SmartToken_$20148", - "typeString": "contract SmartToken" - } - ], - "expression": { - "argumentTypes": null, - "id": 16863, - "name": "_poolTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16764, - "src": "2466:11:29", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_ISmartToken_$20295_$dyn_storage", - "typeString": "contract ISmartToken[] storage ref" - } - }, - "id": 16865, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "push", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2466:16:29", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_contract$_ISmartToken_$20295_$returns$_t_uint256_$", - "typeString": "function (contract ISmartToken) returns (uint256)" - } - }, - "id": 16867, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2466:23:29", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 16868, - "nodeType": "ExpressionStatement", - "src": "2466:23:29" - }, - { - "expression": { - "argumentTypes": null, - "id": 16869, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16855, - "src": "2507:5:29", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SmartToken_$20148", - "typeString": "contract SmartToken" - } - }, - "functionReturnParameters": 16821, - "id": 16870, - "nodeType": "Return", - "src": "2500:12:29" - } - ] - }, - "documentation": "@dev creates a new pool token and adds it to the list\r\n\n * @return new pool token address\r", - "id": 16872, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 16818, - "modifierName": { - "argumentTypes": null, - "id": 16817, - "name": "ownerOnly", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21265, - "src": "2031:9:29", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "2031:9:29" - } - ], - "name": "createToken", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 16816, - "nodeType": "ParameterList", - "parameters": [], - "src": "2021:2:29" - }, - "payable": false, - "returnParameters": { - "id": 16821, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 16820, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 16872, - "src": "2050:11:29", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISmartToken_$20295", - "typeString": "contract ISmartToken" - }, - "typeName": { - "contractScope": null, - "id": 16819, - "name": "ISmartToken", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20295, - "src": "2050:11:29", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISmartToken_$20295", - "typeString": "contract ISmartToken" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2049:13:29" - }, - "scope": 16935, - "src": "2001:519:29", - "stateMutability": "nonpayable", - "superFunction": 16990, - "visibility": "public" - }, - { - "body": { - "id": 16890, - "nodeType": "Block", - "src": "2929:45:29", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 16886, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16876, - "src": "2953:3:29", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 16887, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16878, - "src": "2958:7:29", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 16883, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16874, - "src": "2940:6:29", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISmartToken_$20295", - "typeString": "contract ISmartToken" - } - }, - "id": 16885, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "issue", - "nodeType": "MemberAccess", - "referencedDeclaration": 20287, - "src": "2940:12:29", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256) external" - } - }, - "id": 16888, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2940:26:29", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 16889, - "nodeType": "ExpressionStatement", - "src": "2940:26:29" - } - ] - }, - "documentation": "@dev increases the pool token supply and sends the new tokens to the given account\r\ncan only be called by the contract owner\r\n\n * @param _token pool token address\r\n@param _to account to receive the newly minted tokens\r\n@param _amount amount to mint\r", - "id": 16891, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 16881, - "modifierName": { - "argumentTypes": null, - "id": 16880, - "name": "ownerOnly", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21265, - "src": "2919:9:29", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "2919:9:29" - } - ], - "name": "mint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 16879, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 16874, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 16891, - "src": "2862:18:29", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISmartToken_$20295", - "typeString": "contract ISmartToken" - }, - "typeName": { - "contractScope": null, - "id": 16873, - "name": "ISmartToken", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20295, - "src": "2862:11:29", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISmartToken_$20295", - "typeString": "contract ISmartToken" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 16876, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 16891, - "src": "2882:11:29", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 16875, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2882:7:29", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 16878, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 16891, - "src": "2895:15:29", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 16877, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2895:7:29", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2861:50:29" - }, - "payable": false, - "returnParameters": { - "id": 16882, - "nodeType": "ParameterList", - "parameters": [], - "src": "2929:0:29" - }, - "scope": 16935, - "src": "2848:126:29", - "stateMutability": "nonpayable", - "superFunction": 16999, - "visibility": "public" - }, - { - "body": { - "id": 16909, - "nodeType": "Block", - "src": "3372:49:29", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 16905, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16895, - "src": "3398:5:29", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 16906, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16897, - "src": "3405:7:29", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 16902, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16893, - "src": "3383:6:29", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISmartToken_$20295", - "typeString": "contract ISmartToken" - } - }, - "id": 16904, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "destroy", - "nodeType": "MemberAccess", - "referencedDeclaration": 20294, - "src": "3383:14:29", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256) external" - } - }, - "id": 16907, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3383:30:29", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 16908, - "nodeType": "ExpressionStatement", - "src": "3383:30:29" - } - ] - }, - "documentation": "@dev removes tokens from the given account and decreases the pool token supply\r\ncan only be called by the contract owner\r\n\n * @param _token pool token address\r\n@param _from account to remove the tokens from\r\n@param _amount amount to burn\r", - "id": 16910, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 16900, - "modifierName": { - "argumentTypes": null, - "id": 16899, - "name": "ownerOnly", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21265, - "src": "3362:9:29", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "3362:9:29" - } - ], - "name": "burn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 16898, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 16893, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 16910, - "src": "3303:18:29", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISmartToken_$20295", - "typeString": "contract ISmartToken" - }, - "typeName": { - "contractScope": null, - "id": 16892, - "name": "ISmartToken", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20295, - "src": "3303:11:29", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISmartToken_$20295", - "typeString": "contract ISmartToken" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 16895, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 16910, - "src": "3323:13:29", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 16894, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3323:7:29", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 16897, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 16910, - "src": "3338:15:29", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 16896, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3338:7:29", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3302:52:29" - }, - "payable": false, - "returnParameters": { - "id": 16901, - "nodeType": "ParameterList", - "parameters": [], - "src": "3372:0:29" - }, - "scope": 16935, - "src": "3289:132:29", - "stateMutability": "nonpayable", - "superFunction": 17008, - "visibility": "public" - }, - { - "body": { - "id": 16933, - "nodeType": "Block", - "src": "3728:85:29", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 16922, - "name": "_str", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16912, - "src": "3770:4:29", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "id": 16929, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 16925, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3789:3:29", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d", - "typeString": "literal_string \"0\"" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_stringliteral_044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d", - "typeString": "literal_string \"0\"" - } - ], - "id": 16924, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3782:6:29", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes1_$", - "typeString": "type(bytes1)" - }, - "typeName": "bytes1" - }, - "id": 16926, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3782:11:29", - "typeDescriptions": { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - } - ], - "id": 16923, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3776:5:29", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint8_$", - "typeString": "type(uint8)" - }, - "typeName": "uint8" - }, - "id": 16927, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3776:18:29", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "id": 16928, - "name": "_digit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16914, - "src": "3797:6:29", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "3776:27:29", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - ], - "expression": { - "argumentTypes": null, - "id": 16920, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22325, - "src": "3753:3:29", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 16921, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encodePacked", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3753:16:29", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 16930, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3753:51:29", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 16919, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3746:6:29", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_string_storage_ptr_$", - "typeString": "type(string storage pointer)" - }, - "typeName": "string" - }, - "id": 16931, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3746:59:29", - "typeDescriptions": { - "typeIdentifier": "t_string_memory", - "typeString": "string memory" - } - }, - "functionReturnParameters": 16918, - "id": 16932, - "nodeType": "Return", - "src": "3739:66:29" - } - ] - }, - "documentation": "@dev concatenates a string and a digit (single only) and returns the result string\r\n\n * @param _str string\r\n@param _digit digit\r\n@return concatenated string\r", - "id": 16934, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "concatStrDigit", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 16915, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 16912, - "name": "_str", - "nodeType": "VariableDeclaration", - "scope": 16934, - "src": "3671:11:29", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 16911, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "3671:6:29", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 16914, - "name": "_digit", - "nodeType": "VariableDeclaration", - "scope": 16934, - "src": "3684:12:29", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 16913, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "3684:5:29", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3670:27:29" - }, - "payable": false, - "returnParameters": { - "id": 16918, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 16917, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 16934, - "src": "3720:6:29", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 16916, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "3720:6:29", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3719:8:29" - }, - "scope": 16935, - "src": "3647:166:29", - "stateMutability": "pure", - "superFunction": null, - "visibility": "private" - } - ], - "scope": 16936, - "src": "540:3276:29" - } - ], - "src": "0:3818:29" - }, - "id": 29 - }, - "solidity/contracts/converter/types/liquidity-pool-v2/interfaces/ILiquidityPoolV2Converter.sol": { - "ast": { - "absolutePath": "solidity/contracts/converter/types/liquidity-pool-v2/interfaces/ILiquidityPoolV2Converter.sol", - "exportedSymbols": { - "ILiquidityPoolV2Converter": [ - 16973 - ] - }, - "id": 16974, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 16937, - "literals": [ - "solidity", - "0.4", - ".26" - ], - "nodeType": "PragmaDirective", - "src": "0:23:30" - }, - { - "absolutePath": "solidity/contracts/token/interfaces/IERC20Token.sol", - "file": "../../../../token/interfaces/IERC20Token.sol", - "id": 16938, - "nodeType": "ImportDirective", - "scope": 16974, - "sourceUnit": 20241, - "src": "24:54:30", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "solidity/contracts/utility/interfaces/IPriceOracle.sol", - "file": "../../../../utility/interfaces/IPriceOracle.sol", - "id": 16939, - "nodeType": "ImportDirective", - "scope": 16974, - "sourceUnit": 22298, - "src": "79:57:30", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": false, - "id": 16973, - "linearizedBaseContracts": [ - 16973 - ], - "name": "ILiquidityPoolV2Converter", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": null, - "id": 16946, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "reserveStakedBalance", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 16942, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 16941, - "name": "_reserveToken", - "nodeType": "VariableDeclaration", - "scope": 16946, - "src": "257:25:30", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - "typeName": { - "contractScope": null, - "id": 16940, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "257:11:30", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "256:27:30" - }, - "payable": false, - "returnParameters": { - "id": 16945, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 16944, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 16946, - "src": "305:7:30", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 16943, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "305:7:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "304:9:30" - }, - "scope": 16973, - "src": "227:87:30", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 16953, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "setReserveStakedBalance", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 16951, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 16948, - "name": "_reserveToken", - "nodeType": "VariableDeclaration", - "scope": 16953, - "src": "352:25:30", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - "typeName": { - "contractScope": null, - "id": 16947, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "352:11:30", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 16950, - "name": "_balance", - "nodeType": "VariableDeclaration", - "scope": 16953, - "src": "379:16:30", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 16949, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "379:7:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "351:45:30" - }, - "payable": false, - "returnParameters": { - "id": 16952, - "nodeType": "ParameterList", - "parameters": [], - "src": "403:0:30" - }, - "scope": 16973, - "src": "319:85:30", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 16958, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "primaryReserveToken", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 16954, - "nodeType": "ParameterList", - "parameters": [], - "src": "438:2:30" - }, - "payable": false, - "returnParameters": { - "id": 16957, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 16956, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 16958, - "src": "462:11:30", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - "typeName": { - "contractScope": null, - "id": 16955, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "462:11:30", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "461:13:30" - }, - "scope": 16973, - "src": "410:65:30", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 16963, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "priceOracle", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 16959, - "nodeType": "ParameterList", - "parameters": [], - "src": "501:2:30" - }, - "payable": false, - "returnParameters": { - "id": 16962, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 16961, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 16963, - "src": "525:12:30", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IPriceOracle_$22297", - "typeString": "contract IPriceOracle" - }, - "typeName": { - "contractScope": null, - "id": 16960, - "name": "IPriceOracle", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 22297, - "src": "525:12:30", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IPriceOracle_$22297", - "typeString": "contract IPriceOracle" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "524:14:30" - }, - "scope": 16973, - "src": "481:58:30", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 16972, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "activate", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 16970, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 16965, - "name": "_primaryReserveToken", - "nodeType": "VariableDeclaration", - "scope": 16972, - "src": "563:32:30", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - "typeName": { - "contractScope": null, - "id": 16964, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "563:11:30", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 16967, - "name": "_primaryReserveOracle", - "nodeType": "VariableDeclaration", - "scope": 16972, - "src": "597:42:30", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", - "typeString": "contract IConsumerPriceOracle" - }, - "typeName": { - "contractScope": null, - "id": 16966, - "name": "IConsumerPriceOracle", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 22203, - "src": "597:20:30", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", - "typeString": "contract IConsumerPriceOracle" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 16969, - "name": "_secondaryReserveOracle", - "nodeType": "VariableDeclaration", - "scope": 16972, - "src": "641:44:30", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", - "typeString": "contract IConsumerPriceOracle" - }, - "typeName": { - "contractScope": null, - "id": 16968, - "name": "IConsumerPriceOracle", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 22203, - "src": "641:20:30", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", - "typeString": "contract IConsumerPriceOracle" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "562:124:30" - }, - "payable": false, - "returnParameters": { - "id": 16971, - "nodeType": "ParameterList", - "parameters": [], - "src": "693:0:30" - }, - "scope": 16973, - "src": "545:149:30", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 16974, - "src": "186:510:30" - } - ], - "src": "0:697:30" - }, - "id": 30 - }, - "solidity/contracts/converter/types/liquidity-pool-v2/interfaces/IPoolTokensContainer.sol": { - "ast": { - "absolutePath": "solidity/contracts/converter/types/liquidity-pool-v2/interfaces/IPoolTokensContainer.sol", - "exportedSymbols": { - "IPoolTokensContainer": [ - 17009 - ] - }, - "id": 17010, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 16975, - "literals": [ - "solidity", - "0.4", - ".26" - ], - "nodeType": "PragmaDirective", - "src": "0:23:31" - }, - { - "absolutePath": "solidity/contracts/converter/interfaces/IConverterAnchor.sol", - "file": "../../../interfaces/IConverterAnchor.sol", - "id": 16976, - "nodeType": "ImportDirective", - "scope": 17010, - "sourceUnit": 11827, - "src": "24:50:31", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "solidity/contracts/token/interfaces/ISmartToken.sol", - "file": "../../../../token/interfaces/ISmartToken.sol", - "id": 16977, - "nodeType": "ImportDirective", - "scope": 17010, - "sourceUnit": 20296, - "src": "75:54:31", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 16978, - "name": "IConverterAnchor", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 11826, - "src": "206:16:31", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - }, - "id": 16979, - "nodeType": "InheritanceSpecifier", - "src": "206:16:31" - } - ], - "contractDependencies": [ - 11826, - 22247, - 22313 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": false, - "id": 17009, - "linearizedBaseContracts": [ - 17009, - 11826, - 22313, - 22247 - ], - "name": "IPoolTokensContainer", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": null, - "id": 16985, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "poolTokens", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 16980, - "nodeType": "ParameterList", - "parameters": [], - "src": "248:2:31" - }, - "payable": false, - "returnParameters": { - "id": 16984, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 16983, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 16985, - "src": "272:13:31", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_ISmartToken_$20295_$dyn_memory_ptr", - "typeString": "contract ISmartToken[]" - }, - "typeName": { - "baseType": { - "contractScope": null, - "id": 16981, - "name": "ISmartToken", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20295, - "src": "272:11:31", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISmartToken_$20295", - "typeString": "contract ISmartToken" - } - }, - "id": 16982, - "length": null, - "nodeType": "ArrayTypeName", - "src": "272:13:31", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_ISmartToken_$20295_$dyn_storage_ptr", - "typeString": "contract ISmartToken[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "271:15:31" - }, - "scope": 17009, - "src": "229:58:31", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 16990, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "createToken", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 16986, - "nodeType": "ParameterList", - "parameters": [], - "src": "312:2:31" - }, - "payable": false, - "returnParameters": { - "id": 16989, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 16988, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 16990, - "src": "331:11:31", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISmartToken_$20295", - "typeString": "contract ISmartToken" - }, - "typeName": { - "contractScope": null, - "id": 16987, - "name": "ISmartToken", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20295, - "src": "331:11:31", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISmartToken_$20295", - "typeString": "contract ISmartToken" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "330:13:31" - }, - "scope": 17009, - "src": "292:52:31", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 16999, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "mint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 16997, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 16992, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 16999, - "src": "363:18:31", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISmartToken_$20295", - "typeString": "contract ISmartToken" - }, - "typeName": { - "contractScope": null, - "id": 16991, - "name": "ISmartToken", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20295, - "src": "363:11:31", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISmartToken_$20295", - "typeString": "contract ISmartToken" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 16994, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 16999, - "src": "383:11:31", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 16993, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "383:7:31", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 16996, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 16999, - "src": "396:15:31", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 16995, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "396:7:31", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "362:50:31" - }, - "payable": false, - "returnParameters": { - "id": 16998, - "nodeType": "ParameterList", - "parameters": [], - "src": "419:0:31" - }, - "scope": 17009, - "src": "349:71:31", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 17008, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "burn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 17006, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 17001, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 17008, - "src": "439:18:31", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISmartToken_$20295", - "typeString": "contract ISmartToken" - }, - "typeName": { - "contractScope": null, - "id": 17000, - "name": "ISmartToken", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20295, - "src": "439:11:31", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISmartToken_$20295", - "typeString": "contract ISmartToken" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 17003, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 17008, - "src": "459:13:31", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 17002, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "459:7:31", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 17005, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 17008, - "src": "474:15:31", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 17004, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "474:7:31", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "438:52:31" - }, - "payable": false, - "returnParameters": { - "id": 17007, - "nodeType": "ParameterList", - "parameters": [], - "src": "497:0:31" - }, - "scope": 17009, - "src": "425:73:31", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 17010, - "src": "173:327:31" - } - ], - "src": "0:501:31" - }, - "id": 31 - }, - "solidity/contracts/helpers/TestChainlinkPriceOracle.sol": { - "ast": { - "absolutePath": "solidity/contracts/helpers/TestChainlinkPriceOracle.sol", - "exportedSymbols": { - "TestChainlinkPriceOracle": [ - 17055 - ] - }, - "id": 17056, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 17011, - "literals": [ - "solidity", - "0.4", - ".26" - ], - "nodeType": "PragmaDirective", - "src": "0:23:32" - }, - { - "absolutePath": "solidity/contracts/utility/interfaces/IConsumerPriceOracle.sol", - "file": "../utility/interfaces/IConsumerPriceOracle.sol", - "id": 17012, - "nodeType": "ImportDirective", - "scope": 17056, - "sourceUnit": 22204, - "src": "24:56:32", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 17013, - "name": "IConsumerPriceOracle", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 22203, - "src": "157:20:32", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", - "typeString": "contract IConsumerPriceOracle" - } - }, - "id": 17014, - "nodeType": "InheritanceSpecifier", - "src": "157:20:32" - } - ], - "contractDependencies": [ - 22203 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 17055, - "linearizedBaseContracts": [ - 17055, - 22203 - ], - "name": "TestChainlinkPriceOracle", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 17016, - "name": "answer", - "nodeType": "VariableDeclaration", - "scope": 17055, - "src": "181:21:32", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "typeName": { - "id": 17015, - "name": "int256", - "nodeType": "ElementaryTypeName", - "src": "181:6:32", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 17018, - "name": "timestamp", - "nodeType": "VariableDeclaration", - "scope": 17055, - "src": "205:25:32", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 17017, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "205:7:32", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "private" - }, - { - "body": { - "id": 17027, - "nodeType": "Block", - "src": "276:24:32", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 17025, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 17023, - "name": "answer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17016, - "src": "280:6:32", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 17024, - "name": "_answer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17020, - "src": "289:7:32", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "src": "280:16:32", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "id": 17026, - "nodeType": "ExpressionStatement", - "src": "280:16:32" - } - ] - }, - "documentation": null, - "id": 17028, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "setAnswer", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 17021, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 17020, - "name": "_answer", - "nodeType": "VariableDeclaration", - "scope": 17028, - "src": "253:14:32", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "typeName": { - "id": 17019, - "name": "int256", - "nodeType": "ElementaryTypeName", - "src": "253:6:32", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "252:16:32" - }, - "payable": false, - "returnParameters": { - "id": 17022, - "nodeType": "ParameterList", - "parameters": [], - "src": "276:0:32" - }, - "scope": 17055, - "src": "234:66:32", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 17037, - "nodeType": "Block", - "src": "352:30:32", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 17035, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 17033, - "name": "timestamp", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17018, - "src": "356:9:32", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 17034, - "name": "_timestamp", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17030, - "src": "368:10:32", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "356:22:32", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 17036, - "nodeType": "ExpressionStatement", - "src": "356:22:32" - } - ] - }, - "documentation": null, - "id": 17038, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "setTimestamp", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 17031, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 17030, - "name": "_timestamp", - "nodeType": "VariableDeclaration", - "scope": 17038, - "src": "325:18:32", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 17029, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "325:7:32", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "324:20:32" - }, - "payable": false, - "returnParameters": { - "id": 17032, - "nodeType": "ParameterList", - "parameters": [], - "src": "352:0:32" - }, - "scope": 17055, - "src": "303:79:32", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 17045, - "nodeType": "Block", - "src": "440:21:32", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 17043, - "name": "answer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17016, - "src": "451:6:32", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "functionReturnParameters": 17042, - "id": 17044, - "nodeType": "Return", - "src": "444:13:32" - } - ] - }, - "documentation": null, - "id": 17046, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "latestAnswer", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 17039, - "nodeType": "ParameterList", - "parameters": [], - "src": "406:2:32" - }, - "payable": false, - "returnParameters": { - "id": 17042, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 17041, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 17046, - "src": "432:6:32", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "typeName": { - "id": 17040, - "name": "int256", - "nodeType": "ElementaryTypeName", - "src": "432:6:32", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "431:8:32" - }, - "scope": 17055, - "src": "385:76:32", - "stateMutability": "view", - "superFunction": 22197, - "visibility": "external" - }, - { - "body": { - "id": 17053, - "nodeType": "Block", - "src": "523:24:32", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 17051, - "name": "timestamp", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17018, - "src": "534:9:32", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 17050, - "id": 17052, - "nodeType": "Return", - "src": "527:16:32" - } - ] - }, - "documentation": null, - "id": 17054, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "latestTimestamp", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 17047, - "nodeType": "ParameterList", - "parameters": [], - "src": "488:2:32" - }, - "payable": false, - "returnParameters": { - "id": 17050, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 17049, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 17054, - "src": "514:7:32", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 17048, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "514:7:32", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "513:9:32" - }, - "scope": 17055, - "src": "464:83:32", - "stateMutability": "view", - "superFunction": 22202, - "visibility": "external" - } - ], - "scope": 17056, - "src": "120:429:32" - } - ], - "src": "0:550:32" - }, - "id": 32 - }, - "solidity/contracts/helpers/TestContractRegistryClient.sol": { - "ast": { - "absolutePath": "solidity/contracts/helpers/TestContractRegistryClient.sol", - "exportedSymbols": { - "TestContractRegistryClient": [ - 17070 - ] - }, - "id": 17071, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 17057, - "literals": [ - "solidity", - "0.4", - ".26" - ], - "nodeType": "PragmaDirective", - "src": "0:23:33" - }, - { - "absolutePath": "solidity/contracts/utility/ContractRegistryClient.sol", - "file": "../utility/ContractRegistryClient.sol", - "id": 17058, - "nodeType": "ImportDirective", - "scope": 17071, - "sourceUnit": 20933, - "src": "24:47:33", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 17059, - "name": "ContractRegistryClient", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20932, - "src": "192:22:33", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ContractRegistryClient_$20932", - "typeString": "contract ContractRegistryClient" - } - }, - "id": 17060, - "nodeType": "InheritanceSpecifier", - "src": "192:22:33" - } - ], - "contractDependencies": [ - 20932, - 21324, - 22052, - 22247 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 17070, - "linearizedBaseContracts": [ - 17070, - 20932, - 22052, - 21324, - 22247 - ], - "name": "TestContractRegistryClient", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 17068, - "nodeType": "Block", - "src": "300:2:33", - "statements": [] - }, - "documentation": null, - "id": 17069, - "implemented": true, - "isConstructor": true, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 17065, - "name": "_registry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17062, - "src": "289:9:33", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IContractRegistry_$22220", - "typeString": "contract IContractRegistry" - } - } - ], - "id": 17066, - "modifierName": { - "argumentTypes": null, - "id": 17064, - "name": "ContractRegistryClient", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20932, - "src": "266:22:33", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ContractRegistryClient_$20932_$", - "typeString": "type(contract ContractRegistryClient)" - } - }, - "nodeType": "ModifierInvocation", - "src": "266:33:33" - } - ], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 17063, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 17062, - "name": "_registry", - "nodeType": "VariableDeclaration", - "scope": 17069, - "src": "230:27:33", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IContractRegistry_$22220", - "typeString": "contract IContractRegistry" - }, - "typeName": { - "contractScope": null, - "id": 17061, - "name": "IContractRegistry", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 22220, - "src": "230:17:33", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IContractRegistry_$22220", - "typeString": "contract IContractRegistry" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "229:29:33" - }, - "payable": false, - "returnParameters": { - "id": 17067, - "nodeType": "ParameterList", - "parameters": [], - "src": "300:0:33" - }, - "scope": 17070, - "src": "218:84:33", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 17071, - "src": "153:151:33" - } - ], - "src": "0:305:33" - }, - "id": 33 - }, - "solidity/contracts/helpers/TestConverterFactory.sol": { - "ast": { - "absolutePath": "solidity/contracts/helpers/TestConverterFactory.sol", - "exportedSymbols": { - "TestConverterFactory": [ - 17132 - ] - }, - "id": 17133, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 17072, - "literals": [ - "solidity", - "0.4", - ".26" - ], - "nodeType": "PragmaDirective", - "src": "0:23:34" - }, - { - "absolutePath": "solidity/contracts/converter/ConverterFactory.sol", - "file": "../converter/ConverterFactory.sol", - "id": 17073, - "nodeType": "ImportDirective", - "scope": 17133, - "sourceUnit": 3607, - "src": "24:43:34", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 17074, - "name": "ConverterFactory", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3606, - "src": "175:16:34", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ConverterFactory_$3606", - "typeString": "contract ConverterFactory" - } - }, - "id": 17075, - "nodeType": "InheritanceSpecifier", - "src": "175:16:34" - } - ], - "contractDependencies": [ - 3606, - 11871, - 21324, - 22247 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 17132, - "linearizedBaseContracts": [ - 17132, - 3606, - 21324, - 22247, - 11871 - ], - "name": "TestConverterFactory", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 17077, - "name": "createdConverter", - "nodeType": "VariableDeclaration", - "scope": 17132, - "src": "195:34:34", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - }, - "typeName": { - "contractScope": null, - "id": 17076, - "name": "IConverter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 11817, - "src": "195:10:34", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 17079, - "name": "createdAnchor", - "nodeType": "VariableDeclaration", - "scope": 17132, - "src": "232:37:34", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - }, - "typeName": { - "contractScope": null, - "id": 17078, - "name": "IConverterAnchor", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 11826, - "src": "232:16:34", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - }, - "value": null, - "visibility": "public" - }, - { - "body": { - "id": 17104, - "nodeType": "Block", - "src": "410:110:34", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 17100, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 17092, - "name": "createdAnchor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17079, - "src": "414:13:34", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 17095, - "name": "_converterType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17081, - "src": "449:14:34", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - { - "argumentTypes": null, - "id": 17096, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17083, - "src": "465:5:34", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 17097, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17085, - "src": "472:7:34", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 17098, - "name": "_decimals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17087, - "src": "481:9:34", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - ], - "expression": { - "argumentTypes": null, - "id": 17093, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22462, - "src": "430:5:34", - "typeDescriptions": { - "typeIdentifier": "t_super$_TestConverterFactory_$17132", - "typeString": "contract super TestConverterFactory" - } - }, - "id": 17094, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "createAnchor", - "nodeType": "MemberAccess", - "referencedDeclaration": 3559, - "src": "430:18:34", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint16_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_uint8_$returns$_t_contract$_IConverterAnchor_$11826_$", - "typeString": "function (uint16,string memory,string memory,uint8) returns (contract IConverterAnchor)" - } - }, - "id": 17099, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "430:61:34", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - }, - "src": "414:77:34", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - }, - "id": 17101, - "nodeType": "ExpressionStatement", - "src": "414:77:34" - }, - { - "expression": { - "argumentTypes": null, - "id": 17102, - "name": "createdAnchor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17079, - "src": "503:13:34", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - }, - "functionReturnParameters": 17091, - "id": 17103, - "nodeType": "Return", - "src": "496:20:34" - } - ] - }, - "documentation": null, - "id": 17105, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "createAnchor", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 17088, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 17081, - "name": "_converterType", - "nodeType": "VariableDeclaration", - "scope": 17105, - "src": "298:21:34", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 17080, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "298:6:34", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 17083, - "name": "_name", - "nodeType": "VariableDeclaration", - "scope": 17105, - "src": "323:12:34", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 17082, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "323:6:34", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 17085, - "name": "_symbol", - "nodeType": "VariableDeclaration", - "scope": 17105, - "src": "339:14:34", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 17084, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "339:6:34", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 17087, - "name": "_decimals", - "nodeType": "VariableDeclaration", - "scope": 17105, - "src": "357:15:34", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 17086, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "357:5:34", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "294:81:34" - }, - "payable": false, - "returnParameters": { - "id": 17091, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 17090, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 17105, - "src": "392:16:34", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - }, - "typeName": { - "contractScope": null, - "id": 17089, - "name": "IConverterAnchor", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 11826, - "src": "392:16:34", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "391:18:34" - }, - "scope": 17132, - "src": "273:247:34", - "stateMutability": "nonpayable", - "superFunction": 3559, - "visibility": "public" - }, - { - "body": { - "id": 17130, - "nodeType": "Block", - "src": "682:122:34", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 17126, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 17118, - "name": "createdConverter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17077, - "src": "686:16:34", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 17121, - "name": "_type", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17107, - "src": "727:5:34", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - { - "argumentTypes": null, - "id": 17122, - "name": "_anchor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17109, - "src": "734:7:34", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - }, - { - "argumentTypes": null, - "id": 17123, - "name": "_registry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17111, - "src": "743:9:34", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IContractRegistry_$22220", - "typeString": "contract IContractRegistry" - } - }, - { - "argumentTypes": null, - "id": 17124, - "name": "_maxConversionFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17113, - "src": "754:17:34", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - }, - { - "typeIdentifier": "t_contract$_IContractRegistry_$22220", - "typeString": "contract IContractRegistry" - }, - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - ], - "expression": { - "argumentTypes": null, - "id": 17119, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22462, - "src": "705:5:34", - "typeDescriptions": { - "typeIdentifier": "t_super$_TestConverterFactory_$17132", - "typeString": "contract super TestConverterFactory" - } - }, - "id": 17120, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "createConverter", - "nodeType": "MemberAccess", - "referencedDeclaration": 3605, - "src": "705:21:34", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint16_$_t_contract$_IConverterAnchor_$11826_$_t_contract$_IContractRegistry_$22220_$_t_uint32_$returns$_t_contract$_IConverter_$11817_$", - "typeString": "function (uint16,contract IConverterAnchor,contract IContractRegistry,uint32) returns (contract IConverter)" - } - }, - "id": 17125, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "705:67:34", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - "src": "686:86:34", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - "id": 17127, - "nodeType": "ExpressionStatement", - "src": "686:86:34" - }, - { - "expression": { - "argumentTypes": null, - "id": 17128, - "name": "createdConverter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17077, - "src": "784:16:34", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - "functionReturnParameters": 17117, - "id": 17129, - "nodeType": "Return", - "src": "777:23:34" - } - ] - }, - "documentation": null, - "id": 17131, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "createConverter", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 17114, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 17107, - "name": "_type", - "nodeType": "VariableDeclaration", - "scope": 17131, - "src": "551:12:34", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 17106, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "551:6:34", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 17109, - "name": "_anchor", - "nodeType": "VariableDeclaration", - "scope": 17131, - "src": "567:24:34", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - }, - "typeName": { - "contractScope": null, - "id": 17108, - "name": "IConverterAnchor", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 11826, - "src": "567:16:34", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 17111, - "name": "_registry", - "nodeType": "VariableDeclaration", - "scope": 17131, - "src": "595:27:34", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IContractRegistry_$22220", - "typeString": "contract IContractRegistry" - }, - "typeName": { - "contractScope": null, - "id": 17110, - "name": "IContractRegistry", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 22220, - "src": "595:17:34", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IContractRegistry_$22220", - "typeString": "contract IContractRegistry" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 17113, - "name": "_maxConversionFee", - "nodeType": "VariableDeclaration", - "scope": 17131, - "src": "626:24:34", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 17112, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "626:6:34", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "547:106:34" - }, - "payable": false, - "returnParameters": { - "id": 17117, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 17116, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 17131, - "src": "670:10:34", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - }, - "typeName": { - "contractScope": null, - "id": 17115, - "name": "IConverter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 11817, - "src": "670:10:34", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "669:12:34" - }, - "scope": 17132, - "src": "523:281:34", - "stateMutability": "nonpayable", - "superFunction": 3605, - "visibility": "public" - } - ], - "scope": 17133, - "src": "142:664:34" - } - ], - "src": "0:807:34" - }, - "id": 34 - }, - "solidity/contracts/helpers/TestConverterRegistry.sol": { - "ast": { - "absolutePath": "solidity/contracts/helpers/TestConverterRegistry.sol", - "exportedSymbols": { - "TestConverterRegistry": [ - 17186 - ] - }, - "id": 17187, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 17134, - "literals": [ - "solidity", - "0.4", - ".26" - ], - "nodeType": "PragmaDirective", - "src": "0:23:35" - }, - { - "absolutePath": "solidity/contracts/converter/ConverterRegistry.sol", - "file": "../converter/ConverterRegistry.sol", - "id": 17135, - "nodeType": "ImportDirective", - "scope": 17187, - "sourceUnit": 4966, - "src": "24:44:35", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 17136, - "name": "ConverterRegistry", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4965, - "src": "178:17:35", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ConverterRegistry_$4965", - "typeString": "contract ConverterRegistry" - } - }, - "id": 17137, - "nodeType": "InheritanceSpecifier", - "src": "178:17:35" - } - ], - "contractDependencies": [ - 4965, - 11982, - 20932, - 21324, - 21933, - 22052, - 22247 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 17186, - "linearizedBaseContracts": [ - 17186, - 4965, - 21933, - 20932, - 22052, - 21324, - 22247, - 11982 - ], - "name": "TestConverterRegistry", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 17139, - "name": "createdConverter", - "nodeType": "VariableDeclaration", - "scope": 17186, - "src": "199:34:35", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - }, - "typeName": { - "contractScope": null, - "id": 17138, - "name": "IConverter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 11817, - "src": "199:10:35", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - "value": null, - "visibility": "public" - }, - { - "body": { - "id": 17147, - "nodeType": "Block", - "src": "314:2:35", - "statements": [] - }, - "documentation": null, - "id": 17148, - "implemented": true, - "isConstructor": true, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 17144, - "name": "_registry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17141, - "src": "303:9:35", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IContractRegistry_$22220", - "typeString": "contract IContractRegistry" - } - } - ], - "id": 17145, - "modifierName": { - "argumentTypes": null, - "id": 17143, - "name": "ConverterRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4965, - "src": "285:17:35", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ConverterRegistry_$4965_$", - "typeString": "type(contract ConverterRegistry)" - } - }, - "nodeType": "ModifierInvocation", - "src": "285:28:35" - } - ], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 17142, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 17141, - "name": "_registry", - "nodeType": "VariableDeclaration", - "scope": 17148, - "src": "249:27:35", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IContractRegistry_$22220", - "typeString": "contract IContractRegistry" - }, - "typeName": { - "contractScope": null, - "id": 17140, - "name": "IContractRegistry", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 22220, - "src": "249:17:35", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IContractRegistry_$22220", - "typeString": "contract IContractRegistry" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "248:29:35" - }, - "payable": false, - "returnParameters": { - "id": 17146, - "nodeType": "ParameterList", - "parameters": [], - "src": "314:0:35" - }, - "scope": 17186, - "src": "237:79:35", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 17184, - "nodeType": "Block", - "src": "543:159:35", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 17180, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 17169, - "name": "createdConverter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17139, - "src": "547:16:35", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 17172, - "name": "_type", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17150, - "src": "585:5:35", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - { - "argumentTypes": null, - "id": 17173, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17152, - "src": "592:5:35", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 17174, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17154, - "src": "599:7:35", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 17175, - "name": "_decimals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17156, - "src": "608:9:35", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - { - "argumentTypes": null, - "id": 17176, - "name": "_maxConversionFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17158, - "src": "619:17:35", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - { - "argumentTypes": null, - "id": 17177, - "name": "_reserveTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17161, - "src": "638:14:35", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", - "typeString": "contract IERC20Token[] memory" - } - }, - { - "argumentTypes": null, - "id": 17178, - "name": "_reserveWeights", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17164, - "src": "654:15:35", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint32_$dyn_memory_ptr", - "typeString": "uint32[] memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", - "typeString": "contract IERC20Token[] memory" - }, - { - "typeIdentifier": "t_array$_t_uint32_$dyn_memory_ptr", - "typeString": "uint32[] memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 17170, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22464, - "src": "566:5:35", - "typeDescriptions": { - "typeIdentifier": "t_super$_TestConverterRegistry_$17186", - "typeString": "contract super TestConverterRegistry" - } - }, - "id": 17171, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "newConverter", - "nodeType": "MemberAccess", - "referencedDeclaration": 3761, - "src": "566:18:35", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint16_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_uint8_$_t_uint32_$_t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr_$_t_array$_t_uint32_$dyn_memory_ptr_$returns$_t_contract$_IConverter_$11817_$", - "typeString": "function (uint16,string memory,string memory,uint8,uint32,contract IERC20Token[] memory,uint32[] memory) returns (contract IConverter)" - } - }, - "id": 17179, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "566:104:35", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - "src": "547:123:35", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - "id": 17181, - "nodeType": "ExpressionStatement", - "src": "547:123:35" - }, - { - "expression": { - "argumentTypes": null, - "id": 17182, - "name": "createdConverter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17139, - "src": "682:16:35", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - "functionReturnParameters": 17168, - "id": 17183, - "nodeType": "Return", - "src": "675:23:35" - } - ] - }, - "documentation": null, - "id": 17185, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "newConverter", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 17165, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 17150, - "name": "_type", - "nodeType": "VariableDeclaration", - "scope": 17185, - "src": "344:12:35", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 17149, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "344:6:35", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 17152, - "name": "_name", - "nodeType": "VariableDeclaration", - "scope": 17185, - "src": "360:12:35", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 17151, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "360:6:35", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 17154, - "name": "_symbol", - "nodeType": "VariableDeclaration", - "scope": 17185, - "src": "376:14:35", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 17153, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "376:6:35", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 17156, - "name": "_decimals", - "nodeType": "VariableDeclaration", - "scope": 17185, - "src": "394:15:35", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 17155, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "394:5:35", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 17158, - "name": "_maxConversionFee", - "nodeType": "VariableDeclaration", - "scope": 17185, - "src": "413:24:35", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 17157, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "413:6:35", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 17161, - "name": "_reserveTokens", - "nodeType": "VariableDeclaration", - "scope": 17185, - "src": "441:35:35", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_memory_ptr", - "typeString": "contract IERC20Token[]" - }, - "typeName": { - "baseType": { - "contractScope": null, - "id": 17159, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "441:11:35", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "id": 17160, - "length": null, - "nodeType": "ArrayTypeName", - "src": "441:13:35", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20Token_$20240_$dyn_storage_ptr", - "typeString": "contract IERC20Token[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 17164, - "name": "_reserveWeights", - "nodeType": "VariableDeclaration", - "scope": 17185, - "src": "480:31:35", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint32_$dyn_memory_ptr", - "typeString": "uint32[]" - }, - "typeName": { - "baseType": { - "id": 17162, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "480:6:35", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "id": 17163, - "length": null, - "nodeType": "ArrayTypeName", - "src": "480:8:35", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint32_$dyn_storage_ptr", - "typeString": "uint32[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "340:174:35" - }, - "payable": false, - "returnParameters": { - "id": 17168, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 17167, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 17185, - "src": "531:10:35", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - }, - "typeName": { - "contractScope": null, - "id": 17166, - "name": "IConverter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 11817, - "src": "531:10:35", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "530:12:35" - }, - "scope": 17186, - "src": "319:383:35", - "stateMutability": "nonpayable", - "superFunction": 3761, - "visibility": "public" - } - ], - "scope": 17187, - "src": "144:560:35" - } - ], - "src": "0:705:35" - }, - "id": 35 - }, - "solidity/contracts/helpers/TestLiquidityPoolConverter.sol": { - "ast": { - "absolutePath": "solidity/contracts/helpers/TestLiquidityPoolConverter.sol", - "exportedSymbols": { - "TestLiquidityPoolConverter": [ - 17217 - ] - }, - "id": 17218, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 17188, - "literals": [ - "solidity", - "0.4", - ".26" - ], - "nodeType": "PragmaDirective", - "src": "0:23:36" - }, - { - "absolutePath": "solidity/contracts/converter/types/liquidity-pool-v1/LiquidityPoolV1Converter.sol", - "file": "../converter/types/liquidity-pool-v1/LiquidityPoolV1Converter.sol", - "id": 17189, - "nodeType": "ImportDirective", - "scope": 17218, - "sourceUnit": 14410, - "src": "24:75:36", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 17190, - "name": "LiquidityPoolV1Converter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 14409, - "src": "140:24:36", - "typeDescriptions": { - "typeIdentifier": "t_contract$_LiquidityPoolV1Converter_$14409", - "typeString": "contract LiquidityPoolV1Converter" - } - }, - "id": 17191, - "nodeType": "InheritanceSpecifier", - "src": "140:24:36" - } - ], - "contractDependencies": [ - 3414, - 6210, - 11817, - 14409, - 20932, - 21324, - 21710, - 21933, - 21976, - 22052, - 22247, - 22313 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 17217, - "linearizedBaseContracts": [ - 17217, - 14409, - 6210, - 3414, - 21710, - 20932, - 21976, - 22052, - 21324, - 21933, - 22313, - 11817, - 22247 - ], - "name": "TestLiquidityPoolConverter", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 17205, - "nodeType": "Block", - "src": "334:2:36", - "statements": [] - }, - "documentation": null, - "id": 17206, - "implemented": true, - "isConstructor": true, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 17200, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17193, - "src": "296:6:36", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISmartToken_$20295", - "typeString": "contract ISmartToken" - } - }, - { - "argumentTypes": null, - "id": 17201, - "name": "_registry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17195, - "src": "304:9:36", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IContractRegistry_$22220", - "typeString": "contract IContractRegistry" - } - }, - { - "argumentTypes": null, - "id": 17202, - "name": "_maxConversionFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17197, - "src": "315:17:36", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "id": 17203, - "modifierName": { - "argumentTypes": null, - "id": 17199, - "name": "LiquidityPoolV1Converter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14409, - "src": "271:24:36", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_LiquidityPoolV1Converter_$14409_$", - "typeString": "type(contract LiquidityPoolV1Converter)" - } - }, - "nodeType": "ModifierInvocation", - "src": "271:62:36" - } - ], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 17198, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 17193, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 17206, - "src": "183:18:36", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISmartToken_$20295", - "typeString": "contract ISmartToken" - }, - "typeName": { - "contractScope": null, - "id": 17192, - "name": "ISmartToken", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20295, - "src": "183:11:36", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISmartToken_$20295", - "typeString": "contract ISmartToken" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 17195, - "name": "_registry", - "nodeType": "VariableDeclaration", - "scope": 17206, - "src": "205:27:36", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IContractRegistry_$22220", - "typeString": "contract IContractRegistry" - }, - "typeName": { - "contractScope": null, - "id": 17194, - "name": "IContractRegistry", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 22220, - "src": "205:17:36", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IContractRegistry_$22220", - "typeString": "contract IContractRegistry" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 17197, - "name": "_maxConversionFee", - "nodeType": "VariableDeclaration", - "scope": 17206, - "src": "236:24:36", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 17196, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "236:6:36", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "179:84:36" - }, - "payable": false, - "returnParameters": { - "id": 17204, - "nodeType": "ParameterList", - "parameters": [], - "src": "334:0:36" - }, - "scope": 17217, - "src": "168:168:36", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 17215, - "nodeType": "Block", - "src": "394:32:36", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 17213, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 17211, - "name": "etherToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12931, - "src": "398:10:36", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IEtherToken_$20266", - "typeString": "contract IEtherToken" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 17212, - "name": "_etherToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17208, - "src": "411:11:36", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IEtherToken_$20266", - "typeString": "contract IEtherToken" - } - }, - "src": "398:24:36", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IEtherToken_$20266", - "typeString": "contract IEtherToken" - } - }, - "id": 17214, - "nodeType": "ExpressionStatement", - "src": "398:24:36" - } - ] - }, - "documentation": null, - "id": 17216, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "setEtherToken", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 17209, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 17208, - "name": "_etherToken", - "nodeType": "VariableDeclaration", - "scope": 17216, - "src": "362:23:36", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IEtherToken_$20266", - "typeString": "contract IEtherToken" - }, - "typeName": { - "contractScope": null, - "id": 17207, - "name": "IEtherToken", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20266, - "src": "362:11:36", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IEtherToken_$20266", - "typeString": "contract IEtherToken" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "361:25:36" - }, - "payable": false, - "returnParameters": { - "id": 17210, - "nodeType": "ParameterList", - "parameters": [], - "src": "394:0:36" - }, - "scope": 17217, - "src": "339:87:36", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 17218, - "src": "101:327:36" - } - ], - "src": "0:429:36" - }, - "id": 36 - }, - "solidity/contracts/helpers/TestLiquidityPoolV2Converter.sol": { - "ast": { - "absolutePath": "solidity/contracts/helpers/TestLiquidityPoolV2Converter.sol", - "exportedSymbols": { - "TestLiquidityPoolV2Converter": [ - 17321 - ] - }, - "id": 17322, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 17219, - "literals": [ - "solidity", - "0.4", - ".26" - ], - "nodeType": "PragmaDirective", - "src": "0:23:37" - }, - { - "absolutePath": "solidity/contracts/converter/types/liquidity-pool-v2/LiquidityPoolV2Converter.sol", - "file": "../converter/types/liquidity-pool-v2/LiquidityPoolV2Converter.sol", - "id": 17220, - "nodeType": "ImportDirective", - "scope": 17322, - "sourceUnit": 16611, - "src": "24:75:37", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 17221, - "name": "LiquidityPoolV2Converter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 16610, - "src": "142:24:37", - "typeDescriptions": { - "typeIdentifier": "t_contract$_LiquidityPoolV2Converter_$16610", - "typeString": "contract LiquidityPoolV2Converter" - } - }, - "id": 17222, - "nodeType": "InheritanceSpecifier", - "src": "142:24:37" - } - ], - "contractDependencies": [ - 3414, - 6210, - 11817, - 16610, - 20932, - 21324, - 21710, - 21933, - 21976, - 22052, - 22247, - 22313 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 17321, - "linearizedBaseContracts": [ - 17321, - 16610, - 6210, - 3414, - 21710, - 20932, - 21976, - 22052, - 21324, - 21933, - 22313, - 11817, - 22247 - ], - "name": "TestLiquidityPoolV2Converter", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 17224, - "name": "currentTime", - "nodeType": "VariableDeclaration", - "scope": 17321, - "src": "170:26:37", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 17223, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "170:7:37", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "body": { - "id": 17238, - "nodeType": "Block", - "src": "375:2:37", - "statements": [] - }, - "documentation": null, - "id": 17239, - "implemented": true, - "isConstructor": true, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 17233, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17226, - "src": "337:6:37", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IPoolTokensContainer_$17009", - "typeString": "contract IPoolTokensContainer" - } - }, - { - "argumentTypes": null, - "id": 17234, - "name": "_registry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17228, - "src": "345:9:37", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IContractRegistry_$22220", - "typeString": "contract IContractRegistry" - } - }, - { - "argumentTypes": null, - "id": 17235, - "name": "_maxConversionFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17230, - "src": "356:17:37", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "id": 17236, - "modifierName": { - "argumentTypes": null, - "id": 17232, - "name": "LiquidityPoolV2Converter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16610, - "src": "312:24:37", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_LiquidityPoolV2Converter_$16610_$", - "typeString": "type(contract LiquidityPoolV2Converter)" - } - }, - "nodeType": "ModifierInvocation", - "src": "312:62:37" - } - ], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 17231, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 17226, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 17239, - "src": "215:27:37", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IPoolTokensContainer_$17009", - "typeString": "contract IPoolTokensContainer" - }, - "typeName": { - "contractScope": null, - "id": 17225, - "name": "IPoolTokensContainer", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 17009, - "src": "215:20:37", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IPoolTokensContainer_$17009", - "typeString": "contract IPoolTokensContainer" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 17228, - "name": "_registry", - "nodeType": "VariableDeclaration", - "scope": 17239, - "src": "246:27:37", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IContractRegistry_$22220", - "typeString": "contract IContractRegistry" - }, - "typeName": { - "contractScope": null, - "id": 17227, - "name": "IContractRegistry", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 22220, - "src": "246:17:37", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IContractRegistry_$22220", - "typeString": "contract IContractRegistry" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 17230, - "name": "_maxConversionFee", - "nodeType": "VariableDeclaration", - "scope": 17239, - "src": "277:24:37", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 17229, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "277:6:37", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "211:93:37" - }, - "payable": false, - "returnParameters": { - "id": 17237, - "nodeType": "ParameterList", - "parameters": [], - "src": "375:0:37" - }, - "scope": 17321, - "src": "200:177:37", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 17248, - "nodeType": "Block", - "src": "457:58:37", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 17246, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 17244, - "name": "referenceRateUpdateTime", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14503, - "src": "461:23:37", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 17245, - "name": "_referenceRateUpdateTime", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17241, - "src": "487:24:37", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "461:50:37", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 17247, - "nodeType": "ExpressionStatement", - "src": "461:50:37" - } - ] - }, - "documentation": null, - "id": 17249, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "setReferenceRateUpdateTime", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 17242, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 17241, - "name": "_referenceRateUpdateTime", - "nodeType": "VariableDeclaration", - "scope": 17249, - "src": "416:32:37", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 17240, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "416:7:37", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "415:34:37" - }, - "payable": false, - "returnParameters": { - "id": 17243, - "nodeType": "ParameterList", - "parameters": [], - "src": "457:0:37" - }, - "scope": 17321, - "src": "380:135:37", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 17261, - "nodeType": "Block", - "src": "566:51:37", - "statements": [ - { - "expression": { - "argumentTypes": null, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 17256, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 17254, - "name": "currentTime", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17224, - "src": "577:11:37", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 17255, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "592:1:37", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "577:16:37", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "argumentTypes": null, - "id": 17258, - "name": "now", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22340, - "src": "610:3:37", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 17259, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "577:36:37", - "trueExpression": { - "argumentTypes": null, - "id": 17257, - "name": "currentTime", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17224, - "src": "596:11:37", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 17253, - "id": 17260, - "nodeType": "Return", - "src": "570:43:37" - } - ] - }, - "documentation": null, - "id": 17262, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "time", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 17250, - "nodeType": "ParameterList", - "parameters": [], - "src": "531:2:37" - }, - "payable": false, - "returnParameters": { - "id": 17253, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 17252, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 17262, - "src": "557:7:37", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 17251, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "557:7:37", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "556:9:37" - }, - "scope": 17321, - "src": "518:99:37", - "stateMutability": "view", - "superFunction": 16520, - "visibility": "internal" - }, - { - "body": { - "id": 17271, - "nodeType": "Block", - "src": "666:34:37", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 17269, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 17267, - "name": "currentTime", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17224, - "src": "670:11:37", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 17268, - "name": "_currentTime", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17264, - "src": "684:12:37", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "670:26:37", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 17270, - "nodeType": "ExpressionStatement", - "src": "670:26:37" - } - ] - }, - "documentation": null, - "id": 17272, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "setTime", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 17265, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 17264, - "name": "_currentTime", - "nodeType": "VariableDeclaration", - "scope": 17272, - "src": "637:20:37", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 17263, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "637:7:37", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "636:22:37" - }, - "payable": false, - "returnParameters": { - "id": 17266, - "nodeType": "ParameterList", - "parameters": [], - "src": "666:0:37" - }, - "scope": 17321, - "src": "620:80:37", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 17301, - "nodeType": "Block", - "src": "1006:235:37", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 17292, - "name": "_primaryReserveStaked", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17274, - "src": "1051:21:37", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 17293, - "name": "_secondaryReserveStaked", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17276, - "src": "1078:23:37", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 17294, - "name": "_primaryReserveWeight", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17278, - "src": "1107:21:37", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 17295, - "name": "_secondaryReserveWeight", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17280, - "src": "1134:23:37", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 17296, - "name": "_primaryReserveRate", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17282, - "src": "1163:19:37", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 17297, - "name": "_secondaryReserveRate", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17284, - "src": "1188:21:37", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 17298, - "name": "_dynamicFeeFactor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17286, - "src": "1215:17:37", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 17291, - "name": "calculateFeeToEquilibrium", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16046, - "src": "1020:25:37", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256,uint256,uint256,uint256,uint256,uint256,uint256) pure returns (uint256)" - } - }, - "id": 17299, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1020:217:37", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 17290, - "id": 17300, - "nodeType": "Return", - "src": "1010:227:37" - } - ] - }, - "documentation": null, - "id": 17302, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "calculateFeeToEquilibriumTest", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 17287, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 17274, - "name": "_primaryReserveStaked", - "nodeType": "VariableDeclaration", - "scope": 17302, - "src": "745:29:37", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 17273, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "745:7:37", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 17276, - "name": "_secondaryReserveStaked", - "nodeType": "VariableDeclaration", - "scope": 17302, - "src": "778:31:37", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 17275, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "778:7:37", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 17278, - "name": "_primaryReserveWeight", - "nodeType": "VariableDeclaration", - "scope": 17302, - "src": "813:29:37", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 17277, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "813:7:37", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 17280, - "name": "_secondaryReserveWeight", - "nodeType": "VariableDeclaration", - "scope": 17302, - "src": "846:31:37", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 17279, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "846:7:37", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 17282, - "name": "_primaryReserveRate", - "nodeType": "VariableDeclaration", - "scope": 17302, - "src": "881:27:37", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 17281, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "881:7:37", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 17284, - "name": "_secondaryReserveRate", - "nodeType": "VariableDeclaration", - "scope": 17302, - "src": "912:29:37", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 17283, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "912:7:37", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 17286, - "name": "_dynamicFeeFactor", - "nodeType": "VariableDeclaration", - "scope": 17302, - "src": "945:25:37", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 17285, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "945:7:37", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "741:232:37" - }, - "payable": false, - "returnParameters": { - "id": 17290, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 17289, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 17302, - "src": "997:7:37", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 17288, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "997:7:37", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "996:9:37" - }, - "scope": 17321, - "src": "703:538:37", - "stateMutability": "pure", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 17319, - "nodeType": "Block", - "src": "1348:48:37", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 17317, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 17312, - "name": "reserves", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2520, - "src": "1352:8:37", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Reserve_$2506_storage_$", - "typeString": "mapping(address => struct ConverterBase.Reserve storage ref)" - } - }, - "id": 17314, - "indexExpression": { - "argumentTypes": null, - "id": 17313, - "name": "_reserveToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17304, - "src": "1361:13:37", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1352:23:37", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Reserve_$2506_storage", - "typeString": "struct ConverterBase.Reserve storage ref" - } - }, - "id": 17315, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "weight", - "nodeType": "MemberAccess", - "referencedDeclaration": 2499, - "src": "1352:30:37", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 17316, - "name": "_weight", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17306, - "src": "1385:7:37", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "src": "1352:40:37", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "id": 17318, - "nodeType": "ExpressionStatement", - "src": "1352:40:37" - } - ] - }, - "documentation": null, - "id": 17320, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 17309, - "name": "_reserveToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17304, - "src": "1333:13:37", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - } - ], - "id": 17310, - "modifierName": { - "argumentTypes": null, - "id": 17308, - "name": "validReserve", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2642, - "src": "1320:12:37", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_contract$_IERC20Token_$20240_$", - "typeString": "modifier (contract IERC20Token)" - } - }, - "nodeType": "ModifierInvocation", - "src": "1320:27:37" - } - ], - "name": "setReserveWeight", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 17307, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 17304, - "name": "_reserveToken", - "nodeType": "VariableDeclaration", - "scope": 17320, - "src": "1270:25:37", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - "typeName": { - "contractScope": null, - "id": 17303, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "1270:11:37", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 17306, - "name": "_weight", - "nodeType": "VariableDeclaration", - "scope": 17320, - "src": "1297:14:37", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 17305, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "1297:6:37", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1269:43:37" - }, - "payable": false, - "returnParameters": { - "id": 17311, - "nodeType": "ParameterList", - "parameters": [], - "src": "1348:0:37" - }, - "scope": 17321, - "src": "1244:152:37", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 17322, - "src": "101:1297:37" - } - ], - "src": "0:1399:37" - }, - "id": 37 - }, - "solidity/contracts/helpers/TestReentrancyGuard.sol": { - "ast": { - "absolutePath": "solidity/contracts/helpers/TestReentrancyGuard.sol", - "exportedSymbols": { - "TestReentrancyGuard": [ - 17435 - ], - "TestReentrancyGuardAttacker": [ - 17400 - ] - }, - "id": 17436, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 17323, - "literals": [ - "solidity", - "0.4", - ".26" - ], - "nodeType": "PragmaDirective", - "src": "0:23:38" - }, - { - "absolutePath": "solidity/contracts/utility/ReentrancyGuard.sol", - "file": "../utility/ReentrancyGuard.sol", - "id": 17324, - "nodeType": "ImportDirective", - "scope": 17436, - "sourceUnit": 21711, - "src": "24:40:38", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 17400, - "linearizedBaseContracts": [ - 17400 - ], - "name": "TestReentrancyGuardAttacker", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 17326, - "name": "target", - "nodeType": "VariableDeclaration", - "scope": 17400, - "src": "106:33:38", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_TestReentrancyGuard_$17435", - "typeString": "contract TestReentrancyGuard" - }, - "typeName": { - "contractScope": null, - "id": 17325, - "name": "TestReentrancyGuard", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 17435, - "src": "106:19:38", - "typeDescriptions": { - "typeIdentifier": "t_contract$_TestReentrancyGuard_$17435", - "typeString": "contract TestReentrancyGuard" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 17328, - "name": "reentrancy", - "nodeType": "VariableDeclaration", - "scope": 17400, - "src": "142:22:38", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 17327, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "142:4:38", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 17330, - "name": "callProtectedMethod", - "nodeType": "VariableDeclaration", - "scope": 17400, - "src": "167:31:38", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 17329, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "167:4:38", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 17332, - "name": "attacking", - "nodeType": "VariableDeclaration", - "scope": 17400, - "src": "201:21:38", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 17331, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "201:4:38", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "public" - }, - { - "body": { - "id": 17341, - "nodeType": "Block", - "src": "274:24:38", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 17339, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 17337, - "name": "target", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17326, - "src": "278:6:38", - "typeDescriptions": { - "typeIdentifier": "t_contract$_TestReentrancyGuard_$17435", - "typeString": "contract TestReentrancyGuard" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 17338, - "name": "_target", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17334, - "src": "287:7:38", - "typeDescriptions": { - "typeIdentifier": "t_contract$_TestReentrancyGuard_$17435", - "typeString": "contract TestReentrancyGuard" - } - }, - "src": "278:16:38", - "typeDescriptions": { - "typeIdentifier": "t_contract$_TestReentrancyGuard_$17435", - "typeString": "contract TestReentrancyGuard" - } - }, - "id": 17340, - "nodeType": "ExpressionStatement", - "src": "278:16:38" - } - ] - }, - "documentation": null, - "id": 17342, - "implemented": true, - "isConstructor": true, - "isDeclaredConst": false, - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 17335, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 17334, - "name": "_target", - "nodeType": "VariableDeclaration", - "scope": 17342, - "src": "238:27:38", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_TestReentrancyGuard_$17435", - "typeString": "contract TestReentrancyGuard" - }, - "typeName": { - "contractScope": null, - "id": 17333, - "name": "TestReentrancyGuard", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 17435, - "src": "238:19:38", - "typeDescriptions": { - "typeIdentifier": "t_contract$_TestReentrancyGuard_$17435", - "typeString": "contract TestReentrancyGuard" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "237:29:38" - }, - "payable": false, - "returnParameters": { - "id": 17336, - "nodeType": "ParameterList", - "parameters": [], - "src": "274:0:38" - }, - "scope": 17400, - "src": "226:72:38", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 17351, - "nodeType": "Block", - "src": "351:32:38", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 17349, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 17347, - "name": "reentrancy", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17328, - "src": "355:10:38", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 17348, - "name": "_reentrancy", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17344, - "src": "368:11:38", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "355:24:38", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 17350, - "nodeType": "ExpressionStatement", - "src": "355:24:38" - } - ] - }, - "documentation": null, - "id": 17352, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "setReentrancy", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 17345, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 17344, - "name": "_reentrancy", - "nodeType": "VariableDeclaration", - "scope": 17352, - "src": "324:16:38", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 17343, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "324:4:38", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "323:18:38" - }, - "payable": false, - "returnParameters": { - "id": 17346, - "nodeType": "ParameterList", - "parameters": [], - "src": "351:0:38" - }, - "scope": 17400, - "src": "301:82:38", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 17361, - "nodeType": "Block", - "src": "454:50:38", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 17359, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 17357, - "name": "callProtectedMethod", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17330, - "src": "458:19:38", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 17358, - "name": "_callProtectedMethod", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17354, - "src": "480:20:38", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "458:42:38", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 17360, - "nodeType": "ExpressionStatement", - "src": "458:42:38" - } - ] - }, - "documentation": null, - "id": 17362, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "setCallProtectedMethod", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 17355, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 17354, - "name": "_callProtectedMethod", - "nodeType": "VariableDeclaration", - "scope": 17362, - "src": "418:25:38", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 17353, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "418:4:38", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "417:27:38" - }, - "payable": false, - "returnParameters": { - "id": 17356, - "nodeType": "ParameterList", - "parameters": [], - "src": "454:0:38" - }, - "scope": 17400, - "src": "386:118:38", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 17374, - "nodeType": "Block", - "src": "529:83:38", - "statements": [ - { - "expression": { - "argumentTypes": null, - "condition": { - "argumentTypes": null, - "id": 17365, - "name": "callProtectedMethod", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17330, - "src": "533:19:38", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 17369, - "name": "target", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17326, - "src": "582:6:38", - "typeDescriptions": { - "typeIdentifier": "t_contract$_TestReentrancyGuard_$17435", - "typeString": "contract TestReentrancyGuard" - } - }, - "id": 17370, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "unprotectedMethod", - "nodeType": "MemberAccess", - "referencedDeclaration": 17420, - "src": "582:24:38", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$__$returns$__$", - "typeString": "function () external" - } - }, - "id": 17371, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "582:26:38", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 17372, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "533:75:38", - "trueExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 17366, - "name": "target", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17326, - "src": "555:6:38", - "typeDescriptions": { - "typeIdentifier": "t_contract$_TestReentrancyGuard_$17435", - "typeString": "contract TestReentrancyGuard" - } - }, - "id": 17367, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "protectedMethod", - "nodeType": "MemberAccess", - "referencedDeclaration": 17413, - "src": "555:22:38", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$__$returns$__$", - "typeString": "function () external" - } - }, - "id": 17368, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "555:24:38", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 17373, - "nodeType": "ExpressionStatement", - "src": "533:75:38" - } - ] - }, - "documentation": null, - "id": 17375, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "run", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 17363, - "nodeType": "ParameterList", - "parameters": [], - "src": "519:2:38" - }, - "payable": false, - "returnParameters": { - "id": 17364, - "nodeType": "ParameterList", - "parameters": [], - "src": "529:0:38" - }, - "scope": 17400, - "src": "507:105:38", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 17398, - "nodeType": "Block", - "src": "644:119:38", - "statements": [ - { - "condition": { - "argumentTypes": null, - "id": 17379, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "652:11:38", - "subExpression": { - "argumentTypes": null, - "id": 17378, - "name": "reentrancy", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17328, - "src": "653:10:38", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 17382, - "nodeType": "IfStatement", - "src": "648:33:38", - "trueBody": { - "id": 17381, - "nodeType": "Block", - "src": "665:16:38", - "statements": [ - { - "expression": null, - "functionReturnParameters": 17377, - "id": 17380, - "nodeType": "Return", - "src": "670:7:38" - } - ] - } - }, - { - "condition": { - "argumentTypes": null, - "id": 17384, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "689:10:38", - "subExpression": { - "argumentTypes": null, - "id": 17383, - "name": "attacking", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17332, - "src": "690:9:38", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 17393, - "nodeType": "IfStatement", - "src": "685:53:38", - "trueBody": { - "id": 17392, - "nodeType": "Block", - "src": "701:37:38", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 17387, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 17385, - "name": "attacking", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17332, - "src": "706:9:38", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 17386, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "718:4:38", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "706:16:38", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 17388, - "nodeType": "ExpressionStatement", - "src": "706:16:38" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 17389, - "name": "run", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17375, - "src": "728:3:38", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", - "typeString": "function ()" - } - }, - "id": 17390, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "728:5:38", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 17391, - "nodeType": "ExpressionStatement", - "src": "728:5:38" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "id": 17396, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 17394, - "name": "attacking", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17332, - "src": "742:9:38", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 17395, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "754:5:38", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "src": "742:17:38", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 17397, - "nodeType": "ExpressionStatement", - "src": "742:17:38" - } - ] - }, - "documentation": null, - "id": 17399, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "callback", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 17376, - "nodeType": "ParameterList", - "parameters": [], - "src": "632:2:38" - }, - "payable": false, - "returnParameters": { - "id": 17377, - "nodeType": "ParameterList", - "parameters": [], - "src": "644:0:38" - }, - "scope": 17400, - "src": "615:148:38", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - } - ], - "scope": 17436, - "src": "66:699:38" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 17401, - "name": "ReentrancyGuard", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 21710, - "src": "799:15:38", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ReentrancyGuard_$21710", - "typeString": "contract ReentrancyGuard" - } - }, - "id": 17402, - "nodeType": "InheritanceSpecifier", - "src": "799:15:38" - } - ], - "contractDependencies": [ - 21710 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 17435, - "linearizedBaseContracts": [ - 17435, - 21710 - ], - "name": "TestReentrancyGuard", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 17404, - "name": "calls", - "nodeType": "VariableDeclaration", - "scope": 17435, - "src": "818:20:38", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 17403, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "818:7:38", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "body": { - "id": 17412, - "nodeType": "Block", - "src": "888:13:38", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 17409, - "name": "run", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17434, - "src": "892:3:38", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", - "typeString": "function ()" - } - }, - "id": 17410, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "892:5:38", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 17411, - "nodeType": "ExpressionStatement", - "src": "892:5:38" - } - ] - }, - "documentation": null, - "id": 17413, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 17407, - "modifierName": { - "argumentTypes": null, - "id": 17406, - "name": "protected", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21698, - "src": "878:9:38", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "878:9:38" - } - ], - "name": "protectedMethod", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 17405, - "nodeType": "ParameterList", - "parameters": [], - "src": "866:2:38" - }, - "payable": false, - "returnParameters": { - "id": 17408, - "nodeType": "ParameterList", - "parameters": [], - "src": "888:0:38" - }, - "scope": 17435, - "src": "842:59:38", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 17419, - "nodeType": "Block", - "src": "942:13:38", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 17416, - "name": "run", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17434, - "src": "946:3:38", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", - "typeString": "function ()" - } - }, - "id": 17417, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "946:5:38", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 17418, - "nodeType": "ExpressionStatement", - "src": "946:5:38" - } - ] - }, - "documentation": null, - "id": 17420, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "unprotectedMethod", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 17414, - "nodeType": "ParameterList", - "parameters": [], - "src": "930:2:38" - }, - "payable": false, - "returnParameters": { - "id": 17415, - "nodeType": "ParameterList", - "parameters": [], - "src": "942:0:38" - }, - "scope": 17435, - "src": "904:51:38", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 17433, - "nodeType": "Block", - "src": "981:70:38", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 17424, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "985:7:38", - "subExpression": { - "argumentTypes": null, - "id": 17423, - "name": "calls", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17404, - "src": "985:5:38", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 17425, - "nodeType": "ExpressionStatement", - "src": "985:7:38" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 17427, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22338, - "src": "1025:3:38", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 17428, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1025:10:38", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 17426, - "name": "TestReentrancyGuardAttacker", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17400, - "src": "997:27:38", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_TestReentrancyGuardAttacker_$17400_$", - "typeString": "type(contract TestReentrancyGuardAttacker)" - } - }, - "id": 17429, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "997:39:38", - "typeDescriptions": { - "typeIdentifier": "t_contract$_TestReentrancyGuardAttacker_$17400", - "typeString": "contract TestReentrancyGuardAttacker" - } - }, - "id": 17430, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "callback", - "nodeType": "MemberAccess", - "referencedDeclaration": 17399, - "src": "997:48:38", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$__$returns$__$", - "typeString": "function () external" - } - }, - "id": 17431, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "997:50:38", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 17432, - "nodeType": "ExpressionStatement", - "src": "997:50:38" - } - ] - }, - "documentation": null, - "id": 17434, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "run", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 17421, - "nodeType": "ParameterList", - "parameters": [], - "src": "970:2:38" - }, - "payable": false, - "returnParameters": { - "id": 17422, - "nodeType": "ParameterList", - "parameters": [], - "src": "981:0:38" - }, - "scope": 17435, - "src": "958:93:38", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - } - ], - "scope": 17436, - "src": "767:286:38" - } - ], - "src": "0:1054:38" - }, - "id": 38 - }, - "solidity/contracts/helpers/TestSafeMath.sol": { - "ast": { - "absolutePath": "solidity/contracts/helpers/TestSafeMath.sol", - "exportedSymbols": { - "TestSafeMath": [ - 17502 - ] - }, - "id": 17503, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 17437, - "literals": [ - "solidity", - "0.4", - ".26" - ], - "nodeType": "PragmaDirective", - "src": "0:23:39" - }, - { - "absolutePath": "solidity/contracts/utility/SafeMath.sol", - "file": "../utility/SafeMath.sol", - "id": 17438, - "nodeType": "ImportDirective", - "scope": 17503, - "sourceUnit": 21818, - "src": "24:33:39", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 17502, - "linearizedBaseContracts": [ - 17502 - ], - "name": "TestSafeMath", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 17441, - "libraryName": { - "contractScope": null, - "id": 17439, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 21817, - "src": "155:8:39", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$21817", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "149:27:39", - "typeName": { - "id": 17440, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "168:7:39", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "body": { - "id": 17455, - "nodeType": "Block", - "src": "254:25:39", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 17452, - "name": "_y", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17445, - "src": "272:2:39", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 17450, - "name": "_x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17443, - "src": "265:2:39", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 17451, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 21737, - "src": "265:6:39", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 17453, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "265:10:39", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 17449, - "id": 17454, - "nodeType": "Return", - "src": "258:17:39" - } - ] - }, - "documentation": null, - "id": 17456, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "testSafeAdd", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 17446, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 17443, - "name": "_x", - "nodeType": "VariableDeclaration", - "scope": 17456, - "src": "200:10:39", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 17442, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "200:7:39", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 17445, - "name": "_y", - "nodeType": "VariableDeclaration", - "scope": 17456, - "src": "212:10:39", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 17444, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "212:7:39", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "199:24:39" - }, - "payable": false, - "returnParameters": { - "id": 17449, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 17448, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 17456, - "src": "245:7:39", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 17447, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "245:7:39", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "244:9:39" - }, - "scope": 17502, - "src": "179:100:39", - "stateMutability": "pure", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 17470, - "nodeType": "Block", - "src": "357:25:39", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 17467, - "name": "_y", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17460, - "src": "375:2:39", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 17465, - "name": "_x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17458, - "src": "368:2:39", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 17466, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 21758, - "src": "368:6:39", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 17468, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "368:10:39", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 17464, - "id": 17469, - "nodeType": "Return", - "src": "361:17:39" - } - ] - }, - "documentation": null, - "id": 17471, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "testSafeSub", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 17461, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 17458, - "name": "_x", - "nodeType": "VariableDeclaration", - "scope": 17471, - "src": "303:10:39", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 17457, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "303:7:39", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 17460, - "name": "_y", - "nodeType": "VariableDeclaration", - "scope": 17471, - "src": "315:10:39", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 17459, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "315:7:39", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "302:24:39" - }, - "payable": false, - "returnParameters": { - "id": 17464, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 17463, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 17471, - "src": "348:7:39", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 17462, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "348:7:39", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "347:9:39" - }, - "scope": 17502, - "src": "282:100:39", - "stateMutability": "pure", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 17485, - "nodeType": "Block", - "src": "460:25:39", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 17482, - "name": "_y", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17475, - "src": "478:2:39", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 17480, - "name": "_x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17473, - "src": "471:2:39", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 17481, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 21791, - "src": "471:6:39", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 17483, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "471:10:39", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 17479, - "id": 17484, - "nodeType": "Return", - "src": "464:17:39" - } - ] - }, - "documentation": null, - "id": 17486, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "testSafeMul", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 17476, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 17473, - "name": "_x", - "nodeType": "VariableDeclaration", - "scope": 17486, - "src": "406:10:39", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 17472, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "406:7:39", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 17475, - "name": "_y", - "nodeType": "VariableDeclaration", - "scope": 17486, - "src": "418:10:39", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 17474, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "418:7:39", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "405:24:39" - }, - "payable": false, - "returnParameters": { - "id": 17479, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 17478, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 17486, - "src": "451:7:39", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 17477, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "451:7:39", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "450:9:39" - }, - "scope": 17502, - "src": "385:100:39", - "stateMutability": "pure", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 17500, - "nodeType": "Block", - "src": "563:25:39", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 17497, - "name": "_y", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17490, - "src": "581:2:39", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 17495, - "name": "_x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17488, - "src": "574:2:39", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 17496, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "div", - "nodeType": "MemberAccess", - "referencedDeclaration": 21816, - "src": "574:6:39", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 17498, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "574:10:39", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 17494, - "id": 17499, - "nodeType": "Return", - "src": "567:17:39" - } - ] - }, - "documentation": null, - "id": 17501, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "testSafeDiv", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 17491, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 17488, - "name": "_x", - "nodeType": "VariableDeclaration", - "scope": 17501, - "src": "509:10:39", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 17487, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "509:7:39", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 17490, - "name": "_y", - "nodeType": "VariableDeclaration", - "scope": 17501, - "src": "521:10:39", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 17489, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "521:7:39", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "508:24:39" - }, - "payable": false, - "returnParameters": { - "id": 17494, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 17493, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 17501, - "src": "554:7:39", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 17492, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "554:7:39", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "553:9:39" - }, - "scope": 17502, - "src": "488:100:39", - "stateMutability": "pure", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 17503, - "src": "124:466:39" - } - ], - "src": "0:591:39" - }, - "id": 39 - }, - "solidity/contracts/helpers/TestSovrynSwapFormula.sol": { - "ast": { - "absolutePath": "solidity/contracts/helpers/TestSovrynSwapFormula.sol", - "exportedSymbols": { - "TestSovrynSwapFormula": [ - 17665 - ] - }, - "id": 17666, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 17504, - "literals": [ - "solidity", - "0.4", - ".26" - ], - "nodeType": "PragmaDirective", - "src": "0:23:40" - }, - { - "absolutePath": "solidity/contracts/converter/SovrynSwapFormula.sol", - "file": "../converter/SovrynSwapFormula.sol", - "id": 17505, - "nodeType": "ImportDirective", - "scope": 17666, - "sourceUnit": 11643, - "src": "24:44:40", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 17506, - "name": "SovrynSwapFormula", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 11642, - "src": "190:17:40", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SovrynSwapFormula_$11642", - "typeString": "contract SovrynSwapFormula" - } - }, - "id": 17507, - "nodeType": "InheritanceSpecifier", - "src": "190:17:40" - } - ], - "contractDependencies": [ - 11642, - 12240 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 17665, - "linearizedBaseContracts": [ - 17665, - 11642, - 12240 - ], - "name": "TestSovrynSwapFormula", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 17530, - "nodeType": "Block", - "src": "340:56:40", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 17524, - "name": "_baseN", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17509, - "src": "363:6:40", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 17525, - "name": "_baseD", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17511, - "src": "371:6:40", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 17526, - "name": "_expN", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17513, - "src": "379:5:40", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - { - "argumentTypes": null, - "id": 17527, - "name": "_expD", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17515, - "src": "386:5:40", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - ], - "expression": { - "argumentTypes": null, - "id": 17522, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22476, - "src": "351:5:40", - "typeDescriptions": { - "typeIdentifier": "t_super$_TestSovrynSwapFormula_$17665", - "typeString": "contract super TestSovrynSwapFormula" - } - }, - "id": 17523, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "power", - "nodeType": "MemberAccess", - "referencedDeclaration": 8457, - "src": "351:11:40", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint256_$_t_uint32_$_t_uint32_$returns$_t_uint256_$_t_uint8_$", - "typeString": "function (uint256,uint256,uint32,uint32) view returns (uint256,uint8)" - } - }, - "id": 17528, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "351:41:40", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint8_$", - "typeString": "tuple(uint256,uint8)" - } - }, - "functionReturnParameters": 17521, - "id": 17529, - "nodeType": "Return", - "src": "344:48:40" - } - ] - }, - "documentation": null, - "id": 17531, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "powerTest", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 17516, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 17509, - "name": "_baseN", - "nodeType": "VariableDeclaration", - "scope": 17531, - "src": "233:14:40", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 17508, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "233:7:40", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 17511, - "name": "_baseD", - "nodeType": "VariableDeclaration", - "scope": 17531, - "src": "251:14:40", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 17510, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "251:7:40", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 17513, - "name": "_expN", - "nodeType": "VariableDeclaration", - "scope": 17531, - "src": "269:12:40", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 17512, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "269:6:40", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 17515, - "name": "_expD", - "nodeType": "VariableDeclaration", - "scope": 17531, - "src": "285:12:40", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 17514, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "285:6:40", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "229:71:40" - }, - "payable": false, - "returnParameters": { - "id": 17521, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 17518, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 17531, - "src": "324:7:40", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 17517, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "324:7:40", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 17520, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 17531, - "src": "333:5:40", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 17519, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "333:5:40", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "323:16:40" - }, - "scope": 17665, - "src": "211:185:40", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 17543, - "nodeType": "Block", - "src": "466:34:40", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 17540, - "name": "x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17533, - "src": "494:1:40", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 17538, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22476, - "src": "477:5:40", - "typeDescriptions": { - "typeIdentifier": "t_super$_TestSovrynSwapFormula_$17665", - "typeString": "contract super TestSovrynSwapFormula" - } - }, - "id": 17539, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "generalLog", - "nodeType": "MemberAccess", - "referencedDeclaration": 8543, - "src": "477:16:40", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256) pure returns (uint256)" - } - }, - "id": 17541, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "477:19:40", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 17537, - "id": 17542, - "nodeType": "Return", - "src": "470:26:40" - } - ] - }, - "documentation": null, - "id": 17544, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "generalLogTest", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 17534, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 17533, - "name": "x", - "nodeType": "VariableDeclaration", - "scope": 17544, - "src": "423:9:40", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 17532, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "423:7:40", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "422:11:40" - }, - "payable": false, - "returnParameters": { - "id": 17537, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 17536, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 17544, - "src": "457:7:40", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 17535, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "457:7:40", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "456:9:40" - }, - "scope": 17665, - "src": "399:101:40", - "stateMutability": "pure", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 17556, - "nodeType": "Block", - "src": "568:34:40", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 17553, - "name": "_n", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17546, - "src": "595:2:40", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 17551, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22476, - "src": "579:5:40", - "typeDescriptions": { - "typeIdentifier": "t_super$_TestSovrynSwapFormula_$17665", - "typeString": "contract super TestSovrynSwapFormula" - } - }, - "id": 17552, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "floorLog2", - "nodeType": "MemberAccess", - "referencedDeclaration": 8605, - "src": "579:15:40", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint8_$", - "typeString": "function (uint256) pure returns (uint8)" - } - }, - "id": 17554, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "579:19:40", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "functionReturnParameters": 17550, - "id": 17555, - "nodeType": "Return", - "src": "572:26:40" - } - ] - }, - "documentation": null, - "id": 17557, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "floorLog2Test", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 17547, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 17546, - "name": "_n", - "nodeType": "VariableDeclaration", - "scope": 17557, - "src": "526:10:40", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 17545, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "526:7:40", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "525:12:40" - }, - "payable": false, - "returnParameters": { - "id": 17550, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 17549, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 17557, - "src": "561:5:40", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 17548, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "561:5:40", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "560:7:40" - }, - "scope": 17665, - "src": "503:99:40", - "stateMutability": "pure", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 17569, - "nodeType": "Block", - "src": "686:50:40", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 17566, - "name": "_x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17559, - "src": "729:2:40", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 17564, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22476, - "src": "697:5:40", - "typeDescriptions": { - "typeIdentifier": "t_super$_TestSovrynSwapFormula_$17665", - "typeString": "contract super TestSovrynSwapFormula" - } - }, - "id": 17565, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "findPositionInMaxExpArray", - "nodeType": "MemberAccess", - "referencedDeclaration": 8671, - "src": "697:31:40", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint8_$", - "typeString": "function (uint256) view returns (uint8)" - } - }, - "id": 17567, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "697:35:40", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "functionReturnParameters": 17563, - "id": 17568, - "nodeType": "Return", - "src": "690:42:40" - } - ] - }, - "documentation": null, - "id": 17570, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "findPositionInMaxExpArrayTest", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 17560, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 17559, - "name": "_x", - "nodeType": "VariableDeclaration", - "scope": 17570, - "src": "644:10:40", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 17558, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "644:7:40", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "643:12:40" - }, - "payable": false, - "returnParameters": { - "id": 17563, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 17562, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 17570, - "src": "679:5:40", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 17561, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "679:5:40", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "678:7:40" - }, - "scope": 17665, - "src": "605:131:40", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 17585, - "nodeType": "Block", - "src": "825:47:40", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 17581, - "name": "_x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17572, - "src": "853:2:40", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 17582, - "name": "_precision", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17574, - "src": "857:10:40", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - ], - "expression": { - "argumentTypes": null, - "id": 17579, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22476, - "src": "836:5:40", - "typeDescriptions": { - "typeIdentifier": "t_super$_TestSovrynSwapFormula_$17665", - "typeString": "contract super TestSovrynSwapFormula" - } - }, - "id": 17580, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "generalExp", - "nodeType": "MemberAccess", - "referencedDeclaration": 9180, - "src": "836:16:40", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint8_$returns$_t_uint256_$", - "typeString": "function (uint256,uint8) pure returns (uint256)" - } - }, - "id": 17583, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "836:32:40", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 17578, - "id": 17584, - "nodeType": "Return", - "src": "829:39:40" - } - ] - }, - "documentation": null, - "id": 17586, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "generalExpTest", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 17575, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 17572, - "name": "_x", - "nodeType": "VariableDeclaration", - "scope": 17586, - "src": "763:10:40", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 17571, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "763:7:40", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 17574, - "name": "_precision", - "nodeType": "VariableDeclaration", - "scope": 17586, - "src": "775:16:40", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 17573, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "775:5:40", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "762:30:40" - }, - "payable": false, - "returnParameters": { - "id": 17578, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 17577, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 17586, - "src": "816:7:40", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 17576, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "816:7:40", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "815:9:40" - }, - "scope": 17665, - "src": "739:133:40", - "stateMutability": "pure", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 17598, - "nodeType": "Block", - "src": "942:34:40", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 17595, - "name": "x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17588, - "src": "970:1:40", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 17593, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22476, - "src": "953:5:40", - "typeDescriptions": { - "typeIdentifier": "t_super$_TestSovrynSwapFormula_$17665", - "typeString": "contract super TestSovrynSwapFormula" - } - }, - "id": 17594, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "optimalLog", - "nodeType": "MemberAccess", - "referencedDeclaration": 9523, - "src": "953:16:40", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256) pure returns (uint256)" - } - }, - "id": 17596, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "953:19:40", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 17592, - "id": 17597, - "nodeType": "Return", - "src": "946:26:40" - } - ] - }, - "documentation": null, - "id": 17599, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "optimalLogTest", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 17589, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 17588, - "name": "x", - "nodeType": "VariableDeclaration", - "scope": 17599, - "src": "899:9:40", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 17587, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "899:7:40", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "898:11:40" - }, - "payable": false, - "returnParameters": { - "id": 17592, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 17591, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 17599, - "src": "933:7:40", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 17590, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "933:7:40", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "932:9:40" - }, - "scope": 17665, - "src": "875:101:40", - "stateMutability": "pure", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 17611, - "nodeType": "Block", - "src": "1046:34:40", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 17608, - "name": "x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17601, - "src": "1074:1:40", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 17606, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22476, - "src": "1057:5:40", - "typeDescriptions": { - "typeIdentifier": "t_super$_TestSovrynSwapFormula_$17665", - "typeString": "contract super TestSovrynSwapFormula" - } - }, - "id": 17607, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "optimalExp", - "nodeType": "MemberAccess", - "referencedDeclaration": 9958, - "src": "1057:16:40", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256) pure returns (uint256)" - } - }, - "id": 17609, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1057:19:40", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 17605, - "id": 17610, - "nodeType": "Return", - "src": "1050:26:40" - } - ] - }, - "documentation": null, - "id": 17612, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "optimalExpTest", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 17602, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 17601, - "name": "x", - "nodeType": "VariableDeclaration", - "scope": 17612, - "src": "1003:9:40", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 17600, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1003:7:40", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1002:11:40" - }, - "payable": false, - "returnParameters": { - "id": 17605, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 17604, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 17612, - "src": "1037:7:40", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 17603, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1037:7:40", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1036:9:40" - }, - "scope": 17665, - "src": "979:101:40", - "stateMutability": "pure", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 17629, - "nodeType": "Block", - "src": "1177:46:40", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 17625, - "name": "_a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17614, - "src": "1212:2:40", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 17626, - "name": "_b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17616, - "src": "1216:2:40", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 17623, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22476, - "src": "1188:5:40", - "typeDescriptions": { - "typeIdentifier": "t_super$_TestSovrynSwapFormula_$17665", - "typeString": "contract super TestSovrynSwapFormula" - } - }, - "id": 17624, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "normalizedWeights", - "nodeType": "MemberAccess", - "referencedDeclaration": 11334, - "src": "1188:23:40", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint32_$_t_uint32_$", - "typeString": "function (uint256,uint256) pure returns (uint32,uint32)" - } - }, - "id": 17627, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1188:31:40", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint32_$_t_uint32_$", - "typeString": "tuple(uint32,uint32)" - } - }, - "functionReturnParameters": 17622, - "id": 17628, - "nodeType": "Return", - "src": "1181:38:40" - } - ] - }, - "documentation": null, - "id": 17630, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "normalizedWeightsTest", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 17617, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 17614, - "name": "_a", - "nodeType": "VariableDeclaration", - "scope": 17630, - "src": "1114:10:40", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 17613, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1114:7:40", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 17616, - "name": "_b", - "nodeType": "VariableDeclaration", - "scope": 17630, - "src": "1126:10:40", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 17615, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1126:7:40", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1113:24:40" - }, - "payable": false, - "returnParameters": { - "id": 17622, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 17619, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 17630, - "src": "1161:6:40", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 17618, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "1161:6:40", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 17621, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 17630, - "src": "1169:6:40", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 17620, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "1169:6:40", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1160:16:40" - }, - "scope": 17665, - "src": "1083:140:40", - "stateMutability": "pure", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 17647, - "nodeType": "Block", - "src": "1318:44:40", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 17643, - "name": "_a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17632, - "src": "1351:2:40", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 17644, - "name": "_b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17634, - "src": "1355:2:40", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 17641, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22476, - "src": "1329:5:40", - "typeDescriptions": { - "typeIdentifier": "t_super$_TestSovrynSwapFormula_$17665", - "typeString": "contract super TestSovrynSwapFormula" - } - }, - "id": 17642, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "accurateWeights", - "nodeType": "MemberAccess", - "referencedDeclaration": 11396, - "src": "1329:21:40", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint32_$_t_uint32_$", - "typeString": "function (uint256,uint256) pure returns (uint32,uint32)" - } - }, - "id": 17645, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1329:29:40", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint32_$_t_uint32_$", - "typeString": "tuple(uint32,uint32)" - } - }, - "functionReturnParameters": 17640, - "id": 17646, - "nodeType": "Return", - "src": "1322:36:40" - } - ] - }, - "documentation": null, - "id": 17648, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "accurateWeightsTest", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 17635, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 17632, - "name": "_a", - "nodeType": "VariableDeclaration", - "scope": 17648, - "src": "1255:10:40", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 17631, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1255:7:40", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 17634, - "name": "_b", - "nodeType": "VariableDeclaration", - "scope": 17648, - "src": "1267:10:40", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 17633, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1267:7:40", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1254:24:40" - }, - "payable": false, - "returnParameters": { - "id": 17640, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 17637, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 17648, - "src": "1302:6:40", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 17636, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "1302:6:40", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 17639, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 17648, - "src": "1310:6:40", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 17638, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "1310:6:40", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1301:16:40" - }, - "scope": 17665, - "src": "1226:136:40", - "stateMutability": "pure", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 17663, - "nodeType": "Block", - "src": "1443:37:40", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 17659, - "name": "_n", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17650, - "src": "1469:2:40", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 17660, - "name": "_d", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17652, - "src": "1473:2:40", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 17657, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22476, - "src": "1454:5:40", - "typeDescriptions": { - "typeIdentifier": "t_super$_TestSovrynSwapFormula_$17665", - "typeString": "contract super TestSovrynSwapFormula" - } - }, - "id": 17658, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "roundDiv", - "nodeType": "MemberAccess", - "referencedDeclaration": 11422, - "src": "1454:14:40", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 17661, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1454:22:40", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 17656, - "id": 17662, - "nodeType": "Return", - "src": "1447:29:40" - } - ] - }, - "documentation": null, - "id": 17664, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "roundDivTest", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 17653, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 17650, - "name": "_n", - "nodeType": "VariableDeclaration", - "scope": 17664, - "src": "1387:10:40", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 17649, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1387:7:40", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 17652, - "name": "_d", - "nodeType": "VariableDeclaration", - "scope": 17664, - "src": "1399:10:40", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 17651, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1399:7:40", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1386:24:40" - }, - "payable": false, - "returnParameters": { - "id": 17656, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 17655, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 17664, - "src": "1434:7:40", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 17654, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1434:7:40", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1433:9:40" - }, - "scope": 17665, - "src": "1365:115:40", - "stateMutability": "pure", - "superFunction": null, - "visibility": "external" - } - ], - "scope": 17666, - "src": "156:1326:40" - } - ], - "src": "0:1483:40" - }, - "id": 40 - }, - "solidity/contracts/helpers/TestSovrynSwapNetwork.sol": { - "ast": { - "absolutePath": "solidity/contracts/helpers/TestSovrynSwapNetwork.sol", - "exportedSymbols": { - "ConverterV27OrLowerWithFallback": [ - 17753 - ], - "ConverterV27OrLowerWithoutFallback": [ - 17748 - ], - "ConverterV28OrHigherWithFallback": [ - 17778 - ], - "ConverterV28OrHigherWithoutFallback": [ - 17762 - ], - "NewConverter": [ - 17747 - ], - "OldConverter": [ - 17702 - ], - "TestSovrynSwapNetwork": [ - 17874 - ] - }, - "id": 17875, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 17667, - "literals": [ - "solidity", - "0.4", - ".26" - ], - "nodeType": "PragmaDirective", - "src": "0:23:41" - }, - { - "absolutePath": "solidity/contracts/SovrynSwapNetwork.sol", - "file": "../SovrynSwapNetwork.sol", - "id": 17668, - "nodeType": "ImportDirective", - "scope": 17875, - "sourceUnit": 2460, - "src": "24:34:41", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 17702, - "linearizedBaseContracts": [ - 17702 - ], - "name": "OldConverter", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 17670, - "name": "amount", - "nodeType": "VariableDeclaration", - "scope": 17702, - "src": "85:22:41", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 17669, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "85:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "private" - }, - { - "body": { - "id": 17679, - "nodeType": "Block", - "src": "147:24:41", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 17677, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 17675, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17670, - "src": "151:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 17676, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17672, - "src": "160:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "151:16:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 17678, - "nodeType": "ExpressionStatement", - "src": "151:16:41" - } - ] - }, - "documentation": null, - "id": 17680, - "implemented": true, - "isConstructor": true, - "isDeclaredConst": false, - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 17673, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 17672, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 17680, - "src": "123:15:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 17671, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "123:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "122:17:41" - }, - "payable": false, - "returnParameters": { - "id": 17674, - "nodeType": "ParameterList", - "parameters": [], - "src": "147:0:41" - }, - "scope": 17702, - "src": "111:60:41", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 17700, - "nodeType": "Block", - "src": "303:66:41", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 17691, - "name": "_sourceToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17682, - "src": "307:12:41", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "id": 17692, - "nodeType": "ExpressionStatement", - "src": "307:12:41" - }, - { - "expression": { - "argumentTypes": null, - "id": 17693, - "name": "_targetToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17684, - "src": "323:12:41", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "id": 17694, - "nodeType": "ExpressionStatement", - "src": "323:12:41" - }, - { - "expression": { - "argumentTypes": null, - "id": 17695, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17686, - "src": "339:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 17696, - "nodeType": "ExpressionStatement", - "src": "339:7:41" - }, - { - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "id": 17697, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17670, - "src": "358:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 17698, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "357:8:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 17690, - "id": 17699, - "nodeType": "Return", - "src": "350:15:41" - } - ] - }, - "documentation": null, - "id": 17701, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getReturn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 17687, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 17682, - "name": "_sourceToken", - "nodeType": "VariableDeclaration", - "scope": 17701, - "src": "196:24:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - "typeName": { - "contractScope": null, - "id": 17681, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "196:11:41", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 17684, - "name": "_targetToken", - "nodeType": "VariableDeclaration", - "scope": 17701, - "src": "224:24:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - "typeName": { - "contractScope": null, - "id": 17683, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "224:11:41", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 17686, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 17701, - "src": "252:15:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 17685, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "252:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "192:78:41" - }, - "payable": false, - "returnParameters": { - "id": 17690, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 17689, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 17701, - "src": "294:7:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 17688, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "294:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "293:9:41" - }, - "scope": 17702, - "src": "174:195:41", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - } - ], - "scope": 17875, - "src": "60:311:41" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 17747, - "linearizedBaseContracts": [ - 17747 - ], - "name": "NewConverter", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 17704, - "name": "amount", - "nodeType": "VariableDeclaration", - "scope": 17747, - "src": "398:22:41", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 17703, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "398:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 17706, - "name": "fee", - "nodeType": "VariableDeclaration", - "scope": 17747, - "src": "423:19:41", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 17705, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "423:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "private" - }, - { - "body": { - "id": 17721, - "nodeType": "Block", - "src": "496:38:41", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 17715, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 17713, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17704, - "src": "500:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 17714, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17708, - "src": "509:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "500:16:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 17716, - "nodeType": "ExpressionStatement", - "src": "500:16:41" - }, - { - "expression": { - "argumentTypes": null, - "id": 17719, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 17717, - "name": "fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17706, - "src": "520:3:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 17718, - "name": "_fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17710, - "src": "526:4:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "520:10:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 17720, - "nodeType": "ExpressionStatement", - "src": "520:10:41" - } - ] - }, - "documentation": null, - "id": 17722, - "implemented": true, - "isConstructor": true, - "isDeclaredConst": false, - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 17711, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 17708, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 17722, - "src": "458:15:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 17707, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "458:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 17710, - "name": "_fee", - "nodeType": "VariableDeclaration", - "scope": 17722, - "src": "475:12:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 17709, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "475:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "457:31:41" - }, - "payable": false, - "returnParameters": { - "id": 17712, - "nodeType": "ParameterList", - "parameters": [], - "src": "496:0:41" - }, - "scope": 17747, - "src": "446:88:41", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 17745, - "nodeType": "Block", - "src": "675:71:41", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 17735, - "name": "_sourceToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17724, - "src": "679:12:41", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "id": 17736, - "nodeType": "ExpressionStatement", - "src": "679:12:41" - }, - { - "expression": { - "argumentTypes": null, - "id": 17737, - "name": "_targetToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17726, - "src": "695:12:41", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "id": 17738, - "nodeType": "ExpressionStatement", - "src": "695:12:41" - }, - { - "expression": { - "argumentTypes": null, - "id": 17739, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17728, - "src": "711:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 17740, - "nodeType": "ExpressionStatement", - "src": "711:7:41" - }, - { - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "id": 17741, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17704, - "src": "730:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 17742, - "name": "fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17706, - "src": "738:3:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 17743, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "729:13:41", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", - "typeString": "tuple(uint256,uint256)" - } - }, - "functionReturnParameters": 17734, - "id": 17744, - "nodeType": "Return", - "src": "722:20:41" - } - ] - }, - "documentation": null, - "id": 17746, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getReturn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 17729, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 17724, - "name": "_sourceToken", - "nodeType": "VariableDeclaration", - "scope": 17746, - "src": "559:24:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - "typeName": { - "contractScope": null, - "id": 17723, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "559:11:41", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 17726, - "name": "_targetToken", - "nodeType": "VariableDeclaration", - "scope": 17746, - "src": "587:24:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - "typeName": { - "contractScope": null, - "id": 17725, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "587:11:41", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 17728, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 17746, - "src": "615:15:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 17727, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "615:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "555:78:41" - }, - "payable": false, - "returnParameters": { - "id": 17734, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 17731, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 17746, - "src": "657:7:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 17730, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "657:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 17733, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 17746, - "src": "666:7:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 17732, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "666:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "656:18:41" - }, - "scope": 17747, - "src": "537:209:41", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - } - ], - "scope": 17875, - "src": "373:375:41" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 17748, - "linearizedBaseContracts": [ - 17748 - ], - "name": "ConverterV27OrLowerWithoutFallback", - "nodeType": "ContractDefinition", - "nodes": [], - "scope": 17875, - "src": "750:46:41" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 17753, - "linearizedBaseContracts": [ - 17753 - ], - "name": "ConverterV27OrLowerWithFallback", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 17751, - "nodeType": "Block", - "src": "870:2:41", - "statements": [] - }, - "documentation": null, - "id": 17752, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 17749, - "nodeType": "ParameterList", - "parameters": [], - "src": "850:2:41" - }, - "payable": true, - "returnParameters": { - "id": 17750, - "nodeType": "ParameterList", - "parameters": [], - "src": "870:0:41" - }, - "scope": 17753, - "src": "842:30:41", - "stateMutability": "payable", - "superFunction": null, - "visibility": "external" - } - ], - "scope": 17875, - "src": "798:76:41" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 17762, - "linearizedBaseContracts": [ - 17762 - ], - "name": "ConverterV28OrHigherWithoutFallback", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 17760, - "nodeType": "Block", - "src": "976:19:41", - "statements": [ - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 17758, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "987:4:41", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 17757, - "id": 17759, - "nodeType": "Return", - "src": "980:11:41" - } - ] - }, - "documentation": null, - "id": 17761, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "isV28OrHigher", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 17754, - "nodeType": "ParameterList", - "parameters": [], - "src": "946:2:41" - }, - "payable": false, - "returnParameters": { - "id": 17757, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 17756, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 17761, - "src": "970:4:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 17755, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "970:4:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "969:6:41" - }, - "scope": 17762, - "src": "924:71:41", - "stateMutability": "pure", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 17875, - "src": "876:121:41" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 17778, - "linearizedBaseContracts": [ - 17778 - ], - "name": "ConverterV28OrHigherWithFallback", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 17769, - "nodeType": "Block", - "src": "1096:19:41", - "statements": [ - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 17767, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1107:4:41", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 17766, - "id": 17768, - "nodeType": "Return", - "src": "1100:11:41" - } - ] - }, - "documentation": null, - "id": 17770, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "isV28OrHigher", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 17763, - "nodeType": "ParameterList", - "parameters": [], - "src": "1066:2:41" - }, - "payable": false, - "returnParameters": { - "id": 17766, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 17765, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 17770, - "src": "1090:4:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 17764, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1090:4:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1089:6:41" - }, - "scope": 17778, - "src": "1044:71:41", - "stateMutability": "pure", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 17776, - "nodeType": "Block", - "src": "1146:16:41", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 17773, - "name": "revert", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 22343, - 22344 - ], - "referencedDeclaration": 22343, - "src": "1150:6:41", - "typeDescriptions": { - "typeIdentifier": "t_function_revert_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 17774, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1150:8:41", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 17775, - "nodeType": "ExpressionStatement", - "src": "1150:8:41" - } - ] - }, - "documentation": null, - "id": 17777, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 17771, - "nodeType": "ParameterList", - "parameters": [], - "src": "1126:2:41" - }, - "payable": true, - "returnParameters": { - "id": 17772, - "nodeType": "ParameterList", - "parameters": [], - "src": "1146:0:41" - }, - "scope": 17778, - "src": "1118:44:41", - "stateMutability": "payable", - "superFunction": null, - "visibility": "external" - } - ], - "scope": 17875, - "src": "999:165:41" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 17779, - "name": "SovrynSwapNetwork", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2459, - "src": "1200:17:41", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SovrynSwapNetwork_$2459", - "typeString": "contract SovrynSwapNetwork" - } - }, - "id": 17780, - "nodeType": "InheritanceSpecifier", - "src": "1200:17:41" - } - ], - "contractDependencies": [ - 661, - 2459, - 17702, - 17747, - 20932, - 21324, - 21710, - 21933, - 21976, - 22052, - 22247, - 22313 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 17874, - "linearizedBaseContracts": [ - 17874, - 2459, - 21710, - 20932, - 21976, - 22052, - 21324, - 21933, - 22313, - 22247, - 661 - ], - "name": "TestSovrynSwapNetwork", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 17782, - "name": "oldConverter", - "nodeType": "VariableDeclaration", - "scope": 17874, - "src": "1221:33:41", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_OldConverter_$17702", - "typeString": "contract OldConverter" - }, - "typeName": { - "contractScope": null, - "id": 17781, - "name": "OldConverter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 17702, - "src": "1221:12:41", - "typeDescriptions": { - "typeIdentifier": "t_contract$_OldConverter_$17702", - "typeString": "contract OldConverter" - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 17784, - "name": "newConverter", - "nodeType": "VariableDeclaration", - "scope": 17874, - "src": "1257:33:41", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_NewConverter_$17747", - "typeString": "contract NewConverter" - }, - "typeName": { - "contractScope": null, - "id": 17783, - "name": "NewConverter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 17747, - "src": "1257:12:41", - "typeDescriptions": { - "typeIdentifier": "t_contract$_NewConverter_$17747", - "typeString": "contract NewConverter" - } - }, - "value": null, - "visibility": "private" - }, - { - "body": { - "id": 17813, - "nodeType": "Block", - "src": "1393:98:41", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 17803, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 17798, - "name": "oldConverter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17782, - "src": "1397:12:41", - "typeDescriptions": { - "typeIdentifier": "t_contract$_OldConverter_$17702", - "typeString": "contract OldConverter" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 17801, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17786, - "src": "1429:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 17800, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "1412:16:41", - "typeDescriptions": { - "typeIdentifier": "t_function_creation_nonpayable$_t_uint256_$returns$_t_contract$_OldConverter_$17702_$", - "typeString": "function (uint256) returns (contract OldConverter)" - }, - "typeName": { - "contractScope": null, - "id": 17799, - "name": "OldConverter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 17702, - "src": "1416:12:41", - "typeDescriptions": { - "typeIdentifier": "t_contract$_OldConverter_$17702", - "typeString": "contract OldConverter" - } - } - }, - "id": 17802, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1412:25:41", - "typeDescriptions": { - "typeIdentifier": "t_contract$_OldConverter_$17702", - "typeString": "contract OldConverter" - } - }, - "src": "1397:40:41", - "typeDescriptions": { - "typeIdentifier": "t_contract$_OldConverter_$17702", - "typeString": "contract OldConverter" - } - }, - "id": 17804, - "nodeType": "ExpressionStatement", - "src": "1397:40:41" - }, - { - "expression": { - "argumentTypes": null, - "id": 17811, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 17805, - "name": "newConverter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17784, - "src": "1441:12:41", - "typeDescriptions": { - "typeIdentifier": "t_contract$_NewConverter_$17747", - "typeString": "contract NewConverter" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 17808, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17786, - "src": "1473:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 17809, - "name": "_fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17788, - "src": "1482:4:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 17807, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "1456:16:41", - "typeDescriptions": { - "typeIdentifier": "t_function_creation_nonpayable$_t_uint256_$_t_uint256_$returns$_t_contract$_NewConverter_$17747_$", - "typeString": "function (uint256,uint256) returns (contract NewConverter)" - }, - "typeName": { - "contractScope": null, - "id": 17806, - "name": "NewConverter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 17747, - "src": "1460:12:41", - "typeDescriptions": { - "typeIdentifier": "t_contract$_NewConverter_$17747", - "typeString": "contract NewConverter" - } - } - }, - "id": 17810, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1456:31:41", - "typeDescriptions": { - "typeIdentifier": "t_contract$_NewConverter_$17747", - "typeString": "contract NewConverter" - } - }, - "src": "1441:46:41", - "typeDescriptions": { - "typeIdentifier": "t_contract$_NewConverter_$17747", - "typeString": "contract NewConverter" - } - }, - "id": 17812, - "nodeType": "ExpressionStatement", - "src": "1441:46:41" - } - ] - }, - "documentation": null, - "id": 17814, - "implemented": true, - "isConstructor": true, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 17793, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1388:1:41", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "id": 17792, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1380:7:41", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 17794, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1380:10:41", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 17791, - "name": "IContractRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22220, - "src": "1362:17:41", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IContractRegistry_$22220_$", - "typeString": "type(contract IContractRegistry)" - } - }, - "id": 17795, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1362:29:41", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IContractRegistry_$22220", - "typeString": "contract IContractRegistry" - } - } - ], - "id": 17796, - "modifierName": { - "argumentTypes": null, - "id": 17790, - "name": "SovrynSwapNetwork", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2459, - "src": "1344:17:41", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_SovrynSwapNetwork_$2459_$", - "typeString": "type(contract SovrynSwapNetwork)" - } - }, - "nodeType": "ModifierInvocation", - "src": "1344:48:41" - } - ], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 17789, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 17786, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 17814, - "src": "1306:15:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 17785, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1306:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 17788, - "name": "_fee", - "nodeType": "VariableDeclaration", - "scope": 17814, - "src": "1323:12:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 17787, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1323:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1305:31:41" - }, - "payable": false, - "returnParameters": { - "id": 17797, - "nodeType": "ParameterList", - "parameters": [], - "src": "1393:0:41" - }, - "scope": 17874, - "src": "1294:197:41", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 17826, - "nodeType": "Block", - "src": "1586:55:41", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 17823, - "name": "_converter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17816, - "src": "1626:10:41", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - ], - "expression": { - "argumentTypes": null, - "id": 17821, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22490, - "src": "1597:5:41", - "typeDescriptions": { - "typeIdentifier": "t_super$_TestSovrynSwapNetwork_$17874", - "typeString": "contract super TestSovrynSwapNetwork" - } - }, - "id": 17822, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isV28OrHigherConverter", - "nodeType": "MemberAccess", - "referencedDeclaration": 2219, - "src": "1597:28:41", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_contract$_IConverter_$11817_$returns$_t_bool_$", - "typeString": "function (contract IConverter) view returns (bool)" - } - }, - "id": 17824, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1597:40:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 17820, - "id": 17825, - "nodeType": "Return", - "src": "1590:47:41" - } - ] - }, - "documentation": null, - "id": 17827, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "isV28OrHigherConverterExternal", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 17817, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 17816, - "name": "_converter", - "nodeType": "VariableDeclaration", - "scope": 17827, - "src": "1534:21:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - }, - "typeName": { - "contractScope": null, - "id": 17815, - "name": "IConverter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 11817, - "src": "1534:10:41", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverter_$11817", - "typeString": "contract IConverter" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1533:23:41" - }, - "payable": false, - "returnParameters": { - "id": 17820, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 17819, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 17827, - "src": "1580:4:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 17818, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1580:4:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1579:6:41" - }, - "scope": 17874, - "src": "1494:147:41", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 17849, - "nodeType": "Block", - "src": "1709:91:41", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 17836, - "name": "oldConverter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17782, - "src": "1738:12:41", - "typeDescriptions": { - "typeIdentifier": "t_contract$_OldConverter_$17702", - "typeString": "contract OldConverter" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_OldConverter_$17702", - "typeString": "contract OldConverter" - } - ], - "id": 17835, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1730:7:41", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 17837, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1730:21:41", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 17839, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1765:1:41", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 17838, - "name": "IERC20Token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20240, - "src": "1753:11:41", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20Token_$20240_$", - "typeString": "type(contract IERC20Token)" - } - }, - "id": 17840, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1753:14:41", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 17842, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1781:1:41", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 17841, - "name": "IERC20Token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20240, - "src": "1769:11:41", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20Token_$20240_$", - "typeString": "type(contract IERC20Token)" - } - }, - "id": 17843, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1769:14:41", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 17845, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1793:1:41", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 17844, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1785:7:41", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": "uint256" - }, - "id": 17846, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1785:10:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 17834, - "name": "getReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2179, - "src": "1720:9:41", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$_t_address_$_t_uint256_$returns$_t_uint256_$_t_uint256_$", - "typeString": "function (address,address,address,uint256) view returns (uint256,uint256)" - } - }, - "id": 17847, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1720:76:41", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", - "typeString": "tuple(uint256,uint256)" - } - }, - "functionReturnParameters": 17833, - "id": 17848, - "nodeType": "Return", - "src": "1713:83:41" - } - ] - }, - "documentation": null, - "id": 17850, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getReturnOld", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 17828, - "nodeType": "ParameterList", - "parameters": [], - "src": "1665:2:41" - }, - "payable": false, - "returnParameters": { - "id": 17833, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 17830, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 17850, - "src": "1691:7:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 17829, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1691:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 17832, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 17850, - "src": "1700:7:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 17831, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1700:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1690:18:41" - }, - "scope": 17874, - "src": "1644:156:41", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 17872, - "nodeType": "Block", - "src": "1868:91:41", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 17859, - "name": "newConverter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17784, - "src": "1897:12:41", - "typeDescriptions": { - "typeIdentifier": "t_contract$_NewConverter_$17747", - "typeString": "contract NewConverter" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_NewConverter_$17747", - "typeString": "contract NewConverter" - } - ], - "id": 17858, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1889:7:41", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 17860, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1889:21:41", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 17862, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1924:1:41", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 17861, - "name": "IERC20Token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20240, - "src": "1912:11:41", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20Token_$20240_$", - "typeString": "type(contract IERC20Token)" - } - }, - "id": 17863, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1912:14:41", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 17865, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1940:1:41", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 17864, - "name": "IERC20Token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20240, - "src": "1928:11:41", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20Token_$20240_$", - "typeString": "type(contract IERC20Token)" - } - }, - "id": 17866, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1928:14:41", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 17868, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1952:1:41", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 17867, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1944:7:41", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": "uint256" - }, - "id": 17869, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1944:10:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 17857, - "name": "getReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2179, - "src": "1879:9:41", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$_t_address_$_t_uint256_$returns$_t_uint256_$_t_uint256_$", - "typeString": "function (address,address,address,uint256) view returns (uint256,uint256)" - } - }, - "id": 17870, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1879:76:41", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", - "typeString": "tuple(uint256,uint256)" - } - }, - "functionReturnParameters": 17856, - "id": 17871, - "nodeType": "Return", - "src": "1872:83:41" - } - ] - }, - "documentation": null, - "id": 17873, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getReturnNew", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 17851, - "nodeType": "ParameterList", - "parameters": [], - "src": "1824:2:41" - }, - "payable": false, - "returnParameters": { - "id": 17856, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 17853, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 17873, - "src": "1850:7:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 17852, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1850:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 17855, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 17873, - "src": "1859:7:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 17854, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1859:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1849:18:41" - }, - "scope": 17874, - "src": "1803:156:41", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - } - ], - "scope": 17875, - "src": "1166:795:41" - } - ], - "src": "0:1962:41" - }, - "id": 41 - }, - "solidity/contracts/helpers/TestTokenHandler.sol": { - "ast": { - "absolutePath": "solidity/contracts/helpers/TestTokenHandler.sol", - "exportedSymbols": { - "TestTokenHandler": [ - 17931 - ] - }, - "id": 17932, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 17876, - "literals": [ - "solidity", - "0.4", - ".26" - ], - "nodeType": "PragmaDirective", - "src": "0:23:42" - }, - { - "absolutePath": "solidity/contracts/utility/TokenHandler.sol", - "file": "../utility/TokenHandler.sol", - "id": 17877, - "nodeType": "ImportDirective", - "scope": 17932, - "sourceUnit": 21934, - "src": "24:37:42", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 17878, - "name": "TokenHandler", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 21933, - "src": "161:12:42", - "typeDescriptions": { - "typeIdentifier": "t_contract$_TokenHandler_$21933", - "typeString": "contract TokenHandler" - } - }, - "id": 17879, - "nodeType": "InheritanceSpecifier", - "src": "161:12:42" - } - ], - "contractDependencies": [ - 21933 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 17931, - "linearizedBaseContracts": [ - 17931, - 21933 - ], - "name": "TestTokenHandler", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 17894, - "nodeType": "Block", - "src": "272:45:42", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 17889, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17881, - "src": "288:6:42", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - { - "argumentTypes": null, - "id": 17890, - "name": "_spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17883, - "src": "296:8:42", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 17891, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17885, - "src": "306:6:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 17888, - "name": "safeApprove", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21861, - "src": "276:11:42", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20Token_$20240_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (contract IERC20Token,address,uint256)" - } - }, - "id": 17892, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "276:37:42", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 17893, - "nodeType": "ExpressionStatement", - "src": "276:37:42" - } - ] - }, - "documentation": null, - "id": 17895, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "testSafeApprove", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 17886, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 17881, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 17895, - "src": "205:18:42", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - "typeName": { - "contractScope": null, - "id": 17880, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "205:11:42", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 17883, - "name": "_spender", - "nodeType": "VariableDeclaration", - "scope": 17895, - "src": "227:16:42", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 17882, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "227:7:42", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 17885, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 17895, - "src": "247:14:42", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 17884, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "247:7:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "201:63:42" - }, - "payable": false, - "returnParameters": { - "id": 17887, - "nodeType": "ParameterList", - "parameters": [], - "src": "272:0:42" - }, - "scope": 17931, - "src": "177:140:42", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 17910, - "nodeType": "Block", - "src": "411:41:42", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 17905, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17897, - "src": "428:6:42", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - { - "argumentTypes": null, - "id": 17906, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17899, - "src": "436:3:42", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 17907, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17901, - "src": "441:6:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 17904, - "name": "safeTransfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21881, - "src": "415:12:42", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20Token_$20240_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (contract IERC20Token,address,uint256)" - } - }, - "id": 17908, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "415:33:42", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 17909, - "nodeType": "ExpressionStatement", - "src": "415:33:42" - } - ] - }, - "documentation": null, - "id": 17911, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "testSafeTransfer", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 17902, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 17897, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 17911, - "src": "349:18:42", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - "typeName": { - "contractScope": null, - "id": 17896, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "349:11:42", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 17899, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 17911, - "src": "371:11:42", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 17898, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "371:7:42", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 17901, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 17911, - "src": "386:14:42", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 17900, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "386:7:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "345:58:42" - }, - "payable": false, - "returnParameters": { - "id": 17903, - "nodeType": "ParameterList", - "parameters": [], - "src": "411:0:42" - }, - "scope": 17931, - "src": "320:132:42", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 17929, - "nodeType": "Block", - "src": "567:52:42", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 17923, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17913, - "src": "588:6:42", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - { - "argumentTypes": null, - "id": 17924, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17915, - "src": "596:5:42", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 17925, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17917, - "src": "603:3:42", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 17926, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17919, - "src": "608:6:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 17922, - "name": "safeTransferFrom", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21904, - "src": "571:16:42", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20Token_$20240_$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (contract IERC20Token,address,address,uint256)" - } - }, - "id": 17927, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "571:44:42", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 17928, - "nodeType": "ExpressionStatement", - "src": "571:44:42" - } - ] - }, - "documentation": null, - "id": 17930, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "testSafeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 17920, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 17913, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 17930, - "src": "488:18:42", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - "typeName": { - "contractScope": null, - "id": 17912, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "488:11:42", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 17915, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 17930, - "src": "510:13:42", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 17914, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "510:7:42", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 17917, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 17930, - "src": "527:11:42", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 17916, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "527:7:42", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 17919, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 17930, - "src": "542:14:42", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 17918, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "542:7:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "484:75:42" - }, - "payable": false, - "returnParameters": { - "id": 17921, - "nodeType": "ParameterList", - "parameters": [], - "src": "567:0:42" - }, - "scope": 17931, - "src": "455:164:42", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 17932, - "src": "132:489:42" - } - ], - "src": "0:622:42" - }, - "id": 42 - }, - "solidity/contracts/helpers/TestTokens.sol": { - "ast": { - "absolutePath": "solidity/contracts/helpers/TestTokens.sol", - "exportedSymbols": { - "NonStandardToken": [ - 18131 - ], - "NonStandardTokenDetailed": [ - 18167 - ], - "TestNonStandardToken": [ - 18258 - ], - "TestNonStandardTokenWithoutDecimals": [ - 18328 - ], - "TestStandardToken": [ - 18440 - ] - }, - "id": 18441, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 17933, - "literals": [ - "solidity", - "0.4", - ".26" - ], - "nodeType": "PragmaDirective", - "src": "0:23:43" - }, - { - "absolutePath": "solidity/contracts/utility/Utils.sol", - "file": "../utility/Utils.sol", - "id": 17934, - "nodeType": "ImportDirective", - "scope": 18441, - "sourceUnit": 22053, - "src": "24:30:43", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "solidity/contracts/utility/SafeMath.sol", - "file": "../utility/SafeMath.sol", - "id": 17935, - "nodeType": "ImportDirective", - "scope": 18441, - "sourceUnit": 21818, - "src": "55:33:43", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 17936, - "name": "Utils", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 22052, - "src": "170:5:43", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Utils_$22052", - "typeString": "contract Utils" - } - }, - "id": 17937, - "nodeType": "InheritanceSpecifier", - "src": "170:5:43" - } - ], - "contractDependencies": [ - 22052 - ], - "contractKind": "contract", - "documentation": "ERC20 Non-Standard Token implementation", - "fullyImplemented": true, - "id": 18131, - "linearizedBaseContracts": [ - 18131, - 22052 - ], - "name": "NonStandardToken", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 17940, - "libraryName": { - "contractScope": null, - "id": 17938, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 21817, - "src": "185:8:43", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$21817", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "179:27:43", - "typeName": { - "id": 17939, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "198:7:43", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "constant": false, - "id": 17942, - "name": "totalSupply", - "nodeType": "VariableDeclaration", - "scope": 18131, - "src": "209:26:43", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 17941, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "209:7:43", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 17946, - "name": "balanceOf", - "nodeType": "VariableDeclaration", - "scope": 18131, - "src": "238:44:43", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "typeName": { - "id": 17945, - "keyType": { - "id": 17943, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "246:7:43", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "238:27:43", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 17944, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "257:7:43", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 17952, - "name": "allowance", - "nodeType": "VariableDeclaration", - "scope": 18131, - "src": "285:64:43", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - }, - "typeName": { - "id": 17951, - "keyType": { - "id": 17947, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "293:7:43", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "285:47:43", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - }, - "valueType": { - "id": 17950, - "keyType": { - "id": 17948, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "312:7:43", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "304:27:43", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 17949, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "323:7:43", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - } - }, - "value": null, - "visibility": "public" - }, - { - "anonymous": false, - "documentation": null, - "id": 17960, - "name": "Transfer", - "nodeType": "EventDefinition", - "parameters": { - "id": 17959, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 17954, - "indexed": true, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 17960, - "src": "368:21:43", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 17953, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "368:7:43", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 17956, - "indexed": true, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 17960, - "src": "391:19:43", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 17955, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "391:7:43", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 17958, - "indexed": false, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 17960, - "src": "412:14:43", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 17957, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "412:7:43", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "367:60:43" - }, - "src": "353:75:43" - }, - { - "anonymous": false, - "documentation": null, - "id": 17968, - "name": "Approval", - "nodeType": "EventDefinition", - "parameters": { - "id": 17967, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 17962, - "indexed": true, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 17968, - "src": "445:22:43", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 17961, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "445:7:43", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 17964, - "indexed": true, - "name": "_spender", - "nodeType": "VariableDeclaration", - "scope": 17968, - "src": "469:24:43", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 17963, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "469:7:43", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 17966, - "indexed": false, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 17968, - "src": "495:14:43", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 17965, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "495:7:43", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "444:66:43" - }, - "src": "430:81:43" - }, - { - "body": { - "id": 17984, - "nodeType": "Block", - "src": "658:64:43", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 17975, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 17973, - "name": "totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17942, - "src": "662:11:43", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 17974, - "name": "_supply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17970, - "src": "676:7:43", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "662:21:43", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 17976, - "nodeType": "ExpressionStatement", - "src": "662:21:43" - }, - { - "expression": { - "argumentTypes": null, - "id": 17982, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 17977, - "name": "balanceOf", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17946, - "src": "687:9:43", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 17980, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 17978, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22338, - "src": "697:3:43", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 17979, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "697:10:43", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "687:21:43", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 17981, - "name": "_supply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17970, - "src": "711:7:43", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "687:31:43", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 17983, - "nodeType": "ExpressionStatement", - "src": "687:31:43" - } - ] - }, - "documentation": "@dev initializes a new NonStandardToken instance\n\t * @param _supply initial supply", - "id": 17985, - "implemented": true, - "isConstructor": true, - "isDeclaredConst": false, - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 17971, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 17970, - "name": "_supply", - "nodeType": "VariableDeclaration", - "scope": 17985, - "src": "632:15:43", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 17969, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "632:7:43", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "631:17:43" - }, - "payable": false, - "returnParameters": { - "id": 17972, - "nodeType": "ParameterList", - "parameters": [], - "src": "658:0:43" - }, - "scope": 18131, - "src": "620:102:43", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 18026, - "nodeType": "Block", - "src": "1057:154:43", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 18006, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 17995, - "name": "balanceOf", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17946, - "src": "1061:9:43", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 17998, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 17996, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22338, - "src": "1071:3:43", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 17997, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1071:10:43", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "1061:21:43", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 18004, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17989, - "src": "1111:6:43", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 17999, - "name": "balanceOf", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17946, - "src": "1085:9:43", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 18002, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 18000, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22338, - "src": "1095:3:43", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 18001, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1095:10:43", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1085:21:43", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 18003, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 21758, - "src": "1085:25:43", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 18005, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1085:33:43", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1061:57:43", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 18007, - "nodeType": "ExpressionStatement", - "src": "1061:57:43" - }, - { - "expression": { - "argumentTypes": null, - "id": 18017, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 18008, - "name": "balanceOf", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17946, - "src": "1122:9:43", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 18010, - "indexExpression": { - "argumentTypes": null, - "id": 18009, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17987, - "src": "1132:3:43", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "1122:14:43", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 18015, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17989, - "src": "1158:6:43", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 18011, - "name": "balanceOf", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17946, - "src": "1139:9:43", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 18013, - "indexExpression": { - "argumentTypes": null, - "id": 18012, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17987, - "src": "1149:3:43", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1139:14:43", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 18014, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 21737, - "src": "1139:18:43", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 18016, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1139:26:43", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1122:43:43", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 18018, - "nodeType": "ExpressionStatement", - "src": "1122:43:43" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 18020, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22338, - "src": "1183:3:43", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 18021, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1183:10:43", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 18022, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17987, - "src": "1195:3:43", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 18023, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17989, - "src": "1200:6:43", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 18019, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17960, - "src": "1174:8:43", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 18024, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1174:33:43", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 18025, - "nodeType": "EmitStatement", - "src": "1169:38:43" - } - ] - }, - "documentation": "@dev send coins\nthrows on any error rather then return a false flag to minimize user errors\n\t * @param _to target address\n@param _value transfer amount\n\t * @return true if the transfer was successful, false if it wasn't", - "id": 18027, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 17992, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17987, - "src": "1052:3:43", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 17993, - "modifierName": { - "argumentTypes": null, - "id": 17991, - "name": "validAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22011, - "src": "1039:12:43", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$", - "typeString": "modifier (address)" - } - }, - "nodeType": "ModifierInvocation", - "src": "1039:17:43" - } - ], - "name": "_transfer", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 17990, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 17987, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 18027, - "src": "1001:11:43", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 17986, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1001:7:43", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 17989, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 18027, - "src": "1014:14:43", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 17988, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1014:7:43", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1000:29:43" - }, - "payable": false, - "returnParameters": { - "id": 17994, - "nodeType": "ParameterList", - "parameters": [], - "src": "1057:0:43" - }, - "scope": 18131, - "src": "982:229:43", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 18087, - "nodeType": "Block", - "src": "1664:214:43", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 18057, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 18042, - "name": "allowance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17952, - "src": "1668:9:43", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 18046, - "indexExpression": { - "argumentTypes": null, - "id": 18043, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18029, - "src": "1678:5:43", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1668:16:43", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 18047, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 18044, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22338, - "src": "1685:3:43", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 18045, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1685:10:43", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "1668:28:43", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 18055, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18033, - "src": "1732:6:43", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 18048, - "name": "allowance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17952, - "src": "1699:9:43", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 18050, - "indexExpression": { - "argumentTypes": null, - "id": 18049, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18029, - "src": "1709:5:43", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1699:16:43", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 18053, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 18051, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22338, - "src": "1716:3:43", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 18052, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1716:10:43", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1699:28:43", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 18054, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 21758, - "src": "1699:32:43", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 18056, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1699:40:43", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1668:71:43", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 18058, - "nodeType": "ExpressionStatement", - "src": "1668:71:43" - }, - { - "expression": { - "argumentTypes": null, - "id": 18068, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 18059, - "name": "balanceOf", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17946, - "src": "1743:9:43", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 18061, - "indexExpression": { - "argumentTypes": null, - "id": 18060, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18029, - "src": "1753:5:43", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "1743:16:43", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 18066, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18033, - "src": "1783:6:43", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 18062, - "name": "balanceOf", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17946, - "src": "1762:9:43", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 18064, - "indexExpression": { - "argumentTypes": null, - "id": 18063, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18029, - "src": "1772:5:43", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1762:16:43", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 18065, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 21758, - "src": "1762:20:43", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 18067, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1762:28:43", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1743:47:43", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 18069, - "nodeType": "ExpressionStatement", - "src": "1743:47:43" - }, - { - "expression": { - "argumentTypes": null, - "id": 18079, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 18070, - "name": "balanceOf", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17946, - "src": "1794:9:43", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 18072, - "indexExpression": { - "argumentTypes": null, - "id": 18071, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18031, - "src": "1804:3:43", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "1794:14:43", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 18077, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18033, - "src": "1830:6:43", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 18073, - "name": "balanceOf", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17946, - "src": "1811:9:43", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 18075, - "indexExpression": { - "argumentTypes": null, - "id": 18074, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18031, - "src": "1821:3:43", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1811:14:43", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 18076, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 21737, - "src": "1811:18:43", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 18078, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1811:26:43", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1794:43:43", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 18080, - "nodeType": "ExpressionStatement", - "src": "1794:43:43" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 18082, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18029, - "src": "1855:5:43", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 18083, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18031, - "src": "1862:3:43", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 18084, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18033, - "src": "1867:6:43", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 18081, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17960, - "src": "1846:8:43", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 18085, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1846:28:43", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 18086, - "nodeType": "EmitStatement", - "src": "1841:33:43" - } - ] - }, - "documentation": "@dev an account/contract attempts to get the coins\nthrows on any error rather then return a false flag to minimize user errors\n\t * @param _from source address\n@param _to target address\n@param _value transfer amount\n\t * @return true if the transfer was successful, false if it wasn't", - "id": 18088, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 18036, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18029, - "src": "1639:5:43", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 18037, - "modifierName": { - "argumentTypes": null, - "id": 18035, - "name": "validAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22011, - "src": "1626:12:43", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$", - "typeString": "modifier (address)" - } - }, - "nodeType": "ModifierInvocation", - "src": "1626:19:43" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 18039, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18031, - "src": "1659:3:43", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 18040, - "modifierName": { - "argumentTypes": null, - "id": 18038, - "name": "validAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22011, - "src": "1646:12:43", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$", - "typeString": "modifier (address)" - } - }, - "nodeType": "ModifierInvocation", - "src": "1646:17:43" - } - ], - "name": "_transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 18034, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 18029, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 18088, - "src": "1567:13:43", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 18028, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1567:7:43", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 18031, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 18088, - "src": "1584:11:43", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 18030, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1584:7:43", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 18033, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 18088, - "src": "1599:14:43", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 18032, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1599:7:43", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1563:53:43" - }, - "payable": false, - "returnParameters": { - "id": 18041, - "nodeType": "ParameterList", - "parameters": [], - "src": "1664:0:43" - }, - "scope": 18131, - "src": "1541:337:43", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 18129, - "nodeType": "Block", - "src": "2601:279:43", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 18110, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 18101, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 18099, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18092, - "src": "2732:6:43", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 18100, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2742:1:43", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "2732:11:43", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 18109, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 18102, - "name": "allowance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17952, - "src": "2747:9:43", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 18105, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 18103, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22338, - "src": "2757:3:43", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 18104, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2757:10:43", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2747:21:43", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 18107, - "indexExpression": { - "argumentTypes": null, - "id": 18106, - "name": "_spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18090, - "src": "2769:8:43", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2747:31:43", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 18108, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2782:1:43", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "2747:36:43", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "2732:51:43", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 18098, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 22341, - 22342 - ], - "referencedDeclaration": 22341, - "src": "2724:7:43", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 18111, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2724:60:43", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 18112, - "nodeType": "ExpressionStatement", - "src": "2724:60:43" - }, - { - "expression": { - "argumentTypes": null, - "id": 18120, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 18113, - "name": "allowance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17952, - "src": "2789:9:43", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 18117, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 18114, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22338, - "src": "2799:3:43", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 18115, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2799:10:43", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2789:21:43", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 18118, - "indexExpression": { - "argumentTypes": null, - "id": 18116, - "name": "_spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18090, - "src": "2811:8:43", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "2789:31:43", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 18119, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18092, - "src": "2823:6:43", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2789:40:43", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 18121, - "nodeType": "ExpressionStatement", - "src": "2789:40:43" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 18123, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22338, - "src": "2847:3:43", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 18124, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2847:10:43", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 18125, - "name": "_spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18090, - "src": "2859:8:43", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 18126, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18092, - "src": "2869:6:43", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 18122, - "name": "Approval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17968, - "src": "2838:8:43", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 18127, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2838:38:43", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 18128, - "nodeType": "EmitStatement", - "src": "2833:43:43" - } - ] - }, - "documentation": "@dev allow another account/contract to spend some tokens on your behalf\nthrows on any error rather then return a false flag to minimize user errors\n\t * also, to minimize the risk of the approve/transferFrom attack vector\n(see https://docs.google.com/document/d/1YLPtQxZu1UAvO9cZ1O2RPXBbT0mooh4DYKjA_jp-RLM/), approve has to be called twice\nin 2 separate transactions - once to change the allowance to 0 and secondly to change it to the new allowance value\n\t * @param _spender approved address\n@param _value allowance amount\n\t * @return true if the approval was successful, false if it wasn't", - "id": 18130, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 18095, - "name": "_spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18090, - "src": "2591:8:43", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 18096, - "modifierName": { - "argumentTypes": null, - "id": 18094, - "name": "validAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22011, - "src": "2578:12:43", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$", - "typeString": "modifier (address)" - } - }, - "nodeType": "ModifierInvocation", - "src": "2578:22:43" - } - ], - "name": "_approve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 18093, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 18090, - "name": "_spender", - "nodeType": "VariableDeclaration", - "scope": 18130, - "src": "2535:16:43", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 18089, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2535:7:43", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 18092, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 18130, - "src": "2553:14:43", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 18091, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2553:7:43", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2534:34:43" - }, - "payable": false, - "returnParameters": { - "id": 18097, - "nodeType": "ParameterList", - "parameters": [], - "src": "2601:0:43" - }, - "scope": 18131, - "src": "2517:363:43", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 18441, - "src": "141:2741:43" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 18132, - "name": "NonStandardToken", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 18131, - "src": "2921:16:43", - "typeDescriptions": { - "typeIdentifier": "t_contract$_NonStandardToken_$18131", - "typeString": "contract NonStandardToken" - } - }, - "id": 18133, - "nodeType": "InheritanceSpecifier", - "src": "2921:16:43" - } - ], - "contractDependencies": [ - 18131, - 22052 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 18167, - "linearizedBaseContracts": [ - 18167, - 18131, - 22052 - ], - "name": "NonStandardTokenDetailed", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 18135, - "name": "name", - "nodeType": "VariableDeclaration", - "scope": 18167, - "src": "2941:18:43", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 18134, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "2941:6:43", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 18137, - "name": "symbol", - "nodeType": "VariableDeclaration", - "scope": 18167, - "src": "2962:20:43", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 18136, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "2962:6:43", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 18139, - "name": "decimals", - "nodeType": "VariableDeclaration", - "scope": 18167, - "src": "2985:21:43", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 18138, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "2985:5:43", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "public" - }, - { - "body": { - "id": 18165, - "nodeType": "Block", - "src": "3349:64:43", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 18155, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 18153, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18135, - "src": "3353:4:43", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 18154, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18141, - "src": "3360:5:43", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "3353:12:43", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 18156, - "nodeType": "ExpressionStatement", - "src": "3353:12:43" - }, - { - "expression": { - "argumentTypes": null, - "id": 18159, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 18157, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18137, - "src": "3369:6:43", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 18158, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18143, - "src": "3378:7:43", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "3369:16:43", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 18160, - "nodeType": "ExpressionStatement", - "src": "3369:16:43" - }, - { - "expression": { - "argumentTypes": null, - "id": 18163, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 18161, - "name": "decimals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18139, - "src": "3389:8:43", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 18162, - "name": "_decimals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18145, - "src": "3400:9:43", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "3389:20:43", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "id": 18164, - "nodeType": "ExpressionStatement", - "src": "3389:20:43" - } - ] - }, - "documentation": "@dev initializes a new NonStandardToken instance\n\t * @param _name token name\n@param _symbol token symbol\n@param _decimals decimal points\n@param _supply initial supply", - "id": 18166, - "implemented": true, - "isConstructor": true, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 18150, - "name": "_supply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18147, - "src": "3340:7:43", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 18151, - "modifierName": { - "argumentTypes": null, - "id": 18149, - "name": "NonStandardToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18131, - "src": "3323:16:43", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_NonStandardToken_$18131_$", - "typeString": "type(contract NonStandardToken)" - } - }, - "nodeType": "ModifierInvocation", - "src": "3323:25:43" - } - ], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 18148, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 18141, - "name": "_name", - "nodeType": "VariableDeclaration", - "scope": 18166, - "src": "3242:12:43", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 18140, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "3242:6:43", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 18143, - "name": "_symbol", - "nodeType": "VariableDeclaration", - "scope": 18166, - "src": "3258:14:43", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 18142, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "3258:6:43", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 18145, - "name": "_decimals", - "nodeType": "VariableDeclaration", - "scope": 18166, - "src": "3276:15:43", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 18144, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "3276:5:43", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 18147, - "name": "_supply", - "nodeType": "VariableDeclaration", - "scope": 18166, - "src": "3295:15:43", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 18146, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3295:7:43", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3238:75:43" - }, - "payable": false, - "returnParameters": { - "id": 18152, - "nodeType": "ParameterList", - "parameters": [], - "src": "3349:0:43" - }, - "scope": 18167, - "src": "3227:186:43", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 18441, - "src": "2884:531:43" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 18168, - "name": "NonStandardTokenDetailed", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 18167, - "src": "3450:24:43", - "typeDescriptions": { - "typeIdentifier": "t_contract$_NonStandardTokenDetailed_$18167", - "typeString": "contract NonStandardTokenDetailed" - } - }, - "id": 18169, - "nodeType": "InheritanceSpecifier", - "src": "3450:24:43" - } - ], - "contractDependencies": [ - 18131, - 18167, - 22052 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 18258, - "linearizedBaseContracts": [ - 18258, - 18167, - 18131, - 22052 - ], - "name": "TestNonStandardToken", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 18171, - "name": "ok", - "nodeType": "VariableDeclaration", - "scope": 18258, - "src": "3478:14:43", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 18170, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "3478:4:43", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "public" - }, - { - "body": { - "id": 18192, - "nodeType": "Block", - "src": "3651:17:43", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "74727565", - "id": 18189, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3659:4:43", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 18188, - "name": "set", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18203, - "src": "3655:3:43", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bool_$returns$__$", - "typeString": "function (bool)" - } - }, - "id": 18190, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3655:9:43", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 18191, - "nodeType": "ExpressionStatement", - "src": "3655:9:43" - } - ] - }, - "documentation": null, - "id": 18193, - "implemented": true, - "isConstructor": true, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 18182, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18173, - "src": "3615:5:43", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 18183, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18175, - "src": "3622:7:43", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 18184, - "name": "_decimals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18177, - "src": "3631:9:43", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - { - "argumentTypes": null, - "id": 18185, - "name": "_supply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18179, - "src": "3642:7:43", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 18186, - "modifierName": { - "argumentTypes": null, - "id": 18181, - "name": "NonStandardTokenDetailed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18167, - "src": "3590:24:43", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_NonStandardTokenDetailed_$18167_$", - "typeString": "type(contract NonStandardTokenDetailed)" - } - }, - "nodeType": "ModifierInvocation", - "src": "3590:60:43" - } - ], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 18180, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 18173, - "name": "_name", - "nodeType": "VariableDeclaration", - "scope": 18193, - "src": "3511:12:43", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 18172, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "3511:6:43", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 18175, - "name": "_symbol", - "nodeType": "VariableDeclaration", - "scope": 18193, - "src": "3527:14:43", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 18174, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "3527:6:43", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 18177, - "name": "_decimals", - "nodeType": "VariableDeclaration", - "scope": 18193, - "src": "3545:15:43", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 18176, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "3545:5:43", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 18179, - "name": "_supply", - "nodeType": "VariableDeclaration", - "scope": 18193, - "src": "3564:15:43", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 18178, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3564:7:43", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3507:75:43" - }, - "payable": false, - "returnParameters": { - "id": 18187, - "nodeType": "ParameterList", - "parameters": [], - "src": "3651:0:43" - }, - "scope": 18258, - "src": "3496:172:43", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 18202, - "nodeType": "Block", - "src": "3701:16:43", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 18200, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 18198, - "name": "ok", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18171, - "src": "3705:2:43", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 18199, - "name": "_ok", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18195, - "src": "3710:3:43", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "3705:8:43", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 18201, - "nodeType": "ExpressionStatement", - "src": "3705:8:43" - } - ] - }, - "documentation": null, - "id": 18203, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "set", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 18196, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 18195, - "name": "_ok", - "nodeType": "VariableDeclaration", - "scope": 18203, - "src": "3684:8:43", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 18194, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "3684:4:43", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3683:10:43" - }, - "payable": false, - "returnParameters": { - "id": 18197, - "nodeType": "ParameterList", - "parameters": [], - "src": "3701:0:43" - }, - "scope": 18258, - "src": "3671:46:43", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 18219, - "nodeType": "Block", - "src": "3778:49:43", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 18211, - "name": "_spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18205, - "src": "3791:8:43", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 18212, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18207, - "src": "3801:6:43", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 18210, - "name": "_approve", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18130, - "src": "3782:8:43", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 18213, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3782:26:43", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 18214, - "nodeType": "ExpressionStatement", - "src": "3782:26:43" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 18216, - "name": "ok", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18171, - "src": "3820:2:43", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 18215, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 22341, - 22342 - ], - "referencedDeclaration": 22341, - "src": "3812:7:43", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 18217, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3812:11:43", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 18218, - "nodeType": "ExpressionStatement", - "src": "3812:11:43" - } - ] - }, - "documentation": null, - "id": 18220, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 18208, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 18205, - "name": "_spender", - "nodeType": "VariableDeclaration", - "scope": 18220, - "src": "3737:16:43", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 18204, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3737:7:43", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 18207, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 18220, - "src": "3755:14:43", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 18206, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3755:7:43", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3736:34:43" - }, - "payable": false, - "returnParameters": { - "id": 18209, - "nodeType": "ParameterList", - "parameters": [], - "src": "3778:0:43" - }, - "scope": 18258, - "src": "3720:107:43", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 18236, - "nodeType": "Block", - "src": "3884:45:43", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 18228, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18222, - "src": "3898:3:43", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 18229, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18224, - "src": "3903:6:43", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 18227, - "name": "_transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18027, - "src": "3888:9:43", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 18230, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3888:22:43", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 18231, - "nodeType": "ExpressionStatement", - "src": "3888:22:43" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 18233, - "name": "ok", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18171, - "src": "3922:2:43", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 18232, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 22341, - 22342 - ], - "referencedDeclaration": 22341, - "src": "3914:7:43", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 18234, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3914:11:43", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 18235, - "nodeType": "ExpressionStatement", - "src": "3914:11:43" - } - ] - }, - "documentation": null, - "id": 18237, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "transfer", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 18225, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 18222, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 18237, - "src": "3848:11:43", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 18221, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3848:7:43", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 18224, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 18237, - "src": "3861:14:43", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 18223, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3861:7:43", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3847:29:43" - }, - "payable": false, - "returnParameters": { - "id": 18226, - "nodeType": "ParameterList", - "parameters": [], - "src": "3884:0:43" - }, - "scope": 18258, - "src": "3830:99:43", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 18256, - "nodeType": "Block", - "src": "4014:56:43", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 18247, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18239, - "src": "4032:5:43", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 18248, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18241, - "src": "4039:3:43", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 18249, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18243, - "src": "4044:6:43", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 18246, - "name": "_transferFrom", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18088, - "src": "4018:13:43", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 18250, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4018:33:43", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 18251, - "nodeType": "ExpressionStatement", - "src": "4018:33:43" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 18253, - "name": "ok", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18171, - "src": "4063:2:43", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 18252, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 22341, - 22342 - ], - "referencedDeclaration": 22341, - "src": "4055:7:43", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 18254, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4055:11:43", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 18255, - "nodeType": "ExpressionStatement", - "src": "4055:11:43" - } - ] - }, - "documentation": null, - "id": 18257, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 18244, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 18239, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 18257, - "src": "3957:13:43", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 18238, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3957:7:43", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 18241, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 18257, - "src": "3974:11:43", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 18240, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3974:7:43", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 18243, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 18257, - "src": "3989:14:43", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 18242, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3989:7:43", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3953:53:43" - }, - "payable": false, - "returnParameters": { - "id": 18245, - "nodeType": "ParameterList", - "parameters": [], - "src": "4014:0:43" - }, - "scope": 18258, - "src": "3932:138:43", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 18441, - "src": "3417:655:43" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 18259, - "name": "NonStandardToken", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 18131, - "src": "4122:16:43", - "typeDescriptions": { - "typeIdentifier": "t_contract$_NonStandardToken_$18131", - "typeString": "contract NonStandardToken" - } - }, - "id": 18260, - "nodeType": "InheritanceSpecifier", - "src": "4122:16:43" - } - ], - "contractDependencies": [ - 18131, - 22052 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 18328, - "linearizedBaseContracts": [ - 18328, - 18131, - 22052 - ], - "name": "TestNonStandardTokenWithoutDecimals", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 18262, - "name": "name", - "nodeType": "VariableDeclaration", - "scope": 18328, - "src": "4142:18:43", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 18261, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "4142:6:43", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 18264, - "name": "symbol", - "nodeType": "VariableDeclaration", - "scope": 18328, - "src": "4163:20:43", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 18263, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "4163:6:43", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "public" - }, - { - "body": { - "id": 18284, - "nodeType": "Block", - "src": "4288:40:43", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 18278, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 18276, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18262, - "src": "4292:4:43", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 18277, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18266, - "src": "4299:5:43", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "4292:12:43", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 18279, - "nodeType": "ExpressionStatement", - "src": "4292:12:43" - }, - { - "expression": { - "argumentTypes": null, - "id": 18282, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 18280, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18264, - "src": "4308:6:43", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 18281, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18268, - "src": "4317:7:43", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "4308:16:43", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 18283, - "nodeType": "ExpressionStatement", - "src": "4308:16:43" - } - ] - }, - "documentation": null, - "id": 18285, - "implemented": true, - "isConstructor": true, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 18273, - "name": "_supply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18270, - "src": "4279:7:43", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 18274, - "modifierName": { - "argumentTypes": null, - "id": 18272, - "name": "NonStandardToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18131, - "src": "4262:16:43", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_NonStandardToken_$18131_$", - "typeString": "type(contract NonStandardToken)" - } - }, - "nodeType": "ModifierInvocation", - "src": "4262:25:43" - } - ], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 18271, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 18266, - "name": "_name", - "nodeType": "VariableDeclaration", - "scope": 18285, - "src": "4202:12:43", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 18265, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "4202:6:43", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 18268, - "name": "_symbol", - "nodeType": "VariableDeclaration", - "scope": 18285, - "src": "4218:14:43", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 18267, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "4218:6:43", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 18270, - "name": "_supply", - "nodeType": "VariableDeclaration", - "scope": 18285, - "src": "4236:15:43", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 18269, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4236:7:43", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4198:56:43" - }, - "payable": false, - "returnParameters": { - "id": 18275, - "nodeType": "ParameterList", - "parameters": [], - "src": "4288:0:43" - }, - "scope": 18328, - "src": "4187:141:43", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 18297, - "nodeType": "Block", - "src": "4389:34:43", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 18293, - "name": "_spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18287, - "src": "4402:8:43", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 18294, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18289, - "src": "4412:6:43", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 18292, - "name": "_approve", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18130, - "src": "4393:8:43", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 18295, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4393:26:43", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 18296, - "nodeType": "ExpressionStatement", - "src": "4393:26:43" - } - ] - }, - "documentation": null, - "id": 18298, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 18290, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 18287, - "name": "_spender", - "nodeType": "VariableDeclaration", - "scope": 18298, - "src": "4348:16:43", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 18286, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4348:7:43", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 18289, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 18298, - "src": "4366:14:43", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 18288, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4366:7:43", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4347:34:43" - }, - "payable": false, - "returnParameters": { - "id": 18291, - "nodeType": "ParameterList", - "parameters": [], - "src": "4389:0:43" - }, - "scope": 18328, - "src": "4331:92:43", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 18310, - "nodeType": "Block", - "src": "4480:30:43", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 18306, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18300, - "src": "4494:3:43", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 18307, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18302, - "src": "4499:6:43", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 18305, - "name": "_transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18027, - "src": "4484:9:43", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 18308, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4484:22:43", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 18309, - "nodeType": "ExpressionStatement", - "src": "4484:22:43" - } - ] - }, - "documentation": null, - "id": 18311, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "transfer", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 18303, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 18300, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 18311, - "src": "4444:11:43", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 18299, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4444:7:43", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 18302, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 18311, - "src": "4457:14:43", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 18301, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4457:7:43", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4443:29:43" - }, - "payable": false, - "returnParameters": { - "id": 18304, - "nodeType": "ParameterList", - "parameters": [], - "src": "4480:0:43" - }, - "scope": 18328, - "src": "4426:84:43", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 18326, - "nodeType": "Block", - "src": "4595:41:43", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 18321, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18313, - "src": "4613:5:43", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 18322, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18315, - "src": "4620:3:43", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 18323, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18317, - "src": "4625:6:43", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 18320, - "name": "_transferFrom", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18088, - "src": "4599:13:43", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 18324, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4599:33:43", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 18325, - "nodeType": "ExpressionStatement", - "src": "4599:33:43" - } - ] - }, - "documentation": null, - "id": 18327, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 18318, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 18313, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 18327, - "src": "4538:13:43", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 18312, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4538:7:43", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 18315, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 18327, - "src": "4555:11:43", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 18314, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4555:7:43", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 18317, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 18327, - "src": "4570:14:43", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 18316, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4570:7:43", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4534:53:43" - }, - "payable": false, - "returnParameters": { - "id": 18319, - "nodeType": "ParameterList", - "parameters": [], - "src": "4595:0:43" - }, - "scope": 18328, - "src": "4513:123:43", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 18441, - "src": "4074:564:43" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 18329, - "name": "NonStandardTokenDetailed", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 18167, - "src": "4670:24:43", - "typeDescriptions": { - "typeIdentifier": "t_contract$_NonStandardTokenDetailed_$18167", - "typeString": "contract NonStandardTokenDetailed" - } - }, - "id": 18330, - "nodeType": "InheritanceSpecifier", - "src": "4670:24:43" - } - ], - "contractDependencies": [ - 18131, - 18167, - 22052 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 18440, - "linearizedBaseContracts": [ - 18440, - 18167, - 18131, - 22052 - ], - "name": "TestStandardToken", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 18332, - "name": "ok", - "nodeType": "VariableDeclaration", - "scope": 18440, - "src": "4698:14:43", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 18331, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "4698:4:43", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 18334, - "name": "ret", - "nodeType": "VariableDeclaration", - "scope": 18440, - "src": "4715:15:43", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 18333, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "4715:4:43", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "public" - }, - { - "body": { - "id": 18356, - "nodeType": "Block", - "src": "4889:23:43", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "74727565", - "id": 18352, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4897:4:43", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - { - "argumentTypes": null, - "hexValue": "74727565", - "id": 18353, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4903:4:43", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 18351, - "name": "set", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18373, - "src": "4893:3:43", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bool_$_t_bool_$returns$__$", - "typeString": "function (bool,bool)" - } - }, - "id": 18354, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4893:15:43", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 18355, - "nodeType": "ExpressionStatement", - "src": "4893:15:43" - } - ] - }, - "documentation": null, - "id": 18357, - "implemented": true, - "isConstructor": true, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 18345, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18336, - "src": "4853:5:43", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 18346, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18338, - "src": "4860:7:43", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 18347, - "name": "_decimals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18340, - "src": "4869:9:43", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - { - "argumentTypes": null, - "id": 18348, - "name": "_supply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18342, - "src": "4880:7:43", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 18349, - "modifierName": { - "argumentTypes": null, - "id": 18344, - "name": "NonStandardTokenDetailed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18167, - "src": "4828:24:43", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_NonStandardTokenDetailed_$18167_$", - "typeString": "type(contract NonStandardTokenDetailed)" - } - }, - "nodeType": "ModifierInvocation", - "src": "4828:60:43" - } - ], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 18343, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 18336, - "name": "_name", - "nodeType": "VariableDeclaration", - "scope": 18357, - "src": "4749:12:43", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 18335, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "4749:6:43", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 18338, - "name": "_symbol", - "nodeType": "VariableDeclaration", - "scope": 18357, - "src": "4765:14:43", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 18337, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "4765:6:43", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 18340, - "name": "_decimals", - "nodeType": "VariableDeclaration", - "scope": 18357, - "src": "4783:15:43", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 18339, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "4783:5:43", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 18342, - "name": "_supply", - "nodeType": "VariableDeclaration", - "scope": 18357, - "src": "4802:15:43", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 18341, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4802:7:43", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4745:75:43" - }, - "payable": false, - "returnParameters": { - "id": 18350, - "nodeType": "ParameterList", - "parameters": [], - "src": "4889:0:43" - }, - "scope": 18440, - "src": "4734:178:43", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 18372, - "nodeType": "Block", - "src": "4956:30:43", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 18366, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 18364, - "name": "ok", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18332, - "src": "4960:2:43", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 18365, - "name": "_ok", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18359, - "src": "4965:3:43", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "4960:8:43", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 18367, - "nodeType": "ExpressionStatement", - "src": "4960:8:43" - }, - { - "expression": { - "argumentTypes": null, - "id": 18370, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 18368, - "name": "ret", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18334, - "src": "4972:3:43", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 18369, - "name": "_ret", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18361, - "src": "4978:4:43", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "4972:10:43", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 18371, - "nodeType": "ExpressionStatement", - "src": "4972:10:43" - } - ] - }, - "documentation": null, - "id": 18373, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "set", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 18362, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 18359, - "name": "_ok", - "nodeType": "VariableDeclaration", - "scope": 18373, - "src": "4928:8:43", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 18358, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "4928:4:43", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 18361, - "name": "_ret", - "nodeType": "VariableDeclaration", - "scope": 18373, - "src": "4938:9:43", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 18360, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "4938:4:43", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4927:21:43" - }, - "payable": false, - "returnParameters": { - "id": 18363, - "nodeType": "ParameterList", - "parameters": [], - "src": "4956:0:43" - }, - "scope": 18440, - "src": "4915:71:43", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 18393, - "nodeType": "Block", - "src": "5062:63:43", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 18383, - "name": "_spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18375, - "src": "5075:8:43", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 18384, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18377, - "src": "5085:6:43", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 18382, - "name": "_approve", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18130, - "src": "5066:8:43", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 18385, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5066:26:43", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 18386, - "nodeType": "ExpressionStatement", - "src": "5066:26:43" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 18388, - "name": "ok", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18332, - "src": "5104:2:43", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 18387, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 22341, - 22342 - ], - "referencedDeclaration": 22341, - "src": "5096:7:43", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 18389, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5096:11:43", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 18390, - "nodeType": "ExpressionStatement", - "src": "5096:11:43" - }, - { - "expression": { - "argumentTypes": null, - "id": 18391, - "name": "ret", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18334, - "src": "5118:3:43", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 18381, - "id": 18392, - "nodeType": "Return", - "src": "5111:10:43" - } - ] - }, - "documentation": null, - "id": 18394, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 18378, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 18375, - "name": "_spender", - "nodeType": "VariableDeclaration", - "scope": 18394, - "src": "5006:16:43", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 18374, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5006:7:43", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 18377, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 18394, - "src": "5024:14:43", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 18376, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5024:7:43", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5005:34:43" - }, - "payable": false, - "returnParameters": { - "id": 18381, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 18380, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 18394, - "src": "5056:4:43", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 18379, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "5056:4:43", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5055:6:43" - }, - "scope": 18440, - "src": "4989:136:43", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 18414, - "nodeType": "Block", - "src": "5197:59:43", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 18404, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18396, - "src": "5211:3:43", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 18405, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18398, - "src": "5216:6:43", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 18403, - "name": "_transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18027, - "src": "5201:9:43", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 18406, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5201:22:43", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 18407, - "nodeType": "ExpressionStatement", - "src": "5201:22:43" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 18409, - "name": "ok", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18332, - "src": "5235:2:43", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 18408, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 22341, - 22342 - ], - "referencedDeclaration": 22341, - "src": "5227:7:43", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 18410, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5227:11:43", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 18411, - "nodeType": "ExpressionStatement", - "src": "5227:11:43" - }, - { - "expression": { - "argumentTypes": null, - "id": 18412, - "name": "ret", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18334, - "src": "5249:3:43", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 18402, - "id": 18413, - "nodeType": "Return", - "src": "5242:10:43" - } - ] - }, - "documentation": null, - "id": 18415, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "transfer", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 18399, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 18396, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 18415, - "src": "5146:11:43", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 18395, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5146:7:43", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 18398, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 18415, - "src": "5159:14:43", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 18397, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5159:7:43", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5145:29:43" - }, - "payable": false, - "returnParameters": { - "id": 18402, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 18401, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 18415, - "src": "5191:4:43", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 18400, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "5191:4:43", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5190:6:43" - }, - "scope": 18440, - "src": "5128:128:43", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 18438, - "nodeType": "Block", - "src": "5356:70:43", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 18427, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18417, - "src": "5374:5:43", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 18428, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18419, - "src": "5381:3:43", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 18429, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18421, - "src": "5386:6:43", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 18426, - "name": "_transferFrom", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18088, - "src": "5360:13:43", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 18430, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5360:33:43", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 18431, - "nodeType": "ExpressionStatement", - "src": "5360:33:43" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 18433, - "name": "ok", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18332, - "src": "5405:2:43", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 18432, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 22341, - 22342 - ], - "referencedDeclaration": 22341, - "src": "5397:7:43", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 18434, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5397:11:43", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 18435, - "nodeType": "ExpressionStatement", - "src": "5397:11:43" - }, - { - "expression": { - "argumentTypes": null, - "id": 18436, - "name": "ret", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18334, - "src": "5419:3:43", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 18425, - "id": 18437, - "nodeType": "Return", - "src": "5412:10:43" - } - ] - }, - "documentation": null, - "id": 18439, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 18422, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 18417, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 18439, - "src": "5284:13:43", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 18416, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5284:7:43", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 18419, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 18439, - "src": "5301:11:43", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 18418, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5301:7:43", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 18421, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 18439, - "src": "5316:14:43", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 18420, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5316:7:43", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5280:53:43" - }, - "payable": false, - "returnParameters": { - "id": 18425, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 18424, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 18439, - "src": "5350:4:43", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 18423, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "5350:4:43", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5349:6:43" - }, - "scope": 18440, - "src": "5259:167:43", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 18441, - "src": "4640:788:43" - } - ], - "src": "0:5429:43" - }, - "id": 43 - }, - "solidity/contracts/helpers/TestTypedConverterAnchorFactory.sol": { - "ast": { - "absolutePath": "solidity/contracts/helpers/TestTypedConverterAnchorFactory.sol", - "exportedSymbols": { - "TestTypedConverterAnchorFactory": [ - 18498 - ] - }, - "id": 18499, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 18442, - "literals": [ - "solidity", - "0.4", - ".26" - ], - "nodeType": "PragmaDirective", - "src": "0:23:44" - }, - { - "absolutePath": "solidity/contracts/converter/interfaces/IConverterAnchor.sol", - "file": "../converter/interfaces/IConverterAnchor.sol", - "id": 18443, - "nodeType": "ImportDirective", - "scope": 18499, - "sourceUnit": 11827, - "src": "24:54:44", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "solidity/contracts/converter/interfaces/ITypedConverterAnchorFactory.sol", - "file": "../converter/interfaces/ITypedConverterAnchorFactory.sol", - "id": 18444, - "nodeType": "ImportDirective", - "scope": 18499, - "sourceUnit": 12261, - "src": "79:66:44", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "solidity/contracts/token/SmartToken.sol", - "file": "../token/SmartToken.sol", - "id": 18445, - "nodeType": "ImportDirective", - "scope": 18499, - "sourceUnit": 20149, - "src": "146:33:44", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 18446, - "name": "ITypedConverterAnchorFactory", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 12260, - "src": "225:28:44", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ITypedConverterAnchorFactory_$12260", - "typeString": "contract ITypedConverterAnchorFactory" - } - }, - "id": 18447, - "nodeType": "InheritanceSpecifier", - "src": "225:28:44" - } - ], - "contractDependencies": [ - 12260, - 20148 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 18498, - "linearizedBaseContracts": [ - 18498, - 12260 - ], - "name": "TestTypedConverterAnchorFactory", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 18449, - "name": "name", - "nodeType": "VariableDeclaration", - "scope": 18498, - "src": "257:18:44", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 18448, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "257:6:44", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "public" - }, - { - "body": { - "id": 18458, - "nodeType": "Block", - "src": "312:20:44", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 18456, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 18454, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18449, - "src": "316:4:44", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 18455, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18451, - "src": "323:5:44", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "316:12:44", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 18457, - "nodeType": "ExpressionStatement", - "src": "316:12:44" - } - ] - }, - "documentation": null, - "id": 18459, - "implemented": true, - "isConstructor": true, - "isDeclaredConst": false, - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 18452, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 18451, - "name": "_name", - "nodeType": "VariableDeclaration", - "scope": 18459, - "src": "291:12:44", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 18450, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "291:6:44", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "290:14:44" - }, - "payable": false, - "returnParameters": { - "id": 18453, - "nodeType": "ParameterList", - "parameters": [], - "src": "312:0:44" - }, - "scope": 18498, - "src": "279:53:44", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 18466, - "nodeType": "Block", - "src": "389:16:44", - "statements": [ - { - "expression": { - "argumentTypes": null, - "hexValue": "38", - "id": 18464, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "400:1:44", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_8_by_1", - "typeString": "int_const 8" - }, - "value": "8" - }, - "functionReturnParameters": 18463, - "id": 18465, - "nodeType": "Return", - "src": "393:8:44" - } - ] - }, - "documentation": null, - "id": 18467, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "converterType", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 18460, - "nodeType": "ParameterList", - "parameters": [], - "src": "357:2:44" - }, - "payable": false, - "returnParameters": { - "id": 18463, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 18462, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 18467, - "src": "381:6:44", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 18461, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "381:6:44", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "380:8:44" - }, - "scope": 18498, - "src": "335:70:44", - "stateMutability": "pure", - "superFunction": 12248, - "visibility": "public" - }, - { - "body": { - "id": 18496, - "nodeType": "Block", - "src": "525:133:44", - "statements": [ - { - "assignments": [ - 18479 - ], - "declarations": [ - { - "constant": false, - "id": 18479, - "name": "anchor", - "nodeType": "VariableDeclaration", - "scope": 18497, - "src": "529:23:44", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - }, - "typeName": { - "contractScope": null, - "id": 18478, - "name": "IConverterAnchor", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 11826, - "src": "529:16:44", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 18486, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 18482, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18449, - "src": "570:4:44", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - { - "argumentTypes": null, - "id": 18483, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18471, - "src": "576:7:44", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 18484, - "name": "_decimals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18473, - "src": "585:9:44", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - ], - "id": 18481, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "555:14:44", - "typeDescriptions": { - "typeIdentifier": "t_function_creation_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_uint8_$returns$_t_contract$_SmartToken_$20148_$", - "typeString": "function (string memory,string memory,uint8) returns (contract SmartToken)" - }, - "typeName": { - "contractScope": null, - "id": 18480, - "name": "SmartToken", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20148, - "src": "559:10:44", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SmartToken_$20148", - "typeString": "contract SmartToken" - } - } - }, - "id": 18485, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "555:40:44", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SmartToken_$20148", - "typeString": "contract SmartToken" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "529:66:44" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 18490, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22338, - "src": "625:3:44", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 18491, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "625:10:44", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 18487, - "name": "anchor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18479, - "src": "600:6:44", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - }, - "id": 18489, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transferOwnership", - "nodeType": "MemberAccess", - "referencedDeclaration": 22243, - "src": "600:24:44", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$", - "typeString": "function (address) external" - } - }, - "id": 18492, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "600:36:44", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 18493, - "nodeType": "ExpressionStatement", - "src": "600:36:44" - }, - { - "expression": { - "argumentTypes": null, - "id": 18494, - "name": "anchor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18479, - "src": "648:6:44", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - }, - "functionReturnParameters": 18477, - "id": 18495, - "nodeType": "Return", - "src": "641:13:44" - } - ] - }, - "documentation": null, - "id": 18497, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "createAnchor", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 18474, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 18469, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 18497, - "src": "433:6:44", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 18468, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "433:6:44", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 18471, - "name": "_symbol", - "nodeType": "VariableDeclaration", - "scope": 18497, - "src": "454:14:44", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 18470, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "454:6:44", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 18473, - "name": "_decimals", - "nodeType": "VariableDeclaration", - "scope": 18497, - "src": "472:15:44", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 18472, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "472:5:44", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "429:61:44" - }, - "payable": false, - "returnParameters": { - "id": 18477, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 18476, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 18497, - "src": "507:16:44", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - }, - "typeName": { - "contractScope": null, - "id": 18475, - "name": "IConverterAnchor", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 11826, - "src": "507:16:44", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "506:18:44" - }, - "scope": 18498, - "src": "408:250:44", - "stateMutability": "nonpayable", - "superFunction": 12259, - "visibility": "public" - } - ], - "scope": 18499, - "src": "181:479:44" - } - ], - "src": "0:661:44" - }, - "id": 44 - }, - "solidity/contracts/sovrynswapx/SovrynSwapX.sol": { - "ast": { - "absolutePath": "solidity/contracts/sovrynswapx/SovrynSwapX.sol", - "exportedSymbols": { - "SovrynSwapX": [ - 19362 - ] - }, - "id": 19363, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 18500, - "literals": [ - "solidity", - "0.4", - ".26" - ], - "nodeType": "PragmaDirective", - "src": "0:23:45" - }, - { - "absolutePath": "solidity/contracts/sovrynswapx/interfaces/ISovrynSwapXUpgrader.sol", - "file": "./interfaces/ISovrynSwapXUpgrader.sol", - "id": 18501, - "nodeType": "ImportDirective", - "scope": 19363, - "sourceUnit": 19478, - "src": "24:47:45", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "solidity/contracts/sovrynswapx/interfaces/ISovrynSwapX.sol", - "file": "./interfaces/ISovrynSwapX.sol", - "id": 18502, - "nodeType": "ImportDirective", - "scope": 19363, - "sourceUnit": 19467, - "src": "72:39:45", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "solidity/contracts/utility/ContractRegistryClient.sol", - "file": "../utility/ContractRegistryClient.sol", - "id": 18503, - "nodeType": "ImportDirective", - "scope": 19363, - "sourceUnit": 20933, - "src": "112:47:45", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "solidity/contracts/utility/SafeMath.sol", - "file": "../utility/SafeMath.sol", - "id": 18504, - "nodeType": "ImportDirective", - "scope": 19363, - "sourceUnit": 21818, - "src": "160:33:45", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "solidity/contracts/utility/TokenHandler.sol", - "file": "../utility/TokenHandler.sol", - "id": 18505, - "nodeType": "ImportDirective", - "scope": 19363, - "sourceUnit": 21934, - "src": "194:37:45", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "solidity/contracts/utility/TokenHolder.sol", - "file": "../utility/TokenHolder.sol", - "id": 18506, - "nodeType": "ImportDirective", - "scope": 19363, - "sourceUnit": 21977, - "src": "232:36:45", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 18507, - "name": "ISovrynSwapX", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 19466, - "src": "859:12:45", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISovrynSwapX_$19466", - "typeString": "contract ISovrynSwapX" - } - }, - "id": 18508, - "nodeType": "InheritanceSpecifier", - "src": "859:12:45" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 18509, - "name": "TokenHandler", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 21933, - "src": "873:12:45", - "typeDescriptions": { - "typeIdentifier": "t_contract$_TokenHandler_$21933", - "typeString": "contract TokenHandler" - } - }, - "id": 18510, - "nodeType": "InheritanceSpecifier", - "src": "873:12:45" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 18511, - "name": "TokenHolder", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 21976, - "src": "887:11:45", - "typeDescriptions": { - "typeIdentifier": "t_contract$_TokenHolder_$21976", - "typeString": "contract TokenHolder" - } - }, - "id": 18512, - "nodeType": "InheritanceSpecifier", - "src": "887:11:45" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 18513, - "name": "ContractRegistryClient", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20932, - "src": "900:22:45", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ContractRegistryClient_$20932", - "typeString": "contract ContractRegistryClient" - } - }, - "id": 18514, - "nodeType": "InheritanceSpecifier", - "src": "900:22:45" - } - ], - "contractDependencies": [ - 19466, - 20932, - 21324, - 21933, - 21976, - 22052, - 22247, - 22313 - ], - "contractKind": "contract", - "documentation": "@dev The SovrynSwapX contract allows cross chain token transfers.\n * There are two processes that take place in the contract -\n- Initiate a cross chain transfer to a target blockchain (locks tokens from the caller account on Ethereum)\n- Report a cross chain transfer initiated on a source blockchain (releases tokens to an account on Ethereum)\n * Reporting cross chain transfers works similar to standard multisig contracts, meaning that multiple\ncallers are required to report a transfer before tokens are released to the target account.", - "fullyImplemented": true, - "id": 19362, - "linearizedBaseContracts": [ - 19362, - 20932, - 21976, - 22052, - 21324, - 21933, - 22313, - 22247, - 19466 - ], - "name": "SovrynSwapX", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 18517, - "libraryName": { - "contractScope": null, - "id": 18515, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 21817, - "src": "932:8:45", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$21817", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "926:27:45", - "typeName": { - "id": 18516, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "945:7:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "canonicalName": "SovrynSwapX.Transaction", - "id": 18528, - "members": [ - { - "constant": false, - "id": 18519, - "name": "amount", - "nodeType": "VariableDeclaration", - "scope": 18528, - "src": "1065:14:45", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 18518, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1065:7:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 18521, - "name": "fromBlockchain", - "nodeType": "VariableDeclaration", - "scope": 18528, - "src": "1083:22:45", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 18520, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1083:7:45", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 18523, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 18528, - "src": "1109:10:45", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 18522, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1109:7:45", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 18525, - "name": "numOfReports", - "nodeType": "VariableDeclaration", - "scope": 18528, - "src": "1123:18:45", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 18524, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "1123:5:45", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 18527, - "name": "completed", - "nodeType": "VariableDeclaration", - "scope": 18528, - "src": "1145:14:45", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 18526, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1145:4:45", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "name": "Transaction", - "nodeType": "StructDefinition", - "scope": 19362, - "src": "1042:121:45", - "visibility": "public" - }, - { - "constant": true, - "id": 18531, - "name": "version", - "nodeType": "VariableDeclaration", - "scope": 19362, - "src": "1166:34:45", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 18529, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "1166:6:45", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "34", - "id": 18530, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1199:1:45", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_4_by_1", - "typeString": "int_const 4" - }, - "value": "4" - }, - "visibility": "public" - }, - { - "constant": false, - "id": 18533, - "name": "maxLockLimit", - "nodeType": "VariableDeclaration", - "scope": 19362, - "src": "1204:27:45", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 18532, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1204:7:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 18535, - "name": "maxReleaseLimit", - "nodeType": "VariableDeclaration", - "scope": 19362, - "src": "1304:30:45", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 18534, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1304:7:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 18537, - "name": "minLimit", - "nodeType": "VariableDeclaration", - "scope": 19362, - "src": "1409:23:45", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 18536, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1409:7:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 18539, - "name": "prevLockLimit", - "nodeType": "VariableDeclaration", - "scope": 19362, - "src": "1510:28:45", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 18538, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1510:7:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 18541, - "name": "prevReleaseLimit", - "nodeType": "VariableDeclaration", - "scope": 19362, - "src": "1588:31:45", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 18540, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1588:7:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 18543, - "name": "limitIncPerBlock", - "nodeType": "VariableDeclaration", - "scope": 19362, - "src": "1672:31:45", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 18542, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1672:7:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 18545, - "name": "prevLockBlockNumber", - "nodeType": "VariableDeclaration", - "scope": 19362, - "src": "1748:34:45", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 18544, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1748:7:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 18547, - "name": "prevReleaseBlockNumber", - "nodeType": "VariableDeclaration", - "scope": 19362, - "src": "1834:37:45", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 18546, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1834:7:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 18549, - "name": "minRequiredReports", - "nodeType": "VariableDeclaration", - "scope": 19362, - "src": "1926:31:45", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 18548, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "1926:5:45", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 18551, - "name": "token", - "nodeType": "VariableDeclaration", - "scope": 19362, - "src": "2017:24:45", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - "typeName": { - "contractScope": null, - "id": 18550, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "2017:11:45", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 18554, - "name": "xTransfersEnabled", - "nodeType": "VariableDeclaration", - "scope": 19362, - "src": "2060:36:45", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 18552, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2060:4:45", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 18553, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2092:4:45", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "visibility": "public" - }, - { - "constant": false, - "id": 18557, - "name": "reportingEnabled", - "nodeType": "VariableDeclaration", - "scope": 19362, - "src": "2148:35:45", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 18555, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2148:4:45", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 18556, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2179:4:45", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "visibility": "public" - }, - { - "constant": false, - "id": 18561, - "name": "transactions", - "nodeType": "VariableDeclaration", - "scope": 19362, - "src": "2257:51:45", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Transaction_$18528_storage_$", - "typeString": "mapping(uint256 => struct SovrynSwapX.Transaction)" - }, - "typeName": { - "id": 18560, - "keyType": { - "id": 18558, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2265:7:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "2257:31:45", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Transaction_$18528_storage_$", - "typeString": "mapping(uint256 => struct SovrynSwapX.Transaction)" - }, - "valueType": { - "contractScope": null, - "id": 18559, - "name": "Transaction", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 18528, - "src": "2276:11:45", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Transaction_$18528_storage_ptr", - "typeString": "struct SovrynSwapX.Transaction" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 18565, - "name": "transactionIds", - "nodeType": "VariableDeclaration", - "scope": 19362, - "src": "2336:49:45", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - }, - "typeName": { - "id": 18564, - "keyType": { - "id": 18562, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2344:7:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "2336:27:45", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - }, - "valueType": { - "id": 18563, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2355:7:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 18571, - "name": "reportedTxs", - "nodeType": "VariableDeclaration", - "scope": 19362, - "src": "2452:63:45", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(uint256 => mapping(address => bool))" - }, - "typeName": { - "id": 18570, - "keyType": { - "id": 18566, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2460:7:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "2452:44:45", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(uint256 => mapping(address => bool))" - }, - "valueType": { - "id": 18569, - "keyType": { - "id": 18567, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2479:7:45", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "2471:24:45", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - }, - "valueType": { - "id": 18568, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2490:4:45", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 18575, - "name": "reporters", - "nodeType": "VariableDeclaration", - "scope": 19362, - "src": "2562:41:45", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - }, - "typeName": { - "id": 18574, - "keyType": { - "id": 18572, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2570:7:45", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "2562:24:45", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - }, - "valueType": { - "id": 18573, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2581:4:45", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "anonymous": false, - "documentation": "@dev triggered when tokens are locked in smart contract\n\t * @param _from wallet address that the tokens are locked from\n@param _amount amount locked", - "id": 18581, - "name": "TokensLock", - "nodeType": "EventDefinition", - "parameters": { - "id": 18580, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 18577, - "indexed": true, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 18581, - "src": "2799:21:45", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 18576, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2799:7:45", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 18579, - "indexed": false, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 18581, - "src": "2822:15:45", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 18578, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2822:7:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2798:40:45" - }, - "src": "2782:57:45" - }, - { - "anonymous": false, - "documentation": "@dev triggered when tokens are released by the smart contract\n\t * @param _to wallet address that the tokens are released to\n@param _amount amount released", - "id": 18587, - "name": "TokensRelease", - "nodeType": "EventDefinition", - "parameters": { - "id": 18586, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 18583, - "indexed": true, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 18587, - "src": "3045:19:45", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 18582, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3045:7:45", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 18585, - "indexed": false, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 18587, - "src": "3066:15:45", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 18584, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3066:7:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3044:38:45" - }, - "src": "3025:58:45" - }, - { - "anonymous": false, - "documentation": "@dev triggered when xTransfer is successfully called\n\t * @param _from wallet address that initiated the xtransfer\n@param _toBlockchain target blockchain\n@param _to target wallet\n@param _amount transfer amount\n@param _id xtransfer id", - "id": 18599, - "name": "XTransfer", - "nodeType": "EventDefinition", - "parameters": { - "id": 18598, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 18589, - "indexed": true, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 18599, - "src": "3418:21:45", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 18588, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3418:7:45", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 18591, - "indexed": false, - "name": "_toBlockchain", - "nodeType": "VariableDeclaration", - "scope": 18599, - "src": "3441:21:45", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 18590, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "3441:7:45", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 18593, - "indexed": true, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 18599, - "src": "3464:19:45", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 18592, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "3464:7:45", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 18595, - "indexed": false, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 18599, - "src": "3485:15:45", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 18594, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3485:7:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 18597, - "indexed": false, - "name": "_id", - "nodeType": "VariableDeclaration", - "scope": 18599, - "src": "3502:11:45", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 18596, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3502:7:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3417:97:45" - }, - "src": "3402:113:45" - }, - { - "anonymous": false, - "documentation": "@dev triggered when report is successfully submitted\n\t * @param _reporter reporter wallet\n@param _fromBlockchain source blockchain\n@param _txId tx id on the source blockchain\n@param _to target wallet\n@param _amount transfer amount\n@param _xTransferId xtransfer id", - "id": 18613, - "name": "TxReport", - "nodeType": "EventDefinition", - "parameters": { - "id": 18612, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 18601, - "indexed": true, - "name": "_reporter", - "nodeType": "VariableDeclaration", - "scope": 18613, - "src": "3880:25:45", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 18600, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3880:7:45", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 18603, - "indexed": false, - "name": "_fromBlockchain", - "nodeType": "VariableDeclaration", - "scope": 18613, - "src": "3907:23:45", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 18602, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "3907:7:45", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 18605, - "indexed": false, - "name": "_txId", - "nodeType": "VariableDeclaration", - "scope": 18613, - "src": "3932:13:45", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 18604, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3932:7:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 18607, - "indexed": false, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 18613, - "src": "3947:11:45", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 18606, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3947:7:45", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 18609, - "indexed": false, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 18613, - "src": "3960:15:45", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 18608, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3960:7:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 18611, - "indexed": false, - "name": "_xTransferId", - "nodeType": "VariableDeclaration", - "scope": 18613, - "src": "3977:20:45", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 18610, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3977:7:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3879:119:45" - }, - "src": "3865:134:45" - }, - { - "anonymous": false, - "documentation": "@dev triggered when final report is successfully submitted\n\t * @param _to target wallet\n@param _id xtransfer id", - "id": 18619, - "name": "XTransferComplete", - "nodeType": "EventDefinition", - "parameters": { - "id": 18618, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 18615, - "indexed": false, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 18619, - "src": "4162:11:45", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 18614, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4162:7:45", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 18617, - "indexed": false, - "name": "_id", - "nodeType": "VariableDeclaration", - "scope": 18619, - "src": "4175:11:45", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 18616, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4175:7:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4161:26:45" - }, - "src": "4138:50:45" - }, - { - "body": { - "id": 18713, - "nodeType": "Block", - "src": "5308:624:45", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 18667, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 18663, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 18661, - "name": "_minLimit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18625, - "src": "5340:9:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "id": 18662, - "name": "_maxLockLimit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18621, - "src": "5353:13:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5340:26:45", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 18666, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 18664, - "name": "_minLimit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18625, - "src": "5370:9:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "id": 18665, - "name": "_maxReleaseLimit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18623, - "src": "5383:16:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5370:29:45", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "5340:59:45", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552525f494e56414c49445f4d494e5f4c494d4954", - "id": 18668, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5401:23:45", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_e8863683e853f5e973d186a95524b4cc24f1541517387abe8d8f6488ce1e0dc9", - "typeString": "literal_string \"ERR_INVALID_MIN_LIMIT\"" - }, - "value": "ERR_INVALID_MIN_LIMIT" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_e8863683e853f5e973d186a95524b4cc24f1541517387abe8d8f6488ce1e0dc9", - "typeString": "literal_string \"ERR_INVALID_MIN_LIMIT\"" - } - ], - "id": 18660, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 22341, - 22342 - ], - "referencedDeclaration": 22342, - "src": "5332:7:45", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 18669, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5332:93:45", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 18670, - "nodeType": "ExpressionStatement", - "src": "5332:93:45" - }, - { - "expression": { - "argumentTypes": null, - "id": 18673, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 18671, - "name": "maxLockLimit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18533, - "src": "5499:12:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 18672, - "name": "_maxLockLimit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18621, - "src": "5514:13:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5499:28:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 18674, - "nodeType": "ExpressionStatement", - "src": "5499:28:45" - }, - { - "expression": { - "argumentTypes": null, - "id": 18677, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 18675, - "name": "maxReleaseLimit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18535, - "src": "5531:15:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 18676, - "name": "_maxReleaseLimit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18623, - "src": "5549:16:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5531:34:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 18678, - "nodeType": "ExpressionStatement", - "src": "5531:34:45" - }, - { - "expression": { - "argumentTypes": null, - "id": 18681, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 18679, - "name": "minLimit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18537, - "src": "5569:8:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 18680, - "name": "_minLimit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18625, - "src": "5580:9:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5569:20:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 18682, - "nodeType": "ExpressionStatement", - "src": "5569:20:45" - }, - { - "expression": { - "argumentTypes": null, - "id": 18685, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 18683, - "name": "limitIncPerBlock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18543, - "src": "5593:16:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 18684, - "name": "_limitIncPerBlock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18627, - "src": "5612:17:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5593:36:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 18686, - "nodeType": "ExpressionStatement", - "src": "5593:36:45" - }, - { - "expression": { - "argumentTypes": null, - "id": 18689, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 18687, - "name": "minRequiredReports", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18549, - "src": "5633:18:45", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 18688, - "name": "_minRequiredReports", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18629, - "src": "5654:19:45", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "5633:40:45", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "id": 18690, - "nodeType": "ExpressionStatement", - "src": "5633:40:45" - }, - { - "expression": { - "argumentTypes": null, - "id": 18693, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 18691, - "name": "prevLockLimit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18539, - "src": "5762:13:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 18692, - "name": "_maxLockLimit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18621, - "src": "5778:13:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5762:29:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 18694, - "nodeType": "ExpressionStatement", - "src": "5762:29:45" - }, - { - "expression": { - "argumentTypes": null, - "id": 18697, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 18695, - "name": "prevReleaseLimit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18541, - "src": "5795:16:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 18696, - "name": "_maxReleaseLimit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18623, - "src": "5814:16:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5795:35:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 18698, - "nodeType": "ExpressionStatement", - "src": "5795:35:45" - }, - { - "expression": { - "argumentTypes": null, - "id": 18702, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 18699, - "name": "prevLockBlockNumber", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18545, - "src": "5834:19:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 18700, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22328, - "src": "5856:5:45", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 18701, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "number", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5856:12:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5834:34:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 18703, - "nodeType": "ExpressionStatement", - "src": "5834:34:45" - }, - { - "expression": { - "argumentTypes": null, - "id": 18707, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 18704, - "name": "prevReleaseBlockNumber", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18547, - "src": "5872:22:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 18705, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22328, - "src": "5897:5:45", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 18706, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "number", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5897:12:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5872:37:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 18708, - "nodeType": "ExpressionStatement", - "src": "5872:37:45" - }, - { - "expression": { - "argumentTypes": null, - "id": 18711, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 18709, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 18551 - ], - "referencedDeclaration": 18551, - "src": "5914:5:45", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 18710, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18633, - "src": "5922:6:45", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "src": "5914:14:45", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "id": 18712, - "nodeType": "ExpressionStatement", - "src": "5914:14:45" - } - ] - }, - "documentation": "@dev initializes a new SovrynSwapX instance\n\t * @param _maxLockLimit maximum amount of tokens that can be locked in one transaction\n@param _maxReleaseLimit maximum amount of tokens that can be released in one transaction\n@param _minLimit minimum amount of tokens that can be transferred in one transaction\n@param _limitIncPerBlock how much the limit increases per block\n@param _minRequiredReports minimum number of reporters to report transaction before tokens can be released\n@param _registry address of contract registry\n@param _token erc20 token", - "id": 18714, - "implemented": true, - "isConstructor": true, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 18636, - "name": "_registry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18631, - "src": "5081:9:45", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IContractRegistry_$22220", - "typeString": "contract IContractRegistry" - } - } - ], - "id": 18637, - "modifierName": { - "argumentTypes": null, - "id": 18635, - "name": "ContractRegistryClient", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20932, - "src": "5058:22:45", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ContractRegistryClient_$20932_$", - "typeString": "type(contract ContractRegistryClient)" - } - }, - "nodeType": "ModifierInvocation", - "src": "5058:33:45" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 18639, - "name": "_maxLockLimit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18621, - "src": "5110:13:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 18640, - "modifierName": { - "argumentTypes": null, - "id": 18638, - "name": "greaterThanZero", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21988, - "src": "5094:15:45", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$", - "typeString": "modifier (uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "5094:30:45" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 18642, - "name": "_maxReleaseLimit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18623, - "src": "5143:16:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 18643, - "modifierName": { - "argumentTypes": null, - "id": 18641, - "name": "greaterThanZero", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21988, - "src": "5127:15:45", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$", - "typeString": "modifier (uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "5127:33:45" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 18645, - "name": "_minLimit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18625, - "src": "5179:9:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 18646, - "modifierName": { - "argumentTypes": null, - "id": 18644, - "name": "greaterThanZero", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21988, - "src": "5163:15:45", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$", - "typeString": "modifier (uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "5163:26:45" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 18648, - "name": "_limitIncPerBlock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18627, - "src": "5208:17:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 18649, - "modifierName": { - "argumentTypes": null, - "id": 18647, - "name": "greaterThanZero", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21988, - "src": "5192:15:45", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$", - "typeString": "modifier (uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "5192:34:45" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 18651, - "name": "_minRequiredReports", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18629, - "src": "5245:19:45", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - } - ], - "id": 18652, - "modifierName": { - "argumentTypes": null, - "id": 18650, - "name": "greaterThanZero", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21988, - "src": "5229:15:45", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$", - "typeString": "modifier (uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "5229:36:45" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 18654, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18633, - "src": "5281:6:45", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - } - ], - "id": 18655, - "modifierName": { - "argumentTypes": null, - "id": 18653, - "name": "validAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22011, - "src": "5268:12:45", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$", - "typeString": "modifier (address)" - } - }, - "nodeType": "ModifierInvocation", - "src": "5268:20:45" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 18657, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18633, - "src": "5299:6:45", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - } - ], - "id": 18658, - "modifierName": { - "argumentTypes": null, - "id": 18656, - "name": "notThis", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22036, - "src": "5291:7:45", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$", - "typeString": "modifier (address)" - } - }, - "nodeType": "ModifierInvocation", - "src": "5291:15:45" - } - ], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 18634, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 18621, - "name": "_maxLockLimit", - "nodeType": "VariableDeclaration", - "scope": 18714, - "src": "4862:21:45", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 18620, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4862:7:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 18623, - "name": "_maxReleaseLimit", - "nodeType": "VariableDeclaration", - "scope": 18714, - "src": "4887:24:45", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 18622, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4887:7:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 18625, - "name": "_minLimit", - "nodeType": "VariableDeclaration", - "scope": 18714, - "src": "4915:17:45", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 18624, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4915:7:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 18627, - "name": "_limitIncPerBlock", - "nodeType": "VariableDeclaration", - "scope": 18714, - "src": "4936:25:45", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 18626, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4936:7:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 18629, - "name": "_minRequiredReports", - "nodeType": "VariableDeclaration", - "scope": 18714, - "src": "4965:25:45", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 18628, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "4965:5:45", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 18631, - "name": "_registry", - "nodeType": "VariableDeclaration", - "scope": 18714, - "src": "4994:27:45", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IContractRegistry_$22220", - "typeString": "contract IContractRegistry" - }, - "typeName": { - "contractScope": null, - "id": 18630, - "name": "IContractRegistry", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 22220, - "src": "4994:17:45", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IContractRegistry_$22220", - "typeString": "contract IContractRegistry" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 18633, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 18714, - "src": "5025:18:45", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - "typeName": { - "contractScope": null, - "id": 18632, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "5025:11:45", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4858:188:45" - }, - "payable": false, - "returnParameters": { - "id": 18659, - "nodeType": "ParameterList", - "parameters": [], - "src": "5308:0:45" - }, - "scope": 19362, - "src": "4847:1085:45", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 18720, - "nodeType": "Block", - "src": "6001:28:45", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 18716, - "name": "_reporterOnly", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18733, - "src": "6005:13:45", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$__$", - "typeString": "function () view" - } - }, - "id": 18717, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6005:15:45", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 18718, - "nodeType": "ExpressionStatement", - "src": "6005:15:45" - }, - { - "id": 18719, - "nodeType": "PlaceholderStatement", - "src": "6024:1:45" - } - ] - }, - "documentation": null, - "id": 18721, - "name": "reporterOnly", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 18715, - "nodeType": "ParameterList", - "parameters": [], - "src": "6001:0:45" - }, - "src": "5979:50:45", - "visibility": "internal" - }, - { - "body": { - "id": 18732, - "nodeType": "Block", - "src": "6114:59:45", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 18725, - "name": "reporters", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18575, - "src": "6126:9:45", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 18728, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 18726, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22338, - "src": "6136:3:45", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 18727, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6136:10:45", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6126:21:45", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552525f4143434553535f44454e494544", - "id": 18729, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6149:19:45", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_f5894269650d3e1726ed81a4f48c5b62c7dd6fa025b89d639952a7012960d666", - "typeString": "literal_string \"ERR_ACCESS_DENIED\"" - }, - "value": "ERR_ACCESS_DENIED" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_f5894269650d3e1726ed81a4f48c5b62c7dd6fa025b89d639952a7012960d666", - "typeString": "literal_string \"ERR_ACCESS_DENIED\"" - } - ], - "id": 18724, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 22341, - 22342 - ], - "referencedDeclaration": 22342, - "src": "6118:7:45", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 18730, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6118:51:45", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 18731, - "nodeType": "ExpressionStatement", - "src": "6118:51:45" - } - ] - }, - "documentation": null, - "id": 18733, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "_reporterOnly", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 18722, - "nodeType": "ParameterList", - "parameters": [], - "src": "6097:2:45" - }, - "payable": false, - "returnParameters": { - "id": 18723, - "nodeType": "ParameterList", - "parameters": [], - "src": "6114:0:45" - }, - "scope": 19362, - "src": "6075:98:45", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 18739, - "nodeType": "Block", - "src": "6258:33:45", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 18735, - "name": "_xTransfersAllowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18749, - "src": "6262:18:45", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$__$", - "typeString": "function () view" - } - }, - "id": 18736, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6262:20:45", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 18737, - "nodeType": "ExpressionStatement", - "src": "6262:20:45" - }, - { - "id": 18738, - "nodeType": "PlaceholderStatement", - "src": "6286:1:45" - } - ] - }, - "documentation": null, - "id": 18740, - "name": "xTransfersAllowed", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 18734, - "nodeType": "ParameterList", - "parameters": [], - "src": "6258:0:45" - }, - "src": "6231:60:45", - "visibility": "internal" - }, - { - "body": { - "id": 18748, - "nodeType": "Block", - "src": "6381:50:45", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 18744, - "name": "xTransfersEnabled", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18554, - "src": "6393:17:45", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552525f44495341424c4544", - "id": 18745, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6412:14:45", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_9d3ff080c987bf451b6124b46a2d27535e787d6af81fbc565831013f54fd3a71", - "typeString": "literal_string \"ERR_DISABLED\"" - }, - "value": "ERR_DISABLED" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_9d3ff080c987bf451b6124b46a2d27535e787d6af81fbc565831013f54fd3a71", - "typeString": "literal_string \"ERR_DISABLED\"" - } - ], - "id": 18743, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 22341, - 22342 - ], - "referencedDeclaration": 22342, - "src": "6385:7:45", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 18746, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6385:42:45", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 18747, - "nodeType": "ExpressionStatement", - "src": "6385:42:45" - } - ] - }, - "documentation": null, - "id": 18749, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "_xTransfersAllowed", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 18741, - "nodeType": "ParameterList", - "parameters": [], - "src": "6364:2:45" - }, - "payable": false, - "returnParameters": { - "id": 18742, - "nodeType": "ParameterList", - "parameters": [], - "src": "6381:0:45" - }, - "scope": 19362, - "src": "6337:94:45", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 18755, - "nodeType": "Block", - "src": "6512:32:45", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 18751, - "name": "_reportingAllowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18765, - "src": "6516:17:45", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$__$", - "typeString": "function () view" - } - }, - "id": 18752, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6516:19:45", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 18753, - "nodeType": "ExpressionStatement", - "src": "6516:19:45" - }, - { - "id": 18754, - "nodeType": "PlaceholderStatement", - "src": "6539:1:45" - } - ] - }, - "documentation": null, - "id": 18756, - "name": "reportingAllowed", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 18750, - "nodeType": "ParameterList", - "parameters": [], - "src": "6512:0:45" - }, - "src": "6486:58:45", - "visibility": "internal" - }, - { - "body": { - "id": 18764, - "nodeType": "Block", - "src": "6633:49:45", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 18760, - "name": "reportingEnabled", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18557, - "src": "6645:16:45", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552525f44495341424c4544", - "id": 18761, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6663:14:45", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_9d3ff080c987bf451b6124b46a2d27535e787d6af81fbc565831013f54fd3a71", - "typeString": "literal_string \"ERR_DISABLED\"" - }, - "value": "ERR_DISABLED" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_9d3ff080c987bf451b6124b46a2d27535e787d6af81fbc565831013f54fd3a71", - "typeString": "literal_string \"ERR_DISABLED\"" - } - ], - "id": 18759, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 22341, - 22342 - ], - "referencedDeclaration": 22342, - "src": "6637:7:45", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 18762, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6637:41:45", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 18763, - "nodeType": "ExpressionStatement", - "src": "6637:41:45" - } - ] - }, - "documentation": null, - "id": 18765, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "_reportingAllowed", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 18757, - "nodeType": "ParameterList", - "parameters": [], - "src": "6616:2:45" - }, - "payable": false, - "returnParameters": { - "id": 18758, - "nodeType": "ParameterList", - "parameters": [], - "src": "6633:0:45" - }, - "scope": 19362, - "src": "6590:92:45", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 18779, - "nodeType": "Block", - "src": "6856:36:45", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 18777, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 18775, - "name": "maxLockLimit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18533, - "src": "6860:12:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 18776, - "name": "_maxLockLimit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18767, - "src": "6875:13:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6860:28:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 18778, - "nodeType": "ExpressionStatement", - "src": "6860:28:45" - } - ] - }, - "documentation": "@dev setter\n\t * @param _maxLockLimit new maxLockLimit", - "id": 18780, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 18770, - "modifierName": { - "argumentTypes": null, - "id": 18769, - "name": "ownerOnly", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21265, - "src": "6815:9:45", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "6815:9:45" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 18772, - "name": "_maxLockLimit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18767, - "src": "6841:13:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 18773, - "modifierName": { - "argumentTypes": null, - "id": 18771, - "name": "greaterThanZero", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21988, - "src": "6825:15:45", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$", - "typeString": "modifier (uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "6825:30:45" - } - ], - "name": "setMaxLockLimit", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 18768, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 18767, - "name": "_maxLockLimit", - "nodeType": "VariableDeclaration", - "scope": 18780, - "src": "6785:21:45", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 18766, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6785:7:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6784:23:45" - }, - "payable": false, - "returnParameters": { - "id": 18774, - "nodeType": "ParameterList", - "parameters": [], - "src": "6856:0:45" - }, - "scope": 19362, - "src": "6760:132:45", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 18794, - "nodeType": "Block", - "src": "7081:42:45", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 18792, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 18790, - "name": "maxReleaseLimit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18535, - "src": "7085:15:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 18791, - "name": "_maxReleaseLimit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18782, - "src": "7103:16:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7085:34:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 18793, - "nodeType": "ExpressionStatement", - "src": "7085:34:45" - } - ] - }, - "documentation": "@dev setter\n\t * @param _maxReleaseLimit new maxReleaseLimit", - "id": 18795, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 18785, - "modifierName": { - "argumentTypes": null, - "id": 18784, - "name": "ownerOnly", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21265, - "src": "7037:9:45", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "7037:9:45" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 18787, - "name": "_maxReleaseLimit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18782, - "src": "7063:16:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 18788, - "modifierName": { - "argumentTypes": null, - "id": 18786, - "name": "greaterThanZero", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21988, - "src": "7047:15:45", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$", - "typeString": "modifier (uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "7047:33:45" - } - ], - "name": "setMaxReleaseLimit", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 18783, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 18782, - "name": "_maxReleaseLimit", - "nodeType": "VariableDeclaration", - "scope": 18795, - "src": "7004:24:45", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 18781, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7004:7:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7003:26:45" - }, - "payable": false, - "returnParameters": { - "id": 18789, - "nodeType": "ParameterList", - "parameters": [], - "src": "7081:0:45" - }, - "scope": 19362, - "src": "6976:147:45", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 18820, - "nodeType": "Block", - "src": "7277:144:45", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 18812, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 18808, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 18806, - "name": "_minLimit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18797, - "src": "7309:9:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "id": 18807, - "name": "maxLockLimit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18533, - "src": "7322:12:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7309:25:45", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 18811, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 18809, - "name": "_minLimit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18797, - "src": "7338:9:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "id": 18810, - "name": "maxReleaseLimit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18535, - "src": "7351:15:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7338:28:45", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "7309:57:45", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552525f494e56414c49445f4d494e5f4c494d4954", - "id": 18813, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7368:23:45", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_e8863683e853f5e973d186a95524b4cc24f1541517387abe8d8f6488ce1e0dc9", - "typeString": "literal_string \"ERR_INVALID_MIN_LIMIT\"" - }, - "value": "ERR_INVALID_MIN_LIMIT" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_e8863683e853f5e973d186a95524b4cc24f1541517387abe8d8f6488ce1e0dc9", - "typeString": "literal_string \"ERR_INVALID_MIN_LIMIT\"" - } - ], - "id": 18805, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 22341, - 22342 - ], - "referencedDeclaration": 22342, - "src": "7301:7:45", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 18814, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7301:91:45", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 18815, - "nodeType": "ExpressionStatement", - "src": "7301:91:45" - }, - { - "expression": { - "argumentTypes": null, - "id": 18818, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 18816, - "name": "minLimit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18537, - "src": "7397:8:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 18817, - "name": "_minLimit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18797, - "src": "7408:9:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7397:20:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 18819, - "nodeType": "ExpressionStatement", - "src": "7397:20:45" - } - ] - }, - "documentation": "@dev setter\n\t * @param _minLimit new minLimit", - "id": 18821, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 18800, - "modifierName": { - "argumentTypes": null, - "id": 18799, - "name": "ownerOnly", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21265, - "src": "7240:9:45", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "7240:9:45" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 18802, - "name": "_minLimit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18797, - "src": "7266:9:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 18803, - "modifierName": { - "argumentTypes": null, - "id": 18801, - "name": "greaterThanZero", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21988, - "src": "7250:15:45", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$", - "typeString": "modifier (uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "7250:26:45" - } - ], - "name": "setMinLimit", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 18798, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 18797, - "name": "_minLimit", - "nodeType": "VariableDeclaration", - "scope": 18821, - "src": "7214:17:45", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 18796, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7214:7:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7213:19:45" - }, - "payable": false, - "returnParameters": { - "id": 18804, - "nodeType": "ParameterList", - "parameters": [], - "src": "7277:0:45" - }, - "scope": 19362, - "src": "7193:228:45", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 18835, - "nodeType": "Block", - "src": "7615:44:45", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 18833, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 18831, - "name": "limitIncPerBlock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18543, - "src": "7619:16:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 18832, - "name": "_limitIncPerBlock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18823, - "src": "7638:17:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7619:36:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 18834, - "nodeType": "ExpressionStatement", - "src": "7619:36:45" - } - ] - }, - "documentation": "@dev setter\n\t * @param _limitIncPerBlock new limitIncPerBlock", - "id": 18836, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 18826, - "modifierName": { - "argumentTypes": null, - "id": 18825, - "name": "ownerOnly", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21265, - "src": "7570:9:45", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "7570:9:45" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 18828, - "name": "_limitIncPerBlock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18823, - "src": "7596:17:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 18829, - "modifierName": { - "argumentTypes": null, - "id": 18827, - "name": "greaterThanZero", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21988, - "src": "7580:15:45", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$", - "typeString": "modifier (uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "7580:34:45" - } - ], - "name": "setLimitIncPerBlock", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 18824, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 18823, - "name": "_limitIncPerBlock", - "nodeType": "VariableDeclaration", - "scope": 18836, - "src": "7536:25:45", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 18822, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7536:7:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7535:27:45" - }, - "payable": false, - "returnParameters": { - "id": 18830, - "nodeType": "ParameterList", - "parameters": [], - "src": "7615:0:45" - }, - "scope": 19362, - "src": "7507:152:45", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 18850, - "nodeType": "Block", - "src": "7861:48:45", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 18848, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 18846, - "name": "minRequiredReports", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18549, - "src": "7865:18:45", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 18847, - "name": "_minRequiredReports", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18838, - "src": "7886:19:45", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "7865:40:45", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "id": 18849, - "nodeType": "ExpressionStatement", - "src": "7865:40:45" - } - ] - }, - "documentation": "@dev setter\n\t * @param _minRequiredReports new minRequiredReports", - "id": 18851, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 18841, - "modifierName": { - "argumentTypes": null, - "id": 18840, - "name": "ownerOnly", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21265, - "src": "7814:9:45", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "7814:9:45" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 18843, - "name": "_minRequiredReports", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18838, - "src": "7840:19:45", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - } - ], - "id": 18844, - "modifierName": { - "argumentTypes": null, - "id": 18842, - "name": "greaterThanZero", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21988, - "src": "7824:15:45", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$", - "typeString": "modifier (uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "7824:36:45" - } - ], - "name": "setMinRequiredReports", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 18839, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 18838, - "name": "_minRequiredReports", - "nodeType": "VariableDeclaration", - "scope": 18851, - "src": "7780:25:45", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 18837, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "7780:5:45", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7779:27:45" - }, - "payable": false, - "returnParameters": { - "id": 18845, - "nodeType": "ParameterList", - "parameters": [], - "src": "7861:0:45" - }, - "scope": 19362, - "src": "7749:160:45", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 18866, - "nodeType": "Block", - "src": "8179:38:45", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 18864, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 18860, - "name": "reporters", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18575, - "src": "8183:9:45", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 18862, - "indexExpression": { - "argumentTypes": null, - "id": 18861, - "name": "_reporter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18853, - "src": "8193:9:45", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "8183:20:45", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 18863, - "name": "_active", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18855, - "src": "8206:7:45", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "8183:30:45", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 18865, - "nodeType": "ExpressionStatement", - "src": "8183:30:45" - } - ] - }, - "documentation": "@dev allows the owner to set/remove reporters\n\t * @param _reporter reporter whos status is to be set\n@param _active true if the reporter is approved, false otherwise", - "id": 18867, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 18858, - "modifierName": { - "argumentTypes": null, - "id": 18857, - "name": "ownerOnly", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21265, - "src": "8169:9:45", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "8169:9:45" - } - ], - "name": "setReporter", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 18856, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 18853, - "name": "_reporter", - "nodeType": "VariableDeclaration", - "scope": 18867, - "src": "8129:17:45", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 18852, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8129:7:45", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 18855, - "name": "_active", - "nodeType": "VariableDeclaration", - "scope": 18867, - "src": "8148:12:45", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 18854, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "8148:4:45", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8128:33:45" - }, - "payable": false, - "returnParameters": { - "id": 18859, - "nodeType": "ParameterList", - "parameters": [], - "src": "8179:0:45" - }, - "scope": 19362, - "src": "8108:109:45", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 18878, - "nodeType": "Block", - "src": "8409:35:45", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 18876, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 18874, - "name": "xTransfersEnabled", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18554, - "src": "8413:17:45", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 18875, - "name": "_enable", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18869, - "src": "8433:7:45", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "8413:27:45", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 18877, - "nodeType": "ExpressionStatement", - "src": "8413:27:45" - } - ] - }, - "documentation": "@dev allows the owner enable/disable the xTransfer method\n\t * @param _enable true to enable, false to disable", - "id": 18879, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 18872, - "modifierName": { - "argumentTypes": null, - "id": 18871, - "name": "ownerOnly", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21265, - "src": "8399:9:45", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "8399:9:45" - } - ], - "name": "enableXTransfers", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 18870, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 18869, - "name": "_enable", - "nodeType": "VariableDeclaration", - "scope": 18879, - "src": "8378:12:45", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 18868, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "8378:4:45", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8377:14:45" - }, - "payable": false, - "returnParameters": { - "id": 18873, - "nodeType": "ParameterList", - "parameters": [], - "src": "8409:0:45" - }, - "scope": 19362, - "src": "8352:92:45", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 18890, - "nodeType": "Block", - "src": "8643:34:45", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 18888, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 18886, - "name": "reportingEnabled", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18557, - "src": "8647:16:45", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 18887, - "name": "_enable", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18881, - "src": "8666:7:45", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "8647:26:45", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 18889, - "nodeType": "ExpressionStatement", - "src": "8647:26:45" - } - ] - }, - "documentation": "@dev allows the owner enable/disable the reportTransaction method\n\t * @param _enable true to enable, false to disable", - "id": 18891, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 18884, - "modifierName": { - "argumentTypes": null, - "id": 18883, - "name": "ownerOnly", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21265, - "src": "8633:9:45", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "8633:9:45" - } - ], - "name": "enableReporting", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 18882, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 18881, - "name": "_enable", - "nodeType": "VariableDeclaration", - "scope": 18891, - "src": "8612:12:45", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 18880, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "8612:4:45", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8611:14:45" - }, - "payable": false, - "returnParameters": { - "id": 18885, - "nodeType": "ParameterList", - "parameters": [], - "src": "8643:0:45" - }, - "scope": 19362, - "src": "8587:90:45", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 18921, - "nodeType": "Block", - "src": "8978:221:45", - "statements": [ - { - "assignments": [ - 18900 - ], - "declarations": [ - { - "constant": false, - "id": 18900, - "name": "sovrynSwapXUpgrader", - "nodeType": "VariableDeclaration", - "scope": 18922, - "src": "8982:40:45", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISovrynSwapXUpgrader_$19477", - "typeString": "contract ISovrynSwapXUpgrader" - }, - "typeName": { - "contractScope": null, - "id": 18899, - "name": "ISovrynSwapXUpgrader", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 19477, - "src": "8982:20:45", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISovrynSwapXUpgrader_$19477", - "typeString": "contract ISovrynSwapXUpgrader" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 18906, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 18903, - "name": "SOVRYNSWAP_X_UPGRADER", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20782, - "src": "9056:21:45", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 18902, - "name": "addressOf", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20931, - "src": "9046:9:45", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$", - "typeString": "function (bytes32) view returns (address)" - } - }, - "id": 18904, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9046:32:45", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 18901, - "name": "ISovrynSwapXUpgrader", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19477, - "src": "9025:20:45", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ISovrynSwapXUpgrader_$19477_$", - "typeString": "type(contract ISovrynSwapXUpgrader)" - } - }, - "id": 18905, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9025:54:45", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISovrynSwapXUpgrader_$19477", - "typeString": "contract ISovrynSwapXUpgrader" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "8982:97:45" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 18908, - "name": "sovrynSwapXUpgrader", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18900, - "src": "9102:19:45", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISovrynSwapXUpgrader_$19477", - "typeString": "contract ISovrynSwapXUpgrader" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_ISovrynSwapXUpgrader_$19477", - "typeString": "contract ISovrynSwapXUpgrader" - } - ], - "id": 18907, - "name": "transferOwnership", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 21296 - ], - "referencedDeclaration": 21296, - "src": "9084:17:45", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 18909, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9084:38:45", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 18910, - "nodeType": "ExpressionStatement", - "src": "9084:38:45" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 18914, - "name": "version", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18531, - "src": "9154:7:45", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - { - "argumentTypes": null, - "id": 18915, - "name": "_reporters", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18894, - "src": "9163:10:45", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 18911, - "name": "sovrynSwapXUpgrader", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18900, - "src": "9126:19:45", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISovrynSwapXUpgrader_$19477", - "typeString": "contract ISovrynSwapXUpgrader" - } - }, - "id": 18913, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "upgrade", - "nodeType": "MemberAccess", - "referencedDeclaration": 19476, - "src": "9126:27:45", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_uint16_$_t_array$_t_address_$dyn_memory_ptr_$returns$__$", - "typeString": "function (uint16,address[] memory) external" - } - }, - "id": 18916, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9126:48:45", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 18917, - "nodeType": "ExpressionStatement", - "src": "9126:48:45" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 18918, - "name": "acceptOwnership", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 21323 - ], - "referencedDeclaration": 21323, - "src": "9178:15:45", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", - "typeString": "function ()" - } - }, - "id": 18919, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9178:17:45", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 18920, - "nodeType": "ExpressionStatement", - "src": "9178:17:45" - } - ] - }, - "documentation": "@dev upgrades the contract to the latest version\ncan only be called by the owner\nnote that the owner needs to call acceptOwnership on the new contract after the upgrade\n\t * @param _reporters new list of reporters", - "id": 18922, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 18897, - "modifierName": { - "argumentTypes": null, - "id": 18896, - "name": "ownerOnly", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21265, - "src": "8968:9:45", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "8968:9:45" - } - ], - "name": "upgrade", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 18895, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 18894, - "name": "_reporters", - "nodeType": "VariableDeclaration", - "scope": 18922, - "src": "8939:20:45", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 18892, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8939:7:45", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 18893, - "length": null, - "nodeType": "ArrayTypeName", - "src": "8939:9:45", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8938:22:45" - }, - "payable": false, - "returnParameters": { - "id": 18898, - "nodeType": "ParameterList", - "parameters": [], - "src": "8978:0:45" - }, - "scope": 19362, - "src": "8922:277:45", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 18974, - "nodeType": "Block", - "src": "9598:462:45", - "statements": [ - { - "assignments": [ - 18934 - ], - "declarations": [ - { - "constant": false, - "id": 18934, - "name": "currentLockLimit", - "nodeType": "VariableDeclaration", - "scope": 18975, - "src": "9634:24:45", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 18933, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9634:7:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 18937, - "initialValue": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 18935, - "name": "getCurrentLockLimit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19262, - "src": "9661:19:45", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", - "typeString": "function () view returns (uint256)" - } - }, - "id": 18936, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9661:21:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "9634:48:45" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 18945, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 18941, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 18939, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18928, - "src": "9718:7:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 18940, - "name": "minLimit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18537, - "src": "9729:8:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9718:19:45", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 18944, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 18942, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18928, - "src": "9741:7:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "id": 18943, - "name": "currentLockLimit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18934, - "src": "9752:16:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9741:27:45", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "9718:50:45", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552525f414d4f554e545f544f4f5f48494748", - "id": 18946, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9770:21:45", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_ea546d9a31e2cdf5ff54bd756b604340a9be1b0f1b5565f1667d358efb53a459", - "typeString": "literal_string \"ERR_AMOUNT_TOO_HIGH\"" - }, - "value": "ERR_AMOUNT_TOO_HIGH" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_ea546d9a31e2cdf5ff54bd756b604340a9be1b0f1b5565f1667d358efb53a459", - "typeString": "literal_string \"ERR_AMOUNT_TOO_HIGH\"" - } - ], - "id": 18938, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 22341, - 22342 - ], - "referencedDeclaration": 22342, - "src": "9710:7:45", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 18947, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9710:82:45", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 18948, - "nodeType": "ExpressionStatement", - "src": "9710:82:45" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 18950, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18928, - "src": "9808:7:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 18949, - "name": "lockTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19314, - "src": "9797:10:45", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 18951, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9797:19:45", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 18952, - "nodeType": "ExpressionStatement", - "src": "9797:19:45" - }, - { - "expression": { - "argumentTypes": null, - "id": 18958, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 18953, - "name": "prevLockLimit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18539, - "src": "9871:13:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 18956, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18928, - "src": "9908:7:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 18954, - "name": "currentLockLimit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18934, - "src": "9887:16:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 18955, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 21758, - "src": "9887:20:45", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 18957, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9887:29:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9871:45:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 18959, - "nodeType": "ExpressionStatement", - "src": "9871:45:45" - }, - { - "expression": { - "argumentTypes": null, - "id": 18963, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 18960, - "name": "prevLockBlockNumber", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18545, - "src": "9920:19:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 18961, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22328, - "src": "9942:5:45", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 18962, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "number", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "9942:12:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9920:34:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 18964, - "nodeType": "ExpressionStatement", - "src": "9920:34:45" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 18966, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22338, - "src": "10013:3:45", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 18967, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10013:10:45", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 18968, - "name": "_toBlockchain", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18924, - "src": "10025:13:45", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 18969, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18926, - "src": "10040:3:45", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 18970, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18928, - "src": "10045:7:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "hexValue": "30", - "id": 18971, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10054:1:45", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 18965, - "name": "XTransfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18599, - "src": "10003:9:45", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_bytes32_$_t_bytes32_$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (address,bytes32,bytes32,uint256,uint256)" - } - }, - "id": 18972, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10003:53:45", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 18973, - "nodeType": "EmitStatement", - "src": "9998:58:45" - } - ] - }, - "documentation": "@dev claims tokens from msg.sender to be converted to tokens on another blockchain\n\t * @param _toBlockchain blockchain on which tokens will be issued\n@param _to address to send the tokens to\n@param _amount the amount of tokens to transfer", - "id": 18975, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 18931, - "modifierName": { - "argumentTypes": null, - "id": 18930, - "name": "xTransfersAllowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18740, - "src": "9580:17:45", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "9580:17:45" - } - ], - "name": "xTransfer", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 18929, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 18924, - "name": "_toBlockchain", - "nodeType": "VariableDeclaration", - "scope": 18975, - "src": "9514:21:45", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 18923, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "9514:7:45", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 18926, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 18975, - "src": "9539:11:45", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 18925, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "9539:7:45", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 18928, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 18975, - "src": "9554:15:45", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 18927, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9554:7:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9510:62:45" - }, - "payable": false, - "returnParameters": { - "id": 18932, - "nodeType": "ParameterList", - "parameters": [], - "src": "9598:0:45" - }, - "scope": 19362, - "src": "9492:568:45", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 19029, - "nodeType": "Block", - "src": "10574:487:45", - "statements": [ - { - "assignments": [ - 18989 - ], - "declarations": [ - { - "constant": false, - "id": 18989, - "name": "currentLockLimit", - "nodeType": "VariableDeclaration", - "scope": 19030, - "src": "10610:24:45", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 18988, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10610:7:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 18992, - "initialValue": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 18990, - "name": "getCurrentLockLimit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19262, - "src": "10637:19:45", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", - "typeString": "function () view returns (uint256)" - } - }, - "id": 18991, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10637:21:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "10610:48:45" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 19000, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 18996, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 18994, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18981, - "src": "10730:7:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 18995, - "name": "minLimit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18537, - "src": "10741:8:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "10730:19:45", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 18999, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 18997, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18981, - "src": "10753:7:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "id": 18998, - "name": "currentLockLimit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18989, - "src": "10764:16:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "10753:27:45", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "10730:50:45", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552525f414d4f554e545f544f4f5f48494748", - "id": 19001, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10782:21:45", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_ea546d9a31e2cdf5ff54bd756b604340a9be1b0f1b5565f1667d358efb53a459", - "typeString": "literal_string \"ERR_AMOUNT_TOO_HIGH\"" - }, - "value": "ERR_AMOUNT_TOO_HIGH" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_ea546d9a31e2cdf5ff54bd756b604340a9be1b0f1b5565f1667d358efb53a459", - "typeString": "literal_string \"ERR_AMOUNT_TOO_HIGH\"" - } - ], - "id": 18993, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 22341, - 22342 - ], - "referencedDeclaration": 22342, - "src": "10722:7:45", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 19002, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10722:82:45", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 19003, - "nodeType": "ExpressionStatement", - "src": "10722:82:45" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 19005, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18981, - "src": "10820:7:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 19004, - "name": "lockTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19314, - "src": "10809:10:45", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 19006, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10809:19:45", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 19007, - "nodeType": "ExpressionStatement", - "src": "10809:19:45" - }, - { - "expression": { - "argumentTypes": null, - "id": 19013, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 19008, - "name": "prevLockLimit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18539, - "src": "10883:13:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 19011, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18981, - "src": "10920:7:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 19009, - "name": "currentLockLimit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18989, - "src": "10899:16:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 19010, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 21758, - "src": "10899:20:45", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 19012, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10899:29:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "10883:45:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 19014, - "nodeType": "ExpressionStatement", - "src": "10883:45:45" - }, - { - "expression": { - "argumentTypes": null, - "id": 19018, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 19015, - "name": "prevLockBlockNumber", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18545, - "src": "10932:19:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 19016, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22328, - "src": "10954:5:45", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 19017, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "number", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10954:12:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "10932:34:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 19019, - "nodeType": "ExpressionStatement", - "src": "10932:34:45" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 19021, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22338, - "src": "11012:3:45", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 19022, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11012:10:45", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 19023, - "name": "_toBlockchain", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18977, - "src": "11024:13:45", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 19024, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18979, - "src": "11039:3:45", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 19025, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18981, - "src": "11044:7:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 19026, - "name": "_id", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18983, - "src": "11053:3:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 19020, - "name": "XTransfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18599, - "src": "11002:9:45", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_bytes32_$_t_bytes32_$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (address,bytes32,bytes32,uint256,uint256)" - } - }, - "id": 19027, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11002:55:45", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 19028, - "nodeType": "EmitStatement", - "src": "10997:60:45" - } - ] - }, - "documentation": "@dev claims tokens from msg.sender to be converted to tokens on another blockchain\n\t * @param _toBlockchain blockchain on which tokens will be issued\n@param _to address to send the tokens to\n@param _amount the amount of tokens to transfer\n@param _id pre-determined unique (if non zero) id which refers to this transaction", - "id": 19030, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 18986, - "modifierName": { - "argumentTypes": null, - "id": 18985, - "name": "xTransfersAllowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18740, - "src": "10556:17:45", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "10556:17:45" - } - ], - "name": "xTransfer", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 18984, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 18977, - "name": "_toBlockchain", - "nodeType": "VariableDeclaration", - "scope": 19030, - "src": "10475:21:45", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 18976, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "10475:7:45", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 18979, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 19030, - "src": "10500:11:45", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 18978, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "10500:7:45", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 18981, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 19030, - "src": "10515:15:45", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 18980, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10515:7:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 18983, - "name": "_id", - "nodeType": "VariableDeclaration", - "scope": 19030, - "src": "10534:11:45", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 18982, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10534:7:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10471:77:45" - }, - "payable": false, - "returnParameters": { - "id": 18987, - "nodeType": "ParameterList", - "parameters": [], - "src": "10574:0:45" - }, - "scope": 19362, - "src": "10453:608:45", - "stateMutability": "nonpayable", - "superFunction": 19456, - "visibility": "public" - }, - { - "body": { - "id": 19202, - "nodeType": "Block", - "src": "11779:1416:45", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 19060, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "11867:31:45", - "subExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 19054, - "name": "reportedTxs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18571, - "src": "11868:11:45", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(uint256 => mapping(address => bool))" - } - }, - "id": 19056, - "indexExpression": { - "argumentTypes": null, - "id": 19055, - "name": "_txId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19034, - "src": "11880:5:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11868:18:45", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 19059, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 19057, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22338, - "src": "11887:3:45", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 19058, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11887:10:45", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11868:30:45", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552525f414c52454144595f5245504f52544544", - "id": 19061, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11900:22:45", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_eacdf1b09650a9214fcd03c8cca153c1ef5430f33502fe3fc1e6f73a52233e56", - "typeString": "literal_string \"ERR_ALREADY_REPORTED\"" - }, - "value": "ERR_ALREADY_REPORTED" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_eacdf1b09650a9214fcd03c8cca153c1ef5430f33502fe3fc1e6f73a52233e56", - "typeString": "literal_string \"ERR_ALREADY_REPORTED\"" - } - ], - "id": 19053, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 22341, - 22342 - ], - "referencedDeclaration": 22342, - "src": "11859:7:45", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 19062, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11859:64:45", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 19063, - "nodeType": "ExpressionStatement", - "src": "11859:64:45" - }, - { - "expression": { - "argumentTypes": null, - "id": 19071, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 19064, - "name": "reportedTxs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18571, - "src": "11954:11:45", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(uint256 => mapping(address => bool))" - } - }, - "id": 19068, - "indexExpression": { - "argumentTypes": null, - "id": 19065, - "name": "_txId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19034, - "src": "11966:5:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11954:18:45", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 19069, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 19066, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22338, - "src": "11973:3:45", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 19067, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11973:10:45", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "11954:30:45", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 19070, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11987:4:45", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "11954:37:45", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 19072, - "nodeType": "ExpressionStatement", - "src": "11954:37:45" - }, - { - "assignments": [ - 19074 - ], - "declarations": [ - { - "constant": false, - "id": 19074, - "name": "txn", - "nodeType": "VariableDeclaration", - "scope": 19203, - "src": "11996:23:45", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Transaction_$18528_storage_ptr", - "typeString": "struct SovrynSwapX.Transaction" - }, - "typeName": { - "contractScope": null, - "id": 19073, - "name": "Transaction", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 18528, - "src": "11996:11:45", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Transaction_$18528_storage_ptr", - "typeString": "struct SovrynSwapX.Transaction" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 19078, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 19075, - "name": "transactions", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18561, - "src": "12022:12:45", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Transaction_$18528_storage_$", - "typeString": "mapping(uint256 => struct SovrynSwapX.Transaction storage ref)" - } - }, - "id": 19077, - "indexExpression": { - "argumentTypes": null, - "id": 19076, - "name": "_txId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19034, - "src": "12035:5:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "12022:19:45", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Transaction_$18528_storage", - "typeString": "struct SovrynSwapX.Transaction storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "11996:45:45" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "id": 19082, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 19079, - "name": "txn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19074, - "src": "12120:3:45", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Transaction_$18528_storage_ptr", - "typeString": "struct SovrynSwapX.Transaction storage pointer" - } - }, - "id": 19080, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "numOfReports", - "nodeType": "MemberAccess", - "referencedDeclaration": 18525, - "src": "12120:16:45", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 19081, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12140:1:45", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "12120:21:45", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 19153, - "nodeType": "Block", - "src": "12450:261:45", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 19136, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 19131, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 19126, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 19123, - "name": "txn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19074, - "src": "12507:3:45", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Transaction_$18528_storage_ptr", - "typeString": "struct SovrynSwapX.Transaction storage pointer" - } - }, - "id": 19124, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "to", - "nodeType": "MemberAccess", - "referencedDeclaration": 18523, - "src": "12507:6:45", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 19125, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19036, - "src": "12517:3:45", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "12507:13:45", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 19130, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 19127, - "name": "txn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19074, - "src": "12524:3:45", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Transaction_$18528_storage_ptr", - "typeString": "struct SovrynSwapX.Transaction storage pointer" - } - }, - "id": 19128, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "amount", - "nodeType": "MemberAccess", - "referencedDeclaration": 18519, - "src": "12524:10:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 19129, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19038, - "src": "12538:7:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "12524:21:45", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "12507:38:45", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "id": 19135, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 19132, - "name": "txn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19074, - "src": "12549:3:45", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Transaction_$18528_storage_ptr", - "typeString": "struct SovrynSwapX.Transaction storage pointer" - } - }, - "id": 19133, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "fromBlockchain", - "nodeType": "MemberAccess", - "referencedDeclaration": 18521, - "src": "12549:18:45", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 19134, - "name": "_fromBlockchain", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19032, - "src": "12571:15:45", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "src": "12549:37:45", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "12507:79:45", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552525f54585f4d49534d41544348", - "id": 19137, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12588:17:45", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_39731edd6d4c0fd2309c14f2b1a935ba30b8a0693da1b0353a3c6694ebcdb4a7", - "typeString": "literal_string \"ERR_TX_MISMATCH\"" - }, - "value": "ERR_TX_MISMATCH" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_39731edd6d4c0fd2309c14f2b1a935ba30b8a0693da1b0353a3c6694ebcdb4a7", - "typeString": "literal_string \"ERR_TX_MISMATCH\"" - } - ], - "id": 19122, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 22341, - 22342 - ], - "referencedDeclaration": 22342, - "src": "12499:7:45", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 19138, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12499:107:45", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 19139, - "nodeType": "ExpressionStatement", - "src": "12499:107:45" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 19142, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 19140, - "name": "_xTransferId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19040, - "src": "12616:12:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 19141, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12632:1:45", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "12616:17:45", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 19152, - "nodeType": "IfStatement", - "src": "12612:94:45", - "trueBody": { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 19148, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 19144, - "name": "transactionIds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18565, - "src": "12643:14:45", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 19146, - "indexExpression": { - "argumentTypes": null, - "id": 19145, - "name": "_xTransferId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19040, - "src": "12658:12:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "12643:28:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 19147, - "name": "_txId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19034, - "src": "12675:5:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "12643:37:45", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552525f54585f414c52454144595f455849535453", - "id": 19149, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12682:23:45", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_6957b87c54e7d0624ff8a3f0dab58c7c7ceeac939294153268df0f24ee23a0a9", - "typeString": "literal_string \"ERR_TX_ALREADY_EXISTS\"" - }, - "value": "ERR_TX_ALREADY_EXISTS" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_6957b87c54e7d0624ff8a3f0dab58c7c7ceeac939294153268df0f24ee23a0a9", - "typeString": "literal_string \"ERR_TX_ALREADY_EXISTS\"" - } - ], - "id": 19143, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 22341, - 22342 - ], - "referencedDeclaration": 22342, - "src": "12635:7:45", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 19150, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12635:71:45", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 19151, - "nodeType": "ExpressionStatement", - "src": "12635:71:45" - } - } - ] - }, - "id": 19154, - "nodeType": "IfStatement", - "src": "12116:595:45", - "trueBody": { - "id": 19121, - "nodeType": "Block", - "src": "12143:301:45", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 19087, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 19083, - "name": "txn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19074, - "src": "12148:3:45", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Transaction_$18528_storage_ptr", - "typeString": "struct SovrynSwapX.Transaction storage pointer" - } - }, - "id": 19085, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "to", - "nodeType": "MemberAccess", - "referencedDeclaration": 18523, - "src": "12148:6:45", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 19086, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19036, - "src": "12157:3:45", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "12148:12:45", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 19088, - "nodeType": "ExpressionStatement", - "src": "12148:12:45" - }, - { - "expression": { - "argumentTypes": null, - "id": 19093, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 19089, - "name": "txn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19074, - "src": "12165:3:45", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Transaction_$18528_storage_ptr", - "typeString": "struct SovrynSwapX.Transaction storage pointer" - } - }, - "id": 19091, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "amount", - "nodeType": "MemberAccess", - "referencedDeclaration": 18519, - "src": "12165:10:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 19092, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19038, - "src": "12178:7:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "12165:20:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 19094, - "nodeType": "ExpressionStatement", - "src": "12165:20:45" - }, - { - "expression": { - "argumentTypes": null, - "id": 19099, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 19095, - "name": "txn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19074, - "src": "12190:3:45", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Transaction_$18528_storage_ptr", - "typeString": "struct SovrynSwapX.Transaction storage pointer" - } - }, - "id": 19097, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "fromBlockchain", - "nodeType": "MemberAccess", - "referencedDeclaration": 18521, - "src": "12190:18:45", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 19098, - "name": "_fromBlockchain", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19032, - "src": "12211:15:45", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "src": "12190:36:45", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "id": 19100, - "nodeType": "ExpressionStatement", - "src": "12190:36:45" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 19103, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 19101, - "name": "_xTransferId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19040, - "src": "12236:12:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 19102, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12252:1:45", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "12236:17:45", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 19120, - "nodeType": "IfStatement", - "src": "12232:208:45", - "trueBody": { - "id": 19119, - "nodeType": "Block", - "src": "12255:185:45", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 19109, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 19105, - "name": "transactionIds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18565, - "src": "12333:14:45", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 19107, - "indexExpression": { - "argumentTypes": null, - "id": 19106, - "name": "_xTransferId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19040, - "src": "12348:12:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "12333:28:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 19108, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12365:1:45", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "12333:33:45", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552525f54585f414c52454144595f455849535453", - "id": 19110, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12368:23:45", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_6957b87c54e7d0624ff8a3f0dab58c7c7ceeac939294153268df0f24ee23a0a9", - "typeString": "literal_string \"ERR_TX_ALREADY_EXISTS\"" - }, - "value": "ERR_TX_ALREADY_EXISTS" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_6957b87c54e7d0624ff8a3f0dab58c7c7ceeac939294153268df0f24ee23a0a9", - "typeString": "literal_string \"ERR_TX_ALREADY_EXISTS\"" - } - ], - "id": 19104, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 22341, - 22342 - ], - "referencedDeclaration": 22342, - "src": "12325:7:45", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 19111, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12325:67:45", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 19112, - "nodeType": "ExpressionStatement", - "src": "12325:67:45" - }, - { - "expression": { - "argumentTypes": null, - "id": 19117, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 19113, - "name": "transactionIds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18565, - "src": "12398:14:45", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 19115, - "indexExpression": { - "argumentTypes": null, - "id": 19114, - "name": "_xTransferId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19040, - "src": "12413:12:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "12398:28:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 19116, - "name": "_txId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19034, - "src": "12429:5:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "12398:36:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 19118, - "nodeType": "ExpressionStatement", - "src": "12398:36:45" - } - ] - } - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "id": 19158, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "12752:18:45", - "subExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 19155, - "name": "txn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19074, - "src": "12752:3:45", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Transaction_$18528_storage_ptr", - "typeString": "struct SovrynSwapX.Transaction storage pointer" - } - }, - "id": 19157, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "numOfReports", - "nodeType": "MemberAccess", - "referencedDeclaration": 18525, - "src": "12752:16:45", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "id": 19159, - "nodeType": "ExpressionStatement", - "src": "12752:18:45" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 19161, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22338, - "src": "12789:3:45", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 19162, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "12789:10:45", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 19163, - "name": "_fromBlockchain", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19032, - "src": "12801:15:45", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 19164, - "name": "_txId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19034, - "src": "12818:5:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 19165, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19036, - "src": "12825:3:45", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 19166, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19038, - "src": "12830:7:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 19167, - "name": "_xTransferId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19040, - "src": "12839:12:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 19160, - "name": "TxReport", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18613, - "src": "12780:8:45", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_bytes32_$_t_uint256_$_t_address_$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (address,bytes32,uint256,address,uint256,uint256)" - } - }, - "id": 19168, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12780:72:45", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 19169, - "nodeType": "EmitStatement", - "src": "12775:77:45" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "id": 19173, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 19170, - "name": "txn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19074, - "src": "12914:3:45", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Transaction_$18528_storage_ptr", - "typeString": "struct SovrynSwapX.Transaction storage pointer" - } - }, - "id": 19171, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "numOfReports", - "nodeType": "MemberAccess", - "referencedDeclaration": 18525, - "src": "12914:16:45", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 19172, - "name": "minRequiredReports", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18549, - "src": "12934:18:45", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "12914:38:45", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 19201, - "nodeType": "IfStatement", - "src": "12910:282:45", - "trueBody": { - "id": 19200, - "nodeType": "Block", - "src": "12954:238:45", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 19179, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "12967:30:45", - "subExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 19175, - "name": "transactions", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18561, - "src": "12968:12:45", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Transaction_$18528_storage_$", - "typeString": "mapping(uint256 => struct SovrynSwapX.Transaction storage ref)" - } - }, - "id": 19177, - "indexExpression": { - "argumentTypes": null, - "id": 19176, - "name": "_txId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19034, - "src": "12981:5:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "12968:19:45", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Transaction_$18528_storage", - "typeString": "struct SovrynSwapX.Transaction storage ref" - } - }, - "id": 19178, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "completed", - "nodeType": "MemberAccess", - "referencedDeclaration": 18527, - "src": "12968:29:45", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552525f54585f414c52454144595f434f4d504c45544544", - "id": 19180, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12999:26:45", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_8458c6336176452534d737fe1d081580bd6710b63bb64c5c00fe229feb3ce8c8", - "typeString": "literal_string \"ERR_TX_ALREADY_COMPLETED\"" - }, - "value": "ERR_TX_ALREADY_COMPLETED" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_8458c6336176452534d737fe1d081580bd6710b63bb64c5c00fe229feb3ce8c8", - "typeString": "literal_string \"ERR_TX_ALREADY_COMPLETED\"" - } - ], - "id": 19174, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 22341, - 22342 - ], - "referencedDeclaration": 22342, - "src": "12959:7:45", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 19181, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12959:67:45", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 19182, - "nodeType": "ExpressionStatement", - "src": "12959:67:45" - }, - { - "expression": { - "argumentTypes": null, - "id": 19188, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 19183, - "name": "transactions", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18561, - "src": "13071:12:45", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Transaction_$18528_storage_$", - "typeString": "mapping(uint256 => struct SovrynSwapX.Transaction storage ref)" - } - }, - "id": 19185, - "indexExpression": { - "argumentTypes": null, - "id": 19184, - "name": "_txId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19034, - "src": "13084:5:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "13071:19:45", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Transaction_$18528_storage", - "typeString": "struct SovrynSwapX.Transaction storage ref" - } - }, - "id": 19186, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "completed", - "nodeType": "MemberAccess", - "referencedDeclaration": 18527, - "src": "13071:29:45", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 19187, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13103:4:45", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "13071:36:45", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 19189, - "nodeType": "ExpressionStatement", - "src": "13071:36:45" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 19191, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19036, - "src": "13136:3:45", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 19192, - "name": "_xTransferId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19040, - "src": "13141:12:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 19190, - "name": "XTransferComplete", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18619, - "src": "13118:17:45", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 19193, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13118:36:45", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 19194, - "nodeType": "EmitStatement", - "src": "13113:41:45" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 19196, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19036, - "src": "13174:3:45", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 19197, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19038, - "src": "13179:7:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 19195, - "name": "releaseTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19361, - "src": "13160:13:45", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 19198, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13160:27:45", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 19199, - "nodeType": "ExpressionStatement", - "src": "13160:27:45" - } - ] - } - } - ] - }, - "documentation": "@dev allows reporter to report transaction which occured on another blockchain\n\t * @param _fromBlockchain blockchain in which tokens were destroyed\n@param _txId transactionId of transaction thats being reported\n@param _to address to receive tokens\n@param _amount amount of tokens destroyed on another blockchain\n@param _xTransferId unique (if non zero) pre-determined id (unlike _txId which is determined after the transactions been mined)", - "id": 19203, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 19043, - "modifierName": { - "argumentTypes": null, - "id": 19042, - "name": "reporterOnly", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18721, - "src": "11706:12:45", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "11706:12:45" - }, - { - "arguments": null, - "id": 19045, - "modifierName": { - "argumentTypes": null, - "id": 19044, - "name": "reportingAllowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18756, - "src": "11719:16:45", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "11719:16:45" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 19047, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19036, - "src": "11749:3:45", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 19048, - "modifierName": { - "argumentTypes": null, - "id": 19046, - "name": "validAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22011, - "src": "11736:12:45", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$", - "typeString": "modifier (address)" - } - }, - "nodeType": "ModifierInvocation", - "src": "11736:17:45" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 19050, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19038, - "src": "11770:7:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 19051, - "modifierName": { - "argumentTypes": null, - "id": 19049, - "name": "greaterThanZero", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21988, - "src": "11754:15:45", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$", - "typeString": "modifier (uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "11754:24:45" - } - ], - "name": "reportTx", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 19041, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 19032, - "name": "_fromBlockchain", - "nodeType": "VariableDeclaration", - "scope": 19203, - "src": "11597:23:45", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 19031, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "11597:7:45", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 19034, - "name": "_txId", - "nodeType": "VariableDeclaration", - "scope": 19203, - "src": "11624:13:45", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 19033, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "11624:7:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 19036, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 19203, - "src": "11641:11:45", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 19035, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "11641:7:45", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 19038, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 19203, - "src": "11656:15:45", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 19037, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "11656:7:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 19040, - "name": "_xTransferId", - "nodeType": "VariableDeclaration", - "scope": 19203, - "src": "11675:20:45", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 19039, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "11675:7:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11593:105:45" - }, - "payable": false, - "returnParameters": { - "id": 19052, - "nodeType": "ParameterList", - "parameters": [], - "src": "11779:0:45" - }, - "scope": 19362, - "src": "11576:1619:45", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 19231, - "nodeType": "Block", - "src": "13649:253:45", - "statements": [ - { - "assignments": [ - 19213 - ], - "declarations": [ - { - "constant": false, - "id": 19213, - "name": "transaction", - "nodeType": "VariableDeclaration", - "scope": 19232, - "src": "13693:30:45", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Transaction_$18528_memory_ptr", - "typeString": "struct SovrynSwapX.Transaction" - }, - "typeName": { - "contractScope": null, - "id": 19212, - "name": "Transaction", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 18528, - "src": "13693:11:45", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Transaction_$18528_storage_ptr", - "typeString": "struct SovrynSwapX.Transaction" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 19219, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 19214, - "name": "transactions", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18561, - "src": "13726:12:45", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Transaction_$18528_storage_$", - "typeString": "mapping(uint256 => struct SovrynSwapX.Transaction storage ref)" - } - }, - "id": 19218, - "indexExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 19215, - "name": "transactionIds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18565, - "src": "13739:14:45", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 19217, - "indexExpression": { - "argumentTypes": null, - "id": 19216, - "name": "_xTransferId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19205, - "src": "13754:12:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "13739:28:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "13726:42:45", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Transaction_$18528_storage", - "typeString": "struct SovrynSwapX.Transaction storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "13693:75:45" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 19224, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 19221, - "name": "transaction", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19213, - "src": "13826:11:45", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Transaction_$18528_memory_ptr", - "typeString": "struct SovrynSwapX.Transaction memory" - } - }, - "id": 19222, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "to", - "nodeType": "MemberAccess", - "referencedDeclaration": 18523, - "src": "13826:14:45", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 19223, - "name": "_for", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19207, - "src": "13844:4:45", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "13826:22:45", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552525f54585f4d49534d41544348", - "id": 19225, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13850:17:45", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_39731edd6d4c0fd2309c14f2b1a935ba30b8a0693da1b0353a3c6694ebcdb4a7", - "typeString": "literal_string \"ERR_TX_MISMATCH\"" - }, - "value": "ERR_TX_MISMATCH" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_39731edd6d4c0fd2309c14f2b1a935ba30b8a0693da1b0353a3c6694ebcdb4a7", - "typeString": "literal_string \"ERR_TX_MISMATCH\"" - } - ], - "id": 19220, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 22341, - 22342 - ], - "referencedDeclaration": 22342, - "src": "13818:7:45", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 19226, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13818:50:45", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 19227, - "nodeType": "ExpressionStatement", - "src": "13818:50:45" - }, - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 19228, - "name": "transaction", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19213, - "src": "13880:11:45", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Transaction_$18528_memory_ptr", - "typeString": "struct SovrynSwapX.Transaction memory" - } - }, - "id": 19229, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "amount", - "nodeType": "MemberAccess", - "referencedDeclaration": 18519, - "src": "13880:18:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 19211, - "id": 19230, - "nodeType": "Return", - "src": "13873:25:45" - } - ] - }, - "documentation": "@dev gets x transfer amount by xTransferId (not txId)\n\t * @param _xTransferId unique (if non zero) pre-determined id (unlike _txId which is determined after the transactions been broadcasted)\n@param _for address corresponding to xTransferId\n\t * @return amount that was sent in xTransfer corresponding to _xTransferId", - "id": 19232, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getXTransferAmount", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 19208, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 19205, - "name": "_xTransferId", - "nodeType": "VariableDeclaration", - "scope": 19232, - "src": "13583:20:45", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 19204, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "13583:7:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 19207, - "name": "_for", - "nodeType": "VariableDeclaration", - "scope": 19232, - "src": "13605:12:45", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 19206, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "13605:7:45", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "13582:36:45" - }, - "payable": false, - "returnParameters": { - "id": 19211, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 19210, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 19232, - "src": "13640:7:45", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 19209, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "13640:7:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "13639:9:45" - }, - "scope": 19362, - "src": "13555:347:45", - "stateMutability": "view", - "superFunction": 19465, - "visibility": "public" - }, - { - "body": { - "id": 19261, - "nodeType": "Block", - "src": "14098:286:45", - "statements": [ - { - "assignments": [ - 19238 - ], - "declarations": [ - { - "constant": false, - "id": 19238, - "name": "currentLockLimit", - "nodeType": "VariableDeclaration", - "scope": 19262, - "src": "14184:24:45", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 19237, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "14184:7:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 19252, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 19249, - "name": "limitIncPerBlock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18543, - "src": "14275:16:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 19245, - "name": "prevLockBlockNumber", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18545, - "src": "14249:19:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 19241, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22328, - "src": "14231:5:45", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 19242, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "number", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "14231:12:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 19243, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "14230:14:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 19244, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 21758, - "src": "14230:18:45", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 19246, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14230:39:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 19247, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "14229:41:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 19248, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 21791, - "src": "14229:45:45", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 19250, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14229:63:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 19239, - "name": "prevLockLimit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18539, - "src": "14211:13:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 19240, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 21737, - "src": "14211:17:45", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 19251, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14211:82:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "14184:109:45" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 19255, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 19253, - "name": "currentLockLimit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19238, - "src": "14301:16:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "id": 19254, - "name": "maxLockLimit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18533, - "src": "14320:12:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "14301:31:45", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 19258, - "nodeType": "IfStatement", - "src": "14297:56:45", - "trueBody": { - "expression": { - "argumentTypes": null, - "id": 19256, - "name": "maxLockLimit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18533, - "src": "14341:12:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 19236, - "id": 19257, - "nodeType": "Return", - "src": "14334:19:45" - } - }, - { - "expression": { - "argumentTypes": null, - "id": 19259, - "name": "currentLockLimit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19238, - "src": "14364:16:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 19236, - "id": 19260, - "nodeType": "Return", - "src": "14357:23:45" - } - ] - }, - "documentation": "@dev method for calculating current lock limit\n\t * @return the current maximum limit of tokens that can be locked", - "id": 19262, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getCurrentLockLimit", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 19233, - "nodeType": "ParameterList", - "parameters": [], - "src": "14065:2:45" - }, - "payable": false, - "returnParameters": { - "id": 19236, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 19235, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 19262, - "src": "14089:7:45", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 19234, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "14089:7:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14088:9:45" - }, - "scope": 19362, - "src": "14037:347:45", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 19291, - "nodeType": "Block", - "src": "14588:313:45", - "statements": [ - { - "assignments": [ - 19268 - ], - "declarations": [ - { - "constant": false, - "id": 19268, - "name": "currentReleaseLimit", - "nodeType": "VariableDeclaration", - "scope": 19292, - "src": "14680:27:45", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 19267, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "14680:7:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 19282, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 19279, - "name": "limitIncPerBlock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18543, - "src": "14780:16:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 19275, - "name": "prevReleaseBlockNumber", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18547, - "src": "14751:22:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 19271, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22328, - "src": "14733:5:45", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 19272, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "number", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "14733:12:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 19273, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "14732:14:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 19274, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 21758, - "src": "14732:18:45", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 19276, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14732:42:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 19277, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "14731:44:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 19278, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 21791, - "src": "14731:48:45", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 19280, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14731:66:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 19269, - "name": "prevReleaseLimit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18541, - "src": "14710:16:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 19270, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 21737, - "src": "14710:20:45", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 19281, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14710:88:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "14680:118:45" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 19285, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 19283, - "name": "currentReleaseLimit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19268, - "src": "14806:19:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "id": 19284, - "name": "maxReleaseLimit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18535, - "src": "14828:15:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "14806:37:45", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 19288, - "nodeType": "IfStatement", - "src": "14802:65:45", - "trueBody": { - "expression": { - "argumentTypes": null, - "id": 19286, - "name": "maxReleaseLimit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18535, - "src": "14852:15:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 19266, - "id": 19287, - "nodeType": "Return", - "src": "14845:22:45" - } - }, - { - "expression": { - "argumentTypes": null, - "id": 19289, - "name": "currentReleaseLimit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19268, - "src": "14878:19:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 19266, - "id": 19290, - "nodeType": "Return", - "src": "14871:26:45" - } - ] - }, - "documentation": "@dev method for calculating current release limit\n\t * @return the current maximum limit of tokens that can be released", - "id": 19292, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getCurrentReleaseLimit", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 19263, - "nodeType": "ParameterList", - "parameters": [], - "src": "14555:2:45" - }, - "payable": false, - "returnParameters": { - "id": 19266, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 19265, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 19292, - "src": "14579:7:45", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 19264, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "14579:7:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14578:9:45" - }, - "scope": 19362, - "src": "14524:377:45", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 19313, - "nodeType": "Block", - "src": "15109:107:45", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 19298, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 18551 - ], - "referencedDeclaration": 18551, - "src": "15130:5:45", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 19299, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22338, - "src": "15137:3:45", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 19300, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "15137:10:45", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 19302, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22507, - "src": "15157:4:45", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SovrynSwapX_$19362", - "typeString": "contract SovrynSwapX" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_SovrynSwapX_$19362", - "typeString": "contract SovrynSwapX" - } - ], - "id": 19301, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "15149:7:45", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 19303, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15149:13:45", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 19304, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19294, - "src": "15164:7:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 19297, - "name": "safeTransferFrom", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21904, - "src": "15113:16:45", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20Token_$20240_$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (contract IERC20Token,address,address,uint256)" - } - }, - "id": 19305, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15113:59:45", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 19306, - "nodeType": "ExpressionStatement", - "src": "15113:59:45" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 19308, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22338, - "src": "15192:3:45", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 19309, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "15192:10:45", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 19310, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19294, - "src": "15204:7:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 19307, - "name": "TokensLock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18581, - "src": "15181:10:45", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 19311, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15181:31:45", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 19312, - "nodeType": "EmitStatement", - "src": "15176:36:45" - } - ] - }, - "documentation": "@dev claims and locks tokens from msg.sender to be converted to tokens on another blockchain\n\t * @param _amount the amount of tokens to lock", - "id": 19314, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "lockTokens", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 19295, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 19294, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 19314, - "src": "15084:15:45", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 19293, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15084:7:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15083:17:45" - }, - "payable": false, - "returnParameters": { - "id": 19296, - "nodeType": "ParameterList", - "parameters": [], - "src": "15109:0:45" - }, - "scope": 19362, - "src": "15064:152:45", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 19360, - "nodeType": "Block", - "src": "15462:459:45", - "statements": [ - { - "assignments": [ - 19322 - ], - "declarations": [ - { - "constant": false, - "id": 19322, - "name": "currentReleaseLimit", - "nodeType": "VariableDeclaration", - "scope": 19361, - "src": "15501:27:45", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 19321, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15501:7:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 19325, - "initialValue": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 19323, - "name": "getCurrentReleaseLimit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19292, - "src": "15531:22:45", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", - "typeString": "function () view returns (uint256)" - } - }, - "id": 19324, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15531:24:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "15501:54:45" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 19333, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 19329, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 19327, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19318, - "src": "15568:7:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 19328, - "name": "minLimit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18537, - "src": "15579:8:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "15568:19:45", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 19332, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 19330, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19318, - "src": "15591:7:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "id": 19331, - "name": "currentReleaseLimit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19322, - "src": "15602:19:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "15591:30:45", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "15568:53:45", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552525f414d4f554e545f544f4f5f48494748", - "id": 19334, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15623:21:45", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_ea546d9a31e2cdf5ff54bd756b604340a9be1b0f1b5565f1667d358efb53a459", - "typeString": "literal_string \"ERR_AMOUNT_TOO_HIGH\"" - }, - "value": "ERR_AMOUNT_TOO_HIGH" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_ea546d9a31e2cdf5ff54bd756b604340a9be1b0f1b5565f1667d358efb53a459", - "typeString": "literal_string \"ERR_AMOUNT_TOO_HIGH\"" - } - ], - "id": 19326, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 22341, - 22342 - ], - "referencedDeclaration": 22342, - "src": "15560:7:45", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 19335, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15560:85:45", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 19336, - "nodeType": "ExpressionStatement", - "src": "15560:85:45" - }, - { - "expression": { - "argumentTypes": null, - "id": 19342, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 19337, - "name": "prevReleaseLimit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18541, - "src": "15706:16:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 19340, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19318, - "src": "15749:7:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 19338, - "name": "currentReleaseLimit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19322, - "src": "15725:19:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 19339, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 21758, - "src": "15725:23:45", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 19341, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15725:32:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "15706:51:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 19343, - "nodeType": "ExpressionStatement", - "src": "15706:51:45" - }, - { - "expression": { - "argumentTypes": null, - "id": 19347, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 19344, - "name": "prevReleaseBlockNumber", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18547, - "src": "15761:22:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 19345, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22328, - "src": "15786:5:45", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 19346, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "number", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "15786:12:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "15761:37:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 19348, - "nodeType": "ExpressionStatement", - "src": "15761:37:45" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 19350, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 18551 - ], - "referencedDeclaration": 18551, - "src": "15860:5:45", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - { - "argumentTypes": null, - "id": 19351, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19316, - "src": "15867:3:45", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 19352, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19318, - "src": "15872:7:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 19349, - "name": "safeTransfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21881, - "src": "15847:12:45", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20Token_$20240_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (contract IERC20Token,address,uint256)" - } - }, - "id": 19353, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15847:33:45", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 19354, - "nodeType": "ExpressionStatement", - "src": "15847:33:45" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 19356, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19316, - "src": "15904:3:45", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 19357, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19318, - "src": "15909:7:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 19355, - "name": "TokensRelease", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18587, - "src": "15890:13:45", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 19358, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15890:27:45", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 19359, - "nodeType": "EmitStatement", - "src": "15885:32:45" - } - ] - }, - "documentation": "@dev private method to release tokens held by the contract\n\t * @param _to the address to release tokens to\n@param _amount the amount of tokens to release", - "id": 19361, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "releaseTokens", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 19319, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 19316, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 19361, - "src": "15424:11:45", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 19315, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15424:7:45", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 19318, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 19361, - "src": "15437:15:45", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 19317, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15437:7:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15423:30:45" - }, - "payable": false, - "returnParameters": { - "id": 19320, - "nodeType": "ParameterList", - "parameters": [], - "src": "15462:0:45" - }, - "scope": 19362, - "src": "15401:520:45", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - } - ], - "scope": 19363, - "src": "835:15088:45" - } - ], - "src": "0:15924:45" - }, - "id": 45 - }, - "solidity/contracts/sovrynswapx/XTransferRerouter.sol": { - "ast": { - "absolutePath": "solidity/contracts/sovrynswapx/XTransferRerouter.sol", - "exportedSymbols": { - "XTransferRerouter": [ - 19434 - ] - }, - "id": 19435, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 19364, - "literals": [ - "solidity", - "0.4", - ".26" - ], - "nodeType": "PragmaDirective", - "src": "0:23:46" - }, - { - "absolutePath": "solidity/contracts/utility/Owned.sol", - "file": "../utility/Owned.sol", - "id": 19365, - "nodeType": "ImportDirective", - "scope": 19435, - "sourceUnit": 21325, - "src": "24:30:46", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 19366, - "name": "Owned", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 21324, - "src": "86:5:46", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Owned_$21324", - "typeString": "contract Owned" - } - }, - "id": 19367, - "nodeType": "InheritanceSpecifier", - "src": "86:5:46" - } - ], - "contractDependencies": [ - 21324, - 22247 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 19434, - "linearizedBaseContracts": [ - 19434, - 21324, - 22247 - ], - "name": "XTransferRerouter", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 19369, - "name": "reroutingEnabled", - "nodeType": "VariableDeclaration", - "scope": 19434, - "src": "95:28:46", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 19368, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "95:4:46", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "public" - }, - { - "anonymous": false, - "documentation": null, - "id": 19377, - "name": "TxReroute", - "nodeType": "EventDefinition", - "parameters": { - "id": 19376, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 19371, - "indexed": true, - "name": "_txId", - "nodeType": "VariableDeclaration", - "scope": 19377, - "src": "184:21:46", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 19370, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "184:7:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 19373, - "indexed": false, - "name": "_toBlockchain", - "nodeType": "VariableDeclaration", - "scope": 19377, - "src": "207:21:46", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 19372, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "207:7:46", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 19375, - "indexed": false, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 19377, - "src": "230:11:46", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 19374, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "230:7:46", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "183:59:46" - }, - "src": "168:75:46" - }, - { - "body": { - "id": 19386, - "nodeType": "Block", - "src": "441:44:46", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 19384, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 19382, - "name": "reroutingEnabled", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19369, - "src": "445:16:46", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 19383, - "name": "_reroutingEnabled", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19379, - "src": "464:17:46", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "445:36:46", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 19385, - "nodeType": "ExpressionStatement", - "src": "445:36:46" - } - ] - }, - "documentation": "@dev initializes a new XTransferRerouter instance\n\t * @param _reroutingEnabled intializes transactions routing to enabled/disabled", - "id": 19387, - "implemented": true, - "isConstructor": true, - "isDeclaredConst": false, - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 19380, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 19379, - "name": "_reroutingEnabled", - "nodeType": "VariableDeclaration", - "scope": 19387, - "src": "410:22:46", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 19378, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "410:4:46", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "409:24:46" - }, - "payable": false, - "returnParameters": { - "id": 19381, - "nodeType": "ParameterList", - "parameters": [], - "src": "441:0:46" - }, - "scope": 19434, - "src": "398:87:46", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 19398, - "nodeType": "Block", - "src": "668:34:46", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 19396, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 19394, - "name": "reroutingEnabled", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19369, - "src": "672:16:46", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 19395, - "name": "_enable", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19389, - "src": "691:7:46", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "672:26:46", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 19397, - "nodeType": "ExpressionStatement", - "src": "672:26:46" - } - ] - }, - "documentation": "@dev allows the owner to disable/enable rerouting\n\t * @param _enable true to enable, false to disable", - "id": 19399, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 19392, - "modifierName": { - "argumentTypes": null, - "id": 19391, - "name": "ownerOnly", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21265, - "src": "658:9:46", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "658:9:46" - } - ], - "name": "enableRerouting", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 19390, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 19389, - "name": "_enable", - "nodeType": "VariableDeclaration", - "scope": 19399, - "src": "637:12:46", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 19388, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "637:4:46", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "636:14:46" - }, - "payable": false, - "returnParameters": { - "id": 19393, - "nodeType": "ParameterList", - "parameters": [], - "src": "668:0:46" - }, - "scope": 19434, - "src": "612:90:46", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 19405, - "nodeType": "Block", - "src": "780:32:46", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 19401, - "name": "_reroutingAllowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19415, - "src": "784:17:46", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$__$", - "typeString": "function () view" - } - }, - "id": 19402, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "784:19:46", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 19403, - "nodeType": "ExpressionStatement", - "src": "784:19:46" - }, - { - "id": 19404, - "nodeType": "PlaceholderStatement", - "src": "807:1:46" - } - ] - }, - "documentation": null, - "id": 19406, - "name": "reroutingAllowed", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 19400, - "nodeType": "ParameterList", - "parameters": [], - "src": "780:0:46" - }, - "src": "754:58:46", - "visibility": "internal" - }, - { - "body": { - "id": 19414, - "nodeType": "Block", - "src": "901:49:46", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 19410, - "name": "reroutingEnabled", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19369, - "src": "913:16:46", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552525f44495341424c4544", - "id": 19411, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "931:14:46", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_9d3ff080c987bf451b6124b46a2d27535e787d6af81fbc565831013f54fd3a71", - "typeString": "literal_string \"ERR_DISABLED\"" - }, - "value": "ERR_DISABLED" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_9d3ff080c987bf451b6124b46a2d27535e787d6af81fbc565831013f54fd3a71", - "typeString": "literal_string \"ERR_DISABLED\"" - } - ], - "id": 19409, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 22341, - 22342 - ], - "referencedDeclaration": 22342, - "src": "905:7:46", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 19412, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "905:41:46", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 19413, - "nodeType": "ExpressionStatement", - "src": "905:41:46" - } - ] - }, - "documentation": null, - "id": 19415, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "_reroutingAllowed", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 19407, - "nodeType": "ParameterList", - "parameters": [], - "src": "884:2:46" - }, - "payable": false, - "returnParameters": { - "id": 19408, - "nodeType": "ParameterList", - "parameters": [], - "src": "901:0:46" - }, - "scope": 19434, - "src": "858:92:46", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 19432, - "nodeType": "Block", - "src": "1309:47:46", - "statements": [ - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 19427, - "name": "_txId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19417, - "src": "1328:5:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 19428, - "name": "_blockchain", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19419, - "src": "1335:11:46", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 19429, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19421, - "src": "1348:3:46", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 19426, - "name": "TxReroute", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19377, - "src": "1318:9:46", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_bytes32_$_t_bytes32_$returns$__$", - "typeString": "function (uint256,bytes32,bytes32)" - } - }, - "id": 19430, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1318:34:46", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 19431, - "nodeType": "EmitStatement", - "src": "1313:39:46" - } - ] - }, - "documentation": "@dev allows a user to reroute a transaction to a new blockchain/target address\n\t * @param _txId the original transaction id\n@param _blockchain the new blockchain name\n@param _to the new target address/account", - "id": 19433, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 19424, - "modifierName": { - "argumentTypes": null, - "id": 19423, - "name": "reroutingAllowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19406, - "src": "1292:16:46", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "1292:16:46" - } - ], - "name": "rerouteTx", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 19422, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 19417, - "name": "_txId", - "nodeType": "VariableDeclaration", - "scope": 19433, - "src": "1230:13:46", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 19416, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1230:7:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 19419, - "name": "_blockchain", - "nodeType": "VariableDeclaration", - "scope": 19433, - "src": "1247:19:46", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 19418, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1247:7:46", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 19421, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 19433, - "src": "1270:11:46", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 19420, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1270:7:46", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1226:58:46" - }, - "payable": false, - "returnParameters": { - "id": 19425, - "nodeType": "ParameterList", - "parameters": [], - "src": "1309:0:46" - }, - "scope": 19434, - "src": "1208:148:46", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 19435, - "src": "56:1302:46" - } - ], - "src": "0:1359:46" - }, - "id": 46 - }, - "solidity/contracts/sovrynswapx/interfaces/ISovrynSwapX.sol": { - "ast": { - "absolutePath": "solidity/contracts/sovrynswapx/interfaces/ISovrynSwapX.sol", - "exportedSymbols": { - "ISovrynSwapX": [ - 19466 - ] - }, - "id": 19467, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 19436, - "literals": [ - "solidity", - "0.4", - ".26" - ], - "nodeType": "PragmaDirective", - "src": "0:23:47" - }, - { - "absolutePath": "solidity/contracts/token/interfaces/IERC20Token.sol", - "file": "../../token/interfaces/IERC20Token.sol", - "id": 19437, - "nodeType": "ImportDirective", - "scope": 19467, - "sourceUnit": 20241, - "src": "24:48:47", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": false, - "id": 19466, - "linearizedBaseContracts": [ - 19466 - ], - "name": "ISovrynSwapX", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 19444, - "nodeType": "Block", - "src": "150:12:47", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 19442, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22393, - "src": "154:4:47", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISovrynSwapX_$19466", - "typeString": "contract ISovrynSwapX" - } - }, - "id": 19443, - "nodeType": "ExpressionStatement", - "src": "154:4:47" - } - ] - }, - "documentation": null, - "id": 19445, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "token", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 19438, - "nodeType": "ParameterList", - "parameters": [], - "src": "113:2:47" - }, - "payable": false, - "returnParameters": { - "id": 19441, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 19440, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 19445, - "src": "137:11:47", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - "typeName": { - "contractScope": null, - "id": 19439, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "137:11:47", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "136:13:47" - }, - "scope": 19466, - "src": "99:63:47", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 19456, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "xTransfer", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 19454, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 19447, - "name": "_toBlockchain", - "nodeType": "VariableDeclaration", - "scope": 19456, - "src": "187:21:47", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 19446, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "187:7:47", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 19449, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 19456, - "src": "212:11:47", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 19448, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "212:7:47", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 19451, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 19456, - "src": "227:15:47", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 19450, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "227:7:47", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 19453, - "name": "_id", - "nodeType": "VariableDeclaration", - "scope": 19456, - "src": "246:11:47", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 19452, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "246:7:47", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "183:77:47" - }, - "payable": false, - "returnParameters": { - "id": 19455, - "nodeType": "ParameterList", - "parameters": [], - "src": "267:0:47" - }, - "scope": 19466, - "src": "165:103:47", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 19465, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getXTransferAmount", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 19461, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 19458, - "name": "_xTransferId", - "nodeType": "VariableDeclaration", - "scope": 19465, - "src": "299:20:47", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 19457, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "299:7:47", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 19460, - "name": "_for", - "nodeType": "VariableDeclaration", - "scope": 19465, - "src": "321:12:47", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 19459, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "321:7:47", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "298:36:47" - }, - "payable": false, - "returnParameters": { - "id": 19464, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 19463, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 19465, - "src": "356:7:47", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 19462, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "356:7:47", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "355:9:47" - }, - "scope": 19466, - "src": "271:94:47", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 19467, - "src": "74:293:47" - } - ], - "src": "0:368:47" - }, - "id": 47 - }, - "solidity/contracts/sovrynswapx/interfaces/ISovrynSwapXUpgrader.sol": { - "ast": { - "absolutePath": "solidity/contracts/sovrynswapx/interfaces/ISovrynSwapXUpgrader.sol", - "exportedSymbols": { - "ISovrynSwapXUpgrader": [ - 19477 - ] - }, - "id": 19478, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 19468, - "literals": [ - "solidity", - "0.4", - ".26" - ], - "nodeType": "PragmaDirective", - "src": "0:23:48" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": false, - "id": 19477, - "linearizedBaseContracts": [ - 19477 - ], - "name": "ISovrynSwapXUpgrader", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": null, - "id": 19476, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "upgrade", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 19474, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 19470, - "name": "_version", - "nodeType": "VariableDeclaration", - "scope": 19476, - "src": "117:15:48", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 19469, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "117:6:48", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 19473, - "name": "_reporters", - "nodeType": "VariableDeclaration", - "scope": 19476, - "src": "134:20:48", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 19471, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "134:7:48", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 19472, - "length": null, - "nodeType": "ArrayTypeName", - "src": "134:9:48", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "116:39:48" - }, - "payable": false, - "returnParameters": { - "id": 19475, - "nodeType": "ParameterList", - "parameters": [], - "src": "162:0:48" - }, - "scope": 19477, - "src": "100:63:48", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 19478, - "src": "67:98:48" - } - ], - "src": "0:166:48" - }, - "id": 48 - }, - "solidity/contracts/token/ERC20Token.sol": { - "ast": { - "absolutePath": "solidity/contracts/token/ERC20Token.sol", - "exportedSymbols": { - "ERC20Token": [ - 19737 - ] - }, - "id": 19738, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 19479, - "literals": [ - "solidity", - "0.4", - ".26" - ], - "nodeType": "PragmaDirective", - "src": "0:23:49" - }, - { - "absolutePath": "solidity/contracts/token/interfaces/IERC20Token.sol", - "file": "./interfaces/IERC20Token.sol", - "id": 19480, - "nodeType": "ImportDirective", - "scope": 19738, - "sourceUnit": 20241, - "src": "24:38:49", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "solidity/contracts/utility/Utils.sol", - "file": "../utility/Utils.sol", - "id": 19481, - "nodeType": "ImportDirective", - "scope": 19738, - "sourceUnit": 22053, - "src": "63:30:49", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "solidity/contracts/utility/SafeMath.sol", - "file": "../utility/SafeMath.sol", - "id": 19482, - "nodeType": "ImportDirective", - "scope": 19738, - "sourceUnit": 21818, - "src": "94:33:49", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 19483, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "204:11:49", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "id": 19484, - "nodeType": "InheritanceSpecifier", - "src": "204:11:49" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 19485, - "name": "Utils", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 22052, - "src": "217:5:49", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Utils_$22052", - "typeString": "contract Utils" - } - }, - "id": 19486, - "nodeType": "InheritanceSpecifier", - "src": "217:5:49" - } - ], - "contractDependencies": [ - 20240, - 22052 - ], - "contractKind": "contract", - "documentation": "@dev ERC20 Standard Token implementation", - "fullyImplemented": true, - "id": 19737, - "linearizedBaseContracts": [ - 19737, - 22052, - 20240 - ], - "name": "ERC20Token", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 19489, - "libraryName": { - "contractScope": null, - "id": 19487, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 21817, - "src": "232:8:49", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$21817", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "226:27:49", - "typeName": { - "id": 19488, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "245:7:49", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "constant": false, - "id": 19491, - "name": "name", - "nodeType": "VariableDeclaration", - "scope": 19737, - "src": "256:18:49", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 19490, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "256:6:49", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 19493, - "name": "symbol", - "nodeType": "VariableDeclaration", - "scope": 19737, - "src": "277:20:49", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 19492, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "277:6:49", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 19495, - "name": "decimals", - "nodeType": "VariableDeclaration", - "scope": 19737, - "src": "300:21:49", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 19494, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "300:5:49", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 19497, - "name": "totalSupply", - "nodeType": "VariableDeclaration", - "scope": 19737, - "src": "324:26:49", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 19496, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "324:7:49", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 19501, - "name": "balanceOf", - "nodeType": "VariableDeclaration", - "scope": 19737, - "src": "353:44:49", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "typeName": { - "id": 19500, - "keyType": { - "id": 19498, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "361:7:49", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "353:27:49", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 19499, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "372:7:49", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 19507, - "name": "allowance", - "nodeType": "VariableDeclaration", - "scope": 19737, - "src": "400:64:49", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - }, - "typeName": { - "id": 19506, - "keyType": { - "id": 19502, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "408:7:49", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "400:47:49", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - }, - "valueType": { - "id": 19505, - "keyType": { - "id": 19503, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "427:7:49", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "419:27:49", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 19504, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "438:7:49", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - } - }, - "value": null, - "visibility": "public" - }, - { - "anonymous": false, - "documentation": "@dev triggered when tokens are transferred between wallets\n\t * @param _from source address\n@param _to target address\n@param _value transfer amount", - "id": 19515, - "name": "Transfer", - "nodeType": "EventDefinition", - "parameters": { - "id": 19514, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 19509, - "indexed": true, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 19515, - "src": "666:21:49", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 19508, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "666:7:49", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 19511, - "indexed": true, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 19515, - "src": "689:19:49", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 19510, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "689:7:49", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 19513, - "indexed": false, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 19515, - "src": "710:14:49", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 19512, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "710:7:49", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "665:60:49" - }, - "src": "651:75:49" - }, - { - "anonymous": false, - "documentation": "@dev triggered when a wallet allows another wallet to transfer tokens from on its behalf\n\t * @param _owner wallet that approves the allowance\n@param _spender wallet that receives the allowance\n@param _value allowance amount", - "id": 19523, - "name": "Approval", - "nodeType": "EventDefinition", - "parameters": { - "id": 19522, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 19517, - "indexed": true, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 19523, - "src": "998:22:49", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 19516, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "998:7:49", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 19519, - "indexed": true, - "name": "_spender", - "nodeType": "VariableDeclaration", - "scope": 19523, - "src": "1022:24:49", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 19518, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1022:7:49", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 19521, - "indexed": false, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 19523, - "src": "1048:14:49", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 19520, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1048:7:49", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "997:66:49" - }, - "src": "983:81:49" - }, - { - "body": { - "id": 19577, - "nodeType": "Block", - "src": "1412:271:49", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 19540, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 19536, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19525, - "src": "1450:5:49", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 19535, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1444:5:49", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", - "typeString": "type(bytes storage pointer)" - }, - "typeName": "bytes" - }, - "id": 19537, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1444:12:49", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory", - "typeString": "bytes memory" - } - }, - "id": 19538, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1444:19:49", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 19539, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1466:1:49", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "1444:23:49", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552525f494e56414c49445f4e414d45", - "id": 19541, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1469:18:49", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_8c31b897cf1b4c41d9a3a2c9019700f5d8d0c36c906997985403c8f4610f8246", - "typeString": "literal_string \"ERR_INVALID_NAME\"" - }, - "value": "ERR_INVALID_NAME" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_8c31b897cf1b4c41d9a3a2c9019700f5d8d0c36c906997985403c8f4610f8246", - "typeString": "literal_string \"ERR_INVALID_NAME\"" - } - ], - "id": 19534, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 22341, - 22342 - ], - "referencedDeclaration": 22342, - "src": "1436:7:49", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 19542, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1436:52:49", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 19543, - "nodeType": "ExpressionStatement", - "src": "1436:52:49" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 19550, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 19546, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19527, - "src": "1506:7:49", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 19545, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1500:5:49", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", - "typeString": "type(bytes storage pointer)" - }, - "typeName": "bytes" - }, - "id": 19547, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1500:14:49", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory", - "typeString": "bytes memory" - } - }, - "id": 19548, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1500:21:49", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 19549, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1524:1:49", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "1500:25:49", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552525f494e56414c49445f53594d424f4c", - "id": 19551, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1527:20:49", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_8cbe13dffb618f268f4d803a75787a665744c462e7a6ba0f32e015df7f7a2fda", - "typeString": "literal_string \"ERR_INVALID_SYMBOL\"" - }, - "value": "ERR_INVALID_SYMBOL" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_8cbe13dffb618f268f4d803a75787a665744c462e7a6ba0f32e015df7f7a2fda", - "typeString": "literal_string \"ERR_INVALID_SYMBOL\"" - } - ], - "id": 19544, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 22341, - 22342 - ], - "referencedDeclaration": 22342, - "src": "1492:7:49", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 19552, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1492:56:49", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 19553, - "nodeType": "ExpressionStatement", - "src": "1492:56:49" - }, - { - "expression": { - "argumentTypes": null, - "id": 19556, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 19554, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 19491 - ], - "referencedDeclaration": 19491, - "src": "1553:4:49", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 19555, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19525, - "src": "1560:5:49", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "1553:12:49", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 19557, - "nodeType": "ExpressionStatement", - "src": "1553:12:49" - }, - { - "expression": { - "argumentTypes": null, - "id": 19560, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 19558, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 19493 - ], - "referencedDeclaration": 19493, - "src": "1569:6:49", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 19559, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19527, - "src": "1578:7:49", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "1569:16:49", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 19561, - "nodeType": "ExpressionStatement", - "src": "1569:16:49" - }, - { - "expression": { - "argumentTypes": null, - "id": 19564, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 19562, - "name": "decimals", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 19495 - ], - "referencedDeclaration": 19495, - "src": "1589:8:49", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 19563, - "name": "_decimals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19529, - "src": "1600:9:49", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "1589:20:49", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "id": 19565, - "nodeType": "ExpressionStatement", - "src": "1589:20:49" - }, - { - "expression": { - "argumentTypes": null, - "id": 19568, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 19566, - "name": "totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 19497 - ], - "referencedDeclaration": 19497, - "src": "1613:11:49", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 19567, - "name": "_totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19531, - "src": "1627:12:49", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1613:26:49", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 19569, - "nodeType": "ExpressionStatement", - "src": "1613:26:49" - }, - { - "expression": { - "argumentTypes": null, - "id": 19575, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 19570, - "name": "balanceOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 19501 - ], - "referencedDeclaration": 19501, - "src": "1643:9:49", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 19573, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 19571, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22338, - "src": "1653:3:49", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 19572, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1653:10:49", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "1643:21:49", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 19574, - "name": "_totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19531, - "src": "1667:12:49", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1643:36:49", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 19576, - "nodeType": "ExpressionStatement", - "src": "1643:36:49" - } - ] - }, - "documentation": "@dev initializes a new ERC20Token instance\n\t * @param _name token name\n@param _symbol token symbol\n@param _decimals decimal points, for display purposes\n@param _totalSupply total supply of token units", - "id": 19578, - "implemented": true, - "isConstructor": true, - "isDeclaredConst": false, - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 19532, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 19525, - "name": "_name", - "nodeType": "VariableDeclaration", - "scope": 19578, - "src": "1328:12:49", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 19524, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1328:6:49", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 19527, - "name": "_symbol", - "nodeType": "VariableDeclaration", - "scope": 19578, - "src": "1344:14:49", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 19526, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1344:6:49", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 19529, - "name": "_decimals", - "nodeType": "VariableDeclaration", - "scope": 19578, - "src": "1362:15:49", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 19528, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "1362:5:49", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 19531, - "name": "_totalSupply", - "nodeType": "VariableDeclaration", - "scope": 19578, - "src": "1381:20:49", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 19530, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1381:7:49", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1324:80:49" - }, - "payable": false, - "returnParameters": { - "id": 19533, - "nodeType": "ParameterList", - "parameters": [], - "src": "1412:0:49" - }, - "scope": 19737, - "src": "1313:370:49", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 19623, - "nodeType": "Block", - "src": "2063:169:49", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 19601, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 19590, - "name": "balanceOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 19501 - ], - "referencedDeclaration": 19501, - "src": "2067:9:49", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 19593, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 19591, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22338, - "src": "2077:3:49", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 19592, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2077:10:49", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "2067:21:49", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 19599, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19582, - "src": "2117:6:49", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 19594, - "name": "balanceOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 19501 - ], - "referencedDeclaration": 19501, - "src": "2091:9:49", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 19597, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 19595, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22338, - "src": "2101:3:49", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 19596, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2101:10:49", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2091:21:49", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 19598, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 21758, - "src": "2091:25:49", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 19600, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2091:33:49", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2067:57:49", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 19602, - "nodeType": "ExpressionStatement", - "src": "2067:57:49" - }, - { - "expression": { - "argumentTypes": null, - "id": 19612, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 19603, - "name": "balanceOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 19501 - ], - "referencedDeclaration": 19501, - "src": "2128:9:49", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 19605, - "indexExpression": { - "argumentTypes": null, - "id": 19604, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19580, - "src": "2138:3:49", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "2128:14:49", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 19610, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19582, - "src": "2164:6:49", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 19606, - "name": "balanceOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 19501 - ], - "referencedDeclaration": 19501, - "src": "2145:9:49", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 19608, - "indexExpression": { - "argumentTypes": null, - "id": 19607, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19580, - "src": "2155:3:49", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2145:14:49", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 19609, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 21737, - "src": "2145:18:49", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 19611, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2145:26:49", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2128:43:49", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 19613, - "nodeType": "ExpressionStatement", - "src": "2128:43:49" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 19615, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22338, - "src": "2189:3:49", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 19616, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2189:10:49", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 19617, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19580, - "src": "2201:3:49", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 19618, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19582, - "src": "2206:6:49", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 19614, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19515, - "src": "2180:8:49", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 19619, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2180:33:49", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 19620, - "nodeType": "EmitStatement", - "src": "2175:38:49" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 19621, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2224:4:49", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 19589, - "id": 19622, - "nodeType": "Return", - "src": "2217:11:49" - } - ] - }, - "documentation": "@dev transfers tokens to a given address\nthrows on any error rather then return a false flag to minimize user errors\n\t * @param _to target address\n@param _value transfer amount\n\t * @return true if the transfer was successful, false if it wasn't", - "id": 19624, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 19585, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19580, - "src": "2035:3:49", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 19586, - "modifierName": { - "argumentTypes": null, - "id": 19584, - "name": "validAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22011, - "src": "2022:12:49", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$", - "typeString": "modifier (address)" - } - }, - "nodeType": "ModifierInvocation", - "src": "2022:17:49" - } - ], - "name": "transfer", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 19583, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 19580, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 19624, - "src": "1986:11:49", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 19579, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1986:7:49", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 19582, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 19624, - "src": "1999:14:49", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 19581, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1999:7:49", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1985:29:49" - }, - "payable": false, - "returnParameters": { - "id": 19589, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 19588, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 19624, - "src": "2049:12:49", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 19587, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2049:4:49", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2048:14:49" - }, - "scope": 19737, - "src": "1968:264:49", - "stateMutability": "nonpayable", - "superFunction": 20219, - "visibility": "public" - }, - { - "body": { - "id": 19688, - "nodeType": "Block", - "src": "2724:229:49", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 19656, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 19641, - "name": "allowance", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 19507 - ], - "referencedDeclaration": 19507, - "src": "2728:9:49", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 19645, - "indexExpression": { - "argumentTypes": null, - "id": 19642, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19626, - "src": "2738:5:49", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2728:16:49", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 19646, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 19643, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22338, - "src": "2745:3:49", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 19644, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2745:10:49", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "2728:28:49", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 19654, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19630, - "src": "2792:6:49", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 19647, - "name": "allowance", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 19507 - ], - "referencedDeclaration": 19507, - "src": "2759:9:49", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 19649, - "indexExpression": { - "argumentTypes": null, - "id": 19648, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19626, - "src": "2769:5:49", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2759:16:49", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 19652, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 19650, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22338, - "src": "2776:3:49", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 19651, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2776:10:49", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2759:28:49", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 19653, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 21758, - "src": "2759:32:49", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 19655, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2759:40:49", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2728:71:49", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 19657, - "nodeType": "ExpressionStatement", - "src": "2728:71:49" - }, - { - "expression": { - "argumentTypes": null, - "id": 19667, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 19658, - "name": "balanceOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 19501 - ], - "referencedDeclaration": 19501, - "src": "2803:9:49", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 19660, - "indexExpression": { - "argumentTypes": null, - "id": 19659, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19626, - "src": "2813:5:49", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "2803:16:49", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 19665, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19630, - "src": "2843:6:49", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 19661, - "name": "balanceOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 19501 - ], - "referencedDeclaration": 19501, - "src": "2822:9:49", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 19663, - "indexExpression": { - "argumentTypes": null, - "id": 19662, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19626, - "src": "2832:5:49", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2822:16:49", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 19664, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 21758, - "src": "2822:20:49", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 19666, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2822:28:49", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2803:47:49", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 19668, - "nodeType": "ExpressionStatement", - "src": "2803:47:49" - }, - { - "expression": { - "argumentTypes": null, - "id": 19678, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 19669, - "name": "balanceOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 19501 - ], - "referencedDeclaration": 19501, - "src": "2854:9:49", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 19671, - "indexExpression": { - "argumentTypes": null, - "id": 19670, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19628, - "src": "2864:3:49", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "2854:14:49", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 19676, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19630, - "src": "2890:6:49", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 19672, - "name": "balanceOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 19501 - ], - "referencedDeclaration": 19501, - "src": "2871:9:49", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 19674, - "indexExpression": { - "argumentTypes": null, - "id": 19673, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19628, - "src": "2881:3:49", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2871:14:49", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 19675, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 21737, - "src": "2871:18:49", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 19677, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2871:26:49", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2854:43:49", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 19679, - "nodeType": "ExpressionStatement", - "src": "2854:43:49" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 19681, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19626, - "src": "2915:5:49", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 19682, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19628, - "src": "2922:3:49", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 19683, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19630, - "src": "2927:6:49", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 19680, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19515, - "src": "2906:8:49", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 19684, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2906:28:49", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 19685, - "nodeType": "EmitStatement", - "src": "2901:33:49" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 19686, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2945:4:49", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 19640, - "id": 19687, - "nodeType": "Return", - "src": "2938:11:49" - } - ] - }, - "documentation": "@dev transfers tokens to a given address on behalf of another address\nthrows on any error rather then return a false flag to minimize user errors\n\t * @param _from source address\n@param _to target address\n@param _value transfer amount\n\t * @return true if the transfer was successful, false if it wasn't", - "id": 19689, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 19633, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19626, - "src": "2676:5:49", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 19634, - "modifierName": { - "argumentTypes": null, - "id": 19632, - "name": "validAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22011, - "src": "2663:12:49", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$", - "typeString": "modifier (address)" - } - }, - "nodeType": "ModifierInvocation", - "src": "2663:19:49" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 19636, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19628, - "src": "2696:3:49", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 19637, - "modifierName": { - "argumentTypes": null, - "id": 19635, - "name": "validAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22011, - "src": "2683:12:49", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$", - "typeString": "modifier (address)" - } - }, - "nodeType": "ModifierInvocation", - "src": "2683:17:49" - } - ], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 19631, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 19626, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 19689, - "src": "2606:13:49", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 19625, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2606:7:49", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 19628, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 19689, - "src": "2623:11:49", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 19627, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2623:7:49", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 19630, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 19689, - "src": "2638:14:49", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 19629, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2638:7:49", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2602:53:49" - }, - "payable": false, - "returnParameters": { - "id": 19640, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 19639, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 19689, - "src": "2710:12:49", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 19638, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2710:4:49", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2709:14:49" - }, - "scope": 19737, - "src": "2581:372:49", - "stateMutability": "nonpayable", - "superFunction": 20230, - "visibility": "public" - }, - { - "body": { - "id": 19735, - "nodeType": "Block", - "src": "3705:316:49", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 19713, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 19704, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 19702, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19693, - "src": "3836:6:49", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 19703, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3846:1:49", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "3836:11:49", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 19712, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 19705, - "name": "allowance", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 19507 - ], - "referencedDeclaration": 19507, - "src": "3851:9:49", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 19708, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 19706, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22338, - "src": "3861:3:49", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 19707, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3861:10:49", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3851:21:49", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 19710, - "indexExpression": { - "argumentTypes": null, - "id": 19709, - "name": "_spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19691, - "src": "3873:8:49", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3851:31:49", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 19711, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3886:1:49", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "3851:36:49", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "3836:51:49", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552525f494e56414c49445f414d4f554e54", - "id": 19714, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3889:20:49", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c44007bfe4e704be0ed1393660a827b4f88825f4b6fe1bc10cd38fc3fcb7d839", - "typeString": "literal_string \"ERR_INVALID_AMOUNT\"" - }, - "value": "ERR_INVALID_AMOUNT" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_c44007bfe4e704be0ed1393660a827b4f88825f4b6fe1bc10cd38fc3fcb7d839", - "typeString": "literal_string \"ERR_INVALID_AMOUNT\"" - } - ], - "id": 19701, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 22341, - 22342 - ], - "referencedDeclaration": 22342, - "src": "3828:7:49", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 19715, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3828:82:49", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 19716, - "nodeType": "ExpressionStatement", - "src": "3828:82:49" - }, - { - "expression": { - "argumentTypes": null, - "id": 19724, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 19717, - "name": "allowance", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 19507 - ], - "referencedDeclaration": 19507, - "src": "3915:9:49", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 19721, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 19718, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22338, - "src": "3925:3:49", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 19719, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3925:10:49", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3915:21:49", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 19722, - "indexExpression": { - "argumentTypes": null, - "id": 19720, - "name": "_spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19691, - "src": "3937:8:49", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "3915:31:49", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 19723, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19693, - "src": "3949:6:49", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3915:40:49", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 19725, - "nodeType": "ExpressionStatement", - "src": "3915:40:49" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 19727, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22338, - "src": "3973:3:49", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 19728, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3973:10:49", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 19729, - "name": "_spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19691, - "src": "3985:8:49", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 19730, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19693, - "src": "3995:6:49", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 19726, - "name": "Approval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19523, - "src": "3964:8:49", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 19731, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3964:38:49", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 19732, - "nodeType": "EmitStatement", - "src": "3959:43:49" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 19733, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4013:4:49", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 19700, - "id": 19734, - "nodeType": "Return", - "src": "4006:11:49" - } - ] - }, - "documentation": "@dev allows another account/contract to transfers tokens on behalf of the caller\nthrows on any error rather then return a false flag to minimize user errors\n\t * also, to minimize the risk of the approve/transferFrom attack vector\n(see https://docs.google.com/document/d/1YLPtQxZu1UAvO9cZ1O2RPXBbT0mooh4DYKjA_jp-RLM/), approve has to be called twice\nin 2 separate transactions - once to change the allowance to 0 and secondly to change it to the new allowance value\n\t * @param _spender approved address\n@param _value allowance amount\n\t * @return true if the approval was successful, false if it wasn't", - "id": 19736, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 19696, - "name": "_spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19691, - "src": "3672:8:49", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 19697, - "modifierName": { - "argumentTypes": null, - "id": 19695, - "name": "validAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22011, - "src": "3659:12:49", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$", - "typeString": "modifier (address)" - } - }, - "nodeType": "ModifierInvocation", - "src": "3659:22:49" - } - ], - "name": "approve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 19694, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 19691, - "name": "_spender", - "nodeType": "VariableDeclaration", - "scope": 19736, - "src": "3618:16:49", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 19690, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3618:7:49", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 19693, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 19736, - "src": "3636:14:49", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 19692, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3636:7:49", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3617:34:49" - }, - "payable": false, - "returnParameters": { - "id": 19700, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 19699, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 19736, - "src": "3691:12:49", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 19698, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "3691:4:49", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3690:14:49" - }, - "scope": 19737, - "src": "3601:420:49", - "stateMutability": "nonpayable", - "superFunction": 20239, - "visibility": "public" - } - ], - "scope": 19738, - "src": "181:3842:49" - } - ], - "src": "0:4024:49" - }, - "id": 49 - }, - "solidity/contracts/token/EtherToken.sol": { - "ast": { - "absolutePath": "solidity/contracts/token/EtherToken.sol", - "exportedSymbols": { - "EtherToken": [ - 19938 - ] - }, - "id": 19939, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 19739, - "literals": [ - "solidity", - "0.4", - ".26" - ], - "nodeType": "PragmaDirective", - "src": "0:23:50" - }, - { - "absolutePath": "solidity/contracts/token/ERC20Token.sol", - "file": "./ERC20Token.sol", - "id": 19740, - "nodeType": "ImportDirective", - "scope": 19939, - "sourceUnit": 19738, - "src": "24:26:50", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "solidity/contracts/token/interfaces/IEtherToken.sol", - "file": "./interfaces/IEtherToken.sol", - "id": 19741, - "nodeType": "ImportDirective", - "scope": 19939, - "sourceUnit": 20267, - "src": "51:38:50", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "solidity/contracts/utility/SafeMath.sol", - "file": "../utility/SafeMath.sol", - "id": 19742, - "nodeType": "ImportDirective", - "scope": 19939, - "sourceUnit": 21818, - "src": "90:33:50", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 19743, - "name": "IEtherToken", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20266, - "src": "248:11:50", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IEtherToken_$20266", - "typeString": "contract IEtherToken" - } - }, - "id": 19744, - "nodeType": "InheritanceSpecifier", - "src": "248:11:50" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 19745, - "name": "ERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 19737, - "src": "261:10:50", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Token_$19737", - "typeString": "contract ERC20Token" - } - }, - "id": 19746, - "nodeType": "InheritanceSpecifier", - "src": "261:10:50" - } - ], - "contractDependencies": [ - 19737, - 20240, - 20266, - 22052 - ], - "contractKind": "contract", - "documentation": "@dev Ether tokenization contract\n * 'Owned' is specified here for readability reasons", - "fullyImplemented": true, - "id": 19938, - "linearizedBaseContracts": [ - 19938, - 19737, - 22052, - 20266, - 20240 - ], - "name": "EtherToken", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 19749, - "libraryName": { - "contractScope": null, - "id": 19747, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 21817, - "src": "281:8:50", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$21817", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "275:27:50", - "typeName": { - "id": 19748, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "294:7:50", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "anonymous": false, - "documentation": "@dev triggered when the total supply is increased\n\t * @param _amount amount that gets added to the supply", - "id": 19753, - "name": "Issuance", - "nodeType": "EventDefinition", - "parameters": { - "id": 19752, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 19751, - "indexed": false, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 19753, - "src": "445:15:50", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 19750, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "445:7:50", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "444:17:50" - }, - "src": "430:32:50" - }, - { - "anonymous": false, - "documentation": "@dev triggered when the total supply is decreased\n\t * @param _amount amount that gets removed from the supply", - "id": 19757, - "name": "Destruction", - "nodeType": "EventDefinition", - "parameters": { - "id": 19756, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 19755, - "indexed": false, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 19757, - "src": "612:15:50", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 19754, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "612:7:50", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "611:17:50" - }, - "src": "594:35:50" - }, - { - "body": { - "id": 19770, - "nodeType": "Block", - "src": "848:2:50", - "statements": [] - }, - "documentation": "@dev initializes a new EtherToken instance\n\t * @param _name token name\n@param _symbol token symbol", - "id": 19771, - "implemented": true, - "isConstructor": true, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 19764, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19759, - "src": "825:5:50", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 19765, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19761, - "src": "832:7:50", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "hexValue": "3138", - "id": 19766, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "841:2:50", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_18_by_1", - "typeString": "int_const 18" - }, - "value": "18" - }, - { - "argumentTypes": null, - "hexValue": "30", - "id": 19767, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "845:1:50", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "id": 19768, - "modifierName": { - "argumentTypes": null, - "id": 19763, - "name": "ERC20Token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19737, - "src": "814:10:50", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20Token_$19737_$", - "typeString": "type(contract ERC20Token)" - } - }, - "nodeType": "ModifierInvocation", - "src": "814:33:50" - } - ], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 19762, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 19759, - "name": "_name", - "nodeType": "VariableDeclaration", - "scope": 19771, - "src": "777:12:50", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 19758, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "777:6:50", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 19761, - "name": "_symbol", - "nodeType": "VariableDeclaration", - "scope": 19771, - "src": "791:14:50", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 19760, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "791:6:50", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "776:30:50" - }, - "payable": false, - "returnParameters": { - "id": 19769, - "nodeType": "ParameterList", - "parameters": [], - "src": "848:0:50" - }, - "scope": 19938, - "src": "765:85:50", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 19779, - "nodeType": "Block", - "src": "944:29:50", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 19775, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22338, - "src": "958:3:50", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 19776, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "958:10:50", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 19774, - "name": "depositTo", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 19833 - ], - "referencedDeclaration": 19833, - "src": "948:9:50", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 19777, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "948:21:50", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 19778, - "nodeType": "ExpressionStatement", - "src": "948:21:50" - } - ] - }, - "documentation": "@dev deposit ether on behalf of the sender", - "id": 19780, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "deposit", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 19772, - "nodeType": "ParameterList", - "parameters": [], - "src": "926:2:50" - }, - "payable": true, - "returnParameters": { - "id": 19773, - "nodeType": "ParameterList", - "parameters": [], - "src": "944:0:50" - }, - "scope": 19938, - "src": "910:63:50", - "stateMutability": "payable", - "superFunction": 20248, - "visibility": "public" - }, - { - "body": { - "id": 19791, - "nodeType": "Block", - "src": "1128:39:50", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 19786, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22338, - "src": "1143:3:50", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 19787, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1143:10:50", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 19788, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19782, - "src": "1155:7:50", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 19785, - "name": "withdrawTo", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 19881 - ], - "referencedDeclaration": 19881, - "src": "1132:10:50", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 19789, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1132:31:50", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 19790, - "nodeType": "ExpressionStatement", - "src": "1132:31:50" - } - ] - }, - "documentation": "@dev withdraw ether to the sender's account\n\t * @param _amount amount of ether to withdraw", - "id": 19792, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "withdraw", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 19783, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 19782, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 19792, - "src": "1104:15:50", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 19781, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1104:7:50", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1103:17:50" - }, - "payable": false, - "returnParameters": { - "id": 19784, - "nodeType": "ParameterList", - "parameters": [], - "src": "1128:0:50" - }, - "scope": 19938, - "src": "1086:81:50", - "stateMutability": "nonpayable", - "superFunction": 20253, - "visibility": "public" - }, - { - "body": { - "id": 19832, - "nodeType": "Block", - "src": "1359:235:50", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 19810, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 19800, - "name": "balanceOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 19501 - ], - "referencedDeclaration": 19501, - "src": "1363:9:50", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 19802, - "indexExpression": { - "argumentTypes": null, - "id": 19801, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19794, - "src": "1373:3:50", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "1363:14:50", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 19807, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22338, - "src": "1399:3:50", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 19808, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1399:9:50", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 19803, - "name": "balanceOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 19501 - ], - "referencedDeclaration": 19501, - "src": "1380:9:50", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 19805, - "indexExpression": { - "argumentTypes": null, - "id": 19804, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19794, - "src": "1390:3:50", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1380:14:50", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 19806, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 21737, - "src": "1380:18:50", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 19809, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1380:29:50", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1363:46:50", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 19811, - "nodeType": "ExpressionStatement", - "src": "1363:46:50" - }, - { - "expression": { - "argumentTypes": null, - "id": 19818, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 19812, - "name": "totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 19497 - ], - "referencedDeclaration": 19497, - "src": "1453:11:50", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 19815, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22338, - "src": "1483:3:50", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 19816, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1483:9:50", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 19813, - "name": "totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 19497 - ], - "referencedDeclaration": 19497, - "src": "1467:11:50", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 19814, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 21737, - "src": "1467:15:50", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 19817, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1467:26:50", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1453:40:50", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 19819, - "nodeType": "ExpressionStatement", - "src": "1453:40:50" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 19821, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22338, - "src": "1541:3:50", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 19822, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1541:9:50", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 19820, - "name": "Issuance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19753, - "src": "1532:8:50", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 19823, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1532:19:50", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 19824, - "nodeType": "EmitStatement", - "src": "1527:24:50" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 19826, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22511, - "src": "1569:4:50", - "typeDescriptions": { - "typeIdentifier": "t_contract$_EtherToken_$19938", - "typeString": "contract EtherToken" - } - }, - { - "argumentTypes": null, - "id": 19827, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19794, - "src": "1575:3:50", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 19828, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22338, - "src": "1580:3:50", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 19829, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1580:9:50", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_EtherToken_$19938", - "typeString": "contract EtherToken" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 19825, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19515, - "src": "1560:8:50", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 19830, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1560:30:50", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 19831, - "nodeType": "EmitStatement", - "src": "1555:35:50" - } - ] - }, - "documentation": "@dev deposit ether to be entitled for a given account\n\t * @param _to account to be entitled for the ether", - "id": 19833, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 19797, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19794, - "src": "1354:3:50", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 19798, - "modifierName": { - "argumentTypes": null, - "id": 19796, - "name": "notThis", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22036, - "src": "1346:7:50", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$", - "typeString": "modifier (address)" - } - }, - "nodeType": "ModifierInvocation", - "src": "1346:12:50" - } - ], - "name": "depositTo", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 19795, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 19794, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 19833, - "src": "1318:11:50", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 19793, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1318:7:50", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1317:13:50" - }, - "payable": true, - "returnParameters": { - "id": 19799, - "nodeType": "ParameterList", - "parameters": [], - "src": "1359:0:50" - }, - "scope": 19938, - "src": "1299:295:50", - "stateMutability": "payable", - "superFunction": 20258, - "visibility": "public" - }, - { - "body": { - "id": 19880, - "nodeType": "Block", - "src": "1844:323:50", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 19854, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 19843, - "name": "balanceOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 19501 - ], - "referencedDeclaration": 19501, - "src": "1848:9:50", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 19846, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 19844, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22338, - "src": "1858:3:50", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 19845, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1858:10:50", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "1848:21:50", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 19852, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19837, - "src": "1898:7:50", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 19847, - "name": "balanceOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 19501 - ], - "referencedDeclaration": 19501, - "src": "1872:9:50", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 19850, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 19848, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22338, - "src": "1882:3:50", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 19849, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1882:10:50", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1872:21:50", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 19851, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 21758, - "src": "1872:25:50", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 19853, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1872:34:50", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1848:58:50", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 19855, - "nodeType": "ExpressionStatement", - "src": "1848:58:50" - }, - { - "expression": { - "argumentTypes": null, - "id": 19861, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 19856, - "name": "totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 19497 - ], - "referencedDeclaration": 19497, - "src": "1956:11:50", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 19859, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19837, - "src": "1986:7:50", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 19857, - "name": "totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 19497 - ], - "referencedDeclaration": 19497, - "src": "1970:11:50", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 19858, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 21758, - "src": "1970:15:50", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 19860, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1970:24:50", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1956:38:50", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 19862, - "nodeType": "ExpressionStatement", - "src": "1956:38:50" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 19866, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19837, - "src": "2040:7:50", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 19863, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19835, - "src": "2027:3:50", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 19865, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2027:12:50", - "typeDescriptions": { - "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 19867, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2027:21:50", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 19868, - "nodeType": "ExpressionStatement", - "src": "2027:21:50" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 19870, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22338, - "src": "2108:3:50", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 19871, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2108:10:50", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 19872, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22511, - "src": "2120:4:50", - "typeDescriptions": { - "typeIdentifier": "t_contract$_EtherToken_$19938", - "typeString": "contract EtherToken" - } - }, - { - "argumentTypes": null, - "id": 19873, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19837, - "src": "2126:7:50", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_contract$_EtherToken_$19938", - "typeString": "contract EtherToken" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 19869, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19515, - "src": "2099:8:50", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 19874, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2099:35:50", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 19875, - "nodeType": "EmitStatement", - "src": "2094:40:50" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 19877, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19837, - "src": "2155:7:50", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 19876, - "name": "Destruction", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19757, - "src": "2143:11:50", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 19878, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2143:20:50", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 19879, - "nodeType": "EmitStatement", - "src": "2138:25:50" - } - ] - }, - "documentation": "@dev withdraw ether entitled by the sender to a given account\n\t * @param _to account to receive the ether\n@param _amount amount of ether to withdraw", - "id": 19881, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 19840, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19835, - "src": "1839:3:50", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 19841, - "modifierName": { - "argumentTypes": null, - "id": 19839, - "name": "notThis", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22036, - "src": "1831:7:50", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$", - "typeString": "modifier (address)" - } - }, - "nodeType": "ModifierInvocation", - "src": "1831:12:50" - } - ], - "name": "withdrawTo", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 19838, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 19835, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 19881, - "src": "1794:11:50", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 19834, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1794:7:50", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 19837, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 19881, - "src": "1807:15:50", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 19836, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1807:7:50", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1793:30:50" - }, - "payable": false, - "returnParameters": { - "id": 19842, - "nodeType": "ParameterList", - "parameters": [], - "src": "1844:0:50" - }, - "scope": 19938, - "src": "1774:393:50", - "stateMutability": "nonpayable", - "superFunction": 20265, - "visibility": "public" - }, - { - "body": { - "id": 19903, - "nodeType": "Block", - "src": "2581:58:50", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 19896, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19883, - "src": "2607:3:50", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 19897, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19885, - "src": "2612:6:50", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 19894, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22512, - "src": "2592:5:50", - "typeDescriptions": { - "typeIdentifier": "t_super$_EtherToken_$19938", - "typeString": "contract super EtherToken" - } - }, - "id": 19895, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 19624, - "src": "2592:14:50", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) returns (bool)" - } - }, - "id": 19898, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2592:27:50", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 19893, - "name": "assert", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22327, - "src": "2585:6:50", - "typeDescriptions": { - "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 19899, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2585:35:50", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 19900, - "nodeType": "ExpressionStatement", - "src": "2585:35:50" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 19901, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2631:4:50", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 19892, - "id": 19902, - "nodeType": "Return", - "src": "2624:11:50" - } - ] - }, - "documentation": "@dev send coins\nthrows on any error rather then return a false flag to minimize user errors\n\t * @param _to target address\n@param _value transfer amount\n\t * @return true if the transfer was successful, false if it wasn't", - "id": 19904, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 19888, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19883, - "src": "2553:3:50", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 19889, - "modifierName": { - "argumentTypes": null, - "id": 19887, - "name": "notThis", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22036, - "src": "2545:7:50", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$", - "typeString": "modifier (address)" - } - }, - "nodeType": "ModifierInvocation", - "src": "2545:12:50" - } - ], - "name": "transfer", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 19886, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 19883, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 19904, - "src": "2509:11:50", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 19882, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2509:7:50", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 19885, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 19904, - "src": "2522:14:50", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 19884, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2522:7:50", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2508:29:50" - }, - "payable": false, - "returnParameters": { - "id": 19892, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 19891, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 19904, - "src": "2567:12:50", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 19890, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2567:4:50", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2566:14:50" - }, - "scope": 19938, - "src": "2491:148:50", - "stateMutability": "nonpayable", - "superFunction": 19624, - "visibility": "public" - }, - { - "body": { - "id": 19929, - "nodeType": "Block", - "src": "3087:69:50", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 19921, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19906, - "src": "3117:5:50", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 19922, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19908, - "src": "3124:3:50", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 19923, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19910, - "src": "3129:6:50", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 19919, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22512, - "src": "3098:5:50", - "typeDescriptions": { - "typeIdentifier": "t_super$_EtherToken_$19938", - "typeString": "contract super EtherToken" - } - }, - "id": 19920, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transferFrom", - "nodeType": "MemberAccess", - "referencedDeclaration": 19689, - "src": "3098:18:50", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,address,uint256) returns (bool)" - } - }, - "id": 19924, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3098:38:50", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 19918, - "name": "assert", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22327, - "src": "3091:6:50", - "typeDescriptions": { - "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 19925, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3091:46:50", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 19926, - "nodeType": "ExpressionStatement", - "src": "3091:46:50" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 19927, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3148:4:50", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 19917, - "id": 19928, - "nodeType": "Return", - "src": "3141:11:50" - } - ] - }, - "documentation": "@dev an account/contract attempts to get the coins\nthrows on any error rather then return a false flag to minimize user errors\n\t * @param _from source address\n@param _to target address\n@param _value transfer amount\n\t * @return true if the transfer was successful, false if it wasn't", - "id": 19930, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 19913, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19908, - "src": "3059:3:50", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 19914, - "modifierName": { - "argumentTypes": null, - "id": 19912, - "name": "notThis", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22036, - "src": "3051:7:50", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$", - "typeString": "modifier (address)" - } - }, - "nodeType": "ModifierInvocation", - "src": "3051:12:50" - } - ], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 19911, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 19906, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 19930, - "src": "2994:13:50", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 19905, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2994:7:50", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 19908, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 19930, - "src": "3011:11:50", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 19907, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3011:7:50", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 19910, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 19930, - "src": "3026:14:50", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 19909, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3026:7:50", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2990:53:50" - }, - "payable": false, - "returnParameters": { - "id": 19917, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 19916, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 19930, - "src": "3073:12:50", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 19915, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "3073:4:50", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3072:14:50" - }, - "scope": 19938, - "src": "2969:187:50", - "stateMutability": "nonpayable", - "superFunction": 19689, - "visibility": "public" - }, - { - "body": { - "id": 19936, - "nodeType": "Block", - "src": "3235:17:50", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 19933, - "name": "deposit", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 19780 - ], - "referencedDeclaration": 19780, - "src": "3239:7:50", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", - "typeString": "function ()" - } - }, - "id": 19934, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3239:9:50", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 19935, - "nodeType": "ExpressionStatement", - "src": "3239:9:50" - } - ] - }, - "documentation": "@dev deposit ether in the account", - "id": 19937, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 19931, - "nodeType": "ParameterList", - "parameters": [], - "src": "3215:2:50" - }, - "payable": true, - "returnParameters": { - "id": 19932, - "nodeType": "ParameterList", - "parameters": [], - "src": "3235:0:50" - }, - "scope": 19938, - "src": "3207:45:50", - "stateMutability": "payable", - "superFunction": null, - "visibility": "external" - } - ], - "scope": 19939, - "src": "225:3029:50" - } - ], - "src": "0:3255:50" - }, - "id": 50 - }, - "solidity/contracts/token/SmartToken.sol": { - "ast": { - "absolutePath": "solidity/contracts/token/SmartToken.sol", - "exportedSymbols": { - "SmartToken": [ - 20148 - ] - }, - "id": 20149, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 19940, - "literals": [ - "solidity", - "0.4", - ".26" - ], - "nodeType": "PragmaDirective", - "src": "0:23:51" - }, - { - "absolutePath": "solidity/contracts/token/ERC20Token.sol", - "file": "./ERC20Token.sol", - "id": 19941, - "nodeType": "ImportDirective", - "scope": 20149, - "sourceUnit": 19738, - "src": "24:26:51", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "solidity/contracts/token/interfaces/ISmartToken.sol", - "file": "./interfaces/ISmartToken.sol", - "id": 19942, - "nodeType": "ImportDirective", - "scope": 20149, - "sourceUnit": 20296, - "src": "51:38:51", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "solidity/contracts/utility/Owned.sol", - "file": "../utility/Owned.sol", - "id": 19943, - "nodeType": "ImportDirective", - "scope": 20149, - "sourceUnit": 21325, - "src": "90:30:51", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "solidity/contracts/utility/TokenHolder.sol", - "file": "../utility/TokenHolder.sol", - "id": 19944, - "nodeType": "ImportDirective", - "scope": 20149, - "sourceUnit": 21977, - "src": "121:36:51", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 19945, - "name": "ISmartToken", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20295, - "src": "266:11:51", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISmartToken_$20295", - "typeString": "contract ISmartToken" - } - }, - "id": 19946, - "nodeType": "InheritanceSpecifier", - "src": "266:11:51" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 19947, - "name": "Owned", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 21324, - "src": "279:5:51", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Owned_$21324", - "typeString": "contract Owned" - } - }, - "id": 19948, - "nodeType": "InheritanceSpecifier", - "src": "279:5:51" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 19949, - "name": "ERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 19737, - "src": "286:10:51", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Token_$19737", - "typeString": "contract ERC20Token" - } - }, - "id": 19950, - "nodeType": "InheritanceSpecifier", - "src": "286:10:51" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 19951, - "name": "TokenHolder", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 21976, - "src": "298:11:51", - "typeDescriptions": { - "typeIdentifier": "t_contract$_TokenHolder_$21976", - "typeString": "contract TokenHolder" - } - }, - "id": 19952, - "nodeType": "InheritanceSpecifier", - "src": "298:11:51" - } - ], - "contractDependencies": [ - 11826, - 19737, - 20240, - 20295, - 21324, - 21933, - 21976, - 22052, - 22247, - 22313 - ], - "contractKind": "contract", - "documentation": "@dev Smart Token\n * 'Owned' is specified here for readability reasons", - "fullyImplemented": true, - "id": 20148, - "linearizedBaseContracts": [ - 20148, - 21976, - 19737, - 22052, - 21324, - 21933, - 20295, - 20240, - 11826, - 22313, - 22247 - ], - "name": "SmartToken", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 19955, - "libraryName": { - "contractScope": null, - "id": 19953, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 21817, - "src": "319:8:51", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$21817", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "313:27:51", - "typeName": { - "id": 19954, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "332:7:51", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "constant": true, - "id": 19958, - "name": "version", - "nodeType": "VariableDeclaration", - "scope": 20148, - "src": "343:34:51", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 19956, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "343:6:51", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "34", - "id": 19957, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "376:1:51", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_4_by_1", - "typeString": "int_const 4" - }, - "value": "4" - }, - "visibility": "public" - }, - { - "constant": false, - "id": 19961, - "name": "transfersEnabled", - "nodeType": "VariableDeclaration", - "scope": 20148, - "src": "381:35:51", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 19959, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "381:4:51", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 19960, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "412:4:51", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "visibility": "public" - }, - { - "anonymous": false, - "documentation": "@dev triggered when the total supply is increased\n\t * @param _amount amount that gets added to the supply", - "id": 19965, - "name": "Issuance", - "nodeType": "EventDefinition", - "parameters": { - "id": 19964, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 19963, - "indexed": false, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 19965, - "src": "622:15:51", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 19962, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "622:7:51", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "621:17:51" - }, - "src": "607:32:51" - }, - { - "anonymous": false, - "documentation": "@dev triggered when the total supply is decreased\n\t * @param _amount amount that gets removed from the supply", - "id": 19969, - "name": "Destruction", - "nodeType": "EventDefinition", - "parameters": { - "id": 19968, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 19967, - "indexed": false, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 19969, - "src": "789:15:51", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 19966, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "789:7:51", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "788:17:51" - }, - "src": "771:35:51" - }, - { - "body": { - "id": 19984, - "nodeType": "Block", - "src": "1132:2:51", - "statements": [] - }, - "documentation": "@dev initializes a new SmartToken instance\n\t * @param _name token name\n@param _symbol token short symbol, minimum 1 character\n@param _decimals for display purposes only", - "id": 19985, - "implemented": true, - "isConstructor": true, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 19978, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19971, - "src": "1102:5:51", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 19979, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19973, - "src": "1109:7:51", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 19980, - "name": "_decimals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19975, - "src": "1118:9:51", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - { - "argumentTypes": null, - "hexValue": "30", - "id": 19981, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1129:1:51", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "id": 19982, - "modifierName": { - "argumentTypes": null, - "id": 19977, - "name": "ERC20Token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19737, - "src": "1091:10:51", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20Token_$19737_$", - "typeString": "type(contract ERC20Token)" - } - }, - "nodeType": "ModifierInvocation", - "src": "1091:40:51" - } - ], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 19976, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 19971, - "name": "_name", - "nodeType": "VariableDeclaration", - "scope": 19985, - "src": "1031:12:51", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 19970, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1031:6:51", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 19973, - "name": "_symbol", - "nodeType": "VariableDeclaration", - "scope": 19985, - "src": "1047:14:51", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 19972, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1047:6:51", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 19975, - "name": "_decimals", - "nodeType": "VariableDeclaration", - "scope": 19985, - "src": "1065:15:51", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 19974, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "1065:5:51", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1027:56:51" - }, - "payable": false, - "returnParameters": { - "id": 19983, - "nodeType": "ParameterList", - "parameters": [], - "src": "1132:0:51" - }, - "scope": 20148, - "src": "1016:118:51", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 19991, - "nodeType": "Block", - "src": "1216:32:51", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 19987, - "name": "_transfersAllowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20001, - "src": "1220:17:51", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$__$", - "typeString": "function () view" - } - }, - "id": 19988, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1220:19:51", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 19989, - "nodeType": "ExpressionStatement", - "src": "1220:19:51" - }, - { - "id": 19990, - "nodeType": "PlaceholderStatement", - "src": "1243:1:51" - } - ] - }, - "documentation": null, - "id": 19992, - "name": "transfersAllowed", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 19986, - "nodeType": "ParameterList", - "parameters": [], - "src": "1216:0:51" - }, - "src": "1190:58:51", - "visibility": "internal" - }, - { - "body": { - "id": 20000, - "nodeType": "Block", - "src": "1337:59:51", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 19996, - "name": "transfersEnabled", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19961, - "src": "1349:16:51", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552525f5452414e53464552535f44495341424c4544", - "id": 19997, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1367:24:51", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_da0eea8408576dc7745752d8573d65c520f2ae4c7522ecd9096dbc953230a52a", - "typeString": "literal_string \"ERR_TRANSFERS_DISABLED\"" - }, - "value": "ERR_TRANSFERS_DISABLED" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_da0eea8408576dc7745752d8573d65c520f2ae4c7522ecd9096dbc953230a52a", - "typeString": "literal_string \"ERR_TRANSFERS_DISABLED\"" - } - ], - "id": 19995, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 22341, - 22342 - ], - "referencedDeclaration": 22342, - "src": "1341:7:51", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 19998, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1341:51:51", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 19999, - "nodeType": "ExpressionStatement", - "src": "1341:51:51" - } - ] - }, - "documentation": null, - "id": 20001, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "_transfersAllowed", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 19993, - "nodeType": "ParameterList", - "parameters": [], - "src": "1320:2:51" - }, - "payable": false, - "returnParameters": { - "id": 19994, - "nodeType": "ParameterList", - "parameters": [], - "src": "1337:0:51" - }, - "scope": 20148, - "src": "1294:102:51", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 20013, - "nodeType": "Block", - "src": "1623:36:51", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 20011, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 20008, - "name": "transfersEnabled", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19961, - "src": "1627:16:51", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 20010, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "1646:9:51", - "subExpression": { - "argumentTypes": null, - "id": 20009, - "name": "_disable", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20003, - "src": "1647:8:51", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "1627:28:51", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 20012, - "nodeType": "ExpressionStatement", - "src": "1627:28:51" - } - ] - }, - "documentation": "@dev disables/enables transfers\ncan only be called by the contract owner\n\t * @param _disable true to disable transfers, false to enable them", - "id": 20014, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 20006, - "modifierName": { - "argumentTypes": null, - "id": 20005, - "name": "ownerOnly", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21265, - "src": "1613:9:51", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "1613:9:51" - } - ], - "name": "disableTransfers", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 20004, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 20003, - "name": "_disable", - "nodeType": "VariableDeclaration", - "scope": 20014, - "src": "1591:13:51", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 20002, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1591:4:51", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1590:15:51" - }, - "payable": false, - "returnParameters": { - "id": 20007, - "nodeType": "ParameterList", - "parameters": [], - "src": "1623:0:51" - }, - "scope": 20148, - "src": "1565:94:51", - "stateMutability": "nonpayable", - "superFunction": 20280, - "visibility": "public" - }, - { - "body": { - "id": 20059, - "nodeType": "Block", - "src": "2003:164:51", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 20034, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 20029, - "name": "totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 19497 - ], - "referencedDeclaration": 19497, - "src": "2007:11:51", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 20032, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20018, - "src": "2037:7:51", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 20030, - "name": "totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 19497 - ], - "referencedDeclaration": 19497, - "src": "2021:11:51", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 20031, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 21737, - "src": "2021:15:51", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 20033, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2021:24:51", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2007:38:51", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 20035, - "nodeType": "ExpressionStatement", - "src": "2007:38:51" - }, - { - "expression": { - "argumentTypes": null, - "id": 20045, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 20036, - "name": "balanceOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 19501 - ], - "referencedDeclaration": 19501, - "src": "2049:9:51", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 20038, - "indexExpression": { - "argumentTypes": null, - "id": 20037, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20016, - "src": "2059:3:51", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "2049:14:51", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 20043, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20018, - "src": "2085:7:51", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 20039, - "name": "balanceOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 19501 - ], - "referencedDeclaration": 19501, - "src": "2066:9:51", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 20041, - "indexExpression": { - "argumentTypes": null, - "id": 20040, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20016, - "src": "2076:3:51", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2066:14:51", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 20042, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 21737, - "src": "2066:18:51", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 20044, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2066:27:51", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2049:44:51", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 20046, - "nodeType": "ExpressionStatement", - "src": "2049:44:51" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 20048, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20018, - "src": "2112:7:51", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 20047, - "name": "Issuance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19965, - "src": "2103:8:51", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 20049, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2103:17:51", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 20050, - "nodeType": "EmitStatement", - "src": "2098:22:51" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 20053, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2146:1:51", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 20052, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2138:7:51", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 20054, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2138:10:51", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 20055, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20016, - "src": "2150:3:51", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 20056, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20018, - "src": "2155:7:51", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 20051, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19515, - "src": "2129:8:51", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 20057, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2129:34:51", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 20058, - "nodeType": "EmitStatement", - "src": "2124:39:51" - } - ] - }, - "documentation": "@dev increases the token supply and sends the new tokens to the given account\ncan only be called by the contract owner\n\t * @param _to account to receive the new amount\n@param _amount amount to increase the supply by", - "id": 20060, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 20021, - "modifierName": { - "argumentTypes": null, - "id": 20020, - "name": "ownerOnly", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21265, - "src": "1962:9:51", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "1962:9:51" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 20023, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20016, - "src": "1985:3:51", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 20024, - "modifierName": { - "argumentTypes": null, - "id": 20022, - "name": "validAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22011, - "src": "1972:12:51", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$", - "typeString": "modifier (address)" - } - }, - "nodeType": "ModifierInvocation", - "src": "1972:17:51" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 20026, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20016, - "src": "1998:3:51", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 20027, - "modifierName": { - "argumentTypes": null, - "id": 20025, - "name": "notThis", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22036, - "src": "1990:7:51", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$", - "typeString": "modifier (address)" - } - }, - "nodeType": "ModifierInvocation", - "src": "1990:12:51" - } - ], - "name": "issue", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 20019, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 20016, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 20060, - "src": "1925:11:51", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 20015, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1925:7:51", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 20018, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 20060, - "src": "1938:15:51", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 20017, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1938:7:51", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1924:30:51" - }, - "payable": false, - "returnParameters": { - "id": 20028, - "nodeType": "ParameterList", - "parameters": [], - "src": "2003:0:51" - }, - "scope": 20148, - "src": "1910:257:51", - "stateMutability": "nonpayable", - "superFunction": 20287, - "visibility": "public" - }, - { - "body": { - "id": 20099, - "nodeType": "Block", - "src": "2480:173:51", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 20078, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 20069, - "name": "balanceOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 19501 - ], - "referencedDeclaration": 19501, - "src": "2484:9:51", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 20071, - "indexExpression": { - "argumentTypes": null, - "id": 20070, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20062, - "src": "2494:5:51", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "2484:16:51", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 20076, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20064, - "src": "2524:7:51", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 20072, - "name": "balanceOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 19501 - ], - "referencedDeclaration": 19501, - "src": "2503:9:51", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 20074, - "indexExpression": { - "argumentTypes": null, - "id": 20073, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20062, - "src": "2513:5:51", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2503:16:51", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 20075, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 21758, - "src": "2503:20:51", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 20077, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2503:29:51", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2484:48:51", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 20079, - "nodeType": "ExpressionStatement", - "src": "2484:48:51" - }, - { - "expression": { - "argumentTypes": null, - "id": 20085, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 20080, - "name": "totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 19497 - ], - "referencedDeclaration": 19497, - "src": "2536:11:51", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 20083, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20064, - "src": "2566:7:51", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 20081, - "name": "totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 19497 - ], - "referencedDeclaration": 19497, - "src": "2550:11:51", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 20082, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 21758, - "src": "2550:15:51", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 20084, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2550:24:51", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2536:38:51", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 20086, - "nodeType": "ExpressionStatement", - "src": "2536:38:51" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 20088, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20062, - "src": "2593:5:51", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 20090, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2608:1:51", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 20089, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2600:7:51", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 20091, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2600:10:51", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 20092, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20064, - "src": "2612:7:51", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 20087, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19515, - "src": "2584:8:51", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 20093, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2584:36:51", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 20094, - "nodeType": "EmitStatement", - "src": "2579:41:51" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 20096, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20064, - "src": "2641:7:51", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 20095, - "name": "Destruction", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19969, - "src": "2629:11:51", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 20097, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2629:20:51", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 20098, - "nodeType": "EmitStatement", - "src": "2624:25:51" - } - ] - }, - "documentation": "@dev removes tokens from the given account and decreases the token supply\ncan only be called by the contract owner\n\t * @param _from account to remove the amount from\n@param _amount amount to decrease the supply by", - "id": 20100, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 20067, - "modifierName": { - "argumentTypes": null, - "id": 20066, - "name": "ownerOnly", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21265, - "src": "2470:9:51", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "2470:9:51" - } - ], - "name": "destroy", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 20065, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 20062, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 20100, - "src": "2431:13:51", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 20061, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2431:7:51", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 20064, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 20100, - "src": "2446:15:51", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 20063, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2446:7:51", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2430:32:51" - }, - "payable": false, - "returnParameters": { - "id": 20068, - "nodeType": "ParameterList", - "parameters": [], - "src": "2480:0:51" - }, - "scope": 20148, - "src": "2414:239:51", - "stateMutability": "nonpayable", - "superFunction": 20294, - "visibility": "public" - }, - { - "body": { - "id": 20121, - "nodeType": "Block", - "src": "3160:58:51", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 20114, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20102, - "src": "3186:3:51", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 20115, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20104, - "src": "3191:6:51", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 20112, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22414, - "src": "3171:5:51", - "typeDescriptions": { - "typeIdentifier": "t_super$_SmartToken_$20148", - "typeString": "contract super SmartToken" - } - }, - "id": 20113, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 19624, - "src": "3171:14:51", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) returns (bool)" - } - }, - "id": 20116, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3171:27:51", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 20111, - "name": "assert", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22327, - "src": "3164:6:51", - "typeDescriptions": { - "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 20117, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3164:35:51", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 20118, - "nodeType": "ExpressionStatement", - "src": "3164:35:51" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 20119, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3210:4:51", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 20110, - "id": 20120, - "nodeType": "Return", - "src": "3203:11:51" - } - ] - }, - "documentation": "@dev send coins\nthrows on any error rather then return a false flag to minimize user errors\nin addition to the standard checks, the function throws if transfers are disabled\n\t * @param _to target address\n@param _value transfer amount\n\t * @return true if the transfer was successful, false if it wasn't", - "id": 20122, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 20107, - "modifierName": { - "argumentTypes": null, - "id": 20106, - "name": "transfersAllowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19992, - "src": "3120:16:51", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "3120:16:51" - } - ], - "name": "transfer", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 20105, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 20102, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 20122, - "src": "3084:11:51", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 20101, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3084:7:51", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 20104, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 20122, - "src": "3097:14:51", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 20103, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3097:7:51", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3083:29:51" - }, - "payable": false, - "returnParameters": { - "id": 20110, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 20109, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 20122, - "src": "3146:12:51", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 20108, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "3146:4:51", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3145:14:51" - }, - "scope": 20148, - "src": "3066:152:51", - "stateMutability": "nonpayable", - "superFunction": 19624, - "visibility": "public" - }, - { - "body": { - "id": 20146, - "nodeType": "Block", - "src": "3756:69:51", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 20138, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20124, - "src": "3786:5:51", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 20139, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20126, - "src": "3793:3:51", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 20140, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20128, - "src": "3798:6:51", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 20136, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22414, - "src": "3767:5:51", - "typeDescriptions": { - "typeIdentifier": "t_super$_SmartToken_$20148", - "typeString": "contract super SmartToken" - } - }, - "id": 20137, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transferFrom", - "nodeType": "MemberAccess", - "referencedDeclaration": 19689, - "src": "3767:18:51", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,address,uint256) returns (bool)" - } - }, - "id": 20141, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3767:38:51", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 20135, - "name": "assert", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22327, - "src": "3760:6:51", - "typeDescriptions": { - "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 20142, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3760:46:51", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 20143, - "nodeType": "ExpressionStatement", - "src": "3760:46:51" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 20144, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3817:4:51", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 20134, - "id": 20145, - "nodeType": "Return", - "src": "3810:11:51" - } - ] - }, - "documentation": "@dev an account/contract attempts to get the coins\nthrows on any error rather then return a false flag to minimize user errors\nin addition to the standard checks, the function throws if transfers are disabled\n\t * @param _from source address\n@param _to target address\n@param _value transfer amount\n\t * @return true if the transfer was successful, false if it wasn't", - "id": 20147, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 20131, - "modifierName": { - "argumentTypes": null, - "id": 20130, - "name": "transfersAllowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19992, - "src": "3716:16:51", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "3716:16:51" - } - ], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 20129, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 20124, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 20147, - "src": "3659:13:51", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 20123, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3659:7:51", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 20126, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 20147, - "src": "3676:11:51", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 20125, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3676:7:51", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 20128, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 20147, - "src": "3691:14:51", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 20127, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3691:7:51", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3655:53:51" - }, - "payable": false, - "returnParameters": { - "id": 20134, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 20133, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 20147, - "src": "3742:12:51", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 20132, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "3742:4:51", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3741:14:51" - }, - "scope": 20148, - "src": "3634:191:51", - "stateMutability": "nonpayable", - "superFunction": 19689, - "visibility": "public" - } - ], - "scope": 20149, - "src": "243:3584:51" - } - ], - "src": "0:3828:51" - }, - "id": 51 - }, - "solidity/contracts/token/interfaces/IERC20Token.sol": { - "ast": { - "absolutePath": "solidity/contracts/token/interfaces/IERC20Token.sol", - "exportedSymbols": { - "IERC20Token": [ - 20240 - ] - }, - "id": 20241, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 20150, - "literals": [ - "solidity", - "0.4", - ".26" - ], - "nodeType": "PragmaDirective", - "src": "0:23:52" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": false, - "id": 20240, - "linearizedBaseContracts": [ - 20240 - ], - "name": "IERC20Token", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 20157, - "nodeType": "Block", - "src": "249:12:52", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 20155, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22351, - "src": "253:4:52", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "id": 20156, - "nodeType": "ExpressionStatement", - "src": "253:4:52" - } - ] - }, - "documentation": null, - "id": 20158, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "name", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 20151, - "nodeType": "ParameterList", - "parameters": [], - "src": "217:2:52" - }, - "payable": false, - "returnParameters": { - "id": 20154, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 20153, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 20158, - "src": "241:6:52", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 20152, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "241:6:52", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "240:8:52" - }, - "scope": 20240, - "src": "204:57:52", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 20165, - "nodeType": "Block", - "src": "311:12:52", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 20163, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22351, - "src": "315:4:52", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "id": 20164, - "nodeType": "ExpressionStatement", - "src": "315:4:52" - } - ] - }, - "documentation": null, - "id": 20166, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "symbol", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 20159, - "nodeType": "ParameterList", - "parameters": [], - "src": "279:2:52" - }, - "payable": false, - "returnParameters": { - "id": 20162, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 20161, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 20166, - "src": "303:6:52", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 20160, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "303:6:52", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "302:8:52" - }, - "scope": 20240, - "src": "264:59:52", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 20173, - "nodeType": "Block", - "src": "374:12:52", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 20171, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22351, - "src": "378:4:52", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "id": 20172, - "nodeType": "ExpressionStatement", - "src": "378:4:52" - } - ] - }, - "documentation": null, - "id": 20174, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "decimals", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 20167, - "nodeType": "ParameterList", - "parameters": [], - "src": "343:2:52" - }, - "payable": false, - "returnParameters": { - "id": 20170, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 20169, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 20174, - "src": "367:5:52", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 20168, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "367:5:52", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "366:7:52" - }, - "scope": 20240, - "src": "326:60:52", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 20181, - "nodeType": "Block", - "src": "442:12:52", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 20179, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22351, - "src": "446:4:52", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "id": 20180, - "nodeType": "ExpressionStatement", - "src": "446:4:52" - } - ] - }, - "documentation": null, - "id": 20182, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "totalSupply", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 20175, - "nodeType": "ParameterList", - "parameters": [], - "src": "409:2:52" - }, - "payable": false, - "returnParameters": { - "id": 20178, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 20177, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 20182, - "src": "433:7:52", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 20176, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "433:7:52", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "432:9:52" - }, - "scope": 20240, - "src": "389:65:52", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 20193, - "nodeType": "Block", - "src": "522:22:52", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 20189, - "name": "_owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20184, - "src": "526:6:52", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 20190, - "nodeType": "ExpressionStatement", - "src": "526:6:52" - }, - { - "expression": { - "argumentTypes": null, - "id": 20191, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22351, - "src": "536:4:52", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "id": 20192, - "nodeType": "ExpressionStatement", - "src": "536:4:52" - } - ] - }, - "documentation": null, - "id": 20194, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "balanceOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 20185, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 20184, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 20194, - "src": "476:14:52", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 20183, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "476:7:52", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "475:16:52" - }, - "payable": false, - "returnParameters": { - "id": 20188, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 20187, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 20194, - "src": "513:7:52", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 20186, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "513:7:52", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "512:9:52" - }, - "scope": 20240, - "src": "457:87:52", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 20209, - "nodeType": "Block", - "src": "630:34:52", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 20203, - "name": "_owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20196, - "src": "634:6:52", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 20204, - "nodeType": "ExpressionStatement", - "src": "634:6:52" - }, - { - "expression": { - "argumentTypes": null, - "id": 20205, - "name": "_spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20198, - "src": "644:8:52", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 20206, - "nodeType": "ExpressionStatement", - "src": "644:8:52" - }, - { - "expression": { - "argumentTypes": null, - "id": 20207, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22351, - "src": "656:4:52", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "id": 20208, - "nodeType": "ExpressionStatement", - "src": "656:4:52" - } - ] - }, - "documentation": null, - "id": 20210, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "allowance", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 20199, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 20196, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 20210, - "src": "566:14:52", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 20195, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "566:7:52", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 20198, - "name": "_spender", - "nodeType": "VariableDeclaration", - "scope": 20210, - "src": "582:16:52", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 20197, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "582:7:52", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "565:34:52" - }, - "payable": false, - "returnParameters": { - "id": 20202, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 20201, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 20210, - "src": "621:7:52", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 20200, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "621:7:52", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "620:9:52" - }, - "scope": 20240, - "src": "547:117:52", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 20219, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "transfer", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 20215, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 20212, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 20219, - "src": "685:11:52", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 20211, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "685:7:52", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 20214, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 20219, - "src": "698:14:52", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 20213, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "698:7:52", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "684:29:52" - }, - "payable": false, - "returnParameters": { - "id": 20218, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 20217, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 20219, - "src": "730:12:52", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 20216, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "730:4:52", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "729:14:52" - }, - "scope": 20240, - "src": "667:77:52", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 20230, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 20226, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 20221, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 20230, - "src": "772:13:52", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 20220, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "772:7:52", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 20223, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 20230, - "src": "789:11:52", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 20222, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "789:7:52", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 20225, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 20230, - "src": "804:14:52", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 20224, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "804:7:52", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "768:53:52" - }, - "payable": false, - "returnParameters": { - "id": 20229, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 20228, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 20230, - "src": "838:12:52", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 20227, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "838:4:52", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "837:14:52" - }, - "scope": 20240, - "src": "747:105:52", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 20239, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 20235, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 20232, - "name": "_spender", - "nodeType": "VariableDeclaration", - "scope": 20239, - "src": "872:16:52", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 20231, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "872:7:52", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 20234, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 20239, - "src": "890:14:52", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 20233, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "890:7:52", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "871:34:52" - }, - "payable": false, - "returnParameters": { - "id": 20238, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 20237, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 20239, - "src": "922:12:52", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 20236, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "922:4:52", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "921:14:52" - }, - "scope": 20240, - "src": "855:81:52", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 20241, - "src": "66:872:52" - } - ], - "src": "0:939:52" - }, - "id": 52 - }, - "solidity/contracts/token/interfaces/IEtherToken.sol": { - "ast": { - "absolutePath": "solidity/contracts/token/interfaces/IEtherToken.sol", - "exportedSymbols": { - "IEtherToken": [ - 20266 - ] - }, - "id": 20267, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 20242, - "literals": [ - "solidity", - "0.4", - ".26" - ], - "nodeType": "PragmaDirective", - "src": "0:23:53" - }, - { - "absolutePath": "solidity/contracts/token/interfaces/IERC20Token.sol", - "file": "./IERC20Token.sol", - "id": 20243, - "nodeType": "ImportDirective", - "scope": 20267, - "sourceUnit": 20241, - "src": "24:27:53", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 20244, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "109:11:53", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "id": 20245, - "nodeType": "InheritanceSpecifier", - "src": "109:11:53" - } - ], - "contractDependencies": [ - 20240 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": false, - "id": 20266, - "linearizedBaseContracts": [ - 20266, - 20240 - ], - "name": "IEtherToken", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": null, - "id": 20248, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "deposit", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 20246, - "nodeType": "ParameterList", - "parameters": [], - "src": "140:2:53" - }, - "payable": true, - "returnParameters": { - "id": 20247, - "nodeType": "ParameterList", - "parameters": [], - "src": "157:0:53" - }, - "scope": 20266, - "src": "124:34:53", - "stateMutability": "payable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 20253, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "withdraw", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 20251, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 20250, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 20253, - "src": "179:15:53", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 20249, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "179:7:53", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "178:17:53" - }, - "payable": false, - "returnParameters": { - "id": 20252, - "nodeType": "ParameterList", - "parameters": [], - "src": "202:0:53" - }, - "scope": 20266, - "src": "161:42:53", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 20258, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "depositTo", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 20256, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 20255, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 20258, - "src": "225:11:53", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 20254, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "225:7:53", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "224:13:53" - }, - "payable": true, - "returnParameters": { - "id": 20257, - "nodeType": "ParameterList", - "parameters": [], - "src": "252:0:53" - }, - "scope": 20266, - "src": "206:47:53", - "stateMutability": "payable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 20265, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "withdrawTo", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 20263, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 20260, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 20265, - "src": "276:11:53", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 20259, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "276:7:53", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 20262, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 20265, - "src": "289:15:53", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 20261, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "289:7:53", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "275:30:53" - }, - "payable": false, - "returnParameters": { - "id": 20264, - "nodeType": "ParameterList", - "parameters": [], - "src": "312:0:53" - }, - "scope": 20266, - "src": "256:57:53", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 20267, - "src": "85:230:53" - } - ], - "src": "0:316:53" - }, - "id": 53 - }, - "solidity/contracts/token/interfaces/ISmartToken.sol": { - "ast": { - "absolutePath": "solidity/contracts/token/interfaces/ISmartToken.sol", - "exportedSymbols": { - "ISmartToken": [ - 20295 - ] - }, - "id": 20296, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 20268, - "literals": [ - "solidity", - "0.4", - ".26" - ], - "nodeType": "PragmaDirective", - "src": "0:23:54" - }, - { - "absolutePath": "solidity/contracts/token/interfaces/IERC20Token.sol", - "file": "./IERC20Token.sol", - "id": 20269, - "nodeType": "ImportDirective", - "scope": 20296, - "sourceUnit": 20241, - "src": "24:27:54", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "solidity/contracts/converter/interfaces/IConverterAnchor.sol", - "file": "../../converter/interfaces/IConverterAnchor.sol", - "id": 20270, - "nodeType": "ImportDirective", - "scope": 20296, - "sourceUnit": 11827, - "src": "52:57:54", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "solidity/contracts/utility/interfaces/IOwned.sol", - "file": "../../utility/interfaces/IOwned.sol", - "id": 20271, - "nodeType": "ImportDirective", - "scope": 20296, - "sourceUnit": 22248, - "src": "110:45:54", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 20272, - "name": "IConverterAnchor", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 11826, - "src": "213:16:54", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConverterAnchor_$11826", - "typeString": "contract IConverterAnchor" - } - }, - "id": 20273, - "nodeType": "InheritanceSpecifier", - "src": "213:16:54" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 20274, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "231:11:54", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "id": 20275, - "nodeType": "InheritanceSpecifier", - "src": "231:11:54" - } - ], - "contractDependencies": [ - 11826, - 20240, - 22247, - 22313 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": false, - "id": 20295, - "linearizedBaseContracts": [ - 20295, - 20240, - 11826, - 22313, - 22247 - ], - "name": "ISmartToken", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": null, - "id": 20280, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "disableTransfers", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 20278, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 20277, - "name": "_disable", - "nodeType": "VariableDeclaration", - "scope": 20280, - "src": "272:13:54", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 20276, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "272:4:54", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "271:15:54" - }, - "payable": false, - "returnParameters": { - "id": 20279, - "nodeType": "ParameterList", - "parameters": [], - "src": "293:0:54" - }, - "scope": 20295, - "src": "246:48:54", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 20287, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "issue", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 20285, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 20282, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 20287, - "src": "312:11:54", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 20281, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "312:7:54", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 20284, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 20287, - "src": "325:15:54", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 20283, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "325:7:54", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "311:30:54" - }, - "payable": false, - "returnParameters": { - "id": 20286, - "nodeType": "ParameterList", - "parameters": [], - "src": "348:0:54" - }, - "scope": 20295, - "src": "297:52:54", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 20294, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "destroy", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 20292, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 20289, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 20294, - "src": "369:13:54", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 20288, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "369:7:54", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 20291, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 20294, - "src": "384:15:54", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 20290, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "384:7:54", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "368:32:54" - }, - "payable": false, - "returnParameters": { - "id": 20293, - "nodeType": "ParameterList", - "parameters": [], - "src": "407:0:54" - }, - "scope": 20295, - "src": "352:56:54", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 20296, - "src": "189:221:54" - } - ], - "src": "0:411:54" - }, - "id": 54 - }, - "solidity/contracts/utility/BProOracle.sol": { - "ast": { - "absolutePath": "solidity/contracts/utility/BProOracle.sol", - "exportedSymbols": { - "BProOracle": [ - 20376 - ] - }, - "id": 20377, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 20297, - "literals": [ - "solidity", - "0.4", - ".26" - ], - "nodeType": "PragmaDirective", - "src": "0:23:55" - }, - { - "absolutePath": "solidity/contracts/utility/interfaces/IMoCState.sol", - "file": "./interfaces/IMoCState.sol", - "id": 20298, - "nodeType": "ImportDirective", - "scope": 20377, - "sourceUnit": 22229, - "src": "25:36:55", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "solidity/contracts/utility/interfaces/IConsumerPriceOracle.sol", - "file": "./interfaces/IConsumerPriceOracle.sol", - "id": 20299, - "nodeType": "ImportDirective", - "scope": 20377, - "sourceUnit": 22204, - "src": "62:47:55", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "solidity/contracts/utility/Owned.sol", - "file": "./Owned.sol", - "id": 20300, - "nodeType": "ImportDirective", - "scope": 20377, - "sourceUnit": 21325, - "src": "110:21:55", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 20301, - "name": "IConsumerPriceOracle", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 22203, - "src": "156:20:55", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", - "typeString": "contract IConsumerPriceOracle" - } - }, - "id": 20302, - "nodeType": "InheritanceSpecifier", - "src": "156:20:55" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 20303, - "name": "Owned", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 21324, - "src": "178:5:55", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Owned_$21324", - "typeString": "contract Owned" - } - }, - "id": 20304, - "nodeType": "InheritanceSpecifier", - "src": "178:5:55" - } - ], - "contractDependencies": [ - 21324, - 22203, - 22247 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 20376, - "linearizedBaseContracts": [ - 20376, - 21324, - 22247, - 22203 - ], - "name": "BProOracle", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 20306, - "name": "mocStateAddress", - "nodeType": "VariableDeclaration", - "scope": 20376, - "src": "187:30:55", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 20305, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "187:7:55", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "public" - }, - { - "anonymous": false, - "documentation": null, - "id": 20312, - "name": "SetMoCStateAddress", - "nodeType": "EventDefinition", - "parameters": { - "id": 20311, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 20308, - "indexed": true, - "name": "mocStateAddress", - "nodeType": "VariableDeclaration", - "scope": 20312, - "src": "246:31:55", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 20307, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "246:7:55", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 20310, - "indexed": false, - "name": "changerAddress", - "nodeType": "VariableDeclaration", - "scope": 20312, - "src": "279:22:55", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 20309, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "279:7:55", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "245:57:55" - }, - "src": "221:82:55" - }, - { - "body": { - "id": 20321, - "nodeType": "Block", - "src": "448:44:55", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 20318, - "name": "_mocStateAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20314, - "src": "471:16:55", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 20317, - "name": "setMoCStateAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20375, - "src": "452:18:55", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 20319, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "452:36:55", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 20320, - "nodeType": "ExpressionStatement", - "src": "452:36:55" - } - ] - }, - "documentation": "@dev initializes a new MoC state\n\t * @param _mocStateAddress MoC state address", - "id": 20322, - "implemented": true, - "isConstructor": true, - "isDeclaredConst": false, - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 20315, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 20314, - "name": "_mocStateAddress", - "nodeType": "VariableDeclaration", - "scope": 20322, - "src": "415:24:55", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 20313, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "415:7:55", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "414:26:55" - }, - "payable": false, - "returnParameters": { - "id": 20316, - "nodeType": "ParameterList", - "parameters": [], - "src": "448:0:55" - }, - "scope": 20376, - "src": "403:89:55", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 20339, - "nodeType": "Block", - "src": "636:99:55", - "statements": [ - { - "assignments": [ - 20328 - ], - "declarations": [ - { - "constant": false, - "id": 20328, - "name": "_mocState", - "nodeType": "VariableDeclaration", - "scope": 20340, - "src": "640:19:55", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IMoCState_$22228", - "typeString": "contract IMoCState" - }, - "typeName": { - "contractScope": null, - "id": 20327, - "name": "IMoCState", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 22228, - "src": "640:9:55", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IMoCState_$22228", - "typeString": "contract IMoCState" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 20332, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 20330, - "name": "mocStateAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20306, - "src": "672:15:55", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 20329, - "name": "IMoCState", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22228, - "src": "662:9:55", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IMoCState_$22228_$", - "typeString": "type(contract IMoCState)" - } - }, - "id": 20331, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "662:26:55", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IMoCState_$22228", - "typeString": "contract IMoCState" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "640:48:55" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 20334, - "name": "_mocState", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20328, - "src": "706:9:55", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IMoCState_$22228", - "typeString": "contract IMoCState" - } - }, - "id": 20335, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "bproUsdPrice", - "nodeType": "MemberAccess", - "referencedDeclaration": 22227, - "src": "706:22:55", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", - "typeString": "function () view external returns (uint256)" - } - }, - "id": 20336, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "706:24:55", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 20333, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "699:6:55", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_int256_$", - "typeString": "type(int256)" - }, - "typeName": "int256" - }, - "id": 20337, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "699:32:55", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "functionReturnParameters": 20326, - "id": 20338, - "nodeType": "Return", - "src": "692:39:55" - } - ] - }, - "documentation": "@dev BPro USD PRICE\n@return the BPro USD Price [using mocPrecision]", - "id": 20340, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "latestAnswer", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 20323, - "nodeType": "ParameterList", - "parameters": [], - "src": "602:2:55" - }, - "payable": false, - "returnParameters": { - "id": 20326, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 20325, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 20340, - "src": "628:6:55", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "typeName": { - "id": 20324, - "name": "int256", - "nodeType": "ElementaryTypeName", - "src": "628:6:55", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "627:8:55" - }, - "scope": 20376, - "src": "581:154:55", - "stateMutability": "view", - "superFunction": 22197, - "visibility": "external" - }, - { - "body": { - "id": 20347, - "nodeType": "Block", - "src": "898:63:55", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 20345, - "name": "now", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22340, - "src": "909:3:55", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 20344, - "id": 20346, - "nodeType": "Return", - "src": "902:10:55" - } - ] - }, - "documentation": "@dev returns the update time.\n\t * @return always returns current block's timestamp", - "id": 20348, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "latestTimestamp", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 20341, - "nodeType": "ParameterList", - "parameters": [], - "src": "863:2:55" - }, - "payable": false, - "returnParameters": { - "id": 20344, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 20343, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 20348, - "src": "889:7:55", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 20342, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "889:7:55", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "888:9:55" - }, - "scope": 20376, - "src": "839:122:55", - "stateMutability": "view", - "superFunction": 22202, - "visibility": "external" - }, - { - "body": { - "id": 20374, - "nodeType": "Block", - "src": "1126:187:55", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 20360, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 20356, - "name": "_mocStateAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20350, - "src": "1138:16:55", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 20358, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1166:1:55", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 20357, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1158:7:55", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 20359, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1158:10:55", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "1138:30:55", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "5f6d6f63537461746541646472657373207368616c6c206e6f74206265207a65726f2061646472657373", - "id": 20361, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1170:44:55", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_f37a5125e8d8baf4c4f95298ce2dd02fcb404ca8eb4aa1a721f96d9fcaef160b", - "typeString": "literal_string \"_mocStateAddress shall not be zero address\"" - }, - "value": "_mocStateAddress shall not be zero address" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_f37a5125e8d8baf4c4f95298ce2dd02fcb404ca8eb4aa1a721f96d9fcaef160b", - "typeString": "literal_string \"_mocStateAddress shall not be zero address\"" - } - ], - "id": 20355, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 22341, - 22342 - ], - "referencedDeclaration": 22342, - "src": "1130:7:55", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 20362, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1130:85:55", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 20363, - "nodeType": "ExpressionStatement", - "src": "1130:85:55" - }, - { - "expression": { - "argumentTypes": null, - "id": 20366, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 20364, - "name": "mocStateAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20306, - "src": "1219:15:55", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 20365, - "name": "_mocStateAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20350, - "src": "1237:16:55", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "1219:34:55", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 20367, - "nodeType": "ExpressionStatement", - "src": "1219:34:55" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 20369, - "name": "mocStateAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20306, - "src": "1281:15:55", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 20370, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22338, - "src": "1298:3:55", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 20371, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1298:10:55", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 20368, - "name": "SetMoCStateAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20312, - "src": "1262:18:55", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", - "typeString": "function (address,address)" - } - }, - "id": 20372, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1262:47:55", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 20373, - "nodeType": "EmitStatement", - "src": "1257:52:55" - } - ] - }, - "documentation": "@dev set MoC state address\n\t * @param _mocStateAddress MoC state address", - "id": 20375, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 20353, - "modifierName": { - "argumentTypes": null, - "id": 20352, - "name": "ownerOnly", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21265, - "src": "1116:9:55", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "1116:9:55" - } - ], - "name": "setMoCStateAddress", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 20351, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 20350, - "name": "_mocStateAddress", - "nodeType": "VariableDeclaration", - "scope": 20375, - "src": "1083:24:55", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 20349, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1083:7:55", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1082:26:55" - }, - "payable": false, - "returnParameters": { - "id": 20354, - "nodeType": "ParameterList", - "parameters": [], - "src": "1126:0:55" - }, - "scope": 20376, - "src": "1055:258:55", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 20377, - "src": "133:1182:55" - } - ], - "src": "0:1316:55" - }, - "id": 55 - }, - "solidity/contracts/utility/ChainlinkBTCToUSDOracle.sol": { - "ast": { - "absolutePath": "solidity/contracts/utility/ChainlinkBTCToUSDOracle.sol", - "exportedSymbols": { - "ChainlinkBTCToUSDOracle": [ - 20401 - ] - }, - "id": 20402, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 20378, - "literals": [ - "solidity", - "0.4", - ".26" - ], - "nodeType": "PragmaDirective", - "src": "0:23:56" - }, - { - "absolutePath": "solidity/contracts/utility/interfaces/IConsumerPriceOracle.sol", - "file": "./interfaces/IConsumerPriceOracle.sol", - "id": 20379, - "nodeType": "ImportDirective", - "scope": 20402, - "sourceUnit": 22204, - "src": "25:47:56", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 20380, - "name": "IConsumerPriceOracle", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 22203, - "src": "152:20:56", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", - "typeString": "contract IConsumerPriceOracle" - } - }, - "id": 20381, - "nodeType": "InheritanceSpecifier", - "src": "152:20:56" - } - ], - "contractDependencies": [ - 22203 - ], - "contractKind": "contract", - "documentation": "@dev Provides the BTC/USD rate", - "fullyImplemented": true, - "id": 20401, - "linearizedBaseContracts": [ - 20401, - 22203 - ], - "name": "ChainlinkBTCToUSDOracle", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": true, - "id": 20384, - "name": "BTC_RATE", - "nodeType": "VariableDeclaration", - "scope": 20401, - "src": "176:40:56", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "typeName": { - "id": 20382, - "name": "int256", - "nodeType": "ElementaryTypeName", - "src": "176:6:56", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "3130303030", - "id": 20383, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "211:5:56", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_10000_by_1", - "typeString": "int_const 10000" - }, - "value": "10000" - }, - "visibility": "private" - }, - { - "body": { - "id": 20391, - "nodeType": "Block", - "src": "365:23:56", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 20389, - "name": "BTC_RATE", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20384, - "src": "376:8:56", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "functionReturnParameters": 20388, - "id": 20390, - "nodeType": "Return", - "src": "369:15:56" - } - ] - }, - "documentation": "@dev returns the BTC/USD rate.\n\t * @return always returns the rate of 1", - "id": 20392, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "latestAnswer", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 20385, - "nodeType": "ParameterList", - "parameters": [], - "src": "331:2:56" - }, - "payable": false, - "returnParameters": { - "id": 20388, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 20387, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 20392, - "src": "357:6:56", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "typeName": { - "id": 20386, - "name": "int256", - "nodeType": "ElementaryTypeName", - "src": "357:6:56", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "356:8:56" - }, - "scope": 20401, - "src": "310:78:56", - "stateMutability": "view", - "superFunction": 22197, - "visibility": "external" - }, - { - "body": { - "id": 20399, - "nodeType": "Block", - "src": "559:18:56", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 20397, - "name": "now", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22340, - "src": "570:3:56", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 20396, - "id": 20398, - "nodeType": "Return", - "src": "563:10:56" - } - ] - }, - "documentation": "@dev returns the BTC/USD update time.\n\t * @return always returns current block's timestamp", - "id": 20400, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "latestTimestamp", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 20393, - "nodeType": "ParameterList", - "parameters": [], - "src": "524:2:56" - }, - "payable": false, - "returnParameters": { - "id": 20396, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 20395, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 20400, - "src": "550:7:56", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 20394, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "550:7:56", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "549:9:56" - }, - "scope": 20401, - "src": "500:77:56", - "stateMutability": "view", - "superFunction": 22202, - "visibility": "external" - } - ], - "scope": 20402, - "src": "116:463:56" - } - ], - "src": "0:580:56" - }, - "id": 56 - }, - "solidity/contracts/utility/ChainlinkETHToETHOracle.sol": { - "ast": { - "absolutePath": "solidity/contracts/utility/ChainlinkETHToETHOracle.sol", - "exportedSymbols": { - "ChainlinkETHToETHOracle": [ - 20426 - ] - }, - "id": 20427, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 20403, - "literals": [ - "solidity", - "0.4", - ".26" - ], - "nodeType": "PragmaDirective", - "src": "0:23:57" - }, - { - "absolutePath": "solidity/contracts/utility/interfaces/IConsumerPriceOracle.sol", - "file": "./interfaces/IConsumerPriceOracle.sol", - "id": 20404, - "nodeType": "ImportDirective", - "scope": 20427, - "sourceUnit": 22204, - "src": "25:47:57", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 20405, - "name": "IConsumerPriceOracle", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 22203, - "src": "196:20:57", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", - "typeString": "contract IConsumerPriceOracle" - } - }, - "id": 20406, - "nodeType": "InheritanceSpecifier", - "src": "196:20:57" - } - ], - "contractDependencies": [ - 22203 - ], - "contractKind": "contract", - "documentation": "@dev Provides the trivial ETH/ETH rate to be used with other TKN/ETH rates", - "fullyImplemented": true, - "id": 20426, - "linearizedBaseContracts": [ - 20426, - 22203 - ], - "name": "ChainlinkETHToETHOracle", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": true, - "id": 20409, - "name": "ETH_RATE", - "nodeType": "VariableDeclaration", - "scope": 20426, - "src": "220:36:57", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "typeName": { - "id": 20407, - "name": "int256", - "nodeType": "ElementaryTypeName", - "src": "220:6:57", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "31", - "id": 20408, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "255:1:57", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "visibility": "private" - }, - { - "body": { - "id": 20416, - "nodeType": "Block", - "src": "421:23:57", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 20414, - "name": "ETH_RATE", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20409, - "src": "432:8:57", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "functionReturnParameters": 20413, - "id": 20415, - "nodeType": "Return", - "src": "425:15:57" - } - ] - }, - "documentation": "@dev returns the trivial ETH/ETH rate.\n\t * @return always returns the trivial rate of 1", - "id": 20417, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "latestAnswer", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 20410, - "nodeType": "ParameterList", - "parameters": [], - "src": "387:2:57" - }, - "payable": false, - "returnParameters": { - "id": 20413, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 20412, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 20417, - "src": "413:6:57", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "typeName": { - "id": 20411, - "name": "int256", - "nodeType": "ElementaryTypeName", - "src": "413:6:57", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "412:8:57" - }, - "scope": 20426, - "src": "366:78:57", - "stateMutability": "view", - "superFunction": 22197, - "visibility": "external" - }, - { - "body": { - "id": 20424, - "nodeType": "Block", - "src": "623:18:57", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 20422, - "name": "now", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22340, - "src": "634:3:57", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 20421, - "id": 20423, - "nodeType": "Return", - "src": "627:10:57" - } - ] - }, - "documentation": "@dev returns the trivial ETH/ETH update time.\n\t * @return always returns current block's timestamp", - "id": 20425, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "latestTimestamp", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 20418, - "nodeType": "ParameterList", - "parameters": [], - "src": "588:2:57" - }, - "payable": false, - "returnParameters": { - "id": 20421, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 20420, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 20425, - "src": "614:7:57", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 20419, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "614:7:57", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "613:9:57" - }, - "scope": 20426, - "src": "564:77:57", - "stateMutability": "view", - "superFunction": 22202, - "visibility": "external" - } - ], - "scope": 20427, - "src": "160:483:57" - } - ], - "src": "0:644:57" - }, - "id": 57 - }, - "solidity/contracts/utility/ChainlinkUSDToBTCOracle.sol": { - "ast": { - "absolutePath": "solidity/contracts/utility/ChainlinkUSDToBTCOracle.sol", - "exportedSymbols": { - "ChainlinkUSDToBTCOracle": [ - 20451 - ] - }, - "id": 20452, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 20428, - "literals": [ - "solidity", - "0.4", - ".26" - ], - "nodeType": "PragmaDirective", - "src": "0:23:58" - }, - { - "absolutePath": "solidity/contracts/utility/interfaces/IConsumerPriceOracle.sol", - "file": "./interfaces/IConsumerPriceOracle.sol", - "id": 20429, - "nodeType": "ImportDirective", - "scope": 20452, - "sourceUnit": 22204, - "src": "25:47:58", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 20430, - "name": "IConsumerPriceOracle", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 22203, - "src": "152:20:58", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", - "typeString": "contract IConsumerPriceOracle" - } - }, - "id": 20431, - "nodeType": "InheritanceSpecifier", - "src": "152:20:58" - } - ], - "contractDependencies": [ - 22203 - ], - "contractKind": "contract", - "documentation": "@dev Provides the USD/BTC rate", - "fullyImplemented": true, - "id": 20451, - "linearizedBaseContracts": [ - 20451, - 22203 - ], - "name": "ChainlinkUSDToBTCOracle", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": true, - "id": 20434, - "name": "USD_RATE", - "nodeType": "VariableDeclaration", - "scope": 20451, - "src": "176:40:58", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "typeName": { - "id": 20432, - "name": "int256", - "nodeType": "ElementaryTypeName", - "src": "176:6:58", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "3130303030", - "id": 20433, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "211:5:58", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_10000_by_1", - "typeString": "int_const 10000" - }, - "value": "10000" - }, - "visibility": "private" - }, - { - "body": { - "id": 20441, - "nodeType": "Block", - "src": "369:23:58", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 20439, - "name": "USD_RATE", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20434, - "src": "380:8:58", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "functionReturnParameters": 20438, - "id": 20440, - "nodeType": "Return", - "src": "373:15:58" - } - ] - }, - "documentation": "@dev returns the USD/BTC rate.\n\t * @return always returns the rate of 10000", - "id": 20442, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "latestAnswer", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 20435, - "nodeType": "ParameterList", - "parameters": [], - "src": "335:2:58" - }, - "payable": false, - "returnParameters": { - "id": 20438, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 20437, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 20442, - "src": "361:6:58", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "typeName": { - "id": 20436, - "name": "int256", - "nodeType": "ElementaryTypeName", - "src": "361:6:58", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "360:8:58" - }, - "scope": 20451, - "src": "314:78:58", - "stateMutability": "view", - "superFunction": 22197, - "visibility": "external" - }, - { - "body": { - "id": 20449, - "nodeType": "Block", - "src": "563:18:58", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 20447, - "name": "now", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22340, - "src": "574:3:58", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 20446, - "id": 20448, - "nodeType": "Return", - "src": "567:10:58" - } - ] - }, - "documentation": "@dev returns the USD/BTC update time.\n\t * @return always returns current block's timestamp", - "id": 20450, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "latestTimestamp", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 20443, - "nodeType": "ParameterList", - "parameters": [], - "src": "528:2:58" - }, - "payable": false, - "returnParameters": { - "id": 20446, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 20445, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 20450, - "src": "554:7:58", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 20444, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "554:7:58", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "553:9:58" - }, - "scope": 20451, - "src": "504:77:58", - "stateMutability": "view", - "superFunction": 22202, - "visibility": "external" - } - ], - "scope": 20452, - "src": "116:467:58" - } - ], - "src": "0:584:58" - }, - "id": 58 - }, - "solidity/contracts/utility/ContractRegistry.sol": { - "ast": { - "absolutePath": "solidity/contracts/utility/ContractRegistry.sol", - "exportedSymbols": { - "ContractRegistry": [ - 20740 - ] - }, - "id": 20741, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 20453, - "literals": [ - "solidity", - "0.4", - ".26" - ], - "nodeType": "PragmaDirective", - "src": "0:23:59" - }, - { - "absolutePath": "solidity/contracts/utility/Owned.sol", - "file": "./Owned.sol", - "id": 20454, - "nodeType": "ImportDirective", - "scope": 20741, - "sourceUnit": 21325, - "src": "24:21:59", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "solidity/contracts/utility/Utils.sol", - "file": "./Utils.sol", - "id": 20455, - "nodeType": "ImportDirective", - "scope": 20741, - "sourceUnit": 22053, - "src": "46:21:59", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "solidity/contracts/utility/interfaces/IContractRegistry.sol", - "file": "./interfaces/IContractRegistry.sol", - "id": 20456, - "nodeType": "ImportDirective", - "scope": 20741, - "sourceUnit": 22221, - "src": "68:44:59", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 20457, - "name": "IContractRegistry", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 22220, - "src": "586:17:59", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IContractRegistry_$22220", - "typeString": "contract IContractRegistry" - } - }, - "id": 20458, - "nodeType": "InheritanceSpecifier", - "src": "586:17:59" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 20459, - "name": "Owned", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 21324, - "src": "605:5:59", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Owned_$21324", - "typeString": "contract Owned" - } - }, - "id": 20460, - "nodeType": "InheritanceSpecifier", - "src": "605:5:59" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 20461, - "name": "Utils", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 22052, - "src": "612:5:59", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Utils_$22052", - "typeString": "contract Utils" - } - }, - "id": 20462, - "nodeType": "InheritanceSpecifier", - "src": "612:5:59" - } - ], - "contractDependencies": [ - 21324, - 22052, - 22220, - 22247 - ], - "contractKind": "contract", - "documentation": "@dev Contract Registry\n * The contract registry keeps contract addresses by name.\nThe owner can update contract addresses so that a contract name always points to the latest version\nof the given contract.\nOther contracts can query the registry to get updated addresses instead of depending on specific\naddresses.\n * Note that contract names are limited to 32 bytes UTF8 encoded ASCII strings to optimize gas costs", - "fullyImplemented": true, - "id": 20740, - "linearizedBaseContracts": [ - 20740, - 22052, - 21324, - 22247, - 22220 - ], - "name": "ContractRegistry", - "nodeType": "ContractDefinition", - "nodes": [ - { - "canonicalName": "ContractRegistry.RegistryItem", - "id": 20467, - "members": [ - { - "constant": false, - "id": 20464, - "name": "contractAddress", - "nodeType": "VariableDeclaration", - "scope": 20467, - "src": "645:23:59", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 20463, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "645:7:59", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 20466, - "name": "nameIndex", - "nodeType": "VariableDeclaration", - "scope": 20467, - "src": "692:17:59", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 20465, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "692:7:59", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "name": "RegistryItem", - "nodeType": "StructDefinition", - "scope": 20740, - "src": "621:143:59", - "visibility": "public" - }, - { - "constant": false, - "id": 20471, - "name": "items", - "nodeType": "VariableDeclaration", - "scope": 20740, - "src": "767:46:59", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RegistryItem_$20467_storage_$", - "typeString": "mapping(bytes32 => struct ContractRegistry.RegistryItem)" - }, - "typeName": { - "id": 20470, - "keyType": { - "id": 20468, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "775:7:59", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Mapping", - "src": "767:32:59", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RegistryItem_$20467_storage_$", - "typeString": "mapping(bytes32 => struct ContractRegistry.RegistryItem)" - }, - "valueType": { - "contractScope": null, - "id": 20469, - "name": "RegistryItem", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20467, - "src": "786:12:59", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RegistryItem_$20467_storage_ptr", - "typeString": "struct ContractRegistry.RegistryItem" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 20474, - "name": "contractNames", - "nodeType": "VariableDeclaration", - "scope": 20740, - "src": "848:29:59", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_string_storage_$dyn_storage", - "typeString": "string[]" - }, - "typeName": { - "baseType": { - "id": 20472, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "848:6:59", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "id": 20473, - "length": null, - "nodeType": "ArrayTypeName", - "src": "848:8:59", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr", - "typeString": "string[]" - } - }, - "value": null, - "visibility": "public" - }, - { - "anonymous": false, - "documentation": "@dev triggered when an address pointed to by a contract name is modified\n\t * @param _contractName contract name\n@param _contractAddress new contract address", - "id": 20480, - "name": "AddressUpdate", - "nodeType": "EventDefinition", - "parameters": { - "id": 20479, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 20476, - "indexed": true, - "name": "_contractName", - "nodeType": "VariableDeclaration", - "scope": 20480, - "src": "1124:29:59", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 20475, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1124:7:59", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 20478, - "indexed": false, - "name": "_contractAddress", - "nodeType": "VariableDeclaration", - "scope": 20480, - "src": "1155:24:59", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 20477, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1155:7:59", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1123:57:59" - }, - "src": "1104:77:59" - }, - { - "body": { - "id": 20488, - "nodeType": "Block", - "src": "1330:35:59", - "statements": [ - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 20485, - "name": "contractNames", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20474, - "src": "1341:13:59", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_string_storage_$dyn_storage", - "typeString": "string storage ref[] storage ref" - } - }, - "id": 20486, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1341:20:59", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 20484, - "id": 20487, - "nodeType": "Return", - "src": "1334:27:59" - } - ] - }, - "documentation": "@dev returns the number of items in the registry\n\t * @return number of items", - "id": 20489, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "itemCount", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 20481, - "nodeType": "ParameterList", - "parameters": [], - "src": "1297:2:59" - }, - "payable": false, - "returnParameters": { - "id": 20484, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 20483, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 20489, - "src": "1321:7:59", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 20482, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1321:7:59", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1320:9:59" - }, - "scope": 20740, - "src": "1279:86:59", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 20501, - "nodeType": "Block", - "src": "1598:51:59", - "statements": [ - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 20496, - "name": "items", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20471, - "src": "1609:5:59", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RegistryItem_$20467_storage_$", - "typeString": "mapping(bytes32 => struct ContractRegistry.RegistryItem storage ref)" - } - }, - "id": 20498, - "indexExpression": { - "argumentTypes": null, - "id": 20497, - "name": "_contractName", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20491, - "src": "1615:13:59", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1609:20:59", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RegistryItem_$20467_storage", - "typeString": "struct ContractRegistry.RegistryItem storage ref" - } - }, - "id": 20499, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "contractAddress", - "nodeType": "MemberAccess", - "referencedDeclaration": 20464, - "src": "1609:36:59", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 20495, - "id": 20500, - "nodeType": "Return", - "src": "1602:43:59" - } - ] - }, - "documentation": "@dev returns the address associated with the given contract name\n\t * @param _contractName contract name\n\t * @return contract address", - "id": 20502, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "addressOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 20492, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 20491, - "name": "_contractName", - "nodeType": "VariableDeclaration", - "scope": 20502, - "src": "1545:21:59", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 20490, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1545:7:59", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1544:23:59" - }, - "payable": false, - "returnParameters": { - "id": 20495, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 20494, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 20502, - "src": "1589:7:59", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 20493, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1589:7:59", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1588:9:59" - }, - "scope": 20740, - "src": "1526:123:59", - "stateMutability": "view", - "superFunction": 22212, - "visibility": "public" - }, - { - "body": { - "id": 20571, - "nodeType": "Block", - "src": "1948:667:59", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "id": 20518, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 20515, - "name": "_contractName", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20504, - "src": "1980:13:59", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "id": 20516, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1980:20:59", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 20517, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2003:1:59", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "1980:24:59", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552525f494e56414c49445f4e414d45", - "id": 20519, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2006:18:59", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_8c31b897cf1b4c41d9a3a2c9019700f5d8d0c36c906997985403c8f4610f8246", - "typeString": "literal_string \"ERR_INVALID_NAME\"" - }, - "value": "ERR_INVALID_NAME" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_8c31b897cf1b4c41d9a3a2c9019700f5d8d0c36c906997985403c8f4610f8246", - "typeString": "literal_string \"ERR_INVALID_NAME\"" - } - ], - "id": 20514, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 22341, - 22342 - ], - "referencedDeclaration": 22342, - "src": "1972:7:59", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 20520, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1972:53:59", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 20521, - "nodeType": "ExpressionStatement", - "src": "1972:53:59" - }, - { - "assignments": [ - 20523 - ], - "declarations": [ - { - "constant": false, - "id": 20523, - "name": "currentAddress", - "nodeType": "VariableDeclaration", - "scope": 20572, - "src": "2065:22:59", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 20522, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2065:7:59", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 20528, - "initialValue": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 20524, - "name": "items", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20471, - "src": "2090:5:59", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RegistryItem_$20467_storage_$", - "typeString": "mapping(bytes32 => struct ContractRegistry.RegistryItem storage ref)" - } - }, - "id": 20526, - "indexExpression": { - "argumentTypes": null, - "id": 20525, - "name": "_contractName", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20504, - "src": "2096:13:59", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2090:20:59", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RegistryItem_$20467_storage", - "typeString": "struct ContractRegistry.RegistryItem storage ref" - } - }, - "id": 20527, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "contractAddress", - "nodeType": "MemberAccess", - "referencedDeclaration": 20464, - "src": "2090:36:59", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2065:61:59" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 20531, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 20529, - "name": "_contractAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20506, - "src": "2134:16:59", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 20530, - "name": "currentAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20523, - "src": "2154:14:59", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2134:34:59", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 20533, - "nodeType": "IfStatement", - "src": "2130:47:59", - "trueBody": { - "expression": null, - "functionReturnParameters": 20513, - "id": 20532, - "nodeType": "Return", - "src": "2170:7:59" - } - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 20538, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 20534, - "name": "currentAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20523, - "src": "2185:14:59", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 20536, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2211:1:59", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 20535, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2203:7:59", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 20537, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2203:10:59", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2185:28:59", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 20558, - "nodeType": "IfStatement", - "src": "2181:236:59", - "trueBody": { - "id": 20557, - "nodeType": "Block", - "src": "2215:202:59", - "statements": [ - { - "assignments": [ - 20540 - ], - "declarations": [ - { - "constant": false, - "id": 20540, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 20572, - "src": "2265:9:59", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 20539, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2265:7:59", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 20547, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 20544, - "name": "_contractName", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20504, - "src": "2312:13:59", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 20543, - "name": "bytes32ToString", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20713, - "src": "2296:15:59", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$_t_string_memory_ptr_$", - "typeString": "function (bytes32) pure returns (string memory)" - } - }, - "id": 20545, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2296:30:59", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 20541, - "name": "contractNames", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20474, - "src": "2277:13:59", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_string_storage_$dyn_storage", - "typeString": "string storage ref[] storage ref" - } - }, - "id": 20542, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "push", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2277:18:59", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_string_storage_$returns$_t_uint256_$", - "typeString": "function (string storage ref) returns (uint256)" - } - }, - "id": 20546, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2277:50:59", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2265:62:59" - }, - { - "expression": { - "argumentTypes": null, - "id": 20555, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 20548, - "name": "items", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20471, - "src": "2374:5:59", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RegistryItem_$20467_storage_$", - "typeString": "mapping(bytes32 => struct ContractRegistry.RegistryItem storage ref)" - } - }, - "id": 20550, - "indexExpression": { - "argumentTypes": null, - "id": 20549, - "name": "_contractName", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20504, - "src": "2380:13:59", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2374:20:59", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RegistryItem_$20467_storage", - "typeString": "struct ContractRegistry.RegistryItem storage ref" - } - }, - "id": 20551, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "nameIndex", - "nodeType": "MemberAccess", - "referencedDeclaration": 20466, - "src": "2374:30:59", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 20554, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 20552, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20540, - "src": "2407:1:59", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 20553, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2411:1:59", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "2407:5:59", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2374:38:59", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 20556, - "nodeType": "ExpressionStatement", - "src": "2374:38:59" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "id": 20564, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 20559, - "name": "items", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20471, - "src": "2461:5:59", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RegistryItem_$20467_storage_$", - "typeString": "mapping(bytes32 => struct ContractRegistry.RegistryItem storage ref)" - } - }, - "id": 20561, - "indexExpression": { - "argumentTypes": null, - "id": 20560, - "name": "_contractName", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20504, - "src": "2467:13:59", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2461:20:59", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RegistryItem_$20467_storage", - "typeString": "struct ContractRegistry.RegistryItem storage ref" - } - }, - "id": 20562, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "contractAddress", - "nodeType": "MemberAccess", - "referencedDeclaration": 20464, - "src": "2461:36:59", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 20563, - "name": "_contractAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20506, - "src": "2500:16:59", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2461:55:59", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 20565, - "nodeType": "ExpressionStatement", - "src": "2461:55:59" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 20567, - "name": "_contractName", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20504, - "src": "2579:13:59", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 20568, - "name": "_contractAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20506, - "src": "2594:16:59", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 20566, - "name": "AddressUpdate", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20480, - "src": "2565:13:59", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$returns$__$", - "typeString": "function (bytes32,address)" - } - }, - "id": 20569, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2565:46:59", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 20570, - "nodeType": "EmitStatement", - "src": "2560:51:59" - } - ] - }, - "documentation": "@dev registers a new address for the contract name in the registry\n\t * @param _contractName contract name\n@param _contractAddress contract address", - "id": 20572, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 20509, - "modifierName": { - "argumentTypes": null, - "id": 20508, - "name": "ownerOnly", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21265, - "src": "1907:9:59", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "1907:9:59" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 20511, - "name": "_contractAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20506, - "src": "1930:16:59", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 20512, - "modifierName": { - "argumentTypes": null, - "id": 20510, - "name": "validAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22011, - "src": "1917:12:59", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$", - "typeString": "modifier (address)" - } - }, - "nodeType": "ModifierInvocation", - "src": "1917:30:59" - } - ], - "name": "registerAddress", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 20507, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 20504, - "name": "_contractName", - "nodeType": "VariableDeclaration", - "scope": 20572, - "src": "1851:21:59", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 20503, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1851:7:59", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 20506, - "name": "_contractAddress", - "nodeType": "VariableDeclaration", - "scope": 20572, - "src": "1874:24:59", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 20505, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1874:7:59", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1850:49:59" - }, - "payable": false, - "returnParameters": { - "id": 20513, - "nodeType": "ParameterList", - "parameters": [], - "src": "1948:0:59" - }, - "scope": 20740, - "src": "1826:789:59", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 20673, - "nodeType": "Block", - "src": "2802:1156:59", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "id": 20583, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 20580, - "name": "_contractName", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20574, - "src": "2834:13:59", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "id": 20581, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2834:20:59", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 20582, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2857:1:59", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "2834:24:59", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552525f494e56414c49445f4e414d45", - "id": 20584, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2860:18:59", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_8c31b897cf1b4c41d9a3a2c9019700f5d8d0c36c906997985403c8f4610f8246", - "typeString": "literal_string \"ERR_INVALID_NAME\"" - }, - "value": "ERR_INVALID_NAME" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_8c31b897cf1b4c41d9a3a2c9019700f5d8d0c36c906997985403c8f4610f8246", - "typeString": "literal_string \"ERR_INVALID_NAME\"" - } - ], - "id": 20579, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 22341, - 22342 - ], - "referencedDeclaration": 22342, - "src": "2826:7:59", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 20585, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2826:53:59", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 20586, - "nodeType": "ExpressionStatement", - "src": "2826:53:59" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 20595, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 20588, - "name": "items", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20471, - "src": "2891:5:59", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RegistryItem_$20467_storage_$", - "typeString": "mapping(bytes32 => struct ContractRegistry.RegistryItem storage ref)" - } - }, - "id": 20590, - "indexExpression": { - "argumentTypes": null, - "id": 20589, - "name": "_contractName", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20574, - "src": "2897:13:59", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2891:20:59", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RegistryItem_$20467_storage", - "typeString": "struct ContractRegistry.RegistryItem storage ref" - } - }, - "id": 20591, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "contractAddress", - "nodeType": "MemberAccess", - "referencedDeclaration": 20464, - "src": "2891:36:59", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 20593, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2939:1:59", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 20592, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2931:7:59", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 20594, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2931:10:59", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2891:50:59", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552525f494e56414c49445f4e414d45", - "id": 20596, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2943:18:59", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_8c31b897cf1b4c41d9a3a2c9019700f5d8d0c36c906997985403c8f4610f8246", - "typeString": "literal_string \"ERR_INVALID_NAME\"" - }, - "value": "ERR_INVALID_NAME" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_8c31b897cf1b4c41d9a3a2c9019700f5d8d0c36c906997985403c8f4610f8246", - "typeString": "literal_string \"ERR_INVALID_NAME\"" - } - ], - "id": 20587, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 22341, - 22342 - ], - "referencedDeclaration": 22342, - "src": "2883:7:59", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 20597, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2883:79:59", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 20598, - "nodeType": "ExpressionStatement", - "src": "2883:79:59" - }, - { - "expression": { - "argumentTypes": null, - "id": 20606, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 20599, - "name": "items", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20471, - "src": "3009:5:59", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RegistryItem_$20467_storage_$", - "typeString": "mapping(bytes32 => struct ContractRegistry.RegistryItem storage ref)" - } - }, - "id": 20601, - "indexExpression": { - "argumentTypes": null, - "id": 20600, - "name": "_contractName", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20574, - "src": "3015:13:59", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3009:20:59", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RegistryItem_$20467_storage", - "typeString": "struct ContractRegistry.RegistryItem storage ref" - } - }, - "id": 20602, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "contractAddress", - "nodeType": "MemberAccess", - "referencedDeclaration": 20464, - "src": "3009:36:59", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 20604, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3056:1:59", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 20603, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3048:7:59", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 20605, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3048:10:59", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3009:49:59", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 20607, - "nodeType": "ExpressionStatement", - "src": "3009:49:59" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 20611, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 20608, - "name": "contractNames", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20474, - "src": "3299:13:59", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_string_storage_$dyn_storage", - "typeString": "string storage ref[] storage ref" - } - }, - "id": 20609, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3299:20:59", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 20610, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3322:1:59", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "3299:24:59", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 20653, - "nodeType": "IfStatement", - "src": "3295:420:59", - "trueBody": { - "id": 20652, - "nodeType": "Block", - "src": "3325:390:59", - "statements": [ - { - "assignments": [ - 20613 - ], - "declarations": [ - { - "constant": false, - "id": 20613, - "name": "lastContractNameString", - "nodeType": "VariableDeclaration", - "scope": 20674, - "src": "3330:36:59", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 20612, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "3330:6:59", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 20620, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 20614, - "name": "contractNames", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20474, - "src": "3369:13:59", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_string_storage_$dyn_storage", - "typeString": "string storage ref[] storage ref" - } - }, - "id": 20619, - "indexExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 20618, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 20615, - "name": "contractNames", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20474, - "src": "3383:13:59", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_string_storage_$dyn_storage", - "typeString": "string storage ref[] storage ref" - } - }, - "id": 20616, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3383:20:59", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 20617, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3406:1:59", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "3383:24:59", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3369:39:59", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3330:78:59" - }, - { - "assignments": [ - 20622 - ], - "declarations": [ - { - "constant": false, - "id": 20622, - "name": "unregisterIndex", - "nodeType": "VariableDeclaration", - "scope": 20674, - "src": "3413:23:59", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 20621, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3413:7:59", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 20627, - "initialValue": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 20623, - "name": "items", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20471, - "src": "3439:5:59", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RegistryItem_$20467_storage_$", - "typeString": "mapping(bytes32 => struct ContractRegistry.RegistryItem storage ref)" - } - }, - "id": 20625, - "indexExpression": { - "argumentTypes": null, - "id": 20624, - "name": "_contractName", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20574, - "src": "3445:13:59", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3439:20:59", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RegistryItem_$20467_storage", - "typeString": "struct ContractRegistry.RegistryItem storage ref" - } - }, - "id": 20626, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "nameIndex", - "nodeType": "MemberAccess", - "referencedDeclaration": 20466, - "src": "3439:30:59", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3413:56:59" - }, - { - "expression": { - "argumentTypes": null, - "id": 20632, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 20628, - "name": "contractNames", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20474, - "src": "3475:13:59", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_string_storage_$dyn_storage", - "typeString": "string storage ref[] storage ref" - } - }, - "id": 20630, - "indexExpression": { - "argumentTypes": null, - "id": 20629, - "name": "unregisterIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20622, - "src": "3489:15:59", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "3475:30:59", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 20631, - "name": "lastContractNameString", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20613, - "src": "3508:22:59", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "3475:55:59", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 20633, - "nodeType": "ExpressionStatement", - "src": "3475:55:59" - }, - { - "assignments": [ - 20635 - ], - "declarations": [ - { - "constant": false, - "id": 20635, - "name": "lastContractName", - "nodeType": "VariableDeclaration", - "scope": 20674, - "src": "3535:24:59", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 20634, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "3535:7:59", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 20639, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 20637, - "name": "lastContractNameString", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20613, - "src": "3578:22:59", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 20636, - "name": "stringToBytes32", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20727, - "src": "3562:15:59", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (string memory) pure returns (bytes32)" - } - }, - "id": 20638, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3562:39:59", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3535:66:59" - }, - { - "assignments": [ - 20641 - ], - "declarations": [ - { - "constant": false, - "id": 20641, - "name": "registryItem", - "nodeType": "VariableDeclaration", - "scope": 20674, - "src": "3606:33:59", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RegistryItem_$20467_storage_ptr", - "typeString": "struct ContractRegistry.RegistryItem" - }, - "typeName": { - "contractScope": null, - "id": 20640, - "name": "RegistryItem", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20467, - "src": "3606:12:59", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RegistryItem_$20467_storage_ptr", - "typeString": "struct ContractRegistry.RegistryItem" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 20645, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 20642, - "name": "items", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20471, - "src": "3642:5:59", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RegistryItem_$20467_storage_$", - "typeString": "mapping(bytes32 => struct ContractRegistry.RegistryItem storage ref)" - } - }, - "id": 20644, - "indexExpression": { - "argumentTypes": null, - "id": 20643, - "name": "lastContractName", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20635, - "src": "3648:16:59", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3642:23:59", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RegistryItem_$20467_storage", - "typeString": "struct ContractRegistry.RegistryItem storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3606:59:59" - }, - { - "expression": { - "argumentTypes": null, - "id": 20650, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 20646, - "name": "registryItem", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20641, - "src": "3670:12:59", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RegistryItem_$20467_storage_ptr", - "typeString": "struct ContractRegistry.RegistryItem storage pointer" - } - }, - "id": 20648, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "nameIndex", - "nodeType": "MemberAccess", - "referencedDeclaration": 20466, - "src": "3670:22:59", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 20649, - "name": "unregisterIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20622, - "src": "3695:15:59", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3670:40:59", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 20651, - "nodeType": "ExpressionStatement", - "src": "3670:40:59" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "id": 20657, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "--", - "prefix": false, - "src": "3767:22:59", - "subExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 20654, - "name": "contractNames", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20474, - "src": "3767:13:59", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_string_storage_$dyn_storage", - "typeString": "string storage ref[] storage ref" - } - }, - "id": 20656, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3767:20:59", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 20658, - "nodeType": "ExpressionStatement", - "src": "3767:22:59" - }, - { - "expression": { - "argumentTypes": null, - "id": 20664, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 20659, - "name": "items", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20471, - "src": "3831:5:59", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RegistryItem_$20467_storage_$", - "typeString": "mapping(bytes32 => struct ContractRegistry.RegistryItem storage ref)" - } - }, - "id": 20661, - "indexExpression": { - "argumentTypes": null, - "id": 20660, - "name": "_contractName", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20574, - "src": "3837:13:59", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3831:20:59", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RegistryItem_$20467_storage", - "typeString": "struct ContractRegistry.RegistryItem storage ref" - } - }, - "id": 20662, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "nameIndex", - "nodeType": "MemberAccess", - "referencedDeclaration": 20466, - "src": "3831:30:59", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 20663, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3864:1:59", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "3831:34:59", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 20665, - "nodeType": "ExpressionStatement", - "src": "3831:34:59" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 20667, - "name": "_contractName", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20574, - "src": "3928:13:59", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 20669, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3951:1:59", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 20668, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3943:7:59", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 20670, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3943:10:59", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 20666, - "name": "AddressUpdate", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20480, - "src": "3914:13:59", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$returns$__$", - "typeString": "function (bytes32,address)" - } - }, - "id": 20671, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3914:40:59", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 20672, - "nodeType": "EmitStatement", - "src": "3909:45:59" - } - ] - }, - "documentation": "@dev removes an existing contract address from the registry\n\t * @param _contractName contract name", - "id": 20674, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 20577, - "modifierName": { - "argumentTypes": null, - "id": 20576, - "name": "ownerOnly", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21265, - "src": "2792:9:59", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "2792:9:59" - } - ], - "name": "unregisterAddress", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 20575, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 20574, - "name": "_contractName", - "nodeType": "VariableDeclaration", - "scope": 20674, - "src": "2762:21:59", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 20573, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "2762:7:59", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2761:23:59" - }, - "payable": false, - "returnParameters": { - "id": 20578, - "nodeType": "ParameterList", - "parameters": [], - "src": "2802:0:59" - }, - "scope": 20740, - "src": "2735:1223:59", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 20712, - "nodeType": "Block", - "src": "4235:145:59", - "statements": [ - { - "assignments": [ - 20682 - ], - "declarations": [ - { - "constant": false, - "id": 20682, - "name": "byteArray", - "nodeType": "VariableDeclaration", - "scope": 20713, - "src": "4239:22:59", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 20681, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "4239:5:59", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 20687, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "3332", - "id": 20685, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4274:2:59", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_32_by_1", - "typeString": "int_const 32" - }, - "value": "32" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_32_by_1", - "typeString": "int_const 32" - } - ], - "id": 20684, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "4264:9:59", - "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_$", - "typeString": "function (uint256) pure returns (bytes memory)" - }, - "typeName": { - "id": 20683, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "4268:5:59", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - } - }, - "id": 20686, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4264:13:59", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory", - "typeString": "bytes memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4239:38:59" - }, - { - "body": { - "id": 20706, - "nodeType": "Block", - "src": "4314:34:59", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 20704, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 20698, - "name": "byteArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20682, - "src": "4319:9:59", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 20700, - "indexExpression": { - "argumentTypes": null, - "id": 20699, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20689, - "src": "4329:1:59", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4319:12:59", - "typeDescriptions": { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 20701, - "name": "_bytes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20676, - "src": "4334:6:59", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "id": 20703, - "indexExpression": { - "argumentTypes": null, - "id": 20702, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20689, - "src": "4341:1:59", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4334:9:59", - "typeDescriptions": { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - } - }, - "src": "4319:24:59", - "typeDescriptions": { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - } - }, - "id": 20705, - "nodeType": "ExpressionStatement", - "src": "4319:24:59" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 20694, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 20692, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20689, - "src": "4301:1:59", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "hexValue": "3332", - "id": 20693, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4305:2:59", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_32_by_1", - "typeString": "int_const 32" - }, - "value": "32" - }, - "src": "4301:6:59", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 20707, - "initializationExpression": { - "assignments": [ - 20689 - ], - "declarations": [ - { - "constant": false, - "id": 20689, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 20713, - "src": "4286:9:59", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 20688, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4286:7:59", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 20691, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 20690, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4298:1:59", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "4286:13:59" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 20696, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "4309:3:59", - "subExpression": { - "argumentTypes": null, - "id": 20695, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20689, - "src": "4309:1:59", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 20697, - "nodeType": "ExpressionStatement", - "src": "4309:3:59" - }, - "nodeType": "ForStatement", - "src": "4281:67:59" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 20709, - "name": "byteArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20682, - "src": "4366:9:59", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 20708, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4359:6:59", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_string_storage_ptr_$", - "typeString": "type(string storage pointer)" - }, - "typeName": "string" - }, - "id": 20710, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4359:17:59", - "typeDescriptions": { - "typeIdentifier": "t_string_memory", - "typeString": "string memory" - } - }, - "functionReturnParameters": 20680, - "id": 20711, - "nodeType": "Return", - "src": "4352:24:59" - } - ] - }, - "documentation": "@dev utility, converts bytes32 to a string\nnote that the bytes32 argument is assumed to be UTF8 encoded ASCII string\n\t * @return string representation of the given bytes32 argument", - "id": 20713, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "bytes32ToString", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 20677, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 20676, - "name": "_bytes", - "nodeType": "VariableDeclaration", - "scope": 20713, - "src": "4189:14:59", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 20675, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "4189:7:59", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4188:16:59" - }, - "payable": false, - "returnParameters": { - "id": 20680, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 20679, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 20713, - "src": "4227:6:59", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 20678, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "4227:6:59", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4226:8:59" - }, - "scope": 20740, - "src": "4164:216:59", - "stateMutability": "pure", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 20726, - "nodeType": "Block", - "src": "4663:93:59", - "statements": [ - { - "assignments": [], - "declarations": [ - { - "constant": false, - "id": 20721, - "name": "result", - "nodeType": "VariableDeclaration", - "scope": 20727, - "src": "4667:14:59", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 20720, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "4667:7:59", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 20722, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "4667:14:59" - }, - { - "externalReferences": [ - { - "result": { - "declaration": 20721, - "isOffset": false, - "isSlot": false, - "src": "4699:6:59", - "valueSize": 1 - } - }, - { - "_string": { - "declaration": 20715, - "isOffset": false, - "isSlot": false, - "src": "4719:7:59", - "valueSize": 1 - } - } - ], - "id": 20723, - "nodeType": "InlineAssembly", - "operations": "{\n result := mload(add(_string, 32))\n}", - "src": "4685:60:59" - }, - { - "expression": { - "argumentTypes": null, - "id": 20724, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20721, - "src": "4746:6:59", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "functionReturnParameters": 20719, - "id": 20725, - "nodeType": "Return", - "src": "4739:13:59" - } - ] - }, - "documentation": "@dev utility, converts string to bytes32\nnote that the bytes32 argument is assumed to be UTF8 encoded ASCII string\n\t * @return string representation of the given bytes32 argument", - "id": 20727, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "stringToBytes32", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 20716, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 20715, - "name": "_string", - "nodeType": "VariableDeclaration", - "scope": 20727, - "src": "4609:21:59", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 20714, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "4609:6:59", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4608:23:59" - }, - "payable": false, - "returnParameters": { - "id": 20719, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 20718, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 20727, - "src": "4654:7:59", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 20717, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "4654:7:59", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4653:9:59" - }, - "scope": 20740, - "src": "4584:172:59", - "stateMutability": "pure", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 20738, - "nodeType": "Block", - "src": "4886:39:59", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 20735, - "name": "_contractName", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20729, - "src": "4907:13:59", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 20734, - "name": "addressOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 20502 - ], - "referencedDeclaration": 20502, - "src": "4897:9:59", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$", - "typeString": "function (bytes32) view returns (address)" - } - }, - "id": 20736, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4897:24:59", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 20733, - "id": 20737, - "nodeType": "Return", - "src": "4890:31:59" - } - ] - }, - "documentation": "@dev deprecated, backward compatibility", - "id": 20739, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getAddress", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 20730, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 20729, - "name": "_contractName", - "nodeType": "VariableDeclaration", - "scope": 20739, - "src": "4833:21:59", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 20728, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "4833:7:59", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4832:23:59" - }, - "payable": false, - "returnParameters": { - "id": 20733, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 20732, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 20739, - "src": "4877:7:59", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 20731, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4877:7:59", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4876:9:59" - }, - "scope": 20740, - "src": "4813:112:59", - "stateMutability": "view", - "superFunction": 22219, - "visibility": "public" - } - ], - "scope": 20741, - "src": "557:4370:59" - } - ], - "src": "0:4928:59" - }, - "id": 59 - }, - "solidity/contracts/utility/ContractRegistryClient.sol": { - "ast": { - "absolutePath": "solidity/contracts/utility/ContractRegistryClient.sol", - "exportedSymbols": { - "ContractRegistryClient": [ - 20932 - ] - }, - "id": 20933, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 20742, - "literals": [ - "solidity", - "0.4", - ".26" - ], - "nodeType": "PragmaDirective", - "src": "0:23:60" - }, - { - "absolutePath": "solidity/contracts/utility/Owned.sol", - "file": "./Owned.sol", - "id": 20743, - "nodeType": "ImportDirective", - "scope": 20933, - "sourceUnit": 21325, - "src": "24:21:60", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "solidity/contracts/utility/Utils.sol", - "file": "./Utils.sol", - "id": 20744, - "nodeType": "ImportDirective", - "scope": 20933, - "sourceUnit": 22053, - "src": "46:21:60", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "solidity/contracts/utility/interfaces/IContractRegistry.sol", - "file": "./interfaces/IContractRegistry.sol", - "id": 20745, - "nodeType": "ImportDirective", - "scope": 20933, - "sourceUnit": 22221, - "src": "68:44:60", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 20746, - "name": "Owned", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 21324, - "src": "208:5:60", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Owned_$21324", - "typeString": "contract Owned" - } - }, - "id": 20747, - "nodeType": "InheritanceSpecifier", - "src": "208:5:60" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 20748, - "name": "Utils", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 22052, - "src": "215:5:60", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Utils_$22052", - "typeString": "contract Utils" - } - }, - "id": 20749, - "nodeType": "InheritanceSpecifier", - "src": "215:5:60" - } - ], - "contractDependencies": [ - 21324, - 22052, - 22247 - ], - "contractKind": "contract", - "documentation": "@dev Base contract for ContractRegistry clients", - "fullyImplemented": true, - "id": 20932, - "linearizedBaseContracts": [ - 20932, - 22052, - 21324, - 22247 - ], - "name": "ContractRegistryClient", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": true, - "id": 20752, - "name": "CONTRACT_REGISTRY", - "nodeType": "VariableDeclaration", - "scope": 20932, - "src": "224:64:60", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 20750, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "224:7:60", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "436f6e74726163745265676973747279", - "id": 20751, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "270:18:60", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_014cc675742635098f3843c56f86f2875ab1c0e8ccd166d07159a5036b798b15", - "typeString": "literal_string \"ContractRegistry\"" - }, - "value": "ContractRegistry" - }, - "visibility": "internal" - }, - { - "constant": true, - "id": 20755, - "name": "SOVRYNSWAP_NETWORK", - "nodeType": "VariableDeclaration", - "scope": 20932, - "src": "291:66:60", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 20753, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "291:7:60", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "536f7672796e537761704e6574776f726b", - "id": 20754, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "338:19:60", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_4ff705ab0486892b54b4d7575a1b01ac0f081cbcc8efcb5919c2f54e2bbfb03c", - "typeString": "literal_string \"SovrynSwapNetwork\"" - }, - "value": "SovrynSwapNetwork" - }, - "visibility": "internal" - }, - { - "constant": true, - "id": 20758, - "name": "SOVRYNSWAP_FORMULA", - "nodeType": "VariableDeclaration", - "scope": 20932, - "src": "360:66:60", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 20756, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "360:7:60", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "536f7672796e53776170466f726d756c61", - "id": 20757, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "407:19:60", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_b7dbce58728d586c7cc6290b77cccdd70aca0aa7d0b1ece5974d59bfab779e66", - "typeString": "literal_string \"SovrynSwapFormula\"" - }, - "value": "SovrynSwapFormula" - }, - "visibility": "internal" - }, - { - "constant": true, - "id": 20761, - "name": "CONVERTER_FACTORY", - "nodeType": "VariableDeclaration", - "scope": 20932, - "src": "429:64:60", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 20759, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "429:7:60", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "436f6e766572746572466163746f7279", - "id": 20760, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "475:18:60", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_01f892de917bf09cf6fd04f57ff78c6ca006205a8809769abbeb39a039d3d768", - "typeString": "literal_string \"ConverterFactory\"" - }, - "value": "ConverterFactory" - }, - "visibility": "internal" - }, - { - "constant": true, - "id": 20764, - "name": "CONVERSION_PATH_FINDER", - "nodeType": "VariableDeclaration", - "scope": 20932, - "src": "496:73:60", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 20762, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "496:7:60", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "436f6e76657273696f6e5061746846696e646572", - "id": 20763, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "547:22:60", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_d55bb14cf5551b26acee2cc099a4125a85ce113cb3306082cd15a1b4785376f1", - "typeString": "literal_string \"ConversionPathFinder\"" - }, - "value": "ConversionPathFinder" - }, - "visibility": "internal" - }, - { - "constant": true, - "id": 20767, - "name": "CONVERTER_UPGRADER", - "nodeType": "VariableDeclaration", - "scope": 20932, - "src": "572:76:60", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 20765, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "572:7:60", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "536f7672796e53776170436f6e7665727465725570677261646572", - "id": 20766, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "619:29:60", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_52f7fb877417cc5310ba2c15764c676b04b3fe649e42fa69fec5ec034d33d844", - "typeString": "literal_string \"SovrynSwapConverterUpgrader\"" - }, - "value": "SovrynSwapConverterUpgrader" - }, - "visibility": "internal" - }, - { - "constant": true, - "id": 20770, - "name": "CONVERTER_REGISTRY", - "nodeType": "VariableDeclaration", - "scope": 20932, - "src": "651:76:60", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 20768, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "651:7:60", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "536f7672796e53776170436f6e7665727465725265676973747279", - "id": 20769, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "698:29:60", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_64aa0f5440b142a734c07dc74562a5d23b8bb6666acc05ce9d3816edc6eae8ed", - "typeString": "literal_string \"SovrynSwapConverterRegistry\"" - }, - "value": "SovrynSwapConverterRegistry" - }, - "visibility": "internal" - }, - { - "constant": true, - "id": 20773, - "name": "CONVERTER_REGISTRY_DATA", - "nodeType": "VariableDeclaration", - "scope": 20932, - "src": "730:85:60", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 20771, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "730:7:60", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "536f7672796e53776170436f6e766572746572526567697374727944617461", - "id": 20772, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "782:33:60", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_a0b4a26eff28196fb34bd04432b43a40b907747b18544d5de2c6084c479ed477", - "typeString": "literal_string \"SovrynSwapConverterRegistryData\"" - }, - "value": "SovrynSwapConverterRegistryData" - }, - "visibility": "internal" - }, - { - "constant": true, - "id": 20776, - "name": "BNT_TOKEN", - "nodeType": "VariableDeclaration", - "scope": 20932, - "src": "818:48:60", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 20774, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "818:7:60", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "424e54546f6b656e", - "id": 20775, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "856:10:60", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_4686149f7058d2454e334cfa4ea1a3482469c64fd3d4f50dfc69716086aee66f", - "typeString": "literal_string \"BNTToken\"" - }, - "value": "BNTToken" - }, - "visibility": "internal" - }, - { - "constant": true, - "id": 20779, - "name": "SOVRYNSWAP_X", - "nodeType": "VariableDeclaration", - "scope": 20932, - "src": "869:54:60", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 20777, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "869:7:60", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "536f7672796e5377617058", - "id": 20778, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "910:13:60", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_5191283208d220bd6051723ef33ec466d027e8855d4591756b47f4821ff7fc0d", - "typeString": "literal_string \"SovrynSwapX\"" - }, - "value": "SovrynSwapX" - }, - "visibility": "internal" - }, - { - "constant": true, - "id": 20782, - "name": "SOVRYNSWAP_X_UPGRADER", - "nodeType": "VariableDeclaration", - "scope": 20932, - "src": "926:71:60", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 20780, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "926:7:60", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "536f7672796e53776170585570677261646572", - "id": 20781, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "976:21:60", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_eb9a81e97f32a3d41499b3e148e6fa13c83a16ad5d4d69eb8e6315f83d8cc15d", - "typeString": "literal_string \"SovrynSwapXUpgrader\"" - }, - "value": "SovrynSwapXUpgrader" - }, - "visibility": "internal" - }, - { - "constant": true, - "id": 20785, - "name": "CHAINLINK_ORACLE_WHITELIST", - "nodeType": "VariableDeclaration", - "scope": 20932, - "src": "1000:81:60", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 20783, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1000:7:60", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "436861696e6c696e6b4f7261636c6557686974656c697374", - "id": 20784, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1055:26:60", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_f1d302dc7d7d6451424d658039558f1ea7e3cbf7255a10240557f430d300feb3", - "typeString": "literal_string \"ChainlinkOracleWhitelist\"" - }, - "value": "ChainlinkOracleWhitelist" - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 20787, - "name": "registry", - "nodeType": "VariableDeclaration", - "scope": 20932, - "src": "1085:33:60", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IContractRegistry_$22220", - "typeString": "contract IContractRegistry" - }, - "typeName": { - "contractScope": null, - "id": 20786, - "name": "IContractRegistry", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 22220, - "src": "1085:17:60", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IContractRegistry_$22220", - "typeString": "contract IContractRegistry" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 20789, - "name": "prevRegistry", - "nodeType": "VariableDeclaration", - "scope": 20932, - "src": "1165:37:60", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IContractRegistry_$22220", - "typeString": "contract IContractRegistry" - }, - "typeName": { - "contractScope": null, - "id": 20788, - "name": "IContractRegistry", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 22220, - "src": "1165:17:60", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IContractRegistry_$22220", - "typeString": "contract IContractRegistry" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 20791, - "name": "onlyOwnerCanUpdateRegistry", - "nodeType": "VariableDeclaration", - "scope": 20932, - "src": "1250:38:60", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 20790, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1250:4:60", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "public" - }, - { - "body": { - "id": 20800, - "nodeType": "Block", - "src": "1506:33:60", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 20796, - "name": "_contractName", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20793, - "src": "1516:13:60", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 20795, - "name": "_only", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20817, - "src": "1510:5:60", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$__$", - "typeString": "function (bytes32) view" - } - }, - "id": 20797, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1510:20:60", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 20798, - "nodeType": "ExpressionStatement", - "src": "1510:20:60" - }, - { - "id": 20799, - "nodeType": "PlaceholderStatement", - "src": "1534:1:60" - } - ] - }, - "documentation": "@dev verifies that the caller is mapped to the given contract name\n\t * @param _contractName contract name", - "id": 20801, - "name": "only", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 20794, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 20793, - "name": "_contractName", - "nodeType": "VariableDeclaration", - "scope": 20801, - "src": "1483:21:60", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 20792, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1483:7:60", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1482:23:60" - }, - "src": "1469:70:60", - "visibility": "internal" - }, - { - "body": { - "id": 20816, - "nodeType": "Block", - "src": "1637:76:60", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 20812, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 20807, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22338, - "src": "1649:3:60", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 20808, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1649:10:60", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 20810, - "name": "_contractName", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20803, - "src": "1673:13:60", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 20809, - "name": "addressOf", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20931, - "src": "1663:9:60", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$", - "typeString": "function (bytes32) view returns (address)" - } - }, - "id": 20811, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1663:24:60", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "1649:38:60", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552525f4143434553535f44454e494544", - "id": 20813, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1689:19:60", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_f5894269650d3e1726ed81a4f48c5b62c7dd6fa025b89d639952a7012960d666", - "typeString": "literal_string \"ERR_ACCESS_DENIED\"" - }, - "value": "ERR_ACCESS_DENIED" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_f5894269650d3e1726ed81a4f48c5b62c7dd6fa025b89d639952a7012960d666", - "typeString": "literal_string \"ERR_ACCESS_DENIED\"" - } - ], - "id": 20806, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 22341, - 22342 - ], - "referencedDeclaration": 22342, - "src": "1641:7:60", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 20814, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1641:68:60", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 20815, - "nodeType": "ExpressionStatement", - "src": "1641:68:60" - } - ] - }, - "documentation": null, - "id": 20817, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "_only", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 20804, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 20803, - "name": "_contractName", - "nodeType": "VariableDeclaration", - "scope": 20817, - "src": "1600:21:60", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 20802, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1600:7:60", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1599:23:60" - }, - "payable": false, - "returnParameters": { - "id": 20805, - "nodeType": "ParameterList", - "parameters": [], - "src": "1637:0:60" - }, - "scope": 20932, - "src": "1585:128:60", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 20837, - "nodeType": "Block", - "src": "1927:94:60", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 20829, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 20825, - "name": "registry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20787, - "src": "1931:8:60", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IContractRegistry_$22220", - "typeString": "contract IContractRegistry" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 20827, - "name": "_registry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20819, - "src": "1960:9:60", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IContractRegistry_$22220", - "typeString": "contract IContractRegistry" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IContractRegistry_$22220", - "typeString": "contract IContractRegistry" - } - ], - "id": 20826, - "name": "IContractRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22220, - "src": "1942:17:60", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IContractRegistry_$22220_$", - "typeString": "type(contract IContractRegistry)" - } - }, - "id": 20828, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1942:28:60", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IContractRegistry_$22220", - "typeString": "contract IContractRegistry" - } - }, - "src": "1931:39:60", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IContractRegistry_$22220", - "typeString": "contract IContractRegistry" - } - }, - "id": 20830, - "nodeType": "ExpressionStatement", - "src": "1931:39:60" - }, - { - "expression": { - "argumentTypes": null, - "id": 20835, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 20831, - "name": "prevRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20789, - "src": "1974:12:60", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IContractRegistry_$22220", - "typeString": "contract IContractRegistry" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 20833, - "name": "_registry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20819, - "src": "2007:9:60", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IContractRegistry_$22220", - "typeString": "contract IContractRegistry" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IContractRegistry_$22220", - "typeString": "contract IContractRegistry" - } - ], - "id": 20832, - "name": "IContractRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22220, - "src": "1989:17:60", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IContractRegistry_$22220_$", - "typeString": "type(contract IContractRegistry)" - } - }, - "id": 20834, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1989:28:60", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IContractRegistry_$22220", - "typeString": "contract IContractRegistry" - } - }, - "src": "1974:43:60", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IContractRegistry_$22220", - "typeString": "contract IContractRegistry" - } - }, - "id": 20836, - "nodeType": "ExpressionStatement", - "src": "1974:43:60" - } - ] - }, - "documentation": "@dev initializes a new ContractRegistryClient instance\n\t * @param _registry address of a contract-registry contract", - "id": 20838, - "implemented": true, - "isConstructor": true, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 20822, - "name": "_registry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20819, - "src": "1916:9:60", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IContractRegistry_$22220", - "typeString": "contract IContractRegistry" - } - } - ], - "id": 20823, - "modifierName": { - "argumentTypes": null, - "id": 20821, - "name": "validAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22011, - "src": "1903:12:60", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$", - "typeString": "modifier (address)" - } - }, - "nodeType": "ModifierInvocation", - "src": "1903:23:60" - } - ], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 20820, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 20819, - "name": "_registry", - "nodeType": "VariableDeclaration", - "scope": 20838, - "src": "1865:27:60", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IContractRegistry_$22220", - "typeString": "contract IContractRegistry" - }, - "typeName": { - "contractScope": null, - "id": 20818, - "name": "IContractRegistry", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 22220, - "src": "1865:17:60", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IContractRegistry_$22220", - "typeString": "contract IContractRegistry" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1864:29:60" - }, - "payable": false, - "returnParameters": { - "id": 20824, - "nodeType": "ParameterList", - "parameters": [], - "src": "1927:0:60" - }, - "scope": 20932, - "src": "1853:168:60", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 20895, - "nodeType": "Block", - "src": "2113:799:60", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 20848, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 20845, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 20842, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22338, - "src": "2169:3:60", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 20843, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2169:10:60", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 20844, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 21241 - ], - "referencedDeclaration": 21241, - "src": "2183:5:60", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2169:19:60", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "id": 20847, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "2192:27:60", - "subExpression": { - "argumentTypes": null, - "id": 20846, - "name": "onlyOwnerCanUpdateRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20791, - "src": "2193:26:60", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "2169:50:60", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552525f4143434553535f44454e494544", - "id": 20849, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2221:19:60", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_f5894269650d3e1726ed81a4f48c5b62c7dd6fa025b89d639952a7012960d666", - "typeString": "literal_string \"ERR_ACCESS_DENIED\"" - }, - "value": "ERR_ACCESS_DENIED" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_f5894269650d3e1726ed81a4f48c5b62c7dd6fa025b89d639952a7012960d666", - "typeString": "literal_string \"ERR_ACCESS_DENIED\"" - } - ], - "id": 20841, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 22341, - 22342 - ], - "referencedDeclaration": 22342, - "src": "2161:7:60", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 20850, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2161:80:60", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 20851, - "nodeType": "ExpressionStatement", - "src": "2161:80:60" - }, - { - "assignments": [ - 20853 - ], - "declarations": [ - { - "constant": false, - "id": 20853, - "name": "newRegistry", - "nodeType": "VariableDeclaration", - "scope": 20896, - "src": "2281:29:60", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IContractRegistry_$22220", - "typeString": "contract IContractRegistry" - }, - "typeName": { - "contractScope": null, - "id": 20852, - "name": "IContractRegistry", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 22220, - "src": "2281:17:60", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IContractRegistry_$22220", - "typeString": "contract IContractRegistry" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 20859, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 20856, - "name": "CONTRACT_REGISTRY", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20752, - "src": "2341:17:60", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 20855, - "name": "addressOf", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20931, - "src": "2331:9:60", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$", - "typeString": "function (bytes32) view returns (address)" - } - }, - "id": 20857, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2331:28:60", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 20854, - "name": "IContractRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22220, - "src": "2313:17:60", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IContractRegistry_$22220_$", - "typeString": "type(contract IContractRegistry)" - } - }, - "id": 20858, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2313:47:60", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IContractRegistry_$22220", - "typeString": "contract IContractRegistry" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2281:79:60" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 20871, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 20865, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 20861, - "name": "newRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20853, - "src": "2442:11:60", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IContractRegistry_$22220", - "typeString": "contract IContractRegistry" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 20863, - "name": "registry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20787, - "src": "2465:8:60", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IContractRegistry_$22220", - "typeString": "contract IContractRegistry" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IContractRegistry_$22220", - "typeString": "contract IContractRegistry" - } - ], - "id": 20862, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2457:7:60", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 20864, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2457:17:60", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2442:32:60", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 20870, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 20866, - "name": "newRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20853, - "src": "2478:11:60", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IContractRegistry_$22220", - "typeString": "contract IContractRegistry" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 20868, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2501:1:60", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 20867, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2493:7:60", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 20869, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2493:10:60", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2478:25:60", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "2442:61:60", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552525f494e56414c49445f5245474953545259", - "id": 20872, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2505:22:60", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_75b9212739e68843904752f41fb54f1609594bc4b84683da2a4384aeff5c191d", - "typeString": "literal_string \"ERR_INVALID_REGISTRY\"" - }, - "value": "ERR_INVALID_REGISTRY" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_75b9212739e68843904752f41fb54f1609594bc4b84683da2a4384aeff5c191d", - "typeString": "literal_string \"ERR_INVALID_REGISTRY\"" - } - ], - "id": 20860, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 22341, - 22342 - ], - "referencedDeclaration": 22342, - "src": "2434:7:60", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 20873, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2434:94:60", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 20874, - "nodeType": "ExpressionStatement", - "src": "2434:94:60" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 20883, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 20878, - "name": "CONTRACT_REGISTRY", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20752, - "src": "2650:17:60", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "argumentTypes": null, - "id": 20876, - "name": "newRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20853, - "src": "2628:11:60", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IContractRegistry_$22220", - "typeString": "contract IContractRegistry" - } - }, - "id": 20877, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "addressOf", - "nodeType": "MemberAccess", - "referencedDeclaration": 22212, - "src": "2628:21:60", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$", - "typeString": "function (bytes32) view external returns (address)" - } - }, - "id": 20879, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2628:40:60", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 20881, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2680:1:60", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 20880, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2672:7:60", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 20882, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2672:10:60", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2628:54:60", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552525f494e56414c49445f5245474953545259", - "id": 20884, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2684:22:60", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_75b9212739e68843904752f41fb54f1609594bc4b84683da2a4384aeff5c191d", - "typeString": "literal_string \"ERR_INVALID_REGISTRY\"" - }, - "value": "ERR_INVALID_REGISTRY" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_75b9212739e68843904752f41fb54f1609594bc4b84683da2a4384aeff5c191d", - "typeString": "literal_string \"ERR_INVALID_REGISTRY\"" - } - ], - "id": 20875, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 22341, - 22342 - ], - "referencedDeclaration": 22342, - "src": "2620:7:60", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 20885, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2620:87:60", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 20886, - "nodeType": "ExpressionStatement", - "src": "2620:87:60" - }, - { - "expression": { - "argumentTypes": null, - "id": 20889, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 20887, - "name": "prevRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20789, - "src": "2784:12:60", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IContractRegistry_$22220", - "typeString": "contract IContractRegistry" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 20888, - "name": "registry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20787, - "src": "2799:8:60", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IContractRegistry_$22220", - "typeString": "contract IContractRegistry" - } - }, - "src": "2784:23:60", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IContractRegistry_$22220", - "typeString": "contract IContractRegistry" - } - }, - "id": 20890, - "nodeType": "ExpressionStatement", - "src": "2784:23:60" - }, - { - "expression": { - "argumentTypes": null, - "id": 20893, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 20891, - "name": "registry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20787, - "src": "2886:8:60", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IContractRegistry_$22220", - "typeString": "contract IContractRegistry" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 20892, - "name": "newRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20853, - "src": "2897:11:60", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IContractRegistry_$22220", - "typeString": "contract IContractRegistry" - } - }, - "src": "2886:22:60", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IContractRegistry_$22220", - "typeString": "contract IContractRegistry" - } - }, - "id": 20894, - "nodeType": "ExpressionStatement", - "src": "2886:22:60" - } - ] - }, - "documentation": "@dev updates to the new contract-registry", - "id": 20896, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "updateRegistry", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 20839, - "nodeType": "ParameterList", - "parameters": [], - "src": "2103:2:60" - }, - "payable": false, - "returnParameters": { - "id": 20840, - "nodeType": "ParameterList", - "parameters": [], - "src": "2113:0:60" - }, - "scope": 20932, - "src": "2080:832:60", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 20905, - "nodeType": "Block", - "src": "3018:75:60", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 20903, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 20901, - "name": "registry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20787, - "src": "3066:8:60", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IContractRegistry_$22220", - "typeString": "contract IContractRegistry" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 20902, - "name": "prevRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20789, - "src": "3077:12:60", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IContractRegistry_$22220", - "typeString": "contract IContractRegistry" - } - }, - "src": "3066:23:60", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IContractRegistry_$22220", - "typeString": "contract IContractRegistry" - } - }, - "id": 20904, - "nodeType": "ExpressionStatement", - "src": "3066:23:60" - } - ] - }, - "documentation": "@dev restores the previous contract-registry", - "id": 20906, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 20899, - "modifierName": { - "argumentTypes": null, - "id": 20898, - "name": "ownerOnly", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21265, - "src": "3008:9:60", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "3008:9:60" - } - ], - "name": "restoreRegistry", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 20897, - "nodeType": "ParameterList", - "parameters": [], - "src": "2998:2:60" - }, - "payable": false, - "returnParameters": { - "id": 20900, - "nodeType": "ParameterList", - "parameters": [], - "src": "3018:0:60" - }, - "scope": 20932, - "src": "2974:119:60", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 20917, - "nodeType": "Block", - "src": "3363:123:60", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 20915, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 20913, - "name": "onlyOwnerCanUpdateRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20791, - "src": "3426:26:60", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 20914, - "name": "_onlyOwnerCanUpdateRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20908, - "src": "3455:27:60", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "3426:56:60", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 20916, - "nodeType": "ExpressionStatement", - "src": "3426:56:60" - } - ] - }, - "documentation": "@dev restricts the permission to update the contract-registry\n\t * @param _onlyOwnerCanUpdateRegistry indicates whether or not permission is restricted to owner only", - "id": 20918, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 20911, - "modifierName": { - "argumentTypes": null, - "id": 20910, - "name": "ownerOnly", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21265, - "src": "3353:9:60", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "3353:9:60" - } - ], - "name": "restrictRegistryUpdate", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 20909, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 20908, - "name": "_onlyOwnerCanUpdateRegistry", - "nodeType": "VariableDeclaration", - "scope": 20918, - "src": "3312:32:60", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 20907, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "3312:4:60", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3311:34:60" - }, - "payable": false, - "returnParameters": { - "id": 20912, - "nodeType": "ParameterList", - "parameters": [], - "src": "3363:0:60" - }, - "scope": 20932, - "src": "3280:206:60", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 20930, - "nodeType": "Block", - "src": "3721:48:60", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 20927, - "name": "_contractName", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20920, - "src": "3751:13:60", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "argumentTypes": null, - "id": 20925, - "name": "registry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20787, - "src": "3732:8:60", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IContractRegistry_$22220", - "typeString": "contract IContractRegistry" - } - }, - "id": 20926, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "addressOf", - "nodeType": "MemberAccess", - "referencedDeclaration": 22212, - "src": "3732:18:60", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$", - "typeString": "function (bytes32) view external returns (address)" - } - }, - "id": 20928, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3732:33:60", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 20924, - "id": 20929, - "nodeType": "Return", - "src": "3725:40:60" - } - ] - }, - "documentation": "@dev returns the address associated with the given contract name\n\t * @param _contractName contract name\n\t * @return contract address", - "id": 20931, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "addressOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 20921, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 20920, - "name": "_contractName", - "nodeType": "VariableDeclaration", - "scope": 20931, - "src": "3666:21:60", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 20919, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "3666:7:60", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3665:23:60" - }, - "payable": false, - "returnParameters": { - "id": 20924, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 20923, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 20931, - "src": "3712:7:60", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 20922, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3712:7:60", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3711:9:60" - }, - "scope": 20932, - "src": "3647:122:60", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 20933, - "src": "173:3598:60" - } - ], - "src": "0:3772:60" - }, - "id": 60 - }, - "solidity/contracts/utility/MoCMedianizerMock.sol": { - "ast": { - "absolutePath": "solidity/contracts/utility/MoCMedianizerMock.sol", - "exportedSymbols": { - "MoCMedianizerMock": [ - 20976 - ] - }, - "id": 20977, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 20934, - "literals": [ - "solidity", - "0.4", - ".26" - ], - "nodeType": "PragmaDirective", - "src": "0:23:61" - }, - { - "absolutePath": "solidity/contracts/utility/MocBTCToUSDOracle.sol", - "file": "./MocBTCToUSDOracle.sol", - "id": 20935, - "nodeType": "ImportDirective", - "scope": 20977, - "sourceUnit": 21123, - "src": "24:33:61", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 20936, - "name": "Medianizer", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 21039, - "src": "234:10:61", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Medianizer_$21039", - "typeString": "contract Medianizer" - } - }, - "id": 20937, - "nodeType": "InheritanceSpecifier", - "src": "234:10:61" - } - ], - "contractDependencies": [ - 21039 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 20976, - "linearizedBaseContracts": [ - 20976, - 21039 - ], - "name": "MoCMedianizerMock", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 20939, - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 20976, - "src": "248:20:61", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 20938, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "248:7:61", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 20941, - "name": "has", - "nodeType": "VariableDeclaration", - "scope": 20976, - "src": "271:15:61", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 20940, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "271:4:61", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "public" - }, - { - "body": { - "id": 20954, - "nodeType": "Block", - "src": "344:36:61", - "statements": [ - { - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 20949, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20939, - "src": "364:5:61", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 20948, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "356:7:61", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes32_$", - "typeString": "type(bytes32)" - }, - "typeName": "bytes32" - }, - "id": 20950, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "356:14:61", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 20951, - "name": "has", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20941, - "src": "372:3:61", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "id": 20952, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "355:21:61", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bytes32_$_t_bool_$", - "typeString": "tuple(bytes32,bool)" - } - }, - "functionReturnParameters": 20947, - "id": 20953, - "nodeType": "Return", - "src": "348:28:61" - } - ] - }, - "documentation": null, - "id": 20955, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "peek", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 20942, - "nodeType": "ParameterList", - "parameters": [], - "src": "303:2:61" - }, - "payable": false, - "returnParameters": { - "id": 20947, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 20944, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 20955, - "src": "329:7:61", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 20943, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "329:7:61", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 20946, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 20955, - "src": "338:4:61", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 20945, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "338:4:61", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "328:15:61" - }, - "scope": 20976, - "src": "290:90:61", - "stateMutability": "view", - "superFunction": 21038, - "visibility": "external" - }, - { - "body": { - "id": 20964, - "nodeType": "Block", - "src": "424:22:61", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 20962, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 20960, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20939, - "src": "428:5:61", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 20961, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20957, - "src": "436:6:61", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "428:14:61", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 20963, - "nodeType": "ExpressionStatement", - "src": "428:14:61" - } - ] - }, - "documentation": null, - "id": 20965, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "setValue", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 20958, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 20957, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 20965, - "src": "401:14:61", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 20956, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "401:7:61", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "400:16:61" - }, - "payable": false, - "returnParameters": { - "id": 20959, - "nodeType": "ParameterList", - "parameters": [], - "src": "424:0:61" - }, - "scope": 20976, - "src": "383:63:61", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 20974, - "nodeType": "Block", - "src": "483:18:61", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 20972, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 20970, - "name": "has", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20941, - "src": "487:3:61", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 20971, - "name": "_has", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20967, - "src": "493:4:61", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "487:10:61", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 20973, - "nodeType": "ExpressionStatement", - "src": "487:10:61" - } - ] - }, - "documentation": null, - "id": 20975, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "setHas", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 20968, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 20967, - "name": "_has", - "nodeType": "VariableDeclaration", - "scope": 20975, - "src": "465:9:61", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 20966, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "465:4:61", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "464:11:61" - }, - "payable": false, - "returnParameters": { - "id": 20969, - "nodeType": "ParameterList", - "parameters": [], - "src": "483:0:61" - }, - "scope": 20976, - "src": "449:52:61", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 20977, - "src": "204:299:61" - } - ], - "src": "0:504:61" - }, - "id": 61 - }, - "solidity/contracts/utility/MoCStateMock.sol": { - "ast": { - "absolutePath": "solidity/contracts/utility/MoCStateMock.sol", - "exportedSymbols": { - "MoCStateMock": [ - 21002 - ] - }, - "id": 21003, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 20978, - "literals": [ - "solidity", - "0.4", - ".26" - ], - "nodeType": "PragmaDirective", - "src": "0:23:62" - }, - { - "absolutePath": "solidity/contracts/utility/interfaces/IMoCState.sol", - "file": "./interfaces/IMoCState.sol", - "id": 20979, - "nodeType": "ImportDirective", - "scope": 21003, - "sourceUnit": 22229, - "src": "25:36:62", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 20980, - "name": "IMoCState", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 22228, - "src": "88:9:62", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IMoCState_$22228", - "typeString": "contract IMoCState" - } - }, - "id": 20981, - "nodeType": "InheritanceSpecifier", - "src": "88:9:62" - } - ], - "contractDependencies": [ - 22228 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 21002, - "linearizedBaseContracts": [ - 21002, - 22228 - ], - "name": "MoCStateMock", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 20983, - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 21002, - "src": "101:20:62", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 20982, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "101:7:62", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "body": { - "id": 20990, - "nodeType": "Block", - "src": "179:20:62", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 20988, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20983, - "src": "190:5:62", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 20987, - "id": 20989, - "nodeType": "Return", - "src": "183:12:62" - } - ] - }, - "documentation": null, - "id": 20991, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "bproUsdPrice", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 20984, - "nodeType": "ParameterList", - "parameters": [], - "src": "146:2:62" - }, - "payable": false, - "returnParameters": { - "id": 20987, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 20986, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 20991, - "src": "170:7:62", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 20985, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "170:7:62", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "169:9:62" - }, - "scope": 21002, - "src": "125:74:62", - "stateMutability": "view", - "superFunction": 22227, - "visibility": "public" - }, - { - "body": { - "id": 21000, - "nodeType": "Block", - "src": "243:22:62", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 20998, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 20996, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20983, - "src": "247:5:62", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 20997, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20993, - "src": "255:6:62", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "247:14:62", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 20999, - "nodeType": "ExpressionStatement", - "src": "247:14:62" - } - ] - }, - "documentation": null, - "id": 21001, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "setValue", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 20994, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 20993, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 21001, - "src": "220:14:62", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 20992, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "220:7:62", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "219:16:62" - }, - "payable": false, - "returnParameters": { - "id": 20995, - "nodeType": "ParameterList", - "parameters": [], - "src": "243:0:62" - }, - "scope": 21002, - "src": "202:63:62", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 21003, - "src": "63:204:62" - } - ], - "src": "0:268:62" - }, - "id": 62 - }, - "solidity/contracts/utility/MocBTCToBTCOracle.sol": { - "ast": { - "absolutePath": "solidity/contracts/utility/MocBTCToBTCOracle.sol", - "exportedSymbols": { - "MocBTCToBTCOracle": [ - 21027 - ] - }, - "id": 21028, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 21004, - "literals": [ - "solidity", - "0.4", - ".26" - ], - "nodeType": "PragmaDirective", - "src": "0:23:63" - }, - { - "absolutePath": "solidity/contracts/utility/interfaces/IConsumerPriceOracle.sol", - "file": "./interfaces/IConsumerPriceOracle.sol", - "id": 21005, - "nodeType": "ImportDirective", - "scope": 21028, - "sourceUnit": 22204, - "src": "25:47:63", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 21006, - "name": "IConsumerPriceOracle", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 22203, - "src": "190:20:63", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", - "typeString": "contract IConsumerPriceOracle" - } - }, - "id": 21007, - "nodeType": "InheritanceSpecifier", - "src": "190:20:63" - } - ], - "contractDependencies": [ - 22203 - ], - "contractKind": "contract", - "documentation": "@dev Provides the trivial ETH/ETH rate to be used with other TKN/ETH rates", - "fullyImplemented": true, - "id": 21027, - "linearizedBaseContracts": [ - 21027, - 22203 - ], - "name": "MocBTCToBTCOracle", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": true, - "id": 21010, - "name": "BTC_RATE", - "nodeType": "VariableDeclaration", - "scope": 21027, - "src": "214:36:63", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "typeName": { - "id": 21008, - "name": "int256", - "nodeType": "ElementaryTypeName", - "src": "214:6:63", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "31", - "id": 21009, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "249:1:63", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "visibility": "private" - }, - { - "body": { - "id": 21017, - "nodeType": "Block", - "src": "415:23:63", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 21015, - "name": "BTC_RATE", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21010, - "src": "426:8:63", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "functionReturnParameters": 21014, - "id": 21016, - "nodeType": "Return", - "src": "419:15:63" - } - ] - }, - "documentation": "@dev returns the trivial ETH/ETH rate.\n\t * @return always returns the trivial rate of 1", - "id": 21018, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "latestAnswer", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 21011, - "nodeType": "ParameterList", - "parameters": [], - "src": "381:2:63" - }, - "payable": false, - "returnParameters": { - "id": 21014, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 21013, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 21018, - "src": "407:6:63", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "typeName": { - "id": 21012, - "name": "int256", - "nodeType": "ElementaryTypeName", - "src": "407:6:63", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "406:8:63" - }, - "scope": 21027, - "src": "360:78:63", - "stateMutability": "view", - "superFunction": 22197, - "visibility": "external" - }, - { - "body": { - "id": 21025, - "nodeType": "Block", - "src": "617:18:63", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 21023, - "name": "now", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22340, - "src": "628:3:63", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 21022, - "id": 21024, - "nodeType": "Return", - "src": "621:10:63" - } - ] - }, - "documentation": "@dev returns the trivial ETH/ETH update time.\n\t * @return always returns current block's timestamp", - "id": 21026, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "latestTimestamp", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 21019, - "nodeType": "ParameterList", - "parameters": [], - "src": "582:2:63" - }, - "payable": false, - "returnParameters": { - "id": 21022, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 21021, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 21026, - "src": "608:7:63", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 21020, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "608:7:63", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "607:9:63" - }, - "scope": 21027, - "src": "558:77:63", - "stateMutability": "view", - "superFunction": 22202, - "visibility": "external" - } - ], - "scope": 21028, - "src": "160:477:63" - } - ], - "src": "0:638:63" - }, - "id": 63 - }, - "solidity/contracts/utility/MocBTCToUSDOracle.sol": { - "ast": { - "absolutePath": "solidity/contracts/utility/MocBTCToUSDOracle.sol", - "exportedSymbols": { - "Medianizer": [ - 21039 - ], - "MocBTCToUSDOracle": [ - 21122 - ] - }, - "id": 21123, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 21029, - "literals": [ - "solidity", - "0.4", - ".26" - ], - "nodeType": "PragmaDirective", - "src": "0:23:64" - }, - { - "absolutePath": "solidity/contracts/utility/interfaces/IConsumerPriceOracle.sol", - "file": "./interfaces/IConsumerPriceOracle.sol", - "id": 21030, - "nodeType": "ImportDirective", - "scope": 21123, - "sourceUnit": 22204, - "src": "25:47:64", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "solidity/contracts/utility/Owned.sol", - "file": "./Owned.sol", - "id": 21031, - "nodeType": "ImportDirective", - "scope": 21123, - "sourceUnit": 21325, - "src": "73:21:64", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "interface", - "documentation": null, - "fullyImplemented": false, - "id": 21039, - "linearizedBaseContracts": [ - 21039 - ], - "name": "Medianizer", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": null, - "id": 21038, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "peek", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 21032, - "nodeType": "ParameterList", - "parameters": [], - "src": "133:2:64" - }, - "payable": false, - "returnParameters": { - "id": 21037, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 21034, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 21038, - "src": "159:7:64", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 21033, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "159:7:64", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 21036, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 21038, - "src": "168:4:64", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 21035, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "168:4:64", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "158:15:64" - }, - "scope": 21039, - "src": "120:54:64", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - } - ], - "scope": 21123, - "src": "96:80:64" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 21040, - "name": "IConsumerPriceOracle", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 22203, - "src": "208:20:64", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", - "typeString": "contract IConsumerPriceOracle" - } - }, - "id": 21041, - "nodeType": "InheritanceSpecifier", - "src": "208:20:64" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 21042, - "name": "Owned", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 21324, - "src": "230:5:64", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Owned_$21324", - "typeString": "contract Owned" - } - }, - "id": 21043, - "nodeType": "InheritanceSpecifier", - "src": "230:5:64" - } - ], - "contractDependencies": [ - 21324, - 22203, - 22247 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 21122, - "linearizedBaseContracts": [ - 21122, - 21324, - 22247, - 22203 - ], - "name": "MocBTCToUSDOracle", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 21045, - "name": "mocOracleAddress", - "nodeType": "VariableDeclaration", - "scope": 21122, - "src": "239:31:64", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 21044, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "239:7:64", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "public" - }, - { - "anonymous": false, - "documentation": null, - "id": 21051, - "name": "SetMoCOracleAddress", - "nodeType": "EventDefinition", - "parameters": { - "id": 21050, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 21047, - "indexed": true, - "name": "mocOracleAddress", - "nodeType": "VariableDeclaration", - "scope": 21051, - "src": "300:32:64", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 21046, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "300:7:64", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 21049, - "indexed": false, - "name": "changerAddress", - "nodeType": "VariableDeclaration", - "scope": 21051, - "src": "334:22:64", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 21048, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "334:7:64", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "299:58:64" - }, - "src": "274:84:64" - }, - { - "body": { - "id": 21060, - "nodeType": "Block", - "src": "506:46:64", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 21057, - "name": "_mocOracleAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21053, - "src": "530:17:64", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 21056, - "name": "setMoCOracleAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21121, - "src": "510:19:64", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 21058, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "510:38:64", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 21059, - "nodeType": "ExpressionStatement", - "src": "510:38:64" - } - ] - }, - "documentation": "@dev initializes a ne MoC oracle\n\t * @param _mocOracleAddress MoC oracle address", - "id": 21061, - "implemented": true, - "isConstructor": true, - "isDeclaredConst": false, - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 21054, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 21053, - "name": "_mocOracleAddress", - "nodeType": "VariableDeclaration", - "scope": 21061, - "src": "472:25:64", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 21052, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "472:7:64", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "471:27:64" - }, - "payable": false, - "returnParameters": { - "id": 21055, - "nodeType": "ParameterList", - "parameters": [], - "src": "506:0:64" - }, - "scope": 21122, - "src": "460:92:64", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 21085, - "nodeType": "Block", - "src": "691:142:64", - "statements": [ - { - "assignments": [ - 21067, - 21069 - ], - "declarations": [ - { - "constant": false, - "id": 21067, - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 21086, - "src": "696:13:64", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 21066, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "696:7:64", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 21069, - "name": "hasValue", - "nodeType": "VariableDeclaration", - "scope": 21086, - "src": "711:13:64", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 21068, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "711:4:64", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 21075, - "initialValue": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 21071, - "name": "mocOracleAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21045, - "src": "739:16:64", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 21070, - "name": "Medianizer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21039, - "src": "728:10:64", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Medianizer_$21039_$", - "typeString": "type(contract Medianizer)" - } - }, - "id": 21072, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "728:28:64", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Medianizer_$21039", - "typeString": "contract Medianizer" - } - }, - "id": 21073, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "peek", - "nodeType": "MemberAccess", - "referencedDeclaration": 21038, - "src": "728:33:64", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_bytes32_$_t_bool_$", - "typeString": "function () view external returns (bytes32,bool)" - } - }, - "id": 21074, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "728:35:64", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bytes32_$_t_bool_$", - "typeString": "tuple(bytes32,bool)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "695:68:64" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 21077, - "name": "hasValue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21069, - "src": "775:8:64", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "446f65736e2774206861732076616c7565", - "id": 21078, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "785:19:64", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_6aeeaa77c7052b63789ef869d7bd36d10b5590c69f05d4dcaa0a9e7f6ef2a1cb", - "typeString": "literal_string \"Doesn't has value\"" - }, - "value": "Doesn't has value" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_6aeeaa77c7052b63789ef869d7bd36d10b5590c69f05d4dcaa0a9e7f6ef2a1cb", - "typeString": "literal_string \"Doesn't has value\"" - } - ], - "id": 21076, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 22341, - 22342 - ], - "referencedDeclaration": 22342, - "src": "767:7:64", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 21079, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "767:38:64", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 21080, - "nodeType": "ExpressionStatement", - "src": "767:38:64" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 21082, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21067, - "src": "823:5:64", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 21081, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "816:6:64", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_int256_$", - "typeString": "type(int256)" - }, - "typeName": "int256" - }, - "id": 21083, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "816:13:64", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "functionReturnParameters": 21065, - "id": 21084, - "nodeType": "Return", - "src": "809:20:64" - } - ] - }, - "documentation": "@dev returns the USD/BTC rate.\n\t * @return MoC medianizer rate", - "id": 21086, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "latestAnswer", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 21062, - "nodeType": "ParameterList", - "parameters": [], - "src": "657:2:64" - }, - "payable": false, - "returnParameters": { - "id": 21065, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 21064, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 21086, - "src": "683:6:64", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "typeName": { - "id": 21063, - "name": "int256", - "nodeType": "ElementaryTypeName", - "src": "683:6:64", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "682:8:64" - }, - "scope": 21122, - "src": "636:197:64", - "stateMutability": "view", - "superFunction": 22197, - "visibility": "external" - }, - { - "body": { - "id": 21093, - "nodeType": "Block", - "src": "1004:64:64", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 21091, - "name": "now", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22340, - "src": "1015:3:64", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 21090, - "id": 21092, - "nodeType": "Return", - "src": "1008:10:64" - } - ] - }, - "documentation": "@dev returns the USD/BTC update time.\n\t * @return always returns current block's timestamp", - "id": 21094, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "latestTimestamp", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 21087, - "nodeType": "ParameterList", - "parameters": [], - "src": "969:2:64" - }, - "payable": false, - "returnParameters": { - "id": 21090, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 21089, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 21094, - "src": "995:7:64", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 21088, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "995:7:64", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "994:9:64" - }, - "scope": 21122, - "src": "945:123:64", - "stateMutability": "view", - "superFunction": 22202, - "visibility": "external" - }, - { - "body": { - "id": 21120, - "nodeType": "Block", - "src": "1238:193:64", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 21106, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 21102, - "name": "_mocOracleAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21096, - "src": "1250:17:64", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 21104, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1279:1:64", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 21103, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1271:7:64", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 21105, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1271:10:64", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "1250:31:64", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "5f6d6f634f7261636c6541646472657373207368616c6c206e6f74206265207a65726f2061646472657373", - "id": 21107, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1283:45:64", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_8881b7310d0b350b9f057d0c80baa681dae8fbf3029db7243e9a5053a685e784", - "typeString": "literal_string \"_mocOracleAddress shall not be zero address\"" - }, - "value": "_mocOracleAddress shall not be zero address" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_8881b7310d0b350b9f057d0c80baa681dae8fbf3029db7243e9a5053a685e784", - "typeString": "literal_string \"_mocOracleAddress shall not be zero address\"" - } - ], - "id": 21101, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 22341, - 22342 - ], - "referencedDeclaration": 22342, - "src": "1242:7:64", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 21108, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1242:87:64", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 21109, - "nodeType": "ExpressionStatement", - "src": "1242:87:64" - }, - { - "expression": { - "argumentTypes": null, - "id": 21112, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 21110, - "name": "mocOracleAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21045, - "src": "1333:16:64", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 21111, - "name": "_mocOracleAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21096, - "src": "1352:17:64", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "1333:36:64", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 21113, - "nodeType": "ExpressionStatement", - "src": "1333:36:64" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 21115, - "name": "mocOracleAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21045, - "src": "1398:16:64", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 21116, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22338, - "src": "1416:3:64", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 21117, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1416:10:64", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 21114, - "name": "SetMoCOracleAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21051, - "src": "1378:19:64", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", - "typeString": "function (address,address)" - } - }, - "id": 21118, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1378:49:64", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 21119, - "nodeType": "EmitStatement", - "src": "1373:54:64" - } - ] - }, - "documentation": "@dev set MoC oracle address\n\t * @param _mocOracleAddress MoC oracle address", - "id": 21121, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 21099, - "modifierName": { - "argumentTypes": null, - "id": 21098, - "name": "ownerOnly", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21265, - "src": "1228:9:64", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "1228:9:64" - } - ], - "name": "setMoCOracleAddress", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 21097, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 21096, - "name": "_mocOracleAddress", - "nodeType": "VariableDeclaration", - "scope": 21121, - "src": "1194:25:64", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 21095, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1194:7:64", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1193:27:64" - }, - "payable": false, - "returnParameters": { - "id": 21100, - "nodeType": "ParameterList", - "parameters": [], - "src": "1238:0:64" - }, - "scope": 21122, - "src": "1165:266:64", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 21123, - "src": "178:1255:64" - } - ], - "src": "0:1434:64" - }, - "id": 64 - }, - "solidity/contracts/utility/MocUSDToBTCOracle.sol": { - "ast": { - "absolutePath": "solidity/contracts/utility/MocUSDToBTCOracle.sol", - "exportedSymbols": { - "Medianizer": [ - 21135 - ], - "MocUSDToBTCOracle": [ - 21234 - ] - }, - "id": 21235, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 21124, - "literals": [ - "solidity", - "0.4", - ".26" - ], - "nodeType": "PragmaDirective", - "src": "0:23:65" - }, - { - "absolutePath": "solidity/contracts/utility/interfaces/IConsumerPriceOracle.sol", - "file": "./interfaces/IConsumerPriceOracle.sol", - "id": 21125, - "nodeType": "ImportDirective", - "scope": 21235, - "sourceUnit": 22204, - "src": "25:47:65", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "solidity/contracts/utility/Owned.sol", - "file": "./Owned.sol", - "id": 21126, - "nodeType": "ImportDirective", - "scope": 21235, - "sourceUnit": 21325, - "src": "73:21:65", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "solidity/contracts/utility/SafeMath.sol", - "file": "./SafeMath.sol", - "id": 21127, - "nodeType": "ImportDirective", - "scope": 21235, - "sourceUnit": 21818, - "src": "95:24:65", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "interface", - "documentation": null, - "fullyImplemented": false, - "id": 21135, - "linearizedBaseContracts": [ - 21135 - ], - "name": "Medianizer", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": null, - "id": 21134, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "peek", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 21128, - "nodeType": "ParameterList", - "parameters": [], - "src": "158:2:65" - }, - "payable": false, - "returnParameters": { - "id": 21133, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 21130, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 21134, - "src": "184:7:65", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 21129, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "184:7:65", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 21132, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 21134, - "src": "193:4:65", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 21131, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "193:4:65", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "183:15:65" - }, - "scope": 21135, - "src": "145:54:65", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - } - ], - "scope": 21235, - "src": "121:80:65" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 21136, - "name": "IConsumerPriceOracle", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 22203, - "src": "233:20:65", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", - "typeString": "contract IConsumerPriceOracle" - } - }, - "id": 21137, - "nodeType": "InheritanceSpecifier", - "src": "233:20:65" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 21138, - "name": "Owned", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 21324, - "src": "255:5:65", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Owned_$21324", - "typeString": "contract Owned" - } - }, - "id": 21139, - "nodeType": "InheritanceSpecifier", - "src": "255:5:65" - } - ], - "contractDependencies": [ - 21324, - 22203, - 22247 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 21234, - "linearizedBaseContracts": [ - 21234, - 21324, - 22247, - 22203 - ], - "name": "MocUSDToBTCOracle", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 21142, - "libraryName": { - "contractScope": null, - "id": 21140, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 21817, - "src": "270:8:65", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$21817", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "264:27:65", - "typeName": { - "id": 21141, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "283:7:65", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "constant": true, - "id": 21147, - "name": "DECIMALS", - "nodeType": "VariableDeclaration", - "scope": 21234, - "src": "294:41:65", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 21143, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "294:7:65", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_rational_1000000000000000000_by_1", - "typeString": "int_const 1000000000000000000" - }, - "id": 21146, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "hexValue": "3130", - "id": 21144, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "329:2:65", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_10_by_1", - "typeString": "int_const 10" - }, - "value": "10" - }, - "nodeType": "BinaryOperation", - "operator": "**", - "rightExpression": { - "argumentTypes": null, - "hexValue": "3138", - "id": 21145, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "333:2:65", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_18_by_1", - "typeString": "int_const 18" - }, - "value": "18" - }, - "src": "329:6:65", - "typeDescriptions": { - "typeIdentifier": "t_rational_1000000000000000000_by_1", - "typeString": "int_const 1000000000000000000" - } - }, - "visibility": "public" - }, - { - "constant": false, - "id": 21149, - "name": "mocOracleAddress", - "nodeType": "VariableDeclaration", - "scope": 21234, - "src": "339:31:65", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 21148, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "339:7:65", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "public" - }, - { - "anonymous": false, - "documentation": null, - "id": 21155, - "name": "SetMoCOracleAddress", - "nodeType": "EventDefinition", - "parameters": { - "id": 21154, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 21151, - "indexed": true, - "name": "mocOracleAddress", - "nodeType": "VariableDeclaration", - "scope": 21155, - "src": "400:32:65", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 21150, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "400:7:65", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 21153, - "indexed": false, - "name": "changerAddress", - "nodeType": "VariableDeclaration", - "scope": 21155, - "src": "434:22:65", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 21152, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "434:7:65", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "399:58:65" - }, - "src": "374:84:65" - }, - { - "body": { - "id": 21164, - "nodeType": "Block", - "src": "606:46:65", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 21161, - "name": "_mocOracleAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21157, - "src": "630:17:65", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 21160, - "name": "setMoCOracleAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21233, - "src": "610:19:65", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 21162, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "610:38:65", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 21163, - "nodeType": "ExpressionStatement", - "src": "610:38:65" - } - ] - }, - "documentation": "@dev initializes a ne MoC oracle\n\t * @param _mocOracleAddress MoC oracle address", - "id": 21165, - "implemented": true, - "isConstructor": true, - "isDeclaredConst": false, - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 21158, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 21157, - "name": "_mocOracleAddress", - "nodeType": "VariableDeclaration", - "scope": 21165, - "src": "572:25:65", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 21156, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "572:7:65", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "571:27:65" - }, - "payable": false, - "returnParameters": { - "id": 21159, - "nodeType": "ParameterList", - "parameters": [], - "src": "606:0:65" - }, - "scope": 21234, - "src": "560:92:65", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 21197, - "nodeType": "Block", - "src": "804:180:65", - "statements": [ - { - "assignments": [ - 21171, - 21173 - ], - "declarations": [ - { - "constant": false, - "id": 21171, - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 21198, - "src": "809:13:65", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 21170, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "809:7:65", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 21173, - "name": "hasValue", - "nodeType": "VariableDeclaration", - "scope": 21198, - "src": "824:13:65", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 21172, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "824:4:65", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 21179, - "initialValue": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 21175, - "name": "mocOracleAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21149, - "src": "852:16:65", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 21174, - "name": "Medianizer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21135, - "src": "841:10:65", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Medianizer_$21135_$", - "typeString": "type(contract Medianizer)" - } - }, - "id": 21176, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "841:28:65", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Medianizer_$21135", - "typeString": "contract Medianizer" - } - }, - "id": 21177, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "peek", - "nodeType": "MemberAccess", - "referencedDeclaration": 21134, - "src": "841:33:65", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_bytes32_$_t_bool_$", - "typeString": "function () view external returns (bytes32,bool)" - } - }, - "id": 21178, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "841:35:65", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bytes32_$_t_bool_$", - "typeString": "tuple(bytes32,bool)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "808:68:65" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 21181, - "name": "hasValue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21173, - "src": "888:8:65", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "446f65736e2774206861732076616c7565", - "id": 21182, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "898:19:65", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_6aeeaa77c7052b63789ef869d7bd36d10b5590c69f05d4dcaa0a9e7f6ef2a1cb", - "typeString": "literal_string \"Doesn't has value\"" - }, - "value": "Doesn't has value" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_6aeeaa77c7052b63789ef869d7bd36d10b5590c69f05d4dcaa0a9e7f6ef2a1cb", - "typeString": "literal_string \"Doesn't has value\"" - } - ], - "id": 21180, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 22341, - 22342 - ], - "referencedDeclaration": 22342, - "src": "880:7:65", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 21183, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "880:38:65", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 21184, - "nodeType": "ExpressionStatement", - "src": "880:38:65" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 21193, - "name": "DECIMALS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21147, - "src": "970:8:65", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 21189, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21171, - "src": "958:5:65", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 21188, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "950:7:65", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": "uint256" - }, - "id": 21190, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "950:14:65", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 21186, - "name": "DECIMALS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21147, - "src": "937:8:65", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 21187, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "div", - "nodeType": "MemberAccess", - "referencedDeclaration": 21816, - "src": "937:12:65", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 21191, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "937:28:65", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 21192, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 21791, - "src": "937:32:65", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 21194, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "937:42:65", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 21185, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "930:6:65", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_int256_$", - "typeString": "type(int256)" - }, - "typeName": "int256" - }, - "id": 21195, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "930:50:65", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "functionReturnParameters": 21169, - "id": 21196, - "nodeType": "Return", - "src": "923:57:65" - } - ] - }, - "documentation": "@dev returns the USD/BTC rate.\n\t * @return always returns the rate of 10000", - "id": 21198, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "latestAnswer", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 21166, - "nodeType": "ParameterList", - "parameters": [], - "src": "770:2:65" - }, - "payable": false, - "returnParameters": { - "id": 21169, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 21168, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 21198, - "src": "796:6:65", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "typeName": { - "id": 21167, - "name": "int256", - "nodeType": "ElementaryTypeName", - "src": "796:6:65", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "795:8:65" - }, - "scope": 21234, - "src": "749:235:65", - "stateMutability": "view", - "superFunction": 22197, - "visibility": "external" - }, - { - "body": { - "id": 21205, - "nodeType": "Block", - "src": "1155:64:65", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 21203, - "name": "now", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22340, - "src": "1166:3:65", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 21202, - "id": 21204, - "nodeType": "Return", - "src": "1159:10:65" - } - ] - }, - "documentation": "@dev returns the USD/BTC update time.\n\t * @return always returns current block's timestamp", - "id": 21206, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "latestTimestamp", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 21199, - "nodeType": "ParameterList", - "parameters": [], - "src": "1120:2:65" - }, - "payable": false, - "returnParameters": { - "id": 21202, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 21201, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 21206, - "src": "1146:7:65", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 21200, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1146:7:65", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1145:9:65" - }, - "scope": 21234, - "src": "1096:123:65", - "stateMutability": "view", - "superFunction": 22202, - "visibility": "external" - }, - { - "body": { - "id": 21232, - "nodeType": "Block", - "src": "1389:193:65", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 21218, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 21214, - "name": "_mocOracleAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21208, - "src": "1401:17:65", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 21216, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1430:1:65", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 21215, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1422:7:65", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 21217, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1422:10:65", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "1401:31:65", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "5f6d6f634f7261636c6541646472657373207368616c6c206e6f74206265207a65726f2061646472657373", - "id": 21219, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1434:45:65", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_8881b7310d0b350b9f057d0c80baa681dae8fbf3029db7243e9a5053a685e784", - "typeString": "literal_string \"_mocOracleAddress shall not be zero address\"" - }, - "value": "_mocOracleAddress shall not be zero address" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_8881b7310d0b350b9f057d0c80baa681dae8fbf3029db7243e9a5053a685e784", - "typeString": "literal_string \"_mocOracleAddress shall not be zero address\"" - } - ], - "id": 21213, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 22341, - 22342 - ], - "referencedDeclaration": 22342, - "src": "1393:7:65", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 21220, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1393:87:65", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 21221, - "nodeType": "ExpressionStatement", - "src": "1393:87:65" - }, - { - "expression": { - "argumentTypes": null, - "id": 21224, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 21222, - "name": "mocOracleAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21149, - "src": "1484:16:65", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 21223, - "name": "_mocOracleAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21208, - "src": "1503:17:65", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "1484:36:65", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 21225, - "nodeType": "ExpressionStatement", - "src": "1484:36:65" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 21227, - "name": "mocOracleAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21149, - "src": "1549:16:65", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 21228, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22338, - "src": "1567:3:65", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 21229, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1567:10:65", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 21226, - "name": "SetMoCOracleAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21155, - "src": "1529:19:65", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", - "typeString": "function (address,address)" - } - }, - "id": 21230, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1529:49:65", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 21231, - "nodeType": "EmitStatement", - "src": "1524:54:65" - } - ] - }, - "documentation": "@dev set MoC oracle address\n\t * @param _mocOracleAddress MoC oracle address", - "id": 21233, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 21211, - "modifierName": { - "argumentTypes": null, - "id": 21210, - "name": "ownerOnly", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21265, - "src": "1379:9:65", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "1379:9:65" - } - ], - "name": "setMoCOracleAddress", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 21209, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 21208, - "name": "_mocOracleAddress", - "nodeType": "VariableDeclaration", - "scope": 21233, - "src": "1345:25:65", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 21207, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1345:7:65", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1344:27:65" - }, - "payable": false, - "returnParameters": { - "id": 21212, - "nodeType": "ParameterList", - "parameters": [], - "src": "1389:0:65" - }, - "scope": 21234, - "src": "1316:266:65", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 21235, - "src": "203:1381:65" - } - ], - "src": "0:1585:65" - }, - "id": 65 - }, - "solidity/contracts/utility/Owned.sol": { - "ast": { - "absolutePath": "solidity/contracts/utility/Owned.sol", - "exportedSymbols": { - "Owned": [ - 21324 - ] - }, - "id": 21325, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 21236, - "literals": [ - "solidity", - "0.4", - ".26" - ], - "nodeType": "PragmaDirective", - "src": "0:23:66" - }, - { - "absolutePath": "solidity/contracts/utility/interfaces/IOwned.sol", - "file": "./interfaces/IOwned.sol", - "id": 21237, - "nodeType": "ImportDirective", - "scope": 21325, - "sourceUnit": 22248, - "src": "24:33:66", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 21238, - "name": "IOwned", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 22247, - "src": "147:6:66", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IOwned_$22247", - "typeString": "contract IOwned" - } - }, - "id": 21239, - "nodeType": "InheritanceSpecifier", - "src": "147:6:66" - } - ], - "contractDependencies": [ - 22247 - ], - "contractKind": "contract", - "documentation": "@dev Provides support and utilities for contract ownership", - "fullyImplemented": true, - "id": 21324, - "linearizedBaseContracts": [ - 21324, - 22247 - ], - "name": "Owned", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 21241, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 21324, - "src": "157:20:66", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 21240, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "157:7:66", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 21243, - "name": "newOwner", - "nodeType": "VariableDeclaration", - "scope": 21324, - "src": "180:23:66", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 21242, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "180:7:66", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "public" - }, - { - "anonymous": false, - "documentation": "@dev triggered when the owner is updated\n\t * @param _prevOwner previous owner\n@param _newOwner new owner", - "id": 21249, - "name": "OwnerUpdate", - "nodeType": "EventDefinition", - "parameters": { - "id": 21248, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 21245, - "indexed": true, - "name": "_prevOwner", - "nodeType": "VariableDeclaration", - "scope": 21249, - "src": "353:26:66", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 21244, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "353:7:66", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 21247, - "indexed": true, - "name": "_newOwner", - "nodeType": "VariableDeclaration", - "scope": 21249, - "src": "381:25:66", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 21246, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "381:7:66", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "352:55:66" - }, - "src": "335:73:66" - }, - { - "body": { - "id": 21257, - "nodeType": "Block", - "src": "484:26:66", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 21255, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 21252, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 21241 - ], - "referencedDeclaration": 21241, - "src": "488:5:66", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 21253, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22338, - "src": "496:3:66", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 21254, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "496:10:66", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "488:18:66", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 21256, - "nodeType": "ExpressionStatement", - "src": "488:18:66" - } - ] - }, - "documentation": "@dev initializes a new Owned instance", - "id": 21258, - "implemented": true, - "isConstructor": true, - "isDeclaredConst": false, - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 21250, - "nodeType": "ParameterList", - "parameters": [], - "src": "474:2:66" - }, - "payable": false, - "returnParameters": { - "id": 21251, - "nodeType": "ParameterList", - "parameters": [], - "src": "484:0:66" - }, - "scope": 21324, - "src": "463:47:66", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 21264, - "nodeType": "Block", - "src": "571:25:66", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 21260, - "name": "_ownerOnly", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21277, - "src": "575:10:66", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$__$", - "typeString": "function () view" - } - }, - "id": 21261, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "575:12:66", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 21262, - "nodeType": "ExpressionStatement", - "src": "575:12:66" - }, - { - "id": 21263, - "nodeType": "PlaceholderStatement", - "src": "591:1:66" - } - ] - }, - "documentation": null, - "id": 21265, - "name": "ownerOnly", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 21259, - "nodeType": "ParameterList", - "parameters": [], - "src": "571:0:66" - }, - "src": "552:44:66", - "visibility": "internal" - }, - { - "body": { - "id": 21276, - "nodeType": "Block", - "src": "678:57:66", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 21272, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 21269, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22338, - "src": "690:3:66", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 21270, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "690:10:66", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 21271, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 21241 - ], - "referencedDeclaration": 21241, - "src": "704:5:66", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "690:19:66", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552525f4143434553535f44454e494544", - "id": 21273, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "711:19:66", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_f5894269650d3e1726ed81a4f48c5b62c7dd6fa025b89d639952a7012960d666", - "typeString": "literal_string \"ERR_ACCESS_DENIED\"" - }, - "value": "ERR_ACCESS_DENIED" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_f5894269650d3e1726ed81a4f48c5b62c7dd6fa025b89d639952a7012960d666", - "typeString": "literal_string \"ERR_ACCESS_DENIED\"" - } - ], - "id": 21268, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 22341, - 22342 - ], - "referencedDeclaration": 22342, - "src": "682:7:66", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 21274, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "682:49:66", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 21275, - "nodeType": "ExpressionStatement", - "src": "682:49:66" - } - ] - }, - "documentation": null, - "id": 21277, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "_ownerOnly", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 21266, - "nodeType": "ParameterList", - "parameters": [], - "src": "661:2:66" - }, - "payable": false, - "returnParameters": { - "id": 21267, - "nodeType": "ParameterList", - "parameters": [], - "src": "678:0:66" - }, - "scope": 21324, - "src": "642:93:66", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 21295, - "nodeType": "Block", - "src": "1008:77:66", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 21287, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 21285, - "name": "_newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21279, - "src": "1020:9:66", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 21286, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 21241 - ], - "referencedDeclaration": 21241, - "src": "1033:5:66", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "1020:18:66", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552525f53414d455f4f574e4552", - "id": 21288, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1040:16:66", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_3fd4538e1d572c08b9fe188370db4ccb2fa173c576dfdb888a76c86a53b83133", - "typeString": "literal_string \"ERR_SAME_OWNER\"" - }, - "value": "ERR_SAME_OWNER" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_3fd4538e1d572c08b9fe188370db4ccb2fa173c576dfdb888a76c86a53b83133", - "typeString": "literal_string \"ERR_SAME_OWNER\"" - } - ], - "id": 21284, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 22341, - 22342 - ], - "referencedDeclaration": 22342, - "src": "1012:7:66", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 21289, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1012:45:66", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 21290, - "nodeType": "ExpressionStatement", - "src": "1012:45:66" - }, - { - "expression": { - "argumentTypes": null, - "id": 21293, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 21291, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21243, - "src": "1061:8:66", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 21292, - "name": "_newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21279, - "src": "1072:9:66", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "1061:20:66", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 21294, - "nodeType": "ExpressionStatement", - "src": "1061:20:66" - } - ] - }, - "documentation": "@dev allows transferring the contract ownership\nthe new owner still needs to accept the transfer\ncan only be called by the contract owner\n\t * @param _newOwner new contract owner", - "id": 21296, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 21282, - "modifierName": { - "argumentTypes": null, - "id": 21281, - "name": "ownerOnly", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21265, - "src": "998:9:66", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "998:9:66" - } - ], - "name": "transferOwnership", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 21280, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 21279, - "name": "_newOwner", - "nodeType": "VariableDeclaration", - "scope": 21296, - "src": "972:17:66", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 21278, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "972:7:66", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "971:19:66" - }, - "payable": false, - "returnParameters": { - "id": 21283, - "nodeType": "ParameterList", - "parameters": [], - "src": "1008:0:66" - }, - "scope": 21324, - "src": "945:140:66", - "stateMutability": "nonpayable", - "superFunction": 22243, - "visibility": "public" - }, - { - "body": { - "id": 21322, - "nodeType": "Block", - "src": "1193:142:66", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 21303, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 21300, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22338, - "src": "1205:3:66", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 21301, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1205:10:66", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 21302, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21243, - "src": "1219:8:66", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "1205:22:66", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552525f4143434553535f44454e494544", - "id": 21304, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1229:19:66", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_f5894269650d3e1726ed81a4f48c5b62c7dd6fa025b89d639952a7012960d666", - "typeString": "literal_string \"ERR_ACCESS_DENIED\"" - }, - "value": "ERR_ACCESS_DENIED" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_f5894269650d3e1726ed81a4f48c5b62c7dd6fa025b89d639952a7012960d666", - "typeString": "literal_string \"ERR_ACCESS_DENIED\"" - } - ], - "id": 21299, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 22341, - 22342 - ], - "referencedDeclaration": 22342, - "src": "1197:7:66", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 21305, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1197:52:66", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 21306, - "nodeType": "ExpressionStatement", - "src": "1197:52:66" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 21308, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 21241 - ], - "referencedDeclaration": 21241, - "src": "1270:5:66", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 21309, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21243, - "src": "1277:8:66", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 21307, - "name": "OwnerUpdate", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21249, - "src": "1258:11:66", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", - "typeString": "function (address,address)" - } - }, - "id": 21310, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1258:28:66", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 21311, - "nodeType": "EmitStatement", - "src": "1253:33:66" - }, - { - "expression": { - "argumentTypes": null, - "id": 21314, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 21312, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 21241 - ], - "referencedDeclaration": 21241, - "src": "1290:5:66", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 21313, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21243, - "src": "1298:8:66", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "1290:16:66", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 21315, - "nodeType": "ExpressionStatement", - "src": "1290:16:66" - }, - { - "expression": { - "argumentTypes": null, - "id": 21320, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 21316, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21243, - "src": "1310:8:66", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 21318, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1329:1:66", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 21317, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1321:7:66", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 21319, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1321:10:66", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "1310:21:66", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 21321, - "nodeType": "ExpressionStatement", - "src": "1310:21:66" - } - ] - }, - "documentation": "@dev used by a new owner to accept an ownership transfer", - "id": 21323, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "acceptOwnership", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 21297, - "nodeType": "ParameterList", - "parameters": [], - "src": "1183:2:66" - }, - "payable": false, - "returnParameters": { - "id": 21298, - "nodeType": "ParameterList", - "parameters": [], - "src": "1193:0:66" - }, - "scope": 21324, - "src": "1159:176:66", - "stateMutability": "nonpayable", - "superFunction": 22246, - "visibility": "public" - } - ], - "scope": 21325, - "src": "129:1208:66" - } - ], - "src": "0:1338:66" - }, - "id": 66 - }, - "solidity/contracts/utility/PriceOracle.sol": { - "ast": { - "absolutePath": "solidity/contracts/utility/PriceOracle.sol", - "exportedSymbols": { - "PriceOracle": [ - 21668 - ] - }, - "id": 21669, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 21326, - "literals": [ - "solidity", - "0.4", - ".26" - ], - "nodeType": "PragmaDirective", - "src": "0:23:67" - }, - { - "absolutePath": "solidity/contracts/utility/Utils.sol", - "file": "./Utils.sol", - "id": 21327, - "nodeType": "ImportDirective", - "scope": 21669, - "sourceUnit": 22053, - "src": "24:21:67", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "solidity/contracts/utility/SafeMath.sol", - "file": "./SafeMath.sol", - "id": 21328, - "nodeType": "ImportDirective", - "scope": 21669, - "sourceUnit": 21818, - "src": "46:24:67", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "solidity/contracts/utility/interfaces/IPriceOracle.sol", - "file": "./interfaces/IPriceOracle.sol", - "id": 21329, - "nodeType": "ImportDirective", - "scope": 21669, - "sourceUnit": 22298, - "src": "71:39:67", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "solidity/contracts/utility/interfaces/IConsumerPriceOracle.sol", - "file": "./interfaces/IConsumerPriceOracle.sol", - "id": 21330, - "nodeType": "ImportDirective", - "scope": 21669, - "sourceUnit": 22204, - "src": "111:47:67", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 21331, - "name": "IPriceOracle", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 22297, - "src": "474:12:67", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IPriceOracle_$22297", - "typeString": "contract IPriceOracle" - } - }, - "id": 21332, - "nodeType": "InheritanceSpecifier", - "src": "474:12:67" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 21333, - "name": "Utils", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 22052, - "src": "488:5:67", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Utils_$22052", - "typeString": "contract Utils" - } - }, - "id": 21334, - "nodeType": "InheritanceSpecifier", - "src": "488:5:67" - } - ], - "contractDependencies": [ - 22052, - 22297 - ], - "contractKind": "contract", - "documentation": "@dev Provides the off-chain rate between two tokens\n * The price oracle uses chainlink oracles internally to get the rates of the two tokens\nwith respect to a common denominator, and then returns the rate between them, which\nis equivalent to the rate of TokenA / TokenB", - "fullyImplemented": true, - "id": 21668, - "linearizedBaseContracts": [ - 21668, - 22052, - 22297 - ], - "name": "PriceOracle", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 21337, - "libraryName": { - "contractScope": null, - "id": 21335, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 21817, - "src": "503:8:67", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$21817", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "497:27:67", - "typeName": { - "id": 21336, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "516:7:67", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "constant": true, - "id": 21340, - "name": "ETH_ADDRESS", - "nodeType": "VariableDeclaration", - "scope": 21668, - "src": "527:81:67", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 21338, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "527:7:67", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "307845656565654565656545654565654565456545656545454565656565456565656565656545456545", - "id": 21339, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "566:42:67", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "value": "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE" - }, - "visibility": "private" - }, - { - "constant": true, - "id": 21343, - "name": "ETH_DECIMALS", - "nodeType": "VariableDeclaration", - "scope": 21668, - "src": "611:40:67", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 21341, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "611:5:67", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "3138", - "id": 21342, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "649:2:67", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_18_by_1", - "typeString": "int_const 18" - }, - "value": "18" - }, - "visibility": "private" - }, - { - "constant": false, - "id": 21345, - "name": "tokenA", - "nodeType": "VariableDeclaration", - "scope": 21668, - "src": "655:25:67", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - "typeName": { - "contractScope": null, - "id": 21344, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "655:11:67", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 21347, - "name": "tokenB", - "nodeType": "VariableDeclaration", - "scope": 21668, - "src": "714:25:67", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - "typeName": { - "contractScope": null, - "id": 21346, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "714:11:67", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 21351, - "name": "tokenDecimals", - "nodeType": "VariableDeclaration", - "scope": 21668, - "src": "773:46:67", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint8_$", - "typeString": "mapping(address => uint8)" - }, - "typeName": { - "id": 21350, - "keyType": { - "id": 21348, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "781:7:67", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "773:25:67", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint8_$", - "typeString": "mapping(address => uint8)" - }, - "valueType": { - "id": 21349, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "792:5:67", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 21353, - "name": "tokenAOracle", - "nodeType": "VariableDeclaration", - "scope": 21668, - "src": "850:40:67", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", - "typeString": "contract IConsumerPriceOracle" - }, - "typeName": { - "contractScope": null, - "id": 21352, - "name": "IConsumerPriceOracle", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 22203, - "src": "850:20:67", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", - "typeString": "contract IConsumerPriceOracle" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 21355, - "name": "tokenBOracle", - "nodeType": "VariableDeclaration", - "scope": 21668, - "src": "927:40:67", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", - "typeString": "contract IConsumerPriceOracle" - }, - "typeName": { - "contractScope": null, - "id": 21354, - "name": "IConsumerPriceOracle", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 22203, - "src": "927:20:67", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", - "typeString": "contract IConsumerPriceOracle" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 21359, - "name": "tokensToOracles", - "nodeType": "VariableDeclaration", - "scope": 21668, - "src": "1004:63:67", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_contract$_IConsumerPriceOracle_$22203_$", - "typeString": "mapping(address => contract IConsumerPriceOracle)" - }, - "typeName": { - "id": 21358, - "keyType": { - "id": 21356, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1012:7:67", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "1004:40:67", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_contract$_IConsumerPriceOracle_$22203_$", - "typeString": "mapping(address => contract IConsumerPriceOracle)" - }, - "valueType": { - "contractScope": null, - "id": 21357, - "name": "IConsumerPriceOracle", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 22203, - "src": "1023:20:67", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", - "typeString": "contract IConsumerPriceOracle" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "body": { - "id": 21422, - "nodeType": "Block", - "src": "1700:289:67", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 21380, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 21378, - "name": "tokenA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21345, - "src": "1704:6:67", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 21379, - "name": "_tokenA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21361, - "src": "1713:7:67", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "src": "1704:16:67", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "id": 21381, - "nodeType": "ExpressionStatement", - "src": "1704:16:67" - }, - { - "expression": { - "argumentTypes": null, - "id": 21384, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 21382, - "name": "tokenB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21347, - "src": "1724:6:67", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 21383, - "name": "_tokenB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21363, - "src": "1733:7:67", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "src": "1724:16:67", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "id": 21385, - "nodeType": "ExpressionStatement", - "src": "1724:16:67" - }, - { - "expression": { - "argumentTypes": null, - "id": 21392, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 21386, - "name": "tokenDecimals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21351, - "src": "1744:13:67", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint8_$", - "typeString": "mapping(address => uint8)" - } - }, - "id": 21388, - "indexExpression": { - "argumentTypes": null, - "id": 21387, - "name": "_tokenA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21361, - "src": "1758:7:67", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "1744:22:67", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 21390, - "name": "_tokenA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21361, - "src": "1778:7:67", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - ], - "id": 21389, - "name": "decimals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21667, - "src": "1769:8:67", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_contract$_IERC20Token_$20240_$returns$_t_uint8_$", - "typeString": "function (contract IERC20Token) view returns (uint8)" - } - }, - "id": 21391, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1769:17:67", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "1744:42:67", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "id": 21393, - "nodeType": "ExpressionStatement", - "src": "1744:42:67" - }, - { - "expression": { - "argumentTypes": null, - "id": 21400, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 21394, - "name": "tokenDecimals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21351, - "src": "1790:13:67", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint8_$", - "typeString": "mapping(address => uint8)" - } - }, - "id": 21396, - "indexExpression": { - "argumentTypes": null, - "id": 21395, - "name": "_tokenB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21363, - "src": "1804:7:67", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "1790:22:67", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 21398, - "name": "_tokenB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21363, - "src": "1824:7:67", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - ], - "id": 21397, - "name": "decimals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21667, - "src": "1815:8:67", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_contract$_IERC20Token_$20240_$returns$_t_uint8_$", - "typeString": "function (contract IERC20Token) view returns (uint8)" - } - }, - "id": 21399, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1815:17:67", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "1790:42:67", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "id": 21401, - "nodeType": "ExpressionStatement", - "src": "1790:42:67" - }, - { - "expression": { - "argumentTypes": null, - "id": 21404, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 21402, - "name": "tokenAOracle", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 21353 - ], - "referencedDeclaration": 21353, - "src": "1837:12:67", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", - "typeString": "contract IConsumerPriceOracle" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 21403, - "name": "_tokenAOracle", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21365, - "src": "1852:13:67", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", - "typeString": "contract IConsumerPriceOracle" - } - }, - "src": "1837:28:67", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", - "typeString": "contract IConsumerPriceOracle" - } - }, - "id": 21405, - "nodeType": "ExpressionStatement", - "src": "1837:28:67" - }, - { - "expression": { - "argumentTypes": null, - "id": 21408, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 21406, - "name": "tokenBOracle", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 21355 - ], - "referencedDeclaration": 21355, - "src": "1869:12:67", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", - "typeString": "contract IConsumerPriceOracle" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 21407, - "name": "_tokenBOracle", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21367, - "src": "1884:13:67", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", - "typeString": "contract IConsumerPriceOracle" - } - }, - "src": "1869:28:67", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", - "typeString": "contract IConsumerPriceOracle" - } - }, - "id": 21409, - "nodeType": "ExpressionStatement", - "src": "1869:28:67" - }, - { - "expression": { - "argumentTypes": null, - "id": 21414, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 21410, - "name": "tokensToOracles", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21359, - "src": "1901:15:67", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_contract$_IConsumerPriceOracle_$22203_$", - "typeString": "mapping(address => contract IConsumerPriceOracle)" - } - }, - "id": 21412, - "indexExpression": { - "argumentTypes": null, - "id": 21411, - "name": "_tokenA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21361, - "src": "1917:7:67", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "1901:24:67", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", - "typeString": "contract IConsumerPriceOracle" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 21413, - "name": "_tokenAOracle", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21365, - "src": "1928:13:67", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", - "typeString": "contract IConsumerPriceOracle" - } - }, - "src": "1901:40:67", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", - "typeString": "contract IConsumerPriceOracle" - } - }, - "id": 21415, - "nodeType": "ExpressionStatement", - "src": "1901:40:67" - }, - { - "expression": { - "argumentTypes": null, - "id": 21420, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 21416, - "name": "tokensToOracles", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21359, - "src": "1945:15:67", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_contract$_IConsumerPriceOracle_$22203_$", - "typeString": "mapping(address => contract IConsumerPriceOracle)" - } - }, - "id": 21418, - "indexExpression": { - "argumentTypes": null, - "id": 21417, - "name": "_tokenB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21363, - "src": "1961:7:67", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "1945:24:67", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", - "typeString": "contract IConsumerPriceOracle" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 21419, - "name": "_tokenBOracle", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21367, - "src": "1972:13:67", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", - "typeString": "contract IConsumerPriceOracle" - } - }, - "src": "1945:40:67", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", - "typeString": "contract IConsumerPriceOracle" - } - }, - "id": 21421, - "nodeType": "ExpressionStatement", - "src": "1945:40:67" - } - ] - }, - "documentation": "@dev initializes a new PriceOracle instance\nnote that the oracles must have the same common denominator (USD, ETH etc.)\n\t * @param _tokenA first token to support\n@param _tokenB second token to support\n@param _tokenAOracle first token price oracle\n@param _tokenBOracle second token price oracle", - "id": 21423, - "implemented": true, - "isConstructor": true, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 21370, - "name": "_tokenA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21361, - "src": "1631:7:67", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - { - "argumentTypes": null, - "id": 21371, - "name": "_tokenB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21363, - "src": "1640:7:67", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - } - ], - "id": 21372, - "modifierName": { - "argumentTypes": null, - "id": 21369, - "name": "validUniqueAddresses", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21436, - "src": "1610:20:67", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$_t_address_$", - "typeString": "modifier (address,address)" - } - }, - "nodeType": "ModifierInvocation", - "src": "1610:38:67" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 21374, - "name": "_tokenAOracle", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21365, - "src": "1670:13:67", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", - "typeString": "contract IConsumerPriceOracle" - } - }, - { - "argumentTypes": null, - "id": 21375, - "name": "_tokenBOracle", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21367, - "src": "1685:13:67", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", - "typeString": "contract IConsumerPriceOracle" - } - } - ], - "id": 21376, - "modifierName": { - "argumentTypes": null, - "id": 21373, - "name": "validUniqueAddresses", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21436, - "src": "1649:20:67", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$_t_address_$", - "typeString": "modifier (address,address)" - } - }, - "nodeType": "ModifierInvocation", - "src": "1649:50:67" - } - ], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 21368, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 21361, - "name": "_tokenA", - "nodeType": "VariableDeclaration", - "scope": 21423, - "src": "1481:19:67", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - "typeName": { - "contractScope": null, - "id": 21360, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "1481:11:67", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 21363, - "name": "_tokenB", - "nodeType": "VariableDeclaration", - "scope": 21423, - "src": "1504:19:67", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - "typeName": { - "contractScope": null, - "id": 21362, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "1504:11:67", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 21365, - "name": "_tokenAOracle", - "nodeType": "VariableDeclaration", - "scope": 21423, - "src": "1527:34:67", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", - "typeString": "contract IConsumerPriceOracle" - }, - "typeName": { - "contractScope": null, - "id": 21364, - "name": "IConsumerPriceOracle", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 22203, - "src": "1527:20:67", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", - "typeString": "contract IConsumerPriceOracle" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 21367, - "name": "_tokenBOracle", - "nodeType": "VariableDeclaration", - "scope": 21423, - "src": "1565:34:67", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", - "typeString": "contract IConsumerPriceOracle" - }, - "typeName": { - "contractScope": null, - "id": 21366, - "name": "IConsumerPriceOracle", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 22203, - "src": "1565:20:67", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", - "typeString": "contract IConsumerPriceOracle" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1477:125:67" - }, - "payable": false, - "returnParameters": { - "id": 21377, - "nodeType": "ParameterList", - "parameters": [], - "src": "1700:0:67" - }, - "scope": 21668, - "src": "1466:523:67", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 21435, - "nodeType": "Block", - "src": "2117:56:67", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 21430, - "name": "_address1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21425, - "src": "2143:9:67", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 21431, - "name": "_address2", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21427, - "src": "2154:9:67", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 21429, - "name": "_validUniqueAddresses", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21459, - "src": "2121:21:67", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_address_$_t_address_$returns$__$", - "typeString": "function (address,address) pure" - } - }, - "id": 21432, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2121:43:67", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 21433, - "nodeType": "ExpressionStatement", - "src": "2121:43:67" - }, - { - "id": 21434, - "nodeType": "PlaceholderStatement", - "src": "2168:1:67" - } - ] - }, - "documentation": null, - "id": 21436, - "name": "validUniqueAddresses", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 21428, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 21425, - "name": "_address1", - "nodeType": "VariableDeclaration", - "scope": 21436, - "src": "2079:17:67", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 21424, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2079:7:67", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 21427, - "name": "_address2", - "nodeType": "VariableDeclaration", - "scope": 21436, - "src": "2098:17:67", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 21426, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2098:7:67", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2078:38:67" - }, - "src": "2049:124:67", - "visibility": "internal" - }, - { - "body": { - "id": 21458, - "nodeType": "Block", - "src": "2302:115:67", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 21444, - "name": "_address1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21438, - "src": "2320:9:67", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 21443, - "name": "_validAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22026, - "src": "2306:13:67", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_address_$returns$__$", - "typeString": "function (address) pure" - } - }, - "id": 21445, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2306:24:67", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 21446, - "nodeType": "ExpressionStatement", - "src": "2306:24:67" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 21448, - "name": "_address2", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21440, - "src": "2348:9:67", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 21447, - "name": "_validAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22026, - "src": "2334:13:67", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_address_$returns$__$", - "typeString": "function (address) pure" - } - }, - "id": 21449, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2334:24:67", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 21450, - "nodeType": "ExpressionStatement", - "src": "2334:24:67" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 21454, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 21452, - "name": "_address1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21438, - "src": "2370:9:67", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 21453, - "name": "_address2", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21440, - "src": "2383:9:67", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2370:22:67", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552525f53414d455f41444452455353", - "id": 21455, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2394:18:67", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_f8a367a12797014b9e2f1d71cd920760e1c54a6511a9a16d5ab22fb4d28800b6", - "typeString": "literal_string \"ERR_SAME_ADDRESS\"" - }, - "value": "ERR_SAME_ADDRESS" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_f8a367a12797014b9e2f1d71cd920760e1c54a6511a9a16d5ab22fb4d28800b6", - "typeString": "literal_string \"ERR_SAME_ADDRESS\"" - } - ], - "id": 21451, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 22341, - 22342 - ], - "referencedDeclaration": 22342, - "src": "2362:7:67", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 21456, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2362:51:67", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 21457, - "nodeType": "ExpressionStatement", - "src": "2362:51:67" - } - ] - }, - "documentation": null, - "id": 21459, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "_validUniqueAddresses", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 21441, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 21438, - "name": "_address1", - "nodeType": "VariableDeclaration", - "scope": 21459, - "src": "2250:17:67", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 21437, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2250:7:67", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 21440, - "name": "_address2", - "nodeType": "VariableDeclaration", - "scope": 21459, - "src": "2269:17:67", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 21439, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2269:7:67", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2249:38:67" - }, - "payable": false, - "returnParameters": { - "id": 21442, - "nodeType": "ParameterList", - "parameters": [], - "src": "2302:0:67" - }, - "scope": 21668, - "src": "2219:198:67", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 21471, - "nodeType": "Block", - "src": "2552:47:67", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 21466, - "name": "_tokenA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21461, - "src": "2573:7:67", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - { - "argumentTypes": null, - "id": 21467, - "name": "_tokenB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21463, - "src": "2582:7:67", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - ], - "id": 21465, - "name": "_supportedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21504, - "src": "2556:16:67", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_contract$_IERC20Token_$20240_$_t_contract$_IERC20Token_$20240_$returns$__$", - "typeString": "function (contract IERC20Token,contract IERC20Token) view" - } - }, - "id": 21468, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2556:34:67", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 21469, - "nodeType": "ExpressionStatement", - "src": "2556:34:67" - }, - { - "id": 21470, - "nodeType": "PlaceholderStatement", - "src": "2594:1:67" - } - ] - }, - "documentation": null, - "id": 21472, - "name": "supportedTokens", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 21464, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 21461, - "name": "_tokenA", - "nodeType": "VariableDeclaration", - "scope": 21472, - "src": "2510:19:67", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - "typeName": { - "contractScope": null, - "id": 21460, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "2510:11:67", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 21463, - "name": "_tokenB", - "nodeType": "VariableDeclaration", - "scope": 21472, - "src": "2531:19:67", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - "typeName": { - "contractScope": null, - "id": 21462, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "2531:11:67", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2509:42:67" - }, - "src": "2485:114:67", - "visibility": "internal" - }, - { - "body": { - "id": 21503, - "nodeType": "Block", - "src": "2727:165:67", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 21480, - "name": "_tokenA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21474, - "src": "2753:7:67", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - { - "argumentTypes": null, - "id": 21481, - "name": "_tokenB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21476, - "src": "2762:7:67", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - ], - "id": 21479, - "name": "_validUniqueAddresses", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21459, - "src": "2731:21:67", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_address_$_t_address_$returns$__$", - "typeString": "function (address,address) pure" - } - }, - "id": 21482, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2731:39:67", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 21483, - "nodeType": "ExpressionStatement", - "src": "2731:39:67" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 21499, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 21491, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 21485, - "name": "tokensToOracles", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21359, - "src": "2782:15:67", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_contract$_IConsumerPriceOracle_$22203_$", - "typeString": "mapping(address => contract IConsumerPriceOracle)" - } - }, - "id": 21487, - "indexExpression": { - "argumentTypes": null, - "id": 21486, - "name": "_tokenA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21474, - "src": "2798:7:67", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2782:24:67", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", - "typeString": "contract IConsumerPriceOracle" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 21489, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2818:1:67", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 21488, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2810:7:67", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 21490, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2810:10:67", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2782:38:67", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 21498, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 21492, - "name": "tokensToOracles", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21359, - "src": "2824:15:67", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_contract$_IConsumerPriceOracle_$22203_$", - "typeString": "mapping(address => contract IConsumerPriceOracle)" - } - }, - "id": 21494, - "indexExpression": { - "argumentTypes": null, - "id": 21493, - "name": "_tokenB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21476, - "src": "2840:7:67", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2824:24:67", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", - "typeString": "contract IConsumerPriceOracle" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 21496, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2860:1:67", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 21495, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2852:7:67", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 21497, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2852:10:67", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2824:38:67", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "2782:80:67", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552525f554e535550504f525445445f544f4b454e", - "id": 21500, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2864:23:67", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_fe5e253e0ad9d51f460b73c35652983a29904d3e214ecea083c7dec391c7b884", - "typeString": "literal_string \"ERR_UNSUPPORTED_TOKEN\"" - }, - "value": "ERR_UNSUPPORTED_TOKEN" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_fe5e253e0ad9d51f460b73c35652983a29904d3e214ecea083c7dec391c7b884", - "typeString": "literal_string \"ERR_UNSUPPORTED_TOKEN\"" - } - ], - "id": 21484, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 22341, - 22342 - ], - "referencedDeclaration": 22342, - "src": "2774:7:67", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 21501, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2774:114:67", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 21502, - "nodeType": "ExpressionStatement", - "src": "2774:114:67" - } - ] - }, - "documentation": null, - "id": 21504, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "_supportedTokens", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 21477, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 21474, - "name": "_tokenA", - "nodeType": "VariableDeclaration", - "scope": 21504, - "src": "2671:19:67", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - "typeName": { - "contractScope": null, - "id": 21473, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "2671:11:67", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 21476, - "name": "_tokenB", - "nodeType": "VariableDeclaration", - "scope": 21504, - "src": "2692:19:67", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - "typeName": { - "contractScope": null, - "id": 21475, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "2692:11:67", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2670:42:67" - }, - "payable": false, - "returnParameters": { - "id": 21478, - "nodeType": "ParameterList", - "parameters": [], - "src": "2727:0:67" - }, - "scope": 21668, - "src": "2645:247:67", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 21593, - "nodeType": "Block", - "src": "3484:1259:67", - "statements": [ - { - "assignments": [ - 21520 - ], - "declarations": [ - { - "constant": false, - "id": 21520, - "name": "rateTokenA", - "nodeType": "VariableDeclaration", - "scope": 21594, - "src": "3488:18:67", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 21519, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3488:7:67", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 21528, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 21522, - "name": "tokensToOracles", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21359, - "src": "3517:15:67", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_contract$_IConsumerPriceOracle_$22203_$", - "typeString": "mapping(address => contract IConsumerPriceOracle)" - } - }, - "id": 21524, - "indexExpression": { - "argumentTypes": null, - "id": 21523, - "name": "_tokenA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21506, - "src": "3533:7:67", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3517:24:67", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", - "typeString": "contract IConsumerPriceOracle" - } - }, - "id": 21525, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "latestAnswer", - "nodeType": "MemberAccess", - "referencedDeclaration": 22197, - "src": "3517:37:67", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_int256_$", - "typeString": "function () view external returns (int256)" - } - }, - "id": 21526, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3517:39:67", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - ], - "id": 21521, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3509:7:67", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": "uint256" - }, - "id": 21527, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3509:48:67", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3488:69:67" - }, - { - "assignments": [ - 21530 - ], - "declarations": [ - { - "constant": false, - "id": 21530, - "name": "rateTokenB", - "nodeType": "VariableDeclaration", - "scope": 21594, - "src": "3561:18:67", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 21529, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3561:7:67", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 21538, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 21532, - "name": "tokensToOracles", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21359, - "src": "3590:15:67", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_contract$_IConsumerPriceOracle_$22203_$", - "typeString": "mapping(address => contract IConsumerPriceOracle)" - } - }, - "id": 21534, - "indexExpression": { - "argumentTypes": null, - "id": 21533, - "name": "_tokenB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21508, - "src": "3606:7:67", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3590:24:67", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", - "typeString": "contract IConsumerPriceOracle" - } - }, - "id": 21535, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "latestAnswer", - "nodeType": "MemberAccess", - "referencedDeclaration": 22197, - "src": "3590:37:67", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_int256_$", - "typeString": "function () view external returns (int256)" - } - }, - "id": 21536, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3590:39:67", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - ], - "id": 21531, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3582:7:67", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": "uint256" - }, - "id": 21537, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3582:48:67", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3561:69:67" - }, - { - "assignments": [ - 21540 - ], - "declarations": [ - { - "constant": false, - "id": 21540, - "name": "decimalsTokenA", - "nodeType": "VariableDeclaration", - "scope": 21594, - "src": "3634:20:67", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 21539, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "3634:5:67", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 21544, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 21541, - "name": "tokenDecimals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21351, - "src": "3657:13:67", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint8_$", - "typeString": "mapping(address => uint8)" - } - }, - "id": 21543, - "indexExpression": { - "argumentTypes": null, - "id": 21542, - "name": "_tokenA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21506, - "src": "3671:7:67", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3657:22:67", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3634:45:67" - }, - { - "assignments": [ - 21546 - ], - "declarations": [ - { - "constant": false, - "id": 21546, - "name": "decimalsTokenB", - "nodeType": "VariableDeclaration", - "scope": 21594, - "src": "3683:20:67", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 21545, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "3683:5:67", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 21550, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 21547, - "name": "tokenDecimals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21351, - "src": "3706:13:67", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint8_$", - "typeString": "mapping(address => uint8)" - } - }, - "id": 21549, - "indexExpression": { - "argumentTypes": null, - "id": 21548, - "name": "_tokenB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21508, - "src": "3720:7:67", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3706:22:67", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3683:45:67" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "id": 21553, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 21551, - "name": "decimalsTokenA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21540, - "src": "4458:14:67", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "id": 21552, - "name": "decimalsTokenB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21546, - "src": "4475:14:67", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "4458:31:67", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "id": 21571, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 21569, - "name": "decimalsTokenA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21540, - "src": "4586:14:67", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "id": 21570, - "name": "decimalsTokenB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21546, - "src": "4603:14:67", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "4586:31:67", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 21587, - "nodeType": "IfStatement", - "src": "4582:122:67", - "trueBody": { - "id": 21586, - "nodeType": "Block", - "src": "4619:85:67", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 21584, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 21572, - "name": "rateTokenA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21520, - "src": "4624:10:67", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 21582, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "3130", - "id": 21576, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4660:2:67", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_10_by_1", - "typeString": "int_const 10" - }, - "value": "10" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_10_by_1", - "typeString": "int_const 10" - } - ], - "id": 21575, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4652:7:67", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": "uint256" - }, - "id": 21577, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4652:11:67", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "**", - "rightExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "id": 21580, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 21578, - "name": "decimalsTokenB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21546, - "src": "4666:14:67", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "id": 21579, - "name": "decimalsTokenA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21540, - "src": "4683:14:67", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "4666:31:67", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - } - ], - "id": 21581, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "4665:33:67", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "4652:46:67", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 21573, - "name": "rateTokenA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21520, - "src": "4637:10:67", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 21574, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 21791, - "src": "4637:14:67", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 21583, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4637:62:67", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4624:75:67", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 21585, - "nodeType": "ExpressionStatement", - "src": "4624:75:67" - } - ] - } - }, - "id": 21588, - "nodeType": "IfStatement", - "src": "4454:250:67", - "trueBody": { - "id": 21568, - "nodeType": "Block", - "src": "4491:85:67", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 21566, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 21554, - "name": "rateTokenB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21530, - "src": "4496:10:67", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 21564, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "3130", - "id": 21558, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4532:2:67", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_10_by_1", - "typeString": "int_const 10" - }, - "value": "10" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_10_by_1", - "typeString": "int_const 10" - } - ], - "id": 21557, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4524:7:67", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": "uint256" - }, - "id": 21559, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4524:11:67", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "**", - "rightExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "id": 21562, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 21560, - "name": "decimalsTokenA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21540, - "src": "4538:14:67", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "id": 21561, - "name": "decimalsTokenB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21546, - "src": "4555:14:67", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "4538:31:67", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - } - ], - "id": 21563, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "4537:33:67", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "4524:46:67", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 21555, - "name": "rateTokenB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21530, - "src": "4509:10:67", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 21556, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 21791, - "src": "4509:14:67", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 21565, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4509:62:67", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4496:75:67", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 21567, - "nodeType": "ExpressionStatement", - "src": "4496:75:67" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "id": 21589, - "name": "rateTokenA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21520, - "src": "4716:10:67", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 21590, - "name": "rateTokenB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21530, - "src": "4728:10:67", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 21591, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "4715:24:67", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", - "typeString": "tuple(uint256,uint256)" - } - }, - "functionReturnParameters": 21518, - "id": 21592, - "nodeType": "Return", - "src": "4708:31:67" - } - ] - }, - "documentation": "@dev returns the latest known rate between the two given tokens\nfor a given pair of tokens A and B, returns the rate of A / B\n(the number of B units equivalent to a single A unit)\nthe rate is returned as a fraction (numerator / denominator) for accuracy\n\t * @param _tokenA token to get the rate of 1 unit of\n@param _tokenB token to get the rate of 1 `_tokenA` against\n\t * @return numerator\n@return denominator", - "id": 21594, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 21511, - "name": "_tokenA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21506, - "src": "3439:7:67", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - { - "argumentTypes": null, - "id": 21512, - "name": "_tokenB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21508, - "src": "3448:7:67", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - } - ], - "id": 21513, - "modifierName": { - "argumentTypes": null, - "id": 21510, - "name": "supportedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21472, - "src": "3423:15:67", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_contract$_IERC20Token_$20240_$_t_contract$_IERC20Token_$20240_$", - "typeString": "modifier (contract IERC20Token,contract IERC20Token)" - } - }, - "nodeType": "ModifierInvocation", - "src": "3423:33:67" - } - ], - "name": "latestRate", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 21509, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 21506, - "name": "_tokenA", - "nodeType": "VariableDeclaration", - "scope": 21594, - "src": "3369:19:67", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - "typeName": { - "contractScope": null, - "id": 21505, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "3369:11:67", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 21508, - "name": "_tokenB", - "nodeType": "VariableDeclaration", - "scope": 21594, - "src": "3390:19:67", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - "typeName": { - "contractScope": null, - "id": 21507, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "3390:11:67", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3368:42:67" - }, - "payable": false, - "returnParameters": { - "id": 21518, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 21515, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 21594, - "src": "3466:7:67", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 21514, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3466:7:67", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 21517, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 21594, - "src": "3475:7:67", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 21516, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3475:7:67", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3465:18:67" - }, - "scope": 21668, - "src": "3349:1394:67", - "stateMutability": "view", - "superFunction": 22262, - "visibility": "public" - }, - { - "body": { - "id": 21618, - "nodeType": "Block", - "src": "4894:225:67", - "statements": [ - { - "assignments": [ - 21600 - ], - "declarations": [ - { - "constant": false, - "id": 21600, - "name": "timestampA", - "nodeType": "VariableDeclaration", - "scope": 21619, - "src": "4948:18:67", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 21599, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4948:7:67", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 21604, - "initialValue": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 21601, - "name": "tokenAOracle", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 21353 - ], - "referencedDeclaration": 21353, - "src": "4969:12:67", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", - "typeString": "contract IConsumerPriceOracle" - } - }, - "id": 21602, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "latestTimestamp", - "nodeType": "MemberAccess", - "referencedDeclaration": 22202, - "src": "4969:28:67", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", - "typeString": "function () view external returns (uint256)" - } - }, - "id": 21603, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4969:30:67", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4948:51:67" - }, - { - "assignments": [ - 21606 - ], - "declarations": [ - { - "constant": false, - "id": 21606, - "name": "timestampB", - "nodeType": "VariableDeclaration", - "scope": 21619, - "src": "5003:18:67", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 21605, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5003:7:67", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 21610, - "initialValue": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 21607, - "name": "tokenBOracle", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 21355 - ], - "referencedDeclaration": 21355, - "src": "5024:12:67", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", - "typeString": "contract IConsumerPriceOracle" - } - }, - "id": 21608, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "latestTimestamp", - "nodeType": "MemberAccess", - "referencedDeclaration": 22202, - "src": "5024:28:67", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", - "typeString": "function () view external returns (uint256)" - } - }, - "id": 21609, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5024:30:67", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5003:51:67" - }, - { - "expression": { - "argumentTypes": null, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 21613, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 21611, - "name": "timestampA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21600, - "src": "5066:10:67", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "id": 21612, - "name": "timestampB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21606, - "src": "5079:10:67", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5066:23:67", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "argumentTypes": null, - "id": 21615, - "name": "timestampB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21606, - "src": "5105:10:67", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 21616, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "5066:49:67", - "trueExpression": { - "argumentTypes": null, - "id": 21614, - "name": "timestampA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21600, - "src": "5092:10:67", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 21598, - "id": 21617, - "nodeType": "Return", - "src": "5059:56:67" - } - ] - }, - "documentation": "@dev returns the timestamp of the last price update\n\t * @return timestamp", - "id": 21619, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "lastUpdateTime", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 21595, - "nodeType": "ParameterList", - "parameters": [], - "src": "4861:2:67" - }, - "payable": false, - "returnParameters": { - "id": 21598, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 21597, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 21619, - "src": "4885:7:67", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 21596, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4885:7:67", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4884:9:67" - }, - "scope": 21668, - "src": "4838:281:67", - "stateMutability": "view", - "superFunction": 22267, - "visibility": "public" - }, - { - "body": { - "id": 21647, - "nodeType": "Block", - "src": "5594:133:67", - "statements": [ - { - "assignments": [ - 21633, - 21635 - ], - "declarations": [ - { - "constant": false, - "id": 21633, - "name": "numerator", - "nodeType": "VariableDeclaration", - "scope": 21648, - "src": "5599:17:67", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 21632, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5599:7:67", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 21635, - "name": "denominator", - "nodeType": "VariableDeclaration", - "scope": 21648, - "src": "5618:19:67", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 21634, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5618:7:67", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 21640, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 21637, - "name": "_tokenA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21621, - "src": "5652:7:67", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - { - "argumentTypes": null, - "id": 21638, - "name": "_tokenB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21623, - "src": "5661:7:67", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - ], - "id": 21636, - "name": "latestRate", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 21594 - ], - "referencedDeclaration": 21594, - "src": "5641:10:67", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_contract$_IERC20Token_$20240_$_t_contract$_IERC20Token_$20240_$returns$_t_uint256_$_t_uint256_$", - "typeString": "function (contract IERC20Token,contract IERC20Token) view returns (uint256,uint256)" - } - }, - "id": 21639, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5641:28:67", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", - "typeString": "tuple(uint256,uint256)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5598:71:67" - }, - { - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "id": 21641, - "name": "numerator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21633, - "src": "5682:9:67", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 21642, - "name": "denominator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21635, - "src": "5693:11:67", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 21643, - "name": "lastUpdateTime", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 21619 - ], - "referencedDeclaration": 21619, - "src": "5706:14:67", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", - "typeString": "function () view returns (uint256)" - } - }, - "id": 21644, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5706:16:67", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 21645, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "5681:42:67", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$", - "typeString": "tuple(uint256,uint256,uint256)" - } - }, - "functionReturnParameters": 21631, - "id": 21646, - "nodeType": "Return", - "src": "5674:49:67" - } - ] - }, - "documentation": "@dev returns both the rate and the timestamp of the last update in a single call (gas optimization)\n\t * @param _tokenA token to get the rate of 1 unit of\n@param _tokenB token to get the rate of 1 `_tokenA` against\n\t * @return numerator\n@return denominator\n@return timestamp of the last update", - "id": 21648, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "latestRateAndUpdateTime", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 21624, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 21621, - "name": "_tokenA", - "nodeType": "VariableDeclaration", - "scope": 21648, - "src": "5484:19:67", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - "typeName": { - "contractScope": null, - "id": 21620, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "5484:11:67", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 21623, - "name": "_tokenB", - "nodeType": "VariableDeclaration", - "scope": 21648, - "src": "5505:19:67", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - "typeName": { - "contractScope": null, - "id": 21622, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "5505:11:67", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5483:42:67" - }, - "payable": false, - "returnParameters": { - "id": 21631, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 21626, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 21648, - "src": "5557:7:67", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 21625, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5557:7:67", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 21628, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 21648, - "src": "5569:7:67", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 21627, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5569:7:67", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 21630, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 21648, - "src": "5581:7:67", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 21629, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5581:7:67", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5552:40:67" - }, - "scope": 21668, - "src": "5451:276:67", - "stateMutability": "view", - "superFunction": 22280, - "visibility": "public" - }, - { - "body": { - "id": 21666, - "nodeType": "Block", - "src": "5848:92:67", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 21657, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 21655, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21650, - "src": "5856:6:67", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 21656, - "name": "ETH_ADDRESS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21340, - "src": "5866:11:67", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "5856:21:67", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 21661, - "nodeType": "IfStatement", - "src": "5852:56:67", - "trueBody": { - "id": 21660, - "nodeType": "Block", - "src": "5879:29:67", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 21658, - "name": "ETH_DECIMALS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21343, - "src": "5891:12:67", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "functionReturnParameters": 21654, - "id": 21659, - "nodeType": "Return", - "src": "5884:19:67" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 21662, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21650, - "src": "5919:6:67", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "id": 21663, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "decimals", - "nodeType": "MemberAccess", - "referencedDeclaration": 20174, - "src": "5919:15:67", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_uint8_$", - "typeString": "function () view external returns (uint8)" - } - }, - "id": 21664, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5919:17:67", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "functionReturnParameters": 21654, - "id": 21665, - "nodeType": "Return", - "src": "5912:24:67" - } - ] - }, - "documentation": "@dev returns the decimals of a given token ", - "id": 21667, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "decimals", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 21651, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 21650, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 21667, - "src": "5799:18:67", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - "typeName": { - "contractScope": null, - "id": 21649, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "5799:11:67", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5798:20:67" - }, - "payable": false, - "returnParameters": { - "id": 21654, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 21653, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 21667, - "src": "5841:5:67", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 21652, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "5841:5:67", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5840:7:67" - }, - "scope": 21668, - "src": "5781:159:67", - "stateMutability": "view", - "superFunction": null, - "visibility": "private" - } - ], - "scope": 21669, - "src": "450:5492:67" - } - ], - "src": "0:5943:67" - }, - "id": 67 - }, - "solidity/contracts/utility/ReentrancyGuard.sol": { - "ast": { - "absolutePath": "solidity/contracts/utility/ReentrancyGuard.sol", - "exportedSymbols": { - "ReentrancyGuard": [ - 21710 - ] - }, - "id": 21711, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 21670, - "literals": [ - "solidity", - "0.4", - ".26" - ], - "nodeType": "PragmaDirective", - "src": "0:23:68" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": "@dev ReentrancyGuard\n * The contract provides protection against re-entrancy - calling a function (directly or\nindirectly) from within itself.", - "fullyImplemented": true, - "id": 21710, - "linearizedBaseContracts": [ - 21710 - ], - "name": "ReentrancyGuard", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": true, - "id": 21673, - "name": "UNLOCKED", - "nodeType": "VariableDeclaration", - "scope": 21710, - "src": "213:37:68", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 21671, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "213:7:68", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "31", - "id": 21672, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "249:1:68", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "visibility": "private" - }, - { - "constant": true, - "id": 21676, - "name": "LOCKED", - "nodeType": "VariableDeclaration", - "scope": 21710, - "src": "253:35:68", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 21674, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "253:7:68", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "32", - "id": 21675, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "287:1:68", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "visibility": "private" - }, - { - "constant": false, - "id": 21679, - "name": "state", - "nodeType": "VariableDeclaration", - "scope": 21710, - "src": "362:32:68", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 21677, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "362:7:68", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "argumentTypes": null, - "id": 21678, - "name": "UNLOCKED", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21673, - "src": "386:8:68", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "private" - }, - { - "body": { - "id": 21682, - "nodeType": "Block", - "src": "484:2:68", - "statements": [] - }, - "documentation": "@dev ensures instantiation only by sub-contracts", - "id": 21683, - "implemented": true, - "isConstructor": true, - "isDeclaredConst": false, - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 21680, - "nodeType": "ParameterList", - "parameters": [], - "src": "472:2:68" - }, - "payable": false, - "returnParameters": { - "id": 21681, - "nodeType": "ParameterList", - "parameters": [], - "src": "484:0:68" - }, - "scope": 21710, - "src": "461:25:68", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 21697, - "nodeType": "Block", - "src": "561:63:68", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 21685, - "name": "_protected", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21709, - "src": "565:10:68", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$__$", - "typeString": "function () view" - } - }, - "id": 21686, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "565:12:68", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 21687, - "nodeType": "ExpressionStatement", - "src": "565:12:68" - }, - { - "expression": { - "argumentTypes": null, - "id": 21690, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 21688, - "name": "state", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21679, - "src": "581:5:68", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 21689, - "name": "LOCKED", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21676, - "src": "589:6:68", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "581:14:68", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 21691, - "nodeType": "ExpressionStatement", - "src": "581:14:68" - }, - { - "id": 21692, - "nodeType": "PlaceholderStatement", - "src": "599:1:68" - }, - { - "expression": { - "argumentTypes": null, - "id": 21695, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 21693, - "name": "state", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21679, - "src": "604:5:68", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 21694, - "name": "UNLOCKED", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21673, - "src": "612:8:68", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "604:16:68", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 21696, - "nodeType": "ExpressionStatement", - "src": "604:16:68" - } - ] - }, - "documentation": null, - "id": 21698, - "name": "protected", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 21684, - "nodeType": "ParameterList", - "parameters": [], - "src": "558:2:68" - }, - "src": "540:84:68", - "visibility": "internal" - }, - { - "body": { - "id": 21708, - "nodeType": "Block", - "src": "706:52:68", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 21704, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 21702, - "name": "state", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21679, - "src": "718:5:68", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 21703, - "name": "UNLOCKED", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21673, - "src": "727:8:68", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "718:17:68", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552525f5245454e5452414e4359", - "id": 21705, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "737:16:68", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_6e0eaf77891cd79d274f1446031427d8091629657fef0bd3d01a673469e9b08c", - "typeString": "literal_string \"ERR_REENTRANCY\"" - }, - "value": "ERR_REENTRANCY" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_6e0eaf77891cd79d274f1446031427d8091629657fef0bd3d01a673469e9b08c", - "typeString": "literal_string \"ERR_REENTRANCY\"" - } - ], - "id": 21701, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 22341, - 22342 - ], - "referencedDeclaration": 22342, - "src": "710:7:68", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 21706, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "710:44:68", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 21707, - "nodeType": "ExpressionStatement", - "src": "710:44:68" - } - ] - }, - "documentation": null, - "id": 21709, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "_protected", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 21699, - "nodeType": "ParameterList", - "parameters": [], - "src": "689:2:68" - }, - "payable": false, - "returnParameters": { - "id": 21700, - "nodeType": "ParameterList", - "parameters": [], - "src": "706:0:68" - }, - "scope": 21710, - "src": "670:88:68", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 21711, - "src": "185:575:68" - } - ], - "src": "0:761:68" - }, - "id": 68 - }, - "solidity/contracts/utility/SafeMath.sol": { - "ast": { - "absolutePath": "solidity/contracts/utility/SafeMath.sol", - "exportedSymbols": { - "SafeMath": [ - 21817 - ] - }, - "id": 21818, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 21712, - "literals": [ - "solidity", - "0.4", - ".26" - ], - "nodeType": "PragmaDirective", - "src": "0:23:69" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": "@dev Library for basic math operations with overflow/underflow protection", - "fullyImplemented": true, - "id": 21817, - "linearizedBaseContracts": [ - 21817 - ], - "name": "SafeMath", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 21736, - "nodeType": "Block", - "src": "357:75:69", - "statements": [ - { - "assignments": [ - 21722 - ], - "declarations": [ - { - "constant": false, - "id": 21722, - "name": "z", - "nodeType": "VariableDeclaration", - "scope": 21737, - "src": "361:9:69", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 21721, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "361:7:69", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 21726, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 21725, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 21723, - "name": "_x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21714, - "src": "373:2:69", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "id": 21724, - "name": "_y", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21716, - "src": "378:2:69", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "373:7:69", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "361:19:69" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 21730, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 21728, - "name": "z", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21722, - "src": "392:1:69", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 21729, - "name": "_x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21714, - "src": "397:2:69", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "392:7:69", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552525f4f564552464c4f57", - "id": 21731, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "401:14:69", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_5857855e77a7ad10ccf8b5bcb17297771c10c957a1c88a434eb5a16fc4dad486", - "typeString": "literal_string \"ERR_OVERFLOW\"" - }, - "value": "ERR_OVERFLOW" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_5857855e77a7ad10ccf8b5bcb17297771c10c957a1c88a434eb5a16fc4dad486", - "typeString": "literal_string \"ERR_OVERFLOW\"" - } - ], - "id": 21727, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 22341, - 22342 - ], - "referencedDeclaration": 22342, - "src": "384:7:69", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 21732, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "384:32:69", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 21733, - "nodeType": "ExpressionStatement", - "src": "384:32:69" - }, - { - "expression": { - "argumentTypes": null, - "id": 21734, - "name": "z", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21722, - "src": "427:1:69", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 21720, - "id": 21735, - "nodeType": "Return", - "src": "420:8:69" - } - ] - }, - "documentation": "@dev returns the sum of _x and _y, reverts if the calculation overflows\n\t * @param _x value 1\n@param _y value 2\n\t * @return sum", - "id": 21737, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "add", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 21717, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 21714, - "name": "_x", - "nodeType": "VariableDeclaration", - "scope": 21737, - "src": "301:10:69", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 21713, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "301:7:69", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 21716, - "name": "_y", - "nodeType": "VariableDeclaration", - "scope": 21737, - "src": "313:10:69", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 21715, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "313:7:69", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "300:24:69" - }, - "payable": false, - "returnParameters": { - "id": 21720, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 21719, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 21737, - "src": "348:7:69", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 21718, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "348:7:69", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "347:9:69" - }, - "scope": 21817, - "src": "288:144:69", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 21757, - "nodeType": "Block", - "src": "682:60:69", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 21749, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 21747, - "name": "_x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21739, - "src": "694:2:69", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 21748, - "name": "_y", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21741, - "src": "700:2:69", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "694:8:69", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552525f554e444552464c4f57", - "id": 21750, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "704:15:69", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_ddfa1b728b94871fcaf7b3731a21cfe44f7a2b4b84261190a1aa6f6b13e2a1f4", - "typeString": "literal_string \"ERR_UNDERFLOW\"" - }, - "value": "ERR_UNDERFLOW" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_ddfa1b728b94871fcaf7b3731a21cfe44f7a2b4b84261190a1aa6f6b13e2a1f4", - "typeString": "literal_string \"ERR_UNDERFLOW\"" - } - ], - "id": 21746, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 22341, - 22342 - ], - "referencedDeclaration": 22342, - "src": "686:7:69", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 21751, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "686:34:69", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 21752, - "nodeType": "ExpressionStatement", - "src": "686:34:69" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 21755, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 21753, - "name": "_x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21739, - "src": "731:2:69", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "id": 21754, - "name": "_y", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21741, - "src": "736:2:69", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "731:7:69", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 21745, - "id": 21756, - "nodeType": "Return", - "src": "724:14:69" - } - ] - }, - "documentation": "@dev returns the difference of _x minus _y, reverts if the calculation underflows\n\t * @param _x minuend\n@param _y subtrahend\n\t * @return difference", - "id": 21758, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "sub", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 21742, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 21739, - "name": "_x", - "nodeType": "VariableDeclaration", - "scope": 21758, - "src": "626:10:69", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 21738, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "626:7:69", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 21741, - "name": "_y", - "nodeType": "VariableDeclaration", - "scope": 21758, - "src": "638:10:69", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 21740, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "638:7:69", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "625:24:69" - }, - "payable": false, - "returnParameters": { - "id": 21745, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 21744, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 21758, - "src": "673:7:69", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 21743, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "673:7:69", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "672:9:69" - }, - "scope": 21817, - "src": "613:129:69", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 21790, - "nodeType": "Block", - "src": "993:128:69", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 21769, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 21767, - "name": "_x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21760, - "src": "1023:2:69", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 21768, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1029:1:69", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "1023:7:69", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 21772, - "nodeType": "IfStatement", - "src": "1019:21:69", - "trueBody": { - "expression": { - "argumentTypes": null, - "hexValue": "30", - "id": 21770, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1039:1:69", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "functionReturnParameters": 21766, - "id": 21771, - "nodeType": "Return", - "src": "1032:8:69" - } - }, - { - "assignments": [ - 21774 - ], - "declarations": [ - { - "constant": false, - "id": 21774, - "name": "z", - "nodeType": "VariableDeclaration", - "scope": 21791, - "src": "1045:9:69", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 21773, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1045:7:69", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 21778, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 21777, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 21775, - "name": "_x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21760, - "src": "1057:2:69", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 21776, - "name": "_y", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21762, - "src": "1062:2:69", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1057:7:69", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1045:19:69" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 21784, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 21782, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 21780, - "name": "z", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21774, - "src": "1076:1:69", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 21781, - "name": "_x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21760, - "src": "1080:2:69", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1076:6:69", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 21783, - "name": "_y", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21762, - "src": "1086:2:69", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1076:12:69", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552525f4f564552464c4f57", - "id": 21785, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1090:14:69", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_5857855e77a7ad10ccf8b5bcb17297771c10c957a1c88a434eb5a16fc4dad486", - "typeString": "literal_string \"ERR_OVERFLOW\"" - }, - "value": "ERR_OVERFLOW" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_5857855e77a7ad10ccf8b5bcb17297771c10c957a1c88a434eb5a16fc4dad486", - "typeString": "literal_string \"ERR_OVERFLOW\"" - } - ], - "id": 21779, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 22341, - 22342 - ], - "referencedDeclaration": 22342, - "src": "1068:7:69", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 21786, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1068:37:69", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 21787, - "nodeType": "ExpressionStatement", - "src": "1068:37:69" - }, - { - "expression": { - "argumentTypes": null, - "id": 21788, - "name": "z", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21774, - "src": "1116:1:69", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 21766, - "id": 21789, - "nodeType": "Return", - "src": "1109:8:69" - } - ] - }, - "documentation": "@dev returns the product of multiplying _x by _y, reverts if the calculation overflows\n\t * @param _x factor 1\n@param _y factor 2\n\t * @return product", - "id": 21791, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "mul", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 21763, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 21760, - "name": "_x", - "nodeType": "VariableDeclaration", - "scope": 21791, - "src": "937:10:69", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 21759, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "937:7:69", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 21762, - "name": "_y", - "nodeType": "VariableDeclaration", - "scope": 21791, - "src": "949:10:69", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 21761, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "949:7:69", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "936:24:69" - }, - "payable": false, - "returnParameters": { - "id": 21766, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 21765, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 21791, - "src": "984:7:69", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 21764, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "984:7:69", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "983:9:69" - }, - "scope": 21817, - "src": "924:197:69", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 21815, - "nodeType": "Block", - "src": "1376:80:69", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 21803, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 21801, - "name": "_y", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21795, - "src": "1388:2:69", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 21802, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1393:1:69", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "1388:6:69", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552525f4449564944455f42595f5a45524f", - "id": 21804, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1396:20:69", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_80c66eaebdd007de3c36bb5849ffa95e14b2130dc26a35fe1154627fc9dd838e", - "typeString": "literal_string \"ERR_DIVIDE_BY_ZERO\"" - }, - "value": "ERR_DIVIDE_BY_ZERO" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_80c66eaebdd007de3c36bb5849ffa95e14b2130dc26a35fe1154627fc9dd838e", - "typeString": "literal_string \"ERR_DIVIDE_BY_ZERO\"" - } - ], - "id": 21800, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 22341, - 22342 - ], - "referencedDeclaration": 22342, - "src": "1380:7:69", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 21805, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1380:37:69", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 21806, - "nodeType": "ExpressionStatement", - "src": "1380:37:69" - }, - { - "assignments": [ - 21808 - ], - "declarations": [ - { - "constant": false, - "id": 21808, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 21816, - "src": "1421:9:69", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 21807, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1421:7:69", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 21812, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 21811, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 21809, - "name": "_x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21793, - "src": "1433:2:69", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 21810, - "name": "_y", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21795, - "src": "1438:2:69", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1433:7:69", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1421:19:69" - }, - { - "expression": { - "argumentTypes": null, - "id": 21813, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21808, - "src": "1451:1:69", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 21799, - "id": 21814, - "nodeType": "Return", - "src": "1444:8:69" - } - ] - }, - "documentation": "@dev Integer division of two numbers truncating the quotient, reverts on division by zero.\n\t * @param _x dividend\n@param _y divisor\n\t * @return quotient", - "id": 21816, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "div", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 21796, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 21793, - "name": "_x", - "nodeType": "VariableDeclaration", - "scope": 21816, - "src": "1320:10:69", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 21792, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1320:7:69", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 21795, - "name": "_y", - "nodeType": "VariableDeclaration", - "scope": 21816, - "src": "1332:10:69", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 21794, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1332:7:69", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1319:24:69" - }, - "payable": false, - "returnParameters": { - "id": 21799, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 21798, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 21816, - "src": "1367:7:69", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 21797, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1367:7:69", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1366:9:69" - }, - "scope": 21817, - "src": "1307:149:69", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 21818, - "src": "110:1348:69" - } - ], - "src": "0:1459:69" - }, - "id": 69 - }, - "solidity/contracts/utility/TokenHandler.sol": { - "ast": { - "absolutePath": "solidity/contracts/utility/TokenHandler.sol", - "exportedSymbols": { - "TokenHandler": [ - 21933 - ] - }, - "id": 21934, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 21819, - "literals": [ - "solidity", - "0.4", - ".26" - ], - "nodeType": "PragmaDirective", - "src": "0:23:70" - }, - { - "absolutePath": "solidity/contracts/token/interfaces/IERC20Token.sol", - "file": "../token/interfaces/IERC20Token.sol", - "id": 21820, - "nodeType": "ImportDirective", - "scope": 21934, - "sourceUnit": 20241, - "src": "24:45:70", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 21933, - "linearizedBaseContracts": [ - 21933 - ], - "name": "TokenHandler", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": true, - "id": 21827, - "name": "APPROVE_FUNC_SELECTOR", - "nodeType": "VariableDeclaration", - "scope": 21933, - "src": "96:93:70", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 21821, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "96:6:70", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "617070726f766528616464726573732c75696e7432353629", - "id": 21824, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "161:26:70", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_095ea7b334ae44009aa867bfb386f5c3b4b443ac6f0ee573fa91c4608fbadfba", - "typeString": "literal_string \"approve(address,uint256)\"" - }, - "value": "approve(address,uint256)" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_stringliteral_095ea7b334ae44009aa867bfb386f5c3b4b443ac6f0ee573fa91c4608fbadfba", - "typeString": "literal_string \"approve(address,uint256)\"" - } - ], - "id": 21823, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22332, - "src": "151:9:70", - "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" - } - }, - "id": 21825, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "151:37:70", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 21822, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "144:6:70", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes4_$", - "typeString": "type(bytes4)" - }, - "typeName": "bytes4" - }, - "id": 21826, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "144:45:70", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "visibility": "private" - }, - { - "constant": true, - "id": 21834, - "name": "TRANSFER_FUNC_SELECTOR", - "nodeType": "VariableDeclaration", - "scope": 21933, - "src": "192:95:70", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 21828, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "192:6:70", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "7472616e7366657228616464726573732c75696e7432353629", - "id": 21831, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "258:27:70", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_a9059cbb2ab09eb219583f4a59a5d0623ade346d962bcd4e46b11da047c9049b", - "typeString": "literal_string \"transfer(address,uint256)\"" - }, - "value": "transfer(address,uint256)" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_stringliteral_a9059cbb2ab09eb219583f4a59a5d0623ade346d962bcd4e46b11da047c9049b", - "typeString": "literal_string \"transfer(address,uint256)\"" - } - ], - "id": 21830, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22332, - "src": "248:9:70", - "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" - } - }, - "id": 21832, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "248:38:70", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 21829, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "241:6:70", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes4_$", - "typeString": "type(bytes4)" - }, - "typeName": "bytes4" - }, - "id": 21833, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "241:46:70", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "visibility": "private" - }, - { - "constant": true, - "id": 21841, - "name": "TRANSFER_FROM_FUNC_SELECTOR", - "nodeType": "VariableDeclaration", - "scope": 21933, - "src": "290:112:70", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 21835, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "290:6:70", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "7472616e7366657246726f6d28616464726573732c616464726573732c75696e7432353629", - "id": 21838, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "361:39:70", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_23b872dd7302113369cda2901243429419bec145408fa8b352b3dd92b66c680b", - "typeString": "literal_string \"transferFrom(address,address,uint256)\"" - }, - "value": "transferFrom(address,address,uint256)" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_stringliteral_23b872dd7302113369cda2901243429419bec145408fa8b352b3dd92b66c680b", - "typeString": "literal_string \"transferFrom(address,address,uint256)\"" - } - ], - "id": 21837, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22332, - "src": "351:9:70", - "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" - } - }, - "id": 21839, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "351:50:70", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 21836, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "344:6:70", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes4_$", - "typeString": "type(bytes4)" - }, - "typeName": "bytes4" - }, - "id": 21840, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "344:58:70", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "visibility": "private" - }, - { - "body": { - "id": 21860, - "nodeType": "Block", - "src": "812:88:70", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 21851, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21843, - "src": "824:6:70", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 21854, - "name": "APPROVE_FUNC_SELECTOR", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21827, - "src": "855:21:70", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - { - "argumentTypes": null, - "id": 21855, - "name": "_spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21845, - "src": "878:8:70", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 21856, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21847, - "src": "888:6:70", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 21852, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22325, - "src": "832:3:70", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 21853, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encodeWithSelector", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "832:22:70", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (bytes4) pure returns (bytes memory)" - } - }, - "id": 21857, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "832:63:70", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 21850, - "name": "execute", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21932, - "src": "816:7:70", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20Token_$20240_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (contract IERC20Token,bytes memory)" - } - }, - "id": 21858, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "816:80:70", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 21859, - "nodeType": "ExpressionStatement", - "src": "816:80:70" - } - ] - }, - "documentation": "@dev executes the ERC20 token's `approve` function and reverts upon failure\nthe main purpose of this function is to prevent a non standard ERC20 token\nfrom failing silently\n\t * @param _token ERC20 token address\n@param _spender approved address\n@param _value allowance amount", - "id": 21861, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "safeApprove", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 21848, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 21843, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 21861, - "src": "743:18:70", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - "typeName": { - "contractScope": null, - "id": 21842, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "743:11:70", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 21845, - "name": "_spender", - "nodeType": "VariableDeclaration", - "scope": 21861, - "src": "765:16:70", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 21844, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "765:7:70", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 21847, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 21861, - "src": "785:14:70", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 21846, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "785:7:70", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "739:63:70" - }, - "payable": false, - "returnParameters": { - "id": 21849, - "nodeType": "ParameterList", - "parameters": [], - "src": "812:0:70" - }, - "scope": 21933, - "src": "719:181:70", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 21880, - "nodeType": "Block", - "src": "1303:84:70", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 21871, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21863, - "src": "1315:6:70", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 21874, - "name": "TRANSFER_FUNC_SELECTOR", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21834, - "src": "1346:22:70", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - { - "argumentTypes": null, - "id": 21875, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21865, - "src": "1370:3:70", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 21876, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21867, - "src": "1375:6:70", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 21872, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22325, - "src": "1323:3:70", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 21873, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encodeWithSelector", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1323:22:70", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (bytes4) pure returns (bytes memory)" - } - }, - "id": 21877, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1323:59:70", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 21870, - "name": "execute", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21932, - "src": "1307:7:70", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20Token_$20240_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (contract IERC20Token,bytes memory)" - } - }, - "id": 21878, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1307:76:70", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 21879, - "nodeType": "ExpressionStatement", - "src": "1307:76:70" - } - ] - }, - "documentation": "@dev executes the ERC20 token's `transfer` function and reverts upon failure\nthe main purpose of this function is to prevent a non standard ERC20 token\nfrom failing silently\n\t * @param _token ERC20 token address\n@param _to target address\n@param _value transfer amount", - "id": 21881, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "safeTransfer", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 21868, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 21863, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 21881, - "src": "1239:18:70", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - "typeName": { - "contractScope": null, - "id": 21862, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "1239:11:70", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 21865, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 21881, - "src": "1261:11:70", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 21864, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1261:7:70", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 21867, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 21881, - "src": "1276:14:70", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 21866, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1276:7:70", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1235:58:70" - }, - "payable": false, - "returnParameters": { - "id": 21869, - "nodeType": "ParameterList", - "parameters": [], - "src": "1303:0:70" - }, - "scope": 21933, - "src": "1214:173:70", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 21903, - "nodeType": "Block", - "src": "1850:96:70", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 21893, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21883, - "src": "1862:6:70", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 21896, - "name": "TRANSFER_FROM_FUNC_SELECTOR", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21841, - "src": "1893:27:70", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - { - "argumentTypes": null, - "id": 21897, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21885, - "src": "1922:5:70", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 21898, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21887, - "src": "1929:3:70", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 21899, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21889, - "src": "1934:6:70", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 21894, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22325, - "src": "1870:3:70", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 21895, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encodeWithSelector", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1870:22:70", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (bytes4) pure returns (bytes memory)" - } - }, - "id": 21900, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1870:71:70", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 21892, - "name": "execute", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21932, - "src": "1854:7:70", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20Token_$20240_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (contract IERC20Token,bytes memory)" - } - }, - "id": 21901, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1854:88:70", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 21902, - "nodeType": "ExpressionStatement", - "src": "1854:88:70" - } - ] - }, - "documentation": "@dev executes the ERC20 token's `transferFrom` function and reverts upon failure\nthe main purpose of this function is to prevent a non standard ERC20 token\nfrom failing silently\n\t * @param _token ERC20 token address\n@param _from source address\n@param _to target address\n@param _value transfer amount", - "id": 21904, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 21890, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 21883, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 21904, - "src": "1769:18:70", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - "typeName": { - "contractScope": null, - "id": 21882, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "1769:11:70", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 21885, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 21904, - "src": "1791:13:70", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 21884, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1791:7:70", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 21887, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 21904, - "src": "1808:11:70", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 21886, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1808:7:70", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 21889, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 21904, - "src": "1823:14:70", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 21888, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1823:7:70", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1765:75:70" - }, - "payable": false, - "returnParameters": { - "id": 21891, - "nodeType": "ParameterList", - "parameters": [], - "src": "1850:0:70" - }, - "scope": 21933, - "src": "1740:206:70", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 21931, - "nodeType": "Block", - "src": "2320:492:70", - "statements": [ - { - "assignments": [ - 21915 - ], - "declarations": [ - { - "constant": false, - "id": 21915, - "name": "ret", - "nodeType": "VariableDeclaration", - "scope": 21932, - "src": "2324:21:70", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$1_memory_ptr", - "typeString": "uint256[1]" - }, - "typeName": { - "baseType": { - "id": 21913, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2324:7:70", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 21914, - "length": { - "argumentTypes": null, - "hexValue": "31", - "id": 21912, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2332:1:70", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - }, - "value": "1" - }, - "nodeType": "ArrayTypeName", - "src": "2324:10:70", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$1_storage_ptr", - "typeString": "uint256[1]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 21920, - "initialValue": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 21917, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2357:1:70", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "id": 21916, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2349:7:70", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": "uint256" - }, - "id": 21918, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2349:10:70", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 21919, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "2348:12:70", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$1_memory_ptr", - "typeString": "uint256[1] memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2324:36:70" - }, - { - "externalReferences": [ - { - "_data": { - "declaration": 21908, - "isOffset": false, - "isSlot": false, - "src": "2580:5:70", - "valueSize": 1 - } - }, - { - "_data": { - "declaration": 21908, - "isOffset": false, - "isSlot": false, - "src": "2488:5:70", - "valueSize": 1 - } - }, - { - "_token": { - "declaration": 21906, - "isOffset": false, - "isSlot": false, - "src": "2430:6:70", - "valueSize": 1 - } - }, - { - "ret": { - "declaration": 21915, - "isOffset": false, - "isSlot": false, - "src": "2661:3:70", - "valueSize": 1 - } - } - ], - "id": 21921, - "nodeType": "InlineAssembly", - "operations": "{\n let success := call(gas(), _token, 0, add(_data, 32), mload(_data), ret, 32)\n if iszero(success)\n {\n revert(0, 0)\n }\n}", - "src": "2365:407:70" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 21927, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 21923, - "name": "ret", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21915, - "src": "2773:3:70", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$1_memory_ptr", - "typeString": "uint256[1] memory" - } - }, - "id": 21925, - "indexExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 21924, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2777:1:70", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2773:6:70", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 21926, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2783:1:70", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "2773:11:70", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552525f5452414e534645525f4641494c4544", - "id": 21928, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2786:21:70", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c9252e500ac7052178e0516284a4bfdb9c18736079c4cc7803b8d1294a8fb98c", - "typeString": "literal_string \"ERR_TRANSFER_FAILED\"" - }, - "value": "ERR_TRANSFER_FAILED" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_c9252e500ac7052178e0516284a4bfdb9c18736079c4cc7803b8d1294a8fb98c", - "typeString": "literal_string \"ERR_TRANSFER_FAILED\"" - } - ], - "id": 21922, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 22341, - 22342 - ], - "referencedDeclaration": 22342, - "src": "2765:7:70", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 21929, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2765:43:70", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 21930, - "nodeType": "ExpressionStatement", - "src": "2765:43:70" - } - ] - }, - "documentation": "@dev executes a function on the ERC20 token and reverts upon failure\nthe main purpose of this function is to prevent a non standard ERC20 token\nfrom failing silently\n\t * @param _token ERC20 token address\n@param _data data to pass in to the token's contract for execution", - "id": 21932, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "execute", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 21909, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 21906, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 21932, - "src": "2272:18:70", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - "typeName": { - "contractScope": null, - "id": 21905, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "2272:11:70", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 21908, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 21932, - "src": "2292:18:70", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 21907, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2292:5:70", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2271:40:70" - }, - "payable": false, - "returnParameters": { - "id": 21910, - "nodeType": "ParameterList", - "parameters": [], - "src": "2320:0:70" - }, - "scope": 21933, - "src": "2255:557:70", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - } - ], - "scope": 21934, - "src": "71:2743:70" - } - ], - "src": "0:2815:70" - }, - "id": 70 - }, - "solidity/contracts/utility/TokenHolder.sol": { - "ast": { - "absolutePath": "solidity/contracts/utility/TokenHolder.sol", - "exportedSymbols": { - "TokenHolder": [ - 21976 - ] - }, - "id": 21977, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 21935, - "literals": [ - "solidity", - "0.4", - ".26" - ], - "nodeType": "PragmaDirective", - "src": "0:23:71" - }, - { - "absolutePath": "solidity/contracts/utility/Owned.sol", - "file": "./Owned.sol", - "id": 21936, - "nodeType": "ImportDirective", - "scope": 21977, - "sourceUnit": 21325, - "src": "24:21:71", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "solidity/contracts/utility/Utils.sol", - "file": "./Utils.sol", - "id": 21937, - "nodeType": "ImportDirective", - "scope": 21977, - "sourceUnit": 22053, - "src": "46:21:71", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "solidity/contracts/utility/TokenHandler.sol", - "file": "./TokenHandler.sol", - "id": 21938, - "nodeType": "ImportDirective", - "scope": 21977, - "sourceUnit": 21934, - "src": "68:28:71", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "solidity/contracts/utility/interfaces/ITokenHolder.sol", - "file": "./interfaces/ITokenHolder.sol", - "id": 21939, - "nodeType": "ImportDirective", - "scope": 21977, - "sourceUnit": 22314, - "src": "97:39:71", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "solidity/contracts/token/interfaces/IERC20Token.sol", - "file": "../token/interfaces/IERC20Token.sol", - "id": 21940, - "nodeType": "ImportDirective", - "scope": 21977, - "sourceUnit": 20241, - "src": "137:45:71", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 21941, - "name": "ITokenHolder", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 22313, - "src": "765:12:71", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ITokenHolder_$22313", - "typeString": "contract ITokenHolder" - } - }, - "id": 21942, - "nodeType": "InheritanceSpecifier", - "src": "765:12:71" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 21943, - "name": "TokenHandler", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 21933, - "src": "779:12:71", - "typeDescriptions": { - "typeIdentifier": "t_contract$_TokenHandler_$21933", - "typeString": "contract TokenHandler" - } - }, - "id": 21944, - "nodeType": "InheritanceSpecifier", - "src": "779:12:71" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 21945, - "name": "Owned", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 21324, - "src": "793:5:71", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Owned_$21324", - "typeString": "contract Owned" - } - }, - "id": 21946, - "nodeType": "InheritanceSpecifier", - "src": "793:5:71" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 21947, - "name": "Utils", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 22052, - "src": "800:5:71", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Utils_$22052", - "typeString": "contract Utils" - } - }, - "id": 21948, - "nodeType": "InheritanceSpecifier", - "src": "800:5:71" - } - ], - "contractDependencies": [ - 21324, - 21933, - 22052, - 22247, - 22313 - ], - "contractKind": "contract", - "documentation": "@dev We consider every contract to be a 'token holder' since it's currently not possible\nfor a contract to deny receiving tokens.\n * The TokenHolder's contract sole purpose is to provide a safety mechanism that allows\nthe owner to send tokens that were sent to the contract by mistake back to their sender.\n * Note that we use the non standard ERC-20 interface which has no return value for transfer\nin order to support both non standard as well as standard token contracts.\nsee https://github.com/ethereum/solidity/issues/4116", - "fullyImplemented": true, - "id": 21976, - "linearizedBaseContracts": [ - 21976, - 22052, - 21324, - 21933, - 22313, - 22247 - ], - "name": "TokenHolder", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 21974, - "nodeType": "Block", - "src": "1229:42:71", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 21969, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21950, - "src": "1246:6:71", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - { - "argumentTypes": null, - "id": 21970, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21952, - "src": "1254:3:71", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 21971, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21954, - "src": "1259:7:71", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 21968, - "name": "safeTransfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21881, - "src": "1233:12:71", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20Token_$20240_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (contract IERC20Token,address,uint256)" - } - }, - "id": 21972, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1233:34:71", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 21973, - "nodeType": "ExpressionStatement", - "src": "1233:34:71" - } - ] - }, - "documentation": "@dev withdraws tokens held by the contract and sends them to an account\ncan only be called by the owner\n\t * @param _token ERC20 token contract address\n@param _to account to receive the new amount\n@param _amount amount to withdraw", - "id": 21975, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 21957, - "modifierName": { - "argumentTypes": null, - "id": 21956, - "name": "ownerOnly", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21265, - "src": "1167:9:71", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "1167:9:71" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 21959, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21950, - "src": "1190:6:71", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - } - ], - "id": 21960, - "modifierName": { - "argumentTypes": null, - "id": 21958, - "name": "validAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22011, - "src": "1177:12:71", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$", - "typeString": "modifier (address)" - } - }, - "nodeType": "ModifierInvocation", - "src": "1177:20:71" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 21962, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21952, - "src": "1211:3:71", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 21963, - "modifierName": { - "argumentTypes": null, - "id": 21961, - "name": "validAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22011, - "src": "1198:12:71", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$", - "typeString": "modifier (address)" - } - }, - "nodeType": "ModifierInvocation", - "src": "1198:17:71" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 21965, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21952, - "src": "1224:3:71", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 21966, - "modifierName": { - "argumentTypes": null, - "id": 21964, - "name": "notThis", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22036, - "src": "1216:7:71", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$", - "typeString": "modifier (address)" - } - }, - "nodeType": "ModifierInvocation", - "src": "1216:12:71" - } - ], - "name": "withdrawTokens", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 21955, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 21950, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 21975, - "src": "1104:18:71", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - "typeName": { - "contractScope": null, - "id": 21949, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "1104:11:71", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 21952, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 21975, - "src": "1126:11:71", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 21951, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1126:7:71", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 21954, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 21975, - "src": "1141:15:71", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 21953, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1141:7:71", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1100:59:71" - }, - "payable": false, - "returnParameters": { - "id": 21967, - "nodeType": "ParameterList", - "parameters": [], - "src": "1229:0:71" - }, - "scope": 21976, - "src": "1077:194:71", - "stateMutability": "nonpayable", - "superFunction": 22312, - "visibility": "public" - } - ], - "scope": 21977, - "src": "741:532:71" - } - ], - "src": "0:1274:71" - }, - "id": 71 - }, - "solidity/contracts/utility/Utils.sol": { - "ast": { - "absolutePath": "solidity/contracts/utility/Utils.sol", - "exportedSymbols": { - "Utils": [ - 22052 - ] - }, - "id": 22053, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 21978, - "literals": [ - "solidity", - "0.4", - ".26" - ], - "nodeType": "PragmaDirective", - "src": "0:23:72" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": "@dev Utilities & Common Modifiers", - "fullyImplemented": true, - "id": 22052, - "linearizedBaseContracts": [ - 22052 - ], - "name": "Utils", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 21987, - "nodeType": "Block", - "src": "176:37:72", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 21983, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21980, - "src": "197:6:72", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 21982, - "name": "_greaterThanZero", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22001, - "src": "180:16:72", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$__$", - "typeString": "function (uint256) pure" - } - }, - "id": 21984, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "180:24:72", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 21985, - "nodeType": "ExpressionStatement", - "src": "180:24:72" - }, - { - "id": 21986, - "nodeType": "PlaceholderStatement", - "src": "208:1:72" - } - ] - }, - "documentation": null, - "id": 21988, - "name": "greaterThanZero", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 21981, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 21980, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 21988, - "src": "160:14:72", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 21979, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "160:7:72", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "159:16:72" - }, - "src": "135:78:72", - "visibility": "internal" - }, - { - "body": { - "id": 22000, - "nodeType": "Block", - "src": "315:45:72", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 21996, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 21994, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21990, - "src": "327:6:72", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 21995, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "336:1:72", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "327:10:72", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552525f5a45524f5f56414c5545", - "id": 21997, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "339:16:72", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_6d867a5fb86a4ba31dbc28b32cea703c5633c272ff1c7db7eff591a6c9397723", - "typeString": "literal_string \"ERR_ZERO_VALUE\"" - }, - "value": "ERR_ZERO_VALUE" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_6d867a5fb86a4ba31dbc28b32cea703c5633c272ff1c7db7eff591a6c9397723", - "typeString": "literal_string \"ERR_ZERO_VALUE\"" - } - ], - "id": 21993, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 22341, - 22342 - ], - "referencedDeclaration": 22342, - "src": "319:7:72", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 21998, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "319:37:72", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 21999, - "nodeType": "ExpressionStatement", - "src": "319:37:72" - } - ] - }, - "documentation": null, - "id": 22001, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "_greaterThanZero", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 21991, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 21990, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 22001, - "src": "285:14:72", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 21989, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "285:7:72", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "284:16:72" - }, - "payable": false, - "returnParameters": { - "id": 21992, - "nodeType": "ParameterList", - "parameters": [], - "src": "315:0:72" - }, - "scope": 22052, - "src": "259:101:72", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 22010, - "nodeType": "Block", - "src": "471:36:72", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 22006, - "name": "_address", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22003, - "src": "489:8:72", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 22005, - "name": "_validAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22026, - "src": "475:13:72", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_address_$returns$__$", - "typeString": "function (address) pure" - } - }, - "id": 22007, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "475:23:72", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 22008, - "nodeType": "ExpressionStatement", - "src": "475:23:72" - }, - { - "id": 22009, - "nodeType": "PlaceholderStatement", - "src": "502:1:72" - } - ] - }, - "documentation": null, - "id": 22011, - "name": "validAddress", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 22004, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 22003, - "name": "_address", - "nodeType": "VariableDeclaration", - "scope": 22011, - "src": "453:16:72", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 22002, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "453:7:72", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "452:18:72" - }, - "src": "431:76:72", - "visibility": "internal" - }, - { - "body": { - "id": 22025, - "nodeType": "Block", - "src": "608:62:72", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 22021, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 22017, - "name": "_address", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22013, - "src": "620:8:72", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 22019, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "640:1:72", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 22018, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "632:7:72", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 22020, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "632:10:72", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "620:22:72", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552525f494e56414c49445f41444452455353", - "id": 22022, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "644:21:72", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_a7d3f5b8fcfdb9260fb71cc6af515e9b07a68a1202d1cb2f5a3f8f30449ddc07", - "typeString": "literal_string \"ERR_INVALID_ADDRESS\"" - }, - "value": "ERR_INVALID_ADDRESS" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_a7d3f5b8fcfdb9260fb71cc6af515e9b07a68a1202d1cb2f5a3f8f30449ddc07", - "typeString": "literal_string \"ERR_INVALID_ADDRESS\"" - } - ], - "id": 22016, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 22341, - 22342 - ], - "referencedDeclaration": 22342, - "src": "612:7:72", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 22023, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "612:54:72", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 22024, - "nodeType": "ExpressionStatement", - "src": "612:54:72" - } - ] - }, - "documentation": null, - "id": 22026, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "_validAddress", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 22014, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 22013, - "name": "_address", - "nodeType": "VariableDeclaration", - "scope": 22026, - "src": "576:16:72", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 22012, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "576:7:72", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "575:18:72" - }, - "payable": false, - "returnParameters": { - "id": 22015, - "nodeType": "ParameterList", - "parameters": [], - "src": "608:0:72" - }, - "scope": 22052, - "src": "553:117:72", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 22035, - "nodeType": "Block", - "src": "778:31:72", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 22031, - "name": "_address", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22028, - "src": "791:8:72", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 22030, - "name": "_notThis", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22051, - "src": "782:8:72", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$__$", - "typeString": "function (address) view" - } - }, - "id": 22032, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "782:18:72", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 22033, - "nodeType": "ExpressionStatement", - "src": "782:18:72" - }, - { - "id": 22034, - "nodeType": "PlaceholderStatement", - "src": "804:1:72" - } - ] - }, - "documentation": null, - "id": 22036, - "name": "notThis", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 22029, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 22028, - "name": "_address", - "nodeType": "VariableDeclaration", - "scope": 22036, - "src": "760:16:72", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 22027, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "760:7:72", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "759:18:72" - }, - "src": "743:66:72", - "visibility": "internal" - }, - { - "body": { - "id": 22050, - "nodeType": "Block", - "src": "905:65:72", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 22046, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 22042, - "name": "_address", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22038, - "src": "917:8:72", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 22044, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22359, - "src": "937:4:72", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Utils_$22052", - "typeString": "contract Utils" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_Utils_$22052", - "typeString": "contract Utils" - } - ], - "id": 22043, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "929:7:72", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 22045, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "929:13:72", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "917:25:72", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552525f414444524553535f49535f53454c46", - "id": 22047, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "944:21:72", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_d6038575e9704a3ea491558fda267e4bebfff2c5aa46f54a3ab71ebfebd80861", - "typeString": "literal_string \"ERR_ADDRESS_IS_SELF\"" - }, - "value": "ERR_ADDRESS_IS_SELF" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_d6038575e9704a3ea491558fda267e4bebfff2c5aa46f54a3ab71ebfebd80861", - "typeString": "literal_string \"ERR_ADDRESS_IS_SELF\"" - } - ], - "id": 22041, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 22341, - 22342 - ], - "referencedDeclaration": 22342, - "src": "909:7:72", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 22048, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "909:57:72", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 22049, - "nodeType": "ExpressionStatement", - "src": "909:57:72" - } - ] - }, - "documentation": null, - "id": 22051, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "_notThis", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 22039, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 22038, - "name": "_address", - "nodeType": "VariableDeclaration", - "scope": 22051, - "src": "873:16:72", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 22037, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "873:7:72", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "872:18:72" - }, - "payable": false, - "returnParameters": { - "id": 22040, - "nodeType": "ParameterList", - "parameters": [], - "src": "905:0:72" - }, - "scope": 22052, - "src": "855:115:72", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 22053, - "src": "70:902:72" - } - ], - "src": "0:973:72" - }, - "id": 72 - }, - "solidity/contracts/utility/Whitelist.sol": { - "ast": { - "absolutePath": "solidity/contracts/utility/Whitelist.sol", - "exportedSymbols": { - "Whitelist": [ - 22190 - ] - }, - "id": 22191, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 22054, - "literals": [ - "solidity", - "0.4", - ".26" - ], - "nodeType": "PragmaDirective", - "src": "0:23:73" - }, - { - "absolutePath": "solidity/contracts/utility/Owned.sol", - "file": "./Owned.sol", - "id": 22055, - "nodeType": "ImportDirective", - "scope": 22191, - "sourceUnit": 21325, - "src": "24:21:73", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "solidity/contracts/utility/Utils.sol", - "file": "./Utils.sol", - "id": 22056, - "nodeType": "ImportDirective", - "scope": 22191, - "sourceUnit": 22053, - "src": "46:21:73", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "solidity/contracts/utility/interfaces/IWhitelist.sol", - "file": "./interfaces/IWhitelist.sol", - "id": 22057, - "nodeType": "ImportDirective", - "scope": 22191, - "sourceUnit": 22324, - "src": "68:37:73", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 22058, - "name": "IWhitelist", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 22323, - "src": "198:10:73", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IWhitelist_$22323", - "typeString": "contract IWhitelist" - } - }, - "id": 22059, - "nodeType": "InheritanceSpecifier", - "src": "198:10:73" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 22060, - "name": "Owned", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 21324, - "src": "210:5:73", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Owned_$21324", - "typeString": "contract Owned" - } - }, - "id": 22061, - "nodeType": "InheritanceSpecifier", - "src": "210:5:73" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 22062, - "name": "Utils", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 22052, - "src": "217:5:73", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Utils_$22052", - "typeString": "contract Utils" - } - }, - "id": 22063, - "nodeType": "InheritanceSpecifier", - "src": "217:5:73" - } - ], - "contractDependencies": [ - 21324, - 22052, - 22247, - 22323 - ], - "contractKind": "contract", - "documentation": "@dev The contract manages a list of whitelisted addresses", - "fullyImplemented": true, - "id": 22190, - "linearizedBaseContracts": [ - 22190, - 22052, - 21324, - 22247, - 22323 - ], - "name": "Whitelist", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 22067, - "name": "whitelist", - "nodeType": "VariableDeclaration", - "scope": 22190, - "src": "226:42:73", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - }, - "typeName": { - "id": 22066, - "keyType": { - "id": 22064, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "234:7:73", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "226:24:73", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - }, - "valueType": { - "id": 22065, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "245:4:73", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "anonymous": false, - "documentation": "@dev triggered when an address is added to the whitelist\n\t * @param _address address that's added from the whitelist", - "id": 22071, - "name": "AddressAddition", - "nodeType": "EventDefinition", - "parameters": { - "id": 22070, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 22069, - "indexed": true, - "name": "_address", - "nodeType": "VariableDeclaration", - "scope": 22071, - "src": "429:24:73", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 22068, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "429:7:73", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "428:26:73" - }, - "src": "407:48:73" - }, - { - "anonymous": false, - "documentation": "@dev triggered when an address is removed from the whitelist\n\t * @param _address address that's removed from the whitelist", - "id": 22075, - "name": "AddressRemoval", - "nodeType": "EventDefinition", - "parameters": { - "id": 22074, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 22073, - "indexed": true, - "name": "_address", - "nodeType": "VariableDeclaration", - "scope": 22075, - "src": "620:24:73", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 22072, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "620:7:73", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "619:26:73" - }, - "src": "599:47:73" - }, - { - "body": { - "id": 22086, - "nodeType": "Block", - "src": "903:34:73", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 22082, - "name": "whitelist", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22067, - "src": "914:9:73", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 22084, - "indexExpression": { - "argumentTypes": null, - "id": 22083, - "name": "_address", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22077, - "src": "924:8:73", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "914:19:73", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 22081, - "id": 22085, - "nodeType": "Return", - "src": "907:26:73" - } - ] - }, - "documentation": "@dev returns true if a given address is whitelisted, false if not\n\t * @param _address address to check\n\t * @return true if the address is whitelisted, false if not", - "id": 22087, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "isWhitelisted", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 22078, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 22077, - "name": "_address", - "nodeType": "VariableDeclaration", - "scope": 22087, - "src": "858:16:73", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 22076, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "858:7:73", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "857:18:73" - }, - "payable": false, - "returnParameters": { - "id": 22081, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 22080, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 22087, - "src": "897:4:73", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 22079, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "897:4:73", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "896:6:73" - }, - "scope": 22190, - "src": "835:102:73", - "stateMutability": "view", - "superFunction": 22322, - "visibility": "public" - }, - { - "body": { - "id": 22112, - "nodeType": "Block", - "src": "1114:158:73", - "statements": [ - { - "condition": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 22097, - "name": "whitelist", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22067, - "src": "1122:9:73", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 22099, - "indexExpression": { - "argumentTypes": null, - "id": 22098, - "name": "_address", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22089, - "src": "1132:8:73", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1122:19:73", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 22101, - "nodeType": "IfStatement", - "src": "1118:86:73", - "trueBody": { - "expression": null, - "functionReturnParameters": 22096, - "id": 22100, - "nodeType": "Return", - "src": "1197:7:73" - } - }, - { - "expression": { - "argumentTypes": null, - "id": 22106, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 22102, - "name": "whitelist", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22067, - "src": "1208:9:73", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 22104, - "indexExpression": { - "argumentTypes": null, - "id": 22103, - "name": "_address", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22089, - "src": "1218:8:73", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "1208:19:73", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 22105, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1230:4:73", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "1208:26:73", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 22107, - "nodeType": "ExpressionStatement", - "src": "1208:26:73" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 22109, - "name": "_address", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22089, - "src": "1259:8:73", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 22108, - "name": "AddressAddition", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22071, - "src": "1243:15:73", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 22110, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1243:25:73", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 22111, - "nodeType": "EmitStatement", - "src": "1238:30:73" - } - ] - }, - "documentation": "@dev adds a given address to the whitelist\n\t * @param _address address to add", - "id": 22113, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 22092, - "modifierName": { - "argumentTypes": null, - "id": 22091, - "name": "ownerOnly", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21265, - "src": "1081:9:73", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "1081:9:73" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 22094, - "name": "_address", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22089, - "src": "1104:8:73", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 22095, - "modifierName": { - "argumentTypes": null, - "id": 22093, - "name": "validAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22011, - "src": "1091:12:73", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$", - "typeString": "modifier (address)" - } - }, - "nodeType": "ModifierInvocation", - "src": "1091:22:73" - } - ], - "name": "addAddress", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 22090, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 22089, - "name": "_address", - "nodeType": "VariableDeclaration", - "scope": 22113, - "src": "1056:16:73", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 22088, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1056:7:73", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1055:18:73" - }, - "payable": false, - "returnParameters": { - "id": 22096, - "nodeType": "ParameterList", - "parameters": [], - "src": "1114:0:73" - }, - "scope": 22190, - "src": "1036:236:73", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 22138, - "nodeType": "Block", - "src": "1430:90:73", - "statements": [ - { - "body": { - "id": 22136, - "nodeType": "Block", - "src": "1482:35:73", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 22131, - "name": "_addresses", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22116, - "src": "1498:10:73", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 22133, - "indexExpression": { - "argumentTypes": null, - "id": 22132, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22120, - "src": "1509:1:73", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1498:13:73", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 22130, - "name": "addAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22113, - "src": "1487:10:73", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 22134, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1487:25:73", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 22135, - "nodeType": "ExpressionStatement", - "src": "1487:25:73" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 22126, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 22123, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22120, - "src": "1454:1:73", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 22124, - "name": "_addresses", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22116, - "src": "1458:10:73", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 22125, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1458:17:73", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1454:21:73", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 22137, - "initializationExpression": { - "assignments": [ - 22120 - ], - "declarations": [ - { - "constant": false, - "id": 22120, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 22139, - "src": "1439:9:73", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 22119, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1439:7:73", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 22122, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 22121, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1451:1:73", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "1439:13:73" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 22128, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "1477:3:73", - "subExpression": { - "argumentTypes": null, - "id": 22127, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22120, - "src": "1477:1:73", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 22129, - "nodeType": "ExpressionStatement", - "src": "1477:3:73" - }, - "nodeType": "ForStatement", - "src": "1434:83:73" - } - ] - }, - "documentation": "@dev adds a list of addresses to the whitelist\n\t * @param _addresses addresses to add", - "id": 22139, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "addAddresses", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 22117, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 22116, - "name": "_addresses", - "nodeType": "VariableDeclaration", - "scope": 22139, - "src": "1401:20:73", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 22114, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1401:7:73", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 22115, - "length": null, - "nodeType": "ArrayTypeName", - "src": "1401:9:73", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1400:22:73" - }, - "payable": false, - "returnParameters": { - "id": 22118, - "nodeType": "ParameterList", - "parameters": [], - "src": "1430:0:73" - }, - "scope": 22190, - "src": "1379:141:73", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 22162, - "nodeType": "Block", - "src": "1685:160:73", - "statements": [ - { - "condition": { - "argumentTypes": null, - "id": 22149, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "1693:20:73", - "subExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 22146, - "name": "whitelist", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22067, - "src": "1694:9:73", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 22148, - "indexExpression": { - "argumentTypes": null, - "id": 22147, - "name": "_address", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22141, - "src": "1704:8:73", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1694:19:73", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 22151, - "nodeType": "IfStatement", - "src": "1689:88:73", - "trueBody": { - "expression": null, - "functionReturnParameters": 22145, - "id": 22150, - "nodeType": "Return", - "src": "1770:7:73" - } - }, - { - "expression": { - "argumentTypes": null, - "id": 22156, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 22152, - "name": "whitelist", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22067, - "src": "1781:9:73", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 22154, - "indexExpression": { - "argumentTypes": null, - "id": 22153, - "name": "_address", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22141, - "src": "1791:8:73", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "1781:19:73", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 22155, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1803:5:73", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "src": "1781:27:73", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 22157, - "nodeType": "ExpressionStatement", - "src": "1781:27:73" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 22159, - "name": "_address", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22141, - "src": "1832:8:73", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 22158, - "name": "AddressRemoval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22075, - "src": "1817:14:73", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 22160, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1817:24:73", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 22161, - "nodeType": "EmitStatement", - "src": "1812:29:73" - } - ] - }, - "documentation": "@dev removes a given address from the whitelist\n\t * @param _address address to remove", - "id": 22163, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 22144, - "modifierName": { - "argumentTypes": null, - "id": 22143, - "name": "ownerOnly", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21265, - "src": "1675:9:73", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "1675:9:73" - } - ], - "name": "removeAddress", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 22142, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 22141, - "name": "_address", - "nodeType": "VariableDeclaration", - "scope": 22163, - "src": "1650:16:73", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 22140, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1650:7:73", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1649:18:73" - }, - "payable": false, - "returnParameters": { - "id": 22145, - "nodeType": "ParameterList", - "parameters": [], - "src": "1685:0:73" - }, - "scope": 22190, - "src": "1627:218:73", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 22188, - "nodeType": "Block", - "src": "2014:93:73", - "statements": [ - { - "body": { - "id": 22186, - "nodeType": "Block", - "src": "2066:38:73", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 22181, - "name": "_addresses", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22166, - "src": "2085:10:73", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 22183, - "indexExpression": { - "argumentTypes": null, - "id": 22182, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22170, - "src": "2096:1:73", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2085:13:73", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 22180, - "name": "removeAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22163, - "src": "2071:13:73", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 22184, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2071:28:73", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 22185, - "nodeType": "ExpressionStatement", - "src": "2071:28:73" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 22176, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 22173, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22170, - "src": "2038:1:73", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 22174, - "name": "_addresses", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22166, - "src": "2042:10:73", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 22175, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2042:17:73", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2038:21:73", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 22187, - "initializationExpression": { - "assignments": [ - 22170 - ], - "declarations": [ - { - "constant": false, - "id": 22170, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 22189, - "src": "2023:9:73", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 22169, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2023:7:73", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 22172, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 22171, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2035:1:73", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "2023:13:73" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 22178, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "2061:3:73", - "subExpression": { - "argumentTypes": null, - "id": 22177, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22170, - "src": "2061:1:73", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 22179, - "nodeType": "ExpressionStatement", - "src": "2061:3:73" - }, - "nodeType": "ForStatement", - "src": "2018:86:73" - } - ] - }, - "documentation": "@dev removes a list of addresses from the whitelist\n\t * @param _addresses addresses to remove", - "id": 22189, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "removeAddresses", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 22167, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 22166, - "name": "_addresses", - "nodeType": "VariableDeclaration", - "scope": 22189, - "src": "1985:20:73", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 22164, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1985:7:73", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 22165, - "length": null, - "nodeType": "ArrayTypeName", - "src": "1985:9:73", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1984:22:73" - }, - "payable": false, - "returnParameters": { - "id": 22168, - "nodeType": "ParameterList", - "parameters": [], - "src": "2014:0:73" - }, - "scope": 22190, - "src": "1960:147:73", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 22191, - "src": "176:1933:73" - } - ], - "src": "0:2110:73" - }, - "id": 73 - }, - "solidity/contracts/utility/interfaces/IConsumerPriceOracle.sol": { - "ast": { - "absolutePath": "solidity/contracts/utility/interfaces/IConsumerPriceOracle.sol", - "exportedSymbols": { - "IConsumerPriceOracle": [ - 22203 - ] - }, - "id": 22204, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 22192, - "literals": [ - "solidity", - "0.4", - ".26" - ], - "nodeType": "PragmaDirective", - "src": "0:23:74" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "interface", - "documentation": null, - "fullyImplemented": false, - "id": 22203, - "linearizedBaseContracts": [ - 22203 - ], - "name": "IConsumerPriceOracle", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": null, - "id": 22197, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "latestAnswer", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 22193, - "nodeType": "ParameterList", - "parameters": [], - "src": "123:2:74" - }, - "payable": false, - "returnParameters": { - "id": 22196, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 22195, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 22197, - "src": "149:6:74", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "typeName": { - "id": 22194, - "name": "int256", - "nodeType": "ElementaryTypeName", - "src": "149:6:74", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "148:8:74" - }, - "scope": 22203, - "src": "102:55:74", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 22202, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "latestTimestamp", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 22198, - "nodeType": "ParameterList", - "parameters": [], - "src": "184:2:74" - }, - "payable": false, - "returnParameters": { - "id": 22201, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 22200, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 22202, - "src": "210:7:74", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 22199, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "210:7:74", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "209:9:74" - }, - "scope": 22203, - "src": "160:59:74", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - } - ], - "scope": 22204, - "src": "68:153:74" - } - ], - "src": "0:222:74" - }, - "id": 74 - }, - "solidity/contracts/utility/interfaces/IContractRegistry.sol": { - "ast": { - "absolutePath": "solidity/contracts/utility/interfaces/IContractRegistry.sol", - "exportedSymbols": { - "IContractRegistry": [ - 22220 - ] - }, - "id": 22221, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 22205, - "literals": [ - "solidity", - "0.4", - ".26" - ], - "nodeType": "PragmaDirective", - "src": "0:23:75" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": false, - "id": 22220, - "linearizedBaseContracts": [ - 22220 - ], - "name": "IContractRegistry", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": null, - "id": 22212, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "addressOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 22208, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 22207, - "name": "_contractName", - "nodeType": "VariableDeclaration", - "scope": 22212, - "src": "112:21:75", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 22206, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "112:7:75", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "111:23:75" - }, - "payable": false, - "returnParameters": { - "id": 22211, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 22210, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 22212, - "src": "156:7:75", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 22209, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "156:7:75", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "155:9:75" - }, - "scope": 22220, - "src": "93:72:75", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 22219, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getAddress", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 22215, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 22214, - "name": "_contractName", - "nodeType": "VariableDeclaration", - "scope": 22219, - "src": "227:21:75", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 22213, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "227:7:75", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "226:23:75" - }, - "payable": false, - "returnParameters": { - "id": 22218, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 22217, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 22219, - "src": "271:7:75", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 22216, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "271:7:75", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "270:9:75" - }, - "scope": 22220, - "src": "207:73:75", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 22221, - "src": "63:219:75" - } - ], - "src": "0:283:75" - }, - "id": 75 - }, - "solidity/contracts/utility/interfaces/IMoCState.sol": { - "ast": { - "absolutePath": "solidity/contracts/utility/interfaces/IMoCState.sol", - "exportedSymbols": { - "IMoCState": [ - 22228 - ] - }, - "id": 22229, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 22222, - "literals": [ - "solidity", - "0.4", - ".26" - ], - "nodeType": "PragmaDirective", - "src": "0:23:76" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "interface", - "documentation": null, - "fullyImplemented": false, - "id": 22228, - "linearizedBaseContracts": [ - 22228 - ], - "name": "IMoCState", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": null, - "id": 22227, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "bproUsdPrice", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 22223, - "nodeType": "ParameterList", - "parameters": [], - "src": "69:2:76" - }, - "payable": false, - "returnParameters": { - "id": 22226, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 22225, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 22227, - "src": "95:7:76", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 22224, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "95:7:76", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "94:9:76" - }, - "scope": 22228, - "src": "48:56:76", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - } - ], - "scope": 22229, - "src": "25:81:76" - } - ], - "src": "0:107:76" - }, - "id": 76 - }, - "solidity/contracts/utility/interfaces/IOwned.sol": { - "ast": { - "absolutePath": "solidity/contracts/utility/interfaces/IOwned.sol", - "exportedSymbols": { - "IOwned": [ - 22247 - ] - }, - "id": 22248, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 22230, - "literals": [ - "solidity", - "0.4", - ".26" - ], - "nodeType": "PragmaDirective", - "src": "0:23:77" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": false, - "id": 22247, - "linearizedBaseContracts": [ - 22247 - ], - "name": "IOwned", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 22237, - "nodeType": "Block", - "src": "237:12:77", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 22235, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22355, - "src": "241:4:77", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IOwned_$22247", - "typeString": "contract IOwned" - } - }, - "id": 22236, - "nodeType": "ExpressionStatement", - "src": "241:4:77" - } - ] - }, - "documentation": null, - "id": 22238, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "owner", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 22231, - "nodeType": "ParameterList", - "parameters": [], - "src": "204:2:77" - }, - "payable": false, - "returnParameters": { - "id": 22234, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 22233, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 22238, - "src": "228:7:77", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 22232, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "228:7:77", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "227:9:77" - }, - "scope": 22247, - "src": "190:59:77", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 22243, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "transferOwnership", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 22241, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 22240, - "name": "_newOwner", - "nodeType": "VariableDeclaration", - "scope": 22243, - "src": "279:17:77", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 22239, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "279:7:77", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "278:19:77" - }, - "payable": false, - "returnParameters": { - "id": 22242, - "nodeType": "ParameterList", - "parameters": [], - "src": "304:0:77" - }, - "scope": 22247, - "src": "252:53:77", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 22246, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "acceptOwnership", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 22244, - "nodeType": "ParameterList", - "parameters": [], - "src": "332:2:77" - }, - "payable": false, - "returnParameters": { - "id": 22245, - "nodeType": "ParameterList", - "parameters": [], - "src": "341:0:77" - }, - "scope": 22247, - "src": "308:34:77", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 22248, - "src": "60:284:77" - } - ], - "src": "0:345:77" - }, - "id": 77 - }, - "solidity/contracts/utility/interfaces/IPriceOracle.sol": { - "ast": { - "absolutePath": "solidity/contracts/utility/interfaces/IPriceOracle.sol", - "exportedSymbols": { - "IPriceOracle": [ - 22297 - ] - }, - "id": 22298, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 22249, - "literals": [ - "solidity", - "0.4", - ".26" - ], - "nodeType": "PragmaDirective", - "src": "0:23:78" - }, - { - "absolutePath": "solidity/contracts/utility/interfaces/IConsumerPriceOracle.sol", - "file": "./IConsumerPriceOracle.sol", - "id": 22250, - "nodeType": "ImportDirective", - "scope": 22298, - "sourceUnit": 22204, - "src": "24:36:78", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "solidity/contracts/token/interfaces/IERC20Token.sol", - "file": "../../token/interfaces/IERC20Token.sol", - "id": 22251, - "nodeType": "ImportDirective", - "scope": 22298, - "sourceUnit": 20241, - "src": "61:48:78", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": false, - "id": 22297, - "linearizedBaseContracts": [ - 22297 - ], - "name": "IPriceOracle", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": null, - "id": 22262, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "latestRate", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 22256, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 22253, - "name": "_tokenA", - "nodeType": "VariableDeclaration", - "scope": 22262, - "src": "189:19:78", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - "typeName": { - "contractScope": null, - "id": 22252, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "189:11:78", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 22255, - "name": "_tokenB", - "nodeType": "VariableDeclaration", - "scope": 22262, - "src": "210:19:78", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - "typeName": { - "contractScope": null, - "id": 22254, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "210:11:78", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "188:42:78" - }, - "payable": false, - "returnParameters": { - "id": 22261, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 22258, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 22262, - "src": "252:7:78", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 22257, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "252:7:78", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 22260, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 22262, - "src": "261:7:78", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 22259, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "261:7:78", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "251:18:78" - }, - "scope": 22297, - "src": "169:101:78", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 22267, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "lastUpdateTime", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 22263, - "nodeType": "ParameterList", - "parameters": [], - "src": "296:2:78" - }, - "payable": false, - "returnParameters": { - "id": 22266, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 22265, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 22267, - "src": "320:7:78", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 22264, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "320:7:78", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "319:9:78" - }, - "scope": 22297, - "src": "273:56:78", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 22280, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "latestRateAndUpdateTime", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 22272, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 22269, - "name": "_tokenA", - "nodeType": "VariableDeclaration", - "scope": 22280, - "src": "365:19:78", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - "typeName": { - "contractScope": null, - "id": 22268, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "365:11:78", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 22271, - "name": "_tokenB", - "nodeType": "VariableDeclaration", - "scope": 22280, - "src": "386:19:78", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - "typeName": { - "contractScope": null, - "id": 22270, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "386:11:78", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "364:42:78" - }, - "payable": false, - "returnParameters": { - "id": 22279, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 22274, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 22280, - "src": "438:7:78", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 22273, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "438:7:78", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 22276, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 22280, - "src": "450:7:78", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 22275, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "450:7:78", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 22278, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 22280, - "src": "462:7:78", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 22277, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "462:7:78", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "433:40:78" - }, - "scope": 22297, - "src": "332:142:78", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 22287, - "nodeType": "Block", - "src": "544:12:78", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 22285, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22425, - "src": "548:4:78", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IPriceOracle_$22297", - "typeString": "contract IPriceOracle" - } - }, - "id": 22286, - "nodeType": "ExpressionStatement", - "src": "548:4:78" - } - ] - }, - "documentation": null, - "id": 22288, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "tokenAOracle", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 22281, - "nodeType": "ParameterList", - "parameters": [], - "src": "498:2:78" - }, - "payable": false, - "returnParameters": { - "id": 22284, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 22283, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 22288, - "src": "522:20:78", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", - "typeString": "contract IConsumerPriceOracle" - }, - "typeName": { - "contractScope": null, - "id": 22282, - "name": "IConsumerPriceOracle", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 22203, - "src": "522:20:78", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", - "typeString": "contract IConsumerPriceOracle" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "521:22:78" - }, - "scope": 22297, - "src": "477:79:78", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 22295, - "nodeType": "Block", - "src": "626:12:78", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 22293, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22425, - "src": "630:4:78", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IPriceOracle_$22297", - "typeString": "contract IPriceOracle" - } - }, - "id": 22294, - "nodeType": "ExpressionStatement", - "src": "630:4:78" - } - ] - }, - "documentation": null, - "id": 22296, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "tokenBOracle", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 22289, - "nodeType": "ParameterList", - "parameters": [], - "src": "580:2:78" - }, - "payable": false, - "returnParameters": { - "id": 22292, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 22291, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 22296, - "src": "604:20:78", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", - "typeString": "contract IConsumerPriceOracle" - }, - "typeName": { - "contractScope": null, - "id": 22290, - "name": "IConsumerPriceOracle", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 22203, - "src": "604:20:78", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConsumerPriceOracle_$22203", - "typeString": "contract IConsumerPriceOracle" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "603:22:78" - }, - "scope": 22297, - "src": "559:79:78", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 22298, - "src": "144:496:78" - } - ], - "src": "0:641:78" - }, - "id": 78 - }, - "solidity/contracts/utility/interfaces/ITokenHolder.sol": { - "ast": { - "absolutePath": "solidity/contracts/utility/interfaces/ITokenHolder.sol", - "exportedSymbols": { - "ITokenHolder": [ - 22313 - ] - }, - "id": 22314, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 22299, - "literals": [ - "solidity", - "0.4", - ".26" - ], - "nodeType": "PragmaDirective", - "src": "0:23:79" - }, - { - "absolutePath": "solidity/contracts/utility/interfaces/IOwned.sol", - "file": "./IOwned.sol", - "id": 22300, - "nodeType": "ImportDirective", - "scope": 22314, - "sourceUnit": 22248, - "src": "24:22:79", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "solidity/contracts/token/interfaces/IERC20Token.sol", - "file": "../../token/interfaces/IERC20Token.sol", - "id": 22301, - "nodeType": "ImportDirective", - "scope": 22314, - "sourceUnit": 20241, - "src": "47:48:79", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 22302, - "name": "IOwned", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 22247, - "src": "155:6:79", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IOwned_$22247", - "typeString": "contract IOwned" - } - }, - "id": 22303, - "nodeType": "InheritanceSpecifier", - "src": "155:6:79" - } - ], - "contractDependencies": [ - 22247 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": false, - "id": 22313, - "linearizedBaseContracts": [ - 22313, - 22247 - ], - "name": "ITokenHolder", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": null, - "id": 22312, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "withdrawTokens", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 22310, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 22305, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 22312, - "src": "192:18:79", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - }, - "typeName": { - "contractScope": null, - "id": 22304, - "name": "IERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20240, - "src": "192:11:79", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Token_$20240", - "typeString": "contract IERC20Token" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 22307, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 22312, - "src": "214:11:79", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 22306, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "214:7:79", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 22309, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 22312, - "src": "229:15:79", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 22308, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "229:7:79", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "188:59:79" - }, - "payable": false, - "returnParameters": { - "id": 22311, - "nodeType": "ParameterList", - "parameters": [], - "src": "254:0:79" - }, - "scope": 22313, - "src": "165:90:79", - "stateMutability": "nonpayable", - "superFunction": 11757, - "visibility": "public" - } - ], - "scope": 22314, - "src": "130:127:79" - } - ], - "src": "0:258:79" - }, - "id": 79 - }, - "solidity/contracts/utility/interfaces/IWhitelist.sol": { - "ast": { - "absolutePath": "solidity/contracts/utility/interfaces/IWhitelist.sol", - "exportedSymbols": { - "IWhitelist": [ - 22323 - ] - }, - "id": 22324, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 22315, - "literals": [ - "solidity", - "0.4", - ".26" - ], - "nodeType": "PragmaDirective", - "src": "0:23:80" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": false, - "id": 22323, - "linearizedBaseContracts": [ - 22323 - ], - "name": "IWhitelist", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": null, - "id": 22322, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "isWhitelisted", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 22318, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 22317, - "name": "_address", - "nodeType": "VariableDeclaration", - "scope": 22322, - "src": "101:16:80", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 22316, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "101:7:80", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "100:18:80" - }, - "payable": false, - "returnParameters": { - "id": 22321, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 22320, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 22322, - "src": "140:4:80", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 22319, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "140:4:80", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "139:6:80" - }, - "scope": 22323, - "src": "78:68:80", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 22324, - "src": "55:93:80" - } - ], - "src": "0:149:80" - }, - "id": 80 - } - } - } -} diff --git a/scripts/count_opcodes_zkSync.py b/scripts/count_opcodes_zkSync.py index 363feae..fae764a 100644 --- a/scripts/count_opcodes_zkSync.py +++ b/scripts/count_opcodes_zkSync.py @@ -3,9 +3,13 @@ # Script to create report on bytecodes not supported by zkSync # https://github.com/DistributedCollective/Sovryn-smart-contracts/issues/285 +# To call the script, first parameter should be the json file that solc compiler generates: +# python scripts/count_opcodes_zkSync.py artifacts/build-info/0202910f40424d4ba1f4d5c762daecf5.json + import json import re import csv +import sys # Hardhat json packs opcodes in 1 line. Better visual on multiline. def opcode1linerToMultiline(oneLiner): @@ -34,9 +38,9 @@ def countCode(code, opcode): # print ("\nsplitted: " + ' '.join(s)) # exit() -# Opening the JSON output from the last hardhat compilation -# f = open('artifacts/build-info/eaaf433b5af1a78be582155342f51ab5.json',) -f = open('artifacts/build-info/0202910f40424d4ba1f4d5c762daecf5.json',) +# Opening a JSON output from hardhat compilation specified as the first script parameter +user_args = sys.argv[1:] # get parameter list after the script name +f = open(user_args[0],) # use first parameter as filename to open # Return JSON object as a dictionary hardhatOutput = json.load(f)